summaryrefslogtreecommitdiffstats
path: root/src/web
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/web/README.md46
-rw-r--r--src/web/api/README.md12
-rw-r--r--src/web/api/badges/README.md369
-rw-r--r--src/web/api/badges/web_buffer_svg.c (renamed from web/api/badges/web_buffer_svg.c)6
-rw-r--r--src/web/api/badges/web_buffer_svg.h (renamed from web/api/badges/web_buffer_svg.h)0
-rw-r--r--src/web/api/exporters/README.md14
-rw-r--r--src/web/api/exporters/allmetrics.c (renamed from web/api/exporters/allmetrics.c)0
-rw-r--r--src/web/api/exporters/allmetrics.h (renamed from web/api/exporters/allmetrics.h)0
-rw-r--r--src/web/api/exporters/prometheus/README.md14
-rw-r--r--src/web/api/exporters/shell/README.md73
-rw-r--r--src/web/api/exporters/shell/allmetrics_shell.c (renamed from web/api/exporters/shell/allmetrics_shell.c)0
-rw-r--r--src/web/api/exporters/shell/allmetrics_shell.h (renamed from web/api/exporters/shell/allmetrics_shell.h)0
-rw-r--r--src/web/api/formatters/README.md82
-rw-r--r--src/web/api/formatters/charts2json.c (renamed from web/api/formatters/charts2json.c)0
-rw-r--r--src/web/api/formatters/charts2json.h (renamed from web/api/formatters/charts2json.h)0
-rw-r--r--src/web/api/formatters/csv/README.md148
-rw-r--r--src/web/api/formatters/csv/csv.c (renamed from web/api/formatters/csv/csv.c)0
-rw-r--r--src/web/api/formatters/csv/csv.h (renamed from web/api/formatters/csv/csv.h)0
-rw-r--r--src/web/api/formatters/json/README.md160
-rw-r--r--src/web/api/formatters/json/json.c (renamed from web/api/formatters/json/json.c)0
-rw-r--r--src/web/api/formatters/json/json.h (renamed from web/api/formatters/json/json.h)0
-rw-r--r--src/web/api/formatters/json_wrapper.c (renamed from web/api/formatters/json_wrapper.c)24
-rw-r--r--src/web/api/formatters/json_wrapper.h (renamed from web/api/formatters/json_wrapper.h)0
-rw-r--r--src/web/api/formatters/rrd2json.c (renamed from web/api/formatters/rrd2json.c)0
-rw-r--r--src/web/api/formatters/rrd2json.h (renamed from web/api/formatters/rrd2json.h)0
-rw-r--r--src/web/api/formatters/rrdset2json.c (renamed from web/api/formatters/rrdset2json.c)4
-rw-r--r--src/web/api/formatters/rrdset2json.h (renamed from web/api/formatters/rrdset2json.h)0
-rw-r--r--src/web/api/formatters/ssv/README.md63
-rw-r--r--src/web/api/formatters/ssv/ssv.c (renamed from web/api/formatters/ssv/ssv.c)0
-rw-r--r--src/web/api/formatters/ssv/ssv.h (renamed from web/api/formatters/ssv/ssv.h)0
-rw-r--r--src/web/api/formatters/value/README.md28
-rw-r--r--src/web/api/formatters/value/value.c (renamed from web/api/formatters/value/value.c)68
-rw-r--r--src/web/api/formatters/value/value.h (renamed from web/api/formatters/value/value.h)0
-rw-r--r--src/web/api/health/README.md222
-rw-r--r--src/web/api/http_auth.c90
-rw-r--r--src/web/api/http_auth.h21
-rw-r--r--src/web/api/http_header.c254
-rw-r--r--src/web/api/http_header.h11
-rw-r--r--src/web/api/ilove/README.md (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/test/executable)0
-rw-r--r--src/web/api/ilove/ilove.c (renamed from web/api/ilove/ilove.c)0
-rw-r--r--src/web/api/ilove/ilove.h (renamed from web/api/ilove/ilove.h)0
-rw-r--r--src/web/api/ilove/measure-text.js (renamed from web/api/ilove/measure-text.js)0
-rw-r--r--src/web/api/netdata-swagger.json (renamed from web/api/netdata-swagger.json)357
-rw-r--r--src/web/api/netdata-swagger.yaml (renamed from web/api/netdata-swagger.yaml)227
-rw-r--r--src/web/api/queries/README.md181
-rw-r--r--src/web/api/queries/average/README.md50
-rw-r--r--src/web/api/queries/average/average.c (renamed from web/api/queries/average/average.c)0
-rw-r--r--src/web/api/queries/average/average.h (renamed from web/api/queries/average/average.h)0
-rw-r--r--src/web/api/queries/countif/README.md40
-rw-r--r--src/web/api/queries/countif/countif.c (renamed from web/api/queries/countif/countif.c)0
-rw-r--r--src/web/api/queries/countif/countif.h (renamed from web/api/queries/countif/countif.h)0
-rw-r--r--src/web/api/queries/des/README.md77
-rw-r--r--src/web/api/queries/des/des.c (renamed from web/api/queries/des/des.c)0
-rw-r--r--src/web/api/queries/des/des.h (renamed from web/api/queries/des/des.h)0
-rw-r--r--src/web/api/queries/incremental_sum/README.md45
-rw-r--r--src/web/api/queries/incremental_sum/incremental_sum.c (renamed from web/api/queries/incremental_sum/incremental_sum.c)0
-rw-r--r--src/web/api/queries/incremental_sum/incremental_sum.h (renamed from web/api/queries/incremental_sum/incremental_sum.h)0
-rw-r--r--src/web/api/queries/max/README.md42
-rw-r--r--src/web/api/queries/max/max.c (renamed from web/api/queries/max/max.c)0
-rw-r--r--src/web/api/queries/max/max.h (renamed from web/api/queries/max/max.h)0
-rw-r--r--src/web/api/queries/median/README.md64
-rw-r--r--src/web/api/queries/median/median.c (renamed from web/api/queries/median/median.c)0
-rw-r--r--src/web/api/queries/median/median.h (renamed from web/api/queries/median/median.h)0
-rw-r--r--src/web/api/queries/min/README.md42
-rw-r--r--src/web/api/queries/min/min.c (renamed from web/api/queries/min/min.c)0
-rw-r--r--src/web/api/queries/min/min.h (renamed from web/api/queries/min/min.h)0
-rw-r--r--src/web/api/queries/percentile/README.md62
-rw-r--r--src/web/api/queries/percentile/percentile.c (renamed from web/api/queries/percentile/percentile.c)0
-rw-r--r--src/web/api/queries/percentile/percentile.h (renamed from web/api/queries/percentile/percentile.h)0
-rw-r--r--src/web/api/queries/query.c3728
-rw-r--r--src/web/api/queries/query.h100
-rw-r--r--src/web/api/queries/rrdr.c (renamed from web/api/queries/rrdr.c)0
-rw-r--r--src/web/api/queries/rrdr.h (renamed from web/api/queries/rrdr.h)54
-rw-r--r--src/web/api/queries/ses/README.md65
-rw-r--r--src/web/api/queries/ses/ses.c (renamed from web/api/queries/ses/ses.c)0
-rw-r--r--src/web/api/queries/ses/ses.h (renamed from web/api/queries/ses/ses.h)0
-rw-r--r--src/web/api/queries/stddev/README.md97
-rw-r--r--src/web/api/queries/stddev/stddev.c (renamed from web/api/queries/stddev/stddev.c)0
-rw-r--r--src/web/api/queries/stddev/stddev.h (renamed from web/api/queries/stddev/stddev.h)0
-rw-r--r--src/web/api/queries/sum/README.md45
-rw-r--r--src/web/api/queries/sum/sum.c (renamed from web/api/queries/sum/sum.c)0
-rw-r--r--src/web/api/queries/sum/sum.h (renamed from web/api/queries/sum/sum.h)0
-rw-r--r--src/web/api/queries/trimmed_mean/README.md60
-rw-r--r--src/web/api/queries/trimmed_mean/trimmed_mean.c (renamed from web/api/queries/trimmed_mean/trimmed_mean.c)0
-rw-r--r--src/web/api/queries/trimmed_mean/trimmed_mean.h (renamed from web/api/queries/trimmed_mean/trimmed_mean.h)0
-rw-r--r--src/web/api/queries/weights.c (renamed from web/api/queries/weights.c)8
-rw-r--r--src/web/api/queries/weights.h (renamed from web/api/queries/weights.h)2
-rw-r--r--src/web/api/tests/valid_urls.c (renamed from web/api/tests/valid_urls.c)0
-rw-r--r--src/web/api/tests/web_api.c (renamed from web/api/tests/web_api.c)0
-rw-r--r--src/web/api/web_api.c (renamed from web/api/web_api.c)91
-rw-r--r--src/web/api/web_api.h43
-rw-r--r--src/web/api/web_api_v1.c (renamed from web/api/web_api_v1.c)556
-rw-r--r--src/web/api/web_api_v1.h (renamed from web/api/web_api_v1.h)9
-rw-r--r--src/web/api/web_api_v2.c770
-rw-r--r--src/web/api/web_api_v2.h (renamed from web/api/web_api_v2.h)0
-rw-r--r--src/web/gui/.dashboard-notice.md (renamed from web/gui/.dashboard-notice.md)0
-rw-r--r--src/web/gui/.dashboard-v2-notice.md (renamed from web/gui/.dashboard-v2-notice.md)0
-rw-r--r--src/web/gui/.well-known/dnt/cookies (renamed from web/gui/.well-known/dnt/cookies)0
-rw-r--r--src/web/gui/README.md165
-rw-r--r--src/web/gui/browserconfig.xml (renamed from web/gui/browserconfig.xml)0
-rwxr-xr-xsrc/web/gui/bundle_dashboard_v1.py84
-rwxr-xr-xsrc/web/gui/bundle_dashboard_v2.py97
-rw-r--r--src/web/gui/confluence/README.md1023
-rw-r--r--src/web/gui/css/c3-0.4.18.min.css (renamed from web/gui/css/c3-0.4.18.min.css)0
-rw-r--r--src/web/gui/css/morris-0.5.1.css (renamed from web/gui/css/morris-0.5.1.css)0
-rw-r--r--src/web/gui/custom/README.md594
-rw-r--r--src/web/gui/dashboard_info.js (renamed from web/gui/dashboard_info.js)14
-rw-r--r--src/web/gui/dashboard_info_custom_example.js (renamed from web/gui/dashboard_info_custom_example.js)0
-rw-r--r--src/web/gui/gui.cmake30
-rw-r--r--src/web/gui/ilove.html (renamed from web/gui/ilove.html)0
-rw-r--r--src/web/gui/index.html245
-rw-r--r--src/web/gui/main.css (renamed from web/gui/main.css)0
-rw-r--r--src/web/gui/main.js (renamed from web/gui/main.js)8
-rw-r--r--src/web/gui/old/index.html (renamed from web/gui/old/index.html)0
-rw-r--r--src/web/gui/registry-access.html (renamed from web/gui/registry-access.html)0
-rw-r--r--src/web/gui/registry-alert-redirect.html152
-rw-r--r--src/web/gui/registry-hello.html (renamed from web/gui/registry-hello.html)0
-rw-r--r--src/web/gui/src/dashboard.js/alarms.js (renamed from web/gui/src/dashboard.js/alarms.js)0
-rw-r--r--src/web/gui/src/dashboard.js/boot.js (renamed from web/gui/src/dashboard.js/boot.js)0
-rw-r--r--src/web/gui/src/dashboard.js/chart-registry.js (renamed from web/gui/src/dashboard.js/chart-registry.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting.js (renamed from web/gui/src/dashboard.js/charting.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/_c3.js (renamed from web/gui/src/dashboard.js/charting/_c3.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/_morris.js (renamed from web/gui/src/dashboard.js/charting/_morris.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/_raphael.js (renamed from web/gui/src/dashboard.js/charting/_raphael.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/d3.js (renamed from web/gui/src/dashboard.js/charting/d3.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/d3pie.js (renamed from web/gui/src/dashboard.js/charting/d3pie.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/dygraph.js (renamed from web/gui/src/dashboard.js/charting/dygraph.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/easy-pie-chart.js (renamed from web/gui/src/dashboard.js/charting/easy-pie-chart.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/gauge.js (renamed from web/gui/src/dashboard.js/charting/gauge.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/google-charts.js (renamed from web/gui/src/dashboard.js/charting/google-charts.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/peity.js (renamed from web/gui/src/dashboard.js/charting/peity.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/sparkline.js (renamed from web/gui/src/dashboard.js/charting/sparkline.js)0
-rw-r--r--src/web/gui/src/dashboard.js/charting/textonly.js (renamed from web/gui/src/dashboard.js/charting/textonly.js)0
-rw-r--r--src/web/gui/src/dashboard.js/colors.js (renamed from web/gui/src/dashboard.js/colors.js)0
-rw-r--r--src/web/gui/src/dashboard.js/common.js (renamed from web/gui/src/dashboard.js/common.js)0
-rw-r--r--src/web/gui/src/dashboard.js/compatibility.js (renamed from web/gui/src/dashboard.js/compatibility.js)0
-rw-r--r--src/web/gui/src/dashboard.js/dependencies.js (renamed from web/gui/src/dashboard.js/dependencies.js)0
-rw-r--r--src/web/gui/src/dashboard.js/epilogue.js.inc (renamed from web/gui/src/dashboard.js/epilogue.js.inc)0
-rw-r--r--src/web/gui/src/dashboard.js/error-handling.js (renamed from web/gui/src/dashboard.js/error-handling.js)0
-rw-r--r--src/web/gui/src/dashboard.js/localstorage.js (renamed from web/gui/src/dashboard.js/localstorage.js)0
-rw-r--r--src/web/gui/src/dashboard.js/main.js (renamed from web/gui/src/dashboard.js/main.js)0
-rw-r--r--src/web/gui/src/dashboard.js/options.js (renamed from web/gui/src/dashboard.js/options.js)0
-rw-r--r--src/web/gui/src/dashboard.js/prologue.js.inc (renamed from web/gui/src/dashboard.js/prologue.js.inc)0
-rw-r--r--src/web/gui/src/dashboard.js/registry.js (renamed from web/gui/src/dashboard.js/registry.js)0
-rw-r--r--src/web/gui/src/dashboard.js/server-detection.js (renamed from web/gui/src/dashboard.js/server-detection.js)0
-rw-r--r--src/web/gui/src/dashboard.js/themes.js (renamed from web/gui/src/dashboard.js/themes.js)0
-rw-r--r--src/web/gui/src/dashboard.js/timeout.js (renamed from web/gui/src/dashboard.js/timeout.js)0
-rw-r--r--src/web/gui/src/dashboard.js/units-conversion.js (renamed from web/gui/src/dashboard.js/units-conversion.js)0
-rw-r--r--src/web/gui/src/dashboard.js/utils.js (renamed from web/gui/src/dashboard.js/utils.js)0
-rw-r--r--src/web/gui/src/dashboard.js/xss.js (renamed from web/gui/src/dashboard.js/xss.js)0
-rw-r--r--src/web/gui/static/img/netdata-logomark.svg (renamed from web/gui/static/img/netdata-logomark.svg)0
-rw-r--r--src/web/gui/static/splash.css (renamed from web/gui/static/splash.css)0
-rw-r--r--src/web/gui/switch.html (renamed from web/gui/switch.html)0
l---------src/web/gui/v0 (renamed from web/gui/v0)0
l---------src/web/gui/v1/README.md (renamed from web/gui/v1/README.md)0
-rw-r--r--src/web/gui/v1/asset-manifest.json (renamed from web/gui/v1/asset-manifest.json)0
-rw-r--r--src/web/gui/v1/console.html (renamed from web/gui/v1/console.html)0
-rw-r--r--src/web/gui/v1/css/bootstrap-3.3.7.css (renamed from web/gui/v1/css/bootstrap-3.3.7.css)0
-rw-r--r--src/web/gui/v1/css/bootstrap-slate-flat-3.3.7.css (renamed from web/gui/v1/css/bootstrap-slate-flat-3.3.7.css)0
-rw-r--r--src/web/gui/v1/css/bootstrap-slider-10.0.0.min.css (renamed from web/gui/v1/css/bootstrap-slider-10.0.0.min.css)0
-rw-r--r--src/web/gui/v1/css/bootstrap-theme-3.3.7.min.css (renamed from web/gui/v1/css/bootstrap-theme-3.3.7.min.css)0
-rw-r--r--src/web/gui/v1/css/bootstrap-toggle-2.2.2.min.css (renamed from web/gui/v1/css/bootstrap-toggle-2.2.2.min.css)0
-rw-r--r--src/web/gui/v1/css/dashboard.css (renamed from web/gui/v1/css/dashboard.css)0
-rw-r--r--src/web/gui/v1/css/dashboard.slate.css (renamed from web/gui/v1/css/dashboard.slate.css)0
-rw-r--r--src/web/gui/v1/dash-example.html (renamed from web/gui/v1/dash-example.html)0
-rw-r--r--src/web/gui/v1/dashboard-react.js (renamed from web/gui/v1/dashboard-react.js)0
-rw-r--r--src/web/gui/v1/dashboard.css (renamed from web/gui/v1/dashboard.css)0
-rw-r--r--src/web/gui/v1/dashboard.html (renamed from web/gui/v1/dashboard.html)0
-rw-r--r--src/web/gui/v1/dashboard.js (renamed from web/gui/v1/dashboard.js)0
-rw-r--r--src/web/gui/v1/dashboard.slate.css (renamed from web/gui/v1/dashboard.slate.css)0
-rw-r--r--src/web/gui/v1/dashboard_v1.cmake168
-rw-r--r--src/web/gui/v1/demo.html (renamed from web/gui/v1/demo.html)0
-rw-r--r--src/web/gui/v1/demo2.html (renamed from web/gui/v1/demo2.html)0
-rw-r--r--src/web/gui/v1/demosites.html (renamed from web/gui/v1/demosites.html)6
-rw-r--r--src/web/gui/v1/demosites2.html (renamed from web/gui/v1/demosites2.html)4
-rw-r--r--src/web/gui/v1/favicon.ico (renamed from web/gui/v1/favicon.ico)bin1150 -> 1150 bytes
-rw-r--r--src/web/gui/v1/fonts/glyphicons-halflings-regular.eot (renamed from web/gui/v1/fonts/glyphicons-halflings-regular.eot)bin20127 -> 20127 bytes
-rw-r--r--src/web/gui/v1/fonts/glyphicons-halflings-regular.svg (renamed from web/gui/v1/fonts/glyphicons-halflings-regular.svg)0
-rw-r--r--src/web/gui/v1/fonts/glyphicons-halflings-regular.ttf (renamed from web/gui/v1/fonts/glyphicons-halflings-regular.ttf)bin45404 -> 45404 bytes
-rw-r--r--src/web/gui/v1/fonts/glyphicons-halflings-regular.woff (renamed from web/gui/v1/fonts/glyphicons-halflings-regular.woff)bin23424 -> 23424 bytes
-rw-r--r--src/web/gui/v1/fonts/glyphicons-halflings-regular.woff2 (renamed from web/gui/v1/fonts/glyphicons-halflings-regular.woff2)bin18028 -> 18028 bytes
-rw-r--r--src/web/gui/v1/goto-host-from-alarm.html (renamed from web/gui/v1/goto-host-from-alarm.html)0
-rw-r--r--src/web/gui/v1/images/alert-128-orange.png (renamed from web/gui/v1/images/alert-128-orange.png)bin3477 -> 3477 bytes
-rw-r--r--src/web/gui/v1/images/alert-128-red.png (renamed from web/gui/v1/images/alert-128-red.png)bin3743 -> 3743 bytes
-rw-r--r--src/web/gui/v1/images/alert-multi-size-orange.ico (renamed from web/gui/v1/images/alert-multi-size-orange.ico)bin112374 -> 112374 bytes
-rw-r--r--src/web/gui/v1/images/alert-multi-size-red.ico (renamed from web/gui/v1/images/alert-multi-size-red.ico)bin112458 -> 112458 bytes
-rw-r--r--src/web/gui/v1/images/alerts.jpg (renamed from web/gui/v1/images/alerts.jpg)bin388104 -> 388104 bytes
-rw-r--r--src/web/gui/v1/images/alerts.png (renamed from web/gui/v1/images/alerts.png)bin59943 -> 59943 bytes
-rw-r--r--src/web/gui/v1/images/android-icon-144x144.png (renamed from web/gui/v1/images/android-icon-144x144.png)bin2721 -> 2721 bytes
-rw-r--r--src/web/gui/v1/images/android-icon-192x192.png (renamed from web/gui/v1/images/android-icon-192x192.png)bin3923 -> 3923 bytes
-rw-r--r--src/web/gui/v1/images/android-icon-36x36.png (renamed from web/gui/v1/images/android-icon-36x36.png)bin539 -> 539 bytes
-rw-r--r--src/web/gui/v1/images/android-icon-48x48.png (renamed from web/gui/v1/images/android-icon-48x48.png)bin762 -> 762 bytes
-rw-r--r--src/web/gui/v1/images/android-icon-72x72.png (renamed from web/gui/v1/images/android-icon-72x72.png)bin1153 -> 1153 bytes
-rw-r--r--src/web/gui/v1/images/android-icon-96x96.png (renamed from web/gui/v1/images/android-icon-96x96.png)bin1747 -> 1747 bytes
-rw-r--r--src/web/gui/v1/images/animated.gif (renamed from web/gui/v1/images/animated.gif)bin389597 -> 389597 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-114x114.png (renamed from web/gui/v1/images/apple-icon-114x114.png)bin3651 -> 3651 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-120x120.png (renamed from web/gui/v1/images/apple-icon-120x120.png)bin2315 -> 2315 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-144x144.png (renamed from web/gui/v1/images/apple-icon-144x144.png)bin4001 -> 4001 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-152x152.png (renamed from web/gui/v1/images/apple-icon-152x152.png)bin5026 -> 5026 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-180x180.png (renamed from web/gui/v1/images/apple-icon-180x180.png)bin3645 -> 3645 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-57x57.png (renamed from web/gui/v1/images/apple-icon-57x57.png)bin1250 -> 1250 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-60x60.png (renamed from web/gui/v1/images/apple-icon-60x60.png)bin1052 -> 1052 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-72x72.png (renamed from web/gui/v1/images/apple-icon-72x72.png)bin1427 -> 1427 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-76x76.png (renamed from web/gui/v1/images/apple-icon-76x76.png)bin1711 -> 1711 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon-precomposed.png (renamed from web/gui/v1/images/apple-icon-precomposed.png)bin3926 -> 3926 bytes
-rw-r--r--src/web/gui/v1/images/apple-icon.png (renamed from web/gui/v1/images/apple-icon.png)bin3926 -> 3926 bytes
-rw-r--r--src/web/gui/v1/images/banner-icon-144x144.png (renamed from web/gui/v1/images/banner-icon-144x144.png)bin2724 -> 2724 bytes
-rw-r--r--src/web/gui/v1/images/check-mark-2-128-green.png (renamed from web/gui/v1/images/check-mark-2-128-green.png)bin3771 -> 3771 bytes
-rw-r--r--src/web/gui/v1/images/check-mark-2-multi-size-green.ico (renamed from web/gui/v1/images/check-mark-2-multi-size-green.ico)bin111893 -> 111893 bytes
-rw-r--r--src/web/gui/v1/images/dashboards.png (renamed from web/gui/v1/images/dashboards.png)bin175464 -> 175464 bytes
-rw-r--r--src/web/gui/v1/images/favicon-128.png (renamed from web/gui/v1/images/favicon-128.png)bin2436 -> 2436 bytes
-rw-r--r--src/web/gui/v1/images/favicon-16x16.png (renamed from web/gui/v1/images/favicon-16x16.png)bin285 -> 285 bytes
-rw-r--r--src/web/gui/v1/images/favicon-196x196.png (renamed from web/gui/v1/images/favicon-196x196.png)bin10025 -> 10025 bytes
-rw-r--r--src/web/gui/v1/images/favicon-32x32.png (renamed from web/gui/v1/images/favicon-32x32.png)bin454 -> 454 bytes
-rw-r--r--src/web/gui/v1/images/favicon-96x96.png (renamed from web/gui/v1/images/favicon-96x96.png)bin1925 -> 1925 bytes
-rw-r--r--src/web/gui/v1/images/favicon.ico (renamed from web/gui/v1/images/favicon.ico)bin1150 -> 1150 bytes
-rw-r--r--src/web/gui/v1/images/home.png (renamed from web/gui/v1/images/home.png)bin98888 -> 98888 bytes
-rw-r--r--src/web/gui/v1/images/ms-icon-144x144.png (renamed from web/gui/v1/images/ms-icon-144x144.png)bin4001 -> 4001 bytes
-rw-r--r--src/web/gui/v1/images/ms-icon-150x150.png (renamed from web/gui/v1/images/ms-icon-150x150.png)bin2867 -> 2867 bytes
-rw-r--r--src/web/gui/v1/images/ms-icon-310x150.png (renamed from web/gui/v1/images/ms-icon-310x150.png)bin3632 -> 3632 bytes
-rw-r--r--src/web/gui/v1/images/ms-icon-310x310.png (renamed from web/gui/v1/images/ms-icon-310x310.png)bin7215 -> 7215 bytes
-rw-r--r--src/web/gui/v1/images/ms-icon-36x36.png (renamed from web/gui/v1/images/ms-icon-36x36.png)bin536 -> 536 bytes
-rw-r--r--src/web/gui/v1/images/ms-icon-70x70.png (renamed from web/gui/v1/images/ms-icon-70x70.png)bin2436 -> 2436 bytes
-rw-r--r--src/web/gui/v1/images/netdata-logomark.svg (renamed from web/gui/v1/images/netdata-logomark.svg)0
-rw-r--r--src/web/gui/v1/images/netdata.svg (renamed from web/gui/v1/images/netdata.svg)0
-rw-r--r--src/web/gui/v1/images/nodeView.png (renamed from web/gui/v1/images/nodeView.png)bin645133 -> 645133 bytes
-rw-r--r--src/web/gui/v1/images/nodes.jpg (renamed from web/gui/v1/images/nodes.jpg)bin452421 -> 452421 bytes
-rw-r--r--src/web/gui/v1/images/overview.png (renamed from web/gui/v1/images/overview.png)bin101515 -> 101515 bytes
-rw-r--r--src/web/gui/v1/images/packaging-beta-tag.svg (renamed from web/gui/v1/images/packaging-beta-tag.svg)0
-rw-r--r--src/web/gui/v1/images/post.png (renamed from web/gui/v1/images/post.png)bin9043 -> 9043 bytes
-rw-r--r--src/web/gui/v1/images/pricing.png (renamed from web/gui/v1/images/pricing.png)bin148860 -> 148860 bytes
-rw-r--r--src/web/gui/v1/images/seo-performance-128.png (renamed from web/gui/v1/images/seo-performance-128.png)bin1828 -> 1828 bytes
-rw-r--r--src/web/gui/v1/index-node-view.html (renamed from web/gui/v1/index-node-view.html)0
-rw-r--r--src/web/gui/v1/index.html (renamed from web/gui/v1/index.html)0
-rw-r--r--src/web/gui/v1/infographic.html (renamed from web/gui/v1/infographic.html)4
-rw-r--r--src/web/gui/v1/lib/bootstrap-3.3.7.min.js (renamed from web/gui/v1/lib/bootstrap-3.3.7.min.js)0
-rw-r--r--src/web/gui/v1/lib/bootstrap-slider-10.0.0.min.js (renamed from web/gui/v1/lib/bootstrap-slider-10.0.0.min.js)0
-rw-r--r--src/web/gui/v1/lib/bootstrap-table-1.11.0.min.js (renamed from web/gui/v1/lib/bootstrap-table-1.11.0.min.js)0
-rw-r--r--src/web/gui/v1/lib/bootstrap-table-export-1.11.0.min.js (renamed from web/gui/v1/lib/bootstrap-table-export-1.11.0.min.js)0
-rw-r--r--src/web/gui/v1/lib/bootstrap-toggle-2.2.2.min.js (renamed from web/gui/v1/lib/bootstrap-toggle-2.2.2.min.js)0
-rw-r--r--src/web/gui/v1/lib/clipboard-polyfill-be05dad.js (renamed from web/gui/v1/lib/clipboard-polyfill-be05dad.js)0
-rw-r--r--src/web/gui/v1/lib/d3-4.12.2.min.js (renamed from web/gui/v1/lib/d3-4.12.2.min.js)0
-rw-r--r--src/web/gui/v1/lib/d3pie-0.2.1-netdata-3.js (renamed from web/gui/v1/lib/d3pie-0.2.1-netdata-3.js)0
-rw-r--r--src/web/gui/v1/lib/dygraph-c91c859.min.js (renamed from web/gui/v1/lib/dygraph-c91c859.min.js)0
-rw-r--r--src/web/gui/v1/lib/dygraph-smooth-plotter-c91c859.js (renamed from web/gui/v1/lib/dygraph-smooth-plotter-c91c859.js)0
-rw-r--r--src/web/gui/v1/lib/fontawesome-all-5.0.1.min.js (renamed from web/gui/v1/lib/fontawesome-all-5.0.1.min.js)0
-rw-r--r--src/web/gui/v1/lib/gauge-1.3.2.min.js (renamed from web/gui/v1/lib/gauge-1.3.2.min.js)0
-rw-r--r--src/web/gui/v1/lib/jquery-3.6.0.min.js (renamed from web/gui/v1/lib/jquery-3.6.0.min.js)0
-rw-r--r--src/web/gui/v1/lib/jquery.easypiechart-97b5824.min.js (renamed from web/gui/v1/lib/jquery.easypiechart-97b5824.min.js)0
-rw-r--r--src/web/gui/v1/lib/jquery.peity-3.2.0.min.js (renamed from web/gui/v1/lib/jquery.peity-3.2.0.min.js)0
-rw-r--r--src/web/gui/v1/lib/jquery.sparkline-2.1.2.min.js (renamed from web/gui/v1/lib/jquery.sparkline-2.1.2.min.js)0
-rw-r--r--src/web/gui/v1/lib/lz-string-1.4.4.min.js (renamed from web/gui/v1/lib/lz-string-1.4.4.min.js)0
-rw-r--r--src/web/gui/v1/lib/pako-1.0.6.min.js (renamed from web/gui/v1/lib/pako-1.0.6.min.js)0
-rw-r--r--src/web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js (renamed from web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js)0
-rw-r--r--src/web/gui/v1/lib/tableExport-1.6.0.min.js (renamed from web/gui/v1/lib/tableExport-1.6.0.min.js)0
-rw-r--r--src/web/gui/v1/manifest.json (renamed from web/gui/v1/manifest.json)0
-rw-r--r--src/web/gui/v1/precache-manifest.e2d3811ef5e4b7e75e1f56d6ee92ef2c.js (renamed from web/gui/v1/precache-manifest.e2d3811ef5e4b7e75e1f56d6ee92ef2c.js)0
-rw-r--r--src/web/gui/v1/refresh-badges.js (renamed from web/gui/v1/refresh-badges.js)0
-rw-r--r--src/web/gui/v1/robots.txt (renamed from web/gui/v1/robots.txt)0
-rw-r--r--src/web/gui/v1/service-worker.js (renamed from web/gui/v1/service-worker.js)0
-rw-r--r--src/web/gui/v1/sitemap.xml (renamed from web/gui/v1/sitemap.xml)0
-rw-r--r--src/web/gui/v1/static/css/2.c454aab8.chunk.css (renamed from web/gui/v1/static/css/2.c454aab8.chunk.css)0
-rw-r--r--src/web/gui/v1/static/css/2.c454aab8.chunk.css.map (renamed from web/gui/v1/static/css/2.c454aab8.chunk.css.map)0
-rw-r--r--src/web/gui/v1/static/css/4.a36e3b73.chunk.css (renamed from web/gui/v1/static/css/4.a36e3b73.chunk.css)0
-rw-r--r--src/web/gui/v1/static/css/4.a36e3b73.chunk.css.map (renamed from web/gui/v1/static/css/4.a36e3b73.chunk.css.map)0
-rw-r--r--src/web/gui/v1/static/css/main.53ba10f1.chunk.css (renamed from web/gui/v1/static/css/main.53ba10f1.chunk.css)0
-rw-r--r--src/web/gui/v1/static/css/main.53ba10f1.chunk.css.map (renamed from web/gui/v1/static/css/main.53ba10f1.chunk.css.map)0
-rw-r--r--src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js (renamed from web/gui/v1/static/js/10.a5cd7d0e.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map (renamed from web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/2.62d105c5.chunk.js (renamed from web/gui/v1/static/js/2.62d105c5.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/2.62d105c5.chunk.js.LICENSE (renamed from web/gui/v1/static/js/2.62d105c5.chunk.js.LICENSE)0
-rw-r--r--src/web/gui/v1/static/js/2.62d105c5.chunk.js.map (renamed from web/gui/v1/static/js/2.62d105c5.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/3.f137faca.chunk.js (renamed from web/gui/v1/static/js/3.f137faca.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/3.f137faca.chunk.js.map (renamed from web/gui/v1/static/js/3.f137faca.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/4.2dbcd906.chunk.js (renamed from web/gui/v1/static/js/4.2dbcd906.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/4.2dbcd906.chunk.js.map (renamed from web/gui/v1/static/js/4.2dbcd906.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/5.2f783a54.chunk.js (renamed from web/gui/v1/static/js/5.2f783a54.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/5.2f783a54.chunk.js.LICENSE (renamed from web/gui/v1/static/js/5.2f783a54.chunk.js.LICENSE)0
-rw-r--r--src/web/gui/v1/static/js/5.2f783a54.chunk.js.map (renamed from web/gui/v1/static/js/5.2f783a54.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/6.e1951239.chunk.js (renamed from web/gui/v1/static/js/6.e1951239.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/6.e1951239.chunk.js.map (renamed from web/gui/v1/static/js/6.e1951239.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/7.c2417fb0.chunk.js (renamed from web/gui/v1/static/js/7.c2417fb0.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/7.c2417fb0.chunk.js.map (renamed from web/gui/v1/static/js/7.c2417fb0.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/8.b4161ea2.chunk.js (renamed from web/gui/v1/static/js/8.b4161ea2.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/8.b4161ea2.chunk.js.map (renamed from web/gui/v1/static/js/8.b4161ea2.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/9.a4363968.chunk.js (renamed from web/gui/v1/static/js/9.a4363968.chunk.js)0
-rw-r--r--src/web/gui/v1/static/js/9.a4363968.chunk.js.map (renamed from web/gui/v1/static/js/9.a4363968.chunk.js.map)0
-rw-r--r--src/web/gui/v1/static/js/main.e248095a.chunk.js3
-rw-r--r--src/web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE (renamed from web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE)0
-rw-r--r--src/web/gui/v1/static/js/main.e248095a.chunk.js.map1
-rw-r--r--src/web/gui/v1/static/js/runtime-main.08abed8f.js (renamed from web/gui/v1/static/js/runtime-main.08abed8f.js)0
-rw-r--r--src/web/gui/v1/static/js/runtime-main.08abed8f.js.map (renamed from web/gui/v1/static/js/runtime-main.08abed8f.js.map)0
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2)bin18212 -> 18212 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff)bin23296 -> 23296 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff)bin25732 -> 25732 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2)bin20052 -> 20052 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-200.67524c36.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-200.67524c36.woff)bin24468 -> 24468 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-200.bf72c841.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-200.bf72c841.woff2)bin19240 -> 19240 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.52df2560.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-200italic.52df2560.woff)bin26196 -> 26196 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2)bin20536 -> 20536 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff)bin24220 -> 24220 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2)bin19124 -> 19124 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2)bin20468 -> 20468 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff)bin25876 -> 25876 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-400.263d6267.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-400.263d6267.woff2)bin17784 -> 17784 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-400.a2c56f94.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-400.a2c56f94.woff)bin22620 -> 22620 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.272f8611.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-400italic.272f8611.woff)bin24664 -> 24664 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2)bin19364 -> 19364 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-500.0866c244.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-500.0866c244.woff2)bin18640 -> 18640 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff)bin23792 -> 23792 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff)bin25852 -> 25852 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2)bin20380 -> 20380 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-600.337b1651.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-600.337b1651.woff)bin24104 -> 24104 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2)bin18912 -> 18912 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2)bin19940 -> 19940 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff)bin25428 -> 25428 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff)bin22904 -> 22904 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2)bin17976 -> 17976 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2 (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2)bin19360 -> 19360 bytes
-rw-r--r--src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff (renamed from web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff)bin24584 -> 24584 bytes
-rw-r--r--src/web/gui/v1/static/media/material-icons.0509ab09.woff2 (renamed from web/gui/v1/static/media/material-icons.0509ab09.woff2)bin60840 -> 60840 bytes
-rw-r--r--src/web/gui/v1/tv-react.html (renamed from web/gui/v1/tv-react.html)0
-rw-r--r--src/web/gui/v1/tv.html (renamed from web/gui/v1/tv.html)0
-rw-r--r--src/web/gui/v2/.well-known/assetlinks.json11
-rw-r--r--src/web/gui/v2/1220.866e5f8ef6dd53cc1146.chunk.js1
-rw-r--r--src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js2
-rw-r--r--src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js.LICENSE.txt16
-rw-r--r--src/web/gui/v2/1418.a399f41ec9789d008612.chunk.js1
-rw-r--r--src/web/gui/v2/1726.e4f235562d58cb4f4044.chunk.js1
-rw-r--r--src/web/gui/v2/1782.31d84c467a8446cb3c47.chunk.js1
-rw-r--r--src/web/gui/v2/1839.1dcd23c81c97fb79bfdb.chunk.js1
-rw-r--r--src/web/gui/v2/185.7461f65d16b20fe83fc1.chunk.js1
-rw-r--r--src/web/gui/v2/1875.e736e046980cb8eb4cda.chunk.js1
-rw-r--r--src/web/gui/v2/1876.ba66fdbcfb1b55334646.chunk.js1
-rw-r--r--src/web/gui/v2/195.3898e2d9ea61ff1d4a4f.chunk.js1
-rw-r--r--src/web/gui/v2/2007.3c73c91371062be4c05e.chunk.js1
-rw-r--r--src/web/gui/v2/2414.38b580f70a86a4f94b83.chunk.js1
-rw-r--r--src/web/gui/v2/3104.dfd9b1f79c9550ab8493.chunk.js1
-rw-r--r--src/web/gui/v2/3296.66994eada739315fc37e.chunk.js1
-rw-r--r--src/web/gui/v2/3350.24934ec57134cbef07bf.chunk.js1
-rw-r--r--src/web/gui/v2/3584.7b6df71f431fe58061ad.chunk.js1
-rw-r--r--src/web/gui/v2/3624.b8b5bc981ae890a8a5b8.chunk.js1
-rw-r--r--src/web/gui/v2/3705.38e023af816fb6ce8fc9.chunk.js1
-rw-r--r--src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js2
-rw-r--r--src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js.LICENSE.txt13
-rw-r--r--src/web/gui/v2/3736.b247e40ccbdc039b9877.chunk.js1
-rw-r--r--src/web/gui/v2/3750.6f01a0becb7db332b4ce.chunk.js1
-rw-r--r--src/web/gui/v2/3968.a5f7366160b7ac086dba.chunk.js1
-rw-r--r--src/web/gui/v2/3D_PARTY_LICENSES.txt (renamed from web/gui/v2/3D_PARTY_LICENSES.txt)1503
-rw-r--r--src/web/gui/v2/4034.9c82e72b081978919942.chunk.js1
-rw-r--r--src/web/gui/v2/4414.60a74c3b7534b4a25469.chunk.js1
-rw-r--r--src/web/gui/v2/4680.0c75b44bbc80f4591fdd.chunk.js1
-rw-r--r--src/web/gui/v2/5171.2a848991a41e02f24c8d.js2
-rw-r--r--src/web/gui/v2/5171.2a848991a41e02f24c8d.js.LICENSE.txt151
-rw-r--r--src/web/gui/v2/5246.a7c78643acccf04d7268.chunk.js1
-rw-r--r--src/web/gui/v2/5304.dcb81c99fcb90f8ee8cc.chunk.js1
-rw-r--r--src/web/gui/v2/5426.1235a7a39c1b0923b071.chunk.js1
-rw-r--r--src/web/gui/v2/5596.8280cb325a103342aa30.chunk.js1
-rw-r--r--src/web/gui/v2/5598.99e492f7ae4d391df96f.chunk.js1
-rw-r--r--src/web/gui/v2/5700.313f7b9c7005d2022b03.chunk.js1
-rw-r--r--src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js2
-rw-r--r--src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js.LICENSE.txt34
-rw-r--r--src/web/gui/v2/5794.719f2daca8b8f3a118fe.chunk.js1
-rw-r--r--src/web/gui/v2/6008.07f03fb5dba476a12f91.chunk.js1
-rw-r--r--src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js2
-rw-r--r--src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js.LICENSE.txt6
-rw-r--r--src/web/gui/v2/6218.26fc25279f45fbcf29f7.chunk.js1
-rw-r--r--src/web/gui/v2/6323.425683f5bf71a51caf65.chunk.js1
-rw-r--r--src/web/gui/v2/6331.89070793921be1288bb5.css (renamed from web/gui/v2/3253.89070793921be1288bb5.css)0
-rw-r--r--src/web/gui/v2/6331.ccfaab2b17a28e1b6aa2.chunk.js1
-rw-r--r--src/web/gui/v2/6760.fe4a9b58186542294e85.chunk.js1
-rw-r--r--src/web/gui/v2/683.95b7a3193b43fd5dbe51.chunk.js1
-rw-r--r--src/web/gui/v2/683.cc9fa5f3bdc0bf3ab2fc.css (renamed from web/gui/v2/6723.cc9fa5f3bdc0bf3ab2fc.css)0
-rw-r--r--src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js2
-rw-r--r--src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js.LICENSE.txt (renamed from web/gui/v2/1277.884a6e09fbb50c214d8e.chunk.js.LICENSE.txt)0
-rw-r--r--src/web/gui/v2/7146.43b5125ff0b41138f0bc.chunk.js1
-rw-r--r--src/web/gui/v2/7208.3c255b9641ab4d451747.chunk.js1
-rw-r--r--src/web/gui/v2/7332.8f89f4887946c129ea01.chunk.js1
-rw-r--r--src/web/gui/v2/7340.c563ddaad6c68dab9088.chunk.js1
-rw-r--r--src/web/gui/v2/7410.cb47519a7a5187208b28.chunk.js1
-rw-r--r--src/web/gui/v2/7436.6d4c25c5ff7d2e65734c.chunk.js1
-rw-r--r--src/web/gui/v2/7471.d61aa69f317a13bd1b86.chunk.js1
-rw-r--r--src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js8
-rw-r--r--src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js.LICENSE.txt11
-rw-r--r--src/web/gui/v2/7519.8a99c6b9370779196847.chunk.js1
-rw-r--r--src/web/gui/v2/7529.75d71f48d8d6ea454b6d.chunk.js1
-rw-r--r--src/web/gui/v2/7789.89070793921be1288bb5.css (renamed from web/gui/v2/6848.89070793921be1288bb5.css)0
-rw-r--r--src/web/gui/v2/7789.f00b7764a97a7dadff97.chunk.js1
-rw-r--r--src/web/gui/v2/7840.e1af907905ff10afb069.chunk.js1
-rw-r--r--src/web/gui/v2/785.c45abbb1e2a4915d85df.chunk.js1
-rw-r--r--src/web/gui/v2/7857.0d6fb5e4a2c2b8996e0f.chunk.js1
-rw-r--r--src/web/gui/v2/7959.3995671185f9720b5454.chunk.js1
-rw-r--r--src/web/gui/v2/8011.3f8282bb427ea06e9408.chunk.js1
-rw-r--r--src/web/gui/v2/8059.c88ad65e1926faee2379.chunk.js1
-rw-r--r--src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js2
-rw-r--r--src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js.LICENSE.txt (renamed from web/gui/v2/8459.add89d7bb0434b110cd3.chunk.js.LICENSE.txt)0
-rw-r--r--src/web/gui/v2/8323.e22de33686bb2f34063c.css2
-rw-r--r--src/web/gui/v2/8473.757c1686b1578c6813c8.chunk.js1
-rw-r--r--src/web/gui/v2/8505.b10bf3549c213fe15d55.chunk.js1
-rw-r--r--src/web/gui/v2/8507.89070793921be1288bb5.css (renamed from web/gui/v2/9594.89070793921be1288bb5.css)0
-rw-r--r--src/web/gui/v2/8507.e30db778518756ef63fa.chunk.js1
-rw-r--r--src/web/gui/v2/86.167efe55b22f02c3155a.chunk.js1
-rw-r--r--src/web/gui/v2/8676.a3d687b3b339a72ab66e.chunk.js1
-rw-r--r--src/web/gui/v2/8784.c51d36fede97c85313e9.chunk.js1
-rw-r--r--src/web/gui/v2/9297.394c9cbf0a1e402384a6.chunk.js1
-rw-r--r--src/web/gui/v2/934.aadd4297c0cd646a1038.chunk.js1
-rw-r--r--src/web/gui/v2/9473.3693c06a873280f11bd6.chunk.js1
-rw-r--r--src/web/gui/v2/9510.58c95eb5f0290291b5a9.chunk.js1
-rw-r--r--src/web/gui/v2/966.89070793921be1288bb5.css2
-rw-r--r--src/web/gui/v2/966.8f0a484a79552c192bc1.chunk.js1
-rw-r--r--src/web/gui/v2/9818.ca4131b4d88d20e88f72.chunk.js1
-rw-r--r--src/web/gui/v2/9843.75b313f97c4d363a4959.chunk.js1
-rw-r--r--src/web/gui/v2/9912.b952e26497a284ac37b2.chunk.js1
-rw-r--r--src/web/gui/v2/LICENSE.md (renamed from web/gui/v2/LICENSE.md)0
l---------src/web/gui/v2/README.md (renamed from web/gui/v2/README.md)0
-rw-r--r--src/web/gui/v2/agent.html (renamed from web/gui/v2/agent.html)23
-rw-r--r--src/web/gui/v2/allFiles.6.104.1.json374
-rw-r--r--src/web/gui/v2/allFiles.6.json374
-rw-r--r--src/web/gui/v2/app.7443b231e52789baa643.js1
-rw-r--r--src/web/gui/v2/app.cb2e9f9a81cf9533384e.css (renamed from web/gui/v2/app.cb2e9f9a81cf9533384e.css)0
-rw-r--r--src/web/gui/v2/apple-app-site-association (renamed from web/gui/v2/apple-app-site-association)0
-rw-r--r--src/web/gui/v2/bundlesManifest.6.json9
-rw-r--r--src/web/gui/v2/dashboard_v2.cmake297
-rw-r--r--src/web/gui/v2/favicon.ico (renamed from web/gui/v2/favicon.ico)bin101252 -> 101252 bytes
-rw-r--r--src/web/gui/v2/index.html245
-rw-r--r--src/web/gui/v2/local-agent.html (renamed from web/gui/v2/local-agent.html)23
-rw-r--r--src/web/gui/v2/netdata.charts.f0b9e2b96837688d2aab.js1
-rw-r--r--src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js2
-rw-r--r--src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js.LICENSE.txt23
-rw-r--r--src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js2
-rw-r--r--src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js.LICENSE.txt (renamed from web/gui/v2/npm.react.dom.443419261632ac7d4e78.js.LICENSE.txt)0
-rw-r--r--src/web/gui/v2/registry-access.html (renamed from web/gui/v2/registry-access.html)0
-rw-r--r--src/web/gui/v2/registry-alert-redirect.html152
-rw-r--r--src/web/gui/v2/registry-hello.html (renamed from web/gui/v2/registry-hello.html)0
-rw-r--r--src/web/gui/v2/runtime.30ce76c6e7acf60ebf83.js1
-rw-r--r--src/web/gui/v2/static/.well-known/assetlinks.json11
-rw-r--r--src/web/gui/v2/static/apple-app-site-association (renamed from web/gui/v2/static/apple-app-site-association)0
-rw-r--r--src/web/gui/v2/static/email/img/clea_badge.png (renamed from web/gui/v2/static/email/img/clea_badge.png)bin1147 -> 1147 bytes
-rw-r--r--src/web/gui/v2/static/email/img/clea_siren.png (renamed from web/gui/v2/static/email/img/clea_siren.png)bin2427 -> 2427 bytes
-rw-r--r--src/web/gui/v2/static/email/img/community_icon.png (renamed from web/gui/v2/static/email/img/community_icon.png)bin1271 -> 1271 bytes
-rw-r--r--src/web/gui/v2/static/email/img/configure_icon.png (renamed from web/gui/v2/static/email/img/configure_icon.png)bin1256 -> 1256 bytes
-rw-r--r--src/web/gui/v2/static/email/img/crit_badge.png (renamed from web/gui/v2/static/email/img/crit_badge.png)bin2479 -> 2479 bytes
-rw-r--r--src/web/gui/v2/static/email/img/crit_siren.png (renamed from web/gui/v2/static/email/img/crit_siren.png)bin3432 -> 3432 bytes
-rw-r--r--src/web/gui/v2/static/email/img/flood_siren.png (renamed from web/gui/v2/static/email/img/flood_siren.png)bin2059 -> 2059 bytes
-rw-r--r--src/web/gui/v2/static/email/img/full_logo.png (renamed from web/gui/v2/static/email/img/full_logo.png)bin1298 -> 1298 bytes
-rw-r--r--src/web/gui/v2/static/email/img/header.png (renamed from web/gui/v2/static/email/img/header.png)bin5386 -> 5386 bytes
-rw-r--r--src/web/gui/v2/static/email/img/isotype_600.png (renamed from web/gui/v2/static/email/img/isotype_600.png)bin9114 -> 9114 bytes
-rw-r--r--src/web/gui/v2/static/email/img/label_critical.png (renamed from web/gui/v2/static/email/img/label_critical.png)bin1595 -> 1595 bytes
-rw-r--r--src/web/gui/v2/static/email/img/label_recovered.png (renamed from web/gui/v2/static/email/img/label_recovered.png)bin2027 -> 2027 bytes
-rw-r--r--src/web/gui/v2/static/email/img/label_warning.png (renamed from web/gui/v2/static/email/img/label_warning.png)bin1752 -> 1752 bytes
-rw-r--r--src/web/gui/v2/static/email/img/reachability_siren.png (renamed from web/gui/v2/static/email/img/reachability_siren.png)bin3951 -> 3951 bytes
-rw-r--r--src/web/gui/v2/static/email/img/warn_badge.png (renamed from web/gui/v2/static/email/img/warn_badge.png)bin2204 -> 2204 bytes
-rw-r--r--src/web/gui/v2/static/email/img/warn_siren.png (renamed from web/gui/v2/static/email/img/warn_siren.png)bin3005 -> 3005 bytes
-rw-r--r--src/web/gui/v2/static/img/list-style-image.svg (renamed from web/gui/v2/static/img/list-style-image.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/alpine.svg (renamed from web/gui/v2/static/img/logos/os/alpine.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/arch.svg (renamed from web/gui/v2/static/img/logos/os/arch.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/centos.svg (renamed from web/gui/v2/static/img/logos/os/centos.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/coreos.svg (renamed from web/gui/v2/static/img/logos/os/coreos.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/debian.svg (renamed from web/gui/v2/static/img/logos/os/debian.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/docker.svg (renamed from web/gui/v2/static/img/logos/os/docker.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/fedora.svg (renamed from web/gui/v2/static/img/logos/os/fedora.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/freebsd.svg (renamed from web/gui/v2/static/img/logos/os/freebsd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/freenas.svg (renamed from web/gui/v2/static/img/logos/os/freenas.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/gentoo.svg (renamed from web/gui/v2/static/img/logos/os/gentoo.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/kubernetes.svg (renamed from web/gui/v2/static/img/logos/os/kubernetes.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/linux-small.svg (renamed from web/gui/v2/static/img/logos/os/linux-small.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/linux.svg (renamed from web/gui/v2/static/img/logos/os/linux.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/macos.svg (renamed from web/gui/v2/static/img/logos/os/macos.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/manjaro.svg (renamed from web/gui/v2/static/img/logos/os/manjaro.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/openstack.svg (renamed from web/gui/v2/static/img/logos/os/openstack.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/opensuse.svg (renamed from web/gui/v2/static/img/logos/os/opensuse.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/openwrt.svg (renamed from web/gui/v2/static/img/logos/os/openwrt.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/oracle.svg (renamed from web/gui/v2/static/img/logos/os/oracle.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/pfsense.svg (renamed from web/gui/v2/static/img/logos/os/pfsense.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/placeholder.svg (renamed from web/gui/v2/static/img/logos/os/placeholder.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/raspberry-pi.svg (renamed from web/gui/v2/static/img/logos/os/raspberry-pi.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/redhat.svg (renamed from web/gui/v2/static/img/logos/os/redhat.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/rocky.svg (renamed from web/gui/v2/static/img/logos/os/rocky.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/suse.svg (renamed from web/gui/v2/static/img/logos/os/suse.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/os/ubuntu.svg (renamed from web/gui/v2/static/img/logos/os/ubuntu.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/access-point.svg (renamed from web/gui/v2/static/img/logos/services/access-point.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/activemq.svg (renamed from web/gui/v2/static/img/logos/services/activemq.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/adaptec.svg (renamed from web/gui/v2/static/img/logos/services/adaptec.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/alerta.svg (renamed from web/gui/v2/static/img/logos/services/alerta.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/apache.svg (renamed from web/gui/v2/static/img/logos/services/apache.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/apc.svg (renamed from web/gui/v2/static/img/logos/services/apc.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/aws-sns.svg (renamed from web/gui/v2/static/img/logos/services/aws-sns.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/aws.svg (renamed from web/gui/v2/static/img/logos/services/aws.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/beanstalkd.svg (renamed from web/gui/v2/static/img/logos/services/beanstalkd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/boinc.svg (renamed from web/gui/v2/static/img/logos/services/boinc.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/btrfs.svg (renamed from web/gui/v2/static/img/logos/services/btrfs.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/ceph.svg (renamed from web/gui/v2/static/img/logos/services/ceph.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/chrony.svg (renamed from web/gui/v2/static/img/logos/services/chrony.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/cloud.svg (renamed from web/gui/v2/static/img/logos/services/cloud.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/concul.svg (renamed from web/gui/v2/static/img/logos/services/concul.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/consul.svg (renamed from web/gui/v2/static/img/logos/services/consul.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/container.svg (renamed from web/gui/v2/static/img/logos/services/container.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/couchdb.svg (renamed from web/gui/v2/static/img/logos/services/couchdb.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/cups.svg (renamed from web/gui/v2/static/img/logos/services/cups.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/data-encryption.svg (renamed from web/gui/v2/static/img/logos/services/data-encryption.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/ddos.svg (renamed from web/gui/v2/static/img/logos/services/ddos.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/discord.svg (renamed from web/gui/v2/static/img/logos/services/discord.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/dns.svg (renamed from web/gui/v2/static/img/logos/services/dns.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/docker.svg (renamed from web/gui/v2/static/img/logos/services/docker.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/dovecot.svg (renamed from web/gui/v2/static/img/logos/services/dovecot.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/elasticsearch.svg (renamed from web/gui/v2/static/img/logos/services/elasticsearch.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/email.svg (renamed from web/gui/v2/static/img/logos/services/email.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/exim.svg (renamed from web/gui/v2/static/img/logos/services/exim.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/fail2ban.svg (renamed from web/gui/v2/static/img/logos/services/fail2ban.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/flock.svg (renamed from web/gui/v2/static/img/logos/services/flock.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/fluentd.svg (renamed from web/gui/v2/static/img/logos/services/fluentd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/fping.svg (renamed from web/gui/v2/static/img/logos/services/fping.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/freeradius.svg (renamed from web/gui/v2/static/img/logos/services/freeradius.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/fronius.svg (renamed from web/gui/v2/static/img/logos/services/fronius.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/gnu-freeipmi.svg (renamed from web/gui/v2/static/img/logos/services/gnu-freeipmi.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/golang.svg (renamed from web/gui/v2/static/img/logos/services/golang.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/grafana.svg (renamed from web/gui/v2/static/img/logos/services/grafana.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/graphite.svg (renamed from web/gui/v2/static/img/logos/services/graphite.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/haproxy.svg (renamed from web/gui/v2/static/img/logos/services/haproxy.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/hub.svg (renamed from web/gui/v2/static/img/logos/services/hub.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/icecast.svg (renamed from web/gui/v2/static/img/logos/services/icecast.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/influxdb.svg (renamed from web/gui/v2/static/img/logos/services/influxdb.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/ipfs.svg (renamed from web/gui/v2/static/img/logos/services/ipfs.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/irc.svg (renamed from web/gui/v2/static/img/logos/services/irc.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/isc.svg (renamed from web/gui/v2/static/img/logos/services/isc.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/kafka.svg (renamed from web/gui/v2/static/img/logos/services/kafka.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/kairosdb.svg (renamed from web/gui/v2/static/img/logos/services/kairosdb.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/kavenegar.svg (renamed from web/gui/v2/static/img/logos/services/kavenegar.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/key-file.svg (renamed from web/gui/v2/static/img/logos/services/key-file.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/kubernetes.svg (renamed from web/gui/v2/static/img/logos/services/kubernetes.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/libreswan.svg (renamed from web/gui/v2/static/img/logos/services/libreswan.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/libvirt.svg (renamed from web/gui/v2/static/img/logos/services/libvirt.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/lighthttpd.svg (renamed from web/gui/v2/static/img/logos/services/lighthttpd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/linux.svg (renamed from web/gui/v2/static/img/logos/services/linux.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/litespeed.svg (renamed from web/gui/v2/static/img/logos/services/litespeed.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/lm-sensors.svg (renamed from web/gui/v2/static/img/logos/services/lm-sensors.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/load-balancer.svg (renamed from web/gui/v2/static/img/logos/services/load-balancer.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/log-file.svg (renamed from web/gui/v2/static/img/logos/services/log-file.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/logstash.svg (renamed from web/gui/v2/static/img/logos/services/logstash.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/lxd.svg (renamed from web/gui/v2/static/img/logos/services/lxd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/mariadb.svg (renamed from web/gui/v2/static/img/logos/services/mariadb.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/memcached.svg (renamed from web/gui/v2/static/img/logos/services/memcached.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/messagebird.svg (renamed from web/gui/v2/static/img/logos/services/messagebird.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/mongodb.svg (renamed from web/gui/v2/static/img/logos/services/mongodb.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/monit.svg (renamed from web/gui/v2/static/img/logos/services/monit.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/monitoring.svg (renamed from web/gui/v2/static/img/logos/services/monitoring.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/mysql.svg (renamed from web/gui/v2/static/img/logos/services/mysql.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/netfilter.svg (renamed from web/gui/v2/static/img/logos/services/netfilter.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/network-protocol.svg (renamed from web/gui/v2/static/img/logos/services/network-protocol.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/network.svg (renamed from web/gui/v2/static/img/logos/services/network.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/nfs.svg (renamed from web/gui/v2/static/img/logos/services/nfs.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/nginx-plus.svg (renamed from web/gui/v2/static/img/logos/services/nginx-plus.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/nginx.svg (renamed from web/gui/v2/static/img/logos/services/nginx.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/notification-bell.svg (renamed from web/gui/v2/static/img/logos/services/notification-bell.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/nsd.svg (renamed from web/gui/v2/static/img/logos/services/nsd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/ntpd.svg (renamed from web/gui/v2/static/img/logos/services/ntpd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/nut.svg (renamed from web/gui/v2/static/img/logos/services/nut.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/nvidia.svg (renamed from web/gui/v2/static/img/logos/services/nvidia.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/openldap.svg (renamed from web/gui/v2/static/img/logos/services/openldap.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/opensips.svg (renamed from web/gui/v2/static/img/logos/services/opensips.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/opentsdb.svg (renamed from web/gui/v2/static/img/logos/services/opentsdb.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/openvpn.svg (renamed from web/gui/v2/static/img/logos/services/openvpn.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/openzfs.svg (renamed from web/gui/v2/static/img/logos/services/openzfs.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/oracle.svg (renamed from web/gui/v2/static/img/logos/services/oracle.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/pagerduty.svg (renamed from web/gui/v2/static/img/logos/services/pagerduty.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/php-fpm.svg (renamed from web/gui/v2/static/img/logos/services/php-fpm.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/placeholder.svg (renamed from web/gui/v2/static/img/logos/services/placeholder.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/postfix.svg (renamed from web/gui/v2/static/img/logos/services/postfix.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/postgresql.svg (renamed from web/gui/v2/static/img/logos/services/postgresql.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/powerdns.svg (renamed from web/gui/v2/static/img/logos/services/powerdns.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/processor.svg (renamed from web/gui/v2/static/img/logos/services/processor.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/prometheus.svg (renamed from web/gui/v2/static/img/logos/services/prometheus.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/prowl.svg (renamed from web/gui/v2/static/img/logos/services/prowl.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/proxysql.svg (renamed from web/gui/v2/static/img/logos/services/proxysql.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/puppet.svg (renamed from web/gui/v2/static/img/logos/services/puppet.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/pushbullet.svg (renamed from web/gui/v2/static/img/logos/services/pushbullet.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/pushover.svg (renamed from web/gui/v2/static/img/logos/services/pushover.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/qos.svg (renamed from web/gui/v2/static/img/logos/services/qos.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/rabbitmq.svg (renamed from web/gui/v2/static/img/logos/services/rabbitmq.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/raspberry-pi.svg (renamed from web/gui/v2/static/img/logos/services/raspberry-pi.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/redis.svg (renamed from web/gui/v2/static/img/logos/services/redis.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/rethinkdb.svg (renamed from web/gui/v2/static/img/logos/services/rethinkdb.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/retroshare.svg (renamed from web/gui/v2/static/img/logos/services/retroshare.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/rocketchat.svg (renamed from web/gui/v2/static/img/logos/services/rocketchat.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/samba.svg (renamed from web/gui/v2/static/img/logos/services/samba.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/server-connection.svg (renamed from web/gui/v2/static/img/logos/services/server-connection.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/slack.svg (renamed from web/gui/v2/static/img/logos/services/slack.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/sma.svg (renamed from web/gui/v2/static/img/logos/services/sma.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/smstools3.svg (renamed from web/gui/v2/static/img/logos/services/smstools3.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/solr.svg (renamed from web/gui/v2/static/img/logos/services/solr.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/spigot.svg (renamed from web/gui/v2/static/img/logos/services/spigot.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/springboot.svg (renamed from web/gui/v2/static/img/logos/services/springboot.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/squid.svg (renamed from web/gui/v2/static/img/logos/services/squid.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/statsd.svg (renamed from web/gui/v2/static/img/logos/services/statsd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/stiebel.svg (renamed from web/gui/v2/static/img/logos/services/stiebel.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/systemd.svg (renamed from web/gui/v2/static/img/logos/services/systemd.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/telegram.svg (renamed from web/gui/v2/static/img/logos/services/telegram.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/temperature.svg (renamed from web/gui/v2/static/img/logos/services/temperature.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/tomcat.svg (renamed from web/gui/v2/static/img/logos/services/tomcat.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/tor.svg (renamed from web/gui/v2/static/img/logos/services/tor.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/traefik.svg (renamed from web/gui/v2/static/img/logos/services/traefik.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/twilio.svg (renamed from web/gui/v2/static/img/logos/services/twilio.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/unbound.svg (renamed from web/gui/v2/static/img/logos/services/unbound.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/uwsgi.svg (renamed from web/gui/v2/static/img/logos/services/uwsgi.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/varnish.svg (renamed from web/gui/v2/static/img/logos/services/varnish.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/veritas.svg (renamed from web/gui/v2/static/img/logos/services/veritas.svg)0
-rw-r--r--src/web/gui/v2/static/img/logos/services/xen.svg (renamed from web/gui/v2/static/img/logos/services/xen.svg)0
-rw-r--r--src/web/gui/v2/static/img/mail/isotype.png (renamed from web/gui/v2/static/img/mail/isotype.png)bin2611 -> 2611 bytes
-rw-r--r--src/web/gui/v2/static/img/mail/isotype.svg (renamed from web/gui/v2/static/img/mail/isotype.svg)0
-rw-r--r--src/web/gui/v2/static/img/mail/logotype.png (renamed from web/gui/v2/static/img/mail/logotype.png)bin1301 -> 1301 bytes
-rw-r--r--src/web/gui/v2/static/img/mail/logotype.svg (renamed from web/gui/v2/static/img/mail/logotype.svg)0
-rw-r--r--src/web/gui/v2/static/img/new-dashboard.svg (renamed from web/gui/v2/static/img/new-dashboard.svg)104
-rw-r--r--src/web/gui/v2/static/img/no-filter-results.png (renamed from web/gui/v2/static/img/no-filter-results.png)bin79381 -> 79381 bytes
-rw-r--r--src/web/gui/v2/static/img/no-nodes-room.svg (renamed from web/gui/v2/static/img/no-nodes-room.svg)0
-rw-r--r--src/web/gui/v2/static/img/rack.png (renamed from web/gui/v2/static/img/rack.png)bin9261 -> 9261 bytes
-rw-r--r--src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.css (renamed from web/gui/v2/static/site/pages/holding-page-503/holding-page-503.css)0
-rw-r--r--src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.svg (renamed from web/gui/v2/static/site/pages/holding-page-503/holding-page-503.svg)0
-rw-r--r--src/web/gui/v2/static/site/pages/holding-page-503/index.html (renamed from web/gui/v2/static/site/pages/holding-page-503/index.html)0
-rw-r--r--src/web/gui/v2/static/site/pages/holding-page-503/multiple-logos-group.svg (renamed from web/gui/v2/static/site/pages/holding-page-503/multiple-logos-group.svg)0
-rw-r--r--src/web/gui/v2/static/site/pages/holding-page-503/netdata-logo-white.svg (renamed from web/gui/v2/static/site/pages/holding-page-503/netdata-logo-white.svg)0
-rw-r--r--src/web/gui/v2/static/site/pages/holding-page-503/reset.svg (renamed from web/gui/v2/static/site/pages/holding-page-503/reset.svg)0
-rw-r--r--src/web/gui/v2/static/splash.css (renamed from web/gui/v2/static/splash.css)0
-rw-r--r--src/web/gui/v2/sw.js1
-rw-r--r--src/web/gui/v2live.html (renamed from web/gui/v2live.html)0
-rw-r--r--src/web/rtc/README.md (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/test/readable)0
-rw-r--r--src/web/rtc/webrtc.c (renamed from web/rtc/webrtc.c)12
-rw-r--r--src/web/rtc/webrtc.h (renamed from web/rtc/webrtc.h)2
-rw-r--r--src/web/server/README.md271
-rw-r--r--src/web/server/h2o/connlist.c (renamed from web/server/h2o/connlist.c)1
-rw-r--r--src/web/server/h2o/connlist.h (renamed from web/server/h2o/connlist.h)0
-rw-r--r--src/web/server/h2o/h2o_utils.c (renamed from web/server/h2o/h2o_utils.c)2
-rw-r--r--src/web/server/h2o/h2o_utils.h (renamed from web/server/h2o/h2o_utils.h)0
-rw-r--r--src/web/server/h2o/http_server.c (renamed from web/server/h2o/http_server.c)25
-rw-r--r--src/web/server/h2o/http_server.h (renamed from web/server/h2o/http_server.h)2
-rw-r--r--src/web/server/h2o/libh2o/.clang-format (renamed from web/server/h2o/libh2o/.clang-format)0
-rw-r--r--src/web/server/h2o/libh2o/.gitignore (renamed from web/server/h2o/libh2o/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/.gitmodules (renamed from web/server/h2o/libh2o/.gitmodules)0
-rw-r--r--src/web/server/h2o/libh2o/.travis.yml (renamed from web/server/h2o/libh2o/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/CMakeLists.txt (renamed from web/server/h2o/libh2o/CMakeLists.txt)0
-rw-r--r--src/web/server/h2o/libh2o/Changes (renamed from web/server/h2o/libh2o/Changes)0
-rw-r--r--src/web/server/h2o/libh2o/LICENSE (renamed from web/server/h2o/libh2o/LICENSE)0
-rw-r--r--src/web/server/h2o/libh2o/README.md (renamed from web/server/h2o/libh2o/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/cmake/FindLibUV.cmake (renamed from web/server/h2o/libh2o/cmake/FindLibUV.cmake)0
-rw-r--r--src/web/server/h2o/libh2o/cmake/FindLibYAML.cmake (renamed from web/server/h2o/libh2o/cmake/FindLibYAML.cmake)0
-rw-r--r--src/web/server/h2o/libh2o/cmake/FindMruby.cmake (renamed from web/server/h2o/libh2o/cmake/FindMruby.cmake)0
-rw-r--r--src/web/server/h2o/libh2o/cmake/FindWslay.cmake (renamed from web/server/h2o/libh2o/cmake/FindWslay.cmake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/.gitignore (renamed from web/server/h2o/libh2o/deps/brotli/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/.gitmodules (renamed from web/server/h2o/libh2o/deps/brotli/.gitmodules)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/.travis.yml (renamed from web/server/h2o/libh2o/deps/brotli/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/CONTRIBUTING.md (renamed from web/server/h2o/libh2o/deps/brotli/CONTRIBUTING.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/LICENSE (renamed from web/server/h2o/libh2o/deps/brotli/LICENSE)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/README.md (renamed from web/server/h2o/libh2o/deps/brotli/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/appveyor.yml (renamed from web/server/h2o/libh2o/deps/brotli/appveyor.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/appveyor/install.ps1 (renamed from web/server/h2o/libh2o/deps/brotli/appveyor/install.ps1)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/appveyor/run_with_compiler.cmd (renamed from web/server/h2o/libh2o/deps/brotli/appveyor/run_with_compiler.cmd)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/Makefile (renamed from web/server/h2o/libh2o/deps/brotli/dec/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.c (renamed from web/server/h2o/libh2o/deps/brotli/dec/bit_reader.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/bit_reader.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/context.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/context.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/decode.c (renamed from web/server/h2o/libh2o/deps/brotli/dec/decode.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/decode.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/decode.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/dictionary.c (renamed from web/server/h2o/libh2o/deps/brotli/dec/dictionary.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/dictionary.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/dictionary.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/huffman.c (renamed from web/server/h2o/libh2o/deps/brotli/dec/huffman.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/huffman.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/huffman.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/port.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/port.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/prefix.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/prefix.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/state.c (renamed from web/server/h2o/libh2o/deps/brotli/dec/state.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/state.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/state.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/transform.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/transform.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/dec/types.h (renamed from web/server/h2o/libh2o/deps/brotli/dec/types.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/docs/brotli-comparison-study-2015-09-22.pdf (renamed from web/server/h2o/libh2o/deps/brotli/docs/brotli-comparison-study-2015-09-22.pdf)bin215208 -> 215208 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.nroff (renamed from web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.nroff)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.txt (renamed from web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/Makefile (renamed from web/server/h2o/libh2o/deps/brotli/enc/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/backward_references.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/backward_references.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/backward_references.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/backward_references.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/bit_cost.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/bit_cost.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/block_splitter.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/block_splitter.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/cluster.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/cluster.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/command.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/command.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/context.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/context.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/dictionary.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/dictionary.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/dictionary.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/dictionary.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/dictionary_hash.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/dictionary_hash.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/encode.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/encode.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/encode.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/encode.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode_static.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/entropy_encode_static.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/fast_log.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/fast_log.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/find_match_length.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/find_match_length.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/hash.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/hash.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/histogram.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/histogram.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/histogram.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/histogram.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/literal_cost.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/literal_cost.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/metablock.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/metablock.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/metablock.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/metablock.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/port.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/port.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/prefix.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/prefix.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/ringbuffer.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/ringbuffer.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/static_dict.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/static_dict.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/static_dict.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/static_dict.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/static_dict_lut.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/static_dict_lut.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/streams.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/streams.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/streams.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/streams.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/transform.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/transform.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/types.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/types.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.cc (renamed from web/server/h2o/libh2o/deps/brotli/enc/utf8_util.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/utf8_util.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/enc/write_bits.h (renamed from web/server/h2o/libh2o/deps/brotli/enc/write_bits.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/python/README.md (renamed from web/server/h2o/libh2o/deps/brotli/python/README.md)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/brotli/python/bro.py (renamed from web/server/h2o/libh2o/deps/brotli/python/bro.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/python/brotlimodule.cc (renamed from web/server/h2o/libh2o/deps/brotli/python/brotlimodule.cc)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/brotli/python/tests/compatibility_test.py (renamed from web/server/h2o/libh2o/deps/brotli/python/tests/compatibility_test.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/python/tests/custom_dictionary_test.py (renamed from web/server/h2o/libh2o/deps/brotli/python/tests/custom_dictionary_test.py)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/brotli/python/tests/roundtrip_test.py (renamed from web/server/h2o/libh2o/deps/brotli/python/tests/roundtrip_test.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/python/tests/test_utils.py (renamed from web/server/h2o/libh2o/deps/brotli/python/tests/test_utils.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/setup.py (renamed from web/server/h2o/libh2o/deps/brotli/setup.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/shared.mk (renamed from web/server/h2o/libh2o/deps/brotli/shared.mk)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/Makefile (renamed from web/server/h2o/libh2o/deps/brotli/tests/Makefile)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/brotli/tests/compatibility_test.sh (renamed from web/server/h2o/libh2o/deps/brotli/tests/compatibility_test.sh)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/brotli/tests/roundtrip_test.sh (renamed from web/server/h2o/libh2o/deps/brotli/tests/roundtrip_test.sh)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y.compressed)bin12 -> 12 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/64x)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/64x.compressed)bin10 -> 10 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt.compressed)bin50096 -> 50096 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt.compressed)bin45687 -> 45687 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536)bin65792 -> 65792 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536.compressed)bin19 -> 19 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/bb.binast (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/bb.binast)bin12356697 -> 12356697 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file)bin50096 -> 50096 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file.compressed)bin50100 -> 50100 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated)bin144224 -> 144224 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated.compressed)bin50299 -> 50299 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/test/writable)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.00 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.00)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.01 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.01)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.02 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.02)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.03 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.03)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.04 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.04)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.05 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.05)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.06 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.06)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.07 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.07)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.08 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.08)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.09 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.09)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.10 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.10)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.11 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.11)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.12 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.12)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.13 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.13)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.14 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.14)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.15 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.15)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.16 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.16)bin4 -> 4 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.17 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.17)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.18 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.18)bin196610 -> 196610 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt.compressed)bin124719 -> 124719 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh)bin285886 -> 285886 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh.compressed)bin161743 -> 161743 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey.compressed)bin425 -> 425 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt.compressed)bin174771 -> 174771 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox.compressed)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated.compressed)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_chunks (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/random_chunks)bin2704 -> 2704 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin)bin10000 -> 10000 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin.compressed)bin10004 -> 10004 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa.compressed)bin69 -> 69 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/x)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed)bin5 -> 5 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.00 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.00)bin5 -> 5 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.01 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.01)bin8 -> 8 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.02 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.02)bin5 -> 5 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.03 (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.03)bin10 -> 10 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy.compressed)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros)bin262144 -> 262144 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros.compressed (renamed from web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros.compressed)bin13 -> 13 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tools/Makefile (renamed from web/server/h2o/libh2o/deps/brotli/tools/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tools/bro.cc (renamed from web/server/h2o/libh2o/deps/brotli/tools/bro.cc)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/brotli/tools/rfc-format.py (renamed from web/server/h2o/libh2o/deps/brotli/tools/rfc-format.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/brotli/tools/version.h (renamed from web/server/h2o/libh2o/deps/brotli/tools/version.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/cloexec/cloexec.c (renamed from web/server/h2o/libh2o/deps/cloexec/cloexec.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/cloexec/cloexec.h (renamed from web/server/h2o/libh2o/deps/cloexec/cloexec.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/golombset/README.md (renamed from web/server/h2o/libh2o/deps/golombset/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/golombset/golombset.h (renamed from web/server/h2o/libh2o/deps/golombset/golombset.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/golombset/test.c (renamed from web/server/h2o/libh2o/deps/golombset/test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/.gitignore (renamed from web/server/h2o/libh2o/deps/klib/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/README.md (renamed from web/server/h2o/libh2o/deps/klib/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/bgzf.c (renamed from web/server/h2o/libh2o/deps/klib/bgzf.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/bgzf.h (renamed from web/server/h2o/libh2o/deps/klib/bgzf.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kbit.h (renamed from web/server/h2o/libh2o/deps/klib/kbit.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kbtree.h (renamed from web/server/h2o/libh2o/deps/klib/kbtree.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kgraph.h (renamed from web/server/h2o/libh2o/deps/klib/kgraph.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/khash.h (renamed from web/server/h2o/libh2o/deps/klib/khash.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/khmm.c (renamed from web/server/h2o/libh2o/deps/klib/khmm.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/khmm.h (renamed from web/server/h2o/libh2o/deps/klib/khmm.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/klist.h (renamed from web/server/h2o/libh2o/deps/klib/klist.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kmath.c (renamed from web/server/h2o/libh2o/deps/klib/kmath.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kmath.h (renamed from web/server/h2o/libh2o/deps/klib/kmath.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/knetfile.c (renamed from web/server/h2o/libh2o/deps/klib/knetfile.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/knetfile.h (renamed from web/server/h2o/libh2o/deps/klib/knetfile.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/knhx.c (renamed from web/server/h2o/libh2o/deps/klib/knhx.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/knhx.h (renamed from web/server/h2o/libh2o/deps/klib/knhx.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kopen.c (renamed from web/server/h2o/libh2o/deps/klib/kopen.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/ksa.c (renamed from web/server/h2o/libh2o/deps/klib/ksa.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kseq.h (renamed from web/server/h2o/libh2o/deps/klib/kseq.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kson.c (renamed from web/server/h2o/libh2o/deps/klib/kson.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kson.h (renamed from web/server/h2o/libh2o/deps/klib/kson.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/ksort.h (renamed from web/server/h2o/libh2o/deps/klib/ksort.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kstring.c (renamed from web/server/h2o/libh2o/deps/klib/kstring.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kstring.h (renamed from web/server/h2o/libh2o/deps/klib/kstring.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/ksw.c (renamed from web/server/h2o/libh2o/deps/klib/ksw.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/ksw.h (renamed from web/server/h2o/libh2o/deps/klib/ksw.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kthread.c (renamed from web/server/h2o/libh2o/deps/klib/kthread.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kurl.c (renamed from web/server/h2o/libh2o/deps/klib/kurl.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kurl.h (renamed from web/server/h2o/libh2o/deps/klib/kurl.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/kvec.h (renamed from web/server/h2o/libh2o/deps/klib/kvec.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/lua/bio.lua (renamed from web/server/h2o/libh2o/deps/klib/lua/bio.lua)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/lua/klib.lua (renamed from web/server/h2o/libh2o/deps/klib/lua/klib.lua)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/Makefile (renamed from web/server/h2o/libh2o/deps/klib/test/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kbit_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/kbit_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kbtree_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/kbtree_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kgraph_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/kgraph_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/khash_keith.c (renamed from web/server/h2o/libh2o/deps/klib/test/khash_keith.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/khash_keith2.c (renamed from web/server/h2o/libh2o/deps/klib/test/khash_keith2.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/khash_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/khash_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/klist_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/klist_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kmin_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/kmin_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kseq_bench.c (renamed from web/server/h2o/libh2o/deps/klib/test/kseq_bench.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kseq_bench2.c (renamed from web/server/h2o/libh2o/deps/klib/test/kseq_bench2.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kseq_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/kseq_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kseq_test.dat (renamed from web/server/h2o/libh2o/deps/klib/test/kseq_test.dat)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/ksort_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/ksort_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/ksort_test.cc (renamed from web/server/h2o/libh2o/deps/klib/test/ksort_test.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kstring_bench.c (renamed from web/server/h2o/libh2o/deps/klib/test/kstring_bench.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kstring_bench2.c (renamed from web/server/h2o/libh2o/deps/klib/test/kstring_bench2.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kstring_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/kstring_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kthread_test.c (renamed from web/server/h2o/libh2o/deps/klib/test/kthread_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/klib/test/kvec_test.cc (renamed from web/server/h2o/libh2o/deps/klib/test/kvec_test.cc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libgkc/gkc.c (renamed from web/server/h2o/libh2o/deps/libgkc/gkc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libgkc/gkc.h (renamed from web/server/h2o/libh2o/deps/libgkc/gkc.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libgkc/test.c (renamed from web/server/h2o/libh2o/deps/libgkc/test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/.gitignore (renamed from web/server/h2o/libh2o/deps/libyrmcds/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/.travis.yml (renamed from web/server/h2o/libh2o/deps/libyrmcds/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/COPYING (renamed from web/server/h2o/libh2o/deps/libyrmcds/COPYING)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/Doxyfile (renamed from web/server/h2o/libh2o/deps/libyrmcds/Doxyfile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/Makefile (renamed from web/server/h2o/libh2o/deps/libyrmcds/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/README.md (renamed from web/server/h2o/libh2o/deps/libyrmcds/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/USAGE.md (renamed from web/server/h2o/libh2o/deps/libyrmcds/USAGE.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/close.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/close.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/connect.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/connect.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/counter.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/counter.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/example/counter.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/example/counter.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/example/memcache.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/example/memcache.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/recv.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/recv.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/send.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/send.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/send_text.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/send_text.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/set_compression.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/set_compression.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/socket.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/socket.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/strerror.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/strerror.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/t/t.h (renamed from web/server/h2o/libh2o/deps/libyrmcds/t/t.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/t/text.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/t/text.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/text_mode.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/text_mode.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/yc-cnt.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/yc-cnt.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/yc.c (renamed from web/server/h2o/libh2o/deps/libyrmcds/yc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds.h (renamed from web/server/h2o/libh2o/deps/libyrmcds/yrmcds.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_portability.h (renamed from web/server/h2o/libh2o/deps/libyrmcds/yrmcds_portability.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_text.h (renamed from web/server/h2o/libh2o/deps/libyrmcds/yrmcds_text.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-digest/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-digest/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/Makefile (renamed from web/server/h2o/libh2o/deps/mruby-digest/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/README.md (renamed from web/server/h2o/libh2o/deps/mruby-digest/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-digest/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb (renamed from web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-digest/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/src/digest.c (renamed from web/server/h2o/libh2o/deps/mruby-digest/src/digest.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/src/picohash.h (renamed from web/server/h2o/libh2o/deps/mruby-digest/src/picohash.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-digest/test/digest.rb (renamed from web/server/h2o/libh2o/deps/mruby-digest/test/digest.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-dir/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-dir/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/README.md (renamed from web/server/h2o/libh2o/deps/mruby-dir/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-dir/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/mrblib/dir.rb (renamed from web/server/h2o/libh2o/deps/mruby-dir/mrblib/dir.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-dir/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/src/Win/dirent.c (renamed from web/server/h2o/libh2o/deps/mruby-dir/src/Win/dirent.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/src/dir.c (renamed from web/server/h2o/libh2o/deps/mruby-dir/src/dir.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/test/dir.rb (renamed from web/server/h2o/libh2o/deps/mruby-dir/test/dir.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-dir/test/dirtest.c (renamed from web/server/h2o/libh2o/deps/mruby-dir/test/dirtest.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-env/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-env/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/README.md (renamed from web/server/h2o/libh2o/deps/mruby-env/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-env/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/mrblib/env.rb (renamed from web/server/h2o/libh2o/deps/mruby-env/mrblib/env.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-env/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/src/env.c (renamed from web/server/h2o/libh2o/deps/mruby-env/src/env.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-env/test/env_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-env/test/env_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-errno/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-errno/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/README.md (renamed from web/server/h2o/libh2o/deps/mruby-errno/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-errno/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-errno/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/src/errno.c (renamed from web/server/h2o/libh2o/deps/mruby-errno/src/errno.c)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/mruby-errno/src/gen.rb (renamed from web/server/h2o/libh2o/deps/mruby-errno/src/gen.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors.def (renamed from web/server/h2o/libh2o/deps/mruby-errno/src/known_errors.def)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_def.cstub (renamed from web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_def.cstub)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_e2c.cstub (renamed from web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_e2c.cstub)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-errno/test/errno.rb (renamed from web/server/h2o/libh2o/deps/mruby-errno/test/errno.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/.travis_build_config.rb (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/.travis_build_config.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/README.md (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/appveyor.yml (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/appveyor.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/config.h.in (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/config.h.in)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/mruby-file-stat/configure (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/configure)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/configure.ac (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/configure.ac)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/ext.rb (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/ext.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/file-stat.rb (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/file-stat.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/src/file-stat.c (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/src/file-stat.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/test/executable (renamed from web/server/h2o/libh2o/deps/mruby/bin/.gitkeep)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.c (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.rb (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/test/io.rb (renamed from web/server/h2o/libh2o/deps/mruby-file-stat/test/io.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/test/readable (renamed from web/server/h2o/libh2o/deps/mruby/src/ext/.gitkeep)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-file-stat/test/writable (renamed from web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/searchbox.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-iijson/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-iijson/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/README.md (renamed from web/server/h2o/libh2o/deps/mruby-iijson/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-iijson/mrbgem.rake)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/json.rb (renamed from web/server/h2o/libh2o/deps/mruby-iijson/mrblib/json.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/to_json.rb (renamed from web/server/h2o/libh2o/deps/mruby-iijson/mrblib/to_json.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-iijson/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/src/json.c (renamed from web/server/h2o/libh2o/deps/mruby-iijson/src/json.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/test/json.rb (renamed from web/server/h2o/libh2o/deps/mruby-iijson/test/json.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-iijson/test/testjson.c (renamed from web/server/h2o/libh2o/deps/mruby-iijson/test/testjson.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/LICENSE (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/LICENSE)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/README.md (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/Rakefile (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/Rakefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/build_config_sample.rb (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/build_config_sample.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/mrblib/input_stream.rb (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/mrblib/input_stream.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.c (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.h (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-input-stream/test/input_stream.rb (renamed from web/server/h2o/libh2o/deps/mruby-input-stream/test/input_stream.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-io/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-io/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/README.md (renamed from web/server/h2o/libh2o/deps/mruby-io/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/include/mruby/ext/io.h (renamed from web/server/h2o/libh2o/deps/mruby-io/include/mruby/ext/io.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-io/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/mrblib/file.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/mrblib/file.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/mrblib/file_constants.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/mrblib/file_constants.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/mrblib/io.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/mrblib/io.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/mrblib/kernel.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/mrblib/kernel.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/src/file.c (renamed from web/server/h2o/libh2o/deps/mruby-io/src/file.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/src/file_test.c (renamed from web/server/h2o/libh2o/deps/mruby-io/src/file_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/src/io.c (renamed from web/server/h2o/libh2o/deps/mruby-io/src/io.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/src/mruby_io_gem.c (renamed from web/server/h2o/libh2o/deps/mruby-io/src/mruby_io_gem.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/test/file.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/test/file.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/test/file_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/test/file_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/test/gc_filedes.sh (renamed from web/server/h2o/libh2o/deps/mruby-io/test/gc_filedes.sh)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/test/io.rb (renamed from web/server/h2o/libh2o/deps/mruby-io/test/io.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-io/test/mruby_io_test.c (renamed from web/server/h2o/libh2o/deps/mruby-io/test/mruby_io_test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis_config.rb (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis_config.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/Onigmo-6.1.1.tar.gz (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/Onigmo-6.1.1.tar.gz)bin821378 -> 821378 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/README.md (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrblib/onig_regexp.rb (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/mrblib/onig_regexp.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-onig-regexp/test/mruby_onig_regexp.rb (renamed from web/server/h2o/libh2o/deps/mruby-onig-regexp/test/mruby_onig_regexp.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-pack/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-pack/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/README.md (renamed from web/server/h2o/libh2o/deps/mruby-pack/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-pack/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/packtest.rb (renamed from web/server/h2o/libh2o/deps/mruby-pack/packtest.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-pack/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/src/pack.c (renamed from web/server/h2o/libh2o/deps/mruby-pack/src/pack.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-pack/test/pack.rb (renamed from web/server/h2o/libh2o/deps/mruby-pack/test/pack.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby-require/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby-require/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/README.md (renamed from web/server/h2o/libh2o/deps/mruby-require/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby-require/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/mrblib/require.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/mrblib/require.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/run_test.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/src/require.c (renamed from web/server/h2o/libh2o/deps/mruby-require/src/require.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/test/d/required.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/test/d/required.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/test/require.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/test/require.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/test/test.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/test/test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/test/test2.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/test/test2.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/test/test_context.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/test/test_context.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby-require/test/test_nest_loop.rb (renamed from web/server/h2o/libh2o/deps/mruby-require/test/test_nest_loop.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/.gitignore (renamed from web/server/h2o/libh2o/deps/mruby/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/.gitlab-ci.yml (renamed from web/server/h2o/libh2o/deps/mruby/.gitlab-ci.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/.travis.yml (renamed from web/server/h2o/libh2o/deps/mruby/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/.yardopts (renamed from web/server/h2o/libh2o/deps/mruby/.yardopts)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/AUTHORS (renamed from web/server/h2o/libh2o/deps/mruby/AUTHORS)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/CONTRIBUTING.md (renamed from web/server/h2o/libh2o/deps/mruby/CONTRIBUTING.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/LEGAL (renamed from web/server/h2o/libh2o/deps/mruby/LEGAL)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/MITL (renamed from web/server/h2o/libh2o/deps/mruby/MITL)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/Makefile (renamed from web/server/h2o/libh2o/deps/mruby/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/NEWS (renamed from web/server/h2o/libh2o/deps/mruby/NEWS)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/README.md (renamed from web/server/h2o/libh2o/deps/mruby/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/Rakefile (renamed from web/server/h2o/libh2o/deps/mruby/Rakefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/TODO (renamed from web/server/h2o/libh2o/deps/mruby/TODO)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/appveyor.yml (renamed from web/server/h2o/libh2o/deps/mruby/appveyor.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/appveyor_config.rb (renamed from web/server/h2o/libh2o/deps/mruby/appveyor_config.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_ao_render.rb (renamed from web/server/h2o/libh2o/deps/mruby/benchmark/bm_ao_render.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_app_lc_fizzbuzz.rb (renamed from web/server/h2o/libh2o/deps/mruby/benchmark/bm_app_lc_fizzbuzz.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_fib.rb (renamed from web/server/h2o/libh2o/deps/mruby/benchmark/bm_fib.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_so_lists.rb (renamed from web/server/h2o/libh2o/deps/mruby/benchmark/bm_so_lists.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_boxing.rb (renamed from web/server/h2o/libh2o/deps/mruby/benchmark/build_config_boxing.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_cc.rb (renamed from web/server/h2o/libh2o/deps/mruby/benchmark/build_config_cc.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/benchmark/plot.gpl (renamed from web/server/h2o/libh2o/deps/mruby/benchmark/plot.gpl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/bin/.gitkeep (renamed from web/server/h2o/libh2o/misc/test-ca/demoCA/newcerts/.gitkeep)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/build_config.rb (renamed from web/server/h2o/libh2o/deps/mruby/build_config.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/doc/guides/compile.md (renamed from web/server/h2o/libh2o/deps/mruby/doc/guides/compile.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/doc/guides/debugger.md (renamed from web/server/h2o/libh2o/deps/mruby/doc/guides/debugger.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/doc/guides/gc-arena-howto.md (renamed from web/server/h2o/libh2o/deps/mruby/doc/guides/gc-arena-howto.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbconf.md (renamed from web/server/h2o/libh2o/deps/mruby/doc/guides/mrbconf.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbgems.md (renamed from web/server/h2o/libh2o/deps/mruby/doc/guides/mrbgems.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/doc/limitations.md (renamed from web/server/h2o/libh2o/deps/mruby/doc/limitations.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/README.md (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/README.md (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/test/example.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/test/example.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_ArduinoDue.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_ArduinoDue.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelEdison.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelEdison.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelGalileo.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelGalileo.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_RX630.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_RX630.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_arm64-v8a.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_arm64-v8a.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi_v7a_neon_hard.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi_v7a_neon_hard.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_chipKITMax32.rb (renamed from web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_chipKITMax32.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mrbconf.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mrbconf.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/array.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/array.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_nan.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_nan.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_no.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_no.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_word.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_word.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/class.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/class.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/common.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/common.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/compile.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/compile.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/data.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/data.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/dump.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/dump.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/error.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/error.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/gc.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/gc.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/hash.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/hash.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/irep.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/irep.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/istruct.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/istruct.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/khash.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/khash.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/numeric.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/numeric.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/object.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/object.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/opcode.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/opcode.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/proc.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/proc.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/range.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/range.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/re.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/re.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/string.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/string.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/throw.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/throw.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/value.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/value.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/variable.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/variable.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/include/mruby/version.h (renamed from web/server/h2o/libh2o/deps/mruby/include/mruby/version.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb (renamed from web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build.rb (renamed from web/server/h2o/libh2o/deps/mruby/lib/mruby/build.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/command.rb (renamed from web/server/h2o/libh2o/deps/mruby/lib/mruby/build/command.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/load_gems.rb (renamed from web/server/h2o/libh2o/deps/mruby/lib/mruby/build/load_gems.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/lib/mruby/gem.rb (renamed from web/server/h2o/libh2o/deps/mruby/lib/mruby/gem.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/lib/mruby/source.rb (renamed from web/server/h2o/libh2o/deps/mruby/lib/mruby/source.rb)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/mruby/minirake (renamed from web/server/h2o/libh2o/deps/mruby/minirake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/default.gembox (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/default.gembox)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/full-core.gembox (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/full-core.gembox)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrblib/array.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrblib/array.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/test/array.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/test/array.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/test/module.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/test/module.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/bintest/mrbc.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/bintest/mrbc.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/keywords (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/keywords)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/lex.def (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/lex.def)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/node.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/node.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/parse.y (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/parse.y)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/test/enum.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/test/enum.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/test/enumerator.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/test/enumerator.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/src/exception.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/src/exception.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/src/eval.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/src/eval.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/test/eval.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/test/eval.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/test/fiber.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/test/fiber.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/test/hash.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/test/hash.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/src/math.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/src/math.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/test/math.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/test/math.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrblib/object.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrblib/object.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/nil.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/nil.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/object.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/object.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/test/objectspace.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/test/objectspace.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrblib/print.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrblib/print.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/src/print.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/src/print.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.h (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/test/random.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/test/random.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrblib/range.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrblib/range.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/test/range.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/test/range.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrblib/string.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrblib/string.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/kernel.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/kernel.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/test/sprintf.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/test/sprintf.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrblib/string.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrblib/string.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/test/string.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/test/string.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrblib/struct.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrblib/struct.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/src/struct.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/src/struct.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/test/struct.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/test/struct.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/README.md (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/driver.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/driver.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/init_mrbtest.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/init_mrbtest.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrblib/time.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrblib/time.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/src/time.c (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/src/time.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/test/time.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/test/time.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/00class.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/00class.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/10error.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/10error.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/array.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/array.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/compar.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/compar.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/enum.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/enum.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/hash.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/hash.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/init_mrblib.c (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/init_mrblib.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/kernel.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/kernel.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/mrblib.rake (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/mrblib.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/numeric.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/numeric.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/range.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/range.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mrblib/string.rb (renamed from web/server/h2o/libh2o/deps/mruby/mrblib/string.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/mruby-source.gemspec (renamed from web/server/h2o/libh2o/deps/mruby/mruby-source.gemspec)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/array.c (renamed from web/server/h2o/libh2o/deps/mruby/src/array.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/backtrace.c (renamed from web/server/h2o/libh2o/deps/mruby/src/backtrace.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/class.c (renamed from web/server/h2o/libh2o/deps/mruby/src/class.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/codedump.c (renamed from web/server/h2o/libh2o/deps/mruby/src/codedump.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/compar.c (renamed from web/server/h2o/libh2o/deps/mruby/src/compar.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/crc.c (renamed from web/server/h2o/libh2o/deps/mruby/src/crc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/debug.c (renamed from web/server/h2o/libh2o/deps/mruby/src/debug.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/dump.c (renamed from web/server/h2o/libh2o/deps/mruby/src/dump.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/enum.c (renamed from web/server/h2o/libh2o/deps/mruby/src/enum.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/error.c (renamed from web/server/h2o/libh2o/deps/mruby/src/error.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/error.h (renamed from web/server/h2o/libh2o/deps/mruby/src/error.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/etc.c (renamed from web/server/h2o/libh2o/deps/mruby/src/etc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/ext/.gitkeep (renamed from web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/fmt_fp.c (renamed from web/server/h2o/libh2o/deps/mruby/src/fmt_fp.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/gc.c (renamed from web/server/h2o/libh2o/deps/mruby/src/gc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/hash.c (renamed from web/server/h2o/libh2o/deps/mruby/src/hash.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/init.c (renamed from web/server/h2o/libh2o/deps/mruby/src/init.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/kernel.c (renamed from web/server/h2o/libh2o/deps/mruby/src/kernel.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/load.c (renamed from web/server/h2o/libh2o/deps/mruby/src/load.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/mruby_core.rake (renamed from web/server/h2o/libh2o/deps/mruby/src/mruby_core.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/numeric.c (renamed from web/server/h2o/libh2o/deps/mruby/src/numeric.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/object.c (renamed from web/server/h2o/libh2o/deps/mruby/src/object.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/opcode.h (renamed from web/server/h2o/libh2o/deps/mruby/src/opcode.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/pool.c (renamed from web/server/h2o/libh2o/deps/mruby/src/pool.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/print.c (renamed from web/server/h2o/libh2o/deps/mruby/src/print.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/proc.c (renamed from web/server/h2o/libh2o/deps/mruby/src/proc.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/range.c (renamed from web/server/h2o/libh2o/deps/mruby/src/range.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/state.c (renamed from web/server/h2o/libh2o/deps/mruby/src/state.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/string.c (renamed from web/server/h2o/libh2o/deps/mruby/src/string.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/symbol.c (renamed from web/server/h2o/libh2o/deps/mruby/src/symbol.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/value_array.h (renamed from web/server/h2o/libh2o/deps/mruby/src/value_array.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/variable.c (renamed from web/server/h2o/libh2o/deps/mruby/src/variable.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/version.c (renamed from web/server/h2o/libh2o/deps/mruby/src/version.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/src/vm.c (renamed from web/server/h2o/libh2o/deps/mruby/src/vm.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/benchmark.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/benchmark.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/gitlab.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/gitlab.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/libmruby.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/libmruby.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/mrbgems.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/mrbgems.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/android.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/toolchains/android.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/clang.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/toolchains/clang.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/gcc.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/toolchains/gcc.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/openwrt.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/toolchains/openwrt.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/visualcpp.rake (renamed from web/server/h2o/libh2o/deps/mruby/tasks/toolchains/visualcpp.rake)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/assert.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/assert.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/bintest.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/bintest.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/report.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/report.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/argumenterror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/argumenterror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/array.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/array.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/basicobject.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/basicobject.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/bs_block.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/bs_block.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/bs_literal.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/bs_literal.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/class.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/class.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/codegen.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/codegen.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/comparable.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/comparable.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/ensure.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/ensure.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/enumerable.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/enumerable.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/exception.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/exception.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/false.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/false.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/float.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/float.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/gc.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/gc.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/hash.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/hash.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/indexerror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/indexerror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/integer.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/integer.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/iterations.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/iterations.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/kernel.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/kernel.rb)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/mruby/test/t/lang.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/lang.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/literals.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/literals.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/localjumperror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/localjumperror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/methods.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/methods.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/module.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/module.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/nameerror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/nameerror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/nil.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/nil.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/nomethoderror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/nomethoderror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/numeric.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/numeric.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/object.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/object.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/proc.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/proc.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/range.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/range.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/rangeerror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/rangeerror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/regexperror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/regexperror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/runtimeerror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/runtimeerror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/standarderror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/standarderror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/string.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/string.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/superclass.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/superclass.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/symbol.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/symbol.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/syntax.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/syntax.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/true.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/true.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/typeerror.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/typeerror.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/test/t/unicode.rb (renamed from web/server/h2o/libh2o/deps/mruby/test/t/unicode.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/mruby/travis_config.rb (renamed from web/server/h2o/libh2o/deps/mruby/travis_config.rb)0
-rw-r--r--src/web/server/h2o/libh2o/deps/neverbleed/.clang-format (renamed from web/server/h2o/libh2o/deps/neverbleed/.clang-format)0
-rw-r--r--src/web/server/h2o/libh2o/deps/neverbleed/.gitignore (renamed from web/server/h2o/libh2o/deps/neverbleed/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/neverbleed/LICENSE (renamed from web/server/h2o/libh2o/deps/neverbleed/LICENSE)0
-rw-r--r--src/web/server/h2o/libh2o/deps/neverbleed/README.md (renamed from web/server/h2o/libh2o/deps/neverbleed/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/neverbleed/neverbleed.c (renamed from web/server/h2o/libh2o/deps/neverbleed/neverbleed.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/neverbleed/neverbleed.h (renamed from web/server/h2o/libh2o/deps/neverbleed/neverbleed.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/neverbleed/test.c (renamed from web/server/h2o/libh2o/deps/neverbleed/test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/.clang-format (renamed from web/server/h2o/libh2o/deps/picohttpparser/.clang-format)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/.gitattributes (renamed from web/server/h2o/libh2o/deps/picohttpparser/.gitattributes)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/.gitmodules (renamed from web/server/h2o/libh2o/deps/picohttpparser/.gitmodules)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/.travis.yml (renamed from web/server/h2o/libh2o/deps/picohttpparser/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/Jamfile (renamed from web/server/h2o/libh2o/deps/picohttpparser/Jamfile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/Makefile (renamed from web/server/h2o/libh2o/deps/picohttpparser/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/README.md (renamed from web/server/h2o/libh2o/deps/picohttpparser/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/bench.c (renamed from web/server/h2o/libh2o/deps/picohttpparser/bench.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.c (renamed from web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.h (renamed from web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picohttpparser/test.c (renamed from web/server/h2o/libh2o/deps/picohttpparser/test.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotest/picotest.c (renamed from web/server/h2o/libh2o/deps/picotest/picotest.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotest/picotest.h (renamed from web/server/h2o/libh2o/deps/picotest/picotest.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/.clang-format (renamed from web/server/h2o/libh2o/deps/picotls/.clang-format)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/.gitignore (renamed from web/server/h2o/libh2o/deps/picotls/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/.gitmodules (renamed from web/server/h2o/libh2o/deps/picotls/.gitmodules)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/.travis.yml (renamed from web/server/h2o/libh2o/deps/picotls/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/CMakeLists.txt (renamed from web/server/h2o/libh2o/deps/picotls/CMakeLists.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/README.md (renamed from web/server/h2o/libh2o/deps/picotls/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/WindowsPort.md (renamed from web/server/h2o/libh2o/deps/picotls/WindowsPort.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/.travis.yml (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/COPYING (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/COPYING)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/README.md (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/curve25519-shootout.md (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/curve25519-shootout.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/Makefile (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/build.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/build.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/conf.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/conf.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/index.rst (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/index.rst)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/.gitignore (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/Makefile (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/README.md (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/python-hash.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/python-hash.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/.gitignore (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/Makefile (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-aes.sl (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-aes.sl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-pbkdf2.sl (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-pbkdf2.sl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha224.sl (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha224.sl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha256.sl (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha256.sl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha384.sl (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha384.sl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha512.sl (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha512.sl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/.gitignore (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/Makefile (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/.gitignore (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/Makefile (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/analyse.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/analyse.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/boot.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/boot.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/curve25519-results.txt (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/curve25519-results.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.efm32.ld (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.efm32.ld)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.lm3s6965evb.ld (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.lm3s6965evb.ld)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.qemucm3.ld (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.qemucm3.ld)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.std.ld (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.std.ld)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f0.ld (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f0.ld)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f1.ld (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f1.ld)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f3.ld (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f3.ld)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/main.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/main.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memcpy.s (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memcpy.s)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memset.s (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memset.s)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/merge.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/merge.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.efm32.cfg (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.efm32.cfg)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f0.cfg (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f0.cfg)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f1.cfg (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f1.cfg)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f3.cfg (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f3.cfg)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/report.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/report.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.s (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.s)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_mpy121666.s (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_mpy121666.s)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_reduce25519.s (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_reduce25519.s)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/mul.s (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/mul.s)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/sqr.s (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/sqr.s)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/bitops.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/bitops.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cbcmac.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cbcmac.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ccm.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ccm.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cf_config.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cf_config.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cmac.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cmac.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.donna.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.donna.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.naclref.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.naclref.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/eax.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/eax.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/cutest.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/cutest.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/handy.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/handy.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gcm.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gcm.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ocb.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ocb.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/prp.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/prp.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha2.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha2.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha256.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha256.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha512.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha512.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/tassert.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/tassert.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testaes.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testaes.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testcurve25519.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testcurve25519.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testdrbg.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testdrbg.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testmodes.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testmodes.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.katdata.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.katdata.inc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testpoly1305.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testpoly1305.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsalsa20.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsalsa20.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha1.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha1.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha2.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha2.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha3.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha3.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testutil.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testutil.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/.gitignore (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/LICENSE.txt (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/LICENSE.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/README.md (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm.inc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square.inc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square_umaal.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square_umaal.inc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr.inc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr_mult_square.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr_mult_square.inc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/curve-specific.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/curve-specific.inc)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_project.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_project.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_rules.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_rules.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/platform-specific.inc (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/platform-specific.inc)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_arm.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_arm.py)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr.py)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr_extra.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr_extra.py)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_arm.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_arm.py)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_avr.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_avr.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/emk_rules.py (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/emk_rules.py)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compress.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compress.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compute.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compute.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa_deterministic.c.example (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa_deterministic.c.example)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/types.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/types.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.c (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC_vli.h (renamed from web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC_vli.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/include/picotls.h (renamed from web/server/h2o/libh2o/deps/picotls/include/picotls.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/include/picotls/asn1.h (renamed from web/server/h2o/libh2o/deps/picotls/include/picotls/asn1.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/include/picotls/minicrypto.h (renamed from web/server/h2o/libh2o/deps/picotls/include/picotls/minicrypto.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/include/picotls/openssl.h (renamed from web/server/h2o/libh2o/deps/picotls/include/picotls/openssl.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/include/picotls/pembase64.h (renamed from web/server/h2o/libh2o/deps/picotls/include/picotls/pembase64.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/lib/asn1.c (renamed from web/server/h2o/libh2o/deps/picotls/lib/asn1.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/lib/cifra.c (renamed from web/server/h2o/libh2o/deps/picotls/lib/cifra.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/lib/minicrypto-pem.c (renamed from web/server/h2o/libh2o/deps/picotls/lib/minicrypto-pem.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/lib/openssl.c (renamed from web/server/h2o/libh2o/deps/picotls/lib/openssl.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/lib/pembase64.c (renamed from web/server/h2o/libh2o/deps/picotls/lib/pembase64.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/lib/picotls.c (renamed from web/server/h2o/libh2o/deps/picotls/lib/picotls.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/lib/uecc.c (renamed from web/server/h2o/libh2o/deps/picotls/lib/uecc.c)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/picotls/misc/dump-github-repository.pl (renamed from web/server/h2o/libh2o/deps/picotls/misc/dump-github-repository.pl)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.pbxproj (renamed from web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.pbxproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.xcworkspace/contents.xcworkspacedata (renamed from web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.xcworkspace/contents.xcworkspacedata)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/ReadMe.txt (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/ReadMe.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj.filters (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj.filters)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/ReadMe.txt (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/ReadMe.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj.filters (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj.filters)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/openssl.cnf (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/openssl.cnf)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/ReadMe.txt (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/ReadMe.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.filters (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.filters)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.user (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.user)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/targetver.h (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/targetver.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wincompat.h (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wincompat.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wintimeofday.c (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wintimeofday.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs.sln (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs.sln)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ReadMe.txt (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ReadMe.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/cert.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/cert.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_cert.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_cert.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_key.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_key.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-1.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-1.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-2.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-2.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-3.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-3.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-4.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-4.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/myec1.pem (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/myec1.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/openssl.cnf (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/openssl.cnf)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.filters (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.filters)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.user (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.user)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/targetver.h (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/targetver.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj.filters (renamed from web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj.filters)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/t/cli.c (renamed from web/server/h2o/libh2o/deps/picotls/t/cli.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/t/minicrypto.c (renamed from web/server/h2o/libh2o/deps/picotls/t/minicrypto.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/t/openssl.c (renamed from web/server/h2o/libh2o/deps/picotls/t/openssl.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/t/picotls.c (renamed from web/server/h2o/libh2o/deps/picotls/t/picotls.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/t/test.h (renamed from web/server/h2o/libh2o/deps/picotls/t/test.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/picotls/t/util.h (renamed from web/server/h2o/libh2o/deps/picotls/t/util.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/.gitattributes (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/.gitattributes)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/.gitignore (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/LICENSE (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/LICENSE)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/README.md (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/README.md (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning.xcodeproj/project.pbxproj (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning.xcodeproj/project.pbxproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.h (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.m (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.m)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.h (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.m (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.m)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.h (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.m (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.m)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/SSLCertificatePinning-Prefix.pch (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/SSLCertificatePinning-Prefix.pch)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLConnectionTests.m (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLConnectionTests.m)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLSessionTests.m (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLSessionTests.m)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLCertificatePinningTests-Info.plist (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLCertificatePinningTests-Info.plist)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.h (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.m (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.m)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/VeriSignClass3PublicPrimaryCertificationAuthority-G5.der (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/VeriSignClass3PublicPrimaryCertificationAuthority-G5.der)bin1239 -> 1239 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/en.lproj/InfoPlist.strings (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/en.lproj/InfoPlist.strings)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/www.isecpartners.com.der (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/www.isecpartners.com.der)bin1876 -> 1876 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/DigiCertHighAssuranceEVRootCA.pem (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/DigiCertHighAssuranceEVRootCA.pem)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile_mingw (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile_mingw)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/README.md (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/everything-you-wanted-to-know-about-openssl.pdf (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/everything-you-wanted-to-know-about-openssl.pdf)bin180899 -> 180899 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client)bin15680 -> 15680 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client.c (renamed from web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/CMakeLists.txt (renamed from web/server/h2o/libh2o/deps/yaml/CMakeLists.txt)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/LICENSE (renamed from web/server/h2o/libh2o/deps/yaml/LICENSE)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/Makefile.am (renamed from web/server/h2o/libh2o/deps/yaml/Makefile.am)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/Makefile.in (renamed from web/server/h2o/libh2o/deps/yaml/Makefile.in)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/README (renamed from web/server/h2o/libh2o/deps/yaml/README)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/aclocal.m4 (renamed from web/server/h2o/libh2o/deps/yaml/aclocal.m4)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/config.h.in (renamed from web/server/h2o/libh2o/deps/yaml/config.h.in)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/yaml/config/config.guess (renamed from web/server/h2o/libh2o/deps/yaml/config/config.guess)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/yaml/config/config.sub (renamed from web/server/h2o/libh2o/deps/yaml/config/config.sub)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/yaml/config/depcomp (renamed from web/server/h2o/libh2o/deps/yaml/config/depcomp)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/yaml/config/install-sh (renamed from web/server/h2o/libh2o/deps/yaml/config/install-sh)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/config/ltmain.sh (renamed from web/server/h2o/libh2o/deps/yaml/config/ltmain.sh)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/yaml/config/missing (renamed from web/server/h2o/libh2o/deps/yaml/config/missing)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/deps/yaml/configure (renamed from web/server/h2o/libh2o/deps/yaml/configure)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/configure.ac (renamed from web/server/h2o/libh2o/deps/yaml/configure.ac)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/doxygen.cfg (renamed from web/server/h2o/libh2o/deps/yaml/doc/doxygen.cfg)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/annotated.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/annotated.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/bc_s.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/bc_s.png)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/classes.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/classes.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/closed.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/closed.png)bin126 -> 126 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.css (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.css)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.png)bin3942 -> 3942 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/files.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/files.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x62.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x62.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x63.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x63.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x64.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x64.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x65.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x65.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x66.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x66.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x68.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x68.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x69.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x69.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6b.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6b.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6c.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6c.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6d.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6d.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6e.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6e.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6f.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6f.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x70.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x70.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x71.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x71.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x72.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x72.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x73.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x73.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x74.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x74.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x75.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x75.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x76.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x76.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x77.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x77.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x62.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x62.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x63.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x63.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x64.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x64.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x65.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x65.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x66.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x66.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x68.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x68.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x69.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x69.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6b.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6b.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6c.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6c.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6d.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6d.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6e.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6e.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6f.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6f.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x70.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x70.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x71.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x71.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x72.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x72.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x73.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x73.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x74.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x74.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x75.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x75.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x76.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x76.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x77.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x77.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/globals.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/globals.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_defs.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/globals_defs.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_enum.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/globals_enum.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_eval.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/globals_eval.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_func.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/globals_func.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_type.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/globals_type.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__basic.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__basic.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__emitter.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__emitter.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__events.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__events.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__export.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__export.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__nodes.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__nodes.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__parser.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__parser.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__styles.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__styles.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__tokens.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__tokens.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/group__version.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/group__version.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/index.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/index.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/modules.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/modules.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/nav_f.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/nav_f.png)bin159 -> 159 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/nav_h.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/nav_h.png)bin97 -> 97 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/open.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/open.png)bin118 -> 118 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__alias__data__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__alias__data__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__document__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__document__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__emitter__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__emitter__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__event__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__event__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__mark__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__mark__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__pair__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__pair__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__parser__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__parser__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__simple__key__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__simple__key__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__tag__directive__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__tag__directive__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__token__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__token__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__version__directive__s.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__version__directive__s.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_a.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/tab_a.png)bin140 -> 140 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_b.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/tab_b.png)bin178 -> 178 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_h.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/tab_h.png)bin192 -> 192 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_s.png (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/tab_s.png)bin189 -> 189 bytes
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/tabs.css (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/tabs.css)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/doc/html/yaml_8h.html (renamed from web/server/h2o/libh2o/deps/yaml/doc/html/yaml_8h.html)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/include/Makefile.am (renamed from web/server/h2o/libh2o/deps/yaml/include/Makefile.am)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/include/Makefile.in (renamed from web/server/h2o/libh2o/deps/yaml/include/Makefile.in)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/include/yaml.h (renamed from web/server/h2o/libh2o/deps/yaml/include/yaml.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/Makefile.am (renamed from web/server/h2o/libh2o/deps/yaml/src/Makefile.am)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/Makefile.in (renamed from web/server/h2o/libh2o/deps/yaml/src/Makefile.in)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/api.c (renamed from web/server/h2o/libh2o/deps/yaml/src/api.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/dumper.c (renamed from web/server/h2o/libh2o/deps/yaml/src/dumper.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/emitter.c (renamed from web/server/h2o/libh2o/deps/yaml/src/emitter.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/loader.c (renamed from web/server/h2o/libh2o/deps/yaml/src/loader.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/parser.c (renamed from web/server/h2o/libh2o/deps/yaml/src/parser.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/reader.c (renamed from web/server/h2o/libh2o/deps/yaml/src/reader.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/scanner.c (renamed from web/server/h2o/libh2o/deps/yaml/src/scanner.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/writer.c (renamed from web/server/h2o/libh2o/deps/yaml/src/writer.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/src/yaml_private.h (renamed from web/server/h2o/libh2o/deps/yaml/src/yaml_private.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/Makefile.am (renamed from web/server/h2o/libh2o/deps/yaml/tests/Makefile.am)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/Makefile.in (renamed from web/server/h2o/libh2o/deps/yaml/tests/Makefile.in)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor-alt.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor-alt.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter-alt.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/example-reformatter-alt.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/example-reformatter.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/run-dumper.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/run-dumper.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/run-emitter.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/run-emitter.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/run-loader.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/run-loader.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/run-parser.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/run-parser.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/test-reader.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/test-reader.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/tests/test-version.c (renamed from web/server/h2o/libh2o/deps/yaml/tests/test-version.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/Makefile.am (renamed from web/server/h2o/libh2o/deps/yaml/win32/Makefile.am)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/Makefile.in (renamed from web/server/h2o/libh2o/deps/yaml/win32/Makefile.in)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/config.h (renamed from web/server/h2o/libh2o/deps/yaml/win32/config.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor_alt.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor_alt.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter_alt.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter_alt.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/libyaml.dsw (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/libyaml.dsw)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_dumper.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/run_dumper.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_emitter.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/run_emitter.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_loader.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/run_loader.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_parser.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/run_parser.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_scanner.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/run_scanner.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_reader.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/test_reader.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_version.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/test_version.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/yaml.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/yaml.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vc6/yamldll.dsp (renamed from web/server/h2o/libh2o/deps/yaml/win32/vc6/yamldll.dsp)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor_alt.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor_alt.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter_alt.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter_alt.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/libyaml.sln (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/libyaml.sln)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_dumper.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_dumper.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_emitter.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_emitter.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_loader.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_loader.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_parser.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_parser.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_scanner.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_scanner.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_reader.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_reader.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_version.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_version.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yaml.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/yaml.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yamldll.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2003/yamldll.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor_alt.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor_alt.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter_alt.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter_alt.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/libyaml.sln (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/libyaml.sln)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_dumper.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_dumper.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_emitter.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_emitter.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_loader.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_loader.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_parser.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_parser.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_scanner.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_scanner.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_reader.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_reader.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_version.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_version.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yaml.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/yaml.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yamldll.vcproj (renamed from web/server/h2o/libh2o/deps/yaml/win32/vs2008/yamldll.vcproj)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yaml/yaml-0.1.pc.in (renamed from web/server/h2o/libh2o/deps/yaml/yaml-0.1.pc.in)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yoml/.gitmodules (renamed from web/server/h2o/libh2o/deps/yoml/.gitmodules)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yoml/Makefile (renamed from web/server/h2o/libh2o/deps/yoml/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yoml/README.md (renamed from web/server/h2o/libh2o/deps/yoml/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yoml/test-yoml.c (renamed from web/server/h2o/libh2o/deps/yoml/test-yoml.c)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yoml/yoml-parser.h (renamed from web/server/h2o/libh2o/deps/yoml/yoml-parser.h)0
-rw-r--r--src/web/server/h2o/libh2o/deps/yoml/yoml.h (renamed from web/server/h2o/libh2o/deps/yoml/yoml.h)0
-rw-r--r--src/web/server/h2o/libh2o/doc/Makefile (renamed from web/server/h2o/libh2o/doc/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/doc/README.md (renamed from web/server/h2o/libh2o/doc/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/doc/assets/8mbps100msec-nginx195-h2o150.png (renamed from web/server/h2o/libh2o/doc/assets/8mbps100msec-nginx195-h2o150.png)bin328434 -> 328434 bytes
-rw-r--r--src/web/server/h2o/libh2o/doc/assets/firstpaintbench.png (renamed from web/server/h2o/libh2o/doc/assets/firstpaintbench.png)bin79485 -> 79485 bytes
-rw-r--r--src/web/server/h2o/libh2o/doc/assets/remotebench.png (renamed from web/server/h2o/libh2o/doc/assets/remotebench.png)bin166223 -> 166223 bytes
-rw-r--r--src/web/server/h2o/libh2o/doc/assets/searchstyle.css (renamed from web/server/h2o/libh2o/doc/assets/searchstyle.css)0
-rw-r--r--src/web/server/h2o/libh2o/doc/assets/staticfile612-nginx1910-h2o170.png (renamed from web/server/h2o/libh2o/doc/assets/staticfile612-nginx1910-h2o170.png)bin106392 -> 106392 bytes
-rw-r--r--src/web/server/h2o/libh2o/doc/assets/style.css (renamed from web/server/h2o/libh2o/doc/assets/style.css)0
-rw-r--r--src/web/server/h2o/libh2o/doc/benchmarks.html (renamed from web/server/h2o/libh2o/doc/benchmarks.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure.html (renamed from web/server/h2o/libh2o/doc/configure.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/access_control.html (renamed from web/server/h2o/libh2o/doc/configure/access_control.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/access_log_directives.html (renamed from web/server/h2o/libh2o/doc/configure/access_log_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/base_directives.html (renamed from web/server/h2o/libh2o/doc/configure/base_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/basic_auth.html (renamed from web/server/h2o/libh2o/doc/configure/basic_auth.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/cgi.html (renamed from web/server/h2o/libh2o/doc/configure/cgi.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/command_options.html (renamed from web/server/h2o/libh2o/doc/configure/command_options.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/compress_directives.html (renamed from web/server/h2o/libh2o/doc/configure/compress_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/dos_detection.html (renamed from web/server/h2o/libh2o/doc/configure/dos_detection.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/errordoc_directives.html (renamed from web/server/h2o/libh2o/doc/configure/errordoc_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/expires_directives.html (renamed from web/server/h2o/libh2o/doc/configure/expires_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/fastcgi_directives.html (renamed from web/server/h2o/libh2o/doc/configure/fastcgi_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/file_directives.html (renamed from web/server/h2o/libh2o/doc/configure/file_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/headers_directives.html (renamed from web/server/h2o/libh2o/doc/configure/headers_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/http1_directives.html (renamed from web/server/h2o/libh2o/doc/configure/http1_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/http2_directives.html (renamed from web/server/h2o/libh2o/doc/configure/http2_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/mruby.html (renamed from web/server/h2o/libh2o/doc/configure/mruby.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/mruby_directives.html (renamed from web/server/h2o/libh2o/doc/configure/mruby_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/proxy_directives.html (renamed from web/server/h2o/libh2o/doc/configure/proxy_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/quick_start.html (renamed from web/server/h2o/libh2o/doc/configure/quick_start.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/redirect_directives.html (renamed from web/server/h2o/libh2o/doc/configure/redirect_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/reproxy_directives.html (renamed from web/server/h2o/libh2o/doc/configure/reproxy_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/status_directives.html (renamed from web/server/h2o/libh2o/doc/configure/status_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/syntax_and_structure.html (renamed from web/server/h2o/libh2o/doc/configure/syntax_and_structure.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/configure/throttle_response_directives.html (renamed from web/server/h2o/libh2o/doc/configure/throttle_response_directives.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/faq.html (renamed from web/server/h2o/libh2o/doc/faq.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/index.html (renamed from web/server/h2o/libh2o/doc/index.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/install.html (renamed from web/server/h2o/libh2o/doc/install.html)0
-rw-r--r--src/web/server/h2o/libh2o/doc/search/jquery-1.9.1.min.js (renamed from web/server/h2o/libh2o/doc/search/jquery-1.9.1.min.js)0
-rw-r--r--src/web/server/h2o/libh2o/doc/search/oktavia-english-search.js (renamed from web/server/h2o/libh2o/doc/search/oktavia-english-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/doc/search/oktavia-jquery-ui.js (renamed from web/server/h2o/libh2o/doc/search/oktavia-jquery-ui.js)0
-rw-r--r--src/web/server/h2o/libh2o/doc/search/searchindex.js (renamed from web/server/h2o/libh2o/doc/search/searchindex.js)0
-rw-r--r--src/web/server/h2o/libh2o/examples/doc_root.alternate/index.txt (renamed from web/server/h2o/libh2o/examples/doc_root.alternate/index.txt)0
-rw-r--r--src/web/server/h2o/libh2o/examples/doc_root/index.html (renamed from web/server/h2o/libh2o/examples/doc_root/index.html)0
-rw-r--r--src/web/server/h2o/libh2o/examples/h2o/alternate.crt (renamed from web/server/h2o/libh2o/examples/h2o/alternate.crt)0
-rw-r--r--src/web/server/h2o/libh2o/examples/h2o/alternate.key (renamed from web/server/h2o/libh2o/examples/h2o/alternate.key)0
-rw-r--r--src/web/server/h2o/libh2o/examples/h2o/h2o.conf (renamed from web/server/h2o/libh2o/examples/h2o/h2o.conf)0
-rw-r--r--src/web/server/h2o/libh2o/examples/h2o/server.crt (renamed from web/server/h2o/libh2o/examples/h2o/server.crt)0
-rw-r--r--src/web/server/h2o/libh2o/examples/h2o/server.key (renamed from web/server/h2o/libh2o/examples/h2o/server.key)0
-rw-r--r--src/web/server/h2o/libh2o/examples/h2o_mruby/h2o.conf (renamed from web/server/h2o/libh2o/examples/h2o_mruby/h2o.conf)0
-rw-r--r--src/web/server/h2o/libh2o/examples/h2o_mruby/hello.rb (renamed from web/server/h2o/libh2o/examples/h2o_mruby/hello.rb)0
-rw-r--r--src/web/server/h2o/libh2o/examples/libh2o/http1client.c (renamed from web/server/h2o/libh2o/examples/libh2o/http1client.c)0
-rw-r--r--src/web/server/h2o/libh2o/examples/libh2o/latency-optimization.c (renamed from web/server/h2o/libh2o/examples/libh2o/latency-optimization.c)0
-rw-r--r--src/web/server/h2o/libh2o/examples/libh2o/simple.c (renamed from web/server/h2o/libh2o/examples/libh2o/simple.c)0
-rw-r--r--src/web/server/h2o/libh2o/examples/libh2o/socket-client.c (renamed from web/server/h2o/libh2o/examples/libh2o/socket-client.c)0
-rw-r--r--src/web/server/h2o/libh2o/examples/libh2o/websocket.c (renamed from web/server/h2o/libh2o/examples/libh2o/websocket.c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/README.md (renamed from web/server/h2o/libh2o/fuzz/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/driver.cc (renamed from web/server/h2o/libh2o/fuzz/driver.cc)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/driver_url.cc (renamed from web/server/h2o/libh2o/fuzz/driver_url.cc)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/gather-data.patch (renamed from web/server/h2o/libh2o/fuzz/gather-data.patch)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http.dict (renamed from web/server/h2o/libh2o/fuzz/http.dict)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0073ff961d4fece8e8ab08db8b1fc224c1fb0b1a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0073ff961d4fece8e8ab08db8b1fc224c1fb0b1a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0075e6a2425ff3be994f34b3ed13d419a355d283 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0075e6a2425ff3be994f34b3ed13d419a355d283)bin781 -> 781 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/007aaebe47992720ab52f5fde04b21754b119259 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/007aaebe47992720ab52f5fde04b21754b119259)bin258 -> 258 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/00859e3c1ad6cf8f8a5aee55e5317f1167f6a769 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/00859e3c1ad6cf8f8a5aee55e5317f1167f6a769)bin1601 -> 1601 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/009f8a352fa78059cb2c1952b8376d90e4646c4f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/009f8a352fa78059cb2c1952b8376d90e4646c4f)bin3185 -> 3185 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/00c8e55df9538bec12696a5c2f8b65c3a3c9cab8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/00c8e55df9538bec12696a5c2f8b65c3a3c9cab8)bin2182 -> 2182 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/00f033cef12d7f2ebaa3581b2d652cd79452164f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/00f033cef12d7f2ebaa3581b2d652cd79452164f)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/01490fc815f10450b0da99ead3c6794b90c4c037 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/01490fc815f10450b0da99ead3c6794b90c4c037)bin1128 -> 1128 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/01ce74d1333b9c936f8bbdd0b487d97df23e77e7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/01ce74d1333b9c936f8bbdd0b487d97df23e77e7)bin1326 -> 1326 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/020abbfec696d1f521410780a09f21e2d77b390c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/020abbfec696d1f521410780a09f21e2d77b390c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/020dc81c12738e3fd1d46b0f7f5a0fe8c2ed8c15 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/020dc81c12738e3fd1d46b0f7f5a0fe8c2ed8c15)bin12267 -> 12267 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/023846e197954a9f75622b27740b7a091908cbf3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/023846e197954a9f75622b27740b7a091908cbf3)bin1973 -> 1973 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/02522bc9ede9d63770c2e7969b742c8103349540 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/02522bc9ede9d63770c2e7969b742c8103349540)bin6178 -> 6178 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/025fc9926ee3f054bdf29c26e0c4bc11ba492571 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/025fc9926ee3f054bdf29c26e0c4bc11ba492571)bin1159 -> 1159 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0261add9a92a23364530947ab3b3a2cc38380ebc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0261add9a92a23364530947ab3b3a2cc38380ebc)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/02717f04242d8fb2efea5ef2430930f1851e7e4c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/02717f04242d8fb2efea5ef2430930f1851e7e4c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0282e8fe9f5dbf15b89224c687d4dd35b1270bce (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0282e8fe9f5dbf15b89224c687d4dd35b1270bce)bin1734 -> 1734 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/02857ee524f3bd8fec17e80641dc63e71dff4738 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/02857ee524f3bd8fec17e80641dc63e71dff4738)bin3130 -> 3130 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/02ab02e650318d288d3e94647d4574ed3b5fe648 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/02ab02e650318d288d3e94647d4574ed3b5fe648)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/031e1f3c2b987b4c5f17ba5d3aef1caff6494423 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/031e1f3c2b987b4c5f17ba5d3aef1caff6494423)bin8513 -> 8513 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/032fe65bf57e79bbfdb091c2fbeb2df9b2c1e316 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/032fe65bf57e79bbfdb091c2fbeb2df9b2c1e316)bin3068 -> 3068 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0343bcafd8e26929d5ce28bf6ca2f7703756d52f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0343bcafd8e26929d5ce28bf6ca2f7703756d52f)bin813 -> 813 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0372900761d0b4d0247ae121accca6656d418195 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0372900761d0b4d0247ae121accca6656d418195)bin2178 -> 2178 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/03a6e822535ff471f1c37b7f9a595f8172fc56a7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/03a6e822535ff471f1c37b7f9a595f8172fc56a7)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/040905acc9963f7621e458262c338835bb57d429 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/040905acc9963f7621e458262c338835bb57d429)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0438c52317e9aa570633420069b1d2c7a7dc94fa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0438c52317e9aa570633420069b1d2c7a7dc94fa)bin1500 -> 1500 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0486709d9c3b0004faacac305c9df7878f2d3b13 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0486709d9c3b0004faacac305c9df7878f2d3b13)bin1207 -> 1207 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/049209ded0c79c1e4a5c54bebef4a4d75d75bc51 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/049209ded0c79c1e4a5c54bebef4a4d75d75bc51)bin431 -> 431 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/04a511711c0335d890422e755c1f53e8a67b9927 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/04a511711c0335d890422e755c1f53e8a67b9927)bin2656 -> 2656 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/04b02de801ffe783e1b9ba878fab4a63b247f0a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/04b02de801ffe783e1b9ba878fab4a63b247f0a5)bin2027 -> 2027 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/04c01fab34e99886f8d2764ba4e045d334775741 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/04c01fab34e99886f8d2764ba4e045d334775741)bin264 -> 264 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/04c2ab37bf102bc6544b16353f32c6b28467020c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/04c2ab37bf102bc6544b16353f32c6b28467020c)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0539c1b237f157dbed5a1cab8635be7905fab70b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0539c1b237f157dbed5a1cab8635be7905fab70b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/056d31c169d5e1b13abd2293d09cb532b3c38ea3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/056d31c169d5e1b13abd2293d09cb532b3c38ea3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0570e22ede546e214b46cd092bb462863fe8ad51 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0570e22ede546e214b46cd092bb462863fe8ad51)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/058d7bec28c1e826f7caf1450f45f20a99ef92e4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/058d7bec28c1e826f7caf1450f45f20a99ef92e4)bin1079 -> 1079 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0678f1fff0a8801ba06846bb807e7d0b5a676bd4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0678f1fff0a8801ba06846bb807e7d0b5a676bd4)bin1157 -> 1157 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0680968132828605788f774f8a28581adaf86128 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0680968132828605788f774f8a28581adaf86128)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/06b9ef9358692aab64c4221f50d136a8f4243c65 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/06b9ef9358692aab64c4221f50d136a8f4243c65)bin3325 -> 3325 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/070ea5edbd38d486f4ed1453709ab177cef1c918 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/070ea5edbd38d486f4ed1453709ab177cef1c918)bin2704 -> 2704 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0723a9c587dcde2152991810363eef92d22be069 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0723a9c587dcde2152991810363eef92d22be069)bin2110 -> 2110 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/07275521c4cde98265246b6ad2d84e0aba735a17 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/07275521c4cde98265246b6ad2d84e0aba735a17)bin53885 -> 53885 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/07e9f111cd4700ac3485be68bee790ee4dfab133 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/07e9f111cd4700ac3485be68bee790ee4dfab133)bin2398 -> 2398 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/07f2d8c4d140c18ee7a1e07e5613d5dbbd9165f0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/07f2d8c4d140c18ee7a1e07e5613d5dbbd9165f0)bin952 -> 952 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0800bf95ea50debae4031d15bb4702dfbf8902d3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0800bf95ea50debae4031d15bb4702dfbf8902d3)bin4302 -> 4302 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/083c4d7d505242fcecf380aaff301ac20f636a54 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/083c4d7d505242fcecf380aaff301ac20f636a54)bin459 -> 459 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/08568a7fd09664adec70b34f930dbfd86465466b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/08568a7fd09664adec70b34f930dbfd86465466b)bin3216 -> 3216 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/086bbc94ad894b7b7891c55f1342973525ca11d9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/086bbc94ad894b7b7891c55f1342973525ca11d9)bin253 -> 253 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/08f6d18a7373bd4c1cb10263cec803eeee9a0cf0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/08f6d18a7373bd4c1cb10263cec803eeee9a0cf0)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/08fb004707ea6e995339e8d880f3fe211a22a2a1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/08fb004707ea6e995339e8d880f3fe211a22a2a1)bin2137 -> 2137 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0907e9d1c49524947ba15ea7efbb821670b5279a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0907e9d1c49524947ba15ea7efbb821670b5279a)bin7693 -> 7693 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0952d1ddc848d7c2a24354f129c92cb0dc441858 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0952d1ddc848d7c2a24354f129c92cb0dc441858)bin591 -> 591 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/096086287ae58296a4afd6b99df0473de7353f25 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/096086287ae58296a4afd6b99df0473de7353f25)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/09cf2c32c7276885d09d8488498b33255f1b0a8f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/09cf2c32c7276885d09d8488498b33255f1b0a8f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/09f6230e296d5e34fef5a62b15e2e547d05268e3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/09f6230e296d5e34fef5a62b15e2e547d05268e3)bin3041 -> 3041 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0a075a80806a613e566dc6dfac3680788cdf74ac (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0a075a80806a613e566dc6dfac3680788cdf74ac)bin652 -> 652 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0a592628ab19583d1a1e22e51b4234d83db3f015 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0a592628ab19583d1a1e22e51b4234d83db3f015)bin3238 -> 3238 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0a91988dd148e97510cb55461cec45cfea44bc8a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0a91988dd148e97510cb55461cec45cfea44bc8a)bin2934 -> 2934 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0a9acf4b3133a631431faee9f7010d12c5e68158 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0a9acf4b3133a631431faee9f7010d12c5e68158)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0a9ea1c26fba5ae0b5017895a195f1546a76ab61 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0a9ea1c26fba5ae0b5017895a195f1546a76ab61)bin4730 -> 4730 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0ad36aac61e702521f300d650eea8c733bc63e48 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0ad36aac61e702521f300d650eea8c733bc63e48)bin1734 -> 1734 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0b078f373db5eacd97c8a0fded058c53e0faf400 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0b078f373db5eacd97c8a0fded058c53e0faf400)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0b8481b6e7097372cf99a74ba985fdbe6cdb3eb0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0b8481b6e7097372cf99a74ba985fdbe6cdb3eb0)bin513 -> 513 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0baa89912bc5c8b18ad6ae79008d8349b80963b0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0baa89912bc5c8b18ad6ae79008d8349b80963b0)bin1632 -> 1632 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0bc64465650f71eceec7fa64ed13249ca2b219e8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0bc64465650f71eceec7fa64ed13249ca2b219e8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0bdac81db96a292212ad5228ed25e7a6cd8c109e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0bdac81db96a292212ad5228ed25e7a6cd8c109e)bin5997 -> 5997 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0cb036be271197d61b648cedd9fc963762f7c5c0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0cb036be271197d61b648cedd9fc963762f7c5c0)bin2195 -> 2195 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0cd092fb37fc857380986a387a9521b9daa29531 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0cd092fb37fc857380986a387a9521b9daa29531)bin805 -> 805 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0cfbf9a67fe4674c6305a20b8e691b3e36b9e0da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0cfbf9a67fe4674c6305a20b8e691b3e36b9e0da)bin1320 -> 1320 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0d17e46800348b439080ffcbaed73b3f53b44b4b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0d17e46800348b439080ffcbaed73b3f53b44b4b)bin1607 -> 1607 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0d1e5128bfddd399b6714dd8ab2d1a9707069305 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0d1e5128bfddd399b6714dd8ab2d1a9707069305)bin1911 -> 1911 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0d6b0c34a5210138ae8d80627b3d06c8d325a60a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0d6b0c34a5210138ae8d80627b3d06c8d325a60a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0d6eaa8a1a0a2b430d53a3a62f5baf498ce4c2d5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0d6eaa8a1a0a2b430d53a3a62f5baf498ce4c2d5)bin1243 -> 1243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0db2b90c53f0a41f2731b8272f4167201c317639 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0db2b90c53f0a41f2731b8272f4167201c317639)bin1075 -> 1075 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0de16b471b804c2bc7bfd11bcac347f3ad560808 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0de16b471b804c2bc7bfd11bcac347f3ad560808)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0e25aac19ca089e10ece1b96d627487d33e4d67f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0e25aac19ca089e10ece1b96d627487d33e4d67f)bin861 -> 861 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0e30cc2720af4c23a016b0e02511c74e1c69e448 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0e30cc2720af4c23a016b0e02511c74e1c69e448)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0e4e15cdf3a600937c3e8e410e0cdb9f7ca707b2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0e4e15cdf3a600937c3e8e410e0cdb9f7ca707b2)bin862 -> 862 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0e5098aae3b936d5562d52080170ccbfb1cf92b4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0e5098aae3b936d5562d52080170ccbfb1cf92b4)bin281 -> 281 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0e63bcd79cb377ad04ce03f8e1fbf8992af9af2f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0e63bcd79cb377ad04ce03f8e1fbf8992af9af2f)bin2995 -> 2995 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0e801dcdf7b8487e1caee4b79bacfec9b4eed44b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0e801dcdf7b8487e1caee4b79bacfec9b4eed44b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0f2def10cdc54c44ac2ae5b3fb8cc645aa2006d7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0f2def10cdc54c44ac2ae5b3fb8cc645aa2006d7)bin978 -> 978 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0f69ae04e1a1cf0b75cbf8cf6dfbd3d4d2abb520 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0f69ae04e1a1cf0b75cbf8cf6dfbd3d4d2abb520)bin651 -> 651 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0f8dcc3747f91548e1a2c08e0d3c9e47ec1eebc5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0f8dcc3747f91548e1a2c08e0d3c9e47ec1eebc5)bin1051 -> 1051 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0f9e6297105a823cf362d8ff65d38356c892a543 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0f9e6297105a823cf362d8ff65d38356c892a543)bin2195 -> 2195 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/0ff64e297699a036113266f9c5e05ee5d3a50689 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/0ff64e297699a036113266f9c5e05ee5d3a50689)bin501 -> 501 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1052d204e0df80fe5c35a8a2a91b0001bd06f628 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1052d204e0df80fe5c35a8a2a91b0001bd06f628)bin1615 -> 1615 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/106530f2bf32ea9beca843de2f1b0684c76c900d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/106530f2bf32ea9beca843de2f1b0684c76c900d)bin2558 -> 2558 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/107e7b880383a589eba5f0fc43fb040041430d41 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/107e7b880383a589eba5f0fc43fb040041430d41)bin3313 -> 3313 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/109a440a6d2cc56e497fc8124623eb4efb3cd219 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/109a440a6d2cc56e497fc8124623eb4efb3cd219)bin14691 -> 14691 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/10c03043c3df1e86bcce0b3efd8cd0b6aa527f65 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/10c03043c3df1e86bcce0b3efd8cd0b6aa527f65)bin3186 -> 3186 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/10e633c6c6867944a96f485821c66038fb1d5b66 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/10e633c6c6867944a96f485821c66038fb1d5b66)bin3058 -> 3058 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/10eedd95f4a7bdd47d1efe460166353a7b1f325f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/10eedd95f4a7bdd47d1efe460166353a7b1f325f)bin225 -> 225 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/10f478aff5e07f6590d8f19c33a4c83113a95919 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/10f478aff5e07f6590d8f19c33a4c83113a95919)bin267 -> 267 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/113f7036b0464d9f288b6778540f52ecaf5d30ad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/113f7036b0464d9f288b6778540f52ecaf5d30ad)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1142333f4d8c0cf94e48d7c8658813588fea28cf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1142333f4d8c0cf94e48d7c8658813588fea28cf)bin413 -> 413 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/114abae7b4a0685a4027135e2456a6e8c05bf2d2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/114abae7b4a0685a4027135e2456a6e8c05bf2d2)bin1729 -> 1729 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1155b5f1511b5e90848a7948678237e8c8b27ecf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1155b5f1511b5e90848a7948678237e8c8b27ecf)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/11a45e16d6a90a89daa5df994b31298d38d929ec (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/11a45e16d6a90a89daa5df994b31298d38d929ec)bin1504 -> 1504 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/11c21ca99dc6082c3c624055928fda926e06cdbb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/11c21ca99dc6082c3c624055928fda926e06cdbb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/11eb0838c7b6f033c4aaf660c30654831eae7d95 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/11eb0838c7b6f033c4aaf660c30654831eae7d95)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/11eb1a8c5802d57047b600371981c199d62e2f39 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/11eb1a8c5802d57047b600371981c199d62e2f39)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/11f9515c341d3149cd21d6104a6cf14784ce14c9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/11f9515c341d3149cd21d6104a6cf14784ce14c9)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/12083214a2aa628cab2692eae323d733564c194e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/12083214a2aa628cab2692eae323d733564c194e)bin2528 -> 2528 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/121dca3e43944979cd2a7c4c9e4c2a3b43ba25e2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/121dca3e43944979cd2a7c4c9e4c2a3b43ba25e2)bin2079 -> 2079 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/127e5bdafcf1f2bd1ebe1f6d73df3570b73d51f9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/127e5bdafcf1f2bd1ebe1f6d73df3570b73d51f9)bin803 -> 803 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/12a85cf4c675381073e11ea1e6ee52b11b7ac64c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/12a85cf4c675381073e11ea1e6ee52b11b7ac64c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/12b612300dcf190ec25621c145ef17160ac814da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/12b612300dcf190ec25621c145ef17160ac814da)bin1062 -> 1062 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/12cc49051555874508acfd9bda8a0d6a9401835c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/12cc49051555874508acfd9bda8a0d6a9401835c)bin765 -> 765 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/12cce724fc01ea375503095b5c33f19e910e2914 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/12cce724fc01ea375503095b5c33f19e910e2914)bin685 -> 685 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/134f03572ffc1ee93d626593722666cff45af399 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/134f03572ffc1ee93d626593722666cff45af399)bin250 -> 250 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/13a385b823fb0456efb5c63d4a487e0497eb3b2f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/13a385b823fb0456efb5c63d4a487e0497eb3b2f)bin2076 -> 2076 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/13aacb8abd706327bafd36c723bd57830ceee83d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/13aacb8abd706327bafd36c723bd57830ceee83d)bin1143 -> 1143 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/140068d036315d4000a0f174368bc781fc8d0de0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/140068d036315d4000a0f174368bc781fc8d0de0)bin10483 -> 10483 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/146f3ed97f72aa0f8a32e7ed3658231a7073fe45 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/146f3ed97f72aa0f8a32e7ed3658231a7073fe45)bin1699 -> 1699 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1473334c710e5276807b51e32c94fdb0e3f649d7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1473334c710e5276807b51e32c94fdb0e3f649d7)bin1521 -> 1521 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1479364f4459f0230ae93c081e4c9b5be055d895 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1479364f4459f0230ae93c081e4c9b5be055d895)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1482d4def1a11164fbf8bdfe0b4962859be6af79 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1482d4def1a11164fbf8bdfe0b4962859be6af79)bin256 -> 256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/153349d6d2b138179d044ecf61cb1cd02646606a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/153349d6d2b138179d044ecf61cb1cd02646606a)bin1467 -> 1467 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15480694f309a6c2fc12a1d83bfc6cd61d793aa9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15480694f309a6c2fc12a1d83bfc6cd61d793aa9)bin1427 -> 1427 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1548282dfd42eada9fcc8b0a6bc7db1a4fb7f7e9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1548282dfd42eada9fcc8b0a6bc7db1a4fb7f7e9)bin887 -> 887 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1573296a81c751342a69f20843fd05ad8dcf8f5a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1573296a81c751342a69f20843fd05ad8dcf8f5a)bin2495 -> 2495 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/158a3e3c6ed534fe9a32d53fa1ea058d5dc018f0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/158a3e3c6ed534fe9a32d53fa1ea058d5dc018f0)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15a9f5eb0c593f5d6e71946ce01046577a77a4dc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15a9f5eb0c593f5d6e71946ce01046577a77a4dc)bin1172 -> 1172 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15c6b982e642a0b248d8162f06d4fafc8c643a81 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15c6b982e642a0b248d8162f06d4fafc8c643a81)bin2342 -> 2342 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15d4d4915d0f06435c161d4d9f4bb1bca7295620 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15d4d4915d0f06435c161d4d9f4bb1bca7295620)bin455 -> 455 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15d5887f94afb1b1c779c5c82286e1cb8281dab7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15d5887f94afb1b1c779c5c82286e1cb8281dab7)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15d9e3cba22bd9b381eeff77c9303cf81d40a63b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15d9e3cba22bd9b381eeff77c9303cf81d40a63b)bin2269 -> 2269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/15f533f441cadd5dd8ae7c5963a2b807a3933886 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/15f533f441cadd5dd8ae7c5963a2b807a3933886)bin2269 -> 2269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/16140cb42921b9471e84602466245bb8805597a9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/16140cb42921b9471e84602466245bb8805597a9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/161d969a1f1970caa31251298a527217127c13e4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/161d969a1f1970caa31251298a527217127c13e4)bin899 -> 899 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/161fec882440fb840b81e9233cfd9aa71708c8d2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/161fec882440fb840b81e9233cfd9aa71708c8d2)bin3237 -> 3237 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1645d959bbafb840be325465844309ed89178a2e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1645d959bbafb840be325465844309ed89178a2e)bin914 -> 914 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/165b9821a664c20567e3aa3e1949c4c88cbd8baf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/165b9821a664c20567e3aa3e1949c4c88cbd8baf)bin330 -> 330 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/168b8e0a420f29815cedcb6d8b5a92ece4a7bcaf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/168b8e0a420f29815cedcb6d8b5a92ece4a7bcaf)bin522 -> 522 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/16cfb6b9b0426c654c5061db3e156da9d3ac50cf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/16cfb6b9b0426c654c5061db3e156da9d3ac50cf)bin849 -> 849 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/16d697269394ee89e715245aaa1621b8697ad23b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/16d697269394ee89e715245aaa1621b8697ad23b)bin620 -> 620 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/16f60f4e36cd29a63f2d0c84a172112f5e4896c9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/16f60f4e36cd29a63f2d0c84a172112f5e4896c9)bin1397 -> 1397 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/16f9b1b1196313ad918491067fd837bb05471e76 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/16f9b1b1196313ad918491067fd837bb05471e76)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1716a12e0eafb3b47b9616421d2d96511be23ba9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1716a12e0eafb3b47b9616421d2d96511be23ba9)bin799 -> 799 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/17212cd8ae49a14e24e91278f19cfe6717a96ce0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/17212cd8ae49a14e24e91278f19cfe6717a96ce0)bin4680 -> 4680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/172b9931fa07581e40d87afb4aa7a63923b16f6c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/172b9931fa07581e40d87afb4aa7a63923b16f6c)bin2621 -> 2621 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/173763824f9ea945e03cbe26de5fb8c8949d09f9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/173763824f9ea945e03cbe26de5fb8c8949d09f9)bin2295 -> 2295 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1759617056b4e02de091b736df210fe08553eeaa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1759617056b4e02de091b736df210fe08553eeaa)bin613 -> 613 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/17b51ef853d5e73e75085ba22352fce83604cf86 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/17b51ef853d5e73e75085ba22352fce83604cf86)bin1734 -> 1734 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/17db63e12beea2f5ec8800fbedceb87c15836489 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/17db63e12beea2f5ec8800fbedceb87c15836489)bin3262 -> 3262 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/183cf3a3732da3e3096c9c968827ade53539d9fd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/183cf3a3732da3e3096c9c968827ade53539d9fd)bin331 -> 331 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1841f17ef270bd645115e01fbe6290a81c5437f9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1841f17ef270bd645115e01fbe6290a81c5437f9)bin2734 -> 2734 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/18560685c04fe109b9c4eadf5269f14747fb06d1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/18560685c04fe109b9c4eadf5269f14747fb06d1)bin879 -> 879 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/186f732c1859203a558f2c4477711bc121ccaf6c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/186f732c1859203a558f2c4477711bc121ccaf6c)bin2911 -> 2911 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/187b39e79c5d9b2de68b46646fb894ece05e3965 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/187b39e79c5d9b2de68b46646fb894ece05e3965)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/188ed1b0c0481feaf0851d953821cdaec6b5b53e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/188ed1b0c0481feaf0851d953821cdaec6b5b53e)bin2186 -> 2186 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/18b2fe59546b7de8be258637b7006f18e896021f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/18b2fe59546b7de8be258637b7006f18e896021f)bin856 -> 856 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/18b8e5cf41bd67e9962f4a7d4c643463eccb704d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/18b8e5cf41bd67e9962f4a7d4c643463eccb704d)bin3141 -> 3141 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/18bceb14359f6bc138980fdcb89beeaccc3ed464 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/18bceb14359f6bc138980fdcb89beeaccc3ed464)bin1253 -> 1253 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/18da9559a48985fea0c9943304275cab916ee231 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/18da9559a48985fea0c9943304275cab916ee231)bin2299 -> 2299 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/18e7489ff93a515d0bb7a9c6729abde0fde670c5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/18e7489ff93a515d0bb7a9c6729abde0fde670c5)bin1246 -> 1246 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/18f4cd60a2298186439d5c37577b37145cd86082 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/18f4cd60a2298186439d5c37577b37145cd86082)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1902bc3783c29c911a4e1a3bbf99feaac01f82ab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1902bc3783c29c911a4e1a3bbf99feaac01f82ab)bin2065 -> 2065 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1906e42528d3c21659b6872192dfb7201bb73ffe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1906e42528d3c21659b6872192dfb7201bb73ffe)bin3072 -> 3072 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/193165342eaa85d2e63ae52fefe992ea6ab4148c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/193165342eaa85d2e63ae52fefe992ea6ab4148c)bin2355 -> 2355 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1961aa4fd54c0e85e4c59bfee3851264c67eee95 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1961aa4fd54c0e85e4c59bfee3851264c67eee95)bin585 -> 585 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/19a8acd6b6fa8a86d8000f54edb1994d21bbaa78 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/19a8acd6b6fa8a86d8000f54edb1994d21bbaa78)bin1991 -> 1991 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1a3ae521607db131df15ead67c3767aa9124de9e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1a3ae521607db131df15ead67c3767aa9124de9e)bin413 -> 413 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1ab430b2c624a5f049b850885d063d526496b446 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1ab430b2c624a5f049b850885d063d526496b446)bin734 -> 734 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1af01fd078ed461d4c9be8380ae15e40bdcfba93 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1af01fd078ed461d4c9be8380ae15e40bdcfba93)bin826 -> 826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1af4347333e6ad9275dcfb43e7a34d7d062a832d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1af4347333e6ad9275dcfb43e7a34d7d062a832d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1afc0ecaad0ac7f4f2fc9f8075f59d3534cd7825 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1afc0ecaad0ac7f4f2fc9f8075f59d3534cd7825)bin796 -> 796 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1afc295c8a6e8675537de470311adeb8295ec6eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1afc295c8a6e8675537de470311adeb8295ec6eb)bin237 -> 237 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1b0ea54f182217017fae82855510ce8c5a7ca425 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1b0ea54f182217017fae82855510ce8c5a7ca425)bin462 -> 462 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1b7419de43f9c6fd464bb98e9f165fe88f41a42a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1b7419de43f9c6fd464bb98e9f165fe88f41a42a)bin1073 -> 1073 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1b7e3ade3f2d4f413b2b9f28dc51dc9f7a595819 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1b7e3ade3f2d4f413b2b9f28dc51dc9f7a595819)bin879 -> 879 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1bd0da10500deb66aa4358c837e182c2c8758cdf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1bd0da10500deb66aa4358c837e182c2c8758cdf)bin962 -> 962 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1be1889a0b73c48327efce21aa3d6bbdde2c4d4a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1be1889a0b73c48327efce21aa3d6bbdde2c4d4a)bin1216 -> 1216 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1beb50d58637c2305db9d955977723ee76204027 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1beb50d58637c2305db9d955977723ee76204027)bin2734 -> 2734 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1bf5edf031308f64fb61e8bc661d0ccc79b4346b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1bf5edf031308f64fb61e8bc661d0ccc79b4346b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1c4d10a203c2039dbd89aa1088cfcf32df40b339 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1c4d10a203c2039dbd89aa1088cfcf32df40b339)bin1519 -> 1519 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1c87113e5b01ae1435acf60c5e807304ce46288a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1c87113e5b01ae1435acf60c5e807304ce46288a)bin1281 -> 1281 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cad28eeb13fcdd7463f5b4bb726b4447106e153 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cad28eeb13fcdd7463f5b4bb726b4447106e153)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cba3a15adc1a67ee9a0a79a685bd77d989fb053 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cba3a15adc1a67ee9a0a79a685bd77d989fb053)bin12624 -> 12624 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cd39b174346cf9f6c46d5572c78fbcfcb2b122e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cd39b174346cf9f6c46d5572c78fbcfcb2b122e)bin2427 -> 2427 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cdd98f479d84d3b6a34032233c8cb9a5be6120f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cdd98f479d84d3b6a34032233c8cb9a5be6120f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cde95f5777da164a0413b3d32c42e3f096f2e30 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cde95f5777da164a0413b3d32c42e3f096f2e30)bin811 -> 811 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cea205fb12ba3d81886bc5036499e0652ede45a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cea205fb12ba3d81886bc5036499e0652ede45a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cf4efa78a5b7d3977f604f9685c75f87f16ad93 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cf4efa78a5b7d3977f604f9685c75f87f16ad93)bin2664 -> 2664 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cf9863657d435c2bf7064569ba6db7348567299 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cf9863657d435c2bf7064569ba6db7348567299)bin509 -> 509 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cfac6500eccc4cd967227da1aba86ee1bf59056 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cfac6500eccc4cd967227da1aba86ee1bf59056)bin320 -> 320 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1cfdaac5366dc47b0c1aef4574cf8fda45809f83 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1cfdaac5366dc47b0c1aef4574cf8fda45809f83)bin1977 -> 1977 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d13c2176660266f1bfa0ad0fd5dffdb868ee224 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d13c2176660266f1bfa0ad0fd5dffdb868ee224)bin9234 -> 9234 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d466683c633c51565c6cf9d624d70957db3a7a1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d466683c633c51565c6cf9d624d70957db3a7a1)bin923 -> 923 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d4eb3d6ad080458df5997137a82071b6bf68d58 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d4eb3d6ad080458df5997137a82071b6bf68d58)bin382 -> 382 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d52e0eac1e13bb7fab33d08b8e66bee7fb58d2e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d52e0eac1e13bb7fab33d08b8e66bee7fb58d2e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d5d5a1b43288c60894c27530b88065d1a52d0c6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d5d5a1b43288c60894c27530b88065d1a52d0c6)bin1809 -> 1809 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d5ef19a56559b2a4b9237c3b1bf7836971950cc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d5ef19a56559b2a4b9237c3b1bf7836971950cc)bin648 -> 648 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d6b1798cd60460af2f14122a2e97411e8e7d0c3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d6b1798cd60460af2f14122a2e97411e8e7d0c3)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d6e8685c76485ede39cc9b1fa41dfdef0efcf47 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d6e8685c76485ede39cc9b1fa41dfdef0efcf47)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d717da6570a5428f64813c0d2c300bbfc13c4db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d717da6570a5428f64813c0d2c300bbfc13c4db)bin784 -> 784 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d84b68ca94ddb348dcff7557b8c30682094ef59 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d84b68ca94ddb348dcff7557b8c30682094ef59)bin764 -> 764 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1d9bf7d3f96e2fa587c6490804a41ca30d0b35a0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1d9bf7d3f96e2fa587c6490804a41ca30d0b35a0)bin3016 -> 3016 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1ddd50587455cfb73e510a7b57cece674cf747c3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1ddd50587455cfb73e510a7b57cece674cf747c3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1df3df41a08c885b1edf547603a5c6fe47c14bdf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1df3df41a08c885b1edf547603a5c6fe47c14bdf)bin1078 -> 1078 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1e11f16c9500cd5b5b090d84b0d36564fe3609fc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1e11f16c9500cd5b5b090d84b0d36564fe3609fc)bin1060 -> 1060 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1e20d3f9f0b9695adb99b53ddc887a2780572d6b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1e20d3f9f0b9695adb99b53ddc887a2780572d6b)bin636 -> 636 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1e50b5b2415e309b85b5ca7263ca80d75c7cde34 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1e50b5b2415e309b85b5ca7263ca80d75c7cde34)bin1182 -> 1182 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1ea5afd91a58edfa0e76905af18da5f90898ee0f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1ea5afd91a58edfa0e76905af18da5f90898ee0f)bin2360 -> 2360 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1f02e2ca4682720e45a53149ac1cc92fc3d8aef2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1f02e2ca4682720e45a53149ac1cc92fc3d8aef2)bin2295 -> 2295 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1f0baa8df9b90a62a865d17d0de4cc3b6264ffcf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1f0baa8df9b90a62a865d17d0de4cc3b6264ffcf)bin2680 -> 2680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1f344c4c6a5239dcb5a72178c51e74e171a71440 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1f344c4c6a5239dcb5a72178c51e74e171a71440)bin2244 -> 2244 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1f40bf9202327a5c9208b09b69c4fdf442a620fb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1f40bf9202327a5c9208b09b69c4fdf442a620fb)bin1269 -> 1269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1f49973c202a0e8d28d336e50af331646dca8c76 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1f49973c202a0e8d28d336e50af331646dca8c76)bin1620 -> 1620 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1f9e9ab53d38f5b89db1d44586d53b8813655fa3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1f9e9ab53d38f5b89db1d44586d53b8813655fa3)bin1965 -> 1965 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1fc389a4fbeaf8287980ac33bfcd0cb680b0332a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1fc389a4fbeaf8287980ac33bfcd0cb680b0332a)bin3463 -> 3463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1fc901543b3967afeacafdd5645f5554ba056a7f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1fc901543b3967afeacafdd5645f5554ba056a7f)bin3212 -> 3212 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1fee412edb4f8bf201684c09f71f838b1689daf8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1fee412edb4f8bf201684c09f71f838b1689daf8)bin821 -> 821 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/1feffc95bea79117e8def6c4528d8281c95d3b81 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/1feffc95bea79117e8def6c4528d8281c95d3b81)bin2115 -> 2115 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/202d2810d012cd086c5620f3ade95ec96488356f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/202d2810d012cd086c5620f3ade95ec96488356f)bin2939 -> 2939 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2039ca70b5fa7a7bef14789bf7187fcbc86760d7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2039ca70b5fa7a7bef14789bf7187fcbc86760d7)bin2536 -> 2536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2052e44d6093ec8c3a564a8d06e8aad3e93cbe14 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2052e44d6093ec8c3a564a8d06e8aad3e93cbe14)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/205df121a67024191af01b710eaefcbc543491b8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/205df121a67024191af01b710eaefcbc543491b8)bin1968 -> 1968 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/20648c32447759df4199c8d391fd51eaa7f98cca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/20648c32447759df4199c8d391fd51eaa7f98cca)bin259 -> 259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/208a4bba76dbc62406de74852acda37d3de517a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/208a4bba76dbc62406de74852acda37d3de517a5)bin653 -> 653 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/20969846630853745db3cb7a69c26267955db5d9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/20969846630853745db3cb7a69c26267955db5d9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/20bc972a0e2bbe301f46e15b0cdf9ac460df8081 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/20bc972a0e2bbe301f46e15b0cdf9ac460df8081)bin3297 -> 3297 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/20cfcd729575a955d12e36b397e39d1a384ae288 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/20cfcd729575a955d12e36b397e39d1a384ae288)bin873 -> 873 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/210a1940ff0b3e27851741d557f767db27ecdfa2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/210a1940ff0b3e27851741d557f767db27ecdfa2)bin1209 -> 1209 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/21270ce4a11a063525112a67ea2f9e8e45ab4fa1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/21270ce4a11a063525112a67ea2f9e8e45ab4fa1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/213f7287d793d878fd7fc8d4f07f2c365e7487d3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/213f7287d793d878fd7fc8d4f07f2c365e7487d3)bin3237 -> 3237 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/21603b6a69fb26e06294c9d6ba72dda9c1ece2d1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/21603b6a69fb26e06294c9d6ba72dda9c1ece2d1)bin2268 -> 2268 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/221a652335df26421a370070ed933c5ab56a3835 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/221a652335df26421a370070ed933c5ab56a3835)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/22433f49092cffef52b00c477ef5425e7d94c60f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/22433f49092cffef52b00c477ef5425e7d94c60f)bin1372 -> 1372 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/22c4ab5f52b99b6412b7ae9ab3ac065805615350 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/22c4ab5f52b99b6412b7ae9ab3ac065805615350)bin1716 -> 1716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/22d7c4aefbca1244de2822596e1f64a9d038fa64 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/22d7c4aefbca1244de2822596e1f64a9d038fa64)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/22ef71f25c51d7c66a715a416e9e25731cd11688 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/22ef71f25c51d7c66a715a416e9e25731cd11688)bin639 -> 639 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/22f790d32b974b844e216e9839fa7d7148e78ef5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/22f790d32b974b844e216e9839fa7d7148e78ef5)bin2276 -> 2276 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/22f972c206cec8e32c4a9ca40652fe93987ee2c0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/22f972c206cec8e32c4a9ca40652fe93987ee2c0)bin1936 -> 1936 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/230cde335ae0614a0c7ab37d1aa53e5d6d800e49 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/230cde335ae0614a0c7ab37d1aa53e5d6d800e49)bin720 -> 720 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/234068e93d0f2442ce2ceb7b577e16bf549f24f5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/234068e93d0f2442ce2ceb7b577e16bf549f24f5)bin810 -> 810 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/23755b4ab5815d923c9d1694ce8e673c804794e7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/23755b4ab5815d923c9d1694ce8e673c804794e7)bin2638 -> 2638 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/23d5f8a0fe048b8e0fd5256c93b2feef0ab32223 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/23d5f8a0fe048b8e0fd5256c93b2feef0ab32223)bin1478 -> 1478 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2417f1e81c249a01c6b1ad7c4c52507e66c2d754 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2417f1e81c249a01c6b1ad7c4c52507e66c2d754)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/24233f55e9299eaa6cd420fc99af232754fb0c93 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/24233f55e9299eaa6cd420fc99af232754fb0c93)bin1915 -> 1915 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/242ecae61ea3189e717ef29e31226384db6bb3f1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/242ecae61ea3189e717ef29e31226384db6bb3f1)bin657 -> 657 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/24913b1844b924b75704248f502a53fea3154234 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/24913b1844b924b75704248f502a53fea3154234)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/24ca097ac4285b7a91ba5a293e258ff047180a75 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/24ca097ac4285b7a91ba5a293e258ff047180a75)bin595 -> 595 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/24ee7e638db6d3c5e4dfb5f9f8f8e76823bc059a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/24ee7e638db6d3c5e4dfb5f9f8f8e76823bc059a)bin324 -> 324 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/24fee7be3a975d7083c041639da30e01dade3c62 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/24fee7be3a975d7083c041639da30e01dade3c62)bin1249 -> 1249 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2508ab1a9208b36639cf9d5f3249cbc0f6a40846 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2508ab1a9208b36639cf9d5f3249cbc0f6a40846)bin763 -> 763 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/251194b93ce00ba505508bbfdb5fd6c2f65d1db2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/251194b93ce00ba505508bbfdb5fd6c2f65d1db2)bin3330 -> 3330 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/25292f092af2124059f87f041c4144c31d20eb9d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/25292f092af2124059f87f041c4144c31d20eb9d)bin1243 -> 1243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/25516e7584bd139ebbd4f4eea8e6f79aef6581d7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/25516e7584bd139ebbd4f4eea8e6f79aef6581d7)bin2773 -> 2773 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2563441fff19c0fe4e7a3f3978ec5ae8434797c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2563441fff19c0fe4e7a3f3978ec5ae8434797c2)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/25a0ec240f617d8038650476f77f766508422f9a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/25a0ec240f617d8038650476f77f766508422f9a)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/262d5a469e93b3bc96045a67c08af0860b725dd3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/262d5a469e93b3bc96045a67c08af0860b725dd3)bin2668 -> 2668 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/26445ad1f3cb03ce8e8adf626484892a941a5937 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/26445ad1f3cb03ce8e8adf626484892a941a5937)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/264b06b75af80ab4bd434c267752d2f1a31aa552 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/264b06b75af80ab4bd434c267752d2f1a31aa552)bin2361 -> 2361 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2656c6f243221c54ade035e437366fe93ff5f903 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2656c6f243221c54ade035e437366fe93ff5f903)bin576 -> 576 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/269212ebf38957a3708f5cb91d285ff8919cac7c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/269212ebf38957a3708f5cb91d285ff8919cac7c)bin561 -> 561 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/26b2520f118281ebe5e1c6e07d6f3f245cd1eb8c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/26b2520f118281ebe5e1c6e07d6f3f245cd1eb8c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/27088ea5c441214f31e2bf3f496199697d38658e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/27088ea5c441214f31e2bf3f496199697d38658e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/272b4e0a28028fdda4417b4fb563eecbc6d6072f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/272b4e0a28028fdda4417b4fb563eecbc6d6072f)bin1124 -> 1124 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/27575a3eb0c7284a0980489c95490f09dbc77bc9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/27575a3eb0c7284a0980489c95490f09dbc77bc9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/27630c0c82aaded58756dff70a55f1c8f14ae71a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/27630c0c82aaded58756dff70a55f1c8f14ae71a)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2764458b21c3710e18e14e63b61556698c57d1aa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2764458b21c3710e18e14e63b61556698c57d1aa)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/279e36ce2e07af274554406803d6c4cf89169178 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/279e36ce2e07af274554406803d6c4cf89169178)bin1880 -> 1880 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/279e69caf577b2aa381eb484afbdaf0b8a1155bc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/279e69caf577b2aa381eb484afbdaf0b8a1155bc)bin649 -> 649 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/27c0a79cd89608648385753fcc587053a9f923db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/27c0a79cd89608648385753fcc587053a9f923db)bin2102 -> 2102 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/27c88ead53bdb322e5fe80e0116e08f8934496be (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/27c88ead53bdb322e5fe80e0116e08f8934496be)bin3180 -> 3180 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/27d00c92c367b3f453e1cbb4fd7afb74840c613c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/27d00c92c367b3f453e1cbb4fd7afb74840c613c)bin585 -> 585 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/27f830c060c11f9de1af07a9f4f1ad85d995f372 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/27f830c060c11f9de1af07a9f4f1ad85d995f372)bin3335 -> 3335 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/28023fd9e1b0757ef992cf03e0d9bc5fa9f9e7c5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/28023fd9e1b0757ef992cf03e0d9bc5fa9f9e7c5)bin1598 -> 1598 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/28029c0b63b032dc931a8b64ba8c275a7483d5d5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/28029c0b63b032dc931a8b64ba8c275a7483d5d5)bin1817 -> 1817 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/281285f5a22306fbc756dee2891457fd9c86c701 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/281285f5a22306fbc756dee2891457fd9c86c701)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2826fe68b27d0f3b9707867a375b3a49495eb6a9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2826fe68b27d0f3b9707867a375b3a49495eb6a9)bin669 -> 669 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2847ff83e37f5e2d6a393139b514ebd3d89a169c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2847ff83e37f5e2d6a393139b514ebd3d89a169c)bin607 -> 607 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/28b1932e0b637fd8b27f07d2bd72ccedf7163d5b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/28b1932e0b637fd8b27f07d2bd72ccedf7163d5b)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/28b4899d084db6bf75d4703c49e9256931f4f021 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/28b4899d084db6bf75d4703c49e9256931f4f021)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/28b5e9a62e36fbb6a3bffbdb05291ab0c1e8814b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/28b5e9a62e36fbb6a3bffbdb05291ab0c1e8814b)bin3329 -> 3329 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/28d817f49f12f3dc0c10cebca33fc4f57685f969 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/28d817f49f12f3dc0c10cebca33fc4f57685f969)bin1655 -> 1655 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/29054a06aa5667ae6000ac73cecbd998a33776ad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/29054a06aa5667ae6000ac73cecbd998a33776ad)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/29a15ecbb86f4543789f1c6db68e1fd221db2348 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/29a15ecbb86f4543789f1c6db68e1fd221db2348)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/29a9c98dcb9e0088f3dd4f0c3c6f1daf550afcc9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/29a9c98dcb9e0088f3dd4f0c3c6f1daf550afcc9)bin1936 -> 1936 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/29d2b52de9821101f6d3c3287a4c80e4224ee23f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/29d2b52de9821101f6d3c3287a4c80e4224ee23f)bin770 -> 770 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2a3015e766a8ce3dc4ec96f7dbfebc87070604bf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2a3015e766a8ce3dc4ec96f7dbfebc87070604bf)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2a5849e615a99f66cc8a306b74102a8f61fb3e61 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2a5849e615a99f66cc8a306b74102a8f61fb3e61)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2aee6e088bc5673d02852060c8d292d943470ba5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2aee6e088bc5673d02852060c8d292d943470ba5)bin2678 -> 2678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2af25c0578a453e2dbd25be603aa83325816c480 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2af25c0578a453e2dbd25be603aa83325816c480)bin625 -> 625 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2af342e8cc11e004bdddb041e90a35796068fdc2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2af342e8cc11e004bdddb041e90a35796068fdc2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2afa80bdd1232f91c3a3003eca430b03fe75aa8d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2afa80bdd1232f91c3a3003eca430b03fe75aa8d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2b91ad21a8b84eaade1258eeef5a3cc9e6ace359 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2b91ad21a8b84eaade1258eeef5a3cc9e6ace359)bin1628 -> 1628 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2b96dfcd15698c5e15ee2031ebc284529594c095 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2b96dfcd15698c5e15ee2031ebc284529594c095)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2c06da1133ebe9980960c1b570d6ca97cfb9196a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2c06da1133ebe9980960c1b570d6ca97cfb9196a)bin1151 -> 1151 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2c1f37759a09505cc411bf7326e9fbe79b3c74db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2c1f37759a09505cc411bf7326e9fbe79b3c74db)bin486 -> 486 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2c5b6450368e66daf881054106bb6526f8211849 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2c5b6450368e66daf881054106bb6526f8211849)bin2730 -> 2730 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2c66d55114db195f230df93c0a01196f9025ac0d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2c66d55114db195f230df93c0a01196f9025ac0d)bin244 -> 244 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2c7ec4266022f46014c82f86803cf1321e730bbe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2c7ec4266022f46014c82f86803cf1321e730bbe)bin693 -> 693 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2c8fa98c9460b9615bb07192a570f6ed7cdf4683 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2c8fa98c9460b9615bb07192a570f6ed7cdf4683)bin341 -> 341 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2cba7beaed4dfd0adf1e98b4d25d87a26716cfe8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2cba7beaed4dfd0adf1e98b4d25d87a26716cfe8)bin2339 -> 2339 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2cbb91b2983e6c08b2dc531dcf24071a4e93bbba (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2cbb91b2983e6c08b2dc531dcf24071a4e93bbba)bin3370 -> 3370 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2cdc347500709a4240a43dadd20dfd5c406f099f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2cdc347500709a4240a43dadd20dfd5c406f099f)bin1443 -> 1443 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2cf6df1dd62ada8e1884427989139c6ee5950bb4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2cf6df1dd62ada8e1884427989139c6ee5950bb4)bin578 -> 578 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2d0d776afe0a9041097a0318e4d58e7f4035485e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2d0d776afe0a9041097a0318e4d58e7f4035485e)bin1194 -> 1194 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2d6e88158779a54f75920b282250dd2f698b9b80 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2d6e88158779a54f75920b282250dd2f698b9b80)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2d953fe58ae6d809294d9e2cf916162a0465f2ce (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2d953fe58ae6d809294d9e2cf916162a0465f2ce)bin14227 -> 14227 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2dc5106927530e99917b2e2c5e233668feead299 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2dc5106927530e99917b2e2c5e233668feead299)bin694 -> 694 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2e1df53487f5f1699eac6403ce01ea6c3d820c1d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2e1df53487f5f1699eac6403ce01ea6c3d820c1d)bin465 -> 465 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2e6da58f42fbaaeb6298592e1fa56ba1eda50e6b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2e6da58f42fbaaeb6298592e1fa56ba1eda50e6b)bin240 -> 240 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2e9f1ca446fe064c9d58faf6f6c7e06fdd6ec17c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2e9f1ca446fe064c9d58faf6f6c7e06fdd6ec17c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2eb5376d2e1efab1af365a3fc9dca638576e77e4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2eb5376d2e1efab1af365a3fc9dca638576e77e4)bin1353 -> 1353 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2eec172bebfb7c1e6d678f4e332443b2041c54a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2eec172bebfb7c1e6d678f4e332443b2041c54a5)bin2128 -> 2128 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2eed5796bb51c12d543faf75ccad5de33581d45e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2eed5796bb51c12d543faf75ccad5de33581d45e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2f004c26ec1c1878f50c12dd743bfdfb069b2a0a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2f004c26ec1c1878f50c12dd743bfdfb069b2a0a)bin1599 -> 1599 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2f15c1eb4c784e9c6bd4cebc68edf3706c55c671 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2f15c1eb4c784e9c6bd4cebc68edf3706c55c671)bin1639 -> 1639 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2f2c2c34df4bc5ab0e430d46458adc8b9ebb70d7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2f2c2c34df4bc5ab0e430d46458adc8b9ebb70d7)bin595 -> 595 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2f78a79c67f88482755d9564dd531ac22145072c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2f78a79c67f88482755d9564dd531ac22145072c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2fad1c0d88f403f7fc00d05ae4a574deaeadc891 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2fad1c0d88f403f7fc00d05ae4a574deaeadc891)bin1713 -> 1713 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2fb499a8c1d879dee29cbbc3a288542795446dc4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2fb499a8c1d879dee29cbbc3a288542795446dc4)bin1053 -> 1053 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2fdf037798b5155d23127cc132fc2b55c54bff4b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2fdf037798b5155d23127cc132fc2b55c54bff4b)bin1147 -> 1147 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/2ff32deaea056ab91bff0f70051aabce67fdab4c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/2ff32deaea056ab91bff0f70051aabce67fdab4c)bin2551 -> 2551 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/300118c85e2c0ea144d109cd35409d0b025d40da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/300118c85e2c0ea144d109cd35409d0b025d40da)bin1658 -> 1658 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3040be8b4b4ead31ba40af26478e7da7592ca00f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3040be8b4b4ead31ba40af26478e7da7592ca00f)bin2077 -> 2077 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3068e3eef14f3f231a44cdda89e74b0fd38999ec (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3068e3eef14f3f231a44cdda89e74b0fd38999ec)bin1756 -> 1756 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/308f60f5943d8e6786273688be07c3c3ef173afb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/308f60f5943d8e6786273688be07c3c3ef173afb)bin545 -> 545 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3095fc51c582597585cf91a3c6bdb7260a5b0678 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3095fc51c582597585cf91a3c6bdb7260a5b0678)bin1351 -> 1351 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/30afcde3a88a91e551c02ed08868171fb7eb0fe6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/30afcde3a88a91e551c02ed08868171fb7eb0fe6)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/30c8d09bc086eb594f924b38b264ebe04b257949 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/30c8d09bc086eb594f924b38b264ebe04b257949)bin1001 -> 1001 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3104d664c86a8116ed0ec894e47f4ecf6c83274c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3104d664c86a8116ed0ec894e47f4ecf6c83274c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/312f31d3c5979b1a326e254052dbd939113f6811 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/312f31d3c5979b1a326e254052dbd939113f6811)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/313f6651777eb4e5655303544f626e7f9a6f7fa8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/313f6651777eb4e5655303544f626e7f9a6f7fa8)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/319562c2b018b8171d14ee5d5f0f1faf028eba2f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/319562c2b018b8171d14ee5d5f0f1faf028eba2f)bin1514 -> 1514 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/31f4768afc2ee852a3b400302999a5aaf6c11534 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/31f4768afc2ee852a3b400302999a5aaf6c11534)bin1317 -> 1317 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/320b5ab9f2282f3412c2031740d8e16bf1034ca4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/320b5ab9f2282f3412c2031740d8e16bf1034ca4)bin4196 -> 4196 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3239858eed96bfc41f6788e3194d3c8b54be642b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3239858eed96bfc41f6788e3194d3c8b54be642b)bin413 -> 413 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/32652d55d1815cc61876c9c67fb026562ae66774 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/32652d55d1815cc61876c9c67fb026562ae66774)bin380 -> 380 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/32b7506dab3c7097891387113d3374b1d3c2d2bd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/32b7506dab3c7097891387113d3374b1d3c2d2bd)bin765 -> 765 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/330e9a531b5fba9270c3dc28be76e9ebd0f01005 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/330e9a531b5fba9270c3dc28be76e9ebd0f01005)bin1918 -> 1918 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3351791a256cad9d4c03fc664095df9b4735c486 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3351791a256cad9d4c03fc664095df9b4735c486)bin110 -> 110 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3359dfeaaef4a47ad5e2f94d8d153c4cf92cd342 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3359dfeaaef4a47ad5e2f94d8d153c4cf92cd342)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/337611780031efbffe5d6203a6dc2912f963540e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/337611780031efbffe5d6203a6dc2912f963540e)bin1327 -> 1327 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/337f314fdffe7ae650ee3b49559efa48fff9e4cb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/337f314fdffe7ae650ee3b49559efa48fff9e4cb)bin712 -> 712 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/33cb837c2f46a023e8766d4d826d718148b5fa3c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/33cb837c2f46a023e8766d4d826d718148b5fa3c)bin2009 -> 2009 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/341ce815a91bca1e0238a17df8a90bd536984cc1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/341ce815a91bca1e0238a17df8a90bd536984cc1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3435921e20bda679b25447535e18c77de5c593c7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3435921e20bda679b25447535e18c77de5c593c7)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/343d52108068bb21b339a965f338f9b1bb3a521b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/343d52108068bb21b339a965f338f9b1bb3a521b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/349b442a2336897c174ae62afd41fdbd57939298 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/349b442a2336897c174ae62afd41fdbd57939298)bin1107 -> 1107 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/34cbe76ee512bf9752890536d5ba88c3bcb315df (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/34cbe76ee512bf9752890536d5ba88c3bcb315df)bin765 -> 765 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/34eaa3c3c8f87ff822b53994916ed4ed4ce58afc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/34eaa3c3c8f87ff822b53994916ed4ed4ce58afc)bin11879 -> 11879 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/34f417b82e156a1c5acb8ab47633fae113140cca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/34f417b82e156a1c5acb8ab47633fae113140cca)bin362 -> 362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/355cce00ee9170723f29fd0d91caf21a66f217d4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/355cce00ee9170723f29fd0d91caf21a66f217d4)bin1191 -> 1191 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/35c475f3a26906806d28e978873bc589885d9f3a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/35c475f3a26906806d28e978873bc589885d9f3a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/35dd30dc9bd0eac61877b5eaba281218abe2c6cc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/35dd30dc9bd0eac61877b5eaba281218abe2c6cc)bin3299 -> 3299 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/35e0b79404cb1b0ee5b6f3f0d591c57a5c8360f2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/35e0b79404cb1b0ee5b6f3f0d591c57a5c8360f2)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/35f0ec6b24244372c243e39acca309964fe6eda0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/35f0ec6b24244372c243e39acca309964fe6eda0)bin2963 -> 2963 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/36709f61502663a8f5586dd84c644d1958833059 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/36709f61502663a8f5586dd84c644d1958833059)bin2710 -> 2710 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/36972ae34b6f3ca20ae393afdf2874e3da81c5c7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/36972ae34b6f3ca20ae393afdf2874e3da81c5c7)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/36b739135194b81411d435ba2aa4cd91f2a15845 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/36b739135194b81411d435ba2aa4cd91f2a15845)bin183 -> 183 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3702cced0cd10eda260a77a1fae223fcb010a9c8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3702cced0cd10eda260a77a1fae223fcb010a9c8)bin1215 -> 1215 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3707c82b1ca3e8a07197cb111792c7cae9f148d8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3707c82b1ca3e8a07197cb111792c7cae9f148d8)bin680 -> 680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/378bc896b93289b02d0061cae9a27b88d027b3aa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/378bc896b93289b02d0061cae9a27b88d027b3aa)bin459 -> 459 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/37c7f8dd8c8185adaa4fdc5d73172835fac381bf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/37c7f8dd8c8185adaa4fdc5d73172835fac381bf)bin1261 -> 1261 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/37d73a07d38832041922bb65759ead75bc242b47 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/37d73a07d38832041922bb65759ead75bc242b47)bin2817 -> 2817 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/37e71beeec493c8fb3bab5faaa9dbe406224cc40 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/37e71beeec493c8fb3bab5faaa9dbe406224cc40)bin282 -> 282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/37ed1a5eca53597c613ee9ff92d5392da767ca03 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/37ed1a5eca53597c613ee9ff92d5392da767ca03)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3819a33d8405caa6fce67f69cb846e90b1017134 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3819a33d8405caa6fce67f69cb846e90b1017134)bin678 -> 678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3854217bdd20fd1b0851fca3db9ecb8bacb570f3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3854217bdd20fd1b0851fca3db9ecb8bacb570f3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/386594886011e9231de32bb244f6bbbba43ae201 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/386594886011e9231de32bb244f6bbbba43ae201)bin1125 -> 1125 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/39b1ef456c5a35f6715843b5a439fe536fd95cf6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/39b1ef456c5a35f6715843b5a439fe536fd95cf6)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/39b9c4e3a56b770f272bb1c428e75b4f05fe2d3c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/39b9c4e3a56b770f272bb1c428e75b4f05fe2d3c)bin257 -> 257 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3a3ca5f4786812dcbefa3a47bbd1766560004ace (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3a3ca5f4786812dcbefa3a47bbd1766560004ace)bin707 -> 707 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3a3e218afd9ef25df5e9794225ce50b4e2df7240 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3a3e218afd9ef25df5e9794225ce50b4e2df7240)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3a462802e4045f03ecfaa9e7358869871467ea73 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3a462802e4045f03ecfaa9e7358869871467ea73)bin5176 -> 5176 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3a47c18539f1bb9afd6bbfa3e9a322b68eafbf1b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3a47c18539f1bb9afd6bbfa3e9a322b68eafbf1b)bin719 -> 719 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3a82c54074751e89e6a4767488f6a4cc7e50d46a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3a82c54074751e89e6a4767488f6a4cc7e50d46a)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3abcdaadae6a9d330fd8beaf444c5f78ba0e29db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3abcdaadae6a9d330fd8beaf444c5f78ba0e29db)bin664 -> 664 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3b0e80f763aae2fd612be4b23318918c53609c82 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3b0e80f763aae2fd612be4b23318918c53609c82)bin1678 -> 1678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3b6d4f5cd60a8b273448b3dbffb498eebc83e282 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3b6d4f5cd60a8b273448b3dbffb498eebc83e282)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3b7ebe0377175f1636ae890575c1fb146b60e039 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3b7ebe0377175f1636ae890575c1fb146b60e039)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3babbefd720b862a09d42a119e00af5cc430d24c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3babbefd720b862a09d42a119e00af5cc430d24c)bin457 -> 457 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3bd5322f6c0ffea1ec1680385ea14cb634b7126b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3bd5322f6c0ffea1ec1680385ea14cb634b7126b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3bd6d55280022582af7e0d78b57a05ab8e8b2e04 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3bd6d55280022582af7e0d78b57a05ab8e8b2e04)bin1974 -> 1974 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3bee72355f6e043d3969b3999cd717bb38e922a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3bee72355f6e043d3969b3999cd717bb38e922a5)bin1737 -> 1737 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6)bin49518 -> 49518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3c181f0b1a8fb95a81d17bacb87d08af13ab932a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3c181f0b1a8fb95a81d17bacb87d08af13ab932a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3c3355658c2f0f9ec4200fb2f494d2edd0c55091 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3c3355658c2f0f9ec4200fb2f494d2edd0c55091)bin2195 -> 2195 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3c61f7408595c243740ba684ce29b4b88e7013c6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3c61f7408595c243740ba684ce29b4b88e7013c6)bin2515 -> 2515 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3c70605e5c08952803318889a6feb2999446bb7d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3c70605e5c08952803318889a6feb2999446bb7d)bin12007 -> 12007 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3ca0ac02ae57a41617c38fba81796a02e5204047 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3ca0ac02ae57a41617c38fba81796a02e5204047)bin693 -> 693 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3ced24169ae5bdb38c9e86b795af04f8a65673eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3ced24169ae5bdb38c9e86b795af04f8a65673eb)bin1028 -> 1028 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3d3fe056a46942f297dc09d24cd3f3bdda5665c1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3d3fe056a46942f297dc09d24cd3f3bdda5665c1)bin6859 -> 6859 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3dbd8bed8cde0f8091f2b82af6348dbeb087dc33 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3dbd8bed8cde0f8091f2b82af6348dbeb087dc33)bin788 -> 788 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3de0f4c901c540e809d3992f82a45951e89a23d1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3de0f4c901c540e809d3992f82a45951e89a23d1)bin2545 -> 2545 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3dea16d724eeb866fd07fa2b5c60b5f6f4923b12 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3dea16d724eeb866fd07fa2b5c60b5f6f4923b12)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3e24d2ae1836d2c05e1492667b21acaee2268669 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3e24d2ae1836d2c05e1492667b21acaee2268669)bin528 -> 528 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3e2691c878e13eeb9836df7ebfa6a3fe04b95e42 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3e2691c878e13eeb9836df7ebfa6a3fe04b95e42)bin1053 -> 1053 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3e6ebbd1614538fb555ab8005b8aa102d5a05153 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3e6ebbd1614538fb555ab8005b8aa102d5a05153)bin811 -> 811 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3e8c25423e5aca8d8e4c383229295749699848a8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3e8c25423e5aca8d8e4c383229295749699848a8)bin7066 -> 7066 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3eaa63672186ea1efc36577a51f0b9171ef865fc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3eaa63672186ea1efc36577a51f0b9171ef865fc)bin1657 -> 1657 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3eab22ae1a167c898174f2ff5757332026eaaefa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3eab22ae1a167c898174f2ff5757332026eaaefa)bin10621 -> 10621 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3ebb4d145bf026990841598d37329ed1cca0e8c9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3ebb4d145bf026990841598d37329ed1cca0e8c9)bin1437 -> 1437 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3ee8b75446b9610047ac2cf9d9086253412edce7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3ee8b75446b9610047ac2cf9d9086253412edce7)bin935 -> 935 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3f51c8524399a45b022b230adab0c39b9224342d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3f51c8524399a45b022b230adab0c39b9224342d)bin2578 -> 2578 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3f55e71d020d0d96aeb5a6e7e59925db3e76dc29 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3f55e71d020d0d96aeb5a6e7e59925db3e76dc29)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3f590fc1ec38ad9456bb2c4b70d99a8bdcda464d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3f590fc1ec38ad9456bb2c4b70d99a8bdcda464d)bin795 -> 795 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3f80163ac1f8a6793795b429257fa7630022f7b0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3f80163ac1f8a6793795b429257fa7630022f7b0)bin375 -> 375 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3f8c61d5a8f6d42cbd435e06c486169a13fe8a82 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3f8c61d5a8f6d42cbd435e06c486169a13fe8a82)bin1279 -> 1279 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3faaf3ed0503636fa56bde1415d39cfcff316bdd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3faaf3ed0503636fa56bde1415d39cfcff316bdd)bin2486 -> 2486 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3fb4c06ade0f8e0c1dcac3b8b86f07c86f36cba5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3fb4c06ade0f8e0c1dcac3b8b86f07c86f36cba5)bin1453 -> 1453 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3fb801ec63f8f30a3837a5f252c0eb4a52a244e7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3fb801ec63f8f30a3837a5f252c0eb4a52a244e7)bin1182 -> 1182 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3fce4be82b0d83a4063a1bfaa63d527e7e430cab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3fce4be82b0d83a4063a1bfaa63d527e7e430cab)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/3ff66b26a1b121ff3221ebcdf1c680c9bd6263d0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/3ff66b26a1b121ff3221ebcdf1c680c9bd6263d0)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4021fb61bb20d6090d3e19a8a016e9b5f3cbd2dc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4021fb61bb20d6090d3e19a8a016e9b5f3cbd2dc)bin1680 -> 1680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4029d69a65bbf1a348de175ab89f959ba61a2c4c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4029d69a65bbf1a348de175ab89f959ba61a2c4c)bin2475 -> 2475 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/40438b7f91953f03dca77e2b8230eb768cd84f62 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/40438b7f91953f03dca77e2b8230eb768cd84f62)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/405c6e9978e3e6d392f0afb6ab716235e6f9d557 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/405c6e9978e3e6d392f0afb6ab716235e6f9d557)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4166fdb13c47ce40f3556f7283fb82dc5c50c6fd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4166fdb13c47ce40f3556f7283fb82dc5c50c6fd)bin432 -> 432 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/419e5ad912ed03d542bb0a75cb4cb66ea0e6acb0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/419e5ad912ed03d542bb0a75cb4cb66ea0e6acb0)bin1658 -> 1658 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4213df71bae6c43025d6a9c42e8fe63ef8027f32 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4213df71bae6c43025d6a9c42e8fe63ef8027f32)bin3267 -> 3267 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/421e079ef7716e3bc6ce3d7195e8296944cc76f5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/421e079ef7716e3bc6ce3d7195e8296944cc76f5)bin2422 -> 2422 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/42657aa82a3746a04a6b24c598fcada062f3542b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/42657aa82a3746a04a6b24c598fcada062f3542b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4285bb2b2a9b55f3875839b86724e68d0f642e85 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4285bb2b2a9b55f3875839b86724e68d0f642e85)bin720 -> 720 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/429600b13ec3c8cbe0ac2413581666cc2ffcd056 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/429600b13ec3c8cbe0ac2413581666cc2ffcd056)bin724 -> 724 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/42c8c861682553cf76c7acac4c33ee670b53bb68 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/42c8c861682553cf76c7acac4c33ee670b53bb68)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/42d02e3469377df7d6257af06ebb43c3d9919898 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/42d02e3469377df7d6257af06ebb43c3d9919898)bin1358 -> 1358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/43148ff4291f59abbd6e8a60378ded248c4969c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/43148ff4291f59abbd6e8a60378ded248c4969c2)bin295 -> 295 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/433518ce43a2537d2e6088c14c34af3607edb70d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/433518ce43a2537d2e6088c14c34af3607edb70d)bin7304 -> 7304 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/434acd74815be95d2055292b2e599184cb76ef02 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/434acd74815be95d2055292b2e599184cb76ef02)bin3304 -> 3304 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/43821d06bb1479808b2ece4e04ec86f77af38dac (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/43821d06bb1479808b2ece4e04ec86f77af38dac)bin2403 -> 2403 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/43844e38cb3773caa9ab084f05373cc0f53001db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/43844e38cb3773caa9ab084f05373cc0f53001db)bin857 -> 857 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/43be365d6e1735fe7a50f44eee938b42f6a2e3bd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/43be365d6e1735fe7a50f44eee938b42f6a2e3bd)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/43d87b1448784a39f579fc6ba0668598057f365a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/43d87b1448784a39f579fc6ba0668598057f365a)bin1115 -> 1115 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/43f1bc3ce406e937c171bffe02cae0ee67985bc8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/43f1bc3ce406e937c171bffe02cae0ee67985bc8)bin1889 -> 1889 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/43f52fb50b83b6aa71d2c583afe1767606278627 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/43f52fb50b83b6aa71d2c583afe1767606278627)bin2123 -> 2123 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/44231b2d06d3674f0ca0541b28cfea2f14483a6c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/44231b2d06d3674f0ca0541b28cfea2f14483a6c)bin2413 -> 2413 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4434cc485f56a1dccc51b794da275cd46a075c9c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4434cc485f56a1dccc51b794da275cd46a075c9c)bin896 -> 896 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/44727eefbfd71c18f7d6844eeb2ec56b0e5b065e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/44727eefbfd71c18f7d6844eeb2ec56b0e5b065e)bin3055 -> 3055 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/450ca901be1c87662914e24ea7455fa42aea5378 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/450ca901be1c87662914e24ea7455fa42aea5378)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/45101eef27fdf601cd166fcb198cdd46badb0213 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/45101eef27fdf601cd166fcb198cdd46badb0213)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/451e0ebbeb8d77fd2941cf5fd7802fe644c958b7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/451e0ebbeb8d77fd2941cf5fd7802fe644c958b7)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4521e3d9e88ab4265f0cb2ef64844dad15b7bc49 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4521e3d9e88ab4265f0cb2ef64844dad15b7bc49)bin5465 -> 5465 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/455cc1fdc9b047bcbc82910a02aa962a57cf51c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/455cc1fdc9b047bcbc82910a02aa962a57cf51c2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4563880babf5d7ea0260e68e2622ea76793ca7cb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4563880babf5d7ea0260e68e2622ea76793ca7cb)bin1107 -> 1107 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/45a53647d3bec0fa36535fe9c6000cbf4c0311a4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/45a53647d3bec0fa36535fe9c6000cbf4c0311a4)bin1889 -> 1889 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/45f9aeba5413cf5a43dea82424bc9acc7d745bb1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/45f9aeba5413cf5a43dea82424bc9acc7d745bb1)bin703 -> 703 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/460872a974136f54ca12f9abd5dc3cb5901379e2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/460872a974136f54ca12f9abd5dc3cb5901379e2)bin716 -> 716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/460eca9edf37ae6779f71d4ede81618bfb51491a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/460eca9edf37ae6779f71d4ede81618bfb51491a)bin2724 -> 2724 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4613b9f0b3e021b5392dcd4ec093df5f92019f17 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4613b9f0b3e021b5392dcd4ec093df5f92019f17)bin1458 -> 1458 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/462b9d911d4e68b8b6d400d50210f0eb31af0960 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/462b9d911d4e68b8b6d400d50210f0eb31af0960)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/462cb3aabc09a9bda9d4c7ad47642e6a6e8c0bc4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/462cb3aabc09a9bda9d4c7ad47642e6a6e8c0bc4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/463d8087c45cb79c445e16cd06c725856d0b39a9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/463d8087c45cb79c445e16cd06c725856d0b39a9)bin810 -> 810 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/464f3ef9651a3f4a7386daa5cf377262e7aaacbd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/464f3ef9651a3f4a7386daa5cf377262e7aaacbd)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/465e16d980929373f7c0af40104ffc99d7075c6e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/465e16d980929373f7c0af40104ffc99d7075c6e)bin1350 -> 1350 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4679562d3e2dd79fd0c4bf9fafb18ab8d228c224 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4679562d3e2dd79fd0c4bf9fafb18ab8d228c224)bin1178 -> 1178 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/46e1f00fd1e9594ed2e1543f488fa0e9e2eae1ec (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/46e1f00fd1e9594ed2e1543f488fa0e9e2eae1ec)bin719 -> 719 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/474d0d610ca444ab1a339179936b893bf269ac4e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/474d0d610ca444ab1a339179936b893bf269ac4e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4754ca4a0e441f9f027ae0abf960b630e76cb83f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4754ca4a0e441f9f027ae0abf960b630e76cb83f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/475af2606e28302cc023793792582e78ef2b57bd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/475af2606e28302cc023793792582e78ef2b57bd)bin3084 -> 3084 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/47837d2a3423c05da939f0f4822ca0d57aba1c1c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/47837d2a3423c05da939f0f4822ca0d57aba1c1c)bin263 -> 263 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/479c4d2827d9a21fd19471891f84c7f661ffa3c4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/479c4d2827d9a21fd19471891f84c7f661ffa3c4)bin902 -> 902 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/47c8e4db0bed1dd73c702ff70eb790e12e61bb0b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/47c8e4db0bed1dd73c702ff70eb790e12e61bb0b)bin3308 -> 3308 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/47dca969e1accb1abf63ca6a2074643e1419fdb8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/47dca969e1accb1abf63ca6a2074643e1419fdb8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4840ad653f898a2349e5568c2d9d901c44fab0ca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4840ad653f898a2349e5568c2d9d901c44fab0ca)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/484ca664e06c0c7ef2c19632fb17771ab35016e5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/484ca664e06c0c7ef2c19632fb17771ab35016e5)bin1118 -> 1118 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4872adcc5b550da7614112633c0c0970914dc2a3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4872adcc5b550da7614112633c0c0970914dc2a3)bin1053 -> 1053 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/48e1d22e076dde487cf65ca28632caef40d2d7fe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/48e1d22e076dde487cf65ca28632caef40d2d7fe)bin2616 -> 2616 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/490f63040755bf808fed2a85d9e5f6bb3d37bd24 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/490f63040755bf808fed2a85d9e5f6bb3d37bd24)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/496ff91944df4f6142a69ece5a4e178427e13b80 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/496ff91944df4f6142a69ece5a4e178427e13b80)bin380 -> 380 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/498f7a8251cf811dc63bbcb75545f5ef4675a07f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/498f7a8251cf811dc63bbcb75545f5ef4675a07f)bin1070 -> 1070 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/49cf99953777b108ed9d01c67e3e3a217caba84d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/49cf99953777b108ed9d01c67e3e3a217caba84d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/49dc39d714e11cfdc43e480f474c27ed906aa133 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/49dc39d714e11cfdc43e480f474c27ed906aa133)bin2680 -> 2680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/49f524af5010371a6cb6a7a148b1767e5334046f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/49f524af5010371a6cb6a7a148b1767e5334046f)bin925 -> 925 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca)bin49518 -> 49518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4a07a32eb77b679dfaf8948b12bde2528932f997 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4a07a32eb77b679dfaf8948b12bde2528932f997)bin1943 -> 1943 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4a2d7e5d85beb4c06a70d003a7d4b47744195828 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4a2d7e5d85beb4c06a70d003a7d4b47744195828)bin330 -> 330 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4a514bab53c871d934114167d2f10adf41528cd4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4a514bab53c871d934114167d2f10adf41528cd4)bin251 -> 251 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4a8c055e96f9ed91e9fba5d17f80a1a1fbe5fdd3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4a8c055e96f9ed91e9fba5d17f80a1a1fbe5fdd3)bin803 -> 803 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4b077363f939d494598efb88b3fda82860e6a9a4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4b077363f939d494598efb88b3fda82860e6a9a4)bin6659 -> 6659 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4b099b04c2cf74b09681841685c32e5f4ac823d3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4b099b04c2cf74b09681841685c32e5f4ac823d3)bin716 -> 716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4be88f07fa5e4c3442c4ff1364e88f126184af6c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4be88f07fa5e4c3442c4ff1364e88f126184af6c)bin1433 -> 1433 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4bef7242d7154fe32baf59c50d5d1d06c3e45872 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4bef7242d7154fe32baf59c50d5d1d06c3e45872)bin1051 -> 1051 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4c2f942a1f0cf05641b71a497b6d3e9fb21b64cd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4c2f942a1f0cf05641b71a497b6d3e9fb21b64cd)bin808 -> 808 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4c5dc30ed6e5597430c9d72e0fd222862b633246 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4c5dc30ed6e5597430c9d72e0fd222862b633246)bin965 -> 965 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4c7953777c30a8608c182174dc18c132417684d8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4c7953777c30a8608c182174dc18c132417684d8)bin3084 -> 3084 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4caf78617df289201f01eae5621aca1b24eb1aab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4caf78617df289201f01eae5621aca1b24eb1aab)bin689 -> 689 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4cf28e832b6c9b366d34b3d7b3bf758f79fa832d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4cf28e832b6c9b366d34b3d7b3bf758f79fa832d)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4d332ed8496fdfa8fce8c7caf556c8d88cc0629c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4d332ed8496fdfa8fce8c7caf556c8d88cc0629c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4da94b75359ee0bf678926514059f5d1d44fca5a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4da94b75359ee0bf678926514059f5d1d44fca5a)bin2664 -> 2664 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4dfa9efc154dc2e91e87418f1c2eaee60f6c56b7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4dfa9efc154dc2e91e87418f1c2eaee60f6c56b7)bin253 -> 253 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4e245ed8b2ffaf92274176f3a53fab9f947408eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4e245ed8b2ffaf92274176f3a53fab9f947408eb)bin3311 -> 3311 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4e752bbf5f5afff3292b77b44ea1061e7d78c799 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4e752bbf5f5afff3292b77b44ea1061e7d78c799)bin1407 -> 1407 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4e8cfe425da4a0aa430d8a47a41ea668ef09a8b5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4e8cfe425da4a0aa430d8a47a41ea668ef09a8b5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4e8fde4e2aa652f7e4b732a38b76b87f172691da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4e8fde4e2aa652f7e4b732a38b76b87f172691da)bin716 -> 716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4f094dab103f1614e99bc98906f80ef4e60d43b3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4f094dab103f1614e99bc98906f80ef4e60d43b3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4f89d0a8b07d8a295926ce568a942fc9fee8104d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4f89d0a8b07d8a295926ce568a942fc9fee8104d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4fab2328d3794751cca0a1a39e6c80dabc2d2b34 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4fab2328d3794751cca0a1a39e6c80dabc2d2b34)bin1032 -> 1032 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/4facbec94cef072c40ede75401159c73ca806049 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/4facbec94cef072c40ede75401159c73ca806049)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5035c2263fd7cefa1284f507e01bb6c5f0885ca0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5035c2263fd7cefa1284f507e01bb6c5f0885ca0)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/505b8d7681bb9626d48d65c22fbd61cc834fd569 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/505b8d7681bb9626d48d65c22fbd61cc834fd569)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/505bd24cecd4ad46da4b430a5b3f1f65a7adca2a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/505bd24cecd4ad46da4b430a5b3f1f65a7adca2a)bin1265 -> 1265 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/50641f0c4154b9ec6344f5ff82c13175fe985f95 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/50641f0c4154b9ec6344f5ff82c13175fe985f95)bin855 -> 855 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/507161b2aed94f42e16c1ea61bb576805dd01e64 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/507161b2aed94f42e16c1ea61bb576805dd01e64)bin1064 -> 1064 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/50bd522ac93302b997fb2f83dfcf7dc101ba2a59 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/50bd522ac93302b997fb2f83dfcf7dc101ba2a59)bin2260 -> 2260 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/50d933c0c35f6dcd338086dcaa62de589c75c2ab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/50d933c0c35f6dcd338086dcaa62de589c75c2ab)bin811 -> 811 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/50e2069150171d8d771e87af56c15978595bcf34 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/50e2069150171d8d771e87af56c15978595bcf34)bin572 -> 572 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/51451cddb5b635da5760732d39b80aa3f9f84eae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/51451cddb5b635da5760732d39b80aa3f9f84eae)bin3110 -> 3110 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/514cb606bf89bd93edff445c2cfce68602b92d3a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/514cb606bf89bd93edff445c2cfce68602b92d3a)bin362 -> 362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/51632562bd067e88e01dd63dd32192cc38fb233c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/51632562bd067e88e01dd63dd32192cc38fb233c)bin10883 -> 10883 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/516d8dadfbba29c2f8144b90609df13aaec4d33e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/516d8dadfbba29c2f8144b90609df13aaec4d33e)bin364 -> 364 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/518959c746e60fd12b1dafc00abd125c33d156f3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/518959c746e60fd12b1dafc00abd125c33d156f3)bin3149 -> 3149 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5192bbcd310a47667417b6ed2954e8f6127bd20c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5192bbcd310a47667417b6ed2954e8f6127bd20c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/51bc54c14427635d884e374b85fd9223957b6bbe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/51bc54c14427635d884e374b85fd9223957b6bbe)bin3100 -> 3100 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/51c089206dd17a6e70db540ca668ad98e256a86f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/51c089206dd17a6e70db540ca668ad98e256a86f)bin2794 -> 2794 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/51efc0878576498510800c0bde90d59db17317e5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/51efc0878576498510800c0bde90d59db17317e5)bin2075 -> 2075 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/52074f72dcb784c5b9bcb7633f13b190b0821ab9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/52074f72dcb784c5b9bcb7633f13b190b0821ab9)bin509 -> 509 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/520cf7cbb888a47f28678fe98f538bc7dd2813e9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/520cf7cbb888a47f28678fe98f538bc7dd2813e9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/521b1eacf7768e683607e084ca774716bb803c89 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/521b1eacf7768e683607e084ca774716bb803c89)bin458 -> 458 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5226f3b24e89a0843a1d642f6f579e5bdde7c3f4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5226f3b24e89a0843a1d642f6f579e5bdde7c3f4)bin1182 -> 1182 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/52a7598ac2358518ec148b4c9688174177671d38 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/52a7598ac2358518ec148b4c9688174177671d38)bin2746 -> 2746 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5300cea0eccbf8c9f46ad7f771d438e8f99653dd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5300cea0eccbf8c9f46ad7f771d438e8f99653dd)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/530e037b20883f6f14f739880ddf15715c1524b0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/530e037b20883f6f14f739880ddf15715c1524b0)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5314bf8292093a9455808a22dabd0c50b895e2ea (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5314bf8292093a9455808a22dabd0c50b895e2ea)bin411 -> 411 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/531975ad1308cdc92e6af9ed8d0614372c780597 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/531975ad1308cdc92e6af9ed8d0614372c780597)bin1080 -> 1080 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/53300ce72d115143151fc2385d163af06ee28aea (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/53300ce72d115143151fc2385d163af06ee28aea)bin2021 -> 2021 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/53344637e7f2eda831c7dac938fd8410b551e7e0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/53344637e7f2eda831c7dac938fd8410b551e7e0)bin1919 -> 1919 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/533b9bf0e63b13509555fd331390103584cfe9a4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/533b9bf0e63b13509555fd331390103584cfe9a4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/53402c1fb733c80e80054e2467b9a4e3392057db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/53402c1fb733c80e80054e2467b9a4e3392057db)bin4075 -> 4075 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5348f4abb0aa8f8e7025cf332a8509bec0460946 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5348f4abb0aa8f8e7025cf332a8509bec0460946)bin6247 -> 6247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/535494773c4f686ad2b60990d9702b9d38c7003b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/535494773c4f686ad2b60990d9702b9d38c7003b)bin1137 -> 1137 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/538a6845ac5b18ec950d4eabd9a6f8d6e42b9537 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/538a6845ac5b18ec950d4eabd9a6f8d6e42b9537)bin389 -> 389 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/53e9a1aa67caebbdcdf615339e5000ced1d7f773 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/53e9a1aa67caebbdcdf615339e5000ced1d7f773)bin1750 -> 1750 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/541aca6dac32999bb439c1173d162cfbfadd1216 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/541aca6dac32999bb439c1173d162cfbfadd1216)bin469 -> 469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/542bebe5c6f55682eadc62892099e67b5027442c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/542bebe5c6f55682eadc62892099e67b5027442c)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/543b10f163d9d48ff68c8a4726ab55f2d58b6499 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/543b10f163d9d48ff68c8a4726ab55f2d58b6499)bin366 -> 366 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/54a1da98ae3338bd59e39e20f469ef4d738f9ec1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/54a1da98ae3338bd59e39e20f469ef4d738f9ec1)bin2326 -> 2326 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/54d5b13c3f2f6e7e5c90ac2276b7dd61f01393f5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/54d5b13c3f2f6e7e5c90ac2276b7dd61f01393f5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/54dc634fbd1f47fdfb29f59198df421a3fe76d13 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/54dc634fbd1f47fdfb29f59198df421a3fe76d13)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/54e37693ade2a79a874e889c64ff14cfc48321ad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/54e37693ade2a79a874e889c64ff14cfc48321ad)bin1976 -> 1976 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/54eb21e1407f43c6106e0aeeb40ea328eb0db760 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/54eb21e1407f43c6106e0aeeb40ea328eb0db760)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5518d8b9c9ecdcbd6a0d3b49041782d91337c2c7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5518d8b9c9ecdcbd6a0d3b49041782d91337c2c7)bin1881 -> 1881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/552418acb267cea76c2113ed251b265f90ad2166 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/552418acb267cea76c2113ed251b265f90ad2166)bin4462 -> 4462 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/55571ee86fcb23cb87cba20872b288c4eb7d80a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/55571ee86fcb23cb87cba20872b288c4eb7d80a5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5582e64f3fa679c9add8e5cd61ecaaba3a9324c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5582e64f3fa679c9add8e5cd61ecaaba3a9324c2)bin1597 -> 1597 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/55c35156a101029704fa9768cb4c99c3e591548e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/55c35156a101029704fa9768cb4c99c3e591548e)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/55d5c709cee822f154094ea7766cb52216d32e58 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/55d5c709cee822f154094ea7766cb52216d32e58)bin3123 -> 3123 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/55f685b71e6113f46422e938dbbf4dbaf8be1b68 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/55f685b71e6113f46422e938dbbf4dbaf8be1b68)bin1505 -> 1505 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5664afa86c44231d0f33d06d1343fdabeef60a6d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5664afa86c44231d0f33d06d1343fdabeef60a6d)bin2302 -> 2302 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/56688a71ef144aa04d5c50f49fdb500ef4d1fbb1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/56688a71ef144aa04d5c50f49fdb500ef4d1fbb1)bin1419 -> 1419 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/566ba04b9776e0421fbafc396ecebdde991ee746 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/566ba04b9776e0421fbafc396ecebdde991ee746)bin623 -> 623 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/56be7f43b5e7e1a04f88c27e3a44b73cce1d1535 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/56be7f43b5e7e1a04f88c27e3a44b73cce1d1535)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/56f68777fcc6436fbe0b94d50f331ac38ab5188f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/56f68777fcc6436fbe0b94d50f331ac38ab5188f)bin595 -> 595 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/56fdc25d963cb10061f954ffc69e15113ba1bc4b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/56fdc25d963cb10061f954ffc69e15113ba1bc4b)bin5273 -> 5273 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/573813d3c2e31525db5cf563ae8216e1fff1c42f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/573813d3c2e31525db5cf563ae8216e1fff1c42f)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/574a63c1c17bd767a7ba737543342031e33b2381 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/574a63c1c17bd767a7ba737543342031e33b2381)bin723 -> 723 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5771304edf513f45422cb2868a85e883bebfddab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5771304edf513f45422cb2868a85e883bebfddab)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/579b6f8763bb1d12ebffd369812fcca39f876bc9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/579b6f8763bb1d12ebffd369812fcca39f876bc9)bin1160 -> 1160 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/57a162d05da70066d813b3ca477bb3eb1075ddb3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/57a162d05da70066d813b3ca477bb3eb1075ddb3)bin723 -> 723 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/57f20e563728558d67502b15fe9f668b526d10f5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/57f20e563728558d67502b15fe9f668b526d10f5)bin3329 -> 3329 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/57fcced3d55bae90434eb9685ec3c4b925fa5a43 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/57fcced3d55bae90434eb9685ec3c4b925fa5a43)bin571 -> 571 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5818bcf34fa1430fd8bba02f61453ec645b5e867 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5818bcf34fa1430fd8bba02f61453ec645b5e867)bin2067 -> 2067 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/58260690f4c467510173554a875121e4b1dabc3b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/58260690f4c467510173554a875121e4b1dabc3b)bin429 -> 429 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/585b803d7bd041c0246333c500a4edf93fd04e8c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/585b803d7bd041c0246333c500a4edf93fd04e8c)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/586b4de14c861460d3a1eee80b53db0e52a674a2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/586b4de14c861460d3a1eee80b53db0e52a674a2)bin2136 -> 2136 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/588269c9a74c4f11c6c2fd0487787daa850efdc4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/588269c9a74c4f11c6c2fd0487787daa850efdc4)bin865 -> 865 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/58954ce1e3e30962c825e54368ed52b59af8201f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/58954ce1e3e30962c825e54368ed52b59af8201f)bin2440 -> 2440 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/58c4489fa1b987c4f9b89a9f869e3d1cb66618ee (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/58c4489fa1b987c4f9b89a9f869e3d1cb66618ee)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/58fff920e4666a8e2118055997695663c2bfa9bf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/58fff920e4666a8e2118055997695663c2bfa9bf)bin168 -> 168 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/59b78950bd623ae6ccc0c8322a738a6ee2cef332 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/59b78950bd623ae6ccc0c8322a738a6ee2cef332)bin1107 -> 1107 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/59ecdf942ff6e4503657bbcc8ca9026ad650cd81 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/59ecdf942ff6e4503657bbcc8ca9026ad650cd81)bin413 -> 413 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5b10d22c6a936f03d77158203d0a09ec95b9e47e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5b10d22c6a936f03d77158203d0a09ec95b9e47e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5b3196afabf0c3a82d175f32657b7da6a2f46c18 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5b3196afabf0c3a82d175f32657b7da6a2f46c18)bin3352 -> 3352 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5b9066a269f30bb21771434b35ca7f8561b165c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5b9066a269f30bb21771434b35ca7f8561b165c2)bin268 -> 268 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5b983671441296cb9972410b1c9ad371009cf8c8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5b983671441296cb9972410b1c9ad371009cf8c8)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5be5fc275d6100d55fefde486c3c4baf21c66e55 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5be5fc275d6100d55fefde486c3c4baf21c66e55)bin1931 -> 1931 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5c02f929c2170d8d6280f2a81039a93cf3c04ef4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5c02f929c2170d8d6280f2a81039a93cf3c04ef4)bin583 -> 583 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5c051001851011663d0b01e0935f4492747a41ff (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5c051001851011663d0b01e0935f4492747a41ff)bin11444 -> 11444 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5c87d89327640985535ae8ce0f7ce6c4b7739854 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5c87d89327640985535ae8ce0f7ce6c4b7739854)bin475 -> 475 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5c8c515a11e5748cd9d6a83f80c499b86976705e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5c8c515a11e5748cd9d6a83f80c499b86976705e)bin4826 -> 4826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5cdf64c7ce439c04f67ed00542121edbc578af43 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5cdf64c7ce439c04f67ed00542121edbc578af43)bin1139 -> 1139 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5ce35b6c68940e0194300e7c99141ce335512a04 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5ce35b6c68940e0194300e7c99141ce335512a04)bin745 -> 745 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5d2bb1a40a4839c8daed7b1a330ba6493dc70134 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5d2bb1a40a4839c8daed7b1a330ba6493dc70134)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5d2fe96a7edfe840c4dee87cdc472f1db554596a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5d2fe96a7edfe840c4dee87cdc472f1db554596a)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5d8dc78a5ba7b6f2ec856fca30b7847a093a8399 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5d8dc78a5ba7b6f2ec856fca30b7847a093a8399)bin395 -> 395 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5d972a84b01fbdcb99088d217e43b7d0bcdfa664 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5d972a84b01fbdcb99088d217e43b7d0bcdfa664)bin5304 -> 5304 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5dd514b9d5ff7c018194b7c3e8cf65e932c18eab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5dd514b9d5ff7c018194b7c3e8cf65e932c18eab)bin1151 -> 1151 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5ddd5cc0b7f15b6e9c64a33b1ec7999978f7e0bd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5ddd5cc0b7f15b6e9c64a33b1ec7999978f7e0bd)bin2879 -> 2879 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5e3143174e7dd6cb54ab1dd7d338e50a638ce20d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5e3143174e7dd6cb54ab1dd7d338e50a638ce20d)bin1374 -> 1374 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5e43fe8bdb6cccaa1463363ef4886d2bbc9b4afc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5e43fe8bdb6cccaa1463363ef4886d2bbc9b4afc)bin3964 -> 3964 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5e57252e63d501fae6e050fba5c92c5e579c26e6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5e57252e63d501fae6e050fba5c92c5e579c26e6)bin1279 -> 1279 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5e71d6197591d4fb2cd42cd8fbdecc7afb24414a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5e71d6197591d4fb2cd42cd8fbdecc7afb24414a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5ebb3b6a3e029971bbe333f5edbd6bbbd7e6b704 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5ebb3b6a3e029971bbe333f5edbd6bbbd7e6b704)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5ec2ef4dc672c6862dc5d2de0f8ae7fe38ccc1cf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5ec2ef4dc672c6862dc5d2de0f8ae7fe38ccc1cf)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5edbf5ebb62dc0f515c639d5ec82ccba143a9df7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5edbf5ebb62dc0f515c639d5ec82ccba143a9df7)bin571 -> 571 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5f1d7fcb6dff18ea67be5c3e249b445208d7338d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5f1d7fcb6dff18ea67be5c3e249b445208d7338d)bin1133 -> 1133 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5f5001b19a8654237e8c6f2a344769651ab1a8ba (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5f5001b19a8654237e8c6f2a344769651ab1a8ba)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5f540c375ae8389d6cb556317c7ff25c3e155dca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5f540c375ae8389d6cb556317c7ff25c3e155dca)bin336 -> 336 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5f7f0d759b6e16fc1bb8a108b8eea118af73a5cd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5f7f0d759b6e16fc1bb8a108b8eea118af73a5cd)bin807 -> 807 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5f995e56c6de9da6791cb74658fb0d9527d5bcd8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5f995e56c6de9da6791cb74658fb0d9527d5bcd8)bin6209 -> 6209 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5fba74a544c881a8bece8b0f19a66cb82baf8487 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5fba74a544c881a8bece8b0f19a66cb82baf8487)bin966 -> 966 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5fccdc30f0306a85bccae12237e9a6ed59c56e3d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5fccdc30f0306a85bccae12237e9a6ed59c56e3d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5fd56048dc79fe38113f38feaf1e3fe3908e5de6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5fd56048dc79fe38113f38feaf1e3fe3908e5de6)bin1543 -> 1543 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5fd99d865bfcdd0eda277e56d28053438e9d2364 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5fd99d865bfcdd0eda277e56d28053438e9d2364)bin2268 -> 2268 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/5ffe0ec78cc4c45084581822b58c68f303240baf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/5ffe0ec78cc4c45084581822b58c68f303240baf)bin1366 -> 1366 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/602934a18fd05fab989875289f2b0d341b46209f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/602934a18fd05fab989875289f2b0d341b46209f)bin5764 -> 5764 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/604d2be7069eeac6987c88e02c3192726bf7d29a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/604d2be7069eeac6987c88e02c3192726bf7d29a)bin2069 -> 2069 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/606365070ed66a4bff97c5b903077b69834dc30f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/606365070ed66a4bff97c5b903077b69834dc30f)bin2282 -> 2282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/60af9fdf5a040ad4eb6a331027fc8a5205538a60 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/60af9fdf5a040ad4eb6a331027fc8a5205538a60)bin1061 -> 1061 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/60c4fcf422a35761a1cf63281b1259e570d9dd03 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/60c4fcf422a35761a1cf63281b1259e570d9dd03)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/60d58e7bbbc22d01f2f626c83ea29231cb7a1336 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/60d58e7bbbc22d01f2f626c83ea29231cb7a1336)bin752 -> 752 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/611c92652a5857a323a62bb2fae9c4fc38f2b91e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/611c92652a5857a323a62bb2fae9c4fc38f2b91e)bin1674 -> 1674 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/612ad5c34940b7d0e9751f237f4046aa955a455d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/612ad5c34940b7d0e9751f237f4046aa955a455d)bin1463 -> 1463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78)bin85 -> 85 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6154e15ab62b6138f112c347e620b65c5df578ce (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6154e15ab62b6138f112c347e620b65c5df578ce)bin852 -> 852 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6167ecf044b04eada6fb7f52799c4b5476a8ac5c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6167ecf044b04eada6fb7f52799c4b5476a8ac5c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6181e2d8da988d2dbf730c68dce478fda0897cb1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6181e2d8da988d2dbf730c68dce478fda0897cb1)bin920 -> 920 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6194b3ca664b38c607c838febc47ba7f22c9abc8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6194b3ca664b38c607c838febc47ba7f22c9abc8)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/61a1bde91cf400dafc67f8a0af16805ce20ea622 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/61a1bde91cf400dafc67f8a0af16805ce20ea622)bin993 -> 993 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/61e3a551b0661fd9b3c6ab9f745ca95ff51e1d8a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/61e3a551b0661fd9b3c6ab9f745ca95ff51e1d8a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/61e6b4ca58308cd21915f50b6ce809c6bcc6e598 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/61e6b4ca58308cd21915f50b6ce809c6bcc6e598)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/61fd1fa4ed961c402b40fe5e8862a0c85e86287c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/61fd1fa4ed961c402b40fe5e8862a0c85e86287c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6206fbd414b4b7356a4b06921940ddf5f9b52d49 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6206fbd414b4b7356a4b06921940ddf5f9b52d49)bin2667 -> 2667 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6228429309780d455536d4a86dd1fbb10b63e78f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6228429309780d455536d4a86dd1fbb10b63e78f)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/62322b64f09c6b48ee1c716a605a55af904ce4b3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/62322b64f09c6b48ee1c716a605a55af904ce4b3)bin1707 -> 1707 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/62553ba545ecc53f7cbf03fdda42f167fe866bd4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/62553ba545ecc53f7cbf03fdda42f167fe866bd4)bin1424 -> 1424 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/62589db6cdaeb4ba79f6bf262b384802d7259ceb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/62589db6cdaeb4ba79f6bf262b384802d7259ceb)bin2961 -> 2961 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/62b3f1e5f7a4312e312cd74e42c4598842b4ddf6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/62b3f1e5f7a4312e312cd74e42c4598842b4ddf6)bin330 -> 330 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/62ec462f4f6961630a05fc04ab843700487f20ca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/62ec462f4f6961630a05fc04ab843700487f20ca)bin1697 -> 1697 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/62feedb3e5babfe2c9ce527b97ee420a5af1a898 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/62feedb3e5babfe2c9ce527b97ee420a5af1a898)bin1071 -> 1071 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/633654c1932be977b9e6daca707032f05b55dbd0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/633654c1932be977b9e6daca707032f05b55dbd0)bin3092 -> 3092 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6352acb37e709db0d9f278b45b19baa3a179045b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6352acb37e709db0d9f278b45b19baa3a179045b)bin1571 -> 1571 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6391e7b0f43fc056e2b5466fb277ad5abde1fe7a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6391e7b0f43fc056e2b5466fb277ad5abde1fe7a)bin418 -> 418 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/63f931d33d98e2b2c7bba487e7222bcac700deef (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/63f931d33d98e2b2c7bba487e7222bcac700deef)bin674 -> 674 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/641f6b6c0b1c182077381a943f40845ea210f4e0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/641f6b6c0b1c182077381a943f40845ea210f4e0)bin1053 -> 1053 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/643d688c03ec20e8cdc614fc88e2c7659c6a5e57 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/643d688c03ec20e8cdc614fc88e2c7659c6a5e57)bin336 -> 336 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/64523cb0ee5c37988e6b8498e762366a5b8d5dca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/64523cb0ee5c37988e6b8498e762366a5b8d5dca)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/649ef00dd18a5a744bbfeb07bcbe1f8b15dbb802 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/649ef00dd18a5a744bbfeb07bcbe1f8b15dbb802)bin3717 -> 3717 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/64bd0d73acdfea7a6dd2df4b85324dd3d36cb937 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/64bd0d73acdfea7a6dd2df4b85324dd3d36cb937)bin2166 -> 2166 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/64be6e9f4db14f8d9af691fa3673020c5a391fa2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/64be6e9f4db14f8d9af691fa3673020c5a391fa2)bin472 -> 472 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6505cfdb0280f3106a290c589e691a9c70c967ee (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6505cfdb0280f3106a290c589e691a9c70c967ee)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/652f59613de0f5f1bcfb3ae43354b36314931aa5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/652f59613de0f5f1bcfb3ae43354b36314931aa5)bin2516 -> 2516 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/65327db142237a381f0fa2098a61a989f5ab4857 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/65327db142237a381f0fa2098a61a989f5ab4857)bin557 -> 557 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/657b9249694afbc2cb51846285bd543fac36c654 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/657b9249694afbc2cb51846285bd543fac36c654)bin1941 -> 1941 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/65b4cf2c25f361f835bf5377c2df3ccbba73af68 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/65b4cf2c25f361f835bf5377c2df3ccbba73af68)bin3000 -> 3000 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/65e01d455f4196cc5807afe98dc1bd756cf3fb14 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/65e01d455f4196cc5807afe98dc1bd756cf3fb14)bin812 -> 812 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6622b124588a369ca47a2ea5197c6602dd8bcef6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6622b124588a369ca47a2ea5197c6602dd8bcef6)bin1401 -> 1401 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/66903e3aff90cd052cfa5500964880df6d2108ac (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/66903e3aff90cd052cfa5500964880df6d2108ac)bin1161 -> 1161 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6693582d427d5ad44a8efd2c626e8e0cceaa75ab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6693582d427d5ad44a8efd2c626e8e0cceaa75ab)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/669804cb0cf168bb56b2261939184ad6b9c8475e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/669804cb0cf168bb56b2261939184ad6b9c8475e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/66bbff0489dc6e2459da3d8a4a0715e7946baec3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/66bbff0489dc6e2459da3d8a4a0715e7946baec3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/66d01c9c0234e1690c2af56c8a69fa3c17a146f4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/66d01c9c0234e1690c2af56c8a69fa3c17a146f4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/66e04521653fdd6df28eddce149f4bebc7a1a0cc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/66e04521653fdd6df28eddce149f4bebc7a1a0cc)bin1554 -> 1554 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/66fa8d19d0980380e8eb3f054305ceb8db14ae2f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/66fa8d19d0980380e8eb3f054305ceb8db14ae2f)bin1352 -> 1352 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/672be7bcbd190841e8e27ed6ce406f9904e3041b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/672be7bcbd190841e8e27ed6ce406f9904e3041b)bin3259 -> 3259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6737ea6647fa6e02bc1812c1fe9619e2935caff9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6737ea6647fa6e02bc1812c1fe9619e2935caff9)bin558 -> 558 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/67630bc24469ac76914ca2b75dd0e9a93daaaff6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/67630bc24469ac76914ca2b75dd0e9a93daaaff6)bin869 -> 869 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/67ab141f85d6e894008fed96e34e232a584a32ef (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/67ab141f85d6e894008fed96e34e232a584a32ef)bin84 -> 84 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/680351f8efc468ac7a9b9ac3a194682b69f5e165 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/680351f8efc468ac7a9b9ac3a194682b69f5e165)bin1742 -> 1742 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/680e033a23d7aa54b7351e01f9f338675d5b623a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/680e033a23d7aa54b7351e01f9f338675d5b623a)bin2710 -> 2710 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/681d482f465b1e58f2cdd3ea54905b1050cea080 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/681d482f465b1e58f2cdd3ea54905b1050cea080)bin2840 -> 2840 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/681f78b242a6c3d5be4a1ec8d21989b966761edb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/681f78b242a6c3d5be4a1ec8d21989b966761edb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/68280a95f44ea4be50da544a660f531f202c7e80 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/68280a95f44ea4be50da544a660f531f202c7e80)bin1653 -> 1653 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/682ec5d1e03bc9d202ef0d9f2be7684978e93731 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/682ec5d1e03bc9d202ef0d9f2be7684978e93731)bin1685 -> 1685 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6895eafbf1147832c66e428eb0693e7cb86cd24b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6895eafbf1147832c66e428eb0693e7cb86cd24b)bin3180 -> 3180 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/68a2cbb3bdf54e099149314e83ea7e10e781afbd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/68a2cbb3bdf54e099149314e83ea7e10e781afbd)bin398 -> 398 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/68f1f1f1bc1ee101a3241fe79d30d98ad2e9ad89 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/68f1f1f1bc1ee101a3241fe79d30d98ad2e9ad89)bin2702 -> 2702 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/694081788ad96ed0c9bcc454703d35b80e944011 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/694081788ad96ed0c9bcc454703d35b80e944011)bin1493 -> 1493 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6959403ad997609a277faaa9cf51b2c12144506b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6959403ad997609a277faaa9cf51b2c12144506b)bin1133 -> 1133 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6976b5da56838f44afc4ac9e4388a164df037b03 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6976b5da56838f44afc4ac9e4388a164df037b03)bin1974 -> 1974 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/69974deafcff2552be9608ed304570ebc1bac71d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/69974deafcff2552be9608ed304570ebc1bac71d)bin1945 -> 1945 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/69d51c215fe953a9b1af7c2954ec1c2b370642df (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/69d51c215fe953a9b1af7c2954ec1c2b370642df)bin5400 -> 5400 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6a1551aef35da1f7993a48931b3facb1d2ee12d1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6a1551aef35da1f7993a48931b3facb1d2ee12d1)bin803 -> 803 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6a195fa643cb1f3f1f714a212964b5121d88594d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6a195fa643cb1f3f1f714a212964b5121d88594d)bin5754 -> 5754 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6a3692e5925bd17fad9f61c22a00ab8c49c9419b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6a3692e5925bd17fad9f61c22a00ab8c49c9419b)bin258 -> 258 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6a48022f6cb9d9fa9a2b4122c63ccafb40d00c33 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6a48022f6cb9d9fa9a2b4122c63ccafb40d00c33)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6a7e890c4dc6ce1e687763a1de55c54c5ee8253c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6a7e890c4dc6ce1e687763a1de55c54c5ee8253c)bin3329 -> 3329 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6aa4e72f60c7aefcbf83d64d8bd05048bf857d21 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6aa4e72f60c7aefcbf83d64d8bd05048bf857d21)bin622 -> 622 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6aac9d8903d592458c49dbf08445fdf46b6aa442 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6aac9d8903d592458c49dbf08445fdf46b6aa442)bin1478 -> 1478 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6ad0c5b44bc22ca36588fecf3400f49ad69876e8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6ad0c5b44bc22ca36588fecf3400f49ad69876e8)bin1751 -> 1751 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6ae317f55f036447bbd763e0f4f386002f6afe8c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6ae317f55f036447bbd763e0f4f386002f6afe8c)bin554 -> 554 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6afe2b80403ec11550c279a0801357cd4ba7db30 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6afe2b80403ec11550c279a0801357cd4ba7db30)bin1557 -> 1557 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6b0947e18727b8d5cc54277ef24360183f700e7e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6b0947e18727b8d5cc54277ef24360183f700e7e)bin1615 -> 1615 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6b1183837f2516c9fb559e95d3acb30b1f2dbe2b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6b1183837f2516c9fb559e95d3acb30b1f2dbe2b)bin3218 -> 3218 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6b2be7eab06293b34bde9d6c98418fb7feb2f500 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6b2be7eab06293b34bde9d6c98418fb7feb2f500)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6b589b1a1e69d7fa960b7dbb9170a82f058c0346 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6b589b1a1e69d7fa960b7dbb9170a82f058c0346)bin745 -> 745 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6b782b26592481d6132259bef5ce6e65fac72ef6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6b782b26592481d6132259bef5ce6e65fac72ef6)bin1640 -> 1640 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6bbe61c3443b66eb9ba1f72657d523712d20ad42 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6bbe61c3443b66eb9ba1f72657d523712d20ad42)bin1190 -> 1190 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6bcc33898f3f3dc750245e4ec17083cca3e11fcf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6bcc33898f3f3dc750245e4ec17083cca3e11fcf)bin1988 -> 1988 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6bfc9cdce297fc574c043936d0e0d876e7d42f47 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6bfc9cdce297fc574c043936d0e0d876e7d42f47)bin821 -> 821 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c169a081333487e8bdb0dd0dd48328a0ebc94dd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c169a081333487e8bdb0dd0dd48328a0ebc94dd)bin1149 -> 1149 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c232efa422726d4eaf873bc0855d709a1d92bf5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c232efa422726d4eaf873bc0855d709a1d92bf5)bin1568 -> 1568 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c235da8af8bd800a28abf34f1ae5625e0e023f3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c235da8af8bd800a28abf34f1ae5625e0e023f3)bin921 -> 921 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c4c704ff8dfee37aec71a888de6e334c22691ba (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c4c704ff8dfee37aec71a888de6e334c22691ba)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c54ed8155b83e30e4017c994d9afcbe479efb74 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c54ed8155b83e30e4017c994d9afcbe479efb74)bin1274 -> 1274 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c5d27b65ad35ec1a3da21f41cd970678fe732b8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c5d27b65ad35ec1a3da21f41cd970678fe732b8)bin1945 -> 1945 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c8a9cd0dc938746d36ef0d13343f61636a44c0c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c8a9cd0dc938746d36ef0d13343f61636a44c0c)bin1080 -> 1080 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c8ff9156d9f82daba0c0abbf3ba59342f56becc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c8ff9156d9f82daba0c0abbf3ba59342f56becc)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6c94b794c985a65293b1b006fd739c2d51df4f03 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6c94b794c985a65293b1b006fd739c2d51df4f03)bin2279 -> 2279 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6cc3fedbb3dbed8b7540fdf2d646ec785c2795bb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6cc3fedbb3dbed8b7540fdf2d646ec785c2795bb)bin5644 -> 5644 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6cd2e699f15133849153801fa94ca3db687d4124 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6cd2e699f15133849153801fa94ca3db687d4124)bin1416 -> 1416 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6d0a53009064bdd4a401b2dd1d4ca6bae51d935a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6d0a53009064bdd4a401b2dd1d4ca6bae51d935a)bin3354 -> 3354 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6d1d32a2257281c46d53f1d41fea8cbcbc1893d8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6d1d32a2257281c46d53f1d41fea8cbcbc1893d8)bin884 -> 884 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6d25b005763fb4ff13bde859ec3723e113f0b2fb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6d25b005763fb4ff13bde859ec3723e113f0b2fb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6d77b580102dbd279c9cbd5edea5ee70941d73d2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6d77b580102dbd279c9cbd5edea5ee70941d73d2)bin3084 -> 3084 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6d90d715113b99f887da52c8a2c18978595e2c6b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6d90d715113b99f887da52c8a2c18978595e2c6b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6dab0da0a6622d66be12c6af96bf3bced3bc61a0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6dab0da0a6622d66be12c6af96bf3bced3bc61a0)bin2742 -> 2742 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6dacad8729b385b03749d7755be4b3de3ef8d11b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6dacad8729b385b03749d7755be4b3de3ef8d11b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6de232bd2b5f0ee59ab86faf2999f7a83ddd2c97 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6de232bd2b5f0ee59ab86faf2999f7a83ddd2c97)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6dfd717e030ddea0198ef99b82415236e0380de4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6dfd717e030ddea0198ef99b82415236e0380de4)bin2960 -> 2960 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6e3399a379ec0e4b380c7767a689b70d506d8148 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6e3399a379ec0e4b380c7767a689b70d506d8148)bin3226 -> 3226 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6e4e9fc8812f406d3927fda08346aa0486e7730d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6e4e9fc8812f406d3927fda08346aa0486e7730d)bin2982 -> 2982 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6e76526bed78fa1e846d55a237ce58cb5df42659 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6e76526bed78fa1e846d55a237ce58cb5df42659)bin3262 -> 3262 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6f3ee5a6b94bd93afe5fd8915b5b2cb74f97d088 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6f3ee5a6b94bd93afe5fd8915b5b2cb74f97d088)bin523 -> 523 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6f497d86a803c31b51e9b6a8967a740f420a0e3c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6f497d86a803c31b51e9b6a8967a740f420a0e3c)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6f56196eddc8653a2cc642a2f771471adc4098b0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6f56196eddc8653a2cc642a2f771471adc4098b0)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6f6687a96f4a25dfbd9cc6805d9736843a9d5ff3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6f6687a96f4a25dfbd9cc6805d9736843a9d5ff3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6f8a95c80769ce4ffb667e18f28cbf916f6bc401 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6f8a95c80769ce4ffb667e18f28cbf916f6bc401)bin1525 -> 1525 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6fd56985b8f39ffaad484567e4e06b1d1a1d2288 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6fd56985b8f39ffaad484567e4e06b1d1a1d2288)bin594 -> 594 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/6fec198a82108ac037b5921ed57dfba8f932d6f4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/6fec198a82108ac037b5921ed57dfba8f932d6f4)bin1377 -> 1377 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/702541804b4000f1b14101ab586a5066a5133c4a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/702541804b4000f1b14101ab586a5066a5133c4a)bin2485 -> 2485 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/704c9dd27a015bf118a0b088a5a19038bd9a011d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/704c9dd27a015bf118a0b088a5a19038bd9a011d)bin1961 -> 1961 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/707dd5e401fd8cbd8c3a910ff4131931ddb3c1f5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/707dd5e401fd8cbd8c3a910ff4131931ddb3c1f5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/708e844a639c6ac979a764df67d41d9c9dea4ab4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/708e844a639c6ac979a764df67d41d9c9dea4ab4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70aad3ab1c133b81e51f943e659b6cf04f86b7ff (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70aad3ab1c133b81e51f943e659b6cf04f86b7ff)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70b53034bad5e73f2dbd77f15499f672190cd303 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70b53034bad5e73f2dbd77f15499f672190cd303)bin3115 -> 3115 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70b70beae102fbedfe44a68e2831c9dc5893dac2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70b70beae102fbedfe44a68e2831c9dc5893dac2)bin1152 -> 1152 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70c3f0c10380c0293afe75a635239bfbfb27c4c0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70c3f0c10380c0293afe75a635239bfbfb27c4c0)bin801 -> 801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70c41cc8e6b25d9dcb0ac74bc0bc3022b153465d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70c41cc8e6b25d9dcb0ac74bc0bc3022b153465d)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70da7c83bf358036f8fedb9a17763022973a0158 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70da7c83bf358036f8fedb9a17763022973a0158)bin2529 -> 2529 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70dabc74af906179eba2115b35059f9940a38319 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70dabc74af906179eba2115b35059f9940a38319)bin1415 -> 1415 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70e3d0ea6a58e34d150311b666267fd000b790e8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70e3d0ea6a58e34d150311b666267fd000b790e8)bin694 -> 694 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70ec32ba94c8d930ffcb484af07e9158c17e0b3d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70ec32ba94c8d930ffcb484af07e9158c17e0b3d)bin657 -> 657 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/70f3e3b55db2dc6fa6c732cabc2894034e878437 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/70f3e3b55db2dc6fa6c732cabc2894034e878437)bin3356 -> 3356 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/710f1179b60295e368164c543c93cd987550ead3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/710f1179b60295e368164c543c93cd987550ead3)bin6193 -> 6193 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/71498662734cc4fcfd0794902a364256e8e903cb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/71498662734cc4fcfd0794902a364256e8e903cb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7200d64a17a59b76e00471ffecf98b282034d3cd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7200d64a17a59b76e00471ffecf98b282034d3cd)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/721c235a0f4b44b6f3f4d1a1ad2d6004cf258004 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/721c235a0f4b44b6f3f4d1a1ad2d6004cf258004)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/722ddf6317d503923d50ec14a7f0134223d02fc5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/722ddf6317d503923d50ec14a7f0134223d02fc5)bin578 -> 578 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/72703b82563077899c040f32d5fd681f3e85d5e7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/72703b82563077899c040f32d5fd681f3e85d5e7)bin1702 -> 1702 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/72e277fbc775316b00788a094870232417ead5b5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/72e277fbc775316b00788a094870232417ead5b5)bin655 -> 655 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/72ef763861215860fd3dd2ce150d41c9969a5626 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/72ef763861215860fd3dd2ce150d41c9969a5626)bin2531 -> 2531 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7302de6077e332e10ca8208fd3d08c90ff6c9759 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7302de6077e332e10ca8208fd3d08c90ff6c9759)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/732aaae6fb3ed4161d0041f5babd8c6be0464eb6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/732aaae6fb3ed4161d0041f5babd8c6be0464eb6)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7331525657843f98357c5301fa025e7b82b944c4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7331525657843f98357c5301fa025e7b82b944c4)bin633 -> 633 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7357b02216dbf1eae8613f6e68d1bd30b7a96af5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7357b02216dbf1eae8613f6e68d1bd30b7a96af5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/738ac61926fc8dce25059bb9b481bff548b0f401 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/738ac61926fc8dce25059bb9b481bff548b0f401)bin1771 -> 1771 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/739896955ba314c04c7e0124815509c70223fc27 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/739896955ba314c04c7e0124815509c70223fc27)bin5129 -> 5129 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7405dfae61e337ad9e5a8e4f732c0f5ab7c751bc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7405dfae61e337ad9e5a8e4f732c0f5ab7c751bc)bin2914 -> 2914 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/741e6ef1254abbaf6df6f7219909ce87a28173eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/741e6ef1254abbaf6df6f7219909ce87a28173eb)bin3103 -> 3103 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7439c7c4e3785383775384d74dda571451c0751c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7439c7c4e3785383775384d74dda571451c0751c)bin1599 -> 1599 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/74507594f47ad42dc799a66bc9ebcbcc953ed16c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/74507594f47ad42dc799a66bc9ebcbcc953ed16c)bin172 -> 172 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/74701cca0a86aca307cc680d09c07d2542b83b83 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/74701cca0a86aca307cc680d09c07d2542b83b83)bin1946 -> 1946 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/74c1c002763e74ae157883f9ea57ecb65d2ead7c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/74c1c002763e74ae157883f9ea57ecb65d2ead7c)bin1817 -> 1817 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/74f2b1cd7108f928197305674f8d0297b6f4dcf9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/74f2b1cd7108f928197305674f8d0297b6f4dcf9)bin1073 -> 1073 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/74f48513944d20c0e1638a5c9d517db224070bf9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/74f48513944d20c0e1638a5c9d517db224070bf9)bin637 -> 637 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/75471857e64b2e6ea825ee799fac715f1f2ba4b9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/75471857e64b2e6ea825ee799fac715f1f2ba4b9)bin995 -> 995 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7558318cca4a37ecd6ec1b042a28a2c9a07b4545 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7558318cca4a37ecd6ec1b042a28a2c9a07b4545)bin362 -> 362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7598641b029aff42c3e22979e3f82db606bd52e1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7598641b029aff42c3e22979e3f82db606bd52e1)bin887 -> 887 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/759f4d2c4b41315ee3a75ecae6359e884ee528ab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/759f4d2c4b41315ee3a75ecae6359e884ee528ab)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/75bb2588f5b5020ac8429c2eff120326674a7873 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/75bb2588f5b5020ac8429c2eff120326674a7873)bin397 -> 397 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/75ca351531b293bc2ff8b57aefeb19c62ac4363b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/75ca351531b293bc2ff8b57aefeb19c62ac4363b)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/75ced216fdab19cb3dccbaeb1a5f2ded67da9e6b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/75ced216fdab19cb3dccbaeb1a5f2ded67da9e6b)bin6415 -> 6415 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/75f7a42dae3c9a765b0febbf6687b6c0f530fe70 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/75f7a42dae3c9a765b0febbf6687b6c0f530fe70)bin262 -> 262 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/760361fbcba02b72880b52e86038dd38ff23d000 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/760361fbcba02b72880b52e86038dd38ff23d000)bin1795 -> 1795 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/760b16455503fed8710002b1b0a48f598e0112ef (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/760b16455503fed8710002b1b0a48f598e0112ef)bin1181 -> 1181 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7666c93c84a5977aed5e2a8b41c13d10cb7870b8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7666c93c84a5977aed5e2a8b41c13d10cb7870b8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/76b5d637805e6017f84b0339ccbe69e28fc802ae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/76b5d637805e6017f84b0339ccbe69e28fc802ae)bin3352 -> 3352 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/76bbfd4f255b8bd97a96ca8696d6ea582189e4bc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/76bbfd4f255b8bd97a96ca8696d6ea582189e4bc)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/76df4453c082b281f4edfc6123411c68f918355e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/76df4453c082b281f4edfc6123411c68f918355e)bin259 -> 259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/773d8c1247069285cbb8e0b8f6a99e0ffd4d2059 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/773d8c1247069285cbb8e0b8f6a99e0ffd4d2059)bin1616 -> 1616 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/774c7f030d2ce2023784c487ecb08012c4c499f5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/774c7f030d2ce2023784c487ecb08012c4c499f5)bin949 -> 949 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7752259dd4bbc398ae1a1ee0d1f8f3f6c15f06db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7752259dd4bbc398ae1a1ee0d1f8f3f6c15f06db)bin1795 -> 1795 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/776266f336d60b25e057b10670c6b10137cd164f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/776266f336d60b25e057b10670c6b10137cd164f)bin2109 -> 2109 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/778853d48bd990c02f859db92e3ff4bd99caf5f7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/778853d48bd990c02f859db92e3ff4bd99caf5f7)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/77c4e918cae84403977e1e092b30df24aa80ad3f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/77c4e918cae84403977e1e092b30df24aa80ad3f)bin2458 -> 2458 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/77f9240a8d30c995f7b9b73dddae10b829ad694a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/77f9240a8d30c995f7b9b73dddae10b829ad694a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/77fa7020ab2c8e9615e44f99a6e9ba889529b3b9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/77fa7020ab2c8e9615e44f99a6e9ba889529b3b9)bin2315 -> 2315 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7820f42887a7f97cbfc9ce90c77cb0eaca24f96b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7820f42887a7f97cbfc9ce90c77cb0eaca24f96b)bin1806 -> 1806 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/782654517d1cb3110c78ab7ebbcce1ef77a28db6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/782654517d1cb3110c78ab7ebbcce1ef77a28db6)bin2524 -> 2524 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7858fa3e07bbe0235176b826739a9d40cbf889e5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7858fa3e07bbe0235176b826739a9d40cbf889e5)bin576 -> 576 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/788226d88c63bdc7d829e69b1fa8b542ed3e18ec (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/788226d88c63bdc7d829e69b1fa8b542ed3e18ec)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/788c5b164c36d87e08f216d7a2e131c6fa2f9daf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/788c5b164c36d87e08f216d7a2e131c6fa2f9daf)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7891611e0863685ee4a00ff188479689ddb7d7f9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7891611e0863685ee4a00ff188479689ddb7d7f9)bin422 -> 422 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/789f73beda86a9aa0f9328b273a0167a3bf1d933 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/789f73beda86a9aa0f9328b273a0167a3bf1d933)bin694 -> 694 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/78e9e4b2e97cd0df81bd65c998e8c414677eadad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/78e9e4b2e97cd0df81bd65c998e8c414677eadad)bin896 -> 896 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/78f7f009a79592484e27a2ecb567c532afcbf780 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/78f7f009a79592484e27a2ecb567c532afcbf780)bin2931 -> 2931 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7920e5ba18aef859a58eb2ee9607ae0329bb3976 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7920e5ba18aef859a58eb2ee9607ae0329bb3976)bin580 -> 580 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/79e4a71ac596f7892115e3d7fc60e80e559f3f31 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/79e4a71ac596f7892115e3d7fc60e80e559f3f31)bin2072 -> 2072 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7a113f81d895d4c66bf36d8779c004b0e497915e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7a113f81d895d4c66bf36d8779c004b0e497915e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7a3605d5093b7d7f8b0545c0bff0e7c30340931f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7a3605d5093b7d7f8b0545c0bff0e7c30340931f)bin495 -> 495 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7a39085f65cc1569568094bdbc2d824d4f12ed36 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7a39085f65cc1569568094bdbc2d824d4f12ed36)bin4724 -> 4724 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7a4c85028081a780d21600fc29bca71bba5f1794 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7a4c85028081a780d21600fc29bca71bba5f1794)bin2083 -> 2083 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7aa184df01b1bb4d0337be7953596fa865506108 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7aa184df01b1bb4d0337be7953596fa865506108)bin1155 -> 1155 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7ad316d2975f3c358f89bd84084cb32d76115497 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7ad316d2975f3c358f89bd84084cb32d76115497)bin633 -> 633 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7adfb2826fbac0932d1067d9a4514d30b64a58e6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7adfb2826fbac0932d1067d9a4514d30b64a58e6)bin1769 -> 1769 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7ae212a7f542294650f4472773ae2d901442703a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7ae212a7f542294650f4472773ae2d901442703a)bin712 -> 712 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7aee63978efcc9f30d437becedadf5c2f674aa68 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7aee63978efcc9f30d437becedadf5c2f674aa68)bin1496 -> 1496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7b36d23782e6817b901ce0757da1e2d8a75d20c0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7b36d23782e6817b901ce0757da1e2d8a75d20c0)bin1145 -> 1145 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7b48bf655d93658bacd8de02516710643300c0b9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7b48bf655d93658bacd8de02516710643300c0b9)bin3146 -> 3146 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7ba096d90eff925caaf5d027733e8a887ed0e456 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7ba096d90eff925caaf5d027733e8a887ed0e456)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7be7dcf930784d2ab367e6f94ac229bc0099b0a9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7be7dcf930784d2ab367e6f94ac229bc0099b0a9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7c0acf0d2e4825ca4c5e64767f5999d2593c7895 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7c0acf0d2e4825ca4c5e64767f5999d2593c7895)bin495 -> 495 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7c164f1cf0c3c111df13c60c5715a7115e1aaf36 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7c164f1cf0c3c111df13c60c5715a7115e1aaf36)bin1071 -> 1071 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7c2ede306f7f49e0ac6417950f85c27625d77089 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7c2ede306f7f49e0ac6417950f85c27625d77089)bin2015 -> 2015 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7c7bb47da0afbe2cef9a1e8e68e099982166dd99 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7c7bb47da0afbe2cef9a1e8e68e099982166dd99)bin564 -> 564 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7cb59bb065db90df43a622268a273f9bac5da112 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7cb59bb065db90df43a622268a273f9bac5da112)bin811 -> 811 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7cc098d496aa519fbc3228c89fcc388691058a14 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7cc098d496aa519fbc3228c89fcc388691058a14)bin648 -> 648 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7d070e5cb115fc48ad49f97434f4acee14b55f42 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7d070e5cb115fc48ad49f97434f4acee14b55f42)bin1843 -> 1843 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7d2cd0a9722a7eeb5ac5f33e8b138c3b68a04f61 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7d2cd0a9722a7eeb5ac5f33e8b138c3b68a04f61)bin1337 -> 1337 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7d3d2588be2f62075034bdab268526fe624c56a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7d3d2588be2f62075034bdab268526fe624c56a5)bin1023 -> 1023 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7d3e37565ed18346122d3845dd7ecd7fb1a0c682 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7d3e37565ed18346122d3845dd7ecd7fb1a0c682)bin1242 -> 1242 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7d61fda46e931fd0d1a440ec060d1381f6ae7d92 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7d61fda46e931fd0d1a440ec060d1381f6ae7d92)bin1162 -> 1162 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7d7b8b9c831e77c1d4a717554798464d05f5ad98 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7d7b8b9c831e77c1d4a717554798464d05f5ad98)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7dcca6b421d9984eff185a74056f2068e32544fe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7dcca6b421d9984eff185a74056f2068e32544fe)bin480 -> 480 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7df0a9f94a087f5fe54e921ee7a4195a5ed0cc22 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7df0a9f94a087f5fe54e921ee7a4195a5ed0cc22)bin2356 -> 2356 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7e25a01bfd45f64eff308d2b2027f275d4642122 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7e25a01bfd45f64eff308d2b2027f275d4642122)bin674 -> 674 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7e5760649c5b430dfac45d98493900bf5b1c0659 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7e5760649c5b430dfac45d98493900bf5b1c0659)bin1592 -> 1592 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da3332689d178a40461f544bc45624535d517 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7e6da3332689d178a40461f544bc45624535d517)bin166 -> 166 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da9e3c4806ab51a63c197ceacd9922f75da4d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7e6da9e3c4806ab51a63c197ceacd9922f75da4d)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7eafefa09c7f9847f1c4f6cf3276b1e89637c889 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7eafefa09c7f9847f1c4f6cf3276b1e89637c889)bin1643 -> 1643 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7ee11d0b381f7023917f4f43b360653ebf997b5d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7ee11d0b381f7023917f4f43b360653ebf997b5d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7f018b85a1c845b2910b509712c14f1e0998f8ca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7f018b85a1c845b2910b509712c14f1e0998f8ca)bin3074 -> 3074 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7f1823d8859637e5de54543d7163fe3aa5ecec9a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7f1823d8859637e5de54543d7163fe3aa5ecec9a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7f2135b4746335d1e76a66685aa5998f9307f6f4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7f2135b4746335d1e76a66685aa5998f9307f6f4)bin490 -> 490 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7f34d343cd38e1ae5eca4b51fac6f01dbb4dfd55 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7f34d343cd38e1ae5eca4b51fac6f01dbb4dfd55)bin3318 -> 3318 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7f3c4eec25bd2dcd0cff3fe74283cb97d0622a6a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7f3c4eec25bd2dcd0cff3fe74283cb97d0622a6a)bin1060 -> 1060 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7f64bf7ceded47fb4c747b952a87912f18d7cb00 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7f64bf7ceded47fb4c747b952a87912f18d7cb00)bin1662 -> 1662 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7fa53a0e9cd5895b3f9220a7ec099a9426a5fc97 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7fa53a0e9cd5895b3f9220a7ec099a9426a5fc97)bin2036 -> 2036 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7fcfdfd236cb22b0e222bba762798b05cb4ec266 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7fcfdfd236cb22b0e222bba762798b05cb4ec266)bin1371 -> 1371 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7fd49d9478e90ae7b32cd500eb8d394a290843bd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7fd49d9478e90ae7b32cd500eb8d394a290843bd)bin2268 -> 2268 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7fd5d266e9d12cccfff8e0543c38c3e56947660f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7fd5d266e9d12cccfff8e0543c38c3e56947660f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/7ff79de1f65198581f0a0955d1a43fdd536c7313 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/7ff79de1f65198581f0a0955d1a43fdd536c7313)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/80318c598a84d355d77b26339f449fc057b5fc30 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/80318c598a84d355d77b26339f449fc057b5fc30)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/803cf881f4a77a986ad8bb371b81a6503e0fed80 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/803cf881f4a77a986ad8bb371b81a6503e0fed80)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8040e16bf27339b41cf54ac8e9169fc7f81c7a48 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8040e16bf27339b41cf54ac8e9169fc7f81c7a48)bin1082 -> 1082 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/80418b85ce32c7761e45b9cf7502b292132a6379 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/80418b85ce32c7761e45b9cf7502b292132a6379)bin1062 -> 1062 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/805b49f003df61d2e5f269c8eead105c1082f5f2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/805b49f003df61d2e5f269c8eead105c1082f5f2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/80a2cbc9bd6bc171b39e32c9e2b71cd3de56da80 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/80a2cbc9bd6bc171b39e32c9e2b71cd3de56da80)bin2945 -> 2945 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/80a57ede1580fa68596244fbd2ca3d7dbc0bb073 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/80a57ede1580fa68596244fbd2ca3d7dbc0bb073)bin494 -> 494 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/80a8a8d39296d2ca58f566c5e740b4105b6e8327 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/80a8a8d39296d2ca58f566c5e740b4105b6e8327)bin2784 -> 2784 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/80bb16a769003c82b0a3eab03886360d4224fce0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/80bb16a769003c82b0a3eab03886360d4224fce0)bin576 -> 576 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/80de07ee2152f321876e34a77adb24ddb70e65ee (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/80de07ee2152f321876e34a77adb24ddb70e65ee)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/813b49f1ef9a38a53935ec3896b0c9f3ba26f4e1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/813b49f1ef9a38a53935ec3896b0c9f3ba26f4e1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/813eb179d03b6e2e8ac74eb54237aee18f5c3660 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/813eb179d03b6e2e8ac74eb54237aee18f5c3660)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/81952c46cc49b95b18826f31f158ac90fcb40cd4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/81952c46cc49b95b18826f31f158ac90fcb40cd4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/81a2c4d5b3a07c24d44ac442ad6ddd9988818ae5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/81a2c4d5b3a07c24d44ac442ad6ddd9988818ae5)bin1261 -> 1261 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/81df3635ec4185424d48f9e24c66057ecccb649c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/81df3635ec4185424d48f9e24c66057ecccb649c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/81ec1ab791511319d27058351d51e013f0cb5ef5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/81ec1ab791511319d27058351d51e013f0cb5ef5)bin2259 -> 2259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/81f82bcf98023fe706756de805196c3c86fd6a1a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/81f82bcf98023fe706756de805196c3c86fd6a1a)bin686 -> 686 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/820fe214719d203de38b6034a5834a6e70624c2e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/820fe214719d203de38b6034a5834a6e70624c2e)bin1421 -> 1421 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/821c0c56ff1a3d2f3bc3834aaadfac5d7032e27a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/821c0c56ff1a3d2f3bc3834aaadfac5d7032e27a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/82254889349372edabb07cee13b76f4502f034e2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/82254889349372edabb07cee13b76f4502f034e2)bin645 -> 645 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/825c1dcea8e3b4f79a1a8fc47d66dff4ef22c299 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/825c1dcea8e3b4f79a1a8fc47d66dff4ef22c299)bin1655 -> 1655 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/82653abe907b38e448d0d4741be641d9a1cbb8b6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/82653abe907b38e448d0d4741be641d9a1cbb8b6)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8267e33148ea8c3d3273a96723139419ac8d454e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8267e33148ea8c3d3273a96723139419ac8d454e)bin1523 -> 1523 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/827975005b57d444b40585d5aae93a854e3401c8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/827975005b57d444b40585d5aae93a854e3401c8)bin4830 -> 4830 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/827a43142b5f4f21bf79d0677f1cad294a289080 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/827a43142b5f4f21bf79d0677f1cad294a289080)bin3175 -> 3175 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/827f5ddf31cef19b8943c8096379e663a0b99e4e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/827f5ddf31cef19b8943c8096379e663a0b99e4e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/82e3c3e83d8f843041865526ff6943721d6adfe0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/82e3c3e83d8f843041865526ff6943721d6adfe0)bin447 -> 447 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/82f6266669a11babc4bfa80f6faa474a27ad1465 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/82f6266669a11babc4bfa80f6faa474a27ad1465)bin2099 -> 2099 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/831c0477fb9be21dfe3e23085fa4926a2fb79db9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/831c0477fb9be21dfe3e23085fa4926a2fb79db9)bin3323 -> 3323 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/831d77dc09224c6f60b0a6c17c97aefd7c1b950e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/831d77dc09224c6f60b0a6c17c97aefd7c1b950e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8367bff7c3a4b5f6a26c59394fe4f8d54cd37e97 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8367bff7c3a4b5f6a26c59394fe4f8d54cd37e97)bin1491 -> 1491 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8367fe20b8b1cc1422b8fff96fc5c10da90ca1a2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8367fe20b8b1cc1422b8fff96fc5c10da90ca1a2)bin3354 -> 3354 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/838558ec78768745451d9cf9bfa6fe948fd76055 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/838558ec78768745451d9cf9bfa6fe948fd76055)bin1754 -> 1754 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/83c54a653888932621417330468aa4a161c70cfb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/83c54a653888932621417330468aa4a161c70cfb)bin2989 -> 2989 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/83e67e0f0f3dfba37dd273ef3c3efd498e76a2ce (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/83e67e0f0f3dfba37dd273ef3c3efd498e76a2ce)bin881 -> 881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/840270b14bd1623a92a2a7d7dd1dd73983431ac4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/840270b14bd1623a92a2a7d7dd1dd73983431ac4)bin224 -> 224 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8425150d042d1b45eb9dd4e500131fdb5fe6d0c0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8425150d042d1b45eb9dd4e500131fdb5fe6d0c0)bin932 -> 932 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/84951f2b6bde1eb1576da09c3d778709ef169d8d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/84951f2b6bde1eb1576da09c3d778709ef169d8d)bin2668 -> 2668 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/84be72ddb132bc5d367ca093120a41e2f685d167 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/84be72ddb132bc5d367ca093120a41e2f685d167)bin150 -> 150 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/84e70912767d9e9220777d96d5a0ab04791504be (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/84e70912767d9e9220777d96d5a0ab04791504be)bin1919 -> 1919 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8503de15d8692b9d196dcc62e5ffb496b432ab14 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8503de15d8692b9d196dcc62e5ffb496b432ab14)bin1407 -> 1407 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/852db3f6e3250b3ce1708958dfbe5f3a00cc1618 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/852db3f6e3250b3ce1708958dfbe5f3a00cc1618)bin1968 -> 1968 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8531c07a38054371cd286842cd005cf3fed09105 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8531c07a38054371cd286842cd005cf3fed09105)bin704 -> 704 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/853a32dff89ecc118a33f5dd6f3094f3fb871c47 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/853a32dff89ecc118a33f5dd6f3094f3fb871c47)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/853c736545c8813abec4fd4fc0664765a589ea32 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/853c736545c8813abec4fd4fc0664765a589ea32)bin517 -> 517 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/856e349f8a4693e2589288accc93974be19c1c24 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/856e349f8a4693e2589288accc93974be19c1c24)bin509 -> 509 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/85953029e241867747ce4a24e4885df2ca14784a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/85953029e241867747ce4a24e4885df2ca14784a)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/859a5f7421357f1a562e07ee1fa808e1fd53317e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/859a5f7421357f1a562e07ee1fa808e1fd53317e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/85c89f4d20809535e96a58aaa811690b42b30506 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/85c89f4d20809535e96a58aaa811690b42b30506)bin584 -> 584 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/85f620db4ff68b1a18288cd5bea3170602dcfc30 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/85f620db4ff68b1a18288cd5bea3170602dcfc30)bin3672 -> 3672 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/862b41cf66c34243093c17d8debcbc39470b9145 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/862b41cf66c34243093c17d8debcbc39470b9145)bin1843 -> 1843 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8636e740484f41612a42443f2084054350cfcc24 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8636e740484f41612a42443f2084054350cfcc24)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8646293860427fa42819f6e2176cd4e724a3c28b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8646293860427fa42819f6e2176cd4e724a3c28b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/86a9577ce560933668987659ded65a8bcc719776 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/86a9577ce560933668987659ded65a8bcc719776)bin2722 -> 2722 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/86f1a5c09f46c5875a51d24c04e7f3cdacdeb9c8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/86f1a5c09f46c5875a51d24c04e7f3cdacdeb9c8)bin678 -> 678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/86f5478e47a35c22142f75754ffe5cd30b97d881 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/86f5478e47a35c22142f75754ffe5cd30b97d881)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8717ea8f94c789030b43449b3e29fe18e8e391d1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8717ea8f94c789030b43449b3e29fe18e8e391d1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8735896966550c2ba3bd5b09db5b9ab2c30803c5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8735896966550c2ba3bd5b09db5b9ab2c30803c5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/878c3c11477b31c3f647ae29a7fc562806d6091d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/878c3c11477b31c3f647ae29a7fc562806d6091d)bin980 -> 980 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8792b62ec281f52aaaa65c2786eb5d209568d701 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8792b62ec281f52aaaa65c2786eb5d209568d701)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/87aa0d1b4c2e8bfbde61dd56e9ab7ff6079bd05b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/87aa0d1b4c2e8bfbde61dd56e9ab7ff6079bd05b)bin1055 -> 1055 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/880d08952ec1332aac50f38de93cf0050de93a51 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/880d08952ec1332aac50f38de93cf0050de93a51)bin3425 -> 3425 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/881c9633a378132d999555c17f08be8ac87b5ec0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/881c9633a378132d999555c17f08be8ac87b5ec0)bin682 -> 682 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8849cd4ce4cb5d843a2920bca651bec7add5fd41 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8849cd4ce4cb5d843a2920bca651bec7add5fd41)bin320 -> 320 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/88821e3f314f16180de0aac148185375581db4ed (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/88821e3f314f16180de0aac148185375581db4ed)bin254 -> 254 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8909bf64ebddf987231e0709a109106b35c7fa56 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8909bf64ebddf987231e0709a109106b35c7fa56)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/896782eea85ebe0830b1b1b095e9f6c814df142b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/896782eea85ebe0830b1b1b095e9f6c814df142b)bin676 -> 676 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/896a622519d9602e95fe692a8b7bf651855c4066 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/896a622519d9602e95fe692a8b7bf651855c4066)bin504 -> 504 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/89b004136a7c7443091f0be44310c2bfd2562075 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/89b004136a7c7443091f0be44310c2bfd2562075)bin887 -> 887 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/89faa9dd023d315072f1a3b7caeea30149b3941e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/89faa9dd023d315072f1a3b7caeea30149b3941e)bin626 -> 626 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8a2e4d1e737bc727dd23d3c1d71c51e66085a8af (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8a2e4d1e737bc727dd23d3c1d71c51e66085a8af)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8a36f6d9ea1710c3819833e3ae2b93053dba5602 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8a36f6d9ea1710c3819833e3ae2b93053dba5602)bin3094 -> 3094 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8a3d775fdcd8eb044323b5c77976ab1579bd68bb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8a3d775fdcd8eb044323b5c77976ab1579bd68bb)bin620 -> 620 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8a50457cd8f4a5e9a777194d9dce994187e868cd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8a50457cd8f4a5e9a777194d9dce994187e868cd)bin2946 -> 2946 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8a581b38db19b3da7f3876a19de1cb288bb69011 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8a581b38db19b3da7f3876a19de1cb288bb69011)bin805 -> 805 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8a722cd5ef3a8b07174e0b4998abcc9ee86fc545 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8a722cd5ef3a8b07174e0b4998abcc9ee86fc545)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b01690b7439d3e0b4db20e65ad2c22b328562f7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b01690b7439d3e0b4db20e65ad2c22b328562f7)bin1571 -> 1571 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b053cd12f3a21313c48a7569b379b417aa73383 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b053cd12f3a21313c48a7569b379b417aa73383)bin253 -> 253 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b091cb0ebf7cd816a20e73e128f67b8e483ed3d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b091cb0ebf7cd816a20e73e128f67b8e483ed3d)bin649 -> 649 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b22f23cdced7778007d1682a70bab3d93ebf32e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b22f23cdced7778007d1682a70bab3d93ebf32e)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b51d48f5de5def3ba4211a0529e3f10d1e14840 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b51d48f5de5def3ba4211a0529e3f10d1e14840)bin1719 -> 1719 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b630200dd406be6062fd3e37aaa588c57131ffb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b630200dd406be6062fd3e37aaa588c57131ffb)bin1450 -> 1450 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b656bada1711207b9298e526c8c36ac26dc204e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b656bada1711207b9298e526c8c36ac26dc204e)bin882 -> 882 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b728461f55557504e85a16067df2dddaa18025a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b728461f55557504e85a16067df2dddaa18025a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b7e46efdd00bfd74a0c301a1e17f22c5771631f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b7e46efdd00bfd74a0c301a1e17f22c5771631f)bin2597 -> 2597 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b7f0ac511bb4619724bf7ea65811f050f77029b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b7f0ac511bb4619724bf7ea65811f050f77029b)bin258 -> 258 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8b98f58c54576e8109929cb0b08d20b0ac576a3e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8b98f58c54576e8109929cb0b08d20b0ac576a3e)bin1081 -> 1081 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8c1ce89ef95dc8fcacd91e14e9241b250e9fc5a0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8c1ce89ef95dc8fcacd91e14e9241b250e9fc5a0)bin3356 -> 3356 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8c51d3297dd8e16f08df46f5ad2fec029b5f3e48 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8c51d3297dd8e16f08df46f5ad2fec029b5f3e48)bin1137 -> 1137 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8c5c026bd04dc23f5bb1feac31de198f3e14cba6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8c5c026bd04dc23f5bb1feac31de198f3e14cba6)bin1065 -> 1065 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8c6fd4aac5e5321c3974f1c708bdc048ade8dab6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8c6fd4aac5e5321c3974f1c708bdc048ade8dab6)bin266 -> 266 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8c7a5dbe73321fb0f675a480c5f638bf81046b8b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8c7a5dbe73321fb0f675a480c5f638bf81046b8b)bin678 -> 678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8c93c7febda3ceb2b297c3c9d344d0cdaa9fb662 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8c93c7febda3ceb2b297c3c9d344d0cdaa9fb662)bin480 -> 480 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8cc59b9ebd2e926653f006d5c734957a94e0de7e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8cc59b9ebd2e926653f006d5c734957a94e0de7e)bin3070 -> 3070 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8ce521cbaaa89717d33e1ecac1a095f9111df103 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8ce521cbaaa89717d33e1ecac1a095f9111df103)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8cecf72fa104d9a9c72fe7ee394b0c31616d2846 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8cecf72fa104d9a9c72fe7ee394b0c31616d2846)bin863 -> 863 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8cf07c52feedf432f1a50eaa04612d4a6fc562e7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8cf07c52feedf432f1a50eaa04612d4a6fc562e7)bin246 -> 246 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8d3a1c449aa1781d10eae5cbea5f68e3e7e08659 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8d3a1c449aa1781d10eae5cbea5f68e3e7e08659)bin742 -> 742 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8d5585dfefdad3be28fd5798c90b7fa41e985f67 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8d5585dfefdad3be28fd5798c90b7fa41e985f67)bin1327 -> 1327 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8d7b721b6e1fa5713ac5f5575dd2a23103827ec0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8d7b721b6e1fa5713ac5f5575dd2a23103827ec0)bin572 -> 572 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8d7bf572f05f1e59e2af8ea472ae954203cac0c9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8d7bf572f05f1e59e2af8ea472ae954203cac0c9)bin1926 -> 1926 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8d90c8392849715d57cf4e6f528ec7e9933e7818 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8d90c8392849715d57cf4e6f528ec7e9933e7818)bin329 -> 329 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8da0713cc86ae7ba28ad5f6a465ec5f9f7e08707 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8da0713cc86ae7ba28ad5f6a465ec5f9f7e08707)bin420 -> 420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8da5555b68cf4de3a317ed3c8846c892fc249790 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8da5555b68cf4de3a317ed3c8846c892fc249790)bin849 -> 849 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8df5d7c917a83cf5ede0e9dc8c95f5db7cb844ab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8df5d7c917a83cf5ede0e9dc8c95f5db7cb844ab)bin1195 -> 1195 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8e3777e075ad745dce2450c8b9186f1f0e83858b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8e3777e075ad745dce2450c8b9186f1f0e83858b)bin1420 -> 1420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8e5ac7293e1a6073498ff108cc6f7536496ed7b4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8e5ac7293e1a6073498ff108cc6f7536496ed7b4)bin1763 -> 1763 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8e64d097e27d4b7d5ba0fc676de1973fb45cfd4d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8e64d097e27d4b7d5ba0fc676de1973fb45cfd4d)bin2442 -> 2442 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8e946a8874d5a41ca38c1f1e88468f0d0b4e1a88 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8e946a8874d5a41ca38c1f1e88468f0d0b4e1a88)bin621 -> 621 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8ea6aa4fbfff447a0f63f8f56e67abac612741f3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8ea6aa4fbfff447a0f63f8f56e67abac612741f3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8ecf246610c1c9bb9eec8670eeb99340652619e5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8ecf246610c1c9bb9eec8670eeb99340652619e5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8eddf77ba6326b6369d1d1ec93d2bff3be621802 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8eddf77ba6326b6369d1d1ec93d2bff3be621802)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8ef22d5051e6dc184dea0a0c3ff4424973c02bbf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8ef22d5051e6dc184dea0a0c3ff4424973c02bbf)bin959 -> 959 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8ef2a6f9f7b5a6890907a7c283abcf58cd29bc7c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8ef2a6f9f7b5a6890907a7c283abcf58cd29bc7c)bin1254 -> 1254 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8f197149c605f4ffb3f7fcdbf246ed7832f97d18 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8f197149c605f4ffb3f7fcdbf246ed7832f97d18)bin1697 -> 1697 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8f24a7e0169851c5aea68a52fa4d8fdbabf6d5b8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8f24a7e0169851c5aea68a52fa4d8fdbabf6d5b8)bin185 -> 185 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8f36e39855cbc7258d2485b1235d40fe818950d2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8f36e39855cbc7258d2485b1235d40fe818950d2)bin2865 -> 2865 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8f632553314a2f94d9e333e7996017f70f411bea (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8f632553314a2f94d9e333e7996017f70f411bea)bin174 -> 174 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8fa2816b9c03456a927885376b4bff48feab6f95 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8fa2816b9c03456a927885376b4bff48feab6f95)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8fdc76b9f90d30356ba74dd4d4cb2fbd7c1e28b7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8fdc76b9f90d30356ba74dd4d4cb2fbd7c1e28b7)bin860 -> 860 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/8fdeab67c28de429ade78264fb7c4c44a619e15d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/8fdeab67c28de429ade78264fb7c4c44a619e15d)bin686 -> 686 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/90114b5954eaa4dd842a4b9309d5328e9fc93161 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/90114b5954eaa4dd842a4b9309d5328e9fc93161)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9016406b02b54d70b43d8fb6527e4f0cedb096af (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9016406b02b54d70b43d8fb6527e4f0cedb096af)bin740 -> 740 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9043c262a99deb5175e919ed6a7659ccb1fb3771 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9043c262a99deb5175e919ed6a7659ccb1fb3771)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/90560a01b19d13bacf2ffdedb66073e1adb63a11 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/90560a01b19d13bacf2ffdedb66073e1adb63a11)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/905d966d03cb48a4ed6075e73dd43117064537e0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/905d966d03cb48a4ed6075e73dd43117064537e0)bin624 -> 624 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/913e97d729a7d567569ff794d6525bd39a103741 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/913e97d729a7d567569ff794d6525bd39a103741)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/914106e0b618acecdce0ef9e1013c7870c5b0428 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/914106e0b618acecdce0ef9e1013c7870c5b0428)bin518 -> 518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/91715a0be19b756a24310346ac19f60d1f09135b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/91715a0be19b756a24310346ac19f60d1f09135b)bin394 -> 394 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/917864f8227ab10627320593d3d91a218b3d6fb7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/917864f8227ab10627320593d3d91a218b3d6fb7)bin1080 -> 1080 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/91b76871d9c2667598329de7cc75d0fd1a8249d3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/91b76871d9c2667598329de7cc75d0fd1a8249d3)bin1055 -> 1055 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9228a89e4b4b340e585c69f4009cbb9484e952fd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9228a89e4b4b340e585c69f4009cbb9484e952fd)bin3397 -> 3397 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/926848957cfabd00ebf2ce515f1f8c634e621eba (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/926848957cfabd00ebf2ce515f1f8c634e621eba)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/92b278ae9389267ae98d3e78e6037ac1fe14acac (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/92b278ae9389267ae98d3e78e6037ac1fe14acac)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/92ba3df1c6f9597c35303ab87dfac88c247f4f65 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/92ba3df1c6f9597c35303ab87dfac88c247f4f65)bin2826 -> 2826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/92c5161e2ddb4b4d4a0a790a1808134d7fda742e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/92c5161e2ddb4b4d4a0a790a1808134d7fda742e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/92e66e041b6d6b09ca3a6a302c71b20495090645 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/92e66e041b6d6b09ca3a6a302c71b20495090645)bin10475 -> 10475 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/92fedb4375307dfab20fd255a721ed52697b34ad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/92fedb4375307dfab20fd255a721ed52697b34ad)bin2988 -> 2988 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/936ba2471ba89899db1bee43e1cf784836d92ebd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/936ba2471ba89899db1bee43e1cf784836d92ebd)bin2117 -> 2117 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/937396ef1aebe7dc4ef21a169511000562a365fe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/937396ef1aebe7dc4ef21a169511000562a365fe)bin1601 -> 1601 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9378355bff3c42e78ec8c5344dbfaee9023e98c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9378355bff3c42e78ec8c5344dbfaee9023e98c2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/93934c7c3accaed4f7ad77dc85e8f88458a2886b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/93934c7c3accaed4f7ad77dc85e8f88458a2886b)bin795 -> 795 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/939fb6e9b8d4424379d61c9b054f14bbcc7d018b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/939fb6e9b8d4424379d61c9b054f14bbcc7d018b)bin434 -> 434 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/93c2b7328db7165f9a099a4aa9e0a559f45bc879 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/93c2b7328db7165f9a099a4aa9e0a559f45bc879)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/93d2d20167714f4dc4d1b69b4f60561722990180 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/93d2d20167714f4dc4d1b69b4f60561722990180)bin764 -> 764 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/940f670c6c19fccfe4ddcab95c9ce746e473e368 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/940f670c6c19fccfe4ddcab95c9ce746e473e368)bin883 -> 883 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/944609e816d3635bb4949644f925dd2ec754af48 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/944609e816d3635bb4949644f925dd2ec754af48)bin424 -> 424 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/94a18f696861e435bb3ae9e19777f29b494a8673 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/94a18f696861e435bb3ae9e19777f29b494a8673)bin7795 -> 7795 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/94d07bf670a1f0cc9798009a1473562c64edd5f7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/94d07bf670a1f0cc9798009a1473562c64edd5f7)bin2736 -> 2736 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9506174f9692274bbb77ac355ec50d13cb46da61 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9506174f9692274bbb77ac355ec50d13cb46da61)bin4455 -> 4455 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/952a342bdbfe3f6be0bac64429df444b5cb8c40f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/952a342bdbfe3f6be0bac64429df444b5cb8c40f)bin704 -> 704 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/953b611aa942ce619d6501e423c5cf6c14f316a6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/953b611aa942ce619d6501e423c5cf6c14f316a6)bin250 -> 250 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/95b09601b384c61a733a0559470bcba9a89da569 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/95b09601b384c61a733a0559470bcba9a89da569)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/95c1b93936685bffc922ed70c158aa64d4384dbe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/95c1b93936685bffc922ed70c158aa64d4384dbe)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/95fdf55a47f444995658453d62a2d35b732571b5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/95fdf55a47f444995658453d62a2d35b732571b5)bin6545 -> 6545 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/96195f9c9f9846b196769d31af5d98e8df6199d4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/96195f9c9f9846b196769d31af5d98e8df6199d4)bin5192 -> 5192 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/96247fa0c6f43a71b2e34515d9cb02ebcba3ef6b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/96247fa0c6f43a71b2e34515d9cb02ebcba3ef6b)bin1703 -> 1703 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/964a45b3ae315ebcea5fb4e7bbd78df5dafc2a92 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/964a45b3ae315ebcea5fb4e7bbd78df5dafc2a92)bin2988 -> 2988 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/967543b03a848416eaf5cd0c73a695dabb59acb6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/967543b03a848416eaf5cd0c73a695dabb59acb6)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/967c8c5252dd3dc01ba41b7a421ba1eff0b11107 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/967c8c5252dd3dc01ba41b7a421ba1eff0b11107)bin2976 -> 2976 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/968b89612161b08e8021d7fdfe1e6f55f5a24a63 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/968b89612161b08e8021d7fdfe1e6f55f5a24a63)bin2130 -> 2130 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/96a03ffa6dd8b37758f54375865076386dbad0fa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/96a03ffa6dd8b37758f54375865076386dbad0fa)bin848 -> 848 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/96a08b9b0f8f6ea629482bae7ff3227ac82086a4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/96a08b9b0f8f6ea629482bae7ff3227ac82086a4)bin10854 -> 10854 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/96a7ce3523361d10867e83696ddf9057c942d797 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/96a7ce3523361d10867e83696ddf9057c942d797)bin1896 -> 1896 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/96e4615b052e4a46ceb913fcbd375a5fcea69e00 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/96e4615b052e4a46ceb913fcbd375a5fcea69e00)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/970353a3902f1ef7b790bc3a25a6d5032b39f436 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/970353a3902f1ef7b790bc3a25a6d5032b39f436)bin1154 -> 1154 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/970dfddc67e312257dcb6f490a093374bd46cd84 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/970dfddc67e312257dcb6f490a093374bd46cd84)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/975b83c84fff8dab82136d8e30f616e6af8ff0a6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/975b83c84fff8dab82136d8e30f616e6af8ff0a6)bin1021 -> 1021 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/978eb3414957021ac8d5a1669d5599b5533e8e9d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/978eb3414957021ac8d5a1669d5599b5533e8e9d)bin1812 -> 1812 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/979fb98b41907ab2a2e26342257798ab06d79d8b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/979fb98b41907ab2a2e26342257798ab06d79d8b)bin963 -> 963 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/97c44e69d084a133d96406c4398dd39114d1e16b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/97c44e69d084a133d96406c4398dd39114d1e16b)bin3317 -> 3317 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/97d09ccc91f475ac2a6079ef460310340ba1d2f1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/97d09ccc91f475ac2a6079ef460310340ba1d2f1)bin2910 -> 2910 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/97d7e457fc064368e826f17a35a124ac6307166f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/97d7e457fc064368e826f17a35a124ac6307166f)bin2464 -> 2464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/97ed12879622977bd7607399e5b966ff8a5ff2f5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/97ed12879622977bd7607399e5b966ff8a5ff2f5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/97f7440c78e70789647b3541912051d9bd13b679 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/97f7440c78e70789647b3541912051d9bd13b679)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/980b7f85937494f71fa09ad63afb46f02d935b57 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/980b7f85937494f71fa09ad63afb46f02d935b57)bin1969 -> 1969 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/982094d9ce6a83c6470fffa728cb07c160c6d6cd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/982094d9ce6a83c6470fffa728cb07c160c6d6cd)bin1700 -> 1700 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/983907116c9e3d3405a0915fea6f0b195cdba900 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/983907116c9e3d3405a0915fea6f0b195cdba900)bin1877 -> 1877 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9869042fa5f028fe5b9f992bfe9e4019a8620942 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9869042fa5f028fe5b9f992bfe9e4019a8620942)bin10556 -> 10556 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9881c795c0c5acac898f3e47fcd0436afffa818b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9881c795c0c5acac898f3e47fcd0436afffa818b)bin2269 -> 2269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/98dbf423db38079a0337fadfb792ca8b1999bd8d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/98dbf423db38079a0337fadfb792ca8b1999bd8d)bin462 -> 462 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9904621b0d87f5a5747d7c702537af4589285ca8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9904621b0d87f5a5747d7c702537af4589285ca8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/99072467428ea789f9b8ebd3075f511727a97f7f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/99072467428ea789f9b8ebd3075f511727a97f7f)bin361 -> 361 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/997265f80ade398b4f64bd4ecb0628820d233a4c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/997265f80ade398b4f64bd4ecb0628820d233a4c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9973bab4cc71662d8bb7981aa40942ff539f87df (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9973bab4cc71662d8bb7981aa40942ff539f87df)bin2531 -> 2531 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9991ab7e9222bcdea2a8f7ac2b4952a4d5e15909 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9991ab7e9222bcdea2a8f7ac2b4952a4d5e15909)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9a0069fad9482f43891966d688db04940c952f55 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9a0069fad9482f43891966d688db04940c952f55)bin1438 -> 1438 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9a2aafe86532237001cc39174fc8239786ef7630 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9a2aafe86532237001cc39174fc8239786ef7630)bin7002 -> 7002 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9a3d44f62ea8a81d023a7dc8edf06eeef18c6bb8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9a3d44f62ea8a81d023a7dc8edf06eeef18c6bb8)bin3191 -> 3191 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9a46e195967abf320078c799878ca17c1b5502b0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9a46e195967abf320078c799878ca17c1b5502b0)bin1048 -> 1048 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9a92936fd679f137359ed6c7eb481661fbb47dfa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9a92936fd679f137359ed6c7eb481661fbb47dfa)bin1697 -> 1697 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9ac0d93539ec207cfb42d33b771fca29fc201fe6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9ac0d93539ec207cfb42d33b771fca29fc201fe6)bin2554 -> 2554 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9acede65f1289ff530dd50acea649f734fa1c43d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9acede65f1289ff530dd50acea649f734fa1c43d)bin496 -> 496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9b42c28f39cbc7ae197ff7c706a7d28499360422 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9b42c28f39cbc7ae197ff7c706a7d28499360422)bin469 -> 469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9b48028fb96d5b8f73664d302d2b1b49cab03de0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9b48028fb96d5b8f73664d302d2b1b49cab03de0)bin1207 -> 1207 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9b9be81ccf8877556b15e99d2f71399441b91bc3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9b9be81ccf8877556b15e99d2f71399441b91bc3)bin2498 -> 2498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9babcd1bb142ddb9721d45811a25b51a6e03ac67 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9babcd1bb142ddb9721d45811a25b51a6e03ac67)bin1492 -> 1492 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9bd03e203c55ae3cb9bee9f25fe22dda55367480 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9bd03e203c55ae3cb9bee9f25fe22dda55367480)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9c45006b313d1b29ccd3a3b17bb210f154a03fae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9c45006b313d1b29ccd3a3b17bb210f154a03fae)bin1729 -> 1729 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9cdbfc4dae1ef9abaf3133d8ff3b913aac9e0c0a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9cdbfc4dae1ef9abaf3133d8ff3b913aac9e0c0a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9ce6509e6b386351234598642137b8f0009c92a7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9ce6509e6b386351234598642137b8f0009c92a7)bin1505 -> 1505 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9cf2d2a32856aae6a8867f79afbd7b72e9e6f1d2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9cf2d2a32856aae6a8867f79afbd7b72e9e6f1d2)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9d47cf580024e07c3ccfba0faaa0f94d298fe8db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9d47cf580024e07c3ccfba0faaa0f94d298fe8db)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9d50b29d2572a2770498c80cbdbcc7466e88ded1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9d50b29d2572a2770498c80cbdbcc7466e88ded1)bin353 -> 353 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9d54e15e9c2b7c2fbed989639683f75763b35012 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9d54e15e9c2b7c2fbed989639683f75763b35012)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9d5f2b812601548526c1727e2db3e8ba9b09668a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9d5f2b812601548526c1727e2db3e8ba9b09668a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9d6a01074d6e3beb1d453f696e28066c6db4a600 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9d6a01074d6e3beb1d453f696e28066c6db4a600)bin2195 -> 2195 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9d6cca3835d5cbb770075eb077e2b2739d9c9499 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9d6cca3835d5cbb770075eb077e2b2739d9c9499)bin3353 -> 3353 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9d719fa259cef8572f6dd23a8ca05448b6ed938f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9d719fa259cef8572f6dd23a8ca05448b6ed938f)bin881 -> 881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9dcf5155aa181e47e4c5e2171758d8f4f89d9697 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9dcf5155aa181e47e4c5e2171758d8f4f89d9697)bin637 -> 637 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9dfdd1e502bd9c8a100dec132b9bcdd255990044 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9dfdd1e502bd9c8a100dec132b9bcdd255990044)bin1098 -> 1098 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9e23d1c7ccfa32f3fd6975013cd0bd0617eac1b3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9e23d1c7ccfa32f3fd6975013cd0bd0617eac1b3)bin738 -> 738 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9e4668597b75993fb39feaffb0d1b0534cf0fdf6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9e4668597b75993fb39feaffb0d1b0534cf0fdf6)bin2232 -> 2232 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9e4733d6e9f4e7f57eca191f6f2bfa72adaa950d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9e4733d6e9f4e7f57eca191f6f2bfa72adaa950d)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9e7896984aff234794c3cf7ed1c12b96fff42182 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9e7896984aff234794c3cf7ed1c12b96fff42182)bin887 -> 887 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9f1417c40e2508e54062a7eb640b627540f65646 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9f1417c40e2508e54062a7eb640b627540f65646)bin2490 -> 2490 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9f2ffe5c6d1333eb6d2c3040935a66865f7d6fb2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9f2ffe5c6d1333eb6d2c3040935a66865f7d6fb2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9f354002c988d4f46050d3f78e86cda99b189cfe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9f354002c988d4f46050d3f78e86cda99b189cfe)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9f6b4d8632eb8a7a4dbf213bc4972d96784cb0f0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9f6b4d8632eb8a7a4dbf213bc4972d96784cb0f0)bin3351 -> 3351 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9f77421f0377e73d10c7a900bc873bd627f2c4e0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9f77421f0377e73d10c7a900bc873bd627f2c4e0)bin2072 -> 2072 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9fa49893149c17b53e90accf38f0ce7ee8e54ca3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9fa49893149c17b53e90accf38f0ce7ee8e54ca3)bin1496 -> 1496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9fb409197dae95ed37880f46bcc6d31a502fd6c3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9fb409197dae95ed37880f46bcc6d31a502fd6c3)bin2256 -> 2256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9fb5a961b6f85c8bb3ff0b657d732f228e61314f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9fb5a961b6f85c8bb3ff0b657d732f228e61314f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/9ff1daabf90002d9c73b2a2c8296724e57e765b4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/9ff1daabf90002d9c73b2a2c8296724e57e765b4)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a036b8f6da45134557fb0d921ad65fa996890bd6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a036b8f6da45134557fb0d921ad65fa996890bd6)bin606 -> 606 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a04c3f55de7f1242f223312e56a09825f6e0f7b3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a04c3f55de7f1242f223312e56a09825f6e0f7b3)bin285 -> 285 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a06d311d3435fbef056ca0a789c64aac243206ae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a06d311d3435fbef056ca0a789c64aac243206ae)bin420 -> 420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a081d0b5e7b52c478c41f98ea9b155f882bba63c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a081d0b5e7b52c478c41f98ea9b155f882bba63c)bin1033 -> 1033 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a099fbb9906ffe6f6f2bfc4769b2eb3cb29f0622 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a099fbb9906ffe6f6f2bfc4769b2eb3cb29f0622)bin3282 -> 3282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a0c3616fb100acc936c62debd6d6056ecd863cc3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a0c3616fb100acc936c62debd6d6056ecd863cc3)bin1345 -> 1345 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a116ed2b13b12328557db4c867f58efb30c4f159 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a116ed2b13b12328557db4c867f58efb30c4f159)bin3325 -> 3325 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a1343ffe1eacd7f8d0a4859e854961996797f229 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a1343ffe1eacd7f8d0a4859e854961996797f229)bin1423 -> 1423 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a170f2de5a4ba633f05d5aec961be317e9a30fa3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a170f2de5a4ba633f05d5aec961be317e9a30fa3)bin2982 -> 2982 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a1c6953ba4bb37f0043873e5a18ee68ef89155be (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a1c6953ba4bb37f0043873e5a18ee68ef89155be)bin2898 -> 2898 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a1c739fe0ef4addc58af253cc36070df9055fa6b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a1c739fe0ef4addc58af253cc36070df9055fa6b)bin1736 -> 1736 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a1d6401c19681d695116a82bd83986cc549aa94e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a1d6401c19681d695116a82bd83986cc549aa94e)bin1381 -> 1381 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a1d769b8521f8326e5e76dee63c51e90b8bd1667 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a1d769b8521f8326e5e76dee63c51e90b8bd1667)bin875 -> 875 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a1e3fcaf8d1b60f89c3fb450319ee6fec5eef29a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a1e3fcaf8d1b60f89c3fb450319ee6fec5eef29a)bin1043 -> 1043 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a24656c5279b05da144f5382295f35b09af0ff40 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a24656c5279b05da144f5382295f35b09af0ff40)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a24c1d72ed28123b01b3855798950d7d1fb5620a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a24c1d72ed28123b01b3855798950d7d1fb5620a)bin2159 -> 2159 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a263e50edc675f3e8c6e6839aab2ae79f0138b3a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a263e50edc675f3e8c6e6839aab2ae79f0138b3a)bin3996 -> 3996 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a287b73ff98552b92fc3dad05d6245d91fb74977 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a287b73ff98552b92fc3dad05d6245d91fb74977)bin1801 -> 1801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a28d17040d19df24262b2e15b0f17f05b6e756fd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a28d17040d19df24262b2e15b0f17f05b6e756fd)bin1182 -> 1182 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a2b789f96332db9e5ac7c80e07c9b52af0143ade (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a2b789f96332db9e5ac7c80e07c9b52af0143ade)bin2710 -> 2710 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a30b170bc655296ff8ac442fc4eadca3623854e9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a30b170bc655296ff8ac442fc4eadca3623854e9)bin6145 -> 6145 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a31be5982160cdf86fb5a97a9944ea074e80c675 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a31be5982160cdf86fb5a97a9944ea074e80c675)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a33c60ee5d7d727919f57d80995e9200b789d421 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a33c60ee5d7d727919f57d80995e9200b789d421)bin1142 -> 1142 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a34a4ee965aefbc9393f76214779ee6a20cf4365 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a34a4ee965aefbc9393f76214779ee6a20cf4365)bin913 -> 913 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a37e563aad1952bff86a163c81d07d270df17ddb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a37e563aad1952bff86a163c81d07d270df17ddb)bin2014 -> 2014 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a383ff54b89d0cfb0848b4db906ca52f9513c803 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a383ff54b89d0cfb0848b4db906ca52f9513c803)bin9193 -> 9193 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a38a64cd730070695a52c314512348d7ec050d59 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a38a64cd730070695a52c314512348d7ec050d59)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a3f5412f814dee8a9499fc6e0eac723cc297cd9b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a3f5412f814dee8a9499fc6e0eac723cc297cd9b)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a3ff98ee2d6e8579e24e57cdc1134cee04ddea91 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a3ff98ee2d6e8579e24e57cdc1134cee04ddea91)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a4032d12b9acf4b9ba17971aa230195050fc44c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a4032d12b9acf4b9ba17971aa230195050fc44c2)bin1393 -> 1393 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a406c65eaf40bad156b053c5cef8b3e62b67f773 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a406c65eaf40bad156b053c5cef8b3e62b67f773)bin3450 -> 3450 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a43a3c9d084753be9343bdda55469054d5f6054f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a43a3c9d084753be9343bdda55469054d5f6054f)bin546 -> 546 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a4483c34c872206199f126a8b6fdaa3338463f21 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a4483c34c872206199f126a8b6fdaa3338463f21)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a4fd88339a2db78870ca751f24bdf1b186778ab9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a4fd88339a2db78870ca751f24bdf1b186778ab9)bin1251 -> 1251 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a532629680bce515b90d9ad5492277329388d13b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a532629680bce515b90d9ad5492277329388d13b)bin733 -> 733 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a54440e12e52f1950993c2791599f3608d9b16f8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a54440e12e52f1950993c2791599f3608d9b16f8)bin3216 -> 3216 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a55ac9cbc13822811c672dc4f1722fd700507a79 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a55ac9cbc13822811c672dc4f1722fd700507a79)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a57fa7795d5434da734b1a329ec6c3362dfec521 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a57fa7795d5434da734b1a329ec6c3362dfec521)bin2980 -> 2980 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a6cc00a13d6028585243016674ce091d343ae685 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a6cc00a13d6028585243016674ce091d343ae685)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a6def460d387c7a39ae9909d1244cd66bf59ed30 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a6def460d387c7a39ae9909d1244cd66bf59ed30)bin2543 -> 2543 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a71a2f69e3f0dab7ae7e71f42569b38d6f5949cd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a71a2f69e3f0dab7ae7e71f42569b38d6f5949cd)bin2782 -> 2782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a71be67b7f66ec0fef1c3d878ffac682ae079d3a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a71be67b7f66ec0fef1c3d878ffac682ae079d3a)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a730d7947224be554b7b14152e406ab33c137122 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a730d7947224be554b7b14152e406ab33c137122)bin690 -> 690 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a7697ca1cfb252ba3202df3def119d14b8a1c64a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a7697ca1cfb252ba3202df3def119d14b8a1c64a)bin2734 -> 2734 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a775b30035e3db213fccbf57416dcdd97b924be2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a775b30035e3db213fccbf57416dcdd97b924be2)bin492 -> 492 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a7c9e7ae1284c1dddf31a52277f1d8406a519fe8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a7c9e7ae1284c1dddf31a52277f1d8406a519fe8)bin623 -> 623 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a7eab1c38612de990c4a40f0339cf0ed67bc2f93 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a7eab1c38612de990c4a40f0339cf0ed67bc2f93)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a7fe7c9ae05a5bc2db0f1ac04651e7ca2062dc4f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a7fe7c9ae05a5bc2db0f1ac04651e7ca2062dc4f)bin1967 -> 1967 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a801a1f83248b9be52db78a70cf0749b575c9f06 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a801a1f83248b9be52db78a70cf0749b575c9f06)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a80d59967bcc86be9151c5bf88635bd4b8dbc400 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a80d59967bcc86be9151c5bf88635bd4b8dbc400)bin1150 -> 1150 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a84e4682efc1cf0cfed306152e5ad7947c332fb3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a84e4682efc1cf0cfed306152e5ad7947c332fb3)bin489 -> 489 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a8846bae4f1a7f4f41c0d7a82c2b90be824fa1c5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a8846bae4f1a7f4f41c0d7a82c2b90be824fa1c5)bin927 -> 927 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a89373ccfc9082cadb837c7f32629889cb228c26 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a89373ccfc9082cadb837c7f32629889cb228c26)bin1749 -> 1749 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a894c65843a5100ae573ae7ea23e2c1be6e7e427 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a894c65843a5100ae573ae7ea23e2c1be6e7e427)bin2516 -> 2516 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a8d16fe74c307e5de9c35708a7162c8e99814604 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a8d16fe74c307e5de9c35708a7162c8e99814604)bin2848 -> 2848 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a8dba71ba20fe3eeeaf6a7b39d4e35ac25c46ac9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a8dba71ba20fe3eeeaf6a7b39d4e35ac25c46ac9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a928ad859ea8eeb566b2a1bf2d1363ece44a09ad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a928ad859ea8eeb566b2a1bf2d1363ece44a09ad)bin2220 -> 2220 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a9569e32dafeed47604f59dfabd4c044e6bbe968 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a9569e32dafeed47604f59dfabd4c044e6bbe968)bin620 -> 620 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a96514551a463d2f783538a9259b5676182e1035 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a96514551a463d2f783538a9259b5676182e1035)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/a983d61ce130f1d18e949fbce1a6c311efcb9fa6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/a983d61ce130f1d18e949fbce1a6c311efcb9fa6)bin326 -> 326 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aa005852056d4f069b2d8d765cf469cb51e1a985 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aa005852056d4f069b2d8d765cf469cb51e1a985)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aa1457428b526a6b6157abb88eff52a6e681a7bb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aa1457428b526a6b6157abb88eff52a6e681a7bb)bin678 -> 678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aa1ab16e780848c43f69a6e82e2284aa363af33b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aa1ab16e780848c43f69a6e82e2284aa363af33b)bin1141 -> 1141 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aa5fa6fc30946c38023ba4dec72eea29d7f7000b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aa5fa6fc30946c38023ba4dec72eea29d7f7000b)bin2096 -> 2096 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aa8019a2b6f30db61ad630c6d98c0f6e874a5040 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aa8019a2b6f30db61ad630c6d98c0f6e874a5040)bin274 -> 274 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aa86e2a8986208d5fc892e2d168aaaaf389bbf1a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aa86e2a8986208d5fc892e2d168aaaaf389bbf1a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aa8892a412da18fadf49563853a5be3dce078304 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aa8892a412da18fadf49563853a5be3dce078304)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ab8936e705961f25c59096fa5bfbe78416d3f20e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ab8936e705961f25c59096fa5bfbe78416d3f20e)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ab9c477970c64afa2b800fba517ba7e24472a8da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ab9c477970c64afa2b800fba517ba7e24472a8da)bin766 -> 766 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/abcb08a9ed551ed66f3e7bab4c7650461950bf94 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/abcb08a9ed551ed66f3e7bab4c7650461950bf94)bin5660 -> 5660 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ac13048dd1c9f8f201e6bf80856b34e580ede609 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ac13048dd1c9f8f201e6bf80856b34e580ede609)bin7269 -> 7269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ac16c12bb78db4c44ae0a166409e4cc0decd895b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ac16c12bb78db4c44ae0a166409e4cc0decd895b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ac1c7078425e7bc9496bd7ca71e5f0d15b0ccd22 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ac1c7078425e7bc9496bd7ca71e5f0d15b0ccd22)bin267 -> 267 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ac301014f5f896020a19906bd49aad00b1a72343 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ac301014f5f896020a19906bd49aad00b1a72343)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ac47230bba10fcb35f82b56d5ea43bfb4ec616da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ac47230bba10fcb35f82b56d5ea43bfb4ec616da)bin2707 -> 2707 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ac8a45deaf64fc1e09b289e746bd808917da15b3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ac8a45deaf64fc1e09b289e746bd808917da15b3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/acbea5d94577b1896a943d701c81ec82bb0e2583 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/acbea5d94577b1896a943d701c81ec82bb0e2583)bin1507 -> 1507 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ad430667b14c5ac3c3e78fac3f5d83ea3670df81 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ad430667b14c5ac3c3e78fac3f5d83ea3670df81)bin632 -> 632 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ad5346af93e961098c297c260bb84a53709b6fa3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ad5346af93e961098c297c260bb84a53709b6fa3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ad605a6b659c33b2e4d5485456caa4f5063aa3d0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ad605a6b659c33b2e4d5485456caa4f5063aa3d0)bin2460 -> 2460 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ad85c2999e89835dc9398ed05f39e45f765c6b39 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ad85c2999e89835dc9398ed05f39e45f765c6b39)bin3071 -> 3071 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ad9cc9ede4bdbb55e04868120a380a9bf0234f16 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ad9cc9ede4bdbb55e04868120a380a9bf0234f16)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/adaf3dae972c55c9045b0ebab5f7c1f1c4e4c1b0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/adaf3dae972c55c9045b0ebab5f7c1f1c4e4c1b0)bin2637 -> 2637 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/add75c4b7687cb8a6fb7f2bf3a948c871c5a07cb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/add75c4b7687cb8a6fb7f2bf3a948c871c5a07cb)bin1857 -> 1857 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ae1cb14720f7f834a523dae7e1410f1ebe9f7d37 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ae1cb14720f7f834a523dae7e1410f1ebe9f7d37)bin624 -> 624 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ae25c9b7bcb5098c55ac377a81a70a391cb56037 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ae25c9b7bcb5098c55ac377a81a70a391cb56037)bin299 -> 299 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ae5a90e5871b22a2c9e4a34cb1cf2f1a78de7561 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ae5a90e5871b22a2c9e4a34cb1cf2f1a78de7561)bin3256 -> 3256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ae6e8147ceea375a79cda29224ce2e21a916d9c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ae6e8147ceea375a79cda29224ce2e21a916d9c2)bin794 -> 794 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/aed6daad71a4bea38326449234546132f7252d9b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/aed6daad71a4bea38326449234546132f7252d9b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/af105cc68989bc5bc9c017fd438fb95bc1e061ef (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/af105cc68989bc5bc9c017fd438fb95bc1e061ef)bin106 -> 106 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/af37092574196d8321ced0a545cfe93a99974379 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/af37092574196d8321ced0a545cfe93a99974379)bin723 -> 723 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/af8b091a8e1ff84aba6096c0c8f5f129946e9621 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/af8b091a8e1ff84aba6096c0c8f5f129946e9621)bin96 -> 96 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/afb6e93aaf3e00a2ea84c638c66ddb7f6eb27c03 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/afb6e93aaf3e00a2ea84c638c66ddb7f6eb27c03)bin3253 -> 3253 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/afddd3bae1620cf8119d3a1e9695ab7599e109f2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/afddd3bae1620cf8119d3a1e9695ab7599e109f2)bin864 -> 864 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/afe0fa71ee90fdfe6fc22716661abff296a5f489 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/afe0fa71ee90fdfe6fc22716661abff296a5f489)bin1759 -> 1759 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/afe32360f0db3d6110a4dbca6529c7f94587d1c6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/afe32360f0db3d6110a4dbca6529c7f94587d1c6)bin492 -> 492 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b06310cc30d7735b6c3451d65ca7e405880de8f2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b06310cc30d7735b6c3451d65ca7e405880de8f2)bin261 -> 261 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b06af75b889dd1fdfa491ecbe042d19c86569ec2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b06af75b889dd1fdfa491ecbe042d19c86569ec2)bin2496 -> 2496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b0bbfffd9e7eb264969fe594db028d05c7da85eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b0bbfffd9e7eb264969fe594db028d05c7da85eb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b0c35745650da9e3e7f7bccc51e463e2732066ed (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b0c35745650da9e3e7f7bccc51e463e2732066ed)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b11042f695d315ad7261f9ecdffa1eb147f94d34 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b11042f695d315ad7261f9ecdffa1eb147f94d34)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b11b2288d1e26d1d07d30c83ad752f120a8dbe95 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b11b2288d1e26d1d07d30c83ad752f120a8dbe95)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b133138aad236a6ff8ea903e321e7754429c8199 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b133138aad236a6ff8ea903e321e7754429c8199)bin1812 -> 1812 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b135d2d6f204388a06ad7d3c754776d3ccb6d719 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b135d2d6f204388a06ad7d3c754776d3ccb6d719)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b175f673b10d8ea8e2542ef83b633ef839fd2fbc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b175f673b10d8ea8e2542ef83b633ef839fd2fbc)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b17e90c8fefa4eec399fb1c11147fb178a89d016 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b17e90c8fefa4eec399fb1c11147fb178a89d016)bin2282 -> 2282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b181a614c692365456cdfa6acb8857e8383d60a1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b181a614c692365456cdfa6acb8857e8383d60a1)bin2016 -> 2016 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b182969b8344de5777c29d8336655b34c1ea3bfc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b182969b8344de5777c29d8336655b34c1ea3bfc)bin1339 -> 1339 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b1a841418e3f08c837d1e0a3add2a0694f7c514d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b1a841418e3f08c837d1e0a3add2a0694f7c514d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b1c8a7e92751d4038f29e32ad445f866dcf74105 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b1c8a7e92751d4038f29e32ad445f866dcf74105)bin1066 -> 1066 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b27920486c55aa90952a05259277c87c54a72216 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b27920486c55aa90952a05259277c87c54a72216)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b27c200fc507dc66cd9df99b0bf00e700df7978b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b27c200fc507dc66cd9df99b0bf00e700df7978b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b29136b4735b672742bf0727cb4204f1d984e8e0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b29136b4735b672742bf0727cb4204f1d984e8e0)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b2bc3528895c00c2a6579b2d6eab64bed001e5d6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b2bc3528895c00c2a6579b2d6eab64bed001e5d6)bin625 -> 625 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b2ee2a9147d1442b547f699d206e4470332a3157 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b2ee2a9147d1442b547f699d206e4470332a3157)bin1921 -> 1921 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b342438fb74190ae90e154c55449fb1faabf5ca3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b342438fb74190ae90e154c55449fb1faabf5ca3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b385ad5bde641c4a3bdfdde5c681ff441daac47e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b385ad5bde641c4a3bdfdde5c681ff441daac47e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b3a8c16c61b10c1a2f43ef263d4e7249447e9daa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b3a8c16c61b10c1a2f43ef263d4e7249447e9daa)bin4939 -> 4939 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b3f0778337d526566c3399aa67ada2348cf1e4e0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b3f0778337d526566c3399aa67ada2348cf1e4e0)bin2211 -> 2211 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b3f5db3e60ca973f7755d73331ceddf324b22aca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b3f5db3e60ca973f7755d73331ceddf324b22aca)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b40639aa8ddaf3f58b3d3a33fca9aa4e2276cfd2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b40639aa8ddaf3f58b3d3a33fca9aa4e2276cfd2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b4a807a02bceab157b22f0feec4bf62d9f488770 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b4a807a02bceab157b22f0feec4bf62d9f488770)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b4cbba666c34517a6bce50c2b71e8a28b29b39f4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b4cbba666c34517a6bce50c2b71e8a28b29b39f4)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b4d592739ba751c710a59c3e9034f2128cb466bb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b4d592739ba751c710a59c3e9034f2128cb466bb)bin2518 -> 2518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b4dff5fec2c454de71f67134a897536b68c9932a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b4dff5fec2c454de71f67134a897536b68c9932a)bin3233 -> 3233 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b503210b7d52f2bec63171a69151fe24dd974cad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b503210b7d52f2bec63171a69151fe24dd974cad)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b52220f528e6ce78d0dccfd38ca16a9d2101239c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b52220f528e6ce78d0dccfd38ca16a9d2101239c)bin1150 -> 1150 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b532d86fc6d19be278d5cc1f8d9428847955cd79 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b532d86fc6d19be278d5cc1f8d9428847955cd79)bin1009 -> 1009 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b5577b2ab9838ec79282394b9284c475996d0d3a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b5577b2ab9838ec79282394b9284c475996d0d3a)bin371 -> 371 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b574e07ae27ec00462d0e422842a9838c59bcc19 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b574e07ae27ec00462d0e422842a9838c59bcc19)bin2584 -> 2584 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b5819142efc4b5b9ca8167f59d61b6ed64648bed (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b5819142efc4b5b9ca8167f59d61b6ed64648bed)bin924 -> 924 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b58344bd5f6940773561b59a6e74633211bd5b86 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b58344bd5f6940773561b59a6e74633211bd5b86)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b5a4d296d5cb8b8bbd46497573a0a76561a3e6ce (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b5a4d296d5cb8b8bbd46497573a0a76561a3e6ce)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b5a994076a8d74e70695e6fa995cb1ca773378b9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b5a994076a8d74e70695e6fa995cb1ca773378b9)bin2865 -> 2865 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b5d37e379d76c7a7dc71a7a2c4ea534fafc4379a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b5d37e379d76c7a7dc71a7a2c4ea534fafc4379a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b5e7408d0fdb2bd531f46ffbb91fa40a0e8a8536 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b5e7408d0fdb2bd531f46ffbb91fa40a0e8a8536)bin2514 -> 2514 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b5f7026801f01128c039413ae15b6d1f7a064344 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b5f7026801f01128c039413ae15b6d1f7a064344)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b6410673c58815fc9ed5fb56237db13d7b9a0caa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b6410673c58815fc9ed5fb56237db13d7b9a0caa)bin2206 -> 2206 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b64e937aea0b291a607d8315a362f3893238e7a1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b64e937aea0b291a607d8315a362f3893238e7a1)bin1192 -> 1192 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b66bb5df8ada2871ad037b066d64a8cb9e0c404e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b66bb5df8ada2871ad037b066d64a8cb9e0c404e)bin1987 -> 1987 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b6807d89241464b235084469f78a9985a88a8301 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b6807d89241464b235084469f78a9985a88a8301)bin1457 -> 1457 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b6a6a966186af9645336c6599b7e9e99c1fbb401 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b6a6a966186af9645336c6599b7e9e99c1fbb401)bin583 -> 583 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b715b868752ef2500fedfeb331cb8532a26e5acb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b715b868752ef2500fedfeb331cb8532a26e5acb)bin8049 -> 8049 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b718f44821176b5723be286f174dc27303627713 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b718f44821176b5723be286f174dc27303627713)bin2668 -> 2668 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b757a0e3e546edeb0db02344702557d15f118d78 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b757a0e3e546edeb0db02344702557d15f118d78)bin3223 -> 3223 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b7a0543b9af57c0eeec63d8e47359da458f94cf3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b7a0543b9af57c0eeec63d8e47359da458f94cf3)bin2223 -> 2223 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b7c389a4828f509e20990b583f108371d9f5d457 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b7c389a4828f509e20990b583f108371d9f5d457)bin583 -> 583 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b7ee247753085603a37f5abbff24f25639767177 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b7ee247753085603a37f5abbff24f25639767177)bin225 -> 225 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b7fdd720b7defc5d10bd61857ed923c84b99776b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b7fdd720b7defc5d10bd61857ed923c84b99776b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b830caa5d6d57bbce481c61b3d7b235d4aaf8f3e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b830caa5d6d57bbce481c61b3d7b235d4aaf8f3e)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b86eda80168493da5e10ed7f560a193912bafce4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b86eda80168493da5e10ed7f560a193912bafce4)bin1080 -> 1080 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b876353acecdd029a9a9eade9e5ed091234ae162 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b876353acecdd029a9a9eade9e5ed091234ae162)bin3321 -> 3321 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b87c9f70adf793a76cbee92988a54460263de1ef (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b87c9f70adf793a76cbee92988a54460263de1ef)bin731 -> 731 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b8864ac17add0dafd530ae2bca1c723557f5a5d5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b8864ac17add0dafd530ae2bca1c723557f5a5d5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b892987959c5ac42c3dfcaf9251233d65f388c26 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b892987959c5ac42c3dfcaf9251233d65f388c26)bin2178 -> 2178 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b89d702a5e0d520486f0da89f8b71ab50f601985 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b89d702a5e0d520486f0da89f8b71ab50f601985)bin2139 -> 2139 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b8d773af992eca56a0eafe3c607a31c40c4f8422 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b8d773af992eca56a0eafe3c607a31c40c4f8422)bin2963 -> 2963 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b8e582bfcd788e0b8a185aa28a793fff587fec40 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b8e582bfcd788e0b8a185aa28a793fff587fec40)bin1801 -> 1801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b99e0a9e5de44aeeb073dcf134c311868dd7f9c5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b99e0a9e5de44aeeb073dcf134c311868dd7f9c5)bin3191 -> 3191 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/b9e14a2a304eb3f07456587568c4de4279c5ef02 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/b9e14a2a304eb3f07456587568c4de4279c5ef02)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ba38b341f826ca1b6014556feacd1dfa54d72f3e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ba38b341f826ca1b6014556feacd1dfa54d72f3e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ba52d5288ede7c4f1203817e6d8bc59245f22b23 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ba52d5288ede7c4f1203817e6d8bc59245f22b23)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ba70d3d33a9c5273f5249e3d3ac1e5366bffc06c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ba70d3d33a9c5273f5249e3d3ac1e5366bffc06c)bin1610 -> 1610 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ba826ce46c71889c2e7142e886748f46faa1b52b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ba826ce46c71889c2e7142e886748f46faa1b52b)bin2785 -> 2785 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/baaadbff0c1e2bee028bd5df2962615121f99779 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/baaadbff0c1e2bee028bd5df2962615121f99779)bin577 -> 577 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/baba67f17b92bbb16a70443c4149cdc3498d6a3d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/baba67f17b92bbb16a70443c4149cdc3498d6a3d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bacb1ff1c07ee138f591980737132364b5ddd678 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bacb1ff1c07ee138f591980737132364b5ddd678)bin1840 -> 1840 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/baf097c15bd379effe9f6847bbf84c1ce43087da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/baf097c15bd379effe9f6847bbf84c1ce43087da)bin6226 -> 6226 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bb139c78b3252777f2a6eb1fd971015631af56ac (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bb139c78b3252777f2a6eb1fd971015631af56ac)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bb17a10bcede19bdcee1ab8f678c80b0decca17b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bb17a10bcede19bdcee1ab8f678c80b0decca17b)bin11193 -> 11193 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bb2d230152f76359631f8fb342977caf8af6cb80 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bb2d230152f76359631f8fb342977caf8af6cb80)bin1389 -> 1389 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bb5866054bd1f2a12c85bf5286db31aaea8d3029 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bb5866054bd1f2a12c85bf5286db31aaea8d3029)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bb84924900af06275c9eedc32ece9b3ef0c92352 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bb84924900af06275c9eedc32ece9b3ef0c92352)bin2071 -> 2071 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bc2b12140035a5ded8c961ea6a58bb9f07f54171 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bc2b12140035a5ded8c961ea6a58bb9f07f54171)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bc3b5fffb0c5ae2cd36aedad0983a3f2d2dacbbd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bc3b5fffb0c5ae2cd36aedad0983a3f2d2dacbbd)bin1184 -> 1184 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bc4ae09125c1f67b1b06b54690b9650b80b2416a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bc4ae09125c1f67b1b06b54690b9650b80b2416a)bin1536 -> 1536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bc66fb668d3d74d1c2a01aac756078b2dfd02963 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bc66fb668d3d74d1c2a01aac756078b2dfd02963)bin813 -> 813 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bc90cf4968b68ff450dae4b8e6595ad7a817b801 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bc90cf4968b68ff450dae4b8e6595ad7a817b801)bin469 -> 469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bcfef026a9a985385b4ba85d6d5a1019a5736112 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bcfef026a9a985385b4ba85d6d5a1019a5736112)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bd1385f028310c31db87649a9816a3fbae457d21 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bd1385f028310c31db87649a9816a3fbae457d21)bin3317 -> 3317 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bd22df898e33509ed8d72d8293c9c1a7043b67ff (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bd22df898e33509ed8d72d8293c9c1a7043b67ff)bin1214 -> 1214 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bd933e26050e12430e7a51c60553a4e1922688d3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bd933e26050e12430e7a51c60553a4e1922688d3)bin361 -> 361 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bd957a9d224d6bc3b885bdd989e57ddec39b5c93 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bd957a9d224d6bc3b885bdd989e57ddec39b5c93)bin1345 -> 1345 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bdaae85a8591396da085fda120f75f02d7971247 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bdaae85a8591396da085fda120f75f02d7971247)bin1568 -> 1568 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/be997aae7d8dffbb3b8949ce78aa0d8d5904b93d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/be997aae7d8dffbb3b8949ce78aa0d8d5904b93d)bin1812 -> 1812 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/beb20603113fe7557938053901e008dbe34b7cab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/beb20603113fe7557938053901e008dbe34b7cab)bin830 -> 830 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/beb3b62418d3ea204cc96cd0176ce18606221c59 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/beb3b62418d3ea204cc96cd0176ce18606221c59)bin2490 -> 2490 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bee4e17ac16a1ca3c4a43bda5a4fa832d61a8cf3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bee4e17ac16a1ca3c4a43bda5a4fa832d61a8cf3)bin3328 -> 3328 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/befcd928cad265d3dae2d2d5f3d88bb36da9c2c7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/befcd928cad265d3dae2d2d5f3d88bb36da9c2c7)bin879 -> 879 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bf50ede90ebed45d11524b445be92ee188cd5889 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bf50ede90ebed45d11524b445be92ee188cd5889)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bfcaafb42d26994e69183dc847a9b45bdfb8866a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bfcaafb42d26994e69183dc847a9b45bdfb8866a)bin821 -> 821 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/bfe70db8016249424b52bec5a508a84d3549ad10 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/bfe70db8016249424b52bec5a508a84d3549ad10)bin1500 -> 1500 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c021cec8f028c601c5686933c407d38bdf4145d7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c021cec8f028c601c5686933c407d38bdf4145d7)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c029b30dcaa98c1446e3fd4d7618ab91f0e0d8d8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c029b30dcaa98c1446e3fd4d7618ab91f0e0d8d8)bin273 -> 273 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c02e6b43b35edca7ebbf45a98bf026ef9664392e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c02e6b43b35edca7ebbf45a98bf026ef9664392e)bin539 -> 539 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c0692802a1d8111763e9b288f3ed6c6ccae8e6ec (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c0692802a1d8111763e9b288f3ed6c6ccae8e6ec)bin1062 -> 1062 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c06bad79571816d07e829e7963172cd57415a83f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c06bad79571816d07e829e7963172cd57415a83f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c08f5519366ad89d7f9fb587a1a59e535a97722b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c08f5519366ad89d7f9fb587a1a59e535a97722b)bin398 -> 398 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c09251148eb0b9888f55d1adb75f87f17969b7e4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c09251148eb0b9888f55d1adb75f87f17969b7e4)bin1418 -> 1418 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c0da332c7d37a2ee232d8255cebc230c651876dc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c0da332c7d37a2ee232d8255cebc230c651876dc)bin595 -> 595 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c0f76ba022c77931d721e4c30e1e316774db4f7a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c0f76ba022c77931d721e4c30e1e316774db4f7a)bin1575 -> 1575 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c11b7b570839de527401e8dd0385ab7e9880e05f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c11b7b570839de527401e8dd0385ab7e9880e05f)bin2821 -> 2821 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c16d06c0db84e3bdbbdcef634b2efb02363df0d4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c16d06c0db84e3bdbbdcef634b2efb02363df0d4)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c176f2f2b2de5497d460f94689d1ba5bcda44927 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c176f2f2b2de5497d460f94689d1ba5bcda44927)bin960 -> 960 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c1787a9163d4a19d694a312a6f788dd6dab29ebb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c1787a9163d4a19d694a312a6f788dd6dab29ebb)bin5777 -> 5777 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c17a64d4605b4b5c252fbda6e91d50c460e8375f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c17a64d4605b4b5c252fbda6e91d50c460e8375f)bin634 -> 634 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c1846c1f478db3d987bd587517fdf2801f03a393 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c1846c1f478db3d987bd587517fdf2801f03a393)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c186fa47779d9293dfa549d066a505d9e0732b42 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c186fa47779d9293dfa549d066a505d9e0732b42)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c19c7dace0c77127bcaf2d81b31cddff10cdce49 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c19c7dace0c77127bcaf2d81b31cddff10cdce49)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c1af382451ea14407f074635d4860f54e00e9c5d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c1af382451ea14407f074635d4860f54e00e9c5d)bin5759 -> 5759 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c1de8e15b8678c69f9cf03dc06817195e8ce9386 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c1de8e15b8678c69f9cf03dc06817195e8ce9386)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c1e985e116a9e7d0aef15b15a2fd7ea26ddc4958 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c1e985e116a9e7d0aef15b15a2fd7ea26ddc4958)bin2484 -> 2484 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c1f77fa6b080ccc8e25c97536001ca20e0cb28db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c1f77fa6b080ccc8e25c97536001ca20e0cb28db)bin332 -> 332 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c222f7ef089c57a50858194c25ace0e1faece587 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c222f7ef089c57a50858194c25ace0e1faece587)bin264 -> 264 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c22df640c2b0b17aefb4524507cac64889df09ae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c22df640c2b0b17aefb4524507cac64889df09ae)bin2026 -> 2026 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c25b4ef4a6d79efe0c7707d3ee875dea8c6d5b75 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c25b4ef4a6d79efe0c7707d3ee875dea8c6d5b75)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c276619813c3f9212518d191c100f18829b0fb7c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c276619813c3f9212518d191c100f18829b0fb7c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c27cc215072a47c2af47c4e624038be5123ae727 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c27cc215072a47c2af47c4e624038be5123ae727)bin804 -> 804 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c281207c4a364843b25292d9bd492b2953ea4837 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c281207c4a364843b25292d9bd492b2953ea4837)bin546 -> 546 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c2874cdd3ce2588e9d12f4a87355110701f71342 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c2874cdd3ce2588e9d12f4a87355110701f71342)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c2c8a163add45b5d5f3a934b5536cf7775259bad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c2c8a163add45b5d5f3a934b5536cf7775259bad)bin2125 -> 2125 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c2d7ed7fa3c3b2c59273abb43105c9a85a59d15b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c2d7ed7fa3c3b2c59273abb43105c9a85a59d15b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c2d8b6031f61d6f67254846c84d5d514a9c714cf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c2d8b6031f61d6f67254846c84d5d514a9c714cf)bin492 -> 492 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c32ff265f89f02cac564fb83a32fb2ef5f22357c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c32ff265f89f02cac564fb83a32fb2ef5f22357c)bin1603 -> 1603 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c394f4ceff5a9a3eb4c8beb156c57f8f00c1a404 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c394f4ceff5a9a3eb4c8beb156c57f8f00c1a404)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c39e910e0bbf2276a5f8b95e30bcf473bd13c066 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c39e910e0bbf2276a5f8b95e30bcf473bd13c066)bin853 -> 853 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c3e87ebafd8db7fb66f307530edd283bef452906 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c3e87ebafd8db7fb66f307530edd283bef452906)bin3241 -> 3241 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c4189f6a1be9478427468580ce846e279461b6df (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c4189f6a1be9478427468580ce846e279461b6df)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c41aca37b892a4f6eefad988dde6c241eda33ca9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c41aca37b892a4f6eefad988dde6c241eda33ca9)bin524 -> 524 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c43da4276f593025f4b7a05861b0e00fdb6f63af (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c43da4276f593025f4b7a05861b0e00fdb6f63af)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c4491be97a01350d07e6d927f2474945fb632635 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c4491be97a01350d07e6d927f2474945fb632635)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c458b31475abf1f01ac2442539fbe9f7a425aefa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c458b31475abf1f01ac2442539fbe9f7a425aefa)bin1457 -> 1457 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c498594519fd64d28b03237bb76382fa416641ab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c498594519fd64d28b03237bb76382fa416641ab)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c4a9eeda6cf6f9f6eb895037d99b90651773f776 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c4a9eeda6cf6f9f6eb895037d99b90651773f776)bin3073 -> 3073 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c4f101079502a8f71a00e20044a9fbc5d1e21e38 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c4f101079502a8f71a00e20044a9fbc5d1e21e38)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c4f7a33197c8af23e16834485777fd46e95495e1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c4f7a33197c8af23e16834485777fd46e95495e1)bin2891 -> 2891 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c505f1bf51a02f2abd69a03feda671723ad0563b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c505f1bf51a02f2abd69a03feda671723ad0563b)bin2372 -> 2372 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c50efd86929606fee862ff671b339db309c6ded4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c50efd86929606fee862ff671b339db309c6ded4)bin366 -> 366 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c56569eca2e444272b0455b2789d0581173edaf4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c56569eca2e444272b0455b2789d0581173edaf4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c576393103dfaf6762960c6af2d1a05a221186db (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c576393103dfaf6762960c6af2d1a05a221186db)bin1583 -> 1583 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c5a4e43e9dc16dd58052f1b7a22f2c410c7c47ba (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c5a4e43e9dc16dd58052f1b7a22f2c410c7c47ba)bin4582 -> 4582 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c5a8702688bb9cb0d3647629e2608a8ce7b66259 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c5a8702688bb9cb0d3647629e2608a8ce7b66259)bin662 -> 662 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c5bb4ee17a8bf3b1d3bc243b96c3aac5690bf940 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c5bb4ee17a8bf3b1d3bc243b96c3aac5690bf940)bin2469 -> 2469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c5bda9711617522864c8223f5f49b1bc8e5960c1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c5bda9711617522864c8223f5f49b1bc8e5960c1)bin2289 -> 2289 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c5d2c1afc591b3c7504e77f8cdaf9e879dbeccd4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c5d2c1afc591b3c7504e77f8cdaf9e879dbeccd4)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c5db5393799577aae57242edf075bd0f207e083b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c5db5393799577aae57242edf075bd0f207e083b)bin2485 -> 2485 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c6357c2e548fb60874550e6db4d139cadd9fdf28 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c6357c2e548fb60874550e6db4d139cadd9fdf28)bin1856 -> 1856 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c648716d4b33bc6d11a5dccbfff4d353afab6ff2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c648716d4b33bc6d11a5dccbfff4d353afab6ff2)bin3053 -> 3053 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c648d418d92d50174d6423d817fd9670ed3465be (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c648d418d92d50174d6423d817fd9670ed3465be)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c656779f655e0f8cbeab1f7ea563d76332156165 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c656779f655e0f8cbeab1f7ea563d76332156165)bin1544 -> 1544 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c66728837c7309106bb0c729f9586f8c67086eae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c66728837c7309106bb0c729f9586f8c67086eae)bin801 -> 801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c67f1f8340ba1b99c39564b48ad9df499ef2bb7f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c67f1f8340ba1b99c39564b48ad9df499ef2bb7f)bin2851 -> 2851 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c6c47abeaf3bd2a47fc3eebc34731cdf37e9d296 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c6c47abeaf3bd2a47fc3eebc34731cdf37e9d296)bin3352 -> 3352 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c6c56e1d10abee53544eb02398867060a2e298eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c6c56e1d10abee53544eb02398867060a2e298eb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c72eebadd197ad939c383e1b33a77a04f6cf0e81 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c72eebadd197ad939c383e1b33a77a04f6cf0e81)bin3259 -> 3259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c746490c3a9ebc30df388c8e2c58f8d97a4dc89d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c746490c3a9ebc30df388c8e2c58f8d97a4dc89d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c770e10f0c86bae6af84d9f4f2bf9c06bf9f86c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c770e10f0c86bae6af84d9f4f2bf9c06bf9f86c2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c7ad2f6267d232dae0fec4c8e0691c7cdf6d6797 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c7ad2f6267d232dae0fec4c8e0691c7cdf6d6797)bin896 -> 896 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c7bf755f265890d26fa931e36ac352a20d2ebcda (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c7bf755f265890d26fa931e36ac352a20d2ebcda)bin3352 -> 3352 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c7c9c3a4b7c5042b68b71a4deba8403fcdb898a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c7c9c3a4b7c5042b68b71a4deba8403fcdb898a5)bin801 -> 801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c7e3ffc92f3383fc64769311db156ef5e25d506f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c7e3ffc92f3383fc64769311db156ef5e25d506f)bin711 -> 711 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c824c784f793eb7cfe59882beec84e588373e62d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c824c784f793eb7cfe59882beec84e588373e62d)bin909 -> 909 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c8636a1773ae5fae948f6c24a5568db4522e8097 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c8636a1773ae5fae948f6c24a5568db4522e8097)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c868da856fd94729c393612217743a2742411954 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c868da856fd94729c393612217743a2742411954)bin4892 -> 4892 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c86c98f504603f77cc2fe0e480569a93bacf939a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c86c98f504603f77cc2fe0e480569a93bacf939a)bin2110 -> 2110 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c8f8ffc626b6c4efe1c9542c2e9b4da70faa6a94 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c8f8ffc626b6c4efe1c9542c2e9b4da70faa6a94)bin1213 -> 1213 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c8fbf98f5df2c3027591b2d2183b8c791f1593ae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c8fbf98f5df2c3027591b2d2183b8c791f1593ae)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c92b6cacff08d122b69b4b8b0a87713a6be2485e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c92b6cacff08d122b69b4b8b0a87713a6be2485e)bin3022 -> 3022 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c9493905f1321e488049116c78ae3ee91cac452d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c9493905f1321e488049116c78ae3ee91cac452d)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c94f223716c436630103b328a36ca8bc8a5fd9b2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c94f223716c436630103b328a36ca8bc8a5fd9b2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c99a2813b22c19470fc1bd6a5dc48a1aebb61597 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c99a2813b22c19470fc1bd6a5dc48a1aebb61597)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c99b7205e30b9f93fb8b9d665623706b1f724ad0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c99b7205e30b9f93fb8b9d665623706b1f724ad0)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c9a6076647b3907803cb8f1241ca62fd09217ea5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c9a6076647b3907803cb8f1241ca62fd09217ea5)bin1146 -> 1146 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/c9ae4dd1079954408ab4bc4cf30e75270d4f45d9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/c9ae4dd1079954408ab4bc4cf30e75270d4f45d9)bin2362 -> 2362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ca6de6e576327d2442dd00f9e17bb929e63be2f3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ca6de6e576327d2442dd00f9e17bb929e63be2f3)bin1648 -> 1648 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85ac63bf1d69107b1299388a97199c683c7335 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ca85ac63bf1d69107b1299388a97199c683c7335)bin3139 -> 3139 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85b8286bc314690ab2f5e470560eaec142353b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ca85b8286bc314690ab2f5e470560eaec142353b)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b)bin35 -> 35 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ca879c414ef2d22ce663f9099143376a3cabc55a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ca879c414ef2d22ce663f9099143376a3cabc55a)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cac468c453df2c890244411aebaeb9ab8d29fcc1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cac468c453df2c890244411aebaeb9ab8d29fcc1)bin1533 -> 1533 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cad8e3905fbe954e2484c4eb146bd2c888162958 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cad8e3905fbe954e2484c4eb146bd2c888162958)bin494 -> 494 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb000cff5bcf948f81ec610caa5c11c4228aa511 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb000cff5bcf948f81ec610caa5c11c4228aa511)bin1658 -> 1658 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb289561ed87879f55e57412daaf8f0bdd88b703 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb289561ed87879f55e57412daaf8f0bdd88b703)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb28d541561d9f131ad4d2e69a9a34080c6c8424 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb28d541561d9f131ad4d2e69a9a34080c6c8424)bin912 -> 912 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb502d2a1eaffa58aa48475a9e60df788c51bc26 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb502d2a1eaffa58aa48475a9e60df788c51bc26)bin865 -> 865 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb6d03c75aa49e0dc5717fb35e317be8ca5e262e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb6d03c75aa49e0dc5717fb35e317be8ca5e262e)bin1423 -> 1423 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb85d47c731be7758fbce010e3bc169ec4a27ab9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb85d47c731be7758fbce010e3bc169ec4a27ab9)bin469 -> 469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a439be095b9f2093278fc50e010802b895b46 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb8a439be095b9f2093278fc50e010802b895b46)bin732 -> 732 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a488f70e1bb61968bc4177c15f974a67a6a6e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb8a488f70e1bb61968bc4177c15f974a67a6a6e)bin1432 -> 1432 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cb9f7a0231d58cbb15d0969ff477a9f0a3b5976f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cb9f7a0231d58cbb15d0969ff477a9f0a3b5976f)bin517 -> 517 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cbb34d2126f1d488913d5aab3d267916feb1c354 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cbb34d2126f1d488913d5aab3d267916feb1c354)bin456 -> 456 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cc0fe40536e15df5cfe187624bfe87a70dd1efb2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cc0fe40536e15df5cfe187624bfe87a70dd1efb2)bin650 -> 650 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cc396914a5ff0f38a83f8b7cc0f8657eb50387da (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cc396914a5ff0f38a83f8b7cc0f8657eb50387da)bin432 -> 432 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cc69b834226d1205ab48f2562f424e63fc88ac21 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cc69b834226d1205ab48f2562f424e63fc88ac21)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cca616529f1ca1d7d9c94e8d45d4f1af8dddaad2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cca616529f1ca1d7d9c94e8d45d4f1af8dddaad2)bin1827 -> 1827 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cce6ee4abe10ec37f2a4953de7cb9b81a85c841f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cce6ee4abe10ec37f2a4953de7cb9b81a85c841f)bin1369 -> 1369 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cd4cbdcd58fb420e5b64d8f08ed44b5b98cb0183 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cd4cbdcd58fb420e5b64d8f08ed44b5b98cb0183)bin1210 -> 1210 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cd5d746adc30c5c5fd1c2ec537b762e702b4148d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cd5d746adc30c5c5fd1c2ec537b762e702b4148d)bin370 -> 370 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cd85c3ca23a5c960895dbf641de165ed0821125a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cd85c3ca23a5c960895dbf641de165ed0821125a)bin716 -> 716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cd94419f4ba2e265d9e689a9e9fb66192e9850eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cd94419f4ba2e265d9e689a9e9fb66192e9850eb)bin1953 -> 1953 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cdbd2e41aaff682db391d12dca27622da650346a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cdbd2e41aaff682db391d12dca27622da650346a)bin813 -> 813 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cdca6864de4b5d01d32c1c969701e9543c2f1527 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cdca6864de4b5d01d32c1c969701e9543c2f1527)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ce87031b8fab977df7d6564eba7a5fa98856762b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ce87031b8fab977df7d6564eba7a5fa98856762b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ceb444abf4450f61a68e91109c742d4643162d62 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ceb444abf4450f61a68e91109c742d4643162d62)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cecbcd56dbee1db0260bad220779f5f9c739fe59 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cecbcd56dbee1db0260bad220779f5f9c739fe59)bin1678 -> 1678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ced21716a1fec3b5ddc92631b13c20260bd2035c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ced21716a1fec3b5ddc92631b13c20260bd2035c)bin2213 -> 2213 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cf288d8faa061f60336b14b2b979caa3ef87574b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cf288d8faa061f60336b14b2b979caa3ef87574b)bin3059 -> 3059 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cf37f5bb55bffc5c3f537e22e2e1d2e9d4efb919 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cf37f5bb55bffc5c3f537e22e2e1d2e9d4efb919)bin3296 -> 3296 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cf5fb033a7a76ace41f41f7dd38a55fcaa8ef3b0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cf5fb033a7a76ace41f41f7dd38a55fcaa8ef3b0)bin725 -> 725 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cf7d8a52d2fc863f7ee62d1d74cbdc1e6faa99d0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cf7d8a52d2fc863f7ee62d1d74cbdc1e6faa99d0)bin678 -> 678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cfb290d991059c53e64466f1d94ecc79cd074072 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cfb290d991059c53e64466f1d94ecc79cd074072)bin5864 -> 5864 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cfbd90626c899729751fc6fde9583168a9e208fa (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cfbd90626c899729751fc6fde9583168a9e208fa)bin745 -> 745 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cfd9b8cbbffd5dc2a7b782b6568c41cbeacb44c1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cfd9b8cbbffd5dc2a7b782b6568c41cbeacb44c1)bin2712 -> 2712 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cffa37be5c0916ee24ea90aecbf5ad1a6fd7f363 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cffa37be5c0916ee24ea90aecbf5ad1a6fd7f363)bin1407 -> 1407 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/cffce0cc162001a4b0f34dad86838024bad8ac9c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/cffce0cc162001a4b0f34dad86838024bad8ac9c)bin1273 -> 1273 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-empty.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-empty.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-extreme.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-extreme.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-complete-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-complete-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing-but-extension.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing-but-extension.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-space.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-space.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-uppercase.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-uppercase.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-last-chunk-with-extension.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-last-chunk-with-extension.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-extension.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-extension.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-trailer.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-trailer.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-sixteen.hex (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-sixteen.hex)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-extensions.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-extensions.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-trailers.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-trailers.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-complete-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/content-length-complete-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-missing.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/content-length-missing.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-space.txt (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-space.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d000f198ec9e35345780f40e58f70d61ced83ae6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d000f198ec9e35345780f40e58f70d61ced83ae6)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d0141b447a2d3fb58263eb9dbdd096fde85397d3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d0141b447a2d3fb58263eb9dbdd096fde85397d3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d04d54aa71166bbb60476f9c81922a3a29c4ed7d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d04d54aa71166bbb60476f9c81922a3a29c4ed7d)bin579 -> 579 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d05a08f754dadef6a7e15bb71acd05731ea541e8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d05a08f754dadef6a7e15bb71acd05731ea541e8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d0e29eac833be5435cc8f54a54a2239a38eaad2e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d0e29eac833be5435cc8f54a54a2239a38eaad2e)bin1042 -> 1042 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d0f106b9b5d0f29c20d8c1efb964aa230a73c190 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d0f106b9b5d0f29c20d8c1efb964aa230a73c190)bin738 -> 738 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d10ed8aeb3f6c0a639ff880f1bd745677b7da20c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d10ed8aeb3f6c0a639ff880f1bd745677b7da20c)bin2530 -> 2530 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d16dce42cd7bd19781bb01de809e8f15ac730ad9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d16dce42cd7bd19781bb01de809e8f15ac730ad9)bin2720 -> 2720 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d19afc492f7674099f2d44e658bb61a9bde7125f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d19afc492f7674099f2d44e658bb61a9bde7125f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d1c268862a4e3d9ad3aa51d678af02df9e17159e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d1c268862a4e3d9ad3aa51d678af02df9e17159e)bin3255 -> 3255 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d1d37d547d2833b61a02b1ac113bc1bac7930030 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d1d37d547d2833b61a02b1ac113bc1bac7930030)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d1d78d93f41a09207dd2475e6575e43fd3183968 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d1d78d93f41a09207dd2475e6575e43fd3183968)bin1965 -> 1965 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d21234e05d41de5cda7048b898be82fa3db481cc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d21234e05d41de5cda7048b898be82fa3db481cc)bin518 -> 518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d2253162d3b13ebe72a2394f5ebd0f83f2b239e8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d2253162d3b13ebe72a2394f5ebd0f83f2b239e8)bin3305 -> 3305 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d227ef0a21d07311fca44eb706856833cd485b94 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d227ef0a21d07311fca44eb706856833cd485b94)bin698 -> 698 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d290f676e817cd8ce510d00c34843481302f55eb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d290f676e817cd8ce510d00c34843481302f55eb)bin1075 -> 1075 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d2c720a0f23296e525b5094147115a403d598ab8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d2c720a0f23296e525b5094147115a403d598ab8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d3235f4eec3cd13e45480412f9a14b6f1e655a3d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d3235f4eec3cd13e45480412f9a14b6f1e655a3d)bin1207 -> 1207 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d368327adcb27d554a4c2740d4ddddebace773c8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d368327adcb27d554a4c2740d4ddddebace773c8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d37317dd1aece6ee776f9f3126dd674e05b3f17b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d37317dd1aece6ee776f9f3126dd674e05b3f17b)bin4351 -> 4351 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d481cef7071f30d512148e9195ab48f128ab24bb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d481cef7071f30d512148e9195ab48f128ab24bb)bin286 -> 286 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d488538356f2a6fc04cc16ce41a58a7aa76d77de (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d488538356f2a6fc04cc16ce41a58a7aa76d77de)bin3067 -> 3067 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d499b3adc12d91b30fd026d3b3eacd6df504a74f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d499b3adc12d91b30fd026d3b3eacd6df504a74f)bin1415 -> 1415 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d4a6ac20014be23d31b0da3a2c0c27f9182ca2bd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d4a6ac20014be23d31b0da3a2c0c27f9182ca2bd)bin2610 -> 2610 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d4aced8109ddaf71f89d6af3ebbb8edb94746980 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d4aced8109ddaf71f89d6af3ebbb8edb94746980)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d4ad97e423c7ed71863fcd2f238d3070eacecd13 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d4ad97e423c7ed71863fcd2f238d3070eacecd13)bin8650 -> 8650 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d4bef91244896042a1d95b67090d526d3255c533 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d4bef91244896042a1d95b67090d526d3255c533)bin704 -> 704 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d50108e40e3de5887c58f5d53b11539d2ccbc198 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d50108e40e3de5887c58f5d53b11539d2ccbc198)bin380 -> 380 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d51451e4ad45da7e36e5d43203f338c921496499 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d51451e4ad45da7e36e5d43203f338c921496499)bin917 -> 917 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d53658121e5e99803680ca88a0bd6179b8debf8e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d53658121e5e99803680ca88a0bd6179b8debf8e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d5e2ca0e7e293d5cb25c12b28ddc99236b7b067d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d5e2ca0e7e293d5cb25c12b28ddc99236b7b067d)bin881 -> 881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d5f4bc7d1e8308a33e0d7937ece67746f3733069 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d5f4bc7d1e8308a33e0d7937ece67746f3733069)bin2018 -> 2018 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d6174a32ae9db25c80fa78bff59cc89c4ad0d402 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d6174a32ae9db25c80fa78bff59cc89c4ad0d402)bin1216 -> 1216 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d6261546b76796d80f3ae6823f5e95178b0e0139 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d6261546b76796d80f3ae6823f5e95178b0e0139)bin881 -> 881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d64b0a422a25a1f7b59cecbbd2ba5b4e35f9f7ad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d64b0a422a25a1f7b59cecbbd2ba5b4e35f9f7ad)bin11208 -> 11208 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d6a3b98cc6db7d9e8dfb52de5a8e3db58cbec32b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d6a3b98cc6db7d9e8dfb52de5a8e3db58cbec32b)bin1128 -> 1128 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d6a4a3bcbcfeffd102da99c680c2cbff233d4d4a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d6a4a3bcbcfeffd102da99c680c2cbff233d4d4a)bin5602 -> 5602 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d6da5627bf215a09916866a76a62649848bef6f8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d6da5627bf215a09916866a76a62649848bef6f8)bin572 -> 572 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d74833baf7bbf615390b45e2852116ef22544859 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d74833baf7bbf615390b45e2852116ef22544859)bin2559 -> 2559 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7876004d6f2a123ae090c85be678d7c4ded022d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7876004d6f2a123ae090c85be678d7c4ded022d)bin1568 -> 1568 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7a009b36da760336ab9f8a3b1f48ab4040d847d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7a009b36da760336ab9f8a3b1f48ab4040d847d)bin861 -> 861 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7a28d8636686b3da363a750398ee301566a9703 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7a28d8636686b3da363a750398ee301566a9703)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7bfc6d77909586b45b8e165e7b42803accdcbd1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7bfc6d77909586b45b8e165e7b42803accdcbd1)bin809 -> 809 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7c55fd80e4ba44a659d60a37e6baec65443d19c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7c55fd80e4ba44a659d60a37e6baec65443d19c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7ce616f4385e22d36de2513293fc39c49ae9583 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7ce616f4385e22d36de2513293fc39c49ae9583)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7ceb6c5f6220acff1e4a760283e5209498f833c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7ceb6c5f6220acff1e4a760283e5209498f833c)bin7030 -> 7030 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7d30278407392337f4ca1d72ba41cfca0bb590b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7d30278407392337f4ca1d72ba41cfca0bb590b)bin373 -> 373 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d7e23282392e62b36a2f0b703ccb56bb9a4bdeab (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d7e23282392e62b36a2f0b703ccb56bb9a4bdeab)bin2115 -> 2115 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d856822735433bee758a10a9afa35556398368e1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d856822735433bee758a10a9afa35556398368e1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d86c92eecedab58002a1f447986a22e275d23d2b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d86c92eecedab58002a1f447986a22e275d23d2b)bin1783 -> 1783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d8abb88028a12ccc417dd258d8a3707a5b25ad47 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d8abb88028a12ccc417dd258d8a3707a5b25ad47)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d8ba26884621fbefe05964100f600247bee3836b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d8ba26884621fbefe05964100f600247bee3836b)bin1451 -> 1451 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d9319adcb166654caff313609af6344dd4e75a84 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d9319adcb166654caff313609af6344dd4e75a84)bin2865 -> 2865 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d9c945b88bdf68bde898feee29cc158179aeb796 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d9c945b88bdf68bde898feee29cc158179aeb796)bin1455 -> 1455 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d9d6bac9d2b3b792c6fde8dd69221640a489b8a9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d9d6bac9d2b3b792c6fde8dd69221640a489b8a9)bin1071 -> 1071 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d9dfe84a38f35fff3bea0e566e7b516729257c98 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d9dfe84a38f35fff3bea0e566e7b516729257c98)bin3294 -> 3294 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/d9f307eaa4f662dc1fcf2eec9dc9c6fe2b260e2f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/d9f307eaa4f662dc1fcf2eec9dc9c6fe2b260e2f)bin3262 -> 3262 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/da4bc2b2df03fd097a14f355ceab36a694219851 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/da4bc2b2df03fd097a14f355ceab36a694219851)bin253 -> 253 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/da6f692c8912e84336986846a288af337ed83caf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/da6f692c8912e84336986846a288af337ed83caf)bin877 -> 877 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/da8018b367070ae882015b2f93ab7e2a1d939f0b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/da8018b367070ae882015b2f93ab7e2a1d939f0b)bin848 -> 848 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/da86b978c227b8a0c24d9a4a70d11563eb3ef8c2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/da86b978c227b8a0c24d9a4a70d11563eb3ef8c2)bin413 -> 413 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/da9c0aefe23b3f505a19371371a44bcd7dfa9b6a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/da9c0aefe23b3f505a19371371a44bcd7dfa9b6a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dab3a73e999bc7c5273eb1e08d40cbdaaac8550b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dab3a73e999bc7c5273eb1e08d40cbdaaac8550b)bin807 -> 807 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dad1ede5b925a186c6087e67aa4ab450f6ae9b24 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dad1ede5b925a186c6087e67aa4ab450f6ae9b24)bin417 -> 417 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/daf5d9cfb5e7f0da5af65d9fed2422a52b656f21 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/daf5d9cfb5e7f0da5af65d9fed2422a52b656f21)bin3321 -> 3321 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/db136292270f6c928ebdd53262d3bdab0e753d00 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/db136292270f6c928ebdd53262d3bdab0e753d00)bin6951 -> 6951 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/db405222557592d5b4aa50610fafdeff47685191 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/db405222557592d5b4aa50610fafdeff47685191)bin1546 -> 1546 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/db69447ed2083ac23d55f845e517fafd90e21f2a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/db69447ed2083ac23d55f845e517fafd90e21f2a)bin2217 -> 2217 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/db72ba8f0df8a901a8dd4d4780ec1ce41b7358cc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/db72ba8f0df8a901a8dd4d4780ec1ce41b7358cc)bin959 -> 959 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dbbefb0c7aacd56c7eb73862549b98c499594d39 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dbbefb0c7aacd56c7eb73862549b98c499594d39)bin15706 -> 15706 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dbc086bdd4d85ee688f1b87b4d5ad6c7ec56a12e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dbc086bdd4d85ee688f1b87b4d5ad6c7ec56a12e)bin1577 -> 1577 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dbff7498811cc256f918cd7e67710f3c86ceb9b9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dbff7498811cc256f918cd7e67710f3c86ceb9b9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dc58f1ebf0a1ebd7c11b9dea8d7f70815cae67d2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dc58f1ebf0a1ebd7c11b9dea8d7f70815cae67d2)bin881 -> 881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dc906cf8af6962aa391c685b3fc3f627d4a374b2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dc906cf8af6962aa391c685b3fc3f627d4a374b2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dc94bf96c530e15ee60d653e3e4e30e64426abf9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dc94bf96c530e15ee60d653e3e4e30e64426abf9)bin2716 -> 2716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dcaa1770d887e152117b36b5b6981fdff22090cd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dcaa1770d887e152117b36b5b6981fdff22090cd)bin361 -> 361 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dd2410027423c4a44fcad91057e0085b65f0c15f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dd2410027423c4a44fcad91057e0085b65f0c15f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dd9018cfcb567d95e588bcbfff225b0c6026b171 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dd9018cfcb567d95e588bcbfff225b0c6026b171)bin3247 -> 3247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dda82a1631514c4650bbab33d8f3c670e623bad0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dda82a1631514c4650bbab33d8f3c670e623bad0)bin399 -> 399 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ddb521e4dbc67418696f336e9a695536e2073c19 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ddb521e4dbc67418696f336e9a695536e2073c19)bin1182 -> 1182 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ddb6ad231d6d71144f7ed4ff9b56b435c5b72203 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ddb6ad231d6d71144f7ed4ff9b56b435c5b72203)bin3288 -> 3288 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dde38f77bd1d0e61bb3a4ad83359186b6269c982 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dde38f77bd1d0e61bb3a4ad83359186b6269c982)bin745 -> 745 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/de42f931a3763f52cf725706a56b6d538b46867c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/de42f931a3763f52cf725706a56b6d538b46867c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/de6fd35beb97353488c6e65854f8c5af5d9d8171 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/de6fd35beb97353488c6e65854f8c5af5d9d8171)bin1397 -> 1397 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dee6a84a57aa64e11758d0173cfc488d2e0e40fd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dee6a84a57aa64e11758d0173cfc488d2e0e40fd)bin3326 -> 3326 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/df24d7b2d2f1b9ce714b4c83b17c112b20a661b5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/df24d7b2d2f1b9ce714b4c83b17c112b20a661b5)bin2030 -> 2030 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/df59b0a84b42a5d792b9201a6bf264b9a595f8f0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/df59b0a84b42a5d792b9201a6bf264b9a595f8f0)bin1064 -> 1064 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/df621bf16d6bc0603537264fc993ed129ae7d2d9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/df621bf16d6bc0603537264fc993ed129ae7d2d9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/df7e80c7c74d181001c1dcd533fd1ab1557ce94a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/df7e80c7c74d181001c1dcd533fd1ab1557ce94a)bin3354 -> 3354 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dfb73a50f96cd14d20effebaf60c99bada51ada5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dfb73a50f96cd14d20effebaf60c99bada51ada5)bin3099 -> 3099 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dfe96aa480981893d8cc887260cd8ed506494976 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dfe96aa480981893d8cc887260cd8ed506494976)bin881 -> 881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/dff3c984b282d7604ab28c27f9f3eebed7284e61 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/dff3c984b282d7604ab28c27f9f3eebed7284e61)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e01c15f6a67eb9a0f698233f29c20ec68b30ed80 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e01c15f6a67eb9a0f698233f29c20ec68b30ed80)bin640 -> 640 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e02249cb56f18e634296a894b05125cd870c3d05 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e02249cb56f18e634296a894b05125cd870c3d05)bin3259 -> 3259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e02bc29cb123ed37569cfc6065787a6b09adf131 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e02bc29cb123ed37569cfc6065787a6b09adf131)bin340 -> 340 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e035b8453a82931c1b7efef8722c37e6a307cacc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e035b8453a82931c1b7efef8722c37e6a307cacc)bin1929 -> 1929 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e040e4767e3c6d8a95299952a9230858ab726a4b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e040e4767e3c6d8a95299952a9230858ab726a4b)bin875 -> 875 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e05b9fd89ee43bcc0583a475533a91f0ae182e07 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e05b9fd89ee43bcc0583a475533a91f0ae182e07)bin923 -> 923 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e1638dcb42ae6764dd025769120ec9d4b55fe91d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e1638dcb42ae6764dd025769120ec9d4b55fe91d)bin2716 -> 2716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e17c96dd673a5d4e8ee7f408d3858839cbeab9e1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e17c96dd673a5d4e8ee7f408d3858839cbeab9e1)bin633 -> 633 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e17d1a1fc45d209613f52da7ddd797eb77424347 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e17d1a1fc45d209613f52da7ddd797eb77424347)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e188503fbb489bdbf90176bf65862c28b4bd00dc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e188503fbb489bdbf90176bf65862c28b4bd00dc)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e1e1194b121200ff0c676f432c43b7c8facdff5e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e1e1194b121200ff0c676f432c43b7c8facdff5e)bin294 -> 294 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e205c50d66cd6175186c8145fbce58e043aa38a2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e205c50d66cd6175186c8145fbce58e043aa38a2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e2455299c5523e3d646df51d401b6f2eff77cb23 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e2455299c5523e3d646df51d401b6f2eff77cb23)bin803 -> 803 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e2982cbc3167ea738f9b5f61c38d6dde7a693671 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e2982cbc3167ea738f9b5f61c38d6dde7a693671)bin787 -> 787 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e29d46edbdfd06b8ff61ab2fea03dbf859f90ec2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e29d46edbdfd06b8ff61ab2fea03dbf859f90ec2)bin264 -> 264 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e301e226ba4e3b2904c95edbc18589c6bfe41564 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e301e226ba4e3b2904c95edbc18589c6bfe41564)bin795 -> 795 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e3318fcbc348681d63c88ea44d586ec89cfc3689 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e3318fcbc348681d63c88ea44d586ec89cfc3689)bin2459 -> 2459 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e33d581367957ab567e7f8769c30f00f08569624 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e33d581367957ab567e7f8769c30f00f08569624)bin886 -> 886 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e344166ede7c1c0d097f8799fcbe2efd806a9868 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e344166ede7c1c0d097f8799fcbe2efd806a9868)bin923 -> 923 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e3706ba893c32e7f72669ab19a3fe854980cb078 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e3706ba893c32e7f72669ab19a3fe854980cb078)bin1184 -> 1184 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e386cadb8ccabc602345f513dbe04aa71edc87d9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e386cadb8ccabc602345f513dbe04aa71edc87d9)bin2420 -> 2420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e41831a48273dbbd34ccda457399b01c38a42dbb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e41831a48273dbbd34ccda457399b01c38a42dbb)bin3291 -> 3291 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e440477306ae187968b2be6639dabb637b748b93 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e440477306ae187968b2be6639dabb637b748b93)bin3244 -> 3244 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e46e0bc022cc0cf58407db3e4cb425b986af79a1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e46e0bc022cc0cf58407db3e4cb425b986af79a1)bin1554 -> 1554 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e49c5572811ac4ace9d7b3f6bc911694e3a77a09 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e49c5572811ac4ace9d7b3f6bc911694e3a77a09)bin1645 -> 1645 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e4be7168d1e1c3a7db2ac87034a0e59f57ba4abd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e4be7168d1e1c3a7db2ac87034a0e59f57ba4abd)bin5108 -> 5108 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e4eea1d7f810f33571bc698019fbed3057536a54 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e4eea1d7f810f33571bc698019fbed3057536a54)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e4f258e5bdf346d7d3544395373f6e05c5986269 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e4f258e5bdf346d7d3544395373f6e05c5986269)bin6661 -> 6661 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e4f268c626dc2f40391ede8c39f1abc176dbb375 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e4f268c626dc2f40391ede8c39f1abc176dbb375)bin2474 -> 2474 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e4ff457b5695520d53e2f8a31276489186622fae (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e4ff457b5695520d53e2f8a31276489186622fae)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e51ade9a5cbf7610d99964956bd1168e36c2146f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e51ade9a5cbf7610d99964956bd1168e36c2146f)bin5018 -> 5018 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e55ac79cf921b30ad3c9f418b5a82120fe223dee (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e55ac79cf921b30ad3c9f418b5a82120fe223dee)bin624 -> 624 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e56749edfa417d433d0f8046c0cdc0eadedecc04 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e56749edfa417d433d0f8046c0cdc0eadedecc04)bin874 -> 874 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e575647f20cf9c70ae382961cf9d6397c8b77ec6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e575647f20cf9c70ae382961cf9d6397c8b77ec6)bin3244 -> 3244 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e57bfdaeefd305450b704a8253e5f11fe3d9495b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e57bfdaeefd305450b704a8253e5f11fe3d9495b)bin1918 -> 1918 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e5a9d2f92a2d1a12cffd25c3a58f024413a32c25 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e5a9d2f92a2d1a12cffd25c3a58f024413a32c25)bin865 -> 865 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e5d9e9fcdd3df8bdbb389aff916f3b7ce0f6468a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e5d9e9fcdd3df8bdbb389aff916f3b7ce0f6468a)bin753 -> 753 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e5fe297fa27bb8167f0d67c89fa09b19b1e02189 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e5fe297fa27bb8167f0d67c89fa09b19b1e02189)bin2767 -> 2767 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e61b7892c71719b813c35c8b2ba2d398cf247e11 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e61b7892c71719b813c35c8b2ba2d398cf247e11)bin8314 -> 8314 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e62fdd7fb3ec04ab2b5e849ea893191d1c20422d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e62fdd7fb3ec04ab2b5e849ea893191d1c20422d)bin745 -> 745 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e631366edc71090844b9fe724f955c6d20f0bd72 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e631366edc71090844b9fe724f955c6d20f0bd72)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e64863b912c9358a66735b703e526e3e09253a33 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e64863b912c9358a66735b703e526e3e09253a33)bin610 -> 610 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e68d583a46daca22654de1ad20c84b5fcbe470b1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e68d583a46daca22654de1ad20c84b5fcbe470b1)bin4048 -> 4048 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e6ea74d389f5ddac04cb049356f4d1d932a33088 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e6ea74d389f5ddac04cb049356f4d1d932a33088)bin686 -> 686 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e76064720250d6896cca684fa34d2beb1a0c8a1a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e76064720250d6896cca684fa34d2beb1a0c8a1a)bin848 -> 848 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e782aabe0939e4a2b22c50f1b8711928a94b0247 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e782aabe0939e4a2b22c50f1b8711928a94b0247)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e7b32da2598431f23a43ee482d73af1fb38168a9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e7b32da2598431f23a43ee482d73af1fb38168a9)bin1423 -> 1423 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e7bd3af4a2dc0566016569ccb4420a77c0b5971e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e7bd3af4a2dc0566016569ccb4420a77c0b5971e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e84e4b0f7149ee1a4f0d16ab53a7521d9d3107f8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e84e4b0f7149ee1a4f0d16ab53a7521d9d3107f8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e852427d7c56e4967a64f62b269ecf418e2f5907 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e852427d7c56e4967a64f62b269ecf418e2f5907)bin1153 -> 1153 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e88033e22af167e98396170cc562f20d91bdfc76 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e88033e22af167e98396170cc562f20d91bdfc76)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e8ad99ef253b2016519c34f2882281e4da7ac4b6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e8ad99ef253b2016519c34f2882281e4da7ac4b6)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e8c0428772d24517273d98a996fc03df34eea1ca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e8c0428772d24517273d98a996fc03df34eea1ca)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e8d1c7a6dd3617a42a41affe1268e61007b9008d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e8d1c7a6dd3617a42a41affe1268e61007b9008d)bin3419 -> 3419 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e913420add4750b800e100a9609252ef90f744fc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e913420add4750b800e100a9609252ef90f744fc)bin773 -> 773 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e9521bf37f3fc1eb2874a27b3656a4a1a5df8d26 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e9521bf37f3fc1eb2874a27b3656a4a1a5df8d26)bin3172 -> 3172 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e9831cdb1e316ce640b2ebda89fb1fb8cc211a48 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e9831cdb1e316ce640b2ebda89fb1fb8cc211a48)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e99e99678d5c9e569523b6ce62b5ab27a83a7dff (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e99e99678d5c9e569523b6ce62b5ab27a83a7dff)bin2354 -> 2354 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e9b12b8f8745a55c09a42cbf039884525bf8055b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e9b12b8f8745a55c09a42cbf039884525bf8055b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e9c0aae8944d3336d818c5f79ece3555d62cfcd3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e9c0aae8944d3336d818c5f79ece3555d62cfcd3)bin496 -> 496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/e9cbc9582ebfc1378edd6a753d7b5e4cb5df868c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/e9cbc9582ebfc1378edd6a753d7b5e4cb5df868c)bin4705 -> 4705 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ea07369d10d2188b01a88afbbe85a364188eb60f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ea07369d10d2188b01a88afbbe85a364188eb60f)bin383 -> 383 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ea3029d7b464759105edd6933f36909dc985527a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ea3029d7b464759105edd6933f36909dc985527a)bin3259 -> 3259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ea5fe29cfddf050682cee77ecd2b4fdef408df94 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ea5fe29cfddf050682cee77ecd2b4fdef408df94)bin824 -> 824 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eac0b1ca8a4e06ce3ed1a98f6f9a07b41a261b21 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eac0b1ca8a4e06ce3ed1a98f6f9a07b41a261b21)bin2543 -> 2543 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eb24833e5c0a9244c5081149eb32198178aa2cc6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eb24833e5c0a9244c5081149eb32198178aa2cc6)bin90 -> 90 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eb3c82946215ab6bec4c8da757ce888f74d39a38 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eb3c82946215ab6bec4c8da757ce888f74d39a38)bin583 -> 583 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eb4fb98c6f4e33f46d92ae7f27141c2a7a980204 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eb4fb98c6f4e33f46d92ae7f27141c2a7a980204)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eb53d8ad295dbf0b61ce30d9bf641333e6946c85 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eb53d8ad295dbf0b61ce30d9bf641333e6946c85)bin1582 -> 1582 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eb719aa834fb6826c6a89a173c01c43b1ba2db90 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eb719aa834fb6826c6a89a173c01c43b1ba2db90)bin671 -> 671 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ec1e3336f9f307a12f0ca8cb7d17aedc402f4f0f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ec1e3336f9f307a12f0ca8cb7d17aedc402f4f0f)bin1572 -> 1572 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ec650c55b9a1991c32198471c05a499f15133ffe (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ec650c55b9a1991c32198471c05a499f15133ffe)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ec7ba4216ee9013b96ca22df29539782b6593a52 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ec7ba4216ee9013b96ca22df29539782b6593a52)bin3276 -> 3276 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ec880d6a669abd541df7c4c98db20ebaf0701b7e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ec880d6a669abd541df7c4c98db20ebaf0701b7e)bin3172 -> 3172 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ecc83b8fcafb75bed3a187d771f843ba96bd2ef5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ecc83b8fcafb75bed3a187d771f843ba96bd2ef5)bin2019 -> 2019 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eccaec4054f296d5af0f56f9a74e5a6ba63dc208 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eccaec4054f296d5af0f56f9a74e5a6ba63dc208)bin1658 -> 1658 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ecce6861a3ee93f7ba0d51b43ebee20b3192653c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ecce6861a3ee93f7ba0d51b43ebee20b3192653c)bin1185 -> 1185 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ecdfda7fe6b52cfdea84cf61ba051d4e5ce56047 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ecdfda7fe6b52cfdea84cf61ba051d4e5ce56047)bin1702 -> 1702 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ece9f3ca2fdbab1a93743cb2d98606e01c82afcf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ece9f3ca2fdbab1a93743cb2d98606e01c82afcf)bin1352 -> 1352 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ed028b10fb93c687756ba59d547b681ac2c9f398 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ed028b10fb93c687756ba59d547b681ac2c9f398)bin1546 -> 1546 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ed6d72a8bd6e7226438e0ae7392a5327a8c47011 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ed6d72a8bd6e7226438e0ae7392a5327a8c47011)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ed705ad97a2c39d09e29b99ed55595e297e131e2 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ed705ad97a2c39d09e29b99ed55595e297e131e2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ed747ecfe8d4cd3cbc760989a3b8c604d324c1c7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ed747ecfe8d4cd3cbc760989a3b8c604d324c1c7)bin330 -> 330 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/edb244484b170b2f96827bed02fc4001f8530db1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/edb244484b170b2f96827bed02fc4001f8530db1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/edc63da15da13a04cb85dad4f7f3d1229ec13596 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/edc63da15da13a04cb85dad4f7f3d1229ec13596)bin1229 -> 1229 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/edd450d945e0e7d0f511ab86d9d5edcf9908ec66 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/edd450d945e0e7d0f511ab86d9d5edcf9908ec66)bin268 -> 268 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/edfda635959d01fb7dd96aac4048d1cee4219cbd (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/edfda635959d01fb7dd96aac4048d1cee4219cbd)bin960 -> 960 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ee42ec64b05b304fe4c8ed457005a75121ec47df (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ee42ec64b05b304fe4c8ed457005a75121ec47df)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ee4c16e595f630c736bc9d59a6a24bcf351df27b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ee4c16e595f630c736bc9d59a6a24bcf351df27b)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ee55640a4390490b207f80215fdd6de8849f551b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ee55640a4390490b207f80215fdd6de8849f551b)bin490 -> 490 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ee7f2ca7f969d2c749d2bc127c4750b5edff537f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ee7f2ca7f969d2c749d2bc127c4750b5edff537f)bin3267 -> 3267 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ee9f52d2e15e8e7490f05805eace55b4629c2fe0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ee9f52d2e15e8e7490f05805eace55b4629c2fe0)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/eea975eecb8e606b937e02bfbf961553e1a232fb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/eea975eecb8e606b937e02bfbf961553e1a232fb)bin438 -> 438 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ef42c77c19ed22121f5794ea16e08a002031a538 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ef42c77c19ed22121f5794ea16e08a002031a538)bin1503 -> 1503 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ef5bd77aaf655ffccb45143b4f816f1db5e4c40a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ef5bd77aaf655ffccb45143b4f816f1db5e4c40a)bin3225 -> 3225 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/efc2ca0c4edd10ae9976b116f45b25d5112b55cf (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/efc2ca0c4edd10ae9976b116f45b25d5112b55cf)bin253 -> 253 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f00930308fa37bd8bdce56abc6467fe8e3400ac9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f00930308fa37bd8bdce56abc6467fe8e3400ac9)bin605 -> 605 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f07d43a91d316b261c237709a987fcaf6a345297 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f07d43a91d316b261c237709a987fcaf6a345297)bin1450 -> 1450 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f096c7a15b3daa71e97ea392a535f002b017204e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f096c7a15b3daa71e97ea392a535f002b017204e)bin126 -> 126 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f0a101e9cb3656515d874665a78066f2926d12c8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f0a101e9cb3656515d874665a78066f2926d12c8)bin3303 -> 3303 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f0cba483bf5d395190bcf2072b33b1382845df16 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f0cba483bf5d395190bcf2072b33b1382845df16)bin2421 -> 2421 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f115301191c6b550dbe54720d2e8371fcfb82097 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f115301191c6b550dbe54720d2e8371fcfb82097)bin310 -> 310 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f19cb09f52928964dff4b1c5e3d080ba6a4a820b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f19cb09f52928964dff4b1c5e3d080ba6a4a820b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f220f3d119e3312b9a3fa3258185893bca0a2776 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f220f3d119e3312b9a3fa3258185893bca0a2776)bin645 -> 645 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f22e15223e60823ff7fa34495dec0f1c1069cea3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f22e15223e60823ff7fa34495dec0f1c1069cea3)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f27fd0aa60217b7a160f6bcdfc04cfec287665f8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f27fd0aa60217b7a160f6bcdfc04cfec287665f8)bin887 -> 887 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f2a96666df341852a163c6d932154f293b2e1f63 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f2a96666df341852a163c6d932154f293b2e1f63)bin2694 -> 2694 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f2c1c16fa61564d9a86bf513093e36968b92e060 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f2c1c16fa61564d9a86bf513093e36968b92e060)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f2d3802286c24f27cc2c5ee3635669c7a708f26e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f2d3802286c24f27cc2c5ee3635669c7a708f26e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f2e3b4795edece84f15c6373938fd2c48fa32f11 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f2e3b4795edece84f15c6373938fd2c48fa32f11)bin4858 -> 4858 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f2f6d321acaa2a0c311b9f0f7d174287ed092629 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f2f6d321acaa2a0c311b9f0f7d174287ed092629)bin1146 -> 1146 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f339a0bb82454a09c33394d91ae15cfa8d540a96 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f339a0bb82454a09c33394d91ae15cfa8d540a96)bin1484 -> 1484 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f36115915c8c8278a8027a5beff11bdfd8c83d83 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f36115915c8c8278a8027a5beff11bdfd8c83d83)bin523 -> 523 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f36b1e833c1111724f4dca3e4e0c6dfac83d7324 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f36b1e833c1111724f4dca3e4e0c6dfac83d7324)bin375 -> 375 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f3a0d749a921e3f08a03185ee7350e8e6106386f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f3a0d749a921e3f08a03185ee7350e8e6106386f)bin683 -> 683 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f3cbc18664f7d062c12ab935154dd3d9daee61a3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f3cbc18664f7d062c12ab935154dd3d9daee61a3)bin2095 -> 2095 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f3fa0d5a7d7df791c272c9957743df6abf45331e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f3fa0d5a7d7df791c272c9957743df6abf45331e)bin267 -> 267 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f43d897e31a48ef44d2fa780012c4c8ebf3c0191 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f43d897e31a48ef44d2fa780012c4c8ebf3c0191)bin2136 -> 2136 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f457dbc0a6cde3950d6dd5e456b642eec3169503 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f457dbc0a6cde3950d6dd5e456b642eec3169503)bin1784 -> 1784 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f4585d6c46b0e885a2d64599a2bea0a3b41bff9e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f4585d6c46b0e885a2d64599a2bea0a3b41bff9e)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f469a1381df73bdcba3b812fca93b4f1168e5974 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f469a1381df73bdcba3b812fca93b4f1168e5974)bin1145 -> 1145 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f46d5d01c807779669bff9d84456048fda1cffb0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f46d5d01c807779669bff9d84456048fda1cffb0)bin3141 -> 3141 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f482213513b6bcf50f6b35187b67d03c7a918fbc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f482213513b6bcf50f6b35187b67d03c7a918fbc)bin4971 -> 4971 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f4b040963d88288074dba4fcc9d43cef18e0a361 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f4b040963d88288074dba4fcc9d43cef18e0a361)bin2476 -> 2476 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f4be56f5dfba94b4d46c35e17e6675180181d410 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f4be56f5dfba94b4d46c35e17e6675180181d410)bin2170 -> 2170 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f4dfd3bc611094c94632f0a7f65f286acdc224ba (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f4dfd3bc611094c94632f0a7f65f286acdc224ba)bin2532 -> 2532 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f51ff9c13af8fd65ad17e27b9d131c3a6eb90721 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f51ff9c13af8fd65ad17e27b9d131c3a6eb90721)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f522349aa4f42364ac4ae4b9a75660a52fb87947 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f522349aa4f42364ac4ae4b9a75660a52fb87947)bin758 -> 758 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f5a1cceabef0d00e2d770c45ba65619e4ef00408 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f5a1cceabef0d00e2d770c45ba65619e4ef00408)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f5ce7320c0da35f890fef56f1b583e5ef12a9dd4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f5ce7320c0da35f890fef56f1b583e5ef12a9dd4)bin873 -> 873 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f61c0c297f12a7e9b9493732748ea65a5acc4347 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f61c0c297f12a7e9b9493732748ea65a5acc4347)bin923 -> 923 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f65a9e7517732c5a881626ba49112a969db28195 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f65a9e7517732c5a881626ba49112a969db28195)bin6346 -> 6346 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f69dbd6a21af6cd77bc8b5f5a9e160556bce6cb6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f69dbd6a21af6cd77bc8b5f5a9e160556bce6cb6)bin2275 -> 2275 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f6ae21762067b40f6799577ad401a6d121dd18df (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f6ae21762067b40f6799577ad401a6d121dd18df)bin212 -> 212 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f6b64be1dd86d867221e4915fad1c38d5b19f7a5 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f6b64be1dd86d867221e4915fad1c38d5b19f7a5)bin3325 -> 3325 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f6c4f2ac4363ee521dc3d0c3498384b377bfe600 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f6c4f2ac4363ee521dc3d0c3498384b377bfe600)bin970 -> 970 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f6c8e2d1bd133fc8d086d4db381561497efb1095 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f6c8e2d1bd133fc8d086d4db381561497efb1095)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f6d1078b25ddb627d3f7bce93dff6fd314d937f6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f6d1078b25ddb627d3f7bce93dff6fd314d937f6)bin2231 -> 2231 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f6e954ed273cdfe13fbb3f6b1097a1bcb1310126 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f6e954ed273cdfe13fbb3f6b1097a1bcb1310126)bin1430 -> 1430 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f70215799722870ab7afe0a4d74bdc6655f46f46 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f70215799722870ab7afe0a4d74bdc6655f46f46)bin1839 -> 1839 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f734ac553a994f2fbed708c93b66bcd563ea6ec6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f734ac553a994f2fbed708c93b66bcd563ea6ec6)bin393 -> 393 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f74cb2dc90d8b000603b1a70c559a4384923869c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f74cb2dc90d8b000603b1a70c559a4384923869c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f769c28f309ec5562b98161f68764e1390f33b81 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f769c28f309ec5562b98161f68764e1390f33b81)bin399 -> 399 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f7a25105eb4026384986e8c2c6034b7c0352188e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f7a25105eb4026384986e8c2c6034b7c0352188e)bin343 -> 343 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f7b9160aa72e5f9bc8ff5b788934c5835cdf628f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f7b9160aa72e5f9bc8ff5b788934c5835cdf628f)bin1107 -> 1107 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f7c22e1c0c5dd28b576186fc71040306e0c558ac (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f7c22e1c0c5dd28b576186fc71040306e0c558ac)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f7c92ef407a3e8f025c296d7765b90768e12a80e (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f7c92ef407a3e8f025c296d7765b90768e12a80e)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f816c86c0aa349a7282ad30a406e21ecd00c4efc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f816c86c0aa349a7282ad30a406e21ecd00c4efc)bin1107 -> 1107 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f826cbe6434954493742272d73ccd07c1495194c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f826cbe6434954493742272d73ccd07c1495194c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f85c0f06b2f72946e68bed8bd5582fdc5c1f7862 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f85c0f06b2f72946e68bed8bd5582fdc5c1f7862)bin2873 -> 2873 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f86196c19d56e3cbee07eab885eaef4ce4c7ae44 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f86196c19d56e3cbee07eab885eaef4ce4c7ae44)bin5306 -> 5306 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f8724f61b6864c3eeeb317c04f0239243d637648 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f8724f61b6864c3eeeb317c04f0239243d637648)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f8cddf5f1047b58d50d3c7f817673a57a60df4d6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f8cddf5f1047b58d50d3c7f817673a57a60df4d6)bin1801 -> 1801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f8d905cb79247cf8242afad61655ac2e9440d918 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f8d905cb79247cf8242afad61655ac2e9440d918)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f8ea5a7500370721ed3cf377bc6fff5bab63859d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f8ea5a7500370721ed3cf377bc6fff5bab63859d)bin4933 -> 4933 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f8f7f86d5d1e17ef48921d4e997ec84816eaa4df (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f8f7f86d5d1e17ef48921d4e997ec84816eaa4df)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f91631ff3af2d841131bf3717fed2dc405a87097 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f91631ff3af2d841131bf3717fed2dc405a87097)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f93ecb86a17673f43010e488e31068c804877d77 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f93ecb86a17673f43010e488e31068c804877d77)bin1166 -> 1166 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f9443e6b69f7b596a6e10d601336483ebeeb7b2b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f9443e6b69f7b596a6e10d601336483ebeeb7b2b)bin424 -> 424 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f944e54e7382f56870fc1cacdfbdff4983cd5da6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f944e54e7382f56870fc1cacdfbdff4983cd5da6)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f97c0b71d2c58e4ace2e0314dbecde8132566c28 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f97c0b71d2c58e4ace2e0314dbecde8132566c28)bin490 -> 490 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f992280db1160a0f2e4b9b10c8e53aa31a3d1576 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f992280db1160a0f2e4b9b10c8e53aa31a3d1576)bin409 -> 409 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f9dab42ac2998f283e20724677f4ca2f9db8a27c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f9dab42ac2998f283e20724677f4ca2f9db8a27c)bin578 -> 578 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/f9e38a657d9baa31fb7e69d017b022d7f2a756cb (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/f9e38a657d9baa31fb7e69d017b022d7f2a756cb)bin2610 -> 2610 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fa12020e75ab24df07b86129e93fc430dccfa888 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fa12020e75ab24df07b86129e93fc430dccfa888)bin1363 -> 1363 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fa5039908c48b6d07124816461d2de919eb797d9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fa5039908c48b6d07124816461d2de919eb797d9)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fa6181e3a71d529fcaa5ce594f675e3ba422b7c0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fa6181e3a71d529fcaa5ce594f675e3ba422b7c0)bin1969 -> 1969 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fab326fe4f76f845e85c83e93d88d74c16cfe9cc (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fab326fe4f76f845e85c83e93d88d74c16cfe9cc)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fae5a152c5728517b21050b26c76bb8ba0e62c16 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fae5a152c5728517b21050b26c76bb8ba0e62c16)bin2311 -> 2311 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/faf328f0953b6edba2d1ad86f0993d5a9bfb3d19 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/faf328f0953b6edba2d1ad86f0993d5a9bfb3d19)bin11187 -> 11187 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fb14995cf0f0aa939630353681e3f72a76b02782 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fb14995cf0f0aa939630353681e3f72a76b02782)bin924 -> 924 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fb5add14ef7c48acb3ccf470ea73c333ab182c38 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fb5add14ef7c48acb3ccf470ea73c333ab182c38)bin726 -> 726 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fb613becbf23988044388d5db33fcb2266c96d5a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fb613becbf23988044388d5db33fcb2266c96d5a)bin419 -> 419 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fb668fa27b86e84d5e556ff6217afcb0b37d17ca (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fb668fa27b86e84d5e556ff6217afcb0b37d17ca)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb2719409561b4f84d3ec7856346ccd95d7cbd6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fbb2719409561b4f84d3ec7856346ccd95d7cbd6)bin1087 -> 1087 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb493380a00ff4f954c700950540cf555e01950 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fbb493380a00ff4f954c700950540cf555e01950)bin2264 -> 2264 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb78ca46890b215efec7524025a972f2ac7864f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fbb78ca46890b215efec7524025a972f2ac7864f)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fbdf92d7c998afaa7605a9562de988684af86555 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fbdf92d7c998afaa7605a9562de988684af86555)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fbeec5e3dd0ee7680e6743adcfb52b5ca2cf2974 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fbeec5e3dd0ee7680e6743adcfb52b5ca2cf2974)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fc09d88c5a411d56dbdd45c25ee13c4209a1c0a9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fc09d88c5a411d56dbdd45c25ee13c4209a1c0a9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fc2ca8423f479cda709ca957377621fbdbbd8a59 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fc2ca8423f479cda709ca957377621fbdbbd8a59)bin625 -> 625 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fc6f50428489180ba314dcea81643ccd0839428b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fc6f50428489180ba314dcea81643ccd0839428b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fc758ef6a926f439a0a3011ed51724aec20fca0d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fc758ef6a926f439a0a3011ed51724aec20fca0d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fc8462d025a1fd56c1fc944cac4cd6c41137f5f4 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fc8462d025a1fd56c1fc944cac4cd6c41137f5f4)bin540 -> 540 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fcb5fd390e51d242b230140dea823e3026667241 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fcb5fd390e51d242b230140dea823e3026667241)bin1292 -> 1292 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fcbb7a063d0d44b734d173244b3787b727920112 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fcbb7a063d0d44b734d173244b3787b727920112)bin379 -> 379 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fd565ace1aed51eee1e62abec6a3ac7098f454e8 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fd565ace1aed51eee1e62abec6a3ac7098f454e8)bin3321 -> 3321 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fd69e44f584a0c9261be3d6513c3c4eda43331b9 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fd69e44f584a0c9261be3d6513c3c4eda43331b9)bin438 -> 438 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fdc71b88574646a4d529c67307344d814ef2350c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fdc71b88574646a4d529c67307344d814ef2350c)bin620 -> 620 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fde7598e34fcacb3e58938a4d805c89a2d52947b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fde7598e34fcacb3e58938a4d805c89a2d52947b)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fe3f8df9bd67c025dee03f5b0cf5348caaeffcc1 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fe3f8df9bd67c025dee03f5b0cf5348caaeffcc1)bin2968 -> 2968 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fe43df69106363f3d224d1143b3c534681488202 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fe43df69106363f3d224d1143b3c534681488202)bin2476 -> 2476 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fe55d4e4664c94f3b5b804e15746a60636708e93 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fe55d4e4664c94f3b5b804e15746a60636708e93)bin727 -> 727 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fe71ab32805896825d0abb7f7d7556a7e2a8a025 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fe71ab32805896825d0abb7f7d7556a7e2a8a025)bin424 -> 424 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fe99922363b87360df838963bbf3353f3e519dad (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fe99922363b87360df838963bbf3353f3e519dad)bin3259 -> 3259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fea3241a261aeb30cff9a3cd0692eddeaf888ce3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fea3241a261aeb30cff9a3cd0692eddeaf888ce3)bin1173 -> 1173 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fec4821f67bd9f53c32027b51bfb09ee5d290e8f (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fec4821f67bd9f53c32027b51bfb09ee5d290e8f)bin564 -> 564 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fefbe3f799fe49d3ea559b3fda3b45257082129a (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fefbe3f799fe49d3ea559b3fda3b45257082129a)bin1377 -> 1377 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ff18355ce02a89a8e5695aa54c257ed6a7e50446 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ff18355ce02a89a8e5695aa54c257ed6a7e50446)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ff24c086aebdc27cd7bc2433182cf4642f6289a0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ff24c086aebdc27cd7bc2433182cf4642f6289a0)bin419 -> 419 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ff440ac4d47014d15eb333366550e7b3b2b217c3 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ff440ac4d47014d15eb333366550e7b3b2b217c3)bin3358 -> 3358 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ff4de73377101f2aa0219488b509ddce65468e61 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ff4de73377101f2aa0219488b509ddce65468e61)bin404 -> 404 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ff5101be46c93c1ba3ba4f4ae8857a0437f2cbec (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ff5101be46c93c1ba3ba4f4ae8857a0437f2cbec)bin1107 -> 1107 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ff69bf91172634e4e33053abd06ce5dcecf19ead (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ff69bf91172634e4e33053abd06ce5dcecf19ead)bin654 -> 654 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ff6cf5f5588e7c9abef57c18d260e642ce3b46c0 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ff6cf5f5588e7c9abef57c18d260e642ce3b46c0)bin1695 -> 1695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ffc904973676b2d8e7aaf57e1c75ea19a140c2d6 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ffc904973676b2d8e7aaf57e1c75ea19a140c2d6)bin890 -> 890 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ffca3d21fd3baa6ffd9fff240c0bc3defb8175a7 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ffca3d21fd3baa6ffd9fff240c0bc3defb8175a7)bin1703 -> 1703 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ffd3bfbd8074cecd8a799f71992f8f320dbf0382 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ffd3bfbd8074cecd8a799f71992f8f320dbf0382)bin415 -> 415 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/ffe6888963f75b4e1396995eae29e57cf23b320b (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/ffe6888963f75b4e1396995eae29e57cf23b320b)bin3029 -> 3029 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fff96cd3fb2d5588dff70ad30c4b74b247aab29c (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fff96cd3fb2d5588dff70ad30c4b74b247aab29c)bin2171 -> 2171 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http1-corpus/fff9a3c063e7331384a3909b3299e6b053b7e975 (renamed from web/server/h2o/libh2o/fuzz/http1-corpus/fff9a3c063e7331384a3909b3299e6b053b7e975)bin1693 -> 1693 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/001015fe2b4d4b50f1de1c8b295d1e5cecde8993 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/001015fe2b4d4b50f1de1c8b295d1e5cecde8993)bin739 -> 739 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0017ac38fd62ab27d6c9b1c47cf16a831e02c13a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0017ac38fd62ab27d6c9b1c47cf16a831e02c13a)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/00926a021aadde1dfc92ae7cf3487e7c41275fe4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/00926a021aadde1dfc92ae7cf3487e7c41275fe4)bin798 -> 798 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/00b4d25ce806ce16e4971a788966587a8ea47b36 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/00b4d25ce806ce16e4971a788966587a8ea47b36)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/00bb33dcdfa0cf87e3bcc5e21989bf4b63780e70 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/00bb33dcdfa0cf87e3bcc5e21989bf4b63780e70)bin400 -> 400 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/00da40700b9937b43cd7924c4a0ccb3fb487bfb4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/00da40700b9937b43cd7924c4a0ccb3fb487bfb4)bin670 -> 670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/00ea3a0fce5effaf10898a05271cb7932959db4f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/00ea3a0fce5effaf10898a05271cb7932959db4f)bin841 -> 841 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/00f9e6e9f360ee6025b48f4053f9709079da6738 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/00f9e6e9f360ee6025b48f4053f9709079da6738)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/01305ab752605e5a503ef305cc75934f2a666bee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/01305ab752605e5a503ef305cc75934f2a666bee)bin16048 -> 16048 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/014e2d0d84aa365f6adb926bb34a60b68f074cea (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/014e2d0d84aa365f6adb926bb34a60b68f074cea)bin470 -> 470 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/01826d6cef54f8d2a1cf2b0d6421808908e18f7d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/01826d6cef54f8d2a1cf2b0d6421808908e18f7d)bin881 -> 881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/019b5b3a46d132d60712d6a0e81a1916d4c84387 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/019b5b3a46d132d60712d6a0e81a1916d4c84387)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/01bbcc625ebdc8143dd163898b7908b2570f5385 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/01bbcc625ebdc8143dd163898b7908b2570f5385)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/01bf7d9b4f2c4d09532e4f4ed2ebc933c568048d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/01bf7d9b4f2c4d09532e4f4ed2ebc933c568048d)bin388 -> 388 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/01d7a816a9f9d507e4905c7b198513cde14d1a98 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/01d7a816a9f9d507e4905c7b198513cde14d1a98)bin1461 -> 1461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/01d84a10792f0101da735dd7208daab30080a9d8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/01d84a10792f0101da735dd7208daab30080a9d8)bin713 -> 713 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0291ae8e0459e06d5242d9be08645245cd31eefb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0291ae8e0459e06d5242d9be08645245cd31eefb)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/02a634a05d86cc28ea5c41c725fbbb272c5fef20 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/02a634a05d86cc28ea5c41c725fbbb272c5fef20)bin474 -> 474 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/02e9a8379313698191e7f4398cd2ea255413d330 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/02e9a8379313698191e7f4398cd2ea255413d330)bin306 -> 306 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/02ee99bc2348bb02a6bd6044399e719cade27bf2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/02ee99bc2348bb02a6bd6044399e719cade27bf2)bin389 -> 389 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/031296f832805274205a408b0e711307cd9e3763 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/031296f832805274205a408b0e711307cd9e3763)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/037c86e693f35b697030e7d682e9edc440c89c24 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/037c86e693f35b697030e7d682e9edc440c89c24)bin700 -> 700 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0397916c1c167eb7ee6b20873593b87e16f69015 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0397916c1c167eb7ee6b20873593b87e16f69015)bin1616 -> 1616 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/03d032bcb87221cdbc85224aebc95574c23779ca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/03d032bcb87221cdbc85224aebc95574c23779ca)bin576 -> 576 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/03eb22e85608e04906c2debad996c620b5f981c4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/03eb22e85608e04906c2debad996c620b5f981c4)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/03eb4461826b76ba7e74b2fc89eec7c7091e5949 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/03eb4461826b76ba7e74b2fc89eec7c7091e5949)bin178 -> 178 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0447b022e1e382c597c5e2a664e6bc7a545baba1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0447b022e1e382c597c5e2a664e6bc7a545baba1)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0471604f36ad29801d06e1eacf25e003c95b6ca9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0471604f36ad29801d06e1eacf25e003c95b6ca9)bin502 -> 502 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/04974c8392845e84e1db620753a01de9e313a29e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/04974c8392845e84e1db620753a01de9e313a29e)bin324 -> 324 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/04aad282e29e83daae1d89e8d035883f2fe8ce85 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/04aad282e29e83daae1d89e8d035883f2fe8ce85)bin2784 -> 2784 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/04b4e5920f3f7acb4142eab449afccd7c7ed40d2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/04b4e5920f3f7acb4142eab449afccd7c7ed40d2)bin692 -> 692 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0530927e50ff44728a81f7a032ab8fb45b166414 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0530927e50ff44728a81f7a032ab8fb45b166414)bin457 -> 457 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/055dab8623a9d6d6a053fe852842665c4d7e943d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/055dab8623a9d6d6a053fe852842665c4d7e943d)bin256 -> 256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/056b84c3356d1b26145603ca6f5b6c00cdce4279 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/056b84c3356d1b26145603ca6f5b6c00cdce4279)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/05fb47e99c820906257223c587664689ed042aef (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/05fb47e99c820906257223c587664689ed042aef)bin831 -> 831 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/06485f240ee1d3bd49ea65e4f4d4f0e01ba4c90e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/06485f240ee1d3bd49ea65e4f4d4f0e01ba4c90e)bin423 -> 423 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0653d841b4c7f1ac6c772904c039eb78f0c22092 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0653d841b4c7f1ac6c772904c039eb78f0c22092)bin1043 -> 1043 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/06712b54835c2be3666eaf9d39df80d3b15a20eb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/06712b54835c2be3666eaf9d39df80d3b15a20eb)bin478 -> 478 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0692340d16a8888ce4098e39b53b49d421c4fb6f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0692340d16a8888ce4098e39b53b49d421c4fb6f)bin793 -> 793 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/06a2a0f5e863d79423b982dd1af4b1400a8bd524 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/06a2a0f5e863d79423b982dd1af4b1400a8bd524)bin829 -> 829 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/06b66dabb0a50a20789203435a67dd12fd3e1c0f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/06b66dabb0a50a20789203435a67dd12fd3e1c0f)bin768 -> 768 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/06de9b0ce6abfcaafa333ddbf60f91f28f4f8b89 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/06de9b0ce6abfcaafa333ddbf60f91f28f4f8b89)bin772 -> 772 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/06ecb9a36b0f1b9b8cfac8e4682dae0508b1cebf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/06ecb9a36b0f1b9b8cfac8e4682dae0508b1cebf)bin720 -> 720 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0717a27b354bbc348219ca7c548343354086dcee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0717a27b354bbc348219ca7c548343354086dcee)bin766 -> 766 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/071d927223b748ee77f26100e0673c2bf8a39119 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/071d927223b748ee77f26100e0673c2bf8a39119)bin741 -> 741 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/07275521c4cde98265246b6ad2d84e0aba735a17 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/07275521c4cde98265246b6ad2d84e0aba735a17)bin53885 -> 53885 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/074439ffbc8210b3f9656df2b83f12bd5434be8f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/074439ffbc8210b3f9656df2b83f12bd5434be8f)bin331 -> 331 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/07778d60ec1129ff5854f51db99f9e9d45361c4c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/07778d60ec1129ff5854f51db99f9e9d45361c4c)bin217 -> 217 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/07a5b267941b856c5008859ad9ed0d1363178835 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/07a5b267941b856c5008859ad9ed0d1363178835)bin482 -> 482 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0806eb73d50b417102b853696af0c32ccb4ee293 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0806eb73d50b417102b853696af0c32ccb4ee293)bin452 -> 452 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0827e8a7472da07e5d1320a848a02981c1c47b37 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0827e8a7472da07e5d1320a848a02981c1c47b37)bin467 -> 467 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/085b2ac01b0b7ab39608e8ecb692dbffb98ab805 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/085b2ac01b0b7ab39608e8ecb692dbffb98ab805)bin265 -> 265 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/08e4e3f37bffc8d85c3c80477aba5bbe8d893520 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/08e4e3f37bffc8d85c3c80477aba5bbe8d893520)bin11544 -> 11544 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/09b80893835ab4cb1035a22052ec6975e97f8292 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/09b80893835ab4cb1035a22052ec6975e97f8292)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/09bfa29226a06c9c57f25393bda8effba64af652 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/09bfa29226a06c9c57f25393bda8effba64af652)bin2219 -> 2219 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/09dcfc46cbb075d0bd2a77c3cb0b5bd82eb4396e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/09dcfc46cbb075d0bd2a77c3cb0b5bd82eb4396e)bin466 -> 466 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/09ed9d62a5d2a6c84026496811a74adfdb0f3ef1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/09ed9d62a5d2a6c84026496811a74adfdb0f3ef1)bin977 -> 977 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0a51afe31f56390f2ae202710ca792302125eff9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0a51afe31f56390f2ae202710ca792302125eff9)bin777 -> 777 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0a61c9b5d3b59ef5f1d407ee0630bed2c14bec66 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0a61c9b5d3b59ef5f1d407ee0630bed2c14bec66)bin841 -> 841 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0ad3a7fc6cece75834d96b90415a143214d5c17f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0ad3a7fc6cece75834d96b90415a143214d5c17f)bin953 -> 953 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0b26f3988d240c5d383fcc6475da59d6697fad75 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0b26f3988d240c5d383fcc6475da59d6697fad75)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0b86c7b18f0210d755bdcb91f04f308a4d43187b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0b86c7b18f0210d755bdcb91f04f308a4d43187b)bin771 -> 771 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0bbe4615f5564a973e79c6e248f1079e1ee8c2c2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0bbe4615f5564a973e79c6e248f1079e1ee8c2c2)bin241 -> 241 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0bd58389130f849b662ffec33ba1fab0512c2814 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0bd58389130f849b662ffec33ba1fab0512c2814)bin346 -> 346 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0be3c404d390479fd0843a979265382b7bb9edb4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0be3c404d390479fd0843a979265382b7bb9edb4)bin8499 -> 8499 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0c8ef18dae350af43f681738e49698a649b08f99 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0c8ef18dae350af43f681738e49698a649b08f99)bin240 -> 240 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0c972eafc56122b308a550b4449826a585785315 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0c972eafc56122b308a550b4449826a585785315)bin456 -> 456 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0cc30cbc3d2998e6a8b37f122a71bad4b111c14a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0cc30cbc3d2998e6a8b37f122a71bad4b111c14a)bin353 -> 353 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0cc807f1176de72f4a0ca8391ace4d858221818d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0cc807f1176de72f4a0ca8391ace4d858221818d)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0cf8e4378d9816af528bd17f7dab8c85775c97b1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0cf8e4378d9816af528bd17f7dab8c85775c97b1)bin777 -> 777 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0d0c73efb777309ad2f151bd699c618473d0ad30 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0d0c73efb777309ad2f151bd699c618473d0ad30)bin766 -> 766 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0d32deddb12be404850721ec140341fa1748f9d9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0d32deddb12be404850721ec140341fa1748f9d9)bin1900 -> 1900 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0d42a91a393d3928d5ea6dc58d5fa0cbb2316db8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0d42a91a393d3928d5ea6dc58d5fa0cbb2316db8)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e5cdc8f714154acf481aa928fab99ec26187c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0d9e5cdc8f714154acf481aa928fab99ec26187c)bin618 -> 618 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e902a0e95971fcc8c33558baaff464ff7ba5a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0d9e902a0e95971fcc8c33558baaff464ff7ba5a)bin953 -> 953 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0e48b6feb5d38c528cf547fe468e32126896a930 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0e48b6feb5d38c528cf547fe468e32126896a930)bin440 -> 440 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0eae5b25cbd1022f25c13809888bb8530cc4db65 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0eae5b25cbd1022f25c13809888bb8530cc4db65)bin670 -> 670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0ecd9ed81bfdfe890f2ef4e3383d279180a69f28 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0ecd9ed81bfdfe890f2ef4e3383d279180a69f28)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0f05c072c77bbddd480d999cc933fbb52df6ad74 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0f05c072c77bbddd480d999cc933fbb52df6ad74)bin657 -> 657 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0f0a020f2accc0676460e61d74d59365d39e1378 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0f0a020f2accc0676460e61d74d59365d39e1378)bin544 -> 544 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0f50977f365504d1670458390a6153f458224980 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0f50977f365504d1670458390a6153f458224980)bin606 -> 606 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0ff4265b7e73b87f6c140a2cec1e63c430ab300f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0ff4265b7e73b87f6c140a2cec1e63c430ab300f)bin126 -> 126 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/0fff216f3814831ec85b0e0a80775ec321a07a61 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/0fff216f3814831ec85b0e0a80775ec321a07a61)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1010e31236b0a52a1571bc085f5bf8e139b64d43 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1010e31236b0a52a1571bc085f5bf8e139b64d43)bin688 -> 688 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/10914ebf606185e44439c150d14bb06d885dd7be (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/10914ebf606185e44439c150d14bb06d885dd7be)bin826 -> 826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/110b625943781a40aa180cafda22316a31299571 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/110b625943781a40aa180cafda22316a31299571)bin1821 -> 1821 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/112abe3439616c48316fe8d308e21db66de2bdc4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/112abe3439616c48316fe8d308e21db66de2bdc4)bin5016 -> 5016 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1130fea68f7bf6c68694eb25f0adacfdd6dc79ad (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1130fea68f7bf6c68694eb25f0adacfdd6dc79ad)bin680 -> 680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11351ef28b3023e80489f773246777ad9c50eccd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11351ef28b3023e80489f773246777ad9c50eccd)bin446 -> 446 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11656819398d84b03659e21366ef882a74965cbb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11656819398d84b03659e21366ef882a74965cbb)bin16018 -> 16018 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1183aedac9ebb2d0fc47b891c72cd4c621a68e48 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1183aedac9ebb2d0fc47b891c72cd4c621a68e48)bin772 -> 772 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11a02ffe2cb9605ec8476a5c239ab46762e9ee2d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11a02ffe2cb9605ec8476a5c239ab46762e9ee2d)bin323 -> 323 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11a388ee20e54195281f0417f8394db1d0f817f7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11a388ee20e54195281f0417f8394db1d0f817f7)bin960 -> 960 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11b04cf75a0361c53d43fe10368809a3a97da7da (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11b04cf75a0361c53d43fe10368809a3a97da7da)bin163 -> 163 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11c11d9ba5677fd7bd8b2d0f7c09cf9344109bf0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11c11d9ba5677fd7bd8b2d0f7c09cf9344109bf0)bin187 -> 187 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11f79d156d1b198773986651ed457d74d0846ab7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11f79d156d1b198773986651ed457d74d0846ab7)bin8588 -> 8588 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11fc10ace5fca0ba5f6fbf1b1f14dea2e5811140 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11fc10ace5fca0ba5f6fbf1b1f14dea2e5811140)bin1890 -> 1890 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/11fc81fd9b8ae037e819be896cb24809c2f07281 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/11fc81fd9b8ae037e819be896cb24809c2f07281)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1217850ca69eaf586dee3619390be585666d1cef (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1217850ca69eaf586dee3619390be585666d1cef)bin864 -> 864 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/121b5b20d57e5fad2356a18045af1018913caa44 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/121b5b20d57e5fad2356a18045af1018913caa44)bin5130 -> 5130 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/122d0f4d18064b1ee54896f9b45a48eeda9a0439 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/122d0f4d18064b1ee54896f9b45a48eeda9a0439)bin490 -> 490 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/12aa2f1d72e2e97dfa9f81c93bcac984f47fe247 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/12aa2f1d72e2e97dfa9f81c93bcac984f47fe247)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/12af93d8a209ab2067e750c88b52eec8327f0f8e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/12af93d8a209ab2067e750c88b52eec8327f0f8e)bin1554 -> 1554 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/12b6bca5c87f55061ce3246a1aac972f6b470d8a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/12b6bca5c87f55061ce3246a1aac972f6b470d8a)bin330 -> 330 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/12da6bd8649419f858e71b6ab8f0b8c4855023ce (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/12da6bd8649419f858e71b6ab8f0b8c4855023ce)bin412 -> 412 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/12fc0b7635b33180f6c2ee8158dd15044e75df8d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/12fc0b7635b33180f6c2ee8158dd15044e75df8d)bin476 -> 476 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/132e73a2e692b82e8c868892a82058633c38c937 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/132e73a2e692b82e8c868892a82058633c38c937)bin1015 -> 1015 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/136e8c12567b51e2cdaddc955926fc377e7d183a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/136e8c12567b51e2cdaddc955926fc377e7d183a)bin831 -> 831 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/13845301095fdb850184958c0b2cb56b3a1cc61e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/13845301095fdb850184958c0b2cb56b3a1cc61e)bin290 -> 290 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/13d02953688904d7c806de02194def94a2c942cc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/13d02953688904d7c806de02194def94a2c942cc)bin729 -> 729 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/13d256163898dc6fe5ea9c4b6af26f515a3d8fab (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/13d256163898dc6fe5ea9c4b6af26f515a3d8fab)bin609 -> 609 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/13d99ab4b2e5b132c0f10979608d49a6e791ea94 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/13d99ab4b2e5b132c0f10979608d49a6e791ea94)bin694 -> 694 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/13e9886a9863c940dfe7949e4186ff84613a7a49 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/13e9886a9863c940dfe7949e4186ff84613a7a49)bin809 -> 809 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/13ee0ab7e94b9732fe10afec663e04cfde975616 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/13ee0ab7e94b9732fe10afec663e04cfde975616)bin812 -> 812 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/13f6f28c7e73b9210719136aafe4791885eb19c4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/13f6f28c7e73b9210719136aafe4791885eb19c4)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1431d8390fccd8a1d237c802964f40bcc0e9af22 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1431d8390fccd8a1d237c802964f40bcc0e9af22)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/14693965c2cfbaf4accebef070117e0cc9a250e8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/14693965c2cfbaf4accebef070117e0cc9a250e8)bin163 -> 163 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/14c1c38dfa99349079f2ef0be94f5192a9cb07ac (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/14c1c38dfa99349079f2ef0be94f5192a9cb07ac)bin1281 -> 1281 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/14ccfe7747e048c9722648b5a6e9d7c85d16f939 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/14ccfe7747e048c9722648b5a6e9d7c85d16f939)bin1934 -> 1934 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/14db70d84dafee372fab3a1f719118ca58706317 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/14db70d84dafee372fab3a1f719118ca58706317)bin434 -> 434 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1514f9d9ab6fe8b0bc3f444a700bd4ee15ca95cb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1514f9d9ab6fe8b0bc3f444a700bd4ee15ca95cb)bin502 -> 502 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/154ea0038f76203952c57371e1b25dee3fb837f4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/154ea0038f76203952c57371e1b25dee3fb837f4)bin824 -> 824 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/154ef1b87e69679ca50ba5d7e6dd964e8cf5c6b2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/154ef1b87e69679ca50ba5d7e6dd964e8cf5c6b2)bin828 -> 828 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/15535c69c835118bd32880db658ecf8cef85e397 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/15535c69c835118bd32880db658ecf8cef85e397)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/156bb6fbf2359bcd1b12f82555d1b02bc16e4e50 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/156bb6fbf2359bcd1b12f82555d1b02bc16e4e50)bin1304 -> 1304 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/159e78250cba958cde9c20548ac9406b63086e05 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/159e78250cba958cde9c20548ac9406b63086e05)bin488 -> 488 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/15a1e2b8a0a71a51fe1f54c58cdbfce7bd941e4c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/15a1e2b8a0a71a51fe1f54c58cdbfce7bd941e4c)bin715 -> 715 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1677d1d81299b29f77b56e9219d51ecf7aa8b51e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1677d1d81299b29f77b56e9219d51ecf7aa8b51e)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/16b644dd44005f95d9bf1d929670e07b49f0e7b0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/16b644dd44005f95d9bf1d929670e07b49f0e7b0)bin1369 -> 1369 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/16d929b8a4260f377a52db0e1c5998739f1a8c98 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/16d929b8a4260f377a52db0e1c5998739f1a8c98)bin545 -> 545 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/16eab46e92e83ab28c0284b4cc9511cf58481ef8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/16eab46e92e83ab28c0284b4cc9511cf58481ef8)bin785 -> 785 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1758d997d9089540ff500dfba9df78e971543cee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1758d997d9089540ff500dfba9df78e971543cee)bin783 -> 783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/18598160e74b583ff9738c0192aa3e7d24dd5383 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/18598160e74b583ff9738c0192aa3e7d24dd5383)bin443 -> 443 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/186652ea97842f9c9adb7048ade48be5150553ba (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/186652ea97842f9c9adb7048ade48be5150553ba)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1967422fea1d9269ec2713e4d545a1a276b42c1a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1967422fea1d9269ec2713e4d545a1a276b42c1a)bin689 -> 689 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/19f8c5dc6b3615de6d344e5f53f0b0999ecc954b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/19f8c5dc6b3615de6d344e5f53f0b0999ecc954b)bin302 -> 302 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1a1094d131e4c5a7fcdedcae4bf75300f3a755c8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1a1094d131e4c5a7fcdedcae4bf75300f3a755c8)bin1557 -> 1557 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1a32947ef298d062659ff0039db3cf70ecfef78a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1a32947ef298d062659ff0039db3cf70ecfef78a)bin830 -> 830 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1ad498c5a31f7797d58afa82bce028c81760de78 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1ad498c5a31f7797d58afa82bce028c81760de78)bin471 -> 471 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1aeb16f688e958d9041d34c7f619daac9802304a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1aeb16f688e958d9041d34c7f619daac9802304a)bin630 -> 630 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1b038c8dada6241c9161f0ff1b07e7b10589055a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1b038c8dada6241c9161f0ff1b07e7b10589055a)bin759 -> 759 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1b7f1c58a6caf5d9538bacb4f5d1d54cd5c80c84 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1b7f1c58a6caf5d9538bacb4f5d1d54cd5c80c84)bin217 -> 217 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1b8476ad027ba68f75b30049bb65b187489c9b38 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1b8476ad027ba68f75b30049bb65b187489c9b38)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1bb9262d2d8384da73f11f2f282303a0a46c4899 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1bb9262d2d8384da73f11f2f282303a0a46c4899)bin487 -> 487 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1bfa4c7e375bc0dbb13fc2a782d1f06a5997ca46 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1bfa4c7e375bc0dbb13fc2a782d1f06a5997ca46)bin533 -> 533 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1c0eee9f059e32278b2203829caa463f8eb6ae9c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1c0eee9f059e32278b2203829caa463f8eb6ae9c)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1c126ffcb36eed1d58960783a31a490b40d1f8ae (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1c126ffcb36eed1d58960783a31a490b40d1f8ae)bin492 -> 492 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1c2bfd2d48c8a3c2437cc3defa67a609f9fcd9be (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1c2bfd2d48c8a3c2437cc3defa67a609f9fcd9be)bin558 -> 558 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1c3622105bded01517ee7be1a8ef299f4f134e7b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1c3622105bded01517ee7be1a8ef299f4f134e7b)bin360 -> 360 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1c5138f5c87b994261a654c89574097779502b9e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1c5138f5c87b994261a654c89574097779502b9e)bin324 -> 324 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1cfd576ca29e4f80bc93568058755e47b73437b6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1cfd576ca29e4f80bc93568058755e47b73437b6)bin552 -> 552 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1d0d25dc961f97f072dd467d60bba358ada65e93 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1d0d25dc961f97f072dd467d60bba358ada65e93)bin1718 -> 1718 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1d14947d4ebd5a33445bd12f7a225b481269a2a1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1d14947d4ebd5a33445bd12f7a225b481269a2a1)bin180 -> 180 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1d3714043aecd8a02f0e3b9c7e071a720163d9e4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1d3714043aecd8a02f0e3b9c7e071a720163d9e4)bin600 -> 600 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1dad8681b25a6fffc78476ec8dfd1ebb1c270e56 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1dad8681b25a6fffc78476ec8dfd1ebb1c270e56)bin1168 -> 1168 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1dd2a4a5b8160879e33832b1ffa861b5a0155db2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1dd2a4a5b8160879e33832b1ffa861b5a0155db2)bin263 -> 263 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1dd4d48aa8d77262c939a3b66f6b53b96d542b31 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1dd4d48aa8d77262c939a3b66f6b53b96d542b31)bin15581 -> 15581 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1e69c108a8a076a79c41f149572492cf9ecb177a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1e69c108a8a076a79c41f149572492cf9ecb177a)bin303 -> 303 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1f22c42c097982cef7705367dc795e9299250915 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1f22c42c097982cef7705367dc795e9299250915)bin609 -> 609 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1f376d8336201fff8d5642cacc003d295a10c536 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1f376d8336201fff8d5642cacc003d295a10c536)bin442 -> 442 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1f616d78f5b8e77df7096da349cf55cd01bd496f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1f616d78f5b8e77df7096da349cf55cd01bd496f)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1f6c09a32c23b58b1663950ac23361487a74b36e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1f6c09a32c23b58b1663950ac23361487a74b36e)bin798 -> 798 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/1ffff9528644f03cc4b8d4506b29e8250a2ee1fb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/1ffff9528644f03cc4b8d4506b29e8250a2ee1fb)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/200c08e83c1c38016c12f4e031ee02841f925a35 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/200c08e83c1c38016c12f4e031ee02841f925a35)bin376 -> 376 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/205d11b012861bb38b429dddc315620856161978 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/205d11b012861bb38b429dddc315620856161978)bin864 -> 864 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/20764f27d5bc04727aaf50f4659a65e9f9ceb5dd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/20764f27d5bc04727aaf50f4659a65e9f9ceb5dd)bin885 -> 885 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2094d0609644a04210c1643acac9236663bd4893 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2094d0609644a04210c1643acac9236663bd4893)bin583 -> 583 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/209bbd4caa861a25d5c7e5396980e35a9ce0d7d9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/209bbd4caa861a25d5c7e5396980e35a9ce0d7d9)bin1213 -> 1213 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/20b66998eef84dceba740c670622ead3f7c5766b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/20b66998eef84dceba740c670622ead3f7c5766b)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/210a4e82ab05985c0c97466215faa49621051cc4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/210a4e82ab05985c0c97466215faa49621051cc4)bin639 -> 639 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/21427f9d0e9570e7d84f2d41d374edbc8f8380fb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/21427f9d0e9570e7d84f2d41d374edbc8f8380fb)bin669 -> 669 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/215d200d220d686893edeacadb1621630b45a42a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/215d200d220d686893edeacadb1621630b45a42a)bin897 -> 897 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/21c2a39f7b2542ca0500c99cc9c70daf1ed52fbd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/21c2a39f7b2542ca0500c99cc9c70daf1ed52fbd)bin494 -> 494 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/21e9d8fd7ab2186de8c7a7b7c3cdec3e33c357a9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/21e9d8fd7ab2186de8c7a7b7c3cdec3e33c357a9)bin466 -> 466 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/22428d703928706be3fe50aeceb1b6c0e4b8fb6a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/22428d703928706be3fe50aeceb1b6c0e4b8fb6a)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/22bdc1862e0f67efd0361eb48586b9c0471200a3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/22bdc1862e0f67efd0361eb48586b9c0471200a3)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/22be0a6153d98fee0f1e66b1732ace3f7e101a38 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/22be0a6153d98fee0f1e66b1732ace3f7e101a38)bin910 -> 910 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/22f5d7f81cec74dcda661f55d9f75ee6416c805d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/22f5d7f81cec74dcda661f55d9f75ee6416c805d)bin347 -> 347 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/23c3a3707f150a291a602cf67e08a43bf74d0080 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/23c3a3707f150a291a602cf67e08a43bf74d0080)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/23cc4afcc1a6ddcaa69e48066428389290551964 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/23cc4afcc1a6ddcaa69e48066428389290551964)bin2118 -> 2118 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/243c270342dc8c50ab4899441ac16539b96d62f0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/243c270342dc8c50ab4899441ac16539b96d62f0)bin654 -> 654 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/245c374ad541b6fe6f473c48f1ed0c6e94c5353d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/245c374ad541b6fe6f473c48f1ed0c6e94c5353d)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/24af7d87cff37ffb9f2bac24034bb6f44979b764 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/24af7d87cff37ffb9f2bac24034bb6f44979b764)bin555 -> 555 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/24e5d46bf0c70e4fe40d18e5c6a806fc2bc58e5f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/24e5d46bf0c70e4fe40d18e5c6a806fc2bc58e5f)bin642 -> 642 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/250b77493a6c05249fd749eb2c1a9d509cc8a9f7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/250b77493a6c05249fd749eb2c1a9d509cc8a9f7)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/250d404e3356eb4b79112b55b5809861a5c3c5af (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/250d404e3356eb4b79112b55b5809861a5c3c5af)bin16018 -> 16018 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/250e3e7692bb2a97b533e387a35de60e24d6e68a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/250e3e7692bb2a97b533e387a35de60e24d6e68a)bin668 -> 668 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/25b4b161587cf93b10b9a6d65b17ce5940866724 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/25b4b161587cf93b10b9a6d65b17ce5940866724)bin488 -> 488 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/25c5b760911c25664198c77a9c8b16e286e90d17 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/25c5b760911c25664198c77a9c8b16e286e90d17)bin1614 -> 1614 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/25cb76793052e2668bfcbaf43e07a3c663cbbabc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/25cb76793052e2668bfcbaf43e07a3c663cbbabc)bin571 -> 571 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/25f9f45a3b1b769a48a73dc8d21ac4e2878b7f99 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/25f9f45a3b1b769a48a73dc8d21ac4e2878b7f99)bin539 -> 539 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/264fc5521576dbad3f38b57b5816c643f3cff288 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/264fc5521576dbad3f38b57b5816c643f3cff288)bin310 -> 310 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/266365658c66266de33420781cf4b634003fdeb0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/266365658c66266de33420781cf4b634003fdeb0)bin478 -> 478 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/266536bb25724635d338cfe549a1e0d40812692f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/266536bb25724635d338cfe549a1e0d40812692f)bin256 -> 256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/269f44165be421f6918551452fe55c219055babe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/269f44165be421f6918551452fe55c219055babe)bin298 -> 298 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/26a4372e13ff0496760a02881f81bcc7c3127fb7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/26a4372e13ff0496760a02881f81bcc7c3127fb7)bin762 -> 762 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/26b666e67dcc15ce37230896bb45e95192b0ed19 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/26b666e67dcc15ce37230896bb45e95192b0ed19)bin1423 -> 1423 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/26f9c44bb213e6ee11fdba9a3331c2898e36bf1f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/26f9c44bb213e6ee11fdba9a3331c2898e36bf1f)bin491 -> 491 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/270f1630df1408469ec8f9996039fcc7ae4c89fa (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/270f1630df1408469ec8f9996039fcc7ae4c89fa)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2759facfcf2b1c844e42a725a9be6eb3d9d2a2af (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2759facfcf2b1c844e42a725a9be6eb3d9d2a2af)bin1153 -> 1153 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/275b8f15397cf0cfb7207b9a8bd206509bd10016 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/275b8f15397cf0cfb7207b9a8bd206509bd10016)bin720 -> 720 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/27938c059167804103b853b8a003d66976ffbffd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/27938c059167804103b853b8a003d66976ffbffd)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/27a80a6efc119cc824e05ba0a2fbacdeeaca3060 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/27a80a6efc119cc824e05ba0a2fbacdeeaca3060)bin823 -> 823 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/27d33481a8b2404f1b58826f96cce9e1bc944076 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/27d33481a8b2404f1b58826f96cce9e1bc944076)bin873 -> 873 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/27e8614aab3d7d0e729edde50c12a71a6a630a5f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/27e8614aab3d7d0e729edde50c12a71a6a630a5f)bin500 -> 500 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/27faeb321e4b4846d0d782149ae42a753f5017a5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/27faeb321e4b4846d0d782149ae42a753f5017a5)bin457 -> 457 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2835f591b45e72b5536a65bd8dcc4badee310cdc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2835f591b45e72b5536a65bd8dcc4badee310cdc)bin401 -> 401 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/285b5654c99dc84f8a56a18821f2f502127900eb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/285b5654c99dc84f8a56a18821f2f502127900eb)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/28691e3a4b6ab384375df8617eef8ee88dfc7fff (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/28691e3a4b6ab384375df8617eef8ee88dfc7fff)bin331 -> 331 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/28a0d638a3f2961925717266b7c6060e83d2435a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/28a0d638a3f2961925717266b7c6060e83d2435a)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/28e43266b3ec680cb68e7983022b1b1787afff19 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/28e43266b3ec680cb68e7983022b1b1787afff19)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/29353ee84989da69f2c7dcca8adaf7a213ee557d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/29353ee84989da69f2c7dcca8adaf7a213ee557d)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2941be653274862db75c4d668ac6df77f9392a38 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2941be653274862db75c4d668ac6df77f9392a38)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2a5e329a685aaf1ffa48b68d4a8eb81c86e358d4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2a5e329a685aaf1ffa48b68d4a8eb81c86e358d4)bin856 -> 856 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2ab752f935590ecf6ee4ccff6f155ecbd2437197 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2ab752f935590ecf6ee4ccff6f155ecbd2437197)bin826 -> 826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2ac2570b9f7e1c3e2b2ee158801dba232a0e4a2e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2ac2570b9f7e1c3e2b2ee158801dba232a0e4a2e)bin773 -> 773 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2b172292be8a5a3e92b522b49ee59b0199138669 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2b172292be8a5a3e92b522b49ee59b0199138669)bin4789 -> 4789 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2b3127f0919908d4970a311e4dc2eeacf599ec5b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2b3127f0919908d4970a311e4dc2eeacf599ec5b)bin163 -> 163 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2b560ed1c8e0e6f666a23149b4cdc1c0fb8804a5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2b560ed1c8e0e6f666a23149b4cdc1c0fb8804a5)bin727 -> 727 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2b7d2e421bcbe60706e26b70365ca78b3e19eb2b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2b7d2e421bcbe60706e26b70365ca78b3e19eb2b)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2bd79012e36b7691dbb60de71bc69b32f63c3e04 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2bd79012e36b7691dbb60de71bc69b32f63c3e04)bin983 -> 983 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2c923c30a4dbf6fe4869b9e7a45b7d99020efa4e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2c923c30a4dbf6fe4869b9e7a45b7d99020efa4e)bin275 -> 275 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2cc24055ce1d88a4190e9fe2c68215bc6f4940de (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2cc24055ce1d88a4190e9fe2c68215bc6f4940de)bin1272 -> 1272 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2cc339c1aca8f259cc73279011cc96765ea52551 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2cc339c1aca8f259cc73279011cc96765ea52551)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2ccd0f1e573c358c2cebdede69a2d4cd48218960 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2ccd0f1e573c358c2cebdede69a2d4cd48218960)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2d54db2e7d2d6f7fe0e980e692e57c8beb83096d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2d54db2e7d2d6f7fe0e980e692e57c8beb83096d)bin1714 -> 1714 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2d7731197530918f772b1060381cd6395106981e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2d7731197530918f772b1060381cd6395106981e)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2d8c9f30ed5e14ac3ea81356a290ce84884162bf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2d8c9f30ed5e14ac3ea81356a290ce84884162bf)bin14664 -> 14664 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2d9fe0c229f6b7e086e91373c7c4042280f19809 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2d9fe0c229f6b7e086e91373c7c4042280f19809)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2db4833f85f679f11af68ffa804d1f1359c64536 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2db4833f85f679f11af68ffa804d1f1359c64536)bin363 -> 363 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2dcd8990fc0418def99ec4921f9e101fd8b2123e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2dcd8990fc0418def99ec4921f9e101fd8b2123e)bin518 -> 518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2df5cf2c527f813cecd9b31ba03eda333cdc3c6d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2df5cf2c527f813cecd9b31ba03eda333cdc3c6d)bin8803 -> 8803 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2dfa23258b364f1b66e7dff7925706bc7e53c79b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2dfa23258b364f1b66e7dff7925706bc7e53c79b)bin1092 -> 1092 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2e0bc1990303c71b407346b78c4720486ac1bfc5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2e0bc1990303c71b407346b78c4720486ac1bfc5)bin411 -> 411 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2e1c0cd2a522573aa77894d4de869fba89391fb8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2e1c0cd2a522573aa77894d4de869fba89391fb8)bin654 -> 654 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2f16232a6201f7c069c597dc447d1263579b73ff (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2f16232a6201f7c069c597dc447d1263579b73ff)bin368 -> 368 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2f8946a4854679c511405e2be15f70e2c3c98c91 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2f8946a4854679c511405e2be15f70e2c3c98c91)bin217 -> 217 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2f9098d16bf645406a4d583524c3c2b154299c0a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2f9098d16bf645406a4d583524c3c2b154299c0a)bin1305 -> 1305 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2fa779e3e9359f9debccf89dace03b765e621dee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2fa779e3e9359f9debccf89dace03b765e621dee)bin323 -> 323 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2fae1664df3100785c417e40da58686ef7ca03fb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2fae1664df3100785c417e40da58686ef7ca03fb)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2fe3678cf432e18a7e21d57a18e23e51f790f8f4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2fe3678cf432e18a7e21d57a18e23e51f790f8f4)bin822 -> 822 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/2fec02aae07d238ee1c2d9e544731442be1d3814 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/2fec02aae07d238ee1c2d9e544731442be1d3814)bin1617 -> 1617 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3006055aae87a4058d1833785716dd6aa408540c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3006055aae87a4058d1833785716dd6aa408540c)bin574 -> 574 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/307774cf9be8a96c750cea71d3ec4ef2a6878c87 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/307774cf9be8a96c750cea71d3ec4ef2a6878c87)bin696 -> 696 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3081be41046a10922b147e7f59c9d60543d5372d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3081be41046a10922b147e7f59c9d60543d5372d)bin594 -> 594 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/30e071c224b05c059032a6d77c206a8e0301bed4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/30e071c224b05c059032a6d77c206a8e0301bed4)bin718 -> 718 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/318c1da222071a245989cbf57696104b70ac2ed8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/318c1da222071a245989cbf57696104b70ac2ed8)bin247 -> 247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/31a1786fbc6a61796a05534451184d0f8f697f74 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/31a1786fbc6a61796a05534451184d0f8f697f74)bin212 -> 212 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/31bf9255e749a2ee12f655b36c796749dfef5a02 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/31bf9255e749a2ee12f655b36c796749dfef5a02)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/31dd0c3817d956ab758d9b82b8cbc4634661cbb3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/31dd0c3817d956ab758d9b82b8cbc4634661cbb3)bin276 -> 276 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/31edf43d7db50e37761ecdbb05829daf39c5042e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/31edf43d7db50e37761ecdbb05829daf39c5042e)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/31f74cc6fa21434544d2e2b0a05e6c63804341b8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/31f74cc6fa21434544d2e2b0a05e6c63804341b8)bin513 -> 513 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/31fd55f70df4c9e2cf6b251913248fd44f407edf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/31fd55f70df4c9e2cf6b251913248fd44f407edf)bin547 -> 547 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/32570fb6ad5374a7b18f58d9c59d6449ea170650 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/32570fb6ad5374a7b18f58d9c59d6449ea170650)bin709 -> 709 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/328b9b20d35d1ded6146924dfbb39aaf2f74b365 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/328b9b20d35d1ded6146924dfbb39aaf2f74b365)bin1371 -> 1371 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/32cd0e5331c37cf160037e421a537b4b47a03021 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/32cd0e5331c37cf160037e421a537b4b47a03021)bin488 -> 488 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/32f4b19efea4b9d19297ee64f8091637310969ef (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/32f4b19efea4b9d19297ee64f8091637310969ef)bin833 -> 833 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/32fa89322c10ed26fc3eb40cf85ad1a35554e69e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/32fa89322c10ed26fc3eb40cf85ad1a35554e69e)bin206 -> 206 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33230fb1c6081f84bb8cbbbb0aab03e71c7907a0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33230fb1c6081f84bb8cbbbb0aab03e71c7907a0)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33319997a8c9e1641fef797c2a1d8e1ab38a923a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33319997a8c9e1641fef797c2a1d8e1ab38a923a)bin526 -> 526 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3352da314eba8c724bf8fab6bf64358dd37f9a6f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3352da314eba8c724bf8fab6bf64358dd37f9a6f)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/335756146520933c106c9be19eaab4613ebe50d1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/335756146520933c106c9be19eaab4613ebe50d1)bin825 -> 825 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3379208740df35035b80fc6add15f5f0e19b99ac (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3379208740df35035b80fc6add15f5f0e19b99ac)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33854b569d1598bf9e788e70ff71f04877071533 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33854b569d1598bf9e788e70ff71f04877071533)bin1337 -> 1337 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33b702896553ec686c00b86e0518238133e9efb1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33b702896553ec686c00b86e0518238133e9efb1)bin12569 -> 12569 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33c58e37739b2ea17054c4c9b3169988fabcd0af (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33c58e37739b2ea17054c4c9b3169988fabcd0af)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33d85126399eca3d7d58be54c8e5a4be4f4923ee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33d85126399eca3d7d58be54c8e5a4be4f4923ee)bin630 -> 630 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33defbce87dea7d131167a2f839ce188b86f4972 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33defbce87dea7d131167a2f839ce188b86f4972)bin689 -> 689 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/33e300e599a1989c4013b3cdc0dd90f12489673d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/33e300e599a1989c4013b3cdc0dd90f12489673d)bin798 -> 798 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/341b73f575d9234933caf81017c599e58a05e61e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/341b73f575d9234933caf81017c599e58a05e61e)bin525 -> 525 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/341c6809def8c2e7df08051521a1eb139374d85d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/341c6809def8c2e7df08051521a1eb139374d85d)bin463 -> 463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/346c1f63e10708b34ddfc4ccd8407946a5d5922d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/346c1f63e10708b34ddfc4ccd8407946a5d5922d)bin282 -> 282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/34c5f9cdc2a4038dde8b9c26207bfa0258f021d5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/34c5f9cdc2a4038dde8b9c26207bfa0258f021d5)bin1653 -> 1653 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/34cca0895edbc6037f8955606cfa4fd57056e557 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/34cca0895edbc6037f8955606cfa4fd57056e557)bin613 -> 613 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3548cfc594073fc64ee2fb290e28d15052290f58 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3548cfc594073fc64ee2fb290e28d15052290f58)bin383 -> 383 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/357e91d6f83424bce6057e959f5e4a8d9d0e43c7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/357e91d6f83424bce6057e959f5e4a8d9d0e43c7)bin414 -> 414 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/357fe6feca240785ace5c77240ef15d881c5321a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/357fe6feca240785ace5c77240ef15d881c5321a)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/35ad9c0e4c6a968728ead5dc9dbd9349f284a15b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/35ad9c0e4c6a968728ead5dc9dbd9349f284a15b)bin2613 -> 2613 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/35df4ed85c9f4209d7a156527f19ded6fb7e8f2b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/35df4ed85c9f4209d7a156527f19ded6fb7e8f2b)bin801 -> 801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/35e32bd7299e9cf64ab947ed4ce25a85e626c312 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/35e32bd7299e9cf64ab947ed4ce25a85e626c312)bin406 -> 406 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/363fc01608ffab56563a1240bf24f74503d20d75 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/363fc01608ffab56563a1240bf24f74503d20d75)bin783 -> 783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/364f818b5d5d9845dce5b58b068218d3e0775689 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/364f818b5d5d9845dce5b58b068218d3e0775689)bin602 -> 602 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/36a5c002effee0bbaf9148ce2ea4fd74a92fbc9d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/36a5c002effee0bbaf9148ce2ea4fd74a92fbc9d)bin621 -> 621 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/36cf3d022f731640f4597899405ac8d03d0cc758 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/36cf3d022f731640f4597899405ac8d03d0cc758)bin2297 -> 2297 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/36d07d7f3414c92c68dd64a92c0ab692ca333b1d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/36d07d7f3414c92c68dd64a92c0ab692ca333b1d)bin689 -> 689 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/373d1c21b5e979cd53576a3144cb814315b33ff9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/373d1c21b5e979cd53576a3144cb814315b33ff9)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3786bed8df66c9823ad3641d1e6cdb8a7852277b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3786bed8df66c9823ad3641d1e6cdb8a7852277b)bin1154 -> 1154 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3789295f56feaae13a78817807c43b7ebb21aecf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3789295f56feaae13a78817807c43b7ebb21aecf)bin1890 -> 1890 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/37aaf49a75eb363692d3ba542b546090be70a145 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/37aaf49a75eb363692d3ba542b546090be70a145)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/37f8effa6cda59350132432b117754b0f5ffb2ae (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/37f8effa6cda59350132432b117754b0f5ffb2ae)bin487 -> 487 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/38b5698107c8d40b7fa89345c7f80ded923edac7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/38b5698107c8d40b7fa89345c7f80ded923edac7)bin670 -> 670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/38ba653a1bbe15b9badc3e152a0e97f2794d2069 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/38ba653a1bbe15b9badc3e152a0e97f2794d2069)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/38daddfa5b31ab33cebb90a7c9242acbb165ea02 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/38daddfa5b31ab33cebb90a7c9242acbb165ea02)bin147 -> 147 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3935ddc83a59cd9e0c1026abacc47d205c851f37 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3935ddc83a59cd9e0c1026abacc47d205c851f37)bin530 -> 530 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/39388c4b707da65a9d4826f576c78f244053b93b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/39388c4b707da65a9d4826f576c78f244053b93b)bin397 -> 397 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/398997b02b0ebfbac30c7af4cf7acc89ca44711c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/398997b02b0ebfbac30c7af4cf7acc89ca44711c)bin741 -> 741 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/39aead285c2f7588d639b2f7eca7f4a670325ac8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/39aead285c2f7588d639b2f7eca7f4a670325ac8)bin463 -> 463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/39becb8538632595c649758966252332c1bd4fe7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/39becb8538632595c649758966252332c1bd4fe7)bin234 -> 234 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/39cd235e2f987e47928577f2812d43497753d2c9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/39cd235e2f987e47928577f2812d43497753d2c9)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/39ffd6d6d468e008377143bcbf0caadfa4134853 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/39ffd6d6d468e008377143bcbf0caadfa4134853)bin688 -> 688 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3a0c906145fcad6d0b2e9202cec620da4654eb88 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3a0c906145fcad6d0b2e9202cec620da4654eb88)bin469 -> 469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3a47bb99a21e339134adf7d3f63498983e380f45 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3a47bb99a21e339134adf7d3f63498983e380f45)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3a9e3e8b3a5b8d5aa0b7f8c7657e1ac651dacf42 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3a9e3e8b3a5b8d5aa0b7f8c7657e1ac651dacf42)bin977 -> 977 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3aa7a2514712b1b87f3f8d66dd9809e4237609ca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3aa7a2514712b1b87f3f8d66dd9809e4237609ca)bin1331 -> 1331 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3aba03c422b2f5d052a5ec3d19f0bd12f38d5888 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3aba03c422b2f5d052a5ec3d19f0bd12f38d5888)bin661 -> 661 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3aba7d2cc2fd23347d491150e65d6bcb1d81767d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3aba7d2cc2fd23347d491150e65d6bcb1d81767d)bin701 -> 701 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3acdca18abc3021956225097f71adadb5dd5d008 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3acdca18abc3021956225097f71adadb5dd5d008)bin662 -> 662 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3b15ab421c49f826f6f846823ee55e0fdf368c03 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3b15ab421c49f826f6f846823ee55e0fdf368c03)bin8881 -> 8881 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3b260005ee110efe098c1ba02f6b19fe3bc761eb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3b260005ee110efe098c1ba02f6b19fe3bc761eb)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3b524cf48bfc3457609466b647747115b8f2fe3d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3b524cf48bfc3457609466b647747115b8f2fe3d)bin489 -> 489 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3b5816076f0ed8163d24197086cc97e24825a099 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3b5816076f0ed8163d24197086cc97e24825a099)bin768 -> 768 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3b61a0d331e11a20e28e916d7e33e7681f88543e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3b61a0d331e11a20e28e916d7e33e7681f88543e)bin743 -> 743 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3ba29b70449726e76b6e10c865505d4a47642ca2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3ba29b70449726e76b6e10c865505d4a47642ca2)bin185 -> 185 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6)bin49518 -> 49518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3c1c52b8e7d2975d9750c384535e97c1d3e2f947 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3c1c52b8e7d2975d9750c384535e97c1d3e2f947)bin674 -> 674 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3c61c64f83940d5aeeb5c07c9bb8edb3600e83e5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3c61c64f83940d5aeeb5c07c9bb8edb3600e83e5)bin309 -> 309 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3c946294acdcf9f26acf572ba5328b6837bd69da (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3c946294acdcf9f26acf572ba5328b6837bd69da)bin228 -> 228 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3c9cea87a1f7b0fb48efef1d2cad6bc6675651c8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3c9cea87a1f7b0fb48efef1d2cad6bc6675651c8)bin574 -> 574 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3cca566e627e731d98a496c3a5306be2810938f1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3cca566e627e731d98a496c3a5306be2810938f1)bin721 -> 721 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3cd3a8b9a8c5038304d68378c96fd94425f15d11 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3cd3a8b9a8c5038304d68378c96fd94425f15d11)bin601 -> 601 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3d73962124411351a36dcae0e19fbad7ea81d2df (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3d73962124411351a36dcae0e19fbad7ea81d2df)bin512 -> 512 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3d8a6ecd795f5d93618890b7f8fd0da98804722d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3d8a6ecd795f5d93618890b7f8fd0da98804722d)bin778 -> 778 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3db518f76f46cd2b44288a953c395cca7c2ec4b4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3db518f76f46cd2b44288a953c395cca7c2ec4b4)bin588 -> 588 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3e19d86af04fd65764246104fce28e5203649faa (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3e19d86af04fd65764246104fce28e5203649faa)bin822 -> 822 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3e27fc2214cb3a2cbb3eca083b7333593b6b598b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3e27fc2214cb3a2cbb3eca083b7333593b6b598b)bin704 -> 704 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3e3572f9fc07136eb5afd6c75eee6665315efa13 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3e3572f9fc07136eb5afd6c75eee6665315efa13)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3e41ced773573ec99d944aeed2053d849c818981 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3e41ced773573ec99d944aeed2053d849c818981)bin411 -> 411 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3e41f56f7c5b9e9a9cb8d49039f24b8673f7a66c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3e41f56f7c5b9e9a9cb8d49039f24b8673f7a66c)bin919 -> 919 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3e6f5a3735dc074871acc056279bfca02dd94817 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3e6f5a3735dc074871acc056279bfca02dd94817)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3ece06a147632ff83e80275be1d736843283d3ed (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3ece06a147632ff83e80275be1d736843283d3ed)bin571 -> 571 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3ed3c0343d5187f5b54732e8a976867452d881fb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3ed3c0343d5187f5b54732e8a976867452d881fb)bin559 -> 559 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3efaf675d35f51401cb3e9b64f46022ec7248642 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3efaf675d35f51401cb3e9b64f46022ec7248642)bin473 -> 473 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3efd96bb17a54a3852d5826b5ddc59e32008e306 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3efd96bb17a54a3852d5826b5ddc59e32008e306)bin720 -> 720 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3f0e745408806de69e2ab3b103e3bfe4e91c073c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3f0e745408806de69e2ab3b103e3bfe4e91c073c)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3f0f12a61ff750ad3a5aeb569bd35afdd0b26122 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3f0f12a61ff750ad3a5aeb569bd35afdd0b26122)bin298 -> 298 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3f100d71a2ec94b9a10d60b0eda03b1856ded2b4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3f100d71a2ec94b9a10d60b0eda03b1856ded2b4)bin768 -> 768 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3f12a1c81fe8ed555f3008bb7c9e176e4008fe98 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3f12a1c81fe8ed555f3008bb7c9e176e4008fe98)bin254 -> 254 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3f2e8ec82071cdaa22dee56d9b13c658f1a05cb5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3f2e8ec82071cdaa22dee56d9b13c658f1a05cb5)bin944 -> 944 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3f54ac391586da1d4024b6e8e2dd298191d96485 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3f54ac391586da1d4024b6e8e2dd298191d96485)bin830 -> 830 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3f8f0f8fdeebebe72ebc3843c65f5da5dc78b3cc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3f8f0f8fdeebebe72ebc3843c65f5da5dc78b3cc)bin14687 -> 14687 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3fbe2e93a1e009064a9d79d0dcdc053d6d36ccdf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3fbe2e93a1e009064a9d79d0dcdc053d6d36ccdf)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/3ff57ee65b12b32ae5ae263b22224ce6ca887bd9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/3ff57ee65b12b32ae5ae263b22224ce6ca887bd9)bin234 -> 234 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/400cdffafdc456604dd3a1604759e4ea4313bad9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/400cdffafdc456604dd3a1604759e4ea4313bad9)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4015007910b0053ff3353424b1ccb5e0a6270b2c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4015007910b0053ff3353424b1ccb5e0a6270b2c)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4032fe7871ca3b7bc80cdd81e8f22bb09b146618 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4032fe7871ca3b7bc80cdd81e8f22bb09b146618)bin829 -> 829 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/404eca19519e34460899dc41a301d1f5fc9c53eb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/404eca19519e34460899dc41a301d1f5fc9c53eb)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/409f6f9009327924cf1668673b1534b4fd976164 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/409f6f9009327924cf1668673b1534b4fd976164)bin508 -> 508 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/40c7e752568aa125578b2fbcf5ca777bdf0149c8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/40c7e752568aa125578b2fbcf5ca777bdf0149c8)bin835 -> 835 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/40f05f7fd3080c1733825cb9fcc610e009ce3bb3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/40f05f7fd3080c1733825cb9fcc610e009ce3bb3)bin980 -> 980 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/413cb21ec3ccaddadc72eba240cc400f240796a9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/413cb21ec3ccaddadc72eba240cc400f240796a9)bin790 -> 790 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/415d6fdd287609084213405ffb298c94eef77fa1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/415d6fdd287609084213405ffb298c94eef77fa1)bin761 -> 761 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/415f8c7be462f14c4b754e43d7979f02588d71e3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/415f8c7be462f14c4b754e43d7979f02588d71e3)bin163 -> 163 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/41c41ab7cca7e15be91397c1941c99e1c84597a1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/41c41ab7cca7e15be91397c1941c99e1c84597a1)bin247 -> 247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/422318e49a607eacfa533d2c5d5e03393765c9b4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/422318e49a607eacfa533d2c5d5e03393765c9b4)bin212 -> 212 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/42300db369abc33283a253fdf5723f181513857e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/42300db369abc33283a253fdf5723f181513857e)bin307 -> 307 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/428dca89443910a39e1aaf647713d28311a1aa0c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/428dca89443910a39e1aaf647713d28311a1aa0c)bin934 -> 934 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/42aca30ff82bec1963018b74aa2843701373ff00 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/42aca30ff82bec1963018b74aa2843701373ff00)bin12629 -> 12629 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/42ec2117a6872ba9c96468bfde00dbc089cc9278 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/42ec2117a6872ba9c96468bfde00dbc089cc9278)bin2190 -> 2190 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/431c82c5c959ee25c9d60e82e809bab3757f2656 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/431c82c5c959ee25c9d60e82e809bab3757f2656)bin340 -> 340 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/432c192b10f1e517e3ea1d460dc6c664dccdcbff (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/432c192b10f1e517e3ea1d460dc6c664dccdcbff)bin476 -> 476 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4339d524529d21cef9d1f897bda2f8cc8c8c053b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4339d524529d21cef9d1f897bda2f8cc8c8c053b)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/43a6cc3d797e438f58fd0a7f7c07d08292559b30 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/43a6cc3d797e438f58fd0a7f7c07d08292559b30)bin5926 -> 5926 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/43accbb2add765a3ce527ecdb6c2689762d9aa02 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/43accbb2add765a3ce527ecdb6c2689762d9aa02)bin765 -> 765 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/43ad00d64ad65a5181a752f58bf33834f01bb7ba (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/43ad00d64ad65a5181a752f58bf33834f01bb7ba)bin861 -> 861 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/43d28d7bdaea8de4efc206171a4fbd19477f3cca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/43d28d7bdaea8de4efc206171a4fbd19477f3cca)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/441a41186507d6328a9d4c1a9777435539cf510f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/441a41186507d6328a9d4c1a9777435539cf510f)bin490 -> 490 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/444da9a7df5fcd55392540a919d86145358706d4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/444da9a7df5fcd55392540a919d86145358706d4)bin776 -> 776 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/44bb6aef06544b57b07d5949046b91aba4aa593b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/44bb6aef06544b57b07d5949046b91aba4aa593b)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/44c3e8a182ac71a39545c11ffe8b4df8bf7ff822 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/44c3e8a182ac71a39545c11ffe8b4df8bf7ff822)bin217 -> 217 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/44d334cdda9ff0779f47eebaa718c82033d69938 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/44d334cdda9ff0779f47eebaa718c82033d69938)bin238 -> 238 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/44e1786a273fbacbe6a1cc2c60dc4d68fb3fbce6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/44e1786a273fbacbe6a1cc2c60dc4d68fb3fbce6)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/44f72d7e548feeaf687ba8d8a7527383c3d16988 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/44f72d7e548feeaf687ba8d8a7527383c3d16988)bin829 -> 829 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/44fc3ae1f11981b4c5c597e23e06d8f8a89bdefb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/44fc3ae1f11981b4c5c597e23e06d8f8a89bdefb)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4534d8455669f1e040ec267821325fd2300b1362 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4534d8455669f1e040ec267821325fd2300b1362)bin8623 -> 8623 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/454928db526b0da0787eb5514b6a37a53b697f61 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/454928db526b0da0787eb5514b6a37a53b697f61)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/45556ada34f5271d5aee22d75d12e0c69156453e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/45556ada34f5271d5aee22d75d12e0c69156453e)bin692 -> 692 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/458dfdb56d3d255a901d7803e2739f9ca5362e22 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/458dfdb56d3d255a901d7803e2739f9ca5362e22)bin530 -> 530 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/45c838599b873413a4b5c2d6a4813acc0034eebc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/45c838599b873413a4b5c2d6a4813acc0034eebc)bin836 -> 836 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/45fc0f8e82cc1cb19ec95f120e9b8d3feb3aeccd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/45fc0f8e82cc1cb19ec95f120e9b8d3feb3aeccd)bin590 -> 590 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/465032600bb2457ddbc95ec67afa685c70c51d27 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/465032600bb2457ddbc95ec67afa685c70c51d27)bin488 -> 488 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/46a6878d4544b29c2362ba2dec9a8cc5ddbfe513 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/46a6878d4544b29c2362ba2dec9a8cc5ddbfe513)bin605 -> 605 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/46a7383e8bd1483acc77dc13fcdb238ab9249294 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/46a7383e8bd1483acc77dc13fcdb238ab9249294)bin462 -> 462 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/470ef1f0cf80bf9cdea9c8193567a64f520cc00a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/470ef1f0cf80bf9cdea9c8193567a64f520cc00a)bin15824 -> 15824 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4719163e21b94ed46d62cb326529f79b9ed45db4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4719163e21b94ed46d62cb326529f79b9ed45db4)bin683 -> 683 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/473231b7a186d03f5367209da01166859b4e9984 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/473231b7a186d03f5367209da01166859b4e9984)bin614 -> 614 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/47542662be4b8369ffc811ab7f2942e9eaa8ac71 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/47542662be4b8369ffc811ab7f2942e9eaa8ac71)bin169 -> 169 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/47775a98484ed9a99419e9304d0a7d54d1f007b8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/47775a98484ed9a99419e9304d0a7d54d1f007b8)bin499 -> 499 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/477f0db981468564913c884310c143d6796b52a8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/477f0db981468564913c884310c143d6796b52a8)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/47f63e4058d9dd8fcfac6e1d8ce965eda4be678b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/47f63e4058d9dd8fcfac6e1d8ce965eda4be678b)bin543 -> 543 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/48167f1bc1c05c6cfaa81dd6f0cf64d82cdaa2ca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/48167f1bc1c05c6cfaa81dd6f0cf64d82cdaa2ca)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/481c334295ddd6f998394cb92966b6a0195554fc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/481c334295ddd6f998394cb92966b6a0195554fc)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/485a15ace20eb46e8b7277779492ef19f816a954 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/485a15ace20eb46e8b7277779492ef19f816a954)bin671 -> 671 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/48a04fe491e73cad964b93d7d8ea6aeaca111e98 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/48a04fe491e73cad964b93d7d8ea6aeaca111e98)bin330 -> 330 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/48d95eb8b60daa7ce7c9059a1c20606b9eec663f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/48d95eb8b60daa7ce7c9059a1c20606b9eec663f)bin209 -> 209 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/49073b1ade7b0a5fb8f6b0de5236ae153bfb5dd4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/49073b1ade7b0a5fb8f6b0de5236ae153bfb5dd4)bin722 -> 722 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4917ce1ec5e99a58ee29fdd2e9f3d4e32ca1a4a1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4917ce1ec5e99a58ee29fdd2e9f3d4e32ca1a4a1)bin163 -> 163 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/493f1e1c7d4b0e50a8c7b844abd43e38c827f4d4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/493f1e1c7d4b0e50a8c7b844abd43e38c827f4d4)bin810 -> 810 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4943c8a05f9056b9c2951a0d53fe451066e72a28 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4943c8a05f9056b9c2951a0d53fe451066e72a28)bin566 -> 566 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4957fe1a7dae4c1f74c30248e0c4b738e335272f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4957fe1a7dae4c1f74c30248e0c4b738e335272f)bin318 -> 318 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/495c7eb01786baf502d305e0d1910cc7252402d0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/495c7eb01786baf502d305e0d1910cc7252402d0)bin391 -> 391 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/498b5f4792cdbd45d9dcd0545aed53d63c926a3e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/498b5f4792cdbd45d9dcd0545aed53d63c926a3e)bin670 -> 670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4990a29db922fc68411ae751317245dd998dab92 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4990a29db922fc68411ae751317245dd998dab92)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/49980fc0fe0b68aae8fd8cc1b55a8cf6d11fba9b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/49980fc0fe0b68aae8fd8cc1b55a8cf6d11fba9b)bin3200 -> 3200 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/49ba88de746b8be18aa295d1ad4619caee58d156 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/49ba88de746b8be18aa295d1ad4619caee58d156)bin163 -> 163 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca)bin49518 -> 49518 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4a44e7ea556983430a372721976be6eb5ddc5f76 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4a44e7ea556983430a372721976be6eb5ddc5f76)bin924 -> 924 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4a6ca2345290f6eef23da1767bd7fb45b5d94a19 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4a6ca2345290f6eef23da1767bd7fb45b5d94a19)bin279 -> 279 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4a72ceac5e8d51f664caf8350222b389a6178fa0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4a72ceac5e8d51f664caf8350222b389a6178fa0)bin648 -> 648 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4a8283ecf7d23ca91ec75f2eddba59c978f6b2bf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4a8283ecf7d23ca91ec75f2eddba59c978f6b2bf)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4ac2693ec2ffaa859379002c509406c92f7a68f0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4ac2693ec2ffaa859379002c509406c92f7a68f0)bin259 -> 259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4acd7bb49bd7df52fa923fabcd13160e086f91f3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4acd7bb49bd7df52fa923fabcd13160e086f91f3)bin633 -> 633 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4b7406e01b2faced95c5234c67ff0254b6d9c533 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4b7406e01b2faced95c5234c67ff0254b6d9c533)bin290 -> 290 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4b800d6c6c454e7241949fc40459a8b307bf8a19 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4b800d6c6c454e7241949fc40459a8b307bf8a19)bin690 -> 690 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4bbc6134d8cb3847db04549b13c650ba25cef4ea (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4bbc6134d8cb3847db04549b13c650ba25cef4ea)bin1841 -> 1841 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4c2d1bdf5e2c68093bbe2e6a417bd127664b45bc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4c2d1bdf5e2c68093bbe2e6a417bd127664b45bc)bin310 -> 310 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4c37a08fa7f93c63f79cdaa5c0376bb1588bbd17 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4c37a08fa7f93c63f79cdaa5c0376bb1588bbd17)bin1577 -> 1577 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4c44f1a540cfbbd7d6ffebb685d2c6c2ef74e7cb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4c44f1a540cfbbd7d6ffebb685d2c6c2ef74e7cb)bin364 -> 364 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4c5be675a7b7d23182c1938d84e45ab94607a957 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4c5be675a7b7d23182c1938d84e45ab94607a957)bin838 -> 838 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4c7e2412a6b6cff23cf0be5f3d584f7b35e99763 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4c7e2412a6b6cff23cf0be5f3d584f7b35e99763)bin14700 -> 14700 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4c83a71f4d94be43b3a9f2c13d81bff08b28378b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4c83a71f4d94be43b3a9f2c13d81bff08b28378b)bin766 -> 766 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4c895a3c55f489fbbb70fe9ed29fe0cde6b71b16 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4c895a3c55f489fbbb70fe9ed29fe0cde6b71b16)bin1090 -> 1090 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4d12fd19fee08a4acc80aee3c9bcf62165630cf6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4d12fd19fee08a4acc80aee3c9bcf62165630cf6)bin801 -> 801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4d19fcf8c3b42b2da318aefc7adbfc1ccfaf3a03 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4d19fcf8c3b42b2da318aefc7adbfc1ccfaf3a03)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4d3a603523d5e9a48a0cb9fe4983b1d5d74d0543 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4d3a603523d5e9a48a0cb9fe4983b1d5d74d0543)bin210 -> 210 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4d654d0523f7999c5864989f5b2e8c8d1ffa0bfa (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4d654d0523f7999c5864989f5b2e8c8d1ffa0bfa)bin2648 -> 2648 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4dbf5f89c1093d9c9ea40229d1ab6cd7f7f8c986 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4dbf5f89c1093d9c9ea40229d1ab6cd7f7f8c986)bin742 -> 742 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4dc4bea19040093bedac3dcaf8b380fdd1eb6f2f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4dc4bea19040093bedac3dcaf8b380fdd1eb6f2f)bin582 -> 582 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4defd0bcf9c95347b8a3ec96901b9f05901a8fb5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4defd0bcf9c95347b8a3ec96901b9f05901a8fb5)bin582 -> 582 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4e23b47544b0bd89bf7bd5f70af0690c8e966b49 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4e23b47544b0bd89bf7bd5f70af0690c8e966b49)bin282 -> 282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4e4b16f29033a0b9d644a9008b05ba35f1192e82 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4e4b16f29033a0b9d644a9008b05ba35f1192e82)bin679 -> 679 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4e5bf2f8f2fcfe0f142563fd64a0b1f171e58914 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4e5bf2f8f2fcfe0f142563fd64a0b1f171e58914)bin585 -> 585 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4e7c649cb00de0fa26881b8ffeb4fae93e5f3a6c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4e7c649cb00de0fa26881b8ffeb4fae93e5f3a6c)bin187 -> 187 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4f13a89e3d5aa870b95937f45669be3bc8794401 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4f13a89e3d5aa870b95937f45669be3bc8794401)bin472 -> 472 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4f41e3709814d8f28b61843104e47b3cc51c11f4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4f41e3709814d8f28b61843104e47b3cc51c11f4)bin607 -> 607 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4f6a428209cfde249f611dd8dbbde9b68de89abb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4f6a428209cfde249f611dd8dbbde9b68de89abb)bin678 -> 678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4f78afd3f140d8f07e7897f2100bbd44cd746fd9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4f78afd3f140d8f07e7897f2100bbd44cd746fd9)bin549 -> 549 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4fb5de3760455afcbd7e7b39abf5cda6b8986151 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4fb5de3760455afcbd7e7b39abf5cda6b8986151)bin395 -> 395 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4fb892dafb3fbcba3b40e4c31ea883814fa693e4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4fb892dafb3fbcba3b40e4c31ea883814fa693e4)bin294 -> 294 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4fc720c29231b995c79fe07bd2ac34ae65719a28 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4fc720c29231b995c79fe07bd2ac34ae65719a28)bin236 -> 236 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4fcf2a88ac32d07f0cf9aae7ad8884844afe3ce0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4fcf2a88ac32d07f0cf9aae7ad8884844afe3ce0)bin194 -> 194 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4fdfd71753462210d7a3789d84431184e566115f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4fdfd71753462210d7a3789d84431184e566115f)bin565 -> 565 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4fec63219e9e37afa57fac6c9defa0c15671b790 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4fec63219e9e37afa57fac6c9defa0c15671b790)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/4ff9e2e39b56c1169b7945b8a2da40faf2f0f840 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/4ff9e2e39b56c1169b7945b8a2da40faf2f0f840)bin927 -> 927 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5015c921d0b12469459905dc52299f7373c39ff8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5015c921d0b12469459905dc52299f7373c39ff8)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/502d6759ac659d99834ed97dffefafa22ca58005 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/502d6759ac659d99834ed97dffefafa22ca58005)bin219 -> 219 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/50358ea58e22515acd70dce1ed98472a7d6f3886 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/50358ea58e22515acd70dce1ed98472a7d6f3886)bin348 -> 348 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/507cd9da9528e464c247e46330889e31466a9fb9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/507cd9da9528e464c247e46330889e31466a9fb9)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/50b67225db55c76e8749907875c90dfa8c9727fa (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/50b67225db55c76e8749907875c90dfa8c9727fa)bin739 -> 739 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/51219308b6f04b2d2074196bae92caa416449d61 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/51219308b6f04b2d2074196bae92caa416449d61)bin779 -> 779 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/513749760e17ebce1c042b151186e60361c93432 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/513749760e17ebce1c042b151186e60361c93432)bin810 -> 810 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/514c8bcb7744cf7321bf2065fee786269a634f1b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/514c8bcb7744cf7321bf2065fee786269a634f1b)bin492 -> 492 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/51aaea15de2bec221769f7fc2de11c0c578cdede (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/51aaea15de2bec221769f7fc2de11c0c578cdede)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/51d36e40a9a2ff90dfd61636109d484d4c82a3a2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/51d36e40a9a2ff90dfd61636109d484d4c82a3a2)bin444 -> 444 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/51d68906c4b41c56743cfe7833374cd39fa4dd3d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/51d68906c4b41c56743cfe7833374cd39fa4dd3d)bin1847 -> 1847 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/51e783b1723ed8b86ad9a978bbe006fa30fee413 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/51e783b1723ed8b86ad9a978bbe006fa30fee413)bin677 -> 677 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/52857f71ae48035d2d8cf0f3b68e1b909f06eab7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/52857f71ae48035d2d8cf0f3b68e1b909f06eab7)bin796 -> 796 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5289b102d7e25a8f63ff05172a7aed5f43e60702 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5289b102d7e25a8f63ff05172a7aed5f43e60702)bin3296 -> 3296 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/52a48bbf66d53852364d29487ec9ffca7faf1615 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/52a48bbf66d53852364d29487ec9ffca7faf1615)bin661 -> 661 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/52a9ee2ad190fa1b4840c6a0f132db57bc8fcd62 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/52a9ee2ad190fa1b4840c6a0f132db57bc8fcd62)bin772 -> 772 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/52b62220d6e438f9f73ba44b31dc0f71d5139e27 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/52b62220d6e438f9f73ba44b31dc0f71d5139e27)bin681 -> 681 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/531a548fc9e36f3bc2b79c09b10d32a91a6d67e3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/531a548fc9e36f3bc2b79c09b10d32a91a6d67e3)bin453 -> 453 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/536b36c69339ab0819126e0f6e71f42f9dac91e1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/536b36c69339ab0819126e0f6e71f42f9dac91e1)bin759 -> 759 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/53848c610c0841100579d4a3e02d47dd0c9bfb4a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/53848c610c0841100579d4a3e02d47dd0c9bfb4a)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5387d7717b9e8e8255f1c63c3b2194f2364cdc14 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5387d7717b9e8e8255f1c63c3b2194f2364cdc14)bin651 -> 651 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/53faaf5da5103264717761c302f61b1285bc5313 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/53faaf5da5103264717761c302f61b1285bc5313)bin1599 -> 1599 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/54578e791ca4210287a0998b661f54b5e0be93b1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/54578e791ca4210287a0998b661f54b5e0be93b1)bin731 -> 731 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5469859f4014a4f383b43addee64a767111565ee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5469859f4014a4f383b43addee64a767111565ee)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/54bb2043ae274428aa289e0f9cfacb094d618940 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/54bb2043ae274428aa289e0f9cfacb094d618940)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/54f00ae542937c8dbf1c0424e9d6abef58ff58c4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/54f00ae542937c8dbf1c0424e9d6abef58ff58c4)bin527 -> 527 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5538f271da1147104cf5432b28504b6b90ac39d0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5538f271da1147104cf5432b28504b6b90ac39d0)bin758 -> 758 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/553dcc4e0f7cc891361b279672252f5a4ffcfab8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/553dcc4e0f7cc891361b279672252f5a4ffcfab8)bin1027 -> 1027 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5549f543467fd4a66c5c6111b67d52b18ce5048c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5549f543467fd4a66c5c6111b67d52b18ce5048c)bin592 -> 592 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5574c5ce41b769be9c4294dd12d04d9538c4c2cc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5574c5ce41b769be9c4294dd12d04d9538c4c2cc)bin527 -> 527 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/55812aec84145eaec905f13ce1b0fc39a371ffe4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/55812aec84145eaec905f13ce1b0fc39a371ffe4)bin574 -> 574 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/559905a80361479b5730fdc459ae1089361442d7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/559905a80361479b5730fdc459ae1089361442d7)bin833 -> 833 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/559ea47690de639d68296b4336be4476fc1ae483 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/559ea47690de639d68296b4336be4476fc1ae483)bin721 -> 721 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/55b5a360ae09d76d6de114b35b8116204e302760 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/55b5a360ae09d76d6de114b35b8116204e302760)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/55e518e1f90a61e53129f0a73c0344285ddaf29f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/55e518e1f90a61e53129f0a73c0344285ddaf29f)bin493 -> 493 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/562366d5b85e4c4e06df184908c91d92f591a00a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/562366d5b85e4c4e06df184908c91d92f591a00a)bin824 -> 824 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/562b12a18c196c3795567af6bd7f5bc27782ac2e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/562b12a18c196c3795567af6bd7f5bc27782ac2e)bin910 -> 910 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/563c232c277ff97cd026cfe75d83b15ac36ece3b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/563c232c277ff97cd026cfe75d83b15ac36ece3b)bin261 -> 261 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/56590213c0c71afdbf768e3a55649b447f71f517 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/56590213c0c71afdbf768e3a55649b447f71f517)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/56641e56ec7aa677c9874efed9eedbdfde415b1f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/56641e56ec7aa677c9874efed9eedbdfde415b1f)bin489 -> 489 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/567269475d3c4dbdb513d31a71a0aebab839d1b6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/567269475d3c4dbdb513d31a71a0aebab839d1b6)bin1973 -> 1973 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/568938014d21993b5a5f6bec185cb2726df2e7ce (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/568938014d21993b5a5f6bec185cb2726df2e7ce)bin492 -> 492 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/56b52ea2817609bc07cdfba3ddaf02451328f6bc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/56b52ea2817609bc07cdfba3ddaf02451328f6bc)bin526 -> 526 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/571d6face3ebb2051e3d371fe87477b4e6f8a445 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/571d6face3ebb2051e3d371fe87477b4e6f8a445)bin617 -> 617 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/572fa0f29e80ecacc525031e60521ca3538105de (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/572fa0f29e80ecacc525031e60521ca3538105de)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/57598c5ab58cb564983c7fc87b0317179d7dd98d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/57598c5ab58cb564983c7fc87b0317179d7dd98d)bin2411 -> 2411 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/579cbafff9b000f2df9de173d9afd63af6de9a78 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/579cbafff9b000f2df9de173d9afd63af6de9a78)bin282 -> 282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/57c5c3715bf36159f5ae46d56d124bd046d27f74 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/57c5c3715bf36159f5ae46d56d124bd046d27f74)bin708 -> 708 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/57e36d00ef25c453409ee41d851174162615b72b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/57e36d00ef25c453409ee41d851174162615b72b)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/58107969e2f34685493191503d0fb225308f9e58 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/58107969e2f34685493191503d0fb225308f9e58)bin699 -> 699 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5819be623f089aac93495f8979caec23371f2445 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5819be623f089aac93495f8979caec23371f2445)bin826 -> 826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/58475a494b23827e103df01fdcf69f3d0e894f30 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/58475a494b23827e103df01fdcf69f3d0e894f30)bin310 -> 310 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/588c4b7c05f092b0fd6f2242bcebbfd8c3a5475c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/588c4b7c05f092b0fd6f2242bcebbfd8c3a5475c)bin808 -> 808 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/58a166f7f86dfc1f50ea42ac4761ecbaa6c72ef8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/58a166f7f86dfc1f50ea42ac4761ecbaa6c72ef8)bin1072 -> 1072 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/58c53a60376f88259f1eff9f4cc4a8b70cfaa29b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/58c53a60376f88259f1eff9f4cc4a8b70cfaa29b)bin910 -> 910 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/58e559e583e5490f9b833f7e8d4ba6f3248aa621 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/58e559e583e5490f9b833f7e8d4ba6f3248aa621)bin796 -> 796 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/591f12274daa80ddaa5ffff3740e01abaa02259d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/591f12274daa80ddaa5ffff3740e01abaa02259d)bin434 -> 434 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5977b51ff7ece0e0f0c7193a903bd2ec01875adb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5977b51ff7ece0e0f0c7193a903bd2ec01875adb)bin993 -> 993 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/597aec279ec668a91db03e293b3bb86ffa7f4438 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/597aec279ec668a91db03e293b3bb86ffa7f4438)bin722 -> 722 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5a0a6d3b8fd2563ca30b496feb37474426fbe455 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5a0a6d3b8fd2563ca30b496feb37474426fbe455)bin1266 -> 1266 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5a27dc3b09e64feb925768bbd66e7016e274ebf7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5a27dc3b09e64feb925768bbd66e7016e274ebf7)bin810 -> 810 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5a46381dbfc3d44a1ac4f1f781673cd9d408a8e2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5a46381dbfc3d44a1ac4f1f781673cd9d408a8e2)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5a68ac27ac68dbee818eccebefb8722d41cd98b6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5a68ac27ac68dbee818eccebefb8722d41cd98b6)bin2470 -> 2470 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5a7138c3a1aaefe63e0703972244aa13bcab1f03 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5a7138c3a1aaefe63e0703972244aa13bcab1f03)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5ab02acc030f129ae9380593937d8f977b25ed66 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5ab02acc030f129ae9380593937d8f977b25ed66)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5ad5a0a0b69641dd8aec8fdf324a206cf2a6ad82 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5ad5a0a0b69641dd8aec8fdf324a206cf2a6ad82)bin516 -> 516 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5b6dbf0ad3bc61b3f781fe3321f6af39f74224c4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5b6dbf0ad3bc61b3f781fe3321f6af39f74224c4)bin629 -> 629 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5b8ec1dcc327e9c4765748d96a545bcde0ace9d0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5b8ec1dcc327e9c4765748d96a545bcde0ace9d0)bin821 -> 821 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5bc9e17a775facd0ae67d9375f9e479fc643c85d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5bc9e17a775facd0ae67d9375f9e479fc643c85d)bin2592 -> 2592 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5c189e7bba5a756ded885284a35fc19ef08e8971 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5c189e7bba5a756ded885284a35fc19ef08e8971)bin721 -> 721 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5c7c2f522c46da367534d1150bbe19b78f838728 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5c7c2f522c46da367534d1150bbe19b78f838728)bin309 -> 309 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5d2245e53b003bb2bf5850296bc6499cc5451660 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5d2245e53b003bb2bf5850296bc6499cc5451660)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5d76f9fb0640aa33a88f608ecbbfc1c8eefde977 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5d76f9fb0640aa33a88f608ecbbfc1c8eefde977)bin11173 -> 11173 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5e2bd0810b464c2cfbb308eace9c7dac8a68cc3d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5e2bd0810b464c2cfbb308eace9c7dac8a68cc3d)bin247 -> 247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5e3c9dc3fd71bcad49e24cbd6291baa88afcd8d1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5e3c9dc3fd71bcad49e24cbd6291baa88afcd8d1)bin1138 -> 1138 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5e640cc70859a629d6d0879b094be8d8c61a60d3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5e640cc70859a629d6d0879b094be8d8c61a60d3)bin544 -> 544 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5ea0eabe52866948cc119ba299ff27d06e565d3f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5ea0eabe52866948cc119ba299ff27d06e565d3f)bin496 -> 496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5eecf000487e2bbad2f286368c698972a80089f3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5eecf000487e2bbad2f286368c698972a80089f3)bin776 -> 776 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5ef52706065fba6606e9ef5b42211348043b678e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5ef52706065fba6606e9ef5b42211348043b678e)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5f145e8a3a786d61da9143577c3b420dca61bc83 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5f145e8a3a786d61da9143577c3b420dca61bc83)bin241 -> 241 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5f564622635285e9130c2c992f0c0bdbc56603c6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5f564622635285e9130c2c992f0c0bdbc56603c6)bin552 -> 552 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5feb478f1d94bd1e3c46ca3cb918c99ad595fb32 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5feb478f1d94bd1e3c46ca3cb918c99ad595fb32)bin420 -> 420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/5feb4cd41dadb87fca3b5d845c0becdbab4d92e9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/5feb4cd41dadb87fca3b5d845c0becdbab4d92e9)bin632 -> 632 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/601c16de34a9ac7776c4cca3247a1381707d1415 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/601c16de34a9ac7776c4cca3247a1381707d1415)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/60254c425dff40717188dcf4e4e0d53bcf671753 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/60254c425dff40717188dcf4e4e0d53bcf671753)bin292 -> 292 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6065ba18b987a42f744a6df32f8ff0c58e90d6ec (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6065ba18b987a42f744a6df32f8ff0c58e90d6ec)bin1072 -> 1072 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/607d52c62515a7c195ba0ec0e463a65a115dbd7e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/607d52c62515a7c195ba0ec0e463a65a115dbd7e)bin1405 -> 1405 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/60ff1f73d7ba44917366ad9ddd1824d45a5c1428 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/60ff1f73d7ba44917366ad9ddd1824d45a5c1428)bin14139 -> 14139 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78)bin85 -> 85 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/614ef3bdf824bca993178a9facef1889c4455e92 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/614ef3bdf824bca993178a9facef1889c4455e92)bin175 -> 175 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6176fd81784e966e792a9ce85e9781028bd94ed0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6176fd81784e966e792a9ce85e9781028bd94ed0)bin389 -> 389 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/61a706ba322adb87da597dfec02c02ee2896b622 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/61a706ba322adb87da597dfec02c02ee2896b622)bin873 -> 873 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/61cf54cc38dd97bd8ef42137eefaf8470ac0b306 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/61cf54cc38dd97bd8ef42137eefaf8470ac0b306)bin204 -> 204 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/61fc5888c4cf538f9ae82990813cd79c76040548 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/61fc5888c4cf538f9ae82990813cd79c76040548)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/62858480bd0d87ddf8f012142a52a21d8966bb30 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/62858480bd0d87ddf8f012142a52a21d8966bb30)bin299 -> 299 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/62aeadd6f7138af653210601181cd00ac4c89471 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/62aeadd6f7138af653210601181cd00ac4c89471)bin3583 -> 3583 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/62bc3b8e2884b5c81f147323f4e8daab4262eacb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/62bc3b8e2884b5c81f147323f4e8daab4262eacb)bin910 -> 910 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/62ce1c19f53eacc354d33c333c3b066be90e7ec1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/62ce1c19f53eacc354d33c333c3b066be90e7ec1)bin350 -> 350 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/62d0d6bff3964af954f9276a46d3fe7c068cb479 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/62d0d6bff3964af954f9276a46d3fe7c068cb479)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/62fedb2944680379301979bc7445bd1600e41bbc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/62fedb2944680379301979bc7445bd1600e41bbc)bin807 -> 807 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/63052a9c3756f7f5ee52148d26815fb9f34984e3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/63052a9c3756f7f5ee52148d26815fb9f34984e3)bin362 -> 362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/63110246a1c06ced129349625f530b26ec31dd9e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/63110246a1c06ced129349625f530b26ec31dd9e)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6349aeda6d7fe03970ff0289db5ae74e13aeeb1f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6349aeda6d7fe03970ff0289db5ae74e13aeeb1f)bin792 -> 792 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6359880dcbe029334e3ca8fd88e8a7e44077f327 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6359880dcbe029334e3ca8fd88e8a7e44077f327)bin1860 -> 1860 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/63d20ec2e20f1b581eb855bd74b59826a321a84a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/63d20ec2e20f1b581eb855bd74b59826a321a84a)bin553 -> 553 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/63fdd84e12bba6dc1177600458f0b942c40fdddd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/63fdd84e12bba6dc1177600458f0b942c40fdddd)bin975 -> 975 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/653046a1c7f08348c19b29cdb4d615cf32bd0a9d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/653046a1c7f08348c19b29cdb4d615cf32bd0a9d)bin422 -> 422 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/65d1329b350e9b8632b2c17df25aaa5a624c3adc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/65d1329b350e9b8632b2c17df25aaa5a624c3adc)bin601 -> 601 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/65ec8cfda856d454e6942fa83d9e698fd7c738f5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/65ec8cfda856d454e6942fa83d9e698fd7c738f5)bin1803 -> 1803 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6631f3eac92c44befd248285a2db075e3db55de7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6631f3eac92c44befd248285a2db075e3db55de7)bin163 -> 163 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/664dec3816d669c59d3319050f9b96507859ddab (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/664dec3816d669c59d3319050f9b96507859ddab)bin828 -> 828 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/66a61f49976882048ac66c63af1439b7f11c5352 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/66a61f49976882048ac66c63af1439b7f11c5352)bin326 -> 326 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/66c466a6ef7c71799d52076bb266d0ab771d33dd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/66c466a6ef7c71799d52076bb266d0ab771d33dd)bin477 -> 477 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/66c6f729430f04f3d3c9fa313e06870aa04bf55b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/66c6f729430f04f3d3c9fa313e06870aa04bf55b)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/66f93756a26e74dfe1f8bc639cd01ef2f35d907b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/66f93756a26e74dfe1f8bc639cd01ef2f35d907b)bin332 -> 332 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/66f9e68b3430b99e9157b057d3e3962b9f362dab (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/66f9e68b3430b99e9157b057d3e3962b9f362dab)bin535 -> 535 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/671a1cc87aa1a8b4a6b0d25ef1121115a2c86476 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/671a1cc87aa1a8b4a6b0d25ef1121115a2c86476)bin972 -> 972 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6770df412608b3641b995587dea34c621c4732c0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6770df412608b3641b995587dea34c621c4732c0)bin245 -> 245 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/67913ce6b25d2f5e581434fe4ea14b5ee541c71a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/67913ce6b25d2f5e581434fe4ea14b5ee541c71a)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/67ab141f85d6e894008fed96e34e232a584a32ef (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/67ab141f85d6e894008fed96e34e232a584a32ef)bin84 -> 84 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/67e3209e1329f3808333cd60a401de2dc58b6c9a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/67e3209e1329f3808333cd60a401de2dc58b6c9a)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/680fa9f421ece89ad316ea74f661a19820e21306 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/680fa9f421ece89ad316ea74f661a19820e21306)bin738 -> 738 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6813e57763faf730bf824dd3e4db78ad7bf27837 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6813e57763faf730bf824dd3e4db78ad7bf27837)bin888 -> 888 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/686362648cd169021198e09ae1f131e5a653c985 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/686362648cd169021198e09ae1f131e5a653c985)bin937 -> 937 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6873b0464bf6d4c500c0c8a0139a7d45e45b4d3f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6873b0464bf6d4c500c0c8a0139a7d45e45b4d3f)bin600 -> 600 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/68a1173d7e81742ee3ac37a8a574dc8daf8a415e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/68a1173d7e81742ee3ac37a8a574dc8daf8a415e)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/68d6ca0d6d00d2767c44bebb2977f64dd2c5bf81 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/68d6ca0d6d00d2767c44bebb2977f64dd2c5bf81)bin343 -> 343 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/68deb7f03cc9ead6e11d101ff5a255c88049eb2a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/68deb7f03cc9ead6e11d101ff5a255c88049eb2a)bin6749 -> 6749 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/691178c6705cb1f13f6edbfe252ebc3cf8e7030a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/691178c6705cb1f13f6edbfe252ebc3cf8e7030a)bin1537 -> 1537 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6960bea717a598984a67ddbabd011487ccb82836 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6960bea717a598984a67ddbabd011487ccb82836)bin698 -> 698 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/697d061d07336b4adc239abd3dc17101526f3449 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/697d061d07336b4adc239abd3dc17101526f3449)bin294 -> 294 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/697e69f77c3a4b2b700c3a48a396fc1ade5e29f6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/697e69f77c3a4b2b700c3a48a396fc1ade5e29f6)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6985ceb74e4be435455fdc3eecc8821584499f6d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6985ceb74e4be435455fdc3eecc8821584499f6d)bin3127 -> 3127 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/698a4bd62eeb5f78473edab579c2c1be9bb588ee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/698a4bd62eeb5f78473edab579c2c1be9bb588ee)bin8634 -> 8634 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/699f419f22cd776e0d84e6ae38beb87d6f7de7e7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/699f419f22cd776e0d84e6ae38beb87d6f7de7e7)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/69a3a27c560588a4f7d2bf70cc9d312b5fa8c426 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/69a3a27c560588a4f7d2bf70cc9d312b5fa8c426)bin669 -> 669 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/69b189c4f2b3a107e443b7d79413b5c95c6c6e94 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/69b189c4f2b3a107e443b7d79413b5c95c6c6e94)bin379 -> 379 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/69cda0f7f78d9ac16d8400eb0b1d17294961545a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/69cda0f7f78d9ac16d8400eb0b1d17294961545a)bin325 -> 325 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6a33dd9efb1dc1d8c23627f051f637f584f48c56 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6a33dd9efb1dc1d8c23627f051f637f584f48c56)bin606 -> 606 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6a4a425a4c0d490efbd8f9a8891fa5545cf28a34 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6a4a425a4c0d490efbd8f9a8891fa5545cf28a34)bin520 -> 520 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6a8f5f20dc7bc2d575320a04d821139c512acb0b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6a8f5f20dc7bc2d575320a04d821139c512acb0b)bin608 -> 608 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6ab0a4b8826fb1bf266c79ffd4bd968f7e474bf8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6ab0a4b8826fb1bf266c79ffd4bd968f7e474bf8)bin481 -> 481 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6b060334a7159f40e80d046b74676ee1e2a41c80 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6b060334a7159f40e80d046b74676ee1e2a41c80)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6b2b0180bd2e13be6bcad3dc1df2666bf35b9adc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6b2b0180bd2e13be6bcad3dc1df2666bf35b9adc)bin551 -> 551 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6b3e808a51c0f2cda43c1dfdd368f03d7d0600b8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6b3e808a51c0f2cda43c1dfdd368f03d7d0600b8)bin233 -> 233 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6b4c2fc4a7c204374444b7c5a62698f305b61832 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6b4c2fc4a7c204374444b7c5a62698f305b61832)bin434 -> 434 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6bc6f0c3c1cd3291db9fc9b23c2de44bdcfd9c73 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6bc6f0c3c1cd3291db9fc9b23c2de44bdcfd9c73)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6c0e0320535946f182b7a139f52a175851efccdd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6c0e0320535946f182b7a139f52a175851efccdd)bin600 -> 600 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6c19bddd71599aec4f0c9d50abf69fa5ae534352 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6c19bddd71599aec4f0c9d50abf69fa5ae534352)bin806 -> 806 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6c26a676525d4abbf51d77f62df44eba28770d4e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6c26a676525d4abbf51d77f62df44eba28770d4e)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6c7202e3c0a205d38927fa085e868adcbded1375 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6c7202e3c0a205d38927fa085e868adcbded1375)bin758 -> 758 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6cc8b8623dcd6e4f94e63c5f341b13875f067537 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6cc8b8623dcd6e4f94e63c5f341b13875f067537)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6cca7b745ee4735b99d1673fc2a41135468ff8c5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6cca7b745ee4735b99d1673fc2a41135468ff8c5)bin1938 -> 1938 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6cea3afcf5527e744d3d61167969f86ba7406840 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6cea3afcf5527e744d3d61167969f86ba7406840)bin607 -> 607 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6d0e509bd9a9fd1b9443ba744ffef0e424cbdf11 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6d0e509bd9a9fd1b9443ba744ffef0e424cbdf11)bin384 -> 384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6d44d9fe879d835f28bdbb2867f4a81dcda694c4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6d44d9fe879d835f28bdbb2867f4a81dcda694c4)bin468 -> 468 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6d6f315183b02c3329058e42a3286ae562dae483 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6d6f315183b02c3329058e42a3286ae562dae483)bin790 -> 790 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6da305c96eeb951b7e375d6be5ed612be22727cd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6da305c96eeb951b7e375d6be5ed612be22727cd)bin395 -> 395 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6db51bd5a74618562a02633c1c704c131d12bd9c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6db51bd5a74618562a02633c1c704c131d12bd9c)bin575 -> 575 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6dcbdf3ee81569ba37bea3ef3b47b9dfc2403894 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6dcbdf3ee81569ba37bea3ef3b47b9dfc2403894)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6de90ebeb30a16d387f3ba4110bc08a0367e6ae8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6de90ebeb30a16d387f3ba4110bc08a0367e6ae8)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6e3216c661fa6d6f679dcf3b3b4bcad966ca9bcf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6e3216c661fa6d6f679dcf3b3b4bcad966ca9bcf)bin292 -> 292 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6e45d43ace6fb470033087a13a5f1f1ab72f99fb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6e45d43ace6fb470033087a13a5f1f1ab72f99fb)bin388 -> 388 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6e5593dc4be1c4810a1622b43eb0fea9f19f53ad (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6e5593dc4be1c4810a1622b43eb0fea9f19f53ad)bin599 -> 599 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6e81a71be439340bd684b822abe774967cd61485 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6e81a71be439340bd684b822abe774967cd61485)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6e9fc7b7914f42bbc272ed1dab13e467c3bdd0cf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6e9fc7b7914f42bbc272ed1dab13e467c3bdd0cf)bin252 -> 252 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6ea91f26b36463d5ef010ee7f70c1cb50bdcba9e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6ea91f26b36463d5ef010ee7f70c1cb50bdcba9e)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6eb49c33324afc2cc3c1098b2f2ede6580095db2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6eb49c33324afc2cc3c1098b2f2ede6580095db2)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6eecaa9127fbfd0937497f859af068cc41e30f83 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6eecaa9127fbfd0937497f859af068cc41e30f83)bin305 -> 305 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6f153763dd1dd16901e0951f87b3fbd925f2ee59 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6f153763dd1dd16901e0951f87b3fbd925f2ee59)bin791 -> 791 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6f1e78bea0497b5d1d9d5dd928b878f6478b1b6a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6f1e78bea0497b5d1d9d5dd928b878f6478b1b6a)bin806 -> 806 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6f276982832b06ddbc87fa61fb7df4a50f68a796 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6f276982832b06ddbc87fa61fb7df4a50f68a796)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6f4577401eda0c8a1f66eb8db9b774cc8d4c7b68 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6f4577401eda0c8a1f66eb8db9b774cc8d4c7b68)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6f6fd889e621c642374d3e5540302d1eaf29f2f6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6f6fd889e621c642374d3e5540302d1eaf29f2f6)bin484 -> 484 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/6f7ee13e96c2fa757698af9a2d31563f8b966792 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/6f7ee13e96c2fa757698af9a2d31563f8b966792)bin1219 -> 1219 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/707a0032a021bb1a8b6d5ea20fc759cff0729194 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/707a0032a021bb1a8b6d5ea20fc759cff0729194)bin11157 -> 11157 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/709c0ea48b5ed8474818b3e2994b2e4c5ca9bb80 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/709c0ea48b5ed8474818b3e2994b2e4c5ca9bb80)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/710743f967ea304a09f1fe53618bc677ab6d5ebc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/710743f967ea304a09f1fe53618bc677ab6d5ebc)bin721 -> 721 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/717499af3a6a69fab9048a64fdcada145872ab5e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/717499af3a6a69fab9048a64fdcada145872ab5e)bin702 -> 702 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/71ab30de9c245a63972867f537a8bb0dbf0def94 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/71ab30de9c245a63972867f537a8bb0dbf0def94)bin413 -> 413 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/71fbecc0fc227c6ab36869dd78828245ec9be793 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/71fbecc0fc227c6ab36869dd78828245ec9be793)bin399 -> 399 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7251335cc929c39033fbfccb736fc5d14c6c709f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7251335cc929c39033fbfccb736fc5d14c6c709f)bin258 -> 258 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/725a25ff6d3016c688c8b0b5b9b6d318174ba61e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/725a25ff6d3016c688c8b0b5b9b6d318174ba61e)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/725fe2c3c7d85c9edcb60bff3af9db165bea05c6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/725fe2c3c7d85c9edcb60bff3af9db165bea05c6)bin256 -> 256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7260f289cede0d05bb6ade911ae44816b693ca48 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7260f289cede0d05bb6ade911ae44816b693ca48)bin664 -> 664 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/72978612170472d3c473e64bfd770df7a6c2aebd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/72978612170472d3c473e64bfd770df7a6c2aebd)bin826 -> 826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/72d5bfd7e36c11f81b8d3883f7fc100eb60f4c5e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/72d5bfd7e36c11f81b8d3883f7fc100eb60f4c5e)bin557 -> 557 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/73334e31f8708cd6e548a3afde13344bf14c3011 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/73334e31f8708cd6e548a3afde13344bf14c3011)bin692 -> 692 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7463eccb884d1797c5ebda9e336a0779aa622d3e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7463eccb884d1797c5ebda9e336a0779aa622d3e)bin811 -> 811 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7513ccf39776694b82323e405ab200efacda0526 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7513ccf39776694b82323e405ab200efacda0526)bin574 -> 574 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/752ce70e9a29af21425e2406561d0cfc6738600e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/752ce70e9a29af21425e2406561d0cfc6738600e)bin626 -> 626 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/752f300d7600b354d7f8f2f2085823ade064b28f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/752f300d7600b354d7f8f2f2085823ade064b28f)bin493 -> 493 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/75496995cb65e66729691bb9aea8e9567b3e18f8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/75496995cb65e66729691bb9aea8e9567b3e18f8)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/75893228ac61914ee6ddf5dc8a835ecb826aa510 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/75893228ac61914ee6ddf5dc8a835ecb826aa510)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/75fac9d808cca64336c9524fe574abf15b80464a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/75fac9d808cca64336c9524fe574abf15b80464a)bin726 -> 726 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7627e49e449d616d5cbcc38dcbc79b2011a17821 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7627e49e449d616d5cbcc38dcbc79b2011a17821)bin550 -> 550 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7639ef7d684466fc8b44ae50775ac76d41f5ab16 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7639ef7d684466fc8b44ae50775ac76d41f5ab16)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/764545e8f30912204fd9e86fbb7e43a1fb720a67 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/764545e8f30912204fd9e86fbb7e43a1fb720a67)bin562 -> 562 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/764cad29d7ae2bedff77865f7e23d7bf94364051 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/764cad29d7ae2bedff77865f7e23d7bf94364051)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/765198952cff6bc0df96ea3cb16e1bd98939573d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/765198952cff6bc0df96ea3cb16e1bd98939573d)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7658690e5af51cd960491960c0a10b2d862d7bc2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7658690e5af51cd960491960c0a10b2d862d7bc2)bin471 -> 471 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7681dfce00c85408c00a6fd8b9ae5955ed3b3af2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7681dfce00c85408c00a6fd8b9ae5955ed3b3af2)bin738 -> 738 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/76b2716611b661b49f0a21f74e113678908b14e9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/76b2716611b661b49f0a21f74e113678908b14e9)bin700 -> 700 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/76dc9978e1c1fee88d8483564a161d819e022d9d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/76dc9978e1c1fee88d8483564a161d819e022d9d)bin180 -> 180 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/76f1d566c6eeaed3462cb1162afc65853a00a069 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/76f1d566c6eeaed3462cb1162afc65853a00a069)bin1657 -> 1657 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/76f92adf58d02e76a85f215b3bbd9995b4ca50a2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/76f92adf58d02e76a85f215b3bbd9995b4ca50a2)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/770688d0e23051cfe3372ba10912a1ad919c11b7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/770688d0e23051cfe3372ba10912a1ad919c11b7)bin780 -> 780 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/773e12bc1f2a3361fc1290396e8da7c2c70a2e9f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/773e12bc1f2a3361fc1290396e8da7c2c70a2e9f)bin690 -> 690 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7740138532b2a0571778281e3427811f844faa3d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7740138532b2a0571778281e3427811f844faa3d)bin510 -> 510 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7748ae247712730303197e7a7e97db4bebe3c654 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7748ae247712730303197e7a7e97db4bebe3c654)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/77555b12eed0cb5c3b070136330572e43153dcb0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/77555b12eed0cb5c3b070136330572e43153dcb0)bin798 -> 798 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7781c8fb4cf34aa0ae56751434603c6783da7a4d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7781c8fb4cf34aa0ae56751434603c6783da7a4d)bin595 -> 595 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/77a4dd68d2234524eb656a51b164d9d8c08b1a7f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/77a4dd68d2234524eb656a51b164d9d8c08b1a7f)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/77d896d20fb68836789b0d797808e23115b13bc3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/77d896d20fb68836789b0d797808e23115b13bc3)bin489 -> 489 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/77e3c54a18ae5f8f62335ca7b843830063526df5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/77e3c54a18ae5f8f62335ca7b843830063526df5)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/77f8fbdec94bfda2c92b4933c9cd8c509db0dd34 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/77f8fbdec94bfda2c92b4933c9cd8c509db0dd34)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/78395e6ede2746b1aa5310dfac7c25addcef1835 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/78395e6ede2746b1aa5310dfac7c25addcef1835)bin12569 -> 12569 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/78a804d0528ff0d6a26d22c21213171494ff5eed (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/78a804d0528ff0d6a26d22c21213171494ff5eed)bin839 -> 839 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/78c9018cac81fc29fb61f94d1e27fa31a0897ea4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/78c9018cac81fc29fb61f94d1e27fa31a0897ea4)bin281 -> 281 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/78cfc59f03e6493d663d283372401e848e5ecce7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/78cfc59f03e6493d663d283372401e848e5ecce7)bin309 -> 309 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/78ddfca07e445a04d88b535734e630a1fa1d9455 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/78ddfca07e445a04d88b535734e630a1fa1d9455)bin325 -> 325 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7913a42cfa97e792340dd3a89194c69bbb418446 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7913a42cfa97e792340dd3a89194c69bbb418446)bin689 -> 689 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/79218650d5849f6959af9caa344efe2c566dfb22 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/79218650d5849f6959af9caa344efe2c566dfb22)bin606 -> 606 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/79300b1439e3263aca547de303ee205b067a562e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/79300b1439e3263aca547de303ee205b067a562e)bin681 -> 681 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/794a314789983cb9260053202821f258fa205bc5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/794a314789983cb9260053202821f258fa205bc5)bin1912 -> 1912 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/79574a8d9791a7325c7870d9286067eb796d9b35 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/79574a8d9791a7325c7870d9286067eb796d9b35)bin714 -> 714 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7992e46693090da66621e691ef87a30f71f8edb8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7992e46693090da66621e691ef87a30f71f8edb8)bin613 -> 613 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/79de32e0704a556c3e80b6393b050b74387c0306 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/79de32e0704a556c3e80b6393b050b74387c0306)bin353 -> 353 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/79eccf34d524c9bab9adab5205b7796e73152245 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/79eccf34d524c9bab9adab5205b7796e73152245)bin224 -> 224 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7a3a3552f09484010572bb46a1fd188cc7358b46 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7a3a3552f09484010572bb46a1fd188cc7358b46)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7a72afe0c11c6c6a7866fc209fbca7323541a13c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7a72afe0c11c6c6a7866fc209fbca7323541a13c)bin310 -> 310 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7a785f1dc93e17c56c0aed2d2fa7080628762d55 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7a785f1dc93e17c56c0aed2d2fa7080628762d55)bin771 -> 771 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7b2d2a7d8bcadf1dce34542756fe9f29446105e7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7b2d2a7d8bcadf1dce34542756fe9f29446105e7)bin671 -> 671 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7b4113eb7ecee3c29a4cd47cb6501997031eabe2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7b4113eb7ecee3c29a4cd47cb6501997031eabe2)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7b71637cdbd7eca84116f12436601493e127c4b3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7b71637cdbd7eca84116f12436601493e127c4b3)bin1367 -> 1367 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7bd720651a5928f54d0a7e32fb7a5193aaa8b655 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7bd720651a5928f54d0a7e32fb7a5193aaa8b655)bin3368 -> 3368 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7be8736e413375de55f4eb9d1e60d6ebfa4b45ef (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7be8736e413375de55f4eb9d1e60d6ebfa4b45ef)bin422 -> 422 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7bfd50b1fe7c30d8aea18101442beca4dd69f3a5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7bfd50b1fe7c30d8aea18101442beca4dd69f3a5)bin347 -> 347 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7c00bedc50af3465f9258fd93352cd437309075f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7c00bedc50af3465f9258fd93352cd437309075f)bin832 -> 832 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7c0baef1e802fa9359909d32c8858a1f9edd6647 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7c0baef1e802fa9359909d32c8858a1f9edd6647)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7c3dcd5898a2215453bb55d2bc46c56722e2308b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7c3dcd5898a2215453bb55d2bc46c56722e2308b)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7c3eebd91d674bf5ec70da55ea92f2ba1d1c5dba (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7c3eebd91d674bf5ec70da55ea92f2ba1d1c5dba)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7c86ff34cc6020967e0461362171faedf2b2f011 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7c86ff34cc6020967e0461362171faedf2b2f011)bin280 -> 280 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7d2e14bdf2d85882dfffae5a250870cd50e26067 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7d2e14bdf2d85882dfffae5a250870cd50e26067)bin324 -> 324 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7d4143684bf25ebbd28514a4bc63a7c0c93af3cc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7d4143684bf25ebbd28514a4bc63a7c0c93af3cc)bin919 -> 919 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7d5637c68e461ea7386fc453025e6f296d079cf2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7d5637c68e461ea7386fc453025e6f296d079cf2)bin629 -> 629 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7d8e86b621f0ee525698a377d46a83391cd64442 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7d8e86b621f0ee525698a377d46a83391cd64442)bin493 -> 493 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7d937909e4e682504e98dc7544d4e55a72bd3829 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7d937909e4e682504e98dc7544d4e55a72bd3829)bin551 -> 551 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7da6ffe7a66585c917679a457bce81072fe73a09 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7da6ffe7a66585c917679a457bce81072fe73a09)bin1021 -> 1021 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7dadb77934a66c2882d95a8806ec170939632565 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7dadb77934a66c2882d95a8806ec170939632565)bin1104 -> 1104 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7db95ed91f2716b5642877e9ef3f15f2396bd010 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7db95ed91f2716b5642877e9ef3f15f2396bd010)bin585 -> 585 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7dfd05b5cfc1dd3af1d44c8700eeab0e0d5b3d56 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7dfd05b5cfc1dd3af1d44c8700eeab0e0d5b3d56)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7e988244d5b2232fc3608bc5914303d4d2ca1173 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7e988244d5b2232fc3608bc5914303d4d2ca1173)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7eaaaa64a0100981c5375c5c0528e9c63649b742 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7eaaaa64a0100981c5375c5c0528e9c63649b742)bin801 -> 801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7ecd12a0d4e9a7fab8a28a96c54f62fa55e9a6ec (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7ecd12a0d4e9a7fab8a28a96c54f62fa55e9a6ec)bin801 -> 801 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7ede5f477eb7929c133277ffab33b0835aa0dc1b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7ede5f477eb7929c133277ffab33b0835aa0dc1b)bin187 -> 187 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7f25d74f3eff8092fabe15e95c82745e7ff4e01f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7f25d74f3eff8092fabe15e95c82745e7ff4e01f)bin218 -> 218 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7fa736f11b49d6497bcdf65045ce43e55404abba (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7fa736f11b49d6497bcdf65045ce43e55404abba)bin446 -> 446 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7fb12ee59b922edc93a0a0289ff84c2db0e4562b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7fb12ee59b922edc93a0a0289ff84c2db0e4562b)bin486 -> 486 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/7fbe145662f59b4adefc177d682439855eeb4b3d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/7fbe145662f59b4adefc177d682439855eeb4b3d)bin582 -> 582 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/801a3908f98733379718900e72384f4a1856a0dc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/801a3908f98733379718900e72384f4a1856a0dc)bin429 -> 429 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8048d8c850af1c2777faef78f027925c39ed6f66 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8048d8c850af1c2777faef78f027925c39ed6f66)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/805ad3e664739430df2d0d30b541f460f9349ec7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/805ad3e664739430df2d0d30b541f460f9349ec7)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/80aea00407d1290e6af5dda0fd6db7a30b1df161 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/80aea00407d1290e6af5dda0fd6db7a30b1df161)bin589 -> 589 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/810bb205711e12018fe11320c8d97483775d30db (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/810bb205711e12018fe11320c8d97483775d30db)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8169a536de6318bcf353a17fa52360a7068dd30b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8169a536de6318bcf353a17fa52360a7068dd30b)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8182e3fb5853b3fdf3ffe35c684c267239f448f6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8182e3fb5853b3fdf3ffe35c684c267239f448f6)bin457 -> 457 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/818d46a55162159d9f039fc1b5a055d6ce3bcd81 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/818d46a55162159d9f039fc1b5a055d6ce3bcd81)bin406 -> 406 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/81df3635ec4185424d48f9e24c66057ecccb649c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/81df3635ec4185424d48f9e24c66057ecccb649c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/82284626271ff4461420ce544ca2889e3622ccdf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/82284626271ff4461420ce544ca2889e3622ccdf)bin999 -> 999 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8244ebc12f596c40a37fb840380b0002b891a6f1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8244ebc12f596c40a37fb840380b0002b891a6f1)bin3670 -> 3670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/82672f02a9acf904fa0163074aa1452115e4f17b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/82672f02a9acf904fa0163074aa1452115e4f17b)bin494 -> 494 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/827ff22cdfdc2d021dc59eca33f573327039232c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/827ff22cdfdc2d021dc59eca33f573327039232c)bin547 -> 547 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/82a7e2aee0b98897d45ea9b3fa964ea5f4c32c34 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/82a7e2aee0b98897d45ea9b3fa964ea5f4c32c34)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/82df17276c6a7e621d75f7d8e2a097e296d0d1fe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/82df17276c6a7e621d75f7d8e2a097e296d0d1fe)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/82e92cb75e88c5b5e874e43fea98f41a1efd7591 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/82e92cb75e88c5b5e874e43fea98f41a1efd7591)bin671 -> 671 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8311548634c0c3a6159bab1c8be09a5c7493b5cb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8311548634c0c3a6159bab1c8be09a5c7493b5cb)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8331e41d6908454418c2d2dc216e56cd9cee8c0c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8331e41d6908454418c2d2dc216e56cd9cee8c0c)bin237 -> 237 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8336bf00372e91212dcb19ec1f4113cc5ba39552 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8336bf00372e91212dcb19ec1f4113cc5ba39552)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/834ce3d2d90488298c448e682031f7b5a9e98b7c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/834ce3d2d90488298c448e682031f7b5a9e98b7c)bin816 -> 816 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8400e3f1599da910183b245388d22d2fd51c0b4d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8400e3f1599da910183b245388d22d2fd51c0b4d)bin1830 -> 1830 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/84403f0be1a76f407512e34c69b7726bdc9f8904 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/84403f0be1a76f407512e34c69b7726bdc9f8904)bin9316 -> 9316 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/847b4e7873c9f42b552d2661b72aa6acd0d439b7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/847b4e7873c9f42b552d2661b72aa6acd0d439b7)bin592 -> 592 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/84ba4d0fa3eae9c7e4e8f3b4438facb69ed8edc8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/84ba4d0fa3eae9c7e4e8f3b4438facb69ed8edc8)bin512 -> 512 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/84be72ddb132bc5d367ca093120a41e2f685d167 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/84be72ddb132bc5d367ca093120a41e2f685d167)bin150 -> 150 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/84cf3a66b3ee6c0c52b54e9e2f44e1b9e3710e66 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/84cf3a66b3ee6c0c52b54e9e2f44e1b9e3710e66)bin716 -> 716 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/84e3e02acf732e4bd729a11b6949b9f74908fe88 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/84e3e02acf732e4bd729a11b6949b9f74908fe88)bin462 -> 462 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/852ac58bbec432a5a41a667bc2a57e3739d4c1bd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/852ac58bbec432a5a41a667bc2a57e3739d4c1bd)bin493 -> 493 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/854b9fbf8258c219584a7083479e9a03d76b6a8b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/854b9fbf8258c219584a7083479e9a03d76b6a8b)bin763 -> 763 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/85a159ab6ea43c26a61d077d98b2f48801489188 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/85a159ab6ea43c26a61d077d98b2f48801489188)bin446 -> 446 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/85a20fe6f440e02ee4e78109d51fa9380ad84a6d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/85a20fe6f440e02ee4e78109d51fa9380ad84a6d)bin827 -> 827 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8628442906b7e5c71fc8d07635c14647306367fe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8628442906b7e5c71fc8d07635c14647306367fe)bin840 -> 840 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/862a70d2f299fdd007b42f3f689e72fe66e734d1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/862a70d2f299fdd007b42f3f689e72fe66e734d1)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8656e8bfcb9fc1b74186e6d3673960ef174a74ba (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8656e8bfcb9fc1b74186e6d3673960ef174a74ba)bin799 -> 799 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8698775f22f20e0dcecf3e3f9b095dcf73d5b163 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8698775f22f20e0dcecf3e3f9b095dcf73d5b163)bin482 -> 482 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/869dad6b591f1eaa0ca67f23ba833c99ba4e5dc1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/869dad6b591f1eaa0ca67f23ba833c99ba4e5dc1)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/870afa011ef0dca94d5cf4ae5a65abd5b90ca93c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/870afa011ef0dca94d5cf4ae5a65abd5b90ca93c)bin471 -> 471 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/876db886584e8f78d1655f71a746ad6331b96043 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/876db886584e8f78d1655f71a746ad6331b96043)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8792d41f1e787744c279acb7fd4c445e2f6670d1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8792d41f1e787744c279acb7fd4c445e2f6670d1)bin1226 -> 1226 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/87ccb19206ff0f94e4fc66af76a9cc2a1ca520fe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/87ccb19206ff0f94e4fc66af76a9cc2a1ca520fe)bin279 -> 279 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/87e7b35540416ded5cd9957197b1e799c5a5e3f4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/87e7b35540416ded5cd9957197b1e799c5a5e3f4)bin700 -> 700 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/87ecb42a303c4b97a05f80d16dadd18ea7b67696 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/87ecb42a303c4b97a05f80d16dadd18ea7b67696)bin488 -> 488 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/881b55b506841ce8a948becad6faa9f4a37df7df (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/881b55b506841ce8a948becad6faa9f4a37df7df)bin839 -> 839 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/88492340d413a4d8107a3018b3c2080119b82f0a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/88492340d413a4d8107a3018b3c2080119b82f0a)bin682 -> 682 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/884ca03c7e0a3c18e145fb9b43b244d1e4692f40 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/884ca03c7e0a3c18e145fb9b43b244d1e4692f40)bin164 -> 164 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/884dd905ecb3a6fa96c0a9ab6240752dd4ce22cd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/884dd905ecb3a6fa96c0a9ab6240752dd4ce22cd)bin505 -> 505 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/88b59b6199ae9fe171d847448df585887dad4e08 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/88b59b6199ae9fe171d847448df585887dad4e08)bin1305 -> 1305 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/88bf3e0597124139e49c919bc56c27fb6ca14fe7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/88bf3e0597124139e49c919bc56c27fb6ca14fe7)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/88c92fcec0137ef974e4fd3e9c8d735dd0689260 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/88c92fcec0137ef974e4fd3e9c8d735dd0689260)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/891b12b84493c68ca6db2b0c594c883b6f442d3f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/891b12b84493c68ca6db2b0c594c883b6f442d3f)bin530 -> 530 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/89207089898bf15b7d5e65554e4a8915e33ac544 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/89207089898bf15b7d5e65554e4a8915e33ac544)bin826 -> 826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/897dffdb252ef2bbcbaa82726a4726d7a99f951c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/897dffdb252ef2bbcbaa82726a4726d7a99f951c)bin600 -> 600 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8987488b472653c913710cddd97a9ea3fdf4094a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8987488b472653c913710cddd97a9ea3fdf4094a)bin603 -> 603 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/89a36cd04a23131ab372e4a9887d99eefd431cce (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/89a36cd04a23131ab372e4a9887d99eefd431cce)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8a116256fc492a0c42541ef2e2fcdb9f9e60b3bc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8a116256fc492a0c42541ef2e2fcdb9f9e60b3bc)bin923 -> 923 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8a2bee14e6f5b5c0e7295c58315422a3a1093a30 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8a2bee14e6f5b5c0e7295c58315422a3a1093a30)bin1362 -> 1362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8ac02881c53b4cc6eadafcb8c873f1bd46797030 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8ac02881c53b4cc6eadafcb8c873f1bd46797030)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8ade7235266e7a2ad9e882d0b86cb407f20838e9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8ade7235266e7a2ad9e882d0b86cb407f20838e9)bin309 -> 309 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8af04754841d6182043bbb9133dc0cfe378caa3b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8af04754841d6182043bbb9133dc0cfe378caa3b)bin496 -> 496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8afe96f8b6b9058b086b18fd876147f28589a694 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8afe96f8b6b9058b086b18fd876147f28589a694)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8b0eb17bcdb5e341adaaa7f777474a9cdd1c8dd5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8b0eb17bcdb5e341adaaa7f777474a9cdd1c8dd5)bin2034 -> 2034 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8b228b0e9ebb8966d9221c5847592125fbff1558 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8b228b0e9ebb8966d9221c5847592125fbff1558)bin650 -> 650 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8bb5a3b0953ff582008cf43098bb551e8f318b7f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8bb5a3b0953ff582008cf43098bb551e8f318b7f)bin764 -> 764 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8bcf631eae43ad07e706869afda0ca3b142644c7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8bcf631eae43ad07e706869afda0ca3b142644c7)bin610 -> 610 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8c07a73fd0974aad4ffa121d471bdc56d8936175 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8c07a73fd0974aad4ffa121d471bdc56d8936175)bin658 -> 658 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8c2e50386c6884bc3d24f1d505bb4e77a7af80b5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8c2e50386c6884bc3d24f1d505bb4e77a7af80b5)bin670 -> 670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8c629eb9d4bc8550a070a71327e48210103954ef (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8c629eb9d4bc8550a070a71327e48210103954ef)bin1936 -> 1936 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8c696d1f72238aa5380a42f5e7971c42f8aaddb9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8c696d1f72238aa5380a42f5e7971c42f8aaddb9)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8cfe42c9e13ab054996a72f6ba95db1fe6f107d9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8cfe42c9e13ab054996a72f6ba95db1fe6f107d9)bin680 -> 680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8d3b332f24c15da9c8c4a33235211aacd8d0b37c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8d3b332f24c15da9c8c4a33235211aacd8d0b37c)bin645 -> 645 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8d3c65ec326c6e31ba362a178a5daffa2ab3753c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8d3c65ec326c6e31ba362a178a5daffa2ab3753c)bin2147 -> 2147 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8d47d1d07922fa2f6d15761265e88747921f466c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8d47d1d07922fa2f6d15761265e88747921f466c)bin761 -> 761 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8d637304329221817669e39d54a5c4e487f24634 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8d637304329221817669e39d54a5c4e487f24634)bin217 -> 217 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8d9fcdea45326f7539d9837e2680b14f3abadc90 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8d9fcdea45326f7539d9837e2680b14f3abadc90)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8dc390c16f9bd76959444a4aa680bfd22631cd57 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8dc390c16f9bd76959444a4aa680bfd22631cd57)bin773 -> 773 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8de54e0aac0365adc973b9faf7ef5c368adc0162 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8de54e0aac0365adc973b9faf7ef5c368adc0162)bin628 -> 628 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8de64c466400345c65f0ece95d1137088abbbe0d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8de64c466400345c65f0ece95d1137088abbbe0d)bin812 -> 812 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8e31c1f0264d350b07fc15cedad051bd9c98e9ed (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8e31c1f0264d350b07fc15cedad051bd9c98e9ed)bin439 -> 439 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8e78e7ffeef36a0629b991980ad9a1530e93de70 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8e78e7ffeef36a0629b991980ad9a1530e93de70)bin310 -> 310 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8ecb6d2a8659317fa6986fb6875865f0e615d2da (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8ecb6d2a8659317fa6986fb6875865f0e615d2da)bin468 -> 468 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8f18d9799b99238653598f668b7ea648257f252a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8f18d9799b99238653598f668b7ea648257f252a)bin182 -> 182 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8f84261ad59dfd528144cff0081dcd4de3125b9a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8f84261ad59dfd528144cff0081dcd4de3125b9a)bin515 -> 515 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8f8543947d1887aec01b8ce71a985ad0da4cac5d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8f8543947d1887aec01b8ce71a985ad0da4cac5d)bin726 -> 726 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/8f8c6116700553fcd4775efc9843fdc63573ef60 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/8f8c6116700553fcd4775efc9843fdc63573ef60)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9036128d70e73879d87cc60761b3329180e63830 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9036128d70e73879d87cc60761b3329180e63830)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/904d0e65bb7e0e2169fc7bad75c49bca77bf895c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/904d0e65bb7e0e2169fc7bad75c49bca77bf895c)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/905c3222ea7e3d6324336259f91367bb5f7a9272 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/905c3222ea7e3d6324336259f91367bb5f7a9272)bin451 -> 451 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/90664ac92c81e637ff966c1ac6ef4af3548a49e0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/90664ac92c81e637ff966c1ac6ef4af3548a49e0)bin574 -> 574 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9091dc2286b3441b5f93126237daf638edd5029c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9091dc2286b3441b5f93126237daf638edd5029c)bin827 -> 827 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/90e9a113f0db536a21e9f9c882ac6919167df0d2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/90e9a113f0db536a21e9f9c882ac6919167df0d2)bin680 -> 680 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/91a80b1c53311c4e44c311f53bc9ab2f37f123cb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/91a80b1c53311c4e44c311f53bc9ab2f37f123cb)bin445 -> 445 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/91e4709ef48d16b470758a603f1ac2147497167f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/91e4709ef48d16b470758a603f1ac2147497167f)bin828 -> 828 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/91ec9673c9cfa8a2ec6db11cf4a58c58c31d9dd9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/91ec9673c9cfa8a2ec6db11cf4a58c58c31d9dd9)bin3296 -> 3296 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/92025397e2bd3558563a71e8e863b3d2bc4a1727 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/92025397e2bd3558563a71e8e863b3d2bc4a1727)bin898 -> 898 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9265104936629d6c3e75f77dd6262b6ccb74d976 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9265104936629d6c3e75f77dd6262b6ccb74d976)bin675 -> 675 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/928ffee0253d1f8555bc73f7f2b2d2cdc9c14061 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/928ffee0253d1f8555bc73f7f2b2d2cdc9c14061)bin1292 -> 1292 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/931fb0e28b2b368a552ccd1c7961470543dbd421 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/931fb0e28b2b368a552ccd1c7961470543dbd421)bin975 -> 975 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/93390ccee1e0caa981b7775f128e9ccce2b5e2e0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/93390ccee1e0caa981b7775f128e9ccce2b5e2e0)bin658 -> 658 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/934bd9c1e0aac166755d44083f9464a2f0927bf3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/934bd9c1e0aac166755d44083f9464a2f0927bf3)bin718 -> 718 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/935e766e05eea7995fd39d1255e777d0395efc41 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/935e766e05eea7995fd39d1255e777d0395efc41)bin670 -> 670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/937171d03de05fcf5e1049dc47c82fca53d4b556 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/937171d03de05fcf5e1049dc47c82fca53d4b556)bin1129 -> 1129 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/93d87a302bafedfb724b2d7e18558f2b47dc1b7a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/93d87a302bafedfb724b2d7e18558f2b47dc1b7a)bin689 -> 689 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9414eb0efbdb0ee56d4cec27eae22c02ded9f507 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9414eb0efbdb0ee56d4cec27eae22c02ded9f507)bin822 -> 822 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/942b79a2183a89ef902705f1b57adc51bd7509b2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/942b79a2183a89ef902705f1b57adc51bd7509b2)bin423 -> 423 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9474ac21ac4afa74ed0c7ab12057165c25cfc366 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9474ac21ac4afa74ed0c7ab12057165c25cfc366)bin502 -> 502 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/94be3fe71ea66040a986661a9631ef528ad83cd6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/94be3fe71ea66040a986661a9631ef528ad83cd6)bin608 -> 608 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/94e434b06ed09d3e2654632d8f80ba258f6bef10 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/94e434b06ed09d3e2654632d8f80ba258f6bef10)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/94f73f0b847ebf0c867e24419d46a3505018ad75 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/94f73f0b847ebf0c867e24419d46a3505018ad75)bin759 -> 759 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/951d1b4799d93d46a105a267fcd2089f155312f0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/951d1b4799d93d46a105a267fcd2089f155312f0)bin382 -> 382 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9543f14d2a4bb1e17c5c8cee9b4db9b68ae66309 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9543f14d2a4bb1e17c5c8cee9b4db9b68ae66309)bin614 -> 614 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/957f4a7fe4f5c359be4240fb7d5a7db872572035 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/957f4a7fe4f5c359be4240fb7d5a7db872572035)bin714 -> 714 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/95b47ad155cccdd5f8ee2bcf888f11f0f7182d50 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/95b47ad155cccdd5f8ee2bcf888f11f0f7182d50)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/95c1ec1dd6a34df0e980387650553bf4d5dea1b8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/95c1ec1dd6a34df0e980387650553bf4d5dea1b8)bin1493 -> 1493 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/95f796ceab7e82c261932d7e27dc56b179e04c49 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/95f796ceab7e82c261932d7e27dc56b179e04c49)bin494 -> 494 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/963ffbd090a3999ae2ade338612a68a020dd6ebc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/963ffbd090a3999ae2ade338612a68a020dd6ebc)bin568 -> 568 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/96d2c6e6eaaef9a4373c5162e4097acc357a22e5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/96d2c6e6eaaef9a4373c5162e4097acc357a22e5)bin893 -> 893 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/970e4e2bf2a5b0019d8021c54026323087ac0b0a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/970e4e2bf2a5b0019d8021c54026323087ac0b0a)bin375 -> 375 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9721635a8df59980f8540ce8a94d759e2234e24b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9721635a8df59980f8540ce8a94d759e2234e24b)bin547 -> 547 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/974365d9eb83fb261abb666f4763eb31e24aad9d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/974365d9eb83fb261abb666f4763eb31e24aad9d)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/97797e4332edd43a38f6e53d40a98f1f8deb8a6b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/97797e4332edd43a38f6e53d40a98f1f8deb8a6b)bin783 -> 783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9799518327c011a1181a910a3f526cb76b0ec712 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9799518327c011a1181a910a3f526cb76b0ec712)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/97ab2ce9aa724b21c40964fb1a91a6ea5e4c3008 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/97ab2ce9aa724b21c40964fb1a91a6ea5e4c3008)bin529 -> 529 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/97ac0d484e6b268c941cd7fdeaa1b80ec52ea69b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/97ac0d484e6b268c941cd7fdeaa1b80ec52ea69b)bin628 -> 628 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/97d849e279cf3fd4ebadae6fcfb18782de9e2258 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/97d849e279cf3fd4ebadae6fcfb18782de9e2258)bin657 -> 657 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/97ec695fe461479141b137b5df92a739610cb355 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/97ec695fe461479141b137b5df92a739610cb355)bin693 -> 693 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/97f4caff5c58631eed16e412b3fc40f9474319c3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/97f4caff5c58631eed16e412b3fc40f9474319c3)bin639 -> 639 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/984674784063c9d95e7a28df446062730530764f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/984674784063c9d95e7a28df446062730530764f)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9885f2dcf80151022042587ce75fb8bb37bf9fc9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9885f2dcf80151022042587ce75fb8bb37bf9fc9)bin296 -> 296 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/988af3e4bc12d9707ccafb6479413d1320d2e6a7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/988af3e4bc12d9707ccafb6479413d1320d2e6a7)bin325 -> 325 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/98a3b6eb34471559fdf5ae7cee00e58cc274ccec (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/98a3b6eb34471559fdf5ae7cee00e58cc274ccec)bin722 -> 722 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/98c351b89368995ed3c6e3a4eae6572b31126409 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/98c351b89368995ed3c6e3a4eae6572b31126409)bin201 -> 201 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/99018bfa450d73634ca5d51d7cad1c622ffc2154 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/99018bfa450d73634ca5d51d7cad1c622ffc2154)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/991715858e1c09f3faa4972f71463d3bf6d133da (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/991715858e1c09f3faa4972f71463d3bf6d133da)bin1770 -> 1770 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/993bc07e3da54a9872dba35ccd25b4090066485a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/993bc07e3da54a9872dba35ccd25b4090066485a)bin667 -> 667 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9942f5bf94ebda3dc3f6d6f9bc689d320c414ddd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9942f5bf94ebda3dc3f6d6f9bc689d320c414ddd)bin165 -> 165 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9969d1bf255f07a3b39a75256817bd48722a66b4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9969d1bf255f07a3b39a75256817bd48722a66b4)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/99adc9be46f119fa89033938710fef7cba5a6b0c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/99adc9be46f119fa89033938710fef7cba5a6b0c)bin440 -> 440 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/99b1ea0121c82754d7d98e0ec0bdc2cfeed9bde1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/99b1ea0121c82754d7d98e0ec0bdc2cfeed9bde1)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9a6573f1622939fa9500c6132ba01f3c64da3ffe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9a6573f1622939fa9500c6132ba01f3c64da3ffe)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9a92def8d0b2d9d59efab84790420c6d3a6edb5e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9a92def8d0b2d9d59efab84790420c6d3a6edb5e)bin612 -> 612 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9b0934cca5a8f9a1b922c78fa1f9472356af5067 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9b0934cca5a8f9a1b922c78fa1f9472356af5067)bin1153 -> 1153 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9b5453e6f6678cd11d8ddaf3c63cb358c779720e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9b5453e6f6678cd11d8ddaf3c63cb358c779720e)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9b912d59a1cd183f9def375293360d32373fff24 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9b912d59a1cd183f9def375293360d32373fff24)bin143 -> 143 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9bdd595e12dee6320928c3219268255c7d3536d6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9bdd595e12dee6320928c3219268255c7d3536d6)bin806 -> 806 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9c4a77fcad9902707a5e3beee1f36ec67e2f7285 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9c4a77fcad9902707a5e3beee1f36ec67e2f7285)bin636 -> 636 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9ca31d7b00ae9160bfaf03d147851a36632c2715 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9ca31d7b00ae9160bfaf03d147851a36632c2715)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9ca6ba86d94f42475a7cd1756cd1db97af0a3efc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9ca6ba86d94f42475a7cd1756cd1db97af0a3efc)bin293 -> 293 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9cf0910400bc91fa413c37730e040d91e21f361f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9cf0910400bc91fa413c37730e040d91e21f361f)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9d035ab821b0507033a3b894a46e09d7ba16fb28 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9d035ab821b0507033a3b894a46e09d7ba16fb28)bin10173 -> 10173 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9d3afaec830a5d36105b9753ef080a965eb27250 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9d3afaec830a5d36105b9753ef080a965eb27250)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9d46f86d640689ffb84a7558318fa870db4a2e26 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9d46f86d640689ffb84a7558318fa870db4a2e26)bin915 -> 915 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9d505a22c0c004c4fba262801764687a6b7d5f05 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9d505a22c0c004c4fba262801764687a6b7d5f05)bin441 -> 441 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9d75bc7c60535a1ee4fd16a59a08a589ffda361d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9d75bc7c60535a1ee4fd16a59a08a589ffda361d)bin352 -> 352 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9db78cd6283be49eb1976648d25dc3769bc080a3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9db78cd6283be49eb1976648d25dc3769bc080a3)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9e07ca97fa738f5e1c20a5cd21af3515d0f251db (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9e07ca97fa738f5e1c20a5cd21af3515d0f251db)bin462 -> 462 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9e2c98c392e8d38531c039d9e78da563dcb7036d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9e2c98c392e8d38531c039d9e78da563dcb7036d)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9e328d5146a3a97038bd7e2f47ad6cc9d2717e00 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9e328d5146a3a97038bd7e2f47ad6cc9d2717e00)bin744 -> 744 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9e5d71ba875ffd7a8d50fc749b19822722021c00 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9e5d71ba875ffd7a8d50fc749b19822722021c00)bin658 -> 658 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9e996117da5f8e5708bb6c073155665522fbec7e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9e996117da5f8e5708bb6c073155665522fbec7e)bin675 -> 675 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9e9e620a711a298ab29f78f74038f8054e6eb772 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9e9e620a711a298ab29f78f74038f8054e6eb772)bin272 -> 272 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9ec26ceaf433a2b6f14eda730df57caedc95dcf5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9ec26ceaf433a2b6f14eda730df57caedc95dcf5)bin276 -> 276 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9eca21fd7247ce68728f02ddb7da76da8cf8b5cf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9eca21fd7247ce68728f02ddb7da76da8cf8b5cf)bin781 -> 781 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9f09253de47838b66e30cd6c32d8a9e42040cdba (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9f09253de47838b66e30cd6c32d8a9e42040cdba)bin705 -> 705 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9f2c3b15416ced881ecc2f2dc8503e75a15f8cfc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9f2c3b15416ced881ecc2f2dc8503e75a15f8cfc)bin538 -> 538 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9f5804820808a67093c6ecedda816f163161d0ab (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9f5804820808a67093c6ecedda816f163161d0ab)bin662 -> 662 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9f726bbbd4e38d10d0a18dcb4b86677c281befa6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9f726bbbd4e38d10d0a18dcb4b86677c281befa6)bin530 -> 530 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9fac97ef6de31faf85a383b6dcc375b49bdaa13d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9fac97ef6de31faf85a383b6dcc375b49bdaa13d)bin1023 -> 1023 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/9fb2d36917bd393b386f0aee237dcdbf7d57dab5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/9fb2d36917bd393b386f0aee237dcdbf7d57dab5)bin236 -> 236 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a0205a7a8052922a90a6ec3ca5e9b3fc387b1320 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a0205a7a8052922a90a6ec3ca5e9b3fc387b1320)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a03038c063c63e969caaecc92ea36e9dd470f5d6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a03038c063c63e969caaecc92ea36e9dd470f5d6)bin4387 -> 4387 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a0348e9c72dea0f1ce62ea4b233ced419e41a8a0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a0348e9c72dea0f1ce62ea4b233ced419e41a8a0)bin397 -> 397 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a07792a97d409e8df5459eb163e26d462f692115 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a07792a97d409e8df5459eb163e26d462f692115)bin6266 -> 6266 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a0a3c3eafe9feaf839ba5843101f42ff43cf60e2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a0a3c3eafe9feaf839ba5843101f42ff43cf60e2)bin482 -> 482 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a0fe8413d47e74f5f6cb17fe0b09307e723a9b75 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a0fe8413d47e74f5f6cb17fe0b09307e723a9b75)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a10fe35b9c384f1629c33433fe1d5e9c41928202 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a10fe35b9c384f1629c33433fe1d5e9c41928202)bin302 -> 302 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a143a4eb8630481f5231e3eb8fc181bad9aa9878 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a143a4eb8630481f5231e3eb8fc181bad9aa9878)bin251 -> 251 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a14ed229e766fdd64430b17114dce4febe0fd2f0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a14ed229e766fdd64430b17114dce4febe0fd2f0)bin312 -> 312 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a1f301c92dca35563ac78afbfde757749a1422b1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a1f301c92dca35563ac78afbfde757749a1422b1)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a21d39f374dc90b770d4181ef63bf9600b528d92 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a21d39f374dc90b770d4181ef63bf9600b528d92)bin309 -> 309 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a244547871eb202d63553010ae827d2ce49318f1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a244547871eb202d63553010ae827d2ce49318f1)bin1660 -> 1660 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a24656c5279b05da144f5382295f35b09af0ff40 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a24656c5279b05da144f5382295f35b09af0ff40)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a258d3fa36acef29e005b58426ba5fd8c6da64fe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a258d3fa36acef29e005b58426ba5fd8c6da64fe)bin5348 -> 5348 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a263b080f7fb2a07eedb810042b88407304b8371 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a263b080f7fb2a07eedb810042b88407304b8371)bin793 -> 793 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a35c3ea7024d92b5765f3232f27ddd8eff0875a9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a35c3ea7024d92b5765f3232f27ddd8eff0875a9)bin323 -> 323 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a368f77bb51cfab9b8601652b2783c79394f391e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a368f77bb51cfab9b8601652b2783c79394f391e)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a3eab665e82c6e277ffc679b84bd59c8725751d0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a3eab665e82c6e277ffc679b84bd59c8725751d0)bin256 -> 256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a3feb02a6e3e44b8bf729d523d9c963164264e47 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a3feb02a6e3e44b8bf729d523d9c963164264e47)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a467340b84d1dcf78ff3d002cd7f0a78cd5e853b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a467340b84d1dcf78ff3d002cd7f0a78cd5e853b)bin596 -> 596 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a4fa3ae35d0ffe4ef2545197a97417e3b1adc920 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a4fa3ae35d0ffe4ef2545197a97417e3b1adc920)bin669 -> 669 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a568fe76ada949f7df12e643a130a2a62c029519 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a568fe76ada949f7df12e643a130a2a62c029519)bin796 -> 796 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a57748c90e4e30adee90b1d44acd52c846c9fed9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a57748c90e4e30adee90b1d44acd52c846c9fed9)bin309 -> 309 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a5c8f444a2edf61d823306afdd2f100ea2db187c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a5c8f444a2edf61d823306afdd2f100ea2db187c)bin487 -> 487 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a5dee33a5f0fda5812bd850bc2fc3cdf2469d6f5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a5dee33a5f0fda5812bd850bc2fc3cdf2469d6f5)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a5e63370ba63cc2eeeeb524a097d244ab1cf36af (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a5e63370ba63cc2eeeeb524a097d244ab1cf36af)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a5f464a8a475d0421e0bf8811afd02f022eff16a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a5f464a8a475d0421e0bf8811afd02f022eff16a)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a5fb28b6810ce25efb4d79939d3fc5958fc7b855 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a5fb28b6810ce25efb4d79939d3fc5958fc7b855)bin807 -> 807 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a6573d4e52f35671370bd2fe7555f69c20acb5bd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a6573d4e52f35671370bd2fe7555f69c20acb5bd)bin484 -> 484 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a6ab7af8c7a3711eb2de18c68504ea333ffe8735 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a6ab7af8c7a3711eb2de18c68504ea333ffe8735)bin491 -> 491 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a6e57b5c5411c3b00e89f751c7306185cd4a2700 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a6e57b5c5411c3b00e89f751c7306185cd4a2700)bin1974 -> 1974 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a6e5b449bbbe9b048a8fe051e4052bb907899756 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a6e5b449bbbe9b048a8fe051e4052bb907899756)bin5684 -> 5684 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f44b55be4083357478da1ba01bcbc317d89f9e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a6f44b55be4083357478da1ba01bcbc317d89f9e)bin668 -> 668 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f5d2dd04c8f2fb80aaaa4734af2efbc186291e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a6f5d2dd04c8f2fb80aaaa4734af2efbc186291e)bin452 -> 452 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f6f5a8bbfa80934d4507d7b0535d17f019b17e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a6f6f5a8bbfa80934d4507d7b0535d17f019b17e)bin617 -> 617 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a75ef6ab3c29943bc27d0eb31a1932cff747b8f8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a75ef6ab3c29943bc27d0eb31a1932cff747b8f8)bin405 -> 405 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a78951c1894e883104e4b97ec6b7c050fedf32f1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a78951c1894e883104e4b97ec6b7c050fedf32f1)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a7e3bc7e135350cfe5ca34c0f3b9057663bca611 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a7e3bc7e135350cfe5ca34c0f3b9057663bca611)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a884f714767a0e19f31a3f17890979ffb1e77259 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a884f714767a0e19f31a3f17890979ffb1e77259)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a887bb7c7a7af6c46c32b73eb492f8ad530dcb63 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a887bb7c7a7af6c46c32b73eb492f8ad530dcb63)bin623 -> 623 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a925ca7f672b821218be1030f8b721fc1bea1e1b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a925ca7f672b821218be1030f8b721fc1bea1e1b)bin422 -> 422 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a955a25c91ec2ed4088d485adf3389429318ee29 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a955a25c91ec2ed4088d485adf3389429318ee29)bin11173 -> 11173 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/a96b07a29bb7e1e2c3cb699b3a49900c76700ed5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/a96b07a29bb7e1e2c3cb699b3a49900c76700ed5)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aa2147880c14c0193552ae224ed7f500d04d3a88 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aa2147880c14c0193552ae224ed7f500d04d3a88)bin772 -> 772 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aa2e66e2f91b6a48249232668e58b37c0bee1cee (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aa2e66e2f91b6a48249232668e58b37c0bee1cee)bin207 -> 207 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aa84108797a53081000b971fc713ee8ce84753f9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aa84108797a53081000b971fc713ee8ce84753f9)bin277 -> 277 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aa906592bb9c78bd27c142f5391e4058bd1d8436 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aa906592bb9c78bd27c142f5391e4058bd1d8436)bin843 -> 843 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aac02f4b00bab13fb416920990df4bed13e7b206 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aac02f4b00bab13fb416920990df4bed13e7b206)bin563 -> 563 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aaf5764d267ff71702002f56c8f88b2b934d2d9a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aaf5764d267ff71702002f56c8f88b2b934d2d9a)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ab2684ec3eea7affc22969f4e87fd700960d5940 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ab2684ec3eea7affc22969f4e87fd700960d5940)bin593 -> 593 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ab56cb9639ef787d9542c06b2f30007815f962c1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ab56cb9639ef787d9542c06b2f30007815f962c1)bin816 -> 816 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ab5fdbb4f5ff84542052504bd2a92bd427c21820 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ab5fdbb4f5ff84542052504bd2a92bd427c21820)bin319 -> 319 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ab77dadc11fcb95187018e8d613e7bf5637ca6ea (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ab77dadc11fcb95187018e8d613e7bf5637ca6ea)bin763 -> 763 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ab8b775b4defb5a915816a781bf4f43c75fdd441 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ab8b775b4defb5a915816a781bf4f43c75fdd441)bin993 -> 993 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ab94ad341b38b17a30475905a9d3749aa613fb8d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ab94ad341b38b17a30475905a9d3749aa613fb8d)bin529 -> 529 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ab9c3a287eb0b062f852558cc92b9b2bd02e41df (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ab9c3a287eb0b062f852558cc92b9b2bd02e41df)bin3566 -> 3566 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aba9daeedbf1bca1092e0656b4fa76ce9dc78ce8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aba9daeedbf1bca1092e0656b4fa76ce9dc78ce8)bin511 -> 511 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/abe14d6a5d15366841128ff7b94d64c275d878a0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/abe14d6a5d15366841128ff7b94d64c275d878a0)bin263 -> 263 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ac5380456251d846a8a51ea806cb4fac5943ad30 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ac5380456251d846a8a51ea806cb4fac5943ad30)bin1226 -> 1226 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ac6abf60f93d6be726c55936a32d58fa3b6ff3e7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ac6abf60f93d6be726c55936a32d58fa3b6ff3e7)bin247 -> 247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aca1b17f3e76a90a4a02fac45b537f8f9ed0aa47 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aca1b17f3e76a90a4a02fac45b537f8f9ed0aa47)bin300 -> 300 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ad417579405f401d0ebe1870b7d3b77511b53acc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ad417579405f401d0ebe1870b7d3b77511b53acc)bin295 -> 295 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ad47135e188e8ed4277a15d26b1e42800a03151d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ad47135e188e8ed4277a15d26b1e42800a03151d)bin463 -> 463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ad6983fd2b59565aabeb607928a8ddfd452e33c8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ad6983fd2b59565aabeb607928a8ddfd452e33c8)bin318 -> 318 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ad6fedcbaebce2625c1065cc53f96959fb88ff33 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ad6fedcbaebce2625c1065cc53f96959fb88ff33)bin465 -> 465 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ad920010c6715011ef04514cd248bde23f092231 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ad920010c6715011ef04514cd248bde23f092231)bin436 -> 436 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/adf39f83c9df65de08737a10d88407e4c93d9008 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/adf39f83c9df65de08737a10d88407e4c93d9008)bin238 -> 238 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ae0dddbbd4c5e88c4ef42c0c66bb5573e17cdf3c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ae0dddbbd4c5e88c4ef42c0c66bb5573e17cdf3c)bin292 -> 292 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ae19696d8fccc707072c3532b8ad73303e7a477c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ae19696d8fccc707072c3532b8ad73303e7a477c)bin390 -> 390 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ae2f27b02152f331b7d51c1e8f8f88b1b5bfccf0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ae2f27b02152f331b7d51c1e8f8f88b1b5bfccf0)bin841 -> 841 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ae3dd8ad2112e2c7d143cf05b7615361182de307 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ae3dd8ad2112e2c7d143cf05b7615361182de307)bin481 -> 481 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aeb2a415748367633bb18649ab4e171bab61f91a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aeb2a415748367633bb18649ab4e171bab61f91a)bin1214 -> 1214 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aebd41dd0232c603a9257cb93f1f837f5f3239c6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aebd41dd0232c603a9257cb93f1f837f5f3239c6)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/aeeecdfc1b5b17a5176a041f2dae72df696f30bf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/aeeecdfc1b5b17a5176a041f2dae72df696f30bf)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/af32527383be884c4e2a39add59f2193708e0d7e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/af32527383be884c4e2a39add59f2193708e0d7e)bin915 -> 915 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/af639a7cff7e9be335cc54dea5c53409e7739f59 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/af639a7cff7e9be335cc54dea5c53409e7739f59)bin557 -> 557 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/afa57e95ebf2a3cdba7860bb621f003a3036687d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/afa57e95ebf2a3cdba7860bb621f003a3036687d)bin463 -> 463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b0006d50ca7630d7adbef5d65e2a464bba2c7f36 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b0006d50ca7630d7adbef5d65e2a464bba2c7f36)bin651 -> 651 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b00ba383d58d5e399bafcdf0766310ea029af55a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b00ba383d58d5e399bafcdf0766310ea029af55a)bin689 -> 689 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b015af33eb84baae35b46d57e1bc31b4e2446e61 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b015af33eb84baae35b46d57e1bc31b4e2446e61)bin339 -> 339 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b02213198d3c54527d6a6542871bd191f79b81cd (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b02213198d3c54527d6a6542871bd191f79b81cd)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b07e9e897fc44fb1e82525ca5f52887f67ffc6eb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b07e9e897fc44fb1e82525ca5f52887f67ffc6eb)bin744 -> 744 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b0de74dc6679e31cdde21d7bdf9d284878f857a7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b0de74dc6679e31cdde21d7bdf9d284878f857a7)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b1121b82fda88040e4837c78128cce09af549690 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b1121b82fda88040e4837c78128cce09af549690)bin678 -> 678 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b13e3b5c87de6ab79dc13c554acaecbe4b1d7c60 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b13e3b5c87de6ab79dc13c554acaecbe4b1d7c60)bin481 -> 481 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b1777eac1e65ebc2ca2739af8f6f3dcde7f8df08 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b1777eac1e65ebc2ca2739af8f6f3dcde7f8df08)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b1aa3d02b67d2bc924c97451c5e9e16a6293a5f0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b1aa3d02b67d2bc924c97451c5e9e16a6293a5f0)bin16384 -> 16384 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b1ec37017babcd85a9bc44fdb8d184b00f426301 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b1ec37017babcd85a9bc44fdb8d184b00f426301)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b234cf92bea005c9dcef041ebf1ce2d925a0f9a0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b234cf92bea005c9dcef041ebf1ce2d925a0f9a0)bin495 -> 495 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b243872e1b31d82e00cf8d02001be6d9df3c2521 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b243872e1b31d82e00cf8d02001be6d9df3c2521)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b26c5059365c0aa22564f838bb1c9b9143dd37df (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b26c5059365c0aa22564f838bb1c9b9143dd37df)bin255 -> 255 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b27920486c55aa90952a05259277c87c54a72216 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b27920486c55aa90952a05259277c87c54a72216)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b2909fe87d8cf6b3c3846fa31f7c4fd0d41f0cdf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b2909fe87d8cf6b3c3846fa31f7c4fd0d41f0cdf)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b2da58f1420620b0b417519aa1c3cde4551c223b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b2da58f1420620b0b417519aa1c3cde4551c223b)bin3 -> 3 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b2df99453c30b974426d7570d21096f82fe3f821 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b2df99453c30b974426d7570d21096f82fe3f821)bin745 -> 745 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b2efeda1fa16e00b74d6ebd159f0c4fabbe3bbac (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b2efeda1fa16e00b74d6ebd159f0c4fabbe3bbac)bin333 -> 333 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b2fb32ba75ba5a1e2b666d2d22d709fc623cdb31 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b2fb32ba75ba5a1e2b666d2d22d709fc623cdb31)bin307 -> 307 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b31166d15ddb468d2780aea873ad31e5adad55a3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b31166d15ddb468d2780aea873ad31e5adad55a3)bin1132 -> 1132 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b316de36b719471dc35618093680ea7c43024a2f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b316de36b719471dc35618093680ea7c43024a2f)bin4499 -> 4499 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b32cdba6480bc15bbfaca5b12895eef3b8816eb3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b32cdba6480bc15bbfaca5b12895eef3b8816eb3)bin777 -> 777 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b3b0c12c0e482a17e70ac01654bc15d6b9cb8aab (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b3b0c12c0e482a17e70ac01654bc15d6b9cb8aab)bin248 -> 248 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b3f67b486cee4ebc6a7026bd2ab7b41bdd7f7d9d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b3f67b486cee4ebc6a7026bd2ab7b41bdd7f7d9d)bin821 -> 821 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b412a5c30ba0c1226e26f1707ca58d505601db67 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b412a5c30ba0c1226e26f1707ca58d505601db67)bin333 -> 333 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b456d991bbb6229ab2dbae14488598fa246565e8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b456d991bbb6229ab2dbae14488598fa246565e8)bin592 -> 592 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b4952f525572d04957e8bc45d65730fd5cebef5b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b4952f525572d04957e8bc45d65730fd5cebef5b)bin741 -> 741 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b4d63d754694f61070971cd1f68b3a5b2833eda3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b4d63d754694f61070971cd1f68b3a5b2833eda3)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b4f1bd4f0812458a4976ca508fc0ffa30af33a21 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b4f1bd4f0812458a4976ca508fc0ffa30af33a21)bin470 -> 470 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b563d89744c56568dbf23813574e0fb1ca34bc0c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b563d89744c56568dbf23813574e0fb1ca34bc0c)bin318 -> 318 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b5b09e373893be86ec9a59f6b4f98cea32dc8974 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b5b09e373893be86ec9a59f6b4f98cea32dc8974)bin935 -> 935 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b5d04bd066c60bcb63faf99120cc8eca860c9fa1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b5d04bd066c60bcb63faf99120cc8eca860c9fa1)bin13395 -> 13395 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b626da19ee10029c59704117825f75ee92fb5ad6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b626da19ee10029c59704117825f75ee92fb5ad6)bin273 -> 273 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b649646964d6d49f5bf2da03b94752d8f05dae86 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b649646964d6d49f5bf2da03b94752d8f05dae86)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b64c0345522c5c2a96aad6fd0caa174432fe6e2f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b64c0345522c5c2a96aad6fd0caa174432fe6e2f)bin495 -> 495 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b6aed929350725f496c99620fb4b85a7b3afde8c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b6aed929350725f496c99620fb4b85a7b3afde8c)bin794 -> 794 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b6c28e51e43614e97ac2cc51e5fccacd684a55b1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b6c28e51e43614e97ac2cc51e5fccacd684a55b1)bin429 -> 429 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b72925d711f3e5a2704e19a5810ef6e982431af7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b72925d711f3e5a2704e19a5810ef6e982431af7)bin780 -> 780 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b73438e4cd8d12119b09e87251cbd4a0cf851794 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b73438e4cd8d12119b09e87251cbd4a0cf851794)bin454 -> 454 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b7b81b5c96af8541973d56d33f596328bf526b65 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b7b81b5c96af8541973d56d33f596328bf526b65)bin402 -> 402 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b845cbe955c12888da78b11f302923477054cb3c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b845cbe955c12888da78b11f302923477054cb3c)bin656 -> 656 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b8a731fe97c2e944e8109caf4e0cb86696b0109c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b8a731fe97c2e944e8109caf4e0cb86696b0109c)bin430 -> 430 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b92f204932da4dcbea0c5d400934e934138c9243 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b92f204932da4dcbea0c5d400934e934138c9243)bin557 -> 557 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b94e5b40224538248f7ce0d0c2835d38510db1c9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b94e5b40224538248f7ce0d0c2835d38510db1c9)bin783 -> 783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b994d9f1de4773bfbe88dff7620c284c2ab05ab6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b994d9f1de4773bfbe88dff7620c284c2ab05ab6)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b9df2c6f327a4e587f7924ba122bf5cf514f6a7c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b9df2c6f327a4e587f7924ba122bf5cf514f6a7c)bin953 -> 953 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/b9e92ecb4845417c337e6af7f9d5764527dcca78 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/b9e92ecb4845417c337e6af7f9d5764527dcca78)bin590 -> 590 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ba1a3a836519a10bdc1fcbf0cdc26b2478fe684f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ba1a3a836519a10bdc1fcbf0cdc26b2478fe684f)bin409 -> 409 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ba310696149446f4c0cf2e293738b14c62039d2c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ba310696149446f4c0cf2e293738b14c62039d2c)bin420 -> 420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ba42ebd00371044abc2cfb3d5d253b916f7c86bf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ba42ebd00371044abc2cfb3d5d253b916f7c86bf)bin841 -> 841 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ba5295de9d5f59c5a5b881e8e50edeb78e4d8a66 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ba5295de9d5f59c5a5b881e8e50edeb78e4d8a66)bin1934 -> 1934 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ba9ca81792ee53c2bf9f2fe92d7e97d65765a739 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ba9ca81792ee53c2bf9f2fe92d7e97d65765a739)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/babb1602b817cdc09b31da85ddc3cd1e39a3f811 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/babb1602b817cdc09b31da85ddc3cd1e39a3f811)bin143 -> 143 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bb58ef9cdd066c35308bb36ce5e996fbdfd08888 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bb58ef9cdd066c35308bb36ce5e996fbdfd08888)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bb75c3500bfae028401b78514153b984afa0c938 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bb75c3500bfae028401b78514153b984afa0c938)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bba126260d787127eea119eacdb1a4e899183788 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bba126260d787127eea119eacdb1a4e899183788)bin649 -> 649 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bba43a9dad99505f3249e786e6bf7b5df0ae3479 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bba43a9dad99505f3249e786e6bf7b5df0ae3479)bin240 -> 240 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bbad4a49082d3101992b52827e59b4e5766cb8c4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bbad4a49082d3101992b52827e59b4e5766cb8c4)bin2952 -> 2952 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bbd15649618bc696c84df1c6e44e4b353ecfd4b4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bbd15649618bc696c84df1c6e44e4b353ecfd4b4)bin686 -> 686 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bbe2ad4a1ed2bbb78f26db6575854c0fce34684b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bbe2ad4a1ed2bbb78f26db6575854c0fce34684b)bin462 -> 462 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bc1d04348314d6ed19d2695f39d4e19648447d8f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bc1d04348314d6ed19d2695f39d4e19648447d8f)bin1998 -> 1998 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bc9c532f739cf34a8fc2cf8e1febbe9c998f1bc4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bc9c532f739cf34a8fc2cf8e1febbe9c998f1bc4)bin255 -> 255 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bcb9b7bd14a813e19b2848027a35f51d61393f3a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bcb9b7bd14a813e19b2848027a35f51d61393f3a)bin449 -> 449 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bce14240f61cf62bd2977a2ce73dc52ee05e0a4e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bce14240f61cf62bd2977a2ce73dc52ee05e0a4e)bin228 -> 228 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bcf4624a712a3c7faab5c5e8c10ad37c26c64aca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bcf4624a712a3c7faab5c5e8c10ad37c26c64aca)bin488 -> 488 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bcf8ba1dd408fae2827f6287bc464f119a1d4757 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bcf8ba1dd408fae2827f6287bc464f119a1d4757)bin667 -> 667 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bd04f34cc3379bf5cc858c9e4bceb801d5c02d75 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bd04f34cc3379bf5cc858c9e4bceb801d5c02d75)bin965 -> 965 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bd36a801e731d4ec78949431407194d9ab4caf40 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bd36a801e731d4ec78949431407194d9ab4caf40)bin269 -> 269 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bd54033a5f4589a659db6a539e1ea3714a7c382a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bd54033a5f4589a659db6a539e1ea3714a7c382a)bin233 -> 233 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bd70210bb7300ebdefa68606a2e0b722ea9a972b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bd70210bb7300ebdefa68606a2e0b722ea9a972b)bin233 -> 233 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bd82e4c5ff6cb122a47f5eda2d8a5debef5216b9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bd82e4c5ff6cb122a47f5eda2d8a5debef5216b9)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bd85ee70a039a165e399016343354a4ef8e6ab41 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bd85ee70a039a165e399016343354a4ef8e6ab41)bin793 -> 793 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bda358478b7172b248a92e2a2b83337bf66d6e50 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bda358478b7172b248a92e2a2b83337bf66d6e50)bin615 -> 615 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bdaa87754b54f18d4c8a20628f6391d11cb77125 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bdaa87754b54f18d4c8a20628f6391d11cb77125)bin379 -> 379 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bdd98fe9eb810b144abfe31eaf912bb0b4cb0ece (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bdd98fe9eb810b144abfe31eaf912bb0b4cb0ece)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bdfdbddd11fdc0296ec4bbaae70917754890c4f7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bdfdbddd11fdc0296ec4bbaae70917754890c4f7)bin729 -> 729 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/be1430c5f4f2827bda1bcdb8f1766f34992cf3e6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/be1430c5f4f2827bda1bcdb8f1766f34992cf3e6)bin482 -> 482 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/be2c7a74b25c88489cbe5e652433f48609a77689 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/be2c7a74b25c88489cbe5e652433f48609a77689)bin791 -> 791 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/be32e650f02e22a899c067c4f8adee5ab6aedbfb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/be32e650f02e22a899c067c4f8adee5ab6aedbfb)bin506 -> 506 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/be3aff993c6ab8ca7b3b0041ffb77f0c03d099aa (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/be3aff993c6ab8ca7b3b0041ffb77f0c03d099aa)bin700 -> 700 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bec55315a1e186436528091de01c3eaf6bd84fcf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bec55315a1e186436528091de01c3eaf6bd84fcf)bin302 -> 302 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bed1bd7298f4d42262ab35971e1a26e3b75e39da (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bed1bd7298f4d42262ab35971e1a26e3b75e39da)bin685 -> 685 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bed44ed09ce78900583809fc2f9dc6990f24b361 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bed44ed09ce78900583809fc2f9dc6990f24b361)bin219 -> 219 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bf13a277423000231c797b6f25257c8332a73b8b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bf13a277423000231c797b6f25257c8332a73b8b)bin427 -> 427 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/bfec2cf0b35a3dab81917a8273779efe59a4f55f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/bfec2cf0b35a3dab81917a8273779efe59a4f55f)bin247 -> 247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c00505f3f91c6a221f193b3a30c2ece777f1a829 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c00505f3f91c6a221f193b3a30c2ece777f1a829)bin741 -> 741 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c00e6501f0b920dcf8bd7e81bc26845f7a066174 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c00e6501f0b920dcf8bd7e81bc26845f7a066174)bin606 -> 606 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c0142fdf4a99ef4e7eb8461f01c286658d1980c4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c0142fdf4a99ef4e7eb8461f01c286658d1980c4)bin610 -> 610 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c01ace4a3507e1b9d9c16620dea18efab00472c5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c01ace4a3507e1b9d9c16620dea18efab00472c5)bin359 -> 359 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c04729eee2c180c66e081d269841499b9408f13e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c04729eee2c180c66e081d269841499b9408f13e)bin724 -> 724 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c0b8f034227c8cbac1a2fac94ee241343366260f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c0b8f034227c8cbac1a2fac94ee241343366260f)bin343 -> 343 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c0c2e53f95c88d98565f068c7004726127d5cbdc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c0c2e53f95c88d98565f068c7004726127d5cbdc)bin499 -> 499 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c0cece81c8ec8c3d318c5f2fa9d7676e086ec860 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c0cece81c8ec8c3d318c5f2fa9d7676e086ec860)bin439 -> 439 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c0e4e8811a684a30be20df6cb0eaaa503ac87d69 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c0e4e8811a684a30be20df6cb0eaaa503ac87d69)bin434 -> 434 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c0fe86156f5f5e0726385fb394f22fc6a405d460 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c0fe86156f5f5e0726385fb394f22fc6a405d460)bin650 -> 650 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c1463a601ea4591825f5a42a2c288231a805de7b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c1463a601ea4591825f5a42a2c288231a805de7b)bin829 -> 829 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c15ffb03641128d3369e346f5e3c24cc2b88a166 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c15ffb03641128d3369e346f5e3c24cc2b88a166)bin532 -> 532 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c19e0c58a4e1272c77a2c879564dab7f2a5f9984 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c19e0c58a4e1272c77a2c879564dab7f2a5f9984)bin614 -> 614 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c1a90ba686b932d26cc1bb6e30905d4e47d88ba0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c1a90ba686b932d26cc1bb6e30905d4e47d88ba0)bin826 -> 826 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c1c0119e74f7bb27ee9df26e49692c10a0fa9872 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c1c0119e74f7bb27ee9df26e49692c10a0fa9872)bin670 -> 670 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c1eb2bacb17c41c84e73516e9283894962a2d288 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c1eb2bacb17c41c84e73516e9283894962a2d288)bin2237 -> 2237 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c1ec7133f93c60af1156a0f9bbcad1e1fb1f0ad4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c1ec7133f93c60af1156a0f9bbcad1e1fb1f0ad4)bin982 -> 982 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c276619813c3f9212518d191c100f18829b0fb7c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c276619813c3f9212518d191c100f18829b0fb7c)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c2aca2cc94285aa51e75dfafa16bea674e64dc86 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c2aca2cc94285aa51e75dfafa16bea674e64dc86)bin180 -> 180 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c2cd883d08ffa6628ac7f204f3bb18d8330fa5fa (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c2cd883d08ffa6628ac7f204f3bb18d8330fa5fa)bin648 -> 648 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c2f0a3a7f01d4a89d1c80320440c5454c698f7d7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c2f0a3a7f01d4a89d1c80320440c5454c698f7d7)bin725 -> 725 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c2fcaaca94c09c88a6ecf4222c0b16d35810d4b6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c2fcaaca94c09c88a6ecf4222c0b16d35810d4b6)bin122 -> 122 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c30481668288d71c3cdff9217657422738a34975 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c30481668288d71c3cdff9217657422738a34975)bin434 -> 434 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c3546585c33023e018aeddedefd772a1fa2fff2b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c3546585c33023e018aeddedefd772a1fa2fff2b)bin763 -> 763 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c4706367d31addcb2365cbc693f65c3e3281b447 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c4706367d31addcb2365cbc693f65c3e3281b447)bin708 -> 708 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c5ae64adfdfb81c507f926039af84b579bb0332b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c5ae64adfdfb81c507f926039af84b579bb0332b)bin608 -> 608 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c5d626b9fe7ddf900675741e820d4ed3e4d46e38 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c5d626b9fe7ddf900675741e820d4ed3e4d46e38)bin706 -> 706 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c5da4c017465fd7e26ee68e8a05468cc25b66130 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c5da4c017465fd7e26ee68e8a05468cc25b66130)bin574 -> 574 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c61562e1ac87b2272155846340e2bb09dbb35240 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c61562e1ac87b2272155846340e2bb09dbb35240)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c630720055e52eff09e80d1d6c544e73ca4d2bf8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c630720055e52eff09e80d1d6c544e73ca4d2bf8)bin184 -> 184 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c635a4abebca0de83c5fec1611a1a5e116c13612 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c635a4abebca0de83c5fec1611a1a5e116c13612)bin11549 -> 11549 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c6566639bc889da861c0226796aebbf05d4eb11e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c6566639bc889da861c0226796aebbf05d4eb11e)bin424 -> 424 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c69ac3332de9a9a096767c76cee444497bd6643c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c69ac3332de9a9a096767c76cee444497bd6643c)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c6a5823aef1d9216502bab3a1b2f7f1f55807bf9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c6a5823aef1d9216502bab3a1b2f7f1f55807bf9)bin616 -> 616 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c738d6a8e519f1c75639b8ec146cab4347b9a26f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c738d6a8e519f1c75639b8ec146cab4347b9a26f)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c7456e71ab8a12f69312c6753e21061215b5d067 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c7456e71ab8a12f69312c6753e21061215b5d067)bin1577 -> 1577 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c77ea0e11e72327039724f57bf200fef206c1467 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c77ea0e11e72327039724f57bf200fef206c1467)bin1855 -> 1855 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c782df357603498436c4117ec3ad0161c460683c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c782df357603498436c4117ec3ad0161c460683c)bin671 -> 671 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c791159d7d003d25c1847076aab498ab515b83eb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c791159d7d003d25c1847076aab498ab515b83eb)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c7a963f381a14d1cb1ddb39602dcd1f0f080e223 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c7a963f381a14d1cb1ddb39602dcd1f0f080e223)bin1983 -> 1983 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c7b6d4f99e3b99b6137b700029b8a04aec2c7723 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c7b6d4f99e3b99b6137b700029b8a04aec2c7723)bin662 -> 662 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c7ed7ee03e205b2ed9a6069aa175a4ebeeca7d0a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c7ed7ee03e205b2ed9a6069aa175a4ebeeca7d0a)bin131 -> 131 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c848141da33ef406ee960d3e2ca44b8c5660b02d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c848141da33ef406ee960d3e2ca44b8c5660b02d)bin469 -> 469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c89173e1889ecc405c92fd7ddd073e875a0bcd60 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c89173e1889ecc405c92fd7ddd073e875a0bcd60)bin822 -> 822 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c8c0bfcec967531d6b3ff5af3f339dcfab96be01 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c8c0bfcec967531d6b3ff5af3f339dcfab96be01)bin828 -> 828 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c8f98cd2189c0b5ad5593247af549d05b6f135c0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c8f98cd2189c0b5ad5593247af549d05b6f135c0)bin648 -> 648 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c8fb25b08db94636c0b82658998c3e30553eb1d9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c8fb25b08db94636c0b82658998c3e30553eb1d9)bin693 -> 693 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c9028ded05f38d00d5e2b910f560f88b6631f063 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c9028ded05f38d00d5e2b910f560f88b6631f063)bin649 -> 649 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c91cdcf426efe8ec0e1c127abd4925962f097900 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c91cdcf426efe8ec0e1c127abd4925962f097900)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c92987d6007592fc181fd8e4ba31943a1b8cb451 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c92987d6007592fc181fd8e4ba31943a1b8cb451)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c97c7c02fd4ae28822987cbf057a7dc875f4bf0d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c97c7c02fd4ae28822987cbf057a7dc875f4bf0d)bin837 -> 837 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c9c7520654058ff5ac49325ce774315c56c6304a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c9c7520654058ff5ac49325ce774315c56c6304a)bin336 -> 336 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c9cef32ff1b8f6410ac798a43ed3ce1c15bae1a7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c9cef32ff1b8f6410ac798a43ed3ce1c15bae1a7)bin702 -> 702 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/c9f1fa35390d698cd1cc3aefec503cb7dc92b3cc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/c9f1fa35390d698cd1cc3aefec503cb7dc92b3cc)bin15228 -> 15228 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ca0c686229eb1323574f81639ae6ca06cb55bc11 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ca0c686229eb1323574f81639ae6ca06cb55bc11)bin751 -> 751 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ca130ffbf55267ae24ca0a08df596e3de56b5199 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ca130ffbf55267ae24ca0a08df596e3de56b5199)bin614 -> 614 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ca27fc88c3bafe7bd11761755300bc128a0a283d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ca27fc88c3bafe7bd11761755300bc128a0a283d)bin466 -> 466 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ca2f7395835527b2917bd4c633254546503a80e0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ca2f7395835527b2917bd4c633254546503a80e0)bin432 -> 432 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ca85d98ce0e6e40f92369b19f1b27effa20ec529 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ca85d98ce0e6e40f92369b19f1b27effa20ec529)bin836 -> 836 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b)bin35 -> 35 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/caaf508709d641e292638007e26f9d1d8be2ba50 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/caaf508709d641e292638007e26f9d1d8be2ba50)bin696 -> 696 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/caec50287ca7304c539323c5badbf3f3f99baa3b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/caec50287ca7304c539323c5badbf3f3f99baa3b)bin896 -> 896 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cb4c5cae0a2071f92bb36bd9cbd2d416f22eb5b1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cb4c5cae0a2071f92bb36bd9cbd2d416f22eb5b1)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cb7657fa47bbfecff8ca3b80856feaff516cf553 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cb7657fa47bbfecff8ca3b80856feaff516cf553)bin576 -> 576 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cbc97c4d6359d2f7f0162dd68e4d98810e77f9d4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cbc97c4d6359d2f7f0162dd68e4d98810e77f9d4)bin420 -> 420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cc0f8ed37154fb5999fdba16e8a96856add9f649 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cc0f8ed37154fb5999fdba16e8a96856add9f649)bin775 -> 775 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cc23fb187891eb6f1a7f836815d22d567013c60d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cc23fb187891eb6f1a7f836815d22d567013c60d)bin1619 -> 1619 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cc4199d8090f2574a618471328dcea390cb55747 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cc4199d8090f2574a618471328dcea390cb55747)bin259 -> 259 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cc61f1d6ee5e03694c85dd8ec425987a36649883 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cc61f1d6ee5e03694c85dd8ec425987a36649883)bin434 -> 434 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cc7da2fad8674f1e3bacb645954147842cbc41e9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cc7da2fad8674f1e3bacb645954147842cbc41e9)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cce6d5685c901b592515540bab8c40f00733d3b9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cce6d5685c901b592515540bab8c40f00733d3b9)bin305 -> 305 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cced73d1781720a118ffdcce587529da5b05c09d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cced73d1781720a118ffdcce587529da5b05c09d)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ccf4aa770470bccc20ca69d9fd40b60ff15abd72 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ccf4aa770470bccc20ca69d9fd40b60ff15abd72)bin724 -> 724 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cd1976ed38fbfc5abb38563350f1f4dee6beeec5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cd1976ed38fbfc5abb38563350f1f4dee6beeec5)bin1004 -> 1004 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cd31eab20e7bba1fcd375eb69804ab97019604bc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cd31eab20e7bba1fcd375eb69804ab97019604bc)bin209 -> 209 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3526e8f9030cd30eb27e3bf3c0efa8692ba2a8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cd3526e8f9030cd30eb27e3bf3c0efa8692ba2a8)bin438 -> 438 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3b0e44d5e29cc8c3b79684ace4c9416ac5aeac (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cd3b0e44d5e29cc8c3b79684ace4c9416ac5aeac)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3edda428e4e61005f4053c10ce7bd3590f87d5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cd3edda428e4e61005f4053c10ce7bd3590f87d5)bin1225 -> 1225 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cd6d50f0b73966e47776a87e978930da85f6d948 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cd6d50f0b73966e47776a87e978930da85f6d948)bin12569 -> 12569 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cdb3019af4dbb93c3551fd3ea9c9fee744ec43ac (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cdb3019af4dbb93c3551fd3ea9c9fee744ec43ac)bin323 -> 323 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ce63142e81fb0a63f7c185478738092844f5af5a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ce63142e81fb0a63f7c185478738092844f5af5a)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cf094d5650ef7267525ef182de53b92cb1643699 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cf094d5650ef7267525ef182de53b92cb1643699)bin526 -> 526 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cf3c11cfb701a1d58062c94f370d7e1f500ddac2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cf3c11cfb701a1d58062c94f370d7e1f500ddac2)bin721 -> 721 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cf83aacc03cb874af4ad553223dc671707b129a8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cf83aacc03cb874af4ad553223dc671707b129a8)bin494 -> 494 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/cfcd0b6d1ac3725f33a582056a59079ec3e31dfe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/cfcd0b6d1ac3725f33a582056a59079ec3e31dfe)bin404 -> 404 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-empty.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-empty.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-extreme.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-extreme.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-complete-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-complete-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing-but-extension.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing-but-extension.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-space.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-space.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-uppercase.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-uppercase.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-last-chunk-with-extension.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-last-chunk-with-extension.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-extension.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-extension.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-trailer.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-trailer.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-sixteen.hex (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-sixteen.hex)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-extensions.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-extensions.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-trailers.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-trailers.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-complete-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/content-length-complete-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-missing.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/content-length-missing.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-junk.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-junk.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-space.txt (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-space.txt)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d0294dfd47f94d3e61b5ec21ada5950141d807a0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d0294dfd47f94d3e61b5ec21ada5950141d807a0)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d075accb56088cd793e36deaf7b893e2c2458200 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d075accb56088cd793e36deaf7b893e2c2458200)bin527 -> 527 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d104d3ea3bf7dc68feb906a9e91fa212e0ec569c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d104d3ea3bf7dc68feb906a9e91fa212e0ec569c)bin1713 -> 1713 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d125916a553e7279d33d1865f4f4e85ad3d31b5f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d125916a553e7279d33d1865f4f4e85ad3d31b5f)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d13c6009b80a3574bdcb1c0284b889d7bd98d42f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d13c6009b80a3574bdcb1c0284b889d7bd98d42f)bin431 -> 431 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d146bbee5c38be2a8a53e27dd9ff11b3f9dceeb2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d146bbee5c38be2a8a53e27dd9ff11b3f9dceeb2)bin1708 -> 1708 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d17c0d4a2c39739e84c1a4f4a6e03c4ace1b637b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d17c0d4a2c39739e84c1a4f4a6e03c4ace1b637b)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d1aeaef3528e5c85c5e67616f6af955dbb207467 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d1aeaef3528e5c85c5e67616f6af955dbb207467)bin728 -> 728 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d1ebaa9ae982454abe2894d03c5562b9b60e18a7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d1ebaa9ae982454abe2894d03c5562b9b60e18a7)bin466 -> 466 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d1f5387fe0d0ab51037e3e0c8ad4c18e662ef904 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d1f5387fe0d0ab51037e3e0c8ad4c18e662ef904)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d235496142d54838520da6926717631b585ec515 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d235496142d54838520da6926717631b585ec515)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d2caf5379bc5905bac08db2bfc35137ad47b47b2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d2caf5379bc5905bac08db2bfc35137ad47b47b2)bin610 -> 610 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d2cd5c1b57ada093b6d2ec81d48a11ddaa3b274f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d2cd5c1b57ada093b6d2ec81d48a11ddaa3b274f)bin675 -> 675 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce5b54c0911d684314580dd279e5616efd5e4a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d2ce5b54c0911d684314580dd279e5616efd5e4a)bin765 -> 765 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce965b30d986f76e95e9b23f50d33a8857c270 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d2ce965b30d986f76e95e9b23f50d33a8857c270)bin442 -> 442 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d2f4d4baf2697a548ab7b466544de208be54700d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d2f4d4baf2697a548ab7b466544de208be54700d)bin783 -> 783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d30ee9ea802cc78a6a01135a6c29108d7617e047 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d30ee9ea802cc78a6a01135a6c29108d7617e047)bin891 -> 891 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d33fc3d4d1346fc9370ccb12122512bb42dd1ea6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d33fc3d4d1346fc9370ccb12122512bb42dd1ea6)bin187 -> 187 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d3aaca6eebe50a9401816a1ffbccc4c21a477775 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d3aaca6eebe50a9401816a1ffbccc4c21a477775)bin603 -> 603 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d40bfcf0209f1d3c8fe39ff8cd82c16a71ea5505 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d40bfcf0209f1d3c8fe39ff8cd82c16a71ea5505)bin698 -> 698 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d41236e99a2d15489fb86e23d61a63dbc02c2895 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d41236e99a2d15489fb86e23d61a63dbc02c2895)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d4275a43f41b6717f0e0d8b9e81c236b81393350 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d4275a43f41b6717f0e0d8b9e81c236b81393350)bin2118 -> 2118 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d429b5a6d3f2be1dad7769fff981ad4fac046129 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d429b5a6d3f2be1dad7769fff981ad4fac046129)bin721 -> 721 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d43c9d1a08ccbcfd45db557be6c06353e44705af (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d43c9d1a08ccbcfd45db557be6c06353e44705af)bin310 -> 310 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d489d43056f966ab28c8416a7370d718a7bcbc6f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d489d43056f966ab28c8416a7370d718a7bcbc6f)bin232 -> 232 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d537933c5bf5e74293647a717dd64936de092db8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d537933c5bf5e74293647a717dd64936de092db8)bin495 -> 495 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d5c844edce1789bc4bf71b75b9a462e73e39a8d2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d5c844edce1789bc4bf71b75b9a462e73e39a8d2)bin718 -> 718 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d6077d45c6a645aa7407a7ce17c8a5cc4a5dfa74 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d6077d45c6a645aa7407a7ce17c8a5cc4a5dfa74)bin470 -> 470 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d69080a4ea3ec2a3ea5a38d74bf6bd5c96136b98 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d69080a4ea3ec2a3ea5a38d74bf6bd5c96136b98)bin500 -> 500 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d6b49456c9485f0400e774d97254047df2eabe53 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d6b49456c9485f0400e774d97254047df2eabe53)bin379 -> 379 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d6dbea4a4af12b72e5e2aa225e25c01d43ea3537 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d6dbea4a4af12b72e5e2aa225e25c01d43ea3537)bin1005 -> 1005 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d73c2bd352c2aeca1a95d37fded5a54546e53521 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d73c2bd352c2aeca1a95d37fded5a54546e53521)bin417 -> 417 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d74495f1328da5657526ff0be95be405ea66cd65 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d74495f1328da5657526ff0be95be405ea66cd65)bin478 -> 478 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d74ba5aa35797246dfdb739602ada7d5d172c0be (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d74ba5aa35797246dfdb739602ada7d5d172c0be)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d75ab0577aa9b35f1c0a3c8e40dbaec6a33862ce (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d75ab0577aa9b35f1c0a3c8e40dbaec6a33862ce)bin3123 -> 3123 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d78392761a6179026a01df60c69d93797734ee9d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d78392761a6179026a01df60c69d93797734ee9d)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d7b4b7848dbf68f25dc48d0bee12f925f16f800d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d7b4b7848dbf68f25dc48d0bee12f925f16f800d)bin767 -> 767 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d7bcf9cf8cc5ff8defeec96536874c7d53326e01 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d7bcf9cf8cc5ff8defeec96536874c7d53326e01)bin238 -> 238 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d7c76a9c32eb0e52f9b759c25a5e1d2c80b65dcf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d7c76a9c32eb0e52f9b759c25a5e1d2c80b65dcf)bin608 -> 608 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d7d700eb3847ea90d45ba105d9395d0877af2266 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d7d700eb3847ea90d45ba105d9395d0877af2266)bin218 -> 218 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d7ed17dee713563276c05db9a3852a8d5aa6affb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d7ed17dee713563276c05db9a3852a8d5aa6affb)bin452 -> 452 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d7f6fd5ed6c9361ddb3193efba846cb9e9110277 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d7f6fd5ed6c9361ddb3193efba846cb9e9110277)bin2710 -> 2710 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d84aa075d3878310acf4ae44b244019cdb42ab1f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d84aa075d3878310acf4ae44b244019cdb42ab1f)bin604 -> 604 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d850ad1c7f559eff39ec2f7f33577687a8530d89 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d850ad1c7f559eff39ec2f7f33577687a8530d89)bin807 -> 807 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d8597c8cc68cd8a317c3657d591d5e34590e8995 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d8597c8cc68cd8a317c3657d591d5e34590e8995)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d85d1aa7385415f81382ee265d64469aa1066aba (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d85d1aa7385415f81382ee265d64469aa1066aba)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d86e0c1a56376ce90d5f97e67b6a7b3604c3d84b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d86e0c1a56376ce90d5f97e67b6a7b3604c3d84b)bin432 -> 432 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d8759b0b3b8eb7d6747b03fa499e07ea3186d436 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d8759b0b3b8eb7d6747b03fa499e07ea3186d436)bin517 -> 517 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d879969054fb8afd73a4b3f12f531bad58351b02 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d879969054fb8afd73a4b3f12f531bad58351b02)bin402 -> 402 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d88e90b01449ca3ed188ff6dd4a7046cd6830c75 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d88e90b01449ca3ed188ff6dd4a7046cd6830c75)bin469 -> 469 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d8f6b2acbe82c2e6af59931cbe881944470e4e1f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d8f6b2acbe82c2e6af59931cbe881944470e4e1f)bin302 -> 302 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d93f7d0a88213f0f1e8da8d21be04833e4e5d995 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d93f7d0a88213f0f1e8da8d21be04833e4e5d995)bin1699 -> 1699 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d9bb6d824331a7f560e304c08e679e2af6385660 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d9bb6d824331a7f560e304c08e679e2af6385660)bin458 -> 458 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a)bin65536 -> 65536 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/da81c50a35a70154ed2826cd354f06ce9c7d19e0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/da81c50a35a70154ed2826cd354f06ce9c7d19e0)bin248 -> 248 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/da9d7ebbc15645ec27a1426d59d742e8e857b04d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/da9d7ebbc15645ec27a1426d59d742e8e857b04d)bin6266 -> 6266 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dade4a6b122f9851fcbe3c583acf5248f68704d2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dade4a6b122f9851fcbe3c583acf5248f68704d2)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dae137f2267faa3fdfacf04876240a6e927acef5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dae137f2267faa3fdfacf04876240a6e927acef5)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dae217cc15ca70a405b2a5f82f0b22c53da2b89b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dae217cc15ca70a405b2a5f82f0b22c53da2b89b)bin549 -> 549 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/daedf15539dfc460e6a5105ce4279d5c8e424942 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/daedf15539dfc460e6a5105ce4279d5c8e424942)bin608 -> 608 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/db1116dca2a61226959171891c7f1459171d7f0d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/db1116dca2a61226959171891c7f1459171d7f0d)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/db14d4a659c5e138290e87ba9e7a4e3563eb3dca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/db14d4a659c5e138290e87ba9e7a4e3563eb3dca)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/db1c948bbe625278700191a16447f57d013545cc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/db1c948bbe625278700191a16447f57d013545cc)bin230 -> 230 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/db96f6389b76310ad78af27fdb7989f51ae7304e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/db96f6389b76310ad78af27fdb7989f51ae7304e)bin362 -> 362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dd4791bb00101f010e7e1b9b85485aa01adf986c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dd4791bb00101f010e7e1b9b85485aa01adf986c)bin827 -> 827 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dd7dcedd7a9048847454784d8e17334432fd052e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dd7dcedd7a9048847454784d8e17334432fd052e)bin11156 -> 11156 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dd922d5cbb4520f7375d9c17b0e1132ef321ff0e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dd922d5cbb4520f7375d9c17b0e1132ef321ff0e)bin528 -> 528 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dd95557f8377215f946cf92345671edceff0af20 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dd95557f8377215f946cf92345671edceff0af20)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ddb2c10b0fc7d7a4348e7817f334b9fdc634ee79 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ddb2c10b0fc7d7a4348e7817f334b9fdc634ee79)bin1198 -> 1198 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ddc7fbc29b6baf54413bee3aa2c72cd42405e281 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ddc7fbc29b6baf54413bee3aa2c72cd42405e281)bin370 -> 370 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dde77ec9ae1557d2320f32c69453f3e1c21bc207 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dde77ec9ae1557d2320f32c69453f3e1c21bc207)bin542 -> 542 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de0017a5120cbce294e62c0a688d9b937a7c9317 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de0017a5120cbce294e62c0a688d9b937a7c9317)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de2605030710b27a24c4d137617ac96fbc66ffbe (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de2605030710b27a24c4d137617ac96fbc66ffbe)bin3122 -> 3122 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de324aa7a38a20437f84b371f29bc0c672ff0805 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de324aa7a38a20437f84b371f29bc0c672ff0805)bin12594 -> 12594 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de44121163ddb3a0b65d1d3c9b04d108d3625eda (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de44121163ddb3a0b65d1d3c9b04d108d3625eda)bin187 -> 187 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de4f74aed94ad5a75e185d59d668b53344ab3133 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de4f74aed94ad5a75e185d59d668b53344ab3133)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de64ceee2fd45c9dc6f37e527fc60e5f10e8e4a4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de64ceee2fd45c9dc6f37e527fc60e5f10e8e4a4)bin300 -> 300 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de6ca341eb9699248837ae3c23ab60163ca13e9c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de6ca341eb9699248837ae3c23ab60163ca13e9c)bin834 -> 834 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/de812144a12d01f6b066a1c8336c7affaacb742c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/de812144a12d01f6b066a1c8336c7affaacb742c)bin538 -> 538 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dee582811ad04e0361098eef7ad1b7bac38f7389 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dee582811ad04e0361098eef7ad1b7bac38f7389)bin132 -> 132 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dee8932fbbbc308b7b941103675622d1b36926f2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dee8932fbbbc308b7b941103675622d1b36926f2)bin828 -> 828 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/df369ce1b83d6cb00308c4a2477846da87691fbb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/df369ce1b83d6cb00308c4a2477846da87691fbb)bin2429 -> 2429 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/df63abee9202c5b33d479b9947144c1edd29b2b4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/df63abee9202c5b33d479b9947144c1edd29b2b4)bin3138 -> 3138 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/df84cc15850842057eae4ef1f0db534acd386872 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/df84cc15850842057eae4ef1f0db534acd386872)bin307 -> 307 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/df8e06e3e84bf6bfc1ba82baf3f8414b914bd21e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/df8e06e3e84bf6bfc1ba82baf3f8414b914bd21e)bin241 -> 241 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/df8e8bd5a8880e271ab4daa75bbf7d3c1f09c442 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/df8e8bd5a8880e271ab4daa75bbf7d3c1f09c442)bin362 -> 362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/dfbb273243664a1b97c5244f5f78570cb8c7954c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/dfbb273243664a1b97c5244f5f78570cb8c7954c)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e01510fad07c26b82efc03f5e17777ce1a480c5c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e01510fad07c26b82efc03f5e17777ce1a480c5c)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e03295893c6fa334e172656ef27c4de33f8d490d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e03295893c6fa334e172656ef27c4de33f8d490d)bin1156 -> 1156 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e039de3abc8134aadede158d0c23d2981a362719 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e039de3abc8134aadede158d0c23d2981a362719)bin8201 -> 8201 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e0a0e15cbce73706ae010f981ede7501e4516327 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e0a0e15cbce73706ae010f981ede7501e4516327)bin727 -> 727 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e0a30c9bb3cec25b9c29dd5eea16ac0a88da13e1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e0a30c9bb3cec25b9c29dd5eea16ac0a88da13e1)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e0b7bf88771a804a4f1d36f40eb3af021ccf8d68 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e0b7bf88771a804a4f1d36f40eb3af021ccf8d68)bin809 -> 809 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e0ceeff896f3cee848daf04054078fc9c7ab2983 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e0ceeff896f3cee848daf04054078fc9c7ab2983)bin737 -> 737 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e1230645e4c011a7ff352ac98e38756f86014b94 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e1230645e4c011a7ff352ac98e38756f86014b94)bin307 -> 307 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e146e00fc1b66cdb956c985a77e612d59f9c7812 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e146e00fc1b66cdb956c985a77e612d59f9c7812)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e16a47bea1d259f129df79959e14fe962b2c01f8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e16a47bea1d259f129df79959e14fe962b2c01f8)bin496 -> 496 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e1aff661bc08f0df06a4f3e21da38de3e8f03ae6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e1aff661bc08f0df06a4f3e21da38de3e8f03ae6)bin188 -> 188 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e1b0b25b8d5ed3fef892629aebb04d2d5847033f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e1b0b25b8d5ed3fef892629aebb04d2d5847033f)bin807 -> 807 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e1b73c47f693b45e3fa5c2717d35767cd5d1bb7f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e1b73c47f693b45e3fa5c2717d35767cd5d1bb7f)bin810 -> 810 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e1bd4655d30387e149fd379e4b0d7d5af2ea99d3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e1bd4655d30387e149fd379e4b0d7d5af2ea99d3)bin408 -> 408 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e1f961ea85d61e63167fcfd67607eb49677b8d1f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e1f961ea85d61e63167fcfd67607eb49677b8d1f)bin420 -> 420 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e2176e1148e5560c39c28845a713ee681243fd31 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e2176e1148e5560c39c28845a713ee681243fd31)bin291 -> 291 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e241f9b586aa7130c9d7d4787d64164299ec46ed (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e241f9b586aa7130c9d7d4787d64164299ec46ed)bin412 -> 412 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e25169a6ab6de82609cf7f6ded62200fe1314294 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e25169a6ab6de82609cf7f6ded62200fe1314294)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e271af0e2a20bd04150314dd36aeff6c952af272 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e271af0e2a20bd04150314dd36aeff6c952af272)bin761 -> 761 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e277401a113b2c2c1beceb6218c76a0af4d079b3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e277401a113b2c2c1beceb6218c76a0af4d079b3)bin691 -> 691 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e27b05394d38585139dffafd2777cc9d4bda9f23 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e27b05394d38585139dffafd2777cc9d4bda9f23)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e2ae2a33babf57273bac0be1afc720b960c01c83 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e2ae2a33babf57273bac0be1afc720b960c01c83)bin256 -> 256 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e2b2b942d20ae47acf7da394c209083b5474b5e6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e2b2b942d20ae47acf7da394c209083b5474b5e6)bin800 -> 800 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e2b58878bc421946cef2f1cba616aafebf8bd14d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e2b58878bc421946cef2f1cba616aafebf8bd14d)bin1627 -> 1627 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e2e45dfb2a189ade69fe838afab69c65972377c0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e2e45dfb2a189ade69fe838afab69c65972377c0)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e311ad7eddbbc3509f37ad57c01c774eff0dca62 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e311ad7eddbbc3509f37ad57c01c774eff0dca62)bin383 -> 383 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e3dcb423f0bb7cc5062c92d6793c97df942fb573 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e3dcb423f0bb7cc5062c92d6793c97df942fb573)bin7792 -> 7792 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e40685c34318eae5d4b37d7232c8f91ef255980f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e40685c34318eae5d4b37d7232c8f91ef255980f)bin1884 -> 1884 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e422d138648bc74fef1ffca58a8c9cdcd8efcdb8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e422d138648bc74fef1ffca58a8c9cdcd8efcdb8)bin798 -> 798 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e428830cae8af1de5fb0e0774463fa9210136861 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e428830cae8af1de5fb0e0774463fa9210136861)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e46680ba81d7674b94bb79bea4facb5a48f25e12 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e46680ba81d7674b94bb79bea4facb5a48f25e12)bin286 -> 286 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e46c26f169bb43e3119f78a38f4a981809a02f0e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e46c26f169bb43e3119f78a38f4a981809a02f0e)bin511 -> 511 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e47cc081c9c43aedc57a54c68a39eac2f5787d53 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e47cc081c9c43aedc57a54c68a39eac2f5787d53)bin417 -> 417 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e5157a7fb2a8f471c9d13cd5bf404327c3544ba2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e5157a7fb2a8f471c9d13cd5bf404327c3544ba2)bin298 -> 298 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e522fa40cc0aa1dab7c48f8a7f454cb07ac8a859 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e522fa40cc0aa1dab7c48f8a7f454cb07ac8a859)bin1486 -> 1486 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e56928ea5e5867cbdbfeb8a19909d95a623977ad (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e56928ea5e5867cbdbfeb8a19909d95a623977ad)bin741 -> 741 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e56f29f75520470074d11f0b6038e7d4fdc17ef1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e56f29f75520470074d11f0b6038e7d4fdc17ef1)bin220 -> 220 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e58fb13306314884fe2989d724dbc23f4e4d5e79 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e58fb13306314884fe2989d724dbc23f4e4d5e79)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e5a5d659a71c7a30e3a673a6f8f8e96c46c65227 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e5a5d659a71c7a30e3a673a6f8f8e96c46c65227)bin594 -> 594 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e5b45f63c5dc9217173021a273afafc37fdbda6d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e5b45f63c5dc9217173021a273afafc37fdbda6d)bin543 -> 543 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e5dddad26a759a36bd3c0d77edee924f64f6abd7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e5dddad26a759a36bd3c0d77edee924f64f6abd7)bin498 -> 498 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e66dcae8eabae2e43465c21221676b3690c26c3e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e66dcae8eabae2e43465c21221676b3690c26c3e)bin338 -> 338 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e67a3c3a0be4ba12ef5126ee4c3c41459c93e5a1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e67a3c3a0be4ba12ef5126ee4c3c41459c93e5a1)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e67d46dd9253eab97d6783ef4d314f14b6cc5ab7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e67d46dd9253eab97d6783ef4d314f14b6cc5ab7)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e6b92a5f2801da4ca84aae6ce362769f73436ae1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e6b92a5f2801da4ca84aae6ce362769f73436ae1)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e6d663c004efc8a59c8352501d4b2b6636169893 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e6d663c004efc8a59c8352501d4b2b6636169893)bin793 -> 793 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e6e47be53ab16738c5537f88c3a92b32e08f3cf2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e6e47be53ab16738c5537f88c3a92b32e08f3cf2)bin351 -> 351 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e7dffb3ca46d4d1ede59f8c64dcfde53ef97ff53 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e7dffb3ca46d4d1ede59f8c64dcfde53ef97ff53)bin634 -> 634 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e84d7d3a5606ac32bc35c2ca069cc37150cd2c3f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e84d7d3a5606ac32bc35c2ca069cc37150cd2c3f)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e870aafcbd925d853f6626e636d81e42169c988c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e870aafcbd925d853f6626e636d81e42169c988c)bin595 -> 595 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e8b1f92615aedafb8965cf54d6f44ff8e0b3c0d9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e8b1f92615aedafb8965cf54d6f44ff8e0b3c0d9)bin782 -> 782 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e8b2a8b192f94c52c351fc9e9f95a71e304c0351 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e8b2a8b192f94c52c351fc9e9f95a71e304c0351)bin243 -> 243 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e8ce6a56e5c0a3309d21e0e6c040ad333e0db216 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e8ce6a56e5c0a3309d21e0e6c040ad333e0db216)bin783 -> 783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e9624607acf66dc0f2b8258eb0568a593b93c840 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e9624607acf66dc0f2b8258eb0568a593b93c840)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e9be09a2e89074cbe72fa234d22d47e9a8bdf4c0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e9be09a2e89074cbe72fa234d22d47e9a8bdf4c0)bin227 -> 227 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/e9d66de86fb0a33c4e952ab98ce15156f8c2a851 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/e9d66de86fb0a33c4e952ab98ce15156f8c2a851)bin576 -> 576 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ea1a86fe4e667aeac7245c1ce3ee62c587b72a53 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ea1a86fe4e667aeac7245c1ce3ee62c587b72a53)bin234 -> 234 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ea64e539a6c30f03d3d90e81b143e8491c8f32da (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ea64e539a6c30f03d3d90e81b143e8491c8f32da)bin488 -> 488 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ea730db0db5ed36ad1554ce89fb0fee527fbd73c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ea730db0db5ed36ad1554ce89fb0fee527fbd73c)bin802 -> 802 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ea7a7cea39fcb72fcfca86836f74cf1c7525417b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ea7a7cea39fcb72fcfca86836f74cf1c7525417b)bin742 -> 742 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ea92e03d389fdf50b96383cb42bed86311846190 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ea92e03d389fdf50b96383cb42bed86311846190)bin561 -> 561 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/eb6e06cae7775897f794c1f535bcf25f7ab16782 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/eb6e06cae7775897f794c1f535bcf25f7ab16782)bin1486 -> 1486 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/eb7b59293c15828be3f440d43fa6a65a5819be41 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/eb7b59293c15828be3f440d43fa6a65a5819be41)bin772 -> 772 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ebc0616dc3fe3f620bcb5bb3135e4ef4f7867be6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ebc0616dc3fe3f620bcb5bb3135e4ef4f7867be6)bin688 -> 688 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ebc7f852d383da12a049689cb7d59d108cb1a9e3 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ebc7f852d383da12a049689cb7d59d108cb1a9e3)bin4613 -> 4613 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ebcd04e3c10e386d1c87fcdeac67564b1ee93211 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ebcd04e3c10e386d1c87fcdeac67564b1ee93211)bin245 -> 245 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ec12e94bdb74ef1a688b178389f25f52cba58264 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ec12e94bdb74ef1a688b178389f25f52cba58264)bin555 -> 555 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ec36edf10ec0b70e85dfef1c9e27bbdfd85193e1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ec36edf10ec0b70e85dfef1c9e27bbdfd85193e1)bin888 -> 888 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ec539c0106db3167d2695d2567786e0e46bed5c7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ec539c0106db3167d2695d2567786e0e46bed5c7)bin2166 -> 2166 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ec6fd7ddf84d78e3b4c4e735307bf6f6f2ecf673 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ec6fd7ddf84d78e3b4c4e735307bf6f6f2ecf673)bin252 -> 252 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ec8562865ee9372d3713a18503621a65c098e3d0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ec8562865ee9372d3713a18503621a65c098e3d0)bin499 -> 499 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ed47f6b1c0d859dcf4f0ce9ff01589b93e9842d0 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ed47f6b1c0d859dcf4f0ce9ff01589b93e9842d0)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/edbddc03e1405865418adbf4b777861fa31dad3e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/edbddc03e1405865418adbf4b777861fa31dad3e)bin1042 -> 1042 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ee05e6b41849937d8bdcb0f5f5ae1d1e8b20e9e8 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ee05e6b41849937d8bdcb0f5f5ae1d1e8b20e9e8)bin463 -> 463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ee21e91aa701628d547744d072241680050f64bb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ee21e91aa701628d547744d072241680050f64bb)bin415 -> 415 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ee5035855c04ad1037a3d3c4607062a2fdba42d7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ee5035855c04ad1037a3d3c4607062a2fdba42d7)bin233 -> 233 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ee9205608e7998483a9037b9a12235f877e06e17 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ee9205608e7998483a9037b9a12235f877e06e17)bin359 -> 359 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/eeb54b646447c42f61c83706d944e4101d59c50c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/eeb54b646447c42f61c83706d944e4101d59c50c)bin251 -> 251 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ef07572f1e2f5076ad6628f519216ee7f205d5c2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ef07572f1e2f5076ad6628f519216ee7f205d5c2)bin989 -> 989 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ef217e8e98059e1940959aca630ef3f3415604c1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ef217e8e98059e1940959aca630ef3f3415604c1)bin589 -> 589 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ef95af389f32382d51c10f48e8e7db0237ceb0e1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ef95af389f32382d51c10f48e8e7db0237ceb0e1)bin322 -> 322 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ef99fe4040198238ad54de3f8c873e7ae509ecdc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ef99fe4040198238ad54de3f8c873e7ae509ecdc)bin502 -> 502 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/efb7d95fe73239ee50397292208fb4a433bd4101 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/efb7d95fe73239ee50397292208fb4a433bd4101)bin778 -> 778 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/eff00d67d60d4a3411a4f686c022d3c7bb18f9ea (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/eff00d67d60d4a3411a4f686c022d3c7bb18f9ea)bin714 -> 714 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/eff264db8fb64790f739c4beaa5b3f88d3bbb0e5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/eff264db8fb64790f739c4beaa5b3f88d3bbb0e5)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f00d5a9059744779f4df509e44a50b6e2424967f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f00d5a9059744779f4df509e44a50b6e2424967f)bin388 -> 388 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f052ab0f833f01a44899dc5f2165fff88c11f15f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f052ab0f833f01a44899dc5f2165fff88c11f15f)bin2229 -> 2229 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f05926ad54fabcb7fad300668db1ec06a5c948b9 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f05926ad54fabcb7fad300668db1ec06a5c948b9)bin327 -> 327 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f0802cad41832428d226dd0888584fe91b715dfb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f0802cad41832428d226dd0888584fe91b715dfb)bin732 -> 732 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f08ab6fc4cdeb5b3f00c7f146101b198cd107b75 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f08ab6fc4cdeb5b3f00c7f146101b198cd107b75)bin667 -> 667 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f11e9b4f524e568dd21570f8f50f8800383a70ed (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f11e9b4f524e568dd21570f8f50f8800383a70ed)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f121716159dac2edd492cdc82576aae36605f318 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f121716159dac2edd492cdc82576aae36605f318)bin323 -> 323 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f1288810ca8f34da4d25976b04796b548c84b20a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f1288810ca8f34da4d25976b04796b548c84b20a)bin965 -> 965 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f142c5f05d5941915e9bce2ba6e88353619df437 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f142c5f05d5941915e9bce2ba6e88353619df437)bin389 -> 389 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f1575fb12995a11a2f43305e8c566e1b675ff670 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f1575fb12995a11a2f43305e8c566e1b675ff670)bin530 -> 530 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f1658abe8fc3ad4fd15fd15057895bcdd77d9243 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f1658abe8fc3ad4fd15fd15057895bcdd77d9243)bin435 -> 435 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f16913c2a4776959552988bb2bd3b95844882c80 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f16913c2a4776959552988bb2bd3b95844882c80)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f17ca3d7ed47102feebadbb526dbfd4f547b7ee4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f17ca3d7ed47102feebadbb526dbfd4f547b7ee4)bin4824 -> 4824 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f1a20437cbf1e28b959193b66b867262eda70972 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f1a20437cbf1e28b959193b66b867262eda70972)bin546 -> 546 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f1bb5e6dab200ad35f5dc93bc1a2bdf3a4b89d47 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f1bb5e6dab200ad35f5dc93bc1a2bdf3a4b89d47)bin3546 -> 3546 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f26eabd2261e107a04fcb42f8c2fc31695d6642c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f26eabd2261e107a04fcb42f8c2fc31695d6642c)bin295 -> 295 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f2a02dccce79314842b076516a1ed2cb4369911e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f2a02dccce79314842b076516a1ed2cb4369911e)bin448 -> 448 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f2cede58d36d74692e09543ff506e9de109c4f1a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f2cede58d36d74692e09543ff506e9de109c4f1a)bin292 -> 292 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f2e19cbe749f98cd79dd7f826a2b27d2ad0bfa77 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f2e19cbe749f98cd79dd7f826a2b27d2ad0bfa77)bin818 -> 818 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f302f9b69771b7352e675b8eb77239956f42443b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f302f9b69771b7352e675b8eb77239956f42443b)bin596 -> 596 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f3a0a4d9a776a09eac39d2fcd1eb5982ee08e3d7 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f3a0a4d9a776a09eac39d2fcd1eb5982ee08e3d7)bin266 -> 266 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f3b409bf9adc3d3249b06903fa3d2ddfe44df173 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f3b409bf9adc3d3249b06903fa3d2ddfe44df173)bin176 -> 176 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f41765632394af4b01327d13c20f525581a6c020 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f41765632394af4b01327d13c20f525581a6c020)bin497 -> 497 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f427feaf6e9c2bb358ae0fef8e4f71290c276ebb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f427feaf6e9c2bb358ae0fef8e4f71290c276ebb)bin776 -> 776 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f42e3d5513624ec537e58050dbad20d55cc4386f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f42e3d5513624ec537e58050dbad20d55cc4386f)bin525 -> 525 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f5036ffce007aa483f3bb374d1da596558fc86c6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f5036ffce007aa483f3bb374d1da596558fc86c6)bin663 -> 663 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f50fa559cb9b484f84a6173f4dd8af295c870a14 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f50fa559cb9b484f84a6173f4dd8af295c870a14)bin247 -> 247 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f5df472f1ceca9738bd2672b48ab3acdbe68757d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f5df472f1ceca9738bd2672b48ab3acdbe68757d)bin6292 -> 6292 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f5e3c3eb71bbda5342270f536287670baa92e8e6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f5e3c3eb71bbda5342270f536287670baa92e8e6)bin454 -> 454 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f607bc625cbe6345ff5b3017b817e5b7254f7b54 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f607bc625cbe6345ff5b3017b817e5b7254f7b54)bin422 -> 422 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f617706e6ecd0ef5e1f6b182bf4076069ec8e58b (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f617706e6ecd0ef5e1f6b182bf4076069ec8e58b)bin225 -> 225 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f680f4df57c8d5793134169c68a0e46018901229 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f680f4df57c8d5793134169c68a0e46018901229)bin282 -> 282 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f6925601533acfa74e43f12c1be6357f4bdb1b4c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f6925601533acfa74e43f12c1be6357f4bdb1b4c)bin891 -> 891 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f6d5dab82e1a011725bdcf35d190c84a3d2c783e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f6d5dab82e1a011725bdcf35d190c84a3d2c783e)bin693 -> 693 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f6f74e005562421f7fa3e8f7816cb938ce7773c6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f6f74e005562421f7fa3e8f7816cb938ce7773c6)bin2770 -> 2770 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f70d4b7be2b974aedf4cb8b64209efd9ed5bd6d1 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f70d4b7be2b974aedf4cb8b64209efd9ed5bd6d1)bin333 -> 333 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f70f86ef1044f014ac631d341340fd7992358bc6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f70f86ef1044f014ac631d341340fd7992358bc6)bin999 -> 999 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f71945ea39c96fa5d69b83fb3f43032bd7dd7c3f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f71945ea39c96fa5d69b83fb3f43032bd7dd7c3f)bin830 -> 830 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f71fa9a303065a658d0326b15ec109d39091852d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f71fa9a303065a658d0326b15ec109d39091852d)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f74de4cdbdaff332982d8f3fcec4cece1eb7515a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f74de4cdbdaff332982d8f3fcec4cece1eb7515a)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f7b25c94da1b82d309e67583942a52b42eff9357 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f7b25c94da1b82d309e67583942a52b42eff9357)bin166 -> 166 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f7bd3f0eaa5669d8cf812a51f8802d82ec4bebb6 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f7bd3f0eaa5669d8cf812a51f8802d82ec4bebb6)bin890 -> 890 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f7e25833e8a85a63209bf6af8aafad932b09d029 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f7e25833e8a85a63209bf6af8aafad932b09d029)bin231 -> 231 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f808f794c98e027287bc8e344a0ede37af6e9740 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f808f794c98e027287bc8e344a0ede37af6e9740)bin153 -> 153 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f8494e10ad3c22af3ff1dd984a345f5e570f8fa2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f8494e10ad3c22af3ff1dd984a345f5e570f8fa2)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f94f98bf7d103e3b53fb9b353db3f5c5e23ffd20 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f94f98bf7d103e3b53fb9b353db3f5c5e23ffd20)bin461 -> 461 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f9790103eac63288f54845663d00fa6d12885a37 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f9790103eac63288f54845663d00fa6d12885a37)bin687 -> 687 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/f9da23b266d2fe54c13e4c223a595667ce9c0f40 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/f9da23b266d2fe54c13e4c223a595667ce9c0f40)bin816 -> 816 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fa02fa10e5a0350d196c3ed2ae56fe7fd6f3a3ab (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fa02fa10e5a0350d196c3ed2ae56fe7fd6f3a3ab)bin1708 -> 1708 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fa06370a6812a349abca76ec070e98eff1659c6f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fa06370a6812a349abca76ec070e98eff1659c6f)bin464 -> 464 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fa101fc5492ae7052cddadea91e82b556744349d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fa101fc5492ae7052cddadea91e82b556744349d)bin955 -> 955 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fa3f448ef402dd8b88b845fa08995f958dfc5dca (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fa3f448ef402dd8b88b845fa08995f958dfc5dca)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/faae6fddc1adb7050c1718dc41ab65d23c2e5a4c (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/faae6fddc1adb7050c1718dc41ab65d23c2e5a4c)bin1296 -> 1296 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fab76924b9bed9a65af871fcaf7b0d47c38af3b2 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fab76924b9bed9a65af871fcaf7b0d47c38af3b2)bin582 -> 582 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/faf086e2ffa88b9b0eb3a5a59b1494e448890691 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/faf086e2ffa88b9b0eb3a5a59b1494e448890691)bin794 -> 794 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/faf66928bcd237700b556cf35ed5112e84959e28 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/faf66928bcd237700b556cf35ed5112e84959e28)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fb2b507b591e3ecdda6e77c21ccd93e35e24cc44 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fb2b507b591e3ecdda6e77c21ccd93e35e24cc44)bin3546 -> 3546 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fb5bd4b5867d583c8eb5e7ef38ef3e19141cd9b4 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fb5bd4b5867d583c8eb5e7ef38ef3e19141cd9b4)bin654 -> 654 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fb7d9729a8fa9a8693b2fd1dbc8a6ea35a9ccc40 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fb7d9729a8fa9a8693b2fd1dbc8a6ea35a9ccc40)bin796 -> 796 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fbbc393035a18d90d9fc68cd570b3f80d791064f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fbbc393035a18d90d9fc68cd570b3f80d791064f)bin842 -> 842 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fc6714a5686fc3dbd5fc48e52a60e987ec088f70 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fc6714a5686fc3dbd5fc48e52a60e987ec088f70)bin691 -> 691 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fca53e4250c8f73ae305e99b1bbe2bbca3533fd5 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fca53e4250c8f73ae305e99b1bbe2bbca3533fd5)bin695 -> 695 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fcffc8e33cde00510dbbace0f90d398394865241 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fcffc8e33cde00510dbbace0f90d398394865241)bin528 -> 528 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fd100ac16c574200c4c104c7a47fbe4c8270185f (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fd100ac16c574200c4c104c7a47fbe4c8270185f)bin2295 -> 2295 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fdae5242986ea12cbb1dcad772d42dd83b2af46a (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fdae5242986ea12cbb1dcad772d42dd83b2af46a)bin362 -> 362 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fdd16aa76bb004c226dd157c3ca1eb11ed6b0683 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fdd16aa76bb004c226dd157c3ca1eb11ed6b0683)bin3123 -> 3123 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fe03d1d4e0f7e88f96a859976882ef115675e4bb (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fe03d1d4e0f7e88f96a859976882ef115675e4bb)bin829 -> 829 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fe03f93ff3f01afc668308de43ceeecd40b236fc (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fe03f93ff3f01afc668308de43ceeecd40b236fc)bin5131 -> 5131 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fe1151c5b387c143c8aa0812d0adff7f68d5b928 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fe1151c5b387c143c8aa0812d0adff7f68d5b928)bin7040 -> 7040 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fe2ecd81ef4e243999bc675e2b15001ed92ca114 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fe2ecd81ef4e243999bc675e2b15001ed92ca114)bin320 -> 320 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215 (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/fec7cbe228ff0a4ba5d9fa327edda5093909b3bf (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/fec7cbe228ff0a4ba5d9fa327edda5093909b3bf)bin783 -> 783 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ff0af64020119a505e74a70aa1b42328e405f38e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ff0af64020119a505e74a70aa1b42328e405f38e)bin463 -> 463 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/http2-corpus/ff3a56f7e3f4e61d9ca35d534dede292ab1e897e (renamed from web/server/h2o/libh2o/fuzz/http2-corpus/ff3a56f7e3f4e61d9ca35d534dede292ab1e897e)bin248 -> 248 bytes
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/1 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/1)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/10 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/10)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/11 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/11)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/12 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/12)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/13 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/13)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/14 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/14)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/15 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/15)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/16 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/16)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/17 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/17)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/18 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/18)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/19 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/19)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/2 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/2)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/20 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/20)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/21 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/21)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/22 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/22)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/23 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/23)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/24 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/24)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/25 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/25)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/26 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/26)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/27 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/27)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/28 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/28)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/29 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/29)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/3 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/3)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/30 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/30)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/31 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/31)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/32 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/32)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/33 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/33)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/34 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/34)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/35 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/35)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/36 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/36)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/37 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/37)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/38 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/38)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/39 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/39)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/4 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/4)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/40 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/40)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/41 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/41)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/42 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/42)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/43 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/43)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/44 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/44)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/45 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/45)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/46 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/46)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/47 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/47)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/48 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/48)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/49 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/49)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/5 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/5)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/50 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/50)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/51 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/51)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/52 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/52)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/53 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/53)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/54 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/54)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/55 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/55)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/56 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/56)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/57 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/57)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/58 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/58)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/59 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/59)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/6 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/6)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/60 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/60)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/61 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/61)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/62 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/62)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/63 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/63)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/64 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/64)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/65 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/65)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/66 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/66)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/67 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/67)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/68 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/68)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/69 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/69)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/7 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/7)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/70 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/70)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/8 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/8)0
-rw-r--r--src/web/server/h2o/libh2o/fuzz/url-corpus/9 (renamed from web/server/h2o/libh2o/fuzz/url-corpus/9)0
-rw-r--r--src/web/server/h2o/libh2o/h2o.xcodeproj/project.pbxproj (renamed from web/server/h2o/libh2o/h2o.xcodeproj/project.pbxproj)0
-rw-r--r--src/web/server/h2o/libh2o/h2o.xcodeproj/project.xcworkspace/contents.xcworkspacedata (renamed from web/server/h2o/libh2o/h2o.xcodeproj/project.xcworkspace/contents.xcworkspacedata)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o.h (renamed from web/server/h2o/libh2o/include/h2o.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/cache.h (renamed from web/server/h2o/libh2o/include/h2o/cache.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/cache_digests.h (renamed from web/server/h2o/libh2o/include/h2o/cache_digests.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/configurator.h (renamed from web/server/h2o/libh2o/include/h2o/configurator.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/file.h (renamed from web/server/h2o/libh2o/include/h2o/file.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/filecache.h (renamed from web/server/h2o/libh2o/include/h2o/filecache.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/hostinfo.h (renamed from web/server/h2o/libh2o/include/h2o/hostinfo.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/http1.h (renamed from web/server/h2o/libh2o/include/h2o/http1.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/http1client.h (renamed from web/server/h2o/libh2o/include/h2o/http1client.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/http2.h (renamed from web/server/h2o/libh2o/include/h2o/http2.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/http2_casper.h (renamed from web/server/h2o/libh2o/include/h2o/http2_casper.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/http2_internal.h (renamed from web/server/h2o/libh2o/include/h2o/http2_internal.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/http2_scheduler.h (renamed from web/server/h2o/libh2o/include/h2o/http2_scheduler.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/linklist.h (renamed from web/server/h2o/libh2o/include/h2o/linklist.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/memcached.h (renamed from web/server/h2o/libh2o/include/h2o/memcached.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/memory.h (renamed from web/server/h2o/libh2o/include/h2o/memory.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/mruby_.h (renamed from web/server/h2o/libh2o/include/h2o/mruby_.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/multithread.h (renamed from web/server/h2o/libh2o/include/h2o/multithread.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/openssl_backport.h (renamed from web/server/h2o/libh2o/include/h2o/openssl_backport.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/rand.h (renamed from web/server/h2o/libh2o/include/h2o/rand.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/serverutil.h (renamed from web/server/h2o/libh2o/include/h2o/serverutil.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/socket.h (renamed from web/server/h2o/libh2o/include/h2o/socket.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/socket/evloop.h (renamed from web/server/h2o/libh2o/include/h2o/socket/evloop.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/socket/uv-binding.h (renamed from web/server/h2o/libh2o/include/h2o/socket/uv-binding.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/socketpool.h (renamed from web/server/h2o/libh2o/include/h2o/socketpool.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/string_.h (renamed from web/server/h2o/libh2o/include/h2o/string_.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/time_.h (renamed from web/server/h2o/libh2o/include/h2o/time_.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/timeout.h (renamed from web/server/h2o/libh2o/include/h2o/timeout.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/token.h (renamed from web/server/h2o/libh2o/include/h2o/token.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/tunnel.h (renamed from web/server/h2o/libh2o/include/h2o/tunnel.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/url.h (renamed from web/server/h2o/libh2o/include/h2o/url.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/version.h (renamed from web/server/h2o/libh2o/include/h2o/version.h)0
-rw-r--r--src/web/server/h2o/libh2o/include/h2o/websocket.h (renamed from web/server/h2o/libh2o/include/h2o/websocket.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/cache.c (renamed from web/server/h2o/libh2o/lib/common/cache.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/file.c (renamed from web/server/h2o/libh2o/lib/common/file.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/filecache.c (renamed from web/server/h2o/libh2o/lib/common/filecache.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/hostinfo.c (renamed from web/server/h2o/libh2o/lib/common/hostinfo.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/http1client.c (renamed from web/server/h2o/libh2o/lib/common/http1client.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/memcached.c (renamed from web/server/h2o/libh2o/lib/common/memcached.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/memory.c (renamed from web/server/h2o/libh2o/lib/common/memory.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/multithread.c (renamed from web/server/h2o/libh2o/lib/common/multithread.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/serverutil.c (renamed from web/server/h2o/libh2o/lib/common/serverutil.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/socket.c (renamed from web/server/h2o/libh2o/lib/common/socket.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/socket/evloop.c.h (renamed from web/server/h2o/libh2o/lib/common/socket/evloop.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/socket/evloop/epoll.c.h (renamed from web/server/h2o/libh2o/lib/common/socket/evloop/epoll.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/socket/evloop/kqueue.c.h (renamed from web/server/h2o/libh2o/lib/common/socket/evloop/kqueue.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/socket/evloop/poll.c.h (renamed from web/server/h2o/libh2o/lib/common/socket/evloop/poll.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/socket/uv-binding.c.h (renamed from web/server/h2o/libh2o/lib/common/socket/uv-binding.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/socketpool.c (renamed from web/server/h2o/libh2o/lib/common/socketpool.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/string.c (renamed from web/server/h2o/libh2o/lib/common/string.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/time.c (renamed from web/server/h2o/libh2o/lib/common/time.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/timeout.c (renamed from web/server/h2o/libh2o/lib/common/timeout.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/common/url.c (renamed from web/server/h2o/libh2o/lib/common/url.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/config.c (renamed from web/server/h2o/libh2o/lib/core/config.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/configurator.c (renamed from web/server/h2o/libh2o/lib/core/configurator.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/context.c (renamed from web/server/h2o/libh2o/lib/core/context.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/headers.c (renamed from web/server/h2o/libh2o/lib/core/headers.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/logconf.c (renamed from web/server/h2o/libh2o/lib/core/logconf.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/proxy.c (renamed from web/server/h2o/libh2o/lib/core/proxy.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/request.c (renamed from web/server/h2o/libh2o/lib/core/request.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/token.c (renamed from web/server/h2o/libh2o/lib/core/token.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/token_table.h (renamed from web/server/h2o/libh2o/lib/core/token_table.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/core/util.c (renamed from web/server/h2o/libh2o/lib/core/util.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/access_log.c (renamed from web/server/h2o/libh2o/lib/handler/access_log.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/chunked.c (renamed from web/server/h2o/libh2o/lib/handler/chunked.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/compress.c (renamed from web/server/h2o/libh2o/lib/handler/compress.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/compress/brotli.cc (renamed from web/server/h2o/libh2o/lib/handler/compress/brotli.cc)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/compress/gzip.c (renamed from web/server/h2o/libh2o/lib/handler/compress/gzip.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/access_log.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/access_log.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/compress.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/compress.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/errordoc.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/errordoc.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/expires.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/expires.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/fastcgi.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/fastcgi.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/file.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/file.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/headers.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/headers.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/headers_util.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/headers_util.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/http2_debug_state.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/http2_debug_state.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/mruby.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/mruby.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/proxy.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/proxy.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/redirect.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/redirect.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/reproxy.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/reproxy.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/status.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/status.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/configurator/throttle_resp.c (renamed from web/server/h2o/libh2o/lib/handler/configurator/throttle_resp.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/errordoc.c (renamed from web/server/h2o/libh2o/lib/handler/errordoc.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/expires.c (renamed from web/server/h2o/libh2o/lib/handler/expires.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/fastcgi.c (renamed from web/server/h2o/libh2o/lib/handler/fastcgi.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/file.c (renamed from web/server/h2o/libh2o/lib/handler/file.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/file/_templates.c.h (renamed from web/server/h2o/libh2o/lib/handler/file/_templates.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/file/templates.c.h (renamed from web/server/h2o/libh2o/lib/handler/file/templates.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/headers.c (renamed from web/server/h2o/libh2o/lib/handler/headers.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/headers_util.c (renamed from web/server/h2o/libh2o/lib/handler/headers_util.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/http2_debug_state.c (renamed from web/server/h2o/libh2o/lib/handler/http2_debug_state.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mimemap.c (renamed from web/server/h2o/libh2o/lib/handler/mimemap.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mimemap/defaults.c.h (renamed from web/server/h2o/libh2o/lib/handler/mimemap/defaults.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mruby.c (renamed from web/server/h2o/libh2o/lib/handler/mruby.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mruby/chunked.c (renamed from web/server/h2o/libh2o/lib/handler/mruby/chunked.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mruby/embedded.c.h (renamed from web/server/h2o/libh2o/lib/handler/mruby/embedded.c.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mruby/embedded/chunked.rb (renamed from web/server/h2o/libh2o/lib/handler/mruby/embedded/chunked.rb)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mruby/embedded/core.rb (renamed from web/server/h2o/libh2o/lib/handler/mruby/embedded/core.rb)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mruby/embedded/http_request.rb (renamed from web/server/h2o/libh2o/lib/handler/mruby/embedded/http_request.rb)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/mruby/http_request.c (renamed from web/server/h2o/libh2o/lib/handler/mruby/http_request.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/proxy.c (renamed from web/server/h2o/libh2o/lib/handler/proxy.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/redirect.c (renamed from web/server/h2o/libh2o/lib/handler/redirect.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/reproxy.c (renamed from web/server/h2o/libh2o/lib/handler/reproxy.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/status.c (renamed from web/server/h2o/libh2o/lib/handler/status.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/status/durations.c (renamed from web/server/h2o/libh2o/lib/handler/status/durations.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/status/events.c (renamed from web/server/h2o/libh2o/lib/handler/status/events.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/status/requests.c (renamed from web/server/h2o/libh2o/lib/handler/status/requests.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/handler/throttle_resp.c (renamed from web/server/h2o/libh2o/lib/handler/throttle_resp.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http1.c (renamed from web/server/h2o/libh2o/lib/http1.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/cache_digests.c (renamed from web/server/h2o/libh2o/lib/http2/cache_digests.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/casper.c (renamed from web/server/h2o/libh2o/lib/http2/casper.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/connection.c (renamed from web/server/h2o/libh2o/lib/http2/connection.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/frame.c (renamed from web/server/h2o/libh2o/lib/http2/frame.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/hpack.c (renamed from web/server/h2o/libh2o/lib/http2/hpack.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/hpack_huffman_table.h (renamed from web/server/h2o/libh2o/lib/http2/hpack_huffman_table.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/hpack_static_table.h (renamed from web/server/h2o/libh2o/lib/http2/hpack_static_table.h)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/http2_debug_state.c (renamed from web/server/h2o/libh2o/lib/http2/http2_debug_state.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/scheduler.c (renamed from web/server/h2o/libh2o/lib/http2/scheduler.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/http2/stream.c (renamed from web/server/h2o/libh2o/lib/http2/stream.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/tunnel.c (renamed from web/server/h2o/libh2o/lib/tunnel.c)0
-rw-r--r--src/web/server/h2o/libh2o/lib/websocket.c (renamed from web/server/h2o/libh2o/lib/websocket.c)0
-rw-r--r--src/web/server/h2o/libh2o/libh2o-evloop.pc.in (renamed from web/server/h2o/libh2o/libh2o-evloop.pc.in)0
-rw-r--r--src/web/server/h2o/libh2o/libh2o.pc.in (renamed from web/server/h2o/libh2o/libh2o.pc.in)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/build_libFuzzer.sh (renamed from web/server/h2o/libh2o/misc/build_libFuzzer.sh)0
-rw-r--r--src/web/server/h2o/libh2o/misc/cache-digest.js/.travis.yml (renamed from web/server/h2o/libh2o/misc/cache-digest.js/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/misc/cache-digest.js/README.md (renamed from web/server/h2o/libh2o/misc/cache-digest.js/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/misc/cache-digest.js/cache-digest.js (renamed from web/server/h2o/libh2o/misc/cache-digest.js/cache-digest.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/cache-digest.js/cli.js (renamed from web/server/h2o/libh2o/misc/cache-digest.js/cli.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/cache-digest.js/test.js (renamed from web/server/h2o/libh2o/misc/cache-digest.js/test.js)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/clang-format-all.sh (renamed from web/server/h2o/libh2o/misc/clang-format-all.sh)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/dump-github-repository.pl (renamed from web/server/h2o/libh2o/misc/dump-github-repository.pl)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/embed_mruby_code.pl (renamed from web/server/h2o/libh2o/misc/embed_mruby_code.pl)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/fastcgi-cgi.pl (renamed from web/server/h2o/libh2o/misc/fastcgi-cgi.pl)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/install-perl-module.pl (renamed from web/server/h2o/libh2o/misc/install-perl-module.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/libressl-2.4.5.tar.gz (renamed from web/server/h2o/libh2o/misc/libressl-2.4.5.tar.gz)bin3016462 -> 3016462 bytes
-rw-r--r--src/web/server/h2o/libh2o/misc/libressl.mk (renamed from web/server/h2o/libh2o/misc/libressl.mk)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/makedoc.pl (renamed from web/server/h2o/libh2o/misc/makedoc.pl)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/mk-ca-bundle.pl (renamed from web/server/h2o/libh2o/misc/mk-ca-bundle.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mkhufftbl.py (renamed from web/server/h2o/libh2o/misc/mkhufftbl.py)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/.gitignore (renamed from web/server/h2o/libh2o/misc/mruby-mtest/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/.travis.yml (renamed from web/server/h2o/libh2o/misc/mruby-mtest/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/README.md (renamed from web/server/h2o/libh2o/misc/mruby-mtest/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/example/sample.rb (renamed from web/server/h2o/libh2o/misc/mruby-mtest/example/sample.rb)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/mrbgem.rake (renamed from web/server/h2o/libh2o/misc/mruby-mtest/mrbgem.rake)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/mrblib/mtest_unit.rb (renamed from web/server/h2o/libh2o/misc/mruby-mtest/mrblib/mtest_unit.rb)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/run_test.rb (renamed from web/server/h2o/libh2o/misc/mruby-mtest/run_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby-mtest/test/mtest_unit_test.rb (renamed from web/server/h2o/libh2o/misc/mruby-mtest/test/mtest_unit_test.rb)0
-rw-r--r--src/web/server/h2o/libh2o/misc/mruby_config.rb (renamed from web/server/h2o/libh2o/misc/mruby_config.rb)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/.gitignore (renamed from web/server/h2o/libh2o/misc/oktavia/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/.proverc (renamed from web/server/h2o/libh2o/misc/oktavia/.proverc)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/.travis.yml (renamed from web/server/h2o/libh2o/misc/oktavia/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/LICENSE.rst (renamed from web/server/h2o/libh2o/misc/oktavia/LICENSE.rst)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/Makefile (renamed from web/server/h2o/libh2o/misc/oktavia/Makefile)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/README.rst (renamed from web/server/h2o/libh2o/misc/oktavia/README.rst)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/oktavia/bin/httpstatus (renamed from web/server/h2o/libh2o/misc/oktavia/bin/httpstatus)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-mkindex (renamed from web/server/h2o/libh2o/misc/oktavia/bin/oktavia-mkindex)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-search (renamed from web/server/h2o/libh2o/misc/oktavia/bin/oktavia-search)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-danish-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-danish-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-dutch-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-dutch-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-english-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-english-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-finnish-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-finnish-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-french-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-french-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-german-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-german-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-hungarian-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-hungarian-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-italian-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-italian-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-highlight.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-highlight.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-ui.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-ui.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-norwegian-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-norwegian-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-porter-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-porter-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-portuguese-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-portuguese-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-romanian-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-romanian-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-russian-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-russian-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-spanish-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-spanish-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-swedish-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-swedish-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-turkish-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/lib/oktavia-turkish-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/lib/searchstyle.css (renamed from web/server/h2o/libh2o/misc/oktavia/lib/searchstyle.css)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/package.json (renamed from web/server/h2o/libh2o/misc/oktavia/package.json)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/resource/favicon.ai (renamed from web/server/h2o/libh2o/misc/oktavia/resource/favicon.ai)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia.eps (renamed from web/server/h2o/libh2o/misc/oktavia/resource/oktavia.eps)bin702054 -> 702054 bytes
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_large.jpg (renamed from web/server/h2o/libh2o/misc/oktavia/resource/oktavia_large.jpg)bin91592 -> 91592 bytes
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_medium.jpg (renamed from web/server/h2o/libh2o/misc/oktavia/resource/oktavia_medium.jpg)bin38493 -> 38493 bytes
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_small.jpg (renamed from web/server/h2o/libh2o/misc/oktavia/resource/oktavia_small.jpg)bin39534 -> 39534 bytes
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/binary-util.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/binary-util.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/bit-vector.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/bit-vector.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/burrows-wheeler-transform.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/burrows-wheeler-transform.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/csvparser.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/csvparser.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/fm-index.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/fm-index.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/getopt.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/getopt.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/htmlparser.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/htmlparser.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/metadata.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/metadata.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/node-sqlite3.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/node-sqlite3.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/oktavia.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/oktavia.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/query-parser.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/query-parser.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/query-string-parser.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/query-string-parser.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/query.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/query.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/sais.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/sais.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/sax.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/sax.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/search-result.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/search-result.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/among.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/among.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/base-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/base-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/danish-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/danish-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/dutch-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/dutch-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/finnish-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/finnish-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/french-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/french-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/german-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/german-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/hungarian-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/hungarian-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/italian-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/italian-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/norwegian-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/norwegian-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/porter-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/porter-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/portuguese-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/portuguese-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/romanian-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/romanian-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/russian-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/russian-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/spanish-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/spanish-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/swedish-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/swedish-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/turkish-stemmer.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/stemmer/turkish-stemmer.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/style.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/style.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/textparser.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/textparser.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/tiny-segmenter.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/tiny-segmenter.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/src/wavelet-matrix.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/src/wavelet-matrix.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/README.md (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/publish.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/publish.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/jquery-1.9.1.min.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/jquery-1.9.1.min.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-english-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-english-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-highlight.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-highlight.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-ui.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-ui.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/Apache-License-2.0.txt (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/Apache-License-2.0.txt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/lang-css.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/lang-css.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/prettify.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/prettify.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/jsdoc-default.css (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/jsdoc-default.css)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-jsdoc.css (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-jsdoc.css)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-tomorrow.css (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-tomorrow.css)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/searchstyle.css (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/searchstyle.css)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/container.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/container.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/details.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/details.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/example.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/example.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/examples.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/examples.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/exceptions.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/exceptions.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/fires.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/fires.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/layout.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/layout.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/mainpage.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/mainpage.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/members.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/members.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/method.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/method.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/params.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/params.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/returns.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/returns.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/source.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/source.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/tutorial.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/tutorial.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/type.tmpl (renamed from web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/type.tmpl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-jquery-ui.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-jquery-ui.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/searchstyle.css (renamed from web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/searchstyle.css)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/layout.html (renamed from web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/layout.html)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/searchbox.html0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-jquery-ui.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-jquery-ui.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-search.js (renamed from web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-search.js)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/searchstyle.css (renamed from web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/searchstyle.css)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_templates/oktaviasearch.html (renamed from web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_templates/oktaviasearch.html)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-binary-util.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-binary-util.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-bit-vector.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-bit-vector.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-burrows-wheeler-transform.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-burrows-wheeler-transform.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-getopt.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-getopt.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-block.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-block.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-section.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-section.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-splitter.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-splitter.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-stemming.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-stemming.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-table.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-table.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-query-parser.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-query-parser.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-query-string-parser.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-query-string-parser.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-sax.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-sax.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-search-result.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-search-result.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/test/test-wavelet-matrix.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/test/test-wavelet-matrix.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_literal.txt (renamed from web/server/h2o/libh2o/misc/oktavia/testdata/jsx_literal.txt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt (renamed from web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_primitive_type.txt (renamed from web/server/h2o/libh2o/misc/oktavia/testdata/jsx_primitive_type.txt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_tutorial.txt (renamed from web/server/h2o/libh2o/misc/oktavia/testdata/jsx_tutorial.txt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt (renamed from web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/httpstatus.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/httpstatus.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-mkindex.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/oktavia-mkindex.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/oktavia-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-danish-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-danish-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-dutch-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-dutch-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-english-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-english-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-finnish-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-finnish-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-french-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-french-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-german-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-german-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-hungarian-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-hungarian-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-italian-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-italian-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-norwegian-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-norwegian-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-porter-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-porter-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-portuguese-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-portuguese-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-romanian-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-romanian-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-russian-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-russian-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-spanish-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-spanish-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-swedish-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-swedish-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-turkish-search.jsx (renamed from web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-turkish-search.jsx)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/.gitignore (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/.gitignore)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/.travis.yml (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/.travis.yml)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/Build.PL (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/Build.PL)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/Changes (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/Changes)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/LICENSE (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/LICENSE)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/META.json (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/META.json)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/README.md (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/builder/MyBuilder.pm (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/builder/MyBuilder.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/cpanfile (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/cpanfile)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter.pm (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/minil.toml (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/minil.toml)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/script/start_server (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/script/start_server)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/00-base.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/00-base.t)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter-echod.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter-echod.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix-echod.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix-echod.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/04-starter-dir.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/04-starter-dir.t)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay-echod.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay-echod.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay.t)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart-echod.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart-echod.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart.t)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir-print.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir-print.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/08-wait3.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/08-wait3.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/09-guard.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/09-guard.t)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr-server.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr-server.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd-server.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd-server.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop-server.pl (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop-server.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/13-unix-daemonize.t (renamed from web/server/h2o/libh2o/misc/p5-Server-Starter/t/13-unix-daemonize.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/Changes (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/Changes)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/MANIFEST.SKIP (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/MANIFEST.SKIP)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/Makefile.PL (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/Makefile.PL)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/README (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/README)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/runfcgi.pl (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/runfcgi.pl)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/server.pl (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/server.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pm (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pod (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pod)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pm (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pm (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pod (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pod)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pm (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pod (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pod)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol/PP.pm (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol/PP.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/000_load.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/000_load.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/001_header.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/001_header.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/005_record_length.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/005_record_length.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/010_build_record.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/010_build_record.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/015_build_stream.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/015_build_stream.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/020_begin_request_body.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/020_begin_request_body.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/025_begin_request_record.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/025_begin_request_record.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/027_begin_request.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/027_begin_request.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/030_end_request_body.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/030_end_request_body.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/035_end_request_record.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/035_end_request_record.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/037_end_request.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/037_end_request.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/040_unknown_type_body.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/040_unknown_type_body.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/045_unknown_type_record.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/045_unknown_type_record.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/050_parse_record.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/050_parse_record.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/055_parse_record_body.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/055_parse_record_body.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/060_params.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/060_params.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/065_record_type.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/065_record_type.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/070_names.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/070_names.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/080_dump_record.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/080_dump_record.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/085_dump_record_body.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/085_dump_record_body.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/lib/myconfig.pm (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/t/lib/myconfig.pm)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/000_pod.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/000_pod.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/010_pod_coverage.t (renamed from web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/010_pod_coverage.t)0
-rw-r--r--src/web/server/h2o/libh2o/misc/picotemplate-conf.pl (renamed from web/server/h2o/libh2o/misc/picotemplate-conf.pl)0
-rw-r--r--src/web/server/h2o/libh2o/misc/picotemplate/README.mkdn (renamed from web/server/h2o/libh2o/misc/picotemplate/README.mkdn)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/picotemplate/picotemplate.pl (renamed from web/server/h2o/libh2o/misc/picotemplate/picotemplate.pl)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/regen.mk (renamed from web/server/h2o/libh2o/misc/regen.mk)0
-rw-r--r--src/web/server/h2o/libh2o/misc/test-ca/README.md (renamed from web/server/h2o/libh2o/misc/test-ca/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/misc/test-ca/ca.crt (renamed from web/server/h2o/libh2o/misc/test-ca/ca.crt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/test-ca/ca.key (renamed from web/server/h2o/libh2o/misc/test-ca/ca.key)0
-rw-r--r--src/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt (renamed from web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt)0
-rw-r--r--src/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt.attr (renamed from web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt.attr)0
-rw-r--r--src/web/server/h2o/libh2o/misc/test-ca/demoCA/newcerts/.gitkeep0
-rw-r--r--src/web/server/h2o/libh2o/misc/test-ca/demoCA/serial (renamed from web/server/h2o/libh2o/misc/test-ca/demoCA/serial)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/misc/tokens.pl (renamed from web/server/h2o/libh2o/misc/tokens.pl)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/share/h2o/annotate-backtrace-symbols (renamed from web/server/h2o/libh2o/share/h2o/annotate-backtrace-symbols)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/ca-bundle.crt (renamed from web/server/h2o/libh2o/share/h2o/ca-bundle.crt)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/share/h2o/fastcgi-cgi (renamed from web/server/h2o/libh2o/share/h2o/fastcgi-cgi)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/share/h2o/fetch-ocsp-response (renamed from web/server/h2o/libh2o/share/h2o/fetch-ocsp-response)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/share/h2o/kill-on-close (renamed from web/server/h2o/libh2o/share/h2o/kill-on-close)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/mruby/acl.rb (renamed from web/server/h2o/libh2o/share/h2o/mruby/acl.rb)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/mruby/bootstrap.rb (renamed from web/server/h2o/libh2o/share/h2o/mruby/bootstrap.rb)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/mruby/dos_detector.rb (renamed from web/server/h2o/libh2o/share/h2o/mruby/dos_detector.rb)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/mruby/htpasswd.rb (renamed from web/server/h2o/libh2o/share/h2o/mruby/htpasswd.rb)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/mruby/lru_cache.rb (renamed from web/server/h2o/libh2o/share/h2o/mruby/lru_cache.rb)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/mruby/preloads.rb (renamed from web/server/h2o/libh2o/share/h2o/mruby/preloads.rb)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/mruby/trie_addr.rb (renamed from web/server/h2o/libh2o/share/h2o/mruby/trie_addr.rb)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/share/h2o/setuidgid (renamed from web/server/h2o/libh2o/share/h2o/setuidgid)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/share/h2o/start_server (renamed from web/server/h2o/libh2o/share/h2o/start_server)0
-rw-r--r--src/web/server/h2o/libh2o/share/h2o/status/index.html (renamed from web/server/h2o/libh2o/share/h2o/status/index.html)0
-rw-r--r--src/web/server/h2o/libh2o/src/main.c (renamed from web/server/h2o/libh2o/src/main.c)0
-rw-r--r--src/web/server/h2o/libh2o/src/setuidgid.c (renamed from web/server/h2o/libh2o/src/setuidgid.c)0
-rw-r--r--src/web/server/h2o/libh2o/src/ssl.c (renamed from web/server/h2o/libh2o/src/ssl.c)0
-rw-r--r--src/web/server/h2o/libh2o/src/standalone.h (renamed from web/server/h2o/libh2o/src/standalone.h)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/benchmarks.mt (renamed from web/server/h2o/libh2o/srcdoc/benchmarks.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure.mt (renamed from web/server/h2o/libh2o/srcdoc/configure.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/access_control.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/access_control.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/access_log_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/access_log_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/base_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/base_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/basic_auth.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/basic_auth.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/cgi.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/cgi.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/command_options.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/command_options.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/compress_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/compress_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/dos_detection.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/dos_detection.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/errordoc_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/errordoc_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/expires_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/expires_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/fastcgi_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/fastcgi_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/file_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/file_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/headers_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/headers_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/http1_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/http1_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/http2_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/http2_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/mruby.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/mruby.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/mruby_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/mruby_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/proxy_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/proxy_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/quick_start.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/quick_start.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/redirect_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/redirect_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/reproxy_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/reproxy_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/status_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/status_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/syntax_and_structure.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/syntax_and_structure.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/configure/throttle_response_directives.mt (renamed from web/server/h2o/libh2o/srcdoc/configure/throttle_response_directives.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/faq.mt (renamed from web/server/h2o/libh2o/srcdoc/faq.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/index.mt (renamed from web/server/h2o/libh2o/srcdoc/index.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/install.mt (renamed from web/server/h2o/libh2o/srcdoc/install.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/snippets/directive.mt (renamed from web/server/h2o/libh2o/srcdoc/snippets/directive.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/snippets/mruby_method.mt (renamed from web/server/h2o/libh2o/srcdoc/snippets/mruby_method.mt)0
-rw-r--r--src/web/server/h2o/libh2o/srcdoc/snippets/wrapper.mt (renamed from web/server/h2o/libh2o/srcdoc/snippets/wrapper.mt)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit.evloop.t (renamed from web/server/h2o/libh2o/t/00unit.evloop.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit.libuv.t (renamed from web/server/h2o/libh2o/t/00unit.libuv.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit.mruby.t (renamed from web/server/h2o/libh2o/t/00unit.mruby.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit.mruby/acl.rb (renamed from web/server/h2o/libh2o/t/00unit.mruby/acl.rb)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb (renamed from web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/assets/1000.txt (renamed from web/server/h2o/libh2o/t/00unit/assets/1000.txt)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/assets/1000000.txt (renamed from web/server/h2o/libh2o/t/00unit/assets/1000000.txt)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/assets/index.html (renamed from web/server/h2o/libh2o/t/00unit/assets/index.html)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt (renamed from web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep0
-rwxr-xr-xsrc/web/server/h2o/libh2o/t/00unit/assets/read_command.pl (renamed from web/server/h2o/libh2o/t/00unit/assets/read_command.pl)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/issues/293.c (renamed from web/server/h2o/libh2o/t/00unit/issues/293.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c (renamed from web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/cache.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/cache.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/multithread.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/socket.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/socket.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/string.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/string.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/time.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/time.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/common/url.c (renamed from web/server/h2o/libh2o/t/00unit/lib/common/url.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/core/headers.c (renamed from web/server/h2o/libh2o/t/00unit/lib/core/headers.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c (renamed from web/server/h2o/libh2o/t/00unit/lib/core/proxy.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/core/util.c (renamed from web/server/h2o/libh2o/t/00unit/lib/core/util.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c (renamed from web/server/h2o/libh2o/t/00unit/lib/handler/compress.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c (renamed from web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/handler/file.c (renamed from web/server/h2o/libh2o/t/00unit/lib/handler/file.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c (renamed from web/server/h2o/libh2o/t/00unit/lib/handler/headers.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c (renamed from web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c (renamed from web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c (renamed from web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c (renamed from web/server/h2o/libh2o/t/00unit/lib/http2/casper.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c (renamed from web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c (renamed from web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/src/ssl.c (renamed from web/server/h2o/libh2o/t/00unit/src/ssl.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/test.c (renamed from web/server/h2o/libh2o/t/00unit/test.c)0
-rw-r--r--src/web/server/h2o/libh2o/t/00unit/test.h (renamed from web/server/h2o/libh2o/t/00unit/test.h)0
-rw-r--r--src/web/server/h2o/libh2o/t/10http1client.t (renamed from web/server/h2o/libh2o/t/10http1client.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40bad-request.t (renamed from web/server/h2o/libh2o/t/40bad-request.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40env.t (renamed from web/server/h2o/libh2o/t/40env.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40max-connections.t (renamed from web/server/h2o/libh2o/t/40max-connections.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40memcached-session-resumption.t (renamed from web/server/h2o/libh2o/t/40memcached-session-resumption.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40protocol.t (renamed from web/server/h2o/libh2o/t/40protocol.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40proxy-protocol.t (renamed from web/server/h2o/libh2o/t/40proxy-protocol.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40running-user.t (renamed from web/server/h2o/libh2o/t/40running-user.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40server-push-attrs.t (renamed from web/server/h2o/libh2o/t/40server-push-attrs.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40server-push-multiple.t (renamed from web/server/h2o/libh2o/t/40server-push-multiple.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40server-push.t (renamed from web/server/h2o/libh2o/t/40server-push.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40session-ticket.t (renamed from web/server/h2o/libh2o/t/40session-ticket.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml (renamed from web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml)0
-rw-r--r--src/web/server/h2o/libh2o/t/40ssl-cipher-suite.t (renamed from web/server/h2o/libh2o/t/40ssl-cipher-suite.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40unix-socket.t (renamed from web/server/h2o/libh2o/t/40unix-socket.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40virtual-host.t (renamed from web/server/h2o/libh2o/t/40virtual-host.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/40websocket.t (renamed from web/server/h2o/libh2o/t/40websocket.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50access-log.t (renamed from web/server/h2o/libh2o/t/50access-log.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t (renamed from web/server/h2o/libh2o/t/50chunked-encoding-proxying.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50compress-hint.t (renamed from web/server/h2o/libh2o/t/50compress-hint.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50compress.t (renamed from web/server/h2o/libh2o/t/50compress.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50config-tag.t (renamed from web/server/h2o/libh2o/t/50config-tag.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50errordoc.t (renamed from web/server/h2o/libh2o/t/50errordoc.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50expires.t (renamed from web/server/h2o/libh2o/t/50expires.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50fastcgi-cgi.t (renamed from web/server/h2o/libh2o/t/50fastcgi-cgi.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50fastcgi-php.t (renamed from web/server/h2o/libh2o/t/50fastcgi-php.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50fastcgi.t (renamed from web/server/h2o/libh2o/t/50fastcgi.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50file-config.t (renamed from web/server/h2o/libh2o/t/50file-config.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50file-custom-handler.t (renamed from web/server/h2o/libh2o/t/50file-custom-handler.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50file-file.t (renamed from web/server/h2o/libh2o/t/50file-file.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50file-range.t (renamed from web/server/h2o/libh2o/t/50file-range.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50file.t (renamed from web/server/h2o/libh2o/t/50file.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50headers.t (renamed from web/server/h2o/libh2o/t/50headers.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50http2_debug_state.t (renamed from web/server/h2o/libh2o/t/50http2_debug_state.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50internal-redirect.t (renamed from web/server/h2o/libh2o/t/50internal-redirect.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mimemap.t (renamed from web/server/h2o/libh2o/t/50mimemap.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml (renamed from web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mruby-acl.t (renamed from web/server/h2o/libh2o/t/50mruby-acl.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mruby-dos-detector.t (renamed from web/server/h2o/libh2o/t/50mruby-dos-detector.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mruby-htpasswd.t (renamed from web/server/h2o/libh2o/t/50mruby-htpasswd.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mruby-http-request.t (renamed from web/server/h2o/libh2o/t/50mruby-http-request.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mruby.t (renamed from web/server/h2o/libh2o/t/50mruby.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mruby/hello.rb (renamed from web/server/h2o/libh2o/t/50mruby/hello.rb)0
-rw-r--r--src/web/server/h2o/libh2o/t/50mruby/index.html (renamed from web/server/h2o/libh2o/t/50mruby/index.html)0
-rw-r--r--src/web/server/h2o/libh2o/t/50post-size-limit.t (renamed from web/server/h2o/libh2o/t/50post-size-limit.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50redirect.t (renamed from web/server/h2o/libh2o/t/50redirect.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-0.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-0.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-1.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-1.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-10.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-10.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-11.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-11.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-12.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-12.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-13.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-13.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-14.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-14.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-15.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-15.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-2.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-2.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-3.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-3.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-4.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-4.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-5.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-5.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-6.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-6.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-7.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-7.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-8.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-8.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-9.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-9.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-config.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-config.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-https.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-https.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t (renamed from web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt (renamed from web/server/h2o/libh2o/t/50reverse-proxy/hello.txt)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/t/50reverse-proxy/test.pl (renamed from web/server/h2o/libh2o/t/50reverse-proxy/test.pl)0
-rw-r--r--src/web/server/h2o/libh2o/t/50server-starter.t (renamed from web/server/h2o/libh2o/t/50server-starter.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50servername.t (renamed from web/server/h2o/libh2o/t/50servername.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50status.t (renamed from web/server/h2o/libh2o/t/50status.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/50throttle-response.t (renamed from web/server/h2o/libh2o/t/50throttle-response.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80dup-host-headers.t (renamed from web/server/h2o/libh2o/t/80dup-host-headers.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80graceful-shutdown.t (renamed from web/server/h2o/libh2o/t/80graceful-shutdown.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t (renamed from web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t (renamed from web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80issues579.t (renamed from web/server/h2o/libh2o/t/80issues579.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80issues595.t (renamed from web/server/h2o/libh2o/t/80issues595.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80issues61.t (renamed from web/server/h2o/libh2o/t/80issues61.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80one-byte-window.t (renamed from web/server/h2o/libh2o/t/80one-byte-window.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t (renamed from web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/80yaml-merge.t (renamed from web/server/h2o/libh2o/t/80yaml-merge.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t (renamed from web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/90live-sni.t (renamed from web/server/h2o/libh2o/t/90live-sni.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/90root-fastcgi-php.t (renamed from web/server/h2o/libh2o/t/90root-fastcgi-php.t)0
-rw-r--r--src/web/server/h2o/libh2o/t/README.md (renamed from web/server/h2o/libh2o/t/README.md)0
-rw-r--r--src/web/server/h2o/libh2o/t/Util.pm (renamed from web/server/h2o/libh2o/t/Util.pm)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/.htpasswd (renamed from web/server/h2o/libh2o/t/assets/.htpasswd)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/404.html (renamed from web/server/h2o/libh2o/t/assets/doc_root/404.html)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/alice.txt (renamed from web/server/h2o/libh2o/t/assets/doc_root/alice.txt)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz (renamed from web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz)bin645 -> 645 bytes
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/esi.html (renamed from web/server/h2o/libh2o/t/assets/doc_root/esi.html)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg (renamed from web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg)bin481218 -> 481218 bytes
-rwxr-xr-xsrc/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi (renamed from web/server/h2o/libh2o/t/assets/doc_root/hello.cgi)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/hello.php (renamed from web/server/h2o/libh2o/t/assets/doc_root/hello.php)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/index.js (renamed from web/server/h2o/libh2o/t/assets/doc_root/index.js)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/index.txt (renamed from web/server/h2o/libh2o/t/assets/doc_root/index.txt)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br (renamed from web/server/h2o/libh2o/t/assets/doc_root/index.txt.br)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz (renamed from web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz)bin26 -> 26 bytes
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php (renamed from web/server/h2o/libh2o/t/assets/doc_root/issues/951.php)0
-rwxr-xr-xsrc/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi (renamed from web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt (renamed from web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/session_tickets.yaml (renamed from web/server/h2o/libh2o/t/assets/session_tickets.yaml)0
-rw-r--r--src/web/server/h2o/libh2o/t/assets/upstream.psgi (renamed from web/server/h2o/libh2o/t/assets/upstream.psgi)0
-rw-r--r--src/web/server/h2o/libh2o/version.h.in (renamed from web/server/h2o/libh2o/version.h.in)0
-rw-r--r--src/web/server/h2o/streaming.c (renamed from web/server/h2o/streaming.c)8
-rw-r--r--src/web/server/h2o/streaming.h (renamed from web/server/h2o/streaming.h)9
-rw-r--r--src/web/server/static/README.md21
-rw-r--r--src/web/server/static/static-threaded.c (renamed from web/server/static/static-threaded.c)15
-rw-r--r--src/web/server/static/static-threaded.h (renamed from web/server/static/static-threaded.h)0
-rw-r--r--src/web/server/web_client.c2081
-rw-r--r--src/web/server/web_client.h276
-rw-r--r--src/web/server/web_client_cache.c (renamed from web/server/web_client_cache.c)5
-rw-r--r--src/web/server/web_client_cache.h (renamed from web/server/web_client_cache.h)0
-rw-r--r--src/web/server/web_server.c151
-rw-r--r--src/web/server/web_server.h (renamed from web/server/web_server.h)0
5620 files changed, 16869 insertions, 614 deletions
diff --git a/src/web/README.md b/src/web/README.md
new file mode 100644
index 000000000..a01adfb12
--- /dev/null
+++ b/src/web/README.md
@@ -0,0 +1,46 @@
+# Agent Dashboards
+
+Because Netdata is a health monitoring and _performance troubleshooting_ system,
+we put a lot of emphasis on real-time, meaningful, and context-aware charts.
+
+We bundle Netdata with a dashboard and hundreds of charts, designed by both our
+team and the community, but you can also customize them yourself.
+
+There are two primary ways to view Netdata's dashboards on the agent:
+
+1. The [local Agent dashboard](https://github.com/netdata/netdata/blob/master/src/web/gui/README.md) that comes pre-configured with every Netdata installation. You can
+ see it at `http://NODE:19999`, replacing `NODE` with `localhost`, the hostname of your node, or its IP address. You
+ can customize the contents and colors of the standard dashboard [using
+ JavaScript](https://github.com/netdata/netdata/blob/master/src/web/gui/README.md#customizing-the-local-dashboard).
+
+2. The [`dashboard.js` JavaScript library](#dashboardjs), which helps you
+ [customize the standard dashboards](https://github.com/netdata/netdata/blob/master/src/web/gui/README.md#customizing-the-local-dashboard)
+ using JavaScript, or create entirely new [custom dashboards](https://github.com/netdata/netdata/blob/master/src/web/gui/custom/README.md) or
+ [Atlassian Confluence dashboards](https://github.com/netdata/netdata/blob/master/src/web/gui/confluence/README.md).
+
+You can also view all the data Netdata collects through the [REST API v1](https://github.com/netdata/netdata/blob/master/src/web/api/README.md#netdata-rest-api).
+
+## dashboard.js
+
+Netdata uses the `dashboards.js` file to define, configure, create, and update
+all the charts and other visualizations that appear on any Netdata dashboard.
+You need to put `dashboard.js` on any HTML page that's going to render Netdata
+charts.
+
+The [custom dashboards documentation](https://github.com/netdata/netdata/blob/master/src/web/gui/custom/README.md) contains examples of such
+custom HTML pages.
+
+### Generating dashboard.js
+
+We build the `dashboards.js` file by concatenating all the source files located
+in the `web/gui/src/dashboard.js/` directory. That's done using the provided
+build script:
+
+```sh
+cd web/gui
+make
+```
+
+If you make any changes to the `src` directory when developing Netdata, you
+should regenerate the `dashboard.js` file before you commit to the Netdata
+repository.
diff --git a/src/web/api/README.md b/src/web/api/README.md
new file mode 100644
index 000000000..7ad1a7ad4
--- /dev/null
+++ b/src/web/api/README.md
@@ -0,0 +1,12 @@
+# API
+
+## Netdata agent REST API
+
+The complete documentation of the Netdata agent's REST API is documented in the OpenAPI format [in our GitHub repository](https://raw.githubusercontent.com/netdata/netdata/master/src/web/api/netdata-swagger.yaml).
+
+You can explore it using the **[Swagger UI](https://learn.netdata.cloud/api)**, or the **[Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/netdata/netdata/master/src/web/api/netdata-swagger.yaml)**.
+
+## Netdata cloud API
+
+A very basic Netdata cloud REST API supports the [Grafana data source plugin](https://github.com/netdata/netdata-grafana-datasource-plugin/blob/master/README.md),
+but has not yet been expanded for wider use. We intend to provide a properly documented API in the future.
diff --git a/src/web/api/badges/README.md b/src/web/api/badges/README.md
new file mode 100644
index 000000000..458aab791
--- /dev/null
+++ b/src/web/api/badges/README.md
@@ -0,0 +1,369 @@
+<!--
+title: "Netdata badges"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/badges/README.md
+sidebar_label: "Netdata badges"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api"
+-->
+
+# Netdata badges
+
+**Badges are cool!**
+
+Netdata can generate badges for any chart and any dimension at any time-frame. Badges come in `SVG` and can be added to any web page using an `<IMG>` HTML tag.
+
+**Netdata badges are powerful**!
+
+Given that Netdata collects from **1.000** to **5.000** metrics per server (depending on the number of network interfaces, disks, cpu cores, applications running, users logged in, containers running, etc) and that Netdata already has data reduction/aggregation functions embedded, the badges can be quite powerful.
+
+For each metric/dimension and for arbitrary time-frames badges can show **min**, **max** or **average** value, but also **sum** or **incremental-sum** to have their **volume**.
+
+For example, there is [a chart in Netdata that shows the current requests/s of nginx](http://london.my-netdata.io/#nginx_local_nginx). Using this chart alone we can show the following badges (we could add more time-frames, like **today**, **yesterday**, etc):
+
+<a href="https://registry.my-netdata.io/#nginx_local_nginx"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=nginx_local.connections&dimensions=active&value_color=grey:null%7Cblue&label=nginx%20active%20connections%20now&units=null&precision=0"/></a> <a href="https://registry.my-netdata.io/#nginx_local_nginx"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=nginx_local.connections&dimensions=active&after=-3600&value_color=orange&label=last%20hour%20average&units=null&options=unaligned&precision=0"/></a> <a href="https://registry.my-netdata.io/#nginx_local_nginx"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=nginx_local.connections&dimensions=active&group=max&after=-3600&value_color=red&label=last%20hour%20max&units=null&options=unaligned&precision=0"/></a>
+
+Similarly, there is [a chart that shows outbound bandwidth per class](http://london.my-netdata.io/#tc_eth0), using QoS data. So it shows `kilobits/s` per class. Using this chart we can show:
+
+<a href="https://registry.my-netdata.io/#tc_eth0"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=tc.world_out&dimensions=web_server&value_color=green&label=web%20server%20sends%20now&units=kbps"/></a> <a href="https://registry.my-netdata.io/#tc_eth0"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=tc.world_out&dimensions=web_server&after=-86400&options=unaligned&group=sum&divide=8388608&value_color=blue&label=web%20server%20sent%20today&units=GB"/></a>
+
+The right one is a **volume** calculation. Netdata calculated the total of the last 86.400 seconds (a day) which gives `kilobits`, then divided it by 8 to make it KB, then by 1024 to make it MB and then by 1024 to make it GB. Calculations like this are quite accurate, since for every value collected, every second, Netdata interpolates it to second boundary using microsecond calculations.
+
+Let's see a few more badge examples (they come from the [Netdata registry](https://github.com/netdata/netdata/blob/master/src/registry/README.md)):
+
+- **cpu usage of user `root`** (you can pick any user; 100% = 1 core). This will be `green <10%`, `yellow <20%`, `orange <50%`, `blue <100%` (1 core), `red` otherwise (you define thresholds and colors on the URL).
+
+ <a href="https://registry.my-netdata.io/#apps_cpu"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20cpu%20now&units=%25"></img></a> <a href="https://registry.my-netdata.io/#apps_cpu"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&after=-3600&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20average%20cpu%20last%20hour&units=%25"></img></a>
+
+- **mysql queries per second**
+
+ <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&label=mysql%20queries%20now&value_color=red&units=%5Cs"></img></a> <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&after=-3600&options=unaligned&group=sum&label=mysql%20queries%20this%20hour&value_color=green&units=null"></img></a> <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&after=-86400&options=unaligned&group=sum&label=mysql%20queries%20today&value_color=blue&units=null"></img></a>
+
+ niche ones: **mysql SELECT statements with JOIN, which did full table scans**:
+
+ <a href="https://registry.my-netdata.io/#mysql_local_issues"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.join_issues&dimensions=scan&after=-3600&label=full%20table%20scans%20the%20last%20hour&value_color=orange&group=sum&units=null"></img></a>
+
+---
+
+> So, every single line on the charts of a [Netdata dashboard](http://london.my-netdata.io/), can become a badge and this badge can calculate **average**, **min**, **max**, or **volume** for any time-frame! And you can also vary the badge color using conditions on the calculated value.
+
+---
+
+## How to create badges
+
+The basic URL is `http://your.netdata:19999/api/v1/badge.svg?option1&option2&option3&...`.
+
+Here is what you can put for `options` (these are standard Netdata API options):
+
+- `chart=CHART.NAME`
+
+ The chart to get the values from.
+
+ **This is the only parameter required** and with just this parameter, Netdata will return the sum of the latest values of all chart dimensions.
+
+ Example:
+
+```html
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu"></img>
+ </a>
+```
+
+ Which produces this:
+
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu"></img>
+ </a>
+
+- `alarm=NAME`
+
+ Render the current value and status of an alert linked to the chart. This option can be ignored if the badge to be generated is not related to an alert.
+
+ The current value of the alert will be rendered. The color of the badge will indicate the status of the alert.
+
+ For alert badges, **both `chart` and `alarm` parameters are required**.
+
+- `dimensions=DIMENSION1|DIMENSION2|...`
+
+ The dimensions of the chart to use. If you don't set any dimension, all will be used. When multiple dimensions are used, Netdata will sum their values. You can append `options=absolute` if you want this sum to convert all values to positive before adding them.
+
+ Pipes in HTML have to escaped with `%7C`.
+
+ Example:
+
+```html
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&dimensions=system%7Cnice"></img>
+ </a>
+```
+
+ Which produces this:
+
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&dimensions=system%7Cnice"></img>
+ </a>
+
+- `before=SECONDS` and `after=SECONDS`
+
+ The timeframe. These can be absolute unix timestamps, or relative to now, number of seconds. By default `before=0` and `after=-1` (1 second in the past).
+
+ To get the last minute set `after=-60`. This will give the average of the last complete minute (XX:XX:00 - XX:XX:59).
+
+ To get the max of the last hour set `after=-3600&group=max`. This will give the maximum value of the last complete hour (XX:00:00 - XX:59:59)
+
+ Example:
+
+```html
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60"></img>
+ </a>
+```
+
+ Which produces the average of last complete minute (XX:XX:00 - XX:XX:59):
+
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60"></img>
+ </a>
+
+ While this is the previous minute (one minute before the last one, again aligned XX:XX:00 - XX:XX:59):
+
+```html
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&before=-60&after=-60"></img>
+ </a>
+```
+
+ It produces this:
+
+ <a href="#">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&before=-60&after=-60"></img>
+ </a>
+
+- `group=min` or `group=max` or `group=average` (the default) or `group=sum` or `group=incremental-sum`
+
+ If Netdata will have to reduce (aggregate) the data to calculate the value, which aggregation method to use.
+
+ - `max` will find the max value for the timeframe. This works on both positive and negative dimensions. It will find the most extreme value.
+
+ - `min` will find the min value for the timeframe. This works on both positive and negative dimensions. It will find the number closest to zero.
+
+ - `average` will calculate the average value for the timeframe.
+
+ - `sum` will sum all the values for the timeframe. This is nice for finding the volume of dimensions for a timeframe. So if you have a dimension that reports `X per second`, you can find the volume of the dimension in a timeframe, by adding its values in that timeframe.
+
+ - `incremental-sum` will sum the difference of each value to its next. Let's assume you have a dimension that does not measure the rate of something, but the absolute value of it. So it has values like this "1, 5, 3, 7, 4". `incremental-sum` will calculate the difference of adjacent values. In this example, they will be `(5 - 1) + (3 - 5) + (7 - 3) + (4 - 7) = 3` (which is equal to the last value minus the first = 4 - 1).
+
+- `options=opt1|opt2|opt3|...`
+
+ These fine tune various options of the API. Here is what you can use for badges (the API has more option, but only these are useful for badges):
+
+ - `percentage`, instead of returning a value, calculate the percentage of the sum of the values of the selected dimensions (selected sum / total sum * 100). This also sets the units to `%`.
+
+ - `absolute` or `abs`, turn all values positive and then sum them.
+
+ - `display_absolute` or `display-absolute`, to use the signed value during color calculation, but display the absolute value on the badge.
+
+ - `min2max`, when multiple dimensions are given, do not sum them, but take their `max - min`.
+
+ - `unaligned`, when data are reduced / aggregated (e.g. the request is about the average of the last minute, or hour), Netdata by default aligns them so that the charts will have a constant shape (so average per minute returns always XX:XX:00 - XX:XX:59). Setting the `unaligned` option, Netdata will aggregate data without any alignment, so if the request is for 60 seconds, it will aggregate the latest 60 seconds of collected data.
+
+These are options dedicated to badges:
+
+- `label=TEXT`
+
+ The label of the badge.
+
+- `units=TEXT`
+
+ The units of the badge. If you want to put a `/`, please put a `\`. This is because Netdata allows badges parameters to be given as path in URL, instead of query string. You can also use `null` or `empty` to show it without any units.
+
+ The units `seconds`, `minutes` and `hours` trigger special formatting. The value has to be in this unit, and Netdata will automatically change it to show a more pretty duration.
+
+- `multiply=NUMBER`
+
+ Multiply the value with this number. The default is `1`.
+
+- `divide=NUMBER`
+
+ Divide the value with this number. The default is `1`.
+
+- Color customization parameters
+
+ The following parameters specify colors of each individual part of the badge. Each parameter is documented in detail
+ below.
+
+ | Area of badge | Background color parameter | Text color parameter |
+ | ---: | :------------------------: | :------------------: |
+ | Label (left) part | `label_color` | `text_color_lbl` |
+ | Value (right) part | `value_color` | `text_color_val` |
+
+ - `label_color=COLOR`
+
+ The color of the label (the left part). You can use any HTML color in `RGB` or `RRGGBB` hex notation (without
+ the `#` character at the beginning). Additionally, you can use one of the following predefined colors (and you
+ can use them by their name):
+
+ - `green`
+ - `brightgreen`
+ - `yellow`
+ - `yellowgreen`
+ - `orange`
+ - `red`
+ - `blue`
+ - `grey`
+ - `gray`
+ - `lightgrey`
+ - `lightgray`
+
+ These colors are taken from <https://github.com/badges/shields>, which makes them compatible with standard
+ badges.
+
+ - `value_color=COLOR:null|COLOR<VALUE|COLOR>VALUE|COLOR>=VALUE|COLOR<=VALUE|...`
+
+ You can add a pipe delimited list of conditions to pick the value color. The first matching (left to right) will
+ be used.
+
+ Example: `value_color=grey:null|green<10|yellow<100|orange<1000|blue<10000|red`
+
+ The above will set `grey` if no value exists (not collected within the `gap when lost iterations above` in
+ `netdata.conf` for the chart), `green` if the value is less than 10, `yellow` if the value is less than 100, and
+ so on. Netdata will use `red` if no other conditions match. Only integers are supported as values.
+
+ The supported operators are `<`, `>`, `<=`, `>=`, `=` (or `:`), and `!=` (or `<>`).
+
+ You can also use the same syntax as the `label_color` parameter to define each of these colors. You can
+ reference a predefined color by name or `RGB`/`RRGGBB` hex notation.
+
+ - `text_color_lbl=RGB` or `text_color_lbl=RRGGBB` or `text_color_lbl=color_by_name`
+
+ This value specifies the font color for the font of left/label side of the badge. The syntax is the same as the
+ `label_color` parameter. If not given, or given with an empty value, Netdata will use the default color.
+
+ - `text_color_val=RGB` or `text_color_val=RRGGBB` or `text_color_lbl=color_by_name`
+
+ This value specifies the font color for the font of right/value side of the badge. The syntax is the same as the
+ `label_color` parameter. If not given, or given with an empty value, Netdata will use the default color.
+
+- `precision=NUMBER`
+
+ The number of decimal digits of the value. By default Netdata will add:
+
+ - no decimal digits for values > 1000
+ - 1 decimal digit for values > 100
+ - 2 decimal digits for values > 1
+ - 3 decimal digits for values > 0.1
+ - 4 decimal digits for values \<= 0.1
+
+ Using the `precision=NUMBER` you can set your preference per badge.
+
+- `scale=XXX`
+
+ This option scales the svg image. It accepts values above or equal to 100 (100% is the default scale). For example, lets get a few different sizes:
+
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=100"></img> original<br/>
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=125"></img> `scale=125`<br/>
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=150"></img> `scale=150`<br/>
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=175"></img> `scale=175`<br/>
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=200"></img> `scale=200`
+
+- `fixed_width_lbl=NUMBER` and `fixed_width_val=NUMBER`
+
+ This parameter overrides auto-sizing of badges and displays them at fixed widths. `fixed_width_lbl` determines the size of the label's left side (label/name). `fixed_width_val` determines the size of the label's right side (value). You must set both parameters together, or they will be ignored.
+
+ You should set the label/value widths wide enough to provide space for all the possible values/contents of the badge you're requesting. In case the text cannot fit the space given it will be clipped.
+
+ The `scale` parameter still applies on the values you give to `fixed_width_lbl` and `fixed_width_val`.
+
+- `refresh=auto` or `refresh=SECONDS`
+
+ This option enables auto-refreshing of images. Netdata will send the HTTP header `Refresh: SECONDS` to the web browser, thus requesting automatic refresh of the images at regular intervals.
+
+ `auto` will calculate the proper `SECONDS` to avoid unnecessary refreshes. If `SECONDS` is zero, this feature is disabled (it is also disabled by default).
+
+ Auto-refreshing like this, works only if you access the badge directly. So, you may have to put it an `embed` or `iframe` for it to be auto-refreshed. Use something like this:
+
+```html
+<embed src="BADGE_URL" type="image/svg+xml" height="20" />
+```
+
+ Another way is to use javascript to auto-refresh them. You can auto-refresh all the Netdata badges on a page using javascript. You have to add a class to all the Netdata badges, like this `<img class="netdata-badge" src="..."/>`. Then add this javascript code to your page (it requires jquery):
+
+```html
+<script>
+ var NETDATA_BADGES_AUTOREFRESH_SECONDS = 5;
+ function refreshNetdataBadges() {
+ var now = new Date().getTime().toString();
+ $('.netdata-badge').each(function() {
+ this.src = this.src.replace(/\&_=\d*/, '') + '&_=' + now;
+ });
+ setTimeout(refreshNetdataBadges, NETDATA_BADGES_AUTOREFRESH_SECONDS * 1000);
+ }
+ setTimeout(refreshNetdataBadges, NETDATA_BADGES_AUTOREFRESH_SECONDS * 1000);
+</script>
+```
+
+A more advanced badges refresh method is to include `http://your.netdata.ip:19999/refresh-badges.js` in your page.
+
+---
+
+## Escaping URLs
+
+Keep in mind that if you add badge URLs to your HTML pages you have to escape the special characters:
+
+|character|name|escape sequence|
+|:-------:|:--:|:-------------:|
+|``|space (in labels and units)|`%20`|
+|`#`|hash (for colors)|`%23`|
+|`%`|percent (in units)|`%25`|
+|`<`|less than|`%3C`|
+|`>`|greater than|`%3E`|
+|`\`|backslash (when you need a `/`)|`%5C`|
+|`\|`|pipe (delimiting parameters)|`%7C`|
+
+## FAQ
+
+#### Is it fast?
+
+On modern hardware, Netdata can generate about **2.000 badges per second per core**, before noticing any delays. It generates a badge in about half a millisecond!
+
+Of course these timing are for badges that use recent data. If you need badges that do calculations over long durations (a day, or more), timing will differ. Netdata logs its timings at its `access.log`, so take a look there before adding a heavy badge on a busy web site. Of course, you can cache such badges or have a cron job get them from Netdata and save them at your web server at regular intervals.
+
+#### Embedding badges in GitHub
+
+You have 2 options:
+- SVG images with markdown
+- SVG images with HTML (directly in .md files)
+
+For example, this is the cpu badge shown above:
+
+- Markdown example:
+
+```md
+[![A nice name](https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20cpu%20now&units=%25)](https://registry.my-netdata.io/#apps_cpu)
+```
+
+- HTML example:
+
+```html
+<a href="https://registry.my-netdata.io/#apps_cpu">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20cpu%20now&units=%25"></img>
+</a>
+```
+
+Both produce this:
+
+<a href="https://registry.my-netdata.io/#apps_cpu">
+ <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20cpu%20now&units=%25"></img>
+</a>
+
+#### Auto-refreshing badges in GitHub
+
+Unfortunately it cannot be done. GitHub fetches all the images using a proxy and rewrites all the URLs to be served by the proxy.
+
+You can refresh them from your browser console though. Press F12 to open the web browser console (switch to the console too), paste the following and press enter. They will refresh:
+
+```js
+var len = document.images.length; while(len--) { document.images[len].src = document.images[len].src.replace(/\?cacheBuster=\d*/, "") + "?cacheBuster=" + new Date().getTime().toString(); };
+```
+
+
diff --git a/web/api/badges/web_buffer_svg.c b/src/web/api/badges/web_buffer_svg.c
index 9b81ba4fb..23dc96d10 100644
--- a/web/api/badges/web_buffer_svg.c
+++ b/src/web/api/badges/web_buffer_svg.c
@@ -926,7 +926,7 @@ int web_client_api_request_v1_badge(RRDHOST *host, struct web_client *w, char *u
group = time_grouping_parse(value, RRDR_GROUPING_AVERAGE);
}
else if(!strcmp(name, "options")) {
- options |= web_client_api_request_v1_data_options(value);
+ options |= rrdr_options_parse(value);
}
else if(!strcmp(name, "label")) label = value;
else if(!strcmp(name, "units")) units = value;
@@ -996,7 +996,7 @@ int web_client_api_request_v1_badge(RRDHOST *host, struct web_client *w, char *u
int refresh = 0;
if(refresh_str && *refresh_str) {
if(!strcmp(refresh_str, "auto")) {
- if(rc) refresh = rc->update_every;
+ if(rc) refresh = rc->config.update_every;
else if(options & RRDR_OPTION_NOT_ALIGNED)
refresh = st->update_every;
else {
@@ -1029,7 +1029,7 @@ int web_client_api_request_v1_badge(RRDHOST *host, struct web_client *w, char *u
}
if(!units) {
if(alarm) {
- if(rc->units)
+ if(rc->config.units)
units = rrdcalc_units(rc);
else
units = "";
diff --git a/web/api/badges/web_buffer_svg.h b/src/web/api/badges/web_buffer_svg.h
index 71857811f..71857811f 100644
--- a/web/api/badges/web_buffer_svg.h
+++ b/src/web/api/badges/web_buffer_svg.h
diff --git a/src/web/api/exporters/README.md b/src/web/api/exporters/README.md
new file mode 100644
index 000000000..206937967
--- /dev/null
+++ b/src/web/api/exporters/README.md
@@ -0,0 +1,14 @@
+<!--
+title: "Exporters"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/exporters/README.md
+sidebar_label: "Exporters"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api"
+-->
+
+# Exporters
+
+TBD
+
+
diff --git a/web/api/exporters/allmetrics.c b/src/web/api/exporters/allmetrics.c
index cad52a7d5..cad52a7d5 100644
--- a/web/api/exporters/allmetrics.c
+++ b/src/web/api/exporters/allmetrics.c
diff --git a/web/api/exporters/allmetrics.h b/src/web/api/exporters/allmetrics.h
index 3afc42e28..3afc42e28 100644
--- a/web/api/exporters/allmetrics.h
+++ b/src/web/api/exporters/allmetrics.h
diff --git a/src/web/api/exporters/prometheus/README.md b/src/web/api/exporters/prometheus/README.md
new file mode 100644
index 000000000..f4bb90a56
--- /dev/null
+++ b/src/web/api/exporters/prometheus/README.md
@@ -0,0 +1,14 @@
+<!--
+title: "Prometheus exporter"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/exporters/prometheus/README.md
+sidebar_label: "Prometheus exporter"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Exporters"
+-->
+
+# Prometheus exporter
+
+Read the Prometheus exporter documentation: [Using Netdata with Prometheus](https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/README.md).
+
+
diff --git a/src/web/api/exporters/shell/README.md b/src/web/api/exporters/shell/README.md
new file mode 100644
index 000000000..86b774f1b
--- /dev/null
+++ b/src/web/api/exporters/shell/README.md
@@ -0,0 +1,73 @@
+<!--
+title: "Shell exporter"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/exporters/shell/README.md
+sidebar_label: "Shell exporter"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Exporters"
+-->
+
+# Shell exporter
+
+Shell scripts can now query Netdata:
+
+```sh
+eval "$(curl -s 'http://localhost:19999/api/v1/allmetrics')"
+```
+
+after this command, all the Netdata metrics are exposed to shell. Check:
+
+```sh
+# source the metrics
+eval "$(curl -s 'http://localhost:19999/api/v1/allmetrics')"
+
+# let's see if there are variables exposed by Netdata for system.cpu
+set | grep "^NETDATA_SYSTEM_CPU"
+
+NETDATA_SYSTEM_CPU_GUEST=0
+NETDATA_SYSTEM_CPU_GUEST_NICE=0
+NETDATA_SYSTEM_CPU_IDLE=95
+NETDATA_SYSTEM_CPU_IOWAIT=0
+NETDATA_SYSTEM_CPU_IRQ=0
+NETDATA_SYSTEM_CPU_NICE=0
+NETDATA_SYSTEM_CPU_SOFTIRQ=0
+NETDATA_SYSTEM_CPU_STEAL=0
+NETDATA_SYSTEM_CPU_SYSTEM=1
+NETDATA_SYSTEM_CPU_USER=4
+NETDATA_SYSTEM_CPU_VISIBLETOTAL=5
+
+# let's see the total cpu utilization of the system
+echo ${NETDATA_SYSTEM_CPU_VISIBLETOTAL}
+5
+
+# what about alerts?
+set | grep "^NETDATA_ALARM_SYSTEM_SWAP_"
+NETDATA_ALARM_SYSTEM_SWAP_USED_SWAP_STATUS=CLEAR
+NETDATA_ALARM_SYSTEM_SWAP_USED_SWAP_VALUE=51
+
+# let's get the current status of the alert 'used swap'
+echo ${NETDATA_ALARM_SYSTEM_SWAP_USED_SWAP_STATUS}
+CLEAR
+
+# is it fast?
+time curl -s 'http://localhost:19999/api/v1/allmetrics' >/dev/null
+
+real 0m0,070s
+user 0m0,000s
+sys 0m0,007s
+
+# it is...
+# 0.07 seconds for curl to be loaded, connect to Netdata and fetch the response back...
+```
+
+The `_VISIBLETOTAL` variable sums up all the dimensions of each chart.
+
+The format of the variables is:
+
+```sh
+NETDATA_${chart_id^^}_${dimension_id^^}="${value}"
+```
+
+The value is rounded to the closest integer, since shell script cannot process decimal numbers.
+
+
diff --git a/web/api/exporters/shell/allmetrics_shell.c b/src/web/api/exporters/shell/allmetrics_shell.c
index c8248c148..c8248c148 100644
--- a/web/api/exporters/shell/allmetrics_shell.c
+++ b/src/web/api/exporters/shell/allmetrics_shell.c
diff --git a/web/api/exporters/shell/allmetrics_shell.h b/src/web/api/exporters/shell/allmetrics_shell.h
index d6598e08d..d6598e08d 100644
--- a/web/api/exporters/shell/allmetrics_shell.h
+++ b/src/web/api/exporters/shell/allmetrics_shell.h
diff --git a/src/web/api/formatters/README.md b/src/web/api/formatters/README.md
new file mode 100644
index 000000000..df1ae7867
--- /dev/null
+++ b/src/web/api/formatters/README.md
@@ -0,0 +1,82 @@
+<!--
+title: "Query formatting"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/formatters/README.md
+sidebar_label: "Query formatting"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Formatters"
+-->
+
+# Query formatting
+
+API data queries need to be formatted before returned to the caller.
+Using API parameters, the caller may define the format he/she wishes to get back.
+
+The following formats are supported:
+
+| format|module|content type|description|
+|:----:|:----:|:----------:|:----------|
+| `array`|[ssv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/ssv/README.md)|application/json|a JSON array|
+| `csv`|[csv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/csv/README.md)|text/plain|a text table, comma separated, with a header line (dimension names) and `\r\n` at the end of the lines|
+| `csvjsonarray`|[csv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/csv/README.md)|application/json|a JSON array, with each row as another array (the first row has the dimension names)|
+| `datasource`|[json](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/json/README.md)|application/json|a Google Visualization Provider `datasource` javascript callback|
+| `datatable`|[json](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/json/README.md)|application/json|a Google `datatable`|
+| `html`|[csv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/csv/README.md)|text/html|an html table|
+| `json`|[json](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/json/README.md)|application/json|a JSON object|
+| `jsonp`|[json](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/json/README.md)|application/json|a JSONP javascript callback|
+| `markdown`|[csv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/csv/README.md)|text/plain|a markdown table|
+| `ssv`|[ssv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/ssv/README.md)|text/plain|a space separated list of values|
+| `ssvcomma`|[ssv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/ssv/README.md)|text/plain|a comma separated list of values|
+| `tsv`|[csv](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/csv/README.md)|text/plain|a TAB delimited `csv` (MS Excel flavor)|
+
+For examples of each format, check the relative module documentation.
+
+## Metadata with the `jsonwrap` option
+
+All data queries can be encapsulated to JSON object having metadata about the query and the results.
+
+This is done by adding the `options=jsonwrap` to the API URL (if there are other `options` append
+`,jsonwrap` to the existing ones).
+
+This is such an object:
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.cpu&after=-3600&points=6&group=average&format=csv&options=nonzero,jsonwrap'
+{
+ "api": 1,
+ "id": "system.cpu",
+ "name": "system.cpu",
+ "view_update_every": 600,
+ "update_every": 1,
+ "first_entry": 1540387074,
+ "last_entry": 1540647070,
+ "before": 1540647000,
+ "after": 1540644000,
+ "dimension_names": ["steal", "softirq", "user", "system", "iowait"],
+ "dimension_ids": ["steal", "softirq", "user", "system", "iowait"],
+ "latest_values": [0, 0.2493766, 1.745636, 0.4987531, 0],
+ "view_latest_values": [0.0158314, 0.0516506, 0.866549, 0.7196127, 0.0050002],
+ "dimensions": 5,
+ "points": 6,
+ "format": "csv",
+ "result": "time,steal,softirq,user,system,iowait\n2018-10-27 13:30:00,0.0158314,0.0516506,0.866549,0.7196127,0.0050002\n2018-10-27 13:20:00,0.0149856,0.0529183,0.8673155,0.7121144,0.0049979\n2018-10-27 13:10:00,0.0137501,0.053315,0.8578097,0.7197613,0.0054209\n2018-10-27 13:00:00,0.0154252,0.0554688,0.899432,0.7200638,0.0067252\n2018-10-27 12:50:00,0.0145866,0.0495922,0.8404341,0.7011141,0.0041688\n2018-10-27 12:40:00,0.0162366,0.0595954,0.8827475,0.7020573,0.0041636\n",
+ "min": 0,
+ "max": 0
+}
+```
+
+## Downloading data query result files
+
+Following the [Google Visualization Provider guidelines](https://developers.google.com/chart/interactive/docs/dev/implementing_data_source),
+Netdata supports parsing `tqx` options.
+
+Using these options, any Netdata data query can instruct the web browser to download
+the result and save it under a given filename.
+
+For example, to download a CSV file with CPU utilization of the last hour,
+[click here](https://registry.my-netdata.io/api/v1/data?chart=system.cpu&after=-3600&format=csv&options=nonzero&tqx=outFileName:system+cpu+utilization+of+the+last_hour.csv).
+
+This is done by appending `&tqx=outFileName:FILENAME` to any data query.
+The output will be in the format given with `&format=`.
+
+
diff --git a/web/api/formatters/charts2json.c b/src/web/api/formatters/charts2json.c
index cab4debae..cab4debae 100644
--- a/web/api/formatters/charts2json.c
+++ b/src/web/api/formatters/charts2json.c
diff --git a/web/api/formatters/charts2json.h b/src/web/api/formatters/charts2json.h
index 7b07af5a0..7b07af5a0 100644
--- a/web/api/formatters/charts2json.h
+++ b/src/web/api/formatters/charts2json.h
diff --git a/src/web/api/formatters/csv/README.md b/src/web/api/formatters/csv/README.md
new file mode 100644
index 000000000..ee5e3666f
--- /dev/null
+++ b/src/web/api/formatters/csv/README.md
@@ -0,0 +1,148 @@
+<!--
+title: "CSV formatter"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/formatters/csv/README.md
+sidebar_label: "CSV formatter"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Formatters"
+-->
+
+# CSV formatter
+
+The CSV formatter presents [results of database queries](https://github.com/netdata/netdata/blob/master/src/web/api/queries/README.md) in the following formats:
+
+| format|content type|description|
+| :----:|:----------:|:----------|
+| `csv`|text/plain|a text table, comma separated, with a header line (dimension names) and `\r\n` at the end of the lines|
+| `csvjsonarray`|application/json|a JSON array, with each row as another array (the first row has the dimension names)|
+| `tsv`|text/plain|like `csv` but TAB is used instead of comma to separate values (MS Excel flavor)|
+| `html`|text/html|an html table|
+| `markdown`|text/plain|markdown table|
+
+In all formats the date and time is the first column.
+
+The CSV formatter respects the following API `&options=`:
+
+| option|supported|description|
+|:----:|:-------:|:----------|
+| `nonzero`|yes|to return only the dimensions that have at least a non-zero value|
+| `flip`|yes|to return the rows older to newer (the default is newer to older)|
+| `seconds`|yes|to return the date and time in unix timestamp|
+| `ms`|yes|to return the date and time in unit timestamp as milliseconds|
+| `percent`|yes|to replace all values with their percentage over the row total|
+| `abs`|yes|to turn all values positive|
+| `null2zero`|yes|to replace gaps with zeros (the default prints the string `null`|
+
+## Examples
+
+Get the system total bandwidth for all physical network interfaces, over the last hour,
+in 6 rows (one for every 10 minutes), in `csv` format:
+
+Netdata always returns bandwidth in `kilobits`.
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.net&format=csv&after=-3600&group=sum&points=6&options=abs'
+time,received,sent
+2018-10-26 23:50:00,90214.67847,215137.79762
+2018-10-26 23:40:00,90126.32286,238587.57522
+2018-10-26 23:30:00,86061.22688,213389.23526
+2018-10-26 23:20:00,85590.75164,206129.01608
+2018-10-26 23:10:00,83163.30691,194311.77384
+2018-10-26 23:00:00,85167.29657,197538.07773
+```
+
+---
+
+Get the max RAM used by the SQL server and any cron jobs, over the last hour, in 2 rows (one for every 30
+minutes), in `tsv` format, and format the date and time as unix timestamp:
+
+Netdata always returns memory in `MB`.
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=apps.mem&format=tsv&after=-3600&group=max&points=2&options=nonzero,seconds&dimensions=sql,cron'
+time sql cron
+1540598400 61.95703 0.25
+1540596600 61.95703 0.25
+```
+
+---
+
+Get an HTML table of the last 4 values (4 seconds) of system CPU utilization:
+
+Netdata always returns CPU utilization as `%`.
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.cpu&format=html&after=-4&options=nonzero'
+<html>
+<center>
+<table border="0" cellpadding="5" cellspacing="5">
+<tr><td>time</td><td>softirq</td><td>user</td><td>system</td></tr>
+<tr><td>2018-10-27 00:16:07</td><td>0.25</td><td>1</td><td>0.75</td></tr>
+<tr><td>2018-10-27 00:16:06</td><td>0</td><td>1.0025063</td><td>0.5012531</td></tr>
+<tr><td>2018-10-27 00:16:05</td><td>0</td><td>1</td><td>0.75</td></tr>
+<tr><td>2018-10-27 00:16:04</td><td>0</td><td>1.0025063</td><td>0.7518797</td></tr>
+</table>
+</center>
+</html>
+```
+
+This is how it looks when rendered by a web browser:
+
+![image](https://user-images.githubusercontent.com/2662304/47597887-bafbf480-d99c-11e8-864a-d880bb8d2e5b.png)
+
+---
+
+Get a JSON array with the average bandwidth rate of the mysql server, over the last hour, in 6 values
+(one every 10 minutes), and return the date and time in milliseconds:
+
+Netdata always returns bandwidth rates in `kilobits/s`.
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=mysql_local.net&format=csvjsonarray&after=-3600&points=6&group=average&options=abs,ms'
+[
+["time","in","out"],
+[1540599600000,0.7499986,120.2810185],
+[1540599000000,0.7500019,120.2815509],
+[1540598400000,0.7499999,120.2812319],
+[1540597800000,0.7500044,120.2819634],
+[1540597200000,0.7499968,120.2807337],
+[1540596600000,0.7499988,120.2810527]
+]
+```
+
+---
+
+Get the number of processes started per minute, for the last 10 minutes, in `markdown` format:
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.forks&format=markdown&after=-600&points=10&group=sum'
+time | started
+:---: |:---:
+2018-10-27 03:52:00| 245.1706149
+2018-10-27 03:51:00| 152.6654636
+2018-10-27 03:50:00| 163.1755789
+2018-10-27 03:49:00| 176.1574766
+2018-10-27 03:48:00| 178.0137076
+2018-10-27 03:47:00| 183.8306543
+2018-10-27 03:46:00| 264.1635621
+2018-10-27 03:45:00| 205.001551
+2018-10-27 03:44:00| 7026.9852167
+2018-10-27 03:43:00| 205.9904794
+```
+
+And this is how it looks when formatted:
+
+| time | started |
+|:--:|:-----:|
+| 2018-10-27 03:52:00 | 245.1706149 |
+| 2018-10-27 03:51:00 | 152.6654636 |
+| 2018-10-27 03:50:00 | 163.1755789 |
+| 2018-10-27 03:49:00 | 176.1574766 |
+| 2018-10-27 03:48:00 | 178.0137076 |
+| 2018-10-27 03:47:00 | 183.8306543 |
+| 2018-10-27 03:46:00 | 264.1635621 |
+| 2018-10-27 03:45:00 | 205.001551 |
+| 2018-10-27 03:44:00 | 7026.9852167 |
+| 2018-10-27 03:43:00 | 205.9904794 |
+
+
diff --git a/web/api/formatters/csv/csv.c b/src/web/api/formatters/csv/csv.c
index d81ddb34e..d81ddb34e 100644
--- a/web/api/formatters/csv/csv.c
+++ b/src/web/api/formatters/csv/csv.c
diff --git a/web/api/formatters/csv/csv.h b/src/web/api/formatters/csv/csv.h
index 666d4c660..666d4c660 100644
--- a/web/api/formatters/csv/csv.h
+++ b/src/web/api/formatters/csv/csv.h
diff --git a/src/web/api/formatters/json/README.md b/src/web/api/formatters/json/README.md
new file mode 100644
index 000000000..b0037cb2e
--- /dev/null
+++ b/src/web/api/formatters/json/README.md
@@ -0,0 +1,160 @@
+<!--
+title: "JSON formatter"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/formatters/json/README.md
+sidebar_label: "JSON formatter"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Formatters"
+-->
+
+# JSON formatter
+
+The CSV formatter presents [results of database queries](https://github.com/netdata/netdata/blob/master/src/web/api/queries/README.md) in the following formats:
+
+| format | content type | description|
+|:----:|:----------:|:----------|
+| `json` | application/json | return the query result as a json object|
+| `jsonp` | application/json | return the query result as a JSONP javascript callback|
+| `datatable` | application/json | return the query result as a Google `datatable`|
+| `datasource` | application/json | return the query result as a Google Visualization Provider `datasource` javascript callback|
+
+The CSV formatter respects the following API `&options=`:
+
+| option | supported | description|
+|:----:|:-------:|:----------|
+| `google_json` | yes | enable the Google flavor of JSON (using double quotes for strings and `Date()` function for dates|
+| `objectrows` | yes | return each row as an object, instead of an array|
+| `nonzero` | yes | to return only the dimensions that have at least a non-zero value|
+| `flip` | yes | to return the rows older to newer (the default is newer to older)|
+| `seconds` | yes | to return the date and time in unix timestamp|
+| `ms` | yes | to return the date and time in unit timestamp as milliseconds|
+| `percent` | yes | to replace all values with their percentage over the row total|
+| `abs` | yes | to turn all values positive|
+| `null2zero` | yes | to replace gaps with zeros (the default prints the string `null`|
+
+## Examples
+
+To show the differences between each format, in the following examples we query the same
+chart (having just one dimension called `active`), changing only the query `format` and its `options`.
+
+> Using `format=json` and `options=`
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=nginx_local.connections&after=-3600&points=6&group=average&format=json&options='
+{
+ "labels": ["time", "active"],
+ "data":
+ [
+ [ 1540644600, 224.2516667],
+ [ 1540644000, 229.29],
+ [ 1540643400, 222.41],
+ [ 1540642800, 226.6816667],
+ [ 1540642200, 246.4083333],
+ [ 1540641600, 241.0966667]
+ ]
+}
+```
+
+> Using `format=json` and `options=objectrows`
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=nginx_local.connections&after=-3600&points=6&group=average&format=json&options=objectrows'
+{
+ "labels": ["time", "active"],
+ "data":
+ [
+ { "time": 1540644600, "active": 224.2516667},
+ { "time": 1540644000, "active": 229.29},
+ { "time": 1540643400, "active": 222.41},
+ { "time": 1540642800, "active": 226.6816667},
+ { "time": 1540642200, "active": 246.4083333},
+ { "time": 1540641600, "active": 241.0966667}
+ ]
+}
+```
+
+> Using `format=json` and `options=objectrows,google_json`
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=nginx_local.connections&after=-3600&points=6&group=average&formatjson&options=objectrows,google_json'
+{
+ "labels": ["time", "active"],
+ "data":
+ [
+ { "time": new Date(2018,9,27,12,50,0), "active": 224.2516667},
+ { "time": new Date(2018,9,27,12,40,0), "active": 229.29},
+ { "time": new Date(2018,9,27,12,30,0), "active": 222.41},
+ { "time": new Date(2018,9,27,12,20,0), "active": 226.6816667},
+ { "time": new Date(2018,9,27,12,10,0), "active": 246.4083333},
+ { "time": new Date(2018,9,27,12,0,0), "active": 241.0966667}
+ ]
+}
+```
+
+> Using `format=jsonp` and `options=`
+
+```bash
+curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=nginx_local.connections&after=-3600&points=6&group=average&formjsonp&options='
+callback({
+ "labels": ["time", "active"],
+ "data":
+ [
+ [ 1540645200, 235.885],
+ [ 1540644600, 224.2516667],
+ [ 1540644000, 229.29],
+ [ 1540643400, 222.41],
+ [ 1540642800, 226.6816667],
+ [ 1540642200, 246.4083333]
+ ]
+});
+```
+
+> Using `format=datatable` and `options=`
+
+```bash
+curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=nginx_local.connections&after=-3600&points=6&group=average&formdatatable&options='
+{
+ "cols":
+ [
+ {"id":"","label":"time","pattern":"","type":"datetime"},
+ {"id":"","label":"","pattern":"","type":"string","p":{"role":"annotation"}},
+ {"id":"","label":"","pattern":"","type":"string","p":{"role":"annotationText"}},
+ {"id":"","label":"active","pattern":"","type":"number"}
+ ],
+ "rows":
+ [
+ {"c":[{"v":"Date(2018,9,27,13,0,0)"},{"v":null},{"v":null},{"v":235.885}]},
+ {"c":[{"v":"Date(2018,9,27,12,50,0)"},{"v":null},{"v":null},{"v":224.2516667}]},
+ {"c":[{"v":"Date(2018,9,27,12,40,0)"},{"v":null},{"v":null},{"v":229.29}]},
+ {"c":[{"v":"Date(2018,9,27,12,30,0)"},{"v":null},{"v":null},{"v":222.41}]},
+ {"c":[{"v":"Date(2018,9,27,12,20,0)"},{"v":null},{"v":null},{"v":226.6816667}]},
+ {"c":[{"v":"Date(2018,9,27,12,10,0)"},{"v":null},{"v":null},{"v":246.4083333}]}
+ ]
+}
+```
+
+> Using `format=datasource` and `options=`
+
+```bash
+curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=nginx_local.connections&after=-3600&points=6&group=average&format=datasource&options='
+google.visualization.Query.setResponse({version:'0.6',reqId:'0',status:'ok',sig:'1540645368',table:{
+ "cols":
+ [
+ {"id":"","label":"time","pattern":"","type":"datetime"},
+ {"id":"","label":"","pattern":"","type":"string","p":{"role":"annotation"}},
+ {"id":"","label":"","pattern":"","type":"string","p":{"role":"annotationText"}},
+ {"id":"","label":"active","pattern":"","type":"number"}
+ ],
+ "rows":
+ [
+ {"c":[{"v":"Date(2018,9,27,13,0,0)"},{"v":null},{"v":null},{"v":235.885}]},
+ {"c":[{"v":"Date(2018,9,27,12,50,0)"},{"v":null},{"v":null},{"v":224.2516667}]},
+ {"c":[{"v":"Date(2018,9,27,12,40,0)"},{"v":null},{"v":null},{"v":229.29}]},
+ {"c":[{"v":"Date(2018,9,27,12,30,0)"},{"v":null},{"v":null},{"v":222.41}]},
+ {"c":[{"v":"Date(2018,9,27,12,20,0)"},{"v":null},{"v":null},{"v":226.6816667}]},
+ {"c":[{"v":"Date(2018,9,27,12,10,0)"},{"v":null},{"v":null},{"v":246.4083333}]}
+ ]
+}});
+```
+
+
diff --git a/web/api/formatters/json/json.c b/src/web/api/formatters/json/json.c
index 7e3f400e9..7e3f400e9 100644
--- a/web/api/formatters/json/json.c
+++ b/src/web/api/formatters/json/json.c
diff --git a/web/api/formatters/json/json.h b/src/web/api/formatters/json/json.h
index d1ab4f901..d1ab4f901 100644
--- a/web/api/formatters/json/json.h
+++ b/src/web/api/formatters/json/json.h
diff --git a/web/api/formatters/json_wrapper.c b/src/web/api/formatters/json_wrapper.c
index 708a0f1f1..fca5a0b83 100644
--- a/web/api/formatters/json_wrapper.c
+++ b/src/web/api/formatters/json_wrapper.c
@@ -435,23 +435,23 @@ static void query_target_summary_dimensions_v12(BUFFER *wb, QUERY_TARGET *qt, co
qm = tqm;
}
- const char *key, *id, *name;
+ const char *k, *id, *name;
if(v2) {
- key = rrdmetric_acquired_name(rma);
- id = key;
- name = key;
+ k = rrdmetric_acquired_name(rma);
+ id = k;
+ name = k;
}
else {
snprintfz(buf, RRD_ID_LENGTH_MAX * 2 + 1, "%s:%s",
rrdmetric_acquired_id(rma),
rrdmetric_acquired_name(rma));
- key = buf;
+ k = buf;
id = rrdmetric_acquired_id(rma);
name = rrdmetric_acquired_name(rma);
}
- z = dictionary_set(dict, key, NULL, sizeof(*z));
+ z = dictionary_set(dict, k, NULL, sizeof(*z));
if(!z->id) {
z->id = id;
z->name = name;
@@ -618,7 +618,7 @@ static void query_target_summary_alerts_v2(BUFFER *wb, QUERY_TARGET *qt, const c
rw_spinlock_read_lock(&st->alerts.spinlock);
if (st->alerts.base) {
for (RRDCALC *rc = st->alerts.base; rc; rc = rc->next) {
- z = dictionary_set(dict, string2str(rc->name), NULL, sizeof(*z));
+ z = dictionary_set(dict, string2str(rc->config.name), NULL, sizeof(*z));
switch(rc->status) {
case RRDCALC_STATUS_CLEAR:
@@ -887,7 +887,7 @@ void rrdr_json_wrapper_begin(RRDR *r, BUFFER *wb) {
buffer_json_member_add_time_t(wb, "after", r->view.after);
buffer_json_member_add_time_t(wb, "before", r->view.before);
buffer_json_member_add_string(wb, "group", time_grouping_tostring(qt->request.time_group_method));
- web_client_api_request_v1_data_options_to_buffer_json_array(wb, "options", options);
+ rrdr_options_to_buffer_json_array(wb, "options", options);
if(!rrdr_dimension_names(wb, "dimension_names", r, options))
rows = 0;
@@ -939,10 +939,10 @@ static void rrdset_rrdcalc_entries_v2(BUFFER *wb, RRDINSTANCE_ACQUIRED *ria) {
if(rc->status < RRDCALC_STATUS_CLEAR)
continue;
- buffer_json_member_add_object(wb, string2str(rc->name));
+ buffer_json_member_add_object(wb, string2str(rc->config.name));
buffer_json_member_add_string(wb, "st", rrdcalc_status2string(rc->status));
buffer_json_member_add_double(wb, "vl", rc->value);
- buffer_json_member_add_string(wb, "un", string2str(rc->units));
+ buffer_json_member_add_string(wb, "un", string2str(rc->config.units));
buffer_json_object_close(wb);
}
buffer_json_object_close(wb);
@@ -1299,7 +1299,7 @@ void rrdr_json_wrapper_begin2(RRDR *r, BUFFER *wb) {
buffer_json_member_add_object(wb, "request");
{
buffer_json_member_add_string(wb, "format", rrdr_format_to_string(qt->request.format));
- web_client_api_request_v1_data_options_to_buffer_json_array(wb, "options", qt->request.options);
+ rrdr_options_to_buffer_json_array(wb, "options", qt->request.options);
buffer_json_member_add_object(wb, "scope");
buffer_json_member_add_string(wb, "scope_nodes", qt->request.scope_nodes);
@@ -1538,7 +1538,7 @@ void rrdr_json_wrapper_end2(RRDR *r, BUFFER *wb) {
if(options & RRDR_OPTION_DEBUG) {
buffer_json_member_add_string(wb, "format", rrdr_format_to_string(format));
- web_client_api_request_v1_data_options_to_buffer_json_array(wb, "options", options);
+ rrdr_options_to_buffer_json_array(wb, "options", options);
buffer_json_member_add_string(wb, "time_group", time_grouping_tostring(qt->request.time_group_method));
}
diff --git a/web/api/formatters/json_wrapper.h b/src/web/api/formatters/json_wrapper.h
index a702f3a5c..a702f3a5c 100644
--- a/web/api/formatters/json_wrapper.h
+++ b/src/web/api/formatters/json_wrapper.h
diff --git a/web/api/formatters/rrd2json.c b/src/web/api/formatters/rrd2json.c
index 81c9ad5c7..81c9ad5c7 100644
--- a/web/api/formatters/rrd2json.c
+++ b/src/web/api/formatters/rrd2json.c
diff --git a/web/api/formatters/rrd2json.h b/src/web/api/formatters/rrd2json.h
index f0c0c39ba..f0c0c39ba 100644
--- a/web/api/formatters/rrd2json.h
+++ b/src/web/api/formatters/rrd2json.h
diff --git a/web/api/formatters/rrdset2json.c b/src/web/api/formatters/rrdset2json.c
index 9ada35336..542178b25 100644
--- a/web/api/formatters/rrdset2json.c
+++ b/src/web/api/formatters/rrdset2json.c
@@ -2,7 +2,7 @@
#include "rrdset2json.h"
-static int process_label_callback(const char *name, const char *value, RRDLABEL_SRC ls, void *data) {
+static int process_label_callback(const char *name, const char *value, RRDLABEL_SRC ls __maybe_unused, void *data) {
BUFFER *wb = data;
buffer_json_member_add_string_or_empty(wb, name, value);
return 1;
@@ -88,7 +88,7 @@ void rrdset2json(RRDSET *st, BUFFER *wb, size_t *dimensions_count, size_t *memor
buffer_json_member_add_string_or_empty(wb, "id", rrdcalc_name(rc));
buffer_json_member_add_string_or_empty(wb, "status", rrdcalc_status2string(rc->status));
buffer_json_member_add_string_or_empty(wb, "units", rrdcalc_units(rc));
- buffer_json_member_add_int64(wb, "duration", (int64_t)rc->update_every);
+ buffer_json_member_add_int64(wb, "duration", (int64_t)rc->config.update_every);
buffer_json_object_close(wb);
}
}
diff --git a/web/api/formatters/rrdset2json.h b/src/web/api/formatters/rrdset2json.h
index 8b325c65d..8b325c65d 100644
--- a/web/api/formatters/rrdset2json.h
+++ b/src/web/api/formatters/rrdset2json.h
diff --git a/src/web/api/formatters/ssv/README.md b/src/web/api/formatters/ssv/README.md
new file mode 100644
index 000000000..2e9dd3886
--- /dev/null
+++ b/src/web/api/formatters/ssv/README.md
@@ -0,0 +1,63 @@
+<!--
+title: "SSV formatter"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/formatters/ssv/README.md
+sidebar_label: "SSV formatter"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Formatters"
+-->
+
+# SSV formatter
+
+The SSV formatter sums all dimensions in [results of database queries](https://github.com/netdata/netdata/blob/master/src/web/api/queries/README.md)
+to a single value and returns a list of such values showing how it changes through time.
+
+It supports the following formats:
+
+| format | content type | description |
+|:----:|:----------:|:----------|
+| `ssv` | text/plain | a space separated list of values |
+| `ssvcomma` | text/plain | a comma separated list of values |
+| `array` | application/json | a JSON array |
+
+The SSV formatter respects the following API `&options=`:
+
+| option | supported | description |
+| :----:|:-------:|:----------|
+| `nonzero` | yes | to return only the dimensions that have at least a non-zero value |
+| `flip` | yes | to return the numbers older to newer (the default is newer to older) |
+| `percent` | yes | to replace all values with their percentage over the row total |
+| `abs` | yes | to turn all values positive, before using them |
+| `min2max` | yes | to return the delta from the minimum value to the maximum value (across dimensions) |
+
+## Examples
+
+Get the average system CPU utilization of the last hour, in 6 values (one every 10 minutes):
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.cpu&format=ssv&after=-3600&points=6&group=average'
+1.741352 1.6800467 1.769411 1.6761112 1.629862 1.6807968
+```
+
+---
+
+Get the total mysql bandwidth (in + out) for the last hour, in 6 values (one every 10 minutes):
+
+Netdata returns bandwidth in `kilobits`.
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=mysql_local.net&format=ssvcomma&after=-3600&points=6&group=sum&options=abs'
+72618.7936215,72618.778889,72618.788084,72618.9195918,72618.7760612,72618.6712421
+```
+
+---
+
+Get the web server max connections for the last hour, in 12 values (one every 5 minutes)
+in a JSON array:
+
+```bash
+# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=nginx_local.connections&format=array&after=-3600&points=12&group=max'
+[278,258,268,239,259,260,243,266,278,318,264,258]
+```
+
+
diff --git a/web/api/formatters/ssv/ssv.c b/src/web/api/formatters/ssv/ssv.c
index 2eb26b459..2eb26b459 100644
--- a/web/api/formatters/ssv/ssv.c
+++ b/src/web/api/formatters/ssv/ssv.c
diff --git a/web/api/formatters/ssv/ssv.h b/src/web/api/formatters/ssv/ssv.h
index f7d4a9548..f7d4a9548 100644
--- a/web/api/formatters/ssv/ssv.h
+++ b/src/web/api/formatters/ssv/ssv.h
diff --git a/src/web/api/formatters/value/README.md b/src/web/api/formatters/value/README.md
new file mode 100644
index 000000000..3599a836e
--- /dev/null
+++ b/src/web/api/formatters/value/README.md
@@ -0,0 +1,28 @@
+<!--
+title: "Value formatter"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/formatters/value/README.md
+sidebar_label: "Value formatter"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Formatters"
+-->
+
+# Value formatter
+
+The Value formatter presents [results of database queries](https://github.com/netdata/netdata/blob/master/src/web/api/queries/README.md) as a single value.
+
+To calculate the single value to be returned, it sums the values of all dimensions.
+
+The Value formatter respects the following API `&options=`:
+
+| option | supported | description |
+|:----: |:-------: |:---------- |
+| `percent` | yes | to replace all values with their percentage over the row total|
+| `abs` | yes | to turn all values positive, before using them |
+| `min2max` | yes | to return the delta from the minimum value to the maximum value (across dimensions)|
+
+The Value formatter is not exposed by the API by itself.
+Instead it is used by the [`ssv`](https://github.com/netdata/netdata/blob/master/src/web/api/formatters/ssv/README.md) formatter
+and [health monitoring queries](https://github.com/netdata/netdata/blob/master/src/health/README.md).
+
+
diff --git a/web/api/formatters/value/value.c b/src/web/api/formatters/value/value.c
index 1d07f62f6..0ec1b1265 100644
--- a/web/api/formatters/value/value.c
+++ b/src/web/api/formatters/value/value.c
@@ -2,7 +2,6 @@
#include "value.h"
-
inline NETDATA_DOUBLE rrdr2value(RRDR *r, long i, RRDR_OPTIONS options, int *all_values_are_null, NETDATA_DOUBLE *anomaly_rate) {
size_t c;
@@ -10,61 +9,64 @@ inline NETDATA_DOUBLE rrdr2value(RRDR *r, long i, RRDR_OPTIONS options, int *all
RRDR_VALUE_FLAGS *co = &r->o[ i * r->d ];
NETDATA_DOUBLE *ar = &r->ar[ i * r->d ];
- NETDATA_DOUBLE sum = 0, min = 0, max = 0, v;
- int all_null = 1, init = 1;
+ NETDATA_DOUBLE sum = 0, min = NAN, max = NAN, v = NAN;
+ size_t dims = 0;
NETDATA_DOUBLE total_anomaly_rate = 0;
// for each dimension
for (c = 0; c < r->d ; c++) {
- if(!rrdr_dimension_should_be_exposed(r->od[c], options))
+ if(unlikely(!rrdr_dimension_should_be_exposed(r->od[c], options)))
+ continue;
+
+ if(unlikely((co[c] & RRDR_VALUE_EMPTY)))
continue;
NETDATA_DOUBLE n = cn[c];
- if(unlikely(init)) {
- if(n > 0) {
- min = 0;
- max = n;
- }
- else {
- min = n;
- max = 0;
- }
- init = 0;
- }
+ if(unlikely(!dims))
+ min = max = n;
- if(likely(!(co[c] & RRDR_VALUE_EMPTY))) {
- all_null = 0;
- sum += n;
- }
+ sum += n;
- if(n < min) min = n;
- if(n > max) max = n;
+ if (n < min) min = n;
+ if (n > max) max = n;
total_anomaly_rate += ar[c];
- }
- if(anomaly_rate) {
- if(!r->d) *anomaly_rate = 0;
- else *anomaly_rate = total_anomaly_rate / (NETDATA_DOUBLE)r->d;
+ dims++;
}
- if(unlikely(all_null)) {
- if(likely(all_values_are_null))
+ if(!dims) {
+ if(anomaly_rate)
+ *anomaly_rate = 0;
+
+ if(all_values_are_null)
*all_values_are_null = 1;
- return 0;
- }
- else {
- if(likely(all_values_are_null))
- *all_values_are_null = 0;
+
+ return (options & RRDR_OPTION_NULL2ZERO) ? 0 : NAN;
}
- if(options & RRDR_OPTION_MIN2MAX)
+ if(anomaly_rate)
+ *anomaly_rate = total_anomaly_rate / (NETDATA_DOUBLE)dims;
+
+ if(all_values_are_null)
+ *all_values_are_null = 0;
+
+ if(options & RRDR_OPTION_DIMS_MIN2MAX)
v = max - min;
+ else if(options & RRDR_OPTION_DIMS_AVERAGE)
+ v = sum / (NETDATA_DOUBLE)dims;
+ else if(options & RRDR_OPTION_DIMS_MIN)
+ v = min;
+ else if(options & RRDR_OPTION_DIMS_MAX)
+ v = max;
else
v = sum;
+ if((options & RRDR_OPTION_NULL2ZERO) && (isnan(v) || isinf(v)))
+ v = 0;
+
return v;
}
diff --git a/web/api/formatters/value/value.h b/src/web/api/formatters/value/value.h
index 072ca14f8..072ca14f8 100644
--- a/web/api/formatters/value/value.h
+++ b/src/web/api/formatters/value/value.h
diff --git a/src/web/api/health/README.md b/src/web/api/health/README.md
new file mode 100644
index 000000000..7e818c68f
--- /dev/null
+++ b/src/web/api/health/README.md
@@ -0,0 +1,222 @@
+<!--
+title: "Health API Calls"
+date: 2020-04-27
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/health/README.md
+sidebar_label: "Health API Calls"
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api"
+-->
+
+# Health API Calls
+
+## Health Read API
+
+### Enabled Alerts
+
+Netdata enables alerts on demand, i.e. when the chart they should be linked to starts collecting data. So, although many
+more alerts are configured, only the useful ones are enabled.
+
+To get the list of all enabled alerts, open your browser and navigate to `http://NODE:19999/api/v1/alarms?all`,
+replacing `NODE` with the IP address or hostname for your Agent dashboard.
+
+### Raised Alerts
+
+This API call will return the alerts currently in WARNING or CRITICAL state.
+
+`http://NODE:19999/api/v1/alarms`
+
+### Event Log
+
+The size of the alert log is configured in `netdata.conf`. There are 2 settings: the event history kept in the DB (in seconds), and the in memory size of the alert log.
+
+```
+[health]
+ in memory max health log entries = 1000
+ health log history = 432000
+```
+
+The API call retrieves all entries of the alert log:
+
+`http://NODE:19999/api/v1/alarm_log`
+
+### Alert Log Incremental Updates
+
+`http://NODE:19999/api/v1/alarm_log?after=UNIQUEID`
+
+The above returns all the events in the alert log that occurred after UNIQUEID (you poll it once without `after=`, remember the last UNIQUEID of the returned set, which you give back to get incrementally the next events).
+
+### Alert badges
+
+The following will return an SVG badge of the alert named `NAME`, attached to the chart named `CHART`.
+
+`http://NODE:19999/api/v1/badge.svg?alarm=NAME&chart=CHART`
+
+## Health Management API
+
+Netdata v1.12 and beyond provides a command API to control health checks and notifications at runtime. The feature is especially useful for maintenance periods, during which you receive meaningless alerts.
+From Netdata v1.16.0 and beyond, the configuration controlled via the API commands is [persisted across Netdata restarts](#persistence).
+
+Specifically, the API allows you to:
+
+- Disable health checks completely. Alert conditions will not be evaluated at all and no entries will be added to the alert log.
+- Silence alert notifications. Alert conditions will be evaluated, the alerts will appear in the log and the Netdata UI will show the alerts as active, but no notifications will be sent.
+- Disable or Silence specific alerts that match selectors on alert/template name, chart, context, and host.
+
+The API is available by default, but it is protected by an `api authorization token` that is stored in the file you will see in the following entry of `http://NODE:19999/netdata.conf`:
+
+```
+[registry]
+ # netdata management api key file = /var/lib/netdata/netdata.api.key
+```
+
+You can access the API via GET requests, by adding the bearer token to an `Authorization` http header, like this:
+
+```
+curl "http://NODE:19999/api/v1/manage/health?cmd=RESET" -H "X-Auth-Token: Mytoken"
+```
+
+By default access to the health management API is only allowed from `localhost`. Accessing the API from anything else will return a 403 error with the message `You are not allowed to access this resource.`. You can change permissions by editing the `allow management from` variable in `netdata.conf` within the [web] section. See [web server access lists](https://github.com/netdata/netdata/blob/master/src/web/server/README.md#access-lists) for more information.
+
+The command `RESET` just returns Netdata to the default operation, with all health checks and notifications enabled.
+If you've configured and entered your token correctly, you should see the plain text response `All health checks and notifications are enabled`.
+
+### Disable or silence all alerts
+
+If all you need is temporarily disable all health checks, then you issue the following before your maintenance period starts:
+
+```sh
+curl "http://NODE:19999/api/v1/manage/health?cmd=DISABLE%20ALL" -H "X-Auth-Token: Mytoken"
+```
+
+The effect of disabling health checks is that the alert criteria are not evaluated at all and nothing is written in the alert log.
+If you want the health checks to be running but to not receive any notifications during your maintenance period, you can instead use this:
+
+```sh
+curl "http://NODE:19999/api/v1/manage/health?cmd=SILENCE%20ALL" -H "X-Auth-Token: Mytoken"
+```
+
+Alerts may then still be raised and logged in Netdata, so you'll be able to see them via the UI.
+
+Regardless of the option you choose, at the end of your maintenance period you revert to the normal state via the RESET command.
+
+```sh
+ curl "http://NODE:19999/api/v1/manage/health?cmd=RESET" -H "X-Auth-Token: Mytoken"
+```
+
+### Disable or silence specific alerts
+
+If you do not wish to disable/silence all alerts, then the `DISABLE ALL` and `SILENCE ALL` commands can't be used.
+Instead, the following commands expect that one or more alert selectors will be added, so that only alerts that match the selectors are disabled or silenced.
+
+- `DISABLE` : Set the mode to disable health checks.
+- `SILENCE` : Set the mode to silence notifications.
+
+You will normally put one of these commands in the same request with your first alert selector, but it's possible to issue them separately as well.
+You will get a warning in the response, if a selector was added without a SILENCE/DISABLE command, or vice versa.
+
+Each request can specify a single alert `selector`, with one or more `selection criteria`.
+A single alert will match a `selector` if all selection criteria match the alert.
+You can add as many selectors as you like.
+In essence, the rule is: IF (alert matches all the criteria in selector1 OR all the criteria in selector2 OR ...) THEN apply the DISABLE or SILENCE command.
+
+To clear all selectors and reset the mode to default, use the `RESET` command.
+
+The following example silences notifications for all the alerts with context=load:
+
+```
+curl "http://NODE:19999/api/v1/manage/health?cmd=SILENCE&context=load" -H "X-Auth-Token: Mytoken"
+```
+
+#### Selection criteria
+
+The `selection criteria` are key/value pairs, in the format `key : value`, where value is a Netdata [simple pattern](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md). This means that you can create very powerful selectors (you will rarely need more than one or two).
+
+The accepted keys for the `selection criteria` are the following:
+
+- `alarm` : The expression provided will match both `alarm` and `template` names.
+- `chart` : Chart ids/names, as shown on the dashboard. These will match the `on` entry of a configured `alarm`.
+- `context` : Chart context, as shown on the dashboard. These will match the `on` entry of a configured `template`.
+- `hosts` : The hostnames that will need to match.
+
+You can add any of the selection criteria you need on the request, to ensure that only the alerts you are interested in are matched and disabled/silenced. e.g. there is no reason to add `hosts: *`, if you want the criteria to be applied to alerts for all hosts.
+
+Example 1: Disable all health checks for context = `random`
+
+```
+http://NODE:19999/api/v1/manage/health?cmd=DISABLE&context=random
+```
+
+Example 2: Silence all alerts and templates with name starting with `out_of` on host `myhost`
+
+```
+http://NODE:19999/api/v1/manage/health?cmd=SILENCE&alarm=out_of*&hosts=myhost
+```
+
+### List silencers
+
+The command `LIST` was added in Netdata v1.16.0 and returns a JSON with the current status of the silencers.
+
+```
+ curl "http://NODE:19999/api/v1/manage/health?cmd=LIST" -H "X-Auth-Token: Mytoken"
+```
+
+As an example, the following response shows that we have two silencers configured, one for an alert called `samplealert` and one for alerts with context `random` on host `myhost`
+
+```
+json
+{
+ "all": false,
+ "type": "SILENCE",
+ "silencers": [
+ {
+ "alarm": "samplealert"
+ },
+ {
+ "context": "random",
+ "hosts": "myhost"
+ }
+ ]
+}
+```
+
+The response below shows that we have disabled all health checks.
+
+```
+json
+{
+ "all": true,
+ "type": "DISABLE",
+ "silencers": []
+}
+```
+
+### Responses
+
+- "Auth Error" : Token authentication failed
+- "All alarm notifications are silenced" : Successful response to cmd=SILENCE ALL
+- "All health checks are disabled" : Successful response to cmd=DISABLE ALL
+- "All health checks and notifications are enabled" : Successful response to cmd=RESET
+- "Health checks disabled for alarms matching the selectors" : Added to the response for a cmd=DISABLE
+- "Alarm notifications silenced for alarms matching the selectors" : Added to the response for a cmd=SILENCE
+- "Alarm selector added" : Added to the response when a new selector is added
+- "Invalid key. Ignoring it." : Wrong name of a parameter. Added to the response and ignored.
+- "WARNING: Added alarm selector to silence/disable alarms without a SILENCE or DISABLE command." : Added to the response if a selector is added without a selector-specific command.
+- "WARNING: SILENCE or DISABLE command is ineffective without defining any alarm selectors." : Added to the response if a selector-specific command is issued without a selector.
+
+### Persistence
+
+From Netdata v1.16.0 and beyond, the silencers configuration is persisted to disk and loaded when Netdata starts.
+The JSON string returned by the [LIST command](#list-silencers) is automatically saved to the `silencers file`, every time a command alters the silencers configuration.
+The file's location is configurable in `netdata.conf`. The default is shown below:
+
+```
+[health]
+ # silencers file = /var/lib/netdata/health.silencers.json
+```
+
+### Further reading
+
+The test script under [tests/health_mgmtapi](https://github.com/netdata/netdata/blob/master/tests/health_mgmtapi/README.md) contains a series of tests that you can either run or read through to understand the various calls and responses better.
+
+
diff --git a/src/web/api/http_auth.c b/src/web/api/http_auth.c
new file mode 100644
index 000000000..3afab12e9
--- /dev/null
+++ b/src/web/api/http_auth.c
@@ -0,0 +1,90 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "http_auth.h"
+
+#define BEARER_TOKEN_EXPIRATION 86400
+
+bool netdata_is_protected_by_bearer = false; // this is controlled by cloud, at the point the agent logs in - this should also be saved to /var/lib/netdata
+static DICTIONARY *netdata_authorized_bearers = NULL;
+
+struct bearer_token {
+ uuid_t cloud_account_id;
+ char cloud_user_name[CLOUD_USER_NAME_LENGTH];
+ HTTP_ACCESS access;
+ HTTP_USER_ROLE user_role;
+ time_t created_s;
+ time_t expires_s;
+};
+
+bool web_client_bearer_token_auth(struct web_client *w, const char *v) {
+ if(!uuid_parse_flexi(v, w->auth.bearer_token)) {
+ char uuid_str[UUID_COMPACT_STR_LEN];
+ uuid_unparse_lower_compact(w->auth.bearer_token, uuid_str);
+
+ struct bearer_token *z = dictionary_get(netdata_authorized_bearers, uuid_str);
+ if (z && z->expires_s > now_monotonic_sec()) {
+ strncpyz(w->auth.client_name, z->cloud_user_name, sizeof(w->auth.client_name) - 1);
+ uuid_copy(w->auth.cloud_account_id, z->cloud_account_id);
+ web_client_set_permissions(w, z->access, z->user_role, WEB_CLIENT_FLAG_AUTH_BEARER);
+ return true;
+ }
+ }
+ else
+ nd_log(NDLS_DAEMON, NDLP_NOTICE, "Invalid bearer token '%s' received.", v);
+
+ return false;
+}
+
+static void bearer_token_cleanup(void) {
+ static time_t attempts = 0;
+
+ if(++attempts % 1000 != 0)
+ return;
+
+ time_t now_s = now_monotonic_sec();
+
+ struct bearer_token *z;
+ dfe_start_read(netdata_authorized_bearers, z) {
+ if(z->expires_s < now_s)
+ dictionary_del(netdata_authorized_bearers, z_dfe.name);
+ }
+ dfe_done(z);
+
+ dictionary_garbage_collect(netdata_authorized_bearers);
+}
+
+void bearer_tokens_init(void) {
+ netdata_authorized_bearers = dictionary_create_advanced(
+ DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE,
+ NULL, sizeof(struct bearer_token));
+}
+
+time_t bearer_create_token(uuid_t *uuid, struct web_client *w) {
+ char uuid_str[UUID_COMPACT_STR_LEN];
+
+ uuid_generate_random(*uuid);
+ uuid_unparse_lower_compact(*uuid, uuid_str);
+
+ struct bearer_token t = { 0 }, *z;
+ z = dictionary_set(netdata_authorized_bearers, uuid_str, &t, sizeof(t));
+ if(!z->created_s) {
+ z->created_s = now_monotonic_sec();
+ z->expires_s = z->created_s + BEARER_TOKEN_EXPIRATION;
+ z->user_role = w->user_role;
+ z->access = w->access;
+ uuid_copy(z->cloud_account_id, w->auth.cloud_account_id);
+ strncpyz(z->cloud_user_name, w->auth.client_name, sizeof(z->cloud_account_id) - 1);
+ }
+
+ bearer_token_cleanup();
+
+ return now_realtime_sec() + BEARER_TOKEN_EXPIRATION;
+}
+
+bool extract_bearer_token_from_request(struct web_client *w, char *dst, size_t dst_len) {
+ if(!web_client_flag_check(w, WEB_CLIENT_FLAG_AUTH_BEARER) || dst_len != UUID_STR_LEN)
+ return false;
+
+ uuid_unparse_lower(w->auth.bearer_token, dst);
+ return true;
+}
diff --git a/src/web/api/http_auth.h b/src/web/api/http_auth.h
new file mode 100644
index 000000000..ef06728f2
--- /dev/null
+++ b/src/web/api/http_auth.h
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef NETDATA_HTTP_AUTH_H
+#define NETDATA_HTTP_AUTH_H
+
+#include "web_api.h"
+
+struct web_client;
+
+extern bool netdata_is_protected_by_bearer;
+
+bool extract_bearer_token_from_request(struct web_client *w, char *dst, size_t dst_len);
+
+time_t bearer_create_token(uuid_t *uuid, struct web_client *w);
+bool web_client_bearer_token_auth(struct web_client *w, const char *v);
+
+static inline bool http_access_user_has_enough_access_level_for_endpoint(HTTP_ACCESS user, HTTP_ACCESS endpoint) {
+ return ((user & endpoint) == endpoint);
+}
+
+#endif //NETDATA_HTTP_AUTH_H
diff --git a/src/web/api/http_header.c b/src/web/api/http_header.c
new file mode 100644
index 000000000..5b0b1b651
--- /dev/null
+++ b/src/web/api/http_header.c
@@ -0,0 +1,254 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "http_header.h"
+
+static void web_client_enable_deflate(struct web_client *w, bool gzip) {
+ if(gzip)
+ web_client_flag_set(w, WEB_CLIENT_ENCODING_GZIP);
+ else
+ web_client_flag_set(w, WEB_CLIENT_ENCODING_DEFLATE);
+
+ if(!web_client_check_conn_unix(w) && !web_client_check_conn_tcp(w) && !web_client_check_conn_cloud(w))
+ return;
+
+ if(unlikely(w->response.zinitialized)) {
+ // compression has already been initialized for this client.
+ return;
+ }
+
+ if(unlikely(w->response.sent)) {
+ netdata_log_error("%llu: Cannot enable compression in the middle of a conversation.", w->id);
+ return;
+ }
+
+ w->response.zstream.zalloc = Z_NULL;
+ w->response.zstream.zfree = Z_NULL;
+ w->response.zstream.opaque = Z_NULL;
+
+ w->response.zstream.next_in = (Bytef *)w->response.data->buffer;
+ w->response.zstream.avail_in = 0;
+ w->response.zstream.total_in = 0;
+
+ w->response.zstream.next_out = w->response.zbuffer;
+ w->response.zstream.avail_out = 0;
+ w->response.zstream.total_out = 0;
+
+ w->response.zstream.zalloc = Z_NULL;
+ w->response.zstream.zfree = Z_NULL;
+ w->response.zstream.opaque = Z_NULL;
+
+ // Select GZIP compression: windowbits = 15 + 16 = 31
+ if(deflateInit2(&w->response.zstream, web_gzip_level, Z_DEFLATED, 15 + ((gzip)?16:0), 8, web_gzip_strategy) != Z_OK) {
+ netdata_log_error("%llu: Failed to initialize zlib. Proceeding without compression.", w->id);
+ return;
+ }
+
+ w->response.zsent = 0;
+ w->response.zoutput = true;
+ w->response.zinitialized = true;
+
+ if(!web_client_check_conn_cloud(w))
+ // cloud sends the entire response at once, not in chunks
+ web_client_flag_set(w, WEB_CLIENT_CHUNKED_TRANSFER);
+
+ netdata_log_debug(D_DEFLATE, "%llu: Initialized compression.", w->id);
+}
+
+static void http_header_origin(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ freez(w->origin);
+ w->origin = strdupz(v);
+}
+
+static void http_header_connection(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ if(strcasestr(v, "keep-alive"))
+ web_client_enable_keepalive(w);
+}
+
+static void http_header_dnt(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ if(respect_web_browser_do_not_track_policy) {
+ if (*v == '0') web_client_disable_donottrack(w);
+ else if (*v == '1') web_client_enable_donottrack(w);
+ }
+}
+
+static void http_header_user_agent(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ if(w->mode == HTTP_REQUEST_MODE_STREAM) {
+ freez(w->user_agent);
+ w->user_agent = strdupz(v);
+ }
+}
+
+static void http_header_x_auth_token(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ freez(w->auth_bearer_token);
+ w->auth_bearer_token = strdupz(v);
+}
+
+static void http_header_host(struct web_client *w, const char *v, size_t len) {
+ char buffer[NI_MAXHOST];
+ strncpyz(buffer, v, (len < sizeof(buffer) - 1 ? len : sizeof(buffer) - 1));
+ freez(w->server_host);
+ w->server_host = strdupz(buffer);
+}
+
+static void http_header_accept_encoding(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ if(web_enable_gzip) {
+ if(strcasestr(v, "gzip"))
+ web_client_enable_deflate(w, true);
+
+ // does not seem to work
+ // else if(strcasestr(v, "deflate"))
+ // web_client_enable_deflate(w, 0);
+ }
+}
+
+static void http_header_x_forwarded_host(struct web_client *w, const char *v, size_t len) {
+ char buffer[NI_MAXHOST];
+ strncpyz(buffer, v, (len < sizeof(buffer) - 1 ? len : sizeof(buffer) - 1));
+ freez(w->forwarded_host);
+ w->forwarded_host = strdupz(buffer);
+}
+
+static void http_header_x_forwarded_for(struct web_client *w, const char *v, size_t len) {
+ char buffer[NI_MAXHOST];
+ strncpyz(buffer, v, (len < sizeof(buffer) - 1 ? len : sizeof(buffer) - 1));
+ freez(w->forwarded_for);
+ w->forwarded_for = strdupz(buffer);
+}
+
+static void http_header_x_transaction_id(struct web_client *w, const char *v, size_t len) {
+ char buffer[UUID_STR_LEN * 2];
+ strncpyz(buffer, v, (len < sizeof(buffer) - 1 ? len : sizeof(buffer) - 1));
+ uuid_parse_flexi(buffer, w->transaction); // will not alter w->transaction if it fails
+}
+
+static void http_header_x_netdata_account_id(struct web_client *w, const char *v, size_t len) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_CLOUD) && w->acl & HTTP_ACL_ACLK) {
+ char buffer[UUID_STR_LEN * 2];
+ strncpyz(buffer, v, (len < sizeof(buffer) - 1 ? len : sizeof(buffer) - 1));
+ uuid_parse_flexi(buffer, w->auth.cloud_account_id); // will not alter w->cloud_account_id if it fails
+ }
+}
+
+static void http_header_x_netdata_role(struct web_client *w, const char *v, size_t len) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_CLOUD) && w->acl & HTTP_ACL_ACLK) {
+ char buffer[100];
+ strncpyz(buffer, v, (len < sizeof(buffer) - 1 ? len : sizeof(buffer) - 1));
+ if (strcasecmp(buffer, "admin") == 0)
+ w->user_role = HTTP_USER_ROLE_ADMIN;
+ else if(strcasecmp(buffer, "manager") == 0)
+ w->user_role = HTTP_USER_ROLE_MANAGER;
+ else if(strcasecmp(buffer, "troubleshooter") == 0)
+ w->user_role = HTTP_USER_ROLE_TROUBLESHOOTER;
+ else if(strcasecmp(buffer, "observer") == 0)
+ w->user_role = HTTP_USER_ROLE_OBSERVER;
+ else if(strcasecmp(buffer, "member") == 0)
+ w->user_role = HTTP_USER_ROLE_MEMBER;
+ else if(strcasecmp(buffer, "billing") == 0)
+ w->user_role = HTTP_USER_ROLE_BILLING;
+ else
+ w->user_role = HTTP_USER_ROLE_MEMBER;
+ }
+}
+
+static void http_header_x_netdata_permissions(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_CLOUD) && w->acl & HTTP_ACL_ACLK) {
+ HTTP_ACCESS access = http_access_from_hex(v);
+ web_client_set_permissions(w, access, w->user_role, WEB_CLIENT_FLAG_AUTH_CLOUD);
+ }
+}
+
+static void http_header_x_netdata_user_name(struct web_client *w, const char *v, size_t len) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_CLOUD) && w->acl & HTTP_ACL_ACLK) {
+ strncpyz(w->auth.client_name, v, (len < sizeof(w->auth.client_name) - 1 ? len : sizeof(w->auth.client_name) - 1));
+ }
+}
+
+static void http_header_x_netdata_auth(struct web_client *w, const char *v, size_t len __maybe_unused) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_CLOUD) && w->acl & HTTP_ACL_ACLK)
+ // we don't need authorization bearer when the request comes from netdata cloud
+ return;
+
+ if(strncasecmp(v, "Bearer ", 7) == 0) {
+ v = &v[7];
+ while(*v && isspace(*v)) v++;
+ web_client_bearer_token_auth(w, v);
+ }
+}
+
+struct {
+ uint32_t hash;
+ const char *key;
+ void (*cb)(struct web_client *w, const char *value, size_t value_len);
+} supported_headers[] = {
+ { .hash = 0, .key = "Origin", .cb = http_header_origin },
+ { .hash = 0, .key = "Connection", .cb = http_header_connection },
+ { .hash = 0, .key = "DNT", .cb = http_header_dnt },
+ { .hash = 0, .key = "User-Agent", .cb = http_header_user_agent},
+ { .hash = 0, .key = "X-Auth-Token", .cb = http_header_x_auth_token },
+ { .hash = 0, .key = "Host", .cb = http_header_host },
+ { .hash = 0, .key = "Accept-Encoding", .cb = http_header_accept_encoding },
+ { .hash = 0, .key = "X-Forwarded-Host", .cb = http_header_x_forwarded_host },
+ { .hash = 0, .key = "X-Forwarded-For", .cb = http_header_x_forwarded_for },
+ { .hash = 0, .key = "X-Transaction-Id", .cb = http_header_x_transaction_id },
+ { .hash = 0, .key = "X-Netdata-Account-Id", .cb = http_header_x_netdata_account_id },
+ { .hash = 0, .key = "X-Netdata-Role", .cb = http_header_x_netdata_role },
+ { .hash = 0, .key = "X-Netdata-Permissions", .cb = http_header_x_netdata_permissions },
+ { .hash = 0, .key = "X-Netdata-User-Name", .cb = http_header_x_netdata_user_name },
+ { .hash = 0, .key = "X-Netdata-Auth", .cb = http_header_x_netdata_auth },
+
+ // for historical reasons.
+ // there are a few nightly versions of netdata UI that incorrectly use this instead of X-Netdata-Auth
+ { .hash = 0, .key = "Authorization", .cb = http_header_x_netdata_auth },
+
+ // terminator
+ { .hash = 0, .key = NULL, .cb = NULL }
+};
+
+char *http_header_parse_line(struct web_client *w, char *s) {
+ if(unlikely(!supported_headers[0].hash)) {
+ // initialize the hashes, the first time it runs
+
+ for(size_t i = 0; supported_headers[i].key ;i++)
+ supported_headers[i].hash = simple_uhash(supported_headers[i].key);
+ }
+
+ char *e = s;
+
+ // find the colon
+ while(*e && *e != ':') e++;
+ if(!*e) return e;
+
+ // get the name
+ *e = '\0';
+
+ // find the value
+ char *v = e + 1, *ve;
+
+ // skip leading spaces from value
+ while(*v == ' ') v++;
+ ve = v;
+
+ // find the \r
+ while(*ve && *ve != '\r') ve++;
+ if(!*ve || ve[1] != '\n') {
+ *e = ':';
+ return ve;
+ }
+
+ // terminate the value
+ *ve = '\0';
+
+ uint32_t hash = simple_uhash(s);
+
+ for(size_t i = 0; supported_headers[i].key ;i++) {
+ if(likely(hash != supported_headers[i].hash || strcasecmp(s, supported_headers[i].key) != 0))
+ continue;
+
+ supported_headers[i].cb(w, v, ve - v);
+ break;
+ }
+
+ *e = ':';
+ *ve = '\r';
+ return ve;
+}
diff --git a/src/web/api/http_header.h b/src/web/api/http_header.h
new file mode 100644
index 000000000..15d14d7f1
--- /dev/null
+++ b/src/web/api/http_header.h
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef NETDATA_HTTP_HEADER_H
+#define NETDATA_HTTP_HEADER_H
+
+#include "web_api.h"
+
+struct web_client;
+char *http_header_parse_line(struct web_client *w, char *s);
+
+#endif //NETDATA_HTTP_HEADER_H
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/test/executable b/src/web/api/ilove/README.md
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/test/executable
+++ b/src/web/api/ilove/README.md
diff --git a/web/api/ilove/ilove.c b/src/web/api/ilove/ilove.c
index 67489ec42..67489ec42 100644
--- a/web/api/ilove/ilove.c
+++ b/src/web/api/ilove/ilove.c
diff --git a/web/api/ilove/ilove.h b/src/web/api/ilove/ilove.h
index 010c19c6b..010c19c6b 100644
--- a/web/api/ilove/ilove.h
+++ b/src/web/api/ilove/ilove.h
diff --git a/web/api/ilove/measure-text.js b/src/web/api/ilove/measure-text.js
index e2a2a6e94..e2a2a6e94 100644
--- a/web/api/ilove/measure-text.js
+++ b/src/web/api/ilove/measure-text.js
diff --git a/web/api/netdata-swagger.json b/src/web/api/netdata-swagger.json
index 6ed3e08b8..3017f5d5c 100644
--- a/web/api/netdata-swagger.json
+++ b/src/web/api/netdata-swagger.json
@@ -3,7 +3,7 @@
"info": {
"title": "Netdata API",
"description": "Real-time performance and health monitoring.",
- "version": "1.38",
+ "version": "v1-rolling",
"contact": {
"name": "Netdata Agent API",
"email": "info@netdata.cloud",
@@ -373,6 +373,201 @@
}
}
},
+ "/api/v1/config": {
+ "get": {
+ "operationId": "getConfig",
+ "tags": [
+ "dyncfg"
+ ],
+ "description": "Get dynamic configuration information.\n",
+ "parameters": [
+ {
+ "name": "action",
+ "in": "query",
+ "description": "The type of information required",
+ "schema": {
+ "type": "string",
+ "enum": [
+ "tree",
+ "schema",
+ "get",
+ "enable",
+ "disable",
+ "restart"
+ ],
+ "default": "tree"
+ }
+ },
+ {
+ "name": "id",
+ "in": "query",
+ "description": "The ID of the dynamic configuration entity",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "path",
+ "in": "query",
+ "description": "Top level path of the configuration entities, used with action 'tree'",
+ "schema": {
+ "type": "string",
+ "default": "/"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "description": "The timeout in seconds",
+ "schema": {
+ "type": "number",
+ "default": 120
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The call was successful.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/config_default_response"
+ },
+ {
+ "$ref": "#/components/schemas/config_tree"
+ },
+ {
+ "$ref": "#/components/schemas/config_schema"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Something is wrong with the request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/config_default_response"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "The configurable entity requests is not found.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/config_default_response"
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "postConfig",
+ "tags": [
+ "dyncfg"
+ ],
+ "description": "Post dynamic configuration to Netdata.\n",
+ "parameters": [
+ {
+ "name": "action",
+ "in": "query",
+ "description": "The type of action required.",
+ "schema": {
+ "type": "string",
+ "enum": [
+ "add",
+ "test",
+ "update"
+ ]
+ }
+ },
+ {
+ "name": "id",
+ "in": "query",
+ "description": "The ID of the dynamic configuration entity to configure.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "name",
+ "in": "query",
+ "description": "Name of the dynamic configuration entity, used with action 'add'",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "description": "The timeout in seconds",
+ "schema": {
+ "type": "number",
+ "default": 120
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The call was successful. This also means the configuration is currently running.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/config_default_response"
+ }
+ }
+ }
+ },
+ "202": {
+ "description": "The call was successful. The configuration has been accepted, but its status is not yet known.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/config_default_response"
+ }
+ }
+ }
+ },
+ "299": {
+ "description": "The call was successful. The configuration has been accepted, but a restart is required to apply it.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/config_default_response"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Something is wrong with the request.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/config_default_response"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "The configurable entity requests is not found.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/config_default_response"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/api/v2/data": {
"get": {
"operationId": "dataQuery2",
@@ -385,7 +580,7 @@
{
"name": "group_by",
"in": "query",
- "description": "A comma separated list of the groupings required.\nAll possible values can be combined together, except `selected`. If `selected` is given in the list, all others are ignored.\nThe order they are placed in the list is currently ignored.\n",
+ "description": "A comma separated list of the groupings required.\nAll possible values can be combined together, except `selected`. If `selected` is given in the list, all others are ignored.\nThe order they are placed in the list is currently ignored.\nThis parameter is also accepted as `group_by[0]` and `group_by[1]` when multiple grouping passes are required.\n",
"required": false,
"schema": {
"type": "array",
@@ -410,7 +605,7 @@
{
"name": "group_by_label",
"in": "query",
- "description": "A comma separated list of the label keys to group by their values. The order of the labels in the list is respected.\n",
+ "description": "A comma separated list of the label keys to group by their values. The order of the labels in the list is respected.\nThis parameter is also accepted as `group_by_label[0]` and `group_by_label[1]` when multiple grouping passes are required.\n",
"required": false,
"schema": {
"type": "string",
@@ -421,7 +616,7 @@
{
"name": "aggregation",
"in": "query",
- "description": "The aggregation function to apply when grouping metrics together.\nWhen option `raw` is given, `average` and `avg` behave like `sum` and the caller is expected to calculate the average.\n",
+ "description": "The aggregation function to apply when grouping metrics together.\nWhen option `raw` is given, `average` and `avg` behave like `sum` and the caller is expected to calculate the average.\nThis parameter is also accepted as `aggregation[0]` and `aggregation[1]` when multiple grouping passes are required.\n",
"required": false,
"schema": {
"type": "string",
@@ -430,7 +625,8 @@
"max",
"avg",
"average",
- "sum"
+ "sum",
+ "percentage"
],
"default": "average"
}
@@ -3689,8 +3885,11 @@
"type": "integer"
},
"count": {
- "description": "The number of metrics aggregated into this point. This exists only when the option `raw` is given to the query.\n",
+ "description": "The number of metrics aggregated into this point.\nThis exists only when the option `raw` is given to the query and the final aggregation point is NOT `percentage`.\n",
"type": "integer"
+ },
+ "hidden": {
+ "description": "The sum of the non-selected dimensions aggregated for this group item point.\nThis exists only when the option `raw` is given to the query and the final aggregation method is `percentage`.\n"
}
}
},
@@ -4415,7 +4614,151 @@
},
"weighted_dimension": {
"type": "number"
+ },
+ "config_schema": {
+ "type": "object",
+ "properties": {
+ "jsonSchema": {
+ "type": "object",
+ "description": "Standard JSON Schema object describing the schema of each configurable entity."
+ },
+ "uiSchema": {
+ "type": "object",
+ "description": "Schema for react-json-schema-form to drive the UI. Provides additional UI-specific configuration."
+ }
+ }
+ },
+ "config_tree": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "integer",
+ "description": "The version of dynamic configuration supported by the Netdata agent."
+ },
+ "tree": {
+ "type": "object",
+ "description": "A map of configuration entity paths, each containing one or more configurable entities.",
+ "additionalProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/config_entity"
+ }
+ }
+ },
+ "attention": {
+ "$ref": "#/components/schemas/config_attention"
+ }
+ }
+ },
+ "config_entity": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Can be 'single' for entities appearing once, 'template' for entities supporting multiple instances, or 'job' for jobs belonging to a template."
+ },
+ "status": {
+ "type": "string",
+ "description": "The current status of the entity. Values include 'accepted', 'running', 'failed', 'disabled', 'incomplete', or 'orphan'."
+ },
+ "cmds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of the possible actions supported by this entity."
+ },
+ "source_type": {
+ "type": "string",
+ "description": "The source type of the configuration (e.g., 'internal', 'stock', 'user', 'discovered', 'dyncfg')."
+ },
+ "source": {
+ "type": "string",
+ "description": "Additional information about the source, formatted as comma-separated name-value pairs."
+ },
+ "sync": {
+ "type": "boolean",
+ "description": "Indicates if this is an internal module (true) or an external plugin (false)."
+ },
+ "user_disabled": {
+ "type": "boolean",
+ "description": "True if the entity is disabled by the user."
+ },
+ "restart_required": {
+ "type": "boolean",
+ "description": "True if the entity requires a restart after addition or update."
+ },
+ "plugin_rejected": {
+ "type": "boolean",
+ "description": "True if a previously saved configuration failed to apply after a restart."
+ },
+ "payload": {
+ "type": "object",
+ "description": "Object containing at least an 'available' boolean indicating if there's a saved configuration for this entity.",
+ "properties": {
+ "available": {
+ "type": "boolean"
+ }
+ }
+ },
+ "saves": {
+ "type": "integer",
+ "description": "The number of times this configuration has been saved to disk by the dynamic configuration manager."
+ },
+ "created_ut": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The timestamp in microseconds when this dynamic configuration was first created."
+ },
+ "modified_ut": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The timestamp in microseconds when this dynamic configuration was last modified."
+ },
+ "template": {
+ "type": "string",
+ "description": "Shows the template the job belongs to, applicable when type is 'job'."
+ }
+ }
+ },
+ "config_attention": {
+ "type": "object",
+ "properties": {
+ "degraded": {
+ "type": "boolean"
+ },
+ "restart_required": {
+ "type": "integer"
+ },
+ "plugin_rejected": {
+ "type": "integer"
+ },
+ "status_failed": {
+ "type": "integer"
+ },
+ "status_incomplete": {
+ "type": "integer"
+ }
+ }
+ },
+ "config_default_response": {
+ "type": "object",
+ "properties": {
+ "status": {
+ "type": "integer",
+ "description": "The HTTP status code of the response."
+ },
+ "message": {
+ "type": "string",
+ "description": "A descriptive message about the response or the action taken."
+ },
+ "data": {
+ "type": "object",
+ "description": "The data payload of the response, contents vary depending on the specific request and action.",
+ "additionalProperties": true
+ }
+ }
}
}
}
-}
+} \ No newline at end of file
diff --git a/web/api/netdata-swagger.yaml b/src/web/api/netdata-swagger.yaml
index 7fa852f4a..ad007ba47 100644
--- a/web/api/netdata-swagger.yaml
+++ b/src/web/api/netdata-swagger.yaml
@@ -2,7 +2,7 @@ openapi: 3.0.0
info:
title: Netdata API
description: Real-time performance and health monitoring.
- version: "1.38"
+ version: "v1-rolling"
contact:
name: Netdata Agent API
email: info@netdata.cloud
@@ -226,6 +226,129 @@ paths:
description: No context id was supplied in the request.
"404":
description: No context with the given id is found.
+ /api/v1/config:
+ get:
+ operationId: getConfig
+ tags:
+ - dyncfg
+ description: |
+ Get dynamic configuration information.
+ parameters:
+ - name: action
+ in: query
+ description: The type of information required
+ schema:
+ type: string
+ enum:
+ - tree
+ - schema
+ - get
+ - enable
+ - disable
+ - restart
+ default: tree
+ - name: id
+ in: query
+ description: The ID of the dynamic configuration entity
+ schema:
+ type: string
+ - name: path
+ in: query
+ description: Top level path of the configuration entities, used with action 'tree'
+ schema:
+ type: string
+ default: '/'
+ - name: timeout
+ in: query
+ description: The timeout in seconds
+ schema:
+ type: number
+ default: 120
+ responses:
+ "200":
+ description: The call was successful.
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/config_default_response'
+ - $ref: '#/components/schemas/config_tree'
+ - $ref: "#/components/schemas/config_schema"
+ "400":
+ description: Something is wrong with the request.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config_default_response'
+ "404":
+ description: The configurable entity requests is not found.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config_default_response'
+ post:
+ operationId: postConfig
+ tags:
+ - dyncfg
+ description: |
+ Post dynamic configuration to Netdata.
+ parameters:
+ - name: action
+ in: query
+ description: The type of action required.
+ schema:
+ type: string
+ enum:
+ - add
+ - test
+ - update
+ - name: id
+ in: query
+ description: The ID of the dynamic configuration entity to configure.
+ schema:
+ type: string
+ - name: name
+ in: query
+ description: Name of the dynamic configuration entity, used with action 'add'
+ schema:
+ type: string
+ - name: timeout
+ in: query
+ description: The timeout in seconds
+ schema:
+ type: number
+ default: 120
+ responses:
+ "200":
+ description: The call was successful. This also means the configuration is currently running.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config_default_response'
+ "202":
+ description: The call was successful. The configuration has been accepted, but its status is not yet known.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config_default_response'
+ "299":
+ description: The call was successful. The configuration has been accepted, but a restart is required to apply it.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config_default_response'
+ "400":
+ description: Something is wrong with the request.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config_default_response'
+ "404":
+ description: The configurable entity requests is not found.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config_default_response'
/api/v2/data:
get:
operationId: dataQuery2
@@ -3259,3 +3382,105 @@ components:
$ref: '#/components/schemas/weighted_dimension'
weighted_dimension:
type: number
+ config_schema:
+ type: object
+ properties:
+ jsonSchema:
+ type: object
+ description: Standard JSON Schema object describing the schema of each configurable entity.
+ uiSchema:
+ type: object
+ description: Schema for react-json-schema-form to drive the UI. Provides additional UI-specific configuration.
+ config_tree:
+ type: object
+ properties:
+ version:
+ type: integer
+ description: The version of dynamic configuration supported by the Netdata agent.
+ tree:
+ type: object
+ description: A map of configuration entity paths, each containing one or more configurable entities.
+ additionalProperties:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/config_entity'
+ attention:
+ $ref: '#/components/schemas/config_attention'
+ config_entity:
+ type: object
+ properties:
+ type:
+ type: string
+ description: Can be 'single' for entities appearing once, 'template' for entities supporting multiple instances, or 'job' for jobs belonging to a template.
+ status:
+ type: string
+ description: The current status of the entity. Values include 'accepted', 'running', 'failed', 'disabled', 'incomplete', or 'orphan'.
+ cmds:
+ type: array
+ items:
+ type: string
+ description: An array of the possible actions supported by this entity.
+ source_type:
+ type: string
+ description: The source type of the configuration (e.g., 'internal', 'stock', 'user', 'discovered', 'dyncfg').
+ source:
+ type: string
+ description: Additional information about the source, formatted as comma-separated name-value pairs.
+ sync:
+ type: boolean
+ description: Indicates if this is an internal module (true) or an external plugin (false).
+ user_disabled:
+ type: boolean
+ description: True if the entity is disabled by the user.
+ restart_required:
+ type: boolean
+ description: True if the entity requires a restart after addition or update.
+ plugin_rejected:
+ type: boolean
+ description: True if a previously saved configuration failed to apply after a restart.
+ payload:
+ type: object
+ description: Object containing at least an 'available' boolean indicating if there's a saved configuration for this entity.
+ properties:
+ available:
+ type: boolean
+ saves:
+ type: integer
+ description: The number of times this configuration has been saved to disk by the dynamic configuration manager.
+ created_ut:
+ type: integer
+ format: int64
+ description: The timestamp in microseconds when this dynamic configuration was first created.
+ modified_ut:
+ type: integer
+ format: int64
+ description: The timestamp in microseconds when this dynamic configuration was last modified.
+ template:
+ type: string
+ description: Shows the template the job belongs to, applicable when type is 'job'.
+ config_attention:
+ type: object
+ properties:
+ degraded:
+ type: boolean
+ restart_required:
+ type: integer
+ plugin_rejected:
+ type: integer
+ status_failed:
+ type: integer
+ status_incomplete:
+ type: integer
+ config_default_response:
+ type: object
+ properties:
+ status:
+ type: integer
+ description: The HTTP status code of the response.
+ message:
+ type: string
+ description: A descriptive message about the response or the action taken.
+ data:
+ type: object
+ description: The data payload of the response, contents vary depending on the specific request and action.
+ additionalProperties: true
diff --git a/src/web/api/queries/README.md b/src/web/api/queries/README.md
new file mode 100644
index 000000000..e95dfbbc3
--- /dev/null
+++ b/src/web/api/queries/README.md
@@ -0,0 +1,181 @@
+# Database queries/lookup
+
+This document explains in detail the options available to retrieve data from the Netdata timeseries database in order to configure alerts, create badges or
+create custom charts.
+
+The Netdata database can be queried with the `/api/v1/data` and `/api/v1/badge.svg` REST API methods. The database is also queried from the `lookup` line
+in an [alert configuration](https://github.com/netdata/netdata/blob/master/src/health/REFERENCE.md).
+
+Every data query accepts the following parameters:
+
+|name|required|description|
+|:--:|:------:|:----------|
+|`chart`|yes|The chart to be queried.|
+|`points`|no|The number of points to be returned. Netdata can reduce number of points by applying query grouping methods. If not given, the result will have the same granularity as the database (although this relates to `gtime`).|
+|`before`|no|The absolute timestamp or the relative (to now) time the query should finish evaluating data. If not given, it defaults to the timestamp of the latest point in the database.|
+|`after`|no|The absolute timestamp or the relative (to `before`) time the query should start evaluating data. if not given, it defaults to the timestamp of the oldest point in the database.|
+|`group`|no|The grouping method to use when reducing the points the database has. If not given, it defaults to `average`.|
+|`gtime`|no|A resampling period to change the units of the metrics (i.e. setting this to `60` will convert `per second` metrics to `per minute`. If not given it defaults to granularity of the database.|
+|`options`|no|A bitmap of options that can affect the operation of the query. Only 2 options are used by the query engine: `unaligned` and `percentage`. All the other options are used by the output formatters. The default is to return aligned data.|
+|`dimensions`|no|A simple pattern to filter the dimensions to be queried. The default is to return all the dimensions of the chart.|
+
+## Operation
+
+The query engine works as follows (in this order):
+
+#### Time-frame
+
+`after` and `before` define a time-frame, accepting:
+
+- **absolute timestamps** (unix timestamps, i.e. seconds since epoch).
+
+- **relative timestamps**:
+
+ `before` is relative to now and `after` is relative to `before`.
+
+ Example: `before=-60&after=-60` evaluates to the time-frame from -120 up to -60 seconds in
+ the past, relative to the latest entry of the database of the chart.
+
+The engine verifies that the time-frame requested is available at the database:
+
+- If the requested time-frame overlaps with the database, the excess requested
+ will be truncated.
+
+- If the requested time-frame does not overlap with the database, the engine will
+ return an empty data set.
+
+At the end of this operation, `after` and `before` are absolute timestamps.
+
+#### Data grouping
+
+Database points grouping is applied when the caller requests a time-frame to be
+expressed with fewer points, compared to what is available at the database.
+
+There are 2 uses that enable this feature:
+
+- The caller requests a specific number of `points` to be returned.
+
+ For example, for a time-frame of 10 minutes, the database has 600 points (1/sec),
+ while the caller requested these 10 minutes to be expressed in 200 points.
+
+ This feature is used by Netdata dashboards when you zoom-out the charts.
+ The dashboard is requesting the number of points the user's screen has.
+ This saves bandwidth and speeds up the browser (fewer points to evaluate for drawing the charts).
+- The caller requests a **re-sampling** of the database, by setting `gtime` to any value
+ above the granularity of the chart.
+
+ For example, the chart's units is `requests/sec` and caller wants `requests/min`.
+
+Using `points` and `gtime` the query engine tries to find a best fit for **database-points**
+vs **result-points** (we call this ratio `group points`). It always tries to keep `group points`
+an integer. Keep in mind the query engine may shift `after` if required. See also the [example](#example).
+
+#### Time-frame Alignment
+
+Alignment is a very important aspect of Netdata queries. Without it, the animated
+charts on the dashboards would constantly [change shape](#example) during incremental updates.
+
+To provide consistent grouping through time, the query engine (by default) aligns
+`after` and `before` to be a multiple of `group points`.
+
+For example, if `group points` is 60 and alignment is enabled, the engine will return
+each point with durations XX:XX:00 - XX:XX:59, matching whole minutes.
+
+To disable alignment, pass `&options=unaligned` to the query.
+
+#### Query Execution
+
+To execute the query, the engine evaluates all dimensions of the chart, one after another.
+
+The engine does not evaluate dimensions that do not match the [simple pattern](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md)
+given at the `dimensions` parameter, except when `options=percentage` is given (this option
+requires all the dimensions to be evaluated to find the percentage of each dimension vs to chart
+total).
+
+For each dimension, it starts evaluating values starting at `after` (not inclusive) towards
+`before` (inclusive).
+
+For each value it calls the **grouping method** given with the `&group=` query parameter
+(the default is `average`).
+
+## Grouping methods
+
+The following grouping methods are supported. These are given all the values in the time-frame
+and they group the values every `group points`.
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=min&after=-60&label=min&value_color=blue) finds the minimum value
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=max&after=-60&label=max&value_color=lightblue) finds the maximum value
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=average&after=-60&label=average&value_color=yellow) finds the average value
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=sum&units=kilobits&after=-60&label=sum&value_color=orange) adds all the values and returns the sum
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=median&after=-60&label=median&value_color=red) sorts the values and returns the value in the middle of the list
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=stddev&after=-60&label=stddev&value_color=green) finds the standard deviation of the values
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=cv&after=-60&label=cv&units=pcent&value_color=yellow) finds the relative standard deviation (coefficient of variation) of the values
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=ses&after=-60&label=ses&value_color=brown) finds the exponential weighted moving average of the values
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=des&after=-60&label=des&value_color=blue) applies Holt-Winters double exponential smoothing
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=net.eth0&options=unaligned&dimensions=received&group=incremental_sum&after=-60&label=incremental_sum&value_color=red) finds the difference of the last vs the first value
+
+The examples shown above show live information from the `received` traffic on the `eth0` interface of the global Netdata registry.
+Inspect any of the badges to see the parameters provided. You can directly issue the request to the registry server's API yourself, e.g. by
+passing the following to get the value shown on the badge for the sum of the values within the period:
+
+```
+https://registry.my-netdata.io/api/v1/data?chart=net.eth0&options=unaligned&dimensions=received&group=sum&units=kilobits&after=-60&label=sum&points=1
+```
+
+## Further processing
+
+The result of the query engine is always a structure that has dimensions and values
+for each dimension.
+
+Formatting modules are then used to convert this result in many different formats and return it
+to the caller.
+
+## Performance
+
+The query engine is highly optimized for speed. Most of its modules implement "online"
+versions of the algorithms, requiring just one pass on the database values to produce
+the result.
+
+## Example
+
+When Netdata is reducing metrics, it tries to return always the same boundaries. So, if we want 10s averages, it will always return points starting at a `unix timestamp % 10 = 0`.
+
+Let's see why this is needed, by looking at the error case.
+
+Assume we have 5 points:
+
+|time|value|
+|:--:|:---:|
+|00:01|1|
+|00:02|2|
+|00:03|3|
+|00:04|4|
+|00:05|5|
+
+At 00:04 you ask for 2 points for 4 seconds in the past. So `group = 2`. Netdata would return:
+
+|point|time|value|
+|:---:|:--:|:---:|
+|1|00:01 - 00:02|1.5|
+|2|00:03 - 00:04|3.5|
+
+A second later the chart is to be refreshed, and makes again the same request at 00:05. These are the points that would have been returned:
+
+|point|time|value|
+|:---:|:--:|:---:|
+|1|00:02 - 00:03|2.5|
+|2|00:04 - 00:05|4.5|
+
+**Wait a moment!** The chart was shifted just one point and it changed value! Point 2 was 3.5 and when shifted to point 1 is 2.5! If you see this in a chart, it's a mess. The charts change shape constantly.
+
+For this reason, Netdata always aligns the data it returns to the `group`.
+
+When you request `points=1`, Netdata understands that you need 1 point for the whole database, so `group = 3600`. Then it tries to find the starting point which would be `timestamp % 3600 = 0` Within a database of 3600 seconds, there is one such point for sure. Then it tries to find the average of 3600 points. But, most probably it will not find 3600 of them (for just 1 out of 3600 seconds this query will return something).
+
+So, the proper way to query the database is to also set at least `after`. The following call will returns 1 point for the last complete 10-second duration (it starts at `timestamp % 10 = 0`):
+
+<http://netdata.firehol.org/api/v1/data?chart=system.cpu&points=1&after=-10&options=seconds>
+
+When you keep calling this URL, you will see that it returns one new value every 10 seconds, and the timestamp always ends with zero. Similarly, if you say `points=1&after=-5` it will always return timestamps ending with 0 or 5.
+
+
diff --git a/src/web/api/queries/average/README.md b/src/web/api/queries/average/README.md
new file mode 100644
index 000000000..1ad78bee5
--- /dev/null
+++ b/src/web/api/queries/average/README.md
@@ -0,0 +1,50 @@
+<!--
+title: "Average or Mean"
+sidebar_label: "Average or Mean"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/average/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Average or Mean
+
+> This query is available as `average` and `mean`.
+
+An average is a single number taken as representative of a list of numbers.
+
+It is calculated as:
+
+```
+average = sum(numbers) / count(numbers)
+```
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: average -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`average` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=average` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Average>.
+
+
diff --git a/web/api/queries/average/average.c b/src/web/api/queries/average/average.c
index f54dcb243..f54dcb243 100644
--- a/web/api/queries/average/average.c
+++ b/src/web/api/queries/average/average.c
diff --git a/web/api/queries/average/average.h b/src/web/api/queries/average/average.h
index 2d77cc571..2d77cc571 100644
--- a/web/api/queries/average/average.h
+++ b/src/web/api/queries/average/average.h
diff --git a/src/web/api/queries/countif/README.md b/src/web/api/queries/countif/README.md
new file mode 100644
index 000000000..a40535395
--- /dev/null
+++ b/src/web/api/queries/countif/README.md
@@ -0,0 +1,40 @@
+<!--
+title: "CountIf"
+sidebar_label: "CountIf"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/countif/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# CountIf
+
+> This query is available as `countif`.
+
+CountIf returns the percentage of points in the database that satisfy the condition supplied.
+
+The following conditions are available:
+
+- `!` or `!=` or `<>`, different than
+- `=` or `:`, equal to
+- `>`, greater than
+- `<`, less than
+- `>=`, greater or equal to
+- `<=`, less or equal to
+
+The target number and the desired condition can be set using the `group_options` query parameter, as a string, like in these examples:
+
+- `!0`, to match any number except zero.
+- `>=-3` to match any number bigger or equal to -3.
+
+. When an invalid condition is given, the web server can deliver a not accurate response.
+
+## how to use
+
+This query cannot be used in alerts.
+
+`countif` changes the units of charts. The result of the calculation is always from zero to 1, expressing the percentage of database points that matched the condition.
+
+In APIs and badges can be used like this: `&group=countif&group_options=>10` in the URL.
+
+
diff --git a/web/api/queries/countif/countif.c b/src/web/api/queries/countif/countif.c
index 8a3a1f50b..8a3a1f50b 100644
--- a/web/api/queries/countif/countif.c
+++ b/src/web/api/queries/countif/countif.c
diff --git a/web/api/queries/countif/countif.h b/src/web/api/queries/countif/countif.h
index 896b9d873..896b9d873 100644
--- a/web/api/queries/countif/countif.h
+++ b/src/web/api/queries/countif/countif.h
diff --git a/src/web/api/queries/des/README.md b/src/web/api/queries/des/README.md
new file mode 100644
index 000000000..6dc19e732
--- /dev/null
+++ b/src/web/api/queries/des/README.md
@@ -0,0 +1,77 @@
+<!--
+title: "double exponential smoothing"
+sidebar_label: "double exponential smoothing"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/des/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# double exponential smoothing
+
+Exponential smoothing is one of many window functions commonly applied to smooth data in signal
+processing, acting as low-pass filters to remove high frequency noise.
+
+Simple exponential smoothing does not do well when there is a trend in the data.
+In such situations, several methods were devised under the name "double exponential smoothing"
+or "second-order exponential smoothing.", which is the recursive application of an exponential
+filter twice, thus being termed "double exponential smoothing".
+
+In simple terms, this is like an average value, but more recent values are given more weight
+and the trend of the values influences significantly the result.
+
+> **IMPORTANT**
+>
+> It is common for `des` to provide "average" values that far beyond the minimum or the maximum
+> values found in the time-series.
+> `des` estimates these values because of it takes into account the trend.
+
+This module implements the "Holt-Winters double exponential smoothing".
+
+Netdata automatically adjusts the weight (`alpha`) and the trend (`beta`) based on the number
+of values processed, using the formula:
+
+```
+window = max(number of values, 15)
+alpha = 2 / (window + 1)
+beta = 2 / (window + 1)
+```
+
+You can change the fixed value `15` by setting in `netdata.conf`:
+
+```
+[web]
+ des max window = 15
+```
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: des -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`des` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=des` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=single+exponential+smoothing&value_color=yellow)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=des&after=-60&label=double+exponential+smoothing&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Exponential_smoothing>.
+
+
diff --git a/web/api/queries/des/des.c b/src/web/api/queries/des/des.c
index d0e234e23..d0e234e23 100644
--- a/web/api/queries/des/des.c
+++ b/src/web/api/queries/des/des.c
diff --git a/web/api/queries/des/des.h b/src/web/api/queries/des/des.h
index 3153d497c..3153d497c 100644
--- a/web/api/queries/des/des.h
+++ b/src/web/api/queries/des/des.h
diff --git a/src/web/api/queries/incremental_sum/README.md b/src/web/api/queries/incremental_sum/README.md
new file mode 100644
index 000000000..6f02abe7d
--- /dev/null
+++ b/src/web/api/queries/incremental_sum/README.md
@@ -0,0 +1,45 @@
+<!--
+title: "Incremental Sum (`incremental_sum`)"
+sidebar_label: "Incremental Sum (`incremental_sum`)"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/incremental_sum/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Incremental Sum (`incremental_sum`)
+
+This modules finds the incremental sum of a period, which `last value - first value`.
+
+The result may be positive (rising) or negative (falling) depending on the first and last values.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: incremental_sum -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`incremental_sum` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=incremental_sum` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=incremental_sum&after=-60&label=incremental+sum&value_color=orange)
+
+## References
+
+- none
+
+
diff --git a/web/api/queries/incremental_sum/incremental_sum.c b/src/web/api/queries/incremental_sum/incremental_sum.c
index 88072f297..88072f297 100644
--- a/web/api/queries/incremental_sum/incremental_sum.c
+++ b/src/web/api/queries/incremental_sum/incremental_sum.c
diff --git a/web/api/queries/incremental_sum/incremental_sum.h b/src/web/api/queries/incremental_sum/incremental_sum.h
index f110c5861..f110c5861 100644
--- a/web/api/queries/incremental_sum/incremental_sum.h
+++ b/src/web/api/queries/incremental_sum/incremental_sum.h
diff --git a/src/web/api/queries/max/README.md b/src/web/api/queries/max/README.md
new file mode 100644
index 000000000..ae634e05e
--- /dev/null
+++ b/src/web/api/queries/max/README.md
@@ -0,0 +1,42 @@
+<!--
+title: "Max"
+sidebar_label: "Max"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/max/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Max
+
+This module finds the max value in the time-frame given.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: max -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`max` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=max` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max&value_color=orange)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Sample_maximum_and_minimum>.
+
+
diff --git a/web/api/queries/max/max.c b/src/web/api/queries/max/max.c
index cc5999a29..cc5999a29 100644
--- a/web/api/queries/max/max.c
+++ b/src/web/api/queries/max/max.c
diff --git a/web/api/queries/max/max.h b/src/web/api/queries/max/max.h
index c26bb79ad..c26bb79ad 100644
--- a/web/api/queries/max/max.h
+++ b/src/web/api/queries/max/max.h
diff --git a/src/web/api/queries/median/README.md b/src/web/api/queries/median/README.md
new file mode 100644
index 000000000..e6f6c04e7
--- /dev/null
+++ b/src/web/api/queries/median/README.md
@@ -0,0 +1,64 @@
+<!--
+title: "Median"
+sidebar_label: "Median"
+description: "Use median in API queries and health entities to find the 'middle' value from a sample, eliminating any unwanted spikes in the returned metrics."
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/median/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Median
+
+The median is the value separating the higher half from the lower half of a data sample
+(a population or a probability distribution). For a data set, it may be thought of as the
+"middle" value.
+
+`median` is not an accurate average. However, it eliminates all spikes, by sorting
+all the values in a period, and selecting the value in the middle of the sorted array.
+
+Netdata also supports `trimmed-median`, which trims a percentage of the smaller and bigger values prior to finding the
+median. The following `trimmed-median` functions are defined:
+
+- `trimmed-median1`
+- `trimmed-median2`
+- `trimmed-median3`
+- `trimmed-median5`
+- `trimmed-median10`
+- `trimmed-median15`
+- `trimmed-median20`
+- `trimmed-median25`
+
+The function `trimmed-median` is an alias for `trimmed-median5`.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: median -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`median` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=median` in the URL. Additionally, a percentage may be given with
+`&group_options=` to trim all small and big values before finding the median.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=median&after=-60&label=median&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Median>.
+
+
diff --git a/web/api/queries/median/median.c b/src/web/api/queries/median/median.c
index 9865b485c..9865b485c 100644
--- a/web/api/queries/median/median.c
+++ b/src/web/api/queries/median/median.c
diff --git a/web/api/queries/median/median.h b/src/web/api/queries/median/median.h
index 3d6d35925..3d6d35925 100644
--- a/web/api/queries/median/median.h
+++ b/src/web/api/queries/median/median.h
diff --git a/src/web/api/queries/min/README.md b/src/web/api/queries/min/README.md
new file mode 100644
index 000000000..35acb8c9e
--- /dev/null
+++ b/src/web/api/queries/min/README.md
@@ -0,0 +1,42 @@
+<!--
+title: "Min"
+sidebar_label: "Min"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/min/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Min
+
+This module finds the min value in the time-frame given.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: min -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`min` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=min` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Sample_maximum_and_minimum>.
+
+
diff --git a/web/api/queries/min/min.c b/src/web/api/queries/min/min.c
index cefa7cf31..cefa7cf31 100644
--- a/web/api/queries/min/min.c
+++ b/src/web/api/queries/min/min.c
diff --git a/web/api/queries/min/min.h b/src/web/api/queries/min/min.h
index 3c53dfd1d..3c53dfd1d 100644
--- a/web/api/queries/min/min.h
+++ b/src/web/api/queries/min/min.h
diff --git a/src/web/api/queries/percentile/README.md b/src/web/api/queries/percentile/README.md
new file mode 100644
index 000000000..88abf8d5c
--- /dev/null
+++ b/src/web/api/queries/percentile/README.md
@@ -0,0 +1,62 @@
+<!--
+title: "Percentile"
+sidebar_label: "Percentile"
+description: "Use percentile in API queries and health entities to find the 'percentile' value from a sample, eliminating any unwanted spikes in the returned metrics."
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/percentile/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Percentile
+
+The percentile is the average value of a series using only the smaller N percentile of the values.
+(a population or a probability distribution).
+
+Netdata applies linear interpolation on the last point, if the percentile requested does not give a round number of
+points.
+
+The following percentile aliases are defined:
+
+- `percentile25`
+- `percentile50`
+- `percentile75`
+- `percentile80`
+- `percentile90`
+- `percentile95`
+- `percentile97`
+- `percentile98`
+- `percentile99`
+
+The default `percentile` is an alias for `percentile95`.
+Any percentile may be requested using the `group_options` query parameter.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: percentile95 -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`percentile` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=percentile` in the URL and the additional parameter `group_options`
+may be used to request any percentile (e.g. `&group=percentile&group_options=96`).
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=percentile95&after=-60&label=percentile95&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Percentile>.
diff --git a/web/api/queries/percentile/percentile.c b/src/web/api/queries/percentile/percentile.c
index da3b32696..da3b32696 100644
--- a/web/api/queries/percentile/percentile.c
+++ b/src/web/api/queries/percentile/percentile.c
diff --git a/web/api/queries/percentile/percentile.h b/src/web/api/queries/percentile/percentile.h
index 0532f9d3f..0532f9d3f 100644
--- a/web/api/queries/percentile/percentile.h
+++ b/src/web/api/queries/percentile/percentile.h
diff --git a/src/web/api/queries/query.c b/src/web/api/queries/query.c
new file mode 100644
index 000000000..fe1664068
--- /dev/null
+++ b/src/web/api/queries/query.c
@@ -0,0 +1,3728 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "query.h"
+#include "web/api/formatters/rrd2json.h"
+#include "rrdr.h"
+
+#include "average/average.h"
+#include "countif/countif.h"
+#include "incremental_sum/incremental_sum.h"
+#include "max/max.h"
+#include "median/median.h"
+#include "min/min.h"
+#include "sum/sum.h"
+#include "stddev/stddev.h"
+#include "ses/ses.h"
+#include "des/des.h"
+#include "percentile/percentile.h"
+#include "trimmed_mean/trimmed_mean.h"
+
+#define QUERY_PLAN_MIN_POINTS 10
+#define POINTS_TO_EXPAND_QUERY 5
+
+// ----------------------------------------------------------------------------
+
+static struct {
+ const char *name;
+ uint32_t hash;
+ RRDR_TIME_GROUPING value;
+ RRDR_TIME_GROUPING add_flush;
+
+ // One time initialization for the module.
+ // This is called once, when netdata starts.
+ void (*init)(void);
+
+ // Allocate all required structures for a query.
+ // This is called once for each netdata query.
+ void (*create)(struct rrdresult *r, const char *options);
+
+ // Cleanup collected values, but don't destroy the structures.
+ // This is called when the query engine switches dimensions,
+ // as part of the same query (so same chart, switching metric).
+ void (*reset)(struct rrdresult *r);
+
+ // Free all resources allocated for the query.
+ void (*free)(struct rrdresult *r);
+
+ // Add a single value into the calculation.
+ // The module may decide to cache it, or use it in the fly.
+ void (*add)(struct rrdresult *r, NETDATA_DOUBLE value);
+
+ // Generate a single result for the values added so far.
+ // More values and points may be requested later.
+ // It is up to the module to reset its internal structures
+ // when flushing it (so for a few modules it may be better to
+ // continue after a flush as if nothing changed, for others a
+ // cleanup of the internal structures may be required).
+ NETDATA_DOUBLE (*flush)(struct rrdresult *r, RRDR_VALUE_FLAGS *rrdr_value_options_ptr);
+
+ TIER_QUERY_FETCH tier_query_fetch;
+} api_v1_data_groups[] = {
+ {.name = "average",
+ .hash = 0,
+ .value = RRDR_GROUPING_AVERAGE,
+ .add_flush = RRDR_GROUPING_AVERAGE,
+ .init = NULL,
+ .create= tg_average_create,
+ .reset = tg_average_reset,
+ .free = tg_average_free,
+ .add = tg_average_add,
+ .flush = tg_average_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "avg", // alias on 'average'
+ .hash = 0,
+ .value = RRDR_GROUPING_AVERAGE,
+ .add_flush = RRDR_GROUPING_AVERAGE,
+ .init = NULL,
+ .create= tg_average_create,
+ .reset = tg_average_reset,
+ .free = tg_average_free,
+ .add = tg_average_add,
+ .flush = tg_average_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "mean", // alias on 'average'
+ .hash = 0,
+ .value = RRDR_GROUPING_AVERAGE,
+ .add_flush = RRDR_GROUPING_AVERAGE,
+ .init = NULL,
+ .create= tg_average_create,
+ .reset = tg_average_reset,
+ .free = tg_average_free,
+ .add = tg_average_add,
+ .flush = tg_average_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean1",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN1,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_1,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean2",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN2,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_2,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean3",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN3,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_3,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean5",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_5,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean10",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN10,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_10,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean15",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN15,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_15,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean20",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN20,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_20,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean25",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN25,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_25,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-mean",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEAN,
+ .add_flush = RRDR_GROUPING_TRIMMED_MEAN,
+ .init = NULL,
+ .create= tg_trimmed_mean_create_5,
+ .reset = tg_trimmed_mean_reset,
+ .free = tg_trimmed_mean_free,
+ .add = tg_trimmed_mean_add,
+ .flush = tg_trimmed_mean_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "incremental_sum",
+ .hash = 0,
+ .value = RRDR_GROUPING_INCREMENTAL_SUM,
+ .add_flush = RRDR_GROUPING_INCREMENTAL_SUM,
+ .init = NULL,
+ .create= tg_incremental_sum_create,
+ .reset = tg_incremental_sum_reset,
+ .free = tg_incremental_sum_free,
+ .add = tg_incremental_sum_add,
+ .flush = tg_incremental_sum_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "incremental-sum",
+ .hash = 0,
+ .value = RRDR_GROUPING_INCREMENTAL_SUM,
+ .add_flush = RRDR_GROUPING_INCREMENTAL_SUM,
+ .init = NULL,
+ .create= tg_incremental_sum_create,
+ .reset = tg_incremental_sum_reset,
+ .free = tg_incremental_sum_free,
+ .add = tg_incremental_sum_add,
+ .flush = tg_incremental_sum_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "median",
+ .hash = 0,
+ .value = RRDR_GROUPING_MEDIAN,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median1",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN1,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_1,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median2",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN2,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_2,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median3",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN3,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_3,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median5",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_5,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median10",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN10,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_10,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median15",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN15,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_15,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median20",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN20,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_20,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median25",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN25,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_25,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "trimmed-median",
+ .hash = 0,
+ .value = RRDR_GROUPING_TRIMMED_MEDIAN,
+ .add_flush = RRDR_GROUPING_MEDIAN,
+ .init = NULL,
+ .create= tg_median_create_trimmed_5,
+ .reset = tg_median_reset,
+ .free = tg_median_free,
+ .add = tg_median_add,
+ .flush = tg_median_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile25",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE25,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_25,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile50",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE50,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_50,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile75",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE75,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_75,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile80",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE80,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_80,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile90",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE90,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_90,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile95",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_95,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile97",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE97,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_97,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile98",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE98,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_98,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile99",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE99,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_99,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "percentile",
+ .hash = 0,
+ .value = RRDR_GROUPING_PERCENTILE,
+ .add_flush = RRDR_GROUPING_PERCENTILE,
+ .init = NULL,
+ .create= tg_percentile_create_95,
+ .reset = tg_percentile_reset,
+ .free = tg_percentile_free,
+ .add = tg_percentile_add,
+ .flush = tg_percentile_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "min",
+ .hash = 0,
+ .value = RRDR_GROUPING_MIN,
+ .add_flush = RRDR_GROUPING_MIN,
+ .init = NULL,
+ .create= tg_min_create,
+ .reset = tg_min_reset,
+ .free = tg_min_free,
+ .add = tg_min_add,
+ .flush = tg_min_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_MIN
+ },
+ {.name = "max",
+ .hash = 0,
+ .value = RRDR_GROUPING_MAX,
+ .add_flush = RRDR_GROUPING_MAX,
+ .init = NULL,
+ .create= tg_max_create,
+ .reset = tg_max_reset,
+ .free = tg_max_free,
+ .add = tg_max_add,
+ .flush = tg_max_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_MAX
+ },
+ {.name = "sum",
+ .hash = 0,
+ .value = RRDR_GROUPING_SUM,
+ .add_flush = RRDR_GROUPING_SUM,
+ .init = NULL,
+ .create= tg_sum_create,
+ .reset = tg_sum_reset,
+ .free = tg_sum_free,
+ .add = tg_sum_add,
+ .flush = tg_sum_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_SUM
+ },
+
+ // standard deviation
+ {.name = "stddev",
+ .hash = 0,
+ .value = RRDR_GROUPING_STDDEV,
+ .add_flush = RRDR_GROUPING_STDDEV,
+ .init = NULL,
+ .create= tg_stddev_create,
+ .reset = tg_stddev_reset,
+ .free = tg_stddev_free,
+ .add = tg_stddev_add,
+ .flush = tg_stddev_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "cv", // coefficient variation is calculated by stddev
+ .hash = 0,
+ .value = RRDR_GROUPING_CV,
+ .add_flush = RRDR_GROUPING_CV,
+ .init = NULL,
+ .create= tg_stddev_create, // not an error, stddev calculates this too
+ .reset = tg_stddev_reset, // not an error, stddev calculates this too
+ .free = tg_stddev_free, // not an error, stddev calculates this too
+ .add = tg_stddev_add, // not an error, stddev calculates this too
+ .flush = tg_stddev_coefficient_of_variation_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "rsd", // alias of 'cv'
+ .hash = 0,
+ .value = RRDR_GROUPING_CV,
+ .add_flush = RRDR_GROUPING_CV,
+ .init = NULL,
+ .create= tg_stddev_create, // not an error, stddev calculates this too
+ .reset = tg_stddev_reset, // not an error, stddev calculates this too
+ .free = tg_stddev_free, // not an error, stddev calculates this too
+ .add = tg_stddev_add, // not an error, stddev calculates this too
+ .flush = tg_stddev_coefficient_of_variation_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+
+ // single exponential smoothing
+ {.name = "ses",
+ .hash = 0,
+ .value = RRDR_GROUPING_SES,
+ .add_flush = RRDR_GROUPING_SES,
+ .init = tg_ses_init,
+ .create= tg_ses_create,
+ .reset = tg_ses_reset,
+ .free = tg_ses_free,
+ .add = tg_ses_add,
+ .flush = tg_ses_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "ema", // alias for 'ses'
+ .hash = 0,
+ .value = RRDR_GROUPING_SES,
+ .add_flush = RRDR_GROUPING_SES,
+ .init = NULL,
+ .create= tg_ses_create,
+ .reset = tg_ses_reset,
+ .free = tg_ses_free,
+ .add = tg_ses_add,
+ .flush = tg_ses_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+ {.name = "ewma", // alias for ses
+ .hash = 0,
+ .value = RRDR_GROUPING_SES,
+ .add_flush = RRDR_GROUPING_SES,
+ .init = NULL,
+ .create= tg_ses_create,
+ .reset = tg_ses_reset,
+ .free = tg_ses_free,
+ .add = tg_ses_add,
+ .flush = tg_ses_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+
+ // double exponential smoothing
+ {.name = "des",
+ .hash = 0,
+ .value = RRDR_GROUPING_DES,
+ .add_flush = RRDR_GROUPING_DES,
+ .init = tg_des_init,
+ .create= tg_des_create,
+ .reset = tg_des_reset,
+ .free = tg_des_free,
+ .add = tg_des_add,
+ .flush = tg_des_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+
+ {.name = "countif",
+ .hash = 0,
+ .value = RRDR_GROUPING_COUNTIF,
+ .add_flush = RRDR_GROUPING_COUNTIF,
+ .init = NULL,
+ .create= tg_countif_create,
+ .reset = tg_countif_reset,
+ .free = tg_countif_free,
+ .add = tg_countif_add,
+ .flush = tg_countif_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ },
+
+ // terminator
+ {.name = NULL,
+ .hash = 0,
+ .value = RRDR_GROUPING_UNDEFINED,
+ .add_flush = RRDR_GROUPING_AVERAGE,
+ .init = NULL,
+ .create= tg_average_create,
+ .reset = tg_average_reset,
+ .free = tg_average_free,
+ .add = tg_average_add,
+ .flush = tg_average_flush,
+ .tier_query_fetch = TIER_QUERY_FETCH_AVERAGE
+ }
+};
+
+void time_grouping_init(void) {
+ int i;
+
+ for(i = 0; api_v1_data_groups[i].name ; i++) {
+ api_v1_data_groups[i].hash = simple_hash(api_v1_data_groups[i].name);
+
+ if(api_v1_data_groups[i].init)
+ api_v1_data_groups[i].init();
+ }
+}
+
+const char *time_grouping_id2txt(RRDR_TIME_GROUPING group) {
+ int i;
+
+ for(i = 0; api_v1_data_groups[i].name ; i++) {
+ if(api_v1_data_groups[i].value == group) {
+ return api_v1_data_groups[i].name;
+ }
+ }
+
+ return "average";
+}
+
+RRDR_TIME_GROUPING time_grouping_txt2id(const char *name) {
+ int i;
+
+ uint32_t hash = simple_hash(name);
+ for(i = 0; api_v1_data_groups[i].name ; i++)
+ if(unlikely(hash == api_v1_data_groups[i].hash && !strcmp(name, api_v1_data_groups[i].name)))
+ return api_v1_data_groups[i].value;
+
+ return RRDR_GROUPING_AVERAGE;
+}
+
+RRDR_TIME_GROUPING time_grouping_parse(const char *name, RRDR_TIME_GROUPING def) {
+ int i;
+
+ uint32_t hash = simple_hash(name);
+ for(i = 0; api_v1_data_groups[i].name ; i++)
+ if(unlikely(hash == api_v1_data_groups[i].hash && !strcmp(name, api_v1_data_groups[i].name)))
+ return api_v1_data_groups[i].value;
+
+ return def;
+}
+
+const char *time_grouping_tostring(RRDR_TIME_GROUPING group) {
+ int i;
+
+ for(i = 0; api_v1_data_groups[i].name ; i++)
+ if(unlikely(group == api_v1_data_groups[i].value))
+ return api_v1_data_groups[i].name;
+
+ return "unknown";
+}
+
+static void rrdr_set_grouping_function(RRDR *r, RRDR_TIME_GROUPING group_method) {
+ int i, found = 0;
+ for(i = 0; !found && api_v1_data_groups[i].name ;i++) {
+ if(api_v1_data_groups[i].value == group_method) {
+ r->time_grouping.create = api_v1_data_groups[i].create;
+ r->time_grouping.reset = api_v1_data_groups[i].reset;
+ r->time_grouping.free = api_v1_data_groups[i].free;
+ r->time_grouping.add = api_v1_data_groups[i].add;
+ r->time_grouping.flush = api_v1_data_groups[i].flush;
+ r->time_grouping.tier_query_fetch = api_v1_data_groups[i].tier_query_fetch;
+ r->time_grouping.add_flush = api_v1_data_groups[i].add_flush;
+ found = 1;
+ }
+ }
+ if(!found) {
+ errno = 0;
+ internal_error(true, "QUERY: grouping method %u not found. Using 'average'", (unsigned int)group_method);
+ r->time_grouping.create = tg_average_create;
+ r->time_grouping.reset = tg_average_reset;
+ r->time_grouping.free = tg_average_free;
+ r->time_grouping.add = tg_average_add;
+ r->time_grouping.flush = tg_average_flush;
+ r->time_grouping.tier_query_fetch = TIER_QUERY_FETCH_AVERAGE;
+ r->time_grouping.add_flush = RRDR_GROUPING_AVERAGE;
+ }
+}
+
+static inline void time_grouping_add(RRDR *r, NETDATA_DOUBLE value, const RRDR_TIME_GROUPING add_flush) {
+ switch(add_flush) {
+ case RRDR_GROUPING_AVERAGE:
+ tg_average_add(r, value);
+ break;
+
+ case RRDR_GROUPING_MAX:
+ tg_max_add(r, value);
+ break;
+
+ case RRDR_GROUPING_MIN:
+ tg_min_add(r, value);
+ break;
+
+ case RRDR_GROUPING_MEDIAN:
+ tg_median_add(r, value);
+ break;
+
+ case RRDR_GROUPING_STDDEV:
+ case RRDR_GROUPING_CV:
+ tg_stddev_add(r, value);
+ break;
+
+ case RRDR_GROUPING_SUM:
+ tg_sum_add(r, value);
+ break;
+
+ case RRDR_GROUPING_COUNTIF:
+ tg_countif_add(r, value);
+ break;
+
+ case RRDR_GROUPING_TRIMMED_MEAN:
+ tg_trimmed_mean_add(r, value);
+ break;
+
+ case RRDR_GROUPING_PERCENTILE:
+ tg_percentile_add(r, value);
+ break;
+
+ case RRDR_GROUPING_SES:
+ tg_ses_add(r, value);
+ break;
+
+ case RRDR_GROUPING_DES:
+ tg_des_add(r, value);
+ break;
+
+ case RRDR_GROUPING_INCREMENTAL_SUM:
+ tg_incremental_sum_add(r, value);
+ break;
+
+ default:
+ r->time_grouping.add(r, value);
+ break;
+ }
+}
+
+static inline NETDATA_DOUBLE time_grouping_flush(RRDR *r, RRDR_VALUE_FLAGS *rrdr_value_options_ptr, const RRDR_TIME_GROUPING add_flush) {
+ switch(add_flush) {
+ case RRDR_GROUPING_AVERAGE:
+ return tg_average_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_MAX:
+ return tg_max_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_MIN:
+ return tg_min_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_MEDIAN:
+ return tg_median_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_STDDEV:
+ return tg_stddev_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_CV:
+ return tg_stddev_coefficient_of_variation_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_SUM:
+ return tg_sum_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_COUNTIF:
+ return tg_countif_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_TRIMMED_MEAN:
+ return tg_trimmed_mean_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_PERCENTILE:
+ return tg_percentile_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_SES:
+ return tg_ses_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_DES:
+ return tg_des_flush(r, rrdr_value_options_ptr);
+
+ case RRDR_GROUPING_INCREMENTAL_SUM:
+ return tg_incremental_sum_flush(r, rrdr_value_options_ptr);
+
+ default:
+ return r->time_grouping.flush(r, rrdr_value_options_ptr);
+ }
+}
+
+RRDR_GROUP_BY group_by_parse(char *s) {
+ RRDR_GROUP_BY group_by = RRDR_GROUP_BY_NONE;
+
+ while(s) {
+ char *key = strsep_skip_consecutive_separators(&s, ",| ");
+ if (!key || !*key) continue;
+
+ if (strcmp(key, "selected") == 0)
+ group_by |= RRDR_GROUP_BY_SELECTED;
+
+ if (strcmp(key, "dimension") == 0)
+ group_by |= RRDR_GROUP_BY_DIMENSION;
+
+ if (strcmp(key, "instance") == 0)
+ group_by |= RRDR_GROUP_BY_INSTANCE;
+
+ if (strcmp(key, "percentage-of-instance") == 0)
+ group_by |= RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE;
+
+ if (strcmp(key, "label") == 0)
+ group_by |= RRDR_GROUP_BY_LABEL;
+
+ if (strcmp(key, "node") == 0)
+ group_by |= RRDR_GROUP_BY_NODE;
+
+ if (strcmp(key, "context") == 0)
+ group_by |= RRDR_GROUP_BY_CONTEXT;
+
+ if (strcmp(key, "units") == 0)
+ group_by |= RRDR_GROUP_BY_UNITS;
+ }
+
+ if((group_by & RRDR_GROUP_BY_SELECTED) && (group_by & ~RRDR_GROUP_BY_SELECTED)) {
+ internal_error(true, "group-by given by query has 'selected' together with more groupings");
+ group_by = RRDR_GROUP_BY_SELECTED; // remove all other groupings
+ }
+
+ if(group_by & RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE)
+ group_by = RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE; // remove all other groupings
+
+ return group_by;
+}
+
+void buffer_json_group_by_to_array(BUFFER *wb, RRDR_GROUP_BY group_by) {
+ if(group_by == RRDR_GROUP_BY_NONE)
+ buffer_json_add_array_item_string(wb, "none");
+ else {
+ if (group_by & RRDR_GROUP_BY_DIMENSION)
+ buffer_json_add_array_item_string(wb, "dimension");
+
+ if (group_by & RRDR_GROUP_BY_INSTANCE)
+ buffer_json_add_array_item_string(wb, "instance");
+
+ if (group_by & RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE)
+ buffer_json_add_array_item_string(wb, "percentage-of-instance");
+
+ if (group_by & RRDR_GROUP_BY_LABEL)
+ buffer_json_add_array_item_string(wb, "label");
+
+ if (group_by & RRDR_GROUP_BY_NODE)
+ buffer_json_add_array_item_string(wb, "node");
+
+ if (group_by & RRDR_GROUP_BY_CONTEXT)
+ buffer_json_add_array_item_string(wb, "context");
+
+ if (group_by & RRDR_GROUP_BY_UNITS)
+ buffer_json_add_array_item_string(wb, "units");
+
+ if (group_by & RRDR_GROUP_BY_SELECTED)
+ buffer_json_add_array_item_string(wb, "selected");
+ }
+}
+
+RRDR_GROUP_BY_FUNCTION group_by_aggregate_function_parse(const char *s) {
+ if(strcmp(s, "average") == 0)
+ return RRDR_GROUP_BY_FUNCTION_AVERAGE;
+
+ if(strcmp(s, "avg") == 0)
+ return RRDR_GROUP_BY_FUNCTION_AVERAGE;
+
+ if(strcmp(s, "min") == 0)
+ return RRDR_GROUP_BY_FUNCTION_MIN;
+
+ if(strcmp(s, "max") == 0)
+ return RRDR_GROUP_BY_FUNCTION_MAX;
+
+ if(strcmp(s, "sum") == 0)
+ return RRDR_GROUP_BY_FUNCTION_SUM;
+
+ if(strcmp(s, "percentage") == 0)
+ return RRDR_GROUP_BY_FUNCTION_PERCENTAGE;
+
+ return RRDR_GROUP_BY_FUNCTION_AVERAGE;
+}
+
+const char *group_by_aggregate_function_to_string(RRDR_GROUP_BY_FUNCTION group_by_function) {
+ switch(group_by_function) {
+ default:
+ case RRDR_GROUP_BY_FUNCTION_AVERAGE:
+ return "average";
+
+ case RRDR_GROUP_BY_FUNCTION_MIN:
+ return "min";
+
+ case RRDR_GROUP_BY_FUNCTION_MAX:
+ return "max";
+
+ case RRDR_GROUP_BY_FUNCTION_SUM:
+ return "sum";
+
+ case RRDR_GROUP_BY_FUNCTION_PERCENTAGE:
+ return "percentage";
+ }
+}
+
+// ----------------------------------------------------------------------------
+// helpers to find our way in RRDR
+
+static inline RRDR_VALUE_FLAGS *UNUSED_FUNCTION(rrdr_line_options)(RRDR *r, long rrdr_line) {
+ return &r->o[ rrdr_line * r->d ];
+}
+
+static inline NETDATA_DOUBLE *UNUSED_FUNCTION(rrdr_line_values)(RRDR *r, long rrdr_line) {
+ return &r->v[ rrdr_line * r->d ];
+}
+
+static inline long rrdr_line_init(RRDR *r __maybe_unused, time_t t __maybe_unused, long rrdr_line) {
+ rrdr_line++;
+
+ internal_fatal(rrdr_line >= (long)r->n,
+ "QUERY: requested to step above RRDR size for query '%s'",
+ r->internal.qt->id);
+
+ internal_fatal(r->t[rrdr_line] != t,
+ "QUERY: wrong timestamp at RRDR line %ld, expected %ld, got %ld, of query '%s'",
+ rrdr_line, r->t[rrdr_line], t, r->internal.qt->id);
+
+ return rrdr_line;
+}
+
+// ----------------------------------------------------------------------------
+// tier management
+
+static bool query_metric_is_valid_tier(QUERY_METRIC *qm, size_t tier) {
+ if(!qm->tiers[tier].smh || !qm->tiers[tier].db_first_time_s || !qm->tiers[tier].db_last_time_s || !qm->tiers[tier].db_update_every_s)
+ return false;
+
+ return true;
+}
+
+static size_t query_metric_first_working_tier(QUERY_METRIC *qm) {
+ for(size_t tier = 0; tier < storage_tiers ; tier++) {
+
+ // find the db time-range for this tier for all metrics
+ STORAGE_METRIC_HANDLE *smh = qm->tiers[tier].smh;
+ time_t first_time_s = qm->tiers[tier].db_first_time_s;
+ time_t last_time_s = qm->tiers[tier].db_last_time_s;
+ time_t update_every_s = qm->tiers[tier].db_update_every_s;
+
+ if(!smh || !first_time_s || !last_time_s || !update_every_s)
+ continue;
+
+ return tier;
+ }
+
+ return 0;
+}
+
+static long query_plan_points_coverage_weight(time_t db_first_time_s, time_t db_last_time_s, time_t db_update_every_s, time_t after_wanted, time_t before_wanted, size_t points_wanted, size_t tier __maybe_unused) {
+ if(db_first_time_s == 0 ||
+ db_last_time_s == 0 ||
+ db_update_every_s == 0 ||
+ db_first_time_s > before_wanted ||
+ db_last_time_s < after_wanted)
+ return -LONG_MAX;
+
+ long long common_first_t = MAX(db_first_time_s, after_wanted);
+ long long common_last_t = MIN(db_last_time_s, before_wanted);
+
+ long long time_coverage = (common_last_t - common_first_t) * 1000000LL / (before_wanted - after_wanted);
+ long long points_wanted_in_coverage = (long long)points_wanted * time_coverage / 1000000LL;
+
+ long long points_available = (common_last_t - common_first_t) / db_update_every_s;
+ long long points_delta = (long)(points_available - points_wanted_in_coverage);
+ long long points_coverage = (points_delta < 0) ? (long)(points_available * time_coverage / points_wanted_in_coverage) : time_coverage;
+
+ // a way to benefit higher tiers
+ // points_coverage += (long)tier * 10000;
+
+ if(points_available <= 0)
+ return -LONG_MAX;
+
+ return (long)(points_coverage + (25000LL * tier)); // 2.5% benefit for each higher tier
+}
+
+static size_t query_metric_best_tier_for_timeframe(QUERY_METRIC *qm, time_t after_wanted, time_t before_wanted, size_t points_wanted) {
+ if(unlikely(storage_tiers < 2))
+ return 0;
+
+ if(unlikely(after_wanted == before_wanted || points_wanted <= 0))
+ return query_metric_first_working_tier(qm);
+
+ if(points_wanted < QUERY_PLAN_MIN_POINTS)
+ // when selecting tiers, aim for a resolution of at least QUERY_PLAN_MIN_POINTS points
+ points_wanted = (before_wanted - after_wanted) > QUERY_PLAN_MIN_POINTS ? QUERY_PLAN_MIN_POINTS : before_wanted - after_wanted;
+
+ time_t min_first_time_s = 0;
+ time_t max_last_time_s = 0;
+
+ for(size_t tier = 0; tier < storage_tiers ; tier++) {
+ time_t first_time_s = qm->tiers[tier].db_first_time_s;
+ time_t last_time_s = qm->tiers[tier].db_last_time_s;
+
+ if(!min_first_time_s || (first_time_s && first_time_s < min_first_time_s))
+ min_first_time_s = first_time_s;
+
+ if(!max_last_time_s || (last_time_s && last_time_s > max_last_time_s))
+ max_last_time_s = last_time_s;
+ }
+
+ for(size_t tier = 0; tier < storage_tiers ; tier++) {
+
+ // find the db time-range for this tier for all metrics
+ STORAGE_METRIC_HANDLE *smh = qm->tiers[tier].smh;
+ time_t first_time_s = qm->tiers[tier].db_first_time_s;
+ time_t last_time_s = qm->tiers[tier].db_last_time_s;
+ time_t update_every_s = qm->tiers[tier].db_update_every_s;
+
+ if( !smh ||
+ !first_time_s ||
+ !last_time_s ||
+ !update_every_s ||
+ first_time_s > before_wanted ||
+ last_time_s < after_wanted
+ ) {
+ qm->tiers[tier].weight = -LONG_MAX;
+ continue;
+ }
+
+ internal_fatal(first_time_s > before_wanted || last_time_s < after_wanted, "QUERY: invalid db durations");
+
+ qm->tiers[tier].weight = query_plan_points_coverage_weight(
+ min_first_time_s, max_last_time_s, update_every_s,
+ after_wanted, before_wanted, points_wanted, tier);
+ }
+
+ size_t best_tier = 0;
+ for(size_t tier = 1; tier < storage_tiers ; tier++) {
+ if(qm->tiers[tier].weight >= qm->tiers[best_tier].weight)
+ best_tier = tier;
+ }
+
+ return best_tier;
+}
+
+static size_t rrddim_find_best_tier_for_timeframe(QUERY_TARGET *qt, time_t after_wanted, time_t before_wanted, size_t points_wanted) {
+ if(unlikely(storage_tiers < 2))
+ return 0;
+
+ if(unlikely(after_wanted == before_wanted || points_wanted <= 0)) {
+ internal_error(true, "QUERY: '%s' has invalid params to tier calculation", qt->id);
+ return 0;
+ }
+
+ long weight[storage_tiers];
+
+ for(size_t tier = 0; tier < storage_tiers ; tier++) {
+
+ time_t common_first_time_s = 0;
+ time_t common_last_time_s = 0;
+ time_t common_update_every_s = 0;
+
+ // find the db time-range for this tier for all metrics
+ for(size_t i = 0, used = qt->query.used; i < used ; i++) {
+ QUERY_METRIC *qm = query_metric(qt, i);
+
+ time_t first_time_s = qm->tiers[tier].db_first_time_s;
+ time_t last_time_s = qm->tiers[tier].db_last_time_s;
+ time_t update_every_s = qm->tiers[tier].db_update_every_s;
+
+ if(!first_time_s || !last_time_s || !update_every_s)
+ continue;
+
+ if(!common_first_time_s)
+ common_first_time_s = first_time_s;
+ else
+ common_first_time_s = MIN(first_time_s, common_first_time_s);
+
+ if(!common_last_time_s)
+ common_last_time_s = last_time_s;
+ else
+ common_last_time_s = MAX(last_time_s, common_last_time_s);
+
+ if(!common_update_every_s)
+ common_update_every_s = update_every_s;
+ else
+ common_update_every_s = MIN(update_every_s, common_update_every_s);
+ }
+
+ weight[tier] = query_plan_points_coverage_weight(common_first_time_s, common_last_time_s, common_update_every_s, after_wanted, before_wanted, points_wanted, tier);
+ }
+
+ size_t best_tier = 0;
+ for(size_t tier = 1; tier < storage_tiers ; tier++) {
+ if(weight[tier] >= weight[best_tier])
+ best_tier = tier;
+ }
+
+ if(weight[best_tier] == -LONG_MAX)
+ best_tier = 0;
+
+ return best_tier;
+}
+
+static time_t rrdset_find_natural_update_every_for_timeframe(QUERY_TARGET *qt, time_t after_wanted, time_t before_wanted, size_t points_wanted, RRDR_OPTIONS options, size_t tier) {
+ size_t best_tier;
+ if((options & RRDR_OPTION_SELECTED_TIER) && tier < storage_tiers)
+ best_tier = tier;
+ else
+ best_tier = rrddim_find_best_tier_for_timeframe(qt, after_wanted, before_wanted, points_wanted);
+
+ // find the db minimum update every for this tier for all metrics
+ time_t common_update_every_s = default_rrd_update_every;
+ for(size_t i = 0, used = qt->query.used; i < used ; i++) {
+ QUERY_METRIC *qm = query_metric(qt, i);
+
+ time_t update_every_s = qm->tiers[best_tier].db_update_every_s;
+
+ if(!i)
+ common_update_every_s = update_every_s;
+ else
+ common_update_every_s = MIN(update_every_s, common_update_every_s);
+ }
+
+ return common_update_every_s;
+}
+
+// ----------------------------------------------------------------------------
+// query ops
+
+typedef struct query_point {
+ STORAGE_POINT sp;
+ NETDATA_DOUBLE value;
+ bool added;
+#ifdef NETDATA_INTERNAL_CHECKS
+ size_t id;
+#endif
+} QUERY_POINT;
+
+QUERY_POINT QUERY_POINT_EMPTY = {
+ .sp = STORAGE_POINT_UNSET,
+ .value = NAN,
+ .added = false,
+#ifdef NETDATA_INTERNAL_CHECKS
+ .id = 0,
+#endif
+};
+
+#ifdef NETDATA_INTERNAL_CHECKS
+#define query_point_set_id(point, point_id) (point).id = point_id
+#else
+#define query_point_set_id(point, point_id) debug_dummy()
+#endif
+
+typedef struct query_engine_ops {
+ // configuration
+ RRDR *r;
+ QUERY_METRIC *qm;
+ time_t view_update_every;
+ time_t query_granularity;
+ TIER_QUERY_FETCH tier_query_fetch;
+
+ // query planer
+ size_t current_plan;
+ time_t current_plan_expire_time;
+ time_t plan_expanded_after;
+ time_t plan_expanded_before;
+
+ // storage queries
+ size_t tier;
+ struct query_metric_tier *tier_ptr;
+ struct storage_engine_query_handle *seqh;
+
+ // aggregating points over time
+ size_t group_points_non_zero;
+ size_t group_points_added;
+ STORAGE_POINT group_point; // aggregates min, max, sum, count, anomaly count for each group point
+ STORAGE_POINT query_point; // aggregates min, max, sum, count, anomaly count across the whole query
+ RRDR_VALUE_FLAGS group_value_flags;
+
+ // statistics
+ size_t db_total_points_read;
+ size_t db_points_read_per_tier[RRD_STORAGE_TIERS];
+
+ struct {
+ time_t expanded_after;
+ time_t expanded_before;
+ struct storage_engine_query_handle handle;
+ bool initialized;
+ bool finalized;
+ } plans[QUERY_PLANS_MAX];
+
+ struct query_engine_ops *next;
+} QUERY_ENGINE_OPS;
+
+
+// ----------------------------------------------------------------------------
+// query planer
+
+#define query_plan_should_switch_plan(ops, now) ((now) >= (ops)->current_plan_expire_time)
+
+static size_t query_planer_expand_duration_in_points(time_t this_update_every, time_t next_update_every) {
+
+ time_t delta = this_update_every - next_update_every;
+ if(delta < 0) delta = -delta;
+
+ size_t points;
+ if(delta < this_update_every * POINTS_TO_EXPAND_QUERY)
+ points = POINTS_TO_EXPAND_QUERY;
+ else
+ points = (delta + this_update_every - 1) / this_update_every;
+
+ return points;
+}
+
+static void query_planer_initialize_plans(QUERY_ENGINE_OPS *ops) {
+ QUERY_METRIC *qm = ops->qm;
+
+ for(size_t p = 0; p < qm->plan.used ; p++) {
+ size_t tier = qm->plan.array[p].tier;
+ time_t update_every = qm->tiers[tier].db_update_every_s;
+
+ size_t points_to_add_to_after;
+ if(p > 0) {
+ // there is another plan before to this
+
+ size_t tier0 = qm->plan.array[p - 1].tier;
+ time_t update_every0 = qm->tiers[tier0].db_update_every_s;
+
+ points_to_add_to_after = query_planer_expand_duration_in_points(update_every, update_every0);
+ }
+ else
+ points_to_add_to_after = (tier == 0) ? 0 : POINTS_TO_EXPAND_QUERY;
+
+ size_t points_to_add_to_before;
+ if(p + 1 < qm->plan.used) {
+ // there is another plan after to this
+
+ size_t tier1 = qm->plan.array[p+1].tier;
+ time_t update_every1 = qm->tiers[tier1].db_update_every_s;
+
+ points_to_add_to_before = query_planer_expand_duration_in_points(update_every, update_every1);
+ }
+ else
+ points_to_add_to_before = POINTS_TO_EXPAND_QUERY;
+
+ time_t after = qm->plan.array[p].after - (time_t)(update_every * points_to_add_to_after);
+ time_t before = qm->plan.array[p].before + (time_t)(update_every * points_to_add_to_before);
+
+ ops->plans[p].expanded_after = after;
+ ops->plans[p].expanded_before = before;
+
+ ops->r->internal.qt->db.tiers[tier].queries++;
+
+ struct query_metric_tier *tier_ptr = &qm->tiers[tier];
+ STORAGE_ENGINE *eng = query_metric_storage_engine(ops->r->internal.qt, qm, tier);
+ storage_engine_query_init(eng->seb, tier_ptr->smh, &ops->plans[p].handle,
+ after, before, ops->r->internal.qt->request.priority);
+
+ ops->plans[p].initialized = true;
+ ops->plans[p].finalized = false;
+ }
+}
+
+static void query_planer_finalize_plan(QUERY_ENGINE_OPS *ops, size_t plan_id) {
+ // QUERY_METRIC *qm = ops->qm;
+
+ if(ops->plans[plan_id].initialized && !ops->plans[plan_id].finalized) {
+ storage_engine_query_finalize(&ops->plans[plan_id].handle);
+ ops->plans[plan_id].initialized = false;
+ ops->plans[plan_id].finalized = true;
+ }
+}
+
+static void query_planer_finalize_remaining_plans(QUERY_ENGINE_OPS *ops) {
+ QUERY_METRIC *qm = ops->qm;
+
+ for(size_t p = 0; p < qm->plan.used ; p++)
+ query_planer_finalize_plan(ops, p);
+}
+
+static void query_planer_activate_plan(QUERY_ENGINE_OPS *ops, size_t plan_id, time_t overwrite_after __maybe_unused) {
+ QUERY_METRIC *qm = ops->qm;
+
+ internal_fatal(plan_id >= qm->plan.used, "QUERY: invalid plan_id given");
+ internal_fatal(!ops->plans[plan_id].initialized, "QUERY: plan has not been initialized");
+ internal_fatal(ops->plans[plan_id].finalized, "QUERY: plan has been finalized");
+
+ internal_fatal(qm->plan.array[plan_id].after > qm->plan.array[plan_id].before, "QUERY: flipped after/before");
+
+ ops->tier = qm->plan.array[plan_id].tier;
+ ops->tier_ptr = &qm->tiers[ops->tier];
+ ops->seqh = &ops->plans[plan_id].handle;
+ ops->current_plan = plan_id;
+
+ if(plan_id + 1 < qm->plan.used && qm->plan.array[plan_id + 1].after < qm->plan.array[plan_id].before)
+ ops->current_plan_expire_time = qm->plan.array[plan_id + 1].after;
+ else
+ ops->current_plan_expire_time = qm->plan.array[plan_id].before;
+
+ ops->plan_expanded_after = ops->plans[plan_id].expanded_after;
+ ops->plan_expanded_before = ops->plans[plan_id].expanded_before;
+}
+
+static bool query_planer_next_plan(QUERY_ENGINE_OPS *ops, time_t now, time_t last_point_end_time) {
+ QUERY_METRIC *qm = ops->qm;
+
+ size_t old_plan = ops->current_plan;
+
+ time_t next_plan_before_time;
+ do {
+ ops->current_plan++;
+
+ if (ops->current_plan >= qm->plan.used) {
+ ops->current_plan = old_plan;
+ ops->current_plan_expire_time = ops->r->internal.qt->window.before;
+ // let the query run with current plan
+ // we will not switch it
+ return false;
+ }
+
+ next_plan_before_time = qm->plan.array[ops->current_plan].before;
+ } while(now >= next_plan_before_time || last_point_end_time >= next_plan_before_time);
+
+ if(!query_metric_is_valid_tier(qm, qm->plan.array[ops->current_plan].tier)) {
+ ops->current_plan = old_plan;
+ ops->current_plan_expire_time = ops->r->internal.qt->window.before;
+ return false;
+ }
+
+ query_planer_finalize_plan(ops, old_plan);
+ query_planer_activate_plan(ops, ops->current_plan, MIN(now, last_point_end_time));
+ return true;
+}
+
+static int compare_query_plan_entries_on_start_time(const void *a, const void *b) {
+ QUERY_PLAN_ENTRY *p1 = (QUERY_PLAN_ENTRY *)a;
+ QUERY_PLAN_ENTRY *p2 = (QUERY_PLAN_ENTRY *)b;
+ return (p1->after < p2->after)?-1:1;
+}
+
+static bool query_plan(QUERY_ENGINE_OPS *ops, time_t after_wanted, time_t before_wanted, size_t points_wanted) {
+ QUERY_METRIC *qm = ops->qm;
+
+ // put our selected tier as the first plan
+ size_t selected_tier;
+ bool switch_tiers = true;
+
+ if((ops->r->internal.qt->window.options & RRDR_OPTION_SELECTED_TIER)
+ && ops->r->internal.qt->window.tier < storage_tiers
+ && query_metric_is_valid_tier(qm, ops->r->internal.qt->window.tier)) {
+ selected_tier = ops->r->internal.qt->window.tier;
+ switch_tiers = false;
+ }
+ else {
+ selected_tier = query_metric_best_tier_for_timeframe(qm, after_wanted, before_wanted, points_wanted);
+
+ if(!query_metric_is_valid_tier(qm, selected_tier))
+ return false;
+ }
+
+ if(qm->tiers[selected_tier].db_first_time_s > before_wanted ||
+ qm->tiers[selected_tier].db_last_time_s < after_wanted) {
+ // we don't have any data to satisfy this query
+ return false;
+ }
+
+ qm->plan.used = 1;
+ qm->plan.array[0].tier = selected_tier;
+ qm->plan.array[0].after = (qm->tiers[selected_tier].db_first_time_s < after_wanted) ? after_wanted : qm->tiers[selected_tier].db_first_time_s;
+ qm->plan.array[0].before = (qm->tiers[selected_tier].db_last_time_s > before_wanted) ? before_wanted : qm->tiers[selected_tier].db_last_time_s;
+
+ if(switch_tiers) {
+ // the selected tier
+ time_t selected_tier_first_time_s = qm->plan.array[0].after;
+ time_t selected_tier_last_time_s = qm->plan.array[0].before;
+
+ // check if our selected tier can start the query
+ if (selected_tier_first_time_s > after_wanted) {
+ // we need some help from other tiers
+ for (size_t tr = (int)selected_tier + 1; tr < storage_tiers && qm->plan.used < QUERY_PLANS_MAX ; tr++) {
+ if(!query_metric_is_valid_tier(qm, tr))
+ continue;
+
+ // find the first time of this tier
+ time_t tier_first_time_s = qm->tiers[tr].db_first_time_s;
+ time_t tier_last_time_s = qm->tiers[tr].db_last_time_s;
+
+ // can it help?
+ if (tier_first_time_s < selected_tier_first_time_s && tier_first_time_s <= before_wanted && tier_last_time_s >= after_wanted) {
+ // it can help us add detail at the beginning of the query
+ QUERY_PLAN_ENTRY t = {
+ .tier = tr,
+ .after = (tier_first_time_s < after_wanted) ? after_wanted : tier_first_time_s,
+ .before = selected_tier_first_time_s,
+ };
+ ops->plans[qm->plan.used].initialized = false;
+ ops->plans[qm->plan.used].finalized = false;
+ qm->plan.array[qm->plan.used++] = t;
+
+ internal_fatal(!t.after || !t.before, "QUERY: invalid plan selected");
+
+ // prepare for the tier
+ selected_tier_first_time_s = t.after;
+
+ if (t.after <= after_wanted)
+ break;
+ }
+ }
+ }
+
+ // check if our selected tier can finish the query
+ if (selected_tier_last_time_s < before_wanted) {
+ // we need some help from other tiers
+ for (int tr = (int)selected_tier - 1; tr >= 0 && qm->plan.used < QUERY_PLANS_MAX ; tr--) {
+ if(!query_metric_is_valid_tier(qm, tr))
+ continue;
+
+ // find the last time of this tier
+ time_t tier_first_time_s = qm->tiers[tr].db_first_time_s;
+ time_t tier_last_time_s = qm->tiers[tr].db_last_time_s;
+
+ //buffer_sprintf(wb, ": EVAL BEFORE tier %d, %ld", tier, last_time_s);
+
+ // can it help?
+ if (tier_last_time_s > selected_tier_last_time_s && tier_first_time_s <= before_wanted && tier_last_time_s >= after_wanted) {
+ // it can help us add detail at the end of the query
+ QUERY_PLAN_ENTRY t = {
+ .tier = tr,
+ .after = selected_tier_last_time_s,
+ .before = (tier_last_time_s > before_wanted) ? before_wanted : tier_last_time_s,
+ };
+ ops->plans[qm->plan.used].initialized = false;
+ ops->plans[qm->plan.used].finalized = false;
+ qm->plan.array[qm->plan.used++] = t;
+
+ // prepare for the tier
+ selected_tier_last_time_s = t.before;
+
+ internal_fatal(!t.after || !t.before, "QUERY: invalid plan selected");
+
+ if (t.before >= before_wanted)
+ break;
+ }
+ }
+ }
+ }
+
+ // sort the query plan
+ if(qm->plan.used > 1)
+ qsort(&qm->plan.array, qm->plan.used, sizeof(QUERY_PLAN_ENTRY), compare_query_plan_entries_on_start_time);
+
+ if(!query_metric_is_valid_tier(qm, qm->plan.array[0].tier))
+ return false;
+
+#ifdef NETDATA_INTERNAL_CHECKS
+ for(size_t p = 0; p < qm->plan.used ;p++) {
+ internal_fatal(qm->plan.array[p].after > qm->plan.array[p].before, "QUERY: flipped after/before");
+ internal_fatal(qm->plan.array[p].after < after_wanted, "QUERY: too small plan first time");
+ internal_fatal(qm->plan.array[p].before > before_wanted, "QUERY: too big plan last time");
+ }
+#endif
+
+ query_planer_initialize_plans(ops);
+ query_planer_activate_plan(ops, 0, 0);
+
+ return true;
+}
+
+
+// ----------------------------------------------------------------------------
+// dimension level query engine
+
+#define query_interpolate_point(this_point, last_point, now) do { \
+ if(likely( \
+ /* the point to interpolate is more than 1s wide */ \
+ (this_point).sp.end_time_s - (this_point).sp.start_time_s > 1 \
+ \
+ /* the two points are exactly next to each other */ \
+ && (last_point).sp.end_time_s == (this_point).sp.start_time_s \
+ \
+ /* both points are valid numbers */ \
+ && netdata_double_isnumber((this_point).value) \
+ && netdata_double_isnumber((last_point).value) \
+ \
+ )) { \
+ (this_point).value = (last_point).value + ((this_point).value - (last_point).value) * (1.0 - (NETDATA_DOUBLE)((this_point).sp.end_time_s - (now)) / (NETDATA_DOUBLE)((this_point).sp.end_time_s - (this_point).sp.start_time_s)); \
+ (this_point).sp.end_time_s = now; \
+ } \
+} while(0)
+
+#define query_add_point_to_group(r, point, ops, add_flush) do { \
+ if(likely(netdata_double_isnumber((point).value))) { \
+ if(likely(fpclassify((point).value) != FP_ZERO)) \
+ (ops)->group_points_non_zero++; \
+ \
+ if(unlikely((point).sp.flags & SN_FLAG_RESET)) \
+ (ops)->group_value_flags |= RRDR_VALUE_RESET; \
+ \
+ time_grouping_add(r, (point).value, add_flush); \
+ \
+ storage_point_merge_to((ops)->group_point, (point).sp); \
+ if(!(point).added) \
+ storage_point_merge_to((ops)->query_point, (point).sp); \
+ } \
+ \
+ (ops)->group_points_added++; \
+} while(0)
+
+static __thread QUERY_ENGINE_OPS *released_ops = NULL;
+
+static void rrd2rrdr_query_ops_freeall(RRDR *r __maybe_unused) {
+ while(released_ops) {
+ QUERY_ENGINE_OPS *ops = released_ops;
+ released_ops = ops->next;
+
+ onewayalloc_freez(r->internal.owa, ops);
+ }
+}
+
+static void rrd2rrdr_query_ops_release(QUERY_ENGINE_OPS *ops) {
+ if(!ops) return;
+
+ ops->next = released_ops;
+ released_ops = ops;
+}
+
+static QUERY_ENGINE_OPS *rrd2rrdr_query_ops_get(RRDR *r) {
+ QUERY_ENGINE_OPS *ops;
+ if(released_ops) {
+ ops = released_ops;
+ released_ops = ops->next;
+ }
+ else {
+ ops = onewayalloc_mallocz(r->internal.owa, sizeof(QUERY_ENGINE_OPS));
+ }
+
+ memset(ops, 0, sizeof(*ops));
+ return ops;
+}
+
+static QUERY_ENGINE_OPS *rrd2rrdr_query_ops_prep(RRDR *r, size_t query_metric_id) {
+ QUERY_TARGET *qt = r->internal.qt;
+
+ QUERY_ENGINE_OPS *ops = rrd2rrdr_query_ops_get(r);
+ *ops = (QUERY_ENGINE_OPS) {
+ .r = r,
+ .qm = query_metric(qt, query_metric_id),
+ .tier_query_fetch = r->time_grouping.tier_query_fetch,
+ .view_update_every = r->view.update_every,
+ .query_granularity = (time_t)(r->view.update_every / r->view.group),
+ .group_value_flags = RRDR_VALUE_NOTHING,
+ };
+
+ if(!query_plan(ops, qt->window.after, qt->window.before, qt->window.points)) {
+ rrd2rrdr_query_ops_release(ops);
+ return NULL;
+ }
+
+ return ops;
+}
+
+static void rrd2rrdr_query_execute(RRDR *r, size_t dim_id_in_rrdr, QUERY_ENGINE_OPS *ops) {
+ QUERY_TARGET *qt = r->internal.qt;
+ QUERY_METRIC *qm = ops->qm;
+
+ const RRDR_TIME_GROUPING add_flush = r->time_grouping.add_flush;
+
+ ops->group_point = STORAGE_POINT_UNSET;
+ ops->query_point = STORAGE_POINT_UNSET;
+
+ RRDR_OPTIONS options = qt->window.options;
+ size_t points_wanted = qt->window.points;
+ time_t after_wanted = qt->window.after;
+ time_t before_wanted = qt->window.before; (void)before_wanted;
+
+// bool debug_this = false;
+// if(strcmp("user", string2str(rd->id)) == 0 && strcmp("system.cpu", string2str(rd->rrdset->id)) == 0)
+// debug_this = true;
+
+ size_t points_added = 0;
+
+ long rrdr_line = -1;
+ bool use_anomaly_bit_as_value = (r->internal.qt->window.options & RRDR_OPTION_ANOMALY_BIT) ? true : false;
+
+ NETDATA_DOUBLE min = r->view.min, max = r->view.max;
+
+ QUERY_POINT last2_point = QUERY_POINT_EMPTY;
+ QUERY_POINT last1_point = QUERY_POINT_EMPTY;
+ QUERY_POINT new_point = QUERY_POINT_EMPTY;
+
+ // ONE POINT READ-AHEAD
+ // when we switch plans, we read-ahead a point from the next plan
+ // to join them smoothly at the exact time the next plan begins
+ STORAGE_POINT next1_point = STORAGE_POINT_UNSET;
+
+ time_t now_start_time = after_wanted - ops->query_granularity;
+ time_t now_end_time = after_wanted + ops->view_update_every - ops->query_granularity;
+
+ size_t db_points_read_since_plan_switch = 0; (void)db_points_read_since_plan_switch;
+ size_t query_is_finished_counter = 0;
+
+ // The main loop, based on the query granularity we need
+ for( ; points_added < points_wanted && query_is_finished_counter <= 10 ;
+ now_start_time = now_end_time, now_end_time += ops->view_update_every) {
+
+ if(unlikely(query_plan_should_switch_plan(ops, now_end_time))) {
+ query_planer_next_plan(ops, now_end_time, new_point.sp.end_time_s);
+ db_points_read_since_plan_switch = 0;
+ }
+
+ // read all the points of the db, prior to the time we need (now_end_time)
+
+ size_t count_same_end_time = 0;
+ while(count_same_end_time < 100) {
+ if(likely(count_same_end_time == 0)) {
+ last2_point = last1_point;
+ last1_point = new_point;
+ }
+
+ if(unlikely(storage_engine_query_is_finished(ops->seqh))) {
+ query_is_finished_counter++;
+
+ if(count_same_end_time != 0) {
+ last2_point = last1_point;
+ last1_point = new_point;
+ }
+ new_point = QUERY_POINT_EMPTY;
+ new_point.sp.start_time_s = last1_point.sp.end_time_s;
+ new_point.sp.end_time_s = now_end_time;
+//
+// if(debug_this) netdata_log_info("QUERY: is finished() returned true");
+//
+ break;
+ }
+ else
+ query_is_finished_counter = 0;
+
+ // fetch the new point
+ {
+ STORAGE_POINT sp;
+ if(likely(storage_point_is_unset(next1_point))) {
+ db_points_read_since_plan_switch++;
+ sp = storage_engine_query_next_metric(ops->seqh);
+ ops->db_points_read_per_tier[ops->tier]++;
+ ops->db_total_points_read++;
+
+ if(unlikely(options & RRDR_OPTION_ABSOLUTE))
+ storage_point_make_positive(sp);
+ }
+ else {
+ // ONE POINT READ-AHEAD
+ sp = next1_point;
+ storage_point_unset(next1_point);
+ db_points_read_since_plan_switch = 1;
+ }
+
+ // ONE POINT READ-AHEAD
+ if(unlikely(query_plan_should_switch_plan(ops, sp.end_time_s) &&
+ query_planer_next_plan(ops, now_end_time, new_point.sp.end_time_s))) {
+
+ // The end time of the current point, crosses our plans (tiers)
+ // so, we switched plan (tier)
+ //
+ // There are 2 cases now:
+ //
+ // A. the entire point of the previous plan is to the future of point from the next plan
+ // B. part of the point of the previous plan overlaps with the point from the next plan
+
+ STORAGE_POINT sp2 = storage_engine_query_next_metric(ops->seqh);
+ ops->db_points_read_per_tier[ops->tier]++;
+ ops->db_total_points_read++;
+
+ if(unlikely(options & RRDR_OPTION_ABSOLUTE))
+ storage_point_make_positive(sp);
+
+ if(sp.start_time_s > sp2.start_time_s)
+ // the point from the previous plan is useless
+ sp = sp2;
+ else
+ // let the query run from the previous plan
+ // but setting this will also cut off the interpolation
+ // of the point from the previous plan
+ next1_point = sp2;
+ }
+
+ new_point.sp = sp;
+ new_point.added = false;
+ query_point_set_id(new_point, ops->db_total_points_read);
+
+// if(debug_this)
+// netdata_log_info("QUERY: got point %zu, from time %ld to %ld // now from %ld to %ld // query from %ld to %ld",
+// new_point.id, new_point.start_time, new_point.end_time, now_start_time, now_end_time, after_wanted, before_wanted);
+//
+ // get the right value from the point we got
+ if(likely(!storage_point_is_unset(sp) && !storage_point_is_gap(sp))) {
+
+ if(unlikely(use_anomaly_bit_as_value))
+ new_point.value = storage_point_anomaly_rate(new_point.sp);
+
+ else {
+ switch (ops->tier_query_fetch) {
+ default:
+ case TIER_QUERY_FETCH_AVERAGE:
+ new_point.value = sp.sum / (NETDATA_DOUBLE)sp.count;
+ break;
+
+ case TIER_QUERY_FETCH_MIN:
+ new_point.value = sp.min;
+ break;
+
+ case TIER_QUERY_FETCH_MAX:
+ new_point.value = sp.max;
+ break;
+
+ case TIER_QUERY_FETCH_SUM:
+ new_point.value = sp.sum;
+ break;
+ }
+ }
+ }
+ else
+ new_point.value = NAN;
+ }
+
+ // check if the db is giving us zero duration points
+ if(unlikely(db_points_read_since_plan_switch > 1 &&
+ new_point.sp.start_time_s == new_point.sp.end_time_s)) {
+
+ internal_error(true, "QUERY: '%s', dimension '%s' next_metric() returned "
+ "point %zu from %ld to %ld, that are both equal",
+ qt->id, query_metric_id(qt, qm),
+ new_point.id, new_point.sp.start_time_s, new_point.sp.end_time_s);
+
+ new_point.sp.start_time_s = new_point.sp.end_time_s - ops->tier_ptr->db_update_every_s;
+ }
+
+ // check if the db is advancing the query
+ if(unlikely(db_points_read_since_plan_switch > 1 &&
+ new_point.sp.end_time_s <= last1_point.sp.end_time_s)) {
+
+ internal_error(true,
+ "QUERY: '%s', dimension '%s' next_metric() returned "
+ "point %zu from %ld to %ld, before the "
+ "last point %zu from %ld to %ld, "
+ "now is %ld to %ld",
+ qt->id, query_metric_id(qt, qm),
+ new_point.id, new_point.sp.start_time_s, new_point.sp.end_time_s,
+ last1_point.id, last1_point.sp.start_time_s, last1_point.sp.end_time_s,
+ now_start_time, now_end_time);
+
+ count_same_end_time++;
+ continue;
+ }
+ count_same_end_time = 0;
+
+ // decide how to use this point
+ if(likely(new_point.sp.end_time_s < now_end_time)) { // likely to favor tier0
+ // this db point ends before our now_end_time
+
+ if(likely(new_point.sp.end_time_s >= now_start_time)) { // likely to favor tier0
+ // this db point ends after our now_start time
+
+ query_add_point_to_group(r, new_point, ops, add_flush);
+ new_point.added = true;
+ }
+ else {
+ // we don't need this db point
+ // it is totally outside our current time-frame
+
+ // this is desirable for the first point of the query
+ // because it allows us to interpolate the next point
+ // at exactly the time we will want
+
+ // we only log if this is not point 1
+ internal_error(new_point.sp.end_time_s < ops->plan_expanded_after &&
+ db_points_read_since_plan_switch > 1,
+ "QUERY: '%s', dimension '%s' next_metric() "
+ "returned point %zu from %ld time %ld, "
+ "which is entirely before our current timeframe %ld to %ld "
+ "(and before the entire query, after %ld, before %ld)",
+ qt->id, query_metric_id(qt, qm),
+ new_point.id, new_point.sp.start_time_s, new_point.sp.end_time_s,
+ now_start_time, now_end_time,
+ ops->plan_expanded_after, ops->plan_expanded_before);
+ }
+
+ }
+ else {
+ // the point ends in the future
+ // so, we will interpolate it below, at the inner loop
+ break;
+ }
+ }
+
+ if(unlikely(count_same_end_time)) {
+ internal_error(true,
+ "QUERY: '%s', dimension '%s', the database does not advance the query,"
+ " it returned an end time less or equal to the end time of the last "
+ "point we got %ld, %zu times",
+ qt->id, query_metric_id(qt, qm),
+ last1_point.sp.end_time_s, count_same_end_time);
+
+ if(unlikely(new_point.sp.end_time_s <= last1_point.sp.end_time_s))
+ new_point.sp.end_time_s = now_end_time;
+ }
+
+ time_t stop_time = new_point.sp.end_time_s;
+ if(unlikely(!storage_point_is_unset(next1_point) && next1_point.start_time_s >= now_end_time)) {
+ // ONE POINT READ-AHEAD
+ // the point crosses the start time of the
+ // read ahead storage point we have read
+ stop_time = next1_point.start_time_s;
+ }
+
+ // the inner loop
+ // we have 3 points in memory: last2, last1, new
+ // we select the one to use based on their timestamps
+
+ internal_fatal(now_end_time > stop_time || points_added >= points_wanted,
+ "QUERY: first part of query provides invalid point to interpolate (now_end_time %ld, stop_time %ld",
+ now_end_time, stop_time);
+
+ do {
+ // now_start_time is wrong in this loop
+ // but, we don't need it
+
+ QUERY_POINT current_point;
+
+ if(likely(now_end_time > new_point.sp.start_time_s)) {
+ // it is time for our NEW point to be used
+ current_point = new_point;
+ new_point.added = true; // first copy, then set it, so that new_point will not be added again
+ query_interpolate_point(current_point, last1_point, now_end_time);
+
+// internal_error(current_point.id > 0
+// && last1_point.id == 0
+// && current_point.end_time > after_wanted
+// && current_point.end_time > now_end_time,
+// "QUERY: '%s', dimension '%s', after %ld, before %ld, view update every %ld,"
+// " query granularity %ld, interpolating point %zu (from %ld to %ld) at %ld,"
+// " but we could really favor by having last_point1 in this query.",
+// qt->id, string2str(qm->dimension.id),
+// after_wanted, before_wanted,
+// ops.view_update_every, ops.query_granularity,
+// current_point.id, current_point.start_time, current_point.end_time,
+// now_end_time);
+ }
+ else if(likely(now_end_time <= last1_point.sp.end_time_s)) {
+ // our LAST point is still valid
+ current_point = last1_point;
+ last1_point.added = true; // first copy, then set it, so that last1_point will not be added again
+ query_interpolate_point(current_point, last2_point, now_end_time);
+
+// internal_error(current_point.id > 0
+// && last2_point.id == 0
+// && current_point.end_time > after_wanted
+// && current_point.end_time > now_end_time,
+// "QUERY: '%s', dimension '%s', after %ld, before %ld, view update every %ld,"
+// " query granularity %ld, interpolating point %zu (from %ld to %ld) at %ld,"
+// " but we could really favor by having last_point2 in this query.",
+// qt->id, string2str(qm->dimension.id),
+// after_wanted, before_wanted, ops.view_update_every, ops.query_granularity,
+// current_point.id, current_point.start_time, current_point.end_time,
+// now_end_time);
+ }
+ else {
+ // a GAP, we don't have a value this time
+ current_point = QUERY_POINT_EMPTY;
+ }
+
+ query_add_point_to_group(r, current_point, ops, add_flush);
+
+ rrdr_line = rrdr_line_init(r, now_end_time, rrdr_line);
+ size_t rrdr_o_v_index = rrdr_line * r->d + dim_id_in_rrdr;
+
+ // find the place to store our values
+ RRDR_VALUE_FLAGS *rrdr_value_options_ptr = &r->o[rrdr_o_v_index];
+
+ // update the dimension options
+ if(likely(ops->group_points_non_zero))
+ r->od[dim_id_in_rrdr] |= RRDR_DIMENSION_NONZERO;
+
+ // store the specific point options
+ *rrdr_value_options_ptr = ops->group_value_flags;
+
+ // store the group value
+ NETDATA_DOUBLE group_value = time_grouping_flush(r, rrdr_value_options_ptr, add_flush);
+ r->v[rrdr_o_v_index] = group_value;
+
+ r->ar[rrdr_o_v_index] = storage_point_anomaly_rate(ops->group_point);
+
+ if(likely(points_added || r->internal.queries_count)) {
+ // find the min/max across all dimensions
+
+ if(unlikely(group_value < min)) min = group_value;
+ if(unlikely(group_value > max)) max = group_value;
+
+ }
+ else {
+ // runs only when r->internal.queries_count == 0 && points_added == 0
+ // so, on the first point added for the query.
+ min = max = group_value;
+ }
+
+ points_added++;
+ ops->group_points_added = 0;
+ ops->group_value_flags = RRDR_VALUE_NOTHING;
+ ops->group_points_non_zero = 0;
+ ops->group_point = STORAGE_POINT_UNSET;
+
+ now_end_time += ops->view_update_every;
+ } while(now_end_time <= stop_time && points_added < points_wanted);
+
+ // the loop above increased "now" by ops->view_update_every,
+ // but the main loop will increase it too,
+ // so, let's undo the last iteration of this loop
+ now_end_time -= ops->view_update_every;
+ }
+ query_planer_finalize_remaining_plans(ops);
+
+ qm->query_points = ops->query_point;
+
+ // fill the rest of the points with empty values
+ while (points_added < points_wanted) {
+ rrdr_line++;
+ size_t rrdr_o_v_index = rrdr_line * r->d + dim_id_in_rrdr;
+ r->o[rrdr_o_v_index] = RRDR_VALUE_EMPTY;
+ r->v[rrdr_o_v_index] = 0.0;
+ r->ar[rrdr_o_v_index] = 0.0;
+ points_added++;
+ }
+
+ r->internal.queries_count++;
+ r->view.min = min;
+ r->view.max = max;
+
+ r->stats.result_points_generated += points_added;
+ r->stats.db_points_read += ops->db_total_points_read;
+ for(size_t tr = 0; tr < storage_tiers ; tr++)
+ qt->db.tiers[tr].points += ops->db_points_read_per_tier[tr];
+}
+
+// ----------------------------------------------------------------------------
+// fill the gap of a tier
+
+void store_metric_at_tier(RRDDIM *rd, size_t tier, struct rrddim_tier *t, STORAGE_POINT sp, usec_t now_ut);
+
+void rrdr_fill_tier_gap_from_smaller_tiers(RRDDIM *rd, size_t tier, time_t now_s) {
+ if(unlikely(tier >= storage_tiers)) return;
+ if(storage_tiers_backfill[tier] == RRD_BACKFILL_NONE) return;
+
+ struct rrddim_tier *t = &rd->tiers[tier];
+ if(unlikely(!t)) return;
+
+ time_t latest_time_s = storage_engine_latest_time_s(t->seb, t->smh);
+ time_t granularity = (time_t)t->tier_grouping * (time_t)rd->rrdset->update_every;
+ time_t time_diff = now_s - latest_time_s;
+
+ // if the user wants only NEW backfilling, and we don't have any data
+ if(storage_tiers_backfill[tier] == RRD_BACKFILL_NEW && latest_time_s <= 0) return;
+
+ // there is really nothing we can do
+ if(now_s <= latest_time_s || time_diff < granularity) return;
+
+ struct storage_engine_query_handle seqh;
+
+ // for each lower tier
+ for(int read_tier = (int)tier - 1; read_tier >= 0 ; read_tier--){
+ time_t smaller_tier_first_time = storage_engine_oldest_time_s(rd->tiers[read_tier].seb, rd->tiers[read_tier].smh);
+ time_t smaller_tier_last_time = storage_engine_latest_time_s(rd->tiers[read_tier].seb, rd->tiers[read_tier].smh);
+ if(smaller_tier_last_time <= latest_time_s) continue; // it is as bad as we are
+
+ long after_wanted = (latest_time_s < smaller_tier_first_time) ? smaller_tier_first_time : latest_time_s;
+ long before_wanted = smaller_tier_last_time;
+
+ struct rrddim_tier *tmp = &rd->tiers[read_tier];
+ storage_engine_query_init(tmp->seb, tmp->smh, &seqh, after_wanted, before_wanted, STORAGE_PRIORITY_HIGH);
+
+ size_t points_read = 0;
+
+ while(!storage_engine_query_is_finished(&seqh)) {
+
+ STORAGE_POINT sp = storage_engine_query_next_metric(&seqh);
+ points_read++;
+
+ if(sp.end_time_s > latest_time_s) {
+ latest_time_s = sp.end_time_s;
+ store_metric_at_tier(rd, tier, t, sp, sp.end_time_s * USEC_PER_SEC);
+ }
+ }
+
+ storage_engine_query_finalize(&seqh);
+ store_metric_collection_completed();
+ global_statistics_backfill_query_completed(points_read);
+
+ //internal_error(true, "DBENGINE: backfilled chart '%s', dimension '%s', tier %d, from %ld to %ld, with %zu points from tier %d",
+ // rd->rrdset->name, rd->name, tier, after_wanted, before_wanted, points, tr);
+ }
+}
+
+// ----------------------------------------------------------------------------
+// fill RRDR for the whole chart
+
+#ifdef NETDATA_INTERNAL_CHECKS
+static void rrd2rrdr_log_request_response_metadata(RRDR *r
+ , RRDR_OPTIONS options __maybe_unused
+ , RRDR_TIME_GROUPING group_method
+ , bool aligned
+ , size_t group
+ , time_t resampling_time
+ , size_t resampling_group
+ , time_t after_wanted
+ , time_t after_requested
+ , time_t before_wanted
+ , time_t before_requested
+ , size_t points_requested
+ , size_t points_wanted
+ //, size_t after_slot
+ //, size_t before_slot
+ , const char *msg
+ ) {
+
+ QUERY_TARGET *qt = r->internal.qt;
+ time_t first_entry_s = qt->db.first_time_s;
+ time_t last_entry_s = qt->db.last_time_s;
+
+ internal_error(
+ true,
+ "rrd2rrdr() on %s update every %ld with %s grouping %s (group: %zu, resampling_time: %ld, resampling_group: %zu), "
+ "after (got: %ld, want: %ld, req: %ld, db: %ld), "
+ "before (got: %ld, want: %ld, req: %ld, db: %ld), "
+ "duration (got: %ld, want: %ld, req: %ld, db: %ld), "
+ "points (got: %zu, want: %zu, req: %zu), "
+ "%s"
+ , qt->id
+ , qt->window.query_granularity
+
+ // grouping
+ , (aligned) ? "aligned" : "unaligned"
+ , time_grouping_id2txt(group_method)
+ , group
+ , resampling_time
+ , resampling_group
+
+ // after
+ , r->view.after
+ , after_wanted
+ , after_requested
+ , first_entry_s
+
+ // before
+ , r->view.before
+ , before_wanted
+ , before_requested
+ , last_entry_s
+
+ // duration
+ , (long)(r->view.before - r->view.after + qt->window.query_granularity)
+ , (long)(before_wanted - after_wanted + qt->window.query_granularity)
+ , (long)before_requested - after_requested
+ , (long)((last_entry_s - first_entry_s) + qt->window.query_granularity)
+
+ // points
+ , r->rows
+ , points_wanted
+ , points_requested
+
+ // message
+ , msg
+ );
+}
+#endif // NETDATA_INTERNAL_CHECKS
+
+// #define DEBUG_QUERY_LOGIC 1
+
+#ifdef DEBUG_QUERY_LOGIC
+#define query_debug_log_init() BUFFER *debug_log = buffer_create(1000)
+#define query_debug_log(args...) buffer_sprintf(debug_log, ##args)
+#define query_debug_log_fin() { \
+ netdata_log_info("QUERY: '%s', after:%ld, before:%ld, duration:%ld, points:%zu, res:%ld - wanted => after:%ld, before:%ld, points:%zu, group:%zu, granularity:%ld, resgroup:%ld, resdiv:" NETDATA_DOUBLE_FORMAT_AUTO " %s", qt->id, after_requested, before_requested, before_requested - after_requested, points_requested, resampling_time_requested, after_wanted, before_wanted, points_wanted, group, query_granularity, resampling_group, resampling_divisor, buffer_tostring(debug_log)); \
+ buffer_free(debug_log); \
+ debug_log = NULL; \
+ }
+#define query_debug_log_free() do { buffer_free(debug_log); } while(0)
+#else
+#define query_debug_log_init() debug_dummy()
+#define query_debug_log(args...) debug_dummy()
+#define query_debug_log_fin() debug_dummy()
+#define query_debug_log_free() debug_dummy()
+#endif
+
+bool query_target_calculate_window(QUERY_TARGET *qt) {
+ if (unlikely(!qt)) return false;
+
+ size_t points_requested = (long)qt->request.points;
+ time_t after_requested = qt->request.after;
+ time_t before_requested = qt->request.before;
+ RRDR_TIME_GROUPING group_method = qt->request.time_group_method;
+ time_t resampling_time_requested = qt->request.resampling_time;
+ RRDR_OPTIONS options = qt->window.options;
+ size_t tier = qt->request.tier;
+ time_t update_every = qt->db.minimum_latest_update_every_s ? qt->db.minimum_latest_update_every_s : 1;
+
+ // RULES
+ // points_requested = 0
+ // the user wants all the natural points the database has
+ //
+ // after_requested = 0
+ // the user wants to start the query from the oldest point in our database
+ //
+ // before_requested = 0
+ // the user wants the query to end to the latest point in our database
+ //
+ // when natural points are wanted, the query has to be aligned to the update_every
+ // of the database
+
+ size_t points_wanted = points_requested;
+ time_t after_wanted = after_requested;
+ time_t before_wanted = before_requested;
+
+ bool aligned = !(options & RRDR_OPTION_NOT_ALIGNED);
+ bool automatic_natural_points = (points_wanted == 0);
+ bool relative_period_requested = false;
+ bool natural_points = (options & RRDR_OPTION_NATURAL_POINTS) || automatic_natural_points;
+ bool before_is_aligned_to_db_end = false;
+
+ query_debug_log_init();
+
+ if (ABS(before_requested) <= API_RELATIVE_TIME_MAX || ABS(after_requested) <= API_RELATIVE_TIME_MAX) {
+ relative_period_requested = true;
+ natural_points = true;
+ options |= RRDR_OPTION_NATURAL_POINTS;
+ query_debug_log(":relative+natural");
+ }
+
+ // if the user wants virtual points, make sure we do it
+ if (options & RRDR_OPTION_VIRTUAL_POINTS)
+ natural_points = false;
+
+ // set the right flag about natural and virtual points
+ if (natural_points) {
+ options |= RRDR_OPTION_NATURAL_POINTS;
+
+ if (options & RRDR_OPTION_VIRTUAL_POINTS)
+ options &= ~RRDR_OPTION_VIRTUAL_POINTS;
+ }
+ else {
+ options |= RRDR_OPTION_VIRTUAL_POINTS;
+
+ if (options & RRDR_OPTION_NATURAL_POINTS)
+ options &= ~RRDR_OPTION_NATURAL_POINTS;
+ }
+
+ if (after_wanted == 0 || before_wanted == 0) {
+ relative_period_requested = true;
+
+ time_t first_entry_s = qt->db.first_time_s;
+ time_t last_entry_s = qt->db.last_time_s;
+
+ if (first_entry_s == 0 || last_entry_s == 0) {
+ internal_error(true, "QUERY: no data detected on query '%s' (db first_entry_t = %ld, last_entry_t = %ld)", qt->id, first_entry_s, last_entry_s);
+ after_wanted = qt->window.after;
+ before_wanted = qt->window.before;
+
+ if(after_wanted == before_wanted)
+ after_wanted = before_wanted - update_every;
+
+ if (points_wanted == 0) {
+ points_wanted = (before_wanted - after_wanted) / update_every;
+ query_debug_log(":zero points_wanted %zu", points_wanted);
+ }
+ }
+ else {
+ query_debug_log(":first_entry_t %ld, last_entry_t %ld", first_entry_s, last_entry_s);
+
+ if (after_wanted == 0) {
+ after_wanted = first_entry_s;
+ query_debug_log(":zero after_wanted %ld", after_wanted);
+ }
+
+ if (before_wanted == 0) {
+ before_wanted = last_entry_s;
+ before_is_aligned_to_db_end = true;
+ query_debug_log(":zero before_wanted %ld", before_wanted);
+ }
+
+ if (points_wanted == 0) {
+ points_wanted = (last_entry_s - first_entry_s) / update_every;
+ query_debug_log(":zero points_wanted %zu", points_wanted);
+ }
+ }
+ }
+
+ if (points_wanted == 0) {
+ points_wanted = 600;
+ query_debug_log(":zero600 points_wanted %zu", points_wanted);
+ }
+
+ // convert our before_wanted and after_wanted to absolute
+ rrdr_relative_window_to_absolute_query(&after_wanted, &before_wanted, NULL, unittest_running);
+ query_debug_log(":relative2absolute after %ld, before %ld", after_wanted, before_wanted);
+
+ if (natural_points && (options & RRDR_OPTION_SELECTED_TIER) && tier > 0 && storage_tiers > 1) {
+ update_every = rrdset_find_natural_update_every_for_timeframe(
+ qt, after_wanted, before_wanted, points_wanted, options, tier);
+
+ if (update_every <= 0) update_every = qt->db.minimum_latest_update_every_s;
+ query_debug_log(":natural update every %ld", update_every);
+ }
+
+ // this is the update_every of the query
+ // it may be different to the update_every of the database
+ time_t query_granularity = (natural_points) ? update_every : 1;
+ if (query_granularity <= 0) query_granularity = 1;
+ query_debug_log(":query_granularity %ld", query_granularity);
+
+ // align before_wanted and after_wanted to query_granularity
+ if (before_wanted % query_granularity) {
+ before_wanted -= before_wanted % query_granularity;
+ query_debug_log(":granularity align before_wanted %ld", before_wanted);
+ }
+
+ if (after_wanted % query_granularity) {
+ after_wanted -= after_wanted % query_granularity;
+ query_debug_log(":granularity align after_wanted %ld", after_wanted);
+ }
+
+ // automatic_natural_points is set when the user wants all the points available in the database
+ if (automatic_natural_points) {
+ points_wanted = (before_wanted - after_wanted + 1) / query_granularity;
+ if (unlikely(points_wanted <= 0)) points_wanted = 1;
+ query_debug_log(":auto natural points_wanted %zu", points_wanted);
+ }
+
+ time_t duration = before_wanted - after_wanted;
+
+ // if the resampling time is too big, extend the duration to the past
+ if (unlikely(resampling_time_requested > duration)) {
+ after_wanted = before_wanted - resampling_time_requested;
+ duration = before_wanted - after_wanted;
+ query_debug_log(":resampling after_wanted %ld", after_wanted);
+ }
+
+ // if the duration is not aligned to resampling time
+ // extend the duration to the past, to avoid a gap at the chart
+ // only when the missing duration is above 1/10th of a point
+ if (resampling_time_requested > query_granularity && duration % resampling_time_requested) {
+ time_t delta = duration % resampling_time_requested;
+ if (delta > resampling_time_requested / 10) {
+ after_wanted -= resampling_time_requested - delta;
+ duration = before_wanted - after_wanted;
+ query_debug_log(":resampling2 after_wanted %ld", after_wanted);
+ }
+ }
+
+ // the available points of the query
+ size_t points_available = (duration + 1) / query_granularity;
+ if (unlikely(points_available <= 0)) points_available = 1;
+ query_debug_log(":points_available %zu", points_available);
+
+ if (points_wanted > points_available) {
+ points_wanted = points_available;
+ query_debug_log(":max points_wanted %zu", points_wanted);
+ }
+
+ if(points_wanted > 86400 && !unittest_running) {
+ points_wanted = 86400;
+ query_debug_log(":absolute max points_wanted %zu", points_wanted);
+ }
+
+ // calculate the desired grouping of source data points
+ size_t group = points_available / points_wanted;
+ if (group == 0) group = 1;
+
+ // round "group" to the closest integer
+ if (points_available % points_wanted > points_wanted / 2)
+ group++;
+
+ query_debug_log(":group %zu", group);
+
+ if (points_wanted * group * query_granularity < (size_t)duration) {
+ // the grouping we are going to do, is not enough
+ // to cover the entire duration requested, so
+ // we have to change the number of points, to make sure we will
+ // respect the timeframe as closely as possibly
+
+ // let's see how many points are the optimal
+ points_wanted = points_available / group;
+
+ if (points_wanted * group < points_available)
+ points_wanted++;
+
+ if (unlikely(points_wanted == 0))
+ points_wanted = 1;
+
+ query_debug_log(":optimal points %zu", points_wanted);
+ }
+
+ // resampling_time_requested enforces a certain grouping multiple
+ NETDATA_DOUBLE resampling_divisor = 1.0;
+ size_t resampling_group = 1;
+ if (unlikely(resampling_time_requested > query_granularity)) {
+ // the points we should group to satisfy gtime
+ resampling_group = resampling_time_requested / query_granularity;
+ if (unlikely(resampling_time_requested % query_granularity))
+ resampling_group++;
+
+ query_debug_log(":resampling group %zu", resampling_group);
+
+ // adapt group according to resampling_group
+ if (unlikely(group < resampling_group)) {
+ group = resampling_group; // do not allow grouping below the desired one
+ query_debug_log(":group less res %zu", group);
+ }
+ if (unlikely(group % resampling_group)) {
+ group += resampling_group - (group % resampling_group); // make sure group is multiple of resampling_group
+ query_debug_log(":group mod res %zu", group);
+ }
+
+ // resampling_divisor = group / resampling_group;
+ resampling_divisor = (NETDATA_DOUBLE) (group * query_granularity) / (NETDATA_DOUBLE) resampling_time_requested;
+ query_debug_log(":resampling divisor " NETDATA_DOUBLE_FORMAT, resampling_divisor);
+ }
+
+ // now that we have group, align the requested timeframe to fit it.
+ if (aligned && before_wanted % (group * query_granularity)) {
+ if (before_is_aligned_to_db_end)
+ before_wanted -= before_wanted % (time_t)(group * query_granularity);
+ else
+ before_wanted += (time_t)(group * query_granularity) - before_wanted % (time_t)(group * query_granularity);
+ query_debug_log(":align before_wanted %ld", before_wanted);
+ }
+
+ after_wanted = before_wanted - (time_t)(points_wanted * group * query_granularity) + query_granularity;
+ query_debug_log(":final after_wanted %ld", after_wanted);
+
+ duration = before_wanted - after_wanted;
+ query_debug_log(":final duration %ld", duration + 1);
+
+ query_debug_log_fin();
+
+ internal_error(points_wanted != duration / (query_granularity * group) + 1,
+ "QUERY: points_wanted %zu is not points %zu",
+ points_wanted, (size_t)(duration / (query_granularity * group) + 1));
+
+ internal_error(group < resampling_group,
+ "QUERY: group %zu is less than the desired group points %zu",
+ group, resampling_group);
+
+ internal_error(group > resampling_group && group % resampling_group,
+ "QUERY: group %zu is not a multiple of the desired group points %zu",
+ group, resampling_group);
+
+ // -------------------------------------------------------------------------
+ // update QUERY_TARGET with our calculations
+
+ qt->window.after = after_wanted;
+ qt->window.before = before_wanted;
+ qt->window.relative = relative_period_requested;
+ qt->window.points = points_wanted;
+ qt->window.group = group;
+ qt->window.time_group_method = group_method;
+ qt->window.time_group_options = qt->request.time_group_options;
+ qt->window.query_granularity = query_granularity;
+ qt->window.resampling_group = resampling_group;
+ qt->window.resampling_divisor = resampling_divisor;
+ qt->window.options = options;
+ qt->window.tier = tier;
+ qt->window.aligned = aligned;
+
+ return true;
+}
+
+// ----------------------------------------------------------------------------
+// group by
+
+struct group_by_label_key {
+ DICTIONARY *values;
+};
+
+static void group_by_label_key_insert_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data) {
+ // add the key to our r->label_keys global keys dictionary
+ DICTIONARY *label_keys = data;
+ dictionary_set(label_keys, dictionary_acquired_item_name(item), NULL, 0);
+
+ // create a dictionary for the values of this key
+ struct group_by_label_key *k = value;
+ k->values = dictionary_create_advanced(DICT_OPTION_SINGLE_THREADED | DICT_OPTION_DONT_OVERWRITE_VALUE, NULL, 0);
+}
+
+static void group_by_label_key_delete_cb(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
+ struct group_by_label_key *k = value;
+ dictionary_destroy(k->values);
+}
+
+static int rrdlabels_traversal_cb_to_group_by_label_key(const char *name, const char *value, RRDLABEL_SRC ls __maybe_unused, void *data) {
+ DICTIONARY *dl = data;
+ struct group_by_label_key *k = dictionary_set(dl, name, NULL, sizeof(struct group_by_label_key));
+ dictionary_set(k->values, value, NULL, 0);
+ return 1;
+}
+
+void rrdr_json_group_by_labels(BUFFER *wb, const char *key, RRDR *r, RRDR_OPTIONS options) {
+ if(!r->label_keys || !r->dl)
+ return;
+
+ buffer_json_member_add_object(wb, key);
+
+ void *t;
+ dfe_start_read(r->label_keys, t) {
+ buffer_json_member_add_array(wb, t_dfe.name);
+
+ for(size_t d = 0; d < r->d ;d++) {
+ if(!rrdr_dimension_should_be_exposed(r->od[d], options))
+ continue;
+
+ struct group_by_label_key *k = dictionary_get(r->dl[d], t_dfe.name);
+ if(k) {
+ buffer_json_add_array_item_array(wb);
+ void *tt;
+ dfe_start_read(k->values, tt) {
+ buffer_json_add_array_item_string(wb, tt_dfe.name);
+ }
+ dfe_done(tt);
+ buffer_json_array_close(wb);
+ }
+ else
+ buffer_json_add_array_item_string(wb, NULL);
+ }
+
+ buffer_json_array_close(wb);
+ }
+ dfe_done(t);
+
+ buffer_json_object_close(wb); // key
+}
+
+static void rrd2rrdr_set_timestamps(RRDR *r) {
+ QUERY_TARGET *qt = r->internal.qt;
+
+ internal_fatal(qt->window.points != r->n, "QUERY: mismatch to the number of points in qt and r");
+
+ r->view.group = qt->window.group;
+ r->view.update_every = (int) query_view_update_every(qt);
+ r->view.before = qt->window.before;
+ r->view.after = qt->window.after;
+
+ r->time_grouping.points_wanted = qt->window.points;
+ r->time_grouping.resampling_group = qt->window.resampling_group;
+ r->time_grouping.resampling_divisor = qt->window.resampling_divisor;
+
+ r->rows = qt->window.points;
+
+ size_t points_wanted = qt->window.points;
+ time_t after_wanted = qt->window.after;
+ time_t before_wanted = qt->window.before; (void)before_wanted;
+
+ time_t view_update_every = r->view.update_every;
+ time_t query_granularity = (time_t)(r->view.update_every / r->view.group);
+
+ size_t rrdr_line = 0;
+ time_t first_point_end_time = after_wanted + view_update_every - query_granularity;
+ time_t now_end_time = first_point_end_time;
+
+ while (rrdr_line < points_wanted) {
+ r->t[rrdr_line++] = now_end_time;
+ now_end_time += view_update_every;
+ }
+
+ internal_fatal(r->t[0] != first_point_end_time, "QUERY: wrong first timestamp in the query");
+ internal_error(r->t[points_wanted - 1] != before_wanted,
+ "QUERY: wrong last timestamp in the query, expected %ld, found %ld",
+ before_wanted, r->t[points_wanted - 1]);
+}
+
+static void query_group_by_make_dimension_key(BUFFER *key, RRDR_GROUP_BY group_by, size_t group_by_id, QUERY_TARGET *qt, QUERY_NODE *qn, QUERY_CONTEXT *qc, QUERY_INSTANCE *qi, QUERY_DIMENSION *qd __maybe_unused, QUERY_METRIC *qm, bool query_has_percentage_of_group) {
+ buffer_flush(key);
+ if(unlikely(!query_has_percentage_of_group && qm->status & RRDR_DIMENSION_HIDDEN)) {
+ buffer_strcat(key, "__hidden_dimensions__");
+ }
+ else if(unlikely(group_by & RRDR_GROUP_BY_SELECTED)) {
+ buffer_strcat(key, "selected");
+ }
+ else {
+ if (group_by & RRDR_GROUP_BY_DIMENSION) {
+ buffer_fast_strcat(key, "|", 1);
+ buffer_strcat(key, query_metric_name(qt, qm));
+ }
+
+ if (group_by & (RRDR_GROUP_BY_INSTANCE|RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE)) {
+ buffer_fast_strcat(key, "|", 1);
+ buffer_strcat(key, string2str(query_instance_id_fqdn(qi, qt->request.version)));
+ }
+
+ if (group_by & RRDR_GROUP_BY_LABEL) {
+ RRDLABELS *labels = rrdinstance_acquired_labels(qi->ria);
+ for (size_t l = 0; l < qt->group_by[group_by_id].used; l++) {
+ buffer_fast_strcat(key, "|", 1);
+ rrdlabels_get_value_to_buffer_or_unset(labels, key, qt->group_by[group_by_id].label_keys[l], "[unset]");
+ }
+ }
+
+ if (group_by & RRDR_GROUP_BY_NODE) {
+ buffer_fast_strcat(key, "|", 1);
+ buffer_strcat(key, qn->rrdhost->machine_guid);
+ }
+
+ if (group_by & RRDR_GROUP_BY_CONTEXT) {
+ buffer_fast_strcat(key, "|", 1);
+ buffer_strcat(key, rrdcontext_acquired_id(qc->rca));
+ }
+
+ if (group_by & RRDR_GROUP_BY_UNITS) {
+ buffer_fast_strcat(key, "|", 1);
+ buffer_strcat(key, query_target_has_percentage_units(qt) ? "%" : rrdinstance_acquired_units(qi->ria));
+ }
+ }
+}
+
+static void query_group_by_make_dimension_id(BUFFER *key, RRDR_GROUP_BY group_by, size_t group_by_id, QUERY_TARGET *qt, QUERY_NODE *qn, QUERY_CONTEXT *qc, QUERY_INSTANCE *qi, QUERY_DIMENSION *qd __maybe_unused, QUERY_METRIC *qm, bool query_has_percentage_of_group) {
+ buffer_flush(key);
+ if(unlikely(!query_has_percentage_of_group && qm->status & RRDR_DIMENSION_HIDDEN)) {
+ buffer_strcat(key, "__hidden_dimensions__");
+ }
+ else if(unlikely(group_by & RRDR_GROUP_BY_SELECTED)) {
+ buffer_strcat(key, "selected");
+ }
+ else {
+ if (group_by & RRDR_GROUP_BY_DIMENSION) {
+ buffer_strcat(key, query_metric_name(qt, qm));
+ }
+
+ if (group_by & (RRDR_GROUP_BY_INSTANCE|RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE)) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ if (group_by & RRDR_GROUP_BY_NODE)
+ buffer_strcat(key, rrdinstance_acquired_id(qi->ria));
+ else
+ buffer_strcat(key, string2str(query_instance_id_fqdn(qi, qt->request.version)));
+ }
+
+ if (group_by & RRDR_GROUP_BY_LABEL) {
+ RRDLABELS *labels = rrdinstance_acquired_labels(qi->ria);
+ for (size_t l = 0; l < qt->group_by[group_by_id].used; l++) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+ rrdlabels_get_value_to_buffer_or_unset(labels, key, qt->group_by[group_by_id].label_keys[l], "[unset]");
+ }
+ }
+
+ if (group_by & RRDR_GROUP_BY_NODE) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ buffer_strcat(key, qn->rrdhost->machine_guid);
+ }
+
+ if (group_by & RRDR_GROUP_BY_CONTEXT) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ buffer_strcat(key, rrdcontext_acquired_id(qc->rca));
+ }
+
+ if (group_by & RRDR_GROUP_BY_UNITS) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ buffer_strcat(key, query_target_has_percentage_units(qt) ? "%" : rrdinstance_acquired_units(qi->ria));
+ }
+ }
+}
+
+static void query_group_by_make_dimension_name(BUFFER *key, RRDR_GROUP_BY group_by, size_t group_by_id, QUERY_TARGET *qt, QUERY_NODE *qn, QUERY_CONTEXT *qc, QUERY_INSTANCE *qi, QUERY_DIMENSION *qd __maybe_unused, QUERY_METRIC *qm, bool query_has_percentage_of_group) {
+ buffer_flush(key);
+ if(unlikely(!query_has_percentage_of_group && qm->status & RRDR_DIMENSION_HIDDEN)) {
+ buffer_strcat(key, "__hidden_dimensions__");
+ }
+ else if(unlikely(group_by & RRDR_GROUP_BY_SELECTED)) {
+ buffer_strcat(key, "selected");
+ }
+ else {
+ if (group_by & RRDR_GROUP_BY_DIMENSION) {
+ buffer_strcat(key, query_metric_name(qt, qm));
+ }
+
+ if (group_by & (RRDR_GROUP_BY_INSTANCE|RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE)) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ if (group_by & RRDR_GROUP_BY_NODE)
+ buffer_strcat(key, rrdinstance_acquired_name(qi->ria));
+ else
+ buffer_strcat(key, string2str(query_instance_name_fqdn(qi, qt->request.version)));
+ }
+
+ if (group_by & RRDR_GROUP_BY_LABEL) {
+ RRDLABELS *labels = rrdinstance_acquired_labels(qi->ria);
+ for (size_t l = 0; l < qt->group_by[group_by_id].used; l++) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+ rrdlabels_get_value_to_buffer_or_unset(labels, key, qt->group_by[group_by_id].label_keys[l], "[unset]");
+ }
+ }
+
+ if (group_by & RRDR_GROUP_BY_NODE) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ buffer_strcat(key, rrdhost_hostname(qn->rrdhost));
+ }
+
+ if (group_by & RRDR_GROUP_BY_CONTEXT) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ buffer_strcat(key, rrdcontext_acquired_id(qc->rca));
+ }
+
+ if (group_by & RRDR_GROUP_BY_UNITS) {
+ if (buffer_strlen(key) != 0)
+ buffer_fast_strcat(key, ",", 1);
+
+ buffer_strcat(key, query_target_has_percentage_units(qt) ? "%" : rrdinstance_acquired_units(qi->ria));
+ }
+ }
+}
+
+struct rrdr_group_by_entry {
+ size_t priority;
+ size_t count;
+ STRING *id;
+ STRING *name;
+ STRING *units;
+ RRDR_DIMENSION_FLAGS od;
+ DICTIONARY *dl;
+};
+
+static RRDR *rrd2rrdr_group_by_initialize(ONEWAYALLOC *owa, QUERY_TARGET *qt) {
+ RRDR *r_tmp = NULL;
+ RRDR_OPTIONS options = qt->window.options;
+
+ if(qt->request.version < 2) {
+ // v1 query
+ RRDR *r = rrdr_create(owa, qt, qt->query.used, qt->window.points);
+ if(unlikely(!r)) {
+ internal_error(true, "QUERY: cannot create RRDR for %s, after=%ld, before=%ld, dimensions=%u, points=%zu",
+ qt->id, qt->window.after, qt->window.before, qt->query.used, qt->window.points);
+ return NULL;
+ }
+ r->group_by.r = NULL;
+
+ for(size_t d = 0; d < qt->query.used ; d++) {
+ QUERY_METRIC *qm = query_metric(qt, d);
+ QUERY_DIMENSION *qd = query_dimension(qt, qm->link.query_dimension_id);
+ r->di[d] = rrdmetric_acquired_id_dup(qd->rma);
+ r->dn[d] = rrdmetric_acquired_name_dup(qd->rma);
+ }
+
+ rrd2rrdr_set_timestamps(r);
+ return r;
+ }
+ // v2 query
+
+ // parse all the group-by label keys
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++) {
+ if (qt->request.group_by[g].group_by & RRDR_GROUP_BY_LABEL &&
+ qt->request.group_by[g].group_by_label && *qt->request.group_by[g].group_by_label)
+ qt->group_by[g].used = quoted_strings_splitter_query_group_by_label(
+ qt->request.group_by[g].group_by_label, qt->group_by[g].label_keys,
+ GROUP_BY_MAX_LABEL_KEYS);
+
+ if (!qt->group_by[g].used)
+ qt->request.group_by[g].group_by &= ~RRDR_GROUP_BY_LABEL;
+ }
+
+ // make sure there are valid group-by methods
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++) {
+ if(!(qt->request.group_by[g].group_by & SUPPORTED_GROUP_BY_METHODS))
+ qt->request.group_by[g].group_by = (g == 0) ? RRDR_GROUP_BY_DIMENSION : RRDR_GROUP_BY_NONE;
+ }
+
+ bool query_has_percentage_of_group = query_target_has_percentage_of_group(qt);
+
+ // merge all group-by options to upper levels,
+ // so that the top level has all the groupings of the inner levels,
+ // and each subsequent level has all the groupings of its inner levels.
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES - 1 ;g++) {
+ if(qt->request.group_by[g].group_by == RRDR_GROUP_BY_NONE)
+ continue;
+
+ if(qt->request.group_by[g].group_by == RRDR_GROUP_BY_SELECTED) {
+ for (size_t r = g + 1; r < MAX_QUERY_GROUP_BY_PASSES; r++)
+ qt->request.group_by[r].group_by = RRDR_GROUP_BY_NONE;
+ }
+ else {
+ for (size_t r = g + 1; r < MAX_QUERY_GROUP_BY_PASSES; r++) {
+ if (qt->request.group_by[r].group_by == RRDR_GROUP_BY_NONE)
+ continue;
+
+ if (qt->request.group_by[r].group_by != RRDR_GROUP_BY_SELECTED) {
+ if(qt->request.group_by[r].group_by & RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE)
+ qt->request.group_by[g].group_by |= RRDR_GROUP_BY_INSTANCE;
+ else
+ qt->request.group_by[g].group_by |= qt->request.group_by[r].group_by;
+
+ if(qt->request.group_by[r].group_by & RRDR_GROUP_BY_LABEL) {
+ for (size_t lr = 0; lr < qt->group_by[r].used; lr++) {
+ bool found = false;
+ for (size_t lg = 0; lg < qt->group_by[g].used; lg++) {
+ if (strcmp(qt->group_by[g].label_keys[lg], qt->group_by[r].label_keys[lr]) == 0) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found && qt->group_by[g].used < GROUP_BY_MAX_LABEL_KEYS * MAX_QUERY_GROUP_BY_PASSES)
+ qt->group_by[g].label_keys[qt->group_by[g].used++] = qt->group_by[r].label_keys[lr];
+ }
+ }
+ }
+ }
+ }
+ }
+
+ int added = 0;
+ RRDR *first_r = NULL, *last_r = NULL;
+ BUFFER *key = buffer_create(0, NULL);
+ struct rrdr_group_by_entry *entries = onewayalloc_mallocz(owa, qt->query.used * sizeof(struct rrdr_group_by_entry));
+ DICTIONARY *groups = dictionary_create(DICT_OPTION_SINGLE_THREADED | DICT_OPTION_DONT_OVERWRITE_VALUE);
+ DICTIONARY *label_keys = NULL;
+
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++) {
+ RRDR_GROUP_BY group_by = qt->request.group_by[g].group_by;
+ RRDR_GROUP_BY_FUNCTION aggregation_method = qt->request.group_by[g].aggregation;
+
+ if(group_by == RRDR_GROUP_BY_NONE)
+ break;
+
+ memset(entries, 0, qt->query.used * sizeof(struct rrdr_group_by_entry));
+ dictionary_flush(groups);
+ added = 0;
+
+ size_t hidden_dimensions = 0;
+ bool final_grouping = (g == MAX_QUERY_GROUP_BY_PASSES - 1 || qt->request.group_by[g + 1].group_by == RRDR_GROUP_BY_NONE) ? true : false;
+
+ if (final_grouping && (options & RRDR_OPTION_GROUP_BY_LABELS))
+ label_keys = dictionary_create_advanced(DICT_OPTION_SINGLE_THREADED | DICT_OPTION_DONT_OVERWRITE_VALUE, NULL, 0);
+
+ QUERY_INSTANCE *last_qi = NULL;
+ size_t priority = 0;
+ time_t update_every_max = 0;
+ for (size_t d = 0; d < qt->query.used; d++) {
+ QUERY_METRIC *qm = query_metric(qt, d);
+ QUERY_DIMENSION *qd = query_dimension(qt, qm->link.query_dimension_id);
+ QUERY_INSTANCE *qi = query_instance(qt, qm->link.query_instance_id);
+ QUERY_CONTEXT *qc = query_context(qt, qm->link.query_context_id);
+ QUERY_NODE *qn = query_node(qt, qm->link.query_node_id);
+
+ if (qi != last_qi) {
+ last_qi = qi;
+
+ time_t update_every = rrdinstance_acquired_update_every(qi->ria);
+ if (update_every > update_every_max)
+ update_every_max = update_every;
+ }
+
+ priority = qd->priority;
+
+ if(qm->status & RRDR_DIMENSION_HIDDEN)
+ hidden_dimensions++;
+
+ // --------------------------------------------------------------------
+ // generate the group by key
+
+ query_group_by_make_dimension_key(key, group_by, g, qt, qn, qc, qi, qd, qm, query_has_percentage_of_group);
+
+ // lookup the key in the dictionary
+
+ int pos = -1;
+ int *set = dictionary_set(groups, buffer_tostring(key), &pos, sizeof(pos));
+ if (*set == -1) {
+ // the key just added to the dictionary
+
+ *set = pos = added++;
+
+ // ----------------------------------------------------------------
+ // generate the dimension id
+
+ query_group_by_make_dimension_id(key, group_by, g, qt, qn, qc, qi, qd, qm, query_has_percentage_of_group);
+ entries[pos].id = string_strdupz(buffer_tostring(key));
+
+ // ----------------------------------------------------------------
+ // generate the dimension name
+
+ query_group_by_make_dimension_name(key, group_by, g, qt, qn, qc, qi, qd, qm, query_has_percentage_of_group);
+ entries[pos].name = string_strdupz(buffer_tostring(key));
+
+ // add the rest of the info
+ entries[pos].units = rrdinstance_acquired_units_dup(qi->ria);
+ entries[pos].priority = priority;
+
+ if (label_keys) {
+ entries[pos].dl = dictionary_create_advanced(
+ DICT_OPTION_SINGLE_THREADED | DICT_OPTION_FIXED_SIZE | DICT_OPTION_DONT_OVERWRITE_VALUE,
+ NULL, sizeof(struct group_by_label_key));
+ dictionary_register_insert_callback(entries[pos].dl, group_by_label_key_insert_cb, label_keys);
+ dictionary_register_delete_callback(entries[pos].dl, group_by_label_key_delete_cb, label_keys);
+ }
+ } else {
+ // the key found in the dictionary
+ pos = *set;
+ }
+
+ entries[pos].count++;
+
+ if (unlikely(priority < entries[pos].priority))
+ entries[pos].priority = priority;
+
+ if(g > 0)
+ last_r->dgbs[qm->grouped_as.slot] = pos;
+ else
+ qm->grouped_as.first_slot = pos;
+
+ qm->grouped_as.slot = pos;
+ qm->grouped_as.id = entries[pos].id;
+ qm->grouped_as.name = entries[pos].name;
+ qm->grouped_as.units = entries[pos].units;
+
+ // copy the dimension flags decided by the query target
+ // we need this, because if a dimension is explicitly selected
+ // the query target adds to it the non-zero flag
+ qm->status |= RRDR_DIMENSION_GROUPED;
+
+ if(query_has_percentage_of_group)
+ // when the query has percentage of group
+ // there will be no hidden dimensions in the final query,
+ // so we have to remove the hidden flag from all dimensions
+ entries[pos].od |= qm->status & ~RRDR_DIMENSION_HIDDEN;
+ else
+ entries[pos].od |= qm->status;
+
+ if (entries[pos].dl)
+ rrdlabels_walkthrough_read(rrdinstance_acquired_labels(qi->ria),
+ rrdlabels_traversal_cb_to_group_by_label_key, entries[pos].dl);
+ }
+
+ RRDR *r = rrdr_create(owa, qt, added, qt->window.points);
+ if (!r) {
+ internal_error(true,
+ "QUERY: cannot create group by RRDR for %s, after=%ld, before=%ld, dimensions=%d, points=%zu",
+ qt->id, qt->window.after, qt->window.before, added, qt->window.points);
+ goto cleanup;
+ }
+ // prevent double free at cleanup in case of error
+ added = 0;
+
+ // link this RRDR
+ if(!last_r)
+ first_r = last_r = r;
+ else
+ last_r->group_by.r = r;
+
+ last_r = r;
+
+ rrd2rrdr_set_timestamps(r);
+ r->dp = onewayalloc_callocz(owa, r->d, sizeof(*r->dp));
+ r->dview = onewayalloc_callocz(owa, r->d, sizeof(*r->dview));
+ r->dgbc = onewayalloc_callocz(owa, r->d, sizeof(*r->dgbc));
+ r->gbc = onewayalloc_callocz(owa, r->n * r->d, sizeof(*r->gbc));
+ r->dqp = onewayalloc_callocz(owa, r->d, sizeof(STORAGE_POINT));
+
+ if(hidden_dimensions && ((group_by & RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE) || (aggregation_method == RRDR_GROUP_BY_FUNCTION_PERCENTAGE)))
+ // this is where we are going to group the hidden dimensions
+ r->vh = onewayalloc_mallocz(owa, r->n * r->d * sizeof(*r->vh));
+
+ if(!final_grouping)
+ // this is where we are going to store the slot in the next RRDR
+ // that we are going to group by the dimension of this RRDR
+ r->dgbs = onewayalloc_callocz(owa, r->d, sizeof(*r->dgbs));
+
+ if (label_keys) {
+ r->dl = onewayalloc_callocz(owa, r->d, sizeof(DICTIONARY *));
+ r->label_keys = label_keys;
+ label_keys = NULL;
+ }
+
+ // zero r (dimension options, names, and ids)
+ // this is required, because group-by may lead to empty dimensions
+ for (size_t d = 0; d < r->d; d++) {
+ r->di[d] = entries[d].id;
+ r->dn[d] = entries[d].name;
+
+ r->od[d] = entries[d].od;
+ r->du[d] = entries[d].units;
+ r->dp[d] = entries[d].priority;
+ r->dgbc[d] = entries[d].count;
+
+ if (r->dl)
+ r->dl[d] = entries[d].dl;
+ }
+
+ // initialize partial trimming
+ r->partial_data_trimming.max_update_every = update_every_max * 2;
+ r->partial_data_trimming.expected_after =
+ (!query_target_aggregatable(qt) &&
+ qt->window.before >= qt->window.now - r->partial_data_trimming.max_update_every) ?
+ qt->window.before - r->partial_data_trimming.max_update_every :
+ qt->window.before;
+ r->partial_data_trimming.trimmed_after = qt->window.before;
+
+ // make all values empty
+ for (size_t i = 0; i != r->n; i++) {
+ NETDATA_DOUBLE *cn = &r->v[i * r->d];
+ RRDR_VALUE_FLAGS *co = &r->o[i * r->d];
+ NETDATA_DOUBLE *ar = &r->ar[i * r->d];
+ NETDATA_DOUBLE *vh = r->vh ? &r->vh[i * r->d] : NULL;
+
+ for (size_t d = 0; d < r->d; d++) {
+ cn[d] = NAN;
+ ar[d] = 0.0;
+ co[d] = RRDR_VALUE_EMPTY;
+
+ if(vh)
+ vh[d] = NAN;
+ }
+ }
+ }
+
+ if(!first_r || !last_r)
+ goto cleanup;
+
+ r_tmp = rrdr_create(owa, qt, 1, qt->window.points);
+ if (!r_tmp) {
+ internal_error(true,
+ "QUERY: cannot create group by temporary RRDR for %s, after=%ld, before=%ld, dimensions=%d, points=%zu",
+ qt->id, qt->window.after, qt->window.before, 1, qt->window.points);
+ goto cleanup;
+ }
+ rrd2rrdr_set_timestamps(r_tmp);
+ r_tmp->group_by.r = first_r;
+
+cleanup:
+ if(!first_r || !last_r || !r_tmp) {
+ if(r_tmp) {
+ r_tmp->group_by.r = NULL;
+ rrdr_free(owa, r_tmp);
+ }
+
+ if(first_r) {
+ RRDR *r = first_r;
+ while (r) {
+ r_tmp = r->group_by.r;
+ r->group_by.r = NULL;
+ rrdr_free(owa, r);
+ r = r_tmp;
+ }
+ }
+
+ if(entries && added) {
+ for (int d = 0; d < added; d++) {
+ string_freez(entries[d].id);
+ string_freez(entries[d].name);
+ string_freez(entries[d].units);
+ dictionary_destroy(entries[d].dl);
+ }
+ }
+ dictionary_destroy(label_keys);
+
+ first_r = last_r = r_tmp = NULL;
+ }
+
+ buffer_free(key);
+ onewayalloc_freez(owa, entries);
+ dictionary_destroy(groups);
+
+ return r_tmp;
+}
+
+static void rrd2rrdr_group_by_add_metric(RRDR *r_dst, size_t d_dst, RRDR *r_tmp, size_t d_tmp,
+ RRDR_GROUP_BY_FUNCTION group_by_aggregate_function,
+ STORAGE_POINT *query_points, size_t pass __maybe_unused) {
+ if(!r_tmp || r_dst == r_tmp || !(r_tmp->od[d_tmp] & RRDR_DIMENSION_QUERIED))
+ return;
+
+ internal_fatal(r_dst->n != r_tmp->n, "QUERY: group-by source and destination do not have the same number of rows");
+ internal_fatal(d_dst >= r_dst->d, "QUERY: group-by destination dimension number exceeds destination RRDR size");
+ internal_fatal(d_tmp >= r_tmp->d, "QUERY: group-by source dimension number exceeds source RRDR size");
+ internal_fatal(!r_dst->dqp, "QUERY: group-by destination is not properly prepared (missing dqp array)");
+ internal_fatal(!r_dst->gbc, "QUERY: group-by destination is not properly prepared (missing gbc array)");
+
+ bool hidden_dimension_on_percentage_of_group = (r_tmp->od[d_tmp] & RRDR_DIMENSION_HIDDEN) && r_dst->vh;
+
+ if(!hidden_dimension_on_percentage_of_group) {
+ r_dst->od[d_dst] |= r_tmp->od[d_tmp];
+ storage_point_merge_to(r_dst->dqp[d_dst], *query_points);
+ }
+
+ // do the group_by
+ for(size_t i = 0; i != rrdr_rows(r_tmp) ; i++) {
+
+ size_t idx_tmp = i * r_tmp->d + d_tmp;
+ NETDATA_DOUBLE n_tmp = r_tmp->v[ idx_tmp ];
+ RRDR_VALUE_FLAGS o_tmp = r_tmp->o[ idx_tmp ];
+ NETDATA_DOUBLE ar_tmp = r_tmp->ar[ idx_tmp ];
+
+ if(o_tmp & RRDR_VALUE_EMPTY)
+ continue;
+
+ size_t idx_dst = i * r_dst->d + d_dst;
+ NETDATA_DOUBLE *cn = (hidden_dimension_on_percentage_of_group) ? &r_dst->vh[ idx_dst ] : &r_dst->v[ idx_dst ];
+ RRDR_VALUE_FLAGS *co = &r_dst->o[ idx_dst ];
+ NETDATA_DOUBLE *ar = &r_dst->ar[ idx_dst ];
+ uint32_t *gbc = &r_dst->gbc[ idx_dst ];
+
+ switch(group_by_aggregate_function) {
+ default:
+ case RRDR_GROUP_BY_FUNCTION_AVERAGE:
+ case RRDR_GROUP_BY_FUNCTION_SUM:
+ case RRDR_GROUP_BY_FUNCTION_PERCENTAGE:
+ if(isnan(*cn))
+ *cn = n_tmp;
+ else
+ *cn += n_tmp;
+ break;
+
+ case RRDR_GROUP_BY_FUNCTION_MIN:
+ if(isnan(*cn) || n_tmp < *cn)
+ *cn = n_tmp;
+ break;
+
+ case RRDR_GROUP_BY_FUNCTION_MAX:
+ if(isnan(*cn) || n_tmp > *cn)
+ *cn = n_tmp;
+ break;
+ }
+
+ if(!hidden_dimension_on_percentage_of_group) {
+ *co &= ~RRDR_VALUE_EMPTY;
+ *co |= (o_tmp & (RRDR_VALUE_RESET | RRDR_VALUE_PARTIAL));
+ *ar += ar_tmp;
+ (*gbc)++;
+ }
+ }
+}
+
+static void rrdr2rrdr_group_by_partial_trimming(RRDR *r) {
+ time_t trimmable_after = r->partial_data_trimming.expected_after;
+
+ // find the point just before the trimmable ones
+ ssize_t i = (ssize_t)r->n - 1;
+ for( ; i >= 0 ;i--) {
+ if (r->t[i] < trimmable_after)
+ break;
+ }
+
+ if(unlikely(i < 0))
+ return;
+
+ // internal_error(true, "Found trimmable index %zd (from 0 to %zu)", i, r->n - 1);
+
+ size_t last_row_gbc = 0;
+ for (; i < (ssize_t)r->n; i++) {
+ size_t row_gbc = 0;
+ for (size_t d = 0; d < r->d; d++) {
+ if (unlikely(!(r->od[d] & RRDR_DIMENSION_QUERIED)))
+ continue;
+
+ row_gbc += r->gbc[ i * r->d + d ];
+ }
+
+ // internal_error(true, "GBC of index %zd is %zu", i, row_gbc);
+
+ if (unlikely(r->t[i] >= trimmable_after && (row_gbc < last_row_gbc || !row_gbc))) {
+ // discard the rest of the points
+ // internal_error(true, "Discarding points %zd to %zu", i, r->n - 1);
+ r->partial_data_trimming.trimmed_after = r->t[i];
+ r->rows = i;
+ break;
+ }
+ else
+ last_row_gbc = row_gbc;
+ }
+}
+
+static void rrdr2rrdr_group_by_calculate_percentage_of_group(RRDR *r) {
+ if(!r->vh)
+ return;
+
+ if(query_target_aggregatable(r->internal.qt) && query_has_group_by_aggregation_percentage(r->internal.qt))
+ return;
+
+ for(size_t i = 0; i < r->n ;i++) {
+ NETDATA_DOUBLE *cn = &r->v[ i * r->d ];
+ NETDATA_DOUBLE *ch = &r->vh[ i * r->d ];
+
+ for(size_t d = 0; d < r->d ;d++) {
+ NETDATA_DOUBLE n = cn[d];
+ NETDATA_DOUBLE h = ch[d];
+
+ if(isnan(n))
+ cn[d] = 0.0;
+
+ else if(isnan(h))
+ cn[d] = 100.0;
+
+ else
+ cn[d] = n * 100.0 / (n + h);
+ }
+ }
+}
+
+static void rrd2rrdr_convert_values_to_percentage_of_total(RRDR *r) {
+ if(!(r->internal.qt->window.options & RRDR_OPTION_PERCENTAGE) || query_target_aggregatable(r->internal.qt))
+ return;
+
+ size_t global_min_max_values = 0;
+ NETDATA_DOUBLE global_min = NAN, global_max = NAN;
+
+ for(size_t i = 0; i != r->n ;i++) {
+ NETDATA_DOUBLE *cn = &r->v[ i * r->d ];
+ RRDR_VALUE_FLAGS *co = &r->o[ i * r->d ];
+
+ NETDATA_DOUBLE total = 0;
+ for (size_t d = 0; d < r->d; d++) {
+ if (unlikely(!(r->od[d] & RRDR_DIMENSION_QUERIED)))
+ continue;
+
+ if(co[d] & RRDR_VALUE_EMPTY)
+ continue;
+
+ total += cn[d];
+ }
+
+ if(total == 0.0)
+ total = 1.0;
+
+ for (size_t d = 0; d < r->d; d++) {
+ if (unlikely(!(r->od[d] & RRDR_DIMENSION_QUERIED)))
+ continue;
+
+ if(co[d] & RRDR_VALUE_EMPTY)
+ continue;
+
+ NETDATA_DOUBLE n = cn[d];
+ n = cn[d] = n * 100.0 / total;
+
+ if(unlikely(!global_min_max_values++))
+ global_min = global_max = n;
+ else {
+ if(n < global_min)
+ global_min = n;
+ if(n > global_max)
+ global_max = n;
+ }
+ }
+ }
+
+ r->view.min = global_min;
+ r->view.max = global_max;
+
+ if(!r->dview)
+ // v1 query
+ return;
+
+ // v2 query
+
+ for (size_t d = 0; d < r->d; d++) {
+ if (unlikely(!(r->od[d] & RRDR_DIMENSION_QUERIED)))
+ continue;
+
+ size_t count = 0;
+ NETDATA_DOUBLE min = 0.0, max = 0.0, sum = 0.0, ars = 0.0;
+ for(size_t i = 0; i != r->rows ;i++) { // we use r->rows to respect trimming
+ size_t idx = i * r->d + d;
+
+ RRDR_VALUE_FLAGS o = r->o[ idx ];
+
+ if (o & RRDR_VALUE_EMPTY)
+ continue;
+
+ NETDATA_DOUBLE ar = r->ar[ idx ];
+ ars += ar;
+
+ NETDATA_DOUBLE n = r->v[ idx ];
+ sum += n;
+
+ if(!count++)
+ min = max = n;
+ else {
+ if(n < min)
+ min = n;
+ if(n > max)
+ max = n;
+ }
+ }
+
+ r->dview[d] = (STORAGE_POINT) {
+ .sum = sum,
+ .count = count,
+ .min = min,
+ .max = max,
+ .anomaly_count = (size_t)(ars * (NETDATA_DOUBLE)count),
+ };
+ }
+}
+
+static RRDR *rrd2rrdr_group_by_finalize(RRDR *r_tmp) {
+ QUERY_TARGET *qt = r_tmp->internal.qt;
+
+ if(!r_tmp->group_by.r) {
+ // v1 query
+ rrd2rrdr_convert_values_to_percentage_of_total(r_tmp);
+ return r_tmp;
+ }
+ // v2 query
+
+ // do the additional passes on RRDRs
+ RRDR *last_r = r_tmp->group_by.r;
+ rrdr2rrdr_group_by_calculate_percentage_of_group(last_r);
+
+ RRDR *r = last_r->group_by.r;
+ size_t pass = 0;
+ while(r) {
+ pass++;
+ for(size_t d = 0; d < last_r->d ;d++) {
+ rrd2rrdr_group_by_add_metric(r, last_r->dgbs[d], last_r, d,
+ qt->request.group_by[pass].aggregation,
+ &last_r->dqp[d], pass);
+ }
+ rrdr2rrdr_group_by_calculate_percentage_of_group(r);
+
+ last_r = r;
+ r = last_r->group_by.r;
+ }
+
+ // free all RRDRs except the last one
+ r = r_tmp;
+ while(r != last_r) {
+ r_tmp = r->group_by.r;
+ r->group_by.r = NULL;
+ rrdr_free(r->internal.owa, r);
+ r = r_tmp;
+ }
+ r = last_r;
+
+ // find the final aggregation
+ RRDR_GROUP_BY_FUNCTION aggregation = qt->request.group_by[0].aggregation;
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++)
+ if(qt->request.group_by[g].group_by != RRDR_GROUP_BY_NONE)
+ aggregation = qt->request.group_by[g].aggregation;
+
+ if(!query_target_aggregatable(qt) && r->partial_data_trimming.expected_after < qt->window.before)
+ rrdr2rrdr_group_by_partial_trimming(r);
+
+ // apply averaging, remove RRDR_VALUE_EMPTY, find the non-zero dimensions, min and max
+ size_t global_min_max_values = 0;
+ size_t dimensions_nonzero = 0;
+ NETDATA_DOUBLE global_min = NAN, global_max = NAN;
+ for (size_t d = 0; d < r->d; d++) {
+ if (unlikely(!(r->od[d] & RRDR_DIMENSION_QUERIED)))
+ continue;
+
+ size_t points_nonzero = 0;
+ NETDATA_DOUBLE min = 0, max = 0, sum = 0, ars = 0;
+ size_t count = 0;
+
+ for(size_t i = 0; i != r->n ;i++) {
+ size_t idx = i * r->d + d;
+
+ NETDATA_DOUBLE *cn = &r->v[ idx ];
+ RRDR_VALUE_FLAGS *co = &r->o[ idx ];
+ NETDATA_DOUBLE *ar = &r->ar[ idx ];
+ uint32_t gbc = r->gbc[ idx ];
+
+ if(likely(gbc)) {
+ *co &= ~RRDR_VALUE_EMPTY;
+
+ if(gbc != r->dgbc[d])
+ *co |= RRDR_VALUE_PARTIAL;
+
+ NETDATA_DOUBLE n;
+
+ sum += *cn;
+ ars += *ar;
+
+ if(aggregation == RRDR_GROUP_BY_FUNCTION_AVERAGE && !query_target_aggregatable(qt))
+ n = (*cn /= gbc);
+ else
+ n = *cn;
+
+ if(!query_target_aggregatable(qt))
+ *ar /= gbc;
+
+ if(islessgreater(n, 0.0))
+ points_nonzero++;
+
+ if(unlikely(!count))
+ min = max = n;
+ else {
+ if(n < min)
+ min = n;
+
+ if(n > max)
+ max = n;
+ }
+
+ if(unlikely(!global_min_max_values++))
+ global_min = global_max = n;
+ else {
+ if(n < global_min)
+ global_min = n;
+
+ if(n > global_max)
+ global_max = n;
+ }
+
+ count += gbc;
+ }
+ }
+
+ if(points_nonzero) {
+ r->od[d] |= RRDR_DIMENSION_NONZERO;
+ dimensions_nonzero++;
+ }
+
+ r->dview[d] = (STORAGE_POINT) {
+ .sum = sum,
+ .count = count,
+ .min = min,
+ .max = max,
+ .anomaly_count = (size_t)(ars * RRDR_DVIEW_ANOMALY_COUNT_MULTIPLIER / 100.0),
+ };
+ }
+
+ r->view.min = global_min;
+ r->view.max = global_max;
+
+ if(!dimensions_nonzero && (qt->window.options & RRDR_OPTION_NONZERO)) {
+ // all dimensions are zero
+ // remove the nonzero option
+ qt->window.options &= ~RRDR_OPTION_NONZERO;
+ }
+
+ rrd2rrdr_convert_values_to_percentage_of_total(r);
+
+ // update query instance counts in query host and query context
+ {
+ size_t h = 0, c = 0, i = 0;
+ for(; h < qt->nodes.used ; h++) {
+ QUERY_NODE *qn = &qt->nodes.array[h];
+
+ for(; c < qt->contexts.used ;c++) {
+ QUERY_CONTEXT *qc = &qt->contexts.array[c];
+
+ if(!rrdcontext_acquired_belongs_to_host(qc->rca, qn->rrdhost))
+ break;
+
+ for(; i < qt->instances.used ;i++) {
+ QUERY_INSTANCE *qi = &qt->instances.array[i];
+
+ if(!rrdinstance_acquired_belongs_to_context(qi->ria, qc->rca))
+ break;
+
+ if(qi->metrics.queried) {
+ qc->instances.queried++;
+ qn->instances.queried++;
+ }
+ else if(qi->metrics.failed) {
+ qc->instances.failed++;
+ qn->instances.failed++;
+ }
+ }
+ }
+ }
+ }
+
+ return r;
+}
+
+// ----------------------------------------------------------------------------
+// query entry point
+
+RRDR *rrd2rrdr_legacy(
+ ONEWAYALLOC *owa,
+ RRDSET *st, size_t points, time_t after, time_t before,
+ RRDR_TIME_GROUPING group_method, time_t resampling_time, RRDR_OPTIONS options, const char *dimensions,
+ const char *group_options, time_t timeout_ms, size_t tier, QUERY_SOURCE query_source,
+ STORAGE_PRIORITY priority) {
+
+ QUERY_TARGET_REQUEST qtr = {
+ .version = 1,
+ .st = st,
+ .points = points,
+ .after = after,
+ .before = before,
+ .time_group_method = group_method,
+ .resampling_time = resampling_time,
+ .options = options,
+ .dimensions = dimensions,
+ .time_group_options = group_options,
+ .timeout_ms = timeout_ms,
+ .tier = tier,
+ .query_source = query_source,
+ .priority = priority,
+ };
+
+ QUERY_TARGET *qt = query_target_create(&qtr);
+ RRDR *r = rrd2rrdr(owa, qt);
+ if(!r) {
+ query_target_release(qt);
+ return NULL;
+ }
+
+ r->internal.release_with_rrdr_qt = qt;
+ return r;
+}
+
+RRDR *rrd2rrdr(ONEWAYALLOC *owa, QUERY_TARGET *qt) {
+ if(!qt || !owa)
+ return NULL;
+
+ // qt.window members are the WANTED ones.
+ // qt.request members are the REQUESTED ones.
+
+ RRDR *r_tmp = rrd2rrdr_group_by_initialize(owa, qt);
+ if(!r_tmp)
+ return NULL;
+
+ // the RRDR we group-by at
+ RRDR *r = (r_tmp->group_by.r) ? r_tmp->group_by.r : r_tmp;
+
+ // the final RRDR to return to callers
+ RRDR *last_r = r_tmp;
+ while(last_r->group_by.r)
+ last_r = last_r->group_by.r;
+
+ if(qt->window.relative)
+ last_r->view.flags |= RRDR_RESULT_FLAG_RELATIVE;
+ else
+ last_r->view.flags |= RRDR_RESULT_FLAG_ABSOLUTE;
+
+ // -------------------------------------------------------------------------
+ // assign the processor functions
+ rrdr_set_grouping_function(r_tmp, qt->window.time_group_method);
+
+ // allocate any memory required by the grouping method
+ r_tmp->time_grouping.create(r_tmp, qt->window.time_group_options);
+
+ // -------------------------------------------------------------------------
+ // do the work for each dimension
+
+ time_t max_after = 0, min_before = 0;
+ size_t max_rows = 0;
+
+ long dimensions_used = 0, dimensions_nonzero = 0;
+ size_t last_db_points_read = 0;
+ size_t last_result_points_generated = 0;
+
+ internal_fatal(released_ops, "QUERY: released_ops should be NULL when the query starts");
+
+ query_progress_set_finish_line(qt->request.transaction, qt->query.used);
+
+ QUERY_ENGINE_OPS **ops = NULL;
+ if(qt->query.used)
+ ops = onewayalloc_callocz(owa, qt->query.used, sizeof(QUERY_ENGINE_OPS *));
+
+ size_t capacity = libuv_worker_threads * 10;
+ size_t max_queries_to_prepare = (qt->query.used > (capacity - 1)) ? (capacity - 1) : qt->query.used;
+ size_t queries_prepared = 0;
+ while(queries_prepared < max_queries_to_prepare) {
+ // preload another query
+ ops[queries_prepared] = rrd2rrdr_query_ops_prep(r_tmp, queries_prepared);
+ queries_prepared++;
+ }
+
+ QUERY_NODE *last_qn = NULL;
+ usec_t last_ut = now_monotonic_usec();
+ usec_t last_qn_ut = last_ut;
+
+ for(size_t d = 0; d < qt->query.used ; d++) {
+ QUERY_METRIC *qm = query_metric(qt, d);
+ QUERY_DIMENSION *qd = query_dimension(qt, qm->link.query_dimension_id);
+ QUERY_INSTANCE *qi = query_instance(qt, qm->link.query_instance_id);
+ QUERY_CONTEXT *qc = query_context(qt, qm->link.query_context_id);
+ QUERY_NODE *qn = query_node(qt, qm->link.query_node_id);
+
+ usec_t now_ut = last_ut;
+ if(qn != last_qn) {
+ if(last_qn)
+ last_qn->duration_ut = now_ut - last_qn_ut;
+
+ last_qn = qn;
+ last_qn_ut = now_ut;
+ }
+
+ if(queries_prepared < qt->query.used) {
+ // preload another query
+ ops[queries_prepared] = rrd2rrdr_query_ops_prep(r_tmp, queries_prepared);
+ queries_prepared++;
+ }
+
+ size_t dim_in_rrdr_tmp = (r_tmp != r) ? 0 : d;
+
+ // set the query target dimension options to rrdr
+ r_tmp->od[dim_in_rrdr_tmp] = qm->status;
+
+ // reset the grouping for the new dimension
+ r_tmp->time_grouping.reset(r_tmp);
+
+ if(ops[d]) {
+ rrd2rrdr_query_execute(r_tmp, dim_in_rrdr_tmp, ops[d]);
+ r_tmp->od[dim_in_rrdr_tmp] |= RRDR_DIMENSION_QUERIED;
+
+ now_ut = now_monotonic_usec();
+ qm->duration_ut = now_ut - last_ut;
+ last_ut = now_ut;
+
+ if(r_tmp != r) {
+ // copy back whatever got updated from the temporary r
+
+ // the query updates RRDR_DIMENSION_NONZERO
+ qm->status = r_tmp->od[dim_in_rrdr_tmp];
+
+ // the query updates these
+ r->view.min = r_tmp->view.min;
+ r->view.max = r_tmp->view.max;
+ r->view.after = r_tmp->view.after;
+ r->view.before = r_tmp->view.before;
+ r->rows = r_tmp->rows;
+
+ rrd2rrdr_group_by_add_metric(r, qm->grouped_as.first_slot, r_tmp, dim_in_rrdr_tmp,
+ qt->request.group_by[0].aggregation, &qm->query_points, 0);
+ }
+
+ rrd2rrdr_query_ops_release(ops[d]); // reuse this ops allocation
+ ops[d] = NULL;
+
+ qi->metrics.queried++;
+ qc->metrics.queried++;
+ qn->metrics.queried++;
+
+ qd->status |= QUERY_STATUS_QUERIED;
+ qm->status |= RRDR_DIMENSION_QUERIED;
+
+ if(qt->request.version >= 2) {
+ // we need to make the query points positive now
+ // since we will aggregate it across multiple dimensions
+ storage_point_make_positive(qm->query_points);
+ storage_point_merge_to(qi->query_points, qm->query_points);
+ storage_point_merge_to(qc->query_points, qm->query_points);
+ storage_point_merge_to(qn->query_points, qm->query_points);
+ storage_point_merge_to(qt->query_points, qm->query_points);
+ }
+ }
+ else {
+ qi->metrics.failed++;
+ qc->metrics.failed++;
+ qn->metrics.failed++;
+
+ qd->status |= QUERY_STATUS_FAILED;
+ qm->status |= RRDR_DIMENSION_FAILED;
+
+ continue;
+ }
+
+ global_statistics_rrdr_query_completed(
+ 1,
+ r_tmp->stats.db_points_read - last_db_points_read,
+ r_tmp->stats.result_points_generated - last_result_points_generated,
+ qt->request.query_source);
+
+ last_db_points_read = r_tmp->stats.db_points_read;
+ last_result_points_generated = r_tmp->stats.result_points_generated;
+
+ if(qm->status & RRDR_DIMENSION_NONZERO)
+ dimensions_nonzero++;
+
+ // verify all dimensions are aligned
+ if(unlikely(!dimensions_used)) {
+ min_before = r->view.before;
+ max_after = r->view.after;
+ max_rows = r->rows;
+ }
+ else {
+ if(r->view.after != max_after) {
+ internal_error(true, "QUERY: 'after' mismatch between dimensions for chart '%s': max is %zu, dimension '%s' has %zu",
+ rrdinstance_acquired_id(qi->ria), (size_t)max_after, rrdmetric_acquired_id(qd->rma), (size_t)r->view.after);
+
+ r->view.after = (r->view.after > max_after) ? r->view.after : max_after;
+ }
+
+ if(r->view.before != min_before) {
+ internal_error(true, "QUERY: 'before' mismatch between dimensions for chart '%s': max is %zu, dimension '%s' has %zu",
+ rrdinstance_acquired_id(qi->ria), (size_t)min_before, rrdmetric_acquired_id(qd->rma), (size_t)r->view.before);
+
+ r->view.before = (r->view.before < min_before) ? r->view.before : min_before;
+ }
+
+ if(r->rows != max_rows) {
+ internal_error(true, "QUERY: 'rows' mismatch between dimensions for chart '%s': max is %zu, dimension '%s' has %zu",
+ rrdinstance_acquired_id(qi->ria), (size_t)max_rows, rrdmetric_acquired_id(qd->rma), (size_t)r->rows);
+
+ r->rows = (r->rows > max_rows) ? r->rows : max_rows;
+ }
+ }
+
+ dimensions_used++;
+
+ bool cancel = false;
+ if (qt->request.interrupt_callback && qt->request.interrupt_callback(qt->request.interrupt_callback_data)) {
+ cancel = true;
+ nd_log(NDLS_ACCESS, NDLP_NOTICE, "QUERY INTERRUPTED");
+ }
+
+ if (qt->request.timeout_ms && ((NETDATA_DOUBLE)(now_ut - qt->timings.received_ut) / 1000.0) > (NETDATA_DOUBLE)qt->request.timeout_ms) {
+ cancel = true;
+ nd_log(NDLS_ACCESS, NDLP_WARNING, "QUERY CANCELED RUNTIME EXCEEDED %0.2f ms (LIMIT %lld ms)",
+ (NETDATA_DOUBLE)(now_ut - qt->timings.received_ut) / 1000.0, (long long)qt->request.timeout_ms);
+ }
+
+ if(cancel) {
+ r->view.flags |= RRDR_RESULT_FLAG_CANCEL;
+
+ for(size_t i = d + 1; i < queries_prepared ; i++) {
+ if(ops[i]) {
+ query_planer_finalize_remaining_plans(ops[i]);
+ rrd2rrdr_query_ops_release(ops[i]);
+ ops[i] = NULL;
+ }
+ }
+
+ break;
+ }
+ else
+ query_progress_done_step(qt->request.transaction, 1);
+ }
+
+ // free all resources used by the grouping method
+ r_tmp->time_grouping.free(r_tmp);
+
+ // get the final RRDR to send to the caller
+ r = rrd2rrdr_group_by_finalize(r_tmp);
+
+#ifdef NETDATA_INTERNAL_CHECKS
+ if (dimensions_used && !(r->view.flags & RRDR_RESULT_FLAG_CANCEL)) {
+ if(r->internal.log)
+ rrd2rrdr_log_request_response_metadata(r, qt->window.options, qt->window.time_group_method, qt->window.aligned, qt->window.group, qt->request.resampling_time, qt->window.resampling_group,
+ qt->window.after, qt->request.after, qt->window.before, qt->request.before,
+ qt->request.points, qt->window.points, /*after_slot, before_slot,*/
+ r->internal.log);
+
+ if(r->rows != qt->window.points)
+ rrd2rrdr_log_request_response_metadata(r, qt->window.options, qt->window.time_group_method, qt->window.aligned, qt->window.group, qt->request.resampling_time, qt->window.resampling_group,
+ qt->window.after, qt->request.after, qt->window.before, qt->request.before,
+ qt->request.points, qt->window.points, /*after_slot, before_slot,*/
+ "got 'points' is not wanted 'points'");
+
+ if(qt->window.aligned && (r->view.before % query_view_update_every(qt)) != 0)
+ rrd2rrdr_log_request_response_metadata(r, qt->window.options, qt->window.time_group_method, qt->window.aligned, qt->window.group, qt->request.resampling_time, qt->window.resampling_group,
+ qt->window.after, qt->request.after, qt->window.before, qt->request.before,
+ qt->request.points, qt->window.points, /*after_slot, before_slot,*/
+ "'before' is not aligned but alignment is required");
+
+ // 'after' should not be aligned, since we start inside the first group
+ //if(qt->window.aligned && (r->after % group) != 0)
+ // rrd2rrdr_log_request_response_metadata(r, qt->window.options, qt->window.group_method, qt->window.aligned, qt->window.group, qt->request.resampling_time, qt->window.resampling_group, qt->window.after, after_requested, before_wanted, before_requested, points_requested, points_wanted, after_slot, before_slot, "'after' is not aligned but alignment is required");
+
+ if(r->view.before != qt->window.before)
+ rrd2rrdr_log_request_response_metadata(r, qt->window.options, qt->window.time_group_method, qt->window.aligned, qt->window.group, qt->request.resampling_time, qt->window.resampling_group,
+ qt->window.after, qt->request.after, qt->window.before, qt->request.before,
+ qt->request.points, qt->window.points, /*after_slot, before_slot,*/
+ "chart is not aligned to requested 'before'");
+
+ if(r->view.before != qt->window.before)
+ rrd2rrdr_log_request_response_metadata(r, qt->window.options, qt->window.time_group_method, qt->window.aligned, qt->window.group, qt->request.resampling_time, qt->window.resampling_group,
+ qt->window.after, qt->request.after, qt->window.before, qt->request.before,
+ qt->request.points, qt->window.points, /*after_slot, before_slot,*/
+ "got 'before' is not wanted 'before'");
+
+ // reported 'after' varies, depending on group
+ if(r->view.after != qt->window.after)
+ rrd2rrdr_log_request_response_metadata(r, qt->window.options, qt->window.time_group_method, qt->window.aligned, qt->window.group, qt->request.resampling_time, qt->window.resampling_group,
+ qt->window.after, qt->request.after, qt->window.before, qt->request.before,
+ qt->request.points, qt->window.points, /*after_slot, before_slot,*/
+ "got 'after' is not wanted 'after'");
+
+ }
+#endif
+
+ // free the query pipelining ops
+ for(size_t d = 0; d < qt->query.used ; d++) {
+ rrd2rrdr_query_ops_release(ops[d]);
+ ops[d] = NULL;
+ }
+ rrd2rrdr_query_ops_freeall(r);
+ internal_fatal(released_ops, "QUERY: released_ops should be NULL when the query ends");
+
+ onewayalloc_freez(owa, ops);
+
+ if(likely(dimensions_used && (qt->window.options & RRDR_OPTION_NONZERO) && !dimensions_nonzero))
+ // when all the dimensions are zero, we should return all of them
+ qt->window.options &= ~RRDR_OPTION_NONZERO;
+
+ qt->timings.executed_ut = now_monotonic_usec();
+
+ return r;
+}
diff --git a/src/web/api/queries/query.h b/src/web/api/queries/query.h
new file mode 100644
index 000000000..37202a0ba
--- /dev/null
+++ b/src/web/api/queries/query.h
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef NETDATA_API_DATA_QUERY_H
+#define NETDATA_API_DATA_QUERY_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum rrdr_time_grouping {
+ RRDR_GROUPING_UNDEFINED = 0,
+ RRDR_GROUPING_AVERAGE,
+ RRDR_GROUPING_MIN,
+ RRDR_GROUPING_MAX,
+ RRDR_GROUPING_SUM,
+ RRDR_GROUPING_INCREMENTAL_SUM,
+ RRDR_GROUPING_TRIMMED_MEAN1,
+ RRDR_GROUPING_TRIMMED_MEAN2,
+ RRDR_GROUPING_TRIMMED_MEAN3,
+ RRDR_GROUPING_TRIMMED_MEAN,
+ RRDR_GROUPING_TRIMMED_MEAN10,
+ RRDR_GROUPING_TRIMMED_MEAN15,
+ RRDR_GROUPING_TRIMMED_MEAN20,
+ RRDR_GROUPING_TRIMMED_MEAN25,
+ RRDR_GROUPING_MEDIAN,
+ RRDR_GROUPING_TRIMMED_MEDIAN1,
+ RRDR_GROUPING_TRIMMED_MEDIAN2,
+ RRDR_GROUPING_TRIMMED_MEDIAN3,
+ RRDR_GROUPING_TRIMMED_MEDIAN,
+ RRDR_GROUPING_TRIMMED_MEDIAN10,
+ RRDR_GROUPING_TRIMMED_MEDIAN15,
+ RRDR_GROUPING_TRIMMED_MEDIAN20,
+ RRDR_GROUPING_TRIMMED_MEDIAN25,
+ RRDR_GROUPING_PERCENTILE25,
+ RRDR_GROUPING_PERCENTILE50,
+ RRDR_GROUPING_PERCENTILE75,
+ RRDR_GROUPING_PERCENTILE80,
+ RRDR_GROUPING_PERCENTILE90,
+ RRDR_GROUPING_PERCENTILE,
+ RRDR_GROUPING_PERCENTILE97,
+ RRDR_GROUPING_PERCENTILE98,
+ RRDR_GROUPING_PERCENTILE99,
+ RRDR_GROUPING_STDDEV,
+ RRDR_GROUPING_CV,
+ RRDR_GROUPING_SES,
+ RRDR_GROUPING_DES,
+ RRDR_GROUPING_COUNTIF,
+} RRDR_TIME_GROUPING;
+
+const char *time_grouping_id2txt(RRDR_TIME_GROUPING group);
+RRDR_TIME_GROUPING time_grouping_txt2id(const char *name);
+
+void time_grouping_init(void);
+RRDR_TIME_GROUPING time_grouping_parse(const char *name, RRDR_TIME_GROUPING def);
+const char *time_grouping_tostring(RRDR_TIME_GROUPING group);
+
+typedef enum rrdr_group_by {
+ RRDR_GROUP_BY_NONE = 0,
+ RRDR_GROUP_BY_SELECTED = (1 << 0),
+ RRDR_GROUP_BY_DIMENSION = (1 << 1),
+ RRDR_GROUP_BY_INSTANCE = (1 << 2),
+ RRDR_GROUP_BY_LABEL = (1 << 3),
+ RRDR_GROUP_BY_NODE = (1 << 4),
+ RRDR_GROUP_BY_CONTEXT = (1 << 5),
+ RRDR_GROUP_BY_UNITS = (1 << 6),
+ RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE = (1 << 7),
+} RRDR_GROUP_BY;
+
+#define SUPPORTED_GROUP_BY_METHODS (\
+ RRDR_GROUP_BY_SELECTED |\
+ RRDR_GROUP_BY_DIMENSION |\
+ RRDR_GROUP_BY_INSTANCE |\
+ RRDR_GROUP_BY_LABEL |\
+ RRDR_GROUP_BY_NODE |\
+ RRDR_GROUP_BY_CONTEXT |\
+ RRDR_GROUP_BY_UNITS |\
+ RRDR_GROUP_BY_PERCENTAGE_OF_INSTANCE \
+)
+
+struct web_buffer;
+
+RRDR_GROUP_BY group_by_parse(char *s);
+void buffer_json_group_by_to_array(struct web_buffer *wb, RRDR_GROUP_BY group_by);
+
+typedef enum rrdr_group_by_function {
+ RRDR_GROUP_BY_FUNCTION_AVERAGE = 0,
+ RRDR_GROUP_BY_FUNCTION_MIN,
+ RRDR_GROUP_BY_FUNCTION_MAX,
+ RRDR_GROUP_BY_FUNCTION_SUM,
+ RRDR_GROUP_BY_FUNCTION_PERCENTAGE,
+} RRDR_GROUP_BY_FUNCTION;
+
+RRDR_GROUP_BY_FUNCTION group_by_aggregate_function_parse(const char *s);
+const char *group_by_aggregate_function_to_string(RRDR_GROUP_BY_FUNCTION group_by_function);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //NETDATA_API_DATA_QUERY_H
diff --git a/web/api/queries/rrdr.c b/src/web/api/queries/rrdr.c
index 2a0016891..2a0016891 100644
--- a/web/api/queries/rrdr.c
+++ b/src/web/api/queries/rrdr.c
diff --git a/web/api/queries/rrdr.h b/src/web/api/queries/rrdr.h
index e02e00675..d36d3f5b3 100644
--- a/web/api/queries/rrdr.h
+++ b/src/web/api/queries/rrdr.h
@@ -21,34 +21,36 @@ typedef enum rrdr_options {
RRDR_OPTION_NONZERO = (1 << 0), // don't output dimensions with just zero values
RRDR_OPTION_REVERSED = (1 << 1), // output the rows in reverse order (oldest to newest)
RRDR_OPTION_ABSOLUTE = (1 << 2), // values positive, for DATASOURCE_SSV before summing
- RRDR_OPTION_MIN2MAX = (1 << 3), // when adding dimensions, use max - min, instead of sum
- RRDR_OPTION_SECONDS = (1 << 4), // output seconds, instead of dates
- RRDR_OPTION_MILLISECONDS = (1 << 5), // output milliseconds, instead of dates
- RRDR_OPTION_NULL2ZERO = (1 << 6), // do not show nulls, convert them to zeros
- RRDR_OPTION_OBJECTSROWS = (1 << 7), // each row of values should be an object, not an array
- RRDR_OPTION_GOOGLE_JSON = (1 << 8), // comply with google JSON/JSONP specs
- RRDR_OPTION_JSON_WRAP = (1 << 9), // wrap the response in a JSON header with info about the result
- RRDR_OPTION_LABEL_QUOTES = (1 << 10), // in CSV output, wrap header labels in double quotes
- RRDR_OPTION_PERCENTAGE = (1 << 11), // give values as percentage of total
- RRDR_OPTION_NOT_ALIGNED = (1 << 12), // do not align charts for persistent timeframes
- RRDR_OPTION_DISPLAY_ABS = (1 << 13), // for badges, display the absolute value, but calculate colors with sign
- RRDR_OPTION_MATCH_IDS = (1 << 14), // when filtering dimensions, match only IDs
- RRDR_OPTION_MATCH_NAMES = (1 << 15), // when filtering dimensions, match only names
- RRDR_OPTION_NATURAL_POINTS = (1 << 16), // return the natural points of the database
- RRDR_OPTION_VIRTUAL_POINTS = (1 << 17), // return virtual points
- RRDR_OPTION_ANOMALY_BIT = (1 << 18), // Return the anomaly bit stored in each collected_number
- RRDR_OPTION_RETURN_RAW = (1 << 19), // Return raw data for aggregating across multiple nodes
- RRDR_OPTION_RETURN_JWAR = (1 << 20), // Return anomaly rates in jsonwrap
- RRDR_OPTION_SELECTED_TIER = (1 << 21), // Use the selected tier for the query
- RRDR_OPTION_ALL_DIMENSIONS = (1 << 22), // Return the full dimensions list
- RRDR_OPTION_SHOW_DETAILS = (1 << 23), // v2 returns detailed object tree
- RRDR_OPTION_DEBUG = (1 << 24), // v2 returns request description
- RRDR_OPTION_MINIFY = (1 << 25), // remove JSON spaces and newlines from JSON output
- RRDR_OPTION_GROUP_BY_LABELS = (1 << 26), // v2 returns flattened labels per dimension of the chart
+ RRDR_OPTION_DIMS_MIN2MAX = (1 << 3), // when adding dimensions, use max - min, instead of sum
+ RRDR_OPTION_DIMS_AVERAGE = (1 << 4), // when adding dimensions, use average, instead of sum
+ RRDR_OPTION_DIMS_MIN = (1 << 5), // when adding dimensions, use minimum, instead of sum
+ RRDR_OPTION_DIMS_MAX = (1 << 6), // when adding dimensions, use maximum, instead of sum
+ RRDR_OPTION_SECONDS = (1 << 7), // output seconds, instead of dates
+ RRDR_OPTION_MILLISECONDS = (1 << 8), // output milliseconds, instead of dates
+ RRDR_OPTION_NULL2ZERO = (1 << 9), // do not show nulls, convert them to zeros
+ RRDR_OPTION_OBJECTSROWS = (1 << 10), // each row of values should be an object, not an array
+ RRDR_OPTION_GOOGLE_JSON = (1 << 11), // comply with google JSON/JSONP specs
+ RRDR_OPTION_JSON_WRAP = (1 << 12), // wrap the response in a JSON header with info about the result
+ RRDR_OPTION_LABEL_QUOTES = (1 << 13), // in CSV output, wrap header labels in double quotes
+ RRDR_OPTION_PERCENTAGE = (1 << 14), // give values as percentage of total
+ RRDR_OPTION_NOT_ALIGNED = (1 << 15), // do not align charts for persistent timeframes
+ RRDR_OPTION_DISPLAY_ABS = (1 << 16), // for badges, display the absolute value, but calculate colors with sign
+ RRDR_OPTION_MATCH_IDS = (1 << 17), // when filtering dimensions, match only IDs
+ RRDR_OPTION_MATCH_NAMES = (1 << 18), // when filtering dimensions, match only names
+ RRDR_OPTION_NATURAL_POINTS = (1 << 19), // return the natural points of the database
+ RRDR_OPTION_VIRTUAL_POINTS = (1 << 20), // return virtual points
+ RRDR_OPTION_ANOMALY_BIT = (1 << 21), // Return the anomaly bit stored in each collected_number
+ RRDR_OPTION_RETURN_RAW = (1 << 22), // Return raw data for aggregating across multiple nodes
+ RRDR_OPTION_RETURN_JWAR = (1 << 23), // Return anomaly rates in jsonwrap
+ RRDR_OPTION_SELECTED_TIER = (1 << 24), // Use the selected tier for the query
+ RRDR_OPTION_ALL_DIMENSIONS = (1 << 25), // Return the full dimensions list
+ RRDR_OPTION_SHOW_DETAILS = (1 << 26), // v2 returns detailed object tree
+ RRDR_OPTION_DEBUG = (1 << 27), // v2 returns request description
+ RRDR_OPTION_MINIFY = (1 << 28), // remove JSON spaces and newlines from JSON output
+ RRDR_OPTION_GROUP_BY_LABELS = (1 << 29), // v2 returns flattened labels per dimension of the chart
// internal ones - not to be exposed to the API
- RRDR_OPTION_HEALTH_RSRVD1 = (1 << 30), // reserved for RRDCALC_OPTION_NO_CLEAR_NOTIFICATION
- RRDR_OPTION_INTERNAL_AR = (1 << 31), // internal use only, to let the formatters know we want to render the anomaly rate
+ RRDR_OPTION_INTERNAL_AR = (1 << 31), // internal use only, to let the formatters know we want to render the anomaly rate
} RRDR_OPTIONS;
typedef enum context_v2_options {
diff --git a/src/web/api/queries/ses/README.md b/src/web/api/queries/ses/README.md
new file mode 100644
index 000000000..e2fd65d7a
--- /dev/null
+++ b/src/web/api/queries/ses/README.md
@@ -0,0 +1,65 @@
+<!--
+title: "Single (or Simple) Exponential Smoothing (`ses`)"
+sidebar_label: "Single (or Simple) Exponential Smoothing (`ses`)"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/ses/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Single (or Simple) Exponential Smoothing (`ses`)
+
+> This query is also available as `ema` and `ewma`.
+
+An exponential moving average (`ema`), also known as an exponentially weighted moving average (`ewma`)
+is a first-order infinite impulse response filter that applies weighting factors which decrease
+exponentially. The weighting for each older datum decreases exponentially, never reaching zero.
+
+In simple terms, this is like an average value, but more recent values are given more weight.
+
+Netdata automatically adjusts the weight (`alpha`) based on the number of values processed,
+using the formula:
+
+```
+window = max(number of values, 15)
+alpha = 2 / (window + 1)
+```
+
+You can change the fixed value `15` by setting in `netdata.conf`:
+
+```
+[web]
+ ses max window = 15
+```
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: ses -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`ses` does not change the units. For example, if the chart units is `requests/sec`, the exponential
+moving average will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=ses` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=single+exponential+smoothing&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Moving_average#exponential-moving-average>
+- <https://en.wikipedia.org/wiki/Exponential_smoothing>.
+
+
diff --git a/web/api/queries/ses/ses.c b/src/web/api/queries/ses/ses.c
index 39eb445a0..39eb445a0 100644
--- a/web/api/queries/ses/ses.c
+++ b/src/web/api/queries/ses/ses.c
diff --git a/web/api/queries/ses/ses.h b/src/web/api/queries/ses/ses.h
index de8645ff0..de8645ff0 100644
--- a/web/api/queries/ses/ses.h
+++ b/src/web/api/queries/ses/ses.h
diff --git a/src/web/api/queries/stddev/README.md b/src/web/api/queries/stddev/README.md
new file mode 100644
index 000000000..76cfee1f1
--- /dev/null
+++ b/src/web/api/queries/stddev/README.md
@@ -0,0 +1,97 @@
+<!--
+title: "standard deviation (`stddev`)"
+sidebar_label: "standard deviation (`stddev`)"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/stddev/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# standard deviation (`stddev`)
+
+The standard deviation is a measure that is used to quantify the amount of variation or dispersion
+of a set of data values.
+
+A low standard deviation indicates that the data points tend to be close to the mean (also called the
+expected value) of the set, while a high standard deviation indicates that the data points are spread
+out over a wider range of values.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: stddev -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`stdev` does not change the units. For example, if the chart units is `requests/sec`, the standard
+deviation will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=stddev` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=stddev&after=-60&label=standard+deviation&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+Check <https://en.wikipedia.org/wiki/Standard_deviation>.
+
+---
+
+# Coefficient of variation (`cv`)
+
+> This query is also available as `rsd`.
+
+The coefficient of variation (`cv`), also known as relative standard deviation (`rsd`),
+is a standardized measure of dispersion of a probability distribution or frequency distribution.
+
+It is defined as the ratio of the **standard deviation** to the **mean**.
+
+In simple terms, it gives the percentage of change. So, if the average value of a metric is 1000
+and its standard deviation is 100 (meaning that it variates from 900 to 1100), then `cv` is 10%.
+
+This is an easy way to check the % variation, without using absolute values.
+
+For example, you may trigger an alert if your web server requests/sec `cv` is above 20 (`%`)
+over the last minute. So if your web server was serving 1000 reqs/sec over the last minute,
+it will trigger the alert if had spikes below 800/sec or above 1200/sec.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: cv -1m unaligned of my_dimension
+ units: %
+ warn: $this > 20
+```
+
+The units reported by `cv` is always `%`.
+
+It can also be used in APIs and badges as `&group=cv` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=cv&after=-60&label=coefficient+of+variation&value_color=orange&units=pcent)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+Check <https://en.wikipedia.org/wiki/Coefficient_of_variation>.
+
+
diff --git a/web/api/queries/stddev/stddev.c b/src/web/api/queries/stddev/stddev.c
index 8f5431194..8f5431194 100644
--- a/web/api/queries/stddev/stddev.c
+++ b/src/web/api/queries/stddev/stddev.c
diff --git a/web/api/queries/stddev/stddev.h b/src/web/api/queries/stddev/stddev.h
index f7a1a06c3..f7a1a06c3 100644
--- a/web/api/queries/stddev/stddev.h
+++ b/src/web/api/queries/stddev/stddev.h
diff --git a/src/web/api/queries/sum/README.md b/src/web/api/queries/sum/README.md
new file mode 100644
index 000000000..dd29b9c5b
--- /dev/null
+++ b/src/web/api/queries/sum/README.md
@@ -0,0 +1,45 @@
+<!--
+title: "Sum"
+sidebar_label: "Sum"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/sum/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Sum
+
+This module sums all the values in the time-frame requested.
+
+You can use `sum` to find the volume of something over a period.
+
+## how to use
+
+Use it in alarms like this:
+
+```
+ alarm: my_alarm
+ on: my_chart
+lookup: sum -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`sum` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=sum` in the URL.
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=sum&after=-60&label=1m+sum&value_color=orange&units=requests)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Summation>.
+
+
diff --git a/web/api/queries/sum/sum.c b/src/web/api/queries/sum/sum.c
index cf4484217..cf4484217 100644
--- a/web/api/queries/sum/sum.c
+++ b/src/web/api/queries/sum/sum.c
diff --git a/web/api/queries/sum/sum.h b/src/web/api/queries/sum/sum.h
index 5e07f45d6..5e07f45d6 100644
--- a/web/api/queries/sum/sum.h
+++ b/src/web/api/queries/sum/sum.h
diff --git a/src/web/api/queries/trimmed_mean/README.md b/src/web/api/queries/trimmed_mean/README.md
new file mode 100644
index 000000000..969023292
--- /dev/null
+++ b/src/web/api/queries/trimmed_mean/README.md
@@ -0,0 +1,60 @@
+<!--
+title: "Trimmed Mean"
+sidebar_label: "Trimmed Mean"
+description: "Use trimmed-mean in API queries and health entities to find the average value from a sample, eliminating any unwanted spikes in the returned metrics."
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/api/queries/trimmed_mean/README.md
+learn_status: "Published"
+learn_topic_type: "References"
+learn_rel_path: "Developers/Web/Api/Queries"
+-->
+
+# Trimmed Mean
+
+The trimmed mean is the average value of a series excluding the smallest and biggest points.
+
+Netdata applies linear interpolation on the last point, if the percentage requested to be excluded does not give a
+round number of points.
+
+The following percentile aliases are defined:
+
+- `trimmed-mean1`
+- `trimmed-mean2`
+- `trimmed-mean3`
+- `trimmed-mean5`
+- `trimmed-mean10`
+- `trimmed-mean15`
+- `trimmed-mean20`
+- `trimmed-mean25`
+
+The default `trimmed-mean` is an alias for `trimmed-mean5`.
+Any percentage may be requested using the `group_options` query parameter.
+
+## how to use
+
+Use it in alerts like this:
+
+```
+ alarm: my_alert
+ on: my_chart
+lookup: trimmed-mean5 -1m unaligned of my_dimension
+ warn: $this > 1000
+```
+
+`trimmed-mean` does not change the units. For example, if the chart units is `requests/sec`, the result
+will be again expressed in the same units.
+
+It can also be used in APIs and badges as `&group=trimmed-mean` in the URL and the additional parameter `group_options`
+may be used to request any percentage (e.g. `&group=trimmed-mean&group_options=29`).
+
+## Examples
+
+Examining last 1 minute `successful` web server responses:
+
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=trimmed-mean5&after=-60&label=trimmed-mean5&value_color=orange)
+- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
+
+## References
+
+- <https://en.wikipedia.org/wiki/Truncated_mean>.
diff --git a/web/api/queries/trimmed_mean/trimmed_mean.c b/src/web/api/queries/trimmed_mean/trimmed_mean.c
index c50db7ed6..c50db7ed6 100644
--- a/web/api/queries/trimmed_mean/trimmed_mean.c
+++ b/src/web/api/queries/trimmed_mean/trimmed_mean.c
diff --git a/web/api/queries/trimmed_mean/trimmed_mean.h b/src/web/api/queries/trimmed_mean/trimmed_mean.h
index 3c09015bf..3c09015bf 100644
--- a/web/api/queries/trimmed_mean/trimmed_mean.h
+++ b/src/web/api/queries/trimmed_mean/trimmed_mean.h
diff --git a/web/api/queries/weights.c b/src/web/api/queries/weights.c
index 68af2250f..44928fea8 100644
--- a/web/api/queries/weights.c
+++ b/src/web/api/queries/weights.c
@@ -113,7 +113,7 @@ static void register_result(DICTIONARY *results, RRDHOST *host, RRDCONTEXT_ACQUI
// we can use the pointer address or RMA as a unique key for each metric
char buf[20 + 1];
ssize_t len = snprintfz(buf, sizeof(buf) - 1, "%p", rma);
- dictionary_set_advanced(results, buf, len + 1, &t, sizeof(struct register_result), NULL);
+ dictionary_set_advanced(results, buf, len, &t, sizeof(struct register_result), NULL);
}
// ----------------------------------------------------------------------------
@@ -158,7 +158,7 @@ static void results_header_to_json(DICTIONARY *results __maybe_unused, BUFFER *w
buffer_json_member_add_string(wb, "group", time_grouping_tostring(group));
buffer_json_member_add_string(wb, "method", weights_method_to_string(method));
- web_client_api_request_v1_data_options_to_buffer_json_array(wb, "options", options);
+ rrdr_options_to_buffer_json_array(wb, "options", options);
}
static size_t registered_results_to_json_charts(DICTIONARY *results, BUFFER *wb,
@@ -372,7 +372,7 @@ static void results_header_to_json_v2(DICTIONARY *results __maybe_unused, BUFFER
buffer_json_member_add_object(wb, "request");
buffer_json_member_add_string(wb, "method", weights_method_to_string(method));
- web_client_api_request_v1_data_options_to_buffer_json_array(wb, "options", options);
+ rrdr_options_to_buffer_json_array(wb, "options", options);
buffer_json_member_add_object(wb, "scope");
buffer_json_member_add_string(wb, "scope_nodes", qwd->qwr->scope_nodes ? qwd->qwr->scope_nodes : "*");
@@ -1717,6 +1717,8 @@ static ssize_t weights_for_rrdmetric(void *data, RRDHOST *host, RRDCONTEXT_ACQUI
return -1;
}
+ query_progress_done_step(qwr->transaction, 1);
+
return 1;
}
diff --git a/web/api/queries/weights.h b/src/web/api/queries/weights.h
index 66bea6ab2..a93519b6f 100644
--- a/web/api/queries/weights.h
+++ b/src/web/api/queries/weights.h
@@ -57,6 +57,8 @@ typedef struct query_weights_request {
weights_interrupt_callback_t interrupt_callback;
void *interrupt_callback_data;
+
+ uuid_t *transaction;
} QUERY_WEIGHTS_REQUEST;
int web_api_v12_weights(BUFFER *wb, QUERY_WEIGHTS_REQUEST *qwr);
diff --git a/web/api/tests/valid_urls.c b/src/web/api/tests/valid_urls.c
index 764d02807..764d02807 100644
--- a/web/api/tests/valid_urls.c
+++ b/src/web/api/tests/valid_urls.c
diff --git a/web/api/tests/web_api.c b/src/web/api/tests/web_api.c
index 694929a94..694929a94 100644
--- a/web/api/tests/web_api.c
+++ b/src/web/api/tests/web_api.c
diff --git a/web/api/web_api.c b/src/web/api/web_api.c
index 25c765551..10a00e22e 100644
--- a/web/api/web_api.c
+++ b/src/web/api/web_api.c
@@ -2,51 +2,31 @@
#include "web_api.h"
-bool netdata_is_protected_by_bearer = false; // this is controlled by cloud, at the point the agent logs in - this should also be saved to /var/lib/netdata
-DICTIONARY *netdata_authorized_bearers = NULL;
-
-static short int web_client_check_acl_and_bearer(struct web_client *w, WEB_CLIENT_ACL endpoint_acl) {
- if(endpoint_acl == WEB_CLIENT_ACL_NONE || (endpoint_acl & WEB_CLIENT_ACL_NOCHECK))
- // the endpoint is totally public
- return HTTP_RESP_OK;
-
- bool acl_allows = w->acl & endpoint_acl;
- if(!acl_allows)
- // the channel we received the request from (w->acl) is not compatible with the endpoint
- return HTTP_RESP_FORBIDDEN;
-
- if(!netdata_is_protected_by_bearer && !(endpoint_acl & WEB_CLIENT_ACL_BEARER_REQUIRED))
- // bearer protection is not enabled and is not required by the endpoint
- return HTTP_RESP_OK;
-
- if(!(endpoint_acl & (WEB_CLIENT_ACL_BEARER_REQUIRED|WEB_CLIENT_ACL_BEARER_OPTIONAL)))
- // endpoint does not require a bearer
- return HTTP_RESP_OK;
-
- if((w->acl & (WEB_CLIENT_ACL_ACLK|WEB_CLIENT_ACL_WEBRTC)))
- // the request is coming from ACLK or WEBRTC (authorized already),
- return HTTP_RESP_OK;
-
- // at this point we need a bearer to serve the request
- // either because:
- //
- // 1. WEB_CLIENT_ACL_BEARER_REQUIRED, or
- // 2. netdata_is_protected_by_bearer == true
- //
-
- BEARER_STATUS t = api_check_bearer_token(w);
- if(t == BEARER_STATUS_AVAILABLE_AND_VALIDATED)
- // we have a valid bearer on the request
- return HTTP_RESP_OK;
-
- netdata_log_info("BEARER: bearer is required for request: code %d", t);
-
- return HTTP_RESP_PRECOND_FAIL;
-}
-
int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_path_endpoint, struct web_api_command *api_commands) {
buffer_no_cacheable(w->response.data);
+ internal_fatal(web_client_flags_check_auth(w) && !(w->access & HTTP_ACCESS_SIGNED_ID),
+ "signed-in permission should be set, but is missing");
+
+ internal_fatal(!web_client_flags_check_auth(w) && (w->access & HTTP_ACCESS_SIGNED_ID),
+ "signed-in permission is set, but it shouldn't");
+
+ if(!web_client_flags_check_auth(w)) {
+ w->user_role = (netdata_is_protected_by_bearer) ? HTTP_USER_ROLE_NONE : HTTP_USER_ROLE_ANY;
+ w->access = (netdata_is_protected_by_bearer) ? HTTP_ACCESS_NONE : HTTP_ACCESS_ANONYMOUS_DATA;
+ }
+
+#ifdef NETDATA_GOD_MODE
+ web_client_flag_set(w, WEB_CLIENT_FLAG_AUTH_GOD);
+ w->user_role = HTTP_USER_ROLE_ADMIN;
+ w->access = HTTP_ACCESS_ALL;
+#endif
+
+ if((w->access & HTTP_ACCESS_SIGNED_ID) && !(w->access & HTTP_ACCESS_SAME_SPACE)) {
+ // this should never happen: a signed-in user from a different space
+ return web_client_permission_denied(w);
+ }
+
if(unlikely(!url_path_endpoint || !*url_path_endpoint)) {
buffer_flush(w->response.data);
buffer_sprintf(w->response.data, "Which API command?");
@@ -64,8 +44,8 @@ int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_pat
uint32_t hash = simple_hash(api_command);
- for(int i = 0; api_commands[i].command ; i++) {
- if(unlikely(hash == api_commands[i].hash && !strcmp(api_command, api_commands[i].command))) {
+ for(int i = 0; api_commands[i].api ; i++) {
+ if(unlikely(hash == api_commands[i].hash && !strcmp(api_command, api_commands[i].api))) {
if(unlikely(!api_commands[i].allow_subpaths && api_command != url_path_endpoint)) {
buffer_flush(w->response.data);
buffer_sprintf(w->response.data, "API command '%s' does not support subpaths.", api_command);
@@ -76,19 +56,14 @@ int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_pat
if (api_command != url_path_endpoint)
freez(api_command);
- short int code = web_client_check_acl_and_bearer(w, api_commands[i].acl);
- if(code != HTTP_RESP_OK) {
- if(code == HTTP_RESP_FORBIDDEN)
- return web_client_permission_denied(w);
-
- if(code == HTTP_RESP_PRECOND_FAIL)
- return web_client_bearer_required(w);
+ bool acl_allows = ((w->acl & api_commands[i].acl) == api_commands[i].acl) || (api_commands[i].acl & HTTP_ACL_NOCHECK);
+ if(!acl_allows)
+ return web_client_permission_denied_acl(w);
- buffer_flush(w->response.data);
- buffer_sprintf(w->response.data, "Failed with code %d", code);
- w->response.code = code;
- return code;
- }
+ bool permissions_allows =
+ http_access_user_has_enough_access_level_for_endpoint(w->access, api_commands[i].access);
+ if(!permissions_allows)
+ return web_client_permission_denied(w);
char *query_string = (char *)buffer_tostring(w->url_query_string_decoded);
@@ -195,7 +170,7 @@ int web_client_api_request_weights(RRDHOST *host, struct web_client *w, char *ur
time_group_options = value;
else if(!strcmp(name, "options"))
- options |= web_client_api_request_v1_data_options(value);
+ options |= rrdr_options_parse(value);
else if(!strcmp(name, "method"))
method = weights_string_to_method(value);
@@ -278,6 +253,8 @@ int web_client_api_request_weights(RRDHOST *host, struct web_client *w, char *ur
.interrupt_callback = web_client_interrupt_callback,
.interrupt_callback_data = w,
+
+ .transaction = &w->transaction,
};
return web_api_v12_weights(wb, &qwr);
diff --git a/src/web/api/web_api.h b/src/web/api/web_api.h
new file mode 100644
index 000000000..6d30630dc
--- /dev/null
+++ b/src/web/api/web_api.h
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef NETDATA_WEB_API_H
+#define NETDATA_WEB_API_H 1
+
+#include "daemon/common.h"
+#include "web/api/http_header.h"
+#include "web/api/http_auth.h"
+#include "web/api/badges/web_buffer_svg.h"
+#include "web/api/ilove/ilove.h"
+#include "web/api/formatters/rrd2json.h"
+#include "web/api/queries/weights.h"
+
+struct web_api_command {
+ const char *api;
+ uint32_t hash;
+ HTTP_ACL acl;
+ HTTP_ACCESS access;
+ int (*callback)(RRDHOST *host, struct web_client *w, char *url);
+ unsigned int allow_subpaths;
+};
+
+struct web_client;
+
+int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_path_endpoint, struct web_api_command *api_commands);
+
+static inline void fix_google_param(char *s) {
+ if(unlikely(!s || !*s)) return;
+
+ for( ; *s ;s++) {
+ if(!isalnum(*s) && *s != '.' && *s != '_' && *s != '-')
+ *s = '_';
+ }
+}
+
+int web_client_api_request_weights(RRDHOST *host, struct web_client *w, char *url, WEIGHTS_METHOD method, WEIGHTS_FORMAT format, size_t api_version);
+
+bool web_client_interrupt_callback(void *data);
+
+#include "web_api_v1.h"
+#include "web_api_v2.h"
+
+#endif //NETDATA_WEB_API_H
diff --git a/web/api/web_api_v1.c b/src/web/api/web_api_v1.c
index e08f8aa2f..386221d61 100644
--- a/web/api/web_api_v1.c
+++ b/src/web/api/web_api_v1.c
@@ -8,17 +8,20 @@ static struct {
const char *name;
uint32_t hash;
RRDR_OPTIONS value;
-} api_v1_data_options[] = {
+} rrdr_options[] = {
{ "nonzero" , 0 , RRDR_OPTION_NONZERO}
, {"flip" , 0 , RRDR_OPTION_REVERSED}
, {"reversed" , 0 , RRDR_OPTION_REVERSED}
, {"reverse" , 0 , RRDR_OPTION_REVERSED}
, {"jsonwrap" , 0 , RRDR_OPTION_JSON_WRAP}
- , {"min2max" , 0 , RRDR_OPTION_MIN2MAX}
+ , {"min2max" , 0 , RRDR_OPTION_DIMS_MIN2MAX} // rrdr2value() only
+ , {"average" , 0 , RRDR_OPTION_DIMS_AVERAGE} // rrdr2value() only
+ , {"min" , 0 , RRDR_OPTION_DIMS_MIN} // rrdr2value() only
+ , {"max" , 0 , RRDR_OPTION_DIMS_MAX} // rrdr2value() only
, {"ms" , 0 , RRDR_OPTION_MILLISECONDS}
, {"milliseconds" , 0 , RRDR_OPTION_MILLISECONDS}
- , {"abs" , 0 , RRDR_OPTION_ABSOLUTE}
, {"absolute" , 0 , RRDR_OPTION_ABSOLUTE}
+ , {"abs" , 0 , RRDR_OPTION_ABSOLUTE}
, {"absolute_sum" , 0 , RRDR_OPTION_ABSOLUTE}
, {"absolute-sum" , 0 , RRDR_OPTION_ABSOLUTE}
, {"display_absolute" , 0 , RRDR_OPTION_DISPLAY_ABS}
@@ -108,13 +111,15 @@ static struct {
uint32_t hash;
DATASOURCE_FORMAT value;
} api_v1_data_google_formats[] = {
- // this is not error - when google requests json, it expects javascript
- // https://developers.google.com/chart/interactive/docs/dev/implementing_data_source#responseformat
- { "json" , 0 , DATASOURCE_DATATABLE_JSONP}
- , {"html" , 0 , DATASOURCE_HTML}
- , {"csv" , 0 , DATASOURCE_CSV}
- , {"tsv-excel", 0 , DATASOURCE_TSV}
- , { NULL, 0, 0}
+ // this is not an error - when Google requests json, it expects javascript
+ // https://developers.google.com/chart/interactive/docs/dev/implementing_data_source#responseformat
+ {"json", 0, DATASOURCE_DATATABLE_JSONP}
+ , {"html", 0, DATASOURCE_HTML}
+ , {"csv", 0, DATASOURCE_CSV}
+ , {"tsv-excel", 0, DATASOURCE_TSV}
+
+ // terminator
+ , {NULL, 0, 0}
};
void web_client_api_v1_init(void) {
@@ -123,8 +128,8 @@ void web_client_api_v1_init(void) {
for(i = 0; contexts_v2_alert_status[i].name ; i++)
contexts_v2_alert_status[i].hash = simple_hash(contexts_v2_alert_status[i].name);
- for(i = 0; api_v1_data_options[i].name ; i++)
- api_v1_data_options[i].hash = simple_hash(api_v1_data_options[i].name);
+ for(i = 0; rrdr_options[i].name ; i++)
+ rrdr_options[i].hash = simple_hash(rrdr_options[i].name);
for(i = 0; contexts_v2_options[i].name ; i++)
contexts_v2_options[i].hash = simple_hash(contexts_v2_options[i].name);
@@ -157,7 +162,7 @@ char *get_mgmt_api_key(void) {
return guid;
// read it from disk
- int fd = open(api_key_filename, O_RDONLY);
+ int fd = open(api_key_filename, O_RDONLY | O_CLOEXEC);
if(fd != -1) {
char buf[GUID_LEN + 1];
if(read(fd, buf, GUID_LEN) != GUID_LEN)
@@ -183,7 +188,7 @@ char *get_mgmt_api_key(void) {
guid[GUID_LEN] = '\0';
// save it
- fd = open(api_key_filename, O_WRONLY|O_CREAT|O_TRUNC, 444);
+ fd = open(api_key_filename, O_WRONLY|O_CREAT|O_TRUNC | O_CLOEXEC, 444);
if(fd == -1) {
netdata_log_error("Cannot create unique management API key file '%s'. Please adjust config parameter 'netdata management api key file' to a proper path and file.", api_key_filename);
goto temp_key;
@@ -209,21 +214,30 @@ void web_client_api_v1_management_init(void) {
api_secret = get_mgmt_api_key();
}
-inline RRDR_OPTIONS web_client_api_request_v1_data_options(char *o) {
+inline RRDR_OPTIONS rrdr_options_parse_one(const char *o) {
+ RRDR_OPTIONS ret = 0;
+
+ if(!o || !*o) return ret;
+
+ uint32_t hash = simple_hash(o);
+ int i;
+ for(i = 0; rrdr_options[i].name ; i++) {
+ if (unlikely(hash == rrdr_options[i].hash && !strcmp(o, rrdr_options[i].name))) {
+ ret |= rrdr_options[i].value;
+ break;
+ }
+ }
+
+ return ret;
+}
+
+inline RRDR_OPTIONS rrdr_options_parse(char *o) {
RRDR_OPTIONS ret = 0;
char *tok;
while(o && *o && (tok = strsep_skip_consecutive_separators(&o, ", |"))) {
if(!*tok) continue;
-
- uint32_t hash = simple_hash(tok);
- int i;
- for(i = 0; api_v1_data_options[i].name ; i++) {
- if (unlikely(hash == api_v1_data_options[i].hash && !strcmp(tok, api_v1_data_options[i].name))) {
- ret |= api_v1_data_options[i].value;
- break;
- }
- }
+ ret |= rrdr_options_parse_one(tok);
}
return ret;
@@ -301,14 +315,14 @@ void web_client_api_request_v2_contexts_options_to_buffer_json_array(BUFFER *wb,
buffer_json_array_close(wb);
}
-void web_client_api_request_v1_data_options_to_buffer_json_array(BUFFER *wb, const char *key, RRDR_OPTIONS options) {
+void rrdr_options_to_buffer_json_array(BUFFER *wb, const char *key, RRDR_OPTIONS options) {
buffer_json_member_add_array(wb, key);
RRDR_OPTIONS used = 0; // to prevent adding duplicates
- for(int i = 0; api_v1_data_options[i].name ; i++) {
- if (unlikely((api_v1_data_options[i].value & options) && !(api_v1_data_options[i].value & used))) {
- const char *name = api_v1_data_options[i].name;
- used |= api_v1_data_options[i].value;
+ for(int i = 0; rrdr_options[i].name ; i++) {
+ if (unlikely((rrdr_options[i].value & options) && !(rrdr_options[i].value & used))) {
+ const char *name = rrdr_options[i].name;
+ used |= rrdr_options[i].value;
buffer_json_add_array_item_string(wb, name);
}
@@ -317,16 +331,30 @@ void web_client_api_request_v1_data_options_to_buffer_json_array(BUFFER *wb, con
buffer_json_array_close(wb);
}
+void rrdr_options_to_buffer(BUFFER *wb, RRDR_OPTIONS options) {
+ RRDR_OPTIONS used = 0; // to prevent adding duplicates
+ size_t added = 0;
+ for(int i = 0; rrdr_options[i].name ; i++) {
+ if (unlikely((rrdr_options[i].value & options) && !(rrdr_options[i].value & used))) {
+ const char *name = rrdr_options[i].name;
+ used |= rrdr_options[i].value;
+
+ if(added++) buffer_strcat(wb, " ");
+ buffer_strcat(wb, name);
+ }
+ }
+}
+
void web_client_api_request_v1_data_options_to_string(char *buf, size_t size, RRDR_OPTIONS options) {
char *write = buf;
char *end = &buf[size - 1];
RRDR_OPTIONS used = 0; // to prevent adding duplicates
int added = 0;
- for(int i = 0; api_v1_data_options[i].name ; i++) {
- if (unlikely((api_v1_data_options[i].value & options) && !(api_v1_data_options[i].value & used))) {
- const char *name = api_v1_data_options[i].name;
- used |= api_v1_data_options[i].value;
+ for(int i = 0; rrdr_options[i].name ; i++) {
+ if (unlikely((rrdr_options[i].value & options) && !(rrdr_options[i].value & used))) {
+ const char *name = rrdr_options[i].name;
+ used |= rrdr_options[i].value;
if(added && write < end)
*write++ = ',';
@@ -512,6 +540,52 @@ inline int web_client_api_request_single_chart(RRDHOST *host, struct web_client
return ret;
}
+static inline int web_client_api_request_variable(RRDHOST *host, struct web_client *w, char *url) {
+ int ret = HTTP_RESP_BAD_REQUEST;
+ char *chart = NULL;
+ char *variable = NULL;
+
+ buffer_flush(w->response.data);
+
+ while(url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if(!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if(!name || !*name) continue;
+ if(!value || !*value) continue;
+
+ // name and value are now the parameters
+ // they are not null and not empty
+
+ if(!strcmp(name, "chart")) chart = value;
+ else if(!strcmp(name, "variable")) variable = value;
+ }
+
+ if(!chart || !*chart || !variable || !*variable) {
+ buffer_sprintf(w->response.data, "A chart= and a variable= are required.");
+ goto cleanup;
+ }
+
+ RRDSET *st = rrdset_find(host, chart);
+ if(!st) st = rrdset_find_byname(host, chart);
+ if(!st) {
+ buffer_strcat(w->response.data, "Chart is not found: ");
+ buffer_strcat_htmlescape(w->response.data, chart);
+ ret = HTTP_RESP_NOT_FOUND;
+ goto cleanup;
+ }
+
+ w->response.data->content_type = CT_APPLICATION_JSON;
+ st->last_accessed_time_s = now_realtime_sec();
+ alert_variable_lookup_trace(host, st, variable, w->response.data);
+
+ return HTTP_RESP_OK;
+
+cleanup:
+ return ret;
+}
+
inline int web_client_api_request_v1_alarm_variables(RRDHOST *host, struct web_client *w, char *url) {
return web_client_api_request_single_chart(host, w, url, health_api_v1_chart_variables2json);
}
@@ -721,7 +795,7 @@ static inline int web_client_api_request_v1_data(RRDHOST *host, struct web_clien
format = web_client_api_request_v1_data_format(value);
}
else if(!strcmp(name, "options")) {
- options |= web_client_api_request_v1_data_options(value);
+ options |= rrdr_options_parse(value);
}
else if(!strcmp(name, "callback")) {
responseHandler = value;
@@ -822,6 +896,7 @@ static inline int web_client_api_request_v1_data(RRDHOST *host, struct web_clien
.priority = STORAGE_PRIORITY_NORMAL,
.interrupt_callback = web_client_interrupt_callback,
.interrupt_callback_data = w,
+ .transaction = &w->transaction,
};
qt = query_target_create(&qtr);
@@ -856,7 +931,7 @@ static inline int web_client_api_request_v1_data(RRDHOST *host, struct web_clien
responseHandler,
google_version,
google_reqId,
- (int64_t)st->last_updated.tv_sec);
+ (int64_t)(st ? st->last_updated.tv_sec : 0));
}
else if(format == DATASOURCE_JSONP) {
if(responseHandler == NULL)
@@ -941,7 +1016,7 @@ inline int web_client_api_request_v1_registry(RRDHOST *host, struct web_client *
char *cookie = strstr(w->response.data->buffer, NETDATA_REGISTRY_COOKIE_NAME "=");
if(cookie)
strncpyz(person_guid, &cookie[sizeof(NETDATA_REGISTRY_COOKIE_NAME)], UUID_STR_LEN - 1);
- else if(extract_bearer_token_from_request(w, person_guid, sizeof(person_guid)) != BEARER_STATUS_EXTRACTED_FROM_HEADER)
+ else if(!extract_bearer_token_from_request(w, person_guid, sizeof(person_guid)))
person_guid[0] = '\0';
char action = '\0';
@@ -1018,13 +1093,13 @@ inline int web_client_api_request_v1_registry(RRDHOST *host, struct web_client *
if(unlikely(action == 'H')) {
// HELLO request, dashboard ACL
analytics_log_dashboard();
- if(unlikely(!web_client_can_access_dashboard(w)))
- return web_client_permission_denied(w);
+ if(unlikely(!http_can_access_dashboard(w)))
+ return web_client_permission_denied_acl(w);
}
else {
// everything else, registry ACL
- if(unlikely(!web_client_can_access_registry(w)))
- return web_client_permission_denied(w);
+ if(unlikely(!http_can_access_registry(w)))
+ return web_client_permission_denied_acl(w);
if(unlikely(do_not_track)) {
buffer_flush(w->response.data);
@@ -1325,21 +1400,6 @@ int web_client_api_request_v1_ml_info(RRDHOST *host, struct web_client *w, char
return HTTP_RESP_OK;
}
-
-int web_client_api_request_v1_ml_models(RRDHOST *host, struct web_client *w, char *url) {
- (void) url;
-
- if (!netdata_ready)
- return HTTP_RESP_SERVICE_UNAVAILABLE;
-
- BUFFER *wb = w->response.data;
- buffer_flush(wb);
- wb->content_type = CT_APPLICATION_JSON;
- ml_host_get_models(host, wb);
- buffer_no_cacheable(wb);
-
- return HTTP_RESP_OK;
-}
#endif // ENABLE_ML
inline int web_client_api_request_v1_info(RRDHOST *host, struct web_client *w, char *url) {
@@ -1373,13 +1433,17 @@ static int web_client_api_request_v1_aclk_state(RRDHOST *host, struct web_client
}
int web_client_api_request_v1_metric_correlations(RRDHOST *host, struct web_client *w, char *url) {
- return web_client_api_request_weights(host, w, url, default_metric_correlations_method,
- WEIGHTS_FORMAT_CHARTS, 1);
+ return web_client_api_request_weights(host, w, url, default_metric_correlations_method, WEIGHTS_FORMAT_CHARTS, 1);
}
int web_client_api_request_v1_weights(RRDHOST *host, struct web_client *w, char *url) {
- return web_client_api_request_weights(host, w, url, WEIGHTS_METHOD_ANOMALY_RATE,
- WEIGHTS_FORMAT_CONTEXTS, 1);
+ return web_client_api_request_weights(host, w, url, WEIGHTS_METHOD_ANOMALY_RATE, WEIGHTS_FORMAT_CONTEXTS, 1);
+}
+
+static void web_client_progress_functions_update(void *data, size_t done, size_t all) {
+ // handle progress updates from the plugin
+ struct web_client *w = data;
+ query_progress_functions_update(&w->transaction, done, all);
}
int web_client_api_request_v1_function(RRDHOST *host, struct web_client *w, char *url) {
@@ -1413,9 +1477,14 @@ int web_client_api_request_v1_function(RRDHOST *host, struct web_client *w, char
char transaction[UUID_COMPACT_STR_LEN];
uuid_unparse_lower_compact(w->transaction, transaction);
- return rrd_function_run(host, wb, timeout, function, true, transaction,
+ CLEAN_BUFFER *source = buffer_create(100, NULL);
+ web_client_source2buffer(w, source);
+
+ return rrd_function_run(host, wb, timeout, w->access, function, true, transaction,
NULL, NULL,
- web_client_interrupt_callback, w, NULL);
+ web_client_progress_functions_update, w,
+ web_client_interrupt_callback, w, NULL,
+ buffer_tostring(source));
}
int web_client_api_request_v1_functions(RRDHOST *host, struct web_client *w, char *url __maybe_unused) {
@@ -1434,6 +1503,113 @@ int web_client_api_request_v1_functions(RRDHOST *host, struct web_client *w, cha
return HTTP_RESP_OK;
}
+void web_client_source2buffer(struct web_client *w, BUFFER *source) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_AUTH_CLOUD))
+ buffer_sprintf(source, "method=NC");
+ else if(web_client_flag_check(w, WEB_CLIENT_FLAG_AUTH_BEARER))
+ buffer_sprintf(source, "method=api-bearer");
+ else
+ buffer_sprintf(source, "method=api");
+
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_AUTH_GOD))
+ buffer_strcat(source, ",role=god");
+ else
+ buffer_sprintf(source, ",role=%s", http_id2user_role(w->user_role));
+
+ buffer_sprintf(source, ",permissions="HTTP_ACCESS_FORMAT, (HTTP_ACCESS_FORMAT_CAST)w->access);
+
+ if(w->auth.client_name[0])
+ buffer_sprintf(source, ",user=%s", w->auth.client_name);
+
+ if(!uuid_is_null(w->auth.cloud_account_id)) {
+ char uuid_str[UUID_COMPACT_STR_LEN];
+ uuid_unparse_lower_compact(w->auth.cloud_account_id, uuid_str);
+ buffer_sprintf(source, ",account=%s", uuid_str);
+ }
+
+ if(w->client_ip[0])
+ buffer_sprintf(source, ",ip=%s", w->client_ip);
+
+ if(w->forwarded_for)
+ buffer_sprintf(source, ",forwarded_for=%s", w->forwarded_for);
+}
+
+static int web_client_api_request_v1_config(RRDHOST *host, struct web_client *w, char *url __maybe_unused) {
+ char *action = "tree";
+ char *path = "/";
+ char *id = NULL;
+ char *add_name = NULL;
+ int timeout = 120;
+
+ while(url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if(!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if(!name || !*name) continue;
+ if(!value || !*value) continue;
+
+ // name and value are now the parameters
+ // they are not null and not empty
+
+ if(!strcmp(name, "action"))
+ action = value;
+ else if(!strcmp(name, "path"))
+ path = value;
+ else if(!strcmp(name, "id"))
+ id = value;
+ else if(!strcmp(name, "name"))
+ add_name = value;
+ else if(!strcmp(name, "timeout")) {
+ timeout = (int)strtol(value, NULL, 10);
+ if(timeout < 10)
+ timeout = 10;
+ }
+ }
+
+ char transaction[UUID_COMPACT_STR_LEN];
+ uuid_unparse_lower_compact(w->transaction, transaction);
+
+ size_t len = strlen(action) + (id ? strlen(id) : 0) + strlen(path) + (add_name ? strlen(add_name) : 0) + 100;
+
+ char cmd[len];
+ if(strcmp(action, "tree") == 0)
+ snprintfz(cmd, sizeof(cmd), PLUGINSD_FUNCTION_CONFIG " tree '%s' '%s'", path, id?id:"");
+ else {
+ DYNCFG_CMDS c = dyncfg_cmds2id(action);
+ if(!id || !*id || !dyncfg_is_valid_id(id)) {
+ rrd_call_function_error(w->response.data, "invalid id given", HTTP_RESP_BAD_REQUEST);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+ if(c == DYNCFG_CMD_NONE) {
+ rrd_call_function_error(w->response.data, "invalid action given", HTTP_RESP_BAD_REQUEST);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+ else if(c == DYNCFG_CMD_ADD) {
+ if(!add_name || !*add_name || !dyncfg_is_valid_id(add_name)) {
+ rrd_call_function_error(w->response.data, "invalid name given", HTTP_RESP_BAD_REQUEST);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+ snprintfz(cmd, sizeof(cmd), PLUGINSD_FUNCTION_CONFIG " %s %s %s", id, dyncfg_id2cmd_one(c), add_name);
+ }
+ else
+ snprintfz(cmd, sizeof(cmd), PLUGINSD_FUNCTION_CONFIG " %s %s", id, dyncfg_id2cmd_one(c));
+ }
+
+ CLEAN_BUFFER *source = buffer_create(100, NULL);
+ web_client_source2buffer(w, source);
+
+ buffer_flush(w->response.data);
+ int code = rrd_function_run(host, w->response.data, timeout, w->access, cmd,
+ true, transaction,
+ NULL, NULL,
+ web_client_progress_functions_update, w,
+ web_client_interrupt_callback, w,
+ w->payload, buffer_tostring(source));
+
+ return code;
+}
+
#ifndef ENABLE_DBENGINE
int web_client_api_request_v1_dbengine_stats(RRDHOST *host __maybe_unused, struct web_client *w __maybe_unused, char *url __maybe_unused) {
return HTTP_RESP_NOT_FOUND;
@@ -1540,50 +1716,238 @@ int web_client_api_request_v1_mgmt(RRDHOST *host, struct web_client *w, char *ur
}
needle += strlen(HLT_MGM);
if (*needle != '\0') {
- buffer_strcat(w->response.data, "Invalid management request. Curently only 'health' is supported.");
+ buffer_strcat(w->response.data, "Invalid management request. Currently only 'health' is supported.");
return HTTP_RESP_NOT_FOUND;
}
return web_client_api_request_v1_mgmt_health(host, w, url);
}
static struct web_api_command api_commands_v1[] = {
- { "info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_info, 0 },
- { "data", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_data, 0 },
- { "chart", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_chart, 0 },
- { "charts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_charts, 0 },
- { "context", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_context, 0 },
- { "contexts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_contexts, 0 },
-
+ // time-series data APIs
+ {
+ .api = "data",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_data,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "weights",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_weights,
+ .allow_subpaths = 0
+ },
+ {
+ // deprecated - do not use anymore - use "weights"
+ .api = "metric_correlations",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_metric_correlations,
+ .allow_subpaths = 0
+ },
+ {
+ // exporting API
+ .api = "allmetrics",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_allmetrics,
+ .allow_subpaths = 0
+ },
+ {
+ // badges can be fetched with both dashboard and badge ACL
+ .api = "badge.svg",
+ .hash = 0,
+ .acl = HTTP_ACL_BADGES,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_badge,
+ .allow_subpaths = 0
+ },
+
+ // alerts APIs
+ {
+ .api = "alarms",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_alarms,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "alarms_values",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_alarms_values,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "alarm_log",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_alarm_log,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "alarm_variables",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_alarm_variables,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "variable",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_variable,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "alarm_count",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_alarm_count,
+ .allow_subpaths = 0
+ },
+
+ // functions APIs - they check permissions per function call
+ {
+ .api = "function",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_function,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "functions",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_functions,
+ .allow_subpaths = 0
+ },
+
+ // time-series metadata APIs
+ {
+ .api = "chart",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_chart,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "charts",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_charts,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "context",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_context,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "contexts",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_contexts,
+ .allow_subpaths = 0
+ },
+
+ // registry APIs
+ {
// registry checks the ACL by itself, so we allow everything
- { "registry", 0, WEB_CLIENT_ACL_NOCHECK, web_client_api_request_v1_registry, 0 },
-
- // badges can be fetched with both dashboard and badge permissions
- { "badge.svg", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC | WEB_CLIENT_ACL_BADGE, web_client_api_request_v1_badge, 0 },
-
- { "alarms", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarms, 0 },
- { "alarms_values", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarms_values, 0 },
- { "alarm_log", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_log, 0 },
- { "alarm_variables", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_variables, 0 },
- { "alarm_count", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_count, 0 },
- { "allmetrics", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_allmetrics, 0 },
+ .api = "registry",
+ .hash = 0,
+ .acl = HTTP_ACL_NONE, // it manages acl by itself
+ .access = HTTP_ACCESS_NONE, // it manages access by itself
+ .callback = web_client_api_request_v1_registry,
+ .allow_subpaths = 0
+ },
+
+ // agent information APIs
+ {
+ .api = "info",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_info,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "aclk",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_aclk_state,
+ .allow_subpaths = 0
+ },
+ {
+ // deprecated - use /api/v2/info
+ .api = "dbengine_stats",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_dbengine_stats,
+ .allow_subpaths = 0
+ },
+
+ // dyncfg APIs
+ {
+ .api = "config",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_config,
+ .allow_subpaths = 0
+ },
#if defined(ENABLE_ML)
- { "ml_info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_ml_info, 0 },
- // { "ml_models", 0, WEB_CLIENT_ACL_DASHBOARD, web_client_api_request_v1_ml_models },
+ {
+ .api = "ml_info",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v1_ml_info,
+ .allow_subpaths = 0
+ },
#endif
- {"manage", 0, WEB_CLIENT_ACL_MGMT | WEB_CLIENT_ACL_ACLK, web_client_api_request_v1_mgmt, 1 },
- { "aclk", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_aclk_state, 0 },
- { "metric_correlations", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_metric_correlations, 0 },
- { "weights", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_weights, 0 },
-
- {"function", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v1_function, 0 },
- {"functions", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v1_functions, 0 },
-
- { "dbengine_stats", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_dbengine_stats, 0 },
-
- // terminator
- { NULL, 0, WEB_CLIENT_ACL_NONE, NULL, 0 },
+ {
+ // deprecated
+ .api = "manage",
+ .hash = 0,
+ .acl = HTTP_ACL_MANAGEMENT,
+ .access = HTTP_ACCESS_NONE, // it manages access by itself
+ .callback = web_client_api_request_v1_mgmt,
+ .allow_subpaths = 1
+ },
+
+ {
+ // terminator - keep this last on this list
+ .api = NULL,
+ .hash = 0,
+ .acl = HTTP_ACL_NONE,
+ .access = HTTP_ACCESS_NONE,
+ .callback = NULL,
+ .allow_subpaths = 0
+ },
};
inline int web_client_api_request_v1(RRDHOST *host, struct web_client *w, char *url_path_endpoint) {
@@ -1592,8 +1956,8 @@ inline int web_client_api_request_v1(RRDHOST *host, struct web_client *w, char *
if(unlikely(initialized == 0)) {
initialized = 1;
- for(int i = 0; api_commands_v1[i].command ; i++)
- api_commands_v1[i].hash = simple_hash(api_commands_v1[i].command);
+ for(int i = 0; api_commands_v1[i].api ; i++)
+ api_commands_v1[i].hash = simple_hash(api_commands_v1[i].api);
}
return web_client_api_request_vX(host, w, url_path_endpoint, api_commands_v1);
diff --git a/web/api/web_api_v1.h b/src/web/api/web_api_v1.h
index 5845f3ec2..cf0efbd13 100644
--- a/web/api/web_api_v1.h
+++ b/src/web/api/web_api_v1.h
@@ -12,8 +12,11 @@ CONTEXTS_V2_ALERT_STATUS web_client_api_request_v2_alert_status(char *o);
void web_client_api_request_v2_contexts_options_to_buffer_json_array(BUFFER *wb, const char *key, CONTEXTS_V2_OPTIONS options);
void web_client_api_request_v2_contexts_alerts_status_to_buffer_json_array(BUFFER *wb, const char *key, CONTEXTS_V2_ALERT_STATUS options);
-RRDR_OPTIONS web_client_api_request_v1_data_options(char *o);
-void web_client_api_request_v1_data_options_to_buffer_json_array(BUFFER *wb, const char *key, RRDR_OPTIONS options);
+RRDR_OPTIONS rrdr_options_parse(char *o);
+RRDR_OPTIONS rrdr_options_parse_one(const char *o);
+
+void rrdr_options_to_buffer(BUFFER *wb, RRDR_OPTIONS options);
+void rrdr_options_to_buffer_json_array(BUFFER *wb, const char *key, RRDR_OPTIONS options);
void web_client_api_request_v1_data_options_to_string(char *buf, size_t size, RRDR_OPTIONS options);
uint32_t web_client_api_request_v1_data_format(char *name);
@@ -38,6 +41,8 @@ void web_client_api_v1_management_init(void);
void host_labels2json(RRDHOST *host, BUFFER *wb, const char *key);
void web_client_api_request_v1_info_summary_alarm_statuses(RRDHOST *host, BUFFER *wb, const char *key);
+void web_client_source2buffer(struct web_client *w, BUFFER *source);
+
extern char *api_secret;
#endif //NETDATA_WEB_API_V1_H
diff --git a/src/web/api/web_api_v2.c b/src/web/api/web_api_v2.c
new file mode 100644
index 000000000..4f24e8c68
--- /dev/null
+++ b/src/web/api/web_api_v2.c
@@ -0,0 +1,770 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "web_api_v2.h"
+#include "../rtc/webrtc.h"
+
+static bool verify_agent_uuids(const char *machine_guid, const char *node_id, const char *claim_id) {
+ if(!machine_guid || !node_id || !claim_id)
+ return false;
+
+ if(strcmp(machine_guid, localhost->machine_guid) != 0)
+ return false;
+
+ char *agent_claim_id = get_agent_claimid();
+
+ bool not_verified = (!agent_claim_id || strcmp(claim_id, agent_claim_id) != 0);
+ freez(agent_claim_id);
+
+ if(not_verified || !localhost->node_id)
+ return false;
+
+ char buf[UUID_STR_LEN];
+ uuid_unparse_lower(*localhost->node_id, buf);
+
+ if(strcmp(node_id, buf) != 0)
+ return false;
+
+ return true;
+}
+
+int api_v2_bearer_protection(RRDHOST *host __maybe_unused, struct web_client *w __maybe_unused, char *url) {
+ char *machine_guid = NULL;
+ char *claim_id = NULL;
+ char *node_id = NULL;
+ bool protection = netdata_is_protected_by_bearer;
+
+ while (url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if (!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if (!name || !*name) continue;
+ if (!value || !*value) continue;
+
+ if(!strcmp(name, "bearer_protection")) {
+ if(!strcmp(value, "on") || !strcmp(value, "true") || !strcmp(value, "yes"))
+ protection = true;
+ else
+ protection = false;
+ }
+ else if(!strcmp(name, "machine_guid"))
+ machine_guid = value;
+ else if(!strcmp(name, "claim_id"))
+ claim_id = value;
+ else if(!strcmp(name, "node_id"))
+ node_id = value;
+ }
+
+ if(!verify_agent_uuids(machine_guid, node_id, claim_id)) {
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "The request is missing or not matching local UUIDs");
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
+ netdata_is_protected_by_bearer = protection;
+
+ BUFFER *wb = w->response.data;
+ buffer_flush(wb);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
+ buffer_json_member_add_boolean(wb, "bearer_protection", netdata_is_protected_by_bearer);
+ buffer_json_finalize(wb);
+
+ return HTTP_RESP_OK;
+}
+
+int api_v2_bearer_token(RRDHOST *host __maybe_unused, struct web_client *w __maybe_unused, char *url __maybe_unused) {
+ char *machine_guid = NULL;
+ char *claim_id = NULL;
+ char *node_id = NULL;
+
+ while(url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if (!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if (!name || !*name) continue;
+ if (!value || !*value) continue;
+
+ if(!strcmp(name, "machine_guid"))
+ machine_guid = value;
+ else if(!strcmp(name, "claim_id"))
+ claim_id = value;
+ else if(!strcmp(name, "node_id"))
+ node_id = value;
+ }
+
+ if(!verify_agent_uuids(machine_guid, node_id, claim_id)) {
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "The request is missing or not matching local UUIDs");
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
+ uuid_t uuid;
+ time_t expires_s = bearer_create_token(&uuid, w);
+
+ BUFFER *wb = w->response.data;
+ buffer_flush(wb);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
+ buffer_json_member_add_string(wb, "mg", localhost->machine_guid);
+ buffer_json_member_add_boolean(wb, "bearer_protection", netdata_is_protected_by_bearer);
+ buffer_json_member_add_uuid(wb, "token", &uuid);
+ buffer_json_member_add_time_t(wb, "expiration", expires_s);
+ buffer_json_finalize(wb);
+
+ return HTTP_RESP_OK;
+}
+
+static int web_client_api_request_v2_contexts_internal(RRDHOST *host __maybe_unused, struct web_client *w, char *url, CONTEXTS_V2_MODE mode) {
+ struct api_v2_contexts_request req = { 0 };
+
+ while(url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if(!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if(!name || !*name) continue;
+ if(!value || !*value) continue;
+
+ // name and value are now the parameters
+ // they are not null and not empty
+
+ if(!strcmp(name, "scope_nodes"))
+ req.scope_nodes = value;
+ else if(!strcmp(name, "nodes"))
+ req.nodes = value;
+ else if((mode & (CONTEXTS_V2_CONTEXTS | CONTEXTS_V2_SEARCH | CONTEXTS_V2_ALERTS | CONTEXTS_V2_ALERT_TRANSITIONS)) && !strcmp(name, "scope_contexts"))
+ req.scope_contexts = value;
+ else if((mode & (CONTEXTS_V2_CONTEXTS | CONTEXTS_V2_SEARCH | CONTEXTS_V2_ALERTS | CONTEXTS_V2_ALERT_TRANSITIONS)) && !strcmp(name, "contexts"))
+ req.contexts = value;
+ else if((mode & CONTEXTS_V2_SEARCH) && !strcmp(name, "q"))
+ req.q = value;
+ else if(!strcmp(name, "options"))
+ req.options = web_client_api_request_v2_context_options(value);
+ else if(!strcmp(name, "after"))
+ req.after = str2l(value);
+ else if(!strcmp(name, "before"))
+ req.before = str2l(value);
+ else if(!strcmp(name, "timeout"))
+ req.timeout_ms = str2l(value);
+ else if(mode & (CONTEXTS_V2_ALERTS | CONTEXTS_V2_ALERT_TRANSITIONS)) {
+ if (!strcmp(name, "alert"))
+ req.alerts.alert = value;
+ else if (!strcmp(name, "transition"))
+ req.alerts.transition = value;
+ else if(mode & CONTEXTS_V2_ALERTS) {
+ if (!strcmp(name, "status"))
+ req.alerts.status = web_client_api_request_v2_alert_status(value);
+ }
+ else if(mode & CONTEXTS_V2_ALERT_TRANSITIONS) {
+ if (!strcmp(name, "last"))
+ req.alerts.last = strtoul(value, NULL, 0);
+ else if(!strcmp(name, "context"))
+ req.contexts = value;
+ else if (!strcmp(name, "anchor_gi")) {
+ req.alerts.global_id_anchor = str2ull(value, NULL);
+ }
+ else {
+ for(int i = 0; i < ATF_TOTAL_ENTRIES ;i++) {
+ if(!strcmp(name, alert_transition_facets[i].query_param))
+ req.alerts.facets[i] = value;
+ }
+ }
+ }
+ }
+ }
+
+ if ((mode & CONTEXTS_V2_ALERT_TRANSITIONS) && !req.alerts.last)
+ req.alerts.last = 1;
+
+ buffer_flush(w->response.data);
+ buffer_no_cacheable(w->response.data);
+ return rrdcontext_to_json_v2(w->response.data, &req, mode);
+}
+
+static int web_client_api_request_v2_alert_transitions(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_ALERT_TRANSITIONS | CONTEXTS_V2_NODES);
+}
+
+static int web_client_api_request_v2_alerts(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_ALERTS | CONTEXTS_V2_NODES);
+}
+
+static int web_client_api_request_v2_functions(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_FUNCTIONS | CONTEXTS_V2_NODES | CONTEXTS_V2_AGENTS | CONTEXTS_V2_VERSIONS);
+}
+
+static int web_client_api_request_v2_versions(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_VERSIONS);
+}
+
+static int web_client_api_request_v2_q(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_SEARCH | CONTEXTS_V2_CONTEXTS | CONTEXTS_V2_NODES | CONTEXTS_V2_AGENTS | CONTEXTS_V2_VERSIONS);
+}
+
+static int web_client_api_request_v2_contexts(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_CONTEXTS | CONTEXTS_V2_NODES | CONTEXTS_V2_AGENTS | CONTEXTS_V2_VERSIONS);
+}
+
+static int web_client_api_request_v2_nodes(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_NODES | CONTEXTS_V2_NODES_INFO);
+}
+
+static int web_client_api_request_v2_info(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_AGENTS | CONTEXTS_V2_AGENTS_INFO);
+}
+
+static int web_client_api_request_v2_node_instances(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_v2_contexts_internal(host, w, url, CONTEXTS_V2_NODES | CONTEXTS_V2_NODE_INSTANCES | CONTEXTS_V2_AGENTS | CONTEXTS_V2_AGENTS_INFO | CONTEXTS_V2_VERSIONS);
+}
+
+static int web_client_api_request_v2_weights(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return web_client_api_request_weights(host, w, url, WEIGHTS_METHOD_VALUE, WEIGHTS_FORMAT_MULTINODE, 2);
+}
+
+static int web_client_api_request_v2_claim(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ return api_v2_claim(w, url);
+}
+
+static int web_client_api_request_v2_alert_config(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ const char *config = NULL;
+
+ while(url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if(!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if(!name || !*name) continue;
+ if(!value || !*value) continue;
+
+ // name and value are now the parameters
+ // they are not null and not empty
+
+ if(!strcmp(name, "config"))
+ config = value;
+ }
+
+ buffer_flush(w->response.data);
+
+ if(!config) {
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_strcat(w->response.data, "A config hash ID is required. Add ?config=UUID query param");
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
+ return contexts_v2_alert_config_to_json(w, config);
+}
+
+
+#define GROUP_BY_KEY_MAX_LENGTH 30
+static struct {
+ char group_by[GROUP_BY_KEY_MAX_LENGTH + 1];
+ char aggregation[GROUP_BY_KEY_MAX_LENGTH + 1];
+ char group_by_label[GROUP_BY_KEY_MAX_LENGTH + 1];
+} group_by_keys[MAX_QUERY_GROUP_BY_PASSES];
+
+__attribute__((constructor)) void initialize_group_by_keys(void) {
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++) {
+ snprintfz(group_by_keys[g].group_by, GROUP_BY_KEY_MAX_LENGTH, "group_by[%zu]", g);
+ snprintfz(group_by_keys[g].aggregation, GROUP_BY_KEY_MAX_LENGTH, "aggregation[%zu]", g);
+ snprintfz(group_by_keys[g].group_by_label, GROUP_BY_KEY_MAX_LENGTH, "group_by_label[%zu]", g);
+ }
+}
+
+static int web_client_api_request_v2_data(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ usec_t received_ut = now_monotonic_usec();
+
+ int ret = HTTP_RESP_BAD_REQUEST;
+
+ buffer_flush(w->response.data);
+
+ char *google_version = "0.6",
+ *google_reqId = "0",
+ *google_sig = "0",
+ *google_out = "json",
+ *responseHandler = NULL,
+ *outFileName = NULL;
+
+ time_t last_timestamp_in_data = 0, google_timestamp = 0;
+
+ char *scope_nodes = NULL;
+ char *scope_contexts = NULL;
+ char *nodes = NULL;
+ char *contexts = NULL;
+ char *instances = NULL;
+ char *dimensions = NULL;
+ char *before_str = NULL;
+ char *after_str = NULL;
+ char *resampling_time_str = NULL;
+ char *points_str = NULL;
+ char *timeout_str = NULL;
+ char *labels = NULL;
+ char *alerts = NULL;
+ char *time_group_options = NULL;
+ char *tier_str = NULL;
+ size_t tier = 0;
+ RRDR_TIME_GROUPING time_group = RRDR_GROUPING_AVERAGE;
+ DATASOURCE_FORMAT format = DATASOURCE_JSON2;
+ RRDR_OPTIONS options = RRDR_OPTION_VIRTUAL_POINTS | RRDR_OPTION_JSON_WRAP | RRDR_OPTION_RETURN_JWAR;
+
+ struct group_by_pass group_by[MAX_QUERY_GROUP_BY_PASSES] = {
+ {
+ .group_by = RRDR_GROUP_BY_DIMENSION,
+ .group_by_label = NULL,
+ .aggregation = RRDR_GROUP_BY_FUNCTION_AVERAGE,
+ },
+ };
+
+ size_t group_by_idx = 0, group_by_label_idx = 0, aggregation_idx = 0;
+
+ while(url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if(!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if(!name || !*name) continue;
+ if(!value || !*value) continue;
+
+ // name and value are now the parameters
+ // they are not null and not empty
+
+ if(!strcmp(name, "scope_nodes")) scope_nodes = value;
+ else if(!strcmp(name, "scope_contexts")) scope_contexts = value;
+ else if(!strcmp(name, "nodes")) nodes = value;
+ else if(!strcmp(name, "contexts")) contexts = value;
+ else if(!strcmp(name, "instances")) instances = value;
+ else if(!strcmp(name, "dimensions")) dimensions = value;
+ else if(!strcmp(name, "labels")) labels = value;
+ else if(!strcmp(name, "alerts")) alerts = value;
+ else if(!strcmp(name, "after")) after_str = value;
+ else if(!strcmp(name, "before")) before_str = value;
+ else if(!strcmp(name, "points")) points_str = value;
+ else if(!strcmp(name, "timeout")) timeout_str = value;
+ else if(!strcmp(name, "group_by")) {
+ group_by[group_by_idx++].group_by = group_by_parse(value);
+ if(group_by_idx >= MAX_QUERY_GROUP_BY_PASSES)
+ group_by_idx = MAX_QUERY_GROUP_BY_PASSES - 1;
+ }
+ else if(!strcmp(name, "group_by_label")) {
+ group_by[group_by_label_idx++].group_by_label = value;
+ if(group_by_label_idx >= MAX_QUERY_GROUP_BY_PASSES)
+ group_by_label_idx = MAX_QUERY_GROUP_BY_PASSES - 1;
+ }
+ else if(!strcmp(name, "aggregation")) {
+ group_by[aggregation_idx++].aggregation = group_by_aggregate_function_parse(value);
+ if(aggregation_idx >= MAX_QUERY_GROUP_BY_PASSES)
+ aggregation_idx = MAX_QUERY_GROUP_BY_PASSES - 1;
+ }
+ else if(!strcmp(name, "format")) format = web_client_api_request_v1_data_format(value);
+ else if(!strcmp(name, "options")) options |= rrdr_options_parse(value);
+ else if(!strcmp(name, "time_group")) time_group = time_grouping_parse(value, RRDR_GROUPING_AVERAGE);
+ else if(!strcmp(name, "time_group_options")) time_group_options = value;
+ else if(!strcmp(name, "time_resampling")) resampling_time_str = value;
+ else if(!strcmp(name, "tier")) tier_str = value;
+ else if(!strcmp(name, "callback")) responseHandler = value;
+ else if(!strcmp(name, "filename")) outFileName = value;
+ else if(!strcmp(name, "tqx")) {
+ // parse Google Visualization API options
+ // https://developers.google.com/chart/interactive/docs/dev/implementing_data_source
+ char *tqx_name, *tqx_value;
+
+ while(value) {
+ tqx_value = strsep_skip_consecutive_separators(&value, ";");
+ if(!tqx_value || !*tqx_value) continue;
+
+ tqx_name = strsep_skip_consecutive_separators(&tqx_value, ":");
+ if(!tqx_name || !*tqx_name) continue;
+ if(!tqx_value || !*tqx_value) continue;
+
+ if(!strcmp(tqx_name, "version"))
+ google_version = tqx_value;
+ else if(!strcmp(tqx_name, "reqId"))
+ google_reqId = tqx_value;
+ else if(!strcmp(tqx_name, "sig")) {
+ google_sig = tqx_value;
+ google_timestamp = strtoul(google_sig, NULL, 0);
+ }
+ else if(!strcmp(tqx_name, "out")) {
+ google_out = tqx_value;
+ format = web_client_api_request_v1_data_google_format(google_out);
+ }
+ else if(!strcmp(tqx_name, "responseHandler"))
+ responseHandler = tqx_value;
+ else if(!strcmp(tqx_name, "outFileName"))
+ outFileName = tqx_value;
+ }
+ }
+ else {
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++) {
+ if(!strcmp(name, group_by_keys[g].group_by))
+ group_by[g].group_by = group_by_parse(value);
+ else if(!strcmp(name, group_by_keys[g].group_by_label))
+ group_by[g].group_by_label = value;
+ else if(!strcmp(name, group_by_keys[g].aggregation))
+ group_by[g].aggregation = group_by_aggregate_function_parse(value);
+ }
+ }
+ }
+
+ // validate the google parameters given
+ fix_google_param(google_out);
+ fix_google_param(google_sig);
+ fix_google_param(google_reqId);
+ fix_google_param(google_version);
+ fix_google_param(responseHandler);
+ fix_google_param(outFileName);
+
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++) {
+ if (group_by[g].group_by_label && *group_by[g].group_by_label)
+ group_by[g].group_by |= RRDR_GROUP_BY_LABEL;
+ }
+
+ if(group_by[0].group_by == RRDR_GROUP_BY_NONE)
+ group_by[0].group_by = RRDR_GROUP_BY_DIMENSION;
+
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++) {
+ if ((group_by[g].group_by & ~(RRDR_GROUP_BY_DIMENSION)) || (options & RRDR_OPTION_PERCENTAGE)) {
+ options |= RRDR_OPTION_ABSOLUTE;
+ break;
+ }
+ }
+
+ if(options & RRDR_OPTION_DEBUG)
+ options &= ~RRDR_OPTION_MINIFY;
+
+ if(tier_str && *tier_str) {
+ tier = str2ul(tier_str);
+ if(tier < storage_tiers)
+ options |= RRDR_OPTION_SELECTED_TIER;
+ else
+ tier = 0;
+ }
+
+ time_t before = (before_str && *before_str)?str2l(before_str):0;
+ time_t after = (after_str && *after_str) ?str2l(after_str):-600;
+ size_t points = (points_str && *points_str)?str2u(points_str):0;
+ int timeout = (timeout_str && *timeout_str)?str2i(timeout_str): 0;
+ time_t resampling_time = (resampling_time_str && *resampling_time_str) ? str2l(resampling_time_str) : 0;
+
+ QUERY_TARGET_REQUEST qtr = {
+ .version = 2,
+ .scope_nodes = scope_nodes,
+ .scope_contexts = scope_contexts,
+ .after = after,
+ .before = before,
+ .host = NULL,
+ .st = NULL,
+ .nodes = nodes,
+ .contexts = contexts,
+ .instances = instances,
+ .dimensions = dimensions,
+ .alerts = alerts,
+ .timeout_ms = timeout,
+ .points = points,
+ .format = format,
+ .options = options,
+ .time_group_method = time_group,
+ .time_group_options = time_group_options,
+ .resampling_time = resampling_time,
+ .tier = tier,
+ .chart_label_key = NULL,
+ .labels = labels,
+ .query_source = QUERY_SOURCE_API_DATA,
+ .priority = STORAGE_PRIORITY_NORMAL,
+ .received_ut = received_ut,
+
+ .interrupt_callback = web_client_interrupt_callback,
+ .interrupt_callback_data = w,
+
+ .transaction = &w->transaction,
+ };
+
+ for(size_t g = 0; g < MAX_QUERY_GROUP_BY_PASSES ;g++)
+ qtr.group_by[g] = group_by[g];
+
+ QUERY_TARGET *qt = query_target_create(&qtr);
+ ONEWAYALLOC *owa = NULL;
+
+ if(!qt) {
+ buffer_sprintf(w->response.data, "Failed to prepare the query.");
+ ret = HTTP_RESP_INTERNAL_SERVER_ERROR;
+ goto cleanup;
+ }
+
+ web_client_timeout_checkpoint_set(w, timeout);
+ if(web_client_timeout_checkpoint_and_check(w, NULL)) {
+ ret = w->response.code;
+ goto cleanup;
+ }
+
+ if(outFileName && *outFileName) {
+ buffer_sprintf(w->response.header, "Content-Disposition: attachment; filename=\"%s\"\r\n", outFileName);
+ netdata_log_debug(D_WEB_CLIENT, "%llu: generating outfilename header: '%s'", w->id, outFileName);
+ }
+
+ if(format == DATASOURCE_DATATABLE_JSONP) {
+ if(responseHandler == NULL)
+ responseHandler = "google.visualization.Query.setResponse";
+
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: GOOGLE JSON/JSONP: version = '%s', reqId = '%s', sig = '%s', out = '%s', responseHandler = '%s', outFileName = '%s'",
+ w->id, google_version, google_reqId, google_sig, google_out, responseHandler, outFileName
+ );
+
+ buffer_sprintf(
+ w->response.data,
+ "%s({version:'%s',reqId:'%s',status:'ok',sig:'%"PRId64"',table:",
+ responseHandler,
+ google_version,
+ google_reqId,
+ (int64_t)now_realtime_sec());
+ }
+ else if(format == DATASOURCE_JSONP) {
+ if(responseHandler == NULL)
+ responseHandler = "callback";
+
+ buffer_strcat(w->response.data, responseHandler);
+ buffer_strcat(w->response.data, "(");
+ }
+
+ owa = onewayalloc_create(0);
+ ret = data_query_execute(owa, w->response.data, qt, &last_timestamp_in_data);
+
+ if(format == DATASOURCE_DATATABLE_JSONP) {
+ if(google_timestamp < last_timestamp_in_data)
+ buffer_strcat(w->response.data, "});");
+
+ else {
+ // the client already has the latest data
+ buffer_flush(w->response.data);
+ buffer_sprintf(w->response.data,
+ "%s({version:'%s',reqId:'%s',status:'error',errors:[{reason:'not_modified',message:'Data not modified'}]});",
+ responseHandler, google_version, google_reqId);
+ }
+ }
+ else if(format == DATASOURCE_JSONP)
+ buffer_strcat(w->response.data, ");");
+
+ if(qt->internal.relative)
+ buffer_no_cacheable(w->response.data);
+ else
+ buffer_cacheable(w->response.data);
+
+cleanup:
+ query_target_release(qt);
+ onewayalloc_destroy(owa);
+ return ret;
+}
+
+static int web_client_api_request_v2_webrtc(RRDHOST *host __maybe_unused, struct web_client *w, char *url __maybe_unused) {
+ return webrtc_new_connection(buffer_tostring(w->payload), w->response.data);
+}
+
+static int web_client_api_request_v2_progress(RRDHOST *host __maybe_unused, struct web_client *w, char *url) {
+ char *transaction = NULL;
+
+ while(url) {
+ char *value = strsep_skip_consecutive_separators(&url, "&");
+ if(!value || !*value) continue;
+
+ char *name = strsep_skip_consecutive_separators(&value, "=");
+ if(!name || !*name) continue;
+ if(!value || !*value) continue;
+
+ // name and value are now the parameters
+ // they are not null and not empty
+
+ if(!strcmp(name, "transaction")) transaction = value;
+ }
+
+ uuid_t tr;
+ uuid_parse_flexi(transaction, tr);
+
+ rrd_function_call_progresser(&tr);
+
+ return web_api_v2_report_progress(&tr, w->response.data);
+}
+
+static struct web_api_command api_commands_v2[] = {
+ // time-series multi-node multi-instance data APIs
+ {
+ .api = "data",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_data,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "weights",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_weights,
+ .allow_subpaths = 0
+ },
+
+ // time-series multi-node multi-instance metadata APIs
+ {
+ .api = "contexts",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_contexts,
+ .allow_subpaths = 0
+ },
+ {
+ // full text search
+ .api = "q",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_q,
+ .allow_subpaths = 0
+ },
+
+ // multi-node multi-instance alerts APIs
+ {
+ .api = "alerts",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_alerts,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "alert_transitions",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_alert_transitions,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "alert_config",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_alert_config,
+ .allow_subpaths = 0
+ },
+
+ // agent information APIs
+ {
+ .api = "info",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_info,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "nodes",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_nodes,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "node_instances",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_node_instances,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "versions",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_versions,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "progress",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_progress,
+ .allow_subpaths = 0
+ },
+
+ // functions APIs
+ {
+ .api = "functions",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_functions,
+ .allow_subpaths = 0
+ },
+
+ // WebRTC APIs
+ {
+ .api = "rtc_offer",
+ .hash = 0,
+ .acl = HTTP_ACL_ACLK | ACL_DEV_OPEN_ACCESS,
+ .access = HTTP_ACCESS_SIGNED_ID | HTTP_ACCESS_SAME_SPACE,
+ .callback = web_client_api_request_v2_webrtc,
+ .allow_subpaths = 0
+ },
+
+ // management APIs
+ {
+ .api = "claim",
+ .hash = 0,
+ .acl = HTTP_ACL_NOCHECK,
+ .access = HTTP_ACCESS_NONE,
+ .callback = web_client_api_request_v2_claim,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "bearer_protection",
+ .hash = 0,
+ .acl = HTTP_ACL_ACLK | ACL_DEV_OPEN_ACCESS,
+ .access = HTTP_ACCESS_SIGNED_ID | HTTP_ACCESS_SAME_SPACE | HTTP_ACCESS_VIEW_AGENT_CONFIG | HTTP_ACCESS_EDIT_AGENT_CONFIG,
+ .callback = api_v2_bearer_protection,
+ .allow_subpaths = 0
+ },
+ {
+ .api = "bearer_get_token",
+ .hash = 0,
+ .acl = HTTP_ACL_ACLK | ACL_DEV_OPEN_ACCESS,
+ .access = HTTP_ACCESS_SIGNED_ID | HTTP_ACCESS_SAME_SPACE,
+ .callback = api_v2_bearer_token,
+ .allow_subpaths = 0
+ },
+
+ // Netdata branding APIs
+ {
+ .api = "ilove.svg",
+ .hash = 0,
+ .acl = HTTP_ACL_DASHBOARD,
+ .access = HTTP_ACCESS_ANONYMOUS_DATA,
+ .callback = web_client_api_request_v2_ilove,
+ .allow_subpaths = 0
+ },
+
+ {
+ // terminator
+ .api = NULL,
+ .hash = 0,
+ .acl = HTTP_ACL_NONE,
+ .access = HTTP_ACCESS_NONE,
+ .callback = NULL,
+ .allow_subpaths = 0
+ },
+};
+
+inline int web_client_api_request_v2(RRDHOST *host, struct web_client *w, char *url_path_endpoint) {
+ static int initialized = 0;
+
+ if(unlikely(initialized == 0)) {
+ initialized = 1;
+
+ for(int i = 0; api_commands_v2[i].api ; i++)
+ api_commands_v2[i].hash = simple_hash(api_commands_v2[i].api);
+ }
+
+ return web_client_api_request_vX(host, w, url_path_endpoint, api_commands_v2);
+}
diff --git a/web/api/web_api_v2.h b/src/web/api/web_api_v2.h
index 4a1893bd8..4a1893bd8 100644
--- a/web/api/web_api_v2.h
+++ b/src/web/api/web_api_v2.h
diff --git a/web/gui/.dashboard-notice.md b/src/web/gui/.dashboard-notice.md
index ea403bc64..ea403bc64 100644
--- a/web/gui/.dashboard-notice.md
+++ b/src/web/gui/.dashboard-notice.md
diff --git a/web/gui/.dashboard-v2-notice.md b/src/web/gui/.dashboard-v2-notice.md
index 2eb4374ce..2eb4374ce 100644
--- a/web/gui/.dashboard-v2-notice.md
+++ b/src/web/gui/.dashboard-v2-notice.md
diff --git a/web/gui/.well-known/dnt/cookies b/src/web/gui/.well-known/dnt/cookies
index b7c70e58d..b7c70e58d 100644
--- a/web/gui/.well-known/dnt/cookies
+++ b/src/web/gui/.well-known/dnt/cookies
diff --git a/src/web/gui/README.md b/src/web/gui/README.md
new file mode 100644
index 000000000..5c2003140
--- /dev/null
+++ b/src/web/gui/README.md
@@ -0,0 +1,165 @@
+# Legacy Agent dashboard
+
+> ⚠️ You're checking the documentation for the legacy Agent dashboard. For the current version please check [Accessing Netdata Dashboards](https://github.com/netdata/netdata/blob/master/docs/category-overview-pages/accessing-netdata-dashboards.md).
+
+
+The local Netdata Agent dashboard is the heart of Netdata's performance troubleshooting toolkit. You've probably seen it
+before:
+
+![The Netdata dashboard in
+action](https://user-images.githubusercontent.com/1153921/101513938-fae28380-3939-11eb-9434-8ad86a39be62.gif)
+
+Learn more about how dashboards work and how they're populated using the `dashboards.js` file in our [web dashboards
+overview](https://github.com/netdata/netdata/blob/master/src/web/README.md).
+
+By default, Netdata starts a web server for its dashboard at port `19999`. Open up your web browser of choice and
+navigate to `http://NODE:19999`, replacing `NODE` with the IP address or hostname of your Agent. If installed on localhost,
+you can access it through `http://localhost:19999`.
+
+Netdata uses an [internal, static-threaded web server](https://github.com/netdata/netdata/blob/master/src/web/server/README.md) to host the HTML, CSS, and JavaScript
+files that make up the local Agent dashboard. You don't have to configure anything to access it, although you can adjust
+[your settings](https://github.com/netdata/netdata/blob/master/src/web/server/README.md#other-netdataconf-web-section-options) in the `netdata.conf` file, or run Netdata
+behind an [Nginx proxy](https://github.com/netdata/netdata/blob/master/docs/Running-behind-nginx.md), and so on.
+
+## Navigating the local dashboard
+
+Beyond charts, the local dashboard can be broken down into three key areas:
+
+- [Local Agent dashboard](#local-agent-dashboard)
+ - [Navigating the local dashboard](#navigating-the-local-dashboard)
+ - [Sections](#sections)
+ - [Time \& date picker](#time--date-picker)
+ - [Metrics menus](#metrics-menus)
+ - [Cloud menus (Spaces, War Rooms, and Visited nodes)](#cloud-menus-spaces-war-rooms-and-visited-nodes)
+ - [Customizing the local dashboard](#customizing-the-local-dashboard)
+ - [Custom dashboards](#custom-dashboards)
+
+![Annotated screenshot of the local Agent
+dashboard](https://user-images.githubusercontent.com/1153921/101509403-f7e59400-3935-11eb-9abd-cbecfa3ee49a.png)
+
+### Sections
+
+Netdata is broken up into multiple **sections**, such as **System Overview**,
+**CPU**, **Disk**, and more. Inside each section you'll find a number of charts,
+broken down into [contexts](https://github.com/netdata/netdata/blob/master/src/web/README.md#contexts) and
+[families](https://github.com/netdata/netdata/blob/master/src/web/README.md#families).
+
+An example of the **Memory** section on a Linux desktop system.
+
+![Screenshot of the Memory section of the Netdata
+dashboard](https://user-images.githubusercontent.com/1153921/101508423-e354cc00-3934-11eb-9b33-3ad57a5988b4.png)
+
+All sections and their associated charts appear on a single page, so all you need to do to view different sections is
+scroll up and down. But it's usually quicker to use the [menus](#metrics-menus).
+
+### Time & date picker
+
+The local dashboard features a time & date picker to help you visualize specific timeframes of historical metrics. The
+picker chooses an appropriate default to always show per-second granularity based on the width of your browser's
+viewport.
+
+![The time & date picker in the local Agent
+dashboard](https://user-images.githubusercontent.com/1153921/101507784-2c585080-3934-11eb-9d6e-eff30b8553e4.png)
+
+Use the Quick Selector to show metrics from the last 5 minutes, 15 minutes, 30 minutes, 2 hours, 6 hours, or 12 hours.
+
+Beneath the Quick Selector is an input field and dropdown you use in combination to select a specific timeframe of
+minutes, hours, days, or months. Enter a number and choose the appropriate unit of time.
+
+Use the calendar to select multiple days. Click on a date to begin the timeframe selection, then an ending date.
+
+Click **Apply** to re-render all visualizations with new metrics data, or **Clear** to restore the default timeframe.
+
+[Increase the metrics retention policy](https://github.com/netdata/netdata/blob/master/docs/store/change-metrics-storage.md) for your node to see more historical
+timeframes.
+
+### Metrics menus
+
+**Metrics menus** appears on the right-hand side of the local Agent dashboard. Netdata generates a menu for each
+section, and menus link to the section they're associated with.
+
+![A screenshot of metrics menus](https://user-images.githubusercontent.com/1153921/80834638-f08f2880-8ba5-11ea-99ae-f610b2885fd6.png)
+
+Most metrics menu items will contain several **submenu** entries, which represent any
+[families](https://github.com/netdata/netdata/blob/master/src/web/README.md#families) from that section. Netdata automatically
+generates these submenu entries.
+
+Here's a **Disks** menu with several submenu entries for each disk drive and
+partition Netdata recognizes.
+
+![Screenshot of some metrics
+submenus](https://user-images.githubusercontent.com/1153921/80834697-11577e00-8ba6-11ea-979c-92fd19cdb480.png)
+
+### Cloud menus (Spaces, War Rooms, and Visited nodes)
+
+The dashboard also features a menu related to Netdata Cloud functionality. You can view your existing Spaces or create
+new ones via the left vertical column of boxes. This menu also displays the name of your current Space, shows a list of
+any War Rooms you've added you your Space, and lists any notes you recently visited via their Agent dashboards. Click on
+a War Room's name to jump to the Netdata Cloud web interface.
+
+![A screenshot of the Cloud
+menus](https://user-images.githubusercontent.com/1153921/80837210-3f8b8c80-8bab-11ea-9c75-128c2d823ef8.png)
+
+## Customizing the local dashboard
+
+Netdata stores information about individual charts in the `dashboard_info.js`
+file. This file includes section and subsection headings, descriptions, colors,
+titles, tooltips, and other information for Netdata to render on the dashboard.
+
+For example, here is how `dashboard_info.js` defines the **System Overview**
+section.
+
+```javascript
+netdataDashboard.menu = {
+ 'system': {
+ title: 'System Overview',
+ icon: '<i class="fas fa-bookmark"></i>',
+ info: 'Overview of the key system metrics.'
+ },
+```
+
+If you want to customize this information, you should avoid editing
+`dashboard_info.js` directly. These changes are not persistent; Netdata will
+overwrite the file when it's updated. Instead, you should create a new file with
+your customizations.
+
+We created an example file at `dashboard_info_custom_example.js`. You can
+copy this to a new file with a name of your choice in the `web/` directory. This
+directory changes based on your operating system and installation method. If
+you're on a Linux system, it should be at `/usr/share/netdata/web/`.
+
+```shell
+cd /usr/share/netdata/web/
+sudo cp dashboard_info_custom_example.js your_dashboard_info_file.js
+```
+
+Edit the file with your customizations. For example:
+
+```javascript
+customDashboard.menu = {
+ system: {
+ title: "Testing, testing, 1 2 3",
+ icon: '<i class="fas fa-thumbs-up"></i>',
+ info: "This is overwritten info for the system overview section!"
+ }
+};
+```
+
+Finally, tell Netdata where you placed your customization file by replacing
+`your_dashboard_info_file.js` below.
+
+```conf
+[web]
+ custom dashboard_info.js = your_dashboard_info_file.js
+```
+
+Once you restart Netdata, refresh the dashboard to find your custom
+configuration:
+
+![Screenshot of overwritten text from dashboard_info.js
+file](https://user-images.githubusercontent.com/1153921/62798924-570e6c80-ba94-11e9-9578-869753bec39c.png)
+
+## Custom dashboards
+
+For information on creating custom dashboards from scratch, see the [custom dashboards](https://github.com/netdata/netdata/blob/master/src/web/gui/custom/README.md) or
+[Atlassian Confluence dashboards](https://github.com/netdata/netdata/blob/master/src/web/gui/confluence/README.md) guides.
diff --git a/web/gui/browserconfig.xml b/src/web/gui/browserconfig.xml
index 32f47595e..32f47595e 100644
--- a/web/gui/browserconfig.xml
+++ b/src/web/gui/browserconfig.xml
diff --git a/src/web/gui/bundle_dashboard_v1.py b/src/web/gui/bundle_dashboard_v1.py
new file mode 100755
index 000000000..54d10d446
--- /dev/null
+++ b/src/web/gui/bundle_dashboard_v1.py
@@ -0,0 +1,84 @@
+#!/usr/bin/env python3
+#
+# Copyright: © 2021 Netdata Inc.
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+import os
+import shutil
+import subprocess
+import sys
+
+from pathlib import Path
+
+os.chdir(Path(__file__).parent.absolute())
+
+BASEPATH = Path('v1')
+
+URLTEMPLATE = 'https://github.com/netdata/dashboard/releases/download/{0}/dashboard.tar.gz'
+
+CMAKETEMPLATE = '''
+ install(FILES {0} DESTINATION ${{WEB_DEST}})
+ install(FILES {1} DESTINATION ${{WEB_DEST}}/css)
+ install(FILES {2} DESTINATION ${{WEB_DEST}}/fonts)
+ install(FILES {3} DESTINATION ${{WEB_DEST}}/images)
+ install(FILES {4} DESTINATION ${{WEB_DEST}}/lib)
+ install(FILES {5} DESTINATION ${{WEB_DEST}}/static/css)
+ install(FILES {6} DESTINATION ${{WEB_DEST}}/static/js)
+ install(FILES {7} DESTINATION ${{WEB_DEST}}/static/media)
+ install(FILES web/gui/v1/index.html DESTINATION ${WEB_DEST}/v1)
+'''
+
+def copy_dashboard(tag):
+ '''Fetch and bundle the dashboard code.'''
+ print('Preparing target directory')
+ shutil.rmtree(BASEPATH)
+ BASEPATH.mkdir()
+ print('::group::Fetching dashboard release tarball')
+ subprocess.check_call('curl -L -o dashboard.tar.gz ' + URLTEMPLATE.format(tag), shell=True)
+ print('::endgroup::')
+ print('::group::Extracting dashboard release tarball')
+ subprocess.check_call('tar -xvzf dashboard.tar.gz -C ' + str(BASEPATH) + ' --strip-components=1', shell=True)
+ print('::endgroup::')
+ print('Copying README.md')
+ BASEPATH.joinpath('README.md').symlink_to('../.dashboard-notice.md')
+ print('Removing dashboard release tarball')
+ BASEPATH.joinpath('..', 'dashboard.tar.gz').unlink()
+
+
+def genfilelist(path):
+ '''Generate a list of files for the Makefile.'''
+ files = [f for f in path.iterdir() if f.is_file() and f.name != 'README.md']
+ files = [Path(*f.parts[1:]) for f in files]
+ files.sort()
+ return '\n'.join([("src/web/gui/v1/" + str(f)) for f in files])
+
+
+def write_cmakefile():
+ '''Write out the cmake file for the dashboard code.'''
+ print('Generating cmake file')
+ output = CMAKETEMPLATE.format(
+ genfilelist(BASEPATH),
+ genfilelist(BASEPATH.joinpath('css')),
+ genfilelist(BASEPATH.joinpath('fonts')),
+ genfilelist(BASEPATH.joinpath('images')),
+ genfilelist(BASEPATH.joinpath('lib')),
+ genfilelist(BASEPATH.joinpath('static', 'css')),
+ genfilelist(BASEPATH.joinpath('static', 'js')),
+ genfilelist(BASEPATH.joinpath('static', 'media')),
+ )
+
+ BASEPATH.joinpath('dashboard_v1.cmake').write_text(output)
+
+
+def list_changed_files():
+ '''Create a list of changed files, and set it in an environment variable.'''
+ if 'GITHUB_ENV' in os.environ:
+ print('Generating file list for commit.')
+ subprocess.check_call('echo "COMMIT_FILES<<EOF" >> $GITHUB_ENV', shell=True)
+ subprocess.check_call('git status --porcelain=v1 --no-renames --untracked-files=all | rev | cut -d \' \' -f 1 | rev >> $GITHUB_ENV', shell=True)
+ subprocess.check_call('echo "EOF" >> $GITHUB_ENV', shell=True)
+
+
+copy_dashboard(sys.argv[1])
+write_cmakefile()
+list_changed_files()
diff --git a/src/web/gui/bundle_dashboard_v2.py b/src/web/gui/bundle_dashboard_v2.py
new file mode 100755
index 000000000..336b22122
--- /dev/null
+++ b/src/web/gui/bundle_dashboard_v2.py
@@ -0,0 +1,97 @@
+#!/usr/bin/env python3
+#
+# Copyright: © 2023 Netdata Inc.
+# SPDX-License-Identifier: GPL-3.0-or-later
+'''Bundle the v2 dashboard code into the agent repo.
+
+ This is designed to be run as part of a GHA workflow, but will work fine outside of one.'''
+
+import os
+import shutil
+import subprocess
+
+from pathlib import Path
+
+os.chdir(Path(__file__).parent.absolute())
+
+BASEDIR = 'v2'
+
+BASEPATH = Path(BASEDIR)
+
+TMPPATH = Path('tmp')
+
+URLSRC = 'https://app.netdata.cloud/agent.tar.gz'
+
+CMAKETEMPLATE = '''
+ install(FILES {0} DESTINATION ${{WEB_DEST}}/v2)
+ install(FILES {1} DESTINATION ${{WEB_DEST}}/v2/static)
+ install(FILES {2} DESTINATION ${{WEB_DEST}}/v2/static/email/img)
+ install(FILES {3} DESTINATION ${{WEB_DEST}}/v2/static/img)
+ install(FILES {4} DESTINATION ${{WEB_DEST}}/v2/static/img/logos/os)
+ install(FILES {5} DESTINATION ${{WEB_DEST}}/v2/static/img/logos/services)
+ install(FILES {6} DESTINATION ${{WEB_DEST}}/v2/static/img/mail)
+ install(FILES {7} DESTINATION ${{WEB_DEST}}/v2/static/site/pages/holding-page-503)
+'''
+
+def copy_dashboard():
+ '''Fetch and bundle the dashboard code.'''
+ print('Preparing target directory')
+ shutil.rmtree(BASEPATH)
+ TMPPATH.mkdir()
+ print('::group::Fetching dashboard release tarball')
+ subprocess.check_call(f'curl -L -o agent.tar { URLSRC }', shell=True)
+ print('::endgroup::')
+ print('::group::Extracting dashboard release tarball')
+ subprocess.check_call(f"tar -xvf agent.tar -C { TMPPATH } --strip-components=1 --exclude='*.br' --exclude='*.gz'", shell=True)
+ print('::endgroup::')
+ print('Copying files')
+ (TMPPATH / 'agent' / BASEDIR).rename(BASEPATH)
+ (TMPPATH / 'agent' / 'index.html').rename(Path('./index.html'))
+ (TMPPATH / 'agent' / 'registry-access.html').rename('./registry-access.html')
+ (TMPPATH / 'agent' / 'registry-alert-redirect.html').rename('./registry-alert-redirect.html')
+ (TMPPATH / 'agent' / 'registry-hello.html').rename('./registry-hello.html')
+ shutil.copytree(TMPPATH / 'agent' / 'static', Path('./static'), dirs_exist_ok=True)
+ shutil.rmtree(TMPPATH)
+ print('Copying README.md')
+ BASEPATH.joinpath('README.md').symlink_to('../.dashboard-v2-notice.md')
+ print('Removing dashboard release tarball')
+ BASEPATH.joinpath('..', 'agent.tar').unlink()
+
+
+def genfilelist(path):
+ '''Generate a list of files for the Makefile.'''
+ files = [f for f in path.iterdir() if f.is_file() and f.name != 'README.md']
+ files = [Path(*f.parts[1:]) for f in files]
+ files.sort()
+ return '\n'.join([("src/web/gui/v2/" + str(f)) for f in files])
+
+
+def write_cmakefile():
+ '''Write out the makefile for the dashboard code.'''
+ print('Generating cmake file')
+ output = CMAKETEMPLATE.format(
+ genfilelist(BASEPATH),
+ genfilelist(BASEPATH.joinpath('static')),
+ genfilelist(BASEPATH.joinpath('static', 'email', 'img')),
+ genfilelist(BASEPATH.joinpath('static', 'img')),
+ genfilelist(BASEPATH.joinpath('static', 'img', 'logos', 'os')),
+ genfilelist(BASEPATH.joinpath('static', 'img', 'logos', 'services')),
+ genfilelist(BASEPATH.joinpath('static', 'img', 'mail')),
+ genfilelist(BASEPATH.joinpath('static', 'site', 'pages', 'holding-page-503')),
+ )
+
+ BASEPATH.joinpath('dashboard_v2.cmake').write_text(output)
+
+
+def list_changed_files():
+ '''Create a list of changed files, and set it in an environment variable.'''
+ if 'GITHUB_ENV' in os.environ:
+ print('Generating file list for commit.')
+ subprocess.check_call('echo "COMMIT_FILES<<EOF" >> $GITHUB_ENV', shell=True)
+ subprocess.check_call('git status --porcelain=v1 --no-renames --untracked-files=all | rev | cut -d \' \' -f 1 | rev >> $GITHUB_ENV', shell=True)
+ subprocess.check_call('echo "EOF" >> $GITHUB_ENV', shell=True)
+
+
+copy_dashboard()
+write_cmakefile()
+list_changed_files()
diff --git a/src/web/gui/confluence/README.md b/src/web/gui/confluence/README.md
new file mode 100644
index 000000000..674942ec9
--- /dev/null
+++ b/src/web/gui/confluence/README.md
@@ -0,0 +1,1023 @@
+<!--
+title: "Atlassian Confluence dashboards"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/gui/confluence/README.md
+sidebar_label: "Atlassian Confluence dashboards"
+learn_status: "Published"
+learn_topic_type: "Tasks"
+learn_rel_path: "Developers/Web"
+-->
+
+# Atlassian Confluence dashboards
+
+With Netdata you can build **live, interactive, monitoring dashboards** directly on Atlassian's **Confluence** pages.
+
+I see you already asking "why should I do this?"
+
+Well... think a bit of it.... confluence is the perfect place for something like that:
+
+1. All the employees of your company already have access to it.
+
+2. Most probably you have already several spaces on confluence, one for each project or service. Adding live monitoring information there is ideal: everything in one place. Your users will just click on the page and instantly the monitoring page they need will appear with only the information they need to know.
+
+3. You can create monitoring pages for very specific purposes, hiding all the information that is too detailed for most users, or explaining in detail things that are difficult for them to understand.
+
+So, what can we expect? What can Netdata do on confluence?
+
+You will be surprised! **Everything a Netdata dashboard does!**. Example:
+
+![final-confluence4](https://user-images.githubusercontent.com/2662304/34366214-767fa4b8-eaa1-11e7-83af-0b9b9b72aa73.gif)
+
+Let me show you how.
+
+> Let's assume we have 2 web servers we want to monitor. We will create a simple dashboard with key information about them, directly on confluence.
+
+### Before you begin
+
+Most likely your confluence is accessible via HTTPS. So, you need to proxy your Netdata servers via an apache or nginx to make them HTTPS too. If your Confluence is HTTPS but your Netdata are not, you will not be able to fetch the Netdata content from the confluence page. The Netdata wiki has many examples for proxying Netdata through another web server.
+
+> So, make sure Netdata and Confluence can be accessed with the same protocol (**http**, or **https**).
+
+For our example, I will use these 2 servers:
+
+| server | url |
+|------|---|
+| Server 1 | <https://london.my-netdata.io> |
+| Server 2 | <https://frankfurt.my-netdata.io> |
+
+I will use the first server for the static dashboard javascript files.
+
+---
+
+Then, you need to enable the `html` plugin of confluence. We will add some plain html content on that page, and this plugin is required.
+
+### Create a new page
+
+Create a new confluence page and paste this into an `html` box:
+
+```html
+<script>
+// don't load bootstrap - confluence does not need this
+var netdataNoBootstrap = true;
+
+// select the web notifications to show on this dashboard
+// var netdataShowAlarms = true;
+// var netdataAlarmsRecipients = [ 'sysadmin', 'webmaster' ];
+</script>
+
+<script src="https://london.my-netdata.io/dashboard.js"></script>
+```
+
+like this (type `{html` for the html box to appear - you need the confluence html plugin enabled):
+
+![screenshot from 2017-12-25 00-46-20](https://user-images.githubusercontent.com/2662304/34329541-1dd9077c-e90d-11e7-988d-6820be31ff3f.png)
+
+### Add a few badges
+
+Then, go to your Netdata and copy an alert badge (the `<embed>` version of it):
+
+![copy-embed-badge](https://user-images.githubusercontent.com/2662304/34329562-dddea37e-e90d-11e7-9830-041a9f6a5984.gif)
+
+Then add another HTML box on the page, and paste it, like this:
+
+![screenshot from 2017-12-25 00-55-18](https://user-images.githubusercontent.com/2662304/34329569-4fc3d07c-e90e-11e7-8127-3127a21e1657.png)
+
+Hit **update** and you will get this:
+
+![screenshot from 2017-12-25 00-56-58](https://user-images.githubusercontent.com/2662304/34329573-8d4237cc-e90e-11e7-80bf-6c260456c690.png)
+
+This badge is now auto-refreshing. It will update itself based on the update frequency of the alert.
+
+> Keep in mind you can add badges with custom Netdata queries too. Netdata automatically creates badges for all the
+> alerts, but every chart, every dimension on every chart, can be used for a badge. And Netdata badges are quite
+> powerful! Check [Creating Badges](https://github.com/netdata/netdata/blob/master/src/web/api/badges/README.md) for more information on badges.
+
+So, let's create a table and add this badge for both our web servers:
+
+![screenshot from 2017-12-25 01-06-10](https://user-images.githubusercontent.com/2662304/34329609-d3e9ab00-e90f-11e7-99df-884196347538.png)
+
+Now we get this:
+
+![screenshot from 2017-12-25 01-07-10](https://user-images.githubusercontent.com/2662304/34329615-f7dea286-e90f-11e7-9b6f-600215494f96.png)
+
+### Add a Netdata chart
+
+The simplest form of a chart is this (it adds the chart `web_log_nginx_netdata.response_statuses`, using 100% of the width, 150px height, and the last 10 minutes of data):
+
+```html
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-width="100%"
+ data-height="150px"
+ data-before="0"
+ data-after="-600"
+></div>
+```
+
+Add this to `html` block on confluence:
+
+![screenshot from 2017-12-25 01-13-15](https://user-images.githubusercontent.com/2662304/34329635-cf83ab0a-e910-11e7-85a3-b72ccc2d54e4.png)
+
+And you will get this:
+
+![screenshot from 2017-12-25 01-14-09](https://user-images.githubusercontent.com/2662304/34329640-efd15574-e910-11e7-9004-94487dcde154.png)
+
+> This chart is **alive**, fully interactive. You can drag it, pan it, zoom it, etc like you do on Netdata dashboards!
+
+Of course this too big. We need something smaller to add inside the table. Let's try this:
+
+```html
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+></div>
+```
+
+The chart name is shown on all Netdata charts, so just copy it from a Netdata dashboard.
+
+We will fetch the same chart from both servers. To define the server we also added `data-host=` with the URL of each server, like this (we also added `<br/>` for a newline between the badge and the chart):
+
+![screenshot from 2017-12-25 01-25-05](https://user-images.githubusercontent.com/2662304/34329695-76fd2680-e912-11e7-9969-87f8d5b36145.png)
+
+Which gives us this:
+
+![screenshot from 2017-12-25 01-26-04](https://user-images.githubusercontent.com/2662304/34329700-989f0f2e-e912-11e7-8ac9-c78f82cfbdb0.png)
+
+Note the color difference. This is because Netdata automatically hides dimensions that are just zero (the frankfurt server has only successful requests). To instruct Netdata to disable this feature, we need to add another html fragment at the bottom of the page (make sure this is added after loading `dashboard.js`). So we edit the first block we added, and append a new `<script>` section to it:
+
+```html
+<script>
+// don't load bootstrap - confluence does not need this
+var netdataNoBootstrap = true;
+
+// select the web notifications to show on this dashboard
+// var netdataShowAlarms = true;
+// var netdataAlarmsRecipients = [ 'sysadmin', 'webmaster' ];
+</script>
+
+<script src="https://london.my-netdata.io/dashboard.js"></script>
+
+<script>
+// do not hide dimensions with just zeros
+NETDATA.options.current.eliminate_zero_dimensions = false;
+</script>
+```
+
+Now they match:
+
+![screenshot from 2017-12-25 01-30-14](https://user-images.githubusercontent.com/2662304/34329716-2ea83680-e913-11e7-847e-52b3f402aeb0.png)
+
+#### more options
+
+If you want to change the colors append `data-colors="#001122 #334455 #667788"`. The colors will be used for the dimensions top to bottom, as shown on a Netdata dashboard. Keep in mind the default Netdata dashboards hide by default all dimensions that are just zero, so enable them at the dashboard settings to see them all.
+
+You can get a percentage chart, by adding these on these charts:
+
+```html
+ data-append-options="percentage"
+ data-decimal-digits="0"
+ data-dygraph-valuerange="[0, 100]"
+ data-dygraph-includezero="true"
+ data-units="%"
+```
+
+The first line instructs Netdata to calculate the percentage of each dimension, the second strips any fractional digits, the third instructs the charting library to size the chart from 0 to 100, the next one instructs it to include 0 in the chart and the last changes the units of the chart to `%`. This is how it will look:
+
+![screenshot from 2017-12-25 01-45-39](https://user-images.githubusercontent.com/2662304/34329774-570ef990-e915-11e7-899f-eee939564aaf.png)
+
+You can make any number of charts have common min and max on the y-range by adding `common-min="NAME"` and `common-max="NAME"`, where `NAME` is anything you like. Keep in mind for best results all the charts with the same `NAME` should be visible at once, otherwise a not-visible chart will influence the range and until it is updated the range will not adapt.
+
+### Add gauges
+
+Let's now add a few gauges. The chart we added has several dimensions: `success`, `error`, `redirect`, `bad` and `other`.
+
+Let's say we want to add 2 gauges:
+
+1. `success` and `redirect` together, in blue
+2. `error`, `bad` and `other` together, in orange
+
+We will add the following for each server. We have enclosed them in another a `<div>` because Confluence will wrap them if the page width is not enough to fit them. With that additional `<div>` they will always be next to each other.
+
+```html
+<div style="width: 300px; text-align: center;">
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://london.my-netdata.io"
+ data-dimensions="success,redirect"
+ data-chart-library="gauge"
+ data-title="Good"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-600"
+ data-points="600"
+ data-common-max="response_statuses"
+ data-colors="#007ec6"
+ data-decimal-digits="0"
+ ></div><div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://london.my-netdata.io"
+ data-dimensions="error,bad,other"
+ data-chart-library="gauge"
+ data-title="Bad"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-600"
+ data-points="600"
+ data-common-max="response_statuses"
+ data-colors="#97CA00"
+ data-decimal-digits="0"
+ ></div>
+</div>
+```
+
+Adding the above will give you this:
+
+![final-confluence](https://user-images.githubusercontent.com/2662304/34329813-636bb8de-e917-11e7-8cc7-19e197859008.gif)
+
+### Final source - for the confluence source editor
+
+If you enable the source editor of Confluence, you can paste the whole example (implementing the first image on this post and demonstrating everything discussed on this page):
+
+```html
+<p class="auto-cursor-target">Monitoring the health of the web servers, by analyzing the response codes they send.</p>
+<table>
+ <colgroup>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ </colgroup>
+ <tbody>
+ <tr>
+ <th style="text-align: center;">
+ <br/>
+ </th>
+ <th style="text-align: center;">London</th>
+ <th style="text-align: center;">Frankfurt</th>
+ <th colspan="1" style="text-align: center;">San Francisco</th>
+ <th colspan="1" style="text-align: center;">Toronto</th>
+ </tr>
+ <tr>
+ <td colspan="1" style="text-align: right;">
+ <strong>last hour</strong>
+ <br/>
+ <strong>requests</strong>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="5771a1db-b461-478f-a820-edcb67809eb1" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://london.my-netdata.io"
+ data-chart-library="easypiechart"
+ data-after="-14400"
+ data-before="0"
+ data-points="4"
+ data-title="london"
+ data-method="sum"
+ data-append-options="unaligned"
+ data-update-every="60"
+ data-width="120px"
+ data-common-max="1h_requests_pie"
+ data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="aff4446a-1432-407b-beb0-488c33eced18" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://frankfurt.my-netdata.io"
+ data-chart-library="easypiechart"
+ data-after="-14400"
+ data-before="0"
+ data-points="4"
+ data-title="frankfurt"
+ data-method="sum"
+ data-append-options="unaligned"
+ data-update-every="60"
+ data-width="120px"
+ data-common-max="1h_requests_pie"
+ data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="fd310534-627c-47bd-a184-361eb3f00489" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://sanfrancisco.my-netdata.io"
+ data-chart-library="easypiechart"
+ data-after="-14400"
+ data-before="0"
+ data-points="4"
+ data-title="sanfrancisco"
+ data-method="sum"
+ data-append-options="unaligned"
+ data-update-every="60"
+ data-width="120px"
+ data-common-max="1h_requests_pie"
+ data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="eb1261d5-8ff2-4a5c-8945-701bf04fb75b" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://toronto.my-netdata.io"
+ data-chart-library="easypiechart"
+ data-after="-14400"
+ data-before="0"
+ data-points="4"
+ data-title="toronto"
+ data-method="sum"
+ data-append-options="unaligned"
+ data-update-every="60"
+ data-width="120px"
+ data-common-max="1h_requests_pie"
+ data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" style="text-align: right;">
+ <strong>last<br/>1 hour</strong>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="d2ee8425-2c6c-4e26-8c5a-17f6153fdce1" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://london.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+data-dygraph-xpixelsperlabel="30"
+data-dygraph-xaxislabelwidth="26"
+ data-after="-3600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="1h_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="b3fb482a-4e9e-4b69-bb0b-9885d1687334" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://frankfurt.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+data-dygraph-xpixelsperlabel="30"
+data-dygraph-xaxislabelwidth="26"
+ data-after="-3600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="1h_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="199b1618-64be-4614-9662-f84cd01c6d8d" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://sanfrancisco.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+data-dygraph-xpixelsperlabel="30"
+data-dygraph-xaxislabelwidth="26"
+ data-after="-3600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="1h_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="61b2d444-fb2b-42e0-b4eb-611fb37dcb66" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://toronto.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+data-dygraph-xpixelsperlabel="30"
+data-dygraph-xaxislabelwidth="26"
+ data-after="-3600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="1h_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" style="text-align: right;">
+ <strong>last 10<br/>minutes</strong>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="f29e7663-f2e6-4e1d-a090-38704e0f2bd3" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://london.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="10m_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="245ccc90-1505-430b-ba13-15e6a9793c11" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://frankfurt.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="10m_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="864ff17f-f372-47e4-9d57-54e44b142240" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://sanfrancisco.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="10m_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="e0072f2b-0169-4ecf-8ddf-724270d185b8" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://toronto.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-600"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+data-common-max="10m_requests"
+data-decimal-digits="0"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td style="text-align: right;">
+ <strong>last 1<br/>minute</strong>
+ </td>
+ <td style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="8c041cfb-a5a0-425c-afe6-207f4986cb26" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<embed src="https://london.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx_netdata.response_statuses&alarm=1m_successful&refresh=auto&label=1m%20london%20successful%20requests" type="image/svg+xml" height="20"/>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://london.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-60"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+ data-append-options="percentage"
+ data-decimal-digits="0"
+ data-dygraph-valuerange="[0, 100]"
+ data-dygraph-includezero="true"
+ data-units="%"
+data-dimensions="success"
+data-colors="#009900"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="a3777583-9919-4997-891c-94a8cec60604" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<embed src="https://frankfurt.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx_netdata.response_statuses&alarm=1m_successful&refresh=auto&label=1m%20frankfurt%20successful%20requests" type="image/svg+xml" height="20"/>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://frankfurt.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-60"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+ data-append-options="percentage"
+ data-decimal-digits="0"
+ data-dygraph-valuerange="[0, 100]"
+ data-dygraph-includezero="true"
+ data-units="%"
+data-dimensions="success"
+data-colors="#009900"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="e003deba-82fa-4aec-8264-6cb7d814a299" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<embed src="https://sanfrancisco.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx_netdata.response_statuses&alarm=1m_successful&refresh=auto&label=1m%20sanfrancisco%20successful%20requests" type="image/svg+xml" height="20"/>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://sanfrancisco.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-60"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+ data-append-options="percentage"
+ data-decimal-digits="0"
+ data-dygraph-valuerange="[0, 100]"
+ data-dygraph-includezero="true"
+ data-units="%"
+data-dimensions="success"
+data-colors="#009900"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: center;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="046fcda5-98db-4776-8c51-3981d0e68f38" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<embed src="https://toronto.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx_netdata.response_statuses&alarm=1m_successful&refresh=auto&label=1m%20toronto%20successful%20requests" type="image/svg+xml" height="20"/>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+data-host="https://toronto.my-netdata.io"
+ data-legend="false"
+ data-dygraph-yaxislabelwidth="35"
+ data-dygraph-ypixelsperlabel="8"
+ data-after="-60"
+ data-before="0"
+ data-title=""
+ data-height="100px"
+ data-width="300px"
+ data-append-options="percentage"
+ data-decimal-digits="0"
+ data-dygraph-valuerange="[0, 100]"
+ data-dygraph-includezero="true"
+ data-units="%"
+data-dimensions="success"
+data-colors="#009900"
+></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" style="text-align: right;">
+ <strong>now</strong>
+ </td>
+ <td colspan="1" style="text-align: left;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="4aef31d3-9439-439b-838d-7350a26bde5f" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div style="width: 300px; text-align: center;">
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://london.my-netdata.io"
+ data-dimensions="success"
+ data-chart-library="gauge"
+ data-title="Success"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#009900"
+ data-decimal-digits="0"
+ ></div><div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://london.my-netdata.io"
+ data-dimensions="redirect,error,bad,other"
+ data-chart-library="gauge"
+ data-title="All Others"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#fe7d37"
+ data-decimal-digits="0"
+ ></div>
+</div>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://london.my-netdata.io"
+ data-dygraph-theme="sparkline"
+ data-width="300"
+ data-height="20"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="1m_requests_sparkline"
+ ></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1" style="text-align: left;">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="bf9fb1c4-ceaf-4ad8-972e-a64d23eb48f8" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div style="width: 300px; text-align: center;">
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://frankfurt.my-netdata.io"
+ data-dimensions="success"
+ data-chart-library="gauge"
+ data-title="Success"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#009900"
+ data-decimal-digits="0"
+ ></div><div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://frankfurt.my-netdata.io"
+ data-dimensions="redirect,error,bad,other"
+ data-chart-library="gauge"
+ data-title="All Others"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#fe7d37"
+ data-decimal-digits="0"
+ ></div>
+</div>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://frankfurt.my-netdata.io"
+ data-dygraph-theme="sparkline"
+ data-width="300"
+ data-height="20"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="1m_requests_sparkline"
+ ></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="60b4c9bc-353a-4e64-b7c8-365ae74156c4" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div style="width: 300px; text-align: center;">
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://sanfrancisco.my-netdata.io"
+ data-dimensions="success"
+ data-chart-library="gauge"
+ data-title="Success"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#009900"
+ data-decimal-digits="0"
+ ></div><div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://sanfrancisco.my-netdata.io"
+ data-dimensions="redirect,error,bad,other"
+ data-chart-library="gauge"
+ data-title="All Others"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#fe7d37"
+ data-decimal-digits="0"
+ ></div>
+</div>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://sanfrancisco.my-netdata.io"
+ data-dygraph-theme="sparkline"
+ data-width="300"
+ data-height="20"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="1m_requests_sparkline"
+ ></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ <td colspan="1">
+ <div class="content-wrapper">
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ <ac:structured-macro ac:macro-id="75e03235-9681-4aaf-bd85-b0ffbb9e3602" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<div style="width: 300px; text-align: center;">
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://toronto.my-netdata.io"
+ data-dimensions="success"
+ data-chart-library="gauge"
+ data-title="Success"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#009900"
+ data-decimal-digits="0"
+ ></div><div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://toronto.my-netdata.io"
+ data-dimensions="redirect,error,bad,other"
+ data-chart-library="gauge"
+ data-title="All Others"
+ data-units="requests/s"
+ data-gauge-adjust="width"
+ data-width="120"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="response_statuses"
+ data-colors="#fe7d37"
+ data-decimal-digits="0"
+ ></div>
+</div>
+<br/>
+<div
+ data-netdata="web_log_nginx_netdata.response_statuses"
+ data-host="https://toronto.my-netdata.io"
+ data-dygraph-theme="sparkline"
+ data-width="300"
+ data-height="20"
+ data-before="0"
+ data-after="-60"
+ data-points="60"
+ data-common-max="1m_requests_sparkline"
+ ></div>]]></ac:plain-text-body>
+ </ac:structured-macro>
+ <p class="auto-cursor-target">
+ <br/>
+ </p>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p class="auto-cursor-target">
+ <br/>
+</p>
+<p>
+ <br/>
+</p>
+<ac:structured-macro ac:macro-id="10bbb1a6-cd65-4a27-9b3a-cb86a5a0ebe1" ac:name="html" ac:schema-version="1">
+ <ac:plain-text-body><![CDATA[<script>
+// don't load bootstrap - confluence does not need this
+var netdataNoBootstrap = true;
+
+// select the web notifications to show on this dashboard
+// var netdataShowAlarms = true;
+// var netdataAlarmsRecipients = [ 'sysadmin', 'webmaster' ];
+</script>
+
+<script src="https://london.my-netdata.io/dashboard.js"></script>
+
+
+<script>
+// do not hide dimensions with just zeros
+NETDATA.options.current.eliminate_zero_dimensions = false;
+</script>]]></ac:plain-text-body>
+</ac:structured-macro>
+<p class="auto-cursor-target">
+ <br/>
+</p>
+<div>
+ <span style="color: rgb(52,52,52);font-family: &quot;Source Code Pro&quot; , monospace;font-size: 16.2px;white-space: pre-wrap;background-color: rgb(252,252,252);">
+ <br/>
+ </span>
+</div>
+<div>
+ <span style="color: rgb(52,52,52);font-family: &quot;Source Code Pro&quot; , monospace;font-size: 16.2px;white-space: pre-wrap;background-color: rgb(252,252,252);">
+ <br/>
+ </span>
+</div>
+```
+
+
diff --git a/web/gui/css/c3-0.4.18.min.css b/src/web/gui/css/c3-0.4.18.min.css
index a033d7203..a033d7203 100644
--- a/web/gui/css/c3-0.4.18.min.css
+++ b/src/web/gui/css/c3-0.4.18.min.css
diff --git a/web/gui/css/morris-0.5.1.css b/src/web/gui/css/morris-0.5.1.css
index 39203d314..39203d314 100644
--- a/web/gui/css/morris-0.5.1.css
+++ b/src/web/gui/css/morris-0.5.1.css
diff --git a/src/web/gui/custom/README.md b/src/web/gui/custom/README.md
new file mode 100644
index 000000000..ecdc4e240
--- /dev/null
+++ b/src/web/gui/custom/README.md
@@ -0,0 +1,594 @@
+# Custom dashboards
+
+You can build custom Netdata dashboards just with some basic HTML knowledge.
+
+Custom dashboards allow you to utilize any or all of the available chart libraries, on the same dashboard.
+You can use data from one or more Netdata servers, on the same dashboard and host your dashboard HTML page on
+any web server, anywhere. You can also add Netdata charts to existing web pages.
+
+Check this **[very simple working example of a custom dashboard](http://netdata.firehol.org/demo.html)**.
+
+You should also look at the [custom dashboard
+template](https://my-netdata.io/dashboard.html), which contains samples of all
+supported charts. The code is [here](http://netdata.firehol.org/dashboard.html).
+
+If you plan to put the dashboard on TV, check out
+[tv.html](http://netdata.firehol.org/tv.html). Here's is a screenshot of it,
+monitoring two servers on the same page:
+
+<img width="954" alt="image" src="https://user-images.githubusercontent.com/43294513/233790352-2780fd51-3293-49fe-8ad9-30ad9a362c60.png"/>
+
+
+
+
+## Web directory
+
+All of the mentioned examples are available on your local Netdata installation
+(e.g. `http://myhost:19999/dashboard.html`). The default web root directory with
+the HTML and JS code is `/usr/share/netdata/web`. The main dashboard is also in
+that directory and called `index.html`.\
+Note: index.html has a different syntax. Don't use it as a template for simple
+custom dashboards.
+
+> Some operating systems will use `/opt/netdata/usr/share/netdata/web` as the web directory. If you're not sure where
+> yours is, navigate to `http://NODE:19999/netdata.conf` in your browser, replacing `NODE` with the IP address or hostname
+> of your node, and find the `# web files directory = ` setting. The value listed is the web directory for your system.
+
+## Example empty dashboard
+
+If you need to create a new dashboard on an empty page, we suggest the following
+header:
+
+```html
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <title>Your dashboard</title>
+
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <meta name="apple-mobile-web-app-capable" content="yes">
+  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
+
+  <!-- here we will add dashboard.js -->
+
+</head>
+<body>
+
+<!-- here we will add charts -->
+
+</body>
+</html>
+```
+
+
+## dashboard.js
+
+To add Netdata charts to any web page (dedicated to Netdata or not), you need to
+include the `/dashboard.js` file of a Netdata server.
+
+For example, if your Netdata server listens at `http://box:19999/`, you will
+need to add the following to the `head` section of your web page:
+
+```html
+<script type="text/javascript" src="http://box:19999/dashboard.js"></script>
+```
+
+### What does dashboard.js do?
+
+`dashboard.js` will automatically load the following:
+
+1. `dashboard.css`, required for the Netdata charts
+
+2. `jquery.min.js`, (only if jQuery is not already loaded for this web page)
+
+3. `bootstrap.min.js` (only if Bootstrap is not already loaded) and
+ `bootstrap.min.css`.
+
+ You can disable this by adding the following before loading `dashboard.js`:
+
+```html
+<script>var netdataNoBootstrap = true;</script>
+```
+
+4. `jquery.nanoscroller.min.js`, required for the scrollbar of the chart
+ legends.
+
+5. `bootstrap-toggle.min.js` and `bootstrap-toggle.min.css`, required for the
+ settings toggle buttons.
+
+6. `font-awesome.min.css`, for icons.
+
+When `dashboard.js` loads will scan the page for elements that define charts
+(see below) and immediately start refreshing them. Keep in mind more javascript
+modules may be loaded (every chart library is a different javascript file, that
+is loaded on first use).
+
+### Prevent dashboard.js from starting chart refreshes
+
+If your web page is not static and you plan to add charts using JavaScript, you
+can tell `dashboard.js` not to start processing charts immediately after loaded,
+by adding this fragment before loading it:
+
+```html
+<script>var netdataDontStart = true;</script>
+```
+
+The above, will inform the `dashboard.js` to load everything, but not process the web page until you tell it to.
+You can tell it to start processing the page, by running this javascript code:
+
+```js
+NETDATA.start();
+```
+
+Be careful not to call the `NETDATA.start()` multiple times. Each call to this
+function will spawn a new thread that will start refreshing the charts.
+
+If, after calling `NETDATA.start()` you need to update the page (or even get
+your javascript code synchronized with `dashboard.js`), you can call (after you
+loaded `dashboard.js`):
+
+```js
+NETDATA.pause(function() {
+ // ok, it is paused
+
+ // update the DOM as you wish
+
+ // and then call this to let the charts refresh:
+ NETDATA.unpause();
+});
+```
+
+### The default Netdata server
+
+`dashboard.js` will attempt to auto-detect the URL of the Netdata server it is
+loaded from, and set this server as the default Netdata server for all charts.
+
+If you need to set any other URL as the default Netdata server for all charts
+that do not specify a Netdata server, add this before loading `dashboard.js`:
+
+```html
+<script type="text/javascript">var netdataServer = "http://your.netdata.server:19999";</script>
+```
+
+
+
+## Adding charts
+
+To add charts, you need to add a `div` for each of them. Each of these `div`
+elements accept a few `data-` attributes:
+
+### The chart unique ID
+
+The unique ID of a chart is shown at the title of the chart of the default
+Netdata dashboard. You can also find all the charts available at your Netdata
+server with this URL: `http://your.netdata.server:19999/api/v1/charts`
+([example](http://netdata.firehol.org/api/v1/charts)).
+
+To specify the unique id, use this:
+
+```html
+<div data-netdata="unique.id"></div>
+```
+
+The above is enough for adding a chart. It most probably have the wrong visual
+settings though. Keep reading...
+
+### The duration of the chart
+
+You can specify the duration of the chart (how much time of data it will show)
+using:
+
+```html
+<div data-netdata="unique.id"
+ data-after="AFTER_SECONDS"
+ data-before="BEFORE_SECONDS"
+ ></div>
+```
+
+`AFTER_SECONDS` and `BEFORE_SECONDS` are numbers representing a time-frame in
+seconds.
+
+The can be either:
+
+- **absolute** unix timestamps (in javascript terms, they are `new
+ Date().getTime() / 1000`. Using absolute timestamps you can have a chart
+ showing always the same time-frame.
+
+- **relative** number of seconds to now. To show the last 10 minutes of data,
+ `AFTER_SECONDS` must be `-600` (relative to now) and `BEFORE_SECONDS` must
+ be `0` (meaning: now). If you want the chart to auto-refresh the current
+ values, you need to specify **relative** values.
+
+### Chart sizes
+
+You can set the size of the chart using this:
+
+```html
+<div data-netdata="unique.id"
+ data-width="WIDTH"
+ data-height="HEIGHT"
+ ></div>
+```
+
+`WIDTH` and `HEIGHT` can be anything CSS accepts for width and height (e.g.
+percentages, pixels, etc). Keep in mind that for certain chart libraries,
+`dashboard.js` may apply an aspect ratio to these.
+
+If you want `dashboard.js` to permanently remember (browser local storage) the
+dimensions of the chart (the user may resize it), you can add: `data-id="
+SETTINGS_ID"`, where `SETTINGS_ID` is anything that will be common for this
+chart across user sessions.
+
+### Netdata server
+
+Each chart can get data from a different Netdata server. You can specify the Netdata server to use for each chart using:
+
+```html
+<div data-netdata="unique.id"
+ data-host="http://another.netdata.server:19999/"
+ ></div>
+```
+
+If you have ephemeral monitoring setup ([More info here](https://github.com/netdata/netdata/blob/master/src/streaming/README.md#monitoring-ephemeral-nodes)) and have no
+direct access to the nodes dashboards, you can use the following:
+
+```html
+<div data-netdata="unique.id"
+ data-host="http://yournetdata.server:19999/host/reported-hostname"
+ ></div>
+```
+
+### Chart library
+
+Netdata supports a number of chart libraries. The default chart library is
+`dygraph`, but you can set a different chart library per chart using
+`data-chart-library`:
+
+```html
+<div data-netdata="unique.id"
+ data-chart-library="gauge"
+ ></div>
+```
+
+Each chart library has a number of specific settings. To learn more about them,
+you should investigate the documentation of the given chart library, or visit
+the appropriate JavaScript file that defines the library's options. These files
+are concatenated into the monolithic `dashboard.js` for deployment.
+
+- [Dygraph](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L2034)
+- [d3](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L4095)
+- [d3pie](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L3753)
+- [Gauge.js](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L3065)
+- [Google Charts](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L2936)
+- [EasyPieChart](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L3531)
+- [Peity](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L4137)
+- [Sparkline](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L2779)
+- [Text-only](https://github.com/netdata/netdata/blob/5b57fc441c40959514c4e2d0863be2e6a417e352/web/gui/dashboard.js#L4200)
+
+### Data points
+
+For the time-frame requested, `dashboard.js` will use the chart dimensions and
+the settings of the chart library to find out how many data points it can show.
+
+For example, most line chart libraries are using 3 pixels per data point. If the
+chart shows 10 minutes of data (600 seconds), its update frequency is 1 second,
+and the chart width is 1800 pixels, then `dashboard.js` will request from the
+Netdata server: 10 minutes of data, represented in 600 points, and the chart
+will be refreshed per second. If the user resizes the window so that the chart
+becomes 600 pixels wide, then `dashboard.js` will request the same 10 minutes of
+data, represented in 200 points and the chart will be refreshed once every 3
+seconds.
+
+If you need the chart to show a fixed number of points, you can set the `data-points` option. Replace `DATA_POINTS` with the number of points you need:
+
+```html
+<div data-netdata="unique.id"
+ data-points="DATA_POINTS"
+ ></div>
+```
+
+You can also overwrite the pixels-per-point per chart using this:
+
+```html
+<div data-netdata="unique.id"
+ data-pixels-per-point="PIXELS_PER_POINT"
+ ></div>
+```
+
+Where `PIXELS_PER_POINT` is the number of pixels each data point should occupy.
+
+### Data grouping method
+
+Netdata supports **average** (the default), **sum** and **max** grouping
+methods. The grouping method is used when the Netdata server is requested to
+return fewer points for a time-frame, compared to the number of points
+available.
+
+You can give it per chart, using:
+
+```html
+<div data-netdata="unique.id"
+ data-method="max"
+ ></div>
+```
+
+### Changing rates
+
+Netdata can change the rate of charts on the fly. So a charts that shows values
+**per second** can be turned to **per minute** (or any other, e.g. **per 10
+seconds**), with this:
+
+```html
+<div data-netdata="unique.id"
+ data-method="average"
+ data-gtime="60"
+ data-units="per minute"
+ ></div>
+```
+
+The above will provide the average rate per minute (60 seconds). Use 60 for
+`/minute`, 3600 for `/hour`, 86400 for `/day` (provided you have that many
+data).
+
+- The `data-gtime` setting does not change the units of the chart. You have to
+ change them yourself with `data-units`.
+- This works only for `data-method="average"`.
+- Netdata may aggregate multiple points to satisfy the `data-points` setting.
+ For example, you request `per minute` but the requested number of points to
+ be returned are not enough to report every single minute. In this case
+ Netdata will sum the `per second` raw data of the database to find the `per
+ minute` for every single minute and then **average** them to find the
+ **average per minute rate of every X minutes**. So, it works as if the data
+ collection frequency was per minute.
+
+### Selecting dimensions
+
+By default, `dashboard.js` will show all the dimensions of the chart. You can
+select specific dimensions using this:
+
+```html
+<div data-netdata="unique.id"
+ data-dimensions="dimension1,dimension2,dimension3,..."
+ ></div>
+```
+
+Netdata supports coma (`,`) or pipe (`|`) separated [simple
+patterns](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md) for dimensions. By default it
+searches for both dimension IDs and dimension NAMEs. You can control the target
+of the match with: `data-append-options="match-ids"` or
+`data-append-options="match-names"`. Spaces in `data-dimensions=""` are matched
+in the dimension names and IDs.
+
+### Chart title
+
+You can overwrite the title of the chart using this:
+
+```html
+<div data-netdata="unique.id"
+ data-title="my super chart"
+ ></div>
+```
+
+### Chart units
+
+You can overwrite the units of measurement of the dimensions of the chart, using
+this:
+
+```html
+<div data-netdata="unique.id"
+ data-units="words/second"
+ ></div>
+```
+
+### Chart colors
+
+`dashboard.js` has an internal palette of colors for the dimensions of the
+charts. You can prepend colors to it (so that your will be used first) using
+this:
+
+```html
+<div data-netdata="unique.id"
+ data-colors="#AABBCC #DDEEFF ..."
+ ></div>
+```
+
+### Extracting dimension values
+
+`dashboard.js` can update the selected values of the chart at elements you
+specify. For example, let's assume we have a chart that measures the bandwidth
+of eth0, with 2 dimensions `in` and `out`. You can use this:
+
+```html
+<div data-netdata="net.eth0"
+ data-show-value-of-in-at="eth0_in_value"
+ data-show-value-of-out-at="eth0_out_value"
+ ></div>
+
+My eth0 interface, is receiving <span id="eth0_in_value"></span>
+and transmitting <span id="eth0_out_value"></span>.
+```
+
+### Hiding the legend of a chart
+
+On charts that by default have a legend managed by `dashboard.js` you can remove
+it, using this:
+
+```html
+<div data-netdata="unique.id"
+ data-legend="no"
+ ></div>
+```
+
+### API options
+
+You can append Netdata **[REST API v1](https://github.com/netdata/netdata/blob/master/src/web/api/README.md)** data options, using this:
+
+```html
+<div data-netdata="unique.id"
+ data-append-options="absolute,percentage"
+ ></div>
+```
+
+A few useful options are:
+
+- `absolute` to show all values are absolute (i.e. turn negative dimensions to
+ positive)
+- `percentage` to express the values as a percentage of the chart total (so,
+ the values of the dimensions are added, and the sum of them if expressed as
+ a percentage of the sum of all dimensions)
+- `unaligned` to prevent Netdata from aligning the charts (e.g. when
+ requesting 60 seconds aggregation per point, Netdata returns chart data
+ aligned to XX:XX:00 to XX:XX:59 - similarly for hours, days, etc - the
+ `unaligned` option disables this feature)
+- `match-ids` or `match-names` is used to control what `data-dimensions=` will
+ match.
+
+### Chart library performance
+
+`dashboard.js` measures the performance of the chart library when it renders the
+charts. You can specify an element ID you want this information to be
+visualized, using this:
+
+```html
+<div data-netdata="unique.id"
+ data-dt-element-name="measurement1"
+ ></div>
+
+refreshed in <span id="measurement1"></span> milliseconds!
+```
+
+### Syncing charts y-range
+
+If you give the same `data-common-max="NAME"` to 2+ charts, then all of them
+will share the same max value of their y-range. If one spikes, all of them will
+be aligned to have the same scale. This is done for the cpu interrupts and and
+cpu softnet charts at the dashboard and also for the `gauge` and `easypiecharts`
+of the Netdata home page.
+
+```html
+<div data-netdata="chart1"
+ data-common-max="chart-group-1"
+ ></div>
+
+<div data-netdata="chart2"
+ data-common-max="chart-group-1"
+ ></div>
+```
+
+The same functionality exists for `data-common-min`.
+
+### Syncing chart units
+
+Netdata dashboards support auto-scaling of units. So, `MB` can become `KB`,
+`GB`, etc dynamically, based on the value to be shown.
+
+Giving the same `NAME` with `data-common-units= "NAME"`, 2+ charts can be forced
+to always have the same units.
+
+```html
+<div data-netdata="chart1"
+ data-common-units="chart-group-1"
+ ></div>
+
+<div data-netdata="chart2"
+ data-common-units="chart-group-1"
+ ></div>
+```
+
+### Setting desired units
+
+Charts can be scaled to specific units with `data-desired-units=" UNITS"`. If
+the dashboard can convert the units to the desired one, it will do.
+
+```html
+<div data-netdata="chart1"
+ data-desired-units="GB"
+ ></div>
+```
+
+## Chart library settings
+
+### Dygraph
+
+You can set the min and max values of the y-axis using
+`data-dygraph-valuerange=" [MIN, MAX] "`.
+
+### EasyPieChart
+
+#### Value range
+
+You can set the max value of the chart using the following snippet:
+
+```html
+<div data-netdata="unique.id"
+ data-chart-library="easypiechart"
+ data-easypiechart-max-value="40"
+ ></div>
+```
+
+Be aware that values that exceed the max value will get expanded (e.g. "41" is
+still 100%). Similar for the minimum:
+
+```html
+<div data-netdata="unique.id"
+ data-chart-library="easypiechart"
+ data-easypiechart-min-value="20"
+ ></div>
+```
+
+If you specify both minimum and maximum, the rendering behavior changes. Instead
+of displaying the `value` based from zero, it is now based on the range that is
+provided by the snippet:
+
+```html
+<div data-netdata="unique.id"
+ data-chart-library="easypiechart"
+ data-easypiechart-min-value="20"
+ data-easypiechart-max-value="40"
+ ></div>
+```
+
+In the first example, a value of `30`, without specifying the minimum, fills the chart bar to '75 %` (100% / 40 * 30). However, in this example the range is now `20` (40 - 20 = 20). The value `30` will fill the chart to ** '50 %`**, since it's in the middle between 20 and 40.
+
+This scenario is useful if you have metrics that change only within a specific range, e.g. temperatures that are very unlikely to fall out of range. In these cases it is more useful to have the chart render the values between the given min and max, to better highlight the changes within them.
+
+#### Negative values
+
+EasyPieCharts can render negative values with the following flag:
+```html
+<div data-netdata="unique.id"
+ data-chart-library="easypiechart"
+ data-override-options="signed"
+ ></div>
+```
+Negative values are rendered counter-clockwise.
+
+#### Full example with EasyPieChart
+
+This is a chart that displays the hotwater temperature in the given range of 40
+to 50.
+```html
+<div data-netdata="acme_system.hotwater.hotwatertemp"
+ data-title="Hot Water Temperature"
+ data-decimal-digits="1"
+ data-chart-library="easypiechart"
+ data-colors="#FE3912"
+ data-width="55%"
+ data-height="50%"
+ data-points="1200"
+ data-after="-1200"
+ data-dimensions="actual"
+ data-units="°C"
+ data-easypiechart-max-value="50"
+ data-easypiechart-min-value="40"
+ data-common-max="netdata-hotwater-max"
+ data-common-min="netdata-hotwater-min"
+></div>
+```
+
+![hot water
+chart](https://user-images.githubusercontent.com/12159026/28666665-a7d68ad2-72c8-11e7-9a96-f6bf9691b471.png)
+
diff --git a/web/gui/dashboard_info.js b/src/web/gui/dashboard_info.js
index d579bf715..404f54e7f 100644
--- a/web/gui/dashboard_info.js
+++ b/src/web/gui/dashboard_info.js
@@ -36,7 +36,7 @@ netdataDashboard.menu = {
title: 'Quality of Service',
icon: '<i class="fas fa-globe"></i>',
info: 'Netdata collects and visualizes <code>tc</code> class utilization using its ' +
- '<a href="https://github.com/netdata/netdata/blob/master/collectors/tc.plugin/tc-qos-helper.sh.in" target="_blank">tc-helper plugin</a>. ' +
+ '<a href="https://github.com/netdata/netdata/blob/master/src/collectors/tc.plugin/tc-qos-helper.sh.in" target="_blank">tc-helper plugin</a>. ' +
'If you also use <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a> for setting up QoS, ' +
'netdata automatically collects interface and class names. If your QoS configuration includes overheads ' +
'calculation, the values shown here will include these overheads (the total bandwidth for the same ' +
@@ -702,13 +702,13 @@ netdataDashboard.menu = {
'anomalies': {
title: 'Anomalies',
icon: '<i class="fas fa-flask"></i>',
- info: 'Anomaly scores relating to key system metrics. A high anomaly probability indicates strange behaviour and may trigger an anomaly prediction from the trained models. Read the <a href="https://github.com/netdata/netdata/tree/master/collectors/python.d.plugin/anomalies" target="_blank">anomalies collector docs</a> for more details.'
+ info: 'Anomaly scores relating to key system metrics. A high anomaly probability indicates strange behaviour and may trigger an anomaly prediction from the trained models. Read the <a href="https://github.com/netdata/netdata/tree/master/src/collectors/python.d.plugin/anomalies" target="_blank">anomalies collector docs</a> for more details.'
},
'alarms': {
title: 'Alarms',
icon: '<i class="fas fa-bell"></i>',
- info: 'Charts showing alarm status over time. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alarms/README.md" target="_blank">here</a>.'
+ info: 'Charts showing alarm status over time. More details <a href="https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/alarms/README.md" target="_blank">here</a>.'
},
'statsd': {
@@ -739,7 +739,7 @@ netdataDashboard.menu = {
'changefinder': {
title: 'ChangeFinder',
icon: '<i class="fas fa-flask"></i>',
- info: 'Online changepoint detection using machine learning. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/changefinder/README.md" target="_blank">here</a>.'
+ info: 'Online changepoint detection using machine learning. More details <a href="https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/changefinder/README.md" target="_blank">here</a>.'
},
'zscores': {
@@ -2840,13 +2840,13 @@ netdataDashboard.context = {
'apps.vmem': {
info: 'Virtual memory allocated by applications. '+
- 'Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
+ 'Check <a href="https://github.com/netdata/netdata/tree/master/src/daemon#virtual-memory" target="_blank">this article</a> for more information.'
},
'groups.vmem': {
- info: 'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
+ info: 'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/src/daemon#virtual-memory" target="_blank">this article</a> for more information.'
},
'users.vmem': {
- info: 'Virtual memory allocated per user since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
+ info: 'Virtual memory allocated per user since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/src/daemon#virtual-memory" target="_blank">this article</a> for more information.'
},
'apps.minor_faults': {
diff --git a/web/gui/dashboard_info_custom_example.js b/src/web/gui/dashboard_info_custom_example.js
index 6a2d53765..6a2d53765 100644
--- a/web/gui/dashboard_info_custom_example.js
+++ b/src/web/gui/dashboard_info_custom_example.js
diff --git a/src/web/gui/gui.cmake b/src/web/gui/gui.cmake
new file mode 100644
index 000000000..808ac889c
--- /dev/null
+++ b/src/web/gui/gui.cmake
@@ -0,0 +1,30 @@
+set(DASHBOARD_JS_FILES src/web/gui/src/dashboard.js/prologue.js.inc
+ src/web/gui/src/dashboard.js/utils.js
+ src/web/gui/src/dashboard.js/server-detection.js
+ src/web/gui/src/dashboard.js/dependencies.js
+ src/web/gui/src/dashboard.js/error-handling.js
+ src/web/gui/src/dashboard.js/compatibility.js
+ src/web/gui/src/dashboard.js/xss.js
+ src/web/gui/src/dashboard.js/colors.js
+ src/web/gui/src/dashboard.js/units-conversion.js
+ src/web/gui/src/dashboard.js/options.js
+ src/web/gui/src/dashboard.js/localstorage.js
+ src/web/gui/src/dashboard.js/timeout.js
+ src/web/gui/src/dashboard.js/themes.js
+ src/web/gui/src/dashboard.js/charting/dygraph.js
+ src/web/gui/src/dashboard.js/charting/sparkline.js
+ src/web/gui/src/dashboard.js/charting/google-charts.js
+ src/web/gui/src/dashboard.js/charting/gauge.js
+ src/web/gui/src/dashboard.js/charting/easy-pie-chart.js
+ src/web/gui/src/dashboard.js/charting/d3pie.js
+ src/web/gui/src/dashboard.js/charting/d3.js
+ src/web/gui/src/dashboard.js/charting/peity.js
+ src/web/gui/src/dashboard.js/charting/textonly.js
+ src/web/gui/src/dashboard.js/charting.js
+ src/web/gui/src/dashboard.js/chart-registry.js
+ src/web/gui/src/dashboard.js/common.js
+ src/web/gui/src/dashboard.js/main.js
+ src/web/gui/src/dashboard.js/alarms.js
+ src/web/gui/src/dashboard.js/registry.js
+ src/web/gui/src/dashboard.js/boot.js
+ src/web/gui/src/dashboard.js/epilogue.js.inc)
diff --git a/web/gui/ilove.html b/src/web/gui/ilove.html
index f82b1cfd3..f82b1cfd3 100644
--- a/web/gui/ilove.html
+++ b/src/web/gui/ilove.html
diff --git a/src/web/gui/index.html b/src/web/gui/index.html
new file mode 100644
index 000000000..73b040488
--- /dev/null
+++ b/src/web/gui/index.html
@@ -0,0 +1,245 @@
+<!doctype html><html><head><title>Netdata Agent Console</title><script>let pathsRegex = /\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud|v2)\/?.*/
+ let getBasename = function() {
+ return window.location.origin + window.location.pathname.replace(pathsRegex, "")
+ }
+ let goToOld = function(path) {
+ let goToUrl = getBasename() + path;
+ if (path === "/v2") {
+ let pathsRegex = /(\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud)\/?.*)/
+ if (pathsRegex.test(window.location.origin + window.location.pathname)) {
+ goToUrl = (window.location.origin + window.location.pathname).replace(pathsRegex, "/v2$1")
+ }
+ }
+ window.location.replace(ensureOneSlash(goToUrl + window.location.search))
+ }
+ let getAssetFile = function(path) {
+ window.location.replace(__webpack_public_path__ + path)
+ }
+ let ensureOneSlash = function(urlStr) {
+ return urlStr.replace(/([^:]\/)\/+/g, "$1")
+ }
+ let searchParams = new URLSearchParams(location.search)
+ window.envSettings = {
+ isAgent: true,
+ apiUrl: "https://app.netdata.cloud",
+ cloudUrl: "https://app.netdata.cloud",
+ demoSlug: "netdata-demo",
+ demoFavourites: {"postgresql":["postgres"],"redis":["redis"],"dns-query":["dns_query"],"http-endpoints":["httpcheck"],"nginx":["web_log","nginx"],"apache":["apache"],"host-reachability":["ping"],"cassandra":["cassandra"],"coredns":["coredns"],"logind":["logind"],"iis":["iis"],"active-directory":["ad"],"windows":["windows","ad","iis","mssql","exchange","netframework"],"docker":["cgroup","docker"],"ups":["upsd"]},
+ webpackPublicPath: "https://app.netdata.cloud",
+ agentApiUrl: searchParams.get("agent") || getBasename(),
+ posthogToken: "phc_hnhlqe6D2Q4IcQNrFItaqdXJAxQ8RcHkPAFAp74pubv",
+ version: "6.104.1",
+ tracking: false,
+ cookieDomain: ".netdata.cloud",
+ onprem: false,
+ nodeEnv: "production"
+ }
+
+ window.visitedNodes = []
+
+ function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
+ rel = rel || 'stylesheet'
+ type = type || 'text/css'
+ return new Promise(function(resolve, reject) {
+ let link = document.createElement('link');
+ link.type = type;
+ link.rel = rel;
+ link.href = url;
+ link.media = media || 'all';
+
+ link.onerror = function(err) {
+ reject(new URIError(`loadStyle: the stylesheet ${err.target.src} is not accessible.`));
+ };
+
+ link.onload = function() {
+ resolve();
+ };
+
+ if (aref) {
+ aref.parentNode.insertBefore(link, aref.nextSibling);
+ return;
+ }
+
+ if (bref) {
+ bref.parentNode.insertBefore(link, bref);
+ return;
+ }
+
+ document.head.appendChild(link);
+ });
+ }
+
+ loadStyle(window.envSettings.agentApiUrl + "/v2/static/splash.css")
+ loadStyle(window.envSettings.agentApiUrl + "/v2/favicon.ico", {rel: "icon", type: "image/x-icon"})</script><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6CBMJD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="app"><div id="agent-splash-screen" class="loading"><div class="hero"><div class="logo-container"><svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo-blur"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="rgba(0,171,68,0.1)"/></svg> <svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="#DDFFEB"/></svg></div><div class="headings"><h1 class="title">Welcome to Netdata</h1><div class="loading-message"><p class="subtitle">Loading latest Netdata UI...</p><div class="flex-center">We couldn't load the latest Netdata UI. <a class="button ghost" href="javascript:location.reload();">You can try again <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.364 8.05001L17.657 7.34301C16.318 6.00369 14.5472 5.18285 12.6598 5.02654C10.7724 4.87022 8.89077 5.38856 7.34966 6.48934C5.80855 7.59011 4.70794 9.20193 4.24365 11.038C3.77936 12.8741 3.98151 14.8153 4.81412 16.5164C5.64674 18.2174 7.05583 19.5678 8.79067 20.3275C10.5255 21.0871 12.4736 21.2067 14.2883 20.6648C16.103 20.123 17.6666 18.955 18.701 17.3685C19.7353 15.782 20.1733 13.8801 19.937 12.001M18.364 8.05001L14.121 8.05101M18.364 8.05001V3.80701" stroke="#00ab44" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a></div></div></div></div><div class="flex-center">Or you can load the <a class="button ghost" href="javascript:goToOld('/v1');">old single node dashboard</a> or a <a class="button ghost" href="javascript:goToOld('/v2');">local copy</a> of Netdata UI</div><div class="flex-center terms"><a href="javascript:getAssetFile('/LICENSE.md');">Netdata UI license</a></div></div></div><script>let status = {
+ TIMEOUT: 'timeout',
+ SUCCESS: 'success',
+ SKIPPED: 'skipped'
+ };
+ function loadScript(
+ url,
+ { async = true, defer = false, insertAfter: aref, insertBefore: bref, timeout = 5000, attrs, skipIf } = {}
+ ) {
+ return new Promise(function(resolve, reject) {
+ if (typeof skipIf === 'function' && skipIf()) {
+ resolve(status.SKIPPED);
+ return;
+ }
+
+ let rejectWithTimeout = setTimeout(function() { reject(status.TIMEOUT) }, timeout);
+
+ let script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = url;
+ script.async = async;
+ script.defer = defer;
+
+ if (attrs) {
+ for (let attr in attrs) {
+ script.setAttribute(attr, attrs[attr]);
+ }
+ }
+
+ script.onerror = function(err) {
+ reject(new URIError(`loadScript: the script ${err.target.src} is not accessible.`));
+ };
+
+ script.onload = function() {
+ clearTimeout(rejectWithTimeout);
+ resolve(status.SUCCESS);
+ };
+
+ if (aref) {
+ aref.parentNode.insertBefore(script, aref.nextSibling);
+ return;
+ }
+
+ if (bref) {
+ bref.parentNode.insertBefore(script, bref);
+ return;
+ }
+
+ document.body.appendChild(script);
+ });
+ }
+
+ fetch(window.envSettings.agentApiUrl + "/api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
+ .then(function(response) { return response.json() })
+ .then(function(data) {
+ let to = data.cloud_base_url.lastIndexOf('/');
+ to = (to == -1 || to < data.cloud_base_url.length -2) ? data.cloud_base_url.length : to;
+ let cloudUrl = data.cloud_base_url.substring(0, to);
+ window.envSettings.apiUrl = cloudUrl
+
+ cloudUrl = /api\.netdata\.cloud/.test(cloudUrl) ? "https://app.netdata.cloud" : cloudUrl
+ window.envSettings.cloudUrl = cloudUrl
+ window.envSettings.webpackPublicPath = window.envSettings.webpackPublicPath ? cloudUrl : window.envSettings.webpackPublicPath
+ __webpack_public_path__ = ensureOneSlash(window.envSettings.webpackPublicPath ? (window.envSettings.webpackPublicPath + "/") : (window.envSettings.agentApiUrl + "/v2/"))
+
+ window.localNetdataRegistry = {
+ anonymousStatistics: data.anonymous_statistics,
+ registry: data.registry,
+ isNetdataRegistry: data.registry === "https://registry.my-netdata.io",
+ hostname: data.hostname,
+ mg: data.agent.machine_guid,
+ nd: data.agent.node_id,
+ claimId: data.agent.claim_id,
+ cloudStatus: data.cloud_status,
+ xNetdataAuthHeader: data["X-Netdata-Auth"] || false
+ }
+
+
+
+ if ((window.localNetdataRegistry.cloudStatus === "disabled" || window.localNetdataRegistry.cloudStatus === "unavailable") && !/\/v2/.test(location.pathname)) {
+ goToOld("/v2")
+ return
+ }
+
+ fetch(__webpack_public_path__ + "bundlesManifest."+ window.envSettings.version.toString().replace(/(\d+)\..+/, "$1") +".json")
+ .then(function(response) { return response.json() })
+ .then(function(data) {
+ Object.keys(data).forEach(function(k) {
+ if (/\.(map|ico|html)$/.test(data[k])) return
+ if (/static\//.test(data[k])) return
+
+ if (/\.css.*$/.test(data[k])) {
+ loadStyle(ensureOneSlash(__webpack_public_path__ + data[k]))
+ return
+ }
+
+ if (/\.js.*$/.test(data[k])) {
+ loadScript(ensureOneSlash(__webpack_public_path__ + data[k]), {
+ async: false,
+ });
+ }
+ let el = document.getElementById('agent-splash-screen');
+ el.classList.remove("loading");
+ })
+ }).catch(function() {
+ let el = document.getElementById('agent-splash-screen');
+ el.classList.remove("loading");
+ el.classList.add("error");
+ });
+
+ envSettings.tracking = window.localNetdataRegistry.anonymousStatistics !== false
+
+ let withoutNodes = btoa(JSON.stringify({
+ registry: data.registry,
+ machine_guid: data.machine_guid,
+ hostname: data.hostname,
+ agent: data.agent,
+ nodes: []
+ }))
+ let iframe = document.createElement('iframe');
+ iframe.src = data.registry + "/registry-access.html?x=" + withoutNodes + "&originUrl=" + window.envSettings.agentApiUrl;
+ iframe.style = { position: "absolute", left: "-99999999px" };
+ iframe.width = 0 ;
+ iframe.height = 0;
+ iframe.tabindex = -1;
+ iframe.title = "empty";
+ iframe.classList.add("hidden");
+ document.body.appendChild(iframe);
+
+ setTimeout(function () {
+ document.title = data.hostname + ': Netdata Agent Console';
+ iframe.contentWindow.postMessage(["netdata-registry", window.envSettings.agentApiUrl, data], "*")
+ }, 300);
+
+ window.addEventListener('message', function(event) {
+ if (event.source !== iframe.contentWindow) return;
+
+ if (event.data.status === "disabled") console.error("Your netdata registry is disabled! Check your configuration.")
+
+ if (event.data) {
+ if (!window.localNetdataRegistry) {
+ window.localNetdataRegistry = {}
+ }
+
+ window.localNetdataRegistry.pg = event.data.person_guid
+
+ if (!window.envSettings) {
+ window.envSettings = {}
+ }
+
+ window.envSettings.visitor = event.data.person_guid
+
+ try {
+ var visitedNodesByName = event.data.urls.reduce(function (vn, visitedUrl) {
+ vn[visitedUrl[4]] = vn[visitedUrl[4]] || {}
+ vn[visitedUrl[4]].id = visitedUrl[0]
+ vn[visitedUrl[4]].name = visitedUrl[4]
+ vn[visitedUrl[4]].lastAccessTime = visitedUrl[2]
+ vn[visitedUrl[4]].urls = vn[visitedUrl[4]].urls || []
+ vn[visitedUrl[4]].urls.push(visitedUrl[1])
+
+ return vn
+ }, {})
+
+ window.visitedNodes = Object.keys(visitedNodesByName).map(function(vn) {
+ return visitedNodesByName[vn]
+ })
+ } catch(e) {
+ // do nothing
+ }
+ }
+ });
+ }).catch(() => {})</script></body></html> \ No newline at end of file
diff --git a/web/gui/main.css b/src/web/gui/main.css
index 870a1fdd4..870a1fdd4 100644
--- a/web/gui/main.css
+++ b/src/web/gui/main.css
diff --git a/web/gui/main.js b/src/web/gui/main.js
index 20f455fda..f083d7516 100644
--- a/web/gui/main.js
+++ b/src/web/gui/main.js
@@ -668,13 +668,13 @@ function renderMachines(machinesArray) {
if (machines) {
html += (
`<div class="info-item">
- <a href="https://github.com/netdata/netdata/tree/master/registry#registry" target="_blank">Your nodes list is empty</a>
+ <a href="https://github.com/netdata/netdata/tree/master/src/registry#registry" target="_blank">Your nodes list is empty</a>
</div>`
)
} else {
html += (
`<div class="info-item">
- <a href="https://github.com/netdata/netdata/tree/master/registry#registry" target="_blank">Failed to contact the registry</a>
+ <a href="https://github.com/netdata/netdata/tree/master/src/registry#registry" target="_blank">Failed to contact the registry</a>
</div>`
)
}
@@ -812,7 +812,7 @@ function renderMyNetdataMenu(machinesArray) {
</div>
<div class="agent-item">
<i class="fas fa-question-circle""></i>
- <a href="https://github.com/netdata/netdata/tree/master/registry#registry" target="_blank">What is this?</a>
+ <a href="https://github.com/netdata/netdata/tree/master/src/registry#registry" target="_blank">What is this?</a>
<div></div>
</div>`
)
@@ -2042,7 +2042,7 @@ function clipboardCopyBadgeEmbed(url) {
function alarmsUpdateModal() {
var active = '<h3>Raised Alarms</h3><table class="table">';
var all = '<h3>All Running Alarms</h3><div class="panel-group" id="alarms_all_accordion" role="tablist" aria-multiselectable="true">';
- var footer = '<hr/><a href="https://github.com/netdata/netdata/tree/master/web/api/badges#netdata-badges" target="_blank">netdata badges</a> refresh automatically. Their color indicates the state of the alarm: <span style="color: #e05d44"><b>&nbsp;red&nbsp;</b></span> is critical, <span style="color:#fe7d37"><b>&nbsp;orange&nbsp;</b></span> is warning, <span style="color: #4c1"><b>&nbsp;bright green&nbsp;</b></span> is ok, <span style="color: #9f9f9f"><b>&nbsp;light grey&nbsp;</b></span> is undefined (i.e. no data or no status), <span style="color: #000"><b>&nbsp;black&nbsp;</b></span> is not initialized. You can copy and paste their URLs to embed them in any web page.<br/>netdata can send notifications for these alarms. Check <a href="https://github.com/netdata/netdata/blob/master/health/notifications/health_alarm_notify.conf" target="_blank">this configuration file</a> for more information.';
+ var footer = '<hr/><a href="https://github.com/netdata/netdata/tree/master/src/web/api/badges#netdata-badges" target="_blank">netdata badges</a> refresh automatically. Their color indicates the state of the alarm: <span style="color: #e05d44"><b>&nbsp;red&nbsp;</b></span> is critical, <span style="color:#fe7d37"><b>&nbsp;orange&nbsp;</b></span> is warning, <span style="color: #4c1"><b>&nbsp;bright green&nbsp;</b></span> is ok, <span style="color: #9f9f9f"><b>&nbsp;light grey&nbsp;</b></span> is undefined (i.e. no data or no status), <span style="color: #000"><b>&nbsp;black&nbsp;</b></span> is not initialized. You can copy and paste their URLs to embed them in any web page.<br/>netdata can send notifications for these alarms. Check <a href="https://github.com/netdata/netdata/blob/master/src/health/notifications/health_alarm_notify.conf" target="_blank">this configuration file</a> for more information.';
loadClipboard(function () {
});
diff --git a/web/gui/old/index.html b/src/web/gui/old/index.html
index 4b5707a2d..4b5707a2d 100644
--- a/web/gui/old/index.html
+++ b/src/web/gui/old/index.html
diff --git a/web/gui/registry-access.html b/src/web/gui/registry-access.html
index 75a403034..75a403034 100644
--- a/web/gui/registry-access.html
+++ b/src/web/gui/registry-access.html
diff --git a/src/web/gui/registry-alert-redirect.html b/src/web/gui/registry-alert-redirect.html
new file mode 100644
index 000000000..0bb20a9eb
--- /dev/null
+++ b/src/web/gui/registry-alert-redirect.html
@@ -0,0 +1,152 @@
+<!doctype html><html><head><title>Netdata Agent Alert Redirect</title><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><script>function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
+ rel = rel || 'stylesheet'
+ type = type || 'text/css'
+ return new Promise(function(resolve, reject) {
+ let link = document.createElement('link');
+ link.type = type;
+ link.rel = rel;
+ link.href = url;
+ link.media = media || 'all';
+
+ link.onerror = function(err) {
+ reject(new URIError(`loadStyle: the stylesheet ${err.target.src} is not accessible.`));
+ };
+
+ link.onload = function() {
+ resolve();
+ };
+
+ if (aref) {
+ aref.parentNode.insertBefore(link, aref.nextSibling);
+ return;
+ }
+
+ if (bref) {
+ bref.parentNode.insertBefore(link, bref);
+ return;
+ }
+
+ document.head.appendChild(link);
+ });
+ }
+
+ loadStyle("v2/static/splash.css")
+ loadStyle("v2/favicon.ico", {rel: "icon", type: "image/x-icon"})</script></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6CBMJD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="agent-splash-screen" class="loading"><div class="hero"><div class="logo-container"><svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo-blur"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="rgba(0,171,68,0.1)"/></svg> <svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="#DDFFEB"/></svg></div><div class="headings"><h1 class="title">Netdata Alert Notifications</h1><div class="flex-center flex-column" id="main-message">Trying to find a Netdata Agent for this alert...</div><table id="mynodes"></table></div></div></div><script>let searchParams = new URLSearchParams(location.search)
+ let mg = searchParams.get("agent_machine_guid")
+ let tr_i = searchParams.get("transition_id")
+ let token = location.hash.substring(1)
+
+ function buildIframe(url) {
+ let iframe = document.createElement('iframe');
+ iframe.src = url + "/registry-hello.html" + location.search + "&url=" + url;
+ iframe.style = { position: "absolute", left: "-99999999px" };
+ iframe.width = 0 ;
+ iframe.height = 0;
+ iframe.tabindex = -1;
+ iframe.title = "empty";
+ iframe.classList.add("hidden");
+ document.body.appendChild(iframe);
+ return iframe
+ }
+
+ function urlToId(s) {
+ s = s.trim();
+ s = s.replace(/^https?:\/\//i, '');
+ s = s.replace(/\W/g, '_');
+ return s;
+ }
+
+ fetch("api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
+ .then(function(response) { return response.json() })
+ .then(function(helloData) {
+ if (helloData.anonymous_statistics !== false) {
+ (function (w, d, s, l, i) {
+ w[l] = w[l] || []
+ w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" })
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != "dataLayer" ? "&l=" + l : ""
+ j.async = true
+ j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl
+ f.parentNode.insertBefore(j, f)
+ })(window, document, "script", "dataLayer", "GTM-N6CBMJD")
+ }
+ fetch("api/v1/registry?action=search&for=" + mg, { cache: "no-cache", credentials: "include", headers: { ["X-Netdata-Auth"]: 'Bearer ' + (token || localStorage.getItem("registry-netdata-token")) } })
+ .then(function(response) { return response.json() })
+ .then(function(data) {
+ let table = document.getElementById("mynodes");
+
+ if (data.status === "ok") {
+ if (!token) {
+ if (location.protocol === "https:" && data.urls.some(function(u) {
+ return (/http:/).test(u)
+ })) {
+ return location.replace('http://' + location.href.substring(8) + "#" + localStorage.getItem("registry-netdata-token"))
+ }
+ }
+
+ data.urls.sort(function(a, b) {
+ return b[2] - a[2];
+ }).forEach(function(urlData) {
+ let urlMg = urlData[0]
+ let url = urlData[1]
+ let urlHostname = urlData[4]
+
+ let rowIframe = buildIframe(url)
+
+ let row = document.createElement("tr");
+ let cell1 = document.createElement("td");
+ let link = document.createElement("a");
+
+ link.href = (urlHostname ? (url + "/spaces/" + urlHostname + "/rooms/local/alerts/" + (tr_i || "") + location.search) : url + location.search).replace(/\/+/g, "/");
+ link.textContent = url;
+ link.target = "_blank";
+ link.classList.add("button", "ghost");
+
+ cell1.appendChild(link);
+ row.appendChild(cell1);
+
+ let cell2 = document.createElement("td");
+ cell2.id = urlToId("_" + url + urlMg);
+ cell2.textContent = "checking...";
+ row.appendChild(cell2);
+
+ table.appendChild(row);
+
+ window.addEventListener('message', function(event) {
+ if (event.source !== rowIframe.contentWindow) return;
+ if (event.data.url !== url || event.data.mg !== urlMg) return;
+ link.href = event.data.hostname ? (url + "/spaces/" + event.data.hostname + "/rooms/local/alerts/" + (tr_i || "") + location.search) : url + location.search;
+
+ let cellStatus = document.getElementById(urlToId("_" + url + urlMg));
+ if (event.data.isSame) {
+ cell2.textContent = "OK";
+ } else if (event.data.hasError) {
+ cell2.textContent = "can't connect";
+ } else {
+ cell2.textContent = "wrong node";
+ }
+ });
+
+ setTimeout(function() {
+ let cellStatus = document.getElementById(urlToId("_" + url + urlMg));
+ document.getElementById('agent-splash-screen').classList.remove("loading");
+ if (cell2.textContent !== "checking...") {
+ return;
+ }
+ cell2.textContent = "can't connect";
+ }, 5000)
+ })
+ let el = document.getElementById('agent-splash-screen');
+ el.classList.add("table");
+ document.getElementById('main-message').textContent = "Select a URL to see details about this alert:"
+ } else {
+ let el = document.getElementById('main-message');
+ el.innerHTML = "<p>Can't find any Netdata Agent for this alert.</p><small>Netdata learns Agent URLs when you view them and associates them with web browsers.<br/>Probably, you have never viewed the dashboard of the Netdata Agent that sent this notification, with the browser you use now.</small>"
+ }
+ }).catch(function(e) {
+ let el = document.getElementById('main-message');
+ el.textContent = "Oops! Something went wrong."
+ })
+
+ })</script></body></html> \ No newline at end of file
diff --git a/web/gui/registry-hello.html b/src/web/gui/registry-hello.html
index 7fba5662c..7fba5662c 100644
--- a/web/gui/registry-hello.html
+++ b/src/web/gui/registry-hello.html
diff --git a/web/gui/src/dashboard.js/alarms.js b/src/web/gui/src/dashboard.js/alarms.js
index 82477671a..82477671a 100644
--- a/web/gui/src/dashboard.js/alarms.js
+++ b/src/web/gui/src/dashboard.js/alarms.js
diff --git a/web/gui/src/dashboard.js/boot.js b/src/web/gui/src/dashboard.js/boot.js
index c448213b3..c448213b3 100644
--- a/web/gui/src/dashboard.js/boot.js
+++ b/src/web/gui/src/dashboard.js/boot.js
diff --git a/web/gui/src/dashboard.js/chart-registry.js b/src/web/gui/src/dashboard.js/chart-registry.js
index 542f4e016..542f4e016 100644
--- a/web/gui/src/dashboard.js/chart-registry.js
+++ b/src/web/gui/src/dashboard.js/chart-registry.js
diff --git a/web/gui/src/dashboard.js/charting.js b/src/web/gui/src/dashboard.js/charting.js
index 1035ff069..1035ff069 100644
--- a/web/gui/src/dashboard.js/charting.js
+++ b/src/web/gui/src/dashboard.js/charting.js
diff --git a/web/gui/src/dashboard.js/charting/_c3.js b/src/web/gui/src/dashboard.js/charting/_c3.js
index 6688bbcce..6688bbcce 100644
--- a/web/gui/src/dashboard.js/charting/_c3.js
+++ b/src/web/gui/src/dashboard.js/charting/_c3.js
diff --git a/web/gui/src/dashboard.js/charting/_morris.js b/src/web/gui/src/dashboard.js/charting/_morris.js
index 30789e4e2..30789e4e2 100644
--- a/web/gui/src/dashboard.js/charting/_morris.js
+++ b/src/web/gui/src/dashboard.js/charting/_morris.js
diff --git a/web/gui/src/dashboard.js/charting/_raphael.js b/src/web/gui/src/dashboard.js/charting/_raphael.js
index 2d89a22a8..2d89a22a8 100644
--- a/web/gui/src/dashboard.js/charting/_raphael.js
+++ b/src/web/gui/src/dashboard.js/charting/_raphael.js
diff --git a/web/gui/src/dashboard.js/charting/d3.js b/src/web/gui/src/dashboard.js/charting/d3.js
index 6528208cf..6528208cf 100644
--- a/web/gui/src/dashboard.js/charting/d3.js
+++ b/src/web/gui/src/dashboard.js/charting/d3.js
diff --git a/web/gui/src/dashboard.js/charting/d3pie.js b/src/web/gui/src/dashboard.js/charting/d3pie.js
index 27cff8542..27cff8542 100644
--- a/web/gui/src/dashboard.js/charting/d3pie.js
+++ b/src/web/gui/src/dashboard.js/charting/d3pie.js
diff --git a/web/gui/src/dashboard.js/charting/dygraph.js b/src/web/gui/src/dashboard.js/charting/dygraph.js
index 4b44e7c43..4b44e7c43 100644
--- a/web/gui/src/dashboard.js/charting/dygraph.js
+++ b/src/web/gui/src/dashboard.js/charting/dygraph.js
diff --git a/web/gui/src/dashboard.js/charting/easy-pie-chart.js b/src/web/gui/src/dashboard.js/charting/easy-pie-chart.js
index 6905a103f..6905a103f 100644
--- a/web/gui/src/dashboard.js/charting/easy-pie-chart.js
+++ b/src/web/gui/src/dashboard.js/charting/easy-pie-chart.js
diff --git a/web/gui/src/dashboard.js/charting/gauge.js b/src/web/gui/src/dashboard.js/charting/gauge.js
index 53ed46fb4..53ed46fb4 100644
--- a/web/gui/src/dashboard.js/charting/gauge.js
+++ b/src/web/gui/src/dashboard.js/charting/gauge.js
diff --git a/web/gui/src/dashboard.js/charting/google-charts.js b/src/web/gui/src/dashboard.js/charting/google-charts.js
index 7497dafd8..7497dafd8 100644
--- a/web/gui/src/dashboard.js/charting/google-charts.js
+++ b/src/web/gui/src/dashboard.js/charting/google-charts.js
diff --git a/web/gui/src/dashboard.js/charting/peity.js b/src/web/gui/src/dashboard.js/charting/peity.js
index 012fb9c21..012fb9c21 100644
--- a/web/gui/src/dashboard.js/charting/peity.js
+++ b/src/web/gui/src/dashboard.js/charting/peity.js
diff --git a/web/gui/src/dashboard.js/charting/sparkline.js b/src/web/gui/src/dashboard.js/charting/sparkline.js
index 5d8a9e60f..5d8a9e60f 100644
--- a/web/gui/src/dashboard.js/charting/sparkline.js
+++ b/src/web/gui/src/dashboard.js/charting/sparkline.js
diff --git a/web/gui/src/dashboard.js/charting/textonly.js b/src/web/gui/src/dashboard.js/charting/textonly.js
index e7b9aa93a..e7b9aa93a 100644
--- a/web/gui/src/dashboard.js/charting/textonly.js
+++ b/src/web/gui/src/dashboard.js/charting/textonly.js
diff --git a/web/gui/src/dashboard.js/colors.js b/src/web/gui/src/dashboard.js/colors.js
index 4b98c017c..4b98c017c 100644
--- a/web/gui/src/dashboard.js/colors.js
+++ b/src/web/gui/src/dashboard.js/colors.js
diff --git a/web/gui/src/dashboard.js/common.js b/src/web/gui/src/dashboard.js/common.js
index 4a97babea..4a97babea 100644
--- a/web/gui/src/dashboard.js/common.js
+++ b/src/web/gui/src/dashboard.js/common.js
diff --git a/web/gui/src/dashboard.js/compatibility.js b/src/web/gui/src/dashboard.js/compatibility.js
index e1ecfbdb2..e1ecfbdb2 100644
--- a/web/gui/src/dashboard.js/compatibility.js
+++ b/src/web/gui/src/dashboard.js/compatibility.js
diff --git a/web/gui/src/dashboard.js/dependencies.js b/src/web/gui/src/dashboard.js/dependencies.js
index a0c26bf35..a0c26bf35 100644
--- a/web/gui/src/dashboard.js/dependencies.js
+++ b/src/web/gui/src/dashboard.js/dependencies.js
diff --git a/web/gui/src/dashboard.js/epilogue.js.inc b/src/web/gui/src/dashboard.js/epilogue.js.inc
index c612988cc..c612988cc 100644
--- a/web/gui/src/dashboard.js/epilogue.js.inc
+++ b/src/web/gui/src/dashboard.js/epilogue.js.inc
diff --git a/web/gui/src/dashboard.js/error-handling.js b/src/web/gui/src/dashboard.js/error-handling.js
index abc7c6187..abc7c6187 100644
--- a/web/gui/src/dashboard.js/error-handling.js
+++ b/src/web/gui/src/dashboard.js/error-handling.js
diff --git a/web/gui/src/dashboard.js/localstorage.js b/src/web/gui/src/dashboard.js/localstorage.js
index 5bbf5a22d..5bbf5a22d 100644
--- a/web/gui/src/dashboard.js/localstorage.js
+++ b/src/web/gui/src/dashboard.js/localstorage.js
diff --git a/web/gui/src/dashboard.js/main.js b/src/web/gui/src/dashboard.js/main.js
index 9ba022ecd..9ba022ecd 100644
--- a/web/gui/src/dashboard.js/main.js
+++ b/src/web/gui/src/dashboard.js/main.js
diff --git a/web/gui/src/dashboard.js/options.js b/src/web/gui/src/dashboard.js/options.js
index 68132e7b2..68132e7b2 100644
--- a/web/gui/src/dashboard.js/options.js
+++ b/src/web/gui/src/dashboard.js/options.js
diff --git a/web/gui/src/dashboard.js/prologue.js.inc b/src/web/gui/src/dashboard.js/prologue.js.inc
index 2094d3baf..2094d3baf 100644
--- a/web/gui/src/dashboard.js/prologue.js.inc
+++ b/src/web/gui/src/dashboard.js/prologue.js.inc
diff --git a/web/gui/src/dashboard.js/registry.js b/src/web/gui/src/dashboard.js/registry.js
index 090ef52fd..090ef52fd 100644
--- a/web/gui/src/dashboard.js/registry.js
+++ b/src/web/gui/src/dashboard.js/registry.js
diff --git a/web/gui/src/dashboard.js/server-detection.js b/src/web/gui/src/dashboard.js/server-detection.js
index 472ad48be..472ad48be 100644
--- a/web/gui/src/dashboard.js/server-detection.js
+++ b/src/web/gui/src/dashboard.js/server-detection.js
diff --git a/web/gui/src/dashboard.js/themes.js b/src/web/gui/src/dashboard.js/themes.js
index d5126a642..d5126a642 100644
--- a/web/gui/src/dashboard.js/themes.js
+++ b/src/web/gui/src/dashboard.js/themes.js
diff --git a/web/gui/src/dashboard.js/timeout.js b/src/web/gui/src/dashboard.js/timeout.js
index 4adf9bb4c..4adf9bb4c 100644
--- a/web/gui/src/dashboard.js/timeout.js
+++ b/src/web/gui/src/dashboard.js/timeout.js
diff --git a/web/gui/src/dashboard.js/units-conversion.js b/src/web/gui/src/dashboard.js/units-conversion.js
index b0dbd2938..b0dbd2938 100644
--- a/web/gui/src/dashboard.js/units-conversion.js
+++ b/src/web/gui/src/dashboard.js/units-conversion.js
diff --git a/web/gui/src/dashboard.js/utils.js b/src/web/gui/src/dashboard.js/utils.js
index 8014aaf17..8014aaf17 100644
--- a/web/gui/src/dashboard.js/utils.js
+++ b/src/web/gui/src/dashboard.js/utils.js
diff --git a/web/gui/src/dashboard.js/xss.js b/src/web/gui/src/dashboard.js/xss.js
index fa66f34da..fa66f34da 100644
--- a/web/gui/src/dashboard.js/xss.js
+++ b/src/web/gui/src/dashboard.js/xss.js
diff --git a/web/gui/static/img/netdata-logomark.svg b/src/web/gui/static/img/netdata-logomark.svg
index 9e7d870f6..9e7d870f6 100644
--- a/web/gui/static/img/netdata-logomark.svg
+++ b/src/web/gui/static/img/netdata-logomark.svg
diff --git a/web/gui/static/splash.css b/src/web/gui/static/splash.css
index f20b6ac41..f20b6ac41 100644
--- a/web/gui/static/splash.css
+++ b/src/web/gui/static/splash.css
diff --git a/web/gui/switch.html b/src/web/gui/switch.html
index 9a13a45cf..9a13a45cf 100644
--- a/web/gui/switch.html
+++ b/src/web/gui/switch.html
diff --git a/web/gui/v0 b/src/web/gui/v0
index 489ce0f85..489ce0f85 120000
--- a/web/gui/v0
+++ b/src/web/gui/v0
diff --git a/web/gui/v1/README.md b/src/web/gui/v1/README.md
index 5e72b581c..5e72b581c 120000
--- a/web/gui/v1/README.md
+++ b/src/web/gui/v1/README.md
diff --git a/web/gui/v1/asset-manifest.json b/src/web/gui/v1/asset-manifest.json
index 4000b072c..4000b072c 100644
--- a/web/gui/v1/asset-manifest.json
+++ b/src/web/gui/v1/asset-manifest.json
diff --git a/web/gui/v1/console.html b/src/web/gui/v1/console.html
index b85b4ffbd..b85b4ffbd 100644
--- a/web/gui/v1/console.html
+++ b/src/web/gui/v1/console.html
diff --git a/web/gui/v1/css/bootstrap-3.3.7.css b/src/web/gui/v1/css/bootstrap-3.3.7.css
index 55fa2acba..55fa2acba 100644
--- a/web/gui/v1/css/bootstrap-3.3.7.css
+++ b/src/web/gui/v1/css/bootstrap-3.3.7.css
diff --git a/web/gui/v1/css/bootstrap-slate-flat-3.3.7.css b/src/web/gui/v1/css/bootstrap-slate-flat-3.3.7.css
index 7ce384f81..7ce384f81 100644
--- a/web/gui/v1/css/bootstrap-slate-flat-3.3.7.css
+++ b/src/web/gui/v1/css/bootstrap-slate-flat-3.3.7.css
diff --git a/web/gui/v1/css/bootstrap-slider-10.0.0.min.css b/src/web/gui/v1/css/bootstrap-slider-10.0.0.min.css
index 095be9514..095be9514 100644
--- a/web/gui/v1/css/bootstrap-slider-10.0.0.min.css
+++ b/src/web/gui/v1/css/bootstrap-slider-10.0.0.min.css
diff --git a/web/gui/v1/css/bootstrap-theme-3.3.7.min.css b/src/web/gui/v1/css/bootstrap-theme-3.3.7.min.css
index ba77cff5d..ba77cff5d 100644
--- a/web/gui/v1/css/bootstrap-theme-3.3.7.min.css
+++ b/src/web/gui/v1/css/bootstrap-theme-3.3.7.min.css
diff --git a/web/gui/v1/css/bootstrap-toggle-2.2.2.min.css b/src/web/gui/v1/css/bootstrap-toggle-2.2.2.min.css
index a3daa3721..a3daa3721 100644
--- a/web/gui/v1/css/bootstrap-toggle-2.2.2.min.css
+++ b/src/web/gui/v1/css/bootstrap-toggle-2.2.2.min.css
diff --git a/web/gui/v1/css/dashboard.css b/src/web/gui/v1/css/dashboard.css
index 2d95a331e..2d95a331e 100644
--- a/web/gui/v1/css/dashboard.css
+++ b/src/web/gui/v1/css/dashboard.css
diff --git a/web/gui/v1/css/dashboard.slate.css b/src/web/gui/v1/css/dashboard.slate.css
index c4e5c65c9..c4e5c65c9 100644
--- a/web/gui/v1/css/dashboard.slate.css
+++ b/src/web/gui/v1/css/dashboard.slate.css
diff --git a/web/gui/v1/dash-example.html b/src/web/gui/v1/dash-example.html
index b9bc80376..b9bc80376 100644
--- a/web/gui/v1/dash-example.html
+++ b/src/web/gui/v1/dash-example.html
diff --git a/web/gui/v1/dashboard-react.js b/src/web/gui/v1/dashboard-react.js
index aa067a726..aa067a726 100644
--- a/web/gui/v1/dashboard-react.js
+++ b/src/web/gui/v1/dashboard-react.js
diff --git a/web/gui/v1/dashboard.css b/src/web/gui/v1/dashboard.css
index 2d95a331e..2d95a331e 100644
--- a/web/gui/v1/dashboard.css
+++ b/src/web/gui/v1/dashboard.css
diff --git a/web/gui/v1/dashboard.html b/src/web/gui/v1/dashboard.html
index be0febf7a..be0febf7a 100644
--- a/web/gui/v1/dashboard.html
+++ b/src/web/gui/v1/dashboard.html
diff --git a/web/gui/v1/dashboard.js b/src/web/gui/v1/dashboard.js
index adb9ccf04..adb9ccf04 100644
--- a/web/gui/v1/dashboard.js
+++ b/src/web/gui/v1/dashboard.js
diff --git a/web/gui/v1/dashboard.slate.css b/src/web/gui/v1/dashboard.slate.css
index c4e5c65c9..c4e5c65c9 100644
--- a/web/gui/v1/dashboard.slate.css
+++ b/src/web/gui/v1/dashboard.slate.css
diff --git a/src/web/gui/v1/dashboard_v1.cmake b/src/web/gui/v1/dashboard_v1.cmake
new file mode 100644
index 000000000..e60e8170d
--- /dev/null
+++ b/src/web/gui/v1/dashboard_v1.cmake
@@ -0,0 +1,168 @@
+
+ install(FILES src/web/gui/v1/asset-manifest.json
+src/web/gui/v1/console.html
+src/web/gui/v1/dash-example.html
+src/web/gui/v1/dashboard-react.js
+src/web/gui/v1/dashboard.css
+src/web/gui/v1/dashboard.html
+src/web/gui/v1/dashboard.js
+src/web/gui/v1/dashboard.slate.css
+src/web/gui/v1/demo.html
+src/web/gui/v1/demo2.html
+src/web/gui/v1/demosites.html
+src/web/gui/v1/demosites2.html
+src/web/gui/v1/favicon.ico
+src/web/gui/v1/goto-host-from-alarm.html
+src/web/gui/v1/index-node-view.html
+src/web/gui/v1/infographic.html
+src/web/gui/v1/manifest.json
+src/web/gui/v1/precache-manifest.e2d3811ef5e4b7e75e1f56d6ee92ef2c.js
+src/web/gui/v1/refresh-badges.js
+src/web/gui/v1/robots.txt
+src/web/gui/v1/service-worker.js
+src/web/gui/v1/sitemap.xml
+src/web/gui/v1/tv-react.html
+src/web/gui/v1/tv.html DESTINATION ${WEB_DEST})
+ install(FILES src/web/gui/v1/css/bootstrap-3.3.7.css
+src/web/gui/v1/css/bootstrap-slate-flat-3.3.7.css
+src/web/gui/v1/css/bootstrap-slider-10.0.0.min.css
+src/web/gui/v1/css/bootstrap-theme-3.3.7.min.css
+src/web/gui/v1/css/bootstrap-toggle-2.2.2.min.css
+src/web/gui/v1/css/dashboard.css
+src/web/gui/v1/css/dashboard.slate.css DESTINATION ${WEB_DEST}/css)
+ install(FILES src/web/gui/v1/fonts/glyphicons-halflings-regular.eot
+src/web/gui/v1/fonts/glyphicons-halflings-regular.svg
+src/web/gui/v1/fonts/glyphicons-halflings-regular.ttf
+src/web/gui/v1/fonts/glyphicons-halflings-regular.woff
+src/web/gui/v1/fonts/glyphicons-halflings-regular.woff2 DESTINATION ${WEB_DEST}/fonts)
+ install(FILES src/web/gui/v1/images/alert-128-orange.png
+src/web/gui/v1/images/alert-128-red.png
+src/web/gui/v1/images/alert-multi-size-orange.ico
+src/web/gui/v1/images/alert-multi-size-red.ico
+src/web/gui/v1/images/alerts.jpg
+src/web/gui/v1/images/alerts.png
+src/web/gui/v1/images/android-icon-144x144.png
+src/web/gui/v1/images/android-icon-192x192.png
+src/web/gui/v1/images/android-icon-36x36.png
+src/web/gui/v1/images/android-icon-48x48.png
+src/web/gui/v1/images/android-icon-72x72.png
+src/web/gui/v1/images/android-icon-96x96.png
+src/web/gui/v1/images/animated.gif
+src/web/gui/v1/images/apple-icon-114x114.png
+src/web/gui/v1/images/apple-icon-120x120.png
+src/web/gui/v1/images/apple-icon-144x144.png
+src/web/gui/v1/images/apple-icon-152x152.png
+src/web/gui/v1/images/apple-icon-180x180.png
+src/web/gui/v1/images/apple-icon-57x57.png
+src/web/gui/v1/images/apple-icon-60x60.png
+src/web/gui/v1/images/apple-icon-72x72.png
+src/web/gui/v1/images/apple-icon-76x76.png
+src/web/gui/v1/images/apple-icon-precomposed.png
+src/web/gui/v1/images/apple-icon.png
+src/web/gui/v1/images/banner-icon-144x144.png
+src/web/gui/v1/images/check-mark-2-128-green.png
+src/web/gui/v1/images/check-mark-2-multi-size-green.ico
+src/web/gui/v1/images/dashboards.png
+src/web/gui/v1/images/favicon-128.png
+src/web/gui/v1/images/favicon-16x16.png
+src/web/gui/v1/images/favicon-196x196.png
+src/web/gui/v1/images/favicon-32x32.png
+src/web/gui/v1/images/favicon-96x96.png
+src/web/gui/v1/images/favicon.ico
+src/web/gui/v1/images/home.png
+src/web/gui/v1/images/ms-icon-144x144.png
+src/web/gui/v1/images/ms-icon-150x150.png
+src/web/gui/v1/images/ms-icon-310x150.png
+src/web/gui/v1/images/ms-icon-310x310.png
+src/web/gui/v1/images/ms-icon-36x36.png
+src/web/gui/v1/images/ms-icon-70x70.png
+src/web/gui/v1/images/netdata-logomark.svg
+src/web/gui/v1/images/netdata.svg
+src/web/gui/v1/images/nodeView.png
+src/web/gui/v1/images/nodes.jpg
+src/web/gui/v1/images/overview.png
+src/web/gui/v1/images/packaging-beta-tag.svg
+src/web/gui/v1/images/post.png
+src/web/gui/v1/images/pricing.png
+src/web/gui/v1/images/seo-performance-128.png DESTINATION ${WEB_DEST}/images)
+ install(FILES src/web/gui/v1/lib/bootstrap-3.3.7.min.js
+src/web/gui/v1/lib/bootstrap-slider-10.0.0.min.js
+src/web/gui/v1/lib/bootstrap-table-1.11.0.min.js
+src/web/gui/v1/lib/bootstrap-table-export-1.11.0.min.js
+src/web/gui/v1/lib/bootstrap-toggle-2.2.2.min.js
+src/web/gui/v1/lib/clipboard-polyfill-be05dad.js
+src/web/gui/v1/lib/d3-4.12.2.min.js
+src/web/gui/v1/lib/d3pie-0.2.1-netdata-3.js
+src/web/gui/v1/lib/dygraph-c91c859.min.js
+src/web/gui/v1/lib/dygraph-smooth-plotter-c91c859.js
+src/web/gui/v1/lib/fontawesome-all-5.0.1.min.js
+src/web/gui/v1/lib/gauge-1.3.2.min.js
+src/web/gui/v1/lib/jquery-3.6.0.min.js
+src/web/gui/v1/lib/jquery.easypiechart-97b5824.min.js
+src/web/gui/v1/lib/jquery.peity-3.2.0.min.js
+src/web/gui/v1/lib/jquery.sparkline-2.1.2.min.js
+src/web/gui/v1/lib/lz-string-1.4.4.min.js
+src/web/gui/v1/lib/pako-1.0.6.min.js
+src/web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js
+src/web/gui/v1/lib/tableExport-1.6.0.min.js DESTINATION ${WEB_DEST}/lib)
+ install(FILES src/web/gui/v1/static/css/2.c454aab8.chunk.css
+src/web/gui/v1/static/css/2.c454aab8.chunk.css.map
+src/web/gui/v1/static/css/4.a36e3b73.chunk.css
+src/web/gui/v1/static/css/4.a36e3b73.chunk.css.map
+src/web/gui/v1/static/css/main.53ba10f1.chunk.css
+src/web/gui/v1/static/css/main.53ba10f1.chunk.css.map DESTINATION ${WEB_DEST}/static/css)
+ install(FILES src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js
+src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map
+src/web/gui/v1/static/js/2.62d105c5.chunk.js
+src/web/gui/v1/static/js/2.62d105c5.chunk.js.LICENSE
+src/web/gui/v1/static/js/2.62d105c5.chunk.js.map
+src/web/gui/v1/static/js/3.f137faca.chunk.js
+src/web/gui/v1/static/js/3.f137faca.chunk.js.map
+src/web/gui/v1/static/js/4.2dbcd906.chunk.js
+src/web/gui/v1/static/js/4.2dbcd906.chunk.js.map
+src/web/gui/v1/static/js/5.2f783a54.chunk.js
+src/web/gui/v1/static/js/5.2f783a54.chunk.js.LICENSE
+src/web/gui/v1/static/js/5.2f783a54.chunk.js.map
+src/web/gui/v1/static/js/6.e1951239.chunk.js
+src/web/gui/v1/static/js/6.e1951239.chunk.js.map
+src/web/gui/v1/static/js/7.c2417fb0.chunk.js
+src/web/gui/v1/static/js/7.c2417fb0.chunk.js.map
+src/web/gui/v1/static/js/8.b4161ea2.chunk.js
+src/web/gui/v1/static/js/8.b4161ea2.chunk.js.map
+src/web/gui/v1/static/js/9.a4363968.chunk.js
+src/web/gui/v1/static/js/9.a4363968.chunk.js.map
+src/web/gui/v1/static/js/main.e248095a.chunk.js
+src/web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE
+src/web/gui/v1/static/js/main.e248095a.chunk.js.map
+src/web/gui/v1/static/js/runtime-main.08abed8f.js
+src/web/gui/v1/static/js/runtime-main.08abed8f.js.map DESTINATION ${WEB_DEST}/static/js)
+ install(FILES src/web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-200.67524c36.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-200.bf72c841.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.52df2560.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-400.263d6267.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-400.a2c56f94.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.272f8611.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-500.0866c244.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-600.337b1651.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff
+src/web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2
+src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff
+src/web/gui/v1/static/media/material-icons.0509ab09.woff2 DESTINATION ${WEB_DEST}/static/media)
+ install(FILES src/web/gui/v1/index.html DESTINATION ${WEB_DEST}/v1)
diff --git a/web/gui/v1/demo.html b/src/web/gui/v1/demo.html
index 642742a55..642742a55 100644
--- a/web/gui/v1/demo.html
+++ b/src/web/gui/v1/demo.html
diff --git a/web/gui/v1/demo2.html b/src/web/gui/v1/demo2.html
index 9a77fdde5..9a77fdde5 100644
--- a/web/gui/v1/demo2.html
+++ b/src/web/gui/v1/demo2.html
diff --git a/web/gui/v1/demosites.html b/src/web/gui/v1/demosites.html
index 59435c2b2..2ce20df05 100644
--- a/web/gui/v1/demosites.html
+++ b/src/web/gui/v1/demosites.html
@@ -1202,7 +1202,7 @@ p {
<b>Nvidia</b>, <b>Red Hat</b>, <b>SAP</b>, <b>Selectel</b>, <b>TicketMaster</b>, <b>Vimeo</b>, and many more!
</p>
<small>
- The following figures come from users using the <a href="https://github.com/netdata/netdata/tree/master/registry" target="_blank" data-ga-category="Outbound links" data-ga-action="Nav click" data-ga-label=GlobalRegistry>netdata public global registry</a>.<br/>Counting since May 16th 2016. Actual figures may be a lot higher.<br/></small>
+ The following figures come from users using the <a href="https://github.com/netdata/netdata/tree/master/src/registry" target="_blank" data-ga-category="Outbound links" data-ga-action="Nav click" data-ga-label=GlobalRegistry>netdata public global registry</a>.<br/>Counting since May 16th 2016. Actual figures may be a lot higher.<br/></small>
<div class="container" style="padding-top: 40px; text-align: center; width: 30%; min-width: 220px; display: inline-block;">
<div class="mysparkline">
<div class="mysparkline-overchart-label">
@@ -1275,13 +1275,13 @@ p {
<embed src="//registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&label=user%20base&units=null&value_color=blue&precision=0&refresh=30&v42" type="image/svg+xml" height="20" />
<embed src="//registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&label=servers%20monitored&units=null&value_color=orange&precision=0&refresh=30&v42" type="image/svg+xml" height="20" />
<embed src="//registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&label=sessions%20served&units=null&value_color=yellowgreen&precision=0&refresh=30&v42" type="image/svg+xml" height="20" />
- <br/><i>(figures come from <a href="https://github.com/netdata/netdata/tree/master/registry" target="_blank">the public netdata registry</a> data, showing only installations that use this registry, counting since May 16th 2016)</i>
+ <br/><i>(figures come from <a href="https://github.com/netdata/netdata/tree/master/src/registry" target="_blank">the public netdata registry</a> data, showing only installations that use this registry, counting since May 16th 2016)</i>
<br/>
-->
</p>
<p>
<small>
- netdata can generate auto-refreshing <strong><a href="https://github.com/netdata/netdata/tree/master/web/api/badges#netdata-badges" target="_blank" data-ga-category="Outbound links" data-ga-action="Nav click" data-ga-label=Badges>badges</a></strong>, like these:
+ netdata can generate auto-refreshing <strong><a href="https://github.com/netdata/netdata/tree/master/src/web/api/badges#netdata-badges" target="_blank" data-ga-category="Outbound links" data-ga-action="Nav click" data-ga-label=Badges>badges</a></strong>, like these:
</small>
<br/>
<embed style="padding-top: 10px; padding-bottom: 25px;" src="//registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&after=-86400&options=unaligned&group=incremental-sum&label=new%20users%20today&units=null&value_color=blue&precision=0&refresh=60&v42" type="image/svg+xml" height="20" />
diff --git a/web/gui/v1/demosites2.html b/src/web/gui/v1/demosites2.html
index 4b2be5c26..c60af4791 100644
--- a/web/gui/v1/demosites2.html
+++ b/src/web/gui/v1/demosites2.html
@@ -597,7 +597,7 @@
bandwidth consumption on the demo sites
</div>
<div class="mycontent">
- Linux QoS is configured by <a href="https://github.com/netdata/netdata/tree/master/collectors/tc.plugin#tcplugin">FireQOS</a>
+ Linux QoS is configured by <a href="https://github.com/netdata/netdata/tree/master/src/collectors/tc.plugin#tcplugin">FireQOS</a>
</div>
<!-- Nav tabs -->
@@ -719,7 +719,7 @@
DDoS protection performance on the demo sites
</div>
<div class="mycontent">
- iptables SYNPROXY configured by <a href="https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/README.md#linux-anti-ddos">FireHOL</a>
+ iptables SYNPROXY configured by <a href="https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/README.md#linux-anti-ddos">FireHOL</a>
</div>
<div style="padding-top: 4vw; width: 100%; text-align: center; font-size: 1.5vw;">
diff --git a/web/gui/v1/favicon.ico b/src/web/gui/v1/favicon.ico
index 064032aee..064032aee 100644
--- a/web/gui/v1/favicon.ico
+++ b/src/web/gui/v1/favicon.ico
Binary files differ
diff --git a/web/gui/v1/fonts/glyphicons-halflings-regular.eot b/src/web/gui/v1/fonts/glyphicons-halflings-regular.eot
index b93a4953f..b93a4953f 100644
--- a/web/gui/v1/fonts/glyphicons-halflings-regular.eot
+++ b/src/web/gui/v1/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/web/gui/v1/fonts/glyphicons-halflings-regular.svg b/src/web/gui/v1/fonts/glyphicons-halflings-regular.svg
index 2a4aabacf..2a4aabacf 100644
--- a/web/gui/v1/fonts/glyphicons-halflings-regular.svg
+++ b/src/web/gui/v1/fonts/glyphicons-halflings-regular.svg
diff --git a/web/gui/v1/fonts/glyphicons-halflings-regular.ttf b/src/web/gui/v1/fonts/glyphicons-halflings-regular.ttf
index 1413fc609..1413fc609 100644
--- a/web/gui/v1/fonts/glyphicons-halflings-regular.ttf
+++ b/src/web/gui/v1/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/web/gui/v1/fonts/glyphicons-halflings-regular.woff b/src/web/gui/v1/fonts/glyphicons-halflings-regular.woff
index 9e612858f..9e612858f 100644
--- a/web/gui/v1/fonts/glyphicons-halflings-regular.woff
+++ b/src/web/gui/v1/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/web/gui/v1/fonts/glyphicons-halflings-regular.woff2 b/src/web/gui/v1/fonts/glyphicons-halflings-regular.woff2
index 64539b54c..64539b54c 100644
--- a/web/gui/v1/fonts/glyphicons-halflings-regular.woff2
+++ b/src/web/gui/v1/fonts/glyphicons-halflings-regular.woff2
Binary files differ
diff --git a/web/gui/v1/goto-host-from-alarm.html b/src/web/gui/v1/goto-host-from-alarm.html
index 5d424c698..5d424c698 100644
--- a/web/gui/v1/goto-host-from-alarm.html
+++ b/src/web/gui/v1/goto-host-from-alarm.html
diff --git a/web/gui/v1/images/alert-128-orange.png b/src/web/gui/v1/images/alert-128-orange.png
index c6182bfad..c6182bfad 100644
--- a/web/gui/v1/images/alert-128-orange.png
+++ b/src/web/gui/v1/images/alert-128-orange.png
Binary files differ
diff --git a/web/gui/v1/images/alert-128-red.png b/src/web/gui/v1/images/alert-128-red.png
index 90b9c73e6..90b9c73e6 100644
--- a/web/gui/v1/images/alert-128-red.png
+++ b/src/web/gui/v1/images/alert-128-red.png
Binary files differ
diff --git a/web/gui/v1/images/alert-multi-size-orange.ico b/src/web/gui/v1/images/alert-multi-size-orange.ico
index edca43871..edca43871 100644
--- a/web/gui/v1/images/alert-multi-size-orange.ico
+++ b/src/web/gui/v1/images/alert-multi-size-orange.ico
Binary files differ
diff --git a/web/gui/v1/images/alert-multi-size-red.ico b/src/web/gui/v1/images/alert-multi-size-red.ico
index 8f7cbd069..8f7cbd069 100644
--- a/web/gui/v1/images/alert-multi-size-red.ico
+++ b/src/web/gui/v1/images/alert-multi-size-red.ico
Binary files differ
diff --git a/web/gui/v1/images/alerts.jpg b/src/web/gui/v1/images/alerts.jpg
index 6593c72d6..6593c72d6 100644
--- a/web/gui/v1/images/alerts.jpg
+++ b/src/web/gui/v1/images/alerts.jpg
Binary files differ
diff --git a/web/gui/v1/images/alerts.png b/src/web/gui/v1/images/alerts.png
index fe9940d3e..fe9940d3e 100644
--- a/web/gui/v1/images/alerts.png
+++ b/src/web/gui/v1/images/alerts.png
Binary files differ
diff --git a/web/gui/v1/images/android-icon-144x144.png b/src/web/gui/v1/images/android-icon-144x144.png
index 69efa5a23..69efa5a23 100644
--- a/web/gui/v1/images/android-icon-144x144.png
+++ b/src/web/gui/v1/images/android-icon-144x144.png
Binary files differ
diff --git a/web/gui/v1/images/android-icon-192x192.png b/src/web/gui/v1/images/android-icon-192x192.png
index e57443575..e57443575 100644
--- a/web/gui/v1/images/android-icon-192x192.png
+++ b/src/web/gui/v1/images/android-icon-192x192.png
Binary files differ
diff --git a/web/gui/v1/images/android-icon-36x36.png b/src/web/gui/v1/images/android-icon-36x36.png
index 4ba804d9c..4ba804d9c 100644
--- a/web/gui/v1/images/android-icon-36x36.png
+++ b/src/web/gui/v1/images/android-icon-36x36.png
Binary files differ
diff --git a/web/gui/v1/images/android-icon-48x48.png b/src/web/gui/v1/images/android-icon-48x48.png
index 04970d4bb..04970d4bb 100644
--- a/web/gui/v1/images/android-icon-48x48.png
+++ b/src/web/gui/v1/images/android-icon-48x48.png
Binary files differ
diff --git a/web/gui/v1/images/android-icon-72x72.png b/src/web/gui/v1/images/android-icon-72x72.png
index 5cbc701e2..5cbc701e2 100644
--- a/web/gui/v1/images/android-icon-72x72.png
+++ b/src/web/gui/v1/images/android-icon-72x72.png
Binary files differ
diff --git a/web/gui/v1/images/android-icon-96x96.png b/src/web/gui/v1/images/android-icon-96x96.png
index 21f27cea8..21f27cea8 100644
--- a/web/gui/v1/images/android-icon-96x96.png
+++ b/src/web/gui/v1/images/android-icon-96x96.png
Binary files differ
diff --git a/web/gui/v1/images/animated.gif b/src/web/gui/v1/images/animated.gif
index 0e94a20ba..0e94a20ba 100644
--- a/web/gui/v1/images/animated.gif
+++ b/src/web/gui/v1/images/animated.gif
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-114x114.png b/src/web/gui/v1/images/apple-icon-114x114.png
index 7993e055d..7993e055d 100644
--- a/web/gui/v1/images/apple-icon-114x114.png
+++ b/src/web/gui/v1/images/apple-icon-114x114.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-120x120.png b/src/web/gui/v1/images/apple-icon-120x120.png
index 3fbe8fda3..3fbe8fda3 100644
--- a/web/gui/v1/images/apple-icon-120x120.png
+++ b/src/web/gui/v1/images/apple-icon-120x120.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-144x144.png b/src/web/gui/v1/images/apple-icon-144x144.png
index 8d465692b..8d465692b 100644
--- a/web/gui/v1/images/apple-icon-144x144.png
+++ b/src/web/gui/v1/images/apple-icon-144x144.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-152x152.png b/src/web/gui/v1/images/apple-icon-152x152.png
index 11a10723d..11a10723d 100644
--- a/web/gui/v1/images/apple-icon-152x152.png
+++ b/src/web/gui/v1/images/apple-icon-152x152.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-180x180.png b/src/web/gui/v1/images/apple-icon-180x180.png
index 314efb122..314efb122 100644
--- a/web/gui/v1/images/apple-icon-180x180.png
+++ b/src/web/gui/v1/images/apple-icon-180x180.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-57x57.png b/src/web/gui/v1/images/apple-icon-57x57.png
index 852836161..852836161 100644
--- a/web/gui/v1/images/apple-icon-57x57.png
+++ b/src/web/gui/v1/images/apple-icon-57x57.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-60x60.png b/src/web/gui/v1/images/apple-icon-60x60.png
index 2662e85d6..2662e85d6 100644
--- a/web/gui/v1/images/apple-icon-60x60.png
+++ b/src/web/gui/v1/images/apple-icon-60x60.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-72x72.png b/src/web/gui/v1/images/apple-icon-72x72.png
index 4a6b056e0..4a6b056e0 100644
--- a/web/gui/v1/images/apple-icon-72x72.png
+++ b/src/web/gui/v1/images/apple-icon-72x72.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-76x76.png b/src/web/gui/v1/images/apple-icon-76x76.png
index c2bf6c9f5..c2bf6c9f5 100644
--- a/web/gui/v1/images/apple-icon-76x76.png
+++ b/src/web/gui/v1/images/apple-icon-76x76.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon-precomposed.png b/src/web/gui/v1/images/apple-icon-precomposed.png
index 9c3e73ef4..9c3e73ef4 100644
--- a/web/gui/v1/images/apple-icon-precomposed.png
+++ b/src/web/gui/v1/images/apple-icon-precomposed.png
Binary files differ
diff --git a/web/gui/v1/images/apple-icon.png b/src/web/gui/v1/images/apple-icon.png
index 9c3e73ef4..9c3e73ef4 100644
--- a/web/gui/v1/images/apple-icon.png
+++ b/src/web/gui/v1/images/apple-icon.png
Binary files differ
diff --git a/web/gui/v1/images/banner-icon-144x144.png b/src/web/gui/v1/images/banner-icon-144x144.png
index fef3dca16..fef3dca16 100644
--- a/web/gui/v1/images/banner-icon-144x144.png
+++ b/src/web/gui/v1/images/banner-icon-144x144.png
Binary files differ
diff --git a/web/gui/v1/images/check-mark-2-128-green.png b/src/web/gui/v1/images/check-mark-2-128-green.png
index e04ddca12..e04ddca12 100644
--- a/web/gui/v1/images/check-mark-2-128-green.png
+++ b/src/web/gui/v1/images/check-mark-2-128-green.png
Binary files differ
diff --git a/web/gui/v1/images/check-mark-2-multi-size-green.ico b/src/web/gui/v1/images/check-mark-2-multi-size-green.ico
index 2fc414113..2fc414113 100644
--- a/web/gui/v1/images/check-mark-2-multi-size-green.ico
+++ b/src/web/gui/v1/images/check-mark-2-multi-size-green.ico
Binary files differ
diff --git a/web/gui/v1/images/dashboards.png b/src/web/gui/v1/images/dashboards.png
index 46cdfbb2d..46cdfbb2d 100644
--- a/web/gui/v1/images/dashboards.png
+++ b/src/web/gui/v1/images/dashboards.png
Binary files differ
diff --git a/web/gui/v1/images/favicon-128.png b/src/web/gui/v1/images/favicon-128.png
index 5371f920c..5371f920c 100644
--- a/web/gui/v1/images/favicon-128.png
+++ b/src/web/gui/v1/images/favicon-128.png
Binary files differ
diff --git a/web/gui/v1/images/favicon-16x16.png b/src/web/gui/v1/images/favicon-16x16.png
index 5729f5a2d..5729f5a2d 100644
--- a/web/gui/v1/images/favicon-16x16.png
+++ b/src/web/gui/v1/images/favicon-16x16.png
Binary files differ
diff --git a/web/gui/v1/images/favicon-196x196.png b/src/web/gui/v1/images/favicon-196x196.png
index a208c27fa..a208c27fa 100644
--- a/web/gui/v1/images/favicon-196x196.png
+++ b/src/web/gui/v1/images/favicon-196x196.png
Binary files differ
diff --git a/web/gui/v1/images/favicon-32x32.png b/src/web/gui/v1/images/favicon-32x32.png
index cdb0a4806..cdb0a4806 100644
--- a/web/gui/v1/images/favicon-32x32.png
+++ b/src/web/gui/v1/images/favicon-32x32.png
Binary files differ
diff --git a/web/gui/v1/images/favicon-96x96.png b/src/web/gui/v1/images/favicon-96x96.png
index dbe7dea24..dbe7dea24 100644
--- a/web/gui/v1/images/favicon-96x96.png
+++ b/src/web/gui/v1/images/favicon-96x96.png
Binary files differ
diff --git a/web/gui/v1/images/favicon.ico b/src/web/gui/v1/images/favicon.ico
index 064032aee..064032aee 100644
--- a/web/gui/v1/images/favicon.ico
+++ b/src/web/gui/v1/images/favicon.ico
Binary files differ
diff --git a/web/gui/v1/images/home.png b/src/web/gui/v1/images/home.png
index cf7db9dba..cf7db9dba 100644
--- a/web/gui/v1/images/home.png
+++ b/src/web/gui/v1/images/home.png
Binary files differ
diff --git a/web/gui/v1/images/ms-icon-144x144.png b/src/web/gui/v1/images/ms-icon-144x144.png
index 8d465692b..8d465692b 100644
--- a/web/gui/v1/images/ms-icon-144x144.png
+++ b/src/web/gui/v1/images/ms-icon-144x144.png
Binary files differ
diff --git a/web/gui/v1/images/ms-icon-150x150.png b/src/web/gui/v1/images/ms-icon-150x150.png
index 4683d56a3..4683d56a3 100644
--- a/web/gui/v1/images/ms-icon-150x150.png
+++ b/src/web/gui/v1/images/ms-icon-150x150.png
Binary files differ
diff --git a/web/gui/v1/images/ms-icon-310x150.png b/src/web/gui/v1/images/ms-icon-310x150.png
index 5d4ac57b6..5d4ac57b6 100644
--- a/web/gui/v1/images/ms-icon-310x150.png
+++ b/src/web/gui/v1/images/ms-icon-310x150.png
Binary files differ
diff --git a/web/gui/v1/images/ms-icon-310x310.png b/src/web/gui/v1/images/ms-icon-310x310.png
index bdb591b24..bdb591b24 100644
--- a/web/gui/v1/images/ms-icon-310x310.png
+++ b/src/web/gui/v1/images/ms-icon-310x310.png
Binary files differ
diff --git a/web/gui/v1/images/ms-icon-36x36.png b/src/web/gui/v1/images/ms-icon-36x36.png
index e251302ed..e251302ed 100644
--- a/web/gui/v1/images/ms-icon-36x36.png
+++ b/src/web/gui/v1/images/ms-icon-36x36.png
Binary files differ
diff --git a/web/gui/v1/images/ms-icon-70x70.png b/src/web/gui/v1/images/ms-icon-70x70.png
index 5371f920c..5371f920c 100644
--- a/web/gui/v1/images/ms-icon-70x70.png
+++ b/src/web/gui/v1/images/ms-icon-70x70.png
Binary files differ
diff --git a/web/gui/v1/images/netdata-logomark.svg b/src/web/gui/v1/images/netdata-logomark.svg
index 18152fb7f..18152fb7f 100644
--- a/web/gui/v1/images/netdata-logomark.svg
+++ b/src/web/gui/v1/images/netdata-logomark.svg
diff --git a/web/gui/v1/images/netdata.svg b/src/web/gui/v1/images/netdata.svg
index f8ddbda19..f8ddbda19 100644
--- a/web/gui/v1/images/netdata.svg
+++ b/src/web/gui/v1/images/netdata.svg
diff --git a/web/gui/v1/images/nodeView.png b/src/web/gui/v1/images/nodeView.png
index e9b3e1b67..e9b3e1b67 100644
--- a/web/gui/v1/images/nodeView.png
+++ b/src/web/gui/v1/images/nodeView.png
Binary files differ
diff --git a/web/gui/v1/images/nodes.jpg b/src/web/gui/v1/images/nodes.jpg
index 3e93c0d6c..3e93c0d6c 100644
--- a/web/gui/v1/images/nodes.jpg
+++ b/src/web/gui/v1/images/nodes.jpg
Binary files differ
diff --git a/web/gui/v1/images/overview.png b/src/web/gui/v1/images/overview.png
index 6e54db6a9..6e54db6a9 100644
--- a/web/gui/v1/images/overview.png
+++ b/src/web/gui/v1/images/overview.png
Binary files differ
diff --git a/web/gui/v1/images/packaging-beta-tag.svg b/src/web/gui/v1/images/packaging-beta-tag.svg
index cebdc0847..cebdc0847 100644
--- a/web/gui/v1/images/packaging-beta-tag.svg
+++ b/src/web/gui/v1/images/packaging-beta-tag.svg
diff --git a/web/gui/v1/images/post.png b/src/web/gui/v1/images/post.png
index 6bad54742..6bad54742 100644
--- a/web/gui/v1/images/post.png
+++ b/src/web/gui/v1/images/post.png
Binary files differ
diff --git a/web/gui/v1/images/pricing.png b/src/web/gui/v1/images/pricing.png
index d5406e8a6..d5406e8a6 100644
--- a/web/gui/v1/images/pricing.png
+++ b/src/web/gui/v1/images/pricing.png
Binary files differ
diff --git a/web/gui/v1/images/seo-performance-128.png b/src/web/gui/v1/images/seo-performance-128.png
index 2a212a475..2a212a475 100644
--- a/web/gui/v1/images/seo-performance-128.png
+++ b/src/web/gui/v1/images/seo-performance-128.png
Binary files differ
diff --git a/web/gui/v1/index-node-view.html b/src/web/gui/v1/index-node-view.html
index 8483892ec..8483892ec 100644
--- a/web/gui/v1/index-node-view.html
+++ b/src/web/gui/v1/index-node-view.html
diff --git a/web/gui/v1/index.html b/src/web/gui/v1/index.html
index bd92748ef..bd92748ef 100644
--- a/web/gui/v1/index.html
+++ b/src/web/gui/v1/index.html
diff --git a/web/gui/v1/infographic.html b/src/web/gui/v1/infographic.html
index 0d3f56375..18d608c6c 100644
--- a/web/gui/v1/infographic.html
+++ b/src/web/gui/v1/infographic.html
@@ -91,8 +91,8 @@
"toolbar":"",
"auto-fit":true,
"check-visible-state":false,
- "edit":"https://raw.githubusercontent.com/netdata/netdata/master/diagrams/netdata-overview.xml",
- "url":"https://raw.githubusercontent.com/netdata/netdata/master/diagrams/netdata-overview.xml"
+ "edit":"https://raw.githubusercontent.com/netdata/netdata/master/docs/diagrams/netdata-overview.xml",
+ "url":"https://raw.githubusercontent.com/netdata/netdata/master/docs/diagrams/netdata-overview.xml"
};
document.getElementById("drawing").dataset.mxgraph = JSON.stringify(opts);
</script>
diff --git a/web/gui/v1/lib/bootstrap-3.3.7.min.js b/src/web/gui/v1/lib/bootstrap-3.3.7.min.js
index 03a97168a..03a97168a 100644
--- a/web/gui/v1/lib/bootstrap-3.3.7.min.js
+++ b/src/web/gui/v1/lib/bootstrap-3.3.7.min.js
diff --git a/web/gui/v1/lib/bootstrap-slider-10.0.0.min.js b/src/web/gui/v1/lib/bootstrap-slider-10.0.0.min.js
index 87e834908..87e834908 100644
--- a/web/gui/v1/lib/bootstrap-slider-10.0.0.min.js
+++ b/src/web/gui/v1/lib/bootstrap-slider-10.0.0.min.js
diff --git a/web/gui/v1/lib/bootstrap-table-1.11.0.min.js b/src/web/gui/v1/lib/bootstrap-table-1.11.0.min.js
index f4c2b8a26..f4c2b8a26 100644
--- a/web/gui/v1/lib/bootstrap-table-1.11.0.min.js
+++ b/src/web/gui/v1/lib/bootstrap-table-1.11.0.min.js
diff --git a/web/gui/v1/lib/bootstrap-table-export-1.11.0.min.js b/src/web/gui/v1/lib/bootstrap-table-export-1.11.0.min.js
index afa2d02e1..afa2d02e1 100644
--- a/web/gui/v1/lib/bootstrap-table-export-1.11.0.min.js
+++ b/src/web/gui/v1/lib/bootstrap-table-export-1.11.0.min.js
diff --git a/web/gui/v1/lib/bootstrap-toggle-2.2.2.min.js b/src/web/gui/v1/lib/bootstrap-toggle-2.2.2.min.js
index a11e156f8..a11e156f8 100644
--- a/web/gui/v1/lib/bootstrap-toggle-2.2.2.min.js
+++ b/src/web/gui/v1/lib/bootstrap-toggle-2.2.2.min.js
diff --git a/web/gui/v1/lib/clipboard-polyfill-be05dad.js b/src/web/gui/v1/lib/clipboard-polyfill-be05dad.js
index d1ba02ee3..d1ba02ee3 100644
--- a/web/gui/v1/lib/clipboard-polyfill-be05dad.js
+++ b/src/web/gui/v1/lib/clipboard-polyfill-be05dad.js
diff --git a/web/gui/v1/lib/d3-4.12.2.min.js b/src/web/gui/v1/lib/d3-4.12.2.min.js
index 3d91d1abb..3d91d1abb 100644
--- a/web/gui/v1/lib/d3-4.12.2.min.js
+++ b/src/web/gui/v1/lib/d3-4.12.2.min.js
diff --git a/web/gui/v1/lib/d3pie-0.2.1-netdata-3.js b/src/web/gui/v1/lib/d3pie-0.2.1-netdata-3.js
index 3b00b495b..3b00b495b 100644
--- a/web/gui/v1/lib/d3pie-0.2.1-netdata-3.js
+++ b/src/web/gui/v1/lib/d3pie-0.2.1-netdata-3.js
diff --git a/web/gui/v1/lib/dygraph-c91c859.min.js b/src/web/gui/v1/lib/dygraph-c91c859.min.js
index 1713fee87..1713fee87 100644
--- a/web/gui/v1/lib/dygraph-c91c859.min.js
+++ b/src/web/gui/v1/lib/dygraph-c91c859.min.js
diff --git a/web/gui/v1/lib/dygraph-smooth-plotter-c91c859.js b/src/web/gui/v1/lib/dygraph-smooth-plotter-c91c859.js
index c0b76fb0a..c0b76fb0a 100644
--- a/web/gui/v1/lib/dygraph-smooth-plotter-c91c859.js
+++ b/src/web/gui/v1/lib/dygraph-smooth-plotter-c91c859.js
diff --git a/web/gui/v1/lib/fontawesome-all-5.0.1.min.js b/src/web/gui/v1/lib/fontawesome-all-5.0.1.min.js
index d2775aaf6..d2775aaf6 100644
--- a/web/gui/v1/lib/fontawesome-all-5.0.1.min.js
+++ b/src/web/gui/v1/lib/fontawesome-all-5.0.1.min.js
diff --git a/web/gui/v1/lib/gauge-1.3.2.min.js b/src/web/gui/v1/lib/gauge-1.3.2.min.js
index 7d9e1635b..7d9e1635b 100644
--- a/web/gui/v1/lib/gauge-1.3.2.min.js
+++ b/src/web/gui/v1/lib/gauge-1.3.2.min.js
diff --git a/web/gui/v1/lib/jquery-3.6.0.min.js b/src/web/gui/v1/lib/jquery-3.6.0.min.js
index c4c6022f2..c4c6022f2 100644
--- a/web/gui/v1/lib/jquery-3.6.0.min.js
+++ b/src/web/gui/v1/lib/jquery-3.6.0.min.js
diff --git a/web/gui/v1/lib/jquery.easypiechart-97b5824.min.js b/src/web/gui/v1/lib/jquery.easypiechart-97b5824.min.js
index b6f6811de..b6f6811de 100644
--- a/web/gui/v1/lib/jquery.easypiechart-97b5824.min.js
+++ b/src/web/gui/v1/lib/jquery.easypiechart-97b5824.min.js
diff --git a/web/gui/v1/lib/jquery.peity-3.2.0.min.js b/src/web/gui/v1/lib/jquery.peity-3.2.0.min.js
index a0a9169fd..a0a9169fd 100644
--- a/web/gui/v1/lib/jquery.peity-3.2.0.min.js
+++ b/src/web/gui/v1/lib/jquery.peity-3.2.0.min.js
diff --git a/web/gui/v1/lib/jquery.sparkline-2.1.2.min.js b/src/web/gui/v1/lib/jquery.sparkline-2.1.2.min.js
index f1973df04..f1973df04 100644
--- a/web/gui/v1/lib/jquery.sparkline-2.1.2.min.js
+++ b/src/web/gui/v1/lib/jquery.sparkline-2.1.2.min.js
diff --git a/web/gui/v1/lib/lz-string-1.4.4.min.js b/src/web/gui/v1/lib/lz-string-1.4.4.min.js
index c7de0d585..c7de0d585 100644
--- a/web/gui/v1/lib/lz-string-1.4.4.min.js
+++ b/src/web/gui/v1/lib/lz-string-1.4.4.min.js
diff --git a/web/gui/v1/lib/pako-1.0.6.min.js b/src/web/gui/v1/lib/pako-1.0.6.min.js
index 165fc265a..165fc265a 100644
--- a/web/gui/v1/lib/pako-1.0.6.min.js
+++ b/src/web/gui/v1/lib/pako-1.0.6.min.js
diff --git a/web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js b/src/web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js
index 7fabff54c..7fabff54c 100644
--- a/web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js
+++ b/src/web/gui/v1/lib/perfect-scrollbar-0.6.15.min.js
diff --git a/web/gui/v1/lib/tableExport-1.6.0.min.js b/src/web/gui/v1/lib/tableExport-1.6.0.min.js
index 5e41fda11..5e41fda11 100644
--- a/web/gui/v1/lib/tableExport-1.6.0.min.js
+++ b/src/web/gui/v1/lib/tableExport-1.6.0.min.js
diff --git a/web/gui/v1/manifest.json b/src/web/gui/v1/manifest.json
index 52cb4831c..52cb4831c 100644
--- a/web/gui/v1/manifest.json
+++ b/src/web/gui/v1/manifest.json
diff --git a/web/gui/v1/precache-manifest.e2d3811ef5e4b7e75e1f56d6ee92ef2c.js b/src/web/gui/v1/precache-manifest.e2d3811ef5e4b7e75e1f56d6ee92ef2c.js
index 0fb4cede0..0fb4cede0 100644
--- a/web/gui/v1/precache-manifest.e2d3811ef5e4b7e75e1f56d6ee92ef2c.js
+++ b/src/web/gui/v1/precache-manifest.e2d3811ef5e4b7e75e1f56d6ee92ef2c.js
diff --git a/web/gui/v1/refresh-badges.js b/src/web/gui/v1/refresh-badges.js
index 00dd4dadf..00dd4dadf 100644
--- a/web/gui/v1/refresh-badges.js
+++ b/src/web/gui/v1/refresh-badges.js
diff --git a/web/gui/v1/robots.txt b/src/web/gui/v1/robots.txt
index e434d9c2b..e434d9c2b 100644
--- a/web/gui/v1/robots.txt
+++ b/src/web/gui/v1/robots.txt
diff --git a/web/gui/v1/service-worker.js b/src/web/gui/v1/service-worker.js
index d7853713b..d7853713b 100644
--- a/web/gui/v1/service-worker.js
+++ b/src/web/gui/v1/service-worker.js
diff --git a/web/gui/v1/sitemap.xml b/src/web/gui/v1/sitemap.xml
index 4438e8b35..4438e8b35 100644
--- a/web/gui/v1/sitemap.xml
+++ b/src/web/gui/v1/sitemap.xml
diff --git a/web/gui/v1/static/css/2.c454aab8.chunk.css b/src/web/gui/v1/static/css/2.c454aab8.chunk.css
index 3daf7f083..3daf7f083 100644
--- a/web/gui/v1/static/css/2.c454aab8.chunk.css
+++ b/src/web/gui/v1/static/css/2.c454aab8.chunk.css
diff --git a/web/gui/v1/static/css/2.c454aab8.chunk.css.map b/src/web/gui/v1/static/css/2.c454aab8.chunk.css.map
index 7a9ad2ba8..7a9ad2ba8 100644
--- a/web/gui/v1/static/css/2.c454aab8.chunk.css.map
+++ b/src/web/gui/v1/static/css/2.c454aab8.chunk.css.map
diff --git a/web/gui/v1/static/css/4.a36e3b73.chunk.css b/src/web/gui/v1/static/css/4.a36e3b73.chunk.css
index 2d02b1c1a..2d02b1c1a 100644
--- a/web/gui/v1/static/css/4.a36e3b73.chunk.css
+++ b/src/web/gui/v1/static/css/4.a36e3b73.chunk.css
diff --git a/web/gui/v1/static/css/4.a36e3b73.chunk.css.map b/src/web/gui/v1/static/css/4.a36e3b73.chunk.css.map
index 747dd5808..747dd5808 100644
--- a/web/gui/v1/static/css/4.a36e3b73.chunk.css.map
+++ b/src/web/gui/v1/static/css/4.a36e3b73.chunk.css.map
diff --git a/web/gui/v1/static/css/main.53ba10f1.chunk.css b/src/web/gui/v1/static/css/main.53ba10f1.chunk.css
index 5e4b9e86b..5e4b9e86b 100644
--- a/web/gui/v1/static/css/main.53ba10f1.chunk.css
+++ b/src/web/gui/v1/static/css/main.53ba10f1.chunk.css
diff --git a/web/gui/v1/static/css/main.53ba10f1.chunk.css.map b/src/web/gui/v1/static/css/main.53ba10f1.chunk.css.map
index 73fd66cef..73fd66cef 100644
--- a/web/gui/v1/static/css/main.53ba10f1.chunk.css.map
+++ b/src/web/gui/v1/static/css/main.53ba10f1.chunk.css.map
diff --git a/web/gui/v1/static/js/10.a5cd7d0e.chunk.js b/src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js
index 48bc4eaa3..48bc4eaa3 100644
--- a/web/gui/v1/static/js/10.a5cd7d0e.chunk.js
+++ b/src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js
diff --git a/web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map b/src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map
index 9916f41ab..9916f41ab 100644
--- a/web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map
+++ b/src/web/gui/v1/static/js/10.a5cd7d0e.chunk.js.map
diff --git a/web/gui/v1/static/js/2.62d105c5.chunk.js b/src/web/gui/v1/static/js/2.62d105c5.chunk.js
index 0116421ea..0116421ea 100644
--- a/web/gui/v1/static/js/2.62d105c5.chunk.js
+++ b/src/web/gui/v1/static/js/2.62d105c5.chunk.js
diff --git a/web/gui/v1/static/js/2.62d105c5.chunk.js.LICENSE b/src/web/gui/v1/static/js/2.62d105c5.chunk.js.LICENSE
index 3cb20c629..3cb20c629 100644
--- a/web/gui/v1/static/js/2.62d105c5.chunk.js.LICENSE
+++ b/src/web/gui/v1/static/js/2.62d105c5.chunk.js.LICENSE
diff --git a/web/gui/v1/static/js/2.62d105c5.chunk.js.map b/src/web/gui/v1/static/js/2.62d105c5.chunk.js.map
index 55bd7a566..55bd7a566 100644
--- a/web/gui/v1/static/js/2.62d105c5.chunk.js.map
+++ b/src/web/gui/v1/static/js/2.62d105c5.chunk.js.map
diff --git a/web/gui/v1/static/js/3.f137faca.chunk.js b/src/web/gui/v1/static/js/3.f137faca.chunk.js
index 80ec278d0..80ec278d0 100644
--- a/web/gui/v1/static/js/3.f137faca.chunk.js
+++ b/src/web/gui/v1/static/js/3.f137faca.chunk.js
diff --git a/web/gui/v1/static/js/3.f137faca.chunk.js.map b/src/web/gui/v1/static/js/3.f137faca.chunk.js.map
index 03d4daba9..03d4daba9 100644
--- a/web/gui/v1/static/js/3.f137faca.chunk.js.map
+++ b/src/web/gui/v1/static/js/3.f137faca.chunk.js.map
diff --git a/web/gui/v1/static/js/4.2dbcd906.chunk.js b/src/web/gui/v1/static/js/4.2dbcd906.chunk.js
index 88ab8c56c..88ab8c56c 100644
--- a/web/gui/v1/static/js/4.2dbcd906.chunk.js
+++ b/src/web/gui/v1/static/js/4.2dbcd906.chunk.js
diff --git a/web/gui/v1/static/js/4.2dbcd906.chunk.js.map b/src/web/gui/v1/static/js/4.2dbcd906.chunk.js.map
index cbaee377c..cbaee377c 100644
--- a/web/gui/v1/static/js/4.2dbcd906.chunk.js.map
+++ b/src/web/gui/v1/static/js/4.2dbcd906.chunk.js.map
diff --git a/web/gui/v1/static/js/5.2f783a54.chunk.js b/src/web/gui/v1/static/js/5.2f783a54.chunk.js
index a69a3f314..a69a3f314 100644
--- a/web/gui/v1/static/js/5.2f783a54.chunk.js
+++ b/src/web/gui/v1/static/js/5.2f783a54.chunk.js
diff --git a/web/gui/v1/static/js/5.2f783a54.chunk.js.LICENSE b/src/web/gui/v1/static/js/5.2f783a54.chunk.js.LICENSE
index 759dacbc3..759dacbc3 100644
--- a/web/gui/v1/static/js/5.2f783a54.chunk.js.LICENSE
+++ b/src/web/gui/v1/static/js/5.2f783a54.chunk.js.LICENSE
diff --git a/web/gui/v1/static/js/5.2f783a54.chunk.js.map b/src/web/gui/v1/static/js/5.2f783a54.chunk.js.map
index 79308aa10..79308aa10 100644
--- a/web/gui/v1/static/js/5.2f783a54.chunk.js.map
+++ b/src/web/gui/v1/static/js/5.2f783a54.chunk.js.map
diff --git a/web/gui/v1/static/js/6.e1951239.chunk.js b/src/web/gui/v1/static/js/6.e1951239.chunk.js
index e84b27847..e84b27847 100644
--- a/web/gui/v1/static/js/6.e1951239.chunk.js
+++ b/src/web/gui/v1/static/js/6.e1951239.chunk.js
diff --git a/web/gui/v1/static/js/6.e1951239.chunk.js.map b/src/web/gui/v1/static/js/6.e1951239.chunk.js.map
index 05814f6fd..05814f6fd 100644
--- a/web/gui/v1/static/js/6.e1951239.chunk.js.map
+++ b/src/web/gui/v1/static/js/6.e1951239.chunk.js.map
diff --git a/web/gui/v1/static/js/7.c2417fb0.chunk.js b/src/web/gui/v1/static/js/7.c2417fb0.chunk.js
index 889fdb998..889fdb998 100644
--- a/web/gui/v1/static/js/7.c2417fb0.chunk.js
+++ b/src/web/gui/v1/static/js/7.c2417fb0.chunk.js
diff --git a/web/gui/v1/static/js/7.c2417fb0.chunk.js.map b/src/web/gui/v1/static/js/7.c2417fb0.chunk.js.map
index f39ac2f1d..f39ac2f1d 100644
--- a/web/gui/v1/static/js/7.c2417fb0.chunk.js.map
+++ b/src/web/gui/v1/static/js/7.c2417fb0.chunk.js.map
diff --git a/web/gui/v1/static/js/8.b4161ea2.chunk.js b/src/web/gui/v1/static/js/8.b4161ea2.chunk.js
index f2150c42e..f2150c42e 100644
--- a/web/gui/v1/static/js/8.b4161ea2.chunk.js
+++ b/src/web/gui/v1/static/js/8.b4161ea2.chunk.js
diff --git a/web/gui/v1/static/js/8.b4161ea2.chunk.js.map b/src/web/gui/v1/static/js/8.b4161ea2.chunk.js.map
index d7008f8d2..d7008f8d2 100644
--- a/web/gui/v1/static/js/8.b4161ea2.chunk.js.map
+++ b/src/web/gui/v1/static/js/8.b4161ea2.chunk.js.map
diff --git a/web/gui/v1/static/js/9.a4363968.chunk.js b/src/web/gui/v1/static/js/9.a4363968.chunk.js
index 1f3847fc6..1f3847fc6 100644
--- a/web/gui/v1/static/js/9.a4363968.chunk.js
+++ b/src/web/gui/v1/static/js/9.a4363968.chunk.js
diff --git a/web/gui/v1/static/js/9.a4363968.chunk.js.map b/src/web/gui/v1/static/js/9.a4363968.chunk.js.map
index 61c1b1a67..61c1b1a67 100644
--- a/web/gui/v1/static/js/9.a4363968.chunk.js.map
+++ b/src/web/gui/v1/static/js/9.a4363968.chunk.js.map
diff --git a/src/web/gui/v1/static/js/main.e248095a.chunk.js b/src/web/gui/v1/static/js/main.e248095a.chunk.js
new file mode 100644
index 000000000..78e82c50e
--- /dev/null
+++ b/src/web/gui/v1/static/js/main.e248095a.chunk.js
@@ -0,0 +1,3 @@
+/*! For license information please see main.e248095a.chunk.js.LICENSE */
+(this["webpackJsonp@netdata/dashboard"]=this["webpackJsonp@netdata/dashboard"]||[]).push([[0],{102:function(e,t,a){"use strict";a.d(t,"b",(function(){return o})),a.d(t,"a",(function(){return d}));var n,r,o=function(e){return e>-10&&e<10?"0".concat(e):"".concat(e)},i=function(e,t){var a=Math.abs(e),n="DAYS"===t?Math.floor(a/86400):0;a-=86400*n;var r="DAYS"===t||"HOURS"===t?Math.floor(a/3600):0;a-=3600*r;var i=Math.floor(a/60);a-=60*i;var s="DAYS"===t?"".concat(n,"d:"):"",l="DAYS"===t||"HOURS"===t?"".concat(o(r),":"):"",c="".concat(o(i),":"),u=o(a.toFixed(2));return"".concat(s).concat(l).concat(c).concat(u)},s={"packets/s":{pps:1,Kpps:1e3,Mpps:1e6},pps:{pps:1,Kpps:1e3,Mpps:1e6},"kilobits/s":{"bits/s":.001,"kilobits/s":1,"megabits/s":1e3,"gigabits/s":1e6,"terabits/s":1e9},"bytes/s":{"bytes/s":1,"kilobytes/s":1024,"megabytes/s":1048576,"gigabytes/s":1073741824,"terabytes/s":1099511627776},"kilobytes/s":{"bytes/s":1/1024,"kilobytes/s":1,"megabytes/s":1024,"gigabytes/s":1048576,"terabytes/s":1073741824},"B/s":{"B/s":1,"KiB/s":1024,"MiB/s":1048576,"GiB/s":1073741824,"TiB/s":1099511627776},"KB/s":{"B/s":1/1024,"KB/s":1,"MB/s":1024,"GB/s":1048576,"TB/s":1073741824},"KiB/s":{"B/s":1/1024,"KiB/s":1,"MiB/s":1024,"GiB/s":1048576,"TiB/s":1073741824},bytes:{bytes:1,kilobytes:1024,megabytes:1048576,gigabytes:1073741824,terabytes:1099511627776},Hz:{Hz:1,kHz:Math.pow(10,3),MHz:Math.pow(10,6),GHz:Math.pow(10,9),THz:Math.pow(10,12),PHz:Math.pow(10,15),EHz:Math.pow(10,18),ZHz:Math.pow(10,21)},B:{B:1,KiB:1024,MiB:1048576,GiB:1073741824,TiB:1099511627776,PiB:0x4000000000000},KB:{B:1/1024,KB:1,MB:1024,GB:1048576,TB:1073741824},KiB:{B:1/1024,KiB:1,MiB:1024,GiB:1048576,TiB:1073741824},MB:{B:1/1048576,KB:1/1024,MB:1,GB:1024,TB:1048576,PB:1073741824},MiB:{B:1/1048576,KiB:1/1024,MiB:1,GiB:1024,TiB:1048576,PiB:1073741824},GB:{B:1/1073741824,KB:1/1048576,MB:1/1024,GB:1,TB:1024,PB:1048576,EB:1073741824},GiB:{B:1/1073741824,KiB:1/1048576,MiB:1/1024,GiB:1,TiB:1024,PiB:1048576,EiB:1073741824}},l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return function(t){return(t*e).toFixed(2)}},c={Celsius:{Fahrenheit:{check:function(){return"fahrenheit"===n},convert:function(e){return 9*e/5+32}}},celsius:{fahrenheit:{check:function(){return"fahrenheit"===n},convert:function(e){return 9*e/5+32}}},milliseconds:{microseconds:{check:function(e){return e<1},convert:l(1e3)},milliseconds:{check:function(e){return e>=1&&e<1e3},convert:l()},seconds:{check:function(e){return e>=1e3&&e<6e4},convert:l(.001)},"MM:SS.ms":{check:function(e){return r&&e>=6e4&&e<36e5},convert:function(e){return i(e/1e3,"MINUTES")}},"HH:MM:SS.ms":{check:function(e){return r&&e>=36e5&&e<864e5},convert:function(e){return i(e/1e3,"HOURS")}},"dHH:MM:SS.ms":{check:function(e){return r&&e>=864e5},convert:function(e){return i(e/1e3,"DAYS")}}},seconds:{microseconds:{check:function(e){return e<.001},convert:l(1e6)},milliseconds:{check:function(e){return e>=.001&&e<1},convert:l(1e3)},seconds:{check:function(e){return e>=1&&e<60},convert:l(1)},"MM:SS.ms":{check:function(e){return r&&e>=60&&e<3600},convert:function(e){return i(e,"MINUTES")}},"HH:MM:SS.ms":{check:function(e){return r&&e>=3600&&e<86400},convert:function(e){return i(e,"HOURS")}},"dHH:MM:SS.ms":{check:function(e){return r&&e>=86400},convert:function(e){return i(e,"DAYS")}}}},u=function(e){return e},d={keys:{},latest:{},globalReset:function(){this.keys={},this.latest={}},get:function(e,t,a,o,i,l,d,h,p){if("undefined"===typeof o&&(o="undefined"),n=h,r=p,"undefined"===typeof s[o]&&"undefined"===typeof c[o])return function(e){return e};if(void 0===i||null===i||"original"===i||i===o)return d(o),u;var f,g=null,m=0;if("undefined"!==typeof s[o]){if("auto"===i){(t=Math.abs(t))>(a=Math.abs(a))&&(a=t);var b=s[o];if(Object.keys(b).forEach((function(e){var t=b[e];t<=a&&t>m&&(g=e,m=t)})),null===g||m<=0)return d(o),u;if("string"===typeof l){var v="".concat(l,"-").concat(o),_=this.keys[v];"undefined"===typeof _&&(this.keys[v]={},_=this.keys[v]),_[e]={units:g,divider:m};var y=_[e];Object.keys(_).forEach((function(e){_[e].divider>y.divider&&(y=_[e])}));var O={units:y.units,divider:y.divider};return this.latest[v]=O,m=O.divider,d(g=O.units),function(e){return m!==O.divider&&(m=O.divider,d(g=O.units)),e/m}}return d(g),function(e){return e/m}}return"undefined"!==typeof s[o][i]?(m=s[o][i],d(i),function(e){return e/m}):(console.log("Units conversion from ".concat(o.toString()," to ").concat(i.toString(),"\n is not supported.")),d(o),u)}return"undefined"!==typeof c[o]?"auto"===i?(Object.keys(c[o]).forEach((function(e){f||c[o][e].check(a)&&(d(e),f=c[o][e].convert)})),f||(d(o),u)):"undefined"!==typeof c[o][i]?(d(i),c[o][i].convert):(console.log("Units conversion from ".concat(o.toString()," to ").concat(i.toString(),"\n is not supported.")),d(o),u):(console.log("Unmatched unit conversion method for units ".concat(o.toString())),d(o),u)}}},110:function(e,t,a){"use strict";var n=a(0),r=a.n(n),o=a(34),i=a.n(o),s=a(8),l=a(9),c=a(165),u=a(37),d=(a(340),n.forwardRef((function(e,t){var a=e.children,r=e.className,o=Object(u.a)(e,["children","className"]);return n.createElement("button",Object.assign({},o,{type:"button",className:i()("netdata-reset-button",r),ref:t}),a)})));a.d(t,"a",(function(){return h}));var h=function(e){var t=e.className,a=e.iconType,o=e.onClick,u=e.onDoubleClick,h=e.onMouseDown,p=e.onTouchStart,f=e.popoverContent,g=e.popoverTitle,m=Object(n.useRef)(null),b=Object(s.b)(l.A);return Object(n.useEffect)((function(){m.current&&b&&window.$(m.current).popover({container:"body",animation:!1,html:!0,trigger:"hover",placement:"bottom",delay:{show:window.NETDATA.options.current.show_help_delay_show_ms,hide:window.NETDATA.options.current.show_help_delay_hide_ms},title:g,content:f})}),[]),r.a.createElement(d,{className:i()(t),onClick:o,onDoubleClick:u,onMouseDown:h,onTouchStart:p,ref:m},r.a.createElement(c.a,{iconType:a}))}},114:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return d}));var n=a(5),r=a(0),o=a.n(r),i=a(110),s=a(18),l=a(56),c=a(8),u="chart_height.",d=function(e){var t=e.chartContainerElement,a=e.chartUuid,d=e.heightId,h=e.isLegendOnBottom,p=Object(r.useState)((function(){return t.clientHeight})),f=Object(n.a)(p,2),g=f[0],m=f[1],b=Object(c.a)();Object(r.useEffect)((function(){g>=70&&b(Object(s.i)({id:a,resizeHeight:g}))}),[g,a,d,b]);var v=Object(r.useCallback)((function(e){e.preventDefault();var a=t.clientHeight,n="touchstart"===e.type?e.touches[0].clientY:e.clientY,r=function(e){var r=a+e-n;if(t.style.height="".concat(r.toString(),"px"),m(r),d){var o=h?r-l.a:r;localStorage.setItem("".concat(u).concat(d),"".concat(o))}},o=function(e){return r(e.clientY)},i=function(e){return r(e.touches[0].clientY)};"touchstart"===e.type?(document.addEventListener("touchmove",i),document.addEventListener("touchend",(function e(){document.removeEventListener("touchmove",i),document.removeEventListener("touchend",e)}))):(document.addEventListener("mousemove",o),document.addEventListener("mouseup",(function e(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",e)})))}),[t.clientHeight,t.style.height,d,h]);return o.a.createElement(i.a,{className:"netdata-legend-resize-handler",onDoubleClick:function(e){e.preventDefault(),e.stopPropagation()},onMouseDown:v,onTouchStart:v,iconType:"resize",popoverTitle:"Chart Resize",popoverContent:"Drag this point with your mouse or your finger (on touch devices), to resize the chart vertically. You can also <b>double click it</b> or <b>double tap it</b> to reset between 2 states: the default and the one that fits all the values.<br/><small>Help can be disabled from the settings.</small>"})}},12:function(e,t,a){"use strict";a.d(t,"h",(function(){return i})),a.d(t,"p",(function(){return s})),a.d(t,"o",(function(){return l})),a.d(t,"u",(function(){return c})),a.d(t,"s",(function(){return u})),a.d(t,"j",(function(){return d})),a.d(t,"q",(function(){return h})),a.d(t,"i",(function(){return p})),a.d(t,"r",(function(){return f})),a.d(t,"b",(function(){return g})),a.d(t,"d",(function(){return m})),a.d(t,"D",(function(){return b})),a.d(t,"f",(function(){return v})),a.d(t,"C",(function(){return _})),a.d(t,"a",(function(){return y})),a.d(t,"A",(function(){return O})),a.d(t,"e",(function(){return x})),a.d(t,"B",(function(){return w})),a.d(t,"v",(function(){return E})),a.d(t,"l",(function(){return S})),a.d(t,"g",(function(){return C})),a.d(t,"c",(function(){return A})),a.d(t,"w",(function(){return k})),a.d(t,"x",(function(){return j})),a.d(t,"n",(function(){return T})),a.d(t,"m",(function(){return D})),a.d(t,"t",(function(){return P})),a.d(t,"k",(function(){return M})),a.d(t,"y",(function(){return L})),a.d(t,"z",(function(){return I}));var n=a(22),r=a(92),o=a(26),i=Object(n.createAction)("".concat(o.e,"/globalRequestCommonColors")),s=Object(n.createAction)("".concat(o.e,"/setCommonMin")),l=Object(n.createAction)("".concat(o.e,"/setCommonMax")),c=Object(n.createAction)("".concat(o.e,"/setGlobalSelection")),u=Object(n.createAction)("".concat(o.e,"/setGlobalPanAndZoom")),d=Object(n.createAction)("".concat(o.e,"/resetGlobalPanAndZoomAction")),h=Object(n.createAction)("".concat(o.e,"/setDefaultAfterAction")),p=Object(n.createAction)("".concat(o.e,"/resetDefaultAfterAction")),f=Object(n.createAction)("".concat(o.e,"/setGlobalChartUnderlay")),g=Object(n.createAction)("".concat(o.e,"/centerAroundHighlightAction")),m=Object(n.createAction)("".concat(o.e,"/clearHighlightAction")),b=Object(n.createAction)("".concat(o.e,"/windowFocusChangeAction")),v=Object(r.a)("".concat(o.e,"/fetchHelloAction")),_=Object(n.createAction)("".concat(o.e,"/updatePersonUrlsAction")),y=Object(n.createAction)("".concat(o.e,"/accessRegistrySuccessAction")),O=Object(n.createAction)("".concat(o.e,"/startAlarmsAction")),x=Object(r.a)("".concat(o.e,"/fetchAllAlarmsAction")),w=Object(n.createAction)("".concat(o.e,"/updateActiveAlarmsAction")),E=Object(n.createAction)("".concat(o.e,"/setOptionAction")),S=Object(n.createAction)("".concat(o.e,"/resetOptions")),C=Object(n.createAction)("".concat(o.e,"/loadSnapshotAction")),A=Object(n.createAction)("".concat(o.e,"/chartsMetadataRequestSuccess")),k=Object(n.createAction)("".concat(o.e,"/setSpacePanelStatusAction")),j=Object(n.createAction)("".concat(o.e,"/setSpacePanelStatusAction")),T=Object(n.createAction)("".concat(o.e,"/setAlarmAction")),D=Object(n.createAction)("".concat(o.e,"/resetRegistry")),P=Object(n.createAction)("".concat(o.e,"/setGlobalPauseAction")),M=Object(n.createAction)("".concat(o.e,"/resetGlobalPauseAction")),L=Object(n.createAction)("".concat(o.e,"/setUTCOffset")),I=Object(n.createAction)("".concat(o.e,"/setUserNodeAccess"))},127:function(e,t,a){"use strict";a.d(t,"b",(function(){return l}));var n=a(0),r=a(27),o=a(74),i=a(12),s=a(188),l=function(){return Object(n.useCallback)((function(){Object(o.a)(s.a,{type:"request-refresh-access",payload:!0})}),[])};t.a=function(){var e=Object(r.d)();Object(o.b)("user-node-access",(function(t){e(Object(i.z)({message:t}))}))}},143:function(e,t,a){"use strict";var n=a(28);a.d(t,"a",(function(){return n.d}))},145:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n=function(e){return e.replace(/ /g,"_").replace(/:/g,"_").replace(/\(/g,"_").replace(/\)/g,"_").replace(/\./g,"_").replace(/\//g,"_")}},159:function(e,t,a){"use strict";a.d(t,"b",(function(){return b})),a.d(t,"a",(function(){return v}));var n=a(7),r=a(14),o=a(35),i=a(228),s=a(573),l=a(227),c=a(22),u=a(28),d=a(75),h=a(18),p=a(12),f=a(99),g=a(26),m={commonColorsKeys:{},commonMin:{},commonMax:{},currentSelectionMasterId:null,globalPanAndZoom:null,defaultAfter:d.b?Object(u.e)():-900,globalChartUnderlay:null,hoveredX:null,hasWindowFocus:document.hasFocus(),globalPause:!1,spacePanelIsActive:!1,spacePanelTransitionEndIsActive:!1,registry:{cloudBaseURL:null,hasFetchedInfo:!1,hasFetchedHello:!1,isHelloCallError:null,hostname:"unknown",isCloudEnabled:null,isCloudAvailable:null,isAgentClaimed:null,isACLKAvailable:null,hasStartedInfo:!1,isFetchingHello:!1,fullInfoPayload:null,machineGuid:null,personGuid:null,registryMachines:null,registryMachinesArray:null,registryServer:null},snapshot:null,alarms:{activeAlarms:null,hasStartedAlarms:!1},alarm:null,chartsMetadata:{isFetching:!1,isFetchingError:!1,data:null},options:f.e,userNodeAccess:null},b=Object(c.createReducer)({},m),v=function(e){var t=e.colorsAttribute,a=e.commonColorsAttribute,n=e.chartUuid,r=e.chartContext,o="string"===typeof t&&t.length>0;return a||(o?n:r)},_=function(e){return"ONLY"===Object(i.a)(e)},y=function(e,t){var a,n=t?(a=e.split(" "),_(a)?Object(s.a)(a):a):[],r=!t||!_(e.split(" "));return{assigned:{},available:[].concat(Object(o.a)(n),Object(o.a)(r||0===n.length?window.NETDATA.themes.current.colors:[])),custom:n}};b.on(p.h,(function(e,t){var a=t.chartContext,o=t.chartUuid,i=t.colorsAttribute,s=t.commonColorsAttribute,c=t.dimensionNames,u=v({colorsAttribute:i,commonColorsAttribute:s,chartUuid:o,chartContext:a}),d="string"===typeof i&&i.length>0,h=e.commonColorsKeys[u]||y(i,d),p=Object.keys(h.assigned).length,f=Object(l.a)(c.filter((function(e){return!h.assigned[e]})).map((function(e,t){return Object(r.a)({},e,h.available[(t+p)%h.available.length])}))),g=Object(n.a)({},h.assigned,{},f);return Object(n.a)({},e,{commonColorsKeys:Object(n.a)({},e.commonColorsKeys,Object(r.a)({},u,Object(n.a)({},h,{assigned:g})))})})),b.on(p.p,(function(e,t){var a,i=t.chartUuid,s=t.commonMinKey,l=t.value,c=Object(n.a)({},null===(a=e.commonMin[s])||void 0===a?void 0:a.charts,Object(r.a)({},i,l)),u=Math.min.apply(Math,Object(o.a)(Object.values(c)));return Object(n.a)({},e,{commonMin:Object(n.a)({},e.commonMin,Object(r.a)({},s,{charts:c,currentExtreme:u}))})})),b.on(p.o,(function(e,t){var a,i=t.chartUuid,s=t.commonMaxKey,l=t.value,c=Object(n.a)({},null===(a=e.commonMax[s])||void 0===a?void 0:a.charts,Object(r.a)({},i,l)),u=Math.max.apply(Math,Object(o.a)(Object.values(c)));return Object(n.a)({},e,{commonMax:Object(n.a)({},e.commonMax,Object(r.a)({},s,{charts:c,currentExtreme:u}))})})),b.on(p.w,(function(e,t){var a=t.isActive;return Object(n.a)({},e,{spacePanelIsActive:a})})),b.on(p.x,(function(e,t){var a=t.isActive;return Object(n.a)({},e,{spacePanelTransitionEndIsActive:a})})),b.on(p.u,(function(e,t){var a=t.chartUuid,r=t.hoveredX;return Object(n.a)({},e,{hoveredX:r,currentSelectionMasterId:a})})),b.on(p.s,(function(e,t){return Object(n.a)({},e,{globalPanAndZoom:t})})),b.on(p.j,(function(e){return Object(n.a)({},e,{globalPanAndZoom:m.globalPanAndZoom,hoveredX:m.hoveredX})})),b.on(p.q,(function(e,t){var a=t.after;return Object(n.a)({},e,{defaultAfter:a})})),b.on(p.i,(function(e){return Object(n.a)({},e,{defaultAfter:m.defaultAfter})})),b.on(p.r,(function(e,t){var a=t.after,r=t.before,o=t.masterID;return Object(n.a)({},e,{globalChartUnderlay:{after:a,before:r,masterID:o}})})),b.on(p.b,(function(e){if(!e.globalChartUnderlay)return console.warn("Cannot center around empty selection"),e;var t=e.globalChartUnderlay,a=t.after,r=t.before,o=(r-a)/2;return Object(n.a)({},e,{globalPanAndZoom:{after:a-o,before:r+o}})})),b.on(p.d,(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.resetPanAndZoom,r=void 0===a||a;return Object(n.a)({},e,{globalChartUnderlay:m.globalChartUnderlay},r?{globalPanAndZoom:m.globalPanAndZoom}:{})})),b.on(p.D,(function(e,t){var a=t.hasWindowFocus,r=document.hasFocus();return Object(n.a)({},e,{hasWindowFocus:r||a})})),b.on(p.t,(function(e){return Object(n.a)({},e,{globalPause:!0})})),b.on(p.k,(function(e,t){var a=t.forcePlay;return Object(n.a)({},e,{globalPause:m.globalPause,globalPanAndZoom:m.globalPanAndZoom,hoveredX:m.hoveredX,options:Object(n.a)({},e.options,{stop_updates_when_focus_is_lost:!a})})})),b.on(p.y,(function(e,t){var a=t.utcOffset;return Object(n.a)({},e,{options:Object(n.a)({},e.options,{utcOffset:a})})})),b.on(p.f.request,(function(e){return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{isFetchingHello:!0})})})),b.on(p.f.success,(function(e,t){var a=t.cloudBaseURL,r=t.hostname,o=t.machineGuid;return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{cloudBaseURL:a,isFetchingHello:!1,hasFetchedHello:!0,hostname:r,machineGuid:o})})})),b.on(p.f.failure,(function(e){return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{cloudBaseURL:g.a,isFetchingHello:!1,isHelloCallError:!0})})})),b.on(p.a,(function(e,t){var a=t.registryServer;return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{registryServer:a})})})),b.on(p.m,(function(e){return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{hasFetchedHello:m.registry.hasFetchedHello})})})),b.on(h.f,(function(e){return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{hasStartedInfo:!0})})})),b.on(h.f.success,(function(e,t){var a=t.isCloudAvailable,r=t.isCloudEnabled,o=t.isAgentClaimed,i=t.isACLKAvailable,s=t.fullInfoPayload;return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{hasFetchedInfo:!0,isCloudAvailable:a,isCloudEnabled:r,isAgentClaimed:o,isACLKAvailable:i,fullInfoPayload:s})})})),b.on(h.f.failure,(function(e){return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{isCloudAvailable:!1,isCloudEnabled:!1,isAgentClaimed:!1,isACLKAvailable:!1})})})),b.on(p.C,(function(e,t){var a=t.personGuid,r=t.registryMachines,o=t.registryMachinesArray;return Object(n.a)({},e,{registry:Object(n.a)({},e.registry,{personGuid:a,registryMachines:r,registryMachinesArray:o})})})),b.on(p.A,(function(e){return Object(n.a)({},e,{alarms:Object(n.a)({},e.alarms,{hasStartedAlarms:!0})})})),b.on(p.B,(function(e,t){var a=t.activeAlarms;return Object(n.a)({},e,{alarms:Object(n.a)({},e.alarms,{activeAlarms:a})})})),b.on(p.v,(function(e,t){var a=t.key,o=t.value;return Object(n.a)({},e,{options:Object(n.a)({},e.options,Object(r.a)({},a,o))})})),b.on(p.l,(function(e){return Object(f.b)(),Object(n.a)({},e,{options:Object(f.c)()})})),b.on(p.g,(function(e,t){var a=t.snapshot,o=Object.keys(a.data).map((function(e){var t,n;try{if(null===(t=a.uncompress(a.data[e])))return console.warn("uncompressed snapshot data for key ".concat(e," is null")),null;if("undefined"===typeof t)return console.warn("uncompressed snapshot data for key ".concat(e," is undefined")),null}catch(o){console.warn("decompression of snapshot data for key ".concat(e," failed"),o),t=null}if("string"!==typeof t)return console.warn("uncompressed snapshot data for key ".concat(e," is not string")),{};try{n=JSON.parse(t)}catch(o){return console.warn("parsing snapshot data for key ".concat(e," failed")),{}}return Object(r.a)({},e,n)})).reduce((function(e,t){return Object(n.a)({},e,{},t)}),{});return Object(n.a)({},e,{snapshot:Object(n.a)({},a,{data:o})})})),b.on(p.n,(function(e,t){var a=t.alarm;return Object(n.a)({},e,{alarm:a})})),b.on(p.c,(function(e,t){var a=t.data;return Object(n.a)({},e,{chartsMetadata:Object(n.a)({},e.chartsMetadata,{data:a})})})),b.on(p.z,(function(e,t){var a=t.message;return Object(n.a)({},e,{userNodeAccess:a})}))},165:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(0),r=a.n(n),o=a(34),i=a.n(o),s=function(e){return{left:"fa-backward",reset:"fa-play",right:"fa-forward",zoomIn:"fa-plus",zoomOut:"fa-minus",resize:"fa-sort",lineChart:"fa-chart-line",areaChart:"fa-chart-area",noChart:"fa-chart-area",loading:"fa-sync-alt",noData:"fa-exclamation-triangle"}[e]},l=function(e){var t=e.iconType;return r.a.createElement("i",{className:i()("fas",s(t))})}},167:function(e,t,a){"use strict";a.d(t,"b",(function(){return f})),a.d(t,"a",(function(){return g}));var n=a(14),r=a(7),o=a(199),i=a(574),s=a(575),l=a(310),c=a(22),u=a(12),d=a(99),h=a(28),p=a(18),f={chartData:null,chartId:null,chartMetadata:null,chartPanAndZoom:null,fetchDataParams:{isRemotelyControlled:!1,viewRange:null},isFetchingData:!1,isFetchDataFailure:!1,isFetchDetailsFailure:!1,isFetchingDetails:!1,resizeHeight:null,snapshotDataIsFetching:!1,snapshotDataIsError:!1,snapshotData:null,viewRange:null},g=Object(c.createReducer)({},{}),m=function(e,t){return e[t]||f};g.on(p.c.request,(function(e,t){var a=t.chart,o=t.fetchDataParams,i=t.id;return Object(r.a)({},e,Object(n.a)({},i,Object(r.a)({},m(e,i),{chartId:a,isFetchingData:!0,viewRange:o.viewRange})))})),g.on(p.d,(function(e,t){var a=t.id;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{isFetchingData:!1})))})),g.on(p.c.failure,(function(e,t){var a=t.id;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{isFetchingData:!1,isFetchDataFailure:!0})))})),g.on(p.c.success,(function(e,t){var a=t.id,o=t.chartData,i=t.fetchDataParams,s=m(e,a);return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},s,{chartData:Object(h.g)(["dimension_names"],s.chartData,o),fetchDataParams:i,isFetchingData:!1,isFetchDataFailure:!1,viewRange:i.viewRange})))})),g.on(p.e.request,(function(e,t){var a=t.id;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{snapshotDataIsFetching:!0})))})),g.on(p.e.failure,(function(e,t){var a=t.id;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{snapshotDataIsFetching:!1,snapshotDataIsError:!0})))})),g.on(p.e.success,(function(e,t){var a=t.id,o=t.snapshotData;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{snapshotDataIsFetching:!1,snapshotDataIsError:!1,snapshotData:o})))})),g.on(p.j,(function(e){return Object(o.a)((function(e){return Object(r.a)({},e,{},Object(i.a)(["snapshotDataIsFetching","snapshotDataIsError","snapshotData"],f))}),e)})),g.on(p.b.request,(function(e,t){var a=t.id;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{isFetchingDetails:!0})))})),g.on(p.b.failure,(function(e,t){var a=t.id;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{isFetchDetailsFailure:!0})))})),g.on(p.b.success,(function(e,t){var a=t.id,o=t.chartMetadata;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{chartMetadata:o,isFetchingDetails:!1,isFetchDetailsFailure:!1})))})),g.on(p.i,(function(e,t){var a=t.id,o=t.resizeHeight;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{resizeHeight:o})))})),g.on(p.h,(function(e,t){var a=t.after,o=t.before,i=t.id,s=t.shouldForceTimeRange;return Object(r.a)({},e,Object(n.a)({},i,Object(r.a)({},m(e,i),{chartPanAndZoom:{after:a,before:o,shouldForceTimeRange:s}})))})),g.on(p.g,(function(e,t){var a=t.id;return Object(r.a)({},e,Object(n.a)({},a,Object(r.a)({},m(e,a),{chartPanAndZoom:f.chartPanAndZoom})))})),g.on(u.v,(function(e,t){var a=t.key,n=t.value;return a===d.a&&!0===n?Object(o.a)(Object(s.a)("chartPanAndZoom",f.chartPanAndZoom),e):e})),g.on(p.a,(function(e,t){var a=t.id;return Object(l.a)([a],e)}))},177:function(e,t,a){"use strict";a.d(t,"b",(function(){return d})),a.d(t,"a",(function(){return h}));var n=a(7),r=a(14),o=a(576),i=a(227),s=a(579),l=a(99),c=function(e,t,a){var n="data-".concat(t);if(e.hasAttribute(n)){var r=e.getAttribute(n);return"true"===r||"false"!==r&&("null"===r?null:r==="".concat(+r)?+r:/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/.test(r)?JSON.parse(r):r)}return a},u=function(e){return Object(o.a)((function(t){return"boolean"===t.type?function(e,t,a){var n=c(e,t,a);return!0===n||!1===n?n:"string"===typeof n?"yes"===n||"on"===n||""!==n&&"no"!==n&&"off"!==n&&"null"!==n&&a:"number"===typeof n?0!==n:a}(e,t.key,t.defaultValue):c(e,t.key,t.defaultValue)}),{id:{key:"netdata"},host:{key:"host"},httpMethod:{key:"http-method"},title:{key:"title"},chartLibrary:{key:"chart-library",defaultValue:window.NETDATA.chartDefaults.library},width:{key:"width",defaultValue:window.NETDATA.chartDefaults.width},height:{key:"height",defaultValue:window.NETDATA.chartDefaults.height},after:{key:"after"},before:{key:"before",defaultValue:window.NETDATA.chartDefaults.before},legend:{key:"legend",type:"boolean",defaultValue:!0},legendPosition:{key:"legend-position"},units:{key:"units"},unitsCommon:{key:"common-units"},unitsDesired:{key:"desired-units"},aggrMethod:{key:"aggr-method"},labels:{key:"labels"},postGroupBy:{key:"post-group-by"},postAggregationMethod:{key:"post-aggregation-method"},dimensionsAggrMethod:{key:"dimensions-aggr-method"},aggrGroups:{key:"aggrGroups"},selectedChart:{key:"selected-chart"},filteredRows:{key:"filtered-rows"},groupBy:{key:"group-by"},nodeIDs:{key:"node-ids"},colors:{key:"colors"},commonColors:{key:"common-colors"},decimalDigits:{key:"decimal-digits"},dimensions:{key:"dimensions"},selectedDimensions:{key:"selected-dimensions"},forceTimeWindow:{key:"force-time-window"},appendOptions:{key:"append-options"},gtime:{key:"gtime"},method:{key:"method"},overrideOptions:{key:"override-options"},pixelsPerPoint:{key:"pixels-per-point"},points:{key:"points"},heightId:{key:"id"},hideResizeHandler:{key:"hide-resize-handler"},detectResize:{key:"detect-resize"},commonMin:{key:"common-min"},commonMax:{key:"common-max"},dygraphType:{key:"dygraph-type"},dygraphValueRange:{key:"dygraph-valuerange"},dygraphTheme:{key:"dygraph-theme"},dygraphSmooth:{key:"dygraph-smooth",type:"boolean"},dygraphColors:{key:"dygraph-colors"},dygraphRightGap:{key:"dygraph-rightgap"},dygraphShowRangeSelector:{key:"dygraph-showrangeselector",type:"boolean"},dygraphShowRoller:{key:"dygraph-showroller",type:"boolean"},dygraphTitle:{key:"dygraph-title"},dygraphTitleHeight:{key:"dygraph-titleheight"},dygraphLegend:{key:"dygraph-legend"},dygraphLabelsDiv:{key:"dygraph-labelsdiv"},dygraphLabelsSeparateLine:{key:"dygraph-labelsseparatelines",type:"boolean"},dygraphIncludeZero:{key:"dygraph-includezero",type:"boolean"},dygraphShowZeroValues:{key:"dygraph-labelsshowzerovalues",type:"boolean"},dygraphShowLabelsOnHighLight:{key:"dygraph-showlabelsonhighlight",type:"boolean"},dygraphHideOverlayOnMouseOut:{key:"dygraph-hideoverlayonmouseout",type:"boolean"},dygraphXRangePad:{key:"dygraph-xrangepad"},dygraphYRangePad:{key:"dygraph-yrangepad"},dygraphYLabelWidth:{key:"dygraph-ylabelwidth"},dygraphStrokeWidth:{key:"dygraph-strokewidth"},dygraphStrokePattern:{key:"dygraph-strokepattern"},dygraphDrawPoints:{key:"dygraph-drawpoints",type:"boolean"},dygraphDrawGapEdgePoints:{key:"dygraph-drawgapedgepoints",type:"boolean"},dygraphConnectSeparatedPoints:{key:"dygraph-connectseparatedpoints",type:"boolean"},dygraphPointSize:{key:"dygraph-pointsize"},dygraphStepPlot:{key:"dygraph-stepplot",type:"boolean"},dygraphStrokeBorderColor:{key:"dygraph-strokebordercolor"},dygraphStrokeBorderWidth:{key:"dygraph-strokeborderwidth"},dygraphFillGraph:{key:"dygraph-fillgraph",type:"boolean"},dygraphFillAlpha:{key:"dygraph-fillalpha"},dygraphStackedGraph:{key:"dygraph-stackedgraph",type:"boolean"},dygraphStackedGraphNanFill:{key:"dygraph-stackedgraphnanfill"},dygraphAxisLabelFontSize:{key:"dygraph-axislabelfontsize"},dygraphAxisLineColor:{key:"dygraph-axislinecolor"},dygraphAxisLineWidth:{key:"dygraph-axislinewidth"},dygraphDrawGrid:{key:"dygraph-drawgrid",type:"boolean"},dygraphGridLinePattern:{key:"dygraph-gridlinepattern"},dygraphGridLineWidth:{key:"dygraph-gridlinewidth"},dygraphGridLineColor:{key:"dygraph-gridlinecolor"},dygraphMaxNumberWidth:{key:"dygraph-maxnumberwidth"},dygraphSigFigs:{key:"dygraph-sigfigs"},dygraphDigitsAfterDecimal:{key:"dygraph-digitsafterdecimal"},dygraphHighlighCircleSize:{key:"dygraph-highlightcirclesize"},dygraphHighlightSeriesOpts:{key:"dygraph-highlightseriesopts"},dygraphHighlightSeriesBackgroundAlpha:{key:"dygraph-highlightseriesbackgroundalpha"},dygraphXPixelsPerLabel:{key:"dygraph-xpixelsperlabel"},dygraphXAxisLabelWidth:{key:"dygraph-xaxislabelwidth"},dygraphDrawXAxis:{key:"dygraph-drawxaxis",type:"boolean"},dygraphYPixelsPerLabel:{key:"dygraph-ypixelsperlabel"},dygraphYAxisLabelWidth:{key:"dygraph-yaxislabelwidth"},dygraphDrawYAxis:{key:"dygraph-drawyaxis",type:"boolean"},dygraphDrawAxis:{key:"dygraph-drawaxis",type:"boolean"},easyPieChartMinValue:{key:"easypiechart-min-value"},easyPieChartMaxValue:{key:"easypiechart-max-value"},easyPieChartBarColor:{key:"easypiechart-barcolor"},easyPieChartTrackColor:{key:"easypiechart-trackcolor"},easyPieChartScaleColor:{key:"easypiechart-scalecolor"},easyPieChartScaleLength:{key:"easypiechart-scalelength"},easyPieChartLineCap:{key:"easypiechart-linecap"},easyPieChartLineWidth:{key:"easypiechart-linewidth"},easyPieChartTrackWidth:{key:"easypiechart-trackwidth"},easyPieChartSize:{key:"easypiechart-size"},easyPieChartRotate:{key:"easypiechart-rotate"},easyPieChartAnimate:{key:"easypiechart-animate"},easyPieChartEasing:{key:"easypiechart-easing"},gaugeMinValue:{key:"gauge-min-value"},gaugeMaxValue:{key:"gauge-max-value"},gaugePointerColor:{key:"gauge-pointer-color"},gaugeStrokeColor:{key:"gauge-stroke-color"},gaugeStartColor:{key:"gauge-start-color"},gaugeStopColor:{key:"gauge-stop-color"},gaugeGenerateGradient:{key:"gauge-generate-gradient"},sparklineType:{key:"sparkline-type"},sparklineLineColor:{key:"sparkline-linecolor"},sparklineFillColor:{key:"sparkline-fillcolor"},sparklineChartRangeMin:{key:"sparkline-chartrangemin"},sparklineChartRangeMax:{key:"sparkline-chartrangemax"},sparklineComposite:{key:"sparkline-composite"},sparklineEnableTagOptions:{key:"sparkline-enabletagoptions"},sparklineTagOptionPrefix:{key:"sparkline-tagoptionprefix"},sparklineTagValuesAttribute:{key:"sparkline-tagvaluesattribute"},sparklineDisableHiddenCheck:{key:"sparkline-disablehiddencheck"},sparklineDefaultPixelsPerValue:{key:"sparkline-defaultpixelspervalue"},sparklineSpotColor:{key:"sparkline-spotcolor"},sparklineMinSpotColor:{key:"sparkline-minspotcolor"},sparklineMaxSpotColor:{key:"sparkline-maxspotcolor"},sparklineSpotRadius:{key:"sparkline-spotradius"},sparklineValueSpots:{key:"sparkline-valuespots"},sparklineHighlightSpotColor:{key:"sparkline-highlightspotcolor"},sparklineHighlightLineColor:{key:"sparkline-highlightlinecolor"},sparklineLineWidth:{key:"sparkline-linewidth"},sparklineNormalRangeMin:{key:"sparkline-normalrangemin"},sparklineNormalRangeMax:{key:"sparkline-normalrangemax"},sparklineDrawNormalOnTop:{key:"sparkline-drawnormalontop"},sparklineXvalues:{key:"sparkline-xvalues"},sparklineChartRangeClip:{key:"sparkline-chartrangeclip"},sparklineChartRangeMinX:{key:"sparkline-chartrangeminx"},sparklineChartRangeMaxX:{key:"sparkline-chartrangemaxx"},sparklineDisableInteraction:{key:"sparkline-disableinteraction",type:"boolean"},sparklineDisableTooltips:{key:"sparkline-disabletooltips",type:"boolean"},sparklineOnHover:{key:"sparkline-on-hover"},sparklineDisableHighlight:{key:"sparkline-disablehighlight",type:"boolean"},sparklineHighlightLighten:{key:"sparkline-highlightlighten"},sparklineHighlightColor:{key:"sparkline-highlightcolor"},sparklineTooltipContainer:{key:"sparkline-tooltipcontainer"},sparklineTooltipClassname:{key:"sparkline-tooltipclassname"},sparklineTooltipFormat:{key:"sparkline-tooltipformat"},sparklineTooltipPrefix:{key:"sparkline-tooltipprefix"},sparklineTooltipSuffix:{key:"sparkline-tooltipsuffix"},sparklineTooltipSkipNull:{key:"sparkline-tooltipskipnull",type:"boolean"},sparklineTooltipValueLookups:{key:"sparkline-tooltipvaluelookups"},sparklineTooltipFormatFieldlist:{key:"sparkline-tooltipformatfieldlist"},sparklineTooltipFormatFieldlistKey:{key:"sparkline-tooltipformatfieldlistkey"},sparklineNumberFormatter:{key:"sparkline-numberformatter"},sparklineNumberDigitGroupSep:{key:"sparkline-numberdigitgroupsep"},sparklineNumberDecimalMark:{key:"sparkline-numberdecimalmark"},sparklineNumberDigitGroupCount:{key:"sparkline-numberdigitgroupcount"},sparklineAnimatedZooms:{key:"sparkline-animatedzooms",type:"boolean"},d3pieTitle:{key:"d3pie-title"},d3pieSubtitle:{key:"d3pie-subtitle"},d3pieFooter:{key:"d3pie-footer"},d3pieTitleColor:{key:"d3pie-title-color"},d3pieTitleFontsize:{key:"d3pie-title-fontsize"},d3pieTitleFontweight:{key:"d3pie-title-fontweight"},d3pieTitleFont:{key:"d3pie-title-font"},d3PieSubtitleColor:{key:"d3pie-subtitle-color"},d3PieSubtitleFontsize:{key:"d3pie-subtitle-fontsize"},d3PieSubtitleFontweight:{key:"d3pie-subtitle-fontweight"},d3PieSubtitleFont:{key:"d3pie-subtitle-font"},d3PieFooterColor:{key:"d3pie-footer-color"},d3PieFooterFontsize:{key:"d3pie-footer-fontsize"},d3PieFooterFontweight:{key:"d3pie-footer-fontweight"},d3PieFooterFont:{key:"d3pie-footer-font"},d3PieFooterLocation:{key:"d3pie-footer-location"},d3PiePieinnerradius:{key:"d3pie-pieinnerradius"},d3PiePieouterradius:{key:"d3pie-pieouterradius"},d3PieSortorder:{key:"d3pie-sortorder"},d3PieSmallsegmentgroupingEnabled:{key:"d3pie-smallsegmentgrouping-enabled",type:"boolean"},d3PieSmallsegmentgroupingValue:{key:"d3pie-smallsegmentgrouping-value"},d3PieSmallsegmentgroupingValuetype:{key:"d3pie-smallsegmentgrouping-valuetype"},d3PieSmallsegmentgroupingLabel:{key:"d3pie-smallsegmentgrouping-label"},d3PieSmallsegmentgroupingColor:{key:"d3pie-smallsegmentgrouping-color"},d3PieLabelsOuterFormat:{key:"d3pie-labels-outer-format"},d3PieLabelsOuterHidewhenlessthanpercentage:{key:"d3pie-labels-outer-hidewhenlessthanpercentage"},d3PieLabelsOuterPiedistance:{key:"d3pie-labels-outer-piedistance"},d3PieLabelsInnerFormat:{key:"d3pie-labels-inner-format"},d3PieLabelsInnerHidewhenlessthanpercentage:{key:"d3pie-labels-inner-hidewhenlessthanpercentage"},d3PieLabelsMainLabelColor:{key:"d3pie-labels-mainLabel-color"},d3PieLabelsMainLabelFont:{key:"d3pie-labels-mainLabel-font"},d3PieLabelsMainLabelFontsize:{key:"d3pie-labels-mainLabel-fontsize"},d3PieLabelsMainLabelFontweight:{key:"d3pie-labels-mainLabel-fontweight"},d3PieLabelsPercentageColor:{key:"d3pie-labels-percentage-color"},d3PieLabelsPercentageFont:{key:"d3pie-labels-percentage-font"},d3PieLabelsPercentageFontsize:{key:"d3pie-labels-percentage-fontsize"},d3PieLabelsPercentageFontweight:{key:"d3pie-labels-percentage-fontweight"},d3PieLabelsValueColor:{key:"d3pie-labels-value-color"},d3PieLabelsValueFont:{key:"d3pie-labels-value-font"},d3PieLabelsValueFontsize:{key:"d3pie-labels-value-fontsize"},d3PieLabelsValueFontweight:{key:"d3pie-labels-value-fontweight"},d3PieLabelsLinesEnabled:{key:"d3pie-labels-lines-enabled",type:"boolean"},d3PieLabelsLinesStyle:{key:"d3pie-labels-lines-style"},d3PieLabelsLinesColor:{key:"d3pie-labels-lines-color"},d3PieLabelsTruncationEnabled:{key:"d3pie-labels-truncation-enabled",type:"boolean"},d3PieLabelsTruncationTruncatelength:{key:"d3pie-labels-truncation-truncatelength"},d3PieMiscColorsSegmentstroke:{key:"d3pie-misc-colors-segmentstroke"},d3PieMiscGradientEnabled:{key:"d3pie-misc-gradient-enabled",type:"boolean"},d3PieMiscColorsPercentage:{key:"d3pie-misc-colors-percentage"},d3PieMiscGradientColor:{key:"d3pie-misc-gradient-color"},d3PieCssprefix:{key:"d3pie-cssprefix"},peityStrokeWidth:{key:"peity-strokewidth"},textOnlyDecimalPlaces:{key:"textonly-decimal-places"},textOnlyPrefix:{key:"textonly-prefix"},textOnlySuffix:{key:"textonly-suffix"}})},d=function(e){var t=u(e),a=function(e){var t=Array.from(e.attributes).filter((function(e){return e.name.startsWith("data-show-value-of")})).map((function(e){return Object(r.a)({},e.name.replace("data-",""),e.value)})),a=Object(i.a)(t);return Object(s.a)(a)?void 0:a}(e);return Object(n.a)({},t,{showValueOf:a})},h={legendPosition:l.d?"right":"bottom"}},18:function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"d",(function(){return s})),a.d(t,"e",(function(){return l})),a.d(t,"j",(function(){return c})),a.d(t,"b",(function(){return u})),a.d(t,"i",(function(){return d})),a.d(t,"h",(function(){return h})),a.d(t,"g",(function(){return p})),a.d(t,"a",(function(){return f})),a.d(t,"f",(function(){return g}));var n=a(22),r=a(92),o=a(45),i=(Object(n.createAction)("".concat(o.c,"/updateChartData")),Object(n.createAction)("".concat(o.c,"/updateChartMetadata")),Object(r.a)("".concat(o.c,"/fetchDataAction"))),s=Object(n.createAction)("".concat(o.c,"/fetchDataCancelAction")),l=Object(r.a)("".concat(o.c,"/fetchDataForSnapshotAction")),c=Object(r.a)("".concat(o.c,"/snapshotExportResetAction")),u=Object(r.a)("".concat(o.c,"/fetchChartAction")),d=Object(n.createAction)("".concat(o.c,"/setResizeHeight")),h=Object(n.createAction)("".concat(o.c,"/setChartPanAndZoom")),p=Object(n.createAction)("".concat(o.c,"/resetChartPanAndZoomAction")),f=Object(n.createAction)("".concat(o.c,"/clearChartStateAction")),g=Object(r.a)("".concat(o.c,"/fetchInfoAction"))},188:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n="sign_in_iframe"},225:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"b",(function(){return updateLocaleFunctions})),__webpack_require__.d(__webpack_exports__,"a",(function(){return netdataCallback}));var ramda__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(577),ramda__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(149),_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(12),_domains_global_selectors__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(9),_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(46),_utils_units_conversion__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(102),_domains_dashboard_actions__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(44),_domains_chart_actions__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(18),_domains_chart_selectors__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(39),_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(36),_utils_name_2_id__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(145),_utils_date_time__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(42),_utils__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(143),utils_hash_utils__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(64),_utils_is_demo__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(83),_domains_chart_utils_legend_utils__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__(56),_domains_chart_utils_transformDataAttributes__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__(177),_getHashParam,_getHashParam2,localeDateString,localeTimeString,updateLocaleFunctions=function(e){var t=e.localeDateString,a=e.localeTimeString;localeDateString=t,localeTimeString=a},netdataShowAlarms=!0,netdataRegistry=!0,netdataServer=void 0,netdataServerStatic=void 0,netdataCheckXSS=void 0,reduxStore;function escapeUserInputHTML(e){return e.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/#/g,"&#35;").replace(/'/g,"&#39;").replace(/\(/g,"&#40;").replace(/\)/g,"&#41;").replace(/\//g,"&#47;")}var setOption=function(e,t){reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.v)({key:e,value:t}))},getFromRegistry=function(e){var t=Object(_domains_global_selectors__WEBPACK_IMPORTED_MODULE_3__.x)(reduxStore.getState());return null===t||void 0===t?void 0:t[e]};function verifyURL(e){return"string"===typeof e&&(e.startsWith("http://")||e.startsWith("https://"))?e.replace(/'/g,"%22").replace(/"/g,"%27").replace(/\)/g,"%28").replace(/\(/g,"%29"):(console.log("invalid URL detected:"),console.log(e),'javascript:alert("invalid url");')}window.urlOptions={hash:"#",theme:null,help:null,mode:"live",update_always:!1,pan_and_zoom:!1,server:null,after:null!==(_getHashParam=Object(utils_hash_utils__WEBPACK_IMPORTED_MODULE_13__.a)("after"))&&void 0!==_getHashParam?_getHashParam:0,before:null!==(_getHashParam2=Object(utils_hash_utils__WEBPACK_IMPORTED_MODULE_13__.a)("before"))&&void 0!==_getHashParam2?_getHashParam2:0,highlight:!1,highlight_after:0,highlight_before:0,nowelcome:!1,show_alarms:!1,chart:null,family:null,alarm:null,utc:null,hasProperty:function(e){return"undefined"!==typeof this[e]},genHash:function(e){var t=urlOptions.hash;return t+=";after="+urlOptions.after.toString()+";before="+urlOptions.before.toString(),!0===urlOptions.highlight&&(t+=";highlight_after="+urlOptions.highlight_after.toString()+";highlight_before="+urlOptions.highlight_before.toString()),null!==urlOptions.theme&&(t+=";theme="+urlOptions.theme.toString()),null!==urlOptions.help&&(t+=";help="+urlOptions.help.toString()),!0===urlOptions.update_always&&(t+=";update_always=true"),!0===e&&null!==urlOptions.server&&(t+=";server="+urlOptions.server.toString()),"live"!==urlOptions.mode&&(t+=";mode="+urlOptions.mode),null!==urlOptions.utc&&(t+=";utc="+urlOptions.utc),t},parseHash:function(){for(var e=document.location.hash.split(";"),t=e.length;t--;)if(0!==t){var a=e[t].split("=");urlOptions.hasProperty(a[0])&&"undefined"!==typeof a[1]&&(urlOptions[a[0]]=decodeURIComponent(a[1]))}else e[t].length>0&&(urlOptions.hash=e[t]);var n=["nowelcome","show_alarms","update_always"];for(t=n.length;t--;)"true"===urlOptions[n[t]]||!0===urlOptions[n[t]]||"1"===urlOptions[n[t]]||1===urlOptions[n[t]]?urlOptions[n[t]]=!0:urlOptions[n[t]]=!1;var r=["after","before","highlight_after","highlight_before"];for(t=r.length;t--;)if("string"===typeof urlOptions[r[t]])try{urlOptions[r[t]]=parseInt(urlOptions[r[t]])}catch(i){console.log("failed to parse URL hash parameter "+r[t]),urlOptions[r[t]]=0}switch(null!==urlOptions.server&&""!==urlOptions.server?(netdataServerStatic=document.location.origin.toString()+document.location.pathname.toString(),netdataServer=urlOptions.server,netdataCheckXSS=!0):urlOptions.server=null,urlOptions.before>0&&urlOptions.after>0?(urlOptions.pan_and_zoom=!0,urlOptions.nowelcome=!0):urlOptions.pan_and_zoom=!1,urlOptions.highlight_before>0&&urlOptions.highlight_after>0?urlOptions.highlight=!0:urlOptions.highlight=!1,urlOptions.mode){case"print":if(urlOptions.theme="white",urlOptions.welcome=!1,urlOptions.help=!1,urlOptions.show_alarms=!1,!1===urlOptions.pan_and_zoom){urlOptions.pan_and_zoom=!0,urlOptions.before=Date.now();var o=urlOptions.after?1e3*urlOptions.after:-6e5;urlOptions.after=urlOptions.before+o}netdataShowAlarms=!1,netdataRegistry=!1;break;case"live":default:urlOptions.mode="live"}},hashUpdate:function(){history.replaceState(null,"",urlOptions.genHash(!0))},netdataPanAndZoomCallback:function(e,t,a){null===netdataSnapshotData&&(urlOptions.pan_and_zoom=e,urlOptions.after=t,urlOptions.before=a)},updateUtcParam:function(e){e&&(urlOptions.utc=e,urlOptions.hashUpdate())},netdataHighlightCallback:function(e,t,a){if(!0===e&&(null===t||null===a||t<=0||a<=0||t>=a)&&(e=!1,t=0,a=0),null===window.netdataSnapshotData?urlOptions.highlight=e:urlOptions.highlight=!1,urlOptions.highlight_after=Math.round(t),urlOptions.highlight_before=Math.round(a),urlOptions.hashUpdate(),!0===e&&t>0&&a>0&&t<a){var n=localeDateString(t),r=localeDateString(a);n===r&&(r=""),document.getElementById("navbar-highlight-content").innerHTML='<span class="navbar-highlight-bar highlight-tooltip" onclick="urlOptions.showHighlight();" title="restore the highlighted view" data-toggle="tooltip" data-placement="bottom">highlighted time-frame <b>'+n+" <code>"+localeTimeString(t)+"</code></b> to <b>"+r+" <code>"+localeTimeString(a)+"</code></b>, duration <b>"+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(Math.round((a-t)/1e3))+'</b></span><span class="navbar-highlight-button-right highlight-tooltip" onclick="urlOptions.clearHighlight();" title="clear the highlighted time-frame" data-toggle="tooltip" data-placement="bottom"><i class="fas fa-times"></i></span>',$(".navbar-highlight").show(),$(".navbar-highlight").width("80%"),$(".highlight-tooltip").tooltip({html:!0,delay:{show:500,hide:0},container:"body"})}else $(".navbar-highlight").hide(),$(".navbar-highlight").width("100%")},clearHighlight:function(){reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.d)())},showHighlight:function(){reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.b)())}},urlOptions.parseHash();var localStorageTested=-1;function localStorageTest(){if(-1!==localStorageTested)return localStorageTested;if("undefined"!==typeof Storage&&"object"===typeof localStorage){try{localStorage.setItem("test","test"),localStorage.removeItem("test"),localStorageTested=!0}catch(e){console.log(e),localStorageTested=!1}}else localStorageTested=!1;return localStorageTested}function loadLocalStorage(e){var t=null;try{!0===localStorageTest()?t=localStorage.getItem(e):console.log("localStorage is not available")}catch(a){return console.log(a),null}return"undefined"===typeof t||null===t?null:t}function saveLocalStorage(e,t){try{if(!0===localStorageTest())return localStorage.setItem(e,t.toString()),!0}catch(a){console.log(a)}return!1}function getTheme(e){if("print"===urlOptions.mode)return"white";var t=loadLocalStorage("netdataTheme");return"undefined"===typeof t||null===t||"undefined"===t?e:t}function setTheme(e){return"print"!==urlOptions.mode&&(e!==netdataTheme&&saveLocalStorage("netdataTheme",e))}window.netdataTheme=getTheme("slate"),NETDATA.updateTheme();var netdataShowHelp=!0;function naturalSortChunkify(e){for(var t,a,n=[],r=0,o=-1,i=0;t=(a=e.charAt(r++)).charCodeAt(0);){var s=t>=48&&t<=57;s!==i&&(n[++o]="",i=s),n[o]+=a}return n}function naturalSortCompare(e,t){for(var a=naturalSortChunkify(e.toLowerCase()),n=naturalSortChunkify(t.toLowerCase()),r=0;a[r]&&n[r];r++)if(a[r]!==n[r]){var o=Number(a[r]),i=Number(n[r]);return o.toString()===a[r]&&i.toString()===n[r]?o-i:a[r]>n[r]?1:-1}return a.length-n.length}function saveTextToClient(e,t){var a=new Blob([e],{type:"application/octet-stream"}),n=URL.createObjectURL(a),r=document.createElement("a");r.setAttribute("href",n),r.setAttribute("download",t);var o=document.getElementById("hiddenDownloadLinks");o.innerHTML="",o.appendChild(r),setTimeout((function(){o.removeChild(r),URL.revokeObjectURL(n)}),60),r.click()}function saveObjectToClient(e,t){saveTextToClient(JSON.stringify(e),t)}function netdataURL(e,t){return"undefined"===typeof e&&(e=""),-1!==e.indexOf("#")&&(e=e.substring(0,e.indexOf("#"))),e+urlOptions.genHash(t)}function netdataReload(e){document.location=verifyURL(netdataURL(e,!0)),location.reload()}null!==urlOptions.theme?(setTheme(urlOptions.theme),netdataTheme=urlOptions.theme,window.NETDATA.updateTheme()):urlOptions.theme=netdataTheme,null!==urlOptions.help?(saveLocalStorage("options.show_help",urlOptions.help),netdataShowHelp=urlOptions.help):urlOptions.help=loadLocalStorage("options.show_help"),window.gotoHostedModalHandler=function(e){return document.location=verifyURL(e+urlOptions.genHash()),!1};var gotoServerValidateRemaining=0,gotoServerMiddleClick=!1,gotoServerStop=!1;function gotoServerValidateUrl(e,t,a){var n=0,r="failed";document.location.toString().startsWith("http://")&&a.toString().startsWith("https://")?n=500:document.location.toString().startsWith("https://")&&a.toString().startsWith("http://")&&(r="can't check");var o=netdataURL(a);setTimeout((function(){document.getElementById("gotoServerList").innerHTML+='<tr><td style="padding-left: 20px;"><a href="'+verifyURL(o)+'" target="_blank">'+escapeUserInputHTML(a)+'</a></td><td style="padding-left: 30px;"><code id="'+t+"-"+e+'-status">checking...</code></td></tr>',NETDATA.registryHello(a,(function(n){if("undefined"!==typeof n&&null!==n&&"string"===typeof n.machine_guid&&n.machine_guid===t){if(document.getElementById(t+"-"+e+"-status").innerHTML="OK",!gotoServerStop)if(gotoServerStop=!0,gotoServerMiddleClick){window.open(verifyURL(o),"_blank"),gotoServerMiddleClick=!1;var i=getFromRegistry("registryMachines");document.getElementById("gotoServerResponse").innerHTML="<b>Opening new window to "+i[t].name+'<br/><a href="'+verifyURL(o)+'">'+escapeUserInputHTML(a)+"</a></b><br/>(check your pop-up blocker if it fails)"}else document.getElementById("gotoServerResponse").innerHTML+="found it! It is at:<br/><small>"+escapeUserInputHTML(a)+"</small>",document.location=verifyURL(o),$("#gotoServerModal").modal("hide")}else"undefined"!==typeof n&&null!==n&&"string"===typeof n.machine_guid&&n.machine_guid!==t&&(r="wrong machine"),document.getElementById(t+"-"+e+"-status").innerHTML=r,--gotoServerValidateRemaining<=0&&(gotoServerMiddleClick=!1,document.getElementById("gotoServerResponse").innerHTML="<b>Sorry! I cannot find any operational URL for this server</b>")}))}),50*e+n)}window.gotoServerModalHandler=function(e){gotoServerStop=!1;var t={},a=getFromRegistry("registryMachines"),n=a[e].alternateUrls.length,r=0;for(document.getElementById("gotoServerResponse").innerHTML="",document.getElementById("gotoServerList").innerHTML="",document.getElementById("gotoServerName").innerHTML=a[e].name,$("#gotoServerModal").modal("show"),gotoServerValidateRemaining=n;n--;){var o=a[e].alternateUrls[n];t[o]=!0,gotoServerValidateUrl(r++,e,o)}return setTimeout((function(){!1===gotoServerStop&&(document.getElementById("gotoServerResponse").innerHTML="<b>Added all the known URLs for this machine.</b>",NETDATA.registrySearch(e,getFromRegistry,(function(a){for(n=a.urls.length;n--;){var o=a.urls[n][1];"undefined"===typeof t[o]&&(gotoServerValidateRemaining++,t[o]=!0,gotoServerValidateUrl(r++,e,o))}})))}),2e3),!1},window.switchRegistryModalHandler=function(){document.getElementById("switchRegistryPersonGUID").value=getFromRegistry("personGuid"),document.getElementById("switchRegistryURL").innerHTML=getFromRegistry("registryServer"),document.getElementById("switchRegistryResponse").innerHTML="",$("#switchRegistryModal").modal("show")},window.notifyForSwitchRegistry=function(){var e=document.getElementById("switchRegistryPersonGUID").value;""!==e&&36===e.length?$.ajax({url:getFromRegistry("registryServer")+"/api/v1/registry?action=switch&machine="+getFromRegistry("machineGuid")+"&name="+encodeURIComponent(getFromRegistry("hostname"))+"&url="+encodeURIComponent(_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b)+"&to="+e,async:!0,cache:!1,headers:{"Cache-Control":"no-cache, no-store",Pragma:"no-cache"},xhrFields:{withCredentials:!0}}).done((function(e){"string"===typeof(e=NETDATA.xss.checkAlways("/api/v1/registry?action=switch",e)).status&&"ok"===e.status||(console.warn("Netdata registry server send invalid response to SWITCH",e),e=null),$("#switchRegistryModal").modal("hide")})).fail((function(){console.warn("Netdata registry SWITCH failed"),document.getElementById("switchRegistryResponse").innerHTML="<b>Sorry! The registry rejected your request.</b>"})):document.getElementById("switchRegistryResponse").innerHTML="<b>The ID you have entered is not a GUID.</b>"};var deleteRegistryGuid=null,deleteRegistryUrl=null;window.deleteRegistryModalHandler=function(e,t,a){deleteRegistryGuid=e,deleteRegistryUrl=a,document.getElementById("deleteRegistryServerName").innerHTML=t,document.getElementById("deleteRegistryServerName2").innerHTML=t,document.getElementById("deleteRegistryServerURL").innerHTML=a,document.getElementById("deleteRegistryResponse").innerHTML="",$("#deleteRegistryModal").modal("show")},window.notifyForDeleteRegistry=function(){var e=document.getElementById("deleteRegistryResponse");deleteRegistryUrl&&NETDATA.registryDelete(getFromRegistry,_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b,deleteRegistryUrl,(function(t){null!==t?(deleteRegistryUrl=null,$("#deleteRegistryModal").modal("hide"),reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.m)())):e.innerHTML="<b>Sorry, this command was rejected by the registry server!</b>"}))};var options={menus:{},submenu_names:{},data:null,hostname:"netdata_server",version:"unknown",release_channel:"unknown",hosts:[],duration:0,update_every:1,chartsPerRow:0,chartsHeight:180};function chartsPerRow(e){return 0===options.chartsPerRow?1:options.chartsPerRow}function prioritySort(e,t){return e.priority<t.priority?-1:e.priority>t.priority?1:naturalSortCompare(e.name,t.name)}function sortObjectByPriority(e){var t={},a=[];for(var n in e)e.hasOwnProperty(n)&&"undefined"===typeof t[n]&&(t[n]=e[n],a.push(n));return a.sort((function(e,a){return t[e].priority<t[a].priority?-1:t[e].priority>t[a].priority?1:naturalSortCompare(e,a)})),a}window.scrollToId=function(e){if(e&&""!==e&&null!==document.getElementById(e)){var t=$("#"+e).offset();"undefined"!==typeof t&&$("html, body").animate({scrollTop:t.top-30},0)}return!1},window.customDashboard={menu:{},submenu:{},context:{}};var netdataDashboard={sparklines_registry:{},os:"unknown",menu:{},submenu:{},context:{},sparkline:function(e,t,a,n,r){if(null===options.data||"undefined"===typeof options.data.charts)return"";if("undefined"===typeof options.data.charts[t])return"";if("undefined"===typeof options.data.charts[t].dimensions)return"";if("undefined"===typeof options.data.charts[t].dimensions[a])return"";var o=t+"."+a;return"undefined"===typeof n&&(n=""),"undefined"===typeof this.sparklines_registry[o]?this.sparklines_registry[o]={count:1}:this.sparklines_registry[o].count++,e+'<div class="netdata-container" data-netdata="'+t+'" data-width="25%" data-height="15px" data-chart-library="dygraph" data-dygraph-theme="sparkline" data-dimensions="'+a+'" data-show-value-of-'+a+'-at="'+(o=o+"."+this.sparklines_registry[o].count)+'"></div> (<span id="'+o+'" style="display: inline-block; min-width: 50px; text-align: right;">X</span>'+n+")"+r},gaugeChart:function(e,t,a,n){return"undefined"===typeof n&&(n=""),"undefined"===typeof a&&(a=""),'<div class="netdata-container" data-netdata="CHART_UNIQUE_ID" data-dimensions="'+a+'" data-chart-library="gauge" data-gauge-adjust="width" data-title="'+e+'" data-width="'+t+'" data-points="CHART_DURATION" data-colors="'+n+'" role="application"></div>'},anyAttribute:function(e,t,a,n){if("undefined"!==typeof e[a]){var r=e[a][t];return"undefined"===typeof r?n:"function"===typeof r?r(netdataDashboard.os):r}return n},menuTitle:function(e){return"undefined"!==typeof e.menu_pattern?(this.anyAttribute(this.menu,"title",e.menu_pattern,e.menu_pattern).toString()+"&nbsp;"+e.type.slice(-(e.type.length-e.menu_pattern.length-1)).toString()).replace(/_/g," "):this.anyAttribute(this.menu,"title",e.menu,e.menu).toString().replace(/_/g," ")},menuIcon:function(e){return"undefined"!==typeof e.menu_pattern?this.anyAttribute(this.menu,"icon",e.menu_pattern,'<i class="fas fa-puzzle-piece"></i>').toString():this.anyAttribute(this.menu,"icon",e.menu,'<i class="fas fa-puzzle-piece"></i>')},menuInfo:function(e){return"undefined"!==typeof e.menu_pattern?this.anyAttribute(this.menu,"info",e.menu_pattern,null):this.anyAttribute(this.menu,"info",e.menu,null)},menuHeight:function(e){return"undefined"!==typeof e.menu_pattern?this.anyAttribute(this.menu,"height",e.menu_pattern,1):this.anyAttribute(this.menu,"height",e.menu,1)},submenuTitle:function(e,t){var a=e+"."+t,n=this.anyAttribute(this.submenu,"title",a,t).toString().replace(/_/g," ");return n.length>28?n.substring(0,13)+"..."+n.substring(n.length-12,n.length):n},submenuInfo:function(e,t){var a=e+"."+t;return this.anyAttribute(this.submenu,"info",a,null)},submenuHeight:function(e,t,a){var n=e+"."+t;return this.anyAttribute(this.submenu,"height",n,1)*a},contextInfo:function(e){var t=this.anyAttribute(this.context,"info",e,null);return null!==t?'<div class="shorten dashboard-context-info netdata-chart-alignment" role="document">'+t+"</div>":""},contextValueRange:function(e){return"undefined"!==typeof this.context[e]&&"undefined"!==typeof this.context[e].valueRange?this.context[e].valueRange:"[null, null]"},contextHeight:function(e,t){return"undefined"!==typeof this.context[e]&&"undefined"!==typeof this.context[e].height?t*this.context[e].height:t},contextDecimalDigits:function(e,t){return"undefined"!==typeof this.context[e]&&"undefined"!==typeof this.context[e].decimalDigits?this.context[e].decimalDigits:t}};function enrichChartData(e){var t=e.type.split("_"),a=t[0];switch(a){case"ap":case"net":case"disk":case"powersupply":e.menu=a;break;case"apache":e.menu=e.type,t.length>2&&"cache"===t[1]?e.menu_pattern=a+"_"+t[1]:t.length>1&&(e.menu_pattern=a);break;case"bind":e.menu=e.type,t.length>2&&"rndc"===t[1]?e.menu_pattern=a+"_"+t[1]:t.length>1&&(e.menu_pattern=a);break;case"cgroup":e.menu=e.type,e.id.match(/.*[\._\/-:]qemu[\._\/-:]*/)||e.id.match(/.*[\._\/-:]kvm[\._\/-:]*/)?e.menu_pattern="cgqemu":e.menu_pattern="cgroup";break;case"go":e.menu=e.type,t.length>2&&"expvar"===t[1]?e.menu_pattern=a+"_"+t[1]:t.length>1&&(e.menu_pattern=a);break;case"mount":t.length>2?e.menu=a+"_"+t[1]:e.menu=a;break;case"isc":e.menu=e.type,t.length>2&&"dhcpd"===t[1]?e.menu_pattern=a+"_"+t[1]:t.length>1&&(e.menu_pattern=a);break;case"ovpn":e.menu=e.type,t.length>3&&"status"===t[1]&&"log"===t[2]?e.menu_pattern=a+"_"+t[1]:t.length>1&&(e.menu_pattern=a);break;case"smartd":case"web":e.menu=e.type,t.length>2&&"log"===t[1]?e.menu_pattern=a+"_"+t[1]:t.length>1&&(e.menu_pattern=a);break;case"dnsmasq":e.menu=e.type,2==t.length&&"dhcp"===t[1]?e.menu=a+"_"+t[1]:t.length>2&&"dhcp"===t[1]?e.menu_pattern=a+"_"+t[1]:t.length>1&&(e.menu_pattern=a);break;case"anomaly":t.length>=2&&t[1].startsWith("detection")&&(e.menu=a+"_detection");break;case"tc":if(e.menu=a,"tc.qos"===e.context&&("undefined"===typeof options.submenu_names[e.family]||options.submenu_names[e.family]===e.family)){var n=e.name.split(".")[1];n.endsWith("_in")?options.submenu_names[e.family]=n.slice(0,n.lastIndexOf("_in")):n.endsWith("_out")?options.submenu_names[e.family]=n.slice(0,n.lastIndexOf("_out")):n.startsWith("in_")?options.submenu_names[e.family]=n.slice(3,n.length):n.startsWith("out_")?options.submenu_names[e.family]=n.slice(4,n.length):options.submenu_names[e.family]=n}e.id.match(/.*-ifb$/)&&e.priority--;break;default:e.menu=e.type,t.length>1&&(e.menu_pattern=a)}e.submenu=e.family}function headMain(e,t,a){if("print"===urlOptions.mode)return"";var n="";return"undefined"!==typeof t["system.swap"]&&(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.swap" data-dimensions="used" data-append-options="percentage" data-chart-library="easypiechart" data-title="Used Swap" data-units="%" data-easypiechart-max-value="100" data-width="9%" data-points="'+a.toString()+'" data-colors="#DD4400" role="application"></div>'),"undefined"!==typeof t["system.io"]?(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.io" data-dimensions="in" data-chart-library="easypiechart" data-title="Disk Read" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.io.mainhead" role="application"></div>',n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.io" data-dimensions="out" data-chart-library="easypiechart" data-title="Disk Write" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.io.mainhead" role="application"></div>'):"undefined"!==typeof t["system.pgpgio"]&&(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.pgpgio" data-dimensions="in" data-chart-library="easypiechart" data-title="Disk Read" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.pgpgio.mainhead" role="application"></div>',n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.pgpgio" data-dimensions="out" data-chart-library="easypiechart" data-title="Disk Write" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.pgpgio.mainhead" role="application"></div>'),"undefined"!==typeof t["system.cpu"]&&(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.cpu" data-chart-library="gauge" data-title="CPU" data-units="%" data-gauge-max-value="100" data-width="20%" data-points="'+a.toString()+'" data-colors="'+NETDATA.colors[12]+'" role="application"></div>'),"undefined"!==typeof t["system.net"]?(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.net" data-dimensions="received" data-chart-library="easypiechart" data-title="Net Inbound" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.net.mainhead" role="application"></div>',n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.net" data-dimensions="sent" data-chart-library="easypiechart" data-title="Net Outbound" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.net.mainhead" role="application"></div>'):"undefined"!==typeof t["system.ip"]?(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.ip" data-dimensions="received" data-chart-library="easypiechart" data-title="IP Inbound" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.ip.mainhead" role="application"></div>',n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.ip" data-dimensions="sent" data-chart-library="easypiechart" data-title="IP Outbound" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.ip.mainhead" role="application"></div>'):"undefined"!==typeof t["system.ipv4"]?(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.ipv4" data-dimensions="received" data-chart-library="easypiechart" data-title="IPv4 Inbound" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.ipv4.mainhead" role="application"></div>',n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.ipv4" data-dimensions="sent" data-chart-library="easypiechart" data-title="IPv4 Outbound" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.ipv4.mainhead" role="application"></div>'):"undefined"!==typeof t["system.ipv6"]&&(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.ipv6" data-dimensions="received" data-chart-library="easypiechart" data-title="IPv6 Inbound" data-units="kbps" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.ipv6.mainhead" role="application"></div>',n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.ipv6" data-dimensions="sent" data-chart-library="easypiechart" data-title="IPv6 Outbound" data-units="kbps" data-width="11%" data-points="'+a.toString()+'" data-common-units="system.ipv6.mainhead" role="application"></div>'),"undefined"!==typeof t["system.ram"]&&(n+='<div class="netdata-container" style="margin-right: 10px;" data-netdata="system.ram" data-dimensions="used|buffers|active|wired" data-append-options="percentage" data-chart-library="easypiechart" data-title="Used RAM" data-units="%" data-easypiechart-max-value="100" data-width="9%" data-points="'+a.toString()+'" data-colors="'+NETDATA.colors[7]+'" role="application"></div>'),n}function generateHeadCharts(e,t,a){if("print"===urlOptions.mode)return"";var n="",r=netdataDashboard.anyAttribute(netdataDashboard.context,e,t.context,[]);if(r.length>0)for(var o=0,i=r.length;o<i;)"function"===typeof r[o]?n+=r[o](netdataDashboard.os,t.id).replace(/CHART_DURATION/g,a.toString()).replace(/CHART_UNIQUE_ID/g,t.id):n+=r[o].replace(/CHART_DURATION/g,a.toString()).replace(/CHART_UNIQUE_ID/g,t.id),o++;return n}function renderPage(e,t){var a=document.getElementById("charts_div"),n=Math.floor(100/chartsPerRow($(a).width())),r=60*Math.round($(a).width()*n/100*t.update_every/3/60);options.duration=r,options.update_every=t.update_every;for(var o,i,s,l="",c='<ul class="nav dashboard-sidenav" data-spy="affix" id="sidebar_ul">',u=headMain(netdataDashboard.os,t.charts,r),d=sortObjectByPriority(e),h=0,p=d.length,f="bottom"===_domains_chart_utils_transformDataAttributes__WEBPACK_IMPORTED_MODULE_16__.a.legendPosition,g=f?_domains_chart_utils_legend_utils__WEBPACK_IMPORTED_MODULE_15__.a:0;h<p;){var m=d[h++],b=NETDATA.name2id("menu_"+m);c+='<li class=""><a href="#'+b+'" onClick="return scrollToId(\''+b+"');\">"+e[m].icon+" "+e[m].title+'</a><ul class="nav">',l+='<div role="section" class="dashboard-section"><div role="sectionhead"><h1 id="'+b+'" role="heading">'+e[m].icon+" "+e[m].title+'</h1></div><div role="section" class="dashboard-subsection">',null!==e[m].info&&(l+=e[m].info);var v="",_='<div class="netdata-chart-row">'+u;u="";for(var y=sortObjectByPriority(e[m].submenus),O=0,x=y.length;O<x;){var w=y[O++],E=NETDATA.name2id("menu_"+m+"_submenu_"+w);c+='<li class><a href="#'+E+'" onClick="return scrollToId(\''+E+"');\">"+e[m].submenus[w].title+"</a></li>",v+='<div role="section" class="dashboard-section-container" id="'+E+'"><h2 id="'+E+'" class="netdata-chart-alignment" role="heading">'+e[m].submenus[w].title+"</h2>",null!==e[m].submenus[w].info&&(v+='<div class="dashboard-submenu-info netdata-chart-alignment" role="document">'+e[m].submenus[w].info+"</div>");var S='<div class="netdata-chart-row">',C="";e[m].submenus[w].charts.sort(prioritySort);for(var A=0,k=e[m].submenus[w].charts.length;A<k;){var j=e[m].submenus[w].charts[A++];_+=generateHeadCharts("mainheads",j,r),S+=generateHeadCharts("heads",j,r),"print"===urlOptions.mode&&(C+='<div role="row" class="dashboard-print-row">');var T=netdataDashboard.contextHeight(j.context,options.chartsHeight)+g;C+='<div class="netdata-chartblock-container" style="width: '+n.toString()+'%;">'+netdataDashboard.contextInfo(j.context)+'<div class="netdata-container" id="chart_'+NETDATA.name2id(j.id)+'" data-netdata="'+j.id+'" data-width="100%" data-height="'+T.toString()+'px" data-dygraph-valuerange="'+netdataDashboard.contextValueRange(j.context)+'" data-id="'+NETDATA.name2id(options.hostname+"/"+j.id)+'" data-colors="'+netdataDashboard.anyAttribute(netdataDashboard.context,"colors",j.context,"")+'" data-decimal-digits="'+netdataDashboard.contextDecimalDigits(j.context,-1)+'"'+(f?' data-legend-position="bottom"':"")+(o=j.family,i=j.context,s=j.units,"undefined"!==typeof netdataDashboard.anyAttribute(netdataDashboard.context,"commonMin",i,void 0)?' data-common-min="'+o+"/"+i+"/"+s+'"':"")+function(e,t,a){return"undefined"!==typeof netdataDashboard.anyAttribute(netdataDashboard.context,"commonMax",t,void 0)?' data-common-max="'+e+"/"+t+"/"+a+'"':""}(j.family,j.context,j.units)+' role="application"></div></div>',"print"===urlOptions.mode&&(C+="</div>")}v+=(S+="</div>")+C+"</div>"}c+="</ul></li>",l+=(_+="</div>")+v+'</div></div><hr role="separator"/>'}var D="dbengine"===t.memory_mode;c+='<li class="" style="padding-top:15px;"><a href="https://learn.netdata.cloud/docs/agent/collectors/quickstart/" target="_blank"><i class="fas fa-plus"></i> Add more charts</a></li>',c+='<li class=""><a href="https://learn.netdata.cloud/docs/agent/health/quickstart/" target="_blank"><i class="fas fa-plus"></i> Add more alarms</a></li>',c+='<li class="" style="margin:20px;color:#666;"><small>Every '+(1===t.update_every?"second":t.update_every.toString()+" seconds")+", Netdata collects <strong>"+t.dimensions_count.toLocaleString()+"</strong> metrics on "+t.hostname.toString()+", presents them in <strong>"+t.charts_count.toLocaleString()+"</strong> charts"+(D?"":",")+" and monitors them with <strong>"+t.alarms_count.toLocaleString()+"</strong> alarms.",D||(c+='<br />&nbsp;<br />Get more history by <a href="https://learn.netdata.cloud/guides/longer-metrics-storage#using-the-round-robin-database" target=_blank>configuring Netdata\'s <strong>history</strong></a> or switching to the <a href="https://learn.netdata.cloud/docs/agent/database/engine" target=_blank>database engine.</a>'),c+="<br/>&nbsp;<br/><strong>netdata</strong><br/>"+t.version.toString()+"</small>",c+="</li>",c+='<li id="sidebar-end-portal-container"></li>',c+="</ul>",a.innerHTML=l,document.getElementById("sidebar").innerHTML=c,!0===urlOptions.highlight&&reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.r)({after:urlOptions.highlight_after,before:urlOptions.highlight_before})),"print"===urlOptions.mode?printPage():finalizePage()}function renderChartsAndMenu(e){options.menus={},options.submenu_names={};var t,a=options.menus,n=e.charts;for(var r in n)if(n.hasOwnProperty(r)){var o=n[r];enrichChartData(o),"undefined"===typeof a[i=o.menu]?a[i]={menu_pattern:o.menu_pattern,priority:o.priority,submenus:{},title:netdataDashboard.menuTitle(o),icon:netdataDashboard.menuIcon(o),info:netdataDashboard.menuInfo(o),height:netdataDashboard.menuHeight(o)*options.chartsHeight}:("undefined"===typeof a[i].menu_pattern&&(a[i].menu_pattern=o.menu_pattern),o.priority<a[i].priority&&(a[i].priority=o.priority)),t="undefined"!==typeof a[i].menu_pattern?a[i].menu_pattern:i,"undefined"===typeof a[i].submenus[o.submenu]?a[i].submenus[o.submenu]={priority:o.priority,charts:[],title:null,info:netdataDashboard.submenuInfo(t,o.submenu),height:netdataDashboard.submenuHeight(t,o.submenu,a[i].height)}:o.priority<a[i].submenus[o.submenu].priority&&(a[i].submenus[o.submenu].priority=o.priority),a[i].submenus[o.submenu].charts.push(o)}for(var i in a)if(a.hasOwnProperty(i))for(var s in a[i].submenus)a[i].submenus.hasOwnProperty(s)&&("undefined"!==typeof options.submenu_names[s]?a[i].submenus[s].title=s+" ("+options.submenu_names[s]+")":(t="undefined"!==typeof a[i].menu_pattern?a[i].menu_pattern:i,a[i].submenus[s].title=netdataDashboard.submenuTitle(t,s)));renderPage(a,e)}window.netdataDashboard=netdataDashboard;var handleLoadJs=function(e,t,a){return e.catch((function(e){console.warn("error",e),alert("Cannot load required JS library: ".concat(t))})).then((function(){a()}))};function loadClipboard(e){handleLoadJs(__webpack_require__.e(8).then(__webpack_require__.bind(null,581)).then((function(e){window.clipboard=e})),"clipboard-polyfill",e)}function loadBootstrapTable(e){handleLoadJs(Promise.all([__webpack_require__.e(6).then(__webpack_require__.t.bind(null,582,7)).then((function(){return __webpack_require__.e(7).then(__webpack_require__.t.bind(null,583,7))})),__webpack_require__.e(10).then(__webpack_require__.t.bind(null,584,7))]),"bootstrap-table",e)}function loadBootstrapSlider(e){handleLoadJs(Promise.all([__webpack_require__.e(5).then(__webpack_require__.t.bind(null,585,7)).then((function(e){var t=e.default;window.Slider=t})),__webpack_require__.e(4).then(__webpack_require__.t.bind(null,586,7))]),"bootstrap-slider",e)}function loadLzString(e){handleLoadJs(__webpack_require__.e(9).then(__webpack_require__.t.bind(null,587,7)),"lz-string",e)}function loadPako(e){handleLoadJs(__webpack_require__.e(3).then(__webpack_require__.t.bind(null,588,7)).then((function(e){var t=e.default;window.pako=t})),"pako",e)}function alarmsUpdateModal(){var e='<h3>Raised Alarms</h3><table class="table">',t='<h3>All Running Alarms</h3><div class="panel-group" id="alarms_all_accordion" role="tablist" aria-multiselectable="true">',a='<hr/><a href="https://github.com/netdata/netdata/tree/master/src/web/api/badges#netdata-badges" target="_blank">netdata badges</a> refresh automatically. Their color indicates the state of the alarm: <span style="color: #e05d44"><b>&nbsp;red&nbsp;</b></span> is critical, <span style="color:#fe7d37"><b>&nbsp;orange&nbsp;</b></span> is warning, <span style="color: #4c1"><b>&nbsp;bright green&nbsp;</b></span> is ok, <span style="color: #9f9f9f"><b>&nbsp;light grey&nbsp;</b></span> is undefined (i.e. no data or no status), <span style="color: #000"><b>&nbsp;black&nbsp;</b></span> is not initialized. You can copy and paste their URLs to embed them in any web page.<br/>netdata can send notifications for these alarms. Check <a href="https://github.com/netdata/netdata/blob/master/src/health/notifications/health_alarm_notify.conf" target="_blank">this configuration file</a> for more information.';loadClipboard((function(){}));reduxStore.dispatch(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.e.request({callback:function(n){if(options.alarm_families=[],null!==n){var r,o,i,s=0,l=0,c={},u=[];for(r in n.alarms)if(n.alarms.hasOwnProperty(r)){o=(i=n.alarms[r]).family;var d=options.data.charts[i.chart];"undefined"===typeof d&&(d=options.data.charts_by_name[i.chart]),"undefined"===typeof d?(console.log("WARNING: alarm "+r+" is linked to chart "+i.chart+", which is not found in the list of chart got from the server."),d={priority:9999999}):"undefined"!==typeof d.menu&&"undefined"!==typeof d.submenu&&(o=d.menu+" - "+d.submenu),"undefined"===typeof c[o]&&(c[o]={name:o,arr:[],priority:d.priority},u.push(c[o])),d.priority<c[o].priority&&(c[o].priority=d.priority),c[o].arr.unshift(i)}for(var h=u.sort((function(e,t){return e.priority<t.priority?-1:e.priority>t.priority?1:naturalSortCompare(e.name,t.name)})),p=0,f=0,g=h.length;g--;){o=h[p++].name;var m=!1;0!==f&&(t+="</table></div></div></div>"),t+='<div class="panel panel-default"><div class="panel-heading" role="tab" id="alarm_all_heading_'+f.toString()+'"><h4 class="panel-title"><a class="collapsed" role="button" data-toggle="collapse" data-parent="#alarms_all_accordion" href="#alarm_all_'+f.toString()+'" aria-expanded="false" aria-controls="alarm_all_'+f.toString()+'">'+o.toString()+'</a></h4></div><div id="alarm_all_'+f.toString()+'" class="panel-collapse collapse " role="tabpanel" aria-labelledby="alarm_all_heading_'+f.toString()+'" data-alarm-id="'+f.toString()+'"><div class="panel-body" id="alarm_all_body_'+f.toString()+'">',options.alarm_families[f]=c[o],f++;for(var b=c[o].arr,v=b.length;v--;)"WARNING"!==(i=b[v]).status&&"CRITICAL"!==i.status||(m||(m=!0,e+='<tr><th class="text-center" colspan="2"><h4>'+o+"</h4></th></tr>"),s++,e+=x(i,!0)),l++}e+="</table>",h.length>0&&(t+="</div></div></div>"),t+="</div>",e+=s?a:'<div style="width:100%; height: 100px; text-align: center;"><span style="font-size: 50px;"><i class="fas fa-thumbs-up"></i></span><br/>Everything is normal. No raised alarms.</div>',t+=l?a:"<h4>No alarms are running in this system.</h4>",document.getElementById("alarms_active").innerHTML=e,document.getElementById("alarms_all").innerHTML=t,enableTooltipsAndPopovers(),h.length>0&&w(0);var _=$("#alarms_all_accordion");_.on("show.bs.collapse",(function(e){var t=$(e.target);w($(t).data("alarm-id"))})),_.on("hidden.bs.collapse",(function(e){var t=$(e.target),a=$(t).data("alarm-id");$("#alarm_all_"+a.toString()).html("")})),document.getElementById("alarms_log").innerHTML='<h3>Alarm Log</h3><table id="alarms_log_table"></table>',loadBootstrapTable((function(){$("#alarms_log_table").bootstrapTable({url:"".concat(_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b,"/api/v1/alarm_log?all"),cache:!1,pagination:!0,pageSize:10,showPaginationSwitch:!1,search:!0,searchTimeOut:300,searchAlign:"left",showColumns:!0,showExport:!0,exportDataType:"all",exportOptions:{fileName:"netdata_alarm_log"},onClickRow:function(e){return scrollToChartAfterHidingModal(e.chart,1e3*e.when,e.status),$("#alarmsModal").modal("hide"),!1},rowStyle:function(e){switch(e.status){case"CRITICAL":return{classes:"danger"};case"WARNING":return{classes:"warning"};case"UNDEFINED":return{classes:"info"};case"CLEAR":return{classes:"success"}}return{}},showFooter:!1,showHeader:!0,showRefresh:!0,showToggle:!1,sortable:!0,silentSort:!1,columns:[{field:"when",title:"Event Date",valign:"middle",titleTooltip:"The date and time the even took place",formatter:function(e,t,a){return O(e," ")},align:"center",switchable:!1,sortable:!0},{field:"hostname",title:"Host",valign:"middle",titleTooltip:"The host that generated this event",align:"center",visible:!1,sortable:!0},{field:"unique_id",title:"Unique ID",titleTooltip:"The host unique ID for this event",formatter:function(e,t,a){return y(e)},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"alarm_id",title:"Alarm ID",titleTooltip:"The ID of the alarm that generated this event",formatter:function(e,t,a){return y(e)},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"alarm_event_id",title:"Alarm Event ID",titleTooltip:"The incremental ID of this event for the given alarm",formatter:function(e,t,a){return y(e)},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"chart",title:"Chart",titleTooltip:"The chart the alarm is attached to",align:"center",valign:"middle",switchable:!1,sortable:!0},{field:"family",title:"Family",titleTooltip:"The family of the chart the alarm is attached to",align:"center",valign:"middle",visible:!1,sortable:!0},{field:"name",title:"Alarm",titleTooltip:"The alarm name that generated this event",formatter:function(e,t,a){return e.toString().replace(/_/g," ")},align:"center",valign:"middle",switchable:!1,sortable:!0},{field:"value_string",title:"Friendly Value",titleTooltip:"The value of the alarm, that triggered this event",align:"right",valign:"middle",sortable:!0},{field:"old_value_string",title:"Friendly Old Value",titleTooltip:"The value of the alarm, just before this event",align:"right",valign:"middle",visible:!1,sortable:!0},{field:"old_value",title:"Old Value",titleTooltip:"The value of the alarm, just before this event",formatter:function(e,t,a){return(null!==e?Math.round(100*e)/100:"NaN").toString()},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"value",title:"Value",titleTooltip:"The value of the alarm, that triggered this event",formatter:function(e,t,a){return(null!==e?Math.round(100*e)/100:"NaN").toString()},align:"right",valign:"middle",visible:!1,sortable:!0},{field:"units",title:"Units",titleTooltip:"The units of the value of the alarm",align:"left",valign:"middle",visible:!1,sortable:!0},{field:"old_status",title:"Old Status",titleTooltip:"The status of the alarm, just before this event",align:"center",valign:"middle",visible:!1,sortable:!0},{field:"status",title:"Status",titleTooltip:"The status of the alarm, that was set due to this event",align:"center",valign:"middle",switchable:!1,sortable:!0},{field:"duration",title:"Last Duration",titleTooltip:"The duration the alarm was at its previous state, just before this event",formatter:function(e,t,a){return Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e,{negative_suffix:"",space:" ",now:"no time"})},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"non_clear_duration",title:"Raised Duration",titleTooltip:"The duration the alarm was raised, just before this event",formatter:function(e,t,a){return Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e,{negative_suffix:"",space:" ",now:"no time"})},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"recipient",title:"Recipient",titleTooltip:"The recipient of this event",align:"center",valign:"middle",visible:!1,sortable:!0},{field:"processed",title:"Processed Status",titleTooltip:"True when this event is processed",formatter:function(e,t,a){return!0===e?"DONE":"PENDING"},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"updated",title:"Updated Status",titleTooltip:"True when this event has been updated by another event",formatter:function(e,t,a){return!0===e?"UPDATED":"CURRENT"},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"updated_by_id",title:"Updated By ID",titleTooltip:"The unique ID of the event that obsoleted this one",formatter:function(e,t,a){return y(e)},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"updates_id",title:"Updates ID",titleTooltip:"The unique ID of the event obsoleted because of this event",formatter:function(e,t,a){return y(e)},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"exec",title:"Script",titleTooltip:"The script to handle the event notification",align:"center",valign:"middle",visible:!1,sortable:!0},{field:"exec_run",title:"Script Run At",titleTooltip:"The date and time the script has been ran",formatter:function(e,t,a){return O(e," ")},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"exec_code",title:"Script Return Value",titleTooltip:"The return code of the script",formatter:function(e,t,a){return 0===e?"OK (returned 0)":"FAILED (with code "+e.toString()+")"},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"delay",title:"Script Delay",titleTooltip:"The hysteresis of the notification",formatter:function(e,t,a){return Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e,{negative_suffix:"",space:" ",now:"no time"})},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"delay_up_to_timestamp",title:"Script Delay Run At",titleTooltip:"The date and time the script should be run, after hysteresis",formatter:function(e,t,a){return O(e," ")},align:"center",valign:"middle",visible:!1,sortable:!0},{field:"info",title:"Description",titleTooltip:"A short description of the alarm",align:"center",valign:"middle",visible:!1,sortable:!0},{field:"source",title:"Alarm Source",titleTooltip:"The source of configuration of the alarm",align:"center",valign:"middle",visible:!1,sortable:!0}]})}))}else document.getElementById("alarms_active").innerHTML=document.getElementById("alarms_all").innerHTML=document.getElementById("alarms_log").innerHTML="failed to load alarm data!";function y(e){return 0===e?"-":e.toString()}function O(e,t){if(0===e)return"-";"undefined"===typeof t&&(t="&nbsp;");var a=new Date(1e3*e);return a.toLocaleDateString()+t+a.toLocaleTimeString()}function x(e,t){var a=options.data.charts[e.chart];if("undefined"===typeof a&&"undefined"===typeof(a=options.data.charts_by_name[e.chart]))return console.log("Cannot find chart "+e.chart+", you probably need to refresh the page."),"";var n="undefined"!==typeof e.warn||"undefined"!==typeof e.crit,r="".concat(_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b,"/api/v1/badge.svg?chart=").concat(e.chart,"&alarm=").concat(e.name,"&refresh=auto"),o="<br/>&nbsp;<br/>role: <b>"+e.recipient+'</b><br/>&nbsp;<br/><div class="action-button ripple" title="click to scroll the dashboard to the chart of this alarm" data-toggle="tooltip" data-placement="bottom" onClick="scrollToChartAfterHidingModal(\''+e.chart+"', "+1e3*e.last_status_change+", '"+e.status+'\'); $(\'#alarmsModal\').modal(\'hide\'); return false;"><i class="fab fa-periscope"></i></div><div class="action-button ripple" title="click to copy to the clipboard the URL of this badge" data-toggle="tooltip" data-placement="bottom" onClick="clipboardCopy(\''+r+'\'); return false;"><i class="far fa-copy"></i></div><div class="action-button ripple" title="click to copy to the clipboard an auto-refreshing <code>embed</code> html element for this badge" data-toggle="tooltip" data-placement="bottom" onClick="clipboardCopyBadgeEmbed(\''+r+'\'); return false;"><i class="fas fa-copy"></i></div>',i='<tr><td class="text-center" style="vertical-align: middle; word-break: break-word;" width="40%"><b>'+e.chart+'</b><br/>&nbsp;<br/><embed src="'+r+'" type="image/svg+xml" height="20"/><br/>&nbsp;<br/><span style="font-size: 18px;">'+e.info+"</span>"+o+'</td><td><table class="table">'+("undefined"!==typeof e.warn?'<tr><td width="10%" style="text-align:right">warning&nbsp;when</td><td><span style="font-family: monospace; color:#fe7d37; font-weight: bold;">'+e.warn+"</span></td></tr>":"")+("undefined"!==typeof e.crit?'<tr><td width="10%" style="text-align:right">critical&nbsp;when</td><td><span style="font-family: monospace; color: #e05d44; font-weight: bold;">'+e.crit+"</span></td></tr>":"");if(!0===t){var s=a.units;"%"===s&&(s="&#37;"),i+=("undefined"!==typeof e.lookup_after?'<tr><td width="10%" style="text-align:right">db&nbsp;lookup</td><td>'+function(e,t){var a=" of all values ";return t.dimensions.length>1&&(a=" of the sum of all dimensions "),"undefined"!==typeof e.lookup_dimensions&&(a=e.lookup_dimensions.replace(/|/g,",").split(",").length>1?"of the sum of dimensions <code>"+e.lookup_dimensions+"</code> ":"of all values of dimension <code>"+e.lookup_dimensions+"</code> "),"<code>"+e.lookup_method+"</code> "+a+", of chart <code>"+e.chart+"</code>, starting <code>"+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.lookup_after+e.lookup_before,{space:"&nbsp;"})+"</code> and up to <code>"+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.lookup_before,{space:"&nbsp;"})+"</code>"+(e.lookup_options?", with options <code>"+e.lookup_options.replace(/ /g,",&nbsp;")+"</code>":"")+"."}(e,a)+"</td></tr>":"")+("undefined"!==typeof e.calc?'<tr><td width="10%" style="text-align:right">calculation</td><td><span style="font-family: monospace;">'+e.calc+"</span></td></tr>":"")+(null!==a.green?'<tr><td width="10%" style="text-align:right">green&nbsp;threshold</td><td><code>'+a.green+" "+s+"</code></td></tr>":"")+(null!==a.red?'<tr><td width="10%" style="text-align:right">red&nbsp;threshold</td><td><code>'+a.red+" "+s+"</code></td></tr>":"")}e.warn_repeat_every>0&&(i+='<tr><td width="10%" style="text-align:right">repeat&nbsp;warning</td><td>'+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.warn_repeat_every)+"</td></tr>"),e.crit_repeat_every>0&&(i+='<tr><td width="10%" style="text-align:right">repeat&nbsp;critical</td><td>'+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.crit_repeat_every)+"</td></tr>");var l="";return(e.delay_up_duration>0||e.delay_down_duration>0)&&0!==e.delay_multiplier&&e.delay_max_duration>0&&(e.delay_up_duration===e.delay_down_duration?l+="<small><br/>hysteresis "+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.delay_up_duration,{space:"&nbsp;",negative_suffix:""}):(l="<small><br/>hysteresis ",e.delay_up_duration>0&&(l+="on&nbsp;escalation&nbsp;<code>"+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.delay_up_duration,{space:"&nbsp;",negative_suffix:""})+"</code>, "),e.delay_down_duration>0&&(l+="on&nbsp;recovery&nbsp;<code>"+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.delay_down_duration,{space:"&nbsp;",negative_suffix:""})+"</code>, ")),1!==e.delay_multiplier&&(l+="multiplied&nbsp;by&nbsp;<code>"+e.delay_multiplier.toString()+"</code>",l+=",&nbsp;up&nbsp;to&nbsp;<code>"+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.delay_max_duration,{space:"&nbsp;",negative_suffix:""})+"</code>"),l+="</small>"),i+='<tr><td width="10%" style="text-align:right">check&nbsp;every</td><td>'+Object(_domains_chart_utils_seconds4human__WEBPACK_IMPORTED_MODULE_4__.a)(e.update_every,{space:"&nbsp;",negative_suffix:""})+"</td></tr>"+(!0===n?'<tr><td width="10%" style="text-align:right">execute</td><td><span style="font-family: monospace;">'+e.exec+"</span>"+l+"</td></tr>":"")+'<tr><td width="10%" style="text-align:right">source</td><td><span style="font-family: monospace; word-break: break-word;">'+e.source+"</span></td></tr></table></td></tr>"}function w(e){for(var t='<table class="table">',a=options.alarm_families[e],n=a.arr.length;n--;){t+=x(a.arr[n],!0)}t+="</table>",$("#alarm_all_"+e.toString()).html(t),enableTooltipsAndPopovers()}},serverDefault:_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b}))}function initializeDynamicDashboardWithData(e){if(null!==e){options.hostname=e.hostname,options.data=e,options.version=e.version,options.release_channel=e.release_channel,options.timezone=e.timezone,netdataDashboard.os=e.os,"undefined"!==typeof e.hosts&&(options.hosts=e.hosts),document.getElementById("netdataVersion").innerHTML=options.version,document.title=options.hostname+" netdata dashboard",e.charts_by_name={};var t,a=e.charts;for(t in a)if(a.hasOwnProperty(t)){var n=a[t];e.charts_by_name[n.name]=n}renderChartsAndMenu(e)}}window.clipboardCopy=function(e){clipboard.writeText(e)},window.clipboardCopyBadgeEmbed=function(e){clipboard.writeText('<embed src="'+e+'" type="image/svg+xml" height="20"/>')};var initializeConfig={url:null,custom_info:!0},loadDashboardInfo=Object(ramda__WEBPACK_IMPORTED_MODULE_0__.a)(ramda__WEBPACK_IMPORTED_MODULE_1__.a,(function(){return $.ajax({url:"".concat(_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b,"dashboard_info.js"),cache:!0,dataType:"script",xhrFields:{withCredentials:!0}}).fail((function(){alert("Cannot load required JS library: dashboard_info.js")}))}));function loadCustomDashboardInfo(e,t){$.ajax({url:e,cache:!0,dataType:"script",xhrFields:{withCredentials:!0}}).fail((function(){alert("Cannot load required JS library: ".concat(e))})).always((function(){$.extend(!0,netdataDashboard,customDashboard),t()}))}function initializeChartsAndCustomInfo(){loadDashboardInfo().then((function(){NETDATA.chartRegistry.downloadAll(initializeConfig.url,(function(e){null!==e&&(reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.c)({data:e})),!0===initializeConfig.custom_info&&"undefined"!==typeof e.custom_info&&""!==e.custom_info&&null===window.netdataSnapshotData?loadCustomDashboardInfo(_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b+e.custom_info,(function(){initializeDynamicDashboardWithData(e)})):initializeDynamicDashboardWithData(e))}))}))}function initializeDynamicDashboard(e){e&&(reduxStore=e,netdataPrepCallback(),initializeConfig.url=_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b),"undefined"!==typeof netdataCheckXSS&&!0===netdataCheckXSS?(document.getElementById("netdataXssModalServer").innerText=initializeConfig.url,$("#xssModal").modal("show")):initializeChartsAndCustomInfo()}function versionLog(e){document.getElementById("versionCheckLog").innerHTML=e}function versionsMatch(e,t){if(e==t)return!0;var a=e.split("."),n=t.split("."),r=parseInt(a[0].substring(1,2),10),o=parseInt(n[0].substring(1,2),10);return!(r<o)&&(r>o||!((r=parseInt(a[1],10))<(o=parseInt(n[1],10)))&&(r>o||(a=a[2].split("-"),n=n[2].split("-"),!((r=parseInt(a[0],10))<(o=parseInt(n[0],10)))&&(r>o||!((r=a.length>1?parseInt(a[1],10):0)<(o=n.length>1?parseInt(n[1],10):0))))))}function getGithubLatestVersion(e,t){var a;versionLog("Downloading latest version id from github..."),a="stable"===t?"https://api.github.com/repos/netdata/netdata/releases/latest":"https://api.github.com/repos/netdata/netdata-nightlies/releases/latest",$.ajax({url:a,async:!0,cache:!1}).done((function(t){versionLog("Latest stable version from github is "+(t=t.tag_name.replace(/(\r\n|\n|\r| |\t)/gm,""))),e(t)})).fail((function(){versionLog("Failed to download the latest stable version id from github!"),e(null)}))}function checkForUpdateByVersion(e,t){return getGithubLatestVersion((function(e){t(options.version,e)}),options.release_channel),null}function showPageFooter(){document.getElementById("footer").style.display="block"}function printPage(){window.NETDATA.parseDom(),urlOptions.after<0?reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.q)({after:urlOptions.after})):!0===urlOptions.pan_and_zoom&&reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.s)({after:urlOptions.after,before:urlOptions.before})),showPageFooter()}function jsonStringifyFn(e){return JSON.stringify(e,(function(e,t){return"function"===typeof t?t.toString():t}))}function jsonParseFn(str){return JSON.parse(str,(function(key,value){return"string"!=typeof value?value:"function"==value.substring(0,8)?eval("("+value+")"):value}))}window.xssModalDisableXss=function(){return NETDATA.xss.enabled=!1,NETDATA.xss.enabled_for_data=!1,initializeConfig.custom_info=!0,initializeChartsAndCustomInfo(),!1},window.xssModalKeepXss=function(){return NETDATA.xss.enabled=!0,NETDATA.xss.enabled_for_data=!0,initializeConfig.custom_info=!1,initializeChartsAndCustomInfo(),!1},window.notifyForUpdate=function(e){versionLog("<p>checking for updates...</p>");var t=Date.now();if("undefined"===typeof e||!0!==e){var a=loadLocalStorage("last_update_check");if(a="string"===typeof a?parseInt(a):0,t-a<288e5)return}checkForUpdateByVersion(e,(function(e,a){var n=!1;if(null===e)n=!1,versionLog('<p><big>Failed to get your netdata version!</big></p><p>You can always get the latest netdata from <a href="https://github.com/netdata/netdata" target="_blank">its github page</a>.</p>');else if(null===a)n=!1,versionLog('<p><big>Failed to get the latest netdata version.</big></p><p>You can always get the latest netdata from <a href="https://github.com/netdata/netdata" target="_blank">its github page</a>.</p>');else if(versionsMatch(e,a))n=!0,versionLog('<p><big>You already have the latest netdata!</big></p><p>No update yet?<br/>We probably need some motivation to keep going on!</p><p>If you haven\'t already, <a href="https://github.com/netdata/netdata" target="_blank">give netdata a <b><i class="fas fa-star"></i></b> at its github page</a>.</p>');else{n=!0;versionLog("<p><big><strong>New version of netdata available!</strong></big></p><p>Latest version: <b><code>"+a+'</code></b></p><p><a href="https://learn.netdata.cloud/docs/agent/changelog/" target="_blank">Click here for the changes log</a> and<br/><a href="https://github.com/netdata/netdata/tree/master/packaging/installer/UPDATE.md" target="_blank">click here for directions on updating</a> your netdata installation.</p><p>We suggest to review the changes log for new features you may be interested, or important bug fixes you may need.<br/>Keeping your netdata updated is generally a good idea.</p>')}n&&saveLocalStorage("last_update_check",t.toString())}))},window.printPreflight=function(){var e=document.location.origin.toString()+document.location.pathname.toString()+document.location.search.toString()+urlOptions.genHash()+";mode=print",t=90*screen.height/100;window.open(e,"","width="+990..toString()+",height="+t.toString()+",menubar=no,toolbar=no,personalbar=no,location=no,resizable=no,scrollbars=yes,status=no,chrome=yes,centerscreen=yes,attention=yes,dialog=yes"),$("#printPreflightModal").modal("hide")};var snapshotOptions={bytes_per_chart:2048,compressionDefault:"pako.deflate.base64",compressions:{none:{bytes_per_point_memory:5.2,bytes_per_point_disk:5.6,compress:function(e){return e},compressed_length:function(e){return e.length},uncompress:function(e){return e}},"pako.deflate.base64":{bytes_per_point_memory:1.8,bytes_per_point_disk:1.9,compress:function(e){return btoa(pako.deflate(e,{to:"string"}))},compressed_length:function(e){return e.length},uncompress:function(e){return pako.inflate(atob(e),{to:"string"})}},"pako.deflate":{bytes_per_point_memory:1.4,bytes_per_point_disk:3.2,compress:function(e){return pako.deflate(e,{to:"string"})},compressed_length:function(e){return e.length},uncompress:function(e){return pako.inflate(e,{to:"string"})}},"lzstring.utf16":{bytes_per_point_memory:1.7,bytes_per_point_disk:2.6,compress:function(e){return LZString.compressToUTF16(e)},compressed_length:function(e){return 2*e.length},uncompress:function(e){return LZString.decompressFromUTF16(e)}},"lzstring.base64":{bytes_per_point_memory:2.1,bytes_per_point_disk:2.3,compress:function(e){return LZString.compressToBase64(e)},compressed_length:function(e){return e.length},uncompress:function(e){return LZString.decompressFromBase64(e)}},"lzstring.uri":{bytes_per_point_memory:2.1,bytes_per_point_disk:2.3,compress:function(e){return LZString.compressToEncodedURIComponent(e)},compressed_length:function(e){return e.length},uncompress:function(e){return LZString.decompressFromEncodedURIComponent(e)}}}};function loadSnapshotModalLog(e,t){document.getElementById("loadSnapshotStatus").className="alert alert-"+e,document.getElementById("loadSnapshotStatus").innerHTML=t}var tmpSnapshotData=null;function loadSnapshotPreflightFile(e){var t=NETDATA.xss.string(e.name),a=new FileReader;a.onload=function(e){document.getElementById("loadSnapshotFilename").innerHTML=t;var a=null;try{a=NETDATA.xss.checkAlways("snapshot",JSON.parse(e.target.result),/^(snapshot\.info|snapshot\.data)$/);var n=new Date(a.after_ms),r=new Date(a.before_ms);"undefined"===typeof a.charts_ok&&(a.charts_ok="unknown"),"undefined"===typeof a.charts_failed&&(a.charts_failed=0),"undefined"===typeof a.compression&&(a.compression="none"),"undefined"===typeof a.data_size&&(a.data_size=0),document.getElementById("loadSnapshotFilename").innerHTML="<code>"+t+"</code>",document.getElementById("loadSnapshotHostname").innerHTML="<b>"+a.hostname+"</b>, netdata version: <b>"+a.netdata_version.toString()+"</b>",document.getElementById("loadSnapshotURL").innerHTML=a.url,document.getElementById("loadSnapshotCharts").innerHTML=a.charts.charts_count.toString()+" charts, "+a.charts.dimensions_count.toString()+" dimensions, "+a.data_points.toString()+" points per dimension, "+Math.round(a.duration_ms/a.data_points).toString()+" ms per point",document.getElementById("loadSnapshotInfo").innerHTML="version: <b>"+a.snapshot_version.toString()+"</b>, includes <b>"+a.charts_ok.toString()+"</b> unique chart data queries "+(a.charts_failed>0?"<b>"+a.charts_failed.toString()+"</b> failed":"").toString()+", compressed with <code>"+a.compression.toString()+"</code>, data size "+(Math.round(100*a.data_size/1024/1024)/100).toString()+" MB",document.getElementById("loadSnapshotTimeRange").innerHTML="<b>"+localeDateString(n)+" "+localeTimeString(n)+"</b> to <b>"+localeDateString(r)+" "+localeTimeString(r)+"</b>",document.getElementById("loadSnapshotComments").innerHTML=(a.comments?a.comments:"").toString(),loadSnapshotModalLog("success","File loaded, click <b>Import</b> to render it!"),$("#loadSnapshotImport").removeClass("disabled"),tmpSnapshotData=a}catch(e){console.log(e),document.getElementById("loadSnapshotStatus").className="alert alert-danger",document.getElementById("loadSnapshotStatus").innerHTML="Failed to parse this file!",$("#loadSnapshotImport").addClass("disabled")}},a.readAsText(e)}function loadSnapshotPreflightEmpty(){document.getElementById("loadSnapshotFilename").innerHTML="",document.getElementById("loadSnapshotHostname").innerHTML="",document.getElementById("loadSnapshotURL").innerHTML="",document.getElementById("loadSnapshotCharts").innerHTML="",document.getElementById("loadSnapshotInfo").innerHTML="",document.getElementById("loadSnapshotTimeRange").innerHTML="",document.getElementById("loadSnapshotComments").innerHTML="",loadSnapshotModalLog("success","Browse for a snapshot file (or drag it and drop it here), then click <b>Import</b> to render it."),$("#loadSnapshotImport").addClass("disabled")}window.loadSnapshot=function(){if($("#loadSnapshotImport").addClass("disabled"),null===tmpSnapshotData)return loadSnapshotPreflightEmpty(),void loadSnapshotModalLog("danger","no data have been loaded");loadPako((function(){loadLzString((function(){if(loadSnapshotModalLog("info","Please wait, activating snapshot..."),$("#loadSnapshotModal").modal("hide"),netdataShowAlarms=!1,netdataRegistry=!1,netdataServer=tmpSnapshotData.server,document.getElementById("charts_div").innerHTML="",document.getElementById("sidebar").innerHTML="","undefined"!==typeof tmpSnapshotData.hash?urlOptions.hash=tmpSnapshotData.hash:urlOptions.hash="#","undefined"!==typeof tmpSnapshotData.info){var e=jsonParseFn(tmpSnapshotData.info);"undefined"!==typeof e.menu&&(netdataDashboard.menu=e.menu),"undefined"!==typeof e.submenu&&(netdataDashboard.submenu=e.submenu),"undefined"!==typeof e.context&&(netdataDashboard.context=e.context)}"string"!==typeof tmpSnapshotData.compression&&(tmpSnapshotData.compression="none"),"undefined"===typeof snapshotOptions.compressions[tmpSnapshotData.compression]&&(alert("unknown compression method: "+tmpSnapshotData.compression),tmpSnapshotData.compression="none"),tmpSnapshotData.uncompress=snapshotOptions.compressions[tmpSnapshotData.compression].uncompress,window.NETDATA.parseDom(),reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.g)({snapshot:tmpSnapshotData})),window.netdataSnapshotData=tmpSnapshotData,urlOptions.after=tmpSnapshotData.after_ms,urlOptions.before=tmpSnapshotData.before_ms,"undefined"!==typeof tmpSnapshotData.highlight_after_ms&&null!==tmpSnapshotData.highlight_after_ms&&tmpSnapshotData.highlight_after_ms>0&&"undefined"!==typeof tmpSnapshotData.highlight_before_ms&&null!==tmpSnapshotData.highlight_before_ms&&tmpSnapshotData.highlight_before_ms>0?(urlOptions.highlight_after=tmpSnapshotData.highlight_after_ms,urlOptions.highlight_before=tmpSnapshotData.highlight_before_ms,urlOptions.highlight=!0):(urlOptions.highlight_after=0,urlOptions.highlight_before=0,urlOptions.highlight=!1),netdataCheckXSS=!1,NETDATA.xss.enabled=!0,NETDATA.xss.enabled_for_data=!0,loadSnapshotPreflightEmpty(),initializeDynamicDashboard()}))}))};var loadSnapshotDragAndDropInitialized=!1;function loadSnapshotDragAndDropSetup(){!1===loadSnapshotDragAndDropInitialized&&(loadSnapshotDragAndDropInitialized=!0,$("#loadSnapshotDragAndDrop").on("drag dragstart dragend dragover dragenter dragleave drop",(function(e){e.preventDefault(),e.stopPropagation()})).on("drop",(function(e){e.originalEvent.dataTransfer.files.length?loadSnapshotPreflightFile(e.originalEvent.dataTransfer.files.item(0)):(loadSnapshotPreflightEmpty(),loadSnapshotModalLog("danger","No file selected"))})))}window.loadSnapshotPreflight=function(){var e=document.getElementById("loadSnapshotSelectFiles").files;if(!e.length)return loadSnapshotPreflightEmpty(),void loadSnapshotModalLog("danger","No file selected");loadSnapshotModalLog("info","Loading file..."),loadSnapshotPreflightFile(e.item(0))};var saveSnapshotStop=!1;function saveSnapshotCancel(){reduxStore.dispatch(Object(_domains_dashboard_actions__WEBPACK_IMPORTED_MODULE_6__.f)()),saveSnapshotStop=!0}var saveSnapshotModalInitialized=!1;function saveSnapshotModalSetup(){!1===saveSnapshotModalInitialized&&(saveSnapshotModalInitialized=!0,$("#saveSnapshotModal").on("hide.bs.modal",saveSnapshotCancel).on("show.bs.modal",saveSnapshotModalInit).on("shown.bs.modal",(function(){$("#saveSnapshotResolutionSlider").find(".slider-handle:first").attr("tabindex",1),document.getElementById("saveSnapshotComments").focus()})))}function saveSnapshotModalLog(e,t){document.getElementById("saveSnapshotStatus").className="alert alert-"+e,document.getElementById("saveSnapshotStatus").innerHTML=t}function saveSnapshotModalShowExpectedSize(){var e=Math.round(saveSnapshotViewDuration/saveSnapshotSelectedSecondsPerPoint),t="info",a="A moderate snapshot.",n=Math.round(10*(options.data.charts_count*snapshotOptions.bytes_per_chart+options.data.dimensions_count*e*snapshotOptions.compressions[saveSnapshotCompression].bytes_per_point_disk)/1024/1024)/10,r=Math.round(10*(options.data.charts_count*snapshotOptions.bytes_per_chart+options.data.dimensions_count*e*snapshotOptions.compressions[saveSnapshotCompression].bytes_per_point_memory)/1024/1024)/10;n<10&&(t="success",a="A nice small snapshot!"),n>50&&(t="warning",a="Will stress your browser..."),n>100&&(t="danger",a="Hm... good luck..."),saveSnapshotModalLog(t,"The snapshot will have "+e.toString()+" points per dimension. Expected size on disk "+n+" MB, at browser memory "+r+" MB.<br/>"+a)}var saveSnapshotCompression=snapshotOptions.compressionDefault;function saveSnapshotSetCompression(e){saveSnapshotCompression=e,document.getElementById("saveSnapshotCompressionName").innerHTML=saveSnapshotCompression,saveSnapshotModalShowExpectedSize()}var saveSnapshotSlider=null,saveSnapshotSelectedSecondsPerPoint=1,saveSnapshotViewDuration=1,browser_timezone;function saveSnapshotModalInit(){$("#saveSnapshotModalProgressSection").hide(),$("#saveSnapshotResolutionRadio").show(),saveSnapshotModalLog("info","Select resolution and click <b>Save</b>"),$("#saveSnapshotExport").removeClass("disabled"),loadBootstrapSlider((function(){var e=reduxStore.getState();saveSnapshotViewDuration=-Object(_domains_global_selectors__WEBPACK_IMPORTED_MODULE_3__.i)(e);var t=Math.round(Date.now()-1e3*saveSnapshotViewDuration),a=Object(_domains_global_selectors__WEBPACK_IMPORTED_MODULE_3__.m)(e);Boolean(a)&&(saveSnapshotViewDuration=Math.round((a.before-a.after)/1e3),t=a.after);var n=new Date(t),r=n.getFullYear()+Object(_utils_units_conversion__WEBPACK_IMPORTED_MODULE_5__.b)(n.getMonth()+1)+Object(_utils_units_conversion__WEBPACK_IMPORTED_MODULE_5__.b)(n.getDate())+"-"+Object(_utils_units_conversion__WEBPACK_IMPORTED_MODULE_5__.b)(n.getHours())+Object(_utils_units_conversion__WEBPACK_IMPORTED_MODULE_5__.b)(n.getMinutes())+Object(_utils_units_conversion__WEBPACK_IMPORTED_MODULE_5__.b)(n.getSeconds());document.getElementById("saveSnapshotFilename").value="netdata-"+options.hostname.toString()+"-"+r.toString()+"-"+saveSnapshotViewDuration.toString()+".snapshot",saveSnapshotSetCompression(saveSnapshotCompression);var o=options.update_every,i=Math.round(saveSnapshotViewDuration/100);Boolean(a)&&(i=Math.round(saveSnapshotViewDuration/50));var s=Math.round(saveSnapshotViewDuration/Math.round($(document.getElementById("charts_div")).width()/2));i<10&&(i=10),i<o&&(i=o),s<o&&(s=o),s>i&&(s=i),null!==saveSnapshotSlider&&saveSnapshotSlider.destroy(),saveSnapshotSlider=new Slider("#saveSnapshotResolutionSlider",{ticks:[o,s,i],min:o,max:i,step:options.update_every,value:s,scale:i>100?"logarithmic":"linear",tooltip:"always",formatter:function(e){e<1&&(e=1),e<options.data.update_every&&(e=options.data.update_every),saveSnapshotSelectedSecondsPerPoint=e,saveSnapshotModalShowExpectedSize();var t=" seconds ";return 1===e&&(t=" second "),e+t+"per point"+(e===options.data.update_every?", server default":"").toString()}})}))}window.saveSnapshot=function(){loadPako((function(){loadLzString((function(){saveSnapshotStop=!1,$("#saveSnapshotModalProgressSection").show(),$("#saveSnapshotResolutionRadio").hide(),$("#saveSnapshotExport").addClass("disabled");var e=document.getElementById("saveSnapshotFilename").value;saveSnapshotModalLog("info","Generating snapshot as <code>"+e.toString()+"</code>");var t=document.getElementById("saveSnapshotModalProgressBar"),a=document.getElementById("saveSnapshotModalProgressBarText");options.data.charts_by_name=null;var n=reduxStore.getState(),r=Object(_domains_global_selectors__WEBPACK_IMPORTED_MODULE_3__.i)(n),o={hostname:options.hostname,server:_utils_server_detection__WEBPACK_IMPORTED_MODULE_9__.b,netdata_version:options.data.version,snapshot_version:1,after_ms:Date.now()+1e3*r,before_ms:Date.now(),highlight_after_ms:urlOptions.highlight_after,highlight_before_ms:urlOptions.highlight_before,duration_ms:1e3*options.duration,update_every_ms:1e3*options.update_every,data_points:0,url:(null!==urlOptions.server?urlOptions.server:document.location.origin.toString()+document.location.pathname.toString()+document.location.search.toString()).toString(),comments:document.getElementById("saveSnapshotComments").value.toString(),hash:urlOptions.hash,charts:options.data,info:jsonStringifyFn({menu:netdataDashboard.menu,submenu:netdataDashboard.submenu,context:netdataDashboard.context}),charts_ok:0,charts_failed:0,compression:saveSnapshotCompression,data_size:0,data:{}};"undefined"===typeof snapshotOptions.compressions[o.compression]&&(alert("unknown compression method: "+o.compression),o.compression="none");var i=snapshotOptions.compressions[o.compression].compress,s=snapshotOptions.compressions[o.compression].compressed_length;function l(e){var t=e.data,a=e.chartDataUniqueID;if(null===t)return 0;var n=JSON.stringify(t),r=i(n);return o.data[a]=r,s(r)}var c=Object(_domains_global_selectors__WEBPACK_IMPORTED_MODULE_3__.m)(n),u=!1;c?(o.after_ms=c.after,o.before_ms=c.before):(reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.s)({after:o.after_ms,before:o.before_ms})),u=!0),o.duration_ms=o.before_ms-o.after_ms,o.data_points=Math.round((o.before_ms-o.after_ms)/(1e3*saveSnapshotSelectedSecondsPerPoint)),saveSnapshotModalLog("info","Generating snapshot with "+o.data_points.toString()+" data points per dimension..."),reduxStore.dispatch(Object(_domains_dashboard_actions__WEBPACK_IMPORTED_MODULE_6__.e)({charts:o.charts,dataPoints:o.data_points})),window.saveSnapshotRestore=function(){$("#saveSnapshotModal").modal("hide"),$(t).css("width","0%").attr("aria-valuenow",0),a.innerText="0%",reduxStore.dispatch(Object(_domains_dashboard_actions__WEBPACK_IMPORTED_MODULE_6__.f)()),reduxStore.dispatch(Object(_domains_chart_actions__WEBPACK_IMPORTED_MODULE_7__.j)()),u&&reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.j)()),$("#saveSnapshotExport").removeClass("disabled")};var d=0,h=" Resolution: <b>"+saveSnapshotSelectedSecondsPerPoint.toString()+(1===saveSnapshotSelectedSecondsPerPoint?" second ":" seconds ").toString()+"per point</b>.";window.chartUpdated=function(n){var r=n.chart,i=n.chartDataUniqueID,s=n.data;!0===saveSnapshotStop&&(saveSnapshotModalLog("info","Cancelled!"),saveSnapshotRestore());var c=reduxStore.getState(),u=Object(_domains_chart_selectors__WEBPACK_IMPORTED_MODULE_8__.b)(c),p=Object(_domains_chart_selectors__WEBPACK_IMPORTED_MODULE_8__.e)(c),f=Object(_domains_chart_selectors__WEBPACK_IMPORTED_MODULE_8__.d)(c),g=(p+f)/u*100;$(t).css("width",g+"%").attr("aria-valuenow",g),a.innerText=Math.round(g).toString()+"%, "+(r||s.id),d+=l({data:s,chartDataUniqueID:i}),saveSnapshotModalLog(f?"danger":"info","Generated snapshot data size <b>"+(Math.round(100*d/1024/1024)/100).toString()+" MB</b>. "+(f?f.toString()+" charts have failed to be downloaded":"").toString()+h),window.saveData=o,p+f===u&&(o.charts_ok=p,o.charts_failed=f,o.data_size=d,saveObjectToClient(o,e),f>0&&alert("".concat(f," failed to be downloaded")),saveSnapshotRestore(),o=null)}}))}))};try{browser_timezone=Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){console.log("failed to detect browser timezone: "+e.toString()),browser_timezone="cannot-detect-it"}var getOption=function(e){var t=reduxStore.getState();return Object(_domains_global_selectors__WEBPACK_IMPORTED_MODULE_3__.b)(e)(t)};function dashboardSettingsSetup(){var e=function(){var e=function(e){var t=$("#"+e);t.prop("checked")!==getOption(e)&&t.bootstrapToggle(getOption(e)?"on":"off")};e("stop_updates_when_focus_is_lost"),e("eliminate_zero_dimensions"),e("destroy_on_hide"),e("async_on_scroll"),e("parallel_refresher"),e("concurrent_refreshes"),e("sync_selection"),e("legend_right"),$("#"+"netdata_theme_control").bootstrapToggle("slate"===netdataTheme?"on":"off"),e("show_help"),e("pan_and_zoom_data_padding"),e("smooth_plot"),function(e){var t=$("#"+e);t.prop("checked")!==("auto"===getOption("units"))&&t.bootstrapToggle("auto"===getOption("units")?"on":"off"),!0===t.prop("checked")?($("#settingsLocaleTempRow").show(),$("#settingsLocaleTimeRow").show()):($("#settingsLocaleTempRow").hide(),$("#settingsLocaleTimeRow").hide())}("units_conversion"),function(e){var t=$("#"+e);t.prop("checked")!==("celsius"===getOption("temperature"))&&t.bootstrapToggle("celsius"===getOption("temperature")?"on":"off")}("units_temp"),e("seconds_as_time"),!1===getOption("parallel_refresher")?$("#concurrent_refreshes_row").hide():$("#concurrent_refreshes_row").show()};e(),$("#eliminate_zero_dimensions").change((function(){setOption("eliminate_zero_dimensions",$(this).prop("checked"))})),$("#destroy_on_hide").change((function(){setOption("destroy_on_hide",$(this).prop("checked"))})),$("#async_on_scroll").change((function(){setOption("async_on_scroll",$(this).prop("checked"))})),$("#parallel_refresher").change((function(){setOption("parallel_refresher",$(this).prop("checked"))})),$("#concurrent_refreshes").change((function(){setOption("concurrent_refreshes",$(this).prop("checked"))})),$("#sync_selection").change((function(){setOption("sync_selection",$(this).prop("checked")),netdataReload()})),$("#stop_updates_when_focus_is_lost").change((function(){urlOptions.update_always=!$(this).prop("checked"),urlOptions.hashUpdate(),setOption("stop_updates_when_focus_is_lost",!urlOptions.update_always)})),$("#smooth_plot").change((function(){setOption("smooth_plot",$(this).prop("checked"))})),$("#pan_and_zoom_data_padding").change((function(){setOption("pan_and_zoom_data_padding",$(this).prop("checked"))})),$("#seconds_as_time").change((function(){setOption("seconds_as_time",$(this).prop("checked"))})),$("#units_conversion").change((function(){setOption("units",$(this).prop("checked")?"auto":"original"),e()})),$("#units_temp").change((function(){setOption("temperature",$(this).prop("checked")?"celsius":"fahrenheit")})),$("#legend_right").change((function(){setOption("legend_right",$(this).prop("checked")),netdataReload()})),$("#show_help").change((function(){urlOptions.help=$(this).prop("checked"),urlOptions.hashUpdate(),setOption("show_help",urlOptions.help),netdataReload()})),$("#netdata_theme_control").change((function(){urlOptions.theme=$(this).prop("checked")?"slate":"white",urlOptions.hashUpdate(),setTheme(urlOptions.theme)&&netdataReload()}))}var CHART_DIV_ID_PREFIX="chart_",CHART_DIV_OFFSET=-50;function scrollDashboardTo(){if(null!==window.netdataSnapshotData&&"undefined"!==typeof window.netdataSnapshotData.hash)scrollToId(window.netdataSnapshotData.hash.replace("#",""));else if(scrollToId(urlOptions.hash.replace("#","")),null!==urlOptions.chart){var e=document.getElementById("".concat(CHART_DIV_ID_PREFIX).concat(Object(_utils_name_2_id__WEBPACK_IMPORTED_MODULE_10__.a)(urlOptions.chart)));if(e){var t=e.offsetTop+CHART_DIV_OFFSET;document.querySelector("html").scrollTop=t}}}var modalHiddenCallback=null;function enableTooltipsAndPopovers(){$('[data-toggle="tooltip"]').tooltip({animated:"fade",trigger:"hover",html:!0,delay:{show:500,hide:0},container:"body"}),$('[data-toggle="popover"]').popover()}window.scrollToChartAfterHidingModal=function(e,t,a){modalHiddenCallback=function(){if("string"===typeof e){var n=document.getElementById("".concat(CHART_DIV_ID_PREFIX).concat(Object(_utils_name_2_id__WEBPACK_IMPORTED_MODULE_10__.a)(e)));if(n){var r=n.offsetTop+CHART_DIV_OFFSET;document.querySelector("html").scrollTop=r}}if(["WARNING","CRITICAL"].includes(a)){reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.s)({after:t-12e4,before:t+12e4}))}}};var runOnceOnDashboardLastRun=0;function runOnceOnDashboardWithjQuery(){if(0!==runOnceOnDashboardLastRun)return scrollDashboardTo(),$(document.body).scrollspy("refresh"),void $(document.body).scrollspy("process");runOnceOnDashboardLastRun=Date.now();var e=0,t=0,a=!1,n=!1,r=$(window).height()/3;$(".modal").on("show.bs.modal",(function(){0===t&&(e=window.scrollY,$("body").css({overflow:"hidden",position:"fixed",top:-e}),a=!0,null===NETDATA.options.pauseCallback?(NETDATA.pause((function(){})),n=!0):n=!1),t++})).on("hide.bs.modal",(function(){--t<=0&&(t=0,$("body").css({overflow:"",position:"",top:""}),$("html, body").animate({scrollTop:e},0),!0===n&&(NETDATA.unpause(),n=!1),$(document.body).scrollspy("process"))})).on("hidden.bs.modal",(function(){0===t&&(a=!1),"function"===typeof modalHiddenCallback&&modalHiddenCallback(),modalHiddenCallback=null})),$("#sidebar").affix({offset:{top:0,bottom:0}}).on("affixed.bs.affix",(function(){$(this).removeAttr("style")})).on("affix-top.bs.affix",(function(){if(a)return!1})).on("activate.bs.scrollspy",(function(e){if(!1===a){var t=$(e.target).find("a").attr("href");"string"===typeof t&&"#"===t.substring(0,1)&&!1===urlOptions.hash.startsWith(t+"_submenu_")&&(urlOptions.hash=t,urlOptions.hashUpdate())}})),Ps.initialize(document.getElementById("sidebar"),{wheelSpeed:.5,wheelPropagation:!0,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,suppressScrollX:!0,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,theme:"default"}),r>250&&(r=250),r<75&&(r=75),document.body.setAttribute("data-offset",r),scrollDashboardTo(),$(document.body).scrollspy({target:"#sidebar",offset:r}),$("#deleteRegistryModal").on("hidden.bs.modal",(function(){deleteRegistryGuid=null})),$("#updateModal").on("show.bs.modal",(function(){versionLog("checking, please wait...")})).on("shown.bs.modal",(function(){notifyForUpdate(!0)})),$("#alarmsModal").on("shown.bs.modal",(function(){alarmsUpdateModal()})).on("hidden.bs.modal",(function(){document.getElementById("alarms_active").innerHTML=document.getElementById("alarms_all").innerHTML=document.getElementById("alarms_log").innerHTML="loading..."})),dashboardSettingsSetup(),loadSnapshotDragAndDropSetup(),saveSnapshotModalSetup(),showPageFooter(),$.fn.shorten=function(e){var t={showChars:750,minHideChars:10,ellipsesText:"...",moreText:'<i class="fas fa-expand"></i> show more information',lessText:'<i class="fas fa-compress"></i> show less information',onLess:function(){NETDATA.onscroll()},onMore:function(){NETDATA.onscroll()},errMsg:null,force:!1};return e&&$.extend(t,e),!($(this).data("jquery.shorten")&&!t.force)&&($(this).data("jquery.shorten",!0),$(document).off("click",".morelink"),$(document).on({click:function(){var e=$(this);return e.hasClass("less")?(e.removeClass("less"),e.html(t.moreText),e.parent().prev().animate({height:"0%"},0,(function(){e.parent().prev().prev().show()})).hide(0,(function(){t.onLess()}))):(e.addClass("less"),e.html(t.lessText),e.parent().prev().animate({height:"100%"},0,(function(){e.parent().prev().prev().hide()})).show(0,(function(){t.onMore()}))),!1}},".morelink"),this.each((function(){var e=$(this),a=e.html();if(e.text().length>t.showChars+t.minHideChars){var n=a.substr(0,t.showChars);if(n.indexOf("<")>=0){for(var r=!1,o="",i=0,s=[],l=null,c=0,u=0;u<=t.showChars;c++)if("<"!==a[c]||r||(r=!0,"/"===(l=a.substring(c+1,a.indexOf(">",c)))[0]?l!=="/"+s[0]?t.errMsg="ERROR en HTML: the top of the stack should be the tag that closes":s.shift():"br"!==l.toLowerCase()&&s.unshift(l)),r&&">"===a[c]&&(r=!1),r)o+=a.charAt(c);else if(u++,i<=t.showChars)o+=a.charAt(c),i++;else if(s.length>0){for(var d=0;d<s.length;d++)o+="</"+s[d]+">";break}n=$("<div/>").html(o+'<span class="ellip">'+t.ellipsesText+"</span>").html()}else n+=t.ellipsesText;var h='<div class="shortcontent">'+n+'</div><div class="allcontent">'+a+'</div><span><a href="javascript://nop/" class="morelink">'+t.moreText+"</a></span>";e.html(h),e.find(".allcontent").hide(),$(".shortcontent p:last",e).css("margin-bottom",0)}})))}}function finalizePage(){urlOptions.after<0?reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.q)({after:urlOptions.after})):!0===urlOptions.pan_and_zoom&&reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.s)({after:urlOptions.after,before:urlOptions.before})),NETDATA.parseDom(),NETDATA.unpause(),runOnceOnDashboardWithjQuery(),$(".shorten").shorten(),enableTooltipsAndPopovers(),_utils_is_demo__WEBPACK_IMPORTED_MODULE_14__.a||notifyForUpdate(),!0===urlOptions.show_alarms&&setTimeout((function(){$("#alarmsModal").modal("show")}),1e3),NETDATA.onresizeCallback=function(){Ps.update(document.getElementById("sidebar"))},NETDATA.onresizeCallback(),null!==window.netdataSnapshotData&&reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.s)({after:window.netdataSnapshotData.after_ms,before:window.netdataSnapshotData.before_ms}))}window.resetDashboardOptions=function(){reduxStore.dispatch(Object(_domains_global_actions__WEBPACK_IMPORTED_MODULE_2__.l)()),urlOptions.update_always=!1,urlOptions.help=!1,urlOptions.theme="slate",urlOptions.hashUpdate(),netdataReload()};var netdataPrepCallback=function(){_utils_is_demo__WEBPACK_IMPORTED_MODULE_14__.a?document.getElementById("masthead").style.display="block":!0===urlOptions.update_always&&setOption("stop_updates_when_focus_is_lost",!urlOptions.update_always)};window.selected_server_timezone=function(e,t){if(document.getElementById("timezone_error_message").innerHTML="","undefined"===typeof t)setOption("user_set_server_timezone",e),Object(_utils_date_time__WEBPACK_IMPORTED_MODULE_11__.a)(e)?($("#local_timezone").prop("checked")&&$("#local_timezone").bootstrapToggle("off"),setOption("timezone",e)):(setOption("timezone","default"),$("#local_timezone").prop("checked")||$("#local_timezone").bootstrapToggle("on"),document.getElementById("timezone_error_message").innerHTML="Ooops! That timezone was not accepted by your browser. Please open a github issue to help us fix it.",setOption("user_set_server_timezone",options.timezone));else if(!0===t)setOption("timezone","default");else{var a=getOption("user_set_server_timezone");"default"===a&&(setOption("user_set_server_timezone",options.timezone),a=options.timezone),Object(_utils_date_time__WEBPACK_IMPORTED_MODULE_11__.a)(a)?setOption("timezone",a):(setOption("timezone","default"),$("#local_timezone").prop("checked")||$("#local_timezone").bootstrapToggle("on"),document.getElementById("timezone_error_message").innerHTML='Sorry. The timezone "'+e.toString()+'" is not accepted by your browser. Please select one from the list.',setOption("user_set_server_timezone",options.timezone))}var n=getOption("timezone");return document.getElementById("current_timezone").innerText="default"===n?"unset, using browser default":n,!1};var netdataCallback=initializeDynamicDashboard;window.showSignInModal=function(){document.getElementById("sim-registry").innerHTML=getFromRegistry("registryServer"),$("#signInModal").modal("show")},window.explicitlySignIn=function(){$("#signInModal").modal("hide"),reduxStore.dispatch(Object(_domains_dashboard_actions__WEBPACK_IMPORTED_MODULE_6__.a)())}},26:function(e,t,a){"use strict";a.d(t,"e",(function(){return n})),a.d(t,"c",(function(){return r})),a.d(t,"b",(function(){return o})),a.d(t,"a",(function(){return i})),a.d(t,"d",(function(){return s}));var n="global",r="***",o=5e3,i="CLOUD_BASE_URL_DISABLED",s=["WARNING","ERROR","REMOVED","UNDEFINED","UNINITIALIZED","CLEAR","CRITICAL"]},276:function(e,t){},277:function(e,t,a){"use strict";var n=a(5),r=a(0),o=a.n(r),i=a(91),s=a(3),l=function(e){var t=e.userStatus,a=e.nodeStatus,n=e.date;return Object(r.useMemo)((function(){return function(e){var t=e.nodeStatus,a=e.userStatus;e.date;return{title:"Netdata Cloud connection status",text:{header:function(){return o.a.createElement(s.B,null,"This node is currently"," ",o.a.createElement(s.B,{strong:!0},"LIVE"===t?"Connected":"Not Connected")," to Netdata Cloud")},bullets:"NOT_LIVE"===t?[function(){return o.a.createElement(s.B,null,"To troubleshoot Netdata Cloud connection issues, please follow"," ",o.a.createElement(i.a,{target:"_blank",rel:"noopener noreferrer",href:"https://learn.netdata.cloud/docs/agent/claim#troubleshooting"},"this guide"),".")}]:[],footer:function(){return o.a.createElement(s.B,null,"You are"," ",o.a.createElement(s.B,{strong:!0},"LOGGED_IN"===a?"Logged In":"EXPIRED_LOGIN"===a?"Logged out":"Not signed-up")," ","to Netdata Cloud")}},CTA1:{text:"Take me to Netdata Cloud"}}}({userStatus:t,nodeStatus:a,date:n})}),[t,a,n])},c=a(58),u=function(e){var t=e.title,a=e.text,n=e.CTA1,i=e.closeModal,l=e.onRefresh,u=e.isCTA1Disabled,d=Object(r.useCallback)((function(e){var t=e.link;i(),window.location.href=t}),[i]);return o.a.createElement(s.q,null,o.a.createElement(s.t,{width:180,background:"modalBackground"},o.a.createElement(s.v,null,o.a.createElement(s.k,{margin:[0]},t),o.a.createElement(s.s,{onClose:i})),o.a.createElement(s.r,null,o.a.createElement(s.j,{padding:[0,0,4,0],column:!0,gap:3},a.header({}),a.bullets.length>0&&o.a.createElement(s.j,{column:!0,gap:3},o.a.createElement(s.j,{column:!0,gap:1,as:"ul"},a.bullets.map((function(e,t){return"function"===typeof e?o.a.createElement("li",{key:t}," ",e()):o.a.createElement("li",{key:e},o.a.createElement(s.B,null,e))})))),a.footer())),o.a.createElement(s.u,null,o.a.createElement(s.a,{"data-testid":"cta1",margin:[0,2,0,0],width:{min:40}},o.a.createElement(c.a,{utmParameters:{content:"connection_to_cloud",campaign:"agent_nudge_to_cloud"}},(function(e){var t=e.link;return o.a.createElement(s.b,{"data-ga":"connection-to-cloud::click-ct1::ad",disabled:u,textTransform:"none","data-testid":"cta1-button",onClick:function(){return d({link:t})},width:"100%",label:n.text})}))),o.a.createElement(s.a,{"data-ga":"connection-to-cloud::click-check-now::ad",onClick:l,height:10,className:"btn btn-default","data-testid":"cta2-button",width:{min:40}},o.a.createElement(s.a,{as:s.B,sx:{fontWeight:"500",lineHeight:"25px"}},"Check Now")))))},d=a(27),h=a(127),p=a(9);t.a=function(){var e=Object(d.e)(p.O),t=Object(d.e)(p.u),a=Object(r.useState)(!1),i=Object(n.a)(a,2),c=i[0],f=i[1],g=l({userStatus:(null===e||void 0===e?void 0:e.userStatus)||"UNKNOWN",nodeStatus:(null===e||void 0===e?void 0:e.nodeLiveness)||"NOT_LIVE",date:""});Object(r.useEffect)((function(){document.documentElement.style.overflow=c?"hidden":"auto"}),[c]);var m=Object(r.useCallback)((function(){f(!0)}),[]),b=Object(r.useCallback)((function(){f(!1)}),[]),v=Object(h.b)();return t?o.a.createElement(s.j,{column:!0},o.a.createElement(s.z,{"data-ga":"connection-to-cloud::click-pill::ad","data-testid":"header-connection-to-cloud-button",onClick:m,flavour:"neutral"},"Connection to Cloud"),c&&o.a.createElement(u,Object.assign({},g,{isCTA1Disabled:"LIVE"!==(null===e||void 0===e?void 0:e.nodeLiveness),closeModal:b,onRefresh:v}))):null}},28:function(e,t,a){"use strict";a.d(t,"f",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"h",(function(){return u})),a.d(t,"e",(function(){return d})),a.d(t,"g",(function(){return h})),a.d(t,"c",(function(){return p}));var n=a(14),r=a(7),o=a(135),i=function(e){return e>0},s="https://registry.my-netdata.io",l=1e3,c=function(e,t){return"".concat(e,"/sso/v2/").concat(t)},u="&utm_source=agent&utm_medium=web",d=function(){var e=document.getElementById("charts_div");return e?60*-Math.round(e.getBoundingClientRect().width/3/60):(console.error("Couldn't find '.charts_div' element to calculate width"),-900)},h=function(e,t,a){return t?e.reduce((function(e,i){return Object(r.a)({},e,Object(n.a)({},i,Object(o.a)(t[i],a[i])?t[i]:a[i]))}),a):a};function p(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return function(e){t.forEach((function(t){null===t||void 0===t||t(e)}))}}},300:function(e,t,a){var n,r,o;r=[],void 0===(o="function"===typeof(n=function(){var e=0,t={header:{title:{text:"",color:"#333333",fontSize:18,fontWeight:"bold",font:"arial"},subtitle:{text:"",color:"#666666",fontSize:14,fontWeight:"bold",font:"arial"},location:"top-center",titleSubtitlePadding:8},footer:{text:"",color:"#666666",fontSize:14,fontWeight:"bold",font:"arial",location:"left"},size:{canvasHeight:500,canvasWidth:500,pieInnerRadius:"0%",pieOuterRadius:null},data:{sortOrder:"none",ignoreSmallSegments:{enabled:!1,valueType:"percentage",value:null},smallSegmentGrouping:{enabled:!1,value:1,valueType:"percentage",label:"Other",color:"#cccccc"},content:[]},labels:{outer:{format:"label",hideWhenLessThanPercentage:null,pieDistance:30},inner:{format:"percentage",hideWhenLessThanPercentage:null},mainLabel:{color:"#333333",font:"arial",fontWeight:"normal",fontSize:10},percentage:{color:"#dddddd",font:"arial",fontWeight:"bold",fontSize:10,decimalPlaces:0},value:{color:"#cccc44",fontWeight:"bold",font:"arial",fontSize:10},lines:{enabled:!0,style:"curved",color:"segment"},truncation:{enabled:!1,truncateLength:30},formatter:null},effects:{load:{effect:"none",speed:1e3},pullOutSegmentOnClick:{effect:"none",speed:300,size:10},highlightSegmentOnMouseover:!1,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"placeholder",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:"#000000",backgroundOpacity:.5,color:"#efefef",borderRadius:2,font:"arial",fontWeight:"bold",fontSize:10,padding:4}},misc:{colors:{background:null,segments:["#2484c1","#65a620","#7b6888","#a05d56","#961a1a","#d8d23a","#e98125","#d0743c","#635222","#6ada6a","#0c6197","#7d9058","#207f33","#44b9b0","#bca44a","#e4a14b","#a3acb2","#8cc3e9","#69a6f9","#5b388f","#546e91","#8bde95","#d2ab58","#273c71","#98bf6e","#4daa4b","#98abc5","#cc1010","#31383b","#006391","#c2643f","#b0a474","#a5a39c","#a9c2bc","#22af8c","#7fcecf","#987ac6","#3d3b87","#b77b1c","#c9c2b6","#807ece","#8db27c","#be66a2","#9ed3c6","#00644b","#005064","#77979f","#77e079","#9c73ab","#1f79a7"],segmentStroke:"#ffffff"},gradient:{enabled:!1,percentage:95,color:"#000000"},canvasPadding:{top:5,right:5,bottom:5,left:5},pieCenterOffset:{x:0,y:0},cssPrefix:null},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null}},a=function(e){var t=e.cssPrefix,a=e.element,r=e.options;if(!window.d3||!window.d3.hasOwnProperty("version"))return console.error("d3pie error: d3 is not available"),!1;if(!(a instanceof HTMLElement||a instanceof SVGElement))return console.error("d3pie error: the first d3pie() param must be a valid DOM element (not jQuery) or a ID string."),!1;if(!/[a-zA-Z][a-zA-Z0-9_-]*$/.test(t))return console.error("d3pie error: invalid options.misc.cssPrefix"),!1;if(!n.isArray(r.data.content))return console.error("d3pie error: invalid config structure: missing data.content property."),!1;if(0===r.data.content.length)return console.error("d3pie error: no data supplied."),!1;for(var o=[],i=0;i<r.data.content.length;i++)"number"!==typeof r.data.content[i].value||isNaN(r.data.content[i].value)?console.log("not valid: ",r.data.content[i]):r.data.content[i].value<=0?console.log("not valid - should have positive value: ",r.data.content[i]):o.push(r.data.content[i]);return e.options.data.content=o,!0},n={addSVGSpace:function(e){var t=e.element,a=e.options.size.canvasWidth,n=e.options.size.canvasHeight,r=e.options.misc.colors.background,o=d3.select(t).append("svg:svg").attr("width",a).attr("height",n);return"transparent"!==r&&o.style("background-color",(function(){return r})),o},shuffleArray:function(e){for(var t,a,n=e.length;0!==n;)a=Math.floor(Math.random()*n),t=e[n-=1],e[n]=e[a],e[a]=t;return e},processObj:function(e,t,a){return"string"===typeof t?n.processObj(e,t.split("."),a):1===t.length&&void 0!==a?(e[t[0]]=a,e[t[0]]):0===t.length?e:n.processObj(e[t[0]],t.slice(1),a)},getDimensions:function(e){"string"===typeof e&&(e=document.getElementById(e));var t=0,a=0;if(e){var n=e.getBBox();t=n.width,a=n.height}else console.log("error: getDimensions() "+id+" not found.");return{w:t,h:a}},rectIntersect:function(e,t){return!(t.x>e.x+e.w||t.x+t.w<e.x||t.y+t.h<e.y||t.y>e.y+e.h)},getColorShade:function(e,t){(e=String(e).replace(/[^0-9a-f]/gi,"")).length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;for(var a="#",n=0;n<3;n++){var r=parseInt(e.substr(2*n,2),16);a+=("00"+(r=Math.round(Math.min(Math.max(0,r+r*t),255)).toString(16))).substr(r.length)}return a},initSegmentColors:function(e){for(var t=e.options.data.content,a=e.options.misc.colors.segments,n=[],r=0;r<t.length;r++)t[r].hasOwnProperty("color")?n.push(t[r].color):n.push(a[r]);return n},applySmallSegmentGrouping:function(e,t){var a;"percentage"===t.valueType&&(a=o.getTotalPieSize(e));for(var n=[],r=[],i=0,s=0;s<e.length;s++)if("percentage"===t.valueType){if(e[s].value/a*100<=t.value){r.push(e[s]),i+=e[s].value;continue}e[s].isGrouped=!1,n.push(e[s])}else{if(e[s].value<=t.value){r.push(e[s]),i+=e[s].value;continue}e[s].isGrouped=!1,n.push(e[s])}return r.length&&n.push({color:t.color,label:t.label,value:i,isGrouped:!0,groupedData:r}),n},showPoint:function(e,t,a){e.append("circle").attr("cx",t).attr("cy",a).attr("r",2).style("fill","black")},isFunction:function(e){return e&&"[object Function]"==={}.toString.call(e)},isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)}},r=function e(){var t,a,n,r,o,i,s=arguments[0]||{},l=1,c=arguments.length,u=!1,d=Object.prototype.toString,h=Object.prototype.hasOwnProperty,p={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object"},f={isFunction:function(e){return"function"===f.type(e)},isArray:Array.isArray||function(e){return"array"===f.type(e)},isWindow:function(e){return null!==e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null===e?String(e):p[d.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==f.type(e)||e.nodeType)return!1;try{if(e.constructor&&!h.call(e,"constructor")&&!h.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}var t;for(t in e);return void 0===t||h.call(e,t)}};for("boolean"===typeof s&&(u=s,s=arguments[1]||{},l=2),"object"===typeof s||f.isFunction(s)||(s={}),c===l&&(s=this,--l);l<c;l++)if(null!==(t=arguments[l]))for(a in t)n=s[a],s!==(r=t[a])&&(u&&r&&(f.isPlainObject(r)||(o=f.isArray(r)))?(o?(o=!1,i=n&&f.isArray(n)?n:[]):i=n&&f.isPlainObject(n)?n:{},s[a]=e(u,i,r)):void 0!==r&&(s[a]=r));return s},o={toRadians:function(e){return e*(Math.PI/180)},toDegrees:function(e){return e*(180/Math.PI)},computePieRadius:function(e){var t=e.options.size,a=e.options.misc.canvasPadding,n=t.canvasWidth-a.left-a.right,r=t.canvasHeight-a.top-a.bottom;"pie-center"!==e.options.header.location&&(r-=e.textComponents.headerHeight),e.textComponents.footer.exists&&(r-=e.textComponents.footer.h);var o,i,s=(n<(r=r<0?0:r)?n:r)/3;if(null!==t.pieOuterRadius)if(/%/.test(t.pieOuterRadius)){i=(i=(i=parseInt(t.pieOuterRadius.replace(/[\D]/,""),10))>99?99:i)<0?0:i;var l=n<r?n:r;if("none"!==e.options.labels.outer.format){var c=2*parseInt(e.options.labels.outer.pieDistance,10);l-c>0&&(l-=c)}s=Math.floor(l/100*i)/2}else s=parseInt(t.pieOuterRadius,10);/%/.test(t.pieInnerRadius)?(i=(i=(i=parseInt(t.pieInnerRadius.replace(/[\D]/,""),10))>99?99:i)<0?0:i,o=Math.floor(s/100*i)):o=parseInt(t.pieInnerRadius,10),e.innerRadius=o,e.outerRadius=s},getTotalPieSize:function(e){for(var t=0,a=0;a<e.length;a++)t+=e[a].value;return t},sortPieData:function(e){var t=e.options.data.content;switch(e.options.data.sortOrder){case"none":break;case"random":t=n.shuffleArray(t);break;case"value-asc":t.sort((function(e,t){return e.value<t.value?-1:1}));break;case"value-desc":t.sort((function(e,t){return e.value<t.value?1:-1}));break;case"label-asc":t.sort((function(e,t){return e.label.toLowerCase()>t.label.toLowerCase()?1:-1}));break;case"label-desc":t.sort((function(e,t){return e.label.toLowerCase()<t.label.toLowerCase()?1:-1}))}return t},getPieTranslateCenter:function(e){return"translate("+e.x+","+e.y+")"},calculatePieCenter:function(e){var t=e.options.misc.pieCenterOffset,a=e.textComponents.title.exists&&"pie-center"!==e.options.header.location,n=e.textComponents.subtitle.exists&&"pie-center"!==e.options.header.location,r=e.options.misc.canvasPadding.top;a&&n?r+=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h:a?r+=e.textComponents.title.h:n&&(r+=e.textComponents.subtitle.h);var o=0;e.textComponents.footer.exists&&(o=e.textComponents.footer.h+e.options.misc.canvasPadding.bottom);var i=(e.options.size.canvasWidth-e.options.misc.canvasPadding.left-e.options.misc.canvasPadding.right)/2+e.options.misc.canvasPadding.left,s=(e.options.size.canvasHeight-o-r)/2+r;i+=t.x,s+=t.y,e.pieCenter={x:i,y:s}},rotate:function(e,t,a,n,r){r=r*Math.PI/180;var o=Math.cos,i=Math.sin;return{x:(e-a)*o(r)-(t-n)*i(r)+a,y:(e-a)*i(r)+(t-n)*o(r)+n}},translate:function(e,t,a,n){var r=o.toRadians(n);return{x:e+a*Math.sin(r),y:t-a*Math.cos(r)}},pointIsInArc:function(e,t,a){var n=a.innerRadius()(t),r=a.outerRadius()(t),o=a.startAngle()(t),i=a.endAngle()(t),s=e.x*e.x+e.y*e.y,l=Math.atan2(e.x,-e.y);return l=l<0?l+2*Math.PI:l,n*n<=s&&s<=r*r&&o<=l&&l<=i}},i={add:function(e,t,a){var n=i.getIncludes(a),r=e.options.labels,o=e.svg.insert("g","."+e.cssPrefix+"labels-"+t).attr("class",e.cssPrefix+"labels-"+t),s=e.__labels[t]=o.selectAll("."+e.cssPrefix+"labelGroup-"+t).data(e.options.data.content).enter().append("g").attr("id",(function(a,n){return e.cssPrefix+"labelGroup"+n+"-"+t})).attr("data-index",(function(e,t){return t})).attr("class",e.cssPrefix+"labelGroup-"+t).style("opacity",0),l={section:t,sectionDisplayType:a};n.mainLabel&&s.append("text").attr("id",(function(a,n){return e.cssPrefix+"segmentMainLabel"+n+"-"+t})).attr("class",e.cssPrefix+"segmentMainLabel-"+t).text((function(e,t){var a=e.label;return r.formatter?(l.index=t,l.part="mainLabel",l.value=e.value,l.label=a,a=r.formatter(l)):r.truncation.enabled&&e.label.length>r.truncation.truncateLength&&(a=e.label.substring(0,r.truncation.truncateLength)+"..."),a})).style("font-size",r.mainLabel.fontSize+"px").style("font-family",r.mainLabel.font).style("font-weight",r.mainLabel.fontWeight).style("fill",(function(t,a){return"segment"===r.mainLabel.color?e.options.colors[a]:r.mainLabel.color})),n.percentage&&s.append("text").attr("id",(function(a,n){return e.cssPrefix+"segmentPercentage"+n+"-"+t})).attr("class",e.cssPrefix+"segmentPercentage-"+t).text((function(e,t){var a=e.percentage;return r.formatter?(l.index=t,l.part="percentage",l.value=e.value,l.label=e.percentage,a=r.formatter(l)):a+="%",a})).style("font-size",r.percentage.fontSize+"px").style("font-family",r.percentage.font).style("font-weight",r.percentage.fontWeight).style("fill",r.percentage.color),n.value&&s.append("text").attr("id",(function(a,n){return e.cssPrefix+"segmentValue"+n+"-"+t})).attr("class",e.cssPrefix+"segmentValue-"+t).text((function(e,t){return l.index=t,l.part="value",l.value=e.value,l.label=e.value,r.formatter?r.formatter(l,e.value):e.value})).style("font-size",r.value.fontSize+"px").style("font-family",r.value.font).style("font-weight",r.value.fontWeight).style("fill",r.value.color)},positionLabelElements:function(e,t,a){i["dimensions-"+t]=[],e.__labels[t].each((function(a,n){var r=d3.select(this).selectAll("."+e.cssPrefix+"segmentMainLabel-"+t),o=d3.select(this).selectAll("."+e.cssPrefix+"segmentPercentage-"+t),s=d3.select(this).selectAll("."+e.cssPrefix+"segmentValue-"+t);i["dimensions-"+t].push({mainLabel:null!==r.node()?r.node().getBBox():null,percentage:null!==o.node()?o.node().getBBox():null,value:null!==s.node()?s.node().getBBox():null})}));var n=i["dimensions-"+t];switch(a){case"label-value1":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dx",(function(e,t){return n[t].mainLabel.width+5}));break;case"label-value2":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dy",(function(e,t){return n[t].mainLabel.height}));break;case"label-percentage1":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return n[t].mainLabel.width+5}));break;case"label-percentage2":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return n[t].mainLabel.width/2-n[t].percentage.width/2})).attr("dy",(function(e,t){return n[t].mainLabel.height}))}},computeLabelLinePositions:function(e){e.lineCoordGroups=[],e.__labels.outer.each((function(t,a){return i.computeLinePosition(e,a)}))},computeLinePosition:function(e,t){var a,n,r,i,l=s.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),c=o.rotate(e.pieCenter.x,e.pieCenter.y-e.outerRadius,e.pieCenter.x,e.pieCenter.y,l),u=e.outerLabelGroupData[t].h/5,d=Math.floor(l/90);switch(2===d&&180===l&&(d=1),d){case 0:a=e.outerLabelGroupData[t].x-6-(e.outerLabelGroupData[t].x-6-c.x)/2,n=e.outerLabelGroupData[t].y+(c.y-e.outerLabelGroupData[t].y)/4,r=e.outerLabelGroupData[t].x-6,i=e.outerLabelGroupData[t].y-u;break;case 1:a=c.x+(e.outerLabelGroupData[t].x-c.x)/4,n=c.y+(e.outerLabelGroupData[t].y-c.y)/4,r=e.outerLabelGroupData[t].x-6,i=e.outerLabelGroupData[t].y-u;break;case 2:var h=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+6;a=c.x-(c.x-h)/4,n=c.y+(e.outerLabelGroupData[t].y-c.y)/4,r=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+6,i=e.outerLabelGroupData[t].y-u;break;case 3:var p=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+6;a=p+(c.x-p)/4,n=e.outerLabelGroupData[t].y+(c.y-e.outerLabelGroupData[t].y)/4,r=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+6,i=e.outerLabelGroupData[t].y-u}"straight"===e.options.labels.lines.style?e.lineCoordGroups[t]=[{x:c.x,y:c.y},{x:r,y:i}]:e.lineCoordGroups[t]=[{x:c.x,y:c.y},{x:a,y:n},{x:r,y:i}]},addLabelLines:function(e){var t=e.svg.insert("g","."+e.cssPrefix+"pieChart").attr("class",e.cssPrefix+"lineGroups").style("opacity",1).selectAll("."+e.cssPrefix+"lineGroup").data(e.lineCoordGroups).enter().append("g").attr("class",e.cssPrefix+"lineGroup"),a=d3.line().curve(d3.curveBasis).x((function(e){return e.x})).y((function(e){return e.y}));t.append("path").attr("d",a).attr("stroke",(function(t,a){return"segment"===e.options.labels.lines.color?e.options.colors[a]:e.options.labels.lines.color})).attr("stroke-width",1).attr("fill","none").style("opacity",(function(t,a){var n=e.options.labels.outer.hideWhenLessThanPercentage;return null!==n&&t.percentage<n||""===e.options.data.content[a].label?0:1}))},positionLabelGroups:function(e,t){"none"!==e.options.labels[t].format&&e.__labels[t].style("opacity",(function(a,n){var r=e.options.labels[t].hideWhenLessThanPercentage;return null!==r&&a.percentage<r?0:1})).attr("transform",(function(a,i){var l,c;if("outer"===t)l=e.outerLabelGroupData[i].x,c=e.outerLabelGroupData[i].y;else{var u=r(!0,{},e.pieCenter);if(e.innerRadius>0){var d=s.getSegmentAngle(i,e.options.data.content,e.totalSize,{midpoint:!0}),h=o.translate(e.pieCenter.x,e.pieCenter.y,e.innerRadius,d);u.x=h.x,u.y=h.y}var p=n.getDimensions(e.cssPrefix+"labelGroup"+i+"-inner"),f=p.w/2,g=p.h/4;l=u.x+(e.lineCoordGroups[i][0].x-u.x)/1.8,c=u.y+(e.lineCoordGroups[i][0].y-u.y)/1.8,l-=f,c+=g}return"translate("+l+","+c+")"}))},getIncludes:function(e){var t=!1,a=!1,n=!1;switch(e){case"label":t=!0;break;case"value":a=!0;break;case"percentage":n=!0;break;case"label-value1":case"label-value2":t=!0,a=!0;break;case"label-percentage1":case"label-percentage2":t=!0,n=!0}return{mainLabel:t,value:a,percentage:n}},computeOuterLabelCoords:function(e){e.__labels.outer.each((function(t,a){return i.getIdealOuterLabelPositions(e,a)})),i.resolveOuterLabelCollisions(e)},resolveOuterLabelCollisions:function(e){if("none"!==e.options.labels.outer.format){var t=e.options.data.content.length;i.checkConflict(e,0,"clockwise",t),i.checkConflict(e,t-1,"anticlockwise",t)}},checkConflict:function(e,t,a,r){var o,s;if(!(r<=1)){var l=e.outerLabelGroupData[t].hs;if(("clockwise"!==a||"right"===l)&&("anticlockwise"!==a||"left"===l)){var c="clockwise"===a?t+1:t-1,u=e.outerLabelGroupData[t],d=e.outerLabelGroupData[c],h={labelHeights:e.outerLabelGroupData[0].h,center:e.pieCenter,lineLength:e.outerRadius+e.options.labels.outer.pieDistance,heightChange:e.outerLabelGroupData[0].h+1};if("clockwise"===a){for(o=0;o<=t;o++)if(s=e.outerLabelGroupData[o],!i.isLabelHidden(e,o)&&n.rectIntersect(s,d)){i.adjustLabelPos(e,c,u,h);break}}else for(o=r-1;o>=t;o--)if(s=e.outerLabelGroupData[o],!i.isLabelHidden(e,o)&&n.rectIntersect(s,d)){i.adjustLabelPos(e,c,u,h);break}i.checkConflict(e,c,a,r)}}},isLabelHidden:function(e,t){var a=e.options.labels.outer.hideWhenLessThanPercentage;return null!==a&&d.percentage<a||""===e.options.data.content[t].label},adjustLabelPos:function(e,t,a,n){var r,o,i,s;s=a.y+n.heightChange,o=n.center.y-s,r=Math.abs(n.lineLength)>Math.abs(o)?Math.sqrt(n.lineLength*n.lineLength-o*o):Math.sqrt(o*o-n.lineLength*n.lineLength),i="right"===a.hs?n.center.x+r:n.center.x-r-e.outerLabelGroupData[t].w,e.outerLabelGroupData[t].x=i,e.outerLabelGroupData[t].y=s},getIdealOuterLabelPositions:function(e,t){var a=e.svg.select("#"+e.cssPrefix+"labelGroup"+t+"-outer").node();if(a){var n=a.getBBox(),r=s.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),i=e.pieCenter.x,l=e.pieCenter.y-(e.outerRadius+e.options.labels.outer.pieDistance),c=o.rotate(i,l,e.pieCenter.x,e.pieCenter.y,r),u="right";r>180?(c.x-=n.width+8,u="left"):c.x+=8,e.outerLabelGroupData[t]={x:c.x,y:c.y,w:n.width,h:n.height,hs:u}}}},s={effectMap:{none:d3.easeLinear,bounce:d3.easeBounce,linear:d3.easeLinear,sin:d3.easeSin,elastic:d3.easeElastic,back:d3.easeBack,quad:d3.easeQuad,circle:d3.easeCircle,exp:d3.easeExp},create:function(e){var t=e.pieCenter,a=e.options.colors,n=(e.options.effects.load,e.options.misc.colors.segmentStroke),r=e.svg.insert("g","#"+e.cssPrefix+"title").attr("transform",(function(){return o.getPieTranslateCenter(t)})).attr("class",e.cssPrefix+"pieChart"),i=d3.arc().innerRadius(e.innerRadius).outerRadius(e.outerRadius).startAngle(0).endAngle((function(t){return t.value/e.totalSize*2*Math.PI}));r.selectAll("."+e.cssPrefix+"arc").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"arc").append("path").attr("id",(function(t,a){return e.cssPrefix+"segment"+a})).attr("fill",(function(t,n){var r=a[n];return e.options.misc.gradient.enabled&&(r="url(#"+e.cssPrefix+"grad"+n+")"),r})).style("stroke",n).style("stroke-width",1).attr("data-index",(function(e,t){return t})).attr("d",i),e.svg.selectAll("g."+e.cssPrefix+"arc").attr("transform",(function(t,a){var n=0;return a>0&&(n=s.getSegmentAngle(a-1,e.options.data.content,e.totalSize)),"rotate("+n+")"})),e.arc=i},addGradients:function(e){var t=e.svg.append("defs").selectAll("radialGradient").data(e.options.data.content).enter().append("radialGradient").attr("gradientUnits","userSpaceOnUse").attr("cx",0).attr("cy",0).attr("r","120%").attr("id",(function(t,a){return e.cssPrefix+"grad"+a}));t.append("stop").attr("offset","0%").style("stop-color",(function(t,a){return e.options.colors[a]})),t.append("stop").attr("offset",e.options.misc.gradient.percentage+"%").style("stop-color",e.options.misc.gradient.color)},addSegmentEventHandlers:function(e){var t=e.svg.selectAll("."+e.cssPrefix+"arc");(t=t.merge(e.__labels.inner.merge(e.__labels.outer))).on("click",(function(){var t,a=d3.select(this);if(a.attr("class")===e.cssPrefix+"arc")t=a.select("path");else{var n=a.attr("data-index");t=d3.select("#"+e.cssPrefix+"segment"+n)}var r=t.attr("class")===e.cssPrefix+"expanded";s.onSegmentEvent(e,e.options.callbacks.onClickSegment,t,r),"none"!==e.options.effects.pullOutSegmentOnClick.effect&&(r?s.closeSegment(e,t.node()):s.openSegment(e,t.node()))})),t.on("mouseover",(function(){var t,a,r=d3.select(this);if(r.attr("class")===e.cssPrefix+"arc"?t=r.select("path"):(a=r.attr("data-index"),t=d3.select("#"+e.cssPrefix+"segment"+a)),e.options.effects.highlightSegmentOnMouseover){a=t.attr("data-index");var o=e.options.colors[a];t.style("fill",n.getColorShade(o,e.options.effects.highlightLuminosity))}e.options.tooltips.enabled&&(a=t.attr("data-index"),c.showTooltip(e,a));var i=t.attr("class")===e.cssPrefix+"expanded";s.onSegmentEvent(e,e.options.callbacks.onMouseoverSegment,t,i)})),t.on("mousemove",(function(){c.moveTooltip(e)})),t.on("mouseout",(function(){var t,a,n=d3.select(this);if(n.attr("class")===e.cssPrefix+"arc"?t=n.select("path"):(a=n.attr("data-index"),t=d3.select("#"+e.cssPrefix+"segment"+a)),e.options.effects.highlightSegmentOnMouseover){a=t.attr("data-index");var r=e.options.colors[a];e.options.misc.gradient.enabled&&(r="url(#"+e.cssPrefix+"grad"+a+")"),t.style("fill",r)}e.options.tooltips.enabled&&(a=t.attr("data-index"),c.hideTooltip(e,a));var o=t.attr("class")===e.cssPrefix+"expanded";s.onSegmentEvent(e,e.options.callbacks.onMouseoutSegment,t,o)}))},onSegmentEvent:function(e,t,a,r){if(n.isFunction(t)){var o=parseInt(a.attr("data-index"),10);t({segment:a.node(),index:o,expanded:r,data:e.options.data.content[o]})}},openSegment:function(e,t){e.isOpeningSegment||(e.isOpeningSegment=!0,s.maybeCloseOpenSegment(e),d3.select(t).transition().ease(s.effectMap[e.options.effects.pullOutSegmentOnClick.effect]).duration(e.options.effects.pullOutSegmentOnClick.speed).attr("transform",(function(t,a){var n=e.arc.centroid(t),r=n[0],o=n[1],i=Math.sqrt(r*r+o*o),s=parseInt(e.options.effects.pullOutSegmentOnClick.size,10);return"translate("+r/i*s+","+o/i*s+")"})).on("end",(function(a,n){e.currentlyOpenSegment=t,e.isOpeningSegment=!1,d3.select(t).attr("class",e.cssPrefix+"expanded")})))},maybeCloseOpenSegment:function(e){"undefined"!==typeof e&&e.svg.selectAll("."+e.cssPrefix+"expanded").size()>0&&s.closeSegment(e,e.svg.select("."+e.cssPrefix+"expanded").node())},closeSegment:function(e,t){d3.select(t).transition().duration(400).attr("transform","translate(0,0)").on("end",(function(a,n){d3.select(t).attr("class",""),e.currentlyOpenSegment=null}))},getCentroid:function(e){var t=e.getBBox();return{x:t.x+t.width/2,y:t.y+t.height/2}},getSegmentAngle:function(e,t,a,n){var o,i=r({compounded:!0,midpoint:!1},n),s=t[e].value;if(i.compounded){o=0;for(var l=0;l<=e;l++)o+=t[l].value}"undefined"===typeof o&&(o=s);var c=o/a*360;return i.midpoint&&(c-=s/a*360/2),c}},l={offscreenCoord:-1e4,addTitle:function(e){e.__title=e.svg.selectAll("."+e.cssPrefix+"title").data([e.options.header.title]).enter().append("text").text((function(e){return e.text})).attr("id",e.cssPrefix+"title").attr("class",e.cssPrefix+"title").attr("x",l.offscreenCoord).attr("y",l.offscreenCoord).attr("text-anchor",(function(){return"top-center"===e.options.header.location||"pie-center"===e.options.header.location?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize+"px"})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionTitle:function(e){var t,a=e.textComponents,n=e.options.header.location,r=e.options.misc.canvasPadding,o=e.options.size.canvasWidth,i=e.options.header.titleSubtitlePadding;t="top-left"===n?r.left:(o-r.right)/2+r.left,t+=e.options.misc.pieCenterOffset.x;var s=r.top+a.title.h;"pie-center"===n&&(s=e.pieCenter.y,a.subtitle.exists?s=s-(a.title.h+i+a.subtitle.h)/2+a.title.h:s+=a.title.h/4),e.__title.attr("x",t).attr("y",s)},addSubtitle:function(e){var t=e.options.header.location;e.__subtitle=e.svg.selectAll("."+e.cssPrefix+"subtitle").data([e.options.header.subtitle]).enter().append("text").text((function(e){return e.text})).attr("x",l.offscreenCoord).attr("y",l.offscreenCoord).attr("id",e.cssPrefix+"subtitle").attr("class",e.cssPrefix+"subtitle").attr("text-anchor",(function(){return"top-center"===t||"pie-center"===t?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize+"px"})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionSubtitle:function(e){var t,a=e.options.misc.canvasPadding,n=e.options.size.canvasWidth;t="top-left"===e.options.header.location?a.left:(n-a.right)/2+a.left,t+=e.options.misc.pieCenterOffset.x;var r=l.getHeaderHeight(e);e.__subtitle.attr("x",t).attr("y",r)},addFooter:function(e){e.__footer=e.svg.selectAll("."+e.cssPrefix+"footer").data([e.options.footer]).enter().append("text").text((function(e){return e.text})).attr("x",l.offscreenCoord).attr("y",l.offscreenCoord).attr("id",e.cssPrefix+"footer").attr("class",e.cssPrefix+"footer").attr("text-anchor",(function(){var t="left";return"bottom-center"===e.options.footer.location?t="middle":"bottom-right"===e.options.footer.location&&(t="left"),t})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize+"px"})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionFooter:function(e){var t,a=e.options.footer.location,n=e.textComponents.footer.w,r=e.options.size.canvasWidth,o=e.options.size.canvasHeight,i=e.options.misc.canvasPadding;t="bottom-left"===a?i.left:"bottom-right"===a?r-n-i.right:r/2,e.__footer.attr("x",t).attr("y",o-i.bottom)},getHeaderHeight:function(e){var t;if(e.textComponents.title.exists){var a=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h;t="pie-center"===e.options.header.location?e.pieCenter.y-a/2+a:a+e.options.misc.canvasPadding.top}else if("pie-center"===e.options.header.location){var n=e.options.misc.canvasPadding.bottom+e.textComponents.footer.h;t=(e.options.size.canvasHeight-n)/2+e.options.misc.canvasPadding.top+e.textComponents.subtitle.h/2}else t=e.options.misc.canvasPadding.top+e.textComponents.subtitle.h;return t}},c={addTooltips:function(e){var t=e.svg.insert("g").attr("class",e.cssPrefix+"tooltips");t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"tooltip").attr("id",(function(t,a){return e.cssPrefix+"tooltip"+a})).style("opacity",0).append("rect").attr("rx",e.options.tooltips.styles.borderRadius).attr("ry",e.options.tooltips.styles.borderRadius).attr("x",-e.options.tooltips.styles.padding).attr("opacity",e.options.tooltips.styles.backgroundOpacity).style("fill",e.options.tooltips.styles.backgroundColor),t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).append("text").attr("fill",(function(t){return e.options.tooltips.styles.color})).style("font-size",(function(t){return e.options.tooltips.styles.fontSize})).style("font-weight",(function(t){return e.options.tooltips.styles.fontWeight})).style("font-family",(function(t){return e.options.tooltips.styles.font})).text((function(t,a){var n=e.options.tooltips.string;return"caption"===e.options.tooltips.type&&(n=t.caption),c.replacePlaceholders(e,n,a,{label:t.label,value:t.value,percentage:t.percentage})})),t.selectAll("."+e.cssPrefix+"tooltip rect").attr("width",(function(t,a){return n.getDimensions(e.cssPrefix+"tooltip"+a).w+2*e.options.tooltips.styles.padding})).attr("height",(function(t,a){return n.getDimensions(e.cssPrefix+"tooltip"+a).h+2*e.options.tooltips.styles.padding})).attr("y",(function(t,a){return-n.getDimensions(e.cssPrefix+"tooltip"+a).h/2+1}))},showTooltip:function(e,t){var a=e.options.tooltips.styles.fadeInSpeed;c.currentTooltip===t&&(a=1),c.currentTooltip=t,d3.select("#"+e.cssPrefix+"tooltip"+t).transition().duration(a).style("opacity",(function(){return 1})),c.moveTooltip(e)},moveTooltip:function(e){d3.selectAll("#"+e.cssPrefix+"tooltip"+c.currentTooltip).attr("transform",(function(t){var a=d3.mouse(this.parentNode);return"translate("+(a[0]+e.options.tooltips.styles.padding+2)+","+(a[1]-2*e.options.tooltips.styles.padding-2)+")"}))},hideTooltip:function(e,t){d3.select("#"+e.cssPrefix+"tooltip"+t).style("opacity",(function(){return 0})),d3.select("#"+e.cssPrefix+"tooltip"+c.currentTooltip).attr("transform",(function(t,a){return"translate("+(e.options.size.canvasWidth+1e3)+","+(e.options.size.canvasHeight+1e3)+")"}))},replacePlaceholders:function(e,t,a,r){return n.isFunction(e.options.tooltips.placeholderParser)&&e.options.tooltips.placeholderParser(a,r),t.replace(/\{(\w+)\}/g,(function(e){var t=arguments[1];return r.hasOwnProperty(t)?r[arguments[1]]:arguments[0]}))}},u=function(n,o){if(this.element=n,"string"===typeof n){var i=n.replace(/^#/,"");this.element=document.getElementById(i)}var s={};r(!0,s,t,o),this.options=s,null!==this.options.misc.cssPrefix?this.cssPrefix=this.options.misc.cssPrefix:(this.cssPrefix="p"+e+"_",e++),a(this)&&(d3.select(this.element).attr("d3pie","0.2.1"),h.call(this),p.call(this))};u.prototype.recreate=function(){a(this)&&(h.call(this),p.call(this))},u.prototype.redraw=function(){this.element.innerHTML="",p.call(this)},u.prototype.destroy=function(){this.element.innerHTML="",d3.select(this.element).attr("d3pie",null)},u.prototype.getOpenSegment=function(){var e=this.currentlyOpenSegment;if(null!==e&&"undefined"!==typeof e){var t=parseInt(d3.select(e).attr("data-index"),10);return{element:e,index:t,data:this.options.data.content[t]}}return null},u.prototype.openSegment=function(e){(e=parseInt(e,10))<0||e>this.options.data.content.length-1||s.openSegment(this,d3.select("#"+this.cssPrefix+"segment"+e).node())},u.prototype.closeSegment=function(){s.maybeCloseOpenSegment(this)},u.prototype.updateProp=function(e,t){switch(e){case"header.title.text":var a=n.processObj(this.options,e);n.processObj(this.options,e,t),d3.select("#"+this.cssPrefix+"title").html(t),(""===a&&""!==t||""!==a&&""===t)&&this.redraw();break;case"header.subtitle.text":var r=n.processObj(this.options,e);n.processObj(this.options,e,t),d3.select("#"+this.cssPrefix+"subtitle").html(t),(""===r&&""!==t||""!==r&&""===t)&&this.redraw();break;case"callbacks.onload":case"callbacks.onMouseoverSegment":case"callbacks.onMouseoutSegment":case"callbacks.onClickSegment":case"effects.pullOutSegmentOnClick.effect":case"effects.pullOutSegmentOnClick.speed":case"effects.pullOutSegmentOnClick.size":case"effects.highlightSegmentOnMouseover":case"effects.highlightLuminosity":n.processObj(this.options,e,t);break;default:n.processObj(this.options,e,t),this.destroy(),this.recreate()}};var h=function(){this.options.data.content=o.sortPieData(this),this.options.data.smallSegmentGrouping.enabled&&(this.options.data.content=n.applySmallSegmentGrouping(this.options.data.content,this.options.data.smallSegmentGrouping)),this.options.colors=n.initSegmentColors(this),this.totalSize=o.getTotalPieSize(this.options.data.content);for(var e=this.options.labels.percentage.decimalPlaces,t=0;t<this.options.data.content.length;t++)this.options.data.content[t].percentage=f(this.options.data.content[t].value,this.totalSize,e);for(var a=0,r=0;r<this.options.data.content.length;r++)r===this.options.data.content.length-1&&(this.options.data.content[r].percentage=(100-a).toFixed(e)),a+=parseFloat(this.options.data.content[r].percentage)},p=function(){this.svg=n.addSVGSpace(this),this.textComponents={headerHeight:0,title:{exists:""!==this.options.header.title.text,h:0,w:0},subtitle:{exists:""!==this.options.header.subtitle.text,h:0,w:0},footer:{exists:""!==this.options.footer.text,h:0,w:0}},this.outerLabelGroupData=[],this.textComponents.title.exists&&l.addTitle(this),this.textComponents.subtitle.exists&&l.addSubtitle(this),l.addFooter(this),l.positionFooter(this);var e=n.getDimensions(this.__footer.node());if(this.textComponents.footer.h=e.h,this.textComponents.footer.w=e.w,this.textComponents.title.exists){var t=n.getDimensions(this.__title.node());this.textComponents.title.h=t.h,this.textComponents.title.w=t.w}if(this.textComponents.subtitle.exists){var a=n.getDimensions(this.__subtitle.node());this.textComponents.subtitle.h=a.h,this.textComponents.subtitle.w=a.w}if(this.textComponents.title.exists||this.textComponents.subtitle.exists){var r=0;this.textComponents.title.exists&&(r+=this.textComponents.title.h,this.textComponents.subtitle.exists&&(r+=this.options.header.titleSubtitlePadding)),this.textComponents.subtitle.exists&&(r+=this.textComponents.subtitle.h),this.textComponents.headerHeight=r}if(o.computePieRadius(this),o.calculatePieCenter(this),l.positionTitle(this),l.positionSubtitle(this),this.options.misc.gradient.enabled&&s.addGradients(this),s.create(this),this.__labels={},i.add(this,"inner",this.options.labels.inner.format),i.add(this,"outer",this.options.labels.outer.format),i.positionLabelElements(this,"inner",this.options.labels.inner.format),i.positionLabelElements(this,"outer",this.options.labels.outer.format),i.computeOuterLabelCoords(this),i.positionLabelGroups(this,"outer"),i.computeLabelLinePositions(this),this.options.labels.lines.enabled&&"none"!==this.options.labels.outer.format&&i.addLabelLines(this),i.positionLabelGroups(this,"inner"),n.isFunction(this.options.callbacks.onload))try{this.options.callbacks.onload()}catch(u){}this.options.tooltips.enabled&&c.addTooltips(this),s.addSegmentEventHandlers(this)},f=function(e,t,a){var n=e/t;return a<=0?Math.round(100*n):(100*n).toFixed(a)};return u})?n.apply(t,r):n)||(e.exports=o)},306:function(e,t,a){"use strict";a(276);var n=a(277);a.d(t,"CloudConnectionStatus",(function(){return n.a}))},324:function(e,t,a){e.exports=a(566)},340:function(e,t,a){},36:function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return f})),a.d(t,"c",(function(){return g}));var n=a(311),r=a(149),o=a(309),i=a(228),s=a(312),l=a(135),c=a(571),u=a(75),d=u.c?{src:"http://localhost:3000/some-script.js"}:document.currentScript,h=function(){if(u.a)return"http://localhost:19999";if(u.b){var e=window.location.pathname.replace("index.html","").replace("default.html","");return window.location.origin+e.replace(/\/v1\/?$/,"")}return function(e){return e.replace(new RegExp("[^\\/]*\\.js(\\/?.*)?$"),"").replace("/static/js","")}(Object(n.a)([[Boolean,r.a],[o.a,function(){return Object(i.a)(document.getElementsByTagName("script"))}]])(d).src).replace(/\/v1\/?$/,"")},p=Object(n.a)([[Object(s.a)(i.a,Object(l.a)("/")),r.a],[o.a,function(e){return Object(c.a)(e,"/")}]]),f=p(window.netdataServer||h()),g=u.a?"/":p(h())},39:function(e,t,a){"use strict";a.d(t,"f",(function(){return u})),a.d(t,"a",(function(){return f})),a.d(t,"j",(function(){return g})),a.d(t,"h",(function(){return m})),a.d(t,"g",(function(){return b})),a.d(t,"l",(function(){return v})),a.d(t,"i",(function(){return _})),a.d(t,"c",(function(){return y})),a.d(t,"b",(function(){return O})),a.d(t,"k",(function(){return x})),a.d(t,"e",(function(){return w})),a.d(t,"d",(function(){return E}));var n=a(49),r=a(17),o=a(9),i=a(167),s=a(45),l=function(e){return e[s.c]},c=Object(r.a)(l,(function(e,t){return t.id}),(function(e,t){return e[t]||i.b})),u=Object(r.a)(c,(function(e){return e.chartData})),d=Object(r.a)(c,Object(n.a)("chartMetadata")),h=Object(r.a)(o.e,d,(function(e,t){return e||t})),p=Object(r.a)(c,Object(n.a)("isFetchingDetails")),f=function(){return Object(r.a)(h,p,(function(e,t){return{chartMetadata:e,isFetchingDetails:t}}))},g=Object(r.a)(c,(function(e){return e.viewRange})),m=Object(r.a)(c,(function(e){return e.isFetchingData})),b=Object(r.a)(c,(function(e){return e.fetchDataParams})),v=Object(r.a)(c,(function(e){return e.resizeHeight})),_=Object(r.a)(c,Object(n.a)("chartPanAndZoom")),y=(Object(r.a)(l,(function(e){return Object.values(e).some((function(e){return e.isFetchingData}))})),Object(r.a)(l,(function(e){return Object.values(e).reduce((function(e,t){return e+(function(e){return e.isFetchDataFailure||Boolean(e.chartData)||e.isFetchDetailsFailure}(t)?1:0)}),0)}))),O=Object(r.a)(l,(function(e){return Object.keys(e).length})),x=Object(r.a)(l,(function(e){var t;return null===(t=Object.values(e).find((function(e){return e.isFetchingData})))||void 0===t?void 0:t.chartId})),w=Object(r.a)(l,(function(e){return Object.values(e).reduce((function(e,t){return e+(t.snapshotData?1:0)}),0)})),E=Object(r.a)(l,(function(e){return Object.values(e).reduce((function(e,t){return e+(t.snapshotDataIsError?1:0)}),0)}))},403:function(e,t){},42:function(e,t,a){"use strict";a.d(t,"a",(function(){return f})),a.d(t,"b",(function(){return b}));var n=a(37),r=a(7),o=a(0),i=(a(101),a(8)),s=a(9),l=function(e){return e>-10&&e<10?"0".concat(e.toString()):e.toString()},c=!!(Intl&&Intl.DateTimeFormat&&navigator.language),u=function(e){return"number"===typeof e?new Date(e):e},d=function(e){return u(e).toLocaleDateString()},h=function(e){return u(e).toLocaleTimeString()},p=function(e){var t=u(e);return"".concat(l(t.getHours()),":").concat(l(t.getMinutes()),":").concat(l(t.getSeconds()))},f=function(e){try{Intl.DateTimeFormat(navigator.language,{localeMatcher:"best fit",formatMatcher:"best fit",weekday:"short",year:"numeric",month:"short",day:"2-digit",timeZone:e})}catch(t){return!1}return!0},g=function(e,t){var a=t.locale,o=Object(n.a)(t,["locale"]);return new Intl.DateTimeFormat(null!==a&&void 0!==a?a:navigator.language,function(e){var t=e.long,a=e.isTime,n=e.secs,o=e.timezone;return Object(r.a)({hourCycle:"h23"},a?{}:t?{weekday:"short",year:"numeric",month:"short",day:"2-digit"}:{dateStyle:"short"},{},a&&{timeStyle:n?"medium":"short"},{timeZone:o})}(o)).format(e)},m=function(e){return""!==e&&"default"!==e?e:void 0},b=function(){var e=Object(i.b)(s.L),t=Object(i.b)(s.M),a=Object(o.useMemo)((function(){return c?function(t,a){return g(t,Object(r.a)({long:!0,timezone:m(e)},a))}:d}),[e]),n=Object(o.useMemo)((function(){return c?function(t,a){return g(t,Object(r.a)({secs:!0,isTime:!0,timezone:m(e)},a))}:h}),[e]),l=Object(o.useMemo)((function(){return c?function(t){return g(t,{secs:!0,isTime:!0,timezone:m(e)})}:p}),[e]);return{localeDateString:a,localeTimeString:n,xAxisDateString:Object(o.useMemo)((function(){return c?function(t){return g(t,{long:!0,timezone:m(e)})}:p}),[e]),xAxisTimeString:l,utcOffset:t}}},44:function(e,t,a){"use strict";a.d(t,"e",(function(){return o})),a.d(t,"f",(function(){return i})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return l})),a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return u}));var n=a(22),r=a(76),o=Object(n.createAction)("".concat(r.a,"/isSnapshotModeAction")),i=Object(n.createAction)("".concat(r.a,"/stopSnapshotModeAction")),s=Object(n.createAction)("".concat(r.a,"/showSignInModal")),l=Object(n.createAction)("".concat(r.a,"/explicitlySignIn")),c=Object(n.createAction)("".concat(r.a,"/isSignedInAction")),u=Object(n.createAction)("".concat(r.a,"/setOfflineAction"))},45:function(e,t,a){"use strict";a.d(t,"c",(function(){return n})),a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return o}));var n="chart",r=2e3,o=300},46:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),r=function(e,t){var a={now:"now",space:" ",negative_suffix:"ago",day:"day",days:"days",hour:"hour",hours:"hours",minute:"min",minutes:"mins",second:"sec",seconds:"secs",and:"and"},r="object"===typeof t?Object(n.a)({},a,{},t):a,o="string"===typeof e?parseInt(e,10):e;if(0===o)return r.now;var i="";o<0&&(o=-o,""!==r.negative_suffix&&(i=r.space+r.negative_suffix));var s=Math.floor(o/86400);o-=86400*s;var l=Math.floor(o/3600);o-=3600*l;var c=Math.floor(o/60);o-=60*c;var u=[];if(s>1?u.push(s.toString()+r.space+r.days):1===s&&u.push(s.toString()+r.space+r.day),l>1?u.push(l.toString()+r.space+r.hours):1===l&&u.push(l.toString()+r.space+r.hour),c>1?u.push(c.toString()+r.space+r.minutes):1===c&&u.push(c.toString()+r.space+r.minute),o>1?u.push(Math.floor(o).toString()+r.space+r.seconds):1===o&&u.push(Math.floor(o).toString()+r.space+r.second),1===u.length)return u.pop()+i;var d=u.pop();return"".concat(u.join(", ")," ").concat(r.and," ").concat(d).concat(i)}},470:function(e,t,a){},490:function(e,t,a){},51:function(e,t,a){var n;e.exports=function e(t,a,r){function o(s,l){if(!a[s]){if(!t[s]){if(!l&&"function"==typeof n&&n)return n(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=a[s]={exports:{}};t[s][0].call(u.exports,(function(e){return o(t[s][1][e]||e)}),u,u.exports,e,t,a,r)}return a[s].exports}for(var i="function"==typeof n&&n,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(e,t,a){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(u===setTimeout)return setTimeout(e,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(e,0);try{return u(e,0)}catch(t){try{return u.call(null,e,0)}catch(t){return u.call(this,e,0)}}}function i(){g&&p&&(g=!1,p.length?f=p.concat(f):m=-1,f.length&&s())}function s(){if(!g){var e=o(i);g=!0;for(var t=f.length;t;){for(p=f,f=[];++m<t;)p&&p[m].run();m=-1,t=f.length}p=null,g=!1,function(e){if(d===clearTimeout)return clearTimeout(e);if((d===r||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{d(e)}catch(t){try{return d.call(null,e)}catch(t){return d.call(this,e)}}}(e)}}function l(e,t){this.fun=e,this.array=t}function c(){}var u,d,h=t.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(e){u=n}try{d="function"==typeof clearTimeout?clearTimeout:r}catch(e){d=r}}();var p,f=[],g=!1,m=-1;h.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var a=1;a<arguments.length;a++)t[a-1]=arguments[a];f.push(new l(e,t)),1!==f.length||g||o(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=c,h.addListener=c,h.once=c,h.off=c,h.removeListener=c,h.removeAllListeners=c,h.emit=c,h.prependListener=c,h.prependOnceListener=c,h.listeners=function(e){return[]},h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},{}],2:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){return e&&e.__esModule?e:{default:e}}(e("./bars")),r=function(){};(r.prototype=new n.default).extractSeries=function(e,t,a){for(var n,r,o,i=[],s=a.get("logscale"),l=0;l<e.length;l++)n=e[l][0],o=e[l][t],s&&null!==o&&(o[0]<=0||o[1]<=0||o[2]<=0)&&(o=null),null!==o?null===(r=o[1])||isNaN(r)?i.push([n,r,[r,r]]):i.push([n,r,[o[0],o[2]]]):i.push([n,null,[null,null]]);return i},r.prototype.rollingAverage=function(e,t,a){t=Math.min(t,e.length);var n,r,o,i,s,l,c,u=[];for(r=0,i=0,o=0,s=0,l=0;l<e.length;l++){if(n=e[l][1],c=e[l][2],u[l]=e[l],null===n||isNaN(n)||(r+=c[0],i+=n,o+=c[1],s+=1),l-t>=0){var d=e[l-t];null===d[1]||isNaN(d[1])||(r-=d[2][0],i-=d[1],o-=d[2][1],s-=1)}u[l]=s?[e[l][0],1*i/s,[1*r/s,1*o/s]]:[e[l][0],null,[null,null]]}return u},a.default=r,t.exports=a.default},{"./bars":5}],3:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){return e&&e.__esModule?e:{default:e}}(e("./bars")),r=function(){};(r.prototype=new n.default).extractSeries=function(e,t,a){for(var n,r,o,i,s=[],l=a.get("sigma"),c=a.get("logscale"),u=0;u<e.length;u++)n=e[u][0],i=e[u][t],c&&null!==i&&(i[0]<=0||i[0]-l*i[1]<=0)&&(i=null),null!==i?null===(r=i[0])||isNaN(r)?s.push([n,r,[r,r,r]]):(o=l*i[1],s.push([n,r,[r-o,r+o,i[1]]])):s.push([n,null,[null,null,null]]);return s},r.prototype.rollingAverage=function(e,t,a){t=Math.min(t,e.length);var n,r,o,i,s,l,c,u,d,h=[],p=a.get("sigma");for(n=0;n<e.length;n++){for(s=0,u=0,l=0,r=Math.max(0,n-t+1);r<n+1;r++)null===(o=e[r][1])||isNaN(o)||(l++,s+=o,u+=Math.pow(e[r][2][2],2));l?(c=Math.sqrt(u)/l,d=s/l,h[n]=[e[n][0],d,[d-p*c,d+p*c]]):(i=1==t?e[n][1]:null,h[n]=[e[n][0],i,[i,i]])}return h},a.default=r,t.exports=a.default},{"./bars":5}],4:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){return e&&e.__esModule?e:{default:e}}(e("./bars")),r=function(){};(r.prototype=new n.default).extractSeries=function(e,t,a){for(var n,r,o,i,s,l,c,u=[],d=a.get("sigma"),h=a.get("logscale"),p=0;p<e.length;p++)n=e[p][0],o=e[p][t],h&&null!==o&&(o[0]<=0||o[1]<=0)&&(o=null),null!==o?(i=o[0],s=o[1],null===i||isNaN(i)?u.push([n,i,[i,i,i,s]]):(l=s?i/s:0,c=100*(s?d*Math.sqrt(l*(1-l)/s):1),r=100*l,u.push([n,r,[r-c,r+c,i,s]]))):u.push([n,null,[null,null,null,null]]);return u},r.prototype.rollingAverage=function(e,t,a){t=Math.min(t,e.length);var n,r,o,i,s=[],l=a.get("sigma"),c=a.get("wilsonInterval"),u=0,d=0;for(o=0;o<e.length;o++){u+=e[o][2][2],d+=e[o][2][3],o-t>=0&&(u-=e[o-t][2][2],d-=e[o-t][2][3]);var h=e[o][0],p=d?u/d:0;if(c)if(d){var f=p<0?0:p,g=d,m=l*Math.sqrt(f*(1-f)/g+l*l/(4*g*g)),b=1+l*l/d;n=(f+l*l/(2*d)-m)/b,r=(f+l*l/(2*d)+m)/b,s[o]=[h,100*f,[100*n,100*r]]}else s[o]=[h,0,[0,0]];else i=d?l*Math.sqrt(p*(1-p)/d):1,s[o]=[h,100*p,[100*(p-i),100*(p+i)]]}return s},a.default=r,t.exports=a.default},{"./bars":5}],5:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(a,"__esModule",{value:!0});var r=n(e("./datahandler")),o=n(e("../dygraph-layout")),i=function(){r.default.call(this)};(i.prototype=new r.default).extractSeries=function(e,t,a){},i.prototype.rollingAverage=function(e,t,a){},i.prototype.onPointsCreated_=function(e,t){for(var a=0;a<e.length;++a){var n=e[a],o=t[a];o.y_top=NaN,o.y_bottom=NaN,o.yval_minus=r.default.parseFloat(n[2][0]),o.yval_plus=r.default.parseFloat(n[2][1])}},i.prototype.getExtremeYValues=function(e,t,a){for(var n,r=null,o=null,i=e.length-1,s=0;s<=i;s++)if(null!==(n=e[s][1])&&!isNaN(n)){var l=e[s][2][0],c=e[s][2][1];l>n&&(l=n),c<n&&(c=n),(null===o||c>o)&&(o=c),(null===r||l<r)&&(r=l)}return[r,o]},i.prototype.onLineEvaluated=function(e,t,a){for(var n,r=0;r<e.length;r++)(n=e[r]).y_top=o.default.calcYNormal_(t,n.yval_minus,a),n.y_bottom=o.default.calcYNormal_(t,n.yval_plus,a)},a.default=i,t.exports=a.default},{"../dygraph-layout":13,"./datahandler":6}],6:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(){},r=n;r.X=0,r.Y=1,r.EXTRAS=2,r.prototype.extractSeries=function(e,t,a){},r.prototype.seriesToPoints=function(e,t,a){for(var n=[],o=0;o<e.length;++o){var i=e[o],s=i[1],l=null===s?null:r.parseFloat(s),c={x:NaN,y:NaN,xval:r.parseFloat(i[0]),yval:l,name:t,idx:o+a,canvasx:NaN,canvasy:NaN};n.push(c)}return this.onPointsCreated_(e,n),n},r.prototype.onPointsCreated_=function(e,t){},r.prototype.rollingAverage=function(e,t,a){},r.prototype.getExtremeYValues=function(e,t,a){},r.prototype.onLineEvaluated=function(e,t,a){},r.parseFloat=function(e){return null===e?NaN:e},a.default=n,t.exports=a.default},{}],7:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(a,"__esModule",{value:!0});var r=(n(e("./datahandler")),e("./default")),o=n(r),i=function(){};(i.prototype=new o.default).extractSeries=function(e,t,a){for(var n,r,o,i,s,l=[],c=a.get("logscale"),u=0;u<e.length;u++)n=e[u][0],o=e[u][t],c&&null!==o&&(o[0]<=0||o[1]<=0)&&(o=null),null!==o?(i=o[0],s=o[1],null===i||isNaN(i)?l.push([n,i,[i,s]]):(r=100*(s?i/s:0),l.push([n,r,[i,s]]))):l.push([n,null,[null,null]]);return l},i.prototype.rollingAverage=function(e,t,a){t=Math.min(t,e.length);var n,r=[],o=0,i=0;for(n=0;n<e.length;n++){o+=e[n][2][0],i+=e[n][2][1],n-t>=0&&(o-=e[n-t][2][0],i-=e[n-t][2][1]);var s=e[n][0],l=i?o/i:0;r[n]=[s,100*l]}return r},a.default=i,t.exports=a.default},{"./datahandler":6,"./default":8}],8:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){return e&&e.__esModule?e:{default:e}}(e("./datahandler")),r=function(){};(r.prototype=new n.default).extractSeries=function(e,t,a){for(var n=[],r=a.get("logscale"),o=0;o<e.length;o++){var i=e[o][0],s=e[o][t];r&&s<=0&&(s=null),n.push([i,s])}return n},r.prototype.rollingAverage=function(e,t,a){var n,r,o,i,s,l=[];if(1==(t=Math.min(t,e.length)))return e;for(n=0;n<e.length;n++){for(i=0,s=0,r=Math.max(0,n-t+1);r<n+1;r++)null===(o=e[r][1])||isNaN(o)||(s++,i+=e[r][1]);l[n]=s?[e[n][0],i/s]:[e[n][0],null]}return l},r.prototype.getExtremeYValues=function(e,t,a){for(var n,r=null,o=null,i=e.length-1,s=0;s<=i;s++)null===(n=e[s][1])||isNaN(n)||((null===o||n>o)&&(o=n),(null===r||n<r)&&(r=n));return[r,o]},a.default=r,t.exports=a.default},{"./datahandler":6}],9:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("./dygraph-utils")),r=function(e){return e&&e.__esModule?e:{default:e}}(e("./dygraph")),o=function(e,t,a,r){if(this.dygraph_=e,this.layout=r,this.element=t,this.elementContext=a,this.height=e.height_,this.width=e.width_,!n.isCanvasSupported(this.element))throw"Canvas is not supported.";this.area=r.getPlotArea();var o=this.dygraph_.canvas_ctx_;o.beginPath(),o.rect(this.area.x,this.area.y,this.area.w,this.area.h),o.clip(),(o=this.dygraph_.hidden_ctx_).beginPath(),o.rect(this.area.x,this.area.y,this.area.w,this.area.h),o.clip()};o.prototype.clear=function(){this.elementContext.clearRect(0,0,this.width,this.height)},o.prototype.render=function(){this._updatePoints(),this._renderLineChart()},o._getIteratorPredicate=function(e){return e?o._predicateThatSkipsEmptyPoints:null},o._predicateThatSkipsEmptyPoints=function(e,t){return null!==e[t].yval},o._drawStyledLine=function(e,t,a,r,i,s,l){var c=e.dygraph,u=c.getBooleanOption("stepPlot",e.setName);n.isArrayLike(r)||(r=null);var d=c.getBooleanOption("drawGapEdgePoints",e.setName),h=e.points,p=e.setName,f=n.createIterator(h,0,h.length,o._getIteratorPredicate(c.getBooleanOption("connectSeparatedPoints",p))),g=r&&r.length>=2,m=e.drawingContext;m.save(),g&&m.setLineDash&&m.setLineDash(r);var b=o._drawSeries(e,f,a,l,i,d,u,t);o._drawPointsOnLine(e,b,s,t,l),g&&m.setLineDash&&m.setLineDash([]),m.restore()},o._drawSeries=function(e,t,a,n,r,o,i,s){var l,c,u=null,d=null,h=null,p=[],f=!0,g=e.drawingContext;g.beginPath(),g.strokeStyle=s,g.lineWidth=a;for(var m=t.array_,b=t.end_,v=t.predicate_,_=t.start_;_<b;_++){if(c=m[_],v){for(;_<b&&!v(m,_);)_++;if(_==b)break;c=m[_]}if(null===c.canvasy||c.canvasy!=c.canvasy)i&&null!==u&&(g.moveTo(u,d),g.lineTo(c.canvasx,d)),u=d=null;else{if(l=!1,o||null===u){t.nextIdx_=_,t.next();var y=null===(h=t.hasNext?t.peek.canvasy:null)||h!=h;l=null===u&&y,o&&(!f&&null===u||t.hasNext&&y)&&(l=!0)}null!==u?a&&(i&&(g.moveTo(u,d),g.lineTo(c.canvasx,d)),g.lineTo(c.canvasx,c.canvasy)):g.moveTo(c.canvasx,c.canvasy),(r||l)&&p.push([c.canvasx,c.canvasy,c.idx]),u=c.canvasx,d=c.canvasy}f=!1}return g.stroke(),p},o._drawPointsOnLine=function(e,t,a,n,r){for(var o=e.drawingContext,i=0;i<t.length;i++){var s=t[i];o.save(),a.call(e.dygraph,e.dygraph,e.setName,o,s[0],s[1],n,r,s[2]),o.restore()}},o.prototype._updatePoints=function(){for(var e=this.layout.points,t=e.length;t--;)for(var a=e[t],n=a.length;n--;){var r=a[n];r.canvasx=this.area.w*r.x+this.area.x,r.canvasy=this.area.h*r.y+this.area.y}},o.prototype._renderLineChart=function(e,t){var a,r,o=t||this.elementContext,i=this.layout.points,s=this.layout.setNames;this.colors=this.dygraph_.colorsMap_;var l=this.dygraph_.getOption("plotter"),c=l;n.isArrayLike(c)||(c=[c]);var u={};for(a=0;a<s.length;a++){r=s[a];var d=this.dygraph_.getOption("plotter",r);d!=l&&(u[r]=d)}for(a=0;a<c.length;a++)for(var h=c[a],p=a==c.length-1,f=0;f<i.length;f++)if(r=s[f],!e||r==e){var g=i[f],m=h;if(r in u){if(!p)continue;m=u[r]}var b=this.colors[r],v=this.dygraph_.getOption("strokeWidth",r);o.save(),o.strokeStyle=b,o.lineWidth=v,m({points:g,setName:r,drawingContext:o,color:b,strokeWidth:v,dygraph:this.dygraph_,axis:this.dygraph_.axisPropertiesForSeries(r),plotArea:this.area,seriesIndex:f,seriesCount:i.length,singleSeriesName:e,allSeriesPoints:i}),o.restore()}},o._Plotters={linePlotter:function(e){o._linePlotter(e)},fillPlotter:function(e){o._fillPlotter(e)},errorPlotter:function(e){o._errorPlotter(e)}},o._linePlotter=function(e){var t=e.dygraph,a=e.setName,r=e.strokeWidth,i=t.getNumericOption("strokeBorderWidth",a),s=t.getOption("drawPointCallback",a)||n.Circles.DEFAULT,l=t.getOption("strokePattern",a),c=t.getBooleanOption("drawPoints",a),u=t.getNumericOption("pointSize",a);i&&r&&o._drawStyledLine(e,t.getOption("strokeBorderColor",a),r+2*i,l,c,s,u),o._drawStyledLine(e,e.color,r,l,c,s,u)},o._errorPlotter=function(e){var t=e.dygraph,a=e.setName;if(t.getBooleanOption("errorBars")||t.getBooleanOption("customBars")){t.getBooleanOption("fillGraph",a)&&console.warn("Can't use fillGraph option with error bars");var r,i=e.drawingContext,s=e.color,l=t.getNumericOption("fillAlpha",a),c=t.getBooleanOption("stepPlot",a),u=e.points,d=n.createIterator(u,0,u.length,o._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",a))),h=NaN,p=NaN,f=[-1,-1],g=n.toRGB_(s),m="rgba("+g.r+","+g.g+","+g.b+","+l+")";i.fillStyle=m,i.beginPath();for(var b=function(e){return null===e||void 0===e||isNaN(e)};d.hasNext;){var v=d.next();!c&&b(v.y)||c&&!isNaN(p)&&b(p)?h=NaN:(r=[v.y_bottom,v.y_top],c&&(p=v.y),isNaN(r[0])&&(r[0]=v.y),isNaN(r[1])&&(r[1]=v.y),r[0]=e.plotArea.h*r[0]+e.plotArea.y,r[1]=e.plotArea.h*r[1]+e.plotArea.y,isNaN(h)||(c?(i.moveTo(h,f[0]),i.lineTo(v.canvasx,f[0]),i.lineTo(v.canvasx,f[1])):(i.moveTo(h,f[0]),i.lineTo(v.canvasx,r[0]),i.lineTo(v.canvasx,r[1])),i.lineTo(h,f[1]),i.closePath()),f=r,h=v.canvasx)}i.fill()}},o._fastCanvasProxy=function(e){var t=[],a=null,n=null,r=0,o=function(a){!function(e){if(!(t.length<=1)){for(var a=t.length-1;a>0;a--)if(2==(s=t[a])[0]){var n=t[a-1];n[1]==s[1]&&n[2]==s[2]&&t.splice(a,1)}for(a=0;a<t.length-1;)2==(s=t[a])[0]&&2==t[a+1][0]?t.splice(a,1):a++;if(t.length>2&&!e){var r=0;2==t[0][0]&&r++;var o=null,i=null;for(a=r;a<t.length;a++){var s;if(1==(s=t[a])[0])if(null===o&&null===i)o=a,i=a;else{var l=s[2];l<t[o][2]?o=a:l>t[i][2]&&(i=a)}}var c=t[o],u=t[i];t.splice(r,t.length-r),o<i?(t.push(c),t.push(u)):o>i?(t.push(u),t.push(c)):t.push(c)}}}(a);for(var o=0,i=t.length;o<i;o++){var s=t[o];1==s[0]?e.lineTo(s[1],s[2]):2==s[0]&&e.moveTo(s[1],s[2])}t.length&&(n=t[t.length-1][1]),r+=t.length,t=[]},i=function(e,r,i){var s=Math.round(r);null!==a&&s==a||(o(a-n>1||s-a>1),a=s),t.push([e,r,i])};return{moveTo:function(e,t){i(2,e,t)},lineTo:function(e,t){i(1,e,t)},stroke:function(){o(!0),e.stroke()},fill:function(){o(!0),e.fill()},beginPath:function(){o(!0),e.beginPath()},closePath:function(){o(!0),e.closePath()},_count:function(){return r}}},o._fillPlotter=function(e){if(!e.singleSeriesName&&0===e.seriesIndex){for(var t=e.dygraph,a=t.getLabels().slice(1),i=a.length;i>=0;i--)t.visibility()[i]||a.splice(i,1);if(function(){for(var e=0;e<a.length;e++)if(t.getBooleanOption("fillGraph",a[e]))return!0;return!1}())for(var s,l,c=e.plotArea,u=e.allSeriesPoints,d=u.length,h=t.getBooleanOption("stackedGraph"),p=t.getColors(),f={},g=function(e,t,a,n){if(e.lineTo(t,a),h)for(var r=n.length-1;r>=0;r--){var o=n[r];e.lineTo(o[0],o[1])}},m=d-1;m>=0;m--){var b=e.drawingContext,v=a[m];if(t.getBooleanOption("fillGraph",v)){var _=t.getNumericOption("fillAlpha",v),y=t.getBooleanOption("stepPlot",v),O=p[m],x=t.axisPropertiesForSeries(v),w=1+x.minyval*x.yscale;w<0?w=0:w>1&&(w=1),w=c.h*w+c.y;var E,S=u[m],C=n.createIterator(S,0,S.length,o._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",v))),A=NaN,k=[-1,-1],j=n.toRGB_(O),T="rgba("+j.r+","+j.g+","+j.b+","+_+")";b.fillStyle=T,b.beginPath();var D,P=!0;(S.length>2*t.width_||r.default.FORCE_FAST_PROXY)&&(b=o._fastCanvasProxy(b));for(var M,L=[];C.hasNext;)if(M=C.next(),n.isOK(M.y)||y){if(h){if(!P&&D==M.xval)continue;var I;P=!1,D=M.xval,I=void 0===(s=f[M.canvasx])?w:l?s[0]:s,E=[M.canvasy,I],y?-1===k[0]?f[M.canvasx]=[M.canvasy,w]:f[M.canvasx]=[M.canvasy,k[0]]:f[M.canvasx]=M.canvasy}else E=isNaN(M.canvasy)&&y?[c.y+c.h,w]:[M.canvasy,w];isNaN(A)?(b.moveTo(M.canvasx,E[1]),b.lineTo(M.canvasx,E[0])):(y?(b.lineTo(M.canvasx,k[0]),b.lineTo(M.canvasx,E[0])):b.lineTo(M.canvasx,E[0]),h&&(L.push([A,k[1]]),l&&s?L.push([M.canvasx,s[1]]):L.push([M.canvasx,E[1]]))),k=E,A=M.canvasx}else g(b,A,k[1],L),L=[],A=NaN,null===M.y_stacked||isNaN(M.y_stacked)||(f[M.canvasx]=c.h*M.y_stacked+c.y);l=y,E&&M&&(g(b,M.canvasx,E[1],L),L=[]),b.fill()}}}},a.default=o,t.exports=a.default},{"./dygraph":18,"./dygraph-utils":17}],10:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}Object.defineProperty(a,"__esModule",{value:!0});var o=r(e("./dygraph-tickers")),i=n(e("./dygraph-interaction-model")),s=n(e("./dygraph-canvas")),l=r(e("./dygraph-utils")),c={highlightCircleSize:3,highlightSeriesOpts:null,highlightSeriesBackgroundAlpha:.5,highlightSeriesBackgroundColor:"rgb(255, 255, 255)",labelsSeparateLines:!1,labelsShowZeroValues:!0,labelsKMB:!1,labelsKMG2:!1,showLabelsOnHighlight:!0,digitsAfterDecimal:2,maxNumberWidth:6,sigFigs:null,strokeWidth:1,strokeBorderWidth:0,strokeBorderColor:"white",axisTickSize:3,axisLabelFontSize:14,rightGap:5,showRoller:!1,xValueParser:void 0,delimiter:",",sigma:2,errorBars:!1,fractions:!1,wilsonInterval:!0,customBars:!1,fillGraph:!1,fillAlpha:.15,connectSeparatedPoints:!1,stackedGraph:!1,stackedGraphNaNFill:"all",hideOverlayOnMouseOut:!0,legend:"onmouseover",stepPlot:!1,xRangePad:0,yRangePad:null,drawAxesAtZero:!1,titleHeight:28,xLabelHeight:18,yLabelWidth:18,axisLineColor:"black",axisLineWidth:.3,gridLineWidth:.3,axisLabelWidth:50,gridLineColor:"rgb(128,128,128)",interactionModel:i.default.defaultModel,animatedZooms:!1,showRangeSelector:!1,rangeSelectorHeight:40,rangeSelectorPlotStrokeColor:"#808FAB",rangeSelectorPlotFillGradientColor:"white",rangeSelectorPlotFillColor:"#A7B1C4",rangeSelectorBackgroundStrokeColor:"gray",rangeSelectorBackgroundLineWidth:1,rangeSelectorPlotLineWidth:1.5,rangeSelectorForegroundStrokeColor:"black",rangeSelectorForegroundLineWidth:1,rangeSelectorAlpha:.6,showInRangeSelector:null,plotter:[s.default._fillPlotter,s.default._errorPlotter,s.default._linePlotter],plugins:[],axes:{x:{pixelsPerLabel:70,axisLabelWidth:60,axisLabelFormatter:l.dateAxisLabelFormatter,valueFormatter:l.dateValueFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:o.dateTicker},y:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:l.numberValueFormatter,axisLabelFormatter:l.numberAxisLabelFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:o.numericTicks},y2:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:l.numberValueFormatter,axisLabelFormatter:l.numberAxisLabelFormatter,drawAxis:!0,drawGrid:!1,independentTicks:!1,ticker:o.numericTicks}}};a.default=c,t.exports=a.default},{"./dygraph-canvas":9,"./dygraph-interaction-model":12,"./dygraph-tickers":16,"./dygraph-utils":17}],11:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){return e&&e.__esModule?e:{default:e}}(e("./dygraph")),r=function(e){this.container=e};r.prototype.draw=function(e,t){this.container.innerHTML="",void 0!==this.date_graph&&this.date_graph.destroy(),this.date_graph=new n.default(this.container,e,t)},r.prototype.setSelection=function(e){var t=!1;e.length&&(t=e[0].row),this.date_graph.setSelection(t)},r.prototype.getSelection=function(){var e=[],t=this.date_graph.getSelection();if(t<0)return e;for(var a=this.date_graph.layout_.points,n=0;n<a.length;++n)e.push({row:t,column:n+1});return e},a.default=r,t.exports=a.default},{"./dygraph":18}],12:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("./dygraph-utils")),r={maybeTreatMouseOpAsClick:function(e,t,a){a.dragEndX=n.dragGetX_(e,a),a.dragEndY=n.dragGetY_(e,a);var o=Math.abs(a.dragEndX-a.dragStartX),i=Math.abs(a.dragEndY-a.dragStartY);o<2&&i<2&&void 0!==t.lastx_&&-1!=t.lastx_&&r.treatMouseOpAsClick(t,e,a),a.regionWidth=o,a.regionHeight=i},startPan:function(e,t,a){var r,o;a.isPanning=!0;var i=t.xAxisRange();if(t.getOptionForAxis("logscale","x")?(a.initialLeftmostDate=n.log10(i[0]),a.dateRange=n.log10(i[1])-n.log10(i[0])):(a.initialLeftmostDate=i[0],a.dateRange=i[1]-i[0]),a.xUnitsPerPixel=a.dateRange/(t.plotter_.area.w-1),t.getNumericOption("panEdgeFraction")){var s=t.width_*t.getNumericOption("panEdgeFraction"),l=t.xAxisExtremes(),c=t.toDomXCoord(l[0])-s,u=t.toDomXCoord(l[1])+s,d=t.toDataXCoord(c),h=t.toDataXCoord(u);a.boundedDates=[d,h];var p=[],f=t.height_*t.getNumericOption("panEdgeFraction");for(r=0;r<t.axes_.length;r++){var g=(o=t.axes_[r]).extremeRange,m=t.toDomYCoord(g[0],r)+f,b=t.toDomYCoord(g[1],r)-f,v=t.toDataYCoord(m,r),_=t.toDataYCoord(b,r);p[r]=[v,_]}a.boundedValues=p}for(a.is2DPan=!1,a.axes=[],r=0;r<t.axes_.length;r++){o=t.axes_[r];var y={},O=t.yAxisRange(r);t.attributes_.getForAxis("logscale",r)?(y.initialTopValue=n.log10(O[1]),y.dragValueRange=n.log10(O[1])-n.log10(O[0])):(y.initialTopValue=O[1],y.dragValueRange=O[1]-O[0]),y.unitsPerPixel=y.dragValueRange/(t.plotter_.area.h-1),a.axes.push(y),o.valueRange&&(a.is2DPan=!0)}},movePan:function(e,t,a){a.dragEndX=n.dragGetX_(e,a),a.dragEndY=n.dragGetY_(e,a);var r=a.initialLeftmostDate-(a.dragEndX-a.dragStartX)*a.xUnitsPerPixel;a.boundedDates&&(r=Math.max(r,a.boundedDates[0]));var o=r+a.dateRange;if(a.boundedDates&&o>a.boundedDates[1]&&(o=(r-=o-a.boundedDates[1])+a.dateRange),t.getOptionForAxis("logscale","x")?t.dateWindow_=[Math.pow(n.LOG_SCALE,r),Math.pow(n.LOG_SCALE,o)]:t.dateWindow_=[r,o],a.is2DPan)for(var i=a.dragEndY-a.dragStartY,s=0;s<t.axes_.length;s++){var l=t.axes_[s],c=a.axes[s],u=i*c.unitsPerPixel,d=a.boundedValues?a.boundedValues[s]:null,h=c.initialTopValue+u;d&&(h=Math.min(h,d[1]));var p=h-c.dragValueRange;d&&p<d[0]&&(p=(h-=p-d[0])-c.dragValueRange),t.attributes_.getForAxis("logscale",s)?l.valueRange=[Math.pow(n.LOG_SCALE,p),Math.pow(n.LOG_SCALE,h)]:l.valueRange=[p,h]}t.drawGraph_(!1)}};r.endPan=r.maybeTreatMouseOpAsClick,r.startZoom=function(e,t,a){a.isZooming=!0,a.zoomMoved=!1},r.moveZoom=function(e,t,a){a.zoomMoved=!0,a.dragEndX=n.dragGetX_(e,a),a.dragEndY=n.dragGetY_(e,a);var r=Math.abs(a.dragStartX-a.dragEndX),o=Math.abs(a.dragStartY-a.dragEndY);a.dragDirection=r<o/2?n.VERTICAL:n.HORIZONTAL,t.drawZoomRect_(a.dragDirection,a.dragStartX,a.dragEndX,a.dragStartY,a.dragEndY,a.prevDragDirection,a.prevEndX,a.prevEndY),a.prevEndX=a.dragEndX,a.prevEndY=a.dragEndY,a.prevDragDirection=a.dragDirection},r.treatMouseOpAsClick=function(e,t,a){for(var n=e.getFunctionOption("clickCallback"),r=e.getFunctionOption("pointClickCallback"),o=null,i=-1,s=Number.MAX_VALUE,l=0;l<e.selPoints_.length;l++){var c=e.selPoints_[l],u=Math.pow(c.canvasx-a.dragEndX,2)+Math.pow(c.canvasy-a.dragEndY,2);!isNaN(u)&&(-1==i||u<s)&&(s=u,i=l)}var d=e.getNumericOption("highlightCircleSize")+2;if(s<=d*d&&(o=e.selPoints_[i]),o){var h={cancelable:!0,point:o,canvasx:a.dragEndX,canvasy:a.dragEndY};if(e.cascadeEvents_("pointClick",h))return;r&&r.call(e,t,o)}h={cancelable:!0,xval:e.lastx_,pts:e.selPoints_,canvasx:a.dragEndX,canvasy:a.dragEndY},e.cascadeEvents_("click",h)||n&&n.call(e,t,e.lastx_,e.selPoints_)},r.endZoom=function(e,t,a){t.clearZoomRect_(),a.isZooming=!1,r.maybeTreatMouseOpAsClick(e,t,a);var o=t.getArea();if(a.regionWidth>=10&&a.dragDirection==n.HORIZONTAL){var i=Math.min(a.dragStartX,a.dragEndX),s=Math.max(a.dragStartX,a.dragEndX);(i=Math.max(i,o.x))<(s=Math.min(s,o.x+o.w))&&t.doZoomX_(i,s),a.cancelNextDblclick=!0}else if(a.regionHeight>=10&&a.dragDirection==n.VERTICAL){var l=Math.min(a.dragStartY,a.dragEndY),c=Math.max(a.dragStartY,a.dragEndY);(l=Math.max(l,o.y))<(c=Math.min(c,o.y+o.h))&&t.doZoomY_(l,c),a.cancelNextDblclick=!0}a.dragStartX=null,a.dragStartY=null},r.startTouch=function(e,t,a){e.preventDefault(),e.touches.length>1&&(a.startTimeForDoubleTapMs=null);for(var n=[],r=0;r<e.touches.length;r++){var o=e.touches[r];n.push({pageX:o.pageX,pageY:o.pageY,dataX:t.toDataXCoord(o.pageX),dataY:t.toDataYCoord(o.pageY)})}if(a.initialTouches=n,1==n.length)a.initialPinchCenter=n[0],a.touchDirections={x:!0,y:!0};else if(n.length>=2){a.initialPinchCenter={pageX:.5*(n[0].pageX+n[1].pageX),pageY:.5*(n[0].pageY+n[1].pageY),dataX:.5*(n[0].dataX+n[1].dataX),dataY:.5*(n[0].dataY+n[1].dataY)};var i=180/Math.PI*Math.atan2(a.initialPinchCenter.pageY-n[0].pageY,n[0].pageX-a.initialPinchCenter.pageX);(i=Math.abs(i))>90&&(i=90-i),a.touchDirections={x:i<67.5,y:i>22.5}}a.initialRange={x:t.xAxisRange(),y:t.yAxisRange()}},r.moveTouch=function(e,t,a){a.startTimeForDoubleTapMs=null;var n,r=[];for(n=0;n<e.touches.length;n++){var o=e.touches[n];r.push({pageX:o.pageX,pageY:o.pageY})}var i,s,l,c=a.initialTouches,u=a.initialPinchCenter,d={pageX:(i=1==r.length?r[0]:{pageX:.5*(r[0].pageX+r[1].pageX),pageY:.5*(r[0].pageY+r[1].pageY)}).pageX-u.pageX,pageY:i.pageY-u.pageY},h=a.initialRange.x[1]-a.initialRange.x[0],p=a.initialRange.y[0]-a.initialRange.y[1];if(d.dataX=d.pageX/t.plotter_.area.w*h,d.dataY=d.pageY/t.plotter_.area.h*p,1==r.length)s=1,l=1;else if(r.length>=2){var f=c[1].pageX-u.pageX;s=(r[1].pageX-i.pageX)/f;var g=c[1].pageY-u.pageY;l=(r[1].pageY-i.pageY)/g}s=Math.min(8,Math.max(.125,s)),l=Math.min(8,Math.max(.125,l));var m=!1;if(a.touchDirections.x&&(t.dateWindow_=[u.dataX-d.dataX+(a.initialRange.x[0]-u.dataX)/s,u.dataX-d.dataX+(a.initialRange.x[1]-u.dataX)/s],m=!0),a.touchDirections.y)for(n=0;n<1;n++){var b=t.axes_[n];t.attributes_.getForAxis("logscale",n)||(b.valueRange=[u.dataY-d.dataY+(a.initialRange.y[0]-u.dataY)/l,u.dataY-d.dataY+(a.initialRange.y[1]-u.dataY)/l],m=!0)}if(t.drawGraph_(!1),m&&r.length>1&&t.getFunctionOption("zoomCallback")){var v=t.xAxisRange();t.getFunctionOption("zoomCallback").call(t,v[0],v[1],t.yAxisRanges())}},r.endTouch=function(e,t,a){if(0!==e.touches.length)r.startTouch(e,t,a);else if(1==e.changedTouches.length){var n=(new Date).getTime(),o=e.changedTouches[0];a.startTimeForDoubleTapMs&&n-a.startTimeForDoubleTapMs<500&&a.doubleTapX&&Math.abs(a.doubleTapX-o.screenX)<50&&a.doubleTapY&&Math.abs(a.doubleTapY-o.screenY)<50?t.resetZoom():(a.startTimeForDoubleTapMs=n,a.doubleTapX=o.screenX,a.doubleTapY=o.screenY)}};var o=function(e,t,a){return e<t?t-e:e>a?e-a:0},i=function(e,t){var a=n.findPos(t.canvas_),r={left:a.x,right:a.x+t.canvas_.offsetWidth,top:a.y,bottom:a.y+t.canvas_.offsetHeight},i={x:n.pageX(e),y:n.pageY(e)},s=o(i.x,r.left,r.right),l=o(i.y,r.top,r.bottom);return Math.max(s,l)};r.defaultModel={mousedown:function(e,t,a){if(!e.button||2!=e.button){a.initializeMouseDown(e,t,a),e.altKey||e.shiftKey?r.startPan(e,t,a):r.startZoom(e,t,a);var o=function(e){a.isZooming?i(e,t)<100?r.moveZoom(e,t,a):null!==a.dragEndX&&(a.dragEndX=null,a.dragEndY=null,t.clearZoomRect_()):a.isPanning&&r.movePan(e,t,a)};t.addAndTrackEvent(document,"mousemove",o),t.addAndTrackEvent(document,"mouseup",(function e(i){a.isZooming?null!==a.dragEndX?r.endZoom(i,t,a):r.maybeTreatMouseOpAsClick(i,t,a):a.isPanning&&r.endPan(i,t,a),n.removeEvent(document,"mousemove",o),n.removeEvent(document,"mouseup",e),a.destroy()}))}},willDestroyContextMyself:!0,touchstart:function(e,t,a){r.startTouch(e,t,a)},touchmove:function(e,t,a){r.moveTouch(e,t,a)},touchend:function(e,t,a){r.endTouch(e,t,a)},dblclick:function(e,t,a){if(a.cancelNextDblclick)a.cancelNextDblclick=!1;else{var n={canvasx:a.dragEndX,canvasy:a.dragEndY,cancelable:!0};t.cascadeEvents_("dblclick",n)||e.altKey||e.shiftKey||t.resetZoom()}}},r.nonInteractiveModel_={mousedown:function(e,t,a){a.initializeMouseDown(e,t,a)},mouseup:r.maybeTreatMouseOpAsClick},r.dragIsPanInteractionModel={mousedown:function(e,t,a){a.initializeMouseDown(e,t,a),r.startPan(e,t,a)},mousemove:function(e,t,a){a.isPanning&&r.movePan(e,t,a)},mouseup:function(e,t,a){a.isPanning&&r.endPan(e,t,a)}},a.default=r,t.exports=a.default},{"./dygraph-utils":17}],13:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("./dygraph-utils")),r=function(e){this.dygraph_=e,this.points=[],this.setNames=[],this.annotations=[],this.yAxes_=null,this.xTicks_=null,this.yTicks_=null};r.prototype.addDataset=function(e,t){this.points.push(t),this.setNames.push(e)},r.prototype.getPlotArea=function(){return this.area_},r.prototype.computePlotArea=function(){var e={x:0,y:0};e.w=this.dygraph_.width_-e.x-this.dygraph_.getOption("rightGap"),e.h=this.dygraph_.height_;var t={chart_div:this.dygraph_.graphDiv,reserveSpaceLeft:function(t){var a={x:e.x,y:e.y,w:t,h:e.h};return e.x+=t,e.w-=t,a},reserveSpaceRight:function(t){var a={x:e.x+e.w-t,y:e.y,w:t,h:e.h};return e.w-=t,a},reserveSpaceTop:function(t){var a={x:e.x,y:e.y,w:e.w,h:t};return e.y+=t,e.h-=t,a},reserveSpaceBottom:function(t){var a={x:e.x,y:e.y+e.h-t,w:e.w,h:t};return e.h-=t,a},chartRect:function(){return{x:e.x,y:e.y,w:e.w,h:e.h}}};this.dygraph_.cascadeEvents_("layout",t),this.area_=e},r.prototype.setAnnotations=function(e){this.annotations=[];for(var t=this.dygraph_.getOption("xValueParser")||function(e){return e},a=0;a<e.length;a++){var r={};if(!e[a].xval&&void 0===e[a].x)return void console.error("Annotations must have an 'x' property");if(e[a].icon&&(!e[a].hasOwnProperty("width")||!e[a].hasOwnProperty("height")))return void console.error("Must set width and height when setting annotation.icon property");n.update(r,e[a]),r.xval||(r.xval=t(r.x)),this.annotations.push(r)}},r.prototype.setXTicks=function(e){this.xTicks_=e},r.prototype.setYAxes=function(e){this.yAxes_=e},r.prototype.evaluate=function(){this._xAxis={},this._evaluateLimits(),this._evaluateLineCharts(),this._evaluateLineTicks(),this._evaluateAnnotations()},r.prototype._evaluateLimits=function(){var e=this.dygraph_.xAxisRange();this._xAxis.minval=e[0],this._xAxis.maxval=e[1];var t=e[1]-e[0];this._xAxis.scale=0!==t?1/t:1,this.dygraph_.getOptionForAxis("logscale","x")&&(this._xAxis.xlogrange=n.log10(this._xAxis.maxval)-n.log10(this._xAxis.minval),this._xAxis.xlogscale=0!==this._xAxis.xlogrange?1/this._xAxis.xlogrange:1);for(var a=0;a<this.yAxes_.length;a++){var r=this.yAxes_[a];r.minyval=r.computedValueRange[0],r.maxyval=r.computedValueRange[1],r.yrange=r.maxyval-r.minyval,r.yscale=0!==r.yrange?1/r.yrange:1,this.dygraph_.getOption("logscale")&&(r.ylogrange=n.log10(r.maxyval)-n.log10(r.minyval),r.ylogscale=0!==r.ylogrange?1/r.ylogrange:1,isFinite(r.ylogrange)&&!isNaN(r.ylogrange)||console.error("axis "+a+" of graph at "+r.g+" can't be displayed in log scale for range ["+r.minyval+" - "+r.maxyval+"]"))}},r.calcXNormal_=function(e,t,a){return a?(n.log10(e)-n.log10(t.minval))*t.xlogscale:(e-t.minval)*t.scale},r.calcYNormal_=function(e,t,a){if(a){var r=1-(n.log10(t)-n.log10(e.minyval))*e.ylogscale;return isFinite(r)?r:NaN}return 1-(t-e.minyval)*e.yscale},r.prototype._evaluateLineCharts=function(){for(var e=this.dygraph_.getOption("stackedGraph"),t=this.dygraph_.getOptionForAxis("logscale","x"),a=0;a<this.points.length;a++){for(var n=this.points[a],o=this.setNames[a],i=this.dygraph_.getOption("connectSeparatedPoints",o),s=this.dygraph_.axisPropertiesForSeries(o),l=this.dygraph_.attributes_.getForSeries("logscale",o),c=0;c<n.length;c++){var u=n[c];u.x=r.calcXNormal_(u.xval,this._xAxis,t);var d=u.yval;e&&(u.y_stacked=r.calcYNormal_(s,u.yval_stacked,l),null===d||isNaN(d)||(d=u.yval_stacked)),null===d&&(d=NaN,i||(u.yval=NaN)),u.y=r.calcYNormal_(s,d,l)}this.dygraph_.dataHandler_.onLineEvaluated(n,s,l)}},r.prototype._evaluateLineTicks=function(){var e,t,a,n,r,o;for(this.xticks=[],e=0;e<this.xTicks_.length;e++)a=(t=this.xTicks_[e]).label,r=(o=!("label_v"in t))?t.v:t.label_v,(n=this.dygraph_.toPercentXCoord(r))>=0&&n<1&&this.xticks.push({pos:n,label:a,has_tick:o});for(this.yticks=[],e=0;e<this.yAxes_.length;e++)for(var i=this.yAxes_[e],s=0;s<i.ticks.length;s++)a=(t=i.ticks[s]).label,r=(o=!("label_v"in t))?t.v:t.label_v,(n=this.dygraph_.toPercentYCoord(r,e))>0&&n<=1&&this.yticks.push({axis:e,pos:n,label:a,has_tick:o})},r.prototype._evaluateAnnotations=function(){var e,t={};for(e=0;e<this.annotations.length;e++){var a=this.annotations[e];t[a.xval+","+a.series]=a}if(this.annotated_points=[],this.annotations&&this.annotations.length)for(var n=0;n<this.points.length;n++){var r=this.points[n];for(e=0;e<r.length;e++){var o=r[e],i=o.xval+","+o.name;i in t&&(o.annotation=t[i],this.annotated_points.push(o))}}},r.prototype.removeAllDatasets=function(){delete this.points,delete this.setNames,delete this.setPointsLengths,delete this.setPointsOffsets,this.points=[],this.setNames=[],this.setPointsLengths=[],this.setPointsOffsets=[]},a.default=r,t.exports=a.default},{"./dygraph-utils":17}],14:[function(e,t,a){(function(e){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.default=null,t.exports=a.default}).call(this,e("_process"))},{_process:1}],15:[function(e,t,a){(function(n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(a,"__esModule",{value:!0});var o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("./dygraph-utils")),i=r(e("./dygraph-default-attrs")),s=(r(e("./dygraph-options-reference")),function(e){this.dygraph_=e,this.yAxes_=[],this.xAxis_={},this.series_={},this.global_=this.dygraph_.attrs_,this.user_=this.dygraph_.user_attrs_||{},this.labels_=[],this.highlightSeries_=this.get("highlightSeriesOpts")||{},this.reparseSeries()});s.AXIS_STRING_MAPPINGS_={y:0,Y:0,y1:0,Y1:0,y2:1,Y2:1},s.axisToIndex_=function(e){if("string"==typeof e){if(s.AXIS_STRING_MAPPINGS_.hasOwnProperty(e))return s.AXIS_STRING_MAPPINGS_[e];throw"Unknown axis : "+e}if("number"==typeof e){if(0===e||1===e)return e;throw"Dygraphs only supports two y-axes, indexed from 0-1."}if(e)throw"Unknown axis : "+e;return 0},s.prototype.reparseSeries=function(){var e=this.get("labels");if(e){this.labels_=e.slice(1),this.yAxes_=[{series:[],options:{}}],this.xAxis_={options:{}},this.series_={};for(var t=this.user_.series||{},a=0;a<this.labels_.length;a++){var n=this.labels_[a],r=t[n]||{},i=s.axisToIndex_(r.axis);this.series_[n]={idx:a,yAxis:i,options:r},this.yAxes_[i]?this.yAxes_[i].series.push(n):this.yAxes_[i]={series:[n],options:{}}}var l=this.user_.axes||{};o.update(this.yAxes_[0].options,l.y||{}),this.yAxes_.length>1&&o.update(this.yAxes_[1].options,l.y2||{}),o.update(this.xAxis_.options,l.x||{})}},s.prototype.get=function(e){var t=this.getGlobalUser_(e);return null!==t?t:this.getGlobalDefault_(e)},s.prototype.getGlobalUser_=function(e){return this.user_.hasOwnProperty(e)?this.user_[e]:null},s.prototype.getGlobalDefault_=function(e){return this.global_.hasOwnProperty(e)?this.global_[e]:i.default.hasOwnProperty(e)?i.default[e]:null},s.prototype.getForAxis=function(e,t){var a,n;if("number"==typeof t)n=0===(a=t)?"y":"y2";else{if("y1"==t&&(t="y"),"y"==t)a=0;else if("y2"==t)a=1;else{if("x"!=t)throw"Unknown axis "+t;a=-1}n=t}var r=-1==a?this.xAxis_:this.yAxes_[a];if(r){var o=r.options;if(o.hasOwnProperty(e))return o[e]}if("x"!==t||"logscale"!==e){var s=this.getGlobalUser_(e);if(null!==s)return s}var l=i.default.axes[n];return l.hasOwnProperty(e)?l[e]:this.getGlobalDefault_(e)},s.prototype.getForSeries=function(e,t){if(t===this.dygraph_.getHighlightSeries()&&this.highlightSeries_.hasOwnProperty(e))return this.highlightSeries_[e];if(!this.series_.hasOwnProperty(t))throw"Unknown series: "+t;var a=this.series_[t],n=a.options;return n.hasOwnProperty(e)?n[e]:this.getForAxis(e,a.yAxis)},s.prototype.numAxes=function(){return this.yAxes_.length},s.prototype.axisForSeries=function(e){return this.series_[e].yAxis},s.prototype.axisOptions=function(e){return this.yAxes_[e].options},s.prototype.seriesForAxis=function(e){return this.yAxes_[e].series},s.prototype.seriesNames=function(){return this.labels_},a.default=s,t.exports=a.default}).call(this,e("_process"))},{"./dygraph-default-attrs":10,"./dygraph-options-reference":14,"./dygraph-utils":17,_process:1}],16:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("./dygraph-utils"));a.numericLinearTicks=function(e,t,a,n,o,i){return r(e,t,a,(function(e){return"logscale"!==e&&n(e)}),o,i)};var r=function(e,t,a,r,o,i){var s,l,c,u,d=r("pixelsPerLabel"),h=[];if(i)for(s=0;s<i.length;s++)h.push({v:i[s]});else{if(r("logscale")){u=Math.floor(a/d);var p=n.binarySearch(e,g,1),f=n.binarySearch(t,g,-1);-1==p&&(p=0),-1==f&&(f=g.length-1);var m=null;if(f-p>=u/4){for(var b=f;b>=p;b--){var v=g[b],_=Math.log(v/e)/Math.log(t/e)*a,y={v:v};null===m?m={tickValue:v,pixel_coord:_}:Math.abs(_-m.pixel_coord)>=d?m={tickValue:v,pixel_coord:_}:y.label="",h.push(y)}h.reverse()}}if(0===h.length){var O,x;r("labelsKMG2")?(O=[1,2,4,8,16,32,64,128,256],x=16):(O=[1,2,5,10,20,50,100],x=10);var w,E,S,C=Math.ceil(a/d),A=Math.abs(t-e)/C,k=Math.floor(Math.log(A)/Math.log(x)),j=Math.pow(x,k);for(l=0;l<O.length&&(w=j*O[l],E=Math.floor(e/w)*w,S=Math.ceil(t/w)*w,!(a/(u=Math.abs(S-E)/w)>d));l++);for(E>S&&(w*=-1),s=0;s<=u;s++)c=E+s*w,h.push({v:c})}}var T=r("axisLabelFormatter");for(s=0;s<h.length;s++)void 0===h[s].label&&(h[s].label=T.call(o,h[s].v,0,r,o));return h};a.numericTicks=r,a.dateTicker=function(e,t,a,n,r,o){var i=m(e,t,a,n);return i>=0?v(e,t,i,n,r):[]};var o={MILLISECONDLY:0,TWO_MILLISECONDLY:1,FIVE_MILLISECONDLY:2,TEN_MILLISECONDLY:3,FIFTY_MILLISECONDLY:4,HUNDRED_MILLISECONDLY:5,FIVE_HUNDRED_MILLISECONDLY:6,SECONDLY:7,TWO_SECONDLY:8,FIVE_SECONDLY:9,TEN_SECONDLY:10,THIRTY_SECONDLY:11,MINUTELY:12,TWO_MINUTELY:13,FIVE_MINUTELY:14,TEN_MINUTELY:15,THIRTY_MINUTELY:16,HOURLY:17,TWO_HOURLY:18,SIX_HOURLY:19,DAILY:20,TWO_DAILY:21,WEEKLY:22,MONTHLY:23,QUARTERLY:24,BIANNUAL:25,ANNUAL:26,DECADAL:27,CENTENNIAL:28,NUM_GRANULARITIES:29};a.Granularity=o;var i=0,s=1,l=2,c=3,u=4,d=5,h=6,p=7,f=[];f[o.MILLISECONDLY]={datefield:h,step:1,spacing:1},f[o.TWO_MILLISECONDLY]={datefield:h,step:2,spacing:2},f[o.FIVE_MILLISECONDLY]={datefield:h,step:5,spacing:5},f[o.TEN_MILLISECONDLY]={datefield:h,step:10,spacing:10},f[o.FIFTY_MILLISECONDLY]={datefield:h,step:50,spacing:50},f[o.HUNDRED_MILLISECONDLY]={datefield:h,step:100,spacing:100},f[o.FIVE_HUNDRED_MILLISECONDLY]={datefield:h,step:500,spacing:500},f[o.SECONDLY]={datefield:d,step:1,spacing:1e3},f[o.TWO_SECONDLY]={datefield:d,step:2,spacing:2e3},f[o.FIVE_SECONDLY]={datefield:d,step:5,spacing:5e3},f[o.TEN_SECONDLY]={datefield:d,step:10,spacing:1e4},f[o.THIRTY_SECONDLY]={datefield:d,step:30,spacing:3e4},f[o.MINUTELY]={datefield:u,step:1,spacing:6e4},f[o.TWO_MINUTELY]={datefield:u,step:2,spacing:12e4},f[o.FIVE_MINUTELY]={datefield:u,step:5,spacing:3e5},f[o.TEN_MINUTELY]={datefield:u,step:10,spacing:6e5},f[o.THIRTY_MINUTELY]={datefield:u,step:30,spacing:18e5},f[o.HOURLY]={datefield:c,step:1,spacing:36e5},f[o.TWO_HOURLY]={datefield:c,step:2,spacing:72e5},f[o.SIX_HOURLY]={datefield:c,step:6,spacing:216e5},f[o.DAILY]={datefield:l,step:1,spacing:864e5},f[o.TWO_DAILY]={datefield:l,step:2,spacing:1728e5},f[o.WEEKLY]={datefield:l,step:7,spacing:6048e5},f[o.MONTHLY]={datefield:s,step:1,spacing:2629817280},f[o.QUARTERLY]={datefield:s,step:3,spacing:216e5*365.2524},f[o.BIANNUAL]={datefield:s,step:6,spacing:432e5*365.2524},f[o.ANNUAL]={datefield:i,step:1,spacing:864e5*365.2524},f[o.DECADAL]={datefield:i,step:10,spacing:315578073600},f[o.CENTENNIAL]={datefield:i,step:100,spacing:3155780736e3};var g=function(){for(var e=[],t=-39;t<=39;t++)for(var a=Math.pow(10,t),n=1;n<=9;n++){var r=a*n;e.push(r)}return e}(),m=function(e,t,a,n){for(var r=n("pixelsPerLabel"),i=0;i<o.NUM_GRANULARITIES;i++)if(a/b(e,t,i)>=r)return i;return-1},b=function(e,t,a){var n=f[a].spacing;return Math.round(1*(t-e)/n)},v=function(e,t,a,r,g){var m=r("axisLabelFormatter"),b=r("labelsUTC")?n.DateAccessorsUTC:n.DateAccessorsLocal,v=f[a].datefield,_=f[a].step,y=f[a].spacing,O=new Date(e),x=[];x[i]=b.getFullYear(O),x[s]=b.getMonth(O),x[l]=b.getDate(O),x[c]=b.getHours(O),x[u]=b.getMinutes(O),x[d]=b.getSeconds(O),x[h]=b.getMilliseconds(O);var w=x[v]%_;a==o.WEEKLY&&(w=b.getDay(O)),x[v]-=w;for(var E=v+1;E<p;E++)x[E]=E===l?1:0;var S=[],C=b.makeDate.apply(null,x),A=C.getTime();if(a<=o.HOURLY)for(A<e&&(A+=y,C=new Date(A));A<=t;)S.push({v:A,label:m.call(g,C,a,r,g)}),A+=y,C=new Date(A);else for(A<e&&(x[v]+=_,A=(C=b.makeDate.apply(null,x)).getTime());A<=t;)(a>=o.DAILY||b.getHours(C)%_==0)&&S.push({v:A,label:m.call(g,C,a,r,g)}),x[v]+=_,A=(C=b.makeDate.apply(null,x)).getTime();return S};a.getDateAxis=v},{"./dygraph-utils":17}],17:[function(e,t,a){"use strict";function n(e){return!e.pageX||e.pageX<0?0:e.pageX}function r(e){return!e.pageY||e.pageY<0?0:e.pageY}function o(e,t){var a=Math.min(Math.max(1,t||2),21);return Math.abs(e)<.001&&0!==e?e.toExponential(a-1):e.toPrecision(a)}function i(e){return e<10?"0"+e:""+e}function s(e,t,a,n){var r=i(e)+":"+i(t);if(a&&(r+=":"+i(a),n)){var o=""+n;r+="."+("000"+o).substring(o.length)}return r}function l(e,t){var a=t?y:_,n=new Date(e),r=a.getFullYear(n),o=a.getMonth(n),l=a.getDate(n),c=a.getHours(n),u=a.getMinutes(n),d=a.getSeconds(n),h=a.getMilliseconds(n),p=r+"/"+i(o+1)+"/"+i(l);return 3600*c+60*u+d+.001*h&&(p+=" "+s(c,u,d,h)),p}function c(e,t){var a=Math.pow(10,t);return Math.round(e*a)/a}function u(e){return new Date(e).getTime()}function d(e){var t=typeof e;return("object"==t||"function"==t&&"function"==typeof e.item)&&null!==e&&"number"==typeof e.length&&3!==e.nodeType}function h(e,t,a,n){t=t||0,a=a||e.length,this.hasNext=!0,this.peek=null,this.start_=t,this.array_=e,this.predicate_=n,this.end_=Math.min(e.length,t+a),this.nextIdx_=t-1,this.next()}function p(e,t){return t<0?1/Math.pow(e,-t):Math.pow(e,t)}function f(e){var t=E.exec(e);if(!t)return null;var a=parseInt(t[1],10),n=parseInt(t[2],10),r=parseInt(t[3],10);return t[4]?{r:a,g:n,b:r,a:parseFloat(t[4])}:{r:a,g:n,b:r}}function g(e,t){var a=t("sigFigs");if(null!==a)return o(e,a);var n,r=t("digitsAfterDecimal"),i=t("maxNumberWidth"),s=t("labelsKMB"),l=t("labelsKMG2");if(n=0!==e&&(Math.abs(e)>=Math.pow(10,i)||Math.abs(e)<Math.pow(10,-r))?e.toExponential(r):""+c(e,r),s||l){var u,d=[],h=[];s&&(u=1e3,d=S),l&&(s&&console.warn("Setting both labelsKMB and labelsKMG2. Pick one!"),u=1024,d=C,h=A);for(var f=Math.abs(e),g=p(u,d.length),m=d.length-1;m>=0;m--,g/=u)if(f>=g){n=c(e/g,r)+d[m];break}if(l){var b=String(e.toExponential()).split("e-");2===b.length&&b[1]>=3&&b[1]<=24&&(n=b[1]%3>0?c(b[0]/p(10,b[1]%3),r):Number(b[0]).toFixed(2),n+=h[Math.floor(b[1]/3)-1])}}return n}Object.defineProperty(a,"__esModule",{value:!0}),a.removeEvent=function(e,t,a){e.removeEventListener(t,a,!1)},a.cancelEvent=function(e){return(e=e||window.event).stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1,!1},a.hsvToRGB=function(e,t,a){var n,r,o;if(0===t)n=a,r=a,o=a;else{var i=Math.floor(6*e),s=6*e-i,l=a*(1-t),c=a*(1-t*s),u=a*(1-t*(1-s));switch(i){case 1:n=c,r=a,o=l;break;case 2:n=l,r=a,o=u;break;case 3:n=l,r=c,o=a;break;case 4:n=u,r=l,o=a;break;case 5:n=a,r=l,o=c;break;case 6:case 0:n=a,r=u,o=l}}return"rgb("+(n=Math.floor(255*n+.5))+","+(r=Math.floor(255*r+.5))+","+(o=Math.floor(255*o+.5))+")"},a.findPos=function(e){var t=e.getBoundingClientRect(),a=window,n=document.documentElement;return{x:t.left+(a.pageXOffset||n.scrollLeft),y:t.top+(a.pageYOffset||n.scrollTop)}},a.pageX=n,a.pageY=r,a.dragGetX_=function(e,t){return n(e)-t.px},a.dragGetY_=function(e,t){return r(e)-t.py},a.isOK=function(e){return!!e&&!isNaN(e)},a.isValidPoint=function(e,t){return!!e&&null!==e.yval&&null!==e.x&&void 0!==e.x&&null!==e.y&&void 0!==e.y&&!(isNaN(e.x)||!t&&isNaN(e.y))},a.floatFormat=o,a.zeropad=i,a.hmsString_=s,a.dateString_=l,a.round_=c,a.binarySearch=function(e,t,a,n,r){for(var o=!0;o;){var i=e,s=t,l=a,c=n,u=r;if(o=!1,null!==c&&void 0!==c&&null!==u&&void 0!==u||(c=0,u=s.length-1),c>u)return-1;null!==l&&void 0!==l||(l=0);var d,h=function(e){return e>=0&&e<s.length},p=parseInt((c+u)/2,10),f=s[p];if(f==i)return p;if(f>i){if(l>0&&h(d=p-1)&&s[d]<i)return p;e=i,t=s,a=l,n=c,r=p-1,o=!0,h=p=f=d=void 0}else{if(!(f<i))return-1;if(l<0&&h(d=p+1)&&s[d]>i)return p;e=i,t=s,a=l,n=p+1,r=u,o=!0,h=p=f=d=void 0}}},a.dateParser=function(e){var t,a;if((-1==e.search("-")||-1!=e.search("T")||-1!=e.search("Z"))&&(a=u(e))&&!isNaN(a))return a;if(-1!=e.search("-")){for(t=e.replace("-","/","g");-1!=t.search("-");)t=t.replace("-","/");a=u(t)}else a=8==e.length?u(t=e.substr(0,4)+"/"+e.substr(4,2)+"/"+e.substr(6,2)):u(e);return a&&!isNaN(a)||console.error("Couldn't parse "+e+" as a date"),a},a.dateStrToMillis=u,a.update=function(e,t){if(void 0!==t&&null!==t)for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a]);return e},a.updateDeep=function e(t,a){if(void 0!==a&&null!==a)for(var n in a)a.hasOwnProperty(n)&&(null===a[n]?t[n]=null:d(a[n])?t[n]=a[n].slice():function(e){return"object"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName}(a[n])||"object"!=typeof a[n]?t[n]=a[n]:("object"==typeof t[n]&&null!==t[n]||(t[n]={}),e(t[n],a[n])));return t},a.isArrayLike=d,a.isDateLike=function(e){return"object"==typeof e&&null!==e&&"function"==typeof e.getTime},a.clone=function e(t){for(var a=[],n=0;n<t.length;n++)d(t[n])?a.push(e(t[n])):a.push(t[n]);return a},a.createCanvas=function(){return document.createElement("canvas")},a.getContextPixelRatio=function(e){try{var t=window.devicePixelRatio,a=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return void 0!==t?t/a:1}catch(e){return 1}},a.Iterator=h,a.createIterator=function(e,t,a,n){return new h(e,t,a,n)},a.repeatAndCleanup=function(e,t,a,n){var r,o=0,i=(new Date).getTime();if(e(o),1!=t){var s=t-1;!function l(){o>=t||O.call(window,(function(){var t=(new Date).getTime()-i;r=o;var c=(o=Math.floor(t/a))-r;o+c>s||o>=s?(e(s),n()):(0!==c&&e(o),l())}))}()}else n()},a.isPixelChangingOptionList=function(e,t){var a={};if(e)for(var n=1;n<e.length;n++)a[e[n]]=!0;var r=function(e){for(var t in e)if(e.hasOwnProperty(t)&&!x[t])return!0;return!1};for(var o in t)if(t.hasOwnProperty(o))if("highlightSeriesOpts"==o||a[o]&&!t.series){if(r(t[o]))return!0}else if("series"==o||"axes"==o){var i=t[o];for(var s in i)if(i.hasOwnProperty(s)&&r(i[s]))return!0}else if(!x[o])return!0;return!1},a.detectLineDelimiter=function(e){for(var t=0;t<e.length;t++){var a=e.charAt(t);if("\r"===a)return t+1<e.length&&"\n"===e.charAt(t+1)?"\r\n":a;if("\n"===a)return t+1<e.length&&"\r"===e.charAt(t+1)?"\n\r":a}return null},a.isNodeContainedBy=function(e,t){if(null===t||null===e)return!1;for(var a=e;a&&a!==t;)a=a.parentNode;return a===t},a.pow=p,a.toRGB_=function(e){var t=f(e);if(t)return t;var a=document.createElement("div");a.style.backgroundColor=e,a.style.visibility="hidden",document.body.appendChild(a);var n=window.getComputedStyle(a,null).backgroundColor;return document.body.removeChild(a),f(n)},a.isCanvasSupported=function(e){try{(e||document.createElement("canvas")).getContext("2d")}catch(e){return!1}return!0},a.parseFloat_=function(e,t,a){var n=parseFloat(e);if(!isNaN(n))return n;if(/^ *$/.test(e))return null;if(/^ *nan *$/i.test(e))return NaN;var r="Unable to parse '"+e+"' as a number";return void 0!==a&&void 0!==t&&(r+=" on line "+(1+(t||0))+" ('"+a+"') of CSV."),console.error(r),null},a.numberValueFormatter=g,a.numberAxisLabelFormatter=function(e,t,a){return g.call(this,e,a)},a.dateAxisLabelFormatter=function(e,t,a){var n=a("labelsUTC")?y:_,r=n.getFullYear(e),o=n.getMonth(e),l=n.getDate(e),c=n.getHours(e),u=n.getMinutes(e),d=n.getSeconds(e),h=n.getMilliseconds(e);if(t>=m.Granularity.DECADAL)return""+r;if(t>=m.Granularity.MONTHLY)return k[o]+"&#160;"+r;if(0===3600*c+60*u+d+.001*h||t>=m.Granularity.DAILY)return i(l)+"&#160;"+k[o];if(t<m.Granularity.SECONDLY){var p=""+h;return i(d)+"."+("000"+p).substring(p.length)}return t>m.Granularity.MINUTELY?s(c,u,d,0):s(c,u,d,h)},a.dateValueFormatter=function(e,t){return l(e,t("labelsUTC"))};var m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("./dygraph-tickers"));a.LOG_SCALE=10;var b=Math.log(10);a.LN_TEN=b;var v=function(e){return Math.log(e)/b};a.log10=v,a.logRangeFraction=function(e,t,a){var n=v(e),r=n+a*(v(t)-n);return Math.pow(10,r)},a.DOTTED_LINE=[2,2],a.DASHED_LINE=[7,3],a.DOT_DASH_LINE=[7,2,2,2],a.HORIZONTAL=1,a.VERTICAL=2,a.getContext=function(e){return e.getContext("2d")},a.addEvent=function(e,t,a){e.addEventListener(t,a,!1)};var _={getFullYear:function(e){return e.getFullYear()},getMonth:function(e){return e.getMonth()},getDate:function(e){return e.getDate()},getHours:function(e){return e.getHours()},getMinutes:function(e){return e.getMinutes()},getSeconds:function(e){return e.getSeconds()},getMilliseconds:function(e){return e.getMilliseconds()},getDay:function(e){return e.getDay()},makeDate:function(e,t,a,n,r,o,i){return new Date(e,t,a,n,r,o,i)}};a.DateAccessorsLocal=_;var y={getFullYear:function(e){return e.getUTCFullYear()},getMonth:function(e){return e.getUTCMonth()},getDate:function(e){return e.getUTCDate()},getHours:function(e){return e.getUTCHours()},getMinutes:function(e){return e.getUTCMinutes()},getSeconds:function(e){return e.getUTCSeconds()},getMilliseconds:function(e){return e.getUTCMilliseconds()},getDay:function(e){return e.getUTCDay()},makeDate:function(e,t,a,n,r,o,i){return new Date(Date.UTC(e,t,a,n,r,o,i))}};a.DateAccessorsUTC=y,h.prototype.next=function(){if(!this.hasNext)return null;for(var e=this.peek,t=this.nextIdx_+1,a=!1;t<this.end_;){if(!this.predicate_||this.predicate_(this.array_,t)){this.peek=this.array_[t],a=!0;break}t++}return this.nextIdx_=t,a||(this.hasNext=!1,this.peek=null),e};var O=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)};a.requestAnimFrame=O;var x={annotationClickHandler:!0,annotationDblClickHandler:!0,annotationMouseOutHandler:!0,annotationMouseOverHandler:!0,axisLineColor:!0,axisLineWidth:!0,clickCallback:!0,drawCallback:!0,drawHighlightPointCallback:!0,drawPoints:!0,drawPointCallback:!0,drawGrid:!0,fillAlpha:!0,gridLineColor:!0,gridLineWidth:!0,hideOverlayOnMouseOut:!0,highlightCallback:!0,highlightCircleSize:!0,interactionModel:!0,labelsDiv:!0,labelsKMB:!0,labelsKMG2:!0,labelsSeparateLines:!0,labelsShowZeroValues:!0,legend:!0,panEdgeFraction:!0,pixelsPerYLabel:!0,pointClickCallback:!0,pointSize:!0,rangeSelectorPlotFillColor:!0,rangeSelectorPlotFillGradientColor:!0,rangeSelectorPlotStrokeColor:!0,rangeSelectorBackgroundStrokeColor:!0,rangeSelectorBackgroundLineWidth:!0,rangeSelectorPlotLineWidth:!0,rangeSelectorForegroundStrokeColor:!0,rangeSelectorForegroundLineWidth:!0,rangeSelectorAlpha:!0,showLabelsOnHighlight:!0,showRoller:!0,strokeWidth:!0,underlayCallback:!0,unhighlightCallback:!0,zoomCallback:!0},w={DEFAULT:function(e,t,a,n,r,o,i){a.beginPath(),a.fillStyle=o,a.arc(n,r,i,0,2*Math.PI,!1),a.fill()}};a.Circles=w;var E=/^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*([01](?:\.\d+)?))?\)$/,S=["K","M","B","T","Q"],C=["k","M","G","T","P","E","Z","Y"],A=["m","u","n","p","f","a","z","y"],k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},{"./dygraph-tickers":16}],18:[function(e,t,a){(function(n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(a,"__esModule",{value:!0});var i=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw o}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},s=o(e("./dygraph-layout")),l=o(e("./dygraph-canvas")),c=o(e("./dygraph-options")),u=o(e("./dygraph-interaction-model")),d=r(e("./dygraph-tickers")),h=r(e("./dygraph-utils")),p=o(e("./dygraph-default-attrs")),f=(o(e("./dygraph-options-reference")),e("./iframe-tarp")),g=o(f),m=o(e("./datahandler/default")),b=o(e("./datahandler/bars-error")),v=o(e("./datahandler/bars-custom")),_=o(e("./datahandler/default-fractions")),y=o(e("./datahandler/bars-fractions")),O=o(e("./datahandler/bars")),x=o(e("./plugins/annotations")),w=o(e("./plugins/axes")),E=o(e("./plugins/chart-labels")),S=o(e("./plugins/grid")),C=o(e("./plugins/legend")),A=o(e("./plugins/range-selector")),k=o(e("./dygraph-gviz")),j=function(e,t,a){this.__init__(e,t,a)};j.NAME="Dygraph",j.VERSION="2.1.0",j.DEFAULT_ROLL_PERIOD=1,j.DEFAULT_WIDTH=480,j.DEFAULT_HEIGHT=320,j.ANIMATION_STEPS=12,j.ANIMATION_DURATION=200,j.Plotters=l.default._Plotters,j.addedAnnotationCSS=!1,j.prototype.__init__=function(e,t,a){if(this.is_initial_draw_=!0,this.readyFns_=[],null!==a&&void 0!==a||(a={}),a=j.copyUserAttrs_(a),"string"==typeof e&&(e=document.getElementById(e)),!e)throw new Error("Constructing dygraph with a non-existent div!");this.maindiv_=e,this.file_=t,this.rollPeriod_=a.rollPeriod||j.DEFAULT_ROLL_PERIOD,this.previousVerticalX_=-1,this.fractions_=a.fractions||!1,this.dateWindow_=a.dateWindow||null,this.annotations_=[],e.innerHTML="",""===e.style.width&&a.width&&(e.style.width=a.width+"px"),""===e.style.height&&a.height&&(e.style.height=a.height+"px"),""===e.style.height&&0===e.clientHeight&&(e.style.height=j.DEFAULT_HEIGHT+"px",""===e.style.width&&(e.style.width=j.DEFAULT_WIDTH+"px")),this.width_=e.clientWidth||a.width||0,this.height_=e.clientHeight||a.height||0,a.stackedGraph&&(a.fillGraph=!0),this.user_attrs_={},h.update(this.user_attrs_,a),this.attrs_={},h.updateDeep(this.attrs_,p.default),this.boundaryIds_=[],this.setIndexByName_={},this.datasetIndex_=[],this.registeredEvents_=[],this.eventListeners_={},this.attributes_=new c.default(this),this.createInterface_(),this.plugins_=[];for(var n=j.PLUGINS.concat(this.getOption("plugins")),r=0;r<n.length;r++){var o,i=n[r],s={plugin:o=void 0!==i.activate?i:new i,events:{},options:{},pluginOptions:{}},l=o.activate(this);for(var u in l)l.hasOwnProperty(u)&&(s.events[u]=l[u]);this.plugins_.push(s)}for(r=0;r<this.plugins_.length;r++){var d=this.plugins_[r];for(var u in d.events)if(d.events.hasOwnProperty(u)){var f=d.events[u],g=[d.plugin,f];u in this.eventListeners_?this.eventListeners_[u].push(g):this.eventListeners_[u]=[g]}}this.createDragInterface_(),this.start_()},j.prototype.cascadeEvents_=function(e,t){if(!(e in this.eventListeners_))return!1;var a={dygraph:this,cancelable:!1,defaultPrevented:!1,preventDefault:function(){if(!a.cancelable)throw"Cannot call preventDefault on non-cancelable event.";a.defaultPrevented=!0},propagationStopped:!1,stopPropagation:function(){a.propagationStopped=!0}};h.update(a,t);var n=this.eventListeners_[e];if(n)for(var r=n.length-1;r>=0;r--){var o=n[r][0];if(n[r][1].call(o,a),a.propagationStopped)break}return a.defaultPrevented},j.prototype.getPluginInstance_=function(e){for(var t=0;t<this.plugins_.length;t++){var a=this.plugins_[t];if(a.plugin instanceof e)return a.plugin}return null},j.prototype.isZoomed=function(e){var t=!!this.dateWindow_;if("x"===e)return t;var a=this.axes_.map((function(e){return!!e.valueRange})).indexOf(!0)>=0;if(null===e||void 0===e)return t||a;if("y"===e)return a;throw new Error("axis parameter is ["+e+"] must be null, 'x' or 'y'.")},j.prototype.toString=function(){var e=this.maindiv_;return"[Dygraph "+(e&&e.id?e.id:e)+"]"},j.prototype.attr_=function(e,t){return t?this.attributes_.getForSeries(e,t):this.attributes_.get(e)},j.prototype.getOption=function(e,t){return this.attr_(e,t)},j.prototype.getNumericOption=function(e,t){return this.getOption(e,t)},j.prototype.getStringOption=function(e,t){return this.getOption(e,t)},j.prototype.getBooleanOption=function(e,t){return this.getOption(e,t)},j.prototype.getFunctionOption=function(e,t){return this.getOption(e,t)},j.prototype.getOptionForAxis=function(e,t){return this.attributes_.getForAxis(e,t)},j.prototype.optionsViewForAxis_=function(e){var t=this;return function(a){var n=t.user_attrs_.axes;return n&&n[e]&&n[e].hasOwnProperty(a)?n[e][a]:("x"!==e||"logscale"!==a)&&(void 0!==t.user_attrs_[a]?t.user_attrs_[a]:(n=t.attrs_.axes)&&n[e]&&n[e].hasOwnProperty(a)?n[e][a]:"y"==e&&t.axes_[0].hasOwnProperty(a)?t.axes_[0][a]:"y2"==e&&t.axes_[1].hasOwnProperty(a)?t.axes_[1][a]:t.attr_(a))}},j.prototype.rollPeriod=function(){return this.rollPeriod_},j.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},j.prototype.xAxisExtremes=function(){var e=this.getNumericOption("xRangePad")/this.plotter_.area.w;if(0===this.numRows())return[0-e,1+e];var t=this.rawData_[0][0],a=this.rawData_[this.rawData_.length-1][0];if(e){var n=a-t;t-=n*e,a+=n*e}return[t,a]},j.prototype.yAxisExtremes=function(){var e=this.gatherDatasets_(this.rolledSeries_,null).extremes,t=this.axes_;this.computeYAxisRanges_(e);var a=this.axes_;return this.axes_=t,a.map((function(e){return e.extremeRange}))},j.prototype.yAxisRange=function(e){if(void 0===e&&(e=0),e<0||e>=this.axes_.length)return null;var t=this.axes_[e];return[t.computedValueRange[0],t.computedValueRange[1]]},j.prototype.yAxisRanges=function(){for(var e=[],t=0;t<this.axes_.length;t++)e.push(this.yAxisRange(t));return e},j.prototype.toDomCoords=function(e,t,a){return[this.toDomXCoord(e),this.toDomYCoord(t,a)]},j.prototype.toDomXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,a=this.xAxisRange();return t.x+(e-a[0])/(a[1]-a[0])*t.w},j.prototype.toDomYCoord=function(e,t){var a=this.toPercentYCoord(e,t);if(null===a)return null;var n=this.plotter_.area;return n.y+a*n.h},j.prototype.toDataCoords=function(e,t,a){return[this.toDataXCoord(e),this.toDataYCoord(t,a)]},j.prototype.toDataXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,a=this.xAxisRange();if(this.attributes_.getForAxis("logscale","x")){var n=(e-t.x)/t.w;return h.logRangeFraction(a[0],a[1],n)}return a[0]+(e-t.x)/t.w*(a[1]-a[0])},j.prototype.toDataYCoord=function(e,t){if(null===e)return null;var a=this.plotter_.area,n=this.yAxisRange(t);if(void 0===t&&(t=0),this.attributes_.getForAxis("logscale",t)){var r=(e-a.y)/a.h;return h.logRangeFraction(n[1],n[0],r)}return n[0]+(a.y+a.h-e)/a.h*(n[1]-n[0])},j.prototype.toPercentYCoord=function(e,t){if(null===e)return null;void 0===t&&(t=0);var a,n=this.yAxisRange(t);if(this.attributes_.getForAxis("logscale",t)){var r=h.log10(n[0]),o=h.log10(n[1]);a=(o-h.log10(e))/(o-r)}else a=(n[1]-e)/(n[1]-n[0]);return a},j.prototype.toPercentXCoord=function(e){if(null===e)return null;var t,a=this.xAxisRange();if(!0===this.attributes_.getForAxis("logscale","x")){var n=h.log10(a[0]),r=h.log10(a[1]);t=(h.log10(e)-n)/(r-n)}else t=(e-a[0])/(a[1]-a[0]);return t},j.prototype.numColumns=function(){return this.rawData_?this.rawData_[0]?this.rawData_[0].length:this.attr_("labels").length:0},j.prototype.numRows=function(){return this.rawData_?this.rawData_.length:0},j.prototype.getValue=function(e,t){return e<0||e>this.rawData_.length?null:t<0||t>this.rawData_[e].length?null:this.rawData_[e][t]},j.prototype.createInterface_=function(){var e=this.maindiv_;this.graphDiv=document.createElement("div"),this.graphDiv.style.textAlign="left",this.graphDiv.style.position="relative",e.appendChild(this.graphDiv),this.canvas_=h.createCanvas(),this.canvas_.style.position="absolute",this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.canvas_ctx_=h.getContext(this.canvas_),this.hidden_ctx_=h.getContext(this.hidden_),this.resizeElements_(),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new s.default(this);var t=this;this.mouseMoveHandler_=function(e){t.mouseMove_(e)},this.mouseOutHandler_=function(e){var a=e.target||e.fromElement,n=e.relatedTarget||e.toElement;h.isNodeContainedBy(a,t.graphDiv)&&!h.isNodeContainedBy(n,t.graphDiv)&&t.mouseOut_(e)},this.addAndTrackEvent(window,"mouseout",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),this.resizeHandler_||(this.resizeHandler_=function(e){t.resize()},this.addAndTrackEvent(window,"resize",this.resizeHandler_))},j.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+"px",this.graphDiv.style.height=this.height_+"px";var e=this.getNumericOption("pixelRatio"),t=e||h.getContextPixelRatio(this.canvas_ctx_);this.canvas_.width=this.width_*t,this.canvas_.height=this.height_*t,this.canvas_.style.width=this.width_+"px",this.canvas_.style.height=this.height_+"px",1!==t&&this.canvas_ctx_.scale(t,t);var a=e||h.getContextPixelRatio(this.hidden_ctx_);this.hidden_.width=this.width_*a,this.hidden_.height=this.height_*a,this.hidden_.style.width=this.width_+"px",this.hidden_.style.height=this.height_+"px",1!==a&&this.hidden_ctx_.scale(a,a)},j.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();for(var e=this.plugins_.length-1;e>=0;e--){var t=this.plugins_.pop();t.plugin.destroy&&t.plugin.destroy()}this.removeTrackedEvents_(),h.removeEvent(window,"mouseout",this.mouseOutHandler_),h.removeEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),h.removeEvent(window,"resize",this.resizeHandler_),this.resizeHandler_=null,function e(t){for(;t.hasChildNodes();)e(t.firstChild),t.removeChild(t.firstChild)}(this.maindiv_);var a=function(e){for(var t in e)"object"==typeof e[t]&&(e[t]=null)};a(this.layout_),a(this.plotter_),a(this)},j.prototype.createPlotKitCanvas_=function(e){var t=h.createCanvas();return t.style.position="absolute",t.style.top=e.style.top,t.style.left=e.style.left,t.width=this.width_,t.height=this.height_,t.style.width=this.width_+"px",t.style.height=this.height_+"px",t},j.prototype.createMouseEventElement_=function(){return this.canvas_},j.prototype.setColors_=function(){var e=this.getLabels(),t=e.length-1;this.colors_=[],this.colorsMap_={};for(var a=this.getNumericOption("colorSaturation")||1,n=this.getNumericOption("colorValue")||.5,r=Math.ceil(t/2),o=this.getOption("colors"),i=this.visibility(),s=0;s<t;s++)if(i[s]){var l=e[s+1],c=this.attributes_.getForSeries("color",l);if(!c)if(o)c=o[s%o.length];else{var u=1*(s%2?r+(s+1)/2:Math.ceil((s+1)/2))/(1+t);c=h.hsvToRGB(u,a,n)}this.colors_.push(c),this.colorsMap_[l]=c}},j.prototype.getColors=function(){return this.colors_},j.prototype.getPropertiesForSeries=function(e){for(var t=-1,a=this.getLabels(),n=1;n<a.length;n++)if(a[n]==e){t=n;break}return-1==t?null:{name:e,column:t,visible:this.visibility()[t-1],color:this.colorsMap_[e],axis:1+this.attributes_.axisForSeries(e)}},j.prototype.createRollInterface_=function(){var e=this,t=this.roller_;t||(this.roller_=t=document.createElement("input"),t.type="text",t.style.display="none",t.className="dygraph-roller",this.graphDiv.appendChild(t));var a=this.getBooleanOption("showRoller")?"block":"none",n=this.getArea(),r={top:n.y+n.h-25+"px",left:n.x+1+"px",display:a};t.size="2",t.value=this.rollPeriod_,h.update(t.style,r),t.onchange=function(){return e.adjustRoll(t.value)}},j.prototype.createDragInterface_=function(){var e={isZooming:!1,isPanning:!1,is2DPan:!1,dragStartX:null,dragStartY:null,dragEndX:null,dragEndY:null,dragDirection:null,prevEndX:null,prevEndY:null,prevDragDirection:null,cancelNextDblclick:!1,initialLeftmostDate:null,xUnitsPerPixel:null,dateRange:null,px:0,py:0,boundedDates:null,boundedValues:null,tarp:new g.default,initializeMouseDown:function(e,t,a){e.preventDefault?e.preventDefault():(e.returnValue=!1,e.cancelBubble=!0);var n=h.findPos(t.canvas_);a.px=n.x,a.py=n.y,a.dragStartX=h.dragGetX_(e,a),a.dragStartY=h.dragGetY_(e,a),a.cancelNextDblclick=!1,a.tarp.cover()},destroy:function(){var e=this;if((e.isZooming||e.isPanning)&&(e.isZooming=!1,e.dragStartX=null,e.dragStartY=null),e.isPanning){e.isPanning=!1,e.draggingDate=null,e.dateRange=null;for(var t=0;t<a.axes_.length;t++)delete a.axes_[t].draggingValue,delete a.axes_[t].dragValueRange}e.tarp.uncover()}},t=this.getOption("interactionModel"),a=this;for(var n in t)t.hasOwnProperty(n)&&this.addAndTrackEvent(this.mouseEventElement_,n,function(t){return function(n){t(n,a,e)}}(t[n]));t.willDestroyContextMyself||this.addAndTrackEvent(document,"mouseup",(function(t){e.destroy()}))},j.prototype.drawZoomRect_=function(e,t,a,n,r,o,i,s){var l=this.canvas_ctx_;o==h.HORIZONTAL?l.clearRect(Math.min(t,i),this.layout_.getPlotArea().y,Math.abs(t-i),this.layout_.getPlotArea().h):o==h.VERTICAL&&l.clearRect(this.layout_.getPlotArea().x,Math.min(n,s),this.layout_.getPlotArea().w,Math.abs(n-s)),e==h.HORIZONTAL?a&&t&&(l.fillStyle="rgba(128,128,128,0.33)",l.fillRect(Math.min(t,a),this.layout_.getPlotArea().y,Math.abs(a-t),this.layout_.getPlotArea().h)):e==h.VERTICAL&&r&&n&&(l.fillStyle="rgba(128,128,128,0.33)",l.fillRect(this.layout_.getPlotArea().x,Math.min(n,r),this.layout_.getPlotArea().w,Math.abs(r-n)))},j.prototype.clearZoomRect_=function(){this.currentZoomRectArgs_=null,this.canvas_ctx_.clearRect(0,0,this.width_,this.height_)},j.prototype.doZoomX_=function(e,t){this.currentZoomRectArgs_=null;var a=this.toDataXCoord(e),n=this.toDataXCoord(t);this.doZoomXDates_(a,n)},j.prototype.doZoomXDates_=function(e,t){var a=this,n=this.xAxisRange(),r=[e,t],o=this.getFunctionOption("zoomCallback");this.doAnimatedZoom(n,r,null,null,(function(){o&&o.call(a,e,t,a.yAxisRanges())}))},j.prototype.doZoomY_=function(e,t){var a=this;this.currentZoomRectArgs_=null;for(var n=this.yAxisRanges(),r=[],o=0;o<this.axes_.length;o++){var s=this.toDataYCoord(e,o),l=this.toDataYCoord(t,o);r.push([l,s])}var c=this.getFunctionOption("zoomCallback");this.doAnimatedZoom(null,null,n,r,(function(){if(c){var e=a.xAxisRange(),t=i(e,2),n=t[0],r=t[1];c.call(a,n,r,a.yAxisRanges())}}))},j.zoomAnimationFunction=function(e,t){return(1-Math.pow(1.5,-e))/(1-Math.pow(1.5,-t))},j.prototype.resetZoom=function(){var e=this,t=this.isZoomed("x"),a=this.isZoomed("y"),n=t||a;if(this.clearSelection(),n){var r=this.xAxisExtremes(),o=i(r,2),s=o[0],l=o[1],c=this.getBooleanOption("animatedZooms"),u=this.getFunctionOption("zoomCallback");if(!c)return this.dateWindow_=null,this.axes_.forEach((function(e){e.valueRange&&delete e.valueRange})),this.drawGraph_(),void(u&&u.call(this,s,l,this.yAxisRanges()));var d=null,h=null,p=null,f=null;t&&(d=this.xAxisRange(),h=[s,l]),a&&(p=this.yAxisRanges(),f=this.yAxisExtremes()),this.doAnimatedZoom(d,h,p,f,(function(){e.dateWindow_=null,e.axes_.forEach((function(e){e.valueRange&&delete e.valueRange})),u&&u.call(e,s,l,e.yAxisRanges())}))}},j.prototype.doAnimatedZoom=function(e,t,a,n,r){var o,i,s=this,l=this.getBooleanOption("animatedZooms")?j.ANIMATION_STEPS:1,c=[],u=[];if(null!==e&&null!==t)for(o=1;o<=l;o++)i=j.zoomAnimationFunction(o,l),c[o-1]=[e[0]*(1-i)+i*t[0],e[1]*(1-i)+i*t[1]];if(null!==a&&null!==n)for(o=1;o<=l;o++){i=j.zoomAnimationFunction(o,l);for(var d=[],p=0;p<this.axes_.length;p++)d.push([a[p][0]*(1-i)+i*n[p][0],a[p][1]*(1-i)+i*n[p][1]]);u[o-1]=d}h.repeatAndCleanup((function(e){if(u.length)for(var t=0;t<s.axes_.length;t++){var a=u[e][t];s.axes_[t].valueRange=[a[0],a[1]]}c.length&&(s.dateWindow_=c[e]),s.drawGraph_()}),l,j.ANIMATION_DURATION/l,r)},j.prototype.getArea=function(){return this.plotter_.area},j.prototype.eventToDomCoords=function(e){if(e.offsetX&&e.offsetY)return[e.offsetX,e.offsetY];var t=h.findPos(this.mouseEventElement_);return[h.pageX(e)-t.x,h.pageY(e)-t.y]},j.prototype.findClosestRow=function(e){for(var t=1/0,a=-1,n=this.layout_.points,r=0;r<n.length;r++)for(var o=n[r],i=o.length,s=0;s<i;s++){var l=o[s];if(h.isValidPoint(l,!0)){var c=Math.abs(l.canvasx-e);c<t&&(t=c,a=l.idx)}}return a},j.prototype.findClosestPoint=function(e,t){for(var a,n,r,o,i,s,l,c=1/0,u=this.layout_.points.length-1;u>=0;--u)for(var d=this.layout_.points[u],p=0;p<d.length;++p)o=d[p],h.isValidPoint(o)&&(a=(n=o.canvasx-e)*n+(r=o.canvasy-t)*r)<c&&(c=a,i=o,s=u,l=o.idx);return{row:l,seriesName:this.layout_.setNames[s],point:i}},j.prototype.findStackedPoint=function(e,t){for(var a,n,r=this.findClosestRow(e),o=0;o<this.layout_.points.length;++o){var i=r-this.getLeftBoundary_(o),s=this.layout_.points[o];if(!(i>=s.length)){var l=s[i];if(h.isValidPoint(l)){var c=l.canvasy;if(e>l.canvasx&&i+1<s.length){var u=s[i+1];h.isValidPoint(u)&&(d=u.canvasx-l.canvasx)>0&&(c+=(e-l.canvasx)/d*(u.canvasy-l.canvasy))}else if(e<l.canvasx&&i>0){var d,p=s[i-1];h.isValidPoint(p)&&(d=l.canvasx-p.canvasx)>0&&(c+=(l.canvasx-e)/d*(p.canvasy-l.canvasy))}(0===o||c<t)&&(a=l,n=o)}}}return{row:r,seriesName:this.layout_.setNames[n],point:a}},j.prototype.mouseMove_=function(e){var t=this.layout_.points;if(void 0!==t&&null!==t){var a=this.eventToDomCoords(e),n=a[0],r=a[1],o=!1;if(this.getOption("highlightSeriesOpts")&&!this.isSeriesLocked()){var i;i=this.getBooleanOption("stackedGraph")?this.findStackedPoint(n,r):this.findClosestPoint(n,r),o=this.setSelection(i.row,i.seriesName)}else{var s=this.findClosestRow(n);o=this.setSelection(s)}var l=this.getFunctionOption("highlightCallback");l&&o&&l.call(this,e,this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}},j.prototype.getLeftBoundary_=function(e){if(this.boundaryIds_[e])return this.boundaryIds_[e][0];for(var t=0;t<this.boundaryIds_.length;t++)if(void 0!==this.boundaryIds_[t])return this.boundaryIds_[t][0];return 0},j.prototype.animateSelection_=function(e){void 0===this.fadeLevel&&(this.fadeLevel=0),void 0===this.animateId&&(this.animateId=0);var t=this.fadeLevel,a=e<0?t:10-t;if(a<=0)this.fadeLevel&&this.updateSelection_(1);else{var n=++this.animateId,r=this;h.repeatAndCleanup((function(t){r.animateId==n&&(r.fadeLevel+=e,0===r.fadeLevel?r.clearSelection():r.updateSelection_(r.fadeLevel/10))}),a,30,(function(){0!==r.fadeLevel&&e<0&&(r.fadeLevel=0,r.clearSelection())}))}},j.prototype.updateSelection_=function(e){this.cascadeEvents_("select",{selectedRow:-1===this.lastRow_?void 0:this.lastRow_,selectedX:-1===this.lastx_?void 0:this.lastx_,selectedPoints:this.selPoints_});var t,a=this.canvas_ctx_;if(this.getOption("highlightSeriesOpts")){a.clearRect(0,0,this.width_,this.height_);var n=1-this.getNumericOption("highlightSeriesBackgroundAlpha"),r=h.toRGB_(this.getOption("highlightSeriesBackgroundColor"));if(n){if(void 0===e)return void this.animateSelection_(1);n*=e,a.fillStyle="rgba("+r.r+","+r.g+","+r.b+","+n+")",a.fillRect(0,0,this.width_,this.height_)}this.plotter_._renderLineChart(this.highlightSet_,a)}else if(this.previousVerticalX_>=0){var o=0,i=this.attr_("labels");for(t=1;t<i.length;t++){var s=this.getNumericOption("highlightCircleSize",i[t]);s>o&&(o=s)}var l=this.previousVerticalX_;a.clearRect(l-o-1,0,2*o+2,this.height_)}if(this.selPoints_.length>0){var c=this.selPoints_[0].canvasx;for(a.save(),t=0;t<this.selPoints_.length;t++){var u=this.selPoints_[t];if(!isNaN(u.canvasy)){var d=this.getNumericOption("highlightCircleSize",u.name),p=this.getFunctionOption("drawHighlightPointCallback",u.name),f=this.plotter_.colors[u.name];p||(p=h.Circles.DEFAULT),a.lineWidth=this.getNumericOption("strokeWidth",u.name),a.strokeStyle=f,a.fillStyle=f,p.call(this,this,u.name,a,c,u.canvasy,f,d,u.idx)}}a.restore(),this.previousVerticalX_=c}},j.prototype.setSelection=function(e,t,a){this.selPoints_=[];var n=!1;if(!1!==e&&e>=0){e!=this.lastRow_&&(n=!0),this.lastRow_=e;for(var r=0;r<this.layout_.points.length;++r){var o=this.layout_.points[r],i=e-this.getLeftBoundary_(r);if(i>=0&&i<o.length&&o[i].idx==e)null!==(l=o[i]).yval&&this.selPoints_.push(l);else for(var s=0;s<o.length;++s){var l;if((l=o[s]).idx==e){null!==l.yval&&this.selPoints_.push(l);break}}}}else this.lastRow_>=0&&(n=!0),this.lastRow_=-1;return this.selPoints_.length?this.lastx_=this.selPoints_[0].xval:this.lastx_=-1,void 0!==t&&(this.highlightSet_!==t&&(n=!0),this.highlightSet_=t),void 0!==a&&(this.lockedSet_=a),n&&this.updateSelection_(void 0),n},j.prototype.mouseOut_=function(e){this.getFunctionOption("unhighlightCallback")&&this.getFunctionOption("unhighlightCallback").call(this,e),this.getBooleanOption("hideOverlayOnMouseOut")&&!this.lockedSet_&&this.clearSelection()},j.prototype.clearSelection=function(){this.cascadeEvents_("deselect",{}),this.lockedSet_=!1,this.fadeLevel?this.animateSelection_(-1):(this.canvas_ctx_.clearRect(0,0,this.width_,this.height_),this.fadeLevel=0,this.selPoints_=[],this.lastx_=-1,this.lastRow_=-1,this.highlightSet_=null)},j.prototype.getSelection=function(){if(!this.selPoints_||this.selPoints_.length<1)return-1;for(var e=0;e<this.layout_.points.length;e++)for(var t=this.layout_.points[e],a=0;a<t.length;a++)if(t[a].x==this.selPoints_[0].x)return t[a].idx;return-1},j.prototype.getHighlightSeries=function(){return this.highlightSet_},j.prototype.isSeriesLocked=function(){return this.lockedSet_},j.prototype.loadedEvent_=function(e){this.rawData_=this.parseCSV_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_()},j.prototype.addXTicks_=function(){var e;e=this.dateWindow_?[this.dateWindow_[0],this.dateWindow_[1]]:this.xAxisExtremes();var t=this.optionsViewForAxis_("x"),a=t("ticker")(e[0],e[1],this.plotter_.area.w,t,this);this.layout_.setXTicks(a)},j.prototype.getHandlerClass_=function(){return this.attr_("dataHandler")?this.attr_("dataHandler"):this.fractions_?this.getBooleanOption("errorBars")?y.default:_.default:this.getBooleanOption("customBars")?v.default:this.getBooleanOption("errorBars")?b.default:m.default},j.prototype.predraw_=function(){var e=new Date;this.dataHandler_=new(this.getHandlerClass_()),this.layout_.computePlotArea(),this.computeYAxes_(),this.is_initial_draw_||(this.canvas_ctx_.restore(),this.hidden_ctx_.restore()),this.canvas_ctx_.save(),this.hidden_ctx_.save(),this.plotter_=new l.default(this,this.hidden_,this.hidden_ctx_,this.layout_),this.createRollInterface_(),this.cascadeEvents_("predraw"),this.rolledSeries_=[null];for(var t=1;t<this.numColumns();t++){var a=this.dataHandler_.extractSeries(this.rawData_,t,this.attributes_);this.rollPeriod_>1&&(a=this.dataHandler_.rollingAverage(a,this.rollPeriod_,this.attributes_)),this.rolledSeries_.push(a)}this.drawGraph_();var n=new Date;this.drawingTimeMs_=n-e},j.PointType=void 0,j.stackPoints_=function(e,t,a,n){for(var r=null,o=null,i=null,s=-1,l=0;l<e.length;++l){var c=e[l],u=c.xval;void 0===t[u]&&(t[u]=0);var d=c.yval;isNaN(d)||null===d?"none"==n?d=0:(function(t){if(!(s>=t))for(var a=t;a<e.length;++a)if(i=null,!isNaN(e[a].yval)&&null!==e[a].yval){s=a,i=e[a];break}}(l),d=o&&i&&"none"!=n?o.yval+(i.yval-o.yval)*((u-o.xval)/(i.xval-o.xval)):o&&"all"==n?o.yval:i&&"all"==n?i.yval:0):o=c;var h=t[u];r!=u&&(h+=d,t[u]=h),r=u,c.yval_stacked=h,h>a[1]&&(a[1]=h),h<a[0]&&(a[0]=h)}},j.prototype.gatherDatasets_=function(e,t){var a,n,r,o,i,s,l=[],c=[],u=[],d={};for(a=e.length-1;a>=1;a--)if(this.visibility()[a-1]){if(t){s=e[a];var h=t[0],p=t[1];for(r=null,o=null,n=0;n<s.length;n++)s[n][0]>=h&&null===r&&(r=n),s[n][0]<=p&&(o=n);null===r&&(r=0);for(var f=r,g=!0;g&&f>0;)g=null===s[--f][1];null===o&&(o=s.length-1);var m=o;for(g=!0;g&&m<s.length-1;)g=null===s[++m][1];f!==r&&(r=f),m!==o&&(o=m),l[a-1]=[r,o],s=s.slice(r,o+1)}else s=e[a],l[a-1]=[0,s.length-1];var b=this.attr_("labels")[a],v=this.dataHandler_.getExtremeYValues(s,t,this.getBooleanOption("stepPlot",b)),_=this.dataHandler_.seriesToPoints(s,b,l[a-1][0]);this.getBooleanOption("stackedGraph")&&(void 0===u[i=this.attributes_.axisForSeries(b)]&&(u[i]=[]),j.stackPoints_(_,u[i],v,this.getBooleanOption("stackedGraphNaNFill"))),d[b]=v,c[a]=_}return{points:c,extremes:d,boundaryIds:l}},j.prototype.drawGraph_=function(){var e=new Date,t=this.is_initial_draw_;this.is_initial_draw_=!1,this.layout_.removeAllDatasets(),this.setColors_(),this.attrs_.pointSize=.5*this.getNumericOption("highlightCircleSize");var a=this.gatherDatasets_(this.rolledSeries_,this.dateWindow_),n=a.points,r=a.extremes;this.boundaryIds_=a.boundaryIds,this.setIndexByName_={};for(var o=this.attr_("labels"),i=0,s=1;s<n.length;s++)this.visibility()[s-1]&&(this.layout_.addDataset(o[s],n[s]),this.datasetIndex_[s]=i++);for(s=0;s<o.length;s++)this.setIndexByName_[o[s]]=s;if(this.computeYAxisRanges_(r),this.layout_.setYAxes(this.axes_),this.addXTicks_(),this.layout_.evaluate(),this.renderGraph_(t),this.getStringOption("timingName")){var l=new Date;console.log(this.getStringOption("timingName")+" - drawGraph: "+(l-e)+"ms")}},j.prototype.renderGraph_=function(e){this.cascadeEvents_("clearChart"),this.plotter_.clear();var t=this.getFunctionOption("underlayCallback");t&&t.call(this,this.hidden_ctx_,this.layout_.getPlotArea(),this,this);var a={canvas:this.hidden_,drawingContext:this.hidden_ctx_};this.cascadeEvents_("willDrawChart",a),this.plotter_.render(),this.cascadeEvents_("didDrawChart",a),this.lastRow_=-1,this.canvas_.getContext("2d").clearRect(0,0,this.width_,this.height_);var n=this.getFunctionOption("drawCallback");if(null!==n&&n.call(this,this,e),e)for(this.readyFired_=!0;this.readyFns_.length>0;)this.readyFns_.pop()(this)},j.prototype.computeYAxes_=function(){var e,t,a;for(this.axes_=[],e=0;e<this.attributes_.numAxes();e++)t={g:this},h.update(t,this.attributes_.axisOptions(e)),this.axes_[e]=t;for(e=0;e<this.axes_.length;e++)if(0===e)(a=(t=this.optionsViewForAxis_("y"+(e?"2":"")))("valueRange"))&&(this.axes_[e].valueRange=a);else{var n=this.user_attrs_.axes;n&&n.y2&&(a=n.y2.valueRange)&&(this.axes_[e].valueRange=a)}},j.prototype.numAxes=function(){return this.attributes_.numAxes()},j.prototype.axisPropertiesForSeries=function(e){return this.axes_[this.attributes_.axisForSeries(e)]},j.prototype.computeYAxisRanges_=function(e){for(var t,a,n,r,o,i=function(e){return isNaN(parseFloat(e))},s=this.attributes_.numAxes(),l=0;l<s;l++){var c=this.axes_[l],u=this.attributes_.getForAxis("logscale",l),d=this.attributes_.getForAxis("includeZero",l),p=this.attributes_.getForAxis("independentTicks",l);n=this.attributes_.seriesForAxis(l),t=!0,r=.1;var f=this.getNumericOption("yRangePad");if(null!==f&&(t=!1,r=f/this.plotter_.area.h),0===n.length)c.extremeRange=[0,1];else{for(var g,m,b=1/0,v=-1/0,_=0;_<n.length;_++)e.hasOwnProperty(n[_])&&(null!==(g=e[n[_]][0])&&(b=Math.min(g,b)),null!==(m=e[n[_]][1])&&(v=Math.max(m,v)));d&&!u&&(b>0&&(b=0),v<0&&(v=0)),b==1/0&&(b=0),v==-1/0&&(v=1),0===(a=v-b)&&(0!==v?a=Math.abs(v):(v=1,a=1));var y=v,O=b;t&&(u?(y=v+r*a,O=b):((O=b-r*a)<0&&b>=0&&(O=0),(y=v+r*a)>0&&v<=0&&(y=0))),c.extremeRange=[O,y]}if(c.valueRange){var x=i(c.valueRange[0])?c.extremeRange[0]:c.valueRange[0],w=i(c.valueRange[1])?c.extremeRange[1]:c.valueRange[1];c.computedValueRange=[x,w]}else c.computedValueRange=c.extremeRange;if(!t)if((x=c.computedValueRange[0])===(w=c.computedValueRange[1])&&(x-=.5,w+=.5),u){var E=r/(2*r-1),S=(r-1)/(2*r-1);c.computedValueRange[0]=h.logRangeFraction(x,w,E),c.computedValueRange[1]=h.logRangeFraction(x,w,S)}else a=w-x,c.computedValueRange[0]=x-a*r,c.computedValueRange[1]=w+a*r;if(p){c.independentTicks=p;var C=(A=this.optionsViewForAxis_("y"+(l?"2":"")))("ticker");c.ticks=C(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,A,this),o||(o=c)}}if(void 0===o)throw'Configuration Error: At least one axis has to have the "independentTicks" option activated.';for(l=0;l<s;l++)if(!(c=this.axes_[l]).independentTicks){C=(A=this.optionsViewForAxis_("y"+(l?"2":"")))("ticker");for(var A,k=o.ticks,j=o.computedValueRange[1]-o.computedValueRange[0],T=c.computedValueRange[1]-c.computedValueRange[0],D=[],P=0;P<k.length;P++){var M=(k[P].v-o.computedValueRange[0])/j,L=c.computedValueRange[0]+M*T;D.push(L)}c.ticks=C(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,A,this,D)}},j.prototype.detectTypeFromString_=function(e){var t=!1,a=e.indexOf("-");a>0&&"e"!=e[a-1]&&"E"!=e[a-1]||e.indexOf("/")>=0||isNaN(parseFloat(e))?t=!0:8==e.length&&e>"19700101"&&e<"20371231"&&(t=!0),this.setXAxisOptions_(t)},j.prototype.setXAxisOptions_=function(e){e?(this.attrs_.xValueParser=h.dateParser,this.attrs_.axes.x.valueFormatter=h.dateValueFormatter,this.attrs_.axes.x.ticker=d.dateTicker,this.attrs_.axes.x.axisLabelFormatter=h.dateAxisLabelFormatter):(this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=d.numericTicks,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter)},j.prototype.parseCSV_=function(e){var t,a,n=[],r=h.detectLineDelimiter(e),o=e.split(r||"\n"),i=this.getStringOption("delimiter");-1==o[0].indexOf(i)&&o[0].indexOf("\t")>=0&&(i="\t");var s=0;"labels"in this.user_attrs_||(s=1,this.attrs_.labels=o[0].split(i),this.attributes_.reparseSeries());for(var l,c=!1,u=this.attr_("labels").length,d=!1,p=s;p<o.length;p++){var f=o[p];if(0!==f.length&&"#"!=f[0]){var g=f.split(i);if(!(g.length<2)){var m=[];if(c||(this.detectTypeFromString_(g[0]),l=this.getFunctionOption("xValueParser"),c=!0),m[0]=l(g[0],this),this.fractions_)for(a=1;a<g.length;a++)2!=(t=g[a].split("/")).length?(console.error('Expected fractional "num/den" values in CSV data but found a value \''+g[a]+"' on line "+(1+p)+" ('"+f+"') which is not of this form."),m[a]=[0,0]):m[a]=[h.parseFloat_(t[0],p,f),h.parseFloat_(t[1],p,f)];else if(this.getBooleanOption("errorBars"))for(g.length%2!=1&&console.error("Expected alternating (value, stdev.) pairs in CSV data but line "+(1+p)+" has an odd number of values ("+(g.length-1)+"): '"+f+"'"),a=1;a<g.length;a+=2)m[(a+1)/2]=[h.parseFloat_(g[a],p,f),h.parseFloat_(g[a+1],p,f)];else if(this.getBooleanOption("customBars"))for(a=1;a<g.length;a++){var b=g[a];/^ *$/.test(b)?m[a]=[null,null,null]:3==(t=b.split(";")).length?m[a]=[h.parseFloat_(t[0],p,f),h.parseFloat_(t[1],p,f),h.parseFloat_(t[2],p,f)]:console.warn('When using customBars, values must be either blank or "low;center;high" tuples (got "'+b+'" on line '+(1+p))}else for(a=1;a<g.length;a++)m[a]=h.parseFloat_(g[a],p,f);if(n.length>0&&m[0]<n[n.length-1][0]&&(d=!0),m.length!=u&&console.error("Number of columns in line "+p+" ("+m.length+") does not agree with number of labels ("+u+") "+f),0===p&&this.attr_("labels")){var v=!0;for(a=0;v&&a<m.length;a++)m[a]&&(v=!1);if(v){console.warn("The dygraphs 'labels' option is set, but the first row of CSV data ('"+f+"') appears to also contain labels. Will drop the CSV labels and use the option labels.");continue}}n.push(m)}}}return d&&(console.warn("CSV is out of order; order it correctly to speed loading."),n.sort((function(e,t){return e[0]-t[0]}))),n},j.prototype.parseArray_=function(e){if(0===e.length)return console.error("Can't plot empty data set"),null;if(0===e[0].length)return console.error("Data set cannot contain an empty row"),null;var t;if(function(e){var t=e[0],a=t[0];if("number"!=typeof a&&!h.isDateLike(a))throw new Error("Expected number or date but got "+typeof a+": "+a+".");for(var n=1;n<t.length;n++){var r=t[n];if(null!==r&&void 0!==r&&"number"!=typeof r&&!h.isArrayLike(r))throw new Error("Expected number or array but got "+typeof r+": "+r+".")}}(e),null===this.attr_("labels")){for(console.warn("Using default labels. Set labels explicitly via 'labels' in the options parameter"),this.attrs_.labels=["X"],t=1;t<e[0].length;t++)this.attrs_.labels.push("Y"+t);this.attributes_.reparseSeries()}else{var a=this.attr_("labels");if(a.length!=e[0].length)return console.error("Mismatch between number of labels ("+a+") and number of columns in array ("+e[0].length+")"),null}if(h.isDateLike(e[0][0])){this.attrs_.axes.x.valueFormatter=h.dateValueFormatter,this.attrs_.axes.x.ticker=d.dateTicker,this.attrs_.axes.x.axisLabelFormatter=h.dateAxisLabelFormatter;var n=h.clone(e);for(t=0;t<e.length;t++){if(0===n[t].length)return console.error("Row "+(1+t)+" of data is empty"),null;if(null===n[t][0]||"function"!=typeof n[t][0].getTime||isNaN(n[t][0].getTime()))return console.error("x value in row "+(1+t)+" is not a Date"),null;n[t][0]=n[t][0].getTime()}return n}return this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=d.numericTicks,this.attrs_.axes.x.axisLabelFormatter=h.numberAxisLabelFormatter,e},j.prototype.parseDataTable_=function(e){var t=e.getNumberOfColumns(),a=e.getNumberOfRows(),n=e.getColumnType(0);if("date"==n||"datetime"==n)this.attrs_.xValueParser=h.dateParser,this.attrs_.axes.x.valueFormatter=h.dateValueFormatter,this.attrs_.axes.x.ticker=d.dateTicker,this.attrs_.axes.x.axisLabelFormatter=h.dateAxisLabelFormatter;else{if("number"!=n)throw new Error("only 'date', 'datetime' and 'number' types are supported for column 1 of DataTable input (Got '"+n+"')");this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=d.numericTicks,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter}var r,o,i=[],s={},l=!1;for(r=1;r<t;r++){var c=e.getColumnType(r);if("number"==c)i.push(r);else{if("string"!=c||!this.getBooleanOption("displayAnnotations"))throw new Error("Only 'number' is supported as a dependent type with Gviz. 'string' is only supported if displayAnnotations is true");var u=i[i.length-1];s.hasOwnProperty(u)?s[u].push(r):s[u]=[r],l=!0}}var p=[e.getColumnLabel(0)];for(r=0;r<i.length;r++)p.push(e.getColumnLabel(i[r])),this.getBooleanOption("errorBars")&&(r+=1);this.attrs_.labels=p,t=p.length;var f=[],g=!1,m=[];for(r=0;r<a;r++){var b=[];if(void 0!==e.getValue(r,0)&&null!==e.getValue(r,0)){if("date"==n||"datetime"==n?b.push(e.getValue(r,0).getTime()):b.push(e.getValue(r,0)),this.getBooleanOption("errorBars"))for(o=0;o<t-1;o++)b.push([e.getValue(r,1+2*o),e.getValue(r,2+2*o)]);else{for(o=0;o<i.length;o++){var v=i[o];if(b.push(e.getValue(r,v)),l&&s.hasOwnProperty(v)&&null!==e.getValue(r,s[v][0])){var _={};_.series=e.getColumnLabel(v),_.xval=b[0],_.shortText=function(e){var t=String.fromCharCode(65+e%26);for(e=Math.floor(e/26);e>0;)t=String.fromCharCode(65+(e-1)%26)+t.toLowerCase(),e=Math.floor((e-1)/26);return t}(m.length),_.text="";for(var y=0;y<s[v].length;y++)y&&(_.text+="\n"),_.text+=e.getValue(r,s[v][y]);m.push(_)}}for(o=0;o<b.length;o++)isFinite(b[o])||(b[o]=null)}f.length>0&&b[0]<f[f.length-1][0]&&(g=!0),f.push(b)}else console.warn("Ignoring row "+r+" of DataTable because of undefined or null first column.")}g&&(console.warn("DataTable is out of order; order it correctly to speed loading."),f.sort((function(e,t){return e[0]-t[0]}))),this.rawData_=f,m.length>0&&this.setAnnotations(m,!0),this.attributes_.reparseSeries()},j.prototype.cascadeDataDidUpdateEvent_=function(){this.cascadeEvents_("dataDidUpdate",{})},j.prototype.start_=function(){var e=this.file_;if("function"==typeof e&&(e=e()),h.isArrayLike(e))this.rawData_=this.parseArray_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("object"==typeof e&&"function"==typeof e.getColumnRange)this.parseDataTable_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("string"==typeof e)if(h.detectLineDelimiter(e))this.loadedEvent_(e);else{var t;t=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var a=this;t.onreadystatechange=function(){4==t.readyState&&(200!==t.status&&0!==t.status||a.loadedEvent_(t.responseText))},t.open("GET",e,!0),t.send(null)}else console.error("Unknown data format: "+typeof e)},j.prototype.updateOptions=function(e,t){void 0===t&&(t=!1);var a=e.file,n=j.copyUserAttrs_(e);"rollPeriod"in n&&(this.rollPeriod_=n.rollPeriod),"dateWindow"in n&&(this.dateWindow_=n.dateWindow);var r=h.isPixelChangingOptionList(this.attr_("labels"),n);h.updateDeep(this.user_attrs_,n),this.attributes_.reparseSeries(),a?(this.cascadeEvents_("dataWillUpdate",{}),this.file_=a,t||this.start_()):t||(r?this.predraw_():this.renderGraph_(!1))},j.copyUserAttrs_=function(e){var t={};for(var a in e)e.hasOwnProperty(a)&&"file"!=a&&e.hasOwnProperty(a)&&(t[a]=e[a]);return t},j.prototype.resize=function(e,t){if(!this.resize_lock){this.resize_lock=!0,null===e!=(null===t)&&(console.warn("Dygraph.resize() should be called with zero parameters or two non-NULL parameters. Pretending it was zero."),e=t=null);var a=this.width_,n=this.height_;e?(this.maindiv_.style.width=e+"px",this.maindiv_.style.height=t+"px",this.width_=e,this.height_=t):(this.width_=this.maindiv_.clientWidth,this.height_=this.maindiv_.clientHeight),a==this.width_&&n==this.height_||(this.resizeElements_(),this.predraw_()),this.resize_lock=!1}},j.prototype.adjustRoll=function(e){this.rollPeriod_=e,this.predraw_()},j.prototype.visibility=function(){for(this.getOption("visibility")||(this.attrs_.visibility=[]);this.getOption("visibility").length<this.numColumns()-1;)this.attrs_.visibility.push(!0);return this.getOption("visibility")},j.prototype.setVisibility=function(e,t){var a=this.visibility(),n=!1;if(Array.isArray(e)||(null!==e&&"object"==typeof e?n=!0:e=[e]),n)for(var r in e)e.hasOwnProperty(r)&&(r<0||r>=a.length?console.warn("Invalid series number in setVisibility: "+r):a[r]=e[r]);else for(r=0;r<e.length;r++)"boolean"==typeof e[r]?r>=a.length?console.warn("Invalid series number in setVisibility: "+r):a[r]=e[r]:e[r]<0||e[r]>=a.length?console.warn("Invalid series number in setVisibility: "+e[r]):a[e[r]]=t;this.predraw_()},j.prototype.size=function(){return{width:this.width_,height:this.height_}},j.prototype.setAnnotations=function(e,t){this.annotations_=e,this.layout_?(this.layout_.setAnnotations(this.annotations_),t||this.predraw_()):console.warn("Tried to setAnnotations before dygraph was ready. Try setting them in a ready() block. See dygraphs.com/tests/annotation.html")},j.prototype.annotations=function(){return this.annotations_},j.prototype.getLabels=function(){var e=this.attr_("labels");return e?e.slice():null},j.prototype.indexFromSetName=function(e){return this.setIndexByName_[e]},j.prototype.getRowForX=function(e){for(var t=0,a=this.numRows()-1;t<=a;){var n=a+t>>1,r=this.getValue(n,0);if(r<e)t=n+1;else if(r>e)a=n-1;else{if(t==n)return n;a=n}}return null},j.prototype.ready=function(e){this.is_initial_draw_?this.readyFns_.push(e):e.call(this,this)},j.prototype.addAndTrackEvent=function(e,t,a){h.addEvent(e,t,a),this.registeredEvents_.push({elem:e,type:t,fn:a})},j.prototype.removeTrackedEvents_=function(){if(this.registeredEvents_)for(var e=0;e<this.registeredEvents_.length;e++){var t=this.registeredEvents_[e];h.removeEvent(t.elem,t.type,t.fn)}this.registeredEvents_=[]},j.PLUGINS=[C.default,w.default,A.default,E.default,x.default,S.default],j.GVizChart=k.default,j.DASHED_LINE=h.DASHED_LINE,j.DOT_DASH_LINE=h.DOT_DASH_LINE,j.dateAxisLabelFormatter=h.dateAxisLabelFormatter,j.toRGB_=h.toRGB_,j.findPos=h.findPos,j.pageX=h.pageX,j.pageY=h.pageY,j.dateString_=h.dateString_,j.defaultInteractionModel=u.default.defaultModel,j.nonInteractiveModel=j.nonInteractiveModel_=u.default.nonInteractiveModel_,j.Circles=h.Circles,j.Plugins={Legend:C.default,Axes:w.default,Annotations:x.default,ChartLabels:E.default,Grid:S.default,RangeSelector:A.default},j.DataHandlers={DefaultHandler:m.default,BarsHandler:O.default,CustomBarsHandler:v.default,DefaultFractionHandler:_.default,ErrorBarsHandler:b.default,FractionsBarsHandler:y.default},j.startPan=u.default.startPan,j.startZoom=u.default.startZoom,j.movePan=u.default.movePan,j.moveZoom=u.default.moveZoom,j.endPan=u.default.endPan,j.endZoom=u.default.endZoom,j.numericLinearTicks=d.numericLinearTicks,j.numericTicks=d.numericTicks,j.dateTicker=d.dateTicker,j.Granularity=d.Granularity,j.getDateAxis=d.getDateAxis,j.floatFormat=h.floatFormat,a.default=j,t.exports=a.default}).call(this,e("_process"))},{"./datahandler/bars":5,"./datahandler/bars-custom":2,"./datahandler/bars-error":3,"./datahandler/bars-fractions":4,"./datahandler/default":8,"./datahandler/default-fractions":7,"./dygraph-canvas":9,"./dygraph-default-attrs":10,"./dygraph-gviz":11,"./dygraph-interaction-model":12,"./dygraph-layout":13,"./dygraph-options":15,"./dygraph-options-reference":14,"./dygraph-tickers":16,"./dygraph-utils":17,"./iframe-tarp":19,"./plugins/annotations":20,"./plugins/axes":21,"./plugins/chart-labels":22,"./plugins/grid":23,"./plugins/legend":24,"./plugins/range-selector":25,_process:1}],19:[function(e,t,a){"use strict";function n(){this.tarps=[]}Object.defineProperty(a,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("./dygraph-utils"));n.prototype.cover=function(){for(var e=document.getElementsByTagName("iframe"),t=0;t<e.length;t++){var a=e[t],n=r.findPos(a),o=n.x,i=n.y,s=a.offsetWidth,l=a.offsetHeight,c=document.createElement("div");c.style.position="absolute",c.style.left=o+"px",c.style.top=i+"px",c.style.width=s+"px",c.style.height=l+"px",c.style.zIndex=999,document.body.appendChild(c),this.tarps.push(c)}},n.prototype.uncover=function(){for(var e=0;e<this.tarps.length;e++)this.tarps[e].parentNode.removeChild(this.tarps[e]);this.tarps=[]},a.default=n,t.exports=a.default},{"./dygraph-utils":17}],20:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(){this.annotations_=[]};n.prototype.toString=function(){return"Annotations Plugin"},n.prototype.activate=function(e){return{clearChart:this.clearChart,didDrawChart:this.didDrawChart}},n.prototype.detachLabels=function(){for(var e=0;e<this.annotations_.length;e++){var t=this.annotations_[e];t.parentNode&&t.parentNode.removeChild(t),this.annotations_[e]=null}this.annotations_=[]},n.prototype.clearChart=function(e){this.detachLabels()},n.prototype.didDrawChart=function(e){var t=e.dygraph,a=t.layout_.annotated_points;if(a&&0!==a.length)for(var n=e.canvas.parentNode,r=function(e,a,n){return function(r){var o=n.annotation;o.hasOwnProperty(e)?o[e](o,n,t,r):t.getOption(a)&&t.getOption(a)(o,n,t,r)}},o=e.dygraph.getArea(),i={},s=0;s<a.length;s++){var l=a[s];if(!(l.canvasx<o.x||l.canvasx>o.x+o.w||l.canvasy<o.y||l.canvasy>o.y+o.h)){var c=l.annotation,u=6;c.hasOwnProperty("tickHeight")&&(u=c.tickHeight);var d=document.createElement("div");d.style.fontSize=t.getOption("axisLabelFontSize")+"px";var h="dygraph-annotation";c.hasOwnProperty("icon")||(h+=" dygraphDefaultAnnotation dygraph-default-annotation"),c.hasOwnProperty("cssClass")&&(h+=" "+c.cssClass),d.className=h;var p=c.hasOwnProperty("width")?c.width:16,f=c.hasOwnProperty("height")?c.height:16;if(c.hasOwnProperty("icon")){var g=document.createElement("img");g.src=c.icon,g.width=p,g.height=f,d.appendChild(g)}else l.annotation.hasOwnProperty("shortText")&&d.appendChild(document.createTextNode(l.annotation.shortText));var m=l.canvasx-p/2;d.style.left=m+"px";var b=0;if(c.attachAtBottom){var v=o.y+o.h-f-u;i[m]?v-=i[m]:i[m]=0,i[m]+=u+f,b=v}else b=l.canvasy-f-u;d.style.top=b+"px",d.style.width=p+"px",d.style.height=f+"px",d.title=l.annotation.text,d.style.color=t.colorsMap_[l.name],d.style.borderColor=t.colorsMap_[l.name],c.div=d,t.addAndTrackEvent(d,"click",r("clickHandler","annotationClickHandler",l)),t.addAndTrackEvent(d,"mouseover",r("mouseOverHandler","annotationMouseOverHandler",l)),t.addAndTrackEvent(d,"mouseout",r("mouseOutHandler","annotationMouseOutHandler",l)),t.addAndTrackEvent(d,"dblclick",r("dblClickHandler","annotationDblClickHandler",l)),n.appendChild(d),this.annotations_.push(d);var _=e.drawingContext;_.save(),_.strokeStyle=c.hasOwnProperty("tickColor")?c.tickColor:t.colorsMap_[l.name],_.lineWidth=c.hasOwnProperty("tickWidth")?c.tickWidth:t.getOption("strokeWidth"),_.beginPath(),c.attachAtBottom?(v=b+f,_.moveTo(l.canvasx,v),_.lineTo(l.canvasx,v+u)):(_.moveTo(l.canvasx,l.canvasy),_.lineTo(l.canvasx,l.canvasy-2-u)),_.closePath(),_.stroke(),_.restore()}}},n.prototype.destroy=function(){this.detachLabels()},a.default=n,t.exports=a.default},{}],21:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("../dygraph-utils")),r=function(){this.xlabels_=[],this.ylabels_=[]};r.prototype.toString=function(){return"Axes Plugin"},r.prototype.activate=function(e){return{layout:this.layout,clearChart:this.clearChart,willDrawChart:this.willDrawChart}},r.prototype.layout=function(e){var t,a=e.dygraph;if(a.getOptionForAxis("drawAxis","y")){var n=a.getOptionForAxis("axisLabelWidth","y")+2*a.getOptionForAxis("axisTickSize","y");e.reserveSpaceLeft(n)}a.getOptionForAxis("drawAxis","x")&&(t=a.getOption("xAxisHeight")?a.getOption("xAxisHeight"):a.getOptionForAxis("axisLabelFontSize","x")+2*a.getOptionForAxis("axisTickSize","x"),e.reserveSpaceBottom(t)),2==a.numAxes()?a.getOptionForAxis("drawAxis","y2")&&(n=a.getOptionForAxis("axisLabelWidth","y2")+2*a.getOptionForAxis("axisTickSize","y2"),e.reserveSpaceRight(n)):a.numAxes()>2&&a.error("Only two y-axes are supported at this time. (Trying to use "+a.numAxes()+")")},r.prototype.detachLabels=function(){function e(e){for(var t=0;t<e.length;t++){var a=e[t];a.parentNode&&a.parentNode.removeChild(a)}}e(this.xlabels_),e(this.ylabels_),this.xlabels_=[],this.ylabels_=[]},r.prototype.clearChart=function(e){this.detachLabels()},r.prototype.willDrawChart=function(e){function t(e){return Math.round(e)+.5}function a(e){return Math.round(e)-.5}var r=this,o=e.dygraph;if(o.getOptionForAxis("drawAxis","x")||o.getOptionForAxis("drawAxis","y")||o.getOptionForAxis("drawAxis","y2")){var i,s,l,c=e.drawingContext,u=e.canvas.parentNode,d=o.width_,h=o.height_,p=function(e){return{position:"absolute",fontSize:o.getOptionForAxis("axisLabelFontSize",e)+"px",width:o.getOptionForAxis("axisLabelWidth",e)+"px"}},f={x:p("x"),y:p("y"),y2:p("y2")},g=function(e,t,a){var r=document.createElement("div"),o=f["y2"==a?"y2":t];n.update(r.style,o);var i=document.createElement("div");return i.className="dygraph-axis-label dygraph-axis-label-"+t+(a?" dygraph-axis-label-"+a:""),i.innerHTML=e,r.appendChild(i),r};c.save();var m=o.layout_,b=e.dygraph.plotter_.area,v=function(e){return function(t){return o.getOptionForAxis(t,e)}};if(o.getOptionForAxis("drawAxis","y")){if(m.yticks&&m.yticks.length>0){var _=o.numAxes(),y=[v("y"),v("y2")];m.yticks.forEach((function(e){if(void 0!==e.label){s=b.x;var t="y1",a=y[0];1==e.axis&&(s=b.x+b.w,t="y2",a=y[1]);var n=a("axisLabelFontSize");l=b.y+e.pos*b.h,i=g(e.label,"y",2==_?t:null);var o=l-n/2;o<0&&(o=0),o+n+3>h?i.style.bottom="0":i.style.top=o+"px",0===e.axis?(i.style.left=b.x-a("axisLabelWidth")-a("axisTickSize")+"px",i.style.textAlign="right"):1==e.axis&&(i.style.left=b.x+b.w+a("axisTickSize")+"px",i.style.textAlign="left"),i.style.width=a("axisLabelWidth")+"px",u.appendChild(i),r.ylabels_.push(i)}}));var O=this.ylabels_[0],x=o.getOptionForAxis("axisLabelFontSize","y");parseInt(O.style.top,10)+x>h-x&&(O.style.top=parseInt(O.style.top,10)-x/2+"px")}var w;o.getOption("drawAxesAtZero")?(((C=o.toPercentXCoord(0))>1||C<0||isNaN(C))&&(C=0),w=t(b.x+C*b.w)):w=t(b.x),c.strokeStyle=o.getOptionForAxis("axisLineColor","y"),c.lineWidth=o.getOptionForAxis("axisLineWidth","y"),c.beginPath(),c.moveTo(w,a(b.y)),c.lineTo(w,a(b.y+b.h)),c.closePath(),c.stroke(),2==o.numAxes()&&(c.strokeStyle=o.getOptionForAxis("axisLineColor","y2"),c.lineWidth=o.getOptionForAxis("axisLineWidth","y2"),c.beginPath(),c.moveTo(a(b.x+b.w),a(b.y)),c.lineTo(a(b.x+b.w),a(b.y+b.h)),c.closePath(),c.stroke())}if(o.getOptionForAxis("drawAxis","x")){if(m.xticks){var E=v("x");m.xticks.forEach((function(e){if(void 0!==e.label){s=b.x+e.pos*b.w,l=b.y+b.h,(i=g(e.label,"x")).style.textAlign="center",i.style.top=l+E("axisTickSize")+"px";var t=s-E("axisLabelWidth")/2;t+E("axisLabelWidth")>d&&(t=d-E("axisLabelWidth"),i.style.textAlign="right"),t<0&&(t=0,i.style.textAlign="left"),i.style.left=t+"px",i.style.width=E("axisLabelWidth")+"px",u.appendChild(i),r.xlabels_.push(i)}}))}var S,C;c.strokeStyle=o.getOptionForAxis("axisLineColor","x"),c.lineWidth=o.getOptionForAxis("axisLineWidth","x"),c.beginPath(),o.getOption("drawAxesAtZero")?(((C=o.toPercentYCoord(0,0))>1||C<0)&&(C=1),S=a(b.y+C*b.h)):S=a(b.y+b.h),c.moveTo(t(b.x),S),c.lineTo(t(b.x+b.w),S),c.closePath(),c.stroke()}c.restore()}},a.default=r,t.exports=a.default},{"../dygraph-utils":17}],22:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(){this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};n.prototype.toString=function(){return"ChartLabels Plugin"},n.prototype.activate=function(e){return{layout:this.layout,didDrawChart:this.didDrawChart}};var r=function(e){var t=document.createElement("div");return t.style.position="absolute",t.style.left=e.x+"px",t.style.top=e.y+"px",t.style.width=e.w+"px",t.style.height=e.h+"px",t};n.prototype.detachLabels_=function(){for(var e=[this.title_div_,this.xlabel_div_,this.ylabel_div_,this.y2label_div_],t=0;t<e.length;t++){var a=e[t];a&&a.parentNode&&a.parentNode.removeChild(a)}this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};var o=function(e,t,a,n,r){var o=document.createElement("div");o.style.position="absolute",o.style.left=1==a?"0px":t.x+"px",o.style.top=t.y+"px",o.style.width=t.w+"px",o.style.height=t.h+"px",o.style.fontSize=e.getOption("yLabelWidth")-2+"px";var i=document.createElement("div");i.style.position="absolute",i.style.width=t.h+"px",i.style.height=t.w+"px",i.style.top=t.h/2-t.w/2+"px",i.style.left=t.w/2-t.h/2+"px",i.className="dygraph-label-rotate-"+(1==a?"right":"left");var s=document.createElement("div");return s.className=n,s.innerHTML=r,i.appendChild(s),o.appendChild(i),o};n.prototype.layout=function(e){this.detachLabels_();var t=e.dygraph,a=e.chart_div;if(t.getOption("title")){var n=e.reserveSpaceTop(t.getOption("titleHeight"));this.title_div_=r(n),this.title_div_.style.fontSize=t.getOption("titleHeight")-8+"px",(i=document.createElement("div")).className="dygraph-label dygraph-title",i.innerHTML=t.getOption("title"),this.title_div_.appendChild(i),a.appendChild(this.title_div_)}if(t.getOption("xlabel")){var i,s=e.reserveSpaceBottom(t.getOption("xLabelHeight"));this.xlabel_div_=r(s),this.xlabel_div_.style.fontSize=t.getOption("xLabelHeight")-2+"px",(i=document.createElement("div")).className="dygraph-label dygraph-xlabel",i.innerHTML=t.getOption("xlabel"),this.xlabel_div_.appendChild(i),a.appendChild(this.xlabel_div_)}if(t.getOption("ylabel")){var l=e.reserveSpaceLeft(0);this.ylabel_div_=o(t,l,1,"dygraph-label dygraph-ylabel",t.getOption("ylabel")),a.appendChild(this.ylabel_div_)}if(t.getOption("y2label")&&2==t.numAxes()){var c=e.reserveSpaceRight(0);this.y2label_div_=o(t,c,2,"dygraph-label dygraph-y2label",t.getOption("y2label")),a.appendChild(this.y2label_div_)}},n.prototype.didDrawChart=function(e){var t=e.dygraph;this.title_div_&&(this.title_div_.children[0].innerHTML=t.getOption("title")),this.xlabel_div_&&(this.xlabel_div_.children[0].innerHTML=t.getOption("xlabel")),this.ylabel_div_&&(this.ylabel_div_.children[0].children[0].innerHTML=t.getOption("ylabel")),this.y2label_div_&&(this.y2label_div_.children[0].children[0].innerHTML=t.getOption("y2label"))},n.prototype.clearChart=function(){},n.prototype.destroy=function(){this.detachLabels_()},a.default=n,t.exports=a.default},{}],23:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=function(){};n.prototype.toString=function(){return"Gridline Plugin"},n.prototype.activate=function(e){return{willDrawChart:this.willDrawChart}},n.prototype.willDrawChart=function(e){function t(e){return Math.round(e)+.5}function a(e){return Math.round(e)-.5}var n,r,o,i=e.dygraph,s=e.drawingContext,l=i.layout_,c=e.dygraph.plotter_.area;if(i.getOptionForAxis("drawGrid","y")){for(var u=["y","y2"],d=[],h=[],p=[],f=[],g=[],m=0;m<u.length;m++)p[m]=i.getOptionForAxis("drawGrid",u[m]),p[m]&&(d[m]=i.getOptionForAxis("gridLineColor",u[m]),h[m]=i.getOptionForAxis("gridLineWidth",u[m]),g[m]=i.getOptionForAxis("gridLinePattern",u[m]),f[m]=g[m]&&g[m].length>=2);o=l.yticks,s.save(),o.forEach((function(e){if(e.has_tick){var o=e.axis;p[o]&&(s.save(),f[o]&&s.setLineDash&&s.setLineDash(g[o]),s.strokeStyle=d[o],s.lineWidth=h[o],n=t(c.x),r=a(c.y+e.pos*c.h),s.beginPath(),s.moveTo(n,r),s.lineTo(n+c.w,r),s.stroke(),s.restore())}})),s.restore()}i.getOptionForAxis("drawGrid","x")&&(o=l.xticks,s.save(),g=i.getOptionForAxis("gridLinePattern","x"),(f=g&&g.length>=2)&&s.setLineDash&&s.setLineDash(g),s.strokeStyle=i.getOptionForAxis("gridLineColor","x"),s.lineWidth=i.getOptionForAxis("gridLineWidth","x"),o.forEach((function(e){e.has_tick&&(n=t(c.x+e.pos*c.w),r=a(c.y+c.h),s.beginPath(),s.moveTo(n,r),s.lineTo(n,c.y),s.closePath(),s.stroke())})),f&&s.setLineDash&&s.setLineDash([]),s.restore())},n.prototype.destroy=function(){},a.default=n,t.exports=a.default},{}],24:[function(e,t,a){"use strict";function n(e,t,a){if(!e||e.length<=1)return'<div class="dygraph-legend-line" style="border-bottom-color: '+t+';"></div>';var n,r,o,i,s=0,l=0,c=[];for(n=0;n<=e.length;n++)s+=e[n%e.length];if((i=Math.floor(a/(s-e[0])))>1){for(n=0;n<e.length;n++)c[n]=e[n]/a;l=c.length}else{for(i=1,n=0;n<e.length;n++)c[n]=e[n]/s;l=c.length+1}var u="";for(r=0;r<i;r++)for(n=0;n<l;n+=2)o=c[n%c.length],u+='<div class="dygraph-legend-dash" style="margin-right: '+(n<e.length?c[(n+1)%c.length]:0)+"em; padding-left: "+o+'em;"></div>';return u}Object.defineProperty(a,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("../dygraph-utils")),o=function(){this.legend_div_=null,this.is_generated_div_=!1};o.prototype.toString=function(){return"Legend Plugin"},o.prototype.activate=function(e){var t,a=e.getOption("labelsDiv");return a&&null!==a?t="string"==typeof a||a instanceof String?document.getElementById(a):a:((t=document.createElement("div")).className="dygraph-legend",e.graphDiv.appendChild(t),this.is_generated_div_=!0),this.legend_div_=t,this.one_em_width_=10,{select:this.select,deselect:this.deselect,predraw:this.predraw,didDrawChart:this.didDrawChart}};var i=function(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};o.prototype.select=function(e){var t=e.selectedX,a=e.selectedPoints,n=e.selectedRow,r=e.dygraph.getOption("legend");if("never"!==r){if("follow"===r){var i=e.dygraph.plotter_.area,s=this.legend_div_.offsetWidth,l=e.dygraph.getOptionForAxis("axisLabelWidth","y"),c=a[0].x*i.w+50,u=a[0].y*i.h-50;c+s+1>i.w&&(c=c-100-s-(l-i.x)),e.dygraph.graphDiv.appendChild(this.legend_div_),this.legend_div_.style.left=l+c+"px",this.legend_div_.style.top=u+"px"}var d=o.generateLegendHTML(e.dygraph,t,a,this.one_em_width_,n);this.legend_div_.innerHTML=d,this.legend_div_.style.display=""}else this.legend_div_.style.display="none"},o.prototype.deselect=function(e){"always"!==e.dygraph.getOption("legend")&&(this.legend_div_.style.display="none");var t=function(e){var t=document.createElement("span");t.setAttribute("style","margin: 0; padding: 0 0 0 1em; border: 0;"),e.appendChild(t);var a=t.offsetWidth;return e.removeChild(t),a}(this.legend_div_);this.one_em_width_=t;var a=o.generateLegendHTML(e.dygraph,void 0,void 0,t,null);this.legend_div_.innerHTML=a},o.prototype.didDrawChart=function(e){this.deselect(e)},o.prototype.predraw=function(e){if(this.is_generated_div_){e.dygraph.graphDiv.appendChild(this.legend_div_);var t=e.dygraph.getArea(),a=this.legend_div_.offsetWidth;this.legend_div_.style.left=t.x+t.w-a-1+"px",this.legend_div_.style.top=t.y+"px"}},o.prototype.destroy=function(){this.legend_div_=null},o.generateLegendHTML=function(e,t,a,s,l){var c={dygraph:e,x:t,series:[]},u={},d=e.getLabels();if(d)for(var h=1;h<d.length;h++){var p=e.getPropertiesForSeries(d[h]),f={dashHTML:n(e.getOption("strokePattern",d[h]),p.color,s),label:d[h],labelHTML:i(d[h]),isVisible:p.visible,color:p.color};c.series.push(f),u[d[h]]=f}if(void 0!==t){var g=e.optionsViewForAxis_("x"),m=g("valueFormatter");c.xHTML=m.call(e,t,g,d[0],e,l,0);var b=[],v=e.numAxes();for(h=0;h<v;h++)b[h]=e.optionsViewForAxis_("y"+(h?1+h:""));var _=e.getOption("labelsShowZeroValues"),y=e.getHighlightSeries();for(h=0;h<a.length;h++){var O=a[h];if((f=u[O.name]).y=O.yval,0===O.yval&&!_||isNaN(O.canvasy))f.isVisible=!1;else{var x=b[(p=e.getPropertiesForSeries(O.name)).axis-1],w=x("valueFormatter").call(e,O.yval,x,O.name,e,l,d.indexOf(O.name));r.update(f,{yHTML:w}),O.name==y&&(f.isHighlighted=!0)}}}return(e.getOption("legendFormatter")||o.defaultFormatter).call(e,c)},o.defaultFormatter=function(e){var t=e.dygraph;if(!0!==t.getOption("showLabelsOnHighlight"))return"";var a,n=t.getOption("labelsSeparateLines");if(void 0===e.x){if("always"!=t.getOption("legend"))return"";a="";for(var r=0;r<e.series.length;r++)(o=e.series[r]).isVisible&&(""!==a&&(a+=n?"<br/>":" "),a+="<span style='font-weight: bold; color: "+o.color+";'>"+o.dashHTML+" "+o.labelHTML+"</span>");return a}for(a=e.xHTML+":",r=0;r<e.series.length;r++){var o;(o=e.series[r]).isVisible&&(n&&(a+="<br>"),a+="<span"+(o.isHighlighted?' class="highlight"':"")+"> <b><span style='color: "+o.color+";'>"+o.labelHTML+"</span></b>:&#160;"+o.yHTML+"</span>")}return a},a.default=o,t.exports=a.default},{"../dygraph-utils":17}],25:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(a,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(e("../dygraph-utils")),o=n(e("../dygraph-interaction-model")),i=n(e("../iframe-tarp")),s=function(){this.hasTouchInterface_="undefined"!=typeof TouchEvent,this.isMobileDevice_=/mobile|android/gi.test(navigator.appVersion),this.interfaceCreated_=!1};s.prototype.toString=function(){return"RangeSelector Plugin"},s.prototype.activate=function(e){return this.dygraph_=e,this.getOption_("showRangeSelector")&&this.createInterface_(),{layout:this.reserveSpace_,predraw:this.renderStaticLayer_,didDrawChart:this.renderInteractiveLayer_}},s.prototype.destroy=function(){this.bgcanvas_=null,this.fgcanvas_=null,this.leftZoomHandle_=null,this.rightZoomHandle_=null},s.prototype.getOption_=function(e,t){return this.dygraph_.getOption(e,t)},s.prototype.setDefaultOption_=function(e,t){this.dygraph_.attrs_[e]=t},s.prototype.createInterface_=function(){this.createCanvases_(),this.createZoomHandles_(),this.initInteraction_(),this.getOption_("animatedZooms")&&(console.warn("Animated zooms and range selector are not compatible; disabling animatedZooms."),this.dygraph_.updateOptions({animatedZooms:!1},!0)),this.interfaceCreated_=!0,this.addToGraph_()},s.prototype.addToGraph_=function(){var e=this.graphDiv_=this.dygraph_.graphDiv;e.appendChild(this.bgcanvas_),e.appendChild(this.fgcanvas_),e.appendChild(this.leftZoomHandle_),e.appendChild(this.rightZoomHandle_)},s.prototype.removeFromGraph_=function(){var e=this.graphDiv_;e.removeChild(this.bgcanvas_),e.removeChild(this.fgcanvas_),e.removeChild(this.leftZoomHandle_),e.removeChild(this.rightZoomHandle_),this.graphDiv_=null},s.prototype.reserveSpace_=function(e){this.getOption_("showRangeSelector")&&e.reserveSpaceBottom(this.getOption_("rangeSelectorHeight")+4)},s.prototype.renderStaticLayer_=function(){this.updateVisibility_()&&(this.resize_(),this.drawStaticLayer_())},s.prototype.renderInteractiveLayer_=function(){this.updateVisibility_()&&!this.isChangingRange_&&(this.placeZoomHandles_(),this.drawInteractiveLayer_())},s.prototype.updateVisibility_=function(){var e=this.getOption_("showRangeSelector");if(e)this.interfaceCreated_?this.graphDiv_&&this.graphDiv_.parentNode||this.addToGraph_():this.createInterface_();else if(this.graphDiv_){this.removeFromGraph_();var t=this.dygraph_;setTimeout((function(){t.width_=0,t.resize()}),1)}return e},s.prototype.resize_=function(){function e(e,t,a,n){var o=n||r.getContextPixelRatio(t);e.style.top=a.y+"px",e.style.left=a.x+"px",e.width=a.w*o,e.height=a.h*o,e.style.width=a.w+"px",e.style.height=a.h+"px",1!=o&&t.scale(o,o)}var t=this.dygraph_.layout_.getPlotArea(),a=0;this.dygraph_.getOptionForAxis("drawAxis","x")&&(a=this.getOption_("xAxisHeight")||this.getOption_("axisLabelFontSize")+2*this.getOption_("axisTickSize")),this.canvasRect_={x:t.x,y:t.y+t.h+a+4,w:t.w,h:this.getOption_("rangeSelectorHeight")};var n=this.dygraph_.getNumericOption("pixelRatio");e(this.bgcanvas_,this.bgcanvas_ctx_,this.canvasRect_,n),e(this.fgcanvas_,this.fgcanvas_ctx_,this.canvasRect_,n)},s.prototype.createCanvases_=function(){this.bgcanvas_=r.createCanvas(),this.bgcanvas_.className="dygraph-rangesel-bgcanvas",this.bgcanvas_.style.position="absolute",this.bgcanvas_.style.zIndex=9,this.bgcanvas_ctx_=r.getContext(this.bgcanvas_),this.fgcanvas_=r.createCanvas(),this.fgcanvas_.className="dygraph-rangesel-fgcanvas",this.fgcanvas_.style.position="absolute",this.fgcanvas_.style.zIndex=9,this.fgcanvas_.style.cursor="default",this.fgcanvas_ctx_=r.getContext(this.fgcanvas_)},s.prototype.createZoomHandles_=function(){var e=new Image;e.className="dygraph-rangesel-zoomhandle",e.style.position="absolute",e.style.zIndex=10,e.style.visibility="hidden",e.style.cursor="col-resize",e.width=9,e.height=16,e.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQCAYAAADESFVDAAAAAXNSR0IArs4c6QAAAAZiS0dEANAAzwDP4Z7KegAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sHGw0cMqdt1UwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAaElEQVQoz+3SsRFAQBCF4Z9WJM8KCDVwownl6YXsTmCUsyKGkZzcl7zkz3YLkypgAnreFmDEpHkIwVOMfpdi9CEEN2nGpFdwD03yEqDtOgCaun7sqSTDH32I1pQA2Pb9sZecAxc5r3IAb21d6878xsAAAAAASUVORK5CYII=",this.isMobileDevice_&&(e.width*=2,e.height*=2),this.leftZoomHandle_=e,this.rightZoomHandle_=e.cloneNode(!1)},s.prototype.initInteraction_=function(){var e,t,a,n,s,l,c,u,d,h,p,f,g,m,b=this,v=document,_=0,y=null,O=!1,x=!1,w=!this.isMobileDevice_,E=new i.default;e=function(e){var t=b.dygraph_.xAxisExtremes(),a=(t[1]-t[0])/b.canvasRect_.w;return[t[0]+(e.leftHandlePos-b.canvasRect_.x)*a,t[0]+(e.rightHandlePos-b.canvasRect_.x)*a]},t=function(e){return r.cancelEvent(e),O=!0,_=e.clientX,y=e.target?e.target:e.srcElement,"mousedown"!==e.type&&"dragstart"!==e.type||(r.addEvent(v,"mousemove",a),r.addEvent(v,"mouseup",n)),b.fgcanvas_.style.cursor="col-resize",E.cover(),!0},a=function(e){if(!O)return!1;r.cancelEvent(e);var t=e.clientX-_;if(Math.abs(t)<4)return!0;_=e.clientX;var a,n=b.getZoomHandleStatus_();y==b.leftZoomHandle_?(a=n.leftHandlePos+t,a=Math.min(a,n.rightHandlePos-y.width-3),a=Math.max(a,b.canvasRect_.x)):(a=n.rightHandlePos+t,a=Math.min(a,b.canvasRect_.x+b.canvasRect_.w),a=Math.max(a,n.leftHandlePos+y.width+3));var o=y.width/2;return y.style.left=a-o+"px",b.drawInteractiveLayer_(),w&&s(),!0},n=function(e){return!!O&&(O=!1,E.uncover(),r.removeEvent(v,"mousemove",a),r.removeEvent(v,"mouseup",n),b.fgcanvas_.style.cursor="default",w||s(),!0)},s=function(){try{var t=b.getZoomHandleStatus_();if(b.isChangingRange_=!0,t.isZoomed){var a=e(t);b.dygraph_.doZoomXDates_(a[0],a[1])}else b.dygraph_.resetZoom()}finally{b.isChangingRange_=!1}},l=function(e){var t=b.leftZoomHandle_.getBoundingClientRect(),a=t.left+t.width/2,n=(t=b.rightZoomHandle_.getBoundingClientRect()).left+t.width/2;return e.clientX>a&&e.clientX<n},c=function(e){return!(x||!l(e)||!b.getZoomHandleStatus_().isZoomed)&&(r.cancelEvent(e),x=!0,_=e.clientX,"mousedown"===e.type&&(r.addEvent(v,"mousemove",u),r.addEvent(v,"mouseup",d)),!0)},u=function(e){if(!x)return!1;r.cancelEvent(e);var t=e.clientX-_;if(Math.abs(t)<4)return!0;_=e.clientX;var a=b.getZoomHandleStatus_(),n=a.leftHandlePos,o=a.rightHandlePos,i=o-n;n+t<=b.canvasRect_.x?o=(n=b.canvasRect_.x)+i:o+t>=b.canvasRect_.x+b.canvasRect_.w?n=(o=b.canvasRect_.x+b.canvasRect_.w)-i:(n+=t,o+=t);var s=b.leftZoomHandle_.width/2;return b.leftZoomHandle_.style.left=n-s+"px",b.rightZoomHandle_.style.left=o-s+"px",b.drawInteractiveLayer_(),w&&h(),!0},d=function(e){return!!x&&(x=!1,r.removeEvent(v,"mousemove",u),r.removeEvent(v,"mouseup",d),w||h(),!0)},h=function(){try{b.isChangingRange_=!0,b.dygraph_.dateWindow_=e(b.getZoomHandleStatus_()),b.dygraph_.drawGraph_(!1)}finally{b.isChangingRange_=!1}},p=function(e){if(!O&&!x){var t=l(e)?"move":"default";t!=b.fgcanvas_.style.cursor&&(b.fgcanvas_.style.cursor=t)}},f=function(e){"touchstart"==e.type&&1==e.targetTouches.length?t(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?a(e.targetTouches[0])&&r.cancelEvent(e):n(e)},g=function(e){"touchstart"==e.type&&1==e.targetTouches.length?c(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?u(e.targetTouches[0])&&r.cancelEvent(e):d(e)},m=function(e,t){for(var a=["touchstart","touchend","touchmove","touchcancel"],n=0;n<a.length;n++)b.dygraph_.addAndTrackEvent(e,a[n],t)},this.setDefaultOption_("interactionModel",o.default.dragIsPanInteractionModel),this.setDefaultOption_("panEdgeFraction",1e-4);var S=window.opera?"mousedown":"dragstart";this.dygraph_.addAndTrackEvent(this.leftZoomHandle_,S,t),this.dygraph_.addAndTrackEvent(this.rightZoomHandle_,S,t),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousedown",c),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousemove",p),this.hasTouchInterface_&&(m(this.leftZoomHandle_,f),m(this.rightZoomHandle_,f),m(this.fgcanvas_,g))},s.prototype.drawStaticLayer_=function(){var e=this.bgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);try{this.drawMiniPlot_()}catch(e){console.warn(e)}this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorBackgroundLineWidth"),e.strokeStyle=this.getOption_("rangeSelectorBackgroundStrokeColor"),e.beginPath(),e.moveTo(.5,.5),e.lineTo(.5,this.canvasRect_.h-.5),e.lineTo(this.canvasRect_.w-.5,this.canvasRect_.h-.5),e.lineTo(this.canvasRect_.w-.5,.5),e.stroke()},s.prototype.drawMiniPlot_=function(){var e=this.getOption_("rangeSelectorPlotFillColor"),t=this.getOption_("rangeSelectorPlotFillGradientColor"),a=this.getOption_("rangeSelectorPlotStrokeColor");if(e||a){var n=this.getOption_("stepPlot"),r=this.computeCombinedSeriesAndLimits_(),o=r.yMax-r.yMin,i=this.bgcanvas_ctx_,s=this.dygraph_.xAxisExtremes(),l=Math.max(s[1]-s[0],1e-30),c=(this.canvasRect_.w-.5)/l,u=(this.canvasRect_.h-.5)/o,d=this.canvasRect_.w-.5,h=this.canvasRect_.h-.5,p=null,f=null;i.beginPath(),i.moveTo(.5,h);for(var g=0;g<r.data.length;g++){var m=r.data[g],b=null!==m[0]?(m[0]-s[0])*c:NaN,v=null!==m[1]?h-(m[1]-r.yMin)*u:NaN;(n||null===p||Math.round(b)!=Math.round(p))&&(isFinite(b)&&isFinite(v)?(null===p?i.lineTo(b,h):n&&i.lineTo(b,f),i.lineTo(b,v),p=b,f=v):(null!==p&&(n?(i.lineTo(b,f),i.lineTo(b,h)):i.lineTo(p,h)),p=f=null))}if(i.lineTo(d,h),i.closePath(),e){var _=this.bgcanvas_ctx_.createLinearGradient(0,0,0,h);t&&_.addColorStop(0,t),_.addColorStop(1,e),this.bgcanvas_ctx_.fillStyle=_,i.fill()}a&&(this.bgcanvas_ctx_.strokeStyle=a,this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorPlotLineWidth"),i.stroke())}},s.prototype.computeCombinedSeriesAndLimits_=function(){var e,t=this.dygraph_,a=this.getOption_("logscale"),n=t.numColumns(),o=t.getLabels(),i=new Array(n),s=!1,l=t.visibility(),c=[];for(e=1;e<n;e++){var u=this.getOption_("showInRangeSelector",o[e]);c.push(u),null!==u&&(s=!0)}if(s)for(e=1;e<n;e++)i[e]=c[e-1];else for(e=1;e<n;e++)i[e]=l[e-1];var d=[],h=t.dataHandler_,p=t.attributes_;for(e=1;e<t.numColumns();e++)if(i[e]){var f=h.extractSeries(t.rawData_,e,p);t.rollPeriod()>1&&(f=h.rollingAverage(f,t.rollPeriod(),p)),d.push(f)}var g=[];for(e=0;e<d[0].length;e++){for(var m=0,b=0,v=0;v<d.length;v++){var _=d[v][e][1];null===_||isNaN(_)||(b++,m+=_)}g.push([d[0][e][0],m/b])}var y=Number.MAX_VALUE,O=-Number.MAX_VALUE;for(e=0;e<g.length;e++){var x=g[e][1];null!==x&&isFinite(x)&&(!a||x>0)&&(y=Math.min(y,x),O=Math.max(O,x))}if(a)for(O=r.log10(O),O+=.25*O,y=r.log10(y),e=0;e<g.length;e++)g[e][1]=r.log10(g[e][1]);else{var w,E=O-y;O+=w=E<=Number.MIN_VALUE?.25*O:.25*E,y-=w}return{data:g,yMin:y,yMax:O}},s.prototype.placeZoomHandles_=function(){var e=this.dygraph_.xAxisExtremes(),t=this.dygraph_.xAxisRange(),a=e[1]-e[0],n=Math.max(0,(t[0]-e[0])/a),r=Math.max(0,(e[1]-t[1])/a),o=this.canvasRect_.x+this.canvasRect_.w*n,i=this.canvasRect_.x+this.canvasRect_.w*(1-r),s=Math.max(this.canvasRect_.y,this.canvasRect_.y+(this.canvasRect_.h-this.leftZoomHandle_.height)/2),l=this.leftZoomHandle_.width/2;this.leftZoomHandle_.style.left=o-l+"px",this.leftZoomHandle_.style.top=s+"px",this.rightZoomHandle_.style.left=i-l+"px",this.rightZoomHandle_.style.top=this.leftZoomHandle_.style.top,this.leftZoomHandle_.style.visibility="visible",this.rightZoomHandle_.style.visibility="visible"},s.prototype.drawInteractiveLayer_=function(){var e=this.fgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);var t=this.canvasRect_.w-1,a=this.canvasRect_.h-1,n=this.getZoomHandleStatus_();if(e.strokeStyle=this.getOption_("rangeSelectorForegroundStrokeColor"),e.lineWidth=this.getOption_("rangeSelectorForegroundLineWidth"),n.isZoomed){var r=Math.max(1,n.leftHandlePos-this.canvasRect_.x),o=Math.min(t,n.rightHandlePos-this.canvasRect_.x);e.fillStyle="rgba(240, 240, 240, "+this.getOption_("rangeSelectorAlpha").toString()+")",e.fillRect(0,0,r,this.canvasRect_.h),e.fillRect(o,0,this.canvasRect_.w-o,this.canvasRect_.h),e.beginPath(),e.moveTo(1,1),e.lineTo(r,1),e.lineTo(r,a),e.lineTo(o,a),e.lineTo(o,1),e.lineTo(t,1),e.stroke()}else e.beginPath(),e.moveTo(1,1),e.lineTo(1,a),e.lineTo(t,a),e.lineTo(t,1),e.stroke()},s.prototype.getZoomHandleStatus_=function(){var e=this.leftZoomHandle_.width/2,t=parseFloat(this.leftZoomHandle_.style.left)+e,a=parseFloat(this.rightZoomHandle_.style.left)+e;return{leftHandlePos:t,rightHandlePos:a,isZoomed:t-1>this.canvasRect_.x||a+1<this.canvasRect_.x+this.canvasRect_.w}},a.default=s,t.exports=a.default},{"../dygraph-interaction-model":12,"../dygraph-utils":17,"../iframe-tarp":19}]},{},[18])(18)},510:function(e,t,a){},514:function(e,t,a){},515:function(e,t,a){},56:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"c",(function(){return o})),a.d(t,"d",(function(){return i})),a.d(t,"b",(function(){return s}));var n=a(46),r=80,o=function(e,t){var a=" ",n="";return e&&"string"===typeof t.context&&(n=t.context),"string"===typeof t.plugin&&""!==t.plugin?((a=t.plugin).endsWith(".plugin")&&(a=a.substring(0,a.length-7)),"string"===typeof t.module&&""!==t.module&&(a+=":".concat(t.module)),e&&""!==n&&(a+=", ".concat(n))):e&&""!==n&&(a=n),a},i=function(e,t){var a=t.update_every,r=e.view_update_every;return a===r?"resolution ".concat(Object(n.a)(a)):"resolution ".concat(Object(n.a)(r),", collected every ").concat(Object(n.a)(a))},s=function(e){var t,a=e.allDimensions,n=e.selectedDimensions,r=e.clickedDimensionName,o=e.isModifierKeyPressed,i=0===n.length?a:n,s=i.includes(r);return(t=o||!(s&&i.length>1)&&s?s?i.filter((function(e){return e!==r})):i.concat(r):[r]).length===a.length?[]:t}},564:function(e,t){},565:function(e,t,a){},566:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),o=a(30),i=a.n(o),s=a(27),l=a(48),c=a(129),u=a(14),d=a(159),h=a(26),p=a(167),f=a(45),g=a(7),m=a(22),b=a(44),v={isSnapshotMode:!1,snapshotCharts:null,snapshotDataPoints:null,isSignedIn:!1,offline:!1},_=Object(m.createReducer)({},v);_.on(b.e,(function(e,t){var a=t.charts,n=t.dataPoints;return Object(g.a)({},e,{snapshotCharts:a,snapshotDataPoints:n,isSnapshotMode:!0})})),_.on(b.f,(function(e){return Object(g.a)({},e,{isSnapshotMode:v.isSnapshotMode,snapshotCharts:v.snapshotCharts,snapshotDataPoints:v.snapshotDataPoints})})),_.on(b.b,(function(e,t){var a=t.isSignedIn;return Object(g.a)({},e,{isSignedIn:a})})),_.on(b.c,(function(e,t){var a=t.offline;return Object(g.a)({},e,{offline:a})}));var y,O=a(76),x=Object(l.c)((y={},Object(u.a)(y,h.e,d.b),Object(u.a)(y,f.c,p.a),Object(u.a)(y,O.a,_),y)),w=a(21),E=a.n(w),S=a(16),C=a(35),A=a(5),k=a(117),j=a.n(k),T=j.a.create({headers:{"Cache-Control":"no-cache, no-store",Pragma:"no-cache"},withCredentials:!0}),D=a(36),P=a(632),M=a(190),L=a(606),I=a(281),N=a(604),R=a(605),B=a(626),F=a(607),H=j.a.create({headers:{"Cache-Control":"no-cache, no-store",Pragma:"no-cache"},withCredentials:!0}),z=function(e){var t=new P.a,a=new P.a,n=Object(I.a)((function(e){var t=e.url,a=e.method,n=void 0===a?"GET":a,r=e.params,o=void 0===r?{}:r,i=e.data,s=e.onErrorCallback,l=e.onSuccessCallback,c=e.cancelTokenSource;return Object(M.a)(H.request({url:t,method:n,params:o,data:i,timeout:15e3,cancelToken:null===c||void 0===c?void 0:c.token})).pipe(Object(N.a)((function(e){var t=e.data;l(t)})),Object(R.a)((function(e){return"Chart scrolled out of view"!==(null===e||void 0===e?void 0:e.message)&&console.warn("fetch error",t),s(e),Object(L.a)()})))}),e);return a.pipe(Object(B.a)(null),Object(F.a)((function(){return t.pipe(n)}))).subscribe(),[t,a]},U=a(75),G=a(280),W=a(608),V=a(635),Y=function(e,t){return"json"===e.format?function(e,t){var a=e.view_update_every;if(!e.result.data.length)return e;var n=e.result.data[0][0]-t*a,r=Object(G.a)(e.result.labels).map((function(){return null})),o=new Array(t).fill(null).map((function(e,t){return[n+t*a].concat(Object(C.a)(r))}));return Object(g.a)({},e,{after:e.after-a*t,result:Object(g.a)({},e.result,{data:o.concat(e.result.data)})})}(e,t):e},X=[],K=function(e,t,a){if("array"===t&&"json"===e.format){if(Array.isArray(e.result))return e;var n=a?Object(W.a)(e.result.data):e.result.data;return Object(g.a)({},e,{format:"array",result:n.reduce((function(e,t){return t.shift(),[].concat(Object(C.a)(e),[Object(V.a)(t)])}),X)})}return e},Z=a(3),q=a(137),$=a(4),J=$.d.div.withConfig({displayName:"styled__Container",componentId:"qqn9iy-0"})(["width:100%;height:100%;min-height:",";display:flex;flex-flow:row nowrap;padding:"," "," "," ",";"],Object(Z.J)(10),Object(Z.J)(2),Object(Z.J)(2),Object(Z.J)(2),Object(Z.J)(2)),Q=$.d.div.withConfig({displayName:"styled__SideContent",componentId:"qqn9iy-1"})(["flex-grow:0;flex-shrink:0;height:100%;align-self:stretch;"]),ee=$.d.div.withConfig({displayName:"styled__ContentContainer",componentId:"qqn9iy-2"})([""]),te=Object($.d)(Z.B).withConfig({displayName:"styled__HeaderText",componentId:"qqn9iy-3"})(["color:",";font-weight:bold;display:block;margin-bottom:",";"],(function(e){var t=e.error;return e.success&&Object(Z.H)("success")||t&&Object(Z.H)("error")}),Object(Z.J)()),ae=Object($.d)(Z.F).withConfig({displayName:"styled__ContentText",componentId:"qqn9iy-4"})(["display:block;color:",";"],(function(e){return e.error&&Object(Z.H)("error")||Object(Z.H)("border")})),ne=function(e){var t=e.header,a=e.text,n=e.leftContent,o=e.rightContent,i=e.renderContent,s=e.success,l=e.error;return r.a.createElement(J,null,n&&r.a.createElement(Q,null,n),r.a.createElement(ee,null,t&&r.a.createElement(te,{success:s,error:l},t),a&&r.a.createElement(ae,{success:s,error:l},a),i&&i(e)),o&&r.a.createElement(Q,{right:!0},o))},re=function(e){return r.a.createElement(ne,e)},oe=$.d.div.withConfig({displayName:"styled__NodeIconContainer",componentId:"fe9uuu-0"})(["width:",";height:",";margin-right:",";display:flex;justify-content:center;align-items:center;"],Object(Z.J)(5),Object(Z.J)(5),Object(Z.J)(2)),ie=$.d.a.withConfig({displayName:"styled__NotificationLink",componentId:"fe9uuu-1"})(["&,&:hover{text-decoration:underline;color:inherit;}"]),se={position:q.b.POSITION.BOTTOM_RIGHT,autoClose:1e4,pauseOnFocusLoss:!1},le=function(){var e=re(Object(g.a)({},{header:"Installation error",text:"The installer could not prepare the required dependencies to enable Netdata Cloud functionality"},{error:!0,leftContent:r.a.createElement(oe,null,r.a.createElement(Z.o,{name:"gear",size:"large",color:"error"}))}));q.b.error(e,se)},ce=function(){var e={header:"Connection Problem",text:r.a.createElement(ie,{href:"https://learn.netdata.cloud/docs/agent/packaging/installer#automatic-one-line-installation-script",target:"_blank"},"To access Cloud install again your agent via the kickstart script")},t=re(Object(g.a)({},e,{error:!0,leftContent:r.a.createElement(oe,null,r.a.createElement(Z.o,{name:"gear",size:"large",color:"error"}))}));q.b.error(t,se)},ue=a(9),de=a(312),he=a(636),pe=a(227),fe=a(572),ge=a(629),me={hash:"#",theme:null,help:null,mode:"live",update_always:!1,pan_and_zoom:!1,server:null,after:0,before:0,highlight:!1,highlight_after:0,highlight_before:0,nowelcome:!1,show_alarms:!1,chart:null,family:null,alarm:null,alarm_unique_id:0,alarm_id:0,alarm_event_id:0,alarm_when:0},be=function(e){var t=Object(A.a)(e,2),a=t[0],n=t[1];return function(e){var t=Object(A.a)(e,2),a=t[0],n=t[1];return void 0===me[a]||void 0===n}([a,n])?{}:Object(u.a)({},a,decodeURIComponent(n))},ve="print"===Object(de.a)(Object(he.a)(";"),Object(ge.a)((function(e,t){return 0===t?{hash:e}:be(e.split("="))})),pe.a,Object(fe.a)(me))(document.location.hash).mode,_e=a(18),ye=E.a.mark(Ae),Oe=E.a.mark(Me),xe=E.a.mark(He),we=E.a.mark(ze),Ee=E.a.mark(Ue),Se=U.b?30:60,Ce=Object(c.a)();function Ae(){var e,t,a,n,r,o;return E.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=3,Object(S.f)(Ce);case 3:if((e=i.sent).type!==_e.c.success.toString()){i.next=15;break}return t=e.payload,a=t.fetchDataParams.viewRange,n=Object(A.a)(a,2),r=n[0],o=n[1],i.next=10,Object(S.d)(ue.m);case 10:if(!i.sent||!(r<=0||o<=0)){i.next=15;break}return i.next=14,Object(S.c)(Object(_e.d)({id:t.id}));case 14:return i.abrupt("continue",0);case 15:return i.next=17,Object(S.c)(e);case 17:i.next=0;break;case 19:case"end":return i.stop()}}),ye)}var ke=function(e,t){return"".concat(void 0===e?"null":encodeURIComponent(e),",").concat(encodeURIComponent(t))},je=!1,Te=function(e){return"chart"===e?"node":"node"===e||"dimension"===e?e:"label=".concat(e)},De=z(ve?2:Se),Pe=Object(A.a)(De,1)[0];function Me(e){var t,a,n,r,o,i,s,l,c,u,d,h,p,f,m,b,v,_,y,O,x,w,A,k,j,T,P,M,L,I,N,R,B,F,H,z,G,W,V;return E.a.wrap((function(E){for(;;)switch(E.prev=E.next){case 0:return t=e.payload,a=t.host,n=t.context,r=t.chart,o=t.format,i=t.points,s=t.group,l=t.gtime,c=t.options,u=t.after,d=t.before,h=t.dimensions,p=t.labels,f=t.postGroupBy,m=t.postAggregationMethod,b=t.aggrMethod,v=t.dimensionsAggrMethod,_=t.nodeIDs,y=t.httpMethod,O=t.groupBy,x=void 0===O?"dimension":O,w=t.aggrGroups,A=void 0===w?[]:w,k=t.fetchDataParams,j=t.id,T=t.cancelTokenSource,E.next=4,Object(S.d)(ue.D);case 4:if(!(P=E.sent)){E.next=15;break}if(M=ke(h,c),L=Object.keys(P.data).find((function(e){return e.startsWith(r)&&e.includes(M)}))){E.next=11;break}return console.warn("Could not find snapshot key for chart: ".concat(r," and id ").concat(j)),E.abrupt("return");case 11:return I=P.data[L],E.next=14,Object(S.c)(_e.c.success({chartData:I,fetchDataParams:k,id:j}));case 14:return E.abrupt("return");case 15:N=U.b?"".concat(Object(D.a)(a),"api/v1/data"):a,R=c.split("|"),B=R.includes("flip"),H=(F=!je&&!B)?R.concat("flip"):R,z=[Te(x),f&&"label=".concat(f)].filter(Boolean),G="POST"===y?{data:Object(g.a)({filter:{nodeIDs:_,context:n,dimensions:h?h.split(/['|]/):void 0,labels:p},after:u,before:d,points:i,group:s,gtime:l,agent_options:H},m&&{post_aggregation_methods:[m]},{aggregations:["dimension"!==x&&{method:v||"sum",groupBy:["chart"].concat(Object(C.a)(z))},"chart"!==x&&Object(g.a)({method:b,groupBy:z},A.length&&{labels:A})].filter(Boolean)})}:{params:{chart:r,_:(new Date).valueOf(),format:o,points:i,group:s,gtime:l,options:c,after:u,before:d,dimensions:h}},W=function(e){if(null===e||void 0===e?void 0:e.result){var t=k.fillMissingPoints,a=K(e,o,F),n=Object(g.a)({},a,{},"post_aggregated_data"in e.result&&{postAggregationMethod:m,groupBy:x,postGroupBy:f,aggrGroups:A,postAggregated:e.result.post_aggregated_data[m]});Ce.put(_e.c.success({chartData:t?Y(n,t):n,fetchDataParams:k,id:j}))}else Ce.put(_e.c.failure({id:j}))},V=function(e){console.warn("fetch chart data failure",e),Ce.put(_e.c.failure({id:j}))},Pe.next(Object(g.a)({},G,{method:y||"GET",url:N,onErrorCallback:V,onSuccessCallback:W,cancelTokenSource:T}));case 25:case"end":return E.stop()}}),Oe)}var Le=z(1),Ie=Object(A.a)(Le,2),Ne=Ie[0],Re=Ie[1];function Be(e){var t=e.payload,a=t.host,n=t.chart,r=t.format,o=t.points,i=t.group,s=t.gtime,l=t.options,c=t.after,u=t.before,d=t.dimensions,h=t.aggrMethod,p=t.groupBy,f=t.nodeIDs,m=t.chartLibrary,b=t.id,v="".concat(n,",").concat(m,",").concat(ke(d,l)),_="".concat(Object(D.a)(a),"api/v1/data"),y=Object(g.a)({chart:n,_:(new Date).valueOf(),format:r,points:o,group:i,gtime:s,options:l,after:c,before:u,dimensions:d},h&&{aggr_method:h},{},f&&{node_ids:f.join(",")},{},p&&{groupBy:p});Ne.next({url:_,params:y,onErrorCallback:function(){Ce.put(_e.e.failure({id:b})),window.chartUpdated({chartDataUniqueID:v,chart:n,data:null})},onSuccessCallback:function(e){Ce.put(_e.e.success({snapshotData:e,id:b})),window.chartUpdated({chartDataUniqueID:v,data:e})}})}function Fe(){Re.next()}function He(e){var t,a,n,r,o,i,s;return E.a.wrap((function(l){for(;;)switch(l.prev=l.next){case 0:return t=e.payload,a=t.chart,n=t.id,r=t.host,l.next=4,Object(S.d)(ue.D);case 4:if(!(o=l.sent)){l.next=9;break}return l.next=8,Object(S.c)(_e.b.success({chartMetadata:o.charts.charts[a],id:n}));case 8:return l.abrupt("return");case 9:return s=U.b?"".concat(Object(D.a)(r),"api/v1/chart"):r.replace("/data","/chart"),l.prev=10,l.next=13,Object(S.a)(T.get,s,{params:{chart:a}});case 13:i=l.sent,l.next=22;break;case 16:return l.prev=16,l.t0=l.catch(10),console.warn("fetch chart details failure"),l.next=21,Object(S.c)(_e.b.failure({id:n}));case 21:return l.abrupt("return");case 22:return l.next=24,Object(S.c)(_e.b.success({chartMetadata:i.data,id:n}));case 24:case"end":return l.stop()}}),xe,null,[[10,16]])}function ze(e){var t,a,n,r,o,i,s,l,c,u,d;return E.a.wrap((function(p){for(;;)switch(p.prev=p.next){case 0:return t=e.payload,a=t.poll,n=!1,r=!1,o=!1,i=!1,p.prev=6,p.next=9,Object(S.d)(ue.x);case 9:return s=p.sent,l=null===s||void 0===s?void 0:s.isCloudAvailable,c=null===s||void 0===s?void 0:s.isACLKAvailable,p.next=14,Object(S.a)(T.get,"".concat(D.b,"/api/v1/info"));case 14:return u=p.sent,d=u.data,o=(null===d||void 0===d?void 0:d["cloud-available"])||!1,n=(null===d||void 0===d?void 0:d["cloud-enabled"])||!1,r=(null===d||void 0===d?void 0:d["agent-claimed"])||!1,i=(null===d||void 0===d?void 0:d["aclk-available"])||!1,p.next=22,Object(S.c)(_e.f.success({isCloudAvailable:o,isCloudEnabled:n,isAgentClaimed:r,isACLKAvailable:i,fullInfoPayload:d}));case 22:n&&null===l&&!o&&le(),o&&r&&!1!==c&&!i&&ce(),p.next=31;break;case 26:return p.prev=26,p.t0=p.catch(6),console.warn("fetch agent info failure"),p.next=31,Object(S.c)(_e.f.failure());case 31:if(!(a&&n&&r)){p.next=36;break}return p.next=34,Object(S.b)(h.b);case 34:return p.next=36,Object(S.c)(Object(_e.f)({poll:!0}));case 36:case"end":return p.stop()}}),we,null,[[6,26]])}function Ue(){return E.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(S.g)(_e.c.request,Me);case 2:return e.next=4,Object(S.g)(_e.b.request,He);case 4:return e.next=6,Object(S.g)(_e.e.request,Be);case 6:return e.next=8,Object(S.g)(b.f,Fe);case 8:return e.next=10,Object(S.g)(_e.f.request,ze);case 10:return e.next=12,Object(S.e)(Ae);case 12:case"end":return e.stop()}}),Ee)}var Ge=a(308),We=a(630),Ve=a(28),Ye=a(83),Xe=.2,Ke=a(12),Ze=a(609),qe=a(49),$e=a(228),Je=a(145),Qe=E.a.mark(mt),et=E.a.mark(vt),tt=E.a.mark(_t),at=E.a.mark(yt),nt=E.a.mark(Ot),rt=E.a.mark(xt),ot=E.a.mark(wt),it=1e3,st=1e4,lt=500,ct="Notification"in window,ut=window.netdataAlarmsNotifCallback,dt=0,ht=0,pt=function(e){"object"===typeof e&&(function(e){if("string"===typeof e){var t=document.querySelector("#chart_".concat(Object(Je.a)(e)));if(t){var a=t.offsetTop+-50;return document.querySelector("html").scrollTop=a,!0}}return!1}(e.chart)&&window.focus())},ft=function(){ct&&"default"===Notification.permission&&Notification.requestPermission()},gt=function(){return ct&&"granted"===Notification.permission};function mt(e,t){var a,n;return E.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,Object(S.a)(T.get,"".concat(t,"/api/v1/alarm_log?after=").concat(e));case 3:return a=r.sent,n=a.data,r.abrupt("return",n);case 8:return r.prev=8,r.t0=r.catch(0),console.warn("Error fetching alarms log",r.t0),r.abrupt("return",null);case 12:case"end":return r.stop()}}),Qe,null,[[0,8]])}var bt=function(e,t,a){if(!e.updated){var n=e.value_string,r=t.alarms["".concat(e.chart,".").concat(e.name)];"undefined"!==typeof r&&e.status===r.status&&"undefined"!==typeof r.value_string&&(n=r.value_string);var o=e.name.replace(/_/g," "),i=e.status.toLowerCase(),s="".concat(o," = ").concat(n),l=e.alarm_id,c="images/banner-icon-144x144.png",u=!1,d=!0;switch(e.status){case"REMOVED":d=!1;break;case"UNDEFINED":case"UNINITIALIZED":return;case"CLEAR":if(e.unique_id<a)return;if("UNINITIALIZED"===e.old_status||"UNDEFINED"===e.old_status)return;if(e.no_clear_notification)return;s="".concat(o," back to normal (").concat(n,")"),c="images/check-mark-2-128-green.png",u=!1;break;case"WARNING":"CRITICAL"===e.old_status&&(i="demoted to ".concat(e.status.toLowerCase())),c="images/alert-128-orange.png",u=!1;break;case"CRITICAL":"WARNING"===e.old_status&&(i="escalated to ".concat(e.status.toLowerCase())),c="images/alert-128-red.png",u=!0;break;default:return void console.warn("invalid alarm status ".concat(e.status))}return d&&("function"===typeof ut&&(d=ut(e)),d)?{notificationTitle:s,notificationOptions:{body:"".concat(e.hostname," - ").concat(e.chart," (").concat(e.family,") - ").concat(i,": ").concat(e.info),tag:"".concat(l),requireInteraction:u,icon:D.c+c,data:e},notificationHandler:function(e){if(e.preventDefault(),e.target){var t=e.target.data;pt(t)}}}:void 0}};function vt(e,t){var a,n,r,o,i,s,l,c,u;return E.a.wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return d.next=2,Object(S.a)(mt,ht,e);case 2:if(null!==(a=d.sent)&&"object"===typeof a){d.next=6;break}return console.warn("invalid alarms log response"),d.abrupt("return");case 6:if(0!==a.length){d.next=9;break}return console.log("received empty alarm log"),d.abrupt("return");case 9:n=Object(Ze.a)(Object(qe.a)("unique_id"),a),r=n.filter((function(e){return e.unique_id>ht})),o=r.map((function(e){return bt(e,t,dt)})).filter((function(e){return void 0!==e})),i=0;case 13:if(!(i<o.length)){d.next=22;break}return s=o[i],l=s.notificationTitle,c=s.notificationOptions,u=s.notificationHandler,new Notification(l,c).onclick=u,d.next=19,Object(S.b)(lt);case 19:i+=1,d.next=13;break;case 22:ht=Object($e.a)(n).unique_id,("undefined"===typeof window.netdataAlarmsRemember||window.netdataAlarmsRemember)&&localStorage.setItem("last_notification_id","".concat(ht));case 24:case"end":return d.stop()}}),et)}function _t(e,t){var a,n;return E.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,Object(S.a)(T.get,"".concat(t,"/api/v1/alarms?").concat(e));case 2:return a=r.sent,n=a.data,0===dt&&"number"===typeof n.latest_alarm_log_unique_id&&(dt=n.latest_alarm_log_unique_id),r.abrupt("return",n);case 6:case"end":return r.stop()}}),tt)}function yt(e){var t;return E.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=3,Object(S.a)(_t,"active",e);case 3:if(!(t=a.sent)){a.next=12;break}return a.next=7,Object(S.c)(Object(Ke.B)({activeAlarms:t}));case 7:if(!(gt()&&t.latest_alarm_log_unique_id>ht)){a.next=12;break}return a.next=10,Object(S.a)(vt,e,t);case 10:if(!1!==t.status){a.next=12;break}return a.abrupt("break",16);case 12:return a.next=14,Object(S.b)(st);case 14:a.next=0;break;case 16:case"end":return a.stop()}}),at)}function Ot(){var e,t,a;return E.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(S.f)(Ke.A);case 2:return e=n.sent,t=e.payload,a=t.serverDefault,n.next=7,Object(S.b)(it);case 7:return ht=+(localStorage.getItem("last_notification_id")||ht),ft(),n.next=11,Object(S.a)(yt,a);case 11:case"end":return n.stop()}}),nt)}function xt(e){var t,a,n,r;return E.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return t=e.payload,a=t.callback,n=t.serverDefault,o.next=4,Object(S.a)(_t,"all",n);case 4:r=o.sent,a(r);case 6:case"end":return o.stop()}}),rt)}function wt(){return E.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(S.e)(Ot);case 2:return e.next=4,Object(S.g)(Ke.e.request,xt);case 4:case"end":return e.stop()}}),ot)}var Et=["","https://www.google.com/","https://duckduckgo.com/","https://www.reddit.com/"],St=function(e){return Et.includes(e)||e.endsWith(".my-netdata.io/")||e.startsWith("https://github.com/")||e.endsWith("netdata.cloud/")||e.startsWith("https://app.netdata.cloud/")},Ct=E.a.mark(Lt),At=E.a.mark(It),kt=E.a.mark(Nt),jt=E.a.mark(Ft),Tt=E.a.mark(Ut),Dt=E.a.mark(Gt),Pt=Object(c.a)();function Mt(){window.addEventListener("focus",(function(){Pt.put(Object(Ke.D)({hasWindowFocus:!0}))})),window.addEventListener("blur",(function(){Pt.put(Object(Ke.D)({hasWindowFocus:!1}))}))}function Lt(){var e;return E.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=3,Object(S.f)(Pt);case 3:return e=t.sent,t.next=6,Object(S.c)(e);case 6:t.next=0;break;case 8:case"end":return t.stop()}}),Ct)}function It(){return E.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(S.f)(_e.f.success);case 2:return e.abrupt("return",e.sent.payload.fullInfoPayload);case 3:case"end":return e.stop()}}),At)}function Nt(e,t){var a,n,r,o,i,s;return E.a.wrap((function(l){for(;;)switch(l.prev=l.next){case 0:if(!window.posthog){l.next=2;break}return l.abrupt("return");case 2:return l.next=4,Object(S.d)(ue.k);case 4:if(l.t1=l.sent,l.t1){l.next=9;break}return l.next=8,Object(S.a)(It);case 8:l.t1=l.sent;case 9:if(l.t0=l.t1,l.t0){l.next=12;break}l.t0={};case 12:i=l.t0,function(e,t){var a,n,r,o;t.__SV||(window.posthog=t,t._i=[],t.init=function(i,s,l){function c(e,t){var a=t.split(".");2==a.length&&(e=e[a[0]],t=a[1]),e[t]=function(){e.push([t].concat(Array.prototype.slice.call(arguments,0)))}}(r=e.createElement("script")).type="text/javascript",r.async=!0,r.src=s.api_host+"/static/array.js",(o=e.getElementsByTagName("script")[0]).parentNode.insertBefore(r,o);var u=t;for(void 0!==l?u=t[l]=[]:l="posthog",u.people=u.people||[],u.toString=function(e){var t="posthog";return"posthog"!==l&&(t+="."+l),e||(t+=" (stub)"),t},u.people.toString=function(){return u.toString(1)+".people (stub)"},a="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags".split(" "),n=0;n<a.length;n++)c(u,a[n]);t._i.push([i,s,l])},t.__SV=1)}(document,window.posthog||[]),window.posthog.init("mqkwGT0JNFqO-zX2t0mW6Tec9yooaVu7xCBlXtHnt5Y",{api_host:"https://app.posthog.com",loaded:function(e){t&&e.identify(t)}}),s=!Ye.a&&!St(document.referrer),"masked",window.posthog.register(Object(Ge.a)((function(e){return void 0!==e&&null!==e}),{$ip:"127.0.0.1",$current_url:Ye.a?null:"agent dashboard",$pathname:Ye.a?null:"netdata-dashboard",$host:Ye.a?null:"dashboard.netdata.io",$initial_referring_domain:s?"masked":null,$initial_referrer:s?"masked":null,$referring_domain:s?"masked":null,$referrer:s?"masked":null,event_source:"agent dashboard",netdata_version:i.version,netdata_machine_guid:e,netdata_person_id:t||"Unavailable",netdata_buildinfo:i.buildinfo,netdata_release_channel:i["release-channel"],mirrored_host_count:null===(a=i.mirrored_hosts)||void 0===a?void 0:a.length,alarms_normal:null===(n=i.alarms)||void 0===n?void 0:n.normal,alarms_warning:null===(r=i.alarms)||void 0===r?void 0:r.warning,alarms_critical:i.alarms.critical,host_os_name:i.os_name,host_os_id:i.os_id,host_os_id_like:i.os_id_like,host_os_version:i.os_version,host_os_version_id:i.os_version_id,host_os_detection:i.os_detection,system_cores_total:i.cores_total,system_total_disk_space:i.total_disk_space,system_cpu_freq:i.cpu_freq,system_ram_total:i.ram_total,system_kernel_name:i.kernel_name,system_kernel_version:i.kernel_version,system_architecture:i.architecture,system_virtualization:i.virtualization,system_virt_detection:i.virt_detection,system_container:i.container,system_container_detection:i.container_detection,container_os_name:i.container_os_name,container_os_id:i.container_os_id,container_os_id_like:i.container_os_id_like,container_os_version:i.container_os_version,container_os_version_id:i.container_os_version_id,host_collectors_count:i.collectors.length,host_cloud_enabled:i["cloud-enabled"],host_cloud_available:i["cloud-available"],host_agent_claimed:i["agent-claimed"],host_aclk_available:i["aclk-available"],host_aclk_implementation:i["aclk-implementation"],host_allmetrics_json_used:i["allmetrics-json-used"],host_allmetrics_prometheus_used:i["allmetrics-prometheus-used"],host_allmetrics_shell_used:i["allmetrics-shell-used"],host_charts_count:i["charts-count"],host_dashboard_used:i["dashboard-used"],host_metrics_count:i["metrics-count"],host_notification_methods:i["notification-methods"],config_memory_mode:i["memory-mode"],config_exporting_enabled:i["exporting-enabled"],config_exporting_connectors:i["exporting-connectors"],config_hosts_available:i["hosts-available"],config_https_enabled:i["https-enabled"],config_multidb_disk_quota:i["multidb-disk-quota"],config_page_cache_size:i["page-cache-size"],config_stream_enabled:i["stream-enabled"],config_web_enabled:i["web-enabled"],host_is_parent:null===(o=i.host_labels)||void 0===o?void 0:o._is_parent,mirrored_hosts_reachable:i.mirrored_hosts_status.filter((function(e){return e.reachable})).length,mirrored_hosts_unreachable:i.mirrored_hosts_status.filter((function(e){return!e.reachable})).length,host_collectors:i.collectors,host_is_k8s_node:i.is_k8s_node}));case 18:case"end":return l.stop()}}),kt)}var Rt=function e(t){var a=t.machineGuid,n=t.maxRedirects,r=t.name,o=t.registryServer,i=t.url;return T.get("".concat(o,"/api/v1/registry"),{headers:{"Cache-Control":"no-cache, no-store",Pragma:"no-cache"},params:{action:"access",machine:a,name:r,url:i},withCredentials:!0}).then((function(t){var s=t.data,l="string"===typeof s.registry,c=s;if("string"===typeof s.status&&"ok"===s.status||(c=null),null===c)return l&&n>0?e({maxRedirects:n-1,machineGuid:a,name:r,registryServer:s.registry,url:i}):{registryServer:o};var u=s.urls.filter((function(e){return e[1]!==h.c}));return{personGuid:s.person_guid||null,registryServer:o,urls:u}})).catch((function(){return console.warn("error calling registry:",o),null}))},Bt=function(e){var t={};e.slice().reverse().forEach((function(e){var a=Object(A.a)(e,5),n=a[0],r=a[1],o=a[2],i=a[3],s=a[4],l=t[n]||{lastTimestamp:0,accesses:0,alternateUrls:[],guid:"",url:"",name:""},c=l.lastTimestamp<o,u={guid:l.guid||n,url:c?r:l.url,lastTimestamp:c?o:l.lastTimestamp,accesses:l.accesses+i,name:c?s:l.name,alternateUrls:l.alternateUrls.concat(r)};t[n]=u}));var a=Object(We.a)(e.slice().reverse().map((function(e){return Object(A.a)(e,1)[0]}))).map((function(e){return t[e]}));return{registryMachines:t,registryMachinesArray:a}};function Ft(e){var t,a,n,r,o,i,s,l,c,u,d,h,p,f,g;return E.a.wrap((function(m){for(;;)switch(m.prev=m.next){case 0:return t=e.payload,a=t.serverDefault,n="".concat(a,"api/v1/registry?action=hello"),m.prev=3,m.next=6,Object(S.a)(T.get,n,{headers:{"Cache-Control":"no-cache, no-store",Pragma:"no-cache"},withCredentials:!0});case 6:r=m.sent,m.next=15;break;case 9:return m.prev=9,m.t0=m.catch(3),console.warn("error accessing registry or Do-Not-Track is enabled"),m.next=14,Object(S.c)(Ke.f.failure());case 14:return m.abrupt("return");case 15:return o=r.data.cloud_base_url,i=r.data.hostname,s=r.data.machine_guid,l=r.data.registry,c=l===Ve.b,m.next=22,Object(S.c)(Ke.f.success({cloudBaseURL:o,hostname:i,isUsingGlobalRegistry:c,machineGuid:s}));case 22:return u=i,d=a,m.next=26,Object(S.a)(Rt,{machineGuid:s,maxRedirects:2,name:u,registryServer:l,url:d});case 26:if(h=m.sent,!r.data.anonymous_statistics){m.next=30;break}return m.next=30,Object(S.e)(Nt,r.data.machine_guid,null===h||void 0===h?void 0:h.personGuid);case 30:if(!((null===h||void 0===h?void 0:h.urls)&&(null===h||void 0===h?void 0:h.personGuid))){m.next=35;break}return p=Bt(h.urls),f=p.registryMachines,g=p.registryMachinesArray,m.next=35,Object(S.c)(Object(Ke.C)({personGuid:h.personGuid,registryMachines:f,registryMachinesArray:g}));case 35:return m.next=37,Object(S.c)(Object(Ke.a)({registryServer:(null===h||void 0===h?void 0:h.registryServer)||l}));case 37:case"end":return m.stop()}}),jt,null,[[3,9]])}var Ht=function(e){return"options.".concat(e)};function zt(e){var t=e.payload,a=t.key,n=t.value;"stop_updates_when_focus_is_lost"!==a&&localStorage.setItem(Ht(a),JSON.stringify(n))}function Ut(e){var t;return E.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return(t=e.payload).isActive?document.body.className="with-panel":document.body.className="",a.next=4,Object(S.b)(1e3*Xe);case 4:return a.next=6,Object(S.c)(Object(Ke.x)({isActive:t.isActive}));case 6:case"end":return a.stop()}}),Tt)}function Gt(){return E.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(S.e)(Mt);case 2:return e.next=4,Object(S.e)(Lt);case 4:return e.next=6,Object(S.g)(Ke.f.request,Ft);case 6:return e.next=8,Object(S.e)(wt);case 8:return e.next=10,Object(S.g)(Ke.v,zt);case 10:return e.next=12,Object(S.g)(Ke.w,Ut);case 12:case"end":return e.stop()}}),Dt)}var Wt=a(64),Vt=E.a.mark(qt),Yt=E.a.mark($t),Xt="LOCAL-STORAGE-NEEDS-SYNC";function Kt(e){var t=e.payload,a=t.after,n=t.before;if(window.urlOptions)window.urlOptions.after===a&&window.urlOptions.before===n||window.urlOptions.netdataHighlightCallback(!0,a,n);else{var r=Object(Wt.b)(),o=Math.round(a).toString(),i=Math.round(n).toString();r.highlight_after===o&&r.highlight_before===i||Object(Wt.d)({highlight_after:o,highlight_before:i})}}function Zt(){window.urlOptions?window.urlOptions.netdataHighlightCallback(!1,0,0):Object(Wt.c)(["highlight_after","highlight_before"])}function qt(e){var t,a;return E.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=e.payload,!window.showSignInModal){n.next=8;break}return window.showSignInModal(),n.next=5,Object(S.f)(b.a);case 5:a=t.signInLinkHref,window.localStorage.setItem(Xt,"true"),window.location.href=a;case 8:case"end":return n.stop()}}),Vt)}function $t(){return E.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(S.g)(Ke.r,Kt);case 2:return e.next=4,Object(S.g)(Ke.d,Zt);case 4:return e.next=6,Object(S.g)(b.d,qt);case 6:case"end":return e.stop()}}),Yt)}var Jt=E.a.mark(Qt);function Qt(){return E.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(S.e)(Gt);case 2:return e.next=4,Object(S.e)(Ue);case 4:return e.next=6,Object(S.e)($t);case 6:case"end":return e.stop()}}),Jt)}var ea=Object(c.b)(),ta=function(){var e=Object(l.e)(x,Object(l.d)(Object(l.a)(ea)));return ea.run(Qt),e}(),aa=a(294),na=a.n(aa),ra=(a(448),a(467),a(468),a(469),a(470),a(156)),oa=a.n(ra);window.$=oa.a,window.jQuery=oa.a;a(471),a(484),a(485),a(486),a(487),a(490);var ia=function(e){return new Promise((function(t,a){var n=document.createElement("link");n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("href",e),n.onload=function(){t()},n.onerror=function(){a(Error("Error loading css: ".concat(e)))},document.getElementsByTagName("head")[0].appendChild(n)}))},sa=a(42),la=a(8),ca=a(177),ua=a(311),da=a(612),ha=a(309),pa=a(620),fa=a(637),ga=a(297),ma=a(638),ba=a(34),va=a.n(ba),_a=function(e){return"sparkline"===e.dygraphTheme},ya={dygraph:{hasToolboxPanAndZoom:!0,xssRegexIgnore:new RegExp("^/api/v1/data.result.data$"),format:"json",options:function(e){return"function"===typeof this.isLogScale?"ms|flip".concat(this.isLogScale(e)?"|abs":""):""},hasLegend:function(e){var t=e.legend,a=void 0===t||t;return!_a(e)&&Boolean(a)},trackColors:!0,pixelsPerPoint:function(e){return _a(e)?2:3},isLogScale:function(e){return"logscale"===e.dygraphTheme},containerClass:function(e){return this.hasLegend(e)?va()("netdata-container-with-legend","bottom"===e.legendPosition&&"netdata-container-with-legend--bottom"):"netdata-container"}},sparkline:{hasToolboxPanAndZoom:!1,xssRegexIgnore:new RegExp("^/api/v1/data.result$"),format:"array",options:function(){return"flip|abs"},hasLegend:function(){return!1},trackColors:!1,pixelsPerPoint:function(){return 3},containerClass:function(){return"netdata-container"}},peity:{hasToolboxPanAndZoom:!1,xssRegexIgnore:new RegExp("^/api/v1/data.result$"),format:"ssvcomma",options:function(){return"null2zero|flip|abs"},hasLegend:function(){return!1},trackColors:!1,pixelsPerPoint:function(){return 3},containerClass:function(){return"netdata-container"}},google:{hasToolboxPanAndZoom:!1,xssRegexIgnore:new RegExp("^/api/v1/data.result.rows$"),format:"datatable",options:function(){return""},hasLegend:function(){return!1},trackColors:!1,pixelsPerPoint:function(){return 4},containerClass:function(){return"netdata-container"}},d3pie:{hasToolboxPanAndZoom:!1,xssRegexIgnore:new RegExp("^/api/v1/data.result.data$"),format:"json",hasLegend:function(){return!1},options:function(){return"objectrows|ms"},trackColors:!1,pixelsPerPoint:function(){return 15},containerClass:function(){return"netdata-container"}},easypiechart:{hasToolboxPanAndZoom:!1,xssRegexIgnore:new RegExp("^/api/v1/data.result$"),format:"array",options:function(){return"absolute"},hasLegend:function(){return!1},trackColors:!0,pixelsPerPoint:function(){return 3},aspectRatio:100,containerClass:function(){return"netdata-container-easypiechart"}},gauge:{hasToolboxPanAndZoom:!1,xssRegexIgnore:new RegExp("^/api/v1/data.result$"),format:"array",options:function(){return"absolute"},hasLegend:function(){return!1},trackColors:!0,pixelsPerPoint:function(){return 3},aspectRatio:60,containerClass:function(){return"netdata-container-gauge"}},textonly:{containerClass:function(){return"netdata-container"},format:"array",hasLegend:function(){return!1},options:function(){return"absolute"},pixelsPerPoint:function(){return 3},trackColors:!1,xssRegexIgnore:new RegExp("^/api/v1/data.result$")},groupbox:{containerClass:function(){return"netdata-container"},hasLegend:function(){return!1},options:function(){return"absolute"},format:"json",trackColors:!1,pixelsPerPoint:function(){return 3},xssRegexIgnore:new RegExp("^/api/v1/data.result$")}},Oa=function(e,t){var a=e.appendOptions,n=e.overrideOptions,r="";return r+=n?n.toString():ya[e.chartLibrary].options(e),"string"===typeof a&&(r+="|".concat(encodeURIComponent(a))),r+="|jsonwrap",t&&(r+="|nonzero"),("sum-of-abs"===e.dimensionsAggrMethod||!e.dimensionsAggrMethod&&e.groupBy&&"dimension"!==e.groupBy)&&(r+="|absolute"),r},xa=a(610),wa=Math.pow(2,31)-1,Ea=a(39),Sa=a(165),Ca=function(e){var t=e.containerNode,a=e.hasEmptyData,n=window.screen.height,o=t.clientHeight,i=Math.max(.2*o,5);o-=i;var s=(i-5)/2,l=t.clientWidth/10;o>l&&(s+=(o-l)/2,o=l),o>n/20&&(s+=(o-n/20)/2,o=n/20);var c=a?" empty":" netdata",u=a?"noData":"loading";return r.a.createElement("div",{className:"netdata-message icon",style:{fontSize:o,paddingTop:s}},r.a.createElement(Sa.a,{iconType:u}),c)},Aa=a(618),ka=a(617),ja=function(e){return e.ctrlKey?window.NETDATA.options.current.pan_and_zoom_factor*window.NETDATA.options.current.pan_and_zoom_factor_multiplier_control:e.shiftKey?window.NETDATA.options.current.pan_and_zoom_factor*window.NETDATA.options.current.pan_and_zoom_factor_multiplier_shift:e.altKey?window.NETDATA.options.current.pan_and_zoom_factor*window.NETDATA.options.current.pan_and_zoom_factor_multiplier_alt:window.NETDATA.options.current.pan_and_zoom_factor},Ta=a(149),Da=a(102),Pa=function(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)},Ma=[],La=[],Ia=function(e,t){var a=t;return e===t?("undefined"===typeof Ma[a]&&(Ma[a]=new Intl.NumberFormat(void 0,{useGrouping:!0,minimumFractionDigits:e,maximumFractionDigits:t})),Ma[a]):0===e?("undefined"===typeof La[a]&&(La[a]=new Intl.NumberFormat(void 0,{useGrouping:!0,minimumFractionDigits:e,maximumFractionDigits:t})),La[a]):new Intl.NumberFormat(void 0,{useGrouping:!0,minimumFractionDigits:e,maximumFractionDigits:t})},Na=function(e,t,a){return function(n){if("number"!==typeof n)return"-";var r,o,i=e(n);if("number"!==typeof i)return i;if(null!==t)return t.format(i);if(-1!==a)r=a,o=a;else{r=0;var s=i<0?-i:i;o=s>1e3?0:s>10?1:s>1?2:s>.1?2:s>.01?4:s>.001?5:s>1e-4?6:7}return Ia(r,o).format(i)}},Ra=function(e){var t=e.attributes,a=e.data,r=e.units,o=e.unitsCommon,i=e.unitsDesired,s=e.uuid,l=Object(la.b)(ue.J),c=Object(la.b)(ue.y),u=Object(n.useState)((function(){return Ta.a})),d=Object(A.a)(u,2),h=d[0],p=d[1],f=Object(n.useState)(),g=Object(A.a)(f,2),m=g[0],b=g[1],v=Object(n.useState)(),_=Object(A.a)(v,2),y=_[0],O=_[1],x=Object(n.useState)(r),w=Object(A.a)(x,2),E=w[0],S=w[1],C=Object(n.useState)(-1),k=Object(A.a)(C,2),j=k[0],T=k[1],D=Object(n.useState)(null),P=Object(A.a)(D,2),M=P[0],L=P[1],I=t.decimalDigits,N=void 0===I?-1:I,R=Object(n.useMemo)((function(){return Na(h,M,N)}),[h,N,M]),B=Object(n.useRef)(R),F=function(e,t,a){B.current=Na(e,t,a)};return{legendFormatValue:R,legendFormatValueDecimalsFromMinMax:Object(n.useCallback)((function(e,t){if(Pa(m,e)&&Pa(y,t))return B.current;b(e),O(t);var n=Da.a.get(s,e,t,r,i,o,(function(e){S(e)}),l,c);p((function(){return n}));var u,d=n(e),h=n(t);if("number"!==typeof d||"number"!==typeof h)return F(n,M,N),B.current;if(a.min===a.max)u=-1;else if(-1!==N)u=N;else{var f;u=(f=d===h?Math.abs(d):Math.abs(h-d))>1e3?0:f>10?1:f>1?2:f>.1?2:f>.01?4:f>.001?5:f>1e-4?6:7}var g=M;return u!==j&&(g=u<0?null:Ia(u,u),L((function(){return g})),T(u)),F(n,g,u),B.current}),[j,N,m,y,s,l,r,i,o,c,a.min,a.max,M]),unitsCurrent:E}},Ba=a(56),Fa={r:255,g:0,b:0},Ha=a(17),za=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__LegendContainer",componentId:"ltgk2z-0"})(["margin-bottom:",";padding-left:35px;"],Object(Z.J)(3)),Ua=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__LegendFirstRow",componentId:"ltgk2z-1"})(["margin-top:4px;display:flex;justify-content:space-between;"]),Ga=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__LegendSecondRow",componentId:"ltgk2z-2"})(["margin-top:4px;display:flex;justify-content:space-between;"]),Wa=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__LegendUnit",componentId:"ltgk2z-3"})([""]),Va=$.d.span.withConfig({displayName:"chart-legend-bottomstyled__DateTimeSeparator",componentId:"ltgk2z-4"})(["margin:0 3px;"]),Ya=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__LegendItems",componentId:"ltgk2z-5"})(["display:flex;flex-wrap:wrap;overflow:auto;max-height:80px;"]),Xa=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__DimensionItem",componentId:"ltgk2z-6"})(["display:flex;align-items:center;color:",";margin-right:12px;cursor:pointer;opacity:",";user-select:none;font-size:11px;&:focus{outline:none;}"],(function(e){return e.color}),(function(e){return e.isDisabled?.3:null})),Ka=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__DimensionItemToolboxPlaceholder",componentId:"ltgk2z-7"})(["width:140px;height:20px;"]),Za=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__DimensionIcon",componentId:"ltgk2z-8"})(["width:14px;height:7px;border-radius:4px;overflow:hidden;background-color:",";"],(function(e){return e.color})),qa=$.d.span.withConfig({displayName:"chart-legend-bottomstyled__DimensionLabel",componentId:"ltgk2z-9"})(["margin-left:3px;"]),$a=$.d.span.withConfig({displayName:"chart-legend-bottomstyled__DimensionValue",componentId:"ltgk2z-10"})(["margin-left:5px;min-width:30px;"]),Ja=$.d.div.withConfig({displayName:"chart-legend-bottomstyled__ToolboxContainer",componentId:"ltgk2z-11"})(["position:relative;touch-action:none;"]),Qa={},en=Object(Ha.a)(Ea.f,(function(e){var t=e.dimension_names,a=e.keys;return{dimensionNames:t,keys:void 0===a?Qa:a}})),tn=function(e){var t=e.id,a=e.index,o=Object(la.b)(Object(n.useCallback)((function(e){return en(e,{id:t})}),[t])),i=o.dimensionNames,s=o.keys,l=s.chart,c=s.node;if(l&&c&&2===Object.keys(s).length)return r.a.createElement(qa,null,l[a],"@",c[a]);var u=i[a];return r.a.createElement(qa,null,u)},an=function(e){var t=e.chartUuid,a=e.chartMetadata,o=e.chartLibrary,i=e.colors,s=e.hoveredRow,l=e.hoveredX,c=e.legendFormatValue,u=e.onDimensionClick,d=e.selectedDimensions,h=e.showLatestOnBlur,p=e.unitsCurrent,f=e.viewBefore,g=Object(la.b)(Object(n.useCallback)((function(e){return Object(Ea.f)(e,{id:t})}),[t])),m=g.dimension_names,b=g.dimension_ids,v=-1===s&&!h,_=new Date(l||f),y=window.NETDATA.options.current["color_fill_opacity_".concat(a.chart_type)],O=Object(sa.b)(),x=O.localeDateString,w=O.localeTimeString,E=Object(n.useRef)(null);return Object(n.useEffect)((function(){E.current&&window.Ps.initialize(E.current,{wheelSpeed:.2,wheelPropagation:!0,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,suppressScrollX:!0,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,theme:"default"})}),[E]),r.a.createElement("div",{className:va()("netdata-chart-legend","netdata-".concat(o,"-legend"))},r.a.createElement("span",{className:"netdata-legend-title-date",title:Object(Ba.c)(!0,a)},v?Object(Ba.c)(!1,a):x(_)),r.a.createElement("br",null),r.a.createElement("span",{className:"netdata-legend-title-time",title:Object(Ba.d)(g,a)},v?a.context.toString():w(_)),r.a.createElement("br",null),r.a.createElement("span",{className:"netdata-legend-title-units"},p),r.a.createElement("br",null),r.a.createElement("div",{className:"netdata-legend-series",ref:E},r.a.createElement("div",{className:"netdata-legend-series-content"},b.map((function(e,o){var l,h=m[o],p=i[h],f=function(e){if(!e)return Fa;var t=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,a,n){return t+t+a+a+n+n})),a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return a||console.warn("wrong color format:",e),a?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:Fa}(p),b=0===d.length||d.includes(h);if(v)l=null;else if(-1!==s){var _=g.result.data[s];l=_?_[o+1]:null}else l=g.view_latest_values[o];return r.a.createElement(n.Fragment,{key:e},0!==o&&r.a.createElement("br",null),r.a.createElement("span",{title:h,className:va()("netdata-legend-name",b?"selected":"not-selected"),onClick:function(e){u(h,e)},role:"button",style:{color:p},tabIndex:0},r.a.createElement("table",{className:"netdata-legend-name-table-".concat(a.chart_type),style:{backgroundColor:"rgba(".concat(f.r,",").concat(f.g,",").concat(f.b,",").concat(y,")")}},r.a.createElement("tbody",null,r.a.createElement("tr",{className:"netdata-legend-name-tr"},r.a.createElement("td",{className:"netdata-legend-name-td"}))))," ",r.a.createElement(tn,{id:t,index:o})),r.a.createElement("span",{title:h,className:va()("netdata-legend-value",!b&&"hidden"),onClick:function(e){u(h,e)},role:"button",style:{color:p},tabIndex:0},c(l)))})))))},nn=function(e){var t=e.chartMetadata,a=e.showUndefined,n=e.hoveredX,o=e.viewBefore,i=e.chartData,s=Object(sa.b)(),l=s.localeDateString,c=s.localeTimeString,u=new Date(n||o);return r.a.createElement("div",null,r.a.createElement("span",{title:Object(Ba.c)(!0,t)},a?Object(Ba.c)(!1,t):l(u)),r.a.createElement(Va,null,"|"),r.a.createElement("span",{title:Object(Ba.d)(i,t)},a?t.context.toString():c(u)))},rn=function(e){var t=e.chartUuid,a=e.chartMetadata,o=e.colors,i=e.hoveredRow,s=e.hoveredX,l=e.legendFormatValue,c=e.onDimensionClick,u=e.selectedDimensions,d=e.showLatestOnBlur,h=e.unitsCurrent,p=e.viewBefore,f=e.legendToolbox,g=e.resizeHandler,m=-1===i&&!d,b=Object(la.b)(Object(n.useCallback)((function(e){return Object(Ea.f)(e,{id:t})}),[t])),v=b.dimension_names,_=b.dimension_ids;return r.a.createElement(za,null,r.a.createElement(Ua,null,r.a.createElement(Wa,null,h),r.a.createElement(nn,{chartMetadata:a,showUndefined:m,hoveredX:s,viewBefore:p,chartData:b})),r.a.createElement(Ga,null,r.a.createElement(Ya,null,_.map((function(e,a){var n,s=v[a],d=o[s],h=0===u.length||u.includes(s);if(m)n=null;else if(-1!==i){var p=b.result.data[i];n=p?p[a+1]:null}else n=b.view_latest_values[a];return r.a.createElement(Xa,{color:d,onClick:function(e){c(s,e)},role:"button",tabIndex:0,isDisabled:!h,key:e},r.a.createElement(Za,{title:s,color:d}),r.a.createElement(tn,{id:t,index:a}),r.a.createElement($a,null,h&&l(n)))})),r.a.createElement(Ka,null)),r.a.createElement(Ja,null,f,g)))},on=function(e){var t=e.attributes,a=e.chartUuid,o=e.chartMetadata,i=e.chartLibrary,s=e.colors,l=e.hoveredRow,c=e.hoveredX,u=e.legendFormatValue,d=e.selectedDimensions,h=e.setSelectedDimensions,p=e.showLatestOnBlur,f=e.unitsCurrent,g=e.viewBefore,m=e.legendToolbox,b=e.resizeHandler,v=Object(la.b)(Object(n.useCallback)((function(e){return Object(Ea.f)(e,{id:a}).dimension_names}),[a])),_=function(e,t){t.preventDefault();var a=t.shiftKey||t.ctrlKey,n=Object(Ba.b)({allDimensions:v,selectedDimensions:d,clickedDimensionName:e,isModifierKeyPressed:a});h(n)};return"bottom"===t.legendPosition?r.a.createElement(rn,{chartUuid:a,chartLibrary:i,chartMetadata:o,colors:s,hoveredRow:l,hoveredX:c,legendFormatValue:u,onDimensionClick:_,selectedDimensions:d,showLatestOnBlur:p,unitsCurrent:f,viewBefore:g,legendToolbox:m,resizeHandler:b}):r.a.createElement(an,{chartUuid:a,chartLibrary:i,chartMetadata:o,colors:s,hoveredRow:l,hoveredX:c,legendFormatValue:u,onDimensionClick:_,selectedDimensions:d,showLatestOnBlur:p,unitsCurrent:f,viewBefore:g})},sn=a(110),ln=function(e){var t=e.onToolboxLeftClick,a=e.onToolboxRightClick,n=e.onToolboxZoomInClick,o=e.onToolboxZoomOutClick;return r.a.createElement("div",{className:"netdata-legend-toolbox"},r.a.createElement(sn.a,{className:"netdata-legend-toolbox-button",onClick:t,iconType:"left",popoverTitle:"Pan Left",popoverContent:"Pan the chart to the left. You can also <b>drag it</b> with your mouse or your finger (on touch devices).<br/><small>Help can be disabled from the settings.</small>"}),r.a.createElement(sn.a,{className:"netdata-legend-toolbox-button",onClick:a,iconType:"right",popoverTitle:"Pan Right",popoverContent:"Pan the chart to the right. You can also <b>drag it</b> with your mouse or your finger (on touch devices).<br/><small>Help can be disabled from the settings.</small>"}),r.a.createElement(sn.a,{className:"netdata-legend-toolbox-button",onClick:n,iconType:"zoomIn",popoverTitle:"Chart Zoom In",popoverContent:"Zoom in the chart. You can also press SHIFT and select an area of the chart, or press SHIFT or ALT and use the mouse wheel or 2-finger touchpad scroll to zoom in or out. <br/><small>Help can be disabled from the settings.</small>"}),r.a.createElement(sn.a,{className:"netdata-legend-toolbox-button",onClick:o,iconType:"zoomOut",popoverTitle:"Chart Zoom Out",popoverContent:"Zoom out the chart. You can also press SHIFT or ALT and use the mouse wheel, or 2-finger touchpad scroll to zoom in or out.<br/><small>Help can be disabled from the settings.</small>"}))},cn=a(114),un=a(579),dn=a(611),hn=a(51),pn=a.n(hn),fn=(a(492),a(295)),gn=a(296),mn=a(577),bn=a(224),vn=a.n(bn),_n=function(e,t){return e.map((function(e){var a=Object(gn.a)(e),n=a[0],r=a.slice(1),o=[],i=0,s=0;return r.map((function(e,a){return{isVisible:t[a],value:e}})).slice().reverse().forEach((function(e){var t=e.isVisible,a=e.value;t?a>=0?(s+=a,o.push(s)):(i+=a,o.push(i)):o.push(0)})),[n].concat(o)}))},yn=function(e,t,a,n){var r,o=n.isLogScale(e),i=e.dygraphType,s=void 0===i?a.chart_type:i,l=e.groupBy;if(l&&"dimension"!==l&&("percentage"===(r=a.units)||"percent"===r||-1!==r.indexOf("%")))return"line";var c=s;return"stacked"===c&&1===t.dimensions&&(c="area"),"stacked"===c&&o&&(c="area"),c},On=Object(mn.a)(Object(da.a)("true"),(function(){return vn()(window.NETDATA.themes.current.background)})),xn=function(e){return e.map((function(e){return vn()(e).mix(On(),.2).hex()}))},wn=function(e,t){return e?window.NETDATA.options.current.color_fill_opacity_fake_stacked:"stacked"===t?window.NETDATA.options.current.color_fill_opacity_stacked:window.NETDATA.options.current.color_fill_opacity_area},En=(a(510),a(613)),Sn=function(e,t){var a=Object(En.a)(!1),r=Object(A.a)(a,2),o=r[0],i=r[1],s=Object(n.useRef)(null),l=Object(n.useCallback)((function(a){var n=a.getArea().x,r=a.toDomXCoord(1e3*t.current.chartData.first_entry),o=r>n;if(i(o),o&&s.current){var l=e.current.getBoundingClientRect().height;s.current.style.left="".concat(n,"px"),s.current.style.right="calc(100% - ".concat(r,"px)"),s.current.style.top="".concat(l/2,"px")}}),[]);return[o,s,l]},Cn=function(e,t,a,n){e.current.style.left="".concat(t,"px"),e.current.style.right="calc(100% - ".concat(a,"px)"),e.current.style.top=n},An=$.d.div.withConfig({displayName:"proceeded-chart-disclaimer__Container",componentId:"sc-5o8wdv-0"})(["display:block;"]),kn=Object(n.forwardRef)((function(e,t){return r.a.createElement(An,{ref:t,className:"dygraph__history-tip","data-testid":"proceededChartDisclaimer"},r.a.createElement("span",{className:"dygraph__history-tip-content"},"Want to extend your history of real-time metrics?",r.a.createElement("br",null),r.a.createElement("a",{href:"https://learn.netdata.cloud/guides/longer-metrics-storage/",target:"_blank",rel:"noopener noreferrer","data-testid":"proceededChartDisclaimer-configure"},"Configure Netdata's\xa0",r.a.createElement("b",null,"history")),"\xa0or use the\xa0",r.a.createElement("a",{href:"https://learn.netdata.cloud/docs/agent/database/engine/",target:"_blank",rel:"noopener noreferrer","data-testid":"proceededChartDisclaimer-engine"},"DB engine"),"."))})),jn={WARNING:"#FFF8E1",CRITICAL:"#FFEBEF",CLEAR:"#E5F5E8"},Tn=function(e){return jn[e]||null},Dn={WARNING:"#FFC300",CRITICAL:"#F59B9B",CLEAR:"#68C47D"},Pn=function(e){return Dn[e]||null},Mn={WARNING:"#536775",CRITICAL:"#FF4136",CLEAR:"#00AB44"},Ln=function(e){return Mn[e]||null},In=$.d.div.withConfig({displayName:"alarmBadge__Container",componentId:"tz967u-0"})(["position:absolute;margin-right:10px;overflow:hidden;pointer-events:none;direction:rtl;z-index:10;"]),Nn=$.d.div.withConfig({displayName:"alarmBadge__Badge",componentId:"tz967u-1"})(["display:inline-block;border-radius:36px;padding:2px 12px;background:",";border:1px solid ",";color:",";font-size:12px;font-weight:700;direction:ltr;white-space:nowrap;"],(function(e){return e.background}),(function(e){return e.border}),(function(e){return e.color})),Rn=Object(n.forwardRef)((function(e,t){var a=e.isVisible,n=e.status,o=e.label;return r.a.createElement(In,{ref:t},a&&r.a.createElement(Nn,{background:Tn(n),border:Pn(n),color:Ln(n)},o))})),Bn=function(e){var t=e.attributes,a=e.chartData,n=e.chartMetadata,r=e.chartSettings,o=e.dimensionsVisibility,i=e.hiddenLabelsElementId,s=e.isFakeStacked,l=e.orderedColors,c=e.setMinMax,u=e.shouldSmoothPlot,d=e.unitsCurrent,h=e.xAxisDateString,p=e.xAxisTimeString,f="sparkline"===t.dygraphTheme,g=f?3:4,m=r.isLogScale(t),b=yn(t,a,n,r),v=t.dygraphSmooth,_=void 0===v?"line"===b&&!f:v,y=t.dygraphDrawAxis,O=void 0===y||y,x="bottom"===t.legendPosition,w=t.dygraphColors,E=void 0===w?l:w,S=t.dygraphRightGap,C=void 0===S?5:S,A=t.dygraphShowRangeSelector,k=void 0!==A&&A,j=t.dygraphShowRoller,T=void 0!==j&&j,D=t.dygraphTitle,P=void 0===D?t.title||n.title:D,M=t.dygraphTitleHeight,L=void 0===M?19:M,I=t.dygraphLegend,N=void 0===I?"always":I,R=t.dygraphLabelsDiv,B=void 0===R?i:R,F=t.dygraphLabelsSeparateLine,H=void 0===F||F,z=t.dygraphIncludeZero,U=void 0===z?"stacked"===b:z,G=t.dygraphShowZeroValues,V=void 0===G||G,Y=t.dygraphShowLabelsOnHighLight,X=void 0===Y||Y,K=t.dygraphHideOverlayOnMouseOut,Z=void 0===K||K,q=t.dygraphXRangePad,$=void 0===q?0:q,J=t.dygraphYRangePad,Q=void 0===J?1:J,ee=t.dygraphValueRange,te=void 0===ee?[null,null]:ee,ae=t.dygraphYLabelWidth,ne=void 0===ae?12:ae,re=t.dygraphStrokeWidth,oe=void 0===re?"stacked"===b?.1:!0===_?1.5:.7:re,ie=t.dygraphStrokePattern,se=t.dygraphDrawPoints,le=void 0!==se&&se,ce=t.dygraphDrawGapEdgePoints,ue=void 0===ce||ce,de=t.dygraphConnectSeparatedPoints,he=void 0!==de&&de,pe=t.dygraphPointSize,fe=void 0===pe?1:pe,ge=t.dygraphStepPlot,me=void 0!==ge&&ge,be=t.dygraphStrokeBorderColor,ve=void 0===be?window.NETDATA.themes.current.background:be,_e=t.dygraphStrokeBorderWidth,ye=void 0===_e?0:_e,Oe=t.dygraphFillGraph,xe=void 0===Oe?"area"===b||"stacked"===b:Oe,we=t.dygraphFillAlpha,Ee=void 0===we?wn(s,b):we,Se=t.dygraphStackedGraph,Ce=void 0===Se?"stacked"===b&&!s:Se,Ae=t.dygraphStackedGraphNanFill,ke=void 0===Ae?"none":Ae,je=t.dygraphAxisLabelFontSize,Te=void 0===je?10:je,De=t.dygraphAxisLineColor,Pe=void 0===De?window.NETDATA.themes.current.axis:De,Me=t.dygraphAxisLineWidth,Le=void 0===Me?1:Me,Ie=t.dygraphDrawGrid,Ne=void 0===Ie||Ie,Re=t.dygraphGridLinePattern,Be=t.dygraphGridLineWidth,Fe=void 0===Be?1:Be,He=t.dygraphGridLineColor,ze=void 0===He?window.NETDATA.themes.current.grid:He,Ue=t.dygraphMaxNumberWidth,Ge=void 0===Ue?8:Ue,We=t.dygraphSigFigs,Ve=t.dygraphDigitsAfterDecimal,Ye=void 0===Ve?2:Ve,Xe=t.dygraphHighlighCircleSize,Ke=void 0===Xe?g:Xe,Ze=t.dygraphHighlightSeriesOpts,qe=t.dygraphHighlightSeriesBackgroundAlpha,$e=t.dygraphXPixelsPerLabel,Je=void 0===$e?50:$e,Qe=t.dygraphXAxisLabelWidth,et=void 0===Qe?60:Qe,tt=t.dygraphDrawXAxis,at=void 0===tt?O:tt,nt=t.dygraphYPixelsPerLabel,rt=void 0===nt?15:nt,ot=t.dygraphYAxisLabelWidth,it=void 0===ot?x?30:50:ot,st=t.dygraphDrawYAxis,lt=void 0===st?O:st;return{colors:s?xn(Object(W.a)(E)):E,rightGap:f?0:C,showRangeSelector:k,showRoller:T,title:f?void 0:P,titleHeight:L,legend:N,labels:a.result.labels,labelsDiv:B,labelsSeparateLines:!!f||H,labelsShowZeroValues:!m&&V,labelsKMB:!1,labelsKMG2:!1,showLabelsOnHighlight:X,hideOverlayOnMouseOut:Z,includeZero:U,xRangePad:$,yRangePad:f?1:Q,valueRange:te,ylabel:f||x?void 0:d,yLabelWidth:f||x?0:ne,plotter:_&&u?window.smoothPlotter:null,strokeWidth:oe,strokePattern:ie,drawPoints:le,drawGapEdgePoints:ue,connectSeparatedPoints:!m&&he,pointSize:fe,stepPlot:me,strokeBorderColor:ve,strokeBorderWidth:ye,fillGraph:xe,fillAlpha:Ee,stackedGraph:Ce,stackedGraphNaNFill:ke,drawAxis:!f&&O,axisLabelFontSize:Te,axisLineColor:Pe,axisLineWidth:Le,drawGrid:!f&&Ne,gridLinePattern:Re,gridLineWidth:Fe,gridLineColor:ze,maxNumberWidth:Ge,sigFigs:We,digitsAfterDecimal:Ye,highlightCircleSize:Ke,highlightSeriesOpts:Ze,highlightSeriesBackgroundAlpha:qe,visibility:o,logscale:m,axes:{x:{pixelsPerLabel:Je,ticker:pn.a.dateTicker,axisLabelWidth:et,drawAxis:!f&&at,axisLabelFormatter:function(e){return e.toTimeString().startsWith("00:00:00")?h(e):p(e)}},y:{logscale:m,pixelsPerLabel:rt,axisLabelWidth:it,drawAxis:!f&&lt,axisLabelFormatter:function(e){return c([this.axes_[0].extremeRange[0],this.axes_[0].extremeRange[1]])(e)}}}}},Fn=function(e){var t=e.attributes,a=e.chartData,o=e.chartMetadata,i=e.chartElementClassName,s=e.chartElementId,l=e.chartLibrary,c=e.chartUuid,u=e.dimensionsVisibility,d=e.hasEmptyData,h=e.hasLegend,p=e.isRemotelyControlled,f=e.onUpdateChartPanAndZoom,m=e.orderedColors,b=e.immediatelyDispatchPanAndZoom,v=e.hoveredRow,_=e.hoveredX,y=e.setGlobalChartUnderlay,O=e.setHoveredX,x=e.setMinMax,w=e.unitsCurrent,E=e.viewAfter,S=e.viewBefore,k=Object(la.b)(ue.l),j=Object(la.b)(ue.d),T=(null===j||void 0===j?void 0:j.chartId)===a.id?j:null,D=Object(la.b)(ue.L),P=Object(sa.b)(),M=P.xAxisDateString,L=P.xAxisTimeString,I=ya[l],N="".concat(c,"-hidden-labels-id"),R=yn(t,a,o,I),B=a.min<0&&"stacked"===R,F=wn(B,R),H=Object(n.useRef)(null),z=Object(n.useCallback)((function(e){var t=e.after,a=e.before,n=e.callback,r=e.shouldNotExceedAvailableRange;f({after:t,before:a,callback:n,masterID:c,shouldNotExceedAvailableRange:r})}),[c,f]),U=Object(n.useRef)(),G=Object(n.useRef)(!1),V=Object(n.useRef)(!1),Y=Object(n.useRef)(null),X=Object(n.useRef)(0),K=Object(n.useRef)(0),Z=Object(n.useRef)(),q=Object(la.a)(),$=Object(la.b)(ue.H),J=Object(n.useCallback)((function(){G.current=!1,U.current&&U.current.updateOptions({dateWindow:null}),q($?Object(Ke.j)():Object(_e.g)({id:c}))}),[c,q,$]),Q=function(){var e=Object(En.a)(!1),t=Object(A.a)(e,2),a=t[0],r=t[1],o=Object(n.useRef)(null);return[a,o,function(e,t,a){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Cn;if(e){if(o.current){r(!0);var i=t.getArea(),s=i.x;n(o,s,a,"40px")}}else r(!1)}]}(),ee=Object(A.a)(Q,3),te=ee[0],ae=ee[1],ne=ee[2],re=Object(n.useRef)({alarm:T,chartData:a,globalChartUnderlay:k,hoveredX:_,immediatelyDispatchPanAndZoom:b,resetGlobalPanAndZoom:J,setGlobalChartUnderlay:y,updateAlarmBadge:ne,updateChartPanOrZoom:z,viewAfter:E,viewBefore:S}),oe=Sn(H,re),ie=Object(A.a)(oe,3),se=ie[0],le=ie[1],ce=ie[2];Object(n.useLayoutEffect)((function(){re.current.alarm=T,re.current.chartData=a,re.current.hoveredX=_,re.current.immediatelyDispatchPanAndZoom=b,re.current.globalChartUnderlay=k,re.current.resetGlobalPanAndZoom=J,re.current.setGlobalChartUnderlay=y,re.current.updateAlarmBadge=ne,re.current.updateChartPanOrZoom=z,re.current.viewAfter=E,re.current.viewBefore=S}),[T,a,k,_,b,J,y,ne,z,E,S]);var de=Object(la.b)(ue.C);Object(n.useLayoutEffect)((function(){if(H&&H.current&&!U.current&&!d){var e=Bn({attributes:t,chartData:a,chartMetadata:o,chartSettings:I,dimensionsVisibility:u,hiddenLabelsElementId:N,isFakeStacked:B,orderedColors:m,setMinMax:x,shouldSmoothPlot:de,unitsCurrent:w,xAxisDateString:M,xAxisTimeString:L});G.current=!1;var n=Object(g.a)({},e,{dateWindow:[re.current.viewAfter,re.current.viewBefore],highlightCallback:function(e,t){var a=V.current?null:t;a!==re.current.hoveredX&&O(a)},unhighlightCallback:function(){null!==re.current.hoveredX&&O(null)},drawCallback:function(e){if(G.current){G.current=!1;var t=e.xAxisRange(),a=Math.round(t[0]),n=Math.round(t[1]);(function(e){var t=e.after,a=e.before,n=e.chartData;return t>=1e3*n.first_entry&&a<=1e3*n.last_entry})({after:a,before:n,chartData:re.current.chartData})&&re.current.updateChartPanOrZoom({after:a,before:n})}},zoomCallback:function(e,t){G.current=!0,re.current.updateChartPanOrZoom({after:e,before:t})},underlayCallback:function(e,t,a){if(ce(a),re.current.alarm){var n=re.current.alarm,r=a.toDomXCoord(1e3*n.when),o=Pn(n.status);requestAnimationFrame((function(){e.fillStyle=o;var a=e.globalAlpha;e.globalAlpha=.7,e.fillRect(r-3,t.y,6,t.h),e.globalAlpha=a})),re.current.updateAlarmBadge(re.current.alarm,a,r-3)}if(re.current.globalChartUnderlay){var i=re.current.globalChartUnderlay,s=i.after,l=i.before;if(s<l){var c=a.toDomCoords(s,-20),u=a.toDomCoords(l,20),d=c[0],h=u[0];e.fillStyle=window.NETDATA.themes.current.highlight,e.fillRect(d,t.y,h-d,t.h)}}},interactionModel:{mousedown:function(e,t,a){e.button&&2===e.button||(G.current=!0,V.current=!0,a.initializeMouseDown(e,t,a),a.tarp.tarps=a.tarp.tarps.filter((function(e){var t=Number(e.style.left.replace("px",""))>1e4;return t&&e.parentNode.removeChild(e),!t})),q(Object(Ke.t)()),e.button&&1===e.button?e.shiftKey?(Y.current=null,pn.a.startPan(e,t,a)):e.altKey||e.ctrlKey||e.metaKey?(Y.current=t.toDataXCoord(e.offsetX),pn.a.startZoom(e,t,a)):(Y.current=null,pn.a.startZoom(e,t,a)):e.shiftKey?(Y.current=null,pn.a.startZoom(e,t,a)):e.altKey||e.ctrlKey||e.metaKey?(Y.current=t.toDataXCoord(e.offsetX),pn.a.startZoom(e,t,a)):(Y.current=null,pn.a.startPan(e,t,a)))},mousemove:function(e,t,a){null!==Y.current?(G.current=!0,pn.a.moveZoom(e,t,a),e.preventDefault()):a.isPanning?(G.current=!0,a.is2DPan=!1,pn.a.movePan(e,t,a)):a.isZooming&&pn.a.moveZoom(e,t,a)},mouseup:function(e,t,n){if(V.current=!1,null!==Y.current){var r=Object(Ze.a)((function(e){return+e}),[Y.current,t.toDataXCoord(e.offsetX)]);re.current.setGlobalChartUnderlay({after:r[0],before:r[1],masterID:a.id}),Y.current=null,n.isZooming=!1,t.clearZoomRect_(),t.drawGraph_(!1)}else n.isPanning?(G.current=!0,pn.a.endPan(e,t,n),re.current.immediatelyDispatchPanAndZoom()):n.isZooming&&(G.current=!0,pn.a.endZoom(e,t,n),re.current.immediatelyDispatchPanAndZoom())},wheel:function(e,t){if(e.shiftKey||e.altKey){G.current=!0,e.preventDefault(),e.stopPropagation();var a="number"!==typeof e.wheelDelta||Number.isNaN(e.wheelDelta)?-1.2*e.deltaY:e.wheelDelta/40,n=(e.detail?-1*e.detail:a)/50;e.offsetX||(e.offsetX=e.layerX-e.target.offsetLeft);var r=function(e,t){var a=e.toDomCoords(e.xAxisRange()[0],null),n=Object(A.a)(a,1)[0],r=t-n,o=e.toDomCoords(e.xAxisRange()[1],null)[0]-n;return 0===o?0:r/o}(t,e.offsetX);!function(e,a,n){n=n||.5;var r=e.xAxisRange(),o=Object(A.a)(r,2),i=o[0],s=o[1],l=(s-i)*a,c=i+l*n,u=s-l*(1-n);re.current.updateChartPanOrZoom({after:c,before:u,shouldNotExceedAvailableRange:!0,callback:function(e,a){t.updateOptions({dateWindow:[e,a]})}})}(t,n,r)}},click:function(e){e.preventDefault()},dblclick:function(){q(Object(Ke.k)({forcePlay:!1})),re.current.resetGlobalPanAndZoom()},touchstart:function(e,t,a){V.current=!0,G.current=!0,pn.a.defaultInteractionModel.touchstart(e,t,a),a.touchDirections={x:!0,y:!1},X.current=0,"number"===typeof e.touches[0].pageX?K.current=e.touches[0].pageX:K.current=0},touchmove:function(e,t,a){G.current=!0,pn.a.defaultInteractionModel.touchmove(e,t,a),X.current=Date.now()},touchend:function(e,t,a){if(V.current=!1,G.current=!0,pn.a.defaultInteractionModel.touchend(e,t,a),0===X.current&&0!==K.current&&H.current){G.current=!1;var n=t.plotter_,r=(K.current-(n.area.x+H.current.getBoundingClientRect().left))/n.area.w,o=re.current,i=Math.round(o.viewAfter+(o.viewBefore-o.viewAfter)*r);O(i,!0)}var s=Date.now();"undefined"!==typeof Z.current&&(0===X.current&&s-Z.current<=window.NETDATA.options.current.double_click_speed&&re.current.resetGlobalPanAndZoom());Z.current=s,re.current.immediatelyDispatchPanAndZoom()}}}),r=B?_n(a.result.data,u):a.result.data,i=new pn.a(H.current,r,n);U.current=i}}),[t,a,o,I,c,u,d,N,B,m,O,x,de,w,M,L,ce,q]),Object(fa.a)((function(){if(U.current){var e="sparkline"===t.dygraphTheme,a="bottom"===t.legendPosition;U.current.updateOptions({ylabel:e||a?void 0:w})}}),[t,w]),Object(fa.a)((function(){U.current&&U.current.updateOptions({})}),[T,k]);var he=Object(la.b)(ue.F);Object(fa.a)((function(){U.current&&window.requestAnimationFrame((function(){U.current&&U.current.resize()}))}),[he]),Object(fa.a)((function(){if(U.current&&!d){var e=[E,S],n=U.current.xAxisRange(),r=Math.abs(S-E-(n[1]-n[0]))>5e3,o=S<=0&&n[1]>S&&n[0]>E&&!r,i=p&&!o?{dateWindow:e}:{},s=t.dygraphColors,l=void 0===s?m:s,c=B?_n(a.result.data,u):a.result.data,h=1===u.length||u.filter((function(e){return!0===e})).length>1;U.current.updateOptions(Object(g.a)({},i,{colors:B?xn(Object(W.a)(l)):l,file:c,labels:a.result.labels,fillAlpha:F},"stacked"===R?{includeZero:h}:{},{stackedGraph:"stacked"===R&&!B,visibility:B?Object(W.a)(u):u}))}}),[t,a.result,c,u,R,F,d,B,p,m,E,S]),Object(fa.a)((function(){if(U.current){var e=Bn({attributes:t,chartData:a,chartMetadata:o,chartSettings:I,dimensionsVisibility:u,hiddenLabelsElementId:N,isFakeStacked:B,orderedColors:m,setMinMax:x,shouldSmoothPlot:de,unitsCurrent:w,xAxisDateString:M,xAxisTimeString:L});d||U.current.updateOptions(e)}}),[R,D]);var pe=Object(la.b)(ue.p);Object(n.useLayoutEffect)((function(){if(U.current&&pe!==c){if(-1===v)return void(-1!==U.current.getSelection()&&U.current.clearSelection());U.current.setSelection(v)}}),[a,c,pe,v,E,S]);var fe=Object(la.b)((function(e){return Object(Ea.l)(e,{id:c})}));Object(n.useLayoutEffect)((function(){U.current&&U.current.resize()}),[fe,a.dimension_names.length]);var ge=Object(la.b)((function(e){return t.commonMin?Object(ue.h)(e,t.commonMin):void 0})),me=Object(la.b)((function(e){return t.commonMax?Object(ue.g)(e,t.commonMax):void 0}));Object(n.useLayoutEffect)((function(){var e=t.commonMin,a=t.commonMax;if(U.current&&(e||a)){var n=U.current.yAxisExtremes()[0],r=Object(A.a)(n,2),o=r[0],i=r[1],s=t.dygraphValueRange,l=void 0===s?[null,null]:s,u=null===l[0],d=null===l[1],h=!1,p=Object(C.a)(n);if(e&&u&&ge&&ge.currentExtreme<o&&(p[0]=ge.currentExtreme,h=!0),a&&d&&me&&me.currentExtreme>i&&(p[1]=me.currentExtreme,h=!0),h){U.current.updateOptions({valueRange:p});var f=U.current.yAxisExtremes()[0];p=Object(C.a)(f)}e&&u&&p[0]!==(null===ge||void 0===ge?void 0:ge.charts[c])&&q(Object(Ke.p)({chartUuid:c,commonMinKey:e,value:p[0]})),a&&d&&p[1]!==(null===me||void 0===me?void 0:me.charts[c])&&q(Object(Ke.o)({chartUuid:c,commonMaxKey:a,value:p[1]}))}}),[t,a.result,c,ge,me,q]),Object(n.useLayoutEffect)((function(){se&&U.current&&ce(U.current)}),[se]),Object(ga.a)((function(){U.current&&U.current.destroy()}));var be=Object(n.useRef)();Object(dn.a)((function(){if(t.detectResize){var e=!1,a=function(e,t){var a=null;return function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];null!==a&&(clearTimeout(a),a=null),a=setTimeout((function(){return e.apply(void 0,r)}),t)}}((function(){e?U.current&&U.current.resize():e=!0}),500);be.current=new fn.a((function(){a()})),be.current.observe(H.current)}})),Object(ga.a)((function(){U.current=null,be.current&&be.current.disconnect()}));var ve="bottom"===t.legendPosition;return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{ref:H,id:s,className:va()(i,{"dygraph-chart--legend-bottom":ve})}),se&&h&&r.a.createElement(kn,{ref:le}),(null===T||void 0===T?void 0:T.value)&&h&&r.a.createElement(Rn,{isVisible:te,ref:ae,status:T.status,label:T.value}),r.a.createElement("div",{className:"dygraph-chart__labels-hidden",id:N}))},Hn=a(298),zn=a.n(Hn),Un=a(199),Gn=function(e){var t=e.attributes,a=e.chartData,o=e.chartMetadata,i=e.chartElementClassName,s=e.chartElementId,l=e.chartWidth,c=e.hoveredRow,u=e.legendFormatValue,d=e.orderedColors,h=e.setMinMax,p=e.showUndefined,f=e.unitsCurrent,g=Object(n.useRef)(null),m=Object(n.useState)(),b=Object(A.a)(m,2),v=b[0],_=b[1],y=-1===c?0:a.result.length-1-c,O=p?null:a.result[y],x=t.easyPieChartMinValue,w=void 0===x?a.min:x,E=t.easyPieChartMaxValue,S=void 0===E?a.max:E,C=Object(de.a)(Object(Un.a)((function(e){return+e})),Object(Ze.a)(Ta.a),(function(e){var t=Object(A.a)(e,2),a=t[0],n=t[1];return[Math.min(a,O||0),Math.max(n,O||0)]}))([w,S]);Object(n.useEffect)((function(){h(C)}),[C]);var k=function(e){var t,a=e.value,n=void 0===a?0:a,r=e.min,o=void 0===r?0:r,i=e.max,s=void 0===i?0:i;return!e.isMinOverride&&o>0&&(o=0),!e.isMaxOverride&&s<0&&(s=0),o<0&&s>0?(s=-o>s?-o:s,t=Math.round(100*n/s)):n>=0&&o>=0&&s>=0?0===(t=Math.round(100*(n-o)/(s-o)))&&(t=.1):0===(t=Math.round(100*(n-s)/(s-o)))&&(t=-.1),t}({value:p?0:O,min:C[0],max:C[1],isMinOverride:void 0!==t.easyPieChartMinValue,isMaxOverride:void 0!==t.easyPieChartMaxValue});Object(n.useEffect)((function(){if(g.current&&!v){var e=Object(ua.a)([[function(e){return e<3},Object(da.a)(2)],[ha.a,Ta.a]])(Math.floor(l/22)),a=t.easyPieChartTrackColor,n=void 0===a?window.NETDATA.themes.current.easypiechart_track:a,r=t.easyPieChartScaleColor,o=void 0===r?window.NETDATA.themes.current.easypiechart_scale:r,i=t.easyPieChartScaleLength,s=void 0===i?5:i,c=t.easyPieChartLineCap,u=void 0===c?"round":c,h=t.easyPieChartLineWidth,p=void 0===h?e:h,f=t.easyPieChartTrackWidth,m=t.easyPieChartSize,b=void 0===m?l:m,y=t.easyPieChartRotate,O=void 0===y?0:y,x=t.easyPieChartAnimate,w=void 0===x?{duration:500,enabled:!0}:x,E=t.easyPieChartEasing,S=new zn.a(g.current,{barColor:d[0],trackColor:n,scaleColor:o,scaleLength:s,lineCap:u,lineWidth:p,trackWidth:f,size:b,rotate:O,animate:w,easing:E});_(S)}}),[t,a,v,l,d]),Object(n.useEffect)((function(){if(v){var e=-1===c&&!p;e&&!v.options.animate.enabled?v.enableAnimation():!e&&v.options.animate.enabled&&v.disableAnimation(),setTimeout((function(){v.update(k)}),0)}}),[v,c,k,p]);var j=2*l/3/5,T=Math.round((l-j-l/40)/2),D=Math.round(1.6*j/3),P=Math.round(T-2*D-l/40),M=Math.round(.9*D),L=Math.round(T+(j+M)+l/40);return r.a.createElement("div",{ref:g,id:s,className:i},r.a.createElement("span",{className:"easyPieChartLabel",style:{fontSize:j,top:T}},u(O)),r.a.createElement("span",{className:"easyPieChartTitle",style:{fontSize:D,top:P}},t.title||o.title),r.a.createElement("span",{className:"easyPieChartUnits",style:{fontSize:M,top:L}},f))},Wn=a(299),Vn=function(e){return"number"===typeof e},Yn=function(e){var t=e.attributes,a=e.chartData,o=e.chartMetadata,i=e.chartElementClassName,s=e.chartElementId,l=e.chartUuid,c=e.chartHeight,u=e.chartWidth,d=e.hoveredRow,h=e.legendFormatValue,p=e.orderedColors,f=e.setMinMax,g=e.showUndefined,m=e.unitsCurrent,b=Object(n.useRef)(null),v=Object(n.useState)(),_=Object(A.a)(v,2),y=_[0],O=_[1],x=-1===d?0:a.result.length-1-d,w=a.result[x],E=t.gaugeMinValue,S=t.gaugeMaxValue,C=Vn(E)?E:a.min,k=Vn(S)?S:a.max,j=Object(de.a)(Object(Un.a)((function(e){return+e})),(function(e){var t=Object(A.a)(e,2),a=t[0],n=t[1];return[!Vn(E)&&a>0?0:a,!Vn(S)&&n<0?0:n]}),Object(Ze.a)(Ta.a),(function(e){var t=Object(A.a)(e,2),a=t[0],n=t[1];return[Math.min(a,w),Math.max(n,w)]}))([C,k]),T=Object(A.a)(j,2),D=T[0],P=T[1];Object(n.useEffect)((function(){f([D,P])}),[D,P]);var M=Object(de.a)(Object(da.a)(100*(w-D)/(P-D)),(function(e){return Math.max(.001,e)}),(function(e){return Math.min(99.999,e)}))();Object(n.useEffect)((function(){if(b.current&&!y){var e=t.gaugePointerColor,a=void 0===e?window.NETDATA.themes.current.gauge_pointer:e,n=t.gaugeStrokeColor,r=void 0===n?window.NETDATA.themes.current.gauge_stroke:n,o=t.gaugeStartColor,i=void 0===o?p[0]:o,s=t.gaugeStopColor,l=t.gaugeGenerateGradient,c={lines:12,angle:.14,lineWidth:.57,radiusScale:1,pointer:{length:.85,strokeWidth:.045,color:a},limitMax:!0,limitMin:!0,colorStart:i,colorStop:s,strokeColor:r,generateGradient:!0===(void 0!==l&&l),gradientType:0,highDpiSupport:!0},u=new Wn.Gauge(b.current).setOptions(c);u.minValue=0,u.maxValue=100,O(u)}}),[t,a,y,u,p]),Object(n.useEffect)((function(){if(y){var e=-1===d&&!g?32:1e9;y.animationSpeed=e,setTimeout((function(){y.set(g?0:M)}),0)}}),[y,c,u,d,M,g]);var L=Math.floor(c/5),I=Math.round((c-L)/3.2),N=Math.round(L/2.1),R=Math.round(.9*N),B=Math.round(.75*L);return r.a.createElement("div",{id:s,className:i},r.a.createElement("canvas",{ref:b,className:"gaugeChart",id:"gauge-".concat(l,"-canvas"),style:{width:u,height:c}}),r.a.createElement("span",{className:"gaugeChartLabel",style:{fontSize:L,top:I}},h(g?null:w)),r.a.createElement("span",{className:"gaugeChartTitle",style:{fontSize:N,top:0}},t.title||o.title),r.a.createElement("span",{className:"gaugeChartUnits",style:{fontSize:R}},m),r.a.createElement("span",{className:"gaugeChartMin",style:{fontSize:B}},h(g?null:D)),r.a.createElement("span",{className:"gaugeChartMax",style:{fontSize:B}},h(g?null:P)))},Xn=(a(275),a(136)),Kn=a(614),Zn=a(615),qn=Object(de.a)(Xn.a,Object(Kn.a)(/[^0-9a-f]/gi,""),Object(ua.a)([[function(e){return e.length<6},function(e){return e[0]+e[0]+e[1]+e[1]+e[2]+e[2]}],[ha.a,Ta.a]])),$n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=qn(e),n=Object(de.a)((function(e){return Object(Zn.a)(2,e)}),Object(Un.a)(Object(de.a)((function(e){return parseInt(e,16)}),(function(e){return Math.round(Math.min(Math.max(0,e+e*t),255)).toString(16)}),(function(e){return"00".concat(e).substr(e.length)}))),(function(e){return e.join("")}))(a);return"#".concat(n)},Jn=function(e){return e>0?e:(new Date).valueOf()+e},Qn=function(e){var t=e.attributes,a=e.chartContainerElement,o=e.chartData,i=e.chartMetadata,s=e.chartElementClassName,l=e.chartElementId,c=e.orderedColors,u=e.unitsCurrent,d=e.viewAfterForCurrentData,h=e.viewBeforeForCurrentData,p=Object(n.useRef)(null),f=Object(n.useState)(),m=Object(A.a)(f,2),b=m[0],v=m[1],_=Object(n.useRef)(),y=t.forceTimeWindow?function(e,t){var a=Jn(t[0]),n=Jn(t[1]),r=e.after*Ve.a,o=e.before*Ve.a-r,i=n-a;if(o>i/1.03)return{};var s=o/i;return{paddingLeftPercentage:"".concat((r-a)/(n-a)*100,"%"),widthRatio:s}}(o,[d,h]):{},O=y.paddingLeftPercentage,x=void 0===O?void 0:O,w=y.widthRatio,E=void 0===w?1:w;Object(n.useEffect)((function(){var e=t.sparklineLineColor,a=void 0===e?c[0]:e,n="line"===i.chart_type?window.NETDATA.themes.current.background:$n(a,window.NETDATA.chartDefaults.fill_luminance),r=t.title||i.title,o=function(e){return"disable"===e?"":e},s=t.sparklineType,l=void 0===s?"line":s,d=t.sparklineFillColor,h=void 0===d?n:d,f=t.sparklineDisableInteraction,g=void 0!==f&&f,m=t.sparklineDisableTooltips,y=void 0!==m&&m,O=t.sparklineDisableHighlight,x=void 0!==O&&O,w=t.sparklineHighlightLighten,E=void 0===w?1.4:w,S=t.sparklineTooltipSuffix,C=void 0===S?" ".concat(u):S,A=t.sparklineNumberFormatter,k=void 0===A?function(e){return e.toFixed(2)}:A,j={type:l,lineColor:a,fillColor:h,chartRangeMin:t.sparklineChartRangeMin,chartRangeMax:t.sparklineChartRangeMax,composite:t.sparklineComposite,enableTagOptions:t.sparklineEnableTagOptions,tagOptionPrefix:t.sparklineTagOptionPrefix,tagValuesAttribute:t.sparklineTagValuesAttribute,disableHiddenCheck:t.sparklineDisableHiddenCheck,defaultPixelsPerValue:t.sparklineDefaultPixelsPerValue,spotColor:o(t.sparklineSpotColor),minSpotColor:o(t.sparklineMinSpotColor),maxSpotColor:o(t.sparklineMaxSpotColor),spotRadius:t.sparklineSpotRadius,valueSpots:t.sparklineValueSpots,highlightSpotColor:t.sparklineHighlightSpotColor,highlightLineColor:t.sparklineHighlightLineColor,lineWidth:t.sparklineLineWidth,normalRangeMin:t.sparklineNormalRangeMin,normalRangeMax:t.sparklineNormalRangeMax,drawNormalOnTop:t.sparklineDrawNormalOnTop,xvalues:t.sparklineXvalues,chartRangeClip:t.sparklineChartRangeClip,chartRangeMinX:t.sparklineChartRangeMinX,chartRangeMaxX:t.sparklineChartRangeMaxX,disableInteraction:g,disableTooltips:y,disableHighlight:x,highlightLighten:E,highlightColor:t.sparklineHighlightColor,tooltipContainer:t.sparklineTooltipContainer,tooltipClassname:t.sparklineTooltipClassname,tooltipChartTitle:r,tooltipFormat:t.sparklineTooltipFormat,tooltipPrefix:t.sparklineTooltipPrefix,tooltipSuffix:C,tooltipSkipNull:t.sparklineTooltipSkipNull,tooltipValueLookups:t.sparklineTooltipValueLookups,tooltipFormatFieldlist:t.sparklineTooltipFormatFieldlist,tooltipFormatFieldlistKey:t.sparklineTooltipFormatFieldlistKey,numberFormatter:k,numberDigitGroupSep:t.sparklineNumberDigitGroupSep,numberDecimalMark:t.sparklineNumberDecimalMark,numberDigitGroupCount:t.sparklineNumberDigitGroupCount,animatedZooms:t.sparklineAnimatedZooms};_.current=j,p.current&&!b&&v((function(){return window.$(p.current)}))}),[b,t,a,o.result,i,c,u,E]);var S=t.sparklineOnHover;Object(n.useEffect)((function(){if(b&&S){var e=function(){return S(null)},t=function(e){var t=Object(A.a)(e.sparklines,1)[0].getCurrentRegionFields(),a=t.x,n=t.y;S({x:a,y:n})};return b.bind("sparklineRegionChange",t).bind("mouseleave",e),function(){b.unbind("sparklineRegionChange",t).unbind("mouseleave",e)}}}),[b,S]),Object(n.useEffect)((function(){if(b){var e=a.getBoundingClientRect(),t=e.width,n=e.height;b.sparkline(o.result,Object(g.a)({},_.current,{width:Math.floor(t*E),height:Math.floor(n)}))}}),[b,o.result]);var C=x?{textAlign:"initial",paddingLeft:x}:void 0;return r.a.createElement("div",{ref:p,id:l,className:s,style:C})},er=a(147);window.d3=er;var tr,ar=a(300),nr=a.n(ar),rr=a(46),or={label:"no data",value:100,color:"#666666"},ir=function(e){var t=e.chartData,a=e.index,n=e.localeDateString,r=e.localeTimeString,o=Math.round((t.before-t.after+1)/t.points),i=Object(rr.a)(o),s=t.result.data[a].time,l=s-1e3*o,c=n(l),u=r(l),d=n(s),h=r(s);return c===d?"".concat(c," ").concat(u," to ").concat(h,", ").concat(i):"".concat(c," ").concat(u," to ").concat(d," ").concat(h,", ").concat(i)},sr=function(e){var t=e.attributes,a=e.chartContainerElement,o=e.chartData,i=e.chartMetadata,s=e.chartElementClassName,l=e.chartElementId,c=e.hoveredRow,u=e.hoveredX,d=e.legendFormatValue,h=e.orderedColors,p=e.setMinMax,f=e.unitsCurrent,g=Object(n.useRef)(null),m=Object(n.useRef)(d);m.current=d;var b=Object(n.useState)(),v=Object(A.a)(b,2),_=v[0],y=v[1],O=Object(n.useRef)(),x=Object(sa.b)(),w=x.localeDateString,E=x.localeTimeString;return Object(n.useEffect)((function(){if(g.current&&!_){p([o.min,o.max]);var e=Object(G.a)(o.result.labels).map((function(e,t){return{label:e,value:o.result.data[0][e],color:h[t]}})).filter((function(e){return null!==e.value&&e.value>0})),n=e.length>0?e:or,r=t.title||i.title,s=ir({chartData:o,index:0,localeDateString:w,localeTimeString:E}),l=t.d3pieTitle,c=void 0===l?r:l,u=t.d3pieSubtitle,d=void 0===u?f:u,b=t.d3pieFooter,v=void 0===b?s:b,x=t.d3pieTitleColor,S=void 0===x?window.NETDATA.themes.current.d3pie.title:x,C=t.d3pieTitleFontsize,A=void 0===C?12:C,k=t.d3pieTitleFontweight,j=void 0===k?"bold":k,T=t.d3pieTitleFont,D=void 0===T?"arial":T,P=t.d3PieSubtitleColor,M=void 0===P?window.NETDATA.themes.current.d3pie.subtitle:P,L=t.d3PieSubtitleFontsize,I=void 0===L?10:L,N=t.d3PieSubtitleFontweight,R=void 0===N?"normal":N,B=t.d3PieSubtitleFont,F=void 0===B?"arial":B,H=t.d3PieFooterColor,z=void 0===H?window.NETDATA.themes.current.d3pie.footer:H,U=t.d3PieFooterFontsize,W=void 0===U?9:U,V=t.d3PieFooterFontweight,Y=void 0===V?"bold":V,X=t.d3PieFooterFont,K=void 0===X?"arial":X,Z=t.d3PieFooterLocation,q=void 0===Z?"bottom-center":Z,$=t.d3PiePieinnerradius,J=void 0===$?"45%":$,Q=t.d3PiePieouterradius,ee=void 0===Q?"80%":Q,te=t.d3PieSortorder,ae=void 0===te?"value-desc":te,ne=t.d3PieSmallsegmentgroupingEnabled,re=void 0!==ne&&ne,oe=t.d3PieSmallsegmentgroupingValue,ie=void 0===oe?1:oe,se=t.d3PieSmallsegmentgroupingValuetype,le=void 0===se?"percentage":se,ce=t.d3PieSmallsegmentgroupingLabel,ue=void 0===ce?"other":ce,de=t.d3PieSmallsegmentgroupingColor,he=void 0===de?window.NETDATA.themes.current.d3pie.other:de,pe=t.d3PieLabelsOuterFormat,fe=void 0===pe?"label-value1":pe,ge=t.d3PieLabelsOuterHidewhenlessthanpercentage,me=void 0===ge?null:ge,be=t.d3PieLabelsOuterPiedistance,ve=void 0===be?15:be,_e=t.d3PieLabelsInnerFormat,ye=void 0===_e?"percentage":_e,Oe=t.d3PieLabelsInnerHidewhenlessthanpercentage,xe=void 0===Oe?2:Oe,we=t.d3PieLabelsMainLabelColor,Ee=void 0===we?window.NETDATA.themes.current.d3pie.mainlabel:we,Se=t.d3PieLabelsMainLabelFont,Ce=void 0===Se?"arial":Se,Ae=t.d3PieLabelsMainLabelFontsize,ke=void 0===Ae?10:Ae,je=t.d3PieLabelsMainLabelFontweight,Te=void 0===je?"normal":je,De=t.d3PieLabelsPercentageColor,Pe=void 0===De?window.NETDATA.themes.current.d3pie.percentage:De,Me=t.d3PieLabelsPercentageFont,Le=void 0===Me?"arial":Me,Ie=t.d3PieLabelsPercentageFontsize,Ne=void 0===Ie?10:Ie,Re=t.d3PieLabelsPercentageFontweight,Be=void 0===Re?"bold":Re,Fe=t.d3PieLabelsValueColor,He=void 0===Fe?window.NETDATA.themes.current.d3pie.value:Fe,ze=t.d3PieLabelsValueFont,Ue=void 0===ze?"arial":ze,Ge=t.d3PieLabelsValueFontsize,We=void 0===Ge?10:Ge,Ve=t.d3PieLabelsValueFontweight,Ye=void 0===Ve?"bold":Ve,Xe=t.d3PieLabelsLinesEnabled,Ke=void 0===Xe||Xe,Ze=t.d3PieLabelsLinesStyle,qe=void 0===Ze?"curved":Ze,$e=t.d3PieLabelsLinesColor,Je=void 0===$e?"segment":$e,Qe=t.d3PieLabelsTruncationEnabled,et=void 0!==Qe&&Qe,tt=t.d3PieLabelsTruncationTruncatelength,at=void 0===tt?30:tt,nt=t.d3PieMiscColorsSegmentstroke,rt=void 0===nt?window.NETDATA.themes.current.d3pie.segment_stroke:nt,ot=t.d3PieMiscGradientEnabled,it=void 0!==ot&&ot,st=t.d3PieMiscColorsPercentage,lt=void 0===st?95:st,ct=t.d3PieMiscGradientColor,ut=void 0===ct?window.NETDATA.themes.current.d3pie.gradient_color:ct,dt=t.d3PieCssprefix,ht=void 0===dt?null:dt,pt=a.getBoundingClientRect(),ft=pt.width,gt=pt.height,mt={header:{title:{text:c,color:S,fontSize:A,fontWeight:j,font:D},subtitle:{text:d,color:M,fontSize:I,fontWeight:R,font:F},titleSubtitlePadding:1},footer:{text:v,color:z,fontSize:W,fontWeight:Y,font:K,location:q},size:{canvasHeight:Math.floor(gt),canvasWidth:Math.floor(ft),pieInnerRadius:J,pieOuterRadius:ee},data:{sortOrder:ae,smallSegmentGrouping:{enabled:re,value:ie,valueType:le,label:ue,color:he},content:n},labels:{outer:{format:fe,hideWhenLessThanPercentage:me,pieDistance:ve},inner:{format:ye,hideWhenLessThanPercentage:xe},mainLabel:{color:Ee,font:Ce,fontSize:ke,fontWeight:Te},percentage:{color:Pe,font:Le,fontSize:Ne,fontWeight:Be,decimalPlaces:0},value:{color:He,font:Ue,fontSize:We,fontWeight:Ye},lines:{enabled:Ke,style:qe,color:Je},truncation:{enabled:et,truncateLength:at},formatter:function(e){return"value"===e.part?m.current(e.value):"percentage"===e.part?"".concat(e.label,"%"):e.label}},effects:{load:{effect:"none",speed:0},pullOutSegmentOnClick:{effect:"bounce",speed:400,size:5},highlightSegmentOnMouseover:!0,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"placeholder",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:window.NETDATA.themes.current.d3pie.tooltip_bg,backgroundOpacity:.5,color:window.NETDATA.themes.current.d3pie.tooltip_fg,borderRadius:2,font:"arial",fontSize:12,padding:4}},misc:{colors:{background:"transparent",segmentStroke:rt},gradient:{enabled:it,percentage:lt,color:ut},canvasPadding:{top:5,right:5,bottom:5,left:5},pieCenterOffset:{x:0,y:0},cssPrefix:ht},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null}},bt=new nr.a(g.current,mt);O.current=mt,y((function(){return bt}))}}),[t,a,o,i,_,d,w,E,h,p,f]),Object(n.useEffect)((function(){if(_&&O.current){var e=ir({chartData:o,index:0,localeDateString:w,localeTimeString:E}),a=t.d3pieSubtitle,n=void 0===a?f:a,r=t.d3pieFooter,i=void 0===r?e:r,s=!!u&&-1===c,l=o.result.data.length-c-1,d=l<0||l>=o.result.data.length?0:l,p=Object(G.a)(o.result.labels).map((function(e,t){return{label:e,value:o.result.data[d][e],color:h[t]}})).filter((function(e){return null!==e.value&&e.value>0})),g=p.length>0&&!s?p:[or];_.options.header.subtitle.text=n,_.options.footer.text=i,_.options.data.content=g,_.destroy(),_.recreate()}}),[t,o,_,c,u,w,E,h,f]),r.a.createElement("div",{ref:g,id:l,className:s})},lr=(a(511),function(e){var t=e.attributes,a=e.chartContainerElement,o=e.chartData,i=e.chartMetadata,s=e.chartElementClassName,l=e.chartElementId,c=e.orderedColors,u=Object(n.useRef)(null),d=Object(n.useState)(),h=Object(A.a)(d,2),p=h[0],f=h[1],m=Object(n.useRef)();return Object(n.useLayoutEffect)((function(){if(u.current&&!p){var e=window.$(u.current),n=a.getBoundingClientRect(),r=n.width,o=n.height,i=t.peityStrokeWidth,s=void 0===i?1:i,l={stroke:window.NETDATA.themes.current.foreground,strokeWidth:s,width:Math.floor(r),height:Math.floor(o),fill:window.NETDATA.themes.current.foreground};f((function(){return e})),m.current=l}}),[t,p,a]),Object(n.useLayoutEffect)((function(){if(p&&m.current){var e=Object(g.a)({},m.current,{stroke:c[0],fill:c[0]===m.current.stroke?m.current.fill:"line"===i.chart_type?window.NETDATA.themes.current.background:$n(c[0],window.NETDATA.chartDefaults.fill_luminance)});p.peity("line",e),m.current=e}}),[p,o,i,c]),r.a.createElement("div",{ref:u,id:l,className:s},o.result)}),cr=function(e){var t=e.attributes,a=e.chartData,o=e.chartMetadata,i=e.chartElementClassName,s=e.chartElementId,l=e.orderedColors,c=e.unitsCurrent,u=Object(n.useRef)(null),d=Object(n.useRef)(),h=Object(n.useState)(!1),p=Object(A.a)(h,2),f=p[0],g=p[1];(tr||(tr=new Promise((function(e,t){setTimeout((function(){var a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src="https://www.google.com/jsapi",a.onerror=function(){t(Error("error loading google.js api"))},a.onload=function(){e("ok")};var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n)}),1e3)})).then((function(){return new Promise((function(e){window.google.load("visualization","1.1",{packages:["corechart","controls"],callback:e})}))})))).then((function(){g(!0)}));var m=Object(n.useRef)();return Object(n.useLayoutEffect)((function(){if(d.current&&m.current){var e=new window.google.visualization.DataTable(a.result);d.current.draw(e,m.current)}}),[a]),Object(n.useLayoutEffect)((function(){if(u.current&&!m.current&&f){var e=new window.google.visualization.DataTable(a.result),n=t.title,r=void 0===n?o.title:n,i=o.chart_type,s=new Map([["area",window.NETDATA.options.current.color_fill_opacity_area],["stacked",window.NETDATA.options.current.color_fill_opacity_stacked]]).get(i)||.3,h={colors:l,lineWidth:"line"===i?2:1,title:r,fontSize:11,hAxis:{viewWindowMode:"maximized",slantedText:!1,format:"HH:mm:ss",textStyle:{fontSize:9},gridlines:{color:"#EEE"}},vAxis:{title:c,viewWindowMode:"area"===i||"stacked"===i?"maximized":"pretty",minValue:"stacked"===i?void 0:-.1,maxValue:"stacked"===i?void 0:.1,direction:1,textStyle:{fontSize:9},gridlines:{color:"#EEE"}},chartArea:{width:"65%",height:"80%"},focusTarget:"category",annotation:{1:{style:"line"}},pointsVisible:!1,titlePosition:"out",titleTextStyle:{fontSize:11},tooltip:{isHtml:!1,ignoreBounds:!0,textStyle:{fontSize:9}},curveType:"function",areaOpacity:s,isStacked:"stacked"===i},p=["area","stacked"].includes(o.chart_type)?new window.google.visualization.AreaChart(u.current):new window.google.visualization.LineChart(u.current);p.draw(e,h),m.current=h,d.current=p}}),[t,a.result,o,u,f,l,c]),r.a.createElement("div",{ref:u,id:s,className:i})},ur=function(e){var t=e.attributes,a=e.chartData,n=e.chartElementClassName,o=e.chartElementId,i=t.textOnlyDecimalPlaces,s=void 0===i?1:i,l=t.textOnlyPrefix,c=void 0===l?"":l,u=t.textOnlySuffix,d=void 0===u?"":u,h=Math.pow(10,s),p=Math.round(a.result[0]*h)/h,f=0===a.result.length?"":c+p+d;return r.a.createElement("div",{id:o,className:n},f)},dr=a(37),hr=Math.round(16/9),pr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:11,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e-t},fr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:hr;return Math.sqrt(e.length/t)},gr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:hr;return e*t},mr=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:11;return Math.floor(t%e)*a},br=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:11;return Math.floor(t/e)*a},vr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:11;return Math.ceil(e)*t},_r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:11,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:11;return Math.ceil(e)*t+a},yr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:11;return Math.floor(e/t)},Or=function(e,t,a,n){var r=n.onMouseenter,o=n.onMouseout,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=i.cellSize,l=i.cellPadding,c=-1,u=function(a){var n=e.getBoundingClientRect(),r=mr(t,a,s),o=br(t,a,s),i=n.left+r,c=n.top+o,u=pr(s,l);return{index:a,left:i,top:c,right:i+u,bottom:c+u,width:u,height:u,offsetX:r,offsetY:o}},d=function(){o(u(c)),c=-1},h=function(e){var n=e.offsetX,o=e.offsetY,i=yr(n,s),l=yr(o,s)*t+i;l!==c&&(-1!==c&&d(),l>=a||(r(u(l)),c=l))};return e.addEventListener("mousemove",h),e.addEventListener("mouseout",d),function(){e.removeEventListener("mousemove",h),e.removeEventListener("mouseout",d)}},xr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.aspectRatio,n=t.cellSize,r=fr(e,a),o=gr(r,a);return vr(o,n)},wr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.aspectRatio,n=t.cellSize,r=t.padding,o=fr(e,a),i=gr(o,a),s=vr(i,n),l=_r(o,n,r);return{width:s,height:l,columns:Math.ceil(i)}},Er=["rgba(198, 227, 246, 0.9)","rgba(14, 154, 255, 0.9)"],Sr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Er;return Object(er.scaleLinear)().domain(Object(er.extent)(e,(function(e){return e}))).range(t)},Cr=function(e){return e.getBoundingClientRect().top/window.innerHeight>.5?"top":"bottom"},Ar={top:{bottom:"top"},bottom:{top:"bottom"}},kr=function(e){var t=e.data,a=e.renderTooltip,o=Object(dr.a)(e,["data","renderTooltip"]),i=Object(n.useRef)(),s=Object(n.useRef)(),l=Object(n.useRef)(),c=Object(n.useState)(null),u=Object(A.a)(c,2),d=u[0],h=u[1],p=Object(n.useRef)(!1),f=Object(n.useRef)(-1),g=Object(n.useRef)(),m=function(){l.current.deactivateBox(),h(null),p.current=!1,f.current=-1},b=function(){return requestAnimationFrame((function(){h((function(e){return p.current||-1!==f.current&&f.current===(null===e||void 0===e?void 0:e.index)||m(),e}))}))};Object(n.useLayoutEffect)((function(){return l.current=function(e,t){var a=t.onMouseenter,n=t.onMouseout,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.cellSize,i=r.cellPadding,s=r.cellStroke,l=void 0===s?2:s,c=r.lineWidth,u=void 0===c?1:c,d=r.colorRange,h=e.getContext("2d"),p=-1,f=function(){},g={},m=function(){},b=function(){f(),m(),h.clearRect(0,0,e.width,e.height),h.beginPath()},v=function(t){var s=t.data,c=wr(s,r),v=c.width,_=c.height,y=c.columns;e.width=parseInt(v),e.height=parseInt(_),b(),m();var O=Sr(s,d),x=function(e,t){h.fillStyle=O(e);var a=mr(y,t,o),n=br(y,t,o);u&&l&&h.clearRect(a-u,n-u,pr(o,i)+l,pr(o,i)+l),h.fillRect(a,n,pr(o,i),pr(o,i))};s.forEach(x),m=Or(e,y,s.length,{onMouseenter:a,onMouseout:n},r),f=function(){-1!==p&&x(s[p],p)},g=function(e){f(),p=e;var t=mr(y,e,o),a=br(y,e,o);u&&l&&(h.lineWidth=u,h.strokeStyle="#fff",h.strokeRect(t+u,a+u,pr(o,i)-l,pr(o,i)-l))}};return{clear:b,update:v,activateBox:function(e){return g(e)},deactivateBox:function(){return f()}}}(s.current,{onMouseenter:function(e){var t=e.index,a=Object(dr.a)(e,["index"]);f.current=t,l.current.activateBox(t),g.current=setTimeout((function(){h({target:{getBoundingClientRect:function(){return a}},index:t,rect:a})}),600)},onMouseout:function(){f.current=-1,clearTimeout(g.current),b()}},o),function(){return l.current.clear()}}),[]),Object(n.useLayoutEffect)((function(){d&&i.current&&i.current.labels[d.index]!==t.labels[d.index]&&m(),i.current=t,l.current.update(t)}),[t]);var v=Object(n.useCallback)((function(){p.current=!0}),[]),_=Object(n.useCallback)((function(){p.current=!1,b()}),[]),y=d&&Cr(d.target);return r.a.createElement(n.Fragment,null,r.a.createElement("canvas",{"data-testid":"groupBox",ref:s}),d&&a&&r.a.createElement(Z.h,{align:Ar[y],target:d.target,onMouseEnter:v,onMouseLeave:_},a(d.index,y)))},jr=$.d.span.withConfig({displayName:"groupBoxes__Title",componentId:"sc-11qnspu-0"})(["white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;"]),Tr=Object($.d)(Z.j).attrs({as:Z.D,gap:1}).withConfig({displayName:"groupBoxes__Label",componentId:"sc-11qnspu-1"})(["cursor:default;&:hover{font-weight:bold;}"]),Dr=function(e){var t=e.data,a=e.label,o=e.groupIndex,i=e.renderGroupPopover,s=e.renderBoxPopover,l=Object(n.useRef)(),c=l.current&&Cr(l.current),u=Object(n.useMemo)((function(){return{maxWidth:"".concat(xr(t.data),"px")}}),[t]),d=s&&function(e,t){return s({group:a,groupIndex:o,align:t,index:e})},h=i&&function(){return i({group:a,groupIndex:o,align:c})};return r.a.createElement(Z.j,{"data-testid":"groupBoxWrapper",column:!0,alignItems:"start",gap:1,margin:[0,4,0,0]},r.a.createElement(Z.A,{content:h,align:c,plain:!0},(function(e){var n=e.isOpen,o=e.ref,i=Object(dr.a)(e,["isOpen","ref"]);return r.a.createElement(Tr,Object.assign({"data-testid":"groupBoxWrapper-title",ref:function(e){l.current=e,o(e)},strong:n,style:u},i),r.a.createElement(jr,null,a),t.data.length>3&&r.a.createElement("span",null,"(",t.data.length,")"))})),r.a.createElement(kr,{data:t,renderTooltip:d}))},Pr=function(e){var t=e.data,a=e.labels,n=e.renderBoxPopover,o=e.renderGroupPopover;return r.a.createElement(Z.j,{"data-testid":"groupBoxes",flexWrap:!0,overflow:{vertical:"auto"},flex:!0},a.map((function(e,a){return t[a].data.length?r.a.createElement(Dr,{key:e,label:e,groupIndex:a,data:t[a],renderGroupPopover:o,renderBoxPopover:n}):null})))},Mr=Object($.d)(Z.j).attrs({width:"120px",height:"12px",round:!0}).withConfig({displayName:"legend__LinearColorScaleBar",componentId:"sc-7zc5gz-0"})(["background:linear-gradient(to right,#c6e3f6,#0e9aff);"]),Lr=function(e){var t=e.children;return r.a.createElement(Z.j,{"data-testid":"groupBox-legend",gap:4,alignItems:"center"},r.a.createElement(Z.E,{strong:!0},t),r.a.createElement(Z.j,{gap:2,alignItems:"center"},r.a.createElement(Z.E,null,"0%"),r.a.createElement(Mr,null),r.a.createElement(Z.E,null,"100%")))},Ir={k8s_cluster_id:{icon:"cluster",title:"Cluster Id"},k8s_node_name:{icon:"nodes_hollow",title:"Node"},k8s_namespace:{icon:"cluster_spaces",title:"Namespace"},k8s_controller_kind:{icon:"controller_kind",title:"Controller Kind"},k8s_controller_name:{icon:"controller_name",title:"Controller Name"},k8s_pod_name:{icon:"pod",title:"Pod Name"},k8s_container_name:{icon:"container",title:"Container"}},Nr=Object.keys(Ir),Rr=function(e){return e in Ir?Ir[e]:{title:e.replace(/_./g,(function(e){return" ".concat(e[1].toUpperCase())})).replace(/^k8s /,""),icon:"node"}},Br=function(){return r.a.createElement(Z.j,{height:"1px",width:"100%",background:"separator"})},Fr=function(e){return r.a.createElement(Z.m,Object.assign({color:"bright",wordBreak:"break-all","data-testid":"k8sPopover-header"},e))},Hr=Object($.d)(Z.b).attrs((function(e){return{flavour:"borderless",neutral:!0,themeType:"dark",className:"btn",disabled:e.active,"data-testid":"k8sPopoverChart-tab"}})).withConfig({displayName:"tabs__TabButton",componentId:"sc-18vk2nn-0"})(["&&&{height:initial;width:initial;padding:2px 20px;"," color:","}"],(function(e){var t=e.active,a=e.theme;return t&&"border-bottom: 3px solid ".concat(Object(Z.H)("bright")({theme:a}),";")}),(function(e){var t=e.active,a=e.theme;return Object(Z.H)(t?"bright":"separator")({theme:a})})),zr=function(e){var t=e.value,a=e.onChange,n=Object(dr.a)(e,["value","onChange"]);return r.a.createElement(Z.j,Object.assign({"data-testid":"k8sPopoverChart-tabs"},n),r.a.createElement(Hr,{label:"Context",active:"context"===t,onClick:function(){return a("context")}}),r.a.createElement(Hr,{label:"Metrics",active:"metrics"===t,onClick:function(){return a("metrics")}}))},Ur=Object($.d)(Object(Z.K)(Z.b)).attrs({icon:"chevron_right_s",label:"More",flavour:"borderless",neutral:!0,themeType:"dark",className:"btn",alignItems:"baseline",gap:1,direction:"rowReverse"}).withConfig({displayName:"section__ExpandButton",componentId:"z6mskd-0"})(["&&&{padding:0;margin:0;font-weight:normal;height:initial;width:initial;svg{height:6px;width:6px;position:initial;}}"]),Gr=function(e){var t=e.title,a=e.onExpand,n=e.children,o=e.noBorder;return r.a.createElement(Z.j,{gap:3,padding:[0,0,3],border:!o&&{side:"bottom",color:"separator"},column:!0,"data-testid":"k8sPopoverSection"},r.a.createElement(Z.j,{justifyContent:"between","data-testid":"k8sPopoverSection-header"},r.a.createElement(Z.n,{color:"border",wordBreak:"break-all"},t),a&&r.a.createElement(Ur,{onClick:a})),r.a.createElement(Z.j,{gap:4,column:!0,"data-testid":"k8sPopoverSection-content"},n))},Wr=a(176),Vr=a(616),Yr=function(e,t,a){var n,r;"string"===typeof e.width?n=e.width:"number"===typeof e.width&&(n="".concat(e.width.toString(),"px")),void 0===t.aspectRatio&&("string"===typeof e.height?r=e.height:"number"===typeof e.height&&(r="".concat(e.height.toString(),"px")));var o="bottom"===e.legendPosition,i=e.heightId?function(e,t){var a=localStorage.getItem("".concat(cn.a).concat(e));return a?Number.isNaN(Number(a))?null:"".concat(t?Number(a)+Ba.a:a,"px"):null}(e.heightId,o):null;if(i&&(r=i.replace(/"/g,"")),a){var s=o?.5*window.innerHeight:.4*window.innerHeight;r="".concat(s,"px")}var l=window.NETDATA.chartDefaults.min_width;return{height:r,width:n,minWidth:null===l?void 0:l}},Xr={root:null,rootMargin:"0px",threshold:void 0},Kr=function(){var e=[],t=new IntersectionObserver((function(t){t.forEach((function(t){var a,n=t.isIntersecting,r=t.target,o=null===(a=e.find((function(e){return e.element===r})))||void 0===a?void 0:a.callback;o&&o(n)}))}),Xr);return{subscribe:function(a,n){t.observe(a),e=e.concat({element:a,callback:n})},unsubscribe:function(t){e=e.filter((function(e){return e.element!==t}))}}}(),Zr=function(e){var t=e.attributes;return r.a.createElement("span",{style:{position:"absolute",opacity:0,width:0}},t.id)},qr=localStorage.getItem("wipe-chart-state"),$r=function(e){var t,a=e.attributes,o=e.chartUuid,i=e.children,s=e.portalNode,l=Object(la.a)();Object(n.useEffect)((function(){return function(){l(Object(_e.a)({id:o}))}}),[]);var c=ya[a.chartLibrary],u=Object(n.useState)(!1),d=Object(A.a)(u,2),h=d[0],p=d[1],f=(null===(t=Object(la.b)(ue.d))||void 0===t?void 0:t.chartId)===a.id;Object(n.useLayoutEffect)((function(){if(!h){var e=f&&"dygraph"===a.chartLibrary&&c.hasLegend(a),t=Yr(a,c,e);Object(Vr.a)((function(e,t){e&&s.style.setProperty(t,e)}),t),s.className=c.containerClass(a),p(!0)}}),[a,c,h,f,s,p]);var g=Object(la.b)(ue.j),m=Object(n.useRef)(),b=function(e,t){var a=Object(n.useState)(!1),r=Object(A.a)(a,2),o=r[0],i=r[1],s=Object(n.useRef)(o);return Object(n.useEffect)((function(){return"function"===typeof IntersectionObserver&&Kr.subscribe(e,(function(e){s.current!==e&&(t.current&&(t.current.style.visibility=e?"visible":"hidden"),s.current=e,i(e))})),function(){Kr.unsubscribe(e)}}),[t,e]),o}(s,m),v=Object(la.b)(ue.t)?750:100,_=Object(n.useState)(!b),y=Object(A.a)(_,2),O=y[0],x=y[1];Object(ma.a)((function(){x(!b)}),v,[b]);var w=!b||O,E=Object(n.useRef)(b);if(m.current&&E.current!==b&&(E.current=b),Object(n.useEffect)((function(){!ve&&w&&qr&&l(Object(_e.a)({id:o}))}),[o,l,w]),ve)return i;if(w){if(g)return r.a.createElement(Zr,{attributes:a});if(!m.current){var S=Array.from(s.children).map((function(e){return function(e){var t=e.cloneNode(!0),a=t.querySelectorAll("canvas");return e.querySelectorAll("canvas").forEach((function(e,t){var n=a[t],r=n.getContext("2d");n.width=e.width,n.height=e.height,r&&r.drawImage(e,0,0)})),t}(e)})),C=document.createElement("div");C.style.visibility="hidden",S.forEach((function(e){C.appendChild(e)})),m.current=C}return r.a.createElement(r.a.Fragment,null,r.a.createElement(Zr,{attributes:a}),r.a.createElement("div",{ref:function(e){e&&m.current&&e.appendChild(m.current)}}))}return!g&&m.current&&(m.current=void 0),i},Jr=function(e){var t=e.attributes,a=e.chartMetadata,n=e.chartUuid,o=e.dropdownMenu,i=e.portalNode,s=e.renderCustomElementForDygraph,l=e.onAttributesChange,c=e.uuid;return r.a.createElement($r,{attributes:t,portalNode:i,chartUuid:n},r.a.createElement(Uo,{attributes:t,chartUuid:n,renderCustomElementForDygraph:s,onAttributesChange:l,dropdownMenu:o,externalChartMetadata:a,portalNode:i,uuid:c}))},Qr=null,eo={sparklines_registry:{},os:"unknown",menu:{},submenu:{},context:{},sparkline:function(e,t,a){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",r=arguments.length>4?arguments[4]:void 0;if(null===Qr||"undefined"===typeof Qr.charts)return"";if("undefined"===typeof Qr.charts[t])return"";if("undefined"===typeof Qr.charts[t].dimensions)return"";if("undefined"===typeof Qr.charts[t].dimensions[a])return"";var o="".concat(t,".").concat(a);return"undefined"===typeof this.sparklines_registry[o]?this.sparklines_registry[o]={count:1}:this.sparklines_registry[o].count+=1,o="".concat(o,".").concat(this.sparklines_registry[o].count),"".concat(e,'<div class="netdata-container" data-netdata="').concat(t,'" data-after="-120"\n data-width="25%" data-height="15px" data-chart-library="dygraph"\n data-dygraph-theme="sparkline" data-dimensions="').concat(a,'"\n data-show-value-of-').concat(a,'-at="').concat(o,'"></div>\n (<span id="').concat(o,'" style="display: inline-block; min-width: 50px; text-align: right;">\n X</span>').concat(n,")").concat(r)},gaugeChart:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return"".concat('<div class="netdata-container" data-netdata="CHART_UNIQUE_ID" data-dimensions="').concat(a,'"')+' data-chart-library="gauge" data-gauge-adjust="width"'+' data-title="'.concat(e,'"')+' data-width="'.concat(t,'"')+' data-before="0" data-after="-CHART_DURATION" data-points="CHART_DURATION"'+' data-colors="'.concat(n,'"')+' role="application"></div>'},anyAttribute:function(e,t,a,n,r){if("undefined"!==typeof e[a]){var o=e[a],i=(r?Object(g.a)({},o,{},o[r]):o)[t];return void 0===i?n:"function"===typeof i?i(eo.os):i}return n},menuTitle:function(e){if(e.sectionTitle)return e.sectionTitle;if("undefined"!==typeof e.menu_pattern){var t=e.type||e.id.split(".")[0];return"".concat(this.anyAttribute(this.menu,"title",e.menu_pattern,e.menu_pattern).toString()," ").concat(t.slice(-(t.length-e.menu_pattern.length-1)).toString()).replace(/_/g," ")}return this.anyAttribute(this.menu,"title",e.menu,e.menu).toString().replace(/_/g," ")},menuIcon:function(e){return"undefined"!==typeof e.menu_pattern?this.anyAttribute(this.menu,"icon",e.menu_pattern,'<i class="fas fa-puzzle-piece"></i>').toString():this.anyAttribute(this.menu,"icon",e.menu,'<i class="fas fa-puzzle-piece"></i>')},menuInfo:function(e){return"undefined"!==typeof e.menu_pattern?this.anyAttribute(this.menu,"info",e.menu_pattern,null):this.anyAttribute(this.menu,"info",e.menu,null)},menuHeight:function(e){return"undefined"!==typeof e.menu_pattern?this.anyAttribute(this.menu,"height",e.menu_pattern,1):this.anyAttribute(this.menu,"height",e.menu,1)},submenuTitle:function(e,t){var a="".concat(e,".").concat(t),n=this.anyAttribute(this.submenu,"title",a,t).toString().replace(/_/g," ");if(n.length>28){var r=n.substring(0,13),o=n.substring(n.length-12,n.length);return"".concat(r,"...").concat(o)}return n},submenuInfo:function(e,t){var a="".concat(e,".").concat(t);return this.anyAttribute(this.submenu,"info",a,null)},submenuHeight:function(e,t,a){var n="".concat(e,".").concat(t);return this.anyAttribute(this.submenu,"height",n,1)*a},contextInfo:function(e,t){var a=this.anyAttribute(this.context,"info",e,null,t);return null!==a?'<div class="shorten dashboard-context-info"\n role="document">'.concat(a,"</div>"):""},contextValueRange:function(e){if("undefined"!==typeof this.context[e]&&"undefined"!==typeof this.context[e].valueRange)try{return JSON.parse(this.context[e].valueRange)}catch(t){return[null,null]}return[null,null]},contextHeight:function(e,t){return"undefined"!==typeof this.context[e]&&"undefined"!==typeof this.context[e].height?t*this.context[e].height:t},contextDecimalDigits:function(e,t){return"undefined"!==typeof this.context[e]&&"undefined"!==typeof this.context[e].decimalDigits?this.context[e].decimalDigits:t}};window.netdataDashboard=eo;var to,ao,no,ro=Object($.d)(Z.B).withConfig({displayName:"chartOverview__Title",componentId:"sc-1ga681p-0"})(["text-overflow:ellipsis;max-width:120px;overflow-x:hidden;"]),oo={avg:"Average",sum:"Sum",min:"Min",max:"Max"},io=Object(n.memo)((function(e){var t,a=e.id,n=e.units,o=e.aggrMethod,i=e.displayedIndex,s=Object(la.b)((function(e){return Object(Ea.f)(e,{id:a})})),l="number"===typeof i?s.result[i]:s.view_latest_values[0],c=Ra({attributes:{},data:s,units:n,unitsCommon:null,unitsDesired:null,uuid:a}),u=c.legendFormatValue,d=c.unitsCurrent,h=function(e){return"".concat(oo[e])||""}(o);return r.a.createElement(Z.B,{wordBreak:"keep-all",color:"bright",margin:[0,0,0,"auto"],"data-testid":"k8sPopoverChart-chartValue"},h&&r.a.createElement(Z.B,{margin:[0,1,0,0],color:"separator","data-testid":"k8sPopoverChart-chartValue-aggr"},h),u(l),"percentage"===(t=d)?"%":" ".concat(t.replace(/milliseconds/,"ms")))})),so=function(e){var t=e.id,a=Object(dr.a)(e,["id"]),n=Object(la.b)((function(e){return Object(Ea.f)(e,{id:t})}));return n&&0!==n.result.length?r.a.createElement(io,Object.assign({id:t},a)):null},lo=Object(n.memo)((function(e){var t=e.id,a=e.chartMetadata,n=e.aggrMethod,o=e.displayedIndex,i=a.units,s=a.context.replace(/cgroup\./,""),l=eo.menuIcon(a);return r.a.createElement(Z.j,{gap:2,"data-testid":"k8sPopoverChart-overview"},r.a.createElement(Z.B,{color:"bright",dangerouslySetInnerHTML:{__html:l}}),r.a.createElement(ro,{color:"bright","data-testid":"k8sPopoverChart-title"},s),r.a.createElement(so,{id:t,units:i,aggrMethod:n,displayedIndex:o}))})),co=Object(n.memo)((function(e){var t=e.groupLabel,a=e.postGroupLabel,o=e.id,i=e.attributes,s=e.relatedIndex,l=Object(n.useContext)($.a),c=Object(n.useRef)(),d=Object(n.useState)(),h=Object(A.a)(d,2),p=h[0],f=h[1],m=Object(n.useMemo)((function(){return Object(Wr.b)(400,f)}),[]),b=Object(n.useState)(),v=Object(A.a)(b,2)[1];Object(n.useLayoutEffect)((function(){v(!0)}),[]);var _=i.relatedCharts[s],y=_.chartMetadata,O=_.attributes,x=Object(n.useMemo)((function(){return{id:y.id,width:"100%",height:"60px",chartLibrary:"sparkline",sparklineLineWidth:"2px",sparklineLineColor:Object(Z.H)("border")({theme:l}),sparklineFillColor:Object(Z.H)("disabled")({theme:l}),sparklineSpotRadius:0,sparklineDisableTooltips:!0,sparklineOnHover:function(e){return m(null===e||void 0===e?void 0:e.x)},httpMethod:"POST",host:i.host,nodeIDs:i.nodeIDs,dimensions:O.dimensions,aggrMethod:O.aggrMethod,labels:Object(g.a)(Object(u.a)({k8s_cluster_id:[y.chartLabels.k8s_cluster_id[0]]},i.groupBy,[t]),a&&Object(u.a)({},i.postGroupBy,[a]))}}),[y,i]);return r.a.createElement(Z.j,{gap:2,column:!0,"data-testid":"k8sPopoverChart"},r.a.createElement("div",{ref:c,style:{height:"60px",width:"100%"},"data-testid":"k8sPopoverChart-container"},c.current&&r.a.createElement(Jr,{chartUuid:o,attributes:x,chartMetadata:y,portalNode:c.current})),r.a.createElement(lo,{id:o,aggrMethod:x.aggrMethod,chartMetadata:y,displayedIndex:p}))})),uo=Object($.d)(Z.o).attrs({margin:[0,0,0,"auto"],color:"bright",width:"10px",height:"10px",alignSelf:"center",name:"nav_arrow_goto",role:"button",title:"Go to node","data-testid":"k8sPopoverItem-externalButton"}).withConfig({displayName:"item__ExternalButton",componentId:"sc-351vj-0"})(["cursor:pointer;"]),ho=function(e){var t=e.icon,a=e.title,n=e.secondary,o=e.onClick;return r.a.createElement(Z.j,{gap:1,alignItems:"start","data-testid":"k8sPopoverItem"},r.a.createElement(Z.j,{width:"22px",height:"22px","data-testid":"k8sPopoverItem-icon"},r.a.createElement(Z.o,{name:t,color:"bright",margin:[0,1,0,0],width:"22px",height:"22px"})),r.a.createElement(Z.B,{color:"bright","data-testid":"k8sPopoverItem-title"},a),n&&r.a.createElement(Z.B,{color:"border",wordBreak:"break-all","data-testid":"k8sPopoverItem-detail"},n),o&&r.a.createElement(uo,{onClick:o}))},po=function(e){var t=e.date,a=e.title,n=Object(sa.b)(),o=n.localeDateString,i=n.localeTimeString;return r.a.createElement(ho,{icon:"around_clock",title:a,secondary:"".concat(o(t)," | ").concat(i(t))})},fo=function(e){var t=e.before,a=e.after;return r.a.createElement(Gr,{title:"Time"},r.a.createElement(po,{title:"From",date:a}),r.a.createElement(po,{title:"To",date:t}))},go=function(e){var t=e.groupLabel,a=e.postGroupLabel,n=e.attributes,o=e.viewAfter,i=e.viewBefore;return r.a.createElement(Z.j,{gap:3,column:!0,width:"100%","data-testid":"k8sPopoverMetrics"},r.a.createElement(fo,{after:o,before:i}),r.a.createElement(Gr,{title:"Metrics",noBorder:!0},r.a.createElement(Z.j,{gap:3,column:!0,"data-testid":"k8sPopoverMetrics-container"},n.relatedCharts.map((function(e,o){var i=e.chartMetadata;return r.a.createElement(co,{key:i.id,id:[t,a,n.id,i.id].join("|"),attributes:n,relatedIndex:o,groupLabel:t,postGroupLabel:a})})))))},mo=function(e){var t=e.labelId,a=e.items,n=e.onExpand,o=e.onItemClick,i=Object(dr.a)(e,["labelId","items","onExpand","onItemClick"]),s=Rr(t),l=s.title,c=s.icon,u=a.slice(0,3),d=a.length>3,h=d?"".concat(l," (").concat(a.length,")"):l;return r.a.createElement(Gr,Object.assign({title:h,onExpand:d&&n},i),u.map((function(e){return r.a.createElement(ho,{key:e,icon:c,title:e,onClick:o&&function(){return o(e)}})})))},bo=Object(n.memo)((function(e){var t=e.chartLabels,a=e.onExpand,n=e.onNodeClick,o=function(e){e=Object(g.a)({},e);var t=Nr.reduce((function(t,a){return a in e?(delete e[a],[].concat(Object(C.a)(t),[a])):t}),[]);return[].concat(Object(C.a)(t),Object(C.a)(Object.keys(e)))}(t);return r.a.createElement(Z.j,{gap:3,column:!0,width:"100%","data-testid":"k8sPopoverContext"},o.map((function(e,i){return r.a.createElement(mo,{key:e,labelId:e,items:t[e],onExpand:function(){return a(e)},noBorder:i===o.length-1,onItemClick:"k8s_node_name"===e&&n})})))})),vo=Object($.d)(Object(Z.K)(Z.b)).attrs({flavour:"borderless",neutral:!0,themeType:"dark",className:"btn",alignItems:"start",gap:1}).withConfig({displayName:"list__StyledButton",componentId:"sc-11aix5x-0"})(["&&&{padding:0;margin:0;height:initial;width:initial;svg{height:18px;width:18px;position:initial;}}"]),_o=function(e){var t=e.labelId,a=e.items,n=e.onBack,o=e.onItemClick,i=Rr(t),s=i.title,l=i.icon;return r.a.createElement(Z.j,{height:"100%",gap:3,"data-testid":"k8sPopoverList",column:!0},r.a.createElement(Fr,null,r.a.createElement(vo,{label:"".concat(s," (").concat(a.length,")"),icon:"chevron_left",onClick:n,"data-testid":"k8sPopoverList-back"})),r.a.createElement(Br,null),r.a.createElement(Z.j,{gap:3,overflow:{vertical:"auto",horizontal:"hidden"},column:!0,"data-testid":"k8sPopoverList-container"},a.map((function(e){return r.a.createElement(ho,{key:e,icon:l,title:e,onClick:o&&function(){return o(e)}})}))))},yo=function(e){return r.a.createElement(Z.i,Object.assign({background:["transparent","popover"],padding:[2,4],width:"322px",height:"422px"},e))},Oo=function(e){var t=e.label,a=e.value,n=e.onChange,o=e.children;return r.a.createElement(Z.j,{height:"100%",column:!0},r.a.createElement(Fr,null,t),r.a.createElement(zr,{value:a,onChange:n,margin:[4,0,0,0]}),r.a.createElement(Br,null),r.a.createElement(Z.j,{gap:3,overflow:{vertical:"auto",horizontal:"hidden"},margin:[4,0,0,0]},o))},xo=function(e){var t=e.title,a=e.groupLabel,o=e.postGroupLabel,i=e.chartLabels,s=e.attributes,l=e.viewBefore,c=e.viewAfter,u=Object(dr.a)(e,["title","groupLabel","postGroupLabel","chartLabels","attributes","viewBefore","viewAfter"]),d=Object(n.useState)("context"),h=Object(A.a)(d,2),p=h[0],f=h[1],g="context"!==p&&"metrics"!==p,m=s.onNodeClick;return r.a.createElement(yo,Object.assign({"data-testid":"k8sPopover"},u),g&&r.a.createElement(_o,{labelId:p,items:i[p],attributes:s,onBack:function(){return f("context")},onItemClick:"k8s_node_name"===p&&m}),!g&&r.a.createElement(Oo,{label:t,value:p,onChange:f},"context"===p&&r.a.createElement(bo,{chartLabels:i,onExpand:f,onNodeClick:m}),"metrics"===p&&r.a.createElement(go,{groupLabel:a,postGroupLabel:o,attributes:s,viewAfter:c,viewBefore:l})))},wo=function(e){var t=e.chartData,a=e.chartMetadata,o=e.attributes,i=e.viewAfter,s=e.viewBefore,l=e.hoveredRow,c=e.hoveredX,d=e.showUndefined,h=o.filteredRows,p=Object(n.useMemo)((function(){return function(e,t){var a=e.keys,n=e.labels,r=e.groupBy,o=e.postGroupBy,i=e.aggrGroups,s=e.postAggregated,l=a[r],c=a[o],d=(t||Object(C.a)(Array(l.length)).map((function(e,t){return t}))).reduce((function(e,t){var a=l[t];a in e||(e[a]={labels:[],indexes:[],chartLabels:[],postAggregated:[]});var r=e[a];r.indexes.push(t),r.labels.push(c[t]),r.postAggregated.push(s[t]);var o=i.reduce((function(e,a){return n[a][t]?Object(g.a)({},e,Object(u.a)({},a,n[a][t])):e}),{});return r.chartLabels.push(o),e}),{}),h=Object.keys(d).sort((function(e,t){return d[t].indexes.length-d[e].indexes.length})),p=h.map((function(e){return d[e]})),f=p.map((function(e){return i.reduce((function(t,a){var n=new Set(e.chartLabels.reduce((function(e,t){return t[a]?[].concat(Object(C.a)(e),Object(C.a)(t[a])):e}),[]));return 0===n.size?t:Object(g.a)({},t,Object(u.a)({},a,Array.from(n)))}),{})}));return{labels:h,data:p,chartLabels:f}}(t,h)}),[h,t]),f=p.data,m=p.labels,b=p.chartLabels,v=t.id,_=t.result.data,y=t.groupBy,O=t.postGroupBy,x=Object(n.useMemo)((function(){return f.map((function(e){return{labels:e.labels,data:-1===l||l>_.length||!(l in _)?e.postAggregated:e.indexes.map((function(e){return _[l][e+1]}))||[]}}))}),[_,f,l]);return r.a.createElement(Z.j,{column:!0,width:"100%",height:"100%",gap:4,padding:[4,2]},r.a.createElement(Pr,{data:x,labels:m,renderBoxPopover:function(e){var t=e.groupIndex,a=e.index,n=e.align,l=f[t].labels[a],c=Rr(O).title;return r.a.createElement(xo,{align:n,title:"".concat(c,": ").concat(l),groupLabel:m[t],postGroupLabel:l,chartLabels:f[t].chartLabels[a],attributes:o,viewBefore:s,viewAfter:i})},renderGroupPopover:function(e){var t=e.groupIndex,a=e.align,n=m[t],l=Rr(y).title;return r.a.createElement(xo,{align:a,title:"".concat(l,": ").concat(n),groupLabel:n,chartLabels:b[t],attributes:o,viewBefore:s,viewAfter:i})}}),r.a.createElement(Z.j,{"data-testid":"legend-container",justifyContent:"between"},r.a.createElement(Lr,null,v),r.a.createElement(nn,{chartMetadata:a,showUndefined:d,hoveredX:c,viewBefore:s,chartData:t})))},Eo=function(e){var t=e.attributes,a=e.chartContainerElement,o=e.chartData,i=e.chartMetadata,s=e.chartLibrary,l=e.colors,c=e.chartUuid,u=e.chartHeight,d=e.chartWidth,h=e.dimensionsVisibility,p=e.hasEmptyData,f=e.isRemotelyControlled,g=e.legendFormatValue,m=e.orderedColors,b=e.hoveredRow,v=e.hoveredX,_=e.onUpdateChartPanAndZoom,y=e.immediatelyDispatchPanAndZoom,O=e.setHoveredX,x=e.setMinMax,w=e.showLatestOnBlur,E=e.unitsCurrent,S=e.viewAfterForCurrentData,C=e.viewBeforeForCurrentData,A=Object(la.a)(),k=Object(la.b)(ue.H),j=Object(n.useCallback)((function(e){var t=e.after,a=e.before,n=e.masterID;A(Object(Ke.r)({after:t,before:a,masterID:n})),A(k?Object(Ke.s)({after:S,before:C}):Object(_e.h)({after:S,before:C,id:c}))}),[c,A,k,S,C]),T=ya[s],D=T.hasLegend,P=D(t)?va()("netdata-chart-with-legend-".concat(t.legendPosition||"right"),"netdata-".concat(s,"-chart-with-legend-right")):va()("netdata-chart","netdata-".concat(s,"-chart")),M="".concat(s,"-").concat(c,"-chart"),L=-1===b&&!w;return function(e){var t=e.attributes,a=e.chartData,r=e.chartSettings,o=e.hoveredRow,i=e.legendFormatValue,s=e.showUndefined,l=Object(n.useRef)([]);Object(dn.a)((function(){var e=t.showValueOf;if(e&&!Object(un.a)(e)){var n=a.dimension_names,r=a.dimension_ids;n.forEach((function(t,a){var n=e["show-value-of-".concat(t.toLowerCase())]||e["show-value-of-".concat(r[a].toLowerCase(),"-at")];l.current=l.current.concat(document.getElementById(n))}))}})),Object(n.useEffect)((function(){if(l.current.length){var e=r.options(t),n=e.includes("flip");if("json"===a.format&&!e.includes("objectrows")){var c=a.result.data,u=-1===o?c.length-1:o,d=c[n?u:c.length-u-1];a.dimension_names.forEach((function(e,t){var a=s||!d?"":i(d[t+1]),n=l.current[t];n&&(n.innerText="".concat(a))}))}}}),[t,a,r,o,i,s])}({attributes:t,chartData:o,chartSettings:T,hoveredRow:b,legendFormatValue:g,showUndefined:L}),"easypiechart"===s?r.a.createElement(Gn,{attributes:t,chartData:o,chartMetadata:i,chartElementClassName:P,chartElementId:M,chartLibrary:s,chartWidth:d,colors:l,chartUuid:c,dimensionsVisibility:h,isRemotelyControlled:f,key:d,legendFormatValue:g,orderedColors:m,hoveredRow:b,onUpdateChartPanAndZoom:_,setGlobalChartUnderlay:j,setMinMax:x,showUndefined:L,unitsCurrent:E,viewAfter:S,viewBefore:C}):"gauge"===s?r.a.createElement(Yn,{attributes:t,chartData:o,chartMetadata:i,chartElementClassName:P,chartElementId:M,chartLibrary:s,chartHeight:u,chartWidth:d,colors:l,chartUuid:c,dimensionsVisibility:h,isRemotelyControlled:f,legendFormatValue:g,orderedColors:m,hoveredRow:b,hoveredX:v,onUpdateChartPanAndZoom:_,setGlobalChartUnderlay:j,setHoveredX:O,setMinMax:x,showUndefined:L,unitsCurrent:E,viewAfter:S,viewBefore:C}):"sparkline"===s?r.a.createElement(Qn,{attributes:t,chartContainerElement:a,chartData:o,chartMetadata:i,chartElementClassName:P,chartElementId:M,dimensionsVisibility:h,isRemotelyControlled:f,orderedColors:m,unitsCurrent:E,viewAfterForCurrentData:S,viewBeforeForCurrentData:C}):"d3pie"===s?r.a.createElement(sr,{attributes:t,chartContainerElement:a,chartData:o,chartMetadata:i,chartElementClassName:P,chartElementId:M,dimensionsVisibility:h,hoveredRow:b,hoveredX:v,isRemotelyControlled:f,legendFormatValue:g,orderedColors:m,setMinMax:x,showUndefined:L,unitsCurrent:E}):"peity"===s?r.a.createElement(lr,{attributes:t,chartContainerElement:a,chartData:o,chartMetadata:i,chartElementClassName:P,chartElementId:M,orderedColors:m}):"google"===s?r.a.createElement(cr,{attributes:t,chartData:o,chartMetadata:i,chartElementClassName:P,chartElementId:M,orderedColors:m,unitsCurrent:E}):"textonly"===s?r.a.createElement(ur,{attributes:t,chartData:o,chartElementClassName:P,chartElementId:M}):"groupbox"===s?r.a.createElement(wo,{chartData:o,chartMetadata:i,attributes:t,viewAfter:S,viewBefore:C,hoveredRow:b,hoveredX:v,showUndefined:L}):r.a.createElement(Fn,{attributes:t,chartData:o,chartMetadata:i,chartElementClassName:P,chartElementId:M,chartLibrary:s,colors:l,chartUuid:c,dimensionsVisibility:h,hasEmptyData:p,hasLegend:D(t),isRemotelyControlled:f,orderedColors:m,immediatelyDispatchPanAndZoom:y,hoveredRow:b,hoveredX:v,onUpdateChartPanAndZoom:_,setGlobalChartUnderlay:j,setHoveredX:O,setMinMax:x,unitsCurrent:E,viewAfter:S,viewBefore:C})},So=Object(n.memo)((function(e){var t=e.attributes,a=e.attributes.chartLibrary,o=e.chartContainerElement,i=e.chartData,s=e.chartMetadata,l=e.chartHeight,c=e.chartUuid,u=e.chartWidth,d=e.defaultAfter,h=e.globalPanAndZoom,p=e.hasEmptyData,f=e.isRemotelyControlled,g=e.viewRangeForCurrentData,m=e.viewRange,b=e.selectedDimensions,v=e.setSelectedDimensions,_=e.showLatestOnBlur,y=Object(n.useContext)($.a),O=Object(la.b)(ue.N),x=ya[a].hasLegend,w=t.units,E=void 0===w?s.units:w,S=t.unitsCommon,C=t.unitsDesired,k=void 0===C?O:C,j=Object(n.useMemo)((function(){return i.dimension_names.map((function(e){return 0===b.length||b.includes(e)}))}),[i.dimension_names,b]),T=x(t)&&window.NETDATA.options.current.legend_toolbox,D=T&&window.NETDATA.options.current.resize_charts&&!t.hideResizeHandler,P=Object(la.a)(),M=Object(n.useMemo)((function(){var e=Object.values(s.dimensions).map((function(e){return e.name})),t=i.dimension_names.filter((function(t){return!e.includes(t)}));return e.concat(t)}),[i.dimension_names,s.dimensions]);Object(n.useEffect)((function(){P(Object(Ke.h)({chartContext:s.context,chartUuid:c,colorsAttribute:t.colors,commonColorsAttribute:t.commonColors,dimensionNames:M}))}),[M,t.colors,t.commonColors,s.context,c,P]);var L=Ra({attributes:t,data:i,units:E,unitsCommon:S,unitsDesired:k,uuid:c}),I=L.legendFormatValue,N=L.legendFormatValueDecimalsFromMinMax,R=L.unitsCurrent,B=Object(n.useState)(null),F=Object(A.a)(B,2),H=F[0],z=F[1],U=Object(la.b)(ue.I),G=Object(n.useCallback)((function(e,t){if(U){var a=t?{chartUuid:null,hoveredX:e}:{chartUuid:c,hoveredX:e};P(Object(Ke.u)(a))}else z(e)}),[c,P,U]),W=Object(la.b)(ue.o),V=U?W:H,Y=Object(Ve.f)(m[0])?m[0]:i.after*Ve.a,X=Object(Ve.f)(m[1])?m[1]:i.before*Ve.a,K=Object(Ve.f)(g[0])?g[0]:i.after*Ve.a,Z=Object(Ve.f)(g[1])?g[1]:i.before*Ve.a,q=i.first_entry*Ve.a,J=i.last_entry*Ve.a,Q=Object(n.useMemo)((function(){return Math.round(u/30*s.update_every*Ve.a)}),[s.update_every,u]),ee=Object(la.b)(ue.H),te=Object(ka.a)((function(e){P(Object(Ke.s)(e))}),400),ae=Object(n.useCallback)((function(){te.flush()}),[te]),ne=Object(n.useCallback)((function(e){var t=e.after,a=e.before,n=e.callback,r=e.shouldFlushImmediately,o=void 0!==r&&r,s=e.shouldForceTimeRange,l=e.shouldNotExceedAvailableRange;if(!(a<t)){var u=Q,d=Math.round(X-Y),h=Math.round(t),p=Math.round(a),f=i.view_update_every*Ve.a;if(l){var g=q+f,m=J+f;p>m&&(h-=a-m,p=m),h<g&&(h=g)}var b=(p+=f-p%f)-(h-=h%f);d-f<u&&(u=d-f);var v=!0;if(b<d&&b<u){var _=((u=Q)-b)/2;b=(p+=_)-(h-=_),v=!1}var y=2*f,O=Math.abs(p-X);Math.abs(d-b)<=y&&O<=y&&v||(ee?(te.callback({after:h,before:p,masterID:c,shouldForceTimeRange:s}),o&&te.flush()):P(Object(_e.h)({after:h,before:p,id:c,shouldForceTimeRange:s})),v&&"function"===typeof n&&n(h,p))}}),[i.view_update_every,c,P,Q,ee,q,J,te,Y,X]),re=Object(n.useCallback)((function(e,t){var a=Math.max(e,q),n=Math.min(t,J);ne({after:a,before:n,shouldForceTimeRange:!0,shouldFlushImmediately:!0})}),[ne,q,J]),oe=Object(n.useCallback)((function(e){var t=(X-Y)*ja(e),a=Y-t;a>=q&&re(a,X-t)}),[re,q,Y,X]),ie=Object(n.useCallback)((function(e){var t=X-Y,a=t*ja(e),n=Math.min(X+a,J);re(n-t,n)}),[re,J,Y,X]),se=Object(n.useCallback)((function(e){var t=.8*ja(e);if(h)if(X-Y>1.2*(J-q))re(q,J);else{var a=(X-Y)*t/2;re(Y+a,X-a)}else P(Object(Ke.q)({after:Math.round(d/(t+1))}))}),[d,P,h,re,q,J,Y,X]),le=Object(n.useCallback)((function(e){var t=.8*ja(e);if(h){var a=((X-Y)/(1-.8*t)-(X-Y))/2;re(Y-a,X+a)}else P(Object(Ke.q)({after:Math.round(d*(t+1))}))}),[d,P,h,re,Y,X]),ce=Object(n.useMemo)((function(){return Object(ue.a)({chartContext:s.context,chartUuid:c,colorsAttribute:t.colors,commonColorsAttribute:t.commonColors})}),[t.colors,t.commonColors,s,c]),de=Object(la.b)(ce),he=Object(n.useMemo)((function(){return i.dimension_names.map(Object(qe.a)(Aa.a,de))}),[i,de]);if(!de)return r.a.createElement("span",null);var pe=V&&V>=Y&&V<=X,fe=i.view_update_every*Ve.a,ge=pe?Math.floor((V-i.after*Ve.a)/fe):-1,me="bottom"===t.legendPosition,be=r.a.createElement(ln,{onToolboxLeftClick:oe,onToolboxRightClick:ie,onToolboxZoomInClick:se,onToolboxZoomOutClick:le}),ve=D&&r.a.createElement(cn.b,{chartContainerElement:o,chartUuid:c,heightId:t.heightId,isLegendOnBottom:me});return r.a.createElement(r.a.Fragment,null,r.a.createElement(Eo,{key:y.name,attributes:t,chartContainerElement:o,chartData:i,chartMetadata:s,chartLibrary:a,colors:de,chartUuid:c,chartHeight:l,chartWidth:u,dimensionsVisibility:j,hasEmptyData:p,onUpdateChartPanAndZoom:ne,immediatelyDispatchPanAndZoom:ae,isRemotelyControlled:f,legendFormatValue:I,orderedColors:he,hoveredX:V,hoveredRow:ge,setHoveredX:G,setMinMax:function(e){var t=Object(A.a)(e,2),a=t[0],n=t[1];return N(a,n)},showLatestOnBlur:_,unitsCurrent:R,viewAfterForCurrentData:K,viewBeforeForCurrentData:Z}),x(t)&&r.a.createElement(on,{attributes:t,chartUuid:c,chartMetadata:s,chartLibrary:a,colors:de,hoveredX:V,hoveredRow:ge,legendFormatValue:I,selectedDimensions:b,setSelectedDimensions:v,showLatestOnBlur:_,unitsCurrent:R,viewBefore:X,legendToolbox:be,resizeHandler:ve}),T&&!me&&be,!me&&ve)})),Co=a(631),Ao=a(625),ko=a(198),jo=$.d.div.withConfig({displayName:"styled__DropdownItem",componentId:"sc-1pvwpze-0"})(["display:flex;flex-direction:start;align-items:center;color:",";white-space:nowrap;& > svg use{fill:",";}"],Object(Z.H)(["neutral","limedSpruce"]),Object(Z.H)(["neutral","limedSpruce"])),To=$.d.span.withConfig({displayName:"styled__DropdownItemLabel",componentId:"sc-1pvwpze-1"})(["margin-left:12px;"]),Do=Object($.d)(Z.o).withConfig({displayName:"styled__DotsBtn",componentId:"sc-1pvwpze-2"})(["width:6px;height:10px;cursor:pointer;& use{fill:",";&:hover{fill:",";}}"],Object(Z.H)(["neutral","limedSpruce"]),Object(Z.H)(["neutral","regentgrey"])),Po=function(e){var t=e.attributes,a=e.chartID,o=e.chartMetadata,i=e.dropdownMenu,s=Object(n.useState)(!1),l=Object(A.a)(s,2),c=l[0],u=l[1],d=function(){u(!1)};return r.a.createElement(r.a.Fragment,null,r.a.createElement(Do,{name:"dots_2x3",onClick:function(){u(!0)}}),r.a.createElement(ko.b,null,r.a.createElement(ko.a,{open:c,onClose:d},r.a.createElement(Co.a,null,i.map((function(e){var n=e.icon,i=e.label,s=e.onClick;return r.a.createElement(Ao.b,{key:i,text:r.a.createElement(jo,null,n,r.a.createElement(To,null,i)),onClick:function(){s({attributes:t,chartMetadata:o,chartID:a}),d()}})}))))))},Mo=Object($.e)(["0%{opacity:.1;}50%{opacity:.5;}100%{opacity:.1;}"]),Lo=$.d.div.withConfig({displayName:"styled__SpinnerContainer",componentId:"sc-1foc7xt-0"})(["position:absolute;top:","px;right:","px;display:flex;"],Object(qe.a)("top"),Object(qe.a)("right")),Io=$.d.div.withConfig({displayName:"styled__Circle",componentId:"sc-1foc7xt-1"})(["width:","px;height:","px;background:",";border-radius:50%;animation:1s linear infinite both ",";"],Object(qe.a)("size"),Object(qe.a)("size"),Object(Z.H)("border"),Mo),No=Object($.d)(Io).withConfig({displayName:"styled__Circle2",componentId:"sc-1foc7xt-2"})(["animation-delay:.3s;margin-left:","px;"],Object(qe.a)("spaceBetween")),Ro=Object($.d)(Io).withConfig({displayName:"styled__Circle3",componentId:"sc-1foc7xt-3"})(["animation-delay:.6s;margin-left:","px;"],Object(qe.a)("spaceBetween")),Bo=function(e){var t=e.chartLibrary,a="dygraph"===t?33:0,n="dygraph"===t?8:0,o="dygraph"===t?10:7,i="dygraph"===t?4:2;return r.a.createElement(Lo,{top:a,right:n},r.a.createElement(Io,{size:o}),r.a.createElement(No,{size:o,spaceBetween:i}),r.a.createElement(Ro,{size:o,spaceBetween:i}))},Fo=$.d.div.withConfig({displayName:"styled__ChartDropdownContainer",componentId:"sc-177ahzb-0"})(["position:absolute;top:0;left:40px;width:20px;height:20px;z-index:",";"],10),Ho=(a(514),{"sum-of-abs":"sum"}),zo=[],Uo=function(e){var t,a,o,i,s,l=e.attributes,c=e.chartUuid,u=e.uuid,d=e.dropdownMenu,h=e.externalChartMetadata,p=e.portalNode,g=e.renderCustomElementForDygraph,m=e.onAttributesChange,b=l.host,v=void 0===b?D.b:b,_=l.id,y=l.nodeIDs,O=Object(la.a)(),x=Object(n.useMemo)(Ea.a,[]),w=Object(la.b)((function(e){return x(e,{chartId:_,id:c})})),E=w.chartMetadata,S=w.isFetchingDetails,k=h||E;Object(n.useEffect)((function(){E||S||h||O(_e.b.request({chart:_,id:c,host:v,nodeIDs:y}))}),[_,c,O,v,S,E,h,y,u]);var T=Object(la.b)(ue.m),P=Object(la.b)((function(e){return Object(Ea.i)(e,{id:c})})),M=P||T,L=!!T&&T.masterID===c||Boolean(P),I=(null===M||void 0===M?void 0:M.shouldForceTimeRange)||!1,N=!M||!L||I,R=Object(la.b)((function(e){return Object(Ea.g)(e,{id:c})})),B=Object(la.b)((function(e){return Object(Ea.j)(e,{id:c})})),F=Object(la.b)((function(e){return Object(Ea.f)(e,{id:c})})),H=Object(la.b)((function(e){return Object(Ea.h)(e,{id:c})})),z=Object(la.b)(ue.o),U=Object(ua.a)([[Object(da.a)(!!F),function(){return 1e3*F.view_update_every}],[Object(da.a)(!!k),function(){return 1e3*k.update_every}],[ha.a,Object(da.a)(f.a)]])(),G=function(e){var t=e.areCriteriaMet,a=e.preferedIntervalTime,r=Object(la.b)(ue.s),o=Object(la.b)(ue.G),i=Object(la.b)(ue.n),s=!(!r&&o)&&!i,l=Object(n.useState)(!0),c=Object(A.a)(l,2),u=c[0],d=c[1],h=Object(n.useState)(!1),p=Object(A.a)(h,2),f=p[0],g=p[1];Object(n.useEffect)((function(){f&&s&&(g(!1),d(!0))}),[f,g,s]);var m=!s&&f||ve?wa:a;return Object(xa.a)((function(){if(t){if(!s)return void g(!0);d(!0)}}),m),[u,d]}({areCriteriaMet:!M&&!z,preferedIntervalTime:U}),W=Object(A.a)(G,2),V=W[0],Y=W[1],X=Object(pa.a)(M,f.b);Object(n.useEffect)((function(){Y(!0)}),[X,Y]);var K=Object(la.b)(ue.i);Object(fa.a)((function(){Y(!0)}),[l.after,l.before,K,l.dimensions,l.aggrMethod,l.groupBy]);var Z=l.before,q=void 0===Z?window.NETDATA.chartDefaults.before:Z,$=l.after||K,J=ya[l.chartLibrary],Q=J.hasLegend,ee=p.getBoundingClientRect(),te=ee.width-(Q(l)?140:0),ae=ee.height,ne=Boolean(Object(la.b)(ue.D)),re=Object(la.b)(ue.z)||ne,oe=Object(la.b)(ue.w),ie=j.a.CancelToken,se=Object(n.useMemo)((function(){return ie.source()}),[]);Object(ga.a)((function(){se.cancel("Chart scrolled out of view")}));var le=Object(n.useState)(!1),ce=Object(A.a)(le,2),de=ce[0],he=ce[1],pe=de&&H;Object(ma.a)((function(){H&&he(!0)}),2e3,[H]),Object(n.useEffect)((function(){!H&&de&&he(!1)}),[H,de]),Object(n.useEffect)((function(){if(V&&k&&!H){var e,t,a,n=window.NETDATA.options.force_data_points,r=1;if(M)if(L){if(a=[e=Math.round(M.after/1e3),t=Math.round(M.before/1e3)],oe){var o=Math.round((t-e)/2);e-=o,t+=o,r=2}}else e=Math.round(M.after/1e3),t=Math.round(M.before/1e3),r=1;else t=q,e=$,r=1;a=(a||[e,t]).map((function(e){return 1e3*e}));var i=l.points||Math.round(te/function(e){var t=e.attributes,a=e.chartSettings,n=t.pixelsPerPoint;if("number"===typeof n)return n;var r=a.pixelsPerPoint(t);return Math.max.apply(Math,Object(C.a)([r,window.NETDATA.options.current.pixels_per_point].filter((function(e){return"number"===typeof e}))))}({attributes:l,chartSettings:J})),s=n||i*r,u=l.forceTimeWindow||Boolean(K)?function(e){var t=e.after,a=e.before,n=e.firstEntry,r=e.points,o=Math.round((new Date).valueOf()/1e3),i=t>0?t:o+t,s=a>0?a:o+a;if(i<n){var l=s-i,c=s-Math.max(i,n);return Math.round(r*c/l)}return null}({after:e,before:t,firstEntry:k.first_entry,points:s}):null,d=l.method||window.NETDATA.chartDefaults.method;Y(!1),O(_e.c.request({host:v,context:k.context,chart:k.id,format:J.format,points:u||s,group:d,gtime:l.gtime||0,options:Oa(l,re),after:e||null,before:t||null,dimensions:l.dimensions,labels:l.labels,postGroupBy:l.postGroupBy,postAggregationMethod:l.postAggregationMethod,aggrMethod:l.aggrMethod,aggrGroups:l.aggrGroups,dimensionsAggrMethod:Ho[l.dimensionsAggrMethod]||l.dimensionsAggrMethod,nodeIDs:y,httpMethod:l.httpMethod,groupBy:l.groupBy,fetchDataParams:{fillMissingPoints:u?s-u:void 0,isRemotelyControlled:N,viewRange:a},id:c,cancelTokenSource:se}))}}),[l,k,J,c,te,K,O,Q,v,q,H,L,N,$,M,p,Y,re,oe,V,se,y,u]),Object(la.b)(ue.F);var fe=null===l||void 0===l?void 0:l.selectedDimensions,ge=Object(n.useState)(fe||zo),me=Object(A.a)(ge,2),be=me[0],ye=me[1];Object(n.useLayoutEffect)((function(){fe&&ye(fe)}),[fe]),Object(n.useLayoutEffect)((function(){ye(fe||zo)}),[null===l||void 0===l?void 0:l.groupBy]);var Oe=Object(n.useMemo)((function(){return g&&g({onAttributesChange:m,attributes:l,chartMetadata:k,chartData:F,chartID:_})}),[m,g,l,_,k,F]),xe=0===(null===(t=F)||void 0===t?void 0:null===(a=t.result)||void 0===a?void 0:null===(o=a.data)||void 0===o?void 0:o.length)||0===(null===(i=F)||void 0===i?void 0:null===(s=i.result)||void 0===s?void 0:s.length);return F&&k?r.a.createElement(r.a.Fragment,null,xe&&r.a.createElement(Ca,{key:"".concat(xe),hasEmptyData:xe,containerNode:p}),r.a.createElement(So,{attributes:l,chartContainerElement:p,chartData:F,chartMetadata:k,chartUuid:c,chartHeight:ae,chartWidth:te,defaultAfter:K,globalPanAndZoom:T,hasEmptyData:xe,isRemotelyControlled:R.isRemotelyControlled,viewRangeForCurrentData:R.viewRange,viewRange:B,selectedDimensions:be,setSelectedDimensions:ye,showLatestOnBlur:!M}),pe&&r.a.createElement(Bo,{chartLibrary:l.chartLibrary}),d&&d.length>0&&r.a.createElement(Fo,null,r.a.createElement(Po,{dropdownMenu:d,chartID:_,attributes:l,chartMetadata:k})),Oe):r.a.createElement(r.a.Fragment,null,r.a.createElement(Ca,{key:"".concat(xe),hasEmptyData:xe,containerNode:p}),pe&&r.a.createElement(Bo,{chartLibrary:l.chartLibrary}))},Go=a(574),Wo=function(e){return e[O.a]},Vo=Object(Ha.a)(Wo,Object(qe.a)("isSnapshotMode")),Yo=Object(Ha.a)(Wo,Object(Go.a)(["snapshotCharts","snapshotDataPoints"])),Xo=function(e){var t=e.attributes,a=e.chartUuid,r=t.host||D.b,o=Object(la.b)(Yo).snapshotDataPoints,i=t.method||window.NETDATA.chartDefaults.method,s=t.chartLibrary,l=ya[s],c=Object(la.b)(ue.m),u=c.after/Ve.a,d=c.before/Ve.a,h=Object(la.a)();return Object(n.useEffect)((function(){h(_e.e.request({host:r,context:t.id,chart:t.id,format:l.format,points:o,group:i,gtime:t.gtime||0,options:Oa(t,!0),after:u||null,before:d||null,dimensions:t.dimensions,aggrMethod:t.aggrMethod,nodeIDs:t.nodeIDs,chartLibrary:s,id:a,groupBy:t.groupBy}))})),null},Ko=function(e){var t=e.attributes,a=e.chartUuid;return Object(la.b)(Vo)?r.a.createElement(Xo,{attributes:t,chartUuid:a}):null},Zo=Object(n.memo)((function(){var e=Array.from(document.querySelectorAll("[data-netdata]"));return r.a.createElement(r.a.Fragment,null,e.map((function(e,t){var a=Object(ca.b)(e),n="".concat(a.id,"-").concat(t);return Object(o.createPortal)(r.a.createElement(r.a.Fragment,null,r.a.createElement($r,{attributes:a,chartUuid:n,portalNode:e},r.a.createElement(Uo,{attributes:a,chartUuid:n,portalNode:e})),r.a.createElement(Ko,{attributes:a,chartUuid:n})),e)})))})),qo=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=arguments.length>2?arguments[2]:void 0,r=Object(n.useState)(!1),o=Object(A.a)(r,2),i=o[0],s=o[1],l=Object(n.useState)(!1),c=Object(A.a)(l,2),u=c[0],d=c[1],h=Object(n.useState)(null),p=Object(A.a)(h,2),f=p[0],g=p[1];return Object(n.useEffect)((function(){if(t&&e){var n=a?{headers:null,withCredentials:!1}:{};s(!0),T.get(e,n).then((function(e){e.data&&(g(e.data),d(!1),s(!1))})).catch((function(t){console.warn("error fetching ".concat(e),t),d(!0),s(!1)}))}}),[a,t,e]),[f,i,u]},$o=document.getElementById("modal-root"),Jo=function(e){var t=e.children,a=Object(n.useRef)(document.createElement("div"));return Object(n.useEffect)((function(){return $o.appendChild(a.current),function(){$o.removeChild(a.current)}}),[]),Object(o.createPortal)(t,a.current)},Qo=(a(515),function(){var e=Object(n.useRef)(null);Object(n.useEffect)((function(){e.current&&window.$(e.current).modal("show")}));var t=Object(la.b)(Ea.b),a=Object(la.b)(Ea.c),o=Object(la.b)(Ea.k),i=0===t?0:a/t*100;Object(n.useEffect)((function(){100===i&&setTimeout((function(){window.$(e.current).modal("hide"),window.print(),window.close()}),1e3)}),[i]);var s=o&&"".concat(Math.round(i),"%, ").concat(o);return r.a.createElement(Jo,null,r.a.createElement("div",{ref:e,className:"modal fade",id:"printModal",tabIndex:-1,role:"dialog","aria-labelledby":"printModalLabel","data-keyboard":"false","data-backdrop":"static"},r.a.createElement("div",{className:"modal-dialog modal-lg",role:"document"},r.a.createElement("div",{className:"modal-content"},r.a.createElement("div",{className:"modal-header"},r.a.createElement("button",{type:"button",className:va()("close",{"print-modal__close-button--disabled":!0}),"data-dismiss":"modal","aria-label":"Close"},r.a.createElement("span",{"aria-hidden":"true"},"\xd7")),r.a.createElement("h4",{className:"modal-title",id:"printModalLabel"},"Preparing dashboard for printing...")),r.a.createElement("div",{className:"modal-body"},"Please wait while we initialize and render all the charts on the dashboard.",r.a.createElement("div",{className:"progress progress-striped active",style:{height:"2em"}},r.a.createElement("div",{id:"printModalProgressBar",className:"progress-bar progress-bar-info",role:"progressbar","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":100,style:{minWidth:"2em",width:"".concat(i,"%")}},r.a.createElement("span",{id:"printModalProgressBarText",style:{paddingLeft:10,paddingTop:4,fontSize:"1.2em",textAlign:"left",width:"100%",position:"absolute",display:"block",color:"black"}},s))),"The print dialog will appear as soon as we finish rendering the page."),r.a.createElement("div",{className:"modal-footer"})))))}),ei=$.d.div.withConfig({displayName:"styled__SocialMediaContainer",componentId:"sc-3gu94j-0"})(["width:185px;padding:",";background:",";font-size:12px;margin-bottom:",";"],Object(Z.J)(2),Object(Z.H)("borderSecondary"),Object(Z.J)(3)),ti=$.d.div.withConfig({displayName:"styled__FirstRow",componentId:"sc-3gu94j-1"})(["display:flex;justify-content:space-between;"]),ai=$.d.div.withConfig({displayName:"styled__GithubCopy",componentId:"sc-3gu94j-2"})([""]),ni=$.d.div.withConfig({displayName:"styled__GithubCopyLine",componentId:"sc-3gu94j-3"})([""]),ri=$.d.a.withConfig({displayName:"styled__SocialMediaLink",componentId:"sc-3gu94j-4"})(["&,&:hover{color:",";}"],Object(Z.H)("main")),oi=Object($.d)(ri).withConfig({displayName:"styled__GithubStarQuestion",componentId:"sc-3gu94j-5"})([""]),ii=Object($.d)(ri).withConfig({displayName:"styled__GithubIcon",componentId:"sc-3gu94j-6"})(["font-size:24px;"]),si=Object($.d)(ri).withConfig({displayName:"styled__TwitterIcon",componentId:"sc-3gu94j-7"})(["font-size:17px;"]),li=Object($.d)(ri).withConfig({displayName:"styled__FacebookIcon",componentId:"sc-3gu94j-8"})(["font-size:23px;"]),ci=$.d.div.withConfig({displayName:"styled__Separator",componentId:"sc-3gu94j-9"})(["margin-top:",";border-top:1px solid ",";"],Object(Z.J)(2),Object(Z.H)("separator")),ui=$.d.div.withConfig({displayName:"styled__SecondRow",componentId:"sc-3gu94j-10"})(["margin-top:",";display:flex;align-items:center;justify-content:space-between;"],Object(Z.J)(2)),di=$.d.span.withConfig({displayName:"styled__SecondRowText",componentId:"sc-3gu94j-11"})(["font-size:10px;"]),hi=function(){return r.a.createElement(ei,null,r.a.createElement(ti,null,r.a.createElement(ai,null,r.a.createElement(ni,null,"Do you like Netdata?"),r.a.createElement(oi,{href:"https://github.com/netdata/netdata/",target:"_blank"},"Give us a star!")),r.a.createElement(ii,{href:"https://github.com/netdata/netdata/",target:"_blank"},r.a.createElement("i",{className:"fab fa-github"}))),r.a.createElement(ci,null),r.a.createElement(ui,null,r.a.createElement(di,null,"And share the word!"),r.a.createElement(si,{href:"https://twitter.com/linuxnetdata/",target:"_blank"},r.a.createElement("i",{className:"fab fa-twitter"})),r.a.createElement(li,{href:"https://www.facebook.com/linuxnetdata/",target:"_blank"},r.a.createElement("i",{className:"fab fa-facebook"}))))},pi=function(e){var t=e.children,a=Object(n.useRef)(document.querySelector("#sidebar-end-portal-container"));return Object(o.createPortal)(t,a.current)},fi=(a(516),Object($.d)((function(e){var t=e.className,a=Object(dr.a)(e,["className"]);return r.a.createElement("div",{className:t},r.a.createElement(q.a,Object.assign({},a,{closeButton:!1})))})).withConfig({displayName:"notifications-container__NotificationsContainer",componentId:"n0kffi-0"})([".Toastify__toast-container{position:fixed;width:unset;min-width:400px;max-width:500px;",";color:",";}.Toastify__toast{padding:0;padding-top:5px;}.Toastify__toast--error{background:",";border:1px solid ",";}.Toastify__toast--warning{}.Toastify__toast--success{background:",";border:1px solid ",";}.Toastify__toast-body{}.Toastify__progress-bar{bottom:unset;top:0;}.Toastify__progress-bar--success{background-color:",";}.Toastify__progress-bar--error{background-color:",";}"],"z-index: 50;",Object(Z.H)(["neutral","limedSpruce"]),Object(Z.H)(["red","lavender"]),Object(Z.H)("error"),Object(Z.H)(["green","frostee"]),Object(Z.H)("success"),Object(Z.H)("success"),Object(Z.H)("error"))),gi=function(e){var t=e.icon,a=e.children,n=e.hasBorder;return r.a.createElement(Z.j,{gap:2,border:n&&{side:"right",color:"separator"},alignItems:"center",padding:[0,3,0,0],height:"100%"},!!t&&r.a.createElement(Z.o,{name:t,color:"bright",height:"15px"}),a)},mi=function(e){var t=e.global.snapshot,a=e.global.chartsMetadata.data;return t||a?t?t.hostname:a.hostname:""},bi=function(){var e=Object(la.b)(mi);return r.a.createElement(gi,{icon:"node_hollow"},r.a.createElement(Z.B,{"data-testid":"header-nodename-".concat(e),color:"bright",strong:!0,truncate:!0},e))},vi=["neutral","black"],_i=function(e){var t=e.children,a=e.isBasic;return r.a.createElement(Z.j,Object.assign({padding:[1.5,2],margin:[2],background:vi,round:1},!a&&{width:{max:"300px"}}),r.a.createElement(Z.F,{color:"bright"},t))},yi=function(e,t){var a=t.isBasic,n="function"===typeof e?e():e;return"string"===typeof e||a?r.a.createElement(_i,{isBasic:a},n):n},Oi=function(e){var t=e.children,a=e.content,o=e.isBasic,i=Object(dr.a)(e,["children","content","isBasic"]),s=Object(n.useCallback)((function(){return yi(a,{isBasic:o})}),[a,o]);return r.a.createElement(Z.G,Object.assign({plain:!0,animation:!0,content:s},i),t)},xi=function(){var e=Object(la.a)(),t=Object(n.useCallback)((function(){return e(Object(Ke.t)())}),[e]);return r.a.createElement(Z.j,{gap:2,"data-testid":"header-options-button"},r.a.createElement(Oi,{content:"Import a Netdata snapshot",align:"bottom",plain:!0},r.a.createElement(Z.b,{flavour:"borderless",neutral:!0,themeType:"dark","data-toggle":"modal","data-target":"#loadSnapshotModal",icon:"download"})),r.a.createElement(Oi,{content:"Export a Netdata snapshot",align:"bottom",plain:!0},r.a.createElement(Z.b,{onClick:t,flavour:"borderless",neutral:!0,themeType:"dark","data-toggle":"modal","data-target":"#saveSnapshotModal",icon:"upload"})),r.a.createElement(Oi,{content:"Print the dashboard",align:"bottom",plain:!0},r.a.createElement(Z.b,{flavour:"borderless",neutral:!0,themeType:"dark","data-toggle":"modal","data-target":"#printPreflightModal",icon:"print"})))},wi=function(e){var t,a=e.currentVersion,n="stable"===e.releaseChannel,o=qo("https://api.github.com/repos/netdata/netdata/releases/latest",n,!0),i=Object(A.a)(o,1)[0],s=qo("https://www.googleapis.com/storage/v1/b/netdata-nightlies/o/latest-version.txt",!n),l=Object(A.a)(s,1)[0],c=qo(null===l||void 0===l?void 0:l.mediaLink,Boolean(l)),u=Object(A.a)(c,1)[0],d=n?null===(t=i)||void 0===t?void 0:t.tag_name.replace(/(\r\n|\n|\r| |\t)/gm,""):u?function(e){return e.replace(/(\r\n|\n|\r| |\t)/gm,"")}(u):null;if(!d)return null;var h=!function(e,t){if(e===t)return!0;var a=e.split("."),n=t.split("."),r=parseInt(a[0].substring(1,2),10),o=parseInt(n[0].substring(1,2),10);return!(r<o)&&(r>o||!((r=parseInt(a[1],10))<(o=parseInt(n[1],10)))&&(r>o||(a=a[2].split("-"),n=n[2].split("-"),!((r=parseInt(a[0],10))<(o=parseInt(n[0],10)))&&(r>o||!((r=a.length>1?parseInt(a[1],10):0)<(o=n.length>1?parseInt(n[1],10):0))))))}(a,d);return r.a.createElement(Oi,{content:h?"Need help?":"Check Version",align:"bottom",plain:!0},r.a.createElement(Z.b,{"data-testid":"header-version-control-button",flavour:"borderless",themeType:"dark",small:!0,neutral:!h,warning:h,name:h?"update_pending":"update",icon:h?"update_pending":"update","data-toggle":"modal","data-target":"#updateModal"}))},Ei=function(e){var t=e.global.chartsMetadata.data;return t?{version:t.version,releaseChannel:t.release_channel}:null},Si=function(){var e=Object(la.b)(Ei);return e&&r.a.createElement(wi,{currentVersion:e.version,releaseChannel:e.releaseChannel})},Ci=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=Object(n.useState)(!!e),a=Object(A.a)(t,2),r=a[0],o=a[1],i=Object(n.useCallback)((function(){return o((function(e){return!e}))}),[]),s=Object(n.useCallback)((function(){return o(!0)}),[]),l=Object(n.useCallback)((function(){return o(!1)}),[]);return[r,i,s,l]},Ai=function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return null!==(t=JSON.parse(localStorage.getItem(e)))&&void 0!==t?t:a},ki=function(e,t){var a=Object(n.useState)((function(){return Ai(e,t)})),r=Object(A.a)(a,2),o=r[0],i=r[1];return Object(n.useEffect)((function(){return localStorage.setItem(e,JSON.stringify(o))}),[e,o]),[o,i]},ji=a(628),Ti=$.d.div.withConfig({displayName:"styled__RootContainer",componentId:"sc-1al6duq-0"})(["width:100%;height:100%;display:flex;flex-flow:row nowrap;align-items:center;"]),Di=(Object($.d)(ji.a).withConfig({displayName:"styled__StyledMenu",componentId:"sc-1al6duq-1"})([""]),$.d.div.withConfig({displayName:"styled__DropdownContainer",componentId:"sc-1al6duq-2"})(["cursor:pointer;color:",";.mdc-menu-surface{border-radius:0;.mdc-list{padding:0;}.mdc-list-item{padding:0 "," 0 ",";font-size:14px;height:",";}}"],Object(Z.H)("bright"),Object(Z.J)(5),Object(Z.J)(5),Object(Z.J)(6))),Pi=$.d.div.withConfig({displayName:"styled__ListContainer",componentId:"sc-1al6duq-3"})(["padding:"," 0;"],Object(Z.J)(3)),Mi=Object($.d)(Z.o).withConfig({displayName:"styled__OpenerIcon",componentId:"sc-1al6duq-4"})(["flex-shrink:0;flex-grow:0;margin-left:",";fill:",";width:10px;height:5px;"],(function(e){return e.noMargin?"unset":"16px"}),Object(Z.H)("bright")),Li=$.d.div.withConfig({displayName:"styled__PickerBox",componentId:"y9nggg-0"})(["display:flex;position:relative;min-width:",";min-height:",";flex-direction:column;align-items:flex-end;background-color:",";color:",";z-index:",";border-radius:8px;"],Object(Z.J)(102),Object(Z.J)(43),Object(Z.H)("mainBackground"),Object(Z.H)("text"),60),Ii=$.d.span.withConfig({displayName:"styled__StyledTimePeriod",componentId:"y9nggg-1"})(["margin-top:",";cursor:pointer;width:187px;height:",";&:first-of-type{margin-top:",";}&:last-of-type{margin-bottom:",";}& > span:hover{color:",";}"],Object(Z.J)(3),Object(Z.J)(2),Object(Z.J)(1),Object(Z.J)(1),Object(Z.H)("textLite")),Ni=$.d.span.withConfig({displayName:"styled__StyledCustomTimePeriod",componentId:"y9nggg-2"})(["margin:"," "," 0;color:",";cursor:pointer;&:first-of-type{margin-top:0;}&:hover{color:",";}"],Object(Z.J)(1),Object(Z.J)(3),(function(e){var t=e.isSelected,a=e.theme;return Object(Z.H)(t?"primary":"text")({theme:a})}),Object(Z.H)("textLite")),Ri=Object($.d)((function(e){var t,a=e.title,o=e.children,i=e.className,s=e.renderTitle,l=e.isOpen,c=void 0!==l&&l,u=e.onMenuToggle,d=e.anchorCorner,h=void 0===d?"bottomStart":d,p=e.renderOpener,f=Object(n.useRef)();return r.a.createElement(Di,{className:i},r.a.createElement(ko.b,null,r.a.createElement(ko.a,{ref:f,open:c,onClose:function(){u(!1)},anchorCorner:h},"function"===typeof o?c&&r.a.createElement(Pi,null,r.a.createElement(Co.a,null,o({maxHeight:null===(t=f.current)||void 0===t?void 0:t.root.ref.style.maxHeight}))):r.a.createElement(Pi,null,r.a.createElement(Co.a,null,o))),r.a.createElement(Ti,{onClick:function(){u(!c)}},a||s&&s(),p?p():r.a.createElement(Mi,{name:"triangle_down",noMargin:Boolean(s)}))))})).withConfig({displayName:"styled__StyledDropdown",componentId:"y9nggg-3"})(["width:88px;height:32px;padding-top:8px;padding-bottom:8px;padding-left:8px;padding-right:7px;border:1px solid ",";box-sizing:border-box;border-radius:4px;display:flex;justify-content:center;align-items:center;color:",";.mdc-menu-surface--anchor{.mdc-menu-surface--open{"," margin-top:",";background:",";border-radius:4px;}}.mdc-list{display:flex;flex-direction:column;justify-content:center;align-items:center;}"],Object(Z.H)("border"),Object(Z.H)("text"),"z-index: 45;",Object(Z.J)(2),Object(Z.H)("mainBackground")),Bi=Object($.d)(Z.o).withConfig({displayName:"styled__DropdownIcon",componentId:"y9nggg-4"})(["fill:",";width:12px;height:12px;"],Object(Z.H)("text")),Fi=$.d.input.withConfig({displayName:"styled__CustomInput",componentId:"y9nggg-5"})(["border:1px solid ",";color:inherit;background:",";box-sizing:border-box;border-radius:4px;padding:4px;width:32px;height:32px;margin-left:10px;margin-right:10px;outline:none;&:focus{border:1px solid ",";}"],Object(Z.H)("border"),Object(Z.H)("mainBackground"),Object(Z.H)("primary")),Hi=Object($.d)(Z.h).attrs({background:"mainBackground",round:2,margin:[4,0,0],border:{side:"all",color:"elementBackground"},animation:!0}).withConfig({displayName:"styled__StyledDrop",componentId:"y9nggg-6"})(["box-shadow:0px 4px 4px rgba(0,0,0,0.25);"]),zi=$.d.hr.withConfig({displayName:"styled__StyledHR",componentId:"y9nggg-7"})(["border:none;margin:0;border-left:1px solid ",";height:284px;"],Object(Z.H)("borderSecondary")),Ui=Object(n.memo)((function(e){var t=e.value,a=e.period,o=e.resolution,i=e.isSelected,s=e.setTimeRange,l=e.tagging,c=Object(n.useCallback)((function(){return s(t,o)}),[t,o,s]);return r.a.createElement(Ii,{key:t,onClick:c,"data-ga":"date-picker::click-quick-selector::".concat(l,"::").concat(-t),"data-testid":"timePeriod-value"},r.a.createElement(Z.B,{color:i?"primary":"text"},a))})),Gi=a(633),Wi=a(621),Vi=a(627),Yi=a(622),Xi=a(307),Ki=a(634),Zi=a(302),qi=["minutes","hours","days","months"],$i={minutes:60,hours:3600,days:86400,months:2592e3},Ji=function(e,t){return Math.round(e/$i[t])},Qi=function(e,t){var a=Object(Gi.a)(new Date(0),Object(u.a)({},t,e));return-Object(Wi.a)(a)},es={startDate:"start",endDate:"finish"},ts=[{period:"Last 5 minutes",value:-300,resolution:"minutes"},{period:"Last 15 minutes",value:-900,resolution:"minutes"},{period:"Last 30 minutes",value:-1800,resolution:"minutes"},{period:"Last 2 hours",value:-7200,resolution:"hours"},{period:"Last 6 hours",value:-21600,resolution:"hours"},{period:"Last 12 hours",value:-43200,resolution:"hours"},{period:"Last Day",value:-86400,resolution:"days"},{period:"Last 2 Days",value:-172800,resolution:"days"},{period:"Last 7 Days",value:-604800,resolution:"days"}],as=function(e,t){var a=Object(Yi.a)(e,"MMMM d yyyy, H:mm")?e:Object(Xi.a)(e,"MMMM d yyyy, H:mm",Date.now());return Object(Xi.a)("".concat(a," ").concat(function(e){if(!e)return"+00:00";var t=e.toString().split("."),a=t[0]>0?"+":"-",n=Math.abs(t[0]).toString(),r="".concat(a).concat(n.padStart(2,0));return t.length>1?"".concat(r,":").concat(String(.6*t[1]).padEnd(2,0)):"".concat(r,":00")}(t)),"MMMM d yyyy, H:mm xxx",Date.now())},ns=function(e){var t=e.handleTimePeriodChange,a=e.selectedDate,n=e.tagging;return r.a.createElement(Z.j,{column:!0,justifyContent:"start",alignItems:"start",height:{max:"240px"},overflow:{vertical:"scroll"},"data-testid":"timePeriods"},ts.map((function(e){var o=e.period,i=e.value,s=e.resolution;return r.a.createElement(Ui,{key:i,value:i,period:o,resolution:s,setTimeRange:t,isSelected:a===i,tagging:n})})))},rs=a(180),os=function(e){var t=e.handleTimePeriodChange,a=e.value,o=e.resolution,i=e.tagging,s=function(){return a<=0?Ji(-a,o):0},l=Object(n.useState)(s),c=Object(A.a)(l,2),d=c[0],h=c[1],p=Object(n.useState)(!1),f=Object(A.a)(p,2),g=f[0],m=f[1];Object(n.useEffect)((function(){return h(s())}),[a]);var b=Object(n.useCallback)((function(e){return h(e.target.value)}),[]),v=Object(n.useCallback)((function(e){var n=Number(e.currentTarget.value),r=!Number.isNaN(n)&&Number.isInteger(n)&&n>0,i=Object(Gi.a)(new Date(0),Object(u.a)({},o,n));return r&&Object(rs.a)(i)&&Object(Wi.a)(i)<=94694400?t(Qi(n,o),o):h(a<=0?Ji(-a,o):0)}),[o,a,t]),_=Object(n.useCallback)((function(e){return function(){t(Qi(d,e),e),m(!1)}}),[d,t]);return r.a.createElement(Z.j,{justifyContent:"start",alignItems:"center",height:8,"data-ga":"date-picker::click-last-integer::".concat(i),"data-testid":"customTimePeriod"},r.a.createElement(Z.B,null,"Last"),r.a.createElement(Fi,{value:d,onChange:b,onBlur:v,"data-ga":"date-picker::click-last-integer::".concat(i,"::").concat(d),"data-testid":"timePeriod-timeInput"}),r.a.createElement(Ri,{isOpen:g,onMenuToggle:m,renderTitle:function(){return r.a.createElement(Z.j,{alignItems:"center",flexWrap:!1,width:"100%"},r.a.createElement(Z.B,{padding:[0,4,0,0]},o),r.a.createElement(Bi,{name:"triangle_down"}))},renderOpener:function(){return null}},(function(){return qi.map((function(e){return r.a.createElement(Ni,{key:e,onClick:_(e),"data-ga":"date-picker::click-last-time-".concat(e,"::").concat(i),"data-testid":"timePeriod-option"},e)}))})))},is=a(623),ss=a(303),ls=a.n(ss),cs=(a(517),function(e){var t=e.selected,a=e.selectsStart,n=void 0!==a&&a,o=e.selectsEnd,i=void 0!==o&&o,s=e.startDate,l=e.endDate,c=e.onChange,u=e.minDate,d=e.maxDate,h=e.dateFormat,p=void 0===h?"MM/dd/yyyy":h,f=e.open,g=void 0!==f&&f,m=e.startOpen,b=void 0!==m&&m,v=e.inline,_=void 0!==v&&v,y=e.selectsRange,O=void 0!==y&&y,x=e.monthsShown,w=void 0===x?1:x,E=e.showPopperArrow,S=void 0===E||E,C=e.calendarContainer,A=void 0===C?null:C;return r.a.createElement(ls.a,{selected:t,onChange:c,selectsStart:n,selectsEnd:i,startDate:s,endDate:l,minDate:u,maxDate:d,dateFormat:p,open:g,startOpen:b,inline:_,selectsRange:O,monthsShown:w,showPopperArrow:S,calendarContainer:A})}),us=$.d.input.withConfig({displayName:"styled__StyledDateInput",componentId:"sc-1tun1nl-0"})(["width:100%;text-align:center;border:1px solid ",";color:inherit;background:",";box-sizing:border-box;border-radius:4px;padding:4px;height:32px;margin-left:20px;margin-right:20px;outline:none;&:focus{border:1px solid ",";}"],Object(Z.H)("border"),Object(Z.H)("mainBackground"),Object(Z.H)("primary")),ds=$.d.div.withConfig({displayName:"styled__StyledCalendar",componentId:"sc-1tun1nl-1"})(["background:",";border:0;.react-datepicker{&__navigation{top:8px;&-icon::before{border-color:",";}}&__header{background:",";border:0;.react-datepicker__current-month{color:",";font-weight:normal;}.react-datepicker__day-name{color:",";}}&__day{color:",";&:hover{background:",";}&--disabled{color:",";&:hover{background:inherit;}}&--keyboard-selected,&--keyboard-selected:hover{color:",";background:inherit;border-radius:inherit;}&--selected,&--selected:hover{color:",";background:",";border-radius:8px;}&--in-selecting-range,&--in-range{color:",";background:",";border-radius:0;}&--selecting-range-start,&--range-start{color:",";background:",";border-top-left-radius:8px;border-bottom-left-radius:8px;&:hover{color:",";background:",";border-radius:0;border-top-left-radius:8px;border-bottom-left-radius:8px;}}&--selecting-range-end,&--range-end{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;&:hover{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;}}}}"],Object(Z.H)("mainBackground"),Object(Z.H)("text"),Object(Z.H)("mainBackground"),Object(Z.H)("main"),Object(Z.H)("textLite"),Object(Z.H)("main"),Object(Z.H)("elementBackground"),Object(Z.H)("textLite"),Object(Z.H)("main"),Object(Z.H)("bright"),Object(Z.H)("primary"),Object(Z.H)("primary"),Object(Z.H)("elementBackground"),Object(Z.H)("bright"),Object(Z.H)("primary"),Object(Z.H)("bright"),Object(Z.I)(["green","netdata"],.8),Object(Z.H)("bright"),Object(Z.H)("primary"),Object(Z.H)("bright"),Object(Z.I)(["green","netdata"],.8)),hs=function(e){var t=e.name,a=void 0===t?"":t,o=e.value,i=void 0===o?"":o,s=e.onDatesChange,l=e.onFocus,c=e.placeholderText,u=void 0===c?"":c,d=Object(sa.b)().utcOffset,h=Object(n.useState)(""),p=Object(A.a)(h,2),f=p[0],g=p[1],m=Object(n.useCallback)((function(e){var t=e.target.value;g(t)}),[]),b=Object(n.useCallback)((function(e){if(Object(rs.a)(e)){var t=Object(Vi.a)(e,"MMMM d yyyy, H:mm");g(t)}}),[]),v=Object(n.useCallback)((function(e){var t=as(e.target.value,d);if(Object(rs.a)(t)&&Object(Zi.a)(t)>0){var a=Object(Zi.a)(t);s(a,(function(){return b(i)}))}else b(i)}),[i,d,s,b]);return Object(n.useEffect)((function(){return b(i)}),[i,b]),r.a.createElement(us,{type:"text",name:a,value:i?f:u,onChange:m,onBlur:v,onFocus:l,placeholder:u,"data-testid":"datePicker-input"})},ps=a(24),fs=function(){var e=Object(sa.b)(),t=e.localeTimeString,a=e.localeDateString;return Object(n.useCallback)((function(e){return"".concat(a(e,{locale:"en-us",long:!1})," ").concat(t(e,{secs:!1}))}),[t,a])},gs=function(e,t){return e>0?Object(ps.a)(new Date(t(e))):e||0===e?Object(ps.a)(new Date(t((new Date).valueOf()+1e3*e))):null},ms=function(e,t){var a=fs();return Object(n.useMemo)((function(){return[gs(e,a),gs(t,a)]}),[e,t,a])},bs=function(e){var t=e.startDate,a=e.setStartDate,o=e.endDate,i=e.setEndDate,s=e.onDatesChange,l=e.onInputFocus,c=fs(),u=ms(t,o),d=Object(A.a)(u,2),h=d[0],p=d[1],f=Object(sa.b)().utcOffset,g=Object(n.useCallback)((function(e,t){return Object(is.a)(gs(e,c),p)?a(e):t()}),[p,c,a]),m=Object(n.useCallback)((function(e,t){return Object(is.a)(h,gs(e,c))?i(e):t()}),[h,c,i]),b=Object(n.useCallback)((function(e){var t=Object(A.a)(e,2),a=t[0],n=t[1],r=a?as(Object(Vi.a)(a,"MMMM d yyyy, H:mm"),f):a,o=n?as(Object(Vi.a)(n,"MMMM d yyyy, H:mm"),f):n,i=Object(Zi.a)(r)||null,l=Object(Zi.a)(o)||null;s(i,l)}),[f,s]);return r.a.createElement(Z.j,{column:!0,justifyContent:"center",alignItems:"center",flex:{grow:1},gap:3,margin:[0,0,0,7],"data-testid":"datePicker-wrapper"},r.a.createElement(cs,{selected:h,onChange:b,startDate:h,endDate:p,maxDate:new Date,minDate:new Date("1/1/2018"),inline:!0,selectsRange:!0,monthsShown:2,dateFormat:"MMMM d yyyy, H:mm",showPopperArrow:!1,calendarContainer:ds}),r.a.createElement(Z.j,{justifyContent:"around",alignItems:"center",width:"100%"},r.a.createElement(hs,{name:"startDate",value:h,onDatesChange:g,onFocus:l,placeholderText:"Select a start date"}),r.a.createElement(hs,{name:"endDate",value:p,onDatesChange:m,onFocus:l,placeholderText:"Select an end date"})))},vs=function(e){var t=e.startDate,a=e.endDate,o=ms(t,a),i=Object(A.a)(o,2),s=i[0],l=i[1],c=Object(n.useMemo)((function(){return function(e,t){return{formattedStartDate:Object(Vi.a)(e,"MMMM d yyyy, H:mm:ss"),formattedEndDate:Object(Vi.a)(t,"MMMM d yyyy, H:mm:ss")}}(s,l)}),[s,l]),u=c.formattedStartDate,d=c.formattedEndDate,h=Object(n.useMemo)((function(){return function(e,t){return Object(Ki.a)(Object(Zi.a)(e),Object(Zi.a)(t))}(s,l)}),[s,l]);return r.a.createElement(Z.j,{alignItems:"center",justifyContent:"between",gap:2},r.a.createElement(Z.j,{alignItems:"center",justifyContent:"center",gap:1.5},r.a.createElement(Z.F,{strong:!0,whiteSpace:"nowrap"},"From"),r.a.createElement(Z.F,{whiteSpace:"nowrap","data-testid":"periodIndication-from"},u)),r.a.createElement(Z.o,{name:"arrow_left",size:"small",color:"textLite",rotate:2}),r.a.createElement(Z.j,{alignItems:"center",justifyContent:"center",gap:1.5},r.a.createElement(Z.F,{strong:!0,whiteSpace:"nowrap"},"To"),r.a.createElement(Z.F,{whiteSpace:"nowrap","data-testid":"periodIndication-to"},d)),r.a.createElement(Z.j,{alignItems:"center",justifyContent:"center",gap:2},r.a.createElement(Z.F,{whiteSpace:"nowrap"},"/"),r.a.createElement(Z.F,{color:"textLite",whiteSpace:"nowrap","data-testid":"periodIndication-period"},h)))},_s=a(101),ys=a.n(_s),Os=[{value:864e5,unit:"d"},{value:36e5,unit:"h"},{value:6e4,unit:"min"},{value:6e4,unit:"min"},{value:1e3,unit:"s"}],xs=function(e,t){return ys.a.duration(e.diff(t))},ws=function(e){var t=Math.abs(e),a=t<6e4;return Os.reduce((function(e,n){var r=n.value,o=n.unit;return 1e3!==r||a?(e+=function(e,t){return e>1?"".concat(Math.floor(e)).concat(t):""}(t/r,o),t%=r,e):e}),"")},Es=Object($.d)(Z.j).withConfig({displayName:"container__Container",componentId:"sc-1oifnqd-0"})(["cursor:pointer;&:hover *{color:",";fill:",";}"],Object(Z.H)("textLite"),Object(Z.H)("textLite")),Ss=function(e){var t=e.isPlaying,a=e.startDate,n=e.endDate,o=e.isSameDate,i=Object(sa.b)(),s=i.localeTimeString,l=i.localeDateString;return r.a.createElement(Z.j,{gap:2},r.a.createElement(Z.F,{color:"text",whiteSpace:"nowrap"},l(a,{long:!1})," \u2022"," ",r.a.createElement(Z.F,{color:t?"accent":"textFocus",whiteSpace:"nowrap"},s(a,{secs:!1}))),r.a.createElement(Z.o,{name:"arrow_left",color:t?"accent":"textFocus",size:"small",rotate:2}),r.a.createElement(Z.F,{color:"text",whiteSpace:"nowrap"},!o&&"".concat(l(n,{long:!1})," \u2022 "),r.a.createElement(Z.F,{color:t?"accent":"textFocus",whiteSpace:"nowrap"},s(n,{secs:!1}))))},Cs=function(e){var t=e.isPlaying,a=e.duration;return r.a.createElement(Z.j,{gap:1},r.a.createElement(Z.j,{width:"24px",justifyContent:"center"},t&&r.a.createElement(Z.F,{color:"text",whiteSpace:"nowrap"},"\u2022 last")),r.a.createElement(Z.F,{color:"text",whiteSpace:"nowrap"},a))},As=Object(n.forwardRef)((function(e,t){var a=e.onClick,o=e.start,i=void 0===o?9e5:o,s=e.end,l=e.isPlaying,c=e.isPickerOpen,u=e.setRangeValues,d=e.tagging,h=Object(n.useState)(),p=Object(A.a)(h,2),f=p[0],g=p[1],m=function(e){return e<0?ys()(new Date).add(e,"seconds"):ys()(e)}(i),b=function(e){return e?ys()(e):ys()(new Date)}(s),v=Object(la.b)(ue.m);Object(n.useEffect)((function(){var e=xs(m,b).as("seconds");l||f===e||g(Math.round(e)),l&&f&&v&&(u({start:Math.round(f)}),g(null))}),[m,b,f,l]);var _=Object(n.useMemo)((function(){return function(e,t){return e.isSame(t,"day")}(m,b)}),[m,b]),y=Object(n.useMemo)((function(){return ws(xs(m,b).as("milliseconds"))}),[l,m,b]);return r.a.createElement(Oi,{content:c?function(){}:"Select a predefined or a custom timeframe",align:"bottom",plain:!0},r.a.createElement(Es,{alignItems:"center",justifyContent:"center",gap:1,height:"100%",width:{min:"380px"},onMouseDown:a,padding:[0,1],ref:t,"data-ga":"date-picker::click-time::".concat(d),"data-testid":"datePicker-accessorElement"},r.a.createElement(Ss,{isPlaying:l,endDate:b,startDate:m,isSameDate:_}),r.a.createElement(Cs,{isPlaying:l,duration:y})))})),ks=function(e){var t=e.onChange,a=e.values,o=(a=void 0===a?{}:a).start,i=a.end,s=e.defaultValue,l=void 0===s?-900:s,c=e.tagging,u=void 0===c?"":c,d=e.isPlaying,h=Object(n.useState)(o),p=Object(A.a)(h,2),f=p[0],g=p[1],m=Object(n.useState)(o),b=Object(A.a)(m,2),v=b[0],_=b[1],y=ki("resolution","minutes"),O=Object(A.a)(y,2),x=O[0],w=O[1],E=Object(n.useState)("startDate"),S=Object(A.a)(E,2),C=S[0],k=S[1],j=Ci(),T=Object(A.a)(j,4),D=T[0],P=T[1],M=T[3],L=Object(n.useRef)(),I=Object(n.useCallback)((function(e){var t=e.startDate,a=e.endDate;g(t),_(a)}),[]);Object(n.useEffect)((function(){I({startDate:o,endDate:i})}),[o,i,I]);var N=Object(n.useCallback)((function(){return I({startDate:l,endDate:0})}),[]),R=Object(n.useCallback)((function(e){e.target.name&&k(e.target.name)}),[]),B=Object(n.useCallback)((function(e){e.stopPropagation(),P()}),[P]),F=Object(n.useMemo)((function(){return function(e){return es[e]}(C)}),[C]),H=null!==f&&null!==v&&f!==v,z=f===o&&v===i,U=Object(n.useMemo)((function(){return l}),[]),G=f===U,W=Object(n.useCallback)((function(e,t){w(t),I({startDate:e,endDate:0})}),[I,w]),V=L.current&&D?r.a.createElement(Hi,{target:L.current,canHideTarget:!1,align:{top:"bottom",left:"left"},onEsc:M,onClickOutside:M},r.a.createElement(Li,{"data-testid":"datePicker"},r.a.createElement(Z.j,{justifyContent:"between",alignItems:"center",width:"100%",padding:[6,6,0,6]},r.a.createElement(Z.j,{column:!0,gap:3,margin:[0,7,0,0]},r.a.createElement(ns,{handleTimePeriodChange:W,selectedDate:f,tagging:u}),r.a.createElement(os,{handleTimePeriodChange:W,value:f,resolution:x,tagging:u})),r.a.createElement(zi,null),r.a.createElement(bs,{startDate:f,endDate:v,setStartDate:g,setEndDate:_,onDatesChange:function(e,t){I({startDate:e,endDate:t}),function(e,t,a,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"gaCustomEvent";if(window.dataLayer){var o={event:r,eventCategory:e,eventAction:t,eventLabel:a,eventValue:n};window.dataLayer.push(o)}}("date-picker","click-date-picker",u,String("finish"===F?t||e:e||t))},onInputFocus:R})),r.a.createElement(Z.j,{alignItems:"center",justifyContent:H?"between":"end",width:"100%",padding:[5,6],gap:2},H&&r.a.createElement(vs,{startDate:f,endDate:v}),r.a.createElement(Z.j,{alignItems:"center",justifyContent:"center",gap:4},r.a.createElement(Z.b,{label:"Clear",flavour:"hollow",onClick:N,disabled:G,"data-ga":"date-picker::click-clear::".concat(u,"-").concat(F),"data-testid":"datePicker-clear"}),r.a.createElement(Z.b,{label:"Apply",onClick:function(){t({start:f,end:v}),M()},disabled:!H||z,"data-ga":"date-picker::click-apply::".concat(u,"-").concat(F),"data-testid":"datePicker-apply"}))))):null;return r.a.createElement(r.a.Fragment,null,r.a.createElement(As,{onClick:B,tagging:u,isPickerOpen:D,isPlaying:d,setRangeValues:t,start:o,end:i,ref:L}),V)},js=Object(n.memo)((function(e){var t=e.tagging,a=e.isPlaying,o=Object(la.a)(),i=Object(la.b)(ue.m),s=Boolean(i),l=Object(la.b)(ue.i),c=Object(n.useMemo)((function(){return s?{start:i.after,end:i.before}:{start:l,end:0}}),[s,i,l]);return Object(n.useEffect)((function(){var e=c.start,t=c.end,a=e.toString(),n=t.toString();window.urlOptions.after===a&&window.urlOptions.before===n||window.urlOptions.netdataPanAndZoomCallback(!0,a,n),Object(Wt.d)({after:a,before:n})}),[c]),r.a.createElement(ks,{values:c,defaultValue:l,onChange:function(e){var t=e.start,a=e.end;t<0?(o(Object(Ke.q)({after:t})),s&&o(Object(Ke.j)())):o(Object(Ke.s)({after:t,before:a}))},tagging:t,isPlaying:a})})),Ts=Object($.d)(Z.j).withConfig({displayName:"container__Container",componentId:"sc-1y4i7z8-0"})(["background:",";"],(function(e){var t=e.theme,a=e.isPlaying;return("Dark"===t.name?Object(Z.I)(a?["green","netdata"]:["neutral","tuna"],a?.3:1):Object(Z.I)(a?["green","frostee"]:["neutral","blackhaze"]))({theme:t})})),Ds=function(e){var t=e.isPlaying;return Object(Z.H)(t?["green","chateau"]:["neutral","iron"])},Ps=Object($.d)(Z.z).attrs((function(e){return{flavour:e.isPlaying?"success":"neutral"}})).withConfig({displayName:"styledPill__StyledPill",componentId:"sc-151yrns-0"})(["&:hover{background:",";border-color:",";}"],Ds,Ds),Ms=function(e){var t=e.isPlaying,a=e.isForcePlaying,o=Object(la.a)(),i=Object(n.useMemo)((function(){return function(e,t){return e?t?"forcePlay":"playSolid":"pauseSolid"}(t,a)}),[t,a]);return r.a.createElement(Oi,{content:t?"Click to pause":"Click to play",align:"bottom",plain:!0},r.a.createElement(Ps,{icon:i,onClick:t?function(){return o(Object(Ke.t)())}:function(){return o(Object(Ke.k)({forcePlay:!1}))},isPlaying:t},t?"Playing":"Paused"))},Ls=Object($.d)(Z.j).withConfig({displayName:"item__PanelRowContainer",componentId:"sc-1qh9192-0"})(["cursor:pointer;&:hover{background:",";}",""],Object(Z.H)("selected"),(function(e){return e.selected&&"background: ".concat(Object(Z.H)("selected")(e),";")})),Is=Object(n.forwardRef)((function(e,t){var a=e.disabled,o=e.children,i=e.Wrapper,s=void 0===i?Z.B:i,l=e.onClick,c=e.testid,u=e.icon,d=e.padding,h=void 0===d?[2,3]:d,p=e.margin,f=void 0===p?[0]:p,g=e.round,m=void 0===g?0:g,b=e.actions,v=e.selected,_=e.width,y=void 0===_?"100%":_,O=Object(n.useCallback)((function(){a||l&&l()}),[l,a]);return r.a.createElement(Ls,{ref:t,flexWrap:!1,justifyContent:"between",alignItems:"center",padding:h,margin:f,round:m,onClick:O,"data-testid":c,width:y,selected:v,disabled:a},r.a.createElement(Z.j,{alignItems:"center",gap:3,flex:!0,basis:""},"string"===typeof u?r.a.createElement(Z.o,{name:u,disabled:a,color:"text",height:"16px",width:"16px"}):u,r.a.createElement(s,{opacity:a?"medium":void 0,width:"150px"},o)),b)})),Ns=Object($.d)(Z.l).attrs({padding:[0],margin:[0]}).withConfig({displayName:"list__DefaultListHeader",componentId:"cb73mo-0"})(["cursor:pointer;"]),Rs=function(e){var t=e.toggleOpen,a=e.label,n=e.testid,o=e.Header,i=void 0===o?Ns:o;return r.a.createElement(i,{"data-testid":n,onClick:t},a)},Bs=function(e){var t=e.isOpen,a=void 0!==t&&t,n=e.toggleOpen,o=e.label,i=e.children,s=e.testid,l=e.Header;return r.a.createElement(Z.j,{column:!0},r.a.createElement(Rs,{Header:l,toggleOpen:n,label:o,testid:s}),r.a.createElement(Z.d,{open:a},i))},Fs=(Object($.d)(Z.j).attrs({bacgkround:"disabled",height:"1px",margin:[2,6]}).withConfig({displayName:"styled__Divider",componentId:"sc-1gb5vnf-0"})([""]),function(){return r.a.createElement(Z.j,{padding:[1,2],margin:[1],background:["neutral","black"],round:1,justifyContent:"center",width:{max:"320px"}},r.a.createElement(Z.F,{color:"bright"},"Play to refresh and have live content, pause to see historical, or force play to keep refreshing even when the tab loses focus at the expense of some system performance."))}),Hs=Object($.d)(Z.j).attrs({padding:[1],role:"button"}).withConfig({displayName:"playOptions__MenuButton",componentId:"cm1181-0"})(["cursor:pointer;"]),zs=Object($.d)(Z.j).attrs({column:!0,padding:[2],background:"dropdown",round:1,overflow:{vertical:"auto"},margin:[2,0,0],width:40}).withConfig({displayName:"playOptions__Dropdown",componentId:"cm1181-1"})(["box-shadow:0px 4px 4px rgba(0,0,0,0.25);"]),Us=Object(n.memo)((function(e){var t=e.target,a=Object(la.a)(),o=Object(En.a)(),i=Object(A.a)(o,2),s=i[0],l=i[1],c=function(){return l(!1)};return r.a.createElement(n.Fragment,null,s?r.a.createElement(Hs,{onClick:l,width:"auto"},r.a.createElement(Z.o,{name:"chevron_down",color:"text",width:"12px",height:"12px"})):r.a.createElement(Oi,{content:r.a.createElement(Fs,null),align:"bottom",plain:!0},r.a.createElement(Hs,{onClick:l,width:"auto"},r.a.createElement(Z.o,{name:"chevron_down",color:"text",width:"12px",height:"12px"}))),t.current&&s&&r.a.createElement(Z.h,{target:t.current,align:{top:"bottom",left:"left"},onEsc:c,onClickOutside:c,animation:!0},r.a.createElement(zs,null,r.a.createElement(Is,{round:1,icon:"playOutline",onClick:function(){a(Object(Ke.k)({forcePlay:!1})),c()}},"Play"),r.a.createElement(Is,{round:1,icon:"pauseOutline",onClick:function(){a(Object(Ke.t)()),c()}},"Pause"),r.a.createElement(Is,{round:1,icon:"forcePlayOutline",onClick:function(){a(Object(Ke.k)({forcePlay:!0})),c()}},"Force Play"))))})),Gs=function(){var e=Object(n.useRef)(),t=Object(la.b)(ue.s),a=Object(la.b)(ue.G),o=Object(la.b)(ue.m),i=Object(la.b)(ue.o),s=Object(la.b)(ue.n),l=Object(n.useMemo)((function(){return Boolean((t||!a)&&!o&&!i&&!s)}),[t,a,o,i,s]);return r.a.createElement(gi,{hasBorder:!0},r.a.createElement(Ts,{isPlaying:l,padding:[2,2],round:!0,height:"100%",alignItems:"center",gap:1,ref:e},r.a.createElement(Ms,{isPlaying:l,isForcePlaying:!a}),r.a.createElement(Us,{target:e}),r.a.createElement(js,{isPlaying:l,tagging:"global-view"})))},Ws={warning:"#FFF8E1",error:"#FFEBEF"},Vs=Object($.d)(Z.j).attrs((function(e){var t=e.round,a=void 0===t?999:t,n=e.hollow,r=e.background;return{padding:[.5,2],round:a,border:!!n&&{side:"all",color:r,size:"1px"}}})).withConfig({displayName:"styled__StyledPill",componentId:"sc-1rgk900-0"})(["background:",";cursor:pointer;"],(function(e){var t=e.background;return e.hollow?Ws[t]:t})),Ys=Object(n.forwardRef)((function(e,t){var a=e.children,n=e.background,o=e.color,i=e.hollow,s=Object(dr.a)(e,["children","background","color","hollow"]);return r.a.createElement(Vs,Object.assign({background:n,hollow:i,ref:t},s),r.a.createElement(Z.D,{color:i?n:o,strong:!0},a))})),Xs={"data-toggle":"modal","data-target":"#alarmsModal"},Ks=function(){var e=Object(la.b)(ue.c),t=Object(n.useMemo)((function(){return e?Object.values(e.alarms):[]}),[e]),a=Object(n.useMemo)((function(){return t.reduce((function(e,t){var a=t.status;return"CRITICAL"===a&&(e.critical=e.critical+1),"WARNING"===a&&(e.warning=e.warning+1),e}),{critical:0,warning:0})}),[t]),o=a.critical,i=a.warning;return r.a.createElement(gi,{icon:"alarm"},r.a.createElement(Oi,{content:o?"".concat(o," critical alert").concat(o.length>1?"s":""):"No critical alerts",align:"bottom",plain:!0},r.a.createElement(Ys,Object.assign({background:"error",hollow:!0},Xs),o)),r.a.createElement(Oi,{content:i?"".concat(i," warning alert").concat(i.length>1?"s":""):"No warning alerts",align:"bottom",plain:!0},r.a.createElement(Ys,Object.assign({background:"warning",hollow:!0},Xs),i)))},Zs=function(){return r.a.createElement(Z.y,{app:"agent"},(function(e){var t=e.toggle,a=e.upToDate;return r.a.createElement(Oi,{content:"News",align:"bottom",plain:!0},r.a.createElement(Z.b,{"data-testid":"header-news-button",themeType:"dark",name:"news",icon:"insights",flavour:"borderless",neutral:a,warning:!a,onClick:t}))}))},qs=Object($.d)(Z.j).attrs({column:!0,padding:[2],background:"dropdown",round:1,overflow:{vertical:"auto"},margin:[2,0,0],width:80}).withConfig({displayName:"dropdown__Dropdown",componentId:"i5fe1c-0"})(["box-shadow:0px 4px 4px rgba(0,0,0,0.25);"]),$s=Object($.d)(Z.C).withConfig({displayName:"searchInput__SearchInput",componentId:"sc-1j08rwh-0"})(["& input{background:transparent;}& > label{margin-bottom:0;}"]),Js=Object(n.forwardRef)((function(e,t){var a=e.value,n=e.onChange;return r.a.createElement($s,{inputRef:t,value:a,onChange:n,placeholder:"Search",metaShrinked:!0})})),Qs=Object($.d)(Z.j).attrs({column:!0,padding:[2,0,0],overflow:{vertical:"auto"},height:{max:"320px"}}).withConfig({displayName:"container__Container",componentId:"qngq57-0"})([""]),el=Object($.d)(Z.j).attrs({justifyContent:"between",alignItems:"center",width:"100%",gap:2}).withConfig({displayName:"wrapper__Wrapper",componentId:"sc-1m1od8q-0"})([""]),tl=function(e){var t=e.name,a=e.offset,o=e.utc,i=e.onSelect,s=Object(n.useCallback)((function(){return i(o)}),[o,i]);return r.a.createElement(Is,{round:1,onClick:s,Wrapper:el},r.a.createElement(Z.B,{color:"text"},t),r.a.createElement(Z.B,{color:"textLite",whiteSpace:"nowrap"},"UTC ",a))},al=[{value:"Dateline Standard Time",abbr:"DST",text:"International Date Line West",utc:["Etc/GMT+12"]},{value:"UTC-11",abbr:"U",text:"Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{value:"Hawaiian Standard Time",abbr:"HST",text:"Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{value:"Alaskan Standard Time",abbr:"AKDT",text:"Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{value:"Pacific Standard Time (Mexico)",abbr:"PDT",text:"Baja California",utc:["America/Santa_Isabel"]},{value:"Pacific Standard Time",abbr:"PST",text:"Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{value:"US Mountain Standard Time",abbr:"UMST",text:"Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{value:"Mountain Standard Time (Mexico)",abbr:"MDT",text:"Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{value:"Mountain Standard Time",abbr:"MDT",text:"Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{value:"Central America Standard Time",abbr:"CAST",text:"Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{value:"Central Standard Time",abbr:"CDT",text:"Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{value:"Central Standard Time (Mexico)",abbr:"CDT",text:"Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{value:"Canada Central Standard Time",abbr:"CCST",text:"Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{value:"SA Pacific Standard Time",abbr:"SPST",text:"Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{value:"Eastern Standard Time",abbr:"EDT",text:"Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{value:"US Eastern Standard Time",abbr:"UEDT",text:"Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{value:"Venezuela Standard Time",abbr:"VST",text:"Caracas",utc:["America/Caracas"]},{value:"Paraguay Standard Time",abbr:"PYT",text:"Asuncion",utc:["America/Asuncion"]},{value:"Atlantic Standard Time",abbr:"ADT",text:"Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{value:"Central Brazilian Standard Time",abbr:"CBST",text:"Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{value:"SA Western Standard Time",abbr:"SWST",text:"Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{value:"Pacific SA Standard Time",abbr:"PSST",text:"Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{value:"Newfoundland Standard Time",abbr:"NDT",text:"Newfoundland",utc:["America/St_Johns"]},{value:"E. South America Standard Time",abbr:"ESAST",text:"Brasilia",utc:["America/Sao_Paulo"]},{value:"Argentina Standard Time",abbr:"AST",text:"Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{value:"SA Eastern Standard Time",abbr:"SEST",text:"Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{value:"Greenland Standard Time",abbr:"GDT",text:"Greenland",utc:["America/Godthab"]},{value:"Montevideo Standard Time",abbr:"MST",text:"Montevideo",utc:["America/Montevideo"]},{value:"Bahia Standard Time",abbr:"BST",text:"Salvador",utc:["America/Bahia"]},{value:"UTC-02",abbr:"U",text:"Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{value:"Mid-Atlantic Standard Time",abbr:"MDT",text:"Mid-Atlantic - Old",utc:[]},{value:"Azores Standard Time",abbr:"ADT",text:"Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{value:"Cape Verde Standard Time",abbr:"CVST",text:"Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{value:"Morocco Standard Time",abbr:"MDT",text:"Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{value:"UTC",abbr:"UTC",text:"Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{value:"GMT Standard Time",abbr:"GMT",text:"Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"GMT Standard Time",abbr:"GDT",text:"Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{value:"Greenwich Standard Time",abbr:"GST",text:"Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{value:"W. Europe Standard Time",abbr:"WEDT",text:"Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{value:"Central Europe Standard Time",abbr:"CEDT",text:"Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{value:"Romance Standard Time",abbr:"RDT",text:"Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{value:"Central European Standard Time",abbr:"CEDT",text:"Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{value:"W. Central Africa Standard Time",abbr:"WCAST",text:"West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{value:"Namibia Standard Time",abbr:"NST",text:"Windhoek",utc:["Africa/Windhoek"]},{value:"GTB Standard Time",abbr:"GDT",text:"Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{value:"Middle East Standard Time",abbr:"MEDT",text:"Beirut",utc:["Asia/Beirut"]},{value:"Egypt Standard Time",abbr:"EST",text:"Cairo",utc:["Africa/Cairo"]},{value:"Syria Standard Time",abbr:"SDT",text:"Damascus",utc:["Asia/Damascus"]},{value:"E. Europe Standard Time",abbr:"EEDT",text:"E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"South Africa Standard Time",abbr:"SAST",text:"Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{value:"FLE Standard Time",abbr:"FDT",text:"Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"Turkey Standard Time",abbr:"TDT",text:"Istanbul",utc:["Europe/Istanbul"]},{value:"Israel Standard Time",abbr:"JDT",text:"Jerusalem",utc:["Asia/Jerusalem"]},{value:"Libya Standard Time",abbr:"LST",text:"Tripoli",utc:["Africa/Tripoli"]},{value:"Jordan Standard Time",abbr:"JST",text:"Amman",utc:["Asia/Amman"]},{value:"Arabic Standard Time",abbr:"AST",text:"Baghdad",utc:["Asia/Baghdad"]},{value:"Kaliningrad Standard Time",abbr:"KST",text:"Kaliningrad",utc:["Europe/Kaliningrad"]},{value:"Arab Standard Time",abbr:"AST",text:"Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{value:"E. Africa Standard Time",abbr:"EAST",text:"Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{value:"Moscow Standard Time",abbr:"MSK",text:"Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{value:"Samara Time",abbr:"SAMT",text:"Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{value:"Iran Standard Time",abbr:"IDT",text:"Tehran",utc:["Asia/Tehran"]},{value:"Arabian Standard Time",abbr:"AST",text:"Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{value:"Azerbaijan Standard Time",abbr:"ADT",text:"Baku",utc:["Asia/Baku"]},{value:"Mauritius Standard Time",abbr:"MST",text:"Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{value:"Georgian Standard Time",abbr:"GET",text:"Tbilisi",utc:["Asia/Tbilisi"]},{value:"Caucasus Standard Time",abbr:"CST",text:"Yerevan",utc:["Asia/Yerevan"]},{value:"Afghanistan Standard Time",abbr:"AST",text:"Kabul",utc:["Asia/Kabul"]},{value:"West Asia Standard Time",abbr:"WAST",text:"Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{value:"Yekaterinburg Time",abbr:"YEKT",text:"Yekaterinburg",utc:["Asia/Yekaterinburg"]},{value:"Pakistan Standard Time",abbr:"PKT",text:"Islamabad, Karachi",utc:["Asia/Karachi"]},{value:"India Standard Time",abbr:"IST",text:"Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata"]},{value:"Sri Lanka Standard Time",abbr:"SLST",text:"Sri Jayawardenepura",utc:["Asia/Colombo"]},{value:"Nepal Standard Time",abbr:"NST",text:"Kathmandu",utc:["Asia/Kathmandu"]},{value:"Central Asia Standard Time",abbr:"CAST",text:"Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{value:"Bangladesh Standard Time",abbr:"BST",text:"Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{value:"Myanmar Standard Time",abbr:"MST",text:"Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{value:"SE Asia Standard Time",abbr:"SAST",text:"Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{value:"N. Central Asia Standard Time",abbr:"NCAST",text:"Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{value:"China Standard Time",abbr:"CST",text:"Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{value:"North Asia Standard Time",abbr:"NAST",text:"Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{value:"Singapore Standard Time",abbr:"MPST",text:"Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{value:"W. Australia Standard Time",abbr:"WAST",text:"Perth",utc:["Antarctica/Casey","Australia/Perth"]},{value:"Taipei Standard Time",abbr:"TST",text:"Taipei",utc:["Asia/Taipei"]},{value:"Ulaanbaatar Standard Time",abbr:"UST",text:"Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{value:"North Asia East Standard Time",abbr:"NAEST",text:"Irkutsk",utc:["Asia/Irkutsk"]},{value:"Japan Standard Time",abbr:"JST",text:"Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{value:"Korea Standard Time",abbr:"KST",text:"Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{value:"Cen. Australia Standard Time",abbr:"CAST",text:"Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{value:"AUS Central Standard Time",abbr:"ACST",text:"Darwin",utc:["Australia/Darwin"]},{value:"E. Australia Standard Time",abbr:"EAST",text:"Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{value:"AUS Eastern Standard Time",abbr:"AEST",text:"Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{value:"West Pacific Standard Time",abbr:"WPST",text:"Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{value:"Tasmania Standard Time",abbr:"TST",text:"Hobart",utc:["Australia/Currie","Australia/Hobart"]},{value:"Yakutsk Standard Time",abbr:"YST",text:"Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{value:"Central Pacific Standard Time",abbr:"CPST",text:"Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{value:"Vladivostok Standard Time",abbr:"VST",text:"Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{value:"New Zealand Standard Time",abbr:"NZST",text:"Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{value:"UTC+12",abbr:"U",text:"Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{value:"Fiji Standard Time",abbr:"FST",text:"Fiji",utc:["Pacific/Fiji"]},{value:"Magadan Standard Time",abbr:"MST",text:"Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{value:"Kamchatka Standard Time",abbr:"KDT",text:"Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{value:"Tonga Standard Time",abbr:"TST",text:"Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{value:"Samoa Standard Time",abbr:"SST",text:"Samoa",utc:["Pacific/Apia"]}],nl=new Date,rl=function(){return new Intl.DateTimeFormat("default",{}).resolvedOptions()},ol=function(){var e={};return al.reduce((function(t,a){var n=a.utc;try{var r=new Intl.DateTimeFormat("fr",{timeZone:n[0],timeZoneName:"short"}).format(nl).match(/[\u2212+].+/)||[],o=function(e){return e?e.replace("\u2212","-"):""}(Object(A.a)(r,1)[0]);if(e[o])return t.concat(Object(g.a)({},a,{offset:e[o]}));var i=function(e){if(!e)return"+0";var t=e.split(":");return t.length>1?"".concat(t[0]).concat((t[1]/60).toString().substr(1)):t[0]}(o);return e[o]=i,t.concat(Object(g.a)({},a,{offset:i}))}catch(s){return t}}),[])}().sort((function(e,t){return e.offset-t.offset})),il=ol.reduce((function(e,t){var a=t.utc,n=Object(dr.a)(t,["utc"]);return a.forEach((function(t){return e[t]=Object(g.a)({},n,{utc:t})})),e}),{}),sl=function(){var e=Object(n.useState)(""),t=Object(A.a)(e,2),a=t[0],o=t[1],i=Object(En.a)(),s=Object(A.a)(i,2),l=s[0],c=s[1],u=Object(n.useRef)(),d=Object(n.useRef)(),h=window.urlOptions.updateUtcParam;Object(n.useEffect)((function(){d.current&&l&&d.current.focus()}),[l]);var p=Object(la.a)(),f=Object(la.b)(ue.L),g=Object(n.useMemo)((function(){var e=Object(Wt.b)().utc,t=void 0===e?"":e,a=function(e,t){var a=t||("default"===e?rl().timeZone:e);return il[a in il?a:rl().timeZone]||{}}(f,t),n=a.offset,r=void 0===n?"":n,o=a.utc,i=void 0===o?"":o;return t!==i&&h(i),f!==i&&p(Object(Ke.v)({key:"timezone",value:i})),p(Object(Ke.v)({key:"utcOffset",value:parseFloat(r)})),r}),[f]),m=Object(n.useMemo)((function(){return a?ol.filter((function(e){var t=e.text,n=e.offset;return t.toUpperCase().includes(a.toUpperCase())||n.includes(a)})):ol}),[a]),b=function(){c(!1),o("")},v=Object(n.useCallback)((function(e){h(e),p(Object(Ke.v)({key:"timezone",value:e})),b()}),[]),_=Object(n.useCallback)((function(e){return o(e.target.value)}),[]);return r.a.createElement(gi,{hasBorder:!0},r.a.createElement(Is,{round:1,onClick:c,ref:u,Wrapper:el},r.a.createElement(Z.j,{gap:1},r.a.createElement(Z.B,{color:"textLite",whiteSpace:"nowrap"},"UTC ",g)),r.a.createElement(Z.o,{name:"chevron_down",color:"text",width:"12px",height:"12px"})),u.current&&l&&r.a.createElement(Z.h,{target:u.current,align:{top:"bottom",left:"left"},onEsc:b,onClickOutside:b,animation:!0},r.a.createElement(qs,null,r.a.createElement(Js,{value:a,onChange:_,ref:d}),r.a.createElement(Qs,null,m.map((function(e){var t=e.text,a=e.offset,n=e.utc;return r.a.createElement(tl,{key:t,name:t,offset:a,utc:n[0],onSelect:v})}))))))},ll=a(58),cl=a(580),ul=a(74),dl=a(127),hl=a(188),pl=Object($.d)(Z.j).attrs({position:"absolute"}).withConfig({displayName:"iframe__IframeContainer",componentId:"sc-1tybwh7-0"})(["display:none;"]),fl=function(e){var t=e.signedIn,a=Object(n.useState)(!1),o=Object(A.a)(a,2),i=o[0],s=o[1],l=Object(n.useRef)(),c=Object(n.useRef)(),u=Object(cl.a)(Xt),d=Object(A.a)(u,3),h=d[0],p=d[2],f=Object(la.b)(ue.f),g=Object(la.b)(ue.x),m=Object(la.a)(),v=window.location,_=v.origin,y=v.pathname,O=encodeURIComponent(g.hostname),x=encodeURIComponent(_+y),w=Object(Ve.d)(f,"sign-in?id=".concat(g.machineGuid,"&name=").concat(O,"&origin=").concat(x));Object(ul.b)("hello-from-sign-in",(function(e){l.current=e})),Object(dl.a)();var E=Object(n.useCallback)((function(){s(!0),setTimeout((function(){return m(Object(b.c)({offline:void 0===l.current}))}),500)}),[]);return Object(n.useEffect)((function(){var e=function(e){(null===e||void 0===e?void 0:e.target)&&(e.target.src!==w||i||E())};return window.addEventListener("DOMFrameContentLoaded",e),function(){return window.removeEventListener("DOMFrameContentLoaded",e)}}),[w,i,E]),Object(n.useEffect)((function(){if(t&&c.current&&g.registryServer&&g.registryServer!==Ve.b&&h){p();var e=g.registryMachinesArray;e&&e.length>0&&Object(ul.a)(c.current,{type:"synced-private-registry",payload:e})}}),[t,g,h]),r.a.createElement(pl,{as:"iframe",id:hl.a,src:w,onLoad:E})},gl=function(){var e=Object(s.d)(),t=Object(cl.a)("has-sign-in-history"),a=Object(A.a)(t,2),r=a[0],o=a[1],i=Object(n.useState)(r),l=Object(A.a)(i,2),c=l[0],u=l[1],d=Object(n.useCallback)((function(t){t&&(u(t),o(t)),e(Object(b.b)({isSignedIn:t}))}),[]),h=Object(ul.b)("is-signed-in",d);return[Object(A.a)(h,1)[0],c]},ml=function(){var e=gl(),t=Object(A.a)(e,1)[0];return Object(s.e)(ue.u)&&r.a.createElement(Oi,{content:"Sign in to Netdata to monitor all your nodes at once, have composite charts, custom dashboards, use intelligent features and more",align:"bottom",plain:!0},r.a.createElement("div",null,r.a.createElement(fl,{signedIn:t}),!t&&r.a.createElement(ll.a,{utmParameters:{content:"topbar"}},(function(e){var t=e.isRegistry,a=e.link,n=e.offline,o=e.onSignIn;return r.a.createElement(Z.b,Object.assign({"data-testid":"header-signin",label:"Sign in",disabled:n},t?{as:"a",href:a}:{onClick:o}))}))))},bl=a(306),vl=function(e){var t=e.label,a=e.active,n=e.showBorderLeft,o=e.icon,i=e.onActivate;return r.a.createElement(Z.w,{onActivate:function(){a||i&&i()},icon:r.a.createElement(Z.o,{name:o,size:"small"}),fixed:!0,closable:!1,showBorderLeft:n,active:a},r.a.createElement(Z.B,null,t))},_l="Discover the free benefits of Netdata Cloud",yl=a(91),Ol=function(e){var t=e.children;return r.a.createElement(Z.B,{fontSize:"16px"},t)},xl={Home:{id:"Home",label:"Home",header:"Home",text:function(){return r.a.createElement(Ol,null,"The Home view in Netdata cloud provides summarized relevant information in an easily digestible display. You can see information about your nodes, data collection and retention stats, alerts, users and dashboards.")},icon:"room_home",image:"images/home.png"},nodeView:{id:"nodeView",label:"Node View",header:"Node View",text:function(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(Ol,null,"The single node view you are currently using will of course be available on Netdata Cloud as well. In addition, the charts and visualization on Netdata Cloud will be more flexible and powerful for troubleshooting than what is available on the agent."),r.a.createElement(Ol,null,"Netdata Cloud also comes with the Metric Correlations feature that lets you quickly find metrics and charts related to a particular window of interest that you want to explore further. By displaying the standard Netdata dashboard, filtered to show only charts that are relevant to the window of interest, you can get to the root cause sooner."))},icon:"nodes_hollow",image:"images/nodeView.png"},Overview:{id:"Overview",label:"Overview",header:"Overview",text:function(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(Ol,null,"The Overview tab is a great way to monitor your infrastructure using Netdata Cloud. While the interface might look similar to local dashboards served by an Agent, or even the single-node dashboards in Netdata Cloud, Overview uses composite charts. These charts display real-time aggregated metrics from all the nodes (or a filtered selection) in a given War Room."),r.a.createElement(Ol,null,"With Overview's composite charts, you can see your infrastructure from a single pane of glass, discover trends or anomalies, then drill down by grouping metrics by node and jumping to single-node dashboards for root cause analysis."),r.a.createElement(Ol,null,"Here's an example of a composite chart visualizing Disk I/O bandwidth from 5 different nodes in one chart."))},icon:"room_overview",image:"images/overview.png"},Nodes:{id:"Nodes",label:"Nodes",header:"Nodes",text:function(){return r.a.createElement(Ol,null,"The Nodes view in Netdata Cloud lets you see and customize key metrics from any number of Agent-monitored nodes and seamlessly navigate to any node's dashboard for troubleshooting performance issues or anomalies using Netdata's highly-granular metrics.")},icon:"nodes_hollow",image:"images/nodes.jpg"},Dashboards:{id:"Dashboards",label:"Dashboards",header:"Dashboards",text:function(){return r.a.createElement(Ol,null,"With Netdata Cloud, you can build new dashboards that target your infrastructure's unique needs. Put key metrics from any number of distributed systems in one place for a bird's eye view of your infrastructure.")},icon:"dashboard",image:"images/dashboards.png"},Alerts:{id:"Alerts",label:"Alerts",header:"Alerts",text:function(){return r.a.createElement(Ol,null,"The Alerts view gives you a high level of availability and performance information for every node you're monitoring with Netdata Cloud. It also offers an easy way to drill down into any particular alert by taking the user to the dedicated alert view from where the user can run metrics correlation or take further troubleshooting steps.")},icon:"alarm",image:"images/alerts.jpg"},Anomalies:{id:"Anomalies",label:"Anomalies",header:"Anomaies",text:function(){return r.a.createElement(Ol,null,"The Anomalies view on Netdata Cloud lets you quickly surface potentially anomalous metrics and charts related to a particular highlight window of interest using Anomaly Advisor. Anomalies are detected using per metric unsupervised machine learning running at the edge!")},icon:"anomaliesLens",video:"https://user-images.githubusercontent.com/24860547/165943403-1acb9759-7446-4704-8955-c566d04ad7ab.mp4"},Pricing:{id:"Pricing",label:"Pricing",header:"Pricing",text:function(){return r.a.createElement(Ol,null,"Netdata Cloud\u2019s distributed architecture\u2014with processing occurring at the individual nodes\u2014enables us to add any number of users at marginal cost. Couple this with our upcoming paid plan with added functionality for enterprise customers, and it means we can commit to providing our current functionality for free, always.")},image:"images/pricing.png",icon:"pricing"},Privacy:{id:"Privacy",label:"Privacy",header:"Privacy",text:function(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(Ol,null,"Data privacy is very important to us. We firmly believe that your data belongs to you. This is why we don't store any metric data in Netdata Cloud."),r.a.createElement(Ol,null,"Your local installations of the Netdata Agent form the basis for the Netdata Cloud. All the data that you see in the web browser when using Netdata Cloud, is actually streamed directly from the Netdata Agent to the Netdata Cloud dashboard. The data passes through our systems, but it isn't stored. You can learn more about"," ",r.a.createElement(yl.a,{target:"_blank",rel:"noopener noreferrer",href:"https://learn.netdata.cloud/docs/agent/netdata-security"},"the Agent's security design")," ","design in the Agent documentation."),r.a.createElement(Ol,null,"However, to be able to offer the stunning visualizations and advanced functionality of Netdata Cloud, it does store a limited number of metadata. This metadata is ONLY available to Netdata and NEVER to any 3rd parties. You can learn more about what metadata is stored in Netdata cloud in our",r.a.createElement(yl.a,{target:"_blank",rel:"noopener noreferrer",href:"https://learn.netdata.cloud/docs/cloud/data-privacy"}," ","documentation")))},icon:"privacy"}},wl=function(e){var t=e.parentRef,a=e.isDropdownOpen,n=e.closeDropdown,o=e.text,i=e.header,s=e.handleGoToCloud,l=e.image,c=e.video;return t.current&&a?r.a.createElement(Z.h,{backdrop:!0,"data-testid":"selectedNodesDropdown",onEsc:n,align:{top:"bottom",left:"left"},target:t.current,onClickOutside:n},r.a.createElement(Z.t,{background:"modalBackground"},r.a.createElement(Z.v,null,r.a.createElement(Z.j,{gap:2},r.a.createElement(Z.o,{color:"white",name:"netdata"}),r.a.createElement(Z.k,{margin:[0]},"Discover the free benefits of Netdata Cloud",":")),r.a.createElement(Z.s,{onClose:n})),r.a.createElement(Z.r,null,r.a.createElement(Z.j,{column:!0,width:189,height:130},r.a.createElement(Z.j,{padding:[0,0,4,0],column:!0,gap:4},r.a.createElement(Z.j,{alignItems:"center"},r.a.createElement(Z.l,{margin:[0]},i),r.a.createElement(Z.a,{sx:{marginLeft:"auto"},"data-testid":"go-to-cloud-cta",margin:[0,2,0,0],width:{min:40}},r.a.createElement(ll.a,{utmParameters:{campaign:"discover_cloud"}},(function(e){var t=e.link;return r.a.createElement(Z.a,{label:r.a.createElement(Z.B,{textTransform:"none",strong:!0,color:"panel"},"Sign in to Netdata Cloud!"),width:"100%",onClick:function(){return s({link:t})},"data-testid":"cta1-button",as:Z.b,small:!0,"data-ga":"go-to-cloud-button"})})))),o()),l&&r.a.createElement(Z.j,{height:"auto",width:"100%",overflow:"hidden"},r.a.createElement(Z.a,{sx:{width:"100%",height:"auto"},as:"img",src:l})),c&&r.a.createElement(Z.j,{height:"100%",width:"100%"},r.a.createElement(Z.a,{sx:{width:"100%",height:"100%"}},r.a.createElement("iframe",{title:"discover-cloud-iframe}",width:"100%",height:"100%",src:c,frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0}))))),r.a.createElement(Z.u,null))):null},El=Z.j,Sl=Z.j,Cl=function(){var e=Object(n.useState)(!1),t=Object(A.a)(e,2),a=t[0],o=t[1],i=Object(n.useState)(null),s=Object(A.a)(i,2),l=s[0],c=s[1],u=Object(n.useRef)(),d=function(){o(!0)};return r.a.createElement(El,{padding:[0,0,0,4],position:"relative",height:15},r.a.createElement(Sl,{padding:[4,2,4,2],gap:4,height:"100%",justifyContent:"center",alignItems:"center"},r.a.createElement(Z.B,{color:"primary"},_l,":"),r.a.createElement(Z.j,{ref:u},r.a.createElement(Z.x,null,Object.keys(xl).map((function(e,t){var a=xl[e],n=a.label,o=a.icon,i=a.id,s=l?l.id:null;return r.a.createElement(vl,{key:e,icon:o,active:i===s,label:n,showBorderLeft:0===t,onActivate:Object(Ve.c)(d,(function(){c(xl[e])}))})}))))),r.a.createElement(wl,Object.assign({parentRef:u,isDropdownOpen:a},l,{closeDropdown:Object(Ve.c)((function(){o(!1)}),(function(){c(null)})),handleGoToCloud:function(e){var t=e.link;window.location.href=t}})))},Al=Object($.d)(Z.j).attrs({as:"header",position:"relative",justifyContent:"between",background:"panel",zIndex:20,width:"100%",padding:[2,4,2,4]}).withConfig({displayName:"header__Wrapper",componentId:"c0wsrq-0"})(["pointer-events:all;"]),kl=function(){var e=Object(s.e)(ue.u);return r.a.createElement(Al,null,r.a.createElement(Z.j,{alignItems:"center",gap:3},r.a.createElement(bi,null)),r.a.createElement(Z.j,{justifyContent:"end",alignItems:"center",gap:3},r.a.createElement(bl.CloudConnectionStatus,null),r.a.createElement(Si,null),r.a.createElement(Zs,null),r.a.createElement(xi,null),r.a.createElement(sl,null),r.a.createElement(Gs,null),r.a.createElement(Ks,null),r.a.createElement(ml,null)),e&&r.a.createElement(Z.a,{sx:{background:"#272B30"},position:"absolute",top:"52px",left:"0px",right:"0px"},r.a.createElement(Cl,null)))},jl=Object($.d)(Z.b).withConfig({displayName:"expandButton__ExpandButton",componentId:"ebkdno-0"})(["&&{> .button-icon{width:6px;height:9px;}"]),Tl=a(143),Dl=function(e){var t=e.flavour,a=void 0===t?"default":t,n=Object(dr.a)(e,["flavour"]),o=Object(s.e)(ue.f);return r.a.createElement(Z.j,Object.assign({alignItems:"center",as:"iframe",src:"".concat(Object(Tl.a)(o,"sign-out"),"?type=").concat(a),border:{side:"all",size:"0px"},width:{max:"128px"},height:{max:"40px"}},n))},Pl=function(){return r.a.createElement(ll.a,{utmParameters:{content:"userSettings"}},(function(e){var t=e.isRegistry,a=e.link,n=e.onSignIn;return r.a.createElement(Z.B,{onClick:t?function(e){return function(e,t){e.stopPropagation(),window.location.href=t}(e,a)}:n},"Sign in")}))},Ml=Object(Ha.a)((function(e){return e.dashboard}),(function(e){return e.isSignedIn})),Ll=function(){var e=Object(En.a)(),t=Object(A.a)(e,2),a=t[0],o=t[1],i=Object(la.b)(Ml),s=Object(n.useMemo)((function(){return[].concat(Object(C.a)(i?[{children:"Operational Status",onClick:function(){return window.open("https://status.netdata.cloud","_blank","noopener,noreferrer")}}]:[]),Object(C.a)(i?[{separator:!0}]:[]),Object(C.a)(i?[{children:r.a.createElement(Dl,{"data-testid":"signout-button-sidebar",flavour:"borderless",height:{max:"18px"}})}]:[{children:r.a.createElement(Pl,null)}]))}),[i]);return r.a.createElement($.b,{theme:Z.e},r.a.createElement(Z.b,{"data-testid":"avatar-button-sidebar",flavour:"borderless",neutral:!0,icon:"user",title:"User settings",name:"userSettings",onClick:o}),a&&r.a.createElement(Z.p,{position:"bottom-left",onClickOutside:o,onEsc:o,backdrop:!1,margin:[5,18]},r.a.createElement(Z.j,{column:!0,width:52,background:"mainBackground",padding:[3],round:!0},s.map((function(e,t){return e.separator?r.a.createElement(Z.j,{height:"1px",background:"disabled",key:t}):r.a.createElement(Is,Object.assign({key:t,padding:[2,4],round:1},e.onClick&&{onClick:e.onClick}),e.children)})))))},Il=function(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(Z.j,{width:"40px",height:"40px",round:2,border:{side:"all",color:"border",size:"2px",type:"dotted"}}),r.a.createElement(Z.j,{height:"1px",background:"separator",width:"20px"}),r.a.createElement(Z.b,{icon:"plus",disabled:!0}))},Nl=function(){var e=Object(la.b)(ue.f);return r.a.createElement(Z.j,{as:"iframe",src:Object(Ve.d)(e,"space-bar"),title:"Space Bar",height:"100%",width:"100%",border:{side:"all",size:"0px"},overflow:"hidden"})},Rl=function(e){var t=e.isOpen,a=e.toggle,n=e.isSignedIn,o=Object(s.e)(ue.u);return r.a.createElement(Z.j,{column:!0,justifyContent:"between",background:"panel",padding:[3,0],width:"64px",alignItems:"center",gap:6,position:"relative",overflow:"hidden"},r.a.createElement(Z.j,{column:!0,gap:4,alignItems:"center",height:"100%",overflow:"hidden"},r.a.createElement(Z.o,{color:"success",name:"netdataPress",height:"32px",width:"32px"}),!t&&r.a.createElement(jl,{icon:"chevron_right_s",onClick:a,small:!0,neutral:!0,flavour:"borderless",themeType:"dark"}),o&&n&&r.a.createElement(Nl,null),o&&!n&&r.a.createElement(Il,null)),r.a.createElement(Z.j,{column:!0,gap:4,alignItems:"center"},r.a.createElement(Z.g,{app:"agent"},(function(e){return r.a.createElement(Z.b,{flavour:"borderless",neutral:!0,themeType:"dark",className:"btn",icon:"question",onClick:e,title:"Need help?"})})),r.a.createElement(Z.b,{flavour:"borderless",neutral:!0,themeType:"dark",className:"btn","data-toggle":"modal","data-target":"#optionsModal",icon:"gear",title:"Settings"}),o&&r.a.createElement(Ll,null)))},Bl=function(e){for(var t,a,n=[],r=0,o=-1,i=0;t=(a=e.charAt(r++)).charCodeAt(0);){var s=t>=48&&t<=57;s!==i&&(n[++o]="",i=s),n[o]+=a}return n},Fl=function(e,t){for(var a=Bl(e.toLowerCase()),n=Bl(t.toLowerCase()),r=0;a[r]&&n[r];r++)if(a[r]!==n[r]){var o=Number(a[r]),i=Number(n[r]);return o.toString()===a[r]&&i.toString()===n[r]?o-i:a[r]>n[r]?1:-1}return a.length-n.length},Hl=function(e,t){return"".concat(e,"/host/").concat(t,"/")},zl=function(e,t,a){if(!e||!t)return{};var n=function(e){var t=document.location.origin.toString()+decodeURI(document.location.pathname.toString());return t.endsWith("/host/".concat(e,"/"))&&(t=t.substring(0,t.length-"/host/".concat(e,"/").toString().length)),t.endsWith("/")&&(t=t.substring(0,t.length-1)),t}(t);return{parentNode:{hostname:Object(A.a)(e,1)[0].hostname,url:"".concat(n,"/")},replicatedNodes:e.slice(1).map((function(e,t){var r,o=e.hostname;return{hostname:o,url:Hl(n,o),status:(null===(r=a.find((function(e){return e.hostname===o})))||void 0===r?void 0:r.reachable)||!1}})).sort((function(e,t){return Fl(e.hostname,t.hostname)}))}},Ul=Object($.d)(Z.j).attrs({as:"a",gap:2,alignItems:"center"}).withConfig({displayName:"anchor__Anchor",componentId:"sc-8wivg4-0"})(["&:hover{text-decoration:none;}"]),Gl=function(e){var t=e.hostname,a=e.url,n=e.status;return r.a.createElement(Ul,{href:a,justifyContent:"between",padding:[0,0,0,2]},r.a.createElement(Z.j,{alignItems:"center",gap:2},r.a.createElement(Z.o,{name:"node",color:"bright"}),r.a.createElement(Z.B,{color:"bright",truncate:!0},t)),r.a.createElement(Ys,{background:n?"success":"border",color:"bright",round:10},n?"Live":"Off"))},Wl=Object($.d)(Z.C).withConfig({displayName:"replicatedNodes__Search",componentId:"sc-1bn9jso-0"})(["& > label{margin-bottom:0;}"]),Vl=Object($.d)(Z.o).withConfig({displayName:"replicatedNodes__StyledIcon",componentId:"sc-1bn9jso-1"})(["transform:",";"],(function(e){return e.right?"rotate(270deg)":"none"})),Yl=function(e){var t=e.parentNode,a=e.replicatedNodes,o=Object(n.useState)(!0),i=Object(A.a)(o,2),s=i[0],l=i[1],c=Object(n.useState)(""),u=Object(A.a)(c,2),d=u[0],h=u[1],p=Object(n.useCallback)((function(){return l((function(e){return!e}))}),[]),f=Object(n.useCallback)((function(e){return h(e.target.value)}),[]),g=Object(n.useMemo)((function(){return d?a.filter((function(e){return e.hostname.toLowerCase().includes(d.toLowerCase())})):a}),[a,d]);return r.a.createElement(Bs,{isOpen:s,toggleOpen:p,label:r.a.createElement(Z.j,{alignItems:"center",justifyContent:"between"},r.a.createElement(Z.B,{strong:!0,color:"border"},"Replicated nodes"),r.a.createElement(Vl,{right:!s,name:"chevron_down",size:"small",color:"text"}))},r.a.createElement(Z.j,{column:!0,gap:4,padding:[4,0,0]},r.a.createElement(Ul,{as:"a",href:t.url,justifyContent:"start"},r.a.createElement(Z.o,{name:"nodes",size:"small",color:"bright"}),r.a.createElement(Z.B,{color:"bright"},t.hostname)),g.length>=5&&r.a.createElement(Z.j,{padding:[0,0,0,2]},r.a.createElement(Wl,{value:d,onChange:f,iconLeft:r.a.createElement(Z.o,{name:"search_s",size:"small",color:"text"}),metaShrinked:!0})),r.a.createElement(Z.j,{column:!0,gap:2},g.map((function(e){var t=e.hostname,a=e.url,n=e.status;return r.a.createElement(Gl,{key:t,hostname:t,url:a,status:n})})))))},Xl=function(e){var t=e.parentNode,a=e.replicatedNodes,o=Object(la.b)(ue.f),i=Object(n.useRef)(),s=Object(ul.b)("hello-from-space-panel"),l=Object(A.a)(s,1)[0];return Object(n.useEffect)((function(){l&&i.current&&Object(ul.a)(i.current,{type:"streamed-hosts-data",payload:{parentNode:t,replicatedNodes:a}})}),[a,t,l]),r.a.createElement(Z.j,{ref:i,as:"iframe",src:Object(Tl.a)(o,"space-panel"),title:"space panel",width:"100%",height:"100%",border:{side:"all",size:"0px"}})},Kl={signIn:{title:"Welcome back!",content:[r.a.createElement(Z.F,{key:"1",color:"bright"},"Sign in again to enjoy the benefits of Netdata Cloud"," ")]},signUp:{title:"Welcome to Netdata Cloud!",content:[r.a.createElement(Z.F,{key:"1",color:"bright"},r.a.createElement(Z.F,{strong:!0,color:"bright"},"A single place")," ","for all your nodes."),r.a.createElement(Z.F,{key:"2",color:"bright"},r.a.createElement(Z.F,{strong:!0,color:"bright"},"Multi-node dashboards")," ","out of the box."),r.a.createElement(Z.F,{key:"3",color:"bright"},r.a.createElement(Z.F,{strong:!0,color:"bright"},"Custom dashboards")," ","for you to create, edit and share online."),r.a.createElement(Z.F,{key:"4",color:"bright"},r.a.createElement(Z.F,{strong:!0,color:"bright"},"Metric Correlations")," ","to find the root cause of anything."),r.a.createElement(Z.F,{key:"5",color:"bright"},r.a.createElement(Z.F,{strong:!0,color:"bright"},"Centrally dispatched notifications")," ","for all alarms of all your nodes."),r.a.createElement(Z.F,{key:"6",color:"bright"},"And... It is"," ",r.a.createElement(Z.F,{as:"a",href:"https://www.netdata.cloud/get-netdata/",target:"_blank",rel:"noopener noreferrer",strong:!0,color:"bright"},"free, forever!"))]}},Zl=function(){return r.a.createElement(ll.a,{utmParameters:{content:"sidebar"}},(function(e){var t=e.isRegistry,a=e.link,n=e.onSignIn,o=e.offline,i=Kl.signIn,s=i.title,l=i.content;return r.a.createElement(Z.j,{background:["neutral","regentgrey"],column:!0,gap:4,padding:[10],border:{side:"right",color:"panel"}},r.a.createElement(Z.B,{color:"bright",strong:!0},s),l.map((function(e){return e})),r.a.createElement(Z.b,Object.assign({width:"100%",label:"Sign in",disabled:o},t?{as:"a",href:a}:{onClick:n})))}))},ql=function(){return r.a.createElement("svg",{width:"68",height:"68",viewBox:"0 0 68 68",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r.a.createElement("path",{d:"M48.875 6.375H19.125C16.7778 6.375 14.875 8.27779 14.875 10.625V40.375C14.875 42.7222 16.7778 44.625 19.125 44.625H48.875C51.2222 44.625 53.125 42.7222 53.125 40.375V10.625C53.125 8.27779 51.2222 6.375 48.875 6.375Z",fill:"white",stroke:"#AEB3B7"}),r.a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M41.0834 38.25C41.8658 38.25 42.5 38.8843 42.5 39.6667V41.0833C44.0648 41.0833 45.3334 42.3519 45.3334 43.9167V58.0833C45.3334 59.6481 44.0648 60.9167 42.5 60.9167H38.25V65.1667H31.8278V60.9167H26.9167C25.3519 60.9167 24.0834 59.6481 24.0834 58.0833V43.9167C24.0834 42.3519 25.3519 41.0833 26.9167 41.0833V39.6667C26.9167 38.8843 27.551 38.25 28.3334 38.25H41.0834Z",fill:"#35414A"}),r.a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M39.7954 12.75C40.5778 12.75 41.2121 13.3843 41.2121 14.1667L41.2108 16.7294L43.9166 16.7296C44.699 16.7296 45.3333 17.3639 45.3333 18.1463V34C45.3333 34.7824 44.699 35.4167 43.9166 35.4167L43.272 35.4152L43.2727 33.3403H41.2121L41.2108 35.4152H39.151L39.1515 33.3403H37.0909L37.0897 35.4152H35.0299L35.0303 33.3403H32.9697L32.9686 35.4152H30.9088L30.909 33.3403H28.8484L28.8475 35.4152H26.7877L26.7878 33.3403H24.7272L24.7265 35.4152L24.0833 35.4167C23.3009 35.4167 22.6666 34.7824 22.6666 34V18.1463C22.6666 17.3639 23.3009 16.7296 24.0833 16.7296L26.7877 16.7294L26.7878 14.1667C26.7878 13.3843 27.4221 12.75 28.2045 12.75H39.7954Z",fill:"#35414A"}))},$l=function(){return r.a.createElement(Z.j,{alignItems:"center",background:["neutral","regentgrey"],column:!0,gap:1,padding:[10]},r.a.createElement(Z.F,{color:"bright",strong:!0,textAlign:"center"},"Can't connect to Netdata Cloud"),r.a.createElement(ql,null),r.a.createElement(Z.E,{color:"bright",textAlign:"center",margin:[2,0,0]},"Maybe you are behind a firewall or you don\u2019t have connection to the internet"))},Jl=a(624),Ql=(a(561),a(562),a(563),$.d.div.withConfig({displayName:"styled__NodesContainer",componentId:"sc-9qwvkl-0"})([".mdc-list-item{padding:0 0;padding-left:0;}.rmwc-collapsible-list__children{.mdc-list-item{padding:0 0;padding-left:0;height:",";}}.rmwc-collapsible-list__handle{.mdc-list-item{padding:0 ",";}}.mdc-list-item__meta{color:",";}.mdc-list-item:before{background:none;}"],Object(Z.J)(4),Object(Z.J)(2),Object(Z.H)("bright"))),ec=$.d.div.withConfig({displayName:"styled__ListItem",componentId:"sc-9qwvkl-1"})(["width:100%;min-height:",";display:flex;flex-flow:row nowrap;align-items:center;cursor:pointer;justify-content:space-between;"],Object(Z.J)(3)),tc=Object($.d)(Z.o).withConfig({displayName:"styled__TrashIcon",componentId:"sc-9qwvkl-2"})(["fill:#35414a;margin-right:",";transition:opacity 0.4s ease-in;&:hover{opacity:0.6;}"],Object(Z.J)(2)),ac=Object($.d)(Z.o).withConfig({displayName:"styled__StyledIcon",componentId:"sc-9qwvkl-3"})(["flex-shrink:0;flex-grow:0;margin-right:",";fill:",";"],Object(Z.J)(2),Object(Z.H)(["gray","arsenic"])),nc=Object($.d)(Z.E.withComponent("a")).withConfig({displayName:"styled__NodeUrl",componentId:"sc-9qwvkl-4"})(["text-decoration:none;margin-left:",";color:#aeb3b7;max-width:145px;word-wrap:break-word;&:hover{color:inherit;text-decoration:none;}"],Object(Z.J)(5)),rc=Object($.d)(Z.B.withComponent("a")).withConfig({displayName:"styled__NodeName",componentId:"sc-9qwvkl-5"})(["flex:1;overflow:hidden;text-overflow:ellipsis;min-width:0;white-space:nowrap;"]),oc=function(e){var t=e.name,a=e.alternateUrls,n=e.machineGuid;return r.a.createElement(Jl.a,{handle:r.a.createElement(Ao.b,{text:r.a.createElement(r.a.Fragment,null,r.a.createElement(ac,{name:"node"}),r.a.createElement(rc,{color:"bright",href:"",onClick:function(e){e.preventDefault(),e.stopPropagation(),window.gotoServerModalHandler(n)}},t)),metaIcon:a.length&&"chevron_right"})},r.a.createElement(Z.a,{margin:[2,0,0]},a.map((function(e){return r.a.createElement(ec,{key:e},r.a.createElement(nc,{href:e},function(e,t){if(e.length<=t)return e;var a=Math.floor((t-3)/2);return"".concat(e.substring(0,a),"...").concat(e.substring(e.length-a))}(e,50)),r.a.createElement(tc,{name:"trashcan",size:"small",onClick:function(){window.deleteRegistryModalHandler(n,t,e)}}))}))))},ic=function(e){var t=e.machinesArray.sort((function(e,t){return Fl(e.name,t.name)})).filter((function(e){return e.url!==h.c})),a=Object(n.useState)(!0),o=Object(A.a)(a,2),i=o[0],s=o[1],l=Object(n.useCallback)((function(){return s((function(e){return!e}))}),[]);return r.a.createElement(Bs,{isOpen:i,toggleOpen:l,label:r.a.createElement(Z.j,{alignItems:"center",justifyContent:"between"},r.a.createElement(Z.B,{strong:!0,color:"border"},"Visited Nodes"),r.a.createElement(ac,{right:!i,name:"chevron_down",size:"small",color:"text"}))},r.a.createElement(Ql,{column:!0,gap:2},t.map((function(e){var t=e.name,a=e.alternateUrls,n=e.guid,o=e.url;return r.a.createElement(oc,{alternateUrls:a,key:"".concat(t,"-").concat(n),machineGuid:n,name:t,url:o})}))))},sc=Object(Ha.a)((function(e){return e.global.chartsMetadata.data||{}}),(function(e){return e.global.registry.fullInfoPayload.mirrored_hosts_status||{}}),(function(e,t){var a=e.hosts,n=e.hostname;return zl(a,n,t)})),lc=Object(Ha.a)((function(e){return e.global.registry}),(function(e){return e.registryMachinesArray||[]})),cc=Object(Ha.a)((function(e){return e.dashboard}),(function(e){return{isSignedIn:e.isSignedIn,offline:e.offline}})),uc=r.a.memo((function(e){var t=e.isOpen,a=e.toggle,o=Object(s.e)(sc),i=o.parentNode,l=void 0===i?{}:i,c=o.replicatedNodes,u=void 0===c?[]:c,d=Object(s.e)(lc),h=Object(s.e)(ue.v),p=Object(s.e)(cc),f=p.isSignedIn,g=p.offline,m=Object(s.e)(ue.u),b=Object(n.useCallback)((function(){return window.switchRegistryModalHandler()}),[]);return r.a.createElement(Z.d,{width:74,background:"panel",open:t,direction:"horizontal",persist:!0},r.a.createElement(Z.j,{flex:!0,column:!0,overflow:{vertical:"hidden"},margin:[3,0,0],border:{side:"left",color:"separator"},style:{pointerEvents:"all"}},r.a.createElement(Z.j,{overflow:{vertical:"auto"},flex:!0,column:!0,gap:4,padding:[4]},r.a.createElement(Z.j,{alignSelf:"end"},r.a.createElement(Z.b,{neutral:!0,flavour:"borderless",themeType:"dark",small:!0,icon:"chevron_left",onClick:a})),!f&&r.a.createElement(r.a.Fragment,null,!!u.length&&r.a.createElement(Yl,{parentNode:l,replicatedNodes:u}),!!d.length&&r.a.createElement(Z.B,{strong:!0,color:"border"},r.a.createElement(ic,{machinesArray:d}))),f&&r.a.createElement(Xl,{parentNode:l,replicatedNodes:u})),h&&r.a.createElement(Z.j,{border:{side:"top"},justifyContent:"center",alignItems:"center",padding:[6]},r.a.createElement(Z.F,{onClick:b},"Switch Identity")),!f&&m&&r.a.createElement(Zl,null),g&&m&&r.a.createElement($l,null)))})),dc=Object($.d)(Z.j).attrs({height:"100vh",zIndex:10}).withConfig({displayName:"sidebar__Wrapper",componentId:"v4d3v5-0"})(["pointer-events:all;"]),hc=Object(Ha.a)((function(e){return e.dashboard}),(function(e){return e.isSignedIn})),pc=r.a.memo((function(){var e=Object(cl.a)("space-panel-state"),t=Object(A.a)(e,2),a=t[0],o=t[1],i=Object(s.e)(ue.E),l=Object(s.e)(hc),c=Object(s.d)(),u=Object(n.useCallback)((function(){c(Object(Ke.w)({isActive:!i})),o(!i)}),[i]);return Object(n.useEffect)((function(){c(Object(Ke.w)({isActive:!!a&&l}))}),[l]),r.a.createElement(dc,null,r.a.createElement(Rl,{isOpen:i,toggle:u,isSignedIn:l}),r.a.createElement(uc,{isOpen:i,toggle:u,offline:!0}))})),fc=Object($.d)(Z.j).attrs({position:"fixed",justifyContent:"start",alignItems:"start",width:"100%",zIndex:10}).withConfig({displayName:"layout__Wrapper",componentId:"sc-1d05imu-0"})(["top:0;left:0;pointer-events:none;"]),gc=function(e){var t=e.children;return e.printMode?t:r.a.createElement(fc,null,r.a.createElement(pc,null),r.a.createElement(kl,null),t)},mc=(a(564),function(e){return{slate:Z.e,white:Z.f}[e]||Z.e}),bc=a(225),vc=function(e){var t=e.migrationModalPromoInfo,a=e.setUserPrefrence,o=e.closeModal,i=e.savePromoRemindMeSelection,s=e.migrationModalPromo,l=e.requestRefreshOfAccess,c=Object(n.useState)(!1),u=Object(A.a)(c,2),d=u[0],h=u[1],p=Object(n.useCallback)((function(e){var n=e.link,r=e.toPath,s=t.CTA1;"NAVIGATE"===s.action?(d&&(a(s.userPreference),i(d)),"agent"!==r&&(window.location.href=n),o()):"REFRESH"===s.action&&l()}),[t,a,d,l,i,o]),f=Object(n.useCallback)((function(){var e=t.CTA2;d&&(a(e.userPreference),i(d)),"NAVIGATE"===e.action||"REFRESH"===e.action&&l(),o()}),[t,a,d,l,i,o]);return t?r.a.createElement(Z.q,null,r.a.createElement(Z.t,{width:180,background:"modalBackground"},r.a.createElement(Z.v,null,r.a.createElement(Z.k,{margin:[0]},t.title)),r.a.createElement(Z.r,null,r.a.createElement(Z.j,{padding:[0,0,4,0],column:!0,gap:3},"function"===typeof t.text.header?t.text.header({}):r.a.createElement(Z.B,null,t.text.header),t.text.bullets.length>0&&r.a.createElement(Z.j,{column:!0,gap:3},r.a.createElement(Z.j,{column:!0,gap:1,as:"ul"},t.text.bullets.map((function(e){return"function"===typeof e?r.a.createElement("li",{key:e},e()):r.a.createElement("li",{key:e},r.a.createElement(Z.B,null,e))})))),t.text.footer&&r.a.createElement(Z.B,{"data-testid":"body-footer"},t.text.footer))),r.a.createElement(Z.u,null,r.a.createElement(Z.a,{margin:[0,"auto",0,0]},r.a.createElement(Z.c,{"data-ga":"".concat(s,"::click-remind-me::ad"),"data-testid":"remind-me-checkbox",checked:d,onChange:function(e){h(e.currentTarget.checked)},label:t.tickBoxOption.text})),r.a.createElement(Z.a,{"data-testid":"cta1",margin:[0,2,0,0],width:{min:40}},r.a.createElement(ll.a,{utmParameters:{content:s,campaign:"agent_nudge_to_cloud"}},(function(e){var a=e.link;return r.a.createElement(Z.b,{"data-ga":"".concat(s,"::click-ct1::ad"),textTransform:"none","data-testid":"cta1-button",onClick:function(){return p({link:a,toPath:t.CTA1.toPath})},width:"100%",label:t.CTA1.text})}))),t.CTA2&&r.a.createElement(Z.a,{"data-ga":"".concat(s,"::click-ct2::ad"),onClick:f,height:10,className:"btn btn-default","data-testid":"cta2",width:{min:40}},r.a.createElement(Z.a,{as:Z.B,sx:{fontWeight:"500",lineHeight:"25px"}},t.CTA2.text))))):null};!function(e){e.PROMO_SIGN_IN_CLOUD="PROMO_SIGN_IN_CLOUD",e.PROMO_SIGN_UP_CLOUD="PROMO_SIGN_UP_CLOUD",e.PROMO_IVNITED_TO_SPACE="PROMO_IVNITED_TO_SPACE",e.PROMO_CLAIM_NODE="PROMO_CLAIM_NODE",e.PROMO_TO_USE_NEW_DASHBAORD="PROMO_TO_USE_NEW_DASHBAORD",e.FALLBACK_TO_AGENT="FALLBACK_TO_AGENT",e.NO_INFO_FALLBACK_TO_AGENT="NO_INFO_FALLBACK_TO_AGENT"}(no||(no={}));var _c=function(e){return"".concat(Ve.h).concat(Object(ue.P)({content:e,campaign:"agent_nudge_to_cloud"}))},yc=(to={},Object(u.a)(to,no.PROMO_SIGN_UP_CLOUD,{title:"Learn about Netdata Cloud!",text:{header:function(){return r.a.createElement(Z.B,{strong:!0},"Netdata Cloud is a FREE service that complements the Netdata Agent, to provide:")},bullets:["Infrastructure level dashboards (each chart aggregates data from multiple nodes)","Central dispatch of alert notifications","Custom dashboards editor","Intelligence assisted troubleshooting, to help surface the root cause of issues"],footer:"Have a look, you will be surprised!"},tickBoxOption:{text:"Remember my choice",preferenceID:no.PROMO_SIGN_UP_CLOUD},CTA1:{text:"Wow! Let\u2019s go to Netdata Cloud",toPath:"path/signup/cloud",action:"NAVIGATE",userPreference:"CLOUD"},CTA2:{text:"Later, stay at the agent dashboard",action:"NAVIGATE",toPath:"path/agent-dashboard",userPreference:"AGENT"}}),Object(u.a)(to,no.PROMO_SIGN_IN_CLOUD,{title:"Sign-in to Netdata Cloud or get an invitation!",text:{header:function(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(Z.B,{strong:!0},"This node is connected to Netdata Cloud but you are not. If you have a Netdata Cloud account sign-in, if not ask for an invitation to it."),r.a.createElement(Z.B,null,"Netdata Cloud is a FREE service that complements the Netdata Agent, to provide:"))},bullets:["Infrastructure level dashboards (each chart aggregates data from multiple nodes)","Central dispatch of alert notifications","Custom dashboards editor","Intelligence assisted troubleshooting, to help surface the root cause of issues"],footer:"Have a look, you will be surprised!"},tickBoxOption:{text:"Remember my choice",preferenceID:no.PROMO_SIGN_IN_CLOUD},CTA1:{text:"Sign-in or get a Netdata Cloud account",action:"NAVIGATE",toPath:"path/signin/cloud",userPreference:"CLOUD"},CTA2:{text:"Later, stay at the Agent dashboard",toPath:"path/agent-dashboard",action:"NAVIGATE",userPreference:"AGENT"}}),Object(u.a)(to,no.PROMO_IVNITED_TO_SPACE,{title:"Get an invitation to this Node\u2019s Space!",text:{header:function(){return r.a.createElement(Z.B,{strong:!0},"This node is connected to Netdata Cloud but it isnt available on one of your Spaces.")},bullets:[],footer:"Ask for an invitation to this Space!"},tickBoxOption:{text:"Don't remind me of this again",preferenceID:no.PROMO_IVNITED_TO_SPACE},CTA1:{text:"Thanks, stay at Agent dashboard for now",toPath:"agent",action:"NAVIGATE",userPreference:"AGENT"}}),Object(u.a)(to,no.PROMO_CLAIM_NODE,{title:"This node isn\u2019t connected to Netdata Cloud",text:{header:function(){return r.a.createElement(Z.B,{strong:!0},"For you to be able to see this node on Netdata Cloud you will either need to:")},footer:"Have a look, you will be surprised!",bullets:[function(){return r.a.createElement(Z.B,null," ","Connect this node directly (documentation on"," ",r.a.createElement(yl.a,{target:"_blank",rel:"noopener noreferrer",href:"https://learn.netdata.cloud/docs/agent/claim?".concat(_c(no.PROMO_CLAIM_NODE).substring(1),"#how-to-connect-a-node")},"how to connect a node"),") , or")},function(){return r.a.createElement(Z.B,null,"\u0391ctivate streaming to a parent node that is already connected (documentation on"," ",r.a.createElement(yl.a,{target:"_blank",rel:"noopener noreferrer",href:"https://learn.netdata.cloud/docs/metrics-storage-management/enable-streaming?".concat(_c(no.PROMO_CLAIM_NODE).substring(1))},"how to configure streaming"),")")}]},tickBoxOption:{text:"Remember my choice.",preferenceID:no.PROMO_CLAIM_NODE},CTA1:{text:"Wow! Let\u2019s go to Netdata Cloud",action:"NAVIGATE",toPath:"path/node/cloud",userPreference:"CLOUD"},CTA2:{text:"Later, stay at the Agent dashboard",action:"NAVIGATE",toPath:"path/agent-dashboard",userPreference:"AGENT"}}),Object(u.a)(to,no.PROMO_TO_USE_NEW_DASHBAORD,{title:"Use the Old or the New dashboard?",text:{header:function(){return r.a.createElement(Z.B,{strong:!0},"This node is available in your Netdata Cloud account. So, you have full access to the NEW dashboards, charts, intelligence-assisted troubleshooting and many more!")},bullets:[]},tickBoxOption:{text:"Remember my choice",preferenceID:no.PROMO_TO_USE_NEW_DASHBAORD},CTA1:{text:"Wow! Let\u2019s go to Netdata Cloud ",action:"NAVIGATE",toPath:"path/dashboard/cloud",userPreference:"CLOUD"},CTA2:{text:"Later, stay at the Agent dashboard",action:"NAVIGATE",toPath:"path/agent-dashboard",userPreference:"AGENT"}}),Object(u.a)(to,no.FALLBACK_TO_AGENT,{title:"Oops! This node has lost connection to Netdata Cloud!",text:{header:function(e){e.date;return r.a.createElement(r.a.Fragment,null,r.a.createElement(Z.B,{strong:!0},"Unfortunately, it seems that this node is not currently connected to Netdata Cloud. So, the old agent dashboard is the only option available."),r.a.createElement(Z.B,null,"To troubleshoot Netdata Cloud connection issues, please follow this"," ",r.a.createElement(yl.a,{target:"_blank",rel:"noopener noreferrer",href:"https://learn.netdata.cloud/docs/agent/claim?".concat(_c(no.FALLBACK_TO_AGENT).substring(1),"#troubleshooting")},"this guide.")))},bullets:[]},tickBoxOption:{text:"Don't show this again",preferenceID:no.FALLBACK_TO_AGENT},CTA1:{text:"Check again please",action:"REFRESH",userPreference:void 0},CTA2:{text:"Thanks, stay at Agent dashboard",toPath:"path/agent",action:"NAVIGATE",userPreference:"AGENT"}}),Object(u.a)(to,no.NO_INFO_FALLBACK_TO_AGENT,{title:"Oops! We aren't able to get information of this node in regards to Netdata Cloud!",text:{header:function(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(Z.B,{strong:!0},"Unfortunately, it seems we aren't able to get information on this node in regards to Netdata Cloud."),r.a.createElement(Z.B,null,"This could be from internet connectivity issues from your end or some temporary issue with our services. So, the old agent dashboard is the only option available."))},bullets:[]},tickBoxOption:{text:"Don't show this again",preferenceID:no.NO_INFO_FALLBACK_TO_AGENT},CTA1:{text:"Check again please",action:"REFRESH",userPreference:void 0},CTA2:{text:"Thanks, stay at Agent dashboard",toPath:"path/agent-dashboard",action:"NAVIGATE",userPreference:"AGENT"}}),to),Oc=(ao={},Object(u.a)(ao,no.FALLBACK_TO_AGENT,(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeClaimedStatus,r=e.nodeLiveness,o=e.userNodeAccess;return"AGENT"!==t&&("LOGGED_IN"===a||"EXPIRED_LOGIN"===a)&&"CLAIMED"===n&&"NOT_LIVE"===r&&"ACCESS_OK"===o})),Object(u.a)(ao,no.NO_INFO_FALLBACK_TO_AGENT,(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeClaimedStatus,r=e.nodeLiveness,o=e.userNodeAccess;return"CLOUD"===t&&!a&&!n&&!r&&!o})),Object(u.a)(ao,no.PROMO_TO_USE_NEW_DASHBAORD,(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeLiveness,r=e.userNodeAccess;return!t&&("LOGGED_IN"===a||"EXPIRED_LOGIN"===a)&&"LIVE"===n&&"ACCESS_OK"===r})),Object(u.a)(ao,no.PROMO_CLAIM_NODE,(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeClaimedStatus;return"AGENT"!==t&&("LOGGED_IN"===a||"EXPIRED_LOGIN"===a)&&"NOT_CLAIMED"===n})),Object(u.a)(ao,no.PROMO_IVNITED_TO_SPACE,(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeClaimedStatus,r=e.userNodeAccess;return"AGENT"!==t&&("LOGGED_IN"===a||"EXPIRED_LOGIN"===a)&&"CLAIMED"===n&&"NO_ACCESS"===r})),Object(u.a)(ao,no.PROMO_SIGN_IN_CLOUD,(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeClaimedStatus;return"AGENT"!==t&&"UNKNOWN"===a&&"CLAIMED"===n})),Object(u.a)(ao,no.PROMO_SIGN_UP_CLOUD,(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeClaimedStatus;return"AGENT"!==t&&"UNKNOWN"===a&&"NOT_CLAIMED"===n})),ao),xc=function(e){var t=e.userStatus,a=e.nodeClaimedStatus,r=e.userNodeAccess,o=e.nodeLiveness,i=Object(cl.a)("USER_SAVED_PREFERENCE"),s=Object(A.a)(i,2),l=s[0],c=s[1],u=Object(n.useMemo)((function(){return Object.keys(Oc).find((function(e){return Oc[e]({userStatus:t,nodeClaimedStatus:a,userNodeAccess:r,userSavedPreference:l,nodeLiveness:o})}))}),[t,a,r,o,l]);return{migrationModalPromoInfo:yc[u],migrationModalPromo:u,setUserPrefrence:c,userSavedPreference:l}},wc=function(){var e=Object(s.e)(ue.u),t=Object(s.e)(ue.x),a=Object(s.e)((function(e){return Object(ue.B)({content:"agent-auto-redirect",term:t.machineGuid})(e)})),o=Object(n.useMemo)((function(){var e=window.location.href,t=encodeURIComponent(e);return"".concat(a,"&redirect_uri=").concat(t)}),[a]),i=Object(s.e)(ue.O),l=Object(n.useState)(!1),c=Object(A.a)(l,2),u=c[0],d=c[1],h=xc(Object(g.a)({},i)),p=h.migrationModalPromoInfo,f=h.setUserPrefrence,m=h.userSavedPreference,b=h.migrationModalPromo,v=(null===p||void 0===p?void 0:p.tickBoxOption.preferenceID)||"",_=Object(cl.a)(v),y=Object(A.a)(_,2)[1],O=localStorage.getItem(v),x=e&&p&&u&&(!O||"undefined"===O),w=Object(dl.b)();return Object(n.useEffect)((function(){var e=setTimeout((function(){return d(!0)}),4e3);return function(){clearTimeout(e)}}),[]),Object(n.useEffect)((function(){(function(e){var t=e.userSavedPreference,a=e.userStatus,n=e.nodeLiveness,r=e.userNodeAccess;return"CLOUD"===t&&("LOGGED_IN"===a||"EXPIRED_LOGIN"===a)&&"LIVE"===n&&"ACCESS_OK"===r})(Object(g.a)({userSavedPreference:m},i))&&(window.location.href=o)}),[o,i,m]),Object(n.useEffect)((function(){"AGENT"==={userSavedPreference:m}.userSavedPreference&&console.log("Lets go to Agent")}),[m]),Object(n.useEffect)((function(){document.documentElement.style.overflow=x?"hidden":"auto"}),[u,x]),x?r.a.createElement(vc,{savePromoRemindMeSelection:y,migrationModalPromoInfo:p,setUserPrefrence:f,closeModal:function(){d(!1)},migrationModalPromo:b,requestRefreshOfAccess:w}):null},Ec=Z.a;window.Ps=na.a;var Sc=function(){var e=Object(la.b)(ue.u),t=Object(s.f)();Object(n.useEffect)((function(){window.NETDATA.alarms={},window.NETDATA.pause=function(e){e()},Object(bc.a)(t)}),[]);var a=Object(n.useState)(),o=Object(A.a)(a,2),i=o[0],l=o[1],c=void 0!==i,u=Object(n.useRef)((function(){l(Math.random())}));Object(n.useEffect)((function(){if(c){var e=document.getElementById("loadOverlay");e&&(e.style.display="none")}}),[c]);var d=Object(sa.b)(),p=d.localeDateString,f=d.localeTimeString;Object(n.useEffect)((function(){Object(bc.b)({localeDateString:p,localeTimeString:f})}),[p,f]),function(e){var t=Object(la.b)(ue.x),a=Object(la.a)();Object(n.useEffect)((function(){!e||t.isFetchingHello||t.hasFetchedHello||t.isHelloCallError||a(Ke.f.request({serverDefault:D.b}))}),[a,t,e])}(!0),function(e){var t=Object(la.b)(ue.r),a=Object(la.a)();Object(n.useEffect)((function(){e&&!t&&a(Object(Ke.A)({serverDefault:D.b}))}),[a,t,e])}(!0),function(e){var t=Object(la.b)(ue.x),a=(null===t||void 0===t?void 0:t.hasStartedInfo)||!1,r=Object(la.a)();Object(n.useEffect)((function(){e&&!a&&r(_e.f.request({poll:!1}))}),[r,a,e])}(!0);var g=Object(n.useState)(!1),m=Object(A.a)(g,2),b=m[0],v=m[1];Object(n.useLayoutEffect)((function(){Promise.all([ia(D.c+window.NETDATA.themes.current.bootstrap_css),ia(D.c+window.NETDATA.themes.current.dashboard_css)]).then((function(){v(!0)}))}),[]);var _=function(){var e=qo("".concat(D.b,"api/v1/charts"));return Object(A.a)(e,1)[0]}(),y=Object(la.b)(ue.f);window.NETDATA.parseDom=u.current;var O=Object(la.b)(ue.q),x=Object(la.b)(ue.K);return function(){var e=Object(la.a)();Object(dn.a)((function(){var t=Object(Wt.b)(),a=t.alarm_when;if(a){var n=Number(a),r=t.alarm_status,o=t.alarm_chart,i=t.alarm_value;if(!h.d.includes(r)||!o||!i)return;e(Object(Ke.n)({alarm:{chartId:o,status:r,value:i,when:n}}));e(Object(Ke.s)({after:1e3*n-3e5,before:1e3*n+3e5}))}}))}(),r.a.createElement($.b,{theme:mc(x)},b&&r.a.createElement(fi,null),r.a.createElement(r.a.Fragment,null),_&&y&&O&&c&&r.a.createElement(r.a.Fragment,null,r.a.createElement(gc,{printMode:ve},Ye.a?null:r.a.createElement(wc,null),b&&r.a.createElement(r.a.Fragment,null,r.a.createElement(Zo,{key:i}),r.a.createElement(pi,null,r.a.createElement(hi,null)),ve&&r.a.createElement(Qo,null))),e&&r.a.createElement(Ec,{height:15})))};a(565);i.a.render(r.a.createElement(s.a,{store:ta},r.a.createElement(Sc,null)),document.getElementById("root"))},58:function(e,t,a){"use strict";var n=a(5),r=a(0),o=a(27),i=a(17),s=a(580),l=a(44),c=a(9),u=a(28),d=Object(i.a)(c.x,(function(e){return e.registryServer===u.b})),h=Object(i.a)((function(e){return e.dashboard}),(function(e){return e.offline}));t.a=function(e){var t=e.children,a=e.utmParameters,i=Object(s.a)("has-sign-in-history"),u=Object(n.a)(i,1)[0],p=Object(o.e)((function(e){return Object(c.B)(a)(e)})),f=Object(o.e)(d),g=Object(o.e)(h),m=Object(o.d)(),b=Object(r.useMemo)((function(){var e=window.location.href,t=encodeURIComponent(e);return"".concat(p,"&redirect_uri=").concat(t)}),[p]),v=Object(r.useCallback)((function(){return m(Object(l.d)({signInLinkHref:b}))}),[b]);return Object(r.useMemo)((function(){return"function"===typeof t?t({isRegistry:f,link:b,onSignIn:v,offline:g,hasSignedInBefore:u}):t}),[t,f,b,v,g,u])}},64:function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"d",(function(){return u})),a.d(t,"a",(function(){return d})),a.d(t,"c",(function(){return h}));var n=a(5),r=a(310),o=a(312),i=a(578),s=/[&;]/,l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:decodeURIComponent(window.location.hash.substr(1));if(0===e.length)return{};var t=e.split(s),a=t.reduce((function(e,t){var a=t.split("="),r=Object(n.a)(a,2),o=r[0],i=r[1];return e[o]=i,e}),{});return a},c=function(e){var t=Object.entries(e);return 0===t.length?"":t.map((function(e){var t=Object(n.a)(e,2),a=t[0],r=t[1];return void 0===r?a:"".concat(a,"=").concat(encodeURIComponent(r))})).join(";")},u=(Object(o.a)(l,c),function(e){var t=l(),a=Object(i.a)(e,t);window.history.replaceState(window.history.state,"","#".concat(c(a)))}),d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1));return l(t)[e]},h=function(e){window.history.replaceState(window.history.state,"","#".concat(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1)),a=Object(r.a)(e,l(t));return c(a)}(e)))}},74:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return i}));var n=a(5),r=a(0),o=function(e,t){var a="string"===typeof e?document.getElementById(e):e;a.contentWindow&&a.contentWindow.postMessage(t,"*")},i=function(e,t,a){var o=Object(r.useState)(a),i=Object(n.a)(o,2),s=i[0],l=i[1],c=Object(r.useCallback)((function(a){var n=a.data;n.type===e&&(l(n.payload),t&&t(n.payload))}),[t,e]),u=Object(r.useCallback)((function(){l(a)}),[a]);return Object(r.useEffect)((function(){return window.addEventListener("message",c),function(){window.removeEventListener("message",c)}}),[c,e]),[s,u]}},75:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r})),a.d(t,"a",(function(){return o}));var n="true",r=!1,o=!1},76:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n="dashboard"},8:function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return o}));a(0);var n=a(27),r=n.e,o=n.d},83:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=window.location.hash.split(";").includes("help=true"),r=function(){if(n)return!1;var e=document.location.hostname;return e.endsWith(".my-netdata.io")||e.endsWith(".mynetdata.io")||e.endsWith(".netdata.rocks")||e.endsWith(".netdata.ai")||e.endsWith(".netdata.live")||e.endsWith(".firehol.org")||e.endsWith(".netdata.online")||e.endsWith(".netdata.cloud")}()},9:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"h",(function(){return h})),a.d(t,"g",(function(){return p})),a.d(t,"o",(function(){return f})),a.d(t,"p",(function(){return g})),a.d(t,"m",(function(){return m})),a.d(t,"i",(function(){return b})),a.d(t,"l",(function(){return v})),a.d(t,"s",(function(){return _})),a.d(t,"n",(function(){return y})),a.d(t,"D",(function(){return O})),a.d(t,"x",(function(){return x})),a.d(t,"f",(function(){return w})),a.d(t,"P",(function(){return E})),a.d(t,"B",(function(){return S})),a.d(t,"v",(function(){return C})),a.d(t,"u",(function(){return A})),a.d(t,"q",(function(){return k})),a.d(t,"k",(function(){return j})),a.d(t,"r",(function(){return T})),a.d(t,"c",(function(){return D})),a.d(t,"d",(function(){return P})),a.d(t,"E",(function(){return M})),a.d(t,"F",(function(){return L})),a.d(t,"b",(function(){return N})),a.d(t,"j",(function(){return R})),a.d(t,"G",(function(){return B})),a.d(t,"z",(function(){return F})),a.d(t,"t",(function(){return H})),a.d(t,"I",(function(){return z})),a.d(t,"H",(function(){return U})),a.d(t,"K",(function(){return G})),a.d(t,"A",(function(){return W})),a.d(t,"w",(function(){return V})),a.d(t,"C",(function(){return Y})),a.d(t,"N",(function(){return X})),a.d(t,"J",(function(){return K})),a.d(t,"y",(function(){return Z})),a.d(t,"L",(function(){return q})),a.d(t,"M",(function(){return $})),a.d(t,"e",(function(){return Q})),a.d(t,"O",(function(){return ee}));var n=a(49),r=a(221),o=a(17),i=a(28),s=a(36),l=a(159),c=a(26),u=function(e){return function(t){var a=Object(l.a)(e),n=t[c.e].commonColorsKeys[a];return n&&n.assigned}},d=function(e){return e.global},h=Object(o.a)(d,(function(e,t){return t}),(function(e,t){return e.commonMin[t]})),p=Object(o.a)(d,(function(e,t){return t}),(function(e,t){return e.commonMax[t]})),f=Object(o.a)(d,Object(n.a)("hoveredX")),g=Object(o.a)(d,Object(n.a)("currentSelectionMasterId")),m=Object(o.a)(d,Object(n.a)("globalPanAndZoom")),b=Object(o.a)(d,Object(n.a)("defaultAfter")),v=Object(o.a)(d,Object(n.a)("globalChartUnderlay")),_=Object(o.a)(d,Object(n.a)("hasWindowFocus")),y=Object(o.a)(d,Object(n.a)("globalPause")),O=Object(o.a)(d,Object(n.a)("snapshot")),x=Object(o.a)(d,Object(n.a)("registry")),w=Object(o.a)(x,Object(n.a)("cloudBaseURL")),E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,a){return t+"&utm_".concat(a,"=").concat(e[a])}),"")},S=function(e){return Object(o.a)(x,w,(function(t,a){var n=encodeURIComponent(t.hostname),r=encodeURIComponent(Object(s.a)(window.location.origin+window.location.pathname));return"".concat(a,"/sign-in?id=").concat(t.machineGuid,"&name=").concat(n,"&origin=").concat(r).concat(i.h).concat(E(e))}))},C=(Object(o.a)(x,Object(n.a)("isFetchingHello")),Object(o.a)(x,(function(e){var t=e.registryServer;return t&&"https://registry.my-netdata.io"!==t}))),A=Object(o.a)(x,(function(e){return e.isCloudEnabled&&!e.isHelloCallError})),k=Object(o.a)(x,Object(n.a)("hasFetchedInfo")),j=Object(o.a)(x,Object(n.a)("fullInfoPayload")),T=Object(o.a)(d,Object(r.a)(["alarms","hasStartedAlarms"])),D=Object(o.a)(d,(function(e){return e.alarms.activeAlarms})),P=Object(o.a)(d,(function(e){return e.alarm})),M=Object(o.a)(d,Object(n.a)("spacePanelIsActive")),L=Object(o.a)(d,Object(n.a)("spacePanelTransitionEndIsActive")),I=Object(o.a)(d,(function(e){return e.options})),N=function(e){return Object(o.a)(I,(function(t){return t[e]}))},R=N("destroy_on_hide"),B=N("stop_updates_when_focus_is_lost"),F=N("eliminate_zero_dimensions"),H=N("async_on_scroll"),z=(N("parallel_refresher"),N("concurrent_refreshes"),N("sync_selection")),U=N("sync_pan_and_zoom"),G=N("theme"),W=N("show_help"),V=N("pan_and_zoom_data_padding"),Y=N("smooth_plot"),X=N("units"),K=N("temperature"),Z=N("seconds_as_time"),q=N("timezone"),$=N("utcOffset"),J=(N("user_set_server_timezone"),Object(o.a)(d,(function(e){return e.chartsMetadata.data}))),Q=Object(o.a)(J,(function(e,t){return t.chartId}),(function(e,t){return null===e||void 0===e?void 0:e.charts[t]})),ee=Object(o.a)(d,(function(e){return e.userNodeAccess}))},91:function(e,t,a){"use strict";var n=a(37),r=a(0),o=a.n(r),i=a(4),s=a(3),l=Object(i.d)("a").withConfig({displayName:"anchor__BaseAnchor",componentId:"sc-1eq5dgj-0"})(["&&{color:",";:hover{color:",";}:visited{color:",";}}"],Object(s.H)("primary"),Object(s.H)("primary"),Object(s.H)("accent"));t.a=function(e){var t=e.Component,a=void 0===t?s.B:t,r=Object(n.a)(e,["Component"]);return o.a.createElement(a,Object.assign({as:l},r))}},92:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(7),r=a(22),o=function(e){var t=Object(r.createAction)(e.toUpperCase());return Object.assign(t,{request:t,success:Object(r.createAction)("".concat(e.toUpperCase(),"_SUCCESS"),(function(e){return e}),(function(e){return e})),failure:Object(r.createAction)("".concat(e.toUpperCase(),"_FAILURE"),(function(e){return e}),(function(e){return Object(n.a)({},e,{error:!0})}))})}},99:function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"c",(function(){return u})),a.d(t,"e",(function(){return d})),a.d(t,"d",(function(){return h})),a.d(t,"b",(function(){return p}));var n,r=a(14),o=a(227),i=a(572),s=a(114),l="sync_pan_and_zoom",c=(n={},Object(r.a)(n,"stop_updates_when_focus_is_lost",!0),Object(r.a)(n,"eliminate_zero_dimensions",!0),Object(r.a)(n,"destroy_on_hide",!1),Object(r.a)(n,"async_on_scroll",!1),Object(r.a)(n,"parallel_refresher",!0),Object(r.a)(n,"concurrent_refreshes",!0),Object(r.a)(n,"sync_selection",!0),Object(r.a)(n,l,!0),Object(r.a)(n,"legend_right",!1),Object(r.a)(n,"theme","slate"),Object(r.a)(n,"show_help",Boolean(window.netdataShowHelp)&&!window.netdataNoBootstrap),Object(r.a)(n,"pan_and_zoom_data_padding",!0),Object(r.a)(n,"smooth_plot",!0),Object(r.a)(n,"units","auto"),Object(r.a)(n,"temperature","celsius"),Object(r.a)(n,"seconds_as_time",!0),Object(r.a)(n,"timezone","default"),Object(r.a)(n,"user_set_server_timezone","default"),Object(r.a)(n,"utcOffset",0),n),u=function(){var e=Object.keys(localStorage).filter((function(e){return e.startsWith("options.")||"netdataTheme"===e})).map((function(e){return Object(r.a)({},function(e){return e.replace(/^options\./,"").replace("netdataTheme","theme")}(e),function(e){var t,a=localStorage.getItem(e);if(null===a||"undefined"===a)return localStorage.removeItem(e),null;try{t=JSON.parse(a)}catch(n){return"netdataTheme"===e&&a?a:(console.log('localStorage: failed to read "'.concat(e,'", using default')),localStorage.removeItem(e),null)}return t}(e))})).filter((function(e){return null!==Object.values(e)[0]})),t=Object(o.a)(e);return Object(i.a)(c,t)},d=u(),h=d.legend_right,p=function(){Object.keys(localStorage).forEach((function(e){(e.startsWith(s.a)||e.startsWith("options."))&&localStorage.removeItem(e)}))}}},[[324,1,2]]]);
+//# sourceMappingURL=main.e248095a.chunk.js.map \ No newline at end of file
diff --git a/web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE b/src/web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE
index bf657eca5..bf657eca5 100644
--- a/web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE
+++ b/src/web/gui/v1/static/js/main.e248095a.chunk.js.LICENSE
diff --git a/src/web/gui/v1/static/js/main.e248095a.chunk.js.map b/src/web/gui/v1/static/js/main.e248095a.chunk.js.map
new file mode 100644
index 000000000..80a008997
--- /dev/null
+++ b/src/web/gui/v1/static/js/main.e248095a.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["utils/units-conversion.ts","components/button/button.tsx","domains/chart/components/toolbox-button.tsx","domains/chart/components/resize-handler.tsx","domains/global/actions.ts","hooks/use-user-node-access.ts","utils/index.ts","utils/name-2-id.ts","domains/global/reducer.ts","components/icon.tsx","domains/chart/reducer.ts","domains/chart/utils/transformDataAttributes.ts","domains/chart/actions.ts","components/header/constants.js","main.js","domains/global/constants.ts","components/header/ACLK/use-cloud-connection-status.tsx","components/header/ACLK/cloud-connection-status-modal.tsx","components/header/ACLK/cloud-connection-status.tsx","utils/utils.ts","vendor/d3pie-0.2.1-netdata-3.js","components/header/ACLK/index.ts","utils/server-detection.ts","domains/chart/selectors.ts","utils/date-time.js","domains/dashboard/actions.ts","domains/chart/constants.ts","domains/chart/utils/seconds4human.ts","../public/lib/dygraph-c91c859.min.js","domains/chart/utils/legend-utils.ts","domains/dashboard/reducer.ts","store/root-reducer.ts","utils/api.ts","utils/netdata-sdk/axios-instance.ts","utils/netdata-sdk/metrics-stream.ts","utils/fill-missing-data.ts","components/ui-notification/styled.ts","components/ui-notification/ui-notification.tsx","components/notifications/styled.tsx","components/notifications/notifications.tsx","domains/dashboard/utils/parse-url.ts","domains/chart/sagas.ts","components/space-panel/settings.ts","domains/global/alarms-sagas.ts","domains/global/utils.ts","domains/global/sagas.ts","domains/dashboard/sagas.ts","store/root-saga.ts","store/store.ts","domains/chart/utils/jquery-loader.ts","utils/css-loader.ts","domains/chart/utils/chartLibrariesSettings.ts","domains/chart/utils/get-chart-url-options.ts","utils/biggest-interval-number.ts","domains/chart/components/loader.tsx","domains/chart/utils/get-pan-and-zoom-step.ts","utils/safe-equal-check.ts","domains/chart/utils/formatters.ts","utils/color-hex-2-rgb.ts","domains/chart/components/chart-legend-bottom.styled.ts","domains/chart/components/legendText.js","domains/chart/components/chart-legend-right.tsx","domains/chart/components/chart-legend-bottom.tsx","domains/chart/components/chart-legend.tsx","domains/chart/components/legend-toolbox.tsx","domains/chart/components/lib-charts/dygraph/utils.ts","domains/chart/hooks/use-proceeded-chart.ts","domains/chart/hooks/useDygraphBadge.js","domains/chart/components/lib-charts/proceeded-chart-disclaimer.tsx","domains/chart/components/lib-charts/alarmBadge.js","domains/chart/components/lib-charts/dygraph-chart.tsx","utils/debounce.ts","domains/chart/components/lib-charts/easy-pie-chart.tsx","domains/chart/components/lib-charts/gauge-chart.tsx","domains/chart/utils/color-luminance.ts","domains/chart/components/lib-charts/sparkline-chart.tsx","domains/chart/utils/d3-loader.ts","domains/chart/utils/google-visualization-loader.ts","domains/chart/components/lib-charts/d3pie-chart.tsx","domains/chart/components/lib-charts/peity-chart.tsx","domains/chart/components/lib-charts/google-chart.tsx","domains/chart/components/lib-charts/text-only.tsx","domains/chart/components/lib-charts/group-box-chart/utilities.ts","domains/chart/components/lib-charts/group-box-chart/events.ts","domains/chart/components/lib-charts/group-box-chart/drawBoxes.ts","domains/chart/components/lib-charts/group-box-chart/getAlign.ts","domains/chart/components/lib-charts/group-box-chart/groupBox.tsx","domains/chart/components/lib-charts/group-box-chart/groupBoxes.tsx","domains/chart/components/lib-charts/group-box-chart/legend.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/getLabel.ts","domains/chart/components/lib-charts/group-box-chart/kubernetes/separator.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/header.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/tabs.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/section.tsx","domains/chart/utils/get-portal-node-styles.ts","hooks/use-common-intersection.ts","domains/chart/components/invisible-searchable-text.tsx","domains/chart/components/disable-out-of-view.tsx","domains/chart/components/chart-container/chart-container.tsx","domains/dashboard/utils/netdata-dashboard.ts","domains/chart/components/lib-charts/group-box-chart/kubernetes/chartOverview.tsx","domains/dashboard/components/migration-modal/use-migration-modal.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/chart.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/item.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/dateSection.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/metrics.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/context.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/list.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/popover.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/index.tsx","domains/chart/components/lib-charts/group-box-chart/kubernetes/transform.ts","domains/chart/components/abstract-chart.tsx","hooks/use-show-value-outside.ts","domains/chart/components/chart.tsx","domains/chart/components/chart-dropdown/styled.ts","domains/chart/components/chart-dropdown/chart-dropdown.tsx","domains/chart/components/chart-spinner/styled.ts","domains/chart/components/chart-spinner/chart-spinner.tsx","domains/chart/components/chart-with-loader/styled.ts","styles/z-index.js","domains/chart/components/chart-with-loader/chart-with-loader.tsx","domains/chart/hooks/use-fetch-new-data-clock.ts","domains/chart/utils/get-chart-pixels-per-point.ts","domains/dashboard/selectors.ts","domains/chart/components/snapshot-loader.tsx","domains/chart/components/portals.tsx","hooks/use-http.ts","domains/dashboard/components/modal-portal.tsx","domains/dashboard/components/print-modal/print-modal.tsx","domains/dashboard/components/sidebar-social-media/styled.ts","domains/dashboard/components/sidebar-social-media/sidebar-social-media.tsx","domains/dashboard/components/sidebar-social-media-portal/sidebar-social-media-portal.tsx","components/notifications-container/notifications-container.tsx","components/header/item.js","components/header/node/index.js","components/tooltips/customTooltip.js","components/tooltips/getContent.js","components/tooltips/index.js","components/header/options/index.js","components/app-header/components/versionControl/index.js","components/header/version.js","hooks/useToggle/index.js","hooks/useLocalStorage/index.js","components/mdx-components/dropdown/styled.js","components/date-picker/styled.js","components/mdx-components/dropdown/dropdown.js","components/date-picker/timePeriod.js","components/date-picker/utils.js","components/date-picker/timePeriods.js","components/date-picker/customTimePeriod.js","components/datePicker/datePickerLib.js","components/datePicker/styled.js","components/date-picker/datePickerInput.js","components/date-picker/useLocaleDate.js","components/date-picker/useConvertedDate.js","components/date-picker/datePickerWrapper.js","components/date-picker/periodIndication.js","components/date-picker/accessorElement/utils.js","components/date-picker/accessorElement/container.js","components/date-picker/accessorElement/dateBox.js","components/date-picker/accessorElement/durationBox.js","components/date-picker/accessorElement/index.js","components/date-picker/datePickerDrop.js","components/date-picker/reduxDatePickerContainer.js","components/header/globalControls/container.js","components/header/globalControls/playPausePill/styledPill.js","components/header/globalControls/playPausePill/index.js","components/menus/item.js","components/menus/list.js","components/header/globalControls/playOptions/playOptionsTooltip.js","components/menus/styled.js","components/header/globalControls/playOptions/index.js","components/header/globalControls/index.js","components/header/pill/styled.js","components/header/pill/index.js","components/header/alarms.js","components/header/news/index.js","components/header/timezone/dropdown.js","components/header/timezone/search/searchInput.js","components/header/timezone/search/index.js","components/header/timezone/container.js","components/header/timezone/wrapper.js","components/header/timezone/offsetItem.js","components/header/timezone/timezones.js","components/header/timezone/utils.js","components/header/timezone/index.js","components/auth/signIn/iframe.js","components/auth/signIn/useCheckSignInStatus.js","components/header/signIn/index.js","components/discover-cloud/cloudTab.js","components/discover-cloud/discoverCloudModal.js","components/discover-cloud/contents.js","components/discover-cloud/discoverCloudDrop.js","components/discover-cloud/discoverCloud.js","components/header/index.js","components/sidebar/spaces/expandButton.js","components/auth/signOut/index.js","components/sidebar/spaces/userSettings.js","components/sidebar/spaces/spacesSkeleton.js","components/sidebar/spaces/spacesIframe.js","components/sidebar/spaces/index.js","domains/dashboard/utils/sorting.ts","components/sidebar/space/nodes.js","components/sidebar/space/replicatedNodes/anchor.js","components/sidebar/space/replicatedNodes/node.js","components/sidebar/space/replicatedNodes/index.js","components/sidebar/space/spacePanelIframe.js","components/sidebar/space/prompts/signIn/promptContent.js","components/sidebar/space/prompts/signIn/index.js","components/sidebar/space/prompts/offline/noNetwork.js","components/sidebar/space/prompts/offline/index.js","components/sidebar/space/visitedNodes/styled.js","components/sidebar/space/visitedNodes/index.js","utils/truncateMiddle/index.js","components/sidebar/space/index.js","components/sidebar/index.js","components/layout/index.js","utils/map-theme.ts","domains/dashboard/components/migration-modal/migration-modal.js","domains/dashboard/components/migration-manager/migration-manager.tsx","App.tsx","hooks/use-registry.ts","hooks/use-alarms.ts","hooks/use-info.ts","domains/dashboard/hooks/use-charts-metadata.ts","domains/dashboard/hooks/useAlarmFromUrl.js","index.tsx","components/auth/signIn/index.js","utils/hash-utils.ts","utils/post-message.ts","utils/env.ts","domains/dashboard/constants.ts","store/redux-separate-context.ts","utils/is-demo.ts","domains/global/selectors.ts","components/anchor/index.tsx","utils/createRequestAction.ts","domains/global/options.ts"],"names":["currentTemperatureSetting","currentSecondsAsTimeSetting","zeropad","x","seconds2time","seconds","maxTimeUnit","secondsReturn","Math","abs","days","floor","hours","minutes","daysString","hoursString","minutesString","secondsString","toFixed","scalableUnits","pps","Kpps","Mpps","bytes","kilobytes","megabytes","gigabytes","terabytes","Hz","kHz","MHz","GHz","THz","PHz","EHz","ZHz","B","KiB","MiB","GiB","TiB","PiB","KB","MB","GB","TB","PB","EB","EiB","twoFixed","multiplier","value","convertibleUnits","Celsius","Fahrenheit","check","convert","celsius","fahrenheit","milliseconds","microseconds","max","identity","unitsConversionCreator","keys","latest","globalReset","this","get","uuid","min","units","desiredUnits","commonUnitsName","switchUnitsCallback","temperatureSetting","secondsAsTimeSetting","undefined","newConvertFunction","tunits","tdivider","scalableUnitsGroup","Object","forEach","unit","unitDivider","commonUnitsKey","t","divider","commonUnits","console","log","toString","Button","React","ref","children","className","rest","type","classNames","ToolboxButton","iconType","onClick","onDoubleClick","onMouseDown","onTouchStart","popoverContent","popoverTitle","buttonRef","useRef","showHelp","useSelector","selectShowHelp","useEffect","current","window","$","popover","container","animation","html","trigger","placement","delay","show","NETDATA","options","show_help_delay_show_ms","hide","show_help_delay_hide_ms","title","content","LOCALSTORAGE_HEIGHT_KEY_PREFIX","ResizeHandler","chartContainerElement","chartUuid","heightId","isLegendOnBottom","useState","clientHeight","resizeHeight","setResizeHeight","dispatch","useDispatch","setResizeHeightAction","id","handleResize","useCallback","event","preventDefault","intialHeight","eventStartHeight","touches","clientY","setHeight","currentHeight","nextHeight","style","height","heightForPersistance","LEGEND_BOTTOM_SINGLE_LINE_HEIGHT","localStorage","setItem","onMouseMove","e","onTouchMove","document","addEventListener","onTouchEnd","removeEventListener","onMouseEnd","stopPropagation","requestCommonColorsAction","createAction","storeKey","setCommonMinAction","setCommonMaxAction","setGlobalSelectionAction","setGlobalPanAndZoomAction","resetGlobalPanAndZoomAction","setDefaultAfterAction","resetDefaultAfterAction","setGlobalChartUnderlayAction","centerAroundHighlightAction","clearHighlightAction","windowFocusChangeAction","fetchHelloAction","createRequestAction","updatePersonUrlsAction","accessRegistrySuccessAction","startAlarmsAction","fetchAllAlarmsAction","updateActiveAlarmsAction","setOptionAction","resetOptionsAction","loadSnapshotAction","chartsMetadataRequestSuccess","setSpacePanelStatusAction","setSpacePanelTransitionEndAction","setAlarmAction","resetRegistry","setGlobalPauseAction","resetGlobalPauseAction","setUTCOffset","setUserNodeAccess","useRequestRefreshOfAccessMessage","sendToChildIframe","SIGN_IN_IFRAME_ID","payload","useUserNodeAccessMessage","useListenToPostMessage","message","name2id","s","replace","initialState","commonColorsKeys","commonMin","commonMax","currentSelectionMasterId","globalPanAndZoom","defaultAfter","isMainJs","getInitialAfterFromWindow","globalChartUnderlay","hoveredX","hasWindowFocus","hasFocus","globalPause","spacePanelIsActive","spacePanelTransitionEndIsActive","registry","cloudBaseURL","hasFetchedInfo","hasFetchedHello","isHelloCallError","hostname","isCloudEnabled","isCloudAvailable","isAgentClaimed","isACLKAvailable","hasStartedInfo","isFetchingHello","fullInfoPayload","machineGuid","personGuid","registryMachines","registryMachinesArray","registryServer","snapshot","alarms","activeAlarms","hasStartedAlarms","alarm","chartsMetadata","isFetching","isFetchingError","data","optionsMergedWithLocalStorage","userNodeAccess","globalReducer","createReducer","getKeyForCommonColorsState","colorsAttribute","commonColorsAttribute","chartContext","hasCustomColors","length","hasLastOnly","array","last","createCommonColorsKeysSubstate","custom","split","init","shouldCopyTheme","assigned","available","themes","colors","on","state","dimensionNames","keyName","subState","currentlyAssignedNr","requestedDimensionsAssigned","mergeAll","filter","dimensionName","map","i","commonMinKey","charts","currentExtreme","values","commonMaxKey","isActive","after","before","masterID","warn","highlightMargin","resetPanAndZoom","hasFocusNow","forcePlay","stop_updates_when_focus_is_lost","utcOffset","request","success","failure","CLOUD_BASE_URL_DISABLED","fetchInfoAction","key","clearLocalStorage","getOptionsMergedWithLocalStorage","parsedData","dataKey","uncompressed","uncompress","JSON","parse","reduce","acc","obj","typeToClassName","left","reset","right","zoomIn","zoomOut","resize","lineChart","areaChart","noChart","loading","noData","Icon","initialSingleState","chartData","chartId","chartMetadata","chartPanAndZoom","fetchDataParams","isRemotelyControlled","viewRange","isFetchingData","isFetchDataFailure","isFetchDetailsFailure","isFetchingDetails","snapshotDataIsFetching","snapshotDataIsError","snapshotData","chartReducer","getSubstate","fetchDataAction","chart","fetchDataCancelAction","substate","useNewKeysOnlyIfDifferent","fetchDataForSnapshotAction","snapshotExportResetAction","pick","fetchChartAction","setChartPanAndZoomAction","shouldForceTimeRange","resetChartPanAndZoomAction","SYNC_PAN_AND_ZOOM","assoc","clearChartStateAction","omit","getDataAttribute","element","defaultValue","hasAttribute","getAttribute","test","getAttributesStatic","node","mapObjIndexed","attribute","getDataAttributeBoolean","host","httpMethod","chartLibrary","chartDefaults","library","width","legend","legendPosition","unitsCommon","unitsDesired","aggrMethod","labels","postGroupBy","postAggregationMethod","dimensionsAggrMethod","aggrGroups","selectedChart","filteredRows","groupBy","nodeIDs","commonColors","decimalDigits","dimensions","selectedDimensions","forceTimeWindow","appendOptions","gtime","method","overrideOptions","pixelsPerPoint","points","hideResizeHandler","detectResize","dygraphType","dygraphValueRange","dygraphTheme","dygraphSmooth","dygraphColors","dygraphRightGap","dygraphShowRangeSelector","dygraphShowRoller","dygraphTitle","dygraphTitleHeight","dygraphLegend","dygraphLabelsDiv","dygraphLabelsSeparateLine","dygraphIncludeZero","dygraphShowZeroValues","dygraphShowLabelsOnHighLight","dygraphHideOverlayOnMouseOut","dygraphXRangePad","dygraphYRangePad","dygraphYLabelWidth","dygraphStrokeWidth","dygraphStrokePattern","dygraphDrawPoints","dygraphDrawGapEdgePoints","dygraphConnectSeparatedPoints","dygraphPointSize","dygraphStepPlot","dygraphStrokeBorderColor","dygraphStrokeBorderWidth","dygraphFillGraph","dygraphFillAlpha","dygraphStackedGraph","dygraphStackedGraphNanFill","dygraphAxisLabelFontSize","dygraphAxisLineColor","dygraphAxisLineWidth","dygraphDrawGrid","dygraphGridLinePattern","dygraphGridLineWidth","dygraphGridLineColor","dygraphMaxNumberWidth","dygraphSigFigs","dygraphDigitsAfterDecimal","dygraphHighlighCircleSize","dygraphHighlightSeriesOpts","dygraphHighlightSeriesBackgroundAlpha","dygraphXPixelsPerLabel","dygraphXAxisLabelWidth","dygraphDrawXAxis","dygraphYPixelsPerLabel","dygraphYAxisLabelWidth","dygraphDrawYAxis","dygraphDrawAxis","easyPieChartMinValue","easyPieChartMaxValue","easyPieChartBarColor","easyPieChartTrackColor","easyPieChartScaleColor","easyPieChartScaleLength","easyPieChartLineCap","easyPieChartLineWidth","easyPieChartTrackWidth","easyPieChartSize","easyPieChartRotate","easyPieChartAnimate","easyPieChartEasing","gaugeMinValue","gaugeMaxValue","gaugePointerColor","gaugeStrokeColor","gaugeStartColor","gaugeStopColor","gaugeGenerateGradient","sparklineType","sparklineLineColor","sparklineFillColor","sparklineChartRangeMin","sparklineChartRangeMax","sparklineComposite","sparklineEnableTagOptions","sparklineTagOptionPrefix","sparklineTagValuesAttribute","sparklineDisableHiddenCheck","sparklineDefaultPixelsPerValue","sparklineSpotColor","sparklineMinSpotColor","sparklineMaxSpotColor","sparklineSpotRadius","sparklineValueSpots","sparklineHighlightSpotColor","sparklineHighlightLineColor","sparklineLineWidth","sparklineNormalRangeMin","sparklineNormalRangeMax","sparklineDrawNormalOnTop","sparklineXvalues","sparklineChartRangeClip","sparklineChartRangeMinX","sparklineChartRangeMaxX","sparklineDisableInteraction","sparklineDisableTooltips","sparklineOnHover","sparklineDisableHighlight","sparklineHighlightLighten","sparklineHighlightColor","sparklineTooltipContainer","sparklineTooltipClassname","sparklineTooltipFormat","sparklineTooltipPrefix","sparklineTooltipSuffix","sparklineTooltipSkipNull","sparklineTooltipValueLookups","sparklineTooltipFormatFieldlist","sparklineTooltipFormatFieldlistKey","sparklineNumberFormatter","sparklineNumberDigitGroupSep","sparklineNumberDecimalMark","sparklineNumberDigitGroupCount","sparklineAnimatedZooms","d3pieTitle","d3pieSubtitle","d3pieFooter","d3pieTitleColor","d3pieTitleFontsize","d3pieTitleFontweight","d3pieTitleFont","d3PieSubtitleColor","d3PieSubtitleFontsize","d3PieSubtitleFontweight","d3PieSubtitleFont","d3PieFooterColor","d3PieFooterFontsize","d3PieFooterFontweight","d3PieFooterFont","d3PieFooterLocation","d3PiePieinnerradius","d3PiePieouterradius","d3PieSortorder","d3PieSmallsegmentgroupingEnabled","d3PieSmallsegmentgroupingValue","d3PieSmallsegmentgroupingValuetype","d3PieSmallsegmentgroupingLabel","d3PieSmallsegmentgroupingColor","d3PieLabelsOuterFormat","d3PieLabelsOuterHidewhenlessthanpercentage","d3PieLabelsOuterPiedistance","d3PieLabelsInnerFormat","d3PieLabelsInnerHidewhenlessthanpercentage","d3PieLabelsMainLabelColor","d3PieLabelsMainLabelFont","d3PieLabelsMainLabelFontsize","d3PieLabelsMainLabelFontweight","d3PieLabelsPercentageColor","d3PieLabelsPercentageFont","d3PieLabelsPercentageFontsize","d3PieLabelsPercentageFontweight","d3PieLabelsValueColor","d3PieLabelsValueFont","d3PieLabelsValueFontsize","d3PieLabelsValueFontweight","d3PieLabelsLinesEnabled","d3PieLabelsLinesStyle","d3PieLabelsLinesColor","d3PieLabelsTruncationEnabled","d3PieLabelsTruncationTruncatelength","d3PieMiscColorsSegmentstroke","d3PieMiscGradientEnabled","d3PieMiscColorsPercentage","d3PieMiscGradientColor","d3PieCssprefix","peityStrokeWidth","textOnlyDecimalPlaces","textOnlyPrefix","textOnlySuffix","getAttributes","attributesStatic","showValueOf","showValueOfAttribues","Array","from","attributes","name","startsWith","merged","isEmpty","getAttributesDynamic","defaultAttributes","initialLegendRight","localeDateString","localeTimeString","updateLocaleFunctions","newLocaleDateString","newLocaleTimeString","netdataShowAlarms","netdataRegistry","netdataServer","netdataServerStatic","netdataCheckXSS","reduxStore","escapeUserInputHTML","setOption","getFromRegistry","prop","selectRegistry","getState","verifyURL","urlOptions","hash","theme","help","mode","update_always","pan_and_zoom","server","getHashParam","highlight","highlight_after","highlight_before","nowelcome","show_alarms","family","utc","hasProperty","property","genHash","forReload","parseHash","variables","location","len","p","decodeURIComponent","booleans","numeric","parseInt","origin","pathname","welcome","Date","now","hashUpdate","history","replaceState","netdataPanAndZoomCallback","status","netdataSnapshotData","updateUtcParam","netdataHighlightCallback","round","d1","d2","getElementById","innerHTML","seconds4human","tooltip","clearHighlight","showHighlight","localStorageTested","localStorageTest","Storage","removeItem","loadLocalStorage","ret","getItem","error","saveLocalStorage","getTheme","def","setTheme","netdataTheme","updateTheme","netdataShowHelp","naturalSortChunkify","j","tz","y","n","charAt","charCodeAt","m","naturalSortCompare","a","b","aa","toLowerCase","bb","c","Number","d","saveTextToClient","filename","blob","Blob","url","URL","createObjectURL","link","createElement","setAttribute","el","appendChild","setTimeout","removeChild","revokeObjectURL","click","saveObjectToClient","stringify","netdataURL","indexOf","substring","netdataReload","reload","gotoHostedModalHandler","gotoServerValidateRemaining","gotoServerMiddleClick","gotoServerStop","gotoServerValidateUrl","guid","penalty","finalURL","registryHello","machine_guid","open","modal","gotoServerModalHandler","checked","alternateUrls","count","registrySearch","urls","switchRegistryModalHandler","notifyForSwitchRegistry","newPersonGuid","ajax","encodeURIComponent","serverDefault","async","cache","headers","xhrFields","withCredentials","done","xss","checkAlways","fail","deleteRegistryGuid","deleteRegistryUrl","deleteRegistryModalHandler","notifyForDeleteRegistry","responseEl","registryDelete","result","menus","submenu_names","version","release_channel","hosts","duration","update_every","chartsPerRow","chartsHeight","total","prioritySort","priority","sortObjectByPriority","object","idx","sorted","hasOwnProperty","push","sort","scrollToId","offset","animate","scrollTop","top","customDashboard","menu","submenu","context","netdataDashboard","sparklines_registry","os","sparkline","prefix","dimension","suffix","gaugeChart","anyAttribute","attr","menuTitle","menu_pattern","slice","menuIcon","menuInfo","menuHeight","submenuTitle","submenuInfo","submenuHeight","relative","contextInfo","contextValueRange","valueRange","contextHeight","contextDecimalDigits","enrichChartData","parts","tmp","match","endsWith","lastIndexOf","headMain","head","generateHeadCharts","hcharts","hi","hlen","renderPage","div","pcent_width","sidebar","mainhead","main","hasChartsOnBottom","chartAdditionalHeight","menuid","icon","info","shtml","mhead","sub","submenus","si","slen","submenuid","chtml","ci","clen","chartHeight","chartCommonMax","isMemoryModeDbEngine","memory_mode","dimensions_count","toLocaleString","charts_count","alarms_count","printPage","finalizePage","renderChartsAndMenu","menu_key","handleLoadJs","promise","callback","catch","alert","then","loadClipboard","clipboard","loadBootstrapTable","Promise","all","loadBootstrapSlider","slider","default","Slider","loadLzString","loadPako","pako","alarmsUpdateModal","active","footer","alarm_families","count_active","count_all","families","families_sort","charts_by_name","arr","unshift","families_sorted","fc","active_family_added","alarm_to_html","enableTooltipsAndPopovers","alarm_family_show","$accordion","target","bootstrapTable","pagination","pageSize","showPaginationSwitch","search","searchTimeOut","searchAlign","showColumns","showExport","exportDataType","exportOptions","fileName","onClickRow","row","scrollToChartAfterHidingModal","when","rowStyle","classes","showFooter","showHeader","showRefresh","showToggle","sortable","silentSort","columns","field","valign","titleTooltip","formatter","index","timestamp4human","align","switchable","visible","alarmid4human","negative_suffix","space","timestamp","toLocaleDateString","toLocaleTimeString","full","has_alarm","crit","badge_url","action_buttons","recipient","last_status_change","lookup_after","lookup_dimensions","lookup_method","lookup_before","lookup_options","alarm_lookup_explain","calc","green","red","warn_repeat_every","crit_repeat_every","delay_up_duration","delay_down_duration","delay_multiplier","delay_max_duration","exec","source","initializeDynamicDashboardWithData","timezone","clipboardCopy","text","writeText","clipboardCopyBadgeEmbed","initializeConfig","custom_info","loadDashboardInfo","memoizeWith","dataType","loadCustomDashboardInfo","always","extend","initializeChartsAndCustomInfo","chartRegistry","downloadAll","initializeDynamicDashboard","newReduxStore","netdataPrepCallback","innerText","versionLog","msg","versionsMatch","v1","v2","s1","s2","n1","n2","getGithubLatestVersion","channel","tag_name","checkForUpdateByVersion","force","sha2","showPageFooter","display","parseDom","jsonStringifyFn","jsonParseFn","str","eval","xssModalDisableXss","enabled","enabled_for_data","xssModalKeepXss","notifyForUpdate","sha1","save","printPreflight","screen","snapshotOptions","bytes_per_chart","compressionDefault","compressions","bytes_per_point_memory","bytes_per_point_disk","compress","compressed_length","btoa","deflate","to","inflate","atob","LZString","compressToUTF16","decompressFromUTF16","compressToBase64","decompressFromBase64","compressToEncodedURIComponent","decompressFromEncodedURIComponent","loadSnapshotModalLog","tmpSnapshotData","loadSnapshotPreflightFile","file","string","fr","FileReader","onload","date_after","after_ms","date_before","before_ms","charts_ok","charts_failed","compression","data_size","netdata_version","data_points","duration_ms","snapshot_version","comments","removeClass","addClass","readAsText","loadSnapshotPreflightEmpty","loadSnapshot","highlight_after_ms","highlight_before_ms","loadSnapshotDragAndDropInitialized","loadSnapshotDragAndDropSetup","originalEvent","dataTransfer","files","item","loadSnapshotPreflight","saveSnapshotStop","saveSnapshotCancel","stopSnapshotModeAction","saveSnapshotModalInitialized","saveSnapshotModalSetup","saveSnapshotModalInit","find","focus","saveSnapshotModalLog","saveSnapshotModalShowExpectedSize","saveSnapshotViewDuration","saveSnapshotSelectedSecondsPerPoint","sizemb","saveSnapshotCompression","memmb","saveSnapshotSetCompression","saveSnapshotSlider","browser_timezone","reduxState","selectDefaultAfter","start_ms","selectGlobalPanAndZoom","Boolean","start_date","yyyymmddhhssmm","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","view","destroy","ticks","step","scale","saveSnapshot","eltxt","saveData","update_every_ms","pack_api1_v1_chart_data","chartDataUniqueID","cstr","clearPanAndZoom","startSnapshotModeAction","dataPoints","saveSnapshotRestore","css","size","chartUpdated","chartsCount","selectAmountOfCharts","chartsOk","selectAmountOfSnapshotsFetched","chartsFailed","selectAmountOfSnapshotsFailed","pcent","Intl","DateTimeFormat","resolvedOptions","timeZone","getOption","option","createSelectOption","dashboardSettingsSetup","update_options_modal","sync_option","self","bootstrapToggle","units_sync_option","temp_sync_option","change","CHART_DIV_ID_PREFIX","CHART_DIV_OFFSET","scrollDashboardTo","chartElement","offsetTop","querySelector","modalHiddenCallback","animated","alarmDate","alarmStatus","includes","runOnceOnDashboardLastRun","runOnceOnDashboardWithjQuery","body","scrollspy","scrollPos","modal_depth","modal_shown","netdata_paused_on_modal","scrollspyOffset","scrollY","overflow","position","pauseCallback","pause","unpause","affix","bottom","removeAttr","Ps","initialize","wheelSpeed","wheelPropagation","swipePropagation","minScrollbarLength","maxScrollbarLength","useBothWheelAxes","suppressScrollX","suppressScrollY","scrollXMarginOffset","scrollYMarginOffset","fn","shorten","settings","config","showChars","minHideChars","ellipsesText","moreText","lessText","onLess","onscroll","onMore","errMsg","off","$this","hasClass","parent","prev","each","substr","inTag","bag","countChars","openTags","tagName","r","shift","isDemo","onresizeCallback","update","resetDashboardOptions","selected_server_timezone","isProperTimezone","userSetServerTimezone","timezoneOption","netdataCallback","showSignInModal","explicitlySignIn","explicitlySignInAction","MASKED_DATA","INFO_POLLING_FREQUENCY","alarmStatuses","useCloudConnectionStatus","userStatus","nodeStatus","date","useMemo","header","strong","bullets","rel","href","CTA1","makeCloudConnectionStatusInfo","CloudConnectionStatusModal","closeModal","onRefresh","isCTA1Disabled","handleClickedCTA1","background","margin","onClose","padding","column","gap","as","bullet","data-testid","utmParameters","campaign","data-ga","disabled","textTransform","label","Text","sx","fontWeight","lineHeight","CloudConnectionStatus","selectUserNodeAccess","cloudEnabled","selectIsCloudEnabled","isModalOpen","setModalOpen","cloudConnectionStatusInfo","nodeLiveness","documentElement","openModal","flavour","isTimestamp","NETDATA_REGISTRY_SERVER","MS_IN_SECOND","getIframeSrc","path","utmUrlSuffix","getBoundingClientRect","obj1","obj2","equals","callAll","fns","arg","define","_uniqueIDCounter","defaultSettings","color","fontSize","font","subtitle","titleSubtitlePadding","canvasHeight","canvasWidth","pieInnerRadius","pieOuterRadius","sortOrder","ignoreSmallSegments","valueType","smallSegmentGrouping","outer","format","hideWhenLessThanPercentage","pieDistance","inner","mainLabel","percentage","decimalPlaces","lines","truncation","truncateLength","effects","load","effect","speed","pullOutSegmentOnClick","highlightSegmentOnMouseover","highlightLuminosity","tooltips","placeholderParser","styles","fadeInSpeed","backgroundColor","backgroundOpacity","borderRadius","misc","segments","segmentStroke","gradient","canvasPadding","pieCenterOffset","cssPrefix","callbacks","onMouseoverSegment","onMouseoutSegment","onClickSegment","validate","pie","d3","HTMLElement","SVGElement","helpers","isArray","isNaN","addSVGSpace","svg","select","append","shuffleArray","tmpVal","randomIndex","currentIndex","random","processObj","is","getDimensions","w","h","getBBox","rectIntersect","r1","r2","getColorShade","hex","lum","String","newHex","initSegmentColors","finalColors","applySmallSegmentGrouping","totalSize","math","getTotalPieSize","newData","groupedData","totalGroupedData","isGrouped","showPoint","isFunction","functionToCheck","call","o","prototype","src","copy","copyIsArray","clone","arguments","deep","hasOwn","class2type","jQuery","isWindow","isNumeric","parseFloat","isFinite","isPlainObject","nodeType","constructor","toRadians","degrees","PI","toDegrees","radians","computePieRadius","textComponents","headerHeight","exists","innerRadius","percent","outerRadius","smallestDimension","pieDistanceSpace","sortPieData","getPieTranslateCenter","pieCenter","calculatePieCenter","hasTopTitle","hasTopSubtitle","headerOffset","footerOffset","rotate","xm","ym","cos","sin","translate","rads","pointIsInArc","pt","ptData","d3Arc","theta1","startAngle","theta2","endAngle","dist","angle","atan2","add","section","sectionDisplayType","include","getIncludes","outerLabel","insert","labelGroup","__labels","selectAll","enter","formatterContext","part","positionLabelElements","dims","computeLabelLinePositions","lineCoordGroups","computeLinePosition","x2","y2","x3","y3","getSegmentAngle","midpoint","originCoords","heightOffset","outerLabelGroupData","quarter","startOfLabelX","startOfLabel","addLabelLines","lineGroup","lineFunction","line","curve","curveBasis","positionLabelGroups","pieCenterCopy","newCoords","xOffset","yOffset","val","addMainLabel","addValue","addPercentage","computeOuterLabelCoords","getIdealOuterLabelPositions","resolveOuterLabelCollisions","checkConflict","currIndex","direction","curr","currIndexHemisphere","hs","nextIndex","currLabelGroup","examinedLabelGroup","labelHeights","center","lineLength","heightChange","isLabelHidden","adjustLabelPos","lastCorrectlyPositionedLabel","xDiff","yDiff","newXPos","newYPos","sqrt","labelGroupNode","labelGroupDims","originalX","originalY","hemisphere","effectMap","easeLinear","easeBounce","easeSin","easeElastic","easeBack","easeQuad","easeCircle","easeExp","create","pieChartElement","arc","addGradients","grads","addSegmentEventHandlers","merge","segment","currentEl","isExpanded","onSegmentEvent","closeSegment","openSegment","segColor","tt","showTooltip","moveTooltip","hideTooltip","func","expanded","isOpeningSegment","maybeCloseOpenSegment","transition","ease","centroid","pullOutSize","currentlyOpenSegment","getCentroid","bbox","opts","fullValue","compounded","currValue","offscreenCoord","addTitle","__title","positionTitle","headerLocation","addSubtitle","__subtitle","positionSubtitle","getHeaderHeight","addFooter","__footer","positionFooter","footerLocation","footerWidth","totalTitleHeight","footerPlusPadding","addTooltips","caption","replacePlaceholders","currentTooltip","mouseCoords","mouse","parentNode","replacements","placeholder","d3pie","_setupData","_init","recreate","redraw","getOpenSegment","updateProp","propKey","oldVal","oldValue","dp","_getPercentage","totalPercentage","relativeAmount","currentScript","isTestingEnv","getDefaultServer","isDevelopmentEnv","RegExp","getPathFromScriptSource","cond","T","getElementsByTagName","alwaysEndWithSlash","pipe","concat","serverStatic","selectChartsState","selectSingleChartState","createSelector","_","chartsState","selectChartData","chartState","selectChartMetadataFromExplicitCall","selectChartMetadata","selectChartMetadataFromChartsCall","metadataFromAll","metadataFromSingleCall","selectIsFetchingDetails","makeSelectChartMetadataRequest","selectChartViewRange","selectChartIsFetchingData","selectChartFetchDataParams","selectResizeHeight","selectChartPanAndZoom","selectAmountOfFetchedCharts","some","hasCompletedFetching","selectNameOfAnyFetchingChart","isSupportingDateTimeFormat","navigator","language","narrowToDate","localeDateStringNative","localeTimeStringNative","xAxisTimeStringNative","localeMatcher","formatMatcher","weekday","year","month","day","dateFormat","locale","long","isTime","secs","hourCycle","dateStyle","timeStyle","getOptions","getTimezone","useDateTime","selectTimezoneSetting","selectUTCOffsetSetting","xAxisTimeString","xAxisDateString","showSignInModalAction","isSignedInAction","setOfflineAction","fallbackUpdateTimeInterval","panAndZoomDelay","totalSeconds","defaultOptions","hour","minute","second","and","strings","pop","join","module","exports","require","l","Error","code","u","1","v","g","f","run","clearTimeout","fun","nextTick","apply","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","2","defineProperty","__esModule","extractSeries","rollingAverage","3","pow","4","5","onPointsCreated_","y_top","NaN","y_bottom","yval_minus","yval_plus","getExtremeYValues","onLineEvaluated","calcYNormal_","6","X","Y","EXTRAS","seriesToPoints","xval","yval","canvasx","canvasy","7","8","9","dygraph_","layout","elementContext","height_","width_","isCanvasSupported","area","getPlotArea","canvas_ctx_","beginPath","rect","clip","hidden_ctx_","clear","clearRect","render","_updatePoints","_renderLineChart","_getIteratorPredicate","_predicateThatSkipsEmptyPoints","_drawStyledLine","dygraph","getBooleanOption","setName","isArrayLike","createIterator","drawingContext","setLineDash","_drawSeries","_drawPointsOnLine","restore","strokeStyle","lineWidth","array_","end_","predicate_","start_","moveTo","lineTo","nextIdx_","next","hasNext","peek","stroke","setNames","colorsMap_","strokeWidth","axis","axisPropertiesForSeries","plotArea","seriesIndex","seriesCount","singleSeriesName","allSeriesPoints","_Plotters","linePlotter","_linePlotter","fillPlotter","_fillPlotter","errorPlotter","_errorPlotter","getNumericOption","Circles","DEFAULT","toRGB_","fillStyle","closePath","fill","_fastCanvasProxy","splice","_count","getLabels","visibility","getColors","A","minyval","yscale","O","D","E","L","S","P","C","M","FORCE_FAST_PROXY","N","F","isOK","k","y_stacked","10","highlightCircleSize","highlightSeriesOpts","highlightSeriesBackgroundAlpha","highlightSeriesBackgroundColor","labelsSeparateLines","labelsShowZeroValues","labelsKMB","labelsKMG2","showLabelsOnHighlight","digitsAfterDecimal","maxNumberWidth","sigFigs","strokeBorderWidth","strokeBorderColor","axisTickSize","axisLabelFontSize","rightGap","showRoller","xValueParser","delimiter","sigma","errorBars","fractions","wilsonInterval","customBars","fillGraph","fillAlpha","connectSeparatedPoints","stackedGraph","stackedGraphNaNFill","hideOverlayOnMouseOut","stepPlot","xRangePad","yRangePad","drawAxesAtZero","titleHeight","xLabelHeight","yLabelWidth","axisLineColor","axisLineWidth","gridLineWidth","axisLabelWidth","gridLineColor","interactionModel","defaultModel","animatedZooms","showRangeSelector","rangeSelectorHeight","rangeSelectorPlotStrokeColor","rangeSelectorPlotFillGradientColor","rangeSelectorPlotFillColor","rangeSelectorBackgroundStrokeColor","rangeSelectorBackgroundLineWidth","rangeSelectorPlotLineWidth","rangeSelectorForegroundStrokeColor","rangeSelectorForegroundLineWidth","rangeSelectorAlpha","showInRangeSelector","plotter","plugins","axes","pixelsPerLabel","axisLabelFormatter","dateAxisLabelFormatter","valueFormatter","dateValueFormatter","drawGrid","drawAxis","independentTicks","ticker","dateTicker","numberValueFormatter","numberAxisLabelFormatter","numericTicks","11","draw","date_graph","setSelection","getSelection","layout_","12","dragEndX","dragGetX_","dragEndY","dragGetY_","dragStartX","dragStartY","lastx_","treatMouseOpAsClick","regionWidth","regionHeight","isPanning","xAxisRange","getOptionForAxis","initialLeftmostDate","log10","dateRange","xUnitsPerPixel","plotter_","xAxisExtremes","toDomXCoord","toDataXCoord","boundedDates","axes_","extremeRange","toDomYCoord","toDataYCoord","boundedValues","is2DPan","yAxisRange","attributes_","getForAxis","initialTopValue","dragValueRange","unitsPerPixel","dateWindow_","LOG_SCALE","drawGraph_","endPan","maybeTreatMouseOpAsClick","startZoom","isZooming","zoomMoved","moveZoom","dragDirection","VERTICAL","HORIZONTAL","drawZoomRect_","prevDragDirection","prevEndX","prevEndY","getFunctionOption","MAX_VALUE","selPoints_","cancelable","point","cascadeEvents_","pts","endZoom","clearZoomRect_","getArea","doZoomX_","cancelNextDblclick","doZoomY_","startTouch","startTimeForDoubleTapMs","pageX","pageY","dataX","dataY","initialTouches","initialPinchCenter","touchDirections","initialRange","moveTouch","yAxisRanges","endTouch","changedTouches","getTime","doubleTapX","screenX","doubleTapY","screenY","resetZoom","findPos","canvas_","offsetWidth","offsetHeight","mousedown","button","initializeMouseDown","altKey","shiftKey","startPan","movePan","addAndTrackEvent","removeEvent","willDestroyContextMyself","touchstart","touchmove","touchend","dblclick","nonInteractiveModel_","mouseup","dragIsPanInteractionModel","mousemove","13","annotations","yAxes_","xTicks_","yTicks_","addDataset","area_","computePlotArea","chart_div","graphDiv","reserveSpaceLeft","reserveSpaceRight","reserveSpaceTop","reserveSpaceBottom","chartRect","setAnnotations","setXTicks","setYAxes","evaluate","_xAxis","_evaluateLimits","_evaluateLineCharts","_evaluateLineTicks","_evaluateAnnotations","minval","maxval","xlogrange","xlogscale","computedValueRange","maxyval","yrange","ylogrange","ylogscale","calcXNormal_","getForSeries","yval_stacked","dataHandler_","xticks","label_v","toPercentXCoord","pos","has_tick","yticks","toPercentYCoord","series","annotated_points","annotation","removeAllDatasets","setPointsLengths","setPointsOffsets","14","_process","15","xAxis_","series_","global_","attrs_","user_","user_attrs_","labels_","highlightSeries_","reparseSeries","AXIS_STRING_MAPPINGS_","y1","Y1","Y2","axisToIndex_","yAxis","getGlobalUser_","getGlobalDefault_","getHighlightSeries","numAxes","axisForSeries","axisOptions","seriesForAxis","seriesNames","16","numericLinearTicks","binarySearch","tickValue","pixel_coord","reverse","ceil","MILLISECONDLY","TWO_MILLISECONDLY","FIVE_MILLISECONDLY","TEN_MILLISECONDLY","FIFTY_MILLISECONDLY","HUNDRED_MILLISECONDLY","FIVE_HUNDRED_MILLISECONDLY","SECONDLY","TWO_SECONDLY","FIVE_SECONDLY","TEN_SECONDLY","THIRTY_SECONDLY","MINUTELY","TWO_MINUTELY","FIVE_MINUTELY","TEN_MINUTELY","THIRTY_MINUTELY","HOURLY","TWO_HOURLY","SIX_HOURLY","DAILY","TWO_DAILY","WEEKLY","MONTHLY","QUARTERLY","BIANNUAL","ANNUAL","DECADAL","CENTENNIAL","NUM_GRANULARITIES","Granularity","datefield","spacing","DateAccessorsUTC","DateAccessorsLocal","getMilliseconds","getDay","makeDate","getDateAxis","17","toExponential","toPrecision","nt","rt","ot","st","cancelEvent","cancelBubble","cancel","returnValue","hsvToRGB","pageXOffset","scrollLeft","pageYOffset","px","py","isValidPoint","floatFormat","hmsString_","dateString_","round_","dateParser","dateStrToMillis","updateDeep","Node","nodeName","isDateLike","createCanvas","getContextPixelRatio","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","Iterator","repeatAndCleanup","et","isPixelChangingOptionList","at","detectLineDelimiter","isNodeContainedBy","getComputedStyle","getContext","parseFloat_","G","lt","W","LN_TEN","U","logRangeFraction","DOTTED_LINE","DASHED_LINE","DOT_DASH_LINE","addEvent","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getUTCDay","UTC","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","requestAnimFrame","annotationClickHandler","annotationDblClickHandler","annotationMouseOutHandler","annotationMouseOverHandler","clickCallback","drawCallback","drawHighlightPointCallback","drawPoints","drawPointCallback","highlightCallback","labelsDiv","panEdgeFraction","pixelsPerYLabel","pointClickCallback","pointSize","underlayCallback","unhighlightCallback","zoomCallback","it","18","Symbol","iterator","return","TypeError","R","H","Z","q","Q","__init__","NAME","VERSION","DEFAULT_ROLL_PERIOD","DEFAULT_WIDTH","DEFAULT_HEIGHT","ANIMATION_STEPS","ANIMATION_DURATION","Plotters","addedAnnotationCSS","is_initial_draw_","readyFns_","copyUserAttrs_","maindiv_","file_","rollPeriod_","rollPeriod","previousVerticalX_","fractions_","dateWindow","annotations_","clientWidth","boundaryIds_","setIndexByName_","datasetIndex_","registeredEvents_","eventListeners_","createInterface_","plugins_","PLUGINS","plugin","activate","events","pluginOptions","createDragInterface_","defaultPrevented","propagationStopped","getPluginInstance_","isZoomed","attr_","getStringOption","optionsViewForAxis_","numRows","rawData_","yAxisExtremes","gatherDatasets_","rolledSeries_","extremes","computeYAxisRanges_","toDomCoords","toDataCoords","numColumns","getValue","textAlign","hidden_","createPlotKitCanvas_","resizeElements_","mouseEventElement_","createMouseEventElement_","mouseMoveHandler_","mouseMove_","mouseOutHandler_","fromElement","relatedTarget","toElement","mouseOut_","resizeHandler_","removeTrackedEvents_","hasChildNodes","firstChild","setColors_","colors_","getPropertiesForSeries","createRollInterface_","roller_","onchange","adjustRoll","tarp","cover","draggingDate","draggingValue","uncover","fillRect","currentZoomRectArgs_","doZoomXDates_","doAnimatedZoom","zoomAnimationFunction","clearSelection","eventToDomCoords","offsetX","offsetY","findClosestRow","findClosestPoint","seriesName","findStackedPoint","getLeftBoundary_","isSeriesLocked","lastRow_","highlightSet_","animateSelection_","fadeLevel","animateId","updateSelection_","selectedRow","selectedX","selectedPoints","lockedSet_","loadedEvent_","parseCSV_","cascadeDataDidUpdateEvent_","predraw_","addXTicks_","getHandlerClass_","computeYAxes_","drawingTimeMs_","PointType","stackPoints_","boundaryIds","renderGraph_","canvas","readyFired_","detectTypeFromString_","setXAxisOptions_","parseArray_","parseDataTable_","getNumberOfColumns","getNumberOfRows","getColumnType","getColumnLabel","shortText","fromCharCode","getColumnRange","XMLHttpRequest","ActiveXObject","onreadystatechange","readyState","responseText","send","updateOptions","resize_lock","setVisibility","indexFromSetName","getRowForX","ready","elem","GVizChart","defaultInteractionModel","nonInteractiveModel","Plugins","Legend","Axes","Annotations","ChartLabels","Grid","RangeSelector","DataHandlers","DefaultHandler","BarsHandler","CustomBarsHandler","DefaultFractionHandler","ErrorBarsHandler","FractionsBarsHandler","19","tarps","zIndex","20","clearChart","didDrawChart","detachLabels","tickHeight","cssClass","createTextNode","attachAtBottom","borderColor","tickColor","tickWidth","21","xlabels_","ylabels_","willDrawChart","22","title_div_","xlabel_div_","ylabel_div_","y2label_div_","detachLabels_","23","24","legend_div_","is_generated_div_","one_em_width_","deselect","predraw","generateLegendHTML","dashHTML","labelHTML","isVisible","xHTML","yHTML","isHighlighted","defaultFormatter","25","hasTouchInterface_","TouchEvent","isMobileDevice_","appVersion","interfaceCreated_","getOption_","reserveSpace_","renderStaticLayer_","renderInteractiveLayer_","bgcanvas_","fgcanvas_","leftZoomHandle_","rightZoomHandle_","setDefaultOption_","createCanvases_","createZoomHandles_","initInteraction_","addToGraph_","graphDiv_","removeFromGraph_","updateVisibility_","resize_","drawStaticLayer_","isChangingRange_","placeZoomHandles_","drawInteractiveLayer_","canvasRect_","bgcanvas_ctx_","fgcanvas_ctx_","cursor","Image","cloneNode","leftHandlePos","rightHandlePos","clientX","srcElement","getZoomHandleStatus_","targetTouches","opera","drawMiniPlot_","computeCombinedSeriesAndLimits_","yMax","yMin","createLinearGradient","addColorStop","MIN_VALUE","legendPluginModuleString","withContext","legendResolutionTooltip","collected","viewed","view_update_every","getNewSelectedDimensions","newSelectedDimensions","allDimensions","clickedDimensionName","isModifierKeyPressed","enabledDimensions","isCurrentlySelected","isSnapshotMode","snapshotCharts","snapshotDataPoints","isSignedIn","offline","dashboardReducer","combineReducers","globalKey","chartKey","dashboardKey","axiosInstance","axios","Pragma","getFetchStream","concurrentCallsLimit","fetch$","Subject","resetFetch$","handler","mergeMap","params","onErrorCallback","onSuccessCallback","cancelTokenSource","timeout","cancelToken","token","tap","responseData","catchError","empty","startWith","switchMap","subscribe","fillMissingData","nrOfPointsToFill","viewUpdateEvery","firstAddedTimestamp","emptyPoint","tail","nulls","addPointsDygraph","emptyArray","transformResults","shouldRevertFlip","dataResult","pointData","sum","Container","styled","getSizeBy","SideContent","ContentContainer","HeaderText","getColor","ContentText","TextSmall","UINotification","props","leftContent","rightContent","renderContent","createUINotification","NodeIconContainer","NotificationLink","toastOptions","toast","POSITION","BOTTOM_RIGHT","autoClose","pauseOnFocusLoss","showCloudInstallationProblemNotification","notificationComponent","showCloudConnectionProblemNotification","uiNotification","defaultUrlOptions","alarm_unique_id","alarm_id","alarm_event_id","alarm_when","parseQueryPair","isInvalidPair","isPrintMode","mapIndexed","mergeRight","parseUrl","watchFetchDataResponseChannel","fetchDataSaga","fetchChartSaga","fetchInfoSaga","chartSagas","CONCURRENT_CALLS_LIMIT_METRICS","fetchDataResponseChannel","take","action","start","end","put","constructCompatibleKey","IS_FLIP_RESPECTED_IN_COMPOSITE_CHARTS","getGroupByValues","fetchMetrics$","group","selectSnapshot","dimensionsWithUrlOptions","matchingKey","snapshotKey","agentOptionsOriginal","hasFlip","agentOptions","shouldAddFakeFlip","groupValues","axiosOptions","agent_options","post_aggregation_methods","aggregations","valueOf","fillMissingPoints","transformedResults","postAggregated","post_aggregated_data","fetchForSnapshot$","resetFetchForSnapshot$","fetchDataForSnapshotSaga","aggr_method","node_ids","stopSnapshotModeSaga","response","poll","wasCloudAvailable","wasACLKAvailable","takeEvery","spawn","sidePanelTransitionTimeInSeconds","getLog","notifyAll","alarmsLoop","startAlarms","fetchAllAlarmsSaga","alarmsSagas","ALARMS_INITIALIZATION_DELAY","ALARMS_UPDATE_EVERY","ALARMS_MS_BETWEEN_NOTIFICATIONS","areNotificationsAvailable","notificationCallback","netdataAlarmsNotifCallback","firstNotificationId","lastNotificationId","scrollToAlarm","chartID","scrollToChart","requestPermissions","Notification","permission","requestPermission","hasGivenNotificationPermissions","lastNotificationIdArg","getNotification","entry","firstNotificationIdArg","updated","valueString","value_string","tag","interaction","unique_id","old_status","no_clear_notification","notificationTitle","notificationOptions","requireInteraction","notificationHandler","alarmLogs","logsSorted","sortBy","newLogs","notifications","onclick","netdataAlarmsRemember","what","latest_alarm_log_unique_id","allAlarms","allowedReferrerDomains","isAllowedReferrer","referrer","watchWindowFocusChannel","waitForFullInfoPayload","injectPosthog","fetchHelloSaga","spacePanelSaga","globalSagas","windowFocusChannel","listenToWindowFocus","posthog","selectFullInfoPayload","__SV","_i","api_host","insertBefore","people","loaded","identify","shouldMaskReferrer","register","$ip","$current_url","$pathname","$host","$initial_referring_domain","$initial_referrer","$referring_domain","$referrer","event_source","netdata_machine_guid","netdata_person_id","netdata_buildinfo","netdata_release_channel","mirrored_host_count","mirrored_hosts","alarms_normal","normal","alarms_warning","warning","alarms_critical","critical","host_os_name","os_name","host_os_id","os_id","host_os_id_like","os_id_like","host_os_version","os_version","host_os_version_id","os_version_id","host_os_detection","os_detection","system_cores_total","cores_total","system_total_disk_space","total_disk_space","system_cpu_freq","cpu_freq","system_ram_total","ram_total","system_kernel_name","kernel_name","system_kernel_version","kernel_version","system_architecture","architecture","system_virtualization","virtualization","system_virt_detection","virt_detection","system_container","system_container_detection","container_detection","container_os_name","container_os_id","container_os_id_like","container_os_version","container_os_version_id","host_collectors_count","collectors","host_cloud_enabled","host_cloud_available","host_agent_claimed","host_aclk_available","host_aclk_implementation","host_allmetrics_json_used","host_allmetrics_prometheus_used","host_allmetrics_shell_used","host_charts_count","host_dashboard_used","host_metrics_count","host_notification_methods","config_memory_mode","config_exporting_enabled","config_exporting_connectors","config_hosts_available","config_https_enabled","config_multidb_disk_quota","config_page_cache_size","config_stream_enabled","config_web_enabled","host_is_parent","host_labels","_is_parent","mirrored_hosts_reachable","mirrored_hosts_status","reachable","mirrored_hosts_unreachable","host_collectors","host_is_k8s_node","is_k8s_node","accessRegistry","maxRedirects","machine","isRedirect","returnData","person_guid","parsePersonUrls","personUrls","lastTimestamp","accesses","existingObj","isNewer","extended","uniq","helloCallUrl","cloud_base_url","isUsingGlobalRegistry","accessRegistryResponse","anonymous_statistics","constructOptionStorageKey","setOptionSaga","showSignInSaga","mainJsSagas","LOCAL_STORAGE_NEEDS_SYNC","setGlobalChartUnderlaySaga","hashParams","getHashParams","setHashParams","clearHighlightSaga","removeHashParams","signInLinkHref","rootSaga","sagaMiddleware","createSagaMiddleware","store","createStore","rootReducer","compose","applyMiddleware","configureStore","loadCss","resolve","reject","fileRef","onerror","isDygraphSparkline","chartLibrariesSettings","hasToolboxPanAndZoom","xssRegexIgnore","isLogScale","hasLegend","trackColors","containerClass","peity","google","easypiechart","aspectRatio","gauge","textonly","groupbox","getChartURLOptions","shouldEliminateZeroDimensions","BIGGEST_INTERVAL_NUMBER","Loader","containerNode","hasEmptyData","screenHeight","lost","paddingTop","getPanAndZoomStep","ctrlKey","pan_and_zoom_factor","pan_and_zoom_factor_multiplier_control","pan_and_zoom_factor_multiplier_shift","pan_and_zoom_factor_multiplier_alt","safeEqualCheck","formattersFixed","formattersZeroBased","fastNumberFormat","NumberFormat","useGrouping","minimumFractionDigits","maximumFractionDigits","getLegendFormatValue","convertUnits","intlNumberFormat","valueDecimalDetail","dmin","dmax","convertedValue","useFormatters","selectTemperatureSetting","selectSecondsAsTimeSetting","setConvertUnits","setMin","setMax","unitsCurrent","setUnitsCurrent","decimals","setDecimals","setIntlNumberFormat","legendFormatValue","legendFormatValueRef","updateLegendFormatValueRef","newConvertUnits","newIntlNumberFormat","newDecimalDigits","legendFormatValueDecimalsFromMinMax","newMin","newMax","switchedUnits","newDecimals","convertedMin","convertedMax","delta","defaultColor","LegendContainer","LegendFirstRow","LegendSecondRow","LegendUnit","DateTimeSeparator","span","LegendItems","DimensionItem","isDisabled","DimensionItemToolboxPlaceholder","DimensionIcon","DimensionLabel","DimensionValue","ToolboxContainer","emptyObject","selector","dimension_names","LegendText","ChartLegendRight","hoveredRow","onDimensionClick","showLatestOnBlur","viewBefore","dimensionIds","dimension_ids","showUndefined","legendDate","colorFillOpacity","chart_type","scrollbarRef","dimensionId","rgb","hexFull","colorHex2Rgb","isSelected","hoveredValueArray","view_latest_values","role","tabIndex","ChartTimeframe","ChartLegendBottom","legendToolbox","resizeHandler","ChartLegend","setSelectedDimensions","LegendToolbox","onToolboxLeftClick","onToolboxRightClick","onToolboxZoomInClick","onToolboxZoomOutClick","getDataForFakeStacked","dimensionsVisibility","currentMin","currentMax","getDygraphChartType","chartSettings","dygraphRequestedType","dygraphChartType","getBackgroundColor","Color","transformColors","mix","getDygraphFillAlpha","isFakeStacked","color_fill_opacity_fake_stacked","color_fill_opacity_stacked","color_fill_opacity_area","useProceededChart","chartRef","propsRef","useToggle","proceeded","toggleProceeded","updatePosition","distance","first_entry","hasProceeded","defaultPositionTo","topMargin","ProceededChartDisclaimer","forwardRef","backgroundColorMap","WARNING","CRITICAL","CLEAR","borderColorMap","getBorderColor","textColorMap","Badge","border","getInitialDygraphOptions","hiddenLabelsElementId","orderedColors","setMinMax","shouldSmoothPlot","isSparkline","grid","includeZero","ylabel","smoothPlotter","strokePattern","drawGapEdgePoints","gridLinePattern","logscale","Dygraph","toTimeString","DygraphChart","chartElementClassName","chartElementId","onUpdateChartPanAndZoom","immediatelyDispatchPanAndZoom","setGlobalChartUnderlay","setHoveredX","viewAfter","selectGlobalChartUnderlay","selectedAlarm","selectAlarm","updateChartPanOrZoom","shouldNotExceedAvailableRange","dygraphInstance","latestIsUserAction","isMouseDown","dygraphHighlightAfter","dygraphLastTouchMove","dygraphLastTouchPageX","dygraphLastTouchEnd","isSyncPanAndZoom","selectSyncPanAndZoom","resetGlobalPanAndZoom","isRendered","toggleIsRendered","positionTo","useDygraphBadge","isAlarmBadgeVisible","alarmBadgeRef","updateAlarmBadge","isProceeded","precededChartRef","updatePrecededPosition","useLayoutEffect","selectSmoothPlot","dygraphOptionsStatic","dygraphOptions","newHoveredX","xRange","last_entry","isInRangeOfAvailableData","minDate","maxDate","currentAlarm","alarmPosition","fillColor","globalAlphaCache","globalAlpha","bottomLeft","topRight","isOutsideReasonableViewport","metaKey","sortedRange","wheel","normalDef","wheelDelta","deltaY","detail","layerX","offsetLeft","xPct","axisAfterOffset","offsetToPercentage","zoomInPercentage","bias","afterAxis","beforeAxis","increment","updatedAfter","updatedBefore","zoom","dygraphPlotter","pct","double_click_speed","instance","useUpdateEffect","selectSpacePanelTransitionEndIsActive","forceDateWindow","hasChangedDuration","hasScrolledToTheFutureDuringPlayMode","optionsDateWindow","selectGlobalSelectionMaster","commonMinState","selectCommonMin","commonMaxState","selectCommonMax","shouldUseCommonMin","shouldUseCommonMax","shouldUpdate","newExtremes","useUnmount","resizeObserver","useMount","hasOmitedFirstCallback","callbackDebounced","waitFor","args","debounce","ResizeObserver","observe","disconnect","EasyPieChart","chartWidth","chartInstance","setChartInstance","valueIndex","safeMinMax","_min","_max","isMinOverride","isMaxOverride","getPercentFromValueMinMax","easypiechart_track","easypiechart_scale","newChartInstance","EasyPie","barColor","trackColor","scaleColor","scaleLength","lineCap","trackWidth","easing","shouldUseAnimation","enableAnimation","disableAnimation","valueFontSize","valuetop","titleFontSize","titletop","unitFontSize","unitTop","isSetByUser","GaugeChart","chartCanvasElement","minAttribute","maxAttribute","safeMin","safeMax","_pcent","gauge_pointer","gauge_stroke","radiusScale","pointer","limitMax","limitMin","colorStart","colorStop","strokeColor","generateGradient","gradientType","highDpiSupport","Gauge","setOptions","minValue","maxValue","animationSpeed","set","valueTop","minMaxFontSize","normalizeHex","colorLuminance","hexNormalized","splitEvery","nr","convertToTimestamp","number","SparklineChart","viewAfterForCurrentData","viewBeforeForCurrentData","$chartElement","set$chartElement","sparklineOptions","requestedAfter","requestedBefore","currentDuration","requestedDuration","widthRatio","paddingLeftPercentage","getForceTimeWindowCorrection","defaultFillColor","fill_luminance","chartTitle","emptyStringIfDisable","sparklineInitOptions","lineColor","chartRangeMin","chartRangeMax","composite","enableTagOptions","tagOptionPrefix","tagValuesAttribute","disableHiddenCheck","defaultPixelsPerValue","spotColor","minSpotColor","maxSpotColor","spotRadius","valueSpots","highlightSpotColor","highlightLineColor","normalRangeMin","normalRangeMax","drawNormalOnTop","xvalues","chartRangeClip","chartRangeMinX","chartRangeMaxX","disableInteraction","disableTooltips","disableHighlight","highlightLighten","highlightColor","tooltipContainer","tooltipClassname","tooltipChartTitle","tooltipFormat","tooltipPrefix","tooltipSuffix","tooltipSkipNull","tooltipValueLookups","tooltipFormatFieldlist","tooltipFormatFieldlistKey","numberFormatter","numberDigitGroupSep","numberDecimalMark","numberDigitGroupCount","onLeave","onChange","sparklines","getCurrentRegionFields","bind","unbind","paddingLeft","fetchPromise","emptyContent","getDateRange","dt","dtString","time","t1","t2","D3pieChart","d3pieInstance","setD3pieInstance","d3pieOptions","safeContent","defaultTitle","other","mainlabel","segment_stroke","gradient_color","initialD3pieOptions","tooltip_bg","tooltip_fg","newD3pieInstance","isHoveredButNoData","slot","PeityChart","peityOptions","$element","peityInitOptions","foreground","updatedOptions","GoogleChart","googleChartInstance","hasApiBeenLoaded","setHasApiBeenLoaded","script","firstScript","packages","googleOptions","dataTable","visualization","DataTable","chartType","areaOpacity","Map","initialGoogleOptions","hAxis","viewWindowMode","slantedText","textStyle","gridlines","vAxis","chartArea","focusTarget","pointsVisible","titlePosition","titleTextStyle","isHtml","ignoreBounds","curveType","isStacked","googleInstance","AreaChart","LineChart","TextOnly","precision","textContent","defaultAspectRatio","getCellBoxSize","cellSize","getRows","getColumns","rows","getXPosition","getYPosition","getFullWidth","getFullHeight","getOffsetPosition","onMouseenter","onMouseout","cellPadding","hoveredIndex","getEvent","cellBoxSize","mouseout","nextHoveredIndex","getWidth","getCanvasAttributes","defaultColorRange","makeGetColor","colorRange","scaleLinear","domain","extent","range","innerHeight","aligns","GroupBox","renderTooltip","dataRef","canvasRef","boxesRef","hover","setHover","dropHoverRef","boxHoverRef","timeoutId","close","deactivateBox","closeDrop","currentHover","cellStroke","activeBox","activateBox","clearEvents","drawBox","registerEvents","strokeRect","drawBoxes","onMouseEnter","onMouseLeave","getAlign","Title","Label","Flex","attrs","TextMicro","GroupBoxWrapper","groupIndex","renderGroupPopover","renderBoxPopover","maxWidth","boxPopover","boxAlign","groupPopover","alignItems","plain","isOpen","popoverRef","GroupBoxes","flexWrap","vertical","flex","LinearColorScaleBar","k8s_cluster_id","k8s_node_name","k8s_namespace","k8s_controller_kind","k8s_controller_name","k8s_pod_name","k8s_container_name","labelIds","word","toUpperCase","Separator","Header","wordBreak","TabButton","neutral","themeType","Tabs","ExpandButton","makeFlex","Section","onExpand","noBorder","side","justifyContent","getPortalNodeStyles","shouldAddSpecialHeight","heightFromLocalStorage","heightID","persitedHeight","getHeightFromLocalStorage","heightOverriden","chartDefaultsMinWidth","min_width","minWidth","globalIntersectionOptions","root","rootMargin","threshold","globalIntersectionObserver","globalObserver","IntersectionObserver","entries","isIntersecting","unsubscribe","elementToUnsubscribe","createGlobalIntersectionObserver","InvisibleSearchableText","opacity","shouldCleanChartStateAlways","DisableOutOfView","portalNode","hasPortalNodeBeenStyled","setHasPortalNodeBeenStyled","isShowingAlarmOnChart","forEachObjIndexed","styleName","setProperty","destroyOnHide","selectDestroyOnHide","clonedChildrenRef","isVisibleIntersection","setIsVisible","isVisibleRef","newIsVisible","useCommonIntersection","debounceTime","selectIsAsyncOnScroll","shouldHideDebounced","setShouldHideDebounced","useDebounce","shouldHide","previousIsVisibleIntersection","newClonedChildren","child","cloned","clonedCanvases","querySelectorAll","oldCanvas","newCanvas","drawImage","cloneWithCanvas","clonedChildrenContainer","nodeElement","ChartContainer","dropdownMenu","renderCustomElementForDygraph","onAttributesChange","externalChartMetadata","sectionTitle","MigrationModalPromos","aggrMethods","avg","ChartValueContainer","memo","displayedIndex","aggregation","getAggregation","ChartValue","dangerouslySetInnerHTML","__html","groupLabel","postGroupLabel","relatedIndex","useContext","ThemeContext","chartContainerRef","setDisplayedIndex","setDisplayedIndexThrottled","throttle","repaint","relatedCharts","relatedChartAttributes","chartAttributes","chartLabels","ExternalButton","alignSelf","Item","secondary","DateItem","DateSection","Metrics","LabelsSection","labelId","items","onItemClick","getLabel","sliced","expandable","onNodeClick","ids","predefinedLabelIds","getLabelIds","StyledButton","List","onBack","horizontal","TabsContainer","Popover","setView","isLabelView","Kubernetes","labelValues","postGroupValues","postGroupData","groupValue","indexes","boxes","labelsAcc","groupData","groupChartLabels","groupLabels","Set","accChartLabels","transform","groupBoxData","groupedBoxesData","groupedBox","AbstractChart","showValueAttributesNodes","userElementId","chartSettingCallOptions","isFlipped","dimensionIndex","useShowValueOutside","Chart","viewRangeForCurrentData","themeContext","unitsScalingMethod","selectUnitsScalingMethod","shouldDisplayToolbox","legend_toolbox","shouldDisplayResizeHandler","resize_charts","allDimensionNames","dimensionNamesFromMetadata","additionalDimensionNamesFromData","localHoveredX","setLocalHoveredX","isSyncSelection","selectSyncSelection","handleSetHoveredX","noMaster","globalHoveredX","selectGlobalSelection","netdataFirst","netdataLast","fixedMinDuration","setGlobalPanAndZoomDebounced","useDebouncedCallback","newGlobalPanAndZoom","flush","handleUpdateChartPanAndZoom","shouldFlushImmediately","minDuration","currentDuraton","afterForced","beforeForced","first","wantedDuration","doCallback","tolerance","movement","handleToolBoxPanAndZoom","newAfter","newBefore","handleToolboxLeftClick","handleToolboxRightClick","timeWindow","handleToolboxZoomInClick","panAndZoomStep","handleToolboxZoomOutClick","selectAssignedColors","createSelectAssignedColors","__","isTimeVisible","DropdownItem","DropdownItemLabel","DotsBtn","ChartDropdown","setIsOpen","handleClose","circleAnimation","keyframes","SpinnerContainer","Circle","Circle2","Circle3","ChartSpinner","spaceBetween","ChartDropdownContainer","dimensionsAggrMethodMap","ChartWithLoader","selectChartMetadataRequest","actualChartMetadata","panAndZoom","isPanAndZoomMaster","areCriteriaMet","preferedIntervalTime","selectHasWindowFocus","stopUpdatesWhenFocusIsLost","selectStopUpdatesWhenFocusIsLost","selectGlobalPause","shouldBeUpdating","shouldFetch","setShouldFetch","shouldFetchImmediatelyAfterFocus","setShouldFetchImmediatelyAfterFocus","intervalTime","useInterval","useFetchNewDataClock","panAndZoomThrottled","useThrottle","initialBefore","liveModeAfter","boundingClientRect","isShowingSnapshot","selectShouldEliminateZeroDimensions","shouldUsePanAndZoomPadding","selectPanAndZoomDataPadding","CancelToken","shouldShowSpinnerDebounced","setShouldShowSpinnerDebounced","shouldShowSpinner","newViewRange","forceDataPoints","force_data_points","pointsMultiplier","requestedPadding","pixelsPerPointAttribute","pixelsPerPointSetting","pixels_per_point","getChartPixelsPerPoint","correctedPoints","firstEntry","nowInSeconds","afterAbsolute","beforeAbsolute","requestedRange","availableRange","getCorrectedPoints","externalSelectedDimensions","customElementForDygraph","selectDashboardDomain","selectIsSnapshotMode","selectSnapshotOptions","SnapshotLoader","SnapshotLoaderContainer","Portals","nodes","attributesMapped","createPortal","useHttp","shouldMakeCall","isExternal","setIsFetching","isError","setIsError","setData","modalRoot","ModalPortal","PrintModal","printModalElement","amountOfCharts","amountOfFetchedCharts","nameOfAnyFetchingChart","print","progressBarText","aria-labelledby","data-keyboard","data-backdrop","data-dismiss","aria-label","aria-hidden","aria-valuenow","aria-valuemin","aria-valuemax","SocialMediaContainer","FirstRow","GithubCopy","GithubCopyLine","SocialMediaLink","GithubStarQuestion","GithubIcon","TwitterIcon","FacebookIcon","SecondRow","SecondRowText","SidebarSocialMedia","SidebarSocialMediaPortal","NotificationsContainer","closeButton","hasBorder","hostNameSelector","global","truncate","tooltipBackground","CustomTooltip","isBasic","getContent","contentNode","Tooltip","getTooltipContent","Options","data-toggle","data-target","VersionControl","currentVersion","isStableReleaseChannel","releaseChannel","githubVersion","gcsVersionResponse","mediaLink","mediaLinkResponse","latestVersion","transformGcsVersionResponse","isNewVersionAvailable","small","versionSelector","Version","initialValue","setToggle","toggle","toggleOn","toggleOff","getValueFromStorage","useLocalStorage","setValue","RootContainer","DropdownContainer","Menu","ListContainer","OpenerIcon","noMargin","PickerBox","StyledTimePeriod","StyledCustomTimePeriod","StyledDropdown","renderTitle","onMenuToggle","anchorCorner","renderOpener","maxHeight","DropdownIcon","CustomInput","input","StyledDrop","Drop","StyledHR","hr","period","resolution","setTimeRange","tagging","dateResolutions","resolutionsMapping","MINUTE","HOUR","months","getCustomTimePeriod","parseInputPeriod","timeCorrection","customRange","getUnixTime","focusTaggingMap","startDate","endDate","timePeriods","getDateWithOffset","formattedDate","isMatch","splitOffset","mathSign","absoluteNumber","firstPart","padStart","padEnd","formatOffset","TimePeriods","handleTimePeriodChange","selectedDate","CustomTimePeriod","getInputValue","inputValue","setInputValue","isDropdownOpen","toggleDropdown","onBlur","currentValue","currentTarget","isValidInput","isInteger","timePeriod","isValid","onChangeResolution","newResolution","dateResolution","DatePicker","selected","selectsStart","selectsEnd","startOpen","inline","selectsRange","monthsShown","showPopperArrow","calendarContainer","StyledDateInput","StyledCalendar","getRgbColor","DatePickerInput","onDatesChange","onFocus","placeholderText","setFormattedValue","parsedDate","useLocaleDate","convertTimestampToDate","getLocaleDate","toDate","useConvertedDates","DatePickerWrapper","setStartDate","setEndDate","onInputFocus","convertedStartDate","convertedEndDate","setValidStartDate","setPreviousValue","isBefore","setValidEndDate","dates","startDateWithOffset","endDateWithOffset","startDateTimestamp","endDateTimestamp","grow","PeriodIndication","convertedStart","convertedEnd","formattedStartDate","formattedEndDate","formatDates","formatDistanceStrict","getTimePeriod","whiteSpace","resolutionMap","SECONDS","getDuration","moment","diff","getGranularDuration","showSeconds","getResolution","DateBox","isPlaying","isSameDate","DurationBox","PickerAccessorElement","isPickerOpen","setRangeValues","timeframe","setTimeframe","getStartDate","getEndDate","useDashboardSelector","isSame","getIsSameDate","DatePickerDrop","initialStartDate","initialEndDate","setResolution","focusedInput","setFocusedInput","setDates","clearChanges","togglePicker","focusTagging","getFocusTagging","isValidTimePeriod","isApplyDisabled","consistentDefaultValue","isClearDisabled","pickerDrop","canHideTarget","onEsc","onClickOutside","eventCategory","eventAction","eventLabel","eventValue","dataLayer","eventData","reportEvent","ReduxDatePickerContainer","dashboardDispatch","useDashboardDispatch","isGlobalPanAndZoom","pickedValues","getHoverColor","StyledPill","Pill","PlayPausePill","isForcePlaying","getIcon","PanelRowContainer","MenuItem","Wrapper","testid","actions","basis","DefaultListHeader","H4","SectionHandle","toggleOpen","ItemsList","PlayOptionsTooltip","bacgkround","MenuButton","Dropdown","MemoizedPlayOptions","GlobalControls","hollowColors","hollow","pillProps","Alarms","selectActiveAlarms","News","app","upToDate","SearchInput","TextInput","Search","inputRef","metaShrinked","OffsetItem","onSelect","timezones","abbr","getDefaultTimezone","memoized","timeZoneName","normalizedOffset","parsedOffset","normalizeOffset","digitizedOffset","digitizeOffset","timezoneList","byId","Timezone","selectedTimezone","selectedOffset","timezoneHash","zones","IframeContainer","Iframe","signedIn","rendered","setRendered","signInMsg","lsValue","removeLsValue","selectCloudBaseUrl","nameParam","originParam","signInIframeUrl","onLoad","useCheckSignInStatus","hasSignedInBefore","setHasSignedInBefore","onMessage","isNew","SignIn","isRegistry","onSignIn","CloudTab","showBorderLeft","onActivate","fixed","closable","TITLE","TabsContentText","TabsContent","Home","image","nodeView","Overview","Nodes","Dashboards","Alerts","Anomalies","video","Pricing","Privacy","DiscoverCloudDrop","parentRef","closeDropdown","handleGoToCloud","backdrop","marginLeft","frameBorder","allow","allowFullScreen","InnerPositioner","DiscoverCloud","setIsModalOpen","selectedModalContent","setSelectedModalContent","dropDownParentRef","handleOpenModal","selectedContentId","SignOut","SignInItem","isSignedInSelector","dashboard","UserSettings","menuItems","separator","DarkTheme","SpacesSkeleton","Fragment","SpacesIframe","Spaces","getNodeUrl","baseUrl","getNodes","hostsStatus","base","decodeURI","getBaseUrl","replicatedNodes","Anchor","StyledIcon","ReplicatedNodes","listOpen","setListOpen","toggleListOpen","iconLeft","SpacePanelIframe","spacePanelMessage","promptContent","signIn","signUp","SignInPrompt","NoNetwork","viewBox","xmlns","fillRule","clipRule","OfflinePrompt","NodesContainer","ListItem","TrashIcon","NodeUrl","TextNano","withComponent","NodeName","handle","metaIcon","maxLength","spanLength","truncateMiddle","VisitedNodes","sortedMachines","machinesArray","replicatedNodesSelector","visitedNodesSelector","visitedNodes","globalRegistry","selectIsUsingGlobalRegistry","switchIdentity","persist","pointerEvents","setLsValue","selectSpacePanelIsActive","Layout","printMode","mapTheme","slate","white","DefaultTheme","MigrationModal","migrationModalPromoInfo","setUserPrefrence","savePromoRemindMeSelection","migrationModalPromo","requestRefreshOfAccess","isRememberChoiceChecked","setIsRememberChoiceChecked","toPath","userPreference","handleClickedCTA2","CTA2","tickBoxOption","makeUTMParameters","modalPromo","utmParametersToString","migrationmodalInfo","PROMO_SIGN_UP_CLOUD","preferenceID","PROMO_SIGN_IN_CLOUD","PROMO_IVNITED_TO_SPACE","PROMO_CLAIM_NODE","PROMO_TO_USE_NEW_DASHBAORD","FALLBACK_TO_AGENT","NO_INFO_FALLBACK_TO_AGENT","modalStatusWithPromoFunctions","userSavedPreference","nodeClaimedStatus","useMigrationModal","modalStatus","MigrationManager","cloudUrl","selectSignInUrl","term","linkToCoud","redirectURI","hasPromoSelectionSaved","isPromoEligibleForShow","showModalTimer","goToCloud","FakeMargin","Box","App","useStore","refreshHelper","setRefreshHelper","haveDOMReadyForParsing","loadOverlay","shouldUseRegistry","useRegistry","shouldUseAlarms","selectHasStartedAlarms","useAlarms","shouldUseInfo","useInfo","hasFetchDependencies","setHasFetchDependencies","bootstrap_css","dashboard_css","useChartsMetadata","selectHasFetchedInfo","selectTheme","alarmWhen","alarmTime","alarmChart","alarmValue","useAlarmFromUrl","ReactDOM","isRegistrySelector","offlineSelector","signInUrl","fragmentParamsSeparatorRegEx","param","makeHashFromObject","allParams","allParamsResult","mergeDeepLeft","excludedParams","filteredParams","getFilteredHash","htmlIframeElement","iframeElement","contentWindow","postMessage","messageType","defaultState","lastMessage","setLastMessage","handleMessage","resetMesssage","process","useSelectorOriginal","useDispatchOriginal","getIsDemo","selectGlobal","globalState","selectOptions","optionName","selectChartsMetadata","allMetadata","BaseAnchor","Component","assign","meta","INITIAL_OPTIONS","netdataNoBootstrap","optionsFromLocalStorage","localStorageKeyToOption","parsed","getItemFromLocalStorage","overridenOptions"],"mappings":";gIAAA,oEAAO,IA4LHA,EACAC,EA7LSC,EAAU,SAACC,GACtB,OAAIA,GAAK,IAAMA,EAAI,GACX,IAAN,OAAWA,GAEP,GAAN,OAAUA,IAuBNC,EAAe,SAACC,EAAiBC,GACrC,IAAIC,EAAgBC,KAAKC,IAAIJ,GAEvBK,EAAuB,SAAhBJ,EAAyBE,KAAKG,MAAMJ,EAAgB,OAAS,EAC1EA,GAAwB,MAAPG,EAEjB,IAAME,EACY,SAAhBN,GAA0C,UAAhBA,EAA0BE,KAAKG,MAAMJ,EAAgB,MAAQ,EACzFA,GAAyB,KAARK,EAEjB,IAAMC,EAAUL,KAAKG,MAAMJ,EAAgB,IAC3CA,GAA2B,GAAVM,EAEjB,IAAMC,EAA6B,SAAhBR,EAAA,UAA4BI,EAA5B,MAAuC,GACpDK,EAA8B,SAAhBT,GAA0C,UAAhBA,EAA1B,UAAuDJ,EAAQU,GAA/D,KAA2E,GACzFI,EAAa,UAAMd,EAAQW,GAAd,KACfI,EAAgBf,EAAQK,EAAcW,QAAQ,IAElD,MAAM,GAAN,OAAUJ,GAAV,OAAuBC,GAAvB,OAAqCC,GAArC,OAAqDC,IAGjDE,EAA+B,CACnC,YAAa,CACXC,IAAK,EACLC,KAAM,IACNC,KAAM,KAERF,IAAK,CACHA,IAAK,EACLC,KAAM,IACNC,KAAM,KAER,aAAc,CACZ,SAAU,KACV,aAAc,EACd,aAAc,IACd,aAAc,IACd,aAAc,KAEhB,UAAW,CACT,UAAW,EACX,cAAe,KACf,cAAe,QACf,cAAe,WACf,cAAe,eAEjB,cAAe,CACb,UAAW,EAAI,KACf,cAAe,EACf,cAAe,KACf,cAAe,QACf,cAAe,YAEjB,MAAO,CACL,MAAO,EACP,QAAS,KACT,QAAS,QACT,QAAS,WACT,QAAS,eAEX,OAAQ,CACN,MAAO,EAAI,KACX,OAAQ,EACR,OAAQ,KACR,OAAQ,QACR,OAAQ,YAEV,QAAS,CACP,MAAO,EAAI,KACX,QAAS,EACT,QAAS,KACT,QAAS,QACT,QAAS,YAEXC,MAAO,CACLA,MAAO,EACPC,UAAW,KACXC,UAAW,QACXC,UAAW,WACXC,UAAW,eAEbC,GAAI,CACFA,GAAI,EACJC,IAAI,KAAD,IAAE,GAAM,GACXC,IAAI,KAAD,IAAE,GAAM,GACXC,IAAI,KAAD,IAAE,GAAM,GACXC,IAAI,KAAD,IAAE,GAAM,IACXC,IAAI,KAAD,IAAE,GAAM,IACXC,IAAI,KAAD,IAAE,GAAM,IACXC,IAAI,KAAD,IAAE,GAAM,KAEbC,EAAG,CACDA,EAAG,EACHC,IAAK,KACLC,IAAK,QACLC,IAAK,WACLC,IAAK,cACLC,IAAK,iBAEPC,GAAI,CACFN,EAAG,EAAI,KACPM,GAAI,EACJC,GAAI,KACJC,GAAI,QACJC,GAAI,YAENR,IAAK,CACHD,EAAG,EAAI,KACPC,IAAK,EACLC,IAAK,KACLC,IAAK,QACLC,IAAK,YAEPG,GAAI,CACFP,EAAG,UACHM,GAAI,EAAI,KACRC,GAAI,EACJC,GAAI,KACJC,GAAI,QACJC,GAAI,YAENR,IAAK,CACHF,EAAG,UACHC,IAAK,EAAI,KACTC,IAAK,EACLC,IAAK,KACLC,IAAK,QACLC,IAAK,YAEPG,GAAI,CACFR,EAAG,aACHM,GAAI,UACJC,GAAI,EAAI,KACRC,GAAI,EACJC,GAAI,KACJC,GAAI,QACJC,GAAI,YAENR,IAAK,CACHH,EAAG,aACHC,IAAK,UACLC,IAAK,EAAI,KACTC,IAAK,EACLC,IAAK,KACLC,IAAK,QACLO,IAAK,aA2BHC,EACJ,eAACC,EAAD,uDAAsB,EAAtB,OACA,SAACC,GAAD,OACGA,EAAQD,GAAYhC,QAAQ,KAE3BkC,EAAqC,CACzCC,QAAS,CACPC,WAAY,CACVC,MADU,WAER,MAAqC,eAA9BvD,GAETwD,QAJU,SAIFL,GACN,OAAgB,EAARA,EAAa,EAAI,MAI/BM,QAAS,CACPC,WAAY,CACVH,MADU,WAER,MAAqC,eAA9BvD,GAETwD,QAJU,SAIFL,GACN,OAAgB,EAARA,EAAa,EAAI,MAI/BQ,aAAc,CACZC,aAAc,CACZL,MAAO,SAACM,GAAD,OAAiBA,EAAM,GAC9BL,QAASP,EAAS,MAEpBU,aAAc,CACZJ,MAAO,SAACM,GAAD,OAAiBA,GAAO,GAAKA,EAAM,KAC1CL,QAASP,KAEX5C,QAAS,CACPkD,MAAO,SAACM,GAAD,OAAiBA,GAAO,KAAQA,EAAM,KAC7CL,QAASP,EAAS,OAEpB,WAAY,CACVM,MAAO,SAACM,GAAD,OAAiB5D,GAA+B4D,GAAO,KAASA,EAAM,MAC7EL,QAAS,SAACL,GAAD,OAAmB/C,EAAa+C,EAAQ,IAAM,aAEzD,cAAe,CACbI,MAAO,SAACM,GAAD,OAAiB5D,GAA+B4D,GAAO,MAAYA,EAAM,OAChFL,QAAS,SAACL,GAAD,OAAmB/C,EAAa+C,EAAQ,IAAM,WAEzD,eAAgB,CACdI,MAAO,SAACM,GAAD,OAAiB5D,GAA+B4D,GAAO,OAC9DL,QAAS,SAACL,GAAD,OAAmB/C,EAAa+C,EAAQ,IAAM,WAI3D9C,QAAS,CACPuD,aAAc,CACZL,MAAO,SAACM,GAAD,OAAiBA,EAAM,MAC9BL,QAASP,EAAS,MAEpBU,aAAc,CACZJ,MAAO,SAACM,GAAD,OAAiBA,GAAO,MAASA,EAAM,GAC9CL,QAASP,EAAS,MAEpB5C,QAAS,CACPkD,MAAO,SAACM,GAAD,OAAiBA,GAAO,GAAKA,EAAM,IAC1CL,QAASP,EAAS,IAEpB,WAAY,CACVM,MAAO,SAACM,GAAD,OAAiB5D,GAA+B4D,GAAO,IAAMA,EAAM,MAC1EL,QAAS,SAACL,GAAD,OAAmB/C,EAAa+C,EAAO,aAElD,cAAe,CACbI,MAAO,SAACM,GAAD,OAAiB5D,GAA+B4D,GAAO,MAAQA,EAAM,OAC5EL,QAAS,SAACL,GAAD,OAAmB/C,EAAa+C,EAAO,WAElD,eAAgB,CACdI,MAAO,SAACM,GAAD,OAAiB5D,GAA+B4D,GAAO,OAC9DL,QAAS,SAACL,GAAD,OAAmB/C,EAAa+C,EAAO,YAKhDW,EAAW,SAACX,GAAD,OAAmBA,GAgBvBY,EAAyB,CAEpCC,KAAM,GACNC,OAAQ,GAERC,YALoC,WAMlCC,KAAKH,KAAO,GACZG,KAAKF,OAAS,IAKhBG,IAZoC,SAalCC,EACAC,EACAT,EACAU,EACAC,EACAC,EACAC,EACAC,EACAC,GAaA,GAVqB,qBAAVL,IAETA,EAAQ,aAIVvE,EAA4B2E,EAC5B1E,EAA8B2E,EAGM,qBAAzBzD,EAAcoD,IACe,qBAA5BnB,EAAiBmB,GAI3B,OAAO,SAACpB,GAAD,OAAmBA,GAI5B,QAAqB0B,IAAjBL,GAA+C,OAAjBA,GAA0C,aAAjBA,GACtDA,IAAiBD,EAIpB,OADAG,EAAoBH,GACbT,EAMT,IA6GQgB,EA7GJC,EAAS,KACTC,EAAW,EAEf,GAAoC,qBAAzB7D,EAAcoD,GAAwB,CAI/C,GAAqB,SAAjBC,EAAyB,EAM3BF,EAAM9D,KAAKC,IAAI6D,KACfT,EAAMrD,KAAKC,IAAIoD,MAEbA,EAAMS,GAIR,IAAMW,EAAqB9D,EAAcoD,GASzC,GARAW,OAAOlB,KAAKiB,GAAoBE,SAAQ,SAACC,GACvC,IAAMC,EAAcJ,EAAmBG,GACnCC,GAAexB,GAAOwB,EAAcL,IACtCD,EAASK,EACTJ,EAAWK,MAIA,OAAXN,GAAmBC,GAAY,EAGjC,OADAN,EAAoBH,GACbT,EAGT,GAA+B,kBAApBW,EAA8B,CAIvC,IAAMa,EAAc,UAAMb,EAAN,YAAyBF,GAGzCgB,EAAIpB,KAAKH,KAAKsB,GACD,qBAANC,IACTpB,KAAKH,KAAKsB,GAAkB,GAC5BC,EAAIpB,KAAKH,KAAKsB,IAEhBC,EAAElB,GAAQ,CACRE,MAAOQ,EACPS,QAASR,GAIX,IAAIS,EAAcF,EAAElB,GAEpBa,OAAOlB,KAAKuB,GAAGJ,SAAQ,SAAChF,GAClBoF,EAAEpF,GAAGqF,QAAUC,EAAYD,UAC7BC,EAAcF,EAAEpF,OAKpB,IAAM8D,EAAS,CACbM,MAAOkB,EAAYlB,MACnBiB,QAASC,EAAYD,SASvB,OAPArB,KAAKF,OAAOqB,GAAkBrB,EAG9Be,EAAWf,EAAOuB,QAGlBd,EAJAK,EAASd,EAAOM,OAKT,SAACpB,GASN,OARI6B,IAAaf,EAAOuB,UAItBR,EAAWf,EAAOuB,QAClBd,EAFAK,EAASd,EAAOM,QAKXpB,EAAQ6B,GAOnB,OADAN,EAAoBK,GACb,SAAC5B,GAAD,OAAmBA,EAAQ6B,GAIpC,MAAkD,qBAAvC7D,EAAcoD,GAAOC,IAE9BQ,EAAW7D,EAAcoD,GAAOC,GAChCE,EAAoBF,GACb,SAACrB,GAAD,OAAmBA,EAAQ6B,KAIpCU,QAAQC,IAAR,gCAAqCpB,EAAMqB,WAA3C,eAA4DpB,EAAaoB,WAAzE,+BAGAlB,EAAoBH,GACbT,GACP,MAAuC,qBAA5BV,EAAiBmB,GAEP,SAAjBC,GAEFU,OAAOlB,KAAKZ,EAAiBmB,IAAQY,SAAQ,SAAChF,GACxC2E,GACA1B,EAAkBmB,GAAkBpE,GAAGoD,MAAMM,KAE/Ca,EAAoBvE,GACpB2E,EAAqB1B,EAAkBmB,GAAkBpE,GAAGqD,YAG5DsB,IAKJJ,EAAoBH,GACbT,IAC8C,qBAA1CV,EAAiBmB,GAAOC,IACnCE,EAAoBF,GACbpB,EAAiBmB,GAAOC,GAAchB,UAG/CkC,QAAQC,IAAR,gCAAqCpB,EAAMqB,WAA3C,eAA4DpB,EAAaoB,WAAzE,+BAEAlB,EAAoBH,GACbT,IAIT4B,QAAQC,IAAR,qDAA0DpB,EAAMqB,aAChElB,EAAoBH,GACbT,M,qGCneE+B,G,OAASC,cAAiB,WAI7BC,GAJ6B,IACrCC,EADqC,EACrCA,SACAC,EAFqC,EAErCA,UACGC,EAHkC,+CAKrC,0CACMA,EADN,CAEEC,KAAK,SACLF,UAAWG,IAAW,uBAAwBH,GAC9CF,IAAKA,IAEJC,OCjBL,kCAmBO,IAAMK,EAAgB,SAAC,GASH,IARzBJ,EAQwB,EARxBA,UACAK,EAOwB,EAPxBA,SACAC,EAMwB,EANxBA,QACAC,EAKwB,EALxBA,cACAC,EAIwB,EAJxBA,YACAC,EAGwB,EAHxBA,aACAC,EAEwB,EAFxBA,eACAC,EACwB,EADxBA,aAEMC,EAAYC,iBAAO,MACnBC,EAAWC,YAAYC,KAkB7B,OAjBAC,qBAAU,WACJL,EAAUM,SAAWJ,GACvBK,OAAOC,EAAER,EAAUM,SAASG,QAAQ,CAClCC,UAAW,OACXC,WAAW,EACXC,MAAM,EACNC,QAAS,QACTC,UAAW,SACXC,MAAO,CACLC,KAAMT,OAAOU,QAAQC,QAAQZ,QAAQa,wBACrCC,KAAMb,OAAOU,QAAQC,QAAQZ,QAAQe,yBAEvCC,MAAOvB,EACPwB,QAASzB,MAGZ,IAED,kBAACd,EAAD,CACEI,UAAWG,IAAWH,GACtBM,QAASA,EACTC,cAAeA,EACfC,YAAaA,EACbC,aAAcA,EACdX,IAAKc,GAEL,kBAAC,IAAD,CAAMP,SAAUA,O,gKCnDT+B,EAAiC,gBASjCC,EAAgB,SAAC,GAEhB,IADZC,EACW,EADXA,sBAAuBC,EACZ,EADYA,UAAWC,EACvB,EADuBA,SAAUC,EACjC,EADiCA,iBACjC,EAC6BC,oBAAS,kBAAMJ,EAAsBK,gBADlE,mBACJC,EADI,KACUC,EADV,KAELC,EAAWC,cAEjB9B,qBAAU,WAEJ2B,GAAgB,IAClBE,EACEE,YAAsB,CACpBC,GAAIV,EACJK,oBAIL,CAACA,EAAcL,EAAWC,EAAUM,IAEvC,IAAMI,EAAeC,uBACnB,SAACC,GACCA,EAAMC,iBACN,IAAMC,EAAehB,EAAsBK,aACrCY,EAAkC,eAAfH,EAAMlD,KAC3BkD,EAAMI,QAAQ,GAAGC,QACjBL,EAAMK,QAEJC,EAAY,SAACC,GACjB,IAAMC,EAAaN,EAAeK,EAAgBJ,EAIlD,GAFAjB,EAAsBuB,MAAMC,OAA5B,UAAwCF,EAAWjE,WAAnD,MACAkD,EAAgBe,GACZpB,EAAU,CACZ,IAAMuB,EAAuBtB,EACxBmB,EAAaI,IACdJ,EACJK,aAAaC,QAAb,UACK9B,GADL,OACsCI,GADtC,UAEKuB,MAKHI,EAAc,SAACC,GAAD,OAAmBV,EAAUU,EAAEX,UAC7CY,EAAc,SAACD,GAAD,OAAmBV,EAAUU,EAAEZ,QAAQ,GAAGC,UAY3C,eAAfL,EAAMlD,MACRoE,SAASC,iBAAiB,YAAaF,GACvCC,SAASC,iBAAiB,YAPT,SAAbC,IACJF,SAASG,oBAAoB,YAAaJ,GAC1CC,SAASG,oBAAoB,WAAYD,QAOzCF,SAASC,iBAAiB,YAAaJ,GACvCG,SAASC,iBAAiB,WAfT,SAAbG,IACJJ,SAASG,oBAAoB,YAAaN,GAC1CG,SAASG,oBAAoB,UAAWC,SAgB5C,CAACpC,EAAsBK,aAAcL,EAAsBuB,MAAMC,OAAQtB,EACvEC,IAGJ,OACE,kBAAC,IAAD,CACEzC,UAAU,gCACVO,cAAe,SAAC6C,GACdA,EAAMC,iBACND,EAAMuB,mBAERnE,YAAa0C,EACbzC,aAAcyC,EACd7C,SAAS,SACTM,aAAa,eACbD,eAAe,6S,gCC7FrB,whCAcakE,EAA4BC,uBAAY,UAChDC,IADgD,+BASxCC,EAAqBF,uBAAY,UAAwBC,IAAxB,kBAOjCE,EAAqBH,uBAAY,UAAwBC,IAAxB,kBAMjCG,EAA2BJ,uBAAY,UAC/CC,IAD+C,wBAUvCI,EAA4BL,uBAAY,UAChDC,IADgD,yBAIxCK,EAA8BN,uBAAa,GAAD,OAAIC,IAAJ,iCAK1CM,EAAwBP,uBAAY,UAC5CC,IAD4C,2BAIpCO,EAA0BR,uBAAa,GAAD,OAAIC,IAAJ,6BAOtCQ,EAA+BT,uBAAY,UACnDC,IADmD,4BAI3CS,EAA8BV,uBAAa,GAAD,OAAIC,IAAJ,iCAC1CU,EAAuBX,uBAAa,GAAD,OAAIC,IAAJ,0BAKnCW,EAA0BZ,uBAAY,UAC9CC,IAD8C,6BAmBtCY,EAAmBC,YAAmB,UAG9Cb,IAH8C,sBAUtCc,EAAyBf,uBAAY,UAC7CC,IAD6C,4BAOrCe,EAA8BhB,uBAAY,UAClDC,IADkD,iCAO1CgB,EAAoBjB,uBAAY,UAAwBC,IAAxB,uBAEhCiB,EAAuBJ,YAAoB,GAAD,OAAIb,IAAJ,0BAK1CkB,EAA2BnB,uBAAY,UAC/CC,IAD+C,8BAQvCmB,EAAkBpB,uBAAY,UAAqBC,IAArB,qBAE9BoB,EAAqBrB,uBAAa,GAAD,OAAIC,IAAJ,kBAEjCqB,EAAqBtB,uBAAY,UACzCC,IADyC,wBAIjCsB,EAA+BvB,uBAAY,UACnDC,IADmD,kCAO3CuB,EAA4BxB,uBAAY,UAChDC,IADgD,+BAOxCwB,EAAmCzB,uBAAY,UACvDC,IADuD,+BAI/CyB,EAAiB1B,uBAAY,UAAsBC,IAAtB,oBAE7B0B,EAAgB3B,uBAAa,GAAD,OAAIC,IAAJ,mBAE5B2B,EAAuB5B,uBAAa,GAAD,OAAIC,IAAJ,0BACnC4B,EAAyB7B,uBAAY,UAC7CC,IAD6C,4BAGrC6B,EAAe9B,uBAAY,UACnCC,IADmC,kBAI3B8B,EAAoB/B,uBAAY,UACxCC,IADwC,wB,iCC5K7C,8EAca+B,EAAmC,WAC9C,OAAO1D,uBAAY,WACjB2D,YAAkBC,IAAmB,CAAE7G,KAAM,yBAA0B8G,SAAS,MAC/E,KAGUC,IAbkB,WAC/B,IAAMnE,EAAWC,cACjBmE,YAA8C,oBAAoB,SAAAC,GAChErE,EAAS8D,YAAkB,CAAEO,kB,iCCVjC,iD,iCCAA,kCAAO,IAAMC,EAAU,SAACC,GAAD,OAAeA,EACnCC,QAAQ,KAAM,KACdA,QAAQ,KAAM,KACdA,QAAQ,MAAO,KACfA,QAAQ,MAAO,KACfA,QAAQ,MAAO,KACfA,QAAQ,MAAO,O,mNC+HLC,EAAuB,CAClCC,iBAAkB,GAClBC,UAAW,GACXC,UAAW,GACXC,yBAA0B,KAC1BC,iBAAkB,KAElBC,aATiCC,IAAWC,eAA+B,IAU3EC,oBAAqB,KACrBC,SAAU,KACVC,eAAgB5D,SAAS6D,WACzBC,aAAa,EACbC,oBAAoB,EAEpBC,iCAAiC,EAEjCC,SAAU,CACRC,aAAc,KACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAkB,KAClBC,SAAU,UACVC,eAAgB,KAChBC,iBAAkB,KAClBC,eAAgB,KAChBC,gBAAiB,KACjBC,gBAAgB,EAChBC,iBAAiB,EACjBC,gBAAiB,KACjBC,YAAa,KACbC,WAAY,KACZC,iBAAkB,KAClBC,sBAAuB,KACvBC,eAAgB,MAGlBC,SAAU,KACVC,OAAQ,CACNC,aAAc,KACdC,kBAAkB,GAEpBC,MAAO,KAEPC,eAAgB,CACdC,YAAY,EACZC,iBAAiB,EACjBC,KAAM,MAGRnI,QAASoI,IACTC,eAAgB,MAGLC,EAAgBC,wBAAsB,GAAI9C,GAQ1C+C,EAA6B,SAAC,GAKnB,IAJtBC,EAIqB,EAJrBA,gBACAC,EAGqB,EAHrBA,sBACAjI,EAEqB,EAFrBA,UACAkI,EACqB,EADrBA,aAEMC,EAA6C,kBAApBH,GAAgCA,EAAgBI,OAAS,EAKxF,OAAOH,IAA0BE,EAAkBnI,EAAYkI,IAG3DG,EAAc,SAACC,GAAD,MAAqC,SAAhBC,YAAKD,IAExCE,EAAiC,SACrCR,EACAG,GAEA,IALsBG,EAKhBG,EAASN,GALOG,EAK2BN,EAA2BU,MAAM,KALvCL,EAAYC,GAASK,YAAKL,GAASA,GAKY,GACpFM,GAAkBT,IAEnBE,EAAaL,EAA2BU,MAAM,MAMnD,MAAO,CACLG,SAAU,GACVC,UANa,sBACVL,GADU,YAETG,GAAqC,IAAlBH,EAAOL,OAAexJ,OAAOU,QAAQyJ,OAAOpK,QAAQqK,OAAS,KAKpFP,WAIJZ,EAAcoB,GACZ5G,KAEA,SAAC6G,EAAD,GAAiG,IAAvFhB,EAAsF,EAAtFA,aAAclI,EAAwE,EAAxEA,UAAWgI,EAA6D,EAA7DA,gBAAiBC,EAA4C,EAA5CA,sBAAuBkB,EAAqB,EAArBA,eACnEC,EAAUrB,EAA2B,CACzCC,kBACAC,wBACAjI,YACAkI,iBAGIC,EAA6C,kBAApBH,GAAgCA,EAAgBI,OAAS,EAClFiB,EACJH,EAAMjE,iBAAiBmE,IACvBZ,EAA+BR,EAAiBG,GAE5CmB,EAAsB5M,OAAOlB,KAAK6N,EAASR,UAAUT,OACrDmB,EAA8BC,YAClCL,EAEGM,QAAO,SAAAC,GAAa,OAAKL,EAASR,SAASa,MAC3CC,KAAI,SAACD,EAAeE,GAAhB,sBACFF,EACCL,EAASP,WAAWc,EAAIN,GAAuBD,EAASP,UAAUV,aAGpES,EAAQ,eACTQ,EAASR,SADA,GAETU,GAGL,OAAO,eACFL,EADL,CAEEjE,iBAAiB,eACZiE,EAAMjE,iBADK,eAEbmE,EAFa,eAGTC,EAHS,CAIZR,oBAOVhB,EAAcoB,GAAGzG,KAAoB,SAAC0G,EAAD,GAAgD,IAAD,EAArClJ,EAAqC,EAArCA,UAAW6J,EAA0B,EAA1BA,aAAclP,EAAY,EAAZA,MAChEmP,EAAM,yBACPZ,EAAMhE,UAAU2E,UADT,aACP,EAA+BC,OADxB,eAET9J,EAAYrF,IAEToP,EAAiB/R,KAAK8D,IAAL,MAAA9D,KAAI,YAAQ0E,OAAOsN,OAAOF,KAEjD,OAAO,eACFZ,EADL,CAEEhE,UAAU,eACLgE,EAAMhE,UADF,eAEN2E,EAAe,CACdC,SACAC,yBAMRlC,EAAcoB,GAAGxG,KAAoB,SAACyG,EAAD,GAAgD,IAAD,EAArClJ,EAAqC,EAArCA,UAAWiK,EAA0B,EAA1BA,aAActP,EAAY,EAAZA,MAChEmP,EAAM,yBACPZ,EAAM/D,UAAU8E,UADT,aACP,EAA+BH,OADxB,eAET9J,EAAYrF,IAEToP,EAAiB/R,KAAKqD,IAAL,MAAArD,KAAI,YAAQ0E,OAAOsN,OAAOF,KAEjD,OAAO,eACFZ,EADL,CAEE/D,UAAU,eACL+D,EAAM/D,UADF,eAEN8E,EAAe,CACdH,SACAC,yBAMRlC,EAAcoB,GAAGnF,KAA2B,SAACoF,EAAD,OAAUgB,EAAV,EAAUA,SAAV,sBACvChB,EADuC,CAE1CpD,mBAAoBoE,OAGtBrC,EAAcoB,GAAGlF,KAAkC,SAACmF,EAAD,OAAUgB,EAAV,EAAUA,SAAV,sBAC9ChB,EAD8C,CAEjDnD,gCAAiCmE,OAGnCrC,EAAcoB,GAAGvG,KAA0B,SAACwG,EAAD,OAAUlJ,EAAV,EAAUA,UAAW0F,EAArB,EAAqBA,SAArB,sBACtCwD,EADsC,CAEzCxD,WACAN,yBAA0BpF,OAG5B6H,EAAcoB,GAAGtG,KAA2B,SAACuG,EAAOzE,GAAR,sBACvCyE,EADuC,CAE1C7D,iBAAkBZ,OAGpBoD,EAAcoB,GAAGrG,KAA6B,SAAAsG,GAAK,sBAC9CA,EAD8C,CAEjD7D,iBAAkBL,EAAaK,iBAC/BK,SAAUV,EAAaU,cAGzBmC,EAAcoB,GAAGpG,KAAuB,SAACqG,EAAD,OAAUiB,EAAV,EAAUA,MAAV,sBACnCjB,EADmC,CAEtC5D,aAAc6E,OAGhBtC,EAAcoB,GAAGnG,KAAyB,SAAAoG,GAAK,sBAC1CA,EAD0C,CAE7C5D,aAAcN,EAAaM,kBAG7BuC,EAAcoB,GAAGlG,KAA8B,SAACmG,EAAD,OAAUiB,EAAV,EAAUA,MAAOC,EAAjB,EAAiBA,OAAQC,EAAzB,EAAyBA,SAAzB,sBAC1CnB,EAD0C,CAE7CzD,oBAAqB,CACnB0E,QACAC,SACAC,iBAIJxC,EAAcoB,GAAGjG,KAA6B,SAAAkG,GAC5C,IAAKA,EAAMzD,oBAGT,OADAvI,QAAQoN,KAAK,wCACNpB,EAJ4C,MAM3BA,EAAMzD,oBAAxB0E,EAN6C,EAM7CA,MAAOC,EANsC,EAMtCA,OACTG,GAAmBH,EAASD,GAAS,EAC3C,OAAO,eACFjB,EADL,CAEE7D,iBAAkB,CAChB8E,MAAOA,EAAQI,EACfH,OAAQA,EAASG,QAKvB1C,EAAcoB,GACZhG,KACA,SAACiG,GAAD,6DAAoE,GAApE,IAAUsB,uBAAV,+BACKtB,EADL,CAEEzD,oBAAqBT,EAAaS,qBAC9B+E,EAAkB,CAAEnF,iBAAkBL,EAAaK,kBAAqB,OAIhFwC,EAAcoB,GAAG/F,KAAyB,SAACgG,EAAD,GAAgC,IAAtBvD,EAAqB,EAArBA,eAG5C8E,EAAc1I,SAAS6D,WAC7B,OAAO,eACFsD,EADL,CAEEvD,eAAgB8E,GAAe9E,OAInCkC,EAAcoB,GAAG/E,KAAsB,SAAAgF,GAAK,sBAAUA,EAAV,CAAiBrD,aAAa,OAC1EgC,EAAcoB,GAAG9E,KAAwB,SAAC+E,EAAD,OAAUwB,EAAV,EAAUA,UAAV,sBACpCxB,EADoC,CAEvCrD,YAAab,EAAaa,YAC1BR,iBAAkBL,EAAaK,iBAC/BK,SAAUV,EAAaU,SACvBnG,QAAQ,eAAM2J,EAAM3J,QAAb,CAAsBoL,iCAAkCD,SAGjE7C,EAAcoB,GAAG7E,KAAc,SAAC8E,EAAD,OAAU0B,EAAV,EAAUA,UAAV,sBAC1B1B,EAD0B,CAE7B3J,QAAQ,eAAM2J,EAAM3J,QAAb,CAAsBqL,mBAG/B/C,EAAcoB,GAAG9F,IAAiB0H,SAAS,SAAA3B,GAAK,sBAC3CA,EAD2C,CAE9ClD,SAAS,eACJkD,EAAMlD,SADH,CAENW,iBAAiB,SAIrBkB,EAAcoB,GAAG9F,IAAiB2H,SAAS,SAAC5B,EAAD,OAAUjD,EAAV,EAAUA,aAAcI,EAAxB,EAAwBA,SAAUQ,EAAlC,EAAkCA,YAAlC,sBACtCqC,EADsC,CAEzClD,SAAS,eACJkD,EAAMlD,SADH,CAENC,eACAU,iBAAiB,EACjBR,iBAAiB,EACjBE,WACAQ,qBAGJgB,EAAcoB,GAAG9F,IAAiB4H,SAAS,SAAA7B,GAAK,sBAC3CA,EAD2C,CAE9ClD,SAAS,eACJkD,EAAMlD,SADH,CAENC,aAAc+E,IACdrE,iBAAiB,EACjBP,kBAAkB,SAGtByB,EAAcoB,GAAG3F,KAA6B,SAAC4F,EAAD,OAAUjC,EAAV,EAAUA,eAAV,sBACzCiC,EADyC,CAE5ClD,SAAS,eACJkD,EAAMlD,SADH,CAENiB,wBAIJY,EAAcoB,GAAGhF,KAAe,SAAAiF,GAAK,sBAChCA,EADgC,CAEnClD,SAAS,eACJkD,EAAMlD,SADH,CAENG,gBAAiBnB,EAAagB,SAASG,uBAI3C0B,EAAcoB,GAAGgC,KAAiB,SAAA/B,GAAK,sBAClCA,EADkC,CAErClD,SAAS,eACJkD,EAAMlD,SADH,CAENU,gBAAgB,SAGpBmB,EAAcoB,GACZgC,IAAgBH,SAChB,SACE5B,EADF,OAEI3C,EAFJ,EAEIA,iBAAkBD,EAFtB,EAEsBA,eAAgBE,EAFtC,EAEsCA,eAAgBC,EAFtD,EAEsDA,gBAAiBG,EAFvE,EAEuEA,gBAFvE,sBAIKsC,EAJL,CAKElD,SAAS,eACJkD,EAAMlD,SADH,CAENE,gBAAgB,EAChBK,mBACAD,iBACAE,iBACAC,kBACAG,yBAKNiB,EAAcoB,GAAGgC,IAAgBF,SAAS,SAAA7B,GAAK,sBAC1CA,EAD0C,CAE7ClD,SAAS,eACJkD,EAAMlD,SADH,CAENO,kBAAkB,EAClBD,gBAAgB,EAChBE,gBAAgB,EAChBC,iBAAiB,SAIrBoB,EAAcoB,GACZ5F,KACA,SAAC6F,EAAD,OAAUpC,EAAV,EAAUA,WAAYC,EAAtB,EAAsBA,iBAAkBC,EAAxC,EAAwCA,sBAAxC,sBACKkC,EADL,CAEElD,SAAS,eACJkD,EAAMlD,SADH,CAENc,aACAC,mBACAC,+BAKNa,EAAcoB,GAAG1F,KAAmB,SAAA2F,GAAK,sBACpCA,EADoC,CAEvC/B,OAAO,eACF+B,EAAM/B,OADL,CAEJE,kBAAkB,SAItBQ,EAAcoB,GAAGxF,KAA0B,SAACyF,EAAD,OAAU9B,EAAV,EAAUA,aAAV,sBACtC8B,EADsC,CAEzC/B,OAAO,eACF+B,EAAM/B,OADL,CAEJC,sBAIJS,EAAcoB,GAAGvF,KAAiB,SAACwF,EAAD,OAAUgC,EAAV,EAAUA,IAAKvQ,EAAf,EAAeA,MAAf,sBAC7BuO,EAD6B,CAEhC3J,QAAQ,eACH2J,EAAM3J,QADJ,eAEJ2L,EAAMvQ,SAIXkN,EAAcoB,GAAGtF,KAAoB,SAAAuF,GAEnC,OADAiC,cACO,eACFjC,EADL,CAEE3J,QAAS6L,mBAIbvD,EAAcoB,GAAGrF,KAAoB,SAACsF,EAAD,GAA0B,IAAhBhC,EAAe,EAAfA,SACvCmE,EAAa3O,OAAOlB,KAAK0L,EAASQ,MACrCiC,KAAI,SAAA2B,GACH,IAAIC,EA6BA7D,EA5BJ,IAKE,GAAqB,QAHrB6D,EAAerE,EAASsE,WAAWtE,EAASQ,KAAK4D,KAM/C,OADApO,QAAQoN,KAAR,6CAAmDgB,EAAnD,aACO,KAGT,GAA4B,qBAAjBC,EAGT,OADArO,QAAQoN,KAAR,6CAAmDgB,EAAnD,kBACO,KAET,MAAOzJ,GAEP3E,QAAQoN,KAAR,iDAAuDgB,EAAvD,WAAyEzJ,GACzE0J,EAAe,KAGjB,GAA4B,kBAAjBA,EAGT,OADArO,QAAQoN,KAAR,6CAAmDgB,EAAnD,mBACO,GAIT,IACE5D,EAAO+D,KAAKC,MAAMH,GAClB,MAAO1J,GAGP,OADA3E,QAAQoN,KAAR,wCAA8CgB,EAA9C,YACO,GAGT,OAAO,eAAGA,EAAU5D,MAErBiE,QAAO,SAACC,EAAKC,GAAN,sBAAoBD,EAApB,GAA4BC,KAAQ,IAE9C,OAAO,eACF3C,EADL,CAEEhC,SAAS,eACJA,EADG,CAENQ,KAAM2D,SAKZxD,EAAcoB,GAAGjF,KAAgB,SAACkF,EAAD,OAAU5B,EAAV,EAAUA,MAAV,sBAC5B4B,EAD4B,CAE/B5B,aAGFO,EAAcoB,GAAGpF,KAA8B,SAACqF,EAAD,OAAUxB,EAAV,EAAUA,KAAV,sBAC1CwB,EAD0C,CAE7C3B,eAAe,eACV2B,EAAM3B,eADG,CAEZG,cAIJG,EAAcoB,GAAG5E,KAAmB,SAAC6E,EAAD,OAAUtE,EAAV,EAAUA,QAAV,sBAA8BsE,EAA9B,CAAqCtB,eAAgBhD,Q,iCCzlBzF,uEAMMkH,EAAkB,SAAChO,GAAD,MAAyB,CAC/CiO,KAAM,cACNC,MAAO,UACPC,MAAO,aACPC,OAAQ,UACRC,QAAS,WACTC,OAAQ,UACRC,UAAW,gBACXC,UAAW,gBACXC,QAAS,gBACTC,QAAS,cACTC,OAAQ,2BACwB3O,IAKrB4O,EAAO,SAAC,GAAD,IAAG5O,EAAH,EAAGA,SAAH,OAClB,uBAAGL,UAAWG,IAAW,MAAOkO,EAAgBhO,Q,oMCIrC6O,EAAqB,CAChCC,UAAW,KACXC,QAAS,KACTC,cAAe,KACfC,gBAAiB,KACjBC,gBAAiB,CACfC,sBAAsB,EACtBC,UAAW,MAEbC,gBAAgB,EAChBC,oBAAoB,EACpBC,uBAAuB,EACvBC,mBAAmB,EACnBjN,aAAc,KAEdkN,wBAAwB,EACxBC,qBAAqB,EACrBC,aAAc,KACdP,UAAW,MAGAQ,EAAe5F,wBAC1B,GAxB0B,IA4Bf6F,EAAc,SAACzE,EAAexI,GAAhB,OAA+BwI,EAAMxI,IAAOiM,GAEvEe,EAAazE,GAAG2E,IAAgB/C,SAAS,SAAC3B,EAAD,OAAU2E,EAAV,EAAUA,MAAOb,EAAjB,EAAiBA,gBAAiBtM,EAAlC,EAAkCA,GAAlC,sBACpCwI,EADoC,eAEtCxI,EAFsC,eAGlCiN,EAAYzE,EAAOxI,GAHe,CAIrCmM,QAASgB,EACTV,gBAAgB,EAChBD,UAAWF,EAAgBE,iBAI/BQ,EAAazE,GAAG6E,KAAuB,SAAC5E,EAAD,OAAUxI,EAAV,EAAUA,GAAV,sBAClCwI,EADkC,eAEpCxI,EAFoC,eAGhCiN,EAAYzE,EAAOxI,GAHa,CAInCyM,gBAAgB,SAIpBO,EAAazE,GAAG2E,IAAgB7C,SAAS,SAAC7B,EAAD,OAAUxI,EAAV,EAAUA,GAAV,sBACpCwI,EADoC,eAEtCxI,EAFsC,eAGlCiN,EAAYzE,EAAOxI,GAHe,CAIrCyM,gBAAgB,EAChBC,oBAAoB,SAIxBM,EAAazE,GAAG2E,IAAgB9C,SAAS,SAAC5B,EAAD,GAAgD,IAAtCxI,EAAqC,EAArCA,GAAIkM,EAAiC,EAAjCA,UAAWI,EAAsB,EAAtBA,gBAC1De,EAAWJ,EAAYzE,EAAOxI,GACpC,OAAO,eACFwI,EADL,eAEGxI,EAFH,eAGOqN,EAHP,CAIInB,UAAWoB,YAA0B,CAAC,mBAAoBD,EAASnB,UAAWA,GAC9EI,kBACAG,gBAAgB,EAChBC,oBAAoB,EACpBF,UAAWF,EAAgBE,iBAMjCQ,EAAazE,GAAGgF,IAA2BpD,SAAS,SAAC3B,EAAD,OAAUxI,EAAV,EAAUA,GAAV,sBAC/CwI,EAD+C,eAEjDxI,EAFiD,eAG7CiN,EAAYzE,EAAOxI,GAH0B,CAIhD6M,wBAAwB,SAI5BG,EAAazE,GAAGgF,IAA2BlD,SAAS,SAAC7B,EAAD,OAAUxI,EAAV,EAAUA,GAAV,sBAC/CwI,EAD+C,eAEjDxI,EAFiD,eAG7CiN,EAAYzE,EAAOxI,GAH0B,CAIhD6M,wBAAwB,EACxBC,qBAAqB,SAIzBE,EAAazE,GAAGgF,IAA2BnD,SAAS,SAAC5B,EAAD,OAAUxI,EAAV,EAAUA,GAAI+M,EAAd,EAAcA,aAAd,sBAC/CvE,EAD+C,eAEjDxI,EAFiD,eAG7CiN,EAAYzE,EAAOxI,GAH0B,CAIhD6M,wBAAwB,EACxBC,qBAAqB,EACrBC,sBAIJC,EAAazE,GAAGiF,KAA2B,SAAChF,GAAD,OAAWS,aAAI,SAACoE,GAAD,sBACrDA,EADqD,GAErDI,YAAK,CAAC,yBAA0B,sBAAuB,gBAAiBxB,MACzEzD,MAGJwE,EAAazE,GAAGmF,IAAiBvD,SAAS,SAAC3B,EAAD,OAAUxI,EAAV,EAAUA,GAAV,sBACrCwI,EADqC,eAEvCxI,EAFuC,eAGnCiN,EAAYzE,EAAOxI,GAHgB,CAItC4M,mBAAmB,SAIvBI,EAAazE,GAAGmF,IAAiBrD,SAAS,SAAC7B,EAAD,OAAUxI,EAAV,EAAUA,GAAV,sBACrCwI,EADqC,eAEvCxI,EAFuC,eAGnCiN,EAAYzE,EAAOxI,GAHgB,CAItC2M,uBAAuB,SAI3BK,EAAazE,GAAGmF,IAAiBtD,SAAS,SAAC5B,EAAD,OAAUxI,EAAV,EAAUA,GAAIoM,EAAd,EAAcA,cAAd,sBACrC5D,EADqC,eAEvCxI,EAFuC,eAGnCiN,EAAYzE,EAAOxI,GAHgB,CAItCoM,gBACAQ,mBAAmB,EACnBD,uBAAuB,SAa3BK,EAAazE,GAAGxI,KAAuB,SAACyI,EAAD,OAAUxI,EAAV,EAAUA,GAAIL,EAAd,EAAcA,aAAd,sBAClC6I,EADkC,eAEpCxI,EAFoC,eAGhCiN,EAAYzE,EAAOxI,GAHa,CAInCL,sBAIJqN,EAAazE,GAAGoF,KAA0B,SAACnF,EAAD,OACxCiB,EADwC,EACxCA,MAAOC,EADiC,EACjCA,OAAQ1J,EADyB,EACzBA,GAAI4N,EADqB,EACrBA,qBADqB,sBAGrCpF,EAHqC,eAIvCxI,EAJuC,eAKnCiN,EAAYzE,EAAOxI,GALgB,CAMtCqM,gBAAiB,CAAE5C,QAAOC,SAAQkE,+BAItCZ,EAAazE,GAAGsF,KAA4B,SAACrF,EAAD,OAAUxI,EAAV,EAAUA,GAAV,sBACvCwI,EADuC,eAEzCxI,EAFyC,eAGrCiN,EAAYzE,EAAOxI,GAHkB,CAIxCqM,gBAAiBJ,EAAmBI,uBAIxCW,EAAazE,GAAGvF,KAAiB,SAACwF,EAAD,GAA4B,IAAlBgC,EAAiB,EAAjBA,IAAKvQ,EAAY,EAAZA,MAE9C,OAAIuQ,IAAQsD,MAA+B,IAAV7T,EACxBgP,YACL8E,YAAM,kBAAmB9B,EAAmBI,iBAC5C7D,GAGGA,KAGTwE,EAAazE,GAAGyF,KAAuB,SAACxF,EAAD,OAAUxI,EAAV,EAAUA,GAAV,OAAmBiO,YAAK,CAACjO,GAAKwI,O,2JCrM/D0F,EAAmB,SAACC,EAAkB3D,EAAa4D,GACvD,IAAMxD,EAAO,eAAWJ,GACxB,GAAI2D,EAAQE,aAAazD,GAAU,CAEjC,IAAM5D,EAAOmH,EAAQG,aAAa1D,GAElC,MAAa,SAAT5D,GAGS,UAATA,IAGS,SAATA,EACK,KAILA,IAAI,WAASA,IACPA,EAGN,gCAAgCuH,KAAKvH,GAChC+D,KAAKC,MAAMhE,GAGbA,GAKT,OAAOoH,GA2gBII,EAAsB,SAACC,GAAD,OAA+BC,aAChE,SAACC,GAAD,MACiD,YAA9CA,EAAqC1R,KA1gBV,SAACkR,EAAkB3D,EAAa4D,GAC9D,IAAMnU,EAAQiU,EAAiBC,EAAS3D,EAAK4D,GAE7C,OAAc,IAAVnU,IAA4B,IAAVA,EACbA,EAGc,kBAAXA,EACI,QAAVA,GAA6B,OAAVA,GAIT,KAAVA,GAA0B,OAAVA,GAA4B,QAAVA,GAA6B,SAAVA,GAIlDmU,EAGc,kBAAXnU,EACO,IAAVA,EAGFmU,EAofDQ,CACAH,EACAE,EAAUnE,IACRmE,EAAUP,cACVF,EAAiBO,EAAME,EAAUnE,IAAKmE,EAAUP,gBAvPX,CAG7CpO,GAAI,CAAEwK,IAAK,WACXqE,KAAM,CAAErE,IAAK,QACbsE,WAAY,CAAEtE,IAAK,eACnBvL,MAAO,CAAEuL,IAAK,SACduE,aAAc,CAAEvE,IAAK,gBAAiB4D,aAAclQ,OAAOU,QAAQoQ,cAAcC,SACjFC,MAAO,CAAE1E,IAAK,QAAS4D,aAAclQ,OAAOU,QAAQoQ,cAAcE,OAClErO,OAAQ,CAAE2J,IAAK,SAAU4D,aAAclQ,OAAOU,QAAQoQ,cAAcnO,QAGpE4I,MAAO,CAAEe,IAAK,SACdd,OAAQ,CAAEc,IAAK,SAAU4D,aAAclQ,OAAOU,QAAQoQ,cAActF,QACpEyF,OAAQ,CAAE3E,IAAK,SAAUvN,KAAM,UAAWmR,cAAc,GACxDgB,eAAgB,CAAE5E,IAAK,mBACvBnP,MAAO,CAAEmP,IAAK,SACd6E,YAAa,CAAE7E,IAAK,gBACpB8E,aAAc,CAAE9E,IAAK,iBACrB+E,WAAY,CAAE/E,IAAK,eACnBgF,OAAQ,CAAEhF,IAAK,UACfiF,YAAa,CAAEjF,IAAK,iBACpBkF,sBAAuB,CAAElF,IAAK,2BAC9BmF,qBAAsB,CAAEnF,IAAK,0BAC7BoF,WAAY,CAAEpF,IAAK,cACnBqF,cAAe,CAAErF,IAAK,kBACtBsF,aAAc,CAAEtF,IAAK,iBACrBuF,QAAS,CAAEvF,IAAK,YAChBwF,QAAS,CAAExF,IAAK,YAChBlC,OAAQ,CAAEkC,IAAK,UACfyF,aAAc,CAAEzF,IAAK,iBACrB0F,cAAe,CAAE1F,IAAK,kBACtB2F,WAAY,CAAE3F,IAAK,cACnB4F,mBAAoB,CAAE5F,IAAK,uBAC3B6F,gBAAiB,CAAE7F,IAAK,qBAExB8F,cAAe,CAAE9F,IAAK,kBACtB+F,MAAO,CAAE/F,IAAK,SACdgG,OAAQ,CAAEhG,IAAK,UACfiG,gBAAiB,CAAEjG,IAAK,oBACxBkG,eAAgB,CAAElG,IAAK,oBACvBmG,OAAQ,CAAEnG,IAAK,UACfjL,SAAU,CAAEiL,IAAK,MACjBoG,kBAAmB,CAAEpG,IAAK,uBAC1BqG,aAAc,CAAErG,IAAK,iBACrBhG,UAAW,CAAEgG,IAAK,cAClB/F,UAAW,CAAE+F,IAAK,cAIlBsG,YAAa,CAAEtG,IAAK,gBACpBuG,kBAAmB,CAAEvG,IAAK,sBAC1BwG,aAAc,CAAExG,IAAK,iBACrByG,cAAe,CAAEzG,IAAK,iBAAkBvN,KAAM,WAC9CiU,cAAe,CAAE1G,IAAK,kBACtB2G,gBAAiB,CAAE3G,IAAK,oBACxB4G,yBAA0B,CAAE5G,IAAK,4BAA6BvN,KAAM,WACpEoU,kBAAmB,CAAE7G,IAAK,qBAAsBvN,KAAM,WACtDqU,aAAc,CAAE9G,IAAK,iBACrB+G,mBAAoB,CAAE/G,IAAK,uBAC3BgH,cAAe,CAAEhH,IAAK,kBACtBiH,iBAAkB,CAAEjH,IAAK,qBACzBkH,0BAA2B,CAAElH,IAAK,8BAA+BvN,KAAM,WACvE0U,mBAAoB,CAAEnH,IAAK,sBAAuBvN,KAAM,WACxD2U,sBAAuB,CAAEpH,IAAK,+BAAgCvN,KAAM,WACpE4U,6BAA8B,CAAErH,IAAK,gCAAiCvN,KAAM,WAC5E6U,6BAA8B,CAAEtH,IAAK,gCAAiCvN,KAAM,WAC5E8U,iBAAkB,CAAEvH,IAAK,qBACzBwH,iBAAkB,CAAExH,IAAK,qBACzByH,mBAAoB,CAAEzH,IAAK,uBAC3B0H,mBAAoB,CAAE1H,IAAK,uBAC3B2H,qBAAsB,CAAE3H,IAAK,yBAC7B4H,kBAAmB,CAAE5H,IAAK,qBAAsBvN,KAAM,WACtDoV,yBAA0B,CAAE7H,IAAK,4BAA6BvN,KAAM,WACpEqV,8BAA+B,CAAE9H,IAAK,iCAAkCvN,KAAM,WAC9EsV,iBAAkB,CAAE/H,IAAK,qBACzBgI,gBAAiB,CAAEhI,IAAK,mBAAoBvN,KAAM,WAClDwV,yBAA0B,CAAEjI,IAAK,6BACjCkI,yBAA0B,CAAElI,IAAK,6BAEjCmI,iBAAkB,CAAEnI,IAAK,oBAAqBvN,KAAM,WACpD2V,iBAAkB,CAAEpI,IAAK,qBAEzBqI,oBAAqB,CAAErI,IAAK,uBAAwBvN,KAAM,WAC1D6V,2BAA4B,CAAEtI,IAAK,+BACnCuI,yBAA0B,CAAEvI,IAAK,6BACjCwI,qBAAsB,CAAExI,IAAK,yBAC7ByI,qBAAsB,CAAEzI,IAAK,yBAC7B0I,gBAAiB,CAAE1I,IAAK,mBAAoBvN,KAAM,WAClDkW,uBAAwB,CAAE3I,IAAK,2BAC/B4I,qBAAsB,CAAE5I,IAAK,yBAC7B6I,qBAAsB,CAAE7I,IAAK,yBAC7B8I,sBAAuB,CAAE9I,IAAK,0BAC9B+I,eAAgB,CAAE/I,IAAK,mBACvBgJ,0BAA2B,CAAEhJ,IAAK,8BAElCiJ,0BAA2B,CAAEjJ,IAAK,+BAClCkJ,2BAA4B,CAAElJ,IAAK,+BACnCmJ,sCAAuC,CAAEnJ,IAAK,0CAE9CoJ,uBAAwB,CAAEpJ,IAAK,2BAC/BqJ,uBAAwB,CAAErJ,IAAK,2BAC/BsJ,iBAAkB,CAAEtJ,IAAK,oBAAqBvN,KAAM,WACpD8W,uBAAwB,CAAEvJ,IAAK,2BAC/BwJ,uBAAwB,CAAExJ,IAAK,2BAC/ByJ,iBAAkB,CAAEzJ,IAAK,oBAAqBvN,KAAM,WACpDiX,gBAAiB,CAAE1J,IAAK,mBAAoBvN,KAAM,WAElDkX,qBAAsB,CAAE3J,IAAK,0BAC7B4J,qBAAsB,CAAE5J,IAAK,0BAC7B6J,qBAAsB,CAAE7J,IAAK,yBAC7B8J,uBAAwB,CAAE9J,IAAK,2BAC/B+J,uBAAwB,CAAE/J,IAAK,2BAC/BgK,wBAAyB,CAAEhK,IAAK,4BAChCiK,oBAAqB,CAAEjK,IAAK,wBAC5BkK,sBAAuB,CAAElK,IAAK,0BAC9BmK,uBAAwB,CAAEnK,IAAK,2BAC/BoK,iBAAkB,CAAEpK,IAAK,qBACzBqK,mBAAoB,CAAErK,IAAK,uBAC3BsK,oBAAqB,CAAEtK,IAAK,wBAC5BuK,mBAAoB,CAAEvK,IAAK,uBAE3BwK,cAAe,CAAExK,IAAK,mBACtByK,cAAe,CAAEzK,IAAK,mBACtB0K,kBAAmB,CAAE1K,IAAK,uBAC1B2K,iBAAkB,CAAE3K,IAAK,sBACzB4K,gBAAiB,CAAE5K,IAAK,qBACxB6K,eAAgB,CAAE7K,IAAK,oBACvB8K,sBAAuB,CAAE9K,IAAK,2BAE9B+K,cAAe,CAAE/K,IAAK,kBACtBgL,mBAAoB,CAAEhL,IAAK,uBAC3BiL,mBAAoB,CAAEjL,IAAK,uBAC3BkL,uBAAwB,CAAElL,IAAK,2BAC/BmL,uBAAwB,CAAEnL,IAAK,2BAC/BoL,mBAAoB,CAAEpL,IAAK,uBAC3BqL,0BAA2B,CAAErL,IAAK,8BAClCsL,yBAA0B,CAAEtL,IAAK,6BACjCuL,4BAA6B,CAAEvL,IAAK,gCACpCwL,4BAA6B,CAAExL,IAAK,gCACpCyL,+BAAgC,CAAEzL,IAAK,mCACvC0L,mBAAoB,CAAE1L,IAAK,uBAC3B2L,sBAAuB,CAAE3L,IAAK,0BAC9B4L,sBAAuB,CAAE5L,IAAK,0BAC9B6L,oBAAqB,CAAE7L,IAAK,wBAC5B8L,oBAAqB,CAAE9L,IAAK,wBAC5B+L,4BAA6B,CAAE/L,IAAK,gCACpCgM,4BAA6B,CAAEhM,IAAK,gCACpCiM,mBAAoB,CAAEjM,IAAK,uBAC3BkM,wBAAyB,CAAElM,IAAK,4BAChCmM,wBAAyB,CAAEnM,IAAK,4BAChCoM,yBAA0B,CAAEpM,IAAK,6BACjCqM,iBAAkB,CAAErM,IAAK,qBACzBsM,wBAAyB,CAAEtM,IAAK,4BAChCuM,wBAAyB,CAAEvM,IAAK,4BAChCwM,wBAAyB,CAAExM,IAAK,4BAChCyM,4BAA6B,CAAEzM,IAAK,+BAAgCvN,KAAM,WAC1Eia,yBAA0B,CAAE1M,IAAK,4BAA6BvN,KAAM,WACpEka,iBAAkB,CAAE3M,IAAK,sBACzB4M,0BAA2B,CAAE5M,IAAK,6BAA8BvN,KAAM,WACtEoa,0BAA2B,CAAE7M,IAAK,8BAClC8M,wBAAyB,CAAE9M,IAAK,4BAChC+M,0BAA2B,CAAE/M,IAAK,8BAClCgN,0BAA2B,CAAEhN,IAAK,8BAClCiN,uBAAwB,CAAEjN,IAAK,2BAC/BkN,uBAAwB,CAAElN,IAAK,2BAC/BmN,uBAAwB,CAAEnN,IAAK,2BAC/BoN,yBAA0B,CAAEpN,IAAK,4BAA6BvN,KAAM,WACpE4a,6BAA8B,CAAErN,IAAK,iCACrCsN,gCAAiC,CAAEtN,IAAK,oCACxCuN,mCAAoC,CAAEvN,IAAK,uCAC3CwN,yBAA0B,CAAExN,IAAK,6BACjCyN,6BAA8B,CAAEzN,IAAK,iCACrC0N,2BAA4B,CAAE1N,IAAK,+BACnC2N,+BAAgC,CAAE3N,IAAK,mCACvC4N,uBAAwB,CAAE5N,IAAK,0BAA2BvN,KAAM,WAEhEob,WAAY,CAAE7N,IAAK,eACnB8N,cAAe,CAAE9N,IAAK,kBACtB+N,YAAa,CAAE/N,IAAK,gBACpBgO,gBAAiB,CAAEhO,IAAK,qBACxBiO,mBAAoB,CAAEjO,IAAK,wBAC3BkO,qBAAsB,CAAElO,IAAK,0BAC7BmO,eAAgB,CAAEnO,IAAK,oBACvBoO,mBAAoB,CAAEpO,IAAK,wBAC3BqO,sBAAuB,CAAErO,IAAK,2BAC9BsO,wBAAyB,CAAEtO,IAAK,6BAChCuO,kBAAmB,CAAEvO,IAAK,uBAC1BwO,iBAAkB,CAAExO,IAAK,sBACzByO,oBAAqB,CAAEzO,IAAK,yBAC5B0O,sBAAuB,CAAE1O,IAAK,2BAC9B2O,gBAAiB,CAAE3O,IAAK,qBACxB4O,oBAAqB,CAAE5O,IAAK,yBAC5B6O,oBAAqB,CAAE7O,IAAK,wBAC5B8O,oBAAqB,CAAE9O,IAAK,wBAC5B+O,eAAgB,CAAE/O,IAAK,mBACvBgP,iCAAkC,CAAEhP,IAAK,qCAAsCvN,KAAM,WACrFwc,+BAAgC,CAAEjP,IAAK,oCACvCkP,mCAAoC,CAAElP,IAAK,wCAC3CmP,+BAAgC,CAAEnP,IAAK,oCACvCoP,+BAAgC,CAAEpP,IAAK,oCACvCqP,uBAAwB,CAAErP,IAAK,6BAC/BsP,2CAA4C,CAC1CtP,IAAK,iDAEPuP,4BAA6B,CAAEvP,IAAK,kCACpCwP,uBAAwB,CAAExP,IAAK,6BAC/ByP,2CAA4C,CAC1CzP,IAAK,iDAEP0P,0BAA2B,CAAE1P,IAAK,gCAClC2P,yBAA0B,CAAE3P,IAAK,+BACjC4P,6BAA8B,CAAE5P,IAAK,mCACrC6P,+BAAgC,CAAE7P,IAAK,qCACvC8P,2BAA4B,CAAE9P,IAAK,iCACnC+P,0BAA2B,CAAE/P,IAAK,gCAClCgQ,8BAA+B,CAAEhQ,IAAK,oCACtCiQ,gCAAiC,CAAEjQ,IAAK,sCACxCkQ,sBAAuB,CAAElQ,IAAK,4BAC9BmQ,qBAAsB,CAAEnQ,IAAK,2BAC7BoQ,yBAA0B,CAAEpQ,IAAK,+BACjCqQ,2BAA4B,CAAErQ,IAAK,iCACnCsQ,wBAAyB,CAAEtQ,IAAK,6BAA8BvN,KAAM,WACpE8d,sBAAuB,CAAEvQ,IAAK,4BAC9BwQ,sBAAuB,CAAExQ,IAAK,4BAC9ByQ,6BAA8B,CAAEzQ,IAAK,kCAAmCvN,KAAM,WAC9Eie,oCAAqC,CAAE1Q,IAAK,0CAC5C2Q,6BAA8B,CAAE3Q,IAAK,mCACrC4Q,yBAA0B,CAAE5Q,IAAK,8BAA+BvN,KAAM,WACtEoe,0BAA2B,CAAE7Q,IAAK,gCAClC8Q,uBAAwB,CAAE9Q,IAAK,6BAC/B+Q,eAAgB,CAAE/Q,IAAK,mBAEvBgR,iBAAkB,CAAEhR,IAAK,qBAEzBiR,sBAAuB,CAAEjR,IAAK,2BAC9BkR,eAAgB,CAAElR,IAAK,mBACvBmR,eAAgB,CAAEnR,IAAK,sBAyBZoR,EAAgB,SAACnN,GAC5B,IAAMoN,EAAmBrN,EAAoBC,GACvCqN,EAZ4B,SAACrN,GACnC,IAAMsN,EAAuBC,MAAMC,KAAKxN,EAAKyN,YAC1CnT,QAAO,SAAC4F,GAAD,OAAeA,EAAUwN,KAAKC,WAAW,yBAChDnT,KAAI,SAAC0F,GAAD,sBACFA,EAAUwN,KAAK9X,QAAQ,QAAS,IAAMsK,EAAU1U,UAE/CoiB,EAASvT,YAASiT,GACxB,OAAOO,YAAQD,QAAU1gB,EAAY0gB,EAKjBE,CAAqB9N,GACzC,OAAO,eAAKoN,EAAZ,CAA8BC,iBAGnBU,EAAyC,CACpDpN,eAAgBqN,IAAqB,QAAU,W,gCC7kBjD,gXA0DavP,GA7CwBtL,uBAAY,UAC5CC,IAD4C,qBAQRD,uBAAY,UAChDC,IADgD,yBAqCtBa,YAAmB,UAG7Cb,IAH6C,sBAOrCuL,EAAwBxL,uBAAY,UAC5CC,IAD4C,2BAQpC0L,EAA6B7K,YAAmB,UAGxDb,IAHwD,gCAKhD2L,EAA4B9K,YAAoB,GAAD,OACvDb,IADuD,+BAW/C6L,EAAmBhL,YAAmB,UAG9Cb,IAH8C,sBAUtC9B,EAAwB6B,uBAAY,UAC5CC,IAD4C,qBAUpC8L,EAA2B/L,uBAAY,UAC/CC,IAD+C,wBAIvCgM,EAA6BjM,uBAAY,UACjDC,IADiD,gCAIzCmM,EAAwBpM,uBAAY,UAC5CC,IAD4C,2BAcpC0I,EAAkB7H,YAAmB,UAG7Cb,IAH6C,sB,iCCnIlD,kCAAO,IAAMiC,EAAoB,kB,8hDCkD7B4Y,iBAAkBC,iBACTC,sBAAwB,SAAC,GAG/B,IAFeC,EAEhB,EAFFH,iBACkBI,EAChB,EADFH,iBAEAD,iBAAmBG,EACnBF,iBAAmBG,GAInBC,mBAAoB,EAGpBC,iBAAkB,EAGlBC,mBAAgBthB,EAChBuhB,yBAAsBvhB,EACtBwhB,qBAAkBxhB,EAElByhB,WAEJ,SAASC,oBAAoBjZ,GACzB,OAAOA,EAAE1H,WACJ2H,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACdA,QAAQ,KAAM,SACdA,QAAQ,MAAO,SACfA,QAAQ,MAAO,SACfA,QAAQ,MAAO,SAGxB,IAAMiZ,UAAY,SAAC9S,EAAKvQ,GACpBmjB,WAAWvd,SAASmD,+DAAgB,CAChCwH,MACAvQ,YAKFsjB,gBAAkB,SAACC,GACrB,IAAMlY,EAAWmY,iEAAeL,WAAWM,YAC3C,cAAOpY,QAAP,IAAOA,OAAP,EAAOA,EAAWkY,IAGtB,SAASG,UAAUvZ,GACf,MAAmB,kBAAPA,IAAoBA,EAAEgY,WAAW,YAAchY,EAAEgY,WAAW,aAC7DhY,EACFC,QAAQ,KAAM,OACdA,QAAQ,KAAM,OACdA,QAAQ,MAAO,OACfA,QAAQ,MAAO,QAGxB7H,QAAQC,IAAI,yBACZD,QAAQC,IAAI2H,GACL,oCAMXlG,OAAO0f,WAAa,CAChBC,KAAM,IACNC,MAAO,KACPC,KAAM,KACNC,KAAM,OACNC,eAAe,EACfC,cAAc,EACdC,OAAQ,KACR1U,MAAK,sBAAE2U,yDAAa,gBAAf,gCAA2B,EAChC1U,OAAM,uBAAE0U,yDAAa,iBAAf,kCAA4B,EAClCC,WAAW,EACXC,gBAAiB,EACjBC,iBAAkB,EAClBC,WAAW,EACXC,aAAa,EACbtR,MAAO,KACPuR,OAAQ,KACR9X,MAAO,KACP+X,IAAK,KAELC,YAAa,SAAUC,GAEnB,MAAiC,qBAAnB5jB,KAAK4jB,IAGvBC,QAAS,SAAUC,GACf,IAAIlB,EAAOD,WAAWC,KAkCtB,OAhCAA,GAAQ,UAAYD,WAAWnU,MAAM/M,WACnC,WAAakhB,WAAWlU,OAAOhN,YAEJ,IAAzBkhB,WAAWS,YACXR,GAAQ,oBAAsBD,WAAWU,gBAAgB5hB,WACvD,qBAAuBkhB,WAAWW,iBAAiB7hB,YAGhC,OAArBkhB,WAAWE,QACXD,GAAQ,UAAYD,WAAWE,MAAMphB,YAGjB,OAApBkhB,WAAWG,OACXF,GAAQ,SAAWD,WAAWG,KAAKrhB,aAGN,IAA7BkhB,WAAWK,gBACXJ,GAAQ,wBAGM,IAAdkB,GAA4C,OAAtBnB,WAAWO,SACjCN,GAAQ,WAAaD,WAAWO,OAAOzhB,YAGnB,SAApBkhB,WAAWI,OACXH,GAAQ,SAAWD,WAAWI,MAGX,OAAnBJ,WAAWe,MACXd,GAAQ,QAAUD,WAAWe,KAG1Bd,GAGXmB,UAAW,WAGP,IAFA,IAAIC,EAAY5d,SAAS6d,SAASrB,KAAK7V,MAAM,KACzCmX,EAAMF,EAAUvX,OACbyX,KACH,GAAY,IAARA,EAAW,CACX,IAAIC,EAAIH,EAAUE,GAAKnX,MAAM,KACzB4V,WAAWgB,YAAYQ,EAAE,KAAuB,qBAATA,EAAE,KACzCxB,WAAWwB,EAAE,IAAMC,mBAAmBD,EAAE,UAGxCH,EAAUE,GAAKzX,OAAS,IACxBkW,WAAWC,KAAOoB,EAAUE,IAKxC,IAAIG,EAAW,CAAC,YAAa,cAAe,iBAE5C,IADAH,EAAMG,EAAS5X,OACRyX,KAC+B,SAA9BvB,WAAW0B,EAASH,MAAkD,IAA9BvB,WAAW0B,EAASH,KAAgD,MAA9BvB,WAAW0B,EAASH,KAA+C,IAA9BvB,WAAW0B,EAASH,IACvIvB,WAAW0B,EAASH,KAAQ,EAE5BvB,WAAW0B,EAASH,KAAQ,EAIpC,IAAII,EAAU,CAAC,QAAS,SAAU,kBAAmB,oBAErD,IADAJ,EAAMI,EAAQ7X,OACPyX,KACH,GAAwC,kBAA7BvB,WAAW2B,EAAQJ,IAC1B,IACIvB,WAAW2B,EAAQJ,IAAQK,SAAS5B,WAAW2B,EAAQJ,KAE3D,MAAOhe,GACH3E,QAAQC,IAAI,sCAAwC8iB,EAAQJ,IAC5DvB,WAAW2B,EAAQJ,IAAQ,EA0BvC,OArB0B,OAAtBvB,WAAWO,QAAyC,KAAtBP,WAAWO,QACzCjB,oBAAsB7b,SAAS6d,SAASO,OAAO/iB,WAAa2E,SAAS6d,SAASQ,SAAShjB,WACvFugB,cAAgBW,WAAWO,OAC3BhB,iBAAkB,GAElBS,WAAWO,OAAS,KAGpBP,WAAWlU,OAAS,GAAKkU,WAAWnU,MAAQ,GAC5CmU,WAAWM,cAAe,EAC1BN,WAAWY,WAAY,GAEvBZ,WAAWM,cAAe,EAG1BN,WAAWW,iBAAmB,GAAKX,WAAWU,gBAAkB,EAChEV,WAAWS,WAAY,EAEvBT,WAAWS,WAAY,EAGnBT,WAAWI,MACf,IAAK,QAMD,GALAJ,WAAWE,MAAQ,QACnBF,WAAW+B,SAAU,EACrB/B,WAAWG,MAAO,EAClBH,WAAWa,aAAc,GAEO,IAA5Bb,WAAWM,aAAwB,CACnCN,WAAWM,cAAe,EAC1BN,WAAWlU,OAASkW,KAAKC,MACzB,IACMjb,EAAegZ,WAAWnU,MAA2B,IAAnBmU,WAAWnU,OAD5B,IAEvBmU,WAAWnU,MAAQmU,WAAWlU,OAAS9E,EAG3CmY,mBAAoB,EACpBC,iBAAkB,EAClB,MAEJ,IAAK,OACL,QACIY,WAAWI,KAAO,SAO9B8B,WAAY,WACRC,QAAQC,aAAa,KAAM,GAAIpC,WAAWkB,SAAQ,KAGtDmB,0BAA2B,SAAUC,EAAQzW,EAAOC,GACpB,OAAxByW,sBACAvC,WAAWM,aAAegC,EAC1BtC,WAAWnU,MAAQA,EACnBmU,WAAWlU,OAASA,IAI5B0W,eAAgB,SAAUzB,GACjBA,IACLf,WAAWe,IAAMA,EACjBf,WAAWkC,eAGfO,yBAA0B,SAAUH,EAAQzW,EAAOC,GAiB/C,IAhBe,IAAXwW,IAA8B,OAAVzW,GAA6B,OAAXC,GAAmBD,GAAS,GAAKC,GAAU,GAAKD,GAASC,KAC/FwW,GAAS,EACTzW,EAAQ,EACRC,EAAS,GAGsB,OAA/BxL,OAAOiiB,oBACPvC,WAAWS,UAAY6B,EAEvBtC,WAAWS,WAAY,EAG3BT,WAAWU,gBAAkBhnB,KAAKgpB,MAAM7W,GACxCmU,WAAWW,iBAAmBjnB,KAAKgpB,MAAM5W,GACzCkU,WAAWkC,cAEI,IAAXI,GAAmBzW,EAAQ,GAAKC,EAAS,GAAKD,EAAQC,EAAQ,CAC9D,IAAI6W,EAAK7D,iBAAiBjT,GACtB+W,EAAK9D,iBAAiBhT,GACtB6W,IAAOC,IACPA,EAAK,IAETnf,SAASof,eAAe,4BAA4BC,UAClD,2MAEWH,EAAK,UAAY5D,iBAAiBlT,GAAS,sBAC3C+W,EAAK,UAAY7D,iBAAiBjT,GAAU,4BACpCiX,0EAAcrpB,KAAKgpB,OAAO5W,EAASD,GAAS,MAAS,6OAI1EtL,EAAE,qBAAqBQ,OACvBR,EAAE,qBAAqB+Q,MAAM,OAC7B/Q,EAAE,sBAAsByiB,QAAQ,CAC5BriB,MAAM,EACNG,MAAO,CAAEC,KAAM,IAAKI,KAAM,GAC1BV,UAAW,cAGfF,EAAE,qBAAqBY,OACvBZ,EAAE,qBAAqB+Q,MAAM,SAIrC2R,eAAgB,WACZzD,WAAWvd,SAAS0C,mEAGxBue,cAAe,WACX1D,WAAWvd,SAASyC,oEAI5Bsb,WAAWoB,YAKX,IAAI+B,oBAAsB,EAE1B,SAASC,mBACL,IAA4B,IAAxBD,mBACA,OAAOA,mBAGX,GAAuB,qBAAZE,SAAmD,kBAAjBjgB,aAA2B,CAEpE,IACIA,aAAaC,QAFN,eAGPD,aAAakgB,WAHN,QAIPH,oBAAqB,EAEzB,MAAO5f,GACH3E,QAAQC,IAAI0E,GACZ4f,oBAAqB,QAGzBA,oBAAqB,EAGzB,OAAOA,mBAGX,SAASI,iBAAiBhF,GACtB,IAAIiF,EAAM,KAEV,KAC+B,IAAvBJ,mBACAI,EAAMpgB,aAAaqgB,QAAQlF,GAE3B3f,QAAQC,IAAI,iCAGpB,MAAO6kB,GAEH,OADA9kB,QAAQC,IAAI6kB,GACL,KAGX,MAAmB,qBAARF,GAA+B,OAARA,EACvB,KAKJA,EAGX,SAASG,iBAAiBpF,EAAMliB,GAE5B,IACI,IAA2B,IAAvB+mB,mBAEA,OADAhgB,aAAaC,QAAQkb,EAAMliB,EAAMyC,aAC1B,EAGf,MAAO4kB,GACH9kB,QAAQC,IAAI6kB,GAGhB,OAAO,EAGX,SAASE,SAASC,GACd,GAAwB,UAApB7D,WAAWI,KACX,MAAO,QAGX,IAAIoD,EAAMD,iBAAiB,gBAC3B,MAAmB,qBAARC,GAA+B,OAARA,GAAwB,cAARA,EACvCK,EAEAL,EAIf,SAASM,SAAS5D,GACd,MAAwB,UAApBF,WAAWI,OAIXF,IAAU6D,cAGPJ,iBAAiB,eAAgBzD,IAG5C5f,OAAOyjB,aAAeH,SAAS,SAE/B5iB,QAAQgjB,cACR,IAAIC,iBAAkB,EAqBtB,SAASC,oBAAoBzlB,GAIzB,IAHA,IAC0B6M,EAAG6Y,EADzBC,EAAK,GACL/qB,EAAI,EAAGgrB,GAAK,EAAGC,EAAI,EAEhBhZ,GAAK6Y,EAAI1lB,EAAE8lB,OAAOlrB,MAAMmrB,WAAW,IAAI,CAC1C,IAAIC,EAAKnZ,GAAK,IAAMA,GAAK,GACrBmZ,IAAMH,IACNF,IAAKC,GAAK,GACVC,EAAIG,GAERL,EAAGC,IAAMF,EAGb,OAAOC,EAGX,SAASM,mBAAmBC,EAAGC,GAI3B,IAHA,IAAIC,EAAKX,oBAAoBS,EAAEG,eAC3BC,EAAKb,oBAAoBU,EAAEE,eAEtBzrB,EAAI,EAAGwrB,EAAGxrB,IAAM0rB,EAAG1rB,GAAIA,IAC5B,GAAIwrB,EAAGxrB,KAAO0rB,EAAG1rB,GAAI,CACjB,IAAI2rB,EAAIC,OAAOJ,EAAGxrB,IAAK6rB,EAAID,OAAOF,EAAG1rB,IACrC,OAAI2rB,EAAElmB,aAAe+lB,EAAGxrB,IAAM6rB,EAAEpmB,aAAeimB,EAAG1rB,GACvC2rB,EAAIE,EAEHL,EAAGxrB,GAAK0rB,EAAG1rB,GAAM,GAAK,EAK1C,OAAOwrB,EAAG/a,OAASib,EAAGjb,OAM1B,SAASqb,iBAAiB/b,EAAMgc,GAC5B,IAAIC,EAAO,IAAIC,KAAK,CAAClc,GAAO,CACxB/J,KAAM,6BAGNkmB,EAAMC,IAAIC,gBAAgBJ,GAC1BK,EAAOjiB,SAASkiB,cAAc,KAClCD,EAAKE,aAAa,OAAQL,GAC1BG,EAAKE,aAAa,WAAYR,GAE9B,IAAIS,EAAKpiB,SAASof,eAAe,uBACjCgD,EAAG/C,UAAY,GACf+C,EAAGC,YAAYJ,GAEfK,YAAW,WACPF,EAAGG,YAAYN,GACfF,IAAIS,gBAAgBV,KACrB,IAEHG,EAAKQ,QAGT,SAASC,mBAAmB/c,EAAMgc,GAC9BD,iBAAiBhY,KAAKiZ,UAAUhd,GAAOgc,GAG3C,SAASiB,WAAWd,EAAKpE,GAerB,MAdmB,qBAARoE,IAGPA,EAAM,KAGgB,IAAtBA,EAAIe,QAAQ,OACZf,EAAMA,EAAIgB,UAAU,EAAGhB,EAAIe,QAAQ,OAOhCf,EAJIvF,WAAWkB,QAAQC,GAOlC,SAASqF,cAAcjB,GACnB9hB,SAAS6d,SAAWvB,UAAUsG,WAAWd,GAAK,IAI9CjE,SAASmF,SAzGY,OAArBzG,WAAWE,OACX4D,SAAS9D,WAAWE,OACpB6D,aAAe/D,WAAWE,MAC1B5f,OAAOU,QAAQgjB,eAEfhE,WAAWE,MAAQ6D,aAGC,OAApB/D,WAAWG,MACXwD,iBAAiB,oBAAqB3D,WAAWG,MACjD8D,gBAAkBjE,WAAWG,MAE7BH,WAAWG,KAAOoD,iBAAiB,qBAgGvCjjB,OAAOomB,uBAAyB,SAACnB,GAE7B,OADA9hB,SAAS6d,SAAWvB,UAAUwF,EAAMvF,WAAWkB,YACxC,GAGX,IAAIyF,4BAA8B,EAC9BC,uBAAwB,EACxBC,gBAAiB,EAErB,SAASC,sBAAsB1kB,EAAI2kB,EAAMxB,GACrC,IAAIyB,EAAU,EACVtD,EAAQ,SAERjgB,SAAS6d,SAASxiB,WAAW0f,WAAW,YAAc+G,EAAIzmB,WAAW0f,WAAW,YAIhFwI,EAAU,IACHvjB,SAAS6d,SAASxiB,WAAW0f,WAAW,aAAe+G,EAAIzmB,WAAW0f,WAAW,aACxFkF,EAAQ,eAGZ,IAAIuD,EAAWZ,WAAWd,GAE1BQ,YAAW,WACPtiB,SAASof,eAAe,kBAAkBC,WAAa,gDAAkD/C,UAAUkH,GAAY,qBAAuBxH,oBAAoB8F,GAAO,sDAAwDwB,EAAO,IAAM3kB,EAAK,wCAE3PpB,QAAQkmB,cAAc3B,GAAK,SAAUnc,GACjC,GAAoB,qBAATA,GAAiC,OAATA,GAA8C,kBAAtBA,EAAK+d,cAA6B/d,EAAK+d,eAAiBJ,GAI/G,GAFAtjB,SAASof,eAAekE,EAAO,IAAM3kB,EAAK,WAAW0gB,UAAY,MAE5D+D,eAGD,GAFAA,gBAAiB,EAEbD,sBAAuB,CACvBtmB,OAAO8mB,KAAKrH,UAAUkH,GAAW,UACjCL,uBAAwB,EACxB,IAAMne,EAAmBkX,gBAAgB,oBACzClc,SAASof,eAAe,sBAAsBC,UAAY,4BAA8Bra,EAAiBse,GAAMxI,KAAO,iBAAmBwB,UAAUkH,GAAY,KAAOxH,oBAAoB8F,GAAO,4DAEjM9hB,SAASof,eAAe,sBAAsBC,WAAa,kCAAoCrD,oBAAoB8F,GAAO,WAC1H9hB,SAAS6d,SAAWvB,UAAUkH,GAC9B1mB,EAAE,oBAAoB8mB,MAAM,YAIhB,qBAATje,GAAiC,OAATA,GAA8C,kBAAtBA,EAAK+d,cAA6B/d,EAAK+d,eAAiBJ,IAC/GrD,EAAQ,iBAGZjgB,SAASof,eAAekE,EAAO,IAAM3kB,EAAK,WAAW0gB,UAAYY,IACjEiD,6BACmC,IAC/BC,uBAAwB,EACxBnjB,SAASof,eAAe,sBAAsBC,UAAY,wEAIjE,GAAL1gB,EAAW4kB,GAGnB1mB,OAAOgnB,uBAAyB,SAAgCP,GAG5DF,gBAAiB,EACjB,IAAIU,EAAU,GACR9e,EAAmBkX,gBAAgB,oBACrC4B,EAAM9Y,EAAiBse,GAAMS,cAAc1d,OAC3C2d,EAAQ,EAQZ,IANAhkB,SAASof,eAAe,sBAAsBC,UAAY,GAC1Drf,SAASof,eAAe,kBAAkBC,UAAY,GACtDrf,SAASof,eAAe,kBAAkBC,UAAYra,EAAiBse,GAAMxI,KAC7Ehe,EAAE,oBAAoB8mB,MAAM,QAE5BV,4BAA8BpF,EACvBA,KAAO,CACV,IAAIgE,EAAM9c,EAAiBse,GAAMS,cAAcjG,GAC/CgG,EAAQhC,IAAO,EACfuB,sBAAsBW,IAASV,EAAMxB,GAwBzC,OAnBAQ,YAAW,YACgB,IAAnBc,iBACApjB,SAASof,eAAe,sBAAsBC,UAAY,oDAC1D9hB,QAAQ0mB,eAAeX,EAAMpH,iBAAiB,SAAUvW,GAGpD,IADAmY,EAAMnY,EAAKue,KAAK7d,OACTyX,KAAO,CACV,IAAIgE,EAAMnc,EAAKue,KAAKpG,GAAK,GAEG,qBAAjBgG,EAAQhC,KACfoB,8BACAY,EAAQhC,IAAO,EACfuB,sBAAsBW,IAASV,EAAMxB,WAKtD,MAEI,GAGXjlB,OAAOsnB,2BAA6B,WAChCnkB,SAASof,eAAe,4BAA4BxmB,MAAQsjB,gBAAgB,cAC5Elc,SAASof,eAAe,qBAAqBC,UAAYnD,gBAAgB,kBACzElc,SAASof,eAAe,0BAA0BC,UAAY,GAC9DviB,EAAE,wBAAwB8mB,MAAM,SAGpC/mB,OAAOunB,wBAA0B,WAE7B,IAAMC,EAAgBrkB,SAASof,eAAe,4BAA4BxmB,MAEpD,KAAlByrB,GAAiD,KAAzBA,EAAche,OAEtCvJ,EAAEwnB,KAAK,CACHxC,IAAK5F,gBAAgB,kBAAoB,0CACrCA,gBAAgB,eAAiB,SACjCqI,mBAAmBrI,gBAAgB,aAAe,QAClDqI,mBAAmBC,wDAAiB,OAASH,EACjDI,OAAO,EACPC,OAAO,EACPC,QAAS,CACL,gBAAiB,qBACjB,OAAU,YAEdC,UAAW,CAACC,iBAAiB,KAEhCC,MAAK,SAAUnf,GAGe,kBAF3BA,EAAOpI,QAAQwnB,IAAIC,YAAY,iCAAkCrf,IAEjDkZ,QAAuC,OAAhBlZ,EAAKkZ,SAExC1jB,QAAQoN,KAAK,0DAA2D5C,GACxEA,EAAO,MAGX7I,EAAE,wBAAwB8mB,MAAM,WAEnCqB,MAAK,WAEF9pB,QAAQoN,KAAK,kCACbvI,SAASof,eAAe,0BAA0BC,UAAY,uDAGlErf,SAASof,eAAe,0BAA0BC,UAAY,iDAItE,IAAI6F,mBAAqB,KACrBC,kBAAoB,KAExBtoB,OAAOuoB,2BAA6B,SAAC9B,EAAMxI,EAAMgH,GAC7CoD,mBAAqB5B,EACrB6B,kBAAoBrD,EAEpB9hB,SAASof,eAAe,4BAA4BC,UAAYvE,EAChE9a,SAASof,eAAe,6BAA6BC,UAAYvE,EACjE9a,SAASof,eAAe,2BAA2BC,UAAYyC,EAC/D9hB,SAASof,eAAe,0BAA0BC,UAAY,GAE9DviB,EAAE,wBAAwB8mB,MAAM,SAGpC/mB,OAAOwoB,wBAA0B,WAC7B,IAAMC,EAAatlB,SAASof,eAAe,0BAEvC+F,mBACA5nB,QAAQgoB,eAAerJ,gBAAiBsI,uDAAeW,mBAAmB,SAAUK,GACjE,OAAXA,GACAL,kBAAoB,KACpBroB,EAAE,wBAAwB8mB,MAAM,QAChC7H,WAAWvd,SAAS0D,mEAEpBojB,EAAWjG,UAAY,sEAMvC,IAAI7hB,QAAU,CACVioB,MAAO,GACPC,cAAe,GACf/f,KAAM,KACNrB,SAAU,iBACVqhB,QAAS,UACTC,gBAAiB,UACjBC,MAAO,GAEPC,SAAU,EACVC,aAAc,EAEdC,aAAc,EAEdC,aAAc,KAGlB,SAASD,aAAaE,GAGlB,OAA6B,IAAzB1oB,QAAQwoB,aACD,EAKAxoB,QAAQwoB,aAIvB,SAASG,aAAajF,EAAGC,GACrB,OAAID,EAAEkF,SAAWjF,EAAEiF,UACP,EAERlF,EAAEkF,SAAWjF,EAAEiF,SACR,EAEJnF,mBAAmBC,EAAEpG,KAAMqG,EAAErG,MAGxC,SAASuL,qBAAqBC,GAC1B,IAAIC,EAAM,GACNC,EAAS,GAEb,IAAK,IAAI3e,KAAKye,EACLA,EAAOG,eAAe5e,IAIL,qBAAX0e,EAAI1e,KACX0e,EAAI1e,GAAKye,EAAOze,GAChB2e,EAAOE,KAAK7e,IAcpB,OAVA2e,EAAOG,MAAK,SAAUzF,EAAGC,GACrB,OAAIoF,EAAIrF,GAAGkF,SAAWG,EAAIpF,GAAGiF,UACjB,EAERG,EAAIrF,GAAGkF,SAAWG,EAAIpF,GAAGiF,SAClB,EAEJnF,mBAAmBC,EAAGC,MAG1BqF,EAMX3pB,OAAO+pB,WAAa,SAACpK,GACjB,GAAIA,GAAiB,KAATA,GAAiD,OAAlCxc,SAASof,eAAe5C,GAAgB,CAC/D,IAAIqK,EAAS/pB,EAAE,IAAM0f,GAAMqK,SACL,qBAAXA,GAEP/pB,EAAE,cAAcgqB,QAAQ,CAAEC,UAAWF,EAAOG,IAAM,IAAM,GAKhE,OAAO,GAMXnqB,OAAOoqB,gBAAkB,CACrBC,KAAM,GACNC,QAAS,GACTC,QAAS,IAIb,IAAMC,iBAAmB,CACrBC,oBAAqB,GACrBC,GAAI,UAEJL,KAAM,GACNC,QAAS,GACTC,QAAS,GAITI,UAAW,SAAUC,EAAQ3b,EAAO4b,EAAW1tB,EAAO2tB,GAClD,GAAqB,OAAjBnqB,QAAQmI,MAAgD,qBAAxBnI,QAAQmI,KAAKoC,OAC7C,MAAO,GAGX,GAA0C,qBAA/BvK,QAAQmI,KAAKoC,OAAO+D,GAC3B,MAAO,GAGX,GAAqD,qBAA1CtO,QAAQmI,KAAKoC,OAAO+D,GAAOgD,WAClC,MAAO,GAGX,GAAgE,qBAArDtR,QAAQmI,KAAKoC,OAAO+D,GAAOgD,WAAW4Y,GAC7C,MAAO,GAGX,IAAIve,EAAM2C,EAAQ,IAAM4b,EAcxB,MAZqB,qBAAV1tB,IACPA,EAAQ,IAGiC,qBAAlCJ,KAAK0tB,oBAAoBne,GAChCvP,KAAK0tB,oBAAoBne,GAAO,CAAE6a,MAAO,GAEzCpqB,KAAK0tB,oBAAoBne,GAAK6a,QAK3ByD,EAAS,gDAAkD3b,EAAQ,sHAAwH4b,EAAY,wBAA0BA,EAAY,SAFpPve,EAAMA,EAAM,IAAMvP,KAAK0tB,oBAAoBne,GAAK6a,OAEoN,uBAAyB7a,EAAM,gFAAkFnP,EAAQ,IAAM2tB,GAGvYC,WAAY,SAAUhqB,EAAOiQ,EAAOiB,EAAY7H,GAS5C,MARsB,qBAAXA,IACPA,EAAS,IAGa,qBAAf6H,IACPA,EAAa,IAGV,kFACoBA,EAAa,sEAGlBlR,EAAQ,iBACRiQ,EAAQ,+CAEP5G,EAAS,+BAIpC4gB,aAAc,SAAU/d,EAAKge,EAAM3e,EAAKiX,GACpC,GAA0B,qBAAdtW,EAAIX,GAAuB,CACnC,IAAIvT,EAAIkU,EAAIX,GAAK2e,GAEjB,MAAmB,qBAAPlyB,EACDwqB,EAGQ,oBAAPxqB,EACDA,EAAEyxB,iBAAiBE,IAGvB3xB,EAGX,OAAOwqB,GAGX2H,UAAW,SAAUjc,GACjB,MAAkC,qBAAvBA,EAAMkc,cACLpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,QAASpb,EAAMkc,aAAclc,EAAMkc,cAAc3sB,WAClF,SAAWyQ,EAAMlQ,KAAKqsB,QAAQnc,EAAMlQ,KAAKyK,OAASyF,EAAMkc,aAAa3hB,OAAS,IAAIhL,YAAY2H,QAAQ,KAAM,KAG5GpJ,KAAKiuB,aAAajuB,KAAKstB,KAAM,QAASpb,EAAMob,KAAMpb,EAAMob,MAAO7rB,WAAW2H,QAAQ,KAAM,MAGpGklB,SAAU,SAAUpc,GAChB,MAAkC,qBAAvBA,EAAMkc,aACNpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMkc,aAAc,uCAAuC3sB,WAGpGzB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMob,KAAM,wCAG5DiB,SAAU,SAAUrc,GAChB,MAAkC,qBAAvBA,EAAMkc,aACNpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMkc,aAAc,MAG7DpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMob,KAAM,OAG5DkB,WAAY,SAAUtc,GAClB,MAAkC,qBAAvBA,EAAMkc,aACNpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,SAAUpb,EAAMkc,aAAc,GAG/DpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,SAAUpb,EAAMob,KAAM,IAG9DmB,aAAc,SAAUnB,EAAMC,GAC1B,IAAIhe,EAAM+d,EAAO,IAAMC,EAEnBvpB,EAAQhE,KAAKiuB,aAAajuB,KAAKutB,QAAS,QAAShe,EAAKge,GAAS9rB,WAAW2H,QAAQ,KAAM,KAC5F,OAAIpF,EAAMyI,OAAS,GACPzI,EAAMklB,UAAU,EAAG,IAEhB,MADHllB,EAAMklB,UAAUllB,EAAMyI,OAAS,GAAIzI,EAAMyI,QAG9CzI,GAGX0qB,YAAa,SAAUpB,EAAMC,GACzB,IAAIhe,EAAM+d,EAAO,IAAMC,EACvB,OAAOvtB,KAAKiuB,aAAajuB,KAAKutB,QAAS,OAAQhe,EAAK,OAGxDof,cAAe,SAAUrB,EAAMC,EAASqB,GACpC,IAAIrf,EAAM+d,EAAO,IAAMC,EACvB,OAAOvtB,KAAKiuB,aAAajuB,KAAKutB,QAAS,SAAUhe,EAAK,GAAOqf,GAGjEC,YAAa,SAAU9pB,GACnB,IAAI/I,EAAIgE,KAAKiuB,aAAajuB,KAAKwtB,QAAS,OAAQzoB,EAAI,MAEpD,OAAU,OAAN/I,EACO,uFAAyFA,EAAI,SAE7F,IAIf8yB,kBAAmB,SAAU/pB,GACzB,MAAgC,qBAArB/E,KAAKwtB,QAAQzoB,IAA8D,qBAAhC/E,KAAKwtB,QAAQzoB,GAAIgqB,WAC5D/uB,KAAKwtB,QAAQzoB,GAAIgqB,WAEjB,gBAIfC,cAAe,SAAUjqB,EAAIyhB,GACzB,MAAgC,qBAArBxmB,KAAKwtB,QAAQzoB,IAA0D,qBAA5B/E,KAAKwtB,QAAQzoB,GAAIa,OAC5D4gB,EAAMxmB,KAAKwtB,QAAQzoB,GAAIa,OAEvB4gB,GAIfyI,qBAAsB,SAAUlqB,EAAIyhB,GAChC,MAAgC,qBAArBxmB,KAAKwtB,QAAQzoB,IAAiE,qBAAnC/E,KAAKwtB,QAAQzoB,GAAIkQ,cAC5DjV,KAAKwtB,QAAQzoB,GAAIkQ,cAEjBuR,IAWnB,SAAS0I,gBAAgBhd,GACrB,IAAIid,EAAQjd,EAAMlQ,KAAK+K,MAAM,KACzBqiB,EAAMD,EAAM,GAEhB,OAAQC,GACJ,IAAK,KACL,IAAK,MACL,IAAK,OACL,IAAK,cACDld,EAAMob,KAAO8B,EACb,MAEJ,IAAK,SACDld,EAAMob,KAAOpb,EAAMlQ,KACfmtB,EAAM1iB,OAAS,GAAkB,UAAb0iB,EAAM,GAC1Bjd,EAAMkc,aAAegB,EAAM,IAAMD,EAAM,GAChCA,EAAM1iB,OAAS,IACtByF,EAAMkc,aAAegB,GAEzB,MAEJ,IAAK,OACDld,EAAMob,KAAOpb,EAAMlQ,KACfmtB,EAAM1iB,OAAS,GAAkB,SAAb0iB,EAAM,GAC1Bjd,EAAMkc,aAAegB,EAAM,IAAMD,EAAM,GAChCA,EAAM1iB,OAAS,IACtByF,EAAMkc,aAAegB,GAEzB,MAEJ,IAAK,SACDld,EAAMob,KAAOpb,EAAMlQ,KACfkQ,EAAMnN,GAAGsqB,MAAM,8BAAgCnd,EAAMnN,GAAGsqB,MAAM,4BAC9Dnd,EAAMkc,aAAe,SAErBlc,EAAMkc,aAAe,SAEzB,MAEJ,IAAK,KACDlc,EAAMob,KAAOpb,EAAMlQ,KACfmtB,EAAM1iB,OAAS,GAAkB,WAAb0iB,EAAM,GAC1Bjd,EAAMkc,aAAegB,EAAM,IAAMD,EAAM,GAChCA,EAAM1iB,OAAS,IACtByF,EAAMkc,aAAegB,GAEzB,MAEJ,IAAK,QACGD,EAAM1iB,OAAS,EACfyF,EAAMob,KAAO8B,EAAM,IAAMD,EAAM,GAG/Bjd,EAAMob,KAAO8B,EAEjB,MAEJ,IAAK,MACDld,EAAMob,KAAOpb,EAAMlQ,KACfmtB,EAAM1iB,OAAS,GAAkB,UAAb0iB,EAAM,GAC1Bjd,EAAMkc,aAAegB,EAAM,IAAMD,EAAM,GAChCA,EAAM1iB,OAAS,IACtByF,EAAMkc,aAAegB,GAEzB,MAEJ,IAAK,OACDld,EAAMob,KAAOpb,EAAMlQ,KACfmtB,EAAM1iB,OAAS,GAAkB,WAAb0iB,EAAM,IAAgC,QAAbA,EAAM,GACnDjd,EAAMkc,aAAegB,EAAM,IAAMD,EAAM,GAChCA,EAAM1iB,OAAS,IACtByF,EAAMkc,aAAegB,GAEzB,MAEJ,IAAK,SACL,IAAK,MACDld,EAAMob,KAAOpb,EAAMlQ,KACfmtB,EAAM1iB,OAAS,GAAkB,QAAb0iB,EAAM,GAC1Bjd,EAAMkc,aAAegB,EAAM,IAAMD,EAAM,GAChCA,EAAM1iB,OAAS,IACtByF,EAAMkc,aAAegB,GAEzB,MAEJ,IAAK,UACDld,EAAMob,KAAOpb,EAAMlQ,KACC,GAAhBmtB,EAAM1iB,QAA4B,SAAb0iB,EAAM,GAC3Bjd,EAAMob,KAAO8B,EAAM,IAAMD,EAAM,GACxBA,EAAM1iB,OAAS,GAAkB,SAAb0iB,EAAM,GACjCjd,EAAMkc,aAAegB,EAAM,IAAMD,EAAM,GAChCA,EAAM1iB,OAAS,IACtByF,EAAMkc,aAAegB,GAEzB,MAEJ,IAAK,UACGD,EAAM1iB,QAAU,GAAK0iB,EAAM,GAAGhO,WAAW,eACzCjP,EAAMob,KAAO8B,EAAM,cAEvB,MAEJ,IAAK,KAKD,GAJAld,EAAMob,KAAO8B,EAIS,WAAlBld,EAAMsb,UAAwE,qBAAxC5pB,QAAQkoB,cAAc5Z,EAAMuR,SAA2B7f,QAAQkoB,cAAc5Z,EAAMuR,UAAYvR,EAAMuR,QAAS,CACpJ,IAAIwD,EAAI/U,EAAMgP,KAAKnU,MAAM,KAAK,GAC1Bka,EAAEqI,SAAS,OACX1rB,QAAQkoB,cAAc5Z,EAAMuR,QAAUwD,EAAEoH,MAAM,EAAGpH,EAAEsI,YAAY,QACxDtI,EAAEqI,SAAS,QAClB1rB,QAAQkoB,cAAc5Z,EAAMuR,QAAUwD,EAAEoH,MAAM,EAAGpH,EAAEsI,YAAY,SACxDtI,EAAE9F,WAAW,OACpBvd,QAAQkoB,cAAc5Z,EAAMuR,QAAUwD,EAAEoH,MAAM,EAAGpH,EAAExa,QAC5Cwa,EAAE9F,WAAW,QACpBvd,QAAQkoB,cAAc5Z,EAAMuR,QAAUwD,EAAEoH,MAAM,EAAGpH,EAAExa,QAEnD7I,QAAQkoB,cAAc5Z,EAAMuR,QAAUwD,EAM1C/U,EAAMnN,GAAGsqB,MAAM,YACfnd,EAAMsa,WAGV,MAEJ,QACIta,EAAMob,KAAOpb,EAAMlQ,KACfmtB,EAAM1iB,OAAS,IACfyF,EAAMkc,aAAegB,GAKjCld,EAAMqb,QAAUrb,EAAMuR,OAK1B,SAAS+L,SAAS7B,EAAIxf,EAAQ+d,GAG1B,GAAwB,UAApBvJ,WAAWI,KACX,MAAO,GAGX,IAAI0M,EAAO,GAgKX,MA9JqC,qBAA1BthB,EAAO,iBACdshB,GAAQ,wRAQevD,EAASzqB,WAAa,qDAKd,qBAAxB0M,EAAO,cACdshB,GAAQ,mMAKevD,EAASzqB,WAAa,qEAI7CguB,GAAQ,qMAKevD,EAASzqB,WAAa,sEAIL,qBAA5B0M,EAAO,mBACnBshB,GAAQ,uMAKevD,EAASzqB,WAAa,yEAI7CguB,GAAQ,yMAKevD,EAASzqB,WAAa,0EAKb,qBAAzB0M,EAAO,gBACdshB,GAAQ,4MAMevD,EAASzqB,WAAa,kBACtBkC,QAAQ0J,OAAO,IAAM,+BAIZ,qBAAzBc,EAAO,eACdshB,GAAQ,4MAKevD,EAASzqB,WAAa,sEAI7CguB,GAAQ,yMAKevD,EAASzqB,WAAa,uEAIT,qBAAxB0M,EAAO,cACnBshB,GAAQ,0MAKevD,EAASzqB,WAAa,qEAI7CguB,GAAQ,uMAKevD,EAASzqB,WAAa,sEAIP,qBAA1B0M,EAAO,gBACnBshB,GAAQ,8MAKevD,EAASzqB,WAAa,uEAI7CguB,GAAQ,2MAKevD,EAASzqB,WAAa,wEAIP,qBAA1B0M,EAAO,iBACnBshB,GAAQ,gOAMevD,EAASzqB,WAAa,uEAI7CguB,GAAQ,6NAMevD,EAASzqB,WAAa,wEAKb,qBAAzB0M,EAAO,gBACdshB,GAAQ,2SAQevD,EAASzqB,WAAa,kBACtBkC,QAAQ0J,OAAO,GAAK,+BAIxCoiB,EAGX,SAASC,mBAAmB1tB,EAAMkQ,EAAOga,GACrC,GAAwB,UAApBvJ,WAAWI,KACX,MAAO,GAGX,IAAI0M,EAAO,GACPE,EAAUlC,iBAAiBQ,aAAaR,iBAAiBD,QAASxrB,EAAMkQ,EAAMsb,QAAS,IAC3F,GAAImC,EAAQljB,OAAS,EAEjB,IADA,IAAImjB,EAAK,EAAGC,EAAOF,EAAQljB,OACpBmjB,EAAKC,GACmB,oBAAhBF,EAAQC,GACfH,GAAQE,EAAQC,GAAInC,iBAAiBE,GAAIzb,EAAMnN,IAAIqE,QAAQ,kBAAmB8iB,EAASzqB,YAAY2H,QAAQ,mBAAoB8I,EAAMnN,IAErI0qB,GAAQE,EAAQC,GAAIxmB,QAAQ,kBAAmB8iB,EAASzqB,YAAY2H,QAAQ,mBAAoB8I,EAAMnN,IAE1G6qB,IAGR,OAAOH,EAGX,SAASK,WAAWjE,EAAO9f,GACvB,IAAIgkB,EAAM3pB,SAASof,eAAe,cAC9BwK,EAAc3zB,KAAKG,MAAM,IAAM4vB,aAAalpB,EAAE6sB,GAAK9b,UAGnDiY,EAA2F,GAAhF7vB,KAAKgpB,MAAOniB,EAAE6sB,GAAK9b,QAAU+b,EAAc,IAAMjkB,EAAKogB,aAAe,EAAK,IACzFvoB,QAAQsoB,SAAWA,EACnBtoB,QAAQuoB,aAAepgB,EAAKogB,aAa5B,IAXA,IA4DoC1I,EAAQ+J,EAASptB,EA5DjDkD,EAAO,GACP2sB,EAAU,sEACVC,EAAWV,SAAS/B,iBAAiBE,GAAI5hB,EAAKoC,OAAQ+d,GAGtDiE,EAAO1D,qBAAqBZ,GAC5B5d,EAAI,EAAGiW,EAAMiM,EAAK1jB,OAGhB2jB,EAAyD,WAArC7O,6EAAkBpN,eACtCkc,EAAwBD,EAAoBtqB,kEAAmC,EAC9EmI,EAAIiW,GAAK,CACZ,IAAIoJ,EAAO6C,EAAKliB,KAIZqiB,EAAS3sB,QAAQuF,QAAQ,QAAUokB,GACvC2C,GAAW,0BAA4BK,EAAS,kCAAoCA,EAAS,SAAWzE,EAAMyB,GAAMiD,KAAO,IAAM1E,EAAMyB,GAAMtpB,MAAQ,uBACrJV,GAAQ,iFAAmFgtB,EAAS,oBAAsBzE,EAAMyB,GAAMiD,KAAO,IAAM1E,EAAMyB,GAAMtpB,MAAQ,gEAE9I,OAArB6nB,EAAMyB,GAAMkD,OACZltB,GAAQuoB,EAAMyB,GAAMkD,MAKxB,IAAIC,EAAQ,GACRC,EAAQ,kCAAoCR,EAChDA,EAAW,GAKX,IAFA,IAAIS,EAAMlE,qBAAqBZ,EAAMyB,GAAMsD,UACvCC,EAAK,EAAGC,EAAOH,EAAIlkB,OAChBokB,EAAKC,GAAM,CACd,IAAIvD,EAAUoD,EAAIE,KAGdE,EAAYptB,QAAQuF,QAAQ,QAAUokB,EAAO,YAAcC,GAC/D0C,GAAW,uBAAyBc,EAAY,kCAAoCA,EAAY,SAAWlF,EAAMyB,GAAMsD,SAASrD,GAASvpB,MAAQ,YACjJysB,GAAS,+DAAiEM,EAAY,aAAeA,EAAY,oDAAsDlF,EAAMyB,GAAMsD,SAASrD,GAASvpB,MAAQ,QAElK,OAAvC6nB,EAAMyB,GAAMsD,SAASrD,GAASiD,OAC9BC,GAAS,+EAAiF5E,EAAMyB,GAAMsD,SAASrD,GAASiD,KAAO,UAGnI,IAAIf,EAAO,kCACPuB,EAAQ,GAKZnF,EAAMyB,GAAMsD,SAASrD,GAASpf,OAAO4e,KAAKR,cAE1C,IADA,IAAI0E,EAAK,EAAGC,EAAOrF,EAAMyB,GAAMsD,SAASrD,GAASpf,OAAO1B,OACjDwkB,EAAKC,GAAM,CAAC,IACXhf,EAAQ2Z,EAAMyB,GAAMsD,SAASrD,GAASpf,OAAO8iB,KAGjDP,GAAShB,mBAAmB,YAAaxd,EAAOga,GAChDuD,GAAQC,mBAAmB,QAASxd,EAAOga,GAqBnB,UAApBvJ,WAAWI,OACXiO,GAAS,gDAGb,IAAMG,EAAc1D,iBAAiBuB,cAAc9c,EAAMsb,QAAS5pB,QAAQyoB,cACpEgE,EAENW,GAAS,2DAA6DhB,EAAYvuB,WAAa,OAASgsB,iBAAiBoB,YAAY3c,EAAMsb,SAAW,4CAA8C7pB,QAAQuF,QAAQgJ,EAAMnN,IAAM,mBAAqBmN,EAAMnN,GAAK,oCAEzOosB,EAAY1vB,WAAa,gCACbgsB,iBAAiBqB,kBAAkB5c,EAAMsb,SAAW,cACpE7pB,QAAQuF,QAAQtF,QAAQ8G,SAAW,IAAMwH,EAAMnN,IAAM,kBACjD0oB,iBAAiBQ,aAAaR,iBAAiBD,QAAS,SAAUtb,EAAMsb,QAAS,IAAM,0BAC/EC,iBAAiBwB,qBAAqB/c,EAAMsb,SAAU,GAAK,KACrF4C,EAAoB,iCAAmC,KAjCpC3M,EAkCLvR,EAAMuR,OAlCO+J,EAkCCtb,EAAMsb,QAlCEptB,EAkCO8R,EAAM9R,MAhCjC,qBADTqtB,iBAAiBQ,aAAaR,iBAAiBD,QAAS,YAAaA,OAAS9sB,GAE3E,qBAAuB+iB,EAAS,IAAM+J,EAAU,IAAMptB,EAAQ,IAE9D,IAIf,SAAwBqjB,EAAQ+J,EAASptB,GAErC,MAAiB,qBADTqtB,iBAAiBQ,aAAaR,iBAAiBD,QAAS,YAAaA,OAAS9sB,GAE3E,qBAAuB+iB,EAAS,IAAM+J,EAAU,IAAMptB,EAAQ,IAE9D,GAqBXgxB,CAAelf,EAAMuR,OAAQvR,EAAMsb,QAAStb,EAAM9R,OAClD,mCAEoB,UAApBuiB,WAAWI,OACXiO,GAAS,UAKjBP,IADAhB,GAAQ,UACQuB,EAAQ,SAI5Bf,GAAW,aACX3sB,IAFAotB,GAAS,UAEOD,EAAQ,qCAG5B,IAAMY,EAA4C,aAArBtlB,EAAKulB,YAElCrB,GAAW,sLACXA,GAAW,wJACXA,GAAW,8DACe,IAAtBlkB,EAAKogB,aAAsB,SAAWpgB,EAAKogB,aAAa1qB,WAAa,YAAc,8BACvDsK,EAAKwlB,iBAAiBC,iBAAmB,wBACvEzlB,EAAKrB,SAASjJ,WAAa,8BAC3BsK,EAAK0lB,aAAaD,iBAAmB,oBACpCH,EAAuB,GAAK,KAC7B,mCACAtlB,EAAK2lB,aAAaF,iBAAmB,oBAElCH,IACDpB,GAAW,sUAIfA,GAAW,gDAAkDlkB,EAAKggB,QAAQtqB,WAAa,WAEvFwuB,GAAW,QAEXA,GAAW,8CAGXA,GAAW,QACXF,EAAItK,UAAYniB,EAChB8C,SAASof,eAAe,WAAWC,UAAYwK,GAElB,IAAzBtN,WAAWS,WACXjB,WAAWvd,SAASwC,+DAA6B,CAC7CoH,MAAOmU,WAAWU,gBAClB5U,OAAQkU,WAAWW,oBAIH,UAApBX,WAAWI,KACX4O,YAEAC,eAIR,SAASC,oBAAoB9lB,GACzBnI,QAAQioB,MAAQ,GAChBjoB,QAAQkoB,cAAgB,GAExB,IAEOgG,EAFHjG,EAAQjoB,QAAQioB,MAChB1d,EAASpC,EAAKoC,OAGlB,IAAK,IAAIwZ,KAAKxZ,EACV,GAAKA,EAAO0e,eAAelF,GAA3B,CAIA,IAAIzV,EAAQ/D,EAAOwZ,GACnBuH,gBAAgBhd,GAIQ,qBAAb2Z,EAHXzE,EAAIlV,EAAMob,MAINzB,EAAMzE,GAAK,CACPgH,aAAclc,EAAMkc,aACpB5B,SAAUta,EAAMsa,SAChBoE,SAAU,GACV5sB,MAAOypB,iBAAiBU,UAAUjc,GAClCqe,KAAM9C,iBAAiBa,SAASpc,GAChCse,KAAM/C,iBAAiBc,SAASrc,GAChCtM,OAAQ6nB,iBAAiBe,WAAWtc,GAAStO,QAAQyoB,eAGlB,qBAA3BR,EAAMzE,GAAGgH,eACjBvC,EAAMzE,GAAGgH,aAAelc,EAAMkc,cAG9Blc,EAAMsa,SAAWX,EAAMzE,GAAGoF,WAC1BX,EAAMzE,GAAGoF,SAAWta,EAAMsa,WAIlCsF,EAA+C,qBAA3BjG,EAAMzE,GAAGgH,aAAiCvC,EAAMzE,GAAGgH,aAAehH,EAGtC,qBAArCyE,EAAMzE,GAAGwJ,SAAS1e,EAAMqb,SAC/B1B,EAAMzE,GAAGwJ,SAAS1e,EAAMqb,SAAW,CAC/Bf,SAAUta,EAAMsa,SAChBre,OAAQ,GACRnK,MAAO,KACPwsB,KAAM/C,iBAAiBiB,YAAYoD,EAAU5f,EAAMqb,SACnD3nB,OAAQ6nB,iBAAiBkB,cAAcmD,EAAU5f,EAAMqb,QAAS1B,EAAMzE,GAAGxhB,SAGzEsM,EAAMsa,SAAWX,EAAMzE,GAAGwJ,SAAS1e,EAAMqb,SAASf,WAClDX,EAAMzE,GAAGwJ,SAAS1e,EAAMqb,SAASf,SAAWta,EAAMsa,UAK1DX,EAAMzE,GAAGwJ,SAAS1e,EAAMqb,SAASpf,OAAO2e,KAAK5a,GAKjD,IAAK,IAAIkV,KAAKyE,EACV,GAAKA,EAAMgB,eAAezF,GAI1B,IAAK,IAAIje,KAAK0iB,EAAMzE,GAAGwJ,SACd/E,EAAMzE,GAAGwJ,SAAS/D,eAAe1jB,KAKE,qBAA7BvF,QAAQkoB,cAAc3iB,GAC7B0iB,EAAMzE,GAAGwJ,SAASznB,GAAGnF,MAAQmF,EAAI,KAAOvF,QAAQkoB,cAAc3iB,GAAK,KAEnE2oB,EAA+C,qBAA3BjG,EAAMzE,GAAGgH,aAAiCvC,EAAMzE,GAAGgH,aAAehH,EACtFyE,EAAMzE,GAAGwJ,SAASznB,GAAGnF,MAAQypB,iBAAiBgB,aAAaqD,EAAU3oB,KAKjF2mB,WAAWjE,EAAO9f,GA1kBtB9I,OAAOwqB,iBAAmBA,iBA+kBnB,IAAMsE,aAAe,SAACC,EAAShe,EAASie,GAAnB,OAAgCD,EACvDE,OAAM,SAAChsB,GACJ3E,QAAQoN,KAAK,QAASzI,GACtBisB,MAAM,oCAAD,OAAqCne,OAE7Coe,MAAK,WACFH,QAIR,SAASI,cAAcJ,GACnBF,aACE,kEAA6BK,MAAK,SAACE,GAC/BrvB,OAAOqvB,UAAYA,KAEvB,qBACAL,GAIN,SAASM,mBAAmBN,GACxBF,aACES,QAAQC,IAAI,CACV,sEAA0BL,MAAK,kBAC7B,yEAEF,yEAEF,kBACAH,GAIN,SAASS,oBAAoBT,GACzBF,aACES,QAAQC,IAAI,CACV,sEAA2BL,MAAK,YAA0B,IAAdO,EAAa,EAAtBC,QAC/B3vB,OAAO4vB,OAASF,KAEpB,wEAEF,mBACAV,GAIN,SAASa,aAAab,GAClBF,aAAa,sEAAqB,YAAaE,GAGnD,SAASc,SAASd,GACdF,aACE,sEAAeK,MAAK,YAAwB,IAAZY,EAAW,EAApBJ,QACnB3vB,OAAO+vB,KAAOA,KAElB,OACAf,GAgBN,SAASgB,oBACL,IAAIC,EAAS,8CACTT,EAAM,4HACNU,EAAS,83BAEbd,eAAc,eA0tBdlQ,WAAWvd,SAASiD,uDAAqBqH,QAAQ,CAC7C+iB,SAvtBa,SAAClmB,GAGd,GAFAnI,QAAQwvB,eAAiB,GAEZ,OAATrnB,EAAJ,CAqKA,IAAI/P,EAAGynB,EAAQ9X,EACX0nB,EAAe,EACfC,EAAY,EACZC,EAAW,GACXC,EAAgB,GACpB,IAAKx3B,KAAK+P,EAAKP,OACX,GAAKO,EAAKP,OAAOqhB,eAAe7wB,GAAhC,CAKAynB,GADA9X,EAAQI,EAAKP,OAAOxP,IACLynB,OAGf,IAAIvR,EAAQtO,QAAQmI,KAAKoC,OAAOxC,EAAMuG,OACjB,qBAAVA,IACPA,EAAQtO,QAAQmI,KAAK0nB,eAAe9nB,EAAMuG,QAIzB,qBAAVA,GACP3Q,QAAQC,IAAI,kBAAoBxF,EAAI,uBAAyB2P,EAAMuG,MAAQ,kEAC3EA,EAAQ,CAAEsa,SAAU,UAEO,qBAAfta,EAAMob,MAAiD,qBAAlBpb,EAAMqb,UAGvD9J,EAASvR,EAAMob,KAAO,MAAQpb,EAAMqb,SAGR,qBAArBgG,EAAS9P,KAChB8P,EAAS9P,GAAU,CACfvC,KAAMuC,EACNiQ,IAAK,GACLlH,SAAUta,EAAMsa,UAGpBgH,EAAc1G,KAAKyG,EAAS9P,KAG5BvR,EAAMsa,SAAW+G,EAAS9P,GAAQ+I,WAClC+G,EAAS9P,GAAQ+I,SAAWta,EAAMsa,UAGtC+G,EAAS9P,GAAQiQ,IAAIC,QAAQhoB,GAiBjC,IAbA,IAAIioB,EAAkBJ,EAAczG,MAAK,SAAUzF,EAAGC,GAClD,OAAID,EAAEkF,SAAWjF,EAAEiF,UACP,EAERlF,EAAEkF,SAAWjF,EAAEiF,SACR,EAEJnF,mBAAmBC,EAAEpG,KAAMqG,EAAErG,SAGpCjT,EAAI,EACJ4lB,EAAK,EACL3P,EAAM0P,EAAgBnnB,OACnByX,KAAO,CACVT,EAASmQ,EAAgB3lB,KAAKiT,KAC9B,IAAI4S,GAAsB,EAWf,IAAPD,IACApB,GAAO,8BAQXA,GAAO,gGAAkGoB,EAAGpyB,WAAa,4IAA8IoyB,EAAGpyB,WAAa,oDAAiEoyB,EAAGpyB,WAAa,KAAOgiB,EAAOhiB,WAAa,qCAAuCoyB,EAAGpyB,WAAa,yFAAsGoyB,EAAGpyB,WAAa,oBAAsBoyB,EAAGpyB,WAAa,gDAAkDoyB,EAAGpyB,WAAa,KAExpBmC,QAAQwvB,eAAeS,GAAMN,EAAS9P,GAEtCoQ,IAIA,IAFA,IAAIH,EAAMH,EAAS9P,GAAQiQ,IACvB/L,EAAI+L,EAAIjnB,OACLkb,KAEkB,aADrBhc,EAAQ+nB,EAAI/L,IACF1C,QAAyC,aAAjBtZ,EAAMsZ,SAC/B6O,IACDA,GAAsB,EACtBZ,GAAU,+CAAiDzP,EAAS,mBAExE4P,IACAH,GAAUa,EAAcpoB,GAAO,IAGnC2nB,IAGRJ,GAAU,WACNU,EAAgBnnB,OAAS,IACzBgmB,GAAO,sBAEXA,GAAO,SAKHS,GAHCG,EAGSF,EAFA,uLAQVV,GAHCa,EAGMH,EAFA,iDAKX/sB,SAASof,eAAe,iBAAiBC,UAAYyN,EACrD9sB,SAASof,eAAe,cAAcC,UAAYgN,EAClDuB,4BAEIJ,EAAgBnnB,OAAS,GACzBwnB,EAAkB,GAItB,IAAIC,EAAahxB,EAAE,yBACnBgxB,EAAW5mB,GAAG,oBAAoB,SAAUua,GACxC,IAAIsM,EAASjxB,EAAE2kB,EAAEsM,QAEjBF,EADS/wB,EAAEixB,GAAQpoB,KAAK,gBAG5BmoB,EAAW5mB,GAAG,sBAAsB,SAAUua,GAC1C,IAAIsM,EAASjxB,EAAE2kB,EAAEsM,QACbpvB,EAAK7B,EAAEixB,GAAQpoB,KAAK,YACxB7I,EAAE,cAAgB6B,EAAGtD,YAAY6B,KAAK,OAG1C8C,SAASof,eAAe,cAAcC,UAAY,0DAElD8M,oBAAmB,WACfrvB,EAAE,qBAAqBkxB,eAAe,CAClClM,IAAI,GAAD,OAAK0C,uDAAL,yBACHE,OAAO,EACPuJ,YAAY,EACZC,SAAU,GACVC,sBAAsB,EACtBC,QAAQ,EACRC,cAAe,IACfC,YAAa,OACbC,aAAa,EACbC,YAAY,EACZC,eAAgB,MAChBC,cAAe,CACXC,SAAU,qBAEdC,WAAY,SAAUC,GAGlB,OAFAC,8BAA8BD,EAAI/iB,MAAkB,IAAX+iB,EAAIE,KAAaF,EAAIhQ,QAC9D/hB,EAAE,gBAAgB8mB,MAAM,SACjB,GAEXoL,SAAU,SAAUH,GAChB,OAAQA,EAAIhQ,QACR,IAAK,WACD,MAAO,CAAEoQ,QAAS,UAEtB,IAAK,UACD,MAAO,CAAEA,QAAS,WAEtB,IAAK,YACD,MAAO,CAAEA,QAAS,QAEtB,IAAK,QACD,MAAO,CAAEA,QAAS,WAG1B,MAAO,IAEXC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,UAAU,EACVC,YAAY,EACZC,QAAS,CACL,CACIC,MAAO,OACP7xB,MAAO,aACP8xB,OAAQ,SACRC,aAAc,wCACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOC,EAAgBl3B,EAAO,MAElCm3B,MAAO,SACPC,YAAY,EACZV,UAAU,GAEd,CACIG,MAAO,WACP7xB,MAAO,OACP8xB,OAAQ,SACRC,aAAc,qCACdI,MAAO,SACPE,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,YACP7xB,MAAO,YACP+xB,aAAc,oCACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOK,EAAct3B,IAEzBm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,WACP7xB,MAAO,WACP+xB,aAAc,gDACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOK,EAAct3B,IAEzBm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,iBACP7xB,MAAO,iBACP+xB,aAAc,uDACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOK,EAAct3B,IAEzBm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,QACP7xB,MAAO,QACP+xB,aAAc,qCACdI,MAAO,SACPL,OAAQ,SACRM,YAAY,EACZV,UAAU,GAEd,CACIG,MAAO,SACP7xB,MAAO,SACP+xB,aAAc,mDACdI,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,OACP7xB,MAAO,QACP+xB,aAAc,2CACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOj3B,EAAMyC,WAAW2H,QAAQ,KAAM,MAE1C+sB,MAAO,SACPL,OAAQ,SACRM,YAAY,EACZV,UAAU,GAEd,CACIG,MAAO,eACP7xB,MAAO,iBACP+xB,aAAc,oDACdI,MAAO,QACPL,OAAQ,SACRJ,UAAU,GAEd,CACIG,MAAO,mBACP7xB,MAAO,qBACP+xB,aAAc,iDACdI,MAAO,QACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,YACP7xB,MAAO,YACP+xB,aAAc,iDACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAmB,OAAVj3B,EAAkB3C,KAAKgpB,MAAc,IAARrmB,GAAe,IAAM,OAAOyC,YAEtE00B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,QACP7xB,MAAO,QACP+xB,aAAc,oDACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAmB,OAAVj3B,EAAkB3C,KAAKgpB,MAAc,IAARrmB,GAAe,IAAM,OAAOyC,YAEtE00B,MAAO,QACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,QACP7xB,MAAO,QACP+xB,aAAc,sCACdI,MAAO,OACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,aACP7xB,MAAO,aACP+xB,aAAc,kDACdI,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,SACP7xB,MAAO,SACP+xB,aAAc,0DACdI,MAAO,SACPL,OAAQ,SACRM,YAAY,EACZV,UAAU,GAEd,CACIG,MAAO,WACP7xB,MAAO,gBACP+xB,aAAc,2EACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOvQ,0EAAc1mB,EAAO,CAAEu3B,gBAAiB,GAAIC,MAAO,IAAK5R,IAAK,aAExEuR,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,qBACP7xB,MAAO,kBACP+xB,aAAc,4DACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOvQ,0EAAc1mB,EAAO,CAAEu3B,gBAAiB,GAAIC,MAAO,IAAK5R,IAAK,aAExEuR,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,YACP7xB,MAAO,YACP+xB,aAAc,8BACdI,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,YACP7xB,MAAO,mBACP+xB,aAAc,oCACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAI7B,OAAc,IAAVj3B,EACO,OAEA,WAGfm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,UACP7xB,MAAO,iBACP+xB,aAAc,yDACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAI7B,OAAc,IAAVj3B,EACO,UAEA,WAGfm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,gBACP7xB,MAAO,gBACP+xB,aAAc,qDACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOK,EAAct3B,IAEzBm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,aACP7xB,MAAO,aACP+xB,aAAc,6DACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOK,EAAct3B,IAEzBm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,OACP7xB,MAAO,SACP+xB,aAAc,8CACdI,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,WACP7xB,MAAO,gBACP+xB,aAAc,4CACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOC,EAAgBl3B,EAAO,MAElCm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,YACP7xB,MAAO,sBACP+xB,aAAc,gCACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAI7B,OAAc,IAAVj3B,EACO,kBAEA,qBAAuBA,EAAMyC,WAAa,KAGzD00B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,QACP7xB,MAAO,eACP+xB,aAAc,qCACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAI7B,OAAOvQ,0EAAc1mB,EAAO,CAAEu3B,gBAAiB,GAAIC,MAAO,IAAK5R,IAAK,aAExEuR,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,wBACP7xB,MAAO,sBACP+xB,aAAc,+DACdC,UAAW,SAAUh3B,EAAOi2B,EAAKgB,GAG7B,OAAOC,EAAgBl3B,EAAO,MAElCm3B,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,OACP7xB,MAAO,cACP+xB,aAAc,mCACdI,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,GAEd,CACIG,MAAO,SACP7xB,MAAO,eACP+xB,aAAc,2CACdI,MAAO,SACPL,OAAQ,SACRO,SAAS,EACTX,UAAU,cA1sBtBtvB,SAASof,eAAe,iBAAiBC,UACvCrf,SAASof,eAAe,cAAcC,UACpCrf,SAASof,eAAe,cAAcC,UACpC,6BAIV,SAAS6Q,EAAcvxB,GACnB,OAAW,IAAPA,EACO,IAGJA,EAAGtD,WAGd,SAASy0B,EAAgBO,EAAWD,GAChC,GAAkB,IAAdC,EACA,MAAO,IAGU,qBAAVD,IACPA,EAAQ,UAGZ,IAAIp1B,EAAI,IAAIujB,KAAiB,IAAZ8R,GASjB,OAAOr1B,EAAEs1B,qBAAuBF,EAAQp1B,EAAEu1B,qBA2B9C,SAAS5C,EAAcpoB,EAAOirB,GAC1B,IAAI1kB,EAAQtO,QAAQmI,KAAKoC,OAAOxC,EAAMuG,OACtC,GAAuB,qBAAXA,GAEe,qBADvBA,EAAQtO,QAAQmI,KAAK0nB,eAAe9nB,EAAMuG,QAMtC,OADA3Q,QAAQC,IAAI,qBAAuBmK,EAAMuG,MAAQ,4CAC1C,GAIf,IAAI2kB,EAAmC,qBAAflrB,EAAMgD,MAA8C,qBAAfhD,EAAMmrB,KAC/DC,EAAS,UAAMnM,uDAAN,mCAA8Cjf,EAAMuG,MAApD,kBAAmEvG,EAAMuV,KAAzE,iBAET8V,EAAiB,4BAA8BrrB,EAAMsrB,UAAY,iNAC8HtrB,EAAMuG,MAAQ,MAAoC,IAA3BvG,EAAMurB,mBAA4B,MAASvrB,EAAMsZ,OAAS,wQACrG8R,EAAY,oRAC0CA,EAAY,wDAE7OzzB,EAAO,sGAAwGqI,EAAMuG,MAAQ,mCAAqC6kB,EAAY,sFAAwFprB,EAAM6kB,KAAO,UAAYwG,EAAiB,kCAExR,qBAAfrrB,EAAMgD,KAAyB,kJAAoJhD,EAAMgD,KAAO,oBAAuB,KACxM,qBAAfhD,EAAMmrB,KAAyB,oJAAsJnrB,EAAMmrB,KAAO,oBAAuB,IAEtO,IAAa,IAATF,EAAe,CACf,IAAIx2B,EAAQ8R,EAAM9R,MACJ,MAAVA,IACAA,EAAQ,SAGZkD,IAAwC,qBAAvBqI,EAAMwrB,aAAiC,uEAxDhE,SAA8BxrB,EAAOuG,GACjC,IAAIgD,EAAa,kBAgBjB,OAdIhD,EAAMgD,WAAWzI,OAAS,IAC1ByI,EAAa,kCAGsB,qBAA5BvJ,EAAMyrB,oBAITliB,EAHIvJ,EAAMyrB,kBAAkBhuB,QAAQ,KAAM,KACpC2D,MAAM,KACVN,OAAS,EACE,kCAAoCd,EAAMyrB,kBAAoB,WAE9D,oCAAsCzrB,EAAMyrB,kBAAoB,YAI9E,SAAWzrB,EAAM0rB,cAAgB,WACpCniB,EAAa,oBAAsBvJ,EAAMuG,MAAQ,2BAC3BwT,0EAAc/Z,EAAMwrB,aAAexrB,EAAM2rB,cAAe,CAAEd,MAAO,WAAc,2BAA6B9Q,0EAAc/Z,EAAM2rB,cAAe,CAAEd,MAAO,WAAc,WAC1L7qB,EAAM4rB,eAAmB,wBAA0B5rB,EAAM4rB,eAAenuB,QAAQ,KAAM,WAAa,UAAa,IAClH,IAmCiIouB,CAAqB7rB,EAAOuG,GAAS,aAAgB,KAC1J,qBAAfvG,EAAM8rB,KAAyB,0GAA4G9rB,EAAM8rB,KAAO,oBAAuB,KACtK,OAAhBvlB,EAAMwlB,MAAmB,mFAAqFxlB,EAAMwlB,MAAQ,IAAMt3B,EAAQ,oBAAuB,KACnJ,OAAd8R,EAAMylB,IAAiB,iFAAmFzlB,EAAMylB,IAAM,IAAMv3B,EAAQ,oBAAuB,IAGjKuL,EAAMisB,kBAAoB,IAC1Bt0B,GAAQ,4EAA8EoiB,0EAAc/Z,EAAMisB,mBAAqB,cAG/HjsB,EAAMksB,kBAAoB,IAC1Bv0B,GAAQ,6EAA+EoiB,0EAAc/Z,EAAMksB,mBAAqB,cAGpI,IAAIp0B,EAAQ,GAwCZ,OAvCKkI,EAAMmsB,kBAAoB,GAAKnsB,EAAMosB,oBAAsB,IAAiC,IAA3BpsB,EAAMqsB,kBAA0BrsB,EAAMssB,mBAAqB,IACzHtsB,EAAMmsB,oBAAsBnsB,EAAMosB,oBAClCt0B,GAAS,0BAA4BiiB,0EAAc/Z,EAAMmsB,kBAAmB,CACxEtB,MAAO,SACPD,gBAAiB,MAGrB9yB,EAAQ,0BACJkI,EAAMmsB,kBAAoB,IAC1Br0B,GAAS,iCAAmCiiB,0EAAc/Z,EAAMmsB,kBAAmB,CAC/EtB,MAAO,SACPD,gBAAiB,KAChB,aAEL5qB,EAAMosB,oBAAsB,IAC5Bt0B,GAAS,+BAAiCiiB,0EAAc/Z,EAAMosB,oBAAqB,CAC/EvB,MAAO,SACPD,gBAAiB,KAChB,cAGkB,IAA3B5qB,EAAMqsB,mBACNv0B,GAAS,iCAAmCkI,EAAMqsB,iBAAiBv2B,WAAa,UAChFgC,GAAS,gCAAkCiiB,0EAAc/Z,EAAMssB,mBAAoB,CAC/EzB,MAAO,SACPD,gBAAiB,KAChB,WAET9yB,GAAS,YAGbH,GAAQ,yEAA2EoiB,0EAAc/Z,EAAMwgB,aAAc,CAC/GqK,MAAO,SACPD,gBAAiB,KAChB,eACa,IAAdM,EAAuB,sGAAwGlrB,EAAMusB,KAAO,UAAYz0B,EAAQ,aAAgB,IAClL,6HAA+HkI,EAAMwsB,OAAS,sCAMtJ,SAASlE,EAAkBlvB,GAIvB,IAHA,IAAIzB,EAAO,wBACPmgB,EAAS7f,QAAQwvB,eAAeruB,GAChCmf,EAAMT,EAAOiQ,IAAIjnB,OACdyX,KAAO,CAEV5gB,GAAQywB,EADItQ,EAAOiQ,IAAIxP,IACM,GAEjC5gB,GAAQ,WAERJ,EAAE,cAAgB6B,EAAGtD,YAAY6B,KAAKA,GACtC0wB,8BAojBJpJ,wEAIR,SAASwN,mCAAmCrsB,GACxC,GAAa,OAATA,EAAe,CACfnI,QAAQ8G,SAAWqB,EAAKrB,SACxB9G,QAAQmI,KAAOA,EACfnI,QAAQmoB,QAAUhgB,EAAKggB,QACvBnoB,QAAQooB,gBAAkBjgB,EAAKigB,gBAC/BpoB,QAAQy0B,SAAWtsB,EAAKssB,SACxB5K,iBAAiBE,GAAK5hB,EAAK4hB,GAED,qBAAf5hB,EAAKkgB,QACZroB,QAAQqoB,MAAQlgB,EAAKkgB,OAIzB7lB,SAASof,eAAe,kBAAkBC,UAAY7hB,QAAQmoB,QAG9D3lB,SAASpC,MAAQJ,QAAQ8G,SAAW,qBAGpCqB,EAAK0nB,eAAiB,GACtB,IACIz3B,EADAmS,EAASpC,EAAKoC,OAElB,IAAKnS,KAAKmS,EACN,GAAKA,EAAO0e,eAAe7wB,GAA3B,CAIA,IAAIkW,EAAQ/D,EAAOnS,GACnB+P,EAAK0nB,eAAevhB,EAAMgP,MAAQhP,EAItC2f,oBAAoB9lB,IAhxB5B9I,OAAOq1B,cAAgB,SAAAC,GACnBjG,UAAUkG,UAAUD,IAGxBt1B,OAAOw1B,wBAA0B,SAAAvQ,GAC7BoK,UAAUkG,UAAU,eAAiBtQ,EAAM,yCAixB/C,IAAIwQ,iBAAmB,CACnBxQ,IAAK,KACLyQ,aAAa,GAKXC,kBAAoBC,6CAAYl5B,sCAAU,kBAC9CuD,EAAEwnB,KAAK,CACHxC,IAAI,GAAD,OAAK0C,uDAAL,qBACHE,OAAO,EACPgO,SAAU,SACV9N,UAAW,CAAEC,iBAAiB,KAEjCI,MAAK,WACF8G,MAAM,4DAIZ,SAAS4G,wBAAwB7Q,EAAK+J,GAClC/uB,EAAEwnB,KAAK,CACHxC,MACA4C,OAAO,EACPgO,SAAU,SACV9N,UAAW,CAAEC,iBAAiB,KAEjCI,MAAK,WACF8G,MAAM,oCAAD,OAAqCjK,OAE7C8Q,QAAO,WACJ91B,EAAE+1B,QAAO,EAAMxL,iBAAkBJ,iBACjC4E,OAIR,SAASiH,gCACLN,oBAAoBxG,MAAK,WAErBzuB,QAAQw1B,cAAcC,YAAYV,iBAAiBxQ,KAAK,SAAUnc,GACjD,OAATA,IACAoW,WAAWvd,SAASsD,+DAA6B,CAAE6D,WACd,IAAjC2sB,iBAAiBC,aAAoD,qBAArB5sB,EAAK4sB,aAAoD,KAArB5sB,EAAK4sB,aAAqD,OAA/B11B,OAAOiiB,oBAEtH6T,wBAAwBnO,uDAAgB7e,EAAK4sB,aAAa,WACtDP,mCAAmCrsB,MAIvCqsB,mCAAmCrsB,UA0BvD,SAASstB,2BAA2BC,GAC5BA,IACAnX,WAAamX,EAEbC,sBAEAb,iBAAiBxQ,IAAM0C,wDAGI,qBAApB1I,kBAAuD,IAApBA,iBAE1C9b,SAASof,eAAe,yBAAyBgU,UAAYd,iBAAiBxQ,IAC9EhlB,EAAE,aAAa8mB,MAAM,SAErBkP,gCAMR,SAASO,WAAWC,GAChBtzB,SAASof,eAAe,mBAAmBC,UAAYiU,EAK3D,SAASC,cAAcC,EAAIC,GACvB,GAAID,GAAMC,EACN,OAAO,EAEP,IAAIC,EAAKF,EAAG7sB,MAAM,KACdgtB,EAAKF,EAAG9sB,MAAM,KAEditB,EAAKzV,SAASuV,EAAG,GAAG5Q,UAAU,EAAG,GAAI,IACrC+Q,EAAK1V,SAASwV,EAAG,GAAG7Q,UAAU,EAAG,GAAI,IACzC,QAAI8Q,EAAKC,KACAD,EAAKC,MAGdD,EAAKzV,SAASuV,EAAG,GAAI,MACrBG,EAAK1V,SAASwV,EAAG,GAAI,QAEZC,EAAKC,IAGdH,EAAKA,EAAG,GAAG/sB,MAAM,KACjBgtB,EAAKA,EAAG,GAAGhtB,MAAM,QAEjBitB,EAAKzV,SAASuV,EAAG,GAAI,MACrBG,EAAK1V,SAASwV,EAAG,GAAI,QAEZC,EAAKC,MAEdD,EAAMF,EAAGrtB,OAAS,EAAK8X,SAASuV,EAAG,GAAI,IAAM,IAC7CG,EAAMF,EAAGttB,OAAS,EAAK8X,SAASwV,EAAG,GAAI,IAAM,QAMrD,SAASG,uBAAuBjI,EAAUkI,GAEtC,IAAIjS,EADJuR,WAAW,gDAIPvR,EADY,WAAZiS,EACM,+DAEA,yEAGVj3B,EAAEwnB,KAAK,CACHxC,IAAKA,EACL2C,OAAO,EACPC,OAAO,IAEVI,MAAK,SAAUnf,GAEZ0tB,WAAW,yCADX1tB,EAAOA,EAAKquB,SAAShxB,QAAQ,sBAAuB,MAEpD6oB,EAASlmB,MAEZsf,MAAK,WACFoO,WAAW,gEACXxH,EAAS,SAIjB,SAASoI,wBAAwBC,EAAOrI,GAIpC,OAHAiI,wBAAuB,SAAUK,GAC7BtI,EAASruB,QAAQmoB,QAASwO,KAC3B32B,QAAQooB,iBACJ,KAkDX,SAASwO,iBACLp0B,SAASof,eAAe,UAAU7f,MAAM80B,QAAU,QAatD,SAAS9I,YACL1uB,OAAOU,QAAQ+2B,WAEX/X,WAAWnU,MAAQ,EACnB2T,WAAWvd,SAASsC,+DAAsB,CAAEsH,MAAOmU,WAAWnU,UAC3B,IAA5BmU,WAAWM,cAClBd,WAAWvd,SAASoC,+DAA0B,CAC1CwH,MAAOmU,WAAWnU,MAClBC,OAAQkU,WAAWlU,UAG3B+rB,iBAKJ,SAASG,gBAAgBzqB,GACrB,OAAOJ,KAAKiZ,UAAU7Y,GAAK,SAAUX,EAAKvQ,GACtC,MAAyB,oBAAVA,EAAwBA,EAAMyC,WAAazC,KAIlE,SAAS47B,YAAYC,KACjB,OAAO/qB,KAAKC,MAAM8qB,KAAK,SAAUtrB,IAAKvQ,OAClC,MAAoB,iBAATA,MACAA,MAEsB,YAAzBA,MAAMkqB,UAAU,EAAG,GAAoB4R,KAAK,IAAM97B,MAAQ,KAAOA,SAxMjFiE,OAAO83B,mBAAqB,WAMxB,OAJAp3B,QAAQwnB,IAAI6P,SAAU,EACtBr3B,QAAQwnB,IAAI8P,kBAAmB,EAC/BvC,iBAAiBC,aAAc,EAC/BO,iCACO,GAIXj2B,OAAOi4B,gBAAkB,WAMrB,OAJAv3B,QAAQwnB,IAAI6P,SAAU,EACtBr3B,QAAQwnB,IAAI8P,kBAAmB,EAC/BvC,iBAAiBC,aAAc,EAC/BO,iCACO,GAgGXj2B,OAAOk4B,gBAAkB,SAACb,GACtBb,WAAW,kCAEX,IAAI7U,EAAMD,KAAKC,MAEf,GAAqB,qBAAV0V,IAAmC,IAAVA,EAAgB,CAChD,IAAI1tB,EAAOsZ,iBAAiB,qBAQ5B,GALItZ,EADgB,kBAATA,EACA2X,SAAS3X,GAET,EAGPgY,EAAMhY,EAAO,MAEb,OAIRytB,wBAAwBC,GAAO,SAAUc,EAAMb,GAC3C,IAAIc,GAAO,EAEX,GAAa,OAATD,EACAC,GAAO,EACP5B,WAAW,iMACR,GAAa,OAATc,EACPc,GAAO,EACP5B,WAAW,uMACR,GAAIE,cAAcyB,EAAMb,GAC3Bc,GAAO,EACP5B,WAAW,gTACR,CACH4B,GAAO,EAEP5B,WAAW,mGAAqGc,EAAO,+eAGvHc,GACA/U,iBAAiB,oBAAqB1B,EAAInjB,gBAYtDwB,OAAOq4B,eAAiB,WACpB,IAAIpT,EAAM9hB,SAAS6d,SAASO,OAAO/iB,WAAa2E,SAAS6d,SAASQ,SAAShjB,WAAa2E,SAAS6d,SAASuQ,OAAO/yB,WAAakhB,WAAWkB,UAAY,cAEjJje,EAAyB,GAAhB21B,OAAO31B,OAAc,IAGlC3C,OAAO8mB,KAAK7B,EAAK,GAAI,SAJT,KAI0BzmB,WAAa,WAAamE,EAAOnE,WAAa,gJACpFyB,EAAE,wBAAwB8mB,MAAM,SAoCpC,IAAIwR,gBAAkB,CAClBC,gBAAiB,KACjBC,mBAAoB,sBAEpBC,aAAc,CACV,KAAQ,CACJC,uBAAwB,IACxBC,qBAAsB,IAEtBC,SAAU,SAAU3yB,GAChB,OAAOA,GAGX4yB,kBAAmB,SAAU5yB,GACzB,OAAOA,EAAEsD,QAGboD,WAAY,SAAU1G,GAClB,OAAOA,IAIf,sBAAuB,CACnByyB,uBAAwB,IACxBC,qBAAsB,IAEtBC,SAAU,SAAU3yB,GAChB,OAAO6yB,KAAKhJ,KAAKiJ,QAAQ9yB,EAAG,CAAE+yB,GAAI,aAGtCH,kBAAmB,SAAU5yB,GACzB,OAAOA,EAAEsD,QAGboD,WAAY,SAAU1G,GAClB,OAAO6pB,KAAKmJ,QAAQC,KAAKjzB,GAAI,CAAE+yB,GAAI,aAI3C,eAAgB,CACZN,uBAAwB,IACxBC,qBAAsB,IAEtBC,SAAU,SAAU3yB,GAChB,OAAO6pB,KAAKiJ,QAAQ9yB,EAAG,CAAE+yB,GAAI,YAGjCH,kBAAmB,SAAU5yB,GACzB,OAAOA,EAAEsD,QAGboD,WAAY,SAAU1G,GAClB,OAAO6pB,KAAKmJ,QAAQhzB,EAAG,CAAE+yB,GAAI,aAIrC,iBAAkB,CACdN,uBAAwB,IACxBC,qBAAsB,IAEtBC,SAAU,SAAU3yB,GAChB,OAAOkzB,SAASC,gBAAgBnzB,IAGpC4yB,kBAAmB,SAAU5yB,GACzB,OAAkB,EAAXA,EAAEsD,QAGboD,WAAY,SAAU1G,GAClB,OAAOkzB,SAASE,oBAAoBpzB,KAI5C,kBAAmB,CACfyyB,uBAAwB,IACxBC,qBAAsB,IAEtBC,SAAU,SAAU3yB,GAChB,OAAOkzB,SAASG,iBAAiBrzB,IAGrC4yB,kBAAmB,SAAU5yB,GACzB,OAAOA,EAAEsD,QAGboD,WAAY,SAAU1G,GAClB,OAAOkzB,SAASI,qBAAqBtzB,KAI7C,eAAgB,CACZyyB,uBAAwB,IACxBC,qBAAsB,IAEtBC,SAAU,SAAU3yB,GAChB,OAAOkzB,SAASK,8BAA8BvzB,IAGlD4yB,kBAAmB,SAAU5yB,GACzB,OAAOA,EAAEsD,QAGboD,WAAY,SAAU1G,GAClB,OAAOkzB,SAASM,kCAAkCxzB,OASlE,SAASyzB,qBAAqBpQ,EAAUkN,GACpCtzB,SAASof,eAAe,sBAAsB1jB,UAAY,eAAiB0qB,EAC3EpmB,SAASof,eAAe,sBAAsBC,UAAYiU,EAG9D,IAAImD,gBAAkB,KA0FtB,SAASC,0BAA0BC,GAC/B,IAAIhV,EAAWpkB,QAAQwnB,IAAI6R,OAAOD,EAAK7b,MACnC+b,EAAK,IAAIC,WACbD,EAAGE,OAAS,SAAUj3B,GAClBE,SAASof,eAAe,wBAAwBC,UAAYsC,EAC5D,IAAI6D,EAAS,KACb,IACIA,EAASjoB,QAAQwnB,IAAIC,YAAY,WAAYtb,KAAKC,MAAM7J,EAAEiuB,OAAOvI,QAAS,qCAG1E,IAAIwR,EAAa,IAAIzY,KAAKiH,EAAOyR,UAC7BC,EAAc,IAAI3Y,KAAKiH,EAAO2R,WAEF,qBAArB3R,EAAO4R,YACd5R,EAAO4R,UAAY,WAGa,qBAAzB5R,EAAO6R,gBACd7R,EAAO6R,cAAgB,GAGO,qBAAvB7R,EAAO8R,cACd9R,EAAO8R,YAAc,QAGO,qBAArB9R,EAAO+R,YACd/R,EAAO+R,UAAY,GAGvBv3B,SAASof,eAAe,wBAAwBC,UAAY,SAAWsC,EAAW,UAClF3hB,SAASof,eAAe,wBAAwBC,UAAY,MAAQmG,EAAOlhB,SAAW,6BAA+BkhB,EAAOgS,gBAAgBn8B,WAAa,OACzJ2E,SAASof,eAAe,mBAAmBC,UAAYmG,EAAO1D,IAC9D9hB,SAASof,eAAe,sBAAsBC,UAAYmG,EAAOzd,OAAOsjB,aAAahwB,WAAa,YAAcmqB,EAAOzd,OAAOojB,iBAAiB9vB,WAAa,gBAAkBmqB,EAAOiS,YAAYp8B,WAAa,0BAA4BpF,KAAKgpB,MAAMuG,EAAOkS,YAAclS,EAAOiS,aAAap8B,WAAa,gBAC3S2E,SAASof,eAAe,oBAAoBC,UAAY,eAAiBmG,EAAOmS,iBAAiBt8B,WAAa,qBAAuBmqB,EAAO4R,UAAU/7B,WAAa,mCAAsCmqB,EAAO6R,cAAgB,EAAM,MAAQ7R,EAAO6R,cAAch8B,WAAa,cAAiB,IAAIA,WAAa,2BAA6BmqB,EAAO8R,YAAYj8B,WAAa,uBAAyBpF,KAAKgpB,MAAyB,IAAnBuG,EAAO+R,UAAkB,KAAO,MAAQ,KAAKl8B,WAAa,MAC7c2E,SAASof,eAAe,yBAAyBC,UAAY,MAAQhE,iBAAiB2b,GAAc,IAAM1b,iBAAiB0b,GAAc,cAAgB3b,iBAAiB6b,GAAe,IAAM5b,iBAAiB4b,GAAe,OAC/Nl3B,SAASof,eAAe,wBAAwBC,WAAcmG,EAAOoS,SAAYpS,EAAOoS,SAAW,IAAIv8B,WACvGm7B,qBAAqB,UAAW,kDAChC15B,EAAE,uBAAuB+6B,YAAY,YAErCpB,gBAAkBjR,EAEtB,MAAO1lB,GACH3E,QAAQC,IAAI0E,GACZE,SAASof,eAAe,sBAAsB1jB,UAAY,qBAC1DsE,SAASof,eAAe,sBAAsBC,UAAY,6BAC1DviB,EAAE,uBAAuBg7B,SAAS,cAK1CjB,EAAGkB,WAAWpB,GAGlB,SAASqB,6BACLh4B,SAASof,eAAe,wBAAwBC,UAAY,GAC5Drf,SAASof,eAAe,wBAAwBC,UAAY,GAC5Drf,SAASof,eAAe,mBAAmBC,UAAY,GACvDrf,SAASof,eAAe,sBAAsBC,UAAY,GAC1Drf,SAASof,eAAe,oBAAoBC,UAAY,GACxDrf,SAASof,eAAe,yBAAyBC,UAAY,GAC7Drf,SAASof,eAAe,wBAAwBC,UAAY,GAC5DmX,qBAAqB,UAAW,oGAChC15B,EAAE,uBAAuBg7B,SAAS,YAtJtCj7B,OAAOo7B,aAAe,WAGlB,GAFAn7B,EAAE,uBAAuBg7B,SAAS,YAEV,OAApBrB,gBAGA,OAFAuB,kCACAxB,qBAAqB,SAAU,4BAInC7J,UAAS,WACLD,cAAa,WAiBT,GAhBA8J,qBAAqB,OAAQ,uCAC7B15B,EAAE,sBAAsB8mB,MAAM,QAE9BlI,mBAAoB,EACpBC,iBAAkB,EAClBC,cAAgB6a,gBAAgB3Z,OAEhC9c,SAASof,eAAe,cAAcC,UAAY,GAClDrf,SAASof,eAAe,WAAWC,UAAY,GAEX,qBAAzBoX,gBAAgBja,KACvBD,WAAWC,KAAOia,gBAAgBja,KAElCD,WAAWC,KAAO,IAGc,qBAAzBia,gBAAgBrM,KAAsB,CAC7C,IAAIA,EAAOoK,YAAYiC,gBAAgBrM,MACd,qBAAdA,EAAKlD,OACZG,iBAAiBH,KAAOkD,EAAKlD,MAGL,qBAAjBkD,EAAKjD,UACZE,iBAAiBF,QAAUiD,EAAKjD,SAGR,qBAAjBiD,EAAKhD,UACZC,iBAAiBD,QAAUgD,EAAKhD,SAIG,kBAAhCqP,gBAAgBa,cACvBb,gBAAgBa,YAAc,QAGuC,qBAA9DlC,gBAAgBG,aAAakB,gBAAgBa,eACpDvL,MAAM,+BAAiC0K,gBAAgBa,aACvDb,gBAAgBa,YAAc,QAGlCb,gBAAgBhtB,WAAa2rB,gBAAgBG,aAAakB,gBAAgBa,aAAa7tB,WAEvF5M,OAAOU,QAAQ+2B,WACfvY,WAAWvd,SAASqD,+DAAmB,CACnCsD,SAAUsxB,mBAGd55B,OAAOiiB,oBAAsB2X,gBAE7Bla,WAAWnU,MAAQquB,gBAAgBQ,SACnC1a,WAAWlU,OAASouB,gBAAgBU,UAEc,qBAAvCV,gBAAgByB,oBACiB,OAAvCzB,gBAAgByB,oBAChBzB,gBAAgByB,mBAAqB,GACU,qBAAxCzB,gBAAgB0B,qBACiB,OAAxC1B,gBAAgB0B,qBAChB1B,gBAAgB0B,oBAAsB,GAEvC5b,WAAWU,gBAAkBwZ,gBAAgByB,mBAC7C3b,WAAWW,iBAAmBuZ,gBAAgB0B,oBAC9C5b,WAAWS,WAAY,IAEvBT,WAAWU,gBAAkB,EAC7BV,WAAWW,iBAAmB,EAC9BX,WAAWS,WAAY,GAG3BlB,iBAAkB,EAClBve,QAAQwnB,IAAI6P,SAAU,EACtBr3B,QAAQwnB,IAAI8P,kBAAmB,EAC/BmD,6BACA/E,oCAsEZ,IAAImF,oCAAqC,EAEzC,SAASC,gCACsC,IAAvCD,qCACAA,oCAAqC,EACrCt7B,EAAE,4BACDoK,GAAG,4DAA4D,SAAUpH,GACtEA,EAAEf,iBACFe,EAAEO,qBAEL6G,GAAG,QAAQ,SAAUpH,GACdA,EAAEw4B,cAAcC,aAAaC,MAAMnyB,OACnCqwB,0BAA0B52B,EAAEw4B,cAAcC,aAAaC,MAAMC,KAAK,KAElET,6BACAxB,qBAAqB,SAAU,yBAM/C35B,OAAO67B,sBAAwB,WAC3B,IAAIF,EAAQx4B,SAASof,eAAe,2BAA2BoZ,MAC/D,IAAKA,EAAMnyB,OAGP,OAFA2xB,kCACAxB,qBAAqB,SAAU,oBAInCA,qBAAqB,OAAQ,mBAE7BE,0BAA0B8B,EAAMC,KAAK,KAMzC,IAAIE,kBAAmB,EAEvB,SAASC,qBACL7c,WAAWvd,SAASq6B,qEACpBF,kBAAmB,EAGvB,IAAIG,8BAA+B,EAEnC,SAASC,0BACgC,IAAjCD,+BACAA,8BAA+B,EAC/Bh8B,EAAE,sBACDoK,GAAG,gBAAiB0xB,oBACpB1xB,GAAG,gBAAiB8xB,uBACpB9xB,GAAG,kBAAkB,WAClBpK,EAAE,iCAAiCm8B,KAAK,wBAAwBnR,KAAK,WAAY,GACjF9nB,SAASof,eAAe,wBAAwB8Z,YAK5D,SAASC,qBAAqB/S,EAAUkN,GACpCtzB,SAASof,eAAe,sBAAsB1jB,UAAY,eAAiB0qB,EAC3EpmB,SAASof,eAAe,sBAAsBC,UAAYiU,EAG9D,SAAS8F,oCACL,IAAI9pB,EAASrZ,KAAKgpB,MAAMoa,yBAA2BC,qCAC/ClT,EAAW,OACXkN,EAAM,uBAENiG,EAAStjC,KAAKgpB,MAGd,IAFDzhB,QAAQmI,KAAK0lB,aAAe+J,gBAAgBC,gBACzC73B,QAAQmI,KAAKwlB,iBAAmB7b,EAAS8lB,gBAAgBG,aAAaiE,yBAAyB/D,sBAC5F,KAAO,MAAQ,GAEpBgE,EAAQxjC,KAAKgpB,MAGb,IAFDzhB,QAAQmI,KAAK0lB,aAAe+J,gBAAgBC,gBACzC73B,QAAQmI,KAAKwlB,iBAAmB7b,EAAS8lB,gBAAgBG,aAAaiE,yBAAyBhE,wBAC5F,KAAO,MAAQ,GAEpB+D,EAAS,KACTnT,EAAW,UACXkN,EAAM,0BAENiG,EAAS,KACTnT,EAAW,UACXkN,EAAM,+BAENiG,EAAS,MACTnT,EAAW,SACXkN,EAAM,sBAGV6F,qBAAqB/S,EAAU,0BAA4B9W,EAAOjU,WAAa,gDAAkDk+B,EAAS,0BAA4BE,EAAQ,YAAcnG,GAGhM,IAAIkG,wBAA0BpE,gBAAgBE,mBAE9C,SAASoE,2BAA2B5e,GAChC0e,wBAA0B1e,EAC1B9a,SAASof,eAAe,+BAA+BC,UAAYma,wBACnEJ,oCAGJ,IAAIO,mBAAqB,KACrBL,oCAAsC,EACtCD,yBAA2B,EAmS3BO,iBAjSJ,SAASZ,wBACLl8B,EAAE,qCAAqCY,OACvCZ,EAAE,gCAAgCQ,OAClC67B,qBAAqB,OAAQ,2CAC7Br8B,EAAE,uBAAuB+6B,YAAY,YAErCvL,qBAAoB,WAChB,IAAMuN,EAAa9d,WAAWM,WAC9Bgd,0BAA6BS,iEAAmBD,GAChD,IAAIE,EAAW9jC,KAAKgpB,MAAMV,KAAKC,MAAmC,IAA3B6a,0BACjC/1B,EAAmB02B,iEAAuBH,GAE5CI,QAAQ32B,KACR+1B,yBAA2BpjC,KAAKgpB,OAAO3b,EAAiB+E,OAAS/E,EAAiB8E,OAAS,KAC3F2xB,EAAWz2B,EAAiB8E,OAGhC,IAAI8xB,EAAa,IAAI3b,KAAKwb,GACtBI,EAAiBD,EAAWE,cAAgBzkC,+DAAQukC,EAAWG,WAAa,GAAK1kC,+DAAQukC,EAAWI,WAAa,IAAM3kC,+DAAQukC,EAAWK,YAAc5kC,+DAAQukC,EAAWM,cAAgB7kC,+DAAQukC,EAAWO,cAElNz6B,SAASof,eAAe,wBAAwBxmB,MAAQ,WAAa4E,QAAQ8G,SAASjJ,WAAa,IAAM8+B,EAAe9+B,WAAa,IAAMg+B,yBAAyBh+B,WAAa,YACjLq+B,2BAA2BF,yBAE3B,IAAIz/B,EAAMyD,QAAQuoB,aACdzsB,EAAMrD,KAAKgpB,MAAMoa,yBAA2B,KAE5CY,QAAQ32B,KACRhK,EAAMrD,KAAKgpB,MAAMoa,yBAA2B,KAGhD,IAAIqB,EAAOzkC,KAAKgpB,MAAMoa,yBAA2BpjC,KAAKgpB,MAAMniB,EAAEkD,SAASof,eAAe,eAAevR,QAAU,IAE3GvU,EAAM,KACNA,EAAM,IAENA,EAAMS,IACNT,EAAMS,GAEN2gC,EAAO3gC,IACP2gC,EAAO3gC,GAEP2gC,EAAOphC,IACPohC,EAAOphC,GAGgB,OAAvBqgC,oBACAA,mBAAmBgB,UAGvBhB,mBAAqB,IAAIlN,OAAO,gCAAiC,CAC7DmO,MAAO,CAAC7gC,EAAK2gC,EAAMphC,GACnBS,IAAKA,EACLT,IAAKA,EACLuhC,KAAMr9B,QAAQuoB,aACdntB,MAAO8hC,EACPI,MAAQxhC,EAAM,IAAO,cAAgB,SACrCimB,QAAS,SACTqQ,UAAW,SAAUh3B,GACbA,EAAQ,IACRA,EAAQ,GAGRA,EAAQ4E,QAAQmI,KAAKogB,eACrBntB,EAAQ4E,QAAQmI,KAAKogB,cAGzBuT,oCAAsC1gC,EACtCwgC,oCAEA,IAAItjC,EAAU,YAKd,OAJc,IAAV8C,IACA9C,EAAU,YAGP8C,EAAQ9C,EAAU,aAAgB8C,IAAU4E,QAAQmI,KAAKogB,aAAgB,mBAAqB,IAAI1qB,iBAMzHwB,OAAOk+B,aAAe,WAClBpO,UAAS,WACLD,cAAa,WACTiM,kBAAmB,EACnB77B,EAAE,qCAAqCQ,OACvCR,EAAE,gCAAgCY,OAClCZ,EAAE,uBAAuBg7B,SAAS,YAElC,IAAInW,EAAW3hB,SAASof,eAAe,wBAAwBxmB,MAE/DugC,qBAAqB,OAAQ,gCAAkCxX,EAAStmB,WAAa,WAGrF,IAAI+mB,EAAKpiB,SAASof,eAAe,gCAC7B4b,EAAQh7B,SAASof,eAAe,oCAEpC5hB,QAAQmI,KAAK0nB,eAAiB,KAC9B,IAAMwM,EAAa9d,WAAWM,WACxB9Y,EAAeu2B,iEAAmBD,GAEpCoB,EAAW,CACX32B,SAAU9G,QAAQ8G,SAClBwY,OAAQ0H,uDACRgT,gBAAiBh6B,QAAQmI,KAAKggB,QAC9BgS,iBAAkB,EAClBV,SAAU1Y,KAAKC,MAAuB,IAAfjb,EACvB4zB,UAAW5Y,KAAKC,MAChB0Z,mBAAoB3b,WAAWU,gBAC/Bkb,oBAAqB5b,WAAWW,iBAChCwa,YAAgC,IAAnBl6B,QAAQsoB,SACrBoV,gBAAwC,IAAvB19B,QAAQuoB,aACzB0R,YAAa,EACb3V,KAA6B,OAAtBvF,WAAWO,OAAmBP,WAAWO,OAAS9c,SAAS6d,SAASO,OAAO/iB,WAAa2E,SAAS6d,SAASQ,SAAShjB,WAAa2E,SAAS6d,SAASuQ,OAAO/yB,YAAYA,WAC5Ku8B,SAAU53B,SAASof,eAAe,wBAAwBxmB,MAAMyC,WAChEmhB,KAAMD,WAAWC,KACjBzU,OAAQvK,QAAQmI,KAChBykB,KAAMmK,gBAAgB,CAClBrN,KAAMG,iBAAiBH,KACvBC,QAASE,iBAAiBF,QAC1BC,QAASC,iBAAiBD,UAE9BgQ,UAAW,EACXC,cAAe,EACfC,YAAakC,wBACbjC,UAAW,EACX5xB,KAAM,IAGwD,qBAAvDyvB,gBAAgBG,aAAa0F,EAAS3D,eAC7CvL,MAAM,+BAAiCkP,EAAS3D,aAChD2D,EAAS3D,YAAc,QAG3B,IAAI5B,EAAWN,gBAAgBG,aAAa0F,EAAS3D,aAAa5B,SAC9DC,EAAoBP,gBAAgBG,aAAa0F,EAAS3D,aAAa3B,kBAE3E,SAASwF,EAAT,GAA+D,IAA5Bx1B,EAA2B,EAA3BA,KAAMy1B,EAAqB,EAArBA,kBACrC,GAAa,OAATz1B,EACA,OAAO,EAGX,IAAI8uB,EAAM/qB,KAAKiZ,UAAUhd,GAErB01B,EAAO3F,EAASjB,GAEpB,OADAwG,EAASt1B,KAAKy1B,GAAqBC,EAC5B1F,EAAkB0F,GAG7B,IAAM/3B,EAAmB02B,iEAAuBH,GAC5CyB,GAAkB,EACjBh4B,GAOD23B,EAAShE,SAAW3zB,EAAiB8E,MACrC6yB,EAAS9D,UAAY7zB,EAAiB+E,SAPtC0T,WAAWvd,SAASoC,+DAA0B,CAC1CwH,MAAO6yB,EAAShE,SAChB5uB,OAAQ4yB,EAAS9D,aAErBmE,GAAkB,GAOtBL,EAASvD,YAAcuD,EAAS9D,UAAY8D,EAAShE,SACrDgE,EAASxD,YAAcxhC,KAAKgpB,OAAOgc,EAAS9D,UAAY8D,EAAShE,WAAmD,IAAtCqC,sCAC9EH,qBAAqB,OAAQ,4BAA8B8B,EAASxD,YAAYp8B,WAAa,iCAE7F0gB,WAAWvd,SAAS+8B,kEAAwB,CACxCxzB,OAAQkzB,EAASlzB,OACjByzB,WAAYP,EAASxD,eAIzB56B,OAAO4+B,oBAAsB,WACzB3+B,EAAE,sBAAsB8mB,MAAM,QAE9B9mB,EAAEslB,GAAIsZ,IAAI,QAAS,MAAM5T,KAAK,gBAAiB,GAC/CkT,EAAM5H,UAAY,KAElBrX,WAAWvd,SAASq6B,qEACpB9c,WAAWvd,SAAS2N,iEAChBmvB,GAEAvf,WAAWvd,SAASqC,kEAGxB/D,EAAE,uBAAuB+6B,YAAY,aAGzC,IAAI8D,EAAO,EACPvR,EAAO,mBAAqBkP,oCAAoCj+B,YAAuD,IAAxCi+B,oCAA6C,WAAa,aAAaj+B,WAAa,iBAEvKwB,OAAO++B,aAAe,YAAyC,IAAtC9vB,EAAqC,EAArCA,MAAOsvB,EAA8B,EAA9BA,kBAAmBz1B,EAAW,EAAXA,MACtB,IAArBgzB,mBACAQ,qBAAqB,OAAQ,cAC7BsC,uBAEJ,IAAMt0B,EAAQ4U,WAAWM,WACnBwf,EAAcC,gEAAqB30B,GACnC40B,EAAWC,gEAA+B70B,GAC1C80B,EAAeC,gEAA8B/0B,GAE7Cg1B,GAAUJ,EAAWE,GAAgBJ,EAAe,IAC1D/+B,EAAEslB,GAAIsZ,IAAI,QAASS,EAAQ,KAAKrU,KAAK,gBAAiBqU,GACtDnB,EAAM5H,UAAYn9B,KAAKgpB,MAAMkd,GAAO9gC,WAAa,OAASyQ,GAASnG,EAAKhH,IAExEg9B,GAAQR,EAAwB,CAAEx1B,OAAMy1B,sBAExCjC,qBAAsB8C,EAAgB,SAAW,OAAQ,oCAAsChmC,KAAKgpB,MAAa,IAAP0c,EAAa,KAAO,MAAQ,KAAKtgC,WAAa,aAAgB4gC,EAAiBA,EAAa5gC,WAAa,uCAA0C,IAAIA,WAAa+uB,GAE9QvtB,OAAOo+B,SAAWA,EAEdc,EAAWE,IAAiBJ,IAC5BZ,EAAS7D,UAAY2E,EACrBd,EAAS5D,cAAgB4E,EACzBhB,EAAS1D,UAAYoE,EAErBjZ,mBAAmBuY,EAAUtZ,GACzBsa,EAAe,GACflQ,MAAM,GAAD,OAAIkQ,EAAJ,6BAETR,sBACAR,EAAW,cAqE/B,IACIrB,iBAAmBwC,KAAKC,iBAAiBC,kBAAkBC,SAC7D,MAAOz8B,GACL3E,QAAQC,IAAI,sCAAwC0E,EAAEzE,YACtDu+B,iBAAmB,mBAGvB,IAAM4C,UAAY,SAACC,GACf,IAAMt1B,EAAQ4U,WAAWM,WACzB,OAAOqgB,iEAAmBD,EAAnBC,CAA2Bv1B,IAItC,SAASw1B,yBACL,IAAIC,EAAuB,WACvB,IAAIC,EAAc,SAAUJ,GACxB,IAAIK,EAAOhgC,EAAE,IAAM2/B,GAEfK,EAAK3gB,KAAK,aAAeqgB,UAAUC,IAEnCK,EAAKC,gBAAgBP,UAAUC,GAAU,KAAO,QAgCxDI,EAAY,mCACZA,EAAY,6BACZA,EAAY,mBACZA,EAAY,mBAEZA,EAAY,sBACZA,EAAY,wBACZA,EAAY,kBAEZA,EAAY,gBApCG//B,EAAE,IAqCC,yBAnCTigC,gBAAiC,UAAjBzc,aAA2B,KAAO,OAoC3Duc,EAAY,aACZA,EAAY,6BACZA,EAAY,eApCY,SAAUJ,GAC9B,IAAIK,EAAOhgC,EAAE,IAAM2/B,GAEfK,EAAK3gB,KAAK,cAAuC,SAAvBqgB,UAAU,WACpCM,EAAKC,gBAAuC,SAAvBP,UAAU,SAAsB,KAAO,QAGnC,IAAzBM,EAAK3gB,KAAK,YACVrf,EAAE,0BAA0BQ,OAC5BR,EAAE,0BAA0BQ,SAE5BR,EAAE,0BAA0BY,OAC5BZ,EAAE,0BAA0BY,QA0BpCs/B,CAAkB,oBAvBK,SAAUP,GAC7B,IAAIK,EAAOhgC,EAAE,IAAM2/B,GAEfK,EAAK3gB,KAAK,cAA6C,YAA7BqgB,UAAU,iBACpCM,EAAKC,gBAA6C,YAA7BP,UAAU,eAA+B,KAAO,OAoB7ES,CAAiB,cACjBJ,EAAY,oBAE4B,IAApCL,UAAU,sBACV1/B,EAAE,6BAA6BY,OAE/BZ,EAAE,6BAA6BQ,QAIvCs/B,IAGA9/B,EAAE,8BAA8BogC,QAAO,WACnCjhB,UAAU,4BAA6Bnf,EAAElD,MAAMuiB,KAAK,eAExDrf,EAAE,oBAAoBogC,QAAO,WACzBjhB,UAAU,kBAAmBnf,EAAElD,MAAMuiB,KAAK,eAE9Crf,EAAE,oBAAoBogC,QAAO,WACzBjhB,UAAU,kBAAmBnf,EAAElD,MAAMuiB,KAAK,eAE9Crf,EAAE,uBAAuBogC,QAAO,WAC5BjhB,UAAU,qBAAsBnf,EAAElD,MAAMuiB,KAAK,eAEjDrf,EAAE,yBAAyBogC,QAAO,WAC9BjhB,UAAU,uBAAwBnf,EAAElD,MAAMuiB,KAAK,eAEnDrf,EAAE,mBAAmBogC,QAAO,WACxBjhB,UAAU,iBAAkBnf,EAAElD,MAAMuiB,KAAK,YACzC4G,mBAEJjmB,EAAE,oCAAoCogC,QAAO,WACzC3gB,WAAWK,eAAiB9f,EAAElD,MAAMuiB,KAAK,WACzCI,WAAWkC,aAEXxC,UAAU,mCAAoCM,WAAWK,kBAE7D9f,EAAE,gBAAgBogC,QAAO,WACrBjhB,UAAU,cAAenf,EAAElD,MAAMuiB,KAAK,eAE1Crf,EAAE,8BAA8BogC,QAAO,WACnCjhB,UAAU,4BAA6Bnf,EAAElD,MAAMuiB,KAAK,eAExDrf,EAAE,oBAAoBogC,QAAO,WACzBjhB,UAAU,kBAAmBnf,EAAElD,MAAMuiB,KAAK,eAG9Crf,EAAE,qBAAqBogC,QAAO,WAC1BjhB,UAAU,QAASnf,EAAElD,MAAMuiB,KAAK,WAAa,OAAS,YACtDygB,OAEJ9/B,EAAE,eAAeogC,QAAO,WACpBjhB,UAAU,cAAenf,EAAElD,MAAMuiB,KAAK,WAAa,UAAY,iBAGnErf,EAAE,iBAAiBogC,QAAO,WACtBjhB,UAAU,eAAgBnf,EAAElD,MAAMuiB,KAAK,YAEvC4G,mBAGJjmB,EAAE,cAAcogC,QAAO,WACnB3gB,WAAWG,KAAO5f,EAAElD,MAAMuiB,KAAK,WAC/BI,WAAWkC,aAEXxC,UAAU,YAAaM,WAAWG,MAClCqG,mBAKJjmB,EAAE,0BAA0BogC,QAAO,WAC/B3gB,WAAWE,MAAQ3f,EAAElD,MAAMuiB,KAAK,WAAa,QAAU,QACvDI,WAAWkC,aAEP4B,SAAS9D,WAAWE,QACpBsG,mBAKZ,IAAMoa,oBAAsB,SACtBC,kBAAoB,GAE1B,SAASC,oBACL,GAAmC,OAA/BxgC,OAAOiiB,qBAA2E,qBAApCjiB,OAAOiiB,oBAAoBtC,KACzEoK,WAAW/pB,OAAOiiB,oBAAoBtC,KAAKxZ,QAAQ,IAAK,UAIxD,GADA4jB,WAAWrK,WAAWC,KAAKxZ,QAAQ,IAAK,KACf,OAArBuZ,WAAWzQ,MAAgB,CAC3B,IAAMwxB,EAAet9B,SAASof,eAAT,UAA2B+d,qBAA3B,OAAiDr6B,yDAAQyZ,WAAWzQ,SACzF,GAAIwxB,EAAc,CACd,IAAMzW,EAASyW,EAAaC,UAAYH,iBACxCp9B,SAASw9B,cAAc,QAAQzW,UAAYF,IAM3D,IAAI4W,oBAAsB,KAyB1B,SAAS7P,4BACL9wB,EAAE,2BAA2ByiB,QAAQ,CACjCme,SAAU,OACVvgC,QAAS,QACTD,MAAM,EACNG,MAAO,CAAEC,KAAM,IAAKI,KAAM,GAC1BV,UAAW,SAEfF,EAAE,2BAA2BC,UA/BjCF,OAAOiyB,8BAAgC,SAAChjB,EAAO6xB,EAAWC,GACtDH,oBAAsB,WAElB,GAAqB,kBAAV3xB,EAAoB,CAC3B,IAAMwxB,EAAet9B,SAASof,eAAT,UAA2B+d,qBAA3B,OAAiDr6B,yDAAQgJ,KAC9E,GAAIwxB,EAAc,CACd,IAAMzW,EAASyW,EAAaC,UAAYH,iBACxCp9B,SAASw9B,cAAc,QAAQzW,UAAYF,GAInD,GAAI,CAAC,UAAW,YAAYgX,SAASD,GAAc,CAE/C7hB,WAAWvd,SAASoC,+DAA0B,CAC1CwH,MAAOu1B,EAFQ,KAGft1B,OAAQs1B,EAHO,WAwB/B,IAAIG,0BAA4B,EAEhC,SAASC,+BACL,GAAkC,IAA9BD,0BAOA,OANAT,oBAGAvgC,EAAEkD,SAASg+B,MAAMC,UAAU,gBAC3BnhC,EAAEkD,SAASg+B,MAAMC,UAAU,WAK/BH,0BAA4Bvf,KAAKC,MASjC,IAAI0f,EAAY,EACZC,EAAc,EACdC,GAAc,EACdC,GAA0B,EAC1BC,EAAkBxhC,EAAED,QAAQ2C,SAAW,EAE3C1C,EAAE,UACGoK,GAAG,iBAAiB,WACG,IAAhBi3B,IACAD,EAAYrhC,OAAO0hC,QAEnBzhC,EAAE,QAAQ4+B,IAAI,CACV8C,SAAU,SACVC,SAAU,QACVzX,KAAMkX,IAGVE,GAAc,EAEwB,OAAlC7gC,QAAQC,QAAQkhC,eAChBnhC,QAAQohC,OAAM,eAEdN,GAA0B,GAE1BA,GAA0B,GAIlCF,OAIHj3B,GAAG,iBAAiB,aAEjBi3B,GAEmB,IACfA,EAAc,EAEdrhC,EAAE,QACG4+B,IAAI,CACD8C,SAAU,GACVC,SAAU,GACVzX,IAAK,KAIblqB,EAAE,cACGgqB,QAAQ,CAAEC,UAAWmX,GAAa,IAGP,IAA5BG,IACA9gC,QAAQqhC,UACRP,GAA0B,GAI9BvhC,EAAEkD,SAASg+B,MAAMC,UAAU,eAIlC/2B,GAAG,mBAAmB,WACC,IAAhBi3B,IACAC,GAAc,GAGiB,oBAAxBX,qBACPA,sBAGJA,oBAAsB,QAO9B3gC,EAAE,YACG+hC,MAAM,CACHhY,OAAQ,CACJG,IAAK,EACL8X,OAAQ,KAGf53B,GAAG,oBAAoB,WAIpBpK,EAAElD,MAAMmlC,WAAW,YAEtB73B,GAAG,sBAAsB,WAItB,GAAIk3B,EACA,OAAO,KAGdl3B,GAAG,yBAAyB,SAAUpH,GAGnC,IAAoB,IAAhBs+B,EAAuB,CACvB,IACI5hB,EADK1f,EAAEgD,EAAEiuB,QACCkL,KAAK,KAAKnR,KAAK,QACT,kBAATtL,GAA8C,MAAzBA,EAAKsG,UAAU,EAAG,KAAiE,IAAnDvG,WAAWC,KAAKzB,WAAWyB,EAAO,eAC9FD,WAAWC,KAAOA,EAClBD,WAAWkC,kBAK3BugB,GAAGC,WAAWj/B,SAASof,eAAe,WAAY,CAC9C8f,WAAY,GACZC,kBAAkB,EAClBC,kBAAkB,EAClBC,mBAAoB,KACpBC,mBAAoB,KACpBC,kBAAkB,EAClBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAqB,EACrBC,oBAAqB,EACrBljB,MAAO,YAMP6hB,EAAkB,MAClBA,EAAkB,KAElBA,EAAkB,KAClBA,EAAkB,IAEtBt+B,SAASg+B,KAAK7b,aAAa,cAAemc,GAI1CjB,oBAEAvgC,EAAEkD,SAASg+B,MAAMC,UAAU,CACvBlQ,OAAQ,WACRlH,OAAQyX,IAMZxhC,EAAE,wBACGoK,GAAG,mBAAmB,WACnBge,mBAAqB,QAM7BpoB,EAAE,gBACGoK,GAAG,iBAAiB,WACjBmsB,WAAW,+BAEdnsB,GAAG,kBAAkB,WAClB6tB,iBAAgB,MAMxBj4B,EAAE,gBACGoK,GAAG,kBAAkB,WAClB2lB,uBAEH3lB,GAAG,mBAAmB,WACnBlH,SAASof,eAAe,iBAAiBC,UACrCrf,SAASof,eAAe,cAAcC,UACtCrf,SAASof,eAAe,cAAcC,UACtC,gBAKZsd,yBACAtE,+BACAU,yBACA3E,iBAKAt3B,EAAE8iC,GAAGC,QAAU,SAAUC,GAGrB,IAAIC,EAAS,CACTC,UAAW,IACXC,aAAc,GACdC,aAAc,MACdC,SAAU,sDACVC,SAAU,wDACVC,OAAQ,WACJ9iC,QAAQ+iC,YAEZC,OAAQ,WACJhjC,QAAQ+iC,YAEZE,OAAQ,KACRtM,OAAO,GAOX,OAJI4L,GACAhjC,EAAE+1B,OAAOkN,EAAQD,KAGjBhjC,EAAElD,MAAM+L,KAAK,oBAAsBo6B,EAAO7L,SAG9Cp3B,EAAElD,MAAM+L,KAAK,kBAAkB,GAE/B7I,EAAEkD,UAAUygC,IAAI,QAAS,aAEzB3jC,EAAEkD,UAAUkH,GAAG,CACXub,MAAO,WAEH,IAAIie,EAAQ5jC,EAAElD,MAkBd,OAjBI8mC,EAAMC,SAAS,SACfD,EAAM7I,YAAY,QAClB6I,EAAMxjC,KAAK6iC,EAAOI,UAClBO,EAAME,SAASC,OAAO/Z,QAAQ,CAAE,OAAU,MAAa,GAAG,WACtD4Z,EAAME,SAASC,OAAOA,OAAOvjC,UAC9BI,KAAK,GAAG,WACPqiC,EAAOM,cAGXK,EAAM5I,SAAS,QACf4I,EAAMxjC,KAAK6iC,EAAOK,UAClBM,EAAME,SAASC,OAAO/Z,QAAQ,CAAE,OAAU,QAAe,GAAG,WACxD4Z,EAAME,SAASC,OAAOA,OAAOnjC,UAC9BJ,KAAK,GAAG,WACPyiC,EAAOQ,cAGR,IAEZ,aAEI3mC,KAAKknC,MAAK,WACb,IAAIJ,EAAQ5jC,EAAElD,MAEViE,EAAU6iC,EAAMxjC,OAEpB,GADiBwjC,EAAMvO,OAAO9rB,OACb05B,EAAOC,UAAYD,EAAOE,aAAc,CACrD,IAAI1e,EAAI1jB,EAAQkjC,OAAO,EAAGhB,EAAOC,WACjC,GAAIze,EAAEsB,QAAQ,MAAQ,EACtB,CAOI,IANA,IAAIme,GAAQ,EACRC,EAAM,GACNC,EAAa,EACbC,EAAW,GACXC,EAAU,KAELv5B,EAAI,EAAGw5B,EAAI,EAAGA,GAAKtB,EAAOC,UAAWn4B,IA4B1C,GA3BmB,MAAfhK,EAAQgK,IAAem5B,IACvBA,GAAQ,EAMW,OAHnBI,EAAUvjC,EAAQilB,UAAUjb,EAAI,EAAGhK,EAAQglB,QAAQ,IAAKhb,KAG5C,GAEJu5B,IAAa,IAAMD,EAAS,GAC5BpB,EAAOS,OAAS,oEAEhBW,EAASG,QAKiB,OAA1BF,EAAQ/f,eACR8f,EAAS5T,QAAQ6T,IAKzBJ,GAAwB,MAAfnjC,EAAQgK,KACjBm5B,GAAQ,GAGRA,EACAC,GAAOpjC,EAAQijB,OAAOjZ,QAItB,GADAw5B,IACIH,GAAcnB,EAAOC,UACrBiB,GAAOpjC,EAAQijB,OAAOjZ,GACtBq5B,SAGA,GAAIC,EAAS96B,OAAS,EAAG,CAGrB,IAAK,IAAIqa,EAAI,EAAGA,EAAIygB,EAAS96B,OAAQqa,IACjCugB,GAAO,KAAOE,EAASzgB,GAAK,IAIhC,MAKhBa,EAAIzkB,EAAE,UAAUI,KAAK+jC,EAAM,uBAAyBlB,EAAOG,aAAe,WAAWhjC,YAErFqkB,GAAKwe,EAAOG,aAGhB,IAAIhjC,EAAO,6BAA+BqkB,EACtC,iCAAmC1jB,EACnC,4DAA8DkiC,EAAOI,SAAW,cAEpFO,EAAMxjC,KAAKA,GACXwjC,EAAMzH,KAAK,eAAev7B,OAC1BZ,EAAE,uBAAwB4jC,GAAOhF,IAAI,gBAAiB,SAMtE,SAASlQ,eACDjP,WAAWnU,MAAQ,EACnB2T,WAAWvd,SAASsC,+DAAsB,CAAEsH,MAAOmU,WAAWnU,UAC3B,IAA5BmU,WAAWM,cAClBd,WAAWvd,SAASoC,+DAA0B,CAC1CwH,MAAOmU,WAAWnU,MAClBC,OAAQkU,WAAWlU,UAQ3B9K,QAAQ+2B,WAGR/2B,QAAQqhC,UAERb,+BACAjhC,EAAE,YAAY+iC,UACdjS,4BAEK2T,gDACDxM,mBAG2B,IAA3BxY,WAAWa,aACXkF,YAAW,WACPxlB,EAAE,gBAAgB8mB,MAAM,UACzB,KAGPrmB,QAAQikC,iBAAmB,WACvBxC,GAAGyC,OAAOzhC,SAASof,eAAe,aAEtC7hB,QAAQikC,mBAE2B,OAA/B3kC,OAAOiiB,qBACP/C,WAAWvd,SAASoC,+DAA0B,CAC1CwH,MAAOvL,OAAOiiB,oBAAoBmY,SAClC5uB,OAAQxL,OAAOiiB,oBAAoBqY,aAK/Ct6B,OAAO6kC,sBAAwB,WAC3B3lB,WAAWvd,SAASoD,kEAGpB2a,WAAWK,eAAgB,EAC3BL,WAAWG,MAAO,EAClBH,WAAWE,MAAQ,QACnBF,WAAWkC,aAEXsE,iBAKG,IAAMoQ,oBAAsB,WAC3BoO,+CACAvhC,SAASof,eAAe,YAAY7f,MAAM80B,QAAU,SAEnB,IAA7B9X,WAAWK,eACXX,UAAU,mCAAoCM,WAAWK,gBAKrE/f,OAAO8kC,yBAA2B,SAAU1P,EAAUpT,GAIlD,GAFA7e,SAASof,eAAe,0BAA0BC,UAAY,GAExC,qBAAXR,EAGP5C,UAAU,2BAA4BgW,GAEjC2P,yDAAiB3P,IAUdn1B,EAAE,mBAAmBqf,KAAK,YAC1Brf,EAAE,mBAAmBigC,gBAAgB,OAEzC9gB,UAAU,WAAYgW,KAZtBhW,UAAU,WAAY,WAEjBnf,EAAE,mBAAmBqf,KAAK,YAC3Brf,EAAE,mBAAmBigC,gBAAgB,MAGzC/8B,SAASof,eAAe,0BAA0BC,UAAY,uGAC9DpD,UAAU,2BAA4Bze,QAAQy0B,gBAO/C,IAAe,IAAXpT,EAEP5C,UAAU,WAAY,eACnB,CAGH,IAAI4lB,EAAwBrF,UAAU,4BACR,YAA1BqF,IACA5lB,UAAU,2BAA4Bze,QAAQy0B,UAC9C4P,EAAwBrkC,QAAQy0B,UAG/B2P,yDAAiBC,GAUlB5lB,UAAU,WAAY4lB,IATtB5lB,UAAU,WAAY,WAEjBnf,EAAE,mBAAmBqf,KAAK,YAC3Brf,EAAE,mBAAmBigC,gBAAgB,MAGzC/8B,SAASof,eAAe,0BAA0BC,UAAY,wBAA0B4S,EAAS52B,WAAa,sEAC9G4gB,UAAU,2BAA4Bze,QAAQy0B,WAMtD,IAAM6P,EAAiBtF,UAAU,YAEjC,OADAx8B,SAASof,eAAe,oBAAoBgU,UAAgC,YAAnB0O,EAAgC,+BAAiCA,GACnH,GAGJ,IAAIC,gBAAkB9O,2BAE7Bp2B,OAAOmlC,gBAAkB,WACrBhiC,SAASof,eAAe,gBAAgBC,UAAYnD,gBAAgB,kBACpEpf,EAAE,gBAAgB8mB,MAAM,SAG5B/mB,OAAOolC,iBAAmB,WACtBnlC,EAAE,gBAAgB8mB,MAAM,QACxB7H,WAAWvd,SAAS0jC,uE,gCCv9HxB,0KAAO,IAAM1hC,EAAW,SAIX2hC,EAAc,MAIdC,EAAyB,IAEzBn5B,EAA0B,0BAE1Bo5B,EAA+B,CAAC,UAAW,QAAS,UAAW,YAAa,gBAAiB,QAAS,a,+FCsDpGC,EARkB,SAAC,GAA4D,IAA1DC,EAAyD,EAAzDA,WAAYC,EAA6C,EAA7CA,WAAYC,EAAiC,EAAjCA,KAK1D,OAJkCC,mBAAsC,WACtE,OAxDyC,SAAC,GAAD,IAC3CF,EAD2C,EAC3CA,WACAD,EAF2C,EAE3CA,WAF2C,EAG3CE,KAH2C,MAIc,CACzD7kC,MAAO,kCACPu0B,KAAM,CACJwQ,OAAQ,WACN,OACE,kBAAC,IAAD,8BACyB,IACvB,kBAAC,IAAD,CAAMC,QAAM,GAAiB,SAAfJ,EAAwB,YAAc,iBAFtD,sBAOJK,QACiB,aAAfL,EACI,CAEE,kBACE,kBAAC,IAAD,sEACiE,IAC/D,kBAAC,IAAD,CACEzU,OAAO,SACP+U,IAAI,sBACJC,KAAK,gEAHP,cAFF,OAaJ,GACNhW,OAAQ,kBACN,kBAAC,IAAD,eACU,IACR,kBAAC,IAAD,CAAM6V,QAAM,GACM,cAAfL,EACG,YACe,kBAAfA,EACA,aACA,iBACE,IARV,sBAaJS,KAAM,CACJ7Q,KAAM,6BAMC8Q,CAA8B,CAAEV,aAAYC,aAAYC,WAC9D,CAACF,EAAYC,EAAYC,K,QC2CfS,EA/EoB,SAAC,GAOI,IANtCtlC,EAMqC,EANrCA,MACAu0B,EAKqC,EALrCA,KACA6Q,EAIqC,EAJrCA,KACAG,EAGqC,EAHrCA,WACAC,EAEqC,EAFrCA,UACAC,EACqC,EADrCA,eAEMC,EAAoBzkC,uBACxB,YAAiC,IAA9BojB,EAA6B,EAA7BA,KACDkhB,IACAtmC,OAAOghB,SAASklB,KAAO9gB,IAEzB,CAACkhB,IAGH,OACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAct1B,MAAO,IAAK01B,WAAW,mBACnC,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAIC,OAAQ,CAAC,IAAK5lC,GAClB,kBAAC,IAAD,CAAkB6lC,QAASN,KAE7B,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAMO,QAAS,CAAC,EAAG,EAAG,EAAG,GAAIC,QAAM,EAACC,IAAK,GACtCzR,EAAKwQ,OAAO,IACZxQ,EAAK0Q,QAAQx8B,OAAS,GACrB,kBAAC,IAAD,CAAMs9B,QAAM,EAACC,IAAK,GAChB,kBAAC,IAAD,CAAMD,QAAM,EAACC,IAAK,EAAGC,GAAI,MACtB1R,EAAK0Q,QAAQj7B,KAAI,SAACk8B,EAAQjU,GACzB,MAAsB,oBAAXiU,EACF,wBAAI36B,IAAK0mB,GAAT,IAAkBiU,KAGzB,wBAAI36B,IAAK26B,GACP,kBAAC,IAAD,KAAOA,SAOlB3R,EAAKpF,WAGV,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAKgX,cAAY,OAAOP,OAAQ,CAAC,EAAG,EAAG,EAAG,GAAI31B,MAAO,CAAE9T,IAAK,KAC1D,kBAAC,IAAD,CAAWiqC,cAAe,CAAEnmC,QAAS,sBAAuBomC,SAvDvD,0BAwDF,gBAAGhiB,EAAH,EAAGA,KAAH,OACC,kBAAC,IAAD,CACEiiB,UAAA,qCACAC,SAAUd,EACVe,cAAc,OACdL,cAAY,cACZ/nC,QAAS,kBAAMsnC,EAAkB,CAAErhB,UACnCpU,MAAM,OACNw2B,MAAOrB,EAAK7Q,WAKpB,kBAAC,IAAD,CACE+R,UAAA,2CACAloC,QAASonC,EACT5jC,OAAQ,GACR9D,UAAU,kBACVqoC,cAAY,cACZl2B,MAAO,CAAE9T,IAAK,KAEd,kBAAC,IAAD,CAAK8pC,GAAIS,IAAMC,GAAI,CAAEC,WAAY,MAAOC,WAAY,SAApD,kB,wBChCGC,IArDe,WAC5B,IAAM7+B,EAAiBpJ,YAAYkoC,KAC7BC,EAAenoC,YAAYooC,KAFC,EAIEzmC,oBAAS,GAJX,mBAI3B0mC,EAJ2B,KAIdC,EAJc,KAK5BC,EAA4B1C,EAAyB,CACzDC,YAA0B,OAAd18B,QAAc,IAAdA,OAAA,EAAAA,EAAgB08B,aAAc,UAC1CC,YAA0B,OAAd38B,QAAc,IAAdA,OAAA,EAAAA,EAAgBo/B,eAAgB,WAC5CxC,KAAM,KAGR9lC,qBAAU,WAENqD,SAASklC,gBAAgB3lC,MAAMi/B,SAD7BsG,EACwC,SAEA,SAE3C,CAACA,IAEJ,IAAMK,EAAYtmC,uBAAY,WAC5BkmC,GAAa,KACZ,IAEG5B,EAAatkC,uBAAY,WAC7BkmC,GAAa,KACZ,IAEG3B,EAAY7gC,cAElB,OAAKqiC,EAGH,kBAAC,IAAD,CAAMjB,QAAM,GACV,kBAAC,IAAD,CACEO,UAAA,sCACAH,cAAY,oCACZ/nC,QAASmpC,EACTC,QAAQ,WAJV,uBAQCN,GACC,kBAAC,EAAD,iBACME,EADN,CAEE3B,eAAiD,UAAnB,OAAdx9B,QAAc,IAAdA,OAAA,EAAAA,EAAgBo/B,cAChC9B,WAAYA,EACZC,UAAWA,MAjBO,O,4UCnCfiC,EAAc,SAACzvC,GAAD,OAAeA,EAAI,GAEjC0vC,EAA0B,iCAE1BC,EAAe,IAIfC,EAAe,SAACthC,EAAsBuhC,GAAvB,gBAA2CvhC,EAA3C,mBAAkEuhC,IACjFC,EAAe,mCAEfjiC,EAA4B,WACvC,IAAMkmB,EAAM3pB,SAASof,eAAe,cACpC,OAAKuK,EAQ4D,IAAzD1zB,KAAKgpB,MAAM0K,EAAIgc,wBAAwB93B,MAAQ,EAAI,KANzD1S,QAAQ8kB,MAAM,2DACN,MAUChU,EAA4B,SACvCxS,EACAmsC,EACAC,GAEA,OAAKD,EAGEnsC,EAAKmQ,QACV,SAACC,EAAKV,GAAN,sBACKU,EADL,eAEGV,EAAM28B,YAAOF,EAAKz8B,GAAM08B,EAAM18B,IAAQy8B,EAAKz8B,GAAO08B,EAAK18B,OAE1D08B,GAPOA,GAeJ,SAASE,IAA2D,IAAD,uBAAxBC,EAAwB,yBAAxBA,EAAwB,gBACxE,OAAO,SAAkBC,GACvBD,EAAIprC,SAAQ,SAAAglC,GACR,OAAFA,QAAE,IAAFA,KAAKqG,S,oBCvDX,UAcIC,EAAO,QAAD,6BASF,WAEJ,IAIIC,EAAmB,EAWvBC,EAAkB,CAClBzD,OAAQ,CACJ/kC,MAAO,CACHu0B,KAAU,GACVkU,MAAU,UACVC,SAAU,GACV9B,WAAY,OACZ+B,KAAU,SAEdC,SAAU,CACNrU,KAAU,GACVkU,MAAU,UACVC,SAAU,GACV9B,WAAY,OACZ+B,KAAU,SAEd1oB,SAAU,aACV4oB,qBAAsB,GAE1B1Z,OAAQ,CACJoF,KAAS,GACTkU,MAAU,UACVC,SAAU,GACV9B,WAAY,OACZ+B,KAAU,QACV1oB,SAAU,QAEd8d,KAAM,CACF+K,aAAc,IACdC,YAAa,IACbC,eAAgB,KAChBC,eAAgB,MAEpBlhC,KAAM,CACFmhC,UAAW,OACXC,oBAAqB,CACjBnS,SAAS,EACToS,UAAW,aACXpuC,MAAO,MAEXquC,qBAAsB,CAClBrS,SAAS,EACTh8B,MAAO,EACPouC,UAAW,aACX3C,MAAO,QACPgC,MAAO,WAEXxoC,QAAS,IAEbsQ,OAAQ,CACJ+4B,MAAO,CACHC,OAAQ,QACRC,2BAA4B,KAC5BC,YAAa,IAEjBC,MAAO,CACHH,OAAQ,aACRC,2BAA4B,MAEhCG,UAAW,CACPlB,MAAO,UACPE,KAAM,QACN/B,WAAY,SACZ8B,SAAU,IAEdkB,WAAY,CACRnB,MAAO,UACPE,KAAM,QACN/B,WAAY,OACZ8B,SAAU,GACVmB,cAAe,GAEnB7uC,MAAO,CACHytC,MAAO,UACP7B,WAAY,OACZ+B,KAAM,QACND,SAAU,IAEdoB,MAAO,CACH9S,SAAS,EACTr1B,MAAO,SACP8mC,MAAO,WAEXsB,WAAY,CACR/S,SAAS,EACTgT,eAAgB,IAExBhY,UAAW,MAEXiY,QAAS,CACLC,KAAM,CACFC,OAAQ,OACRC,MAAO,KAEXC,sBAAuB,CACnBF,OAAQ,OACRC,MAAO,IACPrM,KAAM,IAEVuM,6BAA6B,EAC7BC,qBAAsB,IAE1BC,SAAU,CACNxT,SAAS,EACTh5B,KAAM,cACNg7B,OAAQ,GACRyR,kBAAmB,KACnBC,OAAQ,CACRC,YAAa,IACbC,gBAAiB,UACjBC,kBAAmB,GACnBpC,MAAO,UACPqC,aAAc,EACdnC,KAAM,QACN/B,WAAY,OACZ8B,SAAU,GACV5C,QAAS,IAGbiF,KAAM,CACF1hC,OAAQ,CACJs8B,WAAY,KACZqF,SAAU,CACN,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAEvGC,cAAe,WAEnBC,SAAU,CACNlU,SAAS,EACT4S,WAAY,GACZnB,MAAO,WAEX0C,cAAe,CACX/hB,IAAK,EACL9c,MAAO,EACP40B,OAAQ,EACR90B,KAAM,GAEVg/B,gBAAiB,CACbpzC,EAAG,EACHgrB,EAAG,GAEPqoB,UAAW,MAEfC,UAAW,CACPnS,OAAQ,KACRoS,mBAAoB,KACpBC,kBAAmB,KACnBC,eAAgB,OAKpBC,EAGc,SAASC,GACnB,IAAIN,EAAYM,EAAIN,UAChBn8B,EAAUy8B,EAAIz8B,QACdtP,EAAU+rC,EAAI/rC,QAGlB,IAAKX,OAAO2sC,KAAO3sC,OAAO2sC,GAAG/iB,eAAe,WAExC,OADAtrB,QAAQ8kB,MAAM,qCACP,EAIX,KAAMnT,aAAmB28B,aAAe38B,aAAmB48B,YAEvD,OADAvuC,QAAQ8kB,MAAM,kGACP,EAIX,IAAM,0BAA0B/S,KAAK+7B,GAEjC,OADA9tC,QAAQ8kB,MAAM,gDACP,EAIX,IAAK0pB,EAAQC,QAAQpsC,EAAQmI,KAAK9H,SAE9B,OADA1C,QAAQ8kB,MAAM,0EACP,EAEX,GAAoC,IAAhCziB,EAAQmI,KAAK9H,QAAQwI,OAErB,OADAlL,QAAQ8kB,MAAM,mCACP,EAKX,IADA,IAAIta,EAAO,GACFkC,EAAE,EAAGA,EAAErK,EAAQmI,KAAK9H,QAAQwI,OAAQwB,IACI,kBAAlCrK,EAAQmI,KAAK9H,QAAQgK,GAAGjP,OAAsBixC,MAAMrsC,EAAQmI,KAAK9H,QAAQgK,GAAGjP,OACnFuC,QAAQC,IAAI,cAAeoC,EAAQmI,KAAK9H,QAAQgK,IAGhDrK,EAAQmI,KAAK9H,QAAQgK,GAAGjP,OAAS,EACjCuC,QAAQC,IAAI,2CAA4CoC,EAAQmI,KAAK9H,QAAQgK,IAGjFlC,EAAK+gB,KAAKlpB,EAAQmI,KAAK9H,QAAQgK,IAOnC,OALA0hC,EAAI/rC,QAAQmI,KAAK9H,QAAU8H,GAKpB,GAKXgkC,EAAU,CAGVG,YAAa,SAASP,GAClB,IAAIz8B,EAAUy8B,EAAIz8B,QACd65B,EAAc4C,EAAI/rC,QAAQm+B,KAAKgL,YAC/BD,EAAe6C,EAAI/rC,QAAQm+B,KAAK+K,aAChC8B,EAAkBe,EAAI/rC,QAAQmrC,KAAK1hC,OAAOs8B,WAE1CwG,EAAMP,GAAGQ,OAAOl9B,GAASm9B,OAAO,WAC/BniB,KAAK,QAAS6e,GACd7e,KAAK,SAAU4e,GAMpB,MAJwB,gBAApB8B,GACAuB,EAAIxqC,MAAM,oBAAoB,WAAa,OAAOipC,KAG/CuB,GAGXG,aAAc,SAAS3jC,GAGnB,IAFA,IAAiC4jC,EAAQC,EAArCC,EAAe9jC,EAAMF,OAElB,IAAMgkC,GACTD,EAAcn0C,KAAKG,MAAMH,KAAKq0C,SAAWD,GAIzCF,EAAS5jC,EAHT8jC,GAAgB,GAIhB9jC,EAAM8jC,GAAgB9jC,EAAM6jC,GAC5B7jC,EAAM6jC,GAAeD,EAEzB,OAAO5jC,GAGXgkC,WAAY,SAASzgC,EAAK0gC,EAAI5xC,GAC1B,MAAkB,kBAAP4xC,EACAb,EAAQY,WAAWzgC,EAAK0gC,EAAG7jC,MAAM,KAAM/N,GACzB,IAAd4xC,EAAGnkC,aAA0B/L,IAAV1B,GAC1BkR,EAAI0gC,EAAG,IAAM5xC,EACNkR,EAAI0gC,EAAG,KACO,IAAdA,EAAGnkC,OACHyD,EAEA6/B,EAAQY,WAAWzgC,EAAI0gC,EAAG,IAAKA,EAAGviB,MAAM,GAAIrvB,IAI3D6xC,cAAe,SAASroB,GACH,kBAAPA,IACNA,EAAKpiB,SAASof,eAAegD,IAEjC,IAAIsoB,EAAI,EAAGC,EAAI,EACf,GAAIvoB,EAAI,CACJ,IAAItT,EAAasT,EAAGwoB,UACpBF,EAAI57B,EAAWjB,MACf88B,EAAI77B,EAAWtP,YAGfrE,QAAQC,IAAI,0BAA4BuD,GAAK,eAGjD,MAAO,CAAE+rC,EAAGA,EAAGC,EAAGA,IAStBE,cAAe,SAASC,EAAIC,GAexB,QAZKA,EAAGn1C,EAAKk1C,EAAGl1C,EAAIk1C,EAAGJ,GAGjBK,EAAGn1C,EAAIm1C,EAAGL,EAAKI,EAAGl1C,GAGlBm1C,EAAGnqB,EAAImqB,EAAGJ,EAAKG,EAAGlqB,GAGnBmqB,EAAGnqB,EAAKkqB,EAAGlqB,EAAIkqB,EAAGH,IAY3BK,cAAe,SAASC,EAAKC,IAGzBD,EAAME,OAAOF,GAAKjoC,QAAQ,cAAe,KACjCqD,OAAS,IACb4kC,EAAMA,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,IAEjDC,EAAMA,GAAO,EAIb,IADA,IAAIE,EAAS,IACJvjC,EAAE,EAAGA,EAAE,EAAGA,IAAK,CACpB,IAAI0Z,EAAIpD,SAAS8sB,EAAIlK,OAAW,EAAJl5B,EAAO,GAAI,IAEvCujC,IAAW,MADX7pB,EAAItrB,KAAKgpB,MAAMhpB,KAAK8D,IAAI9D,KAAKqD,IAAI,EAAGioB,EAAKA,EAAI2pB,GAAO,MAAM7vC,SAAS,MAC9C0lC,OAAOxf,EAAElb,QAGlC,OAAO+kC,GAaXC,kBAAmB,SAAS9B,GAOxB,IANA,IAAI5jC,EAAS4jC,EAAI/rC,QAAQmI,KAAK9H,QAC1BoJ,EAASsiC,EAAI/rC,QAAQmrC,KAAK1hC,OAAO2hC,SAIjC0C,EAAc,GACTzjC,EAAE,EAAGA,EAAElC,EAAKU,OAAQwB,IACrBlC,EAAKkC,GAAG4e,eAAe,SACvB6kB,EAAY5kB,KAAK/gB,EAAKkC,GAAGw+B,OAEzBiF,EAAY5kB,KAAKzf,EAAOY,IAIhC,OAAOyjC,GAGXC,0BAA2B,SAAS5lC,EAAMshC,GACtC,IAAIuE,EACmC,eAAnCvE,EAAqBD,YACrBwE,EAAYC,EAAKC,gBAAgB/lC,IAOrC,IAHA,IAAIgmC,EAAU,GACVC,EAAc,GACdC,EAAmB,EACdhkC,EAAE,EAAGA,EAAElC,EAAKU,OAAQwB,IACzB,GAAuC,eAAnCo/B,EAAqBD,UAA4B,CAEjD,GADmBrhC,EAAKkC,GAAGjP,MAAQ4yC,EAAa,KAC7BvE,EAAqBruC,MAAO,CAC3CgzC,EAAYllB,KAAK/gB,EAAKkC,IACtBgkC,GAAoBlmC,EAAKkC,GAAGjP,MAC5B,SAEJ+M,EAAKkC,GAAGikC,WAAY,EACpBH,EAAQjlB,KAAK/gB,EAAKkC,QACf,CACH,GAAIlC,EAAKkC,GAAGjP,OAASquC,EAAqBruC,MAAO,CAC7CgzC,EAAYllB,KAAK/gB,EAAKkC,IACtBgkC,GAAoBlmC,EAAKkC,GAAGjP,MAC5B,SAEJ+M,EAAKkC,GAAGikC,WAAY,EACpBH,EAAQjlB,KAAK/gB,EAAKkC,IAe1B,OAVI+jC,EAAYvlC,QACZslC,EAAQjlB,KAAK,CACT2f,MAAOY,EAAqBZ,MAC5BhC,MAAO4C,EAAqB5C,MAC5BzrC,MAAOizC,EACPC,WAAW,EACXF,YAAaA,IAIdD,GAIXI,UAAW,SAAShC,EAAKn0C,EAAGgrB,GACxBmpB,EAAIE,OAAO,UAAUniB,KAAK,KAAMlyB,GAAGkyB,KAAK,KAAMlH,GAAGkH,KAAK,IAAK,GAAGvoB,MAAM,OAAQ,UAGhFysC,WAAY,SAASC,GAEjB,OAAOA,GAA8D,sBADvD,GACoB5wC,SAAS6wC,KAAKD,IAGpDrC,QAAS,SAASuC,GACd,MAA6C,mBAAtCxxC,OAAOyxC,UAAU/wC,SAAS6wC,KAAKC,KAM1CtZ,EAAS,SAATA,IACA,IAAIr1B,EAASsd,EAAMuxB,EAAKC,EAAMC,EAAaC,EAAOze,EAAS0e,UAAU,IAAM,GACvE5kC,EAAI,EACJxB,EAASomC,UAAUpmC,OACnBqmC,GAAO,EACPrxC,EAAWV,OAAOyxC,UAAU/wC,SAC5BsxC,EAAShyC,OAAOyxC,UAAU3lB,eAC1BmmB,EAAa,CACT,mBAAoB,UACpB,kBAAmB,SACnB,kBAAmB,SACnB,oBAAqB,WACrB,iBAAkB,QAClB,gBAAiB,OACjB,kBAAmB,SACnB,kBAAmB,UAGvBC,EAAS,CACLb,WAAY,SAAUliC,GAClB,MAA4B,aAArB+iC,EAAOjxC,KAAKkO,IAEvB8/B,QAASjvB,MAAMivB,SACX,SAAU9/B,GACN,MAA4B,UAArB+iC,EAAOjxC,KAAKkO,IAE3BgjC,SAAU,SAAUhjC,GAChB,OAAe,OAARA,GAAgBA,IAAQA,EAAIjN,QAEvCkwC,UAAW,SAAUjjC,GACjB,OAAQ+/B,MAAMmD,WAAWljC,KAASmjC,SAASnjC,IAE/ClO,KAAM,SAAUkO,GACZ,OAAe,OAARA,EAAeqhC,OAAOrhC,GAAO8iC,EAAWvxC,EAAS6wC,KAAKpiC,KAAS,UAE1EojC,cAAe,SAAUpjC,GACrB,IAAKA,GAA4B,WAArB+iC,EAAOjxC,KAAKkO,IAAqBA,EAAIqjC,SAC7C,OAAO,EAEX,IACI,GAAIrjC,EAAIsjC,cAAgBT,EAAOT,KAAKpiC,EAAK,iBAAmB6iC,EAAOT,KAAKpiC,EAAIsjC,YAAYhB,UAAW,iBAC/F,OAAO,EAEb,MAAOtsC,GACL,OAAO,EAEX,IAAIqJ,EACJ,IAAKA,KAAOW,GACZ,YAAexP,IAAR6O,GAAqBwjC,EAAOT,KAAKpiC,EAAKX,KAezD,IAZsB,mBAAX4kB,IACP2e,EAAO3e,EACPA,EAAS0e,UAAU,IAAM,GACzB5kC,EAAI,GAEc,kBAAXkmB,GAAwB8e,EAAOb,WAAWje,KACjDA,EAAS,IAET1nB,IAAWwB,IACXkmB,EAASn0B,OACPiO,GAEEA,EAAIxB,EAAQwB,IAChB,GAAiC,QAA5BrK,EAAUivC,UAAU5kC,IACrB,IAAKiT,KAAQtd,EACT6uC,EAAMte,EAAOjT,GAETiT,KADJue,EAAO9uC,EAAQsd,MAIX4xB,GAAQJ,IAASO,EAAOK,cAAcZ,KAAUC,EAAcM,EAAOjD,QAAQ0C,MACzEC,GACAA,GAAc,EACdC,EAAQH,GAAOQ,EAAOjD,QAAQyC,GAAOA,EAAM,IAE3CG,EAAQH,GAAOQ,EAAOK,cAAcb,GAAOA,EAAM,GAGrDte,EAAOjT,GAAQ+X,EAAO6Z,EAAMF,EAAOF,SACnBhyC,IAATgyC,IACPve,EAAOjT,GAAQwxB,IAK/B,OAAOve,GAGP0d,EAAO,CAEP4B,UAAW,SAASC,GAChB,OAAOA,GAAWr3C,KAAKs3C,GAAK,MAGhCC,UAAW,SAASC,GAChB,OAAOA,GAAW,IAAMx3C,KAAKs3C,KAGjCG,iBAAkB,SAASnE,GACvB,IAAI5N,EAAO4N,EAAI/rC,QAAQm+B,KACnBoN,EAAgBQ,EAAI/rC,QAAQmrC,KAAKI,cAQjC2B,EAAI/O,EAAKgL,YAAcoC,EAAc/+B,KAAO++B,EAAc7+B,MAC1DygC,EAAIhP,EAAK+K,aAAeqC,EAAc/hB,IAAM+hB,EAAcjK,OAG1B,eAAhCyK,EAAI/rC,QAAQmlC,OAAO9kB,WACnB8sB,GAAKpB,EAAIoE,eAAeC,cAGxBrE,EAAIoE,eAAe5gB,OAAO8gB,SAC1BlD,GAAKpB,EAAIoE,eAAe5gB,OAAO4d,GAMnC,IACImD,EAAaC,EADbC,GAAgBtD,GAFpBC,EAAKA,EAAI,EAAK,EAAIA,GAEWD,EAAIC,GAAK,EAItC,GAA4B,OAAxBhP,EAAKkL,eACL,GAAI,IAAI35B,KAAKyuB,EAAKkL,gBAAiB,CAG/BkH,GADAA,GADAA,EAAU5vB,SAASwd,EAAKkL,eAAe7jC,QAAQ,OAAQ,IAAK,KACvC,GAAM,GAAK+qC,GACX,EAAK,EAAIA,EAE9B,IAAIE,EAAqBvD,EAAIC,EAAKD,EAAIC,EAGtC,GAAwC,SAApCpB,EAAI/rC,QAAQ2Q,OAAO+4B,MAAMC,OAAmB,CAC5C,IAAI+G,EAAwE,EAArD/vB,SAASorB,EAAI/rC,QAAQ2Q,OAAO+4B,MAAMG,YAAa,IAClE4G,EAAoBC,EAAmB,IACvCD,GAAqBC,GAI7BF,EAAc/3C,KAAKG,MAAO63C,EAAoB,IAAOF,GAAW,OAEhEC,EAAc7vB,SAASwd,EAAKkL,eAAgB,IAKhD,IAAI35B,KAAKyuB,EAAKiL,iBAGdmH,GADAA,GADAA,EAAU5vB,SAASwd,EAAKiL,eAAe5jC,QAAQ,OAAQ,IAAK,KACvC,GAAM,GAAK+qC,GACX,EAAK,EAAIA,EAC9BD,EAAc73C,KAAKG,MAAO43C,EAAc,IAAOD,IAE/CD,EAAc3vB,SAASwd,EAAKiL,eAAgB,IAGhD2C,EAAIuE,YAAcA,EAClBvE,EAAIyE,YAAcA,GAGtBtC,gBAAiB,SAAS/lC,GAEtB,IADA,IAAI6lC,EAAY,EACP3jC,EAAE,EAAGA,EAAElC,EAAKU,OAAQwB,IACzB2jC,GAAa7lC,EAAKkC,GAAGjP,MAEzB,OAAO4yC,GAGX2C,YAAa,SAAS5E,GAClB,IAAI5jC,EAAuB4jC,EAAI/rC,QAAQmI,KAAK9H,QAG5C,OAF2B0rC,EAAI/rC,QAAQmI,KAAKmhC,WAGxC,IAAK,OAED,MACJ,IAAK,SACDnhC,EAAOgkC,EAAQO,aAAavkC,GAC5B,MACJ,IAAK,YACDA,EAAKghB,MAAK,SAASzF,EAAGC,GAAK,OAAQD,EAAEtoB,MAAQuoB,EAAEvoB,OAAU,EAAI,KAC7D,MACJ,IAAK,aACD+M,EAAKghB,MAAK,SAASzF,EAAGC,GAAK,OAAQD,EAAEtoB,MAAQuoB,EAAEvoB,MAAS,GAAK,KAC7D,MACJ,IAAK,YACD+M,EAAKghB,MAAK,SAASzF,EAAGC,GAAK,OAAQD,EAAEmjB,MAAMhjB,cAAgBF,EAAEkjB,MAAMhjB,cAAiB,GAAK,KACzF,MACJ,IAAK,aACD1b,EAAKghB,MAAK,SAASzF,EAAGC,GAAK,OAAQD,EAAEmjB,MAAMhjB,cAAgBF,EAAEkjB,MAAMhjB,cAAiB,GAAK,KAIjG,OAAO1b,GAIXyoC,sBAAuB,SAASC,GAC5B,MAAO,aAAeA,EAAUz4C,EAAI,IAAMy4C,EAAUztB,EAAI,KAQ5D0tB,mBAAoB,SAAS/E,GACzB,IAAIP,EAAkBO,EAAI/rC,QAAQmrC,KAAKK,gBACnCuF,EAAkBhF,EAAIoE,eAAe/vC,MAAMiwC,QAA0C,eAAhCtE,EAAI/rC,QAAQmlC,OAAO9kB,SACxE2wB,EAAkBjF,EAAIoE,eAAenH,SAASqH,QAA0C,eAAhCtE,EAAI/rC,QAAQmlC,OAAO9kB,SAE3E4wB,EAAelF,EAAI/rC,QAAQmrC,KAAKI,cAAc/hB,IAC9CunB,GAAeC,EACfC,GAAgBlF,EAAIoE,eAAe/vC,MAAM+sC,EAAIpB,EAAI/rC,QAAQmlC,OAAO8D,qBAAuB8C,EAAIoE,eAAenH,SAASmE,EAC5G4D,EACPE,GAAgBlF,EAAIoE,eAAe/vC,MAAM+sC,EAClC6D,IACPC,GAAgBlF,EAAIoE,eAAenH,SAASmE,GAGhD,IAAI+D,EAAe,EACfnF,EAAIoE,eAAe5gB,OAAO8gB,SAC1Ba,EAAenF,EAAIoE,eAAe5gB,OAAO4d,EAAIpB,EAAI/rC,QAAQmrC,KAAKI,cAAcjK,QAGhF,IAAIlpC,GAAM2zC,EAAI/rC,QAAQm+B,KAAKgL,YAAc4C,EAAI/rC,QAAQmrC,KAAKI,cAAc/+B,KAAOu/B,EAAI/rC,QAAQmrC,KAAKI,cAAc7+B,OAAS,EAAKq/B,EAAI/rC,QAAQmrC,KAAKI,cAAc/+B,KACvJ4W,GAAM2oB,EAAI/rC,QAAQm+B,KAAK+K,aAAegI,EAAeD,GAAgB,EAAKA,EAE9E74C,GAAKozC,EAAgBpzC,EACrBgrB,GAAKooB,EAAgBpoB,EAErB2oB,EAAI8E,UAAY,CAAEz4C,EAAGA,EAAGgrB,EAAGA,IAa/B+tB,OAAQ,SAAS/4C,EAAGgrB,EAAGguB,EAAIC,EAAI3tB,GAE3BA,EAAIA,EAAIjrB,KAAKs3C,GAAK,IAElB,IAAIuB,EAAM74C,KAAK64C,IACXC,EAAM94C,KAAK84C,IAKf,MAAO,CAAEn5C,GAHHA,EAAIg5C,GAAME,EAAI5tB,IAAMN,EAAIiuB,GAAME,EAAI7tB,GAAK0tB,EAG7BhuB,GAFVhrB,EAAIg5C,GAAMG,EAAI7tB,IAAMN,EAAIiuB,GAAMC,EAAI5tB,GAAK2tB,IAYjDG,UAAW,SAASp5C,EAAGgrB,EAAGa,EAAGP,GACzB,IAAI+tB,EAAOxD,EAAK4B,UAAUnsB,GAC1B,MAAO,CACHtrB,EAAGA,EAAI6rB,EAAIxrB,KAAK84C,IAAIE,GACpBruB,EAAGA,EAAIa,EAAIxrB,KAAK64C,IAAIG,KAK5BC,aAAc,SAASC,EAAIC,EAAQC,GAG/B,IAAIvE,EAAKuE,EAAMvB,aAANuB,CAAoBD,GACzBrE,EAAKsE,EAAMrB,aAANqB,CAAoBD,GACzBE,EAASD,EAAME,YAANF,CAAmBD,GAC5BI,EAASH,EAAMI,UAANJ,CAAiBD,GAE1BM,EAAOP,EAAGv5C,EAAIu5C,EAAGv5C,EAAIu5C,EAAGvuB,EAAIuuB,EAAGvuB,EAC/B+uB,EAAQ15C,KAAK25C,MAAMT,EAAGv5C,GAAIu5C,EAAGvuB,GAIjC,OAFA+uB,EAASA,EAAQ,EAAMA,EAAkB,EAAV15C,KAAKs3C,GAAUoC,EAEtC7E,EAAKA,GAAM4E,GAAUA,GAAQ3E,EAAKA,GACrCuE,GAAUK,GAAWA,GAASH,IAKvCrhC,EAAS,CAST0hC,IAAK,SAAStG,EAAKuG,EAASC,GACxB,IAAIC,EAAU7hC,EAAO8hC,YAAYF,GAC7BjQ,EAAWyJ,EAAI/rC,QAAQ2Q,OAGvB+hC,EAAa3G,EAAIQ,IAAIoG,OAAO,IAAK,IAAM5G,EAAIN,UAAY,UAAY6G,GAClEhoB,KAAK,QAASyhB,EAAIN,UAAY,UAAY6G,GAE3CM,EAAa7G,EAAI8G,SAASP,GAAWI,EAAWI,UAAU,IAAM/G,EAAIN,UAAY,cAAgB6G,GAC/FnqC,KAAK4jC,EAAI/rC,QAAQmI,KAAK9H,SACtB0yC,QACAtG,OAAO,KACPniB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO0hC,EAAIN,UAAY,aAAephC,EAAI,IAAMioC,KAC5EhoB,KAAK,cAAc,SAASrG,EAAG5Z,GAAK,OAAOA,KAC3CigB,KAAK,QAASyhB,EAAIN,UAAY,cAAgB6G,GAC9CvwC,MAAM,UAAW,GAElBixC,EAAmB,CAAEV,QAASA,EAASC,mBAAoBA,GAG3DC,EAAQzI,WACR6I,EAAWnG,OAAO,QACbniB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO0hC,EAAIN,UAAY,mBAAqBphC,EAAI,IAAMioC,KAClFhoB,KAAK,QAASyhB,EAAIN,UAAY,oBAAsB6G,GACpD3d,MAAK,SAAS1Q,EAAG5Z,GACd,IAAI4sB,EAAMhT,EAAE4iB,MAaZ,OATIvE,EAASlQ,WACT4gB,EAAiB3gB,MAAQhoB,EACzB2oC,EAAiBC,KAAO,YACxBD,EAAiB53C,MAAQ6oB,EAAE7oB,MAC3B43C,EAAiBnM,MAAQ5P,EACzBA,EAAMqL,EAASlQ,UAAU4gB,IAClB1Q,EAAS6H,WAAW/S,SAAWnT,EAAE4iB,MAAMh+B,OAASy5B,EAAS6H,WAAWC,iBAC3EnT,EAAMhT,EAAE4iB,MAAMvhB,UAAU,EAAGgd,EAAS6H,WAAWC,gBAAkB,OAE9DnT,KAEVl1B,MAAM,YAAaugC,EAASyH,UAAUjB,SAAW,MACjD/mC,MAAM,cAAeugC,EAASyH,UAAUhB,MACxChnC,MAAM,cAAeugC,EAASyH,UAAU/C,YACxCjlC,MAAM,QAAQ,SAASkiB,EAAG5Z,GACvB,MAAqC,YAA7Bi4B,EAASyH,UAAUlB,MAAuBkD,EAAI/rC,QAAQyJ,OAAOY,GAAKi4B,EAASyH,UAAUlB,SAKrG2J,EAAQxI,YACR4I,EAAWnG,OAAO,QACbniB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO0hC,EAAIN,UAAY,oBAAsBphC,EAAI,IAAMioC,KACnFhoB,KAAK,QAASyhB,EAAIN,UAAY,qBAAuB6G,GACrD3d,MAAK,SAAS1Q,EAAG5Z,GACd,IAAI2/B,EAAa/lB,EAAE+lB,WAUnB,OATI1H,EAASlQ,WACT4gB,EAAiB3gB,MAAQhoB,EACzB2oC,EAAiBC,KAAO,aACxBD,EAAiB53C,MAAQ6oB,EAAE7oB,MAC3B43C,EAAiBnM,MAAQ5iB,EAAE+lB,WAC3BA,EAAa1H,EAASlQ,UAAU4gB,IAEhChJ,GAAc,IAEXA,KAEVjoC,MAAM,YAAaugC,EAAS0H,WAAWlB,SAAW,MAClD/mC,MAAM,cAAeugC,EAAS0H,WAAWjB,MACzChnC,MAAM,cAAeugC,EAAS0H,WAAWhD,YACzCjlC,MAAM,OAAQugC,EAAS0H,WAAWnB,OAIvC2J,EAAQp3C,OACRw3C,EAAWnG,OAAO,QACbniB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO0hC,EAAIN,UAAa,eAAiBphC,EAAI,IAAMioC,KAC/EhoB,KAAK,QAASyhB,EAAIN,UAAY,gBAAkB6G,GAChD3d,MAAK,SAAS1Q,EAAG5Z,GAKd,OAJA2oC,EAAiB3gB,MAAQhoB,EACzB2oC,EAAiBC,KAAO,QACxBD,EAAiB53C,MAAQ6oB,EAAE7oB,MAC3B43C,EAAiBnM,MAAQ5iB,EAAE7oB,MACpBknC,EAASlQ,UAAYkQ,EAASlQ,UAAU4gB,EAAkB/uB,EAAE7oB,OAAS6oB,EAAE7oB,SAEjF2G,MAAM,YAAaugC,EAASlnC,MAAM0tC,SAAW,MAC7C/mC,MAAM,cAAeugC,EAASlnC,MAAM2tC,MACpChnC,MAAM,cAAeugC,EAASlnC,MAAM4rC,YACpCjlC,MAAM,OAAQugC,EAASlnC,MAAMytC,QAO1CqK,sBAAuB,SAASnH,EAAKuG,EAASC,GAC1C5hC,EAAO,cAAgB2hC,GAAW,GAGhBvG,EAAI8G,SAASP,GACnBhP,MAAK,SAASrf,EAAG5Z,GACzB,IAAI0/B,EAAaiC,GAAGQ,OAAOpwC,MAAM02C,UAAU,IAAM/G,EAAIN,UAAY,oBAAsB6G,GACnFtI,EAAagC,GAAGQ,OAAOpwC,MAAM02C,UAAU,IAAM/G,EAAIN,UAAY,qBAAuB6G,GACpFl3C,EAAa4wC,GAAGQ,OAAOpwC,MAAM02C,UAAU,IAAM/G,EAAIN,UAAY,gBAAkB6G,GAEnF3hC,EAAO,cAAgB2hC,GAASppB,KAAK,CACjC6gB,UAAkC,OAArBA,EAAUn6B,OAAmBm6B,EAAUn6B,OAAOw9B,UAAY,KACvEpD,WAAmC,OAAtBA,EAAWp6B,OAAmBo6B,EAAWp6B,OAAOw9B,UAAY,KACzEhyC,MAA8B,OAAjBA,EAAMwU,OAAmBxU,EAAMwU,OAAOw9B,UAAY,UAIvE,IACI+F,EAAOxiC,EAAO,cAAgB2hC,GAClC,OAAQC,GACJ,IAAK,eACDxG,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,gBAAkB6G,GACrDhoB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO8oC,EAAK9oC,GAAG0/B,UAAU15B,MAL9C,KAMZ,MACJ,IAAK,eACD07B,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,gBAAkB6G,GACrDhoB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO8oC,EAAK9oC,GAAG0/B,UAAU/nC,UAC1D,MACJ,IAAK,oBACD+pC,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,qBAAuB6G,GAC1DhoB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO8oC,EAAK9oC,GAAG0/B,UAAU15B,MAb9C,KAcZ,MACJ,IAAK,oBACD07B,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,qBAAuB6G,GAC1DhoB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAQ8oC,EAAK9oC,GAAG0/B,UAAU15B,MAAQ,EAAM8iC,EAAK9oC,GAAG2/B,WAAW35B,MAAQ,KAC/Fia,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO8oC,EAAK9oC,GAAG0/B,UAAU/nC,YAKtEoxC,0BAA2B,SAASrH,GAChCA,EAAIsH,gBAAkB,GACtBtH,EAAI8G,SAASnJ,MACRpG,MAAK,SAASrf,EAAG5Z,GAAK,OAAOsG,EAAO2iC,oBAAoBvH,EAAK1hC,OAGtEipC,oBAAqB,SAASvH,EAAK1hC,GAC/B,IAOIkpC,EAAIC,EAAIC,EAAIC,EAPZvB,EAAQ/G,EAASuI,gBAAgBtpC,EAAG0hC,EAAI/rC,QAAQmI,KAAK9H,QAAS0rC,EAAIiC,UAAW,CAAE4F,UAAU,IACzFC,EAAe5F,EAAKkD,OAAOpF,EAAI8E,UAAUz4C,EAAG2zC,EAAI8E,UAAUztB,EAAI2oB,EAAIyE,YAAazE,EAAI8E,UAAUz4C,EAAG2zC,EAAI8E,UAAUztB,EAAG+uB,GACjH2B,EAAe/H,EAAIgI,oBAAoB1pC,GAAG8iC,EAAI,EAG9C6G,EAAUv7C,KAAKG,MAAMu5C,EAAQ,IASjC,OAJgB,IAAZ6B,GAA2B,MAAV7B,IACjB6B,EAAU,GAGNA,GACJ,KAAK,EACDT,EAAKxH,EAAIgI,oBAAoB1pC,GAAGjS,EAbrB,GAa0C2zC,EAAIgI,oBAAoB1pC,GAAGjS,EAbrE,EAawFy7C,EAAaz7C,GAAK,EACrHo7C,EAAKzH,EAAIgI,oBAAoB1pC,GAAG+Y,GAAMywB,EAAazwB,EAAI2oB,EAAIgI,oBAAoB1pC,GAAG+Y,GAX3E,EAYPqwB,EAAK1H,EAAIgI,oBAAoB1pC,GAAGjS,EAfrB,EAgBXs7C,EAAK3H,EAAIgI,oBAAoB1pC,GAAG+Y,EAAI0wB,EACpC,MACJ,KAAK,EACDP,EAAKM,EAAaz7C,GAAK2zC,EAAIgI,oBAAoB1pC,GAAGjS,EAAIy7C,EAAaz7C,GAhB5D,EAiBPo7C,EAAKK,EAAazwB,GAAK2oB,EAAIgI,oBAAoB1pC,GAAG+Y,EAAIywB,EAAazwB,GAjB5D,EAkBPqwB,EAAK1H,EAAIgI,oBAAoB1pC,GAAGjS,EArBrB,EAsBXs7C,EAAK3H,EAAIgI,oBAAoB1pC,GAAG+Y,EAAI0wB,EACpC,MACJ,KAAK,EACD,IAAIG,EAAgBlI,EAAIgI,oBAAoB1pC,GAAGjS,EAAI2zC,EAAIgI,oBAAoB1pC,GAAG6iC,EAzBnE,EA0BXqG,EAAKM,EAAaz7C,GAAKy7C,EAAaz7C,EAAI67C,GAvBjC,EAwBPT,EAAKK,EAAazwB,GAAK2oB,EAAIgI,oBAAoB1pC,GAAG+Y,EAAIywB,EAAazwB,GAxB5D,EAyBPqwB,EAAK1H,EAAIgI,oBAAoB1pC,GAAGjS,EAAI2zC,EAAIgI,oBAAoB1pC,GAAG6iC,EA5BpD,EA6BXwG,EAAK3H,EAAIgI,oBAAoB1pC,GAAG+Y,EAAI0wB,EACpC,MACJ,KAAK,EACD,IAAII,EAAenI,EAAIgI,oBAAoB1pC,GAAGjS,EAAI2zC,EAAIgI,oBAAoB1pC,GAAG6iC,EAhClE,EAiCXqG,EAAKW,GAAiBL,EAAaz7C,EAAI87C,GA9BhC,EA+BPV,EAAKzH,EAAIgI,oBAAoB1pC,GAAG+Y,GAAKywB,EAAazwB,EAAI2oB,EAAIgI,oBAAoB1pC,GAAG+Y,GA/B1E,EAgCPqwB,EAAK1H,EAAIgI,oBAAoB1pC,GAAGjS,EAAI2zC,EAAIgI,oBAAoB1pC,GAAG6iC,EAnCpD,EAoCXwG,EAAK3H,EAAIgI,oBAAoB1pC,GAAG+Y,EAAI0wB,EASL,aAAnC/H,EAAI/rC,QAAQ2Q,OAAOu5B,MAAMnoC,MACzBgqC,EAAIsH,gBAAgBhpC,GAAK,CACrB,CAAEjS,EAAGy7C,EAAaz7C,EAAGgrB,EAAGywB,EAAazwB,GACrC,CAAEhrB,EAAGq7C,EAAIrwB,EAAGswB,IAGhB3H,EAAIsH,gBAAgBhpC,GAAK,CACrB,CAAEjS,EAAGy7C,EAAaz7C,EAAGgrB,EAAGywB,EAAazwB,GACrC,CAAEhrB,EAAGm7C,EAAInwB,EAAGowB,GACZ,CAAEp7C,EAAGq7C,EAAIrwB,EAAGswB,KAKxBS,cAAe,SAASpI,GACpB,IAIIqI,EAJarI,EAAIQ,IAAIoG,OAAO,IAAK,IAAM5G,EAAIN,UAAY,YACtDnhB,KAAK,QAASyhB,EAAIN,UAAY,cAC9B1pC,MAAM,UAAW,GAEK+wC,UAAU,IAAM/G,EAAIN,UAAY,aACtDtjC,KAAK4jC,EAAIsH,iBACTN,QACAtG,OAAO,KACPniB,KAAK,QAASyhB,EAAIN,UAAY,aAE/B4I,EAAerI,GAAGsI,OACjBC,MAAMvI,GAAGwI,YACTp8C,GAAE,SAAS6rB,GAAK,OAAOA,EAAE7rB,KACzBgrB,GAAE,SAASa,GAAK,OAAOA,EAAEb,KAE9BgxB,EAAU3H,OAAO,QACZniB,KAAK,IAAK+pB,GACV/pB,KAAK,UAAU,SAASrG,EAAG5Z,GACxB,MAA2C,YAAnC0hC,EAAI/rC,QAAQ2Q,OAAOu5B,MAAMrB,MAAuBkD,EAAI/rC,QAAQyJ,OAAOY,GAAK0hC,EAAI/rC,QAAQ2Q,OAAOu5B,MAAMrB,SAE5Gve,KAAK,eAAgB,GACrBA,KAAK,OAAQ,QACbvoB,MAAM,WAAW,SAASkiB,EAAG5Z,GAC1B,IAAI2/B,EAAa+B,EAAI/rC,QAAQ2Q,OAAO+4B,MAAME,2BAE1C,OAD+B,OAAfI,GAAuB/lB,EAAE+lB,WAAaA,GAAqD,KAAtC+B,EAAI/rC,QAAQmI,KAAK9H,QAAQgK,GAAGw8B,MAC/E,EAAI,MAIlC4N,oBAAqB,SAAS1I,EAAKuG,GACY,SAAvCvG,EAAI/rC,QAAQ2Q,OAAO2hC,GAAS3I,QAGhCoC,EAAI8G,SAASP,GACRvwC,MAAM,WAAW,SAASkiB,EAAG5Z,GAC1B,IAAI2/B,EAAa+B,EAAI/rC,QAAQ2Q,OAAO2hC,GAAS1I,2BAC7C,OAAuB,OAAfI,GAAuB/lB,EAAE+lB,WAAaA,EAAc,EAAI,KAEnE1f,KAAK,aAAa,SAASrG,EAAG5Z,GAC3B,IAAIjS,EAAGgrB,EACP,GAAgB,UAAZkvB,EACAl6C,EAAI2zC,EAAIgI,oBAAoB1pC,GAAGjS,EAC/BgrB,EAAI2oB,EAAIgI,oBAAoB1pC,GAAG+Y,MAC5B,CACH,IAAIsxB,EAAgBrf,GAAO,EAAM,GAAI0W,EAAI8E,WAGzC,GAAI9E,EAAIuE,YAAc,EAAG,CACrB,IAAI6B,EAAQ/G,EAASuI,gBAAgBtpC,EAAG0hC,EAAI/rC,QAAQmI,KAAK9H,QAAS0rC,EAAIiC,UAAW,CAAE4F,UAAU,IACzFe,EAAY1G,EAAKuD,UAAUzF,EAAI8E,UAAUz4C,EAAG2zC,EAAI8E,UAAUztB,EAAG2oB,EAAIuE,YAAa6B,GAClFuC,EAAct8C,EAAIu8C,EAAUv8C,EAC5Bs8C,EAActxB,EAAIuxB,EAAUvxB,EAGhC,IAAI+vB,EAAOhH,EAAQc,cAAclB,EAAIN,UAAY,aAAephC,EAAI,UAChEuqC,EAAUzB,EAAKjG,EAAI,EACnB2H,EAAU1B,EAAKhG,EAAI,EAEvB/0C,EAAIs8C,EAAct8C,GAAK2zC,EAAIsH,gBAAgBhpC,GAAG,GAAGjS,EAAIs8C,EAAct8C,GAAK,IACxEgrB,EAAIsxB,EAActxB,GAAK2oB,EAAIsH,gBAAgBhpC,GAAG,GAAG+Y,EAAIsxB,EAActxB,GAAK,IAExEhrB,GAAQw8C,EACRxxB,GAAQyxB,EAGZ,MAAO,aAAez8C,EAAI,IAAMgrB,EAAI,QAKhDqvB,YAAa,SAASqC,GAClB,IAAIC,GAAgB,EAChBC,GAAgB,EAChBC,GAAgB,EAEpB,OAAQH,GACJ,IAAK,QACDC,GAAe,EACf,MACJ,IAAK,QACDC,GAAW,EACX,MACJ,IAAK,aACDC,GAAgB,EAChB,MACJ,IAAK,eACL,IAAK,eACDF,GAAe,EACfC,GAAW,EACX,MACJ,IAAK,oBACL,IAAK,oBACDD,GAAe,EACfE,GAAgB,EAGxB,MAAO,CACHlL,UAAWgL,EACX35C,MAAO45C,EACPhL,WAAYiL,IAUpBC,wBAAyB,SAASnJ,GAG9BA,EAAI8G,SAASnJ,MACRpG,MAAK,SAASrf,EAAG5Z,GACd,OAAOsG,EAAOwkC,4BAA4BpJ,EAAK1hC,MAIvDsG,EAAOykC,4BAA4BrJ,IAMvCqJ,4BAA6B,SAASrJ,GACtC,GAAwC,SAApCA,EAAI/rC,QAAQ2Q,OAAO+4B,MAAMC,OAA7B,CAII,IAAIxL,EAAO4N,EAAI/rC,QAAQmI,KAAK9H,QAAQwI,OACpC8H,EAAO0kC,cAActJ,EAAK,EAAG,YAAa5N,GAC1CxtB,EAAO0kC,cAActJ,EAAK5N,EAAK,EAAG,gBAAiBA,KAGvDkX,cAAe,SAAStJ,EAAKuJ,EAAWC,EAAWpX,GACnD,IAAI9zB,EAAGmrC,EAEH,KAAIrX,GAAQ,GAAZ,CAIA,IAAIsX,EAAsB1J,EAAIgI,oBAAoBuB,GAAWI,GAC7D,IAAkB,cAAdH,GAAqD,UAAxBE,KAGf,kBAAdF,GAAyD,SAAxBE,GAArC,CAGA,IAAIE,EAA2B,cAAdJ,EAA6BD,EAAU,EAAIA,EAAU,EAIlEM,EAAiB7J,EAAIgI,oBAAoBuB,GAGzCO,EAAqB9J,EAAIgI,oBAAoB4B,GAE7C/oB,EAAO,CACPkpB,aAAc/J,EAAIgI,oBAAoB,GAAG5G,EACzC4I,OAAQhK,EAAI8E,UACZmF,WAAajK,EAAIyE,YAAczE,EAAI/rC,QAAQ2Q,OAAO+4B,MAAMG,YACxDoM,aAAclK,EAAIgI,oBAAoB,GAAG5G,EAAI,GAKjD,GAAkB,cAAdoI,GAEA,IADNlrC,EAAI,EACSA,GAAGirC,EAAWjrC,IAKjB,GAJAmrC,EAAOzJ,EAAIgI,oBAAoB1pC,IAI1BsG,EAAOulC,cAAcnK,EAAK1hC,IAAM8hC,EAAQkB,cAAcmI,EAAMK,GAAqB,CAClFllC,EAAOwlC,eAAepK,EAAK4J,EAAWC,EAAgBhpB,GACtD,YAKR,IADNviB,EAAI8zB,EAAO,EACE9zB,GAAKirC,EAAWjrC,IAKnB,GAJAmrC,EAAOzJ,EAAIgI,oBAAoB1pC,IAI1BsG,EAAOulC,cAAcnK,EAAK1hC,IAAM8hC,EAAQkB,cAAcmI,EAAMK,GAAqB,CAClFllC,EAAOwlC,eAAepK,EAAK4J,EAAWC,EAAgBhpB,GACtD,MAIZjc,EAAO0kC,cAActJ,EAAK4J,EAAWJ,EAAWpX,MAGpD+X,cAAe,SAASnK,EAAK1Z,GACzB,IAAI2X,EAAa+B,EAAI/rC,QAAQ2Q,OAAO+4B,MAAME,2BAC1C,OAAuB,OAAfI,GAAuB/lB,EAAE+lB,WAAaA,GAAyD,KAA1C+B,EAAI/rC,QAAQmI,KAAK9H,QAAQgyB,GAAOwU,OAIjGsP,eAAgB,SAASpK,EAAK4J,EAAWS,EAA8BxpB,GACnE,IAAIypB,EAAOC,EAAOC,EAASC,EAC3BA,EAAUJ,EAA6BhzB,EAAIwJ,EAAKqpB,aAChDK,EAAQ1pB,EAAKmpB,OAAO3yB,EAAIozB,EAGpBH,EADA59C,KAAKC,IAAIk0B,EAAKopB,YAAcv9C,KAAKC,IAAI49C,GAC7B79C,KAAKg+C,KAAM7pB,EAAKopB,WAAappB,EAAKopB,WAAeM,EAAQA,GAEzD79C,KAAKg+C,KAAMH,EAAQA,EAAU1pB,EAAKopB,WAAappB,EAAKopB,YAI5DO,EADoC,UAApCH,EAA6BV,GACnB9oB,EAAKmpB,OAAO39C,EAAIi+C,EAEhBzpB,EAAKmpB,OAAO39C,EAAIi+C,EAAQtK,EAAIgI,oBAAoB4B,GAAWzI,EAGzEnB,EAAIgI,oBAAoB4B,GAAWv9C,EAAIm+C,EACvCxK,EAAIgI,oBAAoB4B,GAAWvyB,EAAIozB,GAM3CrB,4BAA6B,SAASpJ,EAAK1hC,GACvC,IAAIqsC,EAAiB3K,EAAIQ,IAAIC,OAAO,IAAMT,EAAIN,UAAY,aAAephC,EAAI,UAAUuF,OACvF,GAAK8mC,EAAL,CAEA,IAAIC,EAAiBD,EAAetJ,UAChC+E,EAAQ/G,EAASuI,gBAAgBtpC,EAAG0hC,EAAI/rC,QAAQmI,KAAK9H,QAAS0rC,EAAIiC,UAAW,CAAE4F,UAAU,IAEzFgD,EAAY7K,EAAI8E,UAAUz4C,EAC1By+C,EAAY9K,EAAI8E,UAAUztB,GAAK2oB,EAAIyE,YAAczE,EAAI/rC,QAAQ2Q,OAAO+4B,MAAMG,aAC1E8K,EAAY1G,EAAKkD,OAAOyF,EAAWC,EAAW9K,EAAI8E,UAAUz4C,EAAG2zC,EAAI8E,UAAUztB,EAAG+uB,GAGhF2E,EAAa,QACb3E,EAAQ,KACRwC,EAAUv8C,GAAMu+C,EAAetmC,MAAQ,EACvCymC,EAAa,QAEbnC,EAAUv8C,GAAK,EAGnB2zC,EAAIgI,oBAAoB1pC,GAAK,CACzBjS,EAAGu8C,EAAUv8C,EACbgrB,EAAGuxB,EAAUvxB,EACb8pB,EAAGyJ,EAAetmC,MAClB88B,EAAGwJ,EAAe30C,OAClB0zC,GAAIoB,MAMZ1L,EAAW,CAEX2L,UAAW,CACP,KAAQ/K,GAAGgL,WACX,OAAUhL,GAAGiL,WACb,OAAUjL,GAAGgL,WACb,IAAOhL,GAAGkL,QACV,QAAWlL,GAAGmL,YACd,KAAQnL,GAAGoL,SACX,KAAQpL,GAAGqL,SACX,OAAUrL,GAAGsL,WACb,IAAOtL,GAAGuL,SAOdC,OAAQ,SAASzL,GACb,IAAI8E,EAAY9E,EAAI8E,UAChBpnC,EAASsiC,EAAI/rC,QAAQyJ,OAErB4hC,GADcU,EAAI/rC,QAAQqqC,QAAQC,KAClByB,EAAI/rC,QAAQmrC,KAAK1hC,OAAO4hC,eAGxCoM,EAAkB1L,EAAIQ,IAAIoG,OAAO,IAAK,IAAM5G,EAAIN,UAAY,SAC3DnhB,KAAK,aAAa,WAAa,OAAO2jB,EAAK2C,sBAAsBC,MACjEvmB,KAAK,QAASyhB,EAAIN,UAAY,YAE/BiM,EAAM1L,GAAG0L,MACRpH,YAAYvE,EAAIuE,aAChBE,YAAYzE,EAAIyE,aAChBuB,WAAW,GACXE,UAAS,SAAShuB,GACf,OAAQA,EAAE7oB,MAAQ2wC,EAAIiC,UAAa,EAAIv1C,KAAKs3C,MAG5C0H,EAAgB3E,UAAU,IAAM/G,EAAIN,UAAY,OACnDtjC,KAAK4jC,EAAI/rC,QAAQmI,KAAK9H,SACtB0yC,QACAtG,OAAO,KACPniB,KAAK,QAASyhB,EAAIN,UAAY,OAQjCgB,OAAO,QACJniB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO0hC,EAAIN,UAAY,UAAYphC,KAC/DigB,KAAK,QAAQ,SAASrG,EAAG5Z,GACtB,IAAIw+B,EAAQp/B,EAAOY,GAInB,OAHI0hC,EAAI/rC,QAAQmrC,KAAKG,SAASlU,UAC1ByR,EAAQ,QAAUkD,EAAIN,UAAY,OAASphC,EAAI,KAE5Cw+B,KAEV9mC,MAAM,SAAUspC,GAChBtpC,MAAM,eAAgB,GAItBuoB,KAAK,cAAc,SAASrG,EAAG5Z,GAAK,OAAOA,KAC3CigB,KAAK,IAAKotB,GAWf3L,EAAIQ,IAAIuG,UAAU,KAAO/G,EAAIN,UAAY,OACpCnhB,KAAK,aACN,SAASrG,EAAG5Z,GACR,IAAI8nC,EAAQ,EAIZ,OAHI9nC,EAAI,IACJ8nC,EAAQ/G,EAASuI,gBAAgBtpC,EAAE,EAAG0hC,EAAI/rC,QAAQmI,KAAK9H,QAAS0rC,EAAIiC,YAEjE,UAAYmE,EAAQ,OAGnCpG,EAAI2L,IAAMA,GAGdC,aAAc,SAAS5L,GACnB,IAAI6L,EAAQ7L,EAAIQ,IAAIE,OAAO,QACtBqG,UAAU,kBACV3qC,KAAK4jC,EAAI/rC,QAAQmI,KAAK9H,SACtB0yC,QAAQtG,OAAO,kBACfniB,KAAK,gBAAiB,kBACtBA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,IAAK,QACVA,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO0hC,EAAIN,UAAY,OAASphC,KAEjEutC,EAAMnL,OAAO,QAAQniB,KAAK,SAAU,MAAMvoB,MAAM,cAAc,SAASkiB,EAAG5Z,GAAK,OAAO0hC,EAAI/rC,QAAQyJ,OAAOY,MACzGutC,EAAMnL,OAAO,QAAQniB,KAAK,SAAUyhB,EAAI/rC,QAAQmrC,KAAKG,SAAStB,WAAa,KAAKjoC,MAAM,aAAcgqC,EAAI/rC,QAAQmrC,KAAKG,SAASzC,QAGlIgP,wBAAyB,SAAS9L,GAC9B,IAAI2L,EAAM3L,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,QAClDiM,EAAMA,EAAII,MAAM/L,EAAI8G,SAAS/I,MAAMgO,MAAM/L,EAAI8G,SAASnJ,SAElDhgC,GAAG,SAAS,WACZ,IACIquC,EADAC,EAAYhM,GAAGQ,OAAOpwC,MAI1B,GAAI47C,EAAU1tB,KAAK,WAAayhB,EAAIN,UAAY,MAC5CsM,EAAUC,EAAUxL,OAAO,YACxB,CACH,IAAIna,EAAQ2lB,EAAU1tB,KAAK,cAC3BytB,EAAU/L,GAAGQ,OAAO,IAAMT,EAAIN,UAAY,UAAYpZ,GAG1D,IAAI4lB,EAAaF,EAAQztB,KAAK,WAAayhB,EAAIN,UAAY,WAC3DL,EAAS8M,eAAenM,EAAKA,EAAI/rC,QAAQ0rC,UAAUG,eAAgBkM,EAASE,GACnB,SAArDlM,EAAI/rC,QAAQqqC,QAAQI,sBAAsBF,SACtC0N,EACA7M,EAAS+M,aAAapM,EAAKgM,EAAQnoC,QAEnCw7B,EAASgN,YAAYrM,EAAKgM,EAAQnoC,YAK9C8nC,EAAIhuC,GAAG,aAAa,WAChB,IACIquC,EAAS1lB,EADT2lB,EAAYhM,GAAGQ,OAAOpwC,MAU1B,GAPI47C,EAAU1tB,KAAK,WAAayhB,EAAIN,UAAY,MAC5CsM,EAAUC,EAAUxL,OAAO,SAE3Bna,EAAQ2lB,EAAU1tB,KAAK,cACvBytB,EAAU/L,GAAGQ,OAAO,IAAMT,EAAIN,UAAY,UAAYpZ,IAGtD0Z,EAAI/rC,QAAQqqC,QAAQK,4BAA6B,CACjDrY,EAAQ0lB,EAAQztB,KAAK,cACrB,IAAI+tB,EAAWtM,EAAI/rC,QAAQyJ,OAAO4oB,GAClC0lB,EAAQh2C,MAAM,OAAQoqC,EAAQqB,cAAc6K,EAAUtM,EAAI/rC,QAAQqqC,QAAQM,sBAG1EoB,EAAI/rC,QAAQ4qC,SAASxT,UACrB/E,EAAQ0lB,EAAQztB,KAAK,cACrBguB,EAAGC,YAAYxM,EAAK1Z,IAGxB,IAAI4lB,EAAaF,EAAQztB,KAAK,WAAayhB,EAAIN,UAAY,WAC3DL,EAAS8M,eAAenM,EAAKA,EAAI/rC,QAAQ0rC,UAAUC,mBAAoBoM,EAASE,MAGpFP,EAAIhuC,GAAG,aAAa,WAChB4uC,EAAGE,YAAYzM,MAGnB2L,EAAIhuC,GAAG,YAAY,WACf,IACIquC,EAAS1lB,EADT2lB,EAAYhM,GAAGQ,OAAOpwC,MAU1B,GAPI47C,EAAU1tB,KAAK,WAAayhB,EAAIN,UAAY,MAC5CsM,EAAUC,EAAUxL,OAAO,SAE3Bna,EAAQ2lB,EAAU1tB,KAAK,cACvBytB,EAAU/L,GAAGQ,OAAO,IAAMT,EAAIN,UAAY,UAAYpZ,IAGtD0Z,EAAI/rC,QAAQqqC,QAAQK,4BAA6B,CACjDrY,EAAQ0lB,EAAQztB,KAAK,cACrB,IAAIue,EAAQkD,EAAI/rC,QAAQyJ,OAAO4oB,GAC3B0Z,EAAI/rC,QAAQmrC,KAAKG,SAASlU,UAC1ByR,EAAQ,QAAUkD,EAAIN,UAAY,OAASpZ,EAAQ,KAEvD0lB,EAAQh2C,MAAM,OAAQ8mC,GAGtBkD,EAAI/rC,QAAQ4qC,SAASxT,UACrB/E,EAAQ0lB,EAAQztB,KAAK,cACrBguB,EAAGG,YAAY1M,EAAK1Z,IAGxB,IAAI4lB,EAAaF,EAAQztB,KAAK,WAAayhB,EAAIN,UAAY,WAC3DL,EAAS8M,eAAenM,EAAKA,EAAI/rC,QAAQ0rC,UAAUE,kBAAmBmM,EAASE,OAKvFC,eAAgB,SAASnM,EAAK2M,EAAMX,EAASE,GACzC,GAAK9L,EAAQqC,WAAWkK,GAAxB,CAGA,IAAIrmB,EAAQ1R,SAASo3B,EAAQztB,KAAK,cAAe,IACjDouB,EAAK,CACDX,QAASA,EAAQnoC,OACjByiB,MAAOA,EACPsmB,SAAUV,EACV9vC,KAAM4jC,EAAI/rC,QAAQmI,KAAK9H,QAAQgyB,OAIvC+lB,YAAa,SAASrM,EAAKgM,GACnBhM,EAAI6M,mBAGR7M,EAAI6M,kBAAmB,EAEvBxN,EAASyN,sBAAsB9M,GAE/BC,GAAGQ,OAAOuL,GACLe,aACAC,KAAK3N,EAAS2L,UAAUhL,EAAI/rC,QAAQqqC,QAAQI,sBAAsBF,SAClEjiB,SAASyjB,EAAI/rC,QAAQqqC,QAAQI,sBAAsBD,OACnDlgB,KAAK,aAAa,SAASrG,EAAG5Z,GAC3B,IAAI0Z,EAAIgoB,EAAI2L,IAAIsB,SAAS/0B,GACrB7rB,EAAI2rB,EAAE,GACNX,EAAIW,EAAE,GACNopB,EAAI10C,KAAKg+C,KAAKr+C,EAAEA,EAAIgrB,EAAEA,GACtB61B,EAAct4B,SAASorB,EAAI/rC,QAAQqqC,QAAQI,sBAAsBtM,KAAM,IAE3E,MAAO,aAAiB/lC,EAAE+0C,EAAK8L,EAAe,IAAQ71B,EAAE+pB,EAAK8L,EAAe,OAE/EvvC,GAAG,OAAO,SAASua,EAAG5Z,GACnB0hC,EAAImN,qBAAuBnB,EAC3BhM,EAAI6M,kBAAmB,EACvB5M,GAAGQ,OAAOuL,GAASztB,KAAK,QAASyhB,EAAIN,UAAY,iBAI7DoN,sBAAuB,SAAS9M,GACT,qBAARA,GAAuBA,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,YAAYtN,OAAS,GAC3FiN,EAAS+M,aAAapM,EAAKA,EAAIQ,IAAIC,OAAO,IAAMT,EAAIN,UAAY,YAAY77B,SAIpFuoC,aAAc,SAASpM,EAAKgM,GACxB/L,GAAGQ,OAAOuL,GACLe,aACAxwB,SAAS,KACTgC,KAAK,YAAa,kBAClB5gB,GAAG,OAAO,SAASua,EAAG5Z,GACnB2hC,GAAGQ,OAAOuL,GAASztB,KAAK,QAAS,IACjCyhB,EAAImN,qBAAuB,SAIvCC,YAAa,SAASv0B,GAClB,IAAIw0B,EAAOx0B,EAAGwoB,UACd,MAAO,CACHh1C,EAAGghD,EAAKhhD,EAAIghD,EAAK/oC,MAAQ,EACzB+S,EAAGg2B,EAAKh2B,EAAIg2B,EAAKp3C,OAAS,IASlC2xC,gBAAiB,SAASthB,EAAOlqB,EAAM6lC,EAAWqL,GAC9C,IASIC,EATAt5C,EAAUq1B,EAAO,CAEjBkkB,YAAY,EAGZ3F,UAAU,GACXyF,GAECG,EAAYrxC,EAAKkqB,GAAOj3B,MAE5B,GAAI4E,EAAQu5C,WAAY,CACpBD,EAAY,EAGZ,IAAK,IAAIjvC,EAAE,EAAGA,GAAGgoB,EAAOhoB,IACpBivC,GAAanxC,EAAKkC,GAAGjP,MAIJ,qBAAdk+C,IACPA,EAAYE,GAIhB,IAAIrH,EAASmH,EAAYtL,EAAa,IAQtC,OALIhuC,EAAQ4zC,WAERzB,GADiBqH,EAAYxL,EAAa,IACpB,GAGnBmE,IAMXxd,EAAO,CACP8kB,gBAAiB,IAEjBC,SAAU,SAAS3N,GACfA,EAAI4N,QAAU5N,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,SACjDtjC,KAAK,CAAC4jC,EAAI/rC,QAAQmlC,OAAO/kC,QACzB2yC,QACAtG,OAAO,QACP9X,MAAK,SAAS1Q,GAAK,OAAOA,EAAE0Q,QAC5BrK,KAAK,KAAMyhB,EAAIN,UAAY,SAC3BnhB,KAAK,QAASyhB,EAAIN,UAAY,SAC9BnhB,KAAK,IAAKqK,EAAK8kB,gBACfnvB,KAAK,IAAKqK,EAAK8kB,gBACfnvB,KAAK,eAAe,WAOjB,MALoC,eAAhCyhB,EAAI/rC,QAAQmlC,OAAO9kB,UAA6D,eAAhC0rB,EAAI/rC,QAAQmlC,OAAO9kB,SACxD,SAEA,UAIlBiK,KAAK,QAAQ,SAASrG,GAAK,OAAOA,EAAE4kB,SACpC9mC,MAAM,aAAa,SAASkiB,GAAK,OAAOA,EAAE6kB,SAAW,QACrD/mC,MAAM,eAAe,SAASkiB,GAAK,OAAOA,EAAE+iB,cAC5CjlC,MAAM,eAAe,SAASkiB,GAAK,OAAOA,EAAE8kB,SAGrD6Q,cAAe,SAAS7N,GACpB,IAMI3zC,EANA+3C,EAAiBpE,EAAIoE,eACrB0J,EAAiB9N,EAAI/rC,QAAQmlC,OAAO9kB,SACpCkrB,EAAgBQ,EAAI/rC,QAAQmrC,KAAKI,cACjCpC,EAAc4C,EAAI/rC,QAAQm+B,KAAKgL,YAC/BF,EAAuB8C,EAAI/rC,QAAQmlC,OAAO8D,qBAI1C7wC,EADmB,aAAnByhD,EACItO,EAAc/+B,MAEZ28B,EAAcoC,EAAc7+B,OAAS,EAAK6+B,EAAc/+B,KAIlEpU,GAAK2zC,EAAI/rC,QAAQmrC,KAAKK,gBAAgBpzC,EAEtC,IAAIgrB,EAAImoB,EAAc/hB,IAAM2mB,EAAe/vC,MAAM+sC,EAE1B,eAAnB0M,IACAz2B,EAAI2oB,EAAI8E,UAAUztB,EAGd+sB,EAAenH,SAASqH,OAExBjtB,EAAIA,GADmB+sB,EAAe/vC,MAAM+sC,EAAIlE,EAAuBkH,EAAenH,SAASmE,GACnE,EAAKgD,EAAe/vC,MAAM+sC,EAEtD/pB,GAAM+sB,EAAe/vC,MAAM+sC,EAAI,GAIvCpB,EAAI4N,QACCrvB,KAAK,IAAKlyB,GACVkyB,KAAK,IAAKlH,IAGnB02B,YAAa,SAAS/N,GAClB,IAAI8N,EAAiB9N,EAAI/rC,QAAQmlC,OAAO9kB,SAExC0rB,EAAIgO,WAAahO,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,YACpDtjC,KAAK,CAAC4jC,EAAI/rC,QAAQmlC,OAAO6D,WACzB+J,QACAtG,OAAO,QACP9X,MAAK,SAAS1Q,GAAK,OAAOA,EAAE0Q,QAC5BrK,KAAK,IAAKqK,EAAK8kB,gBACfnvB,KAAK,IAAKqK,EAAK8kB,gBACfnvB,KAAK,KAAMyhB,EAAIN,UAAY,YAC3BnhB,KAAK,QAASyhB,EAAIN,UAAY,YAC9BnhB,KAAK,eAAe,WAOjB,MALuB,eAAnBuvB,GAAsD,eAAnBA,EACxB,SAEA,UAIlBvvB,KAAK,QAAQ,SAASrG,GAAK,OAAOA,EAAE4kB,SACpC9mC,MAAM,aAAa,SAASkiB,GAAK,OAAOA,EAAE6kB,SAAW,QACrD/mC,MAAM,eAAe,SAASkiB,GAAK,OAAOA,EAAE+iB,cAC5CjlC,MAAM,eAAe,SAASkiB,GAAK,OAAOA,EAAE8kB,SAGrDiR,iBAAkB,SAASjO,GACvB,IAGI3zC,EAHAmzC,EAAgBQ,EAAI/rC,QAAQmrC,KAAKI,cACjCpC,EAAc4C,EAAI/rC,QAAQm+B,KAAKgL,YAI/B/wC,EADgC,aAAhC2zC,EAAI/rC,QAAQmlC,OAAO9kB,SACfkrB,EAAc/+B,MAEZ28B,EAAcoC,EAAc7+B,OAAS,EAAK6+B,EAAc/+B,KAIlEpU,GAAK2zC,EAAI/rC,QAAQmrC,KAAKK,gBAAgBpzC,EAEtC,IAAIgrB,EAAIuR,EAAKslB,gBAAgBlO,GAE7BA,EAAIgO,WACCzvB,KAAK,IAAKlyB,GACVkyB,KAAK,IAAKlH,IAGnB82B,UAAW,SAASnO,GAChBA,EAAIoO,SAAWpO,EAAIQ,IAAIuG,UAAU,IAAM/G,EAAIN,UAAY,UAClDtjC,KAAK,CAAC4jC,EAAI/rC,QAAQuvB,SAClBwjB,QACAtG,OAAO,QACP9X,MAAK,SAAS1Q,GAAK,OAAOA,EAAE0Q,QAC5BrK,KAAK,IAAKqK,EAAK8kB,gBACfnvB,KAAK,IAAKqK,EAAK8kB,gBACfnvB,KAAK,KAAMyhB,EAAIN,UAAY,UAC3BnhB,KAAK,QAASyhB,EAAIN,UAAY,UAC9BnhB,KAAK,eAAe,WACjB,IAAIjK,EAAW,OAMf,MALoC,kBAAhC0rB,EAAI/rC,QAAQuvB,OAAOlP,SACnBA,EAAW,SAC4B,iBAAhC0rB,EAAI/rC,QAAQuvB,OAAOlP,WAC1BA,EAAW,QAERA,KAEViK,KAAK,QAAQ,SAASrG,GAAK,OAAOA,EAAE4kB,SACpC9mC,MAAM,aAAa,SAASkiB,GAAK,OAAOA,EAAE6kB,SAAW,QACrD/mC,MAAM,eAAe,SAASkiB,GAAK,OAAOA,EAAE+iB,cAC5CjlC,MAAM,eAAe,SAASkiB,GAAK,OAAOA,EAAE8kB,SAGrDqR,eAAgB,SAASrO,GACrB,IAMI3zC,EANAiiD,EAAiBtO,EAAI/rC,QAAQuvB,OAAOlP,SACpCi6B,EAAcvO,EAAIoE,eAAe5gB,OAAO2d,EACxC/D,EAAc4C,EAAI/rC,QAAQm+B,KAAKgL,YAC/BD,EAAe6C,EAAI/rC,QAAQm+B,KAAK+K,aAChCqC,EAAgBQ,EAAI/rC,QAAQmrC,KAAKI,cAIjCnzC,EADmB,gBAAnBiiD,EACI9O,EAAc/+B,KACQ,iBAAnB6tC,EACHlR,EAAcmR,EAAc/O,EAAc7+B,MAE1Cy8B,EAAc,EAGtB4C,EAAIoO,SACC7vB,KAAK,IAAKlyB,GACVkyB,KAAK,IAAK4e,EAAeqC,EAAcjK,SAGhD2Y,gBAAiB,SAASlO,GACtB,IAAIoB,EACJ,GAAIpB,EAAIoE,eAAe/vC,MAAMiwC,OAAQ,CAGjC,IAAIkK,EAAmBxO,EAAIoE,eAAe/vC,MAAM+sC,EAAIpB,EAAI/rC,QAAQmlC,OAAO8D,qBAAuB8C,EAAIoE,eAAenH,SAASmE,EAEtHA,EADgC,eAAhCpB,EAAI/rC,QAAQmlC,OAAO9kB,SACf0rB,EAAI8E,UAAUztB,EAAKm3B,EAAmB,EAAKA,EAE3CA,EAAmBxO,EAAI/rC,QAAQmrC,KAAKI,cAAc/hB,SAG1D,GAAoC,eAAhCuiB,EAAI/rC,QAAQmlC,OAAO9kB,SAA2B,CAC9C,IAAIm6B,EAAoBzO,EAAI/rC,QAAQmrC,KAAKI,cAAcjK,OAASyK,EAAIoE,eAAe5gB,OAAO4d,EAC1FA,GAAMpB,EAAI/rC,QAAQm+B,KAAK+K,aAAesR,GAAqB,EAAKzO,EAAI/rC,QAAQmrC,KAAKI,cAAc/hB,IAAOuiB,EAAIoE,eAAenH,SAASmE,EAAI,OAEtIA,EAAIpB,EAAI/rC,QAAQmrC,KAAKI,cAAc/hB,IAAMuiB,EAAIoE,eAAenH,SAASmE,EAG7E,OAAOA,IAKXmL,EAAK,CACLmC,YAAa,SAAS1O,GAGtB,IAAInB,EAAWmB,EAAIQ,IAAIoG,OAAO,KACzBroB,KAAK,QAASyhB,EAAIN,UAAY,YAEnCb,EAASkI,UAAU,IAAM/G,EAAIN,UAAY,WACpCtjC,KAAK4jC,EAAI/rC,QAAQmI,KAAK9H,SACtB0yC,QACAtG,OAAO,KACPniB,KAAK,QAASyhB,EAAIN,UAAY,WAC9BnhB,KAAK,MAAM,SAASrG,EAAG5Z,GAAK,OAAO0hC,EAAIN,UAAY,UAAYphC,KAC/DtI,MAAM,UAAW,GACjB0qC,OAAO,QACPniB,KAAK,KAAMyhB,EAAI/rC,QAAQ4qC,SAASE,OAAOI,cACvC5gB,KAAK,KAAMyhB,EAAI/rC,QAAQ4qC,SAASE,OAAOI,cACvC5gB,KAAK,KAAMyhB,EAAI/rC,QAAQ4qC,SAASE,OAAO5E,SACvC5b,KAAK,UAAWyhB,EAAI/rC,QAAQ4qC,SAASE,OAAOG,mBAC5ClpC,MAAM,OAAQgqC,EAAI/rC,QAAQ4qC,SAASE,OAAOE,iBAE/CJ,EAASkI,UAAU,IAAM/G,EAAIN,UAAY,WACpCtjC,KAAK4jC,EAAI/rC,QAAQmI,KAAK9H,SACtBosC,OAAO,QACPniB,KAAK,QAAQ,SAASrG,GAAK,OAAO8nB,EAAI/rC,QAAQ4qC,SAASE,OAAOjC,SAC9D9mC,MAAM,aAAa,SAASkiB,GAAK,OAAO8nB,EAAI/rC,QAAQ4qC,SAASE,OAAOhC,YACpE/mC,MAAM,eAAe,SAASkiB,GAAK,OAAO8nB,EAAI/rC,QAAQ4qC,SAASE,OAAO9D,cACtEjlC,MAAM,eAAe,SAASkiB,GAAK,OAAO8nB,EAAI/rC,QAAQ4qC,SAASE,OAAO/B,QACtEpU,MAAK,SAAS1Q,EAAG5Z,GACd,IAAIqwC,EAAU3O,EAAI/rC,QAAQ4qC,SAASxR,OAInC,MAHkC,YAA9B2S,EAAI/rC,QAAQ4qC,SAASxsC,OACrBs8C,EAAUz2B,EAAEy2B,SAETpC,EAAGqC,oBAAoB5O,EAAK2O,EAASrwC,EAAG,CAC3Cw8B,MAAO5iB,EAAE4iB,MACTzrC,MAAO6oB,EAAE7oB,MACT4uC,WAAY/lB,EAAE+lB,gBAItBY,EAASkI,UAAU,IAAM/G,EAAIN,UAAY,gBACpCnhB,KAAK,SAAS,SAAUrG,EAAG5Z,GAExB,OADW8hC,EAAQc,cAAclB,EAAIN,UAAY,UAAYphC,GACjD6iC,EAAK,EAAInB,EAAI/rC,QAAQ4qC,SAASE,OAAO5E,WAEpD5b,KAAK,UAAU,SAAUrG,EAAG5Z,GAEzB,OADW8hC,EAAQc,cAAclB,EAAIN,UAAY,UAAYphC,GACjD8iC,EAAK,EAAIpB,EAAI/rC,QAAQ4qC,SAASE,OAAO5E,WAEpD5b,KAAK,KAAK,SAAUrG,EAAG5Z,GAEpB,OADW8hC,EAAQc,cAAclB,EAAIN,UAAY,UAAYphC,GAC/C8iC,EAAI,EAAK,MAInCoL,YAAa,SAASxM,EAAK1Z,GACvB,IAAI0Y,EAAcgB,EAAI/rC,QAAQ4qC,SAASE,OAAOC,YAC1CuN,EAAGsC,iBAAmBvoB,IACtB0Y,EAAc,GAGlBuN,EAAGsC,eAAiBvoB,EACpB2Z,GAAGQ,OAAO,IAAMT,EAAIN,UAAY,UAAYpZ,GACvCymB,aACAxwB,SAASyiB,GACThpC,MAAM,WAAW,WAAa,OAAO,KAE1Cu2C,EAAGE,YAAYzM,IAGnByM,YAAa,SAASzM,GAClBC,GAAG8G,UAAU,IAAM/G,EAAIN,UAAY,UAAY6M,EAAGsC,gBAC7CtwB,KAAK,aAAa,SAASrG,GACxB,IAAI42B,EAAc7O,GAAG8O,MAAM1+C,KAAK2+C,YAG5B,MAAO,cAFHF,EAAY,GAAK9O,EAAI/rC,QAAQ4qC,SAASE,OAAO5E,QAAU,GAEjC,KADtB2U,EAAY,GAAM,EAAI9O,EAAI/rC,QAAQ4qC,SAASE,OAAO5E,QAAW,GAC7B,QAIpDuS,YAAa,SAAS1M,EAAK1Z,GACvB2Z,GAAGQ,OAAO,IAAMT,EAAIN,UAAY,UAAYpZ,GACvCtwB,MAAM,WAAW,WAAa,OAAO,KAI1CiqC,GAAGQ,OAAO,IAAMT,EAAIN,UAAY,UAAY6M,EAAGsC,gBAC1CtwB,KAAK,aAAa,SAASrG,EAAG5Z,GAI3B,MAAO,cAFC0hC,EAAI/rC,QAAQm+B,KAAKgL,YAAc,KAEb,KADlB4C,EAAI/rC,QAAQm+B,KAAK+K,aAAe,KACJ,QAIhDyR,oBAAqB,SAAS5O,EAAK9U,EAAK5E,EAAO2oB,GAiB3C,OAdI7O,EAAQqC,WAAWzC,EAAI/rC,QAAQ4qC,SAASC,oBACxCkB,EAAI/rC,QAAQ4qC,SAASC,kBAAkBxY,EAAO2oB,GAa3C/jB,EAAIzxB,QAAQ,cATR,SAASimB,GACZ,IAAIwvB,EAAchM,UAAU,GAC5B,OAAI+L,EAAa/xB,eAAegyB,GACrBD,EAAa/L,UAAU,IAEvBA,UAAU,QAY7BiM,EAAQ,SAAS5rC,EAAStP,GAI1B,GADA5D,KAAKkT,QAAUA,EACQ,kBAAZA,EAAsB,CAC7B,IAAIsV,EAAKtV,EAAQ9J,QAAQ,KAAM,IAC/BpJ,KAAKkT,QAAU9M,SAASof,eAAegD,GAG3C,IAAIy0B,EAAO,GACXhkB,GAAO,EAAMgkB,EAAMzQ,EAAiB5oC,GACpC5D,KAAK4D,QAAUq5C,EAGqB,OAAhCj9C,KAAK4D,QAAQmrC,KAAKM,UAClBrvC,KAAKqvC,UAAYrvC,KAAK4D,QAAQmrC,KAAKM,WAEnCrvC,KAAKqvC,UAAY,IAAM9C,EAAmB,IAC1CA,KAKCmD,EAAsB1vC,QAK3B4vC,GAAGQ,OAAOpwC,KAAKkT,SAASgb,KAvyDV,QACH,SAyyDX6wB,EAAWzM,KAAKtyC,MAChBg/C,EAAM1M,KAAKtyC,QAGf8+C,EAAMtM,UAAUyM,SAAW,WAElBvP,EAAsB1vC,QAI3B++C,EAAWzM,KAAKtyC,MAChBg/C,EAAM1M,KAAKtyC,QAGf8+C,EAAMtM,UAAU0M,OAAS,WACrBl/C,KAAKkT,QAAQuS,UAAY,GACzBu5B,EAAM1M,KAAKtyC,OAGf8+C,EAAMtM,UAAUzR,QAAU,WACtB/gC,KAAKkT,QAAQuS,UAAY,GACzBmqB,GAAGQ,OAAOpwC,KAAKkT,SAASgb,KA/zDV,QA+zD4B,OAY9C4wB,EAAMtM,UAAU2M,eAAiB,WAC7B,IAAIxD,EAAU37C,KAAK88C,qBACnB,GAAgB,OAAZnB,GAAuC,qBAAZA,EAAyB,CACpD,IAAI1lB,EAAQ1R,SAASqrB,GAAGQ,OAAOuL,GAASztB,KAAK,cAAe,IAC5D,MAAO,CACHhb,QAASyoC,EACT1lB,MAAOA,EACPlqB,KAAM/L,KAAK4D,QAAQmI,KAAK9H,QAAQgyB,IAGpC,OAAO,MAIf6oB,EAAMtM,UAAUwJ,YAAc,SAAS/lB,IACnCA,EAAQ1R,SAAS0R,EAAO,KACZ,GAAKA,EAAQj2B,KAAK4D,QAAQmI,KAAK9H,QAAQwI,OAAO,GAG1DuiC,EAASgN,YAAYh8C,KAAM4vC,GAAGQ,OAAO,IAAMpwC,KAAKqvC,UAAY,UAAYpZ,GAAOziB,SAGnFsrC,EAAMtM,UAAUuJ,aAAe,WAC3B/M,EAASyN,sBAAsBz8C,OAMnC8+C,EAAMtM,UAAU4M,WAAa,SAASC,EAASrgD,GAC3C,OAAQqgD,GACJ,IAAK,oBACD,IAAIC,EAASvP,EAAQY,WAAW3wC,KAAK4D,QAASy7C,GAC9CtP,EAAQY,WAAW3wC,KAAK4D,QAASy7C,EAASrgD,GAC1C4wC,GAAGQ,OAAO,IAAMpwC,KAAKqvC,UAAY,SAAS/rC,KAAKtE,IAC/B,KAAXsgD,GAA2B,KAAVtgD,GAA6B,KAAXsgD,GAA2B,KAAVtgD,IACrDgB,KAAKk/C,SAET,MAEJ,IAAK,uBACD,IAAIK,EAAWxP,EAAQY,WAAW3wC,KAAK4D,QAASy7C,GAChDtP,EAAQY,WAAW3wC,KAAK4D,QAASy7C,EAASrgD,GAC1C4wC,GAAGQ,OAAO,IAAMpwC,KAAKqvC,UAAY,YAAY/rC,KAAKtE,IAChC,KAAbugD,GAA6B,KAAVvgD,GAA+B,KAAbugD,GAA6B,KAAVvgD,IACzDgB,KAAKk/C,SAET,MAEJ,IAAK,mBACL,IAAK,+BACL,IAAK,8BACL,IAAK,2BACL,IAAK,uCACL,IAAK,sCACL,IAAK,qCACL,IAAK,sCACL,IAAK,8BACDnP,EAAQY,WAAW3wC,KAAK4D,QAASy7C,EAASrgD,GAC1C,MAGJ,QACI+wC,EAAQY,WAAW3wC,KAAK4D,QAASy7C,EAASrgD,GAE1CgB,KAAK+gC,UACL/gC,KAAKi/C,aAQjB,IAAIF,EAAa,WACb/+C,KAAK4D,QAAQmI,KAAK9H,QAAU4tC,EAAK0C,YAAYv0C,MACzCA,KAAK4D,QAAQmI,KAAKshC,qBAAqBrS,UACvCh7B,KAAK4D,QAAQmI,KAAK9H,QAAU8rC,EAAQ4B,0BAA0B3xC,KAAK4D,QAAQmI,KAAK9H,QAASjE,KAAK4D,QAAQmI,KAAKshC,uBAI/GrtC,KAAK4D,QAAQyJ,OAAS0iC,EAAQ0B,kBAAkBzxC,MAChDA,KAAK4xC,UAAiBC,EAAKC,gBAAgB9xC,KAAK4D,QAAQmI,KAAK9H,SAK7D,IAHA,IAAIu7C,EAAKx/C,KAAK4D,QAAQ2Q,OAAOq5B,WAAWC,cAG/B5/B,EAAE,EAAGA,EAAEjO,KAAK4D,QAAQmI,KAAK9H,QAAQwI,OAAQwB,IAC9CjO,KAAK4D,QAAQmI,KAAK9H,QAAQgK,GAAG2/B,WAAa6R,EAAez/C,KAAK4D,QAAQmI,KAAK9H,QAAQgK,GAAGjP,MAAOgB,KAAK4xC,UAAW4N,GAKjH,IADA,IAAIE,EAAkB,EACb54B,EAAE,EAAGA,EAAE9mB,KAAK4D,QAAQmI,KAAK9H,QAAQwI,OAAQqa,IAC1CA,IAAM9mB,KAAK4D,QAAQmI,KAAK9H,QAAQwI,OAAS,IACzCzM,KAAK4D,QAAQmI,KAAK9H,QAAQ6iB,GAAG8mB,YAAc,IAAM8R,GAAiB3iD,QAAQyiD,IAE9EE,GAAmBtM,WAAWpzC,KAAK4D,QAAQmI,KAAK9H,QAAQ6iB,GAAG8mB,aAI/DoR,EAAQ,WAGRh/C,KAAKmwC,IAAMJ,EAAQG,YAAYlwC,MAG/BA,KAAK+zC,eAAiB,CAClBC,aAAc,EACdhwC,MAAO,CACHiwC,OAA2C,KAAnCj0C,KAAK4D,QAAQmlC,OAAO/kC,MAAMu0B,KAClCwY,EAAG,EACHD,EAAG,GAEPlE,SAAU,CACNqH,OAA8C,KAAtCj0C,KAAK4D,QAAQmlC,OAAO6D,SAASrU,KACrCwY,EAAG,EACHD,EAAG,GAEP3d,OAAQ,CACJ8gB,OAAqC,KAA7Bj0C,KAAK4D,QAAQuvB,OAAOoF,KAC5BwY,EAAG,EACHD,EAAG,IAIX9wC,KAAK23C,oBAAsB,GAGvB33C,KAAK+zC,eAAe/vC,MAAMiwC,QAAQ1b,EAAK+kB,SAASt9C,MAChDA,KAAK+zC,eAAenH,SAASqH,QAAQ1b,EAAKmlB,YAAY19C,MAC1Du4B,EAAKulB,UAAU99C,MAMfu4B,EAAKylB,eADMh+C,MAEX,IAAI4vC,EAAKG,EAAQc,cAFN7wC,KAEyB+9C,SAASvqC,QAI7C,GANWxT,KAGN+zC,eAAe5gB,OAAO4d,EAAInB,EAAGmB,EAHvB/wC,KAIN+zC,eAAe5gB,OAAO2d,EAAIlB,EAAGkB,EAJvB9wC,KAMF+zC,eAAe/vC,MAAMiwC,OAAQ,CAClC,IAAI3uB,EAAKyqB,EAAQc,cAPV7wC,KAO6Bu9C,QAAQ/pC,QAPrCxT,KAQF+zC,eAAe/vC,MAAM+sC,EAAIzrB,EAAGyrB,EAR1B/wC,KASF+zC,eAAe/vC,MAAM8sC,EAAIxrB,EAAGwrB,EAGrC,GAZW9wC,KAYF+zC,eAAenH,SAASqH,OAAQ,CACrC,IAAI1uB,EAAKwqB,EAAQc,cAbV7wC,KAa6B29C,WAAWnqC,QAbxCxT,KAcF+zC,eAAenH,SAASmE,EAAIxrB,EAAGwrB,EAd7B/wC,KAeF+zC,eAAenH,SAASkE,EAAIvrB,EAAGurB,EAIxC,GAnBW9wC,KAmBF+zC,eAAe/vC,MAAMiwC,QAnBnBj0C,KAmBkC+zC,eAAenH,SAASqH,OAAQ,CACzE,IAAID,EAAe,EApBZh0C,KAqBE+zC,eAAe/vC,MAAMiwC,SAC1BD,GAtBGh0C,KAsBkB+zC,eAAe/vC,MAAM+sC,EAtBvC/wC,KAuBM+zC,eAAenH,SAASqH,SAC7BD,GAxBDh0C,KAwBsB4D,QAAQmlC,OAAO8D,uBAxBrC7sC,KA2BE+zC,eAAenH,SAASqH,SAC7BD,GA5BGh0C,KA4BkB+zC,eAAenH,SAASmE,GA5B1C/wC,KA8BF+zC,eAAeC,aAAeA,EA0CvC,GAtCAnC,EAAKiC,iBAlCM9zC,MAsCX6xC,EAAK6C,mBAtCM10C,MAyCXu4B,EAAKilB,cAzCMx9C,MA0CXu4B,EAAKqlB,iBA1CM59C,WA6CF4D,QAAQmrC,KAAKG,SAASlU,SAC3BgU,EAASuM,aA9CFv7C,MAgDXgvC,EAASoM,OAhDEp7C,WAkDNy2C,SAAW,GAChBliC,EAAO0hC,IAnDIj2C,KAmDM,QAnDNA,KAmDoB4D,QAAQ2Q,OAAOm5B,MAAMH,QACpDh5B,EAAO0hC,IApDIj2C,KAoDM,QApDNA,KAoDoB4D,QAAQ2Q,OAAO+4B,MAAMC,QAGpDh5B,EAAOuiC,sBAvDI92C,KAuDwB,QAvDxBA,KAuDsC4D,QAAQ2Q,OAAOm5B,MAAMH,QACtEh5B,EAAOuiC,sBAxDI92C,KAwDwB,QAxDxBA,KAwDsC4D,QAAQ2Q,OAAO+4B,MAAMC,QACtEh5B,EAAOukC,wBAzDI94C,MA4DXuU,EAAO8jC,oBA5DIr4C,KA4DsB,SAGjCuU,EAAOyiC,0BA/DIh3C,WAkEF4D,QAAQ2Q,OAAOu5B,MAAM9S,SAAgD,SAlEnEh7B,KAkEmC4D,QAAQ2Q,OAAO+4B,MAAMC,QAC/Dh5B,EAAOwjC,cAnEA/3C,MAsEXuU,EAAO8jC,oBAtEIr4C,KAsEsB,SAE7B+vC,EAAQqC,WAxEDpyC,KAwEiB4D,QAAQ0rC,UAAUnS,QAC1C,IAzEOn9B,KA0EE4D,QAAQ0rC,UAAUnS,SACzB,MAAOj3B,IA3EFlG,KA+EF4D,QAAQ4qC,SAASxT,SACtBkhB,EAAGmC,YAhFIr+C,MAmFXgvC,EAASyM,wBAnFEz7C,OAsFXy/C,EAAiB,SAASzgD,EAAOstB,EAAOuhB,GACxC,IAAI8R,EAAiB3gD,EAAQstB,EAC7B,OAAIuhB,GAAiB,EACVxxC,KAAKgpB,MAAuB,IAAjBs6B,IAEO,IAAjBA,GAAsB5iD,QAAQ8wC,IAI9C,OAAOiR,IA7jED,gC,iCCdV,6E,4FCAA,iLASMc,EAAgBC,IAClB,CAAEpN,IAAK,wCACPrsC,SAASw5C,cAyBPE,EAAmB,WACvB,GAAIC,IACF,MAAO,yBAKT,GAAIn2C,IAAU,CACZ,IAAM6a,EAAWxhB,OAAOghB,SAASQ,SAC9Brb,QAAQ,aAAc,IAEtBA,QAAQ,eAAgB,IAC3B,OAAOnG,OAAOghB,SAASO,OAASC,EAASrb,QAAQ,WAAY,IAI/D,OAxBqC,SAAC+uB,GAItC,OAAOA,EAAO/uB,QAAQ,IAAI42C,OAFF,0BAE2B,IAChD52C,QAFkB,aAEI,IAmBlB62C,CAlCQC,YAAK,CAClB,CAAC7f,QAAS1gC,KAGV,CAACwgD,IAAG,kBAAMvzC,YAAKxG,SAASg6C,qBAAqB,cAJhCF,CAKZN,GAEWnN,KA2ByBrpC,QAAQ,WAAY,KAIhDi3C,EAAqBH,YAAK,CACrC,CAACI,YAAK1zC,IAAMs/B,YAAO,MAAOvsC,KAC1B,CAACwgD,IAAG,SAACnkD,GAAD,OAAeukD,YAAOvkD,EAAG,SAGlB4uB,EAAwBy1B,EACnCp9C,OAAO+e,eAAiB89B,KAGbU,EAAuBT,IAChC,IACAM,EAAmBP,M,gCCnEvB,ocAUaW,EAAoB,SAAClzC,GAAD,OAAsBA,EAAM3G,MAChD85C,EAAyBC,YACpCF,GACA,SAACG,EAAD,YAAe77C,MACf,SAAC87C,EAAa97C,GAAd,OAAqB87C,EAAY97C,IAAOiM,OAG7B8vC,EAAkBH,YAC7BD,GACA,SAACK,GAAD,OAAgBA,EAAW9vC,aAGvB+vC,EAAsCL,YAC1CD,EAAwBn+B,YAAK,kBAIzB0+B,EAAsBN,YAC1BO,IACAF,GACA,SAACG,EAAiBC,GAAlB,OAA6CD,GAAmBC,KAE5DC,EAA0BV,YAAeD,EAAwBn+B,YAAK,sBAE/D++B,EAAiC,kBAAMX,YAClDM,EACAI,GACA,SAAClwC,EAAeQ,GAAhB,MAAuC,CAAER,gBAAeQ,yBAG7C4vC,EAAuBZ,YAClCD,GACA,SAACK,GAAD,OAAgBA,EAAWxvC,aAGhBiwC,EAA4Bb,YACvCD,GACA,SAACK,GAAD,OAAgBA,EAAWvvC,kBAGhBiwC,EAA6Bd,YACxCD,GACA,SAACK,GAAD,OAAgBA,EAAW1vC,mBAGhBqwC,EAAqBf,YAChCD,GACA,SAACK,GAAD,OAAgBA,EAAWr8C,gBAGhBi9C,EAAwBhB,YAAeD,EAAwBn+B,YAAK,oBAUpEq/B,GAJ0BjB,YAAeF,GAAmB,SAAAI,GAAW,OAClF9/C,OAAOsN,OAAOwyC,GAAagB,MAAK,qBAAGrwC,qBAGMmvC,YACzCF,GACA,SAACI,GAAD,OAAiB9/C,OAAOsN,OAAOwyC,GAC5B7wC,QAAO,SAACC,EAAK8wC,GAAN,OAAqB9wC,GAVJ,SAAC8wC,GAAD,OAA4BA,EAAWtvC,oBAC/D4uB,QAAQ0gB,EAAW9vC,YAAc8vC,EAAWrvC,sBASTowC,CAAqBf,GAAc,EAAI,KAAI,OAGtE7e,EAAuBye,YAClCF,GACA,SAACI,GAAD,OAAiB9/C,OAAOlB,KAAKghD,GAAap0C,UAG/Bs1C,EAA+BpB,YAC1CF,GACA,SAACI,GAAD,uBAAiB9/C,OAAOsN,OAAOwyC,GAC5BxhB,MAAK,SAAC0hB,GAAD,OAAgBA,EAAWvvC,yBADnC,aAAiB,EACmCN,WAGzCkxB,EAAiCue,YAC5CF,GACA,SAACI,GAAD,OAAiB9/C,OAAOsN,OAAOwyC,GAC5B7wC,QAAO,SAACC,EAAK8wC,GAAN,OAAqB9wC,GAAO8wC,EAAWjvC,aAAe,EAAI,KAAI,MAG7DwwB,EAAgCqe,YAC3CF,GACA,SAACI,GAAD,OAAiB9/C,OAAOsN,OAAOwyC,GAC5B7wC,QAAO,SAACC,EAAK8wC,GAAN,OAAqB9wC,GAAO8wC,EAAWlvC,oBAAsB,EAAI,KAAI,O,yKC3F3E9V,EAAU,SAAAC,GACd,OAAIA,GAAK,IAAMA,EAAI,GACX,IAAN,OAAWA,EAAEyF,YAERzF,EAAEyF,YAGEugD,KAAgCxf,MAAQA,KAAKC,gBAAkBwf,UAAUC,UAEhFC,EAAe,SAAAt6B,GAAC,MAAkB,kBAANA,EAAiB,IAAIlD,KAAKkD,GAAKA,GAGpDu6B,EAAyB,SAAAv6B,GAAC,OAAIs6B,EAAat6B,GAAG6O,sBAC9C2rB,EAAyB,SAAAx6B,GAAC,OAAIs6B,EAAat6B,GAAG8O,sBAC9C2rB,EAAwB,SAAAz6B,GACnC,IAAMghB,EAAOsZ,EAAat6B,GAC1B,MAAM,GAAN,OAAU9rB,EAAQ8sC,EAAKlI,YAAvB,YAAsC5kC,EAAQ8sC,EAAKjI,cAAnD,YAAoE7kC,EAAQ8sC,EAAKhI,gBAGtEmH,EAAmB,SAAArF,GAC9B,IACEH,KAAKC,eAAewf,UAAUC,SAAU,CACtCK,cAAe,WACfC,cAAe,WACfC,QAAS,QACTC,KAAM,UACNC,MAAO,QACPC,IAAK,UACLjgB,aAEF,MAAOz8B,GACP,OAAO,EAET,OAAO,GAkBH28C,EAAa,SAACha,EAAD,OAASia,EAAT,EAASA,OAAWl/C,EAApB,iCACjB,IAAI4+B,KAAKC,eAAT,OAAwBqgB,QAAxB,IAAwBA,IAAUb,UAAUC,SAd3B,SAAC,GAAD,IAAGa,EAAH,EAAGA,KAAMC,EAAT,EAASA,OAAQC,EAAjB,EAAiBA,KAAM5qB,EAAvB,EAAuBA,SAAvB,oBACjB6qB,UAAW,OACPF,EACA,GACAD,EACA,CAAEN,QAAS,QAASC,KAAM,UAAWC,MAAO,QAASC,IAAK,WAC1D,CAAEO,UAAW,SANA,GAObH,GAAU,CACZI,UAAWH,EAAO,SAAW,SARd,CAUjBtgB,SAAUtK,IAI4CgrB,CAAWz/C,IAAU2pC,OAAO1E,IAE9Eya,EAAc,SAAAjrB,GAAQ,MAAkB,KAAbA,GAAgC,YAAbA,EAAyBA,OAAW33B,GAE3E6iD,EAAc,WACzB,IAAMlrB,EAAWx1B,YAAY2gD,KACvBv0C,EAAYpM,YAAY4gD,KAExBhiC,EAAmBqnB,mBAAQ,WAC/B,OAAOkZ,EACH,SAACnZ,EAAMjlC,GAAP,OACEi/C,EAAWha,EAAD,aAASka,MAAM,EAAM1qB,SAAUirB,EAAYjrB,IAAcz0B,KACrEw+C,IACH,CAAC/pB,IAEE3W,EAAmBonB,mBAAQ,WAC/B,OAAOkZ,EACH,SAACnZ,EAAMjlC,GAAP,OACEi/C,EAAWha,EAAD,aACRoa,MAAM,EACND,QAAQ,EACR3qB,SAAUirB,EAAYjrB,IACnBz0B,KAEPy+C,IACH,CAAChqB,IAEEqrB,EAAkB5a,mBAAQ,WAC9B,OAAOkZ,EACH,SAAAnZ,GAAI,OAAIga,EAAWha,EAAM,CAAEoa,MAAM,EAAMD,QAAQ,EAAM3qB,SAAUirB,EAAYjrB,MAC3EiqB,IACH,CAACjqB,IAQJ,MAAO,CACL5W,mBACAC,mBACAiiC,gBATsB7a,mBAAQ,WAC9B,OAAOkZ,EACH,SAAAnZ,GAAI,OAAIga,EAAWha,EAAM,CAAEka,MAAM,EAAM1qB,SAAUirB,EAAYjrB,MAC7DiqB,IACH,CAACjqB,IAMFqrB,kBACAz0C,e,gCCrGJ,gOASa0yB,EAA0Bh7B,uBAAY,UAC9CC,IAD8C,0BAItCq4B,EAAyBt4B,uBAAa,GAAD,OAAIC,IAAJ,4BAGrCg9C,EAAwBj9C,uBAAY,UAC5CC,IAD4C,qBAIpC0hC,EAAyB3hC,uBAAa,GAAD,OAAIC,IAAJ,sBAGrCi9C,EAAmBl9C,uBAAY,UAAsBC,IAAtB,sBAG/Bk9C,EAAmBn9C,uBAAY,UAAsBC,IAAtB,uB,gCC1B5C,sGAAO,IAAMA,EAAW,QAEXm9C,EAA6B,IAI7BC,EAAkB,K,6ECNlBt+B,EAAgB,SAC3Bu+B,EAA+BzuC,GAE/B,IAAM0uC,EAA0C,CAC9Ct/B,IAAK,MACL4R,MAAO,IACPD,gBAAiB,MACjBqsB,IAAK,MACLrmD,KAAM,OACN4nD,KAAM,OACN1nD,MAAO,QACP2nD,OAAQ,MACR1nD,QAAS,OACT2nD,OAAQ,MACRnoD,QAAS,OACTooD,IAAK,OAGD1gD,EAAqC,kBAApB4R,EAAP,eACP0uC,EADO,GACY1uC,GACxB0uC,EAEAhoD,EAAkC,kBAAjB+nD,EACjB1/B,SAAS0/B,EAAc,IACvBA,EAEJ,GAAgB,IAAZ/nD,EACF,OAAO0H,EAAQghB,IAGjB,IAAImJ,EAAS,GACT7xB,EAAU,IACZA,GAAWA,EACqB,KAA5B0H,EAAQ2yB,kBACVxI,EAASnqB,EAAQ4yB,MAAQ5yB,EAAQ2yB,kBAIrC,IAAMh6B,EAAOF,KAAKG,MAAMN,EAAU,OAClCA,GAAmB,MAAPK,EAEZ,IAAME,EAAQJ,KAAKG,MAAMN,EAAU,MACnCA,GAAoB,KAARO,EAEZ,IAAMC,EAAUL,KAAKG,MAAMN,EAAU,IACrCA,GAAsB,GAAVQ,EAEZ,IAAM6nD,EAAU,GA0BhB,GAxBIhoD,EAAO,EACTgoD,EAAQz3B,KAAKvwB,EAAKkF,WAAamC,EAAQ4yB,MAAQ5yB,EAAQrH,MACrC,IAATA,GACTgoD,EAAQz3B,KAAKvwB,EAAKkF,WAAamC,EAAQ4yB,MAAQ5yB,EAAQg/C,KAGrDnmD,EAAQ,EACV8nD,EAAQz3B,KAAKrwB,EAAMgF,WAAamC,EAAQ4yB,MAAQ5yB,EAAQnH,OACrC,IAAVA,GACT8nD,EAAQz3B,KAAKrwB,EAAMgF,WAAamC,EAAQ4yB,MAAQ5yB,EAAQugD,MAGtDznD,EAAU,EACZ6nD,EAAQz3B,KAAKpwB,EAAQ+E,WAAamC,EAAQ4yB,MAAQ5yB,EAAQlH,SACrC,IAAZA,GACT6nD,EAAQz3B,KAAKpwB,EAAQ+E,WAAamC,EAAQ4yB,MAAQ5yB,EAAQwgD,QAGxDloD,EAAU,EACZqoD,EAAQz3B,KAAKzwB,KAAKG,MAAMN,GAASuF,WAAamC,EAAQ4yB,MAAQ5yB,EAAQ1H,SACjD,IAAZA,GACTqoD,EAAQz3B,KAAKzwB,KAAKG,MAAMN,GAASuF,WAAamC,EAAQ4yB,MAAQ5yB,EAAQygD,QAGjD,IAAnBE,EAAQ93C,OACV,OAAO83C,EAAQC,MAAQz2B,EAGzB,IAAMnhB,EAAO23C,EAAQC,MACrB,MAAM,GAAN,OAAUD,EAAQE,KAAK,MAAvB,YAAgC7gD,EAAQ0gD,IAAxC,YAA+C13C,GAA/C,OAAsDmhB,K,+DC9ExD,MAEqE22B,EAAOC,QAA6N,SAASvjD,EAAE8E,EAAEohB,EAAErZ,GAAG,SAASgZ,EAAEsrB,EAAEppC,GAAG,IAAIme,EAAEirB,GAAG,CAAC,IAAIrsC,EAAEqsC,GAAG,CAA2C,IAAIppC,GAAxC,mBAAmBy7C,GAASA,EAAiB,OAAOC,EAAEtS,GAAE,GAAI,GAAG9K,EAAE,OAAOA,EAAE8K,GAAE,GAAI,IAAIxB,EAAE,IAAI+T,MAAM,uBAAuBvS,EAAE,KAAK,MAAMxB,EAAEgU,KAAK,mBAAmBhU,EAAE,IAAIiU,EAAE19B,EAAEirB,GAAG,CAACoS,QAAQ,IAAIz+C,EAAEqsC,GAAG,GAAGD,KAAK0S,EAAEL,SAAQ,SAASvjD,GAAoB,OAAO6lB,EAAlB/gB,EAAEqsC,GAAG,GAAGnxC,IAAeA,KAAI4jD,EAAEA,EAAEL,QAAQvjD,EAAE8E,EAAEohB,EAAErZ,GAAG,OAAOqZ,EAAEirB,GAAGoS,QAAQ,IAAI,IAAIld,EAAE,mBAAmBmd,GAASA,EAAQrS,EAAE,EAAEA,EAAEtkC,EAAExB,OAAO8lC,IAAItrB,EAAEhZ,EAAEskC,IAAI,OAAOtrB,EAAjb,CAAob,CAACg+B,EAAE,CAAC,SAAS7jD,EAAE8E,EAAEohB,GAAG,SAASrZ,IAAI,MAAM,IAAI62C,MAAM,mCAAmC,SAAS79B,IAAI,MAAM,IAAI69B,MAAM,qCAAqC,SAASrd,EAAErmC,GAAG,GAAGymB,IAAIa,WAAW,OAAOA,WAAWtnB,EAAE,GAAG,IAAIymB,IAAI5Z,IAAI4Z,IAAIa,WAAW,OAAOb,EAAEa,WAAWA,WAAWtnB,EAAE,GAAG,IAAI,OAAOymB,EAAEzmB,EAAE,GAAG,MAAM8E,GAAG,IAAI,OAAO2hB,EAAEyqB,KAAK,KAAKlxC,EAAE,GAAG,MAAM8E,GAAG,OAAO2hB,EAAEyqB,KAAKtyC,KAAKoB,EAAE,KAAqN,SAAS+H,IAAI+7C,GAAGC,IAAID,GAAE,EAAGC,EAAE14C,OAAO24C,EAAED,EAAE5E,OAAO6E,GAAGxE,GAAG,EAAEwE,EAAE34C,QAAQo4C,KAAK,SAASA,IAAI,IAAIK,EAAE,CAAC,IAAI9jD,EAAEqmC,EAAEt+B,GAAG+7C,GAAE,EAAG,IAAI,IAAIh/C,EAAEk/C,EAAE34C,OAAOvG,GAAG,CAAC,IAAIi/C,EAAEC,EAAEA,EAAE,KAAKxE,EAAE16C,GAAGi/C,GAAGA,EAAEvE,GAAGyE,MAAMzE,GAAG,EAAE16C,EAAEk/C,EAAE34C,OAAO04C,EAAE,KAAKD,GAAE,EAA1Y,SAAW9jD,GAAG,GAAGumB,IAAI29B,aAAa,OAAOA,aAAalkD,GAAG,IAAIumB,IAAIV,IAAIU,IAAI29B,aAAa,OAAO39B,EAAE29B,aAAaA,aAAalkD,GAAG,IAAWumB,EAAEvmB,GAAG,MAAM8E,GAAG,IAAI,OAAOyhB,EAAE2qB,KAAK,KAAKlxC,GAAG,MAAM8E,GAAG,OAAOyhB,EAAE2qB,KAAKtyC,KAAKoB,KAAkMmxC,CAAEnxC,IAAI,SAAS2vC,EAAE3vC,EAAE8E,GAAGlG,KAAKulD,IAAInkD,EAAEpB,KAAK2M,MAAMzG,EAAE,SAAS8+C,KAAK,IAAIn9B,EAAEF,EAAExD,EAAEje,EAAEy+C,QAAQ,IAAI,WAAW,IAAI98B,EAAE,mBAAmBa,WAAWA,WAAWza,EAAE,MAAM7M,GAAGymB,EAAE5Z,EAAE,IAAI0Z,EAAE,mBAAmB29B,aAAaA,aAAar+B,EAAE,MAAM7lB,GAAGumB,EAAEV,GAAzI,GAA+I,IAAIk+B,EAAEC,EAAE,GAAGF,GAAE,EAAGtE,GAAG,EAAEz8B,EAAEqhC,SAAS,SAASpkD,GAAG,IAAI8E,EAAE,IAAI6a,MAAM8xB,UAAUpmC,OAAO,GAAG,GAAGomC,UAAUpmC,OAAO,EAAE,IAAI,IAAI6a,EAAE,EAAEA,EAAEurB,UAAUpmC,OAAO6a,IAAIphB,EAAEohB,EAAE,GAAGurB,UAAUvrB,GAAG89B,EAAEt4B,KAAK,IAAIikB,EAAE3vC,EAAE8E,IAAI,IAAIk/C,EAAE34C,QAAQy4C,GAAGzd,EAAEod,IAAI9T,EAAEyB,UAAU6S,IAAI,WAAWrlD,KAAKulD,IAAIE,MAAM,KAAKzlD,KAAK2M,QAAQwX,EAAEngB,MAAM,UAAUmgB,EAAEuhC,SAAQ,EAAGvhC,EAAEwhC,IAAI,GAAGxhC,EAAEyhC,KAAK,GAAGzhC,EAAE4H,QAAQ,GAAG5H,EAAE0hC,SAAS,GAAG1hC,EAAE7W,GAAG03C,EAAE7gC,EAAE2hC,YAAYd,EAAE7gC,EAAE4hC,KAAKf,EAAE7gC,EAAE0iB,IAAIme,EAAE7gC,EAAE6hC,eAAehB,EAAE7gC,EAAE8hC,mBAAmBjB,EAAE7gC,EAAE+hC,KAAKlB,EAAE7gC,EAAEgiC,gBAAgBnB,EAAE7gC,EAAEiiC,oBAAoBpB,EAAE7gC,EAAEkiC,UAAU,SAASjlD,GAAG,MAAM,IAAI+iB,EAAEmiC,QAAQ,SAASllD,GAAG,MAAM,IAAI0jD,MAAM,qCAAqC3gC,EAAEoiC,IAAI,WAAW,MAAM,KAAKpiC,EAAEqiC,MAAM,SAASplD,GAAG,MAAM,IAAI0jD,MAAM,mCAAmC3gC,EAAEsiC,MAAM,WAAW,OAAO,IAAI,IAAIC,EAAE,CAAC,SAAStlD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAkBioB,EAAE,SAAS7lB,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAA9C,CAAdA,EAAE,WAAiEqmC,EAAE,cAAaA,EAAE+K,UAAU,IAAIvrB,EAAE2L,SAAoBi0B,cAAc,SAASzlD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAEgZ,EAAEwgB,EAAE8K,EAAE,GAAGppC,EAAEme,EAAErnB,IAAI,YAAY4kD,EAAE,EAAEA,EAAEzjD,EAAEqL,OAAOo4C,IAAI52C,EAAE7M,EAAEyjD,GAAG,GAAGpd,EAAErmC,EAAEyjD,GAAG3+C,GAAGiD,GAAG,OAAOs+B,IAAIA,EAAE,IAAI,GAAGA,EAAE,IAAI,GAAGA,EAAE,IAAI,KAAKA,EAAE,MAAM,OAAOA,EAAU,QAAPxgB,EAAEwgB,EAAE,KAAawI,MAAMhpB,GAAGsrB,EAAEzlB,KAAK,CAAC7e,EAAEgZ,EAAE,CAACA,EAAEA,KAAKsrB,EAAEzlB,KAAK,CAAC7e,EAAEgZ,EAAE,CAACwgB,EAAE,GAAGA,EAAE,MAAO8K,EAAEzlB,KAAK,CAAC7e,EAAE,KAAK,CAAC,KAAK,QAAQ,OAAOskC,GAAG9K,EAAE+K,UAAUsU,eAAe,SAAS1lD,EAAE8E,EAAEohB,GAAGphB,EAAE7J,KAAK8D,IAAI+F,EAAE9E,EAAEqL,QAAQ,IAAIwB,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE07C,EAAE9T,EAAEiU,EAAE,GAAG,IAAI/9B,EAAE,EAAEsrB,EAAE,EAAE9K,EAAE,EAAEt+B,EAAE,EAAE07C,EAAE,EAAEA,EAAEzjD,EAAEqL,OAAOo4C,IAAI,CAAC,GAAG52C,EAAE7M,EAAEyjD,GAAG,GAAG9T,EAAE3vC,EAAEyjD,GAAG,GAAGG,EAAEH,GAAGzjD,EAAEyjD,GAAG,OAAO52C,GAAGgiC,MAAMhiC,KAAKgZ,GAAG8pB,EAAE,GAAGwB,GAAGtkC,EAAEw5B,GAAGsJ,EAAE,GAAG5nC,GAAG,GAAG07C,EAAE3+C,GAAG,EAAE,CAAC,IAAI2hB,EAAEzmB,EAAEyjD,EAAE3+C,GAAG,OAAO2hB,EAAE,IAAIooB,MAAMpoB,EAAE,MAAMZ,GAAGY,EAAE,GAAG,GAAG0qB,GAAG1qB,EAAE,GAAG4f,GAAG5f,EAAE,GAAG,GAAG1e,GAAG,GAAG67C,EAAEH,GAAG17C,EAAE,CAAC/H,EAAEyjD,GAAG,GAAG,EAAEtS,EAAEppC,EAAE,CAAC,EAAE8d,EAAE9d,EAAE,EAAEs+B,EAAEt+B,IAAI,CAAC/H,EAAEyjD,GAAG,GAAG,KAAK,CAAC,KAAK,OAAO,OAAOG,GAAG19B,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,SAAS,IAAIm0B,EAAE,CAAC,SAAS3lD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAkBioB,EAAE,SAAS7lB,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAA9C,CAAdA,EAAE,WAAiEqmC,EAAE,cAAaA,EAAE+K,UAAU,IAAIvrB,EAAE2L,SAAoBi0B,cAAc,SAASzlD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE,GAAG07C,EAAEv9B,EAAErnB,IAAI,SAAS8wC,EAAEzpB,EAAErnB,IAAI,YAAY+kD,EAAE,EAAEA,EAAE5jD,EAAEqL,OAAOu4C,IAAI/2C,EAAE7M,EAAE4jD,GAAG,GAAGzS,EAAEnxC,EAAE4jD,GAAG9+C,GAAG6qC,GAAG,OAAOwB,IAAIA,EAAE,IAAI,GAAGA,EAAE,GAAGsS,EAAEtS,EAAE,IAAI,KAAKA,EAAE,MAAM,OAAOA,EAAU,QAAPtrB,EAAEsrB,EAAE,KAAatC,MAAMhpB,GAAG9d,EAAE2jB,KAAK,CAAC7e,EAAEgZ,EAAE,CAACA,EAAEA,EAAEA,MAAMwgB,EAAEod,EAAEtS,EAAE,GAAGppC,EAAE2jB,KAAK,CAAC7e,EAAEgZ,EAAE,CAACA,EAAEwgB,EAAExgB,EAAEwgB,EAAE8K,EAAE,OAAQppC,EAAE2jB,KAAK,CAAC7e,EAAE,KAAK,CAAC,KAAK,KAAK,QAAQ,OAAO9E,GAAGs+B,EAAE+K,UAAUsU,eAAe,SAAS1lD,EAAE8E,EAAEohB,GAAGphB,EAAE7J,KAAK8D,IAAI+F,EAAE9E,EAAEqL,QAAQ,IAAIwB,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE07C,EAAE9T,EAAEiU,EAAEn9B,EAAEF,EAAE,GAAGxD,EAAEmD,EAAErnB,IAAI,SAAS,IAAIgO,EAAE,EAAEA,EAAE7M,EAAEqL,OAAOwB,IAAI,CAAC,IAAI9E,EAAE,EAAE67C,EAAE,EAAEH,EAAE,EAAE59B,EAAE5qB,KAAKqD,IAAI,EAAEuO,EAAE/H,EAAE,GAAG+gB,EAAEhZ,EAAE,EAAEgZ,IAAI,QAAQwgB,EAAErmC,EAAE6lB,GAAG,KAAKgpB,MAAMxI,KAAKod,IAAI17C,GAAGs+B,EAAEud,GAAG3oD,KAAK2qD,IAAI5lD,EAAE6lB,GAAG,GAAG,GAAG,IAAI49B,GAAG9T,EAAE10C,KAAKg+C,KAAK2K,GAAGH,EAAEh9B,EAAE1e,EAAE07C,EAAEl9B,EAAE1Z,GAAG,CAAC7M,EAAE6M,GAAG,GAAG4Z,EAAE,CAACA,EAAE1D,EAAE4sB,EAAElpB,EAAE1D,EAAE4sB,MAAMwB,EAAE,GAAGrsC,EAAE9E,EAAE6M,GAAG,GAAG,KAAK0Z,EAAE1Z,GAAG,CAAC7M,EAAE6M,GAAG,GAAGskC,EAAE,CAACA,EAAEA,KAAK,OAAO5qB,GAAGL,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,SAAS,IAAIq0B,EAAE,CAAC,SAAS7lD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAkBioB,EAAE,SAAS7lB,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAA9C,CAAdA,EAAE,WAAiEqmC,EAAE,cAAaA,EAAE+K,UAAU,IAAIvrB,EAAE2L,SAAoBi0B,cAAc,SAASzlD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE07C,EAAIG,EAAEn9B,EAAE,GAAGF,EAAEL,EAAErnB,IAAI,SAASkkB,EAAEmD,EAAErnB,IAAI,YAAYklD,EAAE,EAAEA,EAAE/jD,EAAEqL,OAAO04C,IAAIl3C,EAAE7M,EAAE+jD,GAAG,GAAG1d,EAAErmC,EAAE+jD,GAAGj/C,GAAGie,GAAG,OAAOsjB,IAAIA,EAAE,IAAI,GAAGA,EAAE,IAAI,KAAKA,EAAE,MAAM,OAAOA,GAAG8K,EAAE9K,EAAE,GAAGt+B,EAAEs+B,EAAE,GAAG,OAAO8K,GAAGtC,MAAMsC,GAAG1qB,EAAEiF,KAAK,CAAC7e,EAAEskC,EAAE,CAACA,EAAEA,EAAEA,EAAEppC,MAAM07C,EAAE17C,EAAEopC,EAAEppC,EAAE,EAA+B67C,EAAE,KAA7B77C,EAAEwe,EAAEtrB,KAAKg+C,KAAKwK,GAAG,EAAEA,GAAG17C,GAAG,GAAU8d,EAAE,IAAI49B,EAAEh9B,EAAEiF,KAAK,CAAC7e,EAAEgZ,EAAE,CAACA,EAAE+9B,EAAE/9B,EAAE+9B,EAAEzS,EAAEppC,OAAO0e,EAAEiF,KAAK,CAAC7e,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,QAAQ,OAAO4Z,GAAG4f,EAAE+K,UAAUsU,eAAe,SAAS1lD,EAAE8E,EAAEohB,GAAGphB,EAAE7J,KAAK8D,IAAI+F,EAAE9E,EAAEqL,QAAQ,IAAIwB,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE,GAAG07C,EAAEv9B,EAAErnB,IAAI,SAAS8wC,EAAEzpB,EAAErnB,IAAI,kBAAkB+kD,EAAE,EAAEn9B,EAAE,EAAE,IAAI4f,EAAE,EAAEA,EAAErmC,EAAEqL,OAAOg7B,IAAI,CAACud,GAAG5jD,EAAEqmC,GAAG,GAAG,GAAG5f,GAAGzmB,EAAEqmC,GAAG,GAAG,GAAGA,EAAEvhC,GAAG,IAAI8+C,GAAG5jD,EAAEqmC,EAAEvhC,GAAG,GAAG,GAAG2hB,GAAGzmB,EAAEqmC,EAAEvhC,GAAG,GAAG,IAAI,IAAIyhB,EAAEvmB,EAAEqmC,GAAG,GAAGtjB,EAAE0D,EAAEm9B,EAAEn9B,EAAE,EAAE,GAAGkpB,EAAE,GAAGlpB,EAAE,CAAC,IAAIs9B,EAAEhhC,EAAE,EAAE,EAAEA,EAAEihC,EAAEv9B,EAAEq9B,EAAEL,EAAExoD,KAAKg+C,KAAK8K,GAAG,EAAEA,GAAGC,EAAEP,EAAEA,GAAG,EAAEO,EAAEA,IAAIxE,EAAE,EAAEiE,EAAEA,EAAEh9B,EAAE5Z,GAAGk3C,EAAEN,EAAEA,GAAG,EAAEh9B,GAAGq9B,GAAGtE,EAAE35B,GAAGk+B,EAAEN,EAAEA,GAAG,EAAEh9B,GAAGq9B,GAAGtE,EAAEz3C,EAAEs+B,GAAG,CAAC9f,EAAE,IAAIw9B,EAAE,CAAC,IAAIl3C,EAAE,IAAIgZ,SAAS9d,EAAEs+B,GAAG,CAAC9f,EAAE,EAAE,CAAC,EAAE,SAAS4qB,EAAE1qB,EAAEg9B,EAAExoD,KAAKg+C,KAAKl2B,GAAG,EAAEA,GAAG0D,GAAG,EAAE1e,EAAEs+B,GAAG,CAAC9f,EAAE,IAAIxD,EAAE,CAAC,KAAKA,EAAEouB,GAAG,KAAKpuB,EAAEouB,KAAK,OAAOppC,GAAGme,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,SAAS,IAAIs0B,EAAE,CAAC,SAAS9lD,EAAE8E,EAAEohB,GAAG,aAAa,SAASrZ,EAAE7M,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAAGL,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAyByoC,EAAEx5B,EAArB7M,EAAE,kBAAiD+H,EAAE8E,EAAzB7M,EAAE,sBAA4ByjD,EAAE,WAAWpd,EAAE7U,QAAQ0f,KAAKtyC,QAAO6kD,EAAErS,UAAU,IAAI/K,EAAE7U,SAAoBi0B,cAAc,SAASzlD,EAAE8E,EAAEohB,KAAKu9B,EAAErS,UAAUsU,eAAe,SAAS1lD,EAAE8E,EAAEohB,KAAKu9B,EAAErS,UAAU2U,iBAAiB,SAAS/lD,EAAE8E,GAAG,IAAI,IAAIohB,EAAE,EAAEA,EAAElmB,EAAEqL,SAAS6a,EAAE,CAAC,IAAIrZ,EAAE7M,EAAEkmB,GAAGL,EAAE/gB,EAAEohB,GAAGL,EAAEmgC,MAAMC,IAAIpgC,EAAEqgC,SAASD,IAAIpgC,EAAEsgC,WAAW9f,EAAE7U,QAAQwgB,WAAWnlC,EAAE,GAAG,IAAIgZ,EAAEugC,UAAU/f,EAAE7U,QAAQwgB,WAAWnlC,EAAE,GAAG,MAAM42C,EAAErS,UAAUiV,kBAAkB,SAASrmD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAEgZ,EAAE,KAAKwgB,EAAE,KAAK8K,EAAEnxC,EAAEqL,OAAO,EAAEtD,EAAE,EAAEA,GAAGopC,EAAEppC,IAAI,GAAG,QAAQ8E,EAAE7M,EAAE+H,GAAG,MAAM8mC,MAAMhiC,GAAG,CAAC,IAAI42C,EAAEzjD,EAAE+H,GAAG,GAAG,GAAG4nC,EAAE3vC,EAAE+H,GAAG,GAAG,GAAG07C,EAAE52C,IAAI42C,EAAE52C,GAAG8iC,EAAE9iC,IAAI8iC,EAAE9iC,IAAI,OAAOw5B,GAAGsJ,EAAEtJ,KAAKA,EAAEsJ,IAAI,OAAO9pB,GAAG49B,EAAE59B,KAAKA,EAAE49B,GAAG,MAAM,CAAC59B,EAAEwgB,IAAIod,EAAErS,UAAUkV,gBAAgB,SAAStmD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAEgZ,EAAE,EAAEA,EAAE7lB,EAAEqL,OAAOwa,KAAIhZ,EAAE7M,EAAE6lB,IAAKmgC,MAAMj+C,EAAEypB,QAAQ+0B,aAAazhD,EAAE+H,EAAEs5C,WAAWjgC,GAAGrZ,EAAEq5C,SAASn+C,EAAEypB,QAAQ+0B,aAAazhD,EAAE+H,EAAEu5C,UAAUlgC,IAAIA,EAAEsL,QAAQiyB,EAAE3+C,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,oBAAoB,GAAG,gBAAgB,IAAIg1B,EAAE,CAAC,SAASxmD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAIiP,EAAE,aAAagZ,EAAEhZ,EAAEgZ,EAAE4gC,EAAE,EAAE5gC,EAAE6gC,EAAE,EAAE7gC,EAAE8gC,OAAO,EAAE9gC,EAAEurB,UAAUqU,cAAc,SAASzlD,EAAE8E,EAAEohB,KAAKL,EAAEurB,UAAUwV,eAAe,SAAS5mD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAE,GAAGw5B,EAAE,EAAEA,EAAErmC,EAAEqL,SAASg7B,EAAE,CAAC,IAAI8K,EAAEnxC,EAAEqmC,GAAGt+B,EAAEopC,EAAE,GAAGsS,EAAE,OAAO17C,EAAE,KAAK8d,EAAEmsB,WAAWjqC,GAAG4nC,EAAE,CAAC/0C,EAAEqrD,IAAIrgC,EAAEqgC,IAAIY,KAAKhhC,EAAEmsB,WAAWb,EAAE,IAAI2V,KAAKrD,EAAE3jC,KAAKhb,EAAEymB,IAAI8a,EAAEngB,EAAE6gC,QAAQd,IAAIe,QAAQf,KAAKp5C,EAAE6e,KAAKikB,GAAG,OAAO/wC,KAAKmnD,iBAAiB/lD,EAAE6M,GAAGA,GAAGgZ,EAAEurB,UAAU2U,iBAAiB,SAAS/lD,EAAE8E,KAAK+gB,EAAEurB,UAAUsU,eAAe,SAAS1lD,EAAE8E,EAAEohB,KAAKL,EAAEurB,UAAUiV,kBAAkB,SAASrmD,EAAE8E,EAAEohB,KAAKL,EAAEurB,UAAUkV,gBAAgB,SAAStmD,EAAE8E,EAAEohB,KAAKL,EAAEmsB,WAAW,SAAShyC,GAAG,OAAO,OAAOA,EAAEimD,IAAIjmD,GAAGkmB,EAAEsL,QAAQ3kB,EAAE/H,EAAEy+C,QAAQr9B,EAAEsL,SAAS,IAAIy1B,EAAE,CAAC,SAASjnD,EAAE8E,EAAEohB,GAAG,aAAa,SAASrZ,EAAE7M,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAAGL,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAyByoC,GAAGx5B,EAAtB7M,EAAE,kBAAyBA,EAAE,cAAcmxC,EAAEtkC,EAAEw5B,GAAGt+B,EAAE,cAAaA,EAAEqpC,UAAU,IAAID,EAAE3f,SAAoBi0B,cAAc,SAASzlD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAI4nC,EAAE,GAAGiU,EAAE19B,EAAErnB,IAAI,YAAY4nB,EAAE,EAAEA,EAAEzmB,EAAEqL,OAAOob,IAAI5Z,EAAE7M,EAAEymB,GAAG,GAAG4f,EAAErmC,EAAEymB,GAAG3hB,GAAG8+C,GAAG,OAAOvd,IAAIA,EAAE,IAAI,GAAGA,EAAE,IAAI,KAAKA,EAAE,MAAM,OAAOA,GAAG8K,EAAE9K,EAAE,GAAGt+B,EAAEs+B,EAAE,GAAG,OAAO8K,GAAGtC,MAAMsC,GAAGxB,EAAEjkB,KAAK,CAAC7e,EAAEskC,EAAE,CAACA,EAAEppC,MAAgB8d,EAAE,KAAV9d,EAAEopC,EAAEppC,EAAE,GAAU4nC,EAAEjkB,KAAK,CAAC7e,EAAEgZ,EAAE,CAACsrB,EAAEppC,OAAO4nC,EAAEjkB,KAAK,CAAC7e,EAAE,KAAK,CAAC,KAAK,QAAQ,OAAO8iC,GAAG5nC,EAAEqpC,UAAUsU,eAAe,SAAS1lD,EAAE8E,EAAEohB,GAAGphB,EAAE7J,KAAK8D,IAAI+F,EAAE9E,EAAEqL,QAAQ,IAAIwB,EAAEgZ,EAAE,GAAGwgB,EAAE,EAAE8K,EAAE,EAAE,IAAItkC,EAAE,EAAEA,EAAE7M,EAAEqL,OAAOwB,IAAI,CAACw5B,GAAGrmC,EAAE6M,GAAG,GAAG,GAAGskC,GAAGnxC,EAAE6M,GAAG,GAAG,GAAGA,EAAE/H,GAAG,IAAIuhC,GAAGrmC,EAAE6M,EAAE/H,GAAG,GAAG,GAAGqsC,GAAGnxC,EAAE6M,EAAE/H,GAAG,GAAG,IAAI,IAAIiD,EAAE/H,EAAE6M,GAAG,GAAG42C,EAAEtS,EAAE9K,EAAE8K,EAAE,EAAEtrB,EAAEhZ,GAAG,CAAC9E,EAAE,IAAI07C,GAAG,OAAO59B,GAAGK,EAAEsL,QAAQzpB,EAAEjD,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,gBAAgB,EAAE,YAAY,IAAI01B,EAAE,CAAC,SAASlnD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAyBioB,EAAE,SAAS7lB,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAA9C,CAArBA,EAAE,kBAAwEqmC,EAAE,cAAaA,EAAE+K,UAAU,IAAIvrB,EAAE2L,SAAoBi0B,cAAc,SAASzlD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAE,GAAGgZ,EAAEK,EAAErnB,IAAI,YAAYwnC,EAAE,EAAEA,EAAErmC,EAAEqL,OAAOg7B,IAAI,CAAC,IAAI8K,EAAEnxC,EAAEqmC,GAAG,GAAGt+B,EAAE/H,EAAEqmC,GAAGvhC,GAAG+gB,GAAG9d,GAAG,IAAIA,EAAE,MAAM8E,EAAE6e,KAAK,CAACylB,EAAEppC,IAAI,OAAO8E,GAAGw5B,EAAE+K,UAAUsU,eAAe,SAAS1lD,EAAE8E,EAAEohB,GAA0B,IAAIrZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE07C,EAAE,GAAG,GAAG,IAA7C3+C,EAAE7J,KAAK8D,IAAI+F,EAAE9E,EAAEqL,SAAmC,OAAOrL,EAAE,IAAI6M,EAAE,EAAEA,EAAE7M,EAAEqL,OAAOwB,IAAI,CAAC,IAAIskC,EAAE,EAAEppC,EAAE,EAAE8d,EAAE5qB,KAAKqD,IAAI,EAAEuO,EAAE/H,EAAE,GAAG+gB,EAAEhZ,EAAE,EAAEgZ,IAAI,QAAQwgB,EAAErmC,EAAE6lB,GAAG,KAAKgpB,MAAMxI,KAAKt+B,IAAIopC,GAAGnxC,EAAE6lB,GAAG,IAAI49B,EAAE52C,GAAG9E,EAAE,CAAC/H,EAAE6M,GAAG,GAAGskC,EAAEppC,GAAG,CAAC/H,EAAE6M,GAAG,GAAG,MAAM,OAAO42C,GAAGpd,EAAE+K,UAAUiV,kBAAkB,SAASrmD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAEgZ,EAAE,KAAKwgB,EAAE,KAAK8K,EAAEnxC,EAAEqL,OAAO,EAAEtD,EAAE,EAAEA,GAAGopC,EAAEppC,IAAI,QAAQ8E,EAAE7M,EAAE+H,GAAG,KAAK8mC,MAAMhiC,MAAM,OAAOw5B,GAAGx5B,EAAEw5B,KAAKA,EAAEx5B,IAAI,OAAOgZ,GAAGhZ,EAAEgZ,KAAKA,EAAEhZ,IAAI,MAAM,CAACgZ,EAAEwgB,IAAIngB,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,gBAAgB,IAAI21B,EAAE,CAAC,SAASnnD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA2BioB,EAAE,SAAS7lB,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAvB9E,EAAE,oBAAiMmxC,EAAE,SAASnxC,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAA9C,CAAjBA,EAAE,cAAoE+H,EAAE,SAAS/H,EAAE8E,EAAEohB,EAAErZ,GAAG,GAAGjO,KAAKwoD,SAASpnD,EAAEpB,KAAKyoD,OAAOx6C,EAAEjO,KAAKkT,QAAQhN,EAAElG,KAAK0oD,eAAephC,EAAEtnB,KAAK4F,OAAOxE,EAAEunD,QAAQ3oD,KAAKiU,MAAM7S,EAAEwnD,QAAQ3hC,EAAE4hC,kBAAkB7oD,KAAKkT,SAAS,KAAK,2BAA2BlT,KAAK8oD,KAAK76C,EAAE86C,cAAc,IAAIthB,EAAEznC,KAAKwoD,SAASQ,YAAYvhB,EAAEwhB,YAAYxhB,EAAEyhB,KAAKlpD,KAAK8oD,KAAK9sD,EAAEgE,KAAK8oD,KAAK9hC,EAAEhnB,KAAK8oD,KAAKhY,EAAE9wC,KAAK8oD,KAAK/X,GAAGtJ,EAAE0hB,QAAO1hB,EAAEznC,KAAKwoD,SAASY,aAAcH,YAAYxhB,EAAEyhB,KAAKlpD,KAAK8oD,KAAK9sD,EAAEgE,KAAK8oD,KAAK9hC,EAAEhnB,KAAK8oD,KAAKhY,EAAE9wC,KAAK8oD,KAAK/X,GAAGtJ,EAAE0hB,QAAQhgD,EAAEqpC,UAAU6W,MAAM,WAAWrpD,KAAK0oD,eAAeY,UAAU,EAAE,EAAEtpD,KAAKiU,MAAMjU,KAAK4F,SAASuD,EAAEqpC,UAAU+W,OAAO,WAAWvpD,KAAKwpD,gBAAgBxpD,KAAKypD,oBAAoBtgD,EAAEugD,sBAAsB,SAAStoD,GAAG,OAAOA,EAAE+H,EAAEwgD,+BAA+B,MAAMxgD,EAAEwgD,+BAA+B,SAASvoD,EAAE8E,GAAG,OAAO,OAAO9E,EAAE8E,GAAGgiD,MAAM/+C,EAAEygD,gBAAgB,SAASxoD,EAAE8E,EAAEohB,EAAErZ,EAAEw5B,EAAE8K,EAAEsS,GAAG,IAAI9T,EAAE3vC,EAAEyoD,QAAQ7E,EAAEjU,EAAE+Y,iBAAiB,WAAW1oD,EAAE2oD,SAAS9iC,EAAE+iC,YAAY/7C,KAAKA,EAAE,MAAM,IAAI4Z,EAAEkpB,EAAE+Y,iBAAiB,oBAAoB1oD,EAAE2oD,SAASpiC,EAAEvmB,EAAEsU,OAAOyO,EAAE/iB,EAAE2oD,QAAQ5E,EAAEl+B,EAAEgjC,eAAetiC,EAAE,EAAEA,EAAElb,OAAOtD,EAAEugD,sBAAsB3Y,EAAE+Y,iBAAiB,yBAAyB3lC,KAAKihC,EAAEn3C,GAAGA,EAAExB,QAAQ,EAAEy4C,EAAE9jD,EAAE8oD,eAAehF,EAAE7pB,OAAO+pB,GAAGF,EAAEiF,aAAajF,EAAEiF,YAAYl8C,GAAG,IAAI2yC,EAAEz3C,EAAEihD,YAAYhpD,EAAE+jD,EAAE79B,EAAEu9B,EAAEpd,EAAE5f,EAAEm9B,EAAE9+C,GAAGiD,EAAEkhD,kBAAkBjpD,EAAEw/C,EAAErO,EAAErsC,EAAE2+C,GAAGO,GAAGF,EAAEiF,aAAajF,EAAEiF,YAAY,IAAIjF,EAAEoF,WAAWnhD,EAAEihD,YAAY,SAAShpD,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,GAAG,IAAI07C,EAAE9T,EAAEiU,EAAE,KAAKn9B,EAAE,KAAKF,EAAE,KAAKxD,EAAE,GAAGghC,GAAE,EAAGC,EAAEhkD,EAAE8oD,eAAe9E,EAAE6D,YAAY7D,EAAEmF,YAAYphD,EAAEi8C,EAAEoF,UAAUljC,EAAE,IAAI,IAAI49B,EAAEh/C,EAAEukD,OAAO7J,EAAE16C,EAAEwkD,KAAK1jC,EAAE9gB,EAAEykD,WAAW3uD,EAAEkK,EAAE0kD,OAAO5uD,EAAE4kD,EAAE5kD,IAAI,CAAC,GAAG+0C,EAAEmU,EAAElpD,GAAGgrB,EAAE,CAAC,KAAKhrB,EAAE4kD,IAAI55B,EAAEk+B,EAAElpD,IAAIA,IAAI,GAAGA,GAAG4kD,EAAE,MAAM7P,EAAEmU,EAAElpD,GAAG,GAAG,OAAO+0C,EAAEqX,SAASrX,EAAEqX,SAASrX,EAAEqX,QAAQ7V,GAAG,OAAOyS,IAAII,EAAEyF,OAAO7F,EAAEn9B,GAAGu9B,EAAE0F,OAAO/Z,EAAEoX,QAAQtgC,IAAIm9B,EAAEn9B,EAAE,SAAS,CAAC,GAAGg9B,GAAE,EAAGpd,GAAG,OAAOud,EAAE,CAAC9+C,EAAE6kD,SAAS/uD,EAAEkK,EAAE8kD,OAAuC,IAAI5jC,EAAE,QAAtCO,EAAEzhB,EAAE+kD,QAAQ/kD,EAAEglD,KAAK9C,QAAQ,OAAqBzgC,GAAGA,EAAEk9B,EAAE,OAAOG,GAAG59B,EAAEqgB,KAAK0d,GAAG,OAAOH,GAAG9+C,EAAE+kD,SAAS7jC,KAAKy9B,GAAE,GAAI,OAAOG,EAAE19B,IAAIirB,IAAI6S,EAAEyF,OAAO7F,EAAEn9B,GAAGu9B,EAAE0F,OAAO/Z,EAAEoX,QAAQtgC,IAAIu9B,EAAE0F,OAAO/Z,EAAEoX,QAAQpX,EAAEqX,UAAUhD,EAAEyF,OAAO9Z,EAAEoX,QAAQpX,EAAEqX,UAAUnhC,GAAG49B,IAAI1gC,EAAE2I,KAAK,CAACikB,EAAEoX,QAAQpX,EAAEqX,QAAQrX,EAAEpkB,MAAMq4B,EAAEjU,EAAEoX,QAAQtgC,EAAEkpB,EAAEqX,QAAQjD,GAAE,EAAG,OAAOC,EAAE+F,SAAShnC,GAAGhb,EAAEkhD,kBAAkB,SAASjpD,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,GAAG,IAAI,IAAIwgB,EAAErmC,EAAE8oD,eAAe3X,EAAE,EAAEA,EAAErsC,EAAEuG,OAAO8lC,IAAI,CAAC,IAAIppC,EAAEjD,EAAEqsC,GAAG9K,EAAEpM,OAAO/T,EAAEgrB,KAAKlxC,EAAEyoD,QAAQzoD,EAAEyoD,QAAQzoD,EAAE2oD,QAAQtiB,EAAEt+B,EAAE,GAAGA,EAAE,GAAG8E,EAAEgZ,EAAE9d,EAAE,IAAIs+B,EAAE6iB,YAAYnhD,EAAEqpC,UAAUgX,cAAc,WAAW,IAAI,IAAIpoD,EAAEpB,KAAKyoD,OAAO/yC,OAAOxP,EAAE9E,EAAEqL,OAAOvG,KAAK,IAAI,IAAIohB,EAAElmB,EAAE8E,GAAG+H,EAAEqZ,EAAE7a,OAAOwB,KAAK,CAAC,IAAIgZ,EAAEK,EAAErZ,GAAGgZ,EAAEkhC,QAAQnoD,KAAK8oD,KAAKhY,EAAE7pB,EAAEjrB,EAAEgE,KAAK8oD,KAAK9sD,EAAEirB,EAAEmhC,QAAQpoD,KAAK8oD,KAAK/X,EAAE9pB,EAAED,EAAEhnB,KAAK8oD,KAAK9hC,IAAI7d,EAAEqpC,UAAUiX,iBAAiB,SAASroD,EAAE8E,GAAG,IAAIohB,EAAErZ,EAAEw5B,EAAEvhC,GAAGlG,KAAK0oD,eAAenW,EAAEvyC,KAAKyoD,OAAO/yC,OAAOvM,EAAEnJ,KAAKyoD,OAAO2C,SAASprD,KAAKqN,OAAOrN,KAAKwoD,SAAS6C,WAAW,IAAIxG,EAAE7kD,KAAKwoD,SAAS5lB,UAAU,WAAWmO,EAAE8T,EAAE59B,EAAE+iC,YAAYjZ,KAAKA,EAAE,CAACA,IAAI,IAAIiU,EAAE,GAAG,IAAI19B,EAAE,EAAEA,EAAEne,EAAEsD,OAAO6a,IAAI,CAACrZ,EAAE9E,EAAEme,GAAG,IAAIO,EAAE7nB,KAAKwoD,SAAS5lB,UAAU,UAAU30B,GAAG4Z,GAAGg9B,IAAIG,EAAE/2C,GAAG4Z,GAAG,IAAIP,EAAE,EAAEA,EAAEypB,EAAEtkC,OAAO6a,IAAI,IAAI,IAAIK,EAAEopB,EAAEzpB,GAAGnD,EAAEmD,GAAGypB,EAAEtkC,OAAO,EAAE04C,EAAE,EAAEA,EAAE5S,EAAE9lC,OAAO04C,IAAI,GAAGl3C,EAAE9E,EAAEg8C,IAAI/jD,GAAG6M,GAAG7M,EAAE,CAAC,IAAIgkD,EAAE7S,EAAE4S,GAAGD,EAAEv9B,EAAE,GAAG1Z,KAAK+2C,EAAE,CAAC,IAAI7gC,EAAE,SAAS+gC,EAAEF,EAAE/2C,GAAG,IAAI2yC,EAAE5gD,KAAKqN,OAAOY,GAAG+Y,EAAEhnB,KAAKwoD,SAAS5lB,UAAU,cAAc30B,GAAGw5B,EAAEpM,OAAOoM,EAAE8iB,YAAY3J,EAAEnZ,EAAE+iB,UAAUxjC,EAAEk+B,EAAE,CAACxvC,OAAO0vC,EAAE2E,QAAQ97C,EAAEi8C,eAAeziB,EAAEgF,MAAMmU,EAAE0K,YAAYtkC,EAAE6iC,QAAQ7pD,KAAKwoD,SAAS+C,KAAKvrD,KAAKwoD,SAASgD,wBAAwBv9C,GAAGw9C,SAASzrD,KAAK8oD,KAAK4C,YAAYvG,EAAEwG,YAAYpZ,EAAE9lC,OAAOm/C,iBAAiBxqD,EAAEyqD,gBAAgBtZ,IAAI9K,EAAE6iB,YAAYnhD,EAAE2iD,UAAU,CAACC,YAAY,SAAS3qD,GAAG+H,EAAE6iD,aAAa5qD,IAAI6qD,YAAY,SAAS7qD,GAAG+H,EAAE+iD,aAAa9qD,IAAI+qD,aAAa,SAAS/qD,GAAG+H,EAAEijD,cAAchrD,KAAK+H,EAAE6iD,aAAa,SAAS5qD,GAAG,IAAI8E,EAAE9E,EAAEyoD,QAAQviC,EAAElmB,EAAE2oD,QAAQ97C,EAAE7M,EAAEkqD,YAAY7jB,EAAEvhC,EAAEmmD,iBAAiB,oBAAoB/kC,GAAGirB,EAAErsC,EAAE08B,UAAU,oBAAoBtb,IAAIL,EAAEqlC,QAAQC,QAAQ1H,EAAE3+C,EAAE08B,UAAU,gBAAgBtb,GAAGypB,EAAE7qC,EAAE4jD,iBAAiB,aAAaxiC,GAAG09B,EAAE9+C,EAAEmmD,iBAAiB,YAAY/kC,GAAGmgB,GAAGx5B,GAAG9E,EAAEygD,gBAAgBxoD,EAAE8E,EAAE08B,UAAU,oBAAoBtb,GAAGrZ,EAAE,EAAEw5B,EAAEod,EAAE9T,EAAEwB,EAAEyS,GAAG77C,EAAEygD,gBAAgBxoD,EAAEA,EAAEqrC,MAAMx+B,EAAE42C,EAAE9T,EAAEwB,EAAEyS,IAAI77C,EAAEijD,cAAc,SAAShrD,GAAG,IAAI8E,EAAE9E,EAAEyoD,QAAQviC,EAAElmB,EAAE2oD,QAAQ,GAAG7jD,EAAE4jD,iBAAiB,cAAc5jD,EAAE4jD,iBAAiB,cAAc,CAAC5jD,EAAE4jD,iBAAiB,YAAYxiC,IAAI/lB,QAAQoN,KAAK,8CAA8C,IAAIV,EAAEw5B,EAAErmC,EAAE8oD,eAAe3X,EAAEnxC,EAAEqrC,MAAMoY,EAAE3+C,EAAEmmD,iBAAiB,YAAY/kC,GAAGypB,EAAE7qC,EAAE4jD,iBAAiB,WAAWxiC,GAAG09B,EAAE5jD,EAAEsU,OAAOmS,EAAEZ,EAAEgjC,eAAejF,EAAE,EAAEA,EAAEv4C,OAAOtD,EAAEugD,sBAAsBxjD,EAAE4jD,iBAAiB,yBAAyBxiC,KAAKK,EAAE0/B,IAAIljC,EAAEkjC,IAAIlC,EAAE,EAAE,GAAG,GAAGC,EAAEn+B,EAAEulC,OAAOja,GAAG2S,EAAE,QAAQE,EAAE3d,EAAE,IAAI2d,EAAED,EAAE,IAAIC,EAAE79B,EAAE,IAAIs9B,EAAE,IAAIpd,EAAEglB,UAAUvH,EAAEzd,EAAEwhB,YAAY,IAAI,IAAIrI,EAAE,SAASx/C,GAAG,OAAO,OAAOA,QAAG,IAASA,GAAG6uC,MAAM7uC,IAAIymB,EAAEojC,SAAS,CAAC,IAAIjkC,EAAEa,EAAEmjC,QAAQja,GAAG6P,EAAE55B,EAAEA,IAAI+pB,IAAId,MAAM9rB,IAAIy8B,EAAEz8B,GAAGwD,EAAE0/B,KAAKp5C,EAAE,CAAC+Y,EAAEsgC,SAAStgC,EAAEogC,OAAOrW,IAAI5sB,EAAE6C,EAAEA,GAAGipB,MAAMhiC,EAAE,MAAMA,EAAE,GAAG+Y,EAAEA,GAAGipB,MAAMhiC,EAAE,MAAMA,EAAE,GAAG+Y,EAAEA,GAAG/Y,EAAE,GAAG7M,EAAEqqD,SAAS1a,EAAE9iC,EAAE,GAAG7M,EAAEqqD,SAASzkC,EAAE/Y,EAAE,GAAG7M,EAAEqqD,SAAS1a,EAAE9iC,EAAE,GAAG7M,EAAEqqD,SAASzkC,EAAEipB,MAAMtoB,KAAKopB,GAAGtJ,EAAEojB,OAAOljC,EAAEw9B,EAAE,IAAI1d,EAAEqjB,OAAO9jC,EAAEmhC,QAAQhD,EAAE,IAAI1d,EAAEqjB,OAAO9jC,EAAEmhC,QAAQhD,EAAE,MAAM1d,EAAEojB,OAAOljC,EAAEw9B,EAAE,IAAI1d,EAAEqjB,OAAO9jC,EAAEmhC,QAAQl6C,EAAE,IAAIw5B,EAAEqjB,OAAO9jC,EAAEmhC,QAAQl6C,EAAE,KAAKw5B,EAAEqjB,OAAOnjC,EAAEw9B,EAAE,IAAI1d,EAAEilB,aAAavH,EAAEl3C,EAAE0Z,EAAEX,EAAEmhC,SAAS1gB,EAAEklB,SAASxjD,EAAEyjD,iBAAiB,SAASxrD,GAAG,IAAI8E,EAAE,GAAGohB,EAAE,KAAKrZ,EAAE,KAAKgZ,EAAE,EAA6fsrB,EAAE,SAASjrB,IAApgB,SAASlmB,GAAG,KAAK8E,EAAEuG,QAAQ,GAAG,CAAC,IAAI,IAAI6a,EAAEphB,EAAEuG,OAAO,EAAE6a,EAAE,EAAEA,IAAgB,GAAG,IAAVrZ,EAAE/H,EAAEohB,IAAW,GAAG,CAAC,IAAIL,EAAE/gB,EAAEohB,EAAE,GAAGL,EAAE,IAAIhZ,EAAE,IAAIgZ,EAAE,IAAIhZ,EAAE,IAAI/H,EAAE2mD,OAAOvlC,EAAE,GAAI,IAAQA,EAAE,EAAEA,EAAEphB,EAAEuG,OAAO,GAAe,IAAPwB,EAAE/H,EAAEohB,IAAQ,IAAI,GAAGphB,EAAEohB,EAAE,GAAG,GAAGphB,EAAE2mD,OAAOvlC,EAAE,GAAGA,IAAI,GAAGphB,EAAEuG,OAAO,IAAIrL,EAAE,CAAC,IAAIqmC,EAAE,EAAE,GAAGvhC,EAAE,GAAG,IAAIuhC,IAAQ,IAAI8K,EAAE,KAAKppC,EAAE,KAAjB,IAAsBme,EAAEmgB,EAAEngB,EAAEphB,EAAEuG,OAAO6a,IAAI,CAAC,IAAIrZ,EAAO,GAAG,IAAVA,EAAE/H,EAAEohB,IAAW,GAAG,GAAG,OAAOirB,GAAG,OAAOppC,EAAEopC,EAAEjrB,EAAEne,EAAEme,MAAM,CAAC,IAAIu9B,EAAE52C,EAAE,GAAG42C,EAAE3+C,EAAEqsC,GAAG,GAAGA,EAAEjrB,EAAEu9B,EAAE3+C,EAAEiD,GAAG,KAAKA,EAAEme,IAAI,IAAIypB,EAAE7qC,EAAEqsC,GAAGyS,EAAE9+C,EAAEiD,GAAGjD,EAAE2mD,OAAOplB,EAAEvhC,EAAEuG,OAAOg7B,GAAG8K,EAAEppC,GAAGjD,EAAE4mB,KAAKikB,GAAG7qC,EAAE4mB,KAAKk4B,IAAIzS,EAAEppC,GAAGjD,EAAE4mB,KAAKk4B,GAAG9+C,EAAE4mB,KAAKikB,IAAI7qC,EAAE4mB,KAAKikB,KAAoBtJ,CAAEngB,GAAG,IAAI,IAAIirB,EAAE,EAAEppC,EAAEjD,EAAEuG,OAAO8lC,EAAEppC,EAAEopC,IAAI,CAAC,IAAIsS,EAAE3+C,EAAEqsC,GAAG,GAAGsS,EAAE,GAAGzjD,EAAE0pD,OAAOjG,EAAE,GAAGA,EAAE,IAAI,GAAGA,EAAE,IAAIzjD,EAAEypD,OAAOhG,EAAE,GAAGA,EAAE,IAAI3+C,EAAEuG,SAASwB,EAAE/H,EAAEA,EAAEuG,OAAO,GAAG,IAAIwa,GAAG/gB,EAAEuG,OAAOvG,EAAE,IAAIiD,EAAE,SAAS/H,EAAE6lB,EAAEwgB,GAAG,IAAIt+B,EAAE9M,KAAKgpB,MAAM4B,GAAM,OAAOK,GAAGne,GAAGme,IAAuBirB,EAAdjrB,EAAErZ,EAAE,GAAI9E,EAAEme,EAAE,GAAUA,EAAEne,GAAEjD,EAAE4mB,KAAK,CAAC1rB,EAAE6lB,EAAEwgB,KAAK,MAAM,CAACojB,OAAO,SAASzpD,EAAE8E,GAAGiD,EAAE,EAAE/H,EAAE8E,IAAI4kD,OAAO,SAAS1pD,EAAE8E,GAAGiD,EAAE,EAAE/H,EAAE8E,IAAIilD,OAAO,WAAW5Y,GAAE,GAAInxC,EAAE+pD,UAAUwB,KAAK,WAAWpa,GAAE,GAAInxC,EAAEurD,QAAQ1D,UAAU,WAAW1W,GAAE,GAAInxC,EAAE6nD,aAAayD,UAAU,WAAWna,GAAE,GAAInxC,EAAEsrD,aAAaI,OAAO,WAAW,OAAO7lC,KAAK9d,EAAE+iD,aAAa,SAAS9qD,GAAG,IAAIA,EAAEwqD,kBAAkB,IAAIxqD,EAAEsqD,YAAY,CAAC,IAAI,IAAIxlD,EAAE9E,EAAEyoD,QAAQviC,EAAEphB,EAAE6mD,YAAY1+B,MAAM,GAAGpgB,EAAEqZ,EAAE7a,OAAOwB,GAAG,EAAEA,IAAI/H,EAAE8mD,aAAa/+C,IAAIqZ,EAAEulC,OAAO5+C,EAAE,GAAG,GAAG,WAAW,IAAI,IAAI7M,EAAE,EAAEA,EAAEkmB,EAAE7a,OAAOrL,IAAI,GAAG8E,EAAE4jD,iBAAiB,YAAYxiC,EAAElmB,IAAI,OAAM,EAAG,OAAM,EAA7F,GAAmG,IAAI,IAAIqmC,EAAEod,EAAE9T,EAAE3vC,EAAEqqD,SAASzG,EAAE5jD,EAAEyqD,gBAAgBhkC,EAAEm9B,EAAEv4C,OAAOkb,EAAEzhB,EAAE4jD,iBAAiB,gBAAgB3lC,EAAEje,EAAE+mD,YAAY9H,EAAE,GAAGC,EAAE,SAAShkD,EAAE8E,EAAEohB,EAAErZ,GAAG,GAAG7M,EAAE0pD,OAAO5kD,EAAEohB,GAAGK,EAAE,IAAI,IAAIV,EAAEhZ,EAAExB,OAAO,EAAEwa,GAAG,EAAEA,IAAI,CAAC,IAAIwgB,EAAEx5B,EAAEgZ,GAAG7lB,EAAE0pD,OAAOrjB,EAAE,GAAGA,EAAE,MAAMyd,EAAEr9B,EAAE,EAAEq9B,GAAG,EAAEA,IAAI,CAAC,IAAItE,EAAEx/C,EAAE8oD,eAAeljC,EAAEM,EAAE49B,GAAG,GAAGh/C,EAAE4jD,iBAAiB,YAAY9iC,GAAG,CAAC,IAAIhrB,EAAEkK,EAAEmmD,iBAAiB,YAAYrlC,GAAGI,EAAElhB,EAAE4jD,iBAAiB,WAAW9iC,GAAGO,EAAEpD,EAAE+gC,GAAGpU,EAAE5qC,EAAEslD,wBAAwBxkC,GAAGkmC,EAAE,EAAEpc,EAAEqc,QAAQrc,EAAEsc,OAAOF,EAAE,EAAEA,EAAE,EAAEA,EAAE,IAAIA,EAAE,GAAGA,EAAEnc,EAAEA,EAAEmc,EAAEnc,EAAE/pB,EAAE,IAAIqmC,EAAEC,EAAEtI,EAAEE,GAAGqI,EAAEtmC,EAAEgjC,eAAeqD,EAAE,EAAEA,EAAE7gD,OAAOtD,EAAEugD,sBAAsBxjD,EAAE4jD,iBAAiB,yBAAyB9iC,KAAKwmC,EAAEnG,IAAIlH,EAAE,EAAE,GAAG,GAAGsN,EAAExmC,EAAEulC,OAAOjlC,GAAGmmC,EAAE,QAAQD,EAAEhmB,EAAE,IAAIgmB,EAAEtI,EAAE,IAAIsI,EAAElmC,EAAE,IAAIvrB,EAAE,IAAI4kD,EAAE6L,UAAUiB,EAAE9M,EAAEqI,YAAY,IAAI0E,EAAEC,GAAE,GAAIN,EAAE7gD,OAAO,EAAEvG,EAAE0iD,QAAQrW,EAAE3f,QAAQi7B,oBAAoBjN,EAAEz3C,EAAEyjD,iBAAiBhM,IAAI,IAAI,IAAIkN,EAAEC,EAAE,GAAGR,EAAEtC,SAAS,GAAG6C,EAAEP,EAAEvC,OAAO/jC,EAAE+mC,KAAKF,EAAE9mC,IAAII,EAAE,CAAC,GAAGO,EAAE,CAAC,IAAIimC,GAAGD,GAAGG,EAAE7F,KAAK,SAAsC,IAAIgG,EAAjCL,GAAE,EAAGD,EAAEG,EAAE7F,KAA0BgG,OAAE,KAAvBxmB,EAAE0d,EAAE2I,EAAE3F,UAA4B+E,EAAErI,EAAEpd,EAAE,GAAGA,EAAE4lB,EAAE,CAACS,EAAE1F,QAAQ6F,GAAG7mC,GAAG,IAAI+4B,EAAE,GAAGgF,EAAE2I,EAAE3F,SAAS,CAAC2F,EAAE1F,QAAQ8E,GAAG/H,EAAE2I,EAAE3F,SAAS,CAAC2F,EAAE1F,QAAQjI,EAAE,IAAIgF,EAAE2I,EAAE3F,SAAS2F,EAAE1F,aAAaiF,EAAEpd,MAAM6d,EAAE1F,UAAUhhC,EAAE,CAAC2pB,EAAE/pB,EAAE+pB,EAAEA,EAAEmc,GAAG,CAACY,EAAE1F,QAAQ8E,GAAGjd,MAAMud,IAAI5M,EAAEiK,OAAOiD,EAAE3F,QAAQkF,EAAE,IAAIzM,EAAEkK,OAAOgD,EAAE3F,QAAQkF,EAAE,MAAMjmC,GAAGw5B,EAAEkK,OAAOgD,EAAE3F,QAAQhI,EAAE,IAAIS,EAAEkK,OAAOgD,EAAE3F,QAAQkF,EAAE,KAAKzM,EAAEkK,OAAOgD,EAAE3F,QAAQkF,EAAE,IAAI1lC,IAAIomC,EAAEjhC,KAAK,CAAC0gC,EAAErN,EAAE,KAAK0E,GAAGpd,EAAEsmB,EAAEjhC,KAAK,CAACghC,EAAE3F,QAAQ1gB,EAAE,KAAKsmB,EAAEjhC,KAAK,CAACghC,EAAE3F,QAAQkF,EAAE,OAAOlN,EAAEkN,EAAEG,EAAEM,EAAE3F,aAAa/C,EAAExE,EAAE4M,EAAErN,EAAE,GAAG4N,GAAGA,EAAE,GAAGP,EAAEnG,IAAI,OAAOyG,EAAEI,WAAWje,MAAM6d,EAAEI,aAAa/I,EAAE2I,EAAE3F,SAASpX,EAAEA,EAAE+c,EAAEI,UAAUnd,EAAE/pB,GAAG69B,EAAEz9B,EAAEimC,GAAGS,IAAI1I,EAAExE,EAAEkN,EAAE3F,QAAQkF,EAAE,GAAGU,GAAGA,EAAE,IAAInN,EAAE+L,WAAWrlC,EAAEsL,QAAQzpB,EAAEjD,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,YAAY,GAAG,kBAAkB,KAAKu7B,GAAG,CAAC,SAAS/sD,EAAE8E,EAAEohB,GAAG,aAAa,SAASrZ,EAAE7M,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAAG,SAAS6lB,EAAE7lB,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAAEnF,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA6BuzC,EAAEtrB,EAAzB7lB,EAAE,sBAA+DyjD,EAAE52C,EAAnC7M,EAAE,gCAA8D4jD,EAAE/2C,EAAxB7M,EAAE,qBAAkDumB,EAAEV,EAAvB7lB,EAAE,oBAA0B+iB,EAAE,CAACiqC,oBAAoB,EAAEC,oBAAoB,KAAKC,+BAA+B,GAAGC,+BAA+B,qBAAqBC,qBAAoB,EAAGC,sBAAqB,EAAGC,WAAU,EAAGC,YAAW,EAAGC,uBAAsB,EAAGC,mBAAmB,EAAEC,eAAe,EAAEC,QAAQ,KAAKzD,YAAY,EAAE0D,kBAAkB,EAAEC,kBAAkB,QAAQC,aAAa,EAAEC,kBAAkB,GAAGC,SAAS,EAAEC,YAAW,EAAGC,kBAAa,EAAOC,UAAU,IAAIC,MAAM,EAAEC,WAAU,EAAGC,WAAU,EAAGC,gBAAe,EAAGC,YAAW,EAAGC,WAAU,EAAGC,UAAU,IAAIC,wBAAuB,EAAGC,cAAa,EAAGC,oBAAoB,MAAMC,uBAAsB,EAAGh8C,OAAO,cAAci8C,UAAS,EAAGC,UAAU,EAAEC,UAAU,KAAKC,gBAAe,EAAGC,YAAY,GAAGC,aAAa,GAAGC,YAAY,GAAGC,cAAc,QAAQC,cAAc,GAAGC,cAAc,GAAGC,eAAe,GAAGC,cAAc,mBAAmBC,iBAAiBlM,EAAEjyB,QAAQo+B,aAAaC,eAAc,EAAGC,mBAAkB,EAAGC,oBAAoB,GAAGC,6BAA6B,UAAUC,mCAAmC,QAAQC,2BAA2B,UAAUC,mCAAmC,OAAOC,iCAAiC,EAAEC,2BAA2B,IAAIC,mCAAmC,QAAQC,iCAAiC,EAAEC,mBAAmB,GAAGC,oBAAoB,KAAKC,QAAQ,CAAC9M,EAAEpyB,QAAQs5B,aAAalH,EAAEpyB,QAAQw5B,cAAcpH,EAAEpyB,QAAQo5B,cAAc+F,QAAQ,GAAGC,KAAK,CAACh2D,EAAE,CAACi2D,eAAe,GAAGpB,eAAe,GAAGqB,mBAAmBvqC,EAAEwqC,uBAAuBC,eAAezqC,EAAE0qC,mBAAmBC,UAAS,EAAGC,UAAS,EAAGC,kBAAiB,EAAGC,OAAOlgB,EAAEmgB,YAAY1rC,EAAE,CAAC6pC,eAAe,GAAGoB,eAAe,GAAGG,eAAezqC,EAAEgrC,qBAAqBT,mBAAmBvqC,EAAEirC,yBAAyBN,UAAS,EAAGC,UAAS,EAAGC,kBAAiB,EAAGC,OAAOlgB,EAAEsgB,cAAczb,GAAG,CAACyZ,eAAe,GAAGoB,eAAe,GAAGG,eAAezqC,EAAEgrC,qBAAqBT,mBAAmBvqC,EAAEirC,yBAAyBL,UAAS,EAAGD,UAAS,EAAGE,kBAAiB,EAAGC,OAAOlgB,EAAEsgB,gBAAgBvrC,EAAEsL,QAAQzO,EAAEje,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,mBAAmB,EAAE,8BAA8B,GAAG,oBAAoB,GAAG,kBAAkB,KAAKkgC,GAAG,CAAC,SAAS1xD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAqBioB,EAAE,SAAS7lB,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAA9C,CAAjBA,EAAE,cAAoEqmC,EAAE,SAASrmC,GAAGpB,KAAKoD,UAAUhC,GAAGqmC,EAAE+K,UAAUugB,KAAK,SAAS3xD,EAAE8E,GAAGlG,KAAKoD,UAAUqiB,UAAU,QAAG,IAASzlB,KAAKgzD,YAAYhzD,KAAKgzD,WAAWjyB,UAAU/gC,KAAKgzD,WAAW,IAAI/rC,EAAE2L,QAAQ5yB,KAAKoD,UAAUhC,EAAE8E,IAAIuhC,EAAE+K,UAAUygB,aAAa,SAAS7xD,GAAG,IAAI8E,GAAE,EAAG9E,EAAEqL,SAASvG,EAAE9E,EAAE,GAAG6zB,KAAKj1B,KAAKgzD,WAAWC,aAAa/sD,IAAIuhC,EAAE+K,UAAU0gB,aAAa,WAAW,IAAI9xD,EAAE,GAAG8E,EAAElG,KAAKgzD,WAAWE,eAAe,GAAGhtD,EAAE,EAAE,OAAO9E,EAAE,IAAI,IAAIkmB,EAAEtnB,KAAKgzD,WAAWG,QAAQz9C,OAAOzH,EAAE,EAAEA,EAAEqZ,EAAE7a,SAASwB,EAAE7M,EAAE0rB,KAAK,CAACmI,IAAI/uB,EAAE6jC,OAAO97B,EAAE,IAAI,OAAO7M,GAAGkmB,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,YAAY,KAAKwgC,GAAG,CAAC,SAAShyD,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA2BioB,EAAE,SAAS7lB,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAvB9E,EAAE,oBAAgLqmC,EAAE,CAAGA,yBAA2B,SAASrmC,EAAE8E,EAAEohB,GAAGA,EAAE+rC,SAASpsC,EAAEqsC,UAAUlyD,EAAEkmB,GAAGA,EAAEisC,SAAStsC,EAAEusC,UAAUpyD,EAAEkmB,GAAG,IAAIrZ,EAAE5R,KAAKC,IAAIgrB,EAAE+rC,SAAS/rC,EAAEmsC,YAAYlhB,EAAEl2C,KAAKC,IAAIgrB,EAAEisC,SAASjsC,EAAEosC,YAAYzlD,EAAE,GAAGskC,EAAE,QAAG,IAASrsC,EAAEytD,SAAS,GAAGztD,EAAEytD,QAAQlsB,EAAEmsB,oBAAoB1tD,EAAE9E,EAAEkmB,GAAGA,EAAEusC,YAAY5lD,EAAEqZ,EAAEwsC,aAAavhB,GAAG9K,SAAW,SAASrmC,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAEw5B,EAAEngB,EAAEysC,WAAU,EAAG,IAAIxhB,EAAErsC,EAAE8tD,aAAa,GAAG9tD,EAAE+tD,iBAAiB,WAAW,MAAM3sC,EAAE4sC,oBAAoBjtC,EAAEktC,MAAM5hB,EAAE,IAAIjrB,EAAE8sC,UAAUntC,EAAEktC,MAAM5hB,EAAE,IAAItrB,EAAEktC,MAAM5hB,EAAE,MAAMjrB,EAAE4sC,oBAAoB3hB,EAAE,GAAGjrB,EAAE8sC,UAAU7hB,EAAE,GAAGA,EAAE,IAAIjrB,EAAE+sC,eAAe/sC,EAAE8sC,WAAWluD,EAAEouD,SAASxL,KAAKhY,EAAE,GAAG5qC,EAAEmmD,iBAAiB,mBAAmB,CAAC,IAAIljD,EAAEjD,EAAE0iD,OAAO1iD,EAAEmmD,iBAAiB,mBAAmBxH,EAAE3+C,EAAEquD,gBAAgBxjB,EAAE7qC,EAAEsuD,YAAY3P,EAAE,IAAI17C,EAAE67C,EAAE9+C,EAAEsuD,YAAY3P,EAAE,IAAI17C,EAAE0e,EAAE3hB,EAAEuuD,aAAa1jB,GAAGppB,EAAEzhB,EAAEuuD,aAAazP,GAAG19B,EAAEotC,aAAa,CAAC7sC,EAAEF,GAAG,IAAIxD,EAAE,GAAGghC,EAAEj/C,EAAEyiD,QAAQziD,EAAEmmD,iBAAiB,mBAAmB,IAAIp+C,EAAE,EAAEA,EAAE/H,EAAEyuD,MAAMloD,OAAOwB,IAAI,CAAc,IAAIm3C,GAAjB3d,EAAEvhC,EAAEyuD,MAAM1mD,IAAW2mD,aAAa1P,EAAEh/C,EAAE2uD,YAAYzP,EAAE,GAAGn3C,GAAGk3C,EAAEvE,EAAE16C,EAAE2uD,YAAYzP,EAAE,GAAGn3C,GAAGk3C,EAAEn+B,EAAE9gB,EAAE4uD,aAAa5P,EAAEj3C,GAAGjS,EAAEkK,EAAE4uD,aAAalU,EAAE3yC,GAAGkW,EAAElW,GAAG,CAAC+Y,EAAEhrB,GAAGsrB,EAAEytC,cAAc5wC,EAAE,IAAImD,EAAE0tC,SAAQ,EAAG1tC,EAAE0qC,KAAK,GAAG/jD,EAAE,EAAEA,EAAE/H,EAAEyuD,MAAMloD,OAAOwB,IAAI,CAACw5B,EAAEvhC,EAAEyuD,MAAM1mD,GAAG,IAAImZ,EAAE,GAAGG,EAAErhB,EAAE+uD,WAAWhnD,GAAG/H,EAAEgvD,YAAYC,WAAW,WAAWlnD,IAAImZ,EAAEguC,gBAAgBnuC,EAAEktC,MAAM5sC,EAAE,IAAIH,EAAEiuC,eAAepuC,EAAEktC,MAAM5sC,EAAE,IAAIN,EAAEktC,MAAM5sC,EAAE,MAAMH,EAAEguC,gBAAgB7tC,EAAE,GAAGH,EAAEiuC,eAAe9tC,EAAE,GAAGA,EAAE,IAAIH,EAAEkuC,cAAcluC,EAAEiuC,gBAAgBnvD,EAAEouD,SAASxL,KAAK/X,EAAE,GAAGzpB,EAAE0qC,KAAKllC,KAAK1F,GAAGqgB,EAAE1Y,aAAazH,EAAE0tC,SAAQ,KAAMvtB,QAAU,SAASrmC,EAAE8E,EAAEohB,GAAGA,EAAE+rC,SAASpsC,EAAEqsC,UAAUlyD,EAAEkmB,GAAGA,EAAEisC,SAAStsC,EAAEusC,UAAUpyD,EAAEkmB,GAAG,IAAIrZ,EAAEqZ,EAAE4sC,qBAAqB5sC,EAAE+rC,SAAS/rC,EAAEmsC,YAAYnsC,EAAE+sC,eAAe/sC,EAAEotC,eAAezmD,EAAE5R,KAAKqD,IAAIuO,EAAEqZ,EAAEotC,aAAa,KAAK,IAAIjtB,EAAEx5B,EAAEqZ,EAAE8sC,UAAU,GAAG9sC,EAAEotC,cAAcjtB,EAAEngB,EAAEotC,aAAa,KAA4BjtB,GAAvBx5B,GAAGw5B,EAAEngB,EAAEotC,aAAa,IAAOptC,EAAE8sC,WAAWluD,EAAE+tD,iBAAiB,WAAW,KAAK/tD,EAAEqvD,YAAY,CAACl5D,KAAK2qD,IAAI//B,EAAEuuC,UAAUvnD,GAAG5R,KAAK2qD,IAAI//B,EAAEuuC,UAAU/tB,IAAIvhC,EAAEqvD,YAAY,CAACtnD,EAAEw5B,GAAGngB,EAAE0tC,QAAQ,IAAI,IAAIziB,EAAEjrB,EAAEisC,SAASjsC,EAAEosC,WAAWvqD,EAAE,EAAEA,EAAEjD,EAAEyuD,MAAMloD,OAAOtD,IAAI,CAAC,IAAI07C,EAAE3+C,EAAEyuD,MAAMxrD,GAAG4nC,EAAEzpB,EAAE0qC,KAAK7oD,GAAG67C,EAAEzS,EAAExB,EAAEukB,cAAcztC,EAAEP,EAAEytC,cAAcztC,EAAEytC,cAAc5rD,GAAG,KAAKwe,EAAEopB,EAAEqkB,gBAAgBpQ,EAAEn9B,IAAIF,EAAEtrB,KAAK8D,IAAIwnB,EAAEE,EAAE,KAAK,IAAI1D,EAAEwD,EAAEopB,EAAEskB,eAAextC,GAAG1D,EAAE0D,EAAE,KAAe1D,GAAVwD,GAAGxD,EAAE0D,EAAE,IAAOkpB,EAAEskB,gBAAgBnvD,EAAEgvD,YAAYC,WAAW,WAAWhsD,GAAG07C,EAAE91B,WAAW,CAAC1yB,KAAK2qD,IAAI//B,EAAEuuC,UAAUrxC,GAAG9nB,KAAK2qD,IAAI//B,EAAEuuC,UAAU7tC,IAAIk9B,EAAE91B,WAAW,CAAC5K,EAAEwD,GAAGzhB,EAAEuvD,YAAW,KAAKhuB,EAAEiuB,OAAOjuB,EAAEkuB,yBAAyBluB,EAAEmuB,UAAU,SAASx0D,EAAE8E,EAAEohB,GAAGA,EAAEuuC,WAAU,EAAGvuC,EAAEwuC,WAAU,GAAIruB,EAAEsuB,SAAS,SAAS30D,EAAE8E,EAAEohB,GAAGA,EAAEwuC,WAAU,EAAGxuC,EAAE+rC,SAASpsC,EAAEqsC,UAAUlyD,EAAEkmB,GAAGA,EAAEisC,SAAStsC,EAAEusC,UAAUpyD,EAAEkmB,GAAG,IAAIrZ,EAAE5R,KAAKC,IAAIgrB,EAAEmsC,WAAWnsC,EAAE+rC,UAAU5rB,EAAEprC,KAAKC,IAAIgrB,EAAEosC,WAAWpsC,EAAEisC,UAAUjsC,EAAE0uC,cAAc/nD,EAAEw5B,EAAE,EAAExgB,EAAEgvC,SAAShvC,EAAEivC,WAAWhwD,EAAEiwD,cAAc7uC,EAAE0uC,cAAc1uC,EAAEmsC,WAAWnsC,EAAE+rC,SAAS/rC,EAAEosC,WAAWpsC,EAAEisC,SAASjsC,EAAE8uC,kBAAkB9uC,EAAE+uC,SAAS/uC,EAAEgvC,UAAUhvC,EAAE+uC,SAAS/uC,EAAE+rC,SAAS/rC,EAAEgvC,SAAShvC,EAAEisC,SAASjsC,EAAE8uC,kBAAkB9uC,EAAE0uC,eAAevuB,EAAEmsB,oBAAoB,SAASxyD,EAAE8E,EAAEohB,GAAG,IAAI,IAAIrZ,EAAE7M,EAAEm1D,kBAAkB,iBAAiBtvC,EAAE7lB,EAAEm1D,kBAAkB,sBAAsB9uB,EAAE,KAAK8K,GAAG,EAAEppC,EAAEye,OAAO4uC,UAAU3R,EAAE,EAAEA,EAAEzjD,EAAEq1D,WAAWhqD,OAAOo4C,IAAI,CAAC,IAAI9T,EAAE3vC,EAAEq1D,WAAW5R,GAAGG,EAAE3oD,KAAK2qD,IAAIjW,EAAEoX,QAAQ7gC,EAAE+rC,SAAS,GAAGh3D,KAAK2qD,IAAIjW,EAAEqX,QAAQ9gC,EAAEisC,SAAS,IAAItjB,MAAM+U,MAAM,GAAGzS,GAAGyS,EAAE77C,KAAKA,EAAE67C,EAAEzS,EAAEsS,GAAG,IAAIh9B,EAAEzmB,EAAEirD,iBAAiB,uBAAuB,EAAE,GAAGljD,GAAG0e,EAAEA,IAAI4f,EAAErmC,EAAEq1D,WAAWlkB,IAAI9K,EAAE,CAAC,IAAI9f,EAAE,CAAC+uC,YAAW,EAAGC,MAAMlvB,EAAE0gB,QAAQ7gC,EAAE+rC,SAASjL,QAAQ9gC,EAAEisC,UAAU,GAAGnyD,EAAEw1D,eAAe,aAAajvC,GAAG,OAAOV,GAAGA,EAAEqrB,KAAKlxC,EAAE8E,EAAEuhC,GAAO9f,EAAE,CAAC+uC,YAAW,EAAGzO,KAAK7mD,EAAEuyD,OAAOkD,IAAIz1D,EAAEq1D,WAAWtO,QAAQ7gC,EAAE+rC,SAASjL,QAAQ9gC,EAAEisC,UAAUnyD,EAAEw1D,eAAe,QAAQjvC,IAAI1Z,GAAGA,EAAEqkC,KAAKlxC,EAAE8E,EAAE9E,EAAEuyD,OAAOvyD,EAAEq1D,aAAahvB,EAAEqvB,QAAQ,SAAS11D,EAAE8E,EAAEohB,GAAGphB,EAAE6wD,iBAAiBzvC,EAAEuuC,WAAU,EAAGpuB,EAAEkuB,yBAAyBv0D,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAE/H,EAAE8wD,UAAU,GAAG1vC,EAAEusC,aAAa,IAAIvsC,EAAE0uC,eAAe/uC,EAAEivC,WAAW,CAAC,IAAI3jB,EAAEl2C,KAAK8D,IAAImnB,EAAEmsC,WAAWnsC,EAAE+rC,UAAUlqD,EAAE9M,KAAKqD,IAAI4nB,EAAEmsC,WAAWnsC,EAAE+rC,WAAU9gB,EAAEl2C,KAAKqD,IAAI6yC,EAAEtkC,EAAEjS,KAAGmN,EAAE9M,KAAK8D,IAAIgJ,EAAE8E,EAAEjS,EAAEiS,EAAE6iC,KAAQ5qC,EAAE+wD,SAAS1kB,EAAEppC,GAAGme,EAAE4vC,oBAAmB,OAAQ,GAAG5vC,EAAEwsC,cAAc,IAAIxsC,EAAE0uC,eAAe/uC,EAAEgvC,SAAS,CAAC,IAAIpR,EAAExoD,KAAK8D,IAAImnB,EAAEosC,WAAWpsC,EAAEisC,UAAUxiB,EAAE10C,KAAKqD,IAAI4nB,EAAEosC,WAAWpsC,EAAEisC,WAAU1O,EAAExoD,KAAKqD,IAAImlD,EAAE52C,EAAE+Y,KAAG+pB,EAAE10C,KAAK8D,IAAI4wC,EAAE9iC,EAAE+Y,EAAE/Y,EAAE8iC,KAAQ7qC,EAAEixD,SAAStS,EAAE9T,GAAGzpB,EAAE4vC,oBAAmB,EAAG5vC,EAAEmsC,WAAW,KAAKnsC,EAAEosC,WAAW,MAAMjsB,EAAE2vB,WAAW,SAASh2D,EAAE8E,EAAEohB,GAAGlmB,EAAE+D,iBAAiB/D,EAAEkE,QAAQmH,OAAO,IAAI6a,EAAE+vC,wBAAwB,MAAM,IAAI,IAAIppD,EAAE,GAAGgZ,EAAE,EAAEA,EAAE7lB,EAAEkE,QAAQmH,OAAOwa,IAAI,CAAC,IAAIwgB,EAAErmC,EAAEkE,QAAQ2hB,GAAGhZ,EAAE6e,KAAK,CAACwqC,MAAM7vB,EAAE6vB,MAAMC,MAAM9vB,EAAE8vB,MAAMC,MAAMtxD,EAAEuuD,aAAahtB,EAAE6vB,OAAOG,MAAMvxD,EAAE4uD,aAAartB,EAAE8vB,SAAS,GAAGjwC,EAAEowC,eAAezpD,EAAE,GAAGA,EAAExB,OAAO6a,EAAEqwC,mBAAmB1pD,EAAE,GAAGqZ,EAAEswC,gBAAgB,CAAC57D,GAAE,EAAGgrB,GAAE,QAAS,GAAG/Y,EAAExB,QAAQ,EAAE,CAAC6a,EAAEqwC,mBAAmB,CAACL,MAAM,IAAIrpD,EAAE,GAAGqpD,MAAMrpD,EAAE,GAAGqpD,OAAOC,MAAM,IAAItpD,EAAE,GAAGspD,MAAMtpD,EAAE,GAAGspD,OAAOC,MAAM,IAAIvpD,EAAE,GAAGupD,MAAMvpD,EAAE,GAAGupD,OAAOC,MAAM,IAAIxpD,EAAE,GAAGwpD,MAAMxpD,EAAE,GAAGwpD,QAAQ,IAAIllB,EAAE,IAAIl2C,KAAKs3C,GAAGt3C,KAAK25C,MAAM1uB,EAAEqwC,mBAAmBJ,MAAMtpD,EAAE,GAAGspD,MAAMtpD,EAAE,GAAGqpD,MAAMhwC,EAAEqwC,mBAAmBL,QAAO/kB,EAAEl2C,KAAKC,IAAIi2C,IAAK,KAAKA,EAAE,GAAGA,GAAGjrB,EAAEswC,gBAAgB,CAAC57D,EAAEu2C,EAAE,KAAKvrB,EAAEurB,EAAE,MAAMjrB,EAAEuwC,aAAa,CAAC77D,EAAEkK,EAAE8tD,aAAahtC,EAAE9gB,EAAE+uD,eAAextB,EAAEqwB,UAAU,SAAS12D,EAAE8E,EAAEohB,GAAGA,EAAE+vC,wBAAwB,KAAK,IAAIppD,EAAEgZ,EAAE,GAAG,IAAIhZ,EAAE,EAAEA,EAAE7M,EAAEkE,QAAQmH,OAAOwB,IAAI,CAAC,IAAIw5B,EAAErmC,EAAEkE,QAAQ2I,GAAGgZ,EAAE6F,KAAK,CAACwqC,MAAM7vB,EAAE6vB,MAAMC,MAAM9vB,EAAE8vB,QAAQ,IAAIhlB,EAAuV5qB,EAAExD,EAAvVhb,EAAEme,EAAEowC,eAAe7S,EAAEv9B,EAAEqwC,mBAA8G5mB,EAAE,CAACumB,OAA9F/kB,EAAE,GAAGtrB,EAAExa,OAAOwa,EAAE,GAAG,CAACqwC,MAAM,IAAIrwC,EAAE,GAAGqwC,MAAMrwC,EAAE,GAAGqwC,OAAOC,MAAM,IAAItwC,EAAE,GAAGswC,MAAMtwC,EAAE,GAAGswC,SAAuBD,MAAMzS,EAAEyS,MAAMC,MAAMhlB,EAAEglB,MAAM1S,EAAE0S,OAAOvS,EAAE19B,EAAEuwC,aAAa77D,EAAE,GAAGsrB,EAAEuwC,aAAa77D,EAAE,GAAG6rB,EAAEP,EAAEuwC,aAAa7wC,EAAE,GAAGM,EAAEuwC,aAAa7wC,EAAE,GAAmF,GAAhF+pB,EAAEymB,MAAMzmB,EAAEumB,MAAMpxD,EAAEouD,SAASxL,KAAKhY,EAAEkU,EAAEjU,EAAE0mB,MAAM1mB,EAAEwmB,MAAMrxD,EAAEouD,SAASxL,KAAK/X,EAAElpB,EAAa,GAAGZ,EAAExa,OAAOkb,EAAE,EAAExD,EAAE,OAAO,GAAG8C,EAAExa,QAAQ,EAAE,CAAC,IAAI04C,EAAEh8C,EAAE,GAAGmuD,MAAMzS,EAAEyS,MAAM3vC,GAAGV,EAAE,GAAGqwC,MAAM/kB,EAAE+kB,OAAOnS,EAAE,IAAIC,EAAEj8C,EAAE,GAAGouD,MAAM1S,EAAE0S,MAAMpzC,GAAG8C,EAAE,GAAGswC,MAAMhlB,EAAEglB,OAAOnS,EAAEz9B,EAAEtrB,KAAK8D,IAAI,EAAE9D,KAAKqD,IAAI,KAAKioB,IAAIxD,EAAE9nB,KAAK8D,IAAI,EAAE9D,KAAKqD,IAAI,KAAKykB,IAAI,IAAI+gC,GAAE,EAAG,GAAG59B,EAAEswC,gBAAgB57D,IAAIkK,EAAEqvD,YAAY,CAAC1Q,EAAE2S,MAAMzmB,EAAEymB,OAAOlwC,EAAEuwC,aAAa77D,EAAE,GAAG6oD,EAAE2S,OAAO7vC,EAAEk9B,EAAE2S,MAAMzmB,EAAEymB,OAAOlwC,EAAEuwC,aAAa77D,EAAE,GAAG6oD,EAAE2S,OAAO7vC,GAAGu9B,GAAE,GAAI59B,EAAEswC,gBAAgB5wC,EAAE,IAAI/Y,EAAE,EAAEA,EAAE,EAAEA,IAAI,CAAC,IAAI2yC,EAAE16C,EAAEyuD,MAAM1mD,GAAK/H,EAAEgvD,YAAYC,WAAW,WAAWlnD,KAAO2yC,EAAE7xB,WAAW,CAAC81B,EAAE4S,MAAM1mB,EAAE0mB,OAAOnwC,EAAEuwC,aAAa7wC,EAAE,GAAG69B,EAAE4S,OAAOtzC,EAAE0gC,EAAE4S,MAAM1mB,EAAE0mB,OAAOnwC,EAAEuwC,aAAa7wC,EAAE,GAAG69B,EAAE4S,OAAOtzC,GAAG+gC,GAAE,GAAI,GAAGh/C,EAAEuvD,YAAW,GAAIvQ,GAAGj+B,EAAExa,OAAO,GAAGvG,EAAEqwD,kBAAkB,gBAAgB,CAAC,IAAIv6D,EAAEkK,EAAE8tD,aAAa9tD,EAAEqwD,kBAAkB,gBAAgBjkB,KAAKpsC,EAAElK,EAAE,GAAGA,EAAE,GAAGkK,EAAE6xD,iBAAiBtwB,EAAEuwB,SAAS,SAAS52D,EAAE8E,EAAEohB,GAAG,GAAG,IAAIlmB,EAAEkE,QAAQmH,OAAOg7B,EAAE2vB,WAAWh2D,EAAE8E,EAAEohB,QAAQ,GAAG,GAAGlmB,EAAE62D,eAAexrD,OAAO,CAAC,IAAIwB,GAAG,IAAI0W,MAAMuzC,UAAUjxC,EAAE7lB,EAAE62D,eAAe,GAAG3wC,EAAE+vC,yBAAyBppD,EAAEqZ,EAAE+vC,wBAAwB,KAAK/vC,EAAE6wC,YAAY97D,KAAKC,IAAIgrB,EAAE6wC,WAAWlxC,EAAEmxC,SAAS,IAAI9wC,EAAE+wC,YAAYh8D,KAAKC,IAAIgrB,EAAE+wC,WAAWpxC,EAAEqxC,SAAS,GAAGpyD,EAAEqyD,aAAajxC,EAAE+vC,wBAAwBppD,EAAEqZ,EAAE6wC,WAAWlxC,EAAEmxC,QAAQ9wC,EAAE+wC,WAAWpxC,EAAEqxC,WAAW,IAAI/lB,EAAE,SAASnxC,EAAE8E,EAAEohB,GAAG,OAAOlmB,EAAE8E,EAAEA,EAAE9E,EAAEA,EAAEkmB,EAAElmB,EAAEkmB,EAAE,GAAGne,EAAE,SAAS/H,EAAE8E,GAAG,IAAIohB,EAAEL,EAAEuxC,QAAQtyD,EAAEuyD,SAASxqD,EAAE,CAACmC,KAAKkX,EAAEtrB,EAAEsU,MAAMgX,EAAEtrB,EAAEkK,EAAEuyD,QAAQC,YAAYtrC,IAAI9F,EAAEN,EAAEke,OAAO5d,EAAEN,EAAE9gB,EAAEuyD,QAAQE,cAAclxB,EAAE,CAACzrC,EAAEirB,EAAEqwC,MAAMl2D,GAAG4lB,EAAEC,EAAEswC,MAAMn2D,IAAI+H,EAAEopC,EAAE9K,EAAEzrC,EAAEiS,EAAEmC,KAAKnC,EAAEqC,OAAOu0C,EAAEtS,EAAE9K,EAAEzgB,EAAE/Y,EAAEmf,IAAInf,EAAEi3B,QAAQ,OAAO7oC,KAAKqD,IAAIyJ,EAAE07C,IAAIpd,EAAEupB,aAAa,CAAC4H,UAAU,SAASx3D,EAAE8E,EAAEohB,GAAG,IAAIlmB,EAAEy3D,QAAQ,GAAGz3D,EAAEy3D,OAAO,CAACvxC,EAAEwxC,oBAAoB13D,EAAE8E,EAAEohB,GAAGlmB,EAAE23D,QAAQ33D,EAAE43D,SAASvxB,EAAEwxB,SAAS73D,EAAE8E,EAAEohB,GAAGmgB,EAAEmuB,UAAUx0D,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAE,SAAS7M,GAAMkmB,EAAEuuC,UAAW1sD,EAAE/H,EAAE8E,GAAG,IAAIuhC,EAAEsuB,SAAS30D,EAAE8E,EAAEohB,GAAG,OAAOA,EAAE+rC,WAAW/rC,EAAE+rC,SAAS,KAAK/rC,EAAEisC,SAAS,KAAKrtD,EAAE6wD,kBAAuBzvC,EAAEysC,WAAWtsB,EAAEyxB,QAAQ93D,EAAE8E,EAAEohB,IAAyNphB,EAAEizD,iBAAiB/yD,SAAS,YAAY6H,GAAG/H,EAAEizD,iBAAiB/yD,SAAS,WAA1R,SAAShF,EAAEmxC,GAAGjrB,EAAEuuC,UAAU,OAAOvuC,EAAE+rC,SAAS5rB,EAAEqvB,QAAQvkB,EAAErsC,EAAEohB,GAAGmgB,EAAEkuB,yBAAyBpjB,EAAErsC,EAAEohB,GAAGA,EAAEysC,WAAWtsB,EAAEiuB,OAAOnjB,EAAErsC,EAAEohB,GAAGL,EAAEmyC,YAAYhzD,SAAS,YAAY6H,GAAGgZ,EAAEmyC,YAAYhzD,SAAS,UAAUhF,GAAGkmB,EAAEyZ,eAAiGs4B,0BAAyB,EAAGC,WAAW,SAASl4D,EAAE8E,EAAEohB,GAAGmgB,EAAE2vB,WAAWh2D,EAAE8E,EAAEohB,IAAIiyC,UAAU,SAASn4D,EAAE8E,EAAEohB,GAAGmgB,EAAEqwB,UAAU12D,EAAE8E,EAAEohB,IAAIkyC,SAAS,SAASp4D,EAAE8E,EAAEohB,GAAGmgB,EAAEuwB,SAAS52D,EAAE8E,EAAEohB,IAAImyC,SAAS,SAASr4D,EAAE8E,EAAEohB,GAAG,GAAGA,EAAE4vC,mBAA+B5vC,EAAE4vC,oBAAmB,MAAzD,CAA6D,IAAIjpD,EAAE,CAACk6C,QAAQ7gC,EAAE+rC,SAASjL,QAAQ9gC,EAAEisC,SAASmD,YAAW,GAAIxwD,EAAE0wD,eAAe,WAAW3oD,IAAI7M,EAAE23D,QAAQ33D,EAAE43D,UAAU9yD,EAAEqyD,eAAc9wB,EAAEiyB,qBAAqB,CAACd,UAAU,SAASx3D,EAAE8E,EAAEohB,GAAGA,EAAEwxC,oBAAoB13D,EAAE8E,EAAEohB,IAAIqyC,QAAQlyB,EAAEkuB,0BAA0BluB,EAAEmyB,0BAA0B,CAAChB,UAAU,SAASx3D,EAAE8E,EAAEohB,GAAGA,EAAEwxC,oBAAoB13D,EAAE8E,EAAEohB,GAAGmgB,EAAEwxB,SAAS73D,EAAE8E,EAAEohB,IAAIuyC,UAAU,SAASz4D,EAAE8E,EAAEohB,GAAGA,EAAEysC,WAAWtsB,EAAEyxB,QAAQ93D,EAAE8E,EAAEohB,IAAIqyC,QAAQ,SAASv4D,EAAE8E,EAAEohB,GAAGA,EAAEysC,WAAWtsB,EAAEiuB,OAAOt0D,EAAE8E,EAAEohB,KAAKA,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,kBAAkB,KAAKknC,GAAG,CAAC,SAAS14D,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA2BioB,EAAE,SAAS7lB,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAvB9E,EAAE,oBAAgLqmC,EAAE,SAASrmC,GAAGpB,KAAKwoD,SAASpnD,EAAEpB,KAAK0V,OAAO,GAAG1V,KAAKorD,SAAS,GAAGprD,KAAK+5D,YAAY,GAAG/5D,KAAKg6D,OAAO,KAAKh6D,KAAKi6D,QAAQ,KAAKj6D,KAAKk6D,QAAQ,MAAMzyB,EAAE+K,UAAU2nB,WAAW,SAAS/4D,EAAE8E,GAAGlG,KAAK0V,OAAOoX,KAAK5mB,GAAGlG,KAAKorD,SAASt+B,KAAK1rB,IAAIqmC,EAAE+K,UAAUuW,YAAY,WAAW,OAAO/oD,KAAKo6D,OAAO3yB,EAAE+K,UAAU6nB,gBAAgB,WAAW,IAAIj5D,EAAE,CAACpF,EAAE,EAAEgrB,EAAE,GAAG5lB,EAAE0vC,EAAE9wC,KAAKwoD,SAASI,OAAOxnD,EAAEpF,EAAEgE,KAAKwoD,SAAS5lB,UAAU,YAAYxhC,EAAE2vC,EAAE/wC,KAAKwoD,SAASG,QAAQ,IAAIziD,EAAE,CAACo0D,UAAUt6D,KAAKwoD,SAAS+R,SAASC,iBAAiB,SAASt0D,GAAG,IAAIohB,EAAE,CAACtrB,EAAEoF,EAAEpF,EAAEgrB,EAAE5lB,EAAE4lB,EAAE8pB,EAAE5qC,EAAE6qC,EAAE3vC,EAAE2vC,GAAG,OAAO3vC,EAAEpF,GAAGkK,EAAE9E,EAAE0vC,GAAG5qC,EAAEohB,GAAGmzC,kBAAkB,SAASv0D,GAAG,IAAIohB,EAAE,CAACtrB,EAAEoF,EAAEpF,EAAEoF,EAAE0vC,EAAE5qC,EAAE8gB,EAAE5lB,EAAE4lB,EAAE8pB,EAAE5qC,EAAE6qC,EAAE3vC,EAAE2vC,GAAG,OAAO3vC,EAAE0vC,GAAG5qC,EAAEohB,GAAGozC,gBAAgB,SAASx0D,GAAG,IAAIohB,EAAE,CAACtrB,EAAEoF,EAAEpF,EAAEgrB,EAAE5lB,EAAE4lB,EAAE8pB,EAAE1vC,EAAE0vC,EAAEC,EAAE7qC,GAAG,OAAO9E,EAAE4lB,GAAG9gB,EAAE9E,EAAE2vC,GAAG7qC,EAAEohB,GAAGqzC,mBAAmB,SAASz0D,GAAG,IAAIohB,EAAE,CAACtrB,EAAEoF,EAAEpF,EAAEgrB,EAAE5lB,EAAE4lB,EAAE5lB,EAAE2vC,EAAE7qC,EAAE4qC,EAAE1vC,EAAE0vC,EAAEC,EAAE7qC,GAAG,OAAO9E,EAAE2vC,GAAG7qC,EAAEohB,GAAGszC,UAAU,WAAW,MAAM,CAAC5+D,EAAEoF,EAAEpF,EAAEgrB,EAAE5lB,EAAE4lB,EAAE8pB,EAAE1vC,EAAE0vC,EAAEC,EAAE3vC,EAAE2vC,KAAK/wC,KAAKwoD,SAASoO,eAAe,SAAS1wD,GAAGlG,KAAKo6D,MAAMh5D,GAAGqmC,EAAE+K,UAAUqoB,eAAe,SAASz5D,GAAGpB,KAAK+5D,YAAY,GAAG,IAAI,IAAI7zD,EAAElG,KAAKwoD,SAAS5lB,UAAU,iBAAiB,SAASxhC,GAAG,OAAOA,GAAGkmB,EAAE,EAAEA,EAAElmB,EAAEqL,OAAO6a,IAAI,CAAC,IAAIrZ,EAAE,GAAG,IAAI7M,EAAEkmB,GAAG2gC,WAAM,IAAS7mD,EAAEkmB,GAAGtrB,EAAE,YAAYuF,QAAQ8kB,MAAM,yCAAyC,GAAGjlB,EAAEkmB,GAAGiJ,QAAQnvB,EAAEkmB,GAAGuF,eAAe,WAAWzrB,EAAEkmB,GAAGuF,eAAe,WAAW,YAAYtrB,QAAQ8kB,MAAM,mEAAmEY,EAAE4gB,OAAO55B,EAAE7M,EAAEkmB,IAAIrZ,EAAEg6C,OAAOh6C,EAAEg6C,KAAK/hD,EAAE+H,EAAEjS,IAAIgE,KAAK+5D,YAAYjtC,KAAK7e,KAAKw5B,EAAE+K,UAAUsoB,UAAU,SAAS15D,GAAGpB,KAAKi6D,QAAQ74D,GAAGqmC,EAAE+K,UAAUuoB,SAAS,SAAS35D,GAAGpB,KAAKg6D,OAAO54D,GAAGqmC,EAAE+K,UAAUwoB,SAAS,WAAWh7D,KAAKi7D,OAAO,GAAGj7D,KAAKk7D,kBAAkBl7D,KAAKm7D,sBAAsBn7D,KAAKo7D,qBAAqBp7D,KAAKq7D,wBAAwB5zB,EAAE+K,UAAU0oB,gBAAgB,WAAW,IAAI95D,EAAEpB,KAAKwoD,SAASwL,aAAah0D,KAAKi7D,OAAOK,OAAOl6D,EAAE,GAAGpB,KAAKi7D,OAAOM,OAAOn6D,EAAE,GAAG,IAAI8E,EAAE9E,EAAE,GAAGA,EAAE,GAAGpB,KAAKi7D,OAAO/5B,MAAM,IAAIh7B,EAAE,EAAEA,EAAE,EAAElG,KAAKwoD,SAASyL,iBAAiB,WAAW,OAAOj0D,KAAKi7D,OAAOO,UAAUv0C,EAAEktC,MAAMn0D,KAAKi7D,OAAOM,QAAQt0C,EAAEktC,MAAMn0D,KAAKi7D,OAAOK,QAAQt7D,KAAKi7D,OAAOQ,UAAU,IAAIz7D,KAAKi7D,OAAOO,UAAU,EAAEx7D,KAAKi7D,OAAOO,UAAU,GAAG,IAAI,IAAIl0C,EAAE,EAAEA,EAAEtnB,KAAKg6D,OAAOvtD,OAAO6a,IAAI,CAAC,IAAIrZ,EAAEjO,KAAKg6D,OAAO1yC,GAAGrZ,EAAEk/C,QAAQl/C,EAAEytD,mBAAmB,GAAGztD,EAAE0tD,QAAQ1tD,EAAEytD,mBAAmB,GAAGztD,EAAE2tD,OAAO3tD,EAAE0tD,QAAQ1tD,EAAEk/C,QAAQl/C,EAAEm/C,OAAO,IAAIn/C,EAAE2tD,OAAO,EAAE3tD,EAAE2tD,OAAO,EAAE57D,KAAKwoD,SAAS5lB,UAAU,cAAc30B,EAAE4tD,UAAU50C,EAAEktC,MAAMlmD,EAAE0tD,SAAS10C,EAAEktC,MAAMlmD,EAAEk/C,SAASl/C,EAAE6tD,UAAU,IAAI7tD,EAAE4tD,UAAU,EAAE5tD,EAAE4tD,UAAU,EAAExoB,SAASplC,EAAE4tD,aAAa5rB,MAAMhiC,EAAE4tD,YAAYt6D,QAAQ8kB,MAAM,QAAQiB,EAAE,gBAAgBrZ,EAAEk3C,EAAE,+CAA+Cl3C,EAAEk/C,QAAQ,MAAMl/C,EAAE0tD,QAAQ,QAAQl0B,EAAEs0B,aAAa,SAAS36D,EAAE8E,EAAEohB,GAAG,OAAOA,GAAGL,EAAEktC,MAAM/yD,GAAG6lB,EAAEktC,MAAMjuD,EAAEo1D,SAASp1D,EAAEu1D,WAAWr6D,EAAE8E,EAAEo1D,QAAQp1D,EAAEg7B,OAAOuG,EAAEkgB,aAAa,SAASvmD,EAAE8E,EAAEohB,GAAG,GAAGA,EAAE,CAAC,IAAIrZ,EAAE,GAAGgZ,EAAEktC,MAAMjuD,GAAG+gB,EAAEktC,MAAM/yD,EAAE+rD,UAAU/rD,EAAE06D,UAAU,OAAOzoB,SAASplC,GAAGA,EAAEo5C,IAAI,OAAO,GAAGnhD,EAAE9E,EAAE+rD,SAAS/rD,EAAEgsD,QAAQ3lB,EAAE+K,UAAU2oB,oBAAoB,WAAW,IAAI,IAAI/5D,EAAEpB,KAAKwoD,SAAS5lB,UAAU,gBAAgB18B,EAAElG,KAAKwoD,SAASyL,iBAAiB,WAAW,KAAK3sC,EAAE,EAAEA,EAAEtnB,KAAK0V,OAAOjJ,OAAO6a,IAAI,CAAC,IAAI,IAAIrZ,EAAEjO,KAAK0V,OAAO4R,GAAGL,EAAEjnB,KAAKorD,SAAS9jC,GAAGirB,EAAEvyC,KAAKwoD,SAAS5lB,UAAU,yBAAyB3b,GAAG9d,EAAEnJ,KAAKwoD,SAASgD,wBAAwBvkC,GAAG49B,EAAE7kD,KAAKwoD,SAAS0M,YAAY8G,aAAa,WAAW/0C,GAAG8pB,EAAE,EAAEA,EAAE9iC,EAAExB,OAAOskC,IAAI,CAAC,IAAIiU,EAAE/2C,EAAE8iC,GAAGiU,EAAEhpD,EAAEyrC,EAAEs0B,aAAa/W,EAAEiD,KAAKjoD,KAAKi7D,OAAO/0D,GAAG,IAAI2hB,EAAEm9B,EAAEkD,KAAK9mD,IAAI4jD,EAAEkJ,UAAUzmB,EAAEkgB,aAAax+C,EAAE67C,EAAEiX,aAAapX,GAClv+B,OAAOh9B,GAAGooB,MAAMpoB,KAAKA,EAAEm9B,EAAEiX,eAAe,OAAOp0C,IAAIA,EAAEw/B,IAAI9U,IAAIyS,EAAEkD,KAAKb,MAAMrC,EAAEh+B,EAAEygB,EAAEkgB,aAAax+C,EAAE0e,EAAEg9B,GAAG7kD,KAAKwoD,SAAS0T,aAAaxU,gBAAgBz5C,EAAE9E,EAAE07C,KAAKpd,EAAE+K,UAAU4oB,mBAAmB,WAAW,IAAIh6D,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE,IAAIznC,KAAKm8D,OAAO,GAAG/6D,EAAE,EAAEA,EAAEpB,KAAKi6D,QAAQxtD,OAAOrL,IAAsBkmB,GAAlBphB,EAAElG,KAAKi6D,QAAQ74D,IAAOqpC,MAAyBxjB,GAAnBwgB,IAAI,YAAYvhC,IAAOA,EAAEg/C,EAAEh/C,EAAEk2D,SAASnuD,EAAEjO,KAAKwoD,SAAS6T,gBAAgBp1C,KAAK,GAAGhZ,EAAE,GAAGjO,KAAKm8D,OAAOrvC,KAAK,CAACwvC,IAAIruD,EAAEw8B,MAAMnjB,EAAEi1C,SAAS90B,IAAI,IAAIznC,KAAKw8D,OAAO,GAAGp7D,EAAE,EAAEA,EAAEpB,KAAKg6D,OAAOvtD,OAAOrL,IAAI,IAAI,IAAImxC,EAAEvyC,KAAKg6D,OAAO54D,GAAG+H,EAAE,EAAEA,EAAEopC,EAAEvR,MAAMv0B,OAAOtD,IAAiBme,GAAbphB,EAAEqsC,EAAEvR,MAAM73B,IAAOshC,MAAyBxjB,GAAnBwgB,IAAI,YAAYvhC,IAAOA,EAAEg/C,EAAEh/C,EAAEk2D,SAASnuD,EAAEjO,KAAKwoD,SAASiU,gBAAgBx1C,EAAE7lB,IAAI,GAAG6M,GAAG,GAAGjO,KAAKw8D,OAAO1vC,KAAK,CAACy+B,KAAKnqD,EAAEk7D,IAAIruD,EAAEw8B,MAAMnjB,EAAEi1C,SAAS90B,KAAKA,EAAE+K,UAAU6oB,qBAAqB,WAAW,IAAIj6D,EAAE8E,EAAE,GAAG,IAAI9E,EAAE,EAAEA,EAAEpB,KAAK+5D,YAAYttD,OAAOrL,IAAI,CAAC,IAAIkmB,EAAEtnB,KAAK+5D,YAAY34D,GAAG8E,EAAEohB,EAAE2gC,KAAK,IAAI3gC,EAAEo1C,QAAQp1C,EAAE,GAAGtnB,KAAK28D,iBAAiB,GAAG38D,KAAK+5D,aAAa/5D,KAAK+5D,YAAYttD,OAAO,IAAI,IAAIwB,EAAE,EAAEA,EAAEjO,KAAK0V,OAAOjJ,OAAOwB,IAAI,CAAC,IAAIgZ,EAAEjnB,KAAK0V,OAAOzH,GAAG,IAAI7M,EAAE,EAAEA,EAAE6lB,EAAExa,OAAOrL,IAAI,CAAC,IAAIqmC,EAAExgB,EAAE7lB,GAAGmxC,EAAE9K,EAAEwgB,KAAK,IAAIxgB,EAAEvmB,KAAKqxB,KAAKrsC,IAAIuhC,EAAEm1B,WAAW12D,EAAEqsC,GAAGvyC,KAAK28D,iBAAiB7vC,KAAK2a,OAAOA,EAAE+K,UAAUqqB,kBAAkB,kBAAkB78D,KAAK0V,cAAc1V,KAAKorD,gBAAgBprD,KAAK88D,wBAAwB98D,KAAK+8D,iBAAiB/8D,KAAK0V,OAAO,GAAG1V,KAAKorD,SAAS,GAAGprD,KAAK88D,iBAAiB,GAAG98D,KAAK+8D,iBAAiB,IAAIz1C,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,kBAAkB,KAAKoqC,GAAG,CAAC,SAAS57D,EAAE8E,EAAEohB,IAAG,SAAUlmB,GAAG,aAAaL,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAA+BsoB,EAAEsL,QAAtB,KAAgC1sB,EAAEy+C,QAAQr9B,EAAEsL,UAAU0f,KAAKtyC,KAAKoB,EAAE,cAAc,CAAC67D,SAAS,IAAIC,GAAG,CAAC,SAAS97D,EAAE8E,EAAEohB,IAAG,SAAUrZ,GAAG,aAAa,SAASgZ,EAAE7lB,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAAGL,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA2BuzC,EAAE,SAASnxC,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAvB9E,EAAE,oBAA+MyjD,EAAE59B,EAA/B7lB,EAAE,4BAAqE4jD,GAAG/9B,EAApC7lB,EAAE,gCAAuC,SAASA,GAAGpB,KAAKwoD,SAASpnD,EAAEpB,KAAKg6D,OAAO,GAAGh6D,KAAKm9D,OAAO,GAAGn9D,KAAKo9D,QAAQ,GAAGp9D,KAAKq9D,QAAQr9D,KAAKwoD,SAAS8U,OAAOt9D,KAAKu9D,MAAMv9D,KAAKwoD,SAASgV,aAAa,GAAGx9D,KAAKy9D,QAAQ,GAAGz9D,KAAK09D,iBAAiB19D,KAAKC,IAAI,wBAAwB,GAAGD,KAAK29D,kBAAqB3Y,EAAE4Y,sBAAsB,CAAC52C,EAAE,EAAE8gC,EAAE,EAAE+V,GAAG,EAAEC,GAAG,EAAE1mB,GAAG,EAAE2mB,GAAG,GAAG/Y,EAAEgZ,aAAa,SAAS58D,GAAG,GAAG,iBAAiBA,EAAE,CAAC,GAAG4jD,EAAE4Y,sBAAsB/wC,eAAezrB,GAAG,OAAO4jD,EAAE4Y,sBAAsBx8D,GAAG,KAAK,kBAAkBA,EAAE,GAAG,iBAAiBA,EAAE,CAAC,GAAG,IAAIA,GAAG,IAAIA,EAAE,OAAOA,EAAE,KAAK,uDAAuD,GAAGA,EAAE,KAAK,kBAAkBA,EAAE,OAAO,GAAG4jD,EAAExS,UAAUmrB,cAAc,WAAW,IAAIv8D,EAAEpB,KAAKC,IAAI,UAAU,GAAGmB,EAAE,CAACpB,KAAKy9D,QAAQr8D,EAAEitB,MAAM,GAAGruB,KAAKg6D,OAAO,CAAC,CAAC0C,OAAO,GAAG94D,QAAQ,KAAK5D,KAAKm9D,OAAO,CAACv5D,QAAQ,IAAI5D,KAAKo9D,QAAQ,GAAG,IAAI,IAAIl3D,EAAElG,KAAKu9D,MAAMb,QAAQ,GAAGp1C,EAAE,EAAEA,EAAEtnB,KAAKy9D,QAAQhxD,OAAO6a,IAAI,CAAC,IAAIrZ,EAAEjO,KAAKy9D,QAAQn2C,GAAGL,EAAE/gB,EAAE+H,IAAI,GAAGw5B,EAAEud,EAAEgZ,aAAa/2C,EAAEskC,MAAMvrD,KAAKo9D,QAAQnvD,GAAG,CAAC0e,IAAIrF,EAAE22C,MAAMx2B,EAAE7jC,QAAQqjB,GAAGjnB,KAAKg6D,OAAOvyB,GAAGznC,KAAKg6D,OAAOvyB,GAAGi1B,OAAO5vC,KAAK7e,GAAGjO,KAAKg6D,OAAOvyB,GAAG,CAACi1B,OAAO,CAACzuD,GAAGrK,QAAQ,IAAI,IAAIuF,EAAEnJ,KAAKu9D,MAAMvL,MAAM,GAAGzf,EAAE1K,OAAO7nC,KAAKg6D,OAAO,GAAGp2D,QAAQuF,EAAE6d,GAAG,IAAIhnB,KAAKg6D,OAAOvtD,OAAO,GAAG8lC,EAAE1K,OAAO7nC,KAAKg6D,OAAO,GAAGp2D,QAAQuF,EAAEiuC,IAAI,IAAI7E,EAAE1K,OAAO7nC,KAAKm9D,OAAOv5D,QAAQuF,EAAEnN,GAAG,MAAMgpD,EAAExS,UAAUvyC,IAAI,SAASmB,GAAG,IAAI8E,EAAElG,KAAKk+D,eAAe98D,GAAG,OAAO,OAAO8E,EAAEA,EAAElG,KAAKm+D,kBAAkB/8D,IAAI4jD,EAAExS,UAAU0rB,eAAe,SAAS98D,GAAG,OAAOpB,KAAKu9D,MAAM1wC,eAAezrB,GAAGpB,KAAKu9D,MAAMn8D,GAAG,MAAM4jD,EAAExS,UAAU2rB,kBAAkB,SAAS/8D,GAAG,OAAOpB,KAAKq9D,QAAQxwC,eAAezrB,GAAGpB,KAAKq9D,QAAQj8D,GAAGyjD,EAAEjyB,QAAQ/F,eAAezrB,GAAGyjD,EAAEjyB,QAAQxxB,GAAG,MAAM4jD,EAAExS,UAAU2iB,WAAW,SAAS/zD,EAAE8E,GAAG,IAAIohB,EAAErZ,EAAE,GAAG,iBAAiB/H,EAAM+H,EAAE,KAANqZ,EAAEphB,GAAU,IAAI,SAAS,CAAC,GAAG,MAAMA,IAAIA,EAAE,KAAK,KAAKA,EAAEohB,EAAE,OAAO,GAAG,MAAMphB,EAAEohB,EAAE,MAAM,CAAC,GAAG,KAAKphB,EAAE,KAAK,gBAAgBA,EAAEohB,GAAG,EAAErZ,EAAE/H,EAAE,IAAI+gB,GAAG,GAAGK,EAAEtnB,KAAKm9D,OAAOn9D,KAAKg6D,OAAO1yC,GAAG,GAAGL,EAAE,CAAC,IAAIwgB,EAAExgB,EAAErjB,QAAQ,GAAG6jC,EAAE5a,eAAezrB,GAAG,OAAOqmC,EAAErmC,GAAG,GAAG,MAAM8E,GAAG,aAAa9E,EAAE,CAAC,IAAImxC,EAAEvyC,KAAKk+D,eAAe98D,GAAG,GAAG,OAAOmxC,EAAE,OAAOA,EAAE,IAAIppC,EAAE07C,EAAEjyB,QAAQo/B,KAAK/jD,GAAG,OAAO9E,EAAE0jB,eAAezrB,GAAG+H,EAAE/H,GAAGpB,KAAKm+D,kBAAkB/8D,IAAI4jD,EAAExS,UAAUwpB,aAAa,SAAS56D,EAAE8E,GAAG,GAAGA,IAAIlG,KAAKwoD,SAAS4V,sBAAsBp+D,KAAK09D,iBAAiB7wC,eAAezrB,GAAG,OAAOpB,KAAK09D,iBAAiBt8D,GAAG,IAAIpB,KAAKo9D,QAAQvwC,eAAe3mB,GAAG,KAAK,mBAAmBA,EAAE,IAAIohB,EAAEtnB,KAAKo9D,QAAQl3D,GAAG+H,EAAEqZ,EAAE1jB,QAAQ,OAAOqK,EAAE4e,eAAezrB,GAAG6M,EAAE7M,GAAGpB,KAAKm1D,WAAW/zD,EAAEkmB,EAAE22C,QAAQjZ,EAAExS,UAAU6rB,QAAQ,WAAW,OAAOr+D,KAAKg6D,OAAOvtD,QAAQu4C,EAAExS,UAAU8rB,cAAc,SAASl9D,GAAG,OAAOpB,KAAKo9D,QAAQh8D,GAAG68D,OAAOjZ,EAAExS,UAAU+rB,YAAY,SAASn9D,GAAG,OAAOpB,KAAKg6D,OAAO54D,GAAGwC,SAASohD,EAAExS,UAAUgsB,cAAc,SAASp9D,GAAG,OAAOpB,KAAKg6D,OAAO54D,GAAGs7D,QAAQ1X,EAAExS,UAAUisB,YAAY,WAAW,OAAOz+D,KAAKy9D,SAAqBn2C,EAAEsL,QAAQoyB,EAAE9+C,EAAEy+C,QAAQr9B,EAAEsL,UAAU0f,KAAKtyC,KAAKoB,EAAE,cAAc,CAAC,0BAA0B,GAAG,8BAA8B,GAAG,kBAAkB,GAAG67D,SAAS,IAAIyB,GAAG,CAAC,SAASt9D,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA2BioB,EAAE,SAAS7lB,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAvB9E,EAAE,oBAAqQkmB,EAAEq3C,mBAArF,SAASv9D,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,GAAG,OAAO8K,EAAEnxC,EAAE8E,EAAEohB,GAAE,SAASlmB,GAAG,MAAM,aAAaA,GAAG6M,EAAE7M,KAAI6lB,EAAEwgB,IAA2B,IAAI8K,EAAE,SAASnxC,EAAE8E,EAAEohB,EAAErZ,EAAEw5B,EAAE8K,GAAG,IAAIppC,EAAE07C,EAAE9T,EAAEiU,EAAEr9B,EAAE1Z,EAAE,kBAAkBkW,EAAE,GAAG,GAAGouB,EAAE,IAAIppC,EAAE,EAAEA,EAAEopC,EAAE9lC,OAAOtD,IAAIgb,EAAE2I,KAAK,CAACo4B,EAAE3S,EAAEppC,SAAS,CAAC,GAAG8E,EAAE,YAAY,CAAC+2C,EAAE3oD,KAAKG,MAAM8qB,EAAEK,GAAG,IAAIw9B,EAAEl+B,EAAE23C,aAAax9D,EAAEymB,EAAE,GAAGu9B,EAAEn+B,EAAE23C,aAAa14D,EAAE2hB,GAAG,IAAI,GAAGs9B,IAAIA,EAAE,IAAI,GAAGC,IAAIA,EAAEv9B,EAAEpb,OAAO,GAAG,IAAIy4C,EAAE,KAAK,GAAGE,EAAED,GAAGH,EAAE,EAAE,CAAC,IAAI,IAAIpE,EAAEwE,EAAExE,GAAGuE,EAAEvE,IAAI,CAAC,IAAI55B,EAAEa,EAAE+4B,GAAG5kD,EAAEK,KAAKmF,IAAIwlB,EAAE5lB,GAAG/E,KAAKmF,IAAI0E,EAAE9E,GAAGkmB,EAAEF,EAAE,CAAC89B,EAAEl+B,GAAG,OAAOk+B,EAAEA,EAAE,CAAC2Z,UAAU73C,EAAE83C,YAAY9iE,GAAGK,KAAKC,IAAIN,EAAEkpD,EAAE4Z,cAAcn3C,EAAEu9B,EAAE,CAAC2Z,UAAU73C,EAAE83C,YAAY9iE,GAAGorB,EAAEqjB,MAAM,GAAGtmB,EAAE2I,KAAK1F,GAAGjD,EAAE46C,WAAW,GAAG,IAAI56C,EAAE1X,OAAO,CAAC,IAAI8a,EAAEupB,EAAI7iC,EAAE,eAAiBsZ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,KAAKupB,EAAE,KAAKvpB,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,KAAKupB,EAAE,IAAI,IAAIuc,EAAEC,EAAEC,EAAEC,EAAEnxD,KAAK2iE,KAAK13C,EAAEK,GAAGw4B,EAAE9jD,KAAKC,IAAI4J,EAAE9E,GAAGosD,EAAEC,EAAEpxD,KAAKG,MAAMH,KAAKmF,IAAI2+C,GAAG9jD,KAAKmF,IAAIsvC,IAAI4c,EAAErxD,KAAK2qD,IAAIlW,EAAE2c,GAAG,IAAI5I,EAAE,EAAEA,EAAEt9B,EAAE9a,SAAS4gD,EAAEK,EAAEnmC,EAAEs9B,GAAGyI,EAAEjxD,KAAKG,MAAM4E,EAAEisD,GAAGA,EAAEE,EAAElxD,KAAK2iE,KAAK94D,EAAEmnD,GAAGA,IAAsB/lC,GAApB09B,EAAE3oD,KAAKC,IAAIixD,EAAED,GAAGD,GAAQ1lC,IAAIk9B,KAAK,IAAIyI,EAAEC,IAAIF,IAAI,GAAGlkD,EAAE,EAAEA,GAAG67C,EAAE77C,IAAI4nC,EAAEuc,EAAEnkD,EAAEkkD,EAAElpC,EAAE2I,KAAK,CAACo4B,EAAEnU,KAAK,IAAI4c,EAAE1/C,EAAE,sBAAsB,IAAI9E,EAAE,EAAEA,EAAEgb,EAAE1X,OAAOtD,SAAI,IAASgb,EAAEhb,GAAGshC,QAAQtmB,EAAEhb,GAAGshC,MAAMkjB,EAAErb,KAAK7K,EAAEtjB,EAAEhb,GAAG+7C,EAAE,EAAEj3C,EAAEw5B,IAAI,OAAOtjB,GAAGmD,EAAEurC,aAAatgB,EAA4EjrB,EAAEorC,WAAtE,SAAStxD,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,GAAG,IAAI8K,EAAE5qB,EAAEvmB,EAAE8E,EAAEohB,EAAErZ,GAAG,OAAOskC,GAAG,EAAE4S,EAAE/jD,EAAE8E,EAAEqsC,EAAEtkC,EAAEgZ,GAAG,IAAmB,IAAI49B,EAAE,CAACoa,cAAc,EAAEC,kBAAkB,EAAEC,mBAAmB,EAAEC,kBAAkB,EAAEC,oBAAoB,EAAEC,sBAAsB,EAAEC,2BAA2B,EAAEC,SAAS,EAAEC,aAAa,EAAEC,cAAc,EAAEC,aAAa,GAAGC,gBAAgB,GAAGC,SAAS,GAAGC,aAAa,GAAGC,cAAc,GAAGC,aAAa,GAAGC,gBAAgB,GAAGC,OAAO,GAAGC,WAAW,GAAGC,WAAW,GAAGC,MAAM,GAAGC,UAAU,GAAGC,OAAO,GAAGC,QAAQ,GAAGC,UAAU,GAAGC,SAAS,GAAGC,OAAO,GAAGC,QAAQ,GAAGC,WAAW,GAAGC,kBAAkB,IAAIx5C,EAAEy5C,YAAYlc,EAAE,IAAI9T,EAAe,EAAfA,EAA6B,EAA7BA,EAA2C,EAA3CA,EAA0D,EAA1DA,EAAyE,EAAzEA,EAAwF,EAAxFA,EAAuG,EAAvGA,EAAwH,EAAGiU,EAAE,GAAGA,EAAEH,EAAEoa,eAAe,CAAC+B,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,GAAGjc,EAAEH,EAAEqa,mBAAmB,CAAC8B,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,GAAGjc,EAAEH,EAAEsa,oBAAoB,CAAC6B,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,GAAGjc,EAAEH,EAAEua,mBAAmB,CAAC4B,UAAUjwB,EAAe9P,KAAK,GAAGggC,QAAQ,IAAIjc,EAAEH,EAAEwa,qBAAqB,CAAC2B,UAAUjwB,EAAe9P,KAAK,GAAGggC,QAAQ,IAAIjc,EAAEH,EAAEya,uBAAuB,CAAC0B,UAAUjwB,EAAe9P,KAAK,IAAIggC,QAAQ,KAAKjc,EAAEH,EAAE0a,4BAA4B,CAACyB,UAAUjwB,EAAe9P,KAAK,IAAIggC,QAAQ,KAAKjc,EAAEH,EAAE2a,UAAU,CAACwB,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,KAAKjc,EAAEH,EAAE4a,cAAc,CAACuB,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,KAAKjc,EAAEH,EAAE6a,eAAe,CAACsB,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,KAAKjc,EAAEH,EAAE8a,cAAc,CAACqB,UAAUjwB,EAAe9P,KAAK,GAAGggC,QAAQ,KAAKjc,EAAEH,EAAE+a,iBAAiB,CAACoB,UAAUjwB,EAAe9P,KAAK,GAAGggC,QAAQ,KAAKjc,EAAEH,EAAEgb,UAAU,CAACmB,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,KAAKjc,EAAEH,EAAEib,cAAc,CAACkB,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,MAAMjc,EAAEH,EAAEkb,eAAe,CAACiB,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,KAAKjc,EAAEH,EAAEmb,cAAc,CAACgB,UAAUjwB,EAAe9P,KAAK,GAAGggC,QAAQ,KAAKjc,EAAEH,EAAEob,iBAAiB,CAACe,UAAUjwB,EAAe9P,KAAK,GAAGggC,QAAQ,MAAMjc,EAAEH,EAAEqb,QAAQ,CAACc,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,MAAMjc,EAAEH,EAAEsb,YAAY,CAACa,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,MAAMjc,EAAEH,EAAEub,YAAY,CAACY,UAAUjwB,EAAe9P,KAAK,EAAEggC,QAAQ,OAAOjc,EAAEH,EAAEwb,OAAO,CAACW,UAAUjwB,EAAc9P,KAAK,EAAEggC,QAAQ,OAAOjc,EAAEH,EAAEyb,WAAW,CAACU,UAAUjwB,EAAc9P,KAAK,EAAEggC,QAAQ,QAAQjc,EAAEH,EAAE0b,QAAQ,CAACS,UAAUjwB,EAAc9P,KAAK,EAAEggC,QAAQ,QAAQjc,EAAEH,EAAE2b,SAAS,CAACQ,UAAUjwB,EAAc9P,KAAK,EAAEggC,QAAQ,YAAYjc,EAAEH,EAAE4b,WAAW,CAACO,UAAUjwB,EAAc9P,KAAK,EAAEggC,QAAQ,MAAM,UAAUjc,EAAEH,EAAE6b,UAAU,CAACM,UAAUjwB,EAAc9P,KAAK,EAAEggC,QAAQ,MAAM,UAAUjc,EAAEH,EAAE8b,QAAQ,CAACK,UAAUjwB,EAAc9P,KAAK,EAAEggC,QAAQ,MAAM,UAAUjc,EAAEH,EAAE+b,SAAS,CAACI,UAAUjwB,EAAc9P,KAAK,GAAGggC,QAAQ,cAAcjc,EAAEH,EAAEgc,YAAY,CAACG,UAAUjwB,EAAc9P,KAAK,IAAIggC,QAAQ,cAAc,IAAIp5C,EAAE,WAAW,IAAI,IAAIzmB,EAAE,GAAG8E,GAAG,GAAGA,GAAG,GAAGA,IAAI,IAAI,IAAIohB,EAAEjrB,KAAK2qD,IAAI,GAAG9gD,GAAG+H,EAAE,EAAEA,GAAG,EAAEA,IAAI,CAAC,IAAIgZ,EAAEK,EAAErZ,EAAE7M,EAAE0rB,KAAK7F,GAAG,OAAO7lB,EAA1G,GAA+GumB,EAAE,SAASvmB,EAAE8E,EAAEohB,EAAErZ,GAAG,IAAI,IAAIgZ,EAAEhZ,EAAE,kBAAkBw5B,EAAE,EAAEA,EAAEod,EAAEic,kBAAkBr5B,IAAK,GAAGngB,EAAEnD,EAAE/iB,EAAE8E,EAAEuhC,IAAIxgB,EAAE,OAAOwgB,EAAE,OAAO,GAAGtjB,EAAE,SAAS/iB,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAE+2C,EAAE19B,GAAG25C,QAAQ,OAAO5kE,KAAKgpB,MAAM,GAAGnf,EAAE9E,GAAG6M,IAAIk3C,EAAE,SAAS/jD,EAAE8E,EAAEohB,EAAErZ,EAAEw5B,GAAG,IAAI8K,EAAEtkC,EAAE,sBAAuC4Z,EAAf5Z,EAAE,aAAiBgZ,EAAEi6C,iBAAiBj6C,EAAEk6C,mBAAmBx5C,EAAEq9B,EAAE19B,GAAG05C,UAAU78C,EAAE6gC,EAAE19B,GAAG2Z,KAAKkkB,EAAEH,EAAE19B,GAAG25C,QAAQ7b,EAAE,IAAIzgC,KAAKvjB,GAAG8jD,EAAE,GAAGA,EAAEnU,GAAelpB,EAAE2Y,YAAY4kB,GAAGF,EAAEnU,GAAelpB,EAAE4Y,SAAS2kB,GAAGF,EAAEnU,GAAelpB,EAAE6Y,QAAQ0kB,GAAGF,EAAEnU,GAAgBlpB,EAAE8Y,SAASykB,GAAGF,EAAEnU,GAAgBlpB,EAAE+Y,WAAWwkB,GAAGF,EAAEnU,GAAgBlpB,EAAEgZ,WAAWukB,GAAGF,EAAEnU,GAAgBlpB,EAAEu5C,gBAAgBhc,GAAG,IAAIxE,EAAEsE,EAAEv9B,GAAGxD,EAAEmD,GAAGu9B,EAAE0b,SAAS3f,EAAE/4B,EAAEw5C,OAAOjc,IAAIF,EAAEv9B,IAAIi5B,EAAE,IAAI,IAAI55B,EAAEW,EAAE,EAAEX,EAAE+pB,EAAiB/pB,IAAIk+B,EAAEl+B,GAAGA,IAAI+pB,EAAc,EAAE,EAAE,IAAI/0C,EAAE,GAAGorB,EAAES,EAAEy5C,SAAS7b,MAAM,KAAKP,GAAG39B,EAAEH,EAAE8wC,UAAU,GAAG5wC,GAAGu9B,EAAEqb,OAAO,IAAI34C,EAAEnmB,IAAImmB,GAAG49B,EAAE/9B,EAAE,IAAIzC,KAAK4C,IAAIA,GAAGrhB,GAAGlK,EAAE8wB,KAAK,CAACo4B,EAAE39B,EAAEkjB,MAAM8H,EAAED,KAAK7K,EAAErgB,EAAEE,EAAErZ,EAAEw5B,KAAKlgB,GAAG49B,EAAE/9B,EAAE,IAAIzC,KAAK4C,QAAQ,IAAIA,EAAEnmB,IAAI8jD,EAAEv9B,IAAIxD,EAA6BoD,GAA3BH,EAAES,EAAEy5C,SAAS7b,MAAM,KAAKP,IAAOgT,WAAW3wC,GAAGrhB,IAAIohB,GAAGu9B,EAAEwb,OAAOx4C,EAAE8Y,SAASvZ,GAAGjD,GAAG,IAAInoB,EAAE8wB,KAAK,CAACo4B,EAAE39B,EAAEkjB,MAAM8H,EAAED,KAAK7K,EAAErgB,EAAEE,EAAErZ,EAAEw5B,KAAKyd,EAAEv9B,IAAIxD,EAA6BoD,GAA3BH,EAAES,EAAEy5C,SAAS7b,MAAM,KAAKP,IAAOgT,UAAU,OAAOl8D,GAAGsrB,EAAEi6C,YAAYpc,GAAG,CAAC,kBAAkB,KAAKqc,GAAG,CAAC,SAASpgE,EAAE8E,EAAEohB,GAAG,aAAywB,SAASne,EAAE/H,GAAG,OAAOA,EAAEk2D,OAAOl2D,EAAEk2D,MAAM,EAAE,EAAEl2D,EAAEk2D,MAAM,SAASzS,EAAEzjD,GAAG,OAAOA,EAAEm2D,OAAOn2D,EAAEm2D,MAAM,EAAE,EAAEn2D,EAAEm2D,MAA6O,SAASpzC,EAAE/iB,EAAE8E,GAAG,IAAIohB,EAAEjrB,KAAK8D,IAAI9D,KAAKqD,IAAI,EAAEwG,GAAG,GAAG,IAAI,OAAO7J,KAAKC,IAAI8E,GAAG,MAAM,IAAIA,EAAEA,EAAEqgE,cAAcn6C,EAAE,GAAGlmB,EAAEsgE,YAAYp6C,GAAG,SAAS69B,EAAE/jD,GAAG,OAAOA,EAAE,GAAG,IAAIA,EAAE,GAAGA,EAAE,SAASgkD,EAAEhkD,EAAE8E,EAAEohB,EAAErZ,GAAG,IAAIgZ,EAAEk+B,EAAE/jD,GAAG,IAAI+jD,EAAEj/C,GAAG,GAAGohB,IAAIL,GAAG,IAAIk+B,EAAE79B,GAAGrZ,GAAG,CAAC,IAAIw5B,EAAE,GAAGx5B,EAAEgZ,GAAG,KAAK,MAAMwgB,GAAGve,UAAUue,EAAEh7B,QAAQ,OAAOwa,EAAE,SAASi+B,EAAE9jD,EAAE8E,GAAG,IAAIohB,EAAEphB,EAAEg2C,EAAGh5C,EAAE+K,EAAE,IAAI0W,KAAKvjB,GAAG6lB,EAAEK,EAAEkZ,YAAYvyB,GAAGw5B,EAAEngB,EAAEmZ,SAASxyB,GAAGskC,EAAEjrB,EAAEoZ,QAAQzyB,GAAG9E,EAAEme,EAAEqZ,SAAS1yB,GAAG42C,EAAEv9B,EAAEsZ,WAAW3yB,GAAG8iC,EAAEzpB,EAAEuZ,WAAW5yB,GAAG+2C,EAAE19B,EAAE85C,gBAAgBnzD,GAAiD2yC,EAAzC35B,EAA6C,IAAzCk+B,EAAE1d,EAAE,GAA2C,IAAtC0d,EAAE5S,GAA0C,OAArC,KAAKppC,EAAE,GAAG07C,EAAE9T,EAAE,KAAKiU,IAA6BpE,GAAG,IAAIwE,EAAEj8C,EAAE07C,EAAE9T,EAAEiU,IAAIpE,EAAE,SAASA,EAAEx/C,EAAE8E,GAAG,IAAIohB,EAAEjrB,KAAK2qD,IAAI,GAAG9gD,GAAG,OAAO7J,KAAKgpB,MAAMjkB,EAAEkmB,GAAGA,EAA8zB,SAASF,EAAEhmB,GAAG,OAAO,IAAIujB,KAAKvjB,GAAG82D,UAA+d,SAAShL,EAAE9rD,GAAG,IAAI8E,SAAS9E,EAAE,OAAO,UAAU8E,GAAG,YAAYA,GAAG,mBAAmB9E,EAAEy9B,OAAO,OAAOz9B,GAAG,iBAAiBA,EAAEqL,QAAQ,IAAIrL,EAAEmyC,SAAsd,SAAS4M,EAAE/+C,EAAE8E,EAAEohB,EAAErZ,GAAG/H,EAAEA,GAAG,EAAEohB,EAAEA,GAAGlmB,EAAEqL,OAAOzM,KAAKirD,SAAQ,EAAGjrD,KAAKkrD,KAAK,KAAKlrD,KAAK4qD,OAAO1kD,EAAElG,KAAKyqD,OAAOrpD,EAAEpB,KAAK2qD,WAAW18C,EAAEjO,KAAK0qD,KAAKruD,KAAK8D,IAAIiB,EAAEqL,OAAOvG,EAAEohB,GAAGtnB,KAAK+qD,SAAS7kD,EAAE,EAAElG,KAAKgrD,OAAo9B,SAAS+C,EAAE3sD,EAAE8E,GAAG,OAAOA,EAAE,EAAE,EAAE7J,KAAK2qD,IAAI5lD,GAAG8E,GAAG7J,KAAK2qD,IAAI5lD,EAAE8E,GAAG,SAAS+nD,EAAE7sD,GAAG,IAAI8E,EAAEy7D,EAAGzpC,KAAK92B,GAAG,IAAI8E,EAAE,OAAO,KAAK,IAAIohB,EAAE/C,SAASre,EAAE,GAAG,IAAI+H,EAAEsW,SAASre,EAAE,GAAG,IAAI+gB,EAAE1C,SAASre,EAAE,GAAG,IAAI,OAAOA,EAAE,GAAG,CAACuhC,EAAEngB,EAAE69B,EAAEl3C,EAAEsZ,EAAEN,EAAEK,EAAE8rB,WAAWltC,EAAE,KAAK,CAACuhC,EAAEngB,EAAE69B,EAAEl3C,EAAEsZ,EAAEN,GAAmnB,SAAS6gC,EAAE1mD,EAAE8E,GAAG,IAAIohB,EAAEphB,EAAE,WAAW,GAAG,OAAOohB,EAAE,OAAOnD,EAAE/iB,EAAEkmB,GAAG,IAAIrZ,EAAEgZ,EAAE/gB,EAAE,sBAAsBuhC,EAAEvhC,EAAE,kBAAkBqsC,EAAErsC,EAAE,aAAaiD,EAAEjD,EAAE,cAAc,GAAG+H,EAAE,IAAI7M,IAAI/E,KAAKC,IAAI8E,IAAI/E,KAAK2qD,IAAI,GAAGvf,IAAIprC,KAAKC,IAAI8E,GAAG/E,KAAK2qD,IAAI,IAAI//B,IAAI7lB,EAAEqgE,cAAcx6C,GAAG,GAAG25B,EAAEx/C,EAAE6lB,GAAGsrB,GAAGppC,EAAE,CAAC,IAAI07C,EAAE9T,EAAE,GAAGiU,EAAE,GAAGzS,IAAIsS,EAAE,IAAI9T,EAAE6wB,GAAIz4D,IAAIopC,GAAGhxC,QAAQoN,KAAK,oDAAoDk2C,EAAE,KAAK9T,EAAE8wB,EAAG7c,EAAE8c,GAAI,IAAI,IAAIj6C,EAAExrB,KAAKC,IAAI8E,GAAGumB,EAAEomC,EAAElJ,EAAE9T,EAAEtkC,QAAQ04C,EAAEpU,EAAEtkC,OAAO,EAAE04C,GAAG,EAAEA,IAAIx9B,GAAGk9B,EAAE,GAAGh9B,GAAGF,EAAE,CAAC1Z,EAAE2yC,EAAEx/C,EAAEumB,EAAEV,GAAG8pB,EAAEoU,GAAG,MAAM,GAAGh8C,EAAE,CAAC,IAAIi8C,EAAE7T,OAAOnwC,EAAEqgE,iBAAiB10D,MAAM,MAAM,IAAIq4C,EAAE34C,QAAQ24C,EAAE,IAAI,GAAGA,EAAE,IAAI,KAAKn3C,EAAEm3C,EAAE,GAAG,EAAE,EAAExE,EAAEwE,EAAE,GAAG2I,EAAE,GAAG3I,EAAE,GAAG,GAAGn+B,GAAGW,OAAOw9B,EAAE,IAAIroD,QAAQ,GAAGkR,GAAG+2C,EAAE3oD,KAAKG,MAAM4oD,EAAE,GAAG,GAAG,KAAK,OAAOn3C,EAA0jBlN,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAKsoB,EAAE8xC,YAA3wN,SAAWh4D,EAAE8E,EAAEohB,GAAGlmB,EAAEmF,oBAAoBL,EAAEohB,GAAE,IAA6uNA,EAAEy6C,YAA3uN,SAAW3gE,GAAG,OAAOA,EAAEA,GAAG6B,OAAOiC,OAAQuB,iBAAiBrF,EAAEqF,kBAAkBrF,EAAE+D,gBAAgB/D,EAAE+D,iBAAiB/D,EAAE4gE,cAAa,EAAG5gE,EAAE6gE,QAAO,EAAG7gE,EAAE8gE,aAAY,GAAG,GAAulN56C,EAAE66C,SAAtlN,SAAW/gE,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAEgZ,EAAEwgB,EAAE,GAAG,IAAIvhC,EAAE+H,EAAEqZ,EAAEL,EAAEK,EAAEmgB,EAAEngB,MAAM,CAAC,IAAIirB,EAAEl2C,KAAKG,MAAM,EAAE4E,GAAG+H,EAAE,EAAE/H,EAAEmxC,EAAEsS,EAAEv9B,GAAG,EAAEphB,GAAG6qC,EAAEzpB,GAAG,EAAEphB,EAAEiD,GAAG67C,EAAE19B,GAAG,EAAEphB,GAAG,EAAEiD,IAAI,OAAOopC,GAAG,KAAK,EAAEtkC,EAAE8iC,EAAE9pB,EAAEK,EAAEmgB,EAAEod,EAAE,MAAM,KAAK,EAAE52C,EAAE42C,EAAE59B,EAAEK,EAAEmgB,EAAEud,EAAE,MAAM,KAAK,EAAE/2C,EAAE42C,EAAE59B,EAAE8pB,EAAEtJ,EAAEngB,EAAE,MAAM,KAAK,EAAErZ,EAAE+2C,EAAE/9B,EAAE49B,EAAEpd,EAAEngB,EAAE,MAAM,KAAK,EAAErZ,EAAEqZ,EAAEL,EAAE49B,EAAEpd,EAAEsJ,EAAE,MAAM,KAAK,EAAE,KAAK,EAAE9iC,EAAEqZ,EAAEL,EAAE+9B,EAAEvd,EAAEod,GAAG,MAA4E,QAArE52C,EAAE5R,KAAKG,MAAM,IAAIyR,EAAE,KAA2D,KAAvDgZ,EAAE5qB,KAAKG,MAAM,IAAIyqB,EAAE,KAA0C,KAAtCwgB,EAAEprC,KAAKG,MAAM,IAAIirC,EAAE,KAAyB,KAAouMngB,EAAEkxC,QAAluM,SAAWp3D,GAAG,IAAI8E,EAAE9E,EAAE2qC,wBAAwBzkB,EAAErkB,OAAOgL,EAAE7H,SAASklC,gBAAgB,MAAM,CAACtvC,EAAEkK,EAAEkK,MAAMkX,EAAE86C,aAAan0D,EAAEo0D,YAAYr7C,EAAE9gB,EAAEknB,KAAK9F,EAAEg7C,aAAar0D,EAAEkf,aAAklM7F,EAAEgwC,MAAMnuD,EAAEme,EAAEiwC,MAAM1S,EAAEv9B,EAAEgsC,UAAx/L,SAAWlyD,EAAE8E,GAAG,OAAOiD,EAAE/H,GAAG8E,EAAEq8D,IAAs+Lj7C,EAAEksC,UAAr+L,SAAWpyD,EAAE8E,GAAG,OAAO2+C,EAAEzjD,GAAG8E,EAAEs8D,IAAm9Ll7C,EAAE0mC,KAAl9L,SAAW5sD,GAAG,QAAQA,IAAI6uC,MAAM7uC,IAAy7LkmB,EAAEm7C,aAAx7L,SAAWrhE,EAAE8E,GAAG,QAAQ9E,GAAI,OAAOA,EAAE8mD,MAAO,OAAO9mD,EAAEpF,QAAG,IAASoF,EAAEpF,GAAI,OAAOoF,EAAE4lB,QAAG,IAAS5lB,EAAE4lB,KAAKipB,MAAM7uC,EAAEpF,KAAKkK,GAAG+pC,MAAM7uC,EAAE4lB,KAA40LM,EAAEo7C,YAAYv+C,EAAEmD,EAAEvrB,QAAQopD,EAAE79B,EAAEq7C,WAAWvd,EAAE99B,EAAEs7C,YAAY1d,EAAE59B,EAAEu7C,OAAOjiB,EAAEt5B,EAAEs3C,aAAnzK,SAAWx9D,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,GAAG,IAAI,IAAIwgB,GAAE,EAAGA,GAAG,CAAC,IAAI8K,EAAEnxC,EAAE+H,EAAEjD,EAAE2+C,EAAEv9B,EAAEypB,EAAE9iC,EAAE+2C,EAAE/9B,EAAE,GAAGwgB,GAAE,EAAG,OAAOsJ,QAAG,IAASA,GAAG,OAAOiU,QAAG,IAASA,IAAIjU,EAAE,EAAEiU,EAAE77C,EAAEsD,OAAO,GAAGskC,EAAEiU,EAAE,OAAO,EAAE,OAAOH,QAAG,IAASA,IAAIA,EAAE,GAAG,IAAIh9B,EAAEF,EAAE,SAASvmB,GAAG,OAAOA,GAAG,GAAGA,EAAE+H,EAAEsD,QAAQ0X,EAAEI,UAAUwsB,EAAEiU,GAAG,EAAE,IAAIG,EAAEh8C,EAAEgb,GAAG,GAAGghC,GAAG5S,EAAE,OAAOpuB,EAAE,GAAGghC,EAAE5S,EAAE,CAAC,GAAGsS,EAAE,GAAUl9B,EAANE,EAAE1D,EAAE,IAAQhb,EAAE0e,GAAG0qB,EAAG,OAAOpuB,EAAE/iB,EAAEmxC,EAAErsC,EAAEiD,EAAEme,EAAEu9B,EAAE52C,EAAE8iC,EAAE9pB,EAAE9C,EAAE,EAAEsjB,GAAE,EAAG9f,EAAExD,EAAEghC,EAAEt9B,OAAE,MAAW,CAAC,KAAKs9B,EAAE5S,GAAG,OAAO,EAAE,GAAGsS,EAAE,GAAUl9B,EAANE,EAAE1D,EAAE,IAAQhb,EAAE0e,GAAG0qB,EAAG,OAAOpuB,EAAE/iB,EAAEmxC,EAAErsC,EAAEiD,EAAEme,EAAEu9B,EAAE52C,EAAEkW,EAAE,EAAE8C,EAAE+9B,EAAEvd,GAAE,EAAG9f,EAAExD,EAAEghC,EAAEt9B,OAAE,KAA83JP,EAAEw7C,WAAv3J,SAAW1hE,GAAG,IAAI8E,EAAEohB,EAAE,KAAK,GAAGlmB,EAAEozB,OAAO,OAAO,GAAGpzB,EAAEozB,OAAO,OAAO,GAAGpzB,EAAEozB,OAAO,QAAQlN,EAAEF,EAAEhmB,MAAM6uC,MAAM3oB,GAAG,OAAOA,EAAE,IAAI,GAAGlmB,EAAEozB,OAAO,KAAK,CAAC,IAAItuB,EAAE9E,EAAEgI,QAAQ,IAAI,IAAI,MAAM,GAAGlD,EAAEsuB,OAAO,MAAMtuB,EAAEA,EAAEkD,QAAQ,IAAI,KAAKke,EAAEF,EAAElhB,QAAyEohB,EAAjE,GAAGlmB,EAAEqL,OAA8D2a,EAAtDlhB,EAAE9E,EAAE+lC,OAAO,EAAE,GAAG,IAAI/lC,EAAE+lC,OAAO,EAAE,GAAG,IAAI/lC,EAAE+lC,OAAO,EAAE,IAAa/f,EAAEhmB,GAAG,OAAOkmB,IAAI2oB,MAAM3oB,IAAI/lB,QAAQ8kB,MAAM,kBAAkBjlB,EAAE,cAAckmB,GAAuhJA,EAAEy7C,gBAAgB37C,EAAEE,EAAEugB,OAAhgJ,SAAWzmC,EAAE8E,GAAG,QAAG,IAASA,GAAG,OAAOA,EAAE,IAAI,IAAIohB,KAAKphB,EAAEA,EAAE2mB,eAAevF,KAAKlmB,EAAEkmB,GAAGphB,EAAEohB,IAAI,OAAOlmB,GAA06IkmB,EAAE07C,WAA16I,SAASlyB,EAAE1vC,EAAE8E,GAAG,QAAG,IAASA,GAAG,OAAOA,EAAE,IAAI,IAAIohB,KAAKphB,EAAEA,EAAE2mB,eAAevF,KAAK,OAAOphB,EAAEohB,GAAGlmB,EAAEkmB,GAAG,KAAK4lC,EAAEhnD,EAAEohB,IAAIlmB,EAAEkmB,GAAGphB,EAAEohB,GAAG+G,QAAS,SAASjtB,GAAG,MAAM,iBAAiB6hE,KAAK7hE,aAAa6hE,KAAK,iBAAiB7hE,GAAG,iBAAiBA,EAAEmyC,UAAU,iBAAiBnyC,EAAE8hE,SAA9H,CAAwIh9D,EAAEohB,KAAK,iBAAiBphB,EAAEohB,GAAgElmB,EAAEkmB,GAAGphB,EAAEohB,IAAnE,iBAAiBlmB,EAAEkmB,IAAI,OAAOlmB,EAAEkmB,KAAKlmB,EAAEkmB,GAAG,IAAIwpB,EAAE1vC,EAAEkmB,GAAGphB,EAAEohB,MAAgB,OAAOlmB,GAAqkIkmB,EAAE0iC,YAAYkD,EAAE5lC,EAAE67C,WAAr8H,SAAW/hE,GAAG,MAAM,iBAAiBA,GAAG,OAAOA,GAAG,mBAAmBA,EAAE82D,SAA24H5wC,EAAEsrB,MAAr4H,SAAS0a,EAAElsD,GAAG,IAAI,IAAI8E,EAAE,GAAGohB,EAAE,EAAEA,EAAElmB,EAAEqL,OAAO6a,IAAI4lC,EAAE9rD,EAAEkmB,IAAIphB,EAAE4mB,KAAKwgC,EAAElsD,EAAEkmB,KAAKphB,EAAE4mB,KAAK1rB,EAAEkmB,IAAI,OAAOphB,GAAmzHohB,EAAE87C,aAAnzH,WAAa,OAAOh9D,SAASkiB,cAAc,WAAuxHhB,EAAE+7C,qBAA/wH,SAAWjiE,GAAG,IAAI,IAAI8E,EAAEjD,OAAOqgE,iBAAiBh8C,EAAElmB,EAAEmiE,8BAA8BniE,EAAEoiE,2BAA2BpiE,EAAEqiE,0BAA0BriE,EAAEsiE,yBAAyBtiE,EAAEuiE,wBAAwB,EAAE,YAAO,IAASz9D,EAAEA,EAAEohB,EAAE,EAAE,MAAMlmB,GAAG,OAAO,IAA4jHkmB,EAAEs8C,SAASzjB,EAAE74B,EAAE2iC,eAAn5G,SAAW7oD,EAAE8E,EAAEohB,EAAErZ,GAAG,OAAO,IAAIkyC,EAAE/+C,EAAE8E,EAAEohB,EAAErZ,IAA63GqZ,EAAEu8C,iBAA53G,SAAWziE,EAAE8E,EAAEohB,EAAErZ,GAAG,IAAIgZ,EAAEwgB,EAAE,EAAE8K,GAAG,IAAI5tB,MAAMuzC,UAAU,GAAG92D,EAAEqmC,GAAG,GAAGvhC,EAAX,CAA6B,IAAIiD,EAAEjD,EAAE,GAAG,SAAS2+C,IAAIpd,GAAGvhC,GAAG49D,EAAGxxB,KAAKrvC,QAAO,WAAW,IAA2B8tC,GAApB,IAAIpsB,MAAMuzC,UAAc3lB,EAAEtrB,EAAEwgB,EAAoB,IAAIud,GAAtBvd,EAAEprC,KAAKG,MAAMu0C,EAAEzpB,IAAWL,EAAEwgB,EAAEud,EAAE77C,GAAGs+B,GAAGt+B,GAAG/H,EAAE+H,GAAG8E,MAAM,IAAI+2C,GAAG5jD,EAAEqmC,GAAGod,QAAlJ,QAAf52C,KAAi0GqZ,EAAEy8C,0BAAxpG,SAAW3iE,EAAE8E,GAAG,IAAIohB,EAAE,GAAG,GAAGlmB,EAAE,IAAI,IAAI6M,EAAE,EAAEA,EAAE7M,EAAEqL,OAAOwB,IAAIqZ,EAAElmB,EAAE6M,KAAI,EAAG,IAAIgZ,EAAE,SAAS7lB,GAAG,IAAI,IAAI8E,KAAK9E,EAAE,GAAGA,EAAEyrB,eAAe3mB,KAAK89D,EAAG99D,GAAG,OAAM,EAAG,OAAM,GAAI,IAAI,IAAIuhC,KAAKvhC,EAAE,GAAGA,EAAE2mB,eAAe4a,GAAG,GAAG,uBAAuBA,GAAGngB,EAAEmgB,KAAKvhC,EAAEw2D,QAAQ,GAAGz1C,EAAE/gB,EAAEuhC,IAAI,OAAM,OAAQ,GAAG,UAAUA,GAAG,QAAQA,EAAE,CAAC,IAAI8K,EAAErsC,EAAEuhC,GAAG,IAAI,IAAIt+B,KAAKopC,EAAE,GAAGA,EAAE1lB,eAAe1jB,IAAI8d,EAAEsrB,EAAEppC,IAAI,OAAM,OAAQ,IAAI66D,EAAGv8B,GAAG,OAAM,EAAG,OAAM,GAAozFngB,EAAE28C,oBAAnzF,SAAW7iE,GAAG,IAAI,IAAI8E,EAAE,EAAEA,EAAE9E,EAAEqL,OAAOvG,IAAI,CAAC,IAAIohB,EAAElmB,EAAE8lB,OAAOhhB,GAAG,GAAG,OAAOohB,EAAE,OAAOphB,EAAE,EAAE9E,EAAEqL,QAAQ,OAAOrL,EAAE8lB,OAAOhhB,EAAE,GAAG,OAAOohB,EAAE,GAAG,OAAOA,EAAE,OAAOphB,EAAE,EAAE9E,EAAEqL,QAAQ,OAAOrL,EAAE8lB,OAAOhhB,EAAE,GAAG,OAAOohB,EAAE,OAAO,MAAwoFA,EAAE48C,kBAAroF,SAAW9iE,EAAE8E,GAAG,GAAG,OAAOA,GAAG,OAAO9E,EAAE,OAAM,EAAG,IAAI,IAAIkmB,EAAElmB,EAAEkmB,GAAGA,IAAIphB,GAAGohB,EAAEA,EAAEq3B,WAAW,OAAOr3B,IAAIphB,GAA0jFohB,EAAE0/B,IAAI+G,EAAEzmC,EAAEklC,OAA51E,SAAWprD,GAAG,IAAI8E,EAAE+nD,EAAE7sD,GAAG,GAAG8E,EAAE,OAAOA,EAAE,IAAIohB,EAAElhB,SAASkiB,cAAc,OAAOhB,EAAE3hB,MAAMipC,gBAAgBxtC,EAAEkmB,EAAE3hB,MAAMqnD,WAAW,SAAS5mD,SAASg+B,KAAK3b,YAAYnB,GAAG,IAAIrZ,EAAEhL,OAAOkhE,iBAAiB78C,EAAE,MAAMsnB,gBAAgB,OAAOxoC,SAASg+B,KAAKzb,YAAYrB,GAAG2mC,EAAEhgD,IAA2mEqZ,EAAEuhC,kBAA1mE,SAAWznD,GAAG,KAAKA,GAAGgF,SAASkiB,cAAc,WAAW87C,WAAW,MAAM,MAAMhjE,GAAG,OAAM,EAAG,OAAM,GAA6hEkmB,EAAE+8C,YAA5hE,SAAWjjE,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAEmlC,WAAWhyC,GAAG,IAAI6uC,MAAMhiC,GAAG,OAAOA,EAAE,GAAG,OAAOqF,KAAKlS,GAAG,OAAO,KAAK,GAAG,aAAakS,KAAKlS,GAAG,OAAOimD,IAAI,IAAIpgC,EAAE,oBAAoB7lB,EAAE,gBAAgB,YAAO,IAASkmB,QAAG,IAASphB,IAAI+gB,GAAG,aAAa,GAAG/gB,GAAG,IAAI,MAAMohB,EAAE,cAAc/lB,QAAQ8kB,MAAMY,GAAG,MAAgyDK,EAAEqrC,qBAAqB7K,EAAExgC,EAAEsrC,yBAAxqC,SAAWxxD,EAAE8E,EAAEohB,GAAG,OAAOwgC,EAAExV,KAAKtyC,KAAKoB,EAAEkmB,IAA4pCA,EAAE6qC,uBAA3pC,SAAW/wD,EAAE8E,EAAEohB,GAAG,IAAqBL,EAAfK,EAAE,aAAiB40B,EAAGh5C,EAAEukC,EAAExgB,EAAEuZ,YAAYp/B,GAAGmxC,EAAEtrB,EAAEwZ,SAASr/B,GAAG+H,EAAE8d,EAAEyZ,QAAQt/B,GAAGyjD,EAAE59B,EAAE0Z,SAASv/B,GAAG2vC,EAAE9pB,EAAE2Z,WAAWx/B,GAAG4jD,EAAE/9B,EAAE4Z,WAAWz/B,GAAGymB,EAAEZ,EAAEm6C,gBAAgBhgE,GAAG,GAAG8E,GAAGo+D,EAAEvD,YAAYH,QAAQ,MAAM,GAAGn5B,EAAE,GAAGvhC,GAAGo+D,EAAEvD,YAAYP,QAAQ,OAAO+D,EAAGhyB,GAAG,SAAS9K,EAAE,GAAG,IAAI,KAAKod,EAAE,GAAG9T,EAAEiU,EAAE,KAAKn9B,GAAG3hB,GAAGo+D,EAAEvD,YAAYV,MAAM,OAAOlb,EAAEh8C,GAAG,SAASo7D,EAAGhyB,GAAG,GAAGrsC,EAAEo+D,EAAEvD,YAAYvB,SAAS,CAAC,IAAI73C,EAAE,GAAGE,EAAE,OAAOs9B,EAAEH,GAAG,KAAK,MAAMr9B,GAAGuB,UAAUvB,EAAElb,QAAQ,OAAOvG,EAAEo+D,EAAEvD,YAAYlB,SAASza,EAAEP,EAAE9T,EAAEiU,EAAE,GAAGI,EAAEP,EAAE9T,EAAEiU,EAAEn9B,IAAotBP,EAAE+qC,mBAAntB,SAAWjxD,EAAE8E,GAAG,OAAOg/C,EAAE9jD,EAAE8E,EAAE,eAA2sB,IAA6Bo+D,EAAE,SAASljE,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAzB9E,EAAE,sBAAkLkmB,EAAEkuC,UAAU,GAAG,IAAIgP,EAAEnoE,KAAKmF,IAAI,IAAI8lB,EAAEm9C,OAAOD,EAAE,IAAIE,EAAE,SAAStjE,GAAG,OAAO/E,KAAKmF,IAAIJ,GAAGojE,GAAGl9C,EAAE6sC,MAAMuQ,EAA6Ep9C,EAAEq9C,iBAAvE,SAASvjE,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAEy2D,EAAEtjE,GAAUqmC,EAAEx5B,EAAEqZ,GAATo9C,EAAEx+D,GAAY+H,GAAG,OAAO5R,KAAK2qD,IAAI,GAAGvf,IAAqCngB,EAAEs9C,YAAR,CAAC,EAAE,GAA+Bt9C,EAAEu9C,YAAR,CAAC,EAAE,GAAmCv9C,EAAEw9C,cAAZ,CAAC,EAAE,EAAE,EAAE,GAAqBx9C,EAAE4uC,WAAW,EAAE5uC,EAAE2uC,SAAS,EAA+C3uC,EAAE88C,WAAzC,SAAShjE,GAAG,OAAOA,EAAEgjE,WAAW,OAAwE98C,EAAEy9C,SAA9C,SAAS3jE,EAAE8E,EAAEohB,GAAGlmB,EAAEiF,iBAAiBH,EAAEohB,GAAE,IAAkB,IAAIpkB,EAAE,CAACs9B,YAAY,SAASp/B,GAAG,OAAOA,EAAEo/B,eAAeC,SAAS,SAASr/B,GAAG,OAAOA,EAAEq/B,YAAYC,QAAQ,SAASt/B,GAAG,OAAOA,EAAEs/B,WAAWC,SAAS,SAASv/B,GAAG,OAAOA,EAAEu/B,YAAYC,WAAW,SAASx/B,GAAG,OAAOA,EAAEw/B,cAAcC,WAAW,SAASz/B,GAAG,OAAOA,EAAEy/B,cAAcugC,gBAAgB,SAAShgE,GAAG,OAAOA,EAAEggE,mBAAmBC,OAAO,SAASjgE,GAAG,OAAOA,EAAEigE,UAAUC,SAAS,SAASlgE,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,GAAG,OAAO,IAAI5tB,KAAKvjB,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,KAAKjrB,EAAE65C,mBAAmBj+D,EAAE,IAAIg5C,EAAG,CAAC1b,YAAY,SAASp/B,GAAG,OAAOA,EAAE4jE,kBAAkBvkC,SAAS,SAASr/B,GAAG,OAAOA,EAAE6jE,eAAevkC,QAAQ,SAASt/B,GAAG,OAAOA,EAAE8jE,cAAcvkC,SAAS,SAASv/B,GAAG,OAAOA,EAAE+jE,eAAevkC,WAAW,SAASx/B,GAAG,OAAOA,EAAEgkE,iBAAiBvkC,WAAW,SAASz/B,GAAG,OAAOA,EAAEikE,iBAAiBjE,gBAAgB,SAAShgE,GAAG,OAAOA,EAAEkkE,sBAAsBjE,OAAO,SAASjgE,GAAG,OAAOA,EAAEmkE,aAAajE,SAAS,SAASlgE,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,GAAG,OAAO,IAAI5tB,KAAKA,KAAK6gD,IAAIpkE,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,MAAMjrB,EAAE45C,iBAAiBhlB,EAAGiE,EAAE3N,UAAUwY,KAAK,WAAW,IAAIhrD,KAAKirD,QAAQ,OAAO,KAAK,IAAI,IAAI7pD,EAAEpB,KAAKkrD,KAAKhlD,EAAElG,KAAK+qD,SAAS,EAAEzjC,GAAE,EAAGphB,EAAElG,KAAK0qD,MAAM,CAAC,IAAI1qD,KAAK2qD,YAAY3qD,KAAK2qD,WAAW3qD,KAAKyqD,OAAOvkD,GAAG,CAAClG,KAAKkrD,KAAKlrD,KAAKyqD,OAAOvkD,GAAGohB,GAAE,EAAG,MAAMphB,IAAI,OAAOlG,KAAK+qD,SAAS7kD,EAAEohB,IAAItnB,KAAKirD,SAAQ,EAAGjrD,KAAKkrD,KAAK,MAAM9pD,GAAG,IAAI0iE,EAAqB7gE,OAAOwiE,uBAAuBxiE,OAAOyiE,6BAA6BziE,OAAO0iE,0BAA0B1iE,OAAO2iE,wBAAwB3iE,OAAO4iE,yBAAyB,SAASzkE,GAAG6B,OAAOylB,WAAWtnB,EAAE,IAAI,KAAQkmB,EAAEw+C,iBAAiBhC,EAAG,IAAIE,EAAG,CAAC+B,wBAAuB,EAAGC,2BAA0B,EAAGC,2BAA0B,EAAGC,4BAA2B,EAAGxV,eAAc,EAAGC,eAAc,EAAGwV,eAAc,EAAGC,cAAa,EAAGC,4BAA2B,EAAGC,YAAW,EAAGC,mBAAkB,EAAGjU,UAAS,EAAGxC,WAAU,EAAGgB,eAAc,EAAGF,eAAc,EAAGV,uBAAsB,EAAGsW,mBAAkB,EAAGpY,qBAAoB,EAAG2C,kBAAiB,EAAG0V,WAAU,EAAG/X,WAAU,EAAGC,YAAW,EAAGH,qBAAoB,EAAGC,sBAAqB,EAAGv6C,QAAO,EAAGwyD,iBAAgB,EAAGC,iBAAgB,EAAGC,oBAAmB,EAAGC,WAAU,EAAGvV,4BAA2B,EAAGD,oCAAmC,EAAGD,8BAA6B,EAAGG,oCAAmC,EAAGC,kCAAiC,EAAGC,4BAA2B,EAAGC,oCAAmC,EAAGC,kCAAiC,EAAGC,oBAAmB,EAAGhD,uBAAsB,EAAGS,YAAW,EAAG/D,aAAY,EAAGwb,kBAAiB,EAAGC,qBAAoB,EAAGC,cAAa,GAAIC,EAAG,CAAC1a,QAAQ,SAASnrD,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,GAAGjrB,EAAE2hC,YAAY3hC,EAAEmlC,UAAUhlB,EAAEngB,EAAEg0B,IAAIrtC,EAAEgZ,EAAEsrB,EAAE,EAAE,EAAEl2C,KAAKs3C,IAAG,GAAIrsB,EAAEqlC,SAASrlC,EAAEglC,QAAQ2a,EAAG,IAAItF,EAAG,0EAA0EC,EAAG,CAAC,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKyC,EAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,CAAC,oBAAoB,KAAK2C,GAAG,CAAC,SAAS9lE,EAAE8E,EAAEohB,IAAG,SAAUrZ,GAAG,aAAa,SAASgZ,EAAE7lB,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAAE,SAASuhC,EAAErmC,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAAqUL,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAImK,EAA6P,SAASjD,EAAEohB,GAAG,GAAGvG,MAAMivB,QAAQ9pC,GAAG,OAAOA,EAAE,GAAGihE,OAAOC,YAAYrmE,OAAOmF,GAAG,OAA3T,SAAW9E,EAAE8E,GAAG,IAAIohB,EAAE,GAAGrZ,GAAE,EAAGgZ,GAAE,EAAGwgB,OAAE,EAAO,IAAI,IAAI,IAAI8K,EAAEppC,EAAE/H,EAAE+lE,OAAOC,cAAcn5D,GAAGskC,EAAEppC,EAAE6hD,QAAQ9/B,QAAQ5D,EAAEwF,KAAKylB,EAAEvzC,QAAQkH,GAAGohB,EAAE7a,SAASvG,GAAG+H,GAAE,IAAK,MAAM7M,GAAG6lB,GAAE,EAAGwgB,EAAErmC,EAAvH,QAAiI,KAAK6M,GAAG9E,EAAEk+D,QAAQl+D,EAAEk+D,SAApB,QAAqC,GAAGpgD,EAAE,MAAMwgB,GAAG,OAAOngB,EAA2FlmB,CAAE8E,EAAEohB,GAAG,MAAM,IAAIggD,UAAU,yDAAoFv2B,EAAEtJ,EAAxBrmC,EAAE,qBAAmDymB,EAAE4f,EAAxBrmC,EAAE,qBAAoD+iB,EAAEsjB,EAAzBrmC,EAAE,sBAA+DgkD,EAAE3d,EAAnCrmC,EAAE,gCAA+Dw/C,EAAE35B,EAAzB7lB,EAAE,sBAAmDpF,EAAEirB,EAAvB7lB,EAAE,oBAAyDmmB,EAAEkgB,EAA/BrmC,EAAE,4BAAqE8rD,GAAGzlB,EAApCrmC,EAAE,gCAAuCA,EAAE,kBAAkBisD,EAAE5lB,EAAEylB,GAAgCK,EAAE9lB,EAA7BrmC,EAAE,0BAAgE++C,EAAE1Y,EAAhCrmC,EAAE,6BAAoEssD,EAAEjmB,EAAjCrmC,EAAE,8BAA2EwsD,EAAEnmB,EAAvCrmC,EAAE,oCAA8E2sD,EAAEtmB,EAApCrmC,EAAE,iCAAiEmmE,EAAE9/B,EAA1BrmC,EAAE,uBAA0DomE,EAAE//B,EAA7BrmC,EAAE,0BAAsDymD,EAAEpgB,EAAtBrmC,EAAE,mBAAuDqmE,EAAEhgC,EAA9BrmC,EAAE,2BAAuDkjE,EAAE78B,EAAtBrmC,EAAE,mBAAiDsjE,EAAEj9B,EAAxBrmC,EAAE,qBAA2D0lB,EAAE2gB,EAAhCrmC,EAAE,6BAAyDsmE,EAAEjgC,EAAtBrmC,EAAE,mBAAyBumE,EAAE,SAASvmE,EAAE8E,EAAEohB,GAAGtnB,KAAK4nE,SAASxmE,EAAE8E,EAAEohB,IAAIqgD,EAAEE,KAAK,UAAUF,EAAEG,QAAQ,QAAQH,EAAEI,oBAAoB,EAAEJ,EAAEK,cAAc,IAAIL,EAAEM,eAAe,IAAIN,EAAEO,gBAAgB,GAAGP,EAAEQ,mBAAmB,IAAIR,EAAES,SAASvgD,EAAE+K,QAAQk5B,UAAU6b,EAAEU,oBAAmB,EAAGV,EAAEn1B,UAAUo1B,SAAS,SAASxmE,EAAE8E,EAAEohB,GAAG,GAAGtnB,KAAKsoE,kBAAiB,EAAGtoE,KAAKuoE,UAAU,GAAG,OAAOjhD,QAAG,IAASA,IAAIA,EAAE,IAAIA,EAAEqgD,EAAEa,eAAelhD,GAAG,iBAAiBlmB,IAAIA,EAAEgF,SAASof,eAAepkB,KAAKA,EAAE,MAAM,IAAI0jD,MAAM,iDAAiD9kD,KAAKyoE,SAASrnE,EAAEpB,KAAK0oE,MAAMxiE,EAAElG,KAAK2oE,YAAYrhD,EAAEshD,YAAYjB,EAAEI,oBAAoB/nE,KAAK6oE,oBAAoB,EAAE7oE,KAAK8oE,WAAWxhD,EAAEooC,YAAW,EAAG1vD,KAAKu1D,YAAYjuC,EAAEyhD,YAAY,KAAK/oE,KAAKgpE,aAAa,GAAG5nE,EAAEqkB,UAAU,GAAG,KAAKrkB,EAAEuE,MAAMsO,OAAOqT,EAAErT,QAAQ7S,EAAEuE,MAAMsO,MAAMqT,EAAErT,MAAM,MAAM,KAAK7S,EAAEuE,MAAMC,QAAQ0hB,EAAE1hB,SAASxE,EAAEuE,MAAMC,OAAO0hB,EAAE1hB,OAAO,MAAM,KAAKxE,EAAEuE,MAAMC,QAAQ,IAAIxE,EAAEqD,eAAerD,EAAEuE,MAAMC,OAAO+hE,EAAEM,eAAe,KAAK,KAAK7mE,EAAEuE,MAAMsO,QAAQ7S,EAAEuE,MAAMsO,MAAM0zD,EAAEK,cAAc,OAAOhoE,KAAK4oD,OAAOxnD,EAAE6nE,aAAa3hD,EAAErT,OAAO,EAAEjU,KAAK2oD,QAAQvnD,EAAEqD,cAAc6iB,EAAE1hB,QAAQ,EAAE0hB,EAAE0oC,eAAe1oC,EAAEuoC,WAAU,GAAI7vD,KAAKw9D,YAAY,GAAGxhE,EAAE6rC,OAAO7nC,KAAKw9D,YAAYl2C,GAAGtnB,KAAKs9D,OAAO,GAAGthE,EAAEgnE,WAAWhjE,KAAKs9D,OAAO/1C,EAAEqL,SAAS5yB,KAAKkpE,aAAa,GAAGlpE,KAAKmpE,gBAAgB,GAAGnpE,KAAKopE,cAAc,GAAGppE,KAAKqpE,kBAAkB,GAAGrpE,KAAKspE,gBAAgB,GAAGtpE,KAAKk1D,YAAY,IAAI/wC,EAAEyO,QAAQ5yB,MAAMA,KAAKupE,mBAAmBvpE,KAAKwpE,SAAS,GAAG,IAAI,IAAIv7D,EAAE05D,EAAE8B,QAAQlpB,OAAOvgD,KAAK4iC,UAAU,YAAY3b,EAAE,EAAEA,EAAEhZ,EAAExB,OAAOwa,IAAI,CAAC,IAAIwgB,EAAE8K,EAAEtkC,EAAEgZ,GAAqC9d,EAAE,CAACugE,OAArCjiC,OAAE,IAAS8K,EAAEo3B,SAASp3B,EAAE,IAAIA,EAAkBq3B,OAAO,GAAGhmE,QAAQ,GAAGimE,cAAc,IAAIhlB,EAAEpd,EAAEkiC,SAAS3pE,MAAM,IAAI,IAAI+wC,KAAK8T,EAAEA,EAAEh4B,eAAekkB,KAAK5nC,EAAEygE,OAAO74B,GAAG8T,EAAE9T,IAAI/wC,KAAKwpE,SAAS18C,KAAK3jB,GAAG,IAAQ8d,EAAE,EAAEA,EAAEjnB,KAAKwpE,SAAS/8D,OAAOwa,IAAI,CAAC,IAAI+9B,EAAEhlD,KAAKwpE,SAASviD,GAAG,IAAI,IAAI8pB,KAAKiU,EAAE4kB,OAAO,GAAG5kB,EAAE4kB,OAAO/8C,eAAekkB,GAAG,CAAC,IAAIlpB,EAAEm9B,EAAE4kB,OAAO74B,GAAGppB,EAAE,CAACq9B,EAAE0kB,OAAO7hD,GAAGkpB,KAAK/wC,KAAKspE,gBAAgBtpE,KAAKspE,gBAAgBv4B,GAAGjkB,KAAKnF,GAAG3nB,KAAKspE,gBAAgBv4B,GAAG,CAACppB,IAAI3nB,KAAK8pE,uBAAuB9pE,KAAK4qD,UAAU+c,EAAEn1B,UAAUokB,eAAe,SAASx1D,EAAE8E,GAAG,KAAK9E,KAAKpB,KAAKspE,iBAAiB,OAAM,EAAG,IAAIhiD,EAAE,CAACuiC,QAAQ7pD,KAAK02D,YAAW,EAAGqT,kBAAiB,EAAG5kE,eAAe,WAAW,IAAImiB,EAAEovC,WAAW,KAAK,sDAAsDpvC,EAAEyiD,kBAAiB,GAAIC,oBAAmB,EAAGvjE,gBAAgB,WAAW6gB,EAAE0iD,oBAAmB,IAAKhuE,EAAE6rC,OAAOvgB,EAAEphB,GAAG,IAAI+H,EAAEjO,KAAKspE,gBAAgBloE,GAAG,GAAG6M,EAAE,IAAI,IAAIgZ,EAAEhZ,EAAExB,OAAO,EAAEwa,GAAG,EAAEA,IAAI,CAAC,IAAIwgB,EAAEx5B,EAAEgZ,GAAG,GAAa,GAARhZ,EAAEgZ,GAAG,GAAQqrB,KAAK7K,EAAEngB,GAAGA,EAAE0iD,mBAAmB,MAAM,OAAO1iD,EAAEyiD,kBAAkBpC,EAAEn1B,UAAUy3B,mBAAmB,SAAS7oE,GAAG,IAAI,IAAI8E,EAAE,EAAEA,EAAElG,KAAKwpE,SAAS/8D,OAAOvG,IAAI,CAAC,IAAIohB,EAAEtnB,KAAKwpE,SAAStjE,GAAG,GAAGohB,EAAEoiD,kBAAkBtoE,EAAE,OAAOkmB,EAAEoiD,OAAO,OAAO,MAAM/B,EAAEn1B,UAAU03B,SAAS,SAAS9oE,GAAG,IAAI8E,IAAIlG,KAAKu1D,YAAY,GAAG,MAAMn0D,EAAE,OAAO8E,EAAE,IAAIohB,EAAEtnB,KAAK20D,MAAM3mD,KAAI,SAAS5M,GAAG,QAAQA,EAAE2tB,cAAa9F,SAAQ,IAAK,EAAE,GAAG,OAAO7nB,QAAG,IAASA,EAAE,OAAO8E,GAAGohB,EAAE,GAAG,MAAMlmB,EAAE,OAAOkmB,EAAE,MAAM,IAAIw9B,MAAM,sBAAsB1jD,EAAE,gCAAgCumE,EAAEn1B,UAAU/wC,SAAS,WAAW,IAAIL,EAAEpB,KAAKyoE,SAAS,MAAM,aAAarnE,GAAGA,EAAE2D,GAAG3D,EAAE2D,GAAG3D,GAAG,KAAKumE,EAAEn1B,UAAU23B,MAAM,SAAS/oE,EAAE8E,GAAG,OAAOA,EAAElG,KAAKk1D,YAAY8G,aAAa56D,EAAE8E,GAAGlG,KAAKk1D,YAAYj1D,IAAImB,IAAIumE,EAAEn1B,UAAU5P,UAAU,SAASxhC,EAAE8E,GAAG,OAAOlG,KAAKmqE,MAAM/oE,EAAE8E,IAAIyhE,EAAEn1B,UAAU6Z,iBAAiB,SAASjrD,EAAE8E,GAAG,OAAOlG,KAAK4iC,UAAUxhC,EAAE8E,IAAIyhE,EAAEn1B,UAAU43B,gBAAgB,SAAShpE,EAAE8E,GAAG,OAAOlG,KAAK4iC,UAAUxhC,EAAE8E,IAAIyhE,EAAEn1B,UAAUsX,iBAAiB,SAAS1oD,EAAE8E,GAAG,OAAOlG,KAAK4iC,UAAUxhC,EAAE8E,IAAIyhE,EAAEn1B,UAAU+jB,kBAAkB,SAASn1D,EAAE8E,GAAG,OAAOlG,KAAK4iC,UAAUxhC,EAAE8E,IAAIyhE,EAAEn1B,UAAUyhB,iBAAiB,SAAS7yD,EAAE8E,GAAG,OAAOlG,KAAKk1D,YAAYC,WAAW/zD,EAAE8E,IAAIyhE,EAAEn1B,UAAU63B,oBAAoB,SAASjpE,GAAG,IAAI8E,EAAElG,KAAK,OAAO,SAASsnB,GAAG,IAAIrZ,EAAE/H,EAAEs3D,YAAYxL,KAAK,OAAO/jD,GAAGA,EAAE7M,IAAI6M,EAAE7M,GAAGyrB,eAAevF,GAAGrZ,EAAE7M,GAAGkmB,IAAI,MAAMlmB,GAAG,aAAakmB,UAAK,IAASphB,EAAEs3D,YAAYl2C,GAAGphB,EAAEs3D,YAAYl2C,IAAIrZ,EAAE/H,EAAEo3D,OAAOtL,OAAQ/jD,EAAE7M,IAAI6M,EAAE7M,GAAGyrB,eAAevF,GAAGrZ,EAAE7M,GAAGkmB,GAAG,KAAKlmB,GAAG8E,EAAEyuD,MAAM,GAAG9nC,eAAevF,GAAGphB,EAAEyuD,MAAM,GAAGrtC,GAAG,MAAMlmB,GAAG8E,EAAEyuD,MAAM,GAAG9nC,eAAevF,GAAGphB,EAAEyuD,MAAM,GAAGrtC,GAAGphB,EAAEikE,MAAM7iD,MAAOqgD,EAAEn1B,UAAUo2B,WAAW,WAAW,OAAO5oE,KAAK2oE,aAAahB,EAAEn1B,UAAUwhB,WAAW,WAAW,OAAOh0D,KAAKu1D,YAAYv1D,KAAKu1D,YAAYv1D,KAAKu0D,iBAAiBoT,EAAEn1B,UAAU+hB,cAAc,WAAW,IAAInzD,EAAEpB,KAAKqsD,iBAAiB,aAAarsD,KAAKs0D,SAASxL,KAAKhY,EAAE,GAAG,IAAI9wC,KAAKsqE,UAAU,MAAM,CAAC,EAAElpE,EAAE,EAAEA,GAAG,IAAI8E,EAAElG,KAAKuqE,SAAS,GAAG,GAAGjjD,EAAEtnB,KAAKuqE,SAASvqE,KAAKuqE,SAAS99D,OAAO,GAAG,GAAG,GAAGrL,EAAE,CAAC,IAAI6M,EAAEqZ,EAAEphB,EAAEA,GAAG+H,EAAE7M,EAAEkmB,GAAGrZ,EAAE7M,EAAE,MAAM,CAAC8E,EAAEohB,IAAIqgD,EAAEn1B,UAAUg4B,cAAc,WAAW,IAAoDtkE,EAA9ClG,KAAKyqE,gBAAgBzqE,KAAK0qE,cAAc,MAAUC,SAASrjD,EAAEtnB,KAAK20D,MAAM30D,KAAK4qE,oBAAoB1kE,GAAG,IAAI+H,EAAEjO,KAAK20D,MAAM,OAAO30D,KAAK20D,MAAMrtC,EAAErZ,EAAED,KAAI,SAAS5M,GAAG,OAAOA,EAAEwzD,iBAAgB+S,EAAEn1B,UAAUyiB,WAAW,SAAS7zD,GAAG,QAAG,IAASA,IAAIA,EAAE,GAAGA,EAAE,GAAGA,GAAGpB,KAAK20D,MAAMloD,OAAO,OAAO,KAAK,IAAIvG,EAAElG,KAAK20D,MAAMvzD,GAAG,MAAM,CAAC8E,EAAEw1D,mBAAmB,GAAGx1D,EAAEw1D,mBAAmB,KAAKiM,EAAEn1B,UAAUulB,YAAY,WAAW,IAAI,IAAI32D,EAAE,GAAG8E,EAAE,EAAEA,EAAElG,KAAK20D,MAAMloD,OAAOvG,IAAI9E,EAAE0rB,KAAK9sB,KAAKi1D,WAAW/uD,IAAI,OAAO9E,GAAGumE,EAAEn1B,UAAUq4B,YAAY,SAASzpE,EAAE8E,EAAEohB,GAAG,MAAM,CAACtnB,KAAKw0D,YAAYpzD,GAAGpB,KAAK60D,YAAY3uD,EAAEohB,KAAKqgD,EAAEn1B,UAAUgiB,YAAY,SAASpzD,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,IAAI8E,EAAElG,KAAKs0D,SAASxL,KAAKxhC,EAAEtnB,KAAKg0D,aAAa,OAAO9tD,EAAElK,GAAGoF,EAAEkmB,EAAE,KAAKA,EAAE,GAAGA,EAAE,IAAIphB,EAAE4qC,GAAG62B,EAAEn1B,UAAUqiB,YAAY,SAASzzD,EAAE8E,GAAG,IAAIohB,EAAEtnB,KAAKy8D,gBAAgBr7D,EAAE8E,GAAG,GAAG,OAAOohB,EAAE,OAAO,KAAK,IAAIrZ,EAAEjO,KAAKs0D,SAASxL,KAAK,OAAO76C,EAAE+Y,EAAEM,EAAErZ,EAAE8iC,GAAG42B,EAAEn1B,UAAUs4B,aAAa,SAAS1pE,EAAE8E,EAAEohB,GAAG,MAAM,CAACtnB,KAAKy0D,aAAarzD,GAAGpB,KAAK80D,aAAa5uD,EAAEohB,KAAKqgD,EAAEn1B,UAAUiiB,aAAa,SAASrzD,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,IAAI8E,EAAElG,KAAKs0D,SAASxL,KAAKxhC,EAAEtnB,KAAKg0D,aAAa,GAAGh0D,KAAKk1D,YAAYC,WAAW,WAAW,KAAK,CAAC,IAAIlnD,GAAG7M,EAAE8E,EAAElK,GAAGkK,EAAE4qC,EAAE,OAAO90C,EAAE2oE,iBAAiBr9C,EAAE,GAAGA,EAAE,GAAGrZ,GAAG,OAAOqZ,EAAE,IAAIlmB,EAAE8E,EAAElK,GAAGkK,EAAE4qC,GAAGxpB,EAAE,GAAGA,EAAE,KAAKqgD,EAAEn1B,UAAUsiB,aAAa,SAAS1zD,EAAE8E,GAAG,GAAG,OAAO9E,EAAE,OAAO,KAAK,IAAIkmB,EAAEtnB,KAAKs0D,SAASxL,KAAK76C,EAAEjO,KAAKi1D,WAAW/uD,GAAG,QAAG,IAASA,IAAIA,EAAE,GAAGlG,KAAKk1D,YAAYC,WAAW,WAAWjvD,GAAG,CAAC,IAAI+gB,GAAG7lB,EAAEkmB,EAAEN,GAAGM,EAAEypB,EAAE,OAAO/0C,EAAE2oE,iBAAiB12D,EAAE,GAAGA,EAAE,GAAGgZ,GAAG,OAAOhZ,EAAE,IAAIqZ,EAAEN,EAAEM,EAAEypB,EAAE3vC,GAAGkmB,EAAEypB,GAAG9iC,EAAE,GAAGA,EAAE,KAAK05D,EAAEn1B,UAAUiqB,gBAAgB,SAASr7D,EAAE8E,GAAG,GAAG,OAAO9E,EAAE,OAAO,UAAK,IAAS8E,IAAIA,EAAE,GAAG,IAAIohB,EAAErZ,EAAEjO,KAAKi1D,WAAW/uD,GAAG,GAAGlG,KAAKk1D,YAAYC,WAAW,WAAWjvD,GAAG,CAAC,IAAI+gB,EAAEjrB,EAAEm4D,MAAMlmD,EAAE,IAAIw5B,EAAEzrC,EAAEm4D,MAAMlmD,EAAE,IAAIqZ,GAAGmgB,EAAEzrC,EAAEm4D,MAAM/yD,KAAKqmC,EAAExgB,QAAQK,GAAGrZ,EAAE,GAAG7M,IAAI6M,EAAE,GAAGA,EAAE,IAAI,OAAOqZ,GAAGqgD,EAAEn1B,UAAU6pB,gBAAgB,SAASj7D,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,IAAI8E,EAAEohB,EAAEtnB,KAAKg0D,aAAa,IAAG,IAAKh0D,KAAKk1D,YAAYC,WAAW,WAAW,KAAK,CAAC,IAAIlnD,EAAEjS,EAAEm4D,MAAM7sC,EAAE,IAAIL,EAAEjrB,EAAEm4D,MAAM7sC,EAAE,IAAIphB,GAAGlK,EAAEm4D,MAAM/yD,GAAG6M,IAAIgZ,EAAEhZ,QAAQ/H,GAAG9E,EAAEkmB,EAAE,KAAKA,EAAE,GAAGA,EAAE,IAAI,OAAOphB,GAAGyhE,EAAEn1B,UAAUu4B,WAAW,WAAW,OAAO/qE,KAAKuqE,SAASvqE,KAAKuqE,SAAS,GAAGvqE,KAAKuqE,SAAS,GAAG99D,OAAOzM,KAAKmqE,MAAM,UAAU19D,OAAO,GAAGk7D,EAAEn1B,UAAU83B,QAAQ,WAAW,OAAOtqE,KAAKuqE,SAASvqE,KAAKuqE,SAAS99D,OAAO,GAAGk7D,EAAEn1B,UAAUw4B,SAAS,SAAS5pE,EAAE8E,GAAG,OAAO9E,EAAE,GAAGA,EAAEpB,KAAKuqE,SAAS99D,OAAO,KAAKvG,EAAE,GAAGA,EAAElG,KAAKuqE,SAASnpE,GAAGqL,OAAO,KAAKzM,KAAKuqE,SAASnpE,GAAG8E,IAAIyhE,EAAEn1B,UAAU+2B,iBAAiB,WAAW,IAAInoE,EAAEpB,KAAKyoE,SAASzoE,KAAKu6D,SAASn0D,SAASkiB,cAAc,OAAOtoB,KAAKu6D,SAAS50D,MAAMslE,UAAU,OAAOjrE,KAAKu6D,SAAS50D,MAAMk/B,SAAS,WAAWzjC,EAAEqnB,YAAYzoB,KAAKu6D,UAAUv6D,KAAKy4D,QAAQz8D,EAAEonE,eAAepjE,KAAKy4D,QAAQ9yD,MAAMk/B,SAAS,WAAW7kC,KAAKkrE,QAAQlrE,KAAKmrE,qBAAqBnrE,KAAKy4D,SAASz4D,KAAKgpD,YAAYhtD,EAAEooE,WAAWpkE,KAAKy4D,SAASz4D,KAAKopD,YAAYptD,EAAEooE,WAAWpkE,KAAKkrE,SAASlrE,KAAKorE,kBAAkBprE,KAAKu6D,SAAS9xC,YAAYzoB,KAAKkrE,SAASlrE,KAAKu6D,SAAS9xC,YAAYzoB,KAAKy4D,SAASz4D,KAAKqrE,mBAAmBrrE,KAAKsrE,2BAA2BtrE,KAAKmzD,QAAQ,IAAIpiB,EAAEne,QAAQ5yB,MAAM,IAAIkG,EAAElG,KAAKA,KAAKurE,kBAAkB,SAASnqE,GAAG8E,EAAEslE,WAAWpqE,IAAIpB,KAAKyrE,iBAAiB,SAASrqE,GAAG,IAAIkmB,EAAElmB,EAAE+yB,QAAQ/yB,EAAEsqE,YAAYz9D,EAAE7M,EAAEuqE,eAAevqE,EAAEwqE,UAAU5vE,EAAEkoE,kBAAkB58C,EAAEphB,EAAEq0D,YAAYv+D,EAAEkoE,kBAAkBj2D,EAAE/H,EAAEq0D,WAAWr0D,EAAE2lE,UAAUzqE,IAAIpB,KAAKm5D,iBAAiBl2D,OAAO,WAAWjD,KAAKyrE,kBAAkBzrE,KAAKm5D,iBAAiBn5D,KAAKqrE,mBAAmB,YAAYrrE,KAAKurE,mBAAmBvrE,KAAK8rE,iBAAiB9rE,KAAK8rE,eAAe,SAAS1qE,GAAG8E,EAAEuK,UAAUzQ,KAAKm5D,iBAAiBl2D,OAAO,SAASjD,KAAK8rE,kBAAkBnE,EAAEn1B,UAAU44B,gBAAgB,WAAWprE,KAAKu6D,SAAS50D,MAAMsO,MAAMjU,KAAK4oD,OAAO,KAAK5oD,KAAKu6D,SAAS50D,MAAMC,OAAO5F,KAAK2oD,QAAQ,KAAK,IAAIvnD,EAAEpB,KAAKqsD,iBAAiB,cAAcnmD,EAAE9E,GAAGpF,EAAEqnE,qBAAqBrjE,KAAKgpD,aAAahpD,KAAKy4D,QAAQxkD,MAAMjU,KAAK4oD,OAAO1iD,EAAElG,KAAKy4D,QAAQ7yD,OAAO5F,KAAK2oD,QAAQziD,EAAElG,KAAKy4D,QAAQ9yD,MAAMsO,MAAMjU,KAAK4oD,OAAO,KAAK5oD,KAAKy4D,QAAQ9yD,MAAMC,OAAO5F,KAAK2oD,QAAQ,KAAK,IAAIziD,GAAGlG,KAAKgpD,YAAY9nB,MAAMh7B,EAAEA,GAAG,IAAIohB,EAAElmB,GAAGpF,EAAEqnE,qBAAqBrjE,KAAKopD,aAAappD,KAAKkrE,QAAQj3D,MAAMjU,KAAK4oD,OAAOthC,EAAEtnB,KAAKkrE,QAAQtlE,OAAO5F,KAAK2oD,QAAQrhC,EAAEtnB,KAAKkrE,QAAQvlE,MAAMsO,MAAMjU,KAAK4oD,OAAO,KAAK5oD,KAAKkrE,QAAQvlE,MAAMC,OAAO5F,KAAK2oD,QAAQ,KAAK,IAAIrhC,GAAGtnB,KAAKopD,YAAYloB,MAAM5Z,EAAEA,IAAIqgD,EAAEn1B,UAAUzR,QAAQ,WAAW/gC,KAAKgpD,YAAYsB,UAAUtqD,KAAKopD,YAAYkB,UAAU,IAAI,IAAIlpD,EAAEpB,KAAKwpE,SAAS/8D,OAAO,EAAErL,GAAG,EAAEA,IAAI,CAAC,IAAI8E,EAAElG,KAAKwpE,SAAShlB,MAAMt+C,EAAEwjE,OAAO3oC,SAAS76B,EAAEwjE,OAAO3oC,UAAU/gC,KAAK+rE,uBAAuB/vE,EAAEo9D,YAAYn2D,OAAO,WAAWjD,KAAKyrE,kBAAkBzvE,EAAEo9D,YAAYp5D,KAAKqrE,mBAAmB,YAAYrrE,KAAKurE,mBAAmBvvE,EAAEo9D,YAAYn2D,OAAO,SAASjD,KAAK8rE,gBAAgB9rE,KAAK8rE,eAAe,KAAK,SAAS1qE,EAAE8E,GAAG,KAAKA,EAAE8lE,iBAAiB5qE,EAAE8E,EAAE+lE,YAAY/lE,EAAEyiB,YAAYziB,EAAE+lE,YAAtE,CAAmFjsE,KAAKyoE,UAAU,IAAInhD,EAAE,SAASlmB,GAAG,IAAI,IAAI8E,KAAK9E,EAAE,iBAAiBA,EAAE8E,KAAK9E,EAAE8E,GAAG,OAAOohB,EAAEtnB,KAAKmzD,SAAS7rC,EAAEtnB,KAAKs0D,UAAUhtC,EAAEtnB,OAAO2nE,EAAEn1B,UAAU24B,qBAAqB,SAAS/pE,GAAG,IAAI8E,EAAElK,EAAEonE,eAAe,OAAOl9D,EAAEP,MAAMk/B,SAAS,WAAW3+B,EAAEP,MAAMynB,IAAIhsB,EAAEuE,MAAMynB,IAAIlnB,EAAEP,MAAMyK,KAAKhP,EAAEuE,MAAMyK,KAC9u+BlK,EAAE+N,MAAMjU,KAAK4oD,OAAO1iD,EAAEN,OAAO5F,KAAK2oD,QAAQziD,EAAEP,MAAMsO,MAAMjU,KAAK4oD,OAAO,KAAK1iD,EAAEP,MAAMC,OAAO5F,KAAK2oD,QAAQ,KAAKziD,GAAGyhE,EAAEn1B,UAAU84B,yBAAyB,WAAW,OAAOtrE,KAAKy4D,SAASkP,EAAEn1B,UAAU05B,WAAW,WAAW,IAAI9qE,EAAEpB,KAAK+sD,YAAY7mD,EAAE9E,EAAEqL,OAAO,EAAEzM,KAAKmsE,QAAQ,GAAGnsE,KAAKqrD,WAAW,GAAG,IAAI,IAAI/jC,EAAEtnB,KAAKqsD,iBAAiB,oBAAoB,EAAEp+C,EAAEjO,KAAKqsD,iBAAiB,eAAe,GAAGplC,EAAE5qB,KAAK2iE,KAAK94D,EAAE,GAAGuhC,EAAEznC,KAAK4iC,UAAU,UAAU2P,EAAEvyC,KAAKgtD,aAAa7jD,EAAE,EAAEA,EAAEjD,EAAEiD,IAAI,GAAGopC,EAAEppC,GAAG,CAAC,IAAI07C,EAAEzjD,EAAE+H,EAAE,GAAG4nC,EAAE/wC,KAAKk1D,YAAY8G,aAAa,QAAQnX,GAAG,IAAI9T,EAAE,GAAGtJ,EAAEsJ,EAAEtJ,EAAEt+B,EAAEs+B,EAAEh7B,YAAY,CAAC,IAAuCob,EAAE,GAAnC1e,EAAE,EAAE8d,GAAG9d,EAAE,GAAG,EAAE9M,KAAK2iE,MAAM71D,EAAE,GAAG,KAAU,EAAEjD,GAAG6qC,EAAE/0C,EAAEmmE,SAASt6C,EAAEP,EAAErZ,GAAGjO,KAAKmsE,QAAQr/C,KAAKikB,GAAG/wC,KAAKqrD,WAAWxG,GAAG9T,IAAI42B,EAAEn1B,UAAUya,UAAU,WAAW,OAAOjtD,KAAKmsE,SAASxE,EAAEn1B,UAAU45B,uBAAuB,SAAShrE,GAAG,IAAI,IAAI8E,GAAG,EAAEohB,EAAEtnB,KAAK+sD,YAAY9+C,EAAE,EAAEA,EAAEqZ,EAAE7a,OAAOwB,IAAI,GAAGqZ,EAAErZ,IAAI7M,EAAE,CAAC8E,EAAE+H,EAAE,MAAM,OAAO,GAAG/H,EAAE,KAAK,CAACgb,KAAK9f,EAAE2oC,OAAO7jC,EAAEmwB,QAAQr2B,KAAKgtD,aAAa9mD,EAAE,GAAGumC,MAAMzsC,KAAKqrD,WAAWjqD,GAAGmqD,KAAK,EAAEvrD,KAAKk1D,YAAYoJ,cAAcl9D,KAAKumE,EAAEn1B,UAAU65B,qBAAqB,WAAW,IAAIjrE,EAAEpB,KAAKkG,EAAElG,KAAKssE,QAAQpmE,IAAIlG,KAAKssE,QAAQpmE,EAAEE,SAASkiB,cAAc,SAASpiB,EAAElE,KAAK,OAAOkE,EAAEP,MAAM80B,QAAQ,OAAOv0B,EAAEpE,UAAU,iBAAiB9B,KAAKu6D,SAAS9xC,YAAYviB,IAAI,IAAIohB,EAAEtnB,KAAK8pD,iBAAiB,cAAc,QAAQ,OAAO77C,EAAEjO,KAAKg3D,UAAU/vC,EAAE,CAACmG,IAAInf,EAAE+Y,EAAE/Y,EAAE8iC,EAAE,GAAG,KAAK3gC,KAAKnC,EAAEjS,EAAE,EAAE,KAAKy+B,QAAQnT,GAAGphB,EAAE67B,KAAK,IAAI77B,EAAElH,MAAMgB,KAAK2oE,YAAY3sE,EAAE6rC,OAAO3hC,EAAEP,MAAMshB,GAAG/gB,EAAEqmE,SAAS,WAAW,OAAOnrE,EAAEorE,WAAWtmE,EAAElH,SAAS2oE,EAAEn1B,UAAUs3B,qBAAqB,WAAW,IAAI1oE,EAAE,CAACy0D,WAAU,EAAG9B,WAAU,EAAGiB,SAAQ,EAAGvB,WAAW,KAAKC,WAAW,KAAKL,SAAS,KAAKE,SAAS,KAAKyC,cAAc,KAAKK,SAAS,KAAKC,SAAS,KAAKF,kBAAkB,KAAKc,oBAAmB,EAAGhD,oBAAoB,KAAKG,eAAe,KAAKD,UAAU,KAAKmO,GAAG,EAAEC,GAAG,EAAE9N,aAAa,KAAKK,cAAc,KAAK0X,KAAK,IAAIpf,EAAEz6B,QAAQkmC,oBAAoB,SAAS13D,EAAE8E,EAAEohB,GAAGlmB,EAAE+D,eAAe/D,EAAE+D,kBAAkB/D,EAAE8gE,aAAY,EAAG9gE,EAAE4gE,cAAa,GAAI,IAAI/zD,EAAEjS,EAAEw8D,QAAQtyD,EAAEuyD,SAASnxC,EAAEi7C,GAAGt0D,EAAEjS,EAAEsrB,EAAEk7C,GAAGv0D,EAAE+Y,EAAEM,EAAEmsC,WAAWz3D,EAAEs3D,UAAUlyD,EAAEkmB,GAAGA,EAAEosC,WAAW13D,EAAEw3D,UAAUpyD,EAAEkmB,GAAGA,EAAE4vC,oBAAmB,EAAG5vC,EAAEmlD,KAAKC,SAAS3rC,QAAQ,WAAW,IAAI3/B,EAAEpB,KAAK,IAAIoB,EAAEy0D,WAAWz0D,EAAE2yD,aAAa3yD,EAAEy0D,WAAU,EAAGz0D,EAAEqyD,WAAW,KAAKryD,EAAEsyD,WAAW,MAAMtyD,EAAE2yD,UAAU,CAAC3yD,EAAE2yD,WAAU,EAAG3yD,EAAEurE,aAAa,KAAKvrE,EAAEgzD,UAAU,KAAK,IAAI,IAAIluD,EAAE,EAAEA,EAAEohB,EAAEqtC,MAAMloD,OAAOvG,WAAWohB,EAAEqtC,MAAMzuD,GAAG0mE,qBAAqBtlD,EAAEqtC,MAAMzuD,GAAGmvD,eAAej0D,EAAEqrE,KAAKI,YAAY3mE,EAAElG,KAAK4iC,UAAU,oBAAoBtb,EAAEtnB,KAAK,IAAI,IAAIiO,KAAK/H,EAAEA,EAAE2mB,eAAe5e,IAAIjO,KAAKm5D,iBAAiBn5D,KAAKqrE,mBAAmBp9D,EAAE,SAAS/H,GAAG,OAAO,SAAS+H,GAAG/H,EAAE+H,EAAEqZ,EAAElmB,IAArC,CAA0C8E,EAAE+H,KAAS/H,EAAEmzD,0BAAyDr5D,KAAKm5D,iBAAiB/yD,SAAS,WAAxD,SAASF,GAAG9E,EAAE2/B,cAAyD4mC,EAAEn1B,UAAU2jB,cAAc,SAAS/0D,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,GAAG,IAAI07C,EAAE7kD,KAAKgpD,YAAYvhB,GAAGzrC,EAAEk6D,WAAWrR,EAAEyE,UAAUjtD,KAAK8D,IAAI+F,EAAEqsC,GAAGvyC,KAAKmzD,QAAQpK,cAAc/hC,EAAE3qB,KAAKC,IAAI4J,EAAEqsC,GAAGvyC,KAAKmzD,QAAQpK,cAAchY,GAAGtJ,GAAGzrC,EAAEi6D,UAAUpR,EAAEyE,UAAUtpD,KAAKmzD,QAAQpK,cAAc/sD,EAAEK,KAAK8D,IAAI8N,EAAE9E,GAAGnJ,KAAKmzD,QAAQpK,cAAcjY,EAAEz0C,KAAKC,IAAI2R,EAAE9E,IAAI/H,GAAGpF,EAAEk6D,WAAW5uC,GAAGphB,IAAI2+C,EAAE4H,UAAU,yBAAyB5H,EAAEioB,SAASzwE,KAAK8D,IAAI+F,EAAEohB,GAAGtnB,KAAKmzD,QAAQpK,cAAc/hC,EAAE3qB,KAAKC,IAAIgrB,EAAEphB,GAAGlG,KAAKmzD,QAAQpK,cAAchY,IAAI3vC,GAAGpF,EAAEi6D,UAAUhvC,GAAGhZ,IAAI42C,EAAE4H,UAAU,yBAAyB5H,EAAEioB,SAAS9sE,KAAKmzD,QAAQpK,cAAc/sD,EAAEK,KAAK8D,IAAI8N,EAAEgZ,GAAGjnB,KAAKmzD,QAAQpK,cAAcjY,EAAEz0C,KAAKC,IAAI2qB,EAAEhZ,MAAM05D,EAAEn1B,UAAUukB,eAAe,WAAW/2D,KAAK+sE,qBAAqB,KAAK/sE,KAAKgpD,YAAYM,UAAU,EAAE,EAAEtpD,KAAK4oD,OAAO5oD,KAAK2oD,UAAUgf,EAAEn1B,UAAUykB,SAAS,SAAS71D,EAAE8E,GAAGlG,KAAK+sE,qBAAqB,KAAK,IAAIzlD,EAAEtnB,KAAKy0D,aAAarzD,GAAG6M,EAAEjO,KAAKy0D,aAAavuD,GAAGlG,KAAKgtE,cAAc1lD,EAAErZ,IAAI05D,EAAEn1B,UAAUw6B,cAAc,SAAS5rE,EAAE8E,GAAG,IAAIohB,EAAEtnB,KAAKiO,EAAEjO,KAAKg0D,aAAa/sC,EAAE,CAAC7lB,EAAE8E,GAAGuhC,EAAEznC,KAAKu2D,kBAAkB,gBAAgBv2D,KAAKitE,eAAeh/D,EAAEgZ,EAAE,KAAK,MAAK,WAAWwgB,GAAGA,EAAE6K,KAAKhrB,EAAElmB,EAAE8E,EAAEohB,EAAEywC,mBAAkB4P,EAAEn1B,UAAU2kB,SAAS,SAAS/1D,EAAE8E,GAAG,IAAIohB,EAAEtnB,KAAKA,KAAK+sE,qBAAqB,KAAK,IAAI,IAAI9+D,EAAEjO,KAAK+3D,cAAc9wC,EAAE,GAAGwgB,EAAE,EAAEA,EAAEznC,KAAK20D,MAAMloD,OAAOg7B,IAAI,CAAC,IAAI8K,EAAEvyC,KAAK80D,aAAa1zD,EAAEqmC,GAAGod,EAAE7kD,KAAK80D,aAAa5uD,EAAEuhC,GAAGxgB,EAAE6F,KAAK,CAAC+3B,EAAEtS,IAAI,IAAIxB,EAAE/wC,KAAKu2D,kBAAkB,gBAAgBv2D,KAAKitE,eAAe,KAAK,KAAKh/D,EAAEgZ,GAAE,WAAW,GAAG8pB,EAAE,CAAC,IAAI3vC,EAAEkmB,EAAE0sC,aAAa9tD,EAAEiD,EAAE/H,EAAE,GAAG6M,EAAE/H,EAAE,GAAG+gB,EAAE/gB,EAAE,GAAG6qC,EAAEuB,KAAKhrB,EAAErZ,EAAEgZ,EAAEK,EAAEywC,oBAAmB4P,EAAEuF,sBAAsB,SAAS9rE,EAAE8E,GAAG,OAAO,EAAE7J,KAAK2qD,IAAI,KAAK5lD,KAAK,EAAE/E,KAAK2qD,IAAI,KAAK9gD,KAAKyhE,EAAEn1B,UAAU+lB,UAAU,WAAW,IAAIn3D,EAAEpB,KAAKkG,EAAElG,KAAKkqE,SAAS,KAAK5iD,EAAEtnB,KAAKkqE,SAAS,KAAKj8D,EAAE/H,GAAGohB,EAAE,GAAGtnB,KAAKmtE,iBAAiBl/D,EAAE,CAAC,IAAIgZ,EAAEjnB,KAAKu0D,gBAAgB9sB,EAAEt+B,EAAE8d,EAAE,GAAGsrB,EAAE9K,EAAE,GAAGod,EAAEpd,EAAE,GAAGsJ,EAAE/wC,KAAK8pD,iBAAiB,iBAAiB9E,EAAEhlD,KAAKu2D,kBAAkB,gBAAgB,IAAIxlB,EAAE,OAAO/wC,KAAKu1D,YAAY,KAAKv1D,KAAK20D,MAAM3zD,SAAQ,SAASI,GAAGA,EAAE2tB,mBAAmB3tB,EAAE2tB,cAAa/uB,KAAKy1D,kBAAkBzQ,GAAGA,EAAE1S,KAAKtyC,KAAKuyC,EAAEsS,EAAE7kD,KAAK+3D,gBAAgB,IAAIlwC,EAAE,KAAKF,EAAE,KAAKxD,EAAE,KAAKghC,EAAE,KAAKj/C,IAAI2hB,EAAE7nB,KAAKg0D,aAAarsC,EAAE,CAAC4qB,EAAEsS,IAAIv9B,IAAInD,EAAEnkB,KAAK+3D,cAAc5S,EAAEnlD,KAAKwqE,iBAAiBxqE,KAAKitE,eAAeplD,EAAEF,EAAExD,EAAEghC,GAAE,WAAW/jD,EAAEm0D,YAAY,KAAKn0D,EAAEuzD,MAAM3zD,SAAQ,SAASI,GAAGA,EAAE2tB,mBAAmB3tB,EAAE2tB,cAAai2B,GAAGA,EAAE1S,KAAKlxC,EAAEmxC,EAAEsS,EAAEzjD,EAAE22D,oBAAmB4P,EAAEn1B,UAAUy6B,eAAe,SAAS7rE,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,GAAG,IAAIwgB,EAAE8K,EAAEppC,EAAEnJ,KAAK6kD,EAAE7kD,KAAK8pD,iBAAiB,iBAAiB6d,EAAEO,gBAAgB,EAAEn3B,EAAE,GAAGiU,EAAE,GAAG,GAAG,OAAO5jD,GAAG,OAAO8E,EAAE,IAAIuhC,EAAE,EAAEA,GAAGod,EAAEpd,IAAI8K,EAAEo1B,EAAEuF,sBAAsBzlC,EAAEod,GAAG9T,EAAEtJ,EAAE,GAAG,CAACrmC,EAAE,IAAI,EAAEmxC,GAAGA,EAAErsC,EAAE,GAAG9E,EAAE,IAAI,EAAEmxC,GAAGA,EAAErsC,EAAE,IAAI,GAAG,OAAOohB,GAAG,OAAOrZ,EAAE,IAAIw5B,EAAE,EAAEA,GAAGod,EAAEpd,IAAI,CAAC8K,EAAEo1B,EAAEuF,sBAAsBzlC,EAAEod,GAAG,IAAI,IAAIh9B,EAAE,GAAGF,EAAE,EAAEA,EAAE3nB,KAAK20D,MAAMloD,OAAOkb,IAAIE,EAAEiF,KAAK,CAACxF,EAAEK,GAAG,IAAI,EAAE4qB,GAAGA,EAAEtkC,EAAE0Z,GAAG,GAAGL,EAAEK,GAAG,IAAI,EAAE4qB,GAAGA,EAAEtkC,EAAE0Z,GAAG,KAAKq9B,EAAEvd,EAAE,GAAG5f,EAAE7rB,EAAE6nE,kBAAiB,SAASziE,GAAG,GAAG4jD,EAAEv4C,OAAO,IAAI,IAAIvG,EAAE,EAAEA,EAAEiD,EAAEwrD,MAAMloD,OAAOvG,IAAI,CAAC,IAAIohB,EAAE09B,EAAE5jD,GAAG8E,GAAGiD,EAAEwrD,MAAMzuD,GAAG6oB,WAAW,CAACzH,EAAE,GAAGA,EAAE,IAAIypB,EAAEtkC,SAAStD,EAAEosD,YAAYxkB,EAAE3vC,IAAI+H,EAAEssD,eAAc5Q,EAAE8iB,EAAEQ,mBAAmBtjB,EAAE59B,IAAI0gD,EAAEn1B,UAAUwkB,QAAQ,WAAW,OAAOh3D,KAAKs0D,SAASxL,MAAM6e,EAAEn1B,UAAU46B,iBAAiB,SAAShsE,GAAG,GAAGA,EAAEisE,SAASjsE,EAAEksE,QAAQ,MAAM,CAAClsE,EAAEisE,QAAQjsE,EAAEksE,SAAS,IAAIpnE,EAAElK,EAAEw8D,QAAQx4D,KAAKqrE,oBAAoB,MAAM,CAACrvE,EAAEs7D,MAAMl2D,GAAG8E,EAAElK,EAAEA,EAAEu7D,MAAMn2D,GAAG8E,EAAE8gB,IAAI2gD,EAAEn1B,UAAU+6B,eAAe,SAASnsE,GAAG,IAAI,IAAI8E,EAAE,IAAIohB,GAAG,EAAErZ,EAAEjO,KAAKmzD,QAAQz9C,OAAOuR,EAAE,EAAEA,EAAEhZ,EAAExB,OAAOwa,IAAI,IAAI,IAAIwgB,EAAEx5B,EAAEgZ,GAAGsrB,EAAE9K,EAAEh7B,OAAOtD,EAAE,EAAEA,EAAEopC,EAAEppC,IAAI,CAAC,IAAI07C,EAAEpd,EAAEt+B,GAAG,GAAGnN,EAAEymE,aAAa5d,GAAE,GAAI,CAAC,IAAI9T,EAAE10C,KAAKC,IAAIuoD,EAAEsD,QAAQ/mD,GAAG2vC,EAAE7qC,IAAIA,EAAE6qC,EAAEzpB,EAAEu9B,EAAEl4B,MAAM,OAAOrF,GAAGqgD,EAAEn1B,UAAUg7B,iBAAiB,SAASpsE,EAAE8E,GAAG,IAAI,IAAIohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE07C,EAAE9T,EAAE,IAAIiU,EAAEhlD,KAAKmzD,QAAQz9C,OAAOjJ,OAAO,EAAEu4C,GAAG,IAAIA,EAAE,IAAI,IAAIn9B,EAAE7nB,KAAKmzD,QAAQz9C,OAAOsvC,GAAGr9B,EAAE,EAAEA,EAAEE,EAAEpb,SAASkb,EAAE8f,EAAE5f,EAAEF,GAAG3rB,EAAEymE,aAAah7B,KAAkCngB,GAA7BrZ,EAAEw5B,EAAE0gB,QAAQ/mD,GAAqB6M,GAAnBgZ,EAAEwgB,EAAE2gB,QAAQliD,GAAW+gB,GAAG8pB,IAAIA,EAAEzpB,EAAEirB,EAAE9K,EAAEt+B,EAAE67C,EAAEH,EAAEpd,EAAE9a,KAAM,MAAM,CAACsI,IAAI4vB,EAAE4oB,WAAWztE,KAAKmzD,QAAQ/H,SAASjiD,GAAGwtD,MAAMpkB,IAAIo1B,EAAEn1B,UAAUk7B,iBAAiB,SAAStsE,EAAE8E,GAAG,IAAI,IAAIohB,EAAErZ,EAAEgZ,EAAEjnB,KAAKutE,eAAensE,GAAGqmC,EAAE,EAAEA,EAAEznC,KAAKmzD,QAAQz9C,OAAOjJ,SAASg7B,EAAE,CAAC,IAA+Bt+B,EAAE8d,EAA3BjnB,KAAK2tE,iBAAiBlmC,GAASod,EAAE7kD,KAAKmzD,QAAQz9C,OAAO+xB,GAAG,KAAKt+B,GAAG07C,EAAEp4C,QAAQ,CAAC,IAAIskC,EAAE8T,EAAE17C,GAAG,GAAGnN,EAAEymE,aAAa1xB,GAAG,CAAC,IAAIiU,EAAEjU,EAAEqX,QAAQ,GAAGhnD,EAAE2vC,EAAEoX,SAASh/C,EAAE,EAAE07C,EAAEp4C,OAAO,CAAC,IAAIob,EAAEg9B,EAAE17C,EAAE,GAAMnN,EAAEymE,aAAa56C,KAAQF,EAAEE,EAAEsgC,QAAQpX,EAAEoX,SAAa,IAAyBnD,IAAf5jD,EAAE2vC,EAAEoX,SAASxgC,GAAQE,EAAEugC,QAAQrX,EAAEqX,eAAgB,GAAGhnD,EAAE2vC,EAAEoX,SAASh/C,EAAE,EAAE,CAAC,IAAuCwe,EAAnCw9B,EAAEN,EAAE17C,EAAE,GAAMnN,EAAEymE,aAAatd,KAAQx9B,EAAEopB,EAAEoX,QAAQhD,EAAEgD,SAAa,IAAyBnD,IAAfjU,EAAEoX,QAAQ/mD,GAAGumB,GAAQw9B,EAAEiD,QAAQrX,EAAEqX,WAAY,IAAI3gB,GAAGud,EAAE9+C,KAAKohB,EAAEypB,EAAE9iC,EAAEw5B,KAAK,MAAM,CAACxS,IAAIhO,EAAEwmD,WAAWztE,KAAKmzD,QAAQ/H,SAASn9C,GAAG0oD,MAAMrvC,IAAIqgD,EAAEn1B,UAAUg5B,WAAW,SAASpqE,GAAG,IAAI8E,EAAElG,KAAKmzD,QAAQz9C,OAAO,QAAG,IAASxP,GAAG,OAAOA,EAAE,CAAC,IAAIohB,EAAEtnB,KAAKotE,iBAAiBhsE,GAAG6M,EAAEqZ,EAAE,GAAGL,EAAEK,EAAE,GAA2CirB,GAAE,EAAG,GAA3CvyC,KAAK4iC,UAAU,yBAAmC5iC,KAAK4tE,iBAAiB,CAAC,IAAIzkE,EAAEA,EAAEnJ,KAAK8pD,iBAAiB,gBAAgB9pD,KAAK0tE,iBAAiBz/D,EAAEgZ,GAAGjnB,KAAKwtE,iBAAiBv/D,EAAEgZ,GAAGsrB,EAAEvyC,KAAKizD,aAAa9pD,EAAE8rB,IAAI9rB,EAAEskE,gBAAgB,CAAC,IAAI5oB,EAAE7kD,KAAKutE,eAAet/D,GAAGskC,EAAEvyC,KAAKizD,aAAapO,GAAG,IAAI9T,EAAE/wC,KAAKu2D,kBAAkB,qBAAqBxlB,GAAGwB,GAAGxB,EAAEuB,KAAKtyC,KAAKoB,EAAEpB,KAAK2zD,OAAO3zD,KAAKy2D,WAAWz2D,KAAK6tE,SAAS7tE,KAAK8tE,iBAAiBnG,EAAEn1B,UAAUm7B,iBAAiB,SAASvsE,GAAG,GAAGpB,KAAKkpE,aAAa9nE,GAAG,OAAOpB,KAAKkpE,aAAa9nE,GAAG,GAAG,IAAI,IAAI8E,EAAE,EAAEA,EAAElG,KAAKkpE,aAAaz8D,OAAOvG,IAAI,QAAG,IAASlG,KAAKkpE,aAAahjE,GAAG,OAAOlG,KAAKkpE,aAAahjE,GAAG,GAAG,OAAO,GAAGyhE,EAAEn1B,UAAUu7B,kBAAkB,SAAS3sE,QAAG,IAASpB,KAAKguE,YAAYhuE,KAAKguE,UAAU,QAAG,IAAShuE,KAAKiuE,YAAYjuE,KAAKiuE,UAAU,GAAG,IAAI/nE,EAAElG,KAAKguE,UAAU1mD,EAAElmB,EAAE,EAAE8E,EAAE,GAAGA,EAAE,GAAGohB,GAAG,EAActnB,KAAKguE,WAAWhuE,KAAKkuE,iBAAiB,OAA1D,CAA8D,IAAIjgE,IAAIjO,KAAKiuE,UAAUhnD,EAAEjnB,KAA4EhE,EAAE6nE,kBAAiB,SAAS39D,GAAG+gB,EAAEgnD,WAAWhgE,IAAIgZ,EAAE+mD,WAAW5sE,EAAE,IAAI6lB,EAAE+mD,UAAU/mD,EAAEkmD,iBAAiBlmD,EAAEinD,iBAAiBjnD,EAAE+mD,UAAU,OAAM1mD,EAAE,IAA9M,WAAW,IAAIL,EAAE+mD,WAAW5sE,EAAE,IAAI6lB,EAAE+mD,UAAU,EAAE/mD,EAAEkmD,uBAAmKxF,EAAEn1B,UAAU07B,iBAAiB,SAAS9sE,GAAGpB,KAAK42D,eAAe,SAAS,CAACuX,aAAa,IAAInuE,KAAK6tE,cAAS,EAAO7tE,KAAK6tE,SAASO,WAAW,IAAIpuE,KAAK2zD,YAAO,EAAO3zD,KAAK2zD,OAAO0a,eAAeruE,KAAKy2D,aAAa,IAAIvwD,EAAEohB,EAAEtnB,KAAKgpD,YAAY,GAAGhpD,KAAK4iC,UAAU,uBAAuB,CAACtb,EAAEgiC,UAAU,EAAE,EAAEtpD,KAAK4oD,OAAO5oD,KAAK2oD,SAAS,IAAI16C,EAAE,EAAEjO,KAAKqsD,iBAAiB,kCAAkCplC,EAAEjrB,EAAEwwD,OAAOxsD,KAAK4iC,UAAU,mCAAmC,GAAG30B,EAAE,CAAC,QAAG,IAAS7M,EAAE,YAAYpB,KAAK+tE,kBAAkB,GAAG9/D,GAAG7M,EAAEkmB,EAAEmlC,UAAU,QAAQxlC,EAAEwgB,EAAE,IAAIxgB,EAAEk+B,EAAE,IAAIl+B,EAAEM,EAAE,IAAItZ,EAAE,IAAIqZ,EAAEwlD,SAAS,EAAE,EAAE9sE,KAAK4oD,OAAO5oD,KAAK2oD,SAAS3oD,KAAKs0D,SAAS7K,iBAAiBzpD,KAAK8tE,cAAcxmD,QAAQ,GAAGtnB,KAAK6oE,oBAAoB,EAAE,CAAC,IAAIphC,EAAE,EAAE8K,EAAEvyC,KAAKmqE,MAAM,UAAU,IAAIjkE,EAAE,EAAEA,EAAEqsC,EAAE9lC,OAAOvG,IAAI,CAAC,IAAIiD,EAAEnJ,KAAKqsD,iBAAiB,sBAAsB9Z,EAAErsC,IAAIiD,EAAEs+B,IAAIA,EAAEt+B,GAAG,IAAI07C,EAAE7kD,KAAK6oE,mBAAmBvhD,EAAEgiC,UAAUzE,EAAEpd,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEznC,KAAK2oD,SAAS,GAAG3oD,KAAKy2D,WAAWhqD,OAAO,EAAE,CAAC,IAAIskC,EAAE/wC,KAAKy2D,WAAW,GAAGtO,QAAQ,IAAI7gC,EAAE+T,OAAOn1B,EAAE,EAAEA,EAAElG,KAAKy2D,WAAWhqD,OAAOvG,IAAI,CAAC,IAAI8+C,EAAEhlD,KAAKy2D,WAAWvwD,GAAG,IAAI+pC,MAAM+U,EAAEoD,SAAS,CAAC,IAAIvgC,EAAE7nB,KAAKqsD,iBAAiB,sBAAsBrH,EAAE9jC,MAAMyG,EAAE3nB,KAAKu2D,kBAAkB,6BAA6BvR,EAAE9jC,MAAMiD,EAAEnkB,KAAKs0D,SAASjnD,OAAO23C,EAAE9jC,MAAMyG,IAAIA,EAAE3rB,EAAEswD,QAAQC,SAASjlC,EAAEkjC,UAAUxqD,KAAKqsD,iBAAiB,cAAcrH,EAAE9jC,MAAMoG,EAAEijC,YAAYpmC,EAAEmD,EAAEmlC,UAAUtoC,EAAEwD,EAAE2qB,KAAKtyC,KAAKA,KAAKglD,EAAE9jC,KAAKoG,EAAEypB,EAAEiU,EAAEoD,QAAQjkC,EAAE0D,EAAEm9B,EAAEr4B,MAAMrF,EAAEgjC,UAAUtqD,KAAK6oE,mBAAmB93B,IAAI42B,EAAEn1B,UAAUygB,aAAa,SAAS7xD,EAAE8E,EAAEohB,GAAGtnB,KAAKy2D,WAAW,GAAG,IAAIxoD,GAAE,EAAG,IAAG,IAAK7M,GAAGA,GAAG,EAAE,CAACA,GAAGpB,KAAK6tE,WAAW5/D,GAAE,GAAIjO,KAAK6tE,SAASzsE,EAAE,IAAI,IAAI6lB,EAAE,EAAEA,EAAEjnB,KAAKmzD,QAAQz9C,OAAOjJ,SAASwa,EAAE,CAAC,IAAIwgB,EAAEznC,KAAKmzD,QAAQz9C,OAAOuR,GAAGsrB,EAAEnxC,EAAEpB,KAAK2tE,iBAAiB1mD,GAAG,GAAGsrB,GAAG,GAAGA,EAAE9K,EAAEh7B,QAAQg7B,EAAE8K,GAAG5lB,KAAKvrB,EAAc,QAAP+H,EAAEs+B,EAAE8K,IAAY2V,MAAMloD,KAAKy2D,WAAW3pC,KAAK3jB,QAAQ,IAAI,IAAI07C,EAAE,EAAEA,EAAEpd,EAAEh7B,SAASo4C,EAAE,CAAC,IAAI17C,EAAO,IAAPA,EAAEs+B,EAAEod,IAAQl4B,KAAKvrB,EAAE,CAAC,OAAO+H,EAAE++C,MAAMloD,KAAKy2D,WAAW3pC,KAAK3jB,GAAG,cAAcnJ,KAAK6tE,UAAU,IAAI5/D,GAAE,GAAIjO,KAAK6tE,UAAU,EAAE,OAAO7tE,KAAKy2D,WAAWhqD,OAAOzM,KAAK2zD,OAAO3zD,KAAKy2D,WAAW,GAAGxO,KAAKjoD,KAAK2zD,QAAQ,OAAE,IAASztD,IAAIlG,KAAK8tE,gBAAgB5nE,IAAI+H,GAAE,GAAIjO,KAAK8tE,cAAc5nE,QAAG,IAASohB,IAAItnB,KAAKsuE,WAAWhnD,GAAGrZ,GAAGjO,KAAKkuE,sBAAiB,GAAQjgE,GAAG05D,EAAEn1B,UAAUq5B,UAAU,SAASzqE,GAAGpB,KAAKu2D,kBAAkB,wBAAwBv2D,KAAKu2D,kBAAkB,uBAAuBjkB,KAAKtyC,KAAKoB,GAAGpB,KAAK8pD,iBAAiB,2BAA2B9pD,KAAKsuE,YAAYtuE,KAAKmtE,kBAAkBxF,EAAEn1B,UAAU26B,eAAe,WAAcntE,KAAK42D,eAAe,WAAW,IAAI52D,KAAKsuE,YAAW,EAAGtuE,KAAKguE,UAAsBhuE,KAAK+tE,mBAAmB,IAAG/tE,KAAKgpD,YAAYM,UAAU,EAAE,EAAEtpD,KAAK4oD,OAAO5oD,KAAK2oD,SAAS3oD,KAAKguE,UAAU,EAAEhuE,KAAKy2D,WAAW,GAAGz2D,KAAK2zD,QAAQ,EAAE3zD,KAAK6tE,UAAU,EAAE7tE,KAAK8tE,cAAc,OAAMnG,EAAEn1B,UAAU0gB,aAAa,WAAW,IAAIlzD,KAAKy2D,YAAYz2D,KAAKy2D,WAAWhqD,OAAO,EAAE,OAAO,EAAE,IAAI,IAAIrL,EAAE,EAAEA,EAAEpB,KAAKmzD,QAAQz9C,OAAOjJ,OAAOrL,IAAI,IAAI,IAAI8E,EAAElG,KAAKmzD,QAAQz9C,OAAOtU,GAAGkmB,EAAE,EAAEA,EAAEphB,EAAEuG,OAAO6a,IAAI,GAAGphB,EAAEohB,GAAGtrB,GAAGgE,KAAKy2D,WAAW,GAAGz6D,EAAE,OAAOkK,EAAEohB,GAAGqF,IAAI,OAAO,GAAGg7C,EAAEn1B,UAAU4rB,mBAAmB,WAAW,OAAOp+D,KAAK8tE,eAAenG,EAAEn1B,UAAUo7B,eAAe,WAAW,OAAO5tE,KAAKsuE,YAAY3G,EAAEn1B,UAAU+7B,aAAa,SAASntE,GAAGpB,KAAKuqE,SAASvqE,KAAKwuE,UAAUptE,GAAGpB,KAAKyuE,6BAA6BzuE,KAAK0uE,YAAY/G,EAAEn1B,UAAUm8B,WAAW,WAAW,IAAIvtE,EAAEA,EAAEpB,KAAKu1D,YAAY,CAACv1D,KAAKu1D,YAAY,GAAGv1D,KAAKu1D,YAAY,IAAIv1D,KAAKu0D,gBAAgB,IAAIruD,EAAElG,KAAKqqE,oBAAoB,KAAK/iD,EAAEphB,EAAE,SAAFA,CAAY9E,EAAE,GAAGA,EAAE,GAAGpB,KAAKs0D,SAASxL,KAAKhY,EAAE5qC,EAAElG,MAAMA,KAAKmzD,QAAQ2H,UAAUxzC,IAAIqgD,EAAEn1B,UAAUo8B,iBAAiB,WAAW,OAAO5uE,KAAKmqE,MAAM,eAAenqE,KAAKmqE,MAAM,eAAenqE,KAAK8oE,WAAW9oE,KAAK8pD,iBAAiB,aAAaiE,EAAEn7B,QAAQg7B,EAAEh7B,QAAQ5yB,KAAK8pD,iBAAiB,cAAc4D,EAAE96B,QAAQ5yB,KAAK8pD,iBAAiB,aAAa3J,EAAEvtB,QAAQ26B,EAAE36B,SAAS+0C,EAAEn1B,UAAUk8B,SAAS,WAAW,IAAIttE,EAAE,IAAIujB,KAAK3kB,KAAKk8D,aAAa,IAAIl8D,KAAK4uE,oBAAoB5uE,KAAKmzD,QAAQkH,kBAAkBr6D,KAAK6uE,gBAAgB7uE,KAAKsoE,mBAAmBtoE,KAAKgpD,YAAYsB,UAAUtqD,KAAKopD,YAAYkB,WAAWtqD,KAAKgpD,YAAY3tB,OAAOr7B,KAAKopD,YAAY/tB,OAAOr7B,KAAKs0D,SAAS,IAAIzsC,EAAE+K,QAAQ5yB,KAAKA,KAAKkrE,QAAQlrE,KAAKopD,YAAYppD,KAAKmzD,SAASnzD,KAAKqsE,uBAAuBrsE,KAAK42D,eAAe,WAAW52D,KAAK0qE,cAAc,CAAC,MAAM,IAAI,IAAIxkE,EAAE,EAAEA,EAAElG,KAAK+qE,aAAa7kE,IAAI,CAAC,IAAIohB,EAAEtnB,KAAKk8D,aAAarV,cAAc7mD,KAAKuqE,SAASrkE,EAAElG,KAAKk1D,aAAal1D,KAAK2oE,YAAY,IAAIrhD,EAAEtnB,KAAKk8D,aAAapV,eAAex/B,EAAEtnB,KAAK2oE,YAAY3oE,KAAKk1D,cAAcl1D,KAAK0qE,cAAc59C,KAAKxF,GAAGtnB,KAAKy1D,aAAa,IAAIxnD,EAAE,IAAI0W,KAAK3kB,KAAK8uE,eAAe7gE,EAAE7M,GAAGumE,EAAEoH,eAAU,EAAOpH,EAAEqH,aAAa,SAAS5tE,EAAE8E,EAAEohB,EAAErZ,GAAG,IAAI,IAAIgZ,EAAE,KAAKwgB,EAAE,KAAK8K,EAAE,KAAKppC,GAAG,EAAE07C,EAAE,EAAEA,EAAEzjD,EAAEqL,SAASo4C,EAAE,CAAC,IAAI9T,EAAE3vC,EAAEyjD,GAAGG,EAAEjU,EAAEkX,UAAK,IAAS/hD,EAAE8+C,KAAK9+C,EAAE8+C,GAAG,GAAG,IAAIn9B,EAAEkpB,EAAEmX,KAAKjY,MAAMpoB,IAAI,OAAOA,EAAE,QAAQ5Z,EAAE4Z,EAAE,GAAI,SAAS3hB,GAAG,KAAKiD,GAAGjD,GAAG,IAAI,IAAIohB,EAAEphB,EAAEohB,EAAElmB,EAAEqL,SAAS6a,EAAE,GAAGirB,EAAE,MAAMtC,MAAM7uC,EAAEkmB,GAAG4gC,OAAO,OAAO9mD,EAAEkmB,GAAG4gC,KAAK,CAAC/+C,EAAEme,EAAEirB,EAAEnxC,EAAEkmB,GAAG,OAA5G,CAAoHu9B,GAAGh9B,EAAE4f,GAAG8K,GAAG,QAAQtkC,EAAEw5B,EAAEygB,MAAM3V,EAAE2V,KAAKzgB,EAAEygB,QAAQlD,EAAEvd,EAAEwgB,OAAO1V,EAAE0V,KAAKxgB,EAAEwgB,OAAOxgB,GAAG,OAAOx5B,EAAEw5B,EAAEygB,KAAK3V,GAAG,OAAOtkC,EAAEskC,EAAE2V,KAAK,GAAGzgB,EAAEsJ,EAAE,IAAIppB,EAAEzhB,EAAE8+C,GAAG/9B,GAAG+9B,IAAIr9B,GAAGE,EAAE3hB,EAAE8+C,GAAGr9B,GAAGV,EAAE+9B,EAAEjU,EAAEkrB,aAAat0C,EAAEA,EAAEL,EAAE,KAAKA,EAAE,GAAGK,GAAGA,EAAEL,EAAE,KAAKA,EAAE,GAAGK,KAAKggD,EAAEn1B,UAAUi4B,gBAAgB,SAASrpE,EAAE8E,GAAG,IAAIohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,EAAEppC,EAAE07C,EAAE,GAAG9T,EAAE,GAAGiU,EAAE,GAAGn9B,EAAE,GAAgB,IAAIP,EAAflmB,EAAEqL,OAAO,EAAU6a,GAAG,EAAEA,IAAI,GAAGtnB,KAAKgtD,aAAa1lC,EAAE,GAAG,CAAC,GAAGphB,EAAE,CAACiD,EAAE/H,EAAEkmB,GAAG,IAAInD,EAAEje,EAAE,GAAGi/C,EAAEj/C,EAAE,GAAG,IAAI+gB,EAAE,KAAKwgB,EAAE,KAAKx5B,EAAE,EAAEA,EAAE9E,EAAEsD,OAAOwB,IAAI9E,EAAE8E,GAAG,IAAIkW,GAAG,OAAO8C,IAAIA,EAAEhZ,GAAG9E,EAAE8E,GAAG,IAAIk3C,IAAI1d,EAAEx5B,GAAG,OAAOgZ,IAAIA,EAAE,GAAG,IAAI,IAAIm+B,EAAEn+B,EAAEi+B,GAAE,EAAGA,GAAGE,EAAE,GAAOF,EAAE,OAAO/7C,IAAbi8C,GAAkB,GAAG,OAAO3d,IAAIA,EAAEt+B,EAAEsD,OAAO,GAAG,IAAIm0C,EAAEnZ,EAAE,IAAIyd,GAAE,EAAGA,GAAGtE,EAAEz3C,EAAEsD,OAAO,GAAOy4C,EAAE,OAAO/7C,IAAby3C,GAAkB,GAAGwE,IAAIn+B,IAAIA,EAAEm+B,GAAGxE,IAAInZ,IAAIA,EAAEmZ,GAAGiE,EAAEv9B,EAAE,GAAG,CAACL,EAAEwgB,GAAGt+B,EAAEA,EAAEklB,MAAMpH,EAAEwgB,EAAE,QAAQt+B,EAAE/H,EAAEkmB,GAAGu9B,EAAEv9B,EAAE,GAAG,CAAC,EAAEne,EAAEsD,OAAO,GAAG,IAAIua,EAAEhnB,KAAKmqE,MAAM,UAAU7iD,GAAGtrB,EAAEgE,KAAKk8D,aAAazU,kBAAkBt+C,EAAEjD,EAAElG,KAAK8pD,iBAAiB,WAAW9iC,IAAII,EAAEpnB,KAAKk8D,aAAalU,eAAe7+C,EAAE6d,EAAE69B,EAAEv9B,EAAE,GAAG,IAAItnB,KAAK8pD,iBAAiB,uBAAsD,IAAS9E,EAA7CzS,EAAEvyC,KAAKk1D,YAAYoJ,cAAct3C,MAAmBg+B,EAAEzS,GAAG,IAAIo1B,EAAEqH,aAAa5nD,EAAE49B,EAAEzS,GAAGv2C,EAAEgE,KAAK8pD,iBAAiB,yBAAyBjiC,EAAEb,GAAGhrB,EAAE+0C,EAAEzpB,GAAGF,EAAE,MAAM,CAAC1R,OAAOq7B,EAAE45B,SAAS9iD,EAAEonD,YAAYpqB,IAAI8iB,EAAEn1B,UAAUijB,WAAW,WAAW,IAAIr0D,EAAE,IAAIujB,KAAKze,EAAElG,KAAKsoE,iBAAiBtoE,KAAKsoE,kBAAiB,EAAGtoE,KAAKmzD,QAAQ0J,oBAAoB78D,KAAKksE,aAAalsE,KAAKs9D,OAAOuJ,UAAU,GAAG7mE,KAAKqsD,iBAAiB,uBAAuB,IAAI/kC,EAAEtnB,KAAKyqE,gBAAgBzqE,KAAK0qE,cAAc1qE,KAAKu1D,aAAatnD,EAAEqZ,EAAE5R,OAAOuR,EAAEK,EAAEqjD,SAAS3qE,KAAKkpE,aAAa5hD,EAAE2nD,YAAYjvE,KAAKmpE,gBAAgB,GAAG,IAAI,IAAI1hC,EAAEznC,KAAKmqE,MAAM,UAAU53B,EAAE,EAAEppC,EAAE,EAAEA,EAAE8E,EAAExB,OAAOtD,IAAInJ,KAAKgtD,aAAa7jD,EAAE,KAAKnJ,KAAKmzD,QAAQgH,WAAW1yB,EAAEt+B,GAAG8E,EAAE9E,IAAInJ,KAAKopE,cAAcjgE,GAAGopC,KAAK,IAAQppC,EAAE,EAAEA,EAAEs+B,EAAEh7B,OAAOtD,IAAInJ,KAAKmpE,gBAAgB1hC,EAAEt+B,IAAIA,EAAE,GAAGnJ,KAAK4qE,oBAAoB3jD,GAAGjnB,KAAKmzD,QAAQ4H,SAAS/6D,KAAK20D,OAAO30D,KAAK2uE,aAAa3uE,KAAKmzD,QAAQ6H,WAAWh7D,KAAKkvE,aAAahpE,GAAGlG,KAAKoqE,gBAAgB,cAAc,CAAC,IAAIvlB,EAAE,IAAIlgC,KAAKpjB,QAAQC,IAAIxB,KAAKoqE,gBAAgB,cAAc,kBAAkBvlB,EAAEzjD,GAAG,QAAQumE,EAAEn1B,UAAU08B,aAAa,SAAS9tE,GAAGpB,KAAK42D,eAAe,cAAc52D,KAAKs0D,SAASjL,QAAQ,IAAInjD,EAAElG,KAAKu2D,kBAAkB,oBAAoBrwD,GAAGA,EAAEosC,KAAKtyC,KAAKA,KAAKopD,YAAYppD,KAAKmzD,QAAQpK,cAAc/oD,KAAKA,MAAM,IAAIsnB,EAAE,CAAC6nD,OAAOnvE,KAAKkrE,QAAQhhB,eAAelqD,KAAKopD,aAAappD,KAAK42D,eAAe,gBAAgBtvC,GAAGtnB,KAAKs0D,SAAS/K,SAASvpD,KAAK42D,eAAe,eAAetvC,GAAGtnB,KAAK6tE,UAAU,EAAE7tE,KAAKy4D,QAAQ2L,WAAW,MAAM9a,UAAU,EAAE,EAAEtpD,KAAK4oD,OAAO5oD,KAAK2oD,SAAS,IAAI16C,EAAEjO,KAAKu2D,kBAAkB,gBAAgB,GAAG,OAAOtoD,GAAGA,EAAEqkC,KAAKtyC,KAAKA,KAAKoB,GAAGA,EAAE,IAAIpB,KAAKovE,aAAY,EAAGpvE,KAAKuoE,UAAU97D,OAAO,GAAUzM,KAAKuoE,UAAU/jB,KAAMv9B,CAAEjnB,OAAQ2nE,EAAEn1B,UAAUq8B,cAAc,WAAW,IAAIztE,EAAE8E,EAAEohB,EAAE,IAAItnB,KAAK20D,MAAM,GAAGvzD,EAAE,EAAEA,EAAEpB,KAAKk1D,YAAYmJ,UAAUj9D,IAAI8E,EAAE,CAACi/C,EAAEnlD,MAAMhE,EAAE6rC,OAAO3hC,EAAElG,KAAKk1D,YAAYqJ,YAAYn9D,IAAIpB,KAAK20D,MAAMvzD,GAAG8E,EAAE,IAAI9E,EAAE,EAAEA,EAAEpB,KAAK20D,MAAMloD,OAAOrL,IAAI,GAAG,IAAIA,GAA8CkmB,GAA5CphB,EAAElG,KAAKqqE,oBAAoB,KAAKjpE,EAAE,IAAI,MAAU,iBAAiBpB,KAAK20D,MAAMvzD,GAAG2tB,WAAWzH,OAAO,CAAC,IAAIrZ,EAAEjO,KAAKw9D,YAAYxL,KAAK/jD,GAAGA,EAAEmpC,KAAK9vB,EAAErZ,EAAEmpC,GAAGroB,cAAc/uB,KAAK20D,MAAMvzD,GAAG2tB,WAAWzH,KAAKqgD,EAAEn1B,UAAU6rB,QAAQ,WAAW,OAAOr+D,KAAKk1D,YAAYmJ,WAAWsJ,EAAEn1B,UAAUgZ,wBAAwB,SAASpqD,GAAG,OAAOpB,KAAK20D,MAAM30D,KAAKk1D,YAAYoJ,cAAcl9D,KAAKumE,EAAEn1B,UAAUo4B,oBAAoB,SAASxpE,GAAG,IAAI,IAAI8E,EAAEohB,EAAErZ,EAAEgZ,EAAEwgB,EAAE8K,EAAE,SAASnxC,GAAG,OAAO6uC,MAAMmD,WAAWhyC,KAAK+H,EAAEnJ,KAAKk1D,YAAYmJ,UAAUxZ,EAAE,EAAEA,EAAE17C,EAAE07C,IAAI,CAAC,IAAI9T,EAAE/wC,KAAK20D,MAAM9P,GAAGG,EAAEhlD,KAAKk1D,YAAYC,WAAW,WAAWtQ,GAAGh9B,EAAE7nB,KAAKk1D,YAAYC,WAAW,cAActQ,GAAGl9B,EAAE3nB,KAAKk1D,YAAYC,WAAW,mBAAmBtQ,GAAG52C,EAAEjO,KAAKk1D,YAAYsJ,cAAc3Z,GAAG3+C,GAAE,EAAG+gB,EAAE,GAAG,IAAI9C,EAAEnkB,KAAKqsD,iBAAiB,aAAa,GAAG,OAAOloC,IAAIje,GAAE,EAAG+gB,EAAE9C,EAAEnkB,KAAKs0D,SAASxL,KAAK/X,GAAG,IAAI9iC,EAAExB,OAAOskC,EAAE6jB,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,IAAIzP,EAAEC,EAAEF,EAAE,IAAItE,GAAE,IAAK55B,EAAE,EAAEA,EAAE/Y,EAAExB,OAAOua,IAAI5lB,EAAEyrB,eAAe5e,EAAE+Y,MAAmB,QAAbm+B,EAAE/jD,EAAE6M,EAAE+Y,IAAI,MAAck+B,EAAE7oD,KAAK8D,IAAIglD,EAAED,IAAI,QAAQE,EAAEhkD,EAAE6M,EAAE+Y,IAAI,MAAM45B,EAAEvkD,KAAKqD,IAAI0lD,EAAExE,KAAK/4B,IAAIm9B,IAAIE,EAAE,IAAIA,EAAE,GAAGtE,EAAE,IAAIA,EAAE,IAAIsE,GAAG,MAAMA,EAAE,GAAGtE,IAAG,MAAOA,EAAE,GAAS,KAANt5B,EAAEs5B,EAAEsE,KAAU,IAAItE,EAAEt5B,EAAEjrB,KAAKC,IAAIskD,IAAIA,EAAE,EAAEt5B,EAAE,IAAI,IAAIF,EAAEw5B,EAAEr5B,EAAE29B,EAAEh/C,IAAI8+C,GAAG59B,EAAEw5B,EAAE35B,EAAEK,EAAEC,EAAE29B,KAAY39B,EAAE29B,EAAEj+B,EAAEK,GAAI,GAAG49B,GAAG,IAAI39B,EAAE,IAA9BH,EAAEw5B,EAAE35B,EAAEK,GAA6B,GAAGs5B,GAAG,IAAIx5B,EAAE,KAAK2pB,EAAE6jB,aAAa,CAACrtC,EAAEH,GAAG,GAAG2pB,EAAEhiB,WAAW,CAAC,IAAI+hB,EAAEyB,EAAExB,EAAEhiB,WAAW,IAAIgiB,EAAE6jB,aAAa,GAAG7jB,EAAEhiB,WAAW,GAAGm+B,EAAE3a,EAAExB,EAAEhiB,WAAW,IAAIgiB,EAAE6jB,aAAa,GAAG7jB,EAAEhiB,WAAW,GAAGgiB,EAAE2qB,mBAAmB,CAAC5qB,EAAEoc,QAAQnc,EAAE2qB,mBAAmB3qB,EAAE6jB,aAAa,IAAI1uD,EAAE,IAAG4qC,EAAEC,EAAE2qB,mBAAmB,OAAGxO,EAAEnc,EAAE2qB,mBAAmB,MAAW5qB,GAAG,GAAGoc,GAAG,IAAIlI,EAAE,CAAC,IAAIqI,EAAEpmC,GAAG,EAAEA,EAAE,GAAGqmC,GAAGrmC,EAAE,IAAI,EAAEA,EAAE,GAAG8pB,EAAE2qB,mBAAmB,GAAG1/D,EAAE2oE,iBAAiB7zB,EAAEoc,EAAEG,GAAGtc,EAAE2qB,mBAAmB,GAAG1/D,EAAE2oE,iBAAiB7zB,EAAEoc,EAAEI,QAAQhmC,EAAE4lC,EAAEpc,EAAEC,EAAE2qB,mBAAmB,GAAG5qB,EAAExpB,EAAEL,EAAE8pB,EAAE2qB,mBAAmB,GAAGxO,EAAE5lC,EAAEL,EAAE,GAAGU,EAAE,CAACopB,EAAEyhB,iBAAiB7qC,EAAE,IAA+C6lC,GAA3CD,EAAEvtD,KAAKqqE,oBAAoB,KAAKxlB,EAAE,IAAI,MAAS,UAAU9T,EAAE/P,MAAMwsB,EAAEzc,EAAE2qB,mBAAmB,GAAG3qB,EAAE2qB,mBAAmB,GAAG17D,KAAKs0D,SAASxL,KAAK/X,EAAEwc,EAAEvtD,MAAMynC,IAAIA,EAAEsJ,IAAI,QAAG,IAAStJ,EAAE,KAAK,8FAA8F,IAAQod,EAAE,EAAEA,EAAE17C,EAAE07C,IAAyB,KAAhB9T,EAAE/wC,KAAK20D,MAAM9P,IAAS2N,iBAAiB,CAAoDhF,GAA3CD,EAAEvtD,KAAKqqE,oBAAoB,KAAKxlB,EAAE,IAAI,MAAS,UAAvD,IAAI,IAAI0I,EAAyDpN,EAAE1Y,EAAEzG,MAAMysB,EAAEhmB,EAAEi0B,mBAAmB,GAAGj0B,EAAEi0B,mBAAmB,GAAGhO,EAAE3c,EAAE2qB,mBAAmB,GAAG3qB,EAAE2qB,mBAAmB,GAAG/N,EAAE,GAAGC,EAAE,EAAEA,EAAEzN,EAAE1zC,OAAOmhD,IAAI,CAAC,IAAIE,GAAG3N,EAAEyN,GAAG1I,EAAEzd,EAAEi0B,mBAAmB,IAAIjO,EAAEM,EAAEhd,EAAE2qB,mBAAmB,GAAG5N,EAAEJ,EAAEC,EAAE7gC,KAAKihC,GAAGhd,EAAE/P,MAAMwsB,EAAEzc,EAAE2qB,mBAAmB,GAAG3qB,EAAE2qB,mBAAmB,GAAG17D,KAAKs0D,SAASxL,KAAK/X,EAAEwc,EAAEvtD,KAAK2tD,KAAMga,EAAEn1B,UAAU68B,sBAAsB,SAASjuE,GAAG,IAAI8E,GAAE,EAAGohB,EAAElmB,EAAE6nB,QAAQ,KAAK3B,EAAE,GAAG,KAAKlmB,EAAEkmB,EAAE,IAAI,KAAKlmB,EAAEkmB,EAAE,IAAIlmB,EAAE6nB,QAAQ,MAAM,GAAGgnB,MAAMmD,WAAWhyC,IAAI8E,GAAE,EAAG,GAAG9E,EAAEqL,QAAQrL,EAAE,YAAYA,EAAE,aAAa8E,GAAE,GAAIlG,KAAKsvE,iBAAiBppE,IAAIyhE,EAAEn1B,UAAU88B,iBAAiB,SAASluE,GAAGA,GAAGpB,KAAKs9D,OAAOhO,aAAatzD,EAAE8mE,WAAW9iE,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,eAAep2D,EAAEq2D,mBAAmBryD,KAAKs9D,OAAOtL,KAAKh2D,EAAEy2D,OAAO7R,EAAE8R,WAAW1yD,KAAKs9D,OAAOtL,KAAKh2D,EAAEk2D,mBAAmBl2D,EAAEm2D,yBAAyBnyD,KAAKs9D,OAAOhO,aAAa,SAASluD,GAAG,OAAOgyC,WAAWhyC,IAAIpB,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,eAAe,SAAShxD,GAAG,OAAOA,GAAGpB,KAAKs9D,OAAOtL,KAAKh2D,EAAEy2D,OAAO7R,EAAEiS,aAAa7yD,KAAKs9D,OAAOtL,KAAKh2D,EAAEk2D,mBAAmBlyD,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,iBAAiBuV,EAAEn1B,UAAUg8B,UAAU,SAASptE,GAAG,IAAI8E,EAAEohB,EAAErZ,EAAE,GAAGgZ,EAAEjrB,EAAEioE,oBAAoB7iE,GAAGqmC,EAAErmC,EAAE2L,MAAMka,GAAG,MAAMsrB,EAAEvyC,KAAKoqE,gBAAgB,cAAc,GAAG3iC,EAAE,GAAGxe,QAAQspB,IAAI9K,EAAE,GAAGxe,QAAQ,OAAO,IAAIspB,EAAE,MAAM,IAAIppC,EAAE,EAAE,WAAWnJ,KAAKw9D,cAAcr0D,EAAE,EAAEnJ,KAAKs9D,OAAO/oD,OAAOkzB,EAAE,GAAG16B,MAAMwlC,GAAGvyC,KAAKk1D,YAAYyI,iBAAiB,IAAI,IAAI9Y,EAAE9T,GAAE,EAAGiU,EAAEhlD,KAAKmqE,MAAM,UAAU19D,OAAOob,GAAE,EAAGF,EAAExe,EAAEwe,EAAE8f,EAAEh7B,OAAOkb,IAAI,CAAC,IAAIxD,EAAEsjB,EAAE9f,GAAG,GAAK,IAAIxD,EAAE1X,QAAQ,KAAK0X,EAAE,GAAG,CAAC,IAAIghC,EAAEhhC,EAAEpX,MAAMwlC,GAAG,KAAK4S,EAAE14C,OAAO,GAAG,CAAC,IAAI24C,EAAE,GAAG,GAAGrU,IAAI/wC,KAAKqvE,sBAAsBlqB,EAAE,IAAIN,EAAE7kD,KAAKu2D,kBAAkB,gBAAgBxlB,GAAE,GAAIqU,EAAE,GAAGP,EAAEM,EAAE,GAAGnlD,MAAMA,KAAK8oE,WAAW,IAAIxhD,EAAE,EAAEA,EAAE69B,EAAE14C,OAAO6a,IAAsB,IAAlBphB,EAAEi/C,EAAE79B,GAAGva,MAAM,MAAUN,QAAQlL,QAAQ8kB,MAAM,wEAAwE8+B,EAAE79B,GAAG,cAAc,EAAEK,GAAG,MAAMxD,EAAE,iCAAiCihC,EAAE99B,GAAG,CAAC,EAAE,IAAI89B,EAAE99B,GAAG,CAACtrB,EAAEqoE,YAAYn+D,EAAE,GAAGyhB,EAAExD,GAAGnoB,EAAEqoE,YAAYn+D,EAAE,GAAGyhB,EAAExD,SAAS,GAAGnkB,KAAK8pD,iBAAiB,aAAa,IAAI3E,EAAE14C,OAAO,GAAG,GAAGlL,QAAQ8kB,MAAM,oEAAoE,EAAEsB,GAAG,kCAAkCw9B,EAAE14C,OAAO,GAAG,OAAO0X,EAAE,KAAKmD,EAAE,EAAEA,EAAE69B,EAAE14C,OAAO6a,GAAG,EAAE89B,GAAG99B,EAAE,GAAG,GAAG,CAACtrB,EAAEqoE,YAAYlf,EAAE79B,GAAGK,EAAExD,GAAGnoB,EAAEqoE,YAAYlf,EAAE79B,EAAE,GAAGK,EAAExD,SAAS,GAAGnkB,KAAK8pD,iBAAiB,cAAc,IAAIxiC,EAAE,EAAEA,EAAE69B,EAAE14C,OAAO6a,IAAI,CAAC,IAAI49B,EAAEC,EAAE79B,GAAG,OAAOhU,KAAK4xC,GAAGE,EAAE99B,GAAG,CAAC,KAAK,KAAK,MAAsB,IAAfphB,EAAEg/C,EAAEn4C,MAAM,MAAUN,OAAO24C,EAAE99B,GAAG,CAACtrB,EAAEqoE,YAAYn+D,EAAE,GAAGyhB,EAAExD,GAAGnoB,EAAEqoE,YAAYn+D,EAAE,GAAGyhB,EAAExD,GAAGnoB,EAAEqoE,YAAYn+D,EAAE,GAAGyhB,EAAExD,IAAI5iB,QAAQoN,KAAK,wFAAwFu2C,EAAE,cAAc,EAAEv9B,SAAU,IAAIL,EAAE,EAAEA,EAAE69B,EAAE14C,OAAO6a,IAAI89B,EAAE99B,GAAGtrB,EAAEqoE,YAAYlf,EAAE79B,GAAGK,EAAExD,GAAG,GAAGlW,EAAExB,OAAO,GAAG24C,EAAE,GAAGn3C,EAAEA,EAAExB,OAAO,GAAG,KAAKob,GAAE,GAAIu9B,EAAE34C,QAAQu4C,GAAGzjD,QAAQ8kB,MAAM,6BAA6BsB,EAAE,KAAKy9B,EAAE34C,OAAO,2CAA2Cu4C,EAAE,KAAK7gC,GAAG,IAAIwD,GAAG3nB,KAAKmqE,MAAM,UAAU,CAAC,IAAIvpB,GAAE,EAAG,IAAIt5B,EAAE,EAAEs5B,GAAGt5B,EAAE89B,EAAE34C,OAAO6a,IAAI89B,EAAE99B,KAAKs5B,GAAE,GAAI,GAAGA,EAAE,CAACr/C,QAAQoN,KAAK,wEAAwEwV,EAAE,0FAA0F,UAAUlW,EAAE6e,KAAKs4B,KAAK,OAAOv9B,IAAItmB,QAAQoN,KAAK,6DAA6DV,EAAE8e,MAAK,SAAS3rB,EAAE8E,GAAG,OAAO9E,EAAE,GAAG8E,EAAE,OAAM+H,GAAG05D,EAAEn1B,UAAU+8B,YAAY,SAASnuE,GAAG,GAAG,IAAIA,EAAEqL,OAAO,OAAOlL,QAAQ8kB,MAAM,6BAA6B,KAAK,GAAG,IAAIjlB,EAAE,GAAGqL,OAAO,OAAOlL,QAAQ8kB,MAAM,wCAAwC,KAAU,IAAIngB,EAAE,GADqU,SAAW9E,GAAG,IAAI8E,EAAE9E,EAAE,GAAGkmB,EAAEphB,EAAE,GAAG,GAAG,iBAAiBohB,IAAItrB,EAAEmnE,WAAW77C,GAAG,MAAM,IAAIw9B,MAAM,0CAA0Cx9B,EAAE,KAAKA,EAAE,KAAK,IAAI,IAAIrZ,EAAE,EAAEA,EAAE/H,EAAEuG,OAAOwB,IAAI,CAAC,IAAIgZ,EAAE/gB,EAAE+H,GAAG,GAAG,OAAOgZ,QAAG,IAASA,GAAI,iBAAiBA,IAAIjrB,EAAEguD,YAAY/iC,GAAI,MAAM,IAAI69B,MAAM,2CAA2C79B,EAAE,KAAKA,EAAE,MAC5oBsrB,CAAEnxC,GAAY,OAAOpB,KAAKmqE,MAAM,UAAU,CAAC,IAAI5oE,QAAQoN,KAAK,qFAAqF3O,KAAKs9D,OAAO/oD,OAAO,CAAC,KAAKrO,EAAE,EAAEA,EAAE9E,EAAE,GAAGqL,OAAOvG,IAAIlG,KAAKs9D,OAAO/oD,OAAOuY,KAAK,IAAI5mB,GAAGlG,KAAKk1D,YAAYyI,oBAAoB,CAAC,IAAIr2C,EAAEtnB,KAAKmqE,MAAM,UAAU,GAAG7iD,EAAE7a,QAAQrL,EAAE,GAAGqL,OAAO,OAAOlL,QAAQ8kB,MAAM,sCAAsCiB,EAAE,qCAAqClmB,EAAE,GAAGqL,OAAO,KAAK,KAAK,GAAGzQ,EAAEmnE,WAAW/hE,EAAE,GAAG,IAAI,CAACpB,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,eAAep2D,EAAEq2D,mBAAmBryD,KAAKs9D,OAAOtL,KAAKh2D,EAAEy2D,OAAO7R,EAAE8R,WAAW1yD,KAAKs9D,OAAOtL,KAAKh2D,EAAEk2D,mBAAmBl2D,EAAEm2D,uBAAuB,IAAIlkD,EAAEjS,EAAE42C,MAAMxxC,GAAG,IAAI8E,EAAE,EAAEA,EAAE9E,EAAEqL,OAAOvG,IAAI,CAAC,GAAG,IAAI+H,EAAE/H,GAAGuG,OAAO,OAAOlL,QAAQ8kB,MAAM,QAAQ,EAAEngB,GAAG,qBAAqB,KAAK,GAAG,OAAO+H,EAAE/H,GAAG,IAAI,mBAAmB+H,EAAE/H,GAAG,GAAGgyD,SAASjoB,MAAMhiC,EAAE/H,GAAG,GAAGgyD,WAAW,OAAO32D,QAAQ8kB,MAAM,mBAAmB,EAAEngB,GAAG,kBAAkB,KAAK+H,EAAE/H,GAAG,GAAG+H,EAAE/H,GAAG,GAAGgyD,UAAU,OAAOjqD,EAAE,OAAOjO,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,eAAe,SAAShxD,GAAG,OAAOA,GAAGpB,KAAKs9D,OAAOtL,KAAKh2D,EAAEy2D,OAAO7R,EAAEiS,aAAa7yD,KAAKs9D,OAAOtL,KAAKh2D,EAAEk2D,mBAAmBl2D,EAAE42D,yBAAyBxxD,GAAGumE,EAAEn1B,UAAUg9B,gBAAgB,SAASpuE,GAAG,IAAI8E,EAAE9E,EAAEquE,qBAAqBnoD,EAAElmB,EAAEsuE,kBAAkBzhE,EAAE7M,EAAEuuE,cAAc,GAAG,GAAG,QAAQ1hE,GAAG,YAAYA,EAAEjO,KAAKs9D,OAAOhO,aAAatzD,EAAE8mE,WAAW9iE,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,eAAep2D,EAAEq2D,mBAAmBryD,KAAKs9D,OAAOtL,KAAKh2D,EAAEy2D,OAAO7R,EAAE8R,WAAW1yD,KAAKs9D,OAAOtL,KAAKh2D,EAAEk2D,mBAAmBl2D,EAAEm2D,2BAA2B,CAAC,GAAG,UAAUlkD,EAAE,MAAM,IAAI62C,MAAM,kGAAkG72C,EAAE,MAAMjO,KAAKs9D,OAAOhO,aAAa,SAASluD,GAAG,OAAOgyC,WAAWhyC,IAAIpB,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,eAAe,SAAShxD,GAAG,OAAOA,GAAGpB,KAAKs9D,OAAOtL,KAAKh2D,EAAEy2D,OAAO7R,EAAEiS,aAAa7yD,KAAKs9D,OAAOtL,KAAKh2D,EAAEk2D,mBAAmBlyD,KAAKs9D,OAAOtL,KAAKh2D,EAAEo2D,eAAe,IAAInrC,EAAEwgB,EAAE8K,EAAE,GAAGppC,EAAE,GAAG07C,GAAE,EAAG,IAAI59B,EAAE,EAAEA,EAAE/gB,EAAE+gB,IAAI,CAAC,IAAI8pB,EAAE3vC,EAAEuuE,cAAc1oD,GAAG,GAAG,UAAU8pB,EAAEwB,EAAEzlB,KAAK7F,OAAO,CAAC,GAAG,UAAU8pB,IAAI/wC,KAAK8pD,iBAAiB,sBAAsB,MAAM,IAAIhF,MAAM,sHAAsH,IAAIE,EAAEzS,EAAEA,EAAE9lC,OAAO,GAAGtD,EAAE0jB,eAAem4B,GAAG77C,EAAE67C,GAAGl4B,KAAK7F,GAAG9d,EAAE67C,GAAG,CAAC/9B,GAAG49B,GAAE,GAAI,IAAIh9B,EAAE,CAACzmB,EAAEwuE,eAAe,IAAI,IAAI3oD,EAAE,EAAEA,EAAEsrB,EAAE9lC,OAAOwa,IAAIY,EAAEiF,KAAK1rB,EAAEwuE,eAAer9B,EAAEtrB,KAAKjnB,KAAK8pD,iBAAiB,eAAe7iC,GAAG,GAAGjnB,KAAKs9D,OAAO/oD,OAAOsT,EAAE3hB,EAAE2hB,EAAEpb,OAAO,IAAIkb,EAAE,GAAGxD,GAAE,EAAGghC,EAAE,GAAG,IAAIl+B,EAAE,EAAEA,EAAEK,EAAEL,IAAI,CAAC,IAAIm+B,EAAE,GAAG,QAAG,IAAShkD,EAAE4pE,SAAS/jD,EAAE,IAAI,OAAO7lB,EAAE4pE,SAAS/jD,EAAE,GAAG,CAAC,GAAG,QAAQhZ,GAAG,YAAYA,EAAEm3C,EAAEt4B,KAAK1rB,EAAE4pE,SAAS/jD,EAAE,GAAGixC,WAAW9S,EAAEt4B,KAAK1rB,EAAE4pE,SAAS/jD,EAAE,IAAIjnB,KAAK8pD,iBAAiB,aAAa,IAAIriB,EAAE,EAAEA,EAAEvhC,EAAE,EAAEuhC,IAAI2d,EAAEt4B,KAAK,CAAC1rB,EAAE4pE,SAAS/jD,EAAE,EAAE,EAAEwgB,GAAGrmC,EAAE4pE,SAAS/jD,EAAE,EAAE,EAAEwgB,SAAS,CAAC,IAAIA,EAAE,EAAEA,EAAE8K,EAAE9lC,OAAOg7B,IAAI,CAAC,IAAIyd,EAAE3S,EAAE9K,GAAG,GAAG2d,EAAEt4B,KAAK1rB,EAAE4pE,SAAS/jD,EAAEi+B,IAAIL,GAAG17C,EAAE0jB,eAAeq4B,IAAI,OAAO9jD,EAAE4pE,SAAS/jD,EAAE9d,EAAE+7C,GAAG,IAAI,CAAC,IAAIl+B,EAAE,GAAGA,EAAE01C,OAAOt7D,EAAEwuE,eAAe1qB,GAAGl+B,EAAEihC,KAAK7C,EAAE,GAAGp+B,EAAE6oD,UAAU,SAASzuE,GAAG,IAAI8E,EAAEqrC,OAAOu+B,aAAa,GAAG1uE,EAAE,IAAI,IAAIA,EAAE/E,KAAKG,MAAM4E,EAAE,IAAIA,EAAE,GAAG8E,EAAEqrC,OAAOu+B,aAAa,IAAI1uE,EAAE,GAAG,IAAI8E,EAAEuhB,cAAcrmB,EAAE/E,KAAKG,OAAO4E,EAAE,GAAG,IAAI,OAAO8E,EAA5J,CAA+Ji/C,EAAE14C,QAAQua,EAAEuR,KAAK,GAAG,IAAI,IAAInR,EAAE,EAAEA,EAAEje,EAAE+7C,GAAGz4C,OAAO2a,IAAIA,IAAIJ,EAAEuR,MAAM,MAAMvR,EAAEuR,MAAMn3B,EAAE4pE,SAAS/jD,EAAE9d,EAAE+7C,GAAG99B,IAAI+9B,EAAEr4B,KAAK9F,IAAI,IAAIygB,EAAE,EAAEA,EAAE2d,EAAE34C,OAAOg7B,IAAI4L,SAAS+R,EAAE3d,MAAM2d,EAAE3d,GAAG,MAAM9f,EAAElb,OAAO,GAAG24C,EAAE,GAAGz9B,EAAEA,EAAElb,OAAO,GAAG,KAAK0X,GAAE,GAAIwD,EAAEmF,KAAKs4B,QAAQ7jD,QAAQoN,KAAK,gBAAgBsY,EAAE,4DAA4D9C,IAAI5iB,QAAQoN,KAAK,mEAAmEgZ,EAAEoF,MAAK,SAAS3rB,EAAE8E,GAAG,OAAO9E,EAAE,GAAG8E,EAAE,OAAMlG,KAAKuqE,SAAS5iD,EAAEw9B,EAAE14C,OAAO,GAAGzM,KAAK66D,eAAe1V,GAAE,GAAInlD,KAAKk1D,YAAYyI,iBAAiBgK,EAAEn1B,UAAUi8B,2BAA2B,WAAWzuE,KAAK42D,eAAe,gBAAgB,KAAK+Q,EAAEn1B,UAAUoY,OAAO,WAAW,IAAIxpD,EAAEpB,KAAK0oE,MAAM,GAAG,mBAAmBtnE,IAAIA,EAAEA,KAAKpF,EAAEguD,YAAY5oD,GAAGpB,KAAKuqE,SAASvqE,KAAKuvE,YAAYnuE,GAAGpB,KAAKyuE,6BAA6BzuE,KAAK0uE,gBAAgB,GAAG,iBAAiBttE,GAAG,mBAAmBA,EAAE2uE,eAAe/vE,KAAKwvE,gBAAgBpuE,GAAGpB,KAAKyuE,6BAA6BzuE,KAAK0uE,gBAAgB,GAAG,iBAAiBttE,EAAkC,GAAzBpF,EAAEioE,oBAAoB7iE,GAAQpB,KAAKuuE,aAAantE,OAAO,CAAC,IAAIkmB,EAAEA,EAAErkB,OAAO+sE,eAAe,IAAIA,eAAe,IAAIC,cAAc,qBAAqB,IAAIhiE,EAAEjO,KAAKsnB,EAAE4oD,mBAAmB,WAAW,GAAG5oD,EAAE6oD,aAAa,MAAM7oD,EAAErC,QAAQ,IAAIqC,EAAErC,QAAQhX,EAAEsgE,aAAajnD,EAAE8oD,gBAAgB9oD,EAAEyC,KAAK,MAAM3oB,GAAE,GAAIkmB,EAAE+oD,KAAK,WAAY9uE,QAAQ8kB,MAAM,+BAA+BjlB,IAAIumE,EAAEn1B,UAAU89B,cAAc,SAASlvE,EAAE8E,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIohB,EAAElmB,EAAE27B,KAAK9uB,EAAE05D,EAAEa,eAAepnE,GAAG,eAAe6M,IAAIjO,KAAK2oE,YAAY16D,EAAE26D,YAAY,eAAe36D,IAAIjO,KAAKu1D,YAAYtnD,EAAE86D,YAAY,IAAI9hD,EAAEjrB,EAAE+nE,0BAA0B/jE,KAAKmqE,MAAM,UAAUl8D,GAAGjS,EAAEgnE,WAAWhjE,KAAKw9D,YAAYvvD,GAAGjO,KAAKk1D,YAAYyI,gBAAgBr2C,GAAGtnB,KAAK42D,eAAe,iBAAiB,IAAI52D,KAAK0oE,MAAMphD,EAAEphB,GAAGlG,KAAK4qD,UAAU1kD,IAAI+gB,EAAEjnB,KAAK0uE,WAAW1uE,KAAKkvE,cAAa,KAAMvH,EAAEa,eAAe,SAASpnE,GAAG,IAAI8E,EAAE,GAAG,IAAI,IAAIohB,KAAKlmB,EAAEA,EAAEyrB,eAAevF,IAAI,QAAQA,GAAGlmB,EAAEyrB,eAAevF,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,GAAGyhE,EAAEn1B,UAAU/hC,OAAO,SAASrP,EAAE8E,GAAG,IAAIlG,KAAKuwE,YAAY,CAACvwE,KAAKuwE,aAAY,EAAG,OAAOnvE,IAAI,OAAO8E,KAAK3E,QAAQoN,KAAK,8GAA8GvN,EAAE8E,EAAE,MAAM,IAAIohB,EAAEtnB,KAAK4oD,OAAO36C,EAAEjO,KAAK2oD,QAAQvnD,GAAGpB,KAAKyoE,SAAS9iE,MAAMsO,MAAM7S,EAAE,KAAKpB,KAAKyoE,SAAS9iE,MAAMC,OAAOM,EAAE,KAAKlG,KAAK4oD,OAAOxnD,EAAEpB,KAAK2oD,QAAQziD,IAAIlG,KAAK4oD,OAAO5oD,KAAKyoE,SAASQ,YAAYjpE,KAAK2oD,QAAQ3oD,KAAKyoE,SAAShkE,cAAc6iB,GAAGtnB,KAAK4oD,QAAQ36C,GAAGjO,KAAK2oD,UAAU3oD,KAAKorE,kBAAkBprE,KAAK0uE,YAAY1uE,KAAKuwE,aAAY,IAAK5I,EAAEn1B,UAAUg6B,WAAW,SAASprE,GAAGpB,KAAK2oE,YAAYvnE,EAAEpB,KAAK0uE,YAAY/G,EAAEn1B,UAAUwa,WAAW,WAAW,IAAIhtD,KAAK4iC,UAAU,gBAAgB5iC,KAAKs9D,OAAOtQ,WAAW,IAAIhtD,KAAK4iC,UAAU,cAAcn2B,OAAOzM,KAAK+qE,aAAa,GAAG/qE,KAAKs9D,OAAOtQ,WAAWlgC,MAAK,GAAI,OAAO9sB,KAAK4iC,UAAU,eAAe+kC,EAAEn1B,UAAUg+B,cAAc,SAASpvE,EAAE8E,GAAG,IAAIohB,EAAEtnB,KAAKgtD,aAAa/+C,GAAE,EAAG,GAAG8S,MAAMivB,QAAQ5uC,KAAK,OAAOA,GAAG,iBAAiBA,EAAE6M,GAAE,EAAG7M,EAAE,CAACA,IAAI6M,EAAE,IAAI,IAAIgZ,KAAK7lB,EAAEA,EAAEyrB,eAAe5F,KAAKA,EAAE,GAAGA,GAAGK,EAAE7a,OAAOlL,QAAQoN,KAAK,2CAA2CsY,GAAGK,EAAEL,GAAG7lB,EAAE6lB,SAAS,IAAQA,EAAE,EAAEA,EAAE7lB,EAAEqL,OAAOwa,IAAI,kBAAkB7lB,EAAE6lB,GAAGA,GAAGK,EAAE7a,OAAOlL,QAAQoN,KAAK,2CAA2CsY,GAAGK,EAAEL,GAAG7lB,EAAE6lB,GAAG7lB,EAAE6lB,GAAG,GAAG7lB,EAAE6lB,IAAIK,EAAE7a,OAAOlL,QAAQoN,KAAK,2CAA2CvN,EAAE6lB,IAAIK,EAAElmB,EAAE6lB,IAAI/gB,EAAElG,KAAK0uE,YAAY/G,EAAEn1B,UAAUzQ,KAAK,WAAW,MAAM,CAAC9tB,MAAMjU,KAAK4oD,OAAOhjD,OAAO5F,KAAK2oD,UAAUgf,EAAEn1B,UAAUqoB,eAAe,SAASz5D,EAAE8E,GAAMlG,KAAKgpE,aAAa5nE,EAAGpB,KAAKmzD,SAAkKnzD,KAAKmzD,QAAQ0H,eAAe76D,KAAKgpE,cAAc9iE,GAAGlG,KAAK0uE,YAArMntE,QAAQoN,KAAK,kIAAoMg5D,EAAEn1B,UAAUunB,YAAY,WAAW,OAAO/5D,KAAKgpE,cAAcrB,EAAEn1B,UAAUua,UAAU,WAAW,IAAI3rD,EAAEpB,KAAKmqE,MAAM,UAAU,OAAO/oE,EAAEA,EAAEitB,QAAQ,MAAMs5C,EAAEn1B,UAAUi+B,iBAAiB,SAASrvE,GAAG,OAAOpB,KAAKmpE,gBAAgB/nE,IAAIumE,EAAEn1B,UAAUk+B,WAAW,SAAStvE,GAAG,IAAI,IAAI8E,EAAE,EAAEohB,EAAEtnB,KAAKsqE,UAAU,EAAEpkE,GAAGohB,GAAG,CAAC,IAAIrZ,EAAEqZ,EAAEphB,GAAG,EAAE+gB,EAAEjnB,KAAKgrE,SAAS/8D,EAAE,GAAG,GAAGgZ,EAAE7lB,EAAE8E,EAAE+H,EAAE,OAAO,GAAGgZ,EAAE7lB,EAAEkmB,EAAErZ,EAAE,MAAM,CAAC,GAAG/H,GAAG+H,EAAE,OAAOA,EAAEqZ,EAAErZ,GAAG,OAAO,MAAM05D,EAAEn1B,UAAUm+B,MAAM,SAASvvE,GAAGpB,KAAKsoE,iBAAiBtoE,KAAKuoE,UAAUz7C,KAAK1rB,GAAGA,EAAEkxC,KAAKtyC,KAAKA,OAAO2nE,EAAEn1B,UAAU2mB,iBAAiB,SAAS/3D,EAAE8E,EAAEohB,GAAGtrB,EAAE+oE,SAAS3jE,EAAE8E,EAAEohB,GAAGtnB,KAAKqpE,kBAAkBv8C,KAAK,CAAC8jD,KAAKxvE,EAAEY,KAAKkE,EAAE8/B,GAAG1e,KAAKqgD,EAAEn1B,UAAUu5B,qBAAqB,WAAW,GAAG/rE,KAAKqpE,kBAAkB,IAAI,IAAIjoE,EAAE,EAAEA,EAAEpB,KAAKqpE,kBAAkB58D,OAAOrL,IAAI,CAAC,IAAI8E,EAAElG,KAAKqpE,kBAAkBjoE,GAAGpF,EAAEo9D,YAAYlzD,EAAE0qE,KAAK1qE,EAAElE,KAAKkE,EAAE8/B,IAAIhmC,KAAKqpE,kBAAkB,IAAI1B,EAAE8B,QAAQ,CAAC/E,EAAE9xC,QAAQi1B,EAAEj1B,QAAQ9L,EAAE8L,QAAQ60C,EAAE70C,QAAQ40C,EAAE50C,QAAQ0xC,EAAE1xC,SAAS+0C,EAAEkJ,UAAUnJ,EAAE90C,QAAQ+0C,EAAE9C,YAAY7oE,EAAE6oE,YAAY8C,EAAE7C,cAAc9oE,EAAE8oE,cAAc6C,EAAExV,uBAAuBn2D,EAAEm2D,uBAAuBwV,EAAEnb,OAAOxwD,EAAEwwD,OAAOmb,EAAEnP,QAAQx8D,EAAEw8D,QAAQmP,EAAErQ,MAAMt7D,EAAEs7D,MAAMqQ,EAAEpQ,MAAMv7D,EAAEu7D,MAAMoQ,EAAE/E,YAAY5mE,EAAE4mE,YAAY+E,EAAEmJ,wBAAwB1rB,EAAExyB,QAAQo+B,aAAa2W,EAAEoJ,oBAAoBpJ,EAAEjO,qBAAqBtU,EAAExyB,QAAQ8mC,qBAAqBiO,EAAErb,QAAQtwD,EAAEswD,QAAQqb,EAAEqJ,QAAQ,CAACC,OAAOvM,EAAE9xC,QAAQs+C,KAAKrpB,EAAEj1B,QAAQu+C,YAAY3J,EAAE50C,QAAQw+C,YAAY3J,EAAE70C,QAAQy+C,KAAK/M,EAAE1xC,QAAQ0+C,cAAcxqD,EAAE8L,SAAS+0C,EAAE4J,aAAa,CAACC,eAAejkB,EAAE36B,QAAQ6+C,YAAYlK,EAAE30C,QAAQ8+C,kBAAkBhkB,EAAE96B,QAAQ++C,uBAAuB/jB,EAAEh7B,QAAQg/C,iBAAiBzxB,EAAEvtB,QAAQi/C,qBAAqB9jB,EAAEn7B,SAAS+0C,EAAE1O,SAAS7T,EAAExyB,QAAQqmC,SAAS0O,EAAE/R,UAAUxQ,EAAExyB,QAAQgjC,UAAU+R,EAAEzO,QAAQ9T,EAAExyB,QAAQsmC,QAAQyO,EAAE5R,SAAS3Q,EAAExyB,QAAQmjC,SAAS4R,EAAEjS,OAAOtQ,EAAExyB,QAAQ8iC,OAAOiS,EAAE7Q,QAAQ1R,EAAExyB,QAAQkkC,QAAQ6Q,EAAEhJ,mBAAmB/d,EAAE+d,mBAAmBgJ,EAAE9U,aAAajS,EAAEiS,aAAa8U,EAAEjV,WAAW9R,EAAE8R,WAAWiV,EAAE5G,YAAYngB,EAAEmgB,YAAY4G,EAAEpG,YAAY3gB,EAAE2gB,YAAYoG,EAAEjF,YAAY1mE,EAAE0mE,YAAYp7C,EAAEsL,QAAQ+0C,EAAEzhE,EAAEy+C,QAAQr9B,EAAEsL,UAAU0f,KAAKtyC,KAAKoB,EAAE,cAAc,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,wBAAwB,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,0BAA0B,GAAG,iBAAiB,GAAG,8BAA8B,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,8BAA8B,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,iBAAiB,GAAG,yBAAyB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,2BAA2B,GAAG67D,SAAS,IAAI6U,GAAG,CAAC,SAAS1wE,EAAE8E,EAAEohB,GAAG,aAAa,SAASrZ,IAAIjO,KAAK+xE,MAAM,GAAGhxE,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA2ByoC,EAAE,SAASrmC,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAvB9E,EAAE,oBAAgL6M,EAAEukC,UAAUk6B,MAAM,WAAW,IAAI,IAAItrE,EAAEgF,SAASg6C,qBAAqB,UAAUl6C,EAAE,EAAEA,EAAE9E,EAAEqL,OAAOvG,IAAI,CAAC,IAAIohB,EAAElmB,EAAE8E,GAAG+H,EAAEw5B,EAAE+wB,QAAQlxC,GAAGL,EAAEhZ,EAAEjS,EAAEu2C,EAAEtkC,EAAE+Y,EAAE7d,EAAEme,EAAEoxC,YAAY7T,EAAEv9B,EAAEqxC,aAAa5nB,EAAE3qC,SAASkiB,cAAc,OAAOyoB,EAAEprC,MAAMk/B,SAAS,WAAWkM,EAAEprC,MAAMyK,KAAK6W,EAAE,KAAK8pB,EAAEprC,MAAMynB,IAAImlB,EAAE,KAAKxB,EAAEprC,MAAMsO,MAAM9K,EAAE,KAAK4nC,EAAEprC,MAAMC,OAAOi/C,EAAE,KAAK9T,EAAEprC,MAAMqsE,OAAO,IAAI5rE,SAASg+B,KAAK3b,YAAYsoB,GAAG/wC,KAAK+xE,MAAMjlD,KAAKikB,KAAK9iC,EAAEukC,UAAUq6B,QAAQ,WAAW,IAAI,IAAIzrE,EAAE,EAAEA,EAAEpB,KAAK+xE,MAAMtlE,OAAOrL,IAAIpB,KAAK+xE,MAAM3wE,GAAGu9C,WAAWh2B,YAAY3oB,KAAK+xE,MAAM3wE,IAAIpB,KAAK+xE,MAAM,IAAIzqD,EAAEsL,QAAQ3kB,EAAE/H,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,kBAAkB,KAAKq/C,GAAG,CAAC,SAAS7wE,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAIiP,EAAE,WAAWjO,KAAKgpE,aAAa,IAAI/6D,EAAEukC,UAAU/wC,SAAS,WAAW,MAAM,sBAAsBwM,EAAEukC,UAAUm3B,SAAS,SAASvoE,GAAG,MAAM,CAAC8wE,WAAWlyE,KAAKkyE,WAAWC,aAAanyE,KAAKmyE,eAAelkE,EAAEukC,UAAU4/B,aAAa,WAAW,IAAI,IAAIhxE,EAAE,EAAEA,EAAEpB,KAAKgpE,aAAav8D,OAAOrL,IAAI,CAAC,IAAI8E,EAAElG,KAAKgpE,aAAa5nE,GAAG8E,EAAEy4C,YAAYz4C,EAAEy4C,WAAWh2B,YAAYziB,GAAGlG,KAAKgpE,aAAa5nE,GAAG,KAAKpB,KAAKgpE,aAAa,IAAI/6D,EAAEukC,UAAU0/B,WAAW,SAAS9wE,GAAGpB,KAAKoyE,gBAAgBnkE,EAAEukC,UAAU2/B,aAAa,SAAS/wE,GAAG,IAAI8E,EAAE9E,EAAEyoD,QAAQviC,EAAEphB,EAAEitD,QAAQwJ,iBAAiB,GAAGr1C,GAAG,IAAIA,EAAE7a,OAAO,IAAI,IAAIwB,EAAE7M,EAAE+tE,OAAOxwB,WAAW13B,EAAE,SAAS7lB,EAAEkmB,EAAErZ,GAAG,OAAO,SAASgZ,GAAG,IAAIwgB,EAAEx5B,EAAE2uD,WAAWn1B,EAAE5a,eAAezrB,GAAGqmC,EAAErmC,GAAGqmC,EAAEx5B,EAAE/H,EAAE+gB,GAAG/gB,EAAE08B,UAAUtb,IAAIphB,EAAE08B,UAAUtb,EAAZphB,CAAeuhC,EAAEx5B,EAAE/H,EAAE+gB,KAAKwgB,EAAErmC,EAAEyoD,QAAQmN,UAAUzkB,EAAE,GAAGppC,EAAE,EAAEA,EAAEme,EAAE7a,OAAOtD,IAAI,CAAC,IAAI07C,EAAEv9B,EAAEne,GAAG,KAAK07C,EAAEsD,QAAQ1gB,EAAEzrC,GAAG6oD,EAAEsD,QAAQ1gB,EAAEzrC,EAAEyrC,EAAEqJ,GAAG+T,EAAEuD,QAAQ3gB,EAAEzgB,GAAG69B,EAAEuD,QAAQ3gB,EAAEzgB,EAAEygB,EAAEsJ,GAAG,CAAC,IAAIA,EAAE8T,EAAE+X,WAAW5X,EAAE,EAAEjU,EAAElkB,eAAe,gBAAgBm4B,EAAEjU,EAAEshC,YAAY,IAAIxqD,EAAEzhB,SAASkiB,cAAc,OAAOT,EAAEliB,MAAM+mC,SAASxmC,EAAE08B,UAAU,qBAAqB,KAChv+B,IAAIjb,EAAE,qBAAqBopB,EAAElkB,eAAe,UAAUlF,GAAG,wDAAwDopB,EAAElkB,eAAe,cAAclF,GAAG,IAAIopB,EAAEuhC,UAAUzqD,EAAE/lB,UAAU6lB,EAAE,IAAIxD,EAAE4sB,EAAElkB,eAAe,SAASkkB,EAAE98B,MAAM,GAAGkxC,EAAEpU,EAAElkB,eAAe,UAAUkkB,EAAEnrC,OAAO,GAAG,GAAGmrC,EAAElkB,eAAe,QAAQ,CAAC,IAAIu4B,EAAEh/C,SAASkiB,cAAc,OAAO88B,EAAE3S,IAAI1B,EAAExgB,KAAK60B,EAAEnxC,MAAMkQ,EAAEihC,EAAEx/C,OAAOu/C,EAAEt9B,EAAEY,YAAY28B,QAAQP,EAAE+X,WAAW/vC,eAAe,cAAchF,EAAEY,YAAYriB,SAASmsE,eAAe1tB,EAAE+X,WAAWiT,YAAY,IAAI3qB,EAAEL,EAAEsD,QAAQhkC,EAAE,EAAE0D,EAAEliB,MAAMyK,KAAK80C,EAAE,KAAK,IAAItE,EAAE,EAAE,GAAG7P,EAAEyhC,eAAe,CAAC,IAAIxrD,EAAEygB,EAAEzgB,EAAEygB,EAAEsJ,EAAEoU,EAAEH,EAAEzS,EAAE2S,GAAGl+B,GAAGurB,EAAE2S,GAAG3S,EAAE2S,GAAG,EAAE3S,EAAE2S,IAAIF,EAAEG,EAAEvE,EAAE55B,OAAO45B,EAAEiE,EAAEuD,QAAQjD,EAAEH,EAAEn9B,EAAEliB,MAAMynB,IAAIwzB,EAAE,KAAK/4B,EAAEliB,MAAMsO,MAAMkQ,EAAE,KAAK0D,EAAEliB,MAAMC,OAAOu/C,EAAE,KAAKt9B,EAAE7jB,MAAM6gD,EAAE+X,WAAWrkC,KAAK1Q,EAAEliB,MAAM8mC,MAAMvmC,EAAEmlD,WAAWxG,EAAE3jC,MAAM2G,EAAEliB,MAAM8sE,YAAYvsE,EAAEmlD,WAAWxG,EAAE3jC,MAAM6vB,EAAEhhB,IAAIlI,EAAE3hB,EAAEizD,iBAAiBtxC,EAAE,QAAQZ,EAAE,eAAe,yBAAyB49B,IAAI3+C,EAAEizD,iBAAiBtxC,EAAE,YAAYZ,EAAE,mBAAmB,6BAA6B49B,IAAI3+C,EAAEizD,iBAAiBtxC,EAAE,WAAWZ,EAAE,kBAAkB,4BAA4B49B,IAAI3+C,EAAEizD,iBAAiBtxC,EAAE,WAAWZ,EAAE,kBAAkB,4BAA4B49B,IAAI52C,EAAEwa,YAAYZ,GAAG7nB,KAAKgpE,aAAal8C,KAAKjF,GAAG,IAAI7rB,EAAEoF,EAAE8oD,eAAkBluD,EAAEq/B,OAAOr/B,EAAEuuD,YAAYxZ,EAAElkB,eAAe,aAAakkB,EAAE2hC,UAAUxsE,EAAEmlD,WAAWxG,EAAE3jC,MAAMllB,EAAEwuD,UAAUzZ,EAAElkB,eAAe,aAAakkB,EAAE4hC,UAAUzsE,EAAE08B,UAAU,eAAe5mC,EAAEitD,YAAYlY,EAAEyhC,gBAAoBxrD,EAAE45B,EAAEuE,EAAEnpD,EAAE6uD,OAAOhG,EAAEsD,QAAQnhC,GAAGhrB,EAAE8uD,OAAOjG,EAAEsD,QAAQnhC,EAAEg+B,KAAQhpD,EAAE6uD,OAAOhG,EAAEsD,QAAQtD,EAAEuD,SAASpsD,EAAE8uD,OAAOjG,EAAEsD,QAAQtD,EAAEuD,QAAQ,EAAEpD,IAAGhpD,EAAE0wD,YAAY1wD,EAAEmvD,SAASnvD,EAAEsuD,aAAar8C,EAAEukC,UAAUzR,QAAQ,WAAW/gC,KAAKoyE,gBAAgB9qD,EAAEsL,QAAQ3kB,EAAE/H,EAAEy+C,QAAQr9B,EAAEsL,SAAS,IAAIggD,GAAG,CAAC,SAASxxE,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA4BioB,EAAE,SAAS7lB,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAxB9E,EAAE,qBAAiLqmC,EAAE,WAAWznC,KAAK6yE,SAAS,GAAG7yE,KAAK8yE,SAAS,IAAIrrC,EAAE+K,UAAU/wC,SAAS,WAAW,MAAM,eAAegmC,EAAE+K,UAAUm3B,SAAS,SAASvoE,GAAG,MAAM,CAACqnD,OAAOzoD,KAAKyoD,OAAOypB,WAAWlyE,KAAKkyE,WAAWa,cAAc/yE,KAAK+yE,gBAAgBtrC,EAAE+K,UAAUiW,OAAO,SAASrnD,GAAG,IAAgN6M,EAA5M/H,EAAE9E,EAAEyoD,QAAQ,GAAG3jD,EAAE+tD,iBAAiB,WAAW,KAAK,CAAC,IAAI3sC,EAAEphB,EAAE+tD,iBAAiB,iBAAiB,KAAK,EAAE/tD,EAAE+tD,iBAAiB,eAAe,KAAK7yD,EAAEo5D,iBAAiBlzC,GAAMphB,EAAE+tD,iBAAiB,WAAW,OAAYhmD,EAAE/H,EAAE08B,UAAU,eAAe18B,EAAE08B,UAAU,eAAe18B,EAAE+tD,iBAAiB,oBAAoB,KAAK,EAAE/tD,EAAE+tD,iBAAiB,eAAe,KAAK7yD,EAAEu5D,mBAAmB1sD,IAAM,GAAG/H,EAAEm4D,UAAcn4D,EAAE+tD,iBAAiB,WAAW,QAAW3sC,EAAEphB,EAAE+tD,iBAAiB,iBAAiB,MAAM,EAAE/tD,EAAE+tD,iBAAiB,eAAe,MAAM7yD,EAAEq5D,kBAAkBnzC,IAASphB,EAAEm4D,UAAU,GAAGn4D,EAAEmgB,MAAM,8DAA8DngB,EAAEm4D,UAAU,MAAM52B,EAAE+K,UAAU4/B,aAAa,WAAW,SAAShxE,EAAEA,GAAG,IAAI,IAAI8E,EAAE,EAAEA,EAAE9E,EAAEqL,OAAOvG,IAAI,CAAC,IAAIohB,EAAElmB,EAAE8E,GAAGohB,EAAEq3B,YAAYr3B,EAAEq3B,WAAWh2B,YAAYrB,IAAIlmB,EAAEpB,KAAK6yE,UAAUzxE,EAAEpB,KAAK8yE,UAAU9yE,KAAK6yE,SAAS,GAAG7yE,KAAK8yE,SAAS,IAAIrrC,EAAE+K,UAAU0/B,WAAW,SAAS9wE,GAAGpB,KAAKoyE,gBAAgB3qC,EAAE+K,UAAUugC,cAAc,SAAS3xE,GAAG,SAAS8E,EAAE9E,GAAG,OAAO/E,KAAKgpB,MAAMjkB,GAAG,GAAG,SAASkmB,EAAElmB,GAAG,OAAO/E,KAAKgpB,MAAMjkB,GAAG,GAAG,IAAI6M,EAAEjO,KAAKynC,EAAErmC,EAAEyoD,QAAQ,GAAGpiB,EAAEwsB,iBAAiB,WAAW,MAAMxsB,EAAEwsB,iBAAiB,WAAW,MAAMxsB,EAAEwsB,iBAAiB,WAAW,MAAM,CAAC,IAAI1hB,EAAEppC,EAAE07C,EAAE9T,EAAE3vC,EAAE8oD,eAAelF,EAAE5jD,EAAE+tE,OAAOxwB,WAAW92B,EAAE4f,EAAEmhB,OAAOjhC,EAAE8f,EAAEkhB,QAAQxkC,EAAE,SAAS/iB,GAAG,MAAM,CAACyjC,SAAS,WAAW6H,SAASjF,EAAEwsB,iBAAiB,oBAAoB7yD,GAAG,KAAK6S,MAAMwzB,EAAEwsB,iBAAiB,iBAAiB7yD,GAAG,OAAO+jD,EAAE,CAACnpD,EAAEmoB,EAAE,KAAK6C,EAAE7C,EAAE,KAAKizB,GAAGjzB,EAAE,OAAOihC,EAAE,SAAShkD,EAAE8E,EAAEohB,GAAG,IAAIrZ,EAAE7H,SAASkiB,cAAc,OAAOmf,EAAE0d,EAAE,MAAM79B,EAAE,KAAKphB,GAAG+gB,EAAE4gB,OAAO55B,EAAEtI,MAAM8hC,GAAG,IAAI8K,EAAEnsC,SAASkiB,cAAc,OAAO,OAAOiqB,EAAEzwC,UAAU,yCAAyCoE,GAAGohB,EAAE,uBAAuBA,EAAE,IAAIirB,EAAE9sB,UAAUrkB,EAAE6M,EAAEwa,YAAY8pB,GAAGtkC,GAAG8iC,EAAE1V,OAAO,IAAI6pB,EAAEzd,EAAE0rB,QAAQvS,EAAEx/C,EAAEyoD,QAAQyK,SAASxL,KAAK9hC,EAAE,SAAS5lB,GAAG,OAAO,SAAS8E,GAAG,OAAOuhC,EAAEwsB,iBAAiB/tD,EAAE9E,KAAK,GAAGqmC,EAAEwsB,iBAAiB,WAAW,KAAK,CAAC,GAAG/O,EAAEsX,QAAQtX,EAAEsX,OAAO/vD,OAAO,EAAE,CAAC,IAAIzQ,EAAEyrC,EAAE42B,UAAUj3C,EAAE,CAACJ,EAAE,KAAKA,EAAE,OAAOk+B,EAAEsX,OAAOx7D,SAAQ,SAASI,GAAG,QAAG,IAASA,EAAEqpC,MAAM,CAACthC,EAAEy3C,EAAE5kD,EAAE,IAAIkK,EAAE,KAAKohB,EAAEF,EAAE,GAAG,GAAGhmB,EAAEmqD,OAAOpiD,EAAEy3C,EAAE5kD,EAAE4kD,EAAE9P,EAAK5qC,EAAE,KAAKohB,EAAEF,EAAE,IAAI,IAAIH,EAAEK,EAAE,qBAAqBu9B,EAAEjE,EAAE55B,EAAE5lB,EAAEk7D,IAAI1b,EAAE7P,EAAEwB,EAAE6S,EAAEhkD,EAAEqpC,MAAM,IAAI,GAAGzuC,EAAEkK,EAAE,MAAM,IAAIuhC,EAAEod,EAAE59B,EAAE,EAAEwgB,EAAE,IAAIA,EAAE,GAAGA,EAAExgB,EAAE,EAAEU,EAAE4qB,EAAE5sC,MAAMu/B,OAAO,IAAIqN,EAAE5sC,MAAMynB,IAAIqa,EAAE,KAAK,IAAIrmC,EAAEmqD,MAAMhZ,EAAE5sC,MAAMyK,KAAKwwC,EAAE5kD,EAAEsrB,EAAE,kBAAkBA,EAAE,gBAAgB,KAAKirB,EAAE5sC,MAAMslE,UAAU,SAAS,GAAG7pE,EAAEmqD,OAAOhZ,EAAE5sC,MAAMyK,KAAKwwC,EAAE5kD,EAAE4kD,EAAE9P,EAAExpB,EAAE,gBAAgB,KAAKirB,EAAE5sC,MAAMslE,UAAU,QAAQ14B,EAAE5sC,MAAMsO,MAAMqT,EAAE,kBAAkB,KAAK09B,EAAEv8B,YAAY8pB,GAAGtkC,EAAE6kE,SAAShmD,KAAKylB,OAAM,IAAIhrB,EAAEvnB,KAAK8yE,SAAS,GAAGhiC,EAAErJ,EAAEwsB,iBAAiB,oBAAoB,KAAK1vC,SAASgD,EAAE5hB,MAAMynB,IAAI,IAAI0jB,EAAEnpB,EAAEmpB,IAAIvpB,EAAE5hB,MAAMynB,IAAI7I,SAASgD,EAAE5hB,MAAMynB,IAAI,IAAI0jB,EAAE,EAAE,MAAM,IAAIoc,EAAKzlB,EAAE7E,UAAU,qBAAuByqB,EAAE5lB,EAAE40B,gBAAgB,IAAM,GAAGhP,EAAE,GAAGpd,MAAMod,MAAMA,EAAE,GAAGH,EAAEhnD,EAAE06C,EAAE5kD,EAAEqxD,EAAEzM,EAAE9P,IAAQoc,EAAEhnD,EAAE06C,EAAE5kD,GAAG+0C,EAAEwZ,YAAY9iB,EAAEwsB,iBAAiB,gBAAgB,KAAKljB,EAAEyZ,UAAU/iB,EAAEwsB,iBAAiB,gBAAgB,KAAKljB,EAAEkY,YAAYlY,EAAE8Z,OAAOqC,EAAE5lC,EAAEs5B,EAAE55B,IAAI+pB,EAAE+Z,OAAOoC,EAAE5lC,EAAEs5B,EAAE55B,EAAE45B,EAAE7P,IAAIA,EAAE2b,YAAY3b,EAAEoa,SAAS,GAAG1jB,EAAE42B,YAAYttB,EAAEwZ,YAAY9iB,EAAEwsB,iBAAiB,gBAAgB,MAAMljB,EAAEyZ,UAAU/iB,EAAEwsB,iBAAiB,gBAAgB,MAAMljB,EAAEkY,YAAYlY,EAAE8Z,OAAOvjC,EAAEs5B,EAAE5kD,EAAE4kD,EAAE9P,GAAGxpB,EAAEs5B,EAAE55B,IAAI+pB,EAAE+Z,OAAOxjC,EAAEs5B,EAAE5kD,EAAE4kD,EAAE9P,GAAGxpB,EAAEs5B,EAAE55B,EAAE45B,EAAE7P,IAAIA,EAAE2b,YAAY3b,EAAEoa,UAAU,GAAG1jB,EAAEwsB,iBAAiB,WAAW,KAAK,CAAC,GAAG/O,EAAEiX,OAAO,CAAC,IAAI7O,EAAEtmC,EAAE,KAAKk+B,EAAEiX,OAAOn7D,SAAQ,SAASI,GAAG,QAAG,IAASA,EAAEqpC,MAAM,CAACthC,EAAEy3C,EAAE5kD,EAAEoF,EAAEk7D,IAAI1b,EAAE9P,EAAE+T,EAAEjE,EAAE55B,EAAE45B,EAAE7P,GAAEwB,EAAE6S,EAAEhkD,EAAEqpC,MAAM,MAAO9kC,MAAMslE,UAAU,SAAS14B,EAAE5sC,MAAMynB,IAAIy3B,EAAEyI,EAAE,gBAAgB,KAAK,IAAIpnD,EAAEiD,EAAEmkD,EAAE,kBAAkB,EAAEpnD,EAAEonD,EAAE,kBAAkBzlC,IAAI3hB,EAAE2hB,EAAEylC,EAAE,kBAAkB/a,EAAE5sC,MAAMslE,UAAU,SAAS/kE,EAAE,IAAIA,EAAE,EAAEqsC,EAAE5sC,MAAMslE,UAAU,QAAQ14B,EAAE5sC,MAAMyK,KAAKlK,EAAE,KAAKqsC,EAAE5sC,MAAMsO,MAAMq5C,EAAE,kBAAkB,KAAKtI,EAAEv8B,YAAY8pB,GAAGtkC,EAAE4kE,SAAS/lD,KAAKylB,OAA8H,IAAIgb,EAAwCF,EAApKtc,EAAEwZ,YAAY9iB,EAAEwsB,iBAAiB,gBAAgB,KAAKljB,EAAEyZ,UAAU/iB,EAAEwsB,iBAAiB,gBAAgB,KAAKljB,EAAEkY,YAAqBxhB,EAAE7E,UAAU,qBAAuByqB,EAAE5lB,EAAEg1B,gBAAgB,EAAE,IAAM,GAAGpP,EAAE,KAAKA,EAAE,GAAGE,EAAEjmC,EAAEs5B,EAAE55B,EAAEqmC,EAAEzM,EAAE7P,IAAQwc,EAAEjmC,EAAEs5B,EAAE55B,EAAE45B,EAAE7P,GAAGA,EAAE8Z,OAAO3kD,EAAE06C,EAAE5kD,GAAGuxD,GAAGxc,EAAE+Z,OAAO5kD,EAAE06C,EAAE5kD,EAAE4kD,EAAE9P,GAAGyc,GAAGxc,EAAE2b,YAAY3b,EAAEoa,SAASpa,EAAEuZ,YAAYhjC,EAAEsL,QAAQ6U,EAAEvhC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,mBAAmB,KAAKogD,GAAG,CAAC,SAAS5xE,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAIiP,EAAE,WAAWjO,KAAKizE,WAAW,KAAKjzE,KAAKkzE,YAAY,KAAKlzE,KAAKmzE,YAAY,KAAKnzE,KAAKozE,aAAa,MAAMnlE,EAAEukC,UAAU/wC,SAAS,WAAW,MAAM,sBAAsBwM,EAAEukC,UAAUm3B,SAAS,SAASvoE,GAAG,MAAM,CAACqnD,OAAOzoD,KAAKyoD,OAAO0pB,aAAanyE,KAAKmyE,eAAe,IAAIlrD,EAAE,SAAS7lB,GAAG,IAAI8E,EAAEE,SAASkiB,cAAc,OAAO,OAAOpiB,EAAEP,MAAMk/B,SAAS,WAAW3+B,EAAEP,MAAMyK,KAAKhP,EAAEpF,EAAE,KAAKkK,EAAEP,MAAMynB,IAAIhsB,EAAE4lB,EAAE,KAAK9gB,EAAEP,MAAMsO,MAAM7S,EAAE0vC,EAAE,KAAK5qC,EAAEP,MAAMC,OAAOxE,EAAE2vC,EAAE,KAAK7qC,GAAG+H,EAAEukC,UAAU6gC,cAAc,WAAW,IAAI,IAAIjyE,EAAE,CAACpB,KAAKizE,WAAWjzE,KAAKkzE,YAAYlzE,KAAKmzE,YAAYnzE,KAAKozE,cAAcltE,EAAE,EAAEA,EAAE9E,EAAEqL,OAAOvG,IAAI,CAAC,IAAIohB,EAAElmB,EAAE8E,GAAGohB,GAAIA,EAAEq3B,YAAYr3B,EAAEq3B,WAAWh2B,YAAYrB,GAAItnB,KAAKizE,WAAW,KAAKjzE,KAAKkzE,YAAY,KAAKlzE,KAAKmzE,YAAY,KAAKnzE,KAAKozE,aAAa,MAAM,IAAI3rC,EAAE,SAASrmC,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,GAAG,IAAIwgB,EAAErhC,SAASkiB,cAAc,OAAOmf,EAAE9hC,MAAMk/B,SAAS,WAAW4C,EAAE9hC,MAAMyK,KAAK,GAAGkX,EAAE,MAAMphB,EAAElK,EAAE,KAAKyrC,EAAE9hC,MAAMynB,IAAIlnB,EAAE8gB,EAAE,KAAKygB,EAAE9hC,MAAMsO,MAAM/N,EAAE4qC,EAAE,KAAKrJ,EAAE9hC,MAAMC,OAAOM,EAAE6qC,EAAE,KAAKtJ,EAAE9hC,MAAM+mC,SAAStrC,EAAEwhC,UAAU,eAAe,EAAE,KAAK,IAAI2P,EAAEnsC,SAASkiB,cAAc,OAAOiqB,EAAE5sC,MAAMk/B,SAAS,WAAW0N,EAAE5sC,MAAMsO,MAAM/N,EAAE6qC,EAAE,KAAKwB,EAAE5sC,MAAMC,OAAOM,EAAE4qC,EAAE,KAAKyB,EAAE5sC,MAAMynB,IAAIlnB,EAAE6qC,EAAE,EAAE7qC,EAAE4qC,EAAE,EAAE,KAAKyB,EAAE5sC,MAAMyK,KAAKlK,EAAE4qC,EAAE,EAAE5qC,EAAE6qC,EAAE,EAAE,KAAKwB,EAAEzwC,UAAU,yBAAyB,GAAGwlB,EAAE,QAAQ,QAAQ,IAAIne,EAAE/C,SAASkiB,cAAc,OAAO,OAAOnf,EAAErH,UAAUmM,EAAE9E,EAAEsc,UAAUwB,EAAEsrB,EAAE9pB,YAAYtf,GAAGs+B,EAAEhf,YAAY8pB,GAAG9K,GAAGx5B,EAAEukC,UAAUiW,OAAO,SAASrnD,GAAGpB,KAAKqzE,gBAAgB,IAAIntE,EAAE9E,EAAEyoD,QAAQviC,EAAElmB,EAAEk5D,UAAU,GAAGp0D,EAAE08B,UAAU,SAAS,CAAC,IAAI30B,EAAE7M,EAAEs5D,gBAAgBx0D,EAAE08B,UAAU,gBAAgB5iC,KAAKizE,WAAWhsD,EAAEhZ,GAAGjO,KAAKizE,WAAWttE,MAAM+mC,SAASxmC,EAAE08B,UAAU,eAAe,EAAE,MAAS2P,EAAEnsC,SAASkiB,cAAc,QAASxmB,UAAU,8BAA8BywC,EAAE9sB,UAAUvf,EAAE08B,UAAU,SAAS5iC,KAAKizE,WAAWxqD,YAAY8pB,GAAGjrB,EAAEmB,YAAYzoB,KAAKizE,YAAY,GAAG/sE,EAAE08B,UAAU,UAAU,CAAC,IAAqJ2P,EAAjJppC,EAAE/H,EAAEu5D,mBAAmBz0D,EAAE08B,UAAU,iBAAiB5iC,KAAKkzE,YAAYjsD,EAAE9d,GAAGnJ,KAAKkzE,YAAYvtE,MAAM+mC,SAASxmC,EAAE08B,UAAU,gBAAgB,EAAE,MAAS2P,EAAEnsC,SAASkiB,cAAc,QAASxmB,UAAU,+BAA+BywC,EAAE9sB,UAAUvf,EAAE08B,UAAU,UAAU5iC,KAAKkzE,YAAYzqD,YAAY8pB,GAAGjrB,EAAEmB,YAAYzoB,KAAKkzE,aAAa,GAAGhtE,EAAE08B,UAAU,UAAU,CAAC,IAAIiiB,EAAEzjD,EAAEo5D,iBAAiB,GAAGx6D,KAAKmzE,YAAY1rC,EAAEvhC,EAAE2+C,EAAE,EAAE,+BAA+B3+C,EAAE08B,UAAU,WAAWtb,EAAEmB,YAAYzoB,KAAKmzE,aAAa,GAAGjtE,EAAE08B,UAAU,YAAY,GAAG18B,EAAEm4D,UAAU,CAAC,IAAIttB,EAAE3vC,EAAEq5D,kBAAkB,GAAGz6D,KAAKozE,aAAa3rC,EAAEvhC,EAAE6qC,EAAE,EAAE,gCAAgC7qC,EAAE08B,UAAU,YAAYtb,EAAEmB,YAAYzoB,KAAKozE,gBAAgBnlE,EAAEukC,UAAU2/B,aAAa,SAAS/wE,GAAG,IAAI8E,EAAE9E,EAAEyoD,QAAQ7pD,KAAKizE,aAAajzE,KAAKizE,WAAWpxE,SAAS,GAAG4jB,UAAUvf,EAAE08B,UAAU,UAAU5iC,KAAKkzE,cAAclzE,KAAKkzE,YAAYrxE,SAAS,GAAG4jB,UAAUvf,EAAE08B,UAAU,WAAW5iC,KAAKmzE,cAAcnzE,KAAKmzE,YAAYtxE,SAAS,GAAGA,SAAS,GAAG4jB,UAAUvf,EAAE08B,UAAU,WAAW5iC,KAAKozE,eAAepzE,KAAKozE,aAAavxE,SAAS,GAAGA,SAAS,GAAG4jB,UAAUvf,EAAE08B,UAAU,aAAa30B,EAAEukC,UAAU0/B,WAAW,aAAajkE,EAAEukC,UAAUzR,QAAQ,WAAW/gC,KAAKqzE,iBAAiB/rD,EAAEsL,QAAQ3kB,EAAE/H,EAAEy+C,QAAQr9B,EAAEsL,SAAS,IAAI0gD,GAAG,CAAC,SAASlyE,EAAE8E,EAAEohB,GAAG,aAAavmB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAAIiP,EAAE,aAAaA,EAAEukC,UAAU/wC,SAAS,WAAW,MAAM,mBAAmBwM,EAAEukC,UAAUm3B,SAAS,SAASvoE,GAAG,MAAM,CAAC2xE,cAAc/yE,KAAK+yE,gBAAgB9kE,EAAEukC,UAAUugC,cAAc,SAAS3xE,GAAG,SAAS8E,EAAE9E,GAAG,OAAO/E,KAAKgpB,MAAMjkB,GAAG,GAAG,SAASkmB,EAAElmB,GAAG,OAAO/E,KAAKgpB,MAAMjkB,GAAG,GAAG,IAAI6M,EAAEgZ,EAAIsrB,EAAEppC,EAAE/H,EAAEyoD,QAAQhF,EAAEzjD,EAAE8oD,eAAenZ,EAAE5nC,EAAEgqD,QAAQnO,EAAE5jD,EAAEyoD,QAAQyK,SAASxL,KAAK,GAAG3/C,EAAE8qD,iBAAiB,WAAW,KAAK,CAAC,IAAI,IAAIpsC,EAAE,CAAC,IAAI,MAAMF,EAAE,GAAGxD,EAAE,GAAGghC,EAAE,GAAGC,EAAE,GAAGF,EAAE,GAAGzd,EAAE,EAAEA,EAAE5f,EAAEpb,OAAOg7B,IAAI0d,EAAE1d,GAAGt+B,EAAE8qD,iBAAiB,WAAWpsC,EAAE4f,IAAI0d,EAAE1d,KAAK9f,EAAE8f,GAAGt+B,EAAE8qD,iBAAiB,gBAAgBpsC,EAAE4f,IAAItjB,EAAEsjB,GAAGt+B,EAAE8qD,iBAAiB,gBAAgBpsC,EAAE4f,IAAIyd,EAAEzd,GAAGt+B,EAAE8qD,iBAAiB,kBAAkBpsC,EAAE4f,IAAI2d,EAAE3d,GAAGyd,EAAEzd,IAAIyd,EAAEzd,GAAGh7B,QAAQ,GAAG8lC,EAAExB,EAAEyrB,OAAO3X,EAAExpB,OAAOkX,EAAEvxC,SAAQ,SAASI,GAAG,GAAGA,EAAEm7D,SAAS,CAAC,IAAI90B,EAAErmC,EAAEmqD,KAAKpG,EAAE1d,KAAKod,EAAExpB,OAAO+pB,EAAE3d,IAAIod,EAAEsF,aAAatF,EAAEsF,YAAYjF,EAAEzd,IAAIod,EAAE0F,YAAY5iC,EAAE8f,GAAGod,EAAE2F,UAAUrmC,EAAEsjB,GAAGx5B,EAAE/H,EAAE8+C,EAAEhpD,GAAGirB,EAAEK,EAAE09B,EAAEh+B,EAAE5lB,EAAEk7D,IAAItX,EAAEjU,GAAG8T,EAAEoE,YAAYpE,EAAEgG,OAAO58C,EAAEgZ,GAAG49B,EAAEiG,OAAO78C,EAAE+2C,EAAElU,EAAE7pB,GAAG49B,EAAEsG,SAAStG,EAAEyF,eAAczF,EAAEyF,UAAanhD,EAAE8qD,iBAAiB,WAAW,OAAM1hB,EAAExB,EAAEorB,OAAOtX,EAAExpB,OAAW6pB,EAAE/7C,EAAE8qD,iBAAiB,kBAAkB,MAAK7O,EAAEF,GAAGA,EAAEz4C,QAAQ,IAAKo4C,EAAEsF,aAAatF,EAAEsF,YAAYjF,GAAGL,EAAE0F,YAAYphD,EAAE8qD,iBAAiB,gBAAgB,KAAKpP,EAAE2F,UAAUrhD,EAAE8qD,iBAAiB,gBAAgB,KAAK1hB,EAAEvxC,SAAQ,SAASI,GAAGA,EAAEm7D,WAAWtuD,EAAE/H,EAAE8+C,EAAEhpD,EAAEoF,EAAEk7D,IAAItX,EAAElU,GAAG7pB,EAAEK,EAAE09B,EAAEh+B,EAAEg+B,EAAEjU,GAAG8T,EAAEoE,YAAYpE,EAAEgG,OAAO58C,EAAEgZ,GAAG49B,EAAEiG,OAAO78C,EAAE+2C,EAAEh+B,GAAG69B,EAAE6H,YAAY7H,EAAEsG,aAAY/F,GAAGP,EAAEsF,aAAatF,EAAEsF,YAAY,IAAItF,EAAEyF,YAAYr8C,EAAEukC,UAAUzR,QAAQ,aAAazZ,EAAEsL,QAAQ3kB,EAAE/H,EAAEy+C,QAAQr9B,EAAEsL,SAAS,IAAI2gD,GAAG,CAAC,SAASnyE,EAAE8E,EAAEohB,GAAG,aAAa,SAASrZ,EAAE7M,EAAE8E,EAAEohB,GAAG,IAAIlmB,GAAGA,EAAEqL,QAAQ,EAAE,MAAM,gEAAgEvG,EAAE,YAAY,IAAI+H,EAAEgZ,EAAEwgB,EAAIt+B,EAAE07C,EAAE,EAAE9T,EAAE,EAAEiU,EAAE,GAAG,IAAI/2C,EAAE,EAAEA,GAAG7M,EAAEqL,OAAOwB,IAAI42C,GAAGzjD,EAAE6M,EAAE7M,EAAEqL,QAAQ,IAAItD,EAAE9M,KAAKG,MAAM8qB,GAAGu9B,EAAEzjD,EAAE,MAAM,EAAE,CAAC,IAAI6M,EAAE,EAAEA,EAAE7M,EAAEqL,OAAOwB,IAAI+2C,EAAE/2C,GAAG7M,EAAE6M,GAAGqZ,EAAEypB,EAAEiU,EAAEv4C,WAAW,CAAC,IAAItD,EAAE,EAAE8E,EAAE,EAAEA,EAAE7M,EAAEqL,OAAOwB,IAAI+2C,EAAE/2C,GAAG7M,EAAE6M,GAAG42C,EAAE9T,EAAEiU,EAAEv4C,OAAO,EAAE,IAAIob,EAAE,GAAG,IAAIZ,EAAE,EAAEA,EAAE9d,EAAE8d,IAAI,IAAIhZ,EAAE,EAAEA,EAAE8iC,EAAE9iC,GAAG,EAAEw5B,EAAEud,EAAE/2C,EAAE+2C,EAAEv4C,QAAyCob,GAAG,0DAAlC5Z,EAAE7M,EAAEqL,OAAOu4C,GAAG/2C,EAAE,GAAG+2C,EAAEv4C,QAAQ,GAAgE,qBAAqBg7B,EAAE,cAAc,OAAO5f,EAAE9mB,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA4ByoC,EAAE,SAASrmC,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAxB9E,EAAE,qBAAiLmxC,EAAE,WAAWvyC,KAAKwzE,YAAY,KAAKxzE,KAAKyzE,mBAAkB,GAAIlhC,EAAEC,UAAU/wC,SAAS,WAAW,MAAM,iBAAiB8wC,EAAEC,UAAUm3B,SAAS,SAASvoE,GAAG,IAAI8E,EAAEohB,EAAElmB,EAAEwhC,UAAU,aAAa,OAAOtb,GAAG,OAAOA,EAAEphB,EAAE,iBAAiBohB,GAAGA,aAAaiqB,OAAOnrC,SAASof,eAAe8B,GAAGA,IAAGphB,EAAEE,SAASkiB,cAAc,QAASxmB,UAAU,iBAAiBV,EAAEm5D,SAAS9xC,YAAYviB,GAAGlG,KAAKyzE,mBAAkB,GAAIzzE,KAAKwzE,YAAYttE,EAAElG,KAAK0zE,cAAc,GAAG,CAACtjC,OAAOpwC,KAAKowC,OAAOujC,SAAS3zE,KAAK2zE,SAASC,QAAQ5zE,KAAK4zE,QAAQzB,aAAanyE,KAAKmyE,eAAe,IAA2LttB,EAAE,SAASzjD,GAAG,OAAOA,EAAEgI,QAAQ,KAAK,SAASA,QAAQ,KAAK,UAAUA,QAAQ,KAAK,QAAQA,QAAQ,KAAK,SAASmpC,EAAEC,UAAUpC,OAAO,SAAShvC,GAAG,IAAI8E,EAAE9E,EAAEgtE,UAAU9mD,EAAElmB,EAAEitE,eAAepgE,EAAE7M,EAAE+sE,YAAYlnD,EAAE7lB,EAAEyoD,QAAQjnB,UAAU,UAAU,GAAG,UAAU3b,EAAb,CAAkE,GAAG,WAAWA,EAAE,CAAC,IAAIwgB,EAAErmC,EAAEyoD,QAAQyK,SAASxL,KAAK3/C,EAAEnJ,KAAKwzE,YAAY9a,YAAY7T,EAAEzjD,EAAEyoD,QAAQoK,iBAAiB,iBAAiB,KAAKljB,EAAEzpB,EAAE,GAAGtrB,EAAEyrC,EAAEqJ,EAAE,GAAGkU,EAAE19B,EAAE,GAAGN,EAAEygB,EAAEsJ,EAAE,GAAGA,EAAE5nC,EAAE,EAAEs+B,EAAEqJ,IAAIC,EAAEA,EAAE,IAAI5nC,GAAG07C,EAAEpd,EAAEzrC,IAAIoF,EAAEyoD,QAAQ0Q,SAAS9xC,YAAYzoB,KAAKwzE,aAAaxzE,KAAKwzE,YAAY7tE,MAAMyK,KAAKy0C,EAAE9T,EAAE,KAAK/wC,KAAKwzE,YAAY7tE,MAAMynB,IAAI43B,EAAE,KAAK,IAAIn9B,EAAE0qB,EAAEshC,mBAAmBzyE,EAAEyoD,QAAQ3jD,EAAEohB,EAAEtnB,KAAK0zE,cAAczlE,GAAGjO,KAAKwzE,YAAY/tD,UAAUoC,EAAE7nB,KAAKwzE,YAAY7tE,MAAM80B,QAAQ,QAA1dz6B,KAAKwzE,YAAY7tE,MAAM80B,QAAQ,QAA+b8X,EAAEC,UAAUmhC,SAAS,SAASvyE,GAAG,WAAWA,EAAEyoD,QAAQjnB,UAAU,YAAY5iC,KAAKwzE,YAAY7tE,MAAM80B,QAAQ,QAAQ,IAAIv0B,EAAxgC,SAAS9E,GAAG,IAAI8E,EAAEE,SAASkiB,cAAc,QAAQpiB,EAAEqiB,aAAa,QAAQ,6CAA6CnnB,EAAEqnB,YAAYviB,GAAG,IAAIohB,EAAEphB,EAAEwyD,YAAY,OAAOt3D,EAAEunB,YAAYziB,GAAGohB,EAAw1Bne,CAAEnJ,KAAKwzE,aAAaxzE,KAAK0zE,cAAcxtE,EAAE,IAAIohB,EAAEirB,EAAEshC,mBAAmBzyE,EAAEyoD,aAAQ,OAAO,EAAO3jD,EAAE,MAAMlG,KAAKwzE,YAAY/tD,UAAU6B,GAAGirB,EAAEC,UAAU2/B,aAAa,SAAS/wE,GAAGpB,KAAK2zE,SAASvyE,IAAImxC,EAAEC,UAAUohC,QAAQ,SAASxyE,GAAG,GAAGpB,KAAKyzE,kBAAkB,CAACryE,EAAEyoD,QAAQ0Q,SAAS9xC,YAAYzoB,KAAKwzE,aAAa,IAAIttE,EAAE9E,EAAEyoD,QAAQmN,UAAU1vC,EAAEtnB,KAAKwzE,YAAY9a,YAAY14D,KAAKwzE,YAAY7tE,MAAMyK,KAAKlK,EAAElK,EAAEkK,EAAE4qC,EAAExpB,EAAE,EAAE,KAAKtnB,KAAKwzE,YAAY7tE,MAAMynB,IAAIlnB,EAAE8gB,EAAE,OAAOurB,EAAEC,UAAUzR,QAAQ,WAAW/gC,KAAKwzE,YAAY,MAAMjhC,EAAEshC,mBAAmB,SAASzyE,EAAE8E,EAAEohB,EAAEL,EAAE9d,GAAG,IAAI4nC,EAAE,CAAC8Y,QAAQzoD,EAAEpF,EAAEkK,EAAEw2D,OAAO,IAAI1X,EAAE,GAAGn9B,EAAEzmB,EAAE2rD,YAAY,GAAGllC,EAAE,IAAI,IAAIF,EAAE,EAAEA,EAAEE,EAAEpb,OAAOkb,IAAI,CAAC,IAAIxD,EAAE/iB,EAAEgrE,uBAAuBvkD,EAAEF,IAAwCy9B,EAAE,CAAC0uB,SAAS7lE,EAA9C7M,EAAEwhC,UAAU,gBAAgB/a,EAAEF,IAAoBxD,EAAEsoB,MAAMxlB,GAAGwjB,MAAM5iB,EAAEF,GAAGosD,UAAUlvB,EAAEh9B,EAAEF,IAAIqsD,UAAU7vD,EAAEkS,QAAQoW,MAAMtoB,EAAEsoB,OAAOsE,EAAE2rB,OAAO5vC,KAAKs4B,GAAGJ,EAAEn9B,EAAEF,IAAIy9B,EAAE,QAAG,IAASl/C,EAAE,CAAC,IAAIg/C,EAAE9jD,EAAEipE,oBAAoB,KAAKzpB,EAAEsE,EAAE,kBAAkBnU,EAAEkjC,MAAMrzB,EAAEtO,KAAKlxC,EAAE8E,EAAEg/C,EAAEr9B,EAAE,GAAGzmB,EAAE+H,EAAE,GAAO,IAAI6d,EAAE,GAAGhrB,EAAEoF,EAAEi9D,UAAjB,IAA2B12C,EAAE,EAAEA,EAAE3rB,EAAE2rB,IAAIX,EAAEW,GAAGvmB,EAAEipE,oBAAoB,KAAK1iD,EAAE,EAAEA,EAAE,KAAK,IAAIP,EAAEhmB,EAAEwhC,UAAU,wBAAwBrb,EAAEnmB,EAAEg9D,qBAAqB,IAAIz2C,EAAE,EAAEA,EAAEL,EAAE7a,OAAOkb,IAAI,CAAC,IAAImpB,EAAExpB,EAAEK,GAAe,IAAZy9B,EAAEJ,EAAElU,EAAE5vB,OAAW8F,EAAE8pB,EAAEoX,KAAK,IAAIpX,EAAEoX,OAAO9gC,GAAG6oB,MAAMa,EAAEsX,SAAShD,EAAE4uB,WAAU,MAAO,CAAC,IAAuC9mB,EAAElmC,GAArC7C,EAAE/iB,EAAEgrE,uBAAuBt7B,EAAE5vB,OAAYqqC,KAAK,GAAyB+B,EAApBJ,EAAE,kBAAsB5a,KAAKlxC,EAAE0vC,EAAEoX,KAAKgF,EAAEpc,EAAE5vB,KAAK9f,EAAE+H,EAAE0e,EAAEoB,QAAQ6nB,EAAE5vB,OAAOumB,EAAEI,OAAOud,EAAE,CAAC8uB,MAAM5mB,IAAIxc,EAAE5vB,MAAMqG,IAAI69B,EAAE+uB,eAAc,KAAM,OAAO/yE,EAAEwhC,UAAU,oBAAoB2P,EAAE6hC,kBAAkB9hC,KAAKlxC,EAAE2vC,IAAIwB,EAAE6hC,iBAAiB,SAAShzE,GAAG,IAAI8E,EAAE9E,EAAEyoD,QAAQ,IAAG,IAAK3jD,EAAE08B,UAAU,yBAAyB,MAAM,GAAG,IAAItb,EAAErZ,EAAE/H,EAAE08B,UAAU,uBAAuB,QAAG,IAASxhC,EAAEpF,EAAE,CAAC,GAAG,UAAUkK,EAAE08B,UAAU,UAAU,MAAM,GAAGtb,EAAE,GAAG,IAAI,IAAIL,EAAE,EAAEA,EAAE7lB,EAAEs7D,OAAOjwD,OAAOwa,KAASwgB,EAAErmC,EAAEs7D,OAAOz1C,IAAK+sD,YAAY,KAAK1sD,IAAIA,GAAGrZ,EAAE,QAAQ,KAAKqZ,GAAG,0CAA0CmgB,EAAEgF,MAAM,MAAMhF,EAAEqsC,SAAS,IAAIrsC,EAAEssC,UAAU,WAAW,OAAOzsD,EAAgB,IAAdA,EAAElmB,EAAE6yE,MAAM,IAAYhtD,EAAE,EAAEA,EAAE7lB,EAAEs7D,OAAOjwD,OAAOwa,IAAI,CAAC,IAAIwgB,KAAErmC,EAAEs7D,OAAOz1C,IAAQ+sD,YAAW/lE,IAAIqZ,GAAG,QAAQA,GAAG,SAASmgB,EAAE0sC,cAAc,qBAAqB,IAAI,4BAA4B1sC,EAAEgF,MAAM,MAAMhF,EAAEssC,UAAU,qBAAqBtsC,EAAEysC,MAAM,WAAW,OAAO5sD,GAAGA,EAAEsL,QAAQ2f,EAAErsC,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,mBAAmB,KAAKyhD,GAAG,CAAC,SAASjzE,EAAE8E,EAAEohB,GAAG,aAAa,SAASrZ,EAAE7M,GAAG,OAAOA,GAAGA,EAAEwlD,WAAWxlD,EAAE,CAACwxB,QAAQxxB,GAAGL,OAAO4lD,eAAer/B,EAAE,aAAa,CAACtoB,OAAM,IAAK,IAA4ByoC,EAAE,SAASrmC,GAAG,GAAGA,GAAGA,EAAEwlD,WAAW,OAAOxlD,EAAE,IAAI8E,EAAE,GAAG,GAAG,MAAM9E,EAAE,IAAI,IAAIkmB,KAAKlmB,EAAEL,OAAOyxC,UAAU3lB,eAAeylB,KAAKlxC,EAAEkmB,KAAKphB,EAAEohB,GAAGlmB,EAAEkmB,IAAI,OAAOphB,EAAE0sB,QAAQxxB,EAAE8E,EAArJ,CAAxB9E,EAAE,qBAAqN+H,EAAE8E,EAApC7M,EAAE,iCAA6D2vC,EAAE9iC,EAAtB7M,EAAE,mBAAyB4jD,EAAE,WAAWhlD,KAAKs0E,mBAAmB,oBAAoBC,WAAWv0E,KAAKw0E,gBAAgB,mBAAmBlhE,KAAK2uC,UAAUwyB,YAAYz0E,KAAK00E,mBAAkB,GAAI1vB,EAAExS,UAAU/wC,SAAS,WAAW,MAAM,wBAAwBujD,EAAExS,UAAUm3B,SAAS,SAASvoE,GAAG,OAAOpB,KAAKwoD,SAASpnD,EAAEpB,KAAK20E,WAAW,sBAAsB30E,KAAKupE,mBAAmB,CAAC9gB,OAAOzoD,KAAK40E,cAAchB,QAAQ5zE,KAAK60E,mBAAmB1C,aAAanyE,KAAK80E,0BAA0B9vB,EAAExS,UAAUzR,QAAQ,WAAW/gC,KAAK+0E,UAAU,KAAK/0E,KAAKg1E,UAAU,KAAKh1E,KAAKi1E,gBAAgB,KAAKj1E,KAAKk1E,iBAAiB,MAAMlwB,EAAExS,UAAUmiC,WAAW,SAASvzE,EAAE8E,GAAG,OAAOlG,KAAKwoD,SAAS5lB,UAAUxhC,EAAE8E,IAAI8+C,EAAExS,UAAU2iC,kBAAkB,SAAS/zE,EAAE8E,GAAGlG,KAAKwoD,SAAS8U,OAAOl8D,GAAG8E,GAAG8+C,EAAExS,UAAU+2B,iBAAiB,WAAWvpE,KAAKo1E,kBAAkBp1E,KAAKq1E,qBAAqBr1E,KAAKs1E,mBAAmBt1E,KAAK20E,WAAW,mBAAmBpzE,QAAQoN,KAAK,kFAAkF3O,KAAKwoD,SAAS8nB,cAAc,CAACrf,eAAc,IAAI,IAAKjxD,KAAK00E,mBAAkB,EAAG10E,KAAKu1E,eAAevwB,EAAExS,UAAU+iC,YAAY,WAAW,IAAIn0E,EAAEpB,KAAKw1E,UAAUx1E,KAAKwoD,SAAS+R,SAASn5D,EAAEqnB,YAAYzoB,KAAK+0E,WAAW3zE,EAAEqnB,YAAYzoB,KAAKg1E,WAAW5zE,EAAEqnB,YAAYzoB,KAAKi1E,iBAAiB7zE,EAAEqnB,YAAYzoB,KAAKk1E,mBAAmBlwB,EAAExS,UAAUijC,iBAAiB,WAAW,IAAIr0E,EAAEpB,KAAKw1E,UAAUp0E,EAAEunB,YAAY3oB,KAAK+0E,WAAW3zE,EAAEunB,YAAY3oB,KAAKg1E,WAAW5zE,EAAEunB,YAAY3oB,KAAKi1E,iBAAiB7zE,EAAEunB,YAAY3oB,KAAKk1E,kBAAkBl1E,KAAKw1E,UAAU,MAAMxwB,EAAExS,UAAUoiC,cAAc,SAASxzE,GAAGpB,KAAK20E,WAAW,sBAAsBvzE,EAAEu5D,mBAAmB36D,KAAK20E,WAAW,uBAAuB,IAAI3vB,EAAExS,UAAUqiC,mBAAmB,WAAW70E,KAAK01E,sBAAsB11E,KAAK21E,UAAU31E,KAAK41E,qBAAqB5wB,EAAExS,UAAUsiC,wBAAwB,WAAW90E,KAAK01E,sBAAsB11E,KAAK61E,mBAAmB71E,KAAK81E,oBAAoB91E,KAAK+1E,0BAA0B/wB,EAAExS,UAAUkjC,kBAAkB,WAAW,IAAIt0E,EAAEpB,KAAK20E,WAAW,qBAAqB,GAAGvzE,EAAEpB,KAAK00E,kBAAkB10E,KAAKw1E,WAAWx1E,KAAKw1E,UAAU72B,YAAY3+C,KAAKu1E,cAAcv1E,KAAKupE,wBAAwB,GAAGvpE,KAAKw1E,UAAU,CAACx1E,KAAKy1E,mBAAmB,IAAIvvE,EAAElG,KAAKwoD,SAAS9/B,YAAW,WAAWxiB,EAAE0iD,OAAO,EAAE1iD,EAAEuK,WAAU,GAAG,OAAOrP,GAAG4jD,EAAExS,UAAUmjC,QAAQ,WAAW,SAASv0E,EAAEA,EAAE8E,EAAEohB,EAAErZ,GAAG,IAAIgZ,EAAEhZ,GAAGw5B,EAAE47B,qBAAqBn9D,GAAG9E,EAAEuE,MAAMynB,IAAI9F,EAAEN,EAAE,KAAK5lB,EAAEuE,MAAMyK,KAAKkX,EAAEtrB,EAAE,KAAKoF,EAAE6S,MAAMqT,EAAEwpB,EAAE7pB,EAAE7lB,EAAEwE,OAAO0hB,EAAEypB,EAAE9pB,EAAE7lB,EAAEuE,MAAMsO,MAAMqT,EAAEwpB,EAAE,KAAK1vC,EAAEuE,MAAMC,OAAO0hB,EAAEypB,EAAE,KAAK,GAAG9pB,GAAG/gB,EAAEg7B,MAAMja,EAAEA,GAAG,IAAI/gB,EAAElG,KAAKwoD,SAAS2K,QAAQpK,cAAczhC,EAAE,EAAEtnB,KAAKwoD,SAASyL,iBAAiB,WAAW,OAAO3sC,EAAEtnB,KAAK20E,WAAW,gBAAgB30E,KAAK20E,WAAW,qBAAqB,EAAE30E,KAAK20E,WAAW,iBAAiB30E,KAAKg2E,YAAY,CAACh6E,EAAEkK,EAAElK,EAAEgrB,EAAE9gB,EAAE8gB,EAAE9gB,EAAE6qC,EAAEzpB,EAAE,EAAEwpB,EAAE5qC,EAAE4qC,EAAEC,EAAE/wC,KAAK20E,WAAW,wBAAwB,IAAI1mE,EAAEjO,KAAKwoD,SAAS6D,iBAAiB,cAAcjrD,EAAEpB,KAAK+0E,UAAU/0E,KAAKi2E,cAAcj2E,KAAKg2E,YAAY/nE,GAAG7M,EAAEpB,KAAKg1E,UAAUh1E,KAAKk2E,cAAcl2E,KAAKg2E,YAAY/nE,IAAI+2C,EAAExS,UAAU4iC,gBAAgB,WAAWp1E,KAAK+0E,UAAUttC,EAAE27B,eAAepjE,KAAK+0E,UAAUjzE,UAAU,4BAA4B9B,KAAK+0E,UAAUpvE,MAAMk/B,SAAS,WAAW7kC,KAAK+0E,UAAUpvE,MAAMqsE,OAAO,EAAEhyE,KAAKi2E,cAAcxuC,EAAE28B,WAAWpkE,KAAK+0E,WAAW/0E,KAAKg1E,UAAUvtC,EAAE27B,eAAepjE,KAAKg1E,UAAUlzE,UAAU,4BAA4B9B,KAAKg1E,UAAUrvE,MAAMk/B,SAAS,WAAW7kC,KAAKg1E,UAAUrvE,MAAMqsE,OAAO,EAAEhyE,KAAKg1E,UAAUrvE,MAAMwwE,OAAO,UAAUn2E,KAAKk2E,cAAczuC,EAAE28B,WAAWpkE,KAAKg1E,YAAYhwB,EAAExS,UAAU6iC,mBAAmB,WAAW,IAAIj0E,EAAE,IAAIg1E,MAAMh1E,EAAEU,UAAU,8BAA8BV,EAAEuE,MAAMk/B,SAAS,WAAWzjC,EAAEuE,MAAMqsE,OAAO,GAAG5wE,EAAEuE,MAAMqnD,WAAW,SAAS5rD,EAAEuE,MAAMwwE,OAAO,aAAa/0E,EAAE6S,MAAM,EAAE7S,EAAEwE,OAAO,GAAGxE,EAAEqxC,IAAI,iYAAiYzyC,KAAKw0E,kBAAkBpzE,EAAE6S,OAAO,EAAE7S,EAAEwE,QAAQ,GAAG5F,KAAKi1E,gBAAgB7zE,EAAEpB,KAAKk1E,iBAAiB9zE,EAAEi1E,WAAU,IAAKrxB,EAAExS,UAAU8iC,iBAAiB,WAAW,IAAIl0E,EAAE8E,EAAEohB,EAAErZ,EAAEgZ,EAAEsrB,EAAEsS,EAAEG,EAAEn9B,EAAEF,EAAExD,EAAEghC,EAAEC,EAAEF,EAAEtE,EAAE5gD,KAAKgnB,EAAE5gB,SAASpK,EAAE,EAAEorB,EAAE,KAAKG,GAAE,EAAGupB,GAAE,EAAGoc,GAAGltD,KAAKw0E,gBAAgBnnB,EAAE,IAAItc,EAAEne,QAAQxxB,EAAE,SAASA,GAAG,IAAI8E,EAAE06C,EAAE4H,SAAS+L,gBAAgBjtC,GAAGphB,EAAE,GAAGA,EAAE,IAAI06C,EAAEo1B,YAAYllC,EAAE,MAAM,CAAC5qC,EAAE,IAAI9E,EAAEk1E,cAAc11B,EAAEo1B,YAAYh6E,GAAGsrB,EAAEphB,EAAE,IAAI9E,EAAEm1E,eAAe31B,EAAEo1B,YAAYh6E,GAAGsrB,IAAIphB,EAAE,SAAS9E,GAAG,OAAOqmC,EAAEs6B,YAAY3gE,GAAGmmB,GAAE,EAAGvrB,EAAEoF,EAAEo1E,QAAQpvD,EAAEhmB,EAAE+yB,OAAO/yB,EAAE+yB,OAAO/yB,EAAEq1E,WAAW,cAAcr1E,EAAEY,MAAM,cAAcZ,EAAEY,OAAOylC,EAAEs9B,SAAS/9C,EAAE,YAAYM,GAAGmgB,EAAEs9B,SAAS/9C,EAAE,UAAU/Y,IAAI2yC,EAAEo0B,UAAUrvE,MAAMwwE,OAAO,aAAa9oB,EAAEqf,SAAQ,GAAIplD,EAAE,SAASlmB,GAAG,IAAImmB,EAAE,OAAM,EAAGkgB,EAAEs6B,YAAY3gE,GAAG,IAAI8E,EAAE9E,EAAEo1E,QAAQx6E,EAAE,GAAGK,KAAKC,IAAI4J,GAAG,EAAE,OAAM,EAAGlK,EAAEoF,EAAEo1E,QAAQ,IAAIlvD,EAAErZ,EAAE2yC,EAAE81B,uBAAuBtvD,GAAGw5B,EAAEq0B,iBAAiB3tD,EAAErZ,EAAEqoE,cAAcpwE,EAAEohB,EAAEjrB,KAAK8D,IAAImnB,EAAErZ,EAAEsoE,eAAenvD,EAAEnT,MAAM,GAAGqT,EAAEjrB,KAAKqD,IAAI4nB,EAAEs5B,EAAEo1B,YAAYh6E,KAAKsrB,EAAErZ,EAAEsoE,eAAerwE,EAAEohB,EAAEjrB,KAAK8D,IAAImnB,EAAEs5B,EAAEo1B,YAAYh6E,EAAE4kD,EAAEo1B,YAAYllC,GAAGxpB,EAAEjrB,KAAKqD,IAAI4nB,EAAErZ,EAAEqoE,cAAclvD,EAAEnT,MAAM,IAAI,IAAIs+B,EAAEnrB,EAAEnT,MAAM,EAAE,OAAOmT,EAAEzhB,MAAMyK,KAAKkX,EAAEirB,EAAE,KAAKqO,EAAEm1B,wBAAwB7oB,GAAGjmC,KAAI,GAAIhZ,EAAE,SAAS7M,GAAG,QAAQmmB,IAAIA,GAAE,EAAG8lC,EAAEwf,UAAUplC,EAAE2xB,YAAYpyC,EAAE,YAAYM,GAAGmgB,EAAE2xB,YAAYpyC,EAAE,UAAU/Y,GAAG2yC,EAAEo0B,UAAUrvE,MAAMwwE,OAAO,UAAUjpB,GAAGjmC,KAAI,IAAKA,EAAE,WAAW,IAAI,IAAI/gB,EAAE06C,EAAE81B,uBAAuB,GAAG91B,EAAEi1B,kBAAiB,EAAG3vE,EAAEgkE,SAAS,CAAC,IAAI5iD,EAAElmB,EAAE8E,GAAG06C,EAAE4H,SAASwkB,cAAc1lD,EAAE,GAAGA,EAAE,SAASs5B,EAAE4H,SAAS+P,YAAvI,QAA2J3X,EAAEi1B,kBAAiB,IAAKtjC,EAAE,SAASnxC,GAAG,IAAI8E,EAAE06C,EAAEq0B,gBAAgBlpC,wBAAwBzkB,EAAEphB,EAAEkK,KAAKlK,EAAE+N,MAAM,EAAmDhG,GAAjD/H,EAAE06C,EAAEs0B,iBAAiBnpC,yBAAgC37B,KAAKlK,EAAE+N,MAAM,EAAE,OAAO7S,EAAEo1E,QAAQlvD,GAAGlmB,EAAEo1E,QAAQvoE,GAAG42C,EAAE,SAASzjD,GAAG,QAAQ0vC,IAAIyB,EAAEnxC,KAAKw/C,EAAE81B,uBAAuBxM,YAAYziC,EAAEs6B,YAAY3gE,GAAG0vC,GAAE,EAAG90C,EAAEoF,EAAEo1E,QAAQ,cAAcp1E,EAAEY,OAAOylC,EAAEs9B,SAAS/9C,EAAE,YAAYg+B,GAAGvd,EAAEs9B,SAAS/9C,EAAE,UAAUa,KAAI,IAAKm9B,EAAE,SAAS5jD,GAAG,IAAI0vC,EAAE,OAAM,EAAGrJ,EAAEs6B,YAAY3gE,GAAG,IAAI8E,EAAE9E,EAAEo1E,QAAQx6E,EAAE,GAAGK,KAAKC,IAAI4J,GAAG,EAAE,OAAM,EAAGlK,EAAEoF,EAAEo1E,QAAQ,IAAIlvD,EAAEs5B,EAAE81B,uBAAuBzoE,EAAEqZ,EAAEgvD,cAAcrvD,EAAEK,EAAEivD,eAAehkC,EAAEtrB,EAAEhZ,EAAEA,EAAE/H,GAAG06C,EAAEo1B,YAAYh6E,EAAqBirB,GAAlBhZ,EAAE2yC,EAAEo1B,YAAYh6E,GAAMu2C,EAAGtrB,EAAE/gB,GAAG06C,EAAEo1B,YAAYh6E,EAAE4kD,EAAEo1B,YAAYllC,EAAqC7iC,GAAlCgZ,EAAE25B,EAAEo1B,YAAYh6E,EAAE4kD,EAAEo1B,YAAYllC,GAAMyB,GAAItkC,GAAG/H,EAAE+gB,GAAG/gB,GAAG,IAAIiD,EAAEy3C,EAAEq0B,gBAAgBhhE,MAAM,EAAE,OAAO2sC,EAAEq0B,gBAAgBtvE,MAAMyK,KAAKnC,EAAE9E,EAAE,KAAKy3C,EAAEs0B,iBAAiBvvE,MAAMyK,KAAK6W,EAAE9d,EAAE,KAAKy3C,EAAEm1B,wBAAwB7oB,GAAGvlC,KAAI,GAAIE,EAAE,SAASzmB,GAAG,QAAQ0vC,IAAIA,GAAE,EAAGrJ,EAAE2xB,YAAYpyC,EAAE,YAAYg+B,GAAGvd,EAAE2xB,YAAYpyC,EAAE,UAAUa,GAAGqlC,GAAGvlC,KAAI,IAAKA,EAAE,WAAW,IAAIi5B,EAAEi1B,kBAAiB,EAAGj1B,EAAE4H,SAAS+M,YAAYn0D,EAAEw/C,EAAE81B,wBAAwB91B,EAAE4H,SAASiN,YAAW,GAAnG,QAA+G7U,EAAEi1B,kBAAiB,IAAK1xD,EAAE,SAAS/iB,GAAG,IAAImmB,IAAIupB,EAAE,CAAC,IAAI5qC,EAAEqsC,EAAEnxC,GAAG,OAAO,UAAU8E,GAAG06C,EAAEo0B,UAAUrvE,MAAMwwE,SAASv1B,EAAEo0B,UAAUrvE,MAAMwwE,OAAOjwE,KAAKi/C,EAAE,SAAS/jD,GAAG,cAAcA,EAAEY,MAAM,GAAGZ,EAAEu1E,cAAclqE,OAAOvG,EAAE9E,EAAEu1E,cAAc,KAAKlvC,EAAEs6B,YAAY3gE,GAAG,aAAaA,EAAEY,MAAM,GAAGZ,EAAEu1E,cAAclqE,OAAO6a,EAAElmB,EAAEu1E,cAAc,KAAKlvC,EAAEs6B,YAAY3gE,GAAG6M,EAAE7M,IAAIgkD,EAAE,SAAShkD,GAAG,cAAcA,EAAEY,MAAM,GAAGZ,EAAEu1E,cAAclqE,OAAOo4C,EAAEzjD,EAAEu1E,cAAc,KAAKlvC,EAAEs6B,YAAY3gE,GAAG,aAAaA,EAAEY,MAAM,GAAGZ,EAAEu1E,cAAclqE,OAAOu4C,EAAE5jD,EAAEu1E,cAAc,KAAKlvC,EAAEs6B,YAAY3gE,GAAGymB,EAAEzmB,IAAI8jD,EAAE,SAAS9jD,EAAE8E,GAAG,IAAI,IAAIohB,EAAE,CAAC,aAAa,WAAW,YAAY,eAAerZ,EAAE,EAAEA,EAAEqZ,EAAE7a,OAAOwB,IAAI2yC,EAAE4H,SAAS2Q,iBAAiB/3D,EAAEkmB,EAAErZ,GAAG/H,IAAIlG,KAAKm1E,kBAAkB,mBAAmBhsE,EAAEypB,QAAQgnC,2BAA2B55D,KAAKm1E,kBAAkB,kBAAkB,MAAM,IAAI7nB,EAAErqD,OAAO2zE,MAAM,YAAY,YAAY52E,KAAKwoD,SAAS2Q,iBAAiBn5D,KAAKi1E,gBAAgB3nB,EAAEpnD,GAAGlG,KAAKwoD,SAAS2Q,iBAAiBn5D,KAAKk1E,iBAAiB5nB,EAAEpnD,GAAGlG,KAAKwoD,SAAS2Q,iBAAiBn5D,KAAKg1E,UAAU,YAAYnwB,GAAG7kD,KAAKwoD,SAAS2Q,iBAAiBn5D,KAAKg1E,UAAU,YAAY7wD,GAAGnkB,KAAKs0E,qBAAqBpvB,EAAEllD,KAAKi1E,gBAAgB9vB,GAAGD,EAAEllD,KAAKk1E,iBAAiB/vB,GAAGD,EAAEllD,KAAKg1E,UAAU5vB,KAAKJ,EAAExS,UAAUojC,iBAAiB,WAAW,IAAIx0E,EAAEpB,KAAKi2E,cAAc70E,EAAEkoD,UAAU,EAAE,EAAEtpD,KAAKg2E,YAAYllC,EAAE9wC,KAAKg2E,YAAYjlC,GAAG,IAAI/wC,KAAK62E,gBAAgB,MAAMz1E,GAAGG,QAAQoN,KAAKvN,GAAGpB,KAAKi2E,cAAczrB,UAAUxqD,KAAK20E,WAAW,oCAAoCvzE,EAAEmpD,YAAYvqD,KAAK20E,WAAW,sCAAsCvzE,EAAE6nD,YAAY7nD,EAAEypD,OAAO,GAAG,IAAIzpD,EAAE0pD,OAAO,GAAG9qD,KAAKg2E,YAAYjlC,EAAE,IAAI3vC,EAAE0pD,OAAO9qD,KAAKg2E,YAAYllC,EAAE,GAAG9wC,KAAKg2E,YAAYjlC,EAAE,IAAI3vC,EAAE0pD,OAAO9qD,KAAKg2E,YAAYllC,EAAE,GAAG,IAAI1vC,EAAE+pD,UAAUnG,EAAExS,UAAUqkC,cAAc,WAAW,IAAIz1E,EAAEpB,KAAK20E,WAAW,8BAA8BzuE,EAAElG,KAAK20E,WAAW,sCAAsCrtD,EAAEtnB,KAAK20E,WAAW,gCAAgC,GAAGvzE,GAAGkmB,EAAE,CAAC,IAAIrZ,EAAEjO,KAAK20E,WAAW,YAAY1tD,EAAEjnB,KAAK82E,kCAAkCrvC,EAAExgB,EAAE8vD,KAAK9vD,EAAE+vD,KAAKzkC,EAAEvyC,KAAKi2E,cAAc9sE,EAAEnJ,KAAKwoD,SAAS+L,gBAAgB1P,EAAExoD,KAAKqD,IAAIyJ,EAAE,GAAGA,EAAE,GAAG,OAAO4nC,GAAG/wC,KAAKg2E,YAAYllC,EAAE,IAAI+T,EAAEG,GAAGhlD,KAAKg2E,YAAYjlC,EAAE,IAAItJ,EAAE5f,EAAE7nB,KAAKg2E,YAAYllC,EAAE,GAAGnpB,EAAE3nB,KAAKg2E,YAAYjlC,EAAE,GAAG5sB,EAAE,KAAKghC,EAAE,KAAK5S,EAAE0W,YAAY1W,EAAEsY,OAAO,GAAGljC,GAAG,IAAI,IAAIy9B,EAAE,EAAEA,EAAEn+B,EAAElb,KAAKU,OAAO24C,IAAI,CAAC,IAAIF,EAAEj+B,EAAElb,KAAKq5C,GAAGxE,EAAE,OAAOsE,EAAE,IAAIA,EAAE,GAAG/7C,EAAE,IAAI4nC,EAAEsW,IAAIrgC,EAAE,OAAOk+B,EAAE,GAAGv9B,GAAGu9B,EAAE,GAAGj+B,EAAE+vD,MAAMhyB,EAAEqC,KAAKp5C,GAAG,OAAOkW,GAAG9nB,KAAKgpB,MAAMu7B,IAAIvkD,KAAKgpB,MAAMlB,MAAMkvB,SAASuN,IAAIvN,SAASrsB,IAAI,OAAO7C,EAAEouB,EAAEuY,OAAOlK,EAAEj5B,GAAG1Z,GAAGskC,EAAEuY,OAAOlK,EAAEuE,GAAG5S,EAAEuY,OAAOlK,EAAE55B,GAAG7C,EAAEy8B,EAAEuE,EAAEn+B,IAAI,OAAO7C,IAAIlW,GAAGskC,EAAEuY,OAAOlK,EAAEuE,GAAG5S,EAAEuY,OAAOlK,EAAEj5B,IAAI4qB,EAAEuY,OAAO3mC,EAAEwD,IAAIxD,EAAEghC,EAAE,OAAO,GAAG5S,EAAEuY,OAAOjjC,EAAEF,GAAG4qB,EAAEma,YAAYtrD,EAAE,CAAC,IAAIpF,EAAEgE,KAAKi2E,cAAcgB,qBAAqB,EAAE,EAAE,EAAEtvD,GAAGzhB,GAAGlK,EAAEk7E,aAAa,EAAEhxE,GAAGlK,EAAEk7E,aAAa,EAAE91E,GAAGpB,KAAKi2E,cAAcxpB,UAAUzwD,EAAEu2C,EAAEoa,OAAOrlC,IAAItnB,KAAKi2E,cAAc1rB,YAAYjjC,EAAEtnB,KAAKi2E,cAAczrB,UAAUxqD,KAAK20E,WAAW,8BAA8BpiC,EAAE4Y,YAAYnG,EAAExS,UAAUskC,gCAAgC,WAAW,IAAI11E,EAAE8E,EAAElG,KAAKwoD,SAASlhC,EAAEtnB,KAAK20E,WAAW,YAAY1mE,EAAE/H,EAAE6kE,aAAa9jD,EAAE/gB,EAAE6mD,YAAYxa,EAAE,IAAIxxB,MAAM9S,GAAG9E,GAAE,EAAG07C,EAAE3+C,EAAE8mD,aAAajc,EAAE,GAAG,IAAI3vC,EAAE,EAAEA,EAAE6M,EAAE7M,IAAI,CAAC,IAAI4jD,EAAEhlD,KAAK20E,WAAW,sBAAsB1tD,EAAE7lB,IAAI2vC,EAAEjkB,KAAKk4B,GAAG,OAAOA,IAAI77C,GAAE,GAAI,GAAGA,EAAE,IAAI/H,EAAE,EAAEA,EAAE6M,EAAE7M,IAAImxC,EAAEnxC,GAAG2vC,EAAE3vC,EAAE,QAAQ,IAAIA,EAAE,EAAEA,EAAE6M,EAAE7M,IAAImxC,EAAEnxC,GAAGyjD,EAAEzjD,EAAE,GAAG,IAAIymB,EAAE,GAAGF,EAAEzhB,EAAEg2D,aAAa/3C,EAAEje,EAAEgvD,YAAY,IAAI9zD,EAAE,EAAEA,EAAE8E,EAAE6kE,aAAa3pE,IAAI,GAAGmxC,EAAEnxC,GAAG,CAAC,IAAI+jD,EAAEx9B,EAAEk/B,cAAc3gD,EAAEqkE,SAASnpE,EAAE+iB,GAAGje,EAAE0iE,aAAa,IAAIzjB,EAAEx9B,EAAEm/B,eAAe3B,EAAEj/C,EAAE0iE,aAAazkD,IAAI0D,EAAEiF,KAAKq4B,GAAG,IAAIC,EAAE,GAAG,IAAIhkD,EAAE,EAAEA,EAAEymB,EAAE,GAAGpb,OAAOrL,IAAI,CAAC,IAAI,IAAI8jD,EAAE,EAAEtE,EAAE,EAAE55B,EAAE,EAAEA,EAAEa,EAAEpb,OAAOua,IAAI,CAAC,IAAIhrB,EAAE6rB,EAAEb,GAAG5lB,GAAG,GAAG,OAAOpF,GAAGi0C,MAAMj0C,KAAK4kD,IAAIsE,GAAGlpD,GAAGopD,EAAEt4B,KAAK,CAACjF,EAAE,GAAGzmB,GAAG,GAAG8jD,EAAEtE,IAAI,IAAIx5B,EAAEQ,OAAO4uC,UAAUjvC,GAAGK,OAAO4uC,UAAU,IAAIp1D,EAAE,EAAEA,EAAEgkD,EAAE34C,OAAOrL,IAAI,CAAC,IAAI0vC,EAAEsU,EAAEhkD,GAAG,GAAG,OAAO0vC,GAAGuC,SAASvC,MAAMxpB,GAAGwpB,EAAE,KAAK1pB,EAAE/qB,KAAK8D,IAAIinB,EAAE0pB,GAAGvpB,EAAElrB,KAAKqD,IAAI6nB,EAAEupB,IAAI,GAAGxpB,EAAE,IAAIC,EAAEkgB,EAAE0sB,MAAM5sC,GAAGA,GAAG,IAAIA,EAAEH,EAAEqgB,EAAE0sB,MAAM/sC,GAAGhmB,EAAE,EAAEA,EAAEgkD,EAAE34C,OAAOrL,IAAIgkD,EAAEhkD,GAAG,GAAGqmC,EAAE0sB,MAAM/O,EAAEhkD,GAAG,QAAQ,CAAC,IAAI8rD,EAAEG,EAAE9lC,EAAEH,EAAoCG,GAAlC2lC,EAAEG,GAAGzlC,OAAOuvD,UAAU,IAAI5vD,EAAE,IAAI8lC,EAAOjmC,GAAG8lC,EAAE,MAAM,CAACnhD,KAAKq5C,EAAE4xB,KAAK5vD,EAAE2vD,KAAKxvD,IAAIy9B,EAAExS,UAAUsjC,kBAAkB,WAAW,IAAI10E,EAAEpB,KAAKwoD,SAAS+L,gBAAgBruD,EAAElG,KAAKwoD,SAASwL,aAAa1sC,EAAElmB,EAAE,GAAGA,EAAE,GAAG6M,EAAE5R,KAAKqD,IAAI,GAAGwG,EAAE,GAAG9E,EAAE,IAAIkmB,GAAGL,EAAE5qB,KAAKqD,IAAI,GAAG0B,EAAE,GAAG8E,EAAE,IAAIohB,GAAGmgB,EAAEznC,KAAKg2E,YAAYh6E,EAAEgE,KAAKg2E,YAAYllC,EAAE7iC,EAAEskC,EAAEvyC,KAAKg2E,YAAYh6E,EAAEgE,KAAKg2E,YAAYllC,GAAG,EAAE7pB,GAAG9d,EAAE9M,KAAKqD,IAAIM,KAAKg2E,YAAYhvD,EAAEhnB,KAAKg2E,YAAYhvD,GAAGhnB,KAAKg2E,YAAYjlC,EAAE/wC,KAAKi1E,gBAAgBrvE,QAAQ,GAAGi/C,EAAE7kD,KAAKi1E,gBAAgBhhE,MAAM,EAAEjU,KAAKi1E,gBAAgBtvE,MAAMyK,KAAKq3B,EAAEod,EAAE,KAAK7kD,KAAKi1E,gBAAgBtvE,MAAMynB,IAAIjkB,EAAE,KAAKnJ,KAAKk1E,iBAAiBvvE,MAAMyK,KAAKmiC,EAAEsS,EAAE,KAAK7kD,KAAKk1E,iBAAiBvvE,MAAMynB,IAAIptB,KAAKi1E,gBAAgBtvE,MAAMynB,IAAIptB,KAAKi1E,gBAAgBtvE,MAAMqnD,WAAW,UAAUhtD,KAAKk1E,iBAAiBvvE,MAAMqnD,WAAW,WAAWhI,EAAExS,UAAUujC,sBAAsB,WAAW,IAAI30E,EAAEpB,KAAKk2E,cAAc90E,EAAEkoD,UAAU,EAAE,EAAEtpD,KAAKg2E,YAAYllC,EAAE9wC,KAAKg2E,YAAYjlC,GAAG,IAAI7qC,EAAElG,KAAKg2E,YAAYllC,EAAE,EAAExpB,EAAEtnB,KAAKg2E,YAAYjlC,EAAE,EAAE9iC,EAAEjO,KAAK02E,uBAAuB,GAAGt1E,EAAEmpD,YAAYvqD,KAAK20E,WAAW,sCAAsCvzE,EAAEopD,UAAUxqD,KAAK20E,WAAW,oCAAoC1mE,EAAEi8D,SAAS,CAAC,IAAIjjD,EAAE5qB,KAAKqD,IAAI,EAAEuO,EAAEqoE,cAAct2E,KAAKg2E,YAAYh6E,GAAGyrC,EAAEprC,KAAK8D,IAAI+F,EAAE+H,EAAEsoE,eAAev2E,KAAKg2E,YAAYh6E,GAAGoF,EAAEqrD,UAAU,uBAAuBzsD,KAAK20E,WAAW,sBAAsBlzE,WAAW,IAAIL,EAAE0rE,SAAS,EAAE,EAAE7lD,EAAEjnB,KAAKg2E,YAAYjlC,GAAG3vC,EAAE0rE,SAASrlC,EAAE,EAAEznC,KAAKg2E,YAAYllC,EAAErJ,EAAEznC,KAAKg2E,YAAYjlC,GAAG3vC,EAAE6nD,YAAY7nD,EAAEypD,OAAO,EAAE,GAAGzpD,EAAE0pD,OAAO7jC,EAAE,GAAG7lB,EAAE0pD,OAAO7jC,EAAEK,GAAGlmB,EAAE0pD,OAAOrjB,EAAEngB,GAAGlmB,EAAE0pD,OAAOrjB,EAAE,GAAGrmC,EAAE0pD,OAAO5kD,EAAE,GAAG9E,EAAE+pD,cAAc/pD,EAAE6nD,YAAY7nD,EAAEypD,OAAO,EAAE,GAAGzpD,EAAE0pD,OAAO,EAAExjC,GAAGlmB,EAAE0pD,OAAO5kD,EAAEohB,GAAGlmB,EAAE0pD,OAAO5kD,EAAE,GAAG9E,EAAE+pD,UAAUnG,EAAExS,UAAUkkC,qBAAqB,WAAW,IAAIt1E,EAAEpB,KAAKi1E,gBAAgBhhE,MAAM,EAAE/N,EAAEktC,WAAWpzC,KAAKi1E,gBAAgBtvE,MAAMyK,MAAMhP,EAAEkmB,EAAE8rB,WAAWpzC,KAAKk1E,iBAAiBvvE,MAAMyK,MAAMhP,EAAE,MAAM,CAACk1E,cAAcpwE,EAAEqwE,eAAejvD,EAAE4iD,SAAShkE,EAAE,EAAElG,KAAKg2E,YAAYh6E,GAAGsrB,EAAE,EAAEtnB,KAAKg2E,YAAYh6E,EAAEgE,KAAKg2E,YAAYllC,IAAIxpB,EAAEsL,QAAQoyB,EAAE9+C,EAAEy+C,QAAQr9B,EAAEsL,SAAS,CAAC,+BAA+B,GAAG,mBAAmB,GAAG,iBAAiB,MAAM,GAAG,CAAC,IAHx31B,CAG631B,K,kGCJtq2B,oJAEa9sB,EAAmC,GAEnCsxE,EAA2B,SAACC,EAAsBlmE,GAC7D,IAAI0pB,EAAM,IACNrN,EAAU,GAwBd,OAtBI6pD,GAAgD,kBAA1BlmE,EAAcqc,UAEtCA,EAAUrc,EAAcqc,SAGU,kBAAzBrc,EAAcu4D,QAAgD,KAAzBv4D,EAAcu4D,SAC5D7uC,EAAM1pB,EAAcu4D,QAEZp6C,SAAS,aACfuL,EAAMA,EAAI3R,UAAU,EAAG2R,EAAIpuB,OAAS,IAGF,kBAAzB0E,EAAcuzC,QAAgD,KAAzBvzC,EAAcuzC,SAC5D7pB,GAAG,WAAQ1pB,EAAcuzC,SAGvB2yB,GAA2B,KAAZ7pD,IACjBqN,GAAG,YAASrN,KAEL6pD,GAA2B,KAAZ7pD,IACxBqN,EAAMrN,GAEDqN,GAGIy8C,EAA0B,SAACrmE,EAAsBE,GAC5D,IAAMomE,EAAYpmE,EAAcgb,aAE1BqrD,EAASvmE,EAAUwmE,kBACzB,OAAIF,IAAcC,EACV,cAAN,OAAqB9xD,YAAc6xD,IAG/B,cAAN,OAAqB7xD,YAAc8xD,GAAnC,6BAA+D9xD,YAAc6xD,KAUlEG,EAAqD,SAAC,GAK5D,IAMDC,EAVJC,EAII,EAJJA,cACAziE,EAGI,EAHJA,mBACA0iE,EAEI,EAFJA,qBACAC,EACI,EADJA,qBAIMC,EAAkD,IAA9B5iE,EAAmB1I,OAAemrE,EAAgBziE,EACtE6iE,EAAsBD,EAAkB9zC,SAAS4zC,GAevD,OAPEF,EALGG,KACEE,GAAuBD,EAAkBtrE,OAAS,IAAOurE,EAGrDA,EACeD,EAAkBjqE,QACxC,SAACggB,GAAD,OAAeA,IAAc+pD,KAGPE,EAAkBx3B,OAAOs3B,GANzB,CAACA,IASDprE,SAAWmrE,EAAcnrE,OAC1C,GAEFkrE,I,iNCjEItuE,EAAuB,CAClC4uE,gBAAgB,EAChBC,eAAgB,KAChBC,mBAAoB,KACpBC,YAAY,EACZC,SAAS,GAGEC,EAAmBnsE,wBAAsB,GAAI9C,GAE1DivE,EAAiBhrE,GAAGq0B,KAAyB,SAACp0B,EAAD,OAAUY,EAAV,EAAUA,OAAQyzB,EAAlB,EAAkBA,WAAlB,sBACxCr0B,EADwC,CAE3C2qE,eAAgB/pE,EAChBgqE,mBAAoBv2C,EACpBq2C,gBAAgB,OAGlBK,EAAiBhrE,GAAG2xB,KAAwB,SAAC1xB,GAAD,sBACvCA,EADuC,CAE1C0qE,eAAgB5uE,EAAa4uE,eAC7BC,eAAgB7uE,EAAa6uE,eAC7BC,mBAAoB9uE,EAAa8uE,wBAGnCG,EAAiBhrE,GAAGu2C,KAAkB,SAACt2C,EAAD,OAAU6qE,EAAV,EAAUA,WAAV,sBACjC7qE,EADiC,CAEpC6qE,kBAGFE,EAAiBhrE,GAAGw2C,KAAkB,SAACv2C,EAAD,OAAU8qE,EAAV,EAAUA,QAAV,sBACjC9qE,EADiC,CAEpC8qE,e,cClCaE,eAAe,mBAC3BC,IAAYtsE,KADe,cAE3BusE,IAAW1mE,KAFgB,cAK3B2mE,IAAeJ,GALY,I,0DCTjBK,EAAgBC,IAAMx9B,OAAO,CACxCrwB,QAAS,CACP,gBAAiB,qBACjB8tD,OAAQ,YAEV5tD,iBAAiB,I,gFCLN0tD,EAAgBC,IAAMx9B,OAAO,CAExCrwB,QAAS,CACP,gBAAiB,qBACjB8tD,OAAQ,YAEV5tD,iBAAiB,ICkBN6tD,EAAiB,SAACC,GAC7B,IAAMC,EAAS,IAAIC,IACbC,EAAc,IAAID,IAElBE,EAAUC,aAAS,gBACvBlxD,EADuB,EACvBA,IADuB,IAClB3S,cADkB,MACT,MADS,MACF8jE,cADE,MACO,GADP,EACWttE,EADX,EACWA,KAAMutE,EADjB,EACiBA,gBAAiBC,EADlC,EACkCA,kBAAmBC,EADrD,EACqDA,kBADrD,OAGvBx4D,YAAK23D,EAAczpE,QAAQ,CACzBgZ,MACA3S,SACA8jE,SACAttE,OACA0tE,QAdkB,KAelBC,YAAW,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAmBG,SAC9Br5B,KACFs5B,aAAI,YAA6B,IAApBC,EAAmB,EAAzB9tE,KAA2BwtE,EAAkBM,MACpDC,aAAW,SAACzzD,GAMV,MApCuB,gCAgCd,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAOpd,UACT1H,QAAQoN,KAAK,cAAeuZ,GAE9BoxD,EAAgBjzD,GACT0zD,oBAGVhB,GAQH,OANeG,EAAY54B,KACzB05B,YAAU,MACVC,aAAU,kBAAMjB,EAAO14B,KAAK64B,OAGvBe,YACA,CAAClB,EAAQE,I,mCCFLiB,EAAkB,SAACpuE,EAAiBquE,GAC/C,MAAoB,SAAhBruE,EAAKwhC,OArBqB,SAACxhC,EAAmBquE,GAClD,IAAMC,EAAkBtuE,EAAK0rE,kBAC7B,IAAK1rE,EAAK6f,OAAO7f,KAAKU,OACpB,OAAOV,EAET,IAAMuuE,EAAsBvuE,EAAK6f,OAAO7f,KAAK,GAAG,GAAKquE,EAAmBC,EAClEE,EAAaC,YAAKzuE,EAAK6f,OAAOrX,QAAQvG,KAAI,kBAAM,QAChDysE,EAAQ,IAAI15D,MAAMq5D,GACrBztB,KAAK,MACL3+C,KAAI,SAAC4yC,EAAG3yC,GAAJ,OAAWqsE,EAAsBrsE,EAAIosE,GAArC,mBAAyDE,OAChE,OAAO,eACFxuE,EADL,CAEEyC,MAAOzC,EAAKyC,MAAQ6rE,EAAkBD,EACtCxuD,OAAO,eACF7f,EAAK6f,OADJ,CAEJ7f,KAAM0uE,EAAMl6B,OAAOx0C,EAAK6f,OAAO7f,UAO1B2uE,CAAiB3uE,EAAqBquE,GAExCruE,GAGH4uE,EAAuB,GAChBC,EAAmB,SAAC7uE,EAAiBwhC,EAAgBstC,GAChE,GAAe,UAAXttC,GAAsC,SAAhBxhC,EAAKwhC,OAAmB,CAChD,GAAIxsB,MAAMivB,QAAQjkC,EAAK6f,QAAS,OAAO7f,EAEvC,IAAM+uE,EAAaD,EACf9b,YAAShzD,EAAqB6f,OAAO7f,MACpCA,EAAqB6f,OAAO7f,KACjC,OAAO,eACFA,EADL,CAGEwhC,OAAQ,QACR3hB,OAAQkvD,EAAW9qE,QAAO,SAACC,EAAe8qE,GAExC,OADAA,EAAUrzC,QACJ,GAAN,mBAAWz3B,GAAX,CAAgB+qE,YAAID,OACnBJ,KAGP,OAAO5uE,G,uBC7EIkvE,EAAYC,IAAOnrD,IAAV,oEAAGmrD,CAAH,qGAGNC,YAAU,IAGbA,YAAU,GAAMA,YAAU,GAAMA,YAAU,GAAMA,YAAU,IAG1DC,EAAcF,IAAOnrD,IAAV,sEAAGmrD,CAAH,+DAOXG,GAAmBH,IAAOnrD,IAAV,2EAAGmrD,CAAH,MAEhBI,GAAaJ,YAAOxwC,KAAV,qEAAGwwC,CAAH,iEACZ,gBAAG70D,EAAH,EAAGA,MAAH,SAAUlX,SAA0BosE,YAAS,YAChDl1D,GAASk1D,YAAS,WAGPJ,eAGNK,GAAcN,YAAOO,KAAV,sEAAGP,CAAH,8BAEb,qBAAG70D,OAAsBk1D,YAAS,UAAaA,YAAS,aCjBtDG,GAAiB,SAACC,GAA8B,IAEzD5yC,EACE4yC,EADF5yC,OAAQxQ,EACNojD,EADMpjD,KAAMqjD,EACZD,EADYC,YAAaC,EACzBF,EADyBE,aAAcC,EACvCH,EADuCG,cAAe3sE,EACtDwsE,EADsDxsE,QAASkX,EAC/Ds1D,EAD+Dt1D,MAEnE,OACE,kBAAC,EAAD,KACGu1D,GAAe,kBAACR,EAAD,KAAcQ,GAC9B,kBAACP,GAAD,KACGtyC,GACC,kBAACuyC,GAAD,CAAYnsE,QAASA,EAASkX,MAAOA,GAClC0iB,GAGJxQ,GACC,kBAACijD,GAAD,CAAarsE,QAASA,EAASkX,MAAOA,GACnCkS,GAGJujD,GAAiBA,EAAcH,IAEjCE,GAAgB,kBAACT,EAAD,CAAa9qE,OAAK,GAAEurE,KAO9BE,GAAuB,SAACJ,GAAD,OAA8B,kBAAC,GAAmBA,ICxCzEK,GAAoBd,IAAOnrD,IAAV,4EAAGmrD,CAAH,kGACnBC,YAAU,GACTA,YAAU,GACJA,YAAU,IAMfc,GAAmBf,IAAO5zD,EAAV,2EAAG4zD,CAAH,yDCJhBgB,GAAe,CAC1Br3C,SAAUs3C,IAAMC,SAASC,aACzBC,UAAW,IACXC,kBAAkB,GAGPC,GAA2C,WACtD,IAKMC,EAAwBV,GAAqB,eAL5B,CACrBhzC,OAAQ,qBACRxQ,KAAM,mGAG0C,CAEhDlS,OAAO,EACPu1D,YACE,kBAAC,GAAD,KACE,kBAAC,IAAD,CAAM16D,KAAK,OAAO6gB,KAAK,QAAQ0K,MAAM,cAI3C0vC,IAAM91D,MAAMo2D,EAAuBP,KAGxBQ,GAAyC,WACpD,IAAMC,EAAiB,CACrB5zC,OAAQ,qBACRxQ,KACE,kBAAC,GAAD,CACE4Q,KAAK,oGACLhV,OAAO,UAFT,sEAQEsoD,EAAwBV,GAAqB,eAC9CY,EAD6C,CAEhDt2D,OAAO,EACPu1D,YACE,kBAAC,GAAD,KACE,kBAAC,IAAD,CAAM16D,KAAK,OAAO6gB,KAAK,QAAQ0K,MAAM,cAI3C0vC,IAAM91D,MAAMo2D,EAAuBP,K,0DChD/BU,GAAoB,CACxBh6D,KAAM,IACNC,MAAO,KACPC,KAAM,KACNC,KAAM,OACNC,eAAe,EACfC,cAAc,EACdC,OAAQ,KACR1U,MAAO,EACPC,OAAQ,EACR2U,WAAW,EACXC,gBAAiB,EACjBC,iBAAkB,EAClBC,WAAW,EACXC,aAAa,EACbtR,MAAO,KACPuR,OAAQ,KACR9X,MAAO,KACPkxE,gBAAiB,EACjBC,SAAU,EACVC,eAAgB,EAChBC,WAAY,GAORC,GAAiB,SAAC,GAA+D,IAAD,mBAA7D1tE,EAA6D,KAAxDvQ,EAAwD,KACpF,OALoB,SAAC,GAAD,uBAAEuQ,EAAF,KAAOvQ,EAAP,iBACO0B,IAA3Bk8E,GAAkBrtE,SAAgC7O,IAAV1B,EAIpCk+E,CAAc,CAAC3tE,EAAKvQ,IACf,GAEF,eACJuQ,EAAM6U,mBAAmBplB,KAejBm+E,GAAiC,UAXtB78B,aACtBvzC,aAAM,KACNqwE,cAAW,SAACp+E,EAAOi3B,GAAR,OACE,IAAVA,EAAe,CAAErT,KAAM5jB,GAAUi+E,GAAgBj+E,EAAM+N,MAAM,SAEhEc,KACAwvE,aAAWT,IAGKU,CAASl3E,SAAS6d,SAASrB,MAERG,K,qBCRpBw6D,I,YAsDPC,I,YAkNAC,I,YAiCAC,I,YAkDOC,IAjWXC,GAAiCh0E,IAAW,GAAK,GAIjDi0E,GAA2B1jD,cAE1B,SAAUojD,KAAV,iFAEa,OAFb,SAEmBO,YAAKD,IAFxB,WAEGE,EAFH,QAOQ/7E,OAASiQ,KAAgB9C,QAAQ1N,WAPzC,iBAWyB,OAHpBqH,EAAWi1E,EAAOj1E,QAChByI,EAAczI,EAAQuI,gBAAtBE,UATP,cAUoBA,EAVpB,GAUMysE,EAVN,KAUaC,EAVb,eAW+B7tC,YAC9BhQ,MAZD,sBAgBK49C,GAAS,GAAKC,GAAO,GAhB1B,iBAkBC,OAlBD,UAkBOC,YAAI/rE,aAAsB,CAC9BpN,GAAI+D,EAAQ/D,MAnBf,8CA0BH,OA1BG,UA0BGm5E,YAAIH,GA1BP,gEAiCP,IAAMI,GAAyB,SAACjpE,EAAgCtR,GAAjC,qBAGXlD,IAAfwU,EACC,OACAyV,mBAAmBzV,GALM,YAMzByV,mBAAmB/mB,KAInBw6E,IAAwC,EAExCC,GAAmB,SAACvpE,GACxB,MAAgB,UAAZA,EAA4B,OAChB,SAAZA,GAAkC,cAAZA,EAAgCA,EACpD,SAAN,OAAgBA,I,GAGMgkE,EACtBqE,GAzDmC,EAyDUS,IADxCU,G,qBAGP,SAAUd,GAAV,sJAYmB,OAZO10E,EAA1B,EAA0BA,QAGtB8K,EAOE9K,EAPF8K,KAAM4Z,EAOJ1kB,EAPI0kB,QAAStb,EAObpJ,EAPaoJ,MAAOq7B,EAOpBzkC,EAPoBykC,OAAQ73B,EAO5B5M,EAP4B4M,OAAQ6oE,EAOpCz1E,EAPoCy1E,MAAOjpE,EAO3CxM,EAP2CwM,MAAO1R,EAOlDkF,EAPkDlF,QACpD4K,EAME1F,EANF0F,MAAOC,EAML3F,EANK2F,OAAQyG,EAMbpM,EANaoM,WAAYX,EAMzBzL,EANyByL,OAAQC,EAMjC1L,EANiC0L,YAAaC,EAM9C3L,EAN8C2L,sBAChDH,EAKExL,EALFwL,WAAYI,EAKV5L,EALU4L,qBAAsBK,EAKhCjM,EALgCiM,QAASlB,EAKzC/K,EALyC+K,WAL/C,EAUM/K,EAJFgM,eANJ,MAMc,YANd,IAUMhM,EAHF6L,kBAPJ,MAOiB,GAPjB,EASItD,EACEvI,EADFuI,gBAAiBtM,EACf+D,EADe/D,GAAIy0E,EACnB1wE,EADmB0wE,kBATzB,SAYyBppC,YAAOouC,MAZhC,YAYQjzE,EAZR,4BAeUkzE,EAA2BN,GAAuBjpE,EAAYtR,GAC9D86E,EAAc39E,OAAOlB,KAAK0L,EAASQ,MAAMszB,MAAK,SAACs/C,GAAD,OAClDA,EAAYx9D,WAAWjP,IAAUysE,EAAY16C,SAASw6C,MAjB5D,wBAqBMl9E,QAAQoN,KAAR,iDAAuDuD,EAAvD,mBAAuEnN,IArB7E,2BAyBI,OADMgH,EAAOR,EAASQ,KAAK2yE,GAxB/B,UAyBUR,YAAIjsE,KAAgB9C,QAAQ,CAChC8B,UAAWlF,EACXsF,kBACAtM,QA5BN,0CAiCQmjB,EAAMte,IAAQ,UACby2C,YAAmBzsC,GADN,eAEhBA,EAEEgrE,EAAuBh7E,EAAQmJ,MAAM,KACrC8xE,EAAUD,EAAqB36C,SAAS,QAGxC66C,GAFAC,GAAqBX,KAA0CS,GAGjED,EAAqBr+B,OAAO,QAAUq+B,EAEpCI,EAAc,CAClBX,GAAiBvpE,GACjBN,GAAW,gBAAaA,IACxB1G,OAAOuyB,SAEH4+C,EAA8B,SAAfprE,EAAwB,CAE3C9H,KAAK,aACH+B,OAAQ,CACNiH,UACAyY,UACAtY,WAAYA,EAAaA,EAAWnI,MAAM,aAAUrM,EACpD6T,UAEF/F,QACAC,SACAiH,SACA6oE,QACAjpE,QACA4pE,cAAeJ,GACXrqE,GAAyB,CAAE0qE,yBAA0B,CAAC1qE,IAbxD,CAcF2qE,aAAc,CAAa,cAAZtqE,GAA2B,CACxCS,OAAQb,GAAwB,MAChCI,QAAQ,CAAE,SAAH,mBAAekqE,KAEZ,UAAZlqE,GAAA,aACES,OAAQjB,EACRQ,QAASkqE,GACLrqE,EAAWlI,QAAU,CAAE8H,OAAQI,KAClC7G,OAAOuyB,YAEV,CACFg5C,OAAQ,CACNnnE,QACA0uC,GAAG,IAAIj8B,MAAO06D,UACd9xC,SACA73B,SACA6oE,QACAjpE,QACA1R,UACA4K,QACAC,SACAyG,eAIEqkE,EAAoB,SAACxtE,GACzB,GAAI,OAACA,QAAD,IAACA,OAAD,EAACA,EAAM6f,OAEJ,CAAC,IACE0zD,EAAsBjuE,EAAtBiuE,kBAEFC,EAAqB3E,EACxB7uE,EACDwhC,EACAwxC,GAGI9tE,EAAS,eACVsuE,EADU,GAGR,yBAA0BxzE,EAAK6f,QAAW,CAC7CnX,wBACAK,UACAN,cACAG,aAEA6qE,eAAgBzzE,EAAK6f,OAAO6zD,qBAAqBhrE,KAIrDopE,GAAyBK,IAAIjsE,KAAgB9C,QAAQ,CACnD8B,UAAWquE,EACPnF,EAAgBlpE,EAAwBquE,GACxCruE,EACJI,kBACAtM,aA5BF84E,GAAyBK,IAAIjsE,KAAgB7C,QAAQ,CAAErK,SAiCrDu0E,EAAkB,SAACjzD,GACvB9kB,QAAQoN,KAAK,2BAA4B0X,GACzCw3D,GAAyBK,IAAIjsE,KAAgB7C,QAAQ,CAAErK,SAGzDu5E,GAActzB,KAAd,eACKi0B,EADL,CAEE1pE,OAAQ1B,GAAc,MACtBqU,MACAoxD,kBACAC,oBACAC,uBAxIJ,yC,OA4IoDV,EAtMX,G,qBAsMlC4G,G,MAAmBC,G,MAC1B,SAASC,GAAT,GAAqF,IAAjD92E,EAAgD,EAAhDA,QAEhC8K,EAKE9K,EALF8K,KAAM1B,EAKJpJ,EALIoJ,MAAOq7B,EAKXzkC,EALWykC,OAAQ73B,EAKnB5M,EALmB4M,OAAQ6oE,EAK3Bz1E,EAL2By1E,MAAOjpE,EAKlCxM,EALkCwM,MAAO1R,EAKzCkF,EALyClF,QAC3C4K,EAIE1F,EAJF0F,MAAOC,EAIL3F,EAJK2F,OAAQyG,EAIbpM,EAJaoM,WAAYZ,EAIzBxL,EAJyBwL,WAC3BQ,EAGEhM,EAHFgM,QACAC,EAEEjM,EAFFiM,QACAjB,EACEhL,EADFgL,aAAc/O,EACZ+D,EADY/D,GAKVy8B,EAAiB,UAAMtvB,EAAN,YAAe4B,EAAf,YAA+BqqE,GACpDjpE,EACAtR,IAGIskB,EAAG,UAAMm4B,YAAmBzsC,GAAzB,eACHylE,EAAM,aACVnnE,QACA0uC,GAAG,IAAIj8B,MAAO06D,UACd9xC,SACA73B,SACA6oE,QACAjpE,QACA1R,UACA4K,QACAC,SACAyG,cACIZ,GAAc,CAAEurE,YAAavrE,GAXvB,GAYNS,GAAW,CAAE+qE,SAAU/qE,EAAQ0vC,KAAK,MAZ9B,GAaN3vC,GAAW,CAAEA,YA0BnB4qE,GAAkB10B,KAAK,CACrB9iC,MACAmxD,SACAC,gBAbsB,WACtBuE,GAAyBK,IAAI5rE,KAA2BlD,QAAQ,CAAErK,QAElE9B,OAAO++B,aAAa,CAClBR,oBACAtvB,QACAnG,KAAM,QAQRwtE,kBA3BwB,SAACxtE,GACzB8xE,GAAyBK,IAAI5rE,KAA2BnD,QAAQ,CAC9D2C,aAAc/F,EACdhH,QAIF9B,OAAO++B,aAAa,CAClBR,oBACAz1B,YAsBN,SAASg0E,KAEPJ,GAAuB30B,OAGzB,SAAUyyB,GAAV,sFAGmB,OAHQ30E,EAA3B,EAA2BA,QACjBoJ,EAAoBpJ,EAApBoJ,MAAOnN,EAAa+D,EAAb/D,GAAI6O,EAAS9K,EAAT8K,KADrB,SAGyBw8B,YAAOouC,MAHhC,YAGQjzE,EAHR,wBAKI,OALJ,SAKU2yE,YAAIzrE,KAAiBtD,QAAQ,CACjCgC,cAAe5F,EAAS4C,OAAOA,OAAO+D,GACtCnN,QAPN,wCAiBe,OAJPmjB,EAAMte,IAAQ,UACby2C,YAAmBzsC,GADN,gBAEhBA,EAAKxK,QAAQ,QAAS,UAf5B,oBAiBqBkpC,YAAKqmC,EAAc14E,IAAKioB,EAAK,CAC5CmxD,OAAQ,CACNnnE,WAnBR,QAiBI8tE,EAjBJ,+BAwBI,OAxBJ,2BAuBIz+E,QAAQoN,KAAK,+BAvBjB,UAwBUuvE,YAAIzrE,KAAiBrD,QAAQ,CAAErK,QAxBzC,0CA2BE,OA3BF,UA2BQm5E,YAAIzrE,KAAiBtD,QAAQ,CACjCgC,cAAe6uE,EAASj0E,KACxBhH,QA7BJ,wDAiCA,SAAU24E,GAAV,8FAQ+C,OARrB50E,EAA1B,EAA0BA,QAChBm3E,EAASn3E,EAATm3E,KACJt1E,GAAiB,EACjBE,GAAiB,EACjBD,GAAmB,EACnBE,GAAkB,EALxB,kBAQqDslC,YAAO5tB,MAR5D,OAYqB,OAJXnY,EARV,OASU61E,EATV,OAS8B71E,QAT9B,IAS8BA,OAT9B,EAS8BA,EAAUO,iBAC9Bu1E,EAVV,OAU6B91E,QAV7B,IAU6BA,OAV7B,EAU6BA,EAAUS,gBAVvC,UAY2BwnC,YAAKqmC,EAAc14E,IAAf,UAAuB2qB,IAAvB,iBAZ/B,QAkBI,OAlBJ,SAYY7e,EAZZ,EAYYA,KACRnB,GAAuB,OAAJmB,QAAI,IAAJA,OAAA,EAAAA,EAAO,sBAAsB,EAChDpB,GAAqB,OAAJoB,QAAI,IAAJA,OAAA,EAAAA,EAAO,oBAAoB,EAC5ClB,GAAqB,OAAJkB,QAAI,IAAJA,OAAA,EAAAA,EAAO,oBAAoB,EAC5CjB,GAAsB,OAAJiB,QAAI,IAAJA,OAAA,EAAAA,EAAO,qBAAqB,EAhBlD,UAkBUmyE,YAAI5uE,KAAgBH,QAAQ,CAChCvE,mBAAkBD,iBAAgBE,iBAAgBC,kBAAiBG,gBAAiBc,KAnB1F,QAsBQpB,GAAyC,OAAtBu1E,IAAgCt1E,GAErD4xE,KAEE5xE,GAAoBC,IAAwC,IAArBs1E,IAAgCr1E,GAEzE4xE,KA5BN,wBAwCI,OAxCJ,0BAuCIn7E,QAAQoN,KAAK,4BAvCjB,UAwCUuvE,YAAI5uE,KAAgBF,WAxC9B,aA2CM6wE,GAAQt1E,GAAkBE,GA3ChC,iBA4CI,OA5CJ,UA4CUpH,YAAM+kC,KA5ChB,QA6CI,OA7CJ,UA6CU01C,YAAI5uE,aAAgB,CAAE2wE,MAAM,KA7CtC,uDAkDO,SAAUtC,KAAV,iEACL,OADK,SACCyC,YAAUnuE,KAAgB/C,QAASsuE,IADpC,OAEL,OAFK,SAEC4C,YAAU3tE,KAAiBvD,QAASuuE,IAFrC,OAGL,OAHK,SAGC2C,YAAU9tE,KAA2BpD,QAAS0wE,IAH/C,OAIL,OAJK,SAICQ,YAAUnhD,IAAwB8gD,IAJnC,OAKL,OALK,UAKCK,YAAU9wE,KAAgBJ,QAASwuE,IALpC,QAML,OANK,UAMC2C,YAAM9C,IANP,yC,0CCxYM+C,GAAmC,G,4DCoEtCC,I,YAqIAC,I,YA0CAvgF,I,YAQAwgF,I,YAsBAC,I,YAgBAC,I,YAMOC,IAxRXC,GAA8B,IAC9BC,GAAsB,IAKtBC,GAAkC,IAGlCC,GAA4B,iBAAkB/9E,OAE9Cg+E,GAAuBh+E,OAAOi+E,2BAIhCC,GAAsB,EACtBC,GAAqB,EAgBnBC,GAAgB,SAAC11E,GACA,kBAAVA,IAdS,SAAC21E,GACrB,GAAuB,kBAAZA,EAAsB,CAC/B,IAAM59C,EAAet9B,SAASw9B,cAAT,iBAAiC16B,aAAQo4E,KAC9D,GAAI59C,EAAc,CAChB,IAAMzW,EAAUyW,EAAgCC,WArB7B,GAuBnB,OADCv9B,SAASw9B,cAAc,QAAwBzW,UAAYF,GACrD,GAGX,OAAO,EAMiBs0D,CAAc51E,EAAMuG,QAExCjP,OAAOq8B,UAKPkiD,GAAqB,WACrBR,IAC8B,YAA5BS,aAAaC,YACfD,aAAaE,qBAKbC,GAAkC,kBAAOZ,IACd,YAA5BS,aAAaC,YAGlB,SAAUnB,GAAOsB,EAA+Bj3D,GAAhD,yEAEqB,OAFrB,kBAE2B0nB,YACrBqmC,EAAc14E,IADW,UAEtB2qB,EAFsB,mCAEkBi3D,IAJjD,uBAEY91E,EAFZ,EAEYA,KAFZ,kBAOWA,GAPX,uCASIxK,QAAQoN,KAAK,4BAAb,MATJ,kBAUW,MAVX,sDAoBA,IAAMmzE,GAAkB,SACtBC,EAAiBt2E,EAA4Bu2E,GAE7C,IAAID,EAAME,QAAV,CAKA,IAAIC,EAAcH,EAAMI,aAClB/gF,EAAIqK,EAAaD,OAAb,UAAuBu2E,EAAM7vE,MAA7B,YAAsC6vE,EAAM7gE,OACrC,qBAAN9f,GACN2gF,EAAM98D,SAAW7jB,EAAE6jB,QACO,qBAAnB7jB,EAAE+gF,eAEZD,EAAc9gF,EAAE+gF,cAGlB,IAAMjhE,EAAO6gE,EAAM7gE,KAAK9X,QAAQ,KAAM,KAClC6b,EAAS88D,EAAM98D,OAAOwC,cACtBzjB,EAAK,UAAMkd,EAAN,cAAgBghE,GACnBE,EAAML,EAAMjF,SACdvsD,EAAO,iCACP8xD,GAAc,EACd3+E,GAAO,EAGX,OAAQq+E,EAAM98D,QACZ,IAAK,UACHvhB,GAAO,EACP,MAEF,IAAK,YAGL,IAAK,gBACH,OAEF,IAAK,QACH,GAAIq+E,EAAMO,UAAYN,EAEpB,OAEF,GAAyB,kBAArBD,EAAMQ,YAAuD,cAArBR,EAAMQ,WAEhD,OAEF,GAAIR,EAAMS,sBAER,OAEFx+E,EAAK,UAAMkd,EAAN,4BAA8BghE,EAA9B,KACL3xD,EAAO,oCACP8xD,GAAc,EACd,MAEF,IAAK,UACsB,aAArBN,EAAMQ,aACRt9D,EAAM,qBAAiB88D,EAAM98D,OAAOwC,gBAGtC8I,EAAO,8BACP8xD,GAAc,EACd,MAEF,IAAK,WACsB,YAArBN,EAAMQ,aACRt9D,EAAM,uBAAmB88D,EAAM98D,OAAOwC,gBAGxC8I,EAAO,2BACP8xD,GAAc,EACd,MAEF,QAEE,YADA9gF,QAAQoN,KAAR,+BAAqCozE,EAAM98D,SAU/C,OAAIvhB,IACkC,oBAAzBu9E,KACTv9E,EAAOu9E,GAAqBc,IAG1Br+E,GAGK,CACL++E,kBAAmBz+E,EACnB0+E,oBAAqB,CACnBt+C,KAAK,GAAD,OAAK29C,EAAMr3E,SAAX,cAAyBq3E,EAAM7vE,MAA/B,aAAyC6vE,EAAMt+D,OAA/C,eAA4DwB,EAA5D,aAAuE88D,EAAMvxD,MACjF4xD,IAAI,GAAD,OAAKA,GACRO,mBAAoBN,EACpB9xD,KAAMiwB,IAAejwB,EACrBxkB,KAAMg2E,GAERa,oBAAqB,SAAC19E,GAEpB,GADAA,EAAMC,iBACFD,EAAMivB,OAAQ,CAAC,IACTpoB,EAAS7G,EAAMivB,OAAfpoB,KACRs1E,GAAct1E,WArBxB,IA6BF,SAAUy0E,GAAU51D,EAAuBnf,GAA3C,uFAC+B,OAD/B,SACqC6mC,YAAKiuC,GAAQa,GAAoBx2D,GADtE,UAEoB,QADZi4D,EADR,SAEiD,kBAAdA,EAFnC,uBAGIthF,QAAQoN,KAAK,+BAHjB,6BAO2B,IAArBk0E,EAAUp2E,OAPhB,uBAQIlL,QAAQC,IAAI,4BARhB,0BAYQshF,EAAaC,aAAOxgE,aAAK,aAAcsgE,GAGvCG,EAAUF,EAAWh1E,QAAO,qBAAGw0E,UAA4BlB,MAC3D6B,EAAgBD,EACnBh1E,KAAI,SAAC+zE,GAAD,OAAYD,GAAgBC,EAAOt2E,EAAc01E,OACrDrzE,QAAO,SAAC9R,GAAD,YAAa0E,IAAN1E,KAERiS,EAAI,EApBf,aAoBkBA,EAAIg1E,EAAcx2E,QApBpC,iBA8BI,OA9BJ,EAuBQw2E,EAAch1E,GADhBw0E,EAtBN,EAsBMA,kBAAmBC,EAtBzB,EAsByBA,oBAAqBE,EAtB9C,EAsB8CA,oBAErB,IAAInB,aACvBgB,EACAC,GAEWQ,QAAUN,EA5B3B,UA8BUn/E,YAAMs9E,IA9BhB,QAoB4C9yE,GAAK,EApBjD,wBAkCEmzE,GAAsBx0E,aAAKk2E,GAAyBR,WAER,qBAAjCr/E,OAAOkgF,uBAAyClgF,OAAOkgF,wBAChEp9E,aAAaC,QAAQ,uBAArB,UAAgDo7E,KArCpD,yCA0CA,SAAUnhF,GAAImjF,EAAcx4D,GAA5B,yEACmB,OADnB,SACyB0nB,YAAKqmC,EAAc14E,IAAf,UAAuB2qB,EAAvB,0BAAsDw4D,IADnF,uBACUr3E,EADV,EACUA,KACoB,IAAxBo1E,IAAwE,kBAApCp1E,EAAKs3E,6BAC3ClC,GAAsBp1E,EAAKs3E,4BAH/B,kBAKSt3E,GALT,wCAQA,SAAU00E,GAAW71D,GAArB,uEAE0B,OAF1B,SAEgC0nB,YAAKryC,GAAK,SAAU2qB,GAFpD,YAEUnf,EAFV,yBAIM,OAJN,SAIYyyE,YAAIp2E,aAAyB,CAAE2D,kBAJ3C,YAMQm2E,MAEIn2E,EAAa43E,2BAA6BjC,IARtD,iBAUQ,OAVR,UAUc9uC,YAAKkuC,GAAW51D,EAAenf,GAV7C,YAYoC,IAAxBA,EAAawZ,OAZzB,qDAkBI,OAlBJ,UAkBUxhB,YAAMq9E,IAlBhB,gEAsBA,SAAUJ,KAAV,2EAEuD,OAFvD,SAE6D5C,YAAKl2E,MAFlE,OAKE,OALF,SAEUkB,EAFV,EAEUA,QACA8hB,EAAkB9hB,EAAlB8hB,cAHV,SAKQnnB,YAAMo9E,IALd,OASE,OAFAO,KAAuBr7E,aAAaqgB,QAAQ,yBAA2Bg7D,IACvEI,KARF,UASQlvC,YAAKmuC,GAAY71D,GATzB,yCAgBA,SAAU+1D,GAAV,gFAEoB,OAFW73E,EAA/B,EAA+BA,QACrBmpB,EAA4BnpB,EAA5BmpB,SAAUrH,EAAkB9hB,EAAlB8hB,cADpB,SAE0B0nB,YAAKryC,GAAK,MAAO2qB,GAF3C,OAEQ04D,EAFR,OAGErxD,EAASqxD,GAHX,wCAMO,SAAU1C,KAAV,iEACL,OADK,SACCP,YAAMK,IADP,OAEL,OAFK,SAECN,YAAUv4E,KAAqBqH,QAASyxE,IAFzC,wCCvSP,IAAM4C,GAAyB,CAC7B,GACA,0BACA,0BACA,2BAGWC,GAAoB,SAACC,GAAD,OAAsBF,GAAuBt/C,SAASw/C,IAClFA,EAASn0D,SAAS,oBAClBm0D,EAAStiE,WAAW,wBACpBsiE,EAASn0D,SAAS,mBAClBm0D,EAAStiE,WAAW,+B,YCiCRuiE,I,YAOPC,I,YAIAC,I,YAoOAC,I,YAwEAC,I,YAUOC,IA5UXC,GAAqB7pD,cAEpB,SAAS8pD,KACdhhF,OAAOoD,iBAAiB,SAAS,WAC/B29E,GAAmB9F,IAAI32E,aAAwB,CAAEyC,gBAAgB,QAEnE/G,OAAOoD,iBAAiB,QAAQ,WAC9B29E,GAAmB9F,IAAI32E,aAAwB,CAAEyC,gBAAgB,QAI9D,SAAU05E,KAAV,uEAEY,OAFZ,SAEkB5F,YAAKkG,IAFvB,OAGH,OADMjG,EAFH,gBAGGG,YAAIH,GAHP,8DAOP,SAAU4F,KAAV,iEACU,OADV,SACgB7F,YAAKxuE,KAAgBH,SADrC,uCAC+CrG,QAAQmC,iBADvD,wCAIA,SAAU24E,GAAc14E,EAAqBC,GAA7C,qFACMlI,OAAOihF,QADb,iDAI6B,OAJ7B,SAImC9zC,YAAO+zC,MAJ1C,2CAKQ,OALR,SAKc7xC,YAAKqxC,IALnB,kEAMO,GANP,QAIQnzD,EAJR,KAUG,SAASpvB,EAAE8E,GAAG,IAAIqsC,EAAEtrB,EAAE9C,EAAEsjB,EAAEvhC,EAAEk+E,OAAOnhF,OAAOihF,QAAQh+E,EAAEA,EAAEm+E,GAAG,GAAGn+E,EAAE8G,KAAK,SAASiB,EAAE9E,EAAEme,GAAG,SAAS69B,EAAE/jD,EAAE8E,GAAG,IAAIqsC,EAAErsC,EAAE6G,MAAM,KAAK,GAAGwlC,EAAE9lC,SAASrL,EAAEA,EAAEmxC,EAAE,IAAIrsC,EAAEqsC,EAAE,IAAInxC,EAAE8E,GAAG,WAAW9E,EAAE0rB,KAAK,CAAC5mB,GAAGq6C,OAAOx/B,MAAMyxB,UAAUnkB,MAAMikB,KAAKO,UAAU,OAAO1uB,EAAE/iB,EAAEknB,cAAc,WAAWtmB,KAAK,kBAAkBmiB,EAAE0G,OAAM,EAAG1G,EAAEsuB,IAAItpC,EAAEm7E,SAAS,oBAAoB78C,EAAErmC,EAAEg/C,qBAAqB,UAAU,IAAIzB,WAAW4lC,aAAapgE,EAAEsjB,GAAG,IAAIud,EAAE9+C,EAAE,SAAI,IAASohB,EAAE09B,EAAE9+C,EAAEohB,GAAG,GAAGA,EAAE,UAAU09B,EAAEw/B,OAAOx/B,EAAEw/B,QAAQ,GAAGx/B,EAAEvjD,SAAS,SAASL,GAAG,IAAI8E,EAAE,UAAU,MAAM,YAAYohB,IAAIphB,GAAG,IAAIohB,GAAGlmB,IAAI8E,GAAG,WAAWA,GAAG8+C,EAAEw/B,OAAO/iF,SAAS,WAAW,OAAOujD,EAAEvjD,SAAS,GAAG,kBAAkB8wC,EAAE,kMAAkMxlC,MAAM,KAAKka,EAAE,EAAEA,EAAEsrB,EAAE9lC,OAAOwa,IAAIk+B,EAAEH,EAAEzS,EAAEtrB,IAAI/gB,EAAEm+E,GAAGv3D,KAAK,CAAC7e,EAAE9E,EAAEme,KAAKphB,EAAEk+E,KAAK,GAAt3B,CAA03Bh+E,SAASnD,OAAOihF,SAAS,IAEp5BjhF,OAAOihF,QAAQl3E,KAAK,8CAA+C,CACjEs3E,SAAU,0BACVG,OAAQ,SAACP,GACH/4E,GACF+4E,EAAQQ,SAASv5E,MAIjBw5E,GAAsBh9C,OAAW67C,GAAkBp9E,SAASq9E,UACnD,SACfxgF,OAAOihF,QAAQU,SAEb92E,cAAO,SAAC9O,GAAD,YAAqB0B,IAAV1B,GAAiC,OAAVA,IACvC,CACE6lF,IAAK,YACLC,aAAcn9C,KAAS,KAAO,kBAC9Bo9C,UAAWp9C,KAAS,KAAO,oBAC3Bq9C,MAAOr9C,KAAS,KAAO,uBAEvBs9C,0BAA2BN,EAVlB,SAUgD,KACzDO,kBAAmBP,EAXV,SAWwC,KACjDQ,kBAAmBR,EAZV,SAYwC,KACjDS,UAAWT,EAbF,SAagC,KAEzCU,aAAc,kBAEdznD,gBAAiBpN,EAAKzE,QACtBu5D,qBAAsBp6E,EACtBq6E,kBAAmBp6E,GAAc,cACjCq6E,kBAAmBh1D,EAAI,UACvBi1D,wBAAyBj1D,EAAK,mBAC9Bk1D,oBAAmB,UAAEl1D,EAAKm1D,sBAAP,aAAE,EAAqBl5E,OAC1Cm5E,cAAa,UAAEp1D,EAAKhlB,cAAP,aAAE,EAAaq6E,OAC5BC,eAAc,UAAEt1D,EAAKhlB,cAAP,aAAE,EAAau6E,QAC7BC,gBAAiBx1D,EAAKhlB,OAAOy6E,SAC7BC,aAAc11D,EAAK21D,QACnBC,WAAY51D,EAAK61D,MACjBC,gBAAiB91D,EAAK+1D,WACtBC,gBAAiBh2D,EAAKi2D,WACtBC,mBAAoBl2D,EAAKm2D,cACzBC,kBAAmBp2D,EAAKq2D,aACxBC,mBAAoBt2D,EAAKu2D,YACzBC,wBAAyBx2D,EAAKy2D,iBAC9BC,gBAAiB12D,EAAK22D,SACtBC,iBAAkB52D,EAAK62D,UACvBC,mBAAoB92D,EAAK+2D,YACzBC,sBAAuBh3D,EAAKi3D,eAC5BC,oBAAqBl3D,EAAKm3D,aAC1BC,sBAAuBp3D,EAAKq3D,eAC5BC,sBAAuBt3D,EAAKu3D,eAC5BC,iBAAkBx3D,EAAKptB,UACvB6kF,2BAA4Bz3D,EAAK03D,oBACjCC,kBAAmB33D,EAAK23D,kBACxBC,gBAAiB53D,EAAK43D,gBACtBC,qBAAsB73D,EAAK63D,qBAC3BC,qBAAsB93D,EAAK83D,qBAC3BC,wBAAyB/3D,EAAK+3D,wBAC9BC,sBAAuBh4D,EAAKi4D,WAAWh8E,OACvCi8E,mBAAoBl4D,EAAK,iBACzBm4D,qBAAsBn4D,EAAK,mBAC3Bo4D,mBAAoBp4D,EAAK,iBACzBq4D,oBAAqBr4D,EAAK,kBAC1Bs4D,yBAA0Bt4D,EAAK,uBAC/Bu4D,0BAA2Bv4D,EAAK,wBAChCw4D,gCAAiCx4D,EAAK,8BACtCy4D,2BAA4Bz4D,EAAK,yBACjC04D,kBAAmB14D,EAAK,gBACxB24D,oBAAqB34D,EAAK,kBAC1B44D,mBAAoB54D,EAAK,iBACzB64D,0BAA2B74D,EAAK,wBAChC84D,mBAAoB94D,EAAK,eACzB+4D,yBAA0B/4D,EAAK,qBAC/Bg5D,4BAA6Bh5D,EAAK,wBAClCi5D,uBAAwBj5D,EAAK,mBAC7Bk5D,qBAAsBl5D,EAAK,iBAC3Bm5D,0BAA2Bn5D,EAAK,sBAChCo5D,uBAAwBp5D,EAAK,mBAC7Bq5D,sBAAuBr5D,EAAK,kBAC5Bs5D,mBAAoBt5D,EAAK,eAEzBu5D,eAAc,UAAEv5D,EAAKw5D,mBAAP,aAAE,EAAkBC,WAClCC,yBAA0B15D,EAAK25D,sBAC5Br8E,QAAO,qBAAGs8E,aAA2B39E,OACxC49E,2BAA4B75D,EAAK25D,sBAC9Br8E,QAAO,qBAAGs8E,aAA4B39E,OACzC69E,gBAAiB95D,EAAKi4D,WACtB8B,iBAAkB/5D,EAAKg6D,eAlG/B,yCA4HA,IAAMC,GAAiC,SAAjCA,EAAkC,GAAD,IACrCv/E,EADqC,EACrCA,YAAaw/E,EADwB,EACxBA,aAAcxpE,EADU,EACVA,KAAM5V,EADI,EACJA,eAAgB4c,EADZ,EACYA,IADZ,OAEjCywD,EAAc14E,IAAd,UAAqBqL,EAArB,oBAAuD,CAC3Dyf,QAAS,CACP,gBAAiB,qBACjB8tD,OAAQ,YAEVQ,OAAQ,CACN0E,OAAQ,SACR4M,QAASz/E,EACTgW,OACAgH,OAEF+C,iBAAiB,IAChBmH,MAAK,YAAe,IAAZrmB,EAAW,EAAXA,KAEH6+E,EAAsC,kBAAlB7+E,EAAK1B,SAE3BwgF,EAAa9+E,EAMjB,GAL2B,kBAAhBA,EAAKkZ,QAAuC,OAAhBlZ,EAAKkZ,SAE1C4lE,EAAa,MAGI,OAAfA,EACF,OAAID,GAAcF,EAAe,EACxBD,EAAe,CACpBC,aAAcA,EAAe,EAC7Bx/E,cACAgW,OACA5V,eAAgBS,EAAK1B,SACrB6d,QAGG,CAAE5c,kBAEX,IAAMgf,EAAOve,EAAKue,KAAKxc,QAAO,SAACk3C,GAAD,OAAyBA,EAAE,KAAOzc,OAChE,MAAO,CACLp9B,WAAYY,EAAK++E,aAAe,KAChCx/E,iBACAgf,WAED4H,OAAM,WAGP,OADA3wB,QAAQoN,KAAK,0BAA2BrD,GACjC,SAkBIy/E,GAAmC,SAACC,GAE/C,IAAM5/E,EAAuD,GAE7D4/E,EACG38D,QACA0wC,UACA/9D,SAAQ,YAA4D,IAAD,mBAAzD0oB,EAAyD,KAAnDxB,EAAmD,KAA9C+iE,EAA8C,KAA/BC,EAA+B,KAArBhqE,EAAqB,KAC5DiqE,EAAc//E,EAAiBse,IAAS,CAC5CuhE,cAAe,EACfC,SAAU,EACV/gE,cAAe,GACfT,KAAM,GACNxB,IAAK,GACLhH,KAAM,IAEFkqE,EAAUD,EAAYF,cAAgBA,EACtCI,EAA4B,CAChC3hE,KAAMyhE,EAAYzhE,MAAQA,EAC1BxB,IAAKkjE,EAAUljE,EAAMijE,EAAYjjE,IACjC+iE,cAAeG,EAAUH,EAAgBE,EAAYF,cACrDC,SAAUC,EAAYD,SAAWA,EACjChqE,KAAMkqE,EAAUlqE,EAAOiqE,EAAYjqE,KACnCiJ,cAAeghE,EAAYhhE,cAAco2B,OAAOr4B,IAElD9c,EAAiBse,GAAQ2hE,KAG7B,IAAMhgF,EAAwBigF,aAE5BN,EACG38D,QACA0wC,UACA/wD,KAAI,2CACPA,KAAI,SAAC0b,GAAD,OAAUte,EAAiBse,MACjC,MAAO,CACLte,mBACAC,0BAIJ,SAAUw4E,GAAV,sGAKe,OALY/6E,EAA3B,EAA2BA,QACjB8hB,EAAkB9hB,EAAlB8hB,cACF2gE,EAFR,UAE0B3gE,EAF1B,kDAKqB0nB,YAAKqmC,EAAc14E,IAAKsrF,EAAc,CACrDxgE,QAAS,CACP,gBAAiB,qBACjB8tD,OAAQ,YAEV5tD,iBAAiB,IAVvB,OAKI+0D,EALJ,8BAcI,OAdJ,yBAaIz+E,QAAQoN,KAAK,uDAbjB,UAcUuvE,YAAI12E,KAAiB4H,WAd/B,0CAuBE,OANM9E,EAAe01E,EAASj0E,KAAKy/E,eAC3B9gF,EAAas1E,EAASj0E,KAAtBrB,SACFQ,EAAc80E,EAASj0E,KAAK+d,aAC5Bxe,EAAiB00E,EAASj0E,KAAK1B,SAC/BohF,EAAwBngF,IAAmBogC,KArBnD,UAuBQwyC,YAAI12E,KAAiB2H,QAAQ,CACjC7E,eACAI,WACA+gF,wBACAvgF,iBA3BJ,QAkCyD,OAJjDgW,EAAOxW,EACPwd,EAAM0C,EA/Bd,UAkC+D0nB,YAAKm4C,GAAgB,CAChFv/E,cACAw/E,aAAc,EACdxpE,OACA5V,iBACA4c,QAvCJ,WAkCQwjE,EAlCR,QA0CM1L,EAASj0E,KAAK4/E,qBA1CpB,iBA2CI,OA3CJ,UA2CUtL,YAAMuD,GAAe5D,EAASj0E,KAAK+d,aAA9B,OAA4C4hE,QAA5C,IAA4CA,OAA5C,EAA4CA,EAAwBvgF,YA3CnF,cA8C4B,OAAtBugF,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBphE,QAAxB,OAAgCohE,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAwBvgF,aA9C9D,iBAiDI,OAFM6/E,EAAaD,GAAgBW,EAAuBphE,MAClDlf,EAA4C4/E,EAA5C5/E,iBAAkBC,EAA0B2/E,EAA1B3/E,sBAhD9B,UAiDU6yE,YAAIx2E,aAAuB,CAC/ByD,WAAYugF,EAAuBvgF,WACnCC,mBACAC,2BApDN,QAwDE,OAxDF,UAwDQ6yE,YAAIv2E,aAA4B,CACpC2D,gBAAsC,OAAtBogF,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBpgF,iBAAkBA,KAzD9D,sDA6DA,IAAMsgF,GAA4B,SAACr8E,GAAD,wBAA4BA,IAC9D,SAASs8E,GAAT,GAA8D,IAArC/iF,EAAoC,EAApCA,QACfyG,EAAezG,EAAfyG,IAAKvQ,EAAU8J,EAAV9J,MACD,oCAARuQ,GAKJxJ,aAAaC,QAAQ4lF,GAA0Br8E,GAAMO,KAAKiZ,UAAU/pB,IAGtE,SAAU8kF,GAAV,0EAME,OANyBh7E,EAA3B,EAA2BA,SACbyF,SACVnI,SAASg+B,KAAKtiC,UAAY,aAE1BsE,SAASg+B,KAAKtiC,UAAY,GAJ9B,SAMQ2B,YAAyC,IAAnC68E,IANd,OAOE,OAPF,SAOQpC,YAAI91E,aAAiC,CAAEmG,SAAUzF,EAAQyF,YAPjE,wCAUO,SAAUw1E,KAAV,iEACL,OADK,SACC1D,YAAM4D,IADP,OAEL,OAFK,SAEC5D,YAAMqD,IAFP,OAGL,OAHK,SAGCtD,YAAU54E,KAAiB0H,QAAS20E,IAHrC,OAIL,OAJK,SAICxD,YAAMO,IAJP,OAKL,OALK,UAKCR,YAAUr4E,KAAiB8jF,IAL5B,QAML,OANK,UAMCzL,YAAUj4E,KAA2B27E,IANtC,yC,yBC7TGgI,I,YAWOC,IA1CJC,GAA2B,2BAExC,SAASC,GAAT,GAAwF,IAAlDnjF,EAAiD,EAAjDA,QAC5B0F,EAAkB1F,EAAlB0F,MAAOC,EAAW3F,EAAX2F,OACf,GAAIxL,OAAO0f,WAEL1f,OAAO0f,WAAWnU,QAAUA,GAASvL,OAAO0f,WAAWlU,SAAWA,GACpExL,OAAO0f,WAAWyC,0BAAyB,EAAM5W,EAAOC,OAErD,CAEL,IAAMy9E,EAAaC,eACb9oE,EAAkBhnB,KAAKgpB,MAAM7W,GAAO/M,WACpC6hB,EAAmBjnB,KAAKgpB,MAAM5W,GAAQhN,WAE1CyqF,EAAW7oE,kBAAoBA,GAC/B6oE,EAAW5oE,mBAAqBA,GAEhC8oE,aAAc,CAAE/oE,kBAAiBC,sBAKvC,SAAS+oE,KACHppF,OAAO0f,WACT1f,OAAO0f,WAAWyC,0BAAyB,EAAO,EAAG,GAErDknE,aAAiB,CAAC,kBAAmB,qBAIzC,SAAUR,GAAV,+EAA2BhjF,EAA3B,EAA2BA,SACrB7F,OAAOmlC,gBADb,gBAII,OAFAnlC,OAAOmlC,kBAFX,SAIU01C,YAAKx1C,KAJf,OAKYikD,EAAmBzjF,EAAnByjF,eACRtpF,OAAO8C,aAAaC,QAAQgmF,GAA0B,QACtD/oF,OAAOghB,SAASklB,KAAOojD,EAP3B,wCAWO,SAAUR,KAAV,iEACL,OADK,SACC3L,YAAUh5E,KAA8B6kF,IADzC,OAEL,OAFK,SAEC7L,YAAU94E,KAAsB+kF,IAFjC,OAGL,OAHK,SAGCjM,YAAUx8B,IAAuBkoC,IAHlC,wC,gBCrDUU,IAAV,SAAUA,KAAV,iEACL,OADK,SACCnM,YAAM0D,IADP,OAEL,OAFK,SAEC1D,YAAM1C,IAFP,OAGL,OAHK,SAGC0C,YAAM0L,IAHP,wCCDP,IAAMU,GAAiBC,cAoBVC,GATiB,WAC5B,IAAMA,EAAQC,YACZC,EAJAC,YAAQC,YAAgBN,MAQ1B,OADAA,GAAepnC,IAAImnC,IACZG,EAGYK,G,+ECvBrB/pF,OAAOC,EAAIA,KACXD,OAAOgwC,OAAS/vC,K,8CCAH+pF,GAAmB,SAAC9jD,GAI/B,OAAO,IAAI3W,SAAQ,SAAC06D,EAASC,GAC3B,IAAMC,EAAUhnF,SAASkiB,cAAc,QACvC8kE,EAAQ7kE,aAAa,MAAO,cAC5B6kE,EAAQ7kE,aAAa,OAAQ,YAC7B6kE,EAAQ7kE,aAAa,OAAQ4gB,GAE7BikD,EAAQjwD,OAAS,WACf+vD,KAGFE,EAAQC,QAAU,WAChBF,EAAOroC,MAAM,sBAAD,OAAuB3b,MAGrC/iC,SAASg6C,qBAAqB,QAAQ,GAAG33B,YAAY2kE,O,qHCUnDE,GAAyC,SAACrsE,GAAD,MACjB,cAA5BA,EAAWlL,cAGAw3E,GAAiD,CAC5D1jC,QAAS,CAYP2jC,sBAAsB,EAGtBC,eAAgB,IAAIztC,OAAO,8BAC3BzS,OAAQ,OACR3pC,QAjBO,SAiBCqd,GACN,MAA+B,oBAApBjhB,KAAK0tF,WAER,UAAN,OAAiB1tF,KAAK0tF,WAAWzsE,GAAc,OAAS,IAEnD,IAET0sE,UAxBO,SAwBG1sE,GAAwB,MAGNA,EAAlB/M,cAHwB,SAIhC,OAAQo5E,GAAmBrsE,IAAeof,QAAQnsB,IAUpD05E,aAAa,EACbn4E,eAAiB,SAACwL,GAAD,OAA6BqsE,GAAmBrsE,GAAc,EAAI,GAInFysE,WA3CO,SA2CIzsE,GACT,MAAmC,aAA5BA,EAAWlL,cAEpB83E,eA9CO,SA8CQ5sE,GACb,OAAOjhB,KAAK2tF,UAAU1sE,GAClBhf,KACA,gCAC8B,WAA9Bgf,EAAW9M,gBAA+B,yCAE1C,sBASRyZ,UAAW,CAOT4/D,sBAAsB,EAGtBC,eAAgB,IAAIztC,OAAO,yBAC3BzS,OAAQ,QACR3pC,QAAS,iBAAM,YACf+pF,UAAW,kBAAM,GASjBC,aAAa,EACbn4E,eAAgB,kBAAM,GACtBo4E,eAAgB,iBAAM,sBAExBC,MAAO,CAOLN,sBAAsB,EAGtBC,eAAgB,IAAIztC,OAAO,yBAC3BzS,OAAQ,WACR3pC,QAAS,iBAAM,sBACf+pF,UAAW,kBAAM,GASjBC,aAAa,EACbn4E,eAAgB,kBAAM,GACtBo4E,eAAgB,iBAAM,sBAExBE,OAAQ,CAONP,sBAAsB,EAGtBC,eAAgB,IAAIztC,OAAO,8BAC3BzS,OAAQ,YACR3pC,QAAS,iBAAM,IACf+pF,UAAW,kBAAM,GASjBC,aAAa,EACbn4E,eAAgB,kBAAM,GACtBo4E,eAAgB,iBAAM,sBAExB/uC,MAAO,CAOL0uC,sBAAsB,EACtBC,eAAgB,IAAIztC,OAAO,8BAC3BzS,OAAQ,OACRogD,UAAW,kBAAM,GACjB/pF,QAAS,iBAAM,iBASfgqF,aAAa,EACbn4E,eAAgB,kBAAM,IACtBo4E,eAAgB,iBAAM,sBA8CxBG,aAAc,CAOZR,sBAAsB,EAGtBC,eAAgB,IAAIztC,OAAO,yBAC3BzS,OAAQ,QACR3pC,QAZY,WAaV,MAAO,YAET+pF,UAfY,WAgBV,OAAO,GAUTC,aAAa,EACbn4E,eAAgB,kBAAM,GACtBw4E,YAAa,IACbJ,eAAgB,iBAAM,mCAExBK,MAAO,CAOLV,sBAAsB,EAGtBC,eAAgB,IAAIztC,OAAO,yBAC3BzS,OAAQ,QACR3pC,QAAS,iBAAM,YACf+pF,UAAW,kBAAM,GASjBC,aAAa,EACbn4E,eAAgB,kBAAM,GACtBw4E,YAAa,GACbJ,eAAgB,iBAAM,4BAExBM,SAAU,CAKRN,eAAgB,iBAAM,qBAGtBtgD,OAAQ,QAKRogD,UAAW,kBAAM,GAKjB/pF,QAAS,iBAAM,YACf6R,eAAgB,kBAAM,GACtBm4E,aAAa,EAEbH,eAAgB,IAAIztC,OAAO,0BAE7BouC,SAAU,CACRP,eAAgB,iBAAM,qBACtBF,UAAW,kBAAM,GACjB/pF,QAAS,iBAAM,YACf2pC,OAAQ,OACRqgD,aAAa,EACbn4E,eAAgB,kBAAM,GACtBg4E,eAAgB,IAAIztC,OAAO,2BCzUlBquC,GAAqB,SAChCptE,EAAwBqtE,GACpB,IAEFj5E,EAEE4L,EAFF5L,cACAG,EACEyL,EADFzL,gBAEE2Q,EAAM,GAsBV,OApBAA,GAAO3Q,EACHA,EAAgB/T,WAChB8rF,GAAuBtsE,EAAWnN,cAAclQ,QAAQqd,GAE/B,kBAAlB5L,IACT8Q,GAAG,WAAQwE,mBAAmBtV,KAGhC8Q,GAAO,YAEHmoE,IACFnoE,GAAO,aAG+B,eAApClF,EAAWvM,uBACVuM,EAAWvM,sBAAwBuM,EAAWnM,SAAkC,cAAvBmM,EAAWnM,WAEvEqR,GAAO,aAGFA,G,UChCIooE,GAA0B,WAAK,IAAK,E,mBCSpCC,GAAS,SAAC,GAGT,IAFZC,EAEW,EAFXA,cACAC,EACW,EADXA,aAKMC,EAAe1rF,OAAOs4B,OAAO31B,OAG/BmrC,EAAI09C,EAAchqF,aAGhBmqF,EAAOvyF,KAAKqD,IAAQ,GAAJqxC,EAAS,GAC/BA,GAAK69C,EAGL,IAAIC,GAAcD,EAAO,GAAK,EAIxB99C,EAAI29C,EAAcxlB,YAAc,GAClCl4B,EAAID,IACN+9C,IAAe99C,EAAID,GAAK,EACxBC,EAAID,GAKFC,EAAI49C,EAAe,KACrBE,IAAe99C,EAAK49C,EAAe,IAAO,EAC1C59C,EAAI49C,EAAe,IAGrB,IAAMlkD,EAAQikD,EAAe,SAAW,WAClCvsF,EAAWusF,EAAe,SAAW,UAE3C,OACE,yBACE5sF,UAAU,uBACV6D,MAAO,CACL+mC,SAAUqE,EACV89C,eAGF,kBAAC,KAAD,CAAM1sF,SAAUA,IACfsoC,I,oBCtDMqkD,GAAuC,SAAC5pF,GACnD,OAAIA,EAAM6pF,QACD9rF,OAAOU,QAAQC,QAAQZ,QAAQgsF,oBAClC/rF,OAAOU,QAAQC,QAAQZ,QAAQisF,uCAC/B/pF,EAAM8zD,SACH/1D,OAAOU,QAAQC,QAAQZ,QAAQgsF,oBAClC/rF,OAAOU,QAAQC,QAAQZ,QAAQksF,qCAC/BhqF,EAAM6zD,OACH91D,OAAOU,QAAQC,QAAQZ,QAAQgsF,oBAClC/rF,OAAOU,QAAQC,QAAQZ,QAAQmsF,mCAE9BlsF,OAAOU,QAAQC,QAAQZ,QAAQgsF,qB,oBCZ3BI,GAAiB,SAAC9nE,EAAYC,GACzC,OAAID,IAAMC,GAGHK,OAAOqoB,MAAM3oB,IAAgBM,OAAOqoB,MAAM1oB,ICW7C8nE,GAAyB,GACzBC,GAA6B,GAC7BC,GAAmB,SAACpvF,EAAaT,GACrC,IAAM6P,EAAM7P,EACZ,OAAIS,IAAQT,GAC0B,qBAAzB2vF,GAAgB9/E,KACzB8/E,GAAgB9/E,GAAO,IAAIizB,KAAKgtD,kBAAa9uF,EAAW,CACtD+uF,aAAa,EACbC,sBAAuBvvF,EACvBwvF,sBAAuBjwF,KAIpB2vF,GAAgB9/E,IAEb,IAARpP,GACsC,qBAA7BmvF,GAAoB//E,KAC7B+/E,GAAoB//E,GAAO,IAAIizB,KAAKgtD,kBAAa9uF,EAAW,CAC1D+uF,aAAa,EACbC,sBAAuBvvF,EACvBwvF,sBAAuBjwF,KAIpB4vF,GAAoB//E,IAKtB,IAAIizB,KAAKgtD,kBAAa9uF,EAAW,CACtC+uF,aAAa,EACbC,sBAAuBvvF,EACvBwvF,sBAAuBjwF,KAIrBkwF,GACJ,SACEC,EACAC,EACAC,GAHF,OAKA,SAAC/wF,GACC,GAAqB,kBAAVA,EACT,MAAO,IAGT,IASIgxF,EACAC,EAVEC,EAAiBL,EAAa7wF,GACpC,GAA8B,kBAAnBkxF,EACT,OAAOA,EAGT,GAAyB,OAArBJ,EACF,OAAOA,EAAiBviD,OAAO2iD,GAKjC,IAA4B,IAAxBH,EACFC,EAAOD,EACPE,EAAOF,MACF,CACLC,EAAO,EACP,IAAM1zF,EAAM4zF,EAAiB,GAAKA,EAAiBA,EAEjDD,EADE3zF,EAAM,IACD,EACEA,EAAM,GACR,EACEA,EAAM,EACR,EACEA,EAAM,GACR,EACEA,EAAM,IACR,EACEA,EAAM,KACR,EACEA,EAAM,KACR,EAEA,EAIX,OAAOizF,GAAiBS,EAAMC,GAAM1iD,OAAO2iD,KAalCC,GAAgB,SAAC,GAOZ,IANhBlvE,EAMe,EANfA,WACAlV,EAKe,EALfA,KACA3L,EAIe,EAJfA,MACAgU,EAGe,EAHfA,YACAC,EAEe,EAFfA,aACAnU,EACe,EADfA,KAEMM,EAAqBqC,aAAYutF,MACjC3vF,EAAuBoC,aAAYwtF,MAF1B,EAKyB7rF,oBAAoB,kBAAM7E,QALnD,mBAKRkwF,EALQ,KAKMS,EALN,OAQO9rF,qBARP,mBAQRrE,EARQ,KAQHowF,EARG,OASO/rF,qBATP,mBASR9E,EATQ,KASH8wF,EATG,OAYyBhsF,mBAAiBpE,GAZ1C,mBAYRqwF,EAZQ,KAYMC,EAZN,OAciBlsF,oBAAkB,GAdnC,mBAcRmsF,EAdQ,KAcEC,EAdF,OAeiCpsF,mBAAmC,MAfpE,mBAeRsrF,EAfQ,KAeUe,EAfV,OAoBX5vE,EADFhM,qBAnBa,OAmBI,EAnBJ,EAsBT67E,EAAuChoD,mBAC3C,kBAAM8mD,GAAqBC,EAAcC,EAAkB76E,KAC3D,CAAC46E,EAAc56E,EAAe66E,IAG1BiB,EAAuBpuF,iBAAOmuF,GAC9BE,EAA6B,SACjCC,EACAC,EACAC,GAEAJ,EAAqB/tF,QAAU4sF,GAC7BqB,EACAC,EACAC,IA+GJ,MAAO,CACLL,oBACAM,oCA7G0CnsF,uBAC1C,SAACosF,EAAgBC,GACf,GAAIlC,GAAejvF,EAAKkxF,IAAWjC,GAAe1vF,EAAK4xF,GACrD,OAAOP,EAAqB/tF,QAI9ButF,EAAOc,GACPb,EAAOc,GAEP,IAAML,EAAkBrxF,KAAuBK,IAC7CC,EACAmxF,EACAC,EACAlxF,EACAiU,EACAD,GACA,SAAAm9E,GACEb,EAAgBa,KAKlB/wF,EACAC,GAIF6vF,GAAgB,kBAAMW,KAEtB,IASIO,EATEC,EAAeR,EAAgBI,GAC/BK,EAAeT,EAAgBK,GAGrC,GAA4B,kBAAjBG,GAAqD,kBAAjBC,EAE7C,OADAV,EAA2BC,EAAiBnB,EAAkB76E,GACvD87E,EAAqB/tF,QAK9B,GAAI+I,EAAK5L,MAAQ4L,EAAKrM,IAEpB8xF,GAAe,OACV,IAAuB,IAAnBv8E,EAETu8E,EAAcv8E,MACT,CAEL,IAAI08E,EASFH,GANAG,EADEF,IAAiBC,EACXr1F,KAAKC,IAAIm1F,GAETp1F,KAAKC,IAAIo1F,EAAeD,IAGtB,IACI,EACLE,EAAQ,GACH,EACLA,EAAQ,EACH,EACLA,EAAQ,GACH,EACLA,EAAQ,IACH,EACLA,EAAQ,KACH,EACLA,EAAQ,KACH,EAEA,EAIlB,IAAIT,EAAsBpB,EAY1B,OAVI0B,IAAgBb,IAEhBO,EADEM,EAAc,EACM,KAEAjC,GAAiBiC,EAAaA,GAEtDX,GAAoB,kBAAMK,KAC1BN,EAAYY,IAEdR,EAA2BC,EAAiBC,EAAqBM,GAC1DT,EAAqB/tF,UAE9B,CACE2tF,EACA17E,EACA9U,EACAT,EACAQ,EACAM,EACAJ,EACAiU,EACAD,EACA3T,EACAsL,EAAK5L,IACL4L,EAAKrM,IACLowF,IAOFW,iB,SC5QEmB,GAAe,CACnBnqD,EAAG,IACH0d,EAAG,EACH59B,EAAG,G,SCAQsqE,GAAkB3W,IAAOnrD,IAAV,6FAAGmrD,CAAH,yCACTC,YAAU,IAIhB2W,GAAiB5W,IAAOnrD,IAAV,4FAAGmrD,CAAH,gEAMd6W,GAAkB7W,IAAOnrD,IAAV,6FAAGmrD,CAAH,gEAMf8W,GAAa9W,IAAOnrD,IAAV,wFAAGmrD,CAAH,MAGV+W,GAAoB/W,IAAOgX,KAAV,+FAAGhX,CAAH,mBAIjBiX,GAAcjX,IAAOnrD,IAAV,yFAAGmrD,CAAH,gEAOXkX,GAAgBlX,IAAOnrD,IAAV,2FAAGmrD,CAAH,mJAGf,qBAAGzuC,SAGD,qBAAG4lD,WAA+B,GAAM,QAWxCC,GAAkCpX,IAAOnrD,IAAV,6GAAGmrD,CAAH,8BAK/BqX,GAAgBrX,IAAOnrD,IAAV,2FAAGmrD,CAAH,mFAKJ,qBAAGzuC,SAGZ+lD,GAAiBtX,IAAOgX,KAAV,4FAAGhX,CAAH,sBAIduX,GAAiBvX,IAAOgX,KAAV,6FAAGhX,CAAH,qCAKdwX,GAAmBxX,IAAOnrD,IAAV,+FAAGmrD,CAAH,0CCnEvByX,GAAc,GAEdC,GAAWjyC,aACfG,MACA,gBAAoBtzC,EAApB,EAAGqlF,gBAAH,IAAoChzF,KAApC,MAA8D,CAC5D2N,iBACA3N,UAFF,MAA2C8yF,GAA3C,MAuBaG,GAjBI,SAAC,GAAmB,IAAjB/tF,EAAgB,EAAhBA,GAAIkxB,EAAY,EAAZA,MAAY,EACHpzB,aAAYoC,uBAAY,SAAAsI,GAAK,OAAIqlF,GAASrlF,EAAO,CAAExI,SAAO,CAACA,KAApFyI,EAD4B,EAC5BA,eAAgB3N,EADY,EACZA,KAChBqS,EAAgBrS,EAAhBqS,MAAOsB,EAAS3T,EAAT2T,KAEf,GAAItB,GAASsB,GAAqC,IAA7BzS,OAAOlB,KAAKA,GAAM4M,OACrC,OACE,kBAAC+lF,GAAD,KACGtgF,EAAM+jB,GADT,IACkBziB,EAAKyiB,IAK3B,IAAM/U,EAAO1T,EAAeyoB,GAE5B,OAAO,kBAACu8D,GAAD,KAAiBtxE,ICAb6xE,GAAmB,SAAC,GAanB,IAZZ1uF,EAYW,EAZXA,UACA8M,EAWW,EAXXA,cACA2C,EAUW,EAVXA,aACAzG,EASW,EATXA,OACA2lF,EAQW,EARXA,WACAjpF,EAOW,EAPXA,SACA+mF,EAMW,EANXA,kBACAmC,EAKW,EALXA,iBACA99E,EAIW,EAJXA,mBACA+9E,EAGW,EAHXA,iBACAzC,EAEW,EAFXA,aACA0C,EACW,EADXA,WAEMliF,EAAYpO,aAChBoC,uBAAY,SAACsI,GAAD,OAAgBuzC,aAAgBvzC,EAAO,CAAExI,GAAIV,MAAc,CAACA,KAEjDmJ,EAAgDyD,EAAjE4hF,gBAAgDO,EAAiBniF,EAAhCoiF,cAOnCC,GAAgC,IAAhBN,IAAsBE,EAGtCK,EAAa,IAAI5uE,KAAK5a,GAAYopF,GAMlCK,EAAmBvwF,OAAOU,QAAQC,QAAQZ,QAAvB,6BACDmO,EAAcsiF,aArB3B,EAwBoClwC,eAAvC9hC,EAxBG,EAwBHA,iBAAkBC,EAxBf,EAwBeA,iBAEpBgyE,EAAe/wF,iBAAO,MAmB5B,OAlBAI,qBAAU,WACJ2wF,EAAa1wF,SACfC,OAAOmiC,GAAGC,WAAWquD,EAAa1wF,QAAS,CACzCsiC,WAAY,GACZC,kBAAkB,EAClBC,kBAAkB,EAClBC,mBAAoB,KACpBC,mBAAoB,KACpBC,kBAAkB,EAClBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAqB,EACrBC,oBAAqB,EACrBljB,MAAO,cAGV,CAAC6wE,IAGF,yBAAK5xF,UAAWG,KACd,uBADwB,kBAEb6R,EAFa,aAKxB,0BACEhS,UAAU,4BACVkC,MAAOozE,cAAyB,EAAMjmE,IAErCmiF,EACGlc,cAAyB,EAAOjmE,GAChCsQ,EAAiB8xE,IAEvB,6BACA,0BACEzxF,UAAU,4BACVkC,MAAOszE,aAAwBrmE,EAAWE,IAEzCmiF,EACGniF,EAAcqc,QAAQ/rB,WACtBigB,EAAiB6xE,IAEvB,6BACA,0BAAMzxF,UAAU,8BAA8B2uF,GAC9C,6BACA,yBAAK3uF,UAAU,wBAAwBF,IAAK8xF,GAC1C,yBAAK5xF,UAAU,iCACZsxF,EAAaplF,KAAI,SAAC2lF,EAAa1lF,GAC9B,IAQIjP,EARE+O,EAAgBP,EAAeS,GAE/Bw+B,EAAQp/B,EAAOU,GACf6lF,EH7GwB,SAACviD,GAGzC,IAAKA,EACH,OAAOugD,GAET,IAAMiC,EAAUxiD,EAAIjoC,QAJG,oCAIqB,SAACge,EAAGqgB,EAAG0d,EAAG59B,GAAV,OAAgBkgB,EAAIA,EAAI0d,EAAIA,EAAI59B,EAAIA,KAE1EqE,EAAS,4CAA4CsM,KAAK27D,GAIhE,OAHKjoE,GACHrqB,QAAQoN,KAAK,sBAAuB0iC,GAE/BzlB,EACH,CACA6b,EAAGljB,SAASqH,EAAO,GAAI,IACvBu5B,EAAG5gC,SAASqH,EAAO,GAAI,IACvBrE,EAAGhD,SAASqH,EAAO,GAAI,KACrBgmE,GG4FgBkC,CAAarnD,GAEnBsnD,EAA2C,IAA9B5+E,EAAmB1I,QACjC0I,EAAmB8uB,SAASl2B,GAGjC,GAAIulF,EACFt0F,EAAQ,UACH,IAAoB,IAAhBg0F,EAAmB,CAC5B,IAAMgB,EAAoB/iF,EAAU2a,OAAO7f,KAAKinF,GAEhDh0F,EAAQg1F,EAAoBA,EAAkB/lF,EAAI,GAAK,UAEvDjP,EAAQiS,EAAUgjF,mBAAmBhmF,GAGvC,OACE,kBAAC,WAAD,CAAUsB,IAAKokF,GACN,IAAN1lF,GAAW,6BAEZ,0BACEjK,MAAO+J,EACPjM,UAAWG,KACT,sBACA8xF,EAAa,WAAa,gBAE5B3xF,QAAS,SAAC8C,GACR+tF,EAAiBllF,EAAe7I,IAElCgvF,KAAK,SACLvuF,MAAO,CAAE8mC,SACT0nD,SAAU,GAEV,2BACEryF,UAAS,oCAA+BqP,EAAcsiF,YACtD9tF,MAAO,CACLipC,gBAAgB,QAAD,OAAUglD,EAAInsD,EAAd,YAAmBmsD,EAAIzuC,EAAvB,YAA4ByuC,EAAIrsE,EAAhC,YAAqCisE,EAArC,OAGjB,+BACE,wBAAI1xF,UAAU,0BACZ,wBAAIA,UAAU,8BAInB,IACD,kBAAC,GAAD,CAAYiD,GAAIV,EAAW4xB,MAAOhoB,KAGpC,0BACEjK,MAAO+J,EACPjM,UAAWG,KACT,wBACC8xF,GAAc,UAEjB3xF,QAAS,SAAC8C,GACR+tF,EAAiBllF,EAAe7I,IAElCgvF,KAAK,SACLvuF,MAAO,CAAE8mC,SACT0nD,SAAU,GAETrD,EACC9xF,YC5JPo1F,GAAiB,SAAC,GAMnB,IALVjjF,EAKS,EALTA,cACAmiF,EAIS,EAJTA,cACAvpF,EAGS,EAHTA,SACAopF,EAES,EAFTA,WACAliF,EACS,EADTA,UACS,EACsCsyC,eAAvC9hC,EADC,EACDA,iBAAkBC,EADjB,EACiBA,iBAEpB6xE,EAAa,IAAI5uE,KAAK5a,GAAYopF,GAExC,OACE,6BACE,0BAAMnvF,MAAOozE,cAAyB,EAAMjmE,IACzCmiF,EACGlc,cAAyB,EAAOjmE,GAChCsQ,EAAiB8xE,IAEvB,kBAAC,GAAD,UACA,0BAAMvvF,MAAOszE,aAAwBrmE,EAAWE,IAC7CmiF,EAAgBniF,EAAcqc,QAAQ/rB,WAAaigB,EAAiB6xE,MAMhEc,GAAoB,SAAC,GAcpB,IAbZhwF,EAaW,EAbXA,UACA8M,EAYW,EAZXA,cACA9D,EAWW,EAXXA,OACA2lF,EAUW,EAVXA,WACAjpF,EASW,EATXA,SACA+mF,EAQW,EARXA,kBACAmC,EAOW,EAPXA,iBACA99E,EAMW,EANXA,mBACA+9E,EAKW,EALXA,iBACAzC,EAIW,EAJXA,aACA0C,EAGW,EAHXA,WACAmB,EAEW,EAFXA,cACAC,EACW,EADXA,cAEMjB,GAAgC,IAAhBN,IAAsBE,EACtCjiF,EAAYpO,aAChBoC,uBAAY,SAACsI,GAAD,OAAgBuzC,aAAgBvzC,EAAO,CAAExI,GAAIV,MAAc,CAACA,KAEjDmJ,EAAgDyD,EAAjE4hF,gBAAgDO,EAAiBniF,EAAhCoiF,cAEzC,OACE,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC,GAAD,KAAe5C,GACf,kBAAC,GAAD,CACEt/E,cAAeA,EACfmiF,cAAeA,EACfvpF,SAAUA,EACVopF,WAAYA,EACZliF,UAAWA,KAGf,kBAAC,GAAD,KACE,kBAAC,GAAD,KACGmiF,EAAaplF,KAAI,SAAC2lF,EAAa1lF,GAC9B,IAMIjP,EANE+O,EAAgBP,EAAeS,GAC/Bw+B,EAAQp/B,EAAOU,GAEfgmF,EAC0B,IAA9B5+E,EAAmB1I,QAAgB0I,EAAmB8uB,SAASl2B,GAGjE,GAAIulF,EACFt0F,EAAQ,UACH,IAAoB,IAAhBg0F,EAAmB,CAC5B,IAAMgB,EAAoB/iF,EAAU2a,OAAO7f,KAAKinF,GAEhDh0F,EAAQg1F,EAAoBA,EAAkB/lF,EAAI,GAAK,UAEvDjP,EAAQiS,EAAUgjF,mBAAmBhmF,GAEvC,OACE,kBAAC,GAAD,CACEw+B,MAAOA,EACPrqC,QAAS,SAAA8C,GACP+tF,EAAiBllF,EAAe7I,IAElCgvF,KAAK,SACLC,SAAU,EACV9B,YAAa0B,EACbxkF,IAAKokF,GAEL,kBAAC,GAAD,CAAiB3vF,MAAO+J,EAAe0+B,MAAOA,IAC9C,kBAAC,GAAD,CAAY1nC,GAAIV,EAAW4xB,MAAOhoB,IAClC,kBAAC,GAAD,KAAmB8lF,GAAcjD,EAAkB9xF,QAIzD,kBAAC,GAAD,OAEF,kBAAC,GAAD,KACGs1F,EACAC,MC/FEC,GAAc,SAAC,GAgBd,IAfZvzE,EAeW,EAfXA,WACA5c,EAcW,EAdXA,UACA8M,EAaW,EAbXA,cACA2C,EAYW,EAZXA,aACAzG,EAWW,EAXXA,OACA2lF,EAUW,EAVXA,WACAjpF,EASW,EATXA,SACA+mF,EAQW,EARXA,kBACA37E,EAOW,EAPXA,mBACAs/E,EAMW,EANXA,sBACAvB,EAKW,EALXA,iBACAzC,EAIW,EAJXA,aACA0C,EAGW,EAHXA,WACAmB,EAEW,EAFXA,cACAC,EACW,EADXA,cAEM1B,EAAkBhwF,aACtBoC,uBAAY,SAACsI,GAAD,OAAgBuzC,aAAgBvzC,EAAO,CAAExI,GAAIV,IAAawuF,kBAAiB,CACrFxuF,KAIE4uF,EAAmB,SAACpb,EAA8B3yE,GACtDA,EAAMC,iBACN,IAAM2yE,EAAuB5yE,EAAM8zD,UAAY9zD,EAAM6pF,QAC/CpX,EAAwBD,aAAyB,CACrDE,cAAeib,EACf19E,qBACA0iE,uBACAC,yBAEF2c,EAAsB9c,IAGxB,MAAkC,WAA9B12D,EAAW9M,eAEX,kBAAC,GAAD,CACE9P,UAAWA,EACXyP,aAAcA,EACd3C,cAAeA,EACf9D,OAAQA,EACR2lF,WAAYA,EACZjpF,SAAUA,EACV+mF,kBAAmBA,EACnBmC,iBAAkBA,EAClB99E,mBAAoBA,EACpB+9E,iBAAkBA,EAClBzC,aAAcA,EACd0C,WAAYA,EACZmB,cAAeA,EACfC,cAAeA,IAMnB,kBAAC,GAAD,CACElwF,UAAWA,EACXyP,aAAcA,EACd3C,cAAeA,EACf9D,OAAQA,EACR2lF,WAAYA,EACZjpF,SAAUA,EACV+mF,kBAAmBA,EACnBmC,iBAAkBA,EAClB99E,mBAAoBA,EACpB+9E,iBAAkBA,EAClBzC,aAAcA,EACd0C,WAAYA,K,UCzFLuB,GAAgB,SAAC,GAAD,IAC3BC,EAD2B,EAC3BA,mBACAC,EAF2B,EAE3BA,oBACAC,EAH2B,EAG3BA,qBACAC,EAJ2B,EAI3BA,sBAJ2B,OAM3B,yBAAKhzF,UAAU,0BACb,kBAAC,KAAD,CACEA,UAAU,gCACVM,QAASuyF,EACTxyF,SAAS,OACTM,aAAa,WACbD,eAAe,yKAGjB,kBAAC,KAAD,CACEV,UAAU,gCACVM,QAASwyF,EACTzyF,SAAS,QACTM,aAAa,YACbD,eAAe,0KAGjB,kBAAC,KAAD,CACEV,UAAU,gCACVM,QAASyyF,EACT1yF,SAAS,SACTM,aAAa,gBACbD,eAAe,0OAIjB,kBAAC,KAAD,CACEV,UAAU,gCACVM,QAAS0yF,EACT3yF,SAAS,UACTM,aAAa,iBACbD,eAAe,6L,8GCxCRuyF,GAAwB,SACnChpF,EACAipF,GAFmC,OAGpBjpF,EAAKiC,KAAI,SAAC2oD,GAAW,IAAD,eACJA,GAAxBlgC,EAD4B,KACdpoB,EADc,WAE7BtM,EAAiB,GACnBkzF,EAAa,EACbC,EAAa,EAkBjB,OAjBA7mF,EACGL,KAAI,SAAChP,EAAOiP,GAAR,MAAe,CAAE+lE,UAAWghB,EAAqB/mF,GAAIjP,YAEzDqvB,QAAQ0wC,UACR/9D,SAAQ,YAA2B,IAAxBgzE,EAAuB,EAAvBA,UAAWh1E,EAAY,EAAZA,MAChBg1E,EAIDh1E,GAAS,GACXk2F,GAAcl2F,EACd+C,EAAK+qB,KAAKooE,KAEVD,GAAcj2F,EACd+C,EAAK+qB,KAAKmoE,IARVlzF,EAAK+qB,KAAK,MAWV,CACJ2J,GADF,OAEK10B,OAQMozF,GAAsB,SACjCl0E,EAAwBhQ,EAAwBE,EAChDikF,GAEA,IARoBn0F,EAQdysF,EAAc0H,EAAc1H,WAA4CzsE,GAD3E,EAKCA,EAFFpL,YAAaw/E,OAHZ,MAGmClkF,EAAcsiF,WAHjD,EAID3+E,EACEmM,EADFnM,QAGF,GAAIA,GAAuB,cAAZA,IAd+B,gBAA1B7T,EAcmCkQ,EAAc/Q,QAbzD,YAATa,IACuB,IAAvBA,EAAKgoB,QAAQ,MAad,MAAO,OAIT,IAAIqsE,EAAmBD,EAOvB,MANyB,YAArBC,GAA2D,IAAzBrkF,EAAUiE,aAC9CogF,EAAmB,QAEI,YAArBA,GAAkC5H,IACpC4H,EAAmB,QAEdA,GAGHC,GAAqB18D,aACzBG,aAAO,SACP,kBAAMw8D,KAAMvyF,OAAOU,QAAQyJ,OAAOpK,QAAQ2mC,eAK/B8rD,GAAkB,SAACpoF,GAAD,OAC7BA,EAAOW,KAAI,SAACy+B,GAAD,OAAW+oD,KAAM/oD,GAAOipD,IAAIH,KAAsB,IAAKlkD,UAGvDskD,GAAsB,SACjCC,EAAwBN,GADS,OAE7BM,EACF3yF,OAAOU,QAAQC,QAAQZ,QAAQ6yF,gCACV,YAArBP,EACEryF,OAAOU,QAAQC,QAAQZ,QAAQ8yF,2BAC/B7yF,OAAOU,QAAQC,QAAQZ,QAAQ+yF,yB,mBCtDtBC,GAzBW,SACxBC,EACAC,GAC6D,IAAD,EACvBC,cAAU,GADa,mBACrDC,EADqD,KAC1CC,EAD0C,KAGtDz0F,EAAMe,iBAAoB,MAE1B2zF,EAAiBrxF,uBAAY,SAACkgD,GAAgB,IAC1CnpD,EAAMmpD,EAAE6R,UAARh7D,EACFu6F,EAAWpxC,EAAEqP,YAAqD,IAAzC0hC,EAASlzF,QAAQiO,UAAUulF,aACpDC,EAAeF,EAAWv6F,EAGhC,GAFAq6F,EAAgBI,GAEZA,GAAgB70F,EAAIoB,QAAS,CAAC,IACxB4C,EAAWqwF,EAASjzF,QAAQ+oC,wBAA5BnmC,OACRhE,EAAIoB,QAAQ2C,MAAMyK,KAAlB,UAA4BpU,EAA5B,MACA4F,EAAIoB,QAAQ2C,MAAM2K,MAAlB,sBAAyCimF,EAAzC,OACA30F,EAAIoB,QAAQ2C,MAAMynB,IAAlB,UAA2BxnB,EAAS,EAApC,SAED,IAEH,MAAO,CAACwwF,EAAWx0F,EAAK00F,ICvBpBI,GAAoB,SAAC90F,EAAK5F,EAAG6oC,EAAU8xD,GAC3C/0F,EAAIoB,QAAQ2C,MAAMyK,KAAlB,UAA4BpU,EAA5B,MACA4F,EAAIoB,QAAQ2C,MAAM2K,MAAlB,sBAAyCu0B,EAAzC,OACAjjC,EAAIoB,QAAQ2C,MAAMynB,IAAMupE,GCLpB1b,GAAYC,IAAOnrD,IAAV,2FAAGmrD,CAAH,oBAuBA0b,GAnBkBC,sBAAW,SAC1Clb,EACA/5E,GAF0C,OAI1C,kBAAC,GAAD,CAAWA,IAAKA,EAAKE,UAAU,uBAAuBqoC,cAAY,4BAChE,0BAAMroC,UAAU,gCAAhB,oDAEE,6BACA,uBAAGqnC,KAAK,6DAA6DhV,OAAO,SAAS+U,IAAI,sBAAsBiB,cAAY,sCAA3H,0BAEE,uCALJ,qBAQE,uBAAGhB,KAAK,0DAA0DhV,OAAO,SAAS+U,IAAI,sBAAsBiB,cAAY,mCAAxH,aARF,SCTE2sD,GAAqB,CACzBC,QAAS,UACTC,SAAU,UACVC,MAAO,WAEI1B,GAAqB,SAACtwE,GAAD,OAAY6xE,GAAmB7xE,IAAW,MAEtEiyE,GAAiB,CACrBH,QAAS,UACTC,SAAU,UACVC,MAAO,WAEIE,GAAiB,SAAClyE,GAAD,OAAYiyE,GAAejyE,IAAW,MAE9DmyE,GAAe,CACnBL,QAAS,UACTC,SAAU,UACVC,MAAO,WAEI1b,GAAW,SAACt2D,GAAD,OAAYmyE,GAAanyE,IAAW,MAEtDg2D,GAAYC,IAAOnrD,IAAV,wEAAGmrD,CAAH,uGASTmc,GAAQnc,IAAOnrD,IAAV,oEAAGmrD,CAAH,6KAIK,qBAAGvxC,cACG,qBAAG2tD,UACd,qBAAG7qD,SAOCoqD,yBAAW,WAExBj1F,GAFwB,IACtBoyE,EADsB,EACtBA,UAAW/uD,EADW,EACXA,OAAQwlB,EADG,EACHA,MADG,OAIxB,kBAAC,GAAD,CAAW7oC,IAAKA,GACboyE,GACC,kBAACqjB,GAAD,CACE1tD,WAAY4rD,GAAmBtwE,GAC/BqyE,OAAQH,GAAelyE,GACvBwnB,MAAO8uC,GAASt2D,IAEfwlB,OC+BH8sD,GAA2B,SAAC,GAcD,IAb/Bt2E,EAa8B,EAb9BA,WACAhQ,EAY8B,EAZ9BA,UACAE,EAW8B,EAX9BA,cACAikF,EAU8B,EAV9BA,cACAJ,EAS8B,EAT9BA,qBACAwC,EAQ8B,EAR9BA,sBACA5B,EAO8B,EAP9BA,cACA6B,EAM8B,EAN9BA,cACAC,EAK8B,EAL9BA,UACAC,EAI8B,EAJ9BA,iBACAlH,EAG8B,EAH9BA,aACA9sC,EAE8B,EAF9BA,gBACAD,EAC8B,EAD9BA,gBAEMk0C,EAA0C,cAA5B32E,EAAWlL,aACzBq4C,EAAsBwpC,EAAc,EAAI,EAExClK,EAAc0H,EAAc1H,WAA4CzsE,GACxEq0E,EAAmBH,GAAoBl0E,EAAYhQ,EAAWE,EAAeikF,GALrD,EAW1Bn0E,EAJFjL,qBAP4B,MAOS,SAArBs/E,IACVsC,EARsB,IAW1B32E,EAFFhI,uBAT4B,SAYxB1U,EAAsC,WADxC0c,EADF9M,eAV4B,EAuE1B8M,EAxDFhL,qBAf4B,MAeZwhF,EAfY,IAuE1Bx2E,EAvDF/K,uBAhB4B,MAgBV,EAhBU,IAuE1B+K,EAtDF9K,gCAjB4B,WAuE1B8K,EArDF7K,yBAlB4B,WAuE1B6K,EApDF5K,oBAnB4B,MAmBb4K,EAAWjd,OAASmN,EAAcnN,MAnBrB,IAuE1Bid,EAnDF3K,0BApB4B,MAoBP,GApBO,IAuE1B2K,EAlDF1K,qBArB4B,MAqBZ,SArBY,IAuE1B0K,EAjDFzK,wBAtB4B,MAsBTghF,EAtBS,IAuE1Bv2E,EAhDFxK,iCAvB4B,WAuE1BwK,EA/CFvK,0BAxB4B,MAwBc,YAArB4+E,EAxBO,IAuE1Br0E,EA9CFtK,6BAzB4B,WAuE1BsK,EA7CFrK,oCA1B4B,WAuE1BqK,EA5CFpK,oCA3B4B,WAuE1BoK,EA3CFnK,wBA5B4B,MA4BT,EA5BS,IAuE1BmK,EA1CFlK,wBA7B4B,MA6BT,EA7BS,KAuE1BkK,EAzCFnL,0BA9B4B,OA8BR,CAAC,KAAM,MA9BC,MAuE1BmL,EAxCFjK,2BA/B4B,OA+BP,GA/BO,MAuE1BiK,EAtCFhK,2BAjC4B,OAiCc,YAArBq+E,EACjB,IACmB,IAAlBt/E,EACC,IACA,GArCsB,GAuC5BkB,GAgCE+J,EAhCF/J,qBAvC4B,GAuE1B+J,EA/BF9J,0BAxC4B,cAuE1B8J,EA9BF7J,iCAzC4B,cAuE1B6J,EA7BF5J,sCA1C4B,cAuE1B4J,EA5BF3J,yBA3C4B,OA2CT,EA3CS,MAuE1B2J,EA3BF1J,wBA5C4B,cAuE1B0J,EA1BFzJ,iCA7C4B,OA6CDvU,OAAOU,QAAQyJ,OAAOpK,QAAQ2mC,WA7C7B,MAuE1B1oB,EAzBFxJ,iCA9C4B,OA8CD,EA9CC,MAuE1BwJ,EAxBFvJ,yBA/C4B,OA+Ca,SAArB49E,GAAoD,YAArBA,EA/CvB,MAuE1Br0E,EAvBFtJ,yBAhD4B,OAgDTg+E,GAAoBC,EAAeN,GAhD1B,MAuE1Br0E,EAtBFrJ,4BAjD4B,OAiDe,YAArB09E,IAAmCM,EAjD7B,MAuE1B30E,EArBFpJ,mCAlD4B,OAkDC,OAlDD,MAuE1BoJ,EApBFnJ,iCAnD4B,OAmDD,GAnDC,MAuE1BmJ,EAnBFlJ,6BApD4B,OAoDL9U,OAAOU,QAAQyJ,OAAOpK,QAAQuoD,KApDzB,MAuE1BtqC,EAlBFjJ,6BArD4B,OAqDL,EArDK,MAuE1BiJ,EAjBFhJ,wBAtD4B,WAuD5BC,GAgBE+I,EAhBF/I,uBAvD4B,GAuE1B+I,EAfF9I,6BAxD4B,OAwDL,EAxDK,MAuE1B8I,EAdF7I,6BAzD4B,OAyDLnV,OAAOU,QAAQyJ,OAAOpK,QAAQ60F,KAzDzB,MAuE1B52E,EAbF5I,8BA1D4B,OA0DJ,EA1DI,GA2D5BC,GAYE2I,EAZF3I,eA3D4B,GAuE1B2I,EAXF1I,kCA5D4B,OA4DA,EA5DA,MAuE1B0I,EAVFzI,kCA7D4B,OA6DA41C,EA7DA,GA8D5B31C,GASEwI,EATFxI,2BACAC,GAQEuI,EARFvI,sCA/D4B,GAuE1BuI,EANFtI,+BAjE4B,OAiEH,GAjEG,MAuE1BsI,EALFrI,+BAlE4B,OAkEH,GAlEG,MAuE1BqI,EAJFpI,yBAnE4B,OAmETI,EAnES,MAuE1BgI,EAHFnI,+BApE4B,OAoEH,GApEG,MAuE1BmI,EAFFlI,+BArE4B,OAqEHxU,EAAmB,GAAK,GArErB,MAuE1B0c,EADFjI,yBAtE4B,OAsETC,EAtES,GAwE9B,MAAO,CACL5L,OAAQuoF,EAAgBH,GAAgB12B,YAAQ9oD,IAAkBA,EAGlEm5C,SAAUwoC,EAAc,EAAI1hF,EAC5Bg7C,kBAAmB/6C,EACnBk5C,WAAYj5C,EACZpS,MAAO4zF,OAAcl3F,EAAY2V,EACjCk6C,YAAaj6C,EACbpC,OAAQqC,EACRhC,OAAQtD,EAAU2a,OAAOrX,OACzBkyD,UAAWjwD,EAEXg4C,sBAAqBopC,GAAqBnhF,EAC1Cg4C,sBAAsBi/B,GAAqB/2E,EAC3C+3C,WAAW,EACXC,YAAY,EACZC,sBAAuBh4C,EACvBs5C,sBAAuBr5C,EACvBihF,YAAaphF,EACb05C,UAAWt5C,EACXu5C,UAAWunC,EAAc,EAAI7gF,EAC7BgY,WAAYjZ,GACZiiF,OAASH,GAAerzF,OAAoB7D,EAAY+vF,EACxDhgC,YAAcmnC,GAAerzF,EAAoB,EAAIyS,GAGrD86C,QAAU97C,GAAiB2hF,EAAoB10F,OAAO+0F,cAAgB,KAItE1sC,YAAar0C,GACbghF,cAAe/gF,GAMfovD,WAAYnvD,GAIZ+gF,kBAAmB9gF,GACnB24C,wBAAwB29B,GAAqBr2E,GAC7CwvD,UAAWvvD,GAGX64C,SAAU54C,GAIV03C,kBAAmBz3C,GACnBw3C,kBAAmBv3C,GACnBo4C,UAAWn4C,GACXo4C,UAAWn4C,GACXq4C,aAAcp4C,GACdq4C,oBAAqBp4C,GACrB06C,UAAUqlC,GAAsB3+E,EAChCk2C,kBAAmBr3C,GACnB44C,cAAe34C,GACf44C,cAAe34C,GACfs6C,UAAUslC,GAAsB3/E,GAChCkgF,gBAAiBjgF,GACjB04C,cAAez4C,GACf24C,cAAe14C,GACf02C,eAAgBz2C,GAChB02C,QAASz2C,GACTu2C,mBAAoBt2C,GACpB61C,oBAAqB51C,GACrB61C,oBAAqB51C,GAErB61C,+BAAgC51C,GAChCs0C,WAAYgoC,EACZoD,SAAU1K,EAEV17B,KAAM,CACJh2D,EAAG,CACDi2D,eAAgBt5C,GAGhB85C,OAAQ4lC,KAAQ3lC,WAChB7B,eAAgBj4C,GAChB25C,UAAUqlC,GAAsB/+E,GAChCq5C,mBAAoB,SAACrqC,GAAD,OAAwBA,EAAWywE,eAAen3E,WAAW,YAC7EwiC,EAAgB97B,GAChB67B,EAAgB77B,KAGtBb,EAAG,CACDoxE,SAAU1K,EACVz7B,eAAgBn5C,GAChB+3C,eAAgB93C,GAChBw5C,UAAUqlC,GAAsB5+E,GAEhCk5C,mBANC,SAMkBlrC,GASjB,OARkB0wE,EAAU,CAG1B13F,KAAK20D,MAAM,GAAGC,aAAa,GAG3B50D,KAAK20D,MAAM,GAAGC,aAAa,IAEtB5+B,CAAUhP,QAwCduxE,GAAe,SAAC,GAyBf,IAxBZt3E,EAwBW,EAxBXA,WACAhQ,EAuBW,EAvBXA,UACAE,EAsBW,EAtBXA,cACAqnF,EAqBW,EArBXA,sBACAC,EAoBW,EApBXA,eACA3kF,EAmBW,EAnBXA,aAEAzP,EAiBW,EAjBXA,UACA2wF,EAgBW,EAhBXA,qBACAtG,EAeW,EAfXA,aACAf,EAcW,EAdXA,UACAr8E,EAaW,EAbXA,qBACAonF,EAYW,EAZXA,wBACAjB,EAWW,EAXXA,cACAkB,EAUW,EAVXA,8BAEA3F,EAQW,EARXA,WACAjpF,EAOW,EAPXA,SACA6uF,EAMW,EANXA,uBACAC,EAKW,EALXA,YACAnB,EAIW,EAJXA,UACAjH,EAGW,EAHXA,aACAqI,EAEW,EAFXA,UACA3F,EACW,EADXA,WAEMrpF,EAAsBjH,aAAYk2F,MAClCC,EAAgBn2F,aAAYo2F,MAC5BttF,GAAqB,OAAbqtF,QAAa,IAAbA,OAAA,EAAAA,EAAe9nF,WAAYD,EAAUlM,GAAKi0F,EAAgB,KAElE3gE,EAAWx1B,aAAY2gD,MALlB,EAOkCD,eAArCI,EAPG,EAOHA,gBAAiBD,EAPd,EAOcA,gBACnB0xC,EAAgB7H,GAAuBz5E,GACvC0jF,EAAqB,UAAMnzF,EAAN,qBAErBixF,EAAmBH,GAAoBl0E,EAAYhQ,EAAWE,EAAeikF,GAO7EQ,EAAgB3kF,EAAU9Q,IAAM,GAA0B,YAArBm1F,EACrC39E,EAAmBg+E,GAAoBC,EAAeN,GAEtD5xD,EAAe/gC,iBAAuB,MAEtCu2F,EAAuBj0F,uBAAY,YAIlC,IAHLuJ,EAGI,EAHJA,MAAOC,EAGH,EAHGA,OACPwjB,EAEI,EAFJA,SACAknE,EACI,EADJA,8BAEAT,EAAwB,CACtBlqF,QACAC,SACAwjB,WACAvjB,SAAUrK,EACV80F,oCAED,CAAC90F,EAAWq0F,IAGTU,EAAkBz2F,mBAElB02F,EAAqB12F,kBAAO,GAE5B22F,EAAc32F,kBAAO,GAErB42F,EAAwB52F,iBAAsB,MAE9C62F,EAAuB72F,iBAAO,GAE9B82F,EAAwB92F,iBAAO,GAE/B+2F,EAAsB/2F,mBAEtBiC,EAAWC,eACX80F,EAAmB92F,aAAY+2F,MAE/BC,EAAwB50F,uBAAY,WACxCo0F,EAAmBr2F,SAAU,EACzBo2F,EAAgBp2F,SAGlBo2F,EAAgBp2F,QAAQstE,cAAc,CAGpCvH,WAAY,OAKdnkE,EADE+0F,EACO1yF,eAEA2L,aAA2B,CAAE7N,GAAIV,OAE3C,CAACA,EAAWO,EAAU+0F,IAxEd,EH3UE,WAAO,IAAD,EACoBxD,cAAU,GAD9B,mBACZ2D,EADY,KACAC,EADA,KAGbn4F,EAAMe,iBAAO,MAgBnB,MAAO,CAACm3F,EAAYl4F,EAdG,SAACoyE,EAAW7uB,EAAGtgB,GAA8C,IAApCm1D,EAAmC,uDAAtBtD,GAC3D,GAAK1iB,GAKL,GAAIpyE,EAAIoB,QAAS,CACf+2F,GAAiB,GADF,MAED50C,EAAE6R,UAARh7D,EAFO,EAEPA,EAERg+F,EAAWp4F,EAAK5F,EAAG6oC,EAvBF,cAejBk1D,GAAiB,KG8Y0CE,GA1EpD,oBA0EJC,GA1EI,MA0EiBC,GA1EjB,MA0EgCC,GA1EhC,MA+ELlE,GAAWvzF,iBAAO,CACtBgJ,QACAsF,YACAnH,sBACAC,WACA4uF,gCAEAkB,wBACAjB,yBACAwB,oBACAlB,uBACAJ,YACA3F,eA3FS,GAgGP6C,GAAkBtyD,EAAcwyD,IAhGzB,qBA+FTmE,GA/FS,MA+FIC,GA/FJ,MA+FsBC,GA/FtB,MAkGXC,2BAAgB,WACdtE,GAASlzF,QAAQ2I,MAAQA,EACzBuqF,GAASlzF,QAAQiO,UAAYA,EAC7BilF,GAASlzF,QAAQ+G,SAAWA,EAC5BmsF,GAASlzF,QAAQ21F,8BAAgCA,EACjDzC,GAASlzF,QAAQ8G,oBAAsBA,EACvCosF,GAASlzF,QAAQ62F,sBAAwBA,EACzC3D,GAASlzF,QAAQ41F,uBAAyBA,EAC1C1C,GAASlzF,QAAQo3F,iBAAmBA,GACpClE,GAASlzF,QAAQk2F,qBAAuBA,EACxChD,GAASlzF,QAAQ81F,UAAYA,EAC7B5C,GAASlzF,QAAQmwF,WAAaA,IAC7B,CACDxnF,EACAsF,EACAnH,EACAC,EACA4uF,EACAkB,EACAjB,EACAwB,GACAlB,EACAJ,EACA3F,IAGF,IAAMwE,GAAmB90F,aAAY43F,MACrCD,2BAAgB,WACd,GAAI92D,GAAgBA,EAAa1gC,UAAYo2F,EAAgBp2F,UAAY0rF,EAAc,CACrF,IAAMgM,EAAuBnD,GAAyB,CACpDt2E,aACAhQ,YACAE,gBACAikF,gBACAJ,uBACAwC,wBACA5B,gBACA6B,gBACAC,YACAC,oBACAlH,eACA9sC,kBACAD,oBAGF21C,EAAmBr2F,SAAU,EAE7B,IAAM23F,EAAc,eACfD,EADe,CAMlB3xB,WAAY,CAACmtB,GAASlzF,QAAQ81F,UAAW5C,GAASlzF,QAAQmwF,YAE1D3sB,kBARkB,SAShBthE,EAAmB+iD,GAKnB,IAAM2yC,EAActB,EAAYt2F,QAC5B,KACAilD,EAGA2yC,IADoB1E,GAASlzF,QAAQ+G,UAEvC8uF,EAAY+B,IAIhB7zB,oBAxBkB,WA2BkB,OAA9BmvB,GAASlzF,QAAQ+G,UACnB8uF,EAAY,OAGhBzyB,aA/BkB,SA+BLvc,GAUX,GAAIwvC,EAAmBr2F,QAAS,CAC9Bq2F,EAAmBr2F,SAAU,EAC7B,IAAM63F,EAAShxC,EAAQmK,aACjBxlD,EAAQnS,KAAKgpB,MAAMw1E,EAAO,IAC1BpsF,EAASpS,KAAKgpB,MAAMw1E,EAAO,KA/cc,SAAC,GAAD,IAAGrsF,EAAH,EAAGA,MAAOC,EAAV,EAAUA,OAAQwC,EAAlB,EAAkBA,UAAlB,OACzDzC,GAAkC,IAAxByC,EAAUulF,aAAuB/nF,GAAkC,IAAvBwC,EAAU6pF,YAgdlDC,CAAyB,CAC3BvsF,QAAOC,SAAQwC,UAAWilF,GAASlzF,QAAQiO,aAE3CilF,GAASlzF,QAAQk2F,qBAAqB,CAAE1qF,QAAOC,aAIrDu4D,aAAc,SAACg0B,EAAiBC,GAC9B5B,EAAmBr2F,SAAU,EAC7BkzF,GAASlzF,QAAQk2F,qBAAqB,CAAE1qF,MAAOwsF,EAASvsF,OAAQwsF,KAGlEn0B,iBA3DkB,SA2DDqI,EAAkCrmB,EAAmB3D,GAGpE,GAFAo1C,GAAuBp1C,GAEnB+wC,GAASlzF,QAAQ2I,MAAO,CAAC,IACZuvF,EAAiBhF,GAASlzF,QAAjC2I,MAEFwvF,EAAgBh2C,EAAEqP,YAAgC,IAApB0mC,EAAa/lE,MAC3CimE,EAAYjE,GAAe+D,EAAaj2E,QAG9CwgD,uBAAsB,WACpB0J,EAAO1iB,UAAY2uC,EACnB,IAAMC,EAAmBlsB,EAAOmsB,YAChCnsB,EAAOmsB,YAAc,GACrBnsB,EAAOrC,SAASquB,EANQ,EAM2BryC,EAAK9hC,EAAG,EAAuB8hC,EAAK/X,GACvFo+B,EAAOmsB,YAAcD,KAGvBnF,GAASlzF,QAAQo3F,iBACflE,GAASlzF,QAAQ2I,MACjBw5C,EACAg2C,EAbwB,GAoB5B,GAAIjF,GAASlzF,QAAQ8G,oBAAqB,CAAC,IAAD,EACdosF,GAASlzF,QAAQ8G,oBAAnC0E,EADgC,EAChCA,MAAOC,EADyB,EACzBA,OAEf,GAAID,EAAQC,EAAQ,CAClB,IACM8sF,EAAap2C,EAAE0lB,YAAYr8D,GADI,IAE/BgtF,EAAWr2C,EAAE0lB,YAAYp8D,EAFM,IAI/B2B,EAAOmrF,EAAW,GAClBjrF,EAAQkrF,EAAS,GAGvBrsB,EAAO1iB,UAAYxpD,OAAOU,QAAQyJ,OAAOpK,QAAQogB,UACjD+rD,EAAOrC,SAAS18D,EAAM04C,EAAK9hC,EAAG1W,EAAQF,EAAM04C,EAAK/X,MAOvDggB,iBAAkB,CAChB6H,UADgB,SACN1zD,EAAmB2kD,EAAkBr8B,GAEzCtoB,EAAM2zD,QAA2B,IAAjB3zD,EAAM2zD,SAI1BwgC,EAAmBr2F,SAAU,EAC7Bs2F,EAAYt2F,SAAU,EACtBwqB,EAAQsrC,oBAAoB5zD,EAAO2kD,EAASr8B,GAI5CA,EAAQi/C,KAAKsF,MAA+BvkD,EAAQi/C,KAAKsF,MLhgB7DjkE,QAAO,SAACoF,GACZ,IAAMuoF,EAA8B7zE,OAAO1U,EAAQvN,MAAMyK,KAAKhH,QAAQ,KAAM,KAAO,IAInF,OAHIqyF,GACFvoF,EAAQyrC,WAAYh2B,YAAYzV,IAE1BuoF,KK6fA72F,EAAS2D,gBAELrD,EAAM2zD,QAA2B,IAAjB3zD,EAAM2zD,OAGpB3zD,EAAM8zD,UAERugC,EAAsBv2F,QAAU,KAEhCq1F,KAAQp/B,SAAS/zD,EAAO2kD,EAASr8B,IACxBtoB,EAAM6zD,QAAU7zD,EAAM6pF,SAAW7pF,EAAMw2F,SAEhDnC,EAAsBv2F,QAAU6mD,EAAQ4K,aAAavvD,EAAMmoE,SAE3DgrB,KAAQziC,UAAU1wD,EAAO2kD,EAASr8B,KAGlC+rE,EAAsBv2F,QAAU,KAEhCq1F,KAAQziC,UAAU1wD,EAAO2kD,EAASr8B,IAE3BtoB,EAAM8zD,UAEfugC,EAAsBv2F,QAAU,KAEhCq1F,KAAQziC,UAAU1wD,EAAO2kD,EAASr8B,IACzBtoB,EAAM6zD,QAAU7zD,EAAM6pF,SAAW7pF,EAAMw2F,SAEhDnC,EAAsBv2F,QAAU6mD,EAAQ4K,aAAavvD,EAAMmoE,SAE3DgrB,KAAQziC,UAAU1wD,EAAO2kD,EAASr8B,KAGlC+rE,EAAsBv2F,QAAU,KAEhCq1F,KAAQp/B,SAAS/zD,EAAO2kD,EAASr8B,MAIrCqsC,UAtDgB,SAsDN30D,EAAmB2kD,EAAkBr8B,GAGP,OAAlC+rE,EAAsBv2F,SAExBq2F,EAAmBr2F,SAAU,EAE7Bq1F,KAAQtiC,SAAS7wD,EAAO2kD,EAASr8B,GACjCtoB,EAAMC,kBACGqoB,EAAQumC,WACjBslC,EAAmBr2F,SAAU,EAE7BwqB,EAAQwnC,SAAU,EAElBqjC,KAAQn/B,QAAQh0D,EAAO2kD,EAASr8B,IACvBA,EAAQqoC,WAEjBwiC,KAAQtiC,SAAS7wD,EAAO2kD,EAASr8B,IAIrCmsC,QA3EgB,SA2ERz0D,EAAmB2kD,EAAkBr8B,GAE3C,GADA8rE,EAAYt2F,SAAU,EACgB,OAAlCu2F,EAAsBv2F,QAAkB,CAC1C,IAAM24F,EAAc5Y,cAAO,SAAC/mF,GAAD,OAAQA,IAAG,CACpCu9F,EAAsBv2F,QACtB6mD,EAAQ4K,aAAavvD,EAAMmoE,WAG7B6oB,GAASlzF,QAAQ41F,uBAAuB,CACtCpqF,MAAOmtF,EAAY,GACnBltF,OAAQktF,EAAY,GACpBjtF,SAAUuC,EAAUlM,KAEtBw0F,EAAsBv2F,QAAU,KAEhCwqB,EAAQqoC,WAAY,EAKpBhM,EAAQkN,iBAKRlN,EAAQ4L,YAAW,QACVjoC,EAAQumC,WACjBslC,EAAmBr2F,SAAU,EAE7Bq1F,KAAQ3iC,OAAOxwD,EAAO2kD,EAASr8B,GAC/B0oE,GAASlzF,QAAQ21F,iCACRnrE,EAAQqoC,YACjBwjC,EAAmBr2F,SAAU,EAE7Bq1F,KAAQvhC,QAAQ5xD,EAAO2kD,EAASr8B,GAChC0oE,GAASlzF,QAAQ21F,kCAIrBiD,MAlHgB,SAkHV12F,EAAmB2kD,GACvB,GAAK3kD,EAAM8zD,UAAa9zD,EAAM6zD,OAA9B,CAEAsgC,EAAmBr2F,SAAU,EAC7BkC,EAAMC,iBACND,EAAMuB,kBAGN,IAoCMo1F,EACwB,kBAArB32F,EAAM42F,YAA4Bl0E,OAAOqoB,MAAM/qC,EAAM42F,aAExC,IAAhB52F,EAAM62F,OADN72F,EAAM42F,WAAa,GAInBluD,GADS1oC,EAAM82F,QAAyB,EAAhB92F,EAAM82F,OAAcH,GACtB,GAEvB32F,EAAMmoE,UAASnoE,EAAMmoE,QAAUnoE,EAAM+2F,OAAS/2F,EAAMivB,OAAO+nE,YAChE,IAAMC,EAvBqB,SAACh3C,EAAGkoB,GAAY,MAEfloB,EAAE0lB,YAAY1lB,EAAE6O,aAAa,GAAI,MAApDooC,EAFkC,oBAKnCpgG,EAAIqxE,EAAU+uB,EAGdtrD,EAAIqU,EAAE0lB,YAAY1lB,EAAE6O,aAAa,GAAI,MAAM,GAAKooC,EAGtD,OAAa,IAANtrD,EAAU,EAAI90C,EAAI80C,EAYdurD,CAAmBxyC,EAAS3kD,EAAMmoE,UA7ClC,SAACloB,EAAGm3C,EAAkBC,GACjCA,EAAOA,GAAQ,GAD2B,MAEVp3C,EAAE6O,aAFQ,mBAEnCwoC,EAFmC,KAExBC,EAFwB,KAIpCC,GADQD,EAAaD,GACDF,EAGpB9tF,EAAQguF,EAF6BE,EAAYH,EAGjD9tF,EAASguF,EAH8CC,GAAa,EAAIH,GAK9ErG,GAASlzF,QAAQk2F,qBAAqB,CACpC1qF,QACAC,SACA0qF,+BAA+B,EAC/BlnE,SAAU,SAAC0qE,EAAsBC,GAC/B/yC,EAAQymB,cAAc,CACpBvH,WAAY,CAAC4zB,EAAcC,QA+BnCC,CAAKhzC,EAASjc,EAAYuuD,KAG5BtzE,MA5KgB,SA4KV3jB,GACJA,EAAMC,kBAGRs0D,SAhLgB,WAiLd70D,EAAS4D,aAAuB,CAAEuG,WAAW,KAC7CmnF,GAASlzF,QAAQ62F,yBAGnBvgC,WArLgB,SAqLLp0D,EAAmB2kD,EAAkBr8B,GAC9C8rE,EAAYt2F,SAAU,EACtBq2F,EAAmBr2F,SAAU,EAK7Bq1F,KAAQvnB,wBAAwBxX,WAAWp0D,EAAO2kD,EAASr8B,GAK3DA,EAAQoqC,gBAAkB,CAAE57D,GAAG,EAAMgrB,GAAG,GAExCwyE,EAAqBx2F,QAAU,EAEO,kBAA3BkC,EAAMI,QAAQ,GAAGgyD,MAC1BmiC,EAAsBz2F,QAAUkC,EAAMI,QAAQ,GAAGgyD,MAEjDmiC,EAAsBz2F,QAAU,GAGpCu2D,UA3MgB,SA2MNr0D,EAAmB2kD,EAAkBr8B,GAC7C6rE,EAAmBr2F,SAAU,EAC7Bq1F,KAAQvnB,wBAAwBvX,UAAUr0D,EAAO2kD,EAASr8B,GAE1DgsE,EAAqBx2F,QAAU2hB,KAAKC,OAGtC40C,SAlNgB,SAkNPt0D,EAAmB2kD,EAAkBr8B,GAM5C,GALA8rE,EAAYt2F,SAAU,EACtBq2F,EAAmBr2F,SAAU,EAC7Bq1F,KAAQvnB,wBAAwBtX,SAASt0D,EAAO2kD,EAASr8B,GAGpB,IAAjCgsE,EAAqBx2F,SAAmD,IAAlCy2F,EAAsBz2F,SAC3D0gC,EAAa1gC,QAChB,CACAq2F,EAAmBr2F,SAAU,EAI7B,IAAM85F,EAAiBjzC,EAAQyK,SACzByoC,GAAOtD,EAAsBz2F,SACjC85F,EAAeh0C,KAAK9sD,EAAI0nC,EAAa1gC,QAAQ+oC,wBAAwB37B,OAClE0sF,EAAeh0C,KAAKhY,EAEjB9tC,EAAYkzF,GAAZlzF,QACF5B,EAAI/E,KAAKgpB,MAAMriB,EAAQ81F,WACxB91F,EAAQmwF,WAAanwF,EAAQ81F,WAAaiE,GAE/ClE,EAAYz3F,GAAG,GAIjB,IAAMwjB,EAAMD,KAAKC,MAC0B,qBAAhC80E,EAAoB12F,UACQ,IAAjCw2F,EAAqBx2F,SACZ4hB,EAAM80E,EAAoB12F,SAC3BC,OAAOU,QAAQC,QAAQZ,QAAQg6F,oBACvC9G,GAASlzF,QAAQ62F,yBAMvBH,EAAoB12F,QAAU4hB,EAC9BsxE,GAASlzF,QAAQ21F,oCAKjB5sF,EAAO6pF,EACTb,GAAsB9jF,EAAU2a,OAAO7f,KAAMipF,GAC7C/jF,EAAU2a,OAAO7f,KACfkxF,EAAW,IAAI5E,KAAS30D,EAAa1gC,QAAU+I,EAAM4uF,GAC3DvB,EAAgBp2F,QAAUi6F,KAE3B,CAACh8E,EAAYhQ,EAAWE,EAAeikF,EAAe/wF,EAAW2wF,EAClEtG,EAAc8I,EAAuB5B,EACrC6B,EAAeoB,EAAanB,EAAWC,GAAkBlH,EACzD9sC,EAAiBD,EAAiB62C,GAAwB31F,IAE5Ds4F,cAAgB,WACd,GAAI9D,EAAgBp2F,QAAS,CAC3B,IAAM40F,EAA0C,cAA5B32E,EAAWlL,aACzBxR,EAAiD,WAA9B0c,EAAW9M,eACpCilF,EAAgBp2F,QAAQstE,cAAc,CACpCynB,OAASH,GAAerzF,OAAoB7D,EAAY+vF,OAG3D,CAACxvE,EAAYwvE,IAIhByM,cAAgB,WACV9D,EAAgBp2F,SAClBo2F,EAAgBp2F,QAAQstE,cAAc,MAGvC,CAAC3kE,EAAO7B,IAEX,IAAMM,GAAkCvH,aAAYs6F,MACpDD,cAAgB,WACV9D,EAAgBp2F,SAGlBC,OAAOwiE,uBAAsB,WACvB2zB,EAAgBp2F,SACjBo2F,EAAgBp2F,QAA2ByN,cAIjD,CAACrG,KAIJ8yF,cAAgB,WAEd,GAAI9D,EAAgBp2F,UAAY0rF,EAAc,CAE5C,IAAM0O,EAAkB,CAACtE,EAAW3F,GAS9Bn/B,EAAaolC,EAAgBp2F,QAAQgxD,aAErCqpC,EAAqBhhG,KAAKC,IAAK62F,EAAa2F,GAAc9kC,EAAW,GAAKA,EAAW,KA50BtE,IA+0BfspC,EAAuCnK,GAAc,GACvDn/B,EAAW,GAAKm/B,GAEhBn/B,EAAW,GAAK8kC,IAChBuE,EAEEE,EAAqBjsF,IAAyBgsF,EAChD,CAAEv0B,WAAYq0B,GACd,GAxBwC,EA0BFn8E,EAAlChL,qBA1BoC,MA0BpBwhF,EA1BoB,EA2BtC16D,EAAO64D,EACTb,GAAsB9jF,EAAU2a,OAAO7f,KAAMipF,GAC7C/jF,EAAU2a,OAAO7f,KAEf+rF,EAA8C,IAAhC9C,EAAqBvoF,QACvCuoF,EAAqBlnF,QAAO,SAAA9R,GAAC,OAAU,IAANA,KAAYyQ,OAAS,EAExD2sF,EAAgBp2F,QAAQstE,cAAxB,eACKitB,EADL,CAEElwF,OAAQuoF,EAAgBH,GAAgB12B,YAAQ9oD,IAAkBA,EAClE8mB,OACAxoB,OAAQtD,EAAU2a,OAAOrX,OACzBu7C,UAAWn4C,GACc,YAArB29E,EAAiC,CAAEwC,eAAgB,GANzD,CAOE9nC,aAAmC,YAArBslC,IAAmCM,EAEjD5oC,WAAY4oC,EAAgB72B,YAAQi2B,GAAwBA,QAG/D,CAAC/zE,EAAYhQ,EAAU2a,OAAQvnB,EAAW2wF,EAAsBM,EACjE39E,EAAkB+2E,EAAckH,EAAetkF,EAAsBmmF,EACrEqB,EAAW3F,IAEb+J,cAAgB,WACd,GAAK9D,EAAgBp2F,QAArB,CAIA,IAAM03F,EAAuBnD,GAAyB,CACpDt2E,aACAhQ,YACAE,gBACAikF,gBACAJ,uBACAwC,wBACA5B,gBACA6B,gBACAC,YACAC,oBACAlH,eACA9sC,kBACAD,oBAEGgrC,GAAc0K,EAAgBp2F,QAAQstE,cAAcoqB,MACxD,CAACpF,EAAkBj9D,IAGtB,IAAM5uB,GAA2B5G,aAAY26F,MAC7ChD,2BAAgB,WACd,GAAIpB,EAAgBp2F,SAAWyG,KAA6BpF,EAAW,CACrE,IAAoB,IAAhB2uF,EAKF,aAHgD,IAA5CoG,EAAgBp2F,QAAQkwD,gBAC1BkmC,EAAgBp2F,QAAQmqE,kBAI5BisB,EAAgBp2F,QAAQiwD,aAAa+/B,MAEtC,CAAC/hF,EAAW5M,EAAWoF,GAA0BupF,EAClD8F,EAAW3F,IAIb,IAAMzuF,GAAe7B,cACnB,SAAC0K,GAAD,OAAsBm0C,aAAmBn0C,EAAO,CAAExI,GAAIV,OAExDm2F,2BAAgB,WACVpB,EAAgBp2F,SACjBo2F,EAAgBp2F,QAA2ByN,WAE7C,CAAC/L,GAAcuM,EAAU4hF,gBAAgBpmF,SAG5C,IAAMgxF,GAAiB56F,cAAY,SAAC0K,GAAD,OACjC0T,EAAW1X,UACPm0F,aAAgBnwF,EAAO0T,EAAW1X,gBAClC7I,KAEAi9F,GAAiB96F,cAAY,SAAC0K,GAAD,OACjC0T,EAAWzX,UACPo0F,aAAgBrwF,EAAO0T,EAAWzX,gBAClC9I,KAGN85F,2BAAgB,WAAO,IACFtsF,EAA0C+S,EAArD1X,UAAoC+E,EAAiB2S,EAA5BzX,UAEjC,GACE4vF,EAAgBp2F,UACZkL,GAAgBI,GACpB,CACA,IAAMq8D,EAAYyuB,EAAgBp2F,QAA2BwnE,gBAAgB,GAD7E,cAEiCG,EAFjC,GAEOsqB,EAFP,KAEmBC,EAFnB,OAMIj0E,EADFnL,yBALF,MAKsB,CAAC,KAAM,MAL7B,EAQM+nF,EAA8C,OAAzB/nF,EAAkB,GACvCgoF,EAA8C,OAAzBhoF,EAAkB,GAGzCioF,GAAe,EACfhvE,EAAoB,YAAO47C,GAiB/B,GAbIz8D,GAAgB2vF,GACdJ,IAAkBA,GAAervF,eAAiB6mF,IACpDlmE,EAAW,GAAK0uE,GAAervF,eAC/B2vF,GAAe,GAGfzvF,GAAgBwvF,GACdH,IAAkBA,GAAevvF,eAAiB8mF,IACpDnmE,EAAW,GAAK4uE,GAAevvF,eAC/B2vF,GAAe,GAIfA,EAAc,CAChB3E,EAAgBp2F,QAAQstE,cAAc,CAAEvhD,eACxC,IAAMivE,EAAe5E,EAAgBp2F,QAA2BwnE,gBAAgB,GAEhFz7C,EAAU,YAAOivE,GAIf9vF,GAAgB2vF,GACd9uE,EAAW,MAAX,OAAkB0uE,SAAlB,IAAkBA,QAAlB,EAAkBA,GAAgBtvF,OAAO9J,KAE7CO,EAASiC,aAAmB,CAAExC,YAAW6J,eAAclP,MAAO+vB,EAAW,MAEvEzgB,GAAgBwvF,GACd/uE,EAAW,MAAX,OAAkB4uE,SAAlB,IAAkBA,QAAlB,EAAkBA,GAAgBxvF,OAAO9J,KAE7CO,EAASkC,aAAmB,CAAEzC,YAAWiK,eAActP,MAAO+vB,EAAW,SAG5E,CAAC9N,EAAYhQ,EAAU2a,OAAQvnB,EAAWo5F,GAAgBE,GAAgB/4F,IAE7E41F,2BAAgB,WACVH,IAAejB,EAAgBp2F,SACjCu3F,GAAuBnB,EAAgBp2F,WAGxC,CAACq3F,KAEJ4D,cAAW,WACL7E,EAAgBp2F,SAClBo2F,EAAgBp2F,QAAQ+9B,aAO5B,IAAMm9D,GAAiBv7F,mBACvBw7F,cAAS,WACP,GAAKl9E,EAAWrL,aAAhB,CAIA,IAAIwoF,GAAyB,EACvBC,EC5jCc,SAAoC/hD,EAASgiD,GACnE,IAAI7kB,EAAgD,KAUpD,OARkB,WAA6B,IAAD,uBAAxB8kB,EAAwB,yBAAxBA,EAAwB,gBAC5B,OAAZ9kB,IACFn0B,aAAam0B,GACbA,EAAU,MAEZA,EAAU/wD,YAAW,kBAAM4zB,EAAI,WAAJ,EAAQiiD,KAAOD,IDojChBE,EAAS,WAC5BJ,EAKDhF,EAAgBp2F,SACjBo2F,EAAgBp2F,QAA2ByN,SAL5C2tF,GAAyB,IAhgCC,KAygC9BF,GAAel7F,QAAU,IAAIy7F,MAAe,WAC1CJ,OAEFH,GAAel7F,QAAQ07F,QAAQh7D,EAAa1gC,aAG9Ci7F,cAAW,WACT7E,EAAgBp2F,QAAU,KACtBk7F,GAAel7F,SACjBk7F,GAAel7F,QAAQ27F,gBAI3B,IAAMp6F,GAAiD,WAA9B0c,EAAW9M,eAEpC,OACE,oCACE,yBACEvS,IAAK8hC,EACL3+B,GAAI0zF,EACJ32F,UAAWG,KACTu2F,EACA,CAAE,+BAAgCj0F,OAGrC81F,IAAe1M,GACd,kBAAC,GAAD,CAA0B/rF,IAAK04F,MAE3B,OAAL3uF,QAAK,IAALA,OAAA,EAAAA,EAAO3M,QAAS2uF,GAEf,kBAAC,GAAD,CACE3Z,UAAWkmB,GACXt4F,IAAKu4F,GACLl1E,OAAQtZ,EAAMsZ,OACdwlB,MAAO9+B,EAAM3M,QAGjB,yBAAK8C,UAAU,+BAA+BiD,GAAIyyF,M,+BEthC3CoH,GAAe,SAAC,GAaf,IAZZ39E,EAYW,EAZXA,WACAhQ,EAWW,EAXXA,UACAE,EAUW,EAVXA,cACAqnF,EASW,EATXA,sBACAC,EAQW,EARXA,eACAoG,EAOW,EAPXA,WACA7L,EAMW,EANXA,WACAlC,EAKW,EALXA,kBACA2G,EAIW,EAJXA,cACAC,EAGW,EAHXA,UACApE,EAEW,EAFXA,cACA7C,EACW,EADXA,aAEM/sD,EAAe/gC,iBAAuB,MADjC,EAE+B6B,qBAF/B,mBAEJs6F,EAFI,KAEWC,EAFX,KAILC,GAA6B,IAAhBhM,EACf,EACC/hF,EAAU2a,OAAOnf,OAAS,EAAIumF,EAC7Bh0F,EAAQs0F,EAAgB,KAAOriF,EAAU2a,OAAOozE,GAP3C,EAaP/9E,EAFF/H,qBAAsB/Y,OAXb,MAWmB8Q,EAAU9Q,IAX7B,IAaP8gB,EADF9H,qBAAsBzZ,OAZb,MAYmBuR,EAAUvR,IAZ7B,EAiBLu/F,EAAa3+C,aACjBtyC,cAAI,SAAChS,GAAD,OAAgBA,KACpB+mF,aAAOpjF,OACP,mCAAEu/F,EAAF,KAAQC,EAAR,WAA4B,CAAC9iG,KAAK8D,IAAI++F,EAAMlgG,GAAS,GAAI3C,KAAKqD,IAAIy/F,EAAMngG,GAAS,MAHhEshD,CAIjB,CAACngD,EAAKT,IAERqD,qBAAU,WACR20F,EAAUuH,KAET,CAACA,IAEJ,IAAM18D,EA/GqD,SAAC,GAIvD,IAWDA,EAXA,IAHJvjC,aAGI,MAHI,EAGJ,MAHOmB,WAGP,MAHa,EAGb,MAHgBT,WAGhB,MAHsB,EAGtB,EAgCJ,OAhCI,EAFJ0/F,eAMsBj/F,EAAM,IAC1BA,EAAM,IALJ,EADJk/F,eAQsB3/F,EAAM,IAC1BA,EAAM,GAKJS,EAAM,GAAKT,EAAM,GAGnBA,GAAQS,EAAMT,GAAQS,EAAMT,EAC5B6iC,EAAQlmC,KAAKgpB,MAAe,IAARrmB,EAAeU,IAC1BV,GAAS,GAAKmB,GAAO,GAAKT,GAAO,EAG5B,KADd6iC,EAAQlmC,KAAKgpB,MAAuB,KAAfrmB,EAAQmB,IAAeT,EAAMS,OAEhDoiC,EAAQ,IAKI,KADdA,EAAQlmC,KAAKgpB,MAAuB,KAAfrmB,EAAQU,IAAeA,EAAMS,OAEhDoiC,GAAS,IAINA,EA2EO+8D,CAA0B,CACtCtgG,MAAOs0F,EAAgB,EAAKt0F,EAC5BmB,IAAK8+F,EAAW,GAChBv/F,IAAKu/F,EAAW,GAChBG,mBAAmD1+F,IAApCugB,EAAW/H,qBAC1BmmF,mBAAmD3+F,IAApCugB,EAAW9H,uBAG5BpW,qBAAU,WACR,GAAI2gC,EAAa1gC,UAAY87F,EAAe,CAC1C,IAAM3zC,EAASjL,aAAK,CAClB,CAAC,SAACgF,GAAD,OAAOA,EAAI,GAAGlsB,aAAO,IACtB,CAACmnB,KAAGxgD,OAFSugD,CAGZ7jD,KAAKG,MAAMqiG,EAAa,KAJe,EAiBtC59E,EAVF5H,8BAPwC,MAOfpW,OAAOU,QAAQyJ,OAAOpK,QAAQu8F,mBAPf,IAiBtCt+E,EATF3H,8BARwC,MAQfrW,OAAOU,QAAQyJ,OAAOpK,QAAQw8F,mBARf,IAiBtCv+E,EARF1H,+BATwC,MASd,EATc,IAiBtC0H,EAPFzH,2BAVwC,MAUlB,QAVkB,IAiBtCyH,EANFxH,6BAXwC,MAWhB0xC,EAXgB,EAYxCzxC,EAKEuH,EALFvH,uBAZwC,EAiBtCuH,EAJFtH,wBAbwC,MAarBklF,EAbqB,IAiBtC59E,EAHFrH,0BAdwC,MAcnB,EAdmB,IAiBtCqH,EAFFpH,2BAfwC,MAelB,CAAEqS,SAAU,IAAK8O,SAAS,GAfR,EAgBxClhB,EACEmH,EADFnH,mBAGI2lF,EAAmB,IAAIC,KAAQh8D,EAAa1gC,QAAS,CACzD28F,SAAUlI,EAAc,GACxBmI,WAAYvmF,EACZwmF,WAAYvmF,EACZwmF,YAAavmF,EACbwmF,QAASvmF,EACTgxC,UAAW/wC,EACXumF,WAAYtmF,EACZqoB,KAAMpoB,EACNo7B,OAAQn7B,EACRsT,QAASrT,EACTomF,OAAQnmF,IAEVilF,EAAiBU,MAElB,CAACx+E,EAAYhQ,EAAW6tF,EAAeD,EAAYpH,IAGtD10F,qBAAU,WACR,GAAI+7F,EAAe,CACjB,IAAMoB,GAAqC,IAAhBlN,IAAsBM,EAE7C4M,IAAuBpB,EAAcl7F,QAAQspB,QAAQ8N,QACvD8jE,EAAcqB,mBACJD,GAAsBpB,EAAcl7F,QAAQspB,QAAQ8N,SAC9D8jE,EAAcsB,mBAGhB13E,YAAW,WAETo2E,EAAcj3D,OAAOtF,KACpB,MAEJ,CAACu8D,EAAe9L,EAAYzwD,EAAO+wD,IAEtC,IAAM+M,EAA8B,EAAbxB,EAAkB,EAAI,EACvCyB,EAAWjkG,KAAKgpB,OAAOw5E,EAAawB,EAAiBxB,EAAa,IAAO,GAEzE0B,EAAgBlkG,KAAKgpB,MAAuB,IAAhBg7E,EAAuB,GACnDG,EAAWnkG,KAAKgpB,MAAMi7E,EAA4B,EAAhBC,EAAsB1B,EAAa,IAErE4B,EAAepkG,KAAKgpB,MAAsB,GAAhBk7E,GAC1BG,EAAUrkG,KAAKgpB,MAAMi7E,GAAYD,EAAgBI,GAAiB5B,EAAa,IAGrF,OACE,yBAAKj9F,IAAK8hC,EAAc3+B,GAAI0zF,EAAgB32F,UAAW02F,GACrD,0BACE12F,UAAU,oBACV6D,MAAO,CACL+mC,SAAU2zD,EACVjzE,IAAKkzE,IAGNxP,EAAkB9xF,IAErB,0BACE8C,UAAU,oBACV6D,MAAO,CACL+mC,SAAU6zD,EACVnzE,IAAKozE,IAGNv/E,EAAWjd,OAASmN,EAAcnN,OAErC,0BACElC,UAAU,oBACV6D,MAAO,CACL+mC,SAAU+zD,EACVrzE,IAAKszE,IAGNjQ,K,UCxNHkQ,GAAc,SAAC3kG,GAAD,MACL,kBAANA,GAqCI4kG,GAAa,SAAC,GAeb,IAdZ3/E,EAcW,EAdXA,WACAhQ,EAaW,EAbXA,UACAE,EAYW,EAZXA,cACAqnF,EAWW,EAXXA,sBACAC,EAUW,EAVXA,eACAp0F,EASW,EATXA,UACA8sB,EAQW,EARXA,YACA0tE,EAOW,EAPXA,WACA7L,EAMW,EANXA,WACAlC,EAKW,EALXA,kBACA2G,EAIW,EAJXA,cACAC,EAGW,EAHXA,UACApE,EAEW,EAFXA,cACA7C,EACW,EADXA,aAEMoQ,EAAqBl+F,iBAA0B,MAD1C,EAE+B6B,qBAF/B,mBAEJs6F,EAFI,KAEWC,EAFX,KAILC,GAA6B,IAAhBhM,EACf,EACC/hF,EAAU2a,OAAOnf,OAAS,EAAIumF,EAC7Bh0F,EAAQiS,EAAU2a,OAAOozE,GAId8B,EAEb7/E,EAFFlH,cACegnF,EACb9/E,EADFjH,cAGI7Z,EAAMwgG,GAAYG,GAAgBA,EAAe7vF,EAAU9Q,IAC3DT,EAAMihG,GAAYI,GAAgBA,EAAe9vF,EAAUvR,IAhBtD,EAsBgB4gD,aAEzBtyC,cAAI,SAAChS,GAAD,OAAgBA,MAGpB,mCAAEkjG,EAAF,KAAQC,EAAR,WAA4B,EACxBwB,GAAYG,IAAiB5B,EAAO,EAAK,EAAIA,GAC7CyB,GAAYI,IAAiB5B,EAAO,EAAK,EAAIA,KAGjDpc,aAAOpjF,OACP,mCAAEu/F,EAAF,KAAQC,EAAR,WAA4B,CAAC9iG,KAAK8D,IAAI++F,EAAMlgG,GAAQ3C,KAAKqD,IAAIy/F,EAAMngG,MAX1CshD,CAYzB,CAACngD,EAAKT,IAlCG,mBAsBJshG,EAtBI,KAsBKC,EAtBL,KAqCXl+F,qBAAU,WACR20F,EAAU,CAACsJ,EAASC,MAEnB,CAACD,EAASC,IAEb,IAAM1+D,EAAQ+d,aACZtnB,aAA4B,KAAnBh6B,EAAQgiG,IAAmBC,EAAUD,KAG9C,SAACE,GAAD,OAAoB7kG,KAAKqD,IAAI,KAAOwhG,MACpC,SAACA,GAAD,OAAoB7kG,KAAK8D,IAAI,OAAQ+gG,KALzB5gD,GAQdv9C,qBAAU,WACR,GAAI89F,EAAmB79F,UAAY87F,EAAe,CAAC,IAAD,EAO5C79E,EALFhH,yBAF8C,MAE1BhX,OAAOU,QAAQyJ,OAAOpK,QAAQm+F,cAFJ,IAO5ClgF,EAJF/G,wBAH8C,MAG3BjX,OAAOU,QAAQyJ,OAAOpK,QAAQo+F,aAHH,IAO5CngF,EAHF9G,uBAJ8C,MAI5Bs9E,EAAc,GAJc,EAK9Cr9E,EAEE6G,EAFF7G,eAL8C,EAO5C6G,EADF5G,sBAGIzW,EAAU,CACdkqC,MAAO,GACPiI,MAAO,IACPyU,UAAW,IACX62C,YAAa,EACbC,QAAS,CACP70F,OAAQ,IACR6+C,YAAa,KACb7e,MAAOxyB,GAKTsnF,UAAU,EACVC,UAAU,EACVC,WAAYtnF,EACZunF,UAAWtnF,EACXunF,YAAaznF,EACb0nF,kBAA6C,UA3BC,UA4B9CC,aAAc,EACdC,gBAAgB,GAGZrC,EAAmB,IAAIsC,SAAMlB,EAAmB79F,SAASg/F,WAAWp+F,GAG1E67F,EAAiBwC,SAAW,EAC5BxC,EAAiByC,SAAW,IAE5BnD,EAAiBU,MAElB,CAACx+E,EAAYhQ,EAAW6tF,EAAeD,EAAYpH,IAGtD10F,qBAAU,WACR,GAAI+7F,EAAe,CAEjB,IAEM1wD,GAFqC,IAAhB4kD,IAAsBM,EAEd,GAAK,IACxCwL,EAAcqD,eAAiB/zD,EAC/B1lB,YAAW,WACTo2E,EAAcsD,IAAI9O,EAAgB,EAAI/wD,KACrC,MAEJ,CAACu8D,EAAe3tE,EAAa0tE,EAAY7L,EAAYzwD,EAAO+wD,IAE/D,IAAM+M,EAAgBhkG,KAAKG,MAAM20B,EAAc,GACzCkxE,EAAWhmG,KAAKgpB,OAAO8L,EAAckvE,GAAiB,KAEtDE,EAAgBlkG,KAAKgpB,MAAMg7E,EAAgB,KAG3CI,EAAepkG,KAAKgpB,MAAsB,GAAhBk7E,GAE1B+B,EAAiBjmG,KAAKgpB,MAAsB,IAAhBg7E,GAClC,OACE,yBACEt7F,GAAI0zF,EACJ32F,UAAW02F,GAEX,4BACE52F,IAAKi/F,EACL/+F,UAAU,aACViD,GAAE,gBAAWV,EAAX,WACFsB,MAAO,CACLsO,MAAO4qF,EACPj5F,OAAQurB,KAGZ,0BACErvB,UAAU,kBACV6D,MAAO,CACL+mC,SAAU2zD,EACVjzE,IAAKi1E,IAGNvR,EAAkBwC,EAAgB,KAAOt0F,IAE5C,0BACE8C,UAAU,kBACV6D,MAAO,CACL+mC,SAAU6zD,EACVnzE,IAhCS,IAmCVnM,EAAWjd,OAASmN,EAAcnN,OAErC,0BACElC,UAAU,kBACV6D,MAAO,CACL+mC,SAAU+zD,IAGXhQ,GAEH,0BAAM3uF,UAAU,gBAAgB6D,MAAO,CAAE+mC,SAAU41D,IAChDxR,EAAkBwC,EAAgB,KAAO0N,IAE5C,0BAAMl/F,UAAU,gBAAgB6D,MAAO,CAAE+mC,SAAU41D,IAChDxR,EAAkBwC,EAAgB,KAAO2N,M,uCC7NrCsB,GAA6BjiD,aACxC7+C,KACA2H,aAAQ,cAAe,IACvB82C,aAAK,CACH,CAAC,SAACrlB,GAAD,OAASA,EAAIpuB,OAAS,GAAG,SAACouB,GAAD,OAASA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,KACpF,CAACslB,KAAGxgD,SAIK6iG,GAAiB,SAACnxD,GAAkC,IAArBC,EAAoB,uDAAN,EAClDmxD,EAAgBF,GAAalxD,GAG7BuiD,EAAMtzC,cAEV,SAACzlB,GAAD,OAAiB6nE,aAAW,EAAG7nE,KAC/B7sB,aACEsyC,cACE,SAACzlB,GAAD,OAAiBtW,SAASsW,EAAK,OAC/B,SAAC8nE,GAAD,OAAQtmG,KAAKgpB,MACXhpB,KAAK8D,IACH9D,KAAKqD,IAAI,EAAGijG,EAAMA,EAAKrxD,GACvB,MAEF7vC,SAAS,OACX,SAACo5B,GAAD,MAAS,YAAKA,GAAMsM,OAAOtM,EAAIpuB,aAGnC,SAACzQ,GAAD,OAAOA,EAAEyoD,KAAK,MAfJnE,CAgBVmiD,GACF,MAAM,IAAN,OAAW7O,ICrBPgP,GAAqB,SAACC,GAC1B,OAAIA,EAAS,EACJA,GAEF,IAAIl+E,MAAO06D,UAAYwjB,GAkDnBC,GAAiB,SAAC,GAWjB,IAVZ7hF,EAUW,EAVXA,WACA7c,EASW,EATXA,sBACA6M,EAQW,EARXA,UACAE,EAOW,EAPXA,cACAqnF,EAMW,EANXA,sBACAC,EAKW,EALXA,eACAhB,EAIW,EAJXA,cACAhH,EAGW,EAHXA,aACAsS,EAEW,EAFXA,wBACAC,EACW,EADXA,yBAEMt/D,EAAe/gC,iBAAuB,MADjC,EAI+B6B,qBAJ/B,mBAIJy+F,EAJI,KAIWC,EAJX,KAKLC,EAAmBxgG,mBALd,EAOmDse,EAAW7L,gBA7DtC,SACnCnE,EACAM,GAEA,IAAM6xF,EAAiBR,GAAmBrxF,EAAU,IAC9C8xF,EAAkBT,GAAmBrxF,EAAU,IAC/C/C,EAAQyC,EAAUzC,MAAQm9B,KAG1B23D,EAFSryF,EAAUxC,OAASk9B,KAEDn9B,EAC3B+0F,EAAoBF,EAAkBD,EAI5C,GAAIE,EAAkBC,EADY,KAEhC,MAAO,GAGT,IAAMC,EAAaF,EAAkBC,EAKrC,MAAO,CACLE,sBAHyB,WAAcj1F,EAAQ40F,IADzBC,EAAkBD,GACT,IAAN,KAIzBI,cAqCEE,CAA6BzyF,EAAW,CAAC8xF,EAAyBC,IAClE,GATO,IAOHS,6BAPG,WAOqB/iG,EAPrB,MAOgC8iG,kBAPhC,MAO6C,EAP7C,EAwBXzgG,qBAAU,WAAO,IAAD,EACoCke,EAA1C1G,0BADM,MACek9E,EAAc,GAD7B,EAERkM,EACyB,SAA7BxyF,EAAcsiF,WACVxwF,OAAOU,QAAQyJ,OAAOpK,QAAQ2mC,WAC9B64D,GAAejoF,EAAoBtX,OAAOU,QAAQoQ,cAAc6vF,gBAChEC,EAAa5iF,EAAWjd,OAASmN,EAAcnN,MAE/C8/F,EAAuB,SAAC9nG,GAAD,MAAkC,YAANA,EAAkB,GAAKA,GARlE,EAmBVilB,EARF3G,qBAXY,MAWI,OAXJ,IAmBV2G,EAPFzG,0BAZY,MAYSmpF,EAZT,IAmBV1iF,EANFjF,mCAbY,WAmBViF,EALFhF,gCAdY,WAmBVgF,EAJF9E,iCAfY,WAmBV8E,EAHF7E,iCAhBY,MAgBgB,IAhBhB,IAmBV6E,EAFFvE,8BAjBY,iBAiBiB+zE,GAjBjB,IAmBVxvE,EADFlE,gCAlBY,MAkBe,SAACkK,GAAD,OAAeA,EAAElqB,QAAQ,IAlBxC,EAqBRgnG,EAAuB,CAC3B/hG,KAAMsY,EACN0pF,UAAWzpF,EACX6gF,UAAW5gF,EACXypF,cAAehjF,EAAWxG,uBAC1BypF,cAAejjF,EAAWvG,uBAC1BypF,UAAWljF,EAAWtG,mBACtBypF,iBAAkBnjF,EAAWrG,0BAC7BypF,gBAAiBpjF,EAAWpG,yBAC5BypF,mBAAoBrjF,EAAWnG,4BAE/BypF,mBAAoBtjF,EAAWlG,4BAC/BypF,sBAAuBvjF,EAAWjG,+BAClCypF,UAAWX,EAAqB7iF,EAAWhG,oBAC3CypF,aAAcZ,EAAqB7iF,EAAW/F,uBAC9CypF,aAAcb,EAAqB7iF,EAAW9F,uBAC9CypF,WAAY3jF,EAAW7F,oBACvBypF,WAAY5jF,EAAW5F,oBACvBypF,mBAAoB7jF,EAAW3F,4BAC/BypF,mBAAoB9jF,EAAW1F,4BAC/BivC,UAAWvpC,EAAWzF,mBACtBwpF,eAAgB/jF,EAAWxF,wBAC3BwpF,eAAgBhkF,EAAWvF,wBAC3BwpF,gBAAiBjkF,EAAWtF,yBAC5BwpF,QAASlkF,EAAWrF,iBACpBwpF,eAAgBnkF,EAAWpF,wBAC3BwpF,eAAgBpkF,EAAWnF,wBAC3BwpF,eAAgBrkF,EAAWlF,wBAC3BwpF,mBAAoBvpF,EACpBwpF,gBAAiBvpF,EACjBwpF,iBAAkBtpF,EAClBupF,iBAAkBtpF,EAClBupF,eAAgB1kF,EAAW5E,wBAC3BupF,iBAAkB3kF,EAAW3E,0BAC7BupF,iBAAkB5kF,EAAW1E,0BAC7BupF,kBAAmBjC,EACnBkC,cAAe9kF,EAAWzE,uBAC1BwpF,cAAe/kF,EAAWxE,uBAC1BwpF,cAAevpF,EACfwpF,gBAAiBjlF,EAAWtE,yBAC5BwpF,oBAAqBllF,EAAWrE,6BAChCwpF,uBAAwBnlF,EAAWpE,gCACnCwpF,0BAA2BplF,EAAWnE,mCACtCwpF,gBAAiBvpF,EACjBwpF,oBAAqBtlF,EAAWjE,6BAChCwpF,kBAAmBvlF,EAAWhE,2BAC9BwpF,sBAAuBxlF,EAAW/D,+BAClC+zC,cAAehwC,EAAW9D,wBAE5BgmF,EAAiBngG,QAAU+gG,EAEtBrgE,EAAa1gC,UAAWigG,GAE7BC,GAAiB,kBAAMjgG,OAAOC,EAAEwgC,EAAa1gC,cAC5C,CACDigG,EACAhiF,EACA7c,EACA6M,EAAU2a,OACVza,EACAsmF,EACAhH,EACA+S,IA3GS,IA8GHtnF,EAAqB+E,EAArB/E,iBACRnZ,qBAAU,WACR,GAAKkgG,GAAkB/mF,EAAvB,CAEA,IAAMwqF,EAAU,kBAAMxqF,EAAiB,OACjCyqF,EAAW,SAAC,GAAsC,IAAD,gBAAnCC,WAAmC,MAC1BC,yBAAnB7qG,EAD6C,EAC7CA,EAAGgrB,EAD0C,EAC1CA,EACX9K,EAAiB,CAAElgB,IAAGgrB,OAKxB,OADAi8E,EAAc6D,KAAK,wBAAyBH,GAAUG,KAAK,aAAcJ,GAClE,WAELzD,EAAc8D,OAAO,wBAAyBJ,GAAUI,OAAO,aAAcL,OAE9E,CAACzD,EAAe/mF,IAGnBnZ,qBAtH8B,WAC5B,GAAKkgG,EAAL,CADkC,MAGR7+F,EAAsB2nC,wBAAxC93B,EAH0B,EAG1BA,MAAOrO,EAHmB,EAGnBA,OAEfq9F,EAAcr1E,UAAU3c,EAAU2a,OAAlC,eACKu3E,EAAiBngG,QADtB,CAEEiR,MAAO5X,KAAKG,MAAMyX,EAAQuvF,GAC1B59F,OAAQvJ,KAAKG,MAAMoJ,SA8GU,CAACq9F,EAAehyF,EAAU2a,SAE3D,IAAMjmB,EAAQ89F,EACV,CACEx4B,UAAW,UACX+7B,YAAavD,QAEf/iG,EAEJ,OACE,yBAAKkB,IAAK8hC,EAAc3+B,GAAI0zF,EAAgB32F,UAAW02F,EAAuB7yF,MAAOA,K,UCxNzF1C,OAAO2sC,GAAKA,G,ICFRq3D,G,8BCmBEC,GAAe,CACnBz8D,MAAO,UACPzrC,MAAO,IACPytC,MAAO,WASH06D,GAA6B,SAAC,GAG7B,IAFLl2F,EAEI,EAFJA,UAAWglB,EAEP,EAFOA,MACXxU,EACI,EADJA,iBAAkBC,EACd,EADcA,iBAEZ0lF,EAAK/qG,KAAKgpB,OAAOpU,EAAUxC,OAASwC,EAAUzC,MAAQ,GAAKyC,EAAUyE,QACrE2xF,EAAW3hF,aAAc0hF,GAEzB34F,EAASwC,EAAU2a,OAAO7f,KAAKkqB,GAAOqxE,KACtC94F,EAAQC,EAAe,IAAL24F,EAElB9hF,EAAK7D,EAAiBjT,GACtB+4F,EAAK7lF,EAAiBlT,GACtB+W,EAAK9D,EAAiBhT,GACtB+4F,EAAK9lF,EAAiBjT,GAE5B,OAAI6W,IAAOC,EACH,GAAN,OAAUD,EAAV,YAAgBiiF,EAAhB,eAAyBC,EAAzB,aAAgCH,GAG5B,GAAN,OAAU/hF,EAAV,YAAgBiiF,EAAhB,eAAyBhiF,EAAzB,YAA+BiiF,EAA/B,aAAsCH,IAoB3BI,GAAa,SAAC,GAab,IAZZxmF,EAYW,EAZXA,WACA7c,EAWW,EAXXA,sBACA6M,EAUW,EAVXA,UACAE,EASW,EATXA,cACAqnF,EAQW,EARXA,sBACAC,EAOW,EAPXA,eACAzF,EAMW,EANXA,WACAjpF,EAKW,EALXA,SACA+mF,EAIW,EAJXA,kBACA2G,EAGW,EAHXA,cACAC,EAEW,EAFXA,UACAjH,EACW,EADXA,aAEM/sD,EAAe/gC,iBAAuB,MAEtCouF,EAAuBpuF,iBAAOmuF,GACpCC,EAAqB/tF,QAAU8tF,EAJpB,MAM+BtsF,qBAN/B,mBAMJkjG,EANI,KAMWC,EANX,KAOLC,EAAejlG,mBAPV,EASoC4gD,eAAvC9hC,EATG,EASHA,iBAAkBC,EATf,EASeA,iBAoT1B,OAjTA3e,qBAAU,WACR,GAAI2gC,EAAa1gC,UAAY0kG,EAAe,CAG1ChQ,EAAU,CAACzmF,EAAU9Q,IAAK8Q,EAAUvR,MAEpC,IACMuE,EAAUu2E,YAAKvpE,EAAU2a,OAAOrX,QAAQvG,KAAI,SAACy8B,EAAOx8B,GAGxD,MAAO,CACLw8B,QACAzrC,MAJYiS,EAAU2a,OAAO7f,KAFnB,GAE+B0+B,GAKzCgC,MAJYgrD,EAAcxpF,OAM3BH,QAAO,SAAC9R,GAAD,OAAmB,OAAZA,EAAEgD,OAAkBhD,EAAEgD,MAAQ,KACzC6oG,EAAc5jG,EAAQwI,OAAS,EAAIxI,EAAUijG,GAE7CY,EAAe7mF,EAAWjd,OAASmN,EAAcnN,MACjDowD,EAAY+yC,GAAa,CAC7Bl2F,YACAglB,MAAO,EACPxU,mBACAC,qBAtBwC,EAqFtCT,EA5DF7D,kBAzBwC,MAyB3B0qF,EAzB2B,IAqFtC7mF,EA3DF5D,qBA1BwC,MA0BxBozE,EA1BwB,IAqFtCxvE,EA1DF3D,mBA3BwC,MA2B1B82C,EA3B0B,IAqFtCnzC,EAzDF1D,uBA5BwC,MA4BtBta,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAM96C,MA5Bd,IAqFtCid,EAxDFzD,0BA7BwC,MA6BnB,GA7BmB,IAqFtCyD,EAvDFxD,4BA9BwC,MA8BjB,OA9BiB,IAqFtCwD,EAtDFvD,sBA/BwC,MA+BvB,QA/BuB,IAqFtCuD,EArDFtD,0BAhCwC,MAgCnB1a,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMlS,SAhCjB,IAqFtC3rB,EApDFrD,6BAjCwC,MAiChB,GAjCgB,IAqFtCqD,EAnDFpD,+BAlCwC,MAkCd,SAlCc,IAqFtCoD,EAlDFnD,yBAnCwC,MAmCpB,QAnCoB,IAqFtCmD,EAjDFlD,wBApCwC,MAoCrB9a,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAM3rB,OApCf,IAqFtClS,EAhDFjD,2BArCwC,MAqClB,EArCkB,IAqFtCiD,EA/CFhD,6BAtCwC,MAsChB,OAtCgB,IAqFtCgD,EA9CF/C,uBAvCwC,MAuCtB,QAvCsB,IAqFtC+C,EA7CF9C,2BAxCwC,MAwClB,gBAxCkB,IAqFtC8C,EA3CF7C,2BA1CwC,MA0ClB,MA1CkB,IAqFtC6C,EA1CF5C,4BA3CwC,MA2ClB,MA3CkB,KAqFtC4C,EAzCF3C,uBA5CwC,OA4CvB,aA5CuB,MAqFtC2C,EAxCF1C,yCA7CwC,cAqFtC0C,EAvCFzC,uCA9CwC,OA8CP,EA9CO,MAqFtCyC,EAtCFxC,2CA/CwC,OA+CH,aA/CG,MAqFtCwC,EArCFvC,uCAhDwC,OAgDP,QAhDO,MAqFtCuC,EApCFtC,uCAjDwC,OAiDP1b,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMipD,MAjD7B,MAqFtC9mF,EAlCFrC,+BAnDwC,OAmDf,eAnDe,MAqFtCqC,EAjCFpC,mDApDwC,OAoDK,KApDL,MAqFtCoC,EAhCFnC,oCArDwC,OAqDV,GArDU,MAqFtCmC,EA/BFlC,+BAtDwC,OAsDf,aAtDe,MAqFtCkC,EA9BFjC,mDAvDwC,OAuDK,EAvDL,MAqFtCiC,EA5BFhC,kCAzDwC,OAyDZhc,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMkpD,UAzDxB,MAqFtC/mF,EA3BF/B,iCA1DwC,OA0Db,QA1Da,MAqFtC+B,EA1BF9B,qCA3DwC,OA2DT,GA3DS,MAqFtC8B,EAzBF7B,uCA5DwC,OA4DP,SA5DO,MAqFtC6B,EAvBF5B,mCA9DwC,OA8DXpc,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMlR,WA9DzB,MAqFtC3sB,EAtBF3B,kCA/DwC,OA+DZ,QA/DY,MAqFtC2B,EArBF1B,sCAhEwC,OAgER,GAhEQ,MAqFtC0B,EApBFzB,wCAjEwC,OAiEN,OAjEM,MAqFtCyB,EAlBFxB,8BAnEwC,OAmEhBxc,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAM9/C,MAnEpB,MAqFtCiiB,EAjBFvB,6BApEwC,OAoEjB,QApEiB,MAqFtCuB,EAhBFtB,iCArEwC,OAqEb,GArEa,MAqFtCsB,EAfFrB,mCAtEwC,OAsEX,OAtEW,MAqFtCqB,EAbFpB,gCAxEwC,cAqFtCoB,EAZFnB,8BAzEwC,OAyEhB,SAzEgB,MAqFtCmB,EAXFlB,8BA1EwC,OA0EhB,UA1EgB,MAqFtCkB,EATFjB,qCA5EwC,cAqFtCiB,EARFhB,4CA7EwC,OA6EF,GA7EE,MAqFtCgB,EANFf,qCA/EwC,OA+ETjd,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMmpD,eA/E3B,MAqFtChnF,EALFd,iCAhFwC,cAqFtCc,EAJFb,kCAjFwC,OAiFZ,GAjFY,MAqFtCa,EAHFZ,+BAlFwC,OAkFfpd,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMopD,eAlFrB,MAqFtCjnF,EADFX,uBApFwC,OAoFvB,KApFuB,MAuFhBlc,EAAsB2nC,wBAAxC93B,GAvFkC,GAuFlCA,MAAOrO,GAvF2B,GAuF3BA,OAETuiG,GAAsB,CAC1Bp/D,OAAQ,CACN/kC,MAAO,CACLu0B,KAAMnb,EACNqvB,MAAOlvB,EACPmvB,SAAUlvB,EACVotB,WAAYntB,EACZkvB,KAAMjvB,GAERkvB,SAAU,CACRrU,KAAMlb,EACNovB,MAAO9uB,EACP+uB,SAAU9uB,EACVgtB,WAAY/sB,EACZ8uB,KAAM7uB,GAER+uB,qBAAsB,GAExB1Z,OAAQ,CACNoF,KAAMjb,EACNmvB,MAAO1uB,EACP2uB,SAAU1uB,EACV4sB,WAAY3sB,EACZ0uB,KAAMzuB,EACN+F,SAAU9F,GAEZ4jB,KAAM,CACJ+K,aAAczwC,KAAKG,MAAMoJ,IACzBmnC,YAAa1wC,KAAKG,MAAMyX,IACxB+4B,eAAgB5uB,EAChB6uB,eAAgB5uB,IAElBtS,KAAM,CAEJmhC,UAAW5uB,GACX+uB,qBAAsB,CACpBrS,QAASzc,GACTvf,MAAOwf,GAEP4uB,UAAW3uB,GACXgsB,MAAO/rB,GACP+tB,MAAO9tB,IAKT1a,QAAS4jG,GAIXtzF,OAAQ,CACN+4B,MAAO,CAGLC,OAAQ3uB,GACR4uB,2BAA4B3uB,GAC5B4uB,YAAa3uB,IAEf4uB,MAAO,CAGLH,OAAQxuB,GACRyuB,2BAA4BxuB,IAE9B2uB,UAAW,CACTlB,MAAOxtB,GACP0tB,KAAMztB,GACNwtB,SAAUvtB,GACVyrB,WAAYxrB,IAEdwuB,WAAY,CACVnB,MAAOptB,GACPstB,KAAMrtB,GACNotB,SAAUntB,GACVqrB,WAAYprB,GACZquB,cAAe,GAEjB7uC,MAAO,CACLytC,MAAOhtB,GACPktB,KAAMjtB,GACNgtB,SAAU/sB,GACVirB,WAAYhrB,IAEdkuB,MAAO,CACL9S,QAASnb,GACTla,MAAOma,GACP2sB,MAAO1sB,IAETguB,WAAY,CACV/S,QAAShb,GACTguB,eAAgB/tB,IAElB+V,UA1CM,SA0CIxI,GACR,MAAqB,UAAjBA,EAAQqpB,KACHk6C,EAAqB/tF,QAAQwqB,EAAQxuB,OAEzB,eAAjBwuB,EAAQqpB,KACJ,GAAN,OAAUrpB,EAAQid,MAAlB,KAGKjd,EAAQid,QAGnBwD,QAAS,CACPC,KAAM,CACJC,OAAQ,OACRC,MAAO,GAETC,sBAAuB,CACrBF,OAAQ,SACRC,MAAO,IACPrM,KAAM,GAERuM,6BAA6B,EAC7BC,qBAAsB,IAExBC,SAAU,CACRxT,SAAS,EACTh5B,KAAM,cACNg7B,OAAQ,GACRyR,kBAAmB,KACnBC,OAAQ,CACNC,YAAa,IACbC,gBAAiB3rC,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMspD,WACrDv5D,kBAAmB,GACnBpC,MAAOxpC,OAAOU,QAAQyJ,OAAOpK,QAAQ87C,MAAMupD,WAC3Cv5D,aAAc,EACdnC,KAAM,QACND,SAAU,GACV5C,QAAS,IAGbiF,KAAM,CACJ1hC,OAAQ,CACNs8B,WAAY,cAEZsF,cAAe/uB,IAEjBgvB,SAAU,CACRlU,QAAS7a,GACTytB,WAAYxtB,GACZqsB,MAAOpsB,IAET8uB,cAAe,CACb/hB,IAAK,EACL9c,MAAO,EACP40B,OAAQ,EACR90B,KAAM,GAERg/B,gBAAiB,CACfpzC,EAAG,EACHgrB,EAAG,GAELqoB,UAAW/uB,IAEbgvB,UAAW,CACTnS,OAAQ,KACRoS,mBAAoB,KACpBC,kBAAmB,KACnBC,eAAgB,OAId64D,GAAmB,IAAIxpD,KAAMpb,EAAa1gC,QAASmlG,IACzDP,EAAa5kG,QAAUmlG,GACvBR,GAAiB,kBAAMW,SAExB,CAACrnF,EAAY7c,EAAuB6M,EAAWE,EAAeu2F,EAAe5W,EAC9ErvE,EAAkBC,EAAkB+1E,EAAeC,EAAWjH,IAGhE1tF,qBAAU,WACR,GAAI2kG,GAAiBE,EAAa5kG,QAAS,CACzC,IAAMoxD,EAAY+yC,GAAa,CAC7Bl2F,YACAglB,MAAO,EACPxU,mBACAC,qBALuC,EAUrCT,EAFF5D,qBARuC,MAQvBozE,EARuB,IAUrCxvE,EADF3D,mBATuC,MASzB82C,EATyB,EAanCm0C,IAAuBx+F,IAA6B,IAAhBipF,EACpCwV,EAAOv3F,EAAU2a,OAAO7f,KAAKU,OAASumF,EAAa,EAEnD/8D,EAASuyE,EAAO,GAAKA,GAAQv3F,EAAU2a,OAAO7f,KAAKU,OACrD,EACA+7F,EAEEvkG,EAAUu2E,YAAKvpE,EAAU2a,OAAOrX,QAAQvG,KAAI,SAACy8B,EAAOx8B,GAGxD,MAAO,CACLw8B,QACAzrC,MAJYiS,EAAU2a,OAAO7f,KAAKkqB,GAAOwU,GAKzCgC,MAJYgrD,EAAcxpF,OAM3BH,QAAO,SAAC9R,GAAD,OAAmB,OAAZA,EAAEgD,OAAkBhD,EAAEgD,MAAQ,KACzC6oG,EAAe5jG,EAAQwI,OAAS,IAAM87F,EACxCtkG,EACA,CAACijG,IAELQ,EAAc9jG,QAAQmlC,OAAO6D,SAASrU,KAAOlb,EAC7CqqF,EAAc9jG,QAAQuvB,OAAOoF,KAAOjb,EAEpCoqF,EAAc9jG,QAAQmI,KAAK9H,QAAU4jG,EACrCH,EAAc3mE,UACd2mE,EAAczoD,cAEf,CAACh+B,EAAYhQ,EAAWy2F,EAAe1U,EAAYjpF,EAAU0X,EAC9DC,EAAkB+1E,EAAehH,IAGjC,yBAAK7uF,IAAK8hC,EAAc3+B,GAAI0zF,EAAgB32F,UAAW02F,KC9X9CiQ,I,OAAa,SAAC,GAQb,IAPZxnF,EAOW,EAPXA,WACA7c,EAMW,EANXA,sBACA6M,EAKW,EALXA,UACAE,EAIW,EAJXA,cACAqnF,EAGW,EAHXA,sBACAC,EAEW,EAFXA,eACAhB,EACW,EADXA,cAEM/zD,EAAe/gC,iBAAuB,MADjC,EAI+B6B,qBAJ/B,mBAIJy+F,EAJI,KAIWC,EAJX,KAKLwF,EAAe/lG,mBAqDrB,OA3CA63F,2BAAgB,WACd,GAAI92D,EAAa1gC,UAAYigG,EAAe,CAC1C,IAAM0F,EAAW1lG,OAAOC,EAAEwgC,EAAa1gC,SADG,EAGhBoB,EAAsB2nC,wBAAxC93B,EAHkC,EAGlCA,MAAOrO,EAH2B,EAG3BA,OAH2B,EAOtCqb,EADFV,wBANwC,MAMrB,EANqB,EAQpCqoF,EAAmB,CACvBz9C,OAAQloD,OAAOU,QAAQyJ,OAAOpK,QAAQ6lG,WACtCv9C,YAAa/qC,EACbtM,MAAO5X,KAAKG,MAAMyX,GAClBrO,OAAQvJ,KAAKG,MAAMoJ,GACnB+mD,KAAM1pD,OAAOU,QAAQyJ,OAAOpK,QAAQ6lG,YAGtC3F,GAAiB,kBAAMyF,KACvBD,EAAa1lG,QAAU4lG,KAExB,CAAC3nF,EAAYgiF,EAAe7+F,IAG/Bo2F,2BAAgB,WACd,GAAIyI,GAAiByF,EAAa1lG,QAAS,CACzC,IAKM8lG,EAAc,eACfJ,EAAa1lG,QADE,CAElBmoD,OAAQssC,EAAc,GAEtB9qC,KAAO8qC,EAAc,KAAOiR,EAAa1lG,QAAQmoD,OAC7Cu9C,EAAa1lG,QAAQ2pD,KATI,SAA7Bx7C,EAAcsiF,WACVxwF,OAAOU,QAAQyJ,OAAOpK,QAAQ2mC,WAC9B64D,GAAe/K,EAAc,GAAIx0F,OAAOU,QAAQoQ,cAAc6vF,kBAUpEX,EAAcnV,MAAM,OAAQgb,GAC5BJ,EAAa1lG,QAAU8lG,KAExB,CAAC7F,EAAehyF,EAAWE,EAAesmF,IAG3C,yBACE71F,IAAK8hC,EACL3+B,GAAI0zF,EACJ32F,UAAW02F,GAEVvnF,EAAU2a,UC1EJm9E,GAAc,SAAC,GAQd,IAPZ9nF,EAOW,EAPXA,WACAhQ,EAMW,EANXA,UACAE,EAKW,EALXA,cACAqnF,EAIW,EAJXA,sBACAC,EAGW,EAHXA,eACAhB,EAEW,EAFXA,cACAhH,EACW,EADXA,aAEM/sD,EAAe/gC,iBAAuB,MACtCqmG,EAAsBrmG,mBAFjB,EAMqC6B,oBAAS,GAN9C,mBAMJykG,EANI,KAMcC,EANd,MHpBPjC,KAGJA,GAAe,IAAIz0E,SAAQ,SAAC06D,EAASC,GACnCzkE,YAAW,WACT,IAAMygF,EAAS/iG,SAASkiB,cAAc,UACtC6gF,EAAOnnG,KAAO,kBACdmnG,EAAOt+E,OAAQ,EACfs+E,EAAO12D,IAXa,+BAapB02D,EAAO9b,QAAU,WACfF,EAAOroC,MAAM,iCAEfqkD,EAAOhsE,OAAS,WACd+vD,EAAQ,OAGV,IAAMkc,EAAchjG,SAASg6C,qBAAqB,UAAU,GAC3DgpD,EAAYzqD,WAAoB4lC,aAAa4kB,EAAQC,KACrD,QACFh3E,MAAK,kBAAM,IAAII,SAAQ,SAAC06D,GACzBjqF,OAAO8qF,OAAO7/C,KAAK,gBAAiB,MAAO,CACzCm7D,SAAU,CAAC,YAAa,YACxBp3E,SAAUi7D,YGKX96D,MAAK,WACJ82E,GAAoB,MAGxB,IAAMI,EAAgB3mG,mBAoGtB,OAjGA63F,2BAAgB,WACd,GAAIwO,EAAoBhmG,SAAWsmG,EAActmG,QAAS,CACxD,IAAMumG,EAAY,IAAItmG,OAAO8qF,OAAOyb,cAAcC,UAAUx4F,EAAU2a,QACtEo9E,EAAoBhmG,QAAQ+vD,KAAKw2C,EAAWD,EAActmG,YAE3D,CAACiO,IAGJupF,2BAAgB,WACd,GAAI92D,EAAa1gC,UAAYsmG,EAActmG,SAAWimG,EAAkB,CACtE,IAAMM,EAAY,IAAItmG,OAAO8qF,OAAOyb,cAAcC,UAAUx4F,EAAU2a,QADA,EAKlE3K,EADFjd,aAJoE,MAI5DmN,EAAcnN,MAJ8C,EAMhE0lG,EAAYv4F,EAAcsiF,WAC1BkW,EAAc,IAAIC,IAAI,CAC1B,CAAC,OAAQ3mG,OAAOU,QAAQC,QAAQZ,QAAQ+yF,yBACxC,CAAC,UAAW9yF,OAAOU,QAAQC,QAAQZ,QAAQ8yF,8BAC1C71F,IAAIypG,IAAc,GACfG,EAAuB,CAC3Bx8F,OAAQoqF,EAKRjtC,UAAyB,SAAdk/C,EAAuB,EAAI,EACtC1lG,QACA0oC,SAAU,GACVo9D,MAAO,CAGLC,eAAgB,YAChBC,aAAa,EACbz8D,OAAQ,WACR08D,UAAW,CACTv9D,SAAU,GAEZw9D,UAAW,CACTz9D,MAAO,SAGX09D,MAAO,CACLnmG,MAAOysF,EACPsZ,eAA+B,SAAdL,GAAsC,YAAdA,EACrC,YACA,SACJzH,SAAwB,YAAdyH,OAA0BhpG,GAAa,GACjDwhG,SAAwB,YAAdwH,OAA0BhpG,EAAY,GAChDy4C,UAAW,EACX8wD,UAAW,CACTv9D,SAAU,GAEZw9D,UAAW,CACTz9D,MAAO,SAGX29D,UAAW,CACTn2F,MAAO,MACPrO,OAAQ,OAEVykG,YAAa,WACbztC,WAAY,CACV3X,EAAG,CACDt/C,MAAO,SAGX2kG,eAAe,EACfC,cAAe,MACfC,eAAgB,CACd99D,SAAU,IAEZ/mB,QAAS,CACP8kF,QAAQ,EACRC,cAAc,EACdT,UAAW,CACTv9D,SAAU,IAGdi+D,UAAW,WACXhB,cACAiB,UAAyB,YAAdlB,GAGPmB,EAAiB,CAAC,OAAQ,WAAW5mE,SAAS9yB,EAAcsiF,YAC9D,IAAIxwF,OAAO8qF,OAAOyb,cAAcsB,UAAUpnE,EAAa1gC,SACvD,IAAIC,OAAO8qF,OAAOyb,cAAcuB,UAAUrnE,EAAa1gC,SAE3D6nG,EAAe93C,KAAKw2C,EAAWM,GAE/BP,EAActmG,QAAU6mG,EACxBb,EAAoBhmG,QAAU6nG,KAE/B,CAAC5pF,EAAYhQ,EAAU2a,OAAQza,EAAeuyB,EAAculE,EAAkBxR,EAC/EhH,IAIA,yBACE7uF,IAAK8hC,EACL3+B,GAAI0zF,EACJ32F,UAAW02F,KClIJwS,GAAW,SAAC,GAKX,IAJZ/pF,EAIW,EAJXA,WACAhQ,EAGW,EAHXA,UACAunF,EAEW,EAFXA,sBACAC,EACW,EADXA,eACW,EACqEx3E,EAAxET,6BADG,MACqB,EADrB,IACqES,EAA7CR,sBADxB,MACyC,GADzC,IACqEQ,EAAxBP,sBAD7C,MAC8D,GAD9D,EAILuqF,EAAS,SAAG,GAAMzqF,GAClBxhB,EAAQ3C,KAAKgpB,MAAMpU,EAAU2a,OAAO,GAAKq/E,GAAaA,EAEtDC,EAA0C,IAA5Bj6F,EAAU2a,OAAOnf,OAAe,GAAKgU,EAAiBzhB,EAAQ0hB,EAElF,OACE,yBAAK3b,GAAI0zF,EAAgB32F,UAAW02F,GACjC0S,I,SCtBMC,GAAqB9uG,KAAKgpB,MAAM,GAAK,GAErC+lF,GAAiB,eAACC,EAAD,uDAJC,GAI4BvhE,EAA7B,uDAHA,EAGA,OAC5BuhE,EAAWvhE,GACAwhE,GAAU,SAACv/F,GAAD,IAAOkiF,EAAP,uDAAqBkd,GAArB,OACrB9uG,KAAKg+C,KAAKtuC,EAAKU,OAASwhF,IACbsd,GAAa,SAACC,GAAD,IAAOvd,EAAP,uDAAqBkd,GAArB,OAA4CK,EAAOvd,GAEhEwd,GAAe,SAAC71E,EAASK,GAAV,IAAiBo1E,EAAjB,uDAVG,GAUH,OAC1BhvG,KAAKG,MAAMy5B,EAAQL,GAAWy1E,GACnBK,GAAe,SAAC91E,EAASK,GAAV,IAAiBo1E,EAAjB,uDAZG,GAYH,OAC1BhvG,KAAKG,MAAMy5B,EAAQL,GAAWy1E,GAEnBM,GAAe,SAAC/1E,GAAD,IAAUy1E,EAAV,uDAfG,GAeH,OAAyChvG,KAAK2iE,KAAKppC,GAAWy1E,GAC7EO,GAAgB,SAACJ,GAAD,IAAOH,EAAP,uDAhBE,GAgBiCvhE,EAAnC,uDAhBE,GAgBF,OAC3BztC,KAAK2iE,KAAKwsC,GAAQH,EAAWvhE,GAElB+hE,GAAoB,SAAC5+E,GAAD,IAASo+E,EAAT,uDAnBF,GAmBE,OAC/BhvG,KAAKG,MAAMywB,EAASo+E,IClBP,YACb7iF,EACAoN,EACAtJ,EAHa,GAMT,IAFFw/E,EAEC,EAFDA,aAAcC,EAEb,EAFaA,WAEb,yDADyB,GAA1BV,EACC,EADDA,SAAUW,EACT,EADSA,YAERC,GAAgB,EAEdC,EAAW,SAAAj2E,GACf,IAAMizB,EAAO1gC,EAAGujB,wBACVshC,EAAUo+B,GAAa71E,EAASK,EAAOo1E,GACvC/9B,EAAUo+B,GAAa91E,EAASK,EAAOo1E,GACvCj7F,EAAO84C,EAAK94C,KAAOi9D,EACnBjgD,EAAM87B,EAAK97B,IAAMkgD,EACjB6+B,EAAcf,GAAeC,EAAUW,GAE7C,MAAO,CACL/1E,QACA7lB,OACAgd,MACA9c,MAAOF,EAAO+7F,EACdjnE,OAAQ9X,EAAM++E,EACdl4F,MAAOk4F,EACPvmG,OAAQumG,EACR9+B,UACAC,YAIE8+B,EAAW,WACfL,EAAWG,EAASD,IACpBA,GAAgB,GAGZpyC,EAAY,SAAA3zD,GAAM,IACdmnE,EAAqBnnE,EAArBmnE,QAASC,EAAYpnE,EAAZonE,QACXtxE,EAAI6vG,GAAkBx+B,EAASg+B,GAE/BgB,EADIR,GAAkBv+B,EAAS+9B,GACRz1E,EAAU55B,EAEnCqwG,IAAqBJ,KAEH,IAAlBA,GAAqBG,IAErBC,GAAoB//E,IAExBw/E,EAAaI,EAASG,IACtBJ,EAAeI,KAKjB,OAFA7jF,EAAGniB,iBAAiB,YAAawzD,GACjCrxC,EAAGniB,iBAAiB,WAAY+lG,GACzB,WACL5jF,EAAGjiB,oBAAoB,YAAaszD,GACpCrxC,EAAGjiB,oBAAoB,WAAY6lG,KC3C1BE,GAAW,SAACvgG,GAA0C,IAAD,yDAAP,GAA1BkiF,EAAiC,EAAjCA,YAAaod,EAAoB,EAApBA,SACtCG,EAAOF,GAAQv/F,EAAMkiF,GACrBr4D,EAAU21E,GAAWC,EAAMvd,GACjC,OAAO0d,GAAa/1E,EAASy1E,IAGzBkB,GAAsB,SAACxgG,GAAmD,IAAD,yDAAP,GAAnCkiF,EAA0C,EAA1CA,YAAaod,EAA6B,EAA7BA,SAAUvhE,EAAmB,EAAnBA,QACpD0hE,EAAOF,GAAQv/F,EAAMkiF,GACrBr4D,EAAU21E,GAAWC,EAAMvd,GAC3Bh6E,EAAQ03F,GAAa/1E,EAASy1E,GAC9BzlG,EAASgmG,GAAcJ,EAAMH,EAAUvhE,GAE7C,MAAO,CAAE71B,QAAOrO,SAAQgwB,QAASv5B,KAAK2iE,KAAKppC,KAGvC42E,GAAoB,CAAC,2BAA4B,2BAEjDC,GAAe,SAACp+F,GAAD,IAASq+F,EAAT,uDAAsBF,GAAtB,OACnBG,yBACGC,OAAOC,kBAAOx+F,GAAQ,SAAArP,GAAK,OAAIA,MAC/B8tG,MAAMJ,IClCI,YAAClkF,GACd,OAAOA,EAAGujB,wBAAwB3e,IAAMnqB,OAAO8pG,YAAc,GAAM,MAAQ,UCgBvEC,GAAS,CACb5/E,IAAK,CAAE8X,OAAQ,OACfA,OAAQ,CAAE9X,IAAK,WAmGF6/E,GAhGE,SAAC,GAAwD,IAAtDlhG,EAAqD,EAArDA,KAAMmhG,EAA+C,EAA/CA,cAAkBtpG,EAA6B,yCACjEupG,EAAUxqG,mBACVyqG,EAAYzqG,mBACZ0qG,EAAW1qG,mBAHsD,EAK7C6B,mBAAS,MALoC,mBAKhE8oG,EALgE,KAKzDC,EALyD,KAMjEC,EAAe7qG,kBAAO,GACtB8qG,EAAc9qG,kBAAQ,GACtB+qG,EAAY/qG,mBAEZgrG,EAAQ,WACZN,EAASrqG,QAAQ4qG,gBACjBL,EAAS,MACTC,EAAaxqG,SAAU,EACvByqG,EAAYzqG,SAAW,GAGnB6qG,EAAY,kBAChBpoC,uBAAsB,WACpB8nC,GAAS,SAAAO,GAOP,OALGN,EAAaxqG,UACY,IAAzByqG,EAAYzqG,SAAkByqG,EAAYzqG,WAAZ,OAAwB8qG,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAc73E,QAErE03E,IAEKG,SAIbtT,2BAAgB,WAuBd,OAtBA6S,EAASrqG,QFjBE,SAACwlB,EAAD,GAAqD,IAA9CsjF,EAA6C,EAA7CA,aAAcC,EAA+B,EAA/BA,WAAcnoG,EAAiB,uDAAP,GAClDynG,EAAqEznG,EAArEynG,SAAUW,EAA2DpoG,EAA3DooG,YAD+C,EACYpoG,EAA9CmqG,kBADkC,MACrB,EADqB,IACYnqG,EAA9B4mD,iBADkB,MACN,EADM,EACHkiD,EAAe9oG,EAAf8oG,WACxDv9B,EAAS3mD,EAAG47C,WAAW,MAEzB4pC,GAAa,EACbJ,EAAgB,aAChBK,EAAc,GACdC,EAAc,aAEZ7kD,EAAQ,WACZukD,IACAM,IACA/+B,EAAO7lB,UAAU,EAAG,EAAG9gC,EAAGvU,MAAOuU,EAAG5iB,QACpCupE,EAAOlmB,aAGHphB,EAAS,SAAC,GAAc,IAAZ97B,EAAW,EAAXA,KAAW,EACQwgG,GAAoBxgG,EAAMnI,GAArDqQ,EADmB,EACnBA,MAAOrO,EADY,EACZA,OAAQgwB,EADI,EACJA,QACvBpN,EAAGvU,MAAQsQ,SAAStQ,GACpBuU,EAAG5iB,OAAS2e,SAAS3e,GACrByjD,IACA6kD,IACA,IAAM3yB,EAAWkxB,GAAa1gG,EAAM2gG,GAE9ByB,EAAU,SAACnvG,EAAOi3B,GACtBk5C,EAAO1iB,UAAY8uB,EAASv8E,GAE5B,IAAMquE,EAAUo+B,GAAa71E,EAASK,EAAOo1E,GACvC/9B,EAAUo+B,GAAa91E,EAASK,EAAOo1E,GAEzC7gD,GAAaujD,GACf5+B,EAAO7lB,UACL+jB,EAAU7iB,EACV8iB,EAAU9iB,EACV4gD,GAAeC,EAAUW,GAAe+B,EACxC3C,GAAeC,EAAUW,GAAe+B,GAI5C5+B,EAAOrC,SACLO,EACAC,EACA89B,GAAeC,EAAUW,GACzBZ,GAAeC,EAAUW,KAI7BjgG,EAAK/K,QAAQmtG,GAEbD,EAAcE,GACZ5lF,EACAoN,EACA7pB,EAAKU,OACL,CACEq/F,eACAC,cAEFnoG,GAGFgqG,EAAgB,YACK,IAAfI,GAAkBG,EAAQpiG,EAAKiiG,GAAYA,IAGjDC,EAAc,SAAAh4E,GACZ23E,IACAI,EAAY/3E,EAEZ,IAAMo3C,EAAUo+B,GAAa71E,EAASK,EAAOo1E,GACvC/9B,EAAUo+B,GAAa91E,EAASK,EAAOo1E,GAEzC7gD,GAAaujD,IACf5+B,EAAO3kB,UAAYA,EACnB2kB,EAAO5kB,YAAc,OACrB4kB,EAAOk/B,WACLhhC,EAAU7iB,EACV8iB,EAAU9iB,EACV4gD,GAAeC,EAAUW,GAAe+B,EACxC3C,GAAeC,EAAUW,GAAe+B,MAMhD,MAAO,CACL1kD,QACAxhB,SACAomE,YAAa,SAAAh4E,GAAK,OAAIg4E,EAAYh4E,IAClC23E,cAAe,kBAAMA,MEvEFU,CACjBlB,EAAUpqG,QACV,CACE8oG,aAAc,YAAyB,IAAtB71E,EAAqB,EAArBA,MAAUizB,EAAW,0BACpCukD,EAAYzqG,QAAUizB,EACtBo3E,EAASrqG,QAAQirG,YAAYh4E,GAC7By3E,EAAU1qG,QAAU0lB,YAAW,WAC7B6kF,EAAS,CACPp5E,OAAQ,CAAE4X,sBAAuB,kBAAMmd,IACvCjzB,QACAizB,WAED,MAEL6iD,WAAY,WACV0B,EAAYzqG,SAAW,EACvBsiD,aAAaooD,EAAU1qG,SACvB6qG,MAGJjqG,GAEK,kBAAMypG,EAASrqG,QAAQqmD,WAC7B,IAEHmxC,2BAAgB,WAEZ8S,GACAH,EAAQnqG,SACRmqG,EAAQnqG,QAAQuR,OAAO+4F,EAAMr3E,SAAWlqB,EAAKwI,OAAO+4F,EAAMr3E,QAE1D03E,IAEFR,EAAQnqG,QAAU+I,EAClBshG,EAASrqG,QAAQ6kC,OAAO97B,KACvB,CAACA,IAEJ,IAAMwiG,EAAetpG,uBAAY,WAC/BuoG,EAAaxqG,SAAU,IACtB,IAEGwrG,EAAevpG,uBAAY,WAC/BuoG,EAAaxqG,SAAU,EACvB6qG,MACC,IAEG13E,EAAQm3E,GAASmB,GAASnB,EAAMn5E,QAEtC,OACE,kBAAC,WAAD,KACE,4BAAQgW,cAAY,WAAWvoC,IAAKwrG,IACnCE,GAASJ,GACR,kBAAC,IAAD,CACE/2E,MAAO62E,GAAO72E,GACdhC,OAAQm5E,EAAMn5E,OACdo6E,aAAcA,EACdC,aAAcA,GAEbtB,EAAcI,EAAMr3E,MAAOE,MChGhCu4E,GAAQxzB,IAAOgX,KAAV,wEAAGhX,CAAH,kEAMLyzB,GAAQzzB,YAAO0zB,KAAMC,MAAM,CAC/B5kE,GAAI6kE,IACJ9kE,IAAK,IAFI,wEAAGkxC,CAAH,+CAUL6zB,GAAkB,SAAC,GAMI,IAL3BhjG,EAK0B,EAL1BA,KACA0+B,EAI0B,EAJ1BA,MACAukE,EAG0B,EAH1BA,WACAC,EAE0B,EAF1BA,mBACAC,EAC0B,EAD1BA,iBAEMttG,EAAMe,mBACNwzB,EAAQv0B,EAAIoB,SAAWyrG,GAAS7sG,EAAIoB,SAEpC2C,EAAQmjC,mBAAQ,iBAAO,CAAEqmE,SAAS,GAAD,OAAK7C,GAASvgG,EAAKA,MAAnB,SAAiC,CAACA,IAEnEqjG,EACJF,GACC,SAACj5E,EAAOo5E,GAAR,OAAqBH,EAAiB,CAAE3wB,MAAO9zC,EAAOukE,aAAY74E,MAAOk5E,EAAUp5E,WAEhFq5E,EACJL,GAAuB,kBAAMA,EAAmB,CAAE1wB,MAAO9zC,EAAOukE,aAAY74E,WAE9E,OACE,kBAAC,IAAD,CAAMgU,cAAY,kBAAkBJ,QAAM,EAACwlE,WAAW,QAAQvlE,IAAK,EAAGJ,OAAQ,CAAC,EAAG,EAAG,EAAG,IACtF,kBAAC,IAAD,CAAS3lC,QAASqrG,EAAcn5E,MAAOA,EAAOq5E,OAAK,IAChD,gBAAGC,EAAH,EAAGA,OAAaC,EAAhB,EAAW9tG,IAAoBG,EAA/B,wCACC,kBAAC4sG,GAAD,eACExkE,cAAY,wBACZvoC,IAAK,SAAA4mB,GACH5mB,EAAIoB,QAAUwlB,EACdknF,EAAWlnF,IAEbwgB,OAAQymE,EACR9pG,MAAOA,GACH5D,GAEJ,kBAAC2sG,GAAD,KAAQjkE,GACP1+B,EAAKA,KAAKU,OAAS,GAAK,kCAAQV,EAAKA,KAAKU,OAAlB,SAI/B,kBAAC,GAAD,CAAUV,KAAMA,EAAMmhG,cAAekC,MAsB5BO,GAjBI,SAAC,GAAD,IAAG5jG,EAAH,EAAGA,KAAMwI,EAAT,EAASA,OAAQ26F,EAAjB,EAAiBA,iBAAkBD,EAAnC,EAAmCA,mBAAnC,OACjB,kBAAC,IAAD,CAAM9kE,cAAY,aAAaylE,UAAQ,EAAChrE,SAAU,CAAEirE,SAAU,QAAUC,MAAI,GACzEv7F,EAAOvG,KAAI,SAACy8B,EAAOxU,GAClB,OAAOlqB,EAAKkqB,GAAOlqB,KAAKU,OACtB,kBAAC,GAAD,CACE8C,IAAKk7B,EACLA,MAAOA,EACPukE,WAAY/4E,EACZlqB,KAAMA,EAAKkqB,GACXg5E,mBAAoBA,EACpBC,iBAAkBA,IAElB,UCjFJa,GAAsB70B,YAAO0zB,KAAMC,MAAM,CAAE56F,MAAO,QAASrO,OAAQ,OAAQyf,OAAO,IAA/D,iFAAG61D,CAAH,2DAuBVjK,GAnBA,SAAC,GAAD,IAAGpvE,EAAH,EAAGA,SAAH,OACb,kBAAC,IAAD,CAAMsoC,cAAY,kBAAkBH,IAAK,EAAGulE,WAAW,UACrD,kBAAC,IAAD,CAAUvmE,QAAM,GAAEnnC,GAClB,kBAAC,IAAD,CAAMmoC,IAAK,EAAGulE,WAAW,UACvB,kBAAC,IAAD,WACA,kBAACQ,GAAD,MACA,kBAAC,IAAD,gBChBAx7F,GAAS,CACby7F,eAAgB,CAAEz/E,KAAM,UAAWvsB,MAAO,cAC1CisG,cAAe,CAAE1/E,KAAM,eAAgBvsB,MAAO,QAC9CksG,cAAe,CAAE3/E,KAAM,iBAAkBvsB,MAAO,aAChDmsG,oBAAqB,CAAE5/E,KAAM,kBAAmBvsB,MAAO,mBACvDosG,oBAAqB,CAAE7/E,KAAM,kBAAmBvsB,MAAO,mBACvDqsG,aAAc,CAAE9/E,KAAM,MAAOvsB,MAAO,YACpCssG,mBAAoB,CAAE//E,KAAM,YAAavsB,MAAO,cAGrCusG,GAAWxvG,OAAOlB,KAAK0U,IAErB,YAACxP,GACd,OAAIA,KAAMwP,GAAeA,GAAOxP,GAGzB,CAAEf,MADKe,EAAGqE,QAAQ,OAAO,SAAConG,GAAD,iBAAcA,EAAK,GAAGC,kBAAiBrnG,QAAQ,QAAS,IACxEmnB,KAAM,SCVTmgF,GAFG,kBAAM,kBAAC,IAAD,CAAM9qG,OAAO,MAAMqO,MAAM,OAAO01B,WAAW,eCIpDgnE,GAJA,SAAAh1B,GAAK,OAClB,kBAAC,IAAD,eAAIlvC,MAAM,SAASmkE,UAAU,YAAYzmE,cAAY,qBAAwBwxC,KCElEk1B,GAAY31B,YAAOx5E,KAAQmtG,OAAM,kBAAiB,CAC7DrjE,QAAS,aACTslE,SAAS,EACTC,UAAW,OACXjvG,UAAW,MACXyoC,SAL4C,EAAGrX,OAM/C,cAAe,0BANK,sEAAGgoD,CAAH,sEAYhB,gBAAGhoD,EAAH,EAAGA,OAAQrQ,EAAX,EAAWA,MAAX,OAAuBqQ,GAAM,mCAAgCqoD,YAAS,SAATA,CAAmB,CAAE14D,UAArD,QACtB,gBAAGqQ,EAAH,EAAGA,OAAQrQ,EAAX,EAAWA,MAAX,OAAuB04D,YAASroD,EAAS,SAAW,YAA7BqoD,CAA0C,CAAE14D,aAWjEmuF,GAPF,SAAC,GAAD,IAAGhyG,EAAH,EAAGA,MAAO2nG,EAAV,EAAUA,SAAa5kG,EAAvB,4CACX,kBAAC,IAAD,eAAMooC,cAAY,wBAA2BpoC,GAC3C,kBAAC8uG,GAAD,CAAWpmE,MAAM,UAAUvX,OAAkB,YAAVl0B,EAAqBoD,QAAS,kBAAMukG,EAAS,cAChF,kBAACkK,GAAD,CAAWpmE,MAAM,UAAUvX,OAAkB,YAAVl0B,EAAqBoD,QAAS,kBAAMukG,EAAS,gBCtB9EsK,GAAe/1B,YAAOg2B,YAASxvG,MAASmtG,MAAM,CAClDt+E,KAAM,kBACNka,MAAO,OACPe,QAAS,aACTslE,SAAS,EACTC,UAAW,OACXjvG,UAAW,MACXytG,WAAY,WACZvlE,IAAK,EACLmP,UAAW,eATK,wEAAG+hC,CAAH,yHA8CHi2B,GApBC,SAAC,GAAD,IAAGntG,EAAH,EAAGA,MAAOotG,EAAV,EAAUA,SAAUvvG,EAApB,EAAoBA,SAAUwvG,EAA9B,EAA8BA,SAA9B,OACd,kBAAC,IAAD,CACErnE,IAAK,EACLF,QAAS,CAAC,EAAG,EAAG,GAChBwtD,QAAS+Z,GAAY,CAAEC,KAAM,SAAU7kE,MAAO,aAC9C1C,QAAM,EACNI,cAAY,qBAEZ,kBAAC,IAAD,CAAMonE,eAAe,UAAUpnE,cAAY,4BACzC,kBAAC,IAAD,CAAIsC,MAAM,SAASmkE,UAAU,aAC1B5sG,GAEFotG,GAAY,kBAACH,GAAD,CAAc7uG,QAASgvG,KAEtC,kBAAC,IAAD,CAAMpnE,IAAK,EAAGD,QAAM,EAACI,cAAY,6BAC9BtoC,K,oBCjBM2vG,GAA2C,SACtDvwF,EACAm0E,EACAqc,GAEA,IAAIx9F,EAOArO,EAN4B,kBAArBqb,EAAWhN,MAEpBA,EAAQgN,EAAWhN,MACkB,kBAArBgN,EAAWhN,QAC3BA,EAAK,UAAMgN,EAAWhN,MAAMxS,WAAvB,YAG2Bf,IAA9B00F,EAAcnH,cACiB,kBAAtBhtE,EAAWrb,OAEpBA,EAASqb,EAAWrb,OACkB,kBAAtBqb,EAAWrb,SAC3BA,EAAM,UAAMqb,EAAWrb,OAAOnE,WAAxB,QAGV,IAAM8C,EAAiD,WAA9B0c,EAAW9M,eAE9Bu9F,EAAyBzwF,EAAW3c,SAtCV,SAACqtG,EAAkBptG,GACnD,IAAMqtG,EAAiB7rG,aAAaqgB,QAAb,UAAwBliB,MAAxB,OAAyDytG,IAChF,OAAIC,EACEhqF,OAAOqoB,MAAMroB,OAAOgqF,IACf,KAEH,GAAN,OAAUrtG,EACNqjB,OAAOgqF,GAAkB9rG,KACzB8rG,EAFJ,MAMK,KA2BHC,CAA0B5wF,EAAW3c,SAAUC,GAC/C,KASJ,GAPImtG,IAIF9rG,EAAS8rG,EAAuBtoG,QAAQ,KAAM,KAG5CqoG,EAAwB,CAC1B,IAAMK,EAAkBvtG,EACC,GAArBtB,OAAO8pG,YACc,GAArB9pG,OAAO8pG,YACXnnG,EAAM,UAAMksG,EAAN,MAGR,IAAMC,EAAwB9uG,OAAOU,QAAQoQ,cAAci+F,UAI3D,MAAO,CACLpsG,SACAqO,QACAg+F,SANyC,OAA1BF,OACbrxG,EACAqxG,ICvEAG,GAA4B,CAChCC,KAAM,KACNC,WAAY,MACZC,eAAW3xG,GA8BP4xG,GAtBmC,WACvC,IAAIjsD,EAAwB,GAStBksD,EAAiB,IAAIC,sBARL,SAACC,GACrBA,EAAQzxG,SAAQ,YAAiC,IAAD,EAA7B0xG,EAA6B,EAA7BA,eAAgBv+E,EAAa,EAAbA,OAC3BlC,EAAQ,UAAGo0B,EAAUhnB,MAAK,qBAAGnsB,UAA0BihB,YAA/C,aAAG,EAAqDlC,SAClEA,GACFA,EAASygF,QAIgDR,IAE/D,MAAO,CACLh4B,UAAW,SAAChnE,EAAsB+e,GAChCsgF,EAAe7T,QAAQxrF,GACvBmzC,EAAYA,EAAU9F,OAAO,CAAErtC,UAAS+e,cAE1C0gF,YAAa,SAACC,GACZvsD,EAAYA,EAAUv4C,QAAO,qBAAGoF,UAA0B0/F,OAI7BC,GC3BtBC,GAA0B,SAAC,GAAD,IACrC7xF,EADqC,EACrCA,WADqC,OAGrC,0BAAMtb,MAAO,CAAEk/B,SAAU,WAAYkuE,QAAS,EAAG9+F,MAAO,IACrDgN,EAAWlc,KC0BViuG,GAA8BjtG,aAAaqgB,QAAQ,oBAQ5C6sF,GAAmB,SAAC,GAKnB,IAAD,EAJXhyF,EAIW,EAJXA,WACA5c,EAGW,EAHXA,UACAxC,EAEW,EAFXA,SACAqxG,EACW,EADXA,WAGMtuG,EAAWC,eACjB9B,qBAAU,WACR,OAAO,WACL6B,EAASmO,aAAsB,CAAEhO,GAAIV,QAGtC,IAIH,IAAM+wF,EAAgB7H,GAAuBtsE,EAAWnN,cAZ7C,EAamDtP,oBAAkB,GAbrE,mBAaJ2uG,EAbI,KAaqBC,EAbrB,KAcLC,GAAwB,UAAAxwG,aAAYo2F,aAAZ,eAA0B/nF,WAAY+P,EAAWlc,GAC/Ey1F,2BAAgB,WACd,IAAI2Y,EAAJ,CAGA,IAAM1B,EAAyB4B,GACE,YAA5BpyF,EAAWnN,cACXshF,EAAczH,UAAU1sE,GACvBytB,EAAS8iE,GAAoBvwF,EAAYm0E,EAAeqc,GAC9D6B,cAAkB,SAACt0G,EAAOu0G,GACpBv0G,GACFk0G,EAAWvtG,MAAM6tG,YAAYD,EAAWv0G,KAEzC0vC,GAEHwkE,EAAWpxG,UAAYszF,EAAcvH,eAAe5sE,GACpDmyF,GAA2B,MAC1B,CAACnyF,EAAYm0E,EAAe+d,EAAyBE,EAAuBH,EAC7EE,IAIF,IAAMK,EAAgB5wG,aAAY6wG,MAE5BC,EAAoBhxG,mBACpBixG,EF/C6B,SACnC1gG,EACAygG,GACI,IAAD,EAC+BnvG,oBAAS,GADxC,mBACIwvE,EADJ,KACe6/B,EADf,KAEGC,EAAenxG,iBAAOqxE,GA4B5B,OAvBAjxE,qBAAU,WAkBR,MAjBoC,oBAAzByvG,sBACTF,GAA2Bp4B,UACzBhnE,GACA,SAAC6gG,GACKD,EAAa9wG,UAAY+wG,IACvBJ,EAAkB3wG,UAEpB2wG,EAAkB3wG,QAAQ2C,MAAMqnD,WAAa+mD,EAAe,UAAY,UAG1ED,EAAa9wG,QAAU+wG,EAEvBF,EAAaE,OAKd,WACLzB,GAA2BK,YAAYz/F,MAExC,CAACygG,EAAmBzgG,IAEhB8gE,EEcuBggC,CAAsBd,EAAYS,GAK1DM,EADkBpxG,aAAYqxG,MA9ER,IACD,IAkChB,EA+C2C1vG,oBAAUovG,GA/CrD,mBA+CJO,EA/CI,KA+CiBC,EA/CjB,KAgDXC,cACE,WAEED,GAAwBR,KAE1BK,EACA,CAACL,IAEH,IAAMU,GAAaV,GAAwBO,EAErCI,EAAgC5xG,iBAAOixG,GAc7C,GAbID,EAAkB3wG,SACjBuxG,EAA8BvxG,UAAY4wG,IAE7CW,EAA8BvxG,QAAU4wG,GAG1C7wG,qBAAU,YACHo6E,IAAem3B,GAActB,IAChCpuG,EAASmO,aAAsB,CAAEhO,GAAIV,OAEtC,CAACA,EAAWO,EAAU0vG,IAGrBn3B,GAEF,OAAOt7E,EAGT,GAAIyyG,EAAY,CAEd,GAAIb,EACF,OACE,kBAAC,GAAD,CAAyBxyF,WAAYA,IAIzC,IAAK0yF,EAAkB3wG,QAAS,CAC9B,IAAMwxG,EAAoBzzF,MAAMC,KAAKkyF,EAAWrxG,UAC7CmM,KAAI,SAACymG,GAAD,OAvHW,SAACvhG,GACvB,IAAMwhG,EAASxhG,EAAQmjE,WAAU,GAC3Bs+B,EAAiBD,EAAOE,iBAAiB,UAc/C,OAZA1hG,EAAQ0hG,iBAAiB,UACtB5zG,SAAQ,SAAC6zG,EAAW5+E,GACnB,IAAM6+E,EAAYH,EAAe1+E,GAC3BzI,EAAUsnF,EAAU1wC,WAAW,MAErC0wC,EAAU7gG,MAAQ4gG,EAAU5gG,MAC5B6gG,EAAUlvG,OAASivG,EAAUjvG,OAEzB4nB,GACFA,EAAQunF,UAAUF,EAAW,EAAG,MAG/BH,EAuGeM,CAAgBP,MAE5BQ,EAA0B7uG,SAASkiB,cAAc,OACvD2sF,EAAwBtvG,MAAMqnD,WAAa,SAE3CwnD,EAAkBxzG,SAAQ,SAACyzG,GACzBQ,EAAwBxsF,YAAYgsF,MAGtCd,EAAkB3wG,QAAUiyG,EAG9B,OACE,oCACE,kBAAC,GAAD,CAAyBh0F,WAAYA,IACrC,yBACErf,IAAK,SAACszG,GACAA,GAAevB,EAAkB3wG,SACnCkyG,EAAYzsF,YAAYkrF,EAAkB3wG,aAYtD,OAJKywG,GAAiBE,EAAkB3wG,UACtC2wG,EAAkB3wG,aAAUtC,GAGvBmB,GCrJIszG,GAAiB,SAAC,GAAD,IAC5Bl0F,EAD4B,EAC5BA,WACA9P,EAF4B,EAE5BA,cACA9M,EAH4B,EAG5BA,UACA+wG,EAJ4B,EAI5BA,aACAlC,EAL4B,EAK5BA,WACAmC,EAN4B,EAM5BA,8BACAC,EAP4B,EAO5BA,mBACAp1G,EAR4B,EAQ5BA,KAR4B,OAU5B,kBAAC,GAAD,CAAkB+gB,WAAYA,EAAYiyF,WAAYA,EAAY7uG,UAAWA,GAC3E,kBAAC,GAAD,CACE4c,WAAYA,EACZ5c,UAAWA,EACXgxG,8BAA+BA,EAC/BC,mBAAoBA,EACpBF,aAAcA,EACdG,sBAAuBpkG,EACvB+hG,WAAYA,EACZhzG,KAAMA,MCHC0D,GAGL,KAgBK6pB,GAAmB,CAC9BC,oBAAqB,GACrBC,GAAI,UAEJL,KAAM,GACNC,QAAS,GAMTC,QAAS,GASTI,UApB8B,SAqB5BC,EAAgB3b,EAAe4b,GAC9B,IADiD1tB,EAClD,uDADkE,GAAI2tB,EACtE,uCACA,GAAqB,OAAjBnqB,IAAwD,qBAAxBA,GAAauK,OAC/C,MAAO,GAGT,GAA0C,qBAA/BvK,GAAauK,OAAO+D,GAC7B,MAAO,GAGT,GAAqD,qBAA1CtO,GAAauK,OAAO+D,GAAOgD,WACpC,MAAO,GAGT,GAAgE,qBAArDtR,GAAauK,OAAO+D,GAAOgD,WAAW4Y,GAC/C,MAAO,GAGT,IAAIve,EAAG,UAAM2C,EAAN,YAAe4b,GAUtB,MAR6C,qBAAlC9tB,KAAK0tB,oBAAoBne,GAClCvP,KAAK0tB,oBAAoBne,GAAO,CAAE6a,MAAO,GAEzCpqB,KAAK0tB,oBAAoBne,GAAK6a,OAAS,EAGzC7a,EAAG,UAAMA,EAAN,YAAavP,KAAK0tB,oBAAoBne,GAAK6a,OAExC,GAAN,OAAUyD,EAAV,wDAAgE3b,EAAhE,8JAEoD4b,EAFpD,uCAGuBA,EAHvB,gBAGwCve,EAHxC,uCAIgBA,EAJhB,iGAKanP,EALb,YAKsB2tB,IAGxBC,WAzD8B,SA0D5BhqB,EAAeiQ,GACd,IAD6BiB,EAC9B,uDADmD,GAAI7H,EACvD,uDADwE,GAExE,MAAO,UAAG,mFAAH,OACqB6H,EADrB,KAEH,wDAFG,uBAIalR,EAJb,4BAKaiQ,EALb,KAMH,6EANG,wBASc5G,EATd,KAUH,8BAGN4gB,aAzE8B,SAyEjB/d,EAAoBge,EAAc3e,EAAaiX,EAAcomF,GACxE,GAA0B,qBAAd18F,EAAIX,GAAuB,CACrC,IAAM42B,EAASj2B,EAAIX,GAEbvT,GADmB4wG,EAAM,eAAOzmE,EAAP,GAAkBA,EAAOymE,IAAWzmE,GACxCjY,GAE3B,YAAUxtB,IAAN1E,EACKwqB,EAGU,oBAAPxqB,EACHA,EAAEyxB,GAAiBE,IAGrB3xB,EAGT,OAAOwqB,GAGT2H,UA7F8B,SA6FpBjc,GACR,GAAIA,EAAMsjG,aACR,OAAOtjG,EAAMsjG,aAEf,GAAkC,qBAAvBtjG,EAAMkc,aAA8B,CAC7C,IAAMpsB,EAAOkQ,EAAMlQ,MAAQkQ,EAAMnN,GAAGgI,MAAM,KAAK,GAC/C,MAAO,UAAI/M,KAAKiuB,aAAajuB,KAAKstB,KAAM,QAASpb,EAAMkc,aAAclc,EAAMkc,cACxE3sB,WADI,YAEHO,EAAKqsB,QAAQrsB,EAAKyK,OAASyF,EAAMkc,aAAa3hB,OAAS,IAAIhL,YAC5D2H,QAAQ,KAAM,KAGnB,OAAQpJ,KAAKiuB,aAAajuB,KAAKstB,KAAM,QAASpb,EAAMob,KAAMpb,EAAMob,MAAO7rB,WACpE2H,QAAQ,KAAM,MAGnBklB,SA7G8B,SA6GrBpc,GACP,MAAkC,qBAAvBA,EAAMkc,aACRpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMkc,aAChD,uCAAyC3sB,WAGtCzB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMob,KAAM,wCAG1DiB,SAtH8B,SAsHrBrc,GACP,MAAkC,qBAAvBA,EAAMkc,aACRpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMkc,aAAc,MAG3DpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,OAAQpb,EAAMob,KAAM,OAG1DkB,WA9H8B,SA8HnBtc,GACT,MAAkC,qBAAvBA,EAAMkc,aACRpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,SAAUpb,EAAMkc,aAAc,GAG7DpuB,KAAKiuB,aAAajuB,KAAKstB,KAAM,SAAUpb,EAAMob,KAAM,IAG5DmB,aAtI8B,SAsIjBnB,EAAcC,GACzB,IAAMhe,EAAG,UAAM+d,EAAN,YAAcC,GAEjBvpB,EAAQhE,KAAKiuB,aAAajuB,KAAKutB,QAAS,QAAShe,EAAKge,GACzD9rB,WAAW2H,QAAQ,KAAM,KAC5B,GAAIpF,EAAMyI,OAAS,GAAI,CACrB,IAAM6a,EAAItjB,EAAMklB,UAAU,EAAG,IACvB3B,EAAIvjB,EAAMklB,UAAUllB,EAAMyI,OAAS,GAAIzI,EAAMyI,QACnD,MAAM,GAAN,OAAU6a,EAAV,cAAiBC,GAEnB,OAAOvjB,GAGT0qB,YAnJ8B,SAmJlBpB,EAAcC,GACxB,IAAMhe,EAAG,UAAM+d,EAAN,YAAcC,GACvB,OAAOvtB,KAAKiuB,aAAajuB,KAAKutB,QAAS,OAAQhe,EAAK,OAGtDof,cAxJ8B,SAwJhBrB,EAAcC,EAAiBqB,GAC3C,IAAMrf,EAAG,UAAM+d,EAAN,YAAcC,GACvB,OAAOvtB,KAAKiuB,aAAajuB,KAAKutB,QAAS,SAAUhe,EAAK,GAAOqf,GAG/DC,YA7J8B,SA6JlB9pB,EAAY6nG,GACtB,IAAM5wG,EAAIgE,KAAKiuB,aAAajuB,KAAKwtB,QAAS,OAAQzoB,EAAI,KAAM6nG,GAE5D,OAAU,OAAN5wG,EACI,wEAAN,OACoBA,EADpB,UAGK,IAGT8yB,kBAvK8B,SAuKZ/pB,GAChB,GAAgC,qBAArB/E,KAAKwtB,QAAQzoB,IACoB,qBAAhC/E,KAAKwtB,QAAQzoB,GAAIgqB,WAE3B,IACE,OAAOjf,KAAKC,MAAM/P,KAAKwtB,QAAQzoB,GAAIgqB,YACnC,MAAO7oB,GACP,MAAO,CAAC,KAAM,MAGlB,MAAO,CAAC,KAAM,OAGhB8oB,cApL8B,SAoLhBjqB,EAAYyhB,GACxB,MAAgC,qBAArBxmB,KAAKwtB,QAAQzoB,IAA0D,qBAA5B/E,KAAKwtB,QAAQzoB,GAAIa,OAC9D4gB,EAAMxmB,KAAKwtB,QAAQzoB,GAAIa,OAEzB4gB,GAGTyI,qBA3L8B,SA2LTlqB,EAAYyhB,GAC/B,MAAgC,qBAArBxmB,KAAKwtB,QAAQzoB,IACuB,qBAAnC/E,KAAKwtB,QAAQzoB,GAAIkQ,cAEpBjV,KAAKwtB,QAAQzoB,GAAIkQ,cAEnBuR,IAKXvjB,OAAOwqB,iBAAmBA,GC/O1B,I,MCDYgoF,GDCN/G,GAAQxzB,YAAOxwC,KAAV,2EAAGwwC,CAAH,+DAULw6B,GAAc,CAClBC,IAAK,UACL36B,IAAK,MACL76E,IAAK,MACLT,IAAK,OAIDk2G,GAAsBC,gBAAK,YAAgD,IAZ7D50G,EAYgB8D,EAA4C,EAA5CA,GAAI3E,EAAwC,EAAxCA,MAAOkU,EAAiC,EAAjCA,WAAYwhG,EAAqB,EAArBA,eACnD7kG,EAAYpO,cAAY,SAAC0K,GAAD,OAAsBuzC,aAAgBvzC,EAAO,CAAExI,UAEvE/F,EACsB,kBAAnB82G,EACH7kG,EAAU2a,OAAOkqF,GACjB7kG,EAAUgjF,mBAAmB,GAN2C,EAQlC9D,GAAc,CACxDlvE,WAAY,GACZlV,KAAMkF,EACN7Q,QACAgU,YAAa,KACbC,aAAc,KACdnU,KAAM6E,IANA+rF,EARsE,EAQtEA,kBAAmBL,EARmD,EAQnDA,aASrBslB,EAnBe,SAAA/2G,GAAK,MAAI,UAAG02G,GAAY12G,KAAY,GAmBrCg3G,CAAe1hG,GAEnC,OACE,kBAAC,IAAD,CACEs8F,UAAU,WACVnkE,MAAM,SACN7C,OAAQ,CAAC,EAAG,EAAG,EAAG,QAClBO,cAAY,8BAEX4rE,GACC,kBAAC,IAAD,CAAMnsE,OAAQ,CAAC,EAAG,EAAG,EAAG,GAAI6C,MAAM,YAAYtC,cAAY,mCACvD4rE,GAGJjlB,EAAkB9xF,GA1CP,gBADEiC,EA4CDwvF,GA3Cc,IAAxB,WAAkCxvF,EAAKmI,QAAQ,eAAgB,WAgDlE6sG,GAAa,SAAC,GAAqB,IAAnBlxG,EAAkB,EAAlBA,GAAOhD,EAAW,uBAChCkP,EAAYpO,cAAY,SAAC0K,GAAD,OAAsBuzC,aAAgBvzC,EAAO,CAAExI,UAE7E,OAAKkM,GAAyC,IAA5BA,EAAU2a,OAAOnf,OAC5B,kBAACmpG,GAAD,eAAqB7wG,GAAIA,GAAQhD,IADgB,MAoB3C8zG,mBAhBO,SAAC,GAAuD,IAArD9wG,EAAoD,EAApDA,GAAIoM,EAAgD,EAAhDA,cAAemD,EAAiC,EAAjCA,WAAYwhG,EAAqB,EAArBA,eAC9C11G,EAAmB+Q,EAAnB/Q,MACF4D,EADqBmN,EAAZqc,QACOpkB,QAAQ,WAAY,IACpCmnB,EAAO9C,GAAiBa,SAASnd,GAEvC,OACE,kBAAC,IAAD,CAAM64B,IAAK,EAAGG,cAAY,4BACxB,kBAAC,IAAD,CAAMsC,MAAM,SAASypE,wBAAyB,CAAEC,OAAQ5lF,KACxD,kBAAC,GAAD,CAAOkc,MAAM,SAAStC,cAAY,yBAC/BnmC,GAEH,kBAAC,GAAD,CAAYe,GAAIA,EAAI3E,MAAOA,EAAOkU,WAAYA,EAAYwhG,eAAgBA,QELjED,mBAvED,SAAC,GAAkE,IAAhEO,EAA+D,EAA/DA,WAAYC,EAAmD,EAAnDA,eAAgBtxG,EAAmC,EAAnCA,GAAIkc,EAA+B,EAA/BA,WAAYq1F,EAAmB,EAAnBA,aACrDzzF,EAAQ0zF,qBAAWC,KACnBC,EAAoB9zG,mBAFoD,EAGlC6B,qBAHkC,mBAGvEsxG,EAHuE,KAGvDY,EAHuD,KAIxEC,EAA6B7tE,mBAAQ,kBAAM8tE,aAAS,IAAKF,KAAoB,IAJL,EAK1DlyG,qBAAXqyG,EALqE,oBAO9Erc,2BAAgB,WACdqc,GAAQ,KACP,IAT2E,MAWhB51F,EAAW61F,cACvER,GADMnlG,EAXsE,EAWtEA,cAA2B4lG,EAX2C,EAWvD91F,WAIjB+1F,EAAkBluE,mBACtB,iBAAO,CACL/jC,GAAIoM,EAAcpM,GAElBkP,MAAO,OACPrO,OAAQ,OAERkO,aAAc,YACd0H,mBAAoB,MACpBjB,mBAAoBghE,YAAS,SAATA,CAAmB,CAAE14D,UACzCrI,mBAAoB+gE,YAAS,WAATA,CAAqB,CAAE14D,UAC3CzH,oBAAqB,EACrBa,0BAA0B,EAC1BC,iBAAkB,SAAChX,GAAD,OAAWyxG,EAA0B,OAACzxG,QAAD,IAACA,OAAD,EAACA,EAAOlJ,IAE/D6X,WAAY,OACZD,KAAMqN,EAAWrN,KACjBmB,QAASkM,EAAWlM,QACpBG,WAAY6hG,EAAuB7hG,WACnCZ,WAAYyiG,EAAuBziG,WAEnCC,OAAO,yBACLy7F,eAAgB,CAAC7+F,EAAc8lG,YAAYjH,eAAe,KACzD/uF,EAAWnM,QAAU,CAACshG,IACnBC,GAAc,eAAOp1F,EAAWzM,YAAc,CAAC6hG,QAGvD,CAACllG,EAAe8P,IAGlB,OACE,kBAAC,IAAD,CAAM+oB,IAAK,EAAGD,QAAM,EAACI,cAAY,mBAC/B,yBACEvoC,IAAK60G,EACL9wG,MAAO,CAAEC,OAAQ,OAAQqO,MAAO,QAChCk2B,cAAY,6BAEXssE,EAAkBzzG,SACjB,kBAAC,GAAD,CACEqB,UAAWU,EACXkc,WAAY+1F,EACZ7lG,cAAeA,EACf+hG,WAAYuD,EAAkBzzG,WAIpC,kBAAC,GAAD,CACE+B,GAAIA,EACJuP,WAAY0iG,EAAgB1iG,WAC5BnD,cAAeA,EACf2kG,eAAgBA,QCtElBoB,GAAiBh8B,YAAOnqE,KAAM89F,MAAM,CACxCjlE,OAAQ,CAAC,EAAG,EAAG,EAAG,QAClB6C,MAAO,SACPx4B,MAAO,OACPrO,OAAQ,OACRuxG,UAAW,SACXj2F,KAAM,iBACNgzE,KAAM,SACNlwF,MAAO,aACP,cAAe,kCATG,yEAAGk3E,CAAH,qBA+BLk8B,GAjBF,SAAC,GAAD,IAAG7mF,EAAH,EAAGA,KAAMvsB,EAAT,EAASA,MAAOqzG,EAAhB,EAAgBA,UAAWj1G,EAA3B,EAA2BA,QAA3B,OACX,kBAAC,IAAD,CAAM4nC,IAAK,EAAGulE,WAAW,QAAQplE,cAAY,kBAC3C,kBAAC,IAAD,CAAMl2B,MAAM,OAAOrO,OAAO,OAAOukC,cAAY,uBAC3C,kBAAC,IAAD,CAAMjpB,KAAMqP,EAAMkc,MAAM,SAAS7C,OAAQ,CAAC,EAAG,EAAG,EAAG,GAAI31B,MAAM,OAAOrO,OAAO,UAE7E,kBAAC,IAAD,CAAM6mC,MAAM,SAAStC,cAAY,wBAC9BnmC,GAEFqzG,GACC,kBAAC,IAAD,CAAM5qE,MAAM,SAASmkE,UAAU,YAAYzmE,cAAY,yBACpDktE,GAGJj1G,GAAW,kBAAC80G,GAAD,CAAgB90G,QAASA,MC3BnCk1G,GAAW,SAAC,GAAqB,IAAnBzuE,EAAkB,EAAlBA,KAAM7kC,EAAY,EAAZA,MAAY,EACWu/C,eAAvC9hC,EAD4B,EAC5BA,iBAAkBC,EADU,EACVA,iBAE1B,OACE,kBAAC,GAAD,CACE6O,KAAK,eACLvsB,MAAOA,EACPqzG,UAAS,UAAK51F,EAAiBonB,GAAtB,cAAiCnnB,EAAiBmnB,OAYlD0uE,GAPK,SAAC,GAAD,IAAG9oG,EAAH,EAAGA,OAAQD,EAAX,EAAWA,MAAX,OAClB,kBAAC,GAAD,CAASxK,MAAM,QACb,kBAAC,GAAD,CAAUA,MAAM,OAAO6kC,KAAMr6B,IAC7B,kBAAC,GAAD,CAAUxK,MAAM,KAAK6kC,KAAMp6B,MCOhB+oG,GApBC,SAAC,GAAD,IAAGpB,EAAH,EAAGA,WAAYC,EAAf,EAAeA,eAAgBp1F,EAA/B,EAA+BA,WAAY63E,EAA3C,EAA2CA,UAAW3F,EAAtD,EAAsDA,WAAtD,OACd,kBAAC,IAAD,CAAMnpD,IAAK,EAAGD,QAAM,EAAC91B,MAAM,OAAOk2B,cAAY,qBAC5C,kBAAC,GAAD,CAAa37B,MAAOsqF,EAAWrqF,OAAQ0kF,IACvC,kBAAC,GAAD,CAASnvF,MAAM,UAAUqtG,UAAQ,GAC/B,kBAAC,IAAD,CAAMrnE,IAAK,EAAGD,QAAM,EAACI,cAAY,+BAC9BlpB,EAAW61F,cAAc9oG,KAAI,WAAoBioB,GAApB,IAAG9kB,EAAH,EAAGA,cAAH,OAC5B,kBAAC,GAAD,CACE5B,IAAK4B,EAAcpM,GACnBA,GAAI,CAACqxG,EAAYC,EAAgBp1F,EAAWlc,GAAIoM,EAAcpM,IAAI0/C,KAAK,KACvExjC,WAAYA,EACZq1F,aAAcrgF,EACdmgF,WAAYA,EACZC,eAAgBA,WCTtBoB,GAAgB,SAAC,GAAwD,IAAtDC,EAAqD,EAArDA,QAASC,EAA4C,EAA5CA,MAAOvG,EAAqC,EAArCA,SAAUwG,EAA2B,EAA3BA,YAAgB71G,EAAW,+DACpD81G,GAASH,GAAzB1zG,EADoE,EACpEA,MAAOusB,EAD6D,EAC7DA,KACTunF,EAASH,EAAMtpF,MAAM,EAAG,GACxB0pF,EAAaJ,EAAMlrG,OAAS,EAE5B8rB,EAAOw/E,EAAU,UAAM/zG,EAAN,aAAgB2zG,EAAMlrG,OAAtB,KAAkCzI,EACzD,OACE,kBAAC,GAAD,eAASA,MAAOu0B,EAAM64E,SAAU2G,GAAc3G,GAAcrvG,GACzD+1G,EAAO9pG,KAAI,SAAC6wB,GAAD,OACV,kBAAC,GAAD,CACEtvB,IAAKsvB,EACLtO,KAAMA,EACNvsB,MAAO66B,EACPz8B,QAASw1G,GAAgB,kBAAMA,EAAY/4E,WAsCtCg3E,mBAnBC,SAAC,GAA4C,IAA1CoB,EAAyC,EAAzCA,YAAa7F,EAA4B,EAA5BA,SAAU4G,EAAkB,EAAlBA,YAClCC,EAbY,SAAChB,GACnBA,EAAW,eAAQA,GACnB,IAAMiB,EAAqB3H,GAASvgG,QAAO,SAACC,EAAKynG,GAC/C,OAAMA,KAAWT,UAEVA,EAAYS,GACb,GAAN,mBAAWznG,GAAX,CAAgBynG,KAHsBznG,IAIrC,IAEH,MAAM,GAAN,mBAAWioG,GAAX,YAAkCn3G,OAAOlB,KAAKo3G,KAIlCkB,CAAYlB,GAExB,OACE,kBAAC,IAAD,CAAMjtE,IAAK,EAAGD,QAAM,EAAC91B,MAAM,OAAOk2B,cAAY,qBAC3C8tE,EAAIjqG,KAAI,SAACjJ,EAAIkxB,GAAL,OACP,kBAAC,GAAD,CACE1mB,IAAKxK,EACL2yG,QAAS3yG,EACT4yG,MAAOV,EAAYlyG,GACnBqsG,SAAU,kBAAMA,EAASrsG,IACzBssG,SAAUp7E,IAAUgiF,EAAIxrG,OAAS,EACjCmrG,YAAoB,kBAAP7yG,GAA0BizG,WC7C3CI,GAAel9B,YAAOg2B,YAASxvG,MAASmtG,MAAM,CAClDrjE,QAAS,aACTslE,SAAS,EACTC,UAAW,OACXjvG,UAAW,MACXytG,WAAY,QACZvlE,IAAK,IANW,yEAAGkxC,CAAH,wGAuDHm9B,GAjCF,SAAC,GAA6C,IAA3CX,EAA0C,EAA1CA,QAASC,EAAiC,EAAjCA,MAAOW,EAA0B,EAA1BA,OAAQV,EAAkB,EAAlBA,YAAkB,EAChCC,GAASH,GAAzB1zG,EADgD,EAChDA,MAAOusB,EADyC,EACzCA,KAEf,OACE,kBAAC,IAAD,CAAM3qB,OAAO,OAAOokC,IAAK,EAAGG,cAAY,iBAAiBJ,QAAM,GAC7D,kBAAC,GAAD,KACE,kBAACquE,GAAD,CACE3tE,MAAK,UAAKzmC,EAAL,aAAe2zG,EAAMlrG,OAArB,KACL8jB,KAAK,eACLnuB,QAASk2G,EACTnuE,cAAY,yBAGhB,kBAAC,GAAD,MACA,kBAAC,IAAD,CACEH,IAAK,EACLpF,SAAU,CAAEirE,SAAU,OAAQ0I,WAAY,UAC1CxuE,QAAM,EACNI,cAAY,4BAEXwtE,EAAM3pG,KAAI,SAAC6wB,GAAD,OACT,kBAAC,GAAD,CACEtvB,IAAKsvB,EACLtO,KAAMA,EACNvsB,MAAO66B,EACPz8B,QAASw1G,GAAgB,kBAAMA,EAAY/4E,YC7CjDo8C,GAAY,SAACU,GAAD,OAChB,kBAAC,IAAD,eACEhyC,WAAY,CAAC,cAAe,WAC5BG,QAAS,CAAC,EAAG,GACb71B,MAAM,QACNrO,OAAO,SACH+1E,KAIF68B,GAAgB,SAAC,GAAD,IAAG/tE,EAAH,EAAGA,MAAOzrC,EAAV,EAAUA,MAAO2nG,EAAjB,EAAiBA,SAAU9kG,EAA3B,EAA2BA,SAA3B,OACpB,kBAAC,IAAD,CAAM+D,OAAO,OAAOmkC,QAAM,GACxB,kBAAC,GAAD,KAASU,GACT,kBAAC,GAAD,CAAMzrC,MAAOA,EAAO2nG,SAAUA,EAAU/8D,OAAQ,CAAC,EAAG,EAAG,EAAG,KAC1D,kBAAC,GAAD,MACA,kBAAC,IAAD,CAAMI,IAAK,EAAGpF,SAAU,CAAEirE,SAAU,OAAQ0I,WAAY,UAAY3uE,OAAQ,CAAC,EAAG,EAAG,EAAG,IACnF/nC,KAoDQ42G,GA/CC,SAAC,GASV,IARLz0G,EAQI,EARJA,MACAoyG,EAOI,EAPJA,WACAC,EAMI,EANJA,eACAY,EAKI,EALJA,YACAh2F,EAII,EAJJA,WACAkyE,EAGI,EAHJA,WACA2F,EAEI,EAFJA,UACG/2F,EACC,8GACoByC,mBAAS,WAD7B,mBACGs8B,EADH,KACS43E,EADT,KAGEC,EAAuB,YAAT73E,GAA+B,YAATA,EAElCk3E,EAAgB/2F,EAAhB+2F,YAER,OACE,kBAAC,GAAD,eAAW7tE,cAAY,cAAiBpoC,GACrC42G,GACC,kBAAC,GAAD,CACEjB,QAAS52E,EACT62E,MAAOV,EAAYn2E,GACnB7f,WAAYA,EACZq3F,OAAQ,kBAAMI,EAAQ,YACtBd,YAAsB,kBAAT92E,GAA4Bk3E,KAG3CW,GACA,kBAAC,GAAD,CAAeluE,MAAOzmC,EAAOhF,MAAO8hC,EAAM6lE,SAAU+R,GACxC,YAAT53E,GACC,kBAAC,GAAD,CAASm2E,YAAaA,EAAa7F,SAAUsH,EAASV,YAAaA,IAE3D,YAATl3E,GACC,kBAAC,GAAD,CACEs1E,WAAYA,EACZC,eAAgBA,EAChBp1F,WAAYA,EACZ63E,UAAWA,EACX3F,WAAYA,OC+CXylB,GA5FI,SAAC,GASN,IARZ3nG,EAQW,EARXA,UACAE,EAOW,EAPXA,cACA8P,EAMW,EANXA,WACA63E,EAKW,EALXA,UACA3F,EAIW,EAJXA,WACAH,EAGW,EAHXA,WACAjpF,EAEW,EAFXA,SACAupF,EACW,EADXA,cAEQz+E,EAAiBoM,EAAjBpM,aADG,EAEyCi0B,mBAClD,kBChCW,SAAC73B,EAAW4D,GAAkB,IACnChV,EAAgFoR,EAAhFpR,KAAcg5G,EAAkE5nG,EAA1EsD,OAAqBO,EAAqD7D,EAArD6D,QAASN,EAA4CvD,EAA5CuD,YAAaG,EAA+B1D,EAA/B0D,WAAY6qE,EAAmBvuE,EAAnBuuE,eAC/DR,EAAcn/E,EAAKiV,GACnBgkG,EAAkBj5G,EAAK2U,GAGvBukG,GAFUlkG,GAAgB,YAAIkM,MAAMi+D,EAAYvyE,SAASuB,KAAI,SAACk3C,EAAGjvB,GAAJ,OAAcA,MAEnDjmB,QAAO,SAACC,EAAUgmB,GAC9C,IAAM+iF,EAAah6B,EAAY/oD,GACzB+iF,KAAc/oG,IAClBA,EAAI+oG,GAAc,CAChBzkG,OAAQ,GACR0kG,QAAS,GACThC,YAAa,GACbz3B,eAAgB,KAGpB,IAAM05B,EAAQjpG,EAAI+oG,GAClBE,EAAMD,QAAQnsF,KAAKmJ,GACnBijF,EAAM3kG,OAAOuY,KAAKgsF,EAAgB7iF,IAClCijF,EAAM15B,eAAe1yD,KAAK0yD,EAAevpD,IAEzC,IAAMghF,EAActiG,EAAW3E,QAAO,SAACmpG,EAAW1uE,GAChD,OAAOouE,EAAYpuE,GAAOxU,GAAnB,eACEkjF,EADF,eACc1uE,EAAQouE,EAAYpuE,GAAOxU,KAC5CkjF,IACH,IAEH,OADAD,EAAMjC,YAAYnqF,KAAKmqF,GAChBhnG,IACN,IAEGsE,EAASxT,OAAOlB,KAAKk5G,GAAehsF,MACxC,SAACzF,EAAGC,GAAJ,OAAUwxF,EAAcxxF,GAAG0xF,QAAQxsG,OAASssG,EAAczxF,GAAG2xF,QAAQxsG,UAGjE2sG,EAAY7kG,EAAOvG,KAAI,SAACy8B,GAAD,OAAWsuE,EAActuE,MAEhD4uE,EAAmBD,EAAUprG,KAAI,SAACkrG,GACtC,OAAOvkG,EAAW3E,QAAO,SAACC,EAAKw6B,GAC7B,IAAM6uE,EAAc,IAAIC,IACtBL,EAAMjC,YAAYjnG,QAAO,SAACwpG,EAAgBvC,GACxC,OAAOA,EAAYxsE,GAAZ,sBAAyB+uE,GAAzB,YAA4CvC,EAAYxsE,KAAU+uE,IACxE,KAEL,OAA4B,IAArBF,EAAYv3E,KAAa9xB,EAAzB,eAAoCA,EAApC,eAA0Cw6B,EAAQ1pB,MAAMC,KAAKs4F,OACnE,OAGL,MAAO,CAAE/kG,SAAQxI,KAAMqtG,EAAWnC,YAAaoC,GDfvCI,CAAUxoG,EAAW4D,KAC3B,CAACA,EAAc5D,IAFHyoG,EAFH,EAEH3tG,KAAoBwI,EAFjB,EAEiBA,OAAQ0iG,EAFzB,EAEyBA,YAMlClyG,EAIEkM,EAJFlM,GACUgH,EAGRkF,EAHF2a,OAAU7f,KACV+I,EAEE7D,EAFF6D,QACAN,EACEvD,EADFuD,YAsCImlG,EAAmB7wE,mBAAQ,WAC/B,OAAO4wE,EAAa1rG,KAAI,SAAC4rG,GACvB,MAAO,CACLrlG,OAAQqlG,EAAWrlG,OACnBxI,MACkB,IAAhBinF,GAAqBA,EAAajnF,EAAKU,UAAYumF,KAAcjnF,GAC7D6tG,EAAWp6B,eACXo6B,EAAWX,QAAQjrG,KAAI,SAACioB,GAAD,OAAWlqB,EAAKinF,GAAY/8D,EAAQ,OAAO,SAG3E,CAAClqB,EAAM2tG,EAAc1mB,IAExB,OACE,kBAAC,IAAD,CAAMjpD,QAAM,EAAC91B,MAAM,OAAOrO,OAAO,OAAOokC,IAAK,EAAGF,QAAS,CAAC,EAAG,IAC3D,kBAAC,GAAD,CACE/9B,KAAM4tG,EACNplG,OAAQA,EACR26F,iBApDmB,SAAC,GAAkC,IAAhCF,EAA+B,EAA/BA,WAAY/4E,EAAmB,EAAnBA,MAAOE,EAAY,EAAZA,MACvCsU,EAAQivE,EAAa1K,GAAYz6F,OAAO0hB,GACtCjyB,EAAU6zG,GAASrjG,GAAnBxQ,MAER,OACE,kBAAC,GAAD,CACEmyB,MAAOA,EACPnyB,MAAK,UAAKA,EAAL,aAAeymC,GACpB2rE,WAAY7hG,EAAOy6F,GACnBqH,eAAgB5rE,EAChBwsE,YAAayC,EAAa1K,GAAYiI,YAAYhhF,GAClDhV,WAAYA,EACZkyE,WAAYA,EACZ2F,UAAWA,KAwCXmW,mBAnCqB,SAAC,GAA2B,IAAzBD,EAAwB,EAAxBA,WAAY74E,EAAY,EAAZA,MAClCsU,EAAQl2B,EAAOy6F,GACbhrG,EAAU6zG,GAAS/iG,GAAnB9Q,MAER,OACE,kBAAC,GAAD,CACEmyB,MAAOA,EACPnyB,MAAK,UAAKA,EAAL,aAAeymC,GACpB2rE,WAAY3rE,EACZwsE,YAAaA,EAAYjI,GACzB/tF,WAAYA,EACZkyE,WAAYA,EACZ2F,UAAWA,OAyBb,kBAAC,IAAD,CAAM3uD,cAAY,mBAAmBonE,eAAe,WAClD,kBAAC,GAAD,KAASxsG,GACT,kBAAC,GAAD,CACEoM,cAAeA,EACfmiF,cAAeA,EACfvpF,SAAUA,EACVopF,WAAYA,EACZliF,UAAWA,OEzDR4oG,GAAgB,SAAC,GAyBhB,IAxBZ54F,EAwBW,EAxBXA,WACA7c,EAuBW,EAvBXA,sBACA6M,EAsBW,EAtBXA,UACAE,EAqBW,EArBXA,cACA2C,EAoBW,EApBXA,aACAzG,EAmBW,EAnBXA,OACAhJ,EAkBW,EAlBXA,UACA8sB,EAiBW,EAjBXA,YACA0tE,EAgBW,EAhBXA,WACA7J,EAeW,EAfXA,qBACAtG,EAcW,EAdXA,aACAp9E,EAaW,EAbXA,qBACAw/E,EAYW,EAZXA,kBACA2G,EAWW,EAXXA,cACAzE,EAUW,EAVXA,WACAjpF,EASW,EATXA,SACA2uF,EAQW,EARXA,wBACAC,EAOW,EAPXA,8BACAE,EAMW,EANXA,YACAnB,EAKW,EALXA,UACAxE,EAIW,EAJXA,iBACAzC,EAGW,EAHXA,aACAsS,EAEW,EAFXA,wBACAC,EACW,EADXA,yBAEMp+F,EAAWC,eAEX80F,EAAmB92F,aAAY+2F,MAC/BhB,EAAyB3zF,uBAAY,YAAkC,IAA/BuJ,EAA8B,EAA9BA,MAAOC,EAAuB,EAAvBA,OAAQC,EAAe,EAAfA,SAC3D9J,EAASwC,aAA6B,CAAEoH,QAAOC,SAAQC,cAKrD9J,EADE+0F,EACO3yF,aAA0B,CACjCwH,MAAOu0F,EACPt0F,OAAQu0F,IAGDtwF,aAAyB,CAChClE,MAAOu0F,EACPt0F,OAAQu0F,EACRj+F,GAAIV,OAGP,CAACA,EAAWO,EAAU+0F,EAAkBoJ,EAAyBC,IAE9D5N,EAAgB7H,GAAuBz5E,GACrC65E,EAAcyH,EAAdzH,UACF6K,EAAwB7K,EAAU1sE,GACpChf,KAAW,6BAAD,OACmBgf,EAAW9M,gBAAkB,SADhD,kBAECL,EAFD,6BAIV7R,KACA,gBADU,kBAEC6R,EAFD,WAIR2kF,EAAc,UAAM3kF,EAAN,YAAsBzP,EAAtB,UACdivF,GAAgC,IAAhBN,IAAsBE,EAM5C,OCpGiC,SAAC,GAOA,IANlCjyE,EAMiC,EANjCA,WACAhQ,EAKiC,EALjCA,UACAmkF,EAIiC,EAJjCA,cACApC,EAGiC,EAHjCA,WACAlC,EAEiC,EAFjCA,kBACAwC,EACiC,EADjCA,cAGMwmB,EAA2Bn3G,iBAA+B,IAGhEw7F,cAAS,WAAO,IACNt9E,EAAgBI,EAAhBJ,YAGR,GAAKA,IAAeQ,aAAQR,GAA5B,CAGA,IAAMrT,EAAiByD,EAAU4hF,gBAC3BO,EAAeniF,EAAUoiF,cAC/B7lF,EAAexM,SAAQ,SAAC+M,EAAeE,GACrC,IAAM8rG,EAAgBl5F,EAAY,iBAAD,OAAkB9S,EAAc0Z,iBAC5D5G,EAAY,iBAAD,OAAkBuyE,EAAanlF,GAAGwZ,cAAlC,QAGhBqyF,EAAyB92G,QAAU82G,EAAyB92G,QAAQu9C,OAClEn6C,SAASof,eAAeu0F,WAK9Bh3G,qBAAU,WACR,GAAI+2G,EAAyB92G,QAAQyJ,OAAQ,CAC3C,IAAMutG,EAA0B5kB,EAAcxxF,QAAQqd,GAChDg5F,EAAYD,EAAwB/1E,SAAS,QAGnD,GAAyB,SAArBhzB,EAAUs8B,SAAsBysE,EAAwB/1E,SAAS,cAAe,CAAC,IAC3El4B,EAAUkF,EAA0B2a,OAApC7f,KACFizF,GAA6B,IAAhBhM,EACdjnF,EAAKU,OAAS,EACdumF,EAIC/9D,EAAMlpB,EADKkuG,EAAYjb,EAAcjzF,EAAKU,OAASuyF,EAAa,GAGtE/tF,EAAU4hF,gBAAgB7xF,SAAQ,SAAC+M,EAAemsG,GAChD,IAAMl7G,EAASs0F,IAAkBr+D,EAC7B,GACA67D,EAAkB77D,EAAIilF,EAAiB,IACrChnG,EAAU4mG,EAAyB92G,QAAQk3G,GAC7ChnG,IACFA,EAAQsmB,UAAR,UAAuBx6B,WAK9B,CAACiiB,EAAYhQ,EAAWmkF,EAAepC,EAAYlC,EAAmBwC,IDqCzE6mB,CAAoB,CAClBl5F,aAAYhQ,YAAWmkF,gBAAepC,aAAYlC,oBAAmBwC,kBAGlD,iBAAjBx/E,EAEA,kBAAC,GAAD,CACEmN,WAAYA,EACZhQ,UAAWA,EACXE,cAAeA,EACfqnF,sBAAuBA,EACvBC,eAAgBA,EAChB3kF,aAAcA,EACd+qF,WAAYA,EACZxxF,OAAQA,EACRhJ,UAAWA,EACX2wF,qBAAsBA,EACtB1jF,qBAAsBA,EAGtB/B,IAAKsvF,EACL/N,kBAAmBA,EACnB2G,cAAeA,EACfzE,WAAYA,EACZ0F,wBAAyBA,EACzBE,uBAAwBA,EACxBlB,UAAWA,EACXpE,cAAeA,EACf7C,aAAcA,EACdqI,UAAWiK,EACX5P,WAAY6P,IAKG,UAAjBlvF,EAEA,kBAAC,GAAD,CACEmN,WAAYA,EACZhQ,UAAWA,EACXE,cAAeA,EACfqnF,sBAAuBA,EACvBC,eAAgBA,EAChB3kF,aAAcA,EACdqd,YAAaA,EACb0tE,WAAYA,EACZxxF,OAAQA,EACRhJ,UAAWA,EACX2wF,qBAAsBA,EACtB1jF,qBAAsBA,EACtBw/E,kBAAmBA,EACnB2G,cAAeA,EACfzE,WAAYA,EACZjpF,SAAUA,EACV2uF,wBAAyBA,EACzBE,uBAAwBA,EACxBC,YAAaA,EACbnB,UAAWA,EACXpE,cAAeA,EACf7C,aAAcA,EACdqI,UAAWiK,EACX5P,WAAY6P,IAKG,cAAjBlvF,EAEA,kBAAC,GAAD,CACEmN,WAAYA,EACZ7c,sBAAuBA,EACvB6M,UAAWA,EACXE,cAAeA,EACfqnF,sBAAuBA,EACvBC,eAAgBA,EAChBzD,qBAAsBA,EACtB1jF,qBAAsBA,EACtBmmF,cAAeA,EACfhH,aAAcA,EACdsS,wBAAyBA,EACzBC,yBAA0BA,IAKX,UAAjBlvF,EAEA,kBAAC,GAAD,CACEmN,WAAYA,EACZ7c,sBAAuBA,EACvB6M,UAAWA,EACXE,cAAeA,EACfqnF,sBAAuBA,EACvBC,eAAgBA,EAChBzD,qBAAsBA,EACtBhC,WAAYA,EACZjpF,SAAUA,EACVuH,qBAAsBA,EACtBw/E,kBAAmBA,EACnB2G,cAAeA,EACfC,UAAWA,EACXpE,cAAeA,EACf7C,aAAcA,IAKC,UAAjB38E,EAEA,kBAAC,GAAD,CACEmN,WAAYA,EACZ7c,sBAAuBA,EACvB6M,UAAWA,EACXE,cAAeA,EACfqnF,sBAAuBA,EACvBC,eAAgBA,EAChBhB,cAAeA,IAKA,WAAjB3jF,EAEA,kBAAC,GAAD,CACEmN,WAAYA,EACZhQ,UAAWA,EACXE,cAAeA,EACfqnF,sBAAuBA,EACvBC,eAAgBA,EAChBhB,cAAeA,EACfhH,aAAcA,IAKC,aAAjB38E,EAEA,kBAAC,GAAD,CACEmN,WAAYA,EACZhQ,UAAWA,EACXunF,sBAAuBA,EACvBC,eAAgBA,IAKD,aAAjB3kF,EAEA,kBAAC,GAAD,CACE7C,UAAWA,EACXE,cAAeA,EACf8P,WAAYA,EACZ63E,UAAWiK,EACX5P,WAAY6P,EACZhQ,WAAYA,EACZjpF,SAAUA,EACVupF,cAAeA,IAMnB,kBAAC,GAAD,CACEryE,WAAYA,EACZhQ,UAAWA,EACXE,cAAeA,EACfqnF,sBAAuBA,EACvBC,eAAgBA,EAChB3kF,aAAcA,EACdzG,OAAQA,EACRhJ,UAAWA,EACX2wF,qBAAsBA,EACtBtG,aAAcA,EACdf,UAAWA,EAAU1sE,GACrB3P,qBAAsBA,EACtBmmF,cAAeA,EACfkB,8BAA+BA,EAC/B3F,WAAYA,EACZjpF,SAAUA,EACV2uF,wBAAyBA,EACzBE,uBAAwBA,EACxBC,YAAaA,EACbnB,UAAWA,EACXjH,aAAcA,EACdqI,UAAWiK,EACX5P,WAAY6P,KEjPLoX,GAAQvE,gBACnB,YAkBc,IAjBZ50F,EAiBW,EAjBXA,WACcnN,EAgBH,EAhBXmN,WAAcnN,aACd1P,EAeW,EAfXA,sBACA6M,EAcW,EAdXA,UACAE,EAaW,EAbXA,cACAggB,EAYW,EAZXA,YACA9sB,EAWW,EAXXA,UACAw6F,EAUW,EAVXA,WACAl1F,EASW,EATXA,aACAD,EAQW,EARXA,iBACAglF,EAOW,EAPXA,aACAp9E,EAMW,EANXA,qBACA+oG,EAKW,EALXA,wBACA9oG,EAIW,EAJXA,UACA4D,EAGW,EAHXA,mBACAs/E,EAEW,EAFXA,sBACAvB,EACW,EADXA,iBAEMonB,EAAe/D,qBAAWC,KAC1B+D,EAAqB13G,aAAY23G,MAE/B7sB,EADcJ,GAAuBz5E,GACrC65E,UAJG,EASP1sE,EAHF7gB,aANS,MAMD+Q,EAAc/Q,MANb,EAOTgU,EAEE6M,EAFF7M,YAPS,EASP6M,EADF5M,oBARS,MAQMkmG,EARN,EAaLvlB,EAAuBlsD,mBAC3B,kBACE73B,EAAU4hF,gBAAgB7kF,KAAI,SAAAD,GAAa,OACX,IAA9BoH,EAAmB1I,QAAsB0I,EAAmB8uB,SAASl2B,QAEzE,CAACkD,EAAU4hF,gBAAiB19E,IAGxBslG,EACJ9sB,EAAU1sE,IAAehe,OAAOU,QAAQC,QAAQZ,QAAQ03G,eAEpDC,EACJF,GACAx3G,OAAOU,QAAQC,QAAQZ,QAAQ43G,gBAC9B35F,EAAWtL,kBAER/Q,EAAWC,eACXg2G,EAAoB/xE,mBAAQ,WAKhC,IAAMgyE,EAA6B/5G,OAAOsN,OAAO8C,EAAc+D,YAAYlH,KAAI,SAAAhS,GAAC,OAAIA,EAAEklB,QAChF65F,EAAmC9pG,EAAU4hF,gBAAgB/kF,QACjE,SAAA9R,GAAC,OAAK8+G,EAA2B72E,SAASjoC,MAE5C,OAAO8+G,EAA2Bv6D,OAAOw6D,KACxC,CAAC9pG,EAAU4hF,gBAAiB1hF,EAAc+D,aAC7CnS,qBAAU,WACR6B,EACE8B,aAA0B,CACxB6F,aAAc4E,EAAcqc,QAC5BnpB,YACAgI,gBAAiB4U,EAAW5T,OAC5Bf,sBAAuB2U,EAAWjM,aAClCxH,eAAgBqtG,OAGnB,CACDA,EACA55F,EAAW5T,OACX4T,EAAWjM,aACX7D,EAAcqc,QACdnpB,EACAO,IAzDS,MA4DsEurF,GAAc,CAC7FlvE,aACAlV,KAAMkF,EACN7Q,QACAgU,cACAC,eACAnU,KAAMmE,IANAysF,EA5DG,EA4DHA,kBAAmBM,EA5DhB,EA4DgBA,oCAAqCX,EA5DrD,EA4DqDA,aA5DrD,EAqE+BjsF,mBAAwB,MArEvD,mBAqEJw2G,EArEI,KAqEWC,EArEX,KAuELC,EAAkBr4G,aAAYs4G,MAC9BC,EAAoBn2G,uBACxB,SAAC21F,EAAaygB,GACZ,GAAIH,EAAiB,CACnB,IAAMn9B,EAASs9B,EACX,CAAEh3G,UAAW,KAAM0F,SAAU6wF,GAC7B,CAAEv2F,YAAW0F,SAAU6wF,GAC3Bh2F,EAASmC,aAAyBg3E,SAElCk9B,EAAiBrgB,KAGrB,CAACv2F,EAAWO,EAAUs2G,IAElBI,EAAiBz4G,aAAY04G,MAC7BxxG,EAAWmxG,EAAkBI,EAAiBN,EAG9CliB,EAAYrtD,aAAYl6B,EAAU,IAAMA,EAAU,GAAKN,EAAUzC,MAAQm9B,KACzEwnD,EAAa1nD,aAAYl6B,EAAU,IAAMA,EAAU,GAAKN,EAAUxC,OAASk9B,KAE3Eo3D,EAA0Bt3D,aAAY4uE,EAAwB,IAChEA,EAAwB,GACxBppG,EAAUzC,MAAQm9B,KAChBq3D,EAA2Bv3D,aAAY4uE,EAAwB,IACjEA,EAAwB,GACxBppG,EAAUxC,OAASk9B,KAEjB6vE,EAAevqG,EAAUulF,YAAc7qD,KACvC8vE,EAAcxqG,EAAU6pF,WAAanvD,KAIrC+vE,EAAmB5yE,mBACvB,kBAAMzsC,KAAKgpB,MAAOw5E,EAAa,GAAM1tF,EAAcgb,aAAewf,QAClE,CAACx6B,EAAcgb,aAAc0yE,IAGzBlF,GAAmB92F,aAAY+2F,MAE/B+hB,GAA+BC,cACnC,SAAAC,GACEj3G,EAASoC,aAA0B60G,MAErC,KAGIljB,GAAgC1zF,uBAAY,WAChD02G,GAA6BG,UAC5B,CAACH,KAKEI,GAA8B92G,uBAClC,YAOO,IANLuJ,EAMI,EANJA,MACAC,EAKI,EALJA,OACAwjB,EAII,EAJJA,SAII,IAHJ+pF,8BAGI,SAFJrpG,EAEI,EAFJA,qBACAwmF,EACI,EADJA,8BAEA,KAAI1qF,EAASD,GAAb,CAGA,IAAIytG,EAAcP,EAEZQ,EAAiB7/G,KAAKgpB,MAAM8tE,EAAa2F,GAE3CqjB,EAAc9/G,KAAKgpB,MAAM7W,GACzB4tG,EAAe//G,KAAKgpB,MAAM5W,GACxB4rE,EAAkBppE,EAAUwmE,kBAAoB9rC,KAEtD,GAAIwtD,EAA+B,CACjC,IAAMkjB,EAAQb,EAAenhC,EACvBztE,EAAO6uG,EAAcphC,EAEvB+hC,EAAexvG,IACjBuvG,GAAe1tG,EAAS7B,EACxBwvG,EAAexvG,GAGbuvG,EAAcE,IAChBF,EAAcE,GAUlB,IAAIC,GAHJF,GAAgB/hC,EAAmB+hC,EAAe/hC,IADlD8hC,GAAeA,EAAc9hC,GAOzB6hC,EAAiB7hC,EAAkB4hC,IACrCA,EAAcC,EAAiB7hC,GAMjC,IAAIkiC,GAAa,EACjB,GAAID,EAAiBJ,GAAkBI,EAAiBL,EAAa,CAGnE,IAAM7U,IAFN6U,EAAcP,GAEYY,GAAkB,EAG5CA,GAFAF,GAAgBhV,IAChB+U,GAAe/U,GAEfmV,GAAa,EAGf,IAAMC,EAA8B,EAAlBniC,EACZoiC,EAAWpgH,KAAKC,IAAI8/G,EAAejpB,GAGvC92F,KAAKC,IAAI4/G,EAAiBI,IAAmBE,GAC7CC,GAAYD,GACZD,IAKE5iB,IACFgiB,GAA6B1pF,SAAS,CACpCzjB,MAAO2tG,EACP1tG,OAAQ2tG,EACR1tG,SAAUrK,EACVsO,yBAEEqpG,GACFL,GAA6BG,SAG/Bl3G,EACE8N,aAAyB,CACvBlE,MAAO2tG,EACP1tG,OAAQ2tG,EACRr3G,GAAIV,EACJsO,0BAKF4pG,GAAkC,oBAAbtqF,GACvBA,EAASkqF,EAAaC,OAG1B,CACEnrG,EAAUwmE,kBACVpzE,EACAO,EACA82G,EACA/hB,GACA6hB,EACAC,EACAE,GACA7iB,EACA3F,IAOEupB,GAA0Bz3G,uBAC9B,SAACuJ,EAAeC,GACd,IAAMkuG,EAAWtgH,KAAKqD,IAAI8O,EAAOgtG,GAC3BoB,EAAYvgH,KAAK8D,IAAIsO,EAAQgtG,GACnCM,GAA4B,CAC1BvtG,MAAOmuG,EACPluG,OAAQmuG,EACRjqG,sBAAsB,EACtBqpG,wBAAwB,MAG5B,CAACD,GAA6BP,EAAcC,IAGxCoB,GAAyB53G,uBAC7B,SAACC,GACC,IAAM+7B,GAAQkyD,EAAa2F,GAAahK,GAAkB5pF,GAEpDy3G,EAAW7jB,EAAY73D,EACzB07E,GAAYnB,GACdkB,GAAwBC,EAHRxpB,EAAalyD,KAMjC,CAACy7E,GAAyBlB,EAAc1iB,EAAW3F,IAG/C2pB,GAA0B73G,uBAC9B,SAACC,GACC,IAAM63G,EAAa5pB,EAAa2F,EAC1B73D,EAAO87E,EAAajuB,GAAkB5pF,GACtC03G,EAAYvgH,KAAK8D,IAAIgzF,EAAalyD,EAAMw6E,GAE9CiB,GADiBE,EAAYG,EACKH,KAEpC,CAACF,GAAyBjB,EAAa3iB,EAAW3F,IAG9C6pB,GAA2B/3G,uBAC/B,SAACC,GACC,IAAM+3G,EAA4C,GAA3BnuB,GAAkB5pF,GACzC,GAAKwE,EAUL,GAAIypF,EAAa2F,EAA2C,KAA9B2iB,EAAcD,GAC1CkB,GAAwBlB,EAAcC,OADxC,CAIA,IAAMrU,GAAOjU,EAAa2F,GAAamkB,EAAkB,EAGzDP,GAFiB5jB,EAAYsO,EACXjU,EAAaiU,QAf7BxiG,EACEsC,aAAsB,CACpBsH,MAAOnS,KAAKgpB,MAAM1b,GAAgBszG,EAAiB,SAgB3D,CACEtzG,EACA/E,EACA8E,EACAgzG,GACAlB,EACAC,EACA3iB,EACA3F,IAIE+pB,GAA4Bj4G,uBAChC,SAACC,GACC,IAAM+3G,EAA4C,GAA3BnuB,GAAkB5pF,GACzC,GAAKwE,EAAL,CAQA,IAAM09F,IACFjU,EAAa2F,IAAc,EAAuB,GAAjBmkB,IAAyB9pB,EAAa2F,IAAc,EAGzF4jB,GAFiB5jB,EAAYsO,EACXjU,EAAaiU,QAV7BxiG,EACEsC,aAAsB,CACpBsH,MAAOnS,KAAKgpB,MAAM1b,GAAgBszG,EAAiB,SAW3D,CAACtzG,EAAc/E,EAAU8E,EAAkBgzG,GAAyB5jB,EAAW3F,IAM3EgqB,GAAuBr0E,mBAC3B,kBACEs0E,aAA2B,CACzB7wG,aAAc4E,EAAcqc,QAC5BnpB,YACAgI,gBAAiB4U,EAAW5T,OAC5Bf,sBAAuB2U,EAAWjM,iBAEtC,CAACiM,EAAW5T,OAAQ4T,EAAWjM,aAAc7D,EAAe9M,IAExDgJ,GAASxK,aAAYs6G,IACrB1lB,GAAgB3uD,mBACpB,kBAAM73B,EAAU4hF,gBAAgB7kF,IAAIuU,aAAK86F,KAAIhwG,OAC7C,CAAC4D,EAAW5D,KAGd,IAAKA,GACH,OAAO,+BAGT,IAAMiwG,GAAgBvzG,GAAYA,GAAY+uF,GAAa/uF,GAAYopF,EACjE9Y,GAAkBppE,EAAUwmE,kBAAoB9rC,KAChDqnD,GAAasqB,GACfjhH,KAAKG,OAAQuN,EAAsBkH,EAAUzC,MAAQm9B,MAAgB0uC,KACpE,EAEC91E,GAAiD,WAA9B0c,EAAW9M,eAE9BmgF,GACJ,kBAAC,GAAD,CACEK,mBAAoBkoB,GACpBjoB,oBAAqBkoB,GACrBjoB,qBAAsBmoB,GACtBloB,sBAAuBooB,KAIrB3oB,GAAgBomB,GACpB,kBAAC,KAAD,CACEv2G,sBAAuBA,EACvBC,UAAWA,EACXC,SAAU2c,EAAW3c,SACrBC,iBAAkBA,KAItB,OACE,oCACE,kBAAC,GAAD,CAEEgL,IAAK+qG,EAAap5F,KAClBD,WAAYA,EACZ7c,sBAAuBA,EACvB6M,UAAWA,EACXE,cAAeA,EACf2C,aAAcA,EACdzG,OAAQA,GACRhJ,UAAWA,EACX8sB,YAAaA,EACb0tE,WAAYA,EACZ7J,qBAAsBA,EACtBtG,aAAcA,EACdgK,wBAAyBqjB,GACzBpjB,8BAA+BA,GAC/BrnF,qBAAsBA,EACtBw/E,kBAAmBA,EACnB2G,cAAeA,GACf1tF,SAAUA,EACVipF,WAAYA,GACZ6F,YAAauiB,EACb1jB,UAAW,mCAAEv3F,EAAF,KAAOT,EAAP,YAAgB0xF,EAAoCjxF,EAAKT,IACpEwzF,iBAAkBA,EAClBzC,aAAcA,EACdsS,wBAAyBA,EACzBC,yBAA0BA,IAE3BrV,EAAU1sE,IACT,kBAAC,GAAD,CACEA,WAAYA,EACZ5c,UAAWA,EACX8M,cAAeA,EACf2C,aAAcA,EACdzG,OAAQA,GACRtD,SAAUA,EACVipF,WAAYA,GACZlC,kBAAmBA,EACnB37E,mBAAoBA,EACpBs/E,sBAAuBA,EACvBvB,iBAAkBA,EAClBzC,aAAcA,EACd0C,WAAYA,EACZmB,cAAeA,GACfC,cAAeA,KAGlBkmB,IAAyBl2G,IAAoB+vF,IAC5C/vF,IAAoBgwF,O,8BC1fjBgpB,GAAeriC,IAAOnrD,IAAV,2EAAGmrD,CAAH,6GAIdK,YAAS,CAAC,UAAW,gBAGpBA,YAAS,CAAC,UAAW,iBAIpBiiC,GAAoBtiC,IAAOgX,KAAV,gFAAGhX,CAAH,uBAIjBuiC,GAAUviC,YAAOnqE,KAAV,sEAAGmqE,CAAH,4EAKRK,YAAS,CAAC,UAAW,gBAEnBA,YAAS,CAAC,UAAW,gBCItBmiC,GAAgB,SAAC,GAKhB,IAJZz8F,EAIW,EAJXA,WACAqgE,EAGW,EAHXA,QACAnwE,EAEW,EAFXA,cACAikG,EACW,EADXA,aACW,EACiB5wG,oBAAS,GAD1B,mBACJirG,EADI,KACIkO,EADJ,KAGLC,EAAc,WAClBD,GAAU,IAGZ,OACE,oCACE,kBAAC,GAAD,CACEz8F,KAAK,WACL9e,QAAS,WACPu7G,GAAU,MAGd,kBAAC,KAAD,KACE,kBAAC,KAAD,CAAa5zF,KAAM0lF,EAAQ5lE,QAAS+zE,GAClC,kBAAC,KAAD,KACGxI,EAAapnG,KAAI,gBAAGuiB,EAAH,EAAGA,KAAMka,EAAT,EAASA,MAAOroC,EAAhB,EAAgBA,QAAhB,OAChB,kBAAC,KAAD,CACEmN,IAAKk7B,EACLlS,KACE,kBAAC,GAAD,KACGhI,EACD,kBAAC,GAAD,KACGka,IAIProC,QAAS,WACPA,EAAQ,CAAE6e,aAAY9P,gBAAemwE,YACrCs8B,eC5DZC,GAAkBC,YAAH,sDAaRC,GAAmB7iC,IAAOnrD,IAAV,+EAAGmrD,CAAH,0DAEpB34D,aAAK,OACHA,aAAK,UAIHy7F,GAAS9iC,IAAOnrD,IAAV,qEAAGmrD,CAAH,qGACR34D,aAAK,QACJA,aAAK,QACDg5D,YAAS,UAEcsiC,IAG1BI,GAAU/iC,YAAO8iC,IAAV,sEAAG9iC,CAAH,2CAEH34D,aAAK,iBAGT27F,GAAUhjC,YAAO8iC,IAAV,sEAAG9iC,CAAH,2CAEH34D,aAAK,iBCjCT47F,GAAe,SAAC,GAEf,IADZrqG,EACW,EADXA,aAEMsZ,EAAuB,YAAjBtZ,EAA6B,GAAK,EACxCxD,EAAyB,YAAjBwD,EAA6B,EAAI,EACzCiuB,EAAwB,YAAjBjuB,EAA6B,GAAK,EACzCsqG,EAAgC,YAAjBtqG,EAA6B,EAAI,EACtD,OACE,kBAAC,GAAD,CAAoBsZ,IAAKA,EAAK9c,MAAOA,GACnC,kBAAC,GAAD,CAAUyxB,KAAMA,IAChB,kBAAC,GAAD,CAAWA,KAAMA,EAAMq8E,aAAcA,IACrC,kBAAC,GAAD,CAAWr8E,KAAMA,EAAMq8E,aAAcA,MCd9BC,GAAyBnjC,IAAOnrD,IAAV,qFAAGmrD,CAAH,0ECFA,IC2D7BojC,I,OAA0B,CAC9B,aAAc,QAGV3jC,GAAa,GAaN4jC,GAAkB,SAAC,GASlB,IAAD,UARXt9F,EAQW,EARXA,WACA5c,EAOW,EAPXA,UACAnE,EAMW,EANXA,KACAk1G,EAKW,EALXA,aACAG,EAIW,EAJXA,sBACArC,EAGW,EAHXA,WACAmC,EAEW,EAFXA,8BACAC,EACW,EADXA,mBACW,EAImCr0F,EAAtCrN,YAJG,MAIIgX,IAJJ,EAImB7lB,EAAgBkc,EAAhBlc,GAAIgQ,EAAYkM,EAAZlM,QAC5BnQ,EAAWC,eACX25G,EAA6B11E,kBAAQwY,KAAgC,IANhE,EAOkCz+C,cAAY,SAAC0K,GAAD,OACvDixG,EAA2BjxG,EAAO,CAAE2D,QAASnM,EAAIA,GAAIV,OAD/C8M,EAPG,EAOHA,cAAeQ,EAPZ,EAOYA,kBAGjB8sG,EAAsBlJ,GAAyBpkG,EACrDpO,qBAAU,WACHoO,GAAkBQ,GAAsB4jG,GAC3C3wG,EACE6N,KAAiBvD,QAAQ,CACvBgD,MAAOnN,EACPA,GAAIV,EACJuP,OACAmB,eAIL,CACDhQ,EACAV,EACAO,EACAgP,EACAjC,EACAR,EACAokG,EACAxgG,EACA7U,IAIF,IAAMwJ,EAAmB7G,aAAYu9B,MAC/BhvB,EAAkBvO,cAAY,SAAC0K,GAAD,OAClCo0C,aAAsBp0C,EAAO,CAAExI,GAAIV,OAE/Bq6G,EAAattG,GAAmB1H,EAEhCi1G,IACDj1G,GAAoBA,EAAiBgF,WAAarK,GAAcg8B,QAAQjvB,GACvEuB,GAAiC,OAAV+rG,QAAU,IAAVA,OAAA,EAAAA,EAAY/rG,wBAAwB,EAI3DrB,GAAwBotG,IAAeC,GAAsBhsG,EAE7DtB,EAAkBxO,cAAY,SAAC0K,GAAD,OAClCk0C,aAA2Bl0C,EAAO,CAAExI,GAAIV,OAEpCkN,EAAY1O,cAAY,SAAC0K,GAAD,OAC5Bg0C,aAAqBh0C,EAAO,CAAExI,GAAIV,OAE9B4M,EAAYpO,cAAY,SAAC0K,GAAD,OAAsBuzC,aAAgBvzC,EAAO,CAAExI,GAAIV,OAC3EmN,EAAiB3O,cAAY,SAAC0K,GAAD,OACjCi0C,aAA0Bj0C,EAAO,CAAExI,GAAIV,OAGnC0F,EAAWlH,aAAY04G,MAMvBlhC,EAAkBn6B,aAAK,CAC3B,CAAClnB,eAAS/nB,GAAY,kBAAmD,IAA5CA,EAAwBwmE,oBACrD,CACEz+C,eAASylF,GACT,kBAA4D,IAArDA,EAAsCtyF,eAE/C,CAACg0B,KAAGnnB,aAAO+qB,OANW7D,GAlEb,ECvE6C,SAAC,GAGpD,IAFL0+D,EAEI,EAFJA,eACAC,EACI,EADJA,qBAEM70G,EAAiBnH,aAAYi8G,MAC7BC,EAA6Bl8G,aAAYm8G,MACzC90G,EAAcrH,aAAYo8G,MAE1BC,KAAsBl1G,GAAkB+0G,KAAgC70G,EAL1E,EAOkC1F,oBAAkB,GAPpD,mBAOG26G,EAPH,KAOgBC,EAPhB,OAQ4E56G,oBAAS,GARrF,mBAQG66G,EARH,KAQqCC,EARrC,KAUJv8G,qBAAU,WACJs8G,GAAoCH,IACtCI,GAAoC,GACpCF,GAAe,MAEhB,CAACC,EAAkCC,EAAqCJ,IAG3E,IAAMK,GACHL,GAAqBG,GAAsCliC,GAExDoR,GADAswB,EAYN,OAVAW,cAAY,WACV,GAAIZ,EAAgB,CAClB,IAAKM,EAEH,YADAI,GAAoC,GAGtCF,GAAe,MAGhBG,GACI,CAACJ,EAAaC,GD8GiBK,CAAqB,CACzDb,gBAAiBF,IAAe30G,EAChC80G,qBAAsBxkC,IA5Eb,mBA0EJ8kC,EA1EI,KA0ESC,EA1ET,KA+ELM,EAAsBC,aAAYjB,EAAY16D,KACpDjhD,qBAAU,WACRq8G,GAAe,KACd,CAACM,EAAqBN,IAEzB,IAAMz1G,EAAe9G,aAAYq9B,MAEjCg9D,cAAgB,WACdkiB,GAAe,KACd,CACDn+F,EAAWzS,MACXyS,EAAWxS,OACX9E,EACAsX,EAAW/L,WACX+L,EAAW3M,WACX2M,EAAWnM,UA9FF,MAiG6DmM,EAAhExS,OAAQmxG,OAjGL,MAiGqB38G,OAAOU,QAAQoQ,cAActF,OAjGlD,EAqGLoxG,EAAgB5+F,EAAWzS,OAAS7E,EAEpCyrF,EAAgB7H,GAAuBtsE,EAAWnN,cAChD65E,EAAcyH,EAAdzH,UAGFmyB,GAAqB5M,EAAWnnE,wBAGhC8yD,GAAaihB,GAAmB7rG,OAAS05E,EAAU1sE,GAAc,IAAM,GACvEkQ,GAAc2uF,GAAmBl6G,OAEjCm6G,GAAoB1/E,QAAQx9B,aAAY27E,OACxC8P,GACJzrF,aAAYm9G,OAAwCD,GAChDE,GAA6Bp9G,aAAYq9G,MAEvCC,GAAgBvnC,IAAhBunC,YAEF3mC,GAAoB1wC,mBAAQ,kBAAMq3E,GAAYhoF,WAAU,IAC9D8lE,cAAW,WACTzkB,GAAkBvX,OtFrMS,iCsF2ElB,OAkIyDz9D,oBAAS,GAlIlE,qBAkIJ47G,GAlII,MAkIwBC,GAlIxB,MAmILC,GAAoBF,IAA8B5uG,EACxD6iG,cACE,WACM7iG,GACF6uG,IAA8B,KAGlC,IACA,CAAC7uG,IAEHzO,qBAAU,YACHyO,GAAkB4uG,IACrBC,IAA8B,KAE/B,CAAC7uG,EAAgB4uG,KAKpBr9G,qBAAU,WACR,GAAIo8G,GAAeV,IAAwBjtG,EAAgB,CAEzD,IAEIhD,EACAC,EACA8xG,EAJEC,EAAkBv9G,OAAOU,QAAQC,QAAQ68G,kBAK3CC,EAAmB,EAEvB,GAAIhC,EACF,GAAIC,GAMF,GAFA4B,EAAe,CAHf/xG,EAAQnS,KAAKgpB,MAAMq5F,EAAWlwG,MAAQ,KACtCC,EAASpS,KAAKgpB,MAAMq5F,EAAWjwG,OAAS,MAIpCwxG,GAA4B,CAC9B,IAAMU,EAAmBtkH,KAAKgpB,OAAO5W,EAASD,GAAS,GACvDA,GAASmyG,EACTlyG,GAAUkyG,EACVD,EAAmB,QAGrBlyG,EAAQnS,KAAKgpB,MAAMq5F,EAAWlwG,MAAQ,KACtCC,EAASpS,KAAKgpB,MAAMq5F,EAAWjwG,OAAS,KACxCiyG,EAAmB,OAIrBjyG,EAASmxG,EACTpxG,EAAQqxG,EACRa,EAAmB,EAGrBH,GAAgBA,GAAgB,CAAC/xG,EAAOC,IAAST,KAAI,SAAAhS,GAAC,OAAQ,IAAJA,KAE1D,IAAM4lC,EACJ3gB,EAAWvL,QACXrZ,KAAKgpB,MAAMw5E,GE5Q2C,SAAC,GAExD,IADL59E,EACI,EADJA,WAAYm0E,EACR,EADQA,cAGMwrB,EACd3/F,EADFxL,eAEF,GAAuC,kBAA5BmrG,EACT,OAAOA,EAET,IAAMC,EAAwBzrB,EAAc3/E,eAAewL,GAE3D,OAAO5kB,KAAKqD,IAAL,MAAArD,KAAI,YAAQ,CACjBwkH,EACA59G,OAAOU,QAAQC,QAAQZ,QAAQ89G,kBAC/BhzG,QAAO,SAACy0D,GAAD,MAAsB,kBAAPA,OF8PMw+C,CAAuB,CAAE9/F,aAAYm0E,mBACzD1/E,EAAS8qG,GAAmB5+E,EAAa8+E,EAMzCM,EAJwB//F,EAAW7L,iBAAmBirB,QAAQ12B,GrFvQxC,SAAC,GAKL,IAJ5B6E,EAI2B,EAJ3BA,MACAC,EAG2B,EAH3BA,OACAwyG,EAE2B,EAF3BA,WACAvrG,EAC2B,EAD3BA,OAEMwrG,EAAe7kH,KAAKgpB,OAAM,IAAIV,MAAO06D,UAAY,KACjD8hC,EAAgB3yG,EAAQ,EAAIA,EAAQ0yG,EAAe1yG,EACnD4yG,EAAiB3yG,EAAS,EAAIA,EAASyyG,EAAezyG,EAE5D,GAAI0yG,EAAgBF,EAAY,CAE9B,IACMI,EAAiBD,EAAiBD,EAClCG,EAAiBF,EAFL/kH,KAAKqD,IAAIyhH,EAAeF,GAI1C,OAAO5kH,KAAKgpB,MAAO3P,EAAS4rG,EAAkBD,GAEhD,OAAO,KqF0PCE,CAAmB,CACjB/yG,QACAC,SACAwyG,WAAYxC,EAAoBjoB,YAChC9gF,WAEF,KAEE6oE,EAAQt9D,EAAW1L,QAAUtS,OAAOU,QAAQoQ,cAAcwB,OAChE6pG,GAAe,GACfx6G,EACEqN,KAAgB/C,QAAQ,CAEtB0E,OACA4Z,QAASixF,EAAoBjxF,QAC7Btb,MAAOusG,EAAoB15G,GAC3BwoC,OAAQ6nD,EAAc7nD,OACtB73B,OAAQsrG,GAAmBtrG,EAC3B6oE,QACAjpE,MAAO2L,EAAW3L,OAAS,EAC3B1R,QAASyqF,GAAmBptE,EAAYqtE,IACxC9/E,MAAOA,GAAS,KAChBC,OAAQA,GAAU,KAClByG,WAAY+L,EAAW/L,WACvBX,OAAQ0M,EAAW1M,OACnBC,YAAayM,EAAWzM,YACxBC,sBAAuBwM,EAAWxM,sBAClCH,WAAY2M,EAAW3M,WACvBK,WAAYsM,EAAWtM,WAEvBD,qBACE4pG,GAAwBr9F,EAAWvM,uBACnCuM,EAAWvM,qBACbK,UACAlB,WAAYoN,EAAWpN,WACvBiB,QAASmM,EAAWnM,QAGpBzD,gBAAiB,CAGfiuE,kBAAmB0hC,EAAkBtrG,EAASsrG,OAAkBtgH,EAChE4Q,uBACAC,UAAWgvG,GAEbx7G,GAAIV,EACJm1E,2BAIL,CACDv4D,EACAw9F,EACArpB,EACA/wF,EACAw6F,GACAl1F,EACA/E,EACA+oF,EACA/5E,EACAgsG,EACApuG,EACAmtG,EACArtG,EACAuuG,EACAnB,EACAxL,EACAkM,EACA9wB,GACA2xB,GACAd,EACA3lC,GACAzkE,EACA7U,IAGF2C,aAAYs6F,MAEZ,IAAMqkB,GAA0B,OAAGvgG,QAAH,IAAGA,OAAH,EAAGA,EAAY9L,mBAnRpC,GAoRyC3Q,mBAClDg9G,IAA8B7mC,IArRrB,qBAoRJxlE,GApRI,MAoRgBs/E,GApRhB,MAwRX+F,2BAAgB,WACVgnB,IACF/sB,GAAsB+sB,MAEvB,CAACA,KAEJhnB,2BAAgB,WACd/F,GAAsB+sB,IAA8B7mC,MAEnD,QAAC15D,QAAD,IAACA,OAAD,EAACA,EAAYnM,UAEhB,IAAM2sG,GAA0B34E,mBAC9B,kBACEusE,GACAA,EAA8B,CAC5BC,qBACAr0F,aACA9P,cAAestG,EACfxtG,YACAqwE,QAASv8E,MAEb,CACEuwG,EACAD,EACAp0F,EACAlc,EACA05G,EACAxtG,IAKEy9E,GACyE,KAA7E,UAACz9E,SAAD,yBAAoD2a,cAApD,yBAA4D7f,YAA5D,eAAkEU,SACP,KAA3D,UAACwE,SAAD,yBAAwC2a,cAAxC,eAAgDnf,QAElD,OAAKwE,GAAcwtG,EAgBjB,oCACG/vB,IACC,kBAAC,GAAD,CAAQn/E,IAAG,UAAKm/E,IAAgBA,aAAcA,GAAcD,cAAeykB,IAE7E,kBAAC,GAAD,CACEjyF,WAAYA,EACZ7c,sBAAuB8uG,EACvBjiG,UAAWA,EACXE,cAAestG,EACfp6G,UAAWA,EACX8sB,YAAaA,GACb0tE,WAAYA,GACZl1F,aAAcA,EACdD,iBAAkBA,EAClBglF,aAAcA,GACdp9E,qBAAsBD,EAAgBC,qBAEtC+oG,wBAAyBhpG,EAAgBE,UAEzCA,UAAWA,EACX4D,mBAAoBA,GACpBs/E,sBAAuBA,GACvBvB,kBAAmBwrB,IAEpB4B,IAAqB,kBAAC,GAAD,CAAcxsG,aAAcmN,EAAWnN,eAC5DshG,GAAgBA,EAAa3oG,OAAS,GACrC,kBAAC,GAAD,KACE,kBAAC,GAAD,CACE2oG,aAAcA,EACd9zB,QAASv8E,EACTkc,WAAYA,EACZ9P,cAAestG,KAIpBgD,IAjDD,oCACE,kBAAC,GAAD,CAGElyG,IAAG,UAAKm/E,IACRA,aAAcA,GACdD,cAAeykB,IAEhBoN,IAAqB,kBAAC,GAAD,CAAcxsG,aAAcmN,EAAWnN,iB,UGtZ/D4tG,GAAwB,SAACn0G,GAAD,OAAsBA,EAAM3G,MAE7C+6G,GAAuBhhE,aAClC+gE,GACAn/F,aAAK,mBAGMq/F,GAAwBjhE,aACnC+gE,GACAlvG,aAAK,CAAC,iBAAkB,wBCEpBqvG,GAAiB,SAAC,GAGI,IAF1B5gG,EAEyB,EAFzBA,WACA5c,EACyB,EADzBA,UAEMuP,EAAOqN,EAAWrN,MAAQgX,IACxButD,EAAuBt1E,aAAY++G,IAAnCzpC,mBACFoG,EAAQt9D,EAAW1L,QAAUtS,OAAOU,QAAQoQ,cAAcwB,OACxDzB,EAAiBmN,EAAjBnN,aACFshF,EAAgB7H,GAAuBz5E,GAEvCpK,EAAmB7G,aAAYu9B,MAC/B5xB,EAAS9E,EAAmC8E,MAAQm9B,KACpDl9B,EAAU/E,EAAmC+E,OAASk9B,KAEtD/mC,EAAWC,eAwBjB,OAvBA9B,qBAAU,WACR6B,EAAS0N,KAA2BpD,QAAQ,CAE1C0E,OACA4Z,QAASvM,EAAWlc,GACpBmN,MAAO+O,EAAWlc,GAClBwoC,OAAQ6nD,EAAc7nD,OACtB73B,OAAQyiE,EACRoG,QACAjpE,MAAO2L,EAAW3L,OAAS,EAE3B1R,QAASyqF,GAAmBptE,GAAY,GACxCzS,MAAOA,GAAS,KAChBC,OAAQA,GAAU,KAClByG,WAAY+L,EAAW/L,WACvBZ,WAAY2M,EAAW3M,WACvBS,QAASkM,EAAWlM,QACpBjB,eACA/O,GAAIV,EACJyQ,QAASmM,EAAWnM,cAIjB,MAQIgtG,GAA0B,SAAC,GAGH,IAFnC7gG,EAEkC,EAFlCA,WACA5c,EACkC,EADlCA,UAGA,OADuBxB,aAAY8+G,IAI5B,kBAAC,GAAD,CAAgB1gG,WAAYA,EAAY5c,UAAWA,IAFjD,MC5DE09G,GAAUlM,gBAAK,WAC1B,IAAMmM,EAHoBjhG,MAAMC,KAAK5a,SAASwuG,iBAAiB,mBAI/D,OACE,oCACGoN,EAAMh0G,KAAI,SAACwF,EAAMyiB,GAChB,IAAMgsF,EAAmBthG,aAAcnN,GACjCtC,EAAO,UAAM+wG,EAAiBl9G,GAAvB,YAA6BkxB,GAC1C,OACEisF,uBACE,oCACE,kBAAC,GAAD,CACEjhG,WAAYghG,EACZ59G,UAAW6M,EACXgiG,WAAa1/F,GAEb,kBAAC,GAAD,CACEyN,WAAYghG,EAEZ59G,UAAW6M,EACXgiG,WAAa1/F,KAGjB,kBAAC,GAAD,CACEyN,WAAYghG,EACZ59G,UAAW6M,KAGfsC,UCjCC2uG,GAAU,SACrBj6F,GAGI,IAFJk6F,IAEG,yDADHC,EACG,yCACiC79G,oBAAS,GAD1C,mBACIqH,EADJ,KACgBy2G,EADhB,OAE2B99G,oBAAS,GAFpC,mBAEI+9G,EAFJ,KAEaC,EAFb,OAGqBh+G,mBAAmB,MAHxC,mBAGIuH,EAHJ,KAGU02G,EAHV,KA4BH,OAxBA1/G,qBAAU,WACR,GAAIq/G,GAAkBl6F,EAAK,CACzB,IAAMtkB,EAAUy+G,EACZ,CAAEt3F,QAAS,KAAME,iBAAiB,GAClC,GAEJq3F,GAAc,GACd3pC,EAAc14E,IAAIioB,EAAKtkB,GACpBwuB,MAAK,SAACqV,GACDA,EAAE17B,OACJ02G,EAAQh7E,EAAE17B,MACVy2G,GAAW,GACXF,GAAc,OAGjBpwF,OAAM,SAAC7L,GAEN9kB,QAAQoN,KAAR,yBAA+BuZ,GAAO7B,GACtCm8F,GAAW,GACXF,GAAc,SAGnB,CAACD,EAAYD,EAAgBl6F,IAEzB,CAACnc,EAAMF,EAAY02G,ICjCtBG,GAAYt8G,SAASof,eAAe,cAK7Bm9F,GAAc,SAAC,GAAyB,IAAvB9gH,EAAsB,EAAtBA,SACtBqR,EAAUvQ,iBAAOyD,SAASkiB,cAAc,QAS9C,OARAvlB,qBAAU,WAER,OADA2/G,GAAUj6F,YAAYvV,EAAQlQ,SACvB,WAEL0/G,GAAU/5F,YAAYzV,EAAQlQ,YAE/B,IAEIk/G,uBAAargH,EAAUqR,EAAQlQ,UCL3B4/G,I,OAAa,WACxB,IAAMC,EAAoBlgH,iBAAuB,MAGjDI,qBAAU,WAEJ8/G,EAAkB7/G,SACHC,OAAOC,EAAE2/G,EAAkB7/G,SACnCgnB,MAAM,WAInB,IAAM84F,EAAiBjgH,aAAYq/B,MAC7B6gF,EAAwBlgH,aAAY++C,MACpCohE,EAAyBngH,aAAYk/C,MAErCnU,EAAgC,IAAnBk1E,EACf,EACCC,EAAwBD,EAAkB,IAE/C//G,qBAAU,WACW,MAAf6qC,GACFllB,YAAW,WAETzlB,OAAOC,EAAE2/G,EAAkB7/G,SAASgnB,MAAM,QAC1C/mB,OAAOggH,QACPhgH,OAAO0qG,UA5BqD,OA+B/D,CAAC//D,IAGJ,IAAMs1E,EAAkBF,GAAsB,UACtC3mH,KAAKgpB,MAAMuoB,GAD2B,cACVo1E,GAGpC,OACE,kBAAC,GAAD,KACE,yBACEphH,IAAKihH,EACL/gH,UAAU,aACViD,GAAG,aACHovF,UAAW,EACXD,KAAK,SACLivB,kBAAgB,kBAChBC,gBAAc,QACdC,gBAAc,UAEd,yBAAKvhH,UAAU,wBAAwBoyF,KAAK,YAC1C,yBAAKpyF,UAAU,iBACb,yBAAKA,UAAU,gBACb,4BACEE,KAAK,SACLF,UAAWG,KACT,QACA,CAAE,uCArDQ,IAuDZqhH,eAAa,QACbC,aAAW,SAEX,0BAAMC,cAAY,QAAlB,SAEF,wBAAI1hH,UAAU,cAAciD,GAAG,mBAA/B,wCAIF,yBAAKjD,UAAU,cAAf,8EAEE,yBACEA,UAAU,mCACV6D,MAAO,CAAEC,OAAQ,QAEjB,yBACEb,GAAG,wBACHjD,UAAU,iCACVoyF,KAAK,cACLuvB,gBAAe71E,EACf81E,gBAAe,EACfC,gBAAe,IACfh+G,MAAO,CACLssG,SAAU,MACVh+F,MAAM,GAAD,OAAK25B,EAAL,OAGP,0BACE7oC,GAAG,4BACHY,MAAO,CACLqhG,YAAa,GACbnY,WAAY,EACZniD,SAAU,QACVu+B,UAAW,OACXh3D,MAAO,OACP4wB,SAAU,WACVpK,QAAS,QACTgS,MAAO,UAGRy2E,KA/BT,yEAqCA,yBAAKphH,UAAU,uBCjHd8hH,GAAuB1oC,IAAOnrD,IAAV,kFAAGmrD,CAAH,6EAEpBC,YAAU,GACPI,YAAS,mBAGNJ,YAAU,IAGhB0oC,GAAW3oC,IAAOnrD,IAAV,sEAAGmrD,CAAH,iDAKR4oC,GAAa5oC,IAAOnrD,IAAV,wEAAGmrD,CAAH,MAIV6oC,GAAiB7oC,IAAOnrD,IAAV,4EAAGmrD,CAAH,MAId8oC,GAAkB9oC,IAAO5zD,EAAV,6EAAG4zD,CAAH,0BAEfK,YAAS,SAIT0oC,GAAqB/oC,YAAO8oC,IAAV,gFAAG9oC,CAAH,MAElBgpC,GAAahpC,YAAO8oC,IAAV,wEAAG9oC,CAAH,qBAIVipC,GAAcjpC,YAAO8oC,IAAV,yEAAG9oC,CAAH,qBAIXkpC,GAAelpC,YAAO8oC,IAAV,0EAAG9oC,CAAH,qBAIZw1B,GAAYx1B,IAAOnrD,IAAV,uEAAGmrD,CAAH,6CACNC,YAAU,GACAI,YAAS,cAGtB8oC,GAAYnpC,IAAOnrD,IAAV,wEAAGmrD,CAAH,kFACNC,YAAU,IAMbmpC,GAAgBppC,IAAOgX,KAAV,4EAAGhX,CAAH,qBCrDbqpC,GAAqB,kBAChC,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC,GAAD,6BAGA,kBAAC,GAAD,CAAsBp7E,KAAK,sCAAsChV,OAAO,UAAxE,oBAIF,kBAAC,GAAD,CAAcgV,KAAK,sCAAsChV,OAAO,UAC9D,uBAAGryB,UAAU,oBAGjB,kBAAC,GAAD,MACA,kBAAC,GAAD,KACE,kBAAC,GAAD,4BAGA,kBAAC,GAAD,CAAeqnC,KAAK,oCAAoChV,OAAO,UAC7D,uBAAGryB,UAAU,oBAEf,kBAAC,GAAD,CAAgBqnC,KAAK,yCAAyChV,OAAO,UACnE,uBAAGryB,UAAU,wBCtBR0iH,GAA2B,SAAC,GAE3B,IADZ3iH,EACW,EADXA,SAEMqR,EAAUvQ,iBAAOyD,SAASw9B,cAAc,kCAC9C,OAAOs+E,uBAAargH,EAAUqR,EAAQlQ,UCS3ByhH,I,OAAyBvpC,aAVR,SAAC,GAAD,IAC5Bp5E,EAD4B,EAC5BA,UACGC,EAFyB,qCAI5B,yBAAKD,UAAWA,GAEd,kBAAC,IAAD,iBAAoBC,EAApB,CAA0B2iH,aAAa,SAIR,kGAAGxpC,CAAH,4dbnBA,ea0BtBK,YAAS,CAAC,UAAW,gBAOhBA,YAAS,CAAC,MAAO,aACXA,YAAS,SAKfA,YAAS,CAAC,QAAS,YACbA,YAAS,WASTA,YAAS,WAGTA,YAAS,WCpClB67B,GAbF,SAAC,GAAD,IAAG7mF,EAAH,EAAGA,KAAM1uB,EAAT,EAASA,SAAU8iH,EAAnB,EAAmBA,UAAnB,OACX,kBAAC,IAAD,CACE36E,IAAK,EACLstD,OAAQqtB,GAAa,CAAErT,KAAM,QAAS7kE,MAAO,aAC7C8iE,WAAW,SACXzlE,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBlkC,OAAO,UAEJ2qB,GAAQ,kBAAC,IAAD,CAAMrP,KAAMqP,EAAMkc,MAAM,SAAS7mC,OAAO,SAClD/D,ICPC+iH,GAAmB,SAAAr3G,GACvB,IAAMhC,EAAWgC,EAAMs3G,OAAOt5G,SACxBQ,EAAOwB,EAAMs3G,OAAOj5G,eAAeG,KAEzC,OAAKR,GAAaQ,EACXR,EAAWA,EAASb,SAAWqB,EAAKrB,SADZ,IAgBlBu4D,GAZF,WACX,IAAMv4D,EAAW7H,aAAY+hH,IAE7B,OACE,kBAAC,GAAD,CAAMr0F,KAAK,eACT,kBAAC,IAAD,CAAM4Z,cAAA,0BAAgCz/B,GAAY+hC,MAAM,SAASzD,QAAM,EAAC87E,UAAQ,GAC7Ep6G,KChBHq6G,GAAoB,CAAC,UAAW,SAcvBC,GAZO,SAAC,GAAD,IAAGnjH,EAAH,EAAGA,SAAUojH,EAAb,EAAaA,QAAb,OACpB,kBAAC,IAAD,eACEn7E,QAAS,CAAC,IAAK,GACfF,OAAQ,CAAC,GACTD,WAAYo7E,GACZ1/F,MAAO,IACD4/F,GAAW,CAAEhxG,MAAO,CAAEvU,IAAK,WAEjC,kBAAC,IAAD,CAAW+sC,MAAM,UAAU5qC,KCFhBqjH,GARI,SAACjhH,EAAD,GAA2B,IAAfghH,EAAc,EAAdA,QACvBE,EAAiC,oBAAZlhH,EAAyBA,IAAYA,EAChE,MAAuB,kBAAZA,GAAwBghH,EAC1B,kBAAC,GAAD,CAAeA,QAASA,GAAUE,GAEpCA,GCKMC,GATC,SAAC,GAA6C,IAA3CvjH,EAA0C,EAA1CA,SAAUoC,EAAgC,EAAhCA,QAASghH,EAAuB,EAAvBA,QAAYljH,EAAW,iDACrDsjH,EAAoBpgH,uBAAY,kBAAMigH,GAAWjhH,EAAS,CAAEghH,cAAY,CAAChhH,EAASghH,IACxF,OACE,kBAAC,IAAD,eAAazV,OAAK,EAACnsG,WAAS,EAACY,QAASohH,GAAuBtjH,GAC1DF,ICsCQyjH,GAxCC,WACd,IAAM1gH,EAAWC,eACXzC,EAAU6C,uBAAY,kBAAML,EAAS2D,kBAAyB,CAAC3D,IACrE,OACE,kBAAC,IAAD,CAAMolC,IAAK,EAAGG,cAAY,yBACxB,kBAAC,GAAD,CAASlmC,QAAQ,4BAA4BkyB,MAAM,SAASq5E,OAAK,GAC/D,kBAAC,IAAD,CACEhkE,QAAQ,aACRslE,SAAO,EACPC,UAAU,OACVwU,cAAY,QACZC,cAAY,qBACZj1F,KAAK,cAGT,kBAAC,GAAD,CAAStsB,QAAQ,4BAA4BkyB,MAAM,SAASq5E,OAAK,GAC/D,kBAAC,IAAD,CACEptG,QAASA,EACTopC,QAAQ,aACRslE,SAAO,EACPC,UAAU,OACVwU,cAAY,QACZC,cAAY,qBACZj1F,KAAK,YAGT,kBAAC,GAAD,CAAStsB,QAAQ,sBAAsBkyB,MAAM,SAASq5E,OAAK,GACzD,kBAAC,IAAD,CACEhkE,QAAQ,aACRslE,SAAO,EACPC,UAAU,OACVwU,cAAY,QACZC,cAAY,uBACZj1F,KAAK,aC4CAk1F,GApCQ,SAAC,GAAwC,IAnChC15G,EAmCN25G,EAAqC,EAArCA,eAClBC,EAA4C,WADW,EAArBC,eAAqB,EAErCzD,GA3CS,+DA2C2BwD,GAAwB,GAA7EE,EAFsD,sBAIhC1D,GA3C7B,kFA2CsEwD,GAA/DG,EAJsD,sBAKjC3D,GAAO,OAAC2D,QAAD,IAACA,OAAD,EAACA,EAAoBC,UAAW1lF,QAAQylF,IAApEE,EALsD,oBAOvDC,EAAgBN,EA1CY,QAAJ55G,EA2CF85G,SA3CM,IAAI95G,OAAJ,EAAIA,EAAMquB,SAAShxB,QAAQ,sBAAuB,IA4ChF48G,EA9C8B,SAAAj6G,GAAI,OAAIA,EAAK3C,QAAQ,sBAAuB,IA+C1E88G,CAA4BF,GAC5B,KAEJ,IAAKC,EACH,OAAO,KAET,IAAME,GAjDc,SAACvsF,EAAIC,GACzB,GAAID,IAAOC,EACT,OAAO,EAET,IAAIC,EAAKF,EAAG7sB,MAAM,KACdgtB,EAAKF,EAAG9sB,MAAM,KAEditB,EAAKzV,SAASuV,EAAG,GAAG5Q,UAAU,EAAG,GAAI,IACrC+Q,EAAK1V,SAASwV,EAAG,GAAG7Q,UAAU,EAAG,GAAI,IACzC,QAAI8Q,EAAKC,KACLD,EAAKC,MAGTD,EAAKzV,SAASuV,EAAG,GAAI,MACrBG,EAAK1V,SAASwV,EAAG,GAAI,QAEjBC,EAAKC,IAGTH,EAAKA,EAAG,GAAG/sB,MAAM,KACjBgtB,EAAKA,EAAG,GAAGhtB,MAAM,QAEjBitB,EAAKzV,SAASuV,EAAG,GAAI,MACrBG,EAAK1V,SAASwV,EAAG,GAAI,QAEjBC,EAAKC,MAETD,EAAKF,EAAGrtB,OAAS,EAAI8X,SAASuV,EAAG,GAAI,IAAM,IAC3CG,EAAKF,EAAGttB,OAAS,EAAI8X,SAASwV,EAAG,GAAI,IAAM,QAqBZJ,CAAc+rF,EAAgBO,GAE7D,OACE,kBAAC,GAAD,CAAShiH,QAASkiH,EAAwB,aAAe,gBAAiBhwF,MAAM,SAASq5E,OAAK,GAC5F,kBAAC,IAAD,CACErlE,cAAY,gCACZqB,QAAQ,aACRulE,UAAU,OACVqV,OAAK,EACLtV,SAAUqV,EACVpgC,QAASogC,EACTjlG,KAAMilG,EAAwB,iBAAmB,SACjD51F,KAAM41F,EAAwB,iBAAmB,SACjDZ,cAAY,QACZC,cAAY,mBCzEda,GAAkB,SAAA94G,GAAU,IACxBxB,EAASwB,EAAMs3G,OAAOj5G,eAAtBG,KAER,OAAKA,EAGE,CACLggB,QAFmDhgB,EAA7CggB,QAGN65F,eAHmD75G,EAApCigB,iBAFC,MAgBLs6F,GAPC,WACd,IAAMv6G,EAAOlJ,aAAYwjH,IACzB,OACEt6G,GAAQ,kBAAC,GAAD,CAAgB25G,eAAgB35G,EAAKggB,QAAS65F,eAAgB75G,EAAK65G,kBCDhEzvB,GATG,WAA2B,IAA1BowB,EAAyB,0DACf/hH,qBAAW+hH,GADI,mBACnCvnH,EADmC,KAC5BwnH,EAD4B,KAEpCC,EAASxhH,uBAAY,kBAAMuhH,GAAU,SAAAjnE,GAAQ,OAAKA,OAAW,IAC7DmnE,EAAWzhH,uBAAY,kBAAMuhH,GAAU,KAAO,IAC9CG,EAAY1hH,uBAAY,kBAAMuhH,GAAU,KAAQ,IAEtD,MAAO,CAACxnH,EAAOynH,EAAQC,EAAUC,ICL7BC,GAAsB,SAACr3G,GAAD,MAAM4D,EAAN,uDAAqB,GAArB,iBAC1BrD,KAAKC,MAAMhK,aAAaqgB,QAAQ7W,WADN,QACe4D,GAE5B0zG,GAXS,SAACt3G,EAAK4D,GAAkB,IAAD,EACnB3O,oBAAS,kBAAMoiH,GAAoBr3G,EAAK4D,MADrB,mBACtCnU,EADsC,KAC/B8nH,EAD+B,KAK7C,OAFA/jH,qBAAU,kBAAMgD,aAAaC,QAAQuJ,EAAKO,KAAKiZ,UAAU/pB,MAAS,CAACuQ,EAAKvQ,IAEjE,CAACA,EAAO8nH,I,UCHJC,GAAgB7rC,IAAOnrD,IAAV,4EAAGmrD,CAAH,kFAUb8rC,IAFa9rC,YAAO+rC,MAAV,yEAAG/rC,CAAH,MAEUA,IAAOnrD,IAAV,gFAAGmrD,CAAH,oJAEnBK,YAAS,UAODJ,YAAU,GAAQA,YAAU,GAE/BA,YAAU,KAKb+rC,GAAgBhsC,IAAOnrD,IAAV,4EAAGmrD,CAAH,mBACbC,YAAU,IAGVgsC,GAAajsC,YAAOnqE,KAAV,yEAAGmqE,CAAH,+EAGN,qBAAGksC,SAA2B,QAAU,SAC/C7rC,YAAS,WCjCN8rC,GAAYnsC,IAAOnrD,IAAV,oEAAGmrD,CAAH,yKAGPC,YAAU,KACTA,YAAU,IAGJI,YAAS,kBACpBA,YAAS,QzBAS,IyBKhB+rC,GAAmBpsC,IAAOgX,KAAV,2EAAGhX,CAAH,sJACbC,YAAU,GAGdA,YAAU,GAEJA,YAAU,GAGPA,YAAU,GAGlBI,YAAS,aAGTgsC,GAAyBrsC,IAAOgX,KAAV,iFAAGhX,CAAH,gGACvBC,YAAU,GAAMA,YAAU,IAC3B,gBAAG4Y,EAAH,EAAGA,WAAYlxE,EAAf,EAAeA,MAAf,OAA2B04D,YAASwY,EAAa,UAAY,OAAlCxY,CAA0C,CAAE14D,YAMrE04D,YAAS,aAITisC,GAAiBtsC,aCxCN,SAAC,GASlB,IAAD,EARJl3E,EAQI,EARJA,MACAnC,EAOI,EAPJA,SACAC,EAMI,EANJA,UACA2lH,EAKI,EALJA,YAKI,IAJJhY,cAII,SAHJiY,EAGI,EAHJA,aAGI,IAFJC,oBAEI,MAFW,cAEX,EADJC,EACI,EADJA,aAEMhmH,EAAMe,mBAUZ,OACE,kBAACqkH,GAAD,CAAmBllH,UAAWA,GAC5B,kBAAC,KAAD,KACE,kBAAC,KAAD,CAAaF,IAAKA,EAAKmoB,KAAM0lF,EAAQ5lE,QAPvB,WAClB69E,GAAa,IAMkDC,aAAcA,GAClD,oBAAb9lH,EACN4tG,GACE,kBAACyX,GAAD,KACE,kBAAC,KAAD,KAAOrlH,EAAS,CAAEgmH,UAAS,UAAEjmH,EAAIoB,eAAN,aAAE,EAAamvG,KAAKvwG,IAAI+D,MAAMkiH,cAI7D,kBAACX,GAAD,KACE,kBAAC,KAAD,KAAOrlH,KAIb,kBAACklH,GAAD,CAAe3kH,QAxBG,WACtBslH,GAAcjY,KAwBPzrG,GAAUyjH,GAAeA,IACzBG,EACCA,IAEA,kBAACT,GAAD,CAAYjmG,KAAK,gBAAgBkmG,SAAU/mF,QAAQonF,WDDpC,yEAAGvsC,CAAH,gaAOLK,YAAS,UAMpBA,YAAS,QzB9CgB,eyBkDhBJ,YAAU,GACVI,YAAS,mBAWhBusC,GAAe5sC,YAAOnqE,KAAV,uEAAGmqE,CAAH,qCACfK,YAAS,SAKNwsC,GAAc7sC,IAAO8sC,MAAV,sEAAG9sC,CAAH,gNACFK,YAAS,UAEfA,YAAS,kBAUDA,YAAS,YAGpB0sC,GAAa/sC,YAAOgtC,KAAMrZ,MAAM,CAC3CllE,WAAY,iBACZtkB,MAAO,EACPukB,OAAQ,CAAC,EAAG,EAAG,GACf0tD,OAAQ,CAAEga,KAAM,MAAO7kE,MAAO,qBAC9BppC,WAAW,IALU,qEAAG63E,CAAH,8CASVitC,GAAWjtC,IAAOktC,GAAV,mEAAGltC,CAAH,iEAGMK,YAAS,oBEvFrBs6B,mBAjBI,SAAC,GAAsE,IAApE72G,EAAmE,EAAnEA,MAAOqpH,EAA4D,EAA5DA,OAAQC,EAAoD,EAApDA,WAAYv0B,EAAwC,EAAxCA,WAAYw0B,EAA4B,EAA5BA,aAAcC,EAAc,EAAdA,QACnEpmH,EAAU6C,uBACd,kBAAMsjH,EAAavpH,EAAOspH,KAC1B,CAACtpH,EAAOspH,EAAYC,IAEtB,OACE,kBAACjB,GAAD,CACE/3G,IAAKvQ,EACLoD,QAASA,EACTkoC,UAAA,6CAA+Ck+E,EAA/C,cAA4DxpH,GAC5DmrC,cAAY,oBAEZ,kBAAC,IAAD,CAAMsC,MAAOsnD,EAAa,UAAY,QAASs0B,O,sECRxCI,GAAkB,CAAC,UAAW,QAAS,OAAQ,UAEtDC,GAAqB,CACzBhsH,QATa,GAUbD,MATWksH,KAUXpsH,KATUqsH,MAUVC,OATY,QAYDC,GAAsB,SAACt6G,EAAO85G,GAAR,OACjCjsH,KAAKgpB,MAAM7W,EAAQk6G,GAAmBJ,KAE3BS,GAAmB,SAACC,EAAgBV,GAC/C,IAAMW,EAAchzE,aAAI,IAAItxB,KAAK,GAAV,eACpB2jG,EAAaU,IAEhB,OAAQE,aAAYD,IAGhBE,GAAkB,CACtBC,UAAW,QACXC,QAAS,UAKEC,GAAc,CACzB,CAAEjB,OAAQ,iBAAkBrpH,OAAO,IAAaspH,WAAY,WAC5D,CAAED,OAAQ,kBAAmBrpH,OAAO,IAAcspH,WAAY,WAC9D,CAAED,OAAQ,kBAAmBrpH,OAAO,KAAcspH,WAAY,WAC9D,CAAED,OAAQ,eAAgBrpH,OAAO,KAAWspH,WAAY,SACxD,CAAED,OAAQ,eAAgBrpH,OAAO,MAAWspH,WAAY,SACxD,CAAED,OAAQ,gBAAiBrpH,OAAO,MAAYspH,WAAY,SAC1D,CAAED,OAAQ,WAAYrpH,OArCZ4pH,MAqCyBN,WAAY,QAC/C,CAAED,OAAQ,cAAerpH,OAAO,OAAUspH,WAAY,QACtD,CAAED,OAAQ,cAAerpH,OAAO,OAAUspH,WAAY,SAuB3CiB,GAAoB,SAAC1gF,EAAM55B,GACtC,IAAMu6G,EAAgBC,aAAQ5gF,EAAM,qBAChCA,EACA94B,aAAM84B,EAAM,oBAAqBlkB,KAAKC,OAC1C,OAAO7U,aAAM,GAAD,OAAIy5G,EAAJ,YAfc,SAAAv8F,GAC1B,IAAKA,EAAQ,MAAO,SACpB,IAAMy8F,EAAcz8F,EAAOxrB,WAAWsL,MAAM,KACtC48G,EAAWD,EAAY,GAAK,EAAI,IAAM,IACtCE,EAAiBvtH,KAAKC,IAAIotH,EAAY,IAAIjoH,WAC1CooH,EAAS,UAAMF,GAAN,OAAiBC,EAAeE,SAAS,EAAG,IAC3D,OAAOJ,EAAYj9G,OAAS,EAArB,UACAo9G,EADA,YACat4E,OAAwB,GAAjBm4E,EAAY,IAAUK,OAAO,EAAG,IADpD,UAEAF,EAFA,OAS0BG,CAAa/6G,IAAc,wBAAyB0V,KAAKC,QC1C7EqlG,GAvBK,SAAC,GAAD,IAAGC,EAAH,EAAGA,uBAAwBC,EAA3B,EAA2BA,aAAc3B,EAAzC,EAAyCA,QAAzC,OAClB,kBAAC,IAAD,CACEz+E,QAAM,EACNwnE,eAAe,QACfhC,WAAW,QACX3pG,OAAQ,CAAElG,IAAK,SACfklC,SAAU,CAAEirE,SAAU,UACtB1lE,cAAY,eAEXm/E,GAAYt7G,KAAI,gBAAGq6G,EAAH,EAAGA,OAAQrpH,EAAX,EAAWA,MAAOspH,EAAlB,EAAkBA,WAAlB,OACf,kBAAC,GAAD,CACE/4G,IAAKvQ,EACLA,MAAOA,EACPqpH,OAAQA,EACRC,WAAYA,EACZC,aAAc2B,EACdn2B,WAAYo2B,IAAiBnrH,EAC7BwpH,QAASA,S,UCuEF4B,GAlFU,SAAC,GAA4D,IAA1DF,EAAyD,EAAzDA,uBAAwBlrH,EAAiC,EAAjCA,MAAOspH,EAA0B,EAA1BA,WAAYE,EAAc,EAAdA,QAC/D6B,EAAgB,kBAAOrrH,GAAS,EAAI8pH,IAAqB9pH,EAAOspH,GAAc,GADD,EAE/C9jH,mBAAS6lH,GAFsC,mBAE5EC,EAF4E,KAEhEC,EAFgE,OAG1C/lH,oBAAS,GAHiC,mBAG5EgmH,EAH4E,KAG5DC,EAH4D,KAMnF1nH,qBAAU,kBAAMwnH,EAAcF,OAAkB,CAACrrH,IAEjD,IAAM2nG,EAAW1hG,uBAAY,SAAAiB,GAAC,OAAIqkH,EAAcrkH,EAAEiuB,OAAOn1B,SAAQ,IAE3D0rH,EAASzlH,uBACb,SAAAiB,GACE,IAAMykH,EAAe/iG,OAAO1hB,EAAE0kH,cAAc5rH,OACtC6rH,GACHjjG,OAAOqoB,MAAM06E,IAAiB/iG,OAAOkjG,UAAUH,IAAiBA,EAAe,EAC5EI,EAAa90E,aAAI,IAAItxB,KAAK,GAAV,eACnB2jG,EAAaqC,IAIhB,OADEE,GAAgBG,aAAQD,IAAe7B,aAAY6B,IFvBxB,SEyBpBb,EAAuBnB,GAAiB4B,EAAcrC,GAAaA,GACxDiC,EAAbvrH,GAAS,EAAkB8pH,IAAqB9pH,EAAOspH,GAA6B,KAE7F,CAACA,EAAYtpH,EAAOkrH,IAGhBe,EAAqBhmH,uBACzB,SAAAimH,GACE,OAAO,WACLhB,EAAuBnB,GAAiBuB,EAAYY,GAAgBA,GACpET,GAAe,MAGnB,CAACH,EAAYJ,IASf,OACE,kBAAC,IAAD,CACE3Y,eAAe,QACfhC,WAAW,SACX3pG,OAAQ,EACR0kC,UAAA,2CAA6Ck+E,GAC7Cr+E,cAAY,oBAEZ,kBAAC,IAAD,aACA,kBAAC49E,GAAD,CACE/oH,MAAOsrH,EACP3jB,SAAUA,EACV+jB,OAAQA,EACRpgF,UAAA,2CAA6Ck+E,EAA7C,aAAyD8B,GACzDngF,cAAY,yBAEd,kBAACq9E,GAAD,CACE/X,OAAQ+a,EACR9C,aAAc+C,EACdhD,YAzBc,kBAClB,kBAAC,IAAD,CAAMlY,WAAW,SAASK,UAAU,EAAO37F,MAAM,QAC/C,kBAAC,IAAD,CAAM61B,QAAS,CAAC,EAAG,EAAG,EAAG,IAAKw+E,GAC9B,kBAACR,GAAD,CAAc5mG,KAAK,oBAuBjB0mG,aAAc,kBAAM,QAEnB,kBACCa,GAAgBz6G,KAAI,SAAAm9G,GAAc,OAChC,kBAAC5D,GAAD,CACEh4G,IAAK47G,EACL/oH,QAAS6oH,EAAmBE,GAC5B7gF,UAAA,uCAAyC6gF,EAAzC,aAA4D3C,GAC5Dr+E,cAAY,qBAEXghF,W,+BC1CAC,I,OAtCI,SAAC,GAAD,IACjBC,EADiB,EACjBA,SADiB,IAEjBC,oBAFiB,aAGjBC,kBAHiB,SAIjBnC,EAJiB,EAIjBA,UACAC,EALiB,EAKjBA,QACA1iB,EANiB,EAMjBA,SACA3L,EAPiB,EAOjBA,QACAC,EARiB,EAQjBA,QARiB,IASjBp4C,kBATiB,MASJ,aATI,MAUjB94B,YAViB,aAWjByhG,iBAXiB,aAYjBC,cAZiB,aAajBC,oBAbiB,aAcjBC,mBAdiB,MAcH,EAdG,MAejBC,uBAfiB,aAgBjBC,yBAhBiB,MAgBG,KAhBH,SAkBjB,kBAAC,KAAD,CACER,SAAUA,EACV1kB,SAAUA,EACV2kB,aAAcA,EACdC,WAAYA,EACZnC,UAAWA,EACXC,QAASA,EACTruB,QAASA,EACTC,QAASA,EACTp4C,WAAYA,EACZ94B,KAAMA,EACNyhG,UAAWA,EACXC,OAAQA,EACRC,aAAcA,EACdC,YAAaA,EACbC,gBAAiBA,EACjBC,kBAAmBA,MCnCVC,GAAkB5wC,IAAO8sC,MAAV,8EAAG9sC,CAAH,kOAGNK,YAAS,UAEfA,YAAS,kBASDA,YAAS,YAGpBwwC,GAAiB7wC,IAAOnrD,IAAV,6EAAGmrD,CAAH,ogCACXK,YAAS,kBAMDA,YAAS,QAIbA,YAAS,kBAGZA,YAAS,QAITA,YAAS,YAIXA,YAAS,QAEFA,YAAS,qBAGdA,YAAS,YAOTA,YAAS,QAMTA,YAAS,UACJA,YAAS,WAKdA,YAAS,WACJA,YAAS,qBAKdA,YAAS,UACJA,YAAS,WAIZA,YAAS,UACJywC,YAAY,CAAC,QAAS,WAAY,IAQzCzwC,YAAS,UACJA,YAAS,WAIZA,YAAS,UACJywC,YAAY,CAAC,QAAS,WAAY,KCvC3CC,GA/CS,SAAC,GAMlB,IAAD,IALJ/qG,YAKI,MALG,GAKH,MAJJliB,aAII,MAJI,GAIJ,EAHJktH,EAGI,EAHJA,cACAC,EAEI,EAFJA,QAEI,IADJC,uBACI,MADc,GACd,EACIn9G,EAAcs0C,eAAdt0C,UADJ,EAEgCzK,mBAAS,IAFzC,mBAEG8lH,EAFH,KAEeC,EAFf,KAGE5jB,EAAW1hG,uBAAY,SAAAiB,GAC3B,IAAM2iC,EAAO3iC,EAAEiuB,OAAOn1B,MACtBurH,EAAc1hF,KACb,IACGwjF,EAAoBpnH,uBAAY,SAAAjG,GACpC,GAAIgsH,aAAQhsH,GAAQ,CAClB,IAAMwqH,EAAgBj8E,aAAOvuC,EAAO,qBACpCurH,EAAcf,MAEf,IACGkB,EAASzlH,uBACb,SAAAiB,GACE,IAAMomH,EAAa/C,GAAkBrjH,EAAEiuB,OAAOn1B,MAAOiQ,GAErD,GADoB+7G,aAAQsB,IAAep0D,aAAQo0D,GAAc,EAChD,CACf,IAAM71F,EAAYyhC,aAAQo0D,GAC1BJ,EAAcz1F,GAAW,kBAAM41F,EAAkBrtH,WAC5CqtH,EAAkBrtH,KAE3B,CAACA,EAAOiQ,EAAWi9G,EAAeG,IAKpC,OAFAtpH,qBAAU,kBAAMspH,EAAkBrtH,KAAQ,CAACA,EAAOqtH,IAGhD,kBAACP,GAAD,CACE9pH,KAAK,OACLkf,KAAMA,EACNliB,MAAOA,EAAQsrH,EAAa8B,EAC5BzlB,SAAUA,EACV+jB,OAAQA,EACRyB,QAASA,EACTttE,YAAautE,EACbjiF,cAAY,sB,SCjCHoiF,GAZO,WAAO,IAAD,EACqBhpE,eAAvC7hC,EADkB,EAClBA,iBAAkBD,EADA,EACAA,iBAC1B,OAAOxc,uBACL,SAAA4jC,GACE,MAAM,GAAN,OAAUpnB,EAAiBonB,EAAM,CAAEia,OAAQ,QAASC,MAAM,IAA1D,YAAsErhC,EAAiBmnB,EAAM,CAC3Foa,MAAM,OAGV,CAACvhC,EAAkBD,KCPV+qG,GAAyB,SAAC/1F,EAAWg2F,GAChD,OAAIh2F,EAAY,EACPi2F,aAAO,IAAI/nG,KAAK8nG,EAAch2F,KAC5BA,GAA2B,IAAdA,EACfi2F,aAAO,IAAI/nG,KAAK8nG,GAAc,IAAI9nG,MAAO06D,UAAwB,IAAZ5oD,KACvD,MAcMk2F,GAXW,SAACvD,EAAWC,GACpC,IAAMoD,EAAgBF,KACtB,OAAOzjF,mBACL,iBAAM,CACJ0jF,GAAuBpD,EAAWqD,GAClCD,GAAuBnD,EAASoD,MAElC,CAACrD,EAAWC,EAASoD,KCkFVG,GA1FW,SAAC,GAOpB,IANLxD,EAMI,EANJA,UACAyD,EAKI,EALJA,aACAxD,EAII,EAJJA,QACAyD,EAGI,EAHJA,WACAZ,EAEI,EAFJA,cACAa,EACI,EADJA,aAEMN,EAAgBF,KADlB,EAE2CI,GAAkBvD,EAAWC,GAFxE,mBAEG2D,EAFH,KAEuBC,EAFvB,KAGIh+G,EAAcs0C,eAAdt0C,UACFi+G,EAAoBjoH,uBACxB,SAACmkH,EAAW+D,GAAZ,OACEC,aAASZ,GAAuBpD,EAAWqD,GAAgBQ,GACvDJ,EAAazD,GACb+D,MACN,CAACF,EAAkBR,EAAeI,IAG9BQ,EAAkBpoH,uBACtB,SAACokH,EAAS8D,GAAV,OACEC,aAASJ,EAAoBR,GAAuBnD,EAASoD,IACzDK,EAAWzD,GACX8D,MACN,CAACH,EAAoBP,EAAeK,IAGhCnmB,EAAW1hG,uBACf,SAAAqoH,GAAU,IAAD,cACsBA,EADtB,GACAlE,EADA,KACWC,EADX,KAGDkE,EAAsBnE,EACxBG,GAAkBh8E,aAAO67E,EAAW,qBAAsBn6G,GAC1Dm6G,EACEoE,EAAoBnE,EACtBE,GAAkBh8E,aAAO87E,EAAS,qBAAsBp6G,GACxDo6G,EAEEoE,EAAqBv1D,aAAQq1D,IAAwB,KACrDG,EAAmBx1D,aAAQs1D,IAAsB,KAEvDtB,EAAcuB,EAAoBC,KAEpC,CAACz+G,EAAWi9G,IAGd,OACE,kBAAC,IAAD,CACEniF,QAAM,EACNwnE,eAAe,SACfhC,WAAW,SACXO,KAAM,CAAE6d,KAAM,GACd3jF,IAAK,EACLJ,OAAQ,CAAC,EAAG,EAAG,EAAG,GAClBO,cAAY,sBAEZ,kBAAC,GAAD,CACEkhF,SAAU2B,EACVrmB,SAAUA,EACVyiB,UAAW4D,EACX3D,QAAS4D,EACThyB,QAAS,IAAIt2E,KACbq2E,QAAS,IAAIr2E,KAAK,YAClB8mG,QAAM,EACNC,cAAY,EACZC,YAAa,EACb9oE,WAAW,oBACX+oE,iBAAiB,EACjBC,kBAAmBE,KAErB,kBAAC,IAAD,CAAMxa,eAAe,SAAShC,WAAW,SAASt7F,MAAM,QACtD,kBAAC,GAAD,CACEiN,KAAK,YACLliB,MAAOguH,EACPd,cAAegB,EACff,QAASY,EACTX,gBAAgB,wBAElB,kBAAC,GAAD,CACElrG,KAAK,UACLliB,MAAOiuH,EACPf,cAAemB,EACflB,QAASY,EACTX,gBAAgB,0BChDXwB,GAzCU,SAAC,GAA4B,IAA1BxE,EAAyB,EAAzBA,UAAWC,EAAc,EAAdA,QAAc,EACZsD,GAAkBvD,EAAWC,GADjB,mBAC5CwE,EAD4C,KAC5BC,EAD4B,OAGFhlF,mBAC/C,kBTqCuB,SAACsgF,EAAWC,GAGrC,MAAO,CACL0E,mBAHyBxgF,aAAO67E,EAAW,wBAI3C4E,iBAHuBzgF,aAAO87E,EAAS,yBSvCjC4E,CAAYJ,EAAgBC,KAClC,CAACD,EAAgBC,IAFXC,EAH2C,EAG3CA,mBAAoBC,EAHuB,EAGvBA,iBAItBjD,EAAajiF,mBACjB,kBT4DyB,SAACsgF,EAAWC,GAAZ,OAC3B6E,aAAqBh2D,aAAQkxD,GAAYlxD,aAAQmxD,IS7DzC8E,CAAcN,EAAgBC,KACpC,CAACD,EAAgBC,IAGnB,OACE,kBAAC,IAAD,CAAMve,WAAW,SAASgC,eAAe,UAAUvnE,IAAK,GACtD,kBAAC,IAAD,CAAMulE,WAAW,SAASgC,eAAe,SAASvnE,IAAK,KACrD,kBAAC,IAAD,CAAWhB,QAAM,EAAColF,WAAW,UAA7B,QAGA,kBAAC,IAAD,CAAWA,WAAW,SAASjkF,cAAY,yBACxC4jF,IAGL,kBAAC,IAAD,CAAM7sG,KAAK,aAAa6gB,KAAK,QAAQ0K,MAAM,WAAWsI,OAAQ,IAC9D,kBAAC,IAAD,CAAMw6D,WAAW,SAASgC,eAAe,SAASvnE,IAAK,KACrD,kBAAC,IAAD,CAAWhB,QAAM,EAAColF,WAAW,UAA7B,MAGA,kBAAC,IAAD,CAAWA,WAAW,SAASjkF,cAAY,uBACxC6jF,IAGL,kBAAC,IAAD,CAAMze,WAAW,SAASgC,eAAe,SAASvnE,IAAK,GACrD,kBAAC,IAAD,CAAWokF,WAAW,UAAtB,KACA,kBAAC,IAAD,CAAW3hF,MAAM,WAAW2hF,WAAW,SAASjkF,cAAY,2BACzD4gF,M,qBC/BLsD,GAAgB,CACpB,CAAErvH,MAJe4pH,MAIH3nH,KAAM,KACpB,CAAEjC,MANgB2pH,KAMH1nH,KAAM,KACrB,CAAEjC,MARkBsvH,IAQHrtH,KAAM,OACvB,CAAEjC,MATkBsvH,IASHrtH,KAAM,OACvB,CAAEjC,MAXmB,IAWHiC,KAAM,MAObstH,GAAc,SAACnF,EAAWC,GAAZ,OAAwBmF,KAAOtiG,SAASk9F,EAAUqF,KAAKpF,KAIrEqF,GAAsB,SAAAxiG,GACjC,IAAIhwB,EAAUG,KAAKC,IAAI4vB,GACjByiG,EAAczyH,EAvBAoyH,IAwBpB,OAAOD,GAAcr+G,QAAO,SAACC,EAAD,GAA2B,IAAnBjR,EAAkB,EAAlBA,MAAOiC,EAAW,EAAXA,KACzC,OA1BmB,MA0BfjC,GAAsB2vH,GAC1B1+G,GAPkB,SAACjR,EAAOspH,GAAR,OAAwBtpH,EAAQ,EAAR,UAAe3C,KAAKG,MAAMwC,IAA1B,OAAmCspH,GAAe,GAOhFsG,CAAc1yH,EAAU8C,EAAOiC,GAC3C/E,GAAoB8C,EACbiR,GAHuCA,IAI7C,KCpBUgrE,GATGC,YAAO0zB,KAAV,2EAAG1zB,CAAH,kDAIFK,YAAS,YACVA,YAAS,aCiBNszC,GArBC,SAAC,GAAmD,IAAjDC,EAAgD,EAAhDA,UAAW1F,EAAqC,EAArCA,UAAWC,EAA0B,EAA1BA,QAAS0F,EAAiB,EAAjBA,WAAiB,EAClBxrE,eAAvC7hC,EADyD,EACzDA,iBAAkBD,EADuC,EACvCA,iBAC1B,OACE,kBAAC,IAAD,CAAMuoB,IAAK,GACT,kBAAC,IAAD,CAAWyC,MAAM,OAAO2hF,WAAW,UAChC3sG,EAAiB2nG,EAAW,CAAErmE,MAAM,IADvC,UACmD,IACjD,kBAAC,IAAD,CAAWtW,MAAOqiF,EAAY,SAAW,YAAaV,WAAW,UAC9D1sG,EAAiB0nG,EAAW,CAAEnmE,MAAM,MAGzC,kBAAC,IAAD,CAAM/hC,KAAK,aAAaurB,MAAOqiF,EAAY,SAAW,YAAa/sF,KAAK,QAAQgT,OAAQ,IACxF,kBAAC,IAAD,CAAWtI,MAAM,OAAO2hF,WAAW,WAC/BW,GAAD,UAAkBttG,EAAiB4nG,EAAS,CAAEtmE,MAAM,IAApD,YACD,kBAAC,IAAD,CAAWtW,MAAOqiF,EAAY,SAAW,YAAaV,WAAW,UAC9D1sG,EAAiB2nG,EAAS,CAAEpmE,MAAM,QCE9B+rE,GAjBK,SAAC,GAA6B,IAA3BF,EAA0B,EAA1BA,UAAW5iG,EAAe,EAAfA,SAChC,OACE,kBAAC,IAAD,CAAM8d,IAAK,GACT,kBAAC,IAAD,CAAM/1B,MAAM,OAAOs9F,eAAe,UAC/Bud,GACC,kBAAC,IAAD,CAAWriF,MAAM,OAAO2hF,WAAW,UAAnC,gBAKJ,kBAAC,IAAD,CAAW3hF,MAAM,OAAO2hF,WAAW,UAChCliG,KC2DM+iG,GAzDep4B,sBAC5B,WAEEj1F,GACI,IAFFQ,EAEC,EAFDA,QAEC,IAFQ47E,aAER,MAFgB,IAEhB,EAF6BC,EAE7B,EAF6BA,IAAK6wC,EAElC,EAFkCA,UAAWI,EAE7C,EAF6CA,aAAcC,EAE3D,EAF2DA,eAAgB3G,EAE3E,EAF2EA,QAE3E,EAC+BhkH,qBAD/B,mBACI4qH,EADJ,KACeC,EADf,KAEGjG,EJNkB,SAAAprC,GAAK,OAC/BA,EAAQ,EAAIwwC,KAAO,IAAI7pG,MAAQsxB,IAAI+nC,EAAO,WAAawwC,KAAOxwC,GIK1CsxC,CAAatxC,GACzBqrC,EJLgB,SAAAprC,GAAG,OAAMA,EAA2BuwC,KAAOvwC,GAA5BuwC,KAAO,IAAI7pG,MIKhC4qG,CAAWtxC,GACrBv0E,EAAmB8lH,aAAqBpvF,MAC9Cr9B,qBAAU,WACR,IAAMyL,EAAQ+/G,GAAYnF,EAAWC,GAASp/E,GAAG,WAC5C6kF,GAAaM,IAAc5gH,GAAO6gH,EAAahzH,KAAKgpB,MAAM7W,IAC3DsgH,GAAaM,GAAe1lH,IAC9BylH,EAAe,CAAEnxC,MAAO3hF,KAAKgpB,MAAM+pG,KACnCC,EAAa,SAGd,CAACjG,EAAWC,EAAS+F,EAAWN,IAEnC,IAAMC,EAAajmF,mBAAQ,kBJhBF,SAACsgF,EAAWC,GAAZ,OAAwBD,EAAUqG,OAAOpG,EAAS,OIgB1CqG,CAActG,EAAWC,KAAU,CAACD,EAAWC,IAC1En9F,EAAW4c,mBACf,kBAAM4lF,GAAoBH,GAAYnF,EAAWC,GAASp/E,GAAG,mBAE7D,CAAC6kF,EAAW1F,EAAWC,IAGzB,OACE,kBAAC,GAAD,CACEplH,QAASirH,EAAe,aAAW,4CACnC/4F,MAAM,SACNq5E,OAAK,GAEL,kBAAC,GAAD,CACED,WAAW,SACXgC,eAAe,SACfvnE,IAAK,EACLpkC,OAAO,OACPqO,MAAO,CAAE9T,IAAK,SACdmC,YAAaF,EACb0nC,QAAS,CAAC,EAAG,GACbloC,IAAKA,EACL0oC,UAAA,mCAAqCk+E,GACrCr+E,cAAY,8BAEZ,kBAAC,GAAD,CACE2kF,UAAWA,EACXzF,QAASA,EACTD,UAAWA,EACX2F,WAAYA,IAEd,kBAAC,GAAD,CAAaD,UAAWA,EAAW5iG,SAAUA,SCkHxCyjG,GA3JQ,SAAC,GAMjB,IALLhpB,EAKI,EALJA,SAKI,IAJJt4F,OAAiBuhH,GAIb,aAJuD,GAIvD,GAJM5xC,MAA8B6xC,EAIpC,EAJ+B5xC,IAI/B,IAHJ9qE,oBAGI,OAHW,IAGX,MAFJq1G,eAEI,MAFM,GAEN,EADJsG,EACI,EADJA,UACI,EAC8BtqH,mBAASorH,GADvC,mBACGxG,EADH,KACcyD,EADd,OAE0BroH,mBAASorH,GAFnC,mBAEGvG,EAFH,KAEYyD,EAFZ,OAGgCjG,GAAgB,aAAc,WAH9D,mBAGGyB,EAHH,KAGewH,EAHf,OAIoCtrH,mBAAS,aAJ7C,mBAIGurH,EAJH,KAIiBC,EAJjB,OAK8B75B,KAL9B,mBAKGsZ,EALH,KAKWgX,EALX,KAKqB9Y,EALrB,KAME/rG,EAAMe,mBAENstH,EAAWhrH,uBAAY,YAA6B,IAA1BmkH,EAAyB,EAAzBA,UAAWC,EAAc,EAAdA,QACzCwD,EAAazD,GACb0D,EAAWzD,KACV,IAEHtmH,qBAAU,WACRktH,EAAS,CACP7G,UAAWwG,EACXvG,QAASwG,MAEV,CAACD,EAAkBC,EAAgBI,IAGtC,IAAMC,EAAejrH,uBAAY,kBAAMgrH,EAAS,CAAE7G,UAAWj2G,EAAck2G,QAAS,MAAM,IAEpF0D,EAAe9nH,uBAAY,SAAAiB,GAC1BA,EAAEiuB,OAAOjT,MACd8uG,EAAgB9pH,EAAEiuB,OAAOjT,QACxB,IAEGivG,EAAelrH,uBACnB,SAAAiB,GACEA,EAAEO,kBACFggH,MAEF,CAACA,IAWG2J,EAAetnF,mBAAQ,kBf3CA,SAAAinF,GAAY,OAAI5G,GAAgB4G,Ge2C1BM,CAAgBN,KAAe,CAACA,IAE7DO,EAAkC,OAAdlH,GAAkC,OAAZC,GAAoBD,IAAcC,EAC5EkH,EAAkBnH,IAAcwG,GAAoBvG,IAAYwG,EAEhEW,EAAyB1nF,mBAAQ,kBAAM31B,IAAc,IACrDs9G,EAAkBrH,IAAcoH,EAEhCtG,EAAyBjlH,uBAC7B,SAACqiG,EAAMghB,GACLwH,EAAcxH,GACd2H,EAAS,CACP7G,UAAW9hB,EACX+hB,QAAS,MAGb,CAAC4G,EAAUH,IAQPY,EACJ9uH,EAAIoB,SAAWysG,EACb,kBAACwY,GAAD,CACE9zF,OAAQvyB,EAAIoB,QACZ2tH,eAAe,EACfx6F,MAAO,CAAE/I,IAAK,SAAUhd,KAAM,QAC9BwgH,MAAOjjB,EACPkjB,eAAgBljB,GAEhB,kBAAC0Z,GAAD,CAAWl9E,cAAY,cACrB,kBAAC,IAAD,CAAMonE,eAAe,UAAUhC,WAAW,SAASt7F,MAAM,OAAO61B,QAAS,CAAC,EAAG,EAAG,EAAG,IACjF,kBAAC,IAAD,CAAMC,QAAM,EAACC,IAAK,EAAGJ,OAAQ,CAAC,EAAG,EAAG,EAAG,IACrC,kBAAC,GAAD,CACEsgF,uBAAwBA,EACxBC,aAAcf,EACdZ,QAASA,IAEX,kBAAC,GAAD,CACE0B,uBAAwBA,EACxBlrH,MAAOoqH,EACPd,WAAYA,EACZE,QAASA,KAGb,kBAACL,GAAD,MACA,kBAAC,GAAD,CACEiB,UAAWA,EACXC,QAASA,EACTwD,aAAcA,EACdC,WAAYA,EACZZ,cApCe,SAAC9C,EAAWC,GACrC4G,EAAS,CAAE7G,YAAWC,YAlFC,SACzByH,EACAC,EACAC,EACAC,GAEI,IADJ/rH,EACG,uDADK,gBAER,GAAIjC,OAAOiuH,UAAW,CACpB,IAAMC,EAAY,CAAEjsH,QAAO4rH,gBAAeC,cAAaC,aAAYC,cACnEhuH,OAAOiuH,UAAUpkG,KAAKqkG,IA2EtBC,CAAY,cAAe,oBAAqB5I,EAASj3E,OAD3B,WAAjB6+E,EAA4B/G,GAAWD,EAAYA,GAAaC,KAmCnE0D,aAAcA,KAGlB,kBAAC,IAAD,CACExd,WAAW,SACXgC,eAAgB+e,EAAoB,UAAY,MAChDr8G,MAAM,OACN61B,QAAS,CAAC,EAAG,GACbE,IAAK,GAEJsmF,GAAqB,kBAAC,GAAD,CAAkBlH,UAAWA,EAAWC,QAASA,IACvE,kBAAC,IAAD,CAAM9Z,WAAW,SAASgC,eAAe,SAASvnE,IAAK,GACrD,kBAAC,IAAD,CACES,MAAM,QACNe,QAAQ,SACRppC,QAAS8tH,EACT3lF,SAAUkmF,EACVnmF,UAAA,oCAAsCk+E,EAAtC,YAAiD4H,GACjDjmF,cAAY,qBAEd,kBAAC,IAAD,CACEM,MAAM,QACNroC,QArFO,WACnBukG,EAAS,CACP3oB,MAAOorC,EACPnrC,IAAKorC,IAEP1b,KAiFYpjE,UAAW+lF,GAAqBC,EAChCjmF,UAAA,oCAAsCk+E,EAAtC,YAAiD4H,GACjDjmF,cAAY,yBAMpB,KAEN,OACE,oCACE,kBAAC,GAAD,CACE/nC,QAAS+tH,EACT3H,QAASA,EACT0G,aAAczf,EACdqf,UAAWA,EACXK,eAAgBxoB,EAChB3oB,MAAO4xC,EACP3xC,IAAK4xC,EACLjuH,IAAKA,IAEN8uH,ICnGQW,GA9DkBxb,gBAAK,YAA6B,IAA1B2S,EAAyB,EAAzBA,QAASsG,EAAgB,EAAhBA,UAC1CwC,EAAoBC,eAEpB7nH,EAAmB8lH,aAAqBpvF,MACxCoxF,EAAqBnxF,QAAQ32B,GAE7BC,EAAe6lH,aAAqBtvF,MACpCuxF,EAAe3oF,mBACnB,kBACE0oF,EACI,CAAExzC,MAAOt0E,EAAiB8E,MAAOyvE,IAAKv0E,EAAiB+E,QACvD,CACEuvE,MAAOr0E,EACPs0E,IAAK,KAEb,CAACuzC,EAAoB9nH,EAAkBC,IAoCzC,OATA5G,qBAAU,WAAO,IACPi7E,EAAeyzC,EAAfzzC,MAAOC,EAAQwzC,EAARxzC,IACTzvE,EAAQwvE,EAAMv8E,WACdgN,EAASwvE,EAAIx8E,WACfwB,OAAO0f,WAAWnU,QAAUA,GAASvL,OAAO0f,WAAWlU,SAAWA,GACpExL,OAAO0f,WAAWqC,2BAA0B,EAAMxW,EAAOC,GAE3D29E,aAAc,CAAE59E,QAAOC,aACtB,CAACgjH,IAEF,kBAAC,GAAD,CACEpjH,OAAQojH,EACRt+G,aAAcxJ,EACdg9F,SArCJ,SAAkCttB,GAAS,IACjC2E,EAAe3E,EAAf2E,MAAOC,EAAQ5E,EAAR4E,IACXD,EAAQ,GAEVszC,EAEEpqH,aAAsB,CACpBsH,MAAOwvE,KAGPwzC,GACFF,EAAkBrqH,iBAIpBqqH,EACEtqH,aAA0B,CACxBwH,MAAOwvE,EACPvvE,OAAQwvE,MAoBZuqC,QAASA,EACTsG,UAAWA,OCrDF7zC,GAJGC,YAAO0zB,KAAV,2EAAG1zB,CAAH,qBAXO,SAAC,GAA0B,IAAxBr4D,EAAuB,EAAvBA,MAAOisG,EAAgB,EAAhBA,UAQ9B,OAJW,SAHMjsG,EAAT3B,KAIF8qG,YAAY8C,EAAY,CAAC,QAAS,WAAa,CAAC,UAAW,QAASA,EAAY,GAAM,GACtF9C,YAAY8C,EAAY,CAAC,QAAS,WAAa,CAAC,UAAW,eAE/C,CAAEjsG,aCRhB6uG,GAAgB,SAAC,GAAD,IAAG5C,EAAH,EAAGA,UAAH,OACpBvzC,YAASuzC,EAAY,CAAC,QAAS,WAAa,CAAC,UAAW,UAW3C6C,GATIz2C,YAAO02C,KAAM/iB,OAAM,kBAAoB,CACxDrjE,QADoC,EAAGsjF,UAClB,UAAY,cADnB,6EAAG5zC,CAAH,8CAIEw2C,GACEA,ICgBLG,GAhBO,SAAC,GAAmC,IAAjC/C,EAAgC,EAAhCA,UAAWgD,EAAqB,EAArBA,eAC5BltH,EAAWC,eAIX0rB,EAAOuY,mBAAQ,kBAVP,SAACgmF,EAAWgD,GAC1B,OAAKhD,EACEgD,EAAiB,YAAc,YADf,aASIC,CAAQjD,EAAWgD,KAAiB,CAAChD,EAAWgD,IAE3E,OACE,kBAAC,GAAD,CAAS7tH,QAAS6qH,EAAY,iBAAmB,gBAAiB34F,MAAM,SAASq5E,OAAK,GACpF,kBAAC,GAAD,CAAYj/E,KAAMA,EAAMnuB,QAAS0sH,EALrB,kBAAMlqH,EAAS2D,iBADhB,kBAAM3D,EAAS4D,aAAuB,CAAEuG,WAAW,MAMC+/G,UAAWA,GACvEA,EAAY,UAAY,YCjBpBkD,GAAoB92C,YAAO0zB,KAAV,8EAAG1zB,CAAH,+CAIZK,YAAS,aAGvB,SAAAI,GAAK,OAAIA,EAAM0vC,UAAN,sBAAiC9vC,YAAS,WAATA,CAAqBI,GAAtD,QAyDEs2C,GAtDEp7B,sBACf,WAeEj1F,GACI,IAdF2oC,EAcC,EAdDA,SACA1oC,EAaC,EAbDA,SAaC,IAZDqwH,eAYC,MAZSxnF,IAYT,EAXDtoC,EAWC,EAXDA,QACA+vH,EAUC,EAVDA,OACA5hG,EASC,EATDA,KASC,IARDuZ,eAQC,MARS,CAAC,EAAG,GAQb,MAPDF,cAOC,MAPQ,CAAC,GAOT,MANDvkB,aAMC,MANO,EAMP,EALD+sG,EAKC,EALDA,QACA/G,EAIC,EAJDA,SAIC,IAHDp3G,aAGC,MAHO,OAGP,EACG4U,EAAQ5jB,uBAAY,WACpBslC,GACAnoC,GAASA,MACZ,CAACA,EAASmoC,IAEb,OACE,kBAACynF,GAAD,CACEpwH,IAAKA,EACLguG,UAAU,EACV2B,eAAe,UACfhC,WAAW,SACXzlE,QAASA,EACTF,OAAQA,EACRvkB,MAAOA,EACPjjB,QAASymB,EACTshB,cAAagoF,EACbl+G,MAAOA,EACPo3G,SAAUA,EACV9gF,SAAUA,GAEV,kBAAC,IAAD,CAAMglE,WAAW,SAASvlE,IAAK,EAAG8lE,MAAI,EAACuiB,MAAM,IAC1B,kBAAT9hG,EACN,kBAAC,IAAD,CAAMrP,KAAMqP,EAAMga,SAAUA,EAAUkC,MAAM,OAAO7mC,OAAO,OAAOqO,MAAM,SAEvEsc,EAEF,kBAAC2hG,EAAD,CAASnf,QAASxoE,EAAW,cAAW7pC,EAAWuT,MAAM,SACtDpS,IAGJuwH,MC1DIE,GAAoBp3C,YAAOq3C,KAAI1jB,MAAM,CAAE/kE,QAAS,CAAC,GAAIF,OAAQ,CAAC,KAA7C,0EAAGsxC,CAAH,qBAIxBs3C,GAAgB,SAAC,GAAD,IAAGC,EAAH,EAAGA,WAAYhoF,EAAf,EAAeA,MAAO0nF,EAAtB,EAAsBA,OAAtB,IAA8BxhB,cAA9B,MAAuC2hB,GAAvC,SACpB,kBAAC3hB,EAAD,CAAQxmE,cAAagoF,EAAQ/vH,QAASqwH,GACnChoF,IAWUioF,GAPG,SAAC,GAAD,QAAGjjB,cAAH,SAAmBgjB,EAAnB,EAAmBA,WAAYhoF,EAA/B,EAA+BA,MAAO5oC,EAAtC,EAAsCA,SAAUswH,EAAhD,EAAgDA,OAAQxhB,EAAxD,EAAwDA,OAAxD,OAChB,kBAAC,IAAD,CAAM5mE,QAAM,GACV,kBAAC,GAAD,CAAe4mE,OAAQA,EAAQ8hB,WAAYA,EAAYhoF,MAAOA,EAAO0nF,OAAQA,IAC7E,kBAAC,IAAD,CAAapoG,KAAM0lF,GAAS5tG,KCEjB8wH,IChBQz3C,YAAO0zB,KAAMC,MAAM,CACxC+jB,WAAY,WACZhtH,OAAQ,MACRgkC,OAAQ,CAAC,EAAG,KAHM,sEAAGsxC,CAAH,MDAO,kBACzB,kBAAC,IAAD,CACEpxC,QAAS,CAAC,EAAG,GACbF,OAAQ,CAAC,GACTD,WAAY,CAAC,UAAW,SACxBtkB,MAAO,EACPksF,eAAe,SACft9F,MAAO,CAAEvU,IAAK,UAEd,kBAAC,IAAD,CAAW+sC,MAAM,UAAjB,gLEFEomF,GAAa33C,YAAO0zB,KAAMC,MAAM,CAAE/kE,QAAS,CAAC,GAAIoqD,KAAM,WAA5C,0EAAGhZ,CAAH,qBAIV43C,GAAW53C,YAAO0zB,KAAMC,MAAM,CAClC9kE,QAAQ,EACRD,QAAS,CAAC,GACVH,WAAY,WACZtkB,MAAO,EACPuf,SAAU,CAAEirE,SAAU,QACtBjmE,OAAQ,CAAC,EAAG,EAAG,GACf31B,MAAO,KAPK,wEAAGinE,CAAH,8CAyEC63C,GAFald,gBA3DR,SAAC,GAAgB,IAAd1hF,EAAa,EAAbA,OACfvvB,EAAWC,eADiB,EAETsxF,eAFS,mBAE3BsZ,EAF2B,KAEnBgX,EAFmB,KAI5B9Y,EAAQ,kBAAM8Y,GAAO,IAiB3B,OACE,kBAAC,WAAD,KACIhX,EAOA,kBAACojB,GAAD,CAAYzwH,QAASqkH,EAAQxyG,MAAM,QACjC,kBAAC,IAAD,CAAMiN,KAAK,eAAeurB,MAAM,OAAOx4B,MAAM,OAAOrO,OAAO,UAP7D,kBAAC,GAAD,CAAS3B,QAAS,kBAAC,GAAD,MAAwBkyB,MAAM,SAASq5E,OAAK,GAC5D,kBAACqjB,GAAD,CAAYzwH,QAASqkH,EAAQxyG,MAAM,QACjC,kBAAC,IAAD,CAAMiN,KAAK,eAAeurB,MAAM,OAAOx4B,MAAM,OAAOrO,OAAO,WAQhEuuB,EAAOnxB,SAAWysG,GACjB,kBAAC,IAAD,CACEt7E,OAAQA,EAAOnxB,QACfmzB,MAAO,CAAE/I,IAAK,SAAUhd,KAAM,QAC9BwgH,MAAOjjB,EACPkjB,eAAgBljB,EAChBtqG,WAAS,GAET,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAUgiB,MAAO,EAAGkL,KAAK,cAAcnuB,QArClC,WACbwC,EAAS4D,aAAuB,CAAEuG,WAAW,KAC7C4+F,MAmCQ,QAGA,kBAAC,GAAD,CAAUtoF,MAAO,EAAGkL,KAAK,eAAenuB,QAnClC,WACdwC,EAAS2D,gBACTolG,MAiCQ,SAGA,kBAAC,GAAD,CAAUtoF,MAAO,EAAGkL,KAAK,mBAAmBnuB,QAjClC,WAClBwC,EAAS4D,aAAuB,CAAEuG,WAAW,KAC7C4+F,MA+BQ,oBCpBGqlB,GAtCQ,WACrB,IAAMpxH,EAAMe,mBACNqH,EAAiBnH,aAAYi8G,MAC7BC,EAA6Bl8G,aAAYm8G,MACzCt1G,EAAmB7G,aAAYu9B,MAC/Br2B,EAAWlH,aAAY04G,MACvBrxG,EAAcrH,aAAYo8G,MAE1B6P,EAAYhmF,mBAChB,kBACEzI,SACGr2B,IAAmB+0G,KACjBr1G,IACAK,IACAG,KAEP,CAACF,EAAgB+0G,EAA4Br1G,EAAkBK,EAAUG,IAG3E,OACE,kBAAC,GAAD,CAAMy6G,WAAS,GACb,kBAAC,GAAD,CACEmK,UAAWA,EACXhlF,QAAS,CAAC,EAAG,GACbzkB,OAAK,EACLzf,OAAO,OACP2pG,WAAW,SACXvlE,IAAK,EACLpoC,IAAKA,GAEL,kBAAC,GAAD,CAAektH,UAAWA,EAAWgD,gBAAiB/S,IACtD,kBAAC,GAAD,CAAa5qF,OAAQvyB,IACrB,kBAAC,GAAD,CAA0BktH,UAAWA,EAAWtG,QAlCxC,mBCZVyK,GAAe,CACnBltC,QAAS,UACT1/D,MAAO,WAYMsrG,GATIz2C,YAAO0zB,KAAMC,OAAM,oBAAGxpF,aAAH,MAAW,IAAX,EAAgB6tG,EAAhB,EAAgBA,OAAQvpF,EAAxB,EAAwBA,WAAxB,MAA0C,CAC9EG,QAAS,CAAC,GAAK,GACfzkB,QACAiyE,SAAQ47B,GAAS,CAAE5hB,KAAM,MAAO7kE,MAAO9C,EAAY5H,KAAM,WAH3C,yEAAGm5C,CAAH,oCAKA,gBAAGvxC,EAAH,EAAGA,WAAH,SAAeupF,OAAuBD,GAAatpF,GAAcA,KCDlEioF,GARF/6B,sBAAW,WAAmDj1F,GAAnD,IAAGC,EAAH,EAAGA,SAAU8nC,EAAb,EAAaA,WAAY8C,EAAzB,EAAyBA,MAAOymF,EAAhC,EAAgCA,OAAWnxH,EAA3C,kEACtB,kBAAC,GAAD,eAAY4nC,WAAYA,EAAYupF,OAAQA,EAAQtxH,IAAKA,GAASG,GAChE,kBAAC,IAAD,CAAW0qC,MAAOymF,EAASvpF,EAAa8C,EAAOzD,QAAM,GAClDnnC,OCADsxH,GAAY,CAChB,cAAe,QACf,cAAe,gBAqDFC,GAlDA,WACb,IAAM3nH,EAAe5I,aAAYwwH,MAE3B7nH,EAASs9B,mBAAQ,kBAAOr9B,EAAe1K,OAAOsN,OAAO5C,EAAaD,QAAU,KAAK,CACrFC,IAJiB,EAOWq9B,mBAC5B,kBACEt9B,EAAOwE,QACL,SAACC,EAAD,GAAsB,IAAdgV,EAAa,EAAbA,OAGN,MAFe,aAAXA,IAAuBhV,EAAIg2E,SAAWh2E,EAAIg2E,SAAW,GAC1C,YAAXhhE,IAAsBhV,EAAI81E,QAAU91E,EAAI81E,QAAU,GAC/C91E,IAET,CAAEg2E,SAAU,EAAGF,QAAS,MAE5B,CAACv6E,IAVKy6E,EAPW,EAOXA,SAAUF,EAPC,EAODA,QAalB,OACE,kBAAC,GAAD,CAAMx1D,KAAK,SACT,kBAAC,GAAD,CACEtsB,QACEgiF,EAAQ,UACDA,EADC,0BACyBA,EAASx5E,OAAS,EAAI,IAAM,IACzD,qBAEN0pB,MAAM,SACNq5E,OAAK,GAEL,kBAAC,GAAD,eAAM7lE,WAAW,QAAQupF,QAAM,GAAKC,IACjCltC,IAGL,kBAAC,GAAD,CACEhiF,QACE8hF,EAAO,UAAMA,EAAN,yBAA8BA,EAAQt5E,OAAS,EAAI,IAAM,IAAO,oBAEzE0pB,MAAM,SACNq5E,OAAK,GAEL,kBAAC,GAAD,eAAM7lE,WAAW,UAAUupF,QAAM,GAAKC,IACnCptC,MC9BIutC,GArBF,WACX,OACE,kBAAC,IAAD,CAAWC,IAAI,UACZ,gBAAG9M,EAAH,EAAGA,OAAQ+M,EAAX,EAAWA,SAAX,OACC,kBAAC,GAAD,CAASvvH,QAAQ,OAAOkyB,MAAM,SAASq5E,OAAK,GAC1C,kBAAC,IAAD,CACErlE,cAAY,qBACZ4mE,UAAU,OACV7vF,KAAK,OACLqP,KAAK,WACLib,QAAQ,aACRslE,QAAS0iB,EACTztC,SAAUytC,EACVpxH,QAASqkH,SCFNqM,GAZE53C,YAAO0zB,KAAMC,MAAM,CAClC9kE,QAAQ,EACRD,QAAS,CAAC,GACVH,WAAY,WACZtkB,MAAO,EACPuf,SAAU,CAAEirE,SAAU,QACtBjmE,OAAQ,CAAC,EAAG,EAAG,GACf31B,MAAO,KAPK,qEAAGinE,CAAH,8CCSCu4C,GATKv4C,YAAOw4C,KAAV,+EAAGx4C,CAAH,iECIFy4C,GAJA98B,sBAAW,WAAsBj1F,GAAtB,IAAG5C,EAAH,EAAGA,MAAO2nG,EAAV,EAAUA,SAAV,OACxB,kBAAC,GAAD,CAAaitB,SAAUhyH,EAAK5C,MAAOA,EAAO2nG,SAAUA,EAAU9nD,YAAY,SAASg1E,cAAY,OCMlF54C,GAPGC,YAAO0zB,KAAMC,MAAM,CACnC9kE,QAAQ,EACRD,QAAS,CAAC,EAAG,EAAG,GAChBlF,SAAU,CAAEirE,SAAU,QACtBjqG,OAAQ,CAAElG,IAAK,WAJF,uEAAGw7E,CAAH,MCOAg3C,GAPCh3C,YAAO0zB,KAAMC,MAAM,CACjC0C,eAAgB,UAChBhC,WAAY,SACZt7F,MAAO,OACP+1B,IAAK,IAJM,uEAAGkxC,CAAH,MCeE44C,GAbI,SAAC,GAAqC,IAAnC5yG,EAAkC,EAAlCA,KAAM+L,EAA4B,EAA5BA,OAAQvJ,EAAoB,EAApBA,IAAKqwG,EAAe,EAAfA,SACjC3xH,EAAU6C,uBAAY,kBAAM8uH,EAASrwG,KAAM,CAACA,EAAKqwG,IAEvD,OACE,kBAAC,GAAD,CAAU1uG,MAAO,EAAGjjB,QAASA,EAAS8vH,QAASA,IAC7C,kBAAC,IAAD,CAAMzlF,MAAM,QAAQvrB,GACpB,kBAAC,IAAD,CAAMurB,MAAM,WAAW2hF,WAAW,UAAlC,OACOnhG,KCZA+mG,GAAY,CACvB,CACEh1H,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,+BACN7U,IAAK,CAAC,eAER,CACE1kB,MAAO,SACPi1H,KAAM,IACN17F,KAAM,gCACN7U,IAAK,CAAC,aAAc,iBAAkB,eAAgB,sBAExD,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,SACN7U,IAAK,CACH,aACA,mBACA,mBACA,oBACA,mBAGJ,CACE1kB,MAAO,wBACPi1H,KAAM,OACN17F,KAAM,SACN7U,IAAK,CACH,oBACA,iBACA,eACA,gBACA,oBAGJ,CACE1kB,MAAO,iCACPi1H,KAAM,MACN17F,KAAM,kBACN7U,IAAK,CAAC,yBAER,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,6BACN7U,IAAK,CACH,iBACA,sBACA,kBACA,oBACA,qBACA,YAGJ,CACE1kB,MAAO,4BACPi1H,KAAM,OACN17F,KAAM,UACN7U,IAAK,CACH,kBACA,uBACA,qBACA,kBACA,cAGJ,CACE1kB,MAAO,kCACPi1H,KAAM,MACN17F,KAAM,8BACN7U,IAAK,CAAC,oBAAqB,qBAE7B,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,8BACN7U,IAAK,CACH,gBACA,wBACA,iBACA,mBACA,iBACA,kBACA,sBACA,YAGJ,CACE1kB,MAAO,gCACPi1H,KAAM,OACN17F,KAAM,kBACN7U,IAAK,CACH,iBACA,qBACA,sBACA,oBACA,kBACA,sBACA,YACA,sBAGJ,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,6BACN7U,IAAK,CACH,kBACA,uBACA,4BACA,oBACA,oBACA,8BACA,8BACA,iCACA,sBACA,uBACA,mBACA,mBACA,YAGJ,CACE1kB,MAAO,iCACPi1H,KAAM,MACN17F,KAAM,sCACN7U,IAAK,CACH,yBACA,iBACA,iBACA,sBACA,sBAGJ,CACE1kB,MAAO,+BACPi1H,KAAM,OACN17F,KAAM,eACN7U,IAAK,CAAC,iBAAkB,0BAE1B,CACE1kB,MAAO,2BACPi1H,KAAM,OACN17F,KAAM,sBACN7U,IAAK,CACH,iBACA,iBACA,wBACA,mBACA,oBACA,kBACA,eACA,iBACA,qBACA,cAGJ,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,6BACN7U,IAAK,CACH,kBACA,iBACA,6BACA,4BACA,0BACA,kBACA,8BACA,qBACA,mBACA,iBACA,mBACA,kBACA,sBACA,yBACA,sBACA,kBACA,YAGJ,CACE1kB,MAAO,2BACPi1H,KAAM,OACN17F,KAAM,iBACN7U,IAAK,CAAC,0BAA2B,wBAAyB,yBAE5D,CACE1kB,MAAO,0BACPi1H,KAAM,MACN17F,KAAM,UACN7U,IAAK,CAAC,oBAER,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,WACN7U,IAAK,CAAC,qBAER,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,yBACN7U,IAAK,CACH,oBACA,oBACA,kBACA,kBACA,gBACA,qBAGJ,CACE1kB,MAAO,kCACPi1H,KAAM,OACN17F,KAAM,SACN7U,IAAK,CAAC,uBAAwB,mBAEhC,CACE1kB,MAAO,2BACPi1H,KAAM,OACN17F,KAAM,uCACN7U,IAAK,CACH,mBACA,kBACA,gBACA,mBACA,uBACA,oBACA,kBACA,mBACA,qBACA,kBACA,qBACA,iBACA,qBACA,iBACA,wBACA,iBACA,kBACA,qBACA,qBACA,wBACA,sBACA,sBACA,wBACA,wBACA,mBACA,mBACA,oBACA,qBACA,kBACA,cAGJ,CACE1kB,MAAO,2BACPi1H,KAAM,OACN17F,KAAM,WACN7U,IAAK,CAAC,mBAAoB,sBAE5B,CACE1kB,MAAO,6BACPi1H,KAAM,MACN17F,KAAM,eACN7U,IAAK,CAAC,qBAER,CACE1kB,MAAO,iCACPi1H,KAAM,QACN17F,KAAM,WACN7U,IAAK,CAAC,sBAER,CACE1kB,MAAO,0BACPi1H,KAAM,MACN17F,KAAM,eACN7U,IAAK,CACH,6BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,uBACA,oBACA,kBACA,gBACA,oBAGJ,CACE1kB,MAAO,2BACPi1H,KAAM,OACN17F,KAAM,qBACN7U,IAAK,CACH,oBACA,gBACA,kBACA,oBACA,iBACA,qBACA,iBACA,mBACA,qBACA,mBACA,cAGJ,CACE1kB,MAAO,0BACPi1H,KAAM,MACN17F,KAAM,YACN7U,IAAK,CAAC,oBAER,CACE1kB,MAAO,2BACPi1H,KAAM,MACN17F,KAAM,aACN7U,IAAK,CAAC,uBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,WACN7U,IAAK,CAAC,kBAER,CACE1kB,MAAO,SACPi1H,KAAM,IACN17F,KAAM,gCACN7U,IAAK,CAAC,kBAAmB,yBAA0B,cAErD,CACE1kB,MAAO,6BACPi1H,KAAM,MACN17F,KAAM,qBACN7U,IAAK,IAEP,CACE1kB,MAAO,uBACPi1H,KAAM,MACN17F,KAAM,SACN7U,IAAK,CAAC,uBAAwB,oBAEhC,CACE1kB,MAAO,2BACPi1H,KAAM,OACN17F,KAAM,iBACN7U,IAAK,CAAC,sBAAuB,cAE/B,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,aACN7U,IAAK,CAAC,oBAAqB,oBAE7B,CACE1kB,MAAO,MACPi1H,KAAM,MACN17F,KAAM,6BACN7U,IAAK,CAAC,uBAAwB,YAEhC,CACE1kB,MAAO,oBACPi1H,KAAM,MACN17F,KAAM,oBACN7U,IAAK,CAAC,qBAAsB,kBAAmB,gBAAiB,kBAElE,CACE1kB,MAAO,oBACPi1H,KAAM,MACN17F,KAAM,iBACN7U,IAAK,CACH,kBACA,kBACA,mBACA,gBACA,kBAGJ,CACE1kB,MAAO,0BACPi1H,KAAM,MACN17F,KAAM,sBACN7U,IAAK,CACH,iBACA,eACA,gBACA,gBACA,gBACA,iBACA,eACA,kBACA,cACA,kBACA,oBACA,qBACA,kBACA,qBACA,uBAGJ,CACE1kB,MAAO,0BACPi1H,KAAM,OACN17F,KAAM,mDACN7U,IAAK,CACH,sBACA,mBACA,iBACA,gBACA,kBACA,mBACA,oBACA,eACA,gBACA,cACA,cACA,oBACA,mBACA,eACA,iBACA,gBACA,kBAGJ,CACE1kB,MAAO,+BACPi1H,KAAM,OACN17F,KAAM,oDACN7U,IAAK,CACH,kBACA,oBACA,kBACA,mBACA,mBACA,gBACA,kBAGJ,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,sCACN7U,IAAK,CAAC,eAAgB,kBAAmB,oBAAqB,gBAAiB,iBAEjF,CACE1kB,MAAO,iCACPi1H,KAAM,OACN17F,KAAM,mCACN7U,IAAK,CAAC,kBAAmB,gBAAiB,gBAAiB,kBAE7D,CACE1kB,MAAO,kCACPi1H,KAAM,QACN17F,KAAM,sBACN7U,IAAK,CACH,iBACA,gBACA,qBACA,gBACA,kBACA,eACA,oBACA,gBACA,gBACA,kBACA,gBACA,oBACA,eACA,cAGJ,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,WACN7U,IAAK,CAAC,oBAER,CACE1kB,MAAO,oBACPi1H,KAAM,MACN17F,KAAM,oBACN7U,IAAK,CAAC,eAAgB,gBAAiB,mBAAoB,oBAE7D,CACE1kB,MAAO,4BACPi1H,KAAM,OACN17F,KAAM,SACN7U,IAAK,CAAC,gBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,QACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,WACN7U,IAAK,CAAC,kBAER,CACE1kB,MAAO,0BACPi1H,KAAM,OACN17F,KAAM,YACN7U,IAAK,CACH,eACA,gBACA,mBACA,kBACA,kBACA,cACA,mBACA,iBACA,cACA,eACA,iBACA,kBACA,iBACA,sBAGJ,CACE1kB,MAAO,6BACPi1H,KAAM,OACN17F,KAAM,mBACN7U,IAAK,CACH,kBACA,mBACA,kBACA,gBACA,sBACA,gBACA,oBACA,gBACA,gBACA,gBACA,iBACA,cAGJ,CACE1kB,MAAO,oBACPi1H,KAAM,MACN17F,KAAM,gDACN7U,IAAK,CACH,kBACA,cACA,mBACA,cACA,eACA,iBACA,kBACA,iBACA,sBAGJ,CACE1kB,MAAO,uBACPi1H,KAAM,MACN17F,KAAM,WACN7U,IAAK,CAAC,oBAER,CACE1kB,MAAO,uBACPi1H,KAAM,MACN17F,KAAM,YACN7U,IAAK,CAAC,mBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,UACN7U,IAAK,CAAC,mBAER,CACE1kB,MAAO,uBACPi1H,KAAM,MACN17F,KAAM,QACN7U,IAAK,CAAC,eAER,CACE1kB,MAAO,uBACPi1H,KAAM,MACN17F,KAAM,UACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,4BACPi1H,KAAM,MACN17F,KAAM,cACN7U,IAAK,CAAC,uBAER,CACE1kB,MAAO,qBACPi1H,KAAM,MACN17F,KAAM,iBACN7U,IAAK,CAAC,YAAa,eAAgB,cAAe,aAAc,gBAElE,CACE1kB,MAAO,0BACPi1H,KAAM,OACN17F,KAAM,UACN7U,IAAK,CACH,qBACA,gBACA,uBACA,kBACA,cACA,iBACA,kBACA,mBACA,iBACA,mBACA,YACA,sBACA,gBACA,mBAGJ,CACE1kB,MAAO,uBACPi1H,KAAM,MACN17F,KAAM,2CACN7U,IAAK,CAAC,eAAgB,gBAAiB,oBAAqB,mBAAoB,iBAElF,CACE1kB,MAAO,cACPi1H,KAAM,OACN17F,KAAM,6BACN7U,IAAK,CAAC,mBAAoB,gBAAiB,qBAE7C,CACE1kB,MAAO,qBACPi1H,KAAM,MACN17F,KAAM,SACN7U,IAAK,CAAC,gBAER,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,oBACN7U,IAAK,CAAC,aAAc,cAAe,cAErC,CACE1kB,MAAO,2BACPi1H,KAAM,MACN17F,KAAM,OACN7U,IAAK,CAAC,cAER,CACE1kB,MAAO,0BACPi1H,KAAM,MACN17F,KAAM,aACN7U,IAAK,CAAC,cAAe,mBAAoB,mBAE3C,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,UACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,UACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,4BACPi1H,KAAM,MACN17F,KAAM,QACN7U,IAAK,CAAC,eAER,CACE1kB,MAAO,0BACPi1H,KAAM,OACN17F,KAAM,qBACN7U,IAAK,CACH,oBACA,aACA,cACA,gBACA,gBACA,YACA,iBACA,gBACA,YACA,mBACA,oBAGJ,CACE1kB,MAAO,qBACPi1H,KAAM,OACN17F,KAAM,gBACN7U,IAAK,CAAC,uBAER,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,qBACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,sCACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,0BACPi1H,KAAM,OACN17F,KAAM,sBACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,YACN7U,IAAK,CAAC,mBAER,CACE1kB,MAAO,6BACPi1H,KAAM,OACN17F,KAAM,sBACN7U,IAAK,CACH,oBACA,cACA,eACA,iBACA,cACA,YACA,kBAGJ,CACE1kB,MAAO,2BACPi1H,KAAM,MACN17F,KAAM,QACN7U,IAAK,CAAC,aAAc,iBAEtB,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,mBACN7U,IAAK,CAAC,eAAgB,iBAExB,CACE1kB,MAAO,wBACPi1H,KAAM,OACN17F,KAAM,0BACN7U,IAAK,CACH,mBACA,eACA,YACA,eACA,kBACA,iBACA,cACA,iBACA,YACA,qBAGJ,CACE1kB,MAAO,gCACPi1H,KAAM,QACN17F,KAAM,cACN7U,IAAK,CAAC,oBAAqB,mBAAoB,cAEjD,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,wCACN7U,IAAK,CAAC,iBAAkB,aAAc,kBAExC,CACE1kB,MAAO,2BACPi1H,KAAM,OACN17F,KAAM,cACN7U,IAAK,CAAC,qBAER,CACE1kB,MAAO,0BACPi1H,KAAM,OACN17F,KAAM,0BACN7U,IAAK,CACH,cACA,oBACA,eACA,gBACA,cACA,iBACA,cAGJ,CACE1kB,MAAO,6BACPi1H,KAAM,OACN17F,KAAM,QACN7U,IAAK,CAAC,mBAAoB,oBAE5B,CACE1kB,MAAO,uBACPi1H,KAAM,MACN17F,KAAM,SACN7U,IAAK,CAAC,gBAER,CACE1kB,MAAO,4BACPi1H,KAAM,MACN17F,KAAM,cACN7U,IAAK,CAAC,kBAAmB,qBAE3B,CACE1kB,MAAO,gCACPi1H,KAAM,QACN17F,KAAM,UACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,wBACN7U,IAAK,CAAC,YAAa,gBAAiB,aAAc,YAAa,kBAEjE,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,QACN7U,IAAK,CAAC,iBAAkB,eAE1B,CACE1kB,MAAO,+BACPi1H,KAAM,OACN17F,KAAM,WACN7U,IAAK,CAAC,qBAAsB,0BAE9B,CACE1kB,MAAO,4BACPi1H,KAAM,OACN17F,KAAM,SACN7U,IAAK,CAAC,qBAER,CACE1kB,MAAO,6BACPi1H,KAAM,OACN17F,KAAM,WACN7U,IAAK,CAAC,qBAAsB,uBAE9B,CACE1kB,MAAO,4BACPi1H,KAAM,OACN17F,KAAM,8BACN7U,IAAK,CAAC,sBAAuB,qBAE/B,CACE1kB,MAAO,6BACPi1H,KAAM,OACN17F,KAAM,qBACN7U,IAAK,CACH,4BACA,aACA,eACA,uBACA,iBACA,iBAGJ,CACE1kB,MAAO,yBACPi1H,KAAM,MACN17F,KAAM,SACN7U,IAAK,CAAC,mBAAoB,qBAE5B,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,UACN7U,IAAK,CAAC,aAAc,gBAAiB,iBAEvC,CACE1kB,MAAO,gCACPi1H,KAAM,OACN17F,KAAM,6BACN7U,IAAK,CACH,uBACA,aACA,gBACA,sBACA,iBACA,iBACA,mBAGJ,CACE1kB,MAAO,4BACPi1H,KAAM,MACN17F,KAAM,cACN7U,IAAK,CAAC,gBAAiB,gBAAiB,qBAE1C,CACE1kB,MAAO,4BACPi1H,KAAM,OACN17F,KAAM,uBACN7U,IAAK,CAAC,qBAAsB,qBAE9B,CACE1kB,MAAO,SACPi1H,KAAM,IACN17F,KAAM,gCACN7U,IAAK,CACH,aACA,mBACA,oBACA,iBACA,gBACA,iBACA,eACA,mBAGJ,CACE1kB,MAAO,qBACPi1H,KAAM,MACN17F,KAAM,OACN7U,IAAK,CAAC,iBAER,CACE1kB,MAAO,wBACPi1H,KAAM,MACN17F,KAAM,UACN7U,IAAK,CAAC,cAAe,iBAAkB,eAAgB,uBAEzD,CACE1kB,MAAO,0BACPi1H,KAAM,MACN17F,KAAM,iCACN7U,IAAK,CAAC,mBAER,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,aACN7U,IAAK,CAAC,aAAc,oBAAqB,kBAAmB,sBAE9D,CACE1kB,MAAO,sBACPi1H,KAAM,MACN17F,KAAM,QACN7U,IAAK,CAAC,kBCj7BJkB,GAAM,IAAID,KAoCHuvG,GAAqB,WAGhC,OAFmB,IAAI1xF,KAAKC,eAAe,UAAW,IACvBC,mBClC3BsxF,GDHsB,WAC1B,IAAMG,EAAW,GACjB,OAAOH,GAAUhkH,QAAO,SAACC,EAAKooB,GAAc,IAClC3U,EAAQ2U,EAAR3U,IAER,IAGE,IAHE,EAGiB,IAAI8e,KAAKC,eAAe,KAAM,CAC/CE,SAAUjf,EAAI,GACd0wG,aAAc,UACb7mF,OAAO3oB,IAEwByK,MAAM,gBAAa,GAC/CglG,EAjBY,SAAAC,GAAY,OAAKA,EAAeA,EAAalrH,QAAQ,SAAK,KAAO,GAiB1DmrH,CATvB,qBAWF,GAAIJ,EAASE,GACX,OAAOpkH,EAAIswC,OAAJ,eAAgBloB,EAAhB,CAA0BpL,OAAQknG,EAASE,MAEpD,IAAMG,EA9BW,SAAAF,GACrB,IAAKA,EAAc,MAAO,KAC1B,IAAM5K,EAAc4K,EAAavnH,MAAM,KACvC,OAAO28G,EAAYj9G,OAAS,EAArB,UACAi9G,EAAY,IADZ,QACkBA,EAAY,GAAK,IAAIjoH,WAAW0lC,OAAO,IAC5DuiF,EAAY,GAyBY+K,CAAeJ,GAGvC,OADAF,EAASE,GAAoBG,EACtBvkH,EAAIswC,OAAJ,eAAgBloB,EAAhB,CAA0BpL,OAAQunG,KACzC,MAAOtuH,GACP,OAAO+J,KAER,ICvBaykH,GAAe3nG,MAAK,SAACzF,EAAGC,GAAJ,OAAUD,EAAE2F,OAAS1F,EAAE0F,UACvD0nG,GAAqBX,GD0BfhkH,QAAO,SAACC,EAAD,GAAgC,IAAxByT,EAAuB,EAAvBA,IAAQ2U,EAAe,wBAE9C,OADA3U,EAAI1iB,SAAQ,SAAA69B,GAAI,OAAK5uB,EAAI4uB,GAAJ,eAAiBxG,EAAjB,CAA2B3U,IAAKmb,OAC9C5uB,IACN,ICyEU2kH,GA1FE,WAAO,IAAD,EACKpwH,mBAAS,IADd,mBACdxF,EADc,KACP8nH,EADO,OAEI3wB,eAFJ,mBAEdsZ,EAFc,KAENgX,EAFM,KAIf7kH,EAAMe,mBACNixH,EAAWjxH,mBAETwiB,EAAmBliB,OAAO0f,WAA1BwC,eAERpiB,qBAAU,WACH6wH,EAAS5wH,SAAYysG,GAC1BmkB,EAAS5wH,QAAQs8B,UAChB,CAACmwE,IAEJ,IAAM7qG,EAAWC,eACXgwH,EAAmBhyH,aAAY2gD,MAE/BsxE,EAAiBhsF,mBAAQ,WAAO,IAAD,EACAqjD,eAA3BzoE,IAAKqxG,OADsB,MACP,GADO,IA3BnB,SAACF,EAAkBE,GACrC,IAAM18F,EAAW08F,IAEQ,YAArBF,EACAX,KAAqBvxF,SACrBkyF,GAEJ,OAAOF,GAAKt8F,KAAYs8F,GAAOt8F,EAAW67F,KAAqBvxF,WAAa,GAsBxC2gB,CAAYuxE,EAAkBE,GAF7B,IAE3B9nG,cAF2B,MAElB,GAFkB,MAEdvJ,WAFc,MAER,GAFQ,EASnC,OALIqxG,IAAiBrxG,GAAKyB,EAAezB,GACrCmxG,IAAqBnxG,GAAK9e,EAASmD,aAAgB,CAAEwH,IAAK,WAAYvQ,MAAO0kB,KAEjF9e,EAASmD,aAAgB,CAAEwH,IAAK,YAAavQ,MAAOo0C,WAAWnmB,MAExDA,IAEN,CAAC4nG,IAEEG,EAAQlsF,mBAAQ,WACpB,OAAK9pC,EACEg1H,GAAUlmH,QACf,gBAAGyqB,EAAH,EAAGA,KAAMtL,EAAT,EAASA,OAAT,OACEsL,EAAKk4E,cAAcxsE,SAASjlC,EAAMyxG,gBAAkBxjF,EAAOgX,SAASjlC,MAHrDg1H,KAKlB,CAACh1H,IAEE2uG,EAAQ,WACZ8Y,GAAO,GACPK,EAAS,KAGLiN,EAAW9uH,uBAAY,SAAAye,GAC3ByB,EAAezB,GACf9e,EAASmD,aAAgB,CAAEwH,IAAK,WAAYvQ,MAAO0kB,KACnDiqF,MAEC,IAEGhH,EAAW1hG,uBAAY,SAAAiB,GAAC,OAAI4gH,EAAS5gH,EAAEiuB,OAAOn1B,SAAQ,IAE5D,OACE,kBAAC,GAAD,CAAM2lH,WAAS,GACb,kBAAC,GAAD,CAAUt/F,MAAO,EAAGjjB,QAASqkH,EAAQ7kH,IAAKA,EAAKswH,QAASA,IACtD,kBAAC,IAAD,CAAMloF,IAAK,GACT,kBAAC,IAAD,CAAMyC,MAAM,WAAW2hF,WAAW,UAAlC,OACO0G,IAGT,kBAAC,IAAD,CAAM5zG,KAAK,eAAeurB,MAAM,OAAOx4B,MAAM,OAAOrO,OAAO,UAE5DhE,EAAIoB,SAAWysG,GACd,kBAAC,IAAD,CACEt7E,OAAQvyB,EAAIoB,QACZmzB,MAAO,CAAE/I,IAAK,SAAUhd,KAAM,QAC9BwgH,MAAOjjB,EACPkjB,eAAgBljB,EAChBtqG,WAAS,GAET,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAQrE,MAAOA,EAAO2nG,SAAUA,EAAU/kG,IAAKgyH,IAC/C,kBAAC,GAAD,KACGoB,EAAMhnH,KAAI,gBAAGuqB,EAAH,EAAGA,KAAMtL,EAAT,EAASA,OAAQvJ,EAAjB,EAAiBA,IAAjB,OACT,kBAAC,GAAD,CACEnU,IAAKgpB,EACLrX,KAAMqX,EACNtL,OAAQA,EACRvJ,IAAKA,EAAI,GACTqwG,SAAUA,Y,gDC/FtBkB,GAAkB/5C,YAAO0zB,KAAMC,MAAM,CAAEhqE,SAAU,aAAlC,8EAAGq2C,CAAH,mBAmENg6C,GAhEA,SAAC,GAAkB,IAAhBC,EAAe,EAAfA,SAAe,EACC3wH,oBAAS,GADV,mBACxB4wH,EADwB,KACdC,EADc,KAEzBC,EAAY3yH,mBACZf,EAAMe,mBAHmB,EAKIkkH,aAAgB76B,IALpB,mBAKxBupC,EALwB,KAKbC,EALa,KAMzBlrH,EAAezH,aAAY4yH,MAC3BprH,EAAWxH,aAAY2f,MAEvB5d,EAAWC,eATc,EAWF5B,OAAOghB,SAA5BO,EAXuB,EAWvBA,OAAQC,EAXe,EAWfA,SACVixG,EAAY/qG,mBAAmBtgB,EAASK,UACxCirH,EAAchrG,mBAAmBnG,EAASC,GAE1CmxG,EAAkBhqF,aACtBthC,EADkC,qBAEpBD,EAASa,YAFW,iBAESwqH,EAFT,mBAE6BC,IAGjE3sH,aAAuB,sBAAsB,SAAA0wB,GAC3C47F,EAAUtyH,QAAU02B,KAGtB3wB,eAEA,IAAM8sH,EAAS5wH,uBAAY,WACzBowH,GAAY,GACZ3sG,YAAW,kBAAM9jB,EAASk/C,YAAiB,CAAEu0B,aAA+B33E,IAAtB40H,EAAUtyH,aAA2B,OAE1F,IA6BH,OA3BAD,qBAAU,WACR,IAAMo2E,EAAU,SAAAjzE,IACV,OAACA,QAAD,IAACA,OAAD,EAACA,EAAGiuB,UACJjuB,EAAEiuB,OAAOse,MAAQmjF,GAAoBR,GAAUS,MAIrD,OADA5yH,OAAOoD,iBAAiB,wBAAyB8yE,GAC1C,kBAAMl2E,OAAOsD,oBAAoB,wBAAyB4yE,MAChE,CAACy8C,EAAiBR,EAAUS,IAE/B9yH,qBAAU,WACR,GAAKoyH,GAAavzH,EAAIoB,SACjBqH,EAASiB,gBAAkBjB,EAASiB,iBAAmBogC,MACvD6pF,EAAL,CAEAC,IALc,IAONnqH,EAA0BhB,EAA1BgB,sBACJA,GAAyBA,EAAsBoB,OAAS,GAC1D7D,aAAkBhH,EAAIoB,QAAS,CAC7BhB,KAAM,0BACN8G,QAASuC,OAIZ,CAAC8pH,EAAU9qH,EAAUkrH,IAGtB,kBAACN,GAAD,CAAiBhrF,GAAG,SAASllC,GAAI8D,KAAmB4pC,IAAKmjF,EAAiBC,OAAQA,KCnDvEC,GAnBc,WAC3B,IAAMlxH,EAAWC,cADgB,EAEPgiH,aAAgB,uBAFT,mBAE1B7nH,EAF0B,KAEnB8nH,EAFmB,OAGiBtiH,mBAASxF,GAH1B,mBAG1B+2H,EAH0B,KAGPC,EAHO,KAK3BC,EAAYhxH,uBAAY,SAAAixH,GACxBA,IACFF,EAAqBE,GACrBpP,EAASoP,IAEXtxH,EAASi/C,YAAiB,CAAEu0B,WAAY89C,OAEvC,IAZ8B,EAcdltH,aAAuB,eAAgBitH,GAE1D,MAAO,CAhB0B,oBAgBfF,ICkBLI,GA/BA,WAAO,IAAD,EACAL,KAAZX,EADY,oBAInB,OAFqBtyH,YAAYooC,OAI7B,kBAAC,GAAD,CACEhnC,QAAQ,oIACRkyB,MAAM,SACNq5E,OAAK,GAEL,6BACE,kBAAC,GAAD,CAAc2lB,SAAUA,KACtBA,GACA,kBAAC,KAAD,CAAc/qF,cAAe,CAAEnmC,QAAS,YACrC,gBAAGmyH,EAAH,EAAGA,WAAY/tG,EAAf,EAAeA,KAAMgwD,EAArB,EAAqBA,QAASg+C,EAA9B,EAA8BA,SAA9B,OACC,kBAAC,IAAD,eACElsF,cAAY,gBACZM,MAAM,UACNF,SAAU8tC,GACL+9C,EAAa,CAAEnsF,GAAI,IAAKd,KAAM9gB,GAAS,CAAEjmB,QAASi0H,W,UCP1DC,GAnBE,SAAC,GAAyD,IAAvD7rF,EAAsD,EAAtDA,MAAOvX,EAA+C,EAA/CA,OAAQqjG,EAAuC,EAAvCA,eAAgBhmG,EAAuB,EAAvBA,KAAMimG,EAAiB,EAAjBA,WAKvD,OACE,kBAAC,IAAD,CACEA,WANqB,WACnBtjG,GACAsjG,GAAYA,KAKdjmG,KAAM,kBAAC,IAAD,CAAMrP,KAAMqP,EAAMwR,KAAK,UAC7B00F,OAAK,EACLC,UAAU,EACVH,eAAgBA,EAChBrjG,OAAQA,GAER,kBAAC,IAAD,KAAOuX,KCEAksF,GAAQ,8C,SCffC,GAAkB,SAAC,GAAD,IAAG/0H,EAAH,EAAGA,SAAH,OAAkB,kBAAC,IAAD,CAAM6qC,SAAS,QAAQ7qC,IAEpDg1H,GAAc,CACzBC,KAAM,CACJ/xH,GAAI,OACJ0lC,MAAO,OACP1B,OAAQ,OACRxQ,KAAM,kBACJ,kBAAC,GAAD,+NAMFhI,KAAM,YACNwmG,MAAO,mBAETC,SAAU,CACRjyH,GAAI,WACJ0lC,MAAO,YACP1B,OAAQ,YACRxQ,KAAM,kBACJ,oCACE,kBAAC,GAAD,kQAKA,kBAAC,GAAD,iWAQJhI,KAAM,eACNwmG,MAAO,uBAETE,SAAU,CACRlyH,GAAI,WACJ0lC,MAAO,WACP1B,OAAQ,WACRxQ,KAAM,kBACJ,oCACE,kBAAC,GAAD,oXAOA,kBAAC,GAAD,gPAKA,kBAAC,GAAD,qHAMJhI,KAAM,gBACNwmG,MAAO,uBAETG,MAAO,CACLnyH,GAAI,QACJ0lC,MAAO,QACP1B,OAAQ,QACRxQ,KAAM,kBACJ,kBAAC,GAAD,sQAMFhI,KAAM,eACNwmG,MAAO,oBAETI,WAAY,CACVpyH,GAAI,aACJ0lC,MAAO,aACP1B,OAAQ,aACRxQ,KAAM,kBACJ,kBAAC,GAAD,4NAMFhI,KAAM,YACNwmG,MAAO,yBAETK,OAAQ,CACNryH,GAAI,SACJ0lC,MAAO,SACP1B,OAAQ,SACRxQ,KAAM,kBACJ,kBAAC,GAAD,0VAOFhI,KAAM,QACNwmG,MAAO,qBAETM,UAAW,CACTtyH,GAAI,YACJ0lC,MAAO,YACP1B,OAAQ,WACRxQ,KAAM,kBACJ,kBAAC,GAAD,sRAMFhI,KAAM,gBACN+mG,MACE,yGAEJC,QAAS,CACPxyH,GAAI,UACJ0lC,MAAO,UACP1B,OAAQ,UACRxQ,KAAM,kBACJ,kBAAC,GAAD,0VAOFw+F,MAAO,qBACPxmG,KAAM,WAERinG,QAAS,CACPzyH,GAAI,UACJ0lC,MAAO,UACP1B,OAAQ,UACRxQ,KAAM,kBACJ,oCACE,kBAAC,GAAD,4JAIA,kBAAC,GAAD,0UAI6D,IAC3D,kBAAC,KAAD,CACEpE,OAAO,SACP+U,IAAI,sBACJC,KAAK,2DAHP,+BAMU,IAXZ,sCAcA,kBAAC,GAAD,2SAKE,kBAAC,KAAD,CACEhV,OAAO,SACP+U,IAAI,sBACJC,KAAK,uDAEJ,IALH,oBAWN5Y,KAAM,YChEKknG,GAlGW,SAAC,GASpB,IARLC,EAQI,EARJA,UACAlN,EAOI,EAPJA,eACAmN,EAMI,EANJA,cACAp/F,EAKI,EALJA,KACAwQ,EAII,EAJJA,OACA6uF,EAGI,EAHJA,gBACAb,EAEI,EAFJA,MACAO,EACI,EADJA,MAEA,OAAII,EAAU10H,SAAWwnH,EAErB,kBAAC,IAAD,CACEqN,UAAQ,EACR1tF,cAAY,wBACZymF,MAAO+G,EACPxhG,MAAO,CAAE/I,IAAK,SAAUhd,KAAM,QAC9B+jB,OAAQujG,EAAU10H,QAClB6tH,eAAgB8G,GAEhB,kBAAC,IAAD,CAAchuF,WAAW,mBACvB,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAMK,IAAK,GACT,kBAAC,IAAD,CAAMyC,MAAM,QAAQvrB,KAAK,YACzB,kBAAC,IAAD,CAAI0oB,OAAQ,CAAC,IA1BN,8CA0BP,MAGF,kBAAC,IAAD,CAAkBC,QAAS8tF,KAE7B,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAM5tF,QAAM,EAAC91B,MAAO,IAAKrO,OAAQ,KAC/B,kBAAC,IAAD,CAAMkkC,QAAS,CAAC,EAAG,EAAG,EAAG,GAAIC,QAAM,EAACC,IAAK,GACvC,kBAAC,IAAD,CAAMulE,WAAW,UACf,kBAAC,IAAD,CAAI3lE,OAAQ,CAAC,IAAKb,GAClB,kBAAC,IAAD,CACE4B,GAAI,CAAEmtF,WAAY,QAClB3tF,cAAY,kBACZP,OAAQ,CAAC,EAAG,EAAG,EAAG,GAClB31B,MAAO,CAAE9T,IAAK,KAEd,kBAAC,KAAD,CAAWiqC,cAAe,CAAEC,SAAU,oBACnC,gBAAGhiB,EAAH,EAAGA,KAAH,OACC,kBAAC,IAAD,CACEoiB,MACE,kBAAC,IAAD,CAAMD,cAAc,OAAOxB,QAAM,EAACyD,MAAM,SAAxC,6BAIFx4B,MAAM,OACN7R,QAAS,kBAAMw1H,EAAgB,CAAEvvG,UACjC8hB,cAAY,cACZF,GAAIvoC,IACJ0kH,OAAK,EACL97E,UAAS,4BAMlB/R,KAEFw+F,GACC,kBAAC,IAAD,CAAMnxH,OAAO,OAAOqO,MAAM,OAAO2wB,SAAS,UACxC,kBAAC,IAAD,CACE+F,GAAI,CACF12B,MAAO,OACPrO,OAAQ,QAEVqkC,GAAG,MACHwI,IAAKskF,KAIVO,GACC,kBAAC,IAAD,CAAM1xH,OAAO,OAAOqO,MAAM,QACxB,kBAAC,IAAD,CAAK02B,GAAI,CAAE12B,MAAO,OAAQrO,OAAQ,SAChC,4BACE5B,MAAK,yBACLiQ,MAAM,OACNrO,OAAO,OACP6sC,IAAK6kF,EACLS,YAAY,IACZC,MAAM,2FACNC,iBAAe,QAO3B,kBAAC,IAAD,QAKD,MCzGH/F,GAAUtjB,IACVspB,GAAkBtpB,IA2ETupB,GAzEO,WAAO,IAAD,EACY3zH,oBAAS,GADrB,mBACnB0mC,EADmB,KACNktF,EADM,OAE8B5zH,mBAAS,MAFvC,mBAEnB6zH,EAFmB,KAEGC,EAFH,KAGpBC,EAAoB51H,mBAEpB61H,EAAkB,WACtBJ,GAAe,IAkBjB,OACE,kBAAC,GAAD,CAAStuF,QAAS,CAAC,EAAG,EAAG,EAAG,GAAIjF,SAAS,WAAWj/B,OAAQ,IAC1D,kBAACsyH,GAAD,CACEpuF,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBE,IAAK,EACLpkC,OAAO,OACP2rG,eAAe,SACfhC,WAAW,UAEX,kBAAC,IAAD,CAAM9iE,MAAM,WAAWkqF,GAAvB,KACA,kBAAC,IAAD,CAAM/0H,IAAK22H,GACT,kBAAC,IAAD,KACGx3H,OAAOlB,KAAKg3H,IAAa7oH,KAAI,SAACuB,EAAK0mB,GAAW,IAAD,EAChB4gG,GAAYtnH,GAAhCk7B,EADoC,EACpCA,MAAOla,EAD6B,EAC7BA,KAAMxrB,EADuB,EACvBA,GACf0zH,EAAoBJ,EAAuBA,EAAqBtzH,GAAK,KAC3E,OACE,kBAAC,GAAD,CACEwK,IAAKA,EACLghB,KAAMA,EACN2C,OAAQnuB,IAAO0zH,EACfhuF,MAAOA,EACP8rF,eAA0B,IAAVtgG,EAChBugG,WAAYrqF,aAAQqsF,GAAiB,WA5BnDF,EA6BsCzB,GAAYtnH,eAQhD,kBAAC,GAAD,eACEmoH,UAAWa,EACX/N,eAAgBt/E,GACZmtF,EAHN,CAIEV,cAAexrF,cAlDI,WACvBisF,GAAe,MAUe,WAC9BE,EAAwB,SAuCpBV,gBA/CkB,SAAC,GAAc,IAAZvvG,EAAW,EAAXA,KACzBplB,OAAOghB,SAASklB,KAAO9gB,QCZrB6pG,GAAUh3C,YAAO0zB,KAAMC,MAAM,CACjC5kE,GAAI,SACJpF,SAAU,WACV0sE,eAAgB,UAChB5nE,WAAY,QACZqoC,OAAQ,GACR/9D,MAAO,OACP61B,QAAS,CAAC,EAAG,EAAG,EAAG,KAPR,kEAAGoxC,CAAH,yBAqCEy1B,GAzBA,WACf,IAAM3lE,EAAenoC,YAAYooC,MAEhC,OAAO,kBAAC,GAAD,KACN,kBAAC,IAAD,CAAMskE,WAAW,SAASvlE,IAAK,GAC7B,kBAAC,GAAD,OAEF,kBAAC,IAAD,CAAMunE,eAAe,MAAMhC,WAAW,SAASvlE,IAAK,GAClD,kBAAC,yBAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,OAEFgB,GAAe,kBAAC,IAAD,CAAKL,GAAI,CAAEhB,WAAY,WAAa9E,SAAS,WAAWzX,IAAI,OAAOhd,KAAK,MAAME,MAAM,OACjG,kBAAC,GAAD,SCpCW2gG,GAPM/1B,YAAOx5E,KAAV,6EAAGw5E,CAAH,8C,UCoBHw9C,GAhBC,SAAC,GAAsC,IAAD,IAAnCltF,eAAmC,MAAzB,UAAyB,EAAXzpC,EAAW,4BAC9CuI,EAAezH,YAAY4yH,MAEjC,OACE,kBAAC,IAAD,eACElmB,WAAW,SACXtlE,GAAG,SACHwI,IAAG,UAAK7G,aAAathC,EAAc,YAAhC,iBAAoDkhC,GACvD8rD,OAAQ,CAAEga,KAAM,MAAOvvE,KAAM,OAC7B9tB,MAAO,CAAEvU,IAAK,SACdkG,OAAQ,CAAElG,IAAK,SACXqC,KCRJ42H,GAAa,WAKjB,OACE,kBAAC,KAAD,CAAQvuF,cAAe,CAAEnmC,QAAS,kBAC/B,gBAAGmyH,EAAH,EAAGA,WAAY/tG,EAAf,EAAeA,KAAMguG,EAArB,EAAqBA,SAArB,OACC,kBAAC,IAAD,CAAMj0H,QAASg0H,EAAa,SAAAlwH,GAAC,OAPnB,SAACA,EAAGmiB,GAClBniB,EAAEO,kBACFxD,OAAOghB,SAASklB,KAAO9gB,EAKcjmB,CAAQ8D,EAAGmiB,IAAQguG,GAApD,eAMFuC,GAAqBj4E,cACzB,qBAAGk4E,aACH,qBAAGzgD,cA4EU0gD,GAzEM,WAAO,IAAD,EACA3iC,eADA,mBAClBsZ,EADkB,KACVgX,EADU,KAEnB0O,EAAWtyH,aAAY+1H,IAEvBG,EAAYjwF,mBAChB,uCACMqsF,EACA,CACE,CACEtzH,SAAU,qBACVO,QAAS,kBACPa,OAAO8mB,KAAK,+BAAgC,SAAU,0BAG5D,IATN,YAUMorG,EAAW,CAAC,CAAE6D,WAAW,IAAU,IAVzC,YAWM7D,EACA,CACE,CACEtzH,SACE,kBAAC,GAAD,CACEsoC,cAAY,yBACZqB,QAAQ,aACR5lC,OAAQ,CAAElG,IAAK,YAKvB,CAAC,CAAEmC,SAAU,kBAAC,GAAD,YAEnB,CAACszH,IAGH,OACE,kBAAC,IAAD,CAAetyG,MAAOo2G,KACpB,kBAAC,IAAD,CACE9uF,cAAY,wBACZqB,QAAQ,aACRslE,SAAO,EACPvgF,KAAK,OACLvsB,MAAM,gBACNkd,KAAK,eACL9e,QAASqkH,IAEVhX,GACC,kBAAC,IAAD,CACE5qE,SAAS,cACTgsF,eAAgBpK,EAChBmK,MAAOnK,EACPoR,UAAU,EACVjuF,OAAQ,CAAC,EAAG,KAEZ,kBAAC,IAAD,CAAMG,QAAM,EAAC91B,MAAO,GAAI01B,WAAW,iBAAiBG,QAAS,CAAC,GAAIzkB,OAAK,GACpE0zG,EAAU/qH,KAAI,SAAC6wB,EAAM5wB,GACpB,OAAI4wB,EAAKm6F,UAAkB,kBAAC,IAAD,CAAMpzH,OAAO,MAAM+jC,WAAW,WAAWp6B,IAAKtB,IAEvE,kBAAC,GAAD,eACEsB,IAAKtB,EACL67B,QAAS,CAAC,EAAG,GACbzkB,MAAO,GACFwZ,EAAKz8B,SAAW,CAAEA,QAASy8B,EAAKz8B,UAEpCy8B,EAAKh9B,iBC3ETq3H,GAbQ,kBACrB,kBAAC,IAAMC,SAAP,KACE,kBAAC,IAAD,CACEllH,MAAM,OACNrO,OAAO,OACPyf,MAAO,EACPiyE,OAAQ,CAAEga,KAAM,MAAO7kE,MAAO,SAAU1K,KAAM,MAAO//B,KAAM,YAE7D,kBAAC,IAAD,CAAM4D,OAAO,MAAM+jC,WAAW,YAAY11B,MAAM,SAChD,kBAAC,IAAD,CAAQsc,KAAK,OAAOga,UAAQ,MCSjB6uF,GAfM,WACnB,IAAM9uH,EAAezH,aAAY4yH,MACjC,OACE,kBAAC,IAAD,CACExrF,GAAG,SACHwI,IAAK7G,aAAathC,EAAc,aAChCtG,MAAM,YACN4B,OAAO,OACPqO,MAAM,OACNqjF,OAAQ,CAAEga,KAAM,MAAOvvE,KAAM,OAC7B6C,SAAS,YCqDAy0F,GA5DA,SAAC,GAAoC,IAAlC5pB,EAAiC,EAAjCA,OAAQgX,EAAyB,EAAzBA,OAAQruC,EAAiB,EAAjBA,WAC1BptC,EAAenoC,YAAYooC,MAEjC,OACE,kBAAC,IAAD,CACElB,QAAM,EACNwnE,eAAe,UACf5nE,WAAW,QACXG,QAAS,CAAC,EAAG,GACb71B,MAAM,OACNs7F,WAAW,SACXvlE,IAAK,EACLnF,SAAS,WACTD,SAAS,UAET,kBAAC,IAAD,CAAMmF,QAAM,EAACC,IAAK,EAAGulE,WAAW,SAAS3pG,OAAO,OAAOg/B,SAAS,UAC9D,kBAAC,IAAD,CAAM6H,MAAM,UAAUvrB,KAAK,eAAetb,OAAO,OAAOqO,MAAM,UAC5Dw7F,GACA,kBAAC,GAAD,CACEl/E,KAAK,kBACLnuB,QAASqkH,EACTL,OAAK,EACLtV,SAAO,EACPtlE,QAAQ,aACRulE,UAAU,SAGb/lE,GAAgBotC,GAAc,kBAAC,GAAD,MAC9BptC,IAAiBotC,GAAc,kBAAC,GAAD,OAElC,kBAAC,IAAD,CAAMruC,QAAM,EAACC,IAAK,EAAGulE,WAAW,UAC9B,kBAAC,IAAD,CAAegkB,IAAI,UAChB,SAAA9M,GAAM,OACL,kBAAC,IAAD,CACEj7E,QAAQ,aACRslE,SAAO,EACPC,UAAU,OACVjvG,UAAU,MACVyuB,KAAK,WACLnuB,QAASqkH,EACTziH,MAAM,kBAIZ,kBAAC,IAAD,CACEwnC,QAAQ,aACRslE,SAAO,EACPC,UAAU,OACVjvG,UAAU,MACVyjH,cAAY,QACZC,cAAY,gBACZj1F,KAAK,OACLvsB,MAAM,aAEPgnC,GAAgB,kBAAC,GAAD,SCzDnBnkB,GAAsB,SAACzlB,GAM3B,IALA,IAE+C6M,EAAO6Y,EAFhDC,EAAK,GACP/qB,EAAI,EACJgrB,GAAK,EAAOC,EAAI,EAGbhZ,GAAK6Y,EAAI1lB,EAAE8lB,OAAOlrB,MAAMmrB,WAAW,IAAI,CAC5C,IAAMC,EAAKnZ,GAAK,IAAMA,GAAK,GACvBmZ,IAAMH,IAERF,IAAKC,GAAK,GACVC,EAAIG,GAENL,EAAGC,IAAMF,EAGX,OAAOC,GAIIM,GAAqB,SAACC,EAAWC,GAK5C,IAJA,IAAMC,EAAKX,GAAoBS,EAAEG,eAC3BC,EAAKb,GAAoBU,EAAEE,eAGxBzrB,EAAI,EAAGwrB,EAAGxrB,IAAM0rB,EAAG1rB,GAAIA,IAC9B,GAAIwrB,EAAGxrB,KAAO0rB,EAAG1rB,GAAI,CACnB,IAAM2rB,EAAIC,OAAOJ,EAAGxrB,IAClB6rB,EAAID,OAAOF,EAAG1rB,IAChB,OAAI2rB,EAAElmB,aAAe+lB,EAAGxrB,IAAM6rB,EAAEpmB,aAAeimB,EAAG1rB,GACzC2rB,EAAIE,EAELL,EAAGxrB,GAAK0rB,EAAG1rB,GAAM,GAAK,EAGlC,OAAOwrB,EAAG/a,OAASib,EAAGjb,QC1BlB6sH,GAAa,SAACC,EAAS7uH,GAAV,gBAA0B6uH,EAA1B,iBAA0C7uH,EAA1C,MAgCJ8uH,GA9BE,SAACvtG,EAAOvhB,EAAU+uH,GACjC,IAAKxtG,IAAUvhB,EAAU,MAAO,GAKhC,IAAM6uH,EArBW,SAAA7uH,GACjB,IAAIgvH,EAAOtzH,SAAS6d,SAASO,OAAO/iB,WAAak4H,UAAUvzH,SAAS6d,SAASQ,SAAShjB,YAStF,OARIi4H,EAAKpqG,SAAL,gBAAuB5kB,EAAvB,QACFgvH,EAAOA,EAAKxwG,UAAU,EAAGwwG,EAAKjtH,OAAS,gBAAS/B,EAAT,KAAqBjJ,WAAWgL,SAGrEitH,EAAKpqG,SAAS,OAChBoqG,EAAOA,EAAKxwG,UAAU,EAAGwwG,EAAKjtH,OAAS,IAGlCitH,EAWSE,CAAWlvH,GAkB3B,MAAO,CACLi0C,WAfiB,CACjBj0C,SAX+C,YAQNuhB,EARM,MAQxCvhB,SAIPwd,IAAI,GAAD,OAAKqxG,EAAL,MAcHM,gBAXsB5tG,EACrBoC,MAAM,GACNrgB,KAAI,WAAeioB,GAAf,MAAGvrB,EAAH,EAAGA,SAAH,MAA0B,CAC7BA,WACAwd,IAAKoxG,GAAWC,EAAS7uH,GACzBua,QAAQ,UAAAw0G,EAAYp6F,MAAK,SAAAzrB,GAAI,OAAIA,EAAKlJ,WAAaA,YAA3C,eAAsD0/E,aAAa,MAE5Er9D,MAAK,SAACzF,EAAGC,GAAJ,OAAUF,GAAmBC,EAAE5c,SAAU6c,EAAE7c,eC1BtCovH,GAVA5+C,YAAO0zB,KAAMC,MAAM,CAChC5kE,GAAI,IACJD,IAAK,EACLulE,WAAY,WAHF,oEAAGr0B,CAAH,oCCkBGjY,GAhBF,SAAC,GAA+B,IAA7Bv4D,EAA4B,EAA5BA,SAAUwd,EAAkB,EAAlBA,IAAKjD,EAAa,EAAbA,OAC7B,OACE,kBAAC,GAAD,CAAQkkB,KAAMjhB,EAAKqpF,eAAe,UAAUznE,QAAS,CAAC,EAAG,EAAG,EAAG,IAC7D,kBAAC,IAAD,CAAMylE,WAAW,SAASvlE,IAAK,GAC7B,kBAAC,IAAD,CAAM9oB,KAAK,OAAOurB,MAAM,WACxB,kBAAC,IAAD,CAAMA,MAAM,SAASq4E,UAAQ,GAC1Bp6G,IAGL,kBAAC,GAAD,CAAMi/B,WAAY1kB,EAAS,UAAY,SAAUwnB,MAAM,SAASpnB,MAAO,IACpEJ,EAAS,OAAS,SCRrB0uG,GAASz4C,YAAOw4C,KAAV,8EAAGx4C,CAAH,iCAMN6+C,GAAa7+C,YAAOnqE,KAAV,kFAAGmqE,CAAH,oBACD,qBAAG5qE,MAAqB,iBAAmB,UAuD3C0pH,GApDS,SAAC,GAAqC,IAAnCr7E,EAAkC,EAAlCA,WAAYk7E,EAAsB,EAAtBA,gBAAsB,EAC3Br1H,oBAAS,GADkB,mBACpDy1H,EADoD,KAC1CC,EAD0C,OAEjC11H,mBAAS,IAFwB,mBAEpDxF,EAFoD,KAE7C8nH,EAF6C,KAIrDqT,EAAiBl1H,uBAAY,kBAAMi1H,GAAY,SAAA3nF,GAAC,OAAKA,OAAI,IACzDo0D,EAAW1hG,uBAAY,SAAAiB,GAAC,OAAI4gH,EAAS5gH,EAAEiuB,OAAOn1B,SAAQ,IAEtDgjH,EAAQl5E,mBAAQ,WACpB,OAAK9pC,EACE66H,EAAgB/rH,QAAO,qBAAGpD,SACtB+c,cAAcwc,SAASjlC,EAAMyoB,kBAFrBoyG,IAIlB,CAACA,EAAiB76H,IAErB,OACE,kBAAC,GAAD,CACEywG,OAAQwqB,EACRxH,WAAY0H,EACZ1vF,MACE,kBAAC,IAAD,CAAM8kE,WAAW,SAASgC,eAAe,WACvC,kBAAC,IAAD,CAAMvoE,QAAM,EAACyD,MAAM,UAAnB,oBAGA,kBAACstF,GAAD,CAAYzpH,OAAQ2pH,EAAU/4G,KAAK,eAAe6gB,KAAK,QAAQ0K,MAAM,WAIzE,kBAAC,IAAD,CAAM1C,QAAM,EAACC,IAAK,EAAGF,QAAS,CAAC,EAAG,EAAG,IACnC,kBAAC,GAAD,CAAQG,GAAG,IAAId,KAAMwV,EAAWz2B,IAAKqpF,eAAe,SAClD,kBAAC,IAAD,CAAMrwF,KAAK,QAAQ6gB,KAAK,QAAQ0K,MAAM,WACtC,kBAAC,IAAD,CAAMA,MAAM,UAAUkS,EAAWj0C,WAElCs3G,EAAMv1G,QAAU,GACf,kBAAC,IAAD,CAAMq9B,QAAS,CAAC,EAAG,EAAG,EAAG,IACvB,kBAAC,GAAD,CACE9qC,MAAOA,EACP2nG,SAAUA,EACVyzB,SAAU,kBAAC,IAAD,CAAMl5G,KAAK,WAAW6gB,KAAK,QAAQ0K,MAAM,SACnDonF,cAAY,KAIlB,kBAAC,IAAD,CAAM9pF,QAAM,EAACC,IAAK,GACfg4E,EAAMh0G,KAAI,gBAAGtD,EAAH,EAAGA,SAAUwd,EAAb,EAAaA,IAAKjD,EAAlB,EAAkBA,OAAlB,OACT,kBAAC,GAAD,CAAM1V,IAAK7E,EAAUA,SAAUA,EAAUwd,IAAKA,EAAKjD,OAAQA,WC1BxDo1G,GA5BU,SAAC,GAAqC,IAAnC17E,EAAkC,EAAlCA,WAAYk7E,EAAsB,EAAtBA,gBAChCvvH,EAAezH,aAAY4yH,MAE3B7zH,EAAMe,mBAHgD,EAKhCqG,aAAuB,0BAA5CsxH,EALqD,oBAe5D,OARAv3H,qBAAU,WACHu3H,GAAsB14H,EAAIoB,SAC/B4F,aAAkBhH,EAAIoB,QAAS,CAC7BhB,KAAM,sBACN8G,QAAS,CAAE61C,aAAYk7E,uBAExB,CAACA,EAAiBl7E,EAAY27E,IAG/B,kBAAC,IAAD,CACE14H,IAAKA,EACLqoC,GAAG,SACHwI,IAAK7G,aAAathC,EAAc,eAChCtG,MAAM,cACNiQ,MAAM,OACNrO,OAAO,OACP0xF,OAAQ,CAAEga,KAAM,MAAOvvE,KAAM,UCgCpBw4F,GA3DO,CACpBC,OAAQ,CACNx2H,MAAO,gBACPC,QAAS,CACP,kBAAC,IAAD,CAAWsL,IAAI,IAAIk9B,MAAM,UAAzB,uDACuD,OAI3DguF,OAAQ,CACNz2H,MAAO,4BACPC,QAAS,CACP,kBAAC,IAAD,CAAWsL,IAAI,IAAIk9B,MAAM,UACvB,kBAAC,IAAD,CAAWzD,QAAM,EAACyD,MAAM,UAAxB,kBAEa,IAHf,uBAMA,kBAAC,IAAD,CAAWl9B,IAAI,IAAIk9B,MAAM,UACvB,kBAAC,IAAD,CAAWzD,QAAM,EAACyD,MAAM,UAAxB,yBAEa,IAHf,mBAMA,kBAAC,IAAD,CAAWl9B,IAAI,IAAIk9B,MAAM,UACvB,kBAAC,IAAD,CAAWzD,QAAM,EAACyD,MAAM,UAAxB,qBAEa,IAHf,6CAMA,kBAAC,IAAD,CAAWl9B,IAAI,IAAIk9B,MAAM,UACvB,kBAAC,IAAD,CAAWzD,QAAM,EAACyD,MAAM,UAAxB,uBAEa,IAHf,uCAMA,kBAAC,IAAD,CAAWl9B,IAAI,IAAIk9B,MAAM,UACvB,kBAAC,IAAD,CAAWzD,QAAM,EAACyD,MAAM,UAAxB,sCAEa,IAHf,qCAMA,kBAAC,IAAD,CAAWl9B,IAAI,IAAIk9B,MAAM,UAAzB,eACe,IACb,kBAAC,IAAD,CACExC,GAAG,IACHd,KAAK,yCACLhV,OAAO,SACP+U,IAAI,sBACJF,QAAM,EACNyD,MAAM,UANR,sBCZOiuF,GA9BM,WACnB,OACE,kBAAC,KAAD,CAAQtwF,cAAe,CAAEnmC,QAAS,aAC/B,YAA8C,IAA3CmyH,EAA0C,EAA1CA,WAAY/tG,EAA8B,EAA9BA,KAAMguG,EAAwB,EAAxBA,SAAUh+C,EAAc,EAAdA,QAAc,EACjBkiD,GAAa,OAAhCv2H,EADoC,EACpCA,MAAOC,EAD6B,EAC7BA,QACf,OACE,kBAAC,IAAD,CACE0lC,WAAY,CAAC,UAAW,cACxBI,QAAM,EACNC,IAAK,EACLF,QAAS,CAAC,IACVwtD,OAAQ,CAAEga,KAAM,QAAS7kE,MAAO,UAEhC,kBAAC,IAAD,CAAMA,MAAM,SAASzD,QAAM,GACxBhlC,GAEFC,EAAQ+J,KAAI,SAAAwa,GAAE,OAAIA,KACnB,kBAAC,IAAD,eACEvU,MAAM,OACNw2B,MAAM,UACNF,SAAU8tC,GACL+9C,EAAa,CAAEnsF,GAAI,IAAKd,KAAM9gB,GAAS,CAAEjmB,QAASi0H,UCFtDsE,GAtBG,kBAChB,yBAAK1mH,MAAM,KAAKrO,OAAO,KAAKg1H,QAAQ,YAAYjuE,KAAK,OAAOkuE,MAAM,8BAChE,0BACEhzG,EAAE,0NACF8kC,KAAK,QACLxB,OAAO,YAET,0BACE2vE,SAAS,UACTC,SAAS,UACTlzG,EAAE,gXACF8kC,KAAK,YAEP,0BACEmuE,SAAS,UACTC,SAAS,UACTlzG,EAAE,6nBACF8kC,KAAK,cCHIquE,GAZO,kBACpB,kBAAC,IAAD,CAAMzrB,WAAW,SAAS5lE,WAAY,CAAC,UAAW,cAAeI,QAAM,EAACC,IAAK,EAAGF,QAAS,CAAC,KACxF,kBAAC,IAAD,CAAW2C,MAAM,SAASzD,QAAM,EAACiiC,UAAU,UAA3C,kCAGA,kBAAC,GAAD,MACA,kBAAC,IAAD,CAAUx+B,MAAM,SAASw+B,UAAU,SAASrhC,OAAQ,CAAC,EAAG,EAAG,IAA3D,uF,UCPSqxF,I,qBAAiB//C,IAAOnrD,IAAV,4EAAGmrD,CAAH,6QASXC,YAAU,GAKPA,YAAU,GAIhBI,YAAS,YAOT2/C,GAAWhgD,IAAOnrD,IAAV,sEAAGmrD,CAAH,iIAELC,YAAU,IAQbggD,GAAYjgD,YAAOnqE,KAAV,uEAAGmqE,CAAH,wFAEJC,YAAU,IAOf4+C,GAAa7+C,YAAOnqE,KAAV,wEAAGmqE,CAAH,yDAGLC,YAAU,GAClBI,YAAS,CAAC,OAAQ,aAIf6/C,GAAUlgD,YAAOmgD,IAASC,cAAc,MAAjC,qEAAGpgD,CAAH,yIAEHC,YAAU,IAWdogD,GAAWrgD,YAAOxwC,IAAK4wF,cAAc,MAA7B,sEAAGpgD,CAAH,mFCtDfjY,GAAO,SAAC,GAAD,IAAG/hD,EAAH,EAAGA,KAAMiJ,EAAT,EAASA,cAAejf,EAAxB,EAAwBA,YAAxB,OACX,kBAAC,KAAD,CACEswH,OACE,kBAAC,KAAD,CACEjjG,KACE,oCACE,kBAAC,GAAD,CAAYrX,KAAK,SACjB,kBAACq6G,GAAD,CACE9uF,MAAM,SACNtD,KAAK,GACL/mC,QAAS,SAAA8C,GACPA,EAAMC,iBACND,EAAMuB,kBACNxD,OAAOgnB,uBAAuB/e,KAG/BgW,IAIPu6G,SAAUtxG,EAAc1d,QAAU,mBAItC,kBAAC,IAAD,CAAKm9B,OAAQ,CAAC,EAAG,EAAG,IACjBzf,EAAcnc,KAAI,SAAAka,GAAG,OACpB,kBAACgzG,GAAD,CAAU3rH,IAAK2Y,GACb,kBAACkzG,GAAD,CAASjyF,KAAMjhB,GCzCV,SAACqQ,EAAMmjG,GACpB,GAAInjG,EAAK9rB,QAAUivH,EAAW,OAAOnjG,EAErC,IAAMojG,EAAat/H,KAAKG,OAAOk/H,EAAY,GAAK,GAChD,MAAM,GAAN,OAAUnjG,EAAKrP,UAAU,EAAGyyG,GAA5B,cAA6CpjG,EAAKrP,UAAUqP,EAAK9rB,OAASkvH,IDqC7CC,CAAe1zG,EAAK,KACzC,kBAACizG,GAAD,CACEj6G,KAAK,WACL6gB,KAAK,QACL3/B,QAAS,WACPa,OAAOuoB,2BAA2BtgB,EAAagW,EAAMgH,aA6CpD2zG,GApCa,SAAC,GAAuB,IAC5CC,EAD2C,EAApBC,cAE1BhvG,MAAK,SAACzF,EAAGC,GAAJ,OAAUF,GAAmBC,EAAEpG,KAAMqG,EAAErG,SAC5CpT,QAAO,qBAAGoa,MAAkBqgB,OAHkB,EAKjB/jC,oBAAS,GALQ,mBAK1Cy1H,EAL0C,KAKhCC,EALgC,KAM3CC,EAAiBl1H,uBAAY,kBAAMi1H,GAAY,SAAA3nF,GAAC,OAAKA,OAAI,IAE/D,OACE,kBAAC,GAAD,CACEk9D,OAAQwqB,EACRxH,WAAY0H,EACZ1vF,MACE,kBAAC,IAAD,CAAM8kE,WAAW,SAASgC,eAAe,WACvC,kBAAC,IAAD,CAAMvoE,QAAM,EAACyD,MAAM,UAAnB,iBAGA,kBAAC,GAAD,CAAYn8B,OAAQ2pH,EAAU/4G,KAAK,eAAe6gB,KAAK,QAAQ0K,MAAM,WAIzE,kBAACwuF,GAAD,CAAgBlxF,QAAM,EAACC,IAAK,GACzB8xF,EAAe9tH,KAAI,gBAAGkT,EAAH,EAAGA,KAAMiJ,EAAT,EAASA,cAAeT,EAAxB,EAAwBA,KAAMxB,EAA9B,EAA8BA,IAA9B,OAClB,kBAAC,GAAD,CACEiC,cAAeA,EACf5a,IAAG,UAAK2R,EAAL,YAAawI,GAChBxe,YAAawe,EACbxI,KAAMA,EACNgH,IAAKA,UEvEX8zG,GAA0Br7E,cAC9B,SAAApzC,GAAK,OAAIA,EAAMs3G,OAAOj5G,eAAeG,MAAQ,MAC7C,SAAAwB,GAAK,OAAIA,EAAMs3G,OAAOx6G,SAASY,gBAAgBk/E,uBAAyB,MACxE,WAAsBsvC,GAAtB,IAAGxtG,EAAH,EAAGA,MAAOvhB,EAAV,EAAUA,SAAV,OAAsC8uH,GAASvtG,EAAOvhB,EAAU+uH,MAG5DwC,GAAuBt7E,cAC3B,SAAApzC,GAAK,OAAIA,EAAMs3G,OAAOx6G,YACtB,SAAAA,GAAQ,OAAIA,EAASgB,uBAAyB,MAG1CutH,GAAqBj4E,cACzB,qBAAGk4E,aACH,kBAA8B,CAAEzgD,WAAhC,EAAGA,WAAyCC,QAA5C,EAAeA,YA6DF12E,OAAMk0G,MA1DP,SAAC,GAAwB,IAAtBpG,EAAqB,EAArBA,OAAQgX,EAAa,EAAbA,OAAa,EACc5jH,YAAYm5H,IAD1B,IAC5Br9E,kBAD4B,MACf,GADe,MACXk7E,uBADW,MACO,GADP,EAE9BqC,EAAer5H,YAAYo5H,IAC3BE,EAAiBt5H,YAAYu5H,MAHC,EAIJv5H,YAAY+1H,IAApCxgD,EAJ4B,EAI5BA,WAAYC,EAJgB,EAIhBA,QACdrtC,EAAenoC,YAAYooC,MAE3BoxF,EAAiBp3H,uBAAY,kBAAMhC,OAAOsnB,+BAA8B,IAE9E,OACE,kBAAC,IAAD,CAAatW,MAAO,GAAI01B,WAAW,QAAQ5f,KAAM0lF,EAAQt2D,UAAU,aAAamjF,SAAO,GACrF,kBAAC,IAAD,CACExsB,MAAI,EACJ/lE,QAAM,EACNnF,SAAU,CAAEirE,SAAU,UACtBjmE,OAAQ,CAAC,EAAG,EAAG,GACf0tD,OAAQ,CAAEga,KAAM,OAAQ7kE,MAAO,aAC/B9mC,MAAO,CAAE42H,cAAe,QAExB,kBAAC,IAAD,CAAM33F,SAAU,CAAEirE,SAAU,QAAUC,MAAI,EAAC/lE,QAAM,EAACC,IAAK,EAAGF,QAAS,CAAC,IAClE,kBAAC,IAAD,CAAMqtE,UAAU,OACd,kBAAC,IAAD,CACErG,SAAO,EACPtlE,QAAQ,aACRulE,UAAU,OACVqV,OAAK,EACL71F,KAAK,eACLnuB,QAASqkH,MAGXruC,GACA,sCACKyhD,EAAgBptH,QACjB,kBAAC,GAAD,CAAiBkyC,WAAYA,EAAYk7E,gBAAiBA,MAEzDqC,EAAazvH,QACd,kBAAC,IAAD,CAAMu8B,QAAM,EAACyD,MAAM,UACjB,kBAAC,GAAD,CAAcsvF,cAAeG,MAKpC9jD,GACC,kBAAC,GAAD,CAAkBz5B,WAAYA,EAAYk7E,gBAAiBA,KAG9DsC,GACC,kBAAC,IAAD,CAAM7kC,OAAQ,CAAEga,KAAM,OAASC,eAAe,SAAShC,WAAW,SAASzlE,QAAS,CAAC,IACnF,kBAAC,IAAD,CAAW1nC,QAASi6H,GAApB,qBAGFjkD,GAAcptC,GAAgB,kBAAC,GAAD,MAC/BqtC,GAAWrtC,GAAgB,kBAAC,GAAD,WCrE9BknF,GAAUh3C,YAAO0zB,KAAMC,MAAM,CAAEjpG,OAAQ,QAASosE,OAAQ,KAAjD,mEAAGkJ,CAAH,yBAIP09C,GAAqBj4E,cACzB,qBAAGk4E,aACH,qBAAGzgD,cA6BUz2E,OAAMk0G,MA1BL,WAAO,IAAD,EACUgR,aAAgB,qBAD1B,mBACb0O,EADa,KACJiH,EADI,KAEd/sB,EAAS5sG,YAAY45H,MACrBtH,EAAWtyH,YAAY+1H,IAEvBh0H,EAAWC,cAEX4hH,EAASxhH,uBAAY,WACzBL,EAASuD,aAA0B,CAAEoG,UAAWkhG,KAChD+sB,GAAY/sB,KAEX,CAACA,IAOJ,OALA1sG,qBAAU,WACR6B,EAASuD,aAA0B,CAAEoG,WAAUgnH,GAAUJ,OAExD,CAACA,IAGF,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAQ1lB,OAAQA,EAAQgX,OAAQA,EAAQruC,WAAY+8C,IACpD,kBAAC,GAAD,CAAO1lB,OAAQA,EAAQgX,OAAQA,EAAQpuC,SAAS,QCnChD65C,GAAUh3C,YAAO0zB,KAAMC,MAAM,CACjChqE,SAAU,QACV0sE,eAAgB,QAChBhC,WAAY,QACZt7F,MAAO,OACP+9D,OAAQ,KALG,sEAAGkJ,CAAH,uCAyBEwhD,GAbA,SAAC,GAA6B,IAA3B76H,EAA0B,EAA1BA,SAEhB,OAF0C,EAAhB86H,UAEJ96H,EAGpB,kBAAC,GAAD,KACE,kBAAC,GAAD,MACA,kBAAC,GAAD,MACCA,ICtBM+6H,I,OAAW,SAAC/5G,GAAD,MACrB,CACCg6G,MAAO5D,IACP6D,MAAOC,KACPl6G,IAAUo2G,M,UCsJC+D,GA3IQ,SAAC,GAOjB,IANLC,EAMI,EANJA,wBACAC,EAKI,EALJA,iBACA3zF,EAII,EAJJA,WACA4zF,EAGI,EAHJA,2BACAC,EAEI,EAFJA,oBACAC,EACI,EADJA,uBACI,EAC0D74H,oBAAS,GADnE,mBACG84H,EADH,KAC4BC,EAD5B,KAOE7zF,EAAoBzkC,uBACxB,YAAuB,IAApBojB,EAAmB,EAAnBA,KAAMm1G,EAAa,EAAbA,OACCp0F,EAAS6zF,EAAT7zF,KAEY,aAAhBA,EAAK20C,QACHu/C,IACFJ,EAAiB9zF,EAAKq0F,gBACtBN,EAA2BG,IAEd,UAAXE,IAAoBv6H,OAAOghB,SAASklB,KAAO9gB,GAC/CkhB,KACyB,YAAhBH,EAAK20C,QACds/C,MAGJ,CACEJ,EACAC,EACAI,EACAD,EACAF,EACA5zF,IAIEm0F,EAAoBz4H,uBAAY,WAAO,IACnC04H,EAASV,EAATU,KACJL,IACFJ,EAAiBS,EAAKF,gBACtBN,EAA2BG,IAET,aAAhBK,EAAK5/C,QACkB,YAAhB4/C,EAAK5/C,QACds/C,IAEF9zF,MACC,CACD0zF,EACAC,EACAI,EACAD,EACAF,EACA5zF,IAGF,OAAO0zF,EACL,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAchpH,MAAO,IAAK01B,WAAW,mBACnC,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAIC,OAAQ,CAAC,IAAKqzF,EAAwBj5H,QAE5C,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAM8lC,QAAS,CAAC,EAAG,EAAG,EAAG,GAAIC,QAAM,EAACC,IAAK,GACS,oBAAxCizF,EAAwB1kG,KAAKwQ,OACnCk0F,EAAwB1kG,KAAKwQ,OAAO,IAEpC,kBAAC,IAAD,KAAOk0F,EAAwB1kG,KAAKwQ,QAErCk0F,EAAwB1kG,KAAK0Q,QAAQx8B,OAAS,GAC7C,kBAAC,IAAD,CAAMs9B,QAAM,EAACC,IAAK,GAChB,kBAAC,IAAD,CAAMD,QAAM,EAACC,IAAK,EAAGC,GAAI,MACtBgzF,EAAwB1kG,KAAK0Q,QAAQj7B,KAAI,SAAAk8B,GACxC,MAAsB,oBAAXA,EACF,wBAAI36B,IAAK26B,GAASA,KAGzB,wBAAI36B,IAAK26B,GACP,kBAAC,IAAD,KAAOA,SAOlB+yF,EAAwB1kG,KAAKpF,QAC5B,kBAAC,IAAD,CAAMgX,cAAY,eAAe8yF,EAAwB1kG,KAAKpF,UAIpE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAKyW,OAAQ,CAAC,EAAG,OAAQ,EAAG,IAC1B,kBAAC,IAAD,CACEU,UAAA,UAAY8yF,EAAZ,yBACAjzF,cAAY,qBACZjgB,QAASozG,EACT32B,SAzFiB,SAAAzgG,GAC3Bq3H,EAA2Br3H,EAAE0kH,cAAc1gG,UAyFjCugB,MAAOwyF,EAAwBW,cAAcrlG,QAGjD,kBAAC,IAAD,CAAK4R,cAAY,OAAOP,OAAQ,CAAC,EAAG,EAAG,EAAG,GAAI31B,MAAO,CAAE9T,IAAK,KAC1D,kBAAC,KAAD,CAAWiqC,cAAe,CAAEnmC,QAASm5H,EAAqB/yF,SA1GrD,0BA2GF,gBAAGhiB,EAAH,EAAGA,KAAH,OACC,kBAAC,IAAD,CACEiiB,UAAA,UAAY8yF,EAAZ,mBACA5yF,cAAc,OACdL,cAAY,cACZ/nC,QAAS,kBACPsnC,EAAkB,CAAErhB,OAAMm1G,OAAQP,EAAwB7zF,KAAKo0F,UAEjEvpH,MAAM,OACNw2B,MAAOwyF,EAAwB7zF,KAAK7Q,WAK3C0kG,EAAwBU,MACvB,kBAAC,IAAD,CACErzF,UAAA,UAAY8yF,EAAZ,mBACAh7H,QAASs7H,EACT93H,OAAQ,GACR9D,UAAU,kBACVqoC,cAAY,OACZl2B,MAAO,CAAE9T,IAAK,KAEd,kBAAC,IAAD,CAAK8pC,GAAIS,IAAMC,GAAI,CAAEC,WAAY,MAAOC,WAAY,SACjDoyF,EAAwBU,KAAKplG,UAOxC,O,SrH7IMk9E,K,0CAAAA,E,0CAAAA,E,gDAAAA,E,oCAAAA,E,wDAAAA,E,sCAAAA,E,uDAAAA,Q,KAiCZ,IAEMooB,GAAoB,SAACC,GAAD,gBACrBhyF,MADqB,OACNiyF,aAAsB,CACtC95H,QAAS65H,EACTzzF,SALa,2BAQJ2zF,IAAsC,qBAChDvoB,GAAqBwoB,oBAAsB,CAC1Cj6H,MAAO,6BACPu0B,KAAM,CACJwQ,OAAQ,kBACN,kBAAC,IAAD,CAAMC,QAAM,GAAZ,oFAIFC,QAAS,CACP,mFACA,0CACA,2BACA,mFAEF9V,OAAQ,uCAEVyqG,cAAe,CACbrlG,KAAM,qBACN2lG,aAAczoB,GAAqBwoB,qBAErC70F,KAAM,CACJ7Q,KAAM,sCACNilG,OAAQ,oBACRz/C,OAAQ,WACR0/C,eAAgB,SAElBE,KAAM,CACJplG,KAAM,qCACNwlD,OAAQ,WACRy/C,OAAQ,uBACRC,eAAgB,WA/B6B,eAkChDhoB,GAAqB0oB,oBAAsB,CAC1Cn6H,MAAO,iDACPu0B,KAAM,CACJwQ,OAAQ,kBACN,oCACE,kBAAC,IAAD,CAAMC,QAAM,GAAZ,6IAKA,kBAAC,IAAD,0FAKJC,QAAS,CACP,mFACA,0CACA,2BACA,mFAEF9V,OAAQ,uCAEVyqG,cAAe,CACbrlG,KAAM,qBACN2lG,aAAczoB,GAAqB0oB,qBAErC/0F,KAAM,CACJ7Q,KAAM,yCACNwlD,OAAQ,WACRy/C,OAAQ,oBACRC,eAAgB,SAElBE,KAAM,CACJplG,KAAM,qCACNilG,OAAQ,uBACRz/C,OAAQ,WACR0/C,eAAgB,WAvE6B,eA0EhDhoB,GAAqB2oB,uBAAyB,CAC7Cp6H,MAAO,+CACPu0B,KAAM,CACJwQ,OAAQ,kBACN,kBAAC,IAAD,CAAMC,QAAM,GAAZ,yFAIFC,QAAS,GACT9V,OAAQ,wCAEVyqG,cAAe,CACbrlG,KAAM,gCACN2lG,aAAczoB,GAAqB2oB,wBAErCh1F,KAAM,CACJ7Q,KAAM,0CACNilG,OAAQ,QACRz/C,OAAQ,WACR0/C,eAAgB,WA7F6B,eAgGhDhoB,GAAqB4oB,iBAAmB,CACvCr6H,MAAO,kDACPu0B,KAAM,CACJwQ,OAAQ,kBACN,kBAAC,IAAD,CAAMC,QAAM,GAAZ,kFAIF7V,OAAQ,sCACR8V,QAAS,CACP,WACE,OACE,kBAAC,IAAD,KACG,IADH,+CAE+C,IAC7C,kBAAC,KAAD,CACE9U,OAAO,SACP+U,IAAI,sBACJC,KAAI,uDAAkD00F,GACpDpoB,GAAqB4oB,kBACrBn1G,UAAU,GAFR,2BAHN,yBAHF,WAgBJ,WACE,OACE,kBAAC,IAAD,4FACkF,IAChF,kBAAC,KAAD,CACEiL,OAAO,SACP+U,IAAI,sBACJC,KAAI,uFAAkF00F,GACpFpoB,GAAqB4oB,kBACrBn1G,UAAU,KALd,8BAFF,QAiBR00G,cAAe,CACbrlG,KAAM,sBACN2lG,aAAczoB,GAAqB4oB,kBAErCj1F,KAAM,CACJ7Q,KAAM,sCACNwlD,OAAQ,WACRy/C,OAAQ,kBACRC,eAAgB,SAElBE,KAAM,CACJplG,KAAM,qCACNwlD,OAAQ,WACRy/C,OAAQ,uBACRC,eAAgB,WA7J6B,eAgKhDhoB,GAAqB6oB,2BAA6B,CACjDt6H,MAAO,oCACPu0B,KAAM,CACJwQ,OAAQ,kBACN,kBAAC,IAAD,CAAMC,QAAM,GAAZ,uKAKFC,QAAS,IAEX20F,cAAe,CACbrlG,KAAM,qBACN2lG,aAAczoB,GAAqB6oB,4BAErCl1F,KAAM,CACJ7Q,KAAM,uCACNwlD,OAAQ,WACRy/C,OAAQ,uBACRC,eAAgB,SAElBE,KAAM,CACJplG,KAAM,qCACNwlD,OAAQ,WACRy/C,OAAQ,uBACRC,eAAgB,WAzL6B,eA4LhDhoB,GAAqB8oB,kBAAoB,CACxCv6H,MAAO,wDACPu0B,KAAM,CACJwQ,OAAQ,YAAmB,EAAhBF,KACT,OACE,oCACE,kBAAC,IAAD,CAAMG,QAAM,GAAZ,iJAOA,kBAAC,IAAD,2EACsE,IACpE,kBAAC,KAAD,CACE7U,OAAO,SACP+U,IAAI,sBACJC,KAAI,uDAAkD00F,GACpDpoB,GAAqB8oB,mBACrBr1G,UAAU,GAFR,qBAHN,kBAaR+f,QAAS,IAEX20F,cAAe,CACbrlG,KAAM,wBACN2lG,aAAczoB,GAAqB8oB,mBAErCn1F,KAAM,CACJ7Q,KAAM,qBACNwlD,OAAQ,UACR0/C,oBAAgB/8H,GAElBi9H,KAAM,CACJplG,KAAM,kCACNilG,OAAQ,aACRz/C,OAAQ,WACR0/C,eAAgB,WAvO6B,eA0OhDhoB,GAAqB+oB,0BAA4B,CAChDx6H,MAAO,oFACPu0B,KAAM,CACJwQ,OAAQ,WACN,OACE,oCACE,kBAAC,IAAD,CAAMC,QAAM,GAAZ,uGAIA,kBAAC,IAAD,6KAONC,QAAS,IAEX20F,cAAe,CACbrlG,KAAM,wBACN2lG,aAAczoB,GAAqB+oB,2BAErCp1F,KAAM,CACJ7Q,KAAM,qBACNwlD,OAAQ,UACR0/C,oBAAgB/8H,GAElBi9H,KAAM,CACJplG,KAAM,kCACNilG,OAAQ,uBACRz/C,OAAQ,WACR0/C,eAAgB,WA1Q6B,IA4W7CgB,IAGL,qBACEhpB,GAAqB8oB,mBA/BE,SAAC,GAAD,IACxBG,EADwB,EACxBA,oBACA/1F,EAFwB,EAExBA,WACAg2F,EAHwB,EAGxBA,kBACAtzF,EAJwB,EAIxBA,aACAp/B,EALwB,EAKxBA,eALwB,MAOA,UAAxByyH,IACgB,cAAf/1F,GAA6C,kBAAfA,IACT,YAAtBg2F,GACiB,aAAjBtzF,GACmB,cAAnBp/B,KAmBD,eAEEwpG,GAAqB+oB,2BA7CQ,SAAC,GAAD,IAC9BE,EAD8B,EAC9BA,oBACA/1F,EAF8B,EAE9BA,WACAg2F,EAH8B,EAG9BA,kBACAtzF,EAJ8B,EAI9BA,aACAp/B,EAL8B,EAK9BA,eAL8B,MAON,UAAxByyH,IACC/1F,IACAg2F,IACAtzF,IACAp/B,KAgCF,eAGEwpG,GAAqB6oB,4BAzDY,SAAC,GAAD,IAClCI,EADkC,EAClCA,oBACA/1F,EAFkC,EAElCA,WACA0C,EAHkC,EAGlCA,aACAp/B,EAJkC,EAIlCA,eAJkC,OAMjCyyH,IACe,cAAf/1F,GAA6C,kBAAfA,IACd,SAAjB0C,GACmB,cAAnBp/B,KA6CD,eAIEwpG,GAAqB4oB,kBAnEO,SAAC,GAAD,IAC7BK,EAD6B,EAC7BA,oBACA/1F,EAF6B,EAE7BA,WACAg2F,EAH6B,EAG7BA,kBAH6B,MAKL,UAAxBD,IACgB,cAAf/1F,GAA6C,kBAAfA,IACT,gBAAtBg2F,KAwDD,eAKElpB,GAAqB2oB,wBA/EM,SAAC,GAAD,IAC5BM,EAD4B,EAC5BA,oBACA/1F,EAF4B,EAE5BA,WACAg2F,EAH4B,EAG5BA,kBACA1yH,EAJ4B,EAI5BA,eAJ4B,MAMJ,UAAxByyH,IACgB,cAAf/1F,GAA6C,kBAAfA,IACT,YAAtBg2F,GACmB,cAAnB1yH,KAiED,eAMEwpG,GAAqB0oB,qBAvFF,SAAC,GAAD,IACpBO,EADoB,EACpBA,oBACA/1F,EAFoB,EAEpBA,WACAg2F,EAHoB,EAGpBA,kBAHoB,MAKI,UAAxBD,GAAkD,YAAf/1F,GAAkD,YAAtBg2F,KA4EhE,eAOElpB,GAAqBwoB,qBA/FF,SAAC,GAAD,IACpBS,EADoB,EACpBA,oBACA/1F,EAFoB,EAEpBA,WACAg2F,EAHoB,EAGpBA,kBAHoB,MAKI,UAAxBD,GAAkD,YAAf/1F,GAAkD,gBAAtBg2F,KAmFhE,IAwCcC,GA9BW,SAAC,GAKR,IAJjBj2F,EAIgB,EAJhBA,WACAg2F,EAGgB,EAHhBA,kBACA1yH,EAEgB,EAFhBA,eACAo/B,EACgB,EADhBA,aACgB,EACgCw7E,aAC9C,yBAFc,mBACT6X,EADS,KACYxB,EADZ,KAKVE,EAAsBt0F,mBAA8B,WACxD,OAAO/nC,OAAOlB,KAAK4+H,IAA+Bp/F,MAAK,SAAAw/F,GACrD,OAAOJ,GAA8BI,GAAa,CAChDl2F,aACAg2F,oBACA1yH,iBACAyyH,sBACArzF,sBAGH,CAAC1C,EAAYg2F,EAAmB1yH,EAAgBo/B,EAAcqzF,IAEjE,MAAO,CACLzB,wBAAyBe,GAAmBZ,GAC5CA,sBACAF,mBACAwB,wBsH1TWI,GAxFU,WACvB,IAAM9zF,EAAenoC,YAAYooC,MAC3B5gC,EAAWxH,YAAY2f,MAEvBu8G,EAAWl8H,aAAY,SAAA0K,GAAK,OAChCyxH,aAAgB,CAAE/6H,QAAS,sBAAuBg7H,KAAM50H,EAASa,aAAjE8zH,CAAgFzxH,MAG5E2xH,EAAap2F,mBAAQ,WAAO,IACxBK,EAASlmC,OAAOghB,SAAhBklB,KACFg2F,EAAcx0G,mBAAmBwe,GACvC,MAAM,GAAN,OAAU41F,EAAV,yBAAmCI,KAClC,CAACJ,IAEE9yH,EAAiBpJ,YAAYkoC,MAdN,EAeOvmC,oBAAS,GAfhB,mBAetB0mC,EAfsB,KAeTC,EAfS,OAiB3ByzF,GAAkB,eACb3yH,IAFCgxH,EAhBqB,EAgBrBA,wBAAyBC,EAhBJ,EAgBIA,iBAAkBwB,EAhBtB,EAgBsBA,oBAAqBtB,EAhB3C,EAgB2CA,oBAKlEc,GAAsC,OAAvBjB,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBW,cAAcM,eAAgB,GArB/C,EA4BUrX,aAAgBqX,GAA9Cf,EA5BoB,oBA6BvBiC,EAAyBr5H,aAAaqgB,QAAQ83G,GAM9CmB,EACJr0F,GACAiyF,GACA/xF,KACEk0F,GAAqD,cAA3BA,GAExB/B,EAAyB10H,eAgC/B,OAzBA5F,qBAAU,WACR,IAAIu8H,EAAiB52G,YAAW,kBAAMyiB,GAAa,KAAO,KAC1D,OAAO,WACLma,aAAag6E,MAEd,IAEHv8H,qBAAU,YtHySa,SAAC,GAAD,IACvB27H,EADuB,EACvBA,oBACA/1F,EAFuB,EAEvBA,WACA0C,EAHuB,EAGvBA,aACAp/B,EAJuB,EAIvBA,eAJuB,MAMC,UAAxByyH,IACgB,cAAf/1F,GAA6C,kBAAfA,IACd,SAAjB0C,GACmB,cAAnBp/B,GsHjTMszH,CAAU,aAAEb,uBAAwBzyH,MACtChJ,OAAOghB,SAASklB,KAAO+1F,KAExB,CAACA,EAAYjzH,EAAgByyH,IAEhC37H,qBAAU,WtHiSc,UsHhSC,CAAE27H,uBtH+RQA,qBsH/RgBn9H,QAAQC,IAAI,sBAC5D,CAACk9H,IAEJ37H,qBAAU,WAENqD,SAASklC,gBAAgB3lC,MAAMi/B,SAD7By6F,EACwC,SAEA,SAE3C,CAACn0F,EAAam0F,IAEbA,EAEA,kBAAC,GAAD,CACElC,2BAA4BA,EAC5BF,wBAAyBA,EACzBC,iBAAkBA,EAClB3zF,WAhDa,WACjB4B,GAAa,IAgDTiyF,oBAAqBA,EACrBC,uBAAwBA,IAIvB,MCxFHmC,GAAaC,IAGnBx8H,OAAOmiC,GAAKA,KAEZ,IA6Fes6F,GA7FO,WACpB,IAAM10F,EAAenoC,aAAYooC,MAE3B0hD,EAAQgzC,cACd58H,qBAAU,WAGRE,OAAOU,QAAQ6H,OAAS,GAExBvI,OAAOU,QAAQohC,MAAQ,SAAA9S,GACrBA,KAEFkW,aAAgBwkD,KAEf,IAduB,MAegBnoF,qBAfhB,mBAenBo7H,EAfmB,KAeJC,EAfI,KAiBpBC,OAA2Cp/H,IAAlBk/H,EAEzBllG,EAAW/3B,kBAAO,WACtBk9H,EAAiBxjI,KAAKq0C,aAGxB3tC,qBAAU,WACR,GAAI+8H,EAAwB,CAC1B,IAAMC,EAAc35H,SAASof,eAAe,eACxCu6G,IACFA,EAAYp6H,MAAM80B,QAAU,WAG/B,CAACqlG,IA9BsB,MAgCqBv8E,eAAvC9hC,EAhCkB,EAgClBA,iBAAkBC,EAhCA,EAgCAA,iBAC1B3e,qBAAU,WACR4e,aAAsB,CACpBF,mBACAC,uBAED,CAACD,EAAkBC,ICzFG,SAACs+G,GAC1B,IAAM31H,EAAWxH,aAAY2f,MAEvB5d,EAAWC,eACjB9B,qBAAU,YACJi9H,GAAsB31H,EAASW,iBAAoBX,EAASG,iBAC1DH,EAASI,kBAEb7F,EAAS4C,KAAiB0H,QAAQ,CAChC0b,uBAGH,CAAChmB,EAAUyF,EAAU21H,ID+ExBC,EAAY,GE3FW,SAACC,GACxB,IAAMx0H,EAAmB7I,aAAYs9H,MAE/Bv7H,EAAWC,eACjB9B,qBAAU,WACJm9H,IAAoBx0H,GACtB9G,EAASgD,aAAkB,CACzBgjB,uBAGH,CAAChmB,EAAU8G,EAAkBw0H,IFkFhCE,EAAU,GG9FW,SAACC,GACtB,IAAMh2H,EAAWxH,aAAY2f,MACvBzX,GAAyB,OAARV,QAAQ,IAARA,OAAA,EAAAA,EAAUU,kBAAkB,EAC7CnG,EAAWC,eACjB9B,qBAAU,WACJs9H,IAAkBt1H,GACpBnG,EAAS0K,KAAgBJ,QAAQ,CAC/B+wE,MAAM,OAGT,CAACr7E,EAAUmG,EAAgBs1H,IHqF9BC,EAAQ,GA1CkB,MA4C8B97H,oBAAS,GA5CvC,mBA4CnB+7H,EA5CmB,KA4CGC,EA5CH,KA6C1BhmC,2BAAgB,WACdhoE,QAAQC,IAAI,CACVw6D,GAAQzsC,IAAev9C,OAAOU,QAAQyJ,OAAOpK,QAAQy9H,eACrDxzC,GAAQzsC,IAAev9C,OAAOU,QAAQyJ,OAAOpK,QAAQ09H,iBACpDtuG,MAAK,WACNouG,GAAwB,QAEzB,IAEH,IAAM50H,EI5GyB,WAAO,IAAD,EACZu2G,GAAO,UAAoBv3F,IAApB,kBAChC,OAFqC,oBJ4Gd+1G,GACjBr2H,EAAezH,aAAY4yH,MAGjCxyH,OAAOU,QAAQ+2B,SAAWA,EAAS13B,QAEnC,IAAMuH,EAAiB1H,aAAY+9H,MAC7B/9G,EAAQhgB,aAAYg+H,MAG1B,OKnHa,WACb,IAAMj8H,EAAWC,eACjBs5F,cAAS,WACP,IAAM9kB,EAAS8S,eACT20C,EAAYznD,EAAM,WACxB,GAAIynD,EAAW,CACb,IAAMC,EAAYn5G,OAAOk5G,GAEnB98F,EAAcq1C,EAAM,aACpB2nD,EAAa3nD,EAAM,YACnB4nD,EAAa5nD,EAAM,YACzB,IAAK5wC,IAAcxE,SAASD,KAAiBg9F,IAAeC,EAC1D,OAGFr8H,EAASyD,aAAe,CACtBsD,MAAO,CACLuF,QAAS8vH,EACT/7G,OAAQ+e,EACRhlC,MAAOiiI,EACP9rG,KAAM4rG,MAIVn8H,EAASoC,aAA0B,CACjCwH,MAAmB,IAAZuyH,EAFO,IAGdtyH,OAAoB,IAAZsyH,EAHM,WL0FpBG,GAGE,kBAAC,IAAD,CAAer+G,MAAO+5G,GAAS/5G,IAC5B09G,GAGC,kBAAC9b,GAAD,MAEF,qCACC74G,GAAkBtB,GAAgBC,GAAkBu1H,GACnD,oCACE,kBAAC,GAAD,CAAQnD,UAAWx/C,IAChBx1C,KAAS,KAAO,kBAAC,GAAD,MAChB44F,GACC,oCACE,kBAACxe,GAAD,CAASxyG,IAAKqwH,IACd,kBAAC,GAAD,KACE,kBAAC,GAAD,OAEDziD,IAAe,kBAAC,GAAD,QAIrBnyC,GAAgB,kBAACw0F,GAAD,CAAY55H,OAAQ,Q,OM/H/Cu7H,IAAS53E,OACP,kBAAC,IAAD,CAAUojC,MAAOA,IACf,kBAAC,GAAD,OAEFvmF,SAASof,eAAe,U,kGCbpB47G,EAAqBzgF,YACzBn+B,KACA,qBAAGlX,iBAAwCogC,OAGvC21F,EAAkB1gF,aACtB,qBAAGk4E,aACH,qBAAGxgD,WAqCU89C,IAlCA,SAAC,GAAiC,IAA/Bt0H,EAA8B,EAA9BA,SAAUuoC,EAAoB,EAApBA,cAAoB,EAClBy8E,YAAgB,uBAArCkP,EADuC,oBAExCuL,EAAYz+H,aAAY,SAAA0K,GAAK,OAAIyxH,YAAgB50F,EAAhB40F,CAA+BzxH,MAChE6oH,EAAavzH,YAAYu+H,GACzB/oD,EAAUx1E,YAAYw+H,GAEtBz8H,EAAWC,cAEXwjB,EAAOygB,mBAAQ,WAAO,IAClBK,EAASlmC,OAAOghB,SAAhBklB,KACFg2F,EAAcx0G,mBAAmBwe,GACvC,MAAM,GAAN,OAAUm4F,EAAV,yBAAoCnC,KACnC,CAACmC,IAEEjL,EAAWpxH,uBACf,kBACEL,EACEg/C,YAAsB,CACpB2oC,eAAgBlkE,OAItB,CAACA,IAGH,OAAOygB,mBACL,iBACsB,oBAAbjnC,EACHA,EAAS,CAAEu0H,aAAY/tG,OAAMguG,WAAUh+C,UAAS09C,sBAChDl0H,IACN,CAACA,EAAUu0H,EAAY/tG,EAAMguG,EAAUh+C,EAAS09C,M,8MC3C9CwL,EAA+B,OAGxBp1C,EAAgB,WAEX,IADhBvpE,EACe,uDADRwB,mBAAmBnhB,OAAOghB,SAASrB,KAAKukB,OAAO,IAEtD,GAAoB,IAAhBvkB,EAAKnW,OACP,MAAO,GAET,IAAM4sE,EAASz2D,EAAK7V,MAAMw0H,GACpBvhD,EAAW3G,EAAOrpE,QAAO,SAACC,EAAiBjN,GAC/C,IAAMmsB,EAAQnsB,EAAQ+J,MAAM,KAD+B,cAEpCoiB,EAFoC,GAEpDqyG,EAFoD,KAE7CxiI,EAF6C,KAI3D,OADAiR,EAAIuxH,GAASxiI,EACNiR,IACN,IACH,OAAO+vE,GAGIyhD,EAAqB,SAACpoD,GACjC,IAAMo5B,EAAU1xG,OAAO0xG,QAAQp5B,GAC/B,OAAuB,IAAnBo5B,EAAQhmG,OACH,GAEFgmG,EACJzkG,KAAI,mCAAEuB,EAAF,KAAOvQ,EAAP,iBAA6B0B,IAAV1B,EAAsBuQ,EAAtB,UAA+BA,EAA/B,YAAsCob,mBAAmB3rB,OAChFylD,KAzB2B,MAsCnB2nC,GAFsB9rC,YAAK6rC,EAAes1C,GAE1B,SAACpoD,GAC5B,IAAMqoD,EAAYv1C,IACZw1C,EAAkBC,YAAcvoD,EAAQqoD,GAC9Cz+H,OAAO6hB,QAAQC,aAAa9hB,OAAO6hB,QAAQvX,MAAO,GAAlD,WAA0Dk0H,EAAmBE,OAGlEx+G,EAAe,SAC1Bq+G,GAD0B,IAE1B5+G,EAF0B,uDAEnBwB,mBAAmBnhB,OAAOghB,SAASrB,KAAKukB,OAAO,IAF5B,OAGfglD,EAAcvpE,GAAM4+G,IAOpBl1C,EAAmB,SAACjT,GAC/Bp2E,OAAO6hB,QAAQC,aAAa9hB,OAAO6hB,QAAQvX,MAAO,GAAlD,WA3B6B,SAC7Bs0H,GAEI,IADJj/G,EACG,uDADIwB,mBAAmBnhB,OAAOghB,SAASrB,KAAKukB,OAAO,IAEhD26F,EAAiB9uH,YAAK6uH,EAAgB11C,EAAcvpE,IAC1D,OAAO6+G,EAAmBK,GAsBgCC,CAAgB1oD,O,sHCvC/DzwE,EAAoB,SAC/Bo5H,EACA/4H,GAEA,IAAMg5H,EACyB,kBAAtBD,EACF57H,SAASof,eAAew8G,GACzBA,EAEFC,EAAcC,eAChBD,EAAcC,cAAcC,YAAYl5H,EAAS,MAIxCD,EAAyB,SACpCo5H,EACAnwG,EACAowG,GACiC,IAAD,EACM79H,mBAAwB69H,GAD9B,mBACzBC,EADyB,KACZC,EADY,KAE1BC,EAAgBv9H,uBACpB,SAAAgE,GACE,IAAM8C,EAAO9C,EAAQ8C,KACjBA,EAAK/J,OAASogI,IAChBG,EAAex2H,EAAKjD,SAChBmpB,GACFA,EAASlmB,EAAKjD,YAIpB,CAACmpB,EAAUmwG,IAEPK,EAAgBx9H,uBAAY,WAChCs9H,EAAeF,KACd,CAACA,IAOJ,OANAt/H,qBAAU,WAER,OADAE,OAAOoD,iBAAiB,UAAWm8H,GAC5B,WACLv/H,OAAOsD,oBAAoB,UAAWi8H,MAEvC,CAACA,EAAeJ,IACZ,CAACE,EAAaG,K,gCC/DvB,sGAAO,IAAM74H,EAAW84H,OACX7iF,GAAe6iF,EACf3iF,GAAmB2iF,G,gCCFhC,kCAAO,IAAM97H,EAAW,a,+BCAxB,qFAaa/D,EAET8/H,IACS99H,EAET+9H,K,gCClBJ,sCAAMzlD,EAAcl6E,OAAOghB,SAASrB,KAAK7V,MAAM,KAAKk3B,SAAS,aAmBhD0D,EAjBK,WAChB,GAAIw1C,EACF,OAAO,EAFa,IAIdzyE,EAAatE,SAAS6d,SAAtBvZ,SACR,OACEA,EAAS4kB,SAAS,mBACf5kB,EAAS4kB,SAAS,kBAClB5kB,EAAS4kB,SAAS,mBAClB5kB,EAAS4kB,SAAS,gBAClB5kB,EAAS4kB,SAAS,kBAClB5kB,EAAS4kB,SAAS,iBAClB5kB,EAAS4kB,SAAS,oBAClB5kB,EAAS4kB,SAAS,kBAIHuzG,I,+BCnBtB,m9CAaazlB,EAA6B,SAAC7e,GAAD,OAA2B,SAAChxF,GACpE,IAAME,EAAUrB,YAA2BmyF,GACrCnsF,EAAW7E,EAAM3G,KAAU0C,iBAAiBmE,GAClD,OAAO2E,GAAYA,EAASlF,WAGjB41H,EAAe,SAACv1H,GAAD,OAAsBA,EAAMs3G,QAE3CnnB,EAAkB/8C,YAC7BmiF,GACA,SAACliF,EAAY1yC,GAAb,OAAsCA,KACtC,SAAC60H,EAAa70H,GAAd,OACE60H,EAAYx5H,UAAU2E,MAIb0vF,EAAkBj9C,YAC7BmiF,GACA,SAACliF,EAAYtyC,GAAb,OAAsCA,KACtC,SAACy0H,EAAaz0H,GAAd,OACEy0H,EAAYv5H,UAAU8E,MAIbitG,EAAwB56D,YAAemiF,EAAcvgH,YAAK,aAE1Di7E,EAA8B78C,YACzCmiF,EACAvgH,YAAK,6BAGM6d,EAAyBugB,YAAemiF,EAAcvgH,YAAK,qBAE3D2d,EAAqBygB,YAAemiF,EAAcvgH,YAAK,iBAEvDw2E,EAA4Bp4C,YAAemiF,EAAcvgH,YAAK,wBAE9Du8F,EAAuBn+D,YAAemiF,EAAcvgH,YAAK,mBACzD08F,EAAoBt+D,YAAemiF,EAAcvgH,YAAK,gBAEtDi8D,EAAiB79B,YAC5BmiF,EACAvgH,YAAK,aAGMC,EAAiBm+B,YAAemiF,EAAcvgH,YAAK,aAEnDkzG,EAAqB90E,YAAen+B,EAAgBD,YAAK,iBAEzDw7G,EAAwB,eAAC3zF,EAAD,uDAAiB,GAAjB,OACnCrpC,OAAOlB,KAAKuqC,GAAep6B,QAAO,SAACC,EAAKV,GAAN,OAAeU,EAAG,eAAYV,EAAZ,YAAmB66B,EAAc76B,MAAS,KAEnFyvH,EAAkB,SAAA50F,GAAa,OAC1CuW,YAAen+B,EAAgBizG,GAAoB,SAACprH,EAAUC,GAC5D,IAAM4W,EAAOyJ,mBAAmBtgB,EAASK,UACnC8Z,EAASmG,mBACb01B,YAAmBp9C,OAAOghB,SAASO,OAASvhB,OAAOghB,SAASQ,WAI9D,MAAM,GAAN,OAAUna,EAAV,uBACED,EAASa,YADX,iBAESgW,EAFT,mBAEwBsD,GAFxB,OAEiCsnB,KAFjC,OAEgDiyF,EAAsB3zF,QAI7DgyF,GADwBz7E,YAAen+B,EAAgBD,YAAK,oBAC9Bo+B,YACzCn+B,GACA,gBAAGlX,EAAH,EAAGA,eAAH,OAAwBA,GAtEM,mCAsEaA,MAKhC2/B,EAAuB0V,YAClCn+B,GACA,SAACnY,GAAD,OAAcA,EAASM,iBAAmBN,EAASI,oBAExCm2H,EAAuBjgF,YAAen+B,EAAgBD,YAAK,mBAC3D4hE,EAAwBxjC,YAAen+B,EAAgBD,YAAK,oBAE5D49G,EAAyBx/E,YACpCmiF,EACAj3F,YAAK,CAAC,SAAU,sBAELwnF,EAAqB1yE,YAChCmiF,GACA,SAACje,GAAD,OAAYA,EAAOr5G,OAAOC,gBAGfwtF,EAAct4C,YACzBmiF,GACA,SAACje,GAAD,OAAYA,EAAOl5G,SAGR8wH,EAA2B97E,YAAemiF,EAAcvgH,YAAK,uBAC7D46E,EAAwCx8C,YACnDmiF,EAAcvgH,YAAK,oCAGRygH,EAAgBriF,YAAemiF,GAAc,SAAAje,GAAM,OAAIA,EAAOjhH,WAE9Dk/B,EAAqB,SAAuBmgG,GAAvB,OAChCtiF,YAAeqiF,GAAe,SAACp/H,GAAD,OAAaA,EAAQq/H,OAGxCvvB,EAAsB5wE,EAAmB,mBACzCk8E,EAAmCl8E,EAC9C,mCAEWk9E,EAAsCl9E,EAAmB,6BACzDoxE,EAAwBpxE,EAAmB,mBAI3Cq4E,GAF0Br4E,EAAmB,sBACjBA,EAAmB,wBACzBA,EAAmB,mBACzC82D,EAAuB92D,EAAmB,qBAE1C+9F,EAAc/9F,EAAmB,SACjChgC,EAAiBggC,EAAmB,aACpCo9E,EAA8Bp9E,EAAmB,6BACjD23D,EAAmB33D,EAAmB,eAEtC03E,EAA2B13E,EAAmB,SAC9CstD,EAA2BttD,EAAmB,eAC9CutD,EAA6BvtD,EAAmB,mBAChD0gB,EAAwB1gB,EAAmB,YAC3C2gB,EAAyB3gB,EAAmB,aAG5CogG,GAF8BpgG,EAAmB,4BAE1B6d,YAClCmiF,GACA,SAACje,GAAD,OAAYA,EAAOj5G,eAAeG,SAGvBm1C,EAAoCP,YAC/CuiF,GACA,SAACtiF,EAAD,YAAe1vC,WACf,SAACiyH,EAAajyH,GAAd,cAA0BiyH,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAah1H,OAAO+C,MAGnC65B,GAAuB4V,YAAemiF,GAAc,SAAAje,GAAM,OAAIA,EAAO54G,mB,0ECrJ5Em3H,EAAaloD,YAAO,KAAV,yEAAGA,CAAH,yDAEHK,YAAS,WAGPA,YAAS,WAITA,YAAS,WAaTu+C,IAJA,SAAC,GAAD,QAAGuJ,iBAAH,MAAe34F,IAAf,EAAwB3oC,EAAxB,oCACb,kBAACshI,EAAD,eAAWp5F,GAAIm5F,GAAgBrhI,M,qFCnBpB0F,EAAsB,SAA2CyZ,GAC5E,IAAM68D,EAASp3E,uBAAuBua,EAAKuvF,eAE3C,OAAO1vG,OAAOuiI,OAAOvlD,EAAQ,CAC3B7uE,QAAS6uE,EACT5uE,QAASxI,uBAAY,UAChBua,EAAKuvF,cADW,aAEnB,SAAC3nG,GAAD,OAAaA,KACb,SAACy6H,GAAD,OAAUA,KAEZn0H,QAASzI,uBAAY,UAChBua,EAAKuvF,cADW,aAEnB,SAAC3nG,GAAD,OAAaA,KACb,SAACy6H,GAAD,sBACKA,EADL,CAEEl9G,OAAO,W,mPCfFxT,EAAoB,oBA2CpB2wH,GAAwB,mBA1CU,mCA8CV,GAJA,2CAMR,GANQ,cAzCN,mBAiDV,GARgB,iCASlB,GATkB,oCAaf,GAbe,sCAeb,GAfa,gCAiBnB,GAjBmB,cAmBlC3wH,GAAoB,GAnBc,cAvCT,gBA6DV,GAtBmB,cAxChB,QA+DV,SAvB0B,0BA0BxBwtB,QAAQp9B,OAAO2jB,mBAAqB3jB,OAAOwgI,oBA1BnB,2CA4BR,GA5BQ,6BA8BtB,GA9BsB,sBAiC5B,QAjC4B,4BAkCtB,WAlCsB,iCAmClB,GAnCkB,yBAoCzB,WApCyB,yCAqCT,WArCS,0BAsCxB,GAtCwB,GAsExBh0H,EAAmC,WAC9C,IAAMi0H,EAA0B3iI,OAAOlB,KAAKkG,cACzC+H,QAAO,SAAAyB,GAAG,OAAIA,EAAI4R,WAAW,aA7GE,iBA6Ga5R,KAC5CvB,KAAI,SAAAuB,GAAG,sBAhCoB,SAAmBA,GAAnB,OAC9BA,EAAInG,QAAQ,aAAc,IAAIA,QA/EI,eAHf,SAkHdu6H,CAAwBp0H,GA9BC,SAAmBA,GACjD,IAOIq0H,EAPE5kI,EAAQ+G,aAAaqgB,QAAQ7W,GAGnC,GAAc,OAAVvQ,GAA4B,cAAVA,EAEpB,OADA+G,aAAakgB,WAAW1W,GACjB,KAGT,IACEq0H,EAAS9zH,KAAKC,MAAM/Q,GACpB,MAAOkH,GAGP,MA/FgC,iBA+F5BqJ,GAAgCvQ,EAC3BA,GAGTuC,QAAQC,IAAR,wCAA6C+N,EAA7C,qBAEAxJ,aAAakgB,WAAW1W,GACjB,MAET,OAAOq0H,EAO6BC,CAAwBt0H,OAEzDzB,QAAO,SAAAykC,GAAC,OAA4B,OAAxBxxC,OAAOsN,OAAOkkC,GAAG,MAE1BuxF,EAAmBj2H,YAAS61H,GAClC,OAAOrmD,YAAWmmD,EAAiBM,IAGxB93H,EAAgCyD,IAChC+R,EAAqBxV,EAA6B,aAElDwD,EAAoB,WACNzO,OAAOlB,KAAKkG,cACpB/E,SAAQ,SAAAuO,IACnBA,EAAI4R,WAAWjd,MAAmCqL,EAAI4R,WAAW,cACnEpb,aAAakgB,WAAW1W,S","file":"static/js/main.e248095a.chunk.js","sourcesContent":["export const zeropad = (x: string | number) => {\n if (x > -10 && x < 10) {\n return `0${x}`\n }\n return `${x}`\n}\n\ninterface ScalableUnits {\n [unitGroupName: string]: {\n [unitName: string]: number\n }\n}\n\nexport const leaveAtLeast1Decimal = (number: number) => {\n const decimalPortion = `${number}`.split(\".\")[1]\n if (decimalPortion && decimalPortion.length > 1) {\n return `${number}`\n }\n\n let tms = number * 10\n const integer = Math.floor(tms / 10)\n\n tms -= integer * 10\n return `${integer}.${tms}`\n}\n\ntype TimeUnit = \"MINUTES\" | \"HOURS\" | \"DAYS\"\nconst seconds2time = (seconds: number, maxTimeUnit: TimeUnit) => {\n let secondsReturn = Math.abs(seconds)\n\n const days = maxTimeUnit === \"DAYS\" ? Math.floor(secondsReturn / 86400) : 0\n secondsReturn -= days * 86400\n\n const hours =\n maxTimeUnit === \"DAYS\" || maxTimeUnit === \"HOURS\" ? Math.floor(secondsReturn / 3600) : 0\n secondsReturn -= hours * 3600\n\n const minutes = Math.floor(secondsReturn / 60)\n secondsReturn -= minutes * 60\n\n const daysString = maxTimeUnit === \"DAYS\" ? `${days}d:` : \"\"\n const hoursString = maxTimeUnit === \"DAYS\" || maxTimeUnit === \"HOURS\" ? `${zeropad(hours)}:` : \"\"\n const minutesString = `${zeropad(minutes)}:`\n let secondsString = zeropad(secondsReturn.toFixed(2))\n\n return `${daysString}${hoursString}${minutesString}${secondsString}`\n}\n\nconst scalableUnits: ScalableUnits = {\n \"packets/s\": {\n pps: 1,\n Kpps: 1000,\n Mpps: 1000000,\n },\n pps: {\n pps: 1,\n Kpps: 1000,\n Mpps: 1000000,\n },\n \"kilobits/s\": {\n \"bits/s\": 1 / 1000,\n \"kilobits/s\": 1,\n \"megabits/s\": 1000,\n \"gigabits/s\": 1000000,\n \"terabits/s\": 1000000000,\n },\n \"bytes/s\": {\n \"bytes/s\": 1,\n \"kilobytes/s\": 1024,\n \"megabytes/s\": 1024 * 1024,\n \"gigabytes/s\": 1024 * 1024 * 1024,\n \"terabytes/s\": 1024 * 1024 * 1024 * 1024,\n },\n \"kilobytes/s\": {\n \"bytes/s\": 1 / 1024,\n \"kilobytes/s\": 1,\n \"megabytes/s\": 1024,\n \"gigabytes/s\": 1024 * 1024,\n \"terabytes/s\": 1024 * 1024 * 1024,\n },\n \"B/s\": {\n \"B/s\": 1,\n \"KiB/s\": 1024,\n \"MiB/s\": 1024 * 1024,\n \"GiB/s\": 1024 * 1024 * 1024,\n \"TiB/s\": 1024 * 1024 * 1024 * 1024,\n },\n \"KB/s\": {\n \"B/s\": 1 / 1024,\n \"KB/s\": 1,\n \"MB/s\": 1024,\n \"GB/s\": 1024 * 1024,\n \"TB/s\": 1024 * 1024 * 1024,\n },\n \"KiB/s\": {\n \"B/s\": 1 / 1024,\n \"KiB/s\": 1,\n \"MiB/s\": 1024,\n \"GiB/s\": 1024 * 1024,\n \"TiB/s\": 1024 * 1024 * 1024,\n },\n bytes: {\n bytes: 1,\n kilobytes: 1024,\n megabytes: 1024 * 1024,\n gigabytes: 1024 * 1024 * 1024,\n terabytes: 1024 * 1024 * 1024 * 1024,\n },\n Hz: {\n Hz: 1,\n kHz: 10 ** 3,\n MHz: 10 ** 6,\n GHz: 10 ** 9,\n THz: 10 ** 12,\n PHz: 10 ** 15,\n EHz: 10 ** 18,\n ZHz: 10 ** 21,\n },\n B: {\n B: 1,\n KiB: 1024,\n MiB: 1024 * 1024,\n GiB: 1024 * 1024 * 1024,\n TiB: 1024 * 1024 * 1024 * 1024,\n PiB: 1024 * 1024 * 1024 * 1024 * 1024,\n },\n KB: {\n B: 1 / 1024,\n KB: 1,\n MB: 1024,\n GB: 1024 * 1024,\n TB: 1024 * 1024 * 1024,\n },\n KiB: {\n B: 1 / 1024,\n KiB: 1,\n MiB: 1024,\n GiB: 1024 * 1024,\n TiB: 1024 * 1024 * 1024,\n },\n MB: {\n B: 1 / (1024 * 1024),\n KB: 1 / 1024,\n MB: 1,\n GB: 1024,\n TB: 1024 * 1024,\n PB: 1024 * 1024 * 1024,\n },\n MiB: {\n B: 1 / (1024 * 1024),\n KiB: 1 / 1024,\n MiB: 1,\n GiB: 1024,\n TiB: 1024 * 1024,\n PiB: 1024 * 1024 * 1024,\n },\n GB: {\n B: 1 / (1024 * 1024 * 1024),\n KB: 1 / (1024 * 1024),\n MB: 1 / 1024,\n GB: 1,\n TB: 1024,\n PB: 1024 * 1024,\n EB: 1024 * 1024 * 1024,\n },\n GiB: {\n B: 1 / (1024 * 1024 * 1024),\n KiB: 1 / (1024 * 1024),\n MiB: 1 / 1024,\n GiB: 1,\n TiB: 1024,\n PiB: 1024 * 1024,\n EiB: 1024 * 1024 * 1024,\n },\n /*\n 'milliseconds': {\n 'seconds': 1000\n },\n 'seconds': {\n 'milliseconds': 0.001,\n 'seconds': 1,\n 'minutes': 60,\n 'hours': 3600,\n 'days': 86400\n }\n */\n}\n\nlet currentTemperatureSetting: \"celsius\" | \"fahrenheit\"\nlet currentSecondsAsTimeSetting: boolean\ninterface ConvertibleUnits {\n [unitIn: string]: {\n [unitOut: string]: {\n check: ((number: number) => boolean) | (() => boolean)\n convert: (number: number) => number | string\n }\n }\n}\n\nconst twoFixed =\n (multiplier: number = 1) =>\n (value: number) =>\n (value * multiplier).toFixed(2)\n\nconst convertibleUnits: ConvertibleUnits = {\n Celsius: {\n Fahrenheit: {\n check() {\n return currentTemperatureSetting === \"fahrenheit\"\n },\n convert(value: number) {\n return (value * 9) / 5 + 32\n },\n },\n },\n celsius: {\n fahrenheit: {\n check() {\n return currentTemperatureSetting === \"fahrenheit\"\n },\n convert(value: number) {\n return (value * 9) / 5 + 32\n },\n },\n },\n milliseconds: {\n microseconds: {\n check: (max: number) => max < 1,\n convert: twoFixed(1000),\n },\n milliseconds: {\n check: (max: number) => max >= 1 && max < 1000,\n convert: twoFixed(),\n },\n seconds: {\n check: (max: number) => max >= 1000 && max < 60000,\n convert: twoFixed(0.001),\n },\n \"MM:SS.ms\": {\n check: (max: number) => currentSecondsAsTimeSetting && max >= 60000 && max < 3600_000,\n convert: (value: number) => seconds2time(value / 1000, \"MINUTES\"),\n },\n \"HH:MM:SS.ms\": {\n check: (max: number) => currentSecondsAsTimeSetting && max >= 3600_000 && max < 86_400_000,\n convert: (value: number) => seconds2time(value / 1000, \"HOURS\"),\n },\n \"dHH:MM:SS.ms\": {\n check: (max: number) => currentSecondsAsTimeSetting && max >= 86_400_000,\n convert: (value: number) => seconds2time(value / 1000, \"DAYS\"),\n },\n },\n\n seconds: {\n microseconds: {\n check: (max: number) => max < 0.001,\n convert: twoFixed(1000_000),\n },\n milliseconds: {\n check: (max: number) => max >= 0.001 && max < 1,\n convert: twoFixed(1000),\n },\n seconds: {\n check: (max: number) => max >= 1 && max < 60,\n convert: twoFixed(1),\n },\n \"MM:SS.ms\": {\n check: (max: number) => currentSecondsAsTimeSetting && max >= 60 && max < 3600,\n convert: (value: number) => seconds2time(value, \"MINUTES\"),\n },\n \"HH:MM:SS.ms\": {\n check: (max: number) => currentSecondsAsTimeSetting && max >= 3600 && max < 86_400,\n convert: (value: number) => seconds2time(value, \"HOURS\"),\n },\n \"dHH:MM:SS.ms\": {\n check: (max: number) => currentSecondsAsTimeSetting && max >= 86_400,\n convert: (value: number) => seconds2time(value, \"DAYS\"),\n },\n },\n}\n\nconst identity = (value: number) => value\n\ninterface Keys {\n [commonUnitsKey: string]: {\n [uuid: string]: {\n divider: number\n units: string\n }\n }\n}\ninterface Latest {\n [commonUnitsKey: string]: {\n divider: number\n units: string\n }\n}\nexport const unitsConversionCreator = {\n // todo lift the state\n keys: {} as Keys, // keys for data-common-units\n latest: {} as Latest, // latest selected units for data-common-units\n\n globalReset() {\n this.keys = {}\n this.latest = {}\n },\n\n // get a function that converts the units\n // + every time units are switched call the callback\n get(\n uuid: string,\n min: number,\n max: number,\n units: string | undefined,\n desiredUnits: undefined | null | string,\n commonUnitsName: string | null | undefined,\n switchUnitsCallback: (units: string) => void,\n temperatureSetting: \"celsius\" | \"fahrenheit\",\n secondsAsTimeSetting: boolean\n ) {\n // validate the parameters\n if (typeof units === \"undefined\") {\n // eslint-disable-next-line no-param-reassign\n units = \"undefined\"\n }\n\n // it will be removed when we'll lift the state to redux\n currentTemperatureSetting = temperatureSetting\n currentSecondsAsTimeSetting = secondsAsTimeSetting\n\n // check if we support units conversion\n if (typeof scalableUnits[units] === \"undefined\"\n && typeof convertibleUnits[units] === \"undefined\"\n ) {\n // we can't convert these units\n // console.log('DEBUG: ' + uuid.toString() + ' can\\'t convert units: ' + units.toString());\n return (value: number) => value\n }\n\n // check if the caller wants the original units\n if (desiredUnits === undefined || desiredUnits === null || desiredUnits === \"original\"\n || desiredUnits === units\n ) {\n // console.log('DEBUG: ' + uuid.toString() + ' original units wanted');\n switchUnitsCallback(units)\n return identity\n }\n\n // now we know we can convert the units\n // and the caller wants some kind of conversion\n\n let tunits = null\n let tdivider = 0\n\n if (typeof scalableUnits[units] !== \"undefined\") {\n // units that can be scaled\n // we decide a divider\n\n if (desiredUnits === \"auto\") {\n // the caller wants to auto-scale the units\n\n // find the absolute maximum value that is rendered on the chart\n // based on this we decide the scale\n /* eslint-disable no-param-reassign */\n min = Math.abs(min)\n max = Math.abs(max)\n if (min > max) {\n max = min\n }\n /* eslint-enable no-param-reassign */\n\n const scalableUnitsGroup = scalableUnits[units]\n Object.keys(scalableUnitsGroup).forEach((unit) => {\n const unitDivider = scalableUnitsGroup[unit]\n if (unitDivider <= max && unitDivider > tdivider) {\n tunits = unit\n tdivider = unitDivider\n }\n })\n\n if (tunits === null || tdivider <= 0) {\n // we couldn't find auto-scaling candidate for unit\n switchUnitsCallback(units)\n return identity\n }\n\n if (typeof commonUnitsName === \"string\") {\n // the caller wants several charts to have the same units\n // data-common-units\n\n const commonUnitsKey = `${commonUnitsName}-${units}`\n\n // add our divider into the list of keys\n let t = this.keys[commonUnitsKey]\n if (typeof t === \"undefined\") {\n this.keys[commonUnitsKey] = {}\n t = this.keys[commonUnitsKey]\n }\n t[uuid] = {\n units: tunits,\n divider: tdivider,\n }\n\n // find the max divider of all charts\n let commonUnits = t[uuid]\n // todo remove imperative forEach\n Object.keys(t).forEach((x) => {\n if (t[x].divider > commonUnits.divider) {\n commonUnits = t[x]\n }\n })\n\n // save our common_max to the latest keys\n const latest = {\n units: commonUnits.units,\n divider: commonUnits.divider,\n }\n this.latest[commonUnitsKey] = latest\n\n tunits = latest.units\n tdivider = latest.divider\n\n // apply it to this chart\n switchUnitsCallback(tunits)\n return (value: number) => {\n if (tdivider !== latest.divider) {\n // another chart switched our common units\n // we should switch them too\n tunits = latest.units\n tdivider = latest.divider\n switchUnitsCallback(tunits)\n }\n\n return value / tdivider\n }\n }\n // the caller did not give data-common-units\n // this chart auto-scales independently of all others\n\n switchUnitsCallback(tunits)\n return (value: number) => value / tdivider\n }\n // the caller wants specific units\n\n if (typeof scalableUnits[units][desiredUnits] !== \"undefined\") {\n // all good, set the new units\n tdivider = scalableUnits[units][desiredUnits]\n switchUnitsCallback(desiredUnits)\n return (value: number) => value / tdivider\n }\n // oops! switch back to original units\n // eslint-disable-next-line no-console\n console.log(`Units conversion from ${units.toString()} to ${desiredUnits.toString()}\n is not supported.`)\n\n switchUnitsCallback(units)\n return identity\n } if (typeof convertibleUnits[units] !== \"undefined\") {\n // units that can be converted\n if (desiredUnits === \"auto\") {\n let newConvertFunction: ((number: number) => number | string) | undefined\n Object.keys(convertibleUnits[units]).forEach((x) => {\n if (newConvertFunction) { return }\n if (convertibleUnits[(units as string)][x].check(max)) {\n // converting\n switchUnitsCallback(x)\n newConvertFunction = convertibleUnits[(units as string)][x].convert\n }\n })\n if (newConvertFunction) {\n return newConvertFunction\n }\n\n // none checked ok (no conversion available)\n switchUnitsCallback(units)\n return identity\n } if (typeof convertibleUnits[units][desiredUnits] !== \"undefined\") {\n switchUnitsCallback(desiredUnits)\n return convertibleUnits[units][desiredUnits].convert\n }\n // eslint-disable-next-line no-console\n console.log(`Units conversion from ${units.toString()} to ${desiredUnits.toString()}\n is not supported.`)\n switchUnitsCallback(units)\n return identity\n }\n // hm... did we forget to implement the new type?\n // eslint-disable-next-line no-console\n console.log(`Unmatched unit conversion method for units ${units.toString()}`)\n switchUnitsCallback(units)\n return identity\n },\n}\n","import * as React from \"react\"\nimport classNames from \"classnames\"\n\nimport \"./button.css\"\n\ntype Props = React.ButtonHTMLAttributes<HTMLButtonElement>\nexport const Button = React.forwardRef(({\n children,\n className,\n ...rest\n}: Props, ref: React.Ref<HTMLButtonElement>) => (\n <button\n {...rest} // eslint-disable-line react/jsx-props-no-spreading\n type=\"button\"\n className={classNames(\"netdata-reset-button\", className)}\n ref={ref}\n >\n {children}\n </button>\n))\n","import React, { useRef, useEffect } from \"react\"\nimport classNames from \"classnames\"\n\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectShowHelp } from \"domains/global/selectors\"\nimport { Icon, IconType } from \"components/icon\"\nimport { Button } from \"components/button\"\n\ntype ClickCallback = (event: React.MouseEvent) => void\ninterface ToolboxButtonProps {\n className?: string\n iconType: IconType\n onClick?: ClickCallback\n onDoubleClick?: (event: React.MouseEvent) => void\n onMouseDown?: (event: React.MouseEvent) => void\n onTouchStart?: (event: React.TouchEvent) => void\n popoverContent: string\n popoverTitle: string\n}\nexport const ToolboxButton = ({\n className,\n iconType,\n onClick,\n onDoubleClick,\n onMouseDown,\n onTouchStart,\n popoverContent,\n popoverTitle,\n}: ToolboxButtonProps) => {\n const buttonRef = useRef(null)\n const showHelp = useSelector(selectShowHelp)\n useEffect(() => {\n if (buttonRef.current && showHelp) {\n window.$(buttonRef.current).popover({\n container: \"body\",\n animation: false,\n html: true,\n trigger: \"hover\",\n placement: \"bottom\",\n delay: {\n show: window.NETDATA.options.current.show_help_delay_show_ms,\n hide: window.NETDATA.options.current.show_help_delay_hide_ms,\n },\n title: popoverTitle,\n content: popoverContent,\n })\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n return (\n <Button\n className={classNames(className)}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n ref={buttonRef}\n >\n <Icon iconType={iconType} />\n </Button>\n )\n}\n","import React, { useState, useCallback, useEffect } from \"react\"\nimport { ToolboxButton } from \"domains/chart/components/toolbox-button\"\nimport { setResizeHeightAction } from \"domains/chart/actions\"\nimport { LEGEND_BOTTOM_SINGLE_LINE_HEIGHT } from \"domains/chart/utils/legend-utils\"\nimport { useDispatch } from \"store/redux-separate-context\"\n\nexport const LOCALSTORAGE_HEIGHT_KEY_PREFIX = \"chart_height.\"\n\ninterface Props {\n chartContainerElement: HTMLElement\n chartUuid: string\n heightId: string | undefined\n isLegendOnBottom: boolean\n}\n\nexport const ResizeHandler = ({\n chartContainerElement, chartUuid, heightId, isLegendOnBottom,\n}: Props) => {\n const [resizeHeight, setResizeHeight] = useState(() => chartContainerElement.clientHeight)\n const dispatch = useDispatch()\n\n useEffect(() => {\n // todo when attributes.id are present, hook height to localStorage\n if (resizeHeight >= 70) {\n dispatch(\n setResizeHeightAction({\n id: chartUuid,\n resizeHeight,\n }),\n )\n }\n }, [resizeHeight, chartUuid, heightId, dispatch])\n\n const handleResize = useCallback(\n (event) => {\n event.preventDefault()\n const intialHeight = chartContainerElement.clientHeight\n const eventStartHeight = event.type === \"touchstart\"\n ? event.touches[0].clientY\n : event.clientY\n\n const setHeight = (currentHeight: number) => {\n const nextHeight = intialHeight + currentHeight - eventStartHeight\n // eslint-disable-next-line no-param-reassign\n chartContainerElement.style.height = `${nextHeight.toString()}px`\n setResizeHeight(nextHeight)\n if (heightId) {\n const heightForPersistance = isLegendOnBottom\n ? (nextHeight - LEGEND_BOTTOM_SINGLE_LINE_HEIGHT)\n : nextHeight\n localStorage.setItem(\n `${LOCALSTORAGE_HEIGHT_KEY_PREFIX}${heightId}`,\n `${heightForPersistance}`,\n )\n }\n }\n\n const onMouseMove = (e: MouseEvent) => setHeight(e.clientY)\n const onTouchMove = (e: TouchEvent) => setHeight(e.touches[0].clientY)\n\n const onMouseEnd = () => {\n document.removeEventListener(\"mousemove\", onMouseMove)\n document.removeEventListener(\"mouseup\", onMouseEnd)\n }\n\n const onTouchEnd = () => {\n document.removeEventListener(\"touchmove\", onTouchMove)\n document.removeEventListener(\"touchend\", onTouchEnd)\n }\n\n if (event.type === \"touchstart\") {\n document.addEventListener(\"touchmove\", onTouchMove)\n document.addEventListener(\"touchend\", onTouchEnd)\n } else {\n document.addEventListener(\"mousemove\", onMouseMove)\n document.addEventListener(\"mouseup\", onMouseEnd)\n }\n },\n [chartContainerElement.clientHeight, chartContainerElement.style.height, heightId,\n isLegendOnBottom],\n )\n\n return (\n <ToolboxButton\n className=\"netdata-legend-resize-handler\"\n onDoubleClick={(event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onMouseDown={handleResize}\n onTouchStart={handleResize}\n iconType=\"resize\"\n popoverTitle=\"Chart Resize\"\n popoverContent=\"Drag this point with your mouse or your finger (on touch devices), to resize\n the chart vertically. You can also <b>double click it</b> or <b>double tap it</b> to reset\n between 2 states: the default and the one that fits all the values.<br/><small>Help\n can be disabled from the settings.</small>\"\n />\n )\n}\n","import { createAction } from \"redux-act\"\n\nimport { createRequestAction } from \"utils/createRequestAction\"\nimport { RegistryMachine } from \"domains/global/sagas\"\nimport { storeKey } from \"./constants\"\nimport { ActiveAlarms, ChartsMetadata, Snapshot, Alarm, UserNodeAccessMessage } from \"./types\"\n\ninterface RequestCommonColors {\n chartContext: string\n chartUuid: string\n colorsAttribute: string | undefined\n commonColorsAttribute: string | undefined\n dimensionNames: string[]\n}\nexport const requestCommonColorsAction = createAction<RequestCommonColors>(\n `${storeKey}/globalRequestCommonColors`\n)\n\ninterface SetCommonMinAction {\n chartUuid: string\n commonMinKey: string\n value: number\n}\nexport const setCommonMinAction = createAction<SetCommonMinAction>(`${storeKey}/setCommonMin`)\n\ninterface SetCommonMaxAction {\n chartUuid: string\n commonMaxKey: string\n value: number\n}\nexport const setCommonMaxAction = createAction<SetCommonMaxAction>(`${storeKey}/setCommonMax`)\n\ninterface SetGlobalSelectionAction {\n chartUuid: string | null\n hoveredX: number\n}\nexport const setGlobalSelectionAction = createAction<SetGlobalSelectionAction>(\n `${storeKey}/setGlobalSelection`\n)\n\nexport interface SetGlobalPanAndZoomAction {\n after: number\n before: number\n masterID?: string\n shouldForceTimeRange?: boolean\n}\nexport const setGlobalPanAndZoomAction = createAction<SetGlobalPanAndZoomAction>(\n `${storeKey}/setGlobalPanAndZoom`\n)\n\nexport const resetGlobalPanAndZoomAction = createAction(`${storeKey}/resetGlobalPanAndZoomAction`)\n\nexport interface SetDefaultAfterAction {\n after: number\n}\nexport const setDefaultAfterAction = createAction<SetDefaultAfterAction>(\n `${storeKey}/setDefaultAfterAction`\n)\n\nexport const resetDefaultAfterAction = createAction(`${storeKey}/resetDefaultAfterAction`)\n\nexport interface SetGlobalChartUnderlayAction {\n after: number\n before: number\n masterID: string\n}\nexport const setGlobalChartUnderlayAction = createAction<SetGlobalChartUnderlayAction>(\n `${storeKey}/setGlobalChartUnderlay`\n)\n\nexport const centerAroundHighlightAction = createAction(`${storeKey}/centerAroundHighlightAction`)\nexport const clearHighlightAction = createAction(`${storeKey}/clearHighlightAction`)\n\ninterface WindowFocusChangeAction {\n hasWindowFocus: boolean\n}\nexport const windowFocusChangeAction = createAction<WindowFocusChangeAction>(\n `${storeKey}/windowFocusChangeAction`\n)\n\nexport interface FetchHelloPayload {\n serverDefault: string\n}\n/* eslint-disable camelcase */\nexport interface HelloResponse {\n action: \"hello\"\n anonymous_statistics: boolean\n cloud_base_url: string\n hostname: string\n machine_guid: string\n registry: string\n status: string\n}\n/* eslint-enable camelcase */\n\nexport const fetchHelloAction = createRequestAction<\n FetchHelloPayload,\n { cloudBaseURL: string; hostname: string; isCloudEnabled: boolean; machineGuid: string }\n>(`${storeKey}/fetchHelloAction`)\n\ninterface UpdatePersonUrlsAction {\n personGuid: string\n registryMachines: { [key: string]: RegistryMachine }\n registryMachinesArray: RegistryMachine[]\n}\nexport const updatePersonUrlsAction = createAction<UpdatePersonUrlsAction>(\n `${storeKey}/updatePersonUrlsAction`\n)\n\nexport interface AccessRegistrySuccessAction {\n registryServer: string\n}\nexport const accessRegistrySuccessAction = createAction<AccessRegistrySuccessAction>(\n `${storeKey}/accessRegistrySuccessAction`\n)\n\nexport interface StartAlarmsPayload {\n serverDefault: string\n}\nexport const startAlarmsAction = createAction<StartAlarmsPayload>(`${storeKey}/startAlarmsAction`)\n\nexport const fetchAllAlarmsAction = createRequestAction(`${storeKey}/fetchAllAlarmsAction`)\n\nexport interface UpdateActiveAlarmAction {\n activeAlarms: ActiveAlarms\n}\nexport const updateActiveAlarmsAction = createAction<UpdateActiveAlarmAction>(\n `${storeKey}/updateActiveAlarmsAction`\n)\n\nexport interface SetOptionAction {\n key: string\n value: unknown\n}\nexport const setOptionAction = createAction<SetOptionAction>(`${storeKey}/setOptionAction`)\n\nexport const resetOptionsAction = createAction(`${storeKey}/resetOptions`)\n\nexport const loadSnapshotAction = createAction<{ snapshot: Snapshot }>(\n `${storeKey}/loadSnapshotAction`\n)\n\nexport const chartsMetadataRequestSuccess = createAction<{ data: ChartsMetadata }>(\n `${storeKey}/chartsMetadataRequestSuccess`\n)\n\nexport interface SetSpacePanelStatusActionPayload {\n isActive: boolean\n}\nexport const setSpacePanelStatusAction = createAction<SetSpacePanelStatusActionPayload>(\n `${storeKey}/setSpacePanelStatusAction`\n)\n\nexport interface SetSpacePanelTransitionEndPayload {\n isActive: boolean\n}\nexport const setSpacePanelTransitionEndAction = createAction<SetSpacePanelTransitionEndPayload>(\n `${storeKey}/setSpacePanelStatusAction`\n)\n\nexport const setAlarmAction = createAction<{ alarm: Alarm }>(`${storeKey}/setAlarmAction`)\n\nexport const resetRegistry = createAction(`${storeKey}/resetRegistry`)\n\nexport const setGlobalPauseAction = createAction(`${storeKey}/setGlobalPauseAction`)\nexport const resetGlobalPauseAction = createAction<{ forcePlay?: boolean }>(\n `${storeKey}/resetGlobalPauseAction`\n)\nexport const setUTCOffset = createAction<{ utcOffset?: number | string }>(\n `${storeKey}/setUTCOffset`\n)\n\nexport const setUserNodeAccess = createAction<{ message: UserNodeAccessMessage }>(\n `${storeKey}/setUserNodeAccess`\n)\n","import { useCallback } from \"react\"\nimport { useDispatch } from \"react-redux\"\nimport { sendToChildIframe, useListenToPostMessage } from \"utils/post-message\"\nimport { setUserNodeAccess } from \"domains/global/actions\"\nimport { UserNodeAccessMessage } from \"domains/global/types\"\nimport { SIGN_IN_IFRAME_ID } from \"components/header/constants\"\n\nconst useUserNodeAccessMessage = () => {\n const dispatch = useDispatch()\n useListenToPostMessage<UserNodeAccessMessage>(\"user-node-access\", message => {\n dispatch(setUserNodeAccess({ message }))\n })\n}\n\nexport const useRequestRefreshOfAccessMessage = () => {\n return useCallback(() => {\n sendToChildIframe(SIGN_IN_IFRAME_ID, { type: \"request-refresh-access\", payload: true })\n }, [])\n}\n\nexport default useUserNodeAccessMessage\n","export * from \"./utils\"\n","export const name2id = (s: string) => s\n .replace(/ /g, \"_\")\n .replace(/:/g, \"_\")\n .replace(/\\(/g, \"_\")\n .replace(/\\)/g, \"_\")\n .replace(/\\./g, \"_\")\n .replace(/\\//g, \"_\")\n","import { init, last, mergeAll } from \"ramda\"\nimport { createReducer } from \"redux-act\"\n\nimport { getInitialAfterFromWindow } from \"utils/utils\"\nimport { isMainJs } from \"utils/env\"\nimport { RegistryMachine } from \"domains/global/sagas\"\nimport { Alarm, ActiveAlarms, Snapshot, ChartsMetadata } from \"domains/global/types\"\nimport { fetchInfoAction } from \"domains/chart/actions\"\nimport { InfoPayload } from \"./__mocks__/info-mock\"\nimport {\n requestCommonColorsAction,\n setGlobalChartUnderlayAction,\n setGlobalSelectionAction,\n setGlobalPanAndZoomAction,\n centerAroundHighlightAction,\n clearHighlightAction,\n resetGlobalPanAndZoomAction,\n setDefaultAfterAction,\n windowFocusChangeAction,\n fetchHelloAction,\n updatePersonUrlsAction,\n startAlarmsAction,\n updateActiveAlarmsAction,\n setOptionAction,\n loadSnapshotAction,\n chartsMetadataRequestSuccess,\n setCommonMaxAction,\n setCommonMinAction,\n resetOptionsAction,\n setSpacePanelStatusAction,\n setSpacePanelTransitionEndAction,\n resetRegistry,\n accessRegistrySuccessAction,\n resetDefaultAfterAction,\n setAlarmAction,\n setGlobalPauseAction,\n resetGlobalPauseAction,\n setUTCOffset,\n setUserNodeAccess,\n} from \"./actions\"\nimport {\n Options,\n optionsMergedWithLocalStorage,\n getOptionsMergedWithLocalStorage,\n clearLocalStorage,\n} from \"./options\"\nimport { CLOUD_BASE_URL_DISABLED } from \"./constants\"\nimport { UserNodeAccessMessage } from \"./types\"\n\ninterface CommonMinMax {\n [commonKey: string]: {\n charts: {\n [chartUuid: string]: number\n }\n currentExtreme: number\n }\n}\n\nexport type StateT = {\n commonColorsKeys: {\n [key: string]: {\n // key can be uuid, chart's context or commonColors attribute\n assigned: {\n // name-value of dimensions and their colors\n [dimensionName: string]: string\n }\n available: string[] // an array of colors available to be used\n custom: string[] // the array of colors defined by the user\n charts: {} // the charts linked to this todo remove\n copyTheme: boolean\n }\n }\n commonMin: CommonMinMax\n commonMax: CommonMinMax\n currentSelectionMasterId: string | null\n globalPanAndZoom: null | {\n after: number // timestamp in ms\n before: number // timestamp in ms\n masterID?: string\n shouldForceTimeRange?: boolean\n }\n defaultAfter: number\n globalChartUnderlay: null | {\n after: number\n before: number\n masterID: string\n }\n hoveredX: number | null\n hasWindowFocus: boolean\n globalPause: boolean\n\n spacePanelIsActive: boolean\n spacePanelTransitionEndIsActive: boolean\n\n registry: {\n cloudBaseURL: string | null\n hasFetchedHello: boolean\n isHelloCallError: boolean | null\n hasFetchedInfo: boolean\n hostname: string\n isCloudEnabled: boolean | null\n isCloudAvailable: boolean | null\n isAgentClaimed: boolean | null\n isACLKAvailable: boolean | null\n hasStartedInfo: boolean\n fullInfoPayload: InfoPayload | null\n isFetchingHello: boolean\n machineGuid: string | null\n personGuid: string | null\n registryMachines: { [key: string]: RegistryMachine } | null\n registryMachinesArray: RegistryMachine[] | null\n registryServer: string | null\n }\n\n chartsMetadata: {\n isFetching: boolean\n isFetchingError: boolean\n data: null | ChartsMetadata\n }\n\n alarms: {\n activeAlarms: null | ActiveAlarms\n hasStartedAlarms: boolean\n }\n alarm: null | Alarm\n\n snapshot: Snapshot | null\n options: Options\n userNodeAccess: UserNodeAccessMessage\n}\n\nexport const initialDefaultAfter = isMainJs ? getInitialAfterFromWindow() : -900\n\nexport const initialState: StateT = {\n commonColorsKeys: {},\n commonMin: {},\n commonMax: {},\n currentSelectionMasterId: null,\n globalPanAndZoom: null,\n // todo for dashboard calculate it based on width and window.NETDATA.chartDefaults.after\n defaultAfter: initialDefaultAfter,\n globalChartUnderlay: null,\n hoveredX: null,\n hasWindowFocus: document.hasFocus(),\n globalPause: false,\n spacePanelIsActive: false, // set to true only for testing layout\n // the same as property above, just updated after transition ends\n spacePanelTransitionEndIsActive: false,\n\n registry: {\n cloudBaseURL: null,\n hasFetchedInfo: false,\n hasFetchedHello: false,\n isHelloCallError: null,\n hostname: \"unknown\",\n isCloudEnabled: null,\n isCloudAvailable: null,\n isAgentClaimed: null,\n isACLKAvailable: null,\n hasStartedInfo: false,\n isFetchingHello: false,\n fullInfoPayload: null,\n machineGuid: null,\n personGuid: null,\n registryMachines: null,\n registryMachinesArray: null,\n registryServer: null,\n },\n\n snapshot: null,\n alarms: {\n activeAlarms: null,\n hasStartedAlarms: false,\n },\n alarm: null,\n\n chartsMetadata: {\n isFetching: false,\n isFetchingError: false,\n data: null,\n },\n\n options: optionsMergedWithLocalStorage,\n userNodeAccess: null,\n}\n\nexport const globalReducer = createReducer<StateT>({}, initialState)\n\nexport interface GetKeyArguments {\n colorsAttribute: string | undefined\n commonColorsAttribute: string | undefined\n chartUuid: string\n chartContext: string\n}\nexport const getKeyForCommonColorsState = ({\n colorsAttribute,\n commonColorsAttribute,\n chartUuid,\n chartContext,\n}: GetKeyArguments) => {\n const hasCustomColors = typeof colorsAttribute === \"string\" && colorsAttribute.length > 0\n\n // when there's commonColors attribute, share the state between all charts with that attribute\n // if not, when there are custom colors, make each chart independent\n // if not, share the same state between charts with the same context\n return commonColorsAttribute || (hasCustomColors ? chartUuid : chartContext)\n}\n\nconst hasLastOnly = (array: string[]) => last(array) === \"ONLY\"\nconst removeLastOnly = (array: string[]) => (hasLastOnly(array) ? init(array) : array)\nconst createCommonColorsKeysSubstate = (\n colorsAttribute: string | undefined,\n hasCustomColors: boolean\n) => {\n const custom = hasCustomColors ? removeLastOnly((colorsAttribute as string).split(\" \")) : []\n const shouldCopyTheme = hasCustomColors\n ? // disable copyTheme when there's \"ONLY\" keyword in \"data-colors\" attribute\n !hasLastOnly((colorsAttribute as string).split(\" \"))\n : true\n const available = [\n ...custom,\n ...(shouldCopyTheme || custom.length === 0 ? window.NETDATA.themes.current.colors : []),\n ]\n return {\n assigned: {},\n available,\n custom,\n }\n}\n\nglobalReducer.on(\n requestCommonColorsAction,\n //@ts-ignore\n (state, { chartContext, chartUuid, colorsAttribute, commonColorsAttribute, dimensionNames }) => {\n const keyName = getKeyForCommonColorsState({\n colorsAttribute,\n commonColorsAttribute,\n chartUuid,\n chartContext,\n })\n\n const hasCustomColors = typeof colorsAttribute === \"string\" && colorsAttribute.length > 0\n const subState =\n state.commonColorsKeys[keyName] ||\n createCommonColorsKeysSubstate(colorsAttribute, hasCustomColors)\n\n const currentlyAssignedNr = Object.keys(subState.assigned).length\n const requestedDimensionsAssigned = mergeAll(\n dimensionNames\n // dont assign already assigned dimensions\n .filter(dimensionName => !subState.assigned[dimensionName])\n .map((dimensionName, i) => ({\n [dimensionName]:\n subState.available[(i + currentlyAssignedNr) % subState.available.length],\n }))\n )\n const assigned = {\n ...subState.assigned,\n ...requestedDimensionsAssigned,\n }\n\n return {\n ...state,\n commonColorsKeys: {\n ...state.commonColorsKeys,\n [keyName]: {\n ...subState,\n assigned,\n },\n },\n }\n }\n)\n\nglobalReducer.on(setCommonMinAction, (state, { chartUuid, commonMinKey, value }) => {\n const charts = {\n ...state.commonMin[commonMinKey]?.charts,\n [chartUuid]: value,\n }\n const currentExtreme = Math.min(...Object.values(charts))\n\n return {\n ...state,\n commonMin: {\n ...state.commonMin,\n [commonMinKey]: {\n charts,\n currentExtreme,\n },\n },\n }\n})\n\nglobalReducer.on(setCommonMaxAction, (state, { chartUuid, commonMaxKey, value }) => {\n const charts = {\n ...state.commonMax[commonMaxKey]?.charts,\n [chartUuid]: value,\n }\n const currentExtreme = Math.max(...Object.values(charts))\n\n return {\n ...state,\n commonMax: {\n ...state.commonMax,\n [commonMaxKey]: {\n charts,\n currentExtreme,\n },\n },\n }\n})\n\nglobalReducer.on(setSpacePanelStatusAction, (state, { isActive }) => ({\n ...state,\n spacePanelIsActive: isActive,\n}))\n\nglobalReducer.on(setSpacePanelTransitionEndAction, (state, { isActive }) => ({\n ...state,\n spacePanelTransitionEndIsActive: isActive,\n}))\n\nglobalReducer.on(setGlobalSelectionAction, (state, { chartUuid, hoveredX }) => ({\n ...state,\n hoveredX,\n currentSelectionMasterId: chartUuid,\n}))\n\nglobalReducer.on(setGlobalPanAndZoomAction, (state, payload) => ({\n ...state,\n globalPanAndZoom: payload,\n}))\n\nglobalReducer.on(resetGlobalPanAndZoomAction, state => ({\n ...state,\n globalPanAndZoom: initialState.globalPanAndZoom,\n hoveredX: initialState.hoveredX, // need to reset this also on mobile\n}))\n\nglobalReducer.on(setDefaultAfterAction, (state, { after }) => ({\n ...state,\n defaultAfter: after,\n}))\n\nglobalReducer.on(resetDefaultAfterAction, state => ({\n ...state,\n defaultAfter: initialState.defaultAfter,\n}))\n\nglobalReducer.on(setGlobalChartUnderlayAction, (state, { after, before, masterID }) => ({\n ...state,\n globalChartUnderlay: {\n after,\n before,\n masterID,\n },\n}))\n\nglobalReducer.on(centerAroundHighlightAction, state => {\n if (!state.globalChartUnderlay) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot center around empty selection\")\n return state\n }\n const { after, before } = state.globalChartUnderlay\n const highlightMargin = (before - after) / 2\n return {\n ...state,\n globalPanAndZoom: {\n after: after - highlightMargin,\n before: before + highlightMargin,\n },\n }\n})\n\nglobalReducer.on(\n clearHighlightAction,\n (state, { resetPanAndZoom = true }: { resetPanAndZoom?: boolean } = {}) => ({\n ...state,\n globalChartUnderlay: initialState.globalChartUnderlay,\n ...(resetPanAndZoom ? { globalPanAndZoom: initialState.globalPanAndZoom } : {}),\n })\n)\n\nglobalReducer.on(windowFocusChangeAction, (state, { hasWindowFocus }) => {\n // make additional check, because it's possible to get hasWindowFocus === false\n // message from iframe, after main window makes the state change (race condition)\n const hasFocusNow = document.hasFocus()\n return {\n ...state,\n hasWindowFocus: hasFocusNow || hasWindowFocus,\n }\n})\n\nglobalReducer.on(setGlobalPauseAction, state => ({ ...state, globalPause: true }))\nglobalReducer.on(resetGlobalPauseAction, (state, { forcePlay }) => ({\n ...state,\n globalPause: initialState.globalPause,\n globalPanAndZoom: initialState.globalPanAndZoom,\n hoveredX: initialState.hoveredX,\n options: { ...state.options, stop_updates_when_focus_is_lost: !forcePlay },\n}))\n\nglobalReducer.on(setUTCOffset, (state, { utcOffset }) => ({\n ...state,\n options: { ...state.options, utcOffset },\n}))\n\nglobalReducer.on(fetchHelloAction.request, state => ({\n ...state,\n registry: {\n ...state.registry,\n isFetchingHello: true,\n },\n}))\n\nglobalReducer.on(fetchHelloAction.success, (state, { cloudBaseURL, hostname, machineGuid }) => ({\n ...state,\n registry: {\n ...state.registry,\n cloudBaseURL,\n isFetchingHello: false,\n hasFetchedHello: true,\n hostname,\n machineGuid,\n },\n}))\nglobalReducer.on(fetchHelloAction.failure, state => ({\n ...state,\n registry: {\n ...state.registry,\n cloudBaseURL: CLOUD_BASE_URL_DISABLED,\n isFetchingHello: false,\n isHelloCallError: true,\n },\n}))\nglobalReducer.on(accessRegistrySuccessAction, (state, { registryServer }) => ({\n ...state,\n registry: {\n ...state.registry,\n registryServer,\n },\n}))\n\nglobalReducer.on(resetRegistry, state => ({\n ...state,\n registry: {\n ...state.registry,\n hasFetchedHello: initialState.registry.hasFetchedHello,\n },\n}))\n\nglobalReducer.on(fetchInfoAction, state => ({\n ...state,\n registry: {\n ...state.registry,\n hasStartedInfo: true,\n },\n}))\nglobalReducer.on(\n fetchInfoAction.success,\n (\n state,\n { isCloudAvailable, isCloudEnabled, isAgentClaimed, isACLKAvailable, fullInfoPayload }\n ) => ({\n ...state,\n registry: {\n ...state.registry,\n hasFetchedInfo: true,\n isCloudAvailable,\n isCloudEnabled,\n isAgentClaimed,\n isACLKAvailable,\n fullInfoPayload,\n },\n })\n)\n\nglobalReducer.on(fetchInfoAction.failure, state => ({\n ...state,\n registry: {\n ...state.registry,\n isCloudAvailable: false,\n isCloudEnabled: false,\n isAgentClaimed: false,\n isACLKAvailable: false,\n },\n}))\n\nglobalReducer.on(\n updatePersonUrlsAction,\n (state, { personGuid, registryMachines, registryMachinesArray }) => ({\n ...state,\n registry: {\n ...state.registry,\n personGuid,\n registryMachines,\n registryMachinesArray,\n },\n })\n)\n\nglobalReducer.on(startAlarmsAction, state => ({\n ...state,\n alarms: {\n ...state.alarms,\n hasStartedAlarms: true,\n },\n}))\n\nglobalReducer.on(updateActiveAlarmsAction, (state, { activeAlarms }) => ({\n ...state,\n alarms: {\n ...state.alarms,\n activeAlarms,\n },\n}))\n\nglobalReducer.on(setOptionAction, (state, { key, value }) => ({\n ...state,\n options: {\n ...state.options,\n [key]: value,\n },\n}))\n\nglobalReducer.on(resetOptionsAction, state => {\n clearLocalStorage()\n return {\n ...state,\n options: getOptionsMergedWithLocalStorage(),\n }\n})\n\nglobalReducer.on(loadSnapshotAction, (state, { snapshot }) => {\n const parsedData = Object.keys(snapshot.data)\n .map(dataKey => {\n let uncompressed\n try {\n // @ts-ignore\n uncompressed = snapshot.uncompress(snapshot.data[dataKey])\n\n // repeat old logging\n if (uncompressed === null) {\n // eslint-disable-next-line no-console\n console.warn(`uncompressed snapshot data for key ${dataKey} is null`)\n return null\n }\n\n if (typeof uncompressed === \"undefined\") {\n // eslint-disable-next-line no-console\n console.warn(`uncompressed snapshot data for key ${dataKey} is undefined`)\n return null\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(`decompression of snapshot data for key ${dataKey} failed`, e)\n uncompressed = null\n }\n\n if (typeof uncompressed !== \"string\") {\n // eslint-disable-next-line no-console\n console.warn(`uncompressed snapshot data for key ${dataKey} is not string`)\n return {}\n }\n\n let data\n try {\n data = JSON.parse(uncompressed)\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(`parsing snapshot data for key ${dataKey} failed`)\n return {}\n }\n\n return { [dataKey]: data }\n })\n .reduce((acc, obj) => ({ ...acc, ...obj }), {})\n\n return {\n ...state,\n snapshot: {\n ...snapshot,\n data: parsedData as { [key: string]: unknown },\n },\n }\n})\n\nglobalReducer.on(setAlarmAction, (state, { alarm }) => ({\n ...state,\n alarm,\n}))\n\nglobalReducer.on(chartsMetadataRequestSuccess, (state, { data }) => ({\n ...state,\n chartsMetadata: {\n ...state.chartsMetadata,\n data,\n },\n}))\n\nglobalReducer.on(setUserNodeAccess, (state, { message }) => ({ ...state, userNodeAccess: message }))\n","import React from \"react\"\nimport classNames from \"classnames\"\n\n// todo add supoort for window.netdataIcons\nexport type IconType = \"left\" | \"reset\" | \"right\" | \"zoomIn\" | \"zoomOut\" | \"resize\" | \"lineChart\"\n | \"areaChart\" | \"noChart\" | \"loading\" | \"noData\"\nconst typeToClassName = (iconType: IconType) => ({\n left: \"fa-backward\",\n reset: \"fa-play\",\n right: \"fa-forward\",\n zoomIn: \"fa-plus\",\n zoomOut: \"fa-minus\",\n resize: \"fa-sort\",\n lineChart: \"fa-chart-line\",\n areaChart: \"fa-chart-area\",\n noChart: \"fa-chart-area\",\n loading: \"fa-sync-alt\",\n noData: \"fa-exclamation-triangle\",\n} as {[key in IconType]: string})[iconType]\n\ninterface Props {\n iconType: IconType\n}\nexport const Icon = ({ iconType }: Props) => (\n <i className={classNames(\"fas\", typeToClassName(iconType))} />\n)\n","import {\n map, omit, assoc, pick,\n} from \"ramda\"\nimport { createReducer } from \"redux-act\"\n\nimport { setOptionAction } from \"domains/global/actions\"\nimport { SYNC_PAN_AND_ZOOM } from \"domains/global/options\"\nimport { useNewKeysOnlyIfDifferent } from \"utils/utils\"\n\nimport {\n fetchDataAction,\n fetchChartAction,\n setResizeHeightAction,\n clearChartStateAction,\n fetchDataForSnapshotAction,\n snapshotExportResetAction,\n setChartPanAndZoomAction,\n resetChartPanAndZoomAction,\n fetchDataCancelAction,\n} from \"./actions\"\nimport { ChartState } from \"./chart-types\"\n\nexport type StateT = {\n [chartID: string]: ChartState\n}\n\nexport const initialState = {\n}\nexport const initialSingleState = {\n chartData: null,\n chartId: null,\n chartMetadata: null,\n chartPanAndZoom: null,\n fetchDataParams: {\n isRemotelyControlled: false,\n viewRange: null,\n },\n isFetchingData: false,\n isFetchDataFailure: false,\n isFetchDetailsFailure: false,\n isFetchingDetails: false,\n resizeHeight: null,\n\n snapshotDataIsFetching: false,\n snapshotDataIsError: false,\n snapshotData: null,\n viewRange: null,\n}\n\nexport const chartReducer = createReducer<StateT>(\n {},\n initialState,\n)\n\nexport const getSubstate = (state: StateT, id: string) => state[id] || initialSingleState\n\nchartReducer.on(fetchDataAction.request, (state, { chart, fetchDataParams, id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n chartId: chart,\n isFetchingData: true,\n viewRange: fetchDataParams.viewRange,\n },\n}))\n\nchartReducer.on(fetchDataCancelAction, (state, { id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n isFetchingData: false,\n },\n}))\n\nchartReducer.on(fetchDataAction.failure, (state, { id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n isFetchingData: false,\n isFetchDataFailure: true,\n },\n}))\n\nchartReducer.on(fetchDataAction.success, (state, { id, chartData, fetchDataParams }) => {\n const substate = getSubstate(state, id)\n return {\n ...state,\n [id]: {\n ...substate,\n chartData: useNewKeysOnlyIfDifferent([\"dimension_names\"], substate.chartData, chartData!),\n fetchDataParams,\n isFetchingData: false,\n isFetchDataFailure: false,\n viewRange: fetchDataParams.viewRange,\n },\n }\n})\n\n\nchartReducer.on(fetchDataForSnapshotAction.request, (state, { id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n snapshotDataIsFetching: true,\n },\n}))\n\nchartReducer.on(fetchDataForSnapshotAction.failure, (state, { id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n snapshotDataIsFetching: false,\n snapshotDataIsError: true,\n },\n}))\n\nchartReducer.on(fetchDataForSnapshotAction.success, (state, { id, snapshotData }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n snapshotDataIsFetching: false,\n snapshotDataIsError: false,\n snapshotData,\n },\n}))\n\nchartReducer.on(snapshotExportResetAction, (state) => map((substate) => ({\n ...substate,\n ...pick([\"snapshotDataIsFetching\", \"snapshotDataIsError\", \"snapshotData\"], initialSingleState),\n}), state))\n\n\nchartReducer.on(fetchChartAction.request, (state, { id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n isFetchingDetails: true,\n },\n}))\n\nchartReducer.on(fetchChartAction.failure, (state, { id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n isFetchDetailsFailure: true,\n },\n}))\n\nchartReducer.on(fetchChartAction.success, (state, { id, chartMetadata }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n chartMetadata,\n isFetchingDetails: false,\n isFetchDetailsFailure: false,\n },\n}))\n\n// todo handle errors without creating a loop\n// chartReducer.on(fetchChartAction.failure, (state, { id }) => ({\n// ...state,\n// [id]: {\n// ...getSubstate(state, id),\n// isFetchingDetails: false,\n// },\n// }))\n\nchartReducer.on(setResizeHeightAction, (state, { id, resizeHeight }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n resizeHeight,\n },\n}))\n\nchartReducer.on(setChartPanAndZoomAction, (state, {\n after, before, id, shouldForceTimeRange,\n}) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n chartPanAndZoom: { after, before, shouldForceTimeRange },\n },\n}))\n\nchartReducer.on(resetChartPanAndZoomAction, (state, { id }) => ({\n ...state,\n [id]: {\n ...getSubstate(state, id),\n chartPanAndZoom: initialSingleState.chartPanAndZoom,\n },\n}))\n\nchartReducer.on(setOptionAction, (state, { key, value }) => {\n // clear chartPanAndZoom, when SYNC_PAN_AND_ZOOM flag is turned on\n if (key === SYNC_PAN_AND_ZOOM && value === true) {\n return map(\n assoc(\"chartPanAndZoom\", initialSingleState.chartPanAndZoom),\n state,\n )\n }\n return state\n})\n\nchartReducer.on(clearChartStateAction, (state, { id }) => omit([id], state))\n","import { mapObjIndexed, mergeAll, isEmpty } from \"ramda\"\nimport { Method } from \"axios\"\nimport { initialLegendRight } from \"domains/global/options\"\nimport { ChartLibraryName } from \"./chartLibrariesSettings\"\n\ntype OutputValue = string | boolean | number | null | undefined | any[]\n// almost the same as in old dashboard to ensure readers that it works the same way\nconst getDataAttribute = (element: Element, key: string, defaultValue?: OutputValue) => {\n const dataKey = `data-${key}`\n if (element.hasAttribute(dataKey)) {\n // we know it's not null because of hasAttribute()\n const data = element.getAttribute(dataKey) as string\n\n if (data === \"true\") {\n return true\n }\n if (data === \"false\") {\n return false\n }\n if (data === \"null\") {\n return null\n }\n\n // Only convert to a number if it doesn't change the string\n if (data === `${+data}`) {\n return +data\n }\n\n if (/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/.test(data)) {\n return JSON.parse(data)\n }\n\n return data\n }\n // if no default is passed, then it's undefined and can be replaced with default value later\n // it is recommended to do it in props destructuring assignment phase, ie.:\n // const Chart = ({ dygraphPointsize = 1 }) => ....\n return defaultValue\n}\n\nconst getDataAttributeBoolean = (element: Element, key: string, defaultValue?: boolean) => {\n const value = getDataAttribute(element, key, defaultValue)\n\n if (value === true || value === false) { // gmosx: Love this :)\n return value\n }\n\n if (typeof (value) === \"string\") {\n if (value === \"yes\" || value === \"on\") {\n return true\n }\n\n if (value === \"\" || value === \"no\" || value === \"off\" || value === \"null\") {\n return false\n }\n\n return defaultValue\n }\n\n if (typeof (value) === \"number\") {\n return value !== 0\n }\n\n return defaultValue\n}\n\ninterface BaseAttributeConfig {\n key: string\n defaultValue?: OutputValue\n}\ninterface BooleanAttributeConfig extends BaseAttributeConfig {\n type: \"boolean\"\n defaultValue?: boolean\n}\ntype AttributeConfig = BaseAttributeConfig | BooleanAttributeConfig\n\nexport interface StaticAttributes {\n id: string\n host?: string | undefined\n httpMethod?: Method\n title?: string\n chartLibrary: ChartLibraryName\n width: number | string | null\n height?: number | string | null\n after?: number\n before?: number\n legend?: boolean\n legendPosition?: \"bottom\" | \"right\"\n units?: string\n unitsCommon?: string\n unitsDesired?: string\n aggrMethod?: string\n labels?: {[key: string]: string}\n postGroupBy?: string\n dimensionsAggrMethod?: string\n postAggregationMethod?: string\n aggrGroups?: string[]\n selectedChart?: string\n filteredRows?: string[] | null\n groupBy?: string\n nodeIDs?: string[]\n colors?: string\n commonColors?: string\n decimalDigits?: number\n dimensions?: string\n selectedDimensions?: string[]\n forceTimeWindow?: boolean\n\n appendOptions?: string | undefined\n gtime?: number\n method?: string\n overrideOptions?: string\n pixelsPerPoint?: number\n points?: number\n heightId?: string\n hideResizeHandler?: boolean\n detectResize?: boolean\n commonMin?: string\n commonMax?: string\n\n dygraphType?: string\n dygraphValueRange?: any[]\n dygraphTheme?: string\n dygraphSmooth?: boolean\n dygraphColors?: string[]\n dygraphRightGap?: number\n dygraphShowRangeSelector?: boolean\n dygraphShowRoller?: boolean\n dygraphTitle?: string\n dygraphTitleHeight?: number\n dygraphLegend?: \"always\" | \"follow\" | \"onmouseover\" | \"never\"\n dygraphLabelsDiv?: string\n dygraphLabelsSeparateLine?: boolean\n dygraphIncludeZero?: boolean\n dygraphShowZeroValues?: boolean\n dygraphShowLabelsOnHighLight?: boolean\n dygraphHideOverlayOnMouseOut?: boolean\n dygraphXRangePad?: number\n dygraphYRangePad?: number\n dygraphYLabelWidth?: number\n dygraphStrokeWidth?: number\n dygraphStrokePattern?: number[]\n dygraphDrawPoints?: boolean\n dygraphDrawGapEdgePoints?: boolean\n dygraphConnectSeparatedPoints?: boolean\n dygraphPointSize?: number\n dygraphStepPlot?: boolean\n dygraphStrokeBorderColor?: string\n dygraphStrokeBorderWidth?: number\n dygraphFillGraph?: boolean\n dygraphFillAlpha?: number\n dygraphStackedGraph?: boolean\n dygraphStackedGraphNanFill?: string\n dygraphAxisLabelFontSize?: number\n dygraphAxisLineColor?: string\n dygraphAxisLineWidth?: number\n dygraphDrawGrid?: boolean\n dygraphGridLinePattern?: number[]\n dygraphGridLineWidth?: number\n dygraphGridLineColor?: string\n dygraphMaxNumberWidth?: number\n dygraphSigFigs?: number\n dygraphDigitsAfterDecimal?: number\n dygraphHighlighCircleSize?: number\n dygraphHighlightSeriesOpts?: {[options: string]: number}\n dygraphHighlightSeriesBackgroundAlpha?: number\n dygraphXPixelsPerLabel?: number\n dygraphXAxisLabelWidth?: number\n dygraphDrawXAxis?: boolean\n dygraphYPixelsPerLabel?: number\n dygraphYAxisLabelWidth?: number\n dygraphDrawYAxis?: boolean\n dygraphDrawAxis?: boolean\n\n easyPieChartMinValue?: number\n easyPieChartMaxValue?: number\n easyPieChartBarColor?: string\n easyPieChartTrackColor?: string\n easyPieChartScaleColor?: string,\n easyPieChartScaleLength?: number,\n easyPieChartLineCap?: string,\n easyPieChartLineWidth?: string,\n easyPieChartTrackWidth?: string,\n easyPieChartSize?: string,\n easyPieChartRotate?: number,\n easyPieChartAnimate?: string,\n easyPieChartEasing?: string,\n\n gaugeMinValue?: number,\n gaugeMaxValue?: number,\n gaugePointerColor?: string,\n gaugeStrokeColor?: string,\n gaugeStartColor?: string,\n gaugeStopColor?: string,\n gaugeGenerateGradient?: boolean | string[],\n\n sparklineType?: string,\n sparklineLineColor?: string,\n sparklineFillColor?: string,\n sparklineChartRangeMin?: string,\n sparklineChartRangeMax?: string,\n sparklineComposite?: string,\n sparklineEnableTagOptions?: string,\n sparklineTagOptionPrefix?: string,\n sparklineTagValuesAttribute?: string,\n sparklineDisableHiddenCheck?: string,\n sparklineDefaultPixelsPerValue?: string,\n sparklineSpotColor?: string,\n sparklineMinSpotColor?: string,\n sparklineMaxSpotColor?: string,\n sparklineSpotRadius?: string,\n sparklineValueSpots?: string,\n sparklineHighlightSpotColor?: string,\n sparklineHighlightLineColor?: string,\n sparklineLineWidth?: string,\n sparklineNormalRangeMin?: string,\n sparklineNormalRangeMax?: string,\n sparklineDrawNormalOnTop?: string,\n sparklineXvalues?: string,\n sparklineChartRangeClip?: string,\n sparklineChartRangeMinX?: string,\n sparklineChartRangeMaxX?: string,\n sparklineDisableInteraction?: boolean,\n sparklineDisableTooltips?: boolean,\n sparklineOnHover?: Function,\n sparklineDisableHighlight?: boolean,\n sparklineHighlightLighten?: string,\n sparklineHighlightColor?: string,\n sparklineTooltipContainer?: string,\n sparklineTooltipClassname?: string,\n sparklineTooltipFormat?: string,\n sparklineTooltipPrefix?: string,\n sparklineTooltipSuffix?: string,\n sparklineTooltipSkipNull?: boolean,\n sparklineTooltipValueLookups?: string,\n sparklineTooltipFormatFieldlist?: string,\n sparklineTooltipFormatFieldlistKey?: string,\n sparklineNumberFormatter?: (d: number) => string,\n sparklineNumberDigitGroupSep?: string,\n sparklineNumberDecimalMark?: string,\n sparklineNumberDigitGroupCount?: string,\n sparklineAnimatedZooms?: boolean,\n\n\n d3pieTitle?: string,\n d3pieSubtitle?: string,\n d3pieFooter?: string,\n d3pieTitleColor?: string,\n d3pieTitleFontsize?: string,\n d3pieTitleFontweight?: string,\n d3pieTitleFont?: string,\n d3PieSubtitleColor?: string,\n d3PieSubtitleFontsize?: string,\n d3PieSubtitleFontweight?: string,\n d3PieSubtitleFont?: string,\n d3PieFooterColor?: string,\n d3PieFooterFontsize?: string,\n d3PieFooterFontweight?: string,\n d3PieFooterFont?: string,\n d3PieFooterLocation?: string,\n d3PiePieinnerradius?: string,\n d3PiePieouterradius?: string,\n d3PieSortorder?: string,\n d3PieSmallsegmentgroupingEnabled?: boolean,\n d3PieSmallsegmentgroupingValue?: string,\n d3PieSmallsegmentgroupingValuetype?: string,\n d3PieSmallsegmentgroupingLabel?: string,\n d3PieSmallsegmentgroupingColor?: string,\n d3PieLabelsOuterFormat?: string,\n d3PieLabelsOuterHidewhenlessthanpercentage?: string,\n d3PieLabelsOuterPiedistance?: string,\n d3PieLabelsInnerFormat?: string,\n d3PieLabelsInnerHidewhenlessthanpercentage?: string,\n d3PieLabelsMainLabelColor?: string,\n d3PieLabelsMainLabelFont?: string,\n d3PieLabelsMainLabelFontsize?: string,\n d3PieLabelsMainLabelFontweight?: string,\n d3PieLabelsPercentageColor?: string,\n d3PieLabelsPercentageFont?: string,\n d3PieLabelsPercentageFontsize?: string,\n d3PieLabelsPercentageFontweight?: string,\n d3PieLabelsValueColor?: string,\n d3PieLabelsValueFont?: string,\n d3PieLabelsValueFontsize?: string,\n d3PieLabelsValueFontweight?: string,\n d3PieLabelsLinesEnabled?: boolean,\n d3PieLabelsLinesStyle?: string,\n d3PieLabelsLinesColor?: string,\n d3PieLabelsTruncationEnabled?: boolean,\n d3PieLabelsTruncationTruncatelength?: string,\n d3PieMiscColorsSegmentstroke?: string,\n d3PieMiscGradientEnabled?: boolean,\n d3PieMiscColorsPercentage?: string,\n d3PieMiscGradientColor?: string,\n d3PieCssprefix?: string,\n\n peityStrokeWidth?: number,\n\n textOnlyDecimalPlaces?: number,\n textOnlyPrefix?: string,\n textOnlySuffix?: string,\n}\n\nexport interface Attributes extends StaticAttributes {\n // changed structure compared to original dashboard.js (not flat list, but dynamic objects stored\n // in \"showValueOf\" property\n showValueOf?: { [key: string]: string }\n}\n\nexport interface ChartsAttributes {\n [chartID:string]: Attributes\n}\n\nexport type AttributePropKeys = keyof StaticAttributes\n\ntype AttributesMap = {\n [key in AttributePropKeys]: AttributeConfig\n}\n\n// needs to be a getter so all window.NETDATA settings are set\nconst getAttributesMap = (): AttributesMap => ({\n // all properties that don't have `defaultValue` should be \"| undefined\" in Attributes interface\n // todo try to write above rule in TS\n id: { key: \"netdata\" },\n host: { key: \"host\" },\n httpMethod: { key: \"http-method\" },\n title: { key: \"title\" },\n chartLibrary: { key: \"chart-library\", defaultValue: window.NETDATA.chartDefaults.library },\n width: { key: \"width\", defaultValue: window.NETDATA.chartDefaults.width },\n height: { key: \"height\", defaultValue: window.NETDATA.chartDefaults.height },\n // todo use chartDefaults for static custom dashboards\n // after: { key: \"after\", defaultValue: window.NETDATA.chartDefaults.after },\n after: { key: \"after\" },\n before: { key: \"before\", defaultValue: window.NETDATA.chartDefaults.before },\n legend: { key: \"legend\", type: \"boolean\", defaultValue: true },\n legendPosition: { key: \"legend-position\" },\n units: { key: \"units\" },\n unitsCommon: { key: \"common-units\" },\n unitsDesired: { key: \"desired-units\" },\n aggrMethod: { key: \"aggr-method\" },\n labels: { key: \"labels\" },\n postGroupBy: { key: \"post-group-by\" },\n postAggregationMethod: { key: \"post-aggregation-method\" },\n dimensionsAggrMethod: { key: \"dimensions-aggr-method\" },\n aggrGroups: { key: \"aggrGroups\" },\n selectedChart: { key: \"selected-chart\" },\n filteredRows: { key: \"filtered-rows\" },\n groupBy: { key: \"group-by\" },\n nodeIDs: { key: \"node-ids\" },\n colors: { key: \"colors\" },\n commonColors: { key: \"common-colors\" },\n decimalDigits: { key: \"decimal-digits\" },\n dimensions: { key: \"dimensions\" },\n selectedDimensions: { key: \"selected-dimensions\" },\n forceTimeWindow: { key: \"force-time-window\" },\n\n appendOptions: { key: \"append-options\" },\n gtime: { key: \"gtime\" },\n method: { key: \"method\" },\n overrideOptions: { key: \"override-options\" },\n pixelsPerPoint: { key: \"pixels-per-point\" },\n points: { key: \"points\" },\n heightId: { key: \"id\" },\n hideResizeHandler: { key: \"hide-resize-handler\" },\n detectResize: { key: \"detect-resize\" },\n commonMin: { key: \"common-min\" },\n commonMax: { key: \"common-max\" },\n\n // let's not put the default values here, because they will also be needed by the main Agent page\n // and the Cloud App\n dygraphType: { key: \"dygraph-type\" },\n dygraphValueRange: { key: \"dygraph-valuerange\" },\n dygraphTheme: { key: \"dygraph-theme\" },\n dygraphSmooth: { key: \"dygraph-smooth\", type: \"boolean\" },\n dygraphColors: { key: \"dygraph-colors\" }, // not working in original dashboard\n dygraphRightGap: { key: \"dygraph-rightgap\" },\n dygraphShowRangeSelector: { key: \"dygraph-showrangeselector\", type: \"boolean\" },\n dygraphShowRoller: { key: \"dygraph-showroller\", type: \"boolean\" },\n dygraphTitle: { key: \"dygraph-title\" },\n dygraphTitleHeight: { key: \"dygraph-titleheight\" },\n dygraphLegend: { key: \"dygraph-legend\" },\n dygraphLabelsDiv: { key: \"dygraph-labelsdiv\" },\n dygraphLabelsSeparateLine: { key: \"dygraph-labelsseparatelines\", type: \"boolean\" },\n dygraphIncludeZero: { key: \"dygraph-includezero\", type: \"boolean\" },\n dygraphShowZeroValues: { key: \"dygraph-labelsshowzerovalues\", type: \"boolean\" },\n dygraphShowLabelsOnHighLight: { key: \"dygraph-showlabelsonhighlight\", type: \"boolean\" },\n dygraphHideOverlayOnMouseOut: { key: \"dygraph-hideoverlayonmouseout\", type: \"boolean\" },\n dygraphXRangePad: { key: \"dygraph-xrangepad\" },\n dygraphYRangePad: { key: \"dygraph-yrangepad\" },\n dygraphYLabelWidth: { key: \"dygraph-ylabelwidth\" },\n dygraphStrokeWidth: { key: \"dygraph-strokewidth\" },\n dygraphStrokePattern: { key: \"dygraph-strokepattern\" },\n dygraphDrawPoints: { key: \"dygraph-drawpoints\", type: \"boolean\" },\n dygraphDrawGapEdgePoints: { key: \"dygraph-drawgapedgepoints\", type: \"boolean\" },\n dygraphConnectSeparatedPoints: { key: \"dygraph-connectseparatedpoints\", type: \"boolean\" },\n dygraphPointSize: { key: \"dygraph-pointsize\" },\n dygraphStepPlot: { key: \"dygraph-stepplot\", type: \"boolean\" },\n dygraphStrokeBorderColor: { key: \"dygraph-strokebordercolor\" },\n dygraphStrokeBorderWidth: { key: \"dygraph-strokeborderwidth\" },\n // it was not boolean in the old app, but that was most likely a bug\n dygraphFillGraph: { key: \"dygraph-fillgraph\", type: \"boolean\" },\n dygraphFillAlpha: { key: \"dygraph-fillalpha\" },\n // also originally not set as boolean\n dygraphStackedGraph: { key: \"dygraph-stackedgraph\", type: \"boolean\" },\n dygraphStackedGraphNanFill: { key: \"dygraph-stackedgraphnanfill\" },\n dygraphAxisLabelFontSize: { key: \"dygraph-axislabelfontsize\" },\n dygraphAxisLineColor: { key: \"dygraph-axislinecolor\" },\n dygraphAxisLineWidth: { key: \"dygraph-axislinewidth\" },\n dygraphDrawGrid: { key: \"dygraph-drawgrid\", type: \"boolean\" },\n dygraphGridLinePattern: { key: \"dygraph-gridlinepattern\" },\n dygraphGridLineWidth: { key: \"dygraph-gridlinewidth\" },\n dygraphGridLineColor: { key: \"dygraph-gridlinecolor\" },\n dygraphMaxNumberWidth: { key: \"dygraph-maxnumberwidth\" },\n dygraphSigFigs: { key: \"dygraph-sigfigs\" },\n dygraphDigitsAfterDecimal: { key: \"dygraph-digitsafterdecimal\" },\n // dygraphValueFormatter: { key: \"dygraph-valueformatter\" },\n dygraphHighlighCircleSize: { key: \"dygraph-highlightcirclesize\" },\n dygraphHighlightSeriesOpts: { key: \"dygraph-highlightseriesopts\" },\n dygraphHighlightSeriesBackgroundAlpha: { key: \"dygraph-highlightseriesbackgroundalpha\" },\n // dygraphPointClickCallback: { key: \"dygraph-pointclickcallback\" },\n dygraphXPixelsPerLabel: { key: \"dygraph-xpixelsperlabel\" },\n dygraphXAxisLabelWidth: { key: \"dygraph-xaxislabelwidth\" },\n dygraphDrawXAxis: { key: \"dygraph-drawxaxis\", type: \"boolean\" },\n dygraphYPixelsPerLabel: { key: \"dygraph-ypixelsperlabel\" },\n dygraphYAxisLabelWidth: { key: \"dygraph-yaxislabelwidth\" },\n dygraphDrawYAxis: { key: \"dygraph-drawyaxis\", type: \"boolean\" },\n dygraphDrawAxis: { key: \"dygraph-drawaxis\", type: \"boolean\" },\n\n easyPieChartMinValue: { key: \"easypiechart-min-value\" },\n easyPieChartMaxValue: { key: \"easypiechart-max-value\" },\n easyPieChartBarColor: { key: \"easypiechart-barcolor\" },\n easyPieChartTrackColor: { key: \"easypiechart-trackcolor\" },\n easyPieChartScaleColor: { key: \"easypiechart-scalecolor\" },\n easyPieChartScaleLength: { key: \"easypiechart-scalelength\" },\n easyPieChartLineCap: { key: \"easypiechart-linecap\" },\n easyPieChartLineWidth: { key: \"easypiechart-linewidth\" },\n easyPieChartTrackWidth: { key: \"easypiechart-trackwidth\" },\n easyPieChartSize: { key: \"easypiechart-size\" },\n easyPieChartRotate: { key: \"easypiechart-rotate\" },\n easyPieChartAnimate: { key: \"easypiechart-animate\" },\n easyPieChartEasing: { key: \"easypiechart-easing\" },\n\n gaugeMinValue: { key: \"gauge-min-value\" },\n gaugeMaxValue: { key: \"gauge-max-value\" },\n gaugePointerColor: { key: \"gauge-pointer-color\" },\n gaugeStrokeColor: { key: \"gauge-stroke-color\" },\n gaugeStartColor: { key: \"gauge-start-color\" },\n gaugeStopColor: { key: \"gauge-stop-color\" },\n gaugeGenerateGradient: { key: \"gauge-generate-gradient\" },\n\n sparklineType: { key: \"sparkline-type\" },\n sparklineLineColor: { key: \"sparkline-linecolor\" },\n sparklineFillColor: { key: \"sparkline-fillcolor\" },\n sparklineChartRangeMin: { key: \"sparkline-chartrangemin\" },\n sparklineChartRangeMax: { key: \"sparkline-chartrangemax\" },\n sparklineComposite: { key: \"sparkline-composite\" },\n sparklineEnableTagOptions: { key: \"sparkline-enabletagoptions\" },\n sparklineTagOptionPrefix: { key: \"sparkline-tagoptionprefix\" },\n sparklineTagValuesAttribute: { key: \"sparkline-tagvaluesattribute\" },\n sparklineDisableHiddenCheck: { key: \"sparkline-disablehiddencheck\" },\n sparklineDefaultPixelsPerValue: { key: \"sparkline-defaultpixelspervalue\" },\n sparklineSpotColor: { key: \"sparkline-spotcolor\" },\n sparklineMinSpotColor: { key: \"sparkline-minspotcolor\" },\n sparklineMaxSpotColor: { key: \"sparkline-maxspotcolor\" },\n sparklineSpotRadius: { key: \"sparkline-spotradius\" },\n sparklineValueSpots: { key: \"sparkline-valuespots\" },\n sparklineHighlightSpotColor: { key: \"sparkline-highlightspotcolor\" },\n sparklineHighlightLineColor: { key: \"sparkline-highlightlinecolor\" },\n sparklineLineWidth: { key: \"sparkline-linewidth\" },\n sparklineNormalRangeMin: { key: \"sparkline-normalrangemin\" },\n sparklineNormalRangeMax: { key: \"sparkline-normalrangemax\" },\n sparklineDrawNormalOnTop: { key: \"sparkline-drawnormalontop\" },\n sparklineXvalues: { key: \"sparkline-xvalues\" },\n sparklineChartRangeClip: { key: \"sparkline-chartrangeclip\" },\n sparklineChartRangeMinX: { key: \"sparkline-chartrangeminx\" },\n sparklineChartRangeMaxX: { key: \"sparkline-chartrangemaxx\" },\n sparklineDisableInteraction: { key: \"sparkline-disableinteraction\", type: \"boolean\" },\n sparklineDisableTooltips: { key: \"sparkline-disabletooltips\", type: \"boolean\" },\n sparklineOnHover: { key: \"sparkline-on-hover\" },\n sparklineDisableHighlight: { key: \"sparkline-disablehighlight\", type: \"boolean\" },\n sparklineHighlightLighten: { key: \"sparkline-highlightlighten\" },\n sparklineHighlightColor: { key: \"sparkline-highlightcolor\" },\n sparklineTooltipContainer: { key: \"sparkline-tooltipcontainer\" },\n sparklineTooltipClassname: { key: \"sparkline-tooltipclassname\" },\n sparklineTooltipFormat: { key: \"sparkline-tooltipformat\" },\n sparklineTooltipPrefix: { key: \"sparkline-tooltipprefix\" },\n sparklineTooltipSuffix: { key: \"sparkline-tooltipsuffix\" },\n sparklineTooltipSkipNull: { key: \"sparkline-tooltipskipnull\", type: \"boolean\" },\n sparklineTooltipValueLookups: { key: \"sparkline-tooltipvaluelookups\" },\n sparklineTooltipFormatFieldlist: { key: \"sparkline-tooltipformatfieldlist\" },\n sparklineTooltipFormatFieldlistKey: { key: \"sparkline-tooltipformatfieldlistkey\" },\n sparklineNumberFormatter: { key: \"sparkline-numberformatter\" },\n sparklineNumberDigitGroupSep: { key: \"sparkline-numberdigitgroupsep\" },\n sparklineNumberDecimalMark: { key: \"sparkline-numberdecimalmark\" },\n sparklineNumberDigitGroupCount: { key: \"sparkline-numberdigitgroupcount\" },\n sparklineAnimatedZooms: { key: \"sparkline-animatedzooms\", type: \"boolean\" },\n\n d3pieTitle: { key: \"d3pie-title\" },\n d3pieSubtitle: { key: \"d3pie-subtitle\" },\n d3pieFooter: { key: \"d3pie-footer\" },\n d3pieTitleColor: { key: \"d3pie-title-color\" },\n d3pieTitleFontsize: { key: \"d3pie-title-fontsize\" },\n d3pieTitleFontweight: { key: \"d3pie-title-fontweight\" },\n d3pieTitleFont: { key: \"d3pie-title-font\" },\n d3PieSubtitleColor: { key: \"d3pie-subtitle-color\" },\n d3PieSubtitleFontsize: { key: \"d3pie-subtitle-fontsize\" },\n d3PieSubtitleFontweight: { key: \"d3pie-subtitle-fontweight\" },\n d3PieSubtitleFont: { key: \"d3pie-subtitle-font\" },\n d3PieFooterColor: { key: \"d3pie-footer-color\" },\n d3PieFooterFontsize: { key: \"d3pie-footer-fontsize\" },\n d3PieFooterFontweight: { key: \"d3pie-footer-fontweight\" },\n d3PieFooterFont: { key: \"d3pie-footer-font\" },\n d3PieFooterLocation: { key: \"d3pie-footer-location\" },\n d3PiePieinnerradius: { key: \"d3pie-pieinnerradius\" },\n d3PiePieouterradius: { key: \"d3pie-pieouterradius\" },\n d3PieSortorder: { key: \"d3pie-sortorder\" },\n d3PieSmallsegmentgroupingEnabled: { key: \"d3pie-smallsegmentgrouping-enabled\", type: \"boolean\" },\n d3PieSmallsegmentgroupingValue: { key: \"d3pie-smallsegmentgrouping-value\" },\n d3PieSmallsegmentgroupingValuetype: { key: \"d3pie-smallsegmentgrouping-valuetype\" },\n d3PieSmallsegmentgroupingLabel: { key: \"d3pie-smallsegmentgrouping-label\" },\n d3PieSmallsegmentgroupingColor: { key: \"d3pie-smallsegmentgrouping-color\" },\n d3PieLabelsOuterFormat: { key: \"d3pie-labels-outer-format\" },\n d3PieLabelsOuterHidewhenlessthanpercentage: {\n key: \"d3pie-labels-outer-hidewhenlessthanpercentage\",\n },\n d3PieLabelsOuterPiedistance: { key: \"d3pie-labels-outer-piedistance\" },\n d3PieLabelsInnerFormat: { key: \"d3pie-labels-inner-format\" },\n d3PieLabelsInnerHidewhenlessthanpercentage: {\n key: \"d3pie-labels-inner-hidewhenlessthanpercentage\",\n },\n d3PieLabelsMainLabelColor: { key: \"d3pie-labels-mainLabel-color\" },\n d3PieLabelsMainLabelFont: { key: \"d3pie-labels-mainLabel-font\" },\n d3PieLabelsMainLabelFontsize: { key: \"d3pie-labels-mainLabel-fontsize\" },\n d3PieLabelsMainLabelFontweight: { key: \"d3pie-labels-mainLabel-fontweight\" },\n d3PieLabelsPercentageColor: { key: \"d3pie-labels-percentage-color\" },\n d3PieLabelsPercentageFont: { key: \"d3pie-labels-percentage-font\" },\n d3PieLabelsPercentageFontsize: { key: \"d3pie-labels-percentage-fontsize\" },\n d3PieLabelsPercentageFontweight: { key: \"d3pie-labels-percentage-fontweight\" },\n d3PieLabelsValueColor: { key: \"d3pie-labels-value-color\" },\n d3PieLabelsValueFont: { key: \"d3pie-labels-value-font\" },\n d3PieLabelsValueFontsize: { key: \"d3pie-labels-value-fontsize\" },\n d3PieLabelsValueFontweight: { key: \"d3pie-labels-value-fontweight\" },\n d3PieLabelsLinesEnabled: { key: \"d3pie-labels-lines-enabled\", type: \"boolean\" },\n d3PieLabelsLinesStyle: { key: \"d3pie-labels-lines-style\" },\n d3PieLabelsLinesColor: { key: \"d3pie-labels-lines-color\" },\n d3PieLabelsTruncationEnabled: { key: \"d3pie-labels-truncation-enabled\", type: \"boolean\" },\n d3PieLabelsTruncationTruncatelength: { key: \"d3pie-labels-truncation-truncatelength\" },\n d3PieMiscColorsSegmentstroke: { key: \"d3pie-misc-colors-segmentstroke\" },\n d3PieMiscGradientEnabled: { key: \"d3pie-misc-gradient-enabled\", type: \"boolean\" },\n d3PieMiscColorsPercentage: { key: \"d3pie-misc-colors-percentage\" },\n d3PieMiscGradientColor: { key: \"d3pie-misc-gradient-color\" },\n d3PieCssprefix: { key: \"d3pie-cssprefix\" },\n\n peityStrokeWidth: { key: \"peity-strokewidth\" },\n\n textOnlyDecimalPlaces: { key: \"textonly-decimal-places\" },\n textOnlyPrefix: { key: \"textonly-prefix\" },\n textOnlySuffix: { key: \"textonly-suffix\" },\n})\n\nexport const getAttributesStatic = (node: Element): Attributes => mapObjIndexed(\n (attribute: AttributeConfig) => (\n (attribute as BooleanAttributeConfig).type === \"boolean\"\n ? getDataAttributeBoolean(\n node,\n attribute.key,\n attribute.defaultValue as BooleanAttributeConfig[\"defaultValue\"],\n ) : getDataAttribute(node, attribute.key, attribute.defaultValue)\n ),\n getAttributesMap(),\n) as Attributes // need to override because of broken Ramda typings\n\nexport const getAttributesDynamic = (node: Element) => {\n const showValueOfAttribues = Array.from(node.attributes)\n .filter((attribute) => attribute.name.startsWith(\"data-show-value-of\"))\n .map((attribute) => ({\n [attribute.name.replace(\"data-\", \"\")]: attribute.value,\n }))\n const merged = mergeAll(showValueOfAttribues)\n return isEmpty(merged) ? undefined : merged\n}\n\nexport const getAttributes = (node: Element): Attributes => {\n const attributesStatic = getAttributesStatic(node)\n const showValueOf = getAttributesDynamic(node)\n return { ...attributesStatic, showValueOf }\n}\n\nexport const defaultAttributes: Partial<Attributes> = {\n legendPosition: initialLegendRight ? \"right\" : \"bottom\",\n}\n","import { createAction } from \"redux-act\"\nimport { CancelTokenSource, Method } from \"axios\"\n\nimport { createRequestAction } from \"utils/createRequestAction\"\nimport { InfoPayload } from \"domains/global/__mocks__/info-mock\"\n\nimport { storeKey } from \"./constants\"\nimport { ChartData, ChartMetadata } from \"./chart-types\"\n\nexport interface UpdateChartDataAction {\n chartData: ChartData\n id: string\n}\nexport const updateChartDataAction = createAction<UpdateChartDataAction>(\n `${storeKey}/updateChartData`,\n)\n\nexport interface UpdateChartMetadataAction {\n chartMetadata: ChartMetadata\n id: string\n}\nexport const updateChartMetadataAction = createAction<UpdateChartMetadataAction>(\n `${storeKey}/updateChartMetadata`,\n)\n\nexport interface FetchDataParams {\n fillMissingPoints?: number\n isRemotelyControlled: boolean\n viewRange: [number, number]\n}\nexport interface FetchDataUrlParams {\n host: string\n chart: string\n context: string\n format: string\n points: number\n group: string\n gtime: number\n options: string\n after: number | null\n before?: number | null\n dimensions?: string\n labels?: {[key: string]: string}\n postGroupBy?: string\n postAggregationMethod?: string\n aggrMethod?: string\n aggrGroups?: string[]\n dimensionsAggrMethod?: string\n nodeIDs?: string[]\n httpMethod?: Method\n groupBy?: string\n}\nexport interface FetchDataPayload extends FetchDataUrlParams {\n id: string,\n fetchDataParams: FetchDataParams\n cancelTokenSource: CancelTokenSource\n}\n\nexport const fetchDataAction = createRequestAction<\n FetchDataPayload,\n { id: string, chartData: ChartData, fetchDataParams: FetchDataParams }\n>(`${storeKey}/fetchDataAction`)\n\n\nexport interface FetchDataCancelAction { id: string }\nexport const fetchDataCancelAction = createAction<FetchDataCancelAction>(\n `${storeKey}/fetchDataCancelAction`,\n)\n\nexport interface FetchDataForSnapshotPayload extends FetchDataUrlParams {\n chartLibrary: string\n id: string\n}\nexport const fetchDataForSnapshotAction = createRequestAction<\n FetchDataForSnapshotPayload,\n { id: string, snapshotData: ChartData }\n>(`${storeKey}/fetchDataForSnapshotAction`)\n\nexport const snapshotExportResetAction = createRequestAction(\n `${storeKey}/snapshotExportResetAction`,\n)\n\nexport interface FetchChartPayload {\n chart: string\n id: string\n host: string\n nodeIDs?: string[]\n}\n\nexport const fetchChartAction = createRequestAction<\n FetchChartPayload,\n { chartMetadata: ChartMetadata, id: string }\n>(`${storeKey}/fetchChartAction`)\n\n\nexport interface SetResizeHeightAction {\n id: string\n resizeHeight: number\n}\nexport const setResizeHeightAction = createAction<SetResizeHeightAction>(\n `${storeKey}/setResizeHeight`,\n)\n\nexport interface SetChartPanAndZoomAction {\n id: string\n after: number\n before: number\n shouldForceTimeRange?: boolean\n}\nexport const setChartPanAndZoomAction = createAction<SetChartPanAndZoomAction>(\n `${storeKey}/setChartPanAndZoom`,\n)\n\nexport const resetChartPanAndZoomAction = createAction<{ id: string }>(\n `${storeKey}/resetChartPanAndZoomAction`,\n)\n\nexport const clearChartStateAction = createAction<{ id: string }>(\n `${storeKey}/clearChartStateAction`,\n)\n\nexport interface FetchInfoPayload {\n poll?: boolean\n}\nexport interface FetchInfoSuccessPayload {\n isCloudAvailable: boolean\n isCloudEnabled: boolean\n isAgentClaimed: boolean\n isACLKAvailable: boolean\n fullInfoPayload: InfoPayload\n}\nexport const fetchInfoAction = createRequestAction<\n FetchInfoPayload,\n FetchInfoSuccessPayload\n>(`${storeKey}/fetchInfoAction`)\n","export const SIGN_IN_IFRAME_ID = \"sign_in_iframe\"\n","/* eslint-disable */\n// Main JavaScript file for the Netdata GUI.\n\n// Codacy declarations\n/* global NETDATA */\n\nimport { identity, memoizeWith } from \"ramda\"\nimport {\n centerAroundHighlightAction,\n chartsMetadataRequestSuccess,\n clearHighlightAction,\n fetchAllAlarmsAction,\n loadSnapshotAction,\n resetGlobalPanAndZoomAction,\n resetOptionsAction,\n resetRegistry,\n setDefaultAfterAction,\n setGlobalChartUnderlayAction,\n setGlobalPanAndZoomAction,\n setOptionAction,\n} from './domains/global/actions';\nimport {\n createSelectOption,\n selectDefaultAfter,\n selectGlobalPanAndZoom,\n selectRegistry,\n} from \"./domains/global/selectors\"\nimport { seconds4human } from './domains/chart/utils/seconds4human';\nimport { zeropad } from './utils/units-conversion';\nimport {\n explicitlySignInAction,\n startSnapshotModeAction,\n stopSnapshotModeAction,\n} from './domains/dashboard/actions';\nimport { snapshotExportResetAction } from './domains/chart/actions';\nimport {\n selectAmountOfCharts,\n selectAmountOfSnapshotsFailed,\n selectAmountOfSnapshotsFetched,\n} from './domains/chart/selectors';\nimport { serverDefault } from './utils/server-detection';\nimport { name2id } from './utils/name-2-id';\nimport { isProperTimezone } from './utils/date-time';\nimport { NETDATA_REGISTRY_SERVER } from './utils';\nimport { getHashParam } from 'utils/hash-utils';\nimport { isDemo } from \"./utils/is-demo\"\nimport { LEGEND_BOTTOM_SINGLE_LINE_HEIGHT } from './domains/chart/utils/legend-utils';\nimport { defaultAttributes } from './domains/chart/utils/transformDataAttributes';\n\n// this is temporary, hook will be used after the full main.js refactor\nlet localeDateString, localeTimeString\nexport const updateLocaleFunctions = ({\n localeDateString: newLocaleDateString,\n localeTimeString: newLocaleTimeString,\n}) => {\n localeDateString = newLocaleDateString\n localeTimeString = newLocaleTimeString\n}\n\n// enable alarms checking and notifications\nvar netdataShowAlarms = true;\n\n// enable registry updates\nvar netdataRegistry = true;\n\n// forward definition only - not used here\nvar netdataServer = undefined;\nvar netdataServerStatic = undefined;\nvar netdataCheckXSS = undefined;\n\nlet reduxStore\n\nfunction escapeUserInputHTML(s) {\n return s.toString()\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/#/g, '&#35;')\n .replace(/'/g, '&#39;')\n .replace(/\\(/g, '&#40;')\n .replace(/\\)/g, '&#41;')\n .replace(/\\//g, '&#47;');\n}\n\nconst setOption = (key, value) => {\n reduxStore.dispatch(setOptionAction({\n key,\n value,\n }))\n}\n\n// temporary function that will be removed after full main.js migration to react\nconst getFromRegistry = (prop) => {\n const registry = selectRegistry(reduxStore.getState())\n return registry?.[prop]\n}\n\nfunction verifyURL(s) {\n if (typeof (s) === 'string' && (s.startsWith('http://') || s.startsWith('https://'))) {\n return s\n .replace(/'/g, '%22')\n .replace(/\"/g, '%27')\n .replace(/\\)/g, '%28')\n .replace(/\\(/g, '%29');\n }\n\n console.log('invalid URL detected:');\n console.log(s);\n return 'javascript:alert(\"invalid url\");';\n}\n\n// --------------------------------------------------------------------\n// urlOptions\n\nwindow.urlOptions = {\n hash: '#',\n theme: null,\n help: null,\n mode: 'live', // 'live', 'print'\n update_always: false,\n pan_and_zoom: false,\n server: null,\n after: getHashParam('after') ?? 0,\n before: getHashParam('before') ?? 0,\n highlight: false,\n highlight_after: 0,\n highlight_before: 0,\n nowelcome: false,\n show_alarms: false,\n chart: null,\n family: null,\n alarm: null,\n utc: null,\n\n hasProperty: function (property) {\n // console.log('checking property ' + property + ' of type ' + typeof(this[property]));\n return typeof this[property] !== 'undefined';\n },\n\n genHash: function (forReload) {\n var hash = urlOptions.hash;\n\n hash += ';after=' + urlOptions.after.toString() +\n ';before=' + urlOptions.before.toString();\n\n if (urlOptions.highlight === true) {\n hash += ';highlight_after=' + urlOptions.highlight_after.toString() +\n ';highlight_before=' + urlOptions.highlight_before.toString();\n }\n\n if (urlOptions.theme !== null) {\n hash += ';theme=' + urlOptions.theme.toString();\n }\n\n if (urlOptions.help !== null) {\n hash += ';help=' + urlOptions.help.toString();\n }\n\n if (urlOptions.update_always === true) {\n hash += ';update_always=true';\n }\n\n if (forReload === true && urlOptions.server !== null) {\n hash += ';server=' + urlOptions.server.toString();\n }\n\n if (urlOptions.mode !== 'live') {\n hash += ';mode=' + urlOptions.mode;\n }\n\n if (urlOptions.utc !== null) {\n hash += ';utc=' + urlOptions.utc;\n }\n\n return hash;\n },\n\n parseHash: function () {\n var variables = document.location.hash.split(';');\n var len = variables.length;\n while (len--) {\n if (len !== 0) {\n var p = variables[len].split('=');\n if (urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined') {\n urlOptions[p[0]] = decodeURIComponent(p[1]);\n }\n } else {\n if (variables[len].length > 0) {\n urlOptions.hash = variables[len];\n }\n }\n }\n\n var booleans = ['nowelcome', 'show_alarms', 'update_always'];\n len = booleans.length;\n while (len--) {\n if (urlOptions[booleans[len]] === 'true' || urlOptions[booleans[len]] === true || urlOptions[booleans[len]] === '1' || urlOptions[booleans[len]] === 1) {\n urlOptions[booleans[len]] = true;\n } else {\n urlOptions[booleans[len]] = false;\n }\n }\n\n var numeric = ['after', 'before', 'highlight_after', 'highlight_before'];\n len = numeric.length;\n while (len--) {\n if (typeof urlOptions[numeric[len]] === 'string') {\n try {\n urlOptions[numeric[len]] = parseInt(urlOptions[numeric[len]]);\n }\n catch (e) {\n console.log('failed to parse URL hash parameter ' + numeric[len]);\n urlOptions[numeric[len]] = 0;\n }\n }\n }\n\n if (urlOptions.server !== null && urlOptions.server !== '') {\n netdataServerStatic = document.location.origin.toString() + document.location.pathname.toString();\n netdataServer = urlOptions.server;\n netdataCheckXSS = true;\n } else {\n urlOptions.server = null;\n }\n\n if (urlOptions.before > 0 && urlOptions.after > 0) {\n urlOptions.pan_and_zoom = true;\n urlOptions.nowelcome = true;\n } else {\n urlOptions.pan_and_zoom = false;\n }\n\n if (urlOptions.highlight_before > 0 && urlOptions.highlight_after > 0) {\n urlOptions.highlight = true;\n } else {\n urlOptions.highlight = false;\n }\n\n switch (urlOptions.mode) {\n case 'print':\n urlOptions.theme = 'white';\n urlOptions.welcome = false;\n urlOptions.help = false;\n urlOptions.show_alarms = false;\n\n if (urlOptions.pan_and_zoom === false) {\n urlOptions.pan_and_zoom = true;\n urlOptions.before = Date.now();\n const fallbackAfter = -600000\n const defaultAfter = urlOptions.after ? urlOptions.after * 1000 : fallbackAfter\n urlOptions.after = urlOptions.before + defaultAfter;\n }\n\n netdataShowAlarms = false;\n netdataRegistry = false;\n break;\n\n case 'live':\n default:\n urlOptions.mode = 'live';\n break;\n }\n\n // console.log(urlOptions);\n },\n\n hashUpdate: function () {\n history.replaceState(null, '', urlOptions.genHash(true));\n },\n\n netdataPanAndZoomCallback: function (status, after, before) {\n if (netdataSnapshotData === null) {\n urlOptions.pan_and_zoom = status;\n urlOptions.after = after;\n urlOptions.before = before;\n }\n },\n\n updateUtcParam: function (utc) {\n if (!utc) return\n urlOptions.utc = utc\n urlOptions.hashUpdate();\n },\n\n netdataHighlightCallback: function (status, after, before) {\n if (status === true && (after === null || before === null || after <= 0 || before <= 0 || after >= before)) {\n status = false;\n after = 0;\n before = 0;\n }\n\n if (window.netdataSnapshotData === null) {\n urlOptions.highlight = status;\n } else {\n urlOptions.highlight = false;\n }\n\n urlOptions.highlight_after = Math.round(after);\n urlOptions.highlight_before = Math.round(before);\n urlOptions.hashUpdate();\n\n if (status === true && after > 0 && before > 0 && after < before) {\n var d1 = localeDateString(after);\n var d2 = localeDateString(before);\n if (d1 === d2) {\n d2 = '';\n }\n document.getElementById('navbar-highlight-content').innerHTML =\n '<span class=\"navbar-highlight-bar highlight-tooltip\" onclick=\"urlOptions.showHighlight();\" title=\"restore the highlighted view\" data-toggle=\"tooltip\" data-placement=\"bottom\">'\n + 'highlighted time-frame'\n + ' <b>' + d1 + ' <code>' + localeTimeString(after) + '</code></b> to '\n + ' <b>' + d2 + ' <code>' + localeTimeString(before) + '</code></b>, '\n + 'duration <b>' + seconds4human(Math.round((before - after) / 1000)) + '</b>'\n + '</span>'\n + '<span class=\"navbar-highlight-button-right highlight-tooltip\" onclick=\"urlOptions.clearHighlight();\" title=\"clear the highlighted time-frame\" data-toggle=\"tooltip\" data-placement=\"bottom\"><i class=\"fas fa-times\"></i></span>';\n\n $('.navbar-highlight').show();\n $('.navbar-highlight').width(\"80%\");\n $('.highlight-tooltip').tooltip({\n html: true,\n delay: { show: 500, hide: 0 },\n container: 'body'\n });\n } else {\n $('.navbar-highlight').hide();\n $('.navbar-highlight').width(\"100%\");\n }\n },\n\n clearHighlight: function () {\n reduxStore.dispatch(clearHighlightAction())\n },\n\n showHighlight: function () {\n reduxStore.dispatch(centerAroundHighlightAction())\n }\n};\n\nurlOptions.parseHash();\n\n// --------------------------------------------------------------------\n// check options that should be processed before loading netdata.js\n\nvar localStorageTested = -1;\n\nfunction localStorageTest() {\n if (localStorageTested !== -1) {\n return localStorageTested;\n }\n\n if (typeof Storage !== \"undefined\" && typeof localStorage === 'object') {\n var test = 'test';\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n localStorageTested = true;\n }\n catch (e) {\n console.log(e);\n localStorageTested = false;\n }\n } else {\n localStorageTested = false;\n }\n\n return localStorageTested;\n}\n\nfunction loadLocalStorage(name) {\n var ret = null;\n\n try {\n if (localStorageTest() === true) {\n ret = localStorage.getItem(name);\n } else {\n console.log('localStorage is not available');\n }\n }\n catch (error) {\n console.log(error);\n return null;\n }\n\n if (typeof ret === 'undefined' || ret === null) {\n return null;\n }\n\n // console.log('loaded: ' + name.toString() + ' = ' + ret.toString());\n\n return ret;\n}\n\nfunction saveLocalStorage(name, value) {\n // console.log('saving: ' + name.toString() + ' = ' + value.toString());\n try {\n if (localStorageTest() === true) {\n localStorage.setItem(name, value.toString());\n return true;\n }\n }\n catch (error) {\n console.log(error);\n }\n\n return false;\n}\n\nfunction getTheme(def) {\n if (urlOptions.mode === 'print') {\n return 'white';\n }\n\n var ret = loadLocalStorage('netdataTheme');\n if (typeof ret === 'undefined' || ret === null || ret === 'undefined') {\n return def;\n } else {\n return ret;\n }\n}\n\nfunction setTheme(theme) {\n if (urlOptions.mode === 'print') {\n return false;\n }\n\n if (theme === netdataTheme) {\n return false;\n }\n return saveLocalStorage('netdataTheme', theme);\n}\n\nwindow.netdataTheme = getTheme('slate');\n// this is of course temporary, will be fixed during complete main.js rewrite\nNETDATA.updateTheme()\nvar netdataShowHelp = true;\n\nif (urlOptions.theme !== null) {\n setTheme(urlOptions.theme);\n netdataTheme = urlOptions.theme;\n window.NETDATA.updateTheme()\n} else {\n urlOptions.theme = netdataTheme;\n}\n\nif (urlOptions.help !== null) {\n saveLocalStorage('options.show_help', urlOptions.help);\n netdataShowHelp = urlOptions.help;\n} else {\n urlOptions.help = loadLocalStorage('options.show_help');\n}\n\n// --------------------------------------------------------------------\n// natural sorting\n// http://www.davekoelle.com/files/alphanum.js - LGPL\n\nfunction naturalSortChunkify(t) {\n var tz = [];\n var x = 0, y = -1, n = 0, i, j;\n\n while (i = (j = t.charAt(x++)).charCodeAt(0)) {\n var m = (i >= 48 && i <= 57);\n if (m !== n) {\n tz[++y] = \"\";\n n = m;\n }\n tz[y] += j;\n }\n\n return tz;\n}\n\nfunction naturalSortCompare(a, b) {\n var aa = naturalSortChunkify(a.toLowerCase());\n var bb = naturalSortChunkify(b.toLowerCase());\n\n for (var x = 0; aa[x] && bb[x]; x++) {\n if (aa[x] !== bb[x]) {\n var c = Number(aa[x]), d = Number(bb[x]);\n if (c.toString() === aa[x] && d.toString() === bb[x]) {\n return c - d;\n } else {\n return (aa[x] > bb[x]) ? 1 : -1;\n }\n }\n }\n\n return aa.length - bb.length;\n}\n\n// --------------------------------------------------------------------\n// saving files to client\n\nfunction saveTextToClient(data, filename) {\n var blob = new Blob([data], {\n type: 'application/octet-stream'\n });\n\n var url = URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.setAttribute('href', url);\n link.setAttribute('download', filename);\n\n var el = document.getElementById('hiddenDownloadLinks');\n el.innerHTML = '';\n el.appendChild(link);\n\n setTimeout(function () {\n el.removeChild(link);\n URL.revokeObjectURL(url);\n }, 60);\n\n link.click();\n}\n\nfunction saveObjectToClient(data, filename) {\n saveTextToClient(JSON.stringify(data), filename);\n}\n\nfunction netdataURL(url, forReload) {\n if (typeof url === 'undefined')\n // url = document.location.toString();\n {\n url = '';\n }\n\n if (url.indexOf('#') !== -1) {\n url = url.substring(0, url.indexOf('#'));\n }\n\n var hash = urlOptions.genHash(forReload);\n\n // console.log('netdataURL: ' + url + hash);\n\n return url + hash;\n}\n\nfunction netdataReload(url) {\n document.location = verifyURL(netdataURL(url, true));\n\n // since we play with hash\n // this is needed to reload the page\n location.reload();\n}\n\nwindow.gotoHostedModalHandler = (url) => {\n document.location = verifyURL(url + urlOptions.genHash());\n return false;\n}\n\nvar gotoServerValidateRemaining = 0;\nvar gotoServerMiddleClick = false;\nvar gotoServerStop = false;\n\nfunction gotoServerValidateUrl(id, guid, url) {\n var penalty = 0;\n var error = 'failed';\n\n if (document.location.toString().startsWith('http://') && url.toString().startsWith('https://'))\n // we penalize https only if the current url is http\n // to allow the user walk through all its servers.\n {\n penalty = 500;\n } else if (document.location.toString().startsWith('https://') && url.toString().startsWith('http://')) {\n error = 'can\\'t check';\n }\n\n var finalURL = netdataURL(url);\n\n setTimeout(function () {\n document.getElementById('gotoServerList').innerHTML += '<tr><td style=\"padding-left: 20px;\"><a href=\"' + verifyURL(finalURL) + '\" target=\"_blank\">' + escapeUserInputHTML(url) + '</a></td><td style=\"padding-left: 30px;\"><code id=\"' + guid + '-' + id + '-status\">checking...</code></td></tr>';\n\n NETDATA.registryHello(url, function (data) {\n if (typeof data !== 'undefined' && data !== null && typeof data.machine_guid === 'string' && data.machine_guid === guid) {\n // console.log('OK ' + id + ' URL: ' + url);\n document.getElementById(guid + '-' + id + '-status').innerHTML = \"OK\";\n\n if (!gotoServerStop) {\n gotoServerStop = true;\n\n if (gotoServerMiddleClick) {\n window.open(verifyURL(finalURL), '_blank');\n gotoServerMiddleClick = false;\n const registryMachines = getFromRegistry(\"registryMachines\");\n document.getElementById('gotoServerResponse').innerHTML = '<b>Opening new window to ' + registryMachines[guid].name + '<br/><a href=\"' + verifyURL(finalURL) + '\">' + escapeUserInputHTML(url) + '</a></b><br/>(check your pop-up blocker if it fails)';\n } else {\n document.getElementById('gotoServerResponse').innerHTML += 'found it! It is at:<br/><small>' + escapeUserInputHTML(url) + '</small>';\n document.location = verifyURL(finalURL);\n $('#gotoServerModal').modal('hide');\n }\n }\n } else {\n if (typeof data !== 'undefined' && data !== null && typeof data.machine_guid === 'string' && data.machine_guid !== guid) {\n error = 'wrong machine';\n }\n\n document.getElementById(guid + '-' + id + '-status').innerHTML = error;\n gotoServerValidateRemaining--;\n if (gotoServerValidateRemaining <= 0) {\n gotoServerMiddleClick = false;\n document.getElementById('gotoServerResponse').innerHTML = '<b>Sorry! I cannot find any operational URL for this server</b>';\n }\n }\n });\n }, (id * 50) + penalty);\n}\n\nwindow.gotoServerModalHandler = function gotoServerModalHandler(guid) {\n // console.log('goto server: ' + guid);\n\n gotoServerStop = false;\n var checked = {};\n const registryMachines = getFromRegistry(\"registryMachines\");\n var len = registryMachines[guid].alternateUrls.length;\n var count = 0;\n\n document.getElementById('gotoServerResponse').innerHTML = '';\n document.getElementById('gotoServerList').innerHTML = '';\n document.getElementById('gotoServerName').innerHTML = registryMachines[guid].name;\n $('#gotoServerModal').modal('show');\n\n gotoServerValidateRemaining = len;\n while (len--) {\n var url = registryMachines[guid].alternateUrls[len];\n checked[url] = true;\n gotoServerValidateUrl(count++, guid, url);\n }\n\n // When the registry is enabled, if the user's known URLs are not working\n // we consult the registry to get additional URLs.\n setTimeout(function () {\n if (gotoServerStop === false) {\n document.getElementById('gotoServerResponse').innerHTML = '<b>Added all the known URLs for this machine.</b>';\n NETDATA.registrySearch(guid, getFromRegistry, function (data) {\n // console.log(data);\n len = data.urls.length;\n while (len--) {\n var url = data.urls[len][1];\n // console.log(url);\n if (typeof checked[url] === 'undefined') {\n gotoServerValidateRemaining++;\n checked[url] = true;\n gotoServerValidateUrl(count++, guid, url);\n }\n }\n });\n }\n }, 2000);\n\n return false;\n}\n\nwindow.switchRegistryModalHandler = () => {\n document.getElementById('switchRegistryPersonGUID').value = getFromRegistry(\"personGuid\");\n document.getElementById('switchRegistryURL').innerHTML = getFromRegistry(\"registryServer\");\n document.getElementById('switchRegistryResponse').innerHTML = '';\n $('#switchRegistryModal').modal('show');\n};\n\nwindow.notifyForSwitchRegistry = () => {\n // it's just old code, with minimal changes\n const newPersonGuid = document.getElementById('switchRegistryPersonGUID').value;\n\n if (newPersonGuid !== '' && newPersonGuid.length === 36) {\n\n $.ajax({\n url: getFromRegistry(\"registryServer\") + '/api/v1/registry?action=switch&machine='\n + getFromRegistry(\"machineGuid\") + '&name='\n + encodeURIComponent(getFromRegistry(\"hostname\")) + '&url='\n + encodeURIComponent(serverDefault) + '&to=' + newPersonGuid,\n async: true,\n cache: false,\n headers: {\n 'Cache-Control': 'no-cache, no-store',\n 'Pragma': 'no-cache'\n },\n xhrFields: {withCredentials: true} // required for the cookie\n })\n .done(function (data) {\n data = NETDATA.xss.checkAlways('/api/v1/registry?action=switch', data);\n\n if (typeof data.status !== 'string' || data.status !== 'ok') {\n // NETDATA.error(413, NETDATA.registry.server + ' responded with: ' + JSON.stringify(data));\n console.warn(\"Netdata registry server send invalid response to SWITCH\", data)\n data = null;\n }\n\n $('#switchRegistryModal').modal('hide');\n })\n .fail(function () {\n // NETDATA.error(414, NETDATA.registry.server);\n console.warn(\"Netdata registry SWITCH failed\")\n document.getElementById('switchRegistryResponse').innerHTML = \"<b>Sorry! The registry rejected your request.</b>\";\n });\n } else {\n document.getElementById('switchRegistryResponse').innerHTML = \"<b>The ID you have entered is not a GUID.</b>\";\n }\n};\n\nvar deleteRegistryGuid = null;\nvar deleteRegistryUrl = null;\n\nwindow.deleteRegistryModalHandler = (guid, name, url) => {\n deleteRegistryGuid = guid;\n deleteRegistryUrl = url;\n\n document.getElementById('deleteRegistryServerName').innerHTML = name;\n document.getElementById('deleteRegistryServerName2').innerHTML = name;\n document.getElementById('deleteRegistryServerURL').innerHTML = url;\n document.getElementById('deleteRegistryResponse').innerHTML = '';\n\n $('#deleteRegistryModal').modal('show');\n}\n\nwindow.notifyForDeleteRegistry = () => {\n const responseEl = document.getElementById('deleteRegistryResponse');\n\n if (deleteRegistryUrl) {\n NETDATA.registryDelete(getFromRegistry, serverDefault, deleteRegistryUrl, function (result) {\n if (result !== null) {\n deleteRegistryUrl = null;\n $('#deleteRegistryModal').modal('hide');\n reduxStore.dispatch(resetRegistry())\n } else {\n responseEl.innerHTML = \"<b>Sorry, this command was rejected by the registry server!</b>\";\n }\n });\n }\n}\n\nvar options = {\n menus: {},\n submenu_names: {},\n data: null,\n hostname: 'netdata_server', // will be overwritten by the netdata server\n version: 'unknown',\n release_channel: 'unknown',\n hosts: [],\n\n duration: 0, // the default duration of the charts\n update_every: 1,\n\n chartsPerRow: 0,\n // chartsMinWidth: 1450,\n chartsHeight: 180,\n};\n\nfunction chartsPerRow(total) {\n void (total);\n\n if (options.chartsPerRow === 0) {\n return 1;\n //var width = Math.floor(total / options.chartsMinWidth);\n //if(width === 0) width = 1;\n //return width;\n } else {\n return options.chartsPerRow;\n }\n}\n\nfunction prioritySort(a, b) {\n if (a.priority < b.priority) {\n return -1;\n }\n if (a.priority > b.priority) {\n return 1;\n }\n return naturalSortCompare(a.name, b.name);\n}\n\nfunction sortObjectByPriority(object) {\n var idx = {};\n var sorted = [];\n\n for (var i in object) {\n if (!object.hasOwnProperty(i)) {\n continue;\n }\n\n if (typeof idx[i] === 'undefined') {\n idx[i] = object[i];\n sorted.push(i);\n }\n }\n\n sorted.sort(function (a, b) {\n if (idx[a].priority < idx[b].priority) {\n return -1;\n }\n if (idx[a].priority > idx[b].priority) {\n return 1;\n }\n return naturalSortCompare(a, b);\n });\n\n return sorted;\n}\n\n// ----------------------------------------------------------------------------\n// scroll to a section, without changing the browser history\n\nwindow.scrollToId = (hash) => {\n if (hash && hash !== '' && document.getElementById(hash) !== null) {\n var offset = $('#' + hash).offset();\n if (typeof offset !== 'undefined') {\n //console.log('scrolling to ' + hash + ' at ' + offset.top.toString());\n $('html, body').animate({ scrollTop: offset.top - 30 }, 0);\n }\n }\n\n // we must return false to prevent the default action\n return false;\n}\n\n// ----------------------------------------------------------------------------\n\n// user editable information\nwindow.customDashboard = {\n menu: {},\n submenu: {},\n context: {}\n};\n\n// netdata standard information\nconst netdataDashboard = {\n sparklines_registry: {},\n os: 'unknown',\n\n menu: {},\n submenu: {},\n context: {},\n\n // generate a sparkline\n // used in the documentation\n sparkline: function (prefix, chart, dimension, units, suffix) {\n if (options.data === null || typeof options.data.charts === 'undefined') {\n return '';\n }\n\n if (typeof options.data.charts[chart] === 'undefined') {\n return '';\n }\n\n if (typeof options.data.charts[chart].dimensions === 'undefined') {\n return '';\n }\n\n if (typeof options.data.charts[chart].dimensions[dimension] === 'undefined') {\n return '';\n }\n\n var key = chart + '.' + dimension;\n\n if (typeof units === 'undefined') {\n units = '';\n }\n\n if (typeof this.sparklines_registry[key] === 'undefined') {\n this.sparklines_registry[key] = { count: 1 };\n } else {\n this.sparklines_registry[key].count++;\n }\n\n key = key + '.' + this.sparklines_registry[key].count;\n\n return prefix + '<div class=\"netdata-container\" data-netdata=\"' + chart + '\" data-width=\"25%\" data-height=\"15px\" data-chart-library=\"dygraph\" data-dygraph-theme=\"sparkline\" data-dimensions=\"' + dimension + '\" data-show-value-of-' + dimension + '-at=\"' + key + '\"></div> (<span id=\"' + key + '\" style=\"display: inline-block; min-width: 50px; text-align: right;\">X</span>' + units + ')' + suffix;\n },\n\n gaugeChart: function (title, width, dimensions, colors) {\n if (typeof colors === 'undefined') {\n colors = '';\n }\n\n if (typeof dimensions === 'undefined') {\n dimensions = '';\n }\n\n return '<div class=\"netdata-container\" data-netdata=\"CHART_UNIQUE_ID\"'\n + ' data-dimensions=\"' + dimensions + '\"'\n + ' data-chart-library=\"gauge\"'\n + ' data-gauge-adjust=\"width\"'\n + ' data-title=\"' + title + '\"'\n + ' data-width=\"' + width + '\"'\n + ' data-points=\"CHART_DURATION\"'\n + ' data-colors=\"' + colors + '\"'\n + ' role=\"application\"></div>';\n },\n\n anyAttribute: function (obj, attr, key, def) {\n if (typeof (obj[key]) !== 'undefined') {\n var x = obj[key][attr];\n\n if (typeof (x) === 'undefined') {\n return def;\n }\n\n if (typeof (x) === 'function') {\n return x(netdataDashboard.os);\n }\n\n return x;\n }\n\n return def;\n },\n\n menuTitle: function (chart) {\n if (typeof chart.menu_pattern !== 'undefined') {\n return (this.anyAttribute(this.menu, 'title', chart.menu_pattern, chart.menu_pattern).toString()\n + '&nbsp;' + chart.type.slice(-(chart.type.length - chart.menu_pattern.length - 1)).toString()).replace(/_/g, ' ');\n }\n\n return (this.anyAttribute(this.menu, 'title', chart.menu, chart.menu)).toString().replace(/_/g, ' ');\n },\n\n menuIcon: function (chart) {\n if (typeof chart.menu_pattern !== 'undefined') {\n return this.anyAttribute(this.menu, 'icon', chart.menu_pattern, '<i class=\"fas fa-puzzle-piece\"></i>').toString();\n }\n\n return this.anyAttribute(this.menu, 'icon', chart.menu, '<i class=\"fas fa-puzzle-piece\"></i>');\n },\n\n menuInfo: function (chart) {\n if (typeof chart.menu_pattern !== 'undefined') {\n return this.anyAttribute(this.menu, 'info', chart.menu_pattern, null);\n }\n\n return this.anyAttribute(this.menu, 'info', chart.menu, null);\n },\n\n menuHeight: function (chart) {\n if (typeof chart.menu_pattern !== 'undefined') {\n return this.anyAttribute(this.menu, 'height', chart.menu_pattern, 1.0);\n }\n\n return this.anyAttribute(this.menu, 'height', chart.menu, 1.0);\n },\n\n submenuTitle: function (menu, submenu) {\n var key = menu + '.' + submenu;\n // console.log(key);\n var title = this.anyAttribute(this.submenu, 'title', key, submenu).toString().replace(/_/g, ' ');\n if (title.length > 28) {\n var a = title.substring(0, 13);\n var b = title.substring(title.length - 12, title.length);\n return a + '...' + b;\n }\n return title;\n },\n\n submenuInfo: function (menu, submenu) {\n var key = menu + '.' + submenu;\n return this.anyAttribute(this.submenu, 'info', key, null);\n },\n\n submenuHeight: function (menu, submenu, relative) {\n var key = menu + '.' + submenu;\n return this.anyAttribute(this.submenu, 'height', key, 1.0) * relative;\n },\n\n contextInfo: function (id) {\n var x = this.anyAttribute(this.context, 'info', id, null);\n\n if (x !== null) {\n return '<div class=\"shorten dashboard-context-info netdata-chart-alignment\" role=\"document\">' + x + '</div>';\n } else {\n return '';\n }\n },\n\n contextValueRange: function (id) {\n if (typeof this.context[id] !== 'undefined' && typeof this.context[id].valueRange !== 'undefined') {\n return this.context[id].valueRange;\n } else {\n return '[null, null]';\n }\n },\n\n contextHeight: function (id, def) {\n if (typeof this.context[id] !== 'undefined' && typeof this.context[id].height !== 'undefined') {\n return def * this.context[id].height;\n } else {\n return def;\n }\n },\n\n contextDecimalDigits: function (id, def) {\n if (typeof this.context[id] !== 'undefined' && typeof this.context[id].decimalDigits !== 'undefined') {\n return this.context[id].decimalDigits;\n } else {\n return def;\n }\n }\n};\nwindow.netdataDashboard = netdataDashboard // share with dashboard_info.js :/\n\n// ----------------------------------------------------------------------------\n\n// enrich the data structure returned by netdata\n// to reflect our menu system and content\n// TODO: this is a shame - we should fix charts naming (issue #807)\nfunction enrichChartData(chart) {\n var parts = chart.type.split('_');\n var tmp = parts[0];\n\n switch (tmp) {\n case 'ap':\n case 'net':\n case 'disk':\n case 'powersupply':\n chart.menu = tmp;\n break;\n\n case 'apache':\n chart.menu = chart.type;\n if (parts.length > 2 && parts[1] === 'cache') {\n chart.menu_pattern = tmp + '_' + parts[1];\n } else if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n\n case 'bind':\n chart.menu = chart.type;\n if (parts.length > 2 && parts[1] === 'rndc') {\n chart.menu_pattern = tmp + '_' + parts[1];\n } else if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n\n case 'cgroup':\n chart.menu = chart.type;\n if (chart.id.match(/.*[\\._\\/-:]qemu[\\._\\/-:]*/) || chart.id.match(/.*[\\._\\/-:]kvm[\\._\\/-:]*/)) {\n chart.menu_pattern = 'cgqemu';\n } else {\n chart.menu_pattern = 'cgroup';\n }\n break;\n\n case 'go':\n chart.menu = chart.type;\n if (parts.length > 2 && parts[1] === 'expvar') {\n chart.menu_pattern = tmp + '_' + parts[1];\n } else if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n\n case 'mount':\n if (parts.length > 2) {\n chart.menu = tmp + '_' + parts[1];\n }\n else {\n chart.menu = tmp;\n }\n break;\n\n case 'isc':\n chart.menu = chart.type;\n if (parts.length > 2 && parts[1] === 'dhcpd') {\n chart.menu_pattern = tmp + '_' + parts[1];\n } else if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n\n case 'ovpn':\n chart.menu = chart.type;\n if (parts.length > 3 && parts[1] === 'status' && parts[2] === 'log') {\n chart.menu_pattern = tmp + '_' + parts[1];\n } else if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n\n case 'smartd':\n case 'web':\n chart.menu = chart.type;\n if (parts.length > 2 && parts[1] === 'log') {\n chart.menu_pattern = tmp + '_' + parts[1];\n } else if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n\n case 'dnsmasq':\n chart.menu = chart.type;\n if (parts.length == 2 && parts[1] === 'dhcp') {\n chart.menu = tmp + '_' + parts[1];\n } else if (parts.length > 2 && parts[1] === 'dhcp') {\n chart.menu_pattern = tmp + '_' + parts[1];\n } else if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n\n case 'anomaly':\n if (parts.length >= 2 && parts[1].startsWith('detection')) {\n chart.menu = tmp + '_detection';\n }\n break;\n\n case 'tc':\n chart.menu = tmp;\n\n // find a name for this device from fireqos info\n // we strip '_(in|out)' or '(in|out)_'\n if (chart.context === 'tc.qos' && (typeof options.submenu_names[chart.family] === 'undefined' || options.submenu_names[chart.family] === chart.family)) {\n var n = chart.name.split('.')[1];\n if (n.endsWith('_in')) {\n options.submenu_names[chart.family] = n.slice(0, n.lastIndexOf('_in'));\n } else if (n.endsWith('_out')) {\n options.submenu_names[chart.family] = n.slice(0, n.lastIndexOf('_out'));\n } else if (n.startsWith('in_')) {\n options.submenu_names[chart.family] = n.slice(3, n.length);\n } else if (n.startsWith('out_')) {\n options.submenu_names[chart.family] = n.slice(4, n.length);\n } else {\n options.submenu_names[chart.family] = n;\n }\n }\n\n // increase the priority of IFB devices\n // to have inbound appear before outbound\n if (chart.id.match(/.*-ifb$/)) {\n chart.priority--;\n }\n\n break;\n\n default:\n chart.menu = chart.type;\n if (parts.length > 1) {\n chart.menu_pattern = tmp;\n }\n break;\n }\n\n chart.submenu = chart.family;\n}\n\n// ----------------------------------------------------------------------------\n\nfunction headMain(os, charts, duration) {\n void (os);\n\n if (urlOptions.mode === 'print') {\n return '';\n }\n\n var head = '';\n\n if (typeof charts['system.swap'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.swap\"'\n + ' data-dimensions=\"used\"'\n + ' data-append-options=\"percentage\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Used Swap\"'\n + ' data-units=\"%\"'\n + ' data-easypiechart-max-value=\"100\"'\n + ' data-width=\"9%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-colors=\"#DD4400\"'\n + ' role=\"application\"></div>';\n }\n\n if (typeof charts['system.io'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.io\"'\n + ' data-dimensions=\"in\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Disk Read\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.io.mainhead\"'\n + ' role=\"application\"></div>';\n\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.io\"'\n + ' data-dimensions=\"out\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Disk Write\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.io.mainhead\"'\n + ' role=\"application\"></div>';\n }\n else if (typeof charts['system.pgpgio'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.pgpgio\"'\n + ' data-dimensions=\"in\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Disk Read\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.pgpgio.mainhead\"'\n + ' role=\"application\"></div>';\n\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.pgpgio\"'\n + ' data-dimensions=\"out\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Disk Write\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.pgpgio.mainhead\"'\n + ' role=\"application\"></div>';\n }\n\n if (typeof charts['system.cpu'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.cpu\"'\n + ' data-chart-library=\"gauge\"'\n + ' data-title=\"CPU\"'\n + ' data-units=\"%\"'\n + ' data-gauge-max-value=\"100\"'\n + ' data-width=\"20%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-colors=\"' + NETDATA.colors[12] + '\"'\n + ' role=\"application\"></div>';\n }\n\n if (typeof charts['system.net'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.net\"'\n + ' data-dimensions=\"received\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Net Inbound\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.net.mainhead\"'\n + ' role=\"application\"></div>';\n\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.net\"'\n + ' data-dimensions=\"sent\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Net Outbound\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.net.mainhead\"'\n + ' role=\"application\"></div>';\n }\n else if (typeof charts['system.ip'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.ip\"'\n + ' data-dimensions=\"received\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"IP Inbound\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.ip.mainhead\"'\n + ' role=\"application\"></div>';\n\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.ip\"'\n + ' data-dimensions=\"sent\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"IP Outbound\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.ip.mainhead\"'\n + ' role=\"application\"></div>';\n }\n else if (typeof charts['system.ipv4'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.ipv4\"'\n + ' data-dimensions=\"received\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"IPv4 Inbound\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.ipv4.mainhead\"'\n + ' role=\"application\"></div>';\n\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.ipv4\"'\n + ' data-dimensions=\"sent\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"IPv4 Outbound\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.ipv4.mainhead\"'\n + ' role=\"application\"></div>';\n }\n else if (typeof charts['system.ipv6'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.ipv6\"'\n + ' data-dimensions=\"received\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"IPv6 Inbound\"'\n + ' data-units=\"kbps\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.ipv6.mainhead\"'\n + ' role=\"application\"></div>';\n\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.ipv6\"'\n + ' data-dimensions=\"sent\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"IPv6 Outbound\"'\n + ' data-units=\"kbps\"'\n + ' data-width=\"11%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-common-units=\"system.ipv6.mainhead\"'\n + ' role=\"application\"></div>';\n }\n\n if (typeof charts['system.ram'] !== 'undefined') {\n head += '<div class=\"netdata-container\" style=\"margin-right: 10px;\" data-netdata=\"system.ram\"'\n + ' data-dimensions=\"used|buffers|active|wired\"' // active and wired are FreeBSD stats\n + ' data-append-options=\"percentage\"'\n + ' data-chart-library=\"easypiechart\"'\n + ' data-title=\"Used RAM\"'\n + ' data-units=\"%\"'\n + ' data-easypiechart-max-value=\"100\"'\n + ' data-width=\"9%\"'\n + ' data-points=\"' + duration.toString() + '\"'\n + ' data-colors=\"' + NETDATA.colors[7] + '\"'\n + ' role=\"application\"></div>';\n }\n\n return head;\n}\n\nfunction generateHeadCharts(type, chart, duration) {\n if (urlOptions.mode === 'print') {\n return '';\n }\n\n var head = '';\n var hcharts = netdataDashboard.anyAttribute(netdataDashboard.context, type, chart.context, []);\n if (hcharts.length > 0) {\n var hi = 0, hlen = hcharts.length;\n while (hi < hlen) {\n if (typeof hcharts[hi] === 'function') {\n head += hcharts[hi](netdataDashboard.os, chart.id).replace(/CHART_DURATION/g, duration.toString()).replace(/CHART_UNIQUE_ID/g, chart.id);\n } else {\n head += hcharts[hi].replace(/CHART_DURATION/g, duration.toString()).replace(/CHART_UNIQUE_ID/g, chart.id);\n }\n hi++;\n }\n }\n return head;\n}\n\nfunction renderPage(menus, data) {\n var div = document.getElementById('charts_div');\n var pcent_width = Math.floor(100 / chartsPerRow($(div).width()));\n\n // find the proper duration for per-second updates\n var duration = Math.round(($(div).width() * pcent_width / 100 * data.update_every / 3) / 60) * 60;\n options.duration = duration; // probably obsolete/not needed\n options.update_every = data.update_every;\n\n var html = '';\n var sidebar = '<ul class=\"nav dashboard-sidenav\" data-spy=\"affix\" id=\"sidebar_ul\">';\n var mainhead = headMain(netdataDashboard.os, data.charts, duration);\n\n // sort the menus\n var main = sortObjectByPriority(menus);\n var i = 0, len = main.length;\n\n // todo hook to options\n const hasChartsOnBottom = defaultAttributes.legendPosition === \"bottom\"\n const chartAdditionalHeight = hasChartsOnBottom ? LEGEND_BOTTOM_SINGLE_LINE_HEIGHT : 0\n while (i < len) {\n var menu = main[i++];\n\n // generate an entry at the main menu\n\n var menuid = NETDATA.name2id('menu_' + menu);\n sidebar += '<li class=\"\"><a href=\"#' + menuid + '\" onClick=\"return scrollToId(\\'' + menuid + '\\');\">' + menus[menu].icon + ' ' + menus[menu].title + '</a><ul class=\"nav\">';\n html += '<div role=\"section\" class=\"dashboard-section\"><div role=\"sectionhead\"><h1 id=\"' + menuid + '\" role=\"heading\">' + menus[menu].icon + ' ' + menus[menu].title + '</h1></div><div role=\"section\" class=\"dashboard-subsection\">';\n\n if (menus[menu].info !== null) {\n html += menus[menu].info;\n }\n\n // console.log(' >> ' + menu + ' (' + menus[menu].priority + '): ' + menus[menu].title);\n\n var shtml = '';\n var mhead = '<div class=\"netdata-chart-row\">' + mainhead;\n mainhead = '';\n\n // sort the submenus of this menu\n var sub = sortObjectByPriority(menus[menu].submenus);\n var si = 0, slen = sub.length;\n while (si < slen) {\n var submenu = sub[si++];\n\n // generate an entry at the submenu\n var submenuid = NETDATA.name2id('menu_' + menu + '_submenu_' + submenu);\n sidebar += '<li class><a href=\"#' + submenuid + '\" onClick=\"return scrollToId(\\'' + submenuid + '\\');\">' + menus[menu].submenus[submenu].title + '</a></li>';\n shtml += '<div role=\"section\" class=\"dashboard-section-container\" id=\"' + submenuid + '\"><h2 id=\"' + submenuid + '\" class=\"netdata-chart-alignment\" role=\"heading\">' + menus[menu].submenus[submenu].title + '</h2>';\n\n if (menus[menu].submenus[submenu].info !== null) {\n shtml += '<div class=\"dashboard-submenu-info netdata-chart-alignment\" role=\"document\">' + menus[menu].submenus[submenu].info + '</div>';\n }\n\n var head = '<div class=\"netdata-chart-row\">';\n var chtml = '';\n\n // console.log(' \\------- ' + submenu + ' (' + menus[menu].submenus[submenu].priority + '): ' + menus[menu].submenus[submenu].title);\n\n // sort the charts in this submenu of this menu\n menus[menu].submenus[submenu].charts.sort(prioritySort);\n var ci = 0, clen = menus[menu].submenus[submenu].charts.length;\n while (ci < clen) {\n var chart = menus[menu].submenus[submenu].charts[ci++];\n\n // generate the submenu heading charts\n mhead += generateHeadCharts('mainheads', chart, duration);\n head += generateHeadCharts('heads', chart, duration);\n\n function chartCommonMin(family, context, units) {\n var x = netdataDashboard.anyAttribute(netdataDashboard.context, 'commonMin', context, undefined);\n if (typeof x !== 'undefined') {\n return ' data-common-min=\"' + family + '/' + context + '/' + units + '\"';\n } else {\n return '';\n }\n }\n\n function chartCommonMax(family, context, units) {\n var x = netdataDashboard.anyAttribute(netdataDashboard.context, 'commonMax', context, undefined);\n if (typeof x !== 'undefined') {\n return ' data-common-max=\"' + family + '/' + context + '/' + units + '\"';\n } else {\n return '';\n }\n }\n\n // generate the chart\n if (urlOptions.mode === 'print') {\n chtml += '<div role=\"row\" class=\"dashboard-print-row\">';\n }\n\n const chartHeight = netdataDashboard.contextHeight(chart.context, options.chartsHeight)\n + chartAdditionalHeight;\n\n chtml += '<div class=\"netdata-chartblock-container\" style=\"width: ' + pcent_width.toString() + '%;\">' + netdataDashboard.contextInfo(chart.context) + '<div class=\"netdata-container\" id=\"chart_' + NETDATA.name2id(chart.id) + '\" data-netdata=\"' + chart.id + '\"'\n + ' data-width=\"100%\"'\n + ' data-height=\"' + chartHeight.toString() + 'px\"'\n + ' data-dygraph-valuerange=\"' + netdataDashboard.contextValueRange(chart.context) + '\"'\n + ' data-id=\"' + NETDATA.name2id(options.hostname + '/' + chart.id) + '\"'\n + ' data-colors=\"' + netdataDashboard.anyAttribute(netdataDashboard.context, 'colors', chart.context, '') + '\"'\n + ' data-decimal-digits=\"' + netdataDashboard.contextDecimalDigits(chart.context, -1) + '\"'\n + (hasChartsOnBottom ? ' data-legend-position=\"bottom\"' : '')\n + chartCommonMin(chart.family, chart.context, chart.units)\n + chartCommonMax(chart.family, chart.context, chart.units)\n + ' role=\"application\"></div></div>';\n\n if (urlOptions.mode === 'print') {\n chtml += '</div>';\n }\n }\n\n head += '</div>';\n shtml += head + chtml + '</div>';\n }\n\n mhead += '</div>';\n sidebar += '</ul></li>';\n html += mhead + shtml + '</div></div><hr role=\"separator\"/>';\n }\n\n const isMemoryModeDbEngine = data.memory_mode === \"dbengine\";\n\n sidebar += '<li class=\"\" style=\"padding-top:15px;\"><a href=\"https://learn.netdata.cloud/docs/agent/collectors/quickstart/\" target=\"_blank\"><i class=\"fas fa-plus\"></i> Add more charts</a></li>';\n sidebar += '<li class=\"\"><a href=\"https://learn.netdata.cloud/docs/agent/health/quickstart/\" target=\"_blank\"><i class=\"fas fa-plus\"></i> Add more alarms</a></li>';\n sidebar += '<li class=\"\" style=\"margin:20px;color:#666;\"><small>Every ' +\n ((data.update_every === 1) ? 'second' : data.update_every.toString() + ' seconds') + ', ' +\n 'Netdata collects <strong>' + data.dimensions_count.toLocaleString() + '</strong> metrics on ' +\n data.hostname.toString() + ', presents them in <strong>' +\n data.charts_count.toLocaleString() + '</strong> charts' +\n (isMemoryModeDbEngine ? '' : ',') + // oxford comma\n ' and monitors them with <strong>' +\n data.alarms_count.toLocaleString() + '</strong> alarms.';\n\n if (!isMemoryModeDbEngine) {\n sidebar += '<br />&nbsp;<br />Get more history by ' +\n '<a href=\"https://learn.netdata.cloud/guides/longer-metrics-storage#using-the-round-robin-database\" target=_blank>configuring Netdata\\'s <strong>history</strong></a> or switching to the <a href=\"https://learn.netdata.cloud/docs/agent/database/engine\" target=_blank>database engine.</a>';\n }\n\n sidebar += '<br/>&nbsp;<br/><strong>netdata</strong><br/>' + data.version.toString() + '</small>';\n\n sidebar += '</li>'\n\n sidebar += '<li id=\"sidebar-end-portal-container\"></li>'\n\n\n sidebar += '</ul>';\n div.innerHTML = html;\n document.getElementById('sidebar').innerHTML = sidebar;\n\n if (urlOptions.highlight === true) {\n reduxStore.dispatch(setGlobalChartUnderlayAction({\n after: urlOptions.highlight_after,\n before: urlOptions.highlight_before,\n }))\n }\n\n if (urlOptions.mode === 'print') {\n printPage();\n } else {\n finalizePage();\n }\n}\n\nfunction renderChartsAndMenu(data) {\n options.menus = {};\n options.submenu_names = {};\n\n var menus = options.menus;\n var charts = data.charts;\n var m, menu_key;\n\n for (var c in charts) {\n if (!charts.hasOwnProperty(c)) {\n continue;\n }\n\n var chart = charts[c];\n enrichChartData(chart);\n m = chart.menu;\n\n // create the menu\n if (typeof menus[m] === 'undefined') {\n menus[m] = {\n menu_pattern: chart.menu_pattern,\n priority: chart.priority,\n submenus: {},\n title: netdataDashboard.menuTitle(chart),\n icon: netdataDashboard.menuIcon(chart),\n info: netdataDashboard.menuInfo(chart),\n height: netdataDashboard.menuHeight(chart) * options.chartsHeight\n };\n } else {\n if (typeof (menus[m].menu_pattern) === 'undefined') {\n menus[m].menu_pattern = chart.menu_pattern;\n }\n\n if (chart.priority < menus[m].priority) {\n menus[m].priority = chart.priority;\n }\n }\n\n menu_key = (typeof (menus[m].menu_pattern) !== 'undefined') ? menus[m].menu_pattern : m;\n\n // create the submenu\n if (typeof menus[m].submenus[chart.submenu] === 'undefined') {\n menus[m].submenus[chart.submenu] = {\n priority: chart.priority,\n charts: [],\n title: null,\n info: netdataDashboard.submenuInfo(menu_key, chart.submenu),\n height: netdataDashboard.submenuHeight(menu_key, chart.submenu, menus[m].height)\n };\n } else {\n if (chart.priority < menus[m].submenus[chart.submenu].priority) {\n menus[m].submenus[chart.submenu].priority = chart.priority;\n }\n }\n\n // index the chart in the menu/submenu\n menus[m].submenus[chart.submenu].charts.push(chart);\n }\n\n // propagate the descriptive subname given to QoS\n // to all the other submenus with the same name\n for (var m in menus) {\n if (!menus.hasOwnProperty(m)) {\n continue;\n }\n\n for (var s in menus[m].submenus) {\n if (!menus[m].submenus.hasOwnProperty(s)) {\n continue;\n }\n\n // set the family using a name\n if (typeof options.submenu_names[s] !== 'undefined') {\n menus[m].submenus[s].title = s + ' (' + options.submenu_names[s] + ')';\n } else {\n menu_key = (typeof (menus[m].menu_pattern) !== 'undefined') ? menus[m].menu_pattern : m;\n menus[m].submenus[s].title = netdataDashboard.submenuTitle(menu_key, s);\n }\n }\n }\n\n renderPage(menus, data);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const handleLoadJs = (promise, library, callback) => promise\n .catch((e) => {\n console.warn('error', e);\n alert(`Cannot load required JS library: ${library}`)\n })\n .then(() => {\n callback()\n })\n\n\nfunction loadClipboard(callback) {\n handleLoadJs(\n import(\"clipboard-polyfill\").then((clipboard) => {\n window.clipboard = clipboard\n }),\n \"clipboard-polyfill\",\n callback,\n )\n}\n\nfunction loadBootstrapTable(callback) {\n handleLoadJs(\n Promise.all([\n import(\"bootstrap-table\").then(() => (\n import('bootstrap-table/dist/extensions/export/bootstrap-table-export.min')\n )),\n import(\"tableexport.jquery.plugin\")\n ]),\n \"bootstrap-table\",\n callback,\n )\n}\n\nfunction loadBootstrapSlider(callback) {\n handleLoadJs(\n Promise.all([\n import(\"bootstrap-slider\").then(({ default: slider }) => {\n window.Slider = slider\n }),\n import(\"bootstrap-slider/dist/css/bootstrap-slider.min.css\"),\n ]),\n \"bootstrap-slider\",\n callback,\n )\n}\n\nfunction loadLzString(callback) {\n handleLoadJs(import(\"lz-string\"), \"lz-string\", callback)\n}\n\nfunction loadPako(callback) {\n handleLoadJs(\n import(\"pako\").then(({ default: pako }) => {\n window.pako = pako\n }),\n \"pako\",\n callback,\n )\n}\n\n// ----------------------------------------------------------------------------\n\nwindow.clipboardCopy = text => {\n clipboard.writeText(text);\n};\n\nwindow.clipboardCopyBadgeEmbed = url => {\n clipboard.writeText('<embed src=\"' + url + '\" type=\"image/svg+xml\" height=\"20\"/>');\n};\n\n// ----------------------------------------------------------------------------\n\nfunction alarmsUpdateModal() {\n var active = '<h3>Raised Alarms</h3><table class=\"table\">';\n var all = '<h3>All Running Alarms</h3><div class=\"panel-group\" id=\"alarms_all_accordion\" role=\"tablist\" aria-multiselectable=\"true\">';\n var footer = '<hr/><a href=\"https://github.com/netdata/netdata/tree/master/src/web/api/badges#netdata-badges\" target=\"_blank\">netdata badges</a> refresh automatically. Their color indicates the state of the alarm: <span style=\"color: #e05d44\"><b>&nbsp;red&nbsp;</b></span> is critical, <span style=\"color:#fe7d37\"><b>&nbsp;orange&nbsp;</b></span> is warning, <span style=\"color: #4c1\"><b>&nbsp;bright green&nbsp;</b></span> is ok, <span style=\"color: #9f9f9f\"><b>&nbsp;light grey&nbsp;</b></span> is undefined (i.e. no data or no status), <span style=\"color: #000\"><b>&nbsp;black&nbsp;</b></span> is not initialized. You can copy and paste their URLs to embed them in any web page.<br/>netdata can send notifications for these alarms. Check <a href=\"https://github.com/netdata/netdata/blob/master/src/health/notifications/health_alarm_notify.conf\" target=\"_blank\">this configuration file</a> for more information.';\n\n loadClipboard(function () {\n });\n\n\n const callback = (data) => {\n options.alarm_families = [];\n\n if (data === null) {\n document.getElementById('alarms_active').innerHTML =\n document.getElementById('alarms_all').innerHTML =\n document.getElementById('alarms_log').innerHTML =\n 'failed to load alarm data!';\n return;\n }\n\n function alarmid4human(id) {\n if (id === 0) {\n return '-';\n }\n\n return id.toString();\n }\n\n function timestamp4human(timestamp, space) {\n if (timestamp === 0) {\n return '-';\n }\n\n if (typeof space === 'undefined') {\n space = '&nbsp;';\n }\n\n var t = new Date(timestamp * 1000);\n\n // commented out to always have date+time, to have consistent exports\n // var now = new Date();\n\n // if (t.toDateString() === now.toDateString()) {\n // return t.toLocaleTimeString();\n // }\n\n return t.toLocaleDateString() + space + t.toLocaleTimeString();\n }\n\n function alarm_lookup_explain(alarm, chart) {\n var dimensions = ' of all values ';\n\n if (chart.dimensions.length > 1) {\n dimensions = ' of the sum of all dimensions ';\n }\n\n if (typeof alarm.lookup_dimensions !== 'undefined') {\n var d = alarm.lookup_dimensions.replace(/|/g, ',');\n var x = d.split(',');\n if (x.length > 1) {\n dimensions = 'of the sum of dimensions <code>' + alarm.lookup_dimensions + '</code> ';\n } else {\n dimensions = 'of all values of dimension <code>' + alarm.lookup_dimensions + '</code> ';\n }\n }\n\n return '<code>' + alarm.lookup_method + '</code> '\n + dimensions + ', of chart <code>' + alarm.chart + '</code>'\n + ', starting <code>' + seconds4human(alarm.lookup_after + alarm.lookup_before, { space: '&nbsp;' }) + '</code> and up to <code>' + seconds4human(alarm.lookup_before, { space: '&nbsp;' }) + '</code>'\n + ((alarm.lookup_options) ? (', with options <code>' + alarm.lookup_options.replace(/ /g, ',&nbsp;') + '</code>') : '')\n + '.';\n }\n\n function alarm_to_html(alarm, full) {\n var chart = options.data.charts[alarm.chart];\n if (typeof (chart) === 'undefined') {\n chart = options.data.charts_by_name[alarm.chart];\n if (typeof (chart) === 'undefined') {\n // this means the charts loaded are incomplete\n // probably netdata was restarted and more alarms\n // are now available.\n console.log('Cannot find chart ' + alarm.chart + ', you probably need to refresh the page.');\n return '';\n }\n }\n\n var has_alarm = (typeof alarm.warn !== 'undefined' || typeof alarm.crit !== 'undefined');\n var badge_url = `${serverDefault}/api/v1/badge.svg?chart=${alarm.chart}&alarm=${alarm.name}&refresh=auto`;\n\n var action_buttons = '<br/>&nbsp;<br/>role: <b>' + alarm.recipient + '</b><br/>&nbsp;<br/>'\n + '<div class=\"action-button ripple\" title=\"click to scroll the dashboard to the chart of this alarm\" data-toggle=\"tooltip\" data-placement=\"bottom\" onClick=\"scrollToChartAfterHidingModal(\\'' + alarm.chart + '\\', ' + alarm.last_status_change * 1000 + ', \\'' + alarm.status + '\\'); $(\\'#alarmsModal\\').modal(\\'hide\\'); return false;\"><i class=\"fab fa-periscope\"></i></div>'\n + '<div class=\"action-button ripple\" title=\"click to copy to the clipboard the URL of this badge\" data-toggle=\"tooltip\" data-placement=\"bottom\" onClick=\"clipboardCopy(\\'' + badge_url + '\\'); return false;\"><i class=\"far fa-copy\"></i></div>'\n + '<div class=\"action-button ripple\" title=\"click to copy to the clipboard an auto-refreshing <code>embed</code> html element for this badge\" data-toggle=\"tooltip\" data-placement=\"bottom\" onClick=\"clipboardCopyBadgeEmbed(\\'' + badge_url + '\\'); return false;\"><i class=\"fas fa-copy\"></i></div>';\n\n var html = '<tr><td class=\"text-center\" style=\"vertical-align: middle; word-break: break-word;\" width=\"40%\"><b>' + alarm.chart + '</b><br/>&nbsp;<br/><embed src=\"' + badge_url + '\" type=\"image/svg+xml\" height=\"20\"/><br/>&nbsp;<br/><span style=\"font-size: 18px;\">' + alarm.info + '</span>' + action_buttons + '</td>'\n + '<td><table class=\"table\">'\n + ((typeof alarm.warn !== 'undefined') ? ('<tr><td width=\"10%\" style=\"text-align:right\">warning&nbsp;when</td><td><span style=\"font-family: monospace; color:#fe7d37; font-weight: bold;\">' + alarm.warn + '</span></td></tr>') : '')\n + ((typeof alarm.crit !== 'undefined') ? ('<tr><td width=\"10%\" style=\"text-align:right\">critical&nbsp;when</td><td><span style=\"font-family: monospace; color: #e05d44; font-weight: bold;\">' + alarm.crit + '</span></td></tr>') : '');\n\n if (full === true) {\n var units = chart.units;\n if (units === '%') {\n units = '&#37;';\n }\n\n html += ((typeof alarm.lookup_after !== 'undefined') ? ('<tr><td width=\"10%\" style=\"text-align:right\">db&nbsp;lookup</td><td>' + alarm_lookup_explain(alarm, chart) + '</td></tr>') : '')\n + ((typeof alarm.calc !== 'undefined') ? ('<tr><td width=\"10%\" style=\"text-align:right\">calculation</td><td><span style=\"font-family: monospace;\">' + alarm.calc + '</span></td></tr>') : '')\n + ((chart.green !== null) ? ('<tr><td width=\"10%\" style=\"text-align:right\">green&nbsp;threshold</td><td><code>' + chart.green + ' ' + units + '</code></td></tr>') : '')\n + ((chart.red !== null) ? ('<tr><td width=\"10%\" style=\"text-align:right\">red&nbsp;threshold</td><td><code>' + chart.red + ' ' + units + '</code></td></tr>') : '');\n }\n\n if (alarm.warn_repeat_every > 0) {\n html += '<tr><td width=\"10%\" style=\"text-align:right\">repeat&nbsp;warning</td><td>' + seconds4human(alarm.warn_repeat_every) + '</td></tr>';\n }\n\n if (alarm.crit_repeat_every > 0) {\n html += '<tr><td width=\"10%\" style=\"text-align:right\">repeat&nbsp;critical</td><td>' + seconds4human(alarm.crit_repeat_every) + '</td></tr>';\n }\n\n var delay = '';\n if ((alarm.delay_up_duration > 0 || alarm.delay_down_duration > 0) && alarm.delay_multiplier !== 0 && alarm.delay_max_duration > 0) {\n if (alarm.delay_up_duration === alarm.delay_down_duration) {\n delay += '<small><br/>hysteresis ' + seconds4human(alarm.delay_up_duration, {\n space: '&nbsp;',\n negative_suffix: ''\n });\n } else {\n delay = '<small><br/>hysteresis ';\n if (alarm.delay_up_duration > 0) {\n delay += 'on&nbsp;escalation&nbsp;<code>' + seconds4human(alarm.delay_up_duration, {\n space: '&nbsp;',\n negative_suffix: ''\n }) + '</code>, ';\n }\n if (alarm.delay_down_duration > 0) {\n delay += 'on&nbsp;recovery&nbsp;<code>' + seconds4human(alarm.delay_down_duration, {\n space: '&nbsp;',\n negative_suffix: ''\n }) + '</code>, ';\n }\n }\n if (alarm.delay_multiplier !== 1.0) {\n delay += 'multiplied&nbsp;by&nbsp;<code>' + alarm.delay_multiplier.toString() + '</code>';\n delay += ',&nbsp;up&nbsp;to&nbsp;<code>' + seconds4human(alarm.delay_max_duration, {\n space: '&nbsp;',\n negative_suffix: ''\n }) + '</code>';\n }\n delay += '</small>';\n }\n\n html += '<tr><td width=\"10%\" style=\"text-align:right\">check&nbsp;every</td><td>' + seconds4human(alarm.update_every, {\n space: '&nbsp;',\n negative_suffix: ''\n }) + '</td></tr>'\n + ((has_alarm === true) ? ('<tr><td width=\"10%\" style=\"text-align:right\">execute</td><td><span style=\"font-family: monospace;\">' + alarm.exec + '</span>' + delay + '</td></tr>') : '')\n + '<tr><td width=\"10%\" style=\"text-align:right\">source</td><td><span style=\"font-family: monospace; word-break: break-word;\">' + alarm.source + '</span></td></tr>'\n + '</table></td></tr>';\n\n return html;\n }\n\n function alarm_family_show(id) {\n var html = '<table class=\"table\">';\n var family = options.alarm_families[id];\n var len = family.arr.length;\n while (len--) {\n var alarm = family.arr[len];\n html += alarm_to_html(alarm, true);\n }\n html += '</table>';\n\n $('#alarm_all_' + id.toString()).html(html);\n enableTooltipsAndPopovers();\n }\n\n // find the proper family of each alarm\n var x, family, alarm;\n var count_active = 0;\n var count_all = 0;\n var families = {};\n var families_sort = [];\n for (x in data.alarms) {\n if (!data.alarms.hasOwnProperty(x)) {\n continue;\n }\n\n alarm = data.alarms[x];\n family = alarm.family;\n\n // find the chart\n var chart = options.data.charts[alarm.chart];\n if (typeof chart === 'undefined') {\n chart = options.data.charts_by_name[alarm.chart];\n }\n\n // not found - this should never happen!\n if (typeof chart === 'undefined') {\n console.log('WARNING: alarm ' + x + ' is linked to chart ' + alarm.chart + ', which is not found in the list of chart got from the server.');\n chart = { priority: 9999999 };\n }\n else if (typeof chart.menu !== 'undefined' && typeof chart.submenu !== 'undefined')\n // the family based on the chart\n {\n family = chart.menu + ' - ' + chart.submenu;\n }\n\n if (typeof families[family] === 'undefined') {\n families[family] = {\n name: family,\n arr: [],\n priority: chart.priority\n };\n\n families_sort.push(families[family]);\n }\n\n if (chart.priority < families[family].priority) {\n families[family].priority = chart.priority;\n }\n\n families[family].arr.unshift(alarm);\n }\n\n // sort the families, like the dashboard menu does\n var families_sorted = families_sort.sort(function (a, b) {\n if (a.priority < b.priority) {\n return -1;\n }\n if (a.priority > b.priority) {\n return 1;\n }\n return naturalSortCompare(a.name, b.name);\n });\n\n var i = 0;\n var fc = 0;\n var len = families_sorted.length;\n while (len--) {\n family = families_sorted[i++].name;\n var active_family_added = false;\n\n var expanded = 'false';\n var collapsed = 'class=\"collapsed\"';\n var cin = '';\n\n // uncomment if first family needs to be expanded by default\n // var expanded = 'true';\n // var collapsed = '';\n // var cin = 'in';\n\n if (fc !== 0) {\n all += \"</table></div></div></div>\";\n\n // uncomment if first family needs to be expanded by default\n // expanded = 'false';\n // collapsed = 'class=\"collapsed\"';\n // cin = '';\n }\n\n all += '<div class=\"panel panel-default\"><div class=\"panel-heading\" role=\"tab\" id=\"alarm_all_heading_' + fc.toString() + '\"><h4 class=\"panel-title\"><a ' + collapsed + ' role=\"button\" data-toggle=\"collapse\" data-parent=\"#alarms_all_accordion\" href=\"#alarm_all_' + fc.toString() + '\" aria-expanded=\"' + expanded + '\" aria-controls=\"alarm_all_' + fc.toString() + '\">' + family.toString() + '</a></h4></div><div id=\"alarm_all_' + fc.toString() + '\" class=\"panel-collapse collapse ' + cin + '\" role=\"tabpanel\" aria-labelledby=\"alarm_all_heading_' + fc.toString() + '\" data-alarm-id=\"' + fc.toString() + '\"><div class=\"panel-body\" id=\"alarm_all_body_' + fc.toString() + '\">';\n\n options.alarm_families[fc] = families[family];\n\n fc++;\n\n var arr = families[family].arr;\n var c = arr.length;\n while (c--) {\n alarm = arr[c];\n if (alarm.status === 'WARNING' || alarm.status === 'CRITICAL') {\n if (!active_family_added) {\n active_family_added = true;\n active += '<tr><th class=\"text-center\" colspan=\"2\"><h4>' + family + '</h4></th></tr>';\n }\n count_active++;\n active += alarm_to_html(alarm, true);\n }\n\n count_all++;\n }\n }\n active += \"</table>\";\n if (families_sorted.length > 0) {\n all += \"</div></div></div>\";\n }\n all += \"</div>\";\n\n if (!count_active) {\n active += '<div style=\"width:100%; height: 100px; text-align: center;\"><span style=\"font-size: 50px;\"><i class=\"fas fa-thumbs-up\"></i></span><br/>Everything is normal. No raised alarms.</div>';\n } else {\n active += footer;\n }\n\n if (!count_all) {\n all += \"<h4>No alarms are running in this system.</h4>\";\n } else {\n all += footer;\n }\n\n document.getElementById('alarms_active').innerHTML = active;\n document.getElementById('alarms_all').innerHTML = all;\n enableTooltipsAndPopovers();\n\n if (families_sorted.length > 0) {\n alarm_family_show(0);\n }\n\n // register bootstrap events\n var $accordion = $('#alarms_all_accordion');\n $accordion.on('show.bs.collapse', function (d) {\n var target = $(d.target);\n var id = $(target).data('alarm-id');\n alarm_family_show(id);\n });\n $accordion.on('hidden.bs.collapse', function (d) {\n var target = $(d.target);\n var id = $(target).data('alarm-id');\n $('#alarm_all_' + id.toString()).html('');\n });\n\n document.getElementById('alarms_log').innerHTML = '<h3>Alarm Log</h3><table id=\"alarms_log_table\"></table>';\n\n loadBootstrapTable(function () {\n $('#alarms_log_table').bootstrapTable({\n url: `${serverDefault}/api/v1/alarm_log?all`,\n cache: false,\n pagination: true,\n pageSize: 10,\n showPaginationSwitch: false,\n search: true,\n searchTimeOut: 300,\n searchAlign: 'left',\n showColumns: true,\n showExport: true,\n exportDataType: 'all',\n exportOptions: {\n fileName: 'netdata_alarm_log'\n },\n onClickRow: function (row) {\n scrollToChartAfterHidingModal(row.chart, row.when * 1000, row.status);\n $('#alarmsModal').modal('hide');\n return false;\n },\n rowStyle: function (row) {\n switch (row.status) {\n case 'CRITICAL':\n return { classes: 'danger' };\n break;\n case 'WARNING':\n return { classes: 'warning' };\n break;\n case 'UNDEFINED':\n return { classes: 'info' };\n break;\n case 'CLEAR':\n return { classes: 'success' };\n break;\n }\n return {};\n },\n showFooter: false,\n showHeader: true,\n showRefresh: true,\n showToggle: false,\n sortable: true,\n silentSort: false,\n columns: [\n {\n field: 'when',\n title: 'Event Date',\n valign: 'middle',\n titleTooltip: 'The date and time the even took place',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return timestamp4human(value, ' ');\n },\n align: 'center',\n switchable: false,\n sortable: true\n },\n {\n field: 'hostname',\n title: 'Host',\n valign: 'middle',\n titleTooltip: 'The host that generated this event',\n align: 'center',\n visible: false,\n sortable: true\n },\n {\n field: 'unique_id',\n title: 'Unique ID',\n titleTooltip: 'The host unique ID for this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return alarmid4human(value);\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'alarm_id',\n title: 'Alarm ID',\n titleTooltip: 'The ID of the alarm that generated this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return alarmid4human(value);\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'alarm_event_id',\n title: 'Alarm Event ID',\n titleTooltip: 'The incremental ID of this event for the given alarm',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return alarmid4human(value);\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'chart',\n title: 'Chart',\n titleTooltip: 'The chart the alarm is attached to',\n align: 'center',\n valign: 'middle',\n switchable: false,\n sortable: true\n },\n {\n field: 'family',\n title: 'Family',\n titleTooltip: 'The family of the chart the alarm is attached to',\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'name',\n title: 'Alarm',\n titleTooltip: 'The alarm name that generated this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return value.toString().replace(/_/g, ' ');\n },\n align: 'center',\n valign: 'middle',\n switchable: false,\n sortable: true\n },\n {\n field: 'value_string',\n title: 'Friendly Value',\n titleTooltip: 'The value of the alarm, that triggered this event',\n align: 'right',\n valign: 'middle',\n sortable: true\n },\n {\n field: 'old_value_string',\n title: 'Friendly Old Value',\n titleTooltip: 'The value of the alarm, just before this event',\n align: 'right',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'old_value',\n title: 'Old Value',\n titleTooltip: 'The value of the alarm, just before this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return ((value !== null) ? Math.round(value * 100) / 100 : 'NaN').toString();\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'value',\n title: 'Value',\n titleTooltip: 'The value of the alarm, that triggered this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return ((value !== null) ? Math.round(value * 100) / 100 : 'NaN').toString();\n },\n align: 'right',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'units',\n title: 'Units',\n titleTooltip: 'The units of the value of the alarm',\n align: 'left',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'old_status',\n title: 'Old Status',\n titleTooltip: 'The status of the alarm, just before this event',\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'status',\n title: 'Status',\n titleTooltip: 'The status of the alarm, that was set due to this event',\n align: 'center',\n valign: 'middle',\n switchable: false,\n sortable: true\n },\n {\n field: 'duration',\n title: 'Last Duration',\n titleTooltip: 'The duration the alarm was at its previous state, just before this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return seconds4human(value, { negative_suffix: '', space: ' ', now: 'no time' });\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'non_clear_duration',\n title: 'Raised Duration',\n titleTooltip: 'The duration the alarm was raised, just before this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return seconds4human(value, { negative_suffix: '', space: ' ', now: 'no time' });\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'recipient',\n title: 'Recipient',\n titleTooltip: 'The recipient of this event',\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'processed',\n title: 'Processed Status',\n titleTooltip: 'True when this event is processed',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n\n if (value === true) {\n return 'DONE';\n } else {\n return 'PENDING';\n }\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'updated',\n title: 'Updated Status',\n titleTooltip: 'True when this event has been updated by another event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n\n if (value === true) {\n return 'UPDATED';\n } else {\n return 'CURRENT';\n }\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'updated_by_id',\n title: 'Updated By ID',\n titleTooltip: 'The unique ID of the event that obsoleted this one',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return alarmid4human(value);\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'updates_id',\n title: 'Updates ID',\n titleTooltip: 'The unique ID of the event obsoleted because of this event',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return alarmid4human(value);\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'exec',\n title: 'Script',\n titleTooltip: 'The script to handle the event notification',\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'exec_run',\n title: 'Script Run At',\n titleTooltip: 'The date and time the script has been ran',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return timestamp4human(value, ' ');\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'exec_code',\n title: 'Script Return Value',\n titleTooltip: 'The return code of the script',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n\n if (value === 0) {\n return 'OK (returned 0)';\n } else {\n return 'FAILED (with code ' + value.toString() + ')';\n }\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'delay',\n title: 'Script Delay',\n titleTooltip: 'The hysteresis of the notification',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n\n return seconds4human(value, { negative_suffix: '', space: ' ', now: 'no time' });\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'delay_up_to_timestamp',\n title: 'Script Delay Run At',\n titleTooltip: 'The date and time the script should be run, after hysteresis',\n formatter: function (value, row, index) {\n void (row);\n void (index);\n return timestamp4human(value, ' ');\n },\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'info',\n title: 'Description',\n titleTooltip: 'A short description of the alarm',\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n },\n {\n field: 'source',\n title: 'Alarm Source',\n titleTooltip: 'The source of configuration of the alarm',\n align: 'center',\n valign: 'middle',\n visible: false,\n sortable: true\n }\n ]\n });\n // console.log($('#alarms_log_table').bootstrapTable('getOptions'));\n });\n }\n\n reduxStore.dispatch(fetchAllAlarmsAction.request({\n callback,\n serverDefault,\n }))\n}\n\nfunction initializeDynamicDashboardWithData(data) {\n if (data !== null) {\n options.hostname = data.hostname;\n options.data = data;\n options.version = data.version;\n options.release_channel = data.release_channel;\n options.timezone = data.timezone;\n netdataDashboard.os = data.os;\n\n if (typeof data.hosts !== 'undefined') {\n options.hosts = data.hosts;\n }\n\n // update the dashboard hostname\n document.getElementById('netdataVersion').innerHTML = options.version;\n\n // update the dashboard title\n document.title = options.hostname + ' netdata dashboard';\n\n // create a chart_by_name index\n data.charts_by_name = {};\n var charts = data.charts;\n var x;\n for (x in charts) {\n if (!charts.hasOwnProperty(x)) {\n continue;\n }\n\n var chart = charts[x];\n data.charts_by_name[chart.name] = chart;\n }\n\n // render all charts\n renderChartsAndMenu(data);\n }\n}\n\n// an object to keep initialization configuration\n// needed due to the async nature of the XSS modal\nvar initializeConfig = {\n url: null,\n custom_info: true,\n};\n\n// will be removed when we'll transform dashboard_info.js into DSL\n// memoize so it's fetched only once\nconst loadDashboardInfo = memoizeWith(identity, () => (\n $.ajax({\n url: `${serverDefault}dashboard_info.js`,\n cache: true,\n dataType: 'script',\n xhrFields: { withCredentials: true }, // required for the cookie\n })\n .fail(function () {\n alert(`Cannot load required JS library: dashboard_info.js`);\n })\n))\n\nfunction loadCustomDashboardInfo(url, callback) {\n $.ajax({\n url,\n cache: true,\n dataType: \"script\",\n xhrFields: { withCredentials: true } // required for the cookie\n })\n .fail(function () {\n alert(`Cannot load required JS library: ${url}`);\n })\n .always(function () {\n $.extend(true, netdataDashboard, customDashboard);\n callback();\n })\n}\n\nfunction initializeChartsAndCustomInfo() {\n loadDashboardInfo().then(() => {\n // download all the charts the server knows\n NETDATA.chartRegistry.downloadAll(initializeConfig.url, function (data) {\n if (data !== null) {\n reduxStore.dispatch(chartsMetadataRequestSuccess({ data }))\n if (initializeConfig.custom_info === true && typeof data.custom_info !== 'undefined' && data.custom_info !== \"\" && window.netdataSnapshotData === null) {\n //console.log('loading custom dashboard decorations from server ' + initializeConfig.url);\n loadCustomDashboardInfo(serverDefault + data.custom_info, function () {\n initializeDynamicDashboardWithData(data);\n });\n } else {\n //console.log('not loading custom dashboard decorations from server ' + initializeConfig.url);\n initializeDynamicDashboardWithData(data);\n }\n }\n });\n })\n}\n\nwindow.xssModalDisableXss = () => {\n //console.log('disabling xss checks');\n NETDATA.xss.enabled = false;\n NETDATA.xss.enabled_for_data = false;\n initializeConfig.custom_info = true;\n initializeChartsAndCustomInfo();\n return false;\n};\n\n\nwindow.xssModalKeepXss = () => {\n //console.log('keeping xss checks');\n NETDATA.xss.enabled = true;\n NETDATA.xss.enabled_for_data = true;\n initializeConfig.custom_info = false;\n initializeChartsAndCustomInfo();\n return false;\n};\n\nfunction initializeDynamicDashboard(newReduxStore) {\n if (newReduxStore) {\n reduxStore = newReduxStore\n\n netdataPrepCallback()\n\n initializeConfig.url = serverDefault;\n }\n\n if (typeof netdataCheckXSS !== 'undefined' && netdataCheckXSS === true) {\n //$(\"#loadOverlay\").css(\"display\",\"none\");\n document.getElementById('netdataXssModalServer').innerText = initializeConfig.url;\n $('#xssModal').modal('show');\n } else {\n initializeChartsAndCustomInfo();\n }\n}\n\n// ----------------------------------------------------------------------------\n\nfunction versionLog(msg) {\n document.getElementById('versionCheckLog').innerHTML = msg;\n}\n\n// New way of checking for updates, based only on versions\n\nfunction versionsMatch(v1, v2) {\n if (v1 == v2) {\n return true;\n } else {\n let s1 = v1.split('.');\n let s2 = v2.split('.');\n // Check major version\n let n1 = parseInt(s1[0].substring(1, 2), 10);\n let n2 = parseInt(s2[0].substring(1, 2), 10);\n if (n1 < n2) return false;\n else if (n1 > n2) return true;\n\n // Check minor version\n n1 = parseInt(s1[1], 10);\n n2 = parseInt(s2[1], 10);\n if (n1 < n2) return false;\n else if (n1 > n2) return true;\n\n // Split patch: format could be e.g. 0-22-nightly\n s1 = s1[2].split('-');\n s2 = s2[2].split('-');\n\n n1 = parseInt(s1[0], 10);\n n2 = parseInt(s2[0], 10);\n if (n1 < n2) return false;\n else if (n1 > n2) return true;\n\n n1 = (s1.length > 1) ? parseInt(s1[1], 10) : 0;\n n2 = (s2.length > 1) ? parseInt(s2[1], 10) : 0;\n if (n1 < n2) return false;\n else return true;\n }\n}\n\nfunction getGithubLatestVersion(callback, channel) {\n versionLog('Downloading latest version id from github...');\n let url\n\n if (channel === 'stable') {\n url = 'https://api.github.com/repos/netdata/netdata/releases/latest'\n } else {\n url = 'https://api.github.com/repos/netdata/netdata-nightlies/releases/latest'\n }\n\n $.ajax({\n url: url,\n async: true,\n cache: false\n })\n .done(function (data) {\n data = data.tag_name.replace(/(\\r\\n|\\n|\\r| |\\t)/gm, \"\");\n versionLog('Latest stable version from github is ' + data);\n callback(data);\n })\n .fail(function () {\n versionLog('Failed to download the latest stable version id from github!');\n callback(null);\n });\n}\n\nfunction checkForUpdateByVersion(force, callback) {\n getGithubLatestVersion(function (sha2) {\n callback(options.version, sha2);\n }, options.release_channel);\n return null;\n}\n\nwindow.notifyForUpdate = (force) => {\n versionLog('<p>checking for updates...</p>');\n\n var now = Date.now();\n\n if (typeof force === 'undefined' || force !== true) {\n var last = loadLocalStorage('last_update_check');\n\n if (typeof last === 'string') {\n last = parseInt(last);\n } else {\n last = 0;\n }\n\n if (now - last < 3600000 * 8) {\n // no need to check it - too soon\n return;\n }\n }\n\n checkForUpdateByVersion(force, function (sha1, sha2) {\n var save = false;\n\n if (sha1 === null) {\n save = false;\n versionLog('<p><big>Failed to get your netdata version!</big></p><p>You can always get the latest netdata from <a href=\"https://github.com/netdata/netdata\" target=\"_blank\">its github page</a>.</p>');\n } else if (sha2 === null) {\n save = false;\n versionLog('<p><big>Failed to get the latest netdata version.</big></p><p>You can always get the latest netdata from <a href=\"https://github.com/netdata/netdata\" target=\"_blank\">its github page</a>.</p>');\n } else if (versionsMatch(sha1, sha2)) {\n save = true;\n versionLog('<p><big>You already have the latest netdata!</big></p><p>No update yet?<br/>We probably need some motivation to keep going on!</p><p>If you haven\\'t already, <a href=\"https://github.com/netdata/netdata\" target=\"_blank\">give netdata a <b><i class=\"fas fa-star\"></i></b> at its github page</a>.</p>');\n } else {\n save = true;\n var compare = 'https://learn.netdata.cloud/docs/agent/changelog/';\n versionLog('<p><big><strong>New version of netdata available!</strong></big></p><p>Latest version: <b><code>' + sha2 + '</code></b></p><p><a href=\"' + compare + '\" target=\"_blank\">Click here for the changes log</a> and<br/><a href=\"https://github.com/netdata/netdata/tree/master/packaging/installer/UPDATE.md\" target=\"_blank\">click here for directions on updating</a> your netdata installation.</p><p>We suggest to review the changes log for new features you may be interested, or important bug fixes you may need.<br/>Keeping your netdata updated is generally a good idea.</p>');\n }\n\n if (save) {\n saveLocalStorage('last_update_check', now.toString());\n }\n });\n}\n\n// ----------------------------------------------------------------------------\n// printing dashboards\n\nfunction showPageFooter() {\n document.getElementById('footer').style.display = 'block';\n}\n\nwindow.printPreflight = () => {\n var url = document.location.origin.toString() + document.location.pathname.toString() + document.location.search.toString() + urlOptions.genHash() + ';mode=print';\n var width = 990;\n var height = screen.height * 90 / 100;\n //console.log(url);\n //console.log(document.location);\n window.open(url, '', 'width=' + width.toString() + ',height=' + height.toString() + ',menubar=no,toolbar=no,personalbar=no,location=no,resizable=no,scrollbars=yes,status=no,chrome=yes,centerscreen=yes,attention=yes,dialog=yes');\n $('#printPreflightModal').modal('hide');\n}\n\nfunction printPage() {\n window.NETDATA.parseDom();\n\n if (urlOptions.after < 0) {\n reduxStore.dispatch(setDefaultAfterAction({ after: urlOptions.after }))\n } else if (urlOptions.pan_and_zoom === true) {\n reduxStore.dispatch(setGlobalPanAndZoomAction({\n after: urlOptions.after,\n before: urlOptions.before,\n }))\n }\n showPageFooter(); // todo after full rewrite the footer should show when charts are loaded\n}\n\n// --------------------------------------------------------------------\n\nfunction jsonStringifyFn(obj) {\n return JSON.stringify(obj, function (key, value) {\n return (typeof value === 'function') ? value.toString() : value;\n });\n}\n\nfunction jsonParseFn(str) {\n return JSON.parse(str, function (key, value) {\n if (typeof value != 'string') {\n return value;\n }\n return (value.substring(0, 8) == 'function') ? eval('(' + value + ')') : value;\n });\n}\n\n// --------------------------------------------------------------------\n\nvar snapshotOptions = {\n bytes_per_chart: 2048,\n compressionDefault: 'pako.deflate.base64',\n\n compressions: {\n 'none': {\n bytes_per_point_memory: 5.2,\n bytes_per_point_disk: 5.6,\n\n compress: function (s) {\n return s;\n },\n\n compressed_length: function (s) {\n return s.length;\n },\n\n uncompress: function (s) {\n return s;\n }\n },\n\n 'pako.deflate.base64': {\n bytes_per_point_memory: 1.8,\n bytes_per_point_disk: 1.9,\n\n compress: function (s) {\n return btoa(pako.deflate(s, { to: 'string' }));\n },\n\n compressed_length: function (s) {\n return s.length;\n },\n\n uncompress: function (s) {\n return pako.inflate(atob(s), { to: 'string' });\n }\n },\n\n 'pako.deflate': {\n bytes_per_point_memory: 1.4,\n bytes_per_point_disk: 3.2,\n\n compress: function (s) {\n return pako.deflate(s, { to: 'string' });\n },\n\n compressed_length: function (s) {\n return s.length;\n },\n\n uncompress: function (s) {\n return pako.inflate(s, { to: 'string' });\n }\n },\n\n 'lzstring.utf16': {\n bytes_per_point_memory: 1.7,\n bytes_per_point_disk: 2.6,\n\n compress: function (s) {\n return LZString.compressToUTF16(s);\n },\n\n compressed_length: function (s) {\n return s.length * 2;\n },\n\n uncompress: function (s) {\n return LZString.decompressFromUTF16(s);\n }\n },\n\n 'lzstring.base64': {\n bytes_per_point_memory: 2.1,\n bytes_per_point_disk: 2.3,\n\n compress: function (s) {\n return LZString.compressToBase64(s);\n },\n\n compressed_length: function (s) {\n return s.length;\n },\n\n uncompress: function (s) {\n return LZString.decompressFromBase64(s);\n }\n },\n\n 'lzstring.uri': {\n bytes_per_point_memory: 2.1,\n bytes_per_point_disk: 2.3,\n\n compress: function (s) {\n return LZString.compressToEncodedURIComponent(s);\n },\n\n compressed_length: function (s) {\n return s.length;\n },\n\n uncompress: function (s) {\n return LZString.decompressFromEncodedURIComponent(s);\n }\n }\n }\n};\n\n// --------------------------------------------------------------------\n// loading snapshots\n\nfunction loadSnapshotModalLog(priority, msg) {\n document.getElementById('loadSnapshotStatus').className = \"alert alert-\" + priority;\n document.getElementById('loadSnapshotStatus').innerHTML = msg;\n}\n\nvar tmpSnapshotData = null;\n\nwindow.loadSnapshot = () => {\n $('#loadSnapshotImport').addClass('disabled');\n\n if (tmpSnapshotData === null) {\n loadSnapshotPreflightEmpty();\n loadSnapshotModalLog('danger', 'no data have been loaded');\n return;\n }\n\n loadPako(function () {\n loadLzString(function () {\n loadSnapshotModalLog('info', 'Please wait, activating snapshot...');\n $('#loadSnapshotModal').modal('hide');\n\n netdataShowAlarms = false;\n netdataRegistry = false;\n netdataServer = tmpSnapshotData.server;\n\n document.getElementById('charts_div').innerHTML = '';\n document.getElementById('sidebar').innerHTML = '';\n\n if (typeof tmpSnapshotData.hash !== 'undefined') {\n urlOptions.hash = tmpSnapshotData.hash;\n } else {\n urlOptions.hash = '#';\n }\n\n if (typeof tmpSnapshotData.info !== 'undefined') {\n var info = jsonParseFn(tmpSnapshotData.info);\n if (typeof info.menu !== 'undefined') {\n netdataDashboard.menu = info.menu;\n }\n\n if (typeof info.submenu !== 'undefined') {\n netdataDashboard.submenu = info.submenu;\n }\n\n if (typeof info.context !== 'undefined') {\n netdataDashboard.context = info.context;\n }\n }\n\n if (typeof tmpSnapshotData.compression !== 'string') {\n tmpSnapshotData.compression = 'none';\n }\n\n if (typeof snapshotOptions.compressions[tmpSnapshotData.compression] === 'undefined') {\n alert('unknown compression method: ' + tmpSnapshotData.compression);\n tmpSnapshotData.compression = 'none';\n }\n\n tmpSnapshotData.uncompress = snapshotOptions.compressions[tmpSnapshotData.compression].uncompress;\n\n window.NETDATA.parseDom()\n reduxStore.dispatch(loadSnapshotAction({\n snapshot: tmpSnapshotData,\n }))\n\n window.netdataSnapshotData = tmpSnapshotData;\n\n urlOptions.after = tmpSnapshotData.after_ms;\n urlOptions.before = tmpSnapshotData.before_ms;\n\n if (typeof tmpSnapshotData.highlight_after_ms !== 'undefined'\n && tmpSnapshotData.highlight_after_ms !== null\n && tmpSnapshotData.highlight_after_ms > 0\n && typeof tmpSnapshotData.highlight_before_ms !== 'undefined'\n && tmpSnapshotData.highlight_before_ms !== null\n && tmpSnapshotData.highlight_before_ms > 0\n ) {\n urlOptions.highlight_after = tmpSnapshotData.highlight_after_ms;\n urlOptions.highlight_before = tmpSnapshotData.highlight_before_ms;\n urlOptions.highlight = true;\n } else {\n urlOptions.highlight_after = 0;\n urlOptions.highlight_before = 0;\n urlOptions.highlight = false;\n }\n\n netdataCheckXSS = false; // disable the modal - this does not affect XSS checks, since dashboard.js is already loaded\n NETDATA.xss.enabled = true; // we should not do any remote requests, but if we do, check them\n NETDATA.xss.enabled_for_data = true; // check also snapshot data - that have been excluded from the initial check, due to compression\n loadSnapshotPreflightEmpty();\n initializeDynamicDashboard();\n });\n });\n};\n\nfunction loadSnapshotPreflightFile(file) {\n var filename = NETDATA.xss.string(file.name);\n var fr = new FileReader();\n fr.onload = function (e) {\n document.getElementById('loadSnapshotFilename').innerHTML = filename;\n var result = null;\n try {\n result = NETDATA.xss.checkAlways('snapshot', JSON.parse(e.target.result), /^(snapshot\\.info|snapshot\\.data)$/);\n\n //console.log(result);\n var date_after = new Date(result.after_ms);\n var date_before = new Date(result.before_ms);\n\n if (typeof result.charts_ok === 'undefined') {\n result.charts_ok = 'unknown';\n }\n\n if (typeof result.charts_failed === 'undefined') {\n result.charts_failed = 0;\n }\n\n if (typeof result.compression === 'undefined') {\n result.compression = 'none';\n }\n\n if (typeof result.data_size === 'undefined') {\n result.data_size = 0;\n }\n\n document.getElementById('loadSnapshotFilename').innerHTML = '<code>' + filename + '</code>';\n document.getElementById('loadSnapshotHostname').innerHTML = '<b>' + result.hostname + '</b>, netdata version: <b>' + result.netdata_version.toString() + '</b>';\n document.getElementById('loadSnapshotURL').innerHTML = result.url;\n document.getElementById('loadSnapshotCharts').innerHTML = result.charts.charts_count.toString() + ' charts, ' + result.charts.dimensions_count.toString() + ' dimensions, ' + result.data_points.toString() + ' points per dimension, ' + Math.round(result.duration_ms / result.data_points).toString() + ' ms per point';\n document.getElementById('loadSnapshotInfo').innerHTML = 'version: <b>' + result.snapshot_version.toString() + '</b>, includes <b>' + result.charts_ok.toString() + '</b> unique chart data queries ' + ((result.charts_failed > 0) ? ('<b>' + result.charts_failed.toString() + '</b> failed') : '').toString() + ', compressed with <code>' + result.compression.toString() + '</code>, data size ' + (Math.round(result.data_size * 100 / 1024 / 1024) / 100).toString() + ' MB';\n document.getElementById('loadSnapshotTimeRange').innerHTML = '<b>' + localeDateString(date_after) + ' ' + localeTimeString(date_after) + '</b> to <b>' + localeDateString(date_before) + ' ' + localeTimeString(date_before) + '</b>';\n document.getElementById('loadSnapshotComments').innerHTML = ((result.comments) ? result.comments : '').toString();\n loadSnapshotModalLog('success', 'File loaded, click <b>Import</b> to render it!');\n $('#loadSnapshotImport').removeClass('disabled');\n\n tmpSnapshotData = result;\n }\n catch (e) {\n console.log(e);\n document.getElementById('loadSnapshotStatus').className = \"alert alert-danger\";\n document.getElementById('loadSnapshotStatus').innerHTML = \"Failed to parse this file!\";\n $('#loadSnapshotImport').addClass('disabled');\n }\n }\n\n //console.log(file);\n fr.readAsText(file);\n};\n\nfunction loadSnapshotPreflightEmpty() {\n document.getElementById('loadSnapshotFilename').innerHTML = '';\n document.getElementById('loadSnapshotHostname').innerHTML = '';\n document.getElementById('loadSnapshotURL').innerHTML = '';\n document.getElementById('loadSnapshotCharts').innerHTML = '';\n document.getElementById('loadSnapshotInfo').innerHTML = '';\n document.getElementById('loadSnapshotTimeRange').innerHTML = '';\n document.getElementById('loadSnapshotComments').innerHTML = '';\n loadSnapshotModalLog('success', 'Browse for a snapshot file (or drag it and drop it here), then click <b>Import</b> to render it.');\n $('#loadSnapshotImport').addClass('disabled');\n};\n\nvar loadSnapshotDragAndDropInitialized = false;\n\nfunction loadSnapshotDragAndDropSetup() {\n if (loadSnapshotDragAndDropInitialized === false) {\n loadSnapshotDragAndDropInitialized = true;\n $('#loadSnapshotDragAndDrop')\n .on('drag dragstart dragend dragover dragenter dragleave drop', function (e) {\n e.preventDefault();\n e.stopPropagation();\n })\n .on('drop', function (e) {\n if (e.originalEvent.dataTransfer.files.length) {\n loadSnapshotPreflightFile(e.originalEvent.dataTransfer.files.item(0));\n } else {\n loadSnapshotPreflightEmpty();\n loadSnapshotModalLog('danger', 'No file selected');\n }\n });\n }\n};\n\nwindow.loadSnapshotPreflight = () => {\n var files = document.getElementById('loadSnapshotSelectFiles').files;\n if (!files.length) {\n loadSnapshotPreflightEmpty();\n loadSnapshotModalLog('danger', 'No file selected');\n return;\n }\n\n loadSnapshotModalLog('info', 'Loading file...');\n\n loadSnapshotPreflightFile(files.item(0));\n}\n\n// --------------------------------------------------------------------\n// saving snapshots\n\nvar saveSnapshotStop = false;\n\nfunction saveSnapshotCancel() {\n reduxStore.dispatch(stopSnapshotModeAction())\n saveSnapshotStop = true;\n}\n\nvar saveSnapshotModalInitialized = false;\n\nfunction saveSnapshotModalSetup() {\n if (saveSnapshotModalInitialized === false) {\n saveSnapshotModalInitialized = true;\n $('#saveSnapshotModal')\n .on('hide.bs.modal', saveSnapshotCancel)\n .on('show.bs.modal', saveSnapshotModalInit)\n .on('shown.bs.modal', function () {\n $('#saveSnapshotResolutionSlider').find(\".slider-handle:first\").attr(\"tabindex\", 1);\n document.getElementById('saveSnapshotComments').focus();\n });\n }\n};\n\nfunction saveSnapshotModalLog(priority, msg) {\n document.getElementById('saveSnapshotStatus').className = \"alert alert-\" + priority;\n document.getElementById('saveSnapshotStatus').innerHTML = msg;\n}\n\nfunction saveSnapshotModalShowExpectedSize() {\n var points = Math.round(saveSnapshotViewDuration / saveSnapshotSelectedSecondsPerPoint);\n var priority = 'info';\n var msg = 'A moderate snapshot.';\n\n var sizemb = Math.round(\n (options.data.charts_count * snapshotOptions.bytes_per_chart\n + options.data.dimensions_count * points * snapshotOptions.compressions[saveSnapshotCompression].bytes_per_point_disk)\n * 10 / 1024 / 1024) / 10;\n\n var memmb = Math.round(\n (options.data.charts_count * snapshotOptions.bytes_per_chart\n + options.data.dimensions_count * points * snapshotOptions.compressions[saveSnapshotCompression].bytes_per_point_memory)\n * 10 / 1024 / 1024) / 10;\n\n if (sizemb < 10) {\n priority = 'success';\n msg = 'A nice small snapshot!';\n }\n if (sizemb > 50) {\n priority = 'warning';\n msg = 'Will stress your browser...';\n }\n if (sizemb > 100) {\n priority = 'danger';\n msg = 'Hm... good luck...';\n }\n\n saveSnapshotModalLog(priority, 'The snapshot will have ' + points.toString() + ' points per dimension. Expected size on disk ' + sizemb + ' MB, at browser memory ' + memmb + ' MB.<br/>' + msg);\n}\n\nvar saveSnapshotCompression = snapshotOptions.compressionDefault;\n\nfunction saveSnapshotSetCompression(name) {\n saveSnapshotCompression = name;\n document.getElementById('saveSnapshotCompressionName').innerHTML = saveSnapshotCompression;\n saveSnapshotModalShowExpectedSize();\n}\n\nvar saveSnapshotSlider = null;\nvar saveSnapshotSelectedSecondsPerPoint = 1;\nvar saveSnapshotViewDuration = 1;\n\nfunction saveSnapshotModalInit() {\n $('#saveSnapshotModalProgressSection').hide();\n $('#saveSnapshotResolutionRadio').show();\n saveSnapshotModalLog('info', 'Select resolution and click <b>Save</b>');\n $('#saveSnapshotExport').removeClass('disabled');\n\n loadBootstrapSlider(function () {\n const reduxState = reduxStore.getState()\n saveSnapshotViewDuration = - selectDefaultAfter(reduxState)\n var start_ms = Math.round(Date.now() - saveSnapshotViewDuration * 1000);\n const globalPanAndZoom = selectGlobalPanAndZoom(reduxState)\n\n if (Boolean(globalPanAndZoom)) {\n saveSnapshotViewDuration = Math.round((globalPanAndZoom.before - globalPanAndZoom.after) / 1000);\n start_ms = globalPanAndZoom.after;\n }\n\n var start_date = new Date(start_ms);\n var yyyymmddhhssmm = start_date.getFullYear() + zeropad(start_date.getMonth() + 1) + zeropad(start_date.getDate()) + '-' + zeropad(start_date.getHours()) + zeropad(start_date.getMinutes()) + zeropad(start_date.getSeconds());\n\n document.getElementById('saveSnapshotFilename').value = 'netdata-' + options.hostname.toString() + '-' + yyyymmddhhssmm.toString() + '-' + saveSnapshotViewDuration.toString() + '.snapshot';\n saveSnapshotSetCompression(saveSnapshotCompression);\n\n var min = options.update_every;\n var max = Math.round(saveSnapshotViewDuration / 100);\n\n if (Boolean(globalPanAndZoom)) {\n max = Math.round(saveSnapshotViewDuration / 50);\n }\n\n var view = Math.round(saveSnapshotViewDuration / Math.round($(document.getElementById('charts_div')).width() / 2));\n\n if (max < 10) {\n max = 10;\n }\n if (max < min) {\n max = min;\n }\n if (view < min) {\n view = min;\n }\n if (view > max) {\n view = max;\n }\n\n if (saveSnapshotSlider !== null) {\n saveSnapshotSlider.destroy();\n }\n\n saveSnapshotSlider = new Slider('#saveSnapshotResolutionSlider', {\n ticks: [min, view, max],\n min: min,\n max: max,\n step: options.update_every,\n value: view,\n scale: (max > 100) ? 'logarithmic' : 'linear',\n tooltip: 'always',\n formatter: function (value) {\n if (value < 1) {\n value = 1;\n }\n\n if (value < options.data.update_every) {\n value = options.data.update_every;\n }\n\n saveSnapshotSelectedSecondsPerPoint = value;\n saveSnapshotModalShowExpectedSize();\n\n var seconds = ' seconds ';\n if (value === 1) {\n seconds = ' second ';\n }\n\n return value + seconds + 'per point' + ((value === options.data.update_every) ? ', server default' : '').toString();\n }\n });\n });\n}\n\nwindow.saveSnapshot = () => {\n loadPako(function () {\n loadLzString(function () {\n saveSnapshotStop = false;\n $('#saveSnapshotModalProgressSection').show();\n $('#saveSnapshotResolutionRadio').hide();\n $('#saveSnapshotExport').addClass('disabled');\n\n var filename = document.getElementById('saveSnapshotFilename').value;\n // console.log(filename);\n saveSnapshotModalLog('info', 'Generating snapshot as <code>' + filename.toString() + '</code>');\n\n\n var el = document.getElementById('saveSnapshotModalProgressBar');\n var eltxt = document.getElementById('saveSnapshotModalProgressBarText');\n\n options.data.charts_by_name = null;\n const reduxState = reduxStore.getState()\n const defaultAfter = selectDefaultAfter(reduxState)\n\n var saveData = {\n hostname: options.hostname,\n server: serverDefault,\n netdata_version: options.data.version,\n snapshot_version: 1,\n after_ms: Date.now() + defaultAfter * 1000,\n before_ms: Date.now(),\n highlight_after_ms: urlOptions.highlight_after,\n highlight_before_ms: urlOptions.highlight_before,\n duration_ms: options.duration * 1000,\n update_every_ms: options.update_every * 1000,\n data_points: 0,\n url: ((urlOptions.server !== null) ? urlOptions.server : document.location.origin.toString() + document.location.pathname.toString() + document.location.search.toString()).toString(),\n comments: document.getElementById('saveSnapshotComments').value.toString(),\n hash: urlOptions.hash,\n charts: options.data,\n info: jsonStringifyFn({\n menu: netdataDashboard.menu,\n submenu: netdataDashboard.submenu,\n context: netdataDashboard.context\n }),\n charts_ok: 0,\n charts_failed: 0,\n compression: saveSnapshotCompression,\n data_size: 0,\n data: {}\n };\n\n if (typeof snapshotOptions.compressions[saveData.compression] === 'undefined') {\n alert('unknown compression method: ' + saveData.compression);\n saveData.compression = 'none';\n }\n\n var compress = snapshotOptions.compressions[saveData.compression].compress;\n var compressed_length = snapshotOptions.compressions[saveData.compression].compressed_length;\n\n function pack_api1_v1_chart_data({ data, chartDataUniqueID }) {\n if (data === null) {\n return 0\n }\n\n var str = JSON.stringify(data);\n\n var cstr = compress(str);\n saveData.data[chartDataUniqueID] = cstr;\n return compressed_length(cstr);\n }\n\n const globalPanAndZoom = selectGlobalPanAndZoom(reduxState)\n var clearPanAndZoom = false;\n if (!globalPanAndZoom) {\n reduxStore.dispatch(setGlobalPanAndZoomAction({\n after: saveData.after_ms,\n before: saveData.before_ms,\n }))\n clearPanAndZoom = true;\n } else {\n saveData.after_ms = globalPanAndZoom.after\n saveData.before_ms = globalPanAndZoom.before\n }\n\n\n saveData.duration_ms = saveData.before_ms - saveData.after_ms;\n saveData.data_points = Math.round((saveData.before_ms - saveData.after_ms) / (saveSnapshotSelectedSecondsPerPoint * 1000));\n saveSnapshotModalLog('info', 'Generating snapshot with ' + saveData.data_points.toString() + ' data points per dimension...');\n\n reduxStore.dispatch(startSnapshotModeAction({\n charts: saveData.charts,\n dataPoints: saveData.data_points,\n }))\n\n\n window.saveSnapshotRestore = () => {\n $('#saveSnapshotModal').modal('hide');\n\n $(el).css('width', '0%').attr('aria-valuenow', 0);\n eltxt.innerText = '0%';\n\n reduxStore.dispatch(stopSnapshotModeAction())\n reduxStore.dispatch(snapshotExportResetAction())\n if (clearPanAndZoom) {\n // clear that afterwards\n reduxStore.dispatch(resetGlobalPanAndZoomAction())\n }\n\n $('#saveSnapshotExport').removeClass('disabled');\n }\n\n var size = 0;\n var info = ' Resolution: <b>' + saveSnapshotSelectedSecondsPerPoint.toString() + ((saveSnapshotSelectedSecondsPerPoint === 1) ? ' second ' : ' seconds ').toString() + 'per point</b>.';\n\n window.chartUpdated = ({ chart, chartDataUniqueID, data }) => {\n if (saveSnapshotStop === true) {\n saveSnapshotModalLog('info', 'Cancelled!');\n saveSnapshotRestore()\n }\n const state = reduxStore.getState()\n const chartsCount = selectAmountOfCharts(state)\n const chartsOk = selectAmountOfSnapshotsFetched(state) // hook\n const chartsFailed = selectAmountOfSnapshotsFailed(state)\n\n const pcent = ((chartsOk + chartsFailed) / chartsCount) * 100\n $(el).css('width', pcent + '%').attr('aria-valuenow', pcent);\n eltxt.innerText = Math.round(pcent).toString() + '%, ' + (chart || data.id)\n\n size += pack_api1_v1_chart_data({ data, chartDataUniqueID })\n\n saveSnapshotModalLog((chartsFailed) ? 'danger' : 'info', 'Generated snapshot data size <b>' + (Math.round(size * 100 / 1024 / 1024) / 100).toString() + ' MB</b>. ' + ((chartsFailed) ? (chartsFailed.toString() + ' charts have failed to be downloaded') : '').toString() + info);\n\n window.saveData = saveData\n // better not to use equality against pcent in case of floating point errors\n if (chartsOk + chartsFailed === chartsCount) {\n saveData.charts_ok = chartsOk\n saveData.charts_failed = chartsFailed\n saveData.data_size = size\n\n saveObjectToClient(saveData, filename)\n if (chartsFailed > 0) {\n alert(`${chartsFailed} failed to be downloaded`);\n }\n saveSnapshotRestore()\n saveData = null\n }\n }\n\n // called for every chart\n function update_chart(idx) {\n if (saveSnapshotStop === true) {\n saveSnapshotModalLog('info', 'Cancelled!');\n saveSnapshotRestore();\n return;\n }\n\n var state = NETDATA.options.targets[--idx];\n\n var pcent = (NETDATA.options.targets.length - idx) * 100 / NETDATA.options.targets.length;\n $(el).css('width', pcent + '%').attr('aria-valuenow', pcent);\n eltxt.innerText = Math.round(pcent).toString() + '%, ' + state.id;\n\n setTimeout(function () {\n charts_count++;\n state.isVisible(true);\n state.current.force_after_ms = saveData.after_ms;\n state.current.force_before_ms = saveData.before_ms;\n\n state.updateChart(function (status, reason) {\n state.current.force_after_ms = null;\n state.current.force_before_ms = null;\n\n if (status === true) {\n charts_ok++;\n // state.log('ok');\n size += pack_api1_v1_chart_data(state);\n } else {\n charts_failed++;\n state.log('failed to be updated: ' + reason);\n }\n\n saveSnapshotModalLog((charts_failed) ? 'danger' : 'info', 'Generated snapshot data size <b>' + (Math.round(size * 100 / 1024 / 1024) / 100).toString() + ' MB</b>. ' + ((charts_failed) ? (charts_failed.toString() + ' charts have failed to be downloaded') : '').toString() + info);\n\n if (idx > 0) {\n update_chart(idx);\n } else {\n saveData.charts_ok = charts_ok;\n saveData.charts_failed = charts_failed;\n saveData.data_size = size;\n // console.log(saveData.compression + ': ' + (size / (options.data.dimensions_count * Math.round(saveSnapshotViewDuration / saveSnapshotSelectedSecondsPerPoint))).toString());\n\n // save it\n // console.log(saveData);\n saveObjectToClient(saveData, filename);\n\n if (charts_failed > 0) {\n alert(charts_failed.toString() + ' failed to be downloaded');\n }\n\n saveSnapshotRestore();\n saveData = null;\n }\n })\n }, 0);\n }\n\n });\n });\n}\n\n// --------------------------------------------------------------------\n// activate netdata on the page\nlet browser_timezone\ntry {\n browser_timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n} catch (e) {\n console.log('failed to detect browser timezone: ' + e.toString());\n browser_timezone = 'cannot-detect-it';\n}\n\nconst getOption = (option) => {\n const state = reduxStore.getState()\n return createSelectOption(option)(state)\n}\n\n\nfunction dashboardSettingsSetup() {\n var update_options_modal = function () {\n var sync_option = function (option) {\n var self = $('#' + option);\n\n if (self.prop('checked') !== getOption(option)) {\n // console.log('switching ' + option.toString());\n self.bootstrapToggle(getOption(option) ? 'on' : 'off');\n }\n };\n\n var theme_sync_option = function (option) {\n var self = $('#' + option);\n\n self.bootstrapToggle(netdataTheme === 'slate' ? 'on' : 'off');\n };\n var units_sync_option = function (option) {\n var self = $('#' + option);\n\n if (self.prop('checked') !== (getOption('units') === 'auto')) {\n self.bootstrapToggle(getOption('units') === 'auto' ? 'on' : 'off');\n }\n\n if (self.prop('checked') === true) {\n $('#settingsLocaleTempRow').show();\n $('#settingsLocaleTimeRow').show();\n } else {\n $('#settingsLocaleTempRow').hide();\n $('#settingsLocaleTimeRow').hide();\n }\n };\n var temp_sync_option = function (option) {\n var self = $('#' + option);\n\n if (self.prop('checked') !== (getOption('temperature') === 'celsius')) {\n self.bootstrapToggle(getOption('temperature') === 'celsius' ? 'on' : 'off');\n }\n };\n\n sync_option('stop_updates_when_focus_is_lost');\n sync_option('eliminate_zero_dimensions');\n sync_option('destroy_on_hide');\n sync_option('async_on_scroll');\n\n sync_option('parallel_refresher');\n sync_option('concurrent_refreshes');\n sync_option('sync_selection');\n\n sync_option('legend_right');\n theme_sync_option('netdata_theme_control');\n sync_option('show_help');\n sync_option('pan_and_zoom_data_padding');\n sync_option('smooth_plot');\n\n units_sync_option('units_conversion');\n temp_sync_option('units_temp');\n sync_option('seconds_as_time');\n\n if (getOption('parallel_refresher') === false) {\n $('#concurrent_refreshes_row').hide();\n } else {\n $('#concurrent_refreshes_row').show();\n }\n };\n\n update_options_modal();\n\n // handle options changes\n $('#eliminate_zero_dimensions').change(function () {\n setOption('eliminate_zero_dimensions', $(this).prop('checked'));\n });\n $('#destroy_on_hide').change(function () {\n setOption('destroy_on_hide', $(this).prop('checked'));\n });\n $('#async_on_scroll').change(function () {\n setOption('async_on_scroll', $(this).prop('checked'));\n });\n $('#parallel_refresher').change(function () {\n setOption('parallel_refresher', $(this).prop('checked'));\n });\n $('#concurrent_refreshes').change(function () {\n setOption('concurrent_refreshes', $(this).prop('checked'));\n });\n $('#sync_selection').change(function () {\n setOption('sync_selection', $(this).prop('checked'));\n netdataReload();\n });\n $('#stop_updates_when_focus_is_lost').change(function () {\n urlOptions.update_always = !$(this).prop('checked');\n urlOptions.hashUpdate();\n\n setOption('stop_updates_when_focus_is_lost', !urlOptions.update_always);\n });\n $('#smooth_plot').change(function () {\n setOption('smooth_plot', $(this).prop('checked'));\n });\n $('#pan_and_zoom_data_padding').change(function () {\n setOption('pan_and_zoom_data_padding', $(this).prop('checked'));\n });\n $('#seconds_as_time').change(function () {\n setOption('seconds_as_time', $(this).prop('checked'));\n });\n\n $('#units_conversion').change(function () {\n setOption('units', $(this).prop('checked') ? 'auto' : 'original');\n update_options_modal()\n });\n $('#units_temp').change(function () {\n setOption('temperature', $(this).prop('checked') ? 'celsius' : 'fahrenheit');\n });\n\n $('#legend_right').change(function () {\n setOption('legend_right', $(this).prop('checked'));\n // reloading for now, it's much easier than rebuilding charts bootstraping in main.js\n netdataReload();\n });\n\n $('#show_help').change(function () {\n urlOptions.help = $(this).prop('checked');\n urlOptions.hashUpdate();\n\n setOption('show_help', urlOptions.help);\n netdataReload();\n });\n\n // this has to be the last\n // it reloads the page\n $('#netdata_theme_control').change(function () {\n urlOptions.theme = $(this).prop('checked') ? 'slate' : 'white';\n urlOptions.hashUpdate();\n\n if (setTheme(urlOptions.theme)) {\n netdataReload();\n }\n });\n}\n\nconst CHART_DIV_ID_PREFIX = 'chart_'\nconst CHART_DIV_OFFSET = -50\n\nfunction scrollDashboardTo() {\n if (window.netdataSnapshotData !== null && typeof window.netdataSnapshotData.hash !== 'undefined') {\n scrollToId(window.netdataSnapshotData.hash.replace('#', ''));\n } else {\n // check if we have to jump to a specific section\n scrollToId(urlOptions.hash.replace('#', ''));\n if (urlOptions.chart !== null) {\n const chartElement = document.getElementById(`${CHART_DIV_ID_PREFIX}${name2id(urlOptions.chart)}`)\n if (chartElement) {\n const offset = chartElement.offsetTop + CHART_DIV_OFFSET;\n document.querySelector(\"html\").scrollTop = offset\n }\n }\n }\n}\n\nvar modalHiddenCallback = null;\n\nwindow.scrollToChartAfterHidingModal = (chart, alarmDate, alarmStatus) => {\n modalHiddenCallback = function () {\n\n if (typeof chart === 'string') {\n const chartElement = document.getElementById(`${CHART_DIV_ID_PREFIX}${name2id(chart)}`)\n if (chartElement) {\n const offset = chartElement.offsetTop + CHART_DIV_OFFSET;\n document.querySelector(\"html\").scrollTop = offset\n }\n }\n\n if (['WARNING', 'CRITICAL'].includes(alarmStatus)) {\n const twoMinutes = 2 * 60 * 1000\n reduxStore.dispatch(setGlobalPanAndZoomAction({\n after: alarmDate - twoMinutes,\n before: alarmDate + twoMinutes,\n }))\n }\n };\n}\n\n// ----------------------------------------------------------------------------\n\nfunction enableTooltipsAndPopovers() {\n $('[data-toggle=\"tooltip\"]').tooltip({\n animated: 'fade',\n trigger: 'hover',\n html: true,\n delay: { show: 500, hide: 0 },\n container: 'body'\n });\n $('[data-toggle=\"popover\"]').popover();\n}\n\n// ----------------------------------------------------------------------------\n\nvar runOnceOnDashboardLastRun = 0;\n\nfunction runOnceOnDashboardWithjQuery() {\n if (runOnceOnDashboardLastRun !== 0) {\n scrollDashboardTo();\n\n // restore the scrollspy at the proper position\n $(document.body).scrollspy('refresh');\n $(document.body).scrollspy('process');\n\n return;\n }\n\n runOnceOnDashboardLastRun = Date.now();\n\n // ------------------------------------------------------------------------\n // bootstrap modals\n\n // prevent bootstrap modals from scrolling the page\n // maintains the current scroll position\n // https://stackoverflow.com/a/34754029/4525767\n\n var scrollPos = 0;\n var modal_depth = 0; // how many modals are currently open\n var modal_shown = false; // set to true, if a modal is shown\n var netdata_paused_on_modal = false; // set to true, if the modal paused netdata\n var scrollspyOffset = $(window).height() / 3; // will be updated below - the offset of scrollspy to select an item\n\n $('.modal')\n .on('show.bs.modal', function () {\n if (modal_depth === 0) {\n scrollPos = window.scrollY;\n\n $('body').css({\n overflow: 'hidden',\n position: 'fixed',\n top: -scrollPos\n });\n\n modal_shown = true;\n\n if (NETDATA.options.pauseCallback === null) {\n NETDATA.pause(function () {\n });\n netdata_paused_on_modal = true;\n } else {\n netdata_paused_on_modal = false;\n }\n }\n\n modal_depth++;\n //console.log(urlOptions.after);\n\n })\n .on('hide.bs.modal', function () {\n\n modal_depth--;\n\n if (modal_depth <= 0) {\n modal_depth = 0;\n\n $('body')\n .css({\n overflow: '',\n position: '',\n top: ''\n });\n\n // scroll to the position we had open before the modal\n $('html, body')\n .animate({ scrollTop: scrollPos }, 0);\n\n // unpause netdata, if we paused it\n if (netdata_paused_on_modal === true) {\n NETDATA.unpause();\n netdata_paused_on_modal = false;\n }\n\n // restore the scrollspy at the proper position\n $(document.body).scrollspy('process');\n }\n //console.log(urlOptions.after);\n })\n .on('hidden.bs.modal', function () {\n if (modal_depth === 0) {\n modal_shown = false;\n }\n\n if (typeof modalHiddenCallback === 'function') {\n modalHiddenCallback();\n }\n\n modalHiddenCallback = null;\n //console.log(urlOptions.after);\n });\n\n // ------------------------------------------------------------------------\n // sidebar / affix\n\n $('#sidebar')\n .affix({\n offset: {\n top: 0,\n bottom: 0\n }\n })\n .on('affixed.bs.affix', function () {\n // fix scrolling of very long affix lists\n // http://stackoverflow.com/questions/21691585/bootstrap-3-1-0-affix-too-long\n\n $(this).removeAttr('style');\n })\n .on('affix-top.bs.affix', function () {\n // fix bootstrap affix click bug\n // https://stackoverflow.com/a/37847981/4525767\n\n if (modal_shown) {\n return false;\n }\n })\n .on('activate.bs.scrollspy', function (e) {\n // change the URL based on the current position of the screen\n\n if (modal_shown === false) {\n var el = $(e.target);\n var hash = el.find('a').attr('href');\n if (typeof hash === 'string' && hash.substring(0, 1) === '#' && urlOptions.hash.startsWith(hash + '_submenu_') === false) {\n urlOptions.hash = hash;\n urlOptions.hashUpdate();\n }\n }\n });\n\n Ps.initialize(document.getElementById('sidebar'), {\n wheelSpeed: 0.5,\n wheelPropagation: true,\n swipePropagation: true,\n minScrollbarLength: null,\n maxScrollbarLength: null,\n useBothWheelAxes: false,\n suppressScrollX: true,\n suppressScrollY: false,\n scrollXMarginOffset: 0,\n scrollYMarginOffset: 0,\n theme: 'default'\n });\n\n // ------------------------------------------------------------------------\n // scrollspy\n\n if (scrollspyOffset > 250) {\n scrollspyOffset = 250;\n }\n if (scrollspyOffset < 75) {\n scrollspyOffset = 75;\n }\n document.body.setAttribute('data-offset', scrollspyOffset);\n\n // scroll the dashboard, before activating the scrollspy, so that our\n // hash will not be updated before we got the chance to scroll to it\n scrollDashboardTo();\n\n $(document.body).scrollspy({\n target: '#sidebar',\n offset: scrollspyOffset // controls the diff of the <hX> element to the top, to select it\n });\n\n // ------------------------------------------------------------------------\n // my-netdata menu\n\n $('#deleteRegistryModal')\n .on('hidden.bs.modal', function () {\n deleteRegistryGuid = null;\n });\n\n // ------------------------------------------------------------------------\n // update modal\n\n $('#updateModal')\n .on('show.bs.modal', function () {\n versionLog('checking, please wait...');\n })\n .on('shown.bs.modal', function () {\n notifyForUpdate(true);\n });\n\n // ------------------------------------------------------------------------\n // alarms modal\n\n $('#alarmsModal')\n .on('shown.bs.modal', function () {\n alarmsUpdateModal();\n })\n .on('hidden.bs.modal', function () {\n document.getElementById('alarms_active').innerHTML =\n document.getElementById('alarms_all').innerHTML =\n document.getElementById('alarms_log').innerHTML =\n 'loading...';\n });\n\n // ------------------------------------------------------------------------\n\n dashboardSettingsSetup();\n loadSnapshotDragAndDropSetup();\n saveSnapshotModalSetup();\n showPageFooter();\n\n // ------------------------------------------------------------------------\n // https://github.com/viralpatel/jquery.shorten/blob/master/src/jquery.shorten.js\n\n $.fn.shorten = function (settings) {\n \"use strict\";\n\n var config = {\n showChars: 750,\n minHideChars: 10,\n ellipsesText: \"...\",\n moreText: '<i class=\"fas fa-expand\"></i> show more information',\n lessText: '<i class=\"fas fa-compress\"></i> show less information',\n onLess: function () {\n NETDATA.onscroll();\n },\n onMore: function () {\n NETDATA.onscroll();\n },\n errMsg: null,\n force: false\n };\n\n if (settings) {\n $.extend(config, settings);\n }\n\n if ($(this).data('jquery.shorten') && !config.force) {\n return false;\n }\n $(this).data('jquery.shorten', true);\n\n $(document).off(\"click\", '.morelink');\n\n $(document).on({\n click: function () {\n\n var $this = $(this);\n if ($this.hasClass('less')) {\n $this.removeClass('less');\n $this.html(config.moreText);\n $this.parent().prev().animate({ 'height': '0' + '%' }, 0, function () {\n $this.parent().prev().prev().show();\n }).hide(0, function () {\n config.onLess();\n });\n } else {\n $this.addClass('less');\n $this.html(config.lessText);\n $this.parent().prev().animate({ 'height': '100' + '%' }, 0, function () {\n $this.parent().prev().prev().hide();\n }).show(0, function () {\n config.onMore();\n });\n }\n return false;\n }\n }, '.morelink');\n\n return this.each(function () {\n var $this = $(this);\n\n var content = $this.html();\n var contentlen = $this.text().length;\n if (contentlen > config.showChars + config.minHideChars) {\n var c = content.substr(0, config.showChars);\n if (c.indexOf('<') >= 0) // If there's HTML don't want to cut it\n {\n var inTag = false; // I'm in a tag?\n var bag = ''; // Put the characters to be shown here\n var countChars = 0; // Current bag size\n var openTags = []; // Stack for opened tags, so I can close them later\n var tagName = null;\n\n for (var i = 0, r = 0; r <= config.showChars; i++) {\n if (content[i] === '<' && !inTag) {\n inTag = true;\n\n // This could be \"tag\" or \"/tag\"\n tagName = content.substring(i + 1, content.indexOf('>', i));\n\n // If its a closing tag\n if (tagName[0] === '/') {\n\n if (tagName !== ('/' + openTags[0])) {\n config.errMsg = 'ERROR en HTML: the top of the stack should be the tag that closes';\n } else {\n openTags.shift(); // Pops the last tag from the open tag stack (the tag is closed in the retult HTML!)\n }\n\n } else {\n // There are some nasty tags that don't have a close tag like <br/>\n if (tagName.toLowerCase() !== 'br') {\n openTags.unshift(tagName); // Add to start the name of the tag that opens\n }\n }\n }\n\n if (inTag && content[i] === '>') {\n inTag = false;\n }\n\n if (inTag) {\n bag += content.charAt(i);\n } else {\n // Add tag name chars to the result\n r++;\n if (countChars <= config.showChars) {\n bag += content.charAt(i); // Fix to ie 7 not allowing you to reference string characters using the []\n countChars++;\n } else {\n // Now I have the characters needed\n if (openTags.length > 0) {\n // I have unclosed tags\n\n for (var j = 0; j < openTags.length; j++) {\n bag += '</' + openTags[j] + '>'; // Close all tags that were opened\n\n // You could shift the tag from the stack to check if you end with an empty stack, that means you have closed all open tags\n }\n break;\n }\n }\n }\n }\n c = $('<div/>').html(bag + '<span class=\"ellip\">' + config.ellipsesText + '</span>').html();\n } else {\n c += config.ellipsesText;\n }\n\n var html = '<div class=\"shortcontent\">' + c +\n '</div><div class=\"allcontent\">' + content +\n '</div><span><a href=\"javascript://nop/\" class=\"morelink\">' + config.moreText + '</a></span>';\n\n $this.html(html);\n $this.find(\".allcontent\").hide(); // Hide all text\n $('.shortcontent p:last', $this).css('margin-bottom', 0); //Remove bottom margin on last paragraph as it's likely shortened\n }\n });\n };\n}\n\nfunction finalizePage() {\n if (urlOptions.after < 0) {\n reduxStore.dispatch(setDefaultAfterAction({ after: urlOptions.after }))\n } else if (urlOptions.pan_and_zoom === true) {\n reduxStore.dispatch(setGlobalPanAndZoomAction({\n after: urlOptions.after,\n before: urlOptions.before,\n }))\n }\n\n // resize all charts - without starting the background thread\n // this has to be done while NETDATA is paused\n // if we omit this, the affix menu will be wrong, since all\n // the Dom elements are initially zero-sized\n NETDATA.parseDom();\n\n // let it run (update the charts)\n NETDATA.unpause();\n\n runOnceOnDashboardWithjQuery();\n $(\".shorten\").shorten();\n enableTooltipsAndPopovers();\n\n if (!isDemo) {\n notifyForUpdate();\n }\n\n if (urlOptions.show_alarms === true) {\n setTimeout(function () {\n $('#alarmsModal').modal('show');\n }, 1000);\n }\n\n NETDATA.onresizeCallback = function () {\n Ps.update(document.getElementById('sidebar'));\n };\n NETDATA.onresizeCallback();\n\n if (window.netdataSnapshotData !== null) {\n reduxStore.dispatch(setGlobalPanAndZoomAction({\n after: window.netdataSnapshotData.after_ms,\n before: window.netdataSnapshotData.before_ms,\n }))\n }\n}\n\nwindow.resetDashboardOptions = () => {\n reduxStore.dispatch(resetOptionsAction())\n\n // it's dirty, but this will be rewritten anyway\n urlOptions.update_always = false;\n urlOptions.help = false;\n urlOptions.theme = \"slate\";\n urlOptions.hashUpdate();\n\n netdataReload()\n}\n\n// callback to add the dashboard info to the\n// parallel javascript downloader in netdata\nexport const netdataPrepCallback = () => {\n if (isDemo) {\n document.getElementById('masthead').style.display = 'block';\n } else {\n if (urlOptions.update_always === true) {\n setOption('stop_updates_when_focus_is_lost', !urlOptions.update_always);\n }\n }\n};\n\nwindow.selected_server_timezone = function (timezone, status) {\n // clear the error\n document.getElementById('timezone_error_message').innerHTML = '';\n\n if (typeof status === 'undefined') {\n // the user selected a timezone from the menu\n\n setOption('user_set_server_timezone', timezone);\n\n if (!isProperTimezone(timezone)) {\n setOption(\"timezone\", \"default\")\n\n if (!$('#local_timezone').prop('checked')) {\n $('#local_timezone').bootstrapToggle('on');\n }\n\n document.getElementById('timezone_error_message').innerHTML = 'Ooops! That timezone was not accepted by your browser. Please open a github issue to help us fix it.';\n setOption('user_set_server_timezone', options.timezone);\n } else {\n if ($('#local_timezone').prop('checked')) {\n $('#local_timezone').bootstrapToggle('off');\n }\n setOption(\"timezone\", timezone)\n }\n } else if (status === true) {\n // the user wants the browser default timezone to be activated\n setOption(\"timezone\", \"default\")\n } else {\n // the user wants the server default timezone to be activated\n\n let userSetServerTimezone = getOption(\"user_set_server_timezone\")\n if (userSetServerTimezone === 'default') {\n setOption(\"user_set_server_timezone\", options.timezone) // timezone from /charts endpoint\n userSetServerTimezone = options.timezone\n }\n\n if (!isProperTimezone(userSetServerTimezone)) {\n setOption(\"timezone\", \"default\");\n\n if (!$('#local_timezone').prop('checked')) {\n $('#local_timezone').bootstrapToggle('on');\n }\n\n document.getElementById('timezone_error_message').innerHTML = 'Sorry. The timezone \"' + timezone.toString() + '\" is not accepted by your browser. Please select one from the list.';\n setOption('user_set_server_timezone', options.timezone);\n } else {\n setOption(\"timezone\", userSetServerTimezone)\n }\n }\n\n const timezoneOption = getOption(\"timezone\")\n document.getElementById('current_timezone').innerText = (timezoneOption === 'default') ? 'unset, using browser default' : timezoneOption;\n return false;\n};\n\nexport var netdataCallback = initializeDynamicDashboard;\n\nwindow.showSignInModal = function() {\n document.getElementById(\"sim-registry\").innerHTML = getFromRegistry(\"registryServer\");\n $(\"#signInModal\").modal(\"show\");\n}\n\nwindow.explicitlySignIn = () => {\n $(\"#signInModal\").modal(\"hide\");\n reduxStore.dispatch(explicitlySignInAction())\n};\n","import { AlarmStatus } from \"domains/global/types\"\n\nexport const storeKey = \"global\"\n\nexport const TEMPORARY_MAIN_JS_TIMEOUT = 1000\n\nexport const MASKED_DATA = \"***\"\n\nexport const NOTIFICATIONS_TIMEOUT = 5000\n\nexport const INFO_POLLING_FREQUENCY = 5000\n\nexport const CLOUD_BASE_URL_DISABLED = \"CLOUD_BASE_URL_DISABLED\"\n\nexport const alarmStatuses: AlarmStatus[] = [\"WARNING\", \"ERROR\", \"REMOVED\", \"UNDEFINED\", \"UNINITIALIZED\", \"CLEAR\", \"CRITICAL\"]\n","import React, { useMemo } from \"react\"\nimport { CloudConnectionProps, ConnectionModalStatusContent } from \"./types\"\nimport Anchor from \"@/src/components/anchor\"\n\nimport { Text } from \"@netdata/netdata-ui\"\n\nexport const makeCloudConnectionStatusInfo = ({\n nodeStatus,\n userStatus,\n date,\n}: CloudConnectionProps): ConnectionModalStatusContent => ({\n title: \"Netdata Cloud connection status\",\n text: {\n header: () => {\n return (\n <Text>\n This node is currently{\" \"}\n <Text strong>{nodeStatus === \"LIVE\" ? \"Connected\" : \"Not Connected\"}</Text> to Netdata\n Cloud\n </Text>\n )\n },\n bullets:\n nodeStatus === \"NOT_LIVE\"\n ? [\n // `The node lost its Netdata Cloud connection at ${date}`,\n () => (\n <Text>\n To troubleshoot Netdata Cloud connection issues, please follow{\" \"}\n <Anchor\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://learn.netdata.cloud/docs/agent/claim#troubleshooting\"\n >\n this guide\n </Anchor>\n .\n </Text>\n ),\n ]\n : [],\n footer: () => (\n <Text>\n You are{\" \"}\n <Text strong>\n {userStatus === \"LOGGED_IN\"\n ? \"Logged In\"\n : userStatus === \"EXPIRED_LOGIN\"\n ? \"Logged out\"\n : \"Not signed-up\"}\n </Text>{\" \"}\n to Netdata Cloud\n </Text>\n ),\n },\n CTA1: {\n text: \"Take me to Netdata Cloud\",\n },\n})\n\nconst useCloudConnectionStatus = ({ userStatus, nodeStatus, date }: CloudConnectionProps) => {\n const cloudConnectionStatusInfo = useMemo<ConnectionModalStatusContent>(() => {\n return makeCloudConnectionStatusInfo({ userStatus, nodeStatus, date })\n }, [userStatus, nodeStatus, date])\n\n return cloudConnectionStatusInfo\n}\n\nexport default useCloudConnectionStatus\n","import React, { useCallback } from \"react\"\nimport GoToCloud from \"components/auth/signIn\"\n\nimport {\n Modal,\n ModalContent,\n ModalBody,\n ModalFooter,\n ModalHeader,\n Text,\n Flex,\n H3,\n Button,\n Box,\n ModalCloseButton,\n} from \"@netdata/netdata-ui\"\n\nimport { ConnectionModalStatusContent } from \"./types\"\n\nconst campaign = \"agent_nudge_to_cloud\"\n\nexport type CloudConnectionStatusModalProps = ConnectionModalStatusContent & {\n closeModal: () => void\n onRefresh?: () => void\n isCTA1Disabled: boolean\n}\n\nconst CloudConnectionStatusModal = ({\n title,\n text,\n CTA1,\n closeModal,\n onRefresh,\n isCTA1Disabled,\n}: CloudConnectionStatusModalProps) => {\n const handleClickedCTA1 = useCallback(\n ({ link }: { link: string }) => {\n closeModal()\n window.location.href = link\n },\n [closeModal]\n )\n\n return (\n <Modal>\n <ModalContent width={180} background=\"modalBackground\">\n <ModalHeader>\n <H3 margin={[0]}>{title}</H3>\n <ModalCloseButton onClose={closeModal} />\n </ModalHeader>\n <ModalBody>\n <Flex padding={[0, 0, 4, 0]} column gap={3}>\n {text.header({})}\n {text.bullets.length > 0 && (\n <Flex column gap={3}>\n <Flex column gap={1} as={\"ul\"}>\n {text.bullets.map((bullet, index) => {\n if (typeof bullet === \"function\") {\n return <li key={index}> {bullet()}</li>\n }\n return (\n <li key={bullet}>\n <Text>{bullet}</Text>\n </li>\n )\n })}\n </Flex>\n </Flex>\n )}\n {text.footer()}\n </Flex>\n </ModalBody>\n <ModalFooter>\n <Box data-testid=\"cta1\" margin={[0, 2, 0, 0]} width={{ min: 40 }}>\n <GoToCloud utmParameters={{ content: \"connection_to_cloud\", campaign }}>\n {({ link }) => (\n <Button\n data-ga={`connection-to-cloud::click-ct1::ad`}\n disabled={isCTA1Disabled}\n textTransform=\"none\"\n data-testid=\"cta1-button\"\n onClick={() => handleClickedCTA1({ link })}\n width=\"100%\"\n label={CTA1.text}\n />\n )}\n </GoToCloud>\n </Box>\n <Box\n data-ga={`connection-to-cloud::click-check-now::ad`}\n onClick={onRefresh}\n height={10}\n className=\"btn btn-default\"\n data-testid=\"cta2-button\"\n width={{ min: 40 }}\n >\n <Box as={Text} sx={{ fontWeight: \"500\", lineHeight: \"25px\" }}>\n Check Now\n </Box>\n </Box>\n </ModalFooter>\n </ModalContent>\n </Modal>\n )\n}\n\nexport default CloudConnectionStatusModal\n","import React, { useState, useCallback, useEffect } from \"react\"\nimport useCloudConnectionStatus from \"./use-cloud-connection-status\"\nimport CloudConnectionStatusModal from \"./cloud-connection-status-modal\"\n\nimport { Pill, Flex } from \"@netdata/netdata-ui\"\nimport { useSelector } from \"react-redux\"\nimport { useRequestRefreshOfAccessMessage } from \"hooks/use-user-node-access\"\nimport { selectUserNodeAccess } from \"domains/global/selectors\"\nimport { PromoProps } from \"@/src/domains/dashboard/components/migration-modal\"\nimport { selectIsCloudEnabled } from \"domains/global/selectors\"\n\nconst CloudConnectionStatus = () => {\n const userNodeAccess = useSelector(selectUserNodeAccess) as PromoProps\n const cloudEnabled = useSelector(selectIsCloudEnabled)\n\n const [isModalOpen, setModalOpen] = useState(false)\n const cloudConnectionStatusInfo = useCloudConnectionStatus({\n userStatus: userNodeAccess?.userStatus || \"UNKNOWN\",\n nodeStatus: userNodeAccess?.nodeLiveness || \"NOT_LIVE\",\n date: \"\",\n })\n\n useEffect(() => {\n if (isModalOpen) {\n document.documentElement.style.overflow = \"hidden\"\n } else {\n document.documentElement.style.overflow = \"auto\"\n }\n }, [isModalOpen])\n\n const openModal = useCallback(() => {\n setModalOpen(true)\n }, [])\n\n const closeModal = useCallback(() => {\n setModalOpen(false)\n }, [])\n\n const onRefresh = useRequestRefreshOfAccessMessage()\n\n if (!cloudEnabled) return null\n\n return (\n <Flex column>\n <Pill\n data-ga={`connection-to-cloud::click-pill::ad`}\n data-testid=\"header-connection-to-cloud-button\"\n onClick={openModal}\n flavour=\"neutral\"\n >\n Connection to Cloud\n </Pill>\n {isModalOpen && (\n <CloudConnectionStatusModal\n {...cloudConnectionStatusInfo}\n isCTA1Disabled={userNodeAccess?.nodeLiveness !== \"LIVE\"}\n closeModal={closeModal}\n onRefresh={onRefresh}\n />\n )}\n </Flex>\n )\n}\n\nexport default CloudConnectionStatus\n","import { equals } from \"ramda\"\n\n// we use numbers to specify time. it can be either a timestamp (ms), or a relative value in seconds\n// which is always 0 or less (0 is now, -300 is -5 minutes)\n\nexport const isTimestamp = (x: number) => x > 0\n\nexport const NETDATA_REGISTRY_SERVER = \"https://registry.my-netdata.io\"\n\nexport const MS_IN_SECOND = 1000\nexport const NODE_VIEW_DYGRAPH_TITLE_HEIGHT = 30\nexport const DEFAULT_DASHBOARD_DURATION = 5 * 60\n\nexport const getIframeSrc = (cloudBaseURL: string, path: string) => `${cloudBaseURL}/sso/v2/${path}`\nexport const utmUrlSuffix = \"&utm_source=agent&utm_medium=web\"\n\nexport const getInitialAfterFromWindow = () => {\n const div = document.getElementById(\"charts_div\")\n if (!div) {\n // eslint-disable-next-line no-console\n console.error(\"Couldn't find '.charts_div' element to calculate width\")\n return -900\n }\n // based on https://github.com/netdata/dashboard/blob/7a7b538b00f1c5a4e1550f69cb5333212bb68f95/src/main.js#L1753\n // eslint-disable-next-line max-len\n // var duration = Math.round(($(div).width() * pcent_width / 100 * data.update_every / 3) / 60) * 60;\n return -Math.round(div.getBoundingClientRect().width / 3 / 60) * 60\n}\n\nexport const SPACE_PANEL_STATE = \"space-panel-state\"\n\nexport const useNewKeysOnlyIfDifferent = <T extends {}>(\n keys: (keyof T)[],\n obj1: T | null,\n obj2: T\n): T => {\n if (!obj1) {\n return obj2\n }\n return keys.reduce<T>(\n (acc, key) => ({\n ...acc,\n [key]: equals(obj1[key], obj2![key]) ? obj1[key] : obj2[key],\n }),\n obj2\n )\n}\n\nexport type AnyFunction<T = any> = (...args: T[]) => any\n\nexport type FunctionArguments<T extends Function> = T extends (...args: infer R) => any ? R : never\n\nexport function callAll<T extends AnyFunction>(...fns: (T | undefined)[]) {\n return function mergedFn(arg: FunctionArguments<T>[0]) {\n fns.forEach(fn => {\n fn?.(arg)\n })\n }\n}\n","/* eslint-disable */\n/*!\n * d3pie\n * @author Ben Keen\n * @version 0.1.9\n * @date June 17th, 2015\n * @repo http://github.com/benkeen/d3pie\n * SPDX-License-Identifier: MIT\n */\n\n// UMD pattern from https://github.com/umdjs/umd/blob/master/returnExports.js\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module\n define([], factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but only CommonJS-like environments that support module.exports,\n // like Node\n module.exports = factory();\n } else {\n // browser globals (root is window)\n root.d3pie = factory(root);\n }\n}(this, function() {\n\n var _scriptName = \"d3pie\";\n var _version = \"0.2.1\";\n\n // used to uniquely generate IDs and classes, ensuring no conflict between multiple pies on the same page\n var _uniqueIDCounter = 0;\n\n\n // this section includes all helper libs on the d3pie object. They're populated via grunt-template. Note: to keep\n // the syntax highlighting from getting all messed up, I commented out each line. That REQUIRES each of the files\n // to have an empty first line. Crumby, yes, but acceptable.\n //// --------- _default-settings.js -----------/**\n/**\n * Contains the out-the-box settings for the script. Any of these settings that aren't explicitly overridden for the\n * d3pie instance will inherit from these. This is also included on the main website for use in the generation script.\n */\nvar defaultSettings = {\n header: {\n title: {\n text: \"\",\n color: \"#333333\",\n fontSize: 18,\n fontWeight: \"bold\",\n font: \"arial\"\n },\n subtitle: {\n text: \"\",\n color: \"#666666\",\n fontSize: 14,\n fontWeight: \"bold\",\n font: \"arial\"\n },\n location: \"top-center\",\n titleSubtitlePadding: 8\n },\n footer: {\n text: \t \"\",\n color: \"#666666\",\n fontSize: 14,\n fontWeight: \"bold\",\n font: \"arial\",\n location: \"left\"\n },\n size: {\n canvasHeight: 500,\n canvasWidth: 500,\n pieInnerRadius: \"0%\",\n pieOuterRadius: null\n },\n data: {\n sortOrder: \"none\",\n ignoreSmallSegments: {\n enabled: false,\n valueType: \"percentage\",\n value: null\n },\n smallSegmentGrouping: {\n enabled: false,\n value: 1,\n valueType: \"percentage\",\n label: \"Other\",\n color: \"#cccccc\"\n },\n content: []\n },\n labels: {\n outer: {\n format: \"label\",\n hideWhenLessThanPercentage: null,\n pieDistance: 30\n },\n inner: {\n format: \"percentage\",\n hideWhenLessThanPercentage: null\n },\n mainLabel: {\n color: \"#333333\",\n font: \"arial\",\n fontWeight: \"normal\",\n fontSize: 10\n },\n percentage: {\n color: \"#dddddd\",\n font: \"arial\",\n fontWeight: \"bold\",\n fontSize: 10,\n decimalPlaces: 0\n },\n value: {\n color: \"#cccc44\",\n fontWeight: \"bold\",\n font: \"arial\",\n fontSize: 10\n },\n lines: {\n enabled: true,\n style: \"curved\",\n color: \"segment\"\n },\n truncation: {\n enabled: false,\n truncateLength: 30\n },\n formatter: null\n },\n effects: {\n load: {\n effect: \"none\", // \"default\", commented in the code\n speed: 1000\n },\n pullOutSegmentOnClick: {\n effect: \"none\", // \"bounce\", commented in the code\n speed: 300,\n size: 10\n },\n highlightSegmentOnMouseover: false,\n highlightLuminosity: -0.2\n },\n tooltips: {\n enabled: false,\n type: \"placeholder\", // caption|placeholder\n string: \"\",\n placeholderParser: null,\n styles: {\n fadeInSpeed: 250,\n backgroundColor: \"#000000\",\n backgroundOpacity: 0.5,\n color: \"#efefef\",\n borderRadius: 2,\n font: \"arial\",\n fontWeight: \"bold\",\n fontSize: 10,\n padding: 4\n }\n },\n misc: {\n colors: {\n background: null,\n segments: [\n \"#2484c1\", \"#65a620\", \"#7b6888\", \"#a05d56\", \"#961a1a\", \"#d8d23a\", \"#e98125\", \"#d0743c\", \"#635222\", \"#6ada6a\",\n \"#0c6197\", \"#7d9058\", \"#207f33\", \"#44b9b0\", \"#bca44a\", \"#e4a14b\", \"#a3acb2\", \"#8cc3e9\", \"#69a6f9\", \"#5b388f\",\n \"#546e91\", \"#8bde95\", \"#d2ab58\", \"#273c71\", \"#98bf6e\", \"#4daa4b\", \"#98abc5\", \"#cc1010\", \"#31383b\", \"#006391\",\n \"#c2643f\", \"#b0a474\", \"#a5a39c\", \"#a9c2bc\", \"#22af8c\", \"#7fcecf\", \"#987ac6\", \"#3d3b87\", \"#b77b1c\", \"#c9c2b6\",\n \"#807ece\", \"#8db27c\", \"#be66a2\", \"#9ed3c6\", \"#00644b\", \"#005064\", \"#77979f\", \"#77e079\", \"#9c73ab\", \"#1f79a7\"\n ],\n segmentStroke: \"#ffffff\"\n },\n gradient: {\n enabled: false,\n percentage: 95,\n color: \"#000000\"\n },\n canvasPadding: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n pieCenterOffset: {\n x: 0,\n y: 0\n },\n cssPrefix: null\n },\n callbacks: {\n onload: null,\n onMouseoverSegment: null,\n onMouseoutSegment: null,\n onClickSegment: null\n }\n};\n\n //// --------- validate.js -----------\nvar validate = {\n\n // called whenever a new pie chart is created\n initialCheck: function(pie) {\n var cssPrefix = pie.cssPrefix;\n var element = pie.element;\n var options = pie.options;\n\n // confirm d3 is available [check minimum version]\n if (!window.d3 || !window.d3.hasOwnProperty(\"version\")) {\n console.error(\"d3pie error: d3 is not available\");\n return false;\n }\n\n // confirm element is either a DOM element or a valid string for a DOM element\n if (!(element instanceof HTMLElement || element instanceof SVGElement)) {\n console.error(\"d3pie error: the first d3pie() param must be a valid DOM element (not jQuery) or a ID string.\");\n return false;\n }\n\n // confirm the CSS prefix is valid. It has to start with a-Z and contain nothing but a-Z0-9_-\n if (!(/[a-zA-Z][a-zA-Z0-9_-]*$/.test(cssPrefix))) {\n console.error(\"d3pie error: invalid options.misc.cssPrefix\");\n return false;\n }\n\n // confirm some data has been supplied\n if (!helpers.isArray(options.data.content)) {\n console.error(\"d3pie error: invalid config structure: missing data.content property.\");\n return false;\n }\n if (options.data.content.length === 0) {\n console.error(\"d3pie error: no data supplied.\");\n return false;\n }\n\n // clear out any invalid data. Each data row needs a valid positive number and a label\n var data = [];\n for (var i=0; i<options.data.content.length; i++) {\n if (typeof options.data.content[i].value !== \"number\" || isNaN(options.data.content[i].value)) {\n console.log(\"not valid: \", options.data.content[i]);\n continue;\n }\n if (options.data.content[i].value <= 0) {\n console.log(\"not valid - should have positive value: \", options.data.content[i]);\n continue;\n }\n data.push(options.data.content[i]);\n }\n pie.options.data.content = data;\n\n // labels.outer.hideWhenLessThanPercentage - 1-100\n // labels.inner.hideWhenLessThanPercentage - 1-100\n\n return true;\n }\n};\n\n //// --------- helpers.js -----------\nvar helpers = {\n\n // creates the SVG element\n addSVGSpace: function(pie) {\n var element = pie.element;\n var canvasWidth = pie.options.size.canvasWidth;\n var canvasHeight = pie.options.size.canvasHeight;\n var backgroundColor = pie.options.misc.colors.background;\n\n var svg = d3.select(element).append(\"svg:svg\")\n .attr(\"width\", canvasWidth)\n .attr(\"height\", canvasHeight);\n\n if (backgroundColor !== \"transparent\") {\n svg.style(\"background-color\", function() { return backgroundColor; });\n }\n\n return svg;\n },\n\n shuffleArray: function(array) {\n var currentIndex = array.length, tmpVal, randomIndex;\n\n while (0 !== currentIndex) {\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n\n // and swap it with the current element\n tmpVal = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = tmpVal;\n }\n return array;\n },\n\n processObj: function(obj, is, value) {\n if (typeof is === 'string') {\n return helpers.processObj(obj, is.split('.'), value);\n } else if (is.length === 1 && value !== undefined) {\n obj[is[0]] = value;\n return obj[is[0]];\n } else if (is.length === 0) {\n return obj;\n } else {\n return helpers.processObj(obj[is[0]], is.slice(1), value);\n }\n },\n\n getDimensions: function(el) {\n if(typeof el === 'string')\n el = document.getElementById(el);\n\n var w = 0, h = 0;\n if (el) {\n var dimensions = el.getBBox();\n w = dimensions.width;\n h = dimensions.height;\n }\n else {\n console.log(\"error: getDimensions() \" + id + \" not found.\");\n }\n\n return { w: w, h: h };\n },\n\n /**\n * This is based on the SVG coordinate system, where top-left is 0,0 and bottom right is n-n.\n * @param r1\n * @param r2\n * @returns {boolean}\n */\n rectIntersect: function(r1, r2) {\n var returnVal = (\n // r2.left > r1.right\n (r2.x > (r1.x + r1.w)) ||\n\n // r2.right < r1.left\n ((r2.x + r2.w) < r1.x) ||\n\n // r2.top < r1.bottom\n ((r2.y + r2.h) < r1.y) ||\n\n // r2.bottom > r1.top\n (r2.y > (r1.y + r1.h))\n );\n\n return !returnVal;\n },\n\n /**\n * Returns a lighter/darker shade of a hex value, based on a luminance value passed.\n * @param hex a hex color value such as “#abc” or “#123456″ (the hash is optional)\n * @param lum the luminosity factor: -0.1 is 10% darker, 0.2 is 20% lighter, etc.\n * @returns {string}\n */\n getColorShade: function(hex, lum) {\n\n // validate hex string\n hex = String(hex).replace(/[^0-9a-f]/gi, '');\n if (hex.length < 6) {\n hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];\n }\n lum = lum || 0;\n\n // convert to decimal and change luminosity\n var newHex = \"#\";\n for (var i=0; i<3; i++) {\n var c = parseInt(hex.substr(i * 2, 2), 16);\n c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);\n newHex += (\"00\" + c).substr(c.length);\n }\n\n return newHex;\n },\n\n /**\n * Users can choose to specify segment colors in three ways (in order of precedence):\n * \t1. include a \"color\" attribute for each row in data.content\n * \t2. include a misc.colors.segments property which contains an array of hex codes\n * \t3. specify nothing at all and rely on this lib provide some reasonable defaults\n *\n * This function sees what's included and populates this.options.colors with whatever's required\n * for this pie chart.\n * @param data\n */\n initSegmentColors: function(pie) {\n var data = pie.options.data.content;\n var colors = pie.options.misc.colors.segments;\n\n // TODO this needs a ton of error handling\n\n var finalColors = [];\n for (var i=0; i<data.length; i++) {\n if (data[i].hasOwnProperty(\"color\")) {\n finalColors.push(data[i].color);\n } else {\n finalColors.push(colors[i]);\n }\n }\n\n return finalColors;\n },\n\n applySmallSegmentGrouping: function(data, smallSegmentGrouping) {\n var totalSize;\n if (smallSegmentGrouping.valueType === \"percentage\") {\n totalSize = math.getTotalPieSize(data);\n }\n\n // loop through each data item\n var newData = [];\n var groupedData = [];\n var totalGroupedData = 0;\n for (var i=0; i<data.length; i++) {\n if (smallSegmentGrouping.valueType === \"percentage\") {\n var dataPercent = (data[i].value / totalSize) * 100;\n if (dataPercent <= smallSegmentGrouping.value) {\n groupedData.push(data[i]);\n totalGroupedData += data[i].value;\n continue;\n }\n data[i].isGrouped = false;\n newData.push(data[i]);\n } else {\n if (data[i].value <= smallSegmentGrouping.value) {\n groupedData.push(data[i]);\n totalGroupedData += data[i].value;\n continue;\n }\n data[i].isGrouped = false;\n newData.push(data[i]);\n }\n }\n\n // we're done! See if there's any small segment groups to add\n if (groupedData.length) {\n newData.push({\n color: smallSegmentGrouping.color,\n label: smallSegmentGrouping.label,\n value: totalGroupedData,\n isGrouped: true,\n groupedData: groupedData\n });\n }\n\n return newData;\n },\n\n // for debugging\n showPoint: function(svg, x, y) {\n svg.append(\"circle\").attr(\"cx\", x).attr(\"cy\", y).attr(\"r\", 2).style(\"fill\", \"black\");\n },\n\n isFunction: function(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n },\n\n isArray: function(o) {\n return Object.prototype.toString.call(o) === '[object Array]';\n }\n};\n\n\n// taken from jQuery\nvar extend = function() {\n var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false,\n toString = Object.prototype.toString,\n hasOwn = Object.prototype.hasOwnProperty,\n class2type = {\n \"[object Boolean]\": \"boolean\",\n \"[object Number]\": \"number\",\n \"[object String]\": \"string\",\n \"[object Function]\": \"function\",\n \"[object Array]\": \"array\",\n \"[object Date]\": \"date\",\n \"[object RegExp]\": \"regexp\",\n \"[object Object]\": \"object\"\n },\n\n jQuery = {\n isFunction: function (obj) {\n return jQuery.type(obj) === \"function\";\n },\n isArray: Array.isArray ||\n function (obj) {\n return jQuery.type(obj) === \"array\";\n },\n isWindow: function (obj) {\n return obj !== null && obj === obj.window;\n },\n isNumeric: function (obj) {\n return !isNaN(parseFloat(obj)) && isFinite(obj);\n },\n type: function (obj) {\n return obj === null ? String(obj) : class2type[toString.call(obj)] || \"object\";\n },\n isPlainObject: function (obj) {\n if (!obj || jQuery.type(obj) !== \"object\" || obj.nodeType) {\n return false;\n }\n try {\n if (obj.constructor && !hasOwn.call(obj, \"constructor\") && !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n } catch (e) {\n return false;\n }\n var key;\n for (key in obj) {}\n return key === undefined || hasOwn.call(obj, key);\n }\n };\n if (typeof target === \"boolean\") {\n deep = target;\n target = arguments[1] || {};\n i = 2;\n }\n if (typeof target !== \"object\" && !jQuery.isFunction(target)) {\n target = {};\n }\n if (length === i) {\n target = this;\n --i;\n }\n for (i; i < length; i++) {\n if ((options = arguments[i]) !== null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && jQuery.isArray(src) ? src : [];\n } else {\n clone = src && jQuery.isPlainObject(src) ? src : {};\n }\n // WARNING: RECURSION\n target[name] = extend(deep, clone, copy);\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n};\n //// --------- math.js -----------\nvar math = {\n\n toRadians: function(degrees) {\n return degrees * (Math.PI / 180);\n },\n\n toDegrees: function(radians) {\n return radians * (180 / Math.PI);\n },\n\n computePieRadius: function(pie) {\n var size = pie.options.size;\n var canvasPadding = pie.options.misc.canvasPadding;\n\n // outer radius is either specified (e.g. through the generator), or omitted altogether\n // and calculated based on the canvas dimensions. Right now the estimated version isn't great - it should\n // be possible to calculate it to precisely generate the maximum sized pie, but it's fussy as heck. Something\n // for the next release.\n\n // first, calculate the default _outerRadius\n var w = size.canvasWidth - canvasPadding.left - canvasPadding.right;\n var h = size.canvasHeight - canvasPadding.top - canvasPadding.bottom;\n\n // now factor in the footer, title & subtitle\n if (pie.options.header.location !== \"pie-center\") {\n h -= pie.textComponents.headerHeight;\n }\n\n if (pie.textComponents.footer.exists) {\n h -= pie.textComponents.footer.h;\n }\n\n // for really teeny pies, h may be < 0. Adjust it back\n h = (h < 0) ? 0 : h;\n\n var outerRadius = ((w < h) ? w : h) / 3;\n var innerRadius, percent;\n\n // if the user specified something, use that instead\n if (size.pieOuterRadius !== null) {\n if (/%/.test(size.pieOuterRadius)) {\n percent = parseInt(size.pieOuterRadius.replace(/[\\D]/, \"\"), 10);\n percent = (percent > 99) ? 99 : percent;\n percent = (percent < 0) ? 0 : percent;\n\n var smallestDimension = (w < h) ? w : h;\n\n // now factor in the label line size\n if (pie.options.labels.outer.format !== \"none\") {\n var pieDistanceSpace = parseInt(pie.options.labels.outer.pieDistance, 10) * 2;\n if (smallestDimension - pieDistanceSpace > 0) {\n smallestDimension -= pieDistanceSpace;\n }\n }\n\n outerRadius = Math.floor((smallestDimension / 100) * percent) / 2;\n } else {\n outerRadius = parseInt(size.pieOuterRadius, 10);\n }\n }\n\n // inner radius\n if (/%/.test(size.pieInnerRadius)) {\n percent = parseInt(size.pieInnerRadius.replace(/[\\D]/, \"\"), 10);\n percent = (percent > 99) ? 99 : percent;\n percent = (percent < 0) ? 0 : percent;\n innerRadius = Math.floor((outerRadius / 100) * percent);\n } else {\n innerRadius = parseInt(size.pieInnerRadius, 10);\n }\n\n pie.innerRadius = innerRadius;\n pie.outerRadius = outerRadius;\n },\n\n getTotalPieSize: function(data) {\n var totalSize = 0;\n for (var i=0; i<data.length; i++) {\n totalSize += data[i].value;\n }\n return totalSize;\n },\n\n sortPieData: function(pie) {\n var data = pie.options.data.content;\n var sortOrder = pie.options.data.sortOrder;\n\n switch (sortOrder) {\n case \"none\":\n // do nothing\n break;\n case \"random\":\n data = helpers.shuffleArray(data);\n break;\n case \"value-asc\":\n data.sort(function(a, b) { return (a.value < b.value) ? -1 : 1; });\n break;\n case \"value-desc\":\n data.sort(function(a, b) { return (a.value < b.value) ? 1 : -1; });\n break;\n case \"label-asc\":\n data.sort(function(a, b) { return (a.label.toLowerCase() > b.label.toLowerCase()) ? 1 : -1; });\n break;\n case \"label-desc\":\n data.sort(function(a, b) { return (a.label.toLowerCase() < b.label.toLowerCase()) ? 1 : -1; });\n break;\n }\n\n return data;\n },\n\n // var pieCenter = math.getPieCenter();\n getPieTranslateCenter: function(pieCenter) {\n return \"translate(\" + pieCenter.x + \",\" + pieCenter.y + \")\";\n },\n\n /**\n * Used to determine where on the canvas the center of the pie chart should be. It takes into account the\n * height and position of the title, subtitle and footer, and the various paddings.\n * @private\n */\n calculatePieCenter: function(pie) {\n var pieCenterOffset = pie.options.misc.pieCenterOffset;\n var hasTopTitle = (pie.textComponents.title.exists && pie.options.header.location !== \"pie-center\");\n var hasTopSubtitle = (pie.textComponents.subtitle.exists && pie.options.header.location !== \"pie-center\");\n\n var headerOffset = pie.options.misc.canvasPadding.top;\n if (hasTopTitle && hasTopSubtitle) {\n headerOffset += pie.textComponents.title.h + pie.options.header.titleSubtitlePadding + pie.textComponents.subtitle.h;\n } else if (hasTopTitle) {\n headerOffset += pie.textComponents.title.h;\n } else if (hasTopSubtitle) {\n headerOffset += pie.textComponents.subtitle.h;\n }\n\n var footerOffset = 0;\n if (pie.textComponents.footer.exists) {\n footerOffset = pie.textComponents.footer.h + pie.options.misc.canvasPadding.bottom;\n }\n\n var x = ((pie.options.size.canvasWidth - pie.options.misc.canvasPadding.left - pie.options.misc.canvasPadding.right) / 2) + pie.options.misc.canvasPadding.left;\n var y = ((pie.options.size.canvasHeight - footerOffset - headerOffset) / 2) + headerOffset;\n\n x += pieCenterOffset.x;\n y += pieCenterOffset.y;\n\n pie.pieCenter = { x: x, y: y };\n },\n\n\n /**\n * Rotates a point (x, y) around an axis (xm, ym) by degrees (a).\n * @param x\n * @param y\n * @param xm\n * @param ym\n * @param a angle in degrees\n * @returns {Array}\n */\n rotate: function(x, y, xm, ym, a) {\n\n a = a * Math.PI / 180; // convert to radians\n\n var cos = Math.cos,\n sin = Math.sin,\n // subtract midpoints, so that midpoint is translated to origin and add it in the end again\n xr = (x - xm) * cos(a) - (y - ym) * sin(a) + xm,\n yr = (x - xm) * sin(a) + (y - ym) * cos(a) + ym;\n\n return { x: xr, y: yr };\n },\n\n /**\n * Translates a point x, y by distance d, and by angle a.\n * @param x\n * @param y\n * @param dist\n * @param a angle in degrees\n */\n translate: function(x, y, d, a) {\n var rads = math.toRadians(a);\n return {\n x: x + d * Math.sin(rads),\n y: y - d * Math.cos(rads)\n };\n },\n\n // from: http://stackoverflow.com/questions/19792552/d3-put-arc-labels-in-a-pie-chart-if-there-is-enough-space\n pointIsInArc: function(pt, ptData, d3Arc) {\n // Center of the arc is assumed to be 0,0\n // (pt.x, pt.y) are assumed to be relative to the center\n var r1 = d3Arc.innerRadius()(ptData), // Note: Using the innerRadius\n r2 = d3Arc.outerRadius()(ptData),\n theta1 = d3Arc.startAngle()(ptData),\n theta2 = d3Arc.endAngle()(ptData);\n\n var dist = pt.x * pt.x + pt.y * pt.y,\n angle = Math.atan2(pt.x, -pt.y); // Note: different coordinate system\n\n angle = (angle < 0) ? (angle + Math.PI * 2) : angle;\n\n return (r1 * r1 <= dist) && (dist <= r2 * r2) &&\n (theta1 <= angle) && (angle <= theta2);\n }\n};\n\n //// --------- labels.js -----------\nvar labels = {\n\n /**\n * Adds the labels to the pie chart, but doesn't position them. There are two locations for the\n * labels: inside (center) of the segments, or outside the segments on the edge.\n * @param section \"inner\" or \"outer\"\n * @param sectionDisplayType \"percentage\", \"value\", \"label\", \"label-value1\", etc.\n * @param pie\n */\n add: function(pie, section, sectionDisplayType) {\n var include = labels.getIncludes(sectionDisplayType);\n var settings = pie.options.labels;\n\n // group the label groups (label, percentage, value) into a single element for simpler positioning\n var outerLabel = pie.svg.insert(\"g\", \".\" + pie.cssPrefix + \"labels-\" + section)\n .attr(\"class\", pie.cssPrefix + \"labels-\" + section);\n\n var labelGroup = pie.__labels[section] = outerLabel.selectAll(\".\" + pie.cssPrefix + \"labelGroup-\" + section)\n .data(pie.options.data.content)\n .enter()\n .append(\"g\")\n .attr(\"id\", function(d, i) { return pie.cssPrefix + \"labelGroup\" + i + \"-\" + section; })\n .attr(\"data-index\", function(d, i) { return i; })\n .attr(\"class\", pie.cssPrefix + \"labelGroup-\" + section)\n .style(\"opacity\", 0);\n\n var formatterContext = { section: section, sectionDisplayType: sectionDisplayType };\n\n // 1. Add the main label\n if (include.mainLabel) {\n labelGroup.append(\"text\")\n .attr(\"id\", function(d, i) { return pie.cssPrefix + \"segmentMainLabel\" + i + \"-\" + section; })\n .attr(\"class\", pie.cssPrefix + \"segmentMainLabel-\" + section)\n .text(function(d, i) {\n var str = d.label;\n\n // if a custom formatter has been defined, pass it the raw label string - it can do whatever it wants with it.\n // we only apply truncation if it's not defined\n if (settings.formatter) {\n formatterContext.index = i;\n formatterContext.part = 'mainLabel';\n formatterContext.value = d.value;\n formatterContext.label = str;\n str = settings.formatter(formatterContext);\n } else if (settings.truncation.enabled && d.label.length > settings.truncation.truncateLength) {\n str = d.label.substring(0, settings.truncation.truncateLength) + \"...\";\n }\n return str;\n })\n .style(\"font-size\", settings.mainLabel.fontSize + \"px\")\n .style(\"font-family\", settings.mainLabel.font)\n .style(\"font-weight\", settings.mainLabel.fontWeight)\n .style(\"fill\", function(d, i) {\n return (settings.mainLabel.color === \"segment\") ? pie.options.colors[i] : settings.mainLabel.color;\n });\n }\n\n // 2. Add the percentage label\n if (include.percentage) {\n labelGroup.append(\"text\")\n .attr(\"id\", function(d, i) { return pie.cssPrefix + \"segmentPercentage\" + i + \"-\" + section; })\n .attr(\"class\", pie.cssPrefix + \"segmentPercentage-\" + section)\n .text(function(d, i) {\n var percentage = d.percentage;\n if (settings.formatter) {\n formatterContext.index = i;\n formatterContext.part = \"percentage\";\n formatterContext.value = d.value;\n formatterContext.label = d.percentage;\n percentage = settings.formatter(formatterContext);\n } else {\n percentage += \"%\";\n }\n return percentage;\n })\n .style(\"font-size\", settings.percentage.fontSize + \"px\")\n .style(\"font-family\", settings.percentage.font)\n .style(\"font-weight\", settings.percentage.fontWeight)\n .style(\"fill\", settings.percentage.color);\n }\n\n // 3. Add the value label\n if (include.value) {\n labelGroup.append(\"text\")\n .attr(\"id\", function(d, i) { return pie.cssPrefix + \"segmentValue\" + i + \"-\" + section; })\n .attr(\"class\", pie.cssPrefix + \"segmentValue-\" + section)\n .text(function(d, i) {\n formatterContext.index = i;\n formatterContext.part = \"value\";\n formatterContext.value = d.value;\n formatterContext.label = d.value;\n return settings.formatter ? settings.formatter(formatterContext, d.value) : d.value;\n })\n .style(\"font-size\", settings.value.fontSize + \"px\")\n .style(\"font-family\", settings.value.font)\n .style(\"font-weight\", settings.value.fontWeight)\n .style(\"fill\", settings.value.color);\n }\n },\n\n /**\n * @param section \"inner\" / \"outer\"\n */\n positionLabelElements: function(pie, section, sectionDisplayType) {\n labels[\"dimensions-\" + section] = [];\n\n // get the latest widths, heights\n var labelGroups = pie.__labels[section];\n labelGroups.each(function(d, i) {\n var mainLabel = d3.select(this).selectAll(\".\" + pie.cssPrefix + \"segmentMainLabel-\" + section);\n var percentage = d3.select(this).selectAll(\".\" + pie.cssPrefix + \"segmentPercentage-\" + section);\n var value = d3.select(this).selectAll(\".\" + pie.cssPrefix + \"segmentValue-\" + section);\n\n labels[\"dimensions-\" + section].push({\n mainLabel: (mainLabel.node() !== null) ? mainLabel.node().getBBox() : null,\n percentage: (percentage.node() !== null) ? percentage.node().getBBox() : null,\n value: (value.node() !== null) ? value.node().getBBox() : null\n });\n });\n\n var singleLinePad = 5;\n var dims = labels[\"dimensions-\" + section];\n switch (sectionDisplayType) {\n case \"label-value1\":\n pie.svg.selectAll(\".\" + pie.cssPrefix + \"segmentValue-\" + section)\n .attr(\"dx\", function(d, i) { return dims[i].mainLabel.width + singleLinePad; });\n break;\n case \"label-value2\":\n pie.svg.selectAll(\".\" + pie.cssPrefix + \"segmentValue-\" + section)\n .attr(\"dy\", function(d, i) { return dims[i].mainLabel.height; });\n break;\n case \"label-percentage1\":\n pie.svg.selectAll(\".\" + pie.cssPrefix + \"segmentPercentage-\" + section)\n .attr(\"dx\", function(d, i) { return dims[i].mainLabel.width + singleLinePad; });\n break;\n case \"label-percentage2\":\n pie.svg.selectAll(\".\" + pie.cssPrefix + \"segmentPercentage-\" + section)\n .attr(\"dx\", function(d, i) { return (dims[i].mainLabel.width / 2) - (dims[i].percentage.width / 2); })\n .attr(\"dy\", function(d, i) { return dims[i].mainLabel.height; });\n break;\n }\n },\n\n computeLabelLinePositions: function(pie) {\n pie.lineCoordGroups = [];\n pie.__labels.outer\n .each(function(d, i) { return labels.computeLinePosition(pie, i); });\n },\n\n computeLinePosition: function(pie, i) {\n var angle = segments.getSegmentAngle(i, pie.options.data.content, pie.totalSize, { midpoint: true });\n var originCoords = math.rotate(pie.pieCenter.x, pie.pieCenter.y - pie.outerRadius, pie.pieCenter.x, pie.pieCenter.y, angle);\n var heightOffset = pie.outerLabelGroupData[i].h / 5; // TODO check\n var labelXMargin = 6; // the x-distance of the label from the end of the line [TODO configurable]\n\n var quarter = Math.floor(angle / 90);\n var midPoint = 4;\n var x2, y2, x3, y3;\n\n // this resolves an issue when the\n if (quarter === 2 && angle === 180) {\n quarter = 1;\n }\n\n switch (quarter) {\n case 0:\n x2 = pie.outerLabelGroupData[i].x - labelXMargin - ((pie.outerLabelGroupData[i].x - labelXMargin - originCoords.x) / 2);\n y2 = pie.outerLabelGroupData[i].y + ((originCoords.y - pie.outerLabelGroupData[i].y) / midPoint);\n x3 = pie.outerLabelGroupData[i].x - labelXMargin;\n y3 = pie.outerLabelGroupData[i].y - heightOffset;\n break;\n case 1:\n x2 = originCoords.x + (pie.outerLabelGroupData[i].x - originCoords.x) / midPoint;\n y2 = originCoords.y + (pie.outerLabelGroupData[i].y - originCoords.y) / midPoint;\n x3 = pie.outerLabelGroupData[i].x - labelXMargin;\n y3 = pie.outerLabelGroupData[i].y - heightOffset;\n break;\n case 2:\n var startOfLabelX = pie.outerLabelGroupData[i].x + pie.outerLabelGroupData[i].w + labelXMargin;\n x2 = originCoords.x - (originCoords.x - startOfLabelX) / midPoint;\n y2 = originCoords.y + (pie.outerLabelGroupData[i].y - originCoords.y) / midPoint;\n x3 = pie.outerLabelGroupData[i].x + pie.outerLabelGroupData[i].w + labelXMargin;\n y3 = pie.outerLabelGroupData[i].y - heightOffset;\n break;\n case 3:\n var startOfLabel = pie.outerLabelGroupData[i].x + pie.outerLabelGroupData[i].w + labelXMargin;\n x2 = startOfLabel + ((originCoords.x - startOfLabel) / midPoint);\n y2 = pie.outerLabelGroupData[i].y + (originCoords.y - pie.outerLabelGroupData[i].y) / midPoint;\n x3 = pie.outerLabelGroupData[i].x + pie.outerLabelGroupData[i].w + labelXMargin;\n y3 = pie.outerLabelGroupData[i].y - heightOffset;\n break;\n }\n\n /*\n * x1 / y1: the x/y coords of the start of the line, at the mid point of the segments arc on the pie circumference\n * x2 / y2: if \"curved\" line style is being used, this is the midpoint of the line. Other\n * x3 / y3: the end of the line; closest point to the label\n */\n if (pie.options.labels.lines.style === \"straight\") {\n pie.lineCoordGroups[i] = [\n { x: originCoords.x, y: originCoords.y },\n { x: x3, y: y3 }\n ];\n } else {\n pie.lineCoordGroups[i] = [\n { x: originCoords.x, y: originCoords.y },\n { x: x2, y: y2 },\n { x: x3, y: y3 }\n ];\n }\n },\n\n addLabelLines: function(pie) {\n var lineGroups = pie.svg.insert(\"g\", \".\" + pie.cssPrefix + \"pieChart\") // meaning, BEFORE .pieChart\n .attr(\"class\", pie.cssPrefix + \"lineGroups\")\n .style(\"opacity\", 1);\n\n var lineGroup = lineGroups.selectAll(\".\" + pie.cssPrefix + \"lineGroup\")\n .data(pie.lineCoordGroups)\n .enter()\n .append(\"g\")\n .attr(\"class\", pie.cssPrefix + \"lineGroup\");\n\n var lineFunction = d3.line()\n .curve(d3.curveBasis)\n .x(function(d) { return d.x; })\n .y(function(d) { return d.y; });\n\n lineGroup.append(\"path\")\n .attr(\"d\", lineFunction)\n .attr(\"stroke\", function(d, i) {\n return (pie.options.labels.lines.color === \"segment\") ? pie.options.colors[i] : pie.options.labels.lines.color;\n })\n .attr(\"stroke-width\", 1)\n .attr(\"fill\", \"none\")\n .style(\"opacity\", function(d, i) {\n var percentage = pie.options.labels.outer.hideWhenLessThanPercentage;\n var isHidden = (percentage !== null && d.percentage < percentage) || pie.options.data.content[i].label === \"\";\n return isHidden ? 0 : 1;\n });\n },\n\n positionLabelGroups: function(pie, section) {\n if (pie.options.labels[section].format === \"none\")\n return;\n\n pie.__labels[section]\n .style(\"opacity\", function(d, i) {\n var percentage = pie.options.labels[section].hideWhenLessThanPercentage;\n return (percentage !== null && d.percentage < percentage) ? 0 : 1;\n })\n .attr(\"transform\", function(d, i) {\n var x, y;\n if (section === \"outer\") {\n x = pie.outerLabelGroupData[i].x;\n y = pie.outerLabelGroupData[i].y;\n } else {\n var pieCenterCopy = extend(true, {}, pie.pieCenter);\n\n // now recompute the \"center\" based on the current _innerRadius\n if (pie.innerRadius > 0) {\n var angle = segments.getSegmentAngle(i, pie.options.data.content, pie.totalSize, { midpoint: true });\n var newCoords = math.translate(pie.pieCenter.x, pie.pieCenter.y, pie.innerRadius, angle);\n pieCenterCopy.x = newCoords.x;\n pieCenterCopy.y = newCoords.y;\n }\n\n var dims = helpers.getDimensions(pie.cssPrefix + \"labelGroup\" + i + \"-inner\");\n var xOffset = dims.w / 2;\n var yOffset = dims.h / 4; // confusing! Why 4? should be 2, but it doesn't look right\n\n x = pieCenterCopy.x + (pie.lineCoordGroups[i][0].x - pieCenterCopy.x) / 1.8;\n y = pieCenterCopy.y + (pie.lineCoordGroups[i][0].y - pieCenterCopy.y) / 1.8;\n\n x = x - xOffset;\n y = y + yOffset;\n }\n\n return \"translate(\" + x + \",\" + y + \")\";\n });\n },\n\n\n getIncludes: function(val) {\n var addMainLabel = false;\n var addValue = false;\n var addPercentage = false;\n\n switch (val) {\n case \"label\":\n addMainLabel = true;\n break;\n case \"value\":\n addValue = true;\n break;\n case \"percentage\":\n addPercentage = true;\n break;\n case \"label-value1\":\n case \"label-value2\":\n addMainLabel = true;\n addValue = true;\n break;\n case \"label-percentage1\":\n case \"label-percentage2\":\n addMainLabel = true;\n addPercentage = true;\n break;\n }\n return {\n mainLabel: addMainLabel,\n value: addValue,\n percentage: addPercentage\n };\n },\n\n\n /**\n * This does the heavy-lifting to compute the actual coordinates for the outer label groups. It does two things:\n * 1. Make a first pass and position them in the ideal positions, based on the pie sizes\n * 2. Do some basic collision avoidance.\n */\n computeOuterLabelCoords: function(pie) {\n\n // 1. figure out the ideal positions for the outer labels\n pie.__labels.outer\n .each(function(d, i) {\n return labels.getIdealOuterLabelPositions(pie, i);\n });\n\n // 2. now adjust those positions to try to accommodate conflicts\n labels.resolveOuterLabelCollisions(pie);\n },\n\n /**\n * This attempts to resolve label positioning collisions.\n */\n resolveOuterLabelCollisions: function(pie) {\n if (pie.options.labels.outer.format === \"none\") {\n return;\n }\n\n var size = pie.options.data.content.length;\n labels.checkConflict(pie, 0, \"clockwise\", size);\n labels.checkConflict(pie, size-1, \"anticlockwise\", size);\n },\n\n checkConflict: function(pie, currIndex, direction, size) {\n var i, curr;\n\n if (size <= 1) {\n return;\n }\n\n var currIndexHemisphere = pie.outerLabelGroupData[currIndex].hs;\n if (direction === \"clockwise\" && currIndexHemisphere !== \"right\") {\n return;\n }\n if (direction === \"anticlockwise\" && currIndexHemisphere !== \"left\") {\n return;\n }\n var nextIndex = (direction === \"clockwise\") ? currIndex+1 : currIndex-1;\n\n // this is the current label group being looked at. We KNOW it's positioned properly (the first item\n // is always correct)\n var currLabelGroup = pie.outerLabelGroupData[currIndex];\n\n // this one we don't know about. That's the one we're going to look at and move if necessary\n var examinedLabelGroup = pie.outerLabelGroupData[nextIndex];\n\n var info = {\n labelHeights: pie.outerLabelGroupData[0].h,\n center: pie.pieCenter,\n lineLength: (pie.outerRadius + pie.options.labels.outer.pieDistance),\n heightChange: pie.outerLabelGroupData[0].h + 1 // 1 = padding\n };\n\n // loop through *ALL* label groups examined so far to check for conflicts. This is because when they're\n // very tightly fitted, a later label group may still appear high up on the page\n if (direction === \"clockwise\") {\n i = 0;\n for (; i<=currIndex; i++) {\n curr = pie.outerLabelGroupData[i];\n\n // if there's a conflict with this label group, shift the label to be AFTER the last known\n // one that's been properly placed\n if (!labels.isLabelHidden(pie, i) && helpers.rectIntersect(curr, examinedLabelGroup)) {\n labels.adjustLabelPos(pie, nextIndex, currLabelGroup, info);\n break;\n }\n }\n } else {\n i = size - 1;\n for (; i >= currIndex; i--) {\n curr = pie.outerLabelGroupData[i];\n\n // if there's a conflict with this label group, shift the label to be AFTER the last known\n // one that's been properly placed\n if (!labels.isLabelHidden(pie, i) && helpers.rectIntersect(curr, examinedLabelGroup)) {\n labels.adjustLabelPos(pie, nextIndex, currLabelGroup, info);\n break;\n }\n }\n }\n labels.checkConflict(pie, nextIndex, direction, size);\n },\n\n isLabelHidden: function(pie, index) {\n var percentage = pie.options.labels.outer.hideWhenLessThanPercentage;\n return (percentage !== null && d.percentage < percentage) || pie.options.data.content[index].label === \"\";\n },\n\n // does a little math to shift a label into a new position based on the last properly placed one\n adjustLabelPos: function(pie, nextIndex, lastCorrectlyPositionedLabel, info) {\n var xDiff, yDiff, newXPos, newYPos;\n newYPos = lastCorrectlyPositionedLabel.y + info.heightChange;\n yDiff = info.center.y - newYPos;\n\n if (Math.abs(info.lineLength) > Math.abs(yDiff)) {\n xDiff = Math.sqrt((info.lineLength * info.lineLength) - (yDiff * yDiff));\n } else {\n xDiff = Math.sqrt((yDiff * yDiff) - (info.lineLength * info.lineLength));\n }\n\n if (lastCorrectlyPositionedLabel.hs === \"right\") {\n newXPos = info.center.x + xDiff;\n } else {\n newXPos = info.center.x - xDiff - pie.outerLabelGroupData[nextIndex].w;\n }\n\n pie.outerLabelGroupData[nextIndex].x = newXPos;\n pie.outerLabelGroupData[nextIndex].y = newYPos;\n },\n\n /**\n * @param i 0-N where N is the dataset size - 1.\n */\n getIdealOuterLabelPositions: function(pie, i) {\n var labelGroupNode = pie.svg.select(\"#\" + pie.cssPrefix + \"labelGroup\" + i + \"-outer\").node();\n if (!labelGroupNode) return;\n\n var labelGroupDims = labelGroupNode.getBBox();\n var angle = segments.getSegmentAngle(i, pie.options.data.content, pie.totalSize, { midpoint: true });\n\n var originalX = pie.pieCenter.x;\n var originalY = pie.pieCenter.y - (pie.outerRadius + pie.options.labels.outer.pieDistance);\n var newCoords = math.rotate(originalX, originalY, pie.pieCenter.x, pie.pieCenter.y, angle);\n\n // if the label is on the left half of the pie, adjust the values\n var hemisphere = \"right\"; // hemisphere\n if (angle > 180) {\n newCoords.x -= (labelGroupDims.width + 8);\n hemisphere = \"left\";\n } else {\n newCoords.x += 8;\n }\n\n pie.outerLabelGroupData[i] = {\n x: newCoords.x,\n y: newCoords.y,\n w: labelGroupDims.width,\n h: labelGroupDims.height,\n hs: hemisphere\n };\n }\n};\n\n //// --------- segments.js -----------\nvar segments = {\n\n effectMap: {\n \"none\": d3.easeLinear,\n \"bounce\": d3.easeBounce,\n \"linear\": d3.easeLinear,\n \"sin\": d3.easeSin,\n \"elastic\": d3.easeElastic,\n \"back\": d3.easeBack,\n \"quad\": d3.easeQuad,\n \"circle\": d3.easeCircle,\n \"exp\": d3.easeExp\n },\n\n /**\n * Creates the pie chart segments and displays them according to the desired load effect.\n * @private\n */\n create: function(pie) {\n var pieCenter = pie.pieCenter;\n var colors = pie.options.colors;\n var loadEffects = pie.options.effects.load;\n var segmentStroke = pie.options.misc.colors.segmentStroke;\n\n // we insert the pie chart BEFORE the title, to ensure the title overlaps the pie\n var pieChartElement = pie.svg.insert(\"g\", \"#\" + pie.cssPrefix + \"title\")\n .attr(\"transform\", function() { return math.getPieTranslateCenter(pieCenter); })\n .attr(\"class\", pie.cssPrefix + \"pieChart\");\n\n var arc = d3.arc()\n .innerRadius(pie.innerRadius)\n .outerRadius(pie.outerRadius)\n .startAngle(0)\n .endAngle(function(d) {\n return (d.value / pie.totalSize) * 2 * Math.PI;\n });\n\n var g = pieChartElement.selectAll(\".\" + pie.cssPrefix + \"arc\")\n .data(pie.options.data.content)\n .enter()\n .append(\"g\")\n .attr(\"class\", pie.cssPrefix + \"arc\");\n\n // if we're not fading in the pie, just set the load speed to 0\n //var loadSpeed = loadEffects.speed;\n //if (loadEffects.effect === \"none\") {\n //\tloadSpeed = 0;\n //}\n\n g.append(\"path\")\n .attr(\"id\", function(d, i) { return pie.cssPrefix + \"segment\" + i; })\n .attr(\"fill\", function(d, i) {\n var color = colors[i];\n if (pie.options.misc.gradient.enabled) {\n color = \"url(#\" + pie.cssPrefix + \"grad\" + i + \")\";\n }\n return color;\n })\n .style(\"stroke\", segmentStroke)\n .style(\"stroke-width\", 1)\n //.transition()\n //.ease(d3.easeCubicInOut)\n //.duration(loadSpeed)\n .attr(\"data-index\", function(d, i) { return i; })\n .attr(\"d\", arc);\n/*\n .attrTween(\"d\", function(b) {\n var i = d3.interpolate({ value: 0 }, b);\n return function(t) {\n var ret = pie.arc(i(t));\n console.log(ret);\n return ret;\n };\n });\n*/\n pie.svg.selectAll(\"g.\" + pie.cssPrefix + \"arc\")\n .attr(\"transform\",\n function(d, i) {\n var angle = 0;\n if (i > 0) {\n angle = segments.getSegmentAngle(i-1, pie.options.data.content, pie.totalSize);\n }\n return \"rotate(\" + angle + \")\";\n }\n );\n pie.arc = arc;\n },\n\n addGradients: function(pie) {\n var grads = pie.svg.append(\"defs\")\n .selectAll(\"radialGradient\")\n .data(pie.options.data.content)\n .enter().append(\"radialGradient\")\n .attr(\"gradientUnits\", \"userSpaceOnUse\")\n .attr(\"cx\", 0)\n .attr(\"cy\", 0)\n .attr(\"r\", \"120%\")\n .attr(\"id\", function(d, i) { return pie.cssPrefix + \"grad\" + i; });\n\n grads.append(\"stop\").attr(\"offset\", \"0%\").style(\"stop-color\", function(d, i) { return pie.options.colors[i]; });\n grads.append(\"stop\").attr(\"offset\", pie.options.misc.gradient.percentage + \"%\").style(\"stop-color\", pie.options.misc.gradient.color);\n },\n\n addSegmentEventHandlers: function(pie) {\n var arc = pie.svg.selectAll(\".\" + pie.cssPrefix + \"arc\");\n arc = arc.merge(pie.__labels.inner.merge(pie.__labels.outer));\n\n arc.on(\"click\", function() {\n var currentEl = d3.select(this);\n var segment;\n\n // mouseover works on both the segments AND the segment labels, hence the following\n if (currentEl.attr(\"class\") === pie.cssPrefix + \"arc\") {\n segment = currentEl.select(\"path\");\n } else {\n var index = currentEl.attr(\"data-index\");\n segment = d3.select(\"#\" + pie.cssPrefix + \"segment\" + index);\n }\n\n var isExpanded = segment.attr(\"class\") === pie.cssPrefix + \"expanded\";\n segments.onSegmentEvent(pie, pie.options.callbacks.onClickSegment, segment, isExpanded);\n if (pie.options.effects.pullOutSegmentOnClick.effect !== \"none\") {\n if (isExpanded) {\n segments.closeSegment(pie, segment.node());\n } else {\n segments.openSegment(pie, segment.node());\n }\n }\n });\n\n arc.on(\"mouseover\", function() {\n var currentEl = d3.select(this);\n var segment, index;\n\n if (currentEl.attr(\"class\") === pie.cssPrefix + \"arc\") {\n segment = currentEl.select(\"path\");\n } else {\n index = currentEl.attr(\"data-index\");\n segment = d3.select(\"#\" + pie.cssPrefix + \"segment\" + index);\n }\n\n if (pie.options.effects.highlightSegmentOnMouseover) {\n index = segment.attr(\"data-index\");\n var segColor = pie.options.colors[index];\n segment.style(\"fill\", helpers.getColorShade(segColor, pie.options.effects.highlightLuminosity));\n }\n\n if (pie.options.tooltips.enabled) {\n index = segment.attr(\"data-index\");\n tt.showTooltip(pie, index);\n }\n\n var isExpanded = segment.attr(\"class\") === pie.cssPrefix + \"expanded\";\n segments.onSegmentEvent(pie, pie.options.callbacks.onMouseoverSegment, segment, isExpanded);\n });\n\n arc.on(\"mousemove\", function() {\n tt.moveTooltip(pie);\n });\n\n arc.on(\"mouseout\", function() {\n var currentEl = d3.select(this);\n var segment, index;\n\n if (currentEl.attr(\"class\") === pie.cssPrefix + \"arc\") {\n segment = currentEl.select(\"path\");\n } else {\n index = currentEl.attr(\"data-index\");\n segment = d3.select(\"#\" + pie.cssPrefix + \"segment\" + index);\n }\n\n if (pie.options.effects.highlightSegmentOnMouseover) {\n index = segment.attr(\"data-index\");\n var color = pie.options.colors[index];\n if (pie.options.misc.gradient.enabled) {\n color = \"url(#\" + pie.cssPrefix + \"grad\" + index + \")\";\n }\n segment.style(\"fill\", color);\n }\n\n if (pie.options.tooltips.enabled) {\n index = segment.attr(\"data-index\");\n tt.hideTooltip(pie, index);\n }\n\n var isExpanded = segment.attr(\"class\") === pie.cssPrefix + \"expanded\";\n segments.onSegmentEvent(pie, pie.options.callbacks.onMouseoutSegment, segment, isExpanded);\n });\n },\n\n // helper function used to call the click, mouseover, mouseout segment callback functions\n onSegmentEvent: function(pie, func, segment, isExpanded) {\n if (!helpers.isFunction(func)) {\n return;\n }\n var index = parseInt(segment.attr(\"data-index\"), 10);\n func({\n segment: segment.node(),\n index: index,\n expanded: isExpanded,\n data: pie.options.data.content[index]\n });\n },\n\n openSegment: function(pie, segment) {\n if (pie.isOpeningSegment) {\n return;\n }\n pie.isOpeningSegment = true;\n\n segments.maybeCloseOpenSegment(pie);\n\n d3.select(segment)\n .transition()\n .ease(segments.effectMap[pie.options.effects.pullOutSegmentOnClick.effect])\n .duration(pie.options.effects.pullOutSegmentOnClick.speed)\n .attr(\"transform\", function(d, i) {\n var c = pie.arc.centroid(d),\n x = c[0],\n y = c[1],\n h = Math.sqrt(x*x + y*y),\n pullOutSize = parseInt(pie.options.effects.pullOutSegmentOnClick.size, 10);\n\n return \"translate(\" + ((x/h) * pullOutSize) + ',' + ((y/h) * pullOutSize) + \")\";\n })\n .on(\"end\", function(d, i) {\n pie.currentlyOpenSegment = segment;\n pie.isOpeningSegment = false;\n d3.select(segment).attr(\"class\", pie.cssPrefix + \"expanded\");\n });\n },\n\n maybeCloseOpenSegment: function(pie) {\n if (typeof pie !== 'undefined' && pie.svg.selectAll(\".\" + pie.cssPrefix + \"expanded\").size() > 0) {\n segments.closeSegment(pie, pie.svg.select(\".\" + pie.cssPrefix + \"expanded\").node());\n }\n },\n\n closeSegment: function(pie, segment) {\n d3.select(segment)\n .transition()\n .duration(400)\n .attr(\"transform\", \"translate(0,0)\")\n .on(\"end\", function(d, i) {\n d3.select(segment).attr(\"class\", \"\");\n pie.currentlyOpenSegment = null;\n });\n },\n\n getCentroid: function(el) {\n var bbox = el.getBBox();\n return {\n x: bbox.x + bbox.width / 2,\n y: bbox.y + bbox.height / 2\n };\n },\n\n /**\n * General helper function to return a segment's angle, in various different ways.\n * @param index\n * @param opts optional object for fine-tuning exactly what you want.\n */\n getSegmentAngle: function(index, data, totalSize, opts) {\n var options = extend({\n // if true, this returns the full angle from the origin. Otherwise it returns the single segment angle\n compounded: true,\n\n // optionally returns the midpoint of the angle instead of the full angle\n midpoint: false\n }, opts);\n\n var currValue = data[index].value;\n var fullValue;\n if (options.compounded) {\n fullValue = 0;\n\n // get all values up to and including the specified index\n for (var i=0; i<=index; i++) {\n fullValue += data[i].value;\n }\n }\n\n if (typeof fullValue === 'undefined') {\n fullValue = currValue;\n }\n\n // now convert the full value to an angle\n var angle = (fullValue / totalSize) * 360;\n\n // lastly, if we want the midpoint, factor that sucker in\n if (options.midpoint) {\n var currAngle = (currValue / totalSize) * 360;\n angle -= (currAngle / 2);\n }\n\n return angle;\n }\n\n};\n\n //// --------- text.js -----------\nvar text = {\n offscreenCoord: -10000,\n\n addTitle: function(pie) {\n pie.__title = pie.svg.selectAll(\".\" + pie.cssPrefix + \"title\")\n .data([pie.options.header.title])\n .enter()\n .append(\"text\")\n .text(function(d) { return d.text; })\n .attr(\"id\", pie.cssPrefix + \"title\")\n .attr(\"class\", pie.cssPrefix + \"title\")\n .attr(\"x\", text.offscreenCoord)\n .attr(\"y\", text.offscreenCoord)\n .attr(\"text-anchor\", function() {\n var location;\n if (pie.options.header.location === \"top-center\" || pie.options.header.location === \"pie-center\") {\n location = \"middle\";\n } else {\n location = \"left\";\n }\n return location;\n })\n .attr(\"fill\", function(d) { return d.color; })\n .style(\"font-size\", function(d) { return d.fontSize + \"px\"; })\n .style(\"font-weight\", function(d) { return d.fontWeight; })\n .style(\"font-family\", function(d) { return d.font; });\n },\n\n positionTitle: function(pie) {\n var textComponents = pie.textComponents;\n var headerLocation = pie.options.header.location;\n var canvasPadding = pie.options.misc.canvasPadding;\n var canvasWidth = pie.options.size.canvasWidth;\n var titleSubtitlePadding = pie.options.header.titleSubtitlePadding;\n\n var x;\n if (headerLocation === \"top-left\") {\n x = canvasPadding.left;\n } else {\n x = ((canvasWidth - canvasPadding.right) / 2) + canvasPadding.left;\n }\n\n // add whatever offset has been added by user\n x += pie.options.misc.pieCenterOffset.x;\n\n var y = canvasPadding.top + textComponents.title.h;\n\n if (headerLocation === \"pie-center\") {\n y = pie.pieCenter.y;\n\n // still not fully correct\n if (textComponents.subtitle.exists) {\n var totalTitleHeight = textComponents.title.h + titleSubtitlePadding + textComponents.subtitle.h;\n y = y - (totalTitleHeight / 2) + textComponents.title.h;\n } else {\n y += (textComponents.title.h / 4);\n }\n }\n\n pie.__title\n .attr(\"x\", x)\n .attr(\"y\", y);\n },\n\n addSubtitle: function(pie) {\n var headerLocation = pie.options.header.location;\n\n pie.__subtitle = pie.svg.selectAll(\".\" + pie.cssPrefix + \"subtitle\")\n .data([pie.options.header.subtitle])\n .enter()\n .append(\"text\")\n .text(function(d) { return d.text; })\n .attr(\"x\", text.offscreenCoord)\n .attr(\"y\", text.offscreenCoord)\n .attr(\"id\", pie.cssPrefix + \"subtitle\")\n .attr(\"class\", pie.cssPrefix + \"subtitle\")\n .attr(\"text-anchor\", function() {\n var location;\n if (headerLocation === \"top-center\" || headerLocation === \"pie-center\") {\n location = \"middle\";\n } else {\n location = \"left\";\n }\n return location;\n })\n .attr(\"fill\", function(d) { return d.color; })\n .style(\"font-size\", function(d) { return d.fontSize + \"px\"; })\n .style(\"font-weight\", function(d) { return d.fontWeight; })\n .style(\"font-family\", function(d) { return d.font; });\n },\n\n positionSubtitle: function(pie) {\n var canvasPadding = pie.options.misc.canvasPadding;\n var canvasWidth = pie.options.size.canvasWidth;\n\n var x;\n if (pie.options.header.location === \"top-left\") {\n x = canvasPadding.left;\n } else {\n x = ((canvasWidth - canvasPadding.right) / 2) + canvasPadding.left;\n }\n\n // add whatever offset has been added by user\n x += pie.options.misc.pieCenterOffset.x;\n\n var y = text.getHeaderHeight(pie);\n\n pie.__subtitle\n .attr(\"x\", x)\n .attr(\"y\", y);\n },\n\n addFooter: function(pie) {\n pie.__footer = pie.svg.selectAll(\".\" + pie.cssPrefix + \"footer\")\n .data([pie.options.footer])\n .enter()\n .append(\"text\")\n .text(function(d) { return d.text; })\n .attr(\"x\", text.offscreenCoord)\n .attr(\"y\", text.offscreenCoord)\n .attr(\"id\", pie.cssPrefix + \"footer\")\n .attr(\"class\", pie.cssPrefix + \"footer\")\n .attr(\"text-anchor\", function() {\n var location = \"left\";\n if (pie.options.footer.location === \"bottom-center\") {\n location = \"middle\";\n } else if (pie.options.footer.location === \"bottom-right\") {\n location = \"left\"; // on purpose. We have to change the x-coord to make it properly right-aligned\n }\n return location;\n })\n .attr(\"fill\", function(d) { return d.color; })\n .style(\"font-size\", function(d) { return d.fontSize + \"px\"; })\n .style(\"font-weight\", function(d) { return d.fontWeight; })\n .style(\"font-family\", function(d) { return d.font; });\n },\n\n positionFooter: function(pie) {\n var footerLocation = pie.options.footer.location;\n var footerWidth = pie.textComponents.footer.w;\n var canvasWidth = pie.options.size.canvasWidth;\n var canvasHeight = pie.options.size.canvasHeight;\n var canvasPadding = pie.options.misc.canvasPadding;\n\n var x;\n if (footerLocation === \"bottom-left\") {\n x = canvasPadding.left;\n } else if (footerLocation === \"bottom-right\") {\n x = canvasWidth - footerWidth - canvasPadding.right;\n } else {\n x = canvasWidth / 2; // TODO - shouldn't this also take into account padding?\n }\n\n pie.__footer\n .attr(\"x\", x)\n .attr(\"y\", canvasHeight - canvasPadding.bottom);\n },\n\n getHeaderHeight: function(pie) {\n var h;\n if (pie.textComponents.title.exists) {\n\n // if the subtitle isn't defined, it'll be set to 0\n var totalTitleHeight = pie.textComponents.title.h + pie.options.header.titleSubtitlePadding + pie.textComponents.subtitle.h;\n if (pie.options.header.location === \"pie-center\") {\n h = pie.pieCenter.y - (totalTitleHeight / 2) + totalTitleHeight;\n } else {\n h = totalTitleHeight + pie.options.misc.canvasPadding.top;\n }\n } else {\n if (pie.options.header.location === \"pie-center\") {\n var footerPlusPadding = pie.options.misc.canvasPadding.bottom + pie.textComponents.footer.h;\n h = ((pie.options.size.canvasHeight - footerPlusPadding) / 2) + pie.options.misc.canvasPadding.top + (pie.textComponents.subtitle.h / 2);\n } else {\n h = pie.options.misc.canvasPadding.top + pie.textComponents.subtitle.h;\n }\n }\n return h;\n }\n};\n\n //// --------- validate.js -----------\nvar tt = {\n addTooltips: function(pie) {\n\n // group the label groups (label, percentage, value) into a single element for simpler positioning\n var tooltips = pie.svg.insert(\"g\")\n .attr(\"class\", pie.cssPrefix + \"tooltips\");\n\n tooltips.selectAll(\".\" + pie.cssPrefix + \"tooltip\")\n .data(pie.options.data.content)\n .enter()\n .append(\"g\")\n .attr(\"class\", pie.cssPrefix + \"tooltip\")\n .attr(\"id\", function(d, i) { return pie.cssPrefix + \"tooltip\" + i; })\n .style(\"opacity\", 0)\n .append(\"rect\")\n .attr(\"rx\", pie.options.tooltips.styles.borderRadius)\n .attr(\"ry\", pie.options.tooltips.styles.borderRadius)\n .attr(\"x\", -pie.options.tooltips.styles.padding)\n .attr(\"opacity\", pie.options.tooltips.styles.backgroundOpacity)\n .style(\"fill\", pie.options.tooltips.styles.backgroundColor);\n\n tooltips.selectAll(\".\" + pie.cssPrefix + \"tooltip\")\n .data(pie.options.data.content)\n .append(\"text\")\n .attr(\"fill\", function(d) { return pie.options.tooltips.styles.color; })\n .style(\"font-size\", function(d) { return pie.options.tooltips.styles.fontSize; })\n .style(\"font-weight\", function(d) { return pie.options.tooltips.styles.fontWeight; })\n .style(\"font-family\", function(d) { return pie.options.tooltips.styles.font; })\n .text(function(d, i) {\n var caption = pie.options.tooltips.string;\n if (pie.options.tooltips.type === \"caption\") {\n caption = d.caption;\n }\n return tt.replacePlaceholders(pie, caption, i, {\n label: d.label,\n value: d.value,\n percentage: d.percentage\n });\n });\n\n tooltips.selectAll(\".\" + pie.cssPrefix + \"tooltip rect\")\n .attr(\"width\", function (d, i) {\n var dims = helpers.getDimensions(pie.cssPrefix + \"tooltip\" + i);\n return dims.w + (2 * pie.options.tooltips.styles.padding);\n })\n .attr(\"height\", function (d, i) {\n var dims = helpers.getDimensions(pie.cssPrefix + \"tooltip\" + i);\n return dims.h + (2 * pie.options.tooltips.styles.padding);\n })\n .attr(\"y\", function (d, i) {\n var dims = helpers.getDimensions(pie.cssPrefix + \"tooltip\" + i);\n return -(dims.h / 2) + 1;\n });\n },\n\n showTooltip: function(pie, index) {\n var fadeInSpeed = pie.options.tooltips.styles.fadeInSpeed;\n if (tt.currentTooltip === index) {\n fadeInSpeed = 1;\n }\n\n tt.currentTooltip = index;\n d3.select(\"#\" + pie.cssPrefix + \"tooltip\" + index)\n .transition()\n .duration(fadeInSpeed)\n .style(\"opacity\", function() { return 1; });\n\n tt.moveTooltip(pie);\n },\n\n moveTooltip: function(pie) {\n d3.selectAll(\"#\" + pie.cssPrefix + \"tooltip\" + tt.currentTooltip)\n .attr(\"transform\", function(d) {\n var mouseCoords = d3.mouse(this.parentNode);\n var x = mouseCoords[0] + pie.options.tooltips.styles.padding + 2;\n var y = mouseCoords[1] - (2 * pie.options.tooltips.styles.padding) - 2;\n return \"translate(\" + x + \",\" + y + \")\";\n });\n },\n\n hideTooltip: function(pie, index) {\n d3.select(\"#\" + pie.cssPrefix + \"tooltip\" + index)\n .style(\"opacity\", function() { return 0; });\n\n // move the tooltip offscreen. This ensures that when the user next mouseovers the segment the hidden\n // element won't interfere\n d3.select(\"#\" + pie.cssPrefix + \"tooltip\" + tt.currentTooltip)\n .attr(\"transform\", function(d, i) {\n // klutzy, but it accounts for tooltip padding which could push it onscreen\n var x = pie.options.size.canvasWidth + 1000;\n var y = pie.options.size.canvasHeight + 1000;\n return \"translate(\" + x + \",\" + y + \")\";\n });\n },\n\n replacePlaceholders: function(pie, str, index, replacements) {\n\n // if the user has defined a placeholderParser function, call it before doing the replacements\n if (helpers.isFunction(pie.options.tooltips.placeholderParser)) {\n pie.options.tooltips.placeholderParser(index, replacements);\n }\n\n var replacer = function() {\n return function(match) {\n var placeholder = arguments[1];\n if (replacements.hasOwnProperty(placeholder)) {\n return replacements[arguments[1]];\n } else {\n return arguments[0];\n }\n };\n };\n return str.replace(/\\{(\\w+)\\}/g, replacer(replacements));\n }\n};\n\n\n // --------------------------------------------------------------------------------------------\n\n // our constructor\n var d3pie = function(element, options) {\n\n // element can be an ID or DOM element\n this.element = element;\n if (typeof element === \"string\") {\n var el = element.replace(/^#/, \"\"); // replace any jQuery-like ID hash char\n this.element = document.getElementById(el);\n }\n\n var opts = {};\n extend(true, opts, defaultSettings, options);\n this.options = opts;\n\n // if the user specified a custom CSS element prefix (ID, class), use it\n if (this.options.misc.cssPrefix !== null) {\n this.cssPrefix = this.options.misc.cssPrefix;\n } else {\n this.cssPrefix = \"p\" + _uniqueIDCounter + \"_\";\n _uniqueIDCounter++;\n }\n\n\n // now run some validation on the user-defined info\n if (!validate.initialCheck(this)) {\n return;\n }\n\n // add a data-role to the DOM node to let anyone know that it contains a d3pie instance, and the d3pie version\n d3.select(this.element).attr(_scriptName, _version);\n\n // things that are done once\n _setupData.call(this);\n _init.call(this);\n };\n\n d3pie.prototype.recreate = function() {\n // now run some validation on the user-defined info\n if (!validate.initialCheck(this)) {\n return;\n }\n\n _setupData.call(this);\n _init.call(this);\n };\n\n d3pie.prototype.redraw = function() {\n this.element.innerHTML = \"\";\n _init.call(this);\n };\n\n d3pie.prototype.destroy = function() {\n this.element.innerHTML = \"\"; // clear out the SVG\n d3.select(this.element).attr(_scriptName, null); // remove the data attr\n };\n\n /**\n * Returns all pertinent info about the current open info. Returns null if nothing's open, or if one is, an object of\n * the following form:\n * \t{\n * \t element: DOM NODE,\n * \t index: N,\n * \t data: {}\n * \t}\n */\n d3pie.prototype.getOpenSegment = function() {\n var segment = this.currentlyOpenSegment;\n if (segment !== null && typeof segment !== \"undefined\") {\n var index = parseInt(d3.select(segment).attr(\"data-index\"), 10);\n return {\n element: segment,\n index: index,\n data: this.options.data.content[index]\n };\n } else {\n return null;\n }\n };\n\n d3pie.prototype.openSegment = function(index) {\n index = parseInt(index, 10);\n if (index < 0 || index > this.options.data.content.length-1) {\n return;\n }\n segments.openSegment(this, d3.select(\"#\" + this.cssPrefix + \"segment\" + index).node());\n };\n\n d3pie.prototype.closeSegment = function() {\n segments.maybeCloseOpenSegment(this);\n };\n\n // this let's the user dynamically update aspects of the pie chart without causing a complete redraw. It\n // intelligently re-renders only the part of the pie that the user specifies. Some things cause a repaint, others\n // just redraw the single element\n d3pie.prototype.updateProp = function(propKey, value) {\n switch (propKey) {\n case \"header.title.text\":\n var oldVal = helpers.processObj(this.options, propKey);\n helpers.processObj(this.options, propKey, value);\n d3.select(\"#\" + this.cssPrefix + \"title\").html(value);\n if ((oldVal === \"\" && value !== \"\") || (oldVal !== \"\" && value === \"\")) {\n this.redraw();\n }\n break;\n\n case \"header.subtitle.text\":\n var oldValue = helpers.processObj(this.options, propKey);\n helpers.processObj(this.options, propKey, value);\n d3.select(\"#\" + this.cssPrefix + \"subtitle\").html(value);\n if ((oldValue === \"\" && value !== \"\") || (oldValue !== \"\" && value === \"\")) {\n this.redraw();\n }\n break;\n\n case \"callbacks.onload\":\n case \"callbacks.onMouseoverSegment\":\n case \"callbacks.onMouseoutSegment\":\n case \"callbacks.onClickSegment\":\n case \"effects.pullOutSegmentOnClick.effect\":\n case \"effects.pullOutSegmentOnClick.speed\":\n case \"effects.pullOutSegmentOnClick.size\":\n case \"effects.highlightSegmentOnMouseover\":\n case \"effects.highlightLuminosity\":\n helpers.processObj(this.options, propKey, value);\n break;\n\n // everything else, attempt to update it & do a repaint\n default:\n helpers.processObj(this.options, propKey, value);\n\n this.destroy();\n this.recreate();\n break;\n }\n };\n\n\n // ------------------------------------------------------------------------------------------------\n\n var _setupData = function () {\n this.options.data.content = math.sortPieData(this);\n if (this.options.data.smallSegmentGrouping.enabled) {\n this.options.data.content = helpers.applySmallSegmentGrouping(this.options.data.content, this.options.data.smallSegmentGrouping);\n }\n\n\n this.options.colors = helpers.initSegmentColors(this);\n this.totalSize = math.getTotalPieSize(this.options.data.content);\n\n var dp = this.options.labels.percentage.decimalPlaces;\n\n // add in percentage data to content\n for (var i=0; i<this.options.data.content.length; i++) {\n this.options.data.content[i].percentage = _getPercentage(this.options.data.content[i].value, this.totalSize, dp);\n }\n\n // adjust the final item to ensure the percentage always adds up to precisely 100%. This is necessary\n var totalPercentage = 0;\n for (var j=0; j<this.options.data.content.length; j++) {\n if (j === this.options.data.content.length - 1) {\n this.options.data.content[j].percentage = (100 - totalPercentage).toFixed(dp);\n }\n totalPercentage += parseFloat(this.options.data.content[j].percentage);\n }\n };\n\n var _init = function() {\n\n // prep-work\n this.svg = helpers.addSVGSpace(this);\n\n // store info about the main text components as part of the d3pie object instance\n this.textComponents = {\n headerHeight: 0,\n title: {\n exists: this.options.header.title.text !== \"\",\n h: 0,\n w: 0\n },\n subtitle: {\n exists: this.options.header.subtitle.text !== \"\",\n h: 0,\n w: 0\n },\n footer: {\n exists: this.options.footer.text !== \"\",\n h: 0,\n w: 0\n }\n };\n\n this.outerLabelGroupData = [];\n\n // add the key text components offscreen (title, subtitle, footer). We need to know their widths/heights for later computation\n if (this.textComponents.title.exists) text.addTitle(this);\n if (this.textComponents.subtitle.exists) text.addSubtitle(this);\n text.addFooter(this);\n\n // console.log(this);\n\n // the footer never moves. Put it in place now\n var self = this;\n text.positionFooter(self);\n var d3 = helpers.getDimensions(self.__footer.node());\n self.textComponents.footer.h = d3.h;\n self.textComponents.footer.w = d3.w;\n\n if (self.textComponents.title.exists) {\n var d1 = helpers.getDimensions(self.__title.node());\n self.textComponents.title.h = d1.h;\n self.textComponents.title.w = d1.w;\n }\n\n if (self.textComponents.subtitle.exists) {\n var d2 = helpers.getDimensions(self.__subtitle.node());\n self.textComponents.subtitle.h = d2.h;\n self.textComponents.subtitle.w = d2.w;\n }\n\n // now compute the full header height\n if (self.textComponents.title.exists || self.textComponents.subtitle.exists) {\n var headerHeight = 0;\n if (self.textComponents.title.exists) {\n headerHeight += self.textComponents.title.h;\n if (self.textComponents.subtitle.exists) {\n headerHeight += self.options.header.titleSubtitlePadding;\n }\n }\n if (self.textComponents.subtitle.exists) {\n headerHeight += self.textComponents.subtitle.h;\n }\n self.textComponents.headerHeight = headerHeight;\n }\n\n // at this point, all main text component dimensions have been calculated\n math.computePieRadius(self);\n\n // this value is used all over the place for placing things and calculating locations. We figure it out ONCE\n // and store it as part of the object\n math.calculatePieCenter(self);\n\n // position the title and subtitle\n text.positionTitle(self);\n text.positionSubtitle(self);\n\n // now create the pie chart segments, and gradients if the user desired\n if (self.options.misc.gradient.enabled) {\n segments.addGradients(self);\n }\n segments.create(self); // also creates this.arc\n\n self.__labels = {};\n labels.add(self, \"inner\", self.options.labels.inner.format);\n labels.add(self, \"outer\", self.options.labels.outer.format);\n\n // position the label elements relatively within their individual group (label, percentage, value)\n labels.positionLabelElements(self, \"inner\", self.options.labels.inner.format);\n labels.positionLabelElements(self, \"outer\", self.options.labels.outer.format);\n labels.computeOuterLabelCoords(self);\n\n // this is (and should be) dumb. It just places the outer groups at their calculated, collision-free positions\n labels.positionLabelGroups(self, \"outer\");\n\n // we use the label line positions for many other calculations, so ALWAYS compute them\n labels.computeLabelLinePositions(self);\n\n // only add them if they're actually enabled\n if (self.options.labels.lines.enabled && self.options.labels.outer.format !== \"none\") {\n labels.addLabelLines(self);\n }\n\n labels.positionLabelGroups(self, \"inner\");\n\n if (helpers.isFunction(self.options.callbacks.onload)) {\n try {\n self.options.callbacks.onload();\n } catch (e) { }\n }\n\n // add and position the tooltips\n if (self.options.tooltips.enabled) {\n tt.addTooltips(self);\n }\n\n segments.addSegmentEventHandlers(self);\n };\n\n var _getPercentage = function(value, total, decimalPlaces) {\n var relativeAmount = value / total;\n if (decimalPlaces <= 0) {\n return Math.round(relativeAmount * 100);\n } else {\n return (relativeAmount * 100).toFixed(decimalPlaces);\n }\n };\n\n return d3pie;\n}));\n","export * from \"./types\"\n\nexport { default as CloudConnectionStatus } from \"./cloud-connection-status\"\n","import {\n concat, cond, equals, identity, last, pipe, T,\n} from \"ramda\"\n\nimport { isDevelopmentEnv, isMainJs, isTestingEnv } from \"utils/env\"\n\n\n// this part needs to be static and should run immediately because otherwise document.currentScript\n// will be null\nconst currentScript = isTestingEnv\n ? { src: \"http://localhost:3000/some-script.js\" } // test env doesn't have document.currentScript\n : document.currentScript\n\nconst getScriptSource = () => {\n // logic based on old dashboard\n\n // http://stackoverflow.com/questions/984510/what-is-my-script-src-url\n // http://stackoverflow.com/questions/6941533/get-protocol-domain-and-port-from-url\n const script = cond([\n [Boolean, identity],\n // \"last\" typings don't work well with HTMLScriptElement\n // if document.currentScript is not available\n [T, () => last(document.getElementsByTagName(\"script\") as unknown as [HTMLScriptElement])],\n ])(currentScript)\n\n return script.src\n}\n\nexport const getPathFromScriptSource = (source: string) => {\n // match strings not containing slash, ending with `.js`, with optional suffix started by `?`\n const jsFilenameRegex = \"[^\\\\/]*\\\\.js(\\\\/?.*)?$\"\n const staticJsPath = \"/static/js\"\n return source.replace(new RegExp(jsFilenameRegex), \"\")\n .replace(staticJsPath, \"\")\n}\n\nconst getDefaultServer = () => {\n if (isDevelopmentEnv) {\n return \"http://localhost:19999\"\n }\n\n // Agent Dashboard does not need sophisticated server-detection, which is causing problems\n // when navigating through streamed nodes. Let's overwrite that setting\n if (isMainJs) {\n const pathname = window.location.pathname\n .replace(\"index.html\", \"\")\n // todo consider .replace(/[^\\/]*\\.html/, \"\") (every .html file in the url)\n .replace(\"default.html\", \"\") // for netdata demo servers\n return window.location.origin + pathname.replace(/\\/v1\\/?$/, \"\")\n }\n\n const source = getScriptSource()\n return getPathFromScriptSource(source).replace(/\\/v1\\/?$/, \"\")\n}\n\n// append \"/\" at the end, if it's not already there\nexport const alwaysEndWithSlash = cond([\n [pipe(last, equals(\"/\")), identity],\n [T, (x: string) => concat(x, \"/\")], // R.__ typings don't work well\n])\n\nexport const serverDefault: string = alwaysEndWithSlash(\n window.netdataServer || getDefaultServer(),\n)\n\nexport const serverStatic: string = isDevelopmentEnv\n ? \"/\" // for localhost:3000/css/...\n : alwaysEndWithSlash(getDefaultServer()) // by default, load from netdata server\n","import { prop } from \"ramda\"\nimport { createSelector } from \"reselect\"\n\nimport { AppStateT } from \"store/app-state\"\nimport { selectChartMetadataFromChartsCall } from \"domains/global/selectors\"\n\nimport { ChartState } from \"./chart-types\"\nimport { initialSingleState } from \"./reducer\"\nimport { storeKey } from \"./constants\"\n\nexport const selectChartsState = (state: AppStateT) => state[storeKey]\nexport const selectSingleChartState = createSelector(\n selectChartsState,\n (_: unknown, { id }: { chartId?: string, id: string }) => id,\n (chartsState, id) => chartsState[id] || initialSingleState,\n)\n\nexport const selectChartData = createSelector(\n selectSingleChartState,\n (chartState) => chartState.chartData,\n)\n\nconst selectChartMetadataFromExplicitCall = createSelector(\n selectSingleChartState, prop(\"chartMetadata\"),\n)\n// dashboard.js normally fetches metadata for every individual charts, but we can prevent it\n// if metadata for ALL charts will be present in state.global (from single call)\nconst selectChartMetadata = createSelector(\n selectChartMetadataFromChartsCall,\n selectChartMetadataFromExplicitCall,\n (metadataFromAll, metadataFromSingleCall) => metadataFromAll || metadataFromSingleCall,\n)\nconst selectIsFetchingDetails = createSelector(selectSingleChartState, prop(\"isFetchingDetails\"))\n\nexport const makeSelectChartMetadataRequest = () => createSelector(\n selectChartMetadata,\n selectIsFetchingDetails,\n (chartMetadata, isFetchingDetails) => ({ chartMetadata, isFetchingDetails }),\n)\n\nexport const selectChartViewRange = createSelector(\n selectSingleChartState,\n (chartState) => chartState.viewRange,\n)\n\nexport const selectChartIsFetchingData = createSelector(\n selectSingleChartState,\n (chartState) => chartState.isFetchingData,\n)\n\nexport const selectChartFetchDataParams = createSelector(\n selectSingleChartState,\n (chartState) => chartState.fetchDataParams,\n)\n\nexport const selectResizeHeight = createSelector(\n selectSingleChartState,\n (chartState) => chartState.resizeHeight,\n)\n\nexport const selectChartPanAndZoom = createSelector(selectSingleChartState, prop(\"chartPanAndZoom\"))\n\n// count the nr of \"success\" or \"failure\" charts\nconst hasCompletedFetching = (chartState: ChartState) => chartState.isFetchDataFailure\n || Boolean(chartState.chartData) || chartState.isFetchDetailsFailure\n\nexport const selectChartsAreFetching = createSelector(selectChartsState, chartsState =>\n Object.values(chartsState).some(({ isFetchingData }) => isFetchingData)\n)\n\nexport const selectAmountOfFetchedCharts = createSelector(\n selectChartsState,\n (chartsState) => Object.values(chartsState)\n .reduce((acc, chartState) => acc + (hasCompletedFetching(chartState) ? 1 : 0), 0),\n)\n\nexport const selectAmountOfCharts = createSelector(\n selectChartsState,\n (chartsState) => Object.keys(chartsState).length,\n)\n\nexport const selectNameOfAnyFetchingChart = createSelector(\n selectChartsState,\n (chartsState) => Object.values(chartsState)\n .find((chartState) => chartState.isFetchingData)?.chartId,\n)\n\nexport const selectAmountOfSnapshotsFetched = createSelector(\n selectChartsState,\n (chartsState) => Object.values(chartsState)\n .reduce((acc, chartState) => acc + (chartState.snapshotData ? 1 : 0), 0),\n)\n\nexport const selectAmountOfSnapshotsFailed = createSelector(\n selectChartsState,\n (chartsState) => Object.values(chartsState)\n .reduce((acc, chartState) => acc + (chartState.snapshotDataIsError ? 1 : 0), 0),\n)\n","import { useMemo } from \"react\"\nimport moment from \"moment\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectTimezoneSetting, selectUTCOffsetSetting } from \"domains/global/selectors\"\n\nconst zeropad = x => {\n if (x > -10 && x < 10) {\n return `0${x.toString()}`\n }\n return x.toString()\n}\n\nexport const isSupportingDateTimeFormat = !!(Intl && Intl.DateTimeFormat && navigator.language)\n\nconst narrowToDate = d => (typeof d === \"number\" ? new Date(d) : d)\n// these are the old netdata functions\n// we fallback to these, if the new ones fail\nexport const localeDateStringNative = d => narrowToDate(d).toLocaleDateString()\nexport const localeTimeStringNative = d => narrowToDate(d).toLocaleTimeString()\nexport const xAxisTimeStringNative = d => {\n const date = narrowToDate(d)\n return `${zeropad(date.getHours())}:${zeropad(date.getMinutes())}:${zeropad(date.getSeconds())}`\n}\n\nexport const isProperTimezone = timeZone => {\n try {\n Intl.DateTimeFormat(navigator.language, {\n localeMatcher: \"best fit\",\n formatMatcher: \"best fit\",\n weekday: \"short\",\n year: \"numeric\",\n month: \"short\",\n day: \"2-digit\",\n timeZone,\n })\n } catch (e) {\n return false\n }\n return true\n}\n\nexport const getDateWithOffset = (date, offset) => moment(date).utcOffset(offset)\n\nconst getOptions = ({ long, isTime, secs, timezone }) => ({\n hourCycle: \"h23\",\n ...(isTime\n ? {}\n : long\n ? { weekday: \"short\", year: \"numeric\", month: \"short\", day: \"2-digit\" }\n : { dateStyle: \"short\" }),\n ...(isTime && {\n timeStyle: secs ? \"medium\" : \"short\",\n }),\n timeZone: timezone,\n})\n\nconst dateFormat = (date, { locale, ...options }) =>\n new Intl.DateTimeFormat(locale ?? navigator.language, getOptions(options)).format(date)\n\nconst getTimezone = timezone => (timezone !== \"\" && timezone !== \"default\" ? timezone : undefined)\n\nexport const useDateTime = () => {\n const timezone = useSelector(selectTimezoneSetting)\n const utcOffset = useSelector(selectUTCOffsetSetting)\n\n const localeDateString = useMemo(() => {\n return isSupportingDateTimeFormat\n ? (date, options) =>\n dateFormat(date, { long: true, timezone: getTimezone(timezone), ...options })\n : localeDateStringNative\n }, [timezone])\n\n const localeTimeString = useMemo(() => {\n return isSupportingDateTimeFormat\n ? (date, options) =>\n dateFormat(date, {\n secs: true,\n isTime: true,\n timezone: getTimezone(timezone),\n ...options,\n })\n : localeTimeStringNative\n }, [timezone])\n\n const xAxisTimeString = useMemo(() => {\n return isSupportingDateTimeFormat\n ? date => dateFormat(date, { secs: true, isTime: true, timezone: getTimezone(timezone) })\n : xAxisTimeStringNative\n }, [timezone])\n\n const xAxisDateString = useMemo(() => {\n return isSupportingDateTimeFormat\n ? date => dateFormat(date, { long: true, timezone: getTimezone(timezone) })\n : xAxisTimeStringNative\n }, [timezone])\n\n return {\n localeDateString,\n localeTimeString,\n xAxisDateString,\n xAxisTimeString,\n utcOffset,\n }\n}\n","import { createAction } from \"redux-act\"\nimport { ChartsMetadata } from \"domains/global/types\"\n\nimport { storeKey } from \"./constants\"\n\nexport interface startSnapshotModeAction {\n charts: ChartsMetadata\n dataPoints: number\n}\nexport const startSnapshotModeAction = createAction<startSnapshotModeAction>(\n `${storeKey}/isSnapshotModeAction`,\n)\n\nexport const stopSnapshotModeAction = createAction(`${storeKey}/stopSnapshotModeAction`)\n\nexport interface ShowSignInModalAction { signInLinkHref: string }\nexport const showSignInModalAction = createAction<ShowSignInModalAction>(\n `${storeKey}/showSignInModal`,\n)\n\nexport const explicitlySignInAction = createAction(`${storeKey}/explicitlySignIn`)\n\nexport interface IsSignedInAction { isSignedIn: boolean }\nexport const isSignedInAction = createAction<IsSignedInAction>(`${storeKey}/isSignedInAction`)\n\nexport interface SetOfflineAction { offline: boolean }\nexport const setOfflineAction = createAction<SetOfflineAction>(`${storeKey}/setOfflineAction`)\n","export const storeKey = \"chart\"\n\nexport const fallbackUpdateTimeInterval = 2000\n\n// corresponds to force_update_at in old dashboard\n// throttle time between use globalPanAndZoom change actions - and requests sent to server\nexport const panAndZoomDelay = 300\n","export const seconds4human = (\n totalSeconds: number | string, overrideOptions?: {[key: string]: string},\n) => {\n const defaultOptions: {[key: string]: string} = {\n now: \"now\",\n space: \" \",\n negative_suffix: \"ago\",\n day: \"day\",\n days: \"days\",\n hour: \"hour\",\n hours: \"hours\",\n minute: \"min\",\n minutes: \"mins\",\n second: \"sec\",\n seconds: \"secs\",\n and: \"and\",\n }\n\n const options = typeof overrideOptions === \"object\"\n ? { ...defaultOptions, ...overrideOptions }\n : defaultOptions\n\n let seconds = typeof totalSeconds === \"string\"\n ? parseInt(totalSeconds, 10)\n : totalSeconds\n\n if (seconds === 0) {\n return options.now\n }\n\n let suffix = \"\"\n if (seconds < 0) {\n seconds = -seconds\n if (options.negative_suffix !== \"\") {\n suffix = options.space + options.negative_suffix\n }\n }\n\n const days = Math.floor(seconds / 86400)\n seconds -= (days * 86400)\n\n const hours = Math.floor(seconds / 3600)\n seconds -= (hours * 3600)\n\n const minutes = Math.floor(seconds / 60)\n seconds -= (minutes * 60)\n\n const strings = []\n\n if (days > 1) {\n strings.push(days.toString() + options.space + options.days)\n } else if (days === 1) {\n strings.push(days.toString() + options.space + options.day)\n }\n\n if (hours > 1) {\n strings.push(hours.toString() + options.space + options.hours)\n } else if (hours === 1) {\n strings.push(hours.toString() + options.space + options.hour)\n }\n\n if (minutes > 1) {\n strings.push(minutes.toString() + options.space + options.minutes)\n } else if (minutes === 1) {\n strings.push(minutes.toString() + options.space + options.minute)\n }\n\n if (seconds > 1) {\n strings.push(Math.floor(seconds).toString() + options.space + options.seconds)\n } else if (seconds === 1) {\n strings.push(Math.floor(seconds).toString() + options.space + options.second)\n }\n\n if (strings.length === 1) {\n return strings.pop() + suffix\n }\n\n const last = strings.pop()\n return `${strings.join(\", \")} ${options.and} ${last}${suffix}`\n}\n","/*! @license Copyright 2017 Dan Vanderkam (danvdk@gmail.com) MIT-licensed (http://opensource.org/licenses/MIT) */\n// SPDX-License-Identifier: MIT\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var e;e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,e.Dygraph=t()}}(function(){return function t(e,a,i){function n(o,s){if(!a[o]){if(!e[o]){var l=\"function\"==typeof require&&require;if(!s&&l)return l(o,!0);if(r)return r(o,!0);var h=new Error(\"Cannot find module '\"+o+\"'\");throw h.code=\"MODULE_NOT_FOUND\",h}var u=a[o]={exports:{}};e[o][0].call(u.exports,function(t){var a=e[o][1][t];return n(a||t)},u,u.exports,t,e,a,i)}return a[o].exports}for(var r=\"function\"==typeof require&&require,o=0;o<i.length;o++)n(i[o]);return n}({1:[function(t,e,a){function i(){throw new Error(\"setTimeout has not been defined\")}function n(){throw new Error(\"clearTimeout has not been defined\")}function r(t){if(d===setTimeout)return setTimeout(t,0);if((d===i||!d)&&setTimeout)return d=setTimeout,setTimeout(t,0);try{return d(t,0)}catch(e){try{return d.call(null,t,0)}catch(e){return d.call(this,t,0)}}}function o(t){if(c===clearTimeout)return clearTimeout(t);if((c===n||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(t);try{return c(t)}catch(e){try{return c.call(null,t)}catch(e){return c.call(this,t)}}}function s(){v&&g&&(v=!1,g.length?f=g.concat(f):_=-1,f.length&&l())}function l(){if(!v){var t=r(s);v=!0;for(var e=f.length;e;){for(g=f,f=[];++_<e;)g&&g[_].run();_=-1,e=f.length}g=null,v=!1,o(t)}}function h(t,e){this.fun=t,this.array=e}function u(){}var d,c,p=e.exports={};!function(){try{d=\"function\"==typeof setTimeout?setTimeout:i}catch(t){d=i}try{c=\"function\"==typeof clearTimeout?clearTimeout:n}catch(t){c=n}}();var g,f=[],v=!1,_=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var a=1;a<arguments.length;a++)e[a-1]=arguments[a];f.push(new h(t,e)),1!==f.length||v||r(l)},h.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=u,p.addListener=u,p.once=u,p.off=u,p.removeListener=u,p.removeAllListeners=u,p.emit=u,p.prependListener=u,p.prependOnceListener=u,p.listeners=function(t){return[]},p.binding=function(t){throw new Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw new Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},{}],2:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./bars\"),n=function(t){return t&&t.__esModule?t:{default:t}}(i),r=function(){};r.prototype=new n.default,r.prototype.extractSeries=function(t,e,a){for(var i,n,r,o=[],s=a.get(\"logscale\"),l=0;l<t.length;l++)i=t[l][0],r=t[l][e],s&&null!==r&&(r[0]<=0||r[1]<=0||r[2]<=0)&&(r=null),null!==r?(n=r[1],null===n||isNaN(n)?o.push([i,n,[n,n]]):o.push([i,n,[r[0],r[2]]])):o.push([i,null,[null,null]]);return o},r.prototype.rollingAverage=function(t,e,a){e=Math.min(e,t.length);var i,n,r,o,s,l,h,u=[];for(n=0,o=0,r=0,s=0,l=0;l<t.length;l++){if(i=t[l][1],h=t[l][2],u[l]=t[l],null===i||isNaN(i)||(n+=h[0],o+=i,r+=h[1],s+=1),l-e>=0){var d=t[l-e];null===d[1]||isNaN(d[1])||(n-=d[2][0],o-=d[1],r-=d[2][1],s-=1)}u[l]=s?[t[l][0],1*o/s,[1*n/s,1*r/s]]:[t[l][0],null,[null,null]]}return u},a.default=r,e.exports=a.default},{\"./bars\":5}],3:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./bars\"),n=function(t){return t&&t.__esModule?t:{default:t}}(i),r=function(){};r.prototype=new n.default,r.prototype.extractSeries=function(t,e,a){for(var i,n,r,o,s=[],l=a.get(\"sigma\"),h=a.get(\"logscale\"),u=0;u<t.length;u++)i=t[u][0],o=t[u][e],h&&null!==o&&(o[0]<=0||o[0]-l*o[1]<=0)&&(o=null),null!==o?(n=o[0],null===n||isNaN(n)?s.push([i,n,[n,n,n]]):(r=l*o[1],s.push([i,n,[n-r,n+r,o[1]]]))):s.push([i,null,[null,null,null]]);return s},r.prototype.rollingAverage=function(t,e,a){e=Math.min(e,t.length);var i,n,r,o,s,l,h,u,d,c=[],p=a.get(\"sigma\");for(i=0;i<t.length;i++){for(s=0,u=0,l=0,n=Math.max(0,i-e+1);n<i+1;n++)null===(r=t[n][1])||isNaN(r)||(l++,s+=r,u+=Math.pow(t[n][2][2],2));l?(h=Math.sqrt(u)/l,d=s/l,c[i]=[t[i][0],d,[d-p*h,d+p*h]]):(o=1==e?t[i][1]:null,c[i]=[t[i][0],o,[o,o]])}return c},a.default=r,e.exports=a.default},{\"./bars\":5}],4:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./bars\"),n=function(t){return t&&t.__esModule?t:{default:t}}(i),r=function(){};r.prototype=new n.default,r.prototype.extractSeries=function(t,e,a){for(var i,n,r,o,s,l,h,u,d=[],c=a.get(\"sigma\"),p=a.get(\"logscale\"),g=0;g<t.length;g++)i=t[g][0],r=t[g][e],p&&null!==r&&(r[0]<=0||r[1]<=0)&&(r=null),null!==r?(o=r[0],s=r[1],null===o||isNaN(o)?d.push([i,o,[o,o,o,s]]):(l=s?o/s:0,h=s?c*Math.sqrt(l*(1-l)/s):1,u=100*h,n=100*l,d.push([i,n,[n-u,n+u,o,s]]))):d.push([i,null,[null,null,null,null]]);return d},r.prototype.rollingAverage=function(t,e,a){e=Math.min(e,t.length);var i,n,r,o,s=[],l=a.get(\"sigma\"),h=a.get(\"wilsonInterval\"),u=0,d=0;for(r=0;r<t.length;r++){u+=t[r][2][2],d+=t[r][2][3],r-e>=0&&(u-=t[r-e][2][2],d-=t[r-e][2][3]);var c=t[r][0],p=d?u/d:0;if(h)if(d){var g=p<0?0:p,f=d,v=l*Math.sqrt(g*(1-g)/f+l*l/(4*f*f)),_=1+l*l/d;i=(g+l*l/(2*d)-v)/_,n=(g+l*l/(2*d)+v)/_,s[r]=[c,100*g,[100*i,100*n]]}else s[r]=[c,0,[0,0]];else o=d?l*Math.sqrt(p*(1-p)/d):1,s[r]=[c,100*p,[100*(p-o),100*(p+o)]]}return s},a.default=r,e.exports=a.default},{\"./bars\":5}],5:[function(t,e,a){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(a,\"__esModule\",{value:!0});var n=t(\"./datahandler\"),r=i(n),o=t(\"../dygraph-layout\"),s=i(o),l=function(){r.default.call(this)};l.prototype=new r.default,l.prototype.extractSeries=function(t,e,a){},l.prototype.rollingAverage=function(t,e,a){},l.prototype.onPointsCreated_=function(t,e){for(var a=0;a<t.length;++a){var i=t[a],n=e[a];n.y_top=NaN,n.y_bottom=NaN,n.yval_minus=r.default.parseFloat(i[2][0]),n.yval_plus=r.default.parseFloat(i[2][1])}},l.prototype.getExtremeYValues=function(t,e,a){for(var i,n=null,r=null,o=t.length-1,s=0;s<=o;s++)if(null!==(i=t[s][1])&&!isNaN(i)){var l=t[s][2][0],h=t[s][2][1];l>i&&(l=i),h<i&&(h=i),(null===r||h>r)&&(r=h),(null===n||l<n)&&(n=l)}return[n,r]},l.prototype.onLineEvaluated=function(t,e,a){for(var i,n=0;n<t.length;n++)i=t[n],i.y_top=s.default.calcYNormal_(e,i.yval_minus,a),i.y_bottom=s.default.calcYNormal_(e,i.yval_plus,a)},a.default=l,e.exports=a.default},{\"../dygraph-layout\":13,\"./datahandler\":6}],6:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=function(){},n=i;n.X=0,n.Y=1,n.EXTRAS=2,n.prototype.extractSeries=function(t,e,a){},n.prototype.seriesToPoints=function(t,e,a){for(var i=[],r=0;r<t.length;++r){var o=t[r],s=o[1],l=null===s?null:n.parseFloat(s),h={x:NaN,y:NaN,xval:n.parseFloat(o[0]),yval:l,name:e,idx:r+a,canvasx:NaN,canvasy:NaN};i.push(h)}return this.onPointsCreated_(t,i),i},n.prototype.onPointsCreated_=function(t,e){},n.prototype.rollingAverage=function(t,e,a){},n.prototype.getExtremeYValues=function(t,e,a){},n.prototype.onLineEvaluated=function(t,e,a){},n.parseFloat=function(t){return null===t?NaN:t},a.default=i,e.exports=a.default},{}],7:[function(t,e,a){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(a,\"__esModule\",{value:!0});var n=t(\"./datahandler\"),r=(i(n),t(\"./default\")),o=i(r),s=function(){};s.prototype=new o.default,s.prototype.extractSeries=function(t,e,a){for(var i,n,r,o,s,l,h=[],u=a.get(\"logscale\"),d=0;d<t.length;d++)i=t[d][0],r=t[d][e],u&&null!==r&&(r[0]<=0||r[1]<=0)&&(r=null),null!==r?(o=r[0],s=r[1],null===o||isNaN(o)?h.push([i,o,[o,s]]):(l=s?o/s:0,n=100*l,h.push([i,n,[o,s]]))):h.push([i,null,[null,null]]);return h},s.prototype.rollingAverage=function(t,e,a){e=Math.min(e,t.length);var i,n=[],r=0,o=0;for(i=0;i<t.length;i++){r+=t[i][2][0],o+=t[i][2][1],i-e>=0&&(r-=t[i-e][2][0],o-=t[i-e][2][1]);var s=t[i][0],l=o?r/o:0;n[i]=[s,100*l]}return n},a.default=s,e.exports=a.default},{\"./datahandler\":6,\"./default\":8}],8:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./datahandler\"),n=function(t){return t&&t.__esModule?t:{default:t}}(i),r=function(){};r.prototype=new n.default,r.prototype.extractSeries=function(t,e,a){for(var i=[],n=a.get(\"logscale\"),r=0;r<t.length;r++){var o=t[r][0],s=t[r][e];n&&s<=0&&(s=null),i.push([o,s])}return i},r.prototype.rollingAverage=function(t,e,a){e=Math.min(e,t.length);var i,n,r,o,s,l=[];if(1==e)return t;for(i=0;i<t.length;i++){for(o=0,s=0,n=Math.max(0,i-e+1);n<i+1;n++)null===(r=t[n][1])||isNaN(r)||(s++,o+=t[n][1]);l[i]=s?[t[i][0],o/s]:[t[i][0],null]}return l},r.prototype.getExtremeYValues=function(t,e,a){for(var i,n=null,r=null,o=t.length-1,s=0;s<=o;s++)null===(i=t[s][1])||isNaN(i)||((null===r||i>r)&&(r=i),(null===n||i<n)&&(n=i));return[n,r]},a.default=r,e.exports=a.default},{\"./datahandler\":6}],9:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./dygraph-utils\"),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(i),r=t(\"./dygraph\"),o=function(t){return t&&t.__esModule?t:{default:t}}(r),s=function(t,e,a,i){if(this.dygraph_=t,this.layout=i,this.element=e,this.elementContext=a,this.height=t.height_,this.width=t.width_,!n.isCanvasSupported(this.element))throw\"Canvas is not supported.\";this.area=i.getPlotArea();var r=this.dygraph_.canvas_ctx_;r.beginPath(),r.rect(this.area.x,this.area.y,this.area.w,this.area.h),r.clip(),r=this.dygraph_.hidden_ctx_,r.beginPath(),r.rect(this.area.x,this.area.y,this.area.w,this.area.h),r.clip()};s.prototype.clear=function(){this.elementContext.clearRect(0,0,this.width,this.height)},s.prototype.render=function(){this._updatePoints(),this._renderLineChart()},s._getIteratorPredicate=function(t){return t?s._predicateThatSkipsEmptyPoints:null},s._predicateThatSkipsEmptyPoints=function(t,e){return null!==t[e].yval},s._drawStyledLine=function(t,e,a,i,r,o,l){var h=t.dygraph,u=h.getBooleanOption(\"stepPlot\",t.setName);n.isArrayLike(i)||(i=null);var d=h.getBooleanOption(\"drawGapEdgePoints\",t.setName),c=t.points,p=t.setName,g=n.createIterator(c,0,c.length,s._getIteratorPredicate(h.getBooleanOption(\"connectSeparatedPoints\",p))),f=i&&i.length>=2,v=t.drawingContext;v.save(),f&&v.setLineDash&&v.setLineDash(i);var _=s._drawSeries(t,g,a,l,r,d,u,e);s._drawPointsOnLine(t,_,o,e,l),f&&v.setLineDash&&v.setLineDash([]),v.restore()},s._drawSeries=function(t,e,a,i,n,r,o,s){var l,h,u=null,d=null,c=null,p=[],g=!0,f=t.drawingContext;f.beginPath(),f.strokeStyle=s,f.lineWidth=a;for(var v=e.array_,_=e.end_,y=e.predicate_,x=e.start_;x<_;x++){if(h=v[x],y){for(;x<_&&!y(v,x);)x++;if(x==_)break;h=v[x]}if(null===h.canvasy||h.canvasy!=h.canvasy)o&&null!==u&&(f.moveTo(u,d),f.lineTo(h.canvasx,d)),u=d=null;else{if(l=!1,r||null===u){e.nextIdx_=x,e.next(),c=e.hasNext?e.peek.canvasy:null;var m=null===c||c!=c;l=null===u&&m,r&&(!g&&null===u||e.hasNext&&m)&&(l=!0)}null!==u?a&&(o&&(f.moveTo(u,d),f.lineTo(h.canvasx,d)),f.lineTo(h.canvasx,h.canvasy)):f.moveTo(h.canvasx,h.canvasy),(n||l)&&p.push([h.canvasx,h.canvasy,h.idx]),u=h.canvasx,d=h.canvasy}g=!1}return f.stroke(),p},s._drawPointsOnLine=function(t,e,a,i,n){for(var r=t.drawingContext,o=0;o<e.length;o++){var s=e[o];r.save(),a.call(t.dygraph,t.dygraph,t.setName,r,s[0],s[1],i,n,s[2]),r.restore()}},s.prototype._updatePoints=function(){for(var t=this.layout.points,e=t.length;e--;)for(var a=t[e],i=a.length;i--;){var n=a[i];n.canvasx=this.area.w*n.x+this.area.x,n.canvasy=this.area.h*n.y+this.area.y}},s.prototype._renderLineChart=function(t,e){var a,i,r=e||this.elementContext,o=this.layout.points,s=this.layout.setNames;this.colors=this.dygraph_.colorsMap_;var l=this.dygraph_.getOption(\"plotter\"),h=l;n.isArrayLike(h)||(h=[h]);var u={};for(a=0;a<s.length;a++){i=s[a];var d=this.dygraph_.getOption(\"plotter\",i);d!=l&&(u[i]=d)}for(a=0;a<h.length;a++)for(var c=h[a],p=a==h.length-1,g=0;g<o.length;g++)if(i=s[g],!t||i==t){var f=o[g],v=c;if(i in u){if(!p)continue;v=u[i]}var _=this.colors[i],y=this.dygraph_.getOption(\"strokeWidth\",i);r.save(),r.strokeStyle=_,r.lineWidth=y,v({points:f,setName:i,drawingContext:r,color:_,strokeWidth:y,dygraph:this.dygraph_,axis:this.dygraph_.axisPropertiesForSeries(i),plotArea:this.area,seriesIndex:g,seriesCount:o.length,singleSeriesName:t,allSeriesPoints:o}),r.restore()}},s._Plotters={linePlotter:function(t){s._linePlotter(t)},fillPlotter:function(t){s._fillPlotter(t)},errorPlotter:function(t){s._errorPlotter(t)}},s._linePlotter=function(t){var e=t.dygraph,a=t.setName,i=t.strokeWidth,r=e.getNumericOption(\"strokeBorderWidth\",a),o=e.getOption(\"drawPointCallback\",a)||n.Circles.DEFAULT,l=e.getOption(\"strokePattern\",a),h=e.getBooleanOption(\"drawPoints\",a),u=e.getNumericOption(\"pointSize\",a);r&&i&&s._drawStyledLine(t,e.getOption(\"strokeBorderColor\",a),i+2*r,l,h,o,u),s._drawStyledLine(t,t.color,i,l,h,o,u)},s._errorPlotter=function(t){var e=t.dygraph,a=t.setName;if(e.getBooleanOption(\"errorBars\")||e.getBooleanOption(\"customBars\")){e.getBooleanOption(\"fillGraph\",a)&&console.warn(\"Can't use fillGraph option with error bars\");var i,r=t.drawingContext,o=t.color,l=e.getNumericOption(\"fillAlpha\",a),h=e.getBooleanOption(\"stepPlot\",a),u=t.points,d=n.createIterator(u,0,u.length,s._getIteratorPredicate(e.getBooleanOption(\"connectSeparatedPoints\",a))),c=NaN,p=NaN,g=[-1,-1],f=n.toRGB_(o),v=\"rgba(\"+f.r+\",\"+f.g+\",\"+f.b+\",\"+l+\")\";r.fillStyle=v,r.beginPath();for(var _=function(t){return null===t||void 0===t||isNaN(t)};d.hasNext;){var y=d.next();!h&&_(y.y)||h&&!isNaN(p)&&_(p)?c=NaN:(i=[y.y_bottom,y.y_top],h&&(p=y.y),isNaN(i[0])&&(i[0]=y.y),isNaN(i[1])&&(i[1]=y.y),i[0]=t.plotArea.h*i[0]+t.plotArea.y,i[1]=t.plotArea.h*i[1]+t.plotArea.y,isNaN(c)||(h?(r.moveTo(c,g[0]),r.lineTo(y.canvasx,g[0]),r.lineTo(y.canvasx,g[1])):(r.moveTo(c,g[0]),r.lineTo(y.canvasx,i[0]),r.lineTo(y.canvasx,i[1])),r.lineTo(c,g[1]),r.closePath()),g=i,c=y.canvasx)}r.fill()}},s._fastCanvasProxy=function(t){var e=[],a=null,i=null,n=0,r=function(t){if(!(e.length<=1)){for(var a=e.length-1;a>0;a--){var i=e[a];if(2==i[0]){var n=e[a-1];n[1]==i[1]&&n[2]==i[2]&&e.splice(a,1)}}for(var a=0;a<e.length-1;){var i=e[a];2==i[0]&&2==e[a+1][0]?e.splice(a,1):a++}if(e.length>2&&!t){var r=0;2==e[0][0]&&r++;for(var o=null,s=null,a=r;a<e.length;a++){var i=e[a];if(1==i[0])if(null===o&&null===s)o=a,s=a;else{var l=i[2];l<e[o][2]?o=a:l>e[s][2]&&(s=a)}}var h=e[o],u=e[s];e.splice(r,e.length-r),o<s?(e.push(h),e.push(u)):o>s?(e.push(u),e.push(h)):e.push(h)}}},o=function(a){r(a);for(var o=0,s=e.length;o<s;o++){var l=e[o];1==l[0]?t.lineTo(l[1],l[2]):2==l[0]&&t.moveTo(l[1],l[2])}e.length&&(i=e[e.length-1][1]),n+=e.length,e=[]},s=function(t,n,r){var s=Math.round(n);if(null===a||s!=a){var l=a-i>1,h=s-a>1;o(l||h),a=s}e.push([t,n,r])};return{moveTo:function(t,e){s(2,t,e)},lineTo:function(t,e){s(1,t,e)},stroke:function(){o(!0),t.stroke()},fill:function(){o(!0),t.fill()},beginPath:function(){o(!0),t.beginPath()},closePath:function(){o(!0),t.closePath()},_count:function(){return n}}},s._fillPlotter=function(t){if(!t.singleSeriesName&&0===t.seriesIndex){for(var e=t.dygraph,a=e.getLabels().slice(1),i=a.length;i>=0;i--)e.visibility()[i]||a.splice(i,1);if(function(){for(var t=0;t<a.length;t++)if(e.getBooleanOption(\"fillGraph\",a[t]))return!0;return!1}())for(var r,l,h=t.plotArea,u=t.allSeriesPoints,d=u.length,c=e.getBooleanOption(\"stackedGraph\"),p=e.getColors(),g={},f=function(t,e,a,i){if(t.lineTo(e,a),c)for(var n=i.length-1;n>=0;n--){var r=i[n];t.lineTo(r[0],r[1])}},v=d-1;v>=0;v--){var _=t.drawingContext,y=a[v];if(e.getBooleanOption(\"fillGraph\",y)){var x=e.getNumericOption(\"fillAlpha\",y),m=e.getBooleanOption(\"stepPlot\",y),b=p[v],w=e.axisPropertiesForSeries(y),A=1+w.minyval*w.yscale;A<0?A=0:A>1&&(A=1),A=h.h*A+h.y;var O,D=u[v],E=n.createIterator(D,0,D.length,s._getIteratorPredicate(e.getBooleanOption(\"connectSeparatedPoints\",y))),L=NaN,T=[-1,-1],S=n.toRGB_(b),P=\"rgba(\"+S.r+\",\"+S.g+\",\"+S.b+\",\"+x+\")\";_.fillStyle=P,_.beginPath();var C,M=!0;(D.length>2*e.width_||o.default.FORCE_FAST_PROXY)&&(_=s._fastCanvasProxy(_));for(var N,F=[];E.hasNext;)if(N=E.next(),n.isOK(N.y)||m){if(c){if(!M&&C==N.xval)continue;M=!1,C=N.xval,r=g[N.canvasx];var k;k=void 0===r?A:l?r[0]:r,O=[N.canvasy,k],m?-1===T[0]?g[N.canvasx]=[N.canvasy,A]:g[N.canvasx]=[N.canvasy,T[0]]:g[N.canvasx]=N.canvasy}else O=isNaN(N.canvasy)&&m?[h.y+h.h,A]:[N.canvasy,A];isNaN(L)?(_.moveTo(N.canvasx,O[1]),_.lineTo(N.canvasx,O[0])):(m?(_.lineTo(N.canvasx,T[0]),_.lineTo(N.canvasx,O[0])):_.lineTo(N.canvasx,O[0]),c&&(F.push([L,T[1]]),l&&r?F.push([N.canvasx,r[1]]):F.push([N.canvasx,O[1]]))),T=O,L=N.canvasx}else f(_,L,T[1],F),F=[],L=NaN,null===N.y_stacked||isNaN(N.y_stacked)||(g[N.canvasx]=h.h*N.y_stacked+h.y);l=m,O&&N&&(f(_,N.canvasx,O[1],F),F=[]),_.fill()}}}},a.default=s,e.exports=a.default},{\"./dygraph\":18,\"./dygraph-utils\":17}],10:[function(t,e,a){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}Object.defineProperty(a,\"__esModule\",{value:!0});var r=t(\"./dygraph-tickers\"),o=n(r),s=t(\"./dygraph-interaction-model\"),l=i(s),h=t(\"./dygraph-canvas\"),u=i(h),d=t(\"./dygraph-utils\"),c=n(d),p={highlightCircleSize:3,highlightSeriesOpts:null,highlightSeriesBackgroundAlpha:.5,highlightSeriesBackgroundColor:\"rgb(255, 255, 255)\",labelsSeparateLines:!1,labelsShowZeroValues:!0,labelsKMB:!1,labelsKMG2:!1,showLabelsOnHighlight:!0,digitsAfterDecimal:2,maxNumberWidth:6,sigFigs:null,strokeWidth:1,strokeBorderWidth:0,strokeBorderColor:\"white\",axisTickSize:3,axisLabelFontSize:14,rightGap:5,showRoller:!1,xValueParser:void 0,delimiter:\",\",sigma:2,errorBars:!1,fractions:!1,wilsonInterval:!0,customBars:!1,fillGraph:!1,fillAlpha:.15,connectSeparatedPoints:!1,stackedGraph:!1,stackedGraphNaNFill:\"all\",hideOverlayOnMouseOut:!0,legend:\"onmouseover\",stepPlot:!1,xRangePad:0,yRangePad:null,drawAxesAtZero:!1,titleHeight:28,xLabelHeight:18,yLabelWidth:18,axisLineColor:\"black\",axisLineWidth:.3,gridLineWidth:.3,axisLabelWidth:50,gridLineColor:\"rgb(128,128,128)\",interactionModel:l.default.defaultModel,animatedZooms:!1,showRangeSelector:!1,rangeSelectorHeight:40,rangeSelectorPlotStrokeColor:\"#808FAB\",rangeSelectorPlotFillGradientColor:\"white\",rangeSelectorPlotFillColor:\"#A7B1C4\",rangeSelectorBackgroundStrokeColor:\"gray\",rangeSelectorBackgroundLineWidth:1,rangeSelectorPlotLineWidth:1.5,rangeSelectorForegroundStrokeColor:\"black\",rangeSelectorForegroundLineWidth:1,rangeSelectorAlpha:.6,showInRangeSelector:null,plotter:[u.default._fillPlotter,u.default._errorPlotter,u.default._linePlotter],plugins:[],axes:{x:{pixelsPerLabel:70,axisLabelWidth:60,axisLabelFormatter:c.dateAxisLabelFormatter,valueFormatter:c.dateValueFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:o.dateTicker},y:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:c.numberValueFormatter,axisLabelFormatter:c.numberAxisLabelFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:o.numericTicks},y2:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:c.numberValueFormatter,axisLabelFormatter:c.numberAxisLabelFormatter,drawAxis:!0,drawGrid:!1,independentTicks:!1,ticker:o.numericTicks}}};a.default=p,e.exports=a.default},{\"./dygraph-canvas\":9,\"./dygraph-interaction-model\":12,\"./dygraph-tickers\":16,\"./dygraph-utils\":17}],11:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./dygraph\"),n=function(t){return t&&t.__esModule?t:{default:t}}(i),r=function(t){this.container=t};r.prototype.draw=function(t,e){this.container.innerHTML=\"\",void 0!==this.date_graph&&this.date_graph.destroy(),this.date_graph=new n.default(this.container,t,e)},r.prototype.setSelection=function(t){var e=!1;t.length&&(e=t[0].row),this.date_graph.setSelection(e)},r.prototype.getSelection=function(){var t=[],e=this.date_graph.getSelection();if(e<0)return t;for(var a=this.date_graph.layout_.points,i=0;i<a.length;++i)t.push({row:e,column:i+1});return t},a.default=r,e.exports=a.default},{\"./dygraph\":18}],12:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./dygraph-utils\"),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(i),r={};r.maybeTreatMouseOpAsClick=function(t,e,a){a.dragEndX=n.dragGetX_(t,a),a.dragEndY=n.dragGetY_(t,a);var i=Math.abs(a.dragEndX-a.dragStartX),o=Math.abs(a.dragEndY-a.dragStartY);i<2&&o<2&&void 0!==e.lastx_&&-1!=e.lastx_&&r.treatMouseOpAsClick(e,t,a),a.regionWidth=i,a.regionHeight=o},r.startPan=function(t,e,a){var i,r;a.isPanning=!0;var o=e.xAxisRange();if(e.getOptionForAxis(\"logscale\",\"x\")?(a.initialLeftmostDate=n.log10(o[0]),a.dateRange=n.log10(o[1])-n.log10(o[0])):(a.initialLeftmostDate=o[0],a.dateRange=o[1]-o[0]),a.xUnitsPerPixel=a.dateRange/(e.plotter_.area.w-1),e.getNumericOption(\"panEdgeFraction\")){var s=e.width_*e.getNumericOption(\"panEdgeFraction\"),l=e.xAxisExtremes(),h=e.toDomXCoord(l[0])-s,u=e.toDomXCoord(l[1])+s,d=e.toDataXCoord(h),c=e.toDataXCoord(u);a.boundedDates=[d,c];var p=[],g=e.height_*e.getNumericOption(\"panEdgeFraction\");for(i=0;i<e.axes_.length;i++){r=e.axes_[i];var f=r.extremeRange,v=e.toDomYCoord(f[0],i)+g,_=e.toDomYCoord(f[1],i)-g,y=e.toDataYCoord(v,i),x=e.toDataYCoord(_,i);p[i]=[y,x]}a.boundedValues=p}for(a.is2DPan=!1,a.axes=[],i=0;i<e.axes_.length;i++){r=e.axes_[i];var m={},b=e.yAxisRange(i);e.attributes_.getForAxis(\"logscale\",i)?(m.initialTopValue=n.log10(b[1]),m.dragValueRange=n.log10(b[1])-n.log10(b[0])):(m.initialTopValue=b[1],m.dragValueRange=b[1]-b[0]),m.unitsPerPixel=m.dragValueRange/(e.plotter_.area.h-1),a.axes.push(m),r.valueRange&&(a.is2DPan=!0)}},r.movePan=function(t,e,a){a.dragEndX=n.dragGetX_(t,a),a.dragEndY=n.dragGetY_(t,a);var i=a.initialLeftmostDate-(a.dragEndX-a.dragStartX)*a.xUnitsPerPixel;a.boundedDates&&(i=Math.max(i,a.boundedDates[0]));var r=i+a.dateRange;if(a.boundedDates&&r>a.boundedDates[1]&&(i-=r-a.boundedDates[1],r=i+a.dateRange),e.getOptionForAxis(\"logscale\",\"x\")?e.dateWindow_=[Math.pow(n.LOG_SCALE,i),Math.pow(n.LOG_SCALE,r)]:e.dateWindow_=[i,r],a.is2DPan)for(var o=a.dragEndY-a.dragStartY,s=0;s<e.axes_.length;s++){var l=e.axes_[s],h=a.axes[s],u=o*h.unitsPerPixel,d=a.boundedValues?a.boundedValues[s]:null,c=h.initialTopValue+u;d&&(c=Math.min(c,d[1]));var p=c-h.dragValueRange;d&&p<d[0]&&(c-=p-d[0],p=c-h.dragValueRange),e.attributes_.getForAxis(\"logscale\",s)?l.valueRange=[Math.pow(n.LOG_SCALE,p),Math.pow(n.LOG_SCALE,c)]:l.valueRange=[p,c]}e.drawGraph_(!1)},r.endPan=r.maybeTreatMouseOpAsClick,r.startZoom=function(t,e,a){a.isZooming=!0,a.zoomMoved=!1},r.moveZoom=function(t,e,a){a.zoomMoved=!0,a.dragEndX=n.dragGetX_(t,a),a.dragEndY=n.dragGetY_(t,a);var i=Math.abs(a.dragStartX-a.dragEndX),r=Math.abs(a.dragStartY-a.dragEndY);a.dragDirection=i<r/2?n.VERTICAL:n.HORIZONTAL,e.drawZoomRect_(a.dragDirection,a.dragStartX,a.dragEndX,a.dragStartY,a.dragEndY,a.prevDragDirection,a.prevEndX,a.prevEndY),a.prevEndX=a.dragEndX,a.prevEndY=a.dragEndY,a.prevDragDirection=a.dragDirection},r.treatMouseOpAsClick=function(t,e,a){for(var i=t.getFunctionOption(\"clickCallback\"),n=t.getFunctionOption(\"pointClickCallback\"),r=null,o=-1,s=Number.MAX_VALUE,l=0;l<t.selPoints_.length;l++){var h=t.selPoints_[l],u=Math.pow(h.canvasx-a.dragEndX,2)+Math.pow(h.canvasy-a.dragEndY,2);!isNaN(u)&&(-1==o||u<s)&&(s=u,o=l)}var d=t.getNumericOption(\"highlightCircleSize\")+2;if(s<=d*d&&(r=t.selPoints_[o]),r){var c={cancelable:!0,point:r,canvasx:a.dragEndX,canvasy:a.dragEndY};if(t.cascadeEvents_(\"pointClick\",c))return;n&&n.call(t,e,r)}var c={cancelable:!0,xval:t.lastx_,pts:t.selPoints_,canvasx:a.dragEndX,canvasy:a.dragEndY};t.cascadeEvents_(\"click\",c)||i&&i.call(t,e,t.lastx_,t.selPoints_)},r.endZoom=function(t,e,a){e.clearZoomRect_(),a.isZooming=!1,r.maybeTreatMouseOpAsClick(t,e,a);var i=e.getArea();if(a.regionWidth>=10&&a.dragDirection==n.HORIZONTAL){var o=Math.min(a.dragStartX,a.dragEndX),s=Math.max(a.dragStartX,a.dragEndX);o=Math.max(o,i.x),s=Math.min(s,i.x+i.w),o<s&&e.doZoomX_(o,s),a.cancelNextDblclick=!0}else if(a.regionHeight>=10&&a.dragDirection==n.VERTICAL){var l=Math.min(a.dragStartY,a.dragEndY),h=Math.max(a.dragStartY,a.dragEndY);l=Math.max(l,i.y),h=Math.min(h,i.y+i.h),l<h&&e.doZoomY_(l,h),a.cancelNextDblclick=!0}a.dragStartX=null,a.dragStartY=null},r.startTouch=function(t,e,a){t.preventDefault(),t.touches.length>1&&(a.startTimeForDoubleTapMs=null);for(var i=[],n=0;n<t.touches.length;n++){var r=t.touches[n];i.push({pageX:r.pageX,pageY:r.pageY,dataX:e.toDataXCoord(r.pageX),dataY:e.toDataYCoord(r.pageY)})}if(a.initialTouches=i,1==i.length)a.initialPinchCenter=i[0],a.touchDirections={x:!0,y:!0};else if(i.length>=2){a.initialPinchCenter={pageX:.5*(i[0].pageX+i[1].pageX),pageY:.5*(i[0].pageY+i[1].pageY),dataX:.5*(i[0].dataX+i[1].dataX),dataY:.5*(i[0].dataY+i[1].dataY)};var o=180/Math.PI*Math.atan2(a.initialPinchCenter.pageY-i[0].pageY,i[0].pageX-a.initialPinchCenter.pageX);o=Math.abs(o),o>90&&(o=90-o),a.touchDirections={x:o<67.5,y:o>22.5}}a.initialRange={x:e.xAxisRange(),y:e.yAxisRange()}},r.moveTouch=function(t,e,a){a.startTimeForDoubleTapMs=null;var i,n=[];for(i=0;i<t.touches.length;i++){var r=t.touches[i];n.push({pageX:r.pageX,pageY:r.pageY})}var o,s=a.initialTouches,l=a.initialPinchCenter;o=1==n.length?n[0]:{pageX:.5*(n[0].pageX+n[1].pageX),pageY:.5*(n[0].pageY+n[1].pageY)};var h={pageX:o.pageX-l.pageX,pageY:o.pageY-l.pageY},u=a.initialRange.x[1]-a.initialRange.x[0],d=a.initialRange.y[0]-a.initialRange.y[1];h.dataX=h.pageX/e.plotter_.area.w*u,h.dataY=h.pageY/e.plotter_.area.h*d;var c,p;if(1==n.length)c=1,p=1;else if(n.length>=2){var g=s[1].pageX-l.pageX;c=(n[1].pageX-o.pageX)/g;var f=s[1].pageY-l.pageY;p=(n[1].pageY-o.pageY)/f}c=Math.min(8,Math.max(.125,c)),p=Math.min(8,Math.max(.125,p));var v=!1;if(a.touchDirections.x&&(e.dateWindow_=[l.dataX-h.dataX+(a.initialRange.x[0]-l.dataX)/c,l.dataX-h.dataX+(a.initialRange.x[1]-l.dataX)/c],v=!0),a.touchDirections.y)for(i=0;i<1;i++){var _=e.axes_[i],y=e.attributes_.getForAxis(\"logscale\",i);y||(_.valueRange=[l.dataY-h.dataY+(a.initialRange.y[0]-l.dataY)/p,l.dataY-h.dataY+(a.initialRange.y[1]-l.dataY)/p],v=!0)}if(e.drawGraph_(!1),v&&n.length>1&&e.getFunctionOption(\"zoomCallback\")){var x=e.xAxisRange();e.getFunctionOption(\"zoomCallback\").call(e,x[0],x[1],e.yAxisRanges())}},r.endTouch=function(t,e,a){if(0!==t.touches.length)r.startTouch(t,e,a);else if(1==t.changedTouches.length){var i=(new Date).getTime(),n=t.changedTouches[0];a.startTimeForDoubleTapMs&&i-a.startTimeForDoubleTapMs<500&&a.doubleTapX&&Math.abs(a.doubleTapX-n.screenX)<50&&a.doubleTapY&&Math.abs(a.doubleTapY-n.screenY)<50?e.resetZoom():(a.startTimeForDoubleTapMs=i,a.doubleTapX=n.screenX,a.doubleTapY=n.screenY)}};var o=function(t,e,a){return t<e?e-t:t>a?t-a:0},s=function(t,e){var a=n.findPos(e.canvas_),i={left:a.x,right:a.x+e.canvas_.offsetWidth,top:a.y,bottom:a.y+e.canvas_.offsetHeight},r={x:n.pageX(t),y:n.pageY(t)},s=o(r.x,i.left,i.right),l=o(r.y,i.top,i.bottom);return Math.max(s,l)};r.defaultModel={mousedown:function(t,e,a){if(!t.button||2!=t.button){a.initializeMouseDown(t,e,a),t.altKey||t.shiftKey?r.startPan(t,e,a):r.startZoom(t,e,a);var i=function(t){if(a.isZooming){s(t,e)<100?r.moveZoom(t,e,a):null!==a.dragEndX&&(a.dragEndX=null,a.dragEndY=null,e.clearZoomRect_())}else a.isPanning&&r.movePan(t,e,a)},o=function t(o){a.isZooming?null!==a.dragEndX?r.endZoom(o,e,a):r.maybeTreatMouseOpAsClick(o,e,a):a.isPanning&&r.endPan(o,e,a),n.removeEvent(document,\"mousemove\",i),n.removeEvent(document,\"mouseup\",t),a.destroy()};e.addAndTrackEvent(document,\"mousemove\",i),e.addAndTrackEvent(document,\"mouseup\",o)}},willDestroyContextMyself:!0,touchstart:function(t,e,a){r.startTouch(t,e,a)},touchmove:function(t,e,a){r.moveTouch(t,e,a)},touchend:function(t,e,a){r.endTouch(t,e,a)},dblclick:function(t,e,a){if(a.cancelNextDblclick)return void(a.cancelNextDblclick=!1);var i={canvasx:a.dragEndX,canvasy:a.dragEndY,cancelable:!0};e.cascadeEvents_(\"dblclick\",i)||t.altKey||t.shiftKey||e.resetZoom()}},r.nonInteractiveModel_={mousedown:function(t,e,a){a.initializeMouseDown(t,e,a)},mouseup:r.maybeTreatMouseOpAsClick},r.dragIsPanInteractionModel={mousedown:function(t,e,a){a.initializeMouseDown(t,e,a),r.startPan(t,e,a)},mousemove:function(t,e,a){a.isPanning&&r.movePan(t,e,a)},mouseup:function(t,e,a){a.isPanning&&r.endPan(t,e,a)}},a.default=r,e.exports=a.default},{\"./dygraph-utils\":17}],13:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./dygraph-utils\"),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(i),r=function(t){this.dygraph_=t,this.points=[],this.setNames=[],this.annotations=[],this.yAxes_=null,this.xTicks_=null,this.yTicks_=null};r.prototype.addDataset=function(t,e){this.points.push(e),this.setNames.push(t)},r.prototype.getPlotArea=function(){return this.area_},r.prototype.computePlotArea=function(){var t={x:0,y:0};t.w=this.dygraph_.width_-t.x-this.dygraph_.getOption(\"rightGap\"),t.h=this.dygraph_.height_;var e={chart_div:this.dygraph_.graphDiv,reserveSpaceLeft:function(e){var a={x:t.x,y:t.y,w:e,h:t.h};return t.x+=e,t.w-=e,a},reserveSpaceRight:function(e){var a={x:t.x+t.w-e,y:t.y,w:e,h:t.h};return t.w-=e,a},reserveSpaceTop:function(e){var a={x:t.x,y:t.y,w:t.w,h:e};return t.y+=e,t.h-=e,a},reserveSpaceBottom:function(e){var a={x:t.x,y:t.y+t.h-e,w:t.w,h:e};return t.h-=e,a},chartRect:function(){return{x:t.x,y:t.y,w:t.w,h:t.h}}};this.dygraph_.cascadeEvents_(\"layout\",e),this.area_=t},r.prototype.setAnnotations=function(t){this.annotations=[];for(var e=this.dygraph_.getOption(\"xValueParser\")||function(t){return t},a=0;a<t.length;a++){var i={};if(!t[a].xval&&void 0===t[a].x)return void console.error(\"Annotations must have an 'x' property\");if(t[a].icon&&(!t[a].hasOwnProperty(\"width\")||!t[a].hasOwnProperty(\"height\")))return void console.error(\"Must set width and height when setting annotation.icon property\");n.update(i,t[a]),i.xval||(i.xval=e(i.x)),this.annotations.push(i)}},r.prototype.setXTicks=function(t){this.xTicks_=t},r.prototype.setYAxes=function(t){this.yAxes_=t},r.prototype.evaluate=function(){this._xAxis={},this._evaluateLimits(),this._evaluateLineCharts(),this._evaluateLineTicks(),this._evaluateAnnotations()},r.prototype._evaluateLimits=function(){var t=this.dygraph_.xAxisRange();this._xAxis.minval=t[0],this._xAxis.maxval=t[1];var e=t[1]-t[0];this._xAxis.scale=0!==e?1/e:1,this.dygraph_.getOptionForAxis(\"logscale\",\"x\")&&(this._xAxis.xlogrange=n.log10(this._xAxis.maxval)-n.log10(this._xAxis.minval),this._xAxis.xlogscale=0!==this._xAxis.xlogrange?1/this._xAxis.xlogrange:1);for(var a=0;a<this.yAxes_.length;a++){var i=this.yAxes_[a];i.minyval=i.computedValueRange[0],i.maxyval=i.computedValueRange[1],i.yrange=i.maxyval-i.minyval,i.yscale=0!==i.yrange?1/i.yrange:1,this.dygraph_.getOption(\"logscale\")&&(i.ylogrange=n.log10(i.maxyval)-n.log10(i.minyval),i.ylogscale=0!==i.ylogrange?1/i.ylogrange:1,isFinite(i.ylogrange)&&!isNaN(i.ylogrange)||console.error(\"axis \"+a+\" of graph at \"+i.g+\" can't be displayed in log scale for range [\"+i.minyval+\" - \"+i.maxyval+\"]\"))}},r.calcXNormal_=function(t,e,a){return a?(n.log10(t)-n.log10(e.minval))*e.xlogscale:(t-e.minval)*e.scale},r.calcYNormal_=function(t,e,a){if(a){var i=1-(n.log10(e)-n.log10(t.minyval))*t.ylogscale;return isFinite(i)?i:NaN}return 1-(e-t.minyval)*t.yscale},r.prototype._evaluateLineCharts=function(){for(var t=this.dygraph_.getOption(\"stackedGraph\"),e=this.dygraph_.getOptionForAxis(\"logscale\",\"x\"),a=0;a<this.points.length;a++){for(var i=this.points[a],n=this.setNames[a],o=this.dygraph_.getOption(\"connectSeparatedPoints\",n),s=this.dygraph_.axisPropertiesForSeries(n),l=this.dygraph_.attributes_.getForSeries(\"logscale\",n),h=0;h<i.length;h++){var u=i[h];u.x=r.calcXNormal_(u.xval,this._xAxis,e);var d=u.yval;t&&(u.y_stacked=r.calcYNormal_(s,u.yval_stacked,l),\nnull===d||isNaN(d)||(d=u.yval_stacked)),null===d&&(d=NaN,o||(u.yval=NaN)),u.y=r.calcYNormal_(s,d,l)}this.dygraph_.dataHandler_.onLineEvaluated(i,s,l)}},r.prototype._evaluateLineTicks=function(){var t,e,a,i,n,r;for(this.xticks=[],t=0;t<this.xTicks_.length;t++)e=this.xTicks_[t],a=e.label,r=!(\"label_v\"in e),n=r?e.v:e.label_v,(i=this.dygraph_.toPercentXCoord(n))>=0&&i<1&&this.xticks.push({pos:i,label:a,has_tick:r});for(this.yticks=[],t=0;t<this.yAxes_.length;t++)for(var o=this.yAxes_[t],s=0;s<o.ticks.length;s++)e=o.ticks[s],a=e.label,r=!(\"label_v\"in e),n=r?e.v:e.label_v,(i=this.dygraph_.toPercentYCoord(n,t))>0&&i<=1&&this.yticks.push({axis:t,pos:i,label:a,has_tick:r})},r.prototype._evaluateAnnotations=function(){var t,e={};for(t=0;t<this.annotations.length;t++){var a=this.annotations[t];e[a.xval+\",\"+a.series]=a}if(this.annotated_points=[],this.annotations&&this.annotations.length)for(var i=0;i<this.points.length;i++){var n=this.points[i];for(t=0;t<n.length;t++){var r=n[t],o=r.xval+\",\"+r.name;o in e&&(r.annotation=e[o],this.annotated_points.push(r))}}},r.prototype.removeAllDatasets=function(){delete this.points,delete this.setNames,delete this.setPointsLengths,delete this.setPointsOffsets,this.points=[],this.setNames=[],this.setPointsLengths=[],this.setPointsOffsets=[]},a.default=r,e.exports=a.default},{\"./dygraph-utils\":17}],14:[function(t,e,a){(function(t){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=null;if(void 0!==t);a.default=i,e.exports=a.default}).call(this,t(\"_process\"))},{_process:1}],15:[function(t,e,a){(function(i){\"use strict\";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(a,\"__esModule\",{value:!0});var r=t(\"./dygraph-utils\"),o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(r),s=t(\"./dygraph-default-attrs\"),l=n(s),h=t(\"./dygraph-options-reference\"),u=(n(h),function(t){this.dygraph_=t,this.yAxes_=[],this.xAxis_={},this.series_={},this.global_=this.dygraph_.attrs_,this.user_=this.dygraph_.user_attrs_||{},this.labels_=[],this.highlightSeries_=this.get(\"highlightSeriesOpts\")||{},this.reparseSeries()});if(u.AXIS_STRING_MAPPINGS_={y:0,Y:0,y1:0,Y1:0,y2:1,Y2:1},u.axisToIndex_=function(t){if(\"string\"==typeof t){if(u.AXIS_STRING_MAPPINGS_.hasOwnProperty(t))return u.AXIS_STRING_MAPPINGS_[t];throw\"Unknown axis : \"+t}if(\"number\"==typeof t){if(0===t||1===t)return t;throw\"Dygraphs only supports two y-axes, indexed from 0-1.\"}if(t)throw\"Unknown axis : \"+t;return 0},u.prototype.reparseSeries=function(){var t=this.get(\"labels\");if(t){this.labels_=t.slice(1),this.yAxes_=[{series:[],options:{}}],this.xAxis_={options:{}},this.series_={};for(var e=this.user_.series||{},a=0;a<this.labels_.length;a++){var i=this.labels_[a],n=e[i]||{},r=u.axisToIndex_(n.axis);this.series_[i]={idx:a,yAxis:r,options:n},this.yAxes_[r]?this.yAxes_[r].series.push(i):this.yAxes_[r]={series:[i],options:{}}}var s=this.user_.axes||{};o.update(this.yAxes_[0].options,s.y||{}),this.yAxes_.length>1&&o.update(this.yAxes_[1].options,s.y2||{}),o.update(this.xAxis_.options,s.x||{})}},u.prototype.get=function(t){var e=this.getGlobalUser_(t);return null!==e?e:this.getGlobalDefault_(t)},u.prototype.getGlobalUser_=function(t){return this.user_.hasOwnProperty(t)?this.user_[t]:null},u.prototype.getGlobalDefault_=function(t){return this.global_.hasOwnProperty(t)?this.global_[t]:l.default.hasOwnProperty(t)?l.default[t]:null},u.prototype.getForAxis=function(t,e){var a,i;if(\"number\"==typeof e)a=e,i=0===a?\"y\":\"y2\";else{if(\"y1\"==e&&(e=\"y\"),\"y\"==e)a=0;else if(\"y2\"==e)a=1;else{if(\"x\"!=e)throw\"Unknown axis \"+e;a=-1}i=e}var n=-1==a?this.xAxis_:this.yAxes_[a];if(n){var r=n.options;if(r.hasOwnProperty(t))return r[t]}if(\"x\"!==e||\"logscale\"!==t){var o=this.getGlobalUser_(t);if(null!==o)return o}var s=l.default.axes[i];return s.hasOwnProperty(t)?s[t]:this.getGlobalDefault_(t)},u.prototype.getForSeries=function(t,e){if(e===this.dygraph_.getHighlightSeries()&&this.highlightSeries_.hasOwnProperty(t))return this.highlightSeries_[t];if(!this.series_.hasOwnProperty(e))throw\"Unknown series: \"+e;var a=this.series_[e],i=a.options;return i.hasOwnProperty(t)?i[t]:this.getForAxis(t,a.yAxis)},u.prototype.numAxes=function(){return this.yAxes_.length},u.prototype.axisForSeries=function(t){return this.series_[t].yAxis},u.prototype.axisOptions=function(t){return this.yAxes_[t].options},u.prototype.seriesForAxis=function(t){return this.yAxes_[t].series},u.prototype.seriesNames=function(){return this.labels_},void 0!==i);a.default=u,e.exports=a.default}).call(this,t(\"_process\"))},{\"./dygraph-default-attrs\":10,\"./dygraph-options-reference\":14,\"./dygraph-utils\":17,_process:1}],16:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"./dygraph-utils\"),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(i),r=function(t,e,a,i,n,r){return o(t,e,a,function(t){return\"logscale\"!==t&&i(t)},n,r)};a.numericLinearTicks=r;var o=function(t,e,a,i,r,o){var s,l,h,u,c=i(\"pixelsPerLabel\"),p=[];if(o)for(s=0;s<o.length;s++)p.push({v:o[s]});else{if(i(\"logscale\")){u=Math.floor(a/c);var g=n.binarySearch(t,d,1),f=n.binarySearch(e,d,-1);-1==g&&(g=0),-1==f&&(f=d.length-1);var v=null;if(f-g>=u/4){for(var _=f;_>=g;_--){var y=d[_],x=Math.log(y/t)/Math.log(e/t)*a,m={v:y};null===v?v={tickValue:y,pixel_coord:x}:Math.abs(x-v.pixel_coord)>=c?v={tickValue:y,pixel_coord:x}:m.label=\"\",p.push(m)}p.reverse()}}if(0===p.length){var b,w,A=i(\"labelsKMG2\");A?(b=[1,2,4,8,16,32,64,128,256],w=16):(b=[1,2,5,10,20,50,100],w=10);var O,D,E,L=Math.ceil(a/c),T=Math.abs(e-t)/L,S=Math.floor(Math.log(T)/Math.log(w)),P=Math.pow(w,S);for(l=0;l<b.length&&(O=P*b[l],D=Math.floor(t/O)*O,E=Math.ceil(e/O)*O,u=Math.abs(E-D)/O,!(a/u>c));l++);for(D>E&&(O*=-1),s=0;s<=u;s++)h=D+s*O,p.push({v:h})}}var C=i(\"axisLabelFormatter\");for(s=0;s<p.length;s++)void 0===p[s].label&&(p[s].label=C.call(r,p[s].v,0,i,r));return p};a.numericTicks=o;var s=function(t,e,a,i,n,r){var o=c(t,e,a,i);return o>=0?g(t,e,o,i,n):[]};a.dateTicker=s;var l={MILLISECONDLY:0,TWO_MILLISECONDLY:1,FIVE_MILLISECONDLY:2,TEN_MILLISECONDLY:3,FIFTY_MILLISECONDLY:4,HUNDRED_MILLISECONDLY:5,FIVE_HUNDRED_MILLISECONDLY:6,SECONDLY:7,TWO_SECONDLY:8,FIVE_SECONDLY:9,TEN_SECONDLY:10,THIRTY_SECONDLY:11,MINUTELY:12,TWO_MINUTELY:13,FIVE_MINUTELY:14,TEN_MINUTELY:15,THIRTY_MINUTELY:16,HOURLY:17,TWO_HOURLY:18,SIX_HOURLY:19,DAILY:20,TWO_DAILY:21,WEEKLY:22,MONTHLY:23,QUARTERLY:24,BIANNUAL:25,ANNUAL:26,DECADAL:27,CENTENNIAL:28,NUM_GRANULARITIES:29};a.Granularity=l;var h={DATEFIELD_Y:0,DATEFIELD_M:1,DATEFIELD_D:2,DATEFIELD_HH:3,DATEFIELD_MM:4,DATEFIELD_SS:5,DATEFIELD_MS:6,NUM_DATEFIELDS:7},u=[];u[l.MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:1,spacing:1},u[l.TWO_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:2,spacing:2},u[l.FIVE_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:5,spacing:5},u[l.TEN_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:10,spacing:10},u[l.FIFTY_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:50,spacing:50},u[l.HUNDRED_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:100,spacing:100},u[l.FIVE_HUNDRED_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:500,spacing:500},u[l.SECONDLY]={datefield:h.DATEFIELD_SS,step:1,spacing:1e3},u[l.TWO_SECONDLY]={datefield:h.DATEFIELD_SS,step:2,spacing:2e3},u[l.FIVE_SECONDLY]={datefield:h.DATEFIELD_SS,step:5,spacing:5e3},u[l.TEN_SECONDLY]={datefield:h.DATEFIELD_SS,step:10,spacing:1e4},u[l.THIRTY_SECONDLY]={datefield:h.DATEFIELD_SS,step:30,spacing:3e4},u[l.MINUTELY]={datefield:h.DATEFIELD_MM,step:1,spacing:6e4},u[l.TWO_MINUTELY]={datefield:h.DATEFIELD_MM,step:2,spacing:12e4},u[l.FIVE_MINUTELY]={datefield:h.DATEFIELD_MM,step:5,spacing:3e5},u[l.TEN_MINUTELY]={datefield:h.DATEFIELD_MM,step:10,spacing:6e5},u[l.THIRTY_MINUTELY]={datefield:h.DATEFIELD_MM,step:30,spacing:18e5},u[l.HOURLY]={datefield:h.DATEFIELD_HH,step:1,spacing:36e5},u[l.TWO_HOURLY]={datefield:h.DATEFIELD_HH,step:2,spacing:72e5},u[l.SIX_HOURLY]={datefield:h.DATEFIELD_HH,step:6,spacing:216e5},u[l.DAILY]={datefield:h.DATEFIELD_D,step:1,spacing:864e5},u[l.TWO_DAILY]={datefield:h.DATEFIELD_D,step:2,spacing:1728e5},u[l.WEEKLY]={datefield:h.DATEFIELD_D,step:7,spacing:6048e5},u[l.MONTHLY]={datefield:h.DATEFIELD_M,step:1,spacing:2629817280},u[l.QUARTERLY]={datefield:h.DATEFIELD_M,step:3,spacing:216e5*365.2524},u[l.BIANNUAL]={datefield:h.DATEFIELD_M,step:6,spacing:432e5*365.2524},u[l.ANNUAL]={datefield:h.DATEFIELD_Y,step:1,spacing:864e5*365.2524},u[l.DECADAL]={datefield:h.DATEFIELD_Y,step:10,spacing:315578073600},u[l.CENTENNIAL]={datefield:h.DATEFIELD_Y,step:100,spacing:3155780736e3};var d=function(){for(var t=[],e=-39;e<=39;e++)for(var a=Math.pow(10,e),i=1;i<=9;i++){var n=a*i;t.push(n)}return t}(),c=function(t,e,a,i){for(var n=i(\"pixelsPerLabel\"),r=0;r<l.NUM_GRANULARITIES;r++){if(a/p(t,e,r)>=n)return r}return-1},p=function(t,e,a){var i=u[a].spacing;return Math.round(1*(e-t)/i)},g=function(t,e,a,i,r){var o=i(\"axisLabelFormatter\"),s=i(\"labelsUTC\"),d=s?n.DateAccessorsUTC:n.DateAccessorsLocal,c=u[a].datefield,p=u[a].step,g=u[a].spacing,f=new Date(t),v=[];v[h.DATEFIELD_Y]=d.getFullYear(f),v[h.DATEFIELD_M]=d.getMonth(f),v[h.DATEFIELD_D]=d.getDate(f),v[h.DATEFIELD_HH]=d.getHours(f),v[h.DATEFIELD_MM]=d.getMinutes(f),v[h.DATEFIELD_SS]=d.getSeconds(f),v[h.DATEFIELD_MS]=d.getMilliseconds(f);var _=v[c]%p;a==l.WEEKLY&&(_=d.getDay(f)),v[c]-=_;for(var y=c+1;y<h.NUM_DATEFIELDS;y++)v[y]=y===h.DATEFIELD_D?1:0;var x=[],m=d.makeDate.apply(null,v),b=m.getTime();if(a<=l.HOURLY)for(b<t&&(b+=g,m=new Date(b));b<=e;)x.push({v:b,label:o.call(r,m,a,i,r)}),b+=g,m=new Date(b);else for(b<t&&(v[c]+=p,m=d.makeDate.apply(null,v),b=m.getTime());b<=e;)(a>=l.DAILY||d.getHours(m)%p==0)&&x.push({v:b,label:o.call(r,m,a,i,r)}),v[c]+=p,m=d.makeDate.apply(null,v),b=m.getTime();return x};a.getDateAxis=g},{\"./dygraph-utils\":17}],17:[function(t,e,a){\"use strict\";function i(t,e,a){t.removeEventListener(e,a,!1)}function n(t){return t=t||window.event,t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.cancelBubble=!0,t.cancel=!0,t.returnValue=!1,!1}function r(t,e,a){var i,n,r;if(0===e)i=a,n=a,r=a;else{var o=Math.floor(6*t),s=6*t-o,l=a*(1-e),h=a*(1-e*s),u=a*(1-e*(1-s));switch(o){case 1:i=h,n=a,r=l;break;case 2:i=l,n=a,r=u;break;case 3:i=l,n=h,r=a;break;case 4:i=u,n=l,r=a;break;case 5:i=a,n=l,r=h;break;case 6:case 0:i=a,n=u,r=l}}return i=Math.floor(255*i+.5),n=Math.floor(255*n+.5),r=Math.floor(255*r+.5),\"rgb(\"+i+\",\"+n+\",\"+r+\")\"}function o(t){var e=t.getBoundingClientRect(),a=window,i=document.documentElement;return{x:e.left+(a.pageXOffset||i.scrollLeft),y:e.top+(a.pageYOffset||i.scrollTop)}}function s(t){return!t.pageX||t.pageX<0?0:t.pageX}function l(t){return!t.pageY||t.pageY<0?0:t.pageY}function h(t,e){return s(t)-e.px}function u(t,e){return l(t)-e.py}function d(t){return!!t&&!isNaN(t)}function c(t,e){return!!t&&(null!==t.yval&&(null!==t.x&&void 0!==t.x&&(null!==t.y&&void 0!==t.y&&!(isNaN(t.x)||!e&&isNaN(t.y)))))}function p(t,e){var a=Math.min(Math.max(1,e||2),21);return Math.abs(t)<.001&&0!==t?t.toExponential(a-1):t.toPrecision(a)}function g(t){return t<10?\"0\"+t:\"\"+t}function f(t,e,a,i){var n=g(t)+\":\"+g(e);if(a&&(n+=\":\"+g(a),i)){var r=\"\"+i;n+=\".\"+(\"000\"+r).substring(r.length)}return n}function v(t,e){var a=e?tt:$,i=new Date(t),n=a.getFullYear(i),r=a.getMonth(i),o=a.getDate(i),s=a.getHours(i),l=a.getMinutes(i),h=a.getSeconds(i),u=a.getMilliseconds(i),d=\"\"+n,c=g(r+1),p=g(o),v=3600*s+60*l+h+.001*u,_=d+\"/\"+c+\"/\"+p;return v&&(_+=\" \"+f(s,l,h,u)),_}function _(t,e){var a=Math.pow(10,e);return Math.round(t*a)/a}function y(t,e,a,i,n){for(var r=!0;r;){var o=t,s=e,l=a,h=i,u=n;if(r=!1,null!==h&&void 0!==h&&null!==u&&void 0!==u||(h=0,u=s.length-1),h>u)return-1;null!==l&&void 0!==l||(l=0);var d,c=function(t){return t>=0&&t<s.length},p=parseInt((h+u)/2,10),g=s[p];if(g==o)return p;if(g>o){if(l>0&&(d=p-1,c(d)&&s[d]<o))return p;t=o,e=s,a=l,i=h,n=p-1,r=!0,c=p=g=d=void 0}else{if(!(g<o))return-1;if(l<0&&(d=p+1,c(d)&&s[d]>o))return p;t=o,e=s,a=l,i=p+1,n=u,r=!0,c=p=g=d=void 0}}}function x(t){var e,a;if((-1==t.search(\"-\")||-1!=t.search(\"T\")||-1!=t.search(\"Z\"))&&(a=m(t))&&!isNaN(a))return a;if(-1!=t.search(\"-\")){for(e=t.replace(\"-\",\"/\",\"g\");-1!=e.search(\"-\");)e=e.replace(\"-\",\"/\");a=m(e)}else 8==t.length?(e=t.substr(0,4)+\"/\"+t.substr(4,2)+\"/\"+t.substr(6,2),a=m(e)):a=m(t);return a&&!isNaN(a)||console.error(\"Couldn't parse \"+t+\" as a date\"),a}function m(t){return new Date(t).getTime()}function b(t,e){if(void 0!==e&&null!==e)for(var a in e)e.hasOwnProperty(a)&&(t[a]=e[a]);return t}function w(t,e){if(void 0!==e&&null!==e)for(var a in e)e.hasOwnProperty(a)&&(null===e[a]?t[a]=null:A(e[a])?t[a]=e[a].slice():!function(t){return\"object\"==typeof Node?t instanceof Node:\"object\"==typeof t&&\"number\"==typeof t.nodeType&&\"string\"==typeof t.nodeName}(e[a])&&\"object\"==typeof e[a]?(\"object\"==typeof t[a]&&null!==t[a]||(t[a]={}),w(t[a],e[a])):t[a]=e[a]);return t}function A(t){var e=typeof t;return(\"object\"==e||\"function\"==e&&\"function\"==typeof t.item)&&null!==t&&\"number\"==typeof t.length&&3!==t.nodeType}function O(t){return\"object\"==typeof t&&null!==t&&\"function\"==typeof t.getTime}function D(t){for(var e=[],a=0;a<t.length;a++)A(t[a])?e.push(D(t[a])):e.push(t[a]);return e}function E(){return document.createElement(\"canvas\")}function L(t){try{var e=window.devicePixelRatio,a=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return void 0!==e?e/a:1}catch(t){return 1}}function T(t,e,a,i){e=e||0,a=a||t.length,this.hasNext=!0,this.peek=null,this.start_=e,this.array_=t,this.predicate_=i,this.end_=Math.min(t.length,e+a),this.nextIdx_=e-1,this.next()}function S(t,e,a,i){return new T(t,e,a,i)}function P(t,e,a,i){var n,r=0,o=(new Date).getTime();if(t(r),1==e)return void i();var s=e-1;!function l(){r>=e||et.call(window,function(){var e=(new Date).getTime(),h=e-o;n=r,r=Math.floor(h/a);var u=r-n;r+u>s||r>=s?(t(s),i()):(0!==u&&t(r),l())})}()}function C(t,e){var a={};if(t)for(var i=1;i<t.length;i++)a[t[i]]=!0;var n=function(t){for(var e in t)if(t.hasOwnProperty(e)&&!at[e])return!0;return!1};for(var r in e)if(e.hasOwnProperty(r))if(\"highlightSeriesOpts\"==r||a[r]&&!e.series){if(n(e[r]))return!0}else if(\"series\"==r||\"axes\"==r){var o=e[r];for(var s in o)if(o.hasOwnProperty(s)&&n(o[s]))return!0}else if(!at[r])return!0;return!1}function M(t){for(var e=0;e<t.length;e++){var a=t.charAt(e);if(\"\\r\"===a)return e+1<t.length&&\"\\n\"===t.charAt(e+1)?\"\\r\\n\":a;if(\"\\n\"===a)return e+1<t.length&&\"\\r\"===t.charAt(e+1)?\"\\n\\r\":a}return null}function N(t,e){if(null===e||null===t)return!1;for(var a=t;a&&a!==e;)a=a.parentNode;return a===e}function F(t,e){return e<0?1/Math.pow(t,-e):Math.pow(t,e)}function k(t){var e=nt.exec(t);if(!e)return null;var a=parseInt(e[1],10),i=parseInt(e[2],10),n=parseInt(e[3],10);return e[4]?{r:a,g:i,b:n,a:parseFloat(e[4])}:{r:a,g:i,b:n}}function R(t){var e=k(t);if(e)return e;var a=document.createElement(\"div\");a.style.backgroundColor=t,a.style.visibility=\"hidden\",document.body.appendChild(a);var i=window.getComputedStyle(a,null).backgroundColor;return document.body.removeChild(a),k(i)}function I(t){try{(t||document.createElement(\"canvas\")).getContext(\"2d\")}catch(t){return!1}return!0}function H(t,e,a){var i=parseFloat(t);if(!isNaN(i))return i;if(/^ *$/.test(t))return null;if(/^ *nan *$/i.test(t))return NaN;var n=\"Unable to parse '\"+t+\"' as a number\";return void 0!==a&&void 0!==e&&(n+=\" on line \"+(1+(e||0))+\" ('\"+a+\"') of CSV.\"),console.error(n),null}function Y(t,e){var a=e(\"sigFigs\");if(null!==a)return p(t,a);var i,n=e(\"digitsAfterDecimal\"),r=e(\"maxNumberWidth\"),o=e(\"labelsKMB\"),s=e(\"labelsKMG2\");if(i=0!==t&&(Math.abs(t)>=Math.pow(10,r)||Math.abs(t)<Math.pow(10,-n))?t.toExponential(n):\"\"+_(t,n),o||s){var l,h=[],u=[];o&&(l=1e3,h=rt),s&&(o&&console.warn(\"Setting both labelsKMB and labelsKMG2. Pick one!\"),l=1024,h=ot,u=st);for(var d=Math.abs(t),c=F(l,h.length),g=h.length-1;g>=0;g--,c/=l)if(d>=c){i=_(t/c,n)+h[g];break}if(s){var f=String(t.toExponential()).split(\"e-\");2===f.length&&f[1]>=3&&f[1]<=24&&(i=f[1]%3>0?_(f[0]/F(10,f[1]%3),n):Number(f[0]).toFixed(2),i+=u[Math.floor(f[1]/3)-1])}}return i}function X(t,e,a){return Y.call(this,t,a)}function V(t,e,a){var i=a(\"labelsUTC\"),n=i?tt:$,r=n.getFullYear(t),o=n.getMonth(t),s=n.getDate(t),l=n.getHours(t),h=n.getMinutes(t),u=n.getSeconds(t),d=n.getMilliseconds(t);if(e>=G.Granularity.DECADAL)return\"\"+r;if(e>=G.Granularity.MONTHLY)return lt[o]+\"&#160;\"+r;if(0===3600*l+60*h+u+.001*d||e>=G.Granularity.DAILY)return g(s)+\"&#160;\"+lt[o];if(e<G.Granularity.SECONDLY){var c=\"\"+d;return g(u)+\".\"+(\"000\"+c).substring(c.length)}return e>G.Granularity.MINUTELY?f(l,h,u,0):f(l,h,u,d)}function Z(t,e){return v(t,e(\"labelsUTC\"))}Object.defineProperty(a,\"__esModule\",{value:!0}),a.removeEvent=i,a.cancelEvent=n,a.hsvToRGB=r,a.findPos=o,a.pageX=s,a.pageY=l,a.dragGetX_=h,a.dragGetY_=u,a.isOK=d,a.isValidPoint=c,a.floatFormat=p,a.zeropad=g,a.hmsString_=f,a.dateString_=v,a.round_=_,a.binarySearch=y,a.dateParser=x,a.dateStrToMillis=m,a.update=b,a.updateDeep=w,a.isArrayLike=A,a.isDateLike=O,a.clone=D,a.createCanvas=E,a.getContextPixelRatio=L,a.Iterator=T,a.createIterator=S,a.repeatAndCleanup=P,a.isPixelChangingOptionList=C,a.detectLineDelimiter=M,a.isNodeContainedBy=N,a.pow=F,a.toRGB_=R,a.isCanvasSupported=I,a.parseFloat_=H,a.numberValueFormatter=Y,a.numberAxisLabelFormatter=X,a.dateAxisLabelFormatter=V,a.dateValueFormatter=Z;var B=t(\"./dygraph-tickers\"),G=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(B);a.LOG_SCALE=10;var W=Math.log(10);a.LN_TEN=W;var U=function(t){return Math.log(t)/W};a.log10=U;var z=function(t,e,a){var i=U(t),n=U(e),r=i+a*(n-i);return Math.pow(10,r)};a.logRangeFraction=z;var j=[2,2];a.DOTTED_LINE=j;var K=[7,3];a.DASHED_LINE=K;var q=[7,2,2,2];a.DOT_DASH_LINE=q;a.HORIZONTAL=1;a.VERTICAL=2;var Q=function(t){return t.getContext(\"2d\")};a.getContext=Q;var J=function(t,e,a){t.addEventListener(e,a,!1)};a.addEvent=J;var $={getFullYear:function(t){return t.getFullYear()},getMonth:function(t){return t.getMonth()},getDate:function(t){return t.getDate()},getHours:function(t){return t.getHours()},getMinutes:function(t){return t.getMinutes()},getSeconds:function(t){return t.getSeconds()},getMilliseconds:function(t){return t.getMilliseconds()},getDay:function(t){return t.getDay()},makeDate:function(t,e,a,i,n,r,o){return new Date(t,e,a,i,n,r,o)}};a.DateAccessorsLocal=$;var tt={getFullYear:function(t){return t.getUTCFullYear()},getMonth:function(t){return t.getUTCMonth()},getDate:function(t){return t.getUTCDate()},getHours:function(t){return t.getUTCHours()},getMinutes:function(t){return t.getUTCMinutes()},getSeconds:function(t){return t.getUTCSeconds()},getMilliseconds:function(t){return t.getUTCMilliseconds()},getDay:function(t){return t.getUTCDay()},makeDate:function(t,e,a,i,n,r,o){return new Date(Date.UTC(t,e,a,i,n,r,o))}};a.DateAccessorsUTC=tt,T.prototype.next=function(){if(!this.hasNext)return null;for(var t=this.peek,e=this.nextIdx_+1,a=!1;e<this.end_;){if(!this.predicate_||this.predicate_(this.array_,e)){this.peek=this.array_[e],a=!0;break}e++}return this.nextIdx_=e,a||(this.hasNext=!1,this.peek=null),t};var et=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();a.requestAnimFrame=et;var at={annotationClickHandler:!0,annotationDblClickHandler:!0,annotationMouseOutHandler:!0,annotationMouseOverHandler:!0,axisLineColor:!0,axisLineWidth:!0,clickCallback:!0,drawCallback:!0,drawHighlightPointCallback:!0,drawPoints:!0,drawPointCallback:!0,drawGrid:!0,fillAlpha:!0,gridLineColor:!0,gridLineWidth:!0,hideOverlayOnMouseOut:!0,highlightCallback:!0,highlightCircleSize:!0,interactionModel:!0,labelsDiv:!0,labelsKMB:!0,labelsKMG2:!0,labelsSeparateLines:!0,labelsShowZeroValues:!0,legend:!0,panEdgeFraction:!0,pixelsPerYLabel:!0,pointClickCallback:!0,pointSize:!0,rangeSelectorPlotFillColor:!0,rangeSelectorPlotFillGradientColor:!0,rangeSelectorPlotStrokeColor:!0,rangeSelectorBackgroundStrokeColor:!0,rangeSelectorBackgroundLineWidth:!0,rangeSelectorPlotLineWidth:!0,rangeSelectorForegroundStrokeColor:!0,rangeSelectorForegroundLineWidth:!0,rangeSelectorAlpha:!0,showLabelsOnHighlight:!0,showRoller:!0,strokeWidth:!0,underlayCallback:!0,unhighlightCallback:!0,zoomCallback:!0},it={DEFAULT:function(t,e,a,i,n,r,o){a.beginPath(),a.fillStyle=r,a.arc(i,n,o,0,2*Math.PI,!1),a.fill()}};a.Circles=it;var nt=/^rgba?\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})(?:,\\s*([01](?:\\.\\d+)?))?\\)$/,rt=[\"K\",\"M\",\"B\",\"T\",\"Q\"],ot=[\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"],st=[\"m\",\"u\",\"n\",\"p\",\"f\",\"a\",\"z\",\"y\"],lt=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]},{\"./dygraph-tickers\":16}],18:[function(t,e,a){(function(i){\"use strict\";function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}function r(t){return t&&t.__esModule?t:{default:t}}function o(t){var e=t[0],a=e[0];if(\"number\"!=typeof a&&!x.isDateLike(a))throw new Error(\"Expected number or date but got \"+typeof a+\": \"+a+\".\");for(var i=1;i<e.length;i++){var n=e[i];if(null!==n&&void 0!==n&&(\"number\"!=typeof n&&!x.isArrayLike(n)))throw new Error(\"Expected number or array but got \"+typeof n+\": \"+n+\".\")}}Object.defineProperty(a,\"__esModule\",{value:!0});var s=function(){function t(t,e){var a=[],i=!0,n=!1,r=void 0;try{for(var o,s=t[Symbol.iterator]();!(i=(o=s.next()).done)&&(a.push(o.value),!e||a.length!==e);i=!0);}catch(t){n=!0,r=t}finally{try{!i&&s.return&&s.return()}finally{if(n)throw r}}return a}return function(e,a){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,a);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),l=t(\"./dygraph-layout\"),h=r(l),u=t(\"./dygraph-canvas\"),d=r(u),c=t(\"./dygraph-options\"),p=r(c),g=t(\"./dygraph-interaction-model\"),f=r(g),v=t(\"./dygraph-tickers\"),_=n(v),y=t(\"./dygraph-utils\"),x=n(y),m=t(\"./dygraph-default-attrs\"),b=r(m),w=t(\"./dygraph-options-reference\"),A=(r(w),t(\"./iframe-tarp\")),O=r(A),D=t(\"./datahandler/default\"),E=r(D),L=t(\"./datahandler/bars-error\"),T=r(L),S=t(\"./datahandler/bars-custom\"),P=r(S),C=t(\"./datahandler/default-fractions\"),M=r(C),N=t(\"./datahandler/bars-fractions\"),F=r(N),k=t(\"./datahandler/bars\"),R=r(k),I=t(\"./plugins/annotations\"),H=r(I),Y=t(\"./plugins/axes\"),X=r(Y),V=t(\"./plugins/chart-labels\"),Z=r(V),B=t(\"./plugins/grid\"),G=r(B),W=t(\"./plugins/legend\"),U=r(W),z=t(\"./plugins/range-selector\"),j=r(z),K=t(\"./dygraph-gviz\"),q=r(K),Q=function(t,e,a){this.__init__(t,e,a)};Q.NAME=\"Dygraph\",Q.VERSION=\"2.1.0\",Q.DEFAULT_ROLL_PERIOD=1,Q.DEFAULT_WIDTH=480,Q.DEFAULT_HEIGHT=320,Q.ANIMATION_STEPS=12,Q.ANIMATION_DURATION=200,Q.Plotters=d.default._Plotters,Q.addedAnnotationCSS=!1,Q.prototype.__init__=function(t,e,a){if(this.is_initial_draw_=!0,this.readyFns_=[],null!==a&&void 0!==a||(a={}),a=Q.copyUserAttrs_(a),\"string\"==typeof t&&(t=document.getElementById(t)),!t)throw new Error(\"Constructing dygraph with a non-existent div!\");this.maindiv_=t,this.file_=e,this.rollPeriod_=a.rollPeriod||Q.DEFAULT_ROLL_PERIOD,this.previousVerticalX_=-1,this.fractions_=a.fractions||!1,this.dateWindow_=a.dateWindow||null,this.annotations_=[],t.innerHTML=\"\",\"\"===t.style.width&&a.width&&(t.style.width=a.width+\"px\"),\"\"===t.style.height&&a.height&&(t.style.height=a.height+\"px\"),\"\"===t.style.height&&0===t.clientHeight&&(t.style.height=Q.DEFAULT_HEIGHT+\"px\",\"\"===t.style.width&&(t.style.width=Q.DEFAULT_WIDTH+\"px\")),this.width_=t.clientWidth||a.width||0,this.height_=t.clientHeight||a.height||0,a.stackedGraph&&(a.fillGraph=!0),this.user_attrs_={},x.update(this.user_attrs_,a),this.attrs_={},x.updateDeep(this.attrs_,b.default),this.boundaryIds_=[],this.setIndexByName_={},this.datasetIndex_=[],this.registeredEvents_=[],this.eventListeners_={},this.attributes_=new p.default(this),this.createInterface_(),this.plugins_=[];for(var i=Q.PLUGINS.concat(this.getOption(\"plugins\")),n=0;n<i.length;n++){var r,o=i[n];r=void 0!==o.activate?o:new o;var s={plugin:r,events:{},options:{},pluginOptions:{}},l=r.activate(this);for(var h in l)l.hasOwnProperty(h)&&(s.events[h]=l[h]);this.plugins_.push(s)}for(var n=0;n<this.plugins_.length;n++){var u=this.plugins_[n];for(var h in u.events)if(u.events.hasOwnProperty(h)){var d=u.events[h],c=[u.plugin,d];h in this.eventListeners_?this.eventListeners_[h].push(c):this.eventListeners_[h]=[c]}}this.createDragInterface_(),this.start_()},Q.prototype.cascadeEvents_=function(t,e){if(!(t in this.eventListeners_))return!1;var a={dygraph:this,cancelable:!1,defaultPrevented:!1,preventDefault:function(){if(!a.cancelable)throw\"Cannot call preventDefault on non-cancelable event.\";a.defaultPrevented=!0},propagationStopped:!1,stopPropagation:function(){a.propagationStopped=!0}};x.update(a,e);var i=this.eventListeners_[t];if(i)for(var n=i.length-1;n>=0;n--){var r=i[n][0],o=i[n][1];if(o.call(r,a),a.propagationStopped)break}return a.defaultPrevented},Q.prototype.getPluginInstance_=function(t){for(var e=0;e<this.plugins_.length;e++){var a=this.plugins_[e];if(a.plugin instanceof t)return a.plugin}return null},Q.prototype.isZoomed=function(t){var e=!!this.dateWindow_;if(\"x\"===t)return e;var a=this.axes_.map(function(t){return!!t.valueRange}).indexOf(!0)>=0;if(null===t||void 0===t)return e||a;if(\"y\"===t)return a;throw new Error(\"axis parameter is [\"+t+\"] must be null, 'x' or 'y'.\")},Q.prototype.toString=function(){var t=this.maindiv_;return\"[Dygraph \"+(t&&t.id?t.id:t)+\"]\"},Q.prototype.attr_=function(t,e){return e?this.attributes_.getForSeries(t,e):this.attributes_.get(t)},Q.prototype.getOption=function(t,e){return this.attr_(t,e)},Q.prototype.getNumericOption=function(t,e){return this.getOption(t,e)},Q.prototype.getStringOption=function(t,e){return this.getOption(t,e)},Q.prototype.getBooleanOption=function(t,e){return this.getOption(t,e)},Q.prototype.getFunctionOption=function(t,e){return this.getOption(t,e)},Q.prototype.getOptionForAxis=function(t,e){return this.attributes_.getForAxis(t,e)},Q.prototype.optionsViewForAxis_=function(t){var e=this;return function(a){var i=e.user_attrs_.axes;return i&&i[t]&&i[t].hasOwnProperty(a)?i[t][a]:(\"x\"!==t||\"logscale\"!==a)&&(void 0!==e.user_attrs_[a]?e.user_attrs_[a]:(i=e.attrs_.axes,i&&i[t]&&i[t].hasOwnProperty(a)?i[t][a]:\"y\"==t&&e.axes_[0].hasOwnProperty(a)?e.axes_[0][a]:\"y2\"==t&&e.axes_[1].hasOwnProperty(a)?e.axes_[1][a]:e.attr_(a)))}},Q.prototype.rollPeriod=function(){return this.rollPeriod_},Q.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},Q.prototype.xAxisExtremes=function(){var t=this.getNumericOption(\"xRangePad\")/this.plotter_.area.w;if(0===this.numRows())return[0-t,1+t];var e=this.rawData_[0][0],a=this.rawData_[this.rawData_.length-1][0];if(t){var i=a-e;e-=i*t,a+=i*t}return[e,a]},Q.prototype.yAxisExtremes=function(){var t=this.gatherDatasets_(this.rolledSeries_,null),e=t.extremes,a=this.axes_;this.computeYAxisRanges_(e);var i=this.axes_;return this.axes_=a,i.map(function(t){return t.extremeRange})},Q.prototype.yAxisRange=function(t){if(void 0===t&&(t=0),t<0||t>=this.axes_.length)return null;var e=this.axes_[t];return[e.computedValueRange[0],e.computedValueRange[1]]},Q.prototype.yAxisRanges=function(){for(var t=[],e=0;e<this.axes_.length;e++)t.push(this.yAxisRange(e));return t},Q.prototype.toDomCoords=function(t,e,a){return[this.toDomXCoord(t),this.toDomYCoord(e,a)]},Q.prototype.toDomXCoord=function(t){if(null===t)return null;var e=this.plotter_.area,a=this.xAxisRange();return e.x+(t-a[0])/(a[1]-a[0])*e.w},Q.prototype.toDomYCoord=function(t,e){var a=this.toPercentYCoord(t,e);if(null===a)return null;var i=this.plotter_.area;return i.y+a*i.h},Q.prototype.toDataCoords=function(t,e,a){return[this.toDataXCoord(t),this.toDataYCoord(e,a)]},Q.prototype.toDataXCoord=function(t){if(null===t)return null;var e=this.plotter_.area,a=this.xAxisRange();if(this.attributes_.getForAxis(\"logscale\",\"x\")){var i=(t-e.x)/e.w;return x.logRangeFraction(a[0],a[1],i)}return a[0]+(t-e.x)/e.w*(a[1]-a[0])},Q.prototype.toDataYCoord=function(t,e){if(null===t)return null;var a=this.plotter_.area,i=this.yAxisRange(e);if(void 0===e&&(e=0),this.attributes_.getForAxis(\"logscale\",e)){var n=(t-a.y)/a.h;return x.logRangeFraction(i[1],i[0],n)}return i[0]+(a.y+a.h-t)/a.h*(i[1]-i[0])},Q.prototype.toPercentYCoord=function(t,e){if(null===t)return null;void 0===e&&(e=0);var a,i=this.yAxisRange(e);if(this.attributes_.getForAxis(\"logscale\",e)){var n=x.log10(i[0]),r=x.log10(i[1]);a=(r-x.log10(t))/(r-n)}else a=(i[1]-t)/(i[1]-i[0]);return a},Q.prototype.toPercentXCoord=function(t){if(null===t)return null;var e,a=this.xAxisRange();if(!0===this.attributes_.getForAxis(\"logscale\",\"x\")){var i=x.log10(a[0]),n=x.log10(a[1]);e=(x.log10(t)-i)/(n-i)}else e=(t-a[0])/(a[1]-a[0]);return e},Q.prototype.numColumns=function(){return this.rawData_?this.rawData_[0]?this.rawData_[0].length:this.attr_(\"labels\").length:0},Q.prototype.numRows=function(){return this.rawData_?this.rawData_.length:0},Q.prototype.getValue=function(t,e){return t<0||t>this.rawData_.length?null:e<0||e>this.rawData_[t].length?null:this.rawData_[t][e]},Q.prototype.createInterface_=function(){var t=this.maindiv_;this.graphDiv=document.createElement(\"div\"),this.graphDiv.style.textAlign=\"left\",this.graphDiv.style.position=\"relative\",t.appendChild(this.graphDiv),this.canvas_=x.createCanvas(),this.canvas_.style.position=\"absolute\",this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.canvas_ctx_=x.getContext(this.canvas_),this.hidden_ctx_=x.getContext(this.hidden_),this.resizeElements_(),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new h.default(this);var e=this;this.mouseMoveHandler_=function(t){e.mouseMove_(t)},this.mouseOutHandler_=function(t){var a=t.target||t.fromElement,i=t.relatedTarget||t.toElement;x.isNodeContainedBy(a,e.graphDiv)&&!x.isNodeContainedBy(i,e.graphDiv)&&e.mouseOut_(t)},this.addAndTrackEvent(window,\"mouseout\",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,\"mousemove\",this.mouseMoveHandler_),this.resizeHandler_||(this.resizeHandler_=function(t){e.resize()},this.addAndTrackEvent(window,\"resize\",this.resizeHandler_))},Q.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+\"px\",this.graphDiv.style.height=this.height_+\"px\";var t=this.getNumericOption(\"pixelRatio\"),e=t||x.getContextPixelRatio(this.canvas_ctx_);this.canvas_.width=this.width_*e,this.canvas_.height=this.height_*e,this.canvas_.style.width=this.width_+\"px\",this.canvas_.style.height=this.height_+\"px\",1!==e&&this.canvas_ctx_.scale(e,e);var a=t||x.getContextPixelRatio(this.hidden_ctx_);this.hidden_.width=this.width_*a,this.hidden_.height=this.height_*a,this.hidden_.style.width=this.width_+\"px\",this.hidden_.style.height=this.height_+\"px\",1!==a&&this.hidden_ctx_.scale(a,a)},Q.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();for(var t=this.plugins_.length-1;t>=0;t--){var e=this.plugins_.pop();e.plugin.destroy&&e.plugin.destroy()}this.removeTrackedEvents_(),x.removeEvent(window,\"mouseout\",this.mouseOutHandler_),x.removeEvent(this.mouseEventElement_,\"mousemove\",this.mouseMoveHandler_),x.removeEvent(window,\"resize\",this.resizeHandler_),this.resizeHandler_=null,function t(e){for(;e.hasChildNodes();)t(e.firstChild),e.removeChild(e.firstChild)}(this.maindiv_);var a=function(t){for(var e in t)\"object\"==typeof t[e]&&(t[e]=null)};a(this.layout_),a(this.plotter_),a(this)},Q.prototype.createPlotKitCanvas_=function(t){var e=x.createCanvas();return e.style.position=\"absolute\",e.style.top=t.style.top,e.style.left=t.style.left,\ne.width=this.width_,e.height=this.height_,e.style.width=this.width_+\"px\",e.style.height=this.height_+\"px\",e},Q.prototype.createMouseEventElement_=function(){return this.canvas_},Q.prototype.setColors_=function(){var t=this.getLabels(),e=t.length-1;this.colors_=[],this.colorsMap_={};for(var a=this.getNumericOption(\"colorSaturation\")||1,i=this.getNumericOption(\"colorValue\")||.5,n=Math.ceil(e/2),r=this.getOption(\"colors\"),o=this.visibility(),s=0;s<e;s++)if(o[s]){var l=t[s+1],h=this.attributes_.getForSeries(\"color\",l);if(!h)if(r)h=r[s%r.length];else{var u=s%2?n+(s+1)/2:Math.ceil((s+1)/2),d=1*u/(1+e);h=x.hsvToRGB(d,a,i)}this.colors_.push(h),this.colorsMap_[l]=h}},Q.prototype.getColors=function(){return this.colors_},Q.prototype.getPropertiesForSeries=function(t){for(var e=-1,a=this.getLabels(),i=1;i<a.length;i++)if(a[i]==t){e=i;break}return-1==e?null:{name:t,column:e,visible:this.visibility()[e-1],color:this.colorsMap_[t],axis:1+this.attributes_.axisForSeries(t)}},Q.prototype.createRollInterface_=function(){var t=this,e=this.roller_;e||(this.roller_=e=document.createElement(\"input\"),e.type=\"text\",e.style.display=\"none\",e.className=\"dygraph-roller\",this.graphDiv.appendChild(e));var a=this.getBooleanOption(\"showRoller\")?\"block\":\"none\",i=this.getArea(),n={top:i.y+i.h-25+\"px\",left:i.x+1+\"px\",display:a};e.size=\"2\",e.value=this.rollPeriod_,x.update(e.style,n),e.onchange=function(){return t.adjustRoll(e.value)}},Q.prototype.createDragInterface_=function(){var t={isZooming:!1,isPanning:!1,is2DPan:!1,dragStartX:null,dragStartY:null,dragEndX:null,dragEndY:null,dragDirection:null,prevEndX:null,prevEndY:null,prevDragDirection:null,cancelNextDblclick:!1,initialLeftmostDate:null,xUnitsPerPixel:null,dateRange:null,px:0,py:0,boundedDates:null,boundedValues:null,tarp:new O.default,initializeMouseDown:function(t,e,a){t.preventDefault?t.preventDefault():(t.returnValue=!1,t.cancelBubble=!0);var i=x.findPos(e.canvas_);a.px=i.x,a.py=i.y,a.dragStartX=x.dragGetX_(t,a),a.dragStartY=x.dragGetY_(t,a),a.cancelNextDblclick=!1,a.tarp.cover()},destroy:function(){var t=this;if((t.isZooming||t.isPanning)&&(t.isZooming=!1,t.dragStartX=null,t.dragStartY=null),t.isPanning){t.isPanning=!1,t.draggingDate=null,t.dateRange=null;for(var e=0;e<a.axes_.length;e++)delete a.axes_[e].draggingValue,delete a.axes_[e].dragValueRange}t.tarp.uncover()}},e=this.getOption(\"interactionModel\"),a=this;for(var i in e)e.hasOwnProperty(i)&&this.addAndTrackEvent(this.mouseEventElement_,i,function(e){return function(i){e(i,a,t)}}(e[i]));if(!e.willDestroyContextMyself){var n=function(e){t.destroy()};this.addAndTrackEvent(document,\"mouseup\",n)}},Q.prototype.drawZoomRect_=function(t,e,a,i,n,r,o,s){var l=this.canvas_ctx_;r==x.HORIZONTAL?l.clearRect(Math.min(e,o),this.layout_.getPlotArea().y,Math.abs(e-o),this.layout_.getPlotArea().h):r==x.VERTICAL&&l.clearRect(this.layout_.getPlotArea().x,Math.min(i,s),this.layout_.getPlotArea().w,Math.abs(i-s)),t==x.HORIZONTAL?a&&e&&(l.fillStyle=\"rgba(128,128,128,0.33)\",l.fillRect(Math.min(e,a),this.layout_.getPlotArea().y,Math.abs(a-e),this.layout_.getPlotArea().h)):t==x.VERTICAL&&n&&i&&(l.fillStyle=\"rgba(128,128,128,0.33)\",l.fillRect(this.layout_.getPlotArea().x,Math.min(i,n),this.layout_.getPlotArea().w,Math.abs(n-i)))},Q.prototype.clearZoomRect_=function(){this.currentZoomRectArgs_=null,this.canvas_ctx_.clearRect(0,0,this.width_,this.height_)},Q.prototype.doZoomX_=function(t,e){this.currentZoomRectArgs_=null;var a=this.toDataXCoord(t),i=this.toDataXCoord(e);this.doZoomXDates_(a,i)},Q.prototype.doZoomXDates_=function(t,e){var a=this,i=this.xAxisRange(),n=[t,e],r=this.getFunctionOption(\"zoomCallback\");this.doAnimatedZoom(i,n,null,null,function(){r&&r.call(a,t,e,a.yAxisRanges())})},Q.prototype.doZoomY_=function(t,e){var a=this;this.currentZoomRectArgs_=null;for(var i=this.yAxisRanges(),n=[],r=0;r<this.axes_.length;r++){var o=this.toDataYCoord(t,r),l=this.toDataYCoord(e,r);n.push([l,o])}var h=this.getFunctionOption(\"zoomCallback\");this.doAnimatedZoom(null,null,i,n,function(){if(h){var t=a.xAxisRange(),e=s(t,2),i=e[0],n=e[1];h.call(a,i,n,a.yAxisRanges())}})},Q.zoomAnimationFunction=function(t,e){return(1-Math.pow(1.5,-t))/(1-Math.pow(1.5,-e))},Q.prototype.resetZoom=function(){var t=this,e=this.isZoomed(\"x\"),a=this.isZoomed(\"y\"),i=e||a;if(this.clearSelection(),i){var n=this.xAxisExtremes(),r=s(n,2),o=r[0],l=r[1],h=this.getBooleanOption(\"animatedZooms\"),u=this.getFunctionOption(\"zoomCallback\");if(!h)return this.dateWindow_=null,this.axes_.forEach(function(t){t.valueRange&&delete t.valueRange}),this.drawGraph_(),void(u&&u.call(this,o,l,this.yAxisRanges()));var d=null,c=null,p=null,g=null;e&&(d=this.xAxisRange(),c=[o,l]),a&&(p=this.yAxisRanges(),g=this.yAxisExtremes()),this.doAnimatedZoom(d,c,p,g,function(){t.dateWindow_=null,t.axes_.forEach(function(t){t.valueRange&&delete t.valueRange}),u&&u.call(t,o,l,t.yAxisRanges())})}},Q.prototype.doAnimatedZoom=function(t,e,a,i,n){var r,o,s=this,l=this.getBooleanOption(\"animatedZooms\")?Q.ANIMATION_STEPS:1,h=[],u=[];if(null!==t&&null!==e)for(r=1;r<=l;r++)o=Q.zoomAnimationFunction(r,l),h[r-1]=[t[0]*(1-o)+o*e[0],t[1]*(1-o)+o*e[1]];if(null!==a&&null!==i)for(r=1;r<=l;r++){o=Q.zoomAnimationFunction(r,l);for(var d=[],c=0;c<this.axes_.length;c++)d.push([a[c][0]*(1-o)+o*i[c][0],a[c][1]*(1-o)+o*i[c][1]]);u[r-1]=d}x.repeatAndCleanup(function(t){if(u.length)for(var e=0;e<s.axes_.length;e++){var a=u[t][e];s.axes_[e].valueRange=[a[0],a[1]]}h.length&&(s.dateWindow_=h[t]),s.drawGraph_()},l,Q.ANIMATION_DURATION/l,n)},Q.prototype.getArea=function(){return this.plotter_.area},Q.prototype.eventToDomCoords=function(t){if(t.offsetX&&t.offsetY)return[t.offsetX,t.offsetY];var e=x.findPos(this.mouseEventElement_);return[x.pageX(t)-e.x,x.pageY(t)-e.y]},Q.prototype.findClosestRow=function(t){for(var e=1/0,a=-1,i=this.layout_.points,n=0;n<i.length;n++)for(var r=i[n],o=r.length,s=0;s<o;s++){var l=r[s];if(x.isValidPoint(l,!0)){var h=Math.abs(l.canvasx-t);h<e&&(e=h,a=l.idx)}}return a},Q.prototype.findClosestPoint=function(t,e){for(var a,i,n,r,o,s,l,h=1/0,u=this.layout_.points.length-1;u>=0;--u)for(var d=this.layout_.points[u],c=0;c<d.length;++c)r=d[c],x.isValidPoint(r)&&(i=r.canvasx-t,n=r.canvasy-e,(a=i*i+n*n)<h&&(h=a,o=r,s=u,l=r.idx));return{row:l,seriesName:this.layout_.setNames[s],point:o}},Q.prototype.findStackedPoint=function(t,e){for(var a,i,n=this.findClosestRow(t),r=0;r<this.layout_.points.length;++r){var o=this.getLeftBoundary_(r),s=n-o,l=this.layout_.points[r];if(!(s>=l.length)){var h=l[s];if(x.isValidPoint(h)){var u=h.canvasy;if(t>h.canvasx&&s+1<l.length){var d=l[s+1];if(x.isValidPoint(d)){var c=d.canvasx-h.canvasx;if(c>0){var p=(t-h.canvasx)/c;u+=p*(d.canvasy-h.canvasy)}}}else if(t<h.canvasx&&s>0){var g=l[s-1];if(x.isValidPoint(g)){var c=h.canvasx-g.canvasx;if(c>0){var p=(h.canvasx-t)/c;u+=p*(g.canvasy-h.canvasy)}}}(0===r||u<e)&&(a=h,i=r)}}}return{row:n,seriesName:this.layout_.setNames[i],point:a}},Q.prototype.mouseMove_=function(t){var e=this.layout_.points;if(void 0!==e&&null!==e){var a=this.eventToDomCoords(t),i=a[0],n=a[1],r=this.getOption(\"highlightSeriesOpts\"),o=!1;if(r&&!this.isSeriesLocked()){var s;s=this.getBooleanOption(\"stackedGraph\")?this.findStackedPoint(i,n):this.findClosestPoint(i,n),o=this.setSelection(s.row,s.seriesName)}else{var l=this.findClosestRow(i);o=this.setSelection(l)}var h=this.getFunctionOption(\"highlightCallback\");h&&o&&h.call(this,t,this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}},Q.prototype.getLeftBoundary_=function(t){if(this.boundaryIds_[t])return this.boundaryIds_[t][0];for(var e=0;e<this.boundaryIds_.length;e++)if(void 0!==this.boundaryIds_[e])return this.boundaryIds_[e][0];return 0},Q.prototype.animateSelection_=function(t){void 0===this.fadeLevel&&(this.fadeLevel=0),void 0===this.animateId&&(this.animateId=0);var e=this.fadeLevel,a=t<0?e:10-e;if(a<=0)return void(this.fadeLevel&&this.updateSelection_(1));var i=++this.animateId,n=this,r=function(){0!==n.fadeLevel&&t<0&&(n.fadeLevel=0,n.clearSelection())};x.repeatAndCleanup(function(e){n.animateId==i&&(n.fadeLevel+=t,0===n.fadeLevel?n.clearSelection():n.updateSelection_(n.fadeLevel/10))},a,30,r)},Q.prototype.updateSelection_=function(t){this.cascadeEvents_(\"select\",{selectedRow:-1===this.lastRow_?void 0:this.lastRow_,selectedX:-1===this.lastx_?void 0:this.lastx_,selectedPoints:this.selPoints_});var e,a=this.canvas_ctx_;if(this.getOption(\"highlightSeriesOpts\")){a.clearRect(0,0,this.width_,this.height_);var i=1-this.getNumericOption(\"highlightSeriesBackgroundAlpha\"),n=x.toRGB_(this.getOption(\"highlightSeriesBackgroundColor\"));if(i){if(void 0===t)return void this.animateSelection_(1);i*=t,a.fillStyle=\"rgba(\"+n.r+\",\"+n.g+\",\"+n.b+\",\"+i+\")\",a.fillRect(0,0,this.width_,this.height_)}this.plotter_._renderLineChart(this.highlightSet_,a)}else if(this.previousVerticalX_>=0){var r=0,o=this.attr_(\"labels\");for(e=1;e<o.length;e++){var s=this.getNumericOption(\"highlightCircleSize\",o[e]);s>r&&(r=s)}var l=this.previousVerticalX_;a.clearRect(l-r-1,0,2*r+2,this.height_)}if(this.selPoints_.length>0){var h=this.selPoints_[0].canvasx;for(a.save(),e=0;e<this.selPoints_.length;e++){var u=this.selPoints_[e];if(!isNaN(u.canvasy)){var d=this.getNumericOption(\"highlightCircleSize\",u.name),c=this.getFunctionOption(\"drawHighlightPointCallback\",u.name),p=this.plotter_.colors[u.name];c||(c=x.Circles.DEFAULT),a.lineWidth=this.getNumericOption(\"strokeWidth\",u.name),a.strokeStyle=p,a.fillStyle=p,c.call(this,this,u.name,a,h,u.canvasy,p,d,u.idx)}}a.restore(),this.previousVerticalX_=h}},Q.prototype.setSelection=function(t,e,a){this.selPoints_=[];var i=!1;if(!1!==t&&t>=0){t!=this.lastRow_&&(i=!0),this.lastRow_=t;for(var n=0;n<this.layout_.points.length;++n){var r=this.layout_.points[n],o=t-this.getLeftBoundary_(n);if(o>=0&&o<r.length&&r[o].idx==t){var s=r[o];null!==s.yval&&this.selPoints_.push(s)}else for(var l=0;l<r.length;++l){var s=r[l];if(s.idx==t){null!==s.yval&&this.selPoints_.push(s);break}}}}else this.lastRow_>=0&&(i=!0),this.lastRow_=-1;return this.selPoints_.length?this.lastx_=this.selPoints_[0].xval:this.lastx_=-1,void 0!==e&&(this.highlightSet_!==e&&(i=!0),this.highlightSet_=e),void 0!==a&&(this.lockedSet_=a),i&&this.updateSelection_(void 0),i},Q.prototype.mouseOut_=function(t){this.getFunctionOption(\"unhighlightCallback\")&&this.getFunctionOption(\"unhighlightCallback\").call(this,t),this.getBooleanOption(\"hideOverlayOnMouseOut\")&&!this.lockedSet_&&this.clearSelection()},Q.prototype.clearSelection=function(){if(this.cascadeEvents_(\"deselect\",{}),this.lockedSet_=!1,this.fadeLevel)return void this.animateSelection_(-1);this.canvas_ctx_.clearRect(0,0,this.width_,this.height_),this.fadeLevel=0,this.selPoints_=[],this.lastx_=-1,this.lastRow_=-1,this.highlightSet_=null},Q.prototype.getSelection=function(){if(!this.selPoints_||this.selPoints_.length<1)return-1;for(var t=0;t<this.layout_.points.length;t++)for(var e=this.layout_.points[t],a=0;a<e.length;a++)if(e[a].x==this.selPoints_[0].x)return e[a].idx;return-1},Q.prototype.getHighlightSeries=function(){return this.highlightSet_},Q.prototype.isSeriesLocked=function(){return this.lockedSet_},Q.prototype.loadedEvent_=function(t){this.rawData_=this.parseCSV_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_()},Q.prototype.addXTicks_=function(){var t;t=this.dateWindow_?[this.dateWindow_[0],this.dateWindow_[1]]:this.xAxisExtremes();var e=this.optionsViewForAxis_(\"x\"),a=e(\"ticker\")(t[0],t[1],this.plotter_.area.w,e,this);this.layout_.setXTicks(a)},Q.prototype.getHandlerClass_=function(){return this.attr_(\"dataHandler\")?this.attr_(\"dataHandler\"):this.fractions_?this.getBooleanOption(\"errorBars\")?F.default:M.default:this.getBooleanOption(\"customBars\")?P.default:this.getBooleanOption(\"errorBars\")?T.default:E.default},Q.prototype.predraw_=function(){var t=new Date;this.dataHandler_=new(this.getHandlerClass_()),this.layout_.computePlotArea(),this.computeYAxes_(),this.is_initial_draw_||(this.canvas_ctx_.restore(),this.hidden_ctx_.restore()),this.canvas_ctx_.save(),this.hidden_ctx_.save(),this.plotter_=new d.default(this,this.hidden_,this.hidden_ctx_,this.layout_),this.createRollInterface_(),this.cascadeEvents_(\"predraw\"),this.rolledSeries_=[null];for(var e=1;e<this.numColumns();e++){var a=this.dataHandler_.extractSeries(this.rawData_,e,this.attributes_);this.rollPeriod_>1&&(a=this.dataHandler_.rollingAverage(a,this.rollPeriod_,this.attributes_)),this.rolledSeries_.push(a)}this.drawGraph_();var i=new Date;this.drawingTimeMs_=i-t},Q.PointType=void 0,Q.stackPoints_=function(t,e,a,i){for(var n=null,r=null,o=null,s=-1,l=0;l<t.length;++l){var h=t[l],u=h.xval;void 0===e[u]&&(e[u]=0);var d=h.yval;isNaN(d)||null===d?\"none\"==i?d=0:(!function(e){if(!(s>=e))for(var a=e;a<t.length;++a)if(o=null,!isNaN(t[a].yval)&&null!==t[a].yval){s=a,o=t[a];break}}(l),d=r&&o&&\"none\"!=i?r.yval+(o.yval-r.yval)*((u-r.xval)/(o.xval-r.xval)):r&&\"all\"==i?r.yval:o&&\"all\"==i?o.yval:0):r=h;var c=e[u];n!=u&&(c+=d,e[u]=c),n=u,h.yval_stacked=c,c>a[1]&&(a[1]=c),c<a[0]&&(a[0]=c)}},Q.prototype.gatherDatasets_=function(t,e){var a,i,n,r,o,s,l=[],h=[],u=[],d={},c=t.length-1;for(a=c;a>=1;a--)if(this.visibility()[a-1]){if(e){s=t[a];var p=e[0],g=e[1];for(n=null,r=null,i=0;i<s.length;i++)s[i][0]>=p&&null===n&&(n=i),s[i][0]<=g&&(r=i);null===n&&(n=0);for(var f=n,v=!0;v&&f>0;)f--,v=null===s[f][1];null===r&&(r=s.length-1);var _=r;for(v=!0;v&&_<s.length-1;)_++,v=null===s[_][1];f!==n&&(n=f),_!==r&&(r=_),l[a-1]=[n,r],s=s.slice(n,r+1)}else s=t[a],l[a-1]=[0,s.length-1];var y=this.attr_(\"labels\")[a],x=this.dataHandler_.getExtremeYValues(s,e,this.getBooleanOption(\"stepPlot\",y)),m=this.dataHandler_.seriesToPoints(s,y,l[a-1][0]);this.getBooleanOption(\"stackedGraph\")&&(o=this.attributes_.axisForSeries(y),void 0===u[o]&&(u[o]=[]),Q.stackPoints_(m,u[o],x,this.getBooleanOption(\"stackedGraphNaNFill\"))),d[y]=x,h[a]=m}return{points:h,extremes:d,boundaryIds:l}},Q.prototype.drawGraph_=function(){var t=new Date,e=this.is_initial_draw_;this.is_initial_draw_=!1,this.layout_.removeAllDatasets(),this.setColors_(),this.attrs_.pointSize=.5*this.getNumericOption(\"highlightCircleSize\");var a=this.gatherDatasets_(this.rolledSeries_,this.dateWindow_),i=a.points,n=a.extremes;this.boundaryIds_=a.boundaryIds,this.setIndexByName_={};for(var r=this.attr_(\"labels\"),o=0,s=1;s<i.length;s++)this.visibility()[s-1]&&(this.layout_.addDataset(r[s],i[s]),this.datasetIndex_[s]=o++);for(var s=0;s<r.length;s++)this.setIndexByName_[r[s]]=s;if(this.computeYAxisRanges_(n),this.layout_.setYAxes(this.axes_),this.addXTicks_(),this.layout_.evaluate(),this.renderGraph_(e),this.getStringOption(\"timingName\")){var l=new Date;console.log(this.getStringOption(\"timingName\")+\" - drawGraph: \"+(l-t)+\"ms\")}},Q.prototype.renderGraph_=function(t){this.cascadeEvents_(\"clearChart\"),this.plotter_.clear();var e=this.getFunctionOption(\"underlayCallback\");e&&e.call(this,this.hidden_ctx_,this.layout_.getPlotArea(),this,this);var a={canvas:this.hidden_,drawingContext:this.hidden_ctx_};this.cascadeEvents_(\"willDrawChart\",a),this.plotter_.render(),this.cascadeEvents_(\"didDrawChart\",a),this.lastRow_=-1,this.canvas_.getContext(\"2d\").clearRect(0,0,this.width_,this.height_);var i=this.getFunctionOption(\"drawCallback\");if(null!==i&&i.call(this,this,t),t)for(this.readyFired_=!0;this.readyFns_.length>0;){var n=this.readyFns_.pop();n(this)}},Q.prototype.computeYAxes_=function(){var t,e,a;for(this.axes_=[],t=0;t<this.attributes_.numAxes();t++)e={g:this},x.update(e,this.attributes_.axisOptions(t)),this.axes_[t]=e;for(t=0;t<this.axes_.length;t++)if(0===t)e=this.optionsViewForAxis_(\"y\"+(t?\"2\":\"\")),(a=e(\"valueRange\"))&&(this.axes_[t].valueRange=a);else{var i=this.user_attrs_.axes;i&&i.y2&&(a=i.y2.valueRange)&&(this.axes_[t].valueRange=a)}},Q.prototype.numAxes=function(){return this.attributes_.numAxes()},Q.prototype.axisPropertiesForSeries=function(t){return this.axes_[this.attributes_.axisForSeries(t)]},Q.prototype.computeYAxisRanges_=function(t){for(var e,a,i,n,r,o=function(t){return isNaN(parseFloat(t))},s=this.attributes_.numAxes(),l=0;l<s;l++){var h=this.axes_[l],u=this.attributes_.getForAxis(\"logscale\",l),d=this.attributes_.getForAxis(\"includeZero\",l),c=this.attributes_.getForAxis(\"independentTicks\",l);i=this.attributes_.seriesForAxis(l),e=!0,n=.1;var p=this.getNumericOption(\"yRangePad\");if(null!==p&&(e=!1,n=p/this.plotter_.area.h),0===i.length)h.extremeRange=[0,1];else{for(var g,f,v=1/0,_=-1/0,y=0;y<i.length;y++)t.hasOwnProperty(i[y])&&(g=t[i[y]][0],null!==g&&(v=Math.min(g,v)),null!==(f=t[i[y]][1])&&(_=Math.max(f,_)));d&&!u&&(v>0&&(v=0),_<0&&(_=0)),v==1/0&&(v=0),_==-1/0&&(_=1),a=_-v,0===a&&(0!==_?a=Math.abs(_):(_=1,a=1));var m=_,b=v;e&&(u?(m=_+n*a,b=v):(m=_+n*a,b=v-n*a,b<0&&v>=0&&(b=0),m>0&&_<=0&&(m=0))),h.extremeRange=[b,m]}if(h.valueRange){var w=o(h.valueRange[0])?h.extremeRange[0]:h.valueRange[0],A=o(h.valueRange[1])?h.extremeRange[1]:h.valueRange[1];h.computedValueRange=[w,A]}else h.computedValueRange=h.extremeRange;if(!e)if(w=h.computedValueRange[0],A=h.computedValueRange[1],w===A&&(w-=.5,A+=.5),u){var O=n/(2*n-1),D=(n-1)/(2*n-1);h.computedValueRange[0]=x.logRangeFraction(w,A,O),h.computedValueRange[1]=x.logRangeFraction(w,A,D)}else a=A-w,h.computedValueRange[0]=w-a*n,h.computedValueRange[1]=A+a*n;if(c){h.independentTicks=c;var E=this.optionsViewForAxis_(\"y\"+(l?\"2\":\"\")),L=E(\"ticker\");h.ticks=L(h.computedValueRange[0],h.computedValueRange[1],this.plotter_.area.h,E,this),r||(r=h)}}if(void 0===r)throw'Configuration Error: At least one axis has to have the \"independentTicks\" option activated.';for(var l=0;l<s;l++){var h=this.axes_[l];if(!h.independentTicks){for(var E=this.optionsViewForAxis_(\"y\"+(l?\"2\":\"\")),L=E(\"ticker\"),T=r.ticks,S=r.computedValueRange[1]-r.computedValueRange[0],P=h.computedValueRange[1]-h.computedValueRange[0],C=[],M=0;M<T.length;M++){var N=(T[M].v-r.computedValueRange[0])/S,F=h.computedValueRange[0]+N*P;C.push(F)}h.ticks=L(h.computedValueRange[0],h.computedValueRange[1],this.plotter_.area.h,E,this,C)}}},Q.prototype.detectTypeFromString_=function(t){var e=!1,a=t.indexOf(\"-\");a>0&&\"e\"!=t[a-1]&&\"E\"!=t[a-1]||t.indexOf(\"/\")>=0||isNaN(parseFloat(t))?e=!0:8==t.length&&t>\"19700101\"&&t<\"20371231\"&&(e=!0),this.setXAxisOptions_(e)},Q.prototype.setXAxisOptions_=function(t){t?(this.attrs_.xValueParser=x.dateParser,this.attrs_.axes.x.valueFormatter=x.dateValueFormatter,this.attrs_.axes.x.ticker=_.dateTicker,this.attrs_.axes.x.axisLabelFormatter=x.dateAxisLabelFormatter):(this.attrs_.xValueParser=function(t){return parseFloat(t)},this.attrs_.axes.x.valueFormatter=function(t){return t},this.attrs_.axes.x.ticker=_.numericTicks,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter)},Q.prototype.parseCSV_=function(t){var e,a,i=[],n=x.detectLineDelimiter(t),r=t.split(n||\"\\n\"),o=this.getStringOption(\"delimiter\");-1==r[0].indexOf(o)&&r[0].indexOf(\"\\t\")>=0&&(o=\"\\t\");var s=0;\"labels\"in this.user_attrs_||(s=1,this.attrs_.labels=r[0].split(o),this.attributes_.reparseSeries());for(var l,h=!1,u=this.attr_(\"labels\").length,d=!1,c=s;c<r.length;c++){var p=r[c];if(c,0!==p.length&&\"#\"!=p[0]){var g=p.split(o);if(!(g.length<2)){var f=[];if(h||(this.detectTypeFromString_(g[0]),l=this.getFunctionOption(\"xValueParser\"),h=!0),f[0]=l(g[0],this),this.fractions_)for(a=1;a<g.length;a++)e=g[a].split(\"/\"),2!=e.length?(console.error('Expected fractional \"num/den\" values in CSV data but found a value \\''+g[a]+\"' on line \"+(1+c)+\" ('\"+p+\"') which is not of this form.\"),f[a]=[0,0]):f[a]=[x.parseFloat_(e[0],c,p),x.parseFloat_(e[1],c,p)];else if(this.getBooleanOption(\"errorBars\"))for(g.length%2!=1&&console.error(\"Expected alternating (value, stdev.) pairs in CSV data but line \"+(1+c)+\" has an odd number of values (\"+(g.length-1)+\"): '\"+p+\"'\"),a=1;a<g.length;a+=2)f[(a+1)/2]=[x.parseFloat_(g[a],c,p),x.parseFloat_(g[a+1],c,p)];else if(this.getBooleanOption(\"customBars\"))for(a=1;a<g.length;a++){var v=g[a];/^ *$/.test(v)?f[a]=[null,null,null]:(e=v.split(\";\"),3==e.length?f[a]=[x.parseFloat_(e[0],c,p),x.parseFloat_(e[1],c,p),x.parseFloat_(e[2],c,p)]:console.warn('When using customBars, values must be either blank or \"low;center;high\" tuples (got \"'+v+'\" on line '+(1+c)))}else for(a=1;a<g.length;a++)f[a]=x.parseFloat_(g[a],c,p);if(i.length>0&&f[0]<i[i.length-1][0]&&(d=!0),f.length!=u&&console.error(\"Number of columns in line \"+c+\" (\"+f.length+\") does not agree with number of labels (\"+u+\") \"+p),0===c&&this.attr_(\"labels\")){var _=!0;for(a=0;_&&a<f.length;a++)f[a]&&(_=!1);if(_){console.warn(\"The dygraphs 'labels' option is set, but the first row of CSV data ('\"+p+\"') appears to also contain labels. Will drop the CSV labels and use the option labels.\");continue}}i.push(f)}}}return d&&(console.warn(\"CSV is out of order; order it correctly to speed loading.\"),i.sort(function(t,e){return t[0]-e[0]})),i},Q.prototype.parseArray_=function(t){if(0===t.length)return console.error(\"Can't plot empty data set\"),null;if(0===t[0].length)return console.error(\"Data set cannot contain an empty row\"),null;o(t);var e;if(null===this.attr_(\"labels\")){for(console.warn(\"Using default labels. Set labels explicitly via 'labels' in the options parameter\"),this.attrs_.labels=[\"X\"],e=1;e<t[0].length;e++)this.attrs_.labels.push(\"Y\"+e);this.attributes_.reparseSeries()}else{var a=this.attr_(\"labels\");if(a.length!=t[0].length)return console.error(\"Mismatch between number of labels (\"+a+\") and number of columns in array (\"+t[0].length+\")\"),null}if(x.isDateLike(t[0][0])){this.attrs_.axes.x.valueFormatter=x.dateValueFormatter,this.attrs_.axes.x.ticker=_.dateTicker,this.attrs_.axes.x.axisLabelFormatter=x.dateAxisLabelFormatter;var i=x.clone(t);for(e=0;e<t.length;e++){if(0===i[e].length)return console.error(\"Row \"+(1+e)+\" of data is empty\"),null;if(null===i[e][0]||\"function\"!=typeof i[e][0].getTime||isNaN(i[e][0].getTime()))return console.error(\"x value in row \"+(1+e)+\" is not a Date\"),null;i[e][0]=i[e][0].getTime()}return i}return this.attrs_.axes.x.valueFormatter=function(t){return t},this.attrs_.axes.x.ticker=_.numericTicks,this.attrs_.axes.x.axisLabelFormatter=x.numberAxisLabelFormatter,t},Q.prototype.parseDataTable_=function(t){var e=t.getNumberOfColumns(),a=t.getNumberOfRows(),i=t.getColumnType(0);if(\"date\"==i||\"datetime\"==i)this.attrs_.xValueParser=x.dateParser,this.attrs_.axes.x.valueFormatter=x.dateValueFormatter,this.attrs_.axes.x.ticker=_.dateTicker,this.attrs_.axes.x.axisLabelFormatter=x.dateAxisLabelFormatter;else{if(\"number\"!=i)throw new Error(\"only 'date', 'datetime' and 'number' types are supported for column 1 of DataTable input (Got '\"+i+\"')\");this.attrs_.xValueParser=function(t){return parseFloat(t)},this.attrs_.axes.x.valueFormatter=function(t){return t},this.attrs_.axes.x.ticker=_.numericTicks,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter}var n,r,o=[],s={},l=!1;for(n=1;n<e;n++){var h=t.getColumnType(n);if(\"number\"==h)o.push(n);else{if(\"string\"!=h||!this.getBooleanOption(\"displayAnnotations\"))throw new Error(\"Only 'number' is supported as a dependent type with Gviz. 'string' is only supported if displayAnnotations is true\");var u=o[o.length-1];s.hasOwnProperty(u)?s[u].push(n):s[u]=[n],l=!0}}var d=[t.getColumnLabel(0)];for(n=0;n<o.length;n++)d.push(t.getColumnLabel(o[n])),this.getBooleanOption(\"errorBars\")&&(n+=1);this.attrs_.labels=d,e=d.length;var c=[],p=!1,g=[];for(n=0;n<a;n++){var f=[];if(void 0!==t.getValue(n,0)&&null!==t.getValue(n,0)){if(\"date\"==i||\"datetime\"==i?f.push(t.getValue(n,0).getTime()):f.push(t.getValue(n,0)),this.getBooleanOption(\"errorBars\"))for(r=0;r<e-1;r++)f.push([t.getValue(n,1+2*r),t.getValue(n,2+2*r)]);else{for(r=0;r<o.length;r++){var v=o[r];if(f.push(t.getValue(n,v)),l&&s.hasOwnProperty(v)&&null!==t.getValue(n,s[v][0])){var y={};y.series=t.getColumnLabel(v),y.xval=f[0],y.shortText=function(t){var e=String.fromCharCode(65+t%26);for(t=Math.floor(t/26);t>0;)e=String.fromCharCode(65+(t-1)%26)+e.toLowerCase(),t=Math.floor((t-1)/26);return e}(g.length),y.text=\"\";for(var m=0;m<s[v].length;m++)m&&(y.text+=\"\\n\"),y.text+=t.getValue(n,s[v][m]);g.push(y)}}for(r=0;r<f.length;r++)isFinite(f[r])||(f[r]=null)}c.length>0&&f[0]<c[c.length-1][0]&&(p=!0),c.push(f)}else console.warn(\"Ignoring row \"+n+\" of DataTable because of undefined or null first column.\")}p&&(console.warn(\"DataTable is out of order; order it correctly to speed loading.\"),c.sort(function(t,e){return t[0]-e[0]})),this.rawData_=c,g.length>0&&this.setAnnotations(g,!0),this.attributes_.reparseSeries()},Q.prototype.cascadeDataDidUpdateEvent_=function(){this.cascadeEvents_(\"dataDidUpdate\",{})},Q.prototype.start_=function(){var t=this.file_;if(\"function\"==typeof t&&(t=t()),x.isArrayLike(t))this.rawData_=this.parseArray_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if(\"object\"==typeof t&&\"function\"==typeof t.getColumnRange)this.parseDataTable_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if(\"string\"==typeof t){var e=x.detectLineDelimiter(t);if(e)this.loadedEvent_(t);else{var a;a=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject(\"Microsoft.XMLHTTP\");var i=this;a.onreadystatechange=function(){4==a.readyState&&(200!==a.status&&0!==a.status||i.loadedEvent_(a.responseText))},a.open(\"GET\",t,!0),a.send(null)}}else console.error(\"Unknown data format: \"+typeof t)},Q.prototype.updateOptions=function(t,e){void 0===e&&(e=!1);var a=t.file,i=Q.copyUserAttrs_(t);\"rollPeriod\"in i&&(this.rollPeriod_=i.rollPeriod),\"dateWindow\"in i&&(this.dateWindow_=i.dateWindow);var n=x.isPixelChangingOptionList(this.attr_(\"labels\"),i);x.updateDeep(this.user_attrs_,i),this.attributes_.reparseSeries(),a?(this.cascadeEvents_(\"dataWillUpdate\",{}),this.file_=a,e||this.start_()):e||(n?this.predraw_():this.renderGraph_(!1))},Q.copyUserAttrs_=function(t){var e={};for(var a in t)t.hasOwnProperty(a)&&\"file\"!=a&&t.hasOwnProperty(a)&&(e[a]=t[a]);return e},Q.prototype.resize=function(t,e){if(!this.resize_lock){this.resize_lock=!0,null===t!=(null===e)&&(console.warn(\"Dygraph.resize() should be called with zero parameters or two non-NULL parameters. Pretending it was zero.\"),t=e=null);var a=this.width_,i=this.height_;t?(this.maindiv_.style.width=t+\"px\",this.maindiv_.style.height=e+\"px\",this.width_=t,this.height_=e):(this.width_=this.maindiv_.clientWidth,this.height_=this.maindiv_.clientHeight),a==this.width_&&i==this.height_||(this.resizeElements_(),this.predraw_()),this.resize_lock=!1}},Q.prototype.adjustRoll=function(t){this.rollPeriod_=t,this.predraw_()},Q.prototype.visibility=function(){for(this.getOption(\"visibility\")||(this.attrs_.visibility=[]);this.getOption(\"visibility\").length<this.numColumns()-1;)this.attrs_.visibility.push(!0);return this.getOption(\"visibility\")},Q.prototype.setVisibility=function(t,e){var a=this.visibility(),i=!1;if(Array.isArray(t)||(null!==t&&\"object\"==typeof t?i=!0:t=[t]),i)for(var n in t)t.hasOwnProperty(n)&&(n<0||n>=a.length?console.warn(\"Invalid series number in setVisibility: \"+n):a[n]=t[n]);else for(var n=0;n<t.length;n++)\"boolean\"==typeof t[n]?n>=a.length?console.warn(\"Invalid series number in setVisibility: \"+n):a[n]=t[n]:t[n]<0||t[n]>=a.length?console.warn(\"Invalid series number in setVisibility: \"+t[n]):a[t[n]]=e;this.predraw_()},Q.prototype.size=function(){return{width:this.width_,height:this.height_}},Q.prototype.setAnnotations=function(t,e){if(this.annotations_=t,!this.layout_)return void console.warn(\"Tried to setAnnotations before dygraph was ready. Try setting them in a ready() block. See dygraphs.com/tests/annotation.html\");this.layout_.setAnnotations(this.annotations_),e||this.predraw_()},Q.prototype.annotations=function(){return this.annotations_},Q.prototype.getLabels=function(){var t=this.attr_(\"labels\");return t?t.slice():null},Q.prototype.indexFromSetName=function(t){return this.setIndexByName_[t]},Q.prototype.getRowForX=function(t){for(var e=0,a=this.numRows()-1;e<=a;){var i=a+e>>1,n=this.getValue(i,0);if(n<t)e=i+1;else if(n>t)a=i-1;else{if(e==i)return i;a=i}}return null},Q.prototype.ready=function(t){this.is_initial_draw_?this.readyFns_.push(t):t.call(this,this)},Q.prototype.addAndTrackEvent=function(t,e,a){x.addEvent(t,e,a),this.registeredEvents_.push({elem:t,type:e,fn:a})},Q.prototype.removeTrackedEvents_=function(){if(this.registeredEvents_)for(var t=0;t<this.registeredEvents_.length;t++){var e=this.registeredEvents_[t];x.removeEvent(e.elem,e.type,e.fn)}this.registeredEvents_=[]},Q.PLUGINS=[U.default,X.default,j.default,Z.default,H.default,G.default],Q.GVizChart=q.default,Q.DASHED_LINE=x.DASHED_LINE,Q.DOT_DASH_LINE=x.DOT_DASH_LINE,Q.dateAxisLabelFormatter=x.dateAxisLabelFormatter,Q.toRGB_=x.toRGB_,Q.findPos=x.findPos,Q.pageX=x.pageX,Q.pageY=x.pageY,Q.dateString_=x.dateString_,Q.defaultInteractionModel=f.default.defaultModel,Q.nonInteractiveModel=Q.nonInteractiveModel_=f.default.nonInteractiveModel_,Q.Circles=x.Circles,Q.Plugins={Legend:U.default,Axes:X.default,Annotations:H.default,ChartLabels:Z.default,Grid:G.default,RangeSelector:j.default},Q.DataHandlers={DefaultHandler:E.default,BarsHandler:R.default,CustomBarsHandler:P.default,DefaultFractionHandler:M.default,ErrorBarsHandler:T.default,FractionsBarsHandler:F.default},Q.startPan=f.default.startPan,Q.startZoom=f.default.startZoom,Q.movePan=f.default.movePan,Q.moveZoom=f.default.moveZoom,Q.endPan=f.default.endPan,Q.endZoom=f.default.endZoom,Q.numericLinearTicks=_.numericLinearTicks,Q.numericTicks=_.numericTicks,Q.dateTicker=_.dateTicker,Q.Granularity=_.Granularity,Q.getDateAxis=_.getDateAxis,Q.floatFormat=x.floatFormat,a.default=Q,e.exports=a.default}).call(this,t(\"_process\"))},{\"./datahandler/bars\":5,\"./datahandler/bars-custom\":2,\"./datahandler/bars-error\":3,\"./datahandler/bars-fractions\":4,\"./datahandler/default\":8,\"./datahandler/default-fractions\":7,\"./dygraph-canvas\":9,\"./dygraph-default-attrs\":10,\"./dygraph-gviz\":11,\"./dygraph-interaction-model\":12,\"./dygraph-layout\":13,\"./dygraph-options\":15,\"./dygraph-options-reference\":14,\"./dygraph-tickers\":16,\"./dygraph-utils\":17,\"./iframe-tarp\":19,\"./plugins/annotations\":20,\"./plugins/axes\":21,\"./plugins/chart-labels\":22,\"./plugins/grid\":23,\"./plugins/legend\":24,\"./plugins/range-selector\":25,_process:1}],19:[function(t,e,a){\"use strict\";function i(){this.tarps=[]}Object.defineProperty(a,\"__esModule\",{value:!0});var n=t(\"./dygraph-utils\"),r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(n);i.prototype.cover=function(){for(var t=document.getElementsByTagName(\"iframe\"),e=0;e<t.length;e++){var a=t[e],i=r.findPos(a),n=i.x,o=i.y,s=a.offsetWidth,l=a.offsetHeight,h=document.createElement(\"div\");h.style.position=\"absolute\",h.style.left=n+\"px\",h.style.top=o+\"px\",h.style.width=s+\"px\",h.style.height=l+\"px\",h.style.zIndex=999,document.body.appendChild(h),this.tarps.push(h)}},i.prototype.uncover=function(){for(var t=0;t<this.tarps.length;t++)this.tarps[t].parentNode.removeChild(this.tarps[t]);this.tarps=[]},a.default=i,e.exports=a.default},{\"./dygraph-utils\":17}],20:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=function(){this.annotations_=[]};i.prototype.toString=function(){return\"Annotations Plugin\"},i.prototype.activate=function(t){return{clearChart:this.clearChart,didDrawChart:this.didDrawChart}},i.prototype.detachLabels=function(){for(var t=0;t<this.annotations_.length;t++){var e=this.annotations_[t];e.parentNode&&e.parentNode.removeChild(e),this.annotations_[t]=null}this.annotations_=[]},i.prototype.clearChart=function(t){this.detachLabels()},i.prototype.didDrawChart=function(t){var e=t.dygraph,a=e.layout_.annotated_points;if(a&&0!==a.length)for(var i=t.canvas.parentNode,n=function(t,a,i){return function(n){var r=i.annotation;r.hasOwnProperty(t)?r[t](r,i,e,n):e.getOption(a)&&e.getOption(a)(r,i,e,n)}},r=t.dygraph.getArea(),o={},s=0;s<a.length;s++){var l=a[s];if(!(l.canvasx<r.x||l.canvasx>r.x+r.w||l.canvasy<r.y||l.canvasy>r.y+r.h)){var h=l.annotation,u=6;h.hasOwnProperty(\"tickHeight\")&&(u=h.tickHeight);var d=document.createElement(\"div\");d.style.fontSize=e.getOption(\"axisLabelFontSize\")+\"px\"\n;var c=\"dygraph-annotation\";h.hasOwnProperty(\"icon\")||(c+=\" dygraphDefaultAnnotation dygraph-default-annotation\"),h.hasOwnProperty(\"cssClass\")&&(c+=\" \"+h.cssClass),d.className=c;var p=h.hasOwnProperty(\"width\")?h.width:16,g=h.hasOwnProperty(\"height\")?h.height:16;if(h.hasOwnProperty(\"icon\")){var f=document.createElement(\"img\");f.src=h.icon,f.width=p,f.height=g,d.appendChild(f)}else l.annotation.hasOwnProperty(\"shortText\")&&d.appendChild(document.createTextNode(l.annotation.shortText));var v=l.canvasx-p/2;d.style.left=v+\"px\";var _=0;if(h.attachAtBottom){var y=r.y+r.h-g-u;o[v]?y-=o[v]:o[v]=0,o[v]+=u+g,_=y}else _=l.canvasy-g-u;d.style.top=_+\"px\",d.style.width=p+\"px\",d.style.height=g+\"px\",d.title=l.annotation.text,d.style.color=e.colorsMap_[l.name],d.style.borderColor=e.colorsMap_[l.name],h.div=d,e.addAndTrackEvent(d,\"click\",n(\"clickHandler\",\"annotationClickHandler\",l)),e.addAndTrackEvent(d,\"mouseover\",n(\"mouseOverHandler\",\"annotationMouseOverHandler\",l)),e.addAndTrackEvent(d,\"mouseout\",n(\"mouseOutHandler\",\"annotationMouseOutHandler\",l)),e.addAndTrackEvent(d,\"dblclick\",n(\"dblClickHandler\",\"annotationDblClickHandler\",l)),i.appendChild(d),this.annotations_.push(d);var x=t.drawingContext;if(x.save(),x.strokeStyle=h.hasOwnProperty(\"tickColor\")?h.tickColor:e.colorsMap_[l.name],x.lineWidth=h.hasOwnProperty(\"tickWidth\")?h.tickWidth:e.getOption(\"strokeWidth\"),x.beginPath(),h.attachAtBottom){var y=_+g;x.moveTo(l.canvasx,y),x.lineTo(l.canvasx,y+u)}else x.moveTo(l.canvasx,l.canvasy),x.lineTo(l.canvasx,l.canvasy-2-u);x.closePath(),x.stroke(),x.restore()}}},i.prototype.destroy=function(){this.detachLabels()},a.default=i,e.exports=a.default},{}],21:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=t(\"../dygraph-utils\"),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(i),r=function(){this.xlabels_=[],this.ylabels_=[]};r.prototype.toString=function(){return\"Axes Plugin\"},r.prototype.activate=function(t){return{layout:this.layout,clearChart:this.clearChart,willDrawChart:this.willDrawChart}},r.prototype.layout=function(t){var e=t.dygraph;if(e.getOptionForAxis(\"drawAxis\",\"y\")){var a=e.getOptionForAxis(\"axisLabelWidth\",\"y\")+2*e.getOptionForAxis(\"axisTickSize\",\"y\");t.reserveSpaceLeft(a)}if(e.getOptionForAxis(\"drawAxis\",\"x\")){var i;i=e.getOption(\"xAxisHeight\")?e.getOption(\"xAxisHeight\"):e.getOptionForAxis(\"axisLabelFontSize\",\"x\")+2*e.getOptionForAxis(\"axisTickSize\",\"x\"),t.reserveSpaceBottom(i)}if(2==e.numAxes()){if(e.getOptionForAxis(\"drawAxis\",\"y2\")){var a=e.getOptionForAxis(\"axisLabelWidth\",\"y2\")+2*e.getOptionForAxis(\"axisTickSize\",\"y2\");t.reserveSpaceRight(a)}}else e.numAxes()>2&&e.error(\"Only two y-axes are supported at this time. (Trying to use \"+e.numAxes()+\")\")},r.prototype.detachLabels=function(){function t(t){for(var e=0;e<t.length;e++){var a=t[e];a.parentNode&&a.parentNode.removeChild(a)}}t(this.xlabels_),t(this.ylabels_),this.xlabels_=[],this.ylabels_=[]},r.prototype.clearChart=function(t){this.detachLabels()},r.prototype.willDrawChart=function(t){function e(t){return Math.round(t)+.5}function a(t){return Math.round(t)-.5}var i=this,r=t.dygraph;if(r.getOptionForAxis(\"drawAxis\",\"x\")||r.getOptionForAxis(\"drawAxis\",\"y\")||r.getOptionForAxis(\"drawAxis\",\"y2\")){var o,s,l,h=t.drawingContext,u=t.canvas.parentNode,d=r.width_,c=r.height_,p=function(t){return{position:\"absolute\",fontSize:r.getOptionForAxis(\"axisLabelFontSize\",t)+\"px\",width:r.getOptionForAxis(\"axisLabelWidth\",t)+\"px\"}},g={x:p(\"x\"),y:p(\"y\"),y2:p(\"y2\")},f=function(t,e,a){var i=document.createElement(\"div\"),r=g[\"y2\"==a?\"y2\":e];n.update(i.style,r);var o=document.createElement(\"div\");return o.className=\"dygraph-axis-label dygraph-axis-label-\"+e+(a?\" dygraph-axis-label-\"+a:\"\"),o.innerHTML=t,i.appendChild(o),i};h.save();var v=r.layout_,_=t.dygraph.plotter_.area,y=function(t){return function(e){return r.getOptionForAxis(e,t)}};if(r.getOptionForAxis(\"drawAxis\",\"y\")){if(v.yticks&&v.yticks.length>0){var x=r.numAxes(),m=[y(\"y\"),y(\"y2\")];v.yticks.forEach(function(t){if(void 0!==t.label){s=_.x;var e=\"y1\",a=m[0];1==t.axis&&(s=_.x+_.w,-1,e=\"y2\",a=m[1]);var n=a(\"axisLabelFontSize\");l=_.y+t.pos*_.h,o=f(t.label,\"y\",2==x?e:null);var r=l-n/2;r<0&&(r=0),r+n+3>c?o.style.bottom=\"0\":o.style.top=r+\"px\",0===t.axis?(o.style.left=_.x-a(\"axisLabelWidth\")-a(\"axisTickSize\")+\"px\",o.style.textAlign=\"right\"):1==t.axis&&(o.style.left=_.x+_.w+a(\"axisTickSize\")+\"px\",o.style.textAlign=\"left\"),o.style.width=a(\"axisLabelWidth\")+\"px\",u.appendChild(o),i.ylabels_.push(o)}});var b=this.ylabels_[0],w=r.getOptionForAxis(\"axisLabelFontSize\",\"y\");parseInt(b.style.top,10)+w>c-w&&(b.style.top=parseInt(b.style.top,10)-w/2+\"px\")}var A;if(r.getOption(\"drawAxesAtZero\")){var O=r.toPercentXCoord(0);(O>1||O<0||isNaN(O))&&(O=0),A=e(_.x+O*_.w)}else A=e(_.x);h.strokeStyle=r.getOptionForAxis(\"axisLineColor\",\"y\"),h.lineWidth=r.getOptionForAxis(\"axisLineWidth\",\"y\"),h.beginPath(),h.moveTo(A,a(_.y)),h.lineTo(A,a(_.y+_.h)),h.closePath(),h.stroke(),2==r.numAxes()&&(h.strokeStyle=r.getOptionForAxis(\"axisLineColor\",\"y2\"),h.lineWidth=r.getOptionForAxis(\"axisLineWidth\",\"y2\"),h.beginPath(),h.moveTo(a(_.x+_.w),a(_.y)),h.lineTo(a(_.x+_.w),a(_.y+_.h)),h.closePath(),h.stroke())}if(r.getOptionForAxis(\"drawAxis\",\"x\")){if(v.xticks){var D=y(\"x\");v.xticks.forEach(function(t){if(void 0!==t.label){s=_.x+t.pos*_.w,l=_.y+_.h,o=f(t.label,\"x\"),o.style.textAlign=\"center\",o.style.top=l+D(\"axisTickSize\")+\"px\";var e=s-D(\"axisLabelWidth\")/2;e+D(\"axisLabelWidth\")>d&&(e=d-D(\"axisLabelWidth\"),o.style.textAlign=\"right\"),e<0&&(e=0,o.style.textAlign=\"left\"),o.style.left=e+\"px\",o.style.width=D(\"axisLabelWidth\")+\"px\",u.appendChild(o),i.xlabels_.push(o)}})}h.strokeStyle=r.getOptionForAxis(\"axisLineColor\",\"x\"),h.lineWidth=r.getOptionForAxis(\"axisLineWidth\",\"x\"),h.beginPath();var E;if(r.getOption(\"drawAxesAtZero\")){var O=r.toPercentYCoord(0,0);(O>1||O<0)&&(O=1),E=a(_.y+O*_.h)}else E=a(_.y+_.h);h.moveTo(e(_.x),E),h.lineTo(e(_.x+_.w),E),h.closePath(),h.stroke()}h.restore()}},a.default=r,e.exports=a.default},{\"../dygraph-utils\":17}],22:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=function(){this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};i.prototype.toString=function(){return\"ChartLabels Plugin\"},i.prototype.activate=function(t){return{layout:this.layout,didDrawChart:this.didDrawChart}};var n=function(t){var e=document.createElement(\"div\");return e.style.position=\"absolute\",e.style.left=t.x+\"px\",e.style.top=t.y+\"px\",e.style.width=t.w+\"px\",e.style.height=t.h+\"px\",e};i.prototype.detachLabels_=function(){for(var t=[this.title_div_,this.xlabel_div_,this.ylabel_div_,this.y2label_div_],e=0;e<t.length;e++){var a=t[e];a&&(a.parentNode&&a.parentNode.removeChild(a))}this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};var r=function(t,e,a,i,n){var r=document.createElement(\"div\");r.style.position=\"absolute\",r.style.left=1==a?\"0px\":e.x+\"px\",r.style.top=e.y+\"px\",r.style.width=e.w+\"px\",r.style.height=e.h+\"px\",r.style.fontSize=t.getOption(\"yLabelWidth\")-2+\"px\";var o=document.createElement(\"div\");o.style.position=\"absolute\",o.style.width=e.h+\"px\",o.style.height=e.w+\"px\",o.style.top=e.h/2-e.w/2+\"px\",o.style.left=e.w/2-e.h/2+\"px\",o.className=\"dygraph-label-rotate-\"+(1==a?\"right\":\"left\");var s=document.createElement(\"div\");return s.className=i,s.innerHTML=n,o.appendChild(s),r.appendChild(o),r};i.prototype.layout=function(t){this.detachLabels_();var e=t.dygraph,a=t.chart_div;if(e.getOption(\"title\")){var i=t.reserveSpaceTop(e.getOption(\"titleHeight\"));this.title_div_=n(i),this.title_div_.style.fontSize=e.getOption(\"titleHeight\")-8+\"px\";var o=document.createElement(\"div\");o.className=\"dygraph-label dygraph-title\",o.innerHTML=e.getOption(\"title\"),this.title_div_.appendChild(o),a.appendChild(this.title_div_)}if(e.getOption(\"xlabel\")){var s=t.reserveSpaceBottom(e.getOption(\"xLabelHeight\"));this.xlabel_div_=n(s),this.xlabel_div_.style.fontSize=e.getOption(\"xLabelHeight\")-2+\"px\";var o=document.createElement(\"div\");o.className=\"dygraph-label dygraph-xlabel\",o.innerHTML=e.getOption(\"xlabel\"),this.xlabel_div_.appendChild(o),a.appendChild(this.xlabel_div_)}if(e.getOption(\"ylabel\")){var l=t.reserveSpaceLeft(0);this.ylabel_div_=r(e,l,1,\"dygraph-label dygraph-ylabel\",e.getOption(\"ylabel\")),a.appendChild(this.ylabel_div_)}if(e.getOption(\"y2label\")&&2==e.numAxes()){var h=t.reserveSpaceRight(0);this.y2label_div_=r(e,h,2,\"dygraph-label dygraph-y2label\",e.getOption(\"y2label\")),a.appendChild(this.y2label_div_)}},i.prototype.didDrawChart=function(t){var e=t.dygraph;this.title_div_&&(this.title_div_.children[0].innerHTML=e.getOption(\"title\")),this.xlabel_div_&&(this.xlabel_div_.children[0].innerHTML=e.getOption(\"xlabel\")),this.ylabel_div_&&(this.ylabel_div_.children[0].children[0].innerHTML=e.getOption(\"ylabel\")),this.y2label_div_&&(this.y2label_div_.children[0].children[0].innerHTML=e.getOption(\"y2label\"))},i.prototype.clearChart=function(){},i.prototype.destroy=function(){this.detachLabels_()},a.default=i,e.exports=a.default},{}],23:[function(t,e,a){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0});var i=function(){};i.prototype.toString=function(){return\"Gridline Plugin\"},i.prototype.activate=function(t){return{willDrawChart:this.willDrawChart}},i.prototype.willDrawChart=function(t){function e(t){return Math.round(t)+.5}function a(t){return Math.round(t)-.5}var i,n,r,o,s=t.dygraph,l=t.drawingContext,h=s.layout_,u=t.dygraph.plotter_.area;if(s.getOptionForAxis(\"drawGrid\",\"y\")){for(var d=[\"y\",\"y2\"],c=[],p=[],g=[],f=[],v=[],r=0;r<d.length;r++)g[r]=s.getOptionForAxis(\"drawGrid\",d[r]),g[r]&&(c[r]=s.getOptionForAxis(\"gridLineColor\",d[r]),p[r]=s.getOptionForAxis(\"gridLineWidth\",d[r]),v[r]=s.getOptionForAxis(\"gridLinePattern\",d[r]),f[r]=v[r]&&v[r].length>=2);o=h.yticks,l.save(),o.forEach(function(t){if(t.has_tick){var r=t.axis;g[r]&&(l.save(),f[r]&&l.setLineDash&&l.setLineDash(v[r]),l.strokeStyle=c[r],l.lineWidth=p[r],i=e(u.x),n=a(u.y+t.pos*u.h),l.beginPath(),l.moveTo(i,n),l.lineTo(i+u.w,n),l.stroke(),l.restore())}}),l.restore()}if(s.getOptionForAxis(\"drawGrid\",\"x\")){o=h.xticks,l.save();var v=s.getOptionForAxis(\"gridLinePattern\",\"x\"),f=v&&v.length>=2;f&&l.setLineDash&&l.setLineDash(v),l.strokeStyle=s.getOptionForAxis(\"gridLineColor\",\"x\"),l.lineWidth=s.getOptionForAxis(\"gridLineWidth\",\"x\"),o.forEach(function(t){t.has_tick&&(i=e(u.x+t.pos*u.w),n=a(u.y+u.h),l.beginPath(),l.moveTo(i,n),l.lineTo(i,u.y),l.closePath(),l.stroke())}),f&&l.setLineDash&&l.setLineDash([]),l.restore()}},i.prototype.destroy=function(){},a.default=i,e.exports=a.default},{}],24:[function(t,e,a){\"use strict\";function i(t,e,a){if(!t||t.length<=1)return'<div class=\"dygraph-legend-line\" style=\"border-bottom-color: '+e+';\"></div>';var i,n,r,o,s,l=0,h=0,u=[];for(i=0;i<=t.length;i++)l+=t[i%t.length];if((s=Math.floor(a/(l-t[0])))>1){for(i=0;i<t.length;i++)u[i]=t[i]/a;h=u.length}else{for(s=1,i=0;i<t.length;i++)u[i]=t[i]/l;h=u.length+1}var d=\"\";for(n=0;n<s;n++)for(i=0;i<h;i+=2)r=u[i%u.length],o=i<t.length?u[(i+1)%u.length]:0,d+='<div class=\"dygraph-legend-dash\" style=\"margin-right: '+o+\"em; padding-left: \"+r+'em;\"></div>';return d}Object.defineProperty(a,\"__esModule\",{value:!0});var n=t(\"../dygraph-utils\"),r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(n),o=function(){this.legend_div_=null,this.is_generated_div_=!1};o.prototype.toString=function(){return\"Legend Plugin\"},o.prototype.activate=function(t){var e,a=t.getOption(\"labelsDiv\");return a&&null!==a?e=\"string\"==typeof a||a instanceof String?document.getElementById(a):a:(e=document.createElement(\"div\"),e.className=\"dygraph-legend\",t.graphDiv.appendChild(e),this.is_generated_div_=!0),this.legend_div_=e,this.one_em_width_=10,{select:this.select,deselect:this.deselect,predraw:this.predraw,didDrawChart:this.didDrawChart}};var s=function(t){var e=document.createElement(\"span\");e.setAttribute(\"style\",\"margin: 0; padding: 0 0 0 1em; border: 0;\"),t.appendChild(e);var a=e.offsetWidth;return t.removeChild(e),a},l=function(t){return t.replace(/&/g,\"&amp;\").replace(/\"/g,\"&quot;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")};o.prototype.select=function(t){var e=t.selectedX,a=t.selectedPoints,i=t.selectedRow,n=t.dygraph.getOption(\"legend\");if(\"never\"===n)return void(this.legend_div_.style.display=\"none\");if(\"follow\"===n){var r=t.dygraph.plotter_.area,s=this.legend_div_.offsetWidth,l=t.dygraph.getOptionForAxis(\"axisLabelWidth\",\"y\"),h=a[0].x*r.w+50,u=a[0].y*r.h-50;h+s+1>r.w&&(h=h-100-s-(l-r.x)),t.dygraph.graphDiv.appendChild(this.legend_div_),this.legend_div_.style.left=l+h+\"px\",this.legend_div_.style.top=u+\"px\"}var d=o.generateLegendHTML(t.dygraph,e,a,this.one_em_width_,i);this.legend_div_.innerHTML=d,this.legend_div_.style.display=\"\"},o.prototype.deselect=function(t){\"always\"!==t.dygraph.getOption(\"legend\")&&(this.legend_div_.style.display=\"none\");var e=s(this.legend_div_);this.one_em_width_=e;var a=o.generateLegendHTML(t.dygraph,void 0,void 0,e,null);this.legend_div_.innerHTML=a},o.prototype.didDrawChart=function(t){this.deselect(t)},o.prototype.predraw=function(t){if(this.is_generated_div_){t.dygraph.graphDiv.appendChild(this.legend_div_);var e=t.dygraph.getArea(),a=this.legend_div_.offsetWidth;this.legend_div_.style.left=e.x+e.w-a-1+\"px\",this.legend_div_.style.top=e.y+\"px\"}},o.prototype.destroy=function(){this.legend_div_=null},o.generateLegendHTML=function(t,e,a,n,s){var h={dygraph:t,x:e,series:[]},u={},d=t.getLabels();if(d)for(var c=1;c<d.length;c++){var p=t.getPropertiesForSeries(d[c]),g=t.getOption(\"strokePattern\",d[c]),f={dashHTML:i(g,p.color,n),label:d[c],labelHTML:l(d[c]),isVisible:p.visible,color:p.color};h.series.push(f),u[d[c]]=f}if(void 0!==e){var v=t.optionsViewForAxis_(\"x\"),_=v(\"valueFormatter\");h.xHTML=_.call(t,e,v,d[0],t,s,0);for(var y=[],x=t.numAxes(),c=0;c<x;c++)y[c]=t.optionsViewForAxis_(\"y\"+(c?1+c:\"\"));var m=t.getOption(\"labelsShowZeroValues\"),b=t.getHighlightSeries();for(c=0;c<a.length;c++){var w=a[c],f=u[w.name];if(f.y=w.yval,0===w.yval&&!m||isNaN(w.canvasy))f.isVisible=!1;else{var p=t.getPropertiesForSeries(w.name),A=y[p.axis-1],O=A(\"valueFormatter\"),D=O.call(t,w.yval,A,w.name,t,s,d.indexOf(w.name));r.update(f,{yHTML:D}),w.name==b&&(f.isHighlighted=!0)}}}return(t.getOption(\"legendFormatter\")||o.defaultFormatter).call(t,h)},o.defaultFormatter=function(t){var e=t.dygraph;if(!0!==e.getOption(\"showLabelsOnHighlight\"))return\"\";var a,i=e.getOption(\"labelsSeparateLines\");if(void 0===t.x){if(\"always\"!=e.getOption(\"legend\"))return\"\";a=\"\";for(var n=0;n<t.series.length;n++){var r=t.series[n];r.isVisible&&(\"\"!==a&&(a+=i?\"<br/>\":\" \"),a+=\"<span style='font-weight: bold; color: \"+r.color+\";'>\"+r.dashHTML+\" \"+r.labelHTML+\"</span>\")}return a}a=t.xHTML+\":\";for(var n=0;n<t.series.length;n++){var r=t.series[n];if(r.isVisible){i&&(a+=\"<br>\");a+=\"<span\"+(r.isHighlighted?' class=\"highlight\"':\"\")+\"> <b><span style='color: \"+r.color+\";'>\"+r.labelHTML+\"</span></b>:&#160;\"+r.yHTML+\"</span>\"}}return a},a.default=o,e.exports=a.default},{\"../dygraph-utils\":17}],25:[function(t,e,a){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(a,\"__esModule\",{value:!0});var n=t(\"../dygraph-utils\"),r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(n),o=t(\"../dygraph-interaction-model\"),s=i(o),l=t(\"../iframe-tarp\"),h=i(l),u=function(){this.hasTouchInterface_=\"undefined\"!=typeof TouchEvent,this.isMobileDevice_=/mobile|android/gi.test(navigator.appVersion),this.interfaceCreated_=!1};u.prototype.toString=function(){return\"RangeSelector Plugin\"},u.prototype.activate=function(t){return this.dygraph_=t,this.getOption_(\"showRangeSelector\")&&this.createInterface_(),{layout:this.reserveSpace_,predraw:this.renderStaticLayer_,didDrawChart:this.renderInteractiveLayer_}},u.prototype.destroy=function(){this.bgcanvas_=null,this.fgcanvas_=null,this.leftZoomHandle_=null,this.rightZoomHandle_=null},u.prototype.getOption_=function(t,e){return this.dygraph_.getOption(t,e)},u.prototype.setDefaultOption_=function(t,e){this.dygraph_.attrs_[t]=e},u.prototype.createInterface_=function(){this.createCanvases_(),this.createZoomHandles_(),this.initInteraction_(),this.getOption_(\"animatedZooms\")&&(console.warn(\"Animated zooms and range selector are not compatible; disabling animatedZooms.\"),this.dygraph_.updateOptions({animatedZooms:!1},!0)),this.interfaceCreated_=!0,this.addToGraph_()},u.prototype.addToGraph_=function(){var t=this.graphDiv_=this.dygraph_.graphDiv;t.appendChild(this.bgcanvas_),t.appendChild(this.fgcanvas_),t.appendChild(this.leftZoomHandle_),t.appendChild(this.rightZoomHandle_)},u.prototype.removeFromGraph_=function(){var t=this.graphDiv_;t.removeChild(this.bgcanvas_),t.removeChild(this.fgcanvas_),t.removeChild(this.leftZoomHandle_),t.removeChild(this.rightZoomHandle_),this.graphDiv_=null},u.prototype.reserveSpace_=function(t){this.getOption_(\"showRangeSelector\")&&t.reserveSpaceBottom(this.getOption_(\"rangeSelectorHeight\")+4)},u.prototype.renderStaticLayer_=function(){this.updateVisibility_()&&(this.resize_(),this.drawStaticLayer_())},u.prototype.renderInteractiveLayer_=function(){this.updateVisibility_()&&!this.isChangingRange_&&(this.placeZoomHandles_(),this.drawInteractiveLayer_())},u.prototype.updateVisibility_=function(){var t=this.getOption_(\"showRangeSelector\");if(t)this.interfaceCreated_?this.graphDiv_&&this.graphDiv_.parentNode||this.addToGraph_():this.createInterface_();else if(this.graphDiv_){this.removeFromGraph_();var e=this.dygraph_;setTimeout(function(){e.width_=0,e.resize()},1)}return t},u.prototype.resize_=function(){function t(t,e,a,i){var n=i||r.getContextPixelRatio(e);t.style.top=a.y+\"px\",t.style.left=a.x+\"px\",t.width=a.w*n,t.height=a.h*n,t.style.width=a.w+\"px\",t.style.height=a.h+\"px\",1!=n&&e.scale(n,n)}var e=this.dygraph_.layout_.getPlotArea(),a=0;this.dygraph_.getOptionForAxis(\"drawAxis\",\"x\")&&(a=this.getOption_(\"xAxisHeight\")||this.getOption_(\"axisLabelFontSize\")+2*this.getOption_(\"axisTickSize\")),this.canvasRect_={x:e.x,y:e.y+e.h+a+4,w:e.w,h:this.getOption_(\"rangeSelectorHeight\")};var i=this.dygraph_.getNumericOption(\"pixelRatio\");t(this.bgcanvas_,this.bgcanvas_ctx_,this.canvasRect_,i),t(this.fgcanvas_,this.fgcanvas_ctx_,this.canvasRect_,i)},u.prototype.createCanvases_=function(){this.bgcanvas_=r.createCanvas(),this.bgcanvas_.className=\"dygraph-rangesel-bgcanvas\",this.bgcanvas_.style.position=\"absolute\",this.bgcanvas_.style.zIndex=9,this.bgcanvas_ctx_=r.getContext(this.bgcanvas_),this.fgcanvas_=r.createCanvas(),this.fgcanvas_.className=\"dygraph-rangesel-fgcanvas\",this.fgcanvas_.style.position=\"absolute\",this.fgcanvas_.style.zIndex=9,this.fgcanvas_.style.cursor=\"default\",this.fgcanvas_ctx_=r.getContext(this.fgcanvas_)},u.prototype.createZoomHandles_=function(){var t=new Image;t.className=\"dygraph-rangesel-zoomhandle\",t.style.position=\"absolute\",t.style.zIndex=10,t.style.visibility=\"hidden\",t.style.cursor=\"col-resize\",t.width=9,t.height=16,t.src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQCAYAAADESFVDAAAAAXNSR0IArs4c6QAAAAZiS0dEANAAzwDP4Z7KegAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sHGw0cMqdt1UwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAaElEQVQoz+3SsRFAQBCF4Z9WJM8KCDVwownl6YXsTmCUsyKGkZzcl7zkz3YLkypgAnreFmDEpHkIwVOMfpdi9CEEN2nGpFdwD03yEqDtOgCaun7sqSTDH32I1pQA2Pb9sZecAxc5r3IAb21d6878xsAAAAAASUVORK5CYII=\",this.isMobileDevice_&&(t.width*=2,t.height*=2),this.leftZoomHandle_=t,this.rightZoomHandle_=t.cloneNode(!1)},u.prototype.initInteraction_=function(){var t,e,a,i,n,o,l,u,d,c,p,g,f,v,_=this,y=document,x=0,m=null,b=!1,w=!1,A=!this.isMobileDevice_,O=new h.default;t=function(t){var e=_.dygraph_.xAxisExtremes(),a=(e[1]-e[0])/_.canvasRect_.w;return[e[0]+(t.leftHandlePos-_.canvasRect_.x)*a,e[0]+(t.rightHandlePos-_.canvasRect_.x)*a]},e=function(t){return r.cancelEvent(t),b=!0,x=t.clientX,m=t.target?t.target:t.srcElement,\"mousedown\"!==t.type&&\"dragstart\"!==t.type||(r.addEvent(y,\"mousemove\",a),r.addEvent(y,\"mouseup\",i)),_.fgcanvas_.style.cursor=\"col-resize\",O.cover(),!0},a=function(t){if(!b)return!1;r.cancelEvent(t);var e=t.clientX-x;if(Math.abs(e)<4)return!0;x=t.clientX;var a,i=_.getZoomHandleStatus_();m==_.leftZoomHandle_?(a=i.leftHandlePos+e,a=Math.min(a,i.rightHandlePos-m.width-3),a=Math.max(a,_.canvasRect_.x)):(a=i.rightHandlePos+e,a=Math.min(a,_.canvasRect_.x+_.canvasRect_.w),a=Math.max(a,i.leftHandlePos+m.width+3));var o=m.width/2;return m.style.left=a-o+\"px\",_.drawInteractiveLayer_(),A&&n(),!0},i=function(t){return!!b&&(b=!1,O.uncover(),r.removeEvent(y,\"mousemove\",a),r.removeEvent(y,\"mouseup\",i),_.fgcanvas_.style.cursor=\"default\",A||n(),!0)},n=function(){try{var e=_.getZoomHandleStatus_();if(_.isChangingRange_=!0,e.isZoomed){var a=t(e);_.dygraph_.doZoomXDates_(a[0],a[1])}else _.dygraph_.resetZoom()}finally{_.isChangingRange_=!1}},o=function(t){var e=_.leftZoomHandle_.getBoundingClientRect(),a=e.left+e.width/2;e=_.rightZoomHandle_.getBoundingClientRect();var i=e.left+e.width/2;return t.clientX>a&&t.clientX<i},l=function(t){return!(w||!o(t)||!_.getZoomHandleStatus_().isZoomed)&&(r.cancelEvent(t),w=!0,x=t.clientX,\"mousedown\"===t.type&&(r.addEvent(y,\"mousemove\",u),r.addEvent(y,\"mouseup\",d)),!0)},u=function(t){if(!w)return!1;r.cancelEvent(t);var e=t.clientX-x;if(Math.abs(e)<4)return!0;x=t.clientX;var a=_.getZoomHandleStatus_(),i=a.leftHandlePos,n=a.rightHandlePos,o=n-i;i+e<=_.canvasRect_.x?(i=_.canvasRect_.x,n=i+o):n+e>=_.canvasRect_.x+_.canvasRect_.w?(n=_.canvasRect_.x+_.canvasRect_.w,i=n-o):(i+=e,n+=e);var s=_.leftZoomHandle_.width/2;return _.leftZoomHandle_.style.left=i-s+\"px\",_.rightZoomHandle_.style.left=n-s+\"px\",_.drawInteractiveLayer_(),A&&c(),!0},d=function(t){return!!w&&(w=!1,r.removeEvent(y,\"mousemove\",u),r.removeEvent(y,\"mouseup\",d),A||c(),!0)},c=function(){try{_.isChangingRange_=!0,_.dygraph_.dateWindow_=t(_.getZoomHandleStatus_()),_.dygraph_.drawGraph_(!1)}finally{_.isChangingRange_=!1}},p=function(t){if(!b&&!w){var e=o(t)?\"move\":\"default\";e!=_.fgcanvas_.style.cursor&&(_.fgcanvas_.style.cursor=e)}},g=function(t){\"touchstart\"==t.type&&1==t.targetTouches.length?e(t.targetTouches[0])&&r.cancelEvent(t):\"touchmove\"==t.type&&1==t.targetTouches.length?a(t.targetTouches[0])&&r.cancelEvent(t):i(t)},f=function(t){\"touchstart\"==t.type&&1==t.targetTouches.length?l(t.targetTouches[0])&&r.cancelEvent(t):\"touchmove\"==t.type&&1==t.targetTouches.length?u(t.targetTouches[0])&&r.cancelEvent(t):d(t)},v=function(t,e){for(var a=[\"touchstart\",\"touchend\",\"touchmove\",\"touchcancel\"],i=0;i<a.length;i++)_.dygraph_.addAndTrackEvent(t,a[i],e)},this.setDefaultOption_(\"interactionModel\",s.default.dragIsPanInteractionModel),this.setDefaultOption_(\"panEdgeFraction\",1e-4);var D=window.opera?\"mousedown\":\"dragstart\";this.dygraph_.addAndTrackEvent(this.leftZoomHandle_,D,e),this.dygraph_.addAndTrackEvent(this.rightZoomHandle_,D,e),this.dygraph_.addAndTrackEvent(this.fgcanvas_,\"mousedown\",l),this.dygraph_.addAndTrackEvent(this.fgcanvas_,\"mousemove\",p),this.hasTouchInterface_&&(v(this.leftZoomHandle_,g),v(this.rightZoomHandle_,g),v(this.fgcanvas_,f))},u.prototype.drawStaticLayer_=function(){var t=this.bgcanvas_ctx_;t.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);try{this.drawMiniPlot_()}catch(t){console.warn(t)}this.bgcanvas_ctx_.lineWidth=this.getOption_(\"rangeSelectorBackgroundLineWidth\"),t.strokeStyle=this.getOption_(\"rangeSelectorBackgroundStrokeColor\"),t.beginPath(),t.moveTo(.5,.5),t.lineTo(.5,this.canvasRect_.h-.5),t.lineTo(this.canvasRect_.w-.5,this.canvasRect_.h-.5),t.lineTo(this.canvasRect_.w-.5,.5),t.stroke()},u.prototype.drawMiniPlot_=function(){var t=this.getOption_(\"rangeSelectorPlotFillColor\"),e=this.getOption_(\"rangeSelectorPlotFillGradientColor\"),a=this.getOption_(\"rangeSelectorPlotStrokeColor\");if(t||a){var i=this.getOption_(\"stepPlot\"),n=this.computeCombinedSeriesAndLimits_(),r=n.yMax-n.yMin,o=this.bgcanvas_ctx_,s=this.dygraph_.xAxisExtremes(),l=Math.max(s[1]-s[0],1e-30),h=(this.canvasRect_.w-.5)/l,u=(this.canvasRect_.h-.5)/r,d=this.canvasRect_.w-.5,c=this.canvasRect_.h-.5,p=null,g=null;o.beginPath(),o.moveTo(.5,c);for(var f=0;f<n.data.length;f++){var v=n.data[f],_=null!==v[0]?(v[0]-s[0])*h:NaN,y=null!==v[1]?c-(v[1]-n.yMin)*u:NaN;(i||null===p||Math.round(_)!=Math.round(p))&&(isFinite(_)&&isFinite(y)?(null===p?o.lineTo(_,c):i&&o.lineTo(_,g),o.lineTo(_,y),p=_,g=y):(null!==p&&(i?(o.lineTo(_,g),o.lineTo(_,c)):o.lineTo(p,c)),p=g=null))}if(o.lineTo(d,c),o.closePath(),t){var x=this.bgcanvas_ctx_.createLinearGradient(0,0,0,c);e&&x.addColorStop(0,e),x.addColorStop(1,t),this.bgcanvas_ctx_.fillStyle=x,o.fill()}a&&(this.bgcanvas_ctx_.strokeStyle=a,this.bgcanvas_ctx_.lineWidth=this.getOption_(\"rangeSelectorPlotLineWidth\"),o.stroke())}},u.prototype.computeCombinedSeriesAndLimits_=function(){var t,e=this.dygraph_,a=this.getOption_(\"logscale\"),i=e.numColumns(),n=e.getLabels(),o=new Array(i),s=!1,l=e.visibility(),h=[];for(t=1;t<i;t++){var u=this.getOption_(\"showInRangeSelector\",n[t]);h.push(u),null!==u&&(s=!0)}if(s)for(t=1;t<i;t++)o[t]=h[t-1];else for(t=1;t<i;t++)o[t]=l[t-1];var d=[],c=e.dataHandler_,p=e.attributes_;for(t=1;t<e.numColumns();t++)if(o[t]){var g=c.extractSeries(e.rawData_,t,p);e.rollPeriod()>1&&(g=c.rollingAverage(g,e.rollPeriod(),p)),d.push(g)}var f=[];for(t=0;t<d[0].length;t++){for(var v=0,_=0,y=0;y<d.length;y++){var x=d[y][t][1];null===x||isNaN(x)||(_++,v+=x)}f.push([d[0][t][0],v/_])}var m=Number.MAX_VALUE,b=-Number.MAX_VALUE;for(t=0;t<f.length;t++){var w=f[t][1];null!==w&&isFinite(w)&&(!a||w>0)&&(m=Math.min(m,w),b=Math.max(b,w))}if(a)for(b=r.log10(b),b+=.25*b,m=r.log10(m),t=0;t<f.length;t++)f[t][1]=r.log10(f[t][1]);else{var A,O=b-m;A=O<=Number.MIN_VALUE?.25*b:.25*O,b+=A,m-=A}return{data:f,yMin:m,yMax:b}},u.prototype.placeZoomHandles_=function(){var t=this.dygraph_.xAxisExtremes(),e=this.dygraph_.xAxisRange(),a=t[1]-t[0],i=Math.max(0,(e[0]-t[0])/a),n=Math.max(0,(t[1]-e[1])/a),r=this.canvasRect_.x+this.canvasRect_.w*i,o=this.canvasRect_.x+this.canvasRect_.w*(1-n),s=Math.max(this.canvasRect_.y,this.canvasRect_.y+(this.canvasRect_.h-this.leftZoomHandle_.height)/2),l=this.leftZoomHandle_.width/2;this.leftZoomHandle_.style.left=r-l+\"px\",this.leftZoomHandle_.style.top=s+\"px\",this.rightZoomHandle_.style.left=o-l+\"px\",this.rightZoomHandle_.style.top=this.leftZoomHandle_.style.top,this.leftZoomHandle_.style.visibility=\"visible\",this.rightZoomHandle_.style.visibility=\"visible\"},u.prototype.drawInteractiveLayer_=function(){var t=this.fgcanvas_ctx_;t.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);var e=this.canvasRect_.w-1,a=this.canvasRect_.h-1,i=this.getZoomHandleStatus_();if(t.strokeStyle=this.getOption_(\"rangeSelectorForegroundStrokeColor\"),t.lineWidth=this.getOption_(\"rangeSelectorForegroundLineWidth\"),i.isZoomed){var n=Math.max(1,i.leftHandlePos-this.canvasRect_.x),r=Math.min(e,i.rightHandlePos-this.canvasRect_.x);t.fillStyle=\"rgba(240, 240, 240, \"+this.getOption_(\"rangeSelectorAlpha\").toString()+\")\",t.fillRect(0,0,n,this.canvasRect_.h),t.fillRect(r,0,this.canvasRect_.w-r,this.canvasRect_.h),t.beginPath(),t.moveTo(1,1),t.lineTo(n,1),t.lineTo(n,a),t.lineTo(r,a),t.lineTo(r,1),t.lineTo(e,1),t.stroke()}else t.beginPath(),t.moveTo(1,1),t.lineTo(1,a),t.lineTo(e,a),t.lineTo(e,1),t.stroke()},u.prototype.getZoomHandleStatus_=function(){var t=this.leftZoomHandle_.width/2,e=parseFloat(this.leftZoomHandle_.style.left)+t,a=parseFloat(this.rightZoomHandle_.style.left)+t;return{leftHandlePos:e,rightHandlePos:a,isZoomed:e-1>this.canvasRect_.x||a+1<this.canvasRect_.x+this.canvasRect_.w}},a.default=u,e.exports=a.default},{\"../dygraph-interaction-model\":12,\"../dygraph-utils\":17,\"../iframe-tarp\":19}]},{},[18])(18)});\n//# sourceMappingURL=dist/dygraph.min.js.map\n","import { ChartData, ChartMetadata } from \"../chart-types\"\nimport { seconds4human } from \"./seconds4human\"\n\nexport const LEGEND_BOTTOM_SINGLE_LINE_HEIGHT = 80\n\nexport const legendPluginModuleString = (withContext: boolean, chartMetadata: ChartMetadata) => {\n let str = \" \"\n let context = \"\"\n\n if (withContext && typeof chartMetadata.context === \"string\") {\n // eslint-disable-next-line prefer-destructuring\n context = chartMetadata.context\n }\n\n if (typeof chartMetadata.plugin === \"string\" && chartMetadata.plugin !== \"\") {\n str = chartMetadata.plugin\n\n if (str.endsWith(\".plugin\")) {\n str = str.substring(0, str.length - 7)\n }\n\n if (typeof chartMetadata.module === \"string\" && chartMetadata.module !== \"\") {\n str += `:${chartMetadata.module}`\n }\n\n if (withContext && context !== \"\") {\n str += `, ${context}`\n }\n } else if (withContext && context !== \"\") {\n str = context\n }\n return str\n}\n\nexport const legendResolutionTooltip = (chartData: ChartData, chartMetadata: ChartMetadata) => {\n const collected = chartMetadata.update_every\n // todo if there's no data (but maybe there won't be situation like this), then use \"collected\"\n const viewed = chartData.view_update_every\n if (collected === viewed) {\n return `resolution ${seconds4human(collected)}`\n }\n\n return `resolution ${seconds4human(viewed)}, collected every ${seconds4human(collected)}`\n}\n\ntype GetNewSelectedDimensions = (arg: {\n allDimensions: string[],\n selectedDimensions: string[],\n clickedDimensionName: string,\n isModifierKeyPressed: boolean,\n}) => string[]\n\nexport const getNewSelectedDimensions: GetNewSelectedDimensions = ({\n allDimensions,\n selectedDimensions,\n clickedDimensionName,\n isModifierKeyPressed,\n}) => {\n // when selectedDimensions is empty, then all dimensions should be enabled\n // let's narrow this case now\n const enabledDimensions = selectedDimensions.length === 0 ? allDimensions : selectedDimensions\n const isCurrentlySelected = enabledDimensions.includes(clickedDimensionName)\n\n let newSelectedDimensions: string[]\n if (!isModifierKeyPressed\n && ((isCurrentlySelected && enabledDimensions.length > 1) || !isCurrentlySelected)\n ) {\n newSelectedDimensions = [clickedDimensionName]\n } else if (isCurrentlySelected) { // modifier key pressed\n newSelectedDimensions = enabledDimensions.filter(\n (dimension) => dimension !== clickedDimensionName,\n )\n } else { // modifier key pressed\n newSelectedDimensions = enabledDimensions.concat(clickedDimensionName)\n }\n\n if (newSelectedDimensions.length === allDimensions.length) {\n return []\n }\n return newSelectedDimensions\n}\n","import { createReducer } from \"redux-act\"\n\nimport { ChartsMetadata } from \"domains/global/types\"\n\nimport { startSnapshotModeAction, stopSnapshotModeAction, isSignedInAction, setOfflineAction } from \"./actions\"\n\nexport type StateT = {\n isSnapshotMode: boolean\n snapshotCharts: ChartsMetadata | null\n snapshotDataPoints: number | null\n isSignedIn: boolean\n offline: boolean\n}\n\nexport const initialState: StateT = {\n isSnapshotMode: false,\n snapshotCharts: null,\n snapshotDataPoints: null,\n isSignedIn: false,\n offline: false\n}\n\nexport const dashboardReducer = createReducer<StateT>({}, initialState)\n\ndashboardReducer.on(startSnapshotModeAction, (state, { charts, dataPoints }) => ({\n ...state,\n snapshotCharts: charts, // todo integrate with /charts result\n snapshotDataPoints: dataPoints,\n isSnapshotMode: true,\n}))\n\ndashboardReducer.on(stopSnapshotModeAction, (state) => ({\n ...state,\n isSnapshotMode: initialState.isSnapshotMode,\n snapshotCharts: initialState.snapshotCharts,\n snapshotDataPoints: initialState.snapshotDataPoints,\n}))\n\ndashboardReducer.on(isSignedInAction, (state, { isSignedIn }) => ({\n ...state,\n isSignedIn\n}))\n\ndashboardReducer.on(setOfflineAction, (state, { offline }) => ({\n ...state,\n offline\n}))\n","import { combineReducers } from \"redux\"\n\nimport { globalReducer } from \"domains/global/reducer\"\nimport { storeKey as globalKey } from \"domains/global/constants\"\n\nimport { chartReducer } from \"domains/chart/reducer\"\nimport { storeKey as chartKey } from \"domains/chart/constants\"\n\nimport { dashboardReducer } from \"domains/dashboard/reducer\"\nimport { storeKey as dashboardKey } from \"domains/dashboard/constants\"\n\nexport default combineReducers({\n [globalKey]: globalReducer,\n [chartKey]: chartReducer,\n\n // todo lazy-load and inject those reducers, when they are not needed (dashboard.js, cloud)\n [dashboardKey]: dashboardReducer,\n})\n","import axios from \"axios\"\n\nexport const axiosInstance = axios.create({\n headers: {\n \"Cache-Control\": \"no-cache, no-store\",\n Pragma: \"no-cache\",\n },\n withCredentials: true,\n})\n","import axios from \"axios\"\n\nexport const axiosInstance = axios.create({\n // timeout: 30 * 1000, // todo\n headers: {\n \"Cache-Control\": \"no-cache, no-store\",\n Pragma: \"no-cache\",\n },\n withCredentials: true,\n})\n","import {\n Subject, from, empty,\n} from \"rxjs\"\nimport {\n mergeMap, tap, catchError, startWith, switchMap,\n} from \"rxjs/operators\"\nimport { CancelTokenSource, Method } from \"axios\"\n\nimport { UnknownStringKeyT } from \"types/common\"\n\nimport { axiosInstance } from \"./axios-instance\"\n\nexport const CHART_UNMOUNTED = \"Chart scrolled out of view\"\n\ninterface FetchInputEvent {\n url: string\n method?: Method\n params?: UnknownStringKeyT\n data?: UnknownStringKeyT\n onErrorCallback: (error: Error) => void\n onSuccessCallback: (data: { [key: string]: unknown }) => void\n cancelTokenSource?: CancelTokenSource\n}\n\nconst METRICS_TIMEOUT = 15_000\n\nexport const getFetchStream = (concurrentCallsLimit: number) => {\n const fetch$ = new Subject<FetchInputEvent>()\n const resetFetch$ = new Subject()\n\n const handler = mergeMap(({\n url, method = \"GET\", params = {}, data, onErrorCallback, onSuccessCallback, cancelTokenSource,\n }: FetchInputEvent) => (\n from(axiosInstance.request({\n url,\n method,\n params,\n data,\n timeout: METRICS_TIMEOUT,\n cancelToken: cancelTokenSource?.token,\n })).pipe(\n tap(({ data: responseData }) => { onSuccessCallback(responseData) }),\n catchError((error: Error) => {\n // todo implement error handling to support NETDATA.options.current.retries_on_data_failures\n if (error?.message !== CHART_UNMOUNTED) {\n console.warn(\"fetch error\", url) // eslint-disable-line no-console\n }\n onErrorCallback(error)\n return empty()\n }),\n )\n ), concurrentCallsLimit)\n\n const output = resetFetch$.pipe(\n startWith(null),\n switchMap(() => fetch$.pipe(handler)),\n )\n\n output.subscribe()\n return [fetch$, resetFetch$]\n}\n","import { tail, sum, reverse } from \"ramda\"\nimport { ChartData, DygraphData } from \"domains/chart/chart-types\"\n\n/*\nwhen requesting for bigger time interval than available history in the agent,\nwe get only the available range. Dashboard was first designed to not allow zooming-out too much.\nBut we want to show the requested time-range, so to do it consistently, we return nr of points\nwhen making the request, and after getting result, we add `null`s at the beginning\n */\n\ninterface GetCorrectedPointsArg {\n after: number\n before: number\n firstEntry: number\n points: number\n}\nexport const getCorrectedPoints = ({\n after,\n before,\n firstEntry,\n points,\n}: GetCorrectedPointsArg) => {\n const nowInSeconds = Math.round(new Date().valueOf() / 1000)\n const afterAbsolute = after > 0 ? after : nowInSeconds + after\n const beforeAbsolute = before > 0 ? before : nowInSeconds + before\n\n if (afterAbsolute < firstEntry) {\n // take into account first_entry\n const realAfter = Math.max(afterAbsolute, firstEntry)\n const requestedRange = beforeAbsolute - afterAbsolute\n const availableRange = beforeAbsolute - realAfter\n\n return Math.round((points * availableRange) / requestedRange)\n }\n return null\n}\n\nexport const addPointsDygraph = (data: DygraphData, nrOfPointsToFill: number) => {\n const viewUpdateEvery = data.view_update_every\n if (!data.result.data.length) {\n return data\n }\n const firstAddedTimestamp = data.result.data[0][0] - nrOfPointsToFill * viewUpdateEvery\n const emptyPoint = tail(data.result.labels).map(() => null)\n const nulls = new Array(nrOfPointsToFill)\n .fill(null)\n .map((_, i) => [firstAddedTimestamp + i * viewUpdateEvery, ...emptyPoint])\n return {\n ...data,\n after: data.after - viewUpdateEvery * nrOfPointsToFill,\n result: {\n ...data.result,\n data: nulls.concat(data.result.data),\n },\n }\n}\n\nexport const fillMissingData = (data: ChartData, nrOfPointsToFill: number) => {\n if (data.format === \"json\") {\n return addPointsDygraph(data as DygraphData, nrOfPointsToFill)\n }\n return data\n}\n\nconst emptyArray: number[] = []\nexport const transformResults = (data: ChartData, format: string, shouldRevertFlip: boolean) => {\n if (format === \"array\" && data.format === \"json\") {\n if (Array.isArray(data.result)) return data\n\n const dataResult = shouldRevertFlip\n ? reverse((data as DygraphData).result.data)\n : (data as DygraphData).result.data\n return {\n ...data,\n // set proper output type so other functions like fillMissingData work properly\n format: \"array\",\n result: dataResult.reduce((acc: number[], pointData: number[]) => {\n pointData.shift()\n return [...acc, sum(pointData)]\n }, emptyArray),\n }\n }\n return data\n}\n\nexport const mapDefaultAggrMethod = (unit: string): string => {\n if (unit.length === 0) {\n return \"sum\"\n }\n const avgUnits: any = {\n percentage: true,\n percent: true,\n \"rotations/min\": true,\n ratio: true,\n seconds: true,\n \"seconds ago\": true,\n milliseconds: true,\n millisec: true,\n ms: true,\n \"log2 s\": true,\n minutes: true,\n hours: true,\n interval: true,\n ticks: true,\n celsius: true,\n c: true,\n mhz: true,\n hz: true,\n volts: true,\n kwh: true,\n ampere: true,\n amps: true,\n dbm: true,\n value: true,\n stratum: true,\n units: true,\n watt: true,\n temperature: true,\n \"random number\": true,\n rpm: true,\n quadro: true,\n \"adv/item\": true,\n multiplier: true,\n geforce: true,\n }\n if (avgUnits[unit.toLowerCase()]) {\n return \"avg\"\n }\n const avgUnitsRegExes: any = [\".*%.*\", \".*/operation\", \".*/run\", \".*/ run\", \".*/request\"]\n if (\n avgUnitsRegExes.some((regEx: string) => {\n const regExpression = RegExp(regEx, \"i\")\n return regExpression.test(unit.toLowerCase())\n })\n ) {\n return \"avg\"\n }\n return \"sum\"\n}\n","import styled from \"styled-components\"\nimport {\n getSizeBy, Text, TextSmall, getColor,\n} from \"@netdata/netdata-ui\"\n\nexport const Container = styled.div`\n width: 100%;\n height: 100%;\n min-height: ${getSizeBy(10)};\n display: flex;\n flex-flow: row nowrap;\n padding: ${getSizeBy(2)} ${getSizeBy(2)} ${getSizeBy(2)} ${getSizeBy(2)};\n`\n\nexport const SideContent = styled.div<{ right?: boolean }>`\n flex-grow: 0;\n flex-shrink: 0;\n height: 100%;\n align-self: stretch;\n`\n\nexport const ContentContainer = styled.div``\n\nexport const HeaderText = styled(Text)<{ error?: boolean; success?: boolean }>`\n color: ${({ error, success }) => (success && getColor(\"success\"))\n || (error && getColor(\"error\"))};\n font-weight: bold;\n display: block;\n margin-bottom: ${getSizeBy()};\n`\n\nexport const ContentText = styled(TextSmall)<{ error?: boolean; success?: boolean }>`\n display: block;\n color: ${({ error }) => (error && getColor(\"error\")) || getColor(\"border\")};\n`\n","import React from \"react\"\nimport {\n Container, SideContent, ContentContainer, HeaderText, ContentText,\n} from \"./styled\"\n\ninterface NotificationProps {\n header?: string\n leftContent?: React.ReactNode\n rightContent?: React.ReactNode\n text?: React.ReactNode\n className?: string\n renderContent?: (props: NotificationProps) => React.ReactNode | React.ReactNodeArray | null\n success?: boolean\n error?: boolean\n}\n\nexport const UINotification = (props: NotificationProps) => {\n const {\n header, text, leftContent, rightContent, renderContent, success, error,\n } = props\n return (\n <Container>\n {leftContent && <SideContent>{leftContent}</SideContent>}\n <ContentContainer>\n {header && (\n <HeaderText success={success} error={error}>\n {header}\n </HeaderText>\n )}\n {text && (\n <ContentText success={success} error={error}>\n {text}\n </ContentText>\n )}\n {renderContent && renderContent(props)}\n </ContentContainer>\n {rightContent && <SideContent right>{rightContent}</SideContent>}\n </Container>\n )\n}\n\n// for usage in non-jsx contexts\n// eslint-disable-next-line react/jsx-props-no-spreading\nexport const createUINotification = (props: NotificationProps) => <UINotification {...props} />\n","import styled from \"styled-components\"\nimport { getSizeBy } from \"@netdata/netdata-ui\"\n\nexport const NodeIconContainer = styled.div`\n width: ${getSizeBy(5)};\n height: ${getSizeBy(5)};\n margin-right: ${getSizeBy(2)};\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nexport const NotificationLink = styled.a`\n &,\n &:hover {\n text-decoration: underline;\n color: inherit;\n }\n`\n","import React from \"react\"\nimport { Icon } from \"@netdata/netdata-ui\"\nimport { toast } from \"react-toastify\"\n\nimport { createUINotification } from \"components/ui-notification\"\n\nimport * as S from \"./styled\"\n\nexport const toastOptions = {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 10000,\n pauseOnFocusLoss: false,\n}\n\nexport const showCloudInstallationProblemNotification = () => {\n const uiNotification = {\n header: \"Installation error\",\n text: \"The installer could not prepare the required dependencies to enable Netdata Cloud\"\n + \" functionality\",\n }\n const notificationComponent = createUINotification({\n ...uiNotification,\n error: true,\n leftContent: (\n <S.NodeIconContainer>\n <Icon name=\"gear\" size=\"large\" color=\"error\" />\n </S.NodeIconContainer>\n ),\n })\n toast.error(notificationComponent, toastOptions)\n}\n\nexport const showCloudConnectionProblemNotification = () => {\n const uiNotification = {\n header: \"Connection Problem\",\n text: (\n <S.NotificationLink\n href=\"https://learn.netdata.cloud/docs/agent/packaging/installer#automatic-one-line-installation-script\"\n target=\"_blank\"\n >\n To access Cloud install again your agent via the kickstart script\n </S.NotificationLink>\n ),\n }\n const notificationComponent = createUINotification({\n ...uiNotification,\n error: true,\n leftContent: (\n <S.NodeIconContainer>\n <Icon name=\"gear\" size=\"large\" color=\"error\" />\n </S.NodeIconContainer>\n ),\n })\n toast.error(notificationComponent, toastOptions)\n}\n","import {\n mergeAll, pipe, split, mergeRight,\n} from \"ramda\"\nimport { mapIndexed } from \"ramda-adjunct\"\n\nconst defaultUrlOptions = {\n hash: \"#\",\n theme: null,\n help: null,\n mode: \"live\", // 'live', 'print'\n update_always: false,\n pan_and_zoom: false,\n server: null,\n after: 0,\n before: 0,\n highlight: false,\n highlight_after: 0,\n highlight_before: 0,\n nowelcome: false,\n show_alarms: false,\n chart: null,\n family: null,\n alarm: null,\n alarm_unique_id: 0,\n alarm_id: 0,\n alarm_event_id: 0,\n alarm_when: 0,\n} as {[key: string]: unknown}\n\nconst isInvalidPair = ([key, value]: [string, string]) => (\n defaultUrlOptions[key] === undefined || value === undefined\n)\n\nconst parseQueryPair = ([key, value]: [string, string]): {[key: string] : unknown} => {\n if (isInvalidPair([key, value])) {\n return {}\n }\n return {\n [key]: decodeURIComponent(value),\n }\n}\n\nexport const parseUrl = pipe(\n split(\";\"),\n mapIndexed((value, index) => (\n (index === 0) ? { hash: value } : parseQueryPair((value.split(\"=\") as [string, string]))\n )),\n mergeAll,\n mergeRight(defaultUrlOptions),\n)\n\nconst urlParsed = parseUrl(document.location.hash)\n\nexport const isPrintMode = urlParsed.mode === \"print\"\n","import {\n call,\n put,\n takeEvery,\n select,\n spawn,\n take,\n delay,\n} from \"redux-saga/effects\"\nimport { channel } from \"redux-saga\"\nimport { Action } from \"redux-act\"\n\nimport { axiosInstance } from \"utils/api\"\nimport { alwaysEndWithSlash, serverDefault } from \"utils/server-detection\"\nimport { getFetchStream } from \"utils/netdata-sdk\"\nimport { isMainJs } from \"utils/env\"\nimport { fillMissingData, transformResults } from \"utils/fill-missing-data\"\nimport {\n showCloudInstallationProblemNotification, showCloudConnectionProblemNotification,\n} from \"components/notifications\"\nimport { selectGlobalPanAndZoom, selectSnapshot, selectRegistry } from \"domains/global/selectors\"\nimport { StateT as GlobalStateT } from \"domains/global/reducer\"\nimport { stopSnapshotModeAction } from \"domains/dashboard/actions\"\nimport { isPrintMode } from \"domains/dashboard/utils/parse-url\"\nimport { INFO_POLLING_FREQUENCY } from \"domains/global/constants\"\n\nimport {\n fetchDataAction,\n FetchDataPayload,\n fetchChartAction,\n FetchChartPayload,\n fetchDataForSnapshotAction,\n FetchDataForSnapshotPayload,\n fetchInfoAction,\n FetchInfoPayload,\n fetchDataCancelAction,\n} from \"./actions\"\nimport { ChartData } from \"./chart-types\"\n\nconst CONCURRENT_CALLS_LIMIT_METRICS = isMainJs ? 30 : 60\nconst CONCURRENT_CALLS_LIMIT_PRINT = 2\nconst CONCURRENT_CALLS_LIMIT_SNAPSHOTS = 1\n\nconst fetchDataResponseChannel = channel()\n\nexport function* watchFetchDataResponseChannel() {\n while (true) {\n const action = (yield take(fetchDataResponseChannel))\n\n // special case - if requested relative timeRange, and during request the mode has been changed\n // to absolute global-pan-and-zoom, cancel the store update\n // todo do xss check of data\n if (action.type === fetchDataAction.success.toString()) {\n const payload = (action.payload as FetchDataPayload)\n const { viewRange } = payload.fetchDataParams\n const [start, end] = viewRange\n const globalPanAndZoom = (yield select(\n selectGlobalPanAndZoom,\n )) as GlobalStateT[\"globalPanAndZoom\"]\n\n if (globalPanAndZoom\n && (start <= 0 || end <= 0) // check if they are not timestamps\n ) {\n yield put(fetchDataCancelAction({\n id: payload.id,\n }))\n // eslint-disable-next-line no-continue\n continue\n }\n }\n\n yield put(action)\n }\n}\n\n// todo construct a new version of key that will be safer to be used in future\n// (while keeping old key supported for some time)\n// perhaps the key could be passed as attribute to the chart, to avoid matching\nconst constructCompatibleKey = (dimensions: undefined | string, options: string) => (\n // strange transformations for backwards compatibility. old snapshot keys were encoded this way\n // that empty dimensions were actually \"null\" string\n `${dimensions === undefined\n ? \"null\"\n : encodeURIComponent(dimensions)\n },${encodeURIComponent(options)}`\n)\n\n// currently BE always transforms data as if `flip` was there\nconst IS_FLIP_RESPECTED_IN_COMPOSITE_CHARTS = false\n\nconst getGroupByValues = (groupBy) => {\n if (groupBy === \"chart\") return \"node\"\n if (groupBy === \"node\" || groupBy === \"dimension\") return groupBy\n return `label=${groupBy}`\n}\n\nconst [fetchMetrics$] = getFetchStream(\n isPrintMode ? CONCURRENT_CALLS_LIMIT_PRINT : CONCURRENT_CALLS_LIMIT_METRICS,\n)\nfunction* fetchDataSaga({ payload }: Action<FetchDataPayload>) {\n const {\n // props for api\n host, context, chart, format, points, group, gtime, options,\n after, before, dimensions, labels, postGroupBy, postAggregationMethod,\n aggrMethod, dimensionsAggrMethod, nodeIDs, httpMethod,\n groupBy = \"dimension\", // group by node, dimension, or label keys\n aggrGroups = [],\n // props for the store\n fetchDataParams, id, cancelTokenSource,\n } = payload\n\n const snapshot = yield select(selectSnapshot)\n if (snapshot) {\n // if reading snapshot\n const dimensionsWithUrlOptions = constructCompatibleKey(dimensions, options)\n const matchingKey = Object.keys(snapshot.data).find((snapshotKey) => (\n snapshotKey.startsWith(chart) && snapshotKey.includes(dimensionsWithUrlOptions)\n ))\n if (!matchingKey) {\n // eslint-disable-next-line no-console\n console.warn(`Could not find snapshot key for chart: ${chart} and id ${id}`)\n return\n }\n const data = snapshot.data[matchingKey]\n yield put(fetchDataAction.success({\n chartData: data,\n fetchDataParams,\n id,\n }))\n return\n }\n\n const url = isMainJs\n ? `${alwaysEndWithSlash(host)}api/v1/data`\n : host\n\n const agentOptionsOriginal = options.split(\"|\")\n const hasFlip = agentOptionsOriginal.includes(\"flip\")\n const shouldAddFakeFlip = !IS_FLIP_RESPECTED_IN_COMPOSITE_CHARTS && !hasFlip\n // if flip is not respected in composite-charts, send it always (like dygraph charts normally do)\n const agentOptions = shouldAddFakeFlip\n ? agentOptionsOriginal.concat(\"flip\") : agentOptionsOriginal\n\n const groupValues = [\n getGroupByValues(groupBy),\n postGroupBy && `label=${postGroupBy}`,\n ].filter(Boolean)\n\n const axiosOptions = httpMethod === \"POST\" ? {\n // used by cloud's room-overview\n data: {\n filter: {\n nodeIDs,\n context,\n dimensions: dimensions ? dimensions.split(/['|]/) : undefined,\n labels,\n },\n after,\n before,\n points,\n group,\n gtime,\n agent_options: agentOptions,\n ...(postAggregationMethod && { post_aggregation_methods: [postAggregationMethod] }),\n aggregations: [groupBy !== \"dimension\" && {\n method: dimensionsAggrMethod || \"sum\",\n groupBy: [\"chart\", ...groupValues],\n },\n groupBy !== \"chart\" && {\n method: aggrMethod,\n groupBy: groupValues,\n ...(aggrGroups.length && { labels: aggrGroups }),\n }].filter(Boolean),\n },\n } : {\n params: {\n chart,\n _: new Date().valueOf(),\n format,\n points,\n group,\n gtime,\n options,\n after,\n before,\n dimensions,\n },\n }\n\n const onSuccessCallback = (data: { [id: string]: unknown}) => {\n if (!data?.result) {\n fetchDataResponseChannel.put(fetchDataAction.failure({ id }))\n } else {\n const { fillMissingPoints } = fetchDataParams\n\n const transformedResults = transformResults(\n (data as unknown) as ChartData,\n format,\n shouldAddFakeFlip,\n )\n\n const chartData = {\n ...transformedResults,\n // @ts-ignore\n ...((\"post_aggregated_data\" in data.result) && {\n postAggregationMethod,\n groupBy,\n postGroupBy,\n aggrGroups,\n // @ts-ignore\n postAggregated: data.result.post_aggregated_data[postAggregationMethod],\n }),\n }\n\n fetchDataResponseChannel.put(fetchDataAction.success({\n chartData: fillMissingPoints\n ? fillMissingData(chartData as ChartData, fillMissingPoints)\n : chartData,\n fetchDataParams,\n id,\n }))\n }\n }\n\n const onErrorCallback = (error: Error) => {\n console.warn(\"fetch chart data failure\", error) // eslint-disable-line no-console\n fetchDataResponseChannel.put(fetchDataAction.failure({ id }))\n }\n\n fetchMetrics$.next({\n ...axiosOptions,\n method: httpMethod || \"GET\",\n url,\n onErrorCallback,\n onSuccessCallback,\n cancelTokenSource,\n })\n}\n\nconst [fetchForSnapshot$, resetFetchForSnapshot$] = getFetchStream(CONCURRENT_CALLS_LIMIT_SNAPSHOTS)\nfunction fetchDataForSnapshotSaga({ payload }: Action<FetchDataForSnapshotPayload>) {\n const {\n host, chart, format, points, group, gtime, options,\n after, before, dimensions, aggrMethod,\n groupBy,\n nodeIDs,\n chartLibrary, id,\n } = payload\n\n // backwards-compatibility, the keys look like this:\n // net_errors.stf0,dygraph,null,ms%7Cflip%7Cjsonwrap%7Cnonzero\n const chartDataUniqueID = `${chart},${chartLibrary},${constructCompatibleKey(\n dimensions,\n options,\n )}`\n\n const url = `${alwaysEndWithSlash(host)}api/v1/data`\n const params = {\n chart,\n _: new Date().valueOf(),\n format,\n points,\n group,\n gtime,\n options,\n after,\n before,\n dimensions,\n ...(aggrMethod && { aggr_method: aggrMethod }),\n ...(nodeIDs && { node_ids: nodeIDs.join(\",\") }),\n ...(groupBy && { groupBy }),\n }\n\n const onSuccessCallback = (data: unknown) => {\n fetchDataResponseChannel.put(fetchDataForSnapshotAction.success({\n snapshotData: data,\n id,\n }))\n // temporarily, until main.js finished rewrite\n // @ts-ignore\n window.chartUpdated({\n chartDataUniqueID,\n data,\n })\n }\n\n const onErrorCallback = () => {\n fetchDataResponseChannel.put(fetchDataForSnapshotAction.failure({ id }))\n // @ts-ignore\n window.chartUpdated({\n chartDataUniqueID,\n chart,\n data: null,\n })\n }\n\n fetchForSnapshot$.next({\n url,\n params,\n onErrorCallback,\n onSuccessCallback,\n })\n}\n\nfunction stopSnapshotModeSaga() {\n // any calls in the queue should stop when save-snapshot modal is closed\n resetFetchForSnapshot$.next()\n}\n\nfunction* fetchChartSaga({ payload }: Action<FetchChartPayload>) {\n const { chart, id, host } = payload\n\n const snapshot = yield select(selectSnapshot)\n if (snapshot) {\n yield put(fetchChartAction.success({\n chartMetadata: snapshot.charts.charts[chart],\n id,\n }))\n return\n }\n\n let response\n const url = isMainJs\n ? `${alwaysEndWithSlash(host)}api/v1/chart`\n : host.replace(\"/data\", \"/chart\")\n try {\n response = yield call(axiosInstance.get, url, {\n params: {\n chart,\n },\n })\n } catch (e) {\n console.warn(\"fetch chart details failure\") // eslint-disable-line no-console\n yield put(fetchChartAction.failure({ id }))\n return\n }\n yield put(fetchChartAction.success({\n chartMetadata: response.data,\n id,\n }))\n}\n\nfunction* fetchInfoSaga({ payload }: Action<FetchInfoPayload>) {\n const { poll } = payload\n let isCloudEnabled = false\n let isAgentClaimed = false\n let isCloudAvailable = false\n let isACLKAvailable = false\n\n try {\n const registry: GlobalStateT[\"registry\"] = yield select(selectRegistry)\n const wasCloudAvailable = registry?.isCloudAvailable\n const wasACLKAvailable = registry?.isACLKAvailable\n\n const { data } = yield call(axiosInstance.get, `${serverDefault}/api/v1/info`)\n isCloudAvailable = data?.[\"cloud-available\"] || false\n isCloudEnabled = data?.[\"cloud-enabled\"] || false\n isAgentClaimed = data?.[\"agent-claimed\"] || false\n isACLKAvailable = data?.[\"aclk-available\"] || false\n\n yield put(fetchInfoAction.success({\n isCloudAvailable, isCloudEnabled, isAgentClaimed, isACLKAvailable, fullInfoPayload: data,\n }))\n\n if (isCloudEnabled && (wasCloudAvailable === null) && !isCloudAvailable) {\n // show only once per session\n showCloudInstallationProblemNotification()\n }\n if (isCloudAvailable && isAgentClaimed && (wasACLKAvailable !== false) && !isACLKAvailable) {\n // show at session-init and if we see a change of isACLKAvailable from true to false\n showCloudConnectionProblemNotification()\n }\n // TODO: No success notification spec`ed?\n // else if (!wasACLKAvailable && isACLKAvailable) {\n // toast.success(\"Connected to the Cloud!\", {\n // position: \"bottom-right\",\n // type: toast.TYPE.SUCCESS,\n // autoClose: NOTIFICATIONS_TIMEOUT,\n // })\n // }\n } catch (e) {\n console.warn(\"fetch agent info failure\") // eslint-disable-line no-console\n yield put(fetchInfoAction.failure())\n }\n\n if (poll && isCloudEnabled && isAgentClaimed) {\n yield delay(INFO_POLLING_FREQUENCY)\n yield put(fetchInfoAction({ poll: true }))\n }\n}\n\n\nexport function* chartSagas() {\n yield takeEvery(fetchDataAction.request, fetchDataSaga)\n yield takeEvery(fetchChartAction.request, fetchChartSaga)\n yield takeEvery(fetchDataForSnapshotAction.request, fetchDataForSnapshotSaga)\n yield takeEvery(stopSnapshotModeAction, stopSnapshotModeSaga)\n yield takeEvery(fetchInfoAction.request, fetchInfoSaga)\n yield spawn(watchFetchDataResponseChannel)\n}\n","export const sidePanelTransitionTimeInSeconds = 0.2\n","import { sortBy, prop, last } from \"ramda\"\nimport { Action } from \"redux-act\"\nimport {\n call, delay, spawn, take, takeEvery, put,\n} from \"redux-saga/effects\"\n\nimport { axiosInstance } from \"utils/api\"\nimport { serverStatic } from \"utils/server-detection\"\nimport { name2id } from \"utils/name-2-id\"\n\nimport {\n startAlarmsAction, StartAlarmsPayload, fetchAllAlarmsAction, updateActiveAlarmsAction,\n} from \"./actions\"\nimport { AlarmLogs, AlarmLog, ActiveAlarms } from \"./types\"\n\nconst ALARMS_INITIALIZATION_DELAY = 1000\nconst ALARMS_UPDATE_EVERY = 10000 // the time in ms between alarm checks\nconst CHART_DIV_OFFSET = -50\n\n// firefox moves the alarms off-screen (above, outside the top of the screen)\n// if alarms are shown faster than: one per 500ms\nconst ALARMS_MS_BETWEEN_NOTIFICATIONS = 500\n\n// equal to old NETDATA.alarms.notifications\nconst areNotificationsAvailable = \"Notification\" in window\n\nconst notificationCallback = window.netdataAlarmsNotifCallback\n\n\n// todo this doesn't change in the session, but should be moved to the redux state anyway\nlet firstNotificationId = 0\nlet lastNotificationId = 0\n\n\nconst scrollToChart = (chartID: unknown): boolean => {\n if (typeof chartID === \"string\") {\n const chartElement = document.querySelector(`#chart_${name2id(chartID)}`)\n if (chartElement) {\n const offset = (chartElement as HTMLDivElement).offsetTop + CHART_DIV_OFFSET;\n (document.querySelector(\"html\") as HTMLElement).scrollTop = offset\n return true\n }\n }\n return false\n}\n\n// perhaps sagas are not the best place for this\nconst scrollToAlarm = (alarm: AlarmLog) => {\n if (typeof alarm === \"object\") {\n const hasFoundChart = scrollToChart(alarm.chart)\n if (hasFoundChart) {\n window.focus()\n }\n }\n}\n\nconst requestPermissions = () => {\n if (areNotificationsAvailable) {\n if (Notification.permission === \"default\") {\n Notification.requestPermission()\n }\n }\n}\n\nconst hasGivenNotificationPermissions = () => (areNotificationsAvailable\n && Notification.permission === \"granted\"\n)\n\nfunction* getLog(lastNotificationIdArg: number, serverDefault: string) {\n try {\n const { data } = yield call(\n axiosInstance.get,\n `${serverDefault}/api/v1/alarm_log?after=${lastNotificationIdArg}`,\n )\n // todo xss check\n return data\n } catch (error) {\n console.warn(\"Error fetching alarms log\", error) // eslint-disable-line no-console\n return null\n }\n}\n\ninterface NotificationConfig {\n notificationTitle: string\n notificationOptions: NotificationOptions\n notificationHandler: (event: Event) => void\n}\n// called \"notify\" in old codebase\nconst getNotification = (\n entry: AlarmLog, activeAlarms: ActiveAlarms, firstNotificationIdArg: number,\n): NotificationConfig | undefined => {\n if (entry.updated) {\n // has been updated by another alarm\n return\n }\n\n let valueString = entry.value_string\n const t = activeAlarms.alarms[`${entry.chart}.${entry.name}`]\n if (typeof t !== \"undefined\"\n && entry.status === t.status\n && typeof t.value_string !== \"undefined\"\n ) {\n valueString = t.value_string\n }\n\n const name = entry.name.replace(/_/g, \" \")\n let status = entry.status.toLowerCase()\n let title = `${name} = ${valueString}`\n const tag = entry.alarm_id\n let icon = \"images/banner-icon-144x144.png\"\n let interaction = false\n let show = true\n\n // switch/case left here to simplify refractor (it's very similar to old code)\n switch (entry.status) {\n case \"REMOVED\":\n show = false\n break\n\n case \"UNDEFINED\":\n return\n\n case \"UNINITIALIZED\":\n return\n\n case \"CLEAR\":\n if (entry.unique_id < firstNotificationIdArg) {\n // alarm is not current\n return\n }\n if (entry.old_status === \"UNINITIALIZED\" || entry.old_status === \"UNDEFINED\") {\n // alarm switch to CLEAR from old_status\n return\n }\n if (entry.no_clear_notification) {\n // alarm is CLEAR but has no_clear_notification flag\n return\n }\n title = `${name} back to normal (${valueString})`\n icon = \"images/check-mark-2-128-green.png\"\n interaction = false\n break\n\n case \"WARNING\":\n if (entry.old_status === \"CRITICAL\") {\n status = `demoted to ${entry.status.toLowerCase()}`\n }\n\n icon = \"images/alert-128-orange.png\"\n interaction = false\n break\n\n case \"CRITICAL\":\n if (entry.old_status === \"WARNING\") {\n status = `escalated to ${entry.status.toLowerCase()}`\n }\n\n icon = \"images/alert-128-red.png\"\n interaction = true\n break\n\n default:\n console.warn(`invalid alarm status ${entry.status}`) // eslint-disable-line no-console\n return\n }\n\n // filter recipients\n // if (show) {\n // show = NETDATA.alarms.recipientMatches(entry.recipient, NETDATA.alarms.recipients)\n // }\n\n\n if (show) {\n if (typeof notificationCallback === \"function\") {\n show = notificationCallback(entry)\n }\n\n if (show) {\n // show this notification\n // eslint-disable-next-line consistent-return\n return {\n notificationTitle: title,\n notificationOptions: {\n body: `${entry.hostname} - ${entry.chart} (${entry.family}) - ${status}: ${entry.info}`,\n tag: `${tag}`,\n requireInteraction: interaction,\n icon: serverStatic + icon,\n data: entry,\n },\n notificationHandler: (event: Event) => {\n event.preventDefault()\n if (event.target) {\n const { data } = event.target as Notification\n scrollToAlarm(data)\n }\n },\n }\n }\n }\n}\n\nfunction* notifyAll(serverDefault: string, activeAlarms: ActiveAlarms) {\n const alarmLogs: AlarmLogs = yield call(getLog, lastNotificationId, serverDefault)\n if (alarmLogs === null || typeof alarmLogs !== \"object\") {\n console.warn(\"invalid alarms log response\") // eslint-disable-line no-console\n return\n }\n\n if (alarmLogs.length === 0) {\n console.log(\"received empty alarm log\") // eslint-disable-line no-console\n return\n }\n\n const logsSorted = sortBy(prop(\"unique_id\"), alarmLogs)\n\n // eslint-disable-next-line camelcase\n const newLogs = logsSorted.filter(({ unique_id }) => unique_id > lastNotificationId)\n const notifications = newLogs\n .map((entry) => (getNotification(entry, activeAlarms, firstNotificationId)))\n .filter((x) => x !== undefined) as NotificationConfig[]\n\n for (let i = 0; i < notifications.length; i += 1) {\n const {\n notificationTitle, notificationOptions, notificationHandler,\n } = notifications[i]\n const notification = new Notification(\n notificationTitle,\n notificationOptions,\n )\n notification.onclick = notificationHandler\n\n yield delay(ALARMS_MS_BETWEEN_NOTIFICATIONS)\n }\n\n // todo put to redux store\n lastNotificationId = (last(logsSorted) as AlarmLog).unique_id\n\n if (typeof window.netdataAlarmsRemember === \"undefined\" || window.netdataAlarmsRemember) {\n localStorage.setItem(\"last_notification_id\", `${lastNotificationId}`)\n }\n}\n\n\nfunction* get(what: string, serverDefault: string) {\n const { data } = yield call(axiosInstance.get, `${serverDefault}/api/v1/alarms?${what}`)\n if (firstNotificationId === 0 && typeof data.latest_alarm_log_unique_id === \"number\") {\n firstNotificationId = data.latest_alarm_log_unique_id\n }\n return data\n}\n\nfunction* alarmsLoop(serverDefault: string) {\n while (true) {\n const activeAlarms = (yield call(get, \"active\", serverDefault)) as ActiveAlarms\n if (activeAlarms) {\n yield put(updateActiveAlarmsAction({ activeAlarms }))\n if (\n hasGivenNotificationPermissions()\n // timestamps in seconds\n && (activeAlarms.latest_alarm_log_unique_id > lastNotificationId)\n ) {\n yield call(notifyAll, serverDefault, activeAlarms)\n\n if (activeAlarms.status === false) {\n // Health monitoring is disabled on this netdata\n break\n }\n }\n }\n yield delay(ALARMS_UPDATE_EVERY)\n }\n}\n\nfunction* startAlarms() {\n // make sure we handle that action only once, we don't want multiple intervals/loops\n const { payload }: { payload: StartAlarmsPayload } = yield take(startAlarmsAction)\n const { serverDefault } = payload\n\n yield delay(ALARMS_INITIALIZATION_DELAY)\n\n lastNotificationId = +(localStorage.getItem(\"last_notification_id\") || lastNotificationId)\n requestPermissions()\n yield call(alarmsLoop, serverDefault)\n}\n\ntype FetchAllAlarmsPayload = {\n callback: (x: unknown) => void,\n serverDefault: string,\n}\nfunction* fetchAllAlarmsSaga({ payload }: Action<FetchAllAlarmsPayload>) {\n const { callback, serverDefault } = payload\n const allAlarms = yield call(get, \"all\", serverDefault)\n callback(allAlarms)\n}\n\nexport function* alarmsSagas() {\n yield spawn(startAlarms)\n yield takeEvery(fetchAllAlarmsAction.request, fetchAllAlarmsSaga)\n}\n","const allowedReferrerDomains = [\n \"\",\n \"https://www.google.com/\",\n \"https://duckduckgo.com/\",\n \"https://www.reddit.com/\",\n]\n\nexport const isAllowedReferrer = (referrer: string) => allowedReferrerDomains.includes(referrer)\n || referrer.endsWith(\".my-netdata.io/\")\n || referrer.startsWith(\"https://github.com/\")\n || referrer.endsWith(\"netdata.cloud/\")\n || referrer.startsWith(\"https://app.netdata.cloud/\")\n","import { uniq, filter } from \"ramda\"\nimport {\n spawn, take, put, takeEvery, call, delay, select,\n} from \"redux-saga/effects\"\nimport { channel } from \"redux-saga\"\nimport { AxiosResponse } from \"axios\"\nimport { Action } from \"redux-act\"\n\nimport { NETDATA_REGISTRY_SERVER } from \"utils/utils\"\nimport { axiosInstance } from \"utils/api\"\nimport { isDemo } from \"utils/is-demo\"\nimport { sidePanelTransitionTimeInSeconds } from \"components/space-panel/settings\"\nimport { fetchInfoAction } from \"domains/chart/actions\"\n\nimport {\n fetchHelloAction,\n FetchHelloPayload,\n windowFocusChangeAction,\n updatePersonUrlsAction,\n SetOptionAction,\n setOptionAction,\n setSpacePanelStatusAction,\n SetSpacePanelStatusActionPayload,\n setSpacePanelTransitionEndAction,\n HelloResponse,\n accessRegistrySuccessAction,\n} from \"./actions\"\nimport { alarmsSagas } from \"./alarms-sagas\"\nimport { MASKED_DATA } from \"./constants\"\nimport { selectFullInfoPayload } from \"./selectors\"\nimport { isAllowedReferrer } from \"./utils\"\nimport { InfoPayload } from \"./__mocks__/info-mock\"\n\nconst windowFocusChannel = channel()\n\nexport function listenToWindowFocus() {\n window.addEventListener(\"focus\", () => {\n windowFocusChannel.put(windowFocusChangeAction({ hasWindowFocus: true }))\n })\n window.addEventListener(\"blur\", () => {\n windowFocusChannel.put(windowFocusChangeAction({ hasWindowFocus: false }))\n })\n}\n\nexport function* watchWindowFocusChannel() {\n while (true) {\n const action = yield take(windowFocusChannel)\n yield put(action)\n }\n}\n\nfunction* waitForFullInfoPayload() {\n return (yield take(fetchInfoAction.success)).payload.fullInfoPayload\n}\n\nfunction* injectPosthog(machineGuid: string, personGuid?: string) {\n if (window.posthog) {\n return\n }\n const info: InfoPayload = (yield select(selectFullInfoPayload))\n || (yield call(waitForFullInfoPayload))\n || {}\n\n /* eslint-disable */\n // @ts-ignore\n !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(\".\");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(\"script\")).type=\"text/javascript\",p.async=!0,p.src=s.api_host+\"/static/array.js\",(r=t.getElementsByTagName(\"script\")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=\"posthog\",u.people=u.people||[],u.toString=function(t){var e=\"posthog\";return\"posthog\"!==a&&(e+=\".\"+a),t||(e+=\" (stub)\"),e},u.people.toString=function(){return u.toString(1)+\".people (stub)\"},o=\"capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags\".split(\" \"),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);\n /* eslint-enable */\n window.posthog.init(\"mqkwGT0JNFqO-zX2t0mW6Tec9yooaVu7xCBlXtHnt5Y\", {\n api_host: \"https://app.posthog.com\",\n loaded: (posthog: any) => {\n if (personGuid) {\n posthog.identify(personGuid)\n }\n },\n })\n const shouldMaskReferrer = !isDemo && !isAllowedReferrer(document.referrer)\n const MASKED = \"masked\"\n window.posthog.register(\n // remove properties with unavailable values\n filter((value) => value !== undefined && value !== null,\n {\n $ip: \"127.0.0.1\",\n $current_url: isDemo ? null : \"agent dashboard\",\n $pathname: isDemo ? null : \"netdata-dashboard\",\n $host: isDemo ? null : \"dashboard.netdata.io\",\n\n $initial_referring_domain: shouldMaskReferrer ? MASKED : null,\n $initial_referrer: shouldMaskReferrer ? MASKED : null,\n $referring_domain: shouldMaskReferrer ? MASKED : null,\n $referrer: shouldMaskReferrer ? MASKED : null,\n\n event_source: \"agent dashboard\",\n\n netdata_version: info.version,\n netdata_machine_guid: machineGuid,\n netdata_person_id: personGuid || \"Unavailable\",\n netdata_buildinfo: info[\"buildinfo\"],\n netdata_release_channel: info[\"release-channel\"],\n mirrored_host_count: info.mirrored_hosts?.length,\n alarms_normal: info.alarms?.normal,\n alarms_warning: info.alarms?.warning,\n alarms_critical: info.alarms.critical,\n host_os_name: info.os_name,\n host_os_id: info.os_id,\n host_os_id_like: info.os_id_like,\n host_os_version: info.os_version,\n host_os_version_id: info.os_version_id,\n host_os_detection: info.os_detection,\n system_cores_total: info.cores_total,\n system_total_disk_space: info.total_disk_space,\n system_cpu_freq: info.cpu_freq,\n system_ram_total: info.ram_total,\n system_kernel_name: info.kernel_name,\n system_kernel_version: info.kernel_version,\n system_architecture: info.architecture,\n system_virtualization: info.virtualization,\n system_virt_detection: info.virt_detection,\n system_container: info.container,\n system_container_detection: info.container_detection,\n container_os_name: info.container_os_name,\n container_os_id: info.container_os_id,\n container_os_id_like: info.container_os_id_like,\n container_os_version: info.container_os_version,\n container_os_version_id: info.container_os_version_id,\n host_collectors_count: info.collectors.length,\n host_cloud_enabled: info[\"cloud-enabled\"],\n host_cloud_available: info[\"cloud-available\"],\n host_agent_claimed: info[\"agent-claimed\"],\n host_aclk_available: info[\"aclk-available\"],\n host_aclk_implementation: info[\"aclk-implementation\"],\n host_allmetrics_json_used: info[\"allmetrics-json-used\"],\n host_allmetrics_prometheus_used: info[\"allmetrics-prometheus-used\"],\n host_allmetrics_shell_used: info[\"allmetrics-shell-used\"],\n host_charts_count: info[\"charts-count\"],\n host_dashboard_used: info[\"dashboard-used\"],\n host_metrics_count: info[\"metrics-count\"],\n host_notification_methods: info[\"notification-methods\"],\n config_memory_mode: info[\"memory-mode\"],\n config_exporting_enabled: info[\"exporting-enabled\"],\n config_exporting_connectors: info[\"exporting-connectors\"],\n config_hosts_available: info[\"hosts-available\"],\n config_https_enabled: info[\"https-enabled\"],\n config_multidb_disk_quota: info[\"multidb-disk-quota\"],\n config_page_cache_size: info[\"page-cache-size\"],\n config_stream_enabled: info[\"stream-enabled\"],\n config_web_enabled: info[\"web-enabled\"],\n // eslint-disable-next-line camelcase\n host_is_parent: info.host_labels?._is_parent,\n mirrored_hosts_reachable: info.mirrored_hosts_status\n .filter(({ reachable }) => reachable).length,\n mirrored_hosts_unreachable: info.mirrored_hosts_status\n .filter(({ reachable }) => !reachable).length,\n host_collectors: info.collectors,\n host_is_k8s_node: info.is_k8s_node,\n }),\n )\n}\n\nexport type PersonUrl = [\n string, // guid\n string, // url\n number, // last timestamp (ms)\n number, // accesses\n string // name\n]\n\ntype AccessRegistryResponse = null | {\n personGuid?: string\n registryServer: string\n urls?: PersonUrl[]\n}\n\ntype AccessRegistry = (args: {\n machineGuid: string\n maxRedirects: number\n name: string\n registryServer: string\n url: string\n}) => Promise<AccessRegistryResponse>\nconst accessRegistry: AccessRegistry = ({\n machineGuid, maxRedirects, name, registryServer, url,\n}) => axiosInstance.get(`${registryServer}/api/v1/registry`, {\n headers: {\n \"Cache-Control\": \"no-cache, no-store\",\n Pragma: \"no-cache\",\n },\n params: {\n action: \"access\",\n machine: machineGuid,\n name,\n url,\n },\n withCredentials: true, // required for the cookie\n}).then(({ data }) => {\n // todo xss check\n const isRedirect = typeof data.registry === \"string\"\n\n let returnData = data\n if (typeof data.status !== \"string\" || data.status !== \"ok\") {\n // todo throw error (409 in old dashboard)\n returnData = null\n }\n\n if (returnData === null) {\n if (isRedirect && maxRedirects > 0) {\n return accessRegistry({\n maxRedirects: maxRedirects - 1,\n machineGuid,\n name,\n registryServer: data.registry,\n url,\n })\n }\n return { registryServer }\n }\n const urls = data.urls.filter((u: [string, string]) => u[1] !== MASKED_DATA)\n return {\n personGuid: data.person_guid || null,\n registryServer,\n urls,\n }\n}).catch(() => {\n // todo handle error in better way (410 in old dashboard)\n console.warn(\"error calling registry:\", registryServer) // eslint-disable-line no-console\n return null\n})\n\nexport interface RegistryMachine {\n guid: string\n url: string\n lastTimestamp: number\n accesses: number\n name: string\n alternateUrls: string[]\n}\n\ntype ParsePersonUrls = (\n personUrls: PersonUrl[]\n) => {\n registryMachines: { [key: string]: RegistryMachine }\n registryMachinesArray: RegistryMachine[]\n}\nexport const parsePersonUrls: ParsePersonUrls = (personUrls) => {\n // todo main.js is using registryMachines, but should use only the array\n const registryMachines: { [key: string]: RegistryMachine } = {}\n\n personUrls\n .slice()\n .reverse()\n .forEach(([guid, url, lastTimestamp, accesses, name]: PersonUrl) => {\n const existingObj = registryMachines[guid] || {\n lastTimestamp: 0,\n accesses: 0,\n alternateUrls: [],\n guid: \"\",\n url: \"\",\n name: \"\"\n }\n const isNewer = existingObj.lastTimestamp < lastTimestamp\n const extended: RegistryMachine = {\n guid: existingObj.guid || guid,\n url: isNewer ? url : existingObj.url,\n lastTimestamp: isNewer ? lastTimestamp : existingObj.lastTimestamp,\n accesses: existingObj.accesses + accesses,\n name: isNewer ? name : existingObj.name,\n alternateUrls: existingObj.alternateUrls.concat(url),\n }\n registryMachines[guid] = extended\n })\n\n const registryMachinesArray = uniq(\n // not sure if reverse is needed, but it was in old dashboard\n personUrls\n .slice()\n .reverse()\n .map(([guid]: PersonUrl) => guid),\n ).map((guid) => registryMachines[guid])\n return {\n registryMachines,\n registryMachinesArray,\n }\n}\n\nfunction* fetchHelloSaga({ payload }: Action<FetchHelloPayload>) {\n const { serverDefault } = payload\n const helloCallUrl = `${serverDefault}api/v1/registry?action=hello`\n let response: AxiosResponse<HelloResponse>\n try {\n response = yield call(axiosInstance.get, helloCallUrl, {\n headers: {\n \"Cache-Control\": \"no-cache, no-store\",\n Pragma: \"no-cache\",\n },\n withCredentials: true,\n })\n } catch (error) {\n console.warn(\"error accessing registry or Do-Not-Track is enabled\") // eslint-disable-line\n yield put(fetchHelloAction.failure())\n return\n }\n const cloudBaseURL = response.data.cloud_base_url\n const { hostname } = response.data\n const machineGuid = response.data.machine_guid\n const registryServer = response.data.registry\n const isUsingGlobalRegistry = registryServer === NETDATA_REGISTRY_SERVER\n\n yield put(fetchHelloAction.success({\n cloudBaseURL,\n hostname,\n isUsingGlobalRegistry,\n machineGuid,\n }))\n\n const name = hostname\n const url = serverDefault\n\n // now make access call - max_redirects, callback, etc...\n const accessRegistryResponse: AccessRegistryResponse = yield call(accessRegistry, {\n machineGuid,\n maxRedirects: 2,\n name,\n registryServer,\n url,\n })\n\n if (response.data.anonymous_statistics) {\n yield spawn(injectPosthog, response.data.machine_guid, accessRegistryResponse?.personGuid)\n }\n\n if (accessRegistryResponse?.urls && accessRegistryResponse?.personGuid) {\n const personUrls = parsePersonUrls(accessRegistryResponse.urls)\n const { registryMachines, registryMachinesArray } = personUrls\n yield put(updatePersonUrlsAction({\n personGuid: accessRegistryResponse.personGuid,\n registryMachines,\n registryMachinesArray,\n }))\n }\n\n yield put(accessRegistrySuccessAction({\n registryServer: accessRegistryResponse?.registryServer || registryServer,\n }))\n}\n\nconst constructOptionStorageKey = (key: string) => `options.${key}`\nfunction setOptionSaga({ payload }: Action<SetOptionAction>) {\n const { key, value } = payload\n if (key === \"stop_updates_when_focus_is_lost\") {\n // old dashboard was saving that property to localStorage, but was always omitting it when\n // reading. it was only possible to persist this setting via url (update_always hash param)\n return\n }\n localStorage.setItem(constructOptionStorageKey(key), JSON.stringify(value))\n}\n\nfunction* spacePanelSaga({ payload }: Action<SetSpacePanelStatusActionPayload>) {\n if (payload.isActive) {\n document.body.className = \"with-panel\"\n } else {\n document.body.className = \"\"\n }\n yield delay(sidePanelTransitionTimeInSeconds * 1000)\n yield put(setSpacePanelTransitionEndAction({ isActive: payload.isActive }))\n}\n\nexport function* globalSagas() {\n yield spawn(listenToWindowFocus)\n yield spawn(watchWindowFocusChannel)\n yield takeEvery(fetchHelloAction.request, fetchHelloSaga)\n yield spawn(alarmsSagas)\n yield takeEvery(setOptionAction, setOptionSaga)\n yield takeEvery(setSpacePanelStatusAction, spacePanelSaga)\n}\n","/* eslint-disable camelcase */\n/* eslint-disable operator-linebreak */\nimport { take, takeEvery } from \"redux-saga/effects\"\nimport { Action } from \"redux-act\"\n\nimport {\n clearHighlightAction,\n SetGlobalChartUnderlayAction,\n setGlobalChartUnderlayAction,\n} from \"domains/global/actions\"\nimport {\n explicitlySignInAction,\n showSignInModalAction,\n ShowSignInModalAction,\n} from \"domains/dashboard/actions\"\nimport { setHashParams, getHashParams, removeHashParams } from \"utils/hash-utils\"\n\nexport const LOCAL_STORAGE_NEEDS_SYNC = \"LOCAL-STORAGE-NEEDS-SYNC\"\n\nfunction setGlobalChartUnderlaySaga({ payload }: Action<SetGlobalChartUnderlayAction>) {\n const { after, before } = payload\n if (window.urlOptions) {\n // additional check to prevent loop, after setting initial state from url\n if (window.urlOptions.after !== after || window.urlOptions.before !== before) {\n window.urlOptions.netdataHighlightCallback(true, after, before)\n }\n } else {\n // TODO: Consider a setting to control whether the component sets these hash params\n const hashParams = getHashParams()\n const highlight_after = Math.round(after).toString()\n const highlight_before = Math.round(before).toString()\n if (\n hashParams.highlight_after !== highlight_after ||\n hashParams.highlight_before !== highlight_before\n ) {\n setHashParams({ highlight_after, highlight_before })\n }\n }\n}\n\nfunction clearHighlightSaga() {\n if (window.urlOptions) {\n window.urlOptions.netdataHighlightCallback(false, 0, 0)\n } else {\n removeHashParams([\"highlight_after\", \"highlight_before\"])\n }\n}\n\nfunction* showSignInSaga({ payload }: Action<ShowSignInModalAction>) {\n if (window.showSignInModal) {\n window.showSignInModal()\n\n yield take(explicitlySignInAction)\n const { signInLinkHref } = payload\n window.localStorage.setItem(LOCAL_STORAGE_NEEDS_SYNC, \"true\")\n window.location.href = signInLinkHref\n }\n}\n\nexport function* mainJsSagas() {\n yield takeEvery(setGlobalChartUnderlayAction, setGlobalChartUnderlaySaga)\n yield takeEvery(clearHighlightAction, clearHighlightSaga)\n yield takeEvery(showSignInModalAction, showSignInSaga)\n}\n","import { spawn } from \"redux-saga/effects\"\n\nimport { chartSagas } from \"domains/chart/sagas\"\nimport { globalSagas } from \"domains/global/sagas\"\nimport { mainJsSagas } from \"domains/dashboard/sagas\"\n\nexport function* rootSaga() {\n yield spawn(globalSagas)\n yield spawn(chartSagas)\n yield spawn(mainJsSagas)\n}\n","import { compose, applyMiddleware, createStore } from \"redux\"\nimport createSagaMiddleware from \"redux-saga\"\nimport rootReducer from \"./root-reducer\"\nimport { rootSaga } from \"./root-saga\"\n\nconst sagaMiddleware = createSagaMiddleware()\n\nconst reduxDevTools = process.env.NODE_ENV === \"development\"\n && window.__REDUX_DEVTOOLS_EXTENSION__\n // @ts-ignore\n && window.__REDUX_DEVTOOLS_EXTENSION__({ name: \"Dashboard Charts\" })\n\nconst composeMiddlewaresWithDevTools = () => (reduxDevTools\n ? compose(applyMiddleware(sagaMiddleware), reduxDevTools)\n : compose(applyMiddleware(sagaMiddleware)))\n\nexport const configureStore = () => {\n const store = createStore(\n rootReducer,\n composeMiddlewaresWithDevTools(),\n )\n sagaMiddleware.run(rootSaga)\n return store\n}\n\nexport const store = configureStore()\n","import $ from \"jquery\"\n\nwindow.$ = $\nwindow.jQuery = $\n","let loadCssPromise: Promise<void>\n\ntype LoadCss = (href: string) => Promise<void>\nexport const loadCss: LoadCss = (href) => {\n if (loadCssPromise) {\n return loadCssPromise\n }\n return new Promise((resolve, reject) => {\n const fileRef = document.createElement(\"link\")\n fileRef.setAttribute(\"rel\", \"stylesheet\")\n fileRef.setAttribute(\"type\", \"text/css\")\n fileRef.setAttribute(\"href\", href)\n\n fileRef.onload = () => {\n resolve()\n }\n\n fileRef.onerror = () => {\n reject(Error(`Error loading css: ${href}`))\n }\n\n document.getElementsByTagName(\"head\")[0].appendChild(fileRef)\n })\n}\n","import classNames from \"classnames\"\nimport { Attributes } from \"./transformDataAttributes\"\n\nexport type ChartLibraryName =\n | \"dygraph\"\n | \"sparkline\"\n | \"peity\"\n | \"google\"\n // | \"d3\"\n | \"d3pie\"\n | \"easypiechart\"\n | \"gauge\"\n | \"textonly\"\n | \"groupbox\"\nexport interface ChartLibraryConfig {\n aspectRatio?: number\n format: string\n hasLegend: (attributes: Attributes) => boolean\n hasToolboxPanAndZoom?: boolean\n isLogScale?: (attributes: Attributes) => boolean\n options: (attributes: Attributes) => string\n trackColors: boolean\n pixelsPerPoint: (attributes: Attributes) => number\n xssRegexIgnore: RegExp\n containerClass: (attributes: Attributes) => string\n}\nexport type ChartLibrariesSettings = {\n [key in ChartLibraryName]: ChartLibraryConfig\n}\n\ntype IsDygraphSparkline = (attributes: Attributes) => boolean\nconst isDygraphSparkline: IsDygraphSparkline = (attributes) => (\n attributes.dygraphTheme === \"sparkline\"\n)\n\nexport const chartLibrariesSettings: ChartLibrariesSettings = {\n dygraph: {\n // initialize: window.NETDATA.dygraphInitialize,\n // create: window.NETDATA.dygraphChartCreate,\n // update: window.NETDATA.dygraphChartUpdate,\n // resize(state) {\n // if (typeof state.tmp.dygraph_instance !== \"undefined\"\n // && typeof state.tmp.dygraph_instance.resize === \"function\") {\n // state.tmp.dygraph_instance.resize()\n // }\n // },\n // setSelection: window.NETDATA.dygraphSetSelection,\n // clearSelection: window.NETDATA.dygraphClearSelection,\n hasToolboxPanAndZoom: true,\n // initialized: false,\n // enabled: true,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result.data$\"),\n format: \"json\",\n options(attributes: Attributes) {\n if (typeof this.isLogScale === \"function\") {\n // flip - in proper order (from oldest to newest)\n return `ms|flip${this.isLogScale(attributes) ? \"|abs\" : \"\"}`\n }\n return \"\"\n },\n hasLegend(attributes: Attributes) {\n // not using __hasLegendCache__ as in old-dashboard, because performance tweaks like this\n // probably won't be needed in react app\n const { legend = true } = attributes\n return !isDygraphSparkline(attributes) && Boolean(legend)\n },\n // autoresize(state) {\n // void (state)\n // return true\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n trackColors: true,\n pixelsPerPoint: ((attributes: Attributes) => (isDygraphSparkline(attributes) ? 2 : 3)),\n // pixels_per_point(state) {\n // return (this.isSparkline(state) === false) ? 3 : 2\n // },\n isLogScale(attributes: Attributes) {\n return attributes.dygraphTheme === \"logscale\"\n },\n containerClass(attributes: Attributes) {\n return this.hasLegend(attributes)\n ? classNames(\n \"netdata-container-with-legend\",\n attributes.legendPosition === \"bottom\" && \"netdata-container-with-legend--bottom\",\n )\n : \"netdata-container\"\n },\n // container_class(state) {\n // if (this.legend(state) !== null) {\n // return \"netdata-container-with-legend\"\n // }\n // return \"netdata-container\"\n // },\n },\n sparkline: {\n // initialize: window.NETDATA.sparklineInitialize,\n // create: window.NETDATA.sparklineChartCreate,\n // update: window.NETDATA.sparklineChartUpdate,\n // resize: null,\n // setSelection: undefined, // function(state, t) { void(state); return true; },\n // clearSelection: undefined, // function(state) { void(state); return true; },\n hasToolboxPanAndZoom: false,\n // initialized: false,\n // enabled: true,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result$\"),\n format: \"array\",\n options: () => \"flip|abs\",\n hasLegend: () => false,\n // autoresize(state) {\n // void (state)\n // return false\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n trackColors: false,\n pixelsPerPoint: () => 3,\n containerClass: () => \"netdata-container\",\n },\n peity: {\n // initialize: window.NETDATA.peityInitialize,\n // create: window.NETDATA.peityChartCreate,\n // update: window.NETDATA.peityChartUpdate,\n // resize: null,\n // setSelection: undefined, // function(state, t) { void(state); return true; },\n // clearSelection: undefined, // function(state) { void(state); return true; },\n hasToolboxPanAndZoom: false,\n // initialized: false,\n // enabled: true,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result$\"),\n format: \"ssvcomma\",\n options: () => \"null2zero|flip|abs\",\n hasLegend: () => false,\n // autoresize(state) {\n // void (state)\n // return false\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n trackColors: false,\n pixelsPerPoint: () => 3,\n containerClass: () => \"netdata-container\",\n },\n google: {\n // initialize: window.NETDATA.googleInitialize,\n // create: window.NETDATA.googleChartCreate,\n // update: window.NETDATA.googleChartUpdate,\n // resize: null,\n // setSelection: undefined, // function(state, t) { void(state); return true; },\n // clearSelection: undefined, // function(state) { void(state); return true; },\n hasToolboxPanAndZoom: false,\n // initialized: false,\n // enabled: true,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result.rows$\"),\n format: \"datatable\",\n options: () => \"\",\n hasLegend: () => false,\n // autoresize(state) {\n // void (state)\n // return false\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 300\n // },\n trackColors: false,\n pixelsPerPoint: () => 4,\n containerClass: () => \"netdata-container\",\n },\n d3pie: {\n // initialize: window.NETDATA.d3pieInitialize,\n // create: window.NETDATA.d3pieChartCreate,\n // update: window.NETDATA.d3pieChartUpdate,\n // resize: null,\n // setSelection: window.NETDATA.d3pieSetSelection,\n // clearSelection: window.NETDATA.d3pieClearSelection,\n hasToolboxPanAndZoom: false,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result.data$\"),\n format: \"json\",\n hasLegend: () => false,\n options: () => \"objectrows|ms\",\n // autoresize(state) {\n // void (state)\n // return false\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n trackColors: false,\n pixelsPerPoint: () => 15,\n containerClass: () => \"netdata-container\",\n },\n // d3: {\n // initialize: window.NETDATA.d3Initialize,\n // create: window.NETDATA.d3ChartCreate,\n // update: window.NETDATA.d3ChartUpdate,\n // resize: null,\n // setSelection: undefined, // function(state, t) { void(state); return true; },\n // clearSelection: undefined, // function(state) { void(state); return true; },\n // toolboxPanAndZoom: null,\n // initialized: false,\n // enabled: true,\n // xssRegexIgnore: new RegExp(\"^/api/v1/data\\.result.data$\"),\n // format(state) {\n // void (state)\n // return \"json\"\n // },\n // options(state) {\n // void (state)\n // return \"\"\n // },\n // legend(state) {\n // void (state)\n // return null\n // },\n // autoresize(state) {\n // void (state)\n // return false\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n // track_colors(state) {\n // void (state)\n // return false\n // },\n // pixels_per_point(state) {\n // void (state)\n // return 3\n // },\n // container_class(state) {\n // void (state)\n // return \"netdata-container\"\n // },\n // },\n easypiechart: {\n // initialize: window.NETDATA.easypiechartInitialize,\n // create: window.NETDATA.easypiechartChartCreate,\n // update: window.NETDATA.easypiechartChartUpdate,\n // resize: null,\n // setSelection: window.NETDATA.easypiechartSetSelection,\n // clearSelection: window.NETDATA.easypiechartClearSelection,\n hasToolboxPanAndZoom: false,\n // initialized: false,\n // enabled: true,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result$\"),\n format: \"array\",\n options() {\n return \"absolute\"\n },\n hasLegend() {\n return false\n },\n // autoresize(state) {\n // void (state)\n // return false\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n trackColors: true,\n pixelsPerPoint: () => 3,\n aspectRatio: 100,\n containerClass: () => \"netdata-container-easypiechart\",\n },\n gauge: {\n // initialize: window.NETDATA.gaugeInitialize,\n // create: window.NETDATA.gaugeChartCreate,\n // update: window.NETDATA.gaugeChartUpdate,\n // resize: null,\n // setSelection: window.NETDATA.gaugeSetSelection,\n // clearSelection: window.NETDATA.gaugeClearSelection,\n hasToolboxPanAndZoom: false,\n // initialized: false,\n // enabled: true,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result$\"),\n format: \"array\",\n options: () => \"absolute\",\n hasLegend: () => false,\n // autoresize(state) {\n // void (state)\n // return false\n // },\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n trackColors: true,\n pixelsPerPoint: () => 3,\n aspectRatio: 60,\n containerClass: () => \"netdata-container-gauge\",\n },\n textonly: {\n // autoresize(state) {\n // void (state)\n // return false\n // },\n containerClass: () => \"netdata-container\",\n // create: window.NETDATA.textOnlyCreate,\n // enabled: true,\n format: \"array\",\n // initialized: true,\n // initialize(callback) {\n // callback()\n // },\n hasLegend: () => false,\n // max_updates_to_recreate(state) {\n // void (state)\n // return 5000\n // },\n options: () => \"absolute\",\n pixelsPerPoint: () => 3,\n trackColors: false,\n // update: window.NETDATA.textOnlyUpdate,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result$\"),\n },\n groupbox: {\n containerClass: () => \"netdata-container\",\n hasLegend: () => false,\n options: () => \"absolute\",\n format: \"json\",\n trackColors: false,\n pixelsPerPoint: () => 3,\n xssRegexIgnore: new RegExp(\"^/api/v1/data.result$\"),\n },\n}\n","import { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { chartLibrariesSettings } from \"domains/chart/utils/chartLibrariesSettings\"\n\nexport const getChartURLOptions = (\n attributes: Attributes, shouldEliminateZeroDimensions: boolean,\n) => {\n const {\n appendOptions,\n overrideOptions,\n } = attributes\n let ret = \"\"\n\n ret += overrideOptions\n ? overrideOptions.toString()\n : chartLibrariesSettings[attributes.chartLibrary].options(attributes)\n\n if (typeof appendOptions === \"string\") {\n ret += `|${encodeURIComponent(appendOptions)}`\n }\n\n ret += \"|jsonwrap\"\n\n if (shouldEliminateZeroDimensions) {\n ret += \"|nonzero\"\n }\n\n if (attributes.dimensionsAggrMethod === \"sum-of-abs\"\n || (!attributes.dimensionsAggrMethod && attributes.groupBy && attributes.groupBy !== \"dimension\")\n ) {\n ret += \"|absolute\"\n }\n\n return ret\n}\n","export const BIGGEST_INTERVAL_NUMBER = 2 ** 31 - 1\n","import React from \"react\"\n\nimport { Icon } from \"components/icon\"\n\ninterface Props {\n containerNode: HTMLElement\n hasEmptyData: boolean\n}\n\nexport const Loader = ({\n containerNode,\n hasEmptyData,\n}: Props) => {\n // below is 90% of original logic.\n // since it rerenders when IntersectionObserver turns the chart back on,\n // it's not that important to detect screen height and container sizes changes\n const screenHeight = window.screen.height\n\n // normally we want a font size, as tall as the element\n let h = containerNode.clientHeight\n\n // but give it some air, 20% let's say, or 5 pixels min\n const lost = Math.max(h * 0.2, 5)\n h -= lost\n\n // center the text, vertically\n let paddingTop = (lost - 5) / 2\n\n // but check the width too\n // it should fit 10 characters in it\n const w = containerNode.clientWidth / 10\n if (h > w) {\n paddingTop += (h - w) / 2\n h = w\n }\n\n // and don't make it too huge\n // 5% of the screen size is good\n if (h > screenHeight / 20) {\n paddingTop += (h - (screenHeight / 20)) / 2\n h = screenHeight / 20\n }\n\n const label = hasEmptyData ? \" empty\" : \" netdata\"\n const iconType = hasEmptyData ? \"noData\" : \"loading\"\n\n return (\n <div\n className=\"netdata-message icon\"\n style={{\n fontSize: h,\n paddingTop,\n }}\n >\n <Icon iconType={iconType} />\n {label}\n </div>\n )\n}\n","type GetPanAndZoomStep = (event: React.MouseEvent) => number\nexport const getPanAndZoomStep: GetPanAndZoomStep = (event) => {\n if (event.ctrlKey) {\n return window.NETDATA.options.current.pan_and_zoom_factor\n * window.NETDATA.options.current.pan_and_zoom_factor_multiplier_control\n } if (event.shiftKey) {\n return window.NETDATA.options.current.pan_and_zoom_factor\n * window.NETDATA.options.current.pan_and_zoom_factor_multiplier_shift\n } if (event.altKey) {\n return window.NETDATA.options.current.pan_and_zoom_factor\n * window.NETDATA.options.current.pan_and_zoom_factor_multiplier_alt\n }\n return window.NETDATA.options.current.pan_and_zoom_factor\n}\n","export const safeEqualCheck = (a: unknown, b: unknown) => {\n if (a === b) {\n return true\n }\n return Number.isNaN(a as number) && Number.isNaN(b as number)\n}\n","import { identity } from \"ramda\"\nimport { useCallback, useState, useMemo, useRef } from \"react\"\n\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectTemperatureSetting, selectSecondsAsTimeSetting } from \"domains/global/selectors\"\nimport { unitsConversionCreator } from \"utils/units-conversion\"\nimport { safeEqualCheck } from \"utils/safe-equal-check\"\n\nimport { ChartData } from \"../chart-types\"\nimport { Attributes } from \"./transformDataAttributes\"\n\ntype Converter = (v: number) => number | string\n// only time units are converted into strings, the rest are numbers\n\n// todo - memoization similar to the one as in old dashboard, but probably not needed\nconst formattersFixed: any[] = []\nconst formattersZeroBased: any[] = []\nconst fastNumberFormat = (min: number, max: number) => {\n const key = max\n if (min === max) {\n if (typeof formattersFixed[key] === \"undefined\") {\n formattersFixed[key] = new Intl.NumberFormat(undefined, {\n useGrouping: true,\n minimumFractionDigits: min,\n maximumFractionDigits: max,\n })\n }\n\n return formattersFixed[key]\n }\n if (min === 0) {\n if (typeof formattersZeroBased[key] === \"undefined\") {\n formattersZeroBased[key] = new Intl.NumberFormat(undefined, {\n useGrouping: true,\n minimumFractionDigits: min,\n maximumFractionDigits: max,\n })\n }\n\n return formattersZeroBased[key]\n }\n // (old dashboard comment)\n // this is never used\n // it is added just for completeness\n return new Intl.NumberFormat(undefined, {\n useGrouping: true,\n minimumFractionDigits: min,\n maximumFractionDigits: max,\n })\n}\n\nconst getLegendFormatValue =\n (\n convertUnits: Converter,\n intlNumberFormat: Intl.NumberFormat | null,\n valueDecimalDetail: number\n ) =>\n (value: number | string | null) => {\n if (typeof value !== \"number\") {\n return \"-\"\n }\n\n const convertedValue = convertUnits(value)\n if (typeof convertedValue !== \"number\") {\n return convertedValue\n }\n\n if (intlNumberFormat !== null) {\n return intlNumberFormat.format(convertedValue)\n }\n\n let dmin\n let dmax\n if (valueDecimalDetail !== -1) {\n dmin = valueDecimalDetail\n dmax = valueDecimalDetail\n } else {\n dmin = 0\n const abs = convertedValue < 0 ? -convertedValue : convertedValue\n if (abs > 1000) {\n dmax = 0\n } else if (abs > 10) {\n dmax = 1\n } else if (abs > 1) {\n dmax = 2\n } else if (abs > 0.1) {\n dmax = 2\n } else if (abs > 0.01) {\n dmax = 4\n } else if (abs > 0.001) {\n dmax = 5\n } else if (abs > 0.0001) {\n dmax = 6\n } else {\n dmax = 7\n }\n }\n\n return fastNumberFormat(dmin, dmax).format(convertedValue)\n }\n\ntype LegendFormatValue = (value: string | number | null) => string | number\n\ninterface Arguments {\n attributes: Attributes\n data: ChartData\n units: string\n unitsCommon: string | undefined\n unitsDesired: string\n uuid: string\n}\nexport const useFormatters = ({\n attributes,\n data,\n units,\n unitsCommon,\n unitsDesired,\n uuid,\n}: Arguments) => {\n const temperatureSetting = useSelector(selectTemperatureSetting)\n const secondsAsTimeSetting = useSelector(selectSecondsAsTimeSetting)\n\n // previously _unitsConversion\n const [convertUnits, setConvertUnits] = useState<Converter>(() => identity)\n\n // probably can also be removed\n const [min, setMin] = useState<number>()\n const [max, setMax] = useState<number>()\n\n // todo most of this state is not needed, that hook can be refactored\n const [unitsCurrent, setUnitsCurrent] = useState<string>(units)\n\n const [decimals, setDecimals] = useState<number>(-1)\n const [intlNumberFormat, setIntlNumberFormat] = useState<Intl.NumberFormat | null>(null)\n\n const {\n // \"valueDecimalDetail\" in old app\n decimalDigits = -1,\n } = attributes\n\n const legendFormatValue: LegendFormatValue = useMemo(\n () => getLegendFormatValue(convertUnits, intlNumberFormat, decimalDigits),\n [convertUnits, decimalDigits, intlNumberFormat]\n )\n\n const legendFormatValueRef = useRef(legendFormatValue)\n const updateLegendFormatValueRef = (\n newConvertUnits: Converter,\n newIntlNumberFormat: any,\n newDecimalDigits: any\n ) => {\n legendFormatValueRef.current = getLegendFormatValue(\n newConvertUnits,\n newIntlNumberFormat,\n newDecimalDigits\n )\n }\n\n const legendFormatValueDecimalsFromMinMax = useCallback(\n (newMin: number, newMax: number) => {\n if (safeEqualCheck(min, newMin) && safeEqualCheck(max, newMax)) {\n return legendFormatValueRef.current\n }\n // we should call the convertUnits-creation only when original app was doing this\n // so we don't get new updates in improper places\n setMin(newMin)\n setMax(newMax)\n\n const newConvertUnits = unitsConversionCreator.get(\n uuid,\n newMin,\n newMax,\n units,\n unitsDesired,\n unitsCommon,\n switchedUnits => {\n setUnitsCurrent(switchedUnits)\n // that.legendSetUnitsString(that.units_current);\n // that.legendSetUnitsString just populates some DOM with unitsCurrent\n // on all occurrences just take the unitsCurrent from this state\n },\n temperatureSetting,\n secondsAsTimeSetting\n )\n\n // as function, so useState() interprets it properly\n setConvertUnits(() => newConvertUnits)\n\n const convertedMin = newConvertUnits(newMin)\n const convertedMax = newConvertUnits(newMax)\n\n // if number is returned, we format it!!!!\n if (typeof convertedMin !== \"number\" || typeof convertedMax !== \"number\") {\n updateLegendFormatValueRef(newConvertUnits, intlNumberFormat, decimalDigits)\n return legendFormatValueRef.current\n }\n\n let newDecimals\n\n if (data.min === data.max) {\n // it is a fixed number, let the visualizer decide based on the value\n newDecimals = -1\n } else if (decimalDigits !== -1) {\n // there is an override\n newDecimals = decimalDigits\n } else {\n // ok, let's calculate the proper number of decimal points\n let delta\n\n if (convertedMin === convertedMax) {\n delta = Math.abs(convertedMin)\n } else {\n delta = Math.abs(convertedMax - convertedMin)\n }\n\n if (delta > 1000) {\n newDecimals = 0\n } else if (delta > 10) {\n newDecimals = 1\n } else if (delta > 1) {\n newDecimals = 2\n } else if (delta > 0.1) {\n newDecimals = 2\n } else if (delta > 0.01) {\n newDecimals = 4\n } else if (delta > 0.001) {\n newDecimals = 5\n } else if (delta > 0.0001) {\n newDecimals = 6\n } else {\n newDecimals = 7\n }\n }\n\n let newIntlNumberFormat = intlNumberFormat\n\n if (newDecimals !== decimals) {\n if (newDecimals < 0) {\n newIntlNumberFormat = null\n } else {\n newIntlNumberFormat = fastNumberFormat(newDecimals, newDecimals)\n }\n setIntlNumberFormat(() => newIntlNumberFormat)\n setDecimals(newDecimals)\n }\n updateLegendFormatValueRef(newConvertUnits, newIntlNumberFormat, newDecimals)\n return legendFormatValueRef.current\n },\n [\n decimals,\n decimalDigits,\n min,\n max,\n uuid,\n temperatureSetting,\n units,\n unitsDesired,\n unitsCommon,\n secondsAsTimeSetting,\n data.min,\n data.max,\n intlNumberFormat,\n ]\n )\n\n return {\n legendFormatValue,\n legendFormatValueDecimalsFromMinMax,\n unitsCurrent,\n }\n}\n","const defaultColor = {\n r: 255,\n g: 0,\n b: 0,\n}\n\ntype ColorHex2Rgb = (hex: string) => {\n r: number,\n g: number,\n b: number\n}\nexport const colorHex2Rgb: ColorHex2Rgb = (hex) => {\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i\n if (!hex) {\n return defaultColor\n }\n const hexFull = hex.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b)\n\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hexFull)\n if (!result) {\n console.warn(\"wrong color format:\", hex) // eslint-disable-line no-console\n }\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n } : defaultColor\n}\n","import styled from \"styled-components\"\nimport { getSizeBy } from \"@netdata/netdata-ui\"\n\nexport const LegendContainer = styled.div`\n margin-bottom: ${getSizeBy(3)};\n padding-left: 35px;\n`\n\nexport const LegendFirstRow = styled.div`\n margin-top: 4px;\n display: flex;\n justify-content: space-between;\n`\n\nexport const LegendSecondRow = styled.div`\n margin-top: 4px;\n display: flex;\n justify-content: space-between;\n`\n\nexport const LegendUnit = styled.div`\n`\n\nexport const DateTimeSeparator = styled.span`\n margin: 0 3px;\n`\n\nexport const LegendItems = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: auto;\n max-height: 80px;\n`\n\nexport const DimensionItem = styled.div<{ color: string, isDisabled: boolean }>`\n display: flex;\n align-items: center;\n color: ${({ color }) => color};\n margin-right: 12px;\n cursor: pointer;\n opacity: ${({ isDisabled }) => (isDisabled ? 0.3 : null)};\n user-select: none;\n font-size: 11px;\n &:focus {\n outline: none;\n }\n`\n\n// toolbox is based on \"absolute\", so to make sure it's not put on top of dimension-item\n// let's put a transparent block as last in dimension-items container. Toolbox will soon be moved\n// to other place so it's temporary\nexport const DimensionItemToolboxPlaceholder = styled.div`\n width: 140px;\n height: 20px;\n`\n\nexport const DimensionIcon = styled.div<{ color: string }>`\n width: 14px;\n height: 7px;\n border-radius: 4px;\n overflow: hidden;\n background-color: ${({ color }) => color};\n`\n\nexport const DimensionLabel = styled.span`\n margin-left: 3px;\n`\n\nexport const DimensionValue = styled.span`\n margin-left: 5px;\n min-width: 30px;\n`\n\nexport const ToolboxContainer = styled.div`\n position: relative;\n touch-action: none;\n`\n","import React, { useCallback } from \"react\"\nimport { createSelector } from \"reselect\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectChartData } from \"domains/chart/selectors\"\nimport { DimensionLabel } from \"./chart-legend-bottom.styled\"\n\nconst emptyObject = {}\n\nconst selector = createSelector(\n selectChartData,\n ({ dimension_names: dimensionNames, keys = emptyObject }) => ({\n dimensionNames,\n keys,\n })\n)\n\nconst LegendText = ({ id, index }) => {\n const { dimensionNames, keys } = useSelector(useCallback(state => selector(state, { id }), [id]))\n const { chart, node } = keys\n\n if (chart && node && Object.keys(keys).length === 2) {\n return (\n <DimensionLabel>\n {chart[index]}@{node[index]}\n </DimensionLabel>\n )\n }\n\n const name = dimensionNames[index]\n\n return <DimensionLabel>{name}</DimensionLabel>\n}\n\nexport default LegendText\n","import React, { Fragment, useRef, useEffect, useCallback } from \"react\"\nimport classNames from \"classnames\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectChartData } from \"domains/chart/selectors\"\n\nimport { colorHex2Rgb } from \"utils/color-hex-2-rgb\"\nimport { useDateTime } from \"utils/date-time\"\n\nimport { legendResolutionTooltip, legendPluginModuleString } from \"../utils/legend-utils\"\n\nimport { ChartMetadata } from \"../chart-types\"\nimport LegendText from \"./legendText\"\n\ninterface Props {\n chartUuid: string\n chartMetadata: ChartMetadata\n chartLibrary: string\n colors: {\n [key: string]: string\n }\n hoveredRow: number\n hoveredX: number | null\n legendFormatValue: (value: number | string | null) => (number | string)\n onDimensionClick: (clickedDimensionName: string, event: React.MouseEvent) => void\n selectedDimensions: string[]\n showLatestOnBlur: boolean\n unitsCurrent: string\n viewBefore: number\n}\n\nexport const ChartLegendRight = ({\n chartUuid,\n chartMetadata,\n chartLibrary,\n colors,\n hoveredRow,\n hoveredX,\n legendFormatValue,\n onDimensionClick,\n selectedDimensions,\n showLatestOnBlur,\n unitsCurrent,\n viewBefore,\n}: Props) => {\n const chartData = useSelector(\n useCallback((state: any) => selectChartData(state, { id: chartUuid }), [chartUuid])\n )\n const { dimension_names: dimensionNames, dimension_ids: dimensionIds } = chartData\n\n // todo handle also this case:\n // const netdataLast = chartData.last_entry * 1000\n // const dataUpdateEvery = chartData.view_update_every * 1000\n // showUndefined = Math.abs(netdataLast - viewBefore) > dataUpdateEvery\n // (showUndefined also when difference between last and before is bigger than granularity)\n const showUndefined = hoveredRow === -1 && !showLatestOnBlur\n\n // todo support timezone\n const legendDate = new Date(hoveredX || viewBefore)\n\n // todo make a possibility to add chartLegened when there's not chartData\n // (if this situation is possible)\n\n // @ts-ignore ignoring because options.current has inconsistent structure\n const colorFillOpacity = window.NETDATA.options.current[\n `color_fill_opacity_${chartMetadata.chart_type}`\n ]\n\n const { localeDateString, localeTimeString } = useDateTime()\n\n const scrollbarRef = useRef(null)\n useEffect(() => {\n if (scrollbarRef.current) {\n window.Ps.initialize(scrollbarRef.current, {\n wheelSpeed: 0.2,\n wheelPropagation: true,\n swipePropagation: true,\n minScrollbarLength: null,\n maxScrollbarLength: null,\n useBothWheelAxes: false,\n suppressScrollX: true,\n suppressScrollY: false,\n scrollXMarginOffset: 0,\n scrollYMarginOffset: 0,\n theme: \"default\",\n })\n }\n }, [scrollbarRef])\n\n return (\n <div className={classNames(\n \"netdata-chart-legend\",\n `netdata-${chartLibrary}-legend`,\n )}\n >\n <span\n className=\"netdata-legend-title-date\"\n title={legendPluginModuleString(true, chartMetadata)}\n >\n {showUndefined\n ? legendPluginModuleString(false, chartMetadata)\n : localeDateString(legendDate)}\n </span>\n <br />\n <span\n className=\"netdata-legend-title-time\"\n title={legendResolutionTooltip(chartData, chartMetadata)}\n >\n {showUndefined\n ? chartMetadata.context.toString()\n : localeTimeString(legendDate)}\n </span>\n <br />\n <span className=\"netdata-legend-title-units\">{unitsCurrent}</span>\n <br />\n <div className=\"netdata-legend-series\" ref={scrollbarRef}>\n <div className=\"netdata-legend-series-content\">\n {dimensionIds.map((dimensionId, i) => {\n const dimensionName = dimensionNames[i]\n // todo dimension could be a separate component\n const color = colors[dimensionName]\n const rgb = colorHex2Rgb(color)\n\n const isSelected = selectedDimensions.length === 0\n || selectedDimensions.includes(dimensionName)\n\n let value\n if (showUndefined) {\n value = null\n } else if (hoveredRow !== -1) {\n const hoveredValueArray = chartData.result.data[hoveredRow]\n // [timestamp, valueDim1, valueDim2, ...]\n value = hoveredValueArray ? hoveredValueArray[i + 1] : null\n } else {\n value = chartData.view_latest_values[i]\n }\n\n return (\n <Fragment key={dimensionId}>\n {i !== 0 && <br />}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <span\n title={dimensionName}\n className={classNames(\n \"netdata-legend-name\",\n isSelected ? \"selected\" : \"not-selected\",\n )}\n onClick={(event) => {\n onDimensionClick(dimensionName, event)\n }}\n role=\"button\"\n style={{ color }}\n tabIndex={0}\n >\n <table\n className={`netdata-legend-name-table-${chartMetadata.chart_type}`}\n style={{\n backgroundColor: `rgba(${rgb.r},${rgb.g},${rgb.b},${colorFillOpacity})`,\n }}\n >\n <tbody>\n <tr className=\"netdata-legend-name-tr\">\n <td className=\"netdata-legend-name-td\" />\n </tr>\n </tbody>\n </table>\n {\" \"}\n <LegendText id={chartUuid} index={i} />\n </span>\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <span\n title={dimensionName}\n className={classNames(\n \"netdata-legend-value\",\n !isSelected && \"hidden\",\n )}\n onClick={(event) => {\n onDimensionClick(dimensionName, event)\n }}\n role=\"button\"\n style={{ color }} // omitted !important during refractor, react doesn't support it\n tabIndex={0}\n >\n {legendFormatValue(\n value,\n )}\n </span>\n </Fragment>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n","import React, { useCallback } from \"react\"\nimport { useDateTime } from \"utils/date-time\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectChartData } from \"domains/chart/selectors\"\nimport { legendPluginModuleString, legendResolutionTooltip } from \"domains/chart/utils/legend-utils\"\nimport { ChartMetadata } from \"../chart-types\"\nimport LegendText from \"./legendText\"\nimport * as S from \"./chart-legend-bottom.styled\"\ninterface Props {\n chartUuid: string\n chartMetadata: ChartMetadata\n chartLibrary: string\n colors: {\n [key: string]: string\n }\n hoveredRow: number\n hoveredX: number | null\n legendFormatValue: (value: number | string | null) => number | string\n onDimensionClick: (clickedDimensionName: string, event: React.MouseEvent) => void\n selectedDimensions: string[]\n showLatestOnBlur: boolean\n unitsCurrent: string\n viewBefore: number\n legendToolbox: JSX.Element\n resizeHandler: React.ReactNode\n}\n\nexport const ChartTimeframe = ({\n chartMetadata,\n showUndefined,\n hoveredX,\n viewBefore,\n chartData,\n}: any) => {\n const { localeDateString, localeTimeString } = useDateTime()\n\n const legendDate = new Date(hoveredX || viewBefore)\n\n return (\n <div>\n <span title={legendPluginModuleString(true, chartMetadata)}>\n {showUndefined\n ? legendPluginModuleString(false, chartMetadata)\n : localeDateString(legendDate)}\n </span>\n <S.DateTimeSeparator>|</S.DateTimeSeparator>\n <span title={legendResolutionTooltip(chartData, chartMetadata)}>\n {showUndefined ? chartMetadata.context.toString() : localeTimeString(legendDate)}\n </span>\n </div>\n )\n}\n\nexport const ChartLegendBottom = ({\n chartUuid,\n chartMetadata,\n colors,\n hoveredRow,\n hoveredX,\n legendFormatValue,\n onDimensionClick,\n selectedDimensions,\n showLatestOnBlur,\n unitsCurrent,\n viewBefore,\n legendToolbox,\n resizeHandler,\n}: Props) => {\n const showUndefined = hoveredRow === -1 && !showLatestOnBlur\n const chartData = useSelector(\n useCallback((state: any) => selectChartData(state, { id: chartUuid }), [chartUuid])\n )\n const { dimension_names: dimensionNames, dimension_ids: dimensionIds } = chartData\n\n return (\n <S.LegendContainer>\n <S.LegendFirstRow>\n <S.LegendUnit>{unitsCurrent}</S.LegendUnit>\n <ChartTimeframe\n chartMetadata={chartMetadata}\n showUndefined={showUndefined}\n hoveredX={hoveredX}\n viewBefore={viewBefore}\n chartData={chartData}\n />\n </S.LegendFirstRow>\n <S.LegendSecondRow>\n <S.LegendItems>\n {dimensionIds.map((dimensionId, i) => {\n const dimensionName = dimensionNames[i]\n const color = colors[dimensionName]\n\n const isSelected =\n selectedDimensions.length === 0 || selectedDimensions.includes(dimensionName)\n\n let value\n if (showUndefined) {\n value = null\n } else if (hoveredRow !== -1) {\n const hoveredValueArray = chartData.result.data[hoveredRow]\n // [timestamp, valueDim1, valueDim2, ...]\n value = hoveredValueArray ? hoveredValueArray[i + 1] : null\n } else {\n value = chartData.view_latest_values[i]\n }\n return (\n <S.DimensionItem\n color={color}\n onClick={event => {\n onDimensionClick(dimensionName, event)\n }}\n role=\"button\"\n tabIndex={0}\n isDisabled={!isSelected}\n key={dimensionId}\n >\n <S.DimensionIcon title={dimensionName} color={color} />\n <LegendText id={chartUuid} index={i} />\n <S.DimensionValue>{isSelected && legendFormatValue(value)}</S.DimensionValue>\n </S.DimensionItem>\n )\n })}\n <S.DimensionItemToolboxPlaceholder />\n </S.LegendItems>\n <S.ToolboxContainer>\n {legendToolbox}\n {resizeHandler}\n </S.ToolboxContainer>\n </S.LegendSecondRow>\n </S.LegendContainer>\n )\n}\n","import React, { useCallback } from \"react\"\n\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectChartData } from \"domains/chart/selectors\"\nimport { getNewSelectedDimensions } from \"domains/chart/utils/legend-utils\"\nimport { Attributes } from \"../utils/transformDataAttributes\"\nimport { ChartMetadata } from \"../chart-types\"\n\nimport { ChartLegendRight } from \"./chart-legend-right\"\nimport { ChartLegendBottom } from \"./chart-legend-bottom\"\n\ninterface Props {\n attributes: Attributes\n chartUuid: string\n chartMetadata: ChartMetadata\n chartLibrary: string\n colors: {\n [key: string]: string\n }\n hoveredRow: number\n hoveredX: number | null\n legendFormatValue: (value: number | string | null) => number | string\n selectedDimensions: string[]\n setSelectedDimensions: (selectedDimensions: string[]) => void\n showLatestOnBlur: boolean\n unitsCurrent: string\n viewBefore: number\n legendToolbox: JSX.Element\n resizeHandler: React.ReactNode\n}\n\nexport const ChartLegend = ({\n attributes,\n chartUuid,\n chartMetadata,\n chartLibrary,\n colors,\n hoveredRow,\n hoveredX,\n legendFormatValue,\n selectedDimensions,\n setSelectedDimensions,\n showLatestOnBlur,\n unitsCurrent,\n viewBefore,\n legendToolbox,\n resizeHandler,\n}: Props) => {\n const dimension_names = useSelector(\n useCallback((state: any) => selectChartData(state, { id: chartUuid }).dimension_names, [\n chartUuid,\n ])\n )\n\n const onDimensionClick = (clickedDimensionName: string, event: React.MouseEvent) => {\n event.preventDefault()\n const isModifierKeyPressed = event.shiftKey || event.ctrlKey\n const newSelectedDimensions = getNewSelectedDimensions({\n allDimensions: dimension_names,\n selectedDimensions,\n clickedDimensionName,\n isModifierKeyPressed,\n })\n setSelectedDimensions(newSelectedDimensions)\n }\n\n if (attributes.legendPosition === \"bottom\") {\n return (\n <ChartLegendBottom\n chartUuid={chartUuid}\n chartLibrary={chartLibrary}\n chartMetadata={chartMetadata}\n colors={colors}\n hoveredRow={hoveredRow}\n hoveredX={hoveredX}\n legendFormatValue={legendFormatValue}\n onDimensionClick={onDimensionClick}\n selectedDimensions={selectedDimensions}\n showLatestOnBlur={showLatestOnBlur}\n unitsCurrent={unitsCurrent}\n viewBefore={viewBefore}\n legendToolbox={legendToolbox}\n resizeHandler={resizeHandler}\n />\n )\n }\n\n return (\n <ChartLegendRight\n chartUuid={chartUuid}\n chartLibrary={chartLibrary}\n chartMetadata={chartMetadata}\n colors={colors}\n hoveredRow={hoveredRow}\n hoveredX={hoveredX}\n legendFormatValue={legendFormatValue}\n onDimensionClick={onDimensionClick}\n selectedDimensions={selectedDimensions}\n showLatestOnBlur={showLatestOnBlur}\n unitsCurrent={unitsCurrent}\n viewBefore={viewBefore}\n />\n )\n}\n","import React from \"react\"\n\nimport { ToolboxButton } from \"./toolbox-button\"\n\ntype ClickCallback = (event: React.MouseEvent) => void\ninterface Props {\n onToolboxLeftClick: ClickCallback\n onToolboxRightClick: ClickCallback\n onToolboxZoomInClick: ClickCallback\n onToolboxZoomOutClick: ClickCallback\n}\nexport const LegendToolbox = ({\n onToolboxLeftClick,\n onToolboxRightClick,\n onToolboxZoomInClick,\n onToolboxZoomOutClick,\n}: Props) => (\n <div className=\"netdata-legend-toolbox\">\n <ToolboxButton\n className=\"netdata-legend-toolbox-button\"\n onClick={onToolboxLeftClick}\n iconType=\"left\"\n popoverTitle=\"Pan Left\"\n popoverContent=\"Pan the chart to the left. You can also <b>drag it</b> with your mouse or your\n finger (on touch devices).<br/><small>Help can be disabled from the settings.</small>\"\n />\n <ToolboxButton\n className=\"netdata-legend-toolbox-button\"\n onClick={onToolboxRightClick}\n iconType=\"right\"\n popoverTitle=\"Pan Right\"\n popoverContent=\"Pan the chart to the right. You can also <b>drag it</b> with your mouse or\n your finger (on touch devices).<br/><small>Help can be disabled from the settings.</small>\"\n />\n <ToolboxButton\n className=\"netdata-legend-toolbox-button\"\n onClick={onToolboxZoomInClick}\n iconType=\"zoomIn\"\n popoverTitle=\"Chart Zoom In\"\n popoverContent=\"Zoom in the chart. You can also press SHIFT and select an area of the chart,\n or press SHIFT or ALT and use the mouse wheel or 2-finger touchpad scroll to zoom in or out.\n <br/><small>Help can be disabled from the settings.</small>\"\n />\n <ToolboxButton\n className=\"netdata-legend-toolbox-button\"\n onClick={onToolboxZoomOutClick}\n iconType=\"zoomOut\"\n popoverTitle=\"Chart Zoom Out\"\n popoverContent=\"Zoom out the chart. You can also press SHIFT or ALT and use the mouse wheel,\n or 2-finger touchpad scroll to zoom in or out.<br/><small>Help can be disabled from the\n settings.</small>\"\n />\n </div>\n)\n","/* eslint-disable no-nested-ternary */\nimport { always, memoizeWith } from \"ramda\"\nimport Color from \"color\"\n\nimport { ChartMetadata, DygraphData } from \"domains/chart/chart-types\"\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartLibraryConfig } from \"domains/chart/utils/chartLibrariesSettings\"\n\nexport const getDataForFakeStacked = (\n data: number[][],\n dimensionsVisibility: boolean[],\n): number[][] => data.map((point) => {\n const [timestamp, ...values] = point\n const rest: number[] = []\n let currentMin = 0\n let currentMax = 0\n values\n .map((value, i) => ({ isVisible: dimensionsVisibility[i], value }))\n // reverse because first dimensions should be \"on top\" (at least positive ones)\n .slice().reverse()\n .forEach(({ isVisible, value }) => {\n if (!isVisible) {\n rest.push(0) // push with value '0'. it won't be visible but needs to be present in array\n return\n }\n if (value >= 0) {\n currentMax += value\n rest.push(currentMax)\n } else {\n currentMin += value\n rest.push(currentMin)\n }\n })\n return [\n timestamp,\n ...rest,\n ]\n})\n\nconst isPercentage = (unit: string) => unit === \"percentage\"\n || unit === \"percent\"\n || unit.indexOf(\"%\") !== -1\n\nexport const getDygraphChartType = (\n attributes: Attributes, chartData: DygraphData, chartMetadata: ChartMetadata,\n chartSettings: ChartLibraryConfig,\n) => {\n const isLogScale = (chartSettings.isLogScale as ((a: Attributes) => boolean))(attributes)\n const {\n dygraphType: dygraphRequestedType = chartMetadata.chart_type,\n groupBy,\n } = attributes\n\n if (groupBy && groupBy !== \"dimension\" && isPercentage(chartMetadata.units)) {\n return \"line\"\n }\n\n // corresponds to state.tmp.dygraph_chart_type in old app\n let dygraphChartType = dygraphRequestedType\n if (dygraphChartType === \"stacked\" && chartData.dimensions === 1) {\n dygraphChartType = \"area\"\n }\n if (dygraphChartType === \"stacked\" && isLogScale) {\n dygraphChartType = \"area\"\n }\n return dygraphChartType\n}\n\nconst getBackgroundColor = memoizeWith(\n always(\"true\"),\n () => Color(window.NETDATA.themes.current.background),\n)\n// when in \"fakeStacked\" mode, we cannot use opacity for fill in charts, because the areas would\n// be visible under each other. So the darkening / whitening needs to be added directly to colors\n// (the colors are too saturated for areas and in stacked mode they were with 0.8 opacity)\nexport const transformColors = (colors: string[]) => (\n colors.map((color) => Color(color).mix(getBackgroundColor(), 0.2).hex())\n)\n\nexport const getDygraphFillAlpha = (\n isFakeStacked: boolean, dygraphChartType: string,\n) => (isFakeStacked\n ? window.NETDATA.options.current.color_fill_opacity_fake_stacked\n : dygraphChartType === \"stacked\"\n ? window.NETDATA.options.current.color_fill_opacity_stacked\n : window.NETDATA.options.current.color_fill_opacity_area)\n\n\n// https://github.com/danvk/dygraphs/blob/master/src/iframe-tarp.js#L1-L23\n// On mouseUp dygraphs put rectangles above all iframes so mouseUp can be properly intercepted.\n// this causes a problem with some analytics iframes that place themselves in regions where they\n// aren't visible anyway (for example hubspot iframe on Cloud), and this creates a problematic\n// horizontal scrollbar to appear. This function filters those \"rectangles\" (tarps) to omit\n// elements with unreachable \"left\" styles\nexport const hackDygraphIFrameTarps = (tarps: HTMLDivElement[]): HTMLDivElement[] => (\n tarps.filter((element: HTMLDivElement) => {\n const isOutsideReasonableViewport = Number(element.style.left.replace(\"px\", \"\")) > 10000\n if (isOutsideReasonableViewport) {\n element.parentNode!.removeChild(element)\n }\n return !isOutsideReasonableViewport\n })\n)\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable function-paren-newline */\n/* eslint-disable comma-dangle */\nimport React, { useRef, useCallback } from \"react\"\nimport { useToggle } from \"react-use\"\n\nconst useProceededChart = (\n chartRef: any,\n propsRef: any\n): [boolean, React.Ref<HTMLElement>, (g: Dygraph) => void] => {\n const [proceeded, toggleProceeded] = useToggle(false)\n\n const ref = useRef<HTMLElement>(null)\n\n const updatePosition = useCallback((g: Dygraph) => {\n const { x } = g.getArea()\n const distance = g.toDomXCoord(propsRef.current.chartData.first_entry * 1000)\n const hasProceeded = distance > x\n toggleProceeded(hasProceeded)\n\n if (hasProceeded && ref.current) {\n const { height } = chartRef.current.getBoundingClientRect()\n ref.current.style.left = `${x}px`\n ref.current.style.right = `calc(100% - ${distance}px)`\n ref.current.style.top = `${height / 2}px`\n }\n }, [])\n\n return [proceeded, ref, updatePosition]\n}\n\nexport default useProceededChart\n","import { useRef } from \"react\"\nimport { useToggle } from \"react-use\"\n\nconst badgeTopMargin = \"40px\"\n\nconst defaultPositionTo = (ref, x, position, topMargin) => {\n ref.current.style.left = `${x}px`\n ref.current.style.right = `calc(100% - ${position}px)`\n ref.current.style.top = topMargin\n}\n\nexport default () => {\n const [isRendered, toggleIsRendered] = useToggle(false)\n\n const ref = useRef(null)\n\n const updatePosition = (isVisible, g, position, positionTo = defaultPositionTo) => {\n if (!isVisible) {\n toggleIsRendered(false)\n return\n }\n\n if (ref.current) {\n toggleIsRendered(true)\n const { x } = g.getArea()\n\n positionTo(ref, x, position, badgeTopMargin)\n }\n }\n\n return [isRendered, ref, updatePosition]\n}\n","import React, { forwardRef } from \"react\"\nimport styled from \"styled-components\"\n\nconst Container = styled.div`\n display: block;\n`\n\nconst ProceededChartDisclaimer = forwardRef((\n props: React.HTMLAttributes<HTMLElement>,\n ref: React.Ref<HTMLDivElement>,\n) => (\n <Container ref={ref} className=\"dygraph__history-tip\" data-testid=\"proceededChartDisclaimer\">\n <span className=\"dygraph__history-tip-content\">\n Want to extend your history of real-time metrics?\n <br />\n <a href=\"https://learn.netdata.cloud/guides/longer-metrics-storage/\" target=\"_blank\" rel=\"noopener noreferrer\" data-testid=\"proceededChartDisclaimer-configure\">\n Configure Netdata&apos;s&nbsp;\n <b>history</b>\n </a>\n &nbsp;or use the&nbsp;\n <a href=\"https://learn.netdata.cloud/docs/agent/database/engine/\" target=\"_blank\" rel=\"noopener noreferrer\" data-testid=\"proceededChartDisclaimer-engine\">DB engine</a>\n .\n </span>\n </Container>\n))\n\nexport default ProceededChartDisclaimer\n","import React, { forwardRef } from \"react\"\nimport styled from \"styled-components\"\n\nconst backgroundColorMap = {\n WARNING: \"#FFF8E1\",\n CRITICAL: \"#FFEBEF\",\n CLEAR: \"#E5F5E8\",\n}\nexport const getBackgroundColor = (status) => backgroundColorMap[status] || null\n\nconst borderColorMap = {\n WARNING: \"#FFC300\",\n CRITICAL: \"#F59B9B\",\n CLEAR: \"#68C47D\",\n}\nexport const getBorderColor = (status) => borderColorMap[status] || null\n\nconst textColorMap = {\n WARNING: \"#536775\",\n CRITICAL: \"#FF4136\",\n CLEAR: \"#00AB44\",\n}\nexport const getColor = (status) => textColorMap[status] || null\n\nconst Container = styled.div`\n position: absolute;\n margin-right: 10px;\n overflow: hidden;\n pointer-events: none;\n direction: rtl;\n z-index: 10; // higher than chart\n`\n\nconst Badge = styled.div`\n display: inline-block;\n border-radius: 36px;\n padding: 2px 12px;\n background: ${({ background }) => background};\n border: 1px solid ${({ border }) => border};\n color: ${({ color }) => color};\n font-size: 12px;\n font-weight: 700;\n direction: ltr;\n white-space: nowrap;\n`\n\nexport default forwardRef((\n { isVisible, status, label },\n ref,\n) => (\n <Container ref={ref}>\n {isVisible && (\n <Badge\n background={getBackgroundColor(status)}\n border={getBorderColor(status)}\n color={getColor(status)}\n >\n {label}\n </Badge>\n )}\n </Container>\n))\n","//@ts-nocheck\nimport { sortBy, reverse } from \"ramda\"\nimport React, { useLayoutEffect, useRef, useCallback } from \"react\"\nimport classNames from \"classnames\"\nimport { useUpdateEffect, useUnmount, useMount } from \"react-use\"\n// this version is needed because it contains a fix for handling constant value in the chart\n// ie. https://github.com/danvk/dygraphs/pull/909\nimport Dygraph from \"vendor/dygraph-c91c859.min\"\nimport \"dygraphs/src-es5/extras/smooth-plotter\"\nimport ResizeObserver from \"resize-observer-polyfill\"\n\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { AppStateT } from \"store/app-state\"\nimport { DygraphArea, NetdataDygraph } from \"types/vendor-overrides\"\nimport { TimeRange } from \"types/common\"\nimport { useDateTime } from \"utils/date-time\"\nimport { debounce } from \"utils/debounce\"\n\nimport {\n selectCommonMin,\n selectCommonMax,\n selectGlobalChartUnderlay,\n selectGlobalSelectionMaster,\n selectSmoothPlot,\n selectSyncPanAndZoom,\n selectSpacePanelTransitionEndIsActive,\n selectAlarm,\n selectTimezoneSetting,\n} from \"domains/global/selectors\"\nimport {\n resetGlobalPanAndZoomAction,\n setCommonMaxAction,\n setCommonMinAction,\n setGlobalPauseAction,\n resetGlobalPauseAction,\n} from \"domains/global/actions\"\n\nimport { resetChartPanAndZoomAction } from \"domains/chart/actions\"\n\nimport { Attributes } from \"../../utils/transformDataAttributes\"\nimport {\n chartLibrariesSettings,\n ChartLibraryConfig,\n ChartLibraryName,\n} from \"../../utils/chartLibrariesSettings\"\nimport { ChartMetadata, DygraphData } from \"../../chart-types\"\nimport { selectResizeHeight } from \"../../selectors\"\n\nimport {\n getDygraphChartType,\n getDataForFakeStacked,\n transformColors,\n getDygraphFillAlpha,\n hackDygraphIFrameTarps,\n} from \"./dygraph/utils\"\nimport \"./dygraph-chart.css\"\n\nimport useProceededChart from \"../../hooks/use-proceeded-chart\"\nimport useDygraphBadge from \"../../hooks/useDygraphBadge\"\nimport ProceededChartDisclaimer from \"./proceeded-chart-disclaimer\"\nimport AlarmBadge, { getBorderColor } from \"./alarmBadge\"\n\n// This is the threshold above which we assume chart shown duration has changed\nconst timeframeThreshold = 5000\nconst dygraphResizeDebounceTime = 500\n\ntype IsInRangeOfAvailableData = (props: {\n after: number, before: number, chartData: DygraphData,\n}) => boolean\nconst isInRangeOfAvailableData: IsInRangeOfAvailableData = ({ after, before, chartData }) => (\n after >= (chartData.first_entry * 1000) && before <= (chartData.last_entry * 1000)\n)\n\ninterface GetInitialDygraphOptions {\n attributes: Attributes,\n chartData: DygraphData,\n chartMetadata: ChartMetadata,\n chartSettings: ChartLibraryConfig,\n dimensionsVisibility: boolean[]\n hiddenLabelsElementId: string,\n isFakeStacked: boolean,\n orderedColors: string[],\n setMinMax: (minMax: TimeRange) => void\n shouldSmoothPlot: boolean,\n unitsCurrent: string,\n xAxisDateString: (d: Date) => string,\n xAxisTimeString: (d: Date) => string,\n}\nconst getInitialDygraphOptions = ({\n attributes,\n chartData,\n chartMetadata,\n chartSettings,\n dimensionsVisibility,\n hiddenLabelsElementId,\n isFakeStacked,\n orderedColors,\n setMinMax,\n shouldSmoothPlot,\n unitsCurrent,\n xAxisDateString,\n xAxisTimeString,\n}: GetInitialDygraphOptions) => {\n const isSparkline = attributes.dygraphTheme === \"sparkline\"\n const highlightCircleSize = isSparkline ? 3 : 4\n\n const isLogScale = (chartSettings.isLogScale as ((a: Attributes) => boolean))(attributes)\n const dygraphChartType = getDygraphChartType(attributes, chartData, chartMetadata, chartSettings)\n const {\n dygraphSmooth = dygraphChartType === \"line\"\n && !isSparkline,\n dygraphDrawAxis = true,\n legendPosition,\n } = attributes\n const isLegendOnBottom = legendPosition === \"bottom\"\n const {\n // destructuring with default values\n dygraphColors = orderedColors,\n dygraphRightGap = 5,\n dygraphShowRangeSelector = false,\n dygraphShowRoller = false,\n dygraphTitle = attributes.title || chartMetadata.title,\n dygraphTitleHeight = 19,\n dygraphLegend = \"always\",\n dygraphLabelsDiv = hiddenLabelsElementId,\n dygraphLabelsSeparateLine = true,\n dygraphIncludeZero = dygraphChartType === \"stacked\",\n dygraphShowZeroValues = true,\n dygraphShowLabelsOnHighLight = true,\n dygraphHideOverlayOnMouseOut = true,\n dygraphXRangePad = 0,\n dygraphYRangePad = 1,\n dygraphValueRange = [null, null],\n dygraphYLabelWidth = 12,\n // eslint-disable-next-line no-nested-ternary\n dygraphStrokeWidth = dygraphChartType === \"stacked\"\n ? 0.1\n : (dygraphSmooth === true\n ? 1.5\n : 0.7),\n\n dygraphStrokePattern,\n dygraphDrawPoints = false,\n dygraphDrawGapEdgePoints = true,\n dygraphConnectSeparatedPoints = false,\n dygraphPointSize = 1,\n dygraphStepPlot = false,\n dygraphStrokeBorderColor = window.NETDATA.themes.current.background,\n dygraphStrokeBorderWidth = 0,\n dygraphFillGraph = (dygraphChartType === \"area\" || dygraphChartType === \"stacked\"),\n dygraphFillAlpha = getDygraphFillAlpha(isFakeStacked, dygraphChartType),\n dygraphStackedGraph = dygraphChartType === \"stacked\" && !isFakeStacked,\n dygraphStackedGraphNanFill = \"none\",\n dygraphAxisLabelFontSize = 10,\n dygraphAxisLineColor = window.NETDATA.themes.current.axis,\n dygraphAxisLineWidth = 1.0,\n dygraphDrawGrid = true,\n dygraphGridLinePattern,\n dygraphGridLineWidth = 1.0,\n dygraphGridLineColor = window.NETDATA.themes.current.grid,\n dygraphMaxNumberWidth = 8,\n dygraphSigFigs,\n dygraphDigitsAfterDecimal = 2,\n dygraphHighlighCircleSize = highlightCircleSize,\n dygraphHighlightSeriesOpts,\n dygraphHighlightSeriesBackgroundAlpha,\n\n dygraphXPixelsPerLabel = 50,\n dygraphXAxisLabelWidth = 60,\n dygraphDrawXAxis = dygraphDrawAxis,\n dygraphYPixelsPerLabel = 15,\n dygraphYAxisLabelWidth = isLegendOnBottom ? 30 : 50,\n dygraphDrawYAxis = dygraphDrawAxis,\n } = attributes\n return {\n colors: isFakeStacked ? transformColors(reverse(dygraphColors)) : dygraphColors,\n\n // leave a few pixels empty on the right of the chart\n rightGap: isSparkline ? 0 : dygraphRightGap,\n showRangeSelector: dygraphShowRangeSelector,\n showRoller: dygraphShowRoller,\n title: isSparkline ? undefined : dygraphTitle,\n titleHeight: dygraphTitleHeight,\n legend: dygraphLegend, // we need this to get selection events\n labels: chartData.result.labels,\n labelsDiv: dygraphLabelsDiv,\n\n labelsSeparateLines: isSparkline ? true : dygraphLabelsSeparateLine,\n labelsShowZeroValues: isLogScale ? false : dygraphShowZeroValues,\n labelsKMB: false,\n labelsKMG2: false,\n showLabelsOnHighlight: dygraphShowLabelsOnHighLight,\n hideOverlayOnMouseOut: dygraphHideOverlayOnMouseOut,\n includeZero: dygraphIncludeZero,\n xRangePad: dygraphXRangePad,\n yRangePad: isSparkline ? 1 : dygraphYRangePad,\n valueRange: dygraphValueRange,\n ylabel: (isSparkline || isLegendOnBottom) ? undefined : unitsCurrent,\n yLabelWidth: (isSparkline || isLegendOnBottom) ? 0 : dygraphYLabelWidth,\n\n // the function to plot the chart\n plotter: (dygraphSmooth && shouldSmoothPlot) ? window.smoothPlotter : null,\n\n // The width of the lines connecting data points.\n // This can be used to increase the contrast or some graphs.\n strokeWidth: dygraphStrokeWidth,\n strokePattern: dygraphStrokePattern,\n\n // The size of the dot to draw on each point in pixels (see drawPoints).\n // A dot is always drawn when a point is \"isolated\",\n // i.e. there is a missing point on either side of it.\n // This also controls the size of those dots.\n drawPoints: dygraphDrawPoints,\n\n // Draw points at the edges of gaps in the data.\n // This improves visibility of small data segments or other data irregularities.\n drawGapEdgePoints: dygraphDrawGapEdgePoints,\n connectSeparatedPoints: isLogScale ? false : dygraphConnectSeparatedPoints,\n pointSize: dygraphPointSize,\n\n // enabling this makes the chart with little square lines\n stepPlot: dygraphStepPlot,\n\n // Draw a border around graph lines to make crossing lines more easily\n // distinguishable. Useful for graphs with many lines.\n strokeBorderColor: dygraphStrokeBorderColor,\n strokeBorderWidth: dygraphStrokeBorderWidth,\n fillGraph: dygraphFillGraph,\n fillAlpha: dygraphFillAlpha,\n stackedGraph: dygraphStackedGraph,\n stackedGraphNaNFill: dygraphStackedGraphNanFill,\n drawAxis: isSparkline ? false : dygraphDrawAxis,\n axisLabelFontSize: dygraphAxisLabelFontSize,\n axisLineColor: dygraphAxisLineColor,\n axisLineWidth: dygraphAxisLineWidth,\n drawGrid: isSparkline ? false : dygraphDrawGrid,\n gridLinePattern: dygraphGridLinePattern,\n gridLineWidth: dygraphGridLineWidth,\n gridLineColor: dygraphGridLineColor,\n maxNumberWidth: dygraphMaxNumberWidth,\n sigFigs: dygraphSigFigs,\n digitsAfterDecimal: dygraphDigitsAfterDecimal,\n highlightCircleSize: dygraphHighlighCircleSize,\n highlightSeriesOpts: dygraphHighlightSeriesOpts, // TOO SLOW: { strokeWidth: 1.5 },\n // TOO SLOW: (state.tmp.dygraph_chart_type === 'stacked')?0.7:0.5,\n highlightSeriesBackgroundAlpha: dygraphHighlightSeriesBackgroundAlpha,\n visibility: dimensionsVisibility,\n logscale: isLogScale,\n\n axes: {\n x: {\n pixelsPerLabel: dygraphXPixelsPerLabel,\n // insufficient typings for Dygraph\n // @ts-ignore\n ticker: Dygraph.dateTicker,\n axisLabelWidth: dygraphXAxisLabelWidth,\n drawAxis: isSparkline ? false : dygraphDrawXAxis,\n axisLabelFormatter: (d: Date | number) => ((d as Date).toTimeString().startsWith(\"00:00:00\")\n ? xAxisDateString(d as Date)\n : xAxisTimeString(d as Date)\n ),\n },\n y: {\n logscale: isLogScale,\n pixelsPerLabel: dygraphYPixelsPerLabel,\n axisLabelWidth: dygraphYAxisLabelWidth,\n drawAxis: isSparkline ? false : dygraphDrawYAxis,\n // axisLabelFormatter is added on the updates\n axisLabelFormatter(y: Date | number) {\n const formatter = setMinMax([\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n this.axes_[0].extremeRange[0],\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n this.axes_[0].extremeRange[1],\n ]) as unknown as ((value: Date | number) => string)\n return formatter(y as number)\n },\n },\n },\n }\n}\n\ninterface Props {\n attributes: Attributes\n chartData: DygraphData\n chartMetadata: ChartMetadata\n chartElementClassName: string\n chartElementId: string\n chartLibrary: ChartLibraryName\n chartUuid: string\n colors: {\n [key: string]: string\n }\n dimensionsVisibility: boolean[]\n hasEmptyData: boolean\n hasLegend: boolean\n isRemotelyControlled: boolean\n onUpdateChartPanAndZoom: (arg: {\n after: number, before: number,\n callback: (after: number, before: number) => void,\n masterID: string,\n shouldNotExceedAvailableRange: boolean,\n }) => void\n orderedColors: string[]\n immediatelyDispatchPanAndZoom: () => void\n\n hoveredRow: number\n hoveredX: number | null\n setGlobalChartUnderlay: (arg: { after: number, before: number, masterID: string }) => void\n setHoveredX: (hoveredX: number | null, noMaster?: boolean) => void\n setMinMax: (minMax: TimeRange) => void\n unitsCurrent: string\n viewAfter: number\n viewBefore: number\n}\nexport const DygraphChart = ({\n attributes,\n chartData,\n chartMetadata,\n chartElementClassName,\n chartElementId,\n chartLibrary,\n // colors,\n chartUuid,\n dimensionsVisibility,\n hasEmptyData,\n hasLegend,\n isRemotelyControlled,\n onUpdateChartPanAndZoom,\n orderedColors,\n immediatelyDispatchPanAndZoom,\n\n hoveredRow,\n hoveredX,\n setGlobalChartUnderlay,\n setHoveredX,\n setMinMax,\n unitsCurrent,\n viewAfter,\n viewBefore,\n}: Props) => {\n const globalChartUnderlay = useSelector(selectGlobalChartUnderlay)\n const selectedAlarm = useSelector(selectAlarm)\n const alarm = selectedAlarm?.chartId === chartData.id ? selectedAlarm : null\n\n const timezone = useSelector(selectTimezoneSetting)\n\n const { xAxisDateString, xAxisTimeString } = useDateTime()\n const chartSettings = chartLibrariesSettings[chartLibrary]\n const hiddenLabelsElementId = `${chartUuid}-hidden-labels-id`\n\n const dygraphChartType = getDygraphChartType(attributes, chartData, chartMetadata, chartSettings)\n // isFakeStacked - is a special mode for displaying stacked charts with both positive and negative\n // values. Dygraph.js doesn't support it so in this case we need to sum the values manually\n // and display the chart as \"area\" type, but with keeping all styling (fill etc.) properties\n // as in \"stacked\" type\n // because first values need to be \"on top\" (at least for positive values), the dimension order\n // needs to be reversed (in getDataForFakeStacked function and when assigning dimension colors)\n const isFakeStacked = chartData.min < 0 && dygraphChartType === \"stacked\"\n const dygraphFillAlpha = getDygraphFillAlpha(isFakeStacked, dygraphChartType)\n\n const chartElement = useRef<HTMLDivElement>(null)\n\n const updateChartPanOrZoom = useCallback(({\n after, before,\n callback,\n shouldNotExceedAvailableRange,\n }) => {\n onUpdateChartPanAndZoom({\n after,\n before,\n callback,\n masterID: chartUuid,\n shouldNotExceedAvailableRange,\n })\n }, [chartUuid, onUpdateChartPanAndZoom])\n\n // keep in ref to prevent additional updates\n const dygraphInstance = useRef<Dygraph | null>()\n // state.tmp.dygraph_user_action in old dashboard\n const latestIsUserAction = useRef(false)\n // state.tmp.dygraph_mouse_down in old dashboard\n const isMouseDown = useRef(false)\n // state.tmp.dygraph_highlight_after in old dashboard\n const dygraphHighlightAfter = useRef<null | number>(null)\n // state.dygraph_last_touch_move in old dashboard\n const dygraphLastTouchMove = useRef(0)\n // state.dygraph_last_touch_page_x in old dashboard\n const dygraphLastTouchPageX = useRef(0)\n // state.dygraph_last_touch_end in old dashboard\n const dygraphLastTouchEnd = useRef<undefined | number>()\n\n const dispatch = useDispatch()\n const isSyncPanAndZoom = useSelector(selectSyncPanAndZoom)\n\n const resetGlobalPanAndZoom = useCallback(() => {\n latestIsUserAction.current = false // prevent starting panAndZoom\n if (dygraphInstance.current) {\n // todo on toolbox reset click, do updateOptions({ dateWindow: null })\n // (issue existed also before rewrite)\n dygraphInstance.current.updateOptions({\n // reset dateWindow to the current\n // @ts-ignore external typings dont support null\n dateWindow: null,\n })\n }\n\n if (isSyncPanAndZoom) {\n dispatch(resetGlobalPanAndZoomAction())\n } else {\n dispatch(resetChartPanAndZoomAction({ id: chartUuid }))\n }\n }, [chartUuid, dispatch, isSyncPanAndZoom])\n\n const [isAlarmBadgeVisible, alarmBadgeRef, updateAlarmBadge] = useDygraphBadge() as any\n\n // setGlobalChartUnderlay is using state from closure (chartData.after), so we need to have always\n // the newest callback. Unfortunately we cannot use Dygraph.updateOptions() (library restriction)\n // for interactionModel callbacks so we need to keep the callback in mutable ref\n const propsRef = useRef({\n alarm,\n chartData,\n globalChartUnderlay,\n hoveredX,\n immediatelyDispatchPanAndZoom,\n // put it to ref to prevent additional updateOptions() after creating dygraph\n resetGlobalPanAndZoom,\n setGlobalChartUnderlay,\n updateAlarmBadge,\n updateChartPanOrZoom,\n viewAfter,\n viewBefore,\n })\n\n const [\n isProceeded, precededChartRef, updatePrecededPosition,\n ] = useProceededChart(chartElement, propsRef)\n\n useLayoutEffect(() => {\n propsRef.current.alarm = alarm\n propsRef.current.chartData = chartData\n propsRef.current.hoveredX = hoveredX\n propsRef.current.immediatelyDispatchPanAndZoom = immediatelyDispatchPanAndZoom\n propsRef.current.globalChartUnderlay = globalChartUnderlay\n propsRef.current.resetGlobalPanAndZoom = resetGlobalPanAndZoom\n propsRef.current.setGlobalChartUnderlay = setGlobalChartUnderlay\n propsRef.current.updateAlarmBadge = updateAlarmBadge\n propsRef.current.updateChartPanOrZoom = updateChartPanOrZoom\n propsRef.current.viewAfter = viewAfter\n propsRef.current.viewBefore = viewBefore\n }, [\n alarm,\n chartData,\n globalChartUnderlay,\n hoveredX,\n immediatelyDispatchPanAndZoom,\n resetGlobalPanAndZoom,\n setGlobalChartUnderlay,\n updateAlarmBadge,\n updateChartPanOrZoom,\n viewAfter,\n viewBefore,\n ])\n\n const shouldSmoothPlot = useSelector(selectSmoothPlot)\n useLayoutEffect(() => {\n if (chartElement && chartElement.current && !dygraphInstance.current && !hasEmptyData) {\n const dygraphOptionsStatic = getInitialDygraphOptions({\n attributes,\n chartData,\n chartMetadata,\n chartSettings,\n dimensionsVisibility,\n hiddenLabelsElementId,\n isFakeStacked,\n orderedColors,\n setMinMax,\n shouldSmoothPlot,\n unitsCurrent,\n xAxisDateString,\n xAxisTimeString,\n })\n\n latestIsUserAction.current = false\n\n const dygraphOptions = {\n ...dygraphOptionsStatic,\n // set dateWindow on init - this is needed when chart is globalPanAndZoom-master\n // and user scrolls down/up so the chart hides and then unhides. This causes the chart\n // to re-create, but the data has additional padding which should be outside of\n // visible range\n dateWindow: [propsRef.current.viewAfter, propsRef.current.viewBefore],\n\n highlightCallback(\n event: MouseEvent, xval: number,\n ) {\n // todo\n // state.pauseChart()\n\n const newHoveredX = isMouseDown.current\n ? null\n : xval\n\n const currentHoveredX = propsRef.current.hoveredX\n if (newHoveredX !== currentHoveredX) {\n setHoveredX(newHoveredX)\n }\n },\n\n unhighlightCallback() {\n // todo\n // state.unpauseChart();\n if (propsRef.current.hoveredX !== null) {\n setHoveredX(null)\n }\n },\n drawCallback(dygraph: Dygraph) {\n // the user has panned the chart and this is called to re-draw the chart\n // 1. refresh this chart by adding data to it\n // 2. notify all the other charts about the update they need\n\n // to prevent an infinite loop (feedback), we use\n // state.tmp.dygraph_user_action\n // - when true, this is initiated by a user\n // - when false, this is feedback\n\n if (latestIsUserAction.current) {\n latestIsUserAction.current = false\n const xRange = dygraph.xAxisRange()\n const after = Math.round(xRange[0])\n const before = Math.round(xRange[1])\n\n if (isInRangeOfAvailableData({\n after, before, chartData: propsRef.current.chartData,\n })) {\n propsRef.current.updateChartPanOrZoom({ after, before })\n }\n }\n },\n zoomCallback: (minDate: number, maxDate: number) => {\n latestIsUserAction.current = true\n propsRef.current.updateChartPanOrZoom({ after: minDate, before: maxDate })\n },\n\n underlayCallback(canvas: CanvasRenderingContext2D, area: DygraphArea, g: Dygraph) {\n updatePrecededPosition(g)\n\n if (propsRef.current.alarm) {\n const { alarm: currentAlarm } = propsRef.current\n\n const alarmPosition = g.toDomXCoord(currentAlarm.when * 1000)\n const fillColor = getBorderColor(currentAlarm.status)\n const horizontalPadding = 3\n // use RAF, because dygraph doesn't provide any callback called after drawing the chart\n requestAnimationFrame(() => {\n canvas.fillStyle = fillColor\n const globalAlphaCache = canvas.globalAlpha\n canvas.globalAlpha = 0.7\n canvas.fillRect(alarmPosition - horizontalPadding, area.y, 2 * horizontalPadding, area.h)\n canvas.globalAlpha = globalAlphaCache\n })\n\n propsRef.current.updateAlarmBadge(\n propsRef.current.alarm,\n g,\n alarmPosition - horizontalPadding,\n )\n }\n\n // the chart is about to be drawn\n // this function renders global highlighted time-frame\n\n if (propsRef.current.globalChartUnderlay) {\n const { after, before } = propsRef.current.globalChartUnderlay\n\n if (after < before) {\n const HIGHLIGHT_HORIZONTAL_PADDING = 20\n const bottomLeft = g.toDomCoords(after, -HIGHLIGHT_HORIZONTAL_PADDING)\n const topRight = g.toDomCoords(before, HIGHLIGHT_HORIZONTAL_PADDING)\n\n const left = bottomLeft[0]\n const right = topRight[0]\n\n // eslint-disable-next-line no-param-reassign\n canvas.fillStyle = window.NETDATA.themes.current.highlight\n canvas.fillRect(left, area.y, right - left, area.h)\n }\n }\n },\n\n // interactionModel cannot be replaced with updateOptions(). we need to keep all changing\n // values and callbacks in mutable ref,\n interactionModel: {\n mousedown(event: MouseEvent, dygraph: Dygraph, context: any) {\n // Right-click should not initiate anything.\n if (event.button && event.button === 2) {\n return\n }\n\n latestIsUserAction.current = true\n isMouseDown.current = true\n context.initializeMouseDown(event, dygraph, context)\n\n // limit problematic dygraph's feature, more info above the function\n // eslint-disable-next-line no-param-reassign\n context.tarp.tarps = hackDygraphIFrameTarps(context.tarp.tarps)\n\n dispatch(setGlobalPauseAction())\n\n if (event.button && event.button === 1) {\n // middle mouse button\n\n if (event.shiftKey) {\n // panning\n dygraphHighlightAfter.current = null\n // @ts-ignore\n Dygraph.startPan(event, dygraph, context)\n } else if (event.altKey || event.ctrlKey || event.metaKey) {\n // middle mouse button highlight\n dygraphHighlightAfter.current = dygraph.toDataXCoord(event.offsetX)\n // @ts-ignore\n Dygraph.startZoom(event, dygraph, context)\n } else {\n // middle mouse button selection for zoom\n dygraphHighlightAfter.current = null\n // @ts-ignore\n Dygraph.startZoom(event, dygraph, context)\n }\n } else if (event.shiftKey) {\n // left mouse button selection for zoom (ZOOM)\n dygraphHighlightAfter.current = null\n // @ts-ignore\n Dygraph.startZoom(event, dygraph, context)\n } else if (event.altKey || event.ctrlKey || event.metaKey) {\n // left mouse button highlight\n dygraphHighlightAfter.current = dygraph.toDataXCoord(event.offsetX)\n // @ts-ignore\n Dygraph.startZoom(event, dygraph, context)\n } else {\n // left mouse button dragging (PAN)\n dygraphHighlightAfter.current = null\n // @ts-ignore\n Dygraph.startPan(event, dygraph, context)\n }\n },\n\n mousemove(event: MouseEvent, dygraph: Dygraph, context: any) {\n // if (state.tmp.dygraph_highlight_after !== null) {\n // else if (\n if (dygraphHighlightAfter.current !== null) {\n // highlight selection\n latestIsUserAction.current = true\n // @ts-ignore\n Dygraph.moveZoom(event, dygraph, context)\n event.preventDefault()\n } else if (context.isPanning) {\n latestIsUserAction.current = true\n // eslint-disable-next-line no-param-reassign\n context.is2DPan = false\n // @ts-ignore\n Dygraph.movePan(event, dygraph, context)\n } else if (context.isZooming) {\n // @ts-ignore\n Dygraph.moveZoom(event, dygraph, context)\n }\n },\n\n mouseup(event: MouseEvent, dygraph: Dygraph, context: any) {\n isMouseDown.current = false\n if (dygraphHighlightAfter.current !== null) {\n const sortedRange = sortBy((x) => +x, [\n dygraphHighlightAfter.current,\n dygraph.toDataXCoord(event.offsetX),\n ])\n\n propsRef.current.setGlobalChartUnderlay({\n after: sortedRange[0],\n before: sortedRange[1],\n masterID: chartData.id,\n })\n dygraphHighlightAfter.current = null\n // eslint-disable-next-line no-param-reassign\n context.isZooming = false\n\n // old dashboard code\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n dygraph.clearZoomRect_()\n // this call probably fixes the broken selection circle during highlighting\n // and forces underlayCallback to fire (and draw highlight-rect\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n dygraph.drawGraph_(false)\n } else if (context.isPanning) {\n latestIsUserAction.current = true\n // @ts-ignore\n Dygraph.endPan(event, dygraph, context)\n propsRef.current.immediatelyDispatchPanAndZoom()\n } else if (context.isZooming) {\n latestIsUserAction.current = true\n // @ts-ignore\n Dygraph.endZoom(event, dygraph, context)\n propsRef.current.immediatelyDispatchPanAndZoom()\n }\n },\n\n wheel(event: WheelEvent, dygraph: Dygraph) {\n if (!event.shiftKey && !event.altKey) return\n\n latestIsUserAction.current = true\n event.preventDefault()\n event.stopPropagation()\n\n // https://dygraphs.com/gallery/interaction-api.js\n const zoom = (g, zoomInPercentage, bias) => {\n bias = bias || 0.5\n const [afterAxis, beforeAxis] = g.xAxisRange()\n const delta = beforeAxis - afterAxis\n const increment = delta * zoomInPercentage\n const [afterIncrement, beforeIncrement] = [increment * bias, increment * (1 - bias)]\n\n const after = afterAxis + afterIncrement\n const before = beforeAxis - beforeIncrement\n\n propsRef.current.updateChartPanOrZoom({\n after,\n before,\n shouldNotExceedAvailableRange: true,\n callback: (updatedAfter: number, updatedBefore: number) => {\n dygraph.updateOptions({\n dateWindow: [updatedAfter, updatedBefore],\n })\n },\n })\n }\n\n const offsetToPercentage = (g, offsetX) => {\n // This is calculating the pixel offset of the leftmost date.\n const [axisAfterOffset] = g.toDomCoords(g.xAxisRange()[0], null)\n // x and w are relative to the corner of the drawing area,\n // so that the upper corner of the drawing area is (0, 0).\n const x = offsetX - axisAfterOffset\n // This is computing the rightmost pixel, effectively defining the\n // width.\n const w = g.toDomCoords(g.xAxisRange()[1], null)[0] - axisAfterOffset\n\n // Percentage from the left.\n return w === 0 ? 0 : x / w\n }\n\n const normalDef =\n typeof event.wheelDelta === \"number\" && !Number.isNaN(event.wheelDelta)\n ? event.wheelDelta / 40\n : event.deltaY * -1.2\n\n const normal = event.detail ? event.detail * -1 : normalDef\n const percentage = normal / 50\n\n if (!event.offsetX) event.offsetX = event.layerX - event.target.offsetLeft\n const xPct = offsetToPercentage(dygraph, event.offsetX)\n\n zoom(dygraph, percentage, xPct)\n },\n\n click(event: MouseEvent) {\n event.preventDefault()\n },\n\n dblclick() {\n dispatch(resetGlobalPauseAction({ forcePlay: false }))\n propsRef.current.resetGlobalPanAndZoom()\n },\n\n touchstart(event: TouchEvent, dygraph: Dygraph, context: any) {\n isMouseDown.current = true\n latestIsUserAction.current = true\n\n // todo\n // state.pauseChart()\n\n Dygraph.defaultInteractionModel.touchstart(event, dygraph, context)\n\n // we overwrite the touch directions at the end, to overwrite\n // the internal default of dygraph\n // eslint-disable-next-line no-param-reassign\n context.touchDirections = { x: true, y: false }\n\n dygraphLastTouchMove.current = 0\n\n if (typeof event.touches[0].pageX === \"number\") {\n dygraphLastTouchPageX.current = event.touches[0].pageX\n } else {\n dygraphLastTouchPageX.current = 0\n }\n },\n touchmove(event: TouchEvent, dygraph: Dygraph, context: any) {\n latestIsUserAction.current = true\n Dygraph.defaultInteractionModel.touchmove(event, dygraph, context)\n\n dygraphLastTouchMove.current = Date.now()\n },\n\n touchend(event: TouchEvent, dygraph: Dygraph, context: any) {\n isMouseDown.current = false\n latestIsUserAction.current = true\n Dygraph.defaultInteractionModel.touchend(event, dygraph, context)\n\n // if it didn't move, it is a selection\n if (dygraphLastTouchMove.current === 0 && dygraphLastTouchPageX.current !== 0\n && chartElement.current // this is just for TS\n ) {\n latestIsUserAction.current = false // prevent updating pan-and-zoom\n // internal api of dygraph\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n const dygraphPlotter = dygraph.plotter_\n const pct = (dygraphLastTouchPageX.current - (\n dygraphPlotter.area.x + chartElement.current.getBoundingClientRect().left\n )) / dygraphPlotter.area.w\n\n const { current } = propsRef\n const t = Math.round(current.viewAfter\n + (current.viewBefore - current.viewAfter) * pct)\n // dont set \"master\" so the highlight is recalculated (to match existing row)\n setHoveredX(t, true)\n }\n\n // if it was double tap within double click time, reset the charts\n const now = Date.now()\n if (typeof dygraphLastTouchEnd.current !== \"undefined\") {\n if (dygraphLastTouchMove.current === 0) {\n const dt = now - dygraphLastTouchEnd.current\n if (dt <= window.NETDATA.options.current.double_click_speed) {\n propsRef.current.resetGlobalPanAndZoom()\n }\n }\n }\n\n // remember the timestamp of the last touch end\n dygraphLastTouchEnd.current = now\n propsRef.current.immediatelyDispatchPanAndZoom()\n },\n },\n }\n\n const data = isFakeStacked\n ? getDataForFakeStacked(chartData.result.data, dimensionsVisibility)\n : chartData.result.data\n const instance = new Dygraph((chartElement.current), data, dygraphOptions)\n dygraphInstance.current = instance\n }\n }, [attributes, chartData, chartMetadata, chartSettings, chartUuid, dimensionsVisibility,\n hasEmptyData, hiddenLabelsElementId, isFakeStacked,\n orderedColors, setHoveredX, setMinMax, shouldSmoothPlot, unitsCurrent,\n xAxisDateString, xAxisTimeString, updatePrecededPosition, dispatch])\n\n useUpdateEffect(() => {\n if (dygraphInstance.current) {\n const isSparkline = attributes.dygraphTheme === \"sparkline\"\n const isLegendOnBottom = attributes.legendPosition === \"bottom\"\n dygraphInstance.current.updateOptions({\n ylabel: (isSparkline || isLegendOnBottom) ? undefined : unitsCurrent,\n })\n }\n }, [attributes, unitsCurrent])\n\n\n // immediately update when changing global chart underlay or currently showed alarm\n useUpdateEffect(() => {\n if (dygraphInstance.current) {\n dygraphInstance.current.updateOptions({})\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [alarm, globalChartUnderlay])\n\n const spacePanelTransitionEndIsActive = useSelector(selectSpacePanelTransitionEndIsActive)\n useUpdateEffect(() => {\n if (dygraphInstance.current) {\n // dygraph always resizes on browser width change, but doesn't resize when the container\n // has different width.\n window.requestAnimationFrame(() => {\n if (dygraphInstance.current) {\n (dygraphInstance.current as NetdataDygraph).resize()\n }\n })\n }\n }, [spacePanelTransitionEndIsActive])\n\n // update data of the chart\n // first effect should only be made by new DygraphInstance()\n useUpdateEffect(() => {\n // dont update when there is no data - in this case we should still show old chart\n if (dygraphInstance.current && !hasEmptyData) {\n // todo support state.tmp.dygraph_force_zoom\n const forceDateWindow = [viewAfter, viewBefore]\n\n // in old dashboard, when chart needed to reset internal dateWindow state,\n // dateWindow was set to null, and new dygraph got the new dateWindow from results.\n // this caused small unsync between dateWindow of parent (master) and child charts\n // i also detected that forceDateWindow timestamps have slightly better performance (10%)\n // so if the chart needs to change local dateWindow, we'll always use timestamps instead of\n // null.\n\n const xAxisRange = dygraphInstance.current.xAxisRange()\n // eslint-disable-next-line max-len\n const hasChangedDuration = Math.abs((viewBefore - viewAfter) - (xAxisRange[1] - xAxisRange[0])) > timeframeThreshold\n\n // check if the time is relative\n const hasScrolledToTheFutureDuringPlayMode = viewBefore <= 0\n && (xAxisRange[1] > viewBefore)\n // if viewAfter is bigger than current dateWindow start, just reset dateWindow\n && (xAxisRange[0] > viewAfter)\n && !hasChangedDuration\n\n const optionsDateWindow = (isRemotelyControlled && !hasScrolledToTheFutureDuringPlayMode)\n ? { dateWindow: forceDateWindow }\n : {}\n\n const { dygraphColors = orderedColors } = attributes\n const file = isFakeStacked\n ? getDataForFakeStacked(chartData.result.data, dimensionsVisibility)\n : chartData.result.data\n\n const includeZero = dimensionsVisibility.length === 1 ||\n dimensionsVisibility.filter(x => x === true).length > 1\n\n dygraphInstance.current.updateOptions({\n ...optionsDateWindow,\n colors: isFakeStacked ? transformColors(reverse(dygraphColors)) : dygraphColors,\n file,\n labels: chartData.result.labels,\n fillAlpha: dygraphFillAlpha,\n ...(dygraphChartType === \"stacked\" ? { includeZero } : {}),\n stackedGraph: dygraphChartType === \"stacked\" && !isFakeStacked,\n // see explanation about reversing before isFakeStacked assignment\n visibility: isFakeStacked ? reverse(dimensionsVisibility) : dimensionsVisibility,\n })\n }\n }, [attributes, chartData.result, chartUuid, dimensionsVisibility, dygraphChartType,\n dygraphFillAlpha, hasEmptyData, isFakeStacked, isRemotelyControlled, orderedColors,\n viewAfter, viewBefore])\n\n useUpdateEffect(() => {\n if (!dygraphInstance.current) {\n return\n }\n\n const dygraphOptionsStatic = getInitialDygraphOptions({\n attributes,\n chartData,\n chartMetadata,\n chartSettings,\n dimensionsVisibility,\n hiddenLabelsElementId,\n isFakeStacked,\n orderedColors,\n setMinMax,\n shouldSmoothPlot,\n unitsCurrent,\n xAxisDateString,\n xAxisTimeString,\n })\n if (!hasEmptyData) dygraphInstance.current.updateOptions(dygraphOptionsStatic)\n }, [dygraphChartType, timezone])\n\n // set selection\n const currentSelectionMasterId = useSelector(selectGlobalSelectionMaster)\n useLayoutEffect(() => {\n if (dygraphInstance.current && currentSelectionMasterId !== chartUuid) {\n if (hoveredRow === -1) {\n // getSelection is 100 times faster that clearSelection\n if (dygraphInstance.current.getSelection() !== -1) {\n dygraphInstance.current.clearSelection()\n }\n return\n }\n dygraphInstance.current.setSelection(hoveredRow)\n }\n }, [chartData, chartUuid, currentSelectionMasterId, hoveredRow,\n viewAfter, viewBefore])\n\n\n // handle resizeHeight change\n const resizeHeight = useSelector(\n (state: AppStateT) => selectResizeHeight(state, { id: chartUuid }),\n )\n useLayoutEffect(() => {\n if (dygraphInstance.current) {\n (dygraphInstance.current as NetdataDygraph).resize()\n }\n }, [resizeHeight, chartData.dimension_names.length])\n\n\n const commonMinState = useSelector((state: AppStateT) => (\n attributes.commonMin\n ? selectCommonMin(state, attributes.commonMin)\n : undefined\n ))\n const commonMaxState = useSelector((state: AppStateT) => (\n attributes.commonMax\n ? selectCommonMax(state, attributes.commonMax)\n : undefined\n ))\n\n useLayoutEffect(() => {\n const { commonMin: commonMinKey, commonMax: commonMaxKey } = attributes\n\n if (\n dygraphInstance.current\n && (commonMinKey || commonMaxKey)\n ) {\n const extremes = (dygraphInstance.current as NetdataDygraph).yAxisExtremes()[0]\n const [currentMin, currentMax] = extremes\n\n const {\n dygraphValueRange = [null, null],\n } = attributes\n // if the user gave a valueRange, respect it\n const shouldUseCommonMin = dygraphValueRange[0] === null\n const shouldUseCommonMax = dygraphValueRange[1] === null\n\n\n let shouldUpdate = false\n let valueRange: number[] = [...extremes]\n\n // check if current extreme (painted by dygraph) is not more extreme than commonMin/Max\n // if yes - update the chart\n if (commonMinKey && shouldUseCommonMin) {\n if (commonMinState && commonMinState.currentExtreme < currentMin) {\n valueRange[0] = commonMinState.currentExtreme\n shouldUpdate = true\n }\n }\n if (commonMaxKey && shouldUseCommonMax) {\n if (commonMaxState && commonMaxState.currentExtreme > currentMax) {\n valueRange[1] = commonMaxState.currentExtreme\n shouldUpdate = true\n }\n }\n\n if (shouldUpdate) {\n dygraphInstance.current.updateOptions({ valueRange })\n const newExtremes = (dygraphInstance.current as NetdataDygraph).yAxisExtremes()[0]\n // get updated valueRange (rounded by dygraph)\n valueRange = [...newExtremes]\n }\n\n // if the value is different than the one stored in state, update redux state\n if (commonMinKey && shouldUseCommonMin\n && (valueRange[0] !== commonMinState?.charts[chartUuid])\n ) {\n dispatch(setCommonMinAction({ chartUuid, commonMinKey, value: valueRange[0] }))\n }\n if (commonMaxKey && shouldUseCommonMax\n && (valueRange[1] !== commonMaxState?.charts[chartUuid])\n ) {\n dispatch(setCommonMaxAction({ chartUuid, commonMaxKey, value: valueRange[1] }))\n }\n }\n }, [attributes, chartData.result, chartUuid, commonMinState, commonMaxState, dispatch])\n\n useLayoutEffect(() => {\n if (isProceeded && dygraphInstance.current) {\n updatePrecededPosition(dygraphInstance.current)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isProceeded])\n\n useUnmount(() => {\n if (dygraphInstance.current) {\n dygraphInstance.current.destroy()\n }\n })\n\n /**\n * resize with ResizeObserver\n */\n const resizeObserver = useRef<ResizeObserver>()\n useMount(() => {\n if (!attributes.detectResize) {\n return\n }\n // flag used to prevent first callback (and resize) on dygraph initial draw\n let hasOmitedFirstCallback = false\n const callbackDebounced = debounce(() => {\n if (!hasOmitedFirstCallback) {\n hasOmitedFirstCallback = true\n return\n }\n\n if (dygraphInstance.current) {\n (dygraphInstance.current as NetdataDygraph).resize()\n }\n }, dygraphResizeDebounceTime)\n\n resizeObserver.current = new ResizeObserver(() => {\n callbackDebounced()\n })\n resizeObserver.current.observe(chartElement.current as HTMLDivElement)\n })\n\n useUnmount(() => {\n dygraphInstance.current = null // clear it for debounce purposes\n if (resizeObserver.current) {\n resizeObserver.current.disconnect()\n }\n })\n\n const isLegendOnBottom = attributes.legendPosition === \"bottom\"\n\n return (\n <>\n <div\n ref={chartElement}\n id={chartElementId}\n className={classNames(\n chartElementClassName,\n { \"dygraph-chart--legend-bottom\": isLegendOnBottom },\n )}\n />\n {isProceeded && hasLegend && (\n <ProceededChartDisclaimer ref={precededChartRef as React.Ref<HTMLDivElement>} />\n )}\n {alarm?.value && hasLegend && (\n // @ts-ignore\n <AlarmBadge\n isVisible={isAlarmBadgeVisible}\n ref={alarmBadgeRef}\n status={alarm.status}\n label={alarm.value}\n />\n )}\n <div className=\"dygraph-chart__labels-hidden\" id={hiddenLabelsElementId} />\n </>\n )\n}\n","// https://gist.github.com/ca0v/73a31f57b397606c9813472f7493a940\n\nexport const debounce = <F extends (...args: any[]) => any>(func: F, waitFor: number) => {\n let timeout: ReturnType<typeof setTimeout> | null = null\n\n const debounced = (...args: Parameters<F>) => {\n if (timeout !== null) {\n clearTimeout(timeout)\n timeout = null\n }\n timeout = setTimeout(() => func(...args), waitFor)\n }\n\n return debounced as (...args: Parameters<F>) => ReturnType<F>\n}\n","import React, { useRef, useEffect, useState } from \"react\"\n// @ts-ignore \"declare module\" doesn't work properly when importing dashboard in cloud\nimport EasyPie from \"easy-pie-chart\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartMetadata, EasyPieChartData } from \"domains/chart/chart-types\"\nimport { ChartLibraryName } from \"domains/chart/utils/chartLibrariesSettings\"\nimport {\n always, cond, identity, T, sortBy, map, pipe,\n} from \"ramda\"\n\ntype GetPercentFromValueMinMax = (arg: {\n value: number | undefined\n min: number | undefined\n max: number | undefined\n isMinOverride: boolean\n isMaxOverride: boolean\n}) => number\nconst getPercentFromValueMinMax: GetPercentFromValueMinMax = ({\n value = 0, min = 0, max = 0,\n isMinOverride,\n isMaxOverride,\n}) => {\n /* eslint-disable no-param-reassign */\n // todo refractor old logic to readable functions\n // if no easyPiechart-min-value attribute\n if (!isMinOverride && min > 0) {\n min = 0\n }\n if (!isMaxOverride && max < 0) {\n max = 0\n }\n\n let pcent\n\n if (min < 0 && max > 0) {\n // it is both positive and negative\n // zero at the top center of the chart\n max = (-min > max) ? -min : max\n pcent = Math.round((value * 100) / max)\n } else if (value >= 0 && min >= 0 && max >= 0) {\n // clockwise\n pcent = Math.round(((value - min) * 100) / (max - min))\n if (pcent === 0) {\n pcent = 0.1\n }\n } else {\n // counter clockwise\n pcent = Math.round(((value - max) * 100) / (max - min))\n if (pcent === 0) {\n pcent = -0.1\n }\n }\n /* eslint-enable no-param-reassign */\n return pcent\n}\n\ninterface Props {\n attributes: Attributes\n chartData: EasyPieChartData\n chartMetadata: ChartMetadata\n chartElementClassName: string\n chartElementId: string\n chartLibrary: ChartLibraryName\n chartUuid: string\n colors: {\n [key: string]: string\n }\n chartWidth: number\n dimensionsVisibility: boolean[]\n isRemotelyControlled: boolean\n legendFormatValue: ((v: number | string | null) => number | string)\n onUpdateChartPanAndZoom: (arg: {\n after: number, before: number,\n callback: (after: number, before: number) => void,\n masterID: string,\n shouldNotExceedAvailableRange: boolean,\n }) => void\n orderedColors: string[]\n\n hoveredRow: number\n setGlobalChartUnderlay: (arg: { after: number, before: number, masterID: string }) => void\n setMinMax: (minMax: [number, number]) => void\n showUndefined: boolean\n unitsCurrent: string\n viewAfter: number\n viewBefore: number\n}\nexport const EasyPieChart = ({\n attributes,\n chartData,\n chartMetadata,\n chartElementClassName,\n chartElementId,\n chartWidth,\n hoveredRow,\n legendFormatValue,\n orderedColors,\n setMinMax,\n showUndefined,\n unitsCurrent,\n}: Props) => {\n const chartElement = useRef<HTMLDivElement>(null)\n const [chartInstance, setChartInstance] = useState()\n\n const valueIndex = hoveredRow === -1\n ? 0\n : (chartData.result.length - 1 - hoveredRow) // because data for easy-pie-chart are flipped\n const value = showUndefined ? null : chartData.result[valueIndex]\n\n const {\n // if this is set, then we're overriding commonMin\n easyPieChartMinValue: min = chartData.min, // todo replace with commonMin\n easyPieChartMaxValue: max = chartData.max, // todo replace with commonMax\n } = attributes\n\n // make sure the order is correct and that value is not outside those boundaries\n // (this check was present in old dashboard but perhaps it's not needed)\n const safeMinMax = pipe(\n map((x: number) => +x),\n sortBy(identity),\n ([_min, _max]: number[]) => [Math.min(_min, value || 0), Math.max(_max, value || 0)],\n )([min, max])\n\n useEffect(() => {\n setMinMax(safeMinMax as [number, number])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [safeMinMax])\n\n const pcent = getPercentFromValueMinMax({\n value: showUndefined ? 0 : (value as number),\n min: safeMinMax[0],\n max: safeMinMax[1],\n isMinOverride: attributes.easyPieChartMinValue !== undefined,\n isMaxOverride: attributes.easyPieChartMaxValue !== undefined,\n })\n\n useEffect(() => {\n if (chartElement.current && !chartInstance) {\n const stroke = cond([\n [(v) => v < 3, always(2)],\n [T, identity],\n ])(Math.floor(chartWidth / 22))\n\n const {\n easyPieChartTrackColor = window.NETDATA.themes.current.easypiechart_track,\n easyPieChartScaleColor = window.NETDATA.themes.current.easypiechart_scale,\n easyPieChartScaleLength = 5,\n easyPieChartLineCap = \"round\",\n easyPieChartLineWidth = stroke,\n easyPieChartTrackWidth,\n easyPieChartSize = chartWidth,\n easyPieChartRotate = 0,\n easyPieChartAnimate = { duration: 500, enabled: true },\n easyPieChartEasing,\n } = attributes\n\n const newChartInstance = new EasyPie(chartElement.current, {\n barColor: orderedColors[0],\n trackColor: easyPieChartTrackColor,\n scaleColor: easyPieChartScaleColor,\n scaleLength: easyPieChartScaleLength,\n lineCap: easyPieChartLineCap,\n lineWidth: easyPieChartLineWidth,\n trackWidth: easyPieChartTrackWidth,\n size: easyPieChartSize,\n rotate: easyPieChartRotate,\n animate: easyPieChartAnimate,\n easing: easyPieChartEasing,\n })\n setChartInstance(newChartInstance)\n }\n }, [attributes, chartData, chartInstance, chartWidth, orderedColors])\n\n // update with value\n useEffect(() => {\n if (chartInstance) {\n const shouldUseAnimation = hoveredRow === -1 && !showUndefined\n\n if (shouldUseAnimation && !chartInstance.options.animate.enabled) {\n chartInstance.enableAnimation()\n } else if (!shouldUseAnimation && chartInstance.options.animate.enabled) {\n chartInstance.disableAnimation()\n }\n\n setTimeout(() => {\n // need to be in timeout to trigger animation properly\n chartInstance.update(pcent)\n }, 0)\n }\n }, [chartInstance, hoveredRow, pcent, showUndefined])\n\n const valueFontSize = (chartWidth * 2) / 3 / 5\n const valuetop = Math.round((chartWidth - valueFontSize - (chartWidth / 40)) / 2)\n\n const titleFontSize = Math.round((valueFontSize * 1.6) / 3)\n const titletop = Math.round(valuetop - (titleFontSize * 2) - (chartWidth / 40))\n\n const unitFontSize = Math.round(titleFontSize * 0.9)\n const unitTop = Math.round(valuetop + (valueFontSize + unitFontSize) + (chartWidth / 40))\n // to update, just label innerText and pcent are changed\n\n return (\n <div ref={chartElement} id={chartElementId} className={chartElementClassName}>\n <span\n className=\"easyPieChartLabel\"\n style={{\n fontSize: valueFontSize,\n top: valuetop,\n }}\n >\n {legendFormatValue(value)}\n </span>\n <span\n className=\"easyPieChartTitle\"\n style={{\n fontSize: titleFontSize,\n top: titletop,\n }}\n >\n {attributes.title || chartMetadata.title}\n </span>\n <span\n className=\"easyPieChartUnits\"\n style={{\n fontSize: unitFontSize,\n top: unitTop,\n }}\n >\n {unitsCurrent}\n </span>\n\n </div>\n )\n}\n","import React, {\n useRef, useEffect, useState,\n} from \"react\"\n// @ts-ignore \"declare module\" doesn't work properly when importing dashboard in cloud\nimport { Gauge } from \"gaugeJS\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartMetadata, EasyPieChartData } from \"domains/chart/chart-types\"\nimport { ChartLibraryName } from \"domains/chart/utils/chartLibrariesSettings\"\nimport {\n identity, sortBy, map, pipe, always,\n} from \"ramda\"\n\nconst isSetByUser = (x: undefined | number): x is number => (\n typeof x === \"number\"\n)\n\ninterface Props {\n attributes: Attributes\n chartData: EasyPieChartData\n chartMetadata: ChartMetadata\n chartElementClassName: string\n chartElementId: string\n chartLibrary: ChartLibraryName\n chartUuid: string\n colors: {\n [key: string]: string\n }\n chartHeight: number\n chartWidth: number\n dimensionsVisibility: boolean[]\n isRemotelyControlled: boolean\n legendFormatValue: ((v: number | string | null) => number | string)\n onUpdateChartPanAndZoom: (arg: {\n after: number, before: number,\n callback: (after: number, before: number) => void,\n masterID: string,\n shouldNotExceedAvailableRange: boolean,\n }) => void\n orderedColors: string[]\n\n hoveredRow: number\n hoveredX: number | null\n setGlobalChartUnderlay: (arg: { after: number, before: number, masterID: string }) => void\n setHoveredX: (hoveredX: number | null, noMaster?: boolean) => void\n setMinMax: (minMax: [number, number]) => void\n showUndefined: boolean\n unitsCurrent: string\n viewAfter: number\n viewBefore: number\n}\nexport const GaugeChart = ({\n attributes,\n chartData,\n chartMetadata,\n chartElementClassName,\n chartElementId,\n chartUuid,\n chartHeight,\n chartWidth,\n hoveredRow,\n legendFormatValue,\n orderedColors,\n setMinMax,\n showUndefined,\n unitsCurrent,\n}: Props) => {\n const chartCanvasElement = useRef<HTMLCanvasElement>(null)\n const [chartInstance, setChartInstance] = useState()\n\n const valueIndex = hoveredRow === -1\n ? 0\n : (chartData.result.length - 1 - hoveredRow) // because data for easy-pie-chart are flipped\n const value = chartData.result[valueIndex]\n\n const {\n // if this is set, then we're overriding commonMin\n gaugeMinValue: minAttribute,\n gaugeMaxValue: maxAttribute,\n } = attributes\n\n const min = isSetByUser(minAttribute) ? minAttribute : chartData.min\n const max = isSetByUser(maxAttribute) ? maxAttribute : chartData.max\n // we should use minAttribute if it's existing\n // old app was using commonMin\n\n // make sure the order is correct and that value is not outside those boundaries\n // (this check was present in old dashboard but perhaps it's not needed)\n const [safeMin, safeMax] = pipe(\n // if they are attributes, make sure they're converted to numbers\n map((x: number) => +x),\n // make sure it is zero based\n // but only if it has not been set by the user\n ([_min, _max]: number[]) => [\n (!isSetByUser(minAttribute) && _min > 0) ? 0 : _min,\n (!isSetByUser(maxAttribute) && _max < 0) ? 0 : _max,\n ],\n // make sure min <= max\n sortBy(identity),\n ([_min, _max]: number[]) => [Math.min(_min, value), Math.max(_max, value)],\n )([min, max])\n // calling outside \"useEffect\" intentionally,\n // because it should update the values first, and only then render the chart in useEffect()\n useEffect(() => {\n setMinMax([safeMin, safeMax])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [safeMin, safeMax])\n\n const pcent = pipe(\n always(((value - safeMin) * 100) / (safeMax - safeMin)),\n // bug fix for gauge.js 1.3.1\n // if the value is the absolute min or max, the chart is broken\n (_pcent: number) => Math.max(0.001, _pcent),\n (_pcent: number) => Math.min(99.999, _pcent),\n )()\n\n useEffect(() => {\n if (chartCanvasElement.current && !chartInstance) {\n const {\n gaugePointerColor = window.NETDATA.themes.current.gauge_pointer,\n gaugeStrokeColor = window.NETDATA.themes.current.gauge_stroke,\n gaugeStartColor = orderedColors[0],\n gaugeStopColor,\n gaugeGenerateGradient = false,\n } = attributes\n\n const options = {\n lines: 12, // The number of lines to draw\n angle: 0.14, // The span of the gauge arc\n lineWidth: 0.57, // The line thickness\n radiusScale: 1.0, // Relative radius\n pointer: {\n length: 0.85, // 0.9 The radius of the inner circle\n strokeWidth: 0.045, // The rotation offset\n color: gaugePointerColor, // Fill color\n },\n\n // If false, the max value of the gauge will be updated if value surpass max\n // If true, the min value of the gauge will be fixed unless you set it manually\n limitMax: true,\n limitMin: true,\n colorStart: gaugeStartColor,\n colorStop: gaugeStopColor,\n strokeColor: gaugeStrokeColor,\n generateGradient: (gaugeGenerateGradient === true), // gmosx:\n gradientType: 0,\n highDpiSupport: true, // High resolution support\n }\n\n const newChartInstance = new Gauge(chartCanvasElement.current).setOptions(options)\n\n // we will always feed a percentage (copied from old dashboard)\n newChartInstance.minValue = 0\n newChartInstance.maxValue = 100\n\n setChartInstance(newChartInstance)\n }\n }, [attributes, chartData, chartInstance, chartWidth, orderedColors])\n\n // update with value\n useEffect(() => {\n if (chartInstance) {\n // gauge animation\n const shouldUseAnimation = hoveredRow === -1 && !showUndefined\n // animation doesn't work in newest, 1.3.7 version!\n const speed = shouldUseAnimation ? 32 : 1000000000\n chartInstance.animationSpeed = speed\n setTimeout(() => {\n chartInstance.set(showUndefined ? 0 : pcent)\n }, 0)\n }\n }, [chartInstance, chartHeight, chartWidth, hoveredRow, pcent, showUndefined])\n\n const valueFontSize = Math.floor(chartHeight / 5)\n const valueTop = Math.round((chartHeight - valueFontSize) / 3.2)\n\n const titleFontSize = Math.round(valueFontSize / 2.1)\n const titleTop = 0\n\n const unitFontSize = Math.round(titleFontSize * 0.9)\n\n const minMaxFontSize = Math.round(valueFontSize * 0.75)\n return (\n <div\n id={chartElementId}\n className={chartElementClassName}\n >\n <canvas\n ref={chartCanvasElement}\n className=\"gaugeChart\"\n id={`gauge-${chartUuid}-canvas`}\n style={{\n width: chartWidth,\n height: chartHeight,\n }}\n />\n <span\n className=\"gaugeChartLabel\"\n style={{\n fontSize: valueFontSize,\n top: valueTop,\n }}\n >\n {legendFormatValue(showUndefined ? null : value)}\n </span>\n <span\n className=\"gaugeChartTitle\"\n style={{\n fontSize: titleFontSize,\n top: titleTop,\n }}\n >\n {attributes.title || chartMetadata.title}\n </span>\n <span\n className=\"gaugeChartUnits\"\n style={{\n fontSize: unitFontSize,\n }}\n >\n {unitsCurrent}\n </span>\n <span className=\"gaugeChartMin\" style={{ fontSize: minMaxFontSize }}>\n {legendFormatValue(showUndefined ? null : safeMin)}\n </span>\n <span className=\"gaugeChartMax\" style={{ fontSize: minMaxFontSize }}>\n {legendFormatValue(showUndefined ? null : safeMax)}\n </span>\n </div>\n )\n}\n","import {\n cond, identity, map, pipe, replace, splitEvery, T, toString,\n} from \"ramda\"\n\ntype NormalizeHex = (hex: string) => string\nexport const normalizeHex: NormalizeHex = pipe(\n toString,\n replace(/[^0-9a-f]/gi, \"\"),\n cond([\n [(str) => str.length < 6, (str) => str[0] + str[0] + str[1] + str[1] + str[2] + str[2]],\n [T, identity],\n ]),\n)\n\nexport const colorLuminance = (hex: string, lum: number = 0) => {\n const hexNormalized = normalizeHex(hex)\n\n // convert to decimal and change luminosity\n const rgb = pipe(\n // point-free version generates ts error\n (str: string) => splitEvery(2, str),\n map(\n pipe(\n (str: string) => parseInt(str, 16),\n (nr) => Math.round(\n Math.min(\n Math.max(0, nr + (nr * lum)),\n 255,\n ),\n ).toString(16),\n (str) => `00${str}`.substr(str.length),\n ),\n ),\n (x) => x.join(\"\"),\n )(hexNormalized)\n return `#${rgb}`\n}\n","/* eslint-disable indent */\n/* eslint-disable operator-linebreak */\n/* eslint-disable comma-dangle */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable consistent-return */\nimport \"jquery-sparkline\"\nimport React, { useRef, useEffect, useState } from \"react\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartMetadata, EasyPieChartData } from \"domains/chart/chart-types\"\nimport { colorLuminance } from \"domains/chart/utils/color-luminance\"\nimport { MS_IN_SECOND } from \"utils/utils\"\nimport { TimeRange } from \"types/common\"\n\nconst convertToTimestamp = (number: number) => {\n if (number > 0) {\n return number\n }\n return new Date().valueOf() + number // number is negative or zero\n}\n\ninterface TimeWindowCorrection {\n paddingLeftPercentage?: string\n widthRatio?: number\n}\nconst getForceTimeWindowCorrection = (\n chartData: EasyPieChartData,\n viewRange: TimeRange\n): TimeWindowCorrection => {\n const requestedAfter = convertToTimestamp(viewRange[0])\n const requestedBefore = convertToTimestamp(viewRange[1])\n const after = chartData.after * MS_IN_SECOND\n const before = chartData.before * MS_IN_SECOND\n\n const currentDuration = before - after\n const requestedDuration = requestedBefore - requestedAfter\n // don't do overrides when current (available) duration is bigger or only slightly lower\n // than requested duration\n const DURATION_CHANGE_TOLERANCE = 1.03\n if (currentDuration > requestedDuration / DURATION_CHANGE_TOLERANCE) {\n return {}\n }\n\n const widthRatio = currentDuration / requestedDuration\n\n const visibleDuration = requestedBefore - requestedAfter\n const paddingLeftPercentage = `${100 * ((after - requestedAfter) / visibleDuration)}%`\n\n return {\n paddingLeftPercentage,\n widthRatio,\n }\n}\n\ninterface Props {\n attributes: Attributes\n chartContainerElement: HTMLElement\n chartData: EasyPieChartData\n chartMetadata: ChartMetadata\n chartElementClassName: string\n chartElementId: string\n dimensionsVisibility: boolean[]\n isRemotelyControlled: boolean\n orderedColors: string[]\n unitsCurrent: string\n viewAfterForCurrentData: number\n viewBeforeForCurrentData: number\n}\nexport const SparklineChart = ({\n attributes,\n chartContainerElement,\n chartData,\n chartMetadata,\n chartElementClassName,\n chartElementId,\n orderedColors,\n unitsCurrent,\n viewAfterForCurrentData,\n viewBeforeForCurrentData,\n}: Props) => {\n const chartElement = useRef<HTMLDivElement>(null)\n\n // update width, height automatically each time\n const [$chartElement, set$chartElement] = useState()\n const sparklineOptions = useRef<{ [key: string]: any }>()\n\n const { paddingLeftPercentage = undefined, widthRatio = 1 } = attributes.forceTimeWindow\n ? getForceTimeWindowCorrection(chartData, [viewAfterForCurrentData, viewBeforeForCurrentData])\n : {}\n\n const updateSparklineValues = () => {\n if (!$chartElement) return\n\n const { width, height } = chartContainerElement.getBoundingClientRect()\n // @ts-ignore\n $chartElement.sparkline(chartData.result, {\n ...sparklineOptions.current,\n width: Math.floor(width * widthRatio),\n height: Math.floor(height),\n })\n }\n\n // create chart\n useEffect(() => {\n const { sparklineLineColor = orderedColors[0] } = attributes\n const defaultFillColor =\n chartMetadata.chart_type === \"line\"\n ? window.NETDATA.themes.current.background\n : colorLuminance(sparklineLineColor, window.NETDATA.chartDefaults.fill_luminance)\n const chartTitle = attributes.title || chartMetadata.title\n\n const emptyStringIfDisable = (x: string | undefined) => (x === \"disable\" ? \"\" : x)\n\n const {\n sparklineType = \"line\",\n sparklineFillColor = defaultFillColor,\n sparklineDisableInteraction = false,\n sparklineDisableTooltips = false,\n sparklineDisableHighlight = false,\n sparklineHighlightLighten = 1.4,\n sparklineTooltipSuffix = ` ${unitsCurrent}`,\n sparklineNumberFormatter = (n: number) => n.toFixed(2),\n } = attributes\n\n const sparklineInitOptions = {\n type: sparklineType,\n lineColor: sparklineLineColor,\n fillColor: sparklineFillColor,\n chartRangeMin: attributes.sparklineChartRangeMin,\n chartRangeMax: attributes.sparklineChartRangeMax,\n composite: attributes.sparklineComposite,\n enableTagOptions: attributes.sparklineEnableTagOptions,\n tagOptionPrefix: attributes.sparklineTagOptionPrefix,\n tagValuesAttribute: attributes.sparklineTagValuesAttribute,\n\n disableHiddenCheck: attributes.sparklineDisableHiddenCheck,\n defaultPixelsPerValue: attributes.sparklineDefaultPixelsPerValue,\n spotColor: emptyStringIfDisable(attributes.sparklineSpotColor),\n minSpotColor: emptyStringIfDisable(attributes.sparklineMinSpotColor),\n maxSpotColor: emptyStringIfDisable(attributes.sparklineMaxSpotColor),\n spotRadius: attributes.sparklineSpotRadius,\n valueSpots: attributes.sparklineValueSpots,\n highlightSpotColor: attributes.sparklineHighlightSpotColor,\n highlightLineColor: attributes.sparklineHighlightLineColor,\n lineWidth: attributes.sparklineLineWidth,\n normalRangeMin: attributes.sparklineNormalRangeMin,\n normalRangeMax: attributes.sparklineNormalRangeMax,\n drawNormalOnTop: attributes.sparklineDrawNormalOnTop,\n xvalues: attributes.sparklineXvalues,\n chartRangeClip: attributes.sparklineChartRangeClip,\n chartRangeMinX: attributes.sparklineChartRangeMinX,\n chartRangeMaxX: attributes.sparklineChartRangeMaxX,\n disableInteraction: sparklineDisableInteraction,\n disableTooltips: sparklineDisableTooltips,\n disableHighlight: sparklineDisableHighlight,\n highlightLighten: sparklineHighlightLighten,\n highlightColor: attributes.sparklineHighlightColor,\n tooltipContainer: attributes.sparklineTooltipContainer,\n tooltipClassname: attributes.sparklineTooltipClassname,\n tooltipChartTitle: chartTitle,\n tooltipFormat: attributes.sparklineTooltipFormat,\n tooltipPrefix: attributes.sparklineTooltipPrefix,\n tooltipSuffix: sparklineTooltipSuffix,\n tooltipSkipNull: attributes.sparklineTooltipSkipNull,\n tooltipValueLookups: attributes.sparklineTooltipValueLookups,\n tooltipFormatFieldlist: attributes.sparklineTooltipFormatFieldlist,\n tooltipFormatFieldlistKey: attributes.sparklineTooltipFormatFieldlistKey,\n numberFormatter: sparklineNumberFormatter,\n numberDigitGroupSep: attributes.sparklineNumberDigitGroupSep,\n numberDecimalMark: attributes.sparklineNumberDecimalMark,\n numberDigitGroupCount: attributes.sparklineNumberDigitGroupCount,\n animatedZooms: attributes.sparklineAnimatedZooms,\n }\n sparklineOptions.current = sparklineInitOptions\n\n if (!chartElement.current || $chartElement) return\n\n set$chartElement(() => window.$(chartElement.current))\n }, [\n $chartElement,\n attributes,\n chartContainerElement,\n chartData.result,\n chartMetadata,\n orderedColors,\n unitsCurrent,\n widthRatio,\n ])\n\n const { sparklineOnHover } = attributes\n useEffect(() => {\n if (!$chartElement || !sparklineOnHover) return\n\n const onLeave = () => sparklineOnHover(null)\n const onChange = ({ sparklines: [sparkline] }: any) => {\n const { x, y } = sparkline.getCurrentRegionFields()\n sparklineOnHover({ x, y })\n }\n\n // @ts-ignore\n $chartElement.bind(\"sparklineRegionChange\", onChange).bind(\"mouseleave\", onLeave)\n return () => {\n // @ts-ignore\n $chartElement.unbind(\"sparklineRegionChange\", onChange).unbind(\"mouseleave\", onLeave)\n }\n }, [$chartElement, sparklineOnHover])\n\n // update chart\n useEffect(updateSparklineValues, [$chartElement, chartData.result])\n\n const style = paddingLeftPercentage\n ? {\n textAlign: \"initial\" as \"initial\", // :) typescript\n paddingLeft: paddingLeftPercentage,\n }\n : undefined\n\n return (\n <div ref={chartElement} id={chartElementId} className={chartElementClassName} style={style} />\n )\n}\n","import * as d3 from \"d3\"\n\nwindow.d3 = d3\n","let fetchPromise: Promise<string>\n\nconst GOOGLE_JS_API_SRC = \"https://www.google.com/jsapi\"\n\nexport const loadGoogleVisualizationApi = () => {\n if (fetchPromise) {\n return fetchPromise\n }\n fetchPromise = new Promise((resolve, reject) => {\n setTimeout(() => {\n const script = document.createElement(\"script\")\n script.type = \"text/javascript\"\n script.async = true\n script.src = GOOGLE_JS_API_SRC\n\n script.onerror = () => {\n reject(Error(\"error loading google.js api\"))\n }\n script.onload = () => {\n resolve(\"ok\")\n }\n\n const firstScript = document.getElementsByTagName(\"script\")[0] as HTMLScriptElement\n (firstScript.parentNode as Node).insertBefore(script, firstScript)\n }, 1000)\n }).then(() => new Promise((resolve) => {\n window.google.load(\"visualization\", \"1.1\", {\n packages: [\"corechart\", \"controls\"],\n callback: resolve,\n })\n }))\n return fetchPromise\n}\n","// @ts-ignore \"declare module\" doesn't work properly when importing dashboard in cloud\nimport \"jquery-sparkline\"\nimport React, {\n useRef, useEffect, useState,\n} from \"react\"\n\nimport \"../../utils/d3-loader\"\n// @ts-ignore \"declare module\" doesn't work properly when importing dashboard in cloud\nimport d3pie from \"vendor/d3pie-0.2.1-netdata-3\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport {\n ChartMetadata,\n D3pieChartData,\n} from \"domains/chart/chart-types\"\nimport { seconds4human } from \"domains/chart/utils/seconds4human\"\nimport { useDateTime } from \"utils/date-time\"\nimport { tail } from \"ramda\"\n\nconst emptyContent = {\n label: \"no data\",\n value: 100,\n color: \"#666666\",\n}\n\ntype GetDateRange = (arg: {\n chartData: D3pieChartData,\n index: number,\n localeDateString: (date: number | Date) => string,\n localeTimeString: (time: number | Date) => string,\n}) => string\nconst getDateRange: GetDateRange = ({\n chartData, index,\n localeDateString, localeTimeString,\n}) => {\n const dt = Math.round((chartData.before - chartData.after + 1) / chartData.points)\n const dtString = seconds4human(dt)\n\n const before = chartData.result.data[index].time\n const after = before - (dt * 1000)\n\n const d1 = localeDateString(after)\n const t1 = localeTimeString(after)\n const d2 = localeDateString(before)\n const t2 = localeTimeString(before)\n\n if (d1 === d2) {\n return `${d1} ${t1} to ${t2}, ${dtString}`\n }\n\n return `${d1} ${t1} to ${d2} ${t2}, ${dtString}`\n}\n\ninterface Props {\n attributes: Attributes\n chartContainerElement: HTMLElement\n chartData: D3pieChartData\n chartMetadata: ChartMetadata\n chartElementClassName: string\n chartElementId: string\n dimensionsVisibility: boolean[]\n hoveredRow: number\n hoveredX: number | null\n isRemotelyControlled: boolean\n legendFormatValue: ((v: number | string | null) => number | string)\n orderedColors: string[]\n setMinMax: (minMax: [number, number]) => void\n showUndefined: boolean\n unitsCurrent: string\n}\nexport const D3pieChart = ({\n attributes,\n chartContainerElement,\n chartData,\n chartMetadata,\n chartElementClassName,\n chartElementId,\n hoveredRow,\n hoveredX,\n legendFormatValue,\n orderedColors,\n setMinMax,\n unitsCurrent,\n}: Props) => {\n const chartElement = useRef<HTMLDivElement>(null)\n\n const legendFormatValueRef = useRef(legendFormatValue)\n legendFormatValueRef.current = legendFormatValue\n\n const [d3pieInstance, setD3pieInstance] = useState()\n const d3pieOptions = useRef<{[key: string]: any}>()\n\n const { localeDateString, localeTimeString } = useDateTime()\n\n // create chart\n useEffect(() => {\n if (chartElement.current && !d3pieInstance) {\n // d3pieSetContent\n // todo this should be set in chart.tsx, when creating hook\n setMinMax([chartData.min, chartData.max])\n // index is ROW! it's !== 0 only when selection is made\n const index = 0\n const content = tail(chartData.result.labels).map((label, i) => {\n const value = chartData.result.data[index][label]\n const color = orderedColors[i]\n return {\n label,\n value,\n color,\n }\n }).filter((x) => x.value !== null && x.value > 0)\n const safeContent = content.length > 0 ? content : emptyContent\n\n const defaultTitle = attributes.title || chartMetadata.title\n const dateRange = getDateRange({\n chartData,\n index: 0,\n localeDateString,\n localeTimeString,\n })\n const {\n d3pieTitle = defaultTitle,\n d3pieSubtitle = unitsCurrent,\n d3pieFooter = dateRange,\n d3pieTitleColor = window.NETDATA.themes.current.d3pie.title,\n d3pieTitleFontsize = 12,\n d3pieTitleFontweight = \"bold\",\n d3pieTitleFont = \"arial\",\n d3PieSubtitleColor = window.NETDATA.themes.current.d3pie.subtitle,\n d3PieSubtitleFontsize = 10,\n d3PieSubtitleFontweight = \"normal\",\n d3PieSubtitleFont = \"arial\",\n d3PieFooterColor = window.NETDATA.themes.current.d3pie.footer,\n d3PieFooterFontsize = 9,\n d3PieFooterFontweight = \"bold\",\n d3PieFooterFont = \"arial\",\n d3PieFooterLocation = \"bottom-center\",\n\n d3PiePieinnerradius = \"45%\",\n d3PiePieouterradius = \"80%\",\n d3PieSortorder = \"value-desc\",\n d3PieSmallsegmentgroupingEnabled = false,\n d3PieSmallsegmentgroupingValue = 1,\n d3PieSmallsegmentgroupingValuetype = \"percentage\",\n d3PieSmallsegmentgroupingLabel = \"other\",\n d3PieSmallsegmentgroupingColor = window.NETDATA.themes.current.d3pie.other,\n\n d3PieLabelsOuterFormat = \"label-value1\",\n d3PieLabelsOuterHidewhenlessthanpercentage = null,\n d3PieLabelsOuterPiedistance = 15,\n d3PieLabelsInnerFormat = \"percentage\",\n d3PieLabelsInnerHidewhenlessthanpercentage = 2,\n\n d3PieLabelsMainLabelColor = window.NETDATA.themes.current.d3pie.mainlabel,\n d3PieLabelsMainLabelFont = \"arial\",\n d3PieLabelsMainLabelFontsize = 10,\n d3PieLabelsMainLabelFontweight = \"normal\",\n\n d3PieLabelsPercentageColor = window.NETDATA.themes.current.d3pie.percentage,\n d3PieLabelsPercentageFont = \"arial\",\n d3PieLabelsPercentageFontsize = 10,\n d3PieLabelsPercentageFontweight = \"bold\",\n\n d3PieLabelsValueColor = window.NETDATA.themes.current.d3pie.value,\n d3PieLabelsValueFont = \"arial\",\n d3PieLabelsValueFontsize = 10,\n d3PieLabelsValueFontweight = \"bold\",\n\n d3PieLabelsLinesEnabled = true,\n d3PieLabelsLinesStyle = \"curved\",\n d3PieLabelsLinesColor = \"segment\", // \"segment\" or a hex color\n\n d3PieLabelsTruncationEnabled = false,\n d3PieLabelsTruncationTruncatelength = 30,\n\n d3PieMiscColorsSegmentstroke = window.NETDATA.themes.current.d3pie.segment_stroke,\n d3PieMiscGradientEnabled = false,\n d3PieMiscColorsPercentage = 95,\n d3PieMiscGradientColor = window.NETDATA.themes.current.d3pie.gradient_color,\n\n d3PieCssprefix = null,\n } = attributes\n\n const { width, height } = chartContainerElement.getBoundingClientRect()\n\n const initialD3pieOptions = {\n header: {\n title: {\n text: d3pieTitle,\n color: d3pieTitleColor,\n fontSize: d3pieTitleFontsize,\n fontWeight: d3pieTitleFontweight,\n font: d3pieTitleFont,\n },\n subtitle: {\n text: d3pieSubtitle,\n color: d3PieSubtitleColor,\n fontSize: d3PieSubtitleFontsize,\n fontWeight: d3PieSubtitleFontweight,\n font: d3PieSubtitleFont,\n },\n titleSubtitlePadding: 1,\n },\n footer: {\n text: d3pieFooter,\n color: d3PieFooterColor,\n fontSize: d3PieFooterFontsize,\n fontWeight: d3PieFooterFontweight,\n font: d3PieFooterFont,\n location: d3PieFooterLocation,\n },\n size: {\n canvasHeight: Math.floor(height),\n canvasWidth: Math.floor(width),\n pieInnerRadius: d3PiePieinnerradius,\n pieOuterRadius: d3PiePieouterradius,\n },\n data: {\n // none, random, value-asc, value-desc, label-asc, label-desc\n sortOrder: d3PieSortorder,\n smallSegmentGrouping: {\n enabled: d3PieSmallsegmentgroupingEnabled,\n value: d3PieSmallsegmentgroupingValue,\n // percentage, value\n valueType: d3PieSmallsegmentgroupingValuetype,\n label: d3PieSmallsegmentgroupingLabel,\n color: d3PieSmallsegmentgroupingColor,\n },\n\n // REQUIRED! This is where you enter your pie data; it needs to be an array of objects\n // of this form: { label: \"label\", value: 1.5, color: \"#000000\" } - color is optional\n content: safeContent,\n },\n\n\n labels: {\n outer: {\n // label, value, percentage, label-value1, label-value2, label-percentage1,\n // label-percentage2\n format: d3PieLabelsOuterFormat,\n hideWhenLessThanPercentage: d3PieLabelsOuterHidewhenlessthanpercentage,\n pieDistance: d3PieLabelsOuterPiedistance,\n },\n inner: {\n // label, value, percentage, label-value1, label-value2, label-percentage1,\n // label-percentage2\n format: d3PieLabelsInnerFormat,\n hideWhenLessThanPercentage: d3PieLabelsInnerHidewhenlessthanpercentage,\n },\n mainLabel: {\n color: d3PieLabelsMainLabelColor, // or 'segment' for dynamic color\n font: d3PieLabelsMainLabelFont,\n fontSize: d3PieLabelsMainLabelFontsize,\n fontWeight: d3PieLabelsMainLabelFontweight,\n },\n percentage: {\n color: d3PieLabelsPercentageColor,\n font: d3PieLabelsPercentageFont,\n fontSize: d3PieLabelsPercentageFontsize,\n fontWeight: d3PieLabelsPercentageFontweight,\n decimalPlaces: 0,\n },\n value: {\n color: d3PieLabelsValueColor,\n font: d3PieLabelsValueFont,\n fontSize: d3PieLabelsValueFontsize,\n fontWeight: d3PieLabelsValueFontweight,\n },\n lines: {\n enabled: d3PieLabelsLinesEnabled,\n style: d3PieLabelsLinesStyle,\n color: d3PieLabelsLinesColor,\n },\n truncation: {\n enabled: d3PieLabelsTruncationEnabled,\n truncateLength: d3PieLabelsTruncationTruncatelength,\n },\n formatter(context: any) {\n if (context.part === \"value\") {\n return legendFormatValueRef.current(context.value)\n }\n if (context.part === \"percentage\") {\n return `${context.label}%`\n }\n\n return context.label\n },\n },\n effects: {\n load: {\n effect: \"none\", // none / default\n speed: 0, // commented in the d3pie code to speed it up\n },\n pullOutSegmentOnClick: {\n effect: \"bounce\", // none / linear / bounce / elastic / back\n speed: 400,\n size: 5,\n },\n highlightSegmentOnMouseover: true,\n highlightLuminosity: -0.2,\n },\n tooltips: {\n enabled: false,\n type: \"placeholder\", // caption|placeholder\n string: \"\",\n placeholderParser: null, // function\n styles: {\n fadeInSpeed: 250,\n backgroundColor: window.NETDATA.themes.current.d3pie.tooltip_bg,\n backgroundOpacity: 0.5,\n color: window.NETDATA.themes.current.d3pie.tooltip_fg,\n borderRadius: 2,\n font: \"arial\",\n fontSize: 12,\n padding: 4,\n },\n },\n misc: {\n colors: {\n background: \"transparent\", // transparent or color #\n // segments: state.chartColors(),\n segmentStroke: d3PieMiscColorsSegmentstroke,\n },\n gradient: {\n enabled: d3PieMiscGradientEnabled,\n percentage: d3PieMiscColorsPercentage,\n color: d3PieMiscGradientColor,\n },\n canvasPadding: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5,\n },\n pieCenterOffset: {\n x: 0,\n y: 0,\n },\n cssPrefix: d3PieCssprefix,\n },\n callbacks: {\n onload: null,\n onMouseoverSegment: null,\n onMouseoutSegment: null,\n onClickSegment: null,\n },\n }\n // eslint-disable-next-line new-cap\n const newD3pieInstance = new d3pie(chartElement.current, initialD3pieOptions)\n d3pieOptions.current = initialD3pieOptions\n setD3pieInstance(() => newD3pieInstance)\n }\n }, [attributes, chartContainerElement, chartData, chartMetadata, d3pieInstance, legendFormatValue,\n localeDateString, localeTimeString, orderedColors, setMinMax, unitsCurrent])\n\n // update chart\n useEffect(() => {\n if (d3pieInstance && d3pieOptions.current) {\n const dateRange = getDateRange({\n chartData,\n index: 0,\n localeDateString,\n localeTimeString,\n })\n const {\n d3pieSubtitle = unitsCurrent,\n d3pieFooter = dateRange,\n } = attributes\n\n\n const isHoveredButNoData = !!hoveredX && (hoveredRow === -1)\n const slot = chartData.result.data.length - hoveredRow - 1\n\n const index = (slot < 0 || slot >= chartData.result.data.length)\n ? 0\n : slot\n\n const content = tail(chartData.result.labels).map((label, i) => {\n const value = chartData.result.data[index][label]\n const color = orderedColors[i]\n return {\n label,\n value,\n color,\n }\n }).filter((x) => x.value !== null && x.value > 0)\n const safeContent = (content.length > 0 && !isHoveredButNoData)\n ? content\n : [emptyContent]\n\n d3pieInstance.options.header.subtitle.text = d3pieSubtitle\n d3pieInstance.options.footer.text = d3pieFooter\n\n d3pieInstance.options.data.content = safeContent\n d3pieInstance.destroy()\n d3pieInstance.recreate()\n }\n }, [attributes, chartData, d3pieInstance, hoveredRow, hoveredX, localeDateString,\n localeTimeString, orderedColors, unitsCurrent])\n\n return (\n <div ref={chartElement} id={chartElementId} className={chartElementClassName} />\n )\n}\n","// @ts-ignore \"declare module\" doesn't work properly when importing dashboard in cloud\nimport \"peity\"\nimport React, {\n useRef, useState, useLayoutEffect,\n} from \"react\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartMetadata, EasyPieChartData } from \"domains/chart/chart-types\"\nimport { colorLuminance } from \"domains/chart/utils/color-luminance\"\n\ninterface Props {\n attributes: Attributes\n chartContainerElement: HTMLElement\n chartData: EasyPieChartData\n chartMetadata: ChartMetadata\n chartElementClassName: string\n chartElementId: string\n orderedColors: string[]\n}\nexport const PeityChart = ({\n attributes,\n chartContainerElement,\n chartData,\n chartMetadata,\n chartElementClassName,\n chartElementId,\n orderedColors,\n}: Props) => {\n const chartElement = useRef<HTMLDivElement>(null)\n\n // update width, height automatically each time\n const [$chartElement, set$chartElement] = useState()\n const peityOptions = useRef<{\n stroke: string,\n fill: string,\n strokeWidth: number,\n width: number,\n height: number,\n }>()\n\n\n // create chart\n useLayoutEffect(() => {\n if (chartElement.current && !$chartElement) {\n const $element = window.$(chartElement.current)\n\n const { width, height } = chartContainerElement.getBoundingClientRect()\n\n const {\n peityStrokeWidth = 1,\n } = attributes\n const peityInitOptions = {\n stroke: window.NETDATA.themes.current.foreground,\n strokeWidth: peityStrokeWidth,\n width: Math.floor(width),\n height: Math.floor(height),\n fill: window.NETDATA.themes.current.foreground,\n }\n\n set$chartElement(() => $element)\n peityOptions.current = peityInitOptions\n }\n }, [attributes, $chartElement, chartContainerElement])\n\n // update chart\n useLayoutEffect(() => {\n if ($chartElement && peityOptions.current) {\n const getFillOverride = () => (\n chartMetadata.chart_type === \"line\"\n ? window.NETDATA.themes.current.background\n : colorLuminance(orderedColors[0], window.NETDATA.chartDefaults.fill_luminance)\n )\n const updatedOptions = {\n ...peityOptions.current,\n stroke: orderedColors[0],\n // optimizatino from old dashboard, perhaps could be transformed to useMemo()\n fill: (orderedColors[0] === peityOptions.current.stroke)\n ? peityOptions.current.fill\n : getFillOverride(),\n }\n $chartElement.peity(\"line\", updatedOptions)\n peityOptions.current = updatedOptions\n }\n }, [$chartElement, chartData, chartMetadata, orderedColors])\n\n return (\n <div\n ref={chartElement}\n id={chartElementId}\n className={chartElementClassName}\n >\n {chartData.result}\n </div>\n )\n}\n","import React, {\n useRef, useState, useLayoutEffect,\n} from \"react\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartMetadata, EasyPieChartData } from \"domains/chart/chart-types\"\nimport { loadGoogleVisualizationApi } from \"domains/chart/utils/google-visualization-loader\"\n\ninterface Props {\n attributes: Attributes\n chartData: EasyPieChartData\n chartMetadata: ChartMetadata\n chartElementClassName: string\n chartElementId: string\n orderedColors: string[]\n unitsCurrent: string\n}\nexport const GoogleChart = ({\n attributes,\n chartData,\n chartMetadata,\n chartElementClassName,\n chartElementId,\n orderedColors,\n unitsCurrent,\n}: Props) => {\n const chartElement = useRef<HTMLDivElement>(null)\n const googleChartInstance = useRef<\n google.visualization.AreaChart |\n google.visualization.LineChart>()\n\n const [hasApiBeenLoaded, setHasApiBeenLoaded] = useState(false)\n loadGoogleVisualizationApi()\n .then(() => {\n setHasApiBeenLoaded(true)\n })\n\n const googleOptions = useRef<{[key: string]: unknown}>()\n\n // update chart\n useLayoutEffect(() => {\n if (googleChartInstance.current && googleOptions.current) {\n const dataTable = new window.google.visualization.DataTable(chartData.result)\n googleChartInstance.current.draw(dataTable, googleOptions.current)\n }\n }, [chartData])\n\n // create chart\n useLayoutEffect(() => {\n if (chartElement.current && !googleOptions.current && hasApiBeenLoaded) {\n const dataTable = new window.google.visualization.DataTable(chartData.result)\n\n const {\n title = chartMetadata.title,\n } = attributes\n const chartType = chartMetadata.chart_type\n const areaOpacity = new Map([\n [\"area\", window.NETDATA.options.current.color_fill_opacity_area],\n [\"stacked\", window.NETDATA.options.current.color_fill_opacity_stacked],\n ]).get(chartType) || 0.3\n const initialGoogleOptions = {\n colors: orderedColors,\n\n // do not set width, height - the chart resizes itself\n // width: state.chartWidth(),\n // height: state.chartHeight(),\n lineWidth: chartType === \"line\" ? 2 : 1,\n title,\n fontSize: 11,\n hAxis: {\n // title: \"Time of Day\",\n // format:'HH:mm:ss',\n viewWindowMode: \"maximized\",\n slantedText: false,\n format: \"HH:mm:ss\",\n textStyle: {\n fontSize: 9,\n },\n gridlines: {\n color: \"#EEE\",\n },\n },\n vAxis: {\n title: unitsCurrent,\n viewWindowMode: (chartType === \"area\" || chartType === \"stacked\")\n ? \"maximized\"\n : \"pretty\",\n minValue: chartType === \"stacked\" ? undefined : -0.1,\n maxValue: chartType === \"stacked\" ? undefined : 0.1,\n direction: 1,\n textStyle: {\n fontSize: 9,\n },\n gridlines: {\n color: \"#EEE\",\n },\n },\n chartArea: {\n width: \"65%\",\n height: \"80%\",\n },\n focusTarget: \"category\",\n annotation: {\n 1: {\n style: \"line\",\n },\n },\n pointsVisible: false,\n titlePosition: \"out\",\n titleTextStyle: {\n fontSize: 11,\n },\n tooltip: {\n isHtml: false,\n ignoreBounds: true,\n textStyle: {\n fontSize: 9,\n },\n },\n curveType: \"function\" as \"function\",\n areaOpacity,\n isStacked: chartType === \"stacked\",\n }\n\n const googleInstance = [\"area\", \"stacked\"].includes(chartMetadata.chart_type)\n ? new window.google.visualization.AreaChart(chartElement.current)\n : new window.google.visualization.LineChart(chartElement.current)\n\n googleInstance.draw(dataTable, initialGoogleOptions)\n\n googleOptions.current = initialGoogleOptions\n googleChartInstance.current = googleInstance\n }\n }, [attributes, chartData.result, chartMetadata, chartElement, hasApiBeenLoaded, orderedColors,\n unitsCurrent])\n\n\n return (\n <div\n ref={chartElement}\n id={chartElementId}\n className={chartElementClassName}\n />\n )\n}\n","import React from \"react\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { EasyPieChartData } from \"domains/chart/chart-types\"\n\ninterface Props {\n attributes: Attributes\n chartData: EasyPieChartData\n chartElementClassName: string\n chartElementId: string\n}\nexport const TextOnly = ({\n attributes,\n chartData,\n chartElementClassName,\n chartElementId,\n}: Props) => {\n const { textOnlyDecimalPlaces = 1, textOnlyPrefix = \"\", textOnlySuffix = \"\" } = attributes\n\n // Round based on number of decimal places to show\n const precision = 10 ** textOnlyDecimalPlaces\n const value = Math.round(chartData.result[0] * precision) / precision\n\n const textContent = chartData.result.length === 0 ? \"\" : textOnlyPrefix + value + textOnlySuffix\n\n return (\n <div id={chartElementId} className={chartElementClassName}>\n {textContent}\n </div>\n )\n}\n","/* eslint-disable no-param-reassign */\n// @ts-nocheck\n\nexport const defaultCellSize = 11\nexport const defaultPadding = 1\nexport const defaultAspectRatio = Math.round(16 / 9)\n\nexport const getCellBoxSize = (cellSize = defaultCellSize, padding = defaultPadding) =>\n cellSize - padding\nexport const getRows = (data, aspectRatio = defaultAspectRatio) =>\n Math.sqrt(data.length / aspectRatio)\nexport const getColumns = (rows, aspectRatio = defaultAspectRatio) => rows * aspectRatio\n\nexport const getXPosition = (columns, index, cellSize = defaultCellSize) =>\n Math.floor(index % columns) * cellSize\nexport const getYPosition = (columns, index, cellSize = defaultCellSize) =>\n Math.floor(index / columns) * cellSize\n\nexport const getFullWidth = (columns, cellSize = defaultCellSize) => Math.ceil(columns) * cellSize\nexport const getFullHeight = (rows, cellSize = defaultCellSize, padding = defaultCellSize) =>\n Math.ceil(rows) * cellSize + padding\n\nexport const getOffsetPosition = (offset, cellSize = defaultCellSize) =>\n Math.floor(offset / cellSize)\n","/* eslint-disable object-curly-newline */\n/* eslint-disable no-param-reassign */\n// @ts-nocheck\nimport { getCellBoxSize, getXPosition, getYPosition, getOffsetPosition } from \"./utilities\"\n\nexport default (\n el,\n columns,\n total,\n { onMouseenter, onMouseout },\n { cellSize, cellPadding } = {}\n) => {\n let hoveredIndex = -1\n\n const getEvent = index => {\n const rect = el.getBoundingClientRect()\n const offsetX = getXPosition(columns, index, cellSize)\n const offsetY = getYPosition(columns, index, cellSize)\n const left = rect.left + offsetX\n const top = rect.top + offsetY\n const cellBoxSize = getCellBoxSize(cellSize, cellPadding)\n\n return {\n index,\n left,\n top,\n right: left + cellBoxSize,\n bottom: top + cellBoxSize,\n width: cellBoxSize,\n height: cellBoxSize,\n offsetX,\n offsetY,\n }\n }\n\n const mouseout = () => {\n onMouseout(getEvent(hoveredIndex))\n hoveredIndex = -1\n }\n\n const mousemove = e => {\n const { offsetX, offsetY } = e\n const x = getOffsetPosition(offsetX, cellSize)\n const y = getOffsetPosition(offsetY, cellSize)\n const nextHoveredIndex = y * columns + x\n\n if (nextHoveredIndex === hoveredIndex) return\n\n if (hoveredIndex !== -1) mouseout()\n\n if (nextHoveredIndex >= total) return\n\n onMouseenter(getEvent(nextHoveredIndex))\n hoveredIndex = nextHoveredIndex\n }\n\n el.addEventListener(\"mousemove\", mousemove)\n el.addEventListener(\"mouseout\", mouseout)\n return () => {\n el.removeEventListener(\"mousemove\", mousemove)\n el.removeEventListener(\"mouseout\", mouseout)\n }\n}\n","/* eslint-disable object-curly-newline */\n/* eslint-disable comma-dangle */\n/* eslint-disable implicit-arrow-linebreak */\n/* eslint-disable no-param-reassign */\n// @ts-nocheck\nimport { scaleLinear, extent } from \"d3\"\nimport {\n getCellBoxSize,\n getRows,\n getColumns,\n getXPosition,\n getYPosition,\n getFullWidth,\n getFullHeight,\n} from \"./utilities\"\nimport registerEvents from \"./events\"\n\nexport const getWidth = (data, { aspectRatio, cellSize } = {}) => {\n const rows = getRows(data, aspectRatio)\n const columns = getColumns(rows, aspectRatio)\n return getFullWidth(columns, cellSize)\n}\n\nconst getCanvasAttributes = (data, { aspectRatio, cellSize, padding } = {}) => {\n const rows = getRows(data, aspectRatio)\n const columns = getColumns(rows, aspectRatio)\n const width = getFullWidth(columns, cellSize)\n const height = getFullHeight(rows, cellSize, padding)\n\n return { width, height, columns: Math.ceil(columns) }\n}\n\nconst defaultColorRange = [\"rgba(198, 227, 246, 0.9)\", \"rgba(14, 154, 255, 0.9)\"]\n\nconst makeGetColor = (values, colorRange = defaultColorRange) =>\n scaleLinear()\n .domain(extent(values, value => value))\n .range(colorRange)\n\nexport default (el, { onMouseenter, onMouseout }, options = {}) => {\n const { cellSize, cellPadding, cellStroke = 2, lineWidth = 1, colorRange } = options\n const canvas = el.getContext(\"2d\")\n\n let activeBox = -1\n let deactivateBox = () => {}\n let activateBox = {}\n let clearEvents = () => {}\n\n const clear = () => {\n deactivateBox()\n clearEvents()\n canvas.clearRect(0, 0, el.width, el.height)\n canvas.beginPath()\n }\n\n const update = ({ data }) => {\n const { width, height, columns } = getCanvasAttributes(data, options)\n el.width = parseInt(width)\n el.height = parseInt(height)\n clear()\n clearEvents()\n const getColor = makeGetColor(data, colorRange)\n\n const drawBox = (value, index) => {\n canvas.fillStyle = getColor(value)\n\n const offsetX = getXPosition(columns, index, cellSize)\n const offsetY = getYPosition(columns, index, cellSize)\n\n if (lineWidth && cellStroke) {\n canvas.clearRect(\n offsetX - lineWidth,\n offsetY - lineWidth,\n getCellBoxSize(cellSize, cellPadding) + cellStroke,\n getCellBoxSize(cellSize, cellPadding) + cellStroke\n )\n }\n\n canvas.fillRect(\n offsetX,\n offsetY,\n getCellBoxSize(cellSize, cellPadding),\n getCellBoxSize(cellSize, cellPadding)\n )\n }\n\n data.forEach(drawBox)\n\n clearEvents = registerEvents(\n el,\n columns,\n data.length,\n {\n onMouseenter,\n onMouseout,\n },\n options\n )\n\n deactivateBox = () => {\n if (activeBox !== -1) drawBox(data[activeBox], activeBox)\n }\n\n activateBox = index => {\n deactivateBox()\n activeBox = index\n\n const offsetX = getXPosition(columns, index, cellSize)\n const offsetY = getYPosition(columns, index, cellSize)\n\n if (lineWidth && cellStroke) {\n canvas.lineWidth = lineWidth\n canvas.strokeStyle = \"#fff\"\n canvas.strokeRect(\n offsetX + lineWidth,\n offsetY + lineWidth,\n getCellBoxSize(cellSize, cellPadding) - cellStroke,\n getCellBoxSize(cellSize, cellPadding) - cellStroke\n )\n }\n }\n }\n\n return {\n clear,\n update,\n activateBox: index => activateBox(index),\n deactivateBox: () => deactivateBox(),\n }\n}\n","/* eslint-disable arrow-body-style */\n// @ts-nocheck\n\nexport default (el) => {\n return el.getBoundingClientRect().top / window.innerHeight > 0.5 ? \"top\" : \"bottom\"\n}\n","/* eslint-disable operator-linebreak */\n/* eslint-disable implicit-arrow-linebreak */\n/* eslint-disable object-curly-newline */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react/jsx-fragments */\n// @ts-nocheck\nimport React, { useRef, useLayoutEffect, Fragment, useState, useCallback } from \"react\"\nimport { Drop } from \"@netdata/netdata-ui\"\nimport drawBoxes from \"./drawBoxes\"\nimport getAlign from \"./getAlign\"\n\ninterface GroupboxData {\n data: number[]\n labels: string[]\n}\n\ninterface GroupBoxProps {\n data: GroupboxData[]\n}\n\nconst aligns = {\n top: { bottom: \"top\" },\n bottom: { top: \"bottom\" },\n}\n\nconst GroupBox = ({ data, renderTooltip, ...options }: GroupBoxProps) => {\n const dataRef = useRef()\n const canvasRef = useRef()\n const boxesRef = useRef()\n\n const [hover, setHover] = useState(null)\n const dropHoverRef = useRef(false)\n const boxHoverRef = useRef(-1)\n const timeoutId = useRef()\n\n const close = () => {\n boxesRef.current.deactivateBox()\n setHover(null)\n dropHoverRef.current = false\n boxHoverRef.current = -1\n }\n\n const closeDrop = () =>\n requestAnimationFrame(() => {\n setHover(currentHover => {\n if (\n !dropHoverRef.current &&\n (boxHoverRef.current === -1 || boxHoverRef.current !== currentHover?.index)\n ) {\n close()\n }\n return currentHover\n })\n })\n\n useLayoutEffect(() => {\n boxesRef.current = drawBoxes(\n canvasRef.current,\n {\n onMouseenter: ({ index, ...rect }) => {\n boxHoverRef.current = index\n boxesRef.current.activateBox(index)\n timeoutId.current = setTimeout(() => {\n setHover({\n target: { getBoundingClientRect: () => rect },\n index,\n rect,\n })\n }, 600)\n },\n onMouseout: () => {\n boxHoverRef.current = -1\n clearTimeout(timeoutId.current)\n closeDrop()\n },\n },\n options\n )\n return () => boxesRef.current.clear()\n }, [])\n\n useLayoutEffect(() => {\n if (\n hover &&\n dataRef.current &&\n dataRef.current.labels[hover.index] !== data.labels[hover.index]\n ) {\n close()\n }\n dataRef.current = data\n boxesRef.current.update(data)\n }, [data])\n\n const onMouseEnter = useCallback(() => {\n dropHoverRef.current = true\n }, [])\n\n const onMouseLeave = useCallback(() => {\n dropHoverRef.current = false\n closeDrop()\n }, [])\n\n const align = hover && getAlign(hover.target)\n\n return (\n <Fragment>\n <canvas data-testid=\"groupBox\" ref={canvasRef} />\n {hover && renderTooltip && (\n <Drop\n align={aligns[align]}\n target={hover.target}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {renderTooltip(hover.index, align)}\n </Drop>\n )}\n </Fragment>\n )\n}\n\nexport default GroupBox\n","/* eslint-disable operator-linebreak */\n/* eslint-disable object-curly-newline */\n/* eslint-disable arrow-body-style */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/jsx-one-expression-per-line */\n// @ts-nocheck\nimport React, { useRef, useMemo } from \"react\"\nimport styled from \"styled-components\"\nimport { Flex, TextMicro, Popover } from \"@netdata/netdata-ui\"\nimport GroupBox from \"./groupBox\"\nimport { getWidth } from \"./drawBoxes\"\nimport getAlign from \"./getAlign\"\n\ninterface GroupBoxWrapperProps {\n data: any\n title: string\n}\n\nconst Title = styled.span`\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n`\n\nconst Label = styled(Flex).attrs({\n as: TextMicro,\n gap: 1,\n})`\n cursor: default;\n &:hover {\n font-weight: bold;\n }\n`\n\nconst GroupBoxWrapper = ({\n data,\n label,\n groupIndex,\n renderGroupPopover,\n renderBoxPopover,\n}: GroupBoxWrapperProps) => {\n const ref = useRef()\n const align = ref.current && getAlign(ref.current)\n\n const style = useMemo(() => ({ maxWidth: `${getWidth(data.data)}px` }), [data])\n\n const boxPopover =\n renderBoxPopover &&\n ((index, boxAlign) => renderBoxPopover({ group: label, groupIndex, align: boxAlign, index }))\n\n const groupPopover =\n renderGroupPopover && (() => renderGroupPopover({ group: label, groupIndex, align }))\n\n return (\n <Flex data-testid=\"groupBoxWrapper\" column alignItems=\"start\" gap={1} margin={[0, 4, 0, 0]}>\n <Popover content={groupPopover} align={align} plain>\n {({ isOpen, ref: popoverRef, ...rest }) => (\n <Label\n data-testid=\"groupBoxWrapper-title\"\n ref={el => {\n ref.current = el\n popoverRef(el)\n }}\n strong={isOpen}\n style={style}\n {...rest}\n >\n <Title>{label}</Title>\n {data.data.length > 3 && <span>({data.data.length})</span>}\n </Label>\n )}\n </Popover>\n <GroupBox data={data} renderTooltip={boxPopover} />\n </Flex>\n )\n}\n\nconst GroupBoxes = ({ data, labels, renderBoxPopover, renderGroupPopover }: any) => (\n <Flex data-testid=\"groupBoxes\" flexWrap overflow={{ vertical: \"auto\" }} flex>\n {labels.map((label, index) => {\n return data[index].data.length ? (\n <GroupBoxWrapper\n key={label}\n label={label}\n groupIndex={index}\n data={data[index]}\n renderGroupPopover={renderGroupPopover}\n renderBoxPopover={renderBoxPopover}\n />\n ) : null\n })}\n </Flex>\n)\n\nexport default GroupBoxes\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { Flex, TextNano } from \"@netdata/netdata-ui\"\n\ninterface LegendProps {\n children?: React.ReactNode\n}\n\nconst LinearColorScaleBar = styled(Flex).attrs({ width: \"120px\", height: \"12px\", round: true })`\n background: linear-gradient(to right, #c6e3f6, #0e9aff);\n`\n\nconst Legend = ({ children }: LegendProps) => (\n <Flex data-testid=\"groupBox-legend\" gap={4} alignItems=\"center\">\n <TextNano strong>{children}</TextNano>\n <Flex gap={2} alignItems=\"center\">\n <TextNano>0%</TextNano>\n <LinearColorScaleBar />\n <TextNano>100%</TextNano>\n </Flex>\n {/* <Flex gap={2} alignItems=\"center\">\n <TextNano strong>Alarms</TextNano>\n <Flex width=\"12px\" height=\"12px\" background=\"error\" round />\n </Flex>\n <Flex gap={2} alignItems=\"center\">\n <TextNano strong>Warnings</TextNano>\n <Flex width=\"12px\" height=\"12px\" background=\"warning\" round />\n </Flex> */}\n </Flex>\n)\n\nexport default Legend\n","// @ts-nocheck\n\nconst labels = {\n k8s_cluster_id: { icon: \"cluster\", title: \"Cluster Id\" },\n k8s_node_name: { icon: \"nodes_hollow\", title: \"Node\" },\n k8s_namespace: { icon: \"cluster_spaces\", title: \"Namespace\" },\n k8s_controller_kind: { icon: \"controller_kind\", title: \"Controller Kind\" },\n k8s_controller_name: { icon: \"controller_name\", title: \"Controller Name\" },\n k8s_pod_name: { icon: \"pod\", title: \"Pod Name\" },\n k8s_container_name: { icon: \"container\", title: \"Container\" },\n}\n\nexport const labelIds = Object.keys(labels)\n\nexport default (id) => {\n if (id in labels) return labels[id]\n // k8s_custom_label -> Custom Label\n const title = id.replace(/_./g, (word) => ` ${word[1].toUpperCase()}`).replace(/^k8s /, \"\")\n return { title, icon: \"node\" }\n}\n","/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport { Flex } from \"@netdata/netdata-ui\"\n\nconst Separator = () => <Flex height=\"1px\" width=\"100%\" background=\"separator\" />\n\nexport default Separator\n","/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport { H5 } from \"@netdata/netdata-ui\"\n\nconst Header = props => (\n <H5 color=\"bright\" wordBreak=\"break-all\" data-testid=\"k8sPopover-header\" {...props} />\n)\n\nexport default Header\n","/* eslint-disable indent */\n/* eslint-disable implicit-arrow-linebreak */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport { Flex, Button, getColor } from \"@netdata/netdata-ui\"\nimport styled from \"styled-components\"\n\nexport const TabButton = styled(Button).attrs(({ active }) => ({\n flavour: \"borderless\",\n neutral: true,\n themeType: \"dark\",\n className: \"btn\",\n disabled: active,\n \"data-testid\": \"k8sPopoverChart-tab\",\n}))`\n &&& {\n height: initial;\n width: initial;\n padding: 2px 20px;\n ${({ active, theme }) => active && `border-bottom: 3px solid ${getColor(\"bright\")({ theme })};`}\n color: ${({ active, theme }) => getColor(active ? \"bright\" : \"separator\")({ theme })}\n }\n`\n\nconst Tabs = ({ value, onChange, ...rest }) => (\n <Flex data-testid=\"k8sPopoverChart-tabs\" {...rest}>\n <TabButton label=\"Context\" active={value === \"context\"} onClick={() => onChange(\"context\")} />\n <TabButton label=\"Metrics\" active={value === \"metrics\"} onClick={() => onChange(\"metrics\")} />\n </Flex>\n)\n\nexport default Tabs\n","/* eslint-disable object-curly-newline */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport { Flex, Button, H6, makeFlex } from \"@netdata/netdata-ui\"\nimport styled from \"styled-components\"\n\nconst ExpandButton = styled(makeFlex(Button)).attrs({\n icon: \"chevron_right_s\",\n label: \"More\",\n flavour: \"borderless\",\n neutral: true,\n themeType: \"dark\",\n className: \"btn\",\n alignItems: \"baseline\",\n gap: 1,\n direction: \"rowReverse\",\n})`\n &&& {\n padding: 0;\n margin: 0;\n font-weight: normal;\n height: initial;\n width: initial;\n\n svg {\n height: 6px;\n width: 6px;\n position: initial;\n }\n }\n`\n\nconst Section = ({ title, onExpand, children, noBorder }) => (\n <Flex\n gap={3}\n padding={[0, 0, 3]}\n border={!noBorder && { side: \"bottom\", color: \"separator\" }}\n column\n data-testid=\"k8sPopoverSection\"\n >\n <Flex justifyContent=\"between\" data-testid=\"k8sPopoverSection-header\">\n <H6 color=\"border\" wordBreak=\"break-all\">\n {title}\n </H6>\n {onExpand && <ExpandButton onClick={onExpand} />}\n </Flex>\n <Flex gap={4} column data-testid=\"k8sPopoverSection-content\">\n {children}\n </Flex>\n </Flex>\n)\n\nexport default Section\n","import { LOCALSTORAGE_HEIGHT_KEY_PREFIX } from \"domains/chart/components/resize-handler\"\n\nimport { LEGEND_BOTTOM_SINGLE_LINE_HEIGHT } from \"domains/chart/utils/legend-utils\"\nimport { Attributes } from \"./transformDataAttributes\"\nimport { ChartLibraryConfig } from \"./chartLibrariesSettings\"\n\ntype GetPortalNodeStyles = (\n attributes: Attributes,\n chartSettings: ChartLibraryConfig,\n shouldAddSpecialHeight: boolean,\n) => {\n height: string | undefined,\n width: string | undefined,\n minWidth: string | undefined\n}\n\nconst getHeightFromLocalStorage = (heightID: string, isLegendOnBottom: boolean) => {\n const persitedHeight = localStorage.getItem(`${LOCALSTORAGE_HEIGHT_KEY_PREFIX}${heightID}`)\n if (persitedHeight) {\n if (Number.isNaN(Number(persitedHeight))) {\n return null\n }\n return `${isLegendOnBottom\n ? Number(persitedHeight) + LEGEND_BOTTOM_SINGLE_LINE_HEIGHT\n : persitedHeight\n }px`\n }\n\n return null\n}\n\nexport const getPortalNodeStyles: GetPortalNodeStyles = (\n attributes,\n chartSettings,\n shouldAddSpecialHeight,\n) => {\n let width\n if (typeof attributes.width === \"string\") {\n // eslint-disable-next-line prefer-destructuring\n width = attributes.width\n } else if (typeof attributes.width === \"number\") {\n width = `${attributes.width.toString()}px`\n }\n let height\n if (chartSettings.aspectRatio === undefined) {\n if (typeof attributes.height === \"string\") {\n // eslint-disable-next-line prefer-destructuring\n height = attributes.height\n } else if (typeof attributes.height === \"number\") {\n height = `${attributes.height.toString()}px`\n }\n }\n const isLegendOnBottom = attributes.legendPosition === \"bottom\"\n\n const heightFromLocalStorage = attributes.heightId\n ? getHeightFromLocalStorage(attributes.heightId, isLegendOnBottom)\n : null\n\n if (heightFromLocalStorage) {\n // .replace() is for backwards compatibility - old dashboard was always doing\n // JSON.stringify when setting localStorage so many users have '\"180px\"' values set.\n // We can remove .replace() after some time\n height = heightFromLocalStorage.replace(/\"/g, \"\")\n }\n\n if (shouldAddSpecialHeight) {\n const heightOverriden = isLegendOnBottom\n ? window.innerHeight * 0.5\n : window.innerHeight * 0.4\n height = `${heightOverriden}px`\n }\n\n const chartDefaultsMinWidth = window.NETDATA.chartDefaults.min_width\n const minWidth = chartDefaultsMinWidth === null\n ? undefined\n : chartDefaultsMinWidth\n return {\n height,\n width,\n minWidth,\n }\n}\n","import {\n useEffect, useRef, useState, MutableRefObject,\n} from \"react\"\n\nconst globalIntersectionOptions = {\n root: null,\n rootMargin: \"0px\",\n threshold: undefined,\n}\n\ntype IntersectionCallback = (isVisible: boolean) => void\ntype Listener = {\n element: HTMLElement,\n callback: IntersectionCallback,\n}\nconst createGlobalIntersectionObserver = () => {\n let listeners: Listener[] = []\n const globalHandler = (entries: IntersectionObserverEntry[]) => {\n entries.forEach(({ isIntersecting, target }) => {\n const callback = listeners.find(({ element }) => element === target)?.callback\n if (callback) {\n callback(isIntersecting)\n }\n })\n }\n const globalObserver = new IntersectionObserver(globalHandler, globalIntersectionOptions)\n\n return {\n subscribe: (element: HTMLElement, callback: IntersectionCallback) => {\n globalObserver.observe(element)\n listeners = listeners.concat({ element, callback })\n },\n unsubscribe: (elementToUnsubscribe: HTMLElement) => {\n listeners = listeners.filter(({ element }) => element !== elementToUnsubscribe)\n },\n }\n}\nconst globalIntersectionObserver = createGlobalIntersectionObserver()\n\n\n// this hook is created for 2 reasons:\n// 1) to use the same IntersectionObserver for all charts (contrary to use-intersection from\n// react-use, which creates new observer for every hook)\n// 2) to update the isVisible state only when necessary (contrary to what \"use-in-view\" hook from\n// https://github.com/thebuilder/react-intersection-observer does)\nexport const useCommonIntersection = (\n element: HTMLElement,\n clonedChildrenRef: MutableRefObject<HTMLElement | undefined>,\n) => {\n const [isVisible, setIsVisible] = useState(false)\n const isVisibleRef = useRef(isVisible)\n // the ref is just to prevent most updates on init - charts are not visible on first intersection\n // observer callback, but it still tries to set the state. UseState does not bail out when\n // state doesn't change\n\n useEffect(() => {\n if (typeof IntersectionObserver === \"function\") {\n globalIntersectionObserver.subscribe(\n element,\n (newIsVisible) => {\n if (isVisibleRef.current !== newIsVisible) {\n if (clonedChildrenRef.current) {\n // eslint-disable-next-line no-param-reassign\n clonedChildrenRef.current.style.visibility = newIsVisible ? \"visible\" : \"hidden\"\n }\n\n isVisibleRef.current = newIsVisible\n // we need to mirror it in `use-state` to cause react update\n setIsVisible(newIsVisible)\n }\n },\n )\n }\n return () => {\n globalIntersectionObserver.unsubscribe(element)\n }\n }, [clonedChildrenRef, element])\n\n return isVisible\n}\n","import React from \"react\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\n\ninterface Props {\n attributes: Attributes\n}\n\n// rendered on init (for example when chart is not visible)\n// and when it's rendering after being hidden previously\nexport const InvisibleSearchableText = ({\n attributes,\n}: Props) => (\n <span style={{ position: \"absolute\", opacity: 0, width: 0 }}>\n {attributes.id}\n </span>\n)\n","import React, {\n useEffect, useLayoutEffect, useState, useRef,\n} from \"react\"\nimport { useDebounce } from \"react-use\"\nimport { forEachObjIndexed } from \"ramda\"\n\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { isPrintMode } from \"domains/dashboard/utils/parse-url\"\nimport { selectDestroyOnHide, selectIsAsyncOnScroll, selectAlarm } from \"domains/global/selectors\"\nimport { getPortalNodeStyles } from \"domains/chart/utils/get-portal-node-styles\"\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { chartLibrariesSettings } from \"domains/chart/utils/chartLibrariesSettings\"\nimport { useCommonIntersection } from \"hooks/use-common-intersection\"\n\nimport { clearChartStateAction } from \"../actions\"\n\nimport { InvisibleSearchableText } from \"./invisible-searchable-text\"\n\nconst SCROLL_DEBOUNCE_ASYNC = 750\nconst SCROLL_DEBOUNCE_SYNC = 100\n\nconst cloneWithCanvas = (element: HTMLElement) => {\n const cloned = element.cloneNode(true) as HTMLElement\n const clonedCanvases = cloned.querySelectorAll(\"canvas\")\n\n element.querySelectorAll(\"canvas\")\n .forEach((oldCanvas, index) => {\n const newCanvas = clonedCanvases[index]\n const context = newCanvas.getContext(\"2d\")\n\n newCanvas.width = oldCanvas.width\n newCanvas.height = oldCanvas.height\n\n if (context) {\n context.drawImage(oldCanvas, 0, 0)\n }\n })\n return cloned\n}\n\nconst shouldCleanChartStateAlways = localStorage.getItem(\"wipe-chart-state\")\n\ninterface Props {\n attributes: Attributes\n chartUuid: string\n children: any\n portalNode: HTMLElement\n}\nexport const DisableOutOfView = ({\n attributes,\n chartUuid,\n children,\n portalNode,\n}: Props) => {\n /* when unmounting, clear redux state for this chart */\n const dispatch = useDispatch()\n useEffect(() => { // eslint-disable-line arrow-body-style\n return () => {\n dispatch(clearChartStateAction({ id: chartUuid }))\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n\n /* separate functionality - adding custom styles to portalNode */\n const chartSettings = chartLibrariesSettings[attributes.chartLibrary]\n const [hasPortalNodeBeenStyled, setHasPortalNodeBeenStyled] = useState<boolean>(false)\n const isShowingAlarmOnChart = useSelector(selectAlarm)?.chartId === attributes.id\n useLayoutEffect(() => {\n if (hasPortalNodeBeenStyled) {\n return\n }\n const shouldAddSpecialHeight = isShowingAlarmOnChart\n && attributes.chartLibrary === \"dygraph\"\n && chartSettings.hasLegend(attributes)\n const styles = getPortalNodeStyles(attributes, chartSettings, shouldAddSpecialHeight)\n forEachObjIndexed((value, styleName) => {\n if (value) {\n portalNode.style.setProperty(styleName, value)\n }\n }, styles)\n // eslint-disable-next-line no-param-reassign\n portalNode.className = chartSettings.containerClass(attributes)\n setHasPortalNodeBeenStyled(true)\n }, [attributes, chartSettings, hasPortalNodeBeenStyled, isShowingAlarmOnChart, portalNode,\n setHasPortalNodeBeenStyled ])\n /* end of \"adding custom styles to portalNode\" */\n\n\n const destroyOnHide = useSelector(selectDestroyOnHide)\n\n const clonedChildrenRef = useRef<HTMLElement>()\n const isVisibleIntersection = useCommonIntersection(portalNode, clonedChildrenRef)\n\n // todo hook to scroll (observe on visible items) instead of changes in intersectionRatio\n // because intersectinnRatio maxes out on 1.0 when element is fully visible\n const isAsyncOnScroll = useSelector(selectIsAsyncOnScroll)\n const debounceTime = isAsyncOnScroll ? SCROLL_DEBOUNCE_ASYNC : SCROLL_DEBOUNCE_SYNC\n\n // \"should hide because of debounced scroll handler\"\n const [shouldHideDebounced, setShouldHideDebounced] = useState(!isVisibleIntersection)\n useDebounce(\n () => {\n // start rendering, when intersectionRatio is not 0 and it hasn't changed for 1500 ms\n setShouldHideDebounced(!isVisibleIntersection)\n },\n debounceTime,\n [isVisibleIntersection],\n )\n const shouldHide = isVisibleIntersection ? shouldHideDebounced : true\n\n const previousIsVisibleIntersection = useRef(isVisibleIntersection)\n if (clonedChildrenRef.current\n && previousIsVisibleIntersection.current !== isVisibleIntersection\n ) {\n previousIsVisibleIntersection.current = isVisibleIntersection\n }\n\n useEffect(() => {\n if (!isPrintMode && shouldHide && shouldCleanChartStateAlways) {\n dispatch(clearChartStateAction({ id: chartUuid }))\n }\n }, [chartUuid, dispatch, shouldHide])\n\n\n if (isPrintMode) {\n // we should show everything in this case\n return children\n }\n\n if (shouldHide) {\n // todo perhaps loader should be added here to both scenarios\n if (destroyOnHide) {\n return (\n <InvisibleSearchableText attributes={attributes} />\n )\n }\n\n if (!clonedChildrenRef.current) {\n const newClonedChildren = Array.from(portalNode.children)\n .map((child) => cloneWithCanvas(child as HTMLElement))\n\n const clonedChildrenContainer = document.createElement(\"div\")\n clonedChildrenContainer.style.visibility = \"hidden\"\n\n newClonedChildren.forEach((child) => {\n clonedChildrenContainer.appendChild(child)\n })\n\n clonedChildrenRef.current = clonedChildrenContainer\n }\n\n return (\n <>\n <InvisibleSearchableText attributes={attributes} />\n <div\n ref={(nodeElement) => {\n if (nodeElement && clonedChildrenRef.current) {\n nodeElement.appendChild(clonedChildrenRef.current)\n }\n }}\n />\n </>\n )\n }\n\n if (!destroyOnHide && clonedChildrenRef.current) {\n clonedChildrenRef.current = undefined\n }\n\n return children\n}\n","import React from \"react\"\n\nimport { Attributes } from \"../../utils/transformDataAttributes\"\nimport { ChartMetadata } from \"../../chart-types\"\nimport { ChartWithLoader, RenderCustomElementForDygraph } from \"../chart-with-loader\"\nimport { DisableOutOfView } from \"../disable-out-of-view\"\nimport { DropdownMenu } from \"../chart-dropdown\"\n\nexport type Props = {\n attributes: Attributes\n // warning! this is not the same as chartId in old dashboard\n // here, the chartID must be unique across all agents\n chartUuid: string\n uuid?: string\n portalNode: HTMLElement\n chartMetadata?: ChartMetadata | undefined\n dropdownMenu?: DropdownMenu\n renderCustomElementForDygraph?: RenderCustomElementForDygraph\n onAttributesChange?: any\n}\n\nexport const ChartContainer = ({\n attributes,\n chartMetadata,\n chartUuid,\n dropdownMenu,\n portalNode,\n renderCustomElementForDygraph,\n onAttributesChange,\n uuid,\n}: Props) => (\n <DisableOutOfView attributes={attributes} portalNode={portalNode} chartUuid={chartUuid}>\n <ChartWithLoader\n attributes={attributes}\n chartUuid={chartUuid}\n renderCustomElementForDygraph={renderCustomElementForDygraph}\n onAttributesChange={onAttributesChange}\n dropdownMenu={dropdownMenu}\n externalChartMetadata={chartMetadata}\n portalNode={portalNode}\n uuid={uuid}\n />\n </DisableOutOfView>\n)\n","/* eslint-disable max-len */\nimport { ChartsMetadata } from \"domains/global/types\"\nimport { AnyStringKeyT } from \"types/common\"\nimport { ChartEnriched } from \"domains/chart/chart-types\"\n\nexport interface Submenus {\n [submenus: string]: {\n charts: ChartEnriched[]\n height: number\n info: string | null\n priority: number\n title: string | null\n }\n}\n\nexport interface CorrelationMetadata {\n scoredCount?: number\n totalCount?: number\n averageScore?: number\n}\n\nexport interface Menu {\n // eslint-disable-next-line camelcase\n menu_pattern: string\n priority: number\n submenus: Submenus\n title: string\n icon: string\n info: string\n height: number\n correlationsMetadata?: CorrelationMetadata\n}\n\nexport interface Menus {\n [menu: string]: Menu\n}\n\nexport const options = {\n menus: {} as Menus,\n submenu_names: {} as {[family: string]: string},\n data: null as (ChartsMetadata | null),\n hostname: \"netdata_server\", // will be overwritten by the netdata server\n version: \"unknown\",\n release_channel: \"unknown\",\n hosts: [],\n\n duration: 0, // the default duration of the charts\n update_every: 1,\n\n chartsPerRow: 0,\n // chartsMinWidth: 1450,\n chartsHeight: 180,\n}\n\n\n// netdata standard information\nexport const netdataDashboard = {\n sparklines_registry: {} as {[key: string]: { count: number }},\n os: \"unknown\",\n\n menu: {},\n submenu: {} as {\n [family: string]: {\n info?: string | ((os: string) => string)\n title?: string\n }\n },\n context: {} as {\n [id: string]: {\n valueRange: string // examples: \"[0, 100]\", \"[null, null]\"\n height: number\n decimalDigits: number\n }},\n\n // generate a sparkline\n // used in the documentation\n sparkline(\n prefix: string, chart: string, dimension: string, units: string = \"\", suffix: string,\n ) {\n if (options.data === null || typeof options.data.charts === \"undefined\") {\n return \"\"\n }\n\n if (typeof options.data.charts[chart] === \"undefined\") {\n return \"\"\n }\n\n if (typeof options.data.charts[chart].dimensions === \"undefined\") {\n return \"\"\n }\n\n if (typeof options.data.charts[chart].dimensions[dimension] === \"undefined\") {\n return \"\"\n }\n\n let key = `${chart}.${dimension}`\n\n if (typeof this.sparklines_registry[key] === \"undefined\") {\n this.sparklines_registry[key] = { count: 1 }\n } else {\n this.sparklines_registry[key].count += 1\n }\n\n key = `${key}.${this.sparklines_registry[key].count}`\n\n return `${prefix}<div class=\"netdata-container\" data-netdata=\"${chart}\" data-after=\"-120\"\n data-width=\"25%\" data-height=\"15px\" data-chart-library=\"dygraph\"\n data-dygraph-theme=\"sparkline\" data-dimensions=\"${dimension}\"\n data-show-value-of-${dimension}-at=\"${key}\"></div>\n (<span id=\"${key}\" style=\"display: inline-block; min-width: 50px; text-align: right;\">\n X</span>${units})${suffix}`\n },\n\n gaugeChart(\n title: string, width: string, dimensions: string = \"\", colors: string = \"\",\n ) {\n return `${\"<div class=\\\"netdata-container\\\" data-netdata=\\\"CHART_UNIQUE_ID\\\"\"\n + \" data-dimensions=\\\"\"}${dimensions}\"`\n + \" data-chart-library=\\\"gauge\\\"\"\n + \" data-gauge-adjust=\\\"width\\\"\"\n + ` data-title=\"${title}\"`\n + ` data-width=\"${width}\"`\n + \" data-before=\\\"0\\\"\"\n + \" data-after=\\\"-CHART_DURATION\\\"\"\n + \" data-points=\\\"CHART_DURATION\\\"\"\n + ` data-colors=\"${colors}\"`\n + \" role=\\\"application\\\"></div>\"\n },\n\n anyAttribute(obj: AnyStringKeyT, attr: string, key: string, def: unknown, domain?: string) {\n if (typeof (obj[key]) !== \"undefined\") {\n const config = obj[key]\n const configWithDomain = domain ? {...config, ...config[domain]} : config\n const x = configWithDomain[attr]\n\n if (x === undefined) {\n return def\n }\n\n if (typeof (x) === \"function\") {\n return x(netdataDashboard.os)\n }\n\n return x\n }\n\n return def\n },\n\n menuTitle(chart: ChartEnriched) {\n if (chart.sectionTitle) {\n return chart.sectionTitle\n }\n if (typeof chart.menu_pattern !== \"undefined\") {\n const type = chart.type || chart.id.split(\".\")[0]\n return (`${this.anyAttribute(this.menu, \"title\", chart.menu_pattern, chart.menu_pattern)\n .toString()\n } ${type.slice(-(type.length - chart.menu_pattern.length - 1)).toString()}`)\n .replace(/_/g, \" \")\n }\n\n return (this.anyAttribute(this.menu, \"title\", chart.menu, chart.menu)).toString()\n .replace(/_/g, \" \")\n },\n\n menuIcon(chart: ChartEnriched) {\n if (typeof chart.menu_pattern !== \"undefined\") {\n return this.anyAttribute(this.menu, \"icon\", chart.menu_pattern,\n \"<i class=\\\"fas fa-puzzle-piece\\\"></i>\").toString()\n }\n\n return this.anyAttribute(this.menu, \"icon\", chart.menu, \"<i class=\\\"fas fa-puzzle-piece\\\"></i>\")\n },\n\n menuInfo(chart: ChartEnriched) {\n if (typeof chart.menu_pattern !== \"undefined\") {\n return this.anyAttribute(this.menu, \"info\", chart.menu_pattern, null)\n }\n\n return this.anyAttribute(this.menu, \"info\", chart.menu, null)\n },\n\n menuHeight(chart: ChartEnriched) {\n if (typeof chart.menu_pattern !== \"undefined\") {\n return this.anyAttribute(this.menu, \"height\", chart.menu_pattern, 1.0)\n }\n\n return this.anyAttribute(this.menu, \"height\", chart.menu, 1.0)\n },\n\n submenuTitle(menu: string, submenu: string) {\n const key = `${menu}.${submenu}`\n // console.log(key);\n const title = this.anyAttribute(this.submenu, \"title\", key, submenu)\n .toString().replace(/_/g, \" \") as string\n if (title.length > 28) {\n const a = title.substring(0, 13)\n const b = title.substring(title.length - 12, title.length)\n return `${a}...${b}`\n }\n return title\n },\n\n submenuInfo(menu: string, submenu: string) {\n const key = `${menu}.${submenu}`\n return this.anyAttribute(this.submenu, \"info\", key, null) as (string | null)\n },\n\n submenuHeight(menu: string, submenu: string, relative: number) {\n const key = `${menu}.${submenu}`\n return this.anyAttribute(this.submenu, \"height\", key, 1.0) * relative\n },\n\n contextInfo(id: string, domain?: string) {\n const x = this.anyAttribute(this.context, \"info\", id, null, domain)\n\n if (x !== null) {\n return `<div class=\"shorten dashboard-context-info\"\n role=\"document\">${x}</div>`\n }\n return \"\"\n },\n\n contextValueRange(id: string) {\n if (typeof this.context[id] !== \"undefined\"\n && typeof this.context[id].valueRange !== \"undefined\"\n ) {\n try {\n return JSON.parse(this.context[id].valueRange)\n } catch (e) {\n return [null, null]\n }\n }\n return [null, null]\n },\n\n contextHeight(id: string, def: number) {\n if (typeof this.context[id] !== \"undefined\" && typeof this.context[id].height !== \"undefined\") {\n return def * this.context[id].height\n }\n return def\n },\n\n contextDecimalDigits(id: string, def: number) {\n if (typeof this.context[id] !== \"undefined\"\n && typeof this.context[id].decimalDigits !== \"undefined\"\n ) {\n return this.context[id].decimalDigits\n }\n return def\n },\n}\n\n// @ts-ignore\nwindow.netdataDashboard = netdataDashboard\n","/* eslint-disable object-curly-newline */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/destructuring-assignment */\n/* eslint-disable operator-linebreak */\n/* eslint-disable arrow-body-style */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React, { memo } from \"react\"\nimport styled from \"styled-components\"\nimport { Flex, Text } from \"@netdata/netdata-ui\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { useFormatters } from \"domains/chart/utils/formatters\"\nimport { netdataDashboard } from \"domains/dashboard/utils/netdata-dashboard\"\nimport { selectChartData } from \"domains/chart/selectors\"\n\nconst Title = styled(Text)`\n text-overflow: ellipsis;\n max-width: 120px;\n overflow-x: hidden;\n`\n\nconst getUnitSign = unit => {\n return unit === \"percentage\" ? \"%\" : ` ${unit.replace(/milliseconds/, \"ms\")}`\n}\n\nconst aggrMethods = {\n avg: \"Average\",\n sum: \"Sum\",\n min: \"Min\",\n max: \"Max\",\n}\nconst getAggregation = value => `${aggrMethods[value]}` || \"\"\n\nconst ChartValueContainer = memo(({ id, units, aggrMethod, displayedIndex }) => {\n const chartData = useSelector((state: AppStateT) => selectChartData(state, { id }))\n\n const value =\n typeof displayedIndex === \"number\"\n ? chartData.result[displayedIndex]\n : chartData.view_latest_values[0]\n\n const { legendFormatValue, unitsCurrent } = useFormatters({\n attributes: {},\n data: chartData,\n units,\n unitsCommon: null,\n unitsDesired: null,\n uuid: id,\n })\n\n const aggregation = getAggregation(aggrMethod)\n\n return (\n <Text\n wordBreak=\"keep-all\"\n color=\"bright\"\n margin={[0, 0, 0, \"auto\"]}\n data-testid=\"k8sPopoverChart-chartValue\"\n >\n {aggregation && (\n <Text margin={[0, 1, 0, 0]} color=\"separator\" data-testid=\"k8sPopoverChart-chartValue-aggr\">\n {aggregation}\n </Text>\n )}\n {legendFormatValue(value)}\n {getUnitSign(unitsCurrent)}\n </Text>\n )\n})\n\nconst ChartValue = ({ id, ...rest }) => {\n const chartData = useSelector((state: AppStateT) => selectChartData(state, { id }))\n\n if (!chartData || chartData.result.length === 0) return null\n return <ChartValueContainer id={id} {...rest} />\n}\n\nconst ChartOverview = ({ id, chartMetadata, aggrMethod, displayedIndex }) => {\n const { units, context } = chartMetadata\n const title = context.replace(/cgroup\\./, \"\")\n const icon = netdataDashboard.menuIcon(chartMetadata)\n\n return (\n <Flex gap={2} data-testid=\"k8sPopoverChart-overview\">\n <Text color=\"bright\" dangerouslySetInnerHTML={{ __html: icon }} />\n <Title color=\"bright\" data-testid=\"k8sPopoverChart-title\">\n {title}\n </Title>\n <ChartValue id={id} units={units} aggrMethod={aggrMethod} displayedIndex={displayedIndex} />\n </Flex>\n )\n}\n\nexport default memo(ChartOverview)\n","import React, { useMemo } from \"react\"\nimport Anchor from \"@/src/components/anchor\"\nimport { Text } from \"@netdata/netdata-ui\"\nimport { useLocalStorage } from \"react-use\"\nimport { utmUrlSuffix } from \"utils/utils\"\nimport { utmParametersToString } from \"domains/global/selectors\"\n\nexport type UserStatus = \"LOGGED_IN\" | \"EXPIRED_LOGIN\" | \"UNKNOWN\"\nexport type NodeClaimedStatus = \"NOT_CLAIMED\" | \"CLAIMED\"\nexport type UserNodeAccess = \"NO_ACCESS\" | \"ACCESS_OK\"\ntype UserPreference = \"AGENT\" | \"CLOUD\" | \"UNDEFINED\"\nexport type NodeLiveness = \"LIVE\" | \"NOT_LIVE\"\ntype CTATYPE = \"NAVIGATE\" | \"REFRESH\"\n\nexport enum MigrationModalPromos {\n PROMO_SIGN_IN_CLOUD = \"PROMO_SIGN_IN_CLOUD\",\n PROMO_SIGN_UP_CLOUD = \"PROMO_SIGN_UP_CLOUD\",\n PROMO_IVNITED_TO_SPACE = \"PROMO_IVNITED_TO_SPACE\",\n PROMO_CLAIM_NODE = \"PROMO_CLAIM_NODE\",\n PROMO_TO_USE_NEW_DASHBAORD = \"PROMO_TO_USE_NEW_DASHBAORD\",\n FALLBACK_TO_AGENT = \"FALLBACK_TO_AGENT\",\n NO_INFO_FALLBACK_TO_AGENT = \"NO_INFO_FALLBACK_TO_AGENT\",\n}\n\ntype MigrationModalActions = {\n text: string\n action: CTATYPE\n toPath?: string\n userPreference?: UserPreference | \"DONT_SHOW\"\n}\n\ntype MigrationModalContent = {\n title: string\n text: {\n header: ((props: any) => React.ReactNode) | string\n bullets?: Array<string | ((props?: any) => React.ReactNode)>\n footer?: ((props: any) => React.ReactNode) | string\n }\n tickBoxOption: { text: string; preferenceID: MigrationModalPromos }\n CTA1: MigrationModalActions\n CTA2?: MigrationModalActions\n}\n\ntype MigrationModalInfo = {\n [key in MigrationModalPromos]: MigrationModalContent\n}\n\nconst campaign = \"agent_nudge_to_cloud\"\n\nconst makeUTMParameters = (modalPromo: MigrationModalPromos) =>\n `${utmUrlSuffix}${utmParametersToString({\n content: modalPromo,\n campaign,\n })}`\n\nexport const migrationmodalInfo: MigrationModalInfo = {\n [MigrationModalPromos.PROMO_SIGN_UP_CLOUD]: {\n title: \"Learn about Netdata Cloud!\",\n text: {\n header: () => (\n <Text strong>\n Netdata Cloud is a FREE service that complements the Netdata Agent, to provide:\n </Text>\n ),\n bullets: [\n \"Infrastructure level dashboards (each chart aggregates data from multiple nodes)\",\n \"Central dispatch of alert notifications\",\n \"Custom dashboards editor\",\n \"Intelligence assisted troubleshooting, to help surface the root cause of issues\",\n ],\n footer: \"Have a look, you will be surprised!\",\n },\n tickBoxOption: {\n text: \"Remember my choice\",\n preferenceID: MigrationModalPromos.PROMO_SIGN_UP_CLOUD,\n },\n CTA1: {\n text: \"Wow! Let’s go to Netdata Cloud\",\n toPath: \"path/signup/cloud\",\n action: \"NAVIGATE\",\n userPreference: \"CLOUD\",\n },\n CTA2: {\n text: \"Later, stay at the agent dashboard\",\n action: \"NAVIGATE\",\n toPath: \"path/agent-dashboard\",\n userPreference: \"AGENT\",\n },\n },\n [MigrationModalPromos.PROMO_SIGN_IN_CLOUD]: {\n title: \"Sign-in to Netdata Cloud or get an invitation!\",\n text: {\n header: () => (\n <>\n <Text strong>\n This node is connected to Netdata Cloud but you are not. If you have a Netdata Cloud\n account sign-in, if not ask for an invitation to it.\n </Text>\n\n <Text>\n Netdata Cloud is a FREE service that complements the Netdata Agent, to provide:\n </Text>\n </>\n ),\n bullets: [\n \"Infrastructure level dashboards (each chart aggregates data from multiple nodes)\",\n \"Central dispatch of alert notifications\",\n \"Custom dashboards editor\",\n \"Intelligence assisted troubleshooting, to help surface the root cause of issues\",\n ],\n footer: \"Have a look, you will be surprised!\",\n },\n tickBoxOption: {\n text: \"Remember my choice\",\n preferenceID: MigrationModalPromos.PROMO_SIGN_IN_CLOUD,\n },\n CTA1: {\n text: \"Sign-in or get a Netdata Cloud account\",\n action: \"NAVIGATE\",\n toPath: \"path/signin/cloud\",\n userPreference: \"CLOUD\",\n },\n CTA2: {\n text: \"Later, stay at the Agent dashboard\",\n toPath: \"path/agent-dashboard\",\n action: \"NAVIGATE\",\n userPreference: \"AGENT\",\n },\n },\n [MigrationModalPromos.PROMO_IVNITED_TO_SPACE]: {\n title: \"Get an invitation to this Node’s Space!\",\n text: {\n header: () => (\n <Text strong>\n This node is connected to Netdata Cloud but it isnt available on one of your Spaces.\n </Text>\n ),\n bullets: [],\n footer: \"Ask for an invitation to this Space!\",\n },\n tickBoxOption: {\n text: \"Don't remind me of this again\",\n preferenceID: MigrationModalPromos.PROMO_IVNITED_TO_SPACE,\n },\n CTA1: {\n text: \"Thanks, stay at Agent dashboard for now\",\n toPath: \"agent\",\n action: \"NAVIGATE\",\n userPreference: \"AGENT\",\n },\n },\n [MigrationModalPromos.PROMO_CLAIM_NODE]: {\n title: \"This node isn’t connected to Netdata Cloud\",\n text: {\n header: () => (\n <Text strong>\n For you to be able to see this node on Netdata Cloud you will either need to:\n </Text>\n ),\n footer: \"Have a look, you will be surprised!\",\n bullets: [\n () => {\n return (\n <Text>\n {\" \"}\n Connect this node directly (documentation on{\" \"}\n <Anchor\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://learn.netdata.cloud/docs/agent/claim?${makeUTMParameters(\n MigrationModalPromos.PROMO_CLAIM_NODE\n ).substring(1)}#how-to-connect-a-node`}\n >\n how to connect a node\n </Anchor>\n ) , or\n </Text>\n )\n },\n () => {\n return (\n <Text>\n Αctivate streaming to a parent node that is already connected (documentation on{\" \"}\n <Anchor\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://learn.netdata.cloud/docs/metrics-storage-management/enable-streaming?${makeUTMParameters(\n MigrationModalPromos.PROMO_CLAIM_NODE\n ).substring(1)}`}\n >\n how to configure streaming\n </Anchor>\n )\n </Text>\n )\n },\n ],\n },\n tickBoxOption: {\n text: \"Remember my choice.\",\n preferenceID: MigrationModalPromos.PROMO_CLAIM_NODE,\n },\n CTA1: {\n text: \"Wow! Let’s go to Netdata Cloud\",\n action: \"NAVIGATE\",\n toPath: \"path/node/cloud\",\n userPreference: \"CLOUD\",\n },\n CTA2: {\n text: \"Later, stay at the Agent dashboard\",\n action: \"NAVIGATE\",\n toPath: \"path/agent-dashboard\",\n userPreference: \"AGENT\",\n },\n },\n [MigrationModalPromos.PROMO_TO_USE_NEW_DASHBAORD]: {\n title: \"Use the Old or the New dashboard?\",\n text: {\n header: () => (\n <Text strong>\n This node is available in your Netdata Cloud account. So, you have full access to the NEW\n dashboards, charts, intelligence-assisted troubleshooting and many more!\n </Text>\n ),\n bullets: [],\n },\n tickBoxOption: {\n text: \"Remember my choice\",\n preferenceID: MigrationModalPromos.PROMO_TO_USE_NEW_DASHBAORD,\n },\n CTA1: {\n text: \"Wow! Let’s go to Netdata Cloud \",\n action: \"NAVIGATE\",\n toPath: \"path/dashboard/cloud\",\n userPreference: \"CLOUD\",\n },\n CTA2: {\n text: \"Later, stay at the Agent dashboard\",\n action: \"NAVIGATE\",\n toPath: \"path/agent-dashboard\",\n userPreference: \"AGENT\",\n },\n },\n [MigrationModalPromos.FALLBACK_TO_AGENT]: {\n title: \"Oops! This node has lost connection to Netdata Cloud!\",\n text: {\n header: ({ date = \"\" }) => {\n return (\n <>\n <Text strong>\n Unfortunately, it seems that this node is not currently connected to Netdata Cloud.\n So, the old agent dashboard is the only option available.\n </Text>\n {/* <Text>\n The node lost its Netdata Cloud connection at <Text strong>{date}</Text>.\n </Text> */}\n <Text>\n To troubleshoot Netdata Cloud connection issues, please follow this{\" \"}\n <Anchor\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://learn.netdata.cloud/docs/agent/claim?${makeUTMParameters(\n MigrationModalPromos.FALLBACK_TO_AGENT\n ).substring(1)}#troubleshooting`}\n >\n this guide.\n </Anchor>\n </Text>\n </>\n )\n },\n bullets: [],\n },\n tickBoxOption: {\n text: \"Don't show this again\",\n preferenceID: MigrationModalPromos.FALLBACK_TO_AGENT,\n },\n CTA1: {\n text: \"Check again please\",\n action: \"REFRESH\",\n userPreference: undefined,\n },\n CTA2: {\n text: \"Thanks, stay at Agent dashboard\",\n toPath: \"path/agent\",\n action: \"NAVIGATE\",\n userPreference: \"AGENT\",\n },\n },\n [MigrationModalPromos.NO_INFO_FALLBACK_TO_AGENT]: {\n title: \"Oops! We aren't able to get information of this node in regards to Netdata Cloud!\",\n text: {\n header: () => {\n return (\n <>\n <Text strong>\n Unfortunately, it seems we aren't able to get information on this node in regards to\n Netdata Cloud.\n </Text>\n <Text>\n This could be from internet connectivity issues from your end or some temporary issue\n with our services. So, the old agent dashboard is the only option available.\n </Text>\n </>\n )\n },\n bullets: [],\n },\n tickBoxOption: {\n text: \"Don't show this again\",\n preferenceID: MigrationModalPromos.NO_INFO_FALLBACK_TO_AGENT,\n },\n CTA1: {\n text: \"Check again please\",\n action: \"REFRESH\",\n userPreference: undefined,\n },\n CTA2: {\n text: \"Thanks, stay at Agent dashboard\",\n toPath: \"path/agent-dashboard\",\n action: \"NAVIGATE\",\n userPreference: \"AGENT\",\n },\n },\n}\n\nexport type PromoProps = {\n userSavedPreference?: UserPreference\n userStatus?: UserStatus\n nodeClaimedStatus?: NodeClaimedStatus\n userNodeAccess?: UserNodeAccess\n nodeLiveness?: NodeLiveness\n}\n\nconst isPromoSignUp = ({\n userSavedPreference,\n userStatus,\n nodeClaimedStatus,\n}: PromoProps): boolean =>\n userSavedPreference !== \"AGENT\" && userStatus === \"UNKNOWN\" && nodeClaimedStatus === \"NOT_CLAIMED\"\n\nconst isPromoSignIn = ({\n userSavedPreference,\n userStatus,\n nodeClaimedStatus,\n}: PromoProps): boolean =>\n userSavedPreference !== \"AGENT\" && userStatus === \"UNKNOWN\" && nodeClaimedStatus === \"CLAIMED\"\n\nconst isPromoInvitedToSpace = ({\n userSavedPreference,\n userStatus,\n nodeClaimedStatus,\n userNodeAccess,\n}: PromoProps): boolean =>\n userSavedPreference !== \"AGENT\" &&\n (userStatus === \"LOGGED_IN\" || userStatus === \"EXPIRED_LOGIN\") &&\n nodeClaimedStatus === \"CLAIMED\" &&\n userNodeAccess === \"NO_ACCESS\"\n\nconst isPromoToClaimThisNode = ({\n userSavedPreference,\n userStatus,\n nodeClaimedStatus,\n}: PromoProps): boolean =>\n userSavedPreference !== \"AGENT\" &&\n (userStatus === \"LOGGED_IN\" || userStatus === \"EXPIRED_LOGIN\") &&\n nodeClaimedStatus === \"NOT_CLAIMED\"\n\nconst isPromoToNewDasboardOnCloud = ({\n userSavedPreference,\n userStatus,\n nodeLiveness,\n userNodeAccess,\n}: PromoProps): boolean =>\n !userSavedPreference &&\n (userStatus === \"LOGGED_IN\" || userStatus === \"EXPIRED_LOGIN\") &&\n nodeLiveness === \"LIVE\" &&\n userNodeAccess === \"ACCESS_OK\"\n\nconst isNoInfoFallbackToAgent = ({\n userSavedPreference,\n userStatus,\n nodeClaimedStatus,\n nodeLiveness,\n userNodeAccess,\n}: PromoProps): boolean =>\n userSavedPreference === \"CLOUD\" &&\n !userStatus &&\n !nodeClaimedStatus &&\n !nodeLiveness &&\n !userNodeAccess\n\nconst isFallbackToAgent = ({\n userSavedPreference,\n userStatus,\n nodeClaimedStatus,\n nodeLiveness,\n userNodeAccess,\n}: PromoProps): boolean =>\n userSavedPreference !== \"AGENT\" &&\n (userStatus === \"LOGGED_IN\" || userStatus === \"EXPIRED_LOGIN\") &&\n nodeClaimedStatus === \"CLAIMED\" &&\n nodeLiveness === \"NOT_LIVE\" &&\n userNodeAccess === \"ACCESS_OK\"\n\nexport const goToAgentDashboard = ({ userSavedPreference }: PromoProps) =>\n userSavedPreference === \"AGENT\"\n\nexport const goToCloud = ({\n userSavedPreference,\n userStatus,\n nodeLiveness,\n userNodeAccess,\n}: PromoProps) =>\n userSavedPreference === \"CLOUD\" &&\n (userStatus === \"LOGGED_IN\" || userStatus === \"EXPIRED_LOGIN\") &&\n nodeLiveness === \"LIVE\" &&\n userNodeAccess === \"ACCESS_OK\"\n\nconst modalStatusWithPromoFunctions: Record<\n MigrationModalPromos,\n (props: PromoProps) => boolean\n> = {\n [MigrationModalPromos.FALLBACK_TO_AGENT]: isFallbackToAgent,\n [MigrationModalPromos.NO_INFO_FALLBACK_TO_AGENT]: isNoInfoFallbackToAgent,\n [MigrationModalPromos.PROMO_TO_USE_NEW_DASHBAORD]: isPromoToNewDasboardOnCloud,\n [MigrationModalPromos.PROMO_CLAIM_NODE]: isPromoToClaimThisNode,\n [MigrationModalPromos.PROMO_IVNITED_TO_SPACE]: isPromoInvitedToSpace,\n [MigrationModalPromos.PROMO_SIGN_IN_CLOUD]: isPromoSignIn,\n [MigrationModalPromos.PROMO_SIGN_UP_CLOUD]: isPromoSignUp,\n}\n\nconst useMigrationModal = ({\n userStatus,\n nodeClaimedStatus,\n userNodeAccess,\n nodeLiveness,\n}: PromoProps) => {\n const [userSavedPreference, setUserPrefrence] = useLocalStorage<UserPreference>(\n \"USER_SAVED_PREFERENCE\"\n )\n\n const migrationModalPromo = useMemo<MigrationModalPromos>(() => {\n return Object.keys(modalStatusWithPromoFunctions).find(modalStatus => {\n return modalStatusWithPromoFunctions[modalStatus]({\n userStatus,\n nodeClaimedStatus,\n userNodeAccess,\n userSavedPreference,\n nodeLiveness,\n })\n }) as MigrationModalPromos\n }, [userStatus, nodeClaimedStatus, userNodeAccess, nodeLiveness, userSavedPreference])\n\n return {\n migrationModalPromoInfo: migrationmodalInfo[migrationModalPromo],\n migrationModalPromo,\n setUserPrefrence,\n userSavedPreference,\n }\n}\n\nexport default useMigrationModal\n","/* eslint-disable comma-dangle */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable object-curly-newline */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React, { useRef, useContext, useLayoutEffect, useState, memo, useMemo } from \"react\"\nimport { throttle } from \"throttle-debounce\"\nimport { ChartContainer } from \"domains/chart/components/chart-container\"\nimport { ThemeContext } from \"styled-components\"\nimport { Flex, getColor } from \"@netdata/netdata-ui\"\nimport ChartOverview from \"./chartOverview\"\n\nconst Chart = ({ groupLabel, postGroupLabel, id, attributes, relatedIndex }) => {\n const theme = useContext(ThemeContext)\n const chartContainerRef = useRef()\n const [displayedIndex, setDisplayedIndex] = useState()\n const setDisplayedIndexThrottled = useMemo(() => throttle(400, setDisplayedIndex), [])\n const [, repaint] = useState()\n\n useLayoutEffect(() => {\n repaint(true)\n }, [])\n\n const { chartMetadata, attributes: relatedChartAttributes } = attributes.relatedCharts[\n relatedIndex\n ]\n\n const chartAttributes = useMemo(\n () => ({\n id: chartMetadata.id,\n\n width: \"100%\",\n height: \"60px\",\n\n chartLibrary: \"sparkline\",\n sparklineLineWidth: \"2px\",\n sparklineLineColor: getColor(\"border\")({ theme }),\n sparklineFillColor: getColor(\"disabled\")({ theme }),\n sparklineSpotRadius: 0,\n sparklineDisableTooltips: true,\n sparklineOnHover: (event) => setDisplayedIndexThrottled(event?.x),\n\n httpMethod: \"POST\",\n host: attributes.host,\n nodeIDs: attributes.nodeIDs,\n dimensions: relatedChartAttributes.dimensions,\n aggrMethod: relatedChartAttributes.aggrMethod,\n\n labels: {\n k8s_cluster_id: [chartMetadata.chartLabels.k8s_cluster_id[0]],\n [attributes.groupBy]: [groupLabel],\n ...(postGroupLabel && { [attributes.postGroupBy]: [postGroupLabel] }),\n },\n }),\n [chartMetadata, attributes]\n )\n\n return (\n <Flex gap={2} column data-testid=\"k8sPopoverChart\">\n <div\n ref={chartContainerRef}\n style={{ height: \"60px\", width: \"100%\" }}\n data-testid=\"k8sPopoverChart-container\"\n >\n {chartContainerRef.current && (\n <ChartContainer\n chartUuid={id}\n attributes={chartAttributes}\n chartMetadata={chartMetadata}\n portalNode={chartContainerRef.current}\n />\n )}\n </div>\n <ChartOverview\n id={id}\n aggrMethod={chartAttributes.aggrMethod}\n chartMetadata={chartMetadata}\n displayedIndex={displayedIndex}\n />\n </Flex>\n )\n}\n\nexport default memo(Chart)\n","/* eslint-disable object-curly-newline */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport styled from \"styled-components\"\nimport { Text, Flex, Icon } from \"@netdata/netdata-ui\"\n\nconst ExternalButton = styled(Icon).attrs({\n margin: [0, 0, 0, \"auto\"],\n color: \"bright\",\n width: \"10px\",\n height: \"10px\",\n alignSelf: \"center\",\n name: \"nav_arrow_goto\",\n role: \"button\",\n title: \"Go to node\",\n \"data-testid\": \"k8sPopoverItem-externalButton\",\n})`\n cursor: pointer;\n`\n\nconst Item = ({ icon, title, secondary, onClick }) => (\n <Flex gap={1} alignItems=\"start\" data-testid=\"k8sPopoverItem\">\n <Flex width=\"22px\" height=\"22px\" data-testid=\"k8sPopoverItem-icon\">\n <Icon name={icon} color=\"bright\" margin={[0, 1, 0, 0]} width=\"22px\" height=\"22px\" />\n </Flex>\n <Text color=\"bright\" data-testid=\"k8sPopoverItem-title\">\n {title}\n </Text>\n {secondary && (\n <Text color=\"border\" wordBreak=\"break-all\" data-testid=\"k8sPopoverItem-detail\">\n {secondary}\n </Text>\n )}\n {onClick && <ExternalButton onClick={onClick} />}\n </Flex>\n)\n\nexport default Item\n","/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport { useDateTime } from \"utils/date-time\"\nimport Item from \"./item\"\nimport Section from \"./section\"\n\nconst DateItem = ({ date, title }) => {\n const { localeDateString, localeTimeString } = useDateTime()\n\n return (\n <Item\n icon=\"around_clock\"\n title={title}\n secondary={`${localeDateString(date)} | ${localeTimeString(date)}`}\n />\n )\n}\n\nconst DateSection = ({ before, after }) => (\n <Section title=\"Time\">\n <DateItem title=\"From\" date={after} />\n <DateItem title=\"To\" date={before} />\n </Section>\n)\n\nexport default DateSection\n","/* eslint-disable object-curly-newline */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport Section from \"./section\"\nimport Chart from \"./chart\"\nimport DateSection from \"./dateSection\"\n\nconst Metrics = ({ groupLabel, postGroupLabel, attributes, viewAfter, viewBefore }) => (\n <Flex gap={3} column width=\"100%\" data-testid=\"k8sPopoverMetrics\">\n <DateSection after={viewAfter} before={viewBefore} />\n <Section title=\"Metrics\" noBorder>\n <Flex gap={3} column data-testid=\"k8sPopoverMetrics-container\">\n {attributes.relatedCharts.map(({ chartMetadata }, index) => (\n <Chart\n key={chartMetadata.id}\n id={[groupLabel, postGroupLabel, attributes.id, chartMetadata.id].join(\"|\")}\n attributes={attributes}\n relatedIndex={index}\n groupLabel={groupLabel}\n postGroupLabel={postGroupLabel}\n />\n ))}\n </Flex>\n </Section>\n </Flex>\n)\n\nexport default Metrics\n","/* eslint-disable no-param-reassign */\n/* eslint-disable comma-dangle */\n/* eslint-disable object-curly-newline */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React, { memo } from \"react\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport Item from \"./item\"\nimport Section from \"./section\"\nimport getLabel, { labelIds } from \"./getLabel\"\n\nconst LabelsSection = ({ labelId, items, onExpand, onItemClick, ...rest }) => {\n const { title, icon } = getLabel(labelId)\n const sliced = items.slice(0, 3)\n const expandable = items.length > 3\n\n const text = expandable ? `${title} (${items.length})` : title\n return (\n <Section title={text} onExpand={expandable && onExpand} {...rest}>\n {sliced.map((item) => (\n <Item\n key={item}\n icon={icon}\n title={item}\n onClick={onItemClick && (() => onItemClick(item))}\n />\n ))}\n </Section>\n )\n}\n\nconst getLabelIds = (chartLabels) => {\n chartLabels = { ...chartLabels }\n const predefinedLabelIds = labelIds.reduce((acc, labelId) => {\n if (!(labelId in chartLabels)) return acc\n\n delete chartLabels[labelId]\n return [...acc, labelId]\n }, [])\n\n return [...predefinedLabelIds, ...Object.keys(chartLabels)]\n}\n\nconst Context = ({ chartLabels, onExpand, onNodeClick }) => {\n const ids = getLabelIds(chartLabels)\n\n return (\n <Flex gap={3} column width=\"100%\" data-testid=\"k8sPopoverContext\">\n {ids.map((id, index) => (\n <LabelsSection\n key={id}\n labelId={id}\n items={chartLabels[id]}\n onExpand={() => onExpand(id)}\n noBorder={index === ids.length - 1}\n onItemClick={id === \"k8s_node_name\" && onNodeClick}\n />\n ))}\n </Flex>\n )\n}\n\nexport default memo(Context)\n","/* eslint-disable object-curly-newline */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React from \"react\"\nimport { Flex, Button, makeFlex } from \"@netdata/netdata-ui\"\nimport styled from \"styled-components\"\nimport Separator from \"./separator\"\nimport Header from \"./header\"\nimport Item from \"./item\"\nimport getLabel from \"./getLabel\"\n\nconst StyledButton = styled(makeFlex(Button)).attrs({\n flavour: \"borderless\",\n neutral: true,\n themeType: \"dark\",\n className: \"btn\",\n alignItems: \"start\",\n gap: 1,\n})`\n &&& {\n padding: 0;\n margin: 0;\n height: initial;\n width: initial;\n\n svg {\n height: 18px;\n width: 18px;\n position: initial;\n }\n }\n`\n\nconst List = ({ labelId, items, onBack, onItemClick }) => {\n const { title, icon } = getLabel(labelId)\n\n return (\n <Flex height=\"100%\" gap={3} data-testid=\"k8sPopoverList\" column>\n <Header>\n <StyledButton\n label={`${title} (${items.length})`}\n icon=\"chevron_left\"\n onClick={onBack}\n data-testid=\"k8sPopoverList-back\"\n />\n </Header>\n <Separator />\n <Flex\n gap={3}\n overflow={{ vertical: \"auto\", horizontal: \"hidden\" }}\n column\n data-testid=\"k8sPopoverList-container\"\n >\n {items.map((item) => (\n <Item\n key={item}\n icon={icon}\n title={item}\n onClick={onItemClick && (() => onItemClick(item))}\n />\n ))}\n </Flex>\n </Flex>\n )\n}\n\nexport default List\n","/* eslint-disable object-curly-newline */\n/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React, { useState } from \"react\"\nimport { Flex, DropContainer } from \"@netdata/netdata-ui\"\nimport Separator from \"./separator\"\nimport Header from \"./header\"\nimport Tabs from \"./tabs\"\nimport Metrics from \"./metrics\"\nimport Context from \"./context\"\nimport List from \"./list\"\n\nconst Container = (props) => (\n <DropContainer\n background={[\"transparent\", \"popover\"]}\n padding={[2, 4]}\n width=\"322px\"\n height=\"422px\"\n {...props}\n />\n)\n\nconst TabsContainer = ({ label, value, onChange, children }) => (\n <Flex height=\"100%\" column>\n <Header>{label}</Header>\n <Tabs value={value} onChange={onChange} margin={[4, 0, 0, 0]} />\n <Separator />\n <Flex gap={3} overflow={{ vertical: \"auto\", horizontal: \"hidden\" }} margin={[4, 0, 0, 0]}>\n {children}\n </Flex>\n </Flex>\n)\n\nconst Popover = ({\n title,\n groupLabel,\n postGroupLabel,\n chartLabels,\n attributes,\n viewBefore,\n viewAfter,\n ...rest\n}) => {\n const [view, setView] = useState(\"context\")\n\n const isLabelView = view !== \"context\" && view !== \"metrics\"\n\n const { onNodeClick } = attributes\n\n return (\n <Container data-testid=\"k8sPopover\" {...rest}>\n {isLabelView && (\n <List\n labelId={view}\n items={chartLabels[view]}\n attributes={attributes}\n onBack={() => setView(\"context\")}\n onItemClick={view === \"k8s_node_name\" && onNodeClick}\n />\n )}\n {!isLabelView && (\n <TabsContainer label={title} value={view} onChange={setView}>\n {view === \"context\" && (\n <Context chartLabels={chartLabels} onExpand={setView} onNodeClick={onNodeClick} />\n )}\n {view === \"metrics\" && (\n <Metrics\n groupLabel={groupLabel}\n postGroupLabel={postGroupLabel}\n attributes={attributes}\n viewAfter={viewAfter}\n viewBefore={viewBefore}\n />\n )}\n </TabsContainer>\n )}\n </Container>\n )\n}\n\nexport default Popover\n","/* eslint-disable arrow-body-style */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable comma-dangle */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\nimport React, { useMemo } from \"react\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport { ChartMetadata } from \"domains/chart/chart-types\"\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes.ts\"\nimport { ChartTimeframe } from \"domains/chart/components/chart-legend-bottom\"\nimport GroupBoxes from \"domains/chart/components/lib-charts/group-box-chart/groupBoxes\"\nimport Legend from \"domains/chart/components/lib-charts/group-box-chart/legend\"\nimport getLabel from \"./getLabel\"\nimport transform from \"./transform\"\nimport Popover from \"./popover\"\n\ninterface Props {\n chartData: any\n chartMetadata: ChartMetadata\n attributes: Attributes\n viewAfter: number\n viewBefore: number\n hoveredRow: number\n hoveredX: number | null\n showUndefined: boolean\n}\n\nconst Kubernetes = ({\n chartData,\n chartMetadata,\n attributes,\n viewAfter,\n viewBefore,\n hoveredRow,\n hoveredX,\n showUndefined,\n}: Props) => {\n const { filteredRows } = attributes\n const { data: groupBoxData, labels, chartLabels } = useMemo(\n () => transform(chartData, filteredRows),\n [filteredRows, chartData]\n )\n\n const {\n id,\n result: { data },\n groupBy,\n postGroupBy,\n } = chartData\n\n const renderBoxPopover = ({ groupIndex, index, align }) => {\n const label = groupBoxData[groupIndex].labels[index]\n const { title } = getLabel(postGroupBy)\n\n return (\n <Popover\n align={align}\n title={`${title}: ${label}`}\n groupLabel={labels[groupIndex]}\n postGroupLabel={label}\n chartLabels={groupBoxData[groupIndex].chartLabels[index]}\n attributes={attributes}\n viewBefore={viewBefore}\n viewAfter={viewAfter}\n />\n )\n }\n\n const renderGroupPopover = ({ groupIndex, align }) => {\n const label = labels[groupIndex]\n const { title } = getLabel(groupBy)\n\n return (\n <Popover\n align={align}\n title={`${title}: ${label}`}\n groupLabel={label}\n chartLabels={chartLabels[groupIndex]}\n attributes={attributes}\n viewBefore={viewBefore}\n viewAfter={viewAfter}\n />\n )\n }\n\n const groupedBoxesData = useMemo(() => {\n return groupBoxData.map((groupedBox) => {\n return {\n labels: groupedBox.labels,\n data:\n hoveredRow === -1 || hoveredRow > data.length || !(hoveredRow in data)\n ? groupedBox.postAggregated\n : groupedBox.indexes.map((index) => data[hoveredRow][index + 1]) || [],\n }\n })\n }, [data, groupBoxData, hoveredRow])\n\n return (\n <Flex column width=\"100%\" height=\"100%\" gap={4} padding={[4, 2]}>\n <GroupBoxes\n data={groupedBoxesData}\n labels={labels}\n renderBoxPopover={renderBoxPopover}\n renderGroupPopover={renderGroupPopover}\n />\n <Flex data-testid=\"legend-container\" justifyContent=\"between\">\n <Legend>{id}</Legend>\n <ChartTimeframe\n chartMetadata={chartMetadata}\n showUndefined={showUndefined}\n hoveredX={hoveredX}\n viewBefore={viewBefore}\n chartData={chartData}\n />\n </Flex>\n </Flex>\n )\n}\n\nexport default Kubernetes\n","/* eslint-disable arrow-body-style */\n/* eslint-disable object-curly-newline */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable comma-dangle */\n/* eslint-disable react/prop-types */\n// @ts-nocheck\n\nexport default (chartData, filteredRows) => {\n const { keys, labels: labelValues, groupBy, postGroupBy, aggrGroups, postAggregated } = chartData\n const groupValues = keys[groupBy]\n const postGroupValues = keys[postGroupBy]\n const indexes = filteredRows || [...Array(groupValues.length)].map((v, index) => index)\n\n const postGroupData = indexes.reduce((acc: any, index: number) => {\n const groupValue = groupValues[index]\n if (!(groupValue in acc)) {\n acc[groupValue] = {\n labels: [],\n indexes: [],\n chartLabels: [],\n postAggregated: [],\n }\n }\n const boxes = acc[groupValue]\n boxes.indexes.push(index)\n boxes.labels.push(postGroupValues[index])\n boxes.postAggregated.push(postAggregated[index])\n\n const chartLabels = aggrGroups.reduce((labelsAcc, label) => {\n return labelValues[label][index]\n ? { ...labelsAcc, [label]: labelValues[label][index] }\n : labelsAcc\n }, {})\n boxes.chartLabels.push(chartLabels)\n return acc\n }, {})\n\n const labels = Object.keys(postGroupData).sort(\n (a, b) => postGroupData[b].indexes.length - postGroupData[a].indexes.length\n )\n\n const groupData = labels.map((label) => postGroupData[label])\n\n const groupChartLabels = groupData.map((boxes) => {\n return aggrGroups.reduce((acc, label) => {\n const groupLabels = new Set(\n boxes.chartLabels.reduce((accChartLabels, chartLabels) => {\n return chartLabels[label] ? [...accChartLabels, ...chartLabels[label]] : accChartLabels\n }, [])\n )\n return groupLabels.size === 0 ? acc : { ...acc, [label]: Array.from(groupLabels) }\n }, {})\n })\n\n return { labels, data: groupData, chartLabels: groupChartLabels }\n}\n","import React, { useCallback } from \"react\"\nimport classNames from \"classnames\"\n\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { setGlobalChartUnderlayAction, setGlobalPanAndZoomAction } from \"domains/global/actions\"\nimport { selectSyncPanAndZoom } from \"domains/global/selectors\"\nimport { setChartPanAndZoomAction } from \"domains/chart/actions\"\nimport { useShowValueOutside } from \"hooks/use-show-value-outside\"\n\nimport { Attributes } from \"../utils/transformDataAttributes\"\nimport {\n ChartData, ChartMetadata, DygraphData, EasyPieChartData, D3pieChartData,\n} from \"../chart-types\"\nimport { chartLibrariesSettings, ChartLibraryName } from \"../utils/chartLibrariesSettings\"\n\nimport { DygraphChart } from \"./lib-charts/dygraph-chart\"\nimport { EasyPieChart } from \"./lib-charts/easy-pie-chart\"\nimport { GaugeChart } from \"./lib-charts/gauge-chart\"\nimport { SparklineChart } from \"./lib-charts/sparkline-chart\"\nimport { D3pieChart } from \"./lib-charts/d3pie-chart\"\nimport { PeityChart } from \"./lib-charts/peity-chart\"\nimport { GoogleChart } from \"./lib-charts/google-chart\"\nimport { TextOnly } from \"./lib-charts/text-only\"\nimport { KubernetesGroupBoxes } from \"./lib-charts/group-box-chart\"\n\ninterface Props {\n attributes: Attributes\n chartContainerElement: HTMLElement\n chartData: ChartData\n chartMetadata: ChartMetadata\n chartLibrary: ChartLibraryName\n colors: {\n [key: string]: string\n }\n chartUuid: string\n chartHeight: number\n chartWidth: number\n dimensionsVisibility: boolean[]\n hasEmptyData: boolean\n isRemotelyControlled: boolean\n legendFormatValue: ((v: number | string | null) => number | string)\n orderedColors: string[]\n hoveredX: number | null\n onUpdateChartPanAndZoom: (arg: { after: number, before: number, masterID: string }) => void\n immediatelyDispatchPanAndZoom: () => void\n\n hoveredRow: number\n setHoveredX: (hoveredX: number | null, noMaster?: boolean) => void\n setMinMax: (minMax: [number, number]) => void\n showLatestOnBlur: boolean\n unitsCurrent: string\n viewAfterForCurrentData: number,\n viewBeforeForCurrentData: number,\n}\n\nexport const AbstractChart = ({\n attributes,\n chartContainerElement,\n chartData,\n chartMetadata,\n chartLibrary,\n colors,\n chartUuid,\n chartHeight,\n chartWidth,\n dimensionsVisibility,\n hasEmptyData,\n isRemotelyControlled,\n legendFormatValue,\n orderedColors,\n hoveredRow,\n hoveredX,\n onUpdateChartPanAndZoom,\n immediatelyDispatchPanAndZoom,\n setHoveredX,\n setMinMax,\n showLatestOnBlur,\n unitsCurrent,\n viewAfterForCurrentData,\n viewBeforeForCurrentData,\n}: Props) => {\n const dispatch = useDispatch()\n\n const isSyncPanAndZoom = useSelector(selectSyncPanAndZoom)\n const setGlobalChartUnderlay = useCallback(({ after, before, masterID }) => {\n dispatch(setGlobalChartUnderlayAction({ after, before, masterID }))\n\n // freeze charts\n // don't send masterID, so no padding is applied\n if (isSyncPanAndZoom) {\n dispatch(setGlobalPanAndZoomAction({\n after: viewAfterForCurrentData,\n before: viewBeforeForCurrentData,\n }))\n } else {\n dispatch(setChartPanAndZoomAction({\n after: viewAfterForCurrentData,\n before: viewBeforeForCurrentData,\n id: chartUuid,\n }))\n }\n }, [chartUuid, dispatch, isSyncPanAndZoom, viewAfterForCurrentData, viewBeforeForCurrentData])\n\n const chartSettings = chartLibrariesSettings[chartLibrary]\n const { hasLegend } = chartSettings\n const chartElementClassName = hasLegend(attributes)\n ? classNames(\n `netdata-chart-with-legend-${attributes.legendPosition || \"right\"}`,\n `netdata-${chartLibrary}-chart-with-legend-right`,\n )\n : classNames(\n \"netdata-chart\",\n `netdata-${chartLibrary}-chart`,\n )\n const chartElementId = `${chartLibrary}-${chartUuid}-chart`\n const showUndefined = hoveredRow === -1 && !showLatestOnBlur\n\n useShowValueOutside({\n attributes, chartData, chartSettings, hoveredRow, legendFormatValue, showUndefined,\n })\n\n if (chartLibrary === \"easypiechart\") {\n return (\n <EasyPieChart\n attributes={attributes}\n chartData={chartData as EasyPieChartData}\n chartMetadata={chartMetadata}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n chartLibrary={chartLibrary}\n chartWidth={chartWidth}\n colors={colors}\n chartUuid={chartUuid}\n dimensionsVisibility={dimensionsVisibility}\n isRemotelyControlled={isRemotelyControlled}\n // easyPieChart doesn't support resizing, so lets just create new one when\n // container size changes\n key={chartWidth}\n legendFormatValue={legendFormatValue}\n orderedColors={orderedColors}\n hoveredRow={hoveredRow}\n onUpdateChartPanAndZoom={onUpdateChartPanAndZoom}\n setGlobalChartUnderlay={setGlobalChartUnderlay}\n setMinMax={setMinMax}\n showUndefined={showUndefined}\n unitsCurrent={unitsCurrent}\n viewAfter={viewAfterForCurrentData}\n viewBefore={viewBeforeForCurrentData}\n />\n )\n }\n\n if (chartLibrary === \"gauge\") {\n return (\n <GaugeChart\n attributes={attributes}\n chartData={chartData as EasyPieChartData}\n chartMetadata={chartMetadata}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n chartLibrary={chartLibrary}\n chartHeight={chartHeight}\n chartWidth={chartWidth}\n colors={colors}\n chartUuid={chartUuid}\n dimensionsVisibility={dimensionsVisibility}\n isRemotelyControlled={isRemotelyControlled}\n legendFormatValue={legendFormatValue}\n orderedColors={orderedColors}\n hoveredRow={hoveredRow}\n hoveredX={hoveredX}\n onUpdateChartPanAndZoom={onUpdateChartPanAndZoom}\n setGlobalChartUnderlay={setGlobalChartUnderlay}\n setHoveredX={setHoveredX}\n setMinMax={setMinMax}\n showUndefined={showUndefined}\n unitsCurrent={unitsCurrent}\n viewAfter={viewAfterForCurrentData}\n viewBefore={viewBeforeForCurrentData}\n />\n )\n }\n\n if (chartLibrary === \"sparkline\") {\n return (\n <SparklineChart\n attributes={attributes}\n chartContainerElement={chartContainerElement}\n chartData={chartData as EasyPieChartData}\n chartMetadata={chartMetadata}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n dimensionsVisibility={dimensionsVisibility}\n isRemotelyControlled={isRemotelyControlled}\n orderedColors={orderedColors}\n unitsCurrent={unitsCurrent}\n viewAfterForCurrentData={viewAfterForCurrentData}\n viewBeforeForCurrentData={viewBeforeForCurrentData}\n />\n )\n }\n\n if (chartLibrary === \"d3pie\") {\n return (\n <D3pieChart\n attributes={attributes}\n chartContainerElement={chartContainerElement}\n chartData={chartData as D3pieChartData}\n chartMetadata={chartMetadata}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n dimensionsVisibility={dimensionsVisibility}\n hoveredRow={hoveredRow}\n hoveredX={hoveredX}\n isRemotelyControlled={isRemotelyControlled}\n legendFormatValue={legendFormatValue}\n orderedColors={orderedColors}\n setMinMax={setMinMax}\n showUndefined={showUndefined}\n unitsCurrent={unitsCurrent}\n />\n )\n }\n\n if (chartLibrary === \"peity\") {\n return (\n <PeityChart\n attributes={attributes}\n chartContainerElement={chartContainerElement}\n chartData={chartData as EasyPieChartData}\n chartMetadata={chartMetadata}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n orderedColors={orderedColors}\n />\n )\n }\n\n if (chartLibrary === \"google\") {\n return (\n <GoogleChart\n attributes={attributes}\n chartData={chartData as EasyPieChartData}\n chartMetadata={chartMetadata}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n orderedColors={orderedColors}\n unitsCurrent={unitsCurrent}\n />\n )\n }\n\n if (chartLibrary === \"textonly\") {\n return (\n <TextOnly\n attributes={attributes}\n chartData={chartData as EasyPieChartData}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n />\n )\n }\n\n if (chartLibrary === \"groupbox\") {\n return (\n <KubernetesGroupBoxes\n chartData={chartData}\n chartMetadata={chartMetadata}\n attributes={attributes}\n viewAfter={viewAfterForCurrentData}\n viewBefore={viewBeforeForCurrentData}\n hoveredRow={hoveredRow}\n hoveredX={hoveredX}\n showUndefined={showUndefined}\n />\n )\n }\n\n return (\n <DygraphChart\n attributes={attributes}\n chartData={chartData as DygraphData}\n chartMetadata={chartMetadata}\n chartElementClassName={chartElementClassName}\n chartElementId={chartElementId}\n chartLibrary={chartLibrary}\n colors={colors}\n chartUuid={chartUuid}\n dimensionsVisibility={dimensionsVisibility}\n hasEmptyData={hasEmptyData}\n hasLegend={hasLegend(attributes)}\n isRemotelyControlled={isRemotelyControlled}\n orderedColors={orderedColors}\n immediatelyDispatchPanAndZoom={immediatelyDispatchPanAndZoom}\n hoveredRow={hoveredRow}\n hoveredX={hoveredX}\n onUpdateChartPanAndZoom={onUpdateChartPanAndZoom}\n setGlobalChartUnderlay={setGlobalChartUnderlay}\n setHoveredX={setHoveredX}\n setMinMax={setMinMax}\n unitsCurrent={unitsCurrent}\n viewAfter={viewAfterForCurrentData}\n viewBefore={viewBeforeForCurrentData}\n />\n )\n}\n","import { useEffect, useRef } from \"react\"\nimport { isEmpty } from \"ramda\"\nimport { useMount } from \"react-use\"\n\nimport { ChartData, DygraphData } from \"domains/chart/chart-types\"\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartLibraryConfig } from \"domains/chart/utils/chartLibrariesSettings\"\n\n\ninterface UseShowValueOutsideArgument {\n attributes: Attributes\n chartData: ChartData\n chartSettings: ChartLibraryConfig\n hoveredRow: number\n legendFormatValue: ((v: number | string | null) => number | string)\n showUndefined: boolean\n}\n\n// example of the attribute:\n// show-value-of-iowait-at: \"system.cpu.iowait.1\"\n\nexport const useShowValueOutside = ({\n attributes,\n chartData,\n chartSettings,\n hoveredRow,\n legendFormatValue,\n showUndefined,\n}: UseShowValueOutsideArgument) => {\n // a ref to store found elements, just once per lifetime of component\n const showValueAttributesNodes = useRef<(HTMLElement | null)[]>([])\n\n // find the nodes that will have populated values\n useMount(() => {\n const { showValueOf } = attributes\n // showValueOf will be undefined if not used, but additional isEmpty check can prevent\n // regression performance issue in the future\n if (!showValueOf || isEmpty(showValueOf)) {\n return\n }\n const dimensionNames = chartData.dimension_names\n const dimensionIds = chartData.dimension_ids\n dimensionNames.forEach((dimensionName, i) => {\n const userElementId = showValueOf[`show-value-of-${dimensionName.toLowerCase()}`]\n || showValueOf[`show-value-of-${dimensionIds[i].toLowerCase()}-at`]\n\n // if element is not found, just add null\n showValueAttributesNodes.current = showValueAttributesNodes.current.concat(\n document.getElementById(userElementId),\n )\n })\n })\n\n useEffect(() => {\n if (showValueAttributesNodes.current.length) {\n const chartSettingCallOptions = chartSettings.options(attributes)\n const isFlipped = chartSettingCallOptions.includes(\"flip\")\n\n // \"objectrows\" is for d3pie, which has different data format\n if (chartData.format === \"json\" && !chartSettingCallOptions.includes(\"objectrows\")) {\n const { data } = (chartData as DygraphData).result\n const valueIndex = hoveredRow === -1\n ? (data.length - 1)\n : (hoveredRow) // because data for easy-pie-chart are flipped\n\n // yes, \"flipped\" value means chronological order (from oldest to newest) :)\n const rowIndex = isFlipped ? valueIndex : (data.length - valueIndex - 1)\n const row = data[rowIndex]\n\n chartData.dimension_names.forEach((dimensionName, dimensionIndex) => {\n const value = (showUndefined || !row)\n ? \"\"\n : legendFormatValue(row[dimensionIndex + 1])\n const element = showValueAttributesNodes.current[dimensionIndex]\n if (element) {\n element.innerText = `${value}`\n }\n })\n }\n }\n }, [attributes, chartData, chartSettings, hoveredRow, legendFormatValue, showUndefined])\n}\n","import { __, prop } from \"ramda\"\nimport React, { useEffect, useState, useCallback, useMemo, memo, useContext } from \"react\"\nimport { ThemeContext } from \"styled-components\"\nimport { useDebouncedCallback } from \"use-debounce\"\n\nimport {\n requestCommonColorsAction,\n setDefaultAfterAction,\n setGlobalPanAndZoomAction,\n setGlobalSelectionAction,\n} from \"domains/global/actions\"\nimport {\n createSelectAssignedColors,\n selectGlobalSelection,\n selectSyncPanAndZoom,\n selectSyncSelection,\n selectUnitsScalingMethod,\n} from \"domains/global/selectors\"\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { TimeRange } from \"types/common\"\nimport { MS_IN_SECOND, isTimestamp } from \"utils/utils\"\n\nimport { setChartPanAndZoomAction } from \"domains/chart/actions\"\n\nimport { getPanAndZoomStep } from \"../utils/get-pan-and-zoom-step\"\nimport { Attributes } from \"../utils/transformDataAttributes\"\nimport { chartLibrariesSettings } from \"../utils/chartLibrariesSettings\"\nimport { useFormatters } from \"../utils/formatters\"\nimport { ChartData, ChartMetadata } from \"../chart-types\"\n\nimport { ChartLegend } from \"./chart-legend\"\nimport { LegendToolbox } from \"./legend-toolbox\"\nimport { ResizeHandler } from \"./resize-handler\"\nimport { AbstractChart } from \"./abstract-chart\"\n\ninterface GlobalPanAndZoomState {\n after: number // timestamp in ms\n before: number // timestamp in ms\n masterID?: string\n shouldForceTimeRange?: boolean\n}\n\ninterface Props {\n attributes: Attributes\n chartContainerElement: HTMLElement\n chartData: ChartData\n chartMetadata: ChartMetadata\n chartHeight: number\n chartUuid: string\n chartWidth: number\n defaultAfter: number\n globalPanAndZoom: null | GlobalPanAndZoomState\n hasEmptyData: boolean\n isRemotelyControlled: boolean\n viewRangeForCurrentData: TimeRange\n viewRange: TimeRange\n selectedDimensions: string[]\n setSelectedDimensions: (newState: string[]) => void\n showLatestOnBlur: boolean\n}\n\nexport const Chart = memo(\n ({\n attributes,\n attributes: { chartLibrary },\n chartContainerElement,\n chartData,\n chartMetadata,\n chartHeight,\n chartUuid,\n chartWidth,\n defaultAfter,\n globalPanAndZoom,\n hasEmptyData,\n isRemotelyControlled,\n viewRangeForCurrentData,\n viewRange,\n selectedDimensions,\n setSelectedDimensions,\n showLatestOnBlur,\n }: Props) => {\n const themeContext = useContext(ThemeContext)\n const unitsScalingMethod = useSelector(selectUnitsScalingMethod)\n const chartSettings = chartLibrariesSettings[chartLibrary]\n const { hasLegend } = chartSettings\n const {\n units = chartMetadata.units,\n unitsCommon,\n unitsDesired = unitsScalingMethod,\n } = attributes\n\n // we need to have empty selectedDimensions work as {all enabled}, in case\n // new dimensions show up (when all are enabled, the new dimensions should also auto-enable)\n const dimensionsVisibility = useMemo(\n () =>\n chartData.dimension_names.map(dimensionName =>\n selectedDimensions.length === 0 ? true : selectedDimensions.includes(dimensionName)\n ),\n [chartData.dimension_names, selectedDimensions]\n )\n\n const shouldDisplayToolbox =\n hasLegend(attributes) && window.NETDATA.options.current.legend_toolbox\n\n const shouldDisplayResizeHandler =\n shouldDisplayToolbox &&\n window.NETDATA.options.current.resize_charts && // legacy way of turning off for print mode\n !attributes.hideResizeHandler\n\n const dispatch = useDispatch()\n const allDimensionNames = useMemo(() => {\n // metadata and chartData dimensions match each other, but we need to first parse\n // dimensions from metadata, to keep the same order (when browser parsers dimensions object,\n // it sorts them in *some* way which is hard to reproduce). And people can get used to colors\n // so let's keep them as they were before\n const dimensionNamesFromMetadata = Object.values(chartMetadata.dimensions).map(x => x.name)\n const additionalDimensionNamesFromData = chartData.dimension_names.filter(\n x => !dimensionNamesFromMetadata.includes(x)\n )\n return dimensionNamesFromMetadata.concat(additionalDimensionNamesFromData)\n }, [chartData.dimension_names, chartMetadata.dimensions])\n useEffect(() => {\n dispatch(\n requestCommonColorsAction({\n chartContext: chartMetadata.context,\n chartUuid,\n colorsAttribute: attributes.colors,\n commonColorsAttribute: attributes.commonColors,\n dimensionNames: allDimensionNames,\n })\n )\n }, [\n allDimensionNames,\n attributes.colors,\n attributes.commonColors,\n chartMetadata.context,\n chartUuid,\n dispatch,\n ])\n\n const { legendFormatValue, legendFormatValueDecimalsFromMinMax, unitsCurrent } = useFormatters({\n attributes,\n data: chartData,\n units,\n unitsCommon,\n unitsDesired,\n uuid: chartUuid,\n })\n\n const [localHoveredX, setLocalHoveredX] = useState<number | null>(null)\n\n const isSyncSelection = useSelector(selectSyncSelection)\n const handleSetHoveredX = useCallback(\n (newHoveredX, noMaster) => {\n if (isSyncSelection) {\n const action = noMaster\n ? { chartUuid: null, hoveredX: newHoveredX }\n : { chartUuid, hoveredX: newHoveredX }\n dispatch(setGlobalSelectionAction(action))\n } else {\n setLocalHoveredX(newHoveredX)\n }\n },\n [chartUuid, dispatch, isSyncSelection]\n )\n const globalHoveredX = useSelector(selectGlobalSelection)\n const hoveredX = isSyncSelection ? globalHoveredX : localHoveredX\n\n // time-frames for requested data (even when request is pending)\n const viewAfter = isTimestamp(viewRange[0]) ? viewRange[0] : chartData.after * MS_IN_SECOND\n const viewBefore = isTimestamp(viewRange[1]) ? viewRange[1] : chartData.before * MS_IN_SECOND\n\n const viewAfterForCurrentData = isTimestamp(viewRangeForCurrentData[0])\n ? viewRangeForCurrentData[0]\n : chartData.after * MS_IN_SECOND\n const viewBeforeForCurrentData = isTimestamp(viewRangeForCurrentData[1])\n ? viewRangeForCurrentData[1]\n : chartData.before * MS_IN_SECOND // when 'before' is 0 or negative\n\n const netdataFirst = chartData.first_entry * MS_IN_SECOND\n const netdataLast = chartData.last_entry * MS_IN_SECOND\n\n // old dashboard persists min duration based on first chartWidth, i assume it's a bug\n // and will update fixedMinDuration when width changes\n const fixedMinDuration = useMemo(\n () => Math.round((chartWidth / 30) * chartMetadata.update_every * MS_IN_SECOND),\n [chartMetadata.update_every, chartWidth]\n )\n\n const isSyncPanAndZoom = useSelector(selectSyncPanAndZoom)\n\n const setGlobalPanAndZoomDebounced = useDebouncedCallback(\n newGlobalPanAndZoom => {\n dispatch(setGlobalPanAndZoomAction(newGlobalPanAndZoom))\n },\n 400 // corresponds to global_pan_sync_time in old dashboard\n )\n\n const immediatelyDispatchPanAndZoom = useCallback(() => {\n setGlobalPanAndZoomDebounced.flush()\n }, [setGlobalPanAndZoomDebounced])\n\n /**\n * pan-and-zoom handler (both for toolbox and mouse events)\n */\n const handleUpdateChartPanAndZoom = useCallback(\n ({\n after,\n before,\n callback,\n shouldFlushImmediately = false,\n shouldForceTimeRange,\n shouldNotExceedAvailableRange,\n }) => {\n if (before < after) {\n return\n }\n let minDuration = fixedMinDuration\n\n const currentDuraton = Math.round(viewBefore - viewAfter)\n\n let afterForced = Math.round(after)\n let beforeForced = Math.round(before)\n const viewUpdateEvery = chartData.view_update_every * MS_IN_SECOND\n\n if (shouldNotExceedAvailableRange) {\n const first = netdataFirst + viewUpdateEvery\n const last = netdataLast + viewUpdateEvery\n // first check \"before\"\n if (beforeForced > last) {\n afterForced -= before - last\n beforeForced = last\n }\n\n if (afterForced < first) {\n afterForced = first\n }\n }\n\n // align them to update_every\n // stretching them further away\n afterForced -= afterForced % viewUpdateEvery\n beforeForced += viewUpdateEvery - (beforeForced % viewUpdateEvery)\n\n // the final wanted duration\n let wantedDuration = beforeForced - afterForced\n\n // to allow panning, accept just a point below our minimum\n if (currentDuraton - viewUpdateEvery < minDuration) {\n minDuration = currentDuraton - viewUpdateEvery\n }\n\n // we do it, but we adjust to minimum size and return false\n // when the wanted size is below the current and the minimum\n // and we zoom\n let doCallback = true\n if (wantedDuration < currentDuraton && wantedDuration < minDuration) {\n minDuration = fixedMinDuration\n\n const dt = (minDuration - wantedDuration) / 2\n beforeForced += dt\n afterForced -= dt\n wantedDuration = beforeForced - afterForced\n doCallback = false\n }\n\n const tolerance = viewUpdateEvery * 2\n const movement = Math.abs(beforeForced - viewBefore)\n\n if (\n Math.abs(currentDuraton - wantedDuration) <= tolerance &&\n movement <= tolerance &&\n doCallback\n ) {\n return\n }\n\n if (isSyncPanAndZoom) {\n setGlobalPanAndZoomDebounced.callback({\n after: afterForced,\n before: beforeForced,\n masterID: chartUuid,\n shouldForceTimeRange,\n })\n if (shouldFlushImmediately) {\n setGlobalPanAndZoomDebounced.flush()\n }\n } else {\n dispatch(\n setChartPanAndZoomAction({\n after: afterForced,\n before: beforeForced,\n id: chartUuid,\n shouldForceTimeRange,\n })\n )\n }\n\n if (doCallback && typeof callback === \"function\") {\n callback(afterForced, beforeForced)\n }\n },\n [\n chartData.view_update_every,\n chartUuid,\n dispatch,\n fixedMinDuration,\n isSyncPanAndZoom,\n netdataFirst,\n netdataLast,\n setGlobalPanAndZoomDebounced,\n viewAfter,\n viewBefore,\n ]\n )\n\n /**\n * toolbox handlers\n */\n const handleToolBoxPanAndZoom = useCallback(\n (after: number, before: number) => {\n const newAfter = Math.max(after, netdataFirst)\n const newBefore = Math.min(before, netdataLast)\n handleUpdateChartPanAndZoom({\n after: newAfter,\n before: newBefore,\n shouldForceTimeRange: true,\n shouldFlushImmediately: true,\n })\n },\n [handleUpdateChartPanAndZoom, netdataFirst, netdataLast]\n )\n\n const handleToolboxLeftClick = useCallback(\n (event: React.MouseEvent) => {\n const step = (viewBefore - viewAfter) * getPanAndZoomStep(event)\n const newBefore = viewBefore - step\n const newAfter = viewAfter - step\n if (newAfter >= netdataFirst) {\n handleToolBoxPanAndZoom(newAfter, newBefore)\n }\n },\n [handleToolBoxPanAndZoom, netdataFirst, viewAfter, viewBefore]\n )\n\n const handleToolboxRightClick = useCallback(\n (event: React.MouseEvent) => {\n const timeWindow = viewBefore - viewAfter\n const step = timeWindow * getPanAndZoomStep(event)\n const newBefore = Math.min(viewBefore + step, netdataLast)\n const newAfter = newBefore - timeWindow\n handleToolBoxPanAndZoom(newAfter, newBefore)\n },\n [handleToolBoxPanAndZoom, netdataLast, viewAfter, viewBefore]\n )\n\n const handleToolboxZoomInClick = useCallback(\n (event: React.MouseEvent) => {\n const panAndZoomStep = getPanAndZoomStep(event) * 0.8\n if (!globalPanAndZoom) {\n dispatch(\n setDefaultAfterAction({\n after: Math.round(defaultAfter / (panAndZoomStep + 1)),\n })\n )\n return\n }\n // if visible time range is much bigger than available time range in history, first zoom-in\n // should just fit to available range\n if (viewBefore - viewAfter > (netdataLast - netdataFirst) * 1.2) {\n handleToolBoxPanAndZoom(netdataFirst, netdataLast)\n return\n }\n const dt = ((viewBefore - viewAfter) * panAndZoomStep) / 2\n const newAfter = viewAfter + dt\n const newBefore = viewBefore - dt\n handleToolBoxPanAndZoom(newAfter, newBefore)\n },\n [\n defaultAfter,\n dispatch,\n globalPanAndZoom,\n handleToolBoxPanAndZoom,\n netdataFirst,\n netdataLast,\n viewAfter,\n viewBefore,\n ]\n )\n\n const handleToolboxZoomOutClick = useCallback(\n (event: React.MouseEvent) => {\n const panAndZoomStep = getPanAndZoomStep(event) * 0.8\n if (!globalPanAndZoom) {\n dispatch(\n setDefaultAfterAction({\n after: Math.round(defaultAfter * (panAndZoomStep + 1)),\n })\n )\n return\n }\n const dt =\n ((viewBefore - viewAfter) / (1.0 - panAndZoomStep * 0.8) - (viewBefore - viewAfter)) / 2\n const newAfter = viewAfter - dt\n const newBefore = viewBefore + dt\n handleToolBoxPanAndZoom(newAfter, newBefore)\n },\n [defaultAfter, dispatch, globalPanAndZoom, handleToolBoxPanAndZoom, viewAfter, viewBefore]\n )\n\n /**\n * assign colors\n */\n const selectAssignedColors = useMemo(\n () =>\n createSelectAssignedColors({\n chartContext: chartMetadata.context,\n chartUuid,\n colorsAttribute: attributes.colors,\n commonColorsAttribute: attributes.commonColors,\n }),\n [attributes.colors, attributes.commonColors, chartMetadata, chartUuid]\n )\n const colors = useSelector(selectAssignedColors)\n const orderedColors = useMemo(\n () => chartData.dimension_names.map(prop(__, colors)),\n [chartData, colors]\n )\n\n if (!colors) {\n return <span /> // wait for createSelectAssignedColors reducer result to come back\n }\n\n const isTimeVisible = hoveredX && hoveredX >= viewAfter && hoveredX <= viewBefore\n const viewUpdateEvery = chartData.view_update_every * MS_IN_SECOND\n const hoveredRow = isTimeVisible\n ? Math.floor(((hoveredX as number) - chartData.after * MS_IN_SECOND) / viewUpdateEvery)\n : -1\n\n const isLegendOnBottom = attributes.legendPosition === \"bottom\"\n\n const legendToolbox = (\n <LegendToolbox\n onToolboxLeftClick={handleToolboxLeftClick}\n onToolboxRightClick={handleToolboxRightClick}\n onToolboxZoomInClick={handleToolboxZoomInClick}\n onToolboxZoomOutClick={handleToolboxZoomOutClick}\n />\n )\n\n const resizeHandler = shouldDisplayResizeHandler && (\n <ResizeHandler\n chartContainerElement={chartContainerElement}\n chartUuid={chartUuid}\n heightId={attributes.heightId}\n isLegendOnBottom={isLegendOnBottom}\n />\n )\n\n return (\n <>\n <AbstractChart\n // remount on theme change\n key={themeContext.name}\n attributes={attributes}\n chartContainerElement={chartContainerElement}\n chartData={chartData}\n chartMetadata={chartMetadata}\n chartLibrary={chartLibrary}\n colors={colors}\n chartUuid={chartUuid}\n chartHeight={chartHeight}\n chartWidth={chartWidth}\n dimensionsVisibility={dimensionsVisibility}\n hasEmptyData={hasEmptyData}\n onUpdateChartPanAndZoom={handleUpdateChartPanAndZoom}\n immediatelyDispatchPanAndZoom={immediatelyDispatchPanAndZoom}\n isRemotelyControlled={isRemotelyControlled}\n legendFormatValue={legendFormatValue}\n orderedColors={orderedColors}\n hoveredX={hoveredX}\n hoveredRow={hoveredRow}\n setHoveredX={handleSetHoveredX}\n setMinMax={([min, max]) => legendFormatValueDecimalsFromMinMax(min, max)}\n showLatestOnBlur={showLatestOnBlur}\n unitsCurrent={unitsCurrent}\n viewAfterForCurrentData={viewAfterForCurrentData}\n viewBeforeForCurrentData={viewBeforeForCurrentData}\n />\n {hasLegend(attributes) && (\n <ChartLegend\n attributes={attributes}\n chartUuid={chartUuid}\n chartMetadata={chartMetadata}\n chartLibrary={chartLibrary}\n colors={colors}\n hoveredX={hoveredX}\n hoveredRow={hoveredRow}\n legendFormatValue={legendFormatValue}\n selectedDimensions={selectedDimensions}\n setSelectedDimensions={setSelectedDimensions}\n showLatestOnBlur={showLatestOnBlur}\n unitsCurrent={unitsCurrent}\n viewBefore={viewBefore}\n legendToolbox={legendToolbox}\n resizeHandler={resizeHandler}\n />\n )}\n {shouldDisplayToolbox && !isLegendOnBottom && legendToolbox}\n {!isLegendOnBottom && resizeHandler}\n </>\n )\n }\n)\n","import styled from \"styled-components\"\nimport { getColor, Icon } from \"@netdata/netdata-ui\"\n\nexport const DropdownItem = styled.div`\n display: flex;\n flex-direction: start;\n align-items: center;\n color: ${getColor([\"neutral\", \"limedSpruce\"])};\n white-space: nowrap;\n & > svg use {\n fill: ${getColor([\"neutral\", \"limedSpruce\"])};\n }\n`\n\nexport const DropdownItemLabel = styled.span`\n margin-left: 12px;\n`\n\nexport const DotsBtn = styled(Icon)`\n width: 6px;\n height: 10px;\n cursor: pointer;\n & use {\n fill: ${getColor([\"neutral\", \"limedSpruce\"])};\n & :hover {\n fill: ${getColor([\"neutral\", \"regentgrey\"])};\n }\n }\n`\n","import React, { useState, ReactNode } from \"react\"\n\nimport { Attributes } from \"domains/chart/utils/transformDataAttributes\"\nimport { ChartMetadata } from \"domains/chart/chart-types\"\n\nimport { List, SimpleListItem } from \"@rmwc/list\"\nimport { MenuSurface, MenuSurfaceAnchor } from \"@rmwc/menu\"\n\nimport * as S from \"./styled\"\n\ninterface DropdownMenuCallbackProps {\n attributes: Attributes,\n chartMetadata: ChartMetadata,\n chartID: string,\n}\n\nexport type DropdownMenu = {\n icon: ReactNode,\n label: string,\n onClick: (dropdownMenuCallbackProps: DropdownMenuCallbackProps) => void,\n}[]\n\ninterface Props {\n attributes: Attributes\n chartID: string\n chartMetadata: ChartMetadata\n dropdownMenu: DropdownMenu\n}\n\nexport const ChartDropdown = ({\n attributes,\n chartID,\n chartMetadata,\n dropdownMenu,\n}: Props) => {\n const [isOpen, setIsOpen] = useState(false)\n\n const handleClose = () => {\n setIsOpen(false)\n }\n\n return (\n <>\n <S.DotsBtn\n name=\"dots_2x3\"\n onClick={() => {\n setIsOpen(true)\n }}\n />\n <MenuSurfaceAnchor>\n <MenuSurface open={isOpen} onClose={handleClose}>\n <List>\n {dropdownMenu.map(({ icon, label, onClick }) => (\n <SimpleListItem\n key={label}\n text={(\n <S.DropdownItem>\n {icon}\n <S.DropdownItemLabel>\n {label}\n </S.DropdownItemLabel>\n </S.DropdownItem>\n )}\n onClick={() => {\n onClick({ attributes, chartMetadata, chartID })\n handleClose()\n }}\n />\n ))}\n </List>\n </MenuSurface>\n </MenuSurfaceAnchor>\n </>\n )\n}\n","import { prop } from \"ramda\"\nimport styled, { keyframes } from \"styled-components\"\n\nimport { getColor } from \"@netdata/netdata-ui\"\n\nconst circleAnimation = keyframes`\n 0% {\n opacity: .1;\n }\n 50% {\n opacity: .5;\n }\n 100% {\n opacity: .1;\n }\n`\n\n\nexport const SpinnerContainer = styled.div<{ top: number, right: number }>`\n position: absolute;\n top: ${prop(\"top\")}px;\n right: ${prop(\"right\")}px;\n display: flex;\n`\n\nexport const Circle = styled.div<{ size: number }>`\n width: ${prop(\"size\")}px;\n height: ${prop(\"size\")}px;\n background: ${getColor(\"border\")};\n border-radius: 50%;\n animation: 1s linear infinite both ${circleAnimation};\n`\n\nexport const Circle2 = styled(Circle)<{ spaceBetween: number }>`\n animation-delay: .3s; \n margin-left: ${prop(\"spaceBetween\")}px;\n`\n\nexport const Circle3 = styled(Circle)<{ spaceBetween: number }>`\n animation-delay: .6s; \n margin-left: ${prop(\"spaceBetween\")}px;\n`\n","import React from \"react\"\n\nimport * as S from \"./styled\"\n\ninterface Props {\n chartLibrary: string\n}\nexport const ChartSpinner = ({\n chartLibrary,\n}: Props) => {\n const top = chartLibrary === \"dygraph\" ? 33 : 0\n const right = chartLibrary === \"dygraph\" ? 8 : 0\n const size = chartLibrary === \"dygraph\" ? 10 : 7\n const spaceBetween = chartLibrary === \"dygraph\" ? 4 : 2\n return (\n <S.SpinnerContainer top={top} right={right}>\n <S.Circle size={size} />\n <S.Circle2 size={size} spaceBetween={spaceBetween} />\n <S.Circle3 size={size} spaceBetween={spaceBetween} />\n </S.SpinnerContainer>\n )\n}\n","import styled from \"styled-components\"\n\nimport { chartDropdownZIndex } from \"styles/z-index\"\n\nexport const ChartDropdownContainer = styled.div`\n position: absolute;\n top: 0;\n left: 40px;\n width: 20px;\n height: 20px;\n z-index: ${chartDropdownZIndex};\n`\n","export const notificationsZIndex = \"z-index: 50;\"\n\nexport const chartDropdownZIndex = 10\n\nexport const spacesBarZIndex = 8\n\nexport const spacePanelZIndex = 6\n\nexport const appHeaderZIndex = 5\n\n// the same as in cloud\nexport const portalSidebarZIndex = \"z-index: 35;\"\nexport const customDropdownZIndex = \"z-index: 45;\"\nexport const dialogsZIndex = 60\n","import { cond, always, T } from \"ramda\"\nimport axios from \"axios\"\nimport React, { useEffect, useState, useMemo, useLayoutEffect } from \"react\"\nimport { useThrottle, useUpdateEffect, useUnmount, useDebounce } from \"react-use\"\n\nimport { AppStateT } from \"store/app-state\"\nimport { useSelector, useDispatch } from \"store/redux-separate-context\"\n\nimport {\n selectGlobalPanAndZoom,\n selectGlobalSelection,\n selectShouldEliminateZeroDimensions,\n selectPanAndZoomDataPadding,\n selectSnapshot,\n selectSpacePanelTransitionEndIsActive,\n selectDefaultAfter,\n} from \"domains/global/selectors\"\nimport { serverDefault } from \"utils/server-detection\"\nimport { CHART_UNMOUNTED } from \"utils/netdata-sdk\"\nimport { getCorrectedPoints } from \"utils/fill-missing-data\"\n\nimport { fallbackUpdateTimeInterval, panAndZoomDelay } from \"../../constants\"\nimport { getChartURLOptions } from \"../../utils/get-chart-url-options\"\nimport { chartLibrariesSettings } from \"../../utils/chartLibrariesSettings\"\nimport { Attributes } from \"../../utils/transformDataAttributes\"\nimport { getChartPixelsPerPoint } from \"../../utils/get-chart-pixels-per-point\"\nimport { useFetchNewDataClock } from \"../../hooks/use-fetch-new-data-clock\"\n\nimport { fetchChartAction, fetchDataAction } from \"../../actions\"\nimport {\n selectChartData,\n selectChartFetchDataParams,\n makeSelectChartMetadataRequest,\n selectChartPanAndZoom,\n selectChartIsFetchingData,\n selectChartViewRange,\n} from \"../../selectors\"\nimport {\n ChartData,\n ChartMetadata,\n D3pieChartData,\n DygraphData,\n EasyPieChartData,\n} from \"../../chart-types\"\n\nimport { Loader } from \"../loader\"\nimport { Chart } from \"../chart\"\nimport { ChartDropdown, DropdownMenu } from \"../chart-dropdown\"\nimport { ChartSpinner } from \"../chart-spinner/chart-spinner\"\n\nimport * as S from \"./styled\"\nimport \"./chart-with-loader.css\"\n\nexport type RenderCustomElementForDygraph = (selectedChartConfiguration: {\n attributes: Attributes\n onAttributesChange: any\n chartMetadata: ChartMetadata\n chartID: string\n chartData: ChartData | null\n}) => JSX.Element\n\nconst dimensionsAggrMethodMap = {\n \"sum-of-abs\": \"sum\",\n}\n\nconst emptyArray = [] as any\n\nexport type Props = {\n attributes: Attributes\n chartUuid: string\n uuid?: string\n dropdownMenu?: DropdownMenu\n externalChartMetadata?: ChartMetadata\n portalNode: HTMLElement\n renderCustomElementForDygraph?: RenderCustomElementForDygraph\n onAttributesChange?: any\n}\n\nexport const ChartWithLoader = ({\n attributes,\n chartUuid,\n uuid,\n dropdownMenu,\n externalChartMetadata,\n portalNode,\n renderCustomElementForDygraph,\n onAttributesChange,\n}: Props) => {\n /**\n * fetch chart details\n */\n const { host = serverDefault, id, nodeIDs } = attributes\n const dispatch = useDispatch()\n const selectChartMetadataRequest = useMemo(makeSelectChartMetadataRequest, [])\n const { chartMetadata, isFetchingDetails } = useSelector((state: AppStateT) =>\n selectChartMetadataRequest(state, { chartId: id, id: chartUuid })\n )\n const actualChartMetadata = externalChartMetadata || chartMetadata\n useEffect(() => {\n if (!chartMetadata && !isFetchingDetails && !externalChartMetadata) {\n dispatch(\n fetchChartAction.request({\n chart: id,\n id: chartUuid,\n host,\n nodeIDs,\n })\n )\n }\n }, [\n id,\n chartUuid,\n dispatch,\n host,\n isFetchingDetails,\n chartMetadata,\n externalChartMetadata,\n nodeIDs,\n uuid,\n ])\n\n // todo local state option\n const globalPanAndZoom = useSelector(selectGlobalPanAndZoom)\n const chartPanAndZoom = useSelector((state: AppStateT) =>\n selectChartPanAndZoom(state, { id: chartUuid })\n )\n const panAndZoom = chartPanAndZoom || globalPanAndZoom\n\n const isPanAndZoomMaster =\n (!!globalPanAndZoom && globalPanAndZoom.masterID === chartUuid) || Boolean(chartPanAndZoom)\n const shouldForceTimeRange = panAndZoom?.shouldForceTimeRange || false\n\n // (isRemotelyControlled === false) only during globalPanAndZoom, when chart is panAndZoomMaster\n // and when no toolbox is used at that time\n const isRemotelyControlled = !panAndZoom || !isPanAndZoomMaster || shouldForceTimeRange // used when zooming/shifting in toolbox\n\n const fetchDataParams = useSelector((state: AppStateT) =>\n selectChartFetchDataParams(state, { id: chartUuid })\n )\n const viewRange = useSelector((state: AppStateT) =>\n selectChartViewRange(state, { id: chartUuid })\n )\n const chartData = useSelector((state: AppStateT) => selectChartData(state, { id: chartUuid }))\n const isFetchingData = useSelector((state: AppStateT) =>\n selectChartIsFetchingData(state, { id: chartUuid })\n )\n\n const hoveredX = useSelector(selectGlobalSelection)\n\n // periodical update of newest data\n // default to 2000ms. When chartMetadata has been fetched, use chartMetadata.update_every\n // if chartData has been fetched, use chartData.view_update_every instead\n // todo add support to \"data-update-every\" attribute\n const viewUpdateEvery = cond([\n [always(!!chartData), () => (chartData as ChartData).view_update_every * 1000],\n [\n always(!!actualChartMetadata),\n () => (actualChartMetadata as ChartMetadata).update_every * 1000,\n ],\n [T, always(fallbackUpdateTimeInterval)],\n ])()\n const [shouldFetch, setShouldFetch] = useFetchNewDataClock({\n areCriteriaMet: !panAndZoom && !hoveredX,\n preferedIntervalTime: viewUpdateEvery,\n })\n\n const panAndZoomThrottled = useThrottle(panAndZoom, panAndZoomDelay)\n useEffect(() => {\n setShouldFetch(true)\n }, [panAndZoomThrottled, setShouldFetch])\n\n const defaultAfter = useSelector(selectDefaultAfter)\n // when after/before changes, don't wait for next interval, just fetch immediately\n useUpdateEffect(() => {\n setShouldFetch(true)\n }, [\n attributes.after,\n attributes.before,\n defaultAfter,\n attributes.dimensions,\n attributes.aggrMethod,\n attributes.groupBy,\n ])\n\n const { before: initialBefore = window.NETDATA.chartDefaults.before } = attributes\n\n // attributes.after should be now used only for old custom dashboard\n // and in the future for setting timeframe per-chart\n const liveModeAfter = attributes.after || defaultAfter\n\n const chartSettings = chartLibrariesSettings[attributes.chartLibrary]\n const { hasLegend } = chartSettings\n\n // todo optimize by using resizeObserver (optionally)\n const boundingClientRect = portalNode.getBoundingClientRect()\n\n // from old dashboard\n const chartWidth = boundingClientRect.width - (hasLegend(attributes) ? 140 : 0)\n const chartHeight = boundingClientRect.height\n\n const isShowingSnapshot = Boolean(useSelector(selectSnapshot))\n const shouldEliminateZeroDimensions =\n useSelector(selectShouldEliminateZeroDimensions) || isShowingSnapshot\n const shouldUsePanAndZoomPadding = useSelector(selectPanAndZoomDataPadding)\n\n const { CancelToken } = axios\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const cancelTokenSource = useMemo(() => CancelToken.source(), [])\n useUnmount(() => {\n cancelTokenSource.cancel(CHART_UNMOUNTED)\n })\n\n /**\n * spinner state\n * show spinner when it's fetching for more than 2 seconds\n * hide spinner immediately when it's not fetching\n */\n const [shouldShowSpinnerDebounced, setShouldShowSpinnerDebounced] = useState(false)\n const shouldShowSpinner = shouldShowSpinnerDebounced && isFetchingData\n useDebounce(\n () => {\n if (isFetchingData) {\n setShouldShowSpinnerDebounced(true)\n }\n },\n 2000,\n [isFetchingData]\n )\n useEffect(() => {\n if (!isFetchingData && shouldShowSpinnerDebounced) {\n setShouldShowSpinnerDebounced(false)\n }\n }, [isFetchingData, shouldShowSpinnerDebounced])\n\n /**\n * fetch data\n */\n useEffect(() => {\n if (shouldFetch && actualChartMetadata && !isFetchingData) {\n // todo can be overridden by main.js\n const forceDataPoints = window.NETDATA.options.force_data_points\n\n let after\n let before\n let newViewRange\n let pointsMultiplier = 1\n\n if (panAndZoom) {\n if (isPanAndZoomMaster) {\n after = Math.round(panAndZoom.after / 1000)\n before = Math.round(panAndZoom.before / 1000)\n\n newViewRange = [after, before]\n\n if (shouldUsePanAndZoomPadding) {\n const requestedPadding = Math.round((before - after) / 2)\n after -= requestedPadding\n before += requestedPadding\n pointsMultiplier = 2\n }\n } else {\n after = Math.round(panAndZoom.after / 1000)\n before = Math.round(panAndZoom.before / 1000)\n pointsMultiplier = 1\n }\n } else {\n // no panAndZoom\n before = initialBefore\n after = liveModeAfter\n pointsMultiplier = 1\n }\n\n newViewRange = (newViewRange || [after, before]).map(x => x * 1000) as [number, number]\n\n const dataPoints =\n attributes.points ||\n Math.round(chartWidth / getChartPixelsPerPoint({ attributes, chartSettings }))\n const points = forceDataPoints || dataPoints * pointsMultiplier\n\n const shouldForceTimeWindow = attributes.forceTimeWindow || Boolean(defaultAfter)\n // if we want to add fake points, we need first need to request less\n // to have the desired frequency\n // this will be removed when Agents will support forcing time-window between points\n const correctedPoints = shouldForceTimeWindow\n ? getCorrectedPoints({\n after,\n before,\n firstEntry: actualChartMetadata.first_entry,\n points,\n })\n : null\n\n const group = attributes.method || window.NETDATA.chartDefaults.method\n setShouldFetch(false)\n dispatch(\n fetchDataAction.request({\n // properties to be passed to API\n host,\n context: actualChartMetadata.context,\n chart: actualChartMetadata.id,\n format: chartSettings.format,\n points: correctedPoints || points,\n group,\n gtime: attributes.gtime || 0,\n options: getChartURLOptions(attributes, shouldEliminateZeroDimensions),\n after: after || null,\n before: before || null,\n dimensions: attributes.dimensions,\n labels: attributes.labels,\n postGroupBy: attributes.postGroupBy,\n postAggregationMethod: attributes.postAggregationMethod,\n aggrMethod: attributes.aggrMethod,\n aggrGroups: attributes.aggrGroups,\n // @ts-ignore\n dimensionsAggrMethod:\n dimensionsAggrMethodMap[attributes.dimensionsAggrMethod] ||\n attributes.dimensionsAggrMethod,\n nodeIDs,\n httpMethod: attributes.httpMethod,\n groupBy: attributes.groupBy,\n\n // properties for the reducer\n fetchDataParams: {\n // we store it here so it is only available when data is fetched\n // those params should be synced with data\n fillMissingPoints: correctedPoints ? points - correctedPoints : undefined,\n isRemotelyControlled,\n viewRange: newViewRange,\n },\n id: chartUuid,\n cancelTokenSource,\n })\n )\n }\n }, [\n attributes,\n actualChartMetadata,\n chartSettings,\n chartUuid,\n chartWidth,\n defaultAfter,\n dispatch,\n hasLegend,\n host,\n initialBefore,\n isFetchingData,\n isPanAndZoomMaster,\n isRemotelyControlled,\n liveModeAfter,\n panAndZoom,\n portalNode,\n setShouldFetch,\n shouldEliminateZeroDimensions,\n shouldUsePanAndZoomPadding,\n shouldFetch,\n cancelTokenSource,\n nodeIDs,\n uuid,\n ])\n\n useSelector(selectSpacePanelTransitionEndIsActive)\n\n const externalSelectedDimensions = attributes?.selectedDimensions\n const [selectedDimensions, setSelectedDimensions] = useState<string[]>(\n externalSelectedDimensions || emptyArray\n )\n\n useLayoutEffect(() => {\n if (externalSelectedDimensions) {\n setSelectedDimensions(externalSelectedDimensions)\n }\n }, [externalSelectedDimensions])\n\n useLayoutEffect(() => {\n setSelectedDimensions(externalSelectedDimensions || emptyArray)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [attributes?.groupBy])\n\n const customElementForDygraph = useMemo(\n () =>\n renderCustomElementForDygraph &&\n renderCustomElementForDygraph({\n onAttributesChange,\n attributes,\n chartMetadata: actualChartMetadata as ChartMetadata,\n chartData,\n chartID: id,\n }),\n [\n onAttributesChange,\n renderCustomElementForDygraph,\n attributes,\n id,\n actualChartMetadata,\n chartData,\n ]\n )\n\n // eslint-disable-next-line max-len\n const hasEmptyData =\n (chartData as DygraphData | D3pieChartData | null)?.result?.data?.length === 0 ||\n (chartData as EasyPieChartData | null)?.result?.length === 0\n\n if (!chartData || !actualChartMetadata) {\n return (\n <>\n <Loader\n // Loader should remount when that flag is changed, because inside\n // there's an oldschool bootstrap icon which doesn't handle updates well\n key={`${hasEmptyData}`}\n hasEmptyData={hasEmptyData}\n containerNode={portalNode}\n />\n {shouldShowSpinner && <ChartSpinner chartLibrary={attributes.chartLibrary} />}\n </>\n )\n }\n\n return (\n <>\n {hasEmptyData && (\n <Loader key={`${hasEmptyData}`} hasEmptyData={hasEmptyData} containerNode={portalNode} />\n )}\n <Chart\n attributes={attributes}\n chartContainerElement={portalNode}\n chartData={chartData}\n chartMetadata={actualChartMetadata}\n chartUuid={chartUuid}\n chartHeight={chartHeight}\n chartWidth={chartWidth}\n defaultAfter={defaultAfter}\n globalPanAndZoom={globalPanAndZoom}\n hasEmptyData={hasEmptyData}\n isRemotelyControlled={fetchDataParams.isRemotelyControlled}\n // view range that updates only when data is fetched\n viewRangeForCurrentData={fetchDataParams.viewRange}\n // view range that updates when requesting and fetching of data\n viewRange={viewRange!}\n selectedDimensions={selectedDimensions}\n setSelectedDimensions={setSelectedDimensions}\n showLatestOnBlur={!panAndZoom}\n />\n {shouldShowSpinner && <ChartSpinner chartLibrary={attributes.chartLibrary} />}\n {dropdownMenu && dropdownMenu.length > 0 && (\n <S.ChartDropdownContainer>\n <ChartDropdown\n dropdownMenu={dropdownMenu}\n chartID={id}\n attributes={attributes}\n chartMetadata={actualChartMetadata}\n />\n </S.ChartDropdownContainer>\n )}\n {customElementForDygraph}\n </>\n )\n}\n","import { useEffect, useState } from \"react\"\nimport { useInterval } from \"react-use\"\n\nimport { useSelector } from \"store/redux-separate-context\"\nimport {\n selectHasWindowFocus,\n selectStopUpdatesWhenFocusIsLost,\n selectGlobalPause,\n} from \"domains/global/selectors\"\nimport { BIGGEST_INTERVAL_NUMBER } from \"utils/biggest-interval-number\"\nimport { isPrintMode } from \"domains/dashboard/utils/parse-url\"\n\ntype UseFetchNewDataClock = (arg: {\n areCriteriaMet: boolean\n preferedIntervalTime: number\n}) => [boolean, (shouldFetch: boolean) => void]\nexport const useFetchNewDataClock: UseFetchNewDataClock = ({\n areCriteriaMet,\n preferedIntervalTime,\n}) => {\n const hasWindowFocus = useSelector(selectHasWindowFocus)\n const stopUpdatesWhenFocusIsLost = useSelector(selectStopUpdatesWhenFocusIsLost)\n const globalPause = useSelector(selectGlobalPause)\n\n const shouldBeUpdating = !(!hasWindowFocus && stopUpdatesWhenFocusIsLost) && !globalPause\n\n const [shouldFetch, setShouldFetch] = useState<boolean>(true)\n const [shouldFetchImmediatelyAfterFocus, setShouldFetchImmediatelyAfterFocus] = useState(false)\n\n useEffect(() => {\n if (shouldFetchImmediatelyAfterFocus && shouldBeUpdating) {\n setShouldFetchImmediatelyAfterFocus(false)\n setShouldFetch(true)\n }\n }, [shouldFetchImmediatelyAfterFocus, setShouldFetchImmediatelyAfterFocus, shouldBeUpdating])\n\n // don't use setInterval when we loose focus\n const intervalTime =\n (shouldBeUpdating || !shouldFetchImmediatelyAfterFocus) && !isPrintMode\n ? preferedIntervalTime\n : BIGGEST_INTERVAL_NUMBER\n useInterval(() => {\n if (areCriteriaMet) {\n if (!shouldBeUpdating) {\n setShouldFetchImmediatelyAfterFocus(true)\n return\n }\n setShouldFetch(true)\n }\n // when there's no focus, don't ask for updated data\n }, intervalTime)\n return [shouldFetch, setShouldFetch]\n}\n","import { Attributes } from \"./transformDataAttributes\"\nimport { ChartLibraryConfig } from \"./chartLibrariesSettings\"\n\ntype GetChartPixelsPerPoint = (arg: {\n attributes: Attributes,\n chartSettings: ChartLibraryConfig,\n}) => number\n\nexport const getChartPixelsPerPoint: GetChartPixelsPerPoint = ({\n attributes, chartSettings,\n}) => {\n const {\n pixelsPerPoint: pixelsPerPointAttribute,\n } = attributes\n if (typeof pixelsPerPointAttribute === \"number\") {\n return pixelsPerPointAttribute\n }\n const pixelsPerPointSetting = chartSettings.pixelsPerPoint(attributes)\n\n return Math.max(...[\n pixelsPerPointSetting,\n window.NETDATA.options.current.pixels_per_point,\n ].filter((px) => typeof px === \"number\"))\n}\n","import { prop, pick } from \"ramda\"\nimport { createSelector } from \"reselect\"\n\nimport { AppStateT } from \"store/app-state\"\n\nimport { storeKey } from \"./constants\"\n\nconst selectDashboardDomain = (state: AppStateT) => state[storeKey]\n\nexport const selectIsSnapshotMode = createSelector(\n selectDashboardDomain,\n prop(\"isSnapshotMode\"),\n)\n\nexport const selectSnapshotOptions = createSelector(\n selectDashboardDomain,\n pick([\"snapshotCharts\", \"snapshotDataPoints\"]),\n)\n","import React, { useEffect } from \"react\"\n\nimport { MS_IN_SECOND } from \"utils/utils\"\nimport { serverDefault } from \"utils/server-detection\"\nimport { selectIsSnapshotMode, selectSnapshotOptions } from \"domains/dashboard/selectors\"\nimport { selectGlobalPanAndZoom } from \"domains/global/selectors\"\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { TimeRangeObjT } from \"types/common\"\n\nimport { Attributes } from \"../utils/transformDataAttributes\"\nimport { fetchDataForSnapshotAction } from \"../actions\"\nimport { chartLibrariesSettings } from \"../utils/chartLibrariesSettings\"\nimport { getChartURLOptions } from \"../utils/get-chart-url-options\"\n\ninterface SnapshotLoaderProps {\n attributes: Attributes\n chartUuid: string\n}\nconst SnapshotLoader = ({\n attributes,\n chartUuid,\n}: SnapshotLoaderProps) => {\n const host = attributes.host || serverDefault\n const { snapshotDataPoints } = useSelector(selectSnapshotOptions)\n const group = attributes.method || window.NETDATA.chartDefaults.method\n const { chartLibrary } = attributes\n const chartSettings = chartLibrariesSettings[chartLibrary]\n\n const globalPanAndZoom = useSelector(selectGlobalPanAndZoom)\n const after = (globalPanAndZoom as TimeRangeObjT).after / MS_IN_SECOND\n const before = (globalPanAndZoom as TimeRangeObjT).before / MS_IN_SECOND\n\n const dispatch = useDispatch()\n useEffect(() => {\n dispatch(fetchDataForSnapshotAction.request({\n // properties to be passed to API\n host,\n context: attributes.id,\n chart: attributes.id,\n format: chartSettings.format,\n points: snapshotDataPoints as number,\n group,\n gtime: attributes.gtime || 0,\n // for snapshots, always eliminate zero dimensions\n options: getChartURLOptions(attributes, true),\n after: after || null,\n before: before || null,\n dimensions: attributes.dimensions,\n aggrMethod: attributes.aggrMethod,\n nodeIDs: attributes.nodeIDs,\n chartLibrary,\n id: chartUuid,\n groupBy: attributes.groupBy,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }) // todo fetch based on state\n return null\n}\n\n\ninterface SnapshotLoaderContainerProps {\n attributes: Attributes\n chartUuid: string\n}\nexport const SnapshotLoaderContainer = ({\n attributes,\n chartUuid,\n}: SnapshotLoaderContainerProps) => {\n const isSnapshotMode = useSelector(selectIsSnapshotMode)\n if (!isSnapshotMode) {\n return null\n }\n return <SnapshotLoader attributes={attributes} chartUuid={chartUuid} />\n}\n","import React, { memo } from \"react\"\nimport { createPortal } from \"react-dom\"\n\nimport { getAttributes } from \"../utils/transformDataAttributes\"\nimport { ChartWithLoader } from \"./chart-with-loader\"\nimport { DisableOutOfView } from \"./disable-out-of-view\"\nimport { SnapshotLoaderContainer } from \"./snapshot-loader\"\n\nconst getNodesArray = () => Array.from(document.querySelectorAll(\"[data-netdata]\"))\n\nexport const Portals = memo(() => {\n const nodes = getNodesArray()\n return (\n <>\n {nodes.map((node, index) => {\n const attributesMapped = getAttributes(node)\n const chartId = `${attributesMapped.id}-${index}`\n return (\n createPortal(\n <>\n <DisableOutOfView\n attributes={attributesMapped}\n chartUuid={chartId}\n portalNode={(node as HTMLElement)}\n >\n <ChartWithLoader\n attributes={attributesMapped}\n // todo change to uuid generator (when we disconnect dashboard.js)\n chartUuid={chartId}\n portalNode={(node as HTMLElement)}\n />\n </DisableOutOfView>\n <SnapshotLoaderContainer\n attributes={attributesMapped}\n chartUuid={chartId}\n />\n </>,\n node,\n )\n )\n })}\n </>\n )\n})\n","import { useEffect, useState } from \"react\"\n\nimport { axiosInstance } from \"utils/api\"\n\nexport const useHttp = <T = unknown>(\n url: string | undefined,\n shouldMakeCall : boolean = true,\n isExternal?: boolean,\n) => {\n const [isFetching, setIsFetching] = useState(false)\n const [isError, setIsError] = useState(false)\n const [data, setData] = useState<T | null>(null)\n useEffect(() => {\n if (shouldMakeCall && url) {\n const options = isExternal\n ? { headers: null, withCredentials: false }\n : {}\n\n setIsFetching(true)\n axiosInstance.get(url, options)\n .then((r) => {\n if (r.data) {\n setData(r.data)\n setIsError(false)\n setIsFetching(false)\n }\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.warn(`error fetching ${url}`, error)\n setIsError(true)\n setIsFetching(false)\n })\n }\n }, [isExternal, shouldMakeCall, url])\n // force triple instead of array\n return [data, isFetching, isError] as [T | null, boolean, boolean]\n}\n","import { ReactNode, useEffect, useRef } from \"react\"\nimport { createPortal } from \"react-dom\"\n\nconst modalRoot = document.getElementById(\"modal-root\") as HTMLElement\n\ntype Props = {\n children: ReactNode\n}\nexport const ModalPortal = ({ children }: Props) => {\n const element = useRef(document.createElement(\"div\"))\n useEffect(() => {\n modalRoot.appendChild(element.current)\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n modalRoot.removeChild(element.current)\n }\n }, [])\n\n return createPortal(children, element.current)\n}\n","import React, { useRef, useEffect } from \"react\"\nimport classNames from \"classnames\"\n\nimport { useSelector } from \"store/redux-separate-context\"\nimport { ModalPortal } from \"domains/dashboard/components/modal-portal\"\nimport {\n selectAmountOfCharts, selectAmountOfFetchedCharts, selectNameOfAnyFetchingChart,\n} from \"domains/chart/selectors\"\n\nimport \"./print-modal.scss\"\n\nconst TIMEOUT_DURATION_TO_MAKE_SURE_ALL_CHARTS_HAVE_BEEN_RENDERED = 1000\n\nexport const PrintModal = () => {\n const printModalElement = useRef<HTMLDivElement>(null)\n const isFetchingMetrics = true\n\n useEffect(() => {\n // todo replace bootstrap with newer solution (custom or react-compatible library)\n if (printModalElement.current) {\n const $element = window.$(printModalElement.current)\n $element.modal(\"show\")\n }\n }) // render just once\n\n const amountOfCharts = useSelector(selectAmountOfCharts)\n const amountOfFetchedCharts = useSelector(selectAmountOfFetchedCharts)\n const nameOfAnyFetchingChart = useSelector(selectNameOfAnyFetchingChart)\n\n const percentage = amountOfCharts === 0\n ? 0\n : (amountOfFetchedCharts / amountOfCharts) * 100\n\n useEffect(() => {\n if (percentage === 100) {\n setTimeout(() => {\n // in case browser will not be able to close the window\n window.$(printModalElement.current).modal(\"hide\")\n window.print()\n window.close()\n }, TIMEOUT_DURATION_TO_MAKE_SURE_ALL_CHARTS_HAVE_BEEN_RENDERED)\n }\n }, [percentage])\n\n\n const progressBarText = nameOfAnyFetchingChart\n && `${Math.round(percentage)}%, ${nameOfAnyFetchingChart}`\n\n\n return (\n <ModalPortal>\n <div\n ref={printModalElement}\n className=\"modal fade\"\n id=\"printModal\"\n tabIndex={-1}\n role=\"dialog\"\n aria-labelledby=\"printModalLabel\"\n data-keyboard=\"false\"\n data-backdrop=\"static\"\n >\n <div className=\"modal-dialog modal-lg\" role=\"document\">\n <div className=\"modal-content\">\n <div className=\"modal-header\">\n <button\n type=\"button\"\n className={classNames(\n \"close\",\n { \"print-modal__close-button--disabled\": isFetchingMetrics },\n )}\n data-dismiss=\"modal\"\n aria-label=\"Close\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <h4 className=\"modal-title\" id=\"printModalLabel\">\n Preparing dashboard for printing...\n </h4>\n </div>\n <div className=\"modal-body\">\n Please wait while we initialize and render all the charts on the dashboard.\n <div\n className=\"progress progress-striped active\"\n style={{ height: \"2em\" }}\n >\n <div\n id=\"printModalProgressBar\"\n className=\"progress-bar progress-bar-info\"\n role=\"progressbar\"\n aria-valuenow={percentage}\n aria-valuemin={0}\n aria-valuemax={100}\n style={{\n minWidth: \"2em\",\n width: `${percentage}%`,\n }}\n >\n <span\n id=\"printModalProgressBarText\"\n style={{\n paddingLeft: 10,\n paddingTop: 4,\n fontSize: \"1.2em\",\n textAlign: \"left\",\n width: \"100%\",\n position: \"absolute\",\n display: \"block\",\n color: \"black\",\n }}\n >\n {progressBarText}\n </span>\n </div>\n </div>\n The print dialog will appear as soon as we finish rendering the page.\n </div>\n <div className=\"modal-footer\" />\n </div>\n </div>\n </div>\n </ModalPortal>\n )\n}\n","import styled from \"styled-components\"\nimport { getSizeBy, getColor } from \"@netdata/netdata-ui\"\n\nexport const SocialMediaContainer = styled.div`\n width: 185px;\n padding: ${getSizeBy(2)};\n background: ${getColor(\"borderSecondary\")};\n\n font-size: 12px;\n margin-bottom: ${getSizeBy(3)};\n`\n\nexport const FirstRow = styled.div`\n display: flex;\n justify-content: space-between;\n`\n\nexport const GithubCopy = styled.div`\n\n`\n\nexport const GithubCopyLine = styled.div`\n\n`\n\nexport const SocialMediaLink = styled.a`\n &, &:hover {\n color: ${getColor(\"main\")};\n }\n`\n\nexport const GithubStarQuestion = styled(SocialMediaLink)``\n\nexport const GithubIcon = styled(SocialMediaLink)`\n font-size: 24px;\n`\n\nexport const TwitterIcon = styled(SocialMediaLink)`\n font-size: 17px;\n`\n\nexport const FacebookIcon = styled(SocialMediaLink)`\n font-size: 23px;\n`\n\nexport const Separator = styled.div`\n margin-top: ${getSizeBy(2)};\n border-top: 1px solid ${getColor(\"separator\")};\n\n`\nexport const SecondRow = styled.div`\n margin-top: ${getSizeBy(2)};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const SecondRowText = styled.span`\n font-size: 10px;\n`\n","import React from \"react\"\n\nimport * as S from \"./styled\"\n\nexport const SidebarSocialMedia = () => (\n <S.SocialMediaContainer>\n <S.FirstRow>\n <S.GithubCopy>\n <S.GithubCopyLine>\n Do you like Netdata?\n </S.GithubCopyLine>\n <S.GithubStarQuestion href=\"https://github.com/netdata/netdata/\" target=\"_blank\">\n Give us a star!\n </S.GithubStarQuestion>\n </S.GithubCopy>\n <S.GithubIcon href=\"https://github.com/netdata/netdata/\" target=\"_blank\">\n <i className=\"fab fa-github\" />\n </S.GithubIcon>\n </S.FirstRow>\n <S.Separator />\n <S.SecondRow>\n <S.SecondRowText>\n And share the word!\n </S.SecondRowText>\n <S.TwitterIcon href=\"https://twitter.com/linuxnetdata/\" target=\"_blank\">\n <i className=\"fab fa-twitter\" />\n </S.TwitterIcon>\n <S.FacebookIcon href=\"https://www.facebook.com/linuxnetdata/\" target=\"_blank\">\n <i className=\"fab fa-facebook\" />\n </S.FacebookIcon>\n </S.SecondRow>\n </S.SocialMediaContainer>\n)\n","import React, { useRef } from \"react\"\nimport { createPortal } from \"react-dom\"\n\ninterface Props {\n children: React.ReactNode\n}\nexport const SidebarSocialMediaPortal = ({\n children,\n}: Props) => {\n const element = useRef(document.querySelector(\"#sidebar-end-portal-container\"))\n return createPortal(children, element.current!)\n}\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { ToastContainer, ToastContainerProps } from \"react-toastify\"\nimport \"react-toastify/dist/ReactToastify.min.css\"\n\nimport { getColor } from \"@netdata/netdata-ui\"\n\nimport { notificationsZIndex } from \"styles/z-index\"\n\nconst WrappedToastContainer = ({\n className,\n ...rest\n}: ToastContainerProps & { className?: string }) => (\n <div className={className}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <ToastContainer {...rest} closeButton={false} />\n </div>\n)\n\nexport const NotificationsContainer = styled(WrappedToastContainer)<ToastContainerProps>`\n .Toastify__toast-container {\n position: fixed;\n width: unset;\n min-width: 400px;\n max-width: 500px;\n ${notificationsZIndex};\n color: ${getColor([\"neutral\", \"limedSpruce\"])};\n }\n .Toastify__toast {\n padding: 0;\n padding-top: 5px;\n }\n .Toastify__toast--error {\n background: ${getColor([\"red\", \"lavender\"])};\n border: 1px solid ${getColor(\"error\")};\n }\n .Toastify__toast--warning {\n }\n .Toastify__toast--success {\n background: ${getColor([\"green\", \"frostee\"])};\n border: 1px solid ${getColor(\"success\")};\n }\n .Toastify__toast-body {\n }\n .Toastify__progress-bar {\n bottom: unset;\n top: 0;\n }\n .Toastify__progress-bar--success {\n background-color: ${getColor(\"success\")};\n }\n .Toastify__progress-bar--error {\n background-color: ${getColor(\"error\")};\n }\n`\n","import React from \"react\"\nimport { Icon, Flex } from \"@netdata/netdata-ui\"\n\nconst Item = ({ icon, children, hasBorder }) => (\n <Flex\n gap={2}\n border={hasBorder && { side: \"right\", color: \"separator\" }}\n alignItems=\"center\"\n padding={[0, 3, 0, 0]}\n height=\"100%\"\n >\n {!!icon && <Icon name={icon} color=\"bright\" height=\"15px\" />}\n {children}\n </Flex>\n)\n\nexport default Item\n","import React from \"react\"\nimport { Text } from \"@netdata/netdata-ui\"\nimport Item from \"../item\"\nimport { useSelector } from \"@/src/store/redux-separate-context\"\n\nconst hostNameSelector = state => {\n const snapshot = state.global.snapshot\n const data = state.global.chartsMetadata.data\n\n if (!snapshot && !data) return \"\"\n return snapshot ? snapshot.hostname : data.hostname\n}\n\nconst Node = () => {\n const hostname = useSelector(hostNameSelector)\n\n return (\n <Item icon=\"node_hollow\">\n <Text data-testid={`header-nodename-${hostname}`} color=\"bright\" strong truncate>\n {hostname}\n </Text>\n </Item>\n )\n}\n\nexport default Node\n","import React from \"react\"\nimport { Flex, TextSmall } from \"@netdata/netdata-ui\"\n\nconst tooltipBackground = [\"neutral\", \"black\"]\n\nconst CustomTooltip = ({ children, isBasic }) => (\n <Flex\n padding={[1.5, 2]}\n margin={[2]}\n background={tooltipBackground}\n round={1}\n {...(!isBasic && { width: { max: \"300px\" } })}\n >\n <TextSmall color=\"bright\">{children}</TextSmall>\n </Flex>\n)\n\nexport default CustomTooltip\n","import React from \"react\"\nimport CustomTooltip from \"@/src/components/tooltips/customTooltip\"\n\nconst getContent = (content, { isBasic }) => {\n const contentNode = typeof content === \"function\" ? content() : content\n if (typeof content === \"string\" || isBasic) {\n return <CustomTooltip isBasic={isBasic}>{contentNode}</CustomTooltip>\n }\n return contentNode\n}\n\nexport default getContent\n","import React, { useCallback } from \"react\"\nimport { Tooltip as BaseTooltip } from \"@netdata/netdata-ui\"\nimport getContent from \"./getContent\"\n\nconst Tooltip = ({ children, content, isBasic, ...rest }) => {\n const getTooltipContent = useCallback(() => getContent(content, { isBasic }), [content, isBasic])\n return (\n <BaseTooltip plain animation content={getTooltipContent} {...rest}>\n {children}\n </BaseTooltip>\n )\n}\n\nexport default Tooltip\n","import React, { useCallback } from \"react\"\nimport { Flex, Button } from \"@netdata/netdata-ui\"\nimport Tooltip from \"@/src/components/tooltips\"\nimport { setGlobalPauseAction } from \"domains/global/actions\"\nimport { useDispatch } from \"store/redux-separate-context\"\n\nconst Options = () => {\n const dispatch = useDispatch()\n const onClick = useCallback(() => dispatch(setGlobalPauseAction()), [dispatch])\n return (\n <Flex gap={2} data-testid=\"header-options-button\">\n <Tooltip content=\"Import a Netdata snapshot\" align=\"bottom\" plain>\n <Button\n flavour=\"borderless\"\n neutral\n themeType=\"dark\"\n data-toggle=\"modal\"\n data-target=\"#loadSnapshotModal\"\n icon=\"download\"\n />\n </Tooltip>\n <Tooltip content=\"Export a Netdata snapshot\" align=\"bottom\" plain>\n <Button\n onClick={onClick}\n flavour=\"borderless\"\n neutral\n themeType=\"dark\"\n data-toggle=\"modal\"\n data-target=\"#saveSnapshotModal\"\n icon=\"upload\"\n />\n </Tooltip>\n <Tooltip content=\"Print the dashboard\" align=\"bottom\" plain>\n <Button\n flavour=\"borderless\"\n neutral\n themeType=\"dark\"\n data-toggle=\"modal\"\n data-target=\"#printPreflightModal\"\n icon=\"print\"\n />\n </Tooltip>\n </Flex>\n )\n}\n\nexport default Options\n","import React from \"react\"\nimport { Button } from \"@netdata/netdata-ui\"\nimport Tooltip from \"@/src/components/tooltips\"\n\nimport { useHttp } from \"hooks/use-http\"\n\nconst NETDATA_LATEST_VERSION_URL = \"https://api.github.com/repos/netdata/netdata/releases/latest\"\nconst NETDATA_LATEST_GCS_VERSION_URL =\n \"https://www.googleapis.com/storage/v1/b/netdata-nightlies/o/latest-version.txt\"\n\nconst transformGcsVersionResponse = data => data.replace(/(\\r\\n|\\n|\\r| |\\t)/gm, \"\")\n\nconst transformGithubResponse = data => data?.tag_name.replace(/(\\r\\n|\\n|\\r| |\\t)/gm, \"\")\n\nconst versionsMatch = (v1, v2) => {\n if (v1 === v2) {\n return true\n }\n let s1 = v1.split(\".\")\n let s2 = v2.split(\".\")\n // Check major version\n let n1 = parseInt(s1[0].substring(1, 2), 10)\n let n2 = parseInt(s2[0].substring(1, 2), 10)\n if (n1 < n2) return false\n if (n1 > n2) return true\n\n // Check minor version\n n1 = parseInt(s1[1], 10)\n n2 = parseInt(s2[1], 10)\n if (n1 < n2) return false\n if (n1 > n2) return true\n\n // Split patch: format could be e.g. 0-22-nightly\n s1 = s1[2].split(\"-\")\n s2 = s2[2].split(\"-\")\n\n n1 = parseInt(s1[0], 10)\n n2 = parseInt(s2[0], 10)\n if (n1 < n2) return false\n if (n1 > n2) return true\n\n n1 = s1.length > 1 ? parseInt(s1[1], 10) : 0\n n2 = s2.length > 1 ? parseInt(s2[1], 10) : 0\n if (n1 < n2) return false\n return true\n}\n\nconst VersionControl = ({ currentVersion, releaseChannel }) => {\n const isStableReleaseChannel = releaseChannel === \"stable\"\n const [githubVersion] = useHttp(NETDATA_LATEST_VERSION_URL, isStableReleaseChannel, true)\n\n const [gcsVersionResponse] = useHttp(NETDATA_LATEST_GCS_VERSION_URL, !isStableReleaseChannel)\n const [mediaLinkResponse] = useHttp(gcsVersionResponse?.mediaLink, Boolean(gcsVersionResponse))\n\n const latestVersion = isStableReleaseChannel\n ? transformGithubResponse(githubVersion)\n : mediaLinkResponse\n ? transformGcsVersionResponse(mediaLinkResponse)\n : null\n\n if (!latestVersion) {\n return null\n }\n const isNewVersionAvailable = !versionsMatch(currentVersion, latestVersion)\n\n return (\n <Tooltip content={isNewVersionAvailable ? \"Need help?\" : \"Check Version\"} align=\"bottom\" plain>\n <Button\n data-testid=\"header-version-control-button\"\n flavour=\"borderless\"\n themeType=\"dark\"\n small\n neutral={!isNewVersionAvailable}\n warning={isNewVersionAvailable}\n name={isNewVersionAvailable ? \"update_pending\" : \"update\"}\n icon={isNewVersionAvailable ? \"update_pending\" : \"update\"}\n data-toggle=\"modal\"\n data-target=\"#updateModal\"\n />\n </Tooltip>\n )\n}\n\nexport default VersionControl\n","import React from \"react\"\nimport VersionControl from \"components/app-header/components/versionControl\"\nimport { useSelector } from \"@/src/store/redux-separate-context\"\n\nconst versionSelector = state => {\n const { data } = state.global.chartsMetadata\n\n if (!data) return null\n\n const { version, release_channel: releaseChannel } = data\n return {\n version,\n releaseChannel,\n }\n}\n\nconst Version = () => {\n const data = useSelector(versionSelector)\n return (\n data && <VersionControl currentVersion={data.version} releaseChannel={data.releaseChannel} />\n )\n}\n\nexport default Version\n","import { useState, useCallback } from \"react\"\n\n/**\n * @example\n * const [value, toggle, toggleOn, toggleOff] = useToggle(false);\n *\n * @param {Boolean} initialValue\n */\n\nconst useToggle = (initialValue = false) => {\n const [value, setToggle] = useState(!!initialValue)\n const toggle = useCallback(() => setToggle(oldValue => !oldValue), [])\n const toggleOn = useCallback(() => setToggle(true), [])\n const toggleOff = useCallback(() => setToggle(false), [])\n\n return [value, toggle, toggleOn, toggleOff]\n}\n\nexport default useToggle\n","import { useEffect, useState } from \"react\"\n\nconst useLocalStorage = (key, defaultValue) => {\n const [value, setValue] = useState(() => getValueFromStorage(key, defaultValue))\n\n useEffect(() => localStorage.setItem(key, JSON.stringify(value)), [key, value])\n\n return [value, setValue]\n}\n\nconst getValueFromStorage = (key, defaultValue = \"\") =>\n JSON.parse(localStorage.getItem(key)) ?? defaultValue\n\nexport default useLocalStorage\n","import styled from \"styled-components\"\nimport { getColor, getSizeBy, Icon } from \"@netdata/netdata-ui\"\nimport { Menu } from \"@rmwc/menu\"\n\nexport const RootContainer = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n`\n\nexport const StyledMenu = styled(Menu)``\n\nexport const DropdownContainer = styled.div`\n cursor: pointer;\n color: ${getColor(\"bright\")};\n .mdc-menu-surface {\n border-radius: 0;\n .mdc-list {\n padding: 0;\n }\n .mdc-list-item {\n padding: 0 ${getSizeBy(5)} 0 ${getSizeBy(5)};\n font-size: 14px;\n height: ${getSizeBy(6)};\n }\n }\n`\n\nexport const ListContainer = styled.div`\n padding: ${getSizeBy(3)} 0;\n`\n\nexport const OpenerIcon = styled(Icon)`\n flex-shrink: 0;\n flex-grow: 0;\n margin-left: ${({ noMargin }) => (noMargin ? \"unset\" : \"16px\")};\n fill: ${getColor(\"bright\")};\n width: 10px;\n height: 5px;\n`\n","import styled from \"styled-components\"\nimport { getColor, getSizeBy, Icon, Drop } from \"@netdata/netdata-ui\"\nimport { Dropdown } from \"@/src/components/mdx-components/dropdown\"\nimport { dialogsZIndex, customDropdownZIndex } from \"@/src/styles/z-index\"\n\nexport const PickerBox = styled.div`\n display: flex;\n position: relative;\n min-width: ${getSizeBy(102)};\n min-height: ${getSizeBy(43)};\n flex-direction: column;\n align-items: flex-end;\n background-color: ${getColor(\"mainBackground\")};\n color: ${getColor(\"text\")};\n z-index: ${dialogsZIndex};\n border-radius: 8px;\n`\n\nexport const StyledTimePeriod = styled.span`\n margin-top: ${getSizeBy(3)};\n cursor: pointer;\n width: 187px;\n height: ${getSizeBy(2)};\n &:first-of-type {\n margin-top: ${getSizeBy(1)};\n }\n &:last-of-type {\n margin-bottom: ${getSizeBy(1)};\n }\n & > span:hover {\n color: ${getColor(\"textLite\")};\n }\n`\nexport const StyledCustomTimePeriod = styled.span`\n margin: ${getSizeBy(1)} ${getSizeBy(3)} 0;\n color: ${({ isSelected, theme }) => getColor(isSelected ? \"primary\" : \"text\")({ theme })};\n cursor: pointer;\n &:first-of-type {\n margin-top: 0;\n }\n &:hover {\n color: ${getColor(\"textLite\")};\n }\n`\n\nexport const StyledDropdown = styled(Dropdown)`\n width: 88px;\n height: 32px;\n padding-top: 8px;\n padding-bottom: 8px;\n padding-left: 8px;\n padding-right: 7px;\n border: 1px solid ${getColor(\"border\")};\n box-sizing: border-box;\n border-radius: 4px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${getColor(\"text\")};\n .mdc-menu-surface--anchor {\n .mdc-menu-surface--open {\n ${customDropdownZIndex}\n margin-top: ${getSizeBy(2)};\n background: ${getColor(\"mainBackground\")};\n border-radius: 4px;\n }\n }\n .mdc-list {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n`\nexport const DropdownIcon = styled(Icon)`\n fill: ${getColor(\"text\")};\n width: 12px;\n height: 12px;\n`\n\nexport const CustomInput = styled.input`\n border: 1px solid ${getColor(\"border\")};\n color: inherit;\n background: ${getColor(\"mainBackground\")};\n box-sizing: border-box;\n border-radius: 4px;\n padding: 4px;\n width: 32px;\n height: 32px;\n margin-left: 10px;\n margin-right: 10px;\n outline: none;\n &:focus {\n border: 1px solid ${getColor(\"primary\")};\n }\n`\nexport const StyledDrop = styled(Drop).attrs({\n background: \"mainBackground\",\n round: 2,\n margin: [4, 0, 0],\n border: { side: \"all\", color: \"elementBackground\" },\n animation: true,\n})`\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n`\nexport const StyledHR = styled.hr`\n border: none;\n margin: 0;\n border-left: 1px solid ${getColor(\"borderSecondary\")};\n height: 284px;\n`\n","import React, { useRef } from \"react\"\nimport { List } from \"@rmwc/list\"\nimport { MenuSurfaceAnchor, MenuSurface } from \"@rmwc/menu\"\nimport { RootContainer, ListContainer, DropdownContainer, OpenerIcon } from \"./styled\"\n\nexport const Dropdown = ({\n title,\n children,\n className,\n renderTitle,\n isOpen = false,\n onMenuToggle,\n anchorCorner = \"bottomStart\",\n renderOpener,\n}) => {\n const ref = useRef()\n\n const handleOpenState = () => {\n onMenuToggle(!isOpen)\n }\n\n const handleClose = () => {\n onMenuToggle(false)\n }\n\n return (\n <DropdownContainer className={className}>\n <MenuSurfaceAnchor>\n <MenuSurface ref={ref} open={isOpen} onClose={handleClose} anchorCorner={anchorCorner}>\n {typeof children === \"function\" ? (\n isOpen && (\n <ListContainer>\n <List>{children({ maxHeight: ref.current?.root.ref.style.maxHeight })}</List>\n </ListContainer>\n )\n ) : (\n <ListContainer>\n <List>{children}</List>\n </ListContainer>\n )}\n </MenuSurface>\n <RootContainer onClick={handleOpenState}>\n {title || (renderTitle && renderTitle())}\n {renderOpener ? (\n renderOpener()\n ) : (\n <OpenerIcon name=\"triangle_down\" noMargin={Boolean(renderTitle)} />\n )}\n </RootContainer>\n </MenuSurfaceAnchor>\n </DropdownContainer>\n )\n}\n","import React, { memo, useCallback } from \"react\"\nimport { Text } from \"@netdata/netdata-ui\"\nimport { StyledTimePeriod } from \"./styled\"\n\nconst TimePeriod = ({ value, period, resolution, isSelected, setTimeRange, tagging }) => {\n const onClick = useCallback(\n () => setTimeRange(value, resolution),\n [value, resolution, setTimeRange]\n )\n return (\n <StyledTimePeriod\n key={value}\n onClick={onClick}\n data-ga={`date-picker::click-quick-selector::${tagging}::${-value}`}\n data-testid=\"timePeriod-value\"\n >\n <Text color={isSelected ? \"primary\" : \"text\"}>{period}</Text>\n </StyledTimePeriod>\n )\n}\n\nexport default memo(TimePeriod)\n","import { format, formatDistanceStrict, parse, getTime, getUnixTime, add, isMatch } from \"date-fns\"\n\nconst MINUTE = 60\nconst HOUR = MINUTE * 60\nconst DAY = HOUR * 24\nconst MONTH = 30 * DAY\n\nexport const maxTimePeriodInUnix = 94694400\nexport const dateResolutions = [\"minutes\", \"hours\", \"days\", \"months\"]\n\nconst resolutionsMapping = {\n minutes: MINUTE,\n hours: HOUR,\n days: DAY,\n months: MONTH,\n}\n\nexport const getCustomTimePeriod = (after, resolution) =>\n Math.round(after / resolutionsMapping[resolution])\n\nexport const parseInputPeriod = (timeCorrection, resolution) => {\n const customRange = add(new Date(0), {\n [resolution]: timeCorrection,\n })\n return -getUnixTime(customRange)\n}\n\nconst focusTaggingMap = {\n startDate: \"start\",\n endDate: \"finish\",\n}\n\nexport const getFocusTagging = focusedInput => focusTaggingMap[focusedInput]\n\nexport const timePeriods = [\n { period: \"Last 5 minutes\", value: -5 * MINUTE, resolution: \"minutes\" },\n { period: \"Last 15 minutes\", value: -15 * MINUTE, resolution: \"minutes\" },\n { period: \"Last 30 minutes\", value: -30 * MINUTE, resolution: \"minutes\" },\n { period: \"Last 2 hours\", value: -2 * HOUR, resolution: \"hours\" },\n { period: \"Last 6 hours\", value: -6 * HOUR, resolution: \"hours\" },\n { period: \"Last 12 hours\", value: -12 * HOUR, resolution: \"hours\" },\n { period: \"Last Day\", value: -DAY, resolution: \"days\" },\n { period: \"Last 2 Days\", value: -2 * DAY, resolution: \"days\" },\n { period: \"Last 7 Days\", value: -7 * DAY, resolution: \"days\" },\n]\n\nexport const formatDates = (startDate, endDate) => {\n const formattedStartDate = format(startDate, \"MMMM d yyyy, H:mm:ss\")\n const formattedEndDate = format(endDate, \"MMMM d yyyy, H:mm:ss\")\n return {\n formattedStartDate,\n formattedEndDate,\n }\n}\n\nexport const formatOffset = offset => {\n if (!offset) return \"+00:00\"\n const splitOffset = offset.toString().split(\".\")\n const mathSign = splitOffset[0] > 0 ? \"+\" : \"-\"\n const absoluteNumber = Math.abs(splitOffset[0]).toString()\n const firstPart = `${mathSign}${absoluteNumber.padStart(2, 0)}`\n return splitOffset.length > 1\n ? `${firstPart}:${String(splitOffset[1] * 0.6).padEnd(2, 0)}`\n : `${firstPart}:00`\n}\n\nexport const getDateWithOffset = (date, utcOffset) => {\n const formattedDate = isMatch(date, \"MMMM d yyyy, H:mm\")\n ? date\n : parse(date, \"MMMM d yyyy, H:mm\", Date.now())\n return parse(`${formattedDate} ${formatOffset(utcOffset)}`, \"MMMM d yyyy, H:mm xxx\", Date.now())\n}\n\nexport const getTimePeriod = (startDate, endDate) =>\n formatDistanceStrict(getTime(startDate), getTime(endDate))\n","import React from \"react\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport TimePeriod from \"./timePeriod\"\nimport { timePeriods } from \"./utils\"\n\nconst TimePeriods = ({ handleTimePeriodChange, selectedDate, tagging }) => (\n <Flex\n column\n justifyContent=\"start\"\n alignItems=\"start\"\n height={{ max: \"240px\" }}\n overflow={{ vertical: \"scroll\" }}\n data-testid=\"timePeriods\"\n >\n {timePeriods.map(({ period, value, resolution }) => (\n <TimePeriod\n key={value}\n value={value}\n period={period}\n resolution={resolution}\n setTimeRange={handleTimePeriodChange}\n isSelected={selectedDate === value}\n tagging={tagging}\n />\n ))}\n </Flex>\n)\n\nexport default TimePeriods\n","import React, { useCallback, useEffect, useState } from \"react\"\nimport { isValid, add, getUnixTime } from \"date-fns\"\nimport { Flex, Text } from \"@netdata/netdata-ui\"\nimport {\n getCustomTimePeriod,\n parseInputPeriod,\n dateResolutions,\n maxTimePeriodInUnix,\n} from \"./utils\"\nimport { StyledDropdown, DropdownIcon, CustomInput, StyledCustomTimePeriod } from \"./styled\"\n\nconst CustomTimePeriod = ({ handleTimePeriodChange, value, resolution, tagging }) => {\n const getInputValue = () => (value <= 0 ? getCustomTimePeriod(-value, resolution) : 0)\n const [inputValue, setInputValue] = useState(getInputValue)\n const [isDropdownOpen, toggleDropdown] = useState(false)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => setInputValue(getInputValue()), [value])\n\n const onChange = useCallback(e => setInputValue(e.target.value), [])\n\n const onBlur = useCallback(\n e => {\n const currentValue = Number(e.currentTarget.value)\n const isValidInput =\n !Number.isNaN(currentValue) && Number.isInteger(currentValue) && currentValue > 0\n const timePeriod = add(new Date(0), {\n [resolution]: currentValue,\n })\n const isValidTimePeriod =\n isValidInput && isValid(timePeriod) && getUnixTime(timePeriod) <= maxTimePeriodInUnix\n if (isValidTimePeriod)\n return handleTimePeriodChange(parseInputPeriod(currentValue, resolution), resolution)\n return value <= 0 ? setInputValue(getCustomTimePeriod(-value, resolution)) : setInputValue(0)\n },\n [resolution, value, handleTimePeriodChange]\n )\n\n const onChangeResolution = useCallback(\n newResolution => {\n return () => {\n handleTimePeriodChange(parseInputPeriod(inputValue, newResolution), newResolution)\n toggleDropdown(false)\n }\n },\n [inputValue, handleTimePeriodChange]\n )\n\n const renderTitle = () => (\n <Flex alignItems=\"center\" flexWrap={false} width=\"100%\">\n <Text padding={[0, 4, 0, 0]}>{resolution}</Text>\n <DropdownIcon name=\"triangle_down\" />\n </Flex>\n )\n return (\n <Flex\n justifyContent=\"start\"\n alignItems=\"center\"\n height={8}\n data-ga={`date-picker::click-last-integer::${tagging}`}\n data-testid=\"customTimePeriod\"\n >\n <Text>Last</Text>\n <CustomInput\n value={inputValue}\n onChange={onChange}\n onBlur={onBlur}\n data-ga={`date-picker::click-last-integer::${tagging}::${inputValue}`}\n data-testid=\"timePeriod-timeInput\"\n />\n <StyledDropdown\n isOpen={isDropdownOpen}\n onMenuToggle={toggleDropdown}\n renderTitle={renderTitle}\n renderOpener={() => null}\n >\n {() =>\n dateResolutions.map(dateResolution => (\n <StyledCustomTimePeriod\n key={dateResolution}\n onClick={onChangeResolution(dateResolution)}\n data-ga={`date-picker::click-last-time-${dateResolution}::${tagging}`}\n data-testid=\"timePeriod-option\"\n >\n {dateResolution}\n </StyledCustomTimePeriod>\n ))\n }\n </StyledDropdown>\n </Flex>\n )\n}\n\nexport default CustomTimePeriod\n","import React from \"react\"\nimport DatePickerLib from \"react-datepicker\"\nimport \"react-datepicker/dist/react-datepicker.css\"\n\nconst DatePicker = ({\n selected,\n selectsStart = false,\n selectsEnd = false,\n startDate,\n endDate,\n onChange,\n minDate,\n maxDate,\n dateFormat = \"MM/dd/yyyy\",\n open = false,\n startOpen = false,\n inline = false,\n selectsRange = false,\n monthsShown = 1,\n showPopperArrow = true,\n calendarContainer = null,\n}) => (\n <DatePickerLib\n selected={selected}\n onChange={onChange}\n selectsStart={selectsStart}\n selectsEnd={selectsEnd}\n startDate={startDate}\n endDate={endDate}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormat}\n open={open}\n startOpen={startOpen}\n inline={inline}\n selectsRange={selectsRange}\n monthsShown={monthsShown}\n showPopperArrow={showPopperArrow}\n calendarContainer={calendarContainer}\n />\n)\n\nexport default DatePicker\n","import { getColor, getRgbColor } from \"@netdata/netdata-ui\"\nimport styled from \"styled-components\"\n\nexport const StyledDateInput = styled.input`\n width: 100%;\n text-align: center;\n border: 1px solid ${getColor(\"border\")};\n color: inherit;\n background: ${getColor(\"mainBackground\")};\n box-sizing: border-box;\n border-radius: 4px;\n padding: 4px;\n height: 32px;\n margin-left: 20px;\n margin-right: 20px;\n outline: none;\n &:focus {\n border: 1px solid ${getColor(\"primary\")};\n }\n`\nexport const StyledCalendar = styled.div`\n background: ${getColor(\"mainBackground\")};\n border: 0;\n .react-datepicker {\n &__navigation {\n top: 8px;\n &-icon::before {\n border-color: ${getColor(\"text\")};\n }\n }\n &__header {\n background: ${getColor(\"mainBackground\")};\n border: 0;\n .react-datepicker__current-month {\n color: ${getColor(\"main\")};\n font-weight: normal;\n }\n .react-datepicker__day-name {\n color: ${getColor(\"textLite\")};\n }\n }\n &__day {\n color: ${getColor(\"main\")};\n &:hover {\n background: ${getColor(\"elementBackground\")};\n }\n &--disabled {\n color: ${getColor(\"textLite\")};\n &:hover {\n background: inherit;\n }\n }\n &--keyboard-selected,\n &--keyboard-selected:hover {\n color: ${getColor(\"main\")};\n background: inherit;\n border-radius: inherit;\n }\n &--selected,\n &--selected:hover {\n color: ${getColor(\"bright\")};\n background: ${getColor(\"primary\")};\n border-radius: 8px;\n }\n &--in-selecting-range,\n &--in-range {\n color: ${getColor(\"primary\")};\n background: ${getColor(\"elementBackground\")};\n border-radius: 0;\n }\n &--selecting-range-start,\n &--range-start {\n color: ${getColor(\"bright\")};\n background: ${getColor(\"primary\")};\n border-top-left-radius: 8px;\n border-bottom-left-radius: 8px;\n &:hover {\n color: ${getColor(\"bright\")};\n background: ${getRgbColor([\"green\", \"netdata\"], 0.8)};\n border-radius: 0;\n border-top-left-radius: 8px;\n border-bottom-left-radius: 8px;\n }\n }\n &--selecting-range-end,\n &--range-end {\n color: ${getColor(\"bright\")};\n background: ${getColor(\"primary\")};\n border-top-right-radius: 8px;\n border-bottom-right-radius: 8px;\n &:hover {\n color: ${getColor(\"bright\")};\n background: ${getRgbColor([\"green\", \"netdata\"], 0.8)};\n border-top-right-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n }\n }\n }\n`\n","import React, { useState, useEffect, useCallback } from \"react\"\nimport { format, isValid, getTime } from \"date-fns\"\nimport { getDateWithOffset } from \"./utils\"\nimport { StyledDateInput } from \"../datePicker/styled\"\nimport { useDateTime } from \"@/src/utils/date-time\"\n\nconst DatePickerInput = ({\n name = \"\",\n value = \"\",\n onDatesChange,\n onFocus,\n placeholderText = \"\",\n}) => {\n const { utcOffset } = useDateTime()\n const [inputValue, setInputValue] = useState(\"\")\n const onChange = useCallback(e => {\n const date = e.target.value\n setInputValue(date)\n }, [])\n const setFormattedValue = useCallback(value => {\n if (isValid(value)) {\n const formattedDate = format(value, \"MMMM d yyyy, H:mm\")\n setInputValue(formattedDate)\n }\n }, [])\n const onBlur = useCallback(\n e => {\n const parsedDate = getDateWithOffset(e.target.value, utcOffset)\n const isValidDate = isValid(parsedDate) && getTime(parsedDate) > 0\n if (isValidDate) {\n const timestamp = getTime(parsedDate)\n onDatesChange(timestamp, () => setFormattedValue(value))\n } else setFormattedValue(value)\n },\n [value, utcOffset, onDatesChange, setFormattedValue]\n )\n\n useEffect(() => setFormattedValue(value), [value, setFormattedValue])\n\n return (\n <StyledDateInput\n type=\"text\"\n name={name}\n value={value ? inputValue : placeholderText}\n onChange={onChange}\n onBlur={onBlur}\n onFocus={onFocus}\n placeholder={placeholderText}\n data-testid=\"datePicker-input\"\n />\n )\n}\n\nexport default DatePickerInput\n","import { useDateTime } from \"@/src/utils/date-time\"\nimport { useCallback } from \"react\"\n\nconst useLocaleDate = () => {\n const { localeTimeString, localeDateString } = useDateTime()\n return useCallback(\n date => {\n return `${localeDateString(date, { locale: \"en-us\", long: false })} ${localeTimeString(date, {\n secs: false,\n })}`\n },\n [localeTimeString, localeDateString]\n )\n}\n\nexport default useLocaleDate\n","import { useMemo } from \"react\"\nimport { toDate } from \"date-fns\"\nimport useLocaleDate from \"./useLocaleDate\"\n\nexport const convertTimestampToDate = (timestamp, getLocaleDate) => {\n if (timestamp > 0) {\n return toDate(new Date(getLocaleDate(timestamp)))\n } else if (timestamp || timestamp === 0)\n return toDate(new Date(getLocaleDate(new Date().valueOf() + timestamp * 1000)))\n return null\n}\n\nconst useConvertedDates = (startDate, endDate) => {\n const getLocaleDate = useLocaleDate()\n return useMemo(\n () => [\n convertTimestampToDate(startDate, getLocaleDate),\n convertTimestampToDate(endDate, getLocaleDate),\n ],\n [startDate, endDate, getLocaleDate]\n )\n}\n\nexport default useConvertedDates\n","import { Flex } from \"@netdata/netdata-ui\"\nimport React, { useCallback } from \"react\"\nimport { getTime, isBefore, format } from \"date-fns\"\nimport { useDateTime } from \"@/src/utils/date-time\"\nimport DatePicker from \"../datePicker/datePickerLib\"\nimport DatePickerInput from \"./datePickerInput\"\nimport useConvertedDates, { convertTimestampToDate } from \"./useConvertedDate\"\nimport useLocaleDate from \"./useLocaleDate\"\nimport { getDateWithOffset } from \"./utils\"\nimport { StyledCalendar } from \"../datePicker/styled\"\n\nconst DatePickerWrapper = ({\n startDate,\n setStartDate,\n endDate,\n setEndDate,\n onDatesChange,\n onInputFocus,\n}) => {\n const getLocaleDate = useLocaleDate()\n const [convertedStartDate, convertedEndDate] = useConvertedDates(startDate, endDate)\n const { utcOffset } = useDateTime()\n const setValidStartDate = useCallback(\n (startDate, setPreviousValue) =>\n isBefore(convertTimestampToDate(startDate, getLocaleDate), convertedEndDate)\n ? setStartDate(startDate)\n : setPreviousValue(),\n [convertedEndDate, getLocaleDate, setStartDate]\n )\n\n const setValidEndDate = useCallback(\n (endDate, setPreviousValue) =>\n isBefore(convertedStartDate, convertTimestampToDate(endDate, getLocaleDate))\n ? setEndDate(endDate)\n : setPreviousValue(),\n [convertedStartDate, getLocaleDate, setEndDate]\n )\n\n const onChange = useCallback(\n dates => {\n const [startDate, endDate] = dates\n\n const startDateWithOffset = startDate\n ? getDateWithOffset(format(startDate, \"MMMM d yyyy, H:mm\"), utcOffset)\n : startDate\n const endDateWithOffset = endDate\n ? getDateWithOffset(format(endDate, \"MMMM d yyyy, H:mm\"), utcOffset)\n : endDate\n\n const startDateTimestamp = getTime(startDateWithOffset) || null\n const endDateTimestamp = getTime(endDateWithOffset) || null\n\n onDatesChange(startDateTimestamp, endDateTimestamp)\n },\n [utcOffset, onDatesChange]\n )\n\n return (\n <Flex\n column\n justifyContent=\"center\"\n alignItems=\"center\"\n flex={{ grow: 1 }}\n gap={3}\n margin={[0, 0, 0, 7]}\n data-testid=\"datePicker-wrapper\"\n >\n <DatePicker\n selected={convertedStartDate}\n onChange={onChange}\n startDate={convertedStartDate}\n endDate={convertedEndDate}\n maxDate={new Date()}\n minDate={new Date(\"1/1/2018\")}\n inline\n selectsRange\n monthsShown={2}\n dateFormat=\"MMMM d yyyy, H:mm\"\n showPopperArrow={false}\n calendarContainer={StyledCalendar}\n />\n <Flex justifyContent=\"around\" alignItems=\"center\" width=\"100%\">\n <DatePickerInput\n name=\"startDate\"\n value={convertedStartDate}\n onDatesChange={setValidStartDate}\n onFocus={onInputFocus}\n placeholderText=\"Select a start date\"\n />\n <DatePickerInput\n name=\"endDate\"\n value={convertedEndDate}\n onDatesChange={setValidEndDate}\n onFocus={onInputFocus}\n placeholderText=\"Select an end date\"\n />\n </Flex>\n </Flex>\n )\n}\n\nexport default DatePickerWrapper\n","import React, { useMemo } from \"react\"\nimport { Flex, Icon, TextSmall } from \"@netdata/netdata-ui\"\nimport { formatDates, getTimePeriod } from \"./utils\"\nimport useConvertedDates from \"./useConvertedDate\"\n\nconst PeriodIndication = ({ startDate, endDate }) => {\n const [convertedStart, convertedEnd] = useConvertedDates(startDate, endDate)\n\n const { formattedStartDate, formattedEndDate } = useMemo(\n () => formatDates(convertedStart, convertedEnd),\n [convertedStart, convertedEnd]\n )\n const timePeriod = useMemo(\n () => getTimePeriod(convertedStart, convertedEnd),\n [convertedStart, convertedEnd]\n )\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"between\" gap={2}>\n <Flex alignItems=\"center\" justifyContent=\"center\" gap={1.5}>\n <TextSmall strong whiteSpace=\"nowrap\">\n From\n </TextSmall>\n <TextSmall whiteSpace=\"nowrap\" data-testid=\"periodIndication-from\">\n {formattedStartDate}\n </TextSmall>\n </Flex>\n <Icon name=\"arrow_left\" size=\"small\" color=\"textLite\" rotate={2} />\n <Flex alignItems=\"center\" justifyContent=\"center\" gap={1.5}>\n <TextSmall strong whiteSpace=\"nowrap\">\n To\n </TextSmall>\n <TextSmall whiteSpace=\"nowrap\" data-testid=\"periodIndication-to\">\n {formattedEndDate}\n </TextSmall>\n </Flex>\n <Flex alignItems=\"center\" justifyContent=\"center\" gap={2}>\n <TextSmall whiteSpace=\"nowrap\">/</TextSmall>\n <TextSmall color=\"textLite\" whiteSpace=\"nowrap\" data-testid=\"periodIndication-period\">\n {timePeriod}\n </TextSmall>\n </Flex>\n </Flex>\n )\n}\n\nexport default PeriodIndication\n","import moment from \"moment\"\n\nexport const SECONDS = 1000\nexport const MINUTE = SECONDS * 60\nexport const HOUR = MINUTE * 60\nexport const DAY = HOUR * 24\nexport const MONTH = DAY * 30\n\nconst resolutionMap = [\n { value: DAY, unit: \"d\" },\n { value: HOUR, unit: \"h\" },\n { value: MINUTE, unit: \"min\" },\n { value: MINUTE, unit: \"min\" },\n { value: SECONDS, unit: \"s\" },\n]\n\nexport const getStartDate = start =>\n start < 0 ? moment(new Date()).add(start, \"seconds\") : moment(start)\nexport const getEndDate = end => (!end ? moment(new Date()) : moment(end))\nexport const getIsSameDate = (startDate, endDate) => startDate.isSame(endDate, \"day\")\nexport const getDuration = (startDate, endDate) => moment.duration(startDate.diff(endDate))\n\nconst getResolution = (value, resolution) => (value > 1 ? `${Math.floor(value)}${resolution}` : \"\")\n\nexport const getGranularDuration = duration => {\n let seconds = Math.abs(duration)\n const showSeconds = seconds < MINUTE\n return resolutionMap.reduce((acc, { value, unit }) => {\n if (value === SECONDS && !showSeconds) return acc\n acc = acc + getResolution(seconds / value, unit)\n seconds = seconds % value\n return acc\n }, \"\")\n}","import styled from \"styled-components\"\nimport { Flex, getColor } from \"@netdata/netdata-ui\"\n\nconst Container = styled(Flex)`\n cursor: pointer;\n\n &:hover * {\n color: ${getColor(\"textLite\")};\n fill: ${getColor(\"textLite\")};\n }\n`\n\nexport default Container\n","import React from \"react\"\nimport { Flex, TextSmall, Icon } from \"@netdata/netdata-ui\"\nimport { useDateTime } from \"utils/date-time\"\n\nconst DateBox = ({ isPlaying, startDate, endDate, isSameDate }) => {\n const { localeTimeString, localeDateString } = useDateTime()\n return (\n <Flex gap={2}>\n <TextSmall color=\"text\" whiteSpace=\"nowrap\">\n {localeDateString(startDate, { long: false })} •{\" \"}\n <TextSmall color={isPlaying ? \"accent\" : \"textFocus\"} whiteSpace=\"nowrap\">\n {localeTimeString(startDate, { secs: false })}\n </TextSmall>\n </TextSmall>\n <Icon name=\"arrow_left\" color={isPlaying ? \"accent\" : \"textFocus\"} size=\"small\" rotate={2} />\n <TextSmall color=\"text\" whiteSpace=\"nowrap\">\n {!isSameDate && `${localeDateString(endDate, { long: false })} • `}\n <TextSmall color={isPlaying ? \"accent\" : \"textFocus\"} whiteSpace=\"nowrap\">\n {localeTimeString(endDate, { secs: false })}\n </TextSmall>\n </TextSmall>\n </Flex>\n )\n}\n\nexport default DateBox\n","import React from \"react\"\nimport { Flex, TextSmall } from \"@netdata/netdata-ui\"\n\nconst DurationBox = ({ isPlaying, duration }) => {\n return (\n <Flex gap={1}>\n <Flex width=\"24px\" justifyContent=\"center\">\n {isPlaying && (\n <TextSmall color=\"text\" whiteSpace=\"nowrap\">\n • last\n </TextSmall>\n )}\n </Flex>\n <TextSmall color=\"text\" whiteSpace=\"nowrap\">\n {duration}\n </TextSmall>\n </Flex>\n )\n}\n\nexport default DurationBox\n","import React, { useState, useMemo, useEffect, forwardRef } from \"react\"\nimport Tooltip from \"@/src/components/tooltips\"\nimport { useSelector as useDashboardSelector } from \"store/redux-separate-context\"\nimport { selectGlobalPanAndZoom } from \"domains/global/selectors\"\nimport {\n getStartDate,\n getEndDate,\n getIsSameDate,\n getDuration,\n MINUTE,\n getGranularDuration,\n} from \"./utils\"\nimport Container from \"./container\"\nimport DateBox from \"./dateBox\"\nimport DurationBox from \"./durationBox\"\n\nconst PickerAccessorElement = forwardRef(\n (\n { onClick, start = 15 * MINUTE, end, isPlaying, isPickerOpen, setRangeValues, tagging },\n ref\n ) => {\n const [timeframe, setTimeframe] = useState()\n const startDate = getStartDate(start)\n const endDate = getEndDate(end)\n const globalPanAndZoom = useDashboardSelector(selectGlobalPanAndZoom)\n useEffect(() => {\n const after = getDuration(startDate, endDate).as(\"seconds\")\n if (!isPlaying && timeframe !== after) setTimeframe(Math.round(after))\n if (isPlaying && timeframe && !!globalPanAndZoom) {\n setRangeValues({ start: Math.round(timeframe) })\n setTimeframe(null)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, timeframe, isPlaying])\n\n const isSameDate = useMemo(() => getIsSameDate(startDate, endDate), [startDate, endDate])\n const duration = useMemo(\n () => getGranularDuration(getDuration(startDate, endDate).as(\"milliseconds\")),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isPlaying, startDate, endDate]\n )\n\n return (\n <Tooltip\n content={isPickerOpen ? () => {} : \"Select a predefined or a custom timeframe\"}\n align=\"bottom\"\n plain\n >\n <Container\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={1}\n height=\"100%\"\n width={{ min: \"380px\" }}\n onMouseDown={onClick}\n padding={[0, 1]}\n ref={ref}\n data-ga={`date-picker::click-time::${tagging}`}\n data-testid=\"datePicker-accessorElement\"\n >\n <DateBox\n isPlaying={isPlaying}\n endDate={endDate}\n startDate={startDate}\n isSameDate={isSameDate}\n />\n <DurationBox isPlaying={isPlaying} duration={duration} />\n </Container>\n </Tooltip>\n )\n }\n)\n\nexport default PickerAccessorElement\n","import React, { useState, useEffect, useMemo, useRef, useCallback } from \"react\"\nimport { Button, Flex } from \"@netdata/netdata-ui\"\nimport useToggle from \"hooks/useToggle\"\nimport useLocalStorage from \"hooks/useLocalStorage\"\nimport TimePeriods from \"./timePeriods\"\nimport CustomTimePeriod from \"./customTimePeriod\"\nimport DatePickerWrapper from \"./datePickerWrapper\"\nimport { getFocusTagging } from \"./utils\"\nimport PeriodIndication from \"./periodIndication\"\nimport AccessorElement from \"./accessorElement\"\nimport { PickerBox, StyledDrop, StyledHR } from \"./styled\"\n\nexport const reportEvent = (\n eventCategory,\n eventAction,\n eventLabel,\n eventValue,\n event = \"gaCustomEvent\"\n) => {\n if (window.dataLayer) {\n const eventData = { event, eventCategory, eventAction, eventLabel, eventValue }\n window.dataLayer.push(eventData)\n }\n}\n\nconst DatePickerDrop = ({\n onChange,\n values: { start: initialStartDate, end: initialEndDate } = {},\n defaultValue = -60 * 15,\n tagging = \"\",\n isPlaying,\n}) => {\n const [startDate, setStartDate] = useState(initialStartDate)\n const [endDate, setEndDate] = useState(initialStartDate)\n const [resolution, setResolution] = useLocalStorage(\"resolution\", \"minutes\")\n const [focusedInput, setFocusedInput] = useState(\"startDate\")\n const [isOpen, toggle, , close] = useToggle()\n const ref = useRef()\n\n const setDates = useCallback(({ startDate, endDate }) => {\n setStartDate(startDate)\n setEndDate(endDate)\n }, [])\n\n useEffect(() => {\n setDates({\n startDate: initialStartDate,\n endDate: initialEndDate,\n })\n }, [initialStartDate, initialEndDate, setDates])\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const clearChanges = useCallback(() => setDates({ startDate: defaultValue, endDate: 0 }), [])\n\n const onInputFocus = useCallback(e => {\n if (!e.target.name) return\n setFocusedInput(e.target.name)\n }, [])\n\n const togglePicker = useCallback(\n e => {\n e.stopPropagation()\n toggle()\n },\n [toggle]\n )\n\n const applyChanges = () => {\n onChange({\n start: startDate,\n end: endDate,\n })\n close()\n }\n\n const focusTagging = useMemo(() => getFocusTagging(focusedInput), [focusedInput])\n\n const isValidTimePeriod = startDate !== null && endDate !== null && startDate !== endDate\n const isApplyDisabled = startDate === initialStartDate && endDate === initialEndDate\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const consistentDefaultValue = useMemo(() => defaultValue, [])\n const isClearDisabled = startDate === consistentDefaultValue\n\n const handleTimePeriodChange = useCallback(\n (time, resolution) => {\n setResolution(resolution)\n setDates({\n startDate: time,\n endDate: 0,\n })\n },\n [setDates, setResolution]\n )\n const onDatepickerChange = (startDate, endDate) => {\n setDates({ startDate, endDate })\n const date = focusTagging === \"finish\" ? endDate || startDate : startDate || endDate\n reportEvent(\"date-picker\", \"click-date-picker\", tagging, String(date))\n }\n\n const pickerDrop =\n ref.current && isOpen ? (\n <StyledDrop\n target={ref.current}\n canHideTarget={false}\n align={{ top: \"bottom\", left: \"left\" }}\n onEsc={close}\n onClickOutside={close}\n >\n <PickerBox data-testid=\"datePicker\">\n <Flex justifyContent=\"between\" alignItems=\"center\" width=\"100%\" padding={[6, 6, 0, 6]}>\n <Flex column gap={3} margin={[0, 7, 0, 0]}>\n <TimePeriods\n handleTimePeriodChange={handleTimePeriodChange}\n selectedDate={startDate}\n tagging={tagging}\n />\n <CustomTimePeriod\n handleTimePeriodChange={handleTimePeriodChange}\n value={startDate}\n resolution={resolution}\n tagging={tagging}\n />\n </Flex>\n <StyledHR />\n <DatePickerWrapper\n startDate={startDate}\n endDate={endDate}\n setStartDate={setStartDate}\n setEndDate={setEndDate}\n onDatesChange={onDatepickerChange}\n onInputFocus={onInputFocus}\n />\n </Flex>\n <Flex\n alignItems=\"center\"\n justifyContent={isValidTimePeriod ? \"between\" : \"end\"}\n width=\"100%\"\n padding={[5, 6]}\n gap={2}\n >\n {isValidTimePeriod && <PeriodIndication startDate={startDate} endDate={endDate} />}\n <Flex alignItems=\"center\" justifyContent=\"center\" gap={4}>\n <Button\n label=\"Clear\"\n flavour=\"hollow\"\n onClick={clearChanges}\n disabled={isClearDisabled}\n data-ga={`date-picker::click-clear::${tagging}-${focusTagging}`}\n data-testid=\"datePicker-clear\"\n />\n <Button\n label=\"Apply\"\n onClick={applyChanges}\n disabled={!isValidTimePeriod || isApplyDisabled}\n data-ga={`date-picker::click-apply::${tagging}-${focusTagging}`}\n data-testid=\"datePicker-apply\"\n />\n </Flex>\n </Flex>\n </PickerBox>\n </StyledDrop>\n ) : null\n\n return (\n <>\n <AccessorElement\n onClick={togglePicker}\n tagging={tagging}\n isPickerOpen={isOpen}\n isPlaying={isPlaying}\n setRangeValues={onChange}\n start={initialStartDate}\n end={initialEndDate}\n ref={ref}\n />\n {pickerDrop}\n </>\n )\n}\n\nexport default DatePickerDrop\n","import React, { memo, useEffect, useMemo } from \"react\"\nimport {\n useDispatch as useDashboardDispatch,\n useSelector as useDashboardSelector,\n} from \"store/redux-separate-context\"\nimport {\n resetGlobalPanAndZoomAction,\n setGlobalPanAndZoomAction,\n setDefaultAfterAction,\n} from \"domains/global/actions\"\nimport { selectDefaultAfter, selectGlobalPanAndZoom } from \"domains/global/selectors\"\nimport { setHashParams } from \"utils/hash-utils\"\nimport DatePickerDrop from \"./datePickerDrop\"\n\nconst ReduxDatePickerContainer = memo(({ tagging, isPlaying }) => {\n const dashboardDispatch = useDashboardDispatch()\n\n const globalPanAndZoom = useDashboardSelector(selectGlobalPanAndZoom)\n const isGlobalPanAndZoom = Boolean(globalPanAndZoom)\n\n const defaultAfter = useDashboardSelector(selectDefaultAfter)\n const pickedValues = useMemo(\n () =>\n isGlobalPanAndZoom\n ? { start: globalPanAndZoom.after, end: globalPanAndZoom.before }\n : {\n start: defaultAfter,\n end: 0,\n },\n [isGlobalPanAndZoom, globalPanAndZoom, defaultAfter]\n )\n\n function handlePickedValuesChange(params) {\n const { start, end } = params\n if (start < 0) {\n // live mode\n dashboardDispatch(\n // changes the default value, so it becomes inconsistent\n setDefaultAfterAction({\n after: start,\n })\n )\n if (isGlobalPanAndZoom) {\n dashboardDispatch(resetGlobalPanAndZoomAction())\n }\n } else {\n // global-pan-and-zoom mode\n dashboardDispatch(\n setGlobalPanAndZoomAction({\n after: start,\n before: end,\n })\n )\n }\n }\n\n useEffect(() => {\n const { start, end } = pickedValues\n const after = start.toString()\n const before = end.toString()\n if (window.urlOptions.after !== after || window.urlOptions.before !== before) {\n window.urlOptions.netdataPanAndZoomCallback(true, after, before)\n }\n setHashParams({ after, before })\n }, [pickedValues])\n return (\n <DatePickerDrop\n values={pickedValues}\n defaultValue={defaultAfter}\n onChange={handlePickedValuesChange}\n tagging={tagging}\n isPlaying={isPlaying}\n />\n )\n})\n\nexport default ReduxDatePickerContainer\n","import styled from \"styled-components\"\nimport { Flex, getRgbColor } from \"@netdata/netdata-ui\"\n\nconst getBackground = ({ theme, isPlaying }) => {\n const { name } = theme\n\n const background =\n name === \"Dark\"\n ? getRgbColor(isPlaying ? [\"green\", \"netdata\"] : [\"neutral\", \"tuna\"], isPlaying ? 0.3 : 1)\n : getRgbColor(isPlaying ? [\"green\", \"frostee\"] : [\"neutral\", \"blackhaze\"])\n\n return background({ theme })\n}\n\nconst Container = styled(Flex)`\n background: ${getBackground};\n`\n\nexport default Container\n","import styled from \"styled-components\"\nimport { Pill, getColor } from \"@netdata/netdata-ui\"\n\nconst getHoverColor = ({ isPlaying }) =>\n getColor(isPlaying ? [\"green\", \"chateau\"] : [\"neutral\", \"iron\"])\n\nconst StyledPill = styled(Pill).attrs(({ isPlaying }) => ({\n flavour: isPlaying ? \"success\" : \"neutral\",\n}))`\n &:hover {\n background: ${getHoverColor};\n border-color: ${getHoverColor};\n }\n`\n\nexport default StyledPill\n","import React, { useMemo } from \"react\"\nimport { useDispatch } from \"store/redux-separate-context\"\nimport { resetGlobalPauseAction, setGlobalPauseAction } from \"domains/global/actions\"\nimport Tooltip from \"@/src/components/tooltips\"\nimport StyledPill from \"./styledPill\"\n\nconst getIcon = (isPlaying, isForcePlaying) => {\n if (!isPlaying) return \"pauseSolid\"\n return isForcePlaying ? \"forcePlay\" : \"playSolid\"\n}\n\nconst PlayPausePill = ({ isPlaying, isForcePlaying }) => {\n const dispatch = useDispatch()\n\n const onPlay = () => dispatch(resetGlobalPauseAction({ forcePlay: false }))\n const onPause = () => dispatch(setGlobalPauseAction())\n const icon = useMemo(() => getIcon(isPlaying, isForcePlaying), [isPlaying, isForcePlaying])\n\n return (\n <Tooltip content={isPlaying ? \"Click to pause\" : \"Click to play\"} align=\"bottom\" plain>\n <StyledPill icon={icon} onClick={isPlaying ? onPause : onPlay} isPlaying={isPlaying}>\n {isPlaying ? \"Playing\" : \"Paused\"}\n </StyledPill>\n </Tooltip>\n )\n}\n\nexport default PlayPausePill\n","import React, { useCallback, forwardRef } from \"react\"\nimport styled from \"styled-components\"\nimport { getColor, Flex, Icon, Text } from \"@netdata/netdata-ui\"\n\nexport const PanelRowContainer = styled(Flex)`\n cursor: pointer;\n\n &:hover {\n background: ${getColor(\"selected\")};\n }\n\n ${props => props.selected && `background: ${getColor(\"selected\")(props)};`}\n`\n\nconst MenuItem = forwardRef(\n (\n {\n disabled,\n children,\n Wrapper = Text,\n onClick,\n testid,\n icon,\n padding = [2, 3],\n margin = [0],\n round = 0,\n actions,\n selected,\n width = \"100%\",\n },\n ref\n ) => {\n const click = useCallback(() => {\n if (disabled) return\n if (onClick) onClick()\n }, [onClick, disabled])\n\n return (\n <PanelRowContainer\n ref={ref}\n flexWrap={false}\n justifyContent=\"between\"\n alignItems=\"center\"\n padding={padding}\n margin={margin}\n round={round}\n onClick={click}\n data-testid={testid}\n width={width}\n selected={selected}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={3} flex basis=\"\">\n {typeof icon === \"string\" ? (\n <Icon name={icon} disabled={disabled} color=\"text\" height=\"16px\" width=\"16px\" />\n ) : (\n icon\n )}\n <Wrapper opacity={disabled ? \"medium\" : undefined} width=\"150px\">\n {children}\n </Wrapper>\n </Flex>\n {actions}\n </PanelRowContainer>\n )\n }\n)\n\nexport default MenuItem\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { Flex, H4, Collapsible } from \"@netdata/netdata-ui\"\n\nexport const DefaultListHeader = styled(H4).attrs({ padding: [0], margin: [0] })`\n cursor: pointer;\n`\n\nconst SectionHandle = ({ toggleOpen, label, testid, Header = DefaultListHeader }) => (\n <Header data-testid={testid} onClick={toggleOpen}>\n {label}\n </Header>\n)\n\nconst ItemsList = ({ isOpen = false, toggleOpen, label, children, testid, Header }) => (\n <Flex column>\n <SectionHandle Header={Header} toggleOpen={toggleOpen} label={label} testid={testid} />\n <Collapsible open={isOpen}>{children}</Collapsible>\n </Flex>\n)\n\nexport default ItemsList\n","import React from \"react\"\nimport { Flex, TextSmall } from \"@netdata/netdata-ui\"\n\nconst PlayOptionsTooltip = () => (\n <Flex\n padding={[1, 2]}\n margin={[1]}\n background={[\"neutral\", \"black\"]}\n round={1}\n justifyContent=\"center\"\n width={{ max: \"320px\" }}\n >\n <TextSmall color=\"bright\">\n Play to refresh and have live content, pause to see historical, or force play to keep\n refreshing even when the tab loses focus at the expense of some system performance.\n </TextSmall>\n </Flex>\n)\n\nexport default PlayOptionsTooltip\n","import styled from \"styled-components\"\nimport { Flex } from \"@netdata/netdata-ui\"\n\nexport const Divider = styled(Flex).attrs({\n bacgkround: \"disabled\",\n height: \"1px\",\n margin: [2, 6],\n})``\n","import React, { memo, Fragment } from \"react\"\nimport styled from \"styled-components\"\nimport { useToggle } from \"react-use\"\nimport { Flex, Icon, Drop } from \"@netdata/netdata-ui\"\nimport { MenuItem } from \"@/src/components/menus\"\nimport { useDispatch } from \"store/redux-separate-context\"\nimport { resetGlobalPauseAction, setGlobalPauseAction } from \"domains/global/actions\"\nimport Tooltip from \"@/src/components/tooltips\"\nimport PlayOptionsTooltip from \"./playOptionsTooltip\"\n\nconst MenuButton = styled(Flex).attrs({ padding: [1], role: \"button\" })`\n cursor: pointer;\n`\n\nconst Dropdown = styled(Flex).attrs({\n column: true,\n padding: [2],\n background: \"dropdown\",\n round: 1,\n overflow: { vertical: \"auto\" },\n margin: [2, 0, 0],\n width: 40,\n})`\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n`\n\nconst PlayOptions = ({ target }) => {\n const dispatch = useDispatch()\n const [isOpen, toggle] = useToggle()\n\n const close = () => toggle(false)\n\n const onPlay = () => {\n dispatch(resetGlobalPauseAction({ forcePlay: false }))\n close()\n }\n\n const onPause = () => {\n dispatch(setGlobalPauseAction())\n close()\n }\n\n const onForcePlay = () => {\n dispatch(resetGlobalPauseAction({ forcePlay: true }))\n close()\n }\n\n return (\n <Fragment>\n {!isOpen ? (\n <Tooltip content={<PlayOptionsTooltip />} align=\"bottom\" plain>\n <MenuButton onClick={toggle} width=\"auto\">\n <Icon name=\"chevron_down\" color=\"text\" width=\"12px\" height=\"12px\" />\n </MenuButton>\n </Tooltip>\n ) : (\n <MenuButton onClick={toggle} width=\"auto\">\n <Icon name=\"chevron_down\" color=\"text\" width=\"12px\" height=\"12px\" />\n </MenuButton>\n )}\n {target.current && isOpen && (\n <Drop\n target={target.current}\n align={{ top: \"bottom\", left: \"left\" }}\n onEsc={close}\n onClickOutside={close}\n animation\n >\n <Dropdown>\n <MenuItem round={1} icon=\"playOutline\" onClick={onPlay}>\n Play\n </MenuItem>\n <MenuItem round={1} icon=\"pauseOutline\" onClick={onPause}>\n Pause\n </MenuItem>\n <MenuItem round={1} icon=\"forcePlayOutline\" onClick={onForcePlay}>\n Force Play\n </MenuItem>\n </Dropdown>\n </Drop>\n )}\n </Fragment>\n )\n}\n\nconst MemoizedPlayOptions = memo(PlayOptions)\n\nexport default MemoizedPlayOptions\n","import React, { useMemo, useRef } from \"react\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport {\n selectHasWindowFocus,\n selectStopUpdatesWhenFocusIsLost,\n selectGlobalPanAndZoom,\n selectGlobalPause,\n selectGlobalSelection,\n} from \"domains/global/selectors\"\nimport { ReduxDatePickerContainer } from \"components/date-picker\"\nimport Item from \"../item\"\nimport Container from \"./container\"\nimport PlayPausePill from \"./playPausePill\"\nimport PlayOptions from \"./playOptions\"\n\nconst tagging = \"global-view\"\n\nconst GlobalControls = () => {\n const ref = useRef()\n const hasWindowFocus = useSelector(selectHasWindowFocus)\n const stopUpdatesWhenFocusIsLost = useSelector(selectStopUpdatesWhenFocusIsLost)\n const globalPanAndZoom = useSelector(selectGlobalPanAndZoom)\n const hoveredX = useSelector(selectGlobalSelection)\n const globalPause = useSelector(selectGlobalPause)\n\n const isPlaying = useMemo(\n () =>\n Boolean(\n (hasWindowFocus || !stopUpdatesWhenFocusIsLost) &&\n !globalPanAndZoom &&\n !hoveredX &&\n !globalPause\n ),\n [hasWindowFocus, stopUpdatesWhenFocusIsLost, globalPanAndZoom, hoveredX, globalPause]\n )\n\n return (\n <Item hasBorder>\n <Container\n isPlaying={isPlaying}\n padding={[2, 2]}\n round\n height=\"100%\"\n alignItems=\"center\"\n gap={1}\n ref={ref}\n >\n <PlayPausePill isPlaying={isPlaying} isForcePlaying={!stopUpdatesWhenFocusIsLost} />\n <PlayOptions target={ref} />\n <ReduxDatePickerContainer isPlaying={isPlaying} tagging={tagging} />\n </Container>\n </Item>\n )\n}\n\nexport default GlobalControls\n","import styled from \"styled-components\"\nimport { Flex } from \"@netdata/netdata-ui\"\n\nconst hollowColors = {\n warning: \"#FFF8E1\",\n error: \"#FFEBEF\",\n}\n\nconst StyledPill = styled(Flex).attrs(({ round = 999, hollow, background }) => ({\n padding: [0.5, 2],\n round,\n border: hollow ? { side: \"all\", color: background, size: \"1px\" } : false,\n}))`\n background: ${({ background, hollow }) => (hollow ? hollowColors[background] : background)};\n cursor: pointer;\n`\n\nexport default StyledPill\n","import React, { forwardRef } from \"react\"\nimport { TextMicro } from \"@netdata/netdata-ui\"\nimport StyledPill from \"./styled\"\n\nconst Pill = forwardRef(({ children, background, color, hollow, ...rest }, ref) => (\n <StyledPill background={background} hollow={hollow} ref={ref} {...rest}>\n <TextMicro color={hollow ? background : color} strong>\n {children}\n </TextMicro>\n </StyledPill>\n))\n\nexport default Pill\n","import React, { useMemo } from \"react\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectActiveAlarms } from \"domains/global/selectors\"\nimport Item from \"./item\"\nimport Pill from \"./pill\"\nimport Tooltip from \"@/src/components/tooltips\"\n\nconst pillProps = {\n \"data-toggle\": \"modal\",\n \"data-target\": \"#alarmsModal\",\n}\n\nconst Alarms = () => {\n const activeAlarms = useSelector(selectActiveAlarms)\n\n const alarms = useMemo(() => (activeAlarms ? Object.values(activeAlarms.alarms) : []), [\n activeAlarms,\n ])\n\n const { critical, warning } = useMemo(\n () =>\n alarms.reduce(\n (acc, { status }) => {\n if (status === \"CRITICAL\") acc.critical = acc.critical + 1\n if (status === \"WARNING\") acc.warning = acc.warning + 1\n return acc\n },\n { critical: 0, warning: 0 }\n ),\n [alarms]\n )\n\n return (\n <Item icon=\"alarm\">\n <Tooltip\n content={\n critical\n ? `${critical} critical alert${critical.length > 1 ? \"s\" : \"\"}`\n : \"No critical alerts\"\n }\n align=\"bottom\"\n plain\n >\n <Pill background=\"error\" hollow {...pillProps}>\n {critical}\n </Pill>\n </Tooltip>\n <Tooltip\n content={\n warning ? `${warning} warning alert${warning.length > 1 ? \"s\" : \"\"}` : \"No warning alerts\"\n }\n align=\"bottom\"\n plain\n >\n <Pill background=\"warning\" hollow {...pillProps}>\n {warning}\n </Pill>\n </Tooltip>\n </Item>\n )\n}\n\nexport default Alarms\n","import React from \"react\"\nimport { Button, News as AgentNews } from \"@netdata/netdata-ui\"\nimport Tooltip from \"@/src/components/tooltips\"\n\nconst News = () => {\n return (\n <AgentNews app=\"agent\">\n {({ toggle, upToDate }) => (\n <Tooltip content=\"News\" align=\"bottom\" plain>\n <Button\n data-testid=\"header-news-button\"\n themeType=\"dark\"\n name=\"news\"\n icon=\"insights\"\n flavour=\"borderless\"\n neutral={upToDate}\n warning={!upToDate}\n onClick={toggle}\n />\n </Tooltip>\n )}\n </AgentNews>\n )\n}\n\nexport default News\n","import styled from \"styled-components\"\nimport { Flex } from \"@netdata/netdata-ui\"\n\nconst Dropdown = styled(Flex).attrs({\n column: true,\n padding: [2],\n background: \"dropdown\",\n round: 1,\n overflow: { vertical: \"auto\" },\n margin: [2, 0, 0],\n width: 80,\n})`\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n`\n\nexport default Dropdown\n","import styled from \"styled-components\"\nimport { TextInput } from \"@netdata/netdata-ui\"\n\nconst SearchInput = styled(TextInput)`\n & input {\n background: transparent;\n }\n\n & > label {\n margin-bottom: 0;\n }\n`\nexport default SearchInput\n","import React, { forwardRef } from \"react\"\nimport SearchInput from \"./searchInput\"\n\nconst Search = forwardRef(({ value, onChange }, ref) => (\n <SearchInput inputRef={ref} value={value} onChange={onChange} placeholder=\"Search\" metaShrinked />\n))\n\nexport default Search\n","import styled from \"styled-components\"\nimport { Flex } from \"@netdata/netdata-ui\"\n\nconst Container = styled(Flex).attrs({\n column: true,\n padding: [2, 0, 0],\n overflow: { vertical: \"auto\" },\n height: { max: \"320px\" },\n})``\n\nexport default Container\n","import styled from \"styled-components\"\nimport { Flex } from \"@netdata/netdata-ui\"\n\nconst Wrapper = styled(Flex).attrs({\n justifyContent: \"between\",\n alignItems: \"center\",\n width: \"100%\",\n gap: 2,\n})``\n\nexport default Wrapper\n","import React, { useCallback } from \"react\"\nimport { Text } from \"@netdata/netdata-ui\"\nimport { MenuItem } from \"@/src/components/menus\"\nimport Wrapper from \"./wrapper\"\n\nconst OffsetItem = ({ name, offset, utc, onSelect }) => {\n const onClick = useCallback(() => onSelect(utc), [utc, onSelect])\n\n return (\n <MenuItem round={1} onClick={onClick} Wrapper={Wrapper}>\n <Text color=\"text\">{name}</Text>\n <Text color=\"textLite\" whiteSpace=\"nowrap\">\n UTC {offset}\n </Text>\n </MenuItem>\n )\n}\n\nexport default OffsetItem\n","export const timezones = [\n {\n value: \"Dateline Standard Time\",\n abbr: \"DST\",\n text: \"International Date Line West\",\n utc: [\"Etc/GMT+12\"],\n },\n {\n value: \"UTC-11\",\n abbr: \"U\",\n text: \"Coordinated Universal Time-11\",\n utc: [\"Etc/GMT+11\", \"Pacific/Midway\", \"Pacific/Niue\", \"Pacific/Pago_Pago\"],\n },\n {\n value: \"Hawaiian Standard Time\",\n abbr: \"HST\",\n text: \"Hawaii\",\n utc: [\n \"Etc/GMT+10\",\n \"Pacific/Honolulu\",\n \"Pacific/Johnston\",\n \"Pacific/Rarotonga\",\n \"Pacific/Tahiti\",\n ],\n },\n {\n value: \"Alaskan Standard Time\",\n abbr: \"AKDT\",\n text: \"Alaska\",\n utc: [\n \"America/Anchorage\",\n \"America/Juneau\",\n \"America/Nome\",\n \"America/Sitka\",\n \"America/Yakutat\",\n ],\n },\n {\n value: \"Pacific Standard Time (Mexico)\",\n abbr: \"PDT\",\n text: \"Baja California\",\n utc: [\"America/Santa_Isabel\"],\n },\n {\n value: \"Pacific Standard Time\",\n abbr: \"PST\",\n text: \"Pacific Time (US & Canada)\",\n utc: [\n \"America/Dawson\",\n \"America/Los_Angeles\",\n \"America/Tijuana\",\n \"America/Vancouver\",\n \"America/Whitehorse\",\n \"PST8PDT\",\n ],\n },\n {\n value: \"US Mountain Standard Time\",\n abbr: \"UMST\",\n text: \"Arizona\",\n utc: [\n \"America/Creston\",\n \"America/Dawson_Creek\",\n \"America/Hermosillo\",\n \"America/Phoenix\",\n \"Etc/GMT+7\",\n ],\n },\n {\n value: \"Mountain Standard Time (Mexico)\",\n abbr: \"MDT\",\n text: \"Chihuahua, La Paz, Mazatlan\",\n utc: [\"America/Chihuahua\", \"America/Mazatlan\"],\n },\n {\n value: \"Mountain Standard Time\",\n abbr: \"MDT\",\n text: \"Mountain Time (US & Canada)\",\n utc: [\n \"America/Boise\",\n \"America/Cambridge_Bay\",\n \"America/Denver\",\n \"America/Edmonton\",\n \"America/Inuvik\",\n \"America/Ojinaga\",\n \"America/Yellowknife\",\n \"MST7MDT\",\n ],\n },\n {\n value: \"Central America Standard Time\",\n abbr: \"CAST\",\n text: \"Central America\",\n utc: [\n \"America/Belize\",\n \"America/Costa_Rica\",\n \"America/El_Salvador\",\n \"America/Guatemala\",\n \"America/Managua\",\n \"America/Tegucigalpa\",\n \"Etc/GMT+6\",\n \"Pacific/Galapagos\",\n ],\n },\n {\n value: \"Central Standard Time\",\n abbr: \"CDT\",\n text: \"Central Time (US & Canada)\",\n utc: [\n \"America/Chicago\",\n \"America/Indiana/Knox\",\n \"America/Indiana/Tell_City\",\n \"America/Matamoros\",\n \"America/Menominee\",\n \"America/North_Dakota/Beulah\",\n \"America/North_Dakota/Center\",\n \"America/North_Dakota/New_Salem\",\n \"America/Rainy_River\",\n \"America/Rankin_Inlet\",\n \"America/Resolute\",\n \"America/Winnipeg\",\n \"CST6CDT\",\n ],\n },\n {\n value: \"Central Standard Time (Mexico)\",\n abbr: \"CDT\",\n text: \"Guadalajara, Mexico City, Monterrey\",\n utc: [\n \"America/Bahia_Banderas\",\n \"America/Cancun\",\n \"America/Merida\",\n \"America/Mexico_City\",\n \"America/Monterrey\",\n ],\n },\n {\n value: \"Canada Central Standard Time\",\n abbr: \"CCST\",\n text: \"Saskatchewan\",\n utc: [\"America/Regina\", \"America/Swift_Current\"],\n },\n {\n value: \"SA Pacific Standard Time\",\n abbr: \"SPST\",\n text: \"Bogota, Lima, Quito\",\n utc: [\n \"America/Bogota\",\n \"America/Cayman\",\n \"America/Coral_Harbour\",\n \"America/Eirunepe\",\n \"America/Guayaquil\",\n \"America/Jamaica\",\n \"America/Lima\",\n \"America/Panama\",\n \"America/Rio_Branco\",\n \"Etc/GMT+5\",\n ],\n },\n {\n value: \"Eastern Standard Time\",\n abbr: \"EDT\",\n text: \"Eastern Time (US & Canada)\",\n utc: [\n \"America/Detroit\",\n \"America/Havana\",\n \"America/Indiana/Petersburg\",\n \"America/Indiana/Vincennes\",\n \"America/Indiana/Winamac\",\n \"America/Iqaluit\",\n \"America/Kentucky/Monticello\",\n \"America/Louisville\",\n \"America/Montreal\",\n \"America/Nassau\",\n \"America/New_York\",\n \"America/Nipigon\",\n \"America/Pangnirtung\",\n \"America/Port-au-Prince\",\n \"America/Thunder_Bay\",\n \"America/Toronto\",\n \"EST5EDT\",\n ],\n },\n {\n value: \"US Eastern Standard Time\",\n abbr: \"UEDT\",\n text: \"Indiana (East)\",\n utc: [\"America/Indiana/Marengo\", \"America/Indiana/Vevay\", \"America/Indianapolis\"],\n },\n {\n value: \"Venezuela Standard Time\",\n abbr: \"VST\",\n text: \"Caracas\",\n utc: [\"America/Caracas\"],\n },\n {\n value: \"Paraguay Standard Time\",\n abbr: \"PYT\",\n text: \"Asuncion\",\n utc: [\"America/Asuncion\"],\n },\n {\n value: \"Atlantic Standard Time\",\n abbr: \"ADT\",\n text: \"Atlantic Time (Canada)\",\n utc: [\n \"America/Glace_Bay\",\n \"America/Goose_Bay\",\n \"America/Halifax\",\n \"America/Moncton\",\n \"America/Thule\",\n \"Atlantic/Bermuda\",\n ],\n },\n {\n value: \"Central Brazilian Standard Time\",\n abbr: \"CBST\",\n text: \"Cuiaba\",\n utc: [\"America/Campo_Grande\", \"America/Cuiaba\"],\n },\n {\n value: \"SA Western Standard Time\",\n abbr: \"SWST\",\n text: \"Georgetown, La Paz, Manaus, San Juan\",\n utc: [\n \"America/Anguilla\",\n \"America/Antigua\",\n \"America/Aruba\",\n \"America/Barbados\",\n \"America/Blanc-Sablon\",\n \"America/Boa_Vista\",\n \"America/Curacao\",\n \"America/Dominica\",\n \"America/Grand_Turk\",\n \"America/Grenada\",\n \"America/Guadeloupe\",\n \"America/Guyana\",\n \"America/Kralendijk\",\n \"America/La_Paz\",\n \"America/Lower_Princes\",\n \"America/Manaus\",\n \"America/Marigot\",\n \"America/Martinique\",\n \"America/Montserrat\",\n \"America/Port_of_Spain\",\n \"America/Porto_Velho\",\n \"America/Puerto_Rico\",\n \"America/Santo_Domingo\",\n \"America/St_Barthelemy\",\n \"America/St_Kitts\",\n \"America/St_Lucia\",\n \"America/St_Thomas\",\n \"America/St_Vincent\",\n \"America/Tortola\",\n \"Etc/GMT+4\",\n ],\n },\n {\n value: \"Pacific SA Standard Time\",\n abbr: \"PSST\",\n text: \"Santiago\",\n utc: [\"America/Santiago\", \"Antarctica/Palmer\"],\n },\n {\n value: \"Newfoundland Standard Time\",\n abbr: \"NDT\",\n text: \"Newfoundland\",\n utc: [\"America/St_Johns\"],\n },\n {\n value: \"E. South America Standard Time\",\n abbr: \"ESAST\",\n text: \"Brasilia\",\n utc: [\"America/Sao_Paulo\"],\n },\n {\n value: \"Argentina Standard Time\",\n abbr: \"AST\",\n text: \"Buenos Aires\",\n utc: [\n \"America/Argentina/La_Rioja\",\n \"America/Argentina/Rio_Gallegos\",\n \"America/Argentina/Salta\",\n \"America/Argentina/San_Juan\",\n \"America/Argentina/San_Luis\",\n \"America/Argentina/Tucuman\",\n \"America/Argentina/Ushuaia\",\n \"America/Buenos_Aires\",\n \"America/Catamarca\",\n \"America/Cordoba\",\n \"America/Jujuy\",\n \"America/Mendoza\",\n ],\n },\n {\n value: \"SA Eastern Standard Time\",\n abbr: \"SEST\",\n text: \"Cayenne, Fortaleza\",\n utc: [\n \"America/Araguaina\",\n \"America/Belem\",\n \"America/Cayenne\",\n \"America/Fortaleza\",\n \"America/Maceio\",\n \"America/Paramaribo\",\n \"America/Recife\",\n \"America/Santarem\",\n \"Antarctica/Rothera\",\n \"Atlantic/Stanley\",\n \"Etc/GMT+3\",\n ],\n },\n {\n value: \"Greenland Standard Time\",\n abbr: \"GDT\",\n text: \"Greenland\",\n utc: [\"America/Godthab\"],\n },\n {\n value: \"Montevideo Standard Time\",\n abbr: \"MST\",\n text: \"Montevideo\",\n utc: [\"America/Montevideo\"],\n },\n {\n value: \"Bahia Standard Time\",\n abbr: \"BST\",\n text: \"Salvador\",\n utc: [\"America/Bahia\"],\n },\n {\n value: \"UTC-02\",\n abbr: \"U\",\n text: \"Coordinated Universal Time-02\",\n utc: [\"America/Noronha\", \"Atlantic/South_Georgia\", \"Etc/GMT+2\"],\n },\n {\n value: \"Mid-Atlantic Standard Time\",\n abbr: \"MDT\",\n text: \"Mid-Atlantic - Old\",\n utc: [],\n },\n {\n value: \"Azores Standard Time\",\n abbr: \"ADT\",\n text: \"Azores\",\n utc: [\"America/Scoresbysund\", \"Atlantic/Azores\"],\n },\n {\n value: \"Cape Verde Standard Time\",\n abbr: \"CVST\",\n text: \"Cape Verde Is.\",\n utc: [\"Atlantic/Cape_Verde\", \"Etc/GMT+1\"],\n },\n {\n value: \"Morocco Standard Time\",\n abbr: \"MDT\",\n text: \"Casablanca\",\n utc: [\"Africa/Casablanca\", \"Africa/El_Aaiun\"],\n },\n {\n value: \"UTC\",\n abbr: \"UTC\",\n text: \"Coordinated Universal Time\",\n utc: [\"America/Danmarkshavn\", \"Etc/GMT\"],\n },\n {\n value: \"GMT Standard Time\",\n abbr: \"GMT\",\n text: \"Edinburgh, London\",\n utc: [\"Europe/Isle_of_Man\", \"Europe/Guernsey\", \"Europe/Jersey\", \"Europe/London\"],\n },\n {\n value: \"GMT Standard Time\",\n abbr: \"GDT\",\n text: \"Dublin, Lisbon\",\n utc: [\n \"Atlantic/Canary\",\n \"Atlantic/Faeroe\",\n \"Atlantic/Madeira\",\n \"Europe/Dublin\",\n \"Europe/Lisbon\",\n ],\n },\n {\n value: \"Greenwich Standard Time\",\n abbr: \"GST\",\n text: \"Monrovia, Reykjavik\",\n utc: [\n \"Africa/Abidjan\",\n \"Africa/Accra\",\n \"Africa/Bamako\",\n \"Africa/Banjul\",\n \"Africa/Bissau\",\n \"Africa/Conakry\",\n \"Africa/Dakar\",\n \"Africa/Freetown\",\n \"Africa/Lome\",\n \"Africa/Monrovia\",\n \"Africa/Nouakchott\",\n \"Africa/Ouagadougou\",\n \"Africa/Sao_Tome\",\n \"Atlantic/Reykjavik\",\n \"Atlantic/St_Helena\",\n ],\n },\n {\n value: \"W. Europe Standard Time\",\n abbr: \"WEDT\",\n text: \"Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna\",\n utc: [\n \"Arctic/Longyearbyen\",\n \"Europe/Amsterdam\",\n \"Europe/Andorra\",\n \"Europe/Berlin\",\n \"Europe/Busingen\",\n \"Europe/Gibraltar\",\n \"Europe/Luxembourg\",\n \"Europe/Malta\",\n \"Europe/Monaco\",\n \"Europe/Oslo\",\n \"Europe/Rome\",\n \"Europe/San_Marino\",\n \"Europe/Stockholm\",\n \"Europe/Vaduz\",\n \"Europe/Vatican\",\n \"Europe/Vienna\",\n \"Europe/Zurich\",\n ],\n },\n {\n value: \"Central Europe Standard Time\",\n abbr: \"CEDT\",\n text: \"Belgrade, Bratislava, Budapest, Ljubljana, Prague\",\n utc: [\n \"Europe/Belgrade\",\n \"Europe/Bratislava\",\n \"Europe/Budapest\",\n \"Europe/Ljubljana\",\n \"Europe/Podgorica\",\n \"Europe/Prague\",\n \"Europe/Tirane\",\n ],\n },\n {\n value: \"Romance Standard Time\",\n abbr: \"RDT\",\n text: \"Brussels, Copenhagen, Madrid, Paris\",\n utc: [\"Africa/Ceuta\", \"Europe/Brussels\", \"Europe/Copenhagen\", \"Europe/Madrid\", \"Europe/Paris\"],\n },\n {\n value: \"Central European Standard Time\",\n abbr: \"CEDT\",\n text: \"Sarajevo, Skopje, Warsaw, Zagreb\",\n utc: [\"Europe/Sarajevo\", \"Europe/Skopje\", \"Europe/Warsaw\", \"Europe/Zagreb\"],\n },\n {\n value: \"W. Central Africa Standard Time\",\n abbr: \"WCAST\",\n text: \"West Central Africa\",\n utc: [\n \"Africa/Algiers\",\n \"Africa/Bangui\",\n \"Africa/Brazzaville\",\n \"Africa/Douala\",\n \"Africa/Kinshasa\",\n \"Africa/Lagos\",\n \"Africa/Libreville\",\n \"Africa/Luanda\",\n \"Africa/Malabo\",\n \"Africa/Ndjamena\",\n \"Africa/Niamey\",\n \"Africa/Porto-Novo\",\n \"Africa/Tunis\",\n \"Etc/GMT-1\",\n ],\n },\n {\n value: \"Namibia Standard Time\",\n abbr: \"NST\",\n text: \"Windhoek\",\n utc: [\"Africa/Windhoek\"],\n },\n {\n value: \"GTB Standard Time\",\n abbr: \"GDT\",\n text: \"Athens, Bucharest\",\n utc: [\"Asia/Nicosia\", \"Europe/Athens\", \"Europe/Bucharest\", \"Europe/Chisinau\"],\n },\n {\n value: \"Middle East Standard Time\",\n abbr: \"MEDT\",\n text: \"Beirut\",\n utc: [\"Asia/Beirut\"],\n },\n {\n value: \"Egypt Standard Time\",\n abbr: \"EST\",\n text: \"Cairo\",\n utc: [\"Africa/Cairo\"],\n },\n {\n value: \"Syria Standard Time\",\n abbr: \"SDT\",\n text: \"Damascus\",\n utc: [\"Asia/Damascus\"],\n },\n {\n value: \"E. Europe Standard Time\",\n abbr: \"EEDT\",\n text: \"E. Europe\",\n utc: [\n \"Asia/Nicosia\",\n \"Europe/Athens\",\n \"Europe/Bucharest\",\n \"Europe/Chisinau\",\n \"Europe/Helsinki\",\n \"Europe/Kiev\",\n \"Europe/Mariehamn\",\n \"Europe/Nicosia\",\n \"Europe/Riga\",\n \"Europe/Sofia\",\n \"Europe/Tallinn\",\n \"Europe/Uzhgorod\",\n \"Europe/Vilnius\",\n \"Europe/Zaporozhye\",\n ],\n },\n {\n value: \"South Africa Standard Time\",\n abbr: \"SAST\",\n text: \"Harare, Pretoria\",\n utc: [\n \"Africa/Blantyre\",\n \"Africa/Bujumbura\",\n \"Africa/Gaborone\",\n \"Africa/Harare\",\n \"Africa/Johannesburg\",\n \"Africa/Kigali\",\n \"Africa/Lubumbashi\",\n \"Africa/Lusaka\",\n \"Africa/Maputo\",\n \"Africa/Maseru\",\n \"Africa/Mbabane\",\n \"Etc/GMT-2\",\n ],\n },\n {\n value: \"FLE Standard Time\",\n abbr: \"FDT\",\n text: \"Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius\",\n utc: [\n \"Europe/Helsinki\",\n \"Europe/Kiev\",\n \"Europe/Mariehamn\",\n \"Europe/Riga\",\n \"Europe/Sofia\",\n \"Europe/Tallinn\",\n \"Europe/Uzhgorod\",\n \"Europe/Vilnius\",\n \"Europe/Zaporozhye\",\n ],\n },\n {\n value: \"Turkey Standard Time\",\n abbr: \"TDT\",\n text: \"Istanbul\",\n utc: [\"Europe/Istanbul\"],\n },\n {\n value: \"Israel Standard Time\",\n abbr: \"JDT\",\n text: \"Jerusalem\",\n utc: [\"Asia/Jerusalem\"],\n },\n {\n value: \"Libya Standard Time\",\n abbr: \"LST\",\n text: \"Tripoli\",\n utc: [\"Africa/Tripoli\"],\n },\n {\n value: \"Jordan Standard Time\",\n abbr: \"JST\",\n text: \"Amman\",\n utc: [\"Asia/Amman\"],\n },\n {\n value: \"Arabic Standard Time\",\n abbr: \"AST\",\n text: \"Baghdad\",\n utc: [\"Asia/Baghdad\"],\n },\n {\n value: \"Kaliningrad Standard Time\",\n abbr: \"KST\",\n text: \"Kaliningrad\",\n utc: [\"Europe/Kaliningrad\"],\n },\n {\n value: \"Arab Standard Time\",\n abbr: \"AST\",\n text: \"Kuwait, Riyadh\",\n utc: [\"Asia/Aden\", \"Asia/Bahrain\", \"Asia/Kuwait\", \"Asia/Qatar\", \"Asia/Riyadh\"],\n },\n {\n value: \"E. Africa Standard Time\",\n abbr: \"EAST\",\n text: \"Nairobi\",\n utc: [\n \"Africa/Addis_Ababa\",\n \"Africa/Asmera\",\n \"Africa/Dar_es_Salaam\",\n \"Africa/Djibouti\",\n \"Africa/Juba\",\n \"Africa/Kampala\",\n \"Africa/Khartoum\",\n \"Africa/Mogadishu\",\n \"Africa/Nairobi\",\n \"Antarctica/Syowa\",\n \"Etc/GMT-3\",\n \"Indian/Antananarivo\",\n \"Indian/Comoro\",\n \"Indian/Mayotte\",\n ],\n },\n {\n value: \"Moscow Standard Time\",\n abbr: \"MSK\",\n text: \"Moscow, St. Petersburg, Volgograd, Minsk\",\n utc: [\"Europe/Kirov\", \"Europe/Moscow\", \"Europe/Simferopol\", \"Europe/Volgograd\", \"Europe/Minsk\"],\n },\n {\n value: \"Samara Time\",\n abbr: \"SAMT\",\n text: \"Samara, Ulyanovsk, Saratov\",\n utc: [\"Europe/Astrakhan\", \"Europe/Samara\", \"Europe/Ulyanovsk\"],\n },\n {\n value: \"Iran Standard Time\",\n abbr: \"IDT\",\n text: \"Tehran\",\n utc: [\"Asia/Tehran\"],\n },\n {\n value: \"Arabian Standard Time\",\n abbr: \"AST\",\n text: \"Abu Dhabi, Muscat\",\n utc: [\"Asia/Dubai\", \"Asia/Muscat\", \"Etc/GMT-4\"],\n },\n {\n value: \"Azerbaijan Standard Time\",\n abbr: \"ADT\",\n text: \"Baku\",\n utc: [\"Asia/Baku\"],\n },\n {\n value: \"Mauritius Standard Time\",\n abbr: \"MST\",\n text: \"Port Louis\",\n utc: [\"Indian/Mahe\", \"Indian/Mauritius\", \"Indian/Reunion\"],\n },\n {\n value: \"Georgian Standard Time\",\n abbr: \"GET\",\n text: \"Tbilisi\",\n utc: [\"Asia/Tbilisi\"],\n },\n {\n value: \"Caucasus Standard Time\",\n abbr: \"CST\",\n text: \"Yerevan\",\n utc: [\"Asia/Yerevan\"],\n },\n {\n value: \"Afghanistan Standard Time\",\n abbr: \"AST\",\n text: \"Kabul\",\n utc: [\"Asia/Kabul\"],\n },\n {\n value: \"West Asia Standard Time\",\n abbr: \"WAST\",\n text: \"Ashgabat, Tashkent\",\n utc: [\n \"Antarctica/Mawson\",\n \"Asia/Aqtau\",\n \"Asia/Aqtobe\",\n \"Asia/Ashgabat\",\n \"Asia/Dushanbe\",\n \"Asia/Oral\",\n \"Asia/Samarkand\",\n \"Asia/Tashkent\",\n \"Etc/GMT-5\",\n \"Indian/Kerguelen\",\n \"Indian/Maldives\",\n ],\n },\n {\n value: \"Yekaterinburg Time\",\n abbr: \"YEKT\",\n text: \"Yekaterinburg\",\n utc: [\"Asia/Yekaterinburg\"],\n },\n {\n value: \"Pakistan Standard Time\",\n abbr: \"PKT\",\n text: \"Islamabad, Karachi\",\n utc: [\"Asia/Karachi\"],\n },\n {\n value: \"India Standard Time\",\n abbr: \"IST\",\n text: \"Chennai, Kolkata, Mumbai, New Delhi\",\n utc: [\"Asia/Kolkata\"],\n },\n {\n value: \"Sri Lanka Standard Time\",\n abbr: \"SLST\",\n text: \"Sri Jayawardenepura\",\n utc: [\"Asia/Colombo\"],\n },\n {\n value: \"Nepal Standard Time\",\n abbr: \"NST\",\n text: \"Kathmandu\",\n utc: [\"Asia/Kathmandu\"],\n },\n {\n value: \"Central Asia Standard Time\",\n abbr: \"CAST\",\n text: \"Nur-Sultan (Astana)\",\n utc: [\n \"Antarctica/Vostok\",\n \"Asia/Almaty\",\n \"Asia/Bishkek\",\n \"Asia/Qyzylorda\",\n \"Asia/Urumqi\",\n \"Etc/GMT-6\",\n \"Indian/Chagos\",\n ],\n },\n {\n value: \"Bangladesh Standard Time\",\n abbr: \"BST\",\n text: \"Dhaka\",\n utc: [\"Asia/Dhaka\", \"Asia/Thimphu\"],\n },\n {\n value: \"Myanmar Standard Time\",\n abbr: \"MST\",\n text: \"Yangon (Rangoon)\",\n utc: [\"Asia/Rangoon\", \"Indian/Cocos\"],\n },\n {\n value: \"SE Asia Standard Time\",\n abbr: \"SAST\",\n text: \"Bangkok, Hanoi, Jakarta\",\n utc: [\n \"Antarctica/Davis\",\n \"Asia/Bangkok\",\n \"Asia/Hovd\",\n \"Asia/Jakarta\",\n \"Asia/Phnom_Penh\",\n \"Asia/Pontianak\",\n \"Asia/Saigon\",\n \"Asia/Vientiane\",\n \"Etc/GMT-7\",\n \"Indian/Christmas\",\n ],\n },\n {\n value: \"N. Central Asia Standard Time\",\n abbr: \"NCAST\",\n text: \"Novosibirsk\",\n utc: [\"Asia/Novokuznetsk\", \"Asia/Novosibirsk\", \"Asia/Omsk\"],\n },\n {\n value: \"China Standard Time\",\n abbr: \"CST\",\n text: \"Beijing, Chongqing, Hong Kong, Urumqi\",\n utc: [\"Asia/Hong_Kong\", \"Asia/Macau\", \"Asia/Shanghai\"],\n },\n {\n value: \"North Asia Standard Time\",\n abbr: \"NAST\",\n text: \"Krasnoyarsk\",\n utc: [\"Asia/Krasnoyarsk\"],\n },\n {\n value: \"Singapore Standard Time\",\n abbr: \"MPST\",\n text: \"Kuala Lumpur, Singapore\",\n utc: [\n \"Asia/Brunei\",\n \"Asia/Kuala_Lumpur\",\n \"Asia/Kuching\",\n \"Asia/Makassar\",\n \"Asia/Manila\",\n \"Asia/Singapore\",\n \"Etc/GMT-8\",\n ],\n },\n {\n value: \"W. Australia Standard Time\",\n abbr: \"WAST\",\n text: \"Perth\",\n utc: [\"Antarctica/Casey\", \"Australia/Perth\"],\n },\n {\n value: \"Taipei Standard Time\",\n abbr: \"TST\",\n text: \"Taipei\",\n utc: [\"Asia/Taipei\"],\n },\n {\n value: \"Ulaanbaatar Standard Time\",\n abbr: \"UST\",\n text: \"Ulaanbaatar\",\n utc: [\"Asia/Choibalsan\", \"Asia/Ulaanbaatar\"],\n },\n {\n value: \"North Asia East Standard Time\",\n abbr: \"NAEST\",\n text: \"Irkutsk\",\n utc: [\"Asia/Irkutsk\"],\n },\n {\n value: \"Japan Standard Time\",\n abbr: \"JST\",\n text: \"Osaka, Sapporo, Tokyo\",\n utc: [\"Asia/Dili\", \"Asia/Jayapura\", \"Asia/Tokyo\", \"Etc/GMT-9\", \"Pacific/Palau\"],\n },\n {\n value: \"Korea Standard Time\",\n abbr: \"KST\",\n text: \"Seoul\",\n utc: [\"Asia/Pyongyang\", \"Asia/Seoul\"],\n },\n {\n value: \"Cen. Australia Standard Time\",\n abbr: \"CAST\",\n text: \"Adelaide\",\n utc: [\"Australia/Adelaide\", \"Australia/Broken_Hill\"],\n },\n {\n value: \"AUS Central Standard Time\",\n abbr: \"ACST\",\n text: \"Darwin\",\n utc: [\"Australia/Darwin\"],\n },\n {\n value: \"E. Australia Standard Time\",\n abbr: \"EAST\",\n text: \"Brisbane\",\n utc: [\"Australia/Brisbane\", \"Australia/Lindeman\"],\n },\n {\n value: \"AUS Eastern Standard Time\",\n abbr: \"AEST\",\n text: \"Canberra, Melbourne, Sydney\",\n utc: [\"Australia/Melbourne\", \"Australia/Sydney\"],\n },\n {\n value: \"West Pacific Standard Time\",\n abbr: \"WPST\",\n text: \"Guam, Port Moresby\",\n utc: [\n \"Antarctica/DumontDUrville\",\n \"Etc/GMT-10\",\n \"Pacific/Guam\",\n \"Pacific/Port_Moresby\",\n \"Pacific/Saipan\",\n \"Pacific/Truk\",\n ],\n },\n {\n value: \"Tasmania Standard Time\",\n abbr: \"TST\",\n text: \"Hobart\",\n utc: [\"Australia/Currie\", \"Australia/Hobart\"],\n },\n {\n value: \"Yakutsk Standard Time\",\n abbr: \"YST\",\n text: \"Yakutsk\",\n utc: [\"Asia/Chita\", \"Asia/Khandyga\", \"Asia/Yakutsk\"],\n },\n {\n value: \"Central Pacific Standard Time\",\n abbr: \"CPST\",\n text: \"Solomon Is., New Caledonia\",\n utc: [\n \"Antarctica/Macquarie\",\n \"Etc/GMT-11\",\n \"Pacific/Efate\",\n \"Pacific/Guadalcanal\",\n \"Pacific/Kosrae\",\n \"Pacific/Noumea\",\n \"Pacific/Ponape\",\n ],\n },\n {\n value: \"Vladivostok Standard Time\",\n abbr: \"VST\",\n text: \"Vladivostok\",\n utc: [\"Asia/Sakhalin\", \"Asia/Ust-Nera\", \"Asia/Vladivostok\"],\n },\n {\n value: \"New Zealand Standard Time\",\n abbr: \"NZST\",\n text: \"Auckland, Wellington\",\n utc: [\"Antarctica/McMurdo\", \"Pacific/Auckland\"],\n },\n {\n value: \"UTC+12\",\n abbr: \"U\",\n text: \"Coordinated Universal Time+12\",\n utc: [\n \"Etc/GMT-12\",\n \"Pacific/Funafuti\",\n \"Pacific/Kwajalein\",\n \"Pacific/Majuro\",\n \"Pacific/Nauru\",\n \"Pacific/Tarawa\",\n \"Pacific/Wake\",\n \"Pacific/Wallis\",\n ],\n },\n {\n value: \"Fiji Standard Time\",\n abbr: \"FST\",\n text: \"Fiji\",\n utc: [\"Pacific/Fiji\"],\n },\n {\n value: \"Magadan Standard Time\",\n abbr: \"MST\",\n text: \"Magadan\",\n utc: [\"Asia/Anadyr\", \"Asia/Kamchatka\", \"Asia/Magadan\", \"Asia/Srednekolymsk\"],\n },\n {\n value: \"Kamchatka Standard Time\",\n abbr: \"KDT\",\n text: \"Petropavlovsk-Kamchatsky - Old\",\n utc: [\"Asia/Kamchatka\"],\n },\n {\n value: \"Tonga Standard Time\",\n abbr: \"TST\",\n text: \"Nuku'alofa\",\n utc: [\"Etc/GMT-13\", \"Pacific/Enderbury\", \"Pacific/Fakaofo\", \"Pacific/Tongatapu\"],\n },\n {\n value: \"Samoa Standard Time\",\n abbr: \"SST\",\n text: \"Samoa\",\n utc: [\"Pacific/Apia\"],\n },\n]\n","import { timezones } from \"./timezones\"\n\nconst digitizeOffset = parsedOffset => {\n if (!parsedOffset) return \"+0\"\n const splitOffset = parsedOffset.split(\":\")\n return splitOffset.length > 1\n ? `${splitOffset[0]}${(splitOffset[1] / 60).toString().substr(1)}`\n : splitOffset[0]\n}\n\nconst normalizeOffset = parsedOffset => (parsedOffset ? parsedOffset.replace(\"−\", \"-\") : \"\")\n\nconst now = new Date()\nexport const timezoneList = () => {\n const memoized = {}\n return timezones.reduce((acc, timezone) => {\n const { utc } = timezone\n\n try {\n // We use 'fr' locale because it is the only one that returns back the UTC offset (dd/mm/yyyy, UTC-x) \n // so we can parse it later and digitize it.\n const dateString = new Intl.DateTimeFormat(\"fr\", {\n timeZone: utc[0],\n timeZoneName: \"short\",\n }).format(now)\n\n const [parsedOffset] = dateString.match(/[−+].+/) || []\n const normalizedOffset = normalizeOffset(parsedOffset)\n\n if (memoized[normalizedOffset])\n return acc.concat({ ...timezone, offset: memoized[normalizedOffset] })\n\n const digitizedOffset = digitizeOffset(normalizedOffset)\n\n memoized[normalizedOffset] = digitizedOffset\n return acc.concat({ ...timezone, offset: digitizedOffset })\n } catch (e) {\n return acc\n }\n }, [])\n}\n\nexport const timezonesById = timezones =>\n timezones.reduce((acc, { utc, ...timezone }) => {\n utc.forEach(item => (acc[item] = { ...timezone, utc: item }))\n return acc\n }, {})\n\nexport const getDefaultTimezone = () => {\n const dateFormat = new Intl.DateTimeFormat(\"default\", {})\n const usedOptions = dateFormat.resolvedOptions()\n return usedOptions\n}\n","import React, { useRef, useState, useEffect, useMemo, useCallback } from \"react\"\nimport { useToggle } from \"react-use\"\nimport { Drop, Flex, Text, Icon } from \"@netdata/netdata-ui\"\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { setOptionAction } from \"@/src/domains/global/actions\"\nimport { selectTimezoneSetting } from \"domains/global/selectors\"\nimport { MenuItem } from \"@/src/components/menus\"\nimport Item from \"../item\"\nimport Dropdown from \"./dropdown\"\nimport Search from \"./search\"\nimport Container from \"./container\"\nimport Wrapper from \"./wrapper\"\nimport OffsetItem from \"./offsetItem\"\nimport { getDefaultTimezone, timezoneList, timezonesById } from \"./utils\"\nimport { getHashParams } from \"utils/hash-utils\"\n\nconst timezones = timezoneList().sort((a, b) => a.offset - b.offset)\nconst byId = timezonesById(timezones)\n\nconst getTimezone = (selectedTimezone, timezoneHash) => {\n const timezone = timezoneHash\n ? timezoneHash\n : selectedTimezone === \"default\"\n ? getDefaultTimezone().timeZone\n : selectedTimezone\n\n return byId[timezone in byId ? timezone : getDefaultTimezone().timeZone] || {}\n}\n\nconst Timezone = () => {\n const [value, setValue] = useState(\"\")\n const [isOpen, toggle] = useToggle()\n\n const ref = useRef()\n const inputRef = useRef()\n\n const { updateUtcParam } = window.urlOptions\n\n useEffect(() => {\n if (!inputRef.current || !isOpen) return\n inputRef.current.focus()\n }, [isOpen])\n\n const dispatch = useDispatch()\n const selectedTimezone = useSelector(selectTimezoneSetting)\n\n const selectedOffset = useMemo(() => {\n const { utc: timezoneHash = \"\" } = getHashParams()\n const { offset = \"\", utc = \"\" } = getTimezone(selectedTimezone, timezoneHash)\n\n if (timezoneHash !== utc) updateUtcParam(utc)\n if (selectedTimezone !== utc) dispatch(setOptionAction({ key: \"timezone\", value: utc }))\n\n dispatch(setOptionAction({ key: \"utcOffset\", value: parseFloat(offset) }))\n\n return offset\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedTimezone])\n\n const zones = useMemo(() => {\n if (!value) return timezones\n return timezones.filter(\n ({ text, offset }) =>\n text.toUpperCase().includes(value.toUpperCase()) || offset.includes(value)\n )\n }, [value])\n\n const close = () => {\n toggle(false)\n setValue(\"\")\n }\n\n const onSelect = useCallback(utc => {\n updateUtcParam(utc)\n dispatch(setOptionAction({ key: \"timezone\", value: utc }))\n close()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const onChange = useCallback(e => setValue(e.target.value), [])\n\n return (\n <Item hasBorder>\n <MenuItem round={1} onClick={toggle} ref={ref} Wrapper={Wrapper}>\n <Flex gap={1}>\n <Text color=\"textLite\" whiteSpace=\"nowrap\">\n UTC {selectedOffset}\n </Text>\n </Flex>\n <Icon name=\"chevron_down\" color=\"text\" width=\"12px\" height=\"12px\" />\n </MenuItem>\n {ref.current && isOpen && (\n <Drop\n target={ref.current}\n align={{ top: \"bottom\", left: \"left\" }}\n onEsc={close}\n onClickOutside={close}\n animation\n >\n <Dropdown>\n <Search value={value} onChange={onChange} ref={inputRef} />\n <Container>\n {zones.map(({ text, offset, utc }) => (\n <OffsetItem\n key={text}\n name={text}\n offset={offset}\n utc={utc[0]}\n onSelect={onSelect}\n />\n ))}\n </Container>\n </Dropdown>\n </Drop>\n )}\n </Item>\n )\n}\n\nexport default Timezone\n","import React, { useCallback, useEffect, useState, useRef } from \"react\"\nimport styled from \"styled-components\"\nimport { useSelector, useDispatch } from \"store/redux-separate-context\"\nimport { useLocalStorage } from \"react-use\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport { sendToChildIframe, useListenToPostMessage } from \"utils/post-message\"\nimport { getIframeSrc, NETDATA_REGISTRY_SERVER } from \"utils/utils\"\nimport useUserNodeAccessMessage from \"hooks/use-user-node-access\"\nimport { selectRegistry, selectCloudBaseUrl } from \"domains/global/selectors\"\nimport { LOCAL_STORAGE_NEEDS_SYNC } from \"domains/dashboard/sagas\"\nimport { setOfflineAction } from \"@/src/domains/dashboard/actions\"\nimport { SIGN_IN_IFRAME_ID } from \"components/header/constants\"\n\nconst IframeContainer = styled(Flex).attrs({ position: \"absolute\" })`\n display: none;\n`\nconst Iframe = ({ signedIn }) => {\n const [rendered, setRendered] = useState(false)\n const signInMsg = useRef()\n const ref = useRef()\n\n const [lsValue, , removeLsValue] = useLocalStorage(LOCAL_STORAGE_NEEDS_SYNC)\n const cloudBaseURL = useSelector(selectCloudBaseUrl)\n const registry = useSelector(selectRegistry)\n\n const dispatch = useDispatch()\n\n const { origin, pathname } = window.location\n const nameParam = encodeURIComponent(registry.hostname)\n const originParam = encodeURIComponent(origin + pathname)\n\n const signInIframeUrl = getIframeSrc(\n cloudBaseURL,\n `sign-in?id=${registry.machineGuid}&name=${nameParam}&origin=${originParam}`\n )\n\n useListenToPostMessage(\"hello-from-sign-in\", msg => {\n signInMsg.current = msg\n })\n\n useUserNodeAccessMessage()\n\n const onLoad = useCallback(() => {\n setRendered(true)\n setTimeout(() => dispatch(setOfflineAction({ offline: signInMsg.current === undefined })), 500)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n const handler = e => {\n if (!e?.target) return\n if (e.target.src === signInIframeUrl && !rendered) onLoad()\n }\n\n window.addEventListener(\"DOMFrameContentLoaded\", handler)\n return () => window.removeEventListener(\"DOMFrameContentLoaded\", handler)\n }, [signInIframeUrl, rendered, onLoad])\n\n useEffect(() => {\n if (!signedIn || !ref.current) return\n if (!registry.registryServer || registry.registryServer === NETDATA_REGISTRY_SERVER) return\n if (!lsValue) return\n\n removeLsValue()\n\n const { registryMachinesArray } = registry\n if (registryMachinesArray && registryMachinesArray.length > 0) {\n sendToChildIframe(ref.current, {\n type: \"synced-private-registry\",\n payload: registryMachinesArray,\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [signedIn, registry, lsValue])\n\n return (\n <IframeContainer as=\"iframe\" id={SIGN_IN_IFRAME_ID} src={signInIframeUrl} onLoad={onLoad} />\n )\n}\n\nexport default Iframe\n","import { useCallback, useState } from \"react\"\nimport { useLocalStorage } from \"react-use\"\nimport { useDispatch } from \"react-redux\"\nimport { useListenToPostMessage } from \"@/src/utils/post-message\"\nimport { isSignedInAction } from \"@/src/domains/dashboard/actions\"\n\nconst useCheckSignInStatus = () => {\n const dispatch = useDispatch()\n const [value, setValue] = useLocalStorage(\"has-sign-in-history\")\n const [hasSignedInBefore, setHasSignedInBefore] = useState(value)\n\n const onMessage = useCallback(isNew => {\n if (isNew) {\n setHasSignedInBefore(isNew)\n setValue(isNew)\n }\n dispatch(isSignedInAction({ isSignedIn: isNew }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const [signedIn] = useListenToPostMessage(\"is-signed-in\", onMessage)\n\n return [signedIn, hasSignedInBefore]\n}\n\nexport default useCheckSignInStatus\n","import React from \"react\"\nimport { useSelector } from \"react-redux\"\nimport { Button } from \"@netdata/netdata-ui\"\nimport SignInButton from \"components/auth/signIn\"\nimport SignInIframe from \"components/auth/signIn/iframe\"\nimport useCheckSignInStatus from \"components/auth/signIn/useCheckSignInStatus\"\nimport { selectIsCloudEnabled } from \"domains/global/selectors\"\nimport Tooltip from \"@/src/components/tooltips\"\n\nconst SignIn = () => {\n const [signedIn] = useCheckSignInStatus()\n const cloudEnabled = useSelector(selectIsCloudEnabled)\n\n return (\n cloudEnabled && (\n <Tooltip\n content=\"Sign in to Netdata to monitor all your nodes at once, have composite charts, custom dashboards, use intelligent features and more\"\n align=\"bottom\"\n plain\n >\n <div>\n <SignInIframe signedIn={signedIn} />\n {!signedIn && (\n <SignInButton utmParameters={{ content: \"topbar\" }}>\n {({ isRegistry, link, offline, onSignIn }) => (\n <Button\n data-testid=\"header-signin\"\n label=\"Sign in\"\n disabled={offline}\n {...(isRegistry ? { as: \"a\", href: link } : { onClick: onSignIn })}\n />\n )}\n </SignInButton>\n )}\n </div>\n </Tooltip>\n )\n )\n}\n\nexport default SignIn\n","import { Text, NavigationTab, Icon } from \"@netdata/netdata-ui\"\nimport React from \"react\"\n\nconst CloudTab = ({ label, active, showBorderLeft, icon, onActivate }) => {\n const handleOnActivate = () => {\n if (active) return\n if (onActivate) onActivate()\n }\n return (\n <NavigationTab\n onActivate={handleOnActivate}\n icon={<Icon name={icon} size=\"small\" />}\n fixed\n closable={false}\n showBorderLeft={showBorderLeft}\n active={active}\n >\n <Text>{label}</Text>\n </NavigationTab>\n )\n}\n\nexport default CloudTab\n","import React from \"react\"\nimport {\n Flex,\n Button,\n Box,\n Text,\n H3,\n H4,\n Modal,\n ModalContent,\n ModalBody,\n ModalHeader,\n ModalCloseButton,\n ModalFooter,\n Icon,\n} from \"@netdata/netdata-ui\"\n\nimport GoToCloud from \"components/auth/signIn\"\n\nexport const TITLE = \"Discover the free benefits of Netdata Cloud\"\n\nconst DiscoverCloudModal = ({ closeModal, text, header, handleGoToCloud, image, video }) => {\n return (\n <Modal borderShadow backdrop={false}>\n <ModalContent background=\"modalBackground\">\n <ModalHeader>\n <Flex gap={2}>\n <Icon color=\"white\" name=\"netdata\" />\n <H3 margin={[0]}>{TITLE}:</H3>\n </Flex>\n\n <ModalCloseButton onClose={closeModal} />\n </ModalHeader>\n <ModalBody>\n <Flex column width={189} height={130}>\n <Flex padding={[0, 0, 4, 0]} column gap={4}>\n <Flex alignItems=\"center\">\n <H4 margin={[0]}>{header}</H4>\n <Box\n sx={{ marginLeft: \"auto\" }}\n data-testid=\"go-to-cloud-cta\"\n margin={[0, 2, 0, 0]}\n width={{ min: 40 }}\n >\n <GoToCloud utmParameters={{ campaign: \"discover_cloud\" }}>\n {({ link }) => (\n <Box\n label={\n <Text textTransform=\"none\" strong color=\"panel\">\n Sign in to Netdata Cloud!\n </Text>\n }\n width=\"100%\"\n onClick={() => handleGoToCloud({ link })}\n as={Button}\n small\n data-ga={\"go-to-cloud-button\"}\n data-testid=\"cta1-button\"\n />\n )}\n </GoToCloud>\n </Box>\n </Flex>\n {text()}\n </Flex>\n {image && (\n <Flex height=\"auto\" width=\"100%\" overflow=\"hidden\">\n <Box\n sx={{\n width: \"100%\",\n height: \"auto\",\n }}\n as=\"img\"\n src={image}\n ></Box>\n </Flex>\n )}\n {video && (\n <Flex height=\"100%\" width=\"100%\">\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\n <iframe\n title={`discover-cloud-iframe}`}\n width=\"100%\"\n height=\"100%\"\n src={video}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n </Box>\n </Flex>\n )}\n </Flex>\n </ModalBody>\n <ModalFooter></ModalFooter>\n </ModalContent>\n </Modal>\n )\n}\n\nexport default DiscoverCloudModal\n","import { Text } from \"@netdata/netdata-ui\"\nimport Anchor from \"@/src/components/anchor\"\nimport React from \"react\"\n\nconst TabsContentText = ({ children }) => <Text fontSize=\"16px\">{children}</Text>\n\nexport const TabsContent = {\n Home: {\n id: \"Home\",\n label: \"Home\",\n header: \"Home\",\n text: () => (\n <TabsContentText>\n The Home view in Netdata cloud provides summarized relevant information in an easily\n digestible display. You can see information about your nodes, data collection and retention\n stats, alerts, users and dashboards.\n </TabsContentText>\n ),\n icon: \"room_home\",\n image: \"images/home.png\",\n },\n nodeView: {\n id: \"nodeView\",\n label: \"Node View\",\n header: \"Node View\",\n text: () => (\n <>\n <TabsContentText>\n The single node view you are currently using will of course be available on Netdata Cloud\n as well. In addition, the charts and visualization on Netdata Cloud will be more flexible\n and powerful for troubleshooting than what is available on the agent.\n </TabsContentText>\n <TabsContentText>\n Netdata Cloud also comes with the Metric Correlations feature that lets you quickly find\n metrics and charts related to a particular window of interest that you want to explore\n further. By displaying the standard Netdata dashboard, filtered to show only charts that\n are relevant to the window of interest, you can get to the root cause sooner.\n </TabsContentText>\n </>\n ),\n icon: \"nodes_hollow\",\n image: \"images/nodeView.png\",\n },\n Overview: {\n id: \"Overview\",\n label: \"Overview\",\n header: \"Overview\",\n text: () => (\n <>\n <TabsContentText>\n The Overview tab is a great way to monitor your infrastructure using Netdata Cloud. While\n the interface might look similar to local dashboards served by an Agent, or even the\n single-node dashboards in Netdata Cloud, Overview uses composite charts. These charts\n display real-time aggregated metrics from all the nodes (or a filtered selection) in a\n given War Room.\n </TabsContentText>\n <TabsContentText>\n With Overview's composite charts, you can see your infrastructure from a single pane of\n glass, discover trends or anomalies, then drill down by grouping metrics by node and\n jumping to single-node dashboards for root cause analysis.\n </TabsContentText>\n <TabsContentText>\n Here's an example of a composite chart visualizing Disk I/O bandwidth from 5 different\n nodes in one chart.\n </TabsContentText>\n </>\n ),\n icon: \"room_overview\",\n image: \"images/overview.png\",\n },\n Nodes: {\n id: \"Nodes\",\n label: \"Nodes\",\n header: \"Nodes\",\n text: () => (\n <TabsContentText>\n The Nodes view in Netdata Cloud lets you see and customize key metrics from any number of\n Agent-monitored nodes and seamlessly navigate to any node's dashboard for troubleshooting\n performance issues or anomalies using Netdata's highly-granular metrics.\n </TabsContentText>\n ),\n icon: \"nodes_hollow\",\n image: \"images/nodes.jpg\",\n },\n Dashboards: {\n id: \"Dashboards\",\n label: \"Dashboards\",\n header: \"Dashboards\",\n text: () => (\n <TabsContentText>\n With Netdata Cloud, you can build new dashboards that target your infrastructure's unique\n needs. Put key metrics from any number of distributed systems in one place for a bird's eye\n view of your infrastructure.\n </TabsContentText>\n ),\n icon: \"dashboard\",\n image: \"images/dashboards.png\",\n },\n Alerts: {\n id: \"Alerts\",\n label: \"Alerts\",\n header: \"Alerts\",\n text: () => (\n <TabsContentText>\n The Alerts view gives you a high level of availability and performance information for every\n node you're monitoring with Netdata Cloud. It also offers an easy way to drill down into any\n particular alert by taking the user to the dedicated alert view from where the user can run\n metrics correlation or take further troubleshooting steps.\n </TabsContentText>\n ),\n icon: \"alarm\",\n image: \"images/alerts.jpg\",\n },\n Anomalies: {\n id: \"Anomalies\",\n label: \"Anomalies\",\n header: \"Anomaies\",\n text: () => (\n <TabsContentText>\n The Anomalies view on Netdata Cloud lets you quickly surface potentially anomalous metrics\n and charts related to a particular highlight window of interest using Anomaly Advisor.\n Anomalies are detected using per metric unsupervised machine learning running at the edge!\n </TabsContentText>\n ),\n icon: \"anomaliesLens\",\n video:\n \"https://user-images.githubusercontent.com/24860547/165943403-1acb9759-7446-4704-8955-c566d04ad7ab.mp4\",\n },\n Pricing: {\n id: \"Pricing\",\n label: \"Pricing\",\n header: \"Pricing\",\n text: () => (\n <TabsContentText>\n Netdata Cloud’s distributed architecture—with processing occurring at the individual\n nodes—enables us to add any number of users at marginal cost. Couple this with our upcoming\n paid plan with added functionality for enterprise customers, and it means we can commit to\n providing our current functionality for free, always.\n </TabsContentText>\n ),\n image: \"images/pricing.png\",\n icon: \"pricing\",\n },\n Privacy: {\n id: \"Privacy\",\n label: \"Privacy\",\n header: \"Privacy\",\n text: () => (\n <>\n <TabsContentText>\n Data privacy is very important to us. We firmly believe that your data belongs to you.\n This is why we don't store any metric data in Netdata Cloud.\n </TabsContentText>\n <TabsContentText>\n Your local installations of the Netdata Agent form the basis for the Netdata Cloud. All\n the data that you see in the web browser when using Netdata Cloud, is actually streamed\n directly from the Netdata Agent to the Netdata Cloud dashboard. The data passes through\n our systems, but it isn't stored. You can learn more about{\" \"}\n <Anchor\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://learn.netdata.cloud/docs/agent/netdata-security\"\n >\n the Agent's security design\n </Anchor>{\" \"}\n design in the Agent documentation.\n </TabsContentText>\n <TabsContentText>\n However, to be able to offer the stunning visualizations and advanced functionality of\n Netdata Cloud, it does store a limited number of metadata. This metadata is ONLY available\n to Netdata and NEVER to any 3rd parties. You can learn more about what metadata is stored\n in Netdata cloud in our\n <Anchor\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://learn.netdata.cloud/docs/cloud/data-privacy\"\n >\n {\" \"}\n documentation\n </Anchor>\n </TabsContentText>\n </>\n ),\n icon: \"privacy\",\n },\n}\n","import React from \"react\"\nimport {\n Text,\n Drop,\n ModalContent,\n ModalBody,\n ModalHeader,\n ModalCloseButton,\n ModalFooter,\n Flex,\n Button,\n Box,\n H3,\n H4,\n Icon,\n} from \"@netdata/netdata-ui\"\n\nimport GoToCloud from \"components/auth/signIn\"\n\nexport const TITLE = \"Discover the free benefits of Netdata Cloud\"\n\nconst DiscoverCloudDrop = ({\n parentRef,\n isDropdownOpen,\n closeDropdown,\n text,\n header,\n handleGoToCloud,\n image,\n video,\n}) => {\n if (parentRef.current && isDropdownOpen)\n return (\n <Drop\n backdrop\n data-testid=\"selectedNodesDropdown\"\n onEsc={closeDropdown}\n align={{ top: \"bottom\", left: \"left\" }}\n target={parentRef.current}\n onClickOutside={closeDropdown}\n >\n <ModalContent background=\"modalBackground\">\n <ModalHeader>\n <Flex gap={2}>\n <Icon color=\"white\" name=\"netdata\" />\n <H3 margin={[0]}>{TITLE}:</H3>\n </Flex>\n\n <ModalCloseButton onClose={closeDropdown} />\n </ModalHeader>\n <ModalBody>\n <Flex column width={189} height={130}>\n <Flex padding={[0, 0, 4, 0]} column gap={4}>\n <Flex alignItems=\"center\">\n <H4 margin={[0]}>{header}</H4>\n <Box\n sx={{ marginLeft: \"auto\" }}\n data-testid=\"go-to-cloud-cta\"\n margin={[0, 2, 0, 0]}\n width={{ min: 40 }}\n >\n <GoToCloud utmParameters={{ campaign: \"discover_cloud\" }}>\n {({ link }) => (\n <Box\n label={\n <Text textTransform=\"none\" strong color=\"panel\">\n Sign in to Netdata Cloud!\n </Text>\n }\n width=\"100%\"\n onClick={() => handleGoToCloud({ link })}\n data-testid=\"cta1-button\"\n as={Button}\n small\n data-ga={\"go-to-cloud-button\"}\n />\n )}\n </GoToCloud>\n </Box>\n </Flex>\n {text()}\n </Flex>\n {image && (\n <Flex height=\"auto\" width=\"100%\" overflow=\"hidden\">\n <Box\n sx={{\n width: \"100%\",\n height: \"auto\",\n }}\n as=\"img\"\n src={image}\n ></Box>\n </Flex>\n )}\n {video && (\n <Flex height=\"100%\" width=\"100%\">\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\n <iframe\n title={`discover-cloud-iframe}`}\n width=\"100%\"\n height=\"100%\"\n src={video}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n </Box>\n </Flex>\n )}\n </Flex>\n </ModalBody>\n <ModalFooter></ModalFooter>\n </ModalContent>\n </Drop>\n )\n\n return null\n}\n\nexport default DiscoverCloudDrop\n","import React, { useState, useRef } from \"react\"\nimport { Text, Flex, NavigationTabs } from \"@netdata/netdata-ui\"\n\nimport CloudTab from \"./cloudTab\"\nimport { TITLE } from \"./discoverCloudModal\"\n\nimport { callAll } from \"@/src/utils/utils\"\nimport { TabsContent } from \"./contents\"\n\nimport DiscoverCloudDrop from \"./discoverCloudDrop\"\n\nconst Wrapper = Flex\nconst InnerPositioner = Flex\n\nconst DiscoverCloud = () => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [selectedModalContent, setSelectedModalContent] = useState(null)\n const dropDownParentRef = useRef()\n\n const handleOpenModal = () => {\n setIsModalOpen(true)\n }\n\n const handleCloseModal = () => {\n setIsModalOpen(false)\n }\n\n const handleGoToCloud = ({ link }) => {\n window.location.href = link\n }\n\n const handleSetModalContent = content => {\n setSelectedModalContent(content)\n }\n const handleResetModalContent = () => {\n setSelectedModalContent(null)\n }\n\n return (\n <Wrapper padding={[0, 0, 0, 4]} position=\"relative\" height={15}>\n <InnerPositioner\n padding={[4, 2, 4, 2]}\n gap={4}\n height=\"100%\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Text color=\"primary\">{TITLE}:</Text>\n <Flex ref={dropDownParentRef}>\n <NavigationTabs>\n {Object.keys(TabsContent).map((key, index) => {\n const { label, icon, id } = TabsContent[key]\n const selectedContentId = selectedModalContent ? selectedModalContent.id : null\n return (\n <CloudTab\n key={key}\n icon={icon}\n active={id === selectedContentId}\n label={label}\n showBorderLeft={index === 0}\n onActivate={callAll(handleOpenModal, () =>\n handleSetModalContent(TabsContent[key])\n )}\n />\n )\n })}\n </NavigationTabs>\n </Flex>\n </InnerPositioner>\n <DiscoverCloudDrop\n parentRef={dropDownParentRef}\n isDropdownOpen={isModalOpen}\n {...selectedModalContent}\n closeDropdown={callAll(handleCloseModal, handleResetModalContent)}\n handleGoToCloud={handleGoToCloud}\n />\n {/* {isModalOpen && selectedModalContent && (\n <DiscoverCloudModal\n {...selectedModalContent}\n closeModal={callAll(handleCloseModal, handleResetModalContent)}\n handleGoToCloud={handleGoToCloud}\n />\n )} */}\n </Wrapper>\n )\n}\n\nexport default DiscoverCloud\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { Flex, Box } from \"@netdata/netdata-ui\"\nimport Node from \"./node\"\nimport Options from \"./options\"\nimport Version from \"./version\"\nimport GlobalControls from \"./globalControls\"\nimport Alarms from \"./alarms\"\nimport News from \"./news\"\nimport Timezone from \"./timezone\"\nimport SignIn from \"./signIn\"\nimport { CloudConnectionStatus } from \"./ACLK\"\nimport { DiscoverCloud } from \"@/src/components/discover-cloud\"\nimport { selectIsCloudEnabled } from \"domains/global/selectors\"\nimport { useSelector } from \"react-redux\"\n\nconst Wrapper = styled(Flex).attrs({\n as: \"header\",\n position: \"relative\",\n justifyContent: \"between\",\n background: \"panel\",\n zIndex: 20,\n width: \"100%\",\n padding: [2, 4, 2, 4],\n})`\n pointer-events: all;\n`\n\nconst Header = () => {\nconst cloudEnabled = useSelector(selectIsCloudEnabled)\n\n return <Wrapper>\n <Flex alignItems=\"center\" gap={3}>\n <Node />\n </Flex>\n <Flex justifyContent=\"end\" alignItems=\"center\" gap={3}>\n <CloudConnectionStatus />\n <Version />\n <News />\n <Options />\n <Timezone />\n <GlobalControls />\n <Alarms />\n <SignIn />\n </Flex>\n {cloudEnabled&& <Box sx={{ background: \"#272B30\" }} position=\"absolute\" top=\"52px\" left=\"0px\" right=\"0px\">\n <DiscoverCloud />\n </Box>} \n</Wrapper>\n}\n\n\n\nexport default Header\n","import styled from \"styled-components\"\nimport { Button } from \"@netdata/netdata-ui\"\n\nconst ExpandButton = styled(Button)`\n&& {\n > .button-icon {\n width: 6px;\n height: 9px;\n }\n`\nexport default ExpandButton\n","import React from \"react\"\nimport { useSelector } from \"react-redux\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport { selectCloudBaseUrl } from \"domains/global/selectors\"\nimport { getIframeSrc } from \"@/src/utils\"\n\n\nconst SignOut = ({ flavour = \"default\", ...rest }) => {\n const cloudBaseURL = useSelector(selectCloudBaseUrl)\n\n return (\n <Flex\n alignItems=\"center\"\n as=\"iframe\"\n src={`${getIframeSrc(cloudBaseURL, \"sign-out\")}?type=${flavour}`}\n border={{ side: \"all\", size: \"0px\" }}\n width={{ max: \"128px\" }}\n height={{ max: \"40px\" }}\n {...rest}\n />\n )\n}\n\nexport default SignOut\n","import React, { useMemo } from \"react\"\nimport { ThemeProvider } from \"styled-components\"\nimport { createSelector } from \"reselect\"\nimport { useToggle } from \"react-use\"\nimport { Flex, Button, DarkTheme, Text, Layer } from \"@netdata/netdata-ui\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { MenuItem } from \"components/menus\"\nimport SignOut from \"components/auth/signOut\"\nimport SignIn from \"components/auth/signIn\"\n\nconst SignInItem = () => {\n const onClick = (e, link) => {\n e.stopPropagation()\n window.location.href = link\n }\n return (\n <SignIn utmParameters={{ content: \"userSettings\" }}>\n {({ isRegistry, link, onSignIn }) => (\n <Text onClick={isRegistry ? e => onClick(e, link) : onSignIn}>Sign in</Text>\n )}\n </SignIn>\n )\n}\n\nconst isSignedInSelector = createSelector(\n ({ dashboard }) => dashboard,\n ({ isSignedIn }) => isSignedIn\n)\n\nconst UserSettings = () => {\n const [isOpen, toggle] = useToggle()\n const signedIn = useSelector(isSignedInSelector)\n\n const menuItems = useMemo(\n () => [\n ...(signedIn\n ? [\n {\n children: \"Operational Status\",\n onClick: () =>\n window.open(\"https://status.netdata.cloud\", \"_blank\", \"noopener,noreferrer\"),\n },\n ]\n : []),\n ...(signedIn ? [{ separator: true }] : []),\n ...(signedIn\n ? [\n {\n children: (\n <SignOut\n data-testid=\"signout-button-sidebar\"\n flavour=\"borderless\"\n height={{ max: \"18px\" }}\n />\n ),\n },\n ]\n : [{ children: <SignInItem /> }]),\n ],\n [signedIn]\n )\n\n return (\n <ThemeProvider theme={DarkTheme}>\n <Button\n data-testid=\"avatar-button-sidebar\"\n flavour=\"borderless\"\n neutral\n icon=\"user\"\n title=\"User settings\"\n name=\"userSettings\"\n onClick={toggle}\n />\n {isOpen && (\n <Layer\n position=\"bottom-left\"\n onClickOutside={toggle}\n onEsc={toggle}\n backdrop={false}\n margin={[5, 18]}\n >\n <Flex column width={52} background=\"mainBackground\" padding={[3]} round>\n {menuItems.map((item, i) => {\n if (item.separator) return <Flex height=\"1px\" background=\"disabled\" key={i} />\n return (\n <MenuItem\n key={i}\n padding={[2, 4]}\n round={1}\n {...(item.onClick && { onClick: item.onClick })}\n >\n {item.children}\n </MenuItem>\n )\n })}\n </Flex>\n </Layer>\n )}\n </ThemeProvider>\n )\n}\n\nexport default UserSettings\n","import React from \"react\"\nimport { Flex, Button } from \"@netdata/netdata-ui\"\n\nconst SpacesSkeleton = () => (\n <React.Fragment>\n <Flex\n width=\"40px\"\n height=\"40px\"\n round={2}\n border={{ side: \"all\", color: \"border\", size: \"2px\", type: \"dotted\" }}\n />\n <Flex height=\"1px\" background=\"separator\" width=\"20px\" />\n <Button icon=\"plus\" disabled />\n </React.Fragment>\n)\n\nexport default SpacesSkeleton\n","import React from \"react\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectCloudBaseUrl } from \"domains/global/selectors\"\nimport { getIframeSrc } from \"utils/utils\"\n\nconst SpacesIframe = () => {\n const cloudBaseURL = useSelector(selectCloudBaseUrl)\n return (\n <Flex\n as=\"iframe\"\n src={getIframeSrc(cloudBaseURL, \"space-bar\")}\n title=\"Space Bar\"\n height=\"100%\"\n width=\"100%\"\n border={{ side: \"all\", size: \"0px\" }}\n overflow=\"hidden\"\n />\n )\n}\n\nexport default SpacesIframe\n","import React from \"react\"\nimport { useSelector } from \"react-redux\"\nimport { Icon, Flex, Button, Documentation } from \"@netdata/netdata-ui\"\nimport { selectIsCloudEnabled } from \"domains/global/selectors\"\nimport ExpandButton from \"./expandButton\"\nimport UserSettings from \"./userSettings\"\nimport SpacesSkeleton from \"./spacesSkeleton\"\nimport SpacesIframe from \"./spacesIframe\"\n\nconst Spaces = ({ isOpen, toggle, isSignedIn }) => {\n const cloudEnabled = useSelector(selectIsCloudEnabled)\n\n return (\n <Flex\n column\n justifyContent=\"between\"\n background=\"panel\"\n padding={[3, 0]}\n width=\"64px\"\n alignItems=\"center\"\n gap={6}\n position=\"relative\"\n overflow=\"hidden\"\n >\n <Flex column gap={4} alignItems=\"center\" height=\"100%\" overflow=\"hidden\">\n <Icon color=\"success\" name=\"netdataPress\" height=\"32px\" width=\"32px\" />\n {!isOpen && (\n <ExpandButton\n icon=\"chevron_right_s\"\n onClick={toggle}\n small\n neutral\n flavour=\"borderless\"\n themeType=\"dark\"\n />\n )}\n {cloudEnabled && isSignedIn && <SpacesIframe />}\n {cloudEnabled && !isSignedIn && <SpacesSkeleton />}\n </Flex>\n <Flex column gap={4} alignItems=\"center\">\n <Documentation app=\"agent\">\n {toggle => (\n <Button\n flavour=\"borderless\"\n neutral\n themeType=\"dark\"\n className=\"btn\"\n icon=\"question\"\n onClick={toggle}\n title=\"Need help?\"\n />\n )}\n </Documentation>\n <Button\n flavour=\"borderless\"\n neutral\n themeType=\"dark\"\n className=\"btn\"\n data-toggle=\"modal\"\n data-target=\"#optionsModal\"\n icon=\"gear\"\n title=\"Settings\"\n />\n {cloudEnabled && <UserSettings />}\n </Flex>\n </Flex>\n )\n}\n\nexport default Spaces\n","// some old functions here, i don't have time to comprehend them now\n\n// --------------------------------------------------------------------\n// natural sorting\n// http://www.davekoelle.com/files/alphanum.js - LGPL\n\nconst naturalSortChunkify = (t: string) => {\n const tz = []\n let x = 0\n let y = -1; let n = 0 as boolean | number; let i; let j\n\n // eslint-disable-next-line no-cond-assign,no-plusplus\n while (i = (j = t.charAt(x++)).charCodeAt(0)) {\n const m = (i >= 48 && i <= 57)\n if (m !== n) {\n // eslint-disable-next-line no-plusplus\n tz[++y] = \"\"\n n = m\n }\n tz[y] += j\n }\n\n return tz\n}\n\n\nexport const naturalSortCompare = (a: string, b: string) => {\n const aa = naturalSortChunkify(a.toLowerCase())\n const bb = naturalSortChunkify(b.toLowerCase())\n\n // eslint-disable-next-line no-plusplus\n for (let x = 0; aa[x] && bb[x]; x++) {\n if (aa[x] !== bb[x]) {\n const c = Number(aa[x]); const\n d = Number(bb[x])\n if (c.toString() === aa[x] && d.toString() === bb[x]) {\n return c - d\n }\n return (aa[x] > bb[x]) ? 1 : -1\n }\n }\n return aa.length - bb.length\n}\n\n\ninterface ObjectsWithPriority {\n [key: string]: {\n priority: number\n }\n}\nexport const sortObjectByPriority = <T extends ObjectsWithPriority>(object: T) => {\n const sorted = Object.keys(object)\n\n sorted.sort((a, b) => {\n if (object[a].priority < object[b].priority) {\n return -1\n }\n if (object[a].priority > object[b].priority) {\n return 1\n }\n return naturalSortCompare(a, b)\n })\n\n return sorted\n}\n\n\ninterface PrioritySortObject {\n name: string\n priority: number\n}\nexport const prioritySort = <T extends PrioritySortObject>(a: T, b: T) => {\n if (a.priority < b.priority) {\n return -1\n }\n if (a.priority > b.priority) {\n return 1\n }\n return naturalSortCompare(a.name, b.name)\n}\n","import { naturalSortCompare } from \"domains/dashboard/utils/sorting\"\n\nconst getBaseUrl = hostname => {\n let base = document.location.origin.toString() + decodeURI(document.location.pathname.toString())\n if (base.endsWith(`/host/${hostname}/`)) {\n base = base.substring(0, base.length - `/host/${hostname}/`.toString().length)\n }\n\n if (base.endsWith(\"/\")) {\n base = base.substring(0, base.length - 1)\n }\n\n return base\n}\n\nconst getNodeUrl = (baseUrl, hostname) => `${baseUrl}/host/${hostname}/`\n\nconst getNodes = (hosts, hostname, hostsStatus) => {\n if (!hosts || !hostname) return {}\n\n // decodeURI, because pathname (which is hostname) can contain white-spaces\n // or other characters which are URIencoded when user clicks the link\n // and we need to match it with `chartsMetadata.hostname`\n const baseUrl = getBaseUrl(hostname)\n\n const [{ hostname: parentNodeHostname }] = hosts\n\n const parentNode = {\n hostname: parentNodeHostname,\n url: `${baseUrl}/`,\n }\n\n const replicatedNodes = hosts\n .slice(1)\n .map(({ hostname }, index) => ({\n hostname,\n url: getNodeUrl(baseUrl, hostname),\n status: hostsStatus.find(host => host.hostname === hostname)?.reachable || false,\n }))\n .sort((a, b) => naturalSortCompare(a.hostname, b.hostname))\n\n return {\n parentNode,\n replicatedNodes,\n }\n}\n\nexport default getNodes\n","import styled from \"styled-components\"\nimport { Flex } from \"@netdata/netdata-ui\"\n\nconst Anchor = styled(Flex).attrs({\n as: \"a\",\n gap: 2,\n alignItems: \"center\",\n})`\n & :hover {\n text-decoration: none;\n }\n`\n\nexport default Anchor\n","import React from \"react\"\nimport { Flex, Text, Icon } from \"@netdata/netdata-ui\"\nimport Pill from \"components/header/pill\"\nimport Anchor from \"./anchor\"\n\nconst Node = ({ hostname, url, status }) => {\n return (\n <Anchor href={url} justifyContent=\"between\" padding={[0, 0, 0, 2]}>\n <Flex alignItems=\"center\" gap={2}>\n <Icon name=\"node\" color=\"bright\" />\n <Text color=\"bright\" truncate>\n {hostname}\n </Text>\n </Flex>\n <Pill background={status ? \"success\" : \"border\"} color=\"bright\" round={10}>\n {status ? \"Live\" : \"Off\"}\n </Pill>\n </Anchor>\n )\n}\n\nexport default Node\n","import React, { useState, useCallback, useMemo } from \"react\"\nimport styled from \"styled-components\"\nimport { Flex, Text, Icon, TextInput } from \"@netdata/netdata-ui\"\nimport { MenuList } from \"components/menus\"\nimport Anchor from \"./anchor\"\nimport Node from \"./node\"\n\nconst Search = styled(TextInput)`\n & > label {\n margin-bottom: 0;\n }\n`\n\nconst StyledIcon = styled(Icon)`\n transform: ${({ right }) => (right ? \"rotate(270deg)\" : \"none\")};\n`\n\nconst ReplicatedNodes = ({ parentNode, replicatedNodes }) => {\n const [listOpen, setListOpen] = useState(true)\n const [value, setValue] = useState(\"\")\n\n const toggleListOpen = useCallback(() => setListOpen(o => !o), [])\n const onChange = useCallback(e => setValue(e.target.value), [])\n\n const nodes = useMemo(() => {\n if (!value) return replicatedNodes\n return replicatedNodes.filter(({ hostname }) =>\n hostname.toLowerCase().includes(value.toLowerCase())\n )\n }, [replicatedNodes, value])\n\n return (\n <MenuList\n isOpen={listOpen}\n toggleOpen={toggleListOpen}\n label={\n <Flex alignItems=\"center\" justifyContent=\"between\">\n <Text strong color=\"border\">\n Replicated nodes\n </Text>\n <StyledIcon right={!listOpen} name=\"chevron_down\" size=\"small\" color=\"text\" />\n </Flex>\n }\n >\n <Flex column gap={4} padding={[4, 0, 0]}>\n <Anchor as=\"a\" href={parentNode.url} justifyContent=\"start\">\n <Icon name=\"nodes\" size=\"small\" color=\"bright\" />\n <Text color=\"bright\">{parentNode.hostname}</Text>\n </Anchor>\n {nodes.length >= 5 && (\n <Flex padding={[0, 0, 0, 2]}>\n <Search\n value={value}\n onChange={onChange}\n iconLeft={<Icon name=\"search_s\" size=\"small\" color=\"text\" />}\n metaShrinked\n />\n </Flex>\n )}\n <Flex column gap={2}>\n {nodes.map(({ hostname, url, status }) => (\n <Node key={hostname} hostname={hostname} url={url} status={status} />\n ))}\n </Flex>\n </Flex>\n </MenuList>\n )\n}\n\nexport default ReplicatedNodes\n","import React, { useRef, useEffect } from \"react\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { sendToChildIframe, useListenToPostMessage } from \"@/src/utils/post-message\"\nimport { getIframeSrc } from \"@/src/utils\"\nimport { selectCloudBaseUrl } from \"domains/global/selectors\"\n\nconst SpacePanelIframe = ({ parentNode, replicatedNodes }) => {\n const cloudBaseURL = useSelector(selectCloudBaseUrl)\n\n const ref = useRef()\n\n const [spacePanelMessage] = useListenToPostMessage(\"hello-from-space-panel\")\n\n useEffect(() => {\n if (!spacePanelMessage || !ref.current) return\n sendToChildIframe(ref.current, {\n type: \"streamed-hosts-data\",\n payload: { parentNode, replicatedNodes },\n })\n }, [replicatedNodes, parentNode, spacePanelMessage])\n\n return (\n <Flex\n ref={ref}\n as=\"iframe\"\n src={getIframeSrc(cloudBaseURL, \"space-panel\")}\n title=\"space panel\"\n width=\"100%\"\n height=\"100%\"\n border={{ side: \"all\", size: \"0px\" }}\n />\n )\n}\n\nexport default SpacePanelIframe\n","import React from \"react\"\nimport { TextSmall } from \"@netdata/netdata-ui\"\n\nconst promptContent = {\n signIn: {\n title: \"Welcome back!\",\n content: [\n <TextSmall key=\"1\" color=\"bright\">\n Sign in again to enjoy the benefits of Netdata Cloud{\" \"}\n </TextSmall>,\n ],\n },\n signUp: {\n title: \"Welcome to Netdata Cloud!\",\n content: [\n <TextSmall key=\"1\" color=\"bright\">\n <TextSmall strong color=\"bright\">\n A single place\n </TextSmall>{\" \"}\n for all your nodes.\n </TextSmall>,\n <TextSmall key=\"2\" color=\"bright\">\n <TextSmall strong color=\"bright\">\n Multi-node dashboards\n </TextSmall>{\" \"}\n out of the box.\n </TextSmall>,\n <TextSmall key=\"3\" color=\"bright\">\n <TextSmall strong color=\"bright\">\n Custom dashboards\n </TextSmall>{\" \"}\n for you to create, edit and share online.\n </TextSmall>,\n <TextSmall key=\"4\" color=\"bright\">\n <TextSmall strong color=\"bright\">\n Metric Correlations\n </TextSmall>{\" \"}\n to find the root cause of anything.\n </TextSmall>,\n <TextSmall key=\"5\" color=\"bright\">\n <TextSmall strong color=\"bright\">\n Centrally dispatched notifications\n </TextSmall>{\" \"}\n for all alarms of all your nodes.\n </TextSmall>,\n <TextSmall key=\"6\" color=\"bright\">\n And... It is{\" \"}\n <TextSmall\n as=\"a\"\n href=\"https://www.netdata.cloud/get-netdata/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n strong\n color=\"bright\"\n >\n free, forever!\n </TextSmall>\n </TextSmall>,\n ],\n },\n}\n\nexport default promptContent\n","import React from \"react\"\nimport { Flex, Text, Button } from \"@netdata/netdata-ui\"\nimport SignIn from \"@/src/components/auth/signIn\"\nimport promptContent from \"./promptContent\"\n\nconst SignInPrompt = () => {\n return (\n <SignIn utmParameters={{ content: \"sidebar\" }}>\n {({ isRegistry, link, onSignIn, offline }) => {\n const { title, content } = promptContent[\"signIn\"]\n return (\n <Flex\n background={[\"neutral\", \"regentgrey\"]}\n column\n gap={4}\n padding={[10]}\n border={{ side: \"right\", color: \"panel\" }}\n >\n <Text color=\"bright\" strong>\n {title}\n </Text>\n {content.map(el => el)}\n <Button\n width=\"100%\"\n label=\"Sign in\"\n disabled={offline}\n {...(isRegistry ? { as: \"a\", href: link } : { onClick: onSignIn })}\n />\n </Flex>\n )\n }}\n </SignIn>\n )\n}\n\nexport default SignInPrompt\n","import React from \"react\"\n\nconst NoNetwork = () => (\n <svg width=\"68\" height=\"68\" viewBox=\"0 0 68 68\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M48.875 6.375H19.125C16.7778 6.375 14.875 8.27779 14.875 10.625V40.375C14.875 42.7222 16.7778 44.625 19.125 44.625H48.875C51.2222 44.625 53.125 42.7222 53.125 40.375V10.625C53.125 8.27779 51.2222 6.375 48.875 6.375Z\"\n fill=\"white\"\n stroke=\"#AEB3B7\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M41.0834 38.25C41.8658 38.25 42.5 38.8843 42.5 39.6667V41.0833C44.0648 41.0833 45.3334 42.3519 45.3334 43.9167V58.0833C45.3334 59.6481 44.0648 60.9167 42.5 60.9167H38.25V65.1667H31.8278V60.9167H26.9167C25.3519 60.9167 24.0834 59.6481 24.0834 58.0833V43.9167C24.0834 42.3519 25.3519 41.0833 26.9167 41.0833V39.6667C26.9167 38.8843 27.551 38.25 28.3334 38.25H41.0834Z\"\n fill=\"#35414A\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M39.7954 12.75C40.5778 12.75 41.2121 13.3843 41.2121 14.1667L41.2108 16.7294L43.9166 16.7296C44.699 16.7296 45.3333 17.3639 45.3333 18.1463V34C45.3333 34.7824 44.699 35.4167 43.9166 35.4167L43.272 35.4152L43.2727 33.3403H41.2121L41.2108 35.4152H39.151L39.1515 33.3403H37.0909L37.0897 35.4152H35.0299L35.0303 33.3403H32.9697L32.9686 35.4152H30.9088L30.909 33.3403H28.8484L28.8475 35.4152H26.7877L26.7878 33.3403H24.7272L24.7265 35.4152L24.0833 35.4167C23.3009 35.4167 22.6666 34.7824 22.6666 34V18.1463C22.6666 17.3639 23.3009 16.7296 24.0833 16.7296L26.7877 16.7294L26.7878 14.1667C26.7878 13.3843 27.4221 12.75 28.2045 12.75H39.7954Z\"\n fill=\"#35414A\"\n />\n </svg>\n)\n\nexport default NoNetwork\n","import React from \"react\"\nimport { Flex, TextNano, TextSmall } from \"@netdata/netdata-ui\"\nimport NoNetwork from \"./noNetwork\"\n\nconst OfflinePrompt = () => (\n <Flex alignItems=\"center\" background={[\"neutral\", \"regentgrey\"]} column gap={1} padding={[10]}>\n <TextSmall color=\"bright\" strong textAlign=\"center\">\n Can't connect to Netdata Cloud\n </TextSmall>\n <NoNetwork />\n <TextNano color=\"bright\" textAlign=\"center\" margin={[2, 0, 0]}>\n Maybe you are behind a firewall or you don’t have connection to the internet\n </TextNano>\n </Flex>\n)\n\nexport default OfflinePrompt\n","import styled from \"styled-components\"\nimport { getSizeBy, getColor, Icon, TextNano, Text } from \"@netdata/netdata-ui\"\n\nexport const NodesContainer = styled.div`\n .mdc-list-item {\n padding: 0 0;\n padding-left: 0;\n }\n .rmwc-collapsible-list__children {\n .mdc-list-item {\n padding: 0 0;\n padding-left: 0;\n height: ${getSizeBy(4)};\n }\n }\n .rmwc-collapsible-list__handle {\n .mdc-list-item {\n padding: 0 ${getSizeBy(2)};\n }\n }\n .mdc-list-item__meta {\n color: ${getColor(\"bright\")};\n }\n .mdc-list-item:before {\n background: none;\n }\n`\n\nexport const ListItem = styled.div`\n width: 100%;\n min-height: ${getSizeBy(3)};\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n cursor: pointer;\n justify-content: space-between;\n`\n\nexport const TrashIcon = styled(Icon)`\n fill: #35414a;\n margin-right: ${getSizeBy(2)};\n transition: opacity 0.4s ease-in;\n &:hover {\n opacity: 0.6;\n }\n`\n\nexport const StyledIcon = styled(Icon)`\n flex-shrink: 0;\n flex-grow: 0;\n margin-right: ${getSizeBy(2)};\n fill: ${getColor([\"gray\", \"arsenic\"])};\n`\n\n// @ts-ignore todo extend interface in dashboard due to lack of types in netdata-ui\nexport const NodeUrl = styled(TextNano.withComponent(\"a\"))`\n text-decoration: none;\n margin-left: ${getSizeBy(5)};\n color: #aeb3b7;\n max-width: 145px;\n word-wrap: break-word;\n &:hover {\n color: inherit; // overwrite bootstrap\n text-decoration: none;\n }\n`\n\n// @ts-ignore todo\nexport const NodeName = styled(Text.withComponent(\"a\"))`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n white-space: nowrap;\n`\n","import React, { useCallback, useState } from \"react\"\nimport { CollapsibleList, SimpleListItem } from \"@rmwc/list\"\nimport \"@material/list/dist/mdc.list.css\"\nimport \"@rmwc/list/collapsible-list.css\"\nimport \"@rmwc/icon/icon.css\"\nimport { Box, Flex, Text } from \"@netdata/netdata-ui\"\n\nimport truncateMiddle from \"utils/truncateMiddle\"\nimport { naturalSortCompare } from \"domains/dashboard/utils/sorting\"\nimport { MASKED_DATA } from \"domains/global/constants\"\nimport { MenuList } from \"components/menus\"\n\nimport { NodesContainer, ListItem, StyledIcon, NodeUrl, NodeName, TrashIcon } from \"./styled\"\n\nconst Node = ({ name, alternateUrls, machineGuid }) => (\n <CollapsibleList\n handle={\n <SimpleListItem\n text={\n <>\n <StyledIcon name=\"node\" />\n <NodeName\n color=\"bright\"\n href=\"\"\n onClick={event => {\n event.preventDefault() // prevent navigating to url\n event.stopPropagation()\n window.gotoServerModalHandler(machineGuid)\n }}\n >\n {name}\n </NodeName>\n </>\n }\n metaIcon={alternateUrls.length && \"chevron_right\"}\n />\n }\n >\n <Box margin={[2, 0, 0]}>\n {alternateUrls.map(url => (\n <ListItem key={url}>\n <NodeUrl href={url}>{truncateMiddle(url, 50)}</NodeUrl>\n <TrashIcon\n name=\"trashcan\"\n size=\"small\"\n onClick={() => {\n window.deleteRegistryModalHandler(machineGuid, name, url)\n }}\n />\n </ListItem>\n ))}\n </Box>\n </CollapsibleList>\n)\n\nexport const VisitedNodes = ({ machinesArray }) => {\n const sortedMachines = machinesArray\n .sort((a, b) => naturalSortCompare(a.name, b.name))\n .filter(({ url }) => url !== MASKED_DATA)\n\n const [listOpen, setListOpen] = useState(true)\n const toggleListOpen = useCallback(() => setListOpen(o => !o), [])\n\n return (\n <MenuList\n isOpen={listOpen}\n toggleOpen={toggleListOpen}\n label={\n <Flex alignItems=\"center\" justifyContent=\"between\">\n <Text strong color=\"border\">\n Visited Nodes\n </Text>\n <StyledIcon right={!listOpen} name=\"chevron_down\" size=\"small\" color=\"text\" />\n </Flex>\n }\n >\n <NodesContainer column gap={2}>\n {sortedMachines.map(({ name, alternateUrls, guid, url }) => (\n <Node\n alternateUrls={alternateUrls}\n key={`${name}-${guid}`}\n machineGuid={guid}\n name={name}\n url={url}\n />\n ))}\n </NodesContainer>\n </MenuList>\n )\n}\n\nexport default VisitedNodes\n","export default (text, maxLength) => {\n if (text.length <= maxLength) return text\n\n const spanLength = Math.floor((maxLength - 3) / 2)\n return `${text.substring(0, spanLength)}...${text.substring(text.length - spanLength)}`\n}\n","import React, { useCallback } from \"react\"\nimport { useSelector } from \"react-redux\"\nimport { createSelector } from \"reselect\"\nimport { Flex, Text, TextSmall, Collapsible, Button } from \"@netdata/netdata-ui\"\nimport { selectIsUsingGlobalRegistry, selectIsCloudEnabled } from \"domains/global/selectors\"\nimport getNodes from \"./nodes\"\nimport ReplicatedNodes from \"./replicatedNodes\"\nimport SpacePanelIframe from \"./spacePanelIframe\"\nimport SignInPrompt from \"./prompts/signIn\"\nimport OfflinePrompt from \"./prompts/offline\"\nimport VisitedNodes from \"./visitedNodes\"\n\nconst replicatedNodesSelector = createSelector(\n state => state.global.chartsMetadata.data || {},\n state => state.global.registry.fullInfoPayload.mirrored_hosts_status || {},\n ({ hosts, hostname }, hostsStatus) => getNodes(hosts, hostname, hostsStatus)\n)\n\nconst visitedNodesSelector = createSelector(\n state => state.global.registry,\n registry => registry.registryMachinesArray || []\n)\n\nconst isSignedInSelector = createSelector(\n ({ dashboard }) => dashboard,\n ({ isSignedIn, offline }) => ({ isSignedIn, offline })\n)\n\nconst Space = ({ isOpen, toggle }) => {\n const { parentNode = {}, replicatedNodes = [] } = useSelector(replicatedNodesSelector)\n const visitedNodes = useSelector(visitedNodesSelector)\n const globalRegistry = useSelector(selectIsUsingGlobalRegistry)\n const { isSignedIn, offline } = useSelector(isSignedInSelector)\n const cloudEnabled = useSelector(selectIsCloudEnabled)\n\n const switchIdentity = useCallback(() => window.switchRegistryModalHandler(), [])\n\n return (\n <Collapsible width={74} background=\"panel\" open={isOpen} direction=\"horizontal\" persist>\n <Flex\n flex\n column\n overflow={{ vertical: \"hidden\" }}\n margin={[3, 0, 0]}\n border={{ side: \"left\", color: \"separator\" }}\n style={{ pointerEvents: \"all\" }}\n >\n <Flex overflow={{ vertical: \"auto\" }} flex column gap={4} padding={[4]}>\n <Flex alignSelf=\"end\">\n <Button\n neutral\n flavour=\"borderless\"\n themeType=\"dark\"\n small\n icon=\"chevron_left\"\n onClick={toggle}\n />\n </Flex>\n {!isSignedIn && (\n <>\n {!!replicatedNodes.length && (\n <ReplicatedNodes parentNode={parentNode} replicatedNodes={replicatedNodes} />\n )}\n {!!visitedNodes.length && (\n <Text strong color=\"border\">\n <VisitedNodes machinesArray={visitedNodes} />\n </Text>\n )}\n </>\n )}\n {isSignedIn && (\n <SpacePanelIframe parentNode={parentNode} replicatedNodes={replicatedNodes} />\n )}\n </Flex>\n {globalRegistry && (\n <Flex border={{ side: \"top\" }} justifyContent=\"center\" alignItems=\"center\" padding={[6]}>\n <TextSmall onClick={switchIdentity}>Switch Identity</TextSmall>\n </Flex>\n )}\n {!isSignedIn && cloudEnabled && <SignInPrompt />}\n {offline && cloudEnabled && <OfflinePrompt />}\n </Flex>\n </Collapsible>\n )\n}\n\nexport default React.memo(Space)\n","import React, { useCallback, useEffect } from \"react\"\nimport styled from \"styled-components\"\nimport { createSelector } from \"reselect\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport { useLocalStorage } from \"react-use\"\nimport { selectSpacePanelIsActive } from \"@/src/domains/global/selectors\"\nimport { setSpacePanelStatusAction } from \"@/src/domains/global/actions\"\nimport Spaces from \"./spaces\"\nimport Space from \"./space\"\n\nconst Wrapper = styled(Flex).attrs({ height: \"100vh\", zIndex: 10 })`\n pointer-events: all;\n`\n\nconst isSignedInSelector = createSelector(\n ({ dashboard }) => dashboard,\n ({ isSignedIn }) => isSignedIn\n)\n\nconst Sidebar = () => {\n const [lsValue, setLsValue] = useLocalStorage(\"space-panel-state\")\n const isOpen = useSelector(selectSpacePanelIsActive)\n const signedIn = useSelector(isSignedInSelector)\n\n const dispatch = useDispatch()\n\n const toggle = useCallback(() => {\n dispatch(setSpacePanelStatusAction({ isActive: !isOpen }))\n setLsValue(!isOpen)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen])\n\n useEffect(() => {\n dispatch(setSpacePanelStatusAction({ isActive: lsValue ? signedIn : false }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [signedIn])\n\n return (\n <Wrapper>\n <Spaces isOpen={isOpen} toggle={toggle} isSignedIn={signedIn} />\n <Space isOpen={isOpen} toggle={toggle} offline={true} />\n </Wrapper>\n )\n}\n\nexport default React.memo(Sidebar)\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { Flex } from \"@netdata/netdata-ui\"\nimport Header from \"components/header\"\nimport Sidebar from \"components/sidebar\"\n\nconst Wrapper = styled(Flex).attrs({\n position: \"fixed\",\n justifyContent: \"start\",\n alignItems: \"start\",\n width: \"100%\",\n zIndex: 10,\n})`\n top: 0;\n left: 0;\n pointer-events: none;\n`\n\nconst Layout = ({ children, printMode }) => {\n\n if (printMode) return children\n\n return (\n <Wrapper>\n <Sidebar />\n <Header />\n {children}\n </Wrapper>\n )\n}\n\nexport default Layout\n","import { DefaultTheme, DarkTheme } from \"@netdata/netdata-ui\"\n\nexport type DashboardTheme = any\n\nexport const mapTheme = (theme: DashboardTheme): any =>\n ({\n slate: DarkTheme,\n white: DefaultTheme,\n }[theme] || DarkTheme)\n","import React, { useState, useCallback } from \"react\"\nimport GoToCloud from \"components/auth/signIn\"\n\nimport {\n Modal,\n ModalContent,\n ModalBody,\n ModalFooter,\n ModalHeader,\n Text,\n Flex,\n H3,\n Button,\n Box,\n Checkbox,\n} from \"@netdata/netdata-ui\"\n\nconst campaign = \"agent_nudge_to_cloud\"\n\nconst MigrationModal = ({\n migrationModalPromoInfo,\n setUserPrefrence,\n closeModal,\n savePromoRemindMeSelection,\n migrationModalPromo,\n requestRefreshOfAccess,\n}) => {\n const [isRememberChoiceChecked, setIsRememberChoiceChecked] = useState(false)\n\n const handleCheckBoxChange = e => {\n setIsRememberChoiceChecked(e.currentTarget.checked)\n }\n\n const handleClickedCTA1 = useCallback(\n ({ link, toPath }) => {\n const { CTA1 } = migrationModalPromoInfo\n\n if (CTA1.action === \"NAVIGATE\") {\n if (isRememberChoiceChecked) {\n setUserPrefrence(CTA1.userPreference)\n savePromoRemindMeSelection(isRememberChoiceChecked)\n }\n if (toPath !== \"agent\") window.location.href = link\n closeModal()\n } else if (CTA1.action === \"REFRESH\") {\n requestRefreshOfAccess()\n }\n },\n [\n migrationModalPromoInfo,\n setUserPrefrence,\n isRememberChoiceChecked,\n requestRefreshOfAccess,\n savePromoRemindMeSelection,\n closeModal,\n ]\n )\n\n const handleClickedCTA2 = useCallback(() => {\n const { CTA2 } = migrationModalPromoInfo\n if (isRememberChoiceChecked) {\n setUserPrefrence(CTA2.userPreference)\n savePromoRemindMeSelection(isRememberChoiceChecked)\n }\n if (CTA2.action === \"NAVIGATE\") {\n } else if (CTA2.action === \"REFRESH\") {\n requestRefreshOfAccess()\n }\n closeModal()\n }, [\n migrationModalPromoInfo,\n setUserPrefrence,\n isRememberChoiceChecked,\n requestRefreshOfAccess,\n savePromoRemindMeSelection,\n closeModal,\n ])\n\n return migrationModalPromoInfo ? (\n <Modal>\n <ModalContent width={180} background=\"modalBackground\">\n <ModalHeader>\n <H3 margin={[0]}>{migrationModalPromoInfo.title}</H3>\n </ModalHeader>\n <ModalBody>\n <Flex padding={[0, 0, 4, 0]} column gap={3}>\n {typeof migrationModalPromoInfo.text.header === \"function\" ? (\n migrationModalPromoInfo.text.header({})\n ) : (\n <Text>{migrationModalPromoInfo.text.header}</Text>\n )}\n {migrationModalPromoInfo.text.bullets.length > 0 && (\n <Flex column gap={3}>\n <Flex column gap={1} as={\"ul\"}>\n {migrationModalPromoInfo.text.bullets.map(bullet => {\n if (typeof bullet === \"function\") {\n return <li key={bullet}>{bullet()}</li>\n }\n return (\n <li key={bullet}>\n <Text>{bullet}</Text>\n </li>\n )\n })}\n </Flex>\n </Flex>\n )}\n {migrationModalPromoInfo.text.footer && (\n <Text data-testid=\"body-footer\">{migrationModalPromoInfo.text.footer}</Text>\n )}\n </Flex>\n </ModalBody>\n <ModalFooter>\n <Box margin={[0, \"auto\", 0, 0]}>\n <Checkbox\n data-ga={`${migrationModalPromo}::click-remind-me::ad`}\n data-testid=\"remind-me-checkbox\"\n checked={isRememberChoiceChecked}\n onChange={handleCheckBoxChange}\n label={migrationModalPromoInfo.tickBoxOption.text}\n />\n </Box>\n <Box data-testid=\"cta1\" margin={[0, 2, 0, 0]} width={{ min: 40 }}>\n <GoToCloud utmParameters={{ content: migrationModalPromo, campaign }}>\n {({ link }) => (\n <Button\n data-ga={`${migrationModalPromo}::click-ct1::ad`}\n textTransform=\"none\"\n data-testid=\"cta1-button\"\n onClick={() =>\n handleClickedCTA1({ link, toPath: migrationModalPromoInfo.CTA1.toPath })\n }\n width=\"100%\"\n label={migrationModalPromoInfo.CTA1.text}\n />\n )}\n </GoToCloud>\n </Box>\n {migrationModalPromoInfo.CTA2 && (\n <Box\n data-ga={`${migrationModalPromo}::click-ct2::ad`}\n onClick={handleClickedCTA2}\n height={10}\n className=\"btn btn-default\"\n data-testid=\"cta2\"\n width={{ min: 40 }}\n >\n <Box as={Text} sx={{ fontWeight: \"500\", lineHeight: \"25px\" }}>\n {migrationModalPromoInfo.CTA2.text}\n </Box>\n </Box>\n )}\n </ModalFooter>\n </ModalContent>\n </Modal>\n ) : null\n}\n\nexport default MigrationModal\n","import React, { useState, useEffect, useMemo } from \"react\"\nimport { useLocalStorage } from \"react-use\"\nimport { useSelector } from \"react-redux\"\n\nimport { selectUserNodeAccess } from \"domains/global/selectors\"\nimport {\n MigrationModal,\n useMigrationModal,\n PromoProps,\n goToCloud,\n goToAgentDashboard,\n} from \"@/src/domains/dashboard/components/migration-modal\"\nimport { selectSignInUrl } from \"domains/global/selectors\"\nimport { useRequestRefreshOfAccessMessage } from \"hooks/use-user-node-access\"\nimport { selectIsCloudEnabled } from \"domains/global/selectors\"\nimport { selectRegistry } from \"domains/global/selectors\"\n\n// const PROMO_SIGN_UP_CLOUD: PromoProps = { userStatus: \"UNKNOWN\", nodeClaimedStatus: \"NOT_CLAIMED\" } //CLOUD\n// const PROMO_SIGN_IN_CLOUD: PromoProps = {\n// userStatus: \"UNKNOWN\",\n// nodeClaimedStatus: \"CLAIMED\",\n// } //CLOUD\n// const PROMO_IVNITED_TO_SPACE: PromoProps = {\n// userStatus: \"LOGGED_IN\",\n// nodeClaimedStatus: \"CLAIMED\",\n// userNodeAccess: \"NO_ACCESS\",\n// } //CLOUD\n\n// const PROMO_CLAIM_NODE: PromoProps = { userStatus: \"LOGGED_IN\", nodeClaimedStatus: \"NOT_CLAIMED\" } //CLOUD\n// const PROMO_TO_USE_NEW_DASHBAORD: PromoProps = {\n// userStatus: \"LOGGED_IN\",\n// nodeLiveness: \"LIVE\",\n// userNodeAccess: \"ACCESS_OK\",\n// } //UNDEFIND\n\n// const FALLBACK_TO_AGENT: PromoProps = {\n// userStatus: \"LOGGED_IN\",\n// nodeLiveness: \"NOT_LIVE\",\n// userNodeAccess: \"ACCESS_OK\",\n// nodeClaimedStatus: \"CLAIMED\",\n// } //CLOUD\n\n// const NO_INFO_FALLBACK_TO_AGENT: PromoProps = {\n// userStatus: undefined,\n// nodeLiveness: undefined,\n// userNodeAccess: undefined,\n// nodeClaimedStatus: undefined,\n// } //CLOUD\n\n// const GO_TO_CLOUD: PromoProps = {\n// userStatus: \"LOGGED_IN\",\n// nodeLiveness: \"LIVE\",\n// userNodeAccess: \"ACCESS_OK\",\n// nodeClaimedStatus: \"CLAIMED\",\n// } //CLOUD\n\nconst MigrationManager = () => {\n const cloudEnabled = useSelector(selectIsCloudEnabled)\n const registry = useSelector(selectRegistry)\n\n const cloudUrl = useSelector(state =>\n selectSignInUrl({ content: \"agent-auto-redirect\", term: registry.machineGuid })(state as any)\n )\n\n const linkToCoud = useMemo(() => {\n const { href } = window.location\n const redirectURI = encodeURIComponent(href)\n return `${cloudUrl}&redirect_uri=${redirectURI}`\n }, [cloudUrl])\n\n const userNodeAccess = useSelector(selectUserNodeAccess) as PromoProps\n const [isModalOpen, setModalOpen] = useState(false)\n const { migrationModalPromoInfo, setUserPrefrence, userSavedPreference, migrationModalPromo } =\n useMigrationModal({\n ...userNodeAccess,\n })\n\n const preferenceID = migrationModalPromoInfo?.tickBoxOption.preferenceID || \"\"\n\n /**\n * There is seem to be a bug when we are using the useLocalStorage,\n * the value to be returned does not change when preferenceID is changing.\n * For that reason we access the localStorage directly\n */\n const [, savePromoRemindMeSelection] = useLocalStorage(preferenceID)\n const hasPromoSelectionSaved = localStorage.getItem(preferenceID)\n\n const closeModal = () => {\n setModalOpen(false)\n }\n\n const isPromoEligibleForShow =\n cloudEnabled &&\n migrationModalPromoInfo &&\n isModalOpen &&\n (!hasPromoSelectionSaved || hasPromoSelectionSaved === \"undefined\")\n\n const requestRefreshOfAccess = useRequestRefreshOfAccessMessage()\n\n /** We are delaying the show of modal because some time the userNodeAccess is equal to null\n * and only for a few seconds we are showing the NO_INFO modal an the the userNodeAccess\n * has a new value and we show a second modal on top of the other. We dont want this\n * behaviour\n */\n useEffect(() => {\n let showModalTimer = setTimeout(() => setModalOpen(true), 4000)\n return () => {\n clearTimeout(showModalTimer)\n }\n }, [])\n\n useEffect(() => {\n if (goToCloud({ userSavedPreference, ...userNodeAccess })) {\n window.location.href = linkToCoud\n }\n }, [linkToCoud, userNodeAccess, userSavedPreference])\n\n useEffect(() => {\n if (goToAgentDashboard({ userSavedPreference })) console.log(\"Lets go to Agent\")\n }, [userSavedPreference])\n\n useEffect(() => {\n if (isPromoEligibleForShow) {\n document.documentElement.style.overflow = \"hidden\"\n } else {\n document.documentElement.style.overflow = \"auto\"\n }\n }, [isModalOpen, isPromoEligibleForShow])\n\n if (isPromoEligibleForShow)\n return (\n <MigrationModal\n savePromoRemindMeSelection={savePromoRemindMeSelection}\n migrationModalPromoInfo={migrationModalPromoInfo}\n setUserPrefrence={setUserPrefrence}\n closeModal={closeModal}\n migrationModalPromo={migrationModalPromo}\n requestRefreshOfAccess={requestRefreshOfAccess}\n />\n )\n\n return null\n}\n\nexport default MigrationManager\n","import React, { useEffect, useLayoutEffect, useRef, useState } from \"react\"\nimport Ps from \"perfect-scrollbar\"\nimport { ThemeProvider } from \"styled-components\"\n\nimport \"@formatjs/intl-datetimeformat/polyfill\"\nimport \"@formatjs/intl-datetimeformat/locale-data/en\"\nimport \"@formatjs/intl-datetimeformat/add-all-tz\"\n\nimport \"@material/menu-surface/dist/mdc.menu-surface.css\"\n\n// intentionally loading before bootstrap styles\nimport \"./styles/main.css\"\n\n// needs to be included before bootstrap\nimport \"domains/chart/utils/jquery-loader\"\nimport \"bootstrap\"\nimport \"bootstrap-toggle\"\nimport \"bootstrap-toggle/css/bootstrap-toggle.min.css\"\n\nimport { useStore } from \"react-redux\"\nimport \"typeface-ibm-plex-sans\"\nimport \"@fortawesome/fontawesome-free/js/all\"\n\nimport \"styles/fonts.css\"\nimport { loadCss } from \"utils/css-loader\"\nimport { useDateTime } from \"utils/date-time\"\nimport { useSelector } from \"store/redux-separate-context\"\nimport { selectCloudBaseUrl, selectHasFetchedInfo, selectTheme } from \"domains/global/selectors\"\nimport { Portals } from \"domains/chart/components/portals\"\nimport { useChartsMetadata } from \"domains/dashboard/hooks/use-charts-metadata\"\nimport { PrintModal } from \"domains/dashboard/components/print-modal\"\nimport { SidebarSocialMedia } from \"domains/dashboard/components/sidebar-social-media\"\nimport { SidebarSocialMediaPortal } from \"domains/dashboard/components/sidebar-social-media-portal\"\nimport { isPrintMode } from \"domains/dashboard/utils/parse-url\"\nimport useAlarmFromUrl from \"domains/dashboard/hooks/useAlarmFromUrl\"\nimport { useRegistry } from \"hooks/use-registry\"\nimport { useAlarms } from \"hooks/use-alarms\"\nimport { NotificationsContainer } from \"components/notifications-container\"\n\nimport Layout from \"components/layout\"\n\nimport \"./types/global\"\n\nimport { useInfo } from \"hooks/use-info\"\nimport { serverStatic } from \"utils/server-detection\"\nimport { mapTheme } from \"utils/map-theme\"\nimport { netdataCallback, updateLocaleFunctions } from \"./main\"\n\nimport { MigrationManager } from \"@/src/domains/dashboard/components/migration-manager\"\nimport { isDemo } from \"./utils/is-demo\"\nimport { Box } from \"@netdata/netdata-ui\"\nimport { selectIsCloudEnabled } from \"domains/global/selectors\"\n\nconst FakeMargin = Box\n\n// support legacy code\nwindow.Ps = Ps\n\nconst App: React.FC = () => {\n const cloudEnabled = useSelector(selectIsCloudEnabled)\n\n const store = useStore()\n useEffect(() => {\n // todo\n // @ts-ignore\n window.NETDATA.alarms = {}\n // @ts-ignore\n window.NETDATA.pause = callback => {\n callback()\n }\n netdataCallback(store)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n const [refreshHelper, setRefreshHelper] = useState<number>()\n // this is temporary, we will not need it when main.js will be fully refactored\n const haveDOMReadyForParsing = refreshHelper !== undefined\n // a workaround - each time parseDom is run, the portals are rerendered\n const parseDom = useRef(() => {\n setRefreshHelper(Math.random())\n })\n\n useEffect(() => {\n if (haveDOMReadyForParsing) {\n const loadOverlay = document.getElementById(\"loadOverlay\")\n if (loadOverlay) {\n loadOverlay.style.display = \"none\"\n }\n }\n }, [haveDOMReadyForParsing])\n\n const { localeDateString, localeTimeString } = useDateTime()\n useEffect(() => {\n updateLocaleFunctions({\n localeDateString,\n localeTimeString,\n })\n }, [localeDateString, localeTimeString])\n\n useRegistry(true)\n useAlarms(true)\n useInfo(true)\n\n const [hasFetchDependencies, setHasFetchDependencies] = useState(false)\n useLayoutEffect(() => {\n Promise.all([\n loadCss(serverStatic + window.NETDATA.themes.current.bootstrap_css),\n loadCss(serverStatic + window.NETDATA.themes.current.dashboard_css),\n ]).then(() => {\n setHasFetchDependencies(true)\n })\n }, [])\n\n const chartsMetadata = useChartsMetadata()\n const cloudBaseURL = useSelector(selectCloudBaseUrl)\n\n // @ts-ignore\n window.NETDATA.parseDom = parseDom.current\n\n const hasFetchedInfo = useSelector(selectHasFetchedInfo)\n const theme = useSelector(selectTheme)\n useAlarmFromUrl()\n\n return (\n <ThemeProvider theme={mapTheme(theme)}>\n {hasFetchDependencies && (\n // this needs to render after dynamic css files are loaded, otherwise netdata-ui\n // styling will have smaller priority than bootstrap css\n <NotificationsContainer />\n )}\n <></>\n {chartsMetadata && cloudBaseURL && hasFetchedInfo && haveDOMReadyForParsing && (\n <>\n <Layout printMode={isPrintMode}>\n {isDemo ? null : <MigrationManager />}\n {hasFetchDependencies && (\n <>\n <Portals key={refreshHelper} />\n <SidebarSocialMediaPortal>\n <SidebarSocialMedia />\n </SidebarSocialMediaPortal>\n {isPrintMode && <PrintModal />}\n </>\n )}\n </Layout>\n {cloudEnabled && <FakeMargin height={15} />}\n </>\n )}\n </ThemeProvider>\n )\n}\n\nexport default App\n","import { useEffect } from \"react\"\n\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { serverDefault } from \"utils/server-detection\"\nimport { fetchHelloAction } from \"domains/global/actions\"\nimport { selectRegistry } from \"domains/global/selectors\"\n\nexport const useRegistry = (shouldUseRegistry: boolean) => {\n const registry = useSelector(selectRegistry)\n\n const dispatch = useDispatch()\n useEffect(() => {\n if (shouldUseRegistry && !registry.isFetchingHello && !registry.hasFetchedHello\n && !registry.isHelloCallError\n ) {\n dispatch(fetchHelloAction.request({\n serverDefault,\n }))\n }\n }, [dispatch, registry, shouldUseRegistry])\n}\n","import { useEffect } from \"react\"\n\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { startAlarmsAction } from \"domains/global/actions\"\nimport { selectHasStartedAlarms } from \"domains/global/selectors\"\nimport { serverDefault } from \"utils/server-detection\"\n\nexport const useAlarms = (shouldUseAlarms: boolean) => {\n const hasStartedAlarms = useSelector(selectHasStartedAlarms)\n\n const dispatch = useDispatch()\n useEffect(() => {\n if (shouldUseAlarms && !hasStartedAlarms) {\n dispatch(startAlarmsAction({\n serverDefault,\n }))\n }\n }, [dispatch, hasStartedAlarms, shouldUseAlarms])\n}\n","import { useEffect } from \"react\"\nimport { useDispatch, useSelector } from \"store/redux-separate-context\"\nimport { fetchInfoAction } from \"domains/chart/actions\"\nimport { selectRegistry } from \"domains/global/selectors\"\n\nexport const useInfo = (shouldUseInfo: boolean) => {\n const registry = useSelector(selectRegistry)\n const hasStartedInfo = registry?.hasStartedInfo || false\n const dispatch = useDispatch()\n useEffect(() => {\n if (shouldUseInfo && !hasStartedInfo) {\n dispatch(fetchInfoAction.request({\n poll: false,\n }))\n }\n }, [dispatch, hasStartedInfo, shouldUseInfo])\n}\n","import { useHttp } from \"hooks/use-http\"\nimport { serverDefault } from \"utils/server-detection\"\nimport { ChartsMetadata } from \"domains/global/types\"\n\nexport const useChartsMetadata = () => {\n const [chartsMetadata] = useHttp<ChartsMetadata>(`${serverDefault}api/v1/charts`)\n return chartsMetadata\n}\n","import { useMount } from \"react-use\"\n\nimport { useDispatch } from \"store/redux-separate-context\"\nimport { getHashParams } from \"utils/hash-utils\"\nimport { setAlarmAction, setGlobalPanAndZoomAction } from \"domains/global/actions\"\nimport { alarmStatuses } from \"domains/global/constants\"\n\nexport default () => {\n const dispatch = useDispatch()\n useMount(() => {\n const params = getHashParams()\n const alarmWhen = params[\"alarm_when\"]\n if (alarmWhen) {\n const alarmTime = Number(alarmWhen)\n\n const alarmStatus = params[\"alarm_status\"]\n const alarmChart = params[\"alarm_chart\"]\n const alarmValue = params[\"alarm_value\"]\n if (!alarmStatuses.includes(alarmStatus) || !alarmChart || !alarmValue) {\n return\n }\n\n dispatch(setAlarmAction({\n alarm: {\n chartId: alarmChart,\n status: alarmStatus,\n value: alarmValue,\n when: alarmTime,\n },\n }))\n const PADDING = 1000 * 60 * 5\n dispatch(setGlobalPanAndZoomAction({\n after: alarmTime * 1000 - PADDING,\n before: alarmTime * 1000 + PADDING,\n }))\n }\n })\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Provider } from \"react-redux\"\n\nimport { store } from \"store\"\n\n// resolved in craco.config\n// @ts-ignore\nimport App from \"App\"\n\nimport \"./index.css\"\n\n// todo for static-dashboard:\n// 1) wait for the whole page to load, then render\n// 2) when the whole page is loaded, check window.NETDATA.options set by user and override initial\n// options settings\n\nReactDOM.render(\n <Provider store={store}>\n <App />\n </Provider>,\n document.getElementById(\"root\")\n)\n","import { useCallback, useMemo } from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport { createSelector } from \"reselect\"\nimport { useLocalStorage } from \"react-use\"\nimport { showSignInModalAction } from \"domains/dashboard/actions\"\nimport { selectSignInUrl, selectRegistry } from \"domains/global/selectors\"\nimport { NETDATA_REGISTRY_SERVER } from \"utils/utils\"\n\nconst isRegistrySelector = createSelector(\n selectRegistry,\n ({ registryServer }) => registryServer === NETDATA_REGISTRY_SERVER\n)\n\nconst offlineSelector = createSelector(\n ({ dashboard }) => dashboard,\n ({ offline }) => offline\n)\n\nconst SignIn = ({ children, utmParameters }) => {\n const [hasSignedInBefore] = useLocalStorage(\"has-sign-in-history\")\n const signInUrl = useSelector(state => selectSignInUrl(utmParameters)(state))\n const isRegistry = useSelector(isRegistrySelector)\n const offline = useSelector(offlineSelector)\n\n const dispatch = useDispatch()\n\n const link = useMemo(() => {\n const { href } = window.location\n const redirectURI = encodeURIComponent(href)\n return `${signInUrl}&redirect_uri=${redirectURI}`\n }, [signInUrl])\n\n const onSignIn = useCallback(\n () =>\n dispatch(\n showSignInModalAction({\n signInLinkHref: link,\n })\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [link]\n )\n\n return useMemo(\n () =>\n typeof children === \"function\"\n ? children({ isRegistry, link, onSignIn, offline, hasSignedInBefore })\n : children,\n [children, isRegistry, link, onSignIn, offline, hasSignedInBefore]\n )\n}\n\nexport default SignIn\n","/* eslint-disable comma-dangle */\n/* eslint-disable implicit-arrow-linebreak */\nimport { omit, pipe, mergeDeepLeft } from \"ramda\"\n\ntype HashParams = { [param: string]: string }\nconst fragmentParamsSeparatorRegEx = /[&;]/\nconst fragmentParamsSeparator = \";\"\n\nexport const getHashParams = (\n hash = decodeURIComponent(window.location.hash.substr(1))\n): HashParams => {\n if (hash.length === 0) {\n return {}\n }\n const params = hash.split(fragmentParamsSeparatorRegEx)\n const response = params.reduce((acc: HashParams, current) => {\n const parts = current.split(\"=\")\n const [param, value] = parts\n acc[param] = value\n return acc\n }, {})\n return response\n}\n\nexport const makeHashFromObject = (params: { [paramKey: string]: string }) => {\n const entries = Object.entries(params)\n if (entries.length === 0) {\n return \"\"\n }\n return entries\n .map(([key, value]) => (value === undefined ? key : `${key}=${encodeURIComponent(value)}`))\n .join(fragmentParamsSeparator)\n}\n\nexport const getFilteredHash = (\n excludedParams: string[],\n hash = decodeURIComponent(window.location.hash.substr(1))\n) => {\n const filteredParams = omit(excludedParams, getHashParams(hash))\n return makeHashFromObject(filteredParams)\n}\n\nexport const getUniqueParamsHash = pipe(getHashParams, makeHashFromObject)\n\nexport const setHashParams = (params: { [paramKey: string]: string }) => {\n const allParams = getHashParams()\n const allParamsResult = mergeDeepLeft(params, allParams)\n window.history.replaceState(window.history.state, \"\", `#${makeHashFromObject(allParamsResult)}`)\n}\n\nexport const getHashParam = (\n param: string,\n hash = decodeURIComponent(window.location.hash.substr(1))\n): string => getHashParams(hash)[param]\n\nexport const hasHashParam = (\n param: string,\n hash = decodeURIComponent(window.location.hash.substr(1))\n): boolean => getHashParams(hash)[param] !== undefined\n\nexport const removeHashParams = (params: string[]) => {\n window.history.replaceState(window.history.state, \"\", `#${getFilteredHash(params)}`)\n}\n","import { useEffect, useCallback, useState } from \"react\"\n\ntype IframesMessageType =\n | \"spaces\"\n | \"workspaces\"\n | \"hello-from-spaces-bar\"\n | \"hello-from-space-panel\"\n | \"hello-from-sign-in\"\n | \"is-signed-in\"\n | \"streamed-hosts-data\"\n | \"has-focus\"\n | \"iframe-focus-change\"\n | \"synced-private-registry\"\n | \"set-is-logout-dropdown-opened\"\n | \"user-node-access\"\n | \"request-refresh-access\"\n\ninterface IframesMessage<T = unknown> {\n type: IframesMessageType\n payload: T\n}\n\nexport const sendToChildIframe = (\n htmlIframeElement: HTMLIFrameElement | string,\n message: IframesMessage\n) => {\n const iframeElement =\n typeof htmlIframeElement === \"string\"\n ? (document.getElementById(htmlIframeElement) as HTMLIFrameElement)\n : htmlIframeElement\n\n if (iframeElement.contentWindow) {\n iframeElement.contentWindow.postMessage(message, \"*\")\n }\n}\n\nexport const useListenToPostMessage = <T>(\n messageType: IframesMessageType,\n callback?: (newMessage: T) => void,\n defaultState?: T | (() => T)\n): [T | undefined, () => void] => {\n const [lastMessage, setLastMessage] = useState<T | undefined>(defaultState)\n const handleMessage = useCallback(\n message => {\n const data = message.data as IframesMessage<T>\n if (data.type === messageType) {\n setLastMessage(data.payload)\n if (callback) {\n callback(data.payload)\n }\n }\n },\n [callback, messageType]\n )\n const resetMesssage = useCallback(() => {\n setLastMessage(defaultState as T)\n }, [defaultState])\n useEffect(() => {\n window.addEventListener(\"message\", handleMessage)\n return () => {\n window.removeEventListener(\"message\", handleMessage)\n }\n }, [handleMessage, messageType])\n return [lastMessage, resetMesssage]\n}\n","export const isMainJs = process.env.REACT_APP_IS_MAIN_DASHBOARD\nexport const isTestingEnv = process.env.NODE_ENV === \"test\"\nexport const isDevelopmentEnv = process.env.NODE_ENV === \"development\"\n","export const storeKey = \"dashboard\"\n","import { createContext } from \"react\"\nimport {\n createDispatchHook, createSelectorHook, ReactReduxContextValue,\n useSelector as useSelectorOriginal,\n useDispatch as useDispatchOriginal,\n} from \"react-redux\"\n\nconst shouldUseDefaultContext = process.env.REACT_APP_SHOULD_USE_DEFAULT_CONTEXT\n\nexport const dashboardReduxContext = shouldUseDefaultContext\n ? undefined\n : createContext<ReactReduxContextValue>(undefined as any)\n\nexport const useSelector = dashboardReduxContext\n ? createSelectorHook(dashboardReduxContext)\n : useSelectorOriginal\nexport const useDispatch = dashboardReduxContext\n ? createDispatchHook(dashboardReduxContext)\n : useDispatchOriginal\n","const isPrintMode = window.location.hash.split(\";\").includes(\"help=true\")\n\nconst getIsDemo = () => {\n if (isPrintMode) {\n return false\n }\n const { hostname } = document.location\n return (\n hostname.endsWith(\".my-netdata.io\")\n || hostname.endsWith(\".mynetdata.io\")\n || hostname.endsWith(\".netdata.rocks\")\n || hostname.endsWith(\".netdata.ai\")\n || hostname.endsWith(\".netdata.live\")\n || hostname.endsWith(\".firehol.org\")\n || hostname.endsWith(\".netdata.online\")\n || hostname.endsWith(\".netdata.cloud\")\n )\n}\n\nexport const isDemo = getIsDemo()\n","import { prop, path } from \"ramda\"\nimport { createSelector } from \"reselect\"\n\nimport { AppStateT } from \"store/app-state\"\nimport { utmUrlSuffix } from \"utils/utils\"\nimport { alwaysEndWithSlash } from \"utils/server-detection\"\n\nimport { GetKeyArguments, getKeyForCommonColorsState } from \"./reducer\"\nimport { storeKey } from \"./constants\"\nimport { OptionsKey } from \"./options\"\n\nconst NETDATA_REGISTRY_SERVER = \"https://registry.my-netdata.io\"\n\nexport const createSelectAssignedColors = (args: GetKeyArguments) => (state: AppStateT) => {\n const keyName = getKeyForCommonColorsState(args)\n const substate = state[storeKey].commonColorsKeys[keyName]\n return substate && substate.assigned\n}\n\nexport const selectGlobal = (state: AppStateT) => state.global\n\nexport const selectCommonMin = createSelector(\n selectGlobal,\n (_: unknown, commonMinKey: string) => commonMinKey,\n (globalState, commonMinKey) => (\n globalState.commonMin[commonMinKey]\n ),\n)\n\nexport const selectCommonMax = createSelector(\n selectGlobal,\n (_: unknown, commonMaxKey: string) => commonMaxKey,\n (globalState, commonMaxKey) => (\n globalState.commonMax[commonMaxKey]\n ),\n)\n\nexport const selectGlobalSelection = createSelector(selectGlobal, prop(\"hoveredX\"))\n\nexport const selectGlobalSelectionMaster = createSelector(\n selectGlobal,\n prop(\"currentSelectionMasterId\"),\n)\n\nexport const selectGlobalPanAndZoom = createSelector(selectGlobal, prop(\"globalPanAndZoom\"))\n\nexport const selectDefaultAfter = createSelector(selectGlobal, prop(\"defaultAfter\"))\n\nexport const selectGlobalChartUnderlay = createSelector(selectGlobal, prop(\"globalChartUnderlay\"))\n\nexport const selectHasWindowFocus = createSelector(selectGlobal, prop(\"hasWindowFocus\"))\nexport const selectGlobalPause = createSelector(selectGlobal, prop(\"globalPause\"))\n\nexport const selectSnapshot = createSelector(\n selectGlobal,\n prop(\"snapshot\"),\n)\n\nexport const selectRegistry = createSelector(selectGlobal, prop(\"registry\"))\n\nexport const selectCloudBaseUrl = createSelector(selectRegistry, prop(\"cloudBaseURL\"))\n\nexport const utmParametersToString = (utmParameters = {}) =>\n Object.keys(utmParameters).reduce((acc, key) => (acc += `&utm_${key}=${utmParameters[key]}`), \"\")\n\nexport const selectSignInUrl = utmParameters =>\n createSelector(selectRegistry, selectCloudBaseUrl, (registry, cloudBaseURL) => {\n const name = encodeURIComponent(registry.hostname)\n const origin = encodeURIComponent(\n alwaysEndWithSlash(window.location.origin + window.location.pathname)\n )\n // not adding redirect_url - it needs to always be based on newest href\n // eslint-disable-next-line max-len\n return `${cloudBaseURL}/sign-in?id=${\n registry.machineGuid\n }&name=${name}&origin=${origin}${utmUrlSuffix}${utmParametersToString(utmParameters)}`\n })\n\nexport const selectIsFetchingHello = createSelector(selectRegistry, prop(\"isFetchingHello\"))\nexport const selectIsUsingGlobalRegistry = createSelector(\n selectRegistry,\n ({ registryServer }) => registryServer && (registryServer !== NETDATA_REGISTRY_SERVER),\n)\n\n// currently cloud-base-url is taken from registry?action=hello call, which returns error\n// if Agent+browser are configured to respect do-not-track\nexport const selectIsCloudEnabled = createSelector(\n selectRegistry,\n (registry) => registry.isCloudEnabled && !registry.isHelloCallError,\n)\nexport const selectHasFetchedInfo = createSelector(selectRegistry, prop(\"hasFetchedInfo\"))\nexport const selectFullInfoPayload = createSelector(selectRegistry, prop(\"fullInfoPayload\"))\n\nexport const selectHasStartedAlarms = createSelector(\n selectGlobal,\n path([\"alarms\", \"hasStartedAlarms\"]),\n)\nexport const selectActiveAlarms = createSelector(\n selectGlobal,\n (global) => global.alarms.activeAlarms,\n)\n\nexport const selectAlarm = createSelector(\n selectGlobal,\n (global) => global.alarm\n)\n\nexport const selectSpacePanelIsActive = createSelector(selectGlobal, prop(\"spacePanelIsActive\"))\nexport const selectSpacePanelTransitionEndIsActive = createSelector(\n selectGlobal, prop(\"spacePanelTransitionEndIsActive\"),\n)\n\nexport const selectOptions = createSelector(selectGlobal, global => global.options)\n\nexport const createSelectOption = <T extends OptionsKey>(optionName: T) => (\n createSelector(selectOptions, (options) => options[optionName])\n)\n\nexport const selectDestroyOnHide = createSelectOption(\"destroy_on_hide\")\nexport const selectStopUpdatesWhenFocusIsLost = createSelectOption(\n \"stop_updates_when_focus_is_lost\",\n)\nexport const selectShouldEliminateZeroDimensions = createSelectOption(\"eliminate_zero_dimensions\")\nexport const selectIsAsyncOnScroll = createSelectOption(\"async_on_scroll\")\n\nexport const selectParallelRefresher = createSelectOption(\"parallel_refresher\")\nexport const selectConcurrentRefreshes = createSelectOption(\"concurrent_refreshes\")\nexport const selectSyncSelection = createSelectOption(\"sync_selection\")\nexport const selectSyncPanAndZoom = createSelectOption(\"sync_pan_and_zoom\")\n\nexport const selectTheme = createSelectOption(\"theme\")\nexport const selectShowHelp = createSelectOption(\"show_help\")\nexport const selectPanAndZoomDataPadding = createSelectOption(\"pan_and_zoom_data_padding\")\nexport const selectSmoothPlot = createSelectOption(\"smooth_plot\")\n\nexport const selectUnitsScalingMethod = createSelectOption(\"units\")\nexport const selectTemperatureSetting = createSelectOption(\"temperature\")\nexport const selectSecondsAsTimeSetting = createSelectOption(\"seconds_as_time\")\nexport const selectTimezoneSetting = createSelectOption(\"timezone\")\nexport const selectUTCOffsetSetting = createSelectOption(\"utcOffset\")\nexport const selectUserSetServerTimezone = createSelectOption(\"user_set_server_timezone\")\n\nexport const selectChartsMetadata = createSelector(\n selectGlobal,\n (global) => global.chartsMetadata.data,\n)\n\nexport const selectChartMetadataFromChartsCall = createSelector(\n selectChartsMetadata,\n (_: unknown, { chartId }: { chartId: string, id: string }) => chartId,\n (allMetadata, chartId) => allMetadata?.charts[chartId],\n)\n\nexport const selectUserNodeAccess = createSelector(selectGlobal, global => global.userNodeAccess)\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { Text, getColor } from \"@netdata/netdata-ui\"\n\nconst BaseAnchor = styled(\"a\")`\n && {\n color: ${getColor(\"primary\")};\n\n :hover {\n color: ${getColor(\"primary\")};\n }\n\n :visited {\n color: ${getColor(\"accent\")};\n }\n }\n`\n\ntype AnchorProps = React.ComponentPropsWithRef<\"a\"> & {\n Component?: React.ElementType\n}\n\nconst Anchor = ({ Component = Text, ...rest }: AnchorProps): any => (\n <Component as={BaseAnchor} {...rest} />\n)\n\nexport default Anchor\n","import { createAction } from \"redux-act\"\n\n// slightly simplified version of the creator used in the cloud\n// we will unify it when some typing issues will be fixed (cloud version didn't warn on bad payload)\nexport const createRequestAction = <RequestT, SuccessT = any, FailureT = any>(name: string) => {\n const action = createAction<RequestT>(name.toUpperCase())\n\n return Object.assign(action, {\n request: action,\n success: createAction<SuccessT>(\n `${name.toUpperCase()}_SUCCESS`,\n (payload) => payload,\n (meta) => meta,\n ),\n failure: createAction<FailureT>(\n `${name.toUpperCase()}_FAILURE`,\n (payload) => payload,\n (meta) => ({\n ...meta,\n error: true,\n }),\n ),\n })\n}\n","import { mergeAll, mergeRight } from \"ramda\"\nimport { LOCALSTORAGE_HEIGHT_KEY_PREFIX } from \"domains/chart/components/resize-handler\"\nimport { DashboardTheme } from \"utils/map-theme\"\n\nexport const SYNC_PAN_AND_ZOOM = \"sync_pan_and_zoom\"\nexport const STOP_UPDATES_WHEN_FOCUS_IS_LOST = \"stop_updates_when_focus_is_lost\"\nexport const DESTROY_ON_HIDE = \"destroy_on_hide\"\nexport const THEME = \"theme\"\nexport const LEGEND_RIGHT = \"legend_right\"\n\nexport const themeLocalStorageKey = \"netdataTheme\"\n\n/* eslint-disable camelcase */\n\nexport interface Options {\n // performance options\n [STOP_UPDATES_WHEN_FOCUS_IS_LOST]: boolean\n eliminate_zero_dimensions: boolean\n [DESTROY_ON_HIDE]: boolean\n async_on_scroll: boolean\n\n // synchronization options\n parallel_refresher: boolean\n concurrent_refreshes: boolean\n sync_selection: boolean\n [SYNC_PAN_AND_ZOOM]: boolean\n\n // visual options\n [LEGEND_RIGHT]: boolean\n [THEME]: DashboardTheme\n show_help: boolean\n pan_and_zoom_data_padding: boolean\n smooth_plot: boolean\n\n // locale options\n units: \"auto\" | \"original\"\n temperature: \"celsius\" | \"fahrenheit\"\n seconds_as_time: boolean\n timezone: string\n user_set_server_timezone: string\n utcOffset: number | string\n}\nexport type OptionsKey = keyof Options\n\n// those options have been created around 2015/2016 and some of them are not needed anymore\n// so we need to revisit them, test their impact, etc.\n\nexport const INITIAL_OPTIONS: Options = {\n // performance options\n\n // boolean - shall we stop auto-refreshes when document does not have user focus\n [STOP_UPDATES_WHEN_FOCUS_IS_LOST]: true,\n // do not show dimensions with just zeros\n eliminate_zero_dimensions: true,\n // destroy charts when they are not visible\n [DESTROY_ON_HIDE]: false, // eventually apply slow device detection\n async_on_scroll: false,\n\n // synchronization options\n // enable parallel refresh of charts\n parallel_refresher: true, // eventually apply slow device detection\n // when parallel_refresher is enabled, sync also the charts\n concurrent_refreshes: true,\n // enable or disable selection sync\n sync_selection: true,\n // enable or disable pan and zoom sync\n [SYNC_PAN_AND_ZOOM]: true,\n\n // visual options\n [LEGEND_RIGHT]: false,\n [THEME]: \"slate\",\n // when enabled the charts will show some help\n // when there's no bootstrap, we can't show it\n show_help: Boolean(window.netdataShowHelp) && !window.netdataNoBootstrap,\n // fetch more data for the master chart when panning or zooming\n pan_and_zoom_data_padding: true,\n // enable smooth plot, where possible\n smooth_plot: true, // eventually apply slow device detection\n\n // locale options\n units: \"auto\", // auto or original\n temperature: \"celsius\",\n seconds_as_time: true, // show seconds as DDd:HH:MM:SS ?\n timezone: \"default\", // the timezone to use, or 'default'\n user_set_server_timezone: \"default\", // as set by the user on the dashboard\n utcOffset: 0,\n}\n\nconst localStorageKeyToOption = <T extends string>(key: T) =>\n key.replace(/^options\\./, \"\").replace(themeLocalStorageKey, THEME)\n\nconst getItemFromLocalStorage = <T extends string>(key: T) => {\n const value = localStorage.getItem(key)\n // \"undefined\" (deliberate as a string) to support \"options.setOptionCallback\", an old property\n // used in old dashboard. users will still have it, so we need to support it for some time\n if (value === null || value === \"undefined\") {\n localStorage.removeItem(key)\n return null\n }\n let parsed\n try {\n parsed = JSON.parse(value)\n } catch (e) {\n // todo fix after main.js refactor\n // special case for netdataTheme, only this option is not boolean\n if (key === themeLocalStorageKey && value) {\n return value\n }\n\n console.log(`localStorage: failed to read \"${key}\", using default`) // eslint-disable-line no-console, max-len\n // it was not present in old dashboard, but it probably makes sense to remove broken values\n localStorage.removeItem(key)\n return null\n }\n return parsed\n}\n\nexport const getOptionsMergedWithLocalStorage = (): Options => {\n const optionsFromLocalStorage = Object.keys(localStorage)\n .filter(key => key.startsWith(\"options.\") || key === themeLocalStorageKey)\n .map(key => ({\n [localStorageKeyToOption(key)]: getItemFromLocalStorage(key),\n }))\n .filter(o => Object.values(o)[0] !== null)\n\n const overridenOptions = mergeAll(optionsFromLocalStorage) as unknown as Options\n return mergeRight(INITIAL_OPTIONS, overridenOptions)\n}\n\nexport const optionsMergedWithLocalStorage = getOptionsMergedWithLocalStorage()\nexport const initialLegendRight = optionsMergedWithLocalStorage[LEGEND_RIGHT]\n\nexport const clearLocalStorage = () => {\n const localStorageKeys = Object.keys(localStorage)\n localStorageKeys.forEach(key => {\n if (key.startsWith(LOCALSTORAGE_HEIGHT_KEY_PREFIX) || key.startsWith(\"options.\")) {\n localStorage.removeItem(key)\n }\n })\n}\n"],"sourceRoot":""} \ No newline at end of file
diff --git a/web/gui/v1/static/js/runtime-main.08abed8f.js b/src/web/gui/v1/static/js/runtime-main.08abed8f.js
index dd3cde233..dd3cde233 100644
--- a/web/gui/v1/static/js/runtime-main.08abed8f.js
+++ b/src/web/gui/v1/static/js/runtime-main.08abed8f.js
diff --git a/web/gui/v1/static/js/runtime-main.08abed8f.js.map b/src/web/gui/v1/static/js/runtime-main.08abed8f.js.map
index 9502645b6..9502645b6 100644
--- a/web/gui/v1/static/js/runtime-main.08abed8f.js.map
+++ b/src/web/gui/v1/static/js/runtime-main.08abed8f.js.map
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2
index 73262c7d6..73262c7d6 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100.245539db.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff
index 877286125..877286125 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100.9a582f3a.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff
index de2d0237a..de2d0237a 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.1ea7c5d2.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2
index 978c8161f..978c8161f 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-100italic.3c34cf08.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-200.67524c36.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200.67524c36.woff
index e44539fb2..e44539fb2 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-200.67524c36.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200.67524c36.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-200.bf72c841.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200.bf72c841.woff2
index 6fd71c9e9..6fd71c9e9 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-200.bf72c841.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200.bf72c841.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.52df2560.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.52df2560.woff
index 3fea36c0a..3fea36c0a 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.52df2560.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.52df2560.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2
index 9a828ac3d..9a828ac3d 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-200italic.bbc2d552.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff
index 2b490f7aa..2b490f7aa 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300.10bb6a0a.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2
index 7ba678ba3..7ba678ba3 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300.9e1c48af.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2
index a0ed376e2..a0ed376e2 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.c76f2ab5.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff
index 53565279a..53565279a 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-300italic.d3566d5b.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-400.263d6267.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400.263d6267.woff2
index 1c11337e6..1c11337e6 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-400.263d6267.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400.263d6267.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-400.a2c56f94.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400.a2c56f94.woff
index 24cbb7d31..24cbb7d31 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-400.a2c56f94.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400.a2c56f94.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.272f8611.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.272f8611.woff
index 73ccb5f50..73ccb5f50 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.272f8611.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.272f8611.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2
index ff6bb8eec..ff6bb8eec 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-400italic.89a93a1b.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-500.0866c244.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500.0866c244.woff2
index d54455d94..d54455d94 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-500.0866c244.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500.0866c244.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff
index 9680be624..9680be624 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500.f6d5c5d5.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff
index bfbf10402..bfbf10402 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ccd41bd1.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2
index 6f336fae8..6f336fae8 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-500italic.ffd12d59.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-600.337b1651.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600.337b1651.woff
index 95153499c..95153499c 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-600.337b1651.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600.337b1651.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2
index b9a24e042..b9a24e042 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600.7852d4dc.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2
index 3e91ee4f5..3e91ee4f5 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.17e5379f.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff
index 05e91d92f..05e91d92f 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-600italic.6f4ba6aa.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff
index f4321ba84..f4321ba84 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700.b8809d61.woff
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2
index 402e06a91..402e06a91 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700.c9983d3d.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2 b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2
index b49bd393b..b49bd393b 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.02954bee.woff2
Binary files differ
diff --git a/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff
index 3758317fe..3758317fe 100644
--- a/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff
+++ b/src/web/gui/v1/static/media/ibm-plex-sans-latin-700italic.72e9af40.woff
Binary files differ
diff --git a/web/gui/v1/static/media/material-icons.0509ab09.woff2 b/src/web/gui/v1/static/media/material-icons.0509ab09.woff2
index 34cdd2afb..34cdd2afb 100644
--- a/web/gui/v1/static/media/material-icons.0509ab09.woff2
+++ b/src/web/gui/v1/static/media/material-icons.0509ab09.woff2
Binary files differ
diff --git a/web/gui/v1/tv-react.html b/src/web/gui/v1/tv-react.html
index 6d33e78c0..6d33e78c0 100644
--- a/web/gui/v1/tv-react.html
+++ b/src/web/gui/v1/tv-react.html
diff --git a/web/gui/v1/tv.html b/src/web/gui/v1/tv.html
index fa0aa5186..fa0aa5186 100644
--- a/web/gui/v1/tv.html
+++ b/src/web/gui/v1/tv.html
diff --git a/src/web/gui/v2/.well-known/assetlinks.json b/src/web/gui/v2/.well-known/assetlinks.json
new file mode 100644
index 000000000..270af6689
--- /dev/null
+++ b/src/web/gui/v2/.well-known/assetlinks.json
@@ -0,0 +1,11 @@
+[
+ {
+ "relation": ["delegate_permission/common.handle_all_urls"],
+ "target": {
+ "namespace": "android_app",
+ "package_name": "cloud.netdata.android",
+ "sha256_cert_fingerprints":
+ ["67:F4:89:2B:8D:A9:2D:CB:91:ED:A1:BD:42:04:90:28:05:4F:3E:81:04:7B:76:B6:0A:20:30:6C:90:38:08:90","1F:B8:9A:45:AD:83:76:DD:7E:A5:9A:07:82:4A:2F:99:3E:0D:EB:64:FA:50:76:59:65:3F:CC:38:7F:32:28:AA"]
+ }
+ }
+]
diff --git a/src/web/gui/v2/1220.866e5f8ef6dd53cc1146.chunk.js b/src/web/gui/v2/1220.866e5f8ef6dd53cc1146.chunk.js
new file mode 100644
index 000000000..98b95d3e8
--- /dev/null
+++ b/src/web/gui/v2/1220.866e5f8ef6dd53cc1146.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ddc5a317-b49d-4b0f-b19a-3506c5dc9439",e._sentryDebugIdIdentifier="sentry-dbid-ddc5a317-b49d-4b0f-b19a-3506c5dc9439")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1220],{51220:(e,t,s)=>{s.d(t,{Te:()=>h});var i=s(96540),n=s(40961),o=s(57530);const l="undefined"!==typeof document?i.useLayoutEffect:i.useEffect;function r(e){const t=i.useReducer((()=>({})),{})[1],s={...e,onChange:(s,i)=>{var o;i?(0,n.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,s,i)}},[r]=i.useState((()=>new o.YV(s)));return r.setOptions(s),i.useEffect((()=>r._didMount()),[]),l((()=>r._willUpdate())),r}function h(e){return r({observeElementRect:o.T6,observeElementOffset:o.AO,scrollToFn:o.Ox,...e})}},57530:(e,t,s)=>{function i(e,t,s){let i,n=s.initialDeps??[];return()=>{var o,l,r,h;let a;s.key&&(null==(o=s.debug)?void 0:o.call(s))&&(a=Date.now());const c=e();if(!(c.length!==n.length||c.some(((e,t)=>n[t]!==e))))return i;let d;if(n=c,s.key&&(null==(l=s.debug)?void 0:l.call(s))&&(d=Date.now()),i=t(...c),s.key&&(null==(r=s.debug)?void 0:r.call(s))){const e=Math.round(100*(Date.now()-a))/100,t=Math.round(100*(Date.now()-d))/100,i=t/16,n=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${n(t,5)} /${n(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*i,120))}deg 100% 31%);`,null==s?void 0:s.key)}return null==(h=null==s?void 0:s.onChange)||h.call(s,i),i}}function n(e,t){if(void 0===e)throw new Error("Unexpected undefined"+(t?`: ${t}`:""));return e}s.d(t,{YV:()=>d,vp:()=>l,Ox:()=>c,AO:()=>h,T6:()=>r});const o=e=>e,l=e=>{const t=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1),i=[];for(let n=t;n<=s;n++)i.push(n);return i},r=(e,t)=>{const s=e.scrollElement;if(!s)return;const i=e=>{const{width:s,height:i}=e;t({width:Math.round(s),height:Math.round(i)})};if(i(s.getBoundingClientRect()),"undefined"===typeof ResizeObserver)return()=>{};const n=new ResizeObserver((e=>{const t=e[0];if(null==t?void 0:t.borderBoxSize){const e=t.borderBoxSize[0];if(e)return void i({width:e.inlineSize,height:e.blockSize})}i(s.getBoundingClientRect())}));return n.observe(s,{box:"border-box"}),()=>{n.unobserve(s)}},h=(e,t)=>{const s=e.scrollElement;if(!s)return;const i=()=>{t(s[e.options.horizontal?"scrollLeft":"scrollTop"])};return i(),s.addEventListener("scroll",i,{passive:!0}),()=>{s.removeEventListener("scroll",i)}},a=(e,t,s)=>{if(null==t?void 0:t.borderBoxSize){const e=t.borderBoxSize[0];if(e){return Math.round(e[s.options.horizontal?"inlineSize":"blockSize"])}}return Math.round(e.getBoundingClientRect()[s.options.horizontal?"width":"height"])},c=(e,{adjustments:t=0,behavior:s},i)=>{var n,o;const l=e+t;null==(o=null==(n=i.scrollElement)?void 0:n.scrollTo)||o.call(n,{[i.options.horizontal?"left":"top"]:l,behavior:s})};class d{constructor(e){this.unsubs=[],this.scrollElement=null,this.isScrolling=!1,this.isScrollingTimeoutId=null,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollDirection=null,this.scrollAdjustments=0,this.measureElementCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||("undefined"!==typeof ResizeObserver?e=new ResizeObserver((e=>{e.forEach((e=>{this._measureElement(e.target,e)}))})):null);return{disconnect:()=>{var e;return null==(e=t())?void 0:e.disconnect()},observe:e=>{var s;return null==(s=t())?void 0:s.observe(e,{box:"border-box"})},unobserve:e=>{var s;return null==(s=t())?void 0:s.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach((([t,s])=>{"undefined"===typeof s&&delete e[t]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:o,rangeExtractor:l,onChange:()=>{},measureElement:a,initialRect:{width:0,height:0},scrollMargin:0,scrollingDelay:150,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,...e}},this.notify=e=>{var t,s;null==(s=(t=this.options).onChange)||s.call(t,this,e)},this.maybeNotify=i((()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null])),(e=>{this.notify(e)}),{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((e=>e())),this.unsubs=[],this.scrollElement=null},this._didMount=()=>(this.measureElementCache.forEach(this.observer.observe),()=>{this.observer.disconnect(),this.cleanup()}),this._willUpdate=()=>{const e=this.options.getScrollElement();this.scrollElement!==e&&(this.cleanup(),this.scrollElement=e,this._scrollToOffset(this.scrollOffset,{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,(e=>{this.scrollRect=e,this.maybeNotify()}))),this.unsubs.push(this.options.observeElementOffset(this,(e=>{this.scrollAdjustments=0,this.scrollOffset!==e&&(null!==this.isScrollingTimeoutId&&(clearTimeout(this.isScrollingTimeoutId),this.isScrollingTimeoutId=null),this.isScrolling=!0,this.scrollDirection=this.scrollOffset<e?"forward":"backward",this.scrollOffset=e,this.maybeNotify(),this.isScrollingTimeoutId=setTimeout((()=>{this.isScrollingTimeoutId=null,this.isScrolling=!1,this.scrollDirection=null,this.maybeNotify()}),this.options.scrollingDelay))}))))},this.getSize=()=>this.scrollRect[this.options.horizontal?"width":"height"],this.memoOptions=i((()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey]),((e,t,s,i)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:i})),{key:!1}),this.getFurthestMeasurement=(e,t)=>{const s=new Map,i=new Map;for(let n=t-1;n>=0;n--){const t=e[n];if(s.has(t.lane))continue;const o=i.get(t.lane);if(null==o||t.end>o.end?i.set(t.lane,t):t.end<o.end&&s.set(t.lane,!0),s.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort(((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end))[0]:void 0},this.getMeasurements=i((()=>[this.memoOptions(),this.itemSizeCache]),(({count:e,paddingStart:t,scrollMargin:s,getItemKey:i},n)=>{const o=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const l=this.measurementsCache.slice(0,o);for(let r=o;r<e;r++){const e=i(r),o=1===this.options.lanes?l[r-1]:this.getFurthestMeasurement(l,r),h=o?o.end:t+s,a=n.get(e),c="number"===typeof a?a:this.options.estimateSize(r),d=h+c,u=o?o.lane:r%this.options.lanes;l[r]={index:r,start:h,size:c,end:d,key:e,lane:u}}return this.measurementsCache=l,l}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=i((()=>[this.getMeasurements(),this.getSize(),this.scrollOffset]),((e,t,s)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:s}){const i=e.length-1,n=t=>e[t].start,o=u(0,i,n,s);let l=o;for(;l<i&&e[l].end<s+t;)l++;return{startIndex:o,endIndex:l}}({measurements:e,outerSize:t,scrollOffset:s}):null),{key:!1,debug:()=>this.options.debug}),this.getIndexes=i((()=>[this.options.rangeExtractor,this.calculateRange(),this.options.overscan,this.options.count]),((e,t,s,i)=>null===t?[]:e({...t,overscan:s,count:i})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const s=this.measurementsCache[this.indexFromElement(e)];if(!s||!e.isConnected)return void this.measureElementCache.forEach(((t,s)=>{t===e&&(this.observer.unobserve(e),this.measureElementCache.delete(s))}));const i=this.measureElementCache.get(s.key);i!==e&&(i&&this.observer.unobserve(i),this.observer.observe(e),this.measureElementCache.set(s.key,e));const n=this.options.measureElement(e,t,this);this.resizeItem(s,n)},this.resizeItem=(e,t)=>{const s=t-(this.itemSizeCache.get(e.key)??e.size);0!==s&&(e.start<this.scrollOffset+this.scrollAdjustments&&this._scrollToOffset(this.scrollOffset,{adjustments:this.scrollAdjustments+=s,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(e.index),this.itemSizeCache=new Map(this.itemSizeCache.set(e.key,t)),this.notify(!1))},this.measureElement=e=>{e&&this._measureElement(e,void 0)},this.getVirtualItems=i((()=>[this.getIndexes(),this.getMeasurements()]),((e,t)=>{const s=[];for(let i=0,n=e.length;i<n;i++){const n=t[e[i]];s.push(n)}return s}),{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();return n(t[u(0,t.length-1,(e=>n(t[e]).start),e)])},this.getOffsetForAlignment=(e,t)=>{const s=this.getSize();"auto"===t&&(t=e<=this.scrollOffset?"start":e>=this.scrollOffset+s?"end":"start"),"start"===t||("end"===t?e-=s:"center"===t&&(e-=s/2));const i=this.options.horizontal?"scrollWidth":"scrollHeight",n=(this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[i]:this.scrollElement[i]:0)-this.getSize();return Math.max(Math.min(n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=n(this.getMeasurements()[e]);if("auto"===t)if(s.end>=this.scrollOffset+this.getSize()-this.options.scrollPaddingEnd)t="end";else{if(!(s.start<=this.scrollOffset+this.options.scrollPaddingStart))return[this.scrollOffset,t];t="start"}const i="end"===t?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,t),t]},this.isDynamicMode=()=>this.measureElementCache.size>0,this.cancelScrollToIndex=()=>{null!==this.scrollToIndexTimeoutId&&(clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(e,{align:t="start",behavior:s}={})=>{this.cancelScrollToIndex(),"smooth"===s&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:s})},this.scrollToIndex=(e,{align:t="auto",behavior:s}={})=>{e=Math.max(0,Math.min(e,this.options.count-1)),this.cancelScrollToIndex(),"smooth"===s&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const[i,n]=this.getOffsetForIndex(e,t);this._scrollToOffset(i,{adjustments:void 0,behavior:s}),"smooth"!==s&&this.isDynamicMode()&&(this.scrollToIndexTimeoutId=setTimeout((()=>{this.scrollToIndexTimeoutId=null;if(this.measureElementCache.has(this.options.getItemKey(e))){const[o]=this.getOffsetForIndex(e,n);t=o,i=this.scrollOffset,Math.abs(t-i)<1||this.scrollToIndex(e,{align:n,behavior:s})}else this.scrollToIndex(e,{align:n,behavior:s});var t,i})))},this.scrollBy=(e,{behavior:t}={})=>{this.cancelScrollToIndex(),"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.scrollOffset+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let s;return s=0===t.length?this.options.paddingStart:1===this.options.lanes?(null==(e=t[t.length-1])?void 0:e.end)??0:Math.max(...t.slice(-this.options.lanes).map((e=>e.end))),s-this.options.scrollMargin+this.options.paddingEnd},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e),this.scrollRect=this.options.initialRect,this.scrollOffset=this.options.initialOffset,this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach((e=>{this.itemSizeCache.set(e.key,e.size)})),this.maybeNotify()}}const u=(e,t,s,i)=>{for(;e<=t;){const n=(e+t)/2|0,o=s(n);if(o<i)e=n+1;else{if(!(o>i))return n;t=n-1}}return e>0?e-1:0}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js b/src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js
new file mode 100644
index 000000000..0ae3c8bdc
--- /dev/null
+++ b/src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js
@@ -0,0 +1,2 @@
+/*! For license information please see 1396.3ea7b55a3bffeef95530.chunk.js.LICENSE.txt */
+!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="869ac313-be4a-4167-b1cd-bbe85c808e89",t._sentryDebugIdIdentifier="sentry-dbid-869ac313-be4a-4167-b1cd-bbe85c808e89")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1396],{40955:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(80754),r(84636),r(39506),r(57165),function(){var t=o,e=t.lib.BlockCipher,r=t.algo,i=[],n=[],s=[],c=[],a=[],h=[],f=[],l=[],u=[],d=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var r=0,o=0;for(e=0;e<256;e++){var p=o^o<<1^o<<2^o<<3^o<<4;p=p>>>8^255&p^99,i[r]=p,n[p]=r;var v=t[r],_=t[v],y=t[_],g=257*t[p]^16843008*p;s[r]=g<<24|g>>>8,c[r]=g<<16|g>>>16,a[r]=g<<8|g>>>24,h[r]=g,g=16843009*y^65537*_^257*v^16843008*r,f[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,u[p]=g<<8|g>>>24,d[p]=g,r?(r=v^t[t[t[y^v]]],o^=t[t[o]]):r=o=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],v=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s<n;s++)s<r?o[s]=e[s]:(h=o[s-1],s%r?r>6&&s%r==4&&(h=i[h>>>24]<<24|i[h>>>16&255]<<16|i[h>>>8&255]<<8|i[255&h]):(h=i[(h=h<<8|h>>>24)>>>24]<<24|i[h>>>16&255]<<16|i[h>>>8&255]<<8|i[255&h],h^=p[s/r|0]<<24),o[s]=o[s-r]^h);for(var c=this._invKeySchedule=[],a=0;a<n;a++){if(s=n-a,a%4)var h=o[s];else h=o[s-4];c[a]=a<4||s<=4?h:f[i[h>>>24]]^l[i[h>>>16&255]]^u[i[h>>>8&255]]^d[i[255&h]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,s,c,a,h,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,f,l,u,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],f=t[e+1]^r[1],l=t[e+2]^r[2],u=t[e+3]^r[3],d=4,p=1;p<a;p++){var v=i[h>>>24]^n[f>>>16&255]^o[l>>>8&255]^s[255&u]^r[d++],_=i[f>>>24]^n[l>>>16&255]^o[u>>>8&255]^s[255&h]^r[d++],y=i[l>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&f]^r[d++],g=i[u>>>24]^n[h>>>16&255]^o[f>>>8&255]^s[255&l]^r[d++];h=v,f=_,l=y,u=g}v=(c[h>>>24]<<24|c[f>>>16&255]<<16|c[l>>>8&255]<<8|c[255&u])^r[d++],_=(c[f>>>24]<<24|c[l>>>16&255]<<16|c[u>>>8&255]<<8|c[255&h])^r[d++],y=(c[l>>>24]<<24|c[u>>>16&255]<<16|c[h>>>8&255]<<8|c[255&f])^r[d++],g=(c[u>>>24]<<24|c[h>>>16&255]<<16|c[f>>>8&255]<<8|c[255&l])^r[d++],t[e]=v,t[e+1]=_,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(v)}(),o.AES)}()},43128:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(80754),r(84636),r(39506),r(57165),function(){var t=o,e=t.lib.BlockCipher,r=t.algo;const i=16,n=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],s=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var c={pbox:[],sbox:[]};function a(t,e){let r=e>>24&255,i=e>>16&255,n=e>>8&255,o=255&e,s=t.sbox[0][r]+t.sbox[1][i];return s^=t.sbox[2][n],s+=t.sbox[3][o],s}function h(t,e,r){let n,o=e,s=r;for(let c=0;c<i;++c)o^=t.pbox[c],s=a(t,o)^s,n=o,o=s,s=n;return n=o,o=s,s=n,s^=t.pbox[i],o^=t.pbox[i+1],{left:o,right:s}}function f(t,e,r){let n,o=e,s=r;for(let c=i+1;c>1;--c)o^=t.pbox[c],s=a(t,o)^s,n=o,o=s,s=n;return n=o,o=s,s=n,s^=t.pbox[1],o^=t.pbox[0],{left:o,right:s}}function l(t,e,r){for(let i=0;i<4;i++){t.sbox[i]=[];for(let e=0;e<256;e++)t.sbox[i][e]=s[i][e]}let o=0;for(let s=0;s<i+2;s++)t.pbox[s]=n[s]^e[o],o++,o>=r&&(o=0);let c=0,a=0,f=0;for(let n=0;n<i+2;n+=2)f=h(t,c,a),c=f.left,a=f.right,t.pbox[n]=c,t.pbox[n+1]=a;for(let i=0;i<4;i++)for(let e=0;e<256;e+=2)f=h(t,c,a),c=f.left,a=f.right,t.sbox[i][e]=c,t.sbox[i][e+1]=a;return!0}var u=r.Blowfish=e.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4;l(c,e,r)}},encryptBlock:function(t,e){var r=h(c,t[e],t[e+1]);t[e]=r.left,t[e+1]=r.right},decryptBlock:function(t,e){var r=f(c,t[e],t[e+1]);t[e]=r.left,t[e+1]=r.right},blockSize:2,keySize:4,ivSize:2});t.Blowfish=e._createHelper(u)}(),o.Blowfish)}()},57165:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(39506),void(o.lib.Cipher||function(t){var e=o,r=e.lib,i=r.Base,n=r.WordArray,s=r.BufferedBlockAlgorithm,c=e.enc,a=(c.Utf8,c.Base64),h=e.algo.EvpKDF,f=r.Cipher=s.extend({cfg:i.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?B:y}return function(e){return{encrypt:function(r,i,n){return t(i).encrypt(e,r,i,n)},decrypt:function(r,i,n){return t(i).decrypt(e,r,i,n)}}}}()}),l=(r.StreamCipher=f.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),u=r.BlockCipherMode=i.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),d=l.CBC=function(){var e=u.extend();function r(e,r,i){var n,o=this._iv;o?(n=o,this._iv=t):n=this._prevBlock;for(var s=0;s<i;s++)e[r+s]^=n[s]}return e.Encryptor=e.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize;r.call(this,t,e,n),i.encryptBlock(t,e),this._prevBlock=t.slice(e,e+n)}}),e.Decryptor=e.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=t.slice(e,e+n);i.decryptBlock(t,e),r.call(this,t,e,n),this._prevBlock=o}}),e}(),p=(e.pad={}).Pkcs7={pad:function(t,e){for(var r=4*e,i=r-t.sigBytes%r,o=i<<24|i<<16|i<<8|i,s=[],c=0;c<i;c+=4)s.push(o);var a=n.create(s,i);t.concat(a)},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},v=(r.BlockCipher=f.extend({cfg:f.cfg.extend({mode:d,padding:p}),reset:function(){var t;f.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),r.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),_=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?n.create([1398893684,1701076831]).concat(r).concat(e):e).toString(a)},parse:function(t){var e,r=a.parse(t),i=r.words;return 1398893684==i[0]&&1701076831==i[1]&&(e=n.create(i.slice(2,4)),i.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:e})}},y=r.SerializableCipher=i.extend({cfg:i.extend({format:_}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),g=(e.kdf={}).OpenSSL={execute:function(t,e,r,i,o){if(i||(i=n.random(8)),o)s=h.create({keySize:e+r,hasher:o}).compute(t,i);else var s=h.create({keySize:e+r}).compute(t,i);var c=n.create(s.words.slice(e),4*r);return s.sigBytes=4*e,v.create({key:s,iv:c,salt:i})}},B=r.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:g}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize,i.salt,i.hasher);i.iv=n.iv;var o=y.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt,i.hasher);return i.iv=n.iv,y.decrypt.call(this,t,e,n.key,i)}})}()))}()},19021:function(t,e,r){t.exports=function(){var t=t||function(t,e){var i;if("undefined"!==typeof window&&window.crypto&&(i=window.crypto),"undefined"!==typeof self&&self.crypto&&(i=self.crypto),"undefined"!==typeof globalThis&&globalThis.crypto&&(i=globalThis.crypto),!i&&"undefined"!==typeof window&&window.msCrypto&&(i=window.msCrypto),!i&&"undefined"!==typeof r.g&&r.g.crypto&&(i=r.g.crypto),!i)try{i=r(50477)}catch(_){}var n=function(){if(i){if("function"===typeof i.getRandomValues)try{return i.getRandomValues(new Uint32Array(1))[0]}catch(_){}if("function"===typeof i.randomBytes)try{return i.randomBytes(4).readInt32LE()}catch(_){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),s={},c=s.lib={},a=c.Base={extend:function(t){var e=o(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},h=c.WordArray=a.extend({init:function(t,r){t=this.words=t||[],this.sigBytes=r!=e?r:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o<n;o++){var s=r[o>>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var c=0;c<n;c+=4)e[i+c>>>2]=r[c>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=a.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r<t;r+=4)e.push(n());return new h.init(e,t)}}),f=s.enc={},l=f.Hex={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n<r;n++){var o=e[n>>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i<e;i+=2)r[i>>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new h.init(r,e/2)}},u=f.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n<r;n++){var o=e[n>>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i<e;i++)r[i>>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new h.init(r,e)}},d=f.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},p=c.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new h.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,c=o/(4*s),a=(c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0))*s,f=t.min(4*a,o);if(a){for(var l=0;l<a;l+=s)this._doProcessBlock(n,l);r=n.splice(0,a),i.sigBytes-=f}return new h.init(r,f)},clone:function(){var t=a.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0}),v=(c.Hasher=p.extend({cfg:a.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,r){return new t.init(r).finalize(e)}},_createHmacHelper:function(t){return function(e,r){return new v.HMAC.init(t,r).finalize(e)}}}),s.algo={});return s}(Math);return t}()},80754:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(){var t=n,e=t.lib.WordArray;function r(t,r,i){for(var n=[],o=0,s=0;s<r;s++)if(s%4){var c=i[t.charCodeAt(s-1)]<<s%4*2|i[t.charCodeAt(s)]>>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return e.create(n,o)}t.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o<r;o+=3)for(var s=(e[o>>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c<r;c++)n.push(i.charAt(s>>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o<i.length;o++)n[i.charCodeAt(o)]=o}var s=i.charAt(64);if(s){var c=t.indexOf(s);-1!==c&&(e=c)}return r(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),n.enc.Base64)}()},64725:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(){var t=n,e=t.lib.WordArray;function r(t,r,i){for(var n=[],o=0,s=0;s<r;s++)if(s%4){var c=i[t.charCodeAt(s-1)]<<s%4*2|i[t.charCodeAt(s)]>>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return e.create(n,o)}t.enc.Base64url={stringify:function(t,e){void 0===e&&(e=!0);var r=t.words,i=t.sigBytes,n=e?this._safe_map:this._map;t.clamp();for(var o=[],s=0;s<i;s+=3)for(var c=(r[s>>>2]>>>24-s%4*8&255)<<16|(r[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|r[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a<i;a++)o.push(n.charAt(c>>>6*(3-a)&63));var h=n.charAt(64);if(h)for(;o.length%4;)o.push(h);return o.join("")},parse:function(t,e){void 0===e&&(e=!0);var i=t.length,n=e?this._safe_map:this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var s=0;s<n.length;s++)o[n.charCodeAt(s)]=s}var c=n.charAt(64);if(c){var a=t.indexOf(c);-1!==a&&(i=a)}return r(t,i,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),n.enc.Base64url)}()},45503:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(){var t=n,e=t.lib.WordArray,r=t.enc;function i(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n<r;n+=2){var o=e[n>>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,i=[],n=0;n<r;n++)i[n>>>1]|=t.charCodeAt(n)<<16-n%2*16;return e.create(i,2*r)}},r.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],o=0;o<r;o+=2){var s=i(e[o>>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var r=t.length,n=[],o=0;o<r;o++)n[o>>>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*r)}}}(),n.enc.Utf16)}()},39506:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(45471),r(51025),function(){var t=o,e=t.lib,r=e.Base,i=e.WordArray,n=t.algo,s=n.MD5,c=n.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:s,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r,n=this.cfg,o=n.hasher.create(),s=i.create(),c=s.words,a=n.keySize,h=n.iterations;c.length<a;){r&&o.update(r),r=o.update(t).finalize(e),o.reset();for(var f=1;f<h;f++)r=o.finalize(r),o.reset();s.concat(r)}return s.sigBytes=4*a,s}});t.EvpKDF=function(t,e,r){return c.create(r).compute(t,e)}}(),o.EvpKDF)}()},70025:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),function(t){var e=o,r=e.lib.CipherParams,i=e.enc.Hex;e.format.Hex={stringify:function(t){return t.ciphertext.toString(i)},parse:function(t){var e=i.parse(t);return r.create({ciphertext:e})}}}(),o.format.Hex)}()},51025:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),void function(){var t=n,e=t.lib.Base,r=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=r.parse(e));var i=t.blockSize,n=4*i;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var o=this._oKey=e.clone(),s=this._iKey=e.clone(),c=o.words,a=s.words,h=0;h<i;h++)c[h]^=1549556828,a[h]^=909522486;o.sigBytes=s.sigBytes=n,this.reset()},reset:function(){var t=this._hasher;t.reset(),t.update(this._iKey)},update:function(t){return this._hasher.update(t),this},finalize:function(t){var e=this._hasher,r=e.finalize(t);return e.reset(),e.finalize(this._oKey.clone().concat(r))}})}())}()},21396:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(43240),r(6440),r(45503),r(80754),r(64725),r(84636),r(45471),r(63009),r(36308),r(81380),r(89557),r(45953),r(78056),r(51025),r(70019),r(39506),r(57165),r(82169),r(96939),r(6372),r(73797),r(38454),r(42073),r(54905),r(10482),r(52155),r(58124),r(70025),r(40955),r(7628),r(77193),r(96298),r(22696),r(43128),o)}()},6440:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(){if("function"==typeof ArrayBuffer){var t=n.lib.WordArray,e=t.init,r=t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!==typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n<r;n++)i[n>>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)};r.prototype=t}}(),n.lib.WordArray)}()},84636:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,c=[];!function(){for(var e=0;e<64;e++)c[e]=4294967296*t.abs(t.sin(e+1))|0}();var a=s.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,s=t[e+0],a=t[e+1],d=t[e+2],p=t[e+3],v=t[e+4],_=t[e+5],y=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],x=t[e+11],b=t[e+12],S=t[e+13],m=t[e+14],A=t[e+15],H=o[0],z=o[1],C=o[2],R=o[3];H=h(H,z,C,R,s,7,c[0]),R=h(R,H,z,C,a,12,c[1]),C=h(C,R,H,z,d,17,c[2]),z=h(z,C,R,H,p,22,c[3]),H=h(H,z,C,R,v,7,c[4]),R=h(R,H,z,C,_,12,c[5]),C=h(C,R,H,z,y,17,c[6]),z=h(z,C,R,H,g,22,c[7]),H=h(H,z,C,R,B,7,c[8]),R=h(R,H,z,C,w,12,c[9]),C=h(C,R,H,z,k,17,c[10]),z=h(z,C,R,H,x,22,c[11]),H=h(H,z,C,R,b,7,c[12]),R=h(R,H,z,C,S,12,c[13]),C=h(C,R,H,z,m,17,c[14]),H=f(H,z=h(z,C,R,H,A,22,c[15]),C,R,a,5,c[16]),R=f(R,H,z,C,y,9,c[17]),C=f(C,R,H,z,x,14,c[18]),z=f(z,C,R,H,s,20,c[19]),H=f(H,z,C,R,_,5,c[20]),R=f(R,H,z,C,k,9,c[21]),C=f(C,R,H,z,A,14,c[22]),z=f(z,C,R,H,v,20,c[23]),H=f(H,z,C,R,w,5,c[24]),R=f(R,H,z,C,m,9,c[25]),C=f(C,R,H,z,p,14,c[26]),z=f(z,C,R,H,B,20,c[27]),H=f(H,z,C,R,S,5,c[28]),R=f(R,H,z,C,d,9,c[29]),C=f(C,R,H,z,g,14,c[30]),H=l(H,z=f(z,C,R,H,b,20,c[31]),C,R,_,4,c[32]),R=l(R,H,z,C,B,11,c[33]),C=l(C,R,H,z,x,16,c[34]),z=l(z,C,R,H,m,23,c[35]),H=l(H,z,C,R,a,4,c[36]),R=l(R,H,z,C,v,11,c[37]),C=l(C,R,H,z,g,16,c[38]),z=l(z,C,R,H,k,23,c[39]),H=l(H,z,C,R,S,4,c[40]),R=l(R,H,z,C,s,11,c[41]),C=l(C,R,H,z,p,16,c[42]),z=l(z,C,R,H,y,23,c[43]),H=l(H,z,C,R,w,4,c[44]),R=l(R,H,z,C,b,11,c[45]),C=l(C,R,H,z,A,16,c[46]),H=u(H,z=l(z,C,R,H,d,23,c[47]),C,R,s,6,c[48]),R=u(R,H,z,C,g,10,c[49]),C=u(C,R,H,z,m,15,c[50]),z=u(z,C,R,H,_,21,c[51]),H=u(H,z,C,R,b,6,c[52]),R=u(R,H,z,C,p,10,c[53]),C=u(C,R,H,z,k,15,c[54]),z=u(z,C,R,H,a,21,c[55]),H=u(H,z,C,R,B,6,c[56]),R=u(R,H,z,C,A,10,c[57]),C=u(C,R,H,z,y,15,c[58]),z=u(z,C,R,H,S,21,c[59]),H=u(H,z,C,R,v,6,c[60]),R=u(R,H,z,C,x,10,c[61]),C=u(C,R,H,z,d,15,c[62]),z=u(z,C,R,H,w,21,c[63]),o[0]=o[0]+H|0,o[1]=o[1]+z|0,o[2]=o[2]+C|0,o[3]=o[3]+R|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(n+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(n+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var c=this._hash,a=c.words,h=0;h<4;h++){var f=a[h];a[h]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return c},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function h(t,e,r,i,n,o,s){var c=t+(e&r|~e&i)+n+s;return(c<<o|c>>>32-o)+e}function f(t,e,r,i,n,o,s){var c=t+(e&i|r&~i)+n+s;return(c<<o|c>>>32-o)+e}function l(t,e,r,i,n,o,s){var c=t+(e^r^i)+n+s;return(c<<o|c>>>32-o)+e}function u(t,e,r,i,n,o,s){var c=t+(r^(e|~i))+n+s;return(c<<o|c>>>32-o)+e}e.MD5=o._createHelper(a),e.HmacMD5=o._createHmacHelper(a)}(Math),n.MD5)}()},82169:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.mode.CFB=function(){var t=o.lib.BlockCipherMode.extend();function e(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s<r;s++)t[e+s]^=n[s]}return t.Encryptor=t.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize;e.call(this,t,r,n,i),this._prevBlock=t.slice(r,r+n)}}),t.Decryptor=t.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=t.slice(r,r+n);e.call(this,t,r,n,i),this._prevBlock=o}}),t}(),o.mode.CFB)}()},6372:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.mode.CTRGladman=function(){var t=o.lib.BlockCipherMode.extend();function e(t){if(255===(t>>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}function r(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t}var i=t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),r(s);var c=s.slice(0);i.encryptBlock(c,0);for(var a=0;a<n;a++)t[e+a]^=c[a]}});return t.Decryptor=i,t}(),o.mode.CTRGladman)}()},96939:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.mode.CTR=function(){var t=o.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c<i;c++)t[e+c]^=s[c]}});return t.Decryptor=e,t}(),o.mode.CTR)}()},38454:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.mode.ECB=function(){var t=o.lib.BlockCipherMode.extend();return t.Encryptor=t.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),t.Decryptor=t.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),t}(),o.mode.ECB)}()},73797:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.mode.OFB=function(){var t=o.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s<i;s++)t[e+s]^=o[s]}});return t.Decryptor=e,t}(),o.mode.OFB)}()},42073:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.pad.AnsiX923={pad:function(t,e){var r=t.sigBytes,i=4*e,n=i-r%i,o=r+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},o.pad.Ansix923)}()},54905:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(o.lib.WordArray.random(i-1)).concat(o.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},o.pad.Iso10126)}()},10482:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.pad.Iso97971={pad:function(t,e){t.concat(o.lib.WordArray.create([2147483648],1)),o.pad.ZeroPadding.pad(t,e)},unpad:function(t){o.pad.ZeroPadding.unpad(t),t.sigBytes--}},o.pad.Iso97971)}()},58124:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.pad.NoPadding={pad:function(){},unpad:function(){}},o.pad.NoPadding)}()},52155:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(57165),o.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;r>=0;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},o.pad.ZeroPadding)}()},70019:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(63009),r(51025),function(){var t=o,e=t.lib,r=e.Base,i=e.WordArray,n=t.algo,s=n.SHA256,c=n.HMAC,a=n.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:s,iterations:25e4}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=c.create(r.hasher,t),o=i.create(),s=i.create([1]),a=o.words,h=s.words,f=r.keySize,l=r.iterations;a.length<f;){var u=n.update(e).finalize(s);n.reset();for(var d=u.words,p=d.length,v=u,_=1;_<l;_++){v=n.finalize(v),n.reset();for(var y=v.words,g=0;g<p;g++)d[g]^=y[g]}o.concat(u),h[0]++}return o.sigBytes=4*f,o}});t.PBKDF2=function(t,e,r){return a.create(r).compute(t,e)}}(),o.PBKDF2)}()},22696:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(80754),r(84636),r(39506),r(57165),function(){var t=o,e=t.lib.StreamCipher,r=t.algo,i=[],n=[],s=[],c=r.RabbitLegacy=e.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var n=0;n<4;n++)a.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],c=o[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),f=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=h>>>16|4294901760&f,u=f<<16|65535&h;for(i[0]^=h,i[1]^=l,i[2]^=f,i[3]^=u,i[4]^=h,i[5]^=l,i[6]^=f,i[7]^=u,n=0;n<4;n++)a.call(this)}},_doProcessBlock:function(t,e){var r=this._X;a.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function a(){for(var t=this._X,e=this._C,r=0;r<8;r++)n[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<n[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<n[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<n[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<n[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<n[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<n[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<n[6]>>>0?1:0)|0,this._b=e[7]>>>0<n[7]>>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],o=65535&i,c=i>>>16,a=((o*o>>>17)+o*c>>>15)+c*c,h=((4294901760&i)*i|0)+((65535&i)*i|0);s[r]=a^h}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.RabbitLegacy=e._createHelper(c)}(),o.RabbitLegacy)}()},96298:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(80754),r(84636),r(39506),r(57165),function(){var t=o,e=t.lib.StreamCipher,r=t.algo,i=[],n=[],s=[],c=r.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=0;r<4;r++)t[r]=16711935&(t[r]<<8|t[r]>>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,r=0;r<4;r++)a.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),f=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=h>>>16|4294901760&f,u=f<<16|65535&h;for(n[0]^=h,n[1]^=l,n[2]^=f,n[3]^=u,n[4]^=h,n[5]^=l,n[6]^=f,n[7]^=u,r=0;r<4;r++)a.call(this)}},_doProcessBlock:function(t,e){var r=this._X;a.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function a(){for(var t=this._X,e=this._C,r=0;r<8;r++)n[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<n[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<n[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<n[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<n[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<n[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<n[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<n[6]>>>0?1:0)|0,this._b=e[7]>>>0<n[7]>>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],o=65535&i,c=i>>>16,a=((o*o>>>17)+o*c>>>15)+c*c,h=((4294901760&i)*i|0)+((65535&i)*i|0);s[r]=a^h}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.Rabbit=e._createHelper(c)}(),o.Rabbit)}()},77193:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(80754),r(84636),r(39506),r(57165),function(){var t=o,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,c=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+c)%256;var a=i[n];i[n]=i[o],i[o]=a}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var s=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)n.call(this)}});t.RC4Drop=e._createHelper(s)}(),o.RC4)}()},78056:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,c=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),a=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),h=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),f=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),l=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=s.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,d,w,k,x,b,S,m,A,H,z=this._hash.words,C=l.words,R=u.words,E=c.words,D=a.words,M=h.words,P=f.words;for(x=o=z[0],b=s=z[1],S=d=z[2],m=w=z[3],A=k=z[4],r=0;r<80;r+=1)H=o+t[e+E[r]]|0,H+=r<16?p(s,d,w)+C[0]:r<32?v(s,d,w)+C[1]:r<48?_(s,d,w)+C[2]:r<64?y(s,d,w)+C[3]:g(s,d,w)+C[4],H=(H=B(H|=0,M[r]))+k|0,o=k,k=w,w=B(d,10),d=s,s=H,H=x+t[e+D[r]]|0,H+=r<16?g(b,S,m)+R[0]:r<32?y(b,S,m)+R[1]:r<48?_(b,S,m)+R[2]:r<64?v(b,S,m)+R[3]:p(b,S,m)+R[4],H=(H=B(H|=0,P[r]))+A|0,x=A,A=m,m=B(S,10),S=b,b=H;H=z[1]+d+m|0,z[1]=z[2]+w+A|0,z[2]=z[3]+k+x|0,z[3]=z[4]+o+b|0,z[4]=z[0]+s+S|0,z[0]=H},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return n},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function p(t,e,r){return t^e^r}function v(t,e,r){return t&e|~t&r}function _(t,e,r){return(t|~e)^r}function y(t,e,r){return t&r|e&~r}function g(t,e,r){return t^(e|~r)}function B(t,e){return t<<e|t>>>32-e}e.RIPEMD160=o._createHelper(d),e.HmacRIPEMD160=o._createHmacHelper(d)}(Math),n.RIPEMD160)}()},45471:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(){var t=n,e=t.lib,r=e.WordArray,i=e.Hasher,o=t.algo,s=[],c=o.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],a=r[4],h=0;h<80;h++){if(h<16)s[h]=0|t[e+h];else{var f=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=f<<1|f>>>31}var l=(i<<5|i>>>27)+a+s[h];l+=h<20?1518500249+(n&o|~n&c):h<40?1859775393+(n^o^c):h<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,a=c,c=o,o=n<<30|n>>>2,n=i,i=l}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(i+64>>>9<<4)]=Math.floor(r/4294967296),e[15+(i+64>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});t.SHA1=i._createHelper(c),t.HmacSHA1=i._createHmacHelper(c)}(),n.SHA1)}()},36308:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(63009),function(){var t=o,e=t.lib.WordArray,r=t.algo,i=r.SHA256,n=r.SHA224=i.extend({_doReset:function(){this._hash=new e.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=i._doFinalize.call(this);return t.sigBytes-=4,t}});t.SHA224=i._createHelper(n),t.HmacSHA224=i._createHmacHelper(n)}(),o.SHA224)}()},63009:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,c=[],a=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return!1;return!0}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(c[n]=r(t.pow(i,.5))),a[n]=r(t.pow(i,1/3)),n++),i++}();var h=[],f=s.SHA256=o.extend({_doReset:function(){this._hash=new i.init(c.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],f=r[5],l=r[6],u=r[7],d=0;d<64;d++){if(d<16)h[d]=0|t[e+d];else{var p=h[d-15],v=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=v+h[d-7]+y+h[d-16]}var g=i&n^i&o^n&o,B=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=u+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&f^~c&l)+a[d]+h[d];u=l,l=f,f=c,c=s+w|0,s=o,o=n,n=i,i=w+(B+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0,r[5]=r[5]+f|0,r[6]=r[6]+l|0,r[7]=r[7]+u|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(n+64>>>9<<4)]=t.floor(i/4294967296),r[15+(n+64>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(f),e.HmacSHA256=o._createHmacHelper(f)}(Math),n.SHA256)}()},45953:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(43240),function(t){var e=o,r=e.lib,i=r.WordArray,n=r.Hasher,s=e.x64.Word,c=e.algo,a=[],h=[],f=[];!function(){for(var t=1,e=0,r=0;r<24;r++){a[t+5*e]=(r+1)*(r+2)/2%64;var i=(2*t+3*e)%5;t=e%5,e=i}for(t=0;t<5;t++)for(e=0;e<5;e++)h[t+5*e]=e+(2*t+3*e)%5*5;for(var n=1,o=0;o<24;o++){for(var c=0,l=0,u=0;u<7;u++){if(1&n){var d=(1<<u)-1;d<32?l^=1<<d:c^=1<<d-32}128&n?n=n<<1^113:n<<=1}f[o]=s.create(c,l)}}();var l=[];!function(){for(var t=0;t<25;t++)l[t]=s.create()}();var u=c.SHA3=n.extend({cfg:n.cfg.extend({outputLength:512}),_doReset:function(){for(var t=this._state=[],e=0;e<25;e++)t[e]=new s.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(t,e){for(var r=this._state,i=this.blockSize/2,n=0;n<i;n++){var o=t[e+2*n],s=t[e+2*n+1];o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(z=r[n]).high^=s,z.low^=o}for(var c=0;c<24;c++){for(var u=0;u<5;u++){for(var d=0,p=0,v=0;v<5;v++)d^=(z=r[u+5*v]).high,p^=z.low;var _=l[u];_.high=d,_.low=p}for(u=0;u<5;u++){var y=l[(u+4)%5],g=l[(u+1)%5],B=g.high,w=g.low;for(d=y.high^(B<<1|w>>>31),p=y.low^(w<<1|B>>>31),v=0;v<5;v++)(z=r[u+5*v]).high^=d,z.low^=p}for(var k=1;k<25;k++){var x=(z=r[k]).high,b=z.low,S=a[k];S<32?(d=x<<S|b>>>32-S,p=b<<S|x>>>32-S):(d=b<<S-32|x>>>64-S,p=x<<S-32|b>>>64-S);var m=l[h[k]];m.high=d,m.low=p}var A=l[0],H=r[0];for(A.high=H.high,A.low=H.low,u=0;u<5;u++)for(v=0;v<5;v++){var z=r[k=u+5*v],C=l[k],R=l[(u+1)%5+5*v],E=l[(u+2)%5+5*v];z.high=C.high^~R.high&E.high,z.low=C.low^~R.low&E.low}z=r[0];var D=f[c];z.high^=D.high,z.low^=D.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((n+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,c=this.cfg.outputLength/8,a=c/8,h=[],f=0;f<a;f++){var l=s[f],u=l.high,d=l.low;u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new i.init(h,c)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(u),e.HmacSHA3=n._createHmacHelper(u)}(Math),o.SHA3)}()},89557:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(43240),r(81380),function(){var t=o,e=t.x64,r=e.Word,i=e.WordArray,n=t.algo,s=n.SHA512,c=n.SHA384=s.extend({_doReset:function(){this._hash=new i.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=s._createHelper(c),t.HmacSHA384=s._createHmacHelper(c)}(),o.SHA384)}()},81380:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(43240),function(){var t=o,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,s=t.algo;function c(){return i.create.apply(i,arguments)}var a=[c(1116352408,3609767458),c(1899447441,602891725),c(3049323471,3964484399),c(3921009573,2173295548),c(961987163,4081628472),c(1508970993,3053834265),c(2453635748,2937671579),c(2870763221,3664609560),c(3624381080,2734883394),c(310598401,1164996542),c(607225278,1323610764),c(1426881987,3590304994),c(1925078388,4068182383),c(2162078206,991336113),c(2614888103,633803317),c(3248222580,3479774868),c(3835390401,2666613458),c(4022224774,944711139),c(264347078,2341262773),c(604807628,2007800933),c(770255983,1495990901),c(1249150122,1856431235),c(1555081692,3175218132),c(1996064986,2198950837),c(2554220882,3999719339),c(2821834349,766784016),c(2952996808,2566594879),c(3210313671,3203337956),c(3336571891,1034457026),c(3584528711,2466948901),c(113926993,3758326383),c(338241895,168717936),c(666307205,1188179964),c(773529912,1546045734),c(1294757372,1522805485),c(1396182291,2643833823),c(1695183700,2343527390),c(1986661051,1014477480),c(2177026350,1206759142),c(2456956037,344077627),c(2730485921,1290863460),c(2820302411,3158454273),c(3259730800,3505952657),c(3345764771,106217008),c(3516065817,3606008344),c(3600352804,1432725776),c(4094571909,1467031594),c(275423344,851169720),c(430227734,3100823752),c(506948616,1363258195),c(659060556,3750685593),c(883997877,3785050280),c(958139571,3318307427),c(1322822218,3812723403),c(1537002063,2003034995),c(1747873779,3602036899),c(1955562222,1575990012),c(2024104815,1125592928),c(2227730452,2716904306),c(2361852424,442776044),c(2428436474,593698344),c(2756734187,3733110249),c(3204031479,2999351573),c(3329325298,3815920427),c(3391569614,3928383900),c(3515267271,566280711),c(3940187606,3454069534),c(4118630271,4000239992),c(116418474,1914138554),c(174292421,2731055270),c(289380356,3203993006),c(460393269,320620315),c(685471733,587496836),c(852142971,1086792851),c(1017036298,365543100),c(1126000580,2618297676),c(1288033470,3409855158),c(1501505948,4234509866),c(1607167915,987167468),c(1816402316,1246189591)],h=[];!function(){for(var t=0;t<80;t++)h[t]=c()}();var f=s.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],f=r[5],l=r[6],u=r[7],d=i.high,p=i.low,v=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=c.high,x=c.low,b=f.high,S=f.low,m=l.high,A=l.low,H=u.high,z=u.low,C=d,R=p,E=v,D=_,M=y,P=g,F=B,W=w,I=k,O=x,U=b,K=S,X=m,L=A,T=H,j=z,N=0;N<80;N++){var Z,q,G=h[N];if(N<16)q=G.high=0|t[e+2*N],Z=G.low=0|t[e+2*N+1];else{var V=h[N-15],Y=V.high,J=V.low,Q=(Y>>>1|J<<31)^(Y>>>8|J<<24)^Y>>>7,$=(J>>>1|Y<<31)^(J>>>8|Y<<24)^(J>>>7|Y<<25),tt=h[N-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=h[N-7],st=ot.high,ct=ot.low,at=h[N-16],ht=at.high,ft=at.low;q=(q=(q=Q+st+((Z=$+ct)>>>0<$>>>0?1:0))+it+((Z+=nt)>>>0<nt>>>0?1:0))+ht+((Z+=ft)>>>0<ft>>>0?1:0),G.high=q,G.low=Z}var lt,ut=I&U^~I&X,dt=O&K^~O&L,pt=C&E^C&M^E&M,vt=R&D^R&P^D&P,_t=(C>>>28|R<<4)^(C<<30|R>>>2)^(C<<25|R>>>7),yt=(R>>>28|C<<4)^(R<<30|C>>>2)^(R<<25|C>>>7),gt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),Bt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),wt=a[N],kt=wt.high,xt=wt.low,bt=T+gt+((lt=j+Bt)>>>0<j>>>0?1:0),St=yt+vt;T=X,j=L,X=U,L=K,U=I,K=O,I=F+(bt=(bt=(bt=bt+ut+((lt+=dt)>>>0<dt>>>0?1:0))+kt+((lt+=xt)>>>0<xt>>>0?1:0))+q+((lt+=Z)>>>0<Z>>>0?1:0))+((O=W+lt|0)>>>0<W>>>0?1:0)|0,F=M,W=P,M=E,P=D,E=C,D=R,C=bt+(_t+pt+(St>>>0<yt>>>0?1:0))+((R=lt+St|0)>>>0<lt>>>0?1:0)|0}p=i.low=p+R,i.high=d+C+(p>>>0<R>>>0?1:0),_=n.low=_+D,n.high=v+E+(_>>>0<D>>>0?1:0),g=o.low=g+P,o.high=y+M+(g>>>0<P>>>0?1:0),w=s.low=w+W,s.high=B+F+(w>>>0<W>>>0?1:0),x=c.low=x+O,c.high=k+I+(x>>>0<O>>>0?1:0),S=f.low=S+K,f.high=b+U+(S>>>0<K>>>0?1:0),A=l.low=A+L,l.high=m+X+(A>>>0<L>>>0?1:0),z=u.low=z+j,u.high=H+T+(z>>>0<j>>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(i+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(i+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(f),t.HmacSHA512=e._createHmacHelper(f)}(),o.SHA512)}()},7628:function(t,e,r){!function(e,i,n){var o;t.exports=(o=r(19021),r(80754),r(84636),r(39506),r(57165),function(){var t=o,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,s=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],c=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],a=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],h=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],f=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=s[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],o=0;o<16;o++){var h=n[o]=[],f=a[o];for(r=0;r<24;r++)h[r/6|0]|=e[(c[r]-1+f)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(c[r+24]-1+f)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var l=this._invSubKeys=[];for(r=0;r<16;r++)l[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,a=0;a<8;a++)c|=h[a][((s^n[a])&f[a])>>>0];this._lBlock=s,this._rBlock=o^c}var l=this._lBlock;this._lBlock=this._rBlock,this._rBlock=l,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<<t}function d(t,e){var r=(this._rBlock>>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<<t}t.DES=i._createHelper(l);var p=n.TripleDES=i.extend({_doReset:function(){var t=this._key.words;if(2!==t.length&&4!==t.length&&t.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=l.createEncryptor(r.create(e)),this._des2=l.createEncryptor(r.create(i)),this._des3=l.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(p)}(),o.TripleDES)}()},43240:function(t,e,r){!function(e,i){var n;t.exports=(n=r(19021),function(t){var e=n,r=e.lib,i=r.Base,o=r.WordArray,s=e.x64={};s.Word=i.extend({init:function(t,e){this.high=t,this.low=e}}),s.WordArray=i.extend({init:function(e,r){e=this.words=e||[],this.sigBytes=r!=t?r:8*e.length},toX32:function(){for(var t=this.words,e=t.length,r=[],i=0;i<e;i++){var n=t[i];r.push(n.high),r.push(n.low)}return o.create(r,this.sigBytes)},clone:function(){for(var t=i.clone.call(this),e=t.words=this.words.slice(0),r=e.length,n=0;n<r;n++)e[n]=e[n].clone();return t}})}(),n)}()}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js.LICENSE.txt b/src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js.LICENSE.txt
new file mode 100644
index 000000000..a5bec5cbd
--- /dev/null
+++ b/src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js.LICENSE.txt
@@ -0,0 +1,16 @@
+/** @preserve
+ * Counter block mode compatible with Dr Brian Gladman fileenc.c
+ * derived from CryptoJS.mode.CTR
+ * Jan Hruby jhruby.web@gmail.com
+ */
+
+/** @preserve
+ (c) 2012 by Cédric Mesnil. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
diff --git a/src/web/gui/v2/1418.a399f41ec9789d008612.chunk.js b/src/web/gui/v2/1418.a399f41ec9789d008612.chunk.js
new file mode 100644
index 000000000..c4731776d
--- /dev/null
+++ b/src/web/gui/v2/1418.a399f41ec9789d008612.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="00815a7b-4f96-400b-8eda-4575e64c1079",e._sentryDebugIdIdentifier="sentry-dbid-00815a7b-4f96-400b-8eda-4575e64c1079")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1418],{92155:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(58168),r=n(96540),i=n(50876);const c=e=>(0,r.forwardRef)(((t,n)=>{let{callback:c,feature:o,isStart:l,isSuccess:s,isFailure:d,eventReason:g,payload:m={},...u}=t;const{sendLog:h,isReady:p}=(0,i.A)(),x=(0,r.useCallback)((()=>{const e=u[c],t={feature:o,isStart:l,isSuccess:s,isFailure:d,eventReason:g,...m,...u["data-ga"]?{dataGa:u["data-ga"]}:{},...u.dataGa?{dataGa:u.dataGa}:{},...u["data-track"]?{dataTrack:u["data-track"]}:{},...u.label?{label:u.label}:{}};"function"==typeof e&&e(),h(t,!0)}),[c,h,p,m,u]),k=(0,r.useMemo)((()=>({...u,[c]:x})),[u,c,x]);return r.createElement(e,(0,a.A)({ref:n},k))}));var o=n(67276);const l=e=>(0,r.forwardRef)(((t,n)=>{let{payload:i={},...l}=t;const s=c(e);return r.createElement(s,(0,a.A)({},l,{ref:n,callback:"onClick",payload:{...i,action:o.o1.buttonClicked}}))}))},21828:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(96540),r=n(10058);const i=e=>{let{theme:t}=e;const n="default"==t?"grey185":"grey45";return t="dark"==t?r.DarkTheme:r.DefaultTheme,a.createElement(r.Flex,{height:"1px",width:"100%",background:(0,r.getColor)(["neutral",n])({theme:t})})}},84541:(e,t,n)=>{n.d(t,{A:()=>S});var a=n(58168),r=n(96540),i=n(45463),c=n(10058);const o=(0,n(8711).default)(c.Flex).attrs({flex:{grow:"1",shrink:"0"},width:{max:"100%"}}).withConfig({displayName:"panel__Panel",componentId:"sc-4zlw7c-0"})(["",";",";"],(e=>{let{order:t}=e;return t&&"order: ".concat(t,";")}),(e=>{let{bgGradient:t}=e;return t&&"background: linear-gradient(34.14deg, #536775 -26.52%, #2F3A42 53.66%);\n"}));var l=n(17208);const s=()=>r.createElement(c.Flex,{alignItems:"center",column:!0,padding:[0,0,18,0]},r.createElement(l.oi,null));n(41393),n(81454);const d=[{icon:"rocket",title:"Rapid Deployment, Instant Insights",text:"One-command installation, automatic metric discovery, and intuitive out-of-the-box dashboards for every single metric."},{icon:"qualityOfServiceSolid",title:"Advanced Monitoring, Made Accessible",text:"Experience real-time monitoring with 1-second granularity and anomaly detection across 800+ integrations."},{icon:"firewallSolid",title:"On-Prem Data Storage, Transparent Pricing",text:"Unlimited metrics, Infinite scale, Zero hidden costs. Decentralized architecture ensures maximum data security."}];n(3064),n(98992),n(72577),n(62953);var g=n(18061),m=n(26655);const u=()=>m.A.get("https://us-east1-netdata-analytics-bi.cloudfunctions.net/netdata_public_metrics_website"),h=e=>{let{downScale:t,...n}=e;const c=(0,i.A)("(min-width: 992px)");return(o=c?t[0]:t[1],e=>{let{children:t,...n}=e;return r.createElement(o,(0,a.A)({color:"bright"},n),t)})(n);var o};var p=n(12897),x=n.n(p),k=n(55042),f=n.n(k),b=new(x())({id:"cloudStatistics",use:"cloudStatistics-usage",viewBox:"0 0 194 146",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 194 146" id="cloudStatistics"><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M9.557 142.145h174.886a7.576 7.576 0 0 0 7.607-7.577v-.594H1.95v.594c0 4.16 3.43 7.577 7.607 7.577Z" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M81.749 137.688h30.577c2.088 0 3.729-1.634 3.729-3.714H78.02a3.733 3.733 0 0 0 3.729 3.714ZM15.374 108.493V34.949c0-4.457 3.58-8.023 8.055-8.023H60.12M178.701 44.83v89.143H15.374v-17.086M140.442 27h30.204c4.475 0 8.055 3.566 8.055 8.023v2.526" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.879 32.2h38.408c.671 0 1.193.52 1.193 1.189v94.939c0 .668-.522 1.188-1.193 1.188H67.131M20.595 44.086V33.39c0-.669.522-1.189 1.193-1.189h33.187M55.274 129.516H21.863c-.671 0-1.194-.52-1.194-1.188V49.881M78.766 106.487h-7.83c-5.967 0-10.815-4.828-10.815-10.771v-69.83c0-5.943 4.848-10.771 10.814-10.771h19.018M90.698 106.487H86.82" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.208 67.71V95.64c0 5.943-4.848 10.772-10.814 10.772H93.681M107.851 15.115h14.543c5.966 0 10.814 4.828 10.814 10.771V59.39M101.064 1H92.19a2.319 2.319 0 0 0-2.312 2.303v22.955a2.319 2.319 0 0 0 2.312 2.302h8.874a2.319 2.319 0 0 0 2.312-2.302V3.227c0-1.262-1.044-2.228-2.312-2.228Z" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 24.029a2.977 2.977 0 0 0 2.983-2.972 2.977 2.977 0 0 0-2.983-2.971 2.977 2.977 0 0 0-2.983 2.971 2.977 2.977 0 0 0 2.983 2.972ZM107.851 70.607c-2.834 2.897-6.786 4.68-11.186 4.68-8.652 0-15.662-6.983-15.662-15.6 0-8.618 7.01-15.6 15.662-15.6 8.651 0 15.661 6.982 15.661 15.6 0 2.748-.746 5.348-2.014 7.577" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 64.144c3.296 0 5.967-2.66 5.967-5.943 0-3.282-2.671-5.943-5.967-5.943-3.295 0-5.966 2.66-5.966 5.943 0 3.282 2.671 5.943 5.966 5.943ZM111.207 85.687h3.356M78.766 85.687h28.34M97.037 90.144h10.068M86.224 90.144h7.756M99.424 64.144h-5.519c-2.983 0-5.444 2.451-5.444 5.423v3.491M104.868 73.058v-3.565c0-1.635-.671-3.046-1.79-4.012" /><path fill="#151818" d="M42.808 75.03c-19.315 0-34.915 15.6-34.915 34.914 0 19.315 15.6 34.915 34.915 34.915 19.314 0 34.915-15.6 34.915-34.915 0-19.314-15.6-34.914-34.915-34.914m3.714 52.743H34.636L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828a17.786 17.786 0 0 1-17.829 17.829" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M45.557 127.773h-10.92l-9.658-35.657h21.543c9.88 0 17.829 7.948 17.829 17.828 0 6.463-3.417 12.109-8.617 15.229" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M67.768 85.504c6.166 6.314 9.954 14.932 9.954 24.44 0 19.315-15.6 34.915-34.914 34.915-19.315 0-34.915-15.6-34.915-34.915 0-19.314 15.6-34.914 34.915-34.914 6.091 0 11.886 1.56 16.863 4.308" /></symbol>'});f().add(b);const w=b,E=e=>r.createElement(c.Flex,(0,a.A)({as:"svg",height:w.height,width:w.width,viewBox:w.viewBox},e),r.createElement("use",{xlinkHref:"#".concat(w.id)})),v=()=>{const[e]=(0,g.A)((()=>({fetch:u})),[]),{nodesOnline:t,githubStars:n,dockerHubPulls:a}=(0,r.useMemo)((()=>{var t,n;return Array.isArray(e)?{nodesOnline:"1,265,463",githubStars:null===(t=e.find((e=>{let{key:t}=e;return"GitHub Stars"===t})))||void 0===t?void 0:t.value,dockerHubPulls:null===(n=e.find((e=>{let{key:t}=e;return"DockerHub Pulls"===t})))||void 0===n?void 0:n.value}:{}}),[e]);return r.createElement(c.Flex,{column:!0,gap:6},r.createElement(E,{height:"160px",padding:[0,0,4,0]}),r.createElement(c.Flex,{column:!0,gap:3},r.createElement(h,{downScale:[c.TextBigger,c.TextBigger],color:"bright",textAlign:"center"},r.createElement(h,{downScale:[c.TextBigger,c.TextBigger],color:t?"primaryHighlight":"bright",textAlign:"center",strong:!0},t||"..."),r.createElement(c.Box,{as:"span",margin:[0,0,0,3]},"Nodes Online")),r.createElement(h,{downScale:[c.TextBigger,c.TextBigger],color:"bright",textAlign:"center"},r.createElement(h,{downScale:[c.TextBigger,c.TextBigger],color:n?"primaryHighlight":"bright",textAlign:"center",strong:!0},n||"..."),r.createElement(c.Box,{as:"span",margin:[0,0,0,3]},"GitHub Stars")),r.createElement(h,{downScale:[c.TextBigger,c.TextBigger],color:"bright",textAlign:"center"},r.createElement(h,{downScale:[c.TextBigger,c.TextBigger],color:a?"primaryHighlight":"bright",textAlign:"center",strong:!0},a||"..."),r.createElement(c.Box,{as:"span",margin:[0,0,0,3]},"DockerHub Pulls"))))},y=e=>{let{icon:t,title:n,text:a}=e;const o=(0,i.A)("(min-width: 475px)");return r.createElement(c.Flex,{gap:4,alignItems:"start"},o&&r.createElement(c.Flex,{background:"transparent",justifyContent:"center",alignItems:"center",height:"64px",width:"64px",round:64,flex:"grow",border:{side:"all",color:"successLite"}},r.createElement(c.Icon,{name:t,height:"20px",widht:"20px",color:"successLite"})),r.createElement(c.Flex,{column:!0,justifyContent:"start",alignItems:"start",gap:2},r.createElement(c.TextBig,{color:"bright",strong:!0},n),r.createElement(c.Text,{color:"selected"},a)))};var A=n(21828);const M=()=>r.createElement(c.Flex,{column:!0,padding:[16,4,12],width:{max:"500px"},margin:[0,"auto"],gap:14},r.createElement(v,null),r.createElement(c.Flex,{column:!0,gap:8},d.map(((e,t)=>r.createElement(y,(0,a.A)({key:t},e))))),r.createElement(c.Flex,{column:!0,gap:6,alignItems:"center"},r.createElement(A.A,null),r.createElement(c.Flex,{column:!0,gap:4,alignItems:"center"},r.createElement(l.go,{theme:"dark"}),r.createElement(c.TextSmall,{textAlign:"center",color:"bright"},"Netdata is a member of the Cloud Native Computing Foundation (CNCF), and is one of the most starred projects in the CNCF landscape.")))),S=e=>{let{children:t,...n}=e;const l=(0,i.A)("(min-width: 998px)");return r.createElement(c.Flex,(0,a.A)({height:{min:"100vh"},flexWrap:!0},n),!window.envSettings.onprem&&r.createElement(o,{background:(0,c.getColor)(["neutral","grey25"])({theme:c.DarkTheme}),order:l?0:1},r.createElement(M,null)),r.createElement(o,{background:"mainBackground",order:l?1:0},r.createElement(c.Flex,{background:"transparent",column:!0,gap:8,padding:[12,4],width:{max:"500px"},margin:[0,"auto"]},r.createElement(s,null),t)))}},11418:(e,t,n)=>{n.r(t),n.d(t,{MagicLinkSent:()=>p,default:()=>x});var a=n(96540),r=n(8711),i=n(47767),c=n(10058),o=n(55337),l=n(84541),s=n(17182),d=n(11604),g=n(92155),m=n(63314);const u=(0,r.default)(c.Text).attrs({role:"button"}).withConfig({displayName:"magicLinkSent__ButtonText",componentId:"sc-ua6kmo-0"})(["cursor:pointer;"]),h=(0,g.A)(u),p=()=>{const{search:e,state:t={}}=(0,i.zy)(),{email:n}=t||{},r=window.location.hash,o=(0,d.Js)(),g=(0,a.useCallback)((()=>{const t=encodeURIComponent((0,s.V)("/sign-in".concat(e),r)),a=encodeURIComponent((0,s.V)("/sign-up/verify".concat(e),r));o({email:n,redirectURI:t,registerURI:a,resend:!0})}),[n]);return a.createElement(m.Ay,{feature:"MagicLinkSent",email:n},a.createElement(l.A,{"data-testid":"magicLinkSent"},a.createElement(c.H1,{textAlign:"center"},"Check your email!"),a.createElement(c.Flex,{column:!0,padding:[0,0,8,0],gap:8,justifyContent:"between",alignItems:"center"},a.createElement(c.Flex,{column:!0,gap:1,alignItems:"center"},a.createElement(c.TextBig,{textAlign:"center"},"We have sent an email to ",a.createElement(c.TextBig,{strong:!0},!!n&&n),"."),a.createElement(c.TextBig,{textAlign:"center"},"Please find this email (check your spam folder too) and click the button there to continue.")),a.createElement(c.Text,{textAlign:"center"},"Didn't receive it?"," ",a.createElement(h,{onClick:g,color:"primary","data-ga":"magicLikSent::click-resent::check-email-view"},"Click here to resend it.")))))},x=(0,o.g)(p,"light")},17182:(e,t,n)=>{n.d(t,{R:()=>i,V:()=>r});var a=n(38819);const r=(e,t)=>{const n=(0,a.yq)(["expires_at",t]),r=t.includes("join-callback")?decodeURIComponent(n):n;return"".concat(window.location.origin).concat(e,"#").concat(r)},i=(e,t)=>{const{search:n,hash:a}=window.location,i=encodeURIComponent(r("/sign-in".concat(n).concat(n.length?"&":"?","oauth=").concat(e,"&"),a)),c=encodeURIComponent(r("/sign-up/verify".concat(n).concat(n.length?"&":"?","oauth=").concat(e,"&"),a));return"/api/v2/auth/account/".concat(e,"?redirect_uri=").concat(i,"&register_uri=").concat(c).concat(t?"&is_unverified_registration=true":"")}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/1726.e4f235562d58cb4f4044.chunk.js b/src/web/gui/v2/1726.e4f235562d58cb4f4044.chunk.js
new file mode 100644
index 000000000..c4315d555
--- /dev/null
+++ b/src/web/gui/v2/1726.e4f235562d58cb4f4044.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9725a3ac-9bac-4ce9-8832-e3d608a0ea0e",e._sentryDebugIdIdentifier="sentry-dbid-9725a3ac-9bac-4ce9-8832-e3d608a0ea0e")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1726],{2381:(e,t,n)=>{n.d(t,{A:()=>d});var l=n(96540),a=n(10058);const o=(0,n(47130).A)(a.Flex),d=()=>l.createElement(o,{border:{side:"all",color:"text"},round:!0,padding:[1,2],tooltip:"This is a beta version of dynamic configurations feature and is still undergoing final testing before it's official release.",tooltipProps:{align:"bottom"}},l.createElement(a.TextSmall,{strong:!0},"Beta"))},11726:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(62953);var l=n(96540),a=n(39225),o=n(10058),d=n(29217),r=n(8239),i=n(94944),c=n(28738),s=n(2381);const u=(0,a.A)((()=>Promise.all([n.e(1220),n.e(749),n.e(9510),n.e(6218)]).then(n.bind(n,39510))),"Configuration"),f=()=>{const{play:e,pause:t}=(0,i.A)(),[n,a]=(0,r.OD)(),{node:f}=n||{},{openItems:b}=(0,r.IP)();(0,l.useEffect)((()=>{n?t():e()}),[n]);const g=(0,l.useCallback)((()=>{a(null)}),[a]),m=(0,l.useCallback)((()=>{b.length||g()}),[b,g]);return n?l.createElement(o.Modal,{backdropProps:{backdropBlur:!0},onEsc:m},l.createElement(o.ModalContent,{width:"90vw",height:"90vh"},l.createElement(o.ModalHeader,{justifyContent:"between",padding:[4],round:!0},l.createElement(o.Flex,{gap:3,alignItems:"center"},l.createElement(s.A,null),l.createElement(o.H4,null,f.name)),l.createElement(d.A,{align:"bottom",content:"Close window",zIndex:7050},l.createElement(o.Flex,null,l.createElement(o.ModalCloseButton,{onClose:g,testId:"assistant-modal-close-button"})))),l.createElement(o.ModalBody,{height:"calc(100% - 55px)",overflow:{vertical:"auto"}},l.createElement(l.Suspense,{fallback:l.createElement(c.A,{title:"Loading configuration..."})},l.createElement(u,{node:f,inModal:!0}))))):null}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/1782.31d84c467a8446cb3c47.chunk.js b/src/web/gui/v2/1782.31d84c467a8446cb3c47.chunk.js
new file mode 100644
index 000000000..065ca7352
--- /dev/null
+++ b/src/web/gui/v2/1782.31d84c467a8446cb3c47.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0a84b489-5052-4d8f-9318-71985805d91a",e._sentryDebugIdIdentifier="sentry-dbid-0a84b489-5052-4d8f-9318-71985805d91a")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1782],{1782:(e,n,t)=>{t.r(n),t.d(n,{default:()=>b});var a=t(96540),o=t(5396),d=t(65566),l=t(10058),r=t(4659),s=t(50876);const c=()=>{const{sendButtonClickedLog:e}=(0,s.A)(),n=(0,a.useCallback)((()=>{window.open("https://www.netdata.cloud/secure-foss-agent/","_blank","noopener,noreferrer"),e({feature:"AgentBannerContactUs"})}),[e]);return a.createElement(l.Flex,{width:"100%",justifyContent:"center",alignItems:"center"},a.createElement(l.Text,null,"Your Agents are open by default. Secure them easily with"," ",a.createElement(r.A,{onClick:n,testId:"agent-banner-contact-link"},"Netdata Enterprise Agent"),"."))};var i=t(75542),u=t(63314),f=t(37618);const b=()=>{const{id:e}=(0,i.A)(),n=(0,a.useCallback)((()=>"dismissed-agent-banner-".concat(e)),[e]),{dismissed:t,onClose:l}=(0,d.A)({getLocalStorageKey:n,logKey:"AgentBannerDismiss"});return f.Ay&&!t?a.createElement(u.Ay,{feature:"AgentBanner"},a.createElement(o.A,{testId:"agent-banner",width:"100%",background:"successSemi",onClose:l,tooltipProps:{align:"top"},zIndex:20},a.createElement(c,null))):null}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/1839.1dcd23c81c97fb79bfdb.chunk.js b/src/web/gui/v2/1839.1dcd23c81c97fb79bfdb.chunk.js
new file mode 100644
index 000000000..fc38d427d
--- /dev/null
+++ b/src/web/gui/v2/1839.1dcd23c81c97fb79bfdb.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b02317bf-a557-4463-8ab1-6c413770a07e",e._sentryDebugIdIdentifier="sentry-dbid-b02317bf-a557-4463-8ab1-6c413770a07e")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1839],{41839:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var l=n(96540),a=n(10058),o=n(99904),r=n(47731),d=n(92155),i=n(63314);const s=(0,n(8711).default)(a.ModalContent).attrs((e=>{let{isMobile:t}=e;return{width:t?{base:"95vw"}:{}}})).withConfig({displayName:"styled__StyledModalContent",componentId:"sc-1vfmaif-0"})([""]),u=(0,d.A)(a.Button),c=()=>{const e=(0,r.J)(),{isModalVisible:t,trialEndsAt:n,onClose:d}=(0,o.A)();return t?l.createElement(a.Modal,{backdropProps:{backdropBlur:!0}},l.createElement(i.Ay,{feature:"BumpedWarningModal"},l.createElement(s,{isMobile:e},l.createElement(a.ModalHeader,null,l.createElement(a.Flex,{gap:2,alignItems:"center"},l.createElement(a.Icon,{name:"netdataPress",color:"text"}),l.createElement(a.H4,null,"Welcome to Netdata!"))),l.createElement(a.ModalBody,null,l.createElement(a.Flex,{column:!0,gap:4,width:{max:120},padding:[0,0,4,0]},l.createElement(a.TextBigger,null,"Welcome to your Business trial!"),l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.TextBigger,{lineHeight:1.5},"We are happy to inform you that we upgraded your account to Netdata Business, for free, until ",l.createElement(a.TextBigger,{strong:!0},n),"."),l.createElement(a.TextBigger,{lineHeight:1.5},"Explore all the Business features and keep enjoying the best of Netdata!")))),l.createElement(a.ModalFooter,null,l.createElement(a.Flex,{gap:4,justifyContent:"end",padding:[1,2]},l.createElement(u,{feature:"BumpedWarningModalClose",label:"OK",textTransform:"uppercase",flavour:"hollow",icon:"thumb_up",onClick:d})))))):null}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/185.7461f65d16b20fe83fc1.chunk.js b/src/web/gui/v2/185.7461f65d16b20fe83fc1.chunk.js
new file mode 100644
index 000000000..4f003cc70
--- /dev/null
+++ b/src/web/gui/v2/185.7461f65d16b20fe83fc1.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a5509cd0-6b41-4af9-84cf-a4fd7fc5d4bc",e._sentryDebugIdIdentifier="sentry-dbid-a5509cd0-6b41-4af9-84cf-a4fd7fc5d4bc")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[185],{2381:(e,n,t)=>{t.d(n,{A:()=>d});var l=t(96540),a=t(10058);const o=(0,t(47130).A)(a.Flex),d=()=>l.createElement(o,{border:{side:"all",color:"text"},round:!0,padding:[1,2],tooltip:"This is a beta version of dynamic configurations feature and is still undergoing final testing before it's official release.",tooltipProps:{align:"bottom"}},l.createElement(a.TextSmall,{strong:!0},"Beta"))},70185:(e,n,t)=>{t.r(n),t.d(n,{default:()=>i});var l=t(96540),a=t(10058),o=t(39510),d=t(2381),f=t(63314);const i=()=>l.createElement(f.Ay,{feature:"SettingsConfigurations"},l.createElement(a.Flex,{height:"100%",column:!0,gap:4},l.createElement(a.Flex,{gap:3,alignItems:"center"},l.createElement(d.A,null),l.createElement(a.H3,null,"Configurations")),l.createElement(o.default,null)))}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/1875.e736e046980cb8eb4cda.chunk.js b/src/web/gui/v2/1875.e736e046980cb8eb4cda.chunk.js
new file mode 100644
index 000000000..545547555
--- /dev/null
+++ b/src/web/gui/v2/1875.e736e046980cb8eb4cda.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e4e97f1f-cb0a-42e2-b102-dd2850088e88",e._sentryDebugIdIdentifier="sentry-dbid-e4e97f1f-cb0a-42e2-b102-dd2850088e88")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1875],{83863:(e,t,n)=>{n.d(t,{Bo:()=>b,Hv:()=>o,Lf:()=>g,Lm:()=>O,NK:()=>D,OK:()=>_,Pm:()=>A,R8:()=>f,Ro:()=>y,WB:()=>c,Ws:()=>N,XG:()=>j,ZE:()=>v,j8:()=>r,jV:()=>l,uZ:()=>h});n(62953);const i={threshold:{label:"Threshold",value:"threshold"},variance:{label:"Variance",value:"variance"},anomalies:{label:"Anomalies",value:"anomalies"}},o=Object.values(i),a=i.threshold.value,l={thresholds:{above:{label:"above",value:"above",symbol:">"},below:{label:"below",value:"below",symbol:"<"}}},r=Object.values(l.thresholds),s=l.thresholds.above,u={seconds:{label:"seconds",value:"seconds",symbol:"s"},minutes:{label:"minutes",value:"minutes",symbol:"m"},hours:{label:"hours",value:"hours",symbol:"h"},days:{label:"days",value:"days",symbol:"d"}},c=Object.values(u),d={"5_min":{label:"5 mins",value:"5_min",after:"-5m"},"10_min":{label:"10 mins",value:"10_min",after:"-10m"},"15_min":{label:"15 mins",value:"15_min",after:"-15m"},"30_min":{label:"30 mins",value:"30_min",after:"-30m"},"1_hour":{label:"1 hour",value:"1_hour",after:"-1h"},"2_hours":{label:"2 hours",value:"2_hours",after:"-2h"},"6_hours":{label:"6 hours",value:"6_hours",after:"-6h"},"12_hours":{label:"12 hours",value:"12_hours",after:"-12h"},"1_day":{label:"1 day",value:"1_day",after:"-1d"},"2_days":{label:"2 days",value:"2_days",after:"-2d"},"7_days":{label:"7 days",value:"7_days",after:"-7d"}},v=Object.values(d),m=d["5_min"],p={linux:{label:"Linux",value:"linux"},freeBSD:{label:"FreeBSD",value:"freeBSD"},windows:{label:"Windows",value:"windows"}},g={label:"".concat(Object.keys(p).length," OS"),value:""},f=[g,...Object.values(p)],h={avg:{label:"AVG()",value:"average"},sum:{label:"SUM()",value:"sum"},min:{label:"MIN()",value:"min"},max:{label:"MAX()",value:"max"},stddev:{label:"STDDEV()",value:"stddev"},cv:{label:"CV()",value:"cv"}},b=Object.values(h),y=h.stddev,D=h.avg,C={sum:{label:"SUM",value:"of"},each:{label:"EACH",value:"foreach"}},O=Object.values(C),w=C.sum,A={unaligned:{label:"unaligned",value:"unaligned"},percentage:{label:"percentage",value:"percentage"},absolute:{label:"absolute",value:"absolute"},min2max:{label:"min2max",value:"min2max"}},N=Object.values(A),_={label:"&this",value:"$this"},j={alertId:null,detection:{method:a},metrics:{on:"",hosts:{items:[],expression:""},os:[],charts:{items:[],expression:""},chartLabels:{items:[],expression:""},lookup:{aggregation:D,denoter:w,dimensions:[],timePeriod:m,options:[]},calc:{active:!1,value:""},units:""},alertingConditions:{denoter:s,critical:{isFormula:!1,denoter:s,value:85,recovery:null},warning:{isFormula:!1,denoter:s,value:75,recovery:null},interval:{value:60,unit:u.seconds},delayNotification:{active:!1,up:{value:0,unit:u.seconds},down:{value:0,unit:u.seconds},multiplier:1,max:{value:0,unit:u.hours}},agentOptions:{active:!1,off:!0,warningAlertsDuration:{value:15,unit:u.minutes},criticalAlertsDuration:{value:5,unit:u.minutes},sendTo:{value:"",clearNotifications:!0},execScript:{active:!1,path:""}}},description:{summary:"",templateName:"",templateDescription:""}}},21875:(e,t,n)=>{n.d(t,{v7:()=>c,vX:()=>u,$h:()=>v,op:()=>h,I8:()=>b,aR:()=>p,BO:()=>f,Vj:()=>m});n(17333),n(98992),n(54520),n(62953);var i=n(96540),o=n(47444),a=n(83863);const l=(0,o.eU)({key:"alertConfiguration",default:a.XG}),r=(0,o.eU)({key:"alertConfigurationChart",default:null});var s=n(59303);const u=()=>(0,o.vc)(r),c=()=>(0,o.L4)(r),d=(0,o.gD)({key:"alertConfigurationSelector",get:e=>{let{get:t}=e;return t(l)},set:(e,t)=>{let{set:n}=e;n(l,(e=>({...e,...t})))}}),v=()=>(0,o.L4)(d),m=()=>(0,o.E0)(l),p=()=>{const[e,t]=v(),{detection:{method:n},metrics:i}=e;return{detectionMethod:n,setDetectionMethod:e=>t({detection:{method:e},metrics:{...i,lookup:{...i.lookup,aggregation:"variance"==e?a.Ro:a.NK}}})}},g=e=>{let{scope:t,setConfiguration:n,metrics:i,isComposite:o}=e;return e=>{const a=null!==e&&void 0!==e&&e.length?e.filter((e=>{let{value:t}=e;return t})):e;n({metrics:{...i,[t]:o||Array.isArray(a)?a:a.value?[a]:[]}})}},f=()=>{const[e,t]=v(),{metrics:n}=e,i=g({scope:"hosts",setConfiguration:t,metrics:n,isComposite:!0}),o=g({scope:"charts",setConfiguration:t,metrics:n,isComposite:!0}),a=g({scope:"chartLabels",setConfiguration:t,metrics:n,isComposite:!0}),l=g({scope:"os",setConfiguration:t,metrics:n});return{metrics:n,setLookup:e=>{let{aggregation:i,denoter:o,dimensions:a,timePeriod:l,options:r}=e;t({metrics:{...n,lookup:{...n.lookup,...i?{aggregation:i}:{},...o?{denoter:o}:{},...a?{dimensions:a}:{},...l?{timePeriod:l}:{},...r?{options:r}:{}}}})},setOn:e=>t({metrics:{...n,on:e}}),setHosts:i,setCharts:o,setChartLabels:a,setOs:l,setCalcActive:e=>t({metrics:{...n,calc:{...n.calc,active:e,...e?{}:{value:""}}}}),setCalcValue:e=>t({metrics:{...n,calc:{...n.calc,value:e}}}),setUnitsValue:e=>t({metrics:{...n,units:e}})}},h=()=>{const[e,t]=v(),{alertId:n,alertingConditions:i}=e,o=!!n,a=e=>n=>t({alertingConditions:{...i,interval:{...i.interval,[e]:n}}}),l=a("value"),r=a("unit"),s=e=>n=>t({alertingConditions:{...i,[e]:{...i[e],active:n}}}),u=s("delayNotification"),c=e=>n=>o=>a=>t({alertingConditions:{...i,[e]:{...i[e],[n]:{...i[e][n],[o]:a}}}}),d=c("delayNotification"),m=d("up"),p=m("value"),g=m("unit"),f=d("down"),h=f("value"),b=f("unit"),y=d("max"),D=y("value"),C=y("unit"),O=s("agentOptions"),w=c("agentOptions"),A=w("warningAlertsDuration"),N=A("value"),_=A("unit"),j=w("criticalAlertsDuration"),x=j("value"),k=j("unit"),I=e=>n=>t({alertingConditions:{...i,agentOptions:{...i.agentOptions,sendTo:{...i.agentOptions.sendTo,[e]:n}}}}),S=I("value"),T=I("clearNotifications"),V=e=>n=>t({alertingConditions:{...i,agentOptions:{...i.agentOptions,execScript:{...i.agentOptions.execScript,[e]:n}}}}),U=V("active"),E=V("path");return{isEdit:o,alertingConditions:i,setMainDenoter:e=>t({alertingConditions:{...i,denoter:e,critical:{...i.critical,denoter:e},warning:{...i.warning,denoter:e}}}),setIntervalValue:l,setIntervalUnit:r,setThreshold:(e,n)=>o=>t({alertingConditions:{...i,[e]:{...i[e],[n]:o}}}),setRecoveryThreshold:(e,n)=>o=>t({alertingConditions:{...i,[e]:{...i[e],recovery:{...i[e].recovery,[n]:o}}}}),setDelayNotificationActive:u,setDelayNotificationUpValue:p,setDelayNotificationUpUnit:g,setDelayNotificationDownValue:h,setDelayNotificationDownUnit:b,setDelayNotificationMaxDelayValue:D,setDelayNotificationMaxDelayUnit:C,setDelayNotificationMultiplier:e=>t({alertingConditions:{...i,delayNotification:{...i.delayNotification,multiplier:e}}}),setAgentOptionsActive:O,setAgentOptionsRepeatNotification:e=>t({alertingConditions:{...i,agentOptions:{...i.agentOptions,off:e}}}),setAgentOptionsWarningAlertsDurationValue:N,setAgentOptionsWarningAlertsDurationUnit:_,setAgentOptionsCriticalAlertsDurationValue:x,setAgentOptionsCriticalAlertsDurationUnit:k,setAgentOptionsSendToValue:S,setAgentOptionsSendToClearNotifications:T,setAgentOptionsExecScriptActive:U,setAgentOptionsExecScriptPath:E}},b=()=>{const[e,t]=v(),{metrics:{on:n},description:{templateName:o,templateDescription:a,summary:l}}=e;return(0,i.useEffect)((()=>{if(n){const{template:i,info:l}=(0,s.q7)({on:n,templateName:o,templateDescription:a});t({description:{...e.description,templateName:i,templateDescription:l}})}}),[n]),{templateName:o,templateDescription:a,summary:l,setTemplateName:n=>t({description:{...e.description,templateName:n}}),setTemplateDescription:n=>t({description:{...e.description,templateDescription:n}}),setSummary:n=>t({description:{...e.description,summary:n}})}}},59303:(e,t,n)=>{n.d(t,{L7:()=>r,m8:()=>a,pU:()=>l,q7:()=>y,sS:()=>A,we:()=>N});n(17333),n(3064),n(41393),n(14905),n(98992),n(54520),n(72577),n(81454),n(8872),n(62953);var i=n(83863),o=n(33829);const a=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return n=>{let{target:{checked:i}}=n;return e(t?!i:i)}},l=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return n=>e(t?!n:n)},r=e=>t=>{let{target:{value:n}}=t;return e(n)},s=function(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{alertId:o,alertingConditions:a={}}=n,{critical:l,warning:r}=a;return!!o?{...null!==l&&void 0!==l&&l.value?{crit:l.value}:{},...null!==r&&void 0!==r&&r.value?{warn:r.value}:{}}:l&&r&&null!==(e=l.denoter)&&void 0!==e&&e.value&&void 0!==l.value&&null!==(t=r.denoter)&&void 0!==t&&t.value&&void 0!==r.value?{crit:c({flavour:"critical",formula:i.OK.value,isFormula:l.isFormula,denoter:l.denoter,value:l.value,recovery:l.recovery}),warn:c({flavour:"warning",formula:i.OK.value,isFormula:r.isFormula,denoter:r.denoter,value:r.value,recovery:r.recovery})}:{}},u={critical:"$status == $CRITICAL",warning:"$status >= $WARNING"},c=e=>{let{flavour:t,formula:n=i.OK.value,isFormula:o,denoter:a,value:l,recovery:r}=e;const s=u[t];return o?l:null!==r&&void 0!==r&&r.value&&s?"$this ".concat(null===a||void 0===a?void 0:a.symbol," ((").concat(s,") ? (").concat(r.value,")) : (").concat(l,")"):"".concat(n," ").concat(null===a||void 0===a?void 0:a.symbol," (").concat(l,")")},d=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{value:t,unit:n}=e;return"".concat(t).concat(null===n||void 0===n?void 0:n.symbol)},v=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value";return function(){let t=arguments.length>1?arguments[1]:void 0;const n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((t=>t[e]));return t?n:n.join(" ")}},m=v(),p=v("label"),g=function(){let{aggregation:e,denoter:t,dimensions:n=[],timePeriod:i,options:o=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;const l=o.map((e=>{let{value:t}=e;return t})).join(" "),r=n.map((e=>{let{value:t}=e;return t})).filter(Boolean),s=r.length?"".concat((null===t||void 0===t?void 0:t.value)||"of"," ").concat(r.join(",")):"foreach"==(null===t||void 0===t?void 0:t.value)?"foreach *":null,u="anomalies"==a?"anomaly-rate":"";return{lookup:[null===e||void 0===e?void 0:e.value,null===i||void 0===i?void 0:i.after,l,s,u].filter(Boolean).join(" ")}},f=function(){let{active:e,up:t,down:n,multiplier:i,max:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e||0==parseInt(null===t||void 0===t?void 0:t.value,10)&&0==parseInt(null===n||void 0===n?void 0:n.value,10))return{};const a=[...parseInt(null===t||void 0===t?void 0:t.value,10)>0?["up ".concat(d(t))]:[],...parseInt(null===n||void 0===n?void 0:n.value,10)>0?["down ".concat(d(n))]:[],...parseFloat(i)>0?["multiplier ".concat(i)]:[],...parseInt(null===o||void 0===o?void 0:o.value,10)>0?["max ".concat(d(o))]:[]];return a.length?{delay:a.join(" ")}:{}},h=function(){let{off:e,warningAlertsDuration:t,criticalAlertsDuration:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const i=[...e?["off"]:[],...!e&&null!==t&&void 0!==t&&t.value?["warning ".concat(d(t))]:[],...!e&&null!==n&&void 0!==n&&n.value?["critical ".concat(d(n))]:[]];return i.length?{repeat:i.join(" ")}:{}},b=function(){let{active:e,sendTo:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{value:n,clearNotifications:i}=t||{};return{...n?{to:n}:{},...e&&!i?{options:"no-clear-notification"}:{}}},y=e=>{let{templateName:t,templateDescription:n,on:i}=e;const a=(0,o.A)(),l=i?"".concat(i.split(".").join("_"),"_").concat(a):a;return{template:t||l,info:n||"Alert description"}},D=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return function(){var n;let{items:i=[],expression:o=""}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=null===(n=[t(i),o].join(" "))||void 0===n?void 0:n.trim();return a?{[e]:a}:{}}},C=D("hosts"),O=D("charts",(function(){return p(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],!0).reduce(((e,t)=>{var n;const i=(null===(n=/\.(.*?)@/.exec(t))||void 0===n?void 0:n[1])||t;return e.includes(i)||e.push(i),e}),[]).join(" ")})),w=D("chart labels",(e=>m(e,!0).map((e=>e.split(":").join("="))).join(" "))),A=function(){const e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{detection:t,metrics:n={},description:i={},alertingConditions:o={}}=e,{on:a,hosts:l,os:r,charts:u,chartLabels:c,lookup:v,calc:p,units:y}=n,{templateName:D,templateDescription:A,summary:N}=i,{agentOptions:_={},interval:j={},delayNotification:x={}}=o,{execScript:k={},sendTo:I={}}=_;return{...D?{template:D}:{},...a?{on:a}:{},...C(l),...null!==r&&void 0!==r&&r.length?{os:m(r)}:{},...O(u),...w(c),...g(v,null===t||void 0===t?void 0:t.method),...null!==p&&void 0!==p&&p.value?{calc:p.value}:{},...y&&null!==p&&void 0!==p&&p.value?{units:y}:{},...j.value?{every:d(j)}:{},...s(e),..._.active&&k.active&&k.path?{exec:k.path}:{},...A?{info:A}:{},...N?{summary:N}:{},...f(x),..._.active?h(_):{},...b(_)}}(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{});return Object.entries(e).reduce(((e,t)=>{let[n,i]=t;return[...e,"".concat(n,": ").concat(i)]}),[]).join("\n")},N=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:t,context:n="",calculation:o="",displayName:a="",configInfo:l="",critical:r="",warning:s="",lookupMethod:u="",lookupOptions:c=[],lookupAfter:d,lookupBefore:v,lookupDimensions:m="",summary:p}=e;return{...i.XG,...t?{alertId:t}:{},metrics:{...i.XG.metrics,on:n,lookup:{...i.XG.metrics.lookup,aggregation:Object.values(i.uZ).find((e=>{let{value:t}=e;return t==u})),dimensions:m.split(" ").map((e=>({label:e,value:e}))),options:Object.values(i.Pm).filter((e=>{let{value:t}=e;return c.includes(t)}))}},alertingConditions:{...i.XG.alertingConditions,critical:{value:r},warning:{value:s}},description:{summary:p,templateName:a,templateDescription:l}}}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/1876.ba66fdbcfb1b55334646.chunk.js b/src/web/gui/v2/1876.ba66fdbcfb1b55334646.chunk.js
new file mode 100644
index 000000000..a844ce49e
--- /dev/null
+++ b/src/web/gui/v2/1876.ba66fdbcfb1b55334646.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b5549cbe-c8fe-4b61-af9a-bff8ff373fce",e._sentryDebugIdIdentifier="sentry-dbid-b5549cbe-c8fe-4b61-af9a-bff8ff373fce")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[1876],{41876:(e,n,f)=>{f.r(n),f.d(n,{default:()=>u});f(9391);var l=f(96540),d=f(11604),t=f(28738),o=f(50876);const u=()=>{const{sendLog:e,isReady:n}=(0,o.A)(),f=(0,d.So)(),u=(0,l.useCallback)((()=>{e({feature:"SignUpThankYou"}).finally((()=>{f()}))}),[f,n]);return(0,l.useEffect)((()=>{let e=!0,f=null;return n?u():f=setTimeout((()=>{e&&u()}),1e3),()=>{e=!1,f&&(clearTimeout(f),f=null)}}),[n]),l.createElement(t.A,null)}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/195.3898e2d9ea61ff1d4a4f.chunk.js b/src/web/gui/v2/195.3898e2d9ea61ff1d4a4f.chunk.js
new file mode 100644
index 000000000..c9c5aea06
--- /dev/null
+++ b/src/web/gui/v2/195.3898e2d9ea61ff1d4a4f.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fe3cdd31-a443-476b-838c-488f9ae9f7a9",e._sentryDebugIdIdentifier="sentry-dbid-fe3cdd31-a443-476b-838c-488f9ae9f7a9")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[195],{52919:(e,t,a)=>{a.d(t,{D7:()=>r,Jp:()=>d,NT:()=>u,N_:()=>h,iS:()=>i,vE:()=>c,v_:()=>o,xI:()=>s,z6:()=>m});var l=a(8711),n=a(10058);const o=l.default.img.withConfig({displayName:"styled__Illustration",componentId:"sc-1yhntgl-0"})(["margin:0 auto;"]),r=(0,l.default)(n.Text).withConfig({displayName:"styled__StyledText",componentId:"sc-1yhntgl-1"})(["display:block;"]),d=l.default.div.withConfig({displayName:"styled__TextHeader",componentId:"sc-1yhntgl-2"})(["margin-bottom:",";font-weight:700;"],(0,n.getSizeBy)(2)),s=l.default.div.withConfig({displayName:"styled__StaticCheckmarks",componentId:"sc-1yhntgl-3"})(["margin-top:",";margin-bottom:",";"],(0,n.getSizeBy)(2),(0,n.getSizeBy)(5)),i=l.default.div.withConfig({displayName:"styled__CheckmarkLine",componentId:"sc-1yhntgl-4"})(["display:flex;align-items:center;"]),c=(0,l.default)(n.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1yhntgl-5"})(["margin-right:4px;height:18px;> use{fill:",";}"],(0,n.getColor)("primary")),u=(0,l.default)(c).withConfig({displayName:"styled__HelpIcon",componentId:"sc-1yhntgl-6"})(["vertical-align:middle;"]),m=l.default.div.withConfig({displayName:"styled__LearnMoreSection",componentId:"sc-1yhntgl-7"})(["margin-top:",";"],(0,n.getSizeBy)(4)),h=l.default.a.withConfig({displayName:"styled__Link",componentId:"sc-1yhntgl-8"})(["text-decoration:underline;color:",";&:visited{color:",";}"],(0,n.getColor)("success"),(0,n.getColor)("success"))},10195:(e,t,a)=>{a.r(t),a.d(t,{default:()=>B});a(62953);var l=a(96540),n=a(10058),o=a(87659),r=a(35304),d=a(21591),s=a(47767),i=a(15327),c=a(74618),u=a(45765),m=a(78969),h=a(69765),b=a(3914),g=a(67544),f=a(49667),y=a(8018),p=a(52919);const E=e=>{let{onClose:t}=e;const a=(0,s.Zp)(),[o,r]=(0,l.useState)(!1),[d,E]=(0,l.useState)(""),{id:w,slug:v}=(0,b.ap)(),A=(0,h.ID)(),C=(0,h.QW)(),D=(0,l.useCallback)((e=>{let{slug:l}=e;t(),a("/spaces/".concat(v,"/rooms/").concat(C,"/dashboards/").concat(l))}),[v,C]),x=(0,g.Dn)(w,A,{onSuccess:D}),T=(0,l.useCallback)((()=>x({name:d})),[d]),k=d.length>0;return l.createElement(i.GO,{onClose:t},l.createElement(c.z,{onClose:t,title:"New Dashboard"},l.createElement(n.Button,{label:"Add",icon:"plus",onClick:T,"data-testid":"addNewDashboardModal-add-button"})),l.createElement(u.U,null,"Create new Dashboard"),l.createElement(i.Yv,null,l.createElement(y.A,{value:d,label:"Name",onChange:e=>{E(e.target.value)},isValid:o,setIsValid:r,isDirty:k,instantFeedback:"all",onKeyDown:e=>e.keyCode===m.I7&&o&&T,"data-testid":"addNewDashboardModal-dashboardName-input",containerStyles:{flex:{grow:0,shrink:0},margin:[0,0,4,0]}}),l.createElement(p.D7,null,l.createElement(p.Jp,null,"What can you do with Dashboards?"),"Combine all the metrics that matter to you, from all the nodes that matter to you, into one clean interface that helps you visually detect anomalies as they\u2019re happening. Building a new dashboard will only take a few minutes, and the metrics are always real-time."),l.createElement(p.xI,null,l.createElement(p.iS,null,l.createElement(p.vE,{name:"check"}),l.createElement(n.Text,null,"Add charts from your infrastructure")),l.createElement(p.iS,null,l.createElement(p.vE,{name:"check"}),l.createElement(n.Text,null,"Group information in a meaningful way")),l.createElement(p.z6,null,l.createElement(p.NT,{name:"help"}),l.createElement(n.Text,null,"Learn more about Dashboards")," ",l.createElement(p.N_,{href:"https://learn.netdata.cloud/docs/cloud/visualize/dashboards",target:"_blank",rel:"noopener noreferrer"},"In our documentation"))),l.createElement(p.v_,{src:f.$})))};var w=a(28738),v=a(63950),A=a.n(v),C=(a(41393),a(8159),a(98992),a(81454),a(37550),a(73865));const D=e=>{let{handleOpenAddDashboardModal:t,hasPermissionToAddDashboard:a,hasPermissionToDeleteDashboard:n,refetch:o}=e;const r=(0,h.XA)("name"),s=(0,g.Ts)(),i=(0,d.q)(),{hasLimitations:c,maxDashboards:u}=(0,C.A)(),m=async(e,t)=>{const a=(Array.isArray(e)?e:[e]).map((e=>{let{id:t}=e;return t}));await s({ids:a},{onSuccess:()=>t.resetRowSelection()}),o()},b=(0,l.useMemo)((()=>({delete:{confirmLabel:"Yes, delete",confirmationMessage:e=>l.createElement(l.Fragment,null,"You are about to delete ",l.createElement("strong",null,e.name)," from ",l.createElement("strong",null,r),".",l.createElement("br",null),"Are you sure you want to continue?"),confirmationTitle:e=>"Delete ".concat(e.name),declineLabel:"Cancel",handleAction:m,tooltipText:"Delete dashboard",isVisible:n}})),[n]),f=(0,l.useMemo)((()=>({addEntry:{handleAction:t,isVisible:a,tooltipText:"Create dashboard",disabledTooltipText:"Your plan does not allow you to create more than ".concat(u," dashboards."),disabled:c&&i.length>=u},delete:{confirmLabel:"Yes, delete",confirmationMessage:(e,t)=>l.createElement(l.Fragment,null,"You are about to delete"," ",l.createElement("strong",null,t.length>1?"".concat(t.length," dashboards"):t[0].name)," ","from ",l.createElement("strong",null,r),".",l.createElement("br",null),"Are you sure you want to continue?"),confirmationTitle:()=>"Delete",disabledTooltipText:"Delete is disabled because you haven't selected dashboards",declineLabel:"Cancel",handleAction:m,tooltipText:"Delete dashboards",isVisible:n}})));return{rowActions:n?b:[],bulkActions:[a,n].some(Boolean)?f:[]}};var x=a(68980),T=a(29217);const k=e=>{const t=new Date(e),[,a,l,n]=t.toDateString().split(" ");return"".concat(a," ").concat(l,", ").concat(n)};var _=a(4659);const S=e=>{let{name:t}=e;return l.createElement(n.Flex,{width:"300px",column:!0,gap:1},l.createElement(n.Text,{strong:!0},"Locked!"),l.createElement(n.Text,null,"The dashboard ",l.createElement(n.Text,{strong:!0},t)," is locked."),l.createElement(n.Text,null,"Your plan is limited to 1 dashboard. You can delete some dashboards or upgrade your plan for no limitations."))},I=e=>{var t;let{getValue:a,row:o}=e;const r="notAvailable"==(null===o||void 0===o||null===(t=o.original)||void 0===t?void 0:t.state),d=a();return r?l.createElement(T.A,{content:l.createElement(S,{name:d}),align:"bottom",isBasic:!0},l.createElement(n.Flex,{alignItems:"center"},l.createElement(n.Text,null,d),l.createElement(n.Icon,{name:"padlock",height:"12px",color:"text"}))):l.createElement(_.A,{as:"Link",to:o.original.slug},d)};var N=a(46741);const L=e=>{let{refetch:t,handleOpenAddDashboardModal:a}=e;const[,o]=(0,l.useState)(),r=(0,d.q)(),s=(0,x.Sf)(r),i=(0,N.JT)("dashboard:Create"),c=(0,N.JT)("dashboard:Delete"),u=(0,l.useMemo)((()=>[{id:"name",accessorKey:"name",header:"Name",cell:I},{id:"updatedAt",accessorKey:"updatedAt",header:"Last modified",cell:e=>{let{getValue:t}=e;return l.createElement(n.TextSmall,null,k(t()))},sortingFn:"datetime"},{id:"createdAt",accessorKey:"createdAt",header:"Created",cell:e=>{let{getValue:t}=e;return l.createElement(n.TextSmall,null,k(t()))},sortingFn:"datetime"}]),[]),{rowActions:m,bulkActions:h}=D({dashboards:s,handleOpenAddDashboardModal:a,hasPermissionToAddDashboard:i,hasPermissionToDeleteDashboard:c,refetch:t});return{rowActions:m,bulkActions:h,data:s,enableSelection:c,columns:u,enableSorting:!0,globalFilterFn:(0,l.useCallback)(((e,t,a)=>{var l,n,o,r,d,s,i;const c=null===a||void 0===a||null===(l=a.toLowerCase)||void 0===l?void 0:l.call(a),u=null===(n=e.getValue("name"))||void 0===n||null===(o=n.toLowerCase)||void 0===o?void 0:o.call(n),m="".concat(null===(r=k(e.getValue("updatedAt")))||void 0===r||null===(d=r.toLowerCase)||void 0===d?void 0:d.call(r)),h="".concat(null===(s=k(e.getValue("createdAt")))||void 0===s||null===(i=s.toLowerCase)||void 0===i?void 0:i.call(s));return u.includes(c)||m.includes(c)||h.includes(c)}),[]),setGlobalFilter:o}},F=[{id:"updatedAt",desc:!0}],M=e=>{let{refetch:t=A(),handleOpenAddDashboardModal:a}=e;const{enableSelection:o,columns:r,data:d,rowActions:s,bulkActions:i,enableSorting:c,globalFilterFn:u,setGlobalFilter:m}=L({refetch:t,handleOpenAddDashboardModal:a});return l.createElement(n.Table,{rowActions:s,enableSelection:o,data:d,dataColumns:r,bulkActions:i,enableSorting:c,globalFilterFn:u,onSearch:m,testPrefixCallback:e=>e.name,sortBy:F,title:"Dashboards"})};var V=a(63314);const B=()=>{const e=(0,r.A)(),[t,,a,s]=(0,o.A)(!1);return(0,d.RQ)()?l.createElement(V.Ay,{feature:"DashboardOverview"},l.createElement(n.Flex,{position:"relative",width:"100%",height:"100%",flex:"1",column:!0,padding:[3,3,0],overflow:"hidden"},l.createElement(M,{refetch:e,handleOpenAddDashboardModal:a}),t&&l.createElement(E,{onClose:s}))):l.createElement(w.A,{title:"Loading dashboards..."})}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/2007.3c73c91371062be4c05e.chunk.js b/src/web/gui/v2/2007.3c73c91371062be4c05e.chunk.js
new file mode 100644
index 000000000..4135b8837
--- /dev/null
+++ b/src/web/gui/v2/2007.3c73c91371062be4c05e.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b08a6011-6fda-4325-9f1c-96321a94dd8c",e._sentryDebugIdIdentifier="sentry-dbid-b08a6011-6fda-4325-9f1c-96321a94dd8c")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[2007],{62007:(e,n,l)=>{l.r(n),l.d(n,{default:()=>u});var d=l(96540),t=l(22292),a=(l(62953),l(10058)),f=l(19673);const o=()=>{const{loaded:e,value:n}=(0,f.JN)(),l=[n.class,...n.trialEndsAt?["(Trial)"]:[]].join(" ");return e&&l.length?d.createElement(a.Flex,null,d.createElement(a.Pill,null,l)):null},u=()=>(0,t.uW)("isAnonymous")?null:d.createElement(o,null)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/2414.38b580f70a86a4f94b83.chunk.js b/src/web/gui/v2/2414.38b580f70a86a4f94b83.chunk.js
new file mode 100644
index 000000000..04377c1b9
--- /dev/null
+++ b/src/web/gui/v2/2414.38b580f70a86a4f94b83.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b7da6fb-cb2c-46a9-a1e2-46b009b8eabe",e._sentryDebugIdIdentifier="sentry-dbid-9b7da6fb-cb2c-46a9-a1e2-46b009b8eabe")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[2414],{72414:(e,t,n)=>{n.r(t),n.d(t,{default:()=>we});n(62953);var r=n(96540),l=n(10058),a=n(58168),o=n(27776),i=n(86083),c=n(9060);const s=()=>{const e=(0,o.AR)(),t=(0,c.A)(),[n,l]=(0,o.oE)(),a=(0,o.WB)(),s=(0,r.useMemo)((()=>(0,i.Cj)({searchTerm:n,integrations:e})),[n,e]),m=n?(0,i.M6)(s,t):a;return{integrations:(0,i.Fd)((0,i.xM)(m)),setSearchTerm:l}};var m=n(58205);const d=e=>{let{flavour:t}=e;const[n,i]=(0,o.x9)(),{history:c,setHistory:d}=(0,o.b8)(),u=(0,o.GT)(),{setSearchTerm:g}=s(),p=(0,r.useCallback)((e=>{g(e),e?(n||i(c),d([])):n&&d(n)}),[n]),h=(0,r.useMemo)((()=>{var e;return null===(e=m.jI[t])||void 0===e?void 0:e.search}),[t]),v=(null===h||void 0===h?void 0:h.wrapperProps)||{},E=(null===h||void 0===h?void 0:h.inputProps)||{};return r.createElement(l.Flex,v,r.createElement(l.SearchInput,(0,a.A)({value:u,onChange:p,placeholder:"Search through 800+ integrations",dataGa:"integrations::searchTerm::".concat(t)},E)))},u=e=>{let{flavour:t,...n}=e;const o=(0,r.useMemo)((()=>{var e;return null===(e=m.vD[t])||void 0===e?void 0:e.headerContent}),[t]),i=(0,r.useMemo)((()=>{var e;return null===(e=m.jI[t])||void 0===e?void 0:e.header}),[t]),c=(null===i||void 0===i?void 0:i.wrapperProps)||{};return r.createElement(l.Flex,(0,a.A)({column:!0,alignItems:"center",justifyContent:"center",gap:2,width:{min:"500px"}},c),o&&r.createElement(o,n),r.createElement(d,{flavour:t}))};var g=n(88773),p=(n(41393),n(81454),n(63950)),h=n.n(p),v=n(3705),E=n(73700),y=n(74112),f=n(87659);const b=e=>{let{categories:t=[],level:n=0,flavour:l}=e;return r.createElement(r.Fragment,null,t.map((e=>r.createElement(k,{key:e.id,category:e,level:n+1,flavour:l}))))},x=e=>{let{subcategories:t=[],popular:n=[],noPopular:a=[],limitResults:o=0,level:i,flavour:c}=e;const[s,m]=(0,f.A)(o),d=o&&!s?a.slice(0,o):a,u=(0,r.useMemo)((()=>I(2)+4),[]);return r.createElement(l.Flex,{column:!0},r.createElement(b,{categories:n,level:i,flavour:c}),r.createElement(b,{categories:d,level:i,flavour:c}),!!o&&o<t.length&&r.createElement(l.Flex,{padding:[0,0,0,u]},r.createElement(l.Button,{flavour:"borderless",label:s?"Show less":"Show more",onClick:m,small:!0,"data-ga":"integrations::click-category-".concat(name,"-").concat(s?"showLess":"showMore","::").concat(c)})))};var w=n(29217),C=n(71847);const I=function(){return 4*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)},k=e=>{let{isSidebarCollapsed:t,category:n={},level:a=1,flavour:i,maxItemsPerCategory:c={}}=e;const s=(0,o.j6)(),{selectedCategory:d,pushCategory:u}=(0,o.b8)(),{id:p,name:h}=n,v=m.aw[p],{categories:E,popular:b,rest:k}=(0,r.useMemo)((()=>(0,y.YK)((0,y.PQ)({category:n,categories:s}))),[n,s]),A=(0,r.useMemo)((()=>{var e;const t=null===(e=c[p])||void 0===e?void 0:e.limit,n=b.length+1;return t>1?t-n:0}),[c,b]),F=p==(null===d||void 0===d?void 0:d.id),S=(0,r.useMemo)((()=>I(a)),[a]),[T,P]=(0,f.A)(),j=(0,o.q2)(),_=()=>{j(),u(n),(0,C.H)("integrations","select-category","sidebar","category-id:".concat(n.id)),E.length&&P()};return t?r.createElement(l.Flex,{alignItems:"center",justifyContent:"center",padding:[2]},r.createElement(w.A,{content:h,align:"right"},v&&r.createElement(l.Icon,{name:v,color:F?"primary":"text",cursor:"pointer",onClick:_}))):r.createElement(l.Flex,{column:!0},r.createElement(g.Av,{className:1==a?"top-level":"",gap:a>1?1:2,padding:[2,2,2,S],onClick:_,dataGa:"integrations::click-category-".concat(h,"::").concat(i),background:a>1&&F?"integrationMenuItemHover":null,alignItems:"center"},v&&r.createElement(l.Icon,{name:v,size:"small",color:F?"primary":"text"}),a>1&&r.createElement(g.oO,{name:"chevron_right",rotate:T?1:0,size:"small",color:"textLite",cursor:"pointer",disabled:!E.length}),r.createElement(l.TextBig,null,h)),!!E.length&&(T||1==a)&&r.createElement(x,{subcategories:E,popular:b,noPopular:k,limitResults:A,level:a,flavour:i}))},A=e=>r.createElement(l.Box,(0,a.A)({as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}},e)),F={collapsed:{alignItems:"center",justifyContent:"center",padding:[2]},expanded:{justifyContent:"end",padding:[0,2,0,0],position:"sticky",top:"0"}},S={collapsed:{icon:"chevron_right",iconSize:"large",flavour:"borderless",small:!0},expanded:{icon:"chevron_left",iconSize:"small",flavour:"hollow",tiny:!0}},T=e=>{let{isSidebarCollapsed:t,onClick:n=h()}=e;const o=(0,r.useMemo)((()=>t?"collapsed":"expanded"),[t]);return r.createElement(l.Flex,(0,a.A)({width:"100%"},F[o]),r.createElement(l.Button,(0,a.A)({neutral:!0,onClick:n},S[o])))},P=(0,E.s)(300,y.vF),j=e=>{let{flavour:t,isSidebarCollapsed:n,toggleSidebar:a=h()}=e;const[i,{height:c}]=(0,v.A)(),s=(0,o.Ss)(),m=(0,o.j6)(),[d,u]=(0,r.useState)({});return(0,r.useEffect)((()=>{P({height:c,topLevelCategories:s,categories:m,setState:u})}),[c,s,m]),r.createElement(l.Flex,{ref:i,column:!0,gap:2,overflow:{vertical:"auto"}},r.createElement(T,{isSidebarCollapsed:n,onClick:a}),s.map(((e,a)=>r.createElement(l.Flex,{key:e.id,column:!0,gap:2},r.createElement(k,{isSidebarCollapsed:n,category:e,maxItemsPerCategory:d,flavour:t}),!n&&a<s.length-1&&r.createElement(A,null)))))},_=(0,r.memo)(j);var M=n(3914);const N=()=>{const{pop:e}=(0,o.b8)(),t=(0,r.useCallback)((()=>{e(),(0,C.H)("integrations","navigate-back","breadcrumb")}),[e]);return r.createElement(l.Button,{label:"Back",icon:"arrow_left",iconColor:"primary",iconSize:"small",flavour:"borderless",onClick:t})};n(25440);var B=n(8711);const H=e=>{let{iconProps:t,...n}=e;return r.createElement(l.Flex,(0,a.A)({width:"74px",height:"74px",alignItems:"center",justifyContent:"center",background:"primary",round:"100%"},n),r.createElement(l.Icon,(0,a.A)({name:"integrations",color:"white",size:"large"},t)))},R=(0,B.default)(H).withConfig({displayName:"fallbackIcon__PlaceholderIcon",componentId:"sc-182ui8v-0"})(["filter:blur(3px);background:",";opacity:0.7;"],(0,l.getColor)("mainBackground")),L=()=>r.createElement(R,{iconProps:{color:"textLite"}}),z=H;var D=n(4659);const G=e=>{let{name:t,icon:n}=e;const[a,o]=(0,r.useState)(),i=(0,r.useCallback)((()=>o(!0)),[]);return r.createElement(l.Flex,{alignItems:"center",gap:1},n&&(a?r.createElement(z,{width:"18px",height:"18px",iconProps:{size:void 0,with:"12px",height:"12px"}}):r.createElement("img",{src:n,alt:"".concat(t,"-logo"),height:"18px",onError:i})),r.createElement(l.Text,null,t))},W=e=>{let{category:t={},index:n=0}=e;const{history:a,selectedIntegration:i,pushCategory:c}=(0,o.b8)();return!i&&n==a.length-1?r.createElement(l.Text,null,t.name):r.createElement(D.A,{onClick:()=>{c(t),(0,C.H)("integrations","select-category","breadcrumb","category-id:".concat(t.id))}},t.name)},q=e=>{let{flavour:t}=e;const{history:n}=(0,o.b8)(),a=n.map((e=>{let{name:t}=e;return t})).join("-").replace(" ","");return r.createElement(l.Flex,{gap:2,dataGa:"integrations::view-integration-".concat(a,"::").concat(t)},n.map(((e,t)=>r.createElement(l.Flex,{key:e.id,gap:2},"category"==e.type?r.createElement(W,{category:e,index:t}):r.createElement(G,e),t<n.length-1&&r.createElement(l.Text,null,"/")))))},O=e=>{let{url:t=""}=e;return t?r.createElement(D.A,{href:t,rel:"noopener noreferrer",target:"_blank"},r.createElement(w.A,{content:"Do you see something wrong? Edit the contents of this resource here."},r.createElement(l.Flex,{alignItems:"center",gap:1},r.createElement(l.Icon,{color:"primary",name:"pencilOutline",width:"12px",height:"12px"}),r.createElement(l.Text,{color:"primary"},"Edit information")))):null};var Y=n(82929);const K=()=>{const{integrations:e}=s(),t=(0,o.q2)(),n=(0,o.hh)(),{setHistory:a}=(0,o.b8)(),i=(0,r.useCallback)((()=>{t(),n&&a(n)}),[]);return r.createElement(l.Flex,{alignItems:"center",justifyContent:"between"},r.createElement(l.Flex,{alignItems:"center",gap:4},r.createElement(l.TextBig,null,"Found ",e.length," results"),r.createElement(l.Button,{label:"Clear",icon:"x",iconColor:"primary",iconSize:"small",flavour:"borderless",onClick:i})))};var V=n(51220);n(17333),n(98992),n(54520);const J=B.default.img.withConfig({displayName:"progressiveImage__StyledImage",componentId:"sc-16k6xv6-0"})(["max-width:80%;max-height:74px;"]),Q=e=>{let{src:t,Placeholder:n,onError:l=h(),...o}=e;const[i,c]=(0,f.A)(!0);return(0,r.useEffect)((()=>{const e=new Image;e.src=t,e.onload=()=>c(),e.onerror=e=>l(e)}),[]),i&&n?r.createElement(n,null):r.createElement(J,(0,a.A)({src:t},o))},Z=e=>{let{isCommunity:t,...n}=e;return r.createElement(l.Flex,(0,a.A)({alignItems:"center",gap:1,position:"absolute",top:"-20px",right:"0",padding:[0,2]},n),r.createElement(w.A,{content:t?"This integration is maintaned by the community":"This integration is maintained by Netdata"},r.createElement(l.TextMicro,{strong:!0,color:"textDescription"},t?"by Community":"by Netdata")),!t&&r.createElement(l.Icon,{name:"favorites",color:"primary",width:"14px",height:"14px"}))},$=e=>{let{integration:t={},...n}=e;const{selectedCategory:i,pushIntegration:s}=(0,o.b8)(),m=(0,o.j6)(),[d,u]=(0,f.A)(),{flattenedCategory:p,community:h}=t,v=(0,c.A)(),{tree:E,topLevelCategory:b}=(0,y.fk)({category:p,getCategoryById:v}),x=(0,r.useMemo)((()=>E.slice(0,2).filter(Boolean).map((e=>{let{name:t}=e;return t})).join(" / ")),[E,b]),w=(0,y.q1)((null===i||void 0===i?void 0:i.id)||(null===p||void 0===p?void 0:p.id),m),[I,k]=(0,r.useState)(),A=(0,r.useCallback)((()=>k(!0)),[]);return r.createElement(g.Zp,(0,a.A)({alignItems:"center",justifyContent:"center",height:"100%",position:"relative",overflow:"hidden",cursor:"pointer",padding:[2],onMouseEnter:u,onMouseLeave:u,onClick:()=>{s(t),(0,C.H)("integrations","select-integration","integration-tile","integration-id:".concat(t.id))},round:"2px"},n),r.createElement(g.AG,{name:w,className:d?"hover":"",width:"190px",height:"190px",color:"textLite"}),r.createElement(l.Flex,{width:"100%",alignItems:"center",justifyContent:"center",column:!0,gap:2,zIndex:10},r.createElement(l.Flex,{justifyContent:"center",column:!0,gap:1},r.createElement(l.H3,{textAlign:"center",strong:!1},t.name),x&&r.createElement(l.TextSmall,{textAlign:"center"},x)),t.icon&&!I&&r.createElement(Q,{Placeholder:L,src:t.icon,alt:"".concat(t.name,"-logo"),onError:A}),I&&r.createElement(z,null),t.description?r.createElement(g.BT,{className:d?"hover":"",alignItems:"center",justifyContent:"center",width:"100%",padding:[3],background:"mainBackground"},r.createElement(Z,{isCommunity:h}),r.createElement(l.Text,{textAlign:"center"},t.description)):r.createElement(Z,{isCommunity:h,bottom:"4px",top:"unset"})))},U=(0,r.memo)($),X=e=>{let{integrations:t=[],itemsPerRow:n=4,rowHeight:l=200}=e;const a=(0,r.useRef)(),o=(0,r.useMemo)((()=>(e=>{let{integrations:t=[],itemsPerRow:n}=e;const r=[];let l=[];for(let a=0;a<t.length;a++)l.push(t[a]),(a+1)%n==0&&(r.push(l),l=[]);return l.length>0&&r.push(l),r})({integrations:t,itemsPerRow:n})),[t,n]),i=(0,r.useCallback)((()=>l),[l]),c=(0,V.Te)({count:o.length,getScrollElement:()=>a.current,enableSmoothScroll:!1,estimateSize:i});return r.createElement("div",{ref:a,style:{height:"100%",overflow:"auto",paddingRight:"16px"}},r.createElement("div",{style:{minHeight:"".concat(c.getTotalSize(),"px"),width:"100%",position:"relative"}},c.getVirtualItems().map((e=>r.createElement("div",{key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),overflow:"hidden"},ref:c.measureElement,"data-index":e.index},r.createElement(g.$c,{itemsPerRow:n,rowHeight:l},(o[e.index]||[]).map((e=>r.createElement(U,{width:"100%",height:"100%",key:e.flattenedKey||e.id,integration:e})))))))))},ee=()=>r.createElement(l.Flex,{width:"100%",column:!0,alignItems:"center",margin:[8,0,0,0]},r.createElement(l.Flex,{column:!0,justifyContent:"center",alignItems:"center",margin:[0,0,6]},r.createElement(l.H3,{margin:[0,0,4]},"No integrations to display"),r.createElement(l.Text,{color:"textDescription",textAlign:"center"},"There are currently no integrations under this category.",r.createElement("br",null),"Try another category or use the search bar to find what you're looking for.")));var te=n(45463);const ne="(min-width: 1600px)",re="(max-width: 1599px)",le="(max-width: 1299px)",ae={large:{itemsPerRow:4,rowHeight:200},medium:{itemsPerRow:3,rowHeight:200},small:{itemsPerRow:2,rowHeight:190}};var oe=n(63314);const ie=(0,r.memo)((e=>{let{selectedCategory:t,searchTerm:n,integrations:o}=e;const{itemsPerRow:i,rowHeight:c}=(()=>{const e=(0,te.A)(ne),t=(0,te.A)(re),n=(0,te.A)(le);return ae[e?"large":t&&!n?"medium":"small"]||{}})();return r.createElement(l.Flex,{column:!0,gap:4,width:"100%",height:"100%",overflow:{vertical:"auto"}},r.createElement(l.Flex,{width:"100%",position:"sticky",top:"0",background:"mainBackground",zIndex:15},n?r.createElement(K,null):r.createElement(l.Flex,{column:!0,gap:2},r.createElement(l.H1,{strong:!1},null===t||void 0===t?void 0:t.name),r.createElement(l.Text,null,null===t||void 0===t?void 0:t.description))),o.length?r.createElement(oe.Ay,(0,a.A)({mode:"IntegrationsList"},n?{searchTerm:n}:{}),r.createElement(X,{integrations:o,itemsPerRow:i,rowHeight:c})):r.createElement(oe.Ay,(0,a.A)({mode:"NoIntegrations"},n?{searchTerm:n}:{}),r.createElement(ee,null)))})),ce=e=>{let{flavour:t}=e;const{selectedCategory:n}=(0,o.b8)(),l=(0,o.GT)(),{integrations:a}=s();return r.createElement(ie,{flavour:t,selectedCategory:n,searchTerm:l,integrations:a})};var se=n(24695),me=n(27467),de=n(38819);const ue=()=>{var e,t;const[n,a]=(0,r.useState)("calc(100% - 133px)"),{selectedIntegrationTab:i}=(0,de.PP)(),[,c]=(0,me.N9)("selectedIntegrationTab"),[s,m]=(0,r.useState)(i||0),{selectedIntegration:d={}}=(0,o.b8)(),{overview:u,metrics:g,alerts:p,setup:h,troubleshooting:E,relatedResources:y}=d,[f,{height:b}]=(0,v.A)(),x=(0,r.useMemo)((()=>[u?{id:"overview",label:"Overview",content:u}:null,g?{id:"metrics",label:"Metrics",content:g}:null,p?{id:"alerts",label:"Alerts",content:p}:null,h?{id:"setup",label:"Setup",content:h}:null,E?{id:"troubleshooting",label:"Troubleshooting",content:E}:null].filter(Boolean)),[u,g,p,h,E,y]);(0,r.useLayoutEffect)((()=>{b&&a("".concat(b-70,"px"))}),[b]);return r.createElement(oe.Ay,{tab:null===(e=x[s])||void 0===e?void 0:e.label,delay:0},r.createElement(l.Flex,{ref:f,column:!0,gap:2,width:"100%",height:"100%",margin:[4,0,0,0]},r.createElement(l.Flex,{border:{side:"bottom",size:"1px",color:"borderSecondary"},padding:[0,4]},r.createElement(l.Tabs,{selected:parseInt(s),onChange:e=>{var t;c(e),m(e),(0,C.H)("integrations","select-integration-tab","integration-view","selected-tab:".concat(null===(t=x[e])||void 0===t?void 0:t.label))}},x.map((e=>{let{label:t}=e;return r.createElement(l.Tab,{key:t,label:r.createElement(l.Text,null,t),minWidth:"auto",maxWidth:"auto",padding:[1,4],background:"mainBackground",small:!0})})))),r.createElement(l.Flex,{width:"100%",height:n,overflow:{vertical:"auto"},padding:[2,0]},r.createElement(se.A,null,null===(t=x[s])||void 0===t?void 0:t.content))))},ge=e=>{let{integration:t={}}=e;return r.createElement(r.Fragment,null,t.description&&r.createElement(l.Flex,{margin:[4,0,0,0]},r.createElement(l.Text,null,t.description)),r.createElement(ue,null))},pe=e=>{let{integration:t={},topLevelCategory:n={},isNightly:l}=e;const a=(0,r.useMemo)((()=>(e=>m.rP[null===e||void 0===e?void 0:e.id]||ge)(n)),[n]);return r.createElement(oe.Ay,{mode:"IntegrationView",integrationId:null===t||void 0===t?void 0:t.id},r.createElement(a,{integration:t,isNightly:l}))};var he=n(59778);const ve=e=>{let{flavour:t}=e;const n=(0,M.ap)("plan"),a=(0,c.A)(),{level:i,selectedCategory:s,selectedIntegration:m}=(0,o.b8)(),{flattenedCategory:d}=m||{},u=d||s,{topLevelCategory:g}=(0,y.fk)({category:u,getCategoryById:a}),p="deploy"==(null===g||void 0===g?void 0:g.id),[h,v]=(0,r.useState)(he.D[n]||he.D.default),E=m||i>2;return r.createElement(l.Flex,{column:!0,gap:2,width:"100%",overflow:m&&!p?{}:{vertical:"auto"}},r.createElement(l.Flex,{column:!0,alignItems:"start",gap:2,padding:[0,2,0,0]},E&&r.createElement(N,null),r.createElement(l.Flex,{width:"100%",alignItems:"end",justifyContent:"between"},r.createElement(l.Flex,{alignItems:"center",gap:4},r.createElement(q,{flavour:t}),(null===m||void 0===m?void 0:m.editLink)&&r.createElement(O,{url:m.editLink})),m&&p&&r.createElement(Y.A,{isNightly:"nightly"==h,toggleNightly:e=>{const t=e.target.checked?"nightly":"stable";v(t)}}))),m?r.createElement(pe,{integration:m,topLevelCategory:g,isNightly:"nightly"==h,flavour:t}):r.createElement(ce,{flavour:t}))};var Ee=n(17208);const ye=(0,B.default)(l.Flex).withConfig({displayName:"cncfReference__Wrapper",componentId:"sc-1ntasha-0"})(["position:absolute;bottom:0;"]),fe=()=>r.createElement(ye,{width:"100%",alignItems:"start",justifyContent:"end",background:"mainBackground",gap:2,padding:[6]},r.createElement(l.Flex,{width:"500px"},r.createElement(l.TextSmall,{textAlign:"right"},"Netdata is a member of the Cloud Native Computing Foundation (CNCF), and it is one of the most starred projects in the"," ",r.createElement(D.A,{alignSelf:"start",Component:l.TextSmall,href:"https://landscape.cncf.io/card-mode?grouping=no&sort=stars",rel:"noopener noreferer",target:"_blank"},"CNCF landscape"),".")),r.createElement(Ee.go,null));var be=n(6323),xe=n(47767);const we=e=>{let{flavour:t=m.Jr}=e;const[n,,a,i]=(0,f.A)();(()=>{const e=(0,r.useRef)(!0),{pathname:t}=(0,xe.zy)(),n=(0,o.yv)();(0,r.useEffect)((()=>{e.current||(e.current=!1,n())}),[t])})();const[c,s]=(0,f.A)();return r.createElement(oe.Ay,{feature:"Integrations",logImpression:!1},r.createElement(l.Flex,{position:"relative",height:"100%",column:!0,background:"mainBackground"},r.createElement(l.Flex,{column:!0,alignItems:"center",justifyContent:"center"},r.createElement(u,{flavour:t,onInvite:a})),r.createElement(g.D6,{flavour:t,isSidebarCollapsed:c},r.createElement(_,{flavour:t,isSidebarCollapsed:c,toggleSidebar:s}),r.createElement(ve,{flavour:t})),t==m.D_.homePage&&r.createElement(fe,null)),n&&r.createElement(be.d,{onClose:i}))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3104.dfd9b1f79c9550ab8493.chunk.js b/src/web/gui/v2/3104.dfd9b1f79c9550ab8493.chunk.js
new file mode 100644
index 000000000..3a580a659
--- /dev/null
+++ b/src/web/gui/v2/3104.dfd9b1f79c9550ab8493.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4502ca4c-8646-48c3-a987-7771b9d63a94",e._sentryDebugIdIdentifier="sentry-dbid-4502ca4c-8646-48c3-a987-7771b9d63a94")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3104],{3104:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Ke});var n=a(96540),o=a(11128),r=(a(14905),a(98992),a(8872),a(62953),a(47762));const l=(e,t)=>t?e[t]:e;var i=a(99739),s=a(67990),d=a(10058),c=a(12897),m=a.n(c),h=a(55042),u=a.n(h),p=new(m())({id:"notCapableNodes",use:"notCapableNodes-usage",viewBox:"0 0 231 230",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 231 230" id="notCapableNodes"><path fill="#EDF2F6" d="M115.5 226c61.304 0 111-49.696 111-111S176.804 4 115.5 4 4.5 53.696 4.5 115s49.696 111 111 111" /><path fill="#E2E6EC" d="M212.149 115A96.65 96.65 0 1 1 39.894 54.809l3.303-4.038A96.649 96.649 0 0 1 212.149 115" /><mask id="notCapableNodes_a" width="206" height="194" x="6" y="18" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#E2E6EC" d="M211.798 114.743a96.657 96.657 0 0 1-40.698 78.821 96.659 96.659 0 0 1-87.833 12.432C68.697 200.905 26.108 203.209 15.5 192c-10.608-11.209.28-35.172-4-50-4.281-14.828-6.001-31.361-3-46.5 3.001-15.139-.614-35.927 9-48H40c13.017-14.675 33.037-22.027 52.086-26.708a96.648 96.648 0 0 1 119.712 93.951" /></mask><g mask="url(#notCapableNodes_a)"><g clip-path="url(#notCapableNodes_b)"><path fill="#45535C" d="M217.255 50H19.142a2.641 2.641 0 0 0-2.642 2.642v134.716A2.642 2.642 0 0 0 19.142 190h198.113a2.641 2.641 0 0 0 2.641-2.642V52.642A2.641 2.641 0 0 0 217.255 50" /><path fill="#546C82" d="M19.142 50h198.113a2.644 2.644 0 0 1 2.641 2.642v3.962H16.5v-3.962A2.641 2.641 0 0 1 19.142 50" /><path fill="#0F0" d="M21.123 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962" opacity=".5" /><path fill="#FF0" d="M27.726 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962" opacity=".5" /><path fill="red" d="M34.33 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962" opacity=".5" /><path stroke="#fff" stroke-miterlimit="10" stroke-width="2" d="m34.33 88.962 6.604-6.603-6.604-6.604M44.236 88.302h11.887" /></g><path fill="#7698B0" d="M145.373 81.99a2.327 2.327 0 1 0-4.655 0v19.551a2.328 2.328 0 1 0 4.655 0z" /><path fill="#6D8CA3" d="M145.373 83.386h7.821a2.421 2.421 0 0 1 2.421 2.42v11.918a2.42 2.42 0 0 1-2.421 2.421h-7.821z" /><path fill="#658196" d="M155.615 88.972h2.979a2.608 2.608 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.979z" /><path fill="#7698B0" d="M219.897 143.904v1.862h-36.35a9.31 9.31 0 0 1-9.311-9.31v-36.311c0-4.097-2.7-7.449-6.052-7.449h-6.982v-1.862h6.982c4.376 0 7.914 4.19 7.914 9.311v36.311a7.446 7.446 0 0 0 7.449 7.448z" /><path fill="#80A4BF" d="M124.89 85.248h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724M124.89 94.558h-9.31a1.862 1.862 0 1 0 0 3.725h9.31a1.862 1.862 0 1 0 0-3.725" /><path fill="#6D8CA3" d="M127.777 81.524h12.941v20.483h-12.941a3.818 3.818 0 0 1-3.818-3.818V85.342a3.814 3.814 0 0 1 2.357-3.527c.463-.192.959-.29 1.461-.29" /><path fill="#19B357" d="M106.269 107.127a2.327 2.327 0 0 0-4.655 0v19.553a2.327 2.327 0 0 0 4.655 0z" /><path fill="#00AB44" d="M106.269 108.524h7.821a2.421 2.421 0 0 1 2.421 2.421v11.917a2.421 2.421 0 0 1-2.421 2.421h-7.821z" /><path fill="#00993D" d="M116.511 114.11h2.979a2.607 2.607 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.979z" /><path fill="#00AB44" d="M219.896 132.732c-.016.624 0 1.136 0 1.862h-75.454a9.312 9.312 0 0 1-9.311-9.311c0-4.097-2.7-7.448-6.051-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.189 7.914 9.31a7.447 7.447 0 0 0 7.448 7.449z" /><path fill="#00CB51" d="M85.786 110.386h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724M85.786 119.697h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724" /><path fill="#00AB44" d="M88.672 106.662h12.942v20.483H88.672a3.817 3.817 0 0 1-3.817-3.817v-12.849a3.818 3.818 0 0 1 3.817-3.817" /><path fill="#7698B0" d="M124.89 149.025a2.327 2.327 0 1 0-4.655 0v19.552a2.328 2.328 0 0 0 4.655 0z" /><path fill="#6D8CA3" d="M124.89 150.421h7.821a2.421 2.421 0 0 1 2.421 2.421v11.824a2.421 2.421 0 0 1-2.421 2.421h-7.821z" /><path fill="#658196" d="M135.131 156.008h2.98a2.606 2.606 0 0 1 2.607 2.607v.372a2.608 2.608 0 0 1-2.607 2.607h-2.98z" /><path fill="#7698B0" d="M219.896 122.49h-56.833a7.446 7.446 0 0 0-7.448 7.448v20.483c0 5.121-3.538 9.311-7.914 9.311h-6.983v-1.862h6.983c3.352 0 6.052-3.352 6.052-7.449v-20.483a9.31 9.31 0 0 1 9.31-9.31h56.833z" /><path fill="#80A4BF" d="M104.407 152.284h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724M104.407 161.594h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724" /><path fill="#6D8CA3" d="M107.293 148.559h12.942v20.484h-12.942a3.818 3.818 0 0 1-3.817-3.818v-12.848a3.818 3.818 0 0 1 3.817-3.818" /></g><defs><clipPath id="notCapableNodes_b"><path fill="#fff" d="M16.5 50h203.396v140H16.5z" /></clipPath></defs></symbol>'});u().add(p);const L=p,f=()=>n.createElement(d.Flex,{width:"100%",justifyContent:"center",alignItems:"center",gap:3},n.createElement("svg",{viewBox:L.viewBox,height:"222px"},n.createElement("use",{xlinkHref:"#".concat(L.id)})),n.createElement(d.TextBig,{strong:!0},"Your nodes are either offline or not configured for ML"));var g=a(4659);const y=()=>n.createElement(d.Flex,{height:10.5,width:{min:10.5},background:"warningText",justifyContent:"center",alignItems:"center",round:"50%",sx:{borderRadius:"50%"}},n.createElement(d.Icon,{color:"warningBackground",name:"informationPress"})),v=e=>{let{to:t,children:a}=e;return n.createElement(g.A,{Component:d.Text,href:t,target:"_blank",rel:"noopener noreferrer"},a)},E=()=>n.createElement(d.Flex,{column:!0,gap:1},n.createElement(d.Text,{strong:!0,color:"textDescription"},"Not Configured Nodes"),n.createElement(d.Text,{color:"textDescription"},"Learn how to configure your nodes"," ",n.createElement(v,{to:"https://learn.netdata.cloud/docs/cloud/insights/anomaly-advisor#enable-ml-on-netdata-agent"},"to support anomaly advisor"),".")),M=()=>n.createElement(d.Flex,{column:!0,gap:1},n.createElement(d.Text,{strong:!0,color:"textDescription"},"Not Capable Nodes"),n.createElement(d.Text,{color:"textDescription"},"All nodes need to be updated to a version higher than"," ",n.createElement(d.Text,{strong:!0,color:"textDescription"},"1.32"),". Learn how to"," ",n.createElement(v,{to:"https://learn.netdata.cloud/docs/agent/packaging/installer/update"},"update to the latest Netdata version"),".")),b=()=>n.createElement(d.Box,{round:!0,background:"elementBackground",padding:[4]},n.createElement(d.Flex,{gap:4,alignItems:"start"},n.createElement(y,null),n.createElement(d.Flex,{gap:4,column:!0},n.createElement(E,null),n.createElement(M,null)))),A=()=>n.createElement(d.Flex,{column:!0,width:"100%",height:"100%",justifyContent:"start",padding:[8,4]},n.createElement(d.Flex,{column:!0,gap:8},n.createElement(f,null),n.createElement(b,null)));var w=a(58168),x=a(3705),C=a(83084),k=a(69765),I=a(23931),Z=a(3914),D=a(16579),_=a(81416),H=a(27467),T=a(99292),z=a(79304),B=(a(9920),a(41393),a(3949),a(81454),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(45387)),N=a(61427),S=a(21290),F=a(93658);const V=e=>Math.floor(e/1e3),R=()=>{const[e,t]=(0,_.yD)(),{localeTimeString:a}=(0,S.$j)(),[o,r,l]=(0,n.useMemo)((()=>{const n=V(e),o=V(t);return[(0,F.getDateDiff)(n,o),a(e,{secs:!0}),a(t,{secs:!0})]}),[e,t]);return e&&t?n.createElement(d.Flex,{gap:1,alignItems:"baseline"},n.createElement(d.TextMicro,{strong:!0,color:"textLite"},n.createElement(d.TextSmall,{strong:!0,color:"textLite"},r," \u2192 ",l," \u2022")," ","Duration: ",o)):null};var G=a(8711);const O=(0,G.keyframes)(["from{transform:translate(412px,0);}"]),U=G.default.g.withConfig({displayName:"skeleton__Animated",componentId:"sc-gwkfye-0"})(["animation:",";"],(e=>{let{animate:t}=e;return t?(0,G.css)([""," 1s linear infinite"],O):""})),j=e=>{let{animate:t=!1}=e;return n.createElement("svg",{width:"1140",height:"80",viewBox:"0 0 1140 80",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("mask",{id:"mask0_467_73096",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"1140",height:"80"},n.createElement("rect",{width:"1140",height:"80",fill:"#C4C4C4"})),n.createElement("g",{mask:"url(#mask0_467_73096)"},n.createElement(U,{animate:t},n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M-374 70L-401 78H-192.5H14H25.5H212L180 70L157 55L144 70L105 11L69.5 70H41L17.8524 76.8586L-8 73L-39 38L-62 71L-85.5 61.5L-100.5 73L-114.5 61.5L-146 41L-168 70L-192.5 78L-235 70L-258 55L-271 70L-310 11L-327.75 40.5L-345.5 70H-374Z",fill:"#8F9EAA"}),n.createElement("path",{d:"M-401 78L-401.142 77.5206L-401 78.5V78ZM-374 70V69.5H-374.073L-374.142 69.5206L-374 70ZM212 78V78.5L212.121 77.5149L212 78ZM180 70L179.727 70.4188L179.797 70.4647L179.879 70.4851L180 70ZM157 55L157.273 54.5812L156.908 54.3429L156.622 54.6725L157 55ZM144 70L143.583 70.2757L143.946 70.8254L144.378 70.3275L144 70ZM105 11L105.417 10.7243L104.98 10.0632L104.572 10.7422L105 11ZM69.5 70V70.5H69.7827L69.9284 70.2578L69.5 70ZM41 70V69.5H40.9275L40.8579 69.5206L41 70ZM17.8524 76.8586L17.7785 77.3531L17.8882 77.3694L17.9944 77.338L17.8524 76.8586ZM-8 73L-8.3743 73.3315L-8.25369 73.4677L-8.07382 73.4945L-8 73ZM-39 38L-38.6257 37.6685L-39.0469 37.1929L-39.4102 37.7141L-39 38ZM-62 71L-62.1874 71.4636L-61.8178 71.613L-61.5898 71.2859L-62 71ZM-85.5 61.5L-85.3126 61.0365L-85.5775 60.9294L-85.8042 61.1032L-85.5 61.5ZM-100.5 73L-100.817 73.3864L-100.511 73.6383L-100.196 73.3968L-100.5 73ZM-114.5 61.5L-114.183 61.1137L-114.204 61.0961L-114.227 61.0809L-114.5 61.5ZM-146 41L-145.727 40.5809L-146.117 40.3272L-146.398 40.6978L-146 41ZM-168 70L-167.845 70.4753L-167.696 70.4268L-167.602 70.3022L-168 70ZM-235 70L-235.273 70.4188L-235.19 70.473L-235.092 70.4914L-235 70ZM-258 55L-257.727 54.5812L-258.092 54.3429L-258.378 54.6725L-258 55ZM-271 70L-271.417 70.2757L-271.054 70.8254L-270.622 70.3275L-271 70ZM-310 11L-309.583 10.7243L-310.02 10.0632L-310.428 10.7422L-310 11ZM-345.5 70V70.5H-345.217L-345.072 70.2578L-345.5 70ZM-400.858 78.4794L-373.858 70.4794L-374.142 69.5206L-401.142 77.5206L-400.858 78.4794ZM-192.5 77.5H-401V78.5H-192.5V77.5ZM14 77.5H-192.5V78.5H14V77.5ZM14 78.5H25.5V77.5H14V78.5ZM25.5 78.5H212V77.5H25.5V78.5ZM212.121 77.5149L180.121 69.5149L179.879 70.4851L211.879 78.4851L212.121 77.5149ZM180.273 69.5812L157.273 54.5812L156.727 55.4188L179.727 70.4188L180.273 69.5812ZM156.622 54.6725L143.622 69.6725L144.378 70.3275L157.378 55.3275L156.622 54.6725ZM144.417 69.7243L105.417 10.7243L104.583 11.2757L143.583 70.2757L144.417 69.7243ZM104.572 10.7422L69.0716 69.7422L69.9284 70.2578L105.428 11.2578L104.572 10.7422ZM69.5 69.5H41V70.5H69.5V69.5ZM40.8579 69.5206L17.7103 76.3792L17.9944 77.338L41.1421 70.4794L40.8579 69.5206ZM-8.07382 73.4945L17.7785 77.3531L17.9262 76.364L-7.92618 72.5055L-8.07382 73.4945ZM-39.3743 38.3315L-8.3743 73.3315L-7.6257 72.6685L-38.6257 37.6685L-39.3743 38.3315ZM-61.5898 71.2859L-38.5898 38.2859L-39.4102 37.7141L-62.4102 70.7141L-61.5898 71.2859ZM-85.6874 61.9636L-62.1874 71.4636L-61.8126 70.5364L-85.3126 61.0365L-85.6874 61.9636ZM-100.196 73.3968L-85.1958 61.8968L-85.8042 61.1032L-100.804 72.6032L-100.196 73.3968ZM-114.817 61.8864L-100.817 73.3864L-100.183 72.6136L-114.183 61.1137L-114.817 61.8864ZM-146.273 41.4191L-114.773 61.9191L-114.227 61.0809L-145.727 40.5809L-146.273 41.4191ZM-167.602 70.3022L-145.602 41.3022L-146.398 40.6978L-168.398 69.6978L-167.602 70.3022ZM-192.345 78.4753L-167.845 70.4753L-168.155 69.5247L-192.655 77.5247L-192.345 78.4753ZM-235.092 70.4914L-192.592 78.4914L-192.408 77.5086L-234.908 69.5086L-235.092 70.4914ZM-258.273 55.4188L-235.273 70.4188L-234.727 69.5812L-257.727 54.5812L-258.273 55.4188ZM-270.622 70.3275L-257.622 55.3275L-258.378 54.6725L-271.378 69.6725L-270.622 70.3275ZM-310.417 11.2757L-271.417 70.2757L-270.583 69.7243L-309.583 10.7243L-310.417 11.2757ZM-327.322 40.7578L-309.572 11.2578L-310.428 10.7422L-328.178 40.2422L-327.322 40.7578ZM-345.072 70.2578L-327.322 40.7578L-328.178 40.2422L-345.928 69.7422L-345.072 70.2578ZM-374 70.5H-345.5V69.5H-374V70.5Z",fill:"#CFD5DA"})),n.createElement("mask",{id:"mask1_467_73096",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"52",y:"0",width:"1140",height:"80"},n.createElement("rect",{x:"52",width:"1140",height:"80",fill:"#C4C4C4"})),n.createElement("g",{mask:"url(#mask1_467_73096)"},n.createElement("rect",{x:"55.5",y:"-1.5",width:"1140",height:"80",fill:"#CFD5DA",fillOpacity:"0.25",stroke:"#8F9EAA",strokeDasharray:"2 5"}),n.createElement("rect",{x:"55",width:"86",height:"3",fill:"#CFD5DA"}))))};a(9391);var K=new(m())({id:"error-state",use:"error-state-usage",viewBox:"0 0 199 79",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 199 79" id="error-state"><path fill="#8F9EAA" fill-rule="evenodd" d="m91.008 47.745 2.142 1.506.575-.819-2.437-1.713-.288.409-.298-.401L51.319 76.01 25.983 77.76H0v1h26.017l.017-.002 25.5-1.76.147-.01.117-.087zm7.017 4.932 4.875 3.427.575-.818-4.875-3.427zm9.75 6.854 4.875 3.427.575-.818-4.875-3.427zm9.75 6.854 4.875 3.426.575-.818-4.875-3.427zm25.62.71-.199-.061-.182.098-3.25 1.742.472.882 3.067-1.645 2.679.812.29-.957zm8.336 3.57 2.874.871 2.874.871.29-.957-2.874-.871-2.874-.871zm-21.245 4.318 3.25-1.742-.472-.882-2.979 1.597-2.185-1.536-.575.818 2.437 1.713.253.178zm32.742-.834 2.877.872.043.013.044.005 2.667.31.115-.993-2.622-.305-2.834-.859zm10.964 1.82 5.334.619.115-.993-5.333-.62zm10.667 1.239 5.333.619.116-.993-5.334-.62zm10.667 1.239 2.666.31.116-.994-2.667-.31z" clip-rule="evenodd" /><mask id="error-state_a" width="93" height="79" x="53" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#C4C4C4" d="M53 0h93v79H53z" /></mask><g fill="#CFD5DA" mask="url(#error-state_a)"><path fill-opacity=".25" stroke="#8F9EAA" stroke-dasharray="2 5" d="M56.5-1.5h85v82h-85z" /><path d="M56 0h86v3H56z" /></g></symbol>'});u().add(K);const Y=K;var P=a(50876),q=a(63314);const J=()=>n.createElement("svg",{viewBox:Y.viewBox,width:"197"},n.createElement("use",{xlinkHref:"#".concat(Y.id)})),W=(0,G.default)(d.Button).withConfig({displayName:"errorView__RetryButton",componentId:"sc-1n9qb8k-0"})(["white-space:normal !important;align-items:flex-start !important;width:230px !important;font-size:12px !important;font-weight:normal !important;& > *{align-items:start !important;margin:0 !important;padding:0 !important;}"]),X=e=>{let{onRetry:t}=e;const{sendLog:a,isReady:o}=(0,P.A)(),r=(0,n.useCallback)((()=>{a({feature:"AnomalyAdvisor",description:"Retry"}).finally((()=>{"function"==typeof t&&t()}))}),[o]);return n.createElement(q.DL,{feature:"AnomalyAdvisor"},n.createElement(d.Flex,{column:!0,alignItems:"center",width:"100%"},n.createElement(J,null),n.createElement(d.TextSmall,{margin:[1,0,0],color:"textDescription"},"Something went wrong."),n.createElement(W,{margin:[2,0,0],padding:[0],onClick:r,icon:"reload",flavour:"borderless",label:"Retry fetching anomalies for the same timeframe",height:"initial",width:"initial"})))},$=e=>{let{error:t,loading:a,hasData:o}=e;return t?n.createElement(d.TextSmall,null,"No data"===t?"No data for this period. Try highlighting an other area.":t.errorMessage||"Something went wrong"):a?n.createElement(d.TextSmall,null,"Searching for anomalies..."):o?n.createElement(d.TextSmall,{color:"textDescription"},"Anomalous metrics in the selected timeframe sorted from most anomalous to least."):n.createElement(d.TextSmall,null,"You haven't highlighted any timeframe yet.")},Q=(0,n.forwardRef)(((e,t)=>{let{error:a,loading:o,hasData:r,onRetry:l,totalDimensionsCount:i,...s}=e;return n.createElement(d.Flex,(0,w.A)({ref:t,column:!0,gap:2,padding:[4],background:"sideBar"},s),n.createElement(d.Flex,{gap:1,alignItems:"baseline"},n.createElement(d.H4,null,i?"".concat(i," "):"","Anomalous metrics"),n.createElement(R,null)),n.createElement($,{hasData:r,loading:o,error:a}),a?n.createElement(X,{onRetry:l}):n.createElement(j,{animate:o}))})),ee=(0,n.forwardRef)(((e,t)=>{const a=(0,o.w7)({extraKey:"anomalies"}),{loaded:r,loading:l,error:i,totalDimensionsCount:s}=(0,N.G9)({nodeIds:a,flavour:"anomaly"}),{sendLog:d,isReady:c}=(0,P.A)(),m=(0,n.useRef)();return(0,n.useEffect)((()=>{null!==m&&void 0!==m&&m.current||!c||!r||(d({feature:"AnomalyAdvisor",...!i&&r?{isSuccess:!0}:{},...i?{isFailue:!0}:{},...r?{totalDimensionsCount:s}:{}}),m.current=!0)}),[l,r,i,d,c]),n.createElement(Q,(0,w.A)({ref:t,loading:l,error:i,hasData:r,totalDimensionsCount:s},e))})),te={"anomaly_detection.anomaly_rate":{name:"Anomaly Rate",info:"This is the percentage of metrics that are anomalous."},"anomaly_detection.dimensions":{name:"Count of Anomalous Metrics",info:"Variance in the amount of anomalous metrics over time could indicate unexpected behavior that merits investigation."},"anomaly_detection.detector_events":{name:"Anomaly Events Detected ",info:"An anomaly event is a period of time when a node has persistently elevated anomaly rates across all metrics. This may indicate unexpected behavior that merits investigation."}},ae={"Anomaly advisor":{showAR:!1,name:"Anomaly advisor",info:n.createElement(d.Flex,{column:!0,gap:2},n.createElement(d.TextSmall,{color:"sectionDescription"},"Machine Learning powered automated anomaly detection running at the edge."),n.createElement(d.TextSmall,{color:"sectionDescription"},"Use this page as a starting point to explore potential anomalies. Learn more on"," ",n.createElement(g.A,{Component:d.TextSmall,href:"https://learn.netdata.cloud/docs/cloud/insights/anomaly-advisor",target:"_blank",rel:"noopener noreferrer"},"how to")," ","use Anomaly Advisor."),n.createElement(d.Flex,{gap:1,alignItems:"center"},n.createElement(d.Icon,{name:"highlightArea",color:"sectionDescription",size:"small"}),n.createElement(d.TextSmall,{color:"sectionDescription"},"Highlight a time-frame of interest to explore potential anomalies.")))},"Anomalous metrics":{info:n.createElement(ee,null)}},ne=Object.keys(te),oe=function(e,t){let{os:a,extraKey:n}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={};const{menuGroups:r,subMenus:l,menuGroupChartIds:i}=((e,t)=>{const a={},n={},o={};return ne.forEach(((e,a)=>{t[e]={chartId:e,id:"Anomaly advisor",subMenuId:e,priority:-(a+1)}})),e.forEach(((e,a)=>{t[e]={chartId:e,id:"Anomalous metrics",subMenuId:e,priority:a+1}})),[...ne,...e].forEach((e=>{const r=t[e],l="".concat(r.id,"|").concat(r.subMenuId);n[l]||(n[l]=[]),a[r.id]||(a[r.id]=new Set),o[r.id]||(o[r.id]=[]),r.chartId&&(n[l].push(r.chartId),o[r.id].push(r.chartId)),l&&a[r.id].add(l)})),{chartMenus:t,menuGroups:a,subMenus:n,menuGroupChartIds:o}})(e,o),s={},d=Object.keys(r).reduce(((e,t)=>{const a=i[t],l=[...r[t]],s=o[a[0]];return e[t]={...s,...ae[t],level:0,id:t,subMenuIds:l,subMenuChartIds:a,link:"".concat((0,z.A)("menu_".concat(t))),size:24,forceVisibility:!0,arFlavour:"anomaly",extraKey:n},e}),{}),c=Object.keys(l).reduce(((e,t)=>{const a=l[t];if(!a.length)return e;const r=o[a[0]],{id:i}=d[r.id],[s,c]=r.chartId.split("::"),m=te[r.chartId];return e[t]={...r,name:c?"".concat(s," > ").concat(c):s,...m,level:1,id:t,menuGroupId:i,chartIds:a,link:"".concat((0,z.A)("menu_".concat(r.id,"_submenu_").concat(r.subMenuId))),size:24,forceVisibility:!0,arFlavour:"anomaly",showAR:!m,extraKey:n},e}),{}),m=Object.keys(r),h={},u=m.reduce(((e,t)=>{const n=d[t];return h[n.id]=!0,[...e,{...n,sticky:!0},...d[t].subMenuIds.reduce(((e,n)=>[...e,{...c[n],sticky:!0},...c[n].chartIds.map((e=>{const r=o[e];if(r)return s[e]=(0,B.Ay)({...r,id:e,context:e},{menuId:t,subMenuId:n,sectionInfo:c[n].info},{os:a}),{...s[e],level:2,size:365,menuKey:d[t].id,forceVisibility:!0}}))]),[])]}),[]);return o=null,{stickyIds:h,allElements:u,menuGroupIds:m,menuGroupById:d,subMenuById:c,menuItemAttributesById:s}};var re=a(79566),le=a(72253),ie=a(56489),se=a(67602),de=a(44741),ce=a(10952),me=a(12412);const he=e=>{let{id:t,...a}=e;return n.createElement(de.k,(0,w.A)({id:t},a),n.createElement(ce._,{id:t}),n.createElement(me.G,{id:t}))},ue=(0,n.memo)(he);var pe=a(31438),Le=a(80925),fe=a(36196),ge=(a(3064),a(72577),a(28973)),ye=a(13752),ve=a(92815),Ee=a(72582),Me=a(540),be=new(m())({id:"dashboard_add_chart",use:"dashboard_add_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="dashboard_add_chart"><path d="M20.333 14.844V7.978l-3.889-3.89-6.666 6.667-2.223-2.222-3.888 3.89v3.4a4.514 4.514 0 0 0 4.51 4.51H13.4a5.066 5.066 0 0 1-.722-1.666h-4.5a2.85 2.85 0 0 1-2.845-2.845v-2.71l2.222-2.223 2.223 2.222 6.666-6.667 2.223 2.223v5.177a3.692 3.692 0 0 0-1.112-.177 3.893 3.893 0 0 0-3.889 3.888 3.893 3.893 0 0 0 3.89 3.89 3.893 3.893 0 0 0 3.888-3.89 3.85 3.85 0 0 0-1.11-2.71m-.555 3.545h-1.39v1.389h-1.666v-1.39h-1.389v-1.666h1.39v-1.389h1.666v1.39h1.389z" /></symbol>'});u().add(be);const Ae=be;var we=a(6504),xe=a(22332),Ce=a(46741);const ke=e=>{const{handleOpenModal:t}=(0,Me.A)("addToDashboardModal"),a=(0,xe.useChart)(),o=()=>{const e=a.getAttribute("id");t("",{chartId:e})},r=(0,Ce.JT)("dashboard:Update");return(0,n.useLayoutEffect)((()=>a.onKeyChange(["Alt","Shift","KeyD"],r?o:()=>{})),[r]),n.createElement(we.Button,(0,w.A)({icon:n.createElement(we.default,{svg:Ae,size:"16px"}),onClick:r?o:()=>{},title:r?"Add to dashboard":"You need to be logged in to create your custom dashboards and use this chart in them","data-testid":"chartHeaderToolbox-addDashboard",disabled:!r},e))},Ie=(0,n.memo)(ke);var Ze=a(83465);const De=(e,t)=>e&&e.getRoot().getChildren().find((e=>e.match({id:"anomalies-".concat(t)}))),_e=e=>t=>"overview-page::".concat(e.getAttribute("id"),"::").concat(t),He=e=>{let{id:t,...a}=e;const o=(0,k.ID)(),{height:r=0,...l}=(0,pe.aA)(t),i=(0,Le.e)(),{sendLog:s,isReady:d}=(0,P.A)(),c=(0,n.useMemo)((()=>{const e=De(i,o),a=Object.keys(te);let n=e.getNode({id:t});if(n)return n;const[s,d]=t.split("::");return n=i.makeChart({attributes:{contextScope:[s],height:(0,Ze.Oq)(e,t,r+260),id:t,roomId:o,selectedDimensions:d?[d]:[],groupBy:a.includes(t)?["node"]:["dimension"],...l},makeTrack:_e}),e.appendChild(n),n}),[i,o,t]);return(0,n.useEffect)((()=>{c&&d&&"function"===typeof s&&c.updateAttribute("logOptions",{sendLog:s,payload:{feature:"AnomalyAdvisor"}})}),[c,s,d]),n.createElement(fe.A,(0,w.A)({margin:[0,0,2],chart:c,"data-chartid":t,"data-track":c.track("container"),height:"300px",width:"100%"},a))},Te=n.memo(He,((e,t)=>e.id===t.id)),ze=e=>{let{id:t,subMenuId:a,...o}=e;return n.createElement(Te,(0,w.A)({id:t,role:"graphics-object","aria-roledescription":"chart","data-submenuid":a},o))},Be=(0,n.memo)(ze);var Ne=a(74258),Se=a(37031),Fe=a(6551);const Ve=e=>{let{id:t}=e;return n.createElement(Ne.t,{gap:0,id:t},n.createElement(Se.t,{id:t,margin:[1,0,0]}),n.createElement(Fe.X,{id:t}))},Re=(0,n.memo)(Ve),Ge=e=>{switch(e.level){case 0:return ue;case 1:return Re;case 2:return Be;default:return null}},Oe=e=>{let{onChartNameChange:t,initialChartName:a,dashboardOptions:o,linkToGo:r,contextToGo:l,...i}=e;const[s,,,d]=(0,se.A)("addToDashboardModal"),{setActiveMenuGroupId:c,setActiveSubMenuId:m}=(0,re.A)({onChartNameChange:t,initialChartName:a,linkToGo:r,contextToGo:l});return n.createElement(D.H,i,n.createElement(le.A,{onActiveMenuGroupId:c,onActiveSubMenuId:m,getComponent:Ge,dashboardOptions:o,initialChartName:a,checkVisibility:()=>!0}),s&&n.createElement(ie.A,{onClose:d}))},Ue=["alerts","info","config"],je=e=>{let{nodeIds:t}=e;const a=(0,Z.vt)(),o=(0,k.ID)(),[r,l,i,,s,d]=(0,_.Ay)(a,o,t),c=!l.length||!!s,m=(0,I.yO)(o,i),[h,{width:u}]=(0,x.A)(),[p,{height:L}]=(0,x.A)(),f=(0,n.useMemo)((()=>Math.ceil((L+32)/4)),[L]);((e,t,a)=>{let{width:o,host:r}=a;if(!r)throw"No host provided";const l=(0,Le.e)();(0,n.useMemo)((()=>{if(!l||!e)return;let a=De(l,e);return a?void 0:(a=l.makeContainer({attributes:{id:"anomalies-".concat(e),roomId:e,host:r,overlays:{proceeded:{type:"proceeded"}},nodesScope:t,containerWidth:o,toolboxElements:[Ee.default,ye.default,ve.default,Ie]}}),l.appendChild(a),(0,ge.unregister)((0,Ze.ml)(l,a)))}),[l,r,e,t]),(0,n.useEffect)((()=>{if(!l||!e)return;let a=De(l,e);a&&a.getNodes().forEach((e=>{e.updateAttribute("nodesScope",t),e.getAttribute("active")&&"chart"===e.type&&e.trigger("fetch")}))}),[l,e,t]),(0,n.useEffect)((()=>()=>{if(!l||!e)return;let t=De(l,e);t&&t.destroy()}),[e])})(o,t,{host:(0,Z.dg)()?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(a,"/rooms/").concat(o),width:u});const[g,y]=(0,H.N9)("chartName",{key:o,extraKey:"anomalies",flavour:"val"}),[v,E]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{E(!!l.length)}),[l.length]),n.createElement(D.A,{getObject:m,ids:r,getMenu:oe,extraKey:"anomalies"},n.createElement(C.A,{ref:h,position:"relative",sidebar:n.createElement(T.Ay,{nodeIds:t,title:"Anomalies",initialChartName:g,hiddenTabs:Ue,flavour:"anomalies",loaded:!0,hasSearch:!1})},n.createElement(Oe,(0,w.A)({initialChartName:g,onChartNameChange:y,linkToGo:v&&(0,z.A)("menu_Anomalous metrics")},c&&{padding:[0,0,f,4]})),c&&n.createElement(ee,{ref:p,position:"absolute",bottom:0,right:0,left:0,zIndex:35,onRetry:d})))},Ke=()=>{const e=(0,o.w7)({extraKey:"anomalies",merge:!1,scoped:!0}),t=(0,s.CK)(),a=(0,s.nj)(),{predicting:d}=(e=>{const t=(0,r.BU)(),a=(0,r.Gt)(t);return(0,n.useMemo)((()=>a.reduce(((t,a)=>{const{capabilities:{ml:n}}=a;return null!==n&&void 0!==n&&n.enabled?t.predicting=[...t.predicting,l(a,e)]:t.incapable=[...t.incapable,l(a,e)],t}),{predicting:[],incapable:[]})),[t.length,e])})("id");if(a&&!t.length)return n.createElement(q.Ay,{feature:"Anomalies",mode:"NoNodesView"},n.createElement(i.A,null));const c=d.length>0;return a&&!c?n.createElement(q.Ay,{feature:"Anomalies",mode:"NoConfiguredNodesView"},n.createElement(A,null)):n.createElement(q.Ay,{feature:"Anomalies"},n.createElement(je,{nodeIds:e}))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3296.66994eada739315fc37e.chunk.js b/src/web/gui/v2/3296.66994eada739315fc37e.chunk.js
new file mode 100644
index 000000000..797b7fda1
--- /dev/null
+++ b/src/web/gui/v2/3296.66994eada739315fc37e.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8dffaa50-3856-4167-ad28-92ce19cd96d2",e._sentryDebugIdIdentifier="sentry-dbid-8dffaa50-3856-4167-ad28-92ce19cd96d2")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3296],{97916:(e,t,r)=>{var n=r(76080),s=r(69565),a=r(48981),i=r(96319),o=r(44209),u=r(33517),h=r(26198),f=r(97040),l=r(70081),c=r(50851),p=Array;e.exports=function(e){var t=a(e),r=u(this),g=arguments.length,d=g>1?arguments[1]:void 0,m=void 0!==d;m&&(d=n(d,g>2?arguments[2]:void 0));var v,b,w,y,P,S,k=c(t),U=0;if(!k||this===p&&o(k))for(v=h(t),b=r?new this(v):p(v);v>U;U++)S=m?d(t[U],U):t[U],f(b,U,S);else for(P=(y=l(t,k)).next,b=r?new this:[];!(w=s(P,y)).done;U++)S=m?i(y,d,[w.value,U],!0):w.value,f(b,U,S);return b.length=U,b}},44213:(e,t,r)=>{var n=r(43724),s=r(79504),a=r(69565),i=r(79039),o=r(71072),u=r(33717),h=r(48773),f=r(48981),l=r(47055),c=Object.assign,p=Object.defineProperty,g=s([].concat);e.exports=!c||i((function(){if(n&&1!==c({b:1},c(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol("assign detection"),s="abcdefghijklmnopqrst";return e[r]=7,s.split("").forEach((function(e){t[e]=e})),7!==c({},e)[r]||o(c({},t)).join("")!==s}))?function(e,t){for(var r=f(e),s=arguments.length,i=1,c=u.f,p=h.f;s>i;)for(var d,m=l(arguments[i++]),v=c?g(o(m),c(m)):o(m),b=v.length,w=0;b>w;)d=v[w++],n&&!a(p,m,d)||(r[d]=m[d]);return r}:c},3717:(e,t,r)=>{var n=r(79504),s=2147483647,a=/[^\0-\u007E]/,i=/[.\u3002\uFF0E\uFF61]/g,o="Overflow: input needs wider integers to process",u=RangeError,h=n(i.exec),f=Math.floor,l=String.fromCharCode,c=n("".charCodeAt),p=n([].join),g=n([].push),d=n("".replace),m=n("".split),v=n("".toLowerCase),b=function(e){return e+22+75*(e<26)},w=function(e,t,r){var n=0;for(e=r?f(e/700):e>>1,e+=f(e/t);e>455;)e=f(e/35),n+=36;return f(n+36*e/(e+38))},y=function(e){var t=[];e=function(e){for(var t=[],r=0,n=e.length;r<n;){var s=c(e,r++);if(s>=55296&&s<=56319&&r<n){var a=c(e,r++);56320===(64512&a)?g(t,((1023&s)<<10)+(1023&a)+65536):(g(t,s),r--)}else g(t,s)}return t}(e);var r,n,a=e.length,i=128,h=0,d=72;for(r=0;r<e.length;r++)(n=e[r])<128&&g(t,l(n));var m=t.length,v=m;for(m&&g(t,"-");v<a;){var y=s;for(r=0;r<e.length;r++)(n=e[r])>=i&&n<y&&(y=n);var P=v+1;if(y-i>f((s-h)/P))throw new u(o);for(h+=(y-i)*P,i=y,r=0;r<e.length;r++){if((n=e[r])<i&&++h>s)throw new u(o);if(n===i){for(var S=h,k=36;;){var U=k<=d?1:k>=d+26?26:k-d;if(S<U)break;var R=S-U,H=36-U;g(t,l(b(U+R%H))),S=f(R/H),k+=36}g(t,l(b(S))),d=w(h,P,v===m),h=0,v++}}h++,i++}return p(t,"")};e.exports=function(e){var t,r,n=[],s=m(d(v(e),i,"."),".");for(t=0;t<s.length;t++)r=s[t],g(n,h(a,r)?"xn--"+y(r):r);return p(n,".")}},47764:(e,t,r)=>{var n=r(68183).charAt,s=r(655),a=r(91181),i=r(51088),o=r(62529),u="String Iterator",h=a.set,f=a.getterFor(u);i(String,"String",(function(e){h(this,{type:u,string:s(e),index:0})}),(function(){var e,t=f(this),r=t.string,s=t.index;return s>=r.length?o(void 0,!0):(e=n(r,s),t.index+=e.length,o(e,!1))}))},45806:(e,t,r)=>{r(47764);var n,s=r(46518),a=r(43724),i=r(67416),o=r(24475),u=r(76080),h=r(79504),f=r(36840),l=r(62106),c=r(90679),p=r(39297),g=r(44213),d=r(97916),m=r(67680),v=r(68183).codeAt,b=r(3717),w=r(655),y=r(10687),P=r(22812),S=r(98406),k=r(91181),U=k.set,R=k.getterFor("URL"),H=S.URLSearchParams,L=S.getState,q=o.URL,B=o.TypeError,A=o.parseInt,C=Math.floor,I=Math.pow,j=h("".charAt),x=h(/./.exec),O=h([].join),E=h(1..toString),_=h([].pop),z=h([].push),F=h("".replace),$=h([].shift),D=h("".split),M=h("".slice),N=h("".toLowerCase),T=h([].unshift),J="Invalid scheme",Y="Invalid host",G="Invalid port",K=/[a-z]/i,Q=/[\d+-.a-z]/i,V=/\d/,W=/^0x/i,X=/^[0-7]+$/,Z=/^\d+$/,ee=/^[\da-f]+$/i,te=/[\0\t\n\r #%/:<>?@[\\\]^|]/,re=/[\0\t\n\r #/:<>?@[\\\]^|]/,ne=/^[\u0000-\u0020]+/,se=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ae=/[\t\n\r]/g,ie=function(e){var t,r,n,s;if("number"==typeof e){for(t=[],r=0;r<4;r++)T(t,e%256),e=C(e/256);return O(t,".")}if("object"==typeof e){for(t="",n=function(e){for(var t=null,r=1,n=null,s=0,a=0;a<8;a++)0!==e[a]?(s>r&&(t=n,r=s),n=null,s=0):(null===n&&(n=a),++s);return s>r&&(t=n,r=s),t}(e),r=0;r<8;r++)s&&0===e[r]||(s&&(s=!1),n===r?(t+=r?":":"::",s=!0):(t+=E(e[r],16),r<7&&(t+=":")));return"["+t+"]"}return e},oe={},ue=g({},oe,{" ":1,'"':1,"<":1,">":1,"`":1}),he=g({},ue,{"#":1,"?":1,"{":1,"}":1}),fe=g({},he,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),le=function(e,t){var r=v(e,0);return r>32&&r<127&&!p(t,e)?e:encodeURIComponent(e)},ce={ftp:21,file:null,http:80,https:443,ws:80,wss:443},pe=function(e,t){var r;return 2===e.length&&x(K,j(e,0))&&(":"===(r=j(e,1))||!t&&"|"===r)},ge=function(e){var t;return e.length>1&&pe(M(e,0,2))&&(2===e.length||"/"===(t=j(e,2))||"\\"===t||"?"===t||"#"===t)},de=function(e){return"."===e||"%2e"===N(e)},me={},ve={},be={},we={},ye={},Pe={},Se={},ke={},Ue={},Re={},He={},Le={},qe={},Be={},Ae={},Ce={},Ie={},je={},xe={},Oe={},Ee={},_e=function(e,t,r){var n,s,a,i=w(e);if(t){if(s=this.parse(i))throw new B(s);this.searchParams=null}else{if(void 0!==r&&(n=new _e(r,!0)),s=this.parse(i,null,n))throw new B(s);(a=L(new H)).bindURL(this),this.searchParams=a}};_e.prototype={type:"URL",parse:function(e,t,r){var s,a,i,o,u,h=this,f=t||me,l=0,c="",g=!1,v=!1,b=!1;for(e=w(e),t||(h.scheme="",h.username="",h.password="",h.host=null,h.port=null,h.path=[],h.query=null,h.fragment=null,h.cannotBeABaseURL=!1,e=F(e,ne,""),e=F(e,se,"$1")),e=F(e,ae,""),s=d(e);l<=s.length;){switch(a=s[l],f){case me:if(!a||!x(K,a)){if(t)return J;f=be;continue}c+=N(a),f=ve;break;case ve:if(a&&(x(Q,a)||"+"===a||"-"===a||"."===a))c+=N(a);else{if(":"!==a){if(t)return J;c="",f=be,l=0;continue}if(t&&(h.isSpecial()!==p(ce,c)||"file"===c&&(h.includesCredentials()||null!==h.port)||"file"===h.scheme&&!h.host))return;if(h.scheme=c,t)return void(h.isSpecial()&&ce[h.scheme]===h.port&&(h.port=null));c="","file"===h.scheme?f=Be:h.isSpecial()&&r&&r.scheme===h.scheme?f=we:h.isSpecial()?f=ke:"/"===s[l+1]?(f=ye,l++):(h.cannotBeABaseURL=!0,z(h.path,""),f=xe)}break;case be:if(!r||r.cannotBeABaseURL&&"#"!==a)return J;if(r.cannotBeABaseURL&&"#"===a){h.scheme=r.scheme,h.path=m(r.path),h.query=r.query,h.fragment="",h.cannotBeABaseURL=!0,f=Ee;break}f="file"===r.scheme?Be:Pe;continue;case we:if("/"!==a||"/"!==s[l+1]){f=Pe;continue}f=Ue,l++;break;case ye:if("/"===a){f=Re;break}f=je;continue;case Pe:if(h.scheme=r.scheme,a===n)h.username=r.username,h.password=r.password,h.host=r.host,h.port=r.port,h.path=m(r.path),h.query=r.query;else if("/"===a||"\\"===a&&h.isSpecial())f=Se;else if("?"===a)h.username=r.username,h.password=r.password,h.host=r.host,h.port=r.port,h.path=m(r.path),h.query="",f=Oe;else{if("#"!==a){h.username=r.username,h.password=r.password,h.host=r.host,h.port=r.port,h.path=m(r.path),h.path.length--,f=je;continue}h.username=r.username,h.password=r.password,h.host=r.host,h.port=r.port,h.path=m(r.path),h.query=r.query,h.fragment="",f=Ee}break;case Se:if(!h.isSpecial()||"/"!==a&&"\\"!==a){if("/"!==a){h.username=r.username,h.password=r.password,h.host=r.host,h.port=r.port,f=je;continue}f=Re}else f=Ue;break;case ke:if(f=Ue,"/"!==a||"/"!==j(c,l+1))continue;l++;break;case Ue:if("/"!==a&&"\\"!==a){f=Re;continue}break;case Re:if("@"===a){g&&(c="%40"+c),g=!0,i=d(c);for(var y=0;y<i.length;y++){var P=i[y];if(":"!==P||b){var S=le(P,fe);b?h.password+=S:h.username+=S}else b=!0}c=""}else if(a===n||"/"===a||"?"===a||"#"===a||"\\"===a&&h.isSpecial()){if(g&&""===c)return"Invalid authority";l-=d(c).length+1,c="",f=He}else c+=a;break;case He:case Le:if(t&&"file"===h.scheme){f=Ce;continue}if(":"!==a||v){if(a===n||"/"===a||"?"===a||"#"===a||"\\"===a&&h.isSpecial()){if(h.isSpecial()&&""===c)return Y;if(t&&""===c&&(h.includesCredentials()||null!==h.port))return;if(o=h.parseHost(c))return o;if(c="",f=Ie,t)return;continue}"["===a?v=!0:"]"===a&&(v=!1),c+=a}else{if(""===c)return Y;if(o=h.parseHost(c))return o;if(c="",f=qe,t===Le)return}break;case qe:if(!x(V,a)){if(a===n||"/"===a||"?"===a||"#"===a||"\\"===a&&h.isSpecial()||t){if(""!==c){var k=A(c,10);if(k>65535)return G;h.port=h.isSpecial()&&k===ce[h.scheme]?null:k,c=""}if(t)return;f=Ie;continue}return G}c+=a;break;case Be:if(h.scheme="file","/"===a||"\\"===a)f=Ae;else{if(!r||"file"!==r.scheme){f=je;continue}switch(a){case n:h.host=r.host,h.path=m(r.path),h.query=r.query;break;case"?":h.host=r.host,h.path=m(r.path),h.query="",f=Oe;break;case"#":h.host=r.host,h.path=m(r.path),h.query=r.query,h.fragment="",f=Ee;break;default:ge(O(m(s,l),""))||(h.host=r.host,h.path=m(r.path),h.shortenPath()),f=je;continue}}break;case Ae:if("/"===a||"\\"===a){f=Ce;break}r&&"file"===r.scheme&&!ge(O(m(s,l),""))&&(pe(r.path[0],!0)?z(h.path,r.path[0]):h.host=r.host),f=je;continue;case Ce:if(a===n||"/"===a||"\\"===a||"?"===a||"#"===a){if(!t&&pe(c))f=je;else if(""===c){if(h.host="",t)return;f=Ie}else{if(o=h.parseHost(c))return o;if("localhost"===h.host&&(h.host=""),t)return;c="",f=Ie}continue}c+=a;break;case Ie:if(h.isSpecial()){if(f=je,"/"!==a&&"\\"!==a)continue}else if(t||"?"!==a)if(t||"#"!==a){if(a!==n&&(f=je,"/"!==a))continue}else h.fragment="",f=Ee;else h.query="",f=Oe;break;case je:if(a===n||"/"===a||"\\"===a&&h.isSpecial()||!t&&("?"===a||"#"===a)){if(".."===(u=N(u=c))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(h.shortenPath(),"/"===a||"\\"===a&&h.isSpecial()||z(h.path,"")):de(c)?"/"===a||"\\"===a&&h.isSpecial()||z(h.path,""):("file"===h.scheme&&!h.path.length&&pe(c)&&(h.host&&(h.host=""),c=j(c,0)+":"),z(h.path,c)),c="","file"===h.scheme&&(a===n||"?"===a||"#"===a))for(;h.path.length>1&&""===h.path[0];)$(h.path);"?"===a?(h.query="",f=Oe):"#"===a&&(h.fragment="",f=Ee)}else c+=le(a,he);break;case xe:"?"===a?(h.query="",f=Oe):"#"===a?(h.fragment="",f=Ee):a!==n&&(h.path[0]+=le(a,oe));break;case Oe:t||"#"!==a?a!==n&&("'"===a&&h.isSpecial()?h.query+="%27":h.query+="#"===a?"%23":le(a,oe)):(h.fragment="",f=Ee);break;case Ee:a!==n&&(h.fragment+=le(a,ue))}l++}},parseHost:function(e){var t,r,n;if("["===j(e,0)){if("]"!==j(e,e.length-1))return Y;if(t=function(e){var t,r,n,s,a,i,o,u=[0,0,0,0,0,0,0,0],h=0,f=null,l=0,c=function(){return j(e,l)};if(":"===c()){if(":"!==j(e,1))return;l+=2,f=++h}for(;c();){if(8===h)return;if(":"!==c()){for(t=r=0;r<4&&x(ee,c());)t=16*t+A(c(),16),l++,r++;if("."===c()){if(0===r)return;if(l-=r,h>6)return;for(n=0;c();){if(s=null,n>0){if(!("."===c()&&n<4))return;l++}if(!x(V,c()))return;for(;x(V,c());){if(a=A(c(),10),null===s)s=a;else{if(0===s)return;s=10*s+a}if(s>255)return;l++}u[h]=256*u[h]+s,2!==++n&&4!==n||h++}if(4!==n)return;break}if(":"===c()){if(l++,!c())return}else if(c())return;u[h++]=t}else{if(null!==f)return;l++,f=++h}}if(null!==f)for(i=h-f,h=7;0!==h&&i>0;)o=u[h],u[h--]=u[f+i-1],u[f+--i]=o;else if(8!==h)return;return u}(M(e,1,-1)),!t)return Y;this.host=t}else if(this.isSpecial()){if(e=b(e),x(te,e))return Y;if(t=function(e){var t,r,n,s,a,i,o,u=D(e,".");if(u.length&&""===u[u.length-1]&&u.length--,(t=u.length)>4)return e;for(r=[],n=0;n<t;n++){if(""===(s=u[n]))return e;if(a=10,s.length>1&&"0"===j(s,0)&&(a=x(W,s)?16:8,s=M(s,8===a?1:2)),""===s)i=0;else{if(!x(10===a?Z:8===a?X:ee,s))return e;i=A(s,a)}z(r,i)}for(n=0;n<t;n++)if(i=r[n],n===t-1){if(i>=I(256,5-t))return null}else if(i>255)return null;for(o=_(r),n=0;n<r.length;n++)o+=r[n]*I(256,3-n);return o}(e),null===t)return Y;this.host=t}else{if(x(re,e))return Y;for(t="",r=d(e),n=0;n<r.length;n++)t+=le(r[n],oe);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"===this.scheme},includesCredentials:function(){return""!==this.username||""!==this.password},isSpecial:function(){return p(ce,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"===this.scheme&&1===t&&pe(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,r=e.username,n=e.password,s=e.host,a=e.port,i=e.path,o=e.query,u=e.fragment,h=t+":";return null!==s?(h+="//",e.includesCredentials()&&(h+=r+(n?":"+n:"")+"@"),h+=ie(s),null!==a&&(h+=":"+a)):"file"===t&&(h+="//"),h+=e.cannotBeABaseURL?i[0]:i.length?"/"+O(i,"/"):"",null!==o&&(h+="?"+o),null!==u&&(h+="#"+u),h},setHref:function(e){var t=this.parse(e);if(t)throw new B(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"===e)try{return new ze(e.path[0]).origin}catch(r){return"null"}return"file"!==e&&this.isSpecial()?e+"://"+ie(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(w(e)+":",me)},getUsername:function(){return this.username},setUsername:function(e){var t=d(w(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var r=0;r<t.length;r++)this.username+=le(t[r],fe)}},getPassword:function(){return this.password},setPassword:function(e){var t=d(w(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var r=0;r<t.length;r++)this.password+=le(t[r],fe)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?ie(e):ie(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,He)},getHostname:function(){var e=this.host;return null===e?"":ie(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,Le)},getPort:function(){var e=this.port;return null===e?"":w(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""===(e=w(e))?this.port=null:this.parse(e,qe))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+O(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,Ie))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""===(e=w(e))?this.query=null:("?"===j(e,0)&&(e=M(e,1)),this.query="",this.parse(e,Oe)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!==(e=w(e))?("#"===j(e,0)&&(e=M(e,1)),this.fragment="",this.parse(e,Ee)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var ze=function(e){var t=c(this,Fe),r=P(arguments.length,1)>1?arguments[1]:void 0,n=U(t,new _e(e,!1,r));a||(t.href=n.serialize(),t.origin=n.getOrigin(),t.protocol=n.getProtocol(),t.username=n.getUsername(),t.password=n.getPassword(),t.host=n.getHost(),t.hostname=n.getHostname(),t.port=n.getPort(),t.pathname=n.getPathname(),t.search=n.getSearch(),t.searchParams=n.getSearchParams(),t.hash=n.getHash())},Fe=ze.prototype,$e=function(e,t){return{get:function(){return R(this)[e]()},set:t&&function(e){return R(this)[t](e)},configurable:!0,enumerable:!0}};if(a&&(l(Fe,"href",$e("serialize","setHref")),l(Fe,"origin",$e("getOrigin")),l(Fe,"protocol",$e("getProtocol","setProtocol")),l(Fe,"username",$e("getUsername","setUsername")),l(Fe,"password",$e("getPassword","setPassword")),l(Fe,"host",$e("getHost","setHost")),l(Fe,"hostname",$e("getHostname","setHostname")),l(Fe,"port",$e("getPort","setPort")),l(Fe,"pathname",$e("getPathname","setPathname")),l(Fe,"search",$e("getSearch","setSearch")),l(Fe,"searchParams",$e("getSearchParams")),l(Fe,"hash",$e("getHash","setHash"))),f(Fe,"toJSON",(function(){return R(this).serialize()}),{enumerable:!0}),f(Fe,"toString",(function(){return R(this).serialize()}),{enumerable:!0}),q){var De=q.createObjectURL,Me=q.revokeObjectURL;De&&f(ze,"createObjectURL",u(De,q)),Me&&f(ze,"revokeObjectURL",u(Me,q))}y(ze,"URL"),s({global:!0,constructor:!0,forced:!i,sham:!a},{URL:ze})},3296:(e,t,r)=>{r(45806)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3350.24934ec57134cbef07bf.chunk.js b/src/web/gui/v2/3350.24934ec57134cbef07bf.chunk.js
new file mode 100644
index 000000000..b89637ec2
--- /dev/null
+++ b/src/web/gui/v2/3350.24934ec57134cbef07bf.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ba0d91c9-d750-400a-93f6-e830a712bab3",e._sentryDebugIdIdentifier="sentry-dbid-ba0d91c9-d750-400a-93f6-e830a712bab3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3350],{92155:(e,t,a)=>{a.d(t,{A:()=>d});var n=a(58168),l=a(96540),r=a(50876);const o=e=>(0,l.forwardRef)(((t,a)=>{let{callback:o,feature:c,isStart:d,isSuccess:u,isFailure:i,eventReason:s,payload:f={},...b}=t;const{sendLog:g,isReady:m}=(0,r.A)(),y=(0,l.useCallback)((()=>{const e=b[o],t={feature:c,isStart:d,isSuccess:u,isFailure:i,eventReason:s,...f,...b["data-ga"]?{dataGa:b["data-ga"]}:{},...b.dataGa?{dataGa:b.dataGa}:{},...b["data-track"]?{dataTrack:b["data-track"]}:{},...b.label?{label:b.label}:{}};"function"==typeof e&&e(),g(t,!0)}),[o,g,m,f,b]),p=(0,l.useMemo)((()=>({...b,[o]:y})),[b,o,y]);return l.createElement(e,(0,n.A)({ref:a},p))}));var c=a(67276);const d=e=>(0,l.forwardRef)(((t,a)=>{let{payload:r={},...d}=t;const u=o(e);return l.createElement(u,(0,n.A)({},d,{ref:a,callback:"onClick",payload:{...r,action:c.o1.buttonClicked}}))}))},73350:(e,t,a)=>{a.r(t),a.d(t,{Trust:()=>f,default:()=>b});a(9391),a(25440),a(3064),a(98992),a(72577),a(62953);var n=a(96540),l=a(86663),r=a(10058),o=a(11604),c=a(28738),d=a(92155),u=a(50876),i=a(63314);const s=(0,d.A)(r.Button),f=()=>{const[e,t]=(0,n.useMemo)((()=>{const{search:e}=window.location,{redirect_uri:t,agent_uri:a}=l.parse(e);return[t,a]})),[a,d]=(0,n.useState)(),[f,b,g]=(0,o.LC)(),[m,y]=(0,o.Yr)({},[f]),{sendLog:p,isReady:w}=(0,u.A)();return(0,n.useEffect)((()=>{let a=!0,n=null;const l=m.find((e=>e.url===t));return l?p({feature:"TrustUrl",description:"Redirect due to trusted url"}).finally((()=>{location.replace("/api/v1/auth/account/origins/".concat(l.id,"/redirect?redirect_uri=").concat(encodeURIComponent(e),"&agent_uri=").concat(encodeURIComponent(t)))})):n=setTimeout((()=>{a&&d(!0)}),1e3),()=>{a=!1,n&&(clearTimeout(n),n=null)}}),[e,t,m,w]),a?n.createElement(i.Ay,{feature:"TrustUrl"},n.createElement(r.Layer,{full:!0},n.createElement(r.Flex,{"data-testid":"trust",alignItems:"center",justifyContent:"center",column:!0,width:"100%",height:"100%",background:"mainBackground",gap:4},n.createElement(c.m,{animate:g}),n.createElement(r.Text,{textAlign:"center"},"Do you trust ",n.createElement(r.Text,{strong:!0},t),"?"),n.createElement(r.Flex,{column:!0,gap:2,alignItems:"center"},n.createElement(r.TextBig,null,"Authorizing this URL will allow it to request your Netdata data."),n.createElement(r.Flex,{gap:2},n.createElement(s,{flavour:"borderless",onClick:()=>window.location.replace(decodeURIComponent(e)),disabled:y||g,"data-ga":"url-authorization::click-cancel-button",feature:"TrustUrl",payload:{label:"Cancel"}},"Cancel"),n.createElement(s,{onClick:()=>b(t),disabled:y||g,isLoading:y||g,"data-ga":"url-authorization::click-yes-button",feature:"TrustUrl",payload:{label:"Yes"}},"Yes")))))):n.createElement(c.A,null)},b=f}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3584.7b6df71f431fe58061ad.chunk.js b/src/web/gui/v2/3584.7b6df71f431fe58061ad.chunk.js
new file mode 100644
index 000000000..e573e50d9
--- /dev/null
+++ b/src/web/gui/v2/3584.7b6df71f431fe58061ad.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b17f2d39-c570-44c5-9051-da26373ff8ea",e._sentryDebugIdIdentifier="sentry-dbid-b17f2d39-c570-44c5-9051-da26373ff8ea")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3584],{48168:(e,t,n)=>{n.d(t,{m:()=>l});var r=n(25733),a=n(2940),i=n(49858),o=n(43924),s=n(2642),u=n(96519),c=n(82695),f=n(40215);function d(e,t,n){const d=(0,c.q)(),l=n?.locale??d.locale??u.c,D=(0,r.z)(e,t);if(isNaN(D))throw new RangeError("Invalid time value");const m=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:D});let N,g;D>0?(N=(0,s.a)(t),g=(0,s.a)(e)):(N=(0,s.a)(e),g=(0,s.a)(t));const w=(0,o.O)(g,N),h=((0,f.G)(g)-(0,f.G)(N))/1e3,b=Math.round((w-h)/60);let T;if(b<2)return n?.includeSeconds?w<5?l.formatDistance("lessThanXSeconds",5,m):w<10?l.formatDistance("lessThanXSeconds",10,m):w<20?l.formatDistance("lessThanXSeconds",20,m):w<40?l.formatDistance("halfAMinute",0,m):w<60?l.formatDistance("lessThanXMinutes",1,m):l.formatDistance("xMinutes",1,m):0===b?l.formatDistance("lessThanXMinutes",1,m):l.formatDistance("xMinutes",b,m);if(b<45)return l.formatDistance("xMinutes",b,m);if(b<90)return l.formatDistance("aboutXHours",1,m);if(b<a.F6){const e=Math.round(b/60);return l.formatDistance("aboutXHours",e,m)}if(b<2520)return l.formatDistance("xDays",1,m);if(b<a.Nw){const e=Math.round(b/a.F6);return l.formatDistance("xDays",e,m)}if(b<2*a.Nw)return T=Math.round(b/a.Nw),l.formatDistance("aboutXMonths",T,m);if(T=(0,i.W)(g,N),T<12){const e=Math.round(b/a.Nw);return l.formatDistance("xMonths",e,m)}{const e=T%12,t=Math.trunc(T/12);return e<3?l.formatDistance("aboutXYears",t,m):e<9?l.formatDistance("overXYears",t,m):l.formatDistance("almostXYears",t+1,m)}}function l(e,t){return d(e,Date.now(),t)}},63933:(e,t,n)=>{n.d(t,{R:()=>a});var r=n(2642);function a(e){return+(0,r.a)(e)<Date.now()}},84929:(e,t,n)=>{n.d(t,{H:()=>a});var r=n(2940);function a(e,t){const n=t?.additionalDigits??2,a=function(e){const t={},n=e.split(i.dateTimeDelimiter);let r;if(n.length>2)return t;/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],i.timeZoneDelimiter.test(t.date)&&(t.date=e.split(i.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length)));if(r){const e=i.timezone.exec(r);e?(t.time=r.replace(e[1],""),t.timezone=e[1]):t.time=r}return t}(e);let D;if(a.date){const e=function(e,t){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};const a=r[1]?parseInt(r[1]):null,i=r[2]?parseInt(r[2]):null;return{year:null===i?a:100*i,restDateString:e.slice((r[1]||r[2]).length)}}(a.date,n);D=function(e,t){if(null===t)return new Date(NaN);const n=e.match(o);if(!n)return new Date(NaN);const r=!!n[4],a=c(n[1]),i=c(n[2])-1,s=c(n[3]),u=c(n[4]),f=c(n[5])-1;if(r)return function(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}(0,u,f)?function(e,t,n){const r=new Date(0);r.setUTCFullYear(e,0,4);const a=r.getUTCDay()||7,i=7*(t-1)+n+1-a;return r.setUTCDate(r.getUTCDate()+i),r}(t,u,f):new Date(NaN);{const e=new Date(0);return function(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(d[t]||(l(e)?29:28))}(t,i,s)&&function(e,t){return t>=1&&t<=(l(e)?366:365)}(t,a)?(e.setUTCFullYear(t,i,Math.max(a,s)),e):new Date(NaN)}}(e.restDateString,e.year)}if(!D||isNaN(D.getTime()))return new Date(NaN);const m=D.getTime();let N,g=0;if(a.time&&(g=function(e){const t=e.match(s);if(!t)return NaN;const n=f(t[1]),a=f(t[2]),i=f(t[3]);if(!function(e,t,n){if(24===e)return 0===t&&0===n;return n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}(n,a,i))return NaN;return n*r.s0+a*r.Cg+1e3*i}(a.time),isNaN(g)))return new Date(NaN);if(!a.timezone){const e=new Date(m+g),t=new Date(0);return t.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),t.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),t}return N=function(e){if("Z"===e)return 0;const t=e.match(u);if(!t)return 0;const n="+"===t[1]?-1:1,a=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;if(!function(e,t){return t>=0&&t<=59}(0,i))return NaN;return n*(a*r.s0+i*r.Cg)}(a.timezone),isNaN(N)?new Date(NaN):new Date(m+g+N)}const i={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},o=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,s=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,u=/^([+-])(\d{2})(?::?(\d{2}))?$/;function c(e){return e?parseInt(e):1}function f(e){return e&&parseFloat(e.replace(",","."))||0}const d=[31,null,31,30,31,30,31,31,30,31,30,31];function l(e){return e%400===0||e%4===0&&e%100!==0}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3624.b8b5bc981ae890a8a5b8.chunk.js b/src/web/gui/v2/3624.b8b5bc981ae890a8a5b8.chunk.js
new file mode 100644
index 000000000..0d30c78ac
--- /dev/null
+++ b/src/web/gui/v2/3624.b8b5bc981ae890a8a5b8.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e6202709-5d45-4bfd-aa94-906c0c54a031",e._sentryDebugIdIdentifier="sentry-dbid-e6202709-5d45-4bfd-aa94-906c0c54a031")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3624],{83624:(e,t,n)=>{function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d(e);if(t){var i=d(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o=[],s=!0,a=!1;try{for(n=n.call(e);!(s=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);s=!0);}catch(e){a=!0,i=e}finally{try{s||null==n.return||n.return()}finally{if(a)throw i}}return o}}(e,t)||g(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,t):void 0}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=g(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}n.r(t),n.d(t,{Compression:()=>kr,PostHog:()=>gi,SurveyQuestionType:()=>mi,SurveyType:()=>vi,default:()=>bi,posthog:()=>bi});var y={DEBUG:!1,LIB_VERSION:"1.110.0"},b=Array.isArray,w=Object.prototype,k=w.hasOwnProperty,S=w.toString,F=b||function(e){return"[object Array]"===S.call(e)},R=function(e){return"[object Uint8Array]"===S.call(e)},P=function(e){return"function"==typeof e},E=function(e){return e===Object(e)&&!F(e)},x=function(e){return void 0===e},I=function(e){return"[object String]"==S.call(e)},C=function(e){return null===e},T=function(e){return x(e)||C(e)},$=function(e){return"[object Number]"==S.call(e)},O=function(e){return"[object Boolean]"===S.call(e)},A=function(e){return e instanceof FormData},q="undefined"!=typeof window?window:void 0,M="undefined"!=typeof globalThis?globalThis:q,D=Array.prototype,N=D.forEach,L=D.indexOf,B=null==M?void 0:M.navigator,j=null==M?void 0:M.document,H=null==M?void 0:M.location,U=null==M?void 0:M.fetch,V=null==M?void 0:M.XMLHttpRequest,W=null==B?void 0:B.userAgent,z=null!=q?q:{},G="[PostHog.js]",Q={_log:function(e){if(q&&(y.DEBUG||z.POSTHOG_DEBUG)&&!x(q.console)&&q.console){for(var t=("__rrweb_original__"in q.console[e]?q.console[e].__rrweb_original__:q.console[e]),n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];t.apply(void 0,[G].concat(r))}},info:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Q._log.apply(Q,["log"].concat(t))},warn:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Q._log.apply(Q,["warn"].concat(t))},error:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Q._log.apply(Q,["error"].concat(t))},critical:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];(e=console).error.apply(e,[G].concat(n))},uninitializedWarning:function(e){Q.error("You must initialize PostHog before calling ".concat(e))}},Y={},J=function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};function K(e,t,n){if(F(e))if(N&&e.forEach===N)e.forEach(t,n);else if("length"in e&&e.length===+e.length)for(var r=0,i=e.length;r<i;r++)if(r in e&&t.call(n,e[r],r)===Y)return}function X(e,t,n){if(!T(e)){if(F(e))return K(e,t,n);if(A(e)){var r,i=m(e.entries());try{for(i.s();!(r=i.n()).done;){var o=r.value;if(t.call(n,o[1],o[0])===Y)return}}catch(e){i.e(e)}finally{i.f()}}else for(var s in e)if(k.call(e,s)&&t.call(n,e[s],s)===Y)return}}var Z=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return K(n,(function(t){for(var n in t)void 0!==t[n]&&(e[n]=t[n])})),e};function ee(e,t){return-1!==e.indexOf(t)}function te(e){for(var t=Object.keys(e),n=t.length,r=new Array(n);n--;)r[n]=[t[n],e[t[n]]];return r}var ne=function(){return Date.now=Date.now||function(){return+new Date},Date.now()},re=function(e){try{return e()}catch(e){return}},ie=function(e){return function(){try{for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.apply(this,n)}catch(e){Q.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."),Q.critical(e)}}},oe=function(e){var t={};return X(e,(function(e,n){I(e)&&e.length>0&&(t[n]=e)})),t};function se(e){var t,n,r,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a=0,u=0,l="",c=[];if(!e)return e;e=ae(e);do{t=(o=e.charCodeAt(a++)<<16|e.charCodeAt(a++)<<8|e.charCodeAt(a++))>>18&63,n=o>>12&63,r=o>>6&63,i=63&o,c[u++]=s.charAt(t)+s.charAt(n)+s.charAt(r)+s.charAt(i)}while(a<e.length);switch(l=c.join(""),e.length%3){case 1:l=l.slice(0,-2)+"==";break;case 2:l=l.slice(0,-1)+"="}return l}var ae=function(e){var t,n,r,i,o="";for(t=n=0,r=(e=(e+"").replace(/\r\n/g,"\n").replace(/\r/g,"\n")).length,i=0;i<r;i++){var s=e.charCodeAt(i),a=null;s<128?n++:a=s>127&&s<2048?String.fromCharCode(s>>6|192,63&s|128):String.fromCharCode(s>>12|224,s>>6&63|128,63&s|128),C(a)||(n>t&&(o+=e.substring(t,n)),o+=a,t=n=i+1)}return n>t&&(o+=e.substring(t,e.length)),o},ue=function(){function e(t){return t&&(t.preventDefault=e.preventDefault,t.stopPropagation=e.stopPropagation),t}return e.preventDefault=function(){this.returnValue=!1},e.stopPropagation=function(){this.cancelBubble=!0},function(t,n,r,i,o){if(t)if(t.addEventListener&&!i)t.addEventListener(n,r,!!o);else{var s="on"+n,a=t[s];t[s]=function(t,n,r){return function(i){if(i=i||e(null==q?void 0:q.event)){var o,s=!0;P(r)&&(o=r(i));var a=n.call(t,i);return!1!==o&&!1!==a||(s=!1),s}}}(t,r,a)}else Q.error("No valid element provided to register_event")}}();function le(e,t){var n=function(){if(!j)return t("document not found");var n=j.createElement("script");n.type="text/javascript",n.src=e,n.onload=function(e){return t(void 0,e)},n.onerror=function(e){return t(e)};var r,i=j.querySelectorAll("body > script");i.length>0?null===(r=i[0].parentNode)||void 0===r||r.insertBefore(n,i[0]):j.body.appendChild(n)};null!=j&&j.body?n():null==j||j.addEventListener("DOMContentLoaded",n)}function ce(e){return e?J(e).split(/\s+/):[]}function de(e){var t="";switch(o(e.className)){case"string":t=e.className;break;case"object":t=("baseVal"in e.className?e.className.baseVal:null)||e.getAttribute("class")||"";break;default:t=""}return ce(t)}function fe(e){var t="";return be(e)&&!we(e)&&e.childNodes&&e.childNodes.length&&X(e.childNodes,(function(e){_e(e)&&e.textContent&&(t+=J(e.textContent).split(/(\s+)/).filter(ke).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255))})),J(t)}function he(e){return!!e&&1===e.nodeType}function pe(e,t){return!!e&&!!e.tagName&&e.tagName.toLowerCase()===t.toLowerCase()}function _e(e){return!!e&&3===e.nodeType}function ge(e){return!!e&&11===e.nodeType}var ve=["a","button","form","input","select","textarea","label"];function me(e){var t=e.parentNode;return!(!t||!he(t))&&t}function ye(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if(!q||!e||pe(e,"html")||!he(e))return!1;if(null!=n&&n.url_allowlist){var r=q.location.href,i=n.url_allowlist;if(i&&!i.some((function(e){return r.match(e)})))return!1}if(null!=n&&n.dom_event_allowlist){var s=n.dom_event_allowlist;if(s&&!s.some((function(e){return t.type===e})))return!1}for(var a=!1,u=[e],l=!0,c=e;c.parentNode&&!pe(c,"body");)if(ge(c.parentNode))u.push(c.parentNode.host),c=c.parentNode.host;else{if(!(l=me(c)))break;if(ve.indexOf(l.tagName.toLowerCase())>-1)a=!0;else{var d=q.getComputedStyle(l);d&&"pointer"===d.getPropertyValue("cursor")&&(a=!0)}u.push(l),c=l}if(!function(e,t){var n=null==t?void 0:t.element_allowlist;if(x(n))return!0;var r,i=m(e);try{var s=function(){var e=r.value;if(n.some((function(t){return e.tagName.toLowerCase()===t})))return{v:!0}};for(i.s();!(r=i.n()).done;){var a=s();if("object"===o(a))return a.v}}catch(e){i.e(e)}finally{i.f()}return!1}(u,n))return!1;if(!function(e,t){var n=null==t?void 0:t.css_selector_allowlist;if(x(n))return!0;var r,i=m(e);try{var s=function(){var e=r.value;if(n.some((function(t){return e.matches(t)})))return{v:!0}};for(i.s();!(r=i.n()).done;){var a=s();if("object"===o(a))return a.v}}catch(e){i.e(e)}finally{i.f()}return!1}(u,n))return!1;var f=q.getComputedStyle(e);if(f&&"pointer"===f.getPropertyValue("cursor")&&"click"===t.type)return!0;var h=e.tagName.toLowerCase();switch(h){case"html":return!1;case"form":return"submit"===t.type;case"input":case"select":case"textarea":return"change"===t.type||"click"===t.type;default:return a?"click"===t.type:"click"===t.type&&(ve.indexOf(h)>-1||"true"===e.getAttribute("contenteditable"))}}function be(e){for(var t=e;t.parentNode&&!pe(t,"body");t=t.parentNode){var n=de(t);if(ee(n,"ph-sensitive")||ee(n,"ph-no-capture"))return!1}if(ee(de(e),"ph-include"))return!0;var r=e.type||"";if(I(r))switch(r.toLowerCase()){case"hidden":case"password":return!1}var i=e.name||e.id||"";return!I(i)||!/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(i.replace(/[^a-zA-Z0-9]/g,""))}function we(e){return!!(pe(e,"input")&&!["button","checkbox","submit","reset"].includes(e.type)||pe(e,"select")||pe(e,"textarea")||"true"===e.getAttribute("contenteditable"))}function ke(e){if(T(e))return!1;if(I(e)){if(e=J(e),/^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/.test((e||"").replace(/[- ]/g,"")))return!1;if(/(^\d{3}-?\d{2}-?\d{4}$)/.test(e))return!1}return!0}function Se(e){var t=fe(e);return ke(t="".concat(t," ").concat(Fe(e)).trim())?t:""}function Fe(e){var t="";return e&&e.childNodes&&e.childNodes.length&&X(e.childNodes,(function(e){var n;if(e&&"span"===(null===(n=e.tagName)||void 0===n?void 0:n.toLowerCase()))try{var r=fe(e);t="".concat(t," ").concat(r).trim(),e.childNodes&&e.childNodes.length&&(t="".concat(t," ").concat(Fe(e)).trim())}catch(e){Q.error(e)}})),t}function Re(e){return function(e){var t=e.map((function(e){var t,n,r="";if(e.tag_name&&(r+=e.tag_name),e.attr_class){e.attr_class.sort();var o,s=m(e.attr_class);try{for(s.s();!(o=s.n()).done;){var a=o.value;r+=".".concat(a.replace(/"/g,""))}}catch(e){s.e(e)}finally{s.f()}}var u=i(i(i(i({},e.text?{text:e.text}:{}),{},{"nth-child":null!==(t=e.nth_child)&&void 0!==t?t:0,"nth-of-type":null!==(n=e.nth_of_type)&&void 0!==n?n:0},e.href?{href:e.href}:{}),e.attr_id?{attr_id:e.attr_id}:{}),e.attributes),l={};return te(u).sort((function(e,t){var n=p(e,1)[0],r=p(t,1)[0];return n.localeCompare(r)})).forEach((function(e){var t=p(e,2),n=t[0],r=t[1];return l[Pe(n.toString())]=Pe(r.toString())})),(r+=":")+te(u).map((function(e){var t=p(e,2),n=t[0],r=t[1];return"".concat(n,'="').concat(r,'"')})).join("")}));return t.join(";")}(function(e){return e.map((function(e){var t,n,r={text:null===(t=e.$el_text)||void 0===t?void 0:t.slice(0,400),tag_name:e.tag_name,href:null===(n=e.attr__href)||void 0===n?void 0:n.slice(0,2048),attr_class:Ee(e),attr_id:e.attr__id,nth_child:e.nth_child,nth_of_type:e.nth_of_type,attributes:{}};return te(e).filter((function(e){return 0===p(e,1)[0].indexOf("attr__")})).forEach((function(e){var t=p(e,2),n=t[0],i=t[1];return r.attributes[n]=i})),r}))}(e))}function Pe(e){return e.replace(/"|\\"/g,'\\"')}function Ee(e){var t=e.attr__class;return t?F(t)?t:ce(t):void 0}var xe=function(){function e(t){s(this,e),this.clicks=[],this.enabled=t}return u(e,[{key:"isRageClick",value:function(e,t,n){if(!this.enabled)return!1;var r=this.clicks[this.clicks.length-1];if(r&&Math.abs(e-r.x)+Math.abs(t-r.y)<30&&n-r.timestamp<1e3){if(this.clicks.push({x:e,y:t,timestamp:n}),3===this.clicks.length)return!0}else this.clicks=[{x:e,y:t,timestamp:n}];return!1}}]),e}(),Ie="$people_distinct_id",Ce="__alias",Te="__timers",$e="$autocapture_disabled_server_side",Oe="$session_recording_enabled_server_side",Ae="$console_log_recording_enabled_server_side",qe="$session_recording_recorder_version_server_side",Me="$session_recording_network_payload_capture",De="$session_recording_canvas_recording",Ne="$sesid",Le="$session_is_sampled",Be="$enabled_feature_flags",je="$early_access_features",He="$stored_person_properties",Ue="$stored_group_properties",Ve="$surveys",We="$flag_call_reported",ze="$user_state",Ge="$posthog_quota_limited",Qe="$client_session_props",Ye=[Ie,Ce,"__cmpns",Te,Oe,Ne,Be,ze,Ge,je,Ue,He,Ve,We,Qe];function Je(e,t){return t.length>e?t.slice(0,e)+"...":t}var Ke={_initializedTokens:[],_isDisabledServerSide:null,_isAutocaptureEnabled:!1,_setIsAutocaptureEnabled:function(e){var t,n=C(this._isDisabledServerSide)?!(null===(t=e.persistence)||void 0===t||!t.props[$e]):this._isDisabledServerSide,r=!!e.config.autocapture;this._isAutocaptureEnabled=r&&!n},_previousElementSibling:function(e){if(e.previousElementSibling)return e.previousElementSibling;var t=e;do{t=t.previousSibling}while(t&&!he(t));return t},_getAugmentPropertiesFromElement:function(e){if(!be(e))return{};var t={};return X(e.attributes,(function(e){if(0===e.name.indexOf("data-ph-capture-attribute")){var n=e.name.replace("data-ph-capture-attribute-",""),r=e.value;n&&r&&ke(r)&&(t[n]=r)}})),t},_getPropertiesFromElement:function(e,t,n){var r,i=e.tagName.toLowerCase(),o={tag_name:i};ve.indexOf(i)>-1&&!n&&("a"===i.toLowerCase()||"button"===i.toLowerCase()?o.$el_text=Je(1024,Se(e)):o.$el_text=Je(1024,fe(e)));var s=de(e);s.length>0&&(o.classes=s.filter((function(e){return""!==e})));var a=null===(r=this.config)||void 0===r?void 0:r.element_attribute_ignorelist;X(e.attributes,(function(n){var r;if((!we(e)||-1!==["name","id","class"].indexOf(n.name))&&(null==a||!a.includes(n.name))&&!t&&ke(n.value)&&(r=n.name,!I(r)||"_ngcontent"!==r.substring(0,10)&&"_nghost"!==r.substring(0,7))){var i=n.value;"class"===n.name&&(i=ce(i).join(" ")),o["attr__"+n.name]=Je(1024,i)}}));for(var u=1,l=1,c=e;c=this._previousElementSibling(c);)u++,c.tagName===e.tagName&&l++;return o.nth_child=u,o.nth_of_type=l,o},_getDefaultProperties:function(e){return{$event_type:e,$ce_version:1}},_extractCustomPropertyValue:function(e){var t=[];return X(null==j?void 0:j.querySelectorAll(e.css_selector),(function(e){var n;["input","select"].indexOf(e.tagName.toLowerCase())>-1?n=e.value:e.textContent&&(n=e.textContent),ke(n)&&t.push(n)})),t.join(", ")},_getCustomProperties:function(e){var t=this,n={};return X(this._customProperties,(function(r){X(r.event_selectors,(function(i){X(null==j?void 0:j.querySelectorAll(i),(function(i){ee(e,i)&&be(i)&&(n[r.name]=t._extractCustomPropertyValue(r))}))}))})),n},_getEventTarget:function(e){return x(e.target)?e.srcElement||null:null!==(t=e.target)&&void 0!==t&&t.shadowRoot?e.composedPath()[0]||null:e.target||null;var t},_captureEvent:function(e,t){var n,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"$autocapture",o=this._getEventTarget(e);if(_e(o)&&(o=o.parentNode||null),"$autocapture"===i&&"click"===e.type&&e instanceof MouseEvent&&null!==(n=this.rageclicks)&&void 0!==n&&n.isRageClick(e.clientX,e.clientY,(new Date).getTime())&&this._captureEvent(e,t,"$rageclick"),o&&ye(o,e,this.config)){for(var s,a,u=[o],l=o;l.parentNode&&!pe(l,"body");)ge(l.parentNode)?(u.push(l.parentNode.host),l=l.parentNode.host):(u.push(l.parentNode),l=l.parentNode);var c,d=[],f={},h=!1;if(X(u,(function(e){var n=be(e);"a"===e.tagName.toLowerCase()&&(c=e.getAttribute("href"),c=n&&ke(c)&&c),ee(de(e),"ph-no-capture")&&(h=!0),d.push(r._getPropertiesFromElement(e,t.config.mask_all_element_attributes,t.config.mask_all_text));var i=r._getAugmentPropertiesFromElement(e);Z(f,i)})),t.config.mask_all_text||("a"===o.tagName.toLowerCase()||"button"===o.tagName.toLowerCase()?d[0].$el_text=Se(o):d[0].$el_text=fe(o)),c&&(d[0].attr__href=c),h)return!1;var p=Z(this._getDefaultProperties(e.type),t.elementsChainAsString?{$elements_chain:Re(d)}:{$elements:d},null!==(s=d[0])&&void 0!==s&&s.$el_text?{$el_text:null===(a=d[0])||void 0===a?void 0:a.$el_text}:{},this._getCustomProperties(u),f);return t.capture(i,p),!0}},_navigate:function(e){q&&(q.location.href=e)},_addDomEventHandlers:function(e){var t=this;if(q&&j){var n=function(n){n=n||(null==q?void 0:q.event),t._captureEvent(n,e)};ue(j,"submit",n,!1,!0),ue(j,"change",n,!1,!0),ue(j,"click",n,!1,!0)}},_customProperties:[],rageclicks:null,config:void 0,init:function(e){var t;O(e.__autocapture)||(this.config=e.__autocapture),null!==(t=this.config)&&void 0!==t&&t.url_allowlist&&(this.config.url_allowlist=this.config.url_allowlist.map((function(e){return new RegExp(e)}))),this.rageclicks=new xe(e.config.rageclick)},afterDecideResponse:function(e,t){var n=t.config.token;this._initializedTokens.indexOf(n)>-1?Q.info('autocapture already initialized for token "'+n+'"'):(t.persistence&&t.persistence.register(l({},$e,!!e.autocapture_opt_out)),this._isDisabledServerSide=!!e.autocapture_opt_out,this._setIsAutocaptureEnabled(t),this._initializedTokens.push(n),e&&e.config&&e.config.enable_collect_everything&&this._isAutocaptureEnabled?(e.custom_properties&&(this._customProperties=e.custom_properties),this._addDomEventHandlers(t)):t.__autocapture=!1)},enabledForProject:function(e,t,n){if(!e)return!0;t=x(t)?10:t,n=x(n)?10:n;for(var r=0,i=0;i<e.length;i++)r+=e.charCodeAt(i);return r%t<n},isBrowserSupported:function(){return P(null==j?void 0:j.querySelectorAll)}};!function(e){for(var t in e)P(e[t])&&(e[t]=e[t].bind(e))}(Ke),function(e){for(var t in e)P(e[t])&&(e[t]=ie(e[t]))}(Ke);var Xe="$active_feature_flags",Ze="$override_feature_flags",et="$feature_flag_payloads",tt=function(e){var t,n={},r=m(te(e||{}));try{for(r.s();!(t=r.n()).done;){var i=p(t.value,2),o=i[0],s=i[1];s&&(n[o]=s)}}catch(e){r.e(e)}finally{r.f()}return n},nt=function(){function e(t){s(this,e),this.instance=t,this._override_warning=!1,this.featureFlagEventHandlers=[],this.reloadFeatureFlagsQueued=!1,this.reloadFeatureFlagsInAction=!1}return u(e,[{key:"getFlags",value:function(){return Object.keys(this.getFlagVariants())}},{key:"getFlagVariants",value:function(){var e=this.instance.get_property(Be),t=this.instance.get_property(Ze);if(!t)return e||{};for(var n=Z({},e),r=Object.keys(t),i=0;i<r.length;i++)!1===t[r[i]]?delete n[r[i]]:n[r[i]]=t[r[i]];return this._override_warning||(Q.warn(" Overriding feature flags!",{enabledFlags:e,overriddenFlags:t,finalFlags:n}),this._override_warning=!0),n}},{key:"getFlagPayloads",value:function(){return this.instance.get_property(et)||{}}},{key:"reloadFeatureFlags",value:function(){this.reloadFeatureFlagsQueued||(this.reloadFeatureFlagsQueued=!0,this._startReloadTimer())}},{key:"setAnonymousDistinctId",value:function(e){this.$anon_distinct_id=e}},{key:"setReloadingPaused",value:function(e){this.reloadFeatureFlagsInAction=e}},{key:"resetRequestQueue",value:function(){this.reloadFeatureFlagsQueued=!1}},{key:"_startReloadTimer",value:function(){var e=this;this.reloadFeatureFlagsQueued&&!this.reloadFeatureFlagsInAction&&setTimeout((function(){!e.reloadFeatureFlagsInAction&&e.reloadFeatureFlagsQueued&&(e.reloadFeatureFlagsQueued=!1,e._reloadFeatureFlagsRequest())}),5)}},{key:"_reloadFeatureFlagsRequest",value:function(){var e=this;if(!this.instance.config.advanced_disable_feature_flags){this.setReloadingPaused(!0);var t=this.instance.config.token,n=this.instance.get_property(He),r=this.instance.get_property(Ue),i=se(JSON.stringify({token:t,distinct_id:this.instance.get_distinct_id(),groups:this.instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:n,group_properties:r,disable_flags:this.instance.config.advanced_disable_feature_flags||void 0}));this.instance._send_request(this.instance.requestRouter.endpointFor("api","/decide/?v=3"),{data:i},{method:"POST"},this.instance._prepare_callback((function(t){e.$anon_distinct_id=void 0,e.receivedFeatureFlags(t),e.setReloadingPaused(!1),e._startReloadTimer()})))}}},{key:"getFeatureFlag",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.instance.decideEndpointWasHit||this.getFlags()&&this.getFlags().length>0){var n,r=this.getFlagVariants()[e],i="".concat(r),o=this.instance.get_property(We)||{};return!t.send_event&&"send_event"in t||e in o&&o[e].includes(i)||(F(o[e])?o[e].push(i):o[e]=[i],null===(n=this.instance.persistence)||void 0===n||n.register(l({},We,o)),this.instance.capture("$feature_flag_called",{$feature_flag:e,$feature_flag_response:r})),r}Q.warn('getFeatureFlag for key "'+e+"\" failed. Feature flags didn't load in time.")}},{key:"getFeatureFlagPayload",value:function(e){return this.getFlagPayloads()[e]}},{key:"isFeatureEnabled",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.instance.decideEndpointWasHit||this.getFlags()&&this.getFlags().length>0)return!!this.getFeatureFlag(e,t);Q.warn('isFeatureEnabled for key "'+e+"\" failed. Feature flags didn't load in time.")}},{key:"addFeatureFlagsHandler",value:function(e){this.featureFlagEventHandlers.push(e)}},{key:"removeFeatureFlagsHandler",value:function(e){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((function(t){return t!==e}))}},{key:"receivedFeatureFlags",value:function(e){if(this.instance.persistence){this.instance.decideEndpointWasHit=!0;var t=this.getFlagVariants(),n=this.getFlagPayloads();!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.featureFlags,s=e.featureFlagPayloads;if(o)if(F(o)){var a,u={};if(o)for(var c=0;c<o.length;c++)u[o[c]]=!0;t&&t.register((l(a={},Xe,o),l(a,Be,u),a))}else{var d,f=o,h=s;e.errorsWhileComputingFlags&&(f=i(i({},n),f),h=i(i({},r),h)),t&&t.register((l(d={},Xe,Object.keys(tt(f))),l(d,Be,f||{}),l(d,et,h||{}),d))}}(e,this.instance.persistence,t,n),this._fireFeatureFlagsCallbacks()}}},{key:"override",value:function(e){if(!this.instance.__loaded||!this.instance.persistence)return Q.uninitializedWarning("posthog.feature_flags.override");if(this._override_warning=!1,!1===e)this.instance.persistence.unregister(Ze);else if(F(e)){for(var t={},n=0;n<e.length;n++)t[e[n]]=!0;this.instance.persistence.register(l({},Ze,t))}else this.instance.persistence.register(l({},Ze,e))}},{key:"onFeatureFlags",value:function(e){var t=this;if(this.addFeatureFlagsHandler(e),this.instance.decideEndpointWasHit){var n=this._prepareFeatureFlagsForCallbacks(),r=n.flags,i=n.flagVariants;e(r,i)}return function(){return t.removeFeatureFlagsHandler(e)}}},{key:"updateEarlyAccessFeatureEnrollment",value:function(e,t){var n,r,o=l({},"$feature_enrollment/".concat(e),t);this.instance.capture("$feature_enrollment_update",{$feature_flag:e,$feature_enrollment:t,$set:o}),this.setPersonPropertiesForFlags(o,!1);var s=i(i({},this.getFlagVariants()),{},l({},e,t));null===(n=this.instance.persistence)||void 0===n||n.register((l(r={},Xe,Object.keys(tt(s))),l(r,Be,s),r)),this._fireFeatureFlagsCallbacks()}},{key:"getEarlyAccessFeatures",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.instance.get_property(je);if(r&&!n)return e(r);this.instance._send_request(this.instance.requestRouter.endpointFor("api","/api/early_access_features/?token=".concat(this.instance.config.token)),{},{method:"GET"},(function(n){var r,i=n.earlyAccessFeatures;return null===(r=t.instance.persistence)||void 0===r||r.register(l({},je,i)),e(i)}))}},{key:"_prepareFeatureFlagsForCallbacks",value:function(){var e=this.getFlags(),t=this.getFlagVariants();return{flags:e.filter((function(e){return t[e]})),flagVariants:Object.keys(t).filter((function(e){return t[e]})).reduce((function(e,n){return e[n]=t[n],e}),{})}}},{key:"_fireFeatureFlagsCallbacks",value:function(){var e=this._prepareFeatureFlagsForCallbacks(),t=e.flags,n=e.flagVariants;this.featureFlagEventHandlers.forEach((function(e){return e(t,n)}))}},{key:"setPersonPropertiesForFlags",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.instance.get_property(He)||{};this.instance.register(l({},He,i(i({},n),e))),t&&this.instance.reloadFeatureFlags()}},{key:"resetPersonPropertiesForFlags",value:function(){this.instance.unregister(He)}},{key:"setGroupPropertiesForFlags",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.instance.get_property(Ue)||{};0!==Object.keys(n).length&&Object.keys(n).forEach((function(t){n[t]=i(i({},n[t]),e[t]),delete e[t]})),this.instance.register(l({},Ue,i(i({},n),e))),t&&this.instance.reloadFeatureFlags()}},{key:"resetGroupPropertiesForFlags",value:function(e){if(e){var t=this.instance.get_property(Ue)||{};this.instance.register(l({},Ue,i(i({},t),{},l({},e,{}))))}else this.instance.unregister(Ue)}}]),e}();Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Number.isInteger||(Number.isInteger=function(e){return $(e)&&isFinite(e)&&Math.floor(e)===e});var rt="0123456789abcdef",it=function(){function e(t){if(s(this,e),this.bytes=t,16!==t.length)throw new TypeError("not 128-bit length")}return u(e,[{key:"toString",value:function(){for(var e="",t=0;t<this.bytes.length;t++)e=e+rt.charAt(this.bytes[t]>>>4)+rt.charAt(15&this.bytes[t]),3!==t&&5!==t&&7!==t&&9!==t||(e+="-");if(36!==e.length)throw new Error("Invalid UUIDv7 was generated");return e}},{key:"clone",value:function(){return new e(this.bytes.slice(0))}},{key:"equals",value:function(e){return 0===this.compareTo(e)}},{key:"compareTo",value:function(e){for(var t=0;t<16;t++){var n=this.bytes[t]-e.bytes[t];if(0!==n)return Math.sign(n)}return 0}}],[{key:"fromFieldsV7",value:function(t,n,r,i){if(!Number.isInteger(t)||!Number.isInteger(n)||!Number.isInteger(r)||!Number.isInteger(i)||t<0||n<0||r<0||i<0||t>0xffffffffffff||n>4095||r>1073741823||i>4294967295)throw new RangeError("invalid field value");var o=new Uint8Array(16);return o[0]=t/Math.pow(2,40),o[1]=t/Math.pow(2,32),o[2]=t/Math.pow(2,24),o[3]=t/Math.pow(2,16),o[4]=t/Math.pow(2,8),o[5]=t,o[6]=112|n>>>8,o[7]=n,o[8]=128|r>>>24,o[9]=r>>>16,o[10]=r>>>8,o[11]=r,o[12]=i>>>24,o[13]=i>>>16,o[14]=i>>>8,o[15]=i,new e(o)}}]),e}(),ot=function(){function e(){s(this,e),l(this,"timestamp",0),l(this,"counter",0),l(this,"random",new ut)}return u(e,[{key:"generate",value:function(){var e=this.generateOrAbort();if(x(e)){this.timestamp=0;var t=this.generateOrAbort();if(x(t))throw new Error("Could not generate UUID after timestamp reset");return t}return e}},{key:"generateOrAbort",value:function(){var e=Date.now();if(e>this.timestamp)this.timestamp=e,this.resetCounter();else{if(!(e+1e4>this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return it.fromFieldsV7(this.timestamp,Math.trunc(this.counter/Math.pow(2,30)),this.counter&Math.pow(2,30)-1,this.random.nextUint32())}},{key:"resetCounter",value:function(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}}]),e}(),st=function(e){if("undefined"!=typeof UUIDV7_DENY_WEAK_RNG&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var t=0;t<e.length;t++)e[t]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return e};q&&!x(q.crypto)&&crypto.getRandomValues&&(st=function(e){return crypto.getRandomValues(e)});var at,ut=function(){function e(){s(this,e),l(this,"buffer",new Uint32Array(8)),l(this,"cursor",1/0)}return u(e,[{key:"nextUint32",value:function(){return this.cursor>=this.buffer.length&&(st(this.buffer),this.cursor=0),this.buffer[this.cursor++]}}]),e}(),lt=function(){return ct().toString()},ct=function(){return(at||(at=new ot)).generate()},dt="",ft=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i;var ht,pt={is_supported:function(){return!!j},error:function(e){Q.error("cookieStore error: "+e)},get:function(e){if(j){try{for(var t=e+"=",n=j.cookie.split(";").filter((function(e){return e.length})),r=0;r<n.length;r++){for(var i=n[r];" "==i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}}catch(e){}return null}},parse:function(e){var t;try{t=JSON.parse(pt.get(e))||{}}catch(e){}return t},set:function(e,t,n,r,i){if(j)try{var o="",s="",a=function(e,t){if(t){var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:j;if(dt)return dt;if(!t)return"";if(["localhost","127.0.0.1"].includes(e))return"";for(var n=e.split("."),r=Math.min(n.length,8),i="dmn_chk_"+lt(),o=new RegExp("(^|;)\\s*"+i+"=1");!dt&&r--;){var s=n.slice(r).join("."),a=i+"=1;domain=."+s;t.cookie=a,o.test(t.cookie)&&(t.cookie=a+";expires=Thu, 01 Jan 1970 00:00:00 GMT",dt=s)}return dt}(e);if(!n){var r=function(e){var t=e.match(ft);return t?t[0]:""}(e);r!==n&&Q.info("Warning: cookie subdomain discovery mismatch",r,n),n=r}return n?"; domain=."+n:""}return""}(j.location.hostname,r);if(n){var u=new Date;u.setTime(u.getTime()+24*n*60*60*1e3),o="; expires="+u.toUTCString()}i&&(s="; secure");var l=e+"="+encodeURIComponent(JSON.stringify(t))+o+"; SameSite=Lax; path=/"+a+s;return l.length>3686.4&&Q.warn("cookieStore warning: large cookie, len="+l.length),j.cookie=l,l}catch(e){return}},remove:function(e,t){try{pt.set(e,"",-1,t)}catch(e){return}}},_t=null,gt={is_supported:function(){if(!C(_t))return _t;var e=!0;if(x(q))e=!1;else try{var t="__mplssupport__";gt.set(t,"xyz"),'"xyz"'!==gt.get(t)&&(e=!1),gt.remove(t)}catch(t){e=!1}return e||Q.error("localStorage unsupported; falling back to cookie store"),_t=e,e},error:function(e){Q.error("localStorage error: "+e)},get:function(e){try{return null==q?void 0:q.localStorage.getItem(e)}catch(e){gt.error(e)}return null},parse:function(e){try{return JSON.parse(gt.get(e))||{}}catch(e){}return null},set:function(e,t){try{null==q||q.localStorage.setItem(e,JSON.stringify(t))}catch(e){gt.error(e)}},remove:function(e){try{null==q||q.localStorage.removeItem(e)}catch(e){gt.error(e)}}},vt=["distinct_id",Ne,Le],mt=i(i({},gt),{},{parse:function(e){try{var t={};try{t=pt.parse(e)||{}}catch(e){}var n=Z(t,JSON.parse(gt.get(e)||"{}"));return gt.set(e,n),n}catch(e){}return null},set:function(e,t,n,r,i){try{gt.set(e,t);var o={};vt.forEach((function(e){t[e]&&(o[e]=t[e])})),Object.keys(o).length&&pt.set(e,o,n,r,i)}catch(e){gt.error(e)}},remove:function(e,t){try{null==q||q.localStorage.removeItem(e),pt.remove(e,t)}catch(e){gt.error(e)}}}),yt={},bt={is_supported:function(){return!0},error:function(e){Q.error("memoryStorage error: "+e)},get:function(e){return yt[e]||null},parse:function(e){return yt[e]||null},set:function(e,t){yt[e]=t},remove:function(e){delete yt[e]}},wt=null,kt={is_supported:function(){if(!C(wt))return wt;if(wt=!0,x(q))wt=!1;else try{var e="__support__";kt.set(e,"xyz"),'"xyz"'!==kt.get(e)&&(wt=!1),kt.remove(e)}catch(e){wt=!1}return wt},error:function(e){Q.error("sessionStorage error: ",e)},get:function(e){try{return null==q?void 0:q.sessionStorage.getItem(e)}catch(e){kt.error(e)}return null},parse:function(e){try{return JSON.parse(kt.get(e))||null}catch(e){}return null},set:function(e,t){try{null==q||q.sessionStorage.setItem(e,JSON.stringify(t))}catch(e){kt.error(e)}},remove:function(e){try{null==q||q.sessionStorage.removeItem(e)}catch(e){kt.error(e)}}},St=["localhost","127.0.0.1"],Ft=!(!V||!("withCredentials"in new V))||!!U,Rt=function(e){var t=null==j?void 0:j.createElement("a");return x(t)?null:(t.href=e,t)},Pt=function(e,t){for(var n,r=((e.split("#")[0]||"").split("?")[1]||"").split("&"),i=0;i<r.length;i++){var o=r[i].split("=");if(o[0]===t){n=o;break}}if(!F(n)||n.length<2)return"";var s=n[1];try{s=decodeURIComponent(s)}catch(e){Q.error("Skipping decoding for malformed query param: "+s)}return s.replace(/\+/g," ")},Et=function(e,t){var n=e.match(new RegExp(t+"=([^&]*)"));return n?n[1]:null},xt="Mobile",It="iOS",Ct="Android",Tt="Tablet",$t=Ct+" "+Tt,Ot="iPad",At="Apple",qt=At+" Watch",Mt="Safari",Dt="BlackBerry",Nt="Samsung",Lt=Nt+"Browser",Bt=Nt+" Internet",jt="Chrome",Ht=jt+" OS",Ut=jt+" "+It,Vt="Internet Explorer",Wt=Vt+" "+xt,zt="Opera",Gt=zt+" Mini",Qt="Edge",Yt="Microsoft "+Qt,Jt="Firefox",Kt=Jt+" "+It,Xt="Nintendo",Zt="PlayStation",en="Xbox",tn=Ct+" "+xt,nn=xt+" "+Mt,rn="Windows",on=rn+" Phone",sn="Nokia",an="Ouya",un="Generic",ln=un+" "+xt.toLowerCase(),cn=un+" "+Tt.toLowerCase(),dn="Konqueror",fn="(\\d+(\\.\\d+)?)",hn=new RegExp("Version/"+fn),pn=new RegExp(en,"i"),_n=new RegExp(Zt+" \\w+","i"),gn=new RegExp(Xt+" \\w+","i"),vn=new RegExp(Dt+"|PlayBook|BB10","i"),mn={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},yn=function(e,t,n){return n?zt:(t=t||"",ee(e," OPR/")&&ee(e,"Mini")?Gt:ee(e," OPR/")?zt:vn.test(e)?Dt:ee(e,"IE"+xt)||ee(e,"WPDesktop")?Wt:ee(e,Lt)?Bt:ee(e,Qt)||ee(e,"Edg/")?Yt:ee(e,"FBIOS")?"Facebook "+xt:ee(e,jt)?jt:ee(e,"CriOS")?Ut:ee(e,"UCWEB")||ee(e,"UCBrowser")?"UC Browser":ee(e,"FxiOS")?Kt:ee(e,Ct)?tn:ee(e.toLowerCase(),dn.toLowerCase())?dn:function(e,t){return t&&ee(t,At)||function(e){return ee(e,Mt)&&!ee(e,jt)&&!ee(e,Ct)}(e)}(e,t)?ee(e,xt)?nn:Mt:ee(e,Jt)?Jt:ee(e,"MSIE")||ee(e,"Trident/")?Vt:ee(e,"Gecko")?Jt:"")},bn=(l(ht={},Wt,[new RegExp("rv:"+fn)]),l(ht,Yt,[new RegExp(Qt+"?\\/"+fn)]),l(ht,jt,[new RegExp(jt+"/"+fn)]),l(ht,Ut,[new RegExp("CriOS\\/"+fn)]),l(ht,"UC Browser",[new RegExp("(UCBrowser|UCWEB)\\/"+fn)]),l(ht,Mt,[hn]),l(ht,nn,[hn]),l(ht,zt,[new RegExp("(Opera|OPR)\\/"+fn)]),l(ht,Jt,[new RegExp(Jt+"\\/"+fn)]),l(ht,Kt,[new RegExp("FxiOS\\/"+fn)]),l(ht,dn,[new RegExp("Konqueror[:/]?"+fn,"i")]),l(ht,Dt,[new RegExp(Dt+" "+fn),hn]),l(ht,tn,[new RegExp("android\\s"+fn)]),l(ht,Bt,[new RegExp(Lt+"\\/"+fn)]),l(ht,Vt,[new RegExp("(rv:|MSIE )"+fn)]),l(ht,"Mozilla",[new RegExp("rv:"+fn)]),ht),wn=[[new RegExp(en+"; "+en+" (.*?)[);]","i"),function(e){return[en,e&&e[1]||""]}],[new RegExp(Xt,"i"),[Xt,""]],[new RegExp(Zt,"i"),[Zt,""]],[vn,[Dt,""]],[new RegExp(rn,"i"),function(e,t){if(/Phone/.test(t)||/WPDesktop/.test(t))return[on,""];if(new RegExp(xt).test(t)&&!/IEMobile\b/.test(t))return[rn+" "+xt,""];var n=/Windows NT ([0-9.]+)/i.exec(t);if(n&&n[1]){var r=n[1],i=mn[r]||"";return/arm/i.test(t)&&(i="RT"),[rn,i]}return[rn,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,function(e){if(e&&e[3]){var t=[e[3],e[4],e[5]||"0"];return[It,t.join(".")]}return[It,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,function(e){var t="";return e&&e.length>=3&&(t=x(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+Ct+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Ct+")","i"),function(e){if(e&&e[2]){var t=[e[2],e[3],e[4]||"0"];return[Ct,t.join(".")]}return[Ct,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,function(e){var t=["Mac OS X",""];if(e&&e[1]){var n=[e[1],e[2],e[3]||"0"];t[1]=n.join(".")}return t}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[Ht,""]],[/Linux|debian/i,["Linux",""]]],kn=function(e){return gn.test(e)?Xt:_n.test(e)?Zt:pn.test(e)?en:new RegExp(an,"i").test(e)?an:new RegExp("("+on+"|WPDesktop)","i").test(e)?on:/iPad/.test(e)?Ot:/iPod/.test(e)?"iPod Touch":/iPhone/.test(e)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(e)?qt:vn.test(e)?Dt:/(kobo)\s(ereader|touch)/i.test(e)?"Kobo":new RegExp(sn,"i").test(e)?sn:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(e)||/(kf[a-z]+)( bui|\)).+silk\//i.test(e)?"Kindle Fire":/(Android|ZTE)/i.test(e)?!new RegExp(xt).test(e)||/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(e)?/pixel[\daxl ]{1,6}/i.test(e)&&!/pixel c/i.test(e)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(e)||/lmy47v/i.test(e)&&!/QTAQZ3/i.test(e)?Ct:$t:Ct:new RegExp("(pda|"+xt+")","i").test(e)?ln:new RegExp(Tt,"i").test(e)&&!new RegExp(Tt+" pc","i").test(e)?cn:""},Sn="https?://(.*)",Fn={campaignParams:function(e){var t=["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gclid","gad_source","gbraid","wbraid","fbclid","msclkid"].concat(e||[]),n={};return X(t,(function(e){var t=j?Pt(j.URL,e):"";t.length&&(n[e]=t)})),n},searchEngine:function(){var e=null==j?void 0:j.referrer;return e?0===e.search(Sn+"google.([^/?]*)")?"google":0===e.search(Sn+"bing.com")?"bing":0===e.search(Sn+"yahoo.com")?"yahoo":0===e.search(Sn+"duckduckgo.com")?"duckduckgo":null:null},searchInfo:function(){var e=Fn.searchEngine(),t="yahoo"!=e?"q":"p",n={};if(!C(e)){n.$search_engine=e;var r=j?Pt(j.referrer,t):"";r.length&&(n.ph_keyword=r)}return n},browser:yn,browserVersion:function(e,t,n){var r=yn(e,t,n),i=bn[r];if(x(i))return null;for(var o=0;o<i.length;o++){var s=i[o],a=e.match(s);if(a)return parseFloat(a[a.length-2])}return null},browserLanguage:function(){return navigator.language||navigator.userLanguage},os:function(e){for(var t=0;t<wn.length;t++){var n=p(wn[t],2),r=n[0],i=n[1],o=r.exec(e),s=o&&(P(i)?i(o,e):i);if(s)return s}return["",""]},device:kn,deviceType:function(e){var t=kn(e);return t===Ot||t===$t||"Kobo"===t||"Kindle Fire"===t||t===cn?Tt:t===Xt||t===en||t===Zt||t===an?"Console":t===qt?"Wearable":t?xt:"Desktop"},referrer:function(){return(null==j?void 0:j.referrer)||"$direct"},referringDomain:function(){var e;return null!=j&&j.referrer&&(null===(e=Rt(j.referrer))||void 0===e?void 0:e.host)||"$direct"},properties:function(){if(!W)return{};var e=p(Fn.os(W),2),t=e[0],n=e[1];return Z(oe({$os:t,$os_version:n,$browser:Fn.browser(W,navigator.vendor,z.opera),$device:Fn.device(W),$device_type:Fn.deviceType(W)}),{$current_url:null==H?void 0:H.href,$host:null==H?void 0:H.host,$pathname:null==H?void 0:H.pathname,$raw_user_agent:W.length>1e3?W.substring(0,997)+"...":W,$browser_version:Fn.browserVersion(W,navigator.vendor,z.opera),$browser_language:Fn.browserLanguage(),$screen_height:null==q?void 0:q.screen.height,$screen_width:null==q?void 0:q.screen.width,$viewport_height:null==q?void 0:q.innerHeight,$viewport_width:null==q?void 0:q.innerWidth,$lib:"web",$lib_version:y.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:ne()/1e3})},people_properties:function(){if(!W)return{};var e=p(Fn.os(W),2),t=e[0],n=e[1];return Z(oe({$os:t,$os_version:n,$browser:Fn.browser(W,navigator.vendor,z.opera)}),{$browser_version:Fn.browserVersion(W,navigator.vendor,z.opera)})}},Rn=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"],Pn=function(){function e(t){s(this,e),this.config=t,this.props={},this.campaign_params_saved=!1,this.name=function(e){var t="";return e.token&&(t=e.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),e.persistence_name?"ph_"+e.persistence_name:"ph_"+t+"_posthog"}(t),this.storage=this.buildStorage(t),this.load(),this.update_config(t,t),this.save()}return u(e,[{key:"buildStorage",value:function(e){-1===Rn.indexOf(e.persistence.toLowerCase())&&(Q.critical("Unknown persistence type "+e.persistence+"; falling back to localStorage+cookie"),e.persistence="localStorage+cookie");var t=e.persistence.toLowerCase();return"localstorage"===t&&gt.is_supported()?gt:"localstorage+cookie"===t&&mt.is_supported()?mt:"sessionstorage"===t&&kt.is_supported()?kt:"memory"===t?bt:"cookie"===t?pt:mt.is_supported()?mt:pt}},{key:"properties",value:function(){var e={};return X(this.props,(function(t,n){if(n===Be&&E(t))for(var r=Object.keys(t),i=0;i<r.length;i++)e["$feature/".concat(r[i])]=t[r[i]];else s=n,a=!1,(C(o=Ye)?a:L&&o.indexOf===L?-1!=o.indexOf(s):(X(o,(function(e){if(a||(a=e===s))return Y})),a))||(e[n]=t);var o,s,a})),e}},{key:"load",value:function(){if(!this.disabled){var e=this.storage.parse(this.name);e&&(this.props=Z({},e))}}},{key:"save",value:function(){this.disabled||this.storage.set(this.name,this.props,this.expire_days,this.cross_subdomain,this.secure)}},{key:"remove",value:function(){this.storage.remove(this.name,!1),this.storage.remove(this.name,!0)}},{key:"clear",value:function(){this.remove(),this.props={}}},{key:"register_once",value:function(e,t,n){var r=this;if(E(e)){x(t)&&(t="None"),this.expire_days=x(n)?this.default_expiry:n;var i=!1;if(X(e,(function(e,n){r.props.hasOwnProperty(n)&&r.props[n]!==t||(r.props[n]=e,i=!0)})),i)return this.save(),!0}return!1}},{key:"register",value:function(e,t){var n=this;if(E(e)){this.expire_days=x(t)?this.default_expiry:t;var r=!1;if(X(e,(function(t,i){e.hasOwnProperty(i)&&n.props[i]!==t&&(n.props[i]=t,r=!0)})),r)return this.save(),!0}return!1}},{key:"unregister",value:function(e){e in this.props&&(delete this.props[e],this.save())}},{key:"update_campaign_params",value:function(){this.campaign_params_saved||(this.register(Fn.campaignParams(this.config.custom_campaign_params)),this.campaign_params_saved=!0)}},{key:"update_search_keyword",value:function(){this.register(Fn.searchInfo())}},{key:"update_referrer_info",value:function(){this.register({$referrer:this.props.$referrer||Fn.referrer(),$referring_domain:this.props.$referring_domain||Fn.referringDomain()})}},{key:"get_referrer_info",value:function(){return oe({$referrer:this.props.$referrer,$referring_domain:this.props.$referring_domain})}},{key:"safe_merge",value:function(e){return X(this.props,(function(t,n){n in e||(e[n]=t)})),e}},{key:"update_config",value:function(e,t){if(this.default_expiry=this.expire_days=e.cookie_expiration,this.set_disabled(e.disable_persistence),this.set_cross_subdomain(e.cross_subdomain_cookie),this.set_secure(e.secure_cookie),e.persistence!==t.persistence){var n=this.buildStorage(e),r=this.props;this.clear(),this.storage=n,this.props=r,this.save()}}},{key:"set_disabled",value:function(e){this.disabled=e,this.disabled?this.remove():this.save()}},{key:"set_cross_subdomain",value:function(e){e!==this.cross_subdomain&&(this.cross_subdomain=e,this.remove(),this.save())}},{key:"get_cross_subdomain",value:function(){return!!this.cross_subdomain}},{key:"set_secure",value:function(e){e!==this.secure&&(this.secure=e,this.remove(),this.save())}},{key:"set_event_timer",value:function(e,t){var n=this.props[Te]||{};n[e]=t,this.props[Te]=n,this.save()}},{key:"remove_event_timer",value:function(e){var t=(this.props[Te]||{})[e];return x(t)||(delete this.props[Te][e],this.save()),t}},{key:"get_user_state",value:function(){return this.props[ze]||"anonymous"}},{key:"set_user_state",value:function(e){this.props[ze]=e,this.save()}},{key:"get_quota_limits",value:function(){return this.props[Ge]||{}}},{key:"set_quota_limits",value:function(e){this.props[Ge]=e,this.save()}}]),e}(),En=2,xn=4,In=u((function e(t){var n,r,i=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,e),l(this,"bucketSize",100),l(this,"refillRate",10),l(this,"mutationBuckets",{}),l(this,"loggedTracker",{}),l(this,"refillBuckets",(function(){Object.keys(i.mutationBuckets).forEach((function(e){i.mutationBuckets[e]=i.mutationBuckets[e]+i.refillRate,i.mutationBuckets[e]>=i.bucketSize&&delete i.mutationBuckets[e]}))})),l(this,"getNodeOrRelevantParent",(function(e){var t=i.rrweb.mirror.getNode(e);if("svg"!==(null==t?void 0:t.nodeName)&&t instanceof Element){var n=t.closest("svg");if(n)return[i.rrweb.mirror.getId(n),n]}return[e,t]})),l(this,"numberOfChanges",(function(e){var t,n,r,i,o,s,a,u;return(null!==(t=null===(n=e.removes)||void 0===n?void 0:n.length)&&void 0!==t?t:0)+(null!==(r=null===(i=e.attributes)||void 0===i?void 0:i.length)&&void 0!==r?r:0)+(null!==(o=null===(s=e.texts)||void 0===s?void 0:s.length)&&void 0!==o?o:0)+(null!==(a=null===(u=e.adds)||void 0===u?void 0:u.length)&&void 0!==a?a:0)})),l(this,"throttleMutations",(function(e){if(3!==e.type||0!==e.data.source)return e;var t=e.data,n=i.numberOfChanges(t);t.attributes&&(t.attributes=t.attributes.filter((function(e){var t,n,r,o=p(i.getNodeOrRelevantParent(e.id),2),s=o[0],a=o[1];return 0!==i.mutationBuckets[s]&&(i.mutationBuckets[s]=null!==(t=i.mutationBuckets[s])&&void 0!==t?t:i.bucketSize,i.mutationBuckets[s]=Math.max(i.mutationBuckets[s]-1,0),0===i.mutationBuckets[s]&&(i.loggedTracker[s]||(i.loggedTracker[s]=!0,null===(n=(r=i.options).onBlockedNode)||void 0===n||n.call(r,s,a))),e)})));var r=i.numberOfChanges(t);return 0!==r||n===r?e:void 0})),this.rrweb=t,this.options=o,this.refillRate=null!==(n=this.options.refillRate)&&void 0!==n?n:this.refillRate,this.bucketSize=null!==(r=this.options.bucketSize)&&void 0!==r?r:this.bucketSize,setInterval((function(){i.refillBuckets()}),1e3)})),Cn=function(e){return e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e}(Cn||{}),Tn={initiatorTypes:["audio","beacon","body","css","early-hint","embed","fetch","frame","iframe","icon","image","img","input","link","navigation","object","ping","script","track","video","xmlhttprequest"],maskRequestFn:function(e){return e},recordHeaders:!1,recordBody:!1,recordInitialRequests:!1,recordPerformance:!1,performanceEntryTypeToObserve:["first-input","navigation","paint","resource"],payloadSizeLimitBytes:1e6},$n=["authorization","x-forwarded-for","authorization","cookie","set-cookie","x-api-key","x-real-ip","remote-addr","forwarded","proxy-authorization","x-csrf-token","x-csrftoken","x-xsrf-token"],On=["/s/","/e/","/i/vo/e/"];function An(e,t,n,r){if(T(e))return e;var i=(null==t?void 0:t["content-length"])||function(e){return new Blob([e]).size}(e);return I(i)&&(i=parseInt(i)),i>n?"[SessionReplay] ".concat(r," body too large to record (").concat(i," bytes)"):e}var qn="__ph_opt_in_out_";function Mn(e,t){Vn(!0,e,t)}function Dn(e,t){Vn(!1,e,t)}function Nn(e,t){return"1"===Un(e,t)}function Ln(e,t){return!!function(e){if(e&&e.respectDnt){var t=e&&e.window||q,n=null==t?void 0:t.navigator,r=!1;return X([null==n?void 0:n.doNotTrack,n.msDoNotTrack,t.doNotTrack],(function(e){ee([!0,1,"1","yes"],e)&&(r=!0)})),r}return!1}(t)||"0"===Un(e,t)}function Bn(e,t){jn(t=t||{}).remove(Hn(e,t),!!t.crossSubdomainCookie)}function jn(e){return"localStorage"===(e=e||{}).persistenceType?gt:"localStorage+cookie"===e.persistenceType?mt:pt}function Hn(e,t){return((t=t||{}).persistencePrefix||qn)+e}function Un(e,t){return jn(t).get(Hn(e,t))}function Vn(e,t,n){I(t)&&t.length?(jn(n=n||{}).set(Hn(t,n),e?1:0,$(n.cookieExpiration)?n.cookieExpiration:null,n.crossSubdomainCookie,n.secureCookie),n.capture&&e&&n.capture(n.captureEventName||"$opt_in",n.captureProperties||{},{send_instantly:!0})):Q.error("gdpr."+(e?"optIn":"optOut")+" called with an invalid token")}function Wn(e){var t=!1;try{var n=e.config.token,r=e.config.respect_dnt,i=e.config.opt_out_capturing_persistence_type,o=e.config.opt_out_capturing_cookie_prefix||void 0,s=e.config.window;n&&(t=Ln(n,{respectDnt:r,persistenceType:i,persistencePrefix:o,window:s}))}catch(e){Q.error("Unexpected error when checking capturing opt-out status: "+e)}return t}var zn,Gn=3e5,Qn=Gn;!function(e){e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet"}(zn||(zn={}));var Yn=[zn.MouseMove,zn.MouseInteraction,zn.Scroll,zn.ViewportResize,zn.Input,zn.TouchMove,zn.MediaInteraction,zn.Drag],Jn=function(e){return{rrwebMethod:e,enqueuedAt:Date.now(),attempt:1}},Kn="[SessionRecording]",Xn=function(){function e(t){var n=this;if(s(this,e),l(this,"queuedRRWebEvents",[]),l(this,"isIdle",!1),l(this,"_linkedFlagSeen",!1),l(this,"_lastActivityTimestamp",Date.now()),l(this,"windowId",null),l(this,"sessionId",null),l(this,"_linkedFlag",null),l(this,"_sampleRate",null),l(this,"_minimumDuration",null),l(this,"_forceAllowLocalhostNetworkCapture",!1),this.instance=t,this._captureStarted=!1,this._endpoint="/s/",this.stopRrweb=void 0,this.receivedDecide=!1,null==q||q.addEventListener("beforeunload",(function(){n._flushBuffer()})),null==q||q.addEventListener("offline",(function(){n._tryAddCustomEvent("browser offline",{})})),null==q||q.addEventListener("online",(function(){n._tryAddCustomEvent("browser online",{})})),!this.instance.sessionManager)throw Q.error(Kn+" started without valid sessionManager"),new Error(Kn+" started without valid sessionManager. This is a bug.");this.buffer=this.clearBuffer()}return u(e,[{key:"started",get:function(){return this._captureStarted}},{key:"sessionManager",get:function(){if(!this.instance.sessionManager)throw Q.error(Kn+" started without valid sessionManager"),new Error(Kn+" started without valid sessionManager. This is a bug.");return this.instance.sessionManager}},{key:"isSampled",get:function(){return $(this._sampleRate)?this.instance.get_property(Le):null}},{key:"sessionDuration",get:function(){var e,t,n=null===(e=this.buffer)||void 0===e?void 0:e.data[(null===(t=this.buffer)||void 0===t?void 0:t.data.length)-1],r=this.sessionManager.checkAndGetSessionAndWindowId(!0).sessionStartTimestamp;return n?n.timestamp-r:null}},{key:"isRecordingEnabled",get:function(){var e=!!this.instance.get_property(Oe),t=!this.instance.config.disable_session_recording;return q&&e&&t}},{key:"isConsoleLogCaptureEnabled",get:function(){var e=!!this.instance.get_property(Ae),t=this.instance.config.enable_recording_console_log;return null!=t?t:e}},{key:"canvasRecording",get:function(){var e=this.instance.get_property(De);return e&&e.fps&&e.quality?{enabled:e.enabled,fps:e.fps,quality:e.quality}:void 0}},{key:"recordingVersion",get:function(){var e,t=this.instance.get_property(qe);return(null===(e=this.instance.config.session_recording)||void 0===e?void 0:e.recorderVersion)||t||"v1"}},{key:"networkPayloadCapture",get:function(){var e,t,n=this.instance.get_property(Me),r={recordHeaders:null===(e=this.instance.config.session_recording)||void 0===e?void 0:e.recordHeaders,recordBody:null===(t=this.instance.config.session_recording)||void 0===t?void 0:t.recordBody},i=(null==r?void 0:r.recordHeaders)||(null==n?void 0:n.recordHeaders),o=(null==r?void 0:r.recordBody)||(null==n?void 0:n.recordBody),s=this.instance.config.capture_performance||(null==n?void 0:n.capturePerformance);return i||o||s?{recordHeaders:i,recordBody:o,recordPerformance:s}:void 0}},{key:"status",get:function(){return this.receivedDecide?this.isRecordingEnabled?T(this._linkedFlag)||this._linkedFlagSeen?O(this.isSampled)?this.isSampled?"sampled":"disabled":"active":"buffering":"disabled":"buffering"}},{key:"startRecordingIfEnabled",value:function(){this.isRecordingEnabled?(this._startCapture(),Q.info(Kn+" started")):(this.stopRecording(),this.clearBuffer())}},{key:"stopRecording",value:function(){this._captureStarted&&this.stopRrweb&&(this.stopRrweb(),this.stopRrweb=void 0,this._captureStarted=!1,Q.info(Kn+" stopped"))}},{key:"makeSamplingDecision",value:function(e){var t,n=this.sessionId!==e;if($(this._sampleRate)){var r,i=this.isSampled;(r=n||!O(i)?Math.random()<this._sampleRate:i)||Q.warn(Kn+" Sample rate (".concat(this._sampleRate,") has determined that this sessionId (").concat(e,") will not be sent to the server.")),null===(t=this.instance.persistence)||void 0===t||t.register(l({},Le,r))}else{var o;null===(o=this.instance.persistence)||void 0===o||o.register(l({},Le,null))}}},{key:"afterDecideResponse",value:function(e){var t,n,r,o,s,a,u,c,d,f,h,p=this;this.instance.persistence&&this.instance.persistence.register((l(h={},Oe,!!e.sessionRecording),l(h,Ae,null===(s=e.sessionRecording)||void 0===s?void 0:s.consoleLogRecordingEnabled),l(h,qe,null===(a=e.sessionRecording)||void 0===a?void 0:a.recorderVersion),l(h,Me,i({capturePerformance:e.capturePerformance},null===(u=e.sessionRecording)||void 0===u?void 0:u.networkPayloadCapture)),l(h,De,{enabled:null===(c=e.sessionRecording)||void 0===c?void 0:c.recordCanvas,fps:null===(d=e.sessionRecording)||void 0===d?void 0:d.canvasFps,quality:null===(f=e.sessionRecording)||void 0===f?void 0:f.canvasQuality}),h));var _=null===(t=e.sessionRecording)||void 0===t?void 0:t.sampleRate;this._sampleRate=T(_)?null:parseFloat(_);var g,v=null===(n=e.sessionRecording)||void 0===n?void 0:n.minimumDurationMilliseconds;if(this._minimumDuration=x(v)?null:v,this._linkedFlag=(null===(r=e.sessionRecording)||void 0===r?void 0:r.linkedFlag)||null,null!==(o=e.sessionRecording)&&void 0!==o&&o.endpoint&&(this._endpoint=null===(g=e.sessionRecording)||void 0===g?void 0:g.endpoint),$(this._sampleRate)&&this.sessionManager.onSessionId((function(e){p.makeSamplingDecision(e)})),!T(this._linkedFlag)){var m,y,b=I(this._linkedFlag)?this._linkedFlag:null===(m=this._linkedFlag)||void 0===m?void 0:m.flag,w=I(this._linkedFlag)?null:null===(y=this._linkedFlag)||void 0===y?void 0:y.variant;this.instance.onFeatureFlags((function(e,t){var n=E(t)&&b in t,r=w?t[b]===w:n;r&&Q.info(Kn+" linked flag matched",{linkedFlag:b,linkedVariant:w}),p._linkedFlagSeen=r}))}this.receivedDecide=!0,this.startRecordingIfEnabled()}},{key:"log",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"log";null===(t=this.instance.sessionRecording)||void 0===t||t.onRRwebEmit({type:6,data:{plugin:"rrweb/console@1",payload:{level:n,trace:[],payload:[JSON.stringify(e)]}},timestamp:ne()})}},{key:"_startCapture",value:function(){var e=this;if(!x(Object.assign)&&!(this._captureStarted||this.instance.config.disable_session_recording||Wn(this.instance))){this._captureStarted=!0,this.sessionManager.checkAndGetSessionAndWindowId();var t="v2"===this.recordingVersion?"recorder-v2.js":"recorder.js";this.instance.__loaded_recorder_version!==this.recordingVersion?le(this.instance.requestRouter.endpointFor("assets","/static/".concat(t,"?v=").concat(y.LIB_VERSION)),(function(n){if(n)return Q.error(Kn+" could not load ".concat(t),n);e._onScriptLoaded()})):this._onScriptLoaded()}}},{key:"_isInteractiveEvent",value:function(e){var t;return 3===e.type&&-1!==Yn.indexOf(null===(t=e.data)||void 0===t?void 0:t.source)}},{key:"_updateWindowAndSessionIds",value:function(e){var t=this._isInteractiveEvent(e);t||this.isIdle||e.timestamp-this._lastActivityTimestamp>Qn&&(this.isIdle=!0,this._tryAddCustomEvent("sessionIdle",{reason:"user inactivity",timeSinceLastActive:e.timestamp-this._lastActivityTimestamp,threshold:Qn}));var n=!1;if(t&&(this._lastActivityTimestamp=e.timestamp,this.isIdle&&(this.isIdle=!1,this._tryAddCustomEvent("sessionNoLongerIdle",{reason:"user activity",type:e.type}),n=!0)),!this.isIdle){var r=this.sessionManager.checkAndGetSessionAndWindowId(!t,e.timestamp),i=r.windowId,o=r.sessionId,s=this.sessionId!==o,a=this.windowId!==i;this.windowId=i,this.sessionId=o,(n||-1===[En,xn].indexOf(e.type)&&(a||s))&&this._tryTakeFullSnapshot()}}},{key:"_tryRRWebMethod",value:function(e){try{return e.rrwebMethod(),!0}catch(i){return Q.warn(Kn+" could not emit queued rrweb event.",i),this.queuedRRWebEvents.length<10&&this.queuedRRWebEvents.push({enqueuedAt:e.enqueuedAt||Date.now(),attempt:e.attempt++,rrwebMethod:e.rrwebMethod}),!1}}},{key:"_tryAddCustomEvent",value:function(e,t){var n=this;return this._tryRRWebMethod(Jn((function(){return n.rrwebRecord.addCustomEvent(e,t)})))}},{key:"_tryTakeFullSnapshot",value:function(){var e=this;return this._tryRRWebMethod(Jn((function(){return e.rrwebRecord.takeFullSnapshot()})))}},{key:"_onScriptLoaded",value:function(){var e,t=this,n={blockClass:"ph-no-capture",blockSelector:void 0,ignoreClass:"ph-ignore-input",maskTextClass:"ph-mask",maskTextSelector:void 0,maskTextFn:void 0,maskAllInputs:!0,maskInputOptions:{},maskInputFn:void 0,slimDOMOptions:{},collectFonts:!1,inlineStylesheet:!0,recordCrossOriginIframes:!1};this.rrwebRecord=q.rrweb?q.rrweb.record:q.rrwebRecord;for(var r=this.instance.config.session_recording,o=0,s=Object.entries(r||{});o<s.length;o++){var a=p(s[o],2),u=a[0],l=a[1];u in n&&(n[u]=l)}if(this.canvasRecording&&this.canvasRecording.enabled&&(n.recordCanvas=!0,n.sampling={canvas:this.canvasRecording.fps},n.dataURLOptions={type:"image/webp",quality:this.canvasRecording.quality}),this.rrwebRecord){this.mutationRateLimiter=null!==(e=this.mutationRateLimiter)&&void 0!==e?e:new In(this.rrwebRecord,{onBlockedNode:function(e,n){var r="Too many mutations on node '".concat(e,"'. Rate limiting. This could be due to SVG animations or something similar");Q.info(r,{node:n}),t.log(Kn+" "+r,"warn")}}),this._scheduleFullSnapshot();var c=this._gatherRRWebPlugins();this.stopRrweb=this.rrwebRecord(i({emit:function(e){t.onRRwebEmit(e)},plugins:c},n)),this.instance._addCaptureHook((function(e){try{if("$pageview"===e){var n=q?t._maskUrl(q.location.href):"";if(!n)return;t._tryAddCustomEvent("$pageview",{href:n}),t._tryTakeFullSnapshot()}}catch(e){Q.error("Could not add $pageview to rrweb session",e)}})),this._lastActivityTimestamp=Date.now(),this.isIdle=!1,this._tryAddCustomEvent("$session_options",{sessionRecordingOptions:n,activePlugins:c.map((function(e){return null==e?void 0:e.name}))}),this._tryAddCustomEvent("$posthog_config",{config:this.instance.config})}else Q.error(Kn+"onScriptLoaded was called but rrwebRecord is not available. This indicates something has gone wrong.")}},{key:"_scheduleFullSnapshot",value:function(){var e=this;this._fullSnapshotTimer&&clearInterval(this._fullSnapshotTimer),this._fullSnapshotTimer=setInterval((function(){e._tryTakeFullSnapshot()}),Gn)}},{key:"_gatherRRWebPlugins",value:function(){var e=[];return z.rrwebConsoleRecord&&this.isConsoleLogCaptureEnabled&&e.push(z.rrwebConsoleRecord.getRecordConsolePlugin()),this.networkPayloadCapture&&P(z.getRecordNetworkPlugin)&&(!St.includes(location.hostname)||this._forceAllowLocalhostNetworkCapture?e.push(z.getRecordNetworkPlugin(function(e,t){var n,r,o,s=e.session_recording,a=!1!==s.recordHeaders&&t.recordHeaders,u=!1!==s.recordBody&&t.recordBody,l=!1!==s.recordPerformance&&t.recordPerformance,c=(n=s,o=Math.min(1e6,null!==(r=n.payloadSizeLimitBytes)&&void 0!==r?r:1e6),function(e){return null!=e&&e.requestBody&&(e.requestBody=An(e.requestBody,e.requestHeaders,o,"Request")),null!=e&&e.responseBody&&(e.responseBody=An(e.responseBody,e.responseHeaders,o,"Response")),e}),d=function(e){return c(function(e){var t=Rt(e.name);if(!(t&&t.pathname&&On.includes(t.pathname)))return e}((t=e,Object.keys(null!==(n=t.requestHeaders)&&void 0!==n?n:{}).forEach((function(e){var n;$n.includes(e.toLowerCase())&&(null===(n=t.requestHeaders)||void 0===n||delete n[e])})),t)));var t,n},f=P(e.session_recording.maskNetworkRequestFn);return f&&P(e.session_recording.maskCapturedNetworkRequestFn)&&Q.warn("Both `maskNetworkRequestFn` and `maskCapturedNetworkRequestFn` are defined. `maskNetworkRequestFn` will be ignored."),f&&(e.session_recording.maskCapturedNetworkRequestFn=function(t){var n=e.session_recording.maskNetworkRequestFn({url:t.name});return i(i({},t),{},{name:null==n?void 0:n.url})}),s.maskRequestFn=P(e.session_recording.maskCapturedNetworkRequestFn)?function(t){var n,r,i,o=d(t);return o&&null!==(n=null===(r=(i=e.session_recording).maskCapturedNetworkRequestFn)||void 0===r?void 0:r.call(i,o))&&void 0!==n?n:void 0}:void 0,s.maskRequestFn||(s.maskRequestFn=d),i(i(i({},Tn),s),{},{recordHeaders:a,recordBody:u,recordPerformance:l,recordInitialRequests:l})}(this.instance.config,this.networkPayloadCapture))):Q.info(Kn+" NetworkCapture not started because we are on localhost.")),e}},{key:"onRRwebEmit",value:function(e){if(this._processQueuedEvents(),e&&E(e)){if(e.type===Cn.Meta){var t=this._maskUrl(e.data.href);if(!t)return;e.data.href=t}e.type===Cn.FullSnapshot&&this._scheduleFullSnapshot();var n=this.mutationRateLimiter?this.mutationRateLimiter.throttleMutations(e):e;if(n){var r=function(e){var t=e;if(t&&E(t)&&6===t.type&&E(t.data)&&"rrweb/console@1"===t.data.plugin){t.data.payload.payload.length>10&&(t.data.payload.payload=t.data.payload.payload.slice(0,10),t.data.payload.payload.push("...[truncated]"));for(var n=[],r=0;r<t.data.payload.payload.length;r++)t.data.payload.payload[r]&&t.data.payload.payload[r].length>2e3?n.push(t.data.payload.payload[r].slice(0,2e3)+"...[truncated]"):n.push(t.data.payload.payload[r]);return t.data.payload.payload=n,e}return e}(n),i=JSON.stringify(r).length;if(this._updateWindowAndSessionIds(r),!this.isIdle||r.type===Cn.Custom){var o={$snapshot_bytes:i,$snapshot_data:r,$session_id:this.sessionId,$window_id:this.windowId};"disabled"!==this.status?this._captureSnapshotBuffered(o):this.clearBuffer()}}}}},{key:"_processQueuedEvents",value:function(){var e=this;if(this.queuedRRWebEvents.length){var t=_(this.queuedRRWebEvents);this.queuedRRWebEvents=[],t.forEach((function(n){Date.now()-n.enqueuedAt>2e3?e._tryAddCustomEvent("rrwebQueueTimeout",{enqueuedAt:n.enqueuedAt,attempt:n.attempt,queueLength:t.length}):e._tryRRWebMethod(n)&&e._tryAddCustomEvent("rrwebQueueSuccess",{enqueuedAt:n.enqueuedAt,attempt:n.attempt,queueLength:t.length})}))}}},{key:"_maskUrl",value:function(e){var t=this.instance.config.session_recording;if(t.maskNetworkRequestFn){var n,r={url:e};return null===(n=r=t.maskNetworkRequestFn(r))||void 0===n?void 0:n.url}return e}},{key:"clearBuffer",value:function(){return this.buffer=void 0,{size:0,data:[],sessionId:this.sessionId,windowId:this.windowId}}},{key:"_flushBuffer",value:function(){var e=this;this.flushBufferTimer&&(clearTimeout(this.flushBufferTimer),this.flushBufferTimer=void 0);var t=this._minimumDuration,n=this.sessionDuration,r=$(n)&&n>=0,i=$(t)&&r&&n<t;return"buffering"===this.status||i?(this.flushBufferTimer=setTimeout((function(){e._flushBuffer()}),2e3),this.buffer||this.clearBuffer()):this.buffer&&0!==this.buffer.data.length?(this._captureSnapshot({$snapshot_bytes:this.buffer.size,$snapshot_data:this.buffer.data,$session_id:this.buffer.sessionId,$window_id:this.buffer.windowId}),this.clearBuffer()):this.buffer||this.clearBuffer()}},{key:"_captureSnapshotBuffered",value:function(e){var t,n=this,r=2+((null===(t=this.buffer)||void 0===t?void 0:t.data.length)||0);(!this.buffer||this.buffer.size+e.$snapshot_bytes+r>943718.4||this.buffer.sessionId&&this.buffer.sessionId!==this.sessionId)&&(this.buffer=this._flushBuffer()),C(this.buffer.sessionId)&&!C(this.sessionId)&&(this.buffer.sessionId=this.sessionId,this.buffer.windowId=this.windowId),this.buffer.size+=e.$snapshot_bytes,this.buffer.data.push(e.$snapshot_data),this.flushBufferTimer||(this.flushBufferTimer=setTimeout((function(){n._flushBuffer()}),2e3))}},{key:"_captureSnapshot",value:function(e){this.instance.capture("$snapshot",e,{method:"POST",_url:this.instance.requestRouter.endpointFor("api",this._endpoint),_noTruncate:!0,_batchKey:"recordings",_metrics:{rrweb_full_snapshot:e.$snapshot_data.type===En}})}}]),e}(),Zn=function(){function e(t){s(this,e),this.instance=t,this.instance.decideEndpointWasHit=this.instance._hasBootstrappedFeatureFlags()}return u(e,[{key:"call",value:function(){var e=this,t=se(JSON.stringify({token:this.instance.config.token,distinct_id:this.instance.get_distinct_id(),groups:this.instance.getGroups(),person_properties:this.instance.get_property(He),group_properties:this.instance.get_property(Ue),disable_flags:this.instance.config.advanced_disable_feature_flags||this.instance.config.advanced_disable_feature_flags_on_first_load||void 0}));this.instance._send_request(this.instance.requestRouter.endpointFor("api","/decide/?v=3"),{data:t,verbose:!0},{method:"POST"},(function(t){return e.parseDecideResponse(t)}))}},{key:"parseDecideResponse",value:function(e){var t,n=this;if(this.instance.featureFlags.setReloadingPaused(!1),this.instance.featureFlags._startReloadTimer(),0!==(null==e?void 0:e.status)){if(!j||!j.body)return Q.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((function(){n.parseDecideResponse(e)}),500);this.instance.toolbar.afterDecideResponse(e),null===(t=this.instance.sessionRecording)||void 0===t||t.afterDecideResponse(e),Ke.afterDecideResponse(e,this.instance),this.instance._afterDecideResponse(e),this.instance.config.advanced_disable_feature_flags_on_first_load||this.instance.config.advanced_disable_feature_flags||this.instance.featureFlags.receivedFeatureFlags(e);var r=null==q?void 0:q.extendPostHogWithSurveys;e.surveys&&!r&&le(this.instance.requestRouter.endpointFor("assets","/static/surveys.js"),(function(e){if(e)return Q.error("Could not load surveys script",e);q.extendPostHogWithSurveys(n.instance)}));var i=null==q?void 0:q.extendPostHogWithExceptionAutoCapture;if(e.autocaptureExceptions&&e.autocaptureExceptions&&x(i)&&le(this.instance.requestRouter.endpointFor("assets","/static/exception-autocapture.js"),(function(t){if(t)return Q.error("Could not load exception autocapture script",t);q.extendPostHogWithExceptionAutocapture(n.instance,e)})),e.siteApps)if(this.instance.config.opt_in_site_apps){var o,s=m(e.siteApps);try{var a=function(){var e=o.value,t=e.id,r=e.url,i=n.instance.requestRouter.endpointFor("api",r);z["__$$ph_site_app_".concat(t)]=n.instance,le(i,(function(e){e&&Q.error("Error while initializing PostHog app with config id ".concat(t),e)}))};for(s.s();!(o=s.n()).done;)a()}catch(e){s.e(e)}finally{s.f()}}else e.siteApps.length>0&&Q.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}else Q.error("Failed to fetch feature flags from PostHog.")}}]),e}(),er=["source"],tr=null!=q&&q.location?Et(q.location.hash,"__posthog")||Et(location.hash,"state"):null,nr=function(){function e(t){s(this,e),this.instance=t}return u(e,[{key:"afterDecideResponse",value:function(e){var t=e.toolbarParams||e.editorParams||(e.toolbarVersion?{toolbarVersion:e.toolbarVersion}:{});e.isAuthenticated&&t.toolbarVersion&&0===t.toolbarVersion.indexOf("toolbar")&&this.loadToolbar(i({},t))}},{key:"maybeLoadToolbar",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if(!q||!j)return!1;n=null!==(e=n)&&void 0!==e?e:q.location,i=null!==(t=i)&&void 0!==t?t:q.history;try{if(!r){try{q.localStorage.setItem("test","test"),q.localStorage.removeItem("test")}catch(e){return!1}r=null==q?void 0:q.localStorage}var o,s=tr||Et(n.hash,"__posthog")||Et(n.hash,"state"),a=s?re((function(){return JSON.parse(atob(decodeURIComponent(s)))}))||re((function(){return JSON.parse(decodeURIComponent(s))})):null;return a&&"ph_authorize"===a.action?((o=a).source="url",o&&Object.keys(o).length>0&&(a.desiredHash?n.hash=a.desiredHash:i?i.replaceState("",j.title,n.pathname+n.search):n.hash="")):((o=JSON.parse(r.getItem("_postHogToolbarParams")||"{}")).source="localstorage",delete o.userIntent),!(!o.token||this.instance.config.token!==o.token)&&(this.loadToolbar(o),!0)}catch(e){return!1}}},{key:"loadToolbar",value:function(e){var t=this;if(!q||z._postHogToolbarLoaded)return!1;z._postHogToolbarLoaded=!0;var n=3e5,r=Math.floor(Date.now()/n)*n,o=this.instance.requestRouter.endpointFor("assets","/static/toolbar.js?t=".concat(r)),s="custom"===this.instance.requestRouter.region&&this.instance.config.advanced_disable_toolbar_metrics,a=i(i({token:this.instance.config.token},e),{},{apiURL:this.instance.requestRouter.endpointFor("ui")},s?{instrument:!1}:{});a.source;var u=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}(a,er);return q.localStorage.setItem("_postHogToolbarParams",JSON.stringify(u)),le(o,(function(e){e?Q.error("Failed to load toolbar",e):(z.ph_load_toolbar||z.ph_load_editor)(a,t.instance)})),ue(q,"turbolinks:load",(function(){z._postHogToolbarLoaded=!1,t.loadToolbar(a)})),!0}},{key:"_loadEditor",value:function(e){return this.loadToolbar(e)}},{key:"maybeLoadEditor",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return this.maybeLoadToolbar(e,t,n)}}]),e}(),rr=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3;s(this,e),this.isPolling=!0,this._event_queue=[],this._empty_queue_count=0,this._poller=void 0,this._pollInterval=t}return u(e,[{key:"setPollInterval",value:function(e){this._pollInterval=e,this.isPolling&&this.poll()}},{key:"poll",value:function(){}},{key:"unload",value:function(){}},{key:"getTime",value:function(){return(new Date).getTime()}}]),e}(),ir=function(e){c(n,rr);var t=h(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3e3;return s(this,n),(r=t.call(this,i)).handlePollRequest=e,r}return u(n,[{key:"enqueue",value:function(e,t,n){this._event_queue.push({url:e,data:t,options:n}),this.isPolling||(this.isPolling=!0,this.poll())}},{key:"poll",value:function(){var e=this;clearTimeout(this._poller),this._poller=setTimeout((function(){if(e._event_queue.length>0){var t=e.formatQueue(),n=function(n){var r=t[n],i=r.url,o=r.data,s=r.options;X(o,(function(t,n){o[n].offset=Math.abs(o[n].timestamp-e.getTime()),delete o[n].timestamp})),e.handlePollRequest(i,o,s)};for(var r in t)n(r);e._event_queue.length=0,e._empty_queue_count=0}else e._empty_queue_count++;e._empty_queue_count>4&&(e.isPolling=!1,e._empty_queue_count=0),e.isPolling&&e.poll()}),this._pollInterval)}},{key:"unload",value:function(){var e=this;clearTimeout(this._poller);var t=this._event_queue.length>0?this.formatQueue():{};this._event_queue.length=0;var n=Object.values(t);[].concat(_(n.filter((function(e){return 0===e.url.indexOf("/e")}))),_(n.filter((function(e){return 0!==e.url.indexOf("/e")})))).map((function(t){var n=t.url,r=t.data,o=t.options;e.handlePollRequest(n,r,i(i({},o),{},{transport:"sendBeacon"}))}))}},{key:"formatQueue",value:function(){var e={};return X(this._event_queue,(function(t){var n=t.url,r=t.data,i=t.options,o=(i?i._batchKey:null)||n;x(e[o])&&(e[o]={data:[],url:n,options:i}),i&&e[o].options&&e[o].options._metrics&&!e[o].options._metrics.rrweb_full_snapshot&&(e[o].options._metrics.rrweb_full_snapshot=i._metrics.rrweb_full_snapshot),e[o].data.push(r)})),e}}]),n}(),or=Uint8Array,sr=Uint16Array,ar=Uint32Array,ur=new or([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),lr=new or([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),cr=new or([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),dr=function(e,t){for(var n=new sr(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];var i=new ar(n[30]);for(r=1;r<30;++r)for(var o=n[r];o<n[r+1];++o)i[o]=o-n[r]<<5|r;return[n,i]},fr=dr(ur,2),hr=fr[0],pr=fr[1];hr[28]=258,pr[258]=28;for(var _r=dr(lr,0)[1],gr=new sr(32768),vr=0;vr<32768;++vr){var mr=(43690&vr)>>>1|(21845&vr)<<1;mr=(61680&(mr=(52428&mr)>>>2|(13107&mr)<<2))>>>4|(3855&mr)<<4,gr[vr]=((65280&mr)>>>8|(255&mr)<<8)>>>1}var yr=function(e,t,n){for(var r=e.length,i=0,o=new sr(t);i<r;++i)++o[e[i]-1];var s,a=new sr(t);for(i=0;i<t;++i)a[i]=a[i-1]+o[i-1]<<1;if(n){s=new sr(1<<t);var u=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],c=t-e[i],d=a[e[i]-1]++<<c,f=d|(1<<c)-1;d<=f;++d)s[gr[d]>>>u]=l}else for(s=new sr(r),i=0;i<r;++i)s[i]=gr[a[e[i]-1]++]>>>15-e[i];return s},br=new or(288);for(vr=0;vr<144;++vr)br[vr]=8;for(vr=144;vr<256;++vr)br[vr]=9;for(vr=256;vr<280;++vr)br[vr]=7;for(vr=280;vr<288;++vr)br[vr]=8;var wr=new or(32);for(vr=0;vr<32;++vr)wr[vr]=5;var kr,Sr=yr(br,9,0),Fr=yr(wr,5,0),Rr=function(e){return(e/8>>0)+(7&e&&1)},Pr=function(e,t,n){(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);var r=new(e instanceof sr?sr:e instanceof ar?ar:or)(n-t);return r.set(e.subarray(t,n)),r},Er=function(e,t,n){n<<=7&t;var r=t/8>>0;e[r]|=n,e[r+1]|=n>>>8},xr=function(e,t,n){n<<=7&t;var r=t/8>>0;e[r]|=n,e[r+1]|=n>>>8,e[r+2]|=n>>>16},Ir=function(e,t){for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,o=n.slice();if(!i)return[new or(0),0];if(1==i){var s=new or(n[0].s+1);return s[n[0].s]=1,[s,1]}n.sort((function(e,t){return e.f-t.f})),n.push({s:-1,f:25001});var a=n[0],u=n[1],l=0,c=1,d=2;for(n[0]={s:-1,f:a.f+u.f,l:a,r:u};c!=i-1;)a=n[n[l].f<n[d].f?l++:d++],u=n[l!=c&&n[l].f<n[d].f?l++:d++],n[c++]={s:-1,f:a.f+u.f,l:a,r:u};var f=o[0].s;for(r=1;r<i;++r)o[r].s>f&&(f=o[r].s);var h=new sr(f+1),p=Cr(n[c-1],h,0);if(p>t){r=0;var _=0,g=p-t,v=1<<g;for(o.sort((function(e,t){return h[t.s]-h[e.s]||e.f-t.f}));r<i;++r){var m=o[r].s;if(!(h[m]>t))break;_+=v-(1<<p-h[m]),h[m]=t}for(_>>>=g;_>0;){var y=o[r].s;h[y]<t?_-=1<<t-h[y]++-1:++r}for(;r>=0&&_;--r){var b=o[r].s;h[b]==t&&(--h[b],++_)}p=t}return[new or(h),p]},Cr=function e(t,n,r){return-1==t.s?Math.max(e(t.l,n,r+1),e(t.r,n,r+1)):n[t.s]=r},Tr=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new sr(++t),r=0,i=e[0],o=1,s=function(e){n[r++]=e},a=1;a<=t;++a)if(e[a]==i&&a!=t)++o;else{if(!i&&o>2){for(;o>138;o-=138)s(32754);o>2&&(s(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(s(i),--o;o>6;o-=6)s(8304);o>2&&(s(o-3<<5|8208),o=0)}for(;o--;)s(i);o=1,i=e[a]}return[n.subarray(0,r),t]},$r=function(e,t){for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},Or=function(e,t,n){var r=n.length,i=Rr(t+2);e[i]=255&r,e[i+1]=r>>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var o=0;o<r;++o)e[i+o+4]=n[o];return 8*(i+4+r)},Ar=function(e,t,n,r,i,o,s,a,u,l,c){Er(t,c++,n),++i[256];for(var d=Ir(i,15),f=d[0],h=d[1],p=Ir(o,15),_=p[0],g=p[1],v=Tr(f),m=v[0],y=v[1],b=Tr(_),w=b[0],k=b[1],S=new sr(19),F=0;F<m.length;++F)S[31&m[F]]++;for(F=0;F<w.length;++F)S[31&w[F]]++;for(var R=Ir(S,7),P=R[0],E=R[1],x=19;x>4&&!P[cr[x-1]];--x);var I,C,T,$,O=l+5<<3,A=$r(i,br)+$r(o,wr)+s,q=$r(i,f)+$r(o,_)+s+14+3*x+$r(S,P)+(2*S[16]+3*S[17]+7*S[18]);if(O<=A&&O<=q)return Or(t,c,e.subarray(u,u+l));if(Er(t,c,1+(q<A)),c+=2,q<A){I=yr(f,h,0),C=f,T=yr(_,g,0),$=_;var M=yr(P,E,0);for(Er(t,c,y-257),Er(t,c+5,k-1),Er(t,c+10,x-4),c+=14,F=0;F<x;++F)Er(t,c+3*F,P[cr[F]]);c+=3*x;for(var D=[m,w],N=0;N<2;++N){var L=D[N];for(F=0;F<L.length;++F){var B=31&L[F];Er(t,c,M[B]),c+=P[B],B>15&&(Er(t,c,L[F]>>>5&127),c+=L[F]>>>12)}}}else I=Sr,C=br,T=Fr,$=wr;for(F=0;F<a;++F)if(r[F]>255){B=r[F]>>>18&31,xr(t,c,I[B+257]),c+=C[B+257],B>7&&(Er(t,c,r[F]>>>23&31),c+=ur[B]);var j=31&r[F];xr(t,c,T[j]),c+=$[j],j>3&&(xr(t,c,r[F]>>>5&8191),c+=lr[j])}else xr(t,c,I[r[F]]),c+=C[r[F]];return xr(t,c,I[256]),c+C[256]},qr=new ar([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Mr=new or(0),Dr=function(){for(var e=new ar(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(1&n&&3988292384)^n>>>1;e[t]=n}return e}(),Nr=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function Lr(e,t){void 0===t&&(t={});var n=function(){var e=4294967295;return{p:function(t){for(var n=e,r=0;r<t.length;++r)n=Dr[255&n^t[r]]^n>>>8;e=n},d:function(){return 4294967295^e}}}(),r=e.length;n.p(e);var i=function(e,t,n,r,i){return function(e,t,n,r,i,o){var s=e.length,a=new or(r+s+5*(1+Math.floor(s/7e3))+i),u=a.subarray(r,a.length-i),l=0;if(!t||s<8)for(var c=0;c<=s;c+=65535){var d=c+65535;d<s?l=Or(u,l,e.subarray(c,d)):(u[c]=o,l=Or(u,l,e.subarray(c,s)))}else{for(var f=qr[t-1],h=f>>>13,p=8191&f,_=(1<<n)-1,g=new sr(32768),v=new sr(_+1),m=Math.ceil(n/3),y=2*m,b=function(t){return(e[t]^e[t+1]<<m^e[t+2]<<y)&_},w=new ar(25e3),k=new sr(288),S=new sr(32),F=0,R=0,P=(c=0,0),E=0,x=0;c<s;++c){var I=b(c),C=32767&c,T=v[I];if(g[C]=T,v[I]=C,E<=c){var $=s-c;if((F>7e3||P>24576)&&$>423){l=Ar(e,u,0,w,k,S,R,P,x,c-x,l),P=F=R=0,x=c;for(var O=0;O<286;++O)k[O]=0;for(O=0;O<30;++O)S[O]=0}var A=2,q=0,M=p,D=C-T&32767;if($>2&&I==b(c-D))for(var N=Math.min(h,$)-1,L=Math.min(32767,c),B=Math.min(258,$);D<=L&&--M&&C!=T;){if(e[c+A]==e[c+A-D]){for(var j=0;j<B&&e[c+j]==e[c+j-D];++j);if(j>A){if(A=j,q=D,j>N)break;var H=Math.min(D,j-2),U=0;for(O=0;O<H;++O){var V=c-D+O+32768&32767,W=V-g[V]+32768&32767;W>U&&(U=W,T=V)}}}D+=(C=T)-(T=g[C])+32768&32767}if(q){w[P++]=268435456|pr[A]<<18|_r[q];var z=31&pr[A],G=31&_r[q];R+=ur[z]+lr[G],++k[257+z],++S[G],E=c+A,++F}else w[P++]=e[c],++k[e[c]]}}l=Ar(e,u,o,w,k,S,R,P,x,c-x,l),o||(l=Or(u,l,Mr))}return Pr(a,0,r+Rr(l)+i)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,r,!i)}(e,t,function(e){return 10+(e.filename&&e.filename.length+1||0)}(t),8),o=i.length;return function(e,t){var n=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:9==t.level?2:0,e[9]=3,0!=t.mtime&&Nr(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),n){e[3]=8;for(var r=0;r<=n.length;++r)e[r+10]=n.charCodeAt(r)}}(i,t),Nr(i,o-8,n.d()),Nr(i,o-4,r),i}function Br(e,t){var n=e.length;if(!t&&"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);for(var r=new or(e.length+(e.length>>>1)),i=0,o=function(e){r[i++]=e},s=0;s<n;++s){if(i+5>r.length){var a=new or(i+8+(n-s<<1));a.set(r),r=a}var u=e.charCodeAt(s);u<128||t?o(u):u<2048?(o(192|u>>>6),o(128|63&u)):u>55295&&u<57344?(o(240|(u=65536+(1047552&u)|1023&e.charCodeAt(++s))>>>18),o(128|u>>>12&63),o(128|u>>>6&63),o(128|63&u)):(o(224|u>>>12),o(128|u>>>6&63),o(128|63&u))}return Pr(r,0,i)}!function(e){e.GZipJS="gzip-js",e.Base64="base64"}(kr||(kr={}));var jr,Hr=function(e,t,n){var r=t||{};r.ip=n.ip?1:0,r._=(new Date).getTime().toString(),r.ver=y.LIB_VERSION;var i=e.split("?");if(i.length>1){var o,s=m(i[1].split("&"));try{for(s.s();!(o=s.n()).done;){var a=o.value.split("=")[0];x(r[a])||delete r[a]}}catch(e){s.e(e)}finally{s.f()}}var u=e.indexOf("?")>-1?"&":"?";return e+u+function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"&",i=[];return X(e,(function(e,r){x(e)||x(r)||"undefined"===r||(t=encodeURIComponent(function(e){return e instanceof File}(e)?e.name:e.toString()),n=encodeURIComponent(r),i[i.length]=n+"="+t)})),i.join(r)}(r)},Ur=function e(t,n){if(n.blob&&t.buffer)return new Blob([R(t)?t:t.buffer],{type:"text/plain"});if(n.sendBeacon||n.blob){var r=e(t,{method:"POST"});return new Blob([r],{type:"application/x-www-form-urlencoded"})}return"POST"!==n.method?null:(i=F(t)||R(t)?"data="+encodeURIComponent(t):"data="+encodeURIComponent(t.data),"compression"in t&&t.compression&&(i+="&compression="+t.compression),i);var i},Vr=function(e){if(U&&"fetch"===e.options.transport){var t,n=Ur(e.data,e.options),r=new Headers;X(r,(function(e,t){r.append(t,e)})),"POST"!==e.options.method||e.options.blob||r.append("Content-Type","application/x-www-form-urlencoded");var o=e.url;return $(e.retriesPerformedSoFar)&&e.retriesPerformedSoFar>0&&(o=Hr(o,{retry_count:e.retriesPerformedSoFar},{})),void U(o,{method:(null===(t=e.options)||void 0===t?void 0:t.method)||"GET",headers:r,keepalive:"POST"===e.options.method,body:n}).then((function(t){var n=t.status;return t.text().then((function(t){var o,s;if(null===(o=e.onResponse)||void 0===o||o.call(e,{statusCode:n,responseText:t}),200!==n)P(e.onError)&&e.onError({statusCode:n,responseText:t}),(n<400||n>500)&&e.retryQueue.enqueue(i(i({},e),{},{headers:r,retriesPerformedSoFar:(e.retriesPerformedSoFar||0)+1})),null===(s=e.callback)||void 0===s||s.call(e,{status:0});else try{var a;null===(a=e.callback)||void 0===a||a.call(e,JSON.parse(t))}catch(e){Q.error(e)}}))})).catch((function(t){var n;Q.error(t),null===(n=e.callback)||void 0===n||n.call(e,{status:0})}))}return Wr(e)},Wr=function(e){var t=e.url,n=e.data,r=e.headers,i=e.options,o=e.callback,s=e.retriesPerformedSoFar,a=e.retryQueue,u=e.onError,l=e.timeout,c=void 0===l?6e4:l,d=e.onResponse;$(s)&&s>0&&(t=Hr(t,{retry_count:s},{}));var f=new XMLHttpRequest;f.open(i.method||"GET",t,!0);var h=Ur(n,i);X(r,(function(e,t){f.setRequestHeader(t,e)})),"POST"!==i.method||i.blob||f.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),f.timeout=c,f.withCredentials=!0,f.onreadystatechange=function(){if(4===f.readyState){var e={statusCode:f.status,responseText:f.responseText};if(null==d||d(e),200===f.status){if(o){var l;try{l=JSON.parse(f.responseText)}catch(e){return void Q.error(e)}o(l)}}else P(u)&&u(e),(f.status<400||f.status>500)&&a.enqueue({url:t,data:n,options:i,headers:r,retriesPerformedSoFar:(s||0)+1,callback:o}),null==o||o({status:0})}},f.send(h)},zr=function(e){c(n,rr);var t=h(n);function n(e,r){var i;return s(this,n),(i=t.call(this)).isPolling=!1,i.queue=[],i.areWeOnline=!0,i.onRequestError=e,i.rateLimiter=r,!x(q)&&"onLine"in q.navigator&&(i.areWeOnline=q.navigator.onLine,q.addEventListener("online",(function(){i._handleWeAreNowOnline()})),q.addEventListener("offline",(function(){i.areWeOnline=!1}))),i}return u(n,[{key:"enqueue",value:function(e){var t=e.retriesPerformedSoFar||0;if(!(t>=10)){var n=function(e){var t=3e3*Math.pow(2,e),n=t/2,r=Math.min(18e5,t),i=(Math.random()-.5)*(r-n);return Math.ceil(r+i)}(t),r=new Date(Date.now()+n);this.queue.push({retryAt:r,requestData:e});var i="Enqueued failed request for retry in ".concat(n);navigator.onLine||(i+=" (Browser is offline)"),Q.warn(i),this.isPolling||(this.isPolling=!0,this.poll())}}},{key:"poll",value:function(){var e=this;this._poller&&clearTimeout(this._poller),this._poller=setTimeout((function(){e.areWeOnline&&e.queue.length>0&&e.flush(),e.poll()}),this._pollInterval)}},{key:"flush",value:function(){var e=new Date(Date.now()),t=this.queue.filter((function(t){return t.retryAt<e}));if(t.length>0){this.queue=this.queue.filter((function(t){return t.retryAt>=e}));var n,r=m(t);try{for(r.s();!(n=r.n()).done;){var i=n.value.requestData;this._executeXhrRequest(i)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"unload",value:function(){this._poller&&(clearTimeout(this._poller),this._poller=void 0);var e,t=m(this.queue);try{for(t.s();!(e=t.n()).done;){var n=e.value.requestData,r=n.url,o=n.data,s=n.options;if(this.rateLimiter.isRateLimited(s._batchKey))Q.warn("[RetryQueue] is quota limited. Dropping request.");else try{null==q||q.navigator.sendBeacon(r,Ur(o,i(i({},s),{},{sendBeacon:!0})))}catch(e){Q.error(e)}}}catch(e){t.e(e)}finally{t.f()}this.queue=[]}},{key:"_executeXhrRequest",value:function(e){var t=e.url,n=e.data,r=e.options,i=e.headers,o=e.callback,s=e.retriesPerformedSoFar;this.rateLimiter.isRateLimited(r._batchKey)||Vr({url:t,data:n||{},options:r||{},headers:i||{},retriesPerformedSoFar:s||0,callback:o,retryQueue:this,onError:this.onRequestError,onResponse:this.rateLimiter.checkForLimiting})}},{key:"_handleWeAreNowOnline",value:function(){this.areWeOnline=!0,this.flush()}}]),n}(),Gr=1800,Qr=function(){function e(t,n,r,i){s(this,e),l(this,"_sessionIdChangedHandlers",[]),this.config=t,this.persistence=n,this._windowId=void 0,this._sessionId=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this._sessionIdGenerator=r||lt,this._windowIdGenerator=i||lt;var o=t.persistence_name||t.token,a=t.session_idle_timeout_seconds||Gr;if($(a)?a>Gr?Q.warn("session_idle_timeout_seconds cannot be greater than 30 minutes. Using 30 minutes instead."):a<60&&Q.warn("session_idle_timeout_seconds cannot be less than 60 seconds. Using 60 seconds instead."):(Q.warn("session_idle_timeout_seconds must be a number. Defaulting to 30 minutes."),a=Gr),this._sessionTimeoutMs=1e3*Math.min(Math.max(a,60),Gr),this._window_id_storage_key="ph_"+o+"_window_id",this._primary_window_exists_storage_key="ph_"+o+"_primary_window_exists",this._canUseSessionStorage()){var u=kt.parse(this._window_id_storage_key),c=kt.parse(this._primary_window_exists_storage_key);u&&!c?this._windowId=u:kt.remove(this._window_id_storage_key),kt.set(this._primary_window_exists_storage_key,!0)}this._listenToReloadWindow()}return u(e,[{key:"onSessionId",value:function(e){var t=this;return x(this._sessionIdChangedHandlers)&&(this._sessionIdChangedHandlers=[]),this._sessionIdChangedHandlers.push(e),this._sessionId&&e(this._sessionId,this._windowId),function(){t._sessionIdChangedHandlers=t._sessionIdChangedHandlers.filter((function(t){return t!==e}))}}},{key:"_canUseSessionStorage",value:function(){return"memory"!==this.config.persistence&&!this.persistence.disabled&&kt.is_supported()}},{key:"_setWindowId",value:function(e){e!==this._windowId&&(this._windowId=e,this._canUseSessionStorage()&&kt.set(this._window_id_storage_key,e))}},{key:"_getWindowId",value:function(){return this._windowId?this._windowId:this._canUseSessionStorage()?kt.parse(this._window_id_storage_key):null}},{key:"_setSessionId",value:function(e,t,n){e===this._sessionId&&t===this._sessionActivityTimestamp&&n===this._sessionStartTimestamp||(this._sessionStartTimestamp=n,this._sessionActivityTimestamp=t,this._sessionId=e,this.persistence.register(l({},Ne,[t,e,n])))}},{key:"_getSessionId",value:function(){if(this._sessionId&&this._sessionActivityTimestamp&&this._sessionStartTimestamp)return[this._sessionActivityTimestamp,this._sessionId,this._sessionStartTimestamp];var e=this.persistence.props[Ne];return F(e)&&2===e.length&&e.push(e[0]),e||[0,null,0]}},{key:"resetSessionId",value:function(){this._setSessionId(null,null,null)}},{key:"_listenToReloadWindow",value:function(){var e=this;null==q||q.addEventListener("beforeunload",(function(){e._canUseSessionStorage()&&kt.remove(e._primary_window_exists_storage_key)}))}},{key:"checkAndGetSessionAndWindowId",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:null)||(new Date).getTime(),n=p(this._getSessionId(),3),r=n[0],i=n[1],o=n[2],s=this._getWindowId(),a=o&&o>0&&Math.abs(t-o)>864e5,u=!1,l=!i,c=!e&&Math.abs(t-r)>this._sessionTimeoutMs;l||c||a?(i=this._sessionIdGenerator(),s=this._windowIdGenerator(),Q.info("[SessionId] new session ID generated",{sessionId:i,windowId:s,changeReason:{noSessionId:l,activityTimeout:c,sessionPastMaximumLength:a}}),o=t,u=!0):s||(s=this._windowIdGenerator(),u=!0);var d=0===r||!e||a?t:r,f=0===o?(new Date).getTime():o;return this._setWindowId(s),this._setSessionId(i,d,f),u&&this._sessionIdChangedHandlers.forEach((function(e){return e(i,s)})),{sessionId:i,windowId:s,sessionStartTimestamp:f}}}]),e}();!function(e){e.US="us",e.EU="eu",e.CUSTOM="custom"}(jr||(jr={}));var Yr=function(){function e(t){s(this,e),this.instance=t}return u(e,[{key:"apiHost",get:function(){return this.instance.config.api_host.trim().replace(/\/$/,"")}},{key:"uiHost",get:function(){var e;return null===(e=this.instance.config.ui_host)||void 0===e?void 0:e.replace(/\/$/,"")}},{key:"region",get:function(){switch(this.apiHost){case"https://app.posthog.com":case"https://us.posthog.com":return jr.US;case"https://eu.posthog.com":return jr.EU;default:return jr.CUSTOM}}},{key:"endpointFor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(t&&(t="/"===t[0]?t:"/".concat(t)),"ui"===e)return(this.uiHost||this.apiHost)+t;if(this.region===jr.CUSTOM)return this.apiHost+t;var n="i.posthog.com"+t;switch(e){case"assets":return"https://".concat(this.region,"-assets.").concat(n);case"api":return"https://".concat(this.region,".").concat(n)}}}]),e}(),Jr=u((function e(t,n,r,i){s(this,e),this.name="posthog-js",this.setupOnce=function(e){e((function(e){var o,s,a,u,l;if("error"!==e.level||!t.__loaded)return e;e.tags||(e.tags={});var c=t.requestRouter.endpointFor("ui","/person/"+t.get_distinct_id());e.tags["PostHog Person URL"]=c,t.sessionRecordingStarted()&&(e.tags["PostHog Recording URL"]=t.get_session_replay_url({withTimestamp:!0}));var d=(null===(o=e.exception)||void 0===o?void 0:o.values)||[],f={$exception_message:null===(s=d[0])||void 0===s?void 0:s.value,$exception_type:null===(a=d[0])||void 0===a?void 0:a.type,$exception_personURL:c,$sentry_event_id:e.event_id,$sentry_exception:e.exception,$sentry_exception_message:null===(u=d[0])||void 0===u?void 0:u.value,$sentry_exception_type:null===(l=d[0])||void 0===l?void 0:l.type,$sentry_tags:e.tags};return n&&r&&(f.$sentry_url=(i||"https://sentry.io/organizations/")+n+"/issues/?project="+r+"&query="+e.event_id),t.capture("$exception",f),e}))}})),Kr=function(){function e(t){var n=this;s(this,e),l(this,"_hasSeenPageView",!1),l(this,"_updateScrollData",(function(){var e,t,r,i;n._pageViewData||(n._pageViewData=n._createPageViewData());var o=n._pageViewData,s=n._scrollY(),a=n._scrollHeight(),u=n._contentY(),l=n._contentHeight();o.lastScrollY=s,o.maxScrollY=Math.max(s,null!==(e=o.maxScrollY)&&void 0!==e?e:0),o.maxScrollHeight=Math.max(a,null!==(t=o.maxScrollHeight)&&void 0!==t?t:0),o.lastContentY=u,o.maxContentY=Math.max(u,null!==(r=o.maxContentY)&&void 0!==r?r:0),o.maxContentHeight=Math.max(l,null!==(i=o.maxContentHeight)&&void 0!==i?i:0)})),this._instance=t}return u(e,[{key:"_createPageViewData",value:function(){var e;return{pathname:null!==(e=null==q?void 0:q.location.pathname)&&void 0!==e?e:""}}},{key:"doPageView",value:function(){var e,t;return this._hasSeenPageView?(t=this._pageViewData,this._pageViewData=this._createPageViewData()):(this._hasSeenPageView=!0,t=void 0,this._pageViewData||(this._pageViewData=this._createPageViewData())),setTimeout(this._updateScrollData,0),i({$prev_pageview_pathname:null===(e=t)||void 0===e?void 0:e.pathname},this._calculatePrevPageScrollProperties(t))}},{key:"doPageLeave",value:function(){var e=this._pageViewData;return i({$prev_pageview_pathname:null==e?void 0:e.pathname},this._calculatePrevPageScrollProperties(e))}},{key:"_calculatePrevPageScrollProperties",value:function(e){if(!e||null==e.maxScrollHeight||null==e.lastScrollY||null==e.maxScrollY||null==e.maxContentHeight||null==e.lastContentY||null==e.maxContentY)return{};var t=e.maxScrollHeight,n=e.lastScrollY,r=e.maxScrollY,i=e.maxContentHeight,o=e.lastContentY,s=e.maxContentY;return t=Math.ceil(t),n=Math.ceil(n),r=Math.ceil(r),i=Math.ceil(i),o=Math.ceil(o),s=Math.ceil(s),{$prev_pageview_last_scroll:n,$prev_pageview_last_scroll_percentage:t<=1?1:Xr(n/t,0,1),$prev_pageview_max_scroll:r,$prev_pageview_max_scroll_percentage:t<=1?1:Xr(r/t,0,1),$prev_pageview_last_content:o,$prev_pageview_last_content_percentage:i<=1?1:Xr(o/i,0,1),$prev_pageview_max_content:s,$prev_pageview_max_content_percentage:i<=1?1:Xr(s/i,0,1)}}},{key:"startMeasuringScrollPosition",value:function(){null==q||q.addEventListener("scroll",this._updateScrollData,!0),null==q||q.addEventListener("scrollend",this._updateScrollData,!0),null==q||q.addEventListener("resize",this._updateScrollData)}},{key:"stopMeasuringScrollPosition",value:function(){null==q||q.removeEventListener("scroll",this._updateScrollData),null==q||q.removeEventListener("scrollend",this._updateScrollData),null==q||q.removeEventListener("resize",this._updateScrollData)}},{key:"_scrollElement",value:function(){if(!this._instance.config.scroll_root_selector)return null==q?void 0:q.document.documentElement;var e,t=m(F(this._instance.config.scroll_root_selector)?this._instance.config.scroll_root_selector:[this._instance.config.scroll_root_selector]);try{for(t.s();!(e=t.n()).done;){var n=e.value,r=null==q?void 0:q.document.querySelector(n);if(r)return r}}catch(e){t.e(e)}finally{t.f()}}},{key:"_scrollHeight",value:function(){var e=this._scrollElement();return e?Math.max(0,e.scrollHeight-e.clientHeight):0}},{key:"_scrollY",value:function(){if(this._instance.config.scroll_root_selector){var e=this._scrollElement();return e&&e.scrollTop||0}return q&&(q.scrollY||q.pageYOffset||q.document.documentElement.scrollTop)||0}},{key:"_contentHeight",value:function(){var e=this._scrollElement();return(null==e?void 0:e.scrollHeight)||0}},{key:"_contentY",value:function(){var e=this._scrollElement(),t=(null==e?void 0:e.clientHeight)||0;return this._scrollY()+t}}]),e}();function Xr(e,t,n){return Math.max(t,Math.min(e,n))}var Zr,ei,ti,ni={icontains:function(e){return!!q&&q.location.href.toLowerCase().indexOf(e.toLowerCase())>-1},regex:function(e){return!!q&&function(e,t){return!!function(e){try{new RegExp(e)}catch(e){return!1}return!0}(t)&&new RegExp(t).test(e)}(q.location.href,e)},exact:function(e){return(null==q?void 0:q.location.href)===e}},ri=function(){function e(t){s(this,e),this.instance=t}return u(e,[{key:"getSurveys",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.instance.get_property(Ve);if(r&&!n)return e(r);this.instance._send_request(this.instance.requestRouter.endpointFor("api","/api/surveys/?token=".concat(this.instance.config.token)),{},{method:"GET"},(function(n){var r,i=n.surveys||[];return null===(r=t.instance.persistence)||void 0===r||r.register(l({},Ve,i)),e(i)}))}},{key:"getActiveMatchingSurveys",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.getSurveys((function(n){var r=n.filter((function(e){return!(!e.start_date||e.end_date)})).filter((function(e){var t,n,r,i;if(!e.conditions)return!0;var o=null===(t=e.conditions)||void 0===t||!t.url||ni[null!==(n=null===(r=e.conditions)||void 0===r?void 0:r.urlMatchType)&&void 0!==n?n:"icontains"](e.conditions.url),s=null===(i=e.conditions)||void 0===i||!i.selector||(null==j?void 0:j.querySelector(e.conditions.selector));return o&&s})).filter((function(e){if(!e.linked_flag_key&&!e.targeting_flag_key)return!0;var n=!e.linked_flag_key||t.instance.featureFlags.isFeatureEnabled(e.linked_flag_key),r=!e.targeting_flag_key||t.instance.featureFlags.isFeatureEnabled(e.targeting_flag_key);return n&&r}));return e(r)}),n)}}]),e}(),ii=function(){function e(){var t=this;s(this,e),l(this,"limits",{}),l(this,"checkForLimiting",(function(e){var n=e.responseText;if(n&&n.length)try{(JSON.parse(n).quota_limited||[]).forEach((function(e){Q.info("[RateLimiter] ".concat(e||"events"," is quota limited.")),t.limits[e]=(new Date).getTime()+6e4}))}catch(e){return void Q.warn('[RateLimiter] could not rate limit - continuing. Error: "'.concat(null==e?void 0:e.message,'"'),{text:n})}}))}return u(e,[{key:"isRateLimited",value:function(e){var t=this.limits[e||"events"]||!1;return!1!==t&&(new Date).getTime()<t}}]),e}(),oi=function(){return i({initialPathName:(null==H?void 0:H.pathname)||"",referringDomain:Fn.referringDomain()},Fn.campaignParams())},si=function(){function e(t,n,r){var i=this;s(this,e),l(this,"_onSessionIdCallback",(function(e){var t=i._getStoredProps();if(!t||t.sessionId!==e){var n={sessionId:e,props:i._sessionSourceParamGenerator()};i._persistence.register(l({},Qe,n))}})),this._sessionIdManager=t,this._persistence=n,this._sessionSourceParamGenerator=r||oi,this._sessionIdManager.onSessionId(this._onSessionIdCallback)}return u(e,[{key:"_getStoredProps",value:function(){return this._persistence.props[Qe]}},{key:"getSessionProps",value:function(){var e,t=null===(e=this._getStoredProps())||void 0===e?void 0:e.props;return t?{$client_session_initial_referring_host:t.referringDomain,$client_session_initial_pathname:t.initialPathName,$client_session_initial_utm_source:t.utm_source,$client_session_initial_utm_campaign:t.utm_campaign,$client_session_initial_utm_medium:t.utm_medium,$client_session_initial_utm_content:t.utm_content,$client_session_initial_utm_term:t.utm_term}:{}}}]),e}(),ai=["ahrefsbot","ahrefssiteaudit","applebot","baiduspider","bingbot","bingpreview","bot.htm","bot.php","crawler","duckduckbot","facebookexternal","facebookcatalog","gptbot","http://yandex.com/bots","hubspot","ia_archiver","linkedinbot","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","semrushbot","sitebulb","slurp","turnitin","twitterbot","vercelbot","yahoo! slurp","yandexbot","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleweblight","mediapartners-google","storebot-google"],ui=function(e,t){if(!e)return!1;var n=e.toLowerCase();return ai.concat(t||[]).some((function(e){var t=e.toLowerCase();return n.includes?n.includes(t):-1!==n.indexOf(t)}))};!function(e){e[e.INIT_MODULE=0]="INIT_MODULE",e[e.INIT_SNIPPET=1]="INIT_SNIPPET"}(Zr||(Zr={}));var li=function(){},ci={},di="posthog",fi=!Ft&&-1===(null==W?void 0:W.indexOf("MSIE"))&&-1===(null==W?void 0:W.indexOf("Mozilla")),hi=function(){var e,t,n;return{api_host:"https://app.posthog.com",api_method:"POST",api_transport:"XHR",ui_host:null,token:"",autocapture:!0,rageclick:!0,cross_subdomain_cookie:(t=null==j?void 0:j.location,n=null==t?void 0:t.hostname,!!I(n)&&"herokuapp.com"!==n.split(".").slice(-2).join(".")),persistence:"localStorage+cookie",persistence_name:"",cookie_name:"",loaded:li,store_google:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageview:!0,capture_pageleave:!0,debug:!1,verbose:!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_cookie:!1,enable_recording_console_log:void 0,secure_cookie:"https:"===(null==q||null===(e=q.location)||void 0===e?void 0:e.protocol),ip:!0,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_blacklist:[],property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},inapp_protocol:"//",inapp_link_new_window:!1,request_batching:!0,properties_string_max_length:65535,session_recording:{},mask_all_element_attributes:!1,mask_all_text:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_disable_toolbar_metrics:!1,on_request_error:function(e){var t="Bad HTTP status: "+e.statusCode+" "+e.responseText;Q.error(t)},get_device_id:function(e){return e},_onCapture:li,capture_performance:void 0,name:"posthog",callback_fn:"posthog._jsc",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800}},pi=function(e,t,n,r){var i,o=n!==di&&ti?n?ti[n]:void 0:ti,s={initComplete:!1,syncCode:!1},a=function(e){return function(t){s[e]||(s[e]=!0,s.initComplete&&s.syncCode&&(null==r||r(t)))}};if(o&&ei===Zr.INIT_MODULE)i=o;else{if(o&&!F(o))return void Q.error("You have already initialized "+n);i=new gi}return i._init(e,t,n,a("initComplete")),i.toolbar.maybeLoadToolbar(),i.sessionRecording=new Xn(i),i.sessionRecording.startRecordingIfEnabled(),i.config.disable_scroll_properties||i.pageViewManager.startMeasuringScrollPosition(),i.__autocapture=i.config.autocapture,Ke._setIsAutocaptureEnabled(i),Ke._isAutocaptureEnabled&&(i.__autocapture=i.config.autocapture,Ke.enabledForProject(i.config.token,100,100)?Ke.isBrowserSupported()?Ke.init(i):(i.__autocapture=!1,Q.info("Disabling Automatic Event Collection because this browser is not supported")):(i.__autocapture=!1,Q.info("Not in active bucket: disabling Automatic Event Collection."))),y.DEBUG=y.DEBUG||i.config.debug,!x(o)&&F(o)&&(i._execute_array.call(i.people,o.people),i._execute_array(o)),a("syncCode")(i),i},_i=function(){function e(){s(this,e),l(this,"__forceAllowLocalhost",!1)}return u(e,[{key:"_forceAllowLocalhost",get:function(){return this.__forceAllowLocalhost},set:function(e){Q.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=e}}]),e}(),gi=function(){function e(){var t=this;s(this,e),l(this,"webPerformance",new _i),this.config=hi(),this.compression={},this.decideEndpointWasHit=!1,this.SentryIntegration=Jr,this.segmentIntegration=function(){return function(e){Promise&&Promise.resolve||Q.warn("This browser does not have Promise support, and can not use the segment integration");var t=function(t,n){t.event.userId||t.event.anonymousId===e.get_distinct_id()||e.reset(),t.event.userId&&t.event.userId!==e.get_distinct_id()&&(e.register({distinct_id:t.event.userId}),e.reloadFeatureFlags());var r=e._calculate_event_properties(n,t.event.properties);return t.event.properties=Object.assign({},r,t.event.properties),t};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:function(){return!0},load:function(){return Promise.resolve()},track:function(e){return t(e,e.event.event)},page:function(e){return t(e,"$pageview")},identify:function(e){return t(e,"$identify")},screen:function(e){return t(e,"$screen")}}}(t)},this.__captureHooks=[],this.__request_queue=[],this.__loaded=!1,this.__loaded_recorder_version=void 0,this.__autocapture=void 0,this._jsc=function(){},this.analyticsDefaultEndpoint="/e/",this.elementsChainAsString=!1,this.featureFlags=new nt(this),this.toolbar=new nr(this),this.pageViewManager=new Kr(this),this.surveys=new ri(this),this.rateLimiter=new ii,this.requestRouter=new Yr(this),this.people={set:function(e,n,r){var i=I(e)?l({},e,n):e;t.setPersonProperties(i),null==r||r({})},set_once:function(e,n,r){var i=I(e)?l({},e,n):e;t.setPersonProperties(void 0,i),null==r||r({})}}}return u(e,[{key:"init",value:function(e,t,n){if(x(n))Q.critical("You must name your new library: init(token, config, name)");else if(x(e)||function(e){return I(e)&&0===e.trim().length}(e))Q.critical("You must provide a token to initialize posthog");else{if(n!==di){var r=pi(e,t,n,(function(e){ti[n]=e,e._loaded()}));return ti[n]=r,r}Q.critical("You must initialize the main posthog object right after you include the PostHog js snippet")}}},{key:"_init",value:function(e){var t,n,r,o=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0,u=arguments.length>3?arguments[3]:void 0;this.__loaded=!0,this.config={},this._triggered_notifs=[];var l,c={segmentRegister:!1,syncCode:!1},d=function(e){return function(){c[e]||(c[e]=!0,c.segmentRegister&&c.syncCode&&(null==u||u(o)))}};if(s.request_headers=s.request_headers||s.xhr_headers,this.set_config(Z({},hi(),s,{name:a,token:e,callback_fn:(a===di?a:di+"."+a)+"._jsc"})),this._jsc=function(){},(null!=q&&null!==(t=q.rrweb)&&void 0!==t&&t.record||null!=q&&q.rrwebRecord)&&(this.__loaded_recorder_version=null==q||null===(l=q.rrweb)||void 0===l?void 0:l.version),this.persistence=new Pn(this.config),this.sessionPersistence="sessionStorage"===this.config.persistence?this.persistence:new Pn(i(i({},this.config),{},{persistence:"sessionStorage"})),this._requestQueue=new ir(this._handle_queued_event.bind(this)),this._retryQueue=new zr(this.config.on_request_error,this.rateLimiter),this.__captureHooks=[],this.__request_queue=[],this.sessionManager=new Qr(this.config,this.persistence),this.sessionPropsManager=new si(this.sessionManager,this.persistence),this._gdpr_init(),s.segment?(this.config.get_device_id=function(){return s.segment.user().anonymousId()},s.segment.user().id()&&(this.register({distinct_id:s.segment.user().id()}),this.persistence.set_user_state("identified")),s.segment.register(this.segmentIntegration()).then(d("segmentRegister"))):d("segmentRegister")(),void 0!==(null===(n=s.bootstrap)||void 0===n?void 0:n.distinctID)){var f,h,p=this.config.get_device_id(lt()),_=null!==(f=s.bootstrap)&&void 0!==f&&f.isIdentifiedID?p:s.bootstrap.distinctID;this.persistence.set_user_state(null!==(h=s.bootstrap)&&void 0!==h&&h.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:s.bootstrap.distinctID,$device_id:_})}if(this._hasBootstrappedFeatureFlags()){var g,v,m=Object.keys((null===(g=s.bootstrap)||void 0===g?void 0:g.featureFlags)||{}).filter((function(e){var t,n;return!(null===(t=s.bootstrap)||void 0===t||null===(n=t.featureFlags)||void 0===n||!n[e])})).reduce((function(e,t){var n,r;return e[t]=(null===(n=s.bootstrap)||void 0===n||null===(r=n.featureFlags)||void 0===r?void 0:r[t])||!1,e}),{}),y=Object.keys((null===(v=s.bootstrap)||void 0===v?void 0:v.featureFlagPayloads)||{}).filter((function(e){return m[e]})).reduce((function(e,t){var n,r,i,o;return null!==(n=s.bootstrap)&&void 0!==n&&null!==(r=n.featureFlagPayloads)&&void 0!==r&&r[t]&&(e[t]=null===(i=s.bootstrap)||void 0===i||null===(o=i.featureFlagPayloads)||void 0===o?void 0:o[t]),e}),{});this.featureFlags.receivedFeatureFlags({featureFlags:m,featureFlagPayloads:y})}if(!this.get_distinct_id()){var b=this.config.get_device_id(lt());this.register_once({distinct_id:b,$device_id:b},""),this.persistence.set_user_state("anonymous")}null==q||null===(r=q.addEventListener)||void 0===r||r.call(q,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this)),d("syncCode")()}},{key:"_afterDecideResponse",value:function(e){var t;if(this.compression={},e.supportedCompression&&!this.config.disable_compression){var n,r={},i=m(e.supportedCompression);try{for(i.s();!(n=i.n()).done;)r[n.value]=!0}catch(e){i.e(e)}finally{i.f()}this.compression=r}null!==(t=e.analytics)&&void 0!==t&&t.endpoint&&(this.analyticsDefaultEndpoint=e.analytics.endpoint),e.elementsChainAsString&&(this.elementsChainAsString=e.elementsChainAsString)}},{key:"_loaded",value:function(){var e=this.config.advanced_disable_decide;e||this.featureFlags.setReloadingPaused(!0);try{this.config.loaded(this)}catch(e){Q.critical("`loaded` function failed",e)}this._start_queue_if_opted_in(),this.config.capture_pageview&&j&&this.capture("$pageview",{title:j.title},{send_instantly:!0}),e||(new Zn(this).call(),this.featureFlags.resetRequestQueue())}},{key:"_start_queue_if_opted_in",value:function(){var e;this.has_opted_out_capturing()||this.config.request_batching&&(null===(e=this._requestQueue)||void 0===e||e.poll())}},{key:"_dom_loaded",value:function(){var e=this;this.has_opted_out_capturing()||K(this.__request_queue,(function(t){e._send_request.apply(e,_(t))})),this.__request_queue=[],this._start_queue_if_opted_in()}},{key:"_prepare_callback",value:function(e,t){if(x(e))return null;if(Ft)return function(n){e(n,t)};var n=this._jsc,r=""+Math.floor(1e8*Math.random()),i=this.config.callback_fn+"["+r+"]";return n[r]=function(i){delete n[r],e(i,t)},i}},{key:"_handle_unload",value:function(){var e,t;this.config.request_batching?(this.config.capture_pageview&&this.config.capture_pageleave&&this.capture("$pageleave"),null===(e=this._requestQueue)||void 0===e||e.unload(),null===(t=this._retryQueue)||void 0===t||t.unload()):this.config.capture_pageview&&this.config.capture_pageleave&&this.capture("$pageleave",null,{transport:"sendBeacon"})}},{key:"_handle_queued_event",value:function(e,t,n){var r=JSON.stringify(t);this.__compress_and_send_json_request(e,r,n||ci,li)}},{key:"__compress_and_send_json_request",value:function(e,t,n,r){var o=function(e,t,n){return e===kr.GZipJS?[Lr(Br(t),{mtime:0}),i(i({},n),{},{blob:!0,urlQueryArgs:{compression:kr.GZipJS}})]:[{data:se(t)},n]}(this.compression[kr.GZipJS]?kr.GZipJS:kr.Base64,t,n),s=p(o,2),a=s[0],u=s[1];this._send_request(e,a,u,r)}},{key:"_send_request",value:function(e,t,n,r){if(this.__loaded&&this._retryQueue&&!this.rateLimiter.isRateLimited(n._batchKey))if(fi)this.__request_queue.push([e,t,n,r]);else{var o={method:this.config.api_method,transport:this.config.api_transport,verbose:this.config.verbose};n=Z(o,n||{}),Ft||(n.method="GET");var s=q&&"sendBeacon"in q.navigator&&"sendBeacon"===n.transport;if(e=Hr(e,n.urlQueryArgs||{},{ip:this.config.ip}),s)try{null==q||q.navigator.sendBeacon(e,Ur(t,i(i({},n),{},{sendBeacon:!0})))}catch(e){}else if(Ft||!j)try{Vr({url:e,data:t,headers:this.config.request_headers,options:n,callback:r,retriesPerformedSoFar:0,retryQueue:this._retryQueue,onError:this.config.on_request_error,onResponse:this.rateLimiter.checkForLimiting})}catch(e){Q.error(e)}else{var a,u=j.createElement("script");u.type="text/javascript",u.async=!0,u.defer=!0,u.src=e;var l=j.getElementsByTagName("script")[0];null===(a=l.parentNode)||void 0===a||a.insertBefore(u,l)}}}},{key:"_execute_array",value:function(e){var t,n=this,r=[],i=[],o=[];K(e,(function(e){e&&(t=e[0],F(t)?o.push(e):P(e)?e.call(n):F(e)&&"alias"===t?r.push(e):F(e)&&-1!==t.indexOf("capture")&&P(n[t])?o.push(e):i.push(e))}));var s=function(e,t){K(e,(function(e){if(F(e[0])){var n=t;X(e,(function(e){n=n[e[0]].apply(n,e.slice(1))}))}else this[e[0]].apply(this,e.slice(1))}),t)};s(r,this),s(i,this),s(o,this)}},{key:"_hasBootstrappedFeatureFlags",value:function(){var e,t;return(null===(e=this.config.bootstrap)||void 0===e?void 0:e.featureFlags)&&Object.keys(null===(t=this.config.bootstrap)||void 0===t?void 0:t.featureFlags).length>0||!1}},{key:"push",value:function(e){this._execute_array([e])}},{key:"capture",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ci;if(!this.__loaded||!this.sessionPersistence||!this._requestQueue)return Q.uninitializedWarning("posthog.capture");if(!Wn(this)){var o=(r=r||ci).transport;if(o&&(r.transport=o),!x(e)&&I(e)){if(!W||this.config.opt_out_useragent_filter||!ui(W,this.config.custom_blocked_useragents)){this.sessionPersistence.update_search_keyword(),this.config.store_google&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info();var s={uuid:lt(),event:e,properties:this._calculate_event_properties(e,t||{})};"$identify"===e&&(s.$set=r.$set,s.$set_once=r.$set_once),(s=function(e,t){return n=e,r=function(e){return I(e)&&!C(t)?e.slice(0,t):e},i=new Set,function e(t,n){return t!==Object(t)?r?r(t):t:i.has(t)?void 0:(i.add(t),F(t)?(o=[],K(t,(function(t){o.push(e(t))}))):(o={},X(t,(function(t,n){i.has(t)||(o[n]=e(t,n))}))),o);var o}(n);var n,r,i}(s,r._noTruncate?null:this.config.properties_string_max_length)).timestamp=r.timestamp||new Date,x(r.timestamp)||(s.properties.$event_time_override_provided=!0,s.properties.$event_time_override_system_time=new Date);var a=i(i({},s.properties.$set),s.$set);(function(e){if(E(e)){for(var t in e)if(k.call(e,t))return!1;return!0}return!1})(a)||this.setPersonPropertiesForFlags(a),Q.info("send",s);var u=JSON.stringify(s),l=null!==(n=r._url)&&void 0!==n?n:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),c=r!==ci;return!this.config.request_batching||c&&!r._batchKey||r.send_instantly?this.__compress_and_send_json_request(l,u,r):this._requestQueue.enqueue(l,s,r),this._invokeCaptureHooks(e,s),s}}else Q.error("No event name provided to posthog.capture")}}},{key:"_addCaptureHook",value:function(e){this.__captureHooks.push(e)}},{key:"_invokeCaptureHooks",value:function(e,t){this.config._onCapture(e,t),X(this.__captureHooks,(function(t){return t(e)}))}},{key:"_calculate_event_properties",value:function(e,t){if(!this.persistence||!this.sessionPersistence)return t;var n=this.persistence.remove_event_timer(e),r=i({},t);if(r.token=this.config.token,"$snapshot"===e){var o=i(i({},this.persistence.properties()),this.sessionPersistence.properties());return r.distinct_id=o.distinct_id,r}var s=Fn.properties();if(this.sessionManager){var a=this.sessionManager.checkAndGetSessionAndWindowId(),u=a.sessionId,l=a.windowId;r.$session_id=u,r.$window_id=l}if(this.sessionPropsManager&&this.config.__preview_send_client_session_params&&("$pageview"===e||"$pageleave"===e||"$autocapture"===e)){var c=this.sessionPropsManager.getSessionProps();r=Z(r,c)}if(!this.config.disable_scroll_properties){var d={};"$pageview"===e?d=this.pageViewManager.doPageView():"$pageleave"===e&&(d=this.pageViewManager.doPageLeave()),r=Z(r,d)}if("$pageview"===e&&j&&(r.title=j.title),"$performance_event"===e){var f=this.persistence.properties();return r.distinct_id=f.distinct_id,r.$current_url=s.$current_url,r}if(!x(n)){var h=(new Date).getTime()-n;r.$duration=parseFloat((h/1e3).toFixed(3))}W&&this.config.opt_out_useragent_filter&&(r.$browser_type=ui(W,this.config.custom_blocked_useragents)?"bot":"browser"),r=Z({},Fn.properties(),this.persistence.properties(),this.sessionPersistence.properties(),r),F(this.config.property_denylist)&&F(this.config.property_blacklist)?X([].concat(_(this.config.property_blacklist),_(this.config.property_denylist)),(function(e){delete r[e]})):Q.error("Invalid value for property_denylist config: "+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var p=this.config.sanitize_properties;return p&&(r=p(r,e)),r}},{key:"register",value:function(e,t){var n;null===(n=this.persistence)||void 0===n||n.register(e,t)}},{key:"register_once",value:function(e,t,n){var r;null===(r=this.persistence)||void 0===r||r.register_once(e,t,n)}},{key:"register_for_session",value:function(e){var t;null===(t=this.sessionPersistence)||void 0===t||t.register(e)}},{key:"unregister",value:function(e){var t;null===(t=this.persistence)||void 0===t||t.unregister(e)}},{key:"unregister_for_session",value:function(e){var t;null===(t=this.sessionPersistence)||void 0===t||t.unregister(e)}},{key:"_register_single",value:function(e,t){this.register(l({},e,t))}},{key:"getFeatureFlag",value:function(e,t){return this.featureFlags.getFeatureFlag(e,t)}},{key:"getFeatureFlagPayload",value:function(e){var t=this.featureFlags.getFeatureFlagPayload(e);try{return JSON.parse(t)}catch(e){return t}}},{key:"isFeatureEnabled",value:function(e,t){return this.featureFlags.isFeatureEnabled(e,t)}},{key:"reloadFeatureFlags",value:function(){this.featureFlags.reloadFeatureFlags()}},{key:"updateEarlyAccessFeatureEnrollment",value:function(e,t){this.featureFlags.updateEarlyAccessFeatureEnrollment(e,t)}},{key:"getEarlyAccessFeatures",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.featureFlags.getEarlyAccessFeatures(e,t)}},{key:"onFeatureFlags",value:function(e){return this.featureFlags.onFeatureFlags(e)}},{key:"onSessionId",value:function(e){var t,n;return null!==(t=null===(n=this.sessionManager)||void 0===n?void 0:n.onSessionId(e))&&void 0!==t?t:function(){}}},{key:"getSurveys",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.surveys.getSurveys(e,t)}},{key:"getActiveMatchingSurveys",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.surveys.getActiveMatchingSurveys(e,t)}},{key:"identify",value:function(e,t,n){if(!this.__loaded||!this.persistence)return Q.uninitializedWarning("posthog.identify");if($(e)&&(e=e.toString(),Q.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),e)if(["distinct_id","distinctid"].includes(e.toLowerCase()))Q.critical('The string "'.concat(e,'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.'));else{var r=this.get_distinct_id();if(this.register({$user_id:e}),!this.get_property("$device_id")){var i=r;this.register_once({$had_persisted_distinct_id:!0,$device_id:i},"")}e!==r&&e!==this.get_property(Ce)&&(this.unregister(Ce),this.register({distinct_id:e}));var o="anonymous"===this.persistence.get_user_state();e!==r&&o?(this.persistence.set_user_state("identified"),this.setPersonPropertiesForFlags(t||{},!1),this.capture("$identify",{distinct_id:e,$anon_distinct_id:r},{$set:t||{},$set_once:n||{}}),this.featureFlags.setAnonymousDistinctId(r)):(t||n)&&this.setPersonProperties(t,n),e!==r&&(this.reloadFeatureFlags(),this.unregister(We))}else Q.error("Unique user id has not been set in posthog.identify")}},{key:"setPersonProperties",value:function(e,t){(e||t)&&(this.setPersonPropertiesForFlags(e||{}),this.capture("$set",{$set:e||{},$set_once:t||{}}))}},{key:"group",value:function(e,t,n){if(e&&t){var r=this.getGroups();r[e]!==t&&this.resetGroupPropertiesForFlags(e),this.register({$groups:i(i({},r),{},l({},e,t))}),n&&(this.capture("$groupidentify",{$group_type:e,$group_key:t,$group_set:n}),this.setGroupPropertiesForFlags(l({},e,n))),r[e]===t||n||this.reloadFeatureFlags()}else Q.error("posthog.group requires a group type and group key")}},{key:"resetGroups",value:function(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}},{key:"setPersonPropertiesForFlags",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.featureFlags.setPersonPropertiesForFlags(e,t)}},{key:"resetPersonPropertiesForFlags",value:function(){this.featureFlags.resetPersonPropertiesForFlags()}},{key:"setGroupPropertiesForFlags",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.featureFlags.setGroupPropertiesForFlags(e,t)}},{key:"resetGroupPropertiesForFlags",value:function(e){this.featureFlags.resetGroupPropertiesForFlags(e)}},{key:"reset",value:function(e){var t,n,r,i;if(!this.__loaded)return Q.uninitializedWarning("posthog.reset");var o=this.get_property("$device_id");null===(t=this.persistence)||void 0===t||t.clear(),null===(n=this.sessionPersistence)||void 0===n||n.clear(),null===(r=this.persistence)||void 0===r||r.set_user_state("anonymous"),null===(i=this.sessionManager)||void 0===i||i.resetSessionId();var s=this.config.get_device_id(lt());this.register_once({distinct_id:s,$device_id:e?s:o},"")}},{key:"get_distinct_id",value:function(){return this.get_property("distinct_id")}},{key:"getGroups",value:function(){return this.get_property("$groups")||{}}},{key:"get_session_id",value:function(){var e,t;return null!==(e=null===(t=this.sessionManager)||void 0===t?void 0:t.checkAndGetSessionAndWindowId(!0).sessionId)&&void 0!==e?e:""}},{key:"get_session_replay_url",value:function(e){if(!this.sessionManager)return"";var t=this.sessionManager.checkAndGetSessionAndWindowId(!0),n=t.sessionId,r=t.sessionStartTimestamp,i=this.requestRouter.endpointFor("ui","/replay/"+n);if(null!=e&&e.withTimestamp&&r){var o,s=null!==(o=e.timestampLookBack)&&void 0!==o?o:10;if(!r)return i;var a=Math.max(Math.floor(((new Date).getTime()-r)/1e3)-s,0);i+="?t=".concat(a)}return i}},{key:"alias",value:function(e,t){return e===this.get_property(Ie)?(Q.critical("Attempting to create alias for existing People user - aborting."),-2):(x(t)&&(t=this.get_distinct_id()),e!==t?(this._register_single(Ce,e),this.capture("$create_alias",{alias:e,distinct_id:t})):(Q.warn("alias matches current distinct_id - skipping api call."),this.identify(e),-1))}},{key:"set_config",value:function(e){var t,n=i({},this.config);if(E(e)&&(Z(this.config,e),this.config.persistence_name||(this.config.persistence_name=this.config.cookie_name),this.config.disable_persistence||(this.config.disable_persistence=this.config.disable_cookie),null===(t=this.persistence)||void 0===t||t.update_config(this.config,n),this.sessionPersistence="sessionStorage"===this.config.persistence?this.persistence:new Pn(i(i({},this.config),{},{persistence:"sessionStorage"})),gt.is_supported()&&"true"===gt.get("ph_debug")&&(this.config.debug=!0),this.config.debug&&(y.DEBUG=!0),this.sessionRecording&&!x(e.disable_session_recording))){var r=n.disable_session_recording!==e.disable_session_recording,o=!Wn(this)&&!e.disable_session_recording&&!this.sessionRecording.started;(r||o)&&(e.disable_session_recording?this.sessionRecording.stopRecording():this.sessionRecording.startRecordingIfEnabled())}}},{key:"startSessionRecording",value:function(){this.set_config({disable_session_recording:!1})}},{key:"stopSessionRecording",value:function(){this.set_config({disable_session_recording:!0})}},{key:"sessionRecordingStarted",value:function(){var e;return!(null===(e=this.sessionRecording)||void 0===e||!e.started)}},{key:"loadToolbar",value:function(e){return this.toolbar.loadToolbar(e)}},{key:"get_property",value:function(e){var t;return null===(t=this.persistence)||void 0===t?void 0:t.props[e]}},{key:"getSessionProperty",value:function(e){var t;return null===(t=this.sessionPersistence)||void 0===t?void 0:t.props[e]}},{key:"toString",value:function(){var e,t=null!==(e=this.config.name)&&void 0!==e?e:di;return t!==di&&(t=di+"."+t),t}},{key:"_gdpr_init",value:function(){"localStorage"===this.config.opt_out_capturing_persistence_type&&gt.is_supported()&&(!this.has_opted_in_capturing()&&this.has_opted_in_capturing({persistence_type:"cookie"})&&this.opt_in_capturing({enable_persistence:!1}),!this.has_opted_out_capturing()&&this.has_opted_out_capturing({persistence_type:"cookie"})&&this.opt_out_capturing({clear_persistence:!1}),this.clear_opt_in_out_capturing({persistence_type:"cookie",enable_persistence:!1})),this.has_opted_out_capturing()?this._gdpr_update_persistence({clear_persistence:!0}):this.has_opted_in_capturing()||!this.config.opt_out_capturing_by_default&&!pt.get("ph_optout")||(pt.remove("ph_optout"),this.opt_out_capturing({clear_persistence:this.config.opt_out_persistence_by_default}))}},{key:"_gdpr_update_persistence",value:function(e){var t,n,r,i,o;if(e&&e.clear_persistence)r=!0;else{if(!e||!e.enable_persistence)return;r=!1}this.config.disable_persistence||(null===(t=this.persistence)||void 0===t?void 0:t.disabled)===r||null===(i=this.persistence)||void 0===i||i.set_disabled(r),this.config.disable_persistence||(null===(n=this.sessionPersistence)||void 0===n?void 0:n.disabled)===r||null===(o=this.sessionPersistence)||void 0===o||o.set_disabled(r)}},{key:"_gdpr_call_func",value:function(e,t){return t=Z({capture:this.capture.bind(this),persistence_type:this.config.opt_out_capturing_persistence_type,cookie_prefix:this.config.opt_out_capturing_cookie_prefix,cookie_expiration:this.config.cookie_expiration,cross_subdomain_cookie:this.config.cross_subdomain_cookie,secure_cookie:this.config.secure_cookie},t||{}),gt.is_supported()||"localStorage"!==t.persistence_type||(t.persistence_type="cookie"),e(this.config.token,{capture:t.capture,captureEventName:t.capture_event_name,captureProperties:t.capture_properties,persistenceType:t.persistence_type,persistencePrefix:t.cookie_prefix,cookieExpiration:t.cookie_expiration,crossSubdomainCookie:t.cross_subdomain_cookie,secureCookie:t.secure_cookie})}},{key:"opt_in_capturing",value:function(e){e=Z({enable_persistence:!0},e||{}),this._gdpr_call_func(Mn,e),this._gdpr_update_persistence(e)}},{key:"opt_out_capturing",value:function(e){var t=Z({clear_persistence:!0},e||{});this._gdpr_call_func(Dn,t),this._gdpr_update_persistence(t)}},{key:"has_opted_in_capturing",value:function(e){return this._gdpr_call_func(Nn,e)}},{key:"has_opted_out_capturing",value:function(e){return this._gdpr_call_func(Ln,e)}},{key:"clear_opt_in_out_capturing",value:function(e){var t=Z({enable_persistence:!0},null!=e?e:{});this._gdpr_call_func(Bn,t),this._gdpr_update_persistence(t)}},{key:"debug",value:function(e){!1===e?(null==q||q.console.log("You've disabled debug mode."),localStorage&&localStorage.removeItem("ph_debug"),this.set_config({debug:!1})):(null==q||q.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),localStorage&&localStorage.setItem("ph_debug","true"),this.set_config({debug:!0}))}}]),e}();!function(e,t){for(var n=0;n<t.length;n++)e.prototype[t[n]]=ie(e.prototype[t[n]])}(gi,["identify"]);var vi,mi,yi={};!function(e){e.Popover="popover",e.API="api",e.Widget="widget"}(vi||(vi={})),function(e){e.Open="open",e.MultipleChoice="multiple_choice",e.SingleChoice="single_choice",e.Rating="rating",e.Link="link"}(mi||(mi={}));var bi=(ei=Zr.INIT_MODULE,(ti=new gi).init=function(e,t,n){if(n)return ti[n]||(ti[n]=yi[n]=pi(e||"",t||{},n,(function(e){ti[n]=yi[n]=e,e._loaded()}))),ti[n];var r=ti;return yi[di]?r=yi[di]:e&&(r=pi(e,t||{},di,(function(e){yi[di]=e,e._loaded()})),yi[di]=r),ti=r,ei===Zr.INIT_SNIPPET&&(z[di]=ti),X(yi,(function(e,t){t!==di&&(ti[t]=e)})),r},ti.init(),function(){function e(){e.done||(e.done=!0,fi=!1,X(yi,(function(e){e._dom_loaded()})))}null!=j&&j.addEventListener&&("complete"===j.readyState?e():j.addEventListener("DOMContentLoaded",e,!1)),q&&ue(q,"load",e,!0)}(),ti)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3705.38e023af816fb6ce8fc9.chunk.js b/src/web/gui/v2/3705.38e023af816fb6ce8fc9.chunk.js
new file mode 100644
index 000000000..c674c51f4
--- /dev/null
+++ b/src/web/gui/v2/3705.38e023af816fb6ce8fc9.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c655a45e-d47e-4c2a-aecc-50ea4980b609",e._sentryDebugIdIdentifier="sentry-dbid-c655a45e-d47e-4c2a-aecc-50ea4980b609")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3705],{3705:(e,t,n)=>{n.d(t,{A:()=>f});n(62953);var o=n(96540);const d={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0},f=()=>{const[e,t]=(0,o.useState)(null),[n,f]=(0,o.useState)(d),i=(0,o.useMemo)((()=>new window.ResizeObserver((e=>{if(e[0]){const{x:t,y:n,width:o,height:d,top:i,left:s,bottom:a,right:c}=e[0].contentRect;f({x:t,y:n,width:o,height:d,top:i,left:s,bottom:a,right:c})}}))),[]);return(0,o.useLayoutEffect)((()=>{if(e)return i.observe(e),()=>{i.disconnect()}}),[e]),[t,n]}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js b/src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js
new file mode 100644
index 000000000..d844b613e
--- /dev/null
+++ b/src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js
@@ -0,0 +1,2 @@
+/*! For license information please see 3731.40bfabd5c5a12309b1a9.chunk.js.LICENSE.txt */
+!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="df7fec8a-b851-4da1-b3ea-646387aabdb4",t._sentryDebugIdIdentifier="sentry-dbid-df7fec8a-b851-4da1-b3ea-646387aabdb4")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3731],{18595:(t,e)=>{"use strict";var i="windows",s=[],n="f17a",o="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z";e.mw={prefix:"fab",iconName:i,icon:[448,512,s,n,o]},e.tQ=e.mw},62672:(t,e)=>{"use strict";var i=[128683,"cancel"],s="f05e",n="M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z";e.mw={prefix:"fas",iconName:"ban",icon:[512,512,i,s,n]},e.Df=e.mw},485:(t,e)=>{"use strict";var i="battery-half",s=["battery-3"],n="f242",o="M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm208 96H96V320H288V192z";e.mw={prefix:"fas",iconName:i,icon:[576,512,s,n,o]},e.W6=e.mw},78536:(t,e)=>{"use strict";var i="bell",s=[128276,61602],n="f0f3",o="M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z";e.mw={prefix:"fas",iconName:i,icon:[448,512,s,n,o]},e.z$=e.mw},84994:(t,e)=>{"use strict";var i="bolt",s=[9889,"zap"],n="f0e7",o="M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z";e.mw={prefix:"fas",iconName:i,icon:[448,512,s,n,o]},e.zm=e.mw},7521:(t,e)=>{"use strict";var i="bookmark",s=[128278,61591],n="f02e",o="M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z";e.mw={prefix:"fas",iconName:i,icon:[384,512,s,n,o]},e.G0=e.mw},13765:(t,e)=>{"use strict";var i="brain",s=[129504],n="f5dc",o="M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.GQ=e.mw},66600:(t,e)=>{"use strict";var i="chart-bar",s=["bar-chart"],n="f080",o="M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.$F=e.mw},54399:(t,e)=>{"use strict";var i="chart-line",s=["line-chart"],n="f201",o="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.gK=e.mw},46943:(t,e)=>{"use strict";var i="circle-notch",s=[],n="f1ce",o="M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.s4=e.mw},1871:(t,e)=>{"use strict";var i="clock",s=[128339,"clock-four"],n="f017",o="M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.a$=e.mw},75904:(t,e)=>{"use strict";var i="cloud",s=[9729],n="f0c2",o="M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z";e.mw={prefix:"fas",iconName:i,icon:[640,512,s,n,o]},e.jB=e.mw},76229:(t,e,i)=>{"use strict";var s=i(8185);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.Ub=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},93847:(t,e)=>{"use strict";var i="comments",s=[128490,61670],n="f086",o="M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z";e.mw={prefix:"fas",iconName:i,icon:[640,512,s,n,o]},e.q9=e.mw},37048:(t,e)=>{"use strict";var i="database",s=[],n="f1c0",o="M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z";e.mw={prefix:"fas",iconName:i,icon:[448,512,s,n,o]},e.he=e.mw},64850:(t,e)=>{"use strict";var i="dragon",s=[128009],n="f6d5",o="M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z";e.mw={prefix:"fas",iconName:i,icon:[640,512,s,n,o]},e.dX=e.mw},55345:(t,e)=>{"use strict";var i="envelope",s=[128386,9993,61443],n="f0e0",o="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.y_=e.mw},49205:(t,e,i)=>{"use strict";var s=i(46534);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e._q=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},35532:(t,e)=>{"use strict";var i="exclamation",s=[10069,10071,61738],n="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM32 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z";e.mw={prefix:"fas",iconName:i,icon:[64,512,s,"21",n]},e.bx=e.mw},900:(t,e)=>{"use strict";var i=[128065],s="f06e",n="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z";e.mw={prefix:"fas",iconName:"eye",icon:[576,512,i,s,n]},e.pS=e.mw},93360:(t,e,i)=>{"use strict";var s=i(96488);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.h8=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},96488:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="file-lines",s=[128441,128462,61686,"file-alt","file-text"],n="f15c",o="M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z";e.definition={prefix:"fas",iconName:i,icon:[384,512,s,n,o]},e.faFileLines=e.definition,e.prefix="fas",e.iconName=i,e.width=384,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},22294:(t,e)=>{"use strict";var i="flask",s=[],n="f0c3",o="M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z";e.mw={prefix:"fas",iconName:i,icon:[448,512,s,n,o]},e.rI=e.mw},22017:(t,e)=>{"use strict";var i="folder-open",s=[128194,128449,61717],n="f07c",o="M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z";e.mw={prefix:"fas",iconName:i,icon:[576,512,s,n,o]},e.Uj=e.mw},44822:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="gauge-high",s=[62461,"tachometer-alt","tachometer-alt-fast"],n="f625",o="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faGaugeHigh=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},8185:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="gears",s=["cogs"],n="f085",o="M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z";e.definition={prefix:"fas",iconName:i,icon:[640,512,s,n,o]},e.faGears=e.definition,e.prefix="fas",e.iconName=i,e.width=640,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},27064:(t,e)=>{"use strict";var i="globe",s=[127760],n="f0ac",o="M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.Bw=e.mw},98726:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="hard-drive",s=[128436,"hdd"],n="f0a0",o="M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faHardDrive=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},78613:(t,e,i)=>{"use strict";var s=i(98726);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.MB=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},41776:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="heart-pulse",s=["heartbeat"],n="f21e",o="M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faHeartPulse=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},55573:(t,e,i)=>{"use strict";var s=i(41776);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e._g=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},13808:(t,e)=>{"use strict";var i="laptop-code",s=[],n="f5fc",o="M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z";e.mw={prefix:"fas",iconName:i,icon:[640,512,s,n,o]},e.fP=e.mw},12333:(t,e)=>{"use strict";var i="leaf",s=[],n="f06c",o="M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.YH=e.mw},90501:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="list-check",s=["tasks"],n="f0ae",o="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faListCheck=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},82367:(t,e)=>{"use strict";var i="microchip",s=[],n="f2db",o="M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.YS=e.mw},86443:(t,e)=>{"use strict";var i="puzzle-piece",s=[129513],n="f12e",o="M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e._X=e.mw},80058:(t,e,i)=>{"use strict";var s=i(61260);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.fK=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},46534:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="right-left",s=["exchange-alt"],n="f362",o="M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faRightLeft=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},35074:(t,e)=>{"use strict";var i="server",s=[],n="f233",o="M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.D6=e.mw},66248:(t,e)=>{"use strict";var i="shield",s=[128737,"shield-blank"],n="f132",o="M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z";e.mw={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.V2=e.mw},83697:(t,e,i)=>{"use strict";var s=i(7876);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.im=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},7876:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="shield-halved",s=["shield-alt"],n="f3ed",o="M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faShieldHalved=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},61260:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="shuffle",s=[128256,"random"],n="f074",o="M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faShuffle=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},45386:(t,e)=>{"use strict";var i="sitemap",s=[],n="f0e8",o="M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z";e.mw={prefix:"fas",iconName:i,icon:[576,512,s,n,o]},e.FF=e.mw},85713:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="table-cells-large",s=["th-large"],n="f009",o="M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z";e.definition={prefix:"fas",iconName:i,icon:[512,512,s,n,o]},e.faTableCellsLarge=e.definition,e.prefix="fas",e.iconName=i,e.width=512,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},54416:(t,e,i)=>{"use strict";var s=i(44822);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.xi=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},1705:(t,e)=>{"use strict";var i=[127991],s="f02b",n="M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z";e.mw={prefix:"fas",iconName:"tag",icon:[448,512,i,s,n]},e._2=e.mw},38055:(t,e,i)=>{"use strict";var s=i(90501);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.Ag=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},72950:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i="temperature-half",s=[127777,"temperature-2","thermometer-2","thermometer-half"],n="f2c9",o="M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V208c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z";e.definition={prefix:"fas",iconName:i,icon:[320,512,s,n,o]},e.faTemperatureHalf=e.definition,e.prefix="fas",e.iconName=i,e.width=320,e.height=512,e.ligatures=s,e.unicode=n,e.svgPathData=o,e.aliases=s},59582:(t,e,i)=>{"use strict";var s=i(85713);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.l9=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},25436:(t,e,i)=>{"use strict";var s=i(72950);e.mw={prefix:s.prefix,iconName:s.iconName,icon:[s.width,s.height,s.aliases,s.unicode,s.svgPathData]},e.Ro=e.mw,s.prefix,s.iconName,s.width,s.height,s.aliases,s.unicode,s.svgPathData,s.aliases},42469:(t,e)=>{"use strict";var i="user",s=[128100,62144],n="f007",o="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z";e.mw={prefix:"fas",iconName:i,icon:[448,512,s,n,o]},e.X4=e.mw},39281:(t,e)=>{"use strict";var i="users",s=[],n="f0c0",o="M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z";e.mw={prefix:"fas",iconName:i,icon:[640,512,s,n,o]},e.gd=e.mw},54264:(t,e)=>{"use strict";var i="wifi",s=["wifi-3","wifi-strong"],n="f1eb",o="M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z";e.mw={prefix:"fas",iconName:i,icon:[640,512,s,n,o]},e.Bw=e.mw},87133:t=>{t.exports=function(t,e,i){return t===t&&(void 0!==i&&(t=t<=i?t:i),void 0!==e&&(t=t>=e?t:e)),t}},54128:(t,e,i)=>{var s=i(31800),n=/^\s+/;t.exports=function(t){return t?t.slice(0,s(t)+1).replace(n,""):t}},55765:(t,e,i)=>{var s=i(38859),n=i(15325),o=i(29905),a=i(19219),r=i(44517),c=i(84247);t.exports=function(t,e,i){var h=-1,l=n,d=t.length,u=!0,f=[],g=f;if(i)u=!1,l=o;else if(d>=200){var p=e?null:r(t);if(p)return c(p);u=!1,l=a,g=new s}else g=e?[]:f;t:for(;++h<d;){var m=t[h],x=e?e(m):m;if(m=i||0!==m?m:0,u&&x===x){for(var b=g.length;b--;)if(g[b]===x)continue t;e&&g.push(x),f.push(m)}else l(g,x,i)||(g!==f&&g.push(x),f.push(m))}return f}},44517:(t,e,i)=>{var s=i(76545),n=i(63950),o=i(84247),a=s&&1/o(new s([,-0]))[1]==1/0?function(t){return new s(t)}:n;t.exports=a},31800:t=>{var e=/\s/;t.exports=function(t){for(var i=t.length;i--&&e.test(t.charAt(i)););return i}},78659:(t,e,i)=>{var s=i(87133),n=i(99374);t.exports=function(t,e,i){return void 0===i&&(i=e,e=void 0),void 0!==i&&(i=(i=n(i))===i?i:0),void 0!==e&&(e=(e=n(e))===e?e:0),s(n(t),e,i)}},62193:(t,e,i)=>{var s=i(88984),n=i(5861),o=i(72428),a=i(56449),r=i(64894),c=i(3656),h=i(55527),l=i(37167),d=Object.prototype.hasOwnProperty;t.exports=function(t){if(null==t)return!0;if(r(t)&&(a(t)||"string"==typeof t||"function"==typeof t.splice||c(t)||l(t)||o(t)))return!t.length;var e=n(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if(h(t))return!s(t).length;for(var i in t)if(d.call(t,i))return!1;return!0}},99374:(t,e,i)=>{var s=i(54128),n=i(23805),o=i(44394),a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,c=/^0o[0-7]+$/i,h=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(o(t))return NaN;if(n(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=n(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=s(t);var i=r.test(t);return i||c.test(t)?h(t.slice(2),i?2:8):a.test(t)?NaN:+t}},21283:(t,e,i)=>{var s=i(83120),n=i(69302),o=i(55765),a=i(83693),r=i(68090),c=n((function(t){var e=r(t);return e="function"==typeof e?e:void 0,o(s(t,1,a,!0),void 0,e)}));t.exports=c},92677:function(t,e,i){!function(t,e){"use strict";function i(t){return t*Math.PI/180}function s(t,e,i){return t>i?i:t<e?e:t}function n(t,e){return e/100*t}function o(t,e){return t+e/2}function a(t,e){var s=i(t);return{dx:e*Math.cos(s),dy:e*Math.sin(s)}}function r(t){return"number"===typeof t}function c(t,e){return"function"===typeof t?t(e):t}function h(t,e){var i=Object.assign({},e,t);for(var s in e)void 0===t[s]&&(i[s]=e[s]);return i}function l(t){for(var e=0,i=0;i<t.length;i++)e+=t[i].value;return e}function d(t){for(var e=t.data,i=t.lengthAngle,o=t.totalValue,a=t.paddingAngle,r=t.startAngle,c=o||l(e),h=s(i,-360,360),d=360===Math.abs(h)?e.length:e.length-1,u=Math.abs(a)*Math.sign(i),f=h-u*d,g=0,p=[],m=0;m<e.length;m++){var x=e[m],b=0===c?0:x.value/c*100,v=n(f,b),_=g+r;g=g+v+u,p.push(Object.assign({percentage:b,startAngle:_,degrees:v},x))}return p}function u(t,e){if(null==t)return{};var i,s,n={},o=Object.keys(t);for(s=0;s<o.length;s++)i=o[s],e.indexOf(i)>=0||(n[i]=t[i]);return n}function f(t){var i=t.renderLabel,s=t.labelProps,n=i(s);if("string"===typeof n||"number"===typeof n){s.dataEntry,s.dataIndex;var o=u(s,["dataEntry","dataIndex"]);return e.createElement("text",Object.assign({dominantBaseline:"central"},o),n)}return e.isValidElement(n)?n:null}function g(t){var e=1e14;return Math.round((t+Number.EPSILON)*e)/e}function p(t){var e=t.labelPosition,i=t.lineWidth,s=g(t.labelHorizontalShift);return 0===s?"middle":e>100?s>0?"start":"end":e<100-i?s>0?"end":"start":"middle"}function m(t,e){return t.map((function(t,i){var s,r=null!=(s=c(e.segmentsShift,i))?s:0,h=n(e.radius,e.labelPosition)+r,l=a(o(t.startAngle,t.degrees),h),d=l.dx,u=l.dy;return{x:e.center[0],y:e.center[1],dx:d,dy:u,textAnchor:p({labelPosition:e.labelPosition,lineWidth:e.lineWidth,labelHorizontalShift:d}),dataEntry:t,dataIndex:i,style:c(e.labelStyle,i)}}))}function x(t,i){var s=i.label;if(s)return m(t,i).map((function(t,i){return e.createElement(f,{key:"label-"+(t.dataEntry.key||i),renderLabel:s,labelProps:t})}))}var b=function(t,e,i,s,n){var o=n-s;if(0===o)return[];var a=i*Math.cos(s)+t,r=i*Math.sin(s)+e,c=i*Math.cos(n)+t,h=i*Math.sin(n)+e;return[["M",a,r],["A",i,i,0,Math.abs(o)<=Math.PI?"0":"1",o<0?"0":"1",c,h]]};function v(t,e,n,o,a){var r=s(o,-359.999,359.999);return b(t,e,a,i(n),i(n+r)).map((function(t){return t.join(" ")})).join(" ")}function _(t){var s,c,h=t.cx,l=t.cy,d=t.lengthAngle,f=t.lineWidth,g=t.radius,p=t.shift,m=void 0===p?0:p,x=t.reveal,b=t.rounded,_=t.startAngle,y=t.title,w=u(t,["cx","cy","lengthAngle","lineWidth","radius","shift","reveal","rounded","startAngle","title"]),M=g-f/2,k=a(o(_,d),m),S=v(h+k.dx,l+k.dy,_,d,M);if(r(x)){var C=i(M)*d;c=(s=Math.abs(C))-n(s,x)}return e.createElement("path",Object.assign({d:S,fill:"none",strokeWidth:f,strokeDasharray:s,strokeDashoffset:c,strokeLinecap:b?"round":void 0},w),y&&e.createElement("title",null,y))}function y(t,e,i){var s="stroke-dashoffset "+t+"ms "+e;return i&&i.transition&&(s=s+","+i.transition),{transition:s}}function w(t){return t.animate&&!r(t.reveal)?100:t.reveal}function M(t,e){return t&&function(i){t(i,e)}}function k(t,i,s){var o=null!=s?s:w(i),a=i.radius,r=i.center,h=r[0],l=r[1],d=n(a,i.lineWidth),u=t.map((function(t,s){var n=c(i.segmentsStyle,s);return e.createElement(_,{cx:h,cy:l,key:t.key||s,lengthAngle:t.degrees,lineWidth:d,radius:a,rounded:i.rounded,reveal:o,shift:c(i.segmentsShift,s),startAngle:t.startAngle,title:t.title,style:Object.assign({},n,i.animate&&y(i.animationDuration,i.animationEasing,n)),stroke:t.color,tabIndex:i.segmentsTabIndex,onBlur:M(i.onBlur,s),onClick:M(i.onClick,s),onFocus:M(i.onFocus,s),onKeyDown:M(i.onKeyDown,s),onMouseOver:M(i.onMouseOver,s),onMouseOut:M(i.onMouseOut,s)})}));return i.background&&u.unshift(e.createElement(_,{cx:h,cy:l,key:"bg",lengthAngle:i.lengthAngle,lineWidth:d,radius:a,rounded:i.rounded,startAngle:i.startAngle,stroke:i.background})),u}var S={animationDuration:500,animationEasing:"ease-out",center:[50,50],data:[],labelPosition:50,lengthAngle:360,lineWidth:100,paddingAngle:0,radius:50,startAngle:0,viewBoxSize:[100,100]};function C(t){var i=h(t,S),s=e.useState(i.animate?0:null),n=s[0],o=s[1];e.useEffect((function(){i.animate&&o(null)}),[]);var a=d(i);return e.createElement("svg",{viewBox:"0 0 "+i.viewBoxSize[0]+" "+i.viewBoxSize[1],width:"100%",height:"100%",className:i.className,style:i.style},k(a,i,n),x(a,i),i.children)}t.PieChart=C,t.pieChartDefaultProps=S}(e,i(96540))},62709:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>c});var s=i(12897),n=i.n(s),o=i(55042),a=i.n(o),r=new(n())({id:"alarm_bell",use:"alarm_bell-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="alarm_bell"><path d="M11.45 8.11A2.61 2.61 0 0 1 10 5.77V5c0-1.97-1.44-3.6-3.31-3.93 0-.02.01-.04.01-.07 0-.39-.31-.7-.7-.7-.39 0-.7.31-.7.7 0 .02.01.05.01.07C3.44 1.4 2 3.03 2 5v.76c0 1-.55 1.9-1.45 2.34L0 8.38v2.82c0 .99.81 1.8 1.8 1.8H5c0 .55.45 1 1 1s1-.45 1-1h3.2c.99 0 1.8-.81 1.8-1.8V8.38zM11 11.2c0 .44-.36.8-.8.8H1.8c-.44 0-.8-.36-.8-.8V10h5.5c.55 0 1-.45 1-1H1c1.23-.61 2-1.87 2-3.24V5c0-1.66 1.34-3 3-3s3 1.34 3 3v.76c0 1.37.77 2.62 2 3.24z" /></symbol>'});a().add(r);const c=r},2386:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>c});var s=i(12897),n=i.n(s),o=i(55042),a=i.n(o),r=new(n())({id:"settings_h",use:"settings_h-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="settings_h"><path d="M.75 4.5h5.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3C8.11.75 6.94 1.71 6.61 3H.75C.34 3 0 3.34 0 3.75s.34.75.75.75M8.21 3c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.15-.92 1.38-.18.08-.38.12-.58.12a1.361 1.361 0 0 1-.45-.08c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53C8.08 4.26 8 4 8 3.73s.08-.51.21-.73m5.04 1.5c.41 0 .75-.34.75-.75S13.66 3 13.25 3h-.34c.05.24.09.49.09.75s-.04.51-.09.75zM4.5 7.25c-1.39 0-2.56.96-2.89 2.25H.75c-.41 0-.75.34-.75.75s.34.75.75.75h.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3m.58 4.38c-.18.08-.38.12-.58.12-.13 0-.25-.02-.36-.05l-.09-.03c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53-.13-.22-.21-.48-.21-.75s.08-.53.21-.75c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.17-.92 1.4m8.17-2.13H7.91c.05.24.09.49.09.75s-.04.51-.09.75h5.34c.41 0 .75-.34.75-.75s-.34-.75-.75-.75" /></symbol>'});a().add(r);const c=r},24074:(t,e,i)=>{"use strict";var s=i(69565),n=i(28551),o=i(2360),a=i(55966),r=i(56279),c=i(91181),h=i(97751),l=i(53982),d=i(62529),u=h("Promise"),f="AsyncFromSyncIterator",g=c.set,p=c.getterFor(f),m=function(t,e,i){var s=t.done;u.resolve(t.value).then((function(t){e(d(t,s))}),i)},x=function(t){t.type=f,g(this,t)};x.prototype=r(o(l),{next:function(){var t=p(this);return new u((function(e,i){var o=n(s(t.next,t.iterator));m(o,e,i)}))},return:function(){var t=p(this).iterator;return new u((function(e,i){var o=a(t,"return");if(void 0===o)return e(d(void 0,!0));var r=n(s(o,t));m(r,e,i)}))}}),t.exports=x},50133:(t,e,i)=>{"use strict";var s=i(69565),n=i(94901),o=i(28551),a=i(1767),r=i(50851),c=i(55966),h=i(78227),l=i(24074),d=h("asyncIterator");t.exports=function(t){var e,i=o(t),h=!0,u=c(i,d);return n(u)||(u=r(i),h=!1),void 0!==u?e=s(u,i):(e=i,h=!0),o(e),a(h?e:new l(a(e)))}},48646:(t,e,i)=>{"use strict";var s=i(69565),n=i(28551),o=i(1767),a=i(50851);t.exports=function(t,e){e&&"string"===typeof t||n(t);var i=a(t);return o(n(void 0!==i?s(i,t):t))}},30237:(t,e,i)=>{"use strict";i(6469)("flatMap")},32679:(t,e,i)=>{"use strict";var s=i(46518),n=i(69565),o=i(79306),a=i(28551),r=i(20034),c=i(1767),h=i(92059),l=i(62529),d=i(50133),u=i(20772),f=i(96395),g=h((function(t){var e=this,i=e.iterator,s=e.mapper;return new t((function(o,c){var h=function(t){e.done=!0,c(t)},f=function(t){u(i,h,t,h)},g=function(){try{t.resolve(a(n(e.next,i))).then((function(i){try{if(a(i).done)e.done=!0,o(l(void 0,!0));else{var n=i.value;try{var c=s(n,e.counter++),u=function(t){try{e.inner=d(t),p()}catch(i){f(i)}};r(c)?t.resolve(c).then(u,f):u(c)}catch(g){f(g)}}}catch(m){h(m)}}),h)}catch(c){h(c)}},p=function(){var i=e.inner;if(i)try{t.resolve(a(n(i.next,i.iterator))).then((function(t){try{a(t).done?(e.inner=null,g()):o(l(t.value,!1))}catch(i){f(i)}}),f)}catch(s){f(s)}else g()};p()}))}));s({target:"AsyncIterator",proto:!0,real:!0,forced:f},{flatMap:function(t){return a(this),o(t),new g(c(this),{mapper:t,inner:null})}})},30670:(t,e,i)=>{"use strict";var s=i(46518),n=i(69565),o=i(79306),a=i(28551),r=i(1767),c=i(48646),h=i(19462),l=i(9539),d=i(96395),u=h((function(){for(var t,e,i=this.iterator,s=this.mapper;;){if(e=this.inner)try{if(!(t=a(n(e.next,e.iterator))).done)return t.value;this.inner=null}catch(o){l(i,"throw",o)}if(t=a(n(this.next,i)),this.done=!!t.done)return;try{this.inner=c(s(t.value,this.counter++),!1)}catch(o){l(i,"throw",o)}}}));s({target:"Iterator",proto:!0,real:!0,forced:d},{flatMap:function(t){return a(this),o(t),new u(r(this),{mapper:t,inner:null})}})},66118:(t,e,i)=>{"use strict";i.d(e,{A6:()=>D,E8:()=>ke,FN:()=>xe,Hg:()=>bt,No:()=>pe,PP:()=>Ue,Qw:()=>h,UA:()=>si,ZT:()=>L,ij:()=>T,kc:()=>Ke,m_:()=>We,s$:()=>ze,t1:()=>oe});var s=i(12020);class n{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=s.r.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var o=new n;const a="transparent",r={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const n=(0,s.c)(t||a),o=n.valid&&(0,s.c)(e||a);return o&&o.valid?o.mix(n,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class c{constructor(t,e,i,n){const o=e[i];n=(0,s.a)([t.to,n,o,t.from]);const a=(0,s.a)([t.from,o,n]);this._active=!0,this._fn=t.fn||r[t.type||typeof a],this._easing=s.e[t.easing]||s.e.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=a,this._to=n,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const n=this._target[this._prop],o=i-this._start,a=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(a,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=(0,s.a)([t.to,e,n,t.from]),this._from=(0,s.a)([t.from,n,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e<i),!this._active)return this._target[s]=a,void this._notify(!0);e<0?this._target[s]=n:(r=e/i%2,r=o&&r>1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let s=0;s<i.length;s++)i[s][e]()}}class h{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!(0,s.i)(t))return;const e=Object.keys(s.d.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach((n=>{const o=t[n];if(!(0,s.i)(o))return;const a={};for(const t of e)a[t]=o[t];((0,s.b)(o.properties)&&o.properties||[n]).forEach((t=>{t!==n&&i.has(t)||i.set(t,a)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let n=0;n<s.length;n++){const e=t[s[n]];e&&e.active()&&i.push(e.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const h=o[r];if("$"===h.charAt(0))continue;if("options"===h){s.push(...this._animateOptions(t,e));continue}const l=e[h];let d=n[h];const u=i.get(h);if(d){if(u&&d.active()){d.update(u,l,a);continue}d.cancel()}u&&u.duration?(n[h]=d=new c(u,t,h,l),s.push(d)):t[h]=l}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(o.add(this._chart,i),!0):void 0}}function l(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function d(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n<o;++n)i.push(s[n].index);return i}function u(t,e,i,n={}){const o=t.keys,a="single"===n.mode;let r,c,h,l;if(null!==e){for(r=0,c=o.length;r<c;++r){if(h=+o[r],h===i){if(n.all)continue;break}l=t.values[h],(0,s.g)(l)&&(a||0===e||(0,s.s)(e)===(0,s.s)(l))&&(e+=l)}return e}}function f(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function g(t,e,i){const s=t[e]||(t[e]={});return s[i]||(s[i]={})}function p(t,e,i,s){for(const n of e.getMatchingVisibleMetas(s).reverse()){const e=t[n.index];if(i&&e>0||!i&&e<0)return n.index}return null}function m(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,c=o.axis,h=a.axis,l=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let f=0;f<d;++f){const t=e[f],{[c]:i,[h]:o}=t;u=(t._stacks||(t._stacks={}))[h]=g(n,l,i),u[r]=o,u._top=p(u,a,!0,s.type),u._bottom=p(u,a,!1,s.type);(u._visualValues||(u._visualValues={}))[r]=o}}function x(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function b(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const v=t=>"reset"===t||"none"===t,_=(t,e)=>e?t:Object.assign({},t);class y{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=f(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&b(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),n=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,o=e.xAxisID=(0,s.v)(i.xAxisID,x(t,"x")),a=e.yAxisID=(0,s.v)(i.yAxisID,x(t,"y")),r=e.rAxisID=(0,s.v)(i.rAxisID,x(t,"r")),c=e.indexAxis,h=e.iAxisID=n(c,o,a,r),l=e.vAxisID=n(c,a,o,r);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(a),e.rScale=this.getScaleForId(r),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(l)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&(0,s.u)(this._data,this),t._stacked&&b(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if((0,s.i)(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let s,n,o;for(s=0,n=e.length;s<n;++s)o=e[s],i[s]={x:o,y:t[o]};return i}(e);else if(i!==e){if(i){(0,s.u)(i,this);const t=this._cachedMeta;b(t),t._parsed=[]}e&&Object.isExtensible(e)&&(0,s.l)(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const n=e._stacked;e._stacked=f(e.vScale,e),e.stack!==i.stack&&(s=!0,b(e),e.stack=i.stack),this._resyncElements(t),(s||n!==e._stacked)&&m(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:n}=this,{iScale:o,_stacked:a}=i,r=o.axis;let c,h,l,d=0===t&&e===n.length||i._sorted,u=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=n,i._sorted=!0,l=n;else{l=(0,s.b)(n[t])?this.parseArrayData(i,n,t,e):(0,s.i)(n[t])?this.parseObjectData(i,n,t,e):this.parsePrimitiveData(i,n,t,e);const o=()=>null===h[r]||u&&h[r]<u[r];for(c=0;c<e;++c)i._parsed[c+t]=h=l[c],d&&(o()&&(d=!1),u=h);i._sorted=d}a&&m(this,l)}parsePrimitiveData(t,e,i,s){const{iScale:n,vScale:o}=t,a=n.axis,r=o.axis,c=n.getLabels(),h=n===o,l=new Array(s);let d,u,f;for(d=0,u=s;d<u;++d)f=d+i,l[d]={[a]:h||n.parse(c[f],f),[r]:o.parse(e[f],f)};return l}parseArrayData(t,e,i,s){const{xScale:n,yScale:o}=t,a=new Array(s);let r,c,h,l;for(r=0,c=s;r<c;++r)h=r+i,l=e[h],a[r]={x:n.parse(l[0],h),y:o.parse(l[1],h)};return a}parseObjectData(t,e,i,n){const{xScale:o,yScale:a}=t,{xAxisKey:r="x",yAxisKey:c="y"}=this._parsing,h=new Array(n);let l,d,u,f;for(l=0,d=n;l<d;++l)u=l+i,f=e[u],h[l]={x:o.parse((0,s.f)(f,r),u),y:a.parse((0,s.f)(f,c),u)};return h}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const s=this.chart,n=this._cachedMeta,o=e[t.axis];return u({keys:d(s,!0),values:e._stacks[t.axis]._visualValues},o,n.index,{mode:i})}updateRangeFromParsed(t,e,i,s){const n=i[e.axis];let o=null===n?NaN:n;const a=s&&i._stacks[e.axis];s&&a&&(s.values=a,o=u(s,n,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,n=i._parsed,o=i._sorted&&t===i.iScale,a=n.length,r=this._getOtherScale(t),c=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:d(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:l,max:u}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let f,g;function p(){g=n[f];const e=g[r.axis];return!(0,s.g)(g[t.axis])||l>e||u<e}for(f=0;f<a&&(p()||(this.updateRangeFromParsed(h,t,g,c),!o));++f);if(o)for(f=a-1;f>=0;--f)if(!p()){this.updateRangeFromParsed(h,t,g,c);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let n,o,a;for(n=0,o=e.length;n<o;++n)a=e[n][t.axis],(0,s.g)(a)&&i.push(a);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,s=e.vScale,n=this.getParsed(t);return{label:i?""+i.getLabelForValue(n[i.axis]):"",value:s?""+s.getLabelForValue(n[s.axis]):""}}_update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=function(t){let e,i,n,o;return(0,s.i)(t)?(e=t.top,i=t.right,n=t.bottom,o=t.left):e=i=n=o=t,{top:e,right:i,bottom:n,left:o,disabled:!1===t}}((0,s.v)(this.options.clip,function(t,e,i){if(!1===i)return!1;const s=l(t,i),n=l(e,i);return{top:n.end,right:s.end,bottom:n.start,left:s.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,s=i.data||[],n=e.chartArea,o=[],a=this._drawStart||0,r=this._drawCount||s.length-a,c=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,n,a,r),h=a;h<a+r;++h){const e=s[h];e.hidden||(e.active&&c?o.push(e):e.draw(t,n))}for(h=0;h<o.length;++h)o[h].draw(t,n)}getStyle(t,e){const i=e?"active":"default";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const n=this.getDataset();let o;if(t>=0&&t<this._cachedMeta.data.length){const e=this._cachedMeta.data[t];o=e.$context||(e.$context=function(t,e,i){return(0,s.j)(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:"default",type:"data"})}(this.getContext(),t,e)),o.parsed=this.getParsed(t),o.raw=n.data[t],o.index=o.dataIndex=t}else o=this.$context||(this.$context=function(t,e){return(0,s.j)(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}(this.chart.getContext(),this.index)),o.dataset=n,o.index=o.datasetIndex=this.index;return o.active=!!e,o.mode=i,o}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e="default",i){const n="active"===e,o=this._cachedDataOpts,a=t+"-"+e,r=o[a],c=this.enableOptionSharing&&(0,s.h)(i);if(r)return _(r,c);const h=this.chart.config,l=h.datasetElementScopeKeys(this._type,t),d=n?[`${t}Hover`,"hover",t,""]:[t,""],u=h.getOptionScopes(this.getDataset(),l),f=Object.keys(s.d.elements[t]),g=h.resolveNamedOptions(u,f,(()=>this.getContext(i,n,e)),d);return g.$shared&&(g.$shared=c,o[a]=Object.freeze(_(g,c))),g}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const c=new h(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(c)),c}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||v(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){v(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!v(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[a,r,c]of this._syncList)this[a](r,c);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n<s&&this._removeElements(n,s-n)}_insertElements(t,e,i=!0){const s=this._cachedMeta,n=s.data,o=t+e;let a;const r=t=>{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a<o;++a)n[a]=new this.dataElementType;this._parsing&&r(s._parsed),this.parse(t,e),i&&this.updateElements(n,t,e,"reset")}updateElements(t,e,i,s){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,e);i._stacked&&b(i,s)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,s]=t;this[e](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,e){e&&this._sync(["_removeElements",t,e]);const i=arguments.length-2;i&&this._sync(["_insertElements",t,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}function w(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let n=[];for(let e=0,s=i.length;e<s;e++)n=n.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=(0,s._)(n.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let n,o,a,r,c=e._length;const h=()=>{32767!==a&&-32768!==a&&((0,s.h)(r)&&(c=Math.min(c,Math.abs(a-r)||c)),r=a)};for(n=0,o=i.length;n<o;++n)a=e.getPixelForValue(i[n]),h();for(r=void 0,n=0,o=e.ticks.length;n<o;++n)a=e.getPixelForTick(n),h();return c}function M(t,e,i,n){return(0,s.b)(t)?function(t,e,i,s){const n=i.parse(t[0],s),o=i.parse(t[1],s),a=Math.min(n,o),r=Math.max(n,o);let c=a,h=r;Math.abs(a)>Math.abs(r)&&(c=r,h=a),e[i.axis]=h,e._custom={barStart:c,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,n):e[i.axis]=i.parse(t,n),e}function k(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,c=[];let h,l,d,u;for(h=i,l=i+s;h<l;++h)u=e[h],d={},d[n.axis]=r||n.parse(a[h],h),c.push(M(u,d,o,h));return c}function S(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function C(t,e,i,s){let n=e.borderSkipped;const o={};if(!n)return void(t.borderSkipped=o);if(!0===n)return void(t.borderSkipped={top:!0,right:!0,bottom:!0,left:!0});const{start:a,end:r,reverse:c,top:h,bottom:l}=function(t){let e,i,s,n,o;return t.horizontal?(e=t.base>t.x,i="left",s="right"):(e=t.base<t.y,i="bottom",s="top"),e?(n="end",o="start"):(n="start",o="end"),{start:i,end:s,reverse:e,top:n,bottom:o}}(t);"middle"===n&&i&&(t.enableBorderRadius=!0,(i._top||0)===s?n=h:(i._bottom||0)===s?n=l:(o[P(l,a,r,c)]=!0,n=h)),o[P(n,a,r,c)]=!0,t.borderSkipped=o}function P(t,e,i,s){var n,o,a;return s?(a=i,t=z(t=(n=t)===(o=e)?a:n===a?o:n,i,e)):t=z(t,e,i),t}function z(t,e,i){return"start"===t?e:"end"===t?i:t}function O(t,{inflateAmount:e},i){t.inflateAmount="auto"===e?1===i?.33:0:e}class D extends y{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return k(t,e,i,s)}parseArrayData(t,e,i,s){return k(t,e,i,s)}parseObjectData(t,e,i,n){const{iScale:o,vScale:a}=t,{xAxisKey:r="x",yAxisKey:c="y"}=this._parsing,h="x"===o.axis?r:c,l="x"===a.axis?r:c,d=[];let u,f,g,p;for(u=i,f=i+n;u<f;++u)p=e[u],g={},g[o.axis]=o.parse((0,s.f)(p,h),u),d.push(M((0,s.f)(p,l),g,a,u));return d}updateRangeFromParsed(t,e,i,s){super.updateRangeFromParsed(t,e,i,s);const n=i._custom;n&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,n.min),t.max=Math.max(t.max,n.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:s}=e,n=this.getParsed(t),o=n._custom,a=S(o)?"["+o.start+", "+o.end+"]":""+s.getLabelForValue(n[s.axis]);return{label:""+i.getLabelForValue(n[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,n){const o="reset"===n,{index:a,_cachedMeta:{vScale:r}}=this,c=r.getBasePixel(),h=r.isHorizontal(),l=this._getRuler(),{sharedOptions:d,includeOptions:u}=this._getSharedOptions(e,n);for(let f=e;f<e+i;f++){const e=this.getParsed(f),i=o||(0,s.k)(e[r.axis])?{base:c,head:c}:this._calculateBarValuePixels(f),g=this._calculateBarIndexPixels(f,l),p=(e._stacks||{})[r.axis],m={horizontal:h,base:i.base,enableBorderRadius:!p||S(e._custom)||a===p._top||a===p._bottom,x:h?i.head:g.center,y:h?g.center:i.head,height:h?g.size:Math.abs(i.size),width:h?Math.abs(i.size):g.size};u&&(m.options=d||this.resolveDataElementOptions(f,t[f].active?"active":n));const x=m.options||t[f].options;C(m,x,p,a),O(m,x,l.ratio),this.updateElement(t[f],f,m,n)}}_getStacks(t,e){const{iScale:i}=this._cachedMeta,n=i.getMatchingVisibleMetas(this._type).filter((t=>t.controller.options.grouped)),o=i.options.stacked,a=[],r=t=>{const i=t.controller.getParsed(e),n=i&&i[t.vScale.axis];if((0,s.k)(n)||isNaN(n))return!0};for(const s of n)if((void 0===e||!r(s))&&((!1===o||-1===a.indexOf(s.stack)||void 0===o&&void 0===s.stack)&&a.push(s.stack),s.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n<o;++n)s.push(i.getPixelForValue(this.getParsed(n)[i.axis],n));const a=t.barThickness;return{min:a||w(e),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i,index:n},options:{base:o,minBarLength:a}}=this,r=o||0,c=this.getParsed(t),h=c._custom,l=S(h);let d,u,f=c[e.axis],g=0,p=i?this.applyStack(e,c,i):f;p!==f&&(g=p-f,p=f),l&&(f=h.barStart,p=h.barEnd-h.barStart,0!==f&&(0,s.s)(f)!==(0,s.s)(h.barEnd)&&(g=0),g+=f);const m=(0,s.k)(o)||l?g:o;let x=e.getPixelForValue(m);if(d=this.chart.getDataVisibility(t)?e.getPixelForValue(g+p):x,u=d-x,Math.abs(u)<a){u=function(t,e,i){return 0!==t?(0,s.s)(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(u,e,r)*a,f===r&&(x-=u/2);const t=e.getPixelForDecimal(0),o=e.getPixelForDecimal(1),h=Math.min(t,o),g=Math.max(t,o);x=Math.max(Math.min(x,g),h),d=x+u,i&&!l&&(c._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(x))}if(x===e.getPixelForValue(r)){const t=(0,s.s)(u)*e.getLineWidthForValue(r)/2;x+=t,u-=t}return{size:u,base:x,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=(0,s.v)(n.maxBarThickness,1/0);let r,c;if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,h="flex"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t<n.length-1?n[t+1]:null;const c=i.categoryPercentage;null===a&&(a=o-(null===r?e.end-e.start:r-o)),null===r&&(r=o+o-a);const h=o-(o-Math.min(a,r))/2*c;return{chunk:Math.abs(r-a)/2*c/s,ratio:i.barPercentage,start:h}}(t,e,n,i):function(t,e,i,n){const o=i.barThickness;let a,r;return(0,s.k)(o)?(a=e.min*i.categoryPercentage,r=i.barPercentage):(a=o*n,r=1),{chunk:a/n,ratio:r,start:e.pixels[t]-a/2}}(t,e,n,i),l=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0);r=h.start+h.chunk*l+h.chunk/2,c=Math.min(a,h.chunk*h.ratio)}else r=i.getPixelForValue(this.getParsed(t)[i.axis],t),c=Math.min(a,e.min*e.ratio);return{base:r-c/2,head:r+c/2,center:r,size:c}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,s=i.length;let n=0;for(;n<s;++n)null!==this.getParsed(n)[e.axis]&&i[n].draw(this._ctx)}}class L extends y{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:n=[],_dataset:o}=e,a=this.chart._animationsDisabled;let{start:r,count:c}=(0,s.q)(e,n,a);this._drawStart=r,this._drawCount=c,(0,s.w)(e)&&(r=0,c=n.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=n;const h=this.resolveDatasetElementOptions(t);this.options.showLine||(h.borderWidth=0),h.segment=this.options.segment,this.updateElement(i,void 0,{animated:!a,options:h},t),this.updateElements(n,r,c,t)}updateElements(t,e,i,n){const o="reset"===n,{iScale:a,vScale:r,_stacked:c,_dataset:h}=this._cachedMeta,{sharedOptions:l,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=(0,s.x)(g)?g:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||o||"none"===n,b=e+i,v=t.length;let _=e>0&&this.getParsed(e-1);for(let y=0;y<v;++y){const i=t[y],g=x?i:{};if(y<e||y>=b){g.skip=!0;continue}const v=this.getParsed(y),w=(0,s.k)(v[f]),M=g[u]=a.getPixelForValue(v[u],y),k=g[f]=o||w?r.getBasePixel():r.getPixelForValue(c?this.applyStack(r,v,c):v[f],y);g.skip=isNaN(M)||isNaN(k)||w,g.stop=y>0&&Math.abs(v[u]-_[u])>m,p&&(g.parsed=v,g.raw=h.data[y]),d&&(g.options=l||this.resolveDataElementOptions(y,i.active?"active":n)),x||this.updateElement(i,y,g,n),_=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}function A(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class H{static override(t){Object.assign(H.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return A()}parse(){return A()}format(){return A()}add(){return A()}diff(){return A()}startOf(){return A()}endOf(){return A()}}var T={_date:H};function I(t,e,i,n){const{controller:o,data:a,_sorted:r}=t,c=o._cachedMeta.iScale;if(c&&e===c.axis&&"r"!==e&&r&&a.length){const t=c._reversePixels?s.A:s.B;if(!n)return t(a,e,i);if(o._sharedOptions){const s=a[0],n="function"===typeof s.getRange&&s.getRange(e);if(n){const s=t(a,e,i-n),o=t(a,e,i+n);return{lo:s.lo,hi:o.hi}}}}return{lo:0,hi:a.length-1}}function E(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let r=0,c=o.length;r<c;++r){const{index:t,data:i}=o[r],{lo:c,hi:h}=I(o[r],e,a,n);for(let e=c;e<=h;++e){const n=i[e];n.skip||s(n,t,e)}}}function V(t,e,i,n,o){const a=[];if(!o&&!t.isPointInArea(e))return a;return E(t,i,e,(function(i,r,c){(o||(0,s.C)(i,t.chartArea,0))&&i.inRange(e.x,e.y,n)&&a.push({element:i,datasetIndex:r,index:c})}),!0),a}function F(t,e,i,s,n,o){let a=[];const r=function(t){const e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,s){const n=e?Math.abs(t.x-s.x):0,o=i?Math.abs(t.y-s.y):0;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))}}(i);let c=Number.POSITIVE_INFINITY;return E(t,i,e,(function(i,h,l){const d=i.inRange(e.x,e.y,n);if(s&&!d)return;const u=i.getCenterPoint(n);if(!(!!o||t.isPointInArea(u))&&!d)return;const f=r(e,u);f<c?(a=[{element:i,datasetIndex:h,index:l}],c=f):f===c&&a.push({element:i,datasetIndex:h,index:l})})),a}function R(t,e,i,n,o,a){return a||t.isPointInArea(e)?"r"!==i||n?F(t,e,i,n,o,a):function(t,e,i,n){let o=[];return E(t,i,e,(function(t,i,a){const{startAngle:r,endAngle:c}=t.getProps(["startAngle","endAngle"],n),{angle:h}=(0,s.D)(t,{x:e.x,y:e.y});(0,s.p)(h,r,c)&&o.push({element:t,datasetIndex:i,index:a})})),o}(t,e,i,o):[]}function N(t,e,i,s,n){const o=[],a="x"===i?"inXRange":"inYRange";let r=!1;return E(t,i,e,((t,s,c)=>{t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:c}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var B={evaluateInteractionItems:E,modes:{index(t,e,i,n){const o=(0,s.z)(e,t),a=i.axis||"x",r=i.includeInvisible||!1,c=i.intersect?V(t,o,a,n,r):R(t,o,a,!1,n,r),h=[];return c.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=c[0].index,i=t.data[e];i&&!i.skip&&h.push({element:i,datasetIndex:t.index,index:e})})),h):[]},dataset(t,e,i,n){const o=(0,s.z)(e,t),a=i.axis||"xy",r=i.includeInvisible||!1;let c=i.intersect?V(t,o,a,n,r):R(t,o,a,!1,n,r);if(c.length>0){const e=c[0].datasetIndex,i=t.getDatasetMeta(e).data;c=[];for(let t=0;t<i.length;++t)c.push({element:i[t],datasetIndex:e,index:t})}return c},point:(t,e,i,n)=>V(t,(0,s.z)(e,t),i.axis||"xy",n,i.includeInvisible||!1),nearest(t,e,i,n){const o=(0,s.z)(e,t),a=i.axis||"xy",r=i.includeInvisible||!1;return R(t,o,a,i.intersect,n,r)},x:(t,e,i,n)=>N(t,(0,s.z)(e,t),"x",i.intersect,n),y:(t,e,i,n)=>N(t,(0,s.z)(e,t),"y",i.intersect,n)}};const j=["left","top","right","bottom"];function W(t,e){return t.filter((t=>t.pos===e))}function $(t,e){return t.filter((t=>-1===j.indexOf(t.pos)&&t.box.axis===e))}function Y(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function U(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!j.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o<a;++o){r=t[o];const{fullSize:a}=r.box,c=i[r.stack],h=c&&r.stackWeight/c.weight;r.horizontal?(r.width=h?h*s:a&&e.availableWidth,r.height=n):(r.width=s,r.height=h?h*n:a&&e.availableHeight)}return i}function X(t,e,i,s){return Math.max(t[i],e[i])+Math.max(t[s],e[s])}function Q(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function K(t,e,i,n){const{pos:o,box:a}=i,r=t.maxPadding;if(!(0,s.i)(o)){i.size&&(t[o]-=i.size);const e=n[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?a.height:a.width),i.size=e.size/e.count,t[o]+=i.size}a.getPadding&&Q(r,a.getPadding());const c=Math.max(0,e.outerWidth-X(r,t,"left","right")),h=Math.max(0,e.outerHeight-X(r,t,"top","bottom")),l=c!==t.w,d=h!==t.h;return t.w=c,t.h=h,i.horizontal?{same:l,other:d}:{same:d,other:l}}function q(t,e){const i=e.maxPadding;function s(t){const s={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function G(t,e,i,s){const n=[];let o,a,r,c,h,l;for(o=0,a=t.length,h=0;o<a;++o){r=t[o],c=r.box,c.update(r.width||e.w,r.height||e.h,q(r.horizontal,e));const{same:a,other:d}=K(e,i,r,s);h|=a&&n.length,l=l||d,c.fullSize||n.push(r)}return h&&G(n,e,i,s)||l}function Z(t,e,i,s,n){t.top=i,t.left=e,t.right=e+s,t.bottom=i+n,t.width=s,t.height=n}function J(t,e,i,n){const o=i.padding;let{x:a,y:r}=e;for(const c of t){const t=c.box,h=n[c.stack]||{count:1,placed:0,weight:1},l=c.stackWeight/h.weight||1;if(c.horizontal){const n=e.w*l,a=h.size||t.height;(0,s.h)(h.start)&&(r=h.start),t.fullSize?Z(t,o.left,r,i.outerWidth-o.right-o.left,a):Z(t,e.left+h.placed,r,n,a),h.start=r,h.placed+=n,r=t.bottom}else{const n=e.h*l,r=h.size||t.width;(0,s.h)(h.start)&&(a=h.start),t.fullSize?Z(t,a,o.top,r,i.outerHeight-o.bottom-o.top):Z(t,a,e.top+h.placed,r,n),h.start=a,h.placed+=n,a=t.right}}e.x=a,e.y=r}var tt={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||"top",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,n){if(!t)return;const o=(0,s.E)(t.options.layout.padding),a=Math.max(e-o.width,0),r=Math.max(i-o.height,0),c=function(t){const e=function(t){const e=[];let i,s,n,o,a,r;for(i=0,s=(t||[]).length;i<s;++i)n=t[i],({position:o,options:{stack:a,stackWeight:r=1}}=n),e.push({index:i,box:n,pos:o,horizontal:n.isHorizontal(),weight:n.weight,stack:a&&o+a,stackWeight:r});return e}(t),i=Y(e.filter((t=>t.box.fullSize)),!0),s=Y(W(e,"left"),!0),n=Y(W(e,"right")),o=Y(W(e,"top"),!0),a=Y(W(e,"bottom")),r=$(e,"x"),c=$(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(c).concat(a).concat(r),chartArea:W(e,"chartArea"),vertical:s.concat(n).concat(c),horizontal:o.concat(a).concat(r)}}(t.boxes),h=c.vertical,l=c.horizontal;(0,s.F)(t.boxes,(t=>{"function"===typeof t.beforeLayout&&t.beforeLayout()}));const d=h.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,u=Object.freeze({outerWidth:e,outerHeight:i,padding:o,availableWidth:a,availableHeight:r,vBoxMaxWidth:a/2/d,hBoxMaxHeight:r/2}),f=Object.assign({},o);Q(f,(0,s.E)(n));const g=Object.assign({maxPadding:f,w:a,h:r,x:o.left,y:o.top},o),p=U(h.concat(l),u);G(c.fullSize,g,u,p),G(h,g,u,p),G(l,g,u,p)&&G(h,g,u,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),J(c.leftAndTop,g,u,p),g.x+=g.w,g.y+=g.h,J(c.rightAndBottom,g,u,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},(0,s.F)(c.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class et{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class it extends et{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const st="$chartjs",nt={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},ot=t=>null===t||""===t;const at=!!s.K&&{passive:!0};function rt(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,at)}function ct(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function ht(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ct(i.addedNodes,s),e=e&&!ct(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function lt(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ct(i.removedNodes,s),e=e&&!ct(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const dt=new Map;let ut=0;function ft(){const t=window.devicePixelRatio;t!==ut&&(ut=t,dt.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function gt(t,e,i){const n=t.canvas,o=n&&(0,s.I)(n);if(!o)return;const a=(0,s.L)(((t,e)=>{const s=o.clientWidth;i(t,e),s<o.clientWidth&&i()}),window),r=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||a(i,s)}));return r.observe(o),function(t,e){dt.size||window.addEventListener("resize",ft),dt.set(t,e)}(t,a),r}function pt(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){dt.delete(t),dt.size||window.removeEventListener("resize",ft)}(t)}function mt(t,e,i){const n=t.canvas,o=(0,s.L)((e=>{null!==t.ctx&&i(function(t,e){const i=nt[t.type]||t.type,{x:n,y:o}=(0,s.z)(t,e);return{type:i,chart:e,native:t,x:void 0!==n?n:null,y:void 0!==o?o:null}}(e,t))}),t);return function(t,e,i){t&&t.addEventListener(e,i,at)}(n,e,o),o}class xt extends et{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,n=t.getAttribute("height"),o=t.getAttribute("width");if(t[st]={initial:{height:n,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",ot(o)){const e=(0,s.J)(t,"width");void 0!==e&&(t.width=e)}if(ot(n))if(""===t.style.height)t.height=t.width/(e||2);else{const e=(0,s.J)(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[st])return!1;const i=e[st].initial;["height","width"].forEach((t=>{const n=i[t];(0,s.k)(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e[st],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:ht,detach:lt,resize:gt}[e]||mt;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:pt,detach:pt,resize:pt}[e]||rt)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,n){return(0,s.G)(t,e,i,n)}isAttached(t){const e=(0,s.I)(t);return!(!e||!e.isConnected)}}class bt{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}hasValue(){return(0,s.x)(this.x)&&(0,s.x)(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const s={};return t.forEach((t=>{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function vt(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;i<s;i++)t[i].major&&e.push(i);return e}(e):[],r=a.length,c=a[0],h=a[r-1],l=[];if(r>o)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;n<t.length;n++)n===a&&(e.push(t[n]),o++,a=i[o*s])}(e,l,a,r/o),l;const d=function(t,e,i){const n=function(t){const e=t.length;let i,s;if(e<2)return!1;for(s=t[0],i=1;i<e;++i)if(t[i]-t[i-1]!==s)return!1;return s}(t),o=e.length/i;if(!n)return Math.max(o,1);const a=(0,s.N)(n);for(let s=0,r=a.length-1;s<r;s++){const t=a[s];if(t>o)return t}return Math.max(o,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-c)/(r-1)):null;for(_t(e,l,d,(0,s.k)(n)?0:c-n,c),t=0,i=r-1;t<i;t++)_t(e,l,d,a[t],a[t+1]);return _t(e,l,d,h,(0,s.k)(n)?e.length:h+n),l}return _t(e,l,d),l}function _t(t,e,i,n,o){const a=(0,s.v)(n,0),r=Math.min((0,s.v)(o,t.length),t.length);let c,h,l,d=0;for(i=Math.ceil(i),o&&(c=o-n,i=c/Math.floor(c/i)),l=a;l<0;)d++,l=Math.round(a+d*i);for(h=Math.max(a,0);h<r;h++)h===l&&(e.push(t[h]),d++,l=Math.round(a+d*i))}const yt=(t,e,i)=>"top"===e||"left"===e?t[e]+i:t[e]-i,wt=(t,e)=>Math.min(e||t,t);function Mt(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;o<n;o+=s)i.push(t[Math.floor(o)]);return i}function kt(t,e,i){const s=t.ticks.length,n=Math.min(e,s-1),o=t._startPixel,a=t._endPixel,r=1e-6;let c,h=t.getPixelForTick(n);if(!(i&&(c=1===s?Math.max(h-o,a-h):0===e?(t.getPixelForTick(1)-h)/2:(h-t.getPixelForTick(n-1))/2,h+=n<e?c:-c,h<o-r||h>a+r)))return h}function St(t){return t.drawTicks?t.tickLength:0}function Ct(t,e){if(!t.display)return 0;const i=(0,s.a0)(t.font,e),n=(0,s.E)(t.padding);return((0,s.b)(t.text)?t.text.length:1)*i.lineHeight+n.height}function Pt(t,e,i){let n=(0,s.a1)(t);return(i&&"right"!==e||!i&&"right"===e)&&(n=(t=>"left"===t?"right":"right"===t?"left":t)(n)),n}class zt extends bt{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:n}=this;return t=(0,s.O)(t,Number.POSITIVE_INFINITY),e=(0,s.O)(e,Number.NEGATIVE_INFINITY),i=(0,s.O)(i,Number.POSITIVE_INFINITY),n=(0,s.O)(n,Number.NEGATIVE_INFINITY),{min:(0,s.O)(t,i),max:(0,s.O)(e,n),minDefined:(0,s.g)(t),maxDefined:(0,s.g)(e)}}getMinMax(t){let e,{min:i,max:n,minDefined:o,maxDefined:a}=this.getUserBounds();if(o&&a)return{min:i,max:n};const r=this.getMatchingVisibleMetas();for(let s=0,c=r.length;s<c;++s)e=r[s].controller.getMinMax(this,t),o||(i=Math.min(i,e.min)),a||(n=Math.max(n,e.max));return i=a&&i>n?n:i,n=o&&i>n?i:n,{min:(0,s.O)(i,(0,s.O)(n,i)),max:(0,s.O)(n,(0,s.O)(i,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){(0,s.Q)(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:n,grace:o,ticks:a}=this.options,r=a.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=(0,s.R)(this,o,n),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const c=r<this.ticks.length;this._convertTicksToLabels(c?Mt(this.ticks,r):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),a.display&&(a.autoSkip||"auto"===a.source)&&(this.ticks=vt(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),c&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){(0,s.Q)(this.options.afterUpdate,[this])}beforeSetDimensions(){(0,s.Q)(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){(0,s.Q)(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,s.Q)(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){(0,s.Q)(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,n,o;for(i=0,n=t.length;i<n;i++)o=t[i],o.label=(0,s.Q)(e.callback,[o.value,i,t],this)}afterTickToLabelConversion(){(0,s.Q)(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){(0,s.Q)(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=wt(this.ticks.length,t.ticks.maxTicksLimit),n=e.minRotation||0,o=e.maxRotation;let a,r,c,h=n;if(!this._isVisible()||!e.display||n>=o||i<=1||!this.isHorizontal())return void(this.labelRotation=n);const l=this._getLabelSizes(),d=l.widest.width,u=l.highest.height,f=(0,s.S)(this.chart.width-d,0,this.maxWidth);a=t.offset?this.maxWidth/i:f/(i-1),d+6>a&&(a=f/(i-(t.offset?.5:1)),r=this.maxHeight-St(t.grid)-e.padding-Ct(t.title,this.chart.options.font),c=Math.sqrt(d*d+u*u),h=(0,s.U)(Math.min(Math.asin((0,s.S)((l.highest.height+6)/a,-1,1)),Math.asin((0,s.S)(r/c,-1,1))-Math.asin((0,s.S)(u/c,-1,1)))),h=Math.max(n,Math.min(o,h))),this.labelRotation=h}afterCalculateLabelRotation(){(0,s.Q)(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){(0,s.Q)(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:n,grid:o}}=this,a=this._isVisible(),r=this.isHorizontal();if(a){const a=Ct(n,e.options.font);if(r?(t.width=this.maxWidth,t.height=St(o)+a):(t.height=this.maxHeight,t.width=St(o)+a),i.display&&this.ticks.length){const{first:e,last:n,widest:o,highest:a}=this._getLabelSizes(),c=2*i.padding,h=(0,s.t)(this.labelRotation),l=Math.cos(h),d=Math.sin(h);if(r){const e=i.mirror?0:d*o.width+l*a.height;t.height=Math.min(this.maxHeight,t.height+e+c)}else{const e=i.mirror?0:l*o.width+d*a.height;t.width=Math.min(this.maxWidth,t.width+e+c)}this._calculatePadding(e,n,d,l)}}this._handleMargins(),r?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,c="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let l=0,d=0;r?c?(l=s*t.width,d=i*e.height):(l=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?l=t.width:"inner"!==n&&(l=t.width/2,d=e.width/2),this.paddingLeft=Math.max((l-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){(0,s.Q)(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e<i;e++)(0,s.k)(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e<i.length&&(i=Mt(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,e,i){const{ctx:n,_longestTextCache:o}=this,a=[],r=[],c=Math.floor(e/wt(e,i));let h,l,d,u,f,g,p,m,x,b,v,_=0,y=0;for(h=0;h<e;h+=c){if(u=t[h].label,f=this._resolveTickFontOptions(h),n.font=g=f.string,p=o[g]=o[g]||{data:{},gc:[]},m=f.lineHeight,x=b=0,(0,s.k)(u)||(0,s.b)(u)){if((0,s.b)(u))for(l=0,d=u.length;l<d;++l)v=u[l],(0,s.k)(v)||(0,s.b)(v)||(x=(0,s.V)(n,p.data,p.gc,x,v),b+=m)}else x=(0,s.V)(n,p.data,p.gc,x,u),b=m;a.push(x),r.push(b),_=Math.max(x,_),y=Math.max(b,y)}!function(t,e){(0,s.F)(t,(t=>{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n<s;++n)delete t.data[i[n]];i.splice(0,s)}}))}(o,e);const w=a.indexOf(_),M=r.indexOf(y),k=t=>({width:a[t]||0,height:r[t]||0});return{first:k(0),last:k(e-1),widest:k(w),highest:k(M),widths:a,heights:r}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return(0,s.W)(this._alignToPixels?(0,s.X)(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t<e.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return(0,s.j)(t,{tick:i,index:e,type:"tick"})}(this.getContext(),t,i))}return this.$context||(this.$context=(i=this.chart.getContext(),n=this,(0,s.j)(i,{scale:n,type:"scale"})));var i,n}_tickSize(){const t=this.options.ticks,e=(0,s.t)(this.labelRotation),i=Math.abs(Math.cos(e)),n=Math.abs(Math.sin(e)),o=this._getLabelSizes(),a=t.autoSkipPadding||0,r=o?o.widest.width+a:0,c=o?o.highest.height+a:0;return this.isHorizontal()?c*i>r*n?r/i:c/n:c*n<r*i?c/i:r/n}_isVisible(){const t=this.options.display;return"auto"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,n=this.options,{grid:o,position:a,border:r}=n,c=o.offset,h=this.isHorizontal(),l=this.ticks.length+(c?1:0),d=St(o),u=[],f=r.setContext(this.getContext()),g=f.display?f.width:0,p=g/2,m=function(t){return(0,s.X)(i,t,g)};let x,b,v,_,y,w,M,k,S,C,P,z;if("top"===a)x=m(this.bottom),w=this.bottom-d,k=x-p,C=m(t.top)+p,z=t.bottom;else if("bottom"===a)x=m(this.top),C=t.top,z=m(t.bottom)-p,w=x+p,k=this.top+d;else if("left"===a)x=m(this.right),y=this.right-d,M=x-p,S=m(t.left)+p,P=t.right;else if("right"===a)x=m(this.left),S=t.left,P=m(t.right)-p,y=x+p,M=this.left+d;else if("x"===e){if("center"===a)x=m((t.top+t.bottom)/2+.5);else if((0,s.i)(a)){const t=Object.keys(a)[0],e=a[t];x=m(this.chart.scales[t].getPixelForValue(e))}C=t.top,z=t.bottom,w=x+p,k=w+d}else if("y"===e){if("center"===a)x=m((t.left+t.right)/2);else if((0,s.i)(a)){const t=Object.keys(a)[0],e=a[t];x=m(this.chart.scales[t].getPixelForValue(e))}y=x-p,M=y-d,S=t.left,P=t.right}const O=(0,s.v)(n.ticks.maxTicksLimit,l),D=Math.max(1,Math.ceil(l/O));for(b=0;b<l;b+=D){const t=this.getContext(b),e=o.setContext(t),n=r.setContext(t),a=e.lineWidth,l=e.color,d=n.dash||[],f=n.dashOffset,g=e.tickWidth,p=e.tickColor,m=e.tickBorderDash||[],x=e.tickBorderDashOffset;v=kt(this,b,c),void 0!==v&&(_=(0,s.X)(i,v,a),h?y=M=S=P=_:w=k=C=z=_,u.push({tx1:y,ty1:w,tx2:M,ty2:k,x1:S,y1:C,x2:P,y2:z,width:a,color:l,borderDash:d,borderDashOffset:f,tickWidth:g,tickColor:p,tickBorderDash:m,tickBorderDashOffset:x}))}return this._ticksLength=l,this._borderValue=x,u}_computeLabelItems(t){const e=this.axis,i=this.options,{position:n,ticks:o}=i,a=this.isHorizontal(),r=this.ticks,{align:c,crossAlign:h,padding:l,mirror:d}=o,u=St(i.grid),f=u+l,g=d?-l:f,p=-(0,s.t)(this.labelRotation),m=[];let x,b,v,_,y,w,M,k,S,C,P,z,O="middle";if("top"===n)w=this.bottom-g,M=this._getXAxisLabelAlignment();else if("bottom"===n)w=this.top+g,M=this._getXAxisLabelAlignment();else if("left"===n){const t=this._getYAxisLabelAlignment(u);M=t.textAlign,y=t.x}else if("right"===n){const t=this._getYAxisLabelAlignment(u);M=t.textAlign,y=t.x}else if("x"===e){if("center"===n)w=(t.top+t.bottom)/2+f;else if((0,s.i)(n)){const t=Object.keys(n)[0],e=n[t];w=this.chart.scales[t].getPixelForValue(e)+f}M=this._getXAxisLabelAlignment()}else if("y"===e){if("center"===n)y=(t.left+t.right)/2-f;else if((0,s.i)(n)){const t=Object.keys(n)[0],e=n[t];y=this.chart.scales[t].getPixelForValue(e)}M=this._getYAxisLabelAlignment(u).textAlign}"y"===e&&("start"===c?O="top":"end"===c&&(O="bottom"));const D=this._getLabelSizes();for(x=0,b=r.length;x<b;++x){v=r[x],_=v.label;const t=o.setContext(this.getContext(x));k=this.getPixelForTick(x)+o.labelOffset,S=this._resolveTickFontOptions(x),C=S.lineHeight,P=(0,s.b)(_)?_.length:1;const e=P/2,i=t.color,c=t.textStrokeColor,l=t.textStrokeWidth;let u,f=M;if(a?(y=k,"inner"===M&&(f=x===b-1?this.options.reverse?"left":"right":0===x?this.options.reverse?"right":"left":"center"),z="top"===n?"near"===h||0!==p?-P*C+C/2:"center"===h?-D.highest.height/2-e*C+C:-D.highest.height+C/2:"near"===h||0!==p?C/2:"center"===h?D.highest.height/2-e*C:D.highest.height-P*C,d&&(z*=-1),0===p||t.showLabelBackdrop||(y+=C/2*Math.sin(p))):(w=k,z=(1-P)*C/2),t.showLabelBackdrop){const e=(0,s.E)(t.backdropPadding),i=D.heights[x],n=D.widths[x];let o=z-e.top,a=0-e.left;switch(O){case"middle":o-=i/2;break;case"bottom":o-=i}switch(M){case"center":a-=n/2;break;case"right":a-=n;break;case"inner":x===b-1?a-=n:x>0&&(a-=n/2)}u={left:a,top:o,width:n+e.width,height:i+e.height,color:t.backdropColor}}m.push({label:_,font:S,textOffset:z,options:{rotation:p,color:i,strokeColor:c,strokeWidth:l,textAlign:f,textBaseline:O,translation:[y,w],backdrop:u}})}return m}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-(0,s.t)(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,c;return"left"===e?s?(c=this.right+n,"near"===i?r="left":"center"===i?(r="center",c+=a/2):(r="right",c+=a)):(c=this.right-o,"near"===i?r="right":"center"===i?(r="center",c-=a/2):(r="left",c=this.left)):"right"===e?s?(c=this.left+n,"near"===i?r="right":"center"===i?(r="center",c-=a/2):(r="left",c-=a)):(c=this.left+o,"near"===i?r="left":"center"===i?(r="center",c+=a/2):(r="right",c=this.right)):r="right",{textAlign:r,x:c}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n<o;++n){const t=s[n];e.drawOnChartArea&&a({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&a({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{border:i,grid:n}}=this,o=i.setContext(this.getContext()),a=i.display?o.width:0;if(!a)return;const r=n.setContext(this.getContext(0)).lineWidth,c=this._borderValue;let h,l,d,u;this.isHorizontal()?(h=(0,s.X)(t,this.left,a)-a/2,l=(0,s.X)(t,this.right,r)+r/2,d=u=c):(d=(0,s.X)(t,this.top,a)-a/2,u=(0,s.X)(t,this.bottom,r)+r/2,h=l=c),e.save(),e.lineWidth=o.width,e.strokeStyle=o.color,e.beginPath(),e.moveTo(h,d),e.lineTo(l,u),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&(0,s.Y)(e,i);const n=this.getLabelItems(t);for(const o of n){const t=o.options,i=o.font,n=o.label,a=o.textOffset;(0,s.Z)(e,n,0,a,i,t)}i&&(0,s.$)(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:n}}=this;if(!i.display)return;const o=(0,s.a0)(i.font),a=(0,s.E)(i.padding),r=i.align;let c=o.lineHeight/2;"bottom"===e||"center"===e||(0,s.i)(e)?(c+=a.bottom,(0,s.b)(i.text)&&(c+=o.lineHeight*(i.text.length-1))):c+=a.top;const{titleX:h,titleY:l,maxWidth:d,rotation:u}=function(t,e,i,n){const{top:o,left:a,bottom:r,right:c,chart:h}=t,{chartArea:l,scales:d}=h;let u,f,g,p=0;const m=r-o,x=c-a;if(t.isHorizontal()){if(f=(0,s.a2)(n,a,c),(0,s.i)(i)){const t=Object.keys(i)[0],s=i[t];g=d[t].getPixelForValue(s)+m-e}else g="center"===i?(l.bottom+l.top)/2+m-e:yt(t,i,e);u=c-a}else{if((0,s.i)(i)){const t=Object.keys(i)[0],s=i[t];f=d[t].getPixelForValue(s)-x+e}else f="center"===i?(l.left+l.right)/2-x+e:yt(t,i,e);g=(0,s.a2)(n,r,o),p="left"===i?-s.H:s.H}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,c,e,r);(0,s.Z)(t,i.text,0,0,o,{color:i.color,maxWidth:d,rotation:u,textAlign:Pt(r,e,n),textBaseline:"middle",translation:[h,l]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=(0,s.v)(t.grid&&t.grid.z,-1),n=(0,s.v)(t.border&&t.border.z,0);return this._isVisible()&&this.draw===zt.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:n,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n<o;++n){const o=e[n];o[i]!==this.id||t&&o.type!==t||s.push(o)}return s}_resolveTickFontOptions(t){const e=this.options.ticks.setContext(this.getContext(t));return(0,s.a0)(e.font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Ot{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return"id"in t&&"defaults"in t})(e)&&(i=this.register(e));const n=this.items,o=t.id,a=this.scope+"."+o;if(!o)throw new Error("class does not have id: "+t);return o in n||(n[o]=t,function(t,e,i){const n=(0,s.a4)(Object.create(null),[i?s.d.get(i):{},s.d.get(e),t.defaults]);s.d.set(e,n),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const n=i.split("."),o=n.pop(),a=[t].concat(n).join("."),r=e[i].split("."),c=r.pop(),h=r.join(".");s.d.route(a,o,h,c)}))}(e,t.defaultRoutes);t.descriptors&&s.d.describe(e,t.descriptors)}(t,a,i),this.override&&s.d.override(t.id,t.overrides)),a}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,n=this.scope;i in e&&delete e[i],n&&i in s.d[n]&&(delete s.d[n][i],this.override&&delete s.a3[i])}}class Dt{constructor(){this.controllers=new Ot(y,"datasets",!0),this.elements=new Ot(bt,"elements"),this.plugins=new Ot(Object,"plugins"),this.scales=new Ot(zt,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const n=i||this._getRegistryForType(e);i||n.isForType(e)||n===this.plugins&&e.id?this._exec(t,n,e):(0,s.F)(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const n=(0,s.a5)(t);(0,s.Q)(i["before"+n],[],i),e[t](i),(0,s.Q)(i["after"+n],[],i)}_getRegistryForType(t){for(let e=0;e<this._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const s=e.get(t);if(void 0===s)throw new Error('"'+t+'" is not a registered '+i+".");return s}}var Lt=new Dt;class At{constructor(){this._init=[]}notify(t,e,i,s){"beforeInit"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const n=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(n,t,e,i);return"afterDestroy"===e&&(this._notify(n,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,e,i,n){n=n||{};for(const o of t){const t=o.plugin,a=t[i],r=[e,n,o.options];if(!1===(0,s.Q)(a,r,t)&&n.cancelable)return!1}return!0}invalidate(){(0,s.k)(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,n=(0,s.v)(i.options&&i.options.plugins,{}),o=function(t){const e={},i=[],s=Object.keys(Lt.plugins.items);for(let o=0;o<s.length;o++)i.push(Lt.getPlugin(s[o]));const n=t.plugins||[];for(let o=0;o<n.length;o++){const t=n[o];-1===i.indexOf(t)&&(i.push(t),e[t.id]=!0)}return{plugins:i,localIds:e}}(i);return!1!==n||e?function(t,{plugins:e,localIds:i},s,n){const o=[],a=t.getContext();for(const r of e){const e=r.id,c=Ht(s[e],n);null!==c&&o.push({plugin:r,options:Tt(t.config,{plugin:r,local:i[e]},c,a)})}return o}(t,o,n,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,s=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function Ht(t,e){return e||!1!==t?!0===t?{}:t:null}function Tt(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function It(t,e){const i=s.d.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function Et(t){if("x"===t||"y"===t||"r"===t)return t}function Vt(t,...e){if(Et(t))return t;for(const s of e){const e=s.axis||("top"===(i=s.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&Et(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function Ft(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function Rt(t,e){const i=s.a3[t.type]||{scales:{}},n=e.scales||{},o=It(t.type,e),a=Object.create(null);return Object.keys(n).forEach((e=>{const r=n[e];if(!(0,s.i)(r))return console.error(`Invalid scale configuration for scale: ${e}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const c=Vt(e,r,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return Ft(t,"x",i[0])||Ft(t,"y",i[0])}return{}}(e,t),s.d.scales[r.type]),h=function(t,e){return t===e?"_index_":"_value_"}(c,o),l=i.scales||{};a[e]=(0,s.ab)(Object.create(null),[{axis:c},r,l[c],l[h]])})),t.data.datasets.forEach((i=>{const o=i.type||t.type,r=i.indexAxis||It(o,e),c=(s.a3[o]||{}).scales||{};Object.keys(c).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,r),o=i[e+"AxisID"]||e;a[o]=a[o]||Object.create(null),(0,s.ab)(a[o],[{axis:e},n[o],c[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];(0,s.ab)(e,[s.d.scales[e.type],s.d.scale])})),a}function Nt(t){const e=t.options||(t.options={});e.plugins=(0,s.v)(e.plugins,{}),e.scales=Rt(t,e)}function Bt(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const jt=new Map,Wt=new Set;function $t(t,e){let i=jt.get(t);return i||(i=e(),jt.set(t,i),Wt.add(i)),i}const Yt=(t,e,i)=>{const n=(0,s.f)(e,i);void 0!==n&&t.add(n)};class Ut{constructor(t){this._config=function(t){return(t=t||{}).data=Bt(t.data),Nt(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Bt(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),Nt(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return $t(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return $t(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return $t(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return $t(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:n,type:o}=this,a=this._cachedScopes(t,i),r=a.get(e);if(r)return r;const c=new Set;e.forEach((e=>{t&&(c.add(t),e.forEach((e=>Yt(c,t,e)))),e.forEach((t=>Yt(c,n,t))),e.forEach((t=>Yt(c,s.a3[o]||{},t))),e.forEach((t=>Yt(c,s.d,t))),e.forEach((t=>Yt(c,s.a6,t)))}));const h=Array.from(c);return 0===h.length&&h.push(Object.create(null)),Wt.has(e)&&a.set(e,h),h}chartOptionScopes(){const{options:t,type:e}=this;return[t,s.a3[e]||{},s.d.datasets[e]||{},{type:e},s.d,s.a6]}resolveNamedOptions(t,e,i,n=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=Xt(this._resolverCache,t,n);let c=a;if(function(t,e){const{isScriptable:i,isIndexable:n}=(0,s.aa)(t);for(const o of e){const e=i(o),a=n(o),r=(a||e)&&t[o];if(e&&((0,s.a7)(r)||Qt(r))||a&&(0,s.b)(r))return!0}return!1}(a,e)){o.$shared=!1,i=(0,s.a7)(i)?i():i;const e=this.createResolver(t,i,r);c=(0,s.a8)(a,i,e)}for(const s of e)o[s]=c[s];return o}createResolver(t,e,i=[""],n){const{resolver:o}=Xt(this._resolverCache,t,i);return(0,s.i)(e)?(0,s.a8)(o,e,void 0,n):o}}function Xt(t,e,i){let n=t.get(e);n||(n=new Map,t.set(e,n));const o=i.join();let a=n.get(o);if(!a){a={resolver:(0,s.a9)(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},n.set(o,a)}return a}const Qt=t=>(0,s.i)(t)&&Object.getOwnPropertyNames(t).some((e=>(0,s.a7)(t[e])));const Kt=["top","bottom","left","right","chartArea"];function qt(t,e){return"top"===t||"bottom"===t||-1===Kt.indexOf(t)&&"x"===e}function Gt(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function Zt(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),(0,s.Q)(i&&i.onComplete,[t],e)}function Jt(t){const e=t.chart,i=e.options.animation;(0,s.Q)(i&&i.onProgress,[t],e)}function te(t){return(0,s.M)()&&"string"===typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ee={},ie=t=>{const e=te(t);return Object.values(ee).filter((t=>t.canvas===e)).pop()};function se(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}function ne(t,e,i){return t.options.clip?t[i]:e[i]}class oe{static defaults=s.d;static instances=ee;static overrides=s.a3;static registry=Lt;static version="4.4.2";static getChart=ie;static register(...t){Lt.add(...t),ae()}static unregister(...t){Lt.remove(...t),ae()}constructor(t,e){const i=this.config=new Ut(e),n=te(t),a=ie(n);if(a)throw new Error("Canvas is already in use. Chart with ID '"+a.id+"' must be destroyed before the canvas with ID '"+a.canvas.id+"' can be reused.");const r=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||function(t){return!(0,s.M)()||"undefined"!==typeof OffscreenCanvas&&t instanceof OffscreenCanvas?it:xt}(n)),this.platform.updateConfig(i);const c=this.platform.acquireContext(n,r.aspectRatio),h=c&&c.canvas,l=h&&h.height,d=h&&h.width;this.id=(0,s.ac)(),this.ctx=c,this.canvas=h,this.width=d,this.height=l,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new At,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=(0,s.ad)((t=>this.update(t)),r.resizeDelay||0),this._dataChanges=[],ee[this.id]=this,c&&h?(o.listen(this,"complete",Zt),o.listen(this,"progress",Jt),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return(0,s.k)(t)?e&&o?o:n?i/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Lt}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():(0,s.ae)(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return(0,s.af)(this.canvas,this.ctx),this}stop(){return o.stop(this),this}resize(t,e){o.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,n=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(n,t,e,o),r=i.devicePixelRatio||this.platform.getDevicePixelRatio(),c=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,(0,s.ae)(this,r,!0)&&(this.notifyPlugins("resize",{size:a}),(0,s.Q)(i.onResize,[this,a],this),this.attached&&this._doResize(c)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};(0,s.F)(t,((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,n=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let o=[];e&&(o=o.concat(Object.keys(e).map((t=>{const i=e[t],s=Vt(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),(0,s.F)(o,(e=>{const o=e.options,a=o.id,r=Vt(a,o),c=(0,s.v)(o.type,e.dtype);void 0!==o.position&&qt(o.position,r)===qt(e.dposition)||(o.position=e.dposition),n[a]=!0;let h=null;if(a in i&&i[a].type===c)h=i[a];else{h=new(Lt.getScale(c))({id:a,type:c,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(o,t)})),(0,s.F)(n,((t,e)=>{t||delete i[e]})),(0,s.F)(i,(t=>{tt.configure(this,t,t.options),tt.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t<i;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(Gt("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,n;for(this._removeUnreferencedMetasets(),i=0,n=e.length;i<n;i++){const n=e[i];let o=this.getDatasetMeta(i);const a=n.type||this.config.type;if(o.type&&o.type!==a&&(this._destroyDatasetMeta(i),o=this.getDatasetMeta(i)),o.type=a,o.indexAxis=n.indexAxis||It(a,this.options),o.order=n.order||0,o.index=i,o.label=""+n.label,o.visible=this.isDatasetVisible(i),o.controller)o.controller.updateIndex(i),o.controller.linkScales();else{const e=Lt.getController(a),{datasetElementType:n,dataElementType:r}=s.d.datasets[a];Object.assign(e,{dataElementType:Lt.getElement(r),datasetElementType:n&&Lt.getElement(n)}),o.controller=new e(this,i),t.push(o.controller)}}return this._updateMetasets(),t}_resetElements(){(0,s.F)(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),n=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let s=0,h=this.data.datasets.length;s<h;s++){const{controller:t}=this.getDatasetMeta(s),e=!n&&-1===o.indexOf(t);t.buildOrUpdateElements(e),a=Math.max(+t.getMaxOverflow(),a)}a=this._minPadding=i.layout.autoPadding?a:0,this._updateLayout(a),n||(0,s.F)(o,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Gt("z","_idx"));const{_active:r,_lastEvent:c}=this;c?this._eventHandler(c,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){(0,s.F)(this.scales,(t=>{tt.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);(0,s.ag)(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){se(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),n=i(0);for(let o=1;o<e;o++)if(!(0,s.ag)(n,i(o)))return;return Array.from(n).map((t=>t.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;tt.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],(0,s.F)(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t<e;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e<i;++e)this._updateDataset(e,(0,s.a7)(t)?t({datasetIndex:e}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetUpdate",s)&&(i.controller._update(e),s.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",s))}render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(o.has(this)?this.attached&&!o.running(this)&&o.start(this):(this.draw(),Zt({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resize(t,e),this._resizeBeforeDraw=null}if(this.clear(),this.width<=0||this.height<=0)return;if(!1===this.notifyPlugins("beforeDraw",{cancelable:!0}))return;const e=this._layers;for(t=0;t<e.length&&e[t].z<=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t<e.length;++t)e[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let s,n;for(s=0,n=e.length;s<n;++s){const n=e[s];t&&!n.visible||i.push(n)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,n=!i.disabled,o=function(t,e){const{xScale:i,yScale:s}=t;return i&&s?{left:ne(i,e,"left"),right:ne(i,e,"right"),top:ne(s,e,"top"),bottom:ne(s,e,"bottom")}:e}(t,this.chartArea),a={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",a)&&(n&&(0,s.Y)(e,{left:!1===i.left?0:o.left-i.left,right:!1===i.right?this.width:o.right+i.right,top:!1===i.top?0:o.top-i.top,bottom:!1===i.bottom?this.height:o.bottom+i.bottom}),t.controller.draw(),n&&(0,s.$)(e),a.cancelable=!1,this.notifyPlugins("afterDatasetDraw",a))}isPointInArea(t){return(0,s.C)(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=B.modes[e];return"function"===typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=(0,s.j)(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"===typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const n=i?"show":"hide",o=this.getDatasetMeta(t),a=o.controller._resolveAnimations(void 0,n);(0,s.h)(e)?(o.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),a.update(o,{visible:i}),this.update((e=>e.datasetIndex===t?n:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),o.remove(this),t=0,e=this.data.datasets.length;t<e;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),(0,s.af)(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),delete ee[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},n=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};(0,s.F)(this.options.events,(t=>i(t,n)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){(0,s.F)(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},(0,s.F)(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a<r;++a){o=t[a];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[s+"HoverStyle"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!(0,s.ah)(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:n=[],options:o}=this,a=e,r=this._getActiveElements(t,n,i,a),c=(0,s.ai)(t),h=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,c);i&&(this._lastEvent=null,(0,s.Q)(o.onHover,[t,r,this],this),c&&(0,s.Q)(o.onClick,[t,r,this],this));const l=!(0,s.ah)(r,n);return(l||e)&&(this._active=r,this._updateHoverStyles(r,n,e)),this._lastEvent=h,l}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function ae(){return(0,s.F)(oe.instances,(t=>t._plugins.invalidate()))}function re(t,e,i=e){t.lineCap=(0,s.v)(i.borderCapStyle,e.borderCapStyle),t.setLineDash((0,s.v)(i.borderDash,e.borderDash)),t.lineDashOffset=(0,s.v)(i.borderDashOffset,e.borderDashOffset),t.lineJoin=(0,s.v)(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=(0,s.v)(i.borderWidth,e.borderWidth),t.strokeStyle=(0,s.v)(i.borderColor,e.borderColor)}function ce(t,e,i){t.lineTo(i.x,i.y)}function he(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,c=Math.max(n,a),h=Math.min(o,r),l=n<a&&o<a||n>r&&o>r;return{count:s,start:c,loop:e.loop,ilen:h<c&&!l?s+h-c:h-c}}function le(t,e,i,n){const{points:o,options:a}=e,{count:r,start:c,loop:h,ilen:l}=he(o,i,n),d=function(t){return t.stepped?s.ar:t.tension||"monotone"===t.cubicInterpolationMode?s.as:ce}(a);let u,f,g,{move:p=!0,reverse:m}=n||{};for(u=0;u<=l;++u)f=o[(c+(m?l-u:u))%r],f.skip||(p?(t.moveTo(f.x,f.y),p=!1):d(t,g,f,m,a.stepped),g=f);return h&&(f=o[(c+(m?l:0))%r],d(t,g,f,m,a.stepped)),!!h}function de(t,e,i,s){const n=e.points,{count:o,start:a,ilen:r}=he(n,i,s),{move:c=!0,reverse:h}=s||{};let l,d,u,f,g,p,m=0,x=0;const b=t=>(a+(h?r-t:t))%o,v=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(c&&(d=n[b(0)],t.moveTo(d.x,d.y)),l=0;l<=r;++l){if(d=n[b(l)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(i<f?f=i:i>g&&(g=i),m=(x*m+e)/++x):(v(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}v()}function ue(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&"monotone"!==e.cubicInterpolationMode&&!e.stepped&&!i?de:le}const fe="function"===typeof Path2D;function ge(t,e,i,s){fe&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),re(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=ue(e);for(const r of n)re(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class pe extends bt{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const n=i.spanGaps?this._loop:this._fullLoop;(0,s.al)(this._points,i,t,n,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=(0,s.am)(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,n=t[e],o=this.points,a=(0,s.an)(this,{property:e,start:n,end:n});if(!a.length)return;const r=[],c=function(t){return t.stepped?s.ao:t.tension||"monotone"===t.cubicInterpolationMode?s.ap:s.aq}(i);let h,l;for(h=0,l=a.length;h<l;++h){const{start:s,end:l}=a[h],d=o[s],u=o[l];if(d===u){r.push(d);continue}const f=c(d,u,Math.abs((n-d[e])/(u[e]-d[e])),i.stepped);f[e]=t[e],r.push(f)}return 1===r.length?r[0]:r}pathSegment(t,e,i){return ue(this)(t,this,e,i)}path(t,e,i){const s=this.segments,n=ue(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const a of s)o&=n(t,this,a,{start:e,end:e+i-1});return!!o}draw(t,e,i,s){const n=this.options||{};(this.points||[]).length&&n.borderWidth&&(t.save(),ge(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function me(t,e,i,s){const n=t.options,{[i]:o}=t.getProps([i],s);return Math.abs(e-o)<n.radius+n.hitRadius}class xe extends bt{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps(["x","y"],i);return Math.pow(t-n,2)+Math.pow(e-o,2)<Math.pow(s.hitRadius+s.radius,2)}inXRange(t,e){return me(this,t,"x",e)}inYRange(t,e){return me(this,t,"y",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius<.1||!(0,s.C)(this,e,this.size(i)/2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,(0,s.at)(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}}function be(t,e){const{x:i,y:s,base:n,width:o,height:a}=t.getProps(["x","y","base","width","height"],e);let r,c,h,l,d;return t.horizontal?(d=a/2,r=Math.min(i,n),c=Math.max(i,n),h=s-d,l=s+d):(d=o/2,r=i-d,c=i+d,h=Math.min(s,n),l=Math.max(s,n)),{left:r,top:h,right:c,bottom:l}}function ve(t,e,i,n){return t?0:(0,s.S)(e,i,n)}function _e(t){const e=be(t),i=e.right-e.left,n=e.bottom-e.top,o=function(t,e,i){const n=t.options.borderWidth,o=t.borderSkipped,a=(0,s.av)(n);return{t:ve(o.top,a.top,0,i),r:ve(o.right,a.right,0,e),b:ve(o.bottom,a.bottom,0,i),l:ve(o.left,a.left,0,e)}}(t,i/2,n/2),a=function(t,e,i){const{enableBorderRadius:n}=t.getProps(["enableBorderRadius"]),o=t.options.borderRadius,a=(0,s.aw)(o),r=Math.min(e,i),c=t.borderSkipped,h=n||(0,s.i)(o);return{topLeft:ve(!h||c.top||c.left,a.topLeft,0,r),topRight:ve(!h||c.top||c.right,a.topRight,0,r),bottomLeft:ve(!h||c.bottom||c.left,a.bottomLeft,0,r),bottomRight:ve(!h||c.bottom||c.right,a.bottomRight,0,r)}}(t,i/2,n/2);return{outer:{x:e.left,y:e.top,w:i,h:n,radius:a},inner:{x:e.left+o.l,y:e.top+o.t,w:i-o.l-o.r,h:n-o.t-o.b,radius:{topLeft:Math.max(0,a.topLeft-Math.max(o.t,o.l)),topRight:Math.max(0,a.topRight-Math.max(o.t,o.r)),bottomLeft:Math.max(0,a.bottomLeft-Math.max(o.b,o.l)),bottomRight:Math.max(0,a.bottomRight-Math.max(o.b,o.r))}}}}function ye(t,e,i,n){const o=null===e,a=null===i,r=t&&!(o&&a)&&be(t,n);return r&&(o||(0,s.aj)(e,r.left,r.right))&&(a||(0,s.aj)(i,r.top,r.bottom))}function we(t,e){t.rect(e.x,e.y,e.w,e.h)}function Me(t,e,i={}){const s=t.x!==i.x?-e:0,n=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-s,a=(t.y+t.h!==i.y+i.h?e:0)-n;return{x:t.x+s,y:t.y+n,w:t.w+o,h:t.h+a,radius:t.radius}}class ke extends bt{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:n}}=this,{inner:o,outer:a}=_e(this),r=(c=a.radius).topLeft||c.topRight||c.bottomLeft||c.bottomRight?s.au:we;var c;t.save(),a.w===o.w&&a.h===o.h||(t.beginPath(),r(t,Me(a,e,o)),t.clip(),r(t,Me(o,-e,a)),t.fillStyle=i,t.fill("evenodd")),t.beginPath(),r(t,Me(o,e)),t.fillStyle=n,t.fill(),t.restore()}inRange(t,e,i){return ye(this,t,e,i)}inXRange(t,e){return ye(this,t,null,e)}inYRange(t,e){return ye(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:s,horizontal:n}=this.getProps(["x","y","base","horizontal"],t);return{x:n?(e+s)/2:e,y:n?i:(i+s)/2}}getRange(t){return"x"===t?this.width/2:this.height/2}}const Se=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class Ce extends bt{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=(0,s.Q)(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,n=(0,s.a0)(i.font),o=n.size,a=this._computeTitleHeight(),{boxWidth:r,itemHeight:c}=Se(i,o);let h,l;e.font=n.string,this.isHorizontal()?(h=this.maxWidth,l=this._fitRows(a,o,r,c)+10):(l=this.maxHeight,h=this._fitCols(a,n,r,c)+10),this.width=Math.min(h,t.maxWidth||this.maxWidth),this.height=Math.min(l,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],c=this.lineWidths=[0],h=s+a;let l=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||c[c.length-1]+g+2*a>o)&&(l+=h,c[c.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},c[c.length-1]+=g+a})),l}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],c=this.columnSizes=[],h=o-t;let l=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&"string"!==typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;"string"!==typeof e.text&&(s=Pe(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(l+=d+a,c.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),l+=d,c.push({width:d,height:u}),l}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:n},rtl:o}}=this,a=(0,s.az)(o,this.left,this.width);if(this.isHorizontal()){let o=0,r=(0,s.a2)(i,this.left+n,this.right-this.lineWidths[o]);for(const c of e)o!==c.row&&(o=c.row,r=(0,s.a2)(i,this.left+n,this.right-this.lineWidths[o])),c.top+=this.top+t+n,c.left=a.leftForLtr(a.x(r),c.width),r+=c.width+n}else{let o=0,r=(0,s.a2)(i,this.top+t+n,this.bottom-this.columnSizes[o].height);for(const c of e)c.col!==o&&(o=c.col,r=(0,s.a2)(i,this.top+t+n,this.bottom-this.columnSizes[o].height)),c.top=r,c.left+=this.left+n,c.left=a.leftForLtr(a.x(c.left),c.width),r+=c.height+n}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;(0,s.Y)(t,this),this._draw(),(0,s.$)(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:n}=this,{align:o,labels:a}=t,r=s.d.color,c=(0,s.az)(t.rtl,this.left,this.width),h=(0,s.a0)(a.font),{padding:l}=a,d=h.size,u=d/2;let f;this.drawTitle(),n.textAlign=c.textAlign("left"),n.textBaseline="middle",n.lineWidth=.5,n.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=Se(a,d),x=this.isHorizontal(),b=this._computeTitleHeight();f=x?{x:(0,s.a2)(o,this.left+l,this.right-i[0]),y:this.top+l+b,line:0}:{x:this.left+l,y:(0,s.a2)(o,this.top+b+l,this.bottom-e[0].height),line:0},(0,s.aA)(this.ctx,t.textDirection);const v=m+l;this.legendItems.forEach(((_,y)=>{n.strokeStyle=_.fontColor,n.fillStyle=_.fontColor;const w=n.measureText(_.text).width,M=c.textAlign(_.textAlign||(_.textAlign=a.textAlign)),k=g+u+w;let S=f.x,C=f.y;c.setWidth(this.width),x?y>0&&S+k+l>this.right&&(C=f.y+=v,f.line++,S=f.x=(0,s.a2)(o,this.left+l,this.right-i[f.line])):y>0&&C+v>this.bottom&&(S=f.x=S+e[f.line].width+l,f.line++,C=f.y=(0,s.a2)(o,this.top+b+l,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;n.save();const o=(0,s.v)(i.lineWidth,1);if(n.fillStyle=(0,s.v)(i.fillStyle,r),n.lineCap=(0,s.v)(i.lineCap,"butt"),n.lineDashOffset=(0,s.v)(i.lineDashOffset,0),n.lineJoin=(0,s.v)(i.lineJoin,"miter"),n.lineWidth=o,n.strokeStyle=(0,s.v)(i.strokeStyle,r),n.setLineDash((0,s.v)(i.lineDash,[])),a.usePointStyle){const r={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:o},h=c.xPlus(t,g/2),l=e+u;(0,s.aD)(n,r,h,l,a.pointStyleWidth&&g)}else{const a=e+Math.max((d-p)/2,0),r=c.leftForLtr(t,g),h=(0,s.aw)(i.borderRadius);n.beginPath(),Object.values(h).some((t=>0!==t))?(0,s.au)(n,{x:r,y:a,w:g,h:p,radius:h}):n.rect(r,a,g,p),n.fill(),0!==o&&n.stroke()}n.restore()}(c.x(S),C,_),S=(0,s.aB)(M,S+g+u,x?S+k:this.right,t.rtl),function(t,e,i){(0,s.Z)(n,i.text,t,e+m/2,h,{strikethrough:i.hidden,textAlign:c.textAlign(i.textAlign)})}(c.x(S),C,_),x)f.x+=k+l;else if("string"!==typeof _.text){const t=h.lineHeight;f.y+=Pe(_,t)+l}else f.y+=v})),(0,s.aC)(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=(0,s.a0)(e.font),n=(0,s.E)(e.padding);if(!e.display)return;const o=(0,s.az)(t.rtl,this.left,this.width),a=this.ctx,r=e.position,c=i.size/2,h=n.top+c;let l,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),l=this.top+h,d=(0,s.a2)(t.align,d,this.right-u);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);l=h+(0,s.a2)(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const f=(0,s.a2)(r,d,d+u);a.textAlign=o.textAlign((0,s.a1)(r)),a.textBaseline="middle",a.strokeStyle=e.color,a.fillStyle=e.color,a.font=i.string,(0,s.Z)(a,e.text,f,l,i)}_computeTitleHeight(){const t=this.options.title,e=(0,s.a0)(t.font),i=(0,s.E)(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,n,o;if((0,s.aj)(t,this.left,this.right)&&(0,s.aj)(e,this.top,this.bottom))for(o=this.legendHitBoxes,i=0;i<o.length;++i)if(n=o[i],(0,s.aj)(t,n.left,n.left+n.width)&&(0,s.aj)(e,n.top,n.top+n.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if(("mousemove"===t||"mouseout"===t)&&(e.onHover||e.onLeave))return!0;if(e.onClick&&("click"===t||"mouseup"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if("mousemove"===t.type||"mouseout"===t.type){const a=this._hoveredItem,r=(o=i,null!==(n=a)&&null!==o&&n.datasetIndex===o.datasetIndex&&n.index===o.index);a&&!r&&(0,s.Q)(e.onLeave,[t,a,this],this),this._hoveredItem=i,i&&!r&&(0,s.Q)(e.onHover,[t,i,this],this)}else i&&(0,s.Q)(e.onClick,[t,i,this],this);var n,o}}function Pe(t,e){return e*(t.text?t.text.length:0)}var ze={id:"legend",_element:Ce,start(t,e,i){const s=t.legend=new Ce({ctx:t.ctx,options:i,chart:t});tt.configure(t,s,i),tt.addBox(t,s)},stop(t){tt.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const s=t.legend;tt.configure(t,s,i),s.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const s=e.datasetIndex,n=i.chart;n.isDatasetVisible(s)?(n.hide(s),e.hidden=!0):(n.show(s),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:n,textAlign:o,color:a,useBorderRadius:r,borderRadius:c}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const h=t.controller.getStyle(i?0:void 0),l=(0,s.E)(h.borderWidth);return{text:e[t.index].label,fillStyle:h.backgroundColor,fontColor:a,hidden:!t.visible,lineCap:h.borderCapStyle,lineDash:h.borderDash,lineDashOffset:h.borderDashOffset,lineJoin:h.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:h.borderColor,pointStyle:n||h.pointStyle,rotation:h.rotation,textAlign:o||h.textAlign,borderRadius:r&&(c||h.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};new WeakMap;const Oe={average(t){if(!t.length)return!1;let e,i,s=new Set,n=0,o=0;for(e=0,i=t.length;e<i;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();s.add(t.x),n+=t.y,++o}}return{x:[...s].reduce(((t,e)=>t+e))/s.size,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,n,o,a=e.x,r=e.y,c=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){const n=t[i].element;if(n&&n.hasValue()){const t=n.getCenterPoint(),i=(0,s.aE)(e,t);i<c&&(c=i,o=n)}}if(o){const t=o.tooltipPosition();a=t.x,r=t.y}return{x:a,y:r}}};function De(t,e){return e&&((0,s.b)(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Le(t){return("string"===typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Ae(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function He(t,e){const i=t.chart.ctx,{body:n,footer:o,title:a}=t,{boxWidth:r,boxHeight:c}=e,h=(0,s.a0)(e.bodyFont),l=(0,s.a0)(e.titleFont),d=(0,s.a0)(e.footerFont),u=a.length,f=o.length,g=n.length,p=(0,s.E)(e.padding);let m=p.height,x=0,b=n.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,u&&(m+=u*l.lineHeight+(u-1)*e.titleSpacing+e.titleMarginBottom),b){m+=g*(e.displayColors?Math.max(c,h.lineHeight):h.lineHeight)+(b-g)*h.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*d.lineHeight+(f-1)*e.footerSpacing);let v=0;const _=function(t){x=Math.max(x,i.measureText(t).width+v)};return i.save(),i.font=l.string,(0,s.F)(t.title,_),i.font=h.string,(0,s.F)(t.beforeBody.concat(t.afterBody),_),v=e.displayColors?r+2+e.boxPadding:0,(0,s.F)(n,(t=>{(0,s.F)(t.before,_),(0,s.F)(t.lines,_),(0,s.F)(t.after,_)})),v=0,i.font=d.string,(0,s.F)(t.footer,_),i.restore(),x+=p.width,{width:x,height:m}}function Te(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:c}}=t;let h="center";return"center"===s?h=n<=(r+c)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function Ie(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return i<s/2?"top":i>t.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||Te(t,e,i,s),yAlign:s}}function Ee(t,e,i,n){const{caretSize:o,caretPadding:a,cornerRadius:r}=t,{xAlign:c,yAlign:h}=i,l=o+a,{topLeft:d,topRight:u,bottomLeft:f,bottomRight:g}=(0,s.aw)(r);let p=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,c);const m=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,h,l);return"center"===h?"left"===c?p+=l:"right"===c&&(p-=l):"left"===c?p-=Math.max(d,f)+o:"right"===c&&(p+=Math.max(u,g)+o),{x:(0,s.S)(p,0,n.width-e.width),y:(0,s.S)(m,0,n.height-e.height)}}function Ve(t,e,i){const n=(0,s.E)(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-n.right:t.x+n.left}function Fe(t){return De([],Le(t))}function Re(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Ne={beforeTitle:s.aF,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex<s)return i[e.dataIndex]}return""},afterTitle:s.aF,beforeBody:s.aF,beforeLabel:s.aF,label(t){if(this&&this.options&&"dataset"===this.options.mode)return t.label+": "+t.formattedValue||t.formattedValue;let e=t.dataset.label||"";e&&(e+=": ");const i=t.formattedValue;return(0,s.k)(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:s.aF,afterBody:s.aF,beforeFooter:s.aF,footer:s.aF,afterFooter:s.aF};function Be(t,e,i,s){const n=t[e].call(i,s);return"undefined"===typeof n?Ne[e].call(i,s):n}class je extends bt{static positioners=Oe;constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new h(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,(0,s.j)(t,{tooltip:e,tooltipItems:i,type:"tooltip"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=Be(i,"beforeTitle",this,t),n=Be(i,"title",this,t),o=Be(i,"afterTitle",this,t);let a=[];return a=De(a,Le(s)),a=De(a,Le(n)),a=De(a,Le(o)),a}getBeforeBody(t,e){return Fe(Be(e.callbacks,"beforeBody",this,t))}getBody(t,e){const{callbacks:i}=e,n=[];return(0,s.F)(t,(t=>{const e={before:[],lines:[],after:[]},s=Re(i,t);De(e.before,Le(Be(s,"beforeLabel",this,t))),De(e.lines,Be(s,"label",this,t)),De(e.after,Le(Be(s,"afterLabel",this,t))),n.push(e)})),n}getAfterBody(t,e){return Fe(Be(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Be(i,"beforeFooter",this,t),n=Be(i,"footer",this,t),o=Be(i,"afterFooter",this,t);let a=[];return a=De(a,Le(s)),a=De(a,Le(n)),a=De(a,Le(o)),a}_createItems(t){const e=this._active,i=this.chart.data,n=[],o=[],a=[];let r,c,h=[];for(r=0,c=e.length;r<c;++r)h.push(Ae(this.chart,e[r]));return t.filter&&(h=h.filter(((e,s,n)=>t.filter(e,s,n,i)))),t.itemSort&&(h=h.sort(((e,s)=>t.itemSort(e,s,i)))),(0,s.F)(h,(e=>{const i=Re(t.callbacks,e);n.push(Be(i,"labelColor",this,e)),o.push(Be(i,"labelPointStyle",this,e)),a.push(Be(i,"labelTextColor",this,e))})),this.labelColors=n,this.labelPointStyles=o,this.labelTextColors=a,this.dataPoints=h,h}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Oe[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=He(this,i),a=Object.assign({},t,e),r=Ie(this.chart,i,a),c=Ee(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:c.x,y:c.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:n,yAlign:o}=this,{caretSize:a,cornerRadius:r}=i,{topLeft:c,topRight:h,bottomLeft:l,bottomRight:d}=(0,s.aw)(r),{x:u,y:f}=t,{width:g,height:p}=e;let m,x,b,v,_,y;return"center"===o?(_=f+p/2,"left"===n?(m=u,x=m-a,v=_+a,y=_-a):(m=u+g,x=m+a,v=_-a,y=_+a),b=m):(x="left"===n?u+Math.max(c,l)+a:"right"===n?u+g-Math.max(h,d)-a:this.caretX,"top"===o?(v=f,_=v-a,m=x-a,b=x+a):(v=f+p,_=v+a,m=x+a,b=x-a),y=v),{x1:m,x2:x,x3:b,y1:v,y2:_,y3:y}}drawTitle(t,e,i){const n=this.title,o=n.length;let a,r,c;if(o){const h=(0,s.az)(i.rtl,this.x,this.width);for(t.x=Ve(this,i.titleAlign,i),e.textAlign=h.textAlign(i.titleAlign),e.textBaseline="middle",a=(0,s.a0)(i.titleFont),r=i.titleSpacing,e.fillStyle=i.titleColor,e.font=a.string,c=0;c<o;++c)e.fillText(n[c],h.x(t.x),t.y+a.lineHeight/2),t.y+=a.lineHeight+r,c+1===o&&(t.y+=i.titleMarginBottom-r)}}_drawColorBox(t,e,i,n,o){const a=this.labelColors[i],r=this.labelPointStyles[i],{boxHeight:c,boxWidth:h}=o,l=(0,s.a0)(o.bodyFont),d=Ve(this,"left",o),u=n.x(d),f=c<l.lineHeight?(l.lineHeight-c)/2:0,g=e.y+f;if(o.usePointStyle){const e={radius:Math.min(h,c)/2,pointStyle:r.pointStyle,rotation:r.rotation,borderWidth:1},i=n.leftForLtr(u,h)+h/2,l=g+c/2;t.strokeStyle=o.multiKeyBackground,t.fillStyle=o.multiKeyBackground,(0,s.at)(t,e,i,l),t.strokeStyle=a.borderColor,t.fillStyle=a.backgroundColor,(0,s.at)(t,e,i,l)}else{t.lineWidth=(0,s.i)(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,t.strokeStyle=a.borderColor,t.setLineDash(a.borderDash||[]),t.lineDashOffset=a.borderDashOffset||0;const e=n.leftForLtr(u,h),i=n.leftForLtr(n.xPlus(u,1),h-2),r=(0,s.aw)(a.borderRadius);Object.values(r).some((t=>0!==t))?(t.beginPath(),t.fillStyle=o.multiKeyBackground,(0,s.au)(t,{x:e,y:g,w:h,h:c,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),(0,s.au)(t,{x:i,y:g+1,w:h-2,h:c-2,radius:r}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(e,g,h,c),t.strokeRect(e,g,h,c),t.fillStyle=a.backgroundColor,t.fillRect(i,g+1,h-2,c-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:n}=this,{bodySpacing:o,bodyAlign:a,displayColors:r,boxHeight:c,boxWidth:h,boxPadding:l}=i,d=(0,s.a0)(i.bodyFont);let u=d.lineHeight,f=0;const g=(0,s.az)(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+u/2),t.y+=u+o},m=g.textAlign(a);let x,b,v,_,y,w,M;for(e.textAlign=a,e.textBaseline="middle",e.font=d.string,t.x=Ve(this,m,i),e.fillStyle=i.bodyColor,(0,s.F)(this.beforeBody,p),f=r&&"right"!==m?"center"===a?h/2+l:h+2+l:0,_=0,w=n.length;_<w;++_){for(x=n[_],b=this.labelTextColors[_],e.fillStyle=b,(0,s.F)(x.before,p),v=x.lines,r&&v.length&&(this._drawColorBox(e,t,_,g,i),u=Math.max(d.lineHeight,c)),y=0,M=v.length;y<M;++y)p(v[y]),u=d.lineHeight;(0,s.F)(x.after,p)}f=0,u=d.lineHeight,(0,s.F)(this.afterBody,p),t.y-=o}drawFooter(t,e,i){const n=this.footer,o=n.length;let a,r;if(o){const c=(0,s.az)(i.rtl,this.x,this.width);for(t.x=Ve(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=c.textAlign(i.footerAlign),e.textBaseline="middle",a=(0,s.a0)(i.footerFont),e.fillStyle=i.footerColor,e.font=a.string,r=0;r<o;++r)e.fillText(n[r],c.x(t.x),t.y+a.lineHeight/2),t.y+=a.lineHeight+i.footerSpacing}}drawBackground(t,e,i,n){const{xAlign:o,yAlign:a}=this,{x:r,y:c}=t,{width:h,height:l}=i,{topLeft:d,topRight:u,bottomLeft:f,bottomRight:g}=(0,s.aw)(n.cornerRadius);e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,e.lineWidth=n.borderWidth,e.beginPath(),e.moveTo(r+d,c),"top"===a&&this.drawCaret(t,e,i,n),e.lineTo(r+h-u,c),e.quadraticCurveTo(r+h,c,r+h,c+u),"center"===a&&"right"===o&&this.drawCaret(t,e,i,n),e.lineTo(r+h,c+l-g),e.quadraticCurveTo(r+h,c+l,r+h-g,c+l),"bottom"===a&&this.drawCaret(t,e,i,n),e.lineTo(r+f,c+l),e.quadraticCurveTo(r,c+l,r,c+l-f),"center"===a&&"left"===o&&this.drawCaret(t,e,i,n),e.lineTo(r,c+d),e.quadraticCurveTo(r,c,r+d,c),e.closePath(),e.fill(),n.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Oe[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=He(this,t),a=Object.assign({},i,this._size),r=Ie(e,t,a),c=Ee(t,a,r,e);s._to===c.x&&n._to===c.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const n={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const a=(0,s.E)(e.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&r&&(t.save(),t.globalAlpha=i,this.drawBackground(o,t,n,e),(0,s.aA)(t,e.textDirection),o.y+=a.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),(0,s.aC)(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,n=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),o=!(0,s.ah)(i,n),a=this._positionChanged(n,e);(o||a)&&(this._active=n,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const n=this.options,o=this._active||[],a=this._getActiveElements(t,o,e,i),r=this._positionChanged(a,t),c=e||!(0,s.ah)(a,o)||r;return c&&(this._active=a,(n.enabled||n.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),c}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e.filter((t=>this.chart.data.datasets[t.datasetIndex]&&void 0!==this.chart.getDatasetMeta(t.datasetIndex).controller.getParsed(t.index)));const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Oe[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var We={id:"tooltip",_element:je,positioners:Oe,afterInit(t,e,i){i&&(t.tooltip=new je({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Ne},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};function $e(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>("string"===typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function Ye(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}class Ue extends zt{static id="category";static defaults={ticks:{callback:Ye}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if((0,s.k)(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:(0,s.S)(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:$e(i,t,(0,s.v)(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let o=t;o<=e;o++)s.push({value:o});return s}getLabelForValue(t){return Ye.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!==typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function Xe(t,e,{horizontal:i,minRotation:n}){const o=(0,s.t)(n),a=(i?Math.sin(o):Math.cos(o))||.001,r=.75*e*(""+t).length;return Math.min(e/a,r)}class Qe extends zt{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return(0,s.k)(t)||("number"===typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:n,max:o}=this;const a=t=>n=e?n:t,r=t=>o=i?o:t;if(t){const t=(0,s.s)(n),e=(0,s.s)(o);t<0&&e<0?r(0):t>0&&e>0&&a(0)}if(n===o){let e=0===o?1:Math.abs(.05*o);r(o+e),t||a(n-e)}this.min=n,this.max=o}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:c,count:h,maxTicks:l,maxDigits:d,includeBounds:u}=t,f=o||1,g=l-1,{min:p,max:m}=e,x=!(0,s.k)(a),b=!(0,s.k)(r),v=!(0,s.k)(h),_=(m-p)/(d+1);let y,w,M,k,S=(0,s.aH)((m-p)/g/f)*f;if(S<1e-14&&!x&&!b)return[{value:p},{value:m}];k=Math.ceil(m/S)-Math.floor(p/S),k>g&&(S=(0,s.aH)(k*S/g/f)*f),(0,s.k)(c)||(y=Math.pow(10,c),S=Math.ceil(S*y)/y),"ticks"===n?(w=Math.floor(p/S)*S,M=Math.ceil(m/S)*S):(w=p,M=m),x&&b&&o&&(0,s.aI)((r-a)/o,S/1e3)?(k=Math.round(Math.min((r-a)/S,l)),S=(r-a)/k,w=a,M=r):v?(w=x?a:w,M=b?r:M,k=h-1,S=(M-w)/k):(k=(M-w)/S,k=(0,s.aJ)(k,Math.round(k),S/1e3)?Math.round(k):Math.ceil(k));const C=Math.max((0,s.aK)(S),(0,s.aK)(w));y=Math.pow(10,(0,s.k)(c)?C:c),w=Math.round(w*y)/y,M=Math.round(M*y)/y;let P=0;for(x&&(u&&w!==a?(i.push({value:a}),w<a&&P++,(0,s.aJ)(Math.round((w+P*S)*y)/y,a,Xe(a,_,t))&&P++):w<a&&P++);P<k;++P){const t=Math.round((w+P*S)*y)/y;if(b&&t>r)break;i.push({value:t})}return b&&u&&M!==r?i.length&&(0,s.aJ)(i[i.length-1].value,r,Xe(r,_,t))?i[i.length-1].value=r:i.push({value:r}):b&&M!==r||i.push({value:M}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&(0,s.aG)(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return(0,s.o)(t,this.chart.options.locale,this.options.ticks.format)}}class Ke extends Qe{static id="linear";static defaults={ticks:{callback:s.aL.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=(0,s.g)(t)?t:0,this.max=(0,s.g)(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=(0,s.t)(this.options.ticks.minRotation),n=(t?Math.sin(i):Math.cos(i))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/n))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}s.aL.formatters.logarithmic;s.aL.formatters.numeric;const qe={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Ge=Object.keys(qe);function Ze(t,e){return t-e}function Je(t,e){if((0,s.k)(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:a}=t._parseOpts;let r=e;return"function"===typeof n&&(r=n(r)),(0,s.g)(r)||(r="string"===typeof n?i.parse(r,n):i.parse(r)),null===r?null:(o&&(r="week"!==o||!(0,s.x)(a)&&!0!==a?i.startOf(r,o):i.startOf(r,"isoWeek",a)),+r)}function ti(t,e,i,s){const n=Ge.length;for(let o=Ge.indexOf(t);o<n-1;++o){const t=qe[Ge[o]],n=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)/(n*t.size))<=s)return Ge[o]}return Ge[n-1]}function ei(t,e,i){if(i){if(i.length){const{lo:n,hi:o}=(0,s.aP)(i,e);t[i[n]>=e?i[n]:i[o]]=!0}}else t[e]=!0}function ii(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a<o;++a)r=e[a],n[r]=a,s.push({value:r,major:!1});return 0!==o&&i?function(t,e,i,s){const n=t._adapter,o=+n.startOf(e[0].value,s),a=e[e.length-1].value;let r,c;for(r=o;r<=a;r=+n.add(r,1,s))c=i[r],c>=0&&(e[c].major=!0);return e}(t,s,n,i):s}class si extends zt{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),n=this._adapter=new T._date(t.adapters.date);n.init(e),(0,s.ab)(i.displayFormats,n.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Je(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:n,max:o,minDefined:a,maxDefined:r}=this.getUserBounds();function c(t){a||isNaN(t.min)||(n=Math.min(n,t.min)),r||isNaN(t.max)||(o=Math.max(o,t.max))}a&&r||(c(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||c(this.getMinMax(!1))),n=(0,s.g)(n)&&!isNaN(n)?n:+e.startOf(Date.now(),i),o=(0,s.g)(o)&&!isNaN(o)?o:+e.endOf(Date.now(),i)+1,this.min=Math.min(n,o-1),this.max=Math.max(n+1,o)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,n="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&n.length&&(this.min=this._userMin||n[0],this.max=this._userMax||n[n.length-1]);const o=this.min,a=this.max,r=(0,s.aO)(n,o,a);return this._unit=e.unit||(i.autoSkip?ti(e.minUnit,this.min,this.max,this._getLabelCapacity(o)):function(t,e,i,s,n){for(let o=Ge.length-1;o>=Ge.indexOf(i);o--){const i=Ge[o];if(qe[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return Ge[i?Ge.indexOf(i):0]}(this,r.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=Ge.indexOf(t)+1,i=Ge.length;e<i;++e)if(qe[Ge[e]].common)return Ge[e]}(this._unit):void 0,this.initOffsets(n),t.reverse&&r.reverse(),ii(this,r,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map((t=>+t.value)))}initOffsets(t=[]){let e,i,n=0,o=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),n=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),o=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const a=t.length<3?.5:.25;n=(0,s.S)(n,0,a),o=(0,s.S)(o,0,a),this._offsets={start:n,end:o,factor:1/(n+1+o)}}_generate(){const t=this._adapter,e=this.min,i=this.max,n=this.options,o=n.time,a=o.unit||ti(o.minUnit,e,i,this._getLabelCapacity(e)),r=(0,s.v)(n.ticks.stepSize,1),c="week"===a&&o.isoWeekday,h=(0,s.x)(c)||!0===c,l={};let d,u,f=e;if(h&&(f=+t.startOf(f,"isoWeek",c)),f=+t.startOf(f,h?"day":a),t.diff(i,e,a)>1e5*r)throw new Error(e+" and "+i+" are too far apart with stepSize of "+r+" "+a);const g="data"===n.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d<i;d=+t.add(d,r,a),u++)ei(l,d,g);return d!==i&&"ticks"!==n.bounds&&1!==u||ei(l,d,g),Object.keys(l).sort(Ze).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,n){const o=this.options,a=o.ticks.callback;if(a)return(0,s.Q)(a,[t,e,i],this);const r=o.time.displayFormats,c=this._unit,h=this._majorUnit,l=c&&r[c],d=h&&r[h],u=i[e],f=h&&d&&u&&u.major;return this._adapter.format(t,n||(f?d:l))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e<i;++e)s=t[e],s.label=this._tickFormatFunction(s.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,n=(0,s.t)(this.isHorizontal()?e.maxRotation:e.minRotation),o=Math.cos(n),a=Math.sin(n),r=this._resolveTickFontOptions(0).size;return{w:i*o+r*a,h:i*a+r*o}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,s=i[e.unit]||i.millisecond,n=this._tickFormatFunction(t,0,ii(this,[t],this._majorUnit),s),o=this._getLabelSize(n),a=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return a>0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t<e;++t)i=i.concat(s[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const s=this.getLabels();for(e=0,i=s.length;e<i;++e)t.push(Je(this,s[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return(0,s._)(t.sort(Ze))}}},12020:(t,e,i)=>{"use strict";function s(t){return t+.5|0}i.d(e,{$:()=>ke,A:()=>Vt,B:()=>Et,C:()=>we,D:()=>Pt,E:()=>Fe,F:()=>X,G:()=>vi,H:()=>ft,I:()=>di,J:()=>wi,K:()=>yi,L:()=>$t,M:()=>li,N:()=>_t,O:()=>j,P:()=>ct,Q:()=>U,R:()=>Be,S:()=>At,T:()=>ht,U:()=>St,V:()=>me,W:()=>Ht,X:()=>be,Y:()=>Me,Z:()=>Oe,_:()=>jt,a:()=>Ne,a0:()=>Re,a1:()=>Ut,a2:()=>Xt,a3:()=>le,a4:()=>Z,a5:()=>st,a6:()=>de,a7:()=>ot,a8:()=>$e,a9:()=>We,aA:()=>Oi,aB:()=>Qt,aC:()=>Di,aD:()=>ye,aE:()=>zt,aF:()=>E,aG:()=>Mt,aH:()=>vt,aI:()=>wt,aJ:()=>bt,aK:()=>Ct,aL:()=>he,aM:()=>mt,aN:()=>xe,aO:()=>Ft,aP:()=>It,aa:()=>Ye,ab:()=>J,ac:()=>V,ad:()=>Yt,ae:()=>_i,af:()=>ve,ag:()=>at,ah:()=>Q,ai:()=>rt,aj:()=>Tt,ak:()=>Ie,al:()=>hi,am:()=>Ii,an:()=>Ti,ao:()=>ki,ap:()=>Si,aq:()=>Mi,ar:()=>Se,as:()=>Ce,at:()=>_e,au:()=>De,av:()=>Ee,aw:()=>Ve,ax:()=>Hi,ay:()=>Dt,az:()=>zi,b:()=>R,b3:()=>ut,b4:()=>gt,b5:()=>pt,c:()=>ie,d:()=>pe,e:()=>te,f:()=>it,g:()=>B,h:()=>nt,i:()=>N,j:()=>je,k:()=>F,l:()=>Nt,m:()=>$,n:()=>Y,o:()=>re,p:()=>Lt,q:()=>Kt,r:()=>Wt,s:()=>xt,t:()=>kt,u:()=>Bt,v:()=>W,w:()=>qt,x:()=>yt,y:()=>ii,z:()=>xi});const n=(t,e,i)=>Math.max(Math.min(t,i),e);function o(t){return n(s(2.55*t),0,255)}function a(t){return n(s(255*t),0,255)}function r(t){return n(s(t/2.55)/100,0,1)}function c(t){return n(s(100*t),0,100)}const h={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},l=[..."0123456789ABCDEF"],d=t=>l[15&t],u=t=>l[(240&t)>>4]+l[15&t],f=t=>(240&t)>>4===(15&t);function g(t){var e=(t=>f(t.r)&&f(t.g)&&f(t.b)&&f(t.a))(t)?d:u;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const p=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function m(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function x(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function b(t,e,i){const s=m(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function v(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,c,h;return n!==o&&(h=n-o,c=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,c||0,a]}function _(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(a)}function y(t,e,i){return _(m,t,e,i)}function w(t){return(t%360+360)%360}function M(t){const e=p.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?o(+e[5]):a(+e[5]));const n=w(+e[2]),r=+e[3]/100,c=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return _(b,t,e,i)}(n,r,c):"hsv"===e[1]?function(t,e,i){return _(x,t,e,i)}(n,r,c):y(n,r,c),{r:i[0],g:i[1],b:i[2],a:s}}const k={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},S={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let C;function P(t){C||(C=function(){const t={},e=Object.keys(S),i=Object.keys(k);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,k[o]);o=parseInt(S[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),C.transparent=[0,0,0,0]);const e=C[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const z=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const O=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,D=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function L(t,e,i){if(t){let s=v(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=y(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function A(t,e){return t?Object.assign(e||{},t):t}function H(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=a(t[3]))):(e=A(t,{r:0,g:0,b:0,a:1})).a=a(e.a),e}function T(t){return"r"===t.charAt(0)?function(t){const e=z.exec(t);let i,s,a,r=255;if(e){if(e[7]!==i){const t=+e[7];r=e[8]?o(t):n(255*t,0,255)}return i=+e[1],s=+e[3],a=+e[5],i=255&(e[2]?o(i):n(i,0,255)),s=255&(e[4]?o(s):n(s,0,255)),a=255&(e[6]?o(a):n(a,0,255)),{r:i,g:s,b:a,a:r}}}(t):M(t)}class I{constructor(t){if(t instanceof I)return t;const e=typeof t;let i;"object"===e?i=H(t):"string"===e&&(i=function(t){var e,i=t.length;return"#"===t[0]&&(4===i||5===i?e={r:255&17*h[t[1]],g:255&17*h[t[2]],b:255&17*h[t[3]],a:5===i?17*h[t[4]]:255}:7!==i&&9!==i||(e={r:h[t[1]]<<4|h[t[2]],g:h[t[3]]<<4|h[t[4]],b:h[t[5]]<<4|h[t[6]],a:9===i?h[t[7]]<<4|h[t[8]]:255})),e}(t)||P(t)||T(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=A(this._rgb);return t&&(t.a=r(t.a)),t}set rgb(t){this._rgb=H(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${r(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?g(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=v(t),i=e[0],s=c(e[1]),n=c(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${r(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,c=((a*r===-1?a:(a+r)/(1+a*r))+1)/2;n=1-c,i.r=255&c*i.r+n*s.r+.5,i.g=255&c*i.g+n*s.g+.5,i.b=255&c*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=D(r(t.r)),n=D(r(t.g)),o=D(r(t.b));return{r:a(O(s+i*(D(r(e.r))-s))),g:a(O(n+i*(D(r(e.g))-n))),b:a(O(o+i*(D(r(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new I(this.rgb)}alpha(t){return this._rgb.a=a(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=s(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return L(this._rgb,2,t),this}darken(t){return L(this._rgb,2,-t),this}saturate(t){return L(this._rgb,1,t),this}desaturate(t){return L(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=v(t);i[0]=w(i[0]+e),i=y(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function E(){}const V=(()=>{let t=0;return()=>t++})();function F(t){return null===t||"undefined"===typeof t}function R(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function N(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function B(t){return("number"===typeof t||t instanceof Number)&&isFinite(+t)}function j(t,e){return B(t)?t:e}function W(t,e){return"undefined"===typeof t?e:t}const $=(t,e)=>"string"===typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,Y=(t,e)=>"string"===typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function U(t,e,i){if(t&&"function"===typeof t.call)return t.apply(i,e)}function X(t,e,i,s){let n,o,a;if(R(t))if(o=t.length,s)for(n=o-1;n>=0;n--)e.call(i,t[n],n);else for(n=0;n<o;n++)e.call(i,t[n],n);else if(N(t))for(a=Object.keys(t),o=a.length,n=0;n<o;n++)e.call(i,t[a[n]],a[n])}function Q(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function K(t){if(R(t))return t.map(K);if(N(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=K(t[i[n]]);return e}return t}function q(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function G(t,e,i,s){if(!q(t))return;const n=e[t],o=i[t];N(n)&&N(o)?Z(n,o,s):e[t]=K(o)}function Z(t,e,i){const s=R(e)?e:[e],n=s.length;if(!N(t))return t;const o=(i=i||{}).merger||G;let a;for(let r=0;r<n;++r){if(a=s[r],!N(a))continue;const e=Object.keys(a);for(let s=0,n=e.length;s<n;++s)o(e[s],t,a,i)}return t}function J(t,e){return Z(t,e,{merger:tt})}function tt(t,e,i){if(!q(t))return;const s=e[t],n=i[t];N(s)&&N(n)?J(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=K(n))}const et={"":t=>t,x:t=>t.x,y:t=>t.y};function it(t,e){const i=et[e]||(et[e]=function(t){const e=function(t){const e=t.split("."),i=[];let s="";for(const n of e)s+=n,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function st(t){return t.charAt(0).toUpperCase()+t.slice(1)}const nt=t=>"undefined"!==typeof t,ot=t=>"function"===typeof t,at=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function rt(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const ct=Math.PI,ht=2*ct,lt=ht+ct,dt=Number.POSITIVE_INFINITY,ut=ct/180,ft=ct/2,gt=ct/4,pt=2*ct/3,mt=Math.log10,xt=Math.sign;function bt(t,e,i){return Math.abs(t-e)<i}function vt(t){const e=Math.round(t);t=bt(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(mt(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function _t(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s===0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function yt(t){return!isNaN(parseFloat(t))&&isFinite(t)}function wt(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function Mt(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function kt(t){return t*(ct/180)}function St(t){return t*(180/ct)}function Ct(t){if(!B(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Pt(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*ct&&(o+=ht),{angle:o,distance:n}}function zt(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Ot(t,e){return(t-e+lt)%ht-ct}function Dt(t){return(t%ht+ht)%ht}function Lt(t,e,i,s){const n=Dt(t),o=Dt(e),a=Dt(i),r=Dt(o-n),c=Dt(a-n),h=Dt(n-o),l=Dt(n-a);return n===o||n===a||s&&o===a||r>c&&h<l}function At(t,e,i){return Math.max(e,Math.min(i,t))}function Ht(t){return At(t,-32768,32767)}function Tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function It(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const Et=(t,e,i,s)=>It(t,i,s?s=>{const n=t[s][e];return n<i||n===i&&t[s+1][e]===i}:s=>t[s][e]<i),Vt=(t,e,i)=>It(t,i,(s=>t[s][e]>=i));function Ft(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const Rt=["push","pop","shift","splice","unshift"];function Nt(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),Rt.forEach((e=>{const i="_onData"+st(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"===typeof t[i]&&t[i](...e)})),n}})})))}function Bt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(Rt.forEach((e=>{delete t[e]})),delete t._chartjs)}function jt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const Wt="undefined"===typeof window?function(t){return t()}:window.requestAnimationFrame;function $t(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,Wt.call(window,(()=>{s=!1,t.apply(e,i)})))}}function Yt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const Ut=t=>"start"===t?"left":"end"===t?"right":"center",Xt=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,Qt=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function Kt(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,c=a.axis,{min:h,max:l,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=At(Math.min(Et(r,c,h).lo,i?s:Et(e,c,a.getPixelForValue(h)).lo),0,s-1)),o=u?At(Math.max(Et(r,a.axis,l,!0).hi+1,i?0:Et(e,c,a.getPixelForValue(l),!0).hi+1),n,s)-n:s-n}return{start:n,count:o}}function qt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}const Gt=t=>0===t||1===t,Zt=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*ht/i),Jt=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*ht/i)+1,te={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*ft),easeOutSine:t=>Math.sin(t*ft),easeInOutSine:t=>-.5*(Math.cos(ct*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>Gt(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Gt(t)?t:Zt(t,.075,.3),easeOutElastic:t=>Gt(t)?t:Jt(t,.075,.3),easeInOutElastic(t){const e=.1125;return Gt(t)?t:t<.5?.5*Zt(2*t,e,.45):.5+.5*Jt(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-te.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*te.easeInBounce(2*t):.5*te.easeOutBounce(2*t-1)+.5};function ee(t){if(t&&"object"===typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function ie(t){return ee(t)?t:new I(t)}function se(t){return ee(t)?t:new I(t).saturate(.5).darken(.1).hexString()}const ne=["x","y","borderWidth","radius","tension"],oe=["color","borderColor","backgroundColor"];const ae=new Map;function re(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=ae.get(i);return s||(s=new Intl.NumberFormat(t,e),ae.set(i,s)),s}(e,i).format(t)}const ce={values:t=>R(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=mt(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),c={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(c,this.options.ticks.format),re(t,s,c)},logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.pow(10,Math.floor(mt(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?ce.numeric.call(this,t,e,i):""}};var he={formatters:ce};const le=Object.create(null),de=Object.create(null);function ue(t,e){if(!e)return t;const i=e.split(".");for(let s=0,n=i.length;s<n;++s){const e=i[s];t=t[e]||(t[e]=Object.create(null))}return t}function fe(t,e,i){return"string"===typeof e?Z(ue(t,e),i):Z(ue(t,""),e)}class ge{constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>se(e.backgroundColor),this.hoverBorderColor=(t,e)=>se(e.borderColor),this.hoverColor=(t,e)=>se(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return fe(this,t,e)}get(t){return ue(this,t)}describe(t,e){return fe(de,t,e)}override(t,e){return fe(le,t,e)}route(t,e,i,s){const n=ue(this,t),o=ue(this,i),a="_"+e;Object.defineProperties(n,{[a]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[a],e=o[s];return N(t)?Object.assign({},e,t):W(t,e)},set(t){this[a]=t}}})}apply(t){t.forEach((t=>t(this)))}}var pe=new ge({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:oe},numbers:{type:"number",properties:ne}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:he.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function me(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function xe(t,e,i,s){let n=(s=s||{}).data=s.data||{},o=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(n=s.data={},o=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let a=0;const r=i.length;let c,h,l,d,u;for(c=0;c<r;c++)if(d=i[c],void 0===d||null===d||R(d)){if(R(d))for(h=0,l=d.length;h<l;h++)u=d[h],void 0===u||null===u||R(u)||(a=me(t,n,o,a,u))}else a=me(t,n,o,a,d);t.restore();const f=o.length/2;if(f>i.length){for(c=0;c<f;c++)delete n[o[c]];o.splice(0,f)}return a}function be(t,e,i){const s=t.currentDevicePixelRatio,n=0!==i?Math.max(i/2,.5):0;return Math.round((e-n)*s)/s+n}function ve(t,e){(e=e||t.getContext("2d")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore()}function _e(t,e,i,s){ye(t,e,i,s,null)}function ye(t,e,i,s,n){let o,a,r,c,h,l,d,u;const f=e.pointStyle,g=e.rotation,p=e.radius;let m=(g||0)*ut;if(f&&"object"===typeof f&&(o=f.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return t.save(),t.translate(i,s),t.rotate(m),t.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),void t.restore();if(!(isNaN(p)||p<=0)){switch(t.beginPath(),f){default:n?t.ellipse(i,s,n/2,p,0,0,ht):t.arc(i,s,p,0,ht),t.closePath();break;case"triangle":l=n?n/2:p,t.moveTo(i+Math.sin(m)*l,s-Math.cos(m)*p),m+=pt,t.lineTo(i+Math.sin(m)*l,s-Math.cos(m)*p),m+=pt,t.lineTo(i+Math.sin(m)*l,s-Math.cos(m)*p),t.closePath();break;case"rectRounded":h=.516*p,c=p-h,a=Math.cos(m+gt)*c,d=Math.cos(m+gt)*(n?n/2-h:c),r=Math.sin(m+gt)*c,u=Math.sin(m+gt)*(n?n/2-h:c),t.arc(i-d,s-r,h,m-ct,m-ft),t.arc(i+u,s-a,h,m-ft,m),t.arc(i+d,s+r,h,m,m+ft),t.arc(i-u,s+a,h,m+ft,m+ct),t.closePath();break;case"rect":if(!g){c=Math.SQRT1_2*p,l=n?n/2:c,t.rect(i-l,s-c,2*l,2*c);break}m+=gt;case"rectRot":d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+u,s-a),t.lineTo(i+d,s+r),t.lineTo(i-u,s+a),t.closePath();break;case"crossRot":m+=gt;case"cross":d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case"star":d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a),m+=gt,d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case"line":a=n?n/2:Math.cos(m)*p,r=Math.sin(m)*p,t.moveTo(i-a,s-r),t.lineTo(i+a,s+r);break;case"dash":t.moveTo(i,s),t.lineTo(i+Math.cos(m)*(n?n/2:p),s+Math.sin(m)*p);break;case!1:t.closePath()}t.fill(),e.borderWidth>0&&t.stroke()}}function we(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x<e.right+i&&t.y>e.top-i&&t.y<e.bottom+i}function Me(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function ke(t){t.restore()}function Se(t,e,i,s,n){if(!e)return t.lineTo(i.x,i.y);if("middle"===n){const s=(e.x+i.x)/2;t.lineTo(s,e.y),t.lineTo(s,i.y)}else"after"===n!==!!s?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function Ce(t,e,i,s){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(s?e.cp1x:e.cp2x,s?e.cp1y:e.cp2y,s?i.cp2x:i.cp1x,s?i.cp2y:i.cp1y,i.x,i.y)}function Pe(t,e,i,s,n){if(n.strikethrough||n.underline){const o=t.measureText(s),a=e-o.actualBoundingBoxLeft,r=e+o.actualBoundingBoxRight,c=i-o.actualBoundingBoxAscent,h=i+o.actualBoundingBoxDescent,l=n.strikethrough?(c+h)/2:h;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=n.decorationWidth||2,t.moveTo(a,l),t.lineTo(r,l),t.stroke()}}function ze(t,e){const i=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=i}function Oe(t,e,i,s,n,o={}){const a=R(e)?e:[e],r=o.strokeWidth>0&&""!==o.strokeColor;let c,h;for(t.save(),t.font=n.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),F(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,o),c=0;c<a.length;++c)h=a[c],o.backdrop&&ze(t,o.backdrop),r&&(o.strokeColor&&(t.strokeStyle=o.strokeColor),F(o.strokeWidth)||(t.lineWidth=o.strokeWidth),t.strokeText(h,i,s,o.maxWidth)),t.fillText(h,i,s,o.maxWidth),Pe(t,i,s,h,o),s+=Number(n.lineHeight);t.restore()}function De(t,e){const{x:i,y:s,w:n,h:o,radius:a}=e;t.arc(i+a.topLeft,s+a.topLeft,a.topLeft,1.5*ct,ct,!0),t.lineTo(i,s+o-a.bottomLeft),t.arc(i+a.bottomLeft,s+o-a.bottomLeft,a.bottomLeft,ct,ft,!0),t.lineTo(i+n-a.bottomRight,s+o),t.arc(i+n-a.bottomRight,s+o-a.bottomRight,a.bottomRight,ft,0,!0),t.lineTo(i+n,s+a.topRight),t.arc(i+n-a.topRight,s+a.topRight,a.topRight,0,-ft,!0),t.lineTo(i+a.topLeft,s)}const Le=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,Ae=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function He(t,e){const i=(""+t).match(Le);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}const Te=t=>+t||0;function Ie(t,e){const i={},s=N(e),n=s?Object.keys(e):e,o=N(t)?s?i=>W(t[i],t[e[i]]):e=>t[e]:()=>t;for(const a of n)i[a]=Te(o(a));return i}function Ee(t){return Ie(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Ve(t){return Ie(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Fe(t){const e=Ee(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Re(t,e){t=t||{},e=e||pe.font;let i=W(t.size,e.size);"string"===typeof i&&(i=parseInt(i,10));let s=W(t.style,e.style);s&&!(""+s).match(Ae)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:W(t.family,e.family),lineHeight:He(W(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:W(t.weight,e.weight),string:""};return n.string=function(t){return!t||F(t.size)||F(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n}function Ne(t,e,i,s){let n,o,a,r=!0;for(n=0,o=t.length;n<o;++n)if(a=t[n],void 0!==a&&(void 0!==e&&"function"===typeof a&&(a=a(e),r=!1),void 0!==i&&R(a)&&(a=a[i%a.length],r=!1),void 0!==a))return s&&!r&&(s.cacheable=!1),a}function Be(t,e,i){const{min:s,max:n}=t,o=Y(e,(n-s)/2),a=(t,e)=>i&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function je(t,e){return Object.assign(Object.create(t),e)}function We(t,e=[""],i,s,n=(()=>t[0])){const o=i||t;"undefined"===typeof s&&(s=ti("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:s,_getTarget:n,override:i=>We([i,...t],e,o,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>Qe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=ti(Ue(o,t),i),"undefined"!==typeof n)return Xe(t,n)?Ze(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ei(t).includes(e),ownKeys:t=>ei(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function $e(t,e,i,s){const n={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ye(t,s),setContext:e=>$e(t,e,i,s),override:n=>$e(t.override(n),e,i,s)};return new Proxy(n,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>Qe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:n,_subProxy:o,_descriptors:a}=t;let r=s[e];ot(r)&&a.isScriptable(e)&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let c=e(o,a||s);r.delete(t),Xe(t,c)&&(c=Ze(n._scopes,n,t,c));return c}(e,r,t,i));R(r)&&r.length&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_descriptors:r}=i;if("undefined"!==typeof o.index&&s(t))return e[o.index%e.length];if(N(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const c of i){const i=Ze(s,n,t,c);e.push($e(i,o,a&&a[t],r))}}return e}(e,r,t,a.isIndexable));Xe(e,r)&&(r=$e(r,n,o&&o[e],a));return r}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:ot(i)?i:()=>i,isIndexable:ot(s)?s:()=>s}}const Ue=(t,e)=>t?t+st(e):e,Xe=(t,e)=>N(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function Qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const s=i();return t[e]=s,s}function Ke(t,e,i){return ot(t)?t(e,i):t}const qe=(t,e)=>!0===t?e:"string"===typeof t?it(e,t):void 0;function Ge(t,e,i,s,n){for(const o of e){const e=qe(i,o);if(e){t.add(e);const o=Ke(e._fallback,i,n);if("undefined"!==typeof o&&o!==i&&o!==s)return o}else if(!1===e&&"undefined"!==typeof s&&i!==s)return null}return!1}function Ze(t,e,i,s){const n=e._rootScopes,o=Ke(e._fallback,i,s),a=[...t,...n],r=new Set;r.add(s);let c=Je(r,a,i,o||i,s);return null!==c&&(("undefined"===typeof o||o===i||(c=Je(r,a,o,c,s),null!==c))&&We(Array.from(r),[""],n,o,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const n=s[e];if(R(n)&&N(i))return i;return n||{}}(e,i,s))))}function Je(t,e,i,s,n){for(;i;)i=Ge(t,e,i,s,n);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if("undefined"!==typeof e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,c,h,l;for(r=0,c=s;r<c;++r)h=r+i,l=e[h],a[r]={r:n.parse(it(l,o),h)};return a}const si=Number.EPSILON||1e-14,ni=(t,e)=>e<t.length&&!t[e].skip&&t[e],oi=t=>"x"===t?"y":"x";function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=zt(o,n),c=zt(a,o);let h=r/(r+c),l=c/(r+c);h=isNaN(h)?0:h,l=isNaN(l)?0:l;const d=s*h,u=s*l;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ri(t,e="x"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,c,h=ni(t,0);for(a=0;a<s;++a)if(r=c,c=h,h=ni(t,a+1),c){if(h){const t=h[e]-c[e];n[a]=0!==t?(h[i]-c[i])/t:0}o[a]=r?h?xt(n[a-1])!==xt(n[a])?0:(n[a-1]+n[a])/2:n[a-1]:n[a]}!function(t,e,i){const s=t.length;let n,o,a,r,c,h=ni(t,0);for(let l=0;l<s-1;++l)c=h,h=ni(t,l+1),c&&h&&(bt(e[l],0,si)?i[l]=i[l+1]=0:(n=i[l]/e[l],o=i[l+1]/e[l],r=Math.pow(n,2)+Math.pow(o,2),r<=9||(a=3/Math.sqrt(r),i[l]=n*a*e[l],i[l+1]=o*a*e[l])))}(t,n,o),function(t,e,i="x"){const s=oi(i),n=t.length;let o,a,r,c=ni(t,0);for(let h=0;h<n;++h){if(a=r,r=c,c=ni(t,h+1),!r)continue;const n=r[i],l=r[s];a&&(o=(n-a[i])/3,r[`cp1${i}`]=n-o,r[`cp1${s}`]=l-o*e[h]),c&&(o=(c[i]-n)/3,r[`cp2${i}`]=n+o,r[`cp2${s}`]=l+o*e[h])}}(t,o,e)}function ci(t,e,i){return Math.max(Math.min(t,i),e)}function hi(t,e,i,s,n){let o,a,r,c;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),"monotone"===e.cubicInterpolationMode)ri(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o<a;++o)r=t[o],c=ai(i,r,t[Math.min(o+1,a-(s?0:1))%a],e.tension),r.cp1x=c.previous.x,r.cp1y=c.previous.y,r.cp2x=c.next.x,r.cp2y=c.next.y,i=r}e.capBezierPoints&&function(t,e){let i,s,n,o,a,r=we(t[0],e);for(i=0,s=t.length;i<s;++i)a=o,o=r,r=i<s-1&&we(t[i+1],e),o&&(n=t[i],a&&(n.cp1x=ci(n.cp1x,e.left,e.right),n.cp1y=ci(n.cp1y,e.top,e.bottom)),r&&(n.cp2x=ci(n.cp2x,e.left,e.right),n.cp2y=ci(n.cp2y,e.top,e.bottom)))}(t,i)}function li(){return"undefined"!==typeof window&&"undefined"!==typeof document}function di(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function ui(t,e,i){let s;return"string"===typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const fi=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);const gi=["top","right","bottom","left"];function pi(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=gi[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const mi=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function xi(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=fi(i),o="border-box"===n.boxSizing,a=pi(n,"padding"),r=pi(n,"border","width"),{x:c,y:h,box:l}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,c=!1;if(mi(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,c=!0}return{x:a,y:r,box:c}}(t,i),d=a.left+(l&&r.left),u=a.top+(l&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((c-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const bi=t=>Math.round(10*t)/10;function vi(t,e,i,s){const n=fi(t),o=pi(n,"margin"),a=ui(n.maxWidth,t,"clientWidth")||dt,r=ui(n.maxHeight,t,"clientHeight")||dt,c=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=di(t);if(o){const t=o.getBoundingClientRect(),a=fi(o),r=pi(a,"border","width"),c=pi(a,"padding");e=t.width-c.width-r.width,i=t.height-c.height-r.height,s=ui(a.maxWidth,o,"clientWidth"),n=ui(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||dt,maxHeight:n||dt}}(t,e,i);let{width:h,height:l}=c;if("content-box"===n.boxSizing){const t=pi(n,"border","width"),e=pi(n,"padding");h-=e.width+t.width,l-=e.height+t.height}h=Math.max(0,h-o.width),l=Math.max(0,s?h/s:l-o.height),h=bi(Math.min(h,a,c.maxWidth)),l=bi(Math.min(l,r,c.maxHeight)),h&&!l&&(l=bi(h/2));return(void 0!==e||void 0!==i)&&s&&c.height&&l>c.height&&(l=c.height,h=bi(Math.floor(l*s))),{width:h,height:l}}function _i(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const yi=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};li()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch(e){}return t}();function wi(t,e){const i=function(t,e){return fi(t).getPropertyValue(e)}(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function Mi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function ki(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function Si(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=Mi(t,n,i),r=Mi(n,o,i),c=Mi(o,e,i),h=Mi(a,r,i),l=Mi(r,c,i);return Mi(h,l,i)}const Ci=function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}},Pi=function(){return{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}};function zi(t,e,i){return t?Ci(e,i):Pi()}function Oi(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function Di(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Li(t){return"angle"===t?{between:Lt,compare:Ot,normalize:Dt}:{between:Tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ai({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i===0,style:n}}function Hi(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:c,normalize:h}=Li(s),{start:l,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Li(s),c=e.length;let h,l,{start:d,end:u,loop:f}=t;if(f){for(d+=c,u+=c,h=0,l=c;h<l&&a(r(e[d%c][s]),n,o);++h)d--,u--;d%=c,u%=c}return u<d&&(u+=c),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,m,x,b=!1,v=null;const _=()=>b||c(n,x,p)&&0!==r(n,x),y=()=>!b||0===r(o,p)||c(o,x,p);for(let w=l,M=l;w<=d;++w)m=e[w%a],m.skip||(p=h(m[s]),p!==x&&(b=c(p,n,o),null===v&&_()&&(v=0===r(p,n)?w:M),null!==v&&y()&&(g.push(Ai({start:v,end:w,loop:u,count:a,style:f})),v=null),M=w,x=p));return null!==v&&g.push(Ai({start:v,end:d,loop:u,count:a,style:f})),g}function Ti(t,e){const i=[],s=t.segments;for(let n=0;n<s.length;n++){const o=Hi(s[n],t.points,e);o.length&&i.push(...o)}return i}function Ii(t,e){const i=t.points,s=t.options.spanGaps,n=i.length;if(!n)return[];const o=!!t._loop,{start:a,end:r}=function(t,e,i,s){let n=0,o=e-1;if(i&&!s)for(;n<e&&!t[n].skip;)n++;for(;n<e&&t[n].skip;)n++;for(n%=e,i&&(o+=n);o>n&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Ei(t,[{start:a,end:r,loop:o}],i,e);return Ei(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,c=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?c.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,c.skip&&(e=a)),c=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r<a?r+n:r,!!t._fullLoop&&0===a&&r===n-1),i,e)}function Ei(t,e,i,s){return s&&s.setContext&&i?function(t,e,i,s){const n=t._chart.getContext(),o=Vi(t.options),{_datasetIndex:a,options:{spanGaps:r}}=t,c=i.length,h=[];let l=o,d=e[0].start,u=d;function f(t,e,s,n){const o=r?-1:1;if(t!==e){for(t+=c;i[t%c].skip;)t-=o;for(;i[e%c].skip;)e+=o;t%c!==e%c&&(h.push({start:t%c,end:e%c,loop:s,style:n}),l=n,d=e%c)}}for(const g of e){d=r?d:g.start;let t,e=i[d%c];for(u=d+1;u<=g.end;u++){const o=i[u%c];t=Vi(s.setContext(je(n,{type:"segment",p0:e,p1:o,p0DataIndex:(u-1)%c,p1DataIndex:u%c,datasetIndex:a}))),Fi(t,l)&&f(d,u-1,g.loop,l),e=o,l=t}d<u-1&&f(d,u-1,g.loop,l)}return h}(t,e,i,s):e}function Vi(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function Fi(t,e){if(!e)return!1;const i=[],s=function(t,e){return ee(e)?(i.includes(e)||i.push(e),i.indexOf(e)):e};return JSON.stringify(t,s)!==JSON.stringify(e,s)}},44731:(t,e,i)=>{"use strict";i.d(e,{t1:()=>d,yP:()=>f});var s=i(96540),n=i(66118);const o="label";function a(t,e){"function"===typeof t?t(e):t&&(t.current=e)}function r(t,e){t.labels=e}function c(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o;const s=[];t.datasets=e.map((e=>{const n=t.datasets.find((t=>t[i]===e[i]));return n&&e.data&&!s.includes(n)?(s.push(n),Object.assign(n,e),n):{...e}}))}function h(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;const i={labels:[],datasets:[]};return r(i,t.labels),c(i,t.datasets,e),i}function l(t,e){const{height:i=150,width:o=300,redraw:l=!1,datasetIdKey:d,type:u,data:f,options:g,plugins:p=[],fallbackContent:m,updateMode:x,...b}=t,v=(0,s.useRef)(null),_=(0,s.useRef)(),y=()=>{v.current&&(_.current=new n.t1(v.current,{type:u,data:h(f,d),options:g&&{...g},plugins:p}),a(e,_.current))},w=()=>{a(e,null),_.current&&(_.current.destroy(),_.current=null)};return(0,s.useEffect)((()=>{!l&&_.current&&g&&function(t,e){const i=t.options;i&&e&&Object.assign(i,e)}(_.current,g)}),[l,g]),(0,s.useEffect)((()=>{!l&&_.current&&r(_.current.config.data,f.labels)}),[l,f.labels]),(0,s.useEffect)((()=>{!l&&_.current&&f.datasets&&c(_.current.config.data,f.datasets,d)}),[l,f.datasets]),(0,s.useEffect)((()=>{_.current&&(l?(w(),setTimeout(y)):_.current.update(x))}),[l,g,f.labels,f.datasets,x]),(0,s.useEffect)((()=>{_.current&&(w(),setTimeout(y))}),[u]),(0,s.useEffect)((()=>(y(),()=>w())),[]),s.createElement("canvas",Object.assign({ref:v,role:"img",height:i,width:o},b),m)}const d=(0,s.forwardRef)(l);function u(t,e){return n.t1.register(e),(0,s.forwardRef)(((e,i)=>s.createElement(d,Object.assign({},e,{ref:i,type:t}))))}const f=u("bar",n.A6)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js.LICENSE.txt b/src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js.LICENSE.txt
new file mode 100644
index 000000000..ebc73ef35
--- /dev/null
+++ b/src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js.LICENSE.txt
@@ -0,0 +1,13 @@
+/*!
+ * @kurkle/color v0.3.2
+ * https://github.com/kurkle/color#readme
+ * (c) 2023 Jukka Kurkela
+ * Released under the MIT License
+ */
+
+/*!
+ * Chart.js v4.4.2
+ * https://www.chartjs.org
+ * (c) 2024 Chart.js Contributors
+ * Released under the MIT License
+ */
diff --git a/src/web/gui/v2/3736.b247e40ccbdc039b9877.chunk.js b/src/web/gui/v2/3736.b247e40ccbdc039b9877.chunk.js
new file mode 100644
index 000000000..c0a6d783b
--- /dev/null
+++ b/src/web/gui/v2/3736.b247e40ccbdc039b9877.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2ffd8643-b389-4902-889e-42e5936f1353",e._sentryDebugIdIdentifier="sentry-dbid-2ffd8643-b389-4902-889e-42e5936f1353")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3736],{63736:(e,t,o)=>{o.r(t),o.d(t,{default:()=>l});var i=o(8711),n=o(10058);const r=(0,i.css)(['html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:inherit;}body{font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif;min-height:100vh;scroll-behavior:smooth;text-rendering:optimizespeed;scrollbar-gutter:stable both-edges;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;}body > iframe:not([src$="statuspage.io/embed/frame"]){display:none;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none;}table{border-collapse:collapse;border-spacing:0;th,tr{vertical-align:middle;}th{font-weight:bold;}}*{box-sizing:inherit;-webkit-font-smoothing:antialiased;font-weight:inherit;text-rendering:optimizelegibility;-webkit-appearance:none;border-width:0px;border-style:initial;border-color:initial;border-image:initial;margin:0px;outline:0px;padding:0px;text-decoration:none;}*,*::before,*::after{box-sizing:border-box;}input[type="button" i],input[type="submit" i],input[type="reset" i],input[type="file" i]::-webkit-file-upload-button,button{border-color:transparent;border-style:none;border-width:0;padding:0;}a{color:',";&:hover{text-decoration:underline;color:",";}&:visited{color:",";}}::-webkit-scrollbar{height:8px;width:8px;}",""],(e=>e.theme.colors.link),(e=>e.theme.colors.linkHover),(e=>e.theme.colors.link),(e=>e.isScreenSmall&&"\n ::-webkit-scrollbar {\n width: 0px !important;\n height: 0px !important;\n background: transparent !important; /* make scrollbar transparent */\n }\n ")),l=(0,i.createGlobalStyle)([""," ",""],r,n.webkitVisibleScrollbar)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3750.6f01a0becb7db332b4ce.chunk.js b/src/web/gui/v2/3750.6f01a0becb7db332b4ce.chunk.js
new file mode 100644
index 000000000..5496d3c9e
--- /dev/null
+++ b/src/web/gui/v2/3750.6f01a0becb7db332b4ce.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="55485364-ca9b-4da8-af1d-d44a2b10ad08",e._sentryDebugIdIdentifier="sentry-dbid-55485364-ca9b-4da8-af1d-d44a2b10ad08")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3750],{63750:(e,t,l)=>{l.r(t),l.d(t,{default:()=>_});l(9391),l(41393),l(81454),l(62953);var n=l(96540),a=l(63950),o=l.n(a),r=l(10058),c=l(47731),d=l(71835),s=l(92155),i=l(63314),u=l(32089),m=(l(17333),l(3064),l(14905),l(98992),l(54520),l(72577),l(8872),l(8711));const g=(0,m.default)(r.MenuDropdown).attrs((e=>({background:"transparent",hideShadow:!0,height:{max:"300px"},width:{max:"600px"},overflow:"auto",padding:[2],...e}))).withConfig({displayName:"styled__CheckboxesContainer",componentId:"sc-8uj6na-0"})([""]),f=e=>{let{index:t,item:l,onItemClick:a}=e;const{group:o,label:c,value:d,node:s={}}=l,{selected:i,disabled:u}=s,m=o&&t>0?[3,0,1,0]:[1,0];return n.createElement(r.Flex,{padding:m},o?n.createElement(r.Flex,{gap:2,alignItems:"center"},n.createElement(r.Icon,{name:o.iconName,size:"small"}),n.createElement(r.Text,{color:o.textColor||"textFocus"},o.label)):n.createElement(r.Flex,null,n.createElement(r.Checkbox,{checked:i,disabled:u,onChange:e=>{u||a({value:d,label:c,checked:e})},label:c,value:d,labelPosition:"right"})))};var b=l(47193);const p={live:{iconName:"connectivityStatusLive",label:"Live",textColor:"primary"},offline:{iconName:"connectivityStatusOffline",label:"Offline",textColor:"textFocus"},stale:{iconName:"connectivityStatusStale",label:"Stale",textColor:"textFocus"}},E=(e,t)=>{var l;return t&&Object.keys(t)&&null!==(l=t[e])&&void 0!==l&&l.length?[{group:p[e]},...t[e]]:[]},v=e=>{let{selectedNodes:t,setSelectedNodes:l,activeNodesLimit:a=0}=e;const{nodes:o}=(0,b.A)(),[r,c]=(0,n.useState)([]),d=(0,n.useCallback)((e=>{let{value:n,label:a,checked:o}=e;o&&!t.find((e=>e.value==n))?l((e=>[...e,{value:n,label:a}])):!o&&t.find((e=>e.value==n))&&l((e=>e.filter((e=>e.value!=n))))}),[t]);return(0,n.useEffect)((()=>{o&&c(((e,t,l)=>{const n=e.reduce(((e,n)=>{const a={...n},o=n.isLive?"live":n.isOffline?"offline":"stale";t.find((e=>{let{value:t}=e;return t==n.id}))?a.selected=!0:l==t.length&&(a.disabled=!0);const r={label:n.name,value:n.id,node:a};return e[o]?e[o]=[...e[o],r]:e[o]=[r],e}),{});return[...E("live",n),...E("offline",n),...E("stale",n)]})(o,t,a))}),[o,t]),n.createElement(g,{items:r,Item:f,onItemClick:d,searchMargin:[0,0,4,0],hasSearch:!0})};var x=l(6586),h=l(28738),y=l(58168);const N=e=>{let{isTitle:t,value:l,selectedNodes:a,setSelectedNodes:c=o(),children:d}=e;const s=(0,n.useCallback)((()=>{t||c((e=>e.filter((e=>e.value!=l))))}),[t,l,a,c]),i={gap:1,height:"18px",alignItems:"center",padding:[0,2],margin:[0,0,2,0],round:!0,...t?{}:{background:"nodeBadgeBackground"}};return n.createElement(r.Flex,i,!t&&n.createElement(r.Icon,{name:"x",size:"small",onClick:s,color:"text",cursor:"pointer"}),d)},S=e=>{let{selectedNodes:t,setSelectedNodes:l}=e;return t.length?n.createElement(r.Flex,{flexWrap:!0,gap:2},n.createElement(N,{isTitle:!0},n.createElement(r.TextBig,null,"Selected Nodes:")),t.map((e=>{let{label:a,...o}=e;return n.createElement(N,(0,y.A)({key:o.value,selectedNodes:t,setSelectedNodes:l},o),n.createElement(r.TextSmall,{color:"text"},a))}))):null};var k=l(12602),w=l(73865);const C=e=>{let{selectedNodes:t,setSelectedNodes:l,loading:a,error:o}=e;const{loaded:c,currentPlan:d,maxNodes:s}=(0,w.A)();return n.createElement(r.Flex,{column:!0,gap:4},a&&c?n.createElement(h.A,{height:"280px",title:"Saving selection..."}):n.createElement(n.Fragment,null,n.createElement(r.Flex,{column:!0,margin:[3,0,0,0],gap:4},n.createElement(r.TextBig,null,"Your current"," ",n.createElement(r.TextBig,{strong:!0},d.class," (",d.version,")")," ","plan does not allow more than ",n.createElement(r.TextBig,{strong:!0},s," active nodes"),"."),n.createElement(r.TextBig,null,"To proceed, select the ",n.createElement(r.TextBig,{strong:!0},s," Nodes")," that you wish to keep active. Any Nodes beyond this limit will be deactivated."),o&&n.createElement(r.Flex,{gap:2,alignItems:"center"},n.createElement(r.Icon,{name:"warning_triangle",size:"medium",color:"warning"}),n.createElement(r.TextBig,null,"For some reason, we coudn't save your selection. Please retry."))),n.createElement(u.A,null),n.createElement(v,{selectedNodes:t,setSelectedNodes:l,activeNodesLimit:s}),n.createElement(u.A,null),n.createElement(r.Flex,{column:!0,gap:4},n.createElement(S,{selectedNodes:t,setSelectedNodes:l}),n.createElement(r.TextBig,null,"Remember, you can"," ",n.createElement(k.A,null,n.createElement(r.TextBig,{color:"primary"},"upgrade your space back to the Business plan"))," ","for unlimited access at any time."),n.createElement(r.TextBig,null,"The node selection isn't a commitment, you can modify the active Nodes any time on the"," ",n.createElement(x.A,null,n.createElement(r.TextBig,{color:"primary"},"Space Settings page")),"."))))},I=(0,m.default)(r.ModalContent).attrs((e=>{let{isMobile:t}=e;return{width:t?{base:"95vw"}:{base:150}}})).withConfig({displayName:"styled__PreferredNodesModalContent",componentId:"sc-1v8zr4l-0"})([""]);var A=l(47762),T=l(29848),B=l(87659);const F=(0,s.A)(r.Button),_=e=>{let{onSuccessfulSave:t=o()}=e;const l=(0,T.ly)(),a=(0,c.J)(),[s,u]=(0,d.A)(),m=(0,A.je)(),[g,f]=(0,n.useState)([]),[b,p]=(0,n.useState)(),[E,,v,x]=(0,B.A)(),h=(0,n.useCallback)((()=>{v(),m(g.map((e=>{let{value:t}=e;return t}))).then((()=>{s({header:"Success",text:"You selection was successfully saved"}),t(),l()})).catch((()=>{p(!0),u({header:"Error",text:"Selection failed to be saved"})})).finally((()=>{x()}))}),[g,m]);return n.createElement(r.Modal,{backdropProps:{backdropBlur:!0}},n.createElement(i.Ay,{feature:"PreferredNodesModal"},n.createElement(I,{isMobile:a},n.createElement(r.ModalHeader,null,n.createElement(r.Flex,{gap:2,alignItems:"center"},n.createElement(r.Icon,{name:"netdataPress",color:"text"}),n.createElement(r.H4,null,"Required Action"))),n.createElement(r.ModalBody,null,n.createElement(C,{selectedNodes:g,setSelectedNodes:f,loading:E,error:b})),!E&&n.createElement(r.ModalFooter,null,n.createElement(r.Flex,{gap:4,justifyContent:"end",padding:[1,2]},n.createElement(F,{feature:"SavePreferredNodes",label:"Save",onClick:h,disabled:E||!g.length}))))))}},47193:(e,t,l)=>{l.d(t,{A:()=>s});l(62953);var n=l(69765),a=l(67990),o=l(87860),r=l(3914),c=l(47762),d=l(87659);const s=function(){let{polling:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:t=""}=(0,n.pr)(),l=(0,a.gr)(t,"ids"),s=(0,a.gr)(t,"loaded"),i=(0,c.Gt)(l),u=(0,r.vt)(),[m,,,g]=(0,d.A)();return(0,o.A)({id:t,spaceId:u,polling:e}),{areDefaultRoomNodesLoaded:s,nodes:i,isClaimNodeModalOpen:m,closeClaimNodeModal:g}}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/3968.a5f7366160b7ac086dba.chunk.js b/src/web/gui/v2/3968.a5f7366160b7ac086dba.chunk.js
new file mode 100644
index 000000000..9e8187f19
--- /dev/null
+++ b/src/web/gui/v2/3968.a5f7366160b7ac086dba.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2cc2cb61-d42c-4604-81a3-51f760d1ab73",e._sentryDebugIdIdentifier="sentry-dbid-2cc2cb61-d42c-4604-81a3-51f760d1ab73")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3968],{18686:(e,t,a)=>{a.d(t,{A:()=>o});var l=a(96540),n=a(10058),r=a(47731);const o=e=>{let{children:t}=e;return(0,r.J)()?l.createElement(n.Layer,{full:!0},l.createElement(n.Flex,{width:"100%",background:"mainBackground","data-testid":"alertView-mobileContainer"},t)):t}},41122:(e,t,a)=>{a.d(t,{A:()=>B});var l=a(96540),n=a(10058),r=a(64118),o=a(28738),d=a(47731),c=a(69765),i=a(11164),s=a(43407),m=a(5871),u=a(52768),g=a(47767),f=a(27467),p=a(47762),E=a(8711);const b=(0,E.default)(n.Flex).attrs({alignItems:"center"}).withConfig({displayName:"styled__StyledButtonContainer",componentId:"sc-1glv09p-0"})(["position:sticky;bottom:0;"]),h=e=>{let{disabled:t,nodeId:a,alertId:r,context:o,lastStatusChange:d,onClose:c,isLoading:i,small:s=!1,testid:m="alertDetailsModal"}=e;const u=(0,g.Zp)(),E=(0,p.Zl)(a),h=(0,l.useCallback)((()=>{c&&c(),u(E,r?{state:{alertId:r}}:{state:{contextToGo:o}})}),[E,r]),w=(0,f.rI)(),y=(0,l.useCallback)((()=>{const e=1e3*d;w({highlight:{after:e-6e4,before:e},correlation:!0}),h()}),[d,o,h,r]);return l.createElement(b,{justifyContent:"end",gap:2},l.createElement(n.Flex,{gap:2,justifyContent:"end"},l.createElement(n.Button,{small:s,label:"Run correlations",onClick:y,flavour:"hollow",isLoading:i,width:s?"112px":"170px","data-testid":"".concat(m,"-runCorrelations-button"),"data-ga":"alert-modal::click-run-correlations::alerts-view"}),l.createElement(n.Button,{small:s,label:"Go to chart",onClick:h,isLoading:i,disabled:i||t,width:s?"112px":"150px","data-testid":"".concat(m,"-goToNode-button"),"data-ga":"alert-modal::click-goto-chart::alerts-view"})))},w=(0,l.memo)(h);var y=a(7660),I=a(40267);const x=e=>{let{alertId:t,context:a,name:r,nodeId:o,status:c,lastStatusChange:i,fullyLoaded:s,isWebview:m}=e;const u=(0,d.J)(),g=u?n.H4:n.H0;return l.createElement(n.Flex,{column:!0,gap:4},l.createElement(n.Flex,{justifyContent:"between"},l.createElement(n.Flex,{alignItems:"center",gap:2},l.createElement(I.A,{margin:u?null:[.5,0,0],flavour:c,"data-testid":"alertView-statusPill"},c),l.createElement(g,{"data-testid":"alertView-alertName"},r)),!1),l.createElement(n.Flex,{justifyContent:"between",alignItems:"center"},l.createElement(y.A,{alertId:t}),!m&&s&&!u&&l.createElement(w,{lastStatusChange:i,alertId:t,context:a,name:r,nodeId:o,small:!0,testid:"alertView"})))};var C=a(68831),v=a(63314);const k=E.default.img.withConfig({displayName:"sc-404__Illustration",componentId:"sc-4w81fg-0"})(["height:35%;width:35%;"]),A=E.default.div.withConfig({displayName:"sc-404__ButtonContainer",componentId:"sc-4w81fg-1"})(["margin:",";"],(0,n.getSizeBy)(4)),L=()=>{const e="".concat(C.A.assetsBaseURL,"/img/no-nodes-room.svg");return l.createElement(v.DL,null,l.createElement(n.Flex,{column:!0,alignItems:"center",justifyItems:"center",justifyContent:"center",height:"100%",width:"100%",padding:[0,0,"10%"]},l.createElement(k,{src:e,alt:"Unreachable alert",title:"Unreachable alert"}),l.createElement(n.H3,null,"We couldn't find the alert"),l.createElement(n.Text,null,"This can be a temporary problem of that specific alert."),l.createElement(A,null,l.createElement(n.Button,{label:"Retry",icon:"reload"}))))};var S=a(4974),_=a(73865),V=a(85686);const F=e=>{let{children:t}=e;return l.createElement(n.Flex,{background:"modalHeaderBackground",height:12,flex:!1,gap:4,padding:[0,2,0,4],alignItems:"center"},l.createElement(n.Icon,{name:"logo_s",color:"success",width:"23px"}),t)},B=e=>{let{alertId:t,spaceId:a,roomId:g,isWebview:f,nodeName:p}=e;const E=(0,c.XA)("name"),{isNodeRestricted:b}=(0,_.A)(),{fullyLoaded:h=!1,fullyLoading:w=!0,info:y,units:I,lastStatusChangeValue:C,lastStatusChange:k,context:A,instance:B,name:N,nodeId:R,status:T,lastUpdated:D,value:J}=(0,r.JL)(t);(0,r.yk)(t,{spaceId:a,roomId:g});const j=(0,u.J4)(J,I),H=(0,u.J4)(C,I),U=(0,d.J)();return R&&b(R)?l.createElement(v.Ay,{feature:"AlertDetailsViewRestricted"},l.createElement(V.A,null)):l.createElement(v.Ay,{feature:"AlertDetailsView"},l.createElement(n.Flex,{column:!0,width:U?"100%":{max:280},padding:U?null:[0,0,10],background:U?"modalBackground":null},!f&&U&&l.createElement(F,null,l.createElement(n.Flex,{column:!0},l.createElement(n.H6,{color:"textLite"},"ROOM"),l.createElement(n.Text,{"data-testid":"alertView-mobile-roomName"},E))),l.createElement(n.Flex,{column:!0,padding:U?[3]:[0],overflow:U?"auto":"visible",gap:3},l.createElement(x,{alertId:t,context:A,status:T,name:N,nodeId:R,lastStatusChange:k,fullyLoaded:h,isWebview:f}),h?null:w?l.createElement(o.A,{title:"Loading alert..."}):l.createElement(L,null),h&&y&&l.createElement(l.Fragment,null,l.createElement(s.A,{iconName:"documentation"},"Alert Description"),l.createElement(n.Text,{"data-testid":"alertView-info"},y),l.createElement(S.A,{alertId:t})),h&&l.createElement(i.A,{id:t,context:A,instance:B,formattedLastValue:j,formattedLastStatusChangeValue:H,lastStatusChange:k,lastUpdated:D,isFormattedValueLoaded:h,nodeId:R,status:T,testid:"alertView",spaceId:a,roomId:g}),h&&l.createElement(m.A,{id:t,nodeName:p,testid:"alertView"})),U&&l.createElement(n.Box,{position:"sticky",padding:[4],background:"modalBackground",bottom:0,border:{side:"top",color:"border"}},l.createElement(n.TextSmall,null,"In order to ",l.createElement(n.TextSmall,{strong:!0},"Run Correlations")," or"," ",l.createElement(n.TextSmall,{strong:!0},"View the Chart")," you will have to visit this alert from its' dedicated page on a desktop device."))))}},73968:(e,t,a)=>{a.r(t),a.d(t,{default:()=>g});var l=a(96540),n=a(54621),r=a(64118),o=a(83084),d=a(28738),c=a(47767),i=a(45588),s=a(86663);var m=a(41122),u=a(18686);const g=()=>{const e=(()=>{const{alertId:e,...t}=(0,c.g)(),{search:a}=(0,c.zy)(),{transition:n}=s.parse(a),r=(0,l.useRef)(n||e),o=(0,c.Zp)();return(0,l.useEffect)((()=>{n&&n!==e&&o((0,i.tW)("/spaces/:spaceSlug/rooms/:roomSlug/alerts/".concat(n),t),{replace:!0})}),[e,n]),r.current})(),{name:t="unknown alert",fullyLoaded:a=!1}=(0,r.JL)(e),g=(0,r.x)();return(0,n.ZB)({title:t,id:e,destination:e,params:location.hash,type:"alerts",isReady:a}),g?l.createElement(o.A,{overflow:{vertical:"auto"},margin:[0,0,8],padding:[3]},g&&l.createElement(u.A,null,l.createElement(m.A,{alertId:e}))):l.createElement(d.A,{title:"Loading alert..."})}}}]); \ No newline at end of file
diff --git a/web/gui/v2/3D_PARTY_LICENSES.txt b/src/web/gui/v2/3D_PARTY_LICENSES.txt
index 33f0d943f..263405515 100644
--- a/web/gui/v2/3D_PARTY_LICENSES.txt
+++ b/src/web/gui/v2/3D_PARTY_LICENSES.txt
@@ -1014,31 +1014,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-@floating-ui/dom
-MIT
-MIT License
-
-Copyright (c) 2021 Floating UI contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
@fortawesome/free-brands-svg-icons
(CC-BY-4.0 AND MIT)
Fonticons, Inc. (https://fontawesome.com)
@@ -3041,6 +3016,621 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+@rjsf/core
+Apache-2.0
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+@rjsf/utils
+Apache-2.0
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+@rjsf/validator-ajv8
+Apache-2.0
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
@sentry/browser
MIT
Copyright (c) 2019 Sentry (https://sentry.io) and individual contributors. All rights reserved.
@@ -3307,22 +3897,37 @@ MIT
@tanstack/virtual-core
MIT
-axios
+ajv
MIT
-# Copyright (c) 2014-present Matt Zabriskie & Collaborators
+The MIT License (MIT)
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+Copyright (c) 2015-2021 Evgeny Poberezkin
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
-blacklist
+
+ajv-formats
MIT
-The MIT License (MIT)
+MIT License
-Copyright (c) 2015 Daniel Cousens
+Copyright (c) 2020 Evgeny Poberezkin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -3343,6 +3948,42 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+available-typed-arrays
+MIT
+MIT License
+
+Copyright (c) 2020 Inspect JS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+axios
+MIT
+# Copyright (c) 2014-present Matt Zabriskie & Collaborators
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
call-bind
MIT
MIT License
@@ -3489,6 +4130,56 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+compute-gcd
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2014-2015 Athan Reines.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+compute-lcm
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2014-2015 Athan Reines.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
copy-text-to-clipboard
MIT
MIT License
@@ -3504,7 +4195,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
core-js
MIT
-Copyright (c) 2014-2023 Denis Pushkarev
+Copyright (c) 2014-2024 Denis Pushkarev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -3556,6 +4247,34 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+crypto-js
+MIT
+# License
+
+[The MIT License (MIT)](http://opensource.org/licenses/MIT)
+
+Copyright (c) 2009-2013 Jeff Mott
+Copyright (c) 2013-2016 Evan Vosberg
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
d3
ISC
Copyright 2010-2023 Mike Bostock
@@ -3573,6 +4292,23 @@ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE.
+d3-array
+ISC
+Copyright 2010-2023 Mike Bostock
+
+Permission to use, copy, modify, and/or distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright notice
+and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
+
d3-color
ISC
Copyright 2010-2022 Mike Bostock
@@ -3643,7 +4379,7 @@ THIS SOFTWARE.
d3-time
ISC
-Copyright 2010-2021 Mike Bostock
+Copyright 2010-2022 Mike Bostock
Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright notice
@@ -3738,6 +4474,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+define-data-property
+MIT
+MIT License
+
+Copyright (c) 2023 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
define-properties
MIT
The MIT License (MIT)
@@ -3762,25 +4523,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-delaunator
-ISC
-ISC License
-
-Copyright (c) 2017, Mapbox
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
-
domelementtype
BSD-2-Clause
Copyright (c) Felix Böhm
@@ -3908,6 +4650,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+fast-deep-equal
+MIT
+MIT License
+
+Copyright (c) 2017 Evgeny Poberezkin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
filter-obj
MIT
The MIT License (MIT)
@@ -3933,6 +4700,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+for-each
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2012 Raynos.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
function-bind
MIT
Copyright (c) 2013 Raynos.
@@ -4007,6 +4800,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+gopd
+MIT
+MIT License
+
+Copyright (c) 2022 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
hammerjs
MIT
The MIT License (MIT)
@@ -4285,6 +5103,26 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+inherits
+ISC
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+
inline-style-parser
MIT
@@ -4354,6 +5192,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+is-callable
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2015 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
is-date-object
MIT
The MIT License (MIT)
@@ -4380,6 +5244,30 @@ SOFTWARE.
+is-generator-function
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2014 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
is-regex
MIT
The MIT License (MIT)
@@ -4404,60 +5292,113 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-lodash
+is-typed-array
MIT
-Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
+The MIT License (MIT)
-Based on Underscore.js, copyright Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+Copyright (c) 2015 Jordan Harband
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/lodash/lodash
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The following license applies to all parts of this software except as
-documented below:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-====
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+json-schema-compare
+MIT
+MIT License
-====
+Copyright (c) 2017 Martin Hansen
-Copyright and related rights for sample code are waived via CC0. Sample
-code is defined as all source code displayed within the prose of the
-documentation.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-CC0: http://creativecommons.org/publicdomain/zero/1.0/
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-====
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
-Files located in the node_modules and vendor directories are externally
-maintained libraries used by this software which have their own
-licenses; we recommend you read them, as their terms may differ from the
-terms above.
+
+json-schema-merge-allof
+MIT
+
+json-schema-traverse
+MIT
+MIT License
+
+Copyright (c) 2017 Evgeny Poberezkin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
-lodash.isequal
+jsonpointer
MIT
-Copyright JS Foundation and other contributors <https://js.foundation/>
+The MIT License (MIT)
+
+Copyright (c) 2011-2015 Jan Lehnardt <jan@apache.org> & Marc Bachmann <https://github.com/marcbachmann>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+lodash
+MIT
+Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
@@ -4548,46 +5489,6 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-medium-editor
-MIT
-Copyright Davi Ferreira, http://www.daviferreira.com/
-
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/yabwe/medium-editor
-
-The following license applies to all parts of this software except as
-documented below:
-
-====
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-====
-
-All files located in the node_modules directory are
-externally maintained libraries used by this software which have their
-own licenses; we recommend you read them, as their terms may differ from
-the terms above.
-
-
memoize-one
MIT
MIT License
@@ -5200,31 +6101,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-react-grid-layout
-MIT
-The MIT License (MIT)
-
-Copyright (c) 2016 Samuel Reed
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
react-is
MIT
MIT License
@@ -5250,32 +6126,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-react-medium-editor
-MIT
-The MIT License (MIT)
-
-Copyright (c) 2015 Wang Zuo
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-
react-minimal-pie-chart
MIT
Copyright (c) Andrea Carraro
@@ -5400,31 +6250,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-react-resizable
-MIT
-The MIT License (MIT)
-
-Copyright (c) 2016-2018 Samuel Reed
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
react-router
MIT
MIT License
@@ -5642,39 +6467,36 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-robust-predicates
-Unlicense
-This is free and unencumbered software released into the public domain.
+scheduler
+MIT
+MIT License
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
+Copyright (c) Facebook, Inc. and its affiliates.
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-For more information, please refer to <http://unlicense.org>
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
-scheduler
+set-function-name
MIT
MIT License
-Copyright (c) Facebook, Inc. and its affiliates.
+Copyright (c) Jordan Harband and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -5852,31 +6674,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
-stylis
-MIT
-MIT License
-
-Copyright (c) 2016-present Sultan Tarimo
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
svg-baker-runtime
MIT
@@ -6234,11 +7031,51 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
-tiny-invariant
+uri-js
+BSD-2-Clause
+Copyright 2011 Gary Court. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY GARY COURT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gary Court.
+
+
+use-context-selector
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2019-2022 Daishi Kato
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+use-isomorphic-layout-effect
MIT
MIT License
-Copyright (c) 2019 Alexander Reardon
+Copyright (c) Mateusz Burzyński
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -6258,11 +7095,47 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-use-context-selector
+
+util
+MIT
+Copyright Joyent, Inc. and other Node contributors. All rights reserved.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+
+
+uuid
MIT
The MIT License (MIT)
-Copyright (c) 2019-2022 Daishi Kato
+Copyright (c) 2010-2020 Robert Kieffer and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+validate.io-array
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2014-2015 Athan Reines.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -6271,23 +7144,23 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
-use-isomorphic-layout-effect
+validate.io-function
MIT
-MIT License
+The MIT License (MIT)
-Copyright (c) Mateusz Burzyński
+Copyright (c) 2014 Athan Reines.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -6307,19 +7180,77 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+validate.io-integer
+MIT
+The MIT License (MIT)
-uuid
+Copyright (c) 2014 Athan Reines.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+validate.io-integer-array
MIT
The MIT License (MIT)
-Copyright (c) 2010-2020 Robert Kieffer and other contributors
+Copyright (c) 2015 Athan Reines.
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+validate.io-number
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2014 Athan Reines.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
warning
MIT
@@ -6346,6 +7277,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+which-typed-array
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2015 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
workbox-background-sync
MIT
Copyright 2018 Google LLC
diff --git a/src/web/gui/v2/4034.9c82e72b081978919942.chunk.js b/src/web/gui/v2/4034.9c82e72b081978919942.chunk.js
new file mode 100644
index 000000000..6be16a59e
--- /dev/null
+++ b/src/web/gui/v2/4034.9c82e72b081978919942.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r=(new Error).stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="4ec41cbe-43c4-47bb-9b6c-791c00e538ef",e._sentryDebugIdIdentifier="sentry-dbid-4ec41cbe-43c4-47bb-9b6c-791c00e538ef")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[4034],{24034:(e,r,t)=>{t.r(r),t.d(r,{default:()=>d,dropInFlavour:()=>i});t(74648),t(17333),t(98992),t(23215),t(54520);var n=t(96540),a=t(43375);const o={activationConstraint:{delay:50,tolerance:10}},i={dropArea:"dropArea",dashboard:"dashboard",self:"self"},d=e=>{let{children:r}=e;const t=(0,n.useCallback)((e=>{const{active:r}=e,{isResizer:t,itemId:n,itemContainerId:o,rootId:i,navigationTab:d}=r.data.current;if(d)return(0,a.fp)({...e,droppableContainers:e.droppableContainers.filter((e=>e.data.current.sortable&&e.data.current.navigationTab))});if(t){const t=e.droppableRects.get(n)||e.droppableRects.get("".concat(i,"-").concat(n));return(0,a.Qo)({...e,collisionRect:{...t,...r.rect.current.translated&&{width:t.width+(r.rect.current.translated.right-r.rect.current.initial.right),height:t.height+(r.rect.current.translated.bottom-r.rect.current.initial.bottom)}},droppableContainers:e.droppableContainers.filter((e=>{var r;return!(null!==(r=e.data.current)&&void 0!==r&&r.isContainer)&&e.data.current.itemContainerId===o}))})}let l,c=e.droppableContainers.filter((e=>e.data.current.droppable));if(c.length){if(l=(0,a.TT)({...e,droppableContainers:c}),l.length>0||c.every((e=>e.data.current.onlyPointerWithin)))return l;if(l=(0,a.Qo)({...e,droppableContainers:c.filter((e=>!e.data.current.onlyPointerWithin))}),l.length>0)return l}if(c=e.droppableContainers.filter((e=>e.data.current.dropArea)),l=(0,a.TT)({...e,droppableContainers:c}),l.length>0)return l;const s=(0,a.TT)({...e,droppableContainers:e.droppableContainers.filter((e=>{var r;return!(null!==(r=e.data.current)&&void 0!==r&&r.isResizer||e.id===n)}))});return s.length>0?s:(0,a.fp)({...e,droppableContainers:e.droppableContainers.filter((e=>{var r;return!(null!==(r=e.data.current)&&void 0!==r&&r.isResizer||e.id===n)}))})}),[]),i=(0,a.FR)((0,a.MS)(a.cA,o),(0,a.MS)(a.IG,o));return n.createElement(a.Mp,{sensors:i,collisionDetection:t,measuring:{droppable:{strategy:a.Pf.Always},draggable:{measure:a.Sj}},autoScroll:!1},r)}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/4414.60a74c3b7534b4a25469.chunk.js b/src/web/gui/v2/4414.60a74c3b7534b4a25469.chunk.js
new file mode 100644
index 000000000..402aea423
--- /dev/null
+++ b/src/web/gui/v2/4414.60a74c3b7534b4a25469.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="91ff2b2f-dfab-4376-b71d-04fe591a9808",e._sentryDebugIdIdentifier="sentry-dbid-91ff2b2f-dfab-4376-b71d-04fe591a9808")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[4414],{74414:(e,n,d)=>{d.r(n),d.d(n,{default:()=>t});var f=d(8711);const o="> .dyncfg-field-content > .dyncfg-object-field-container > .dyncfg-object-field-collapsible > .dyncfg-object-field-content",c=(0,f.css)([".dyncfg-grid ",",.dyncfg-grid ","{display:grid;column-gap:16px;row-gap:6px;}",""],o,"> .dyncfg-object-field-content",(e=>{const n=[];for(let d=1;d<=e;d++){n.push(".dyncfg-grid-col-".concat(d," ").concat(o," {\n grid-template-columns: repeat(").concat(d,", 1fr) !important;\n }"));for(let f=1;f<=e-d+1;f++)n.push(".dyncfg-grid-col-span-".concat(d,"-").concat(f," { grid-column: ").concat(d," / span ").concat(f,"; }"))}return n.join("\n")})(12)),t=(0,f.createGlobalStyle)(["",""],c)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/4680.0c75b44bbc80f4591fdd.chunk.js b/src/web/gui/v2/4680.0c75b44bbc80f4591fdd.chunk.js
new file mode 100644
index 000000000..6129bf4e7
--- /dev/null
+++ b/src/web/gui/v2/4680.0c75b44bbc80f4591fdd.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="279ed034-b2c6-47d3-9371-b6bea9116ce8",e._sentryDebugIdIdentifier="sentry-dbid-279ed034-b2c6-47d3-9371-b6bea9116ce8")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[4680],{667:(e,t,n)=>{n.d(t,{A:()=>l});n(62953);var a=n(96540),o=n(27776),r=n(38819);const l=()=>{const e=(0,r.PP)(),[t,n]=(0,o.XL)(),{reset:l}=(0,o.b8)(),c=(0,a.useCallback)((()=>{l(),(0,r.Z8)({...e,integrationsModalOpen:"true"}),n("true")}),[l,e]);return{isIntegrationsVisible:t,hideIntegrations:(0,a.useCallback)((()=>{(0,r.Z8)({...e,integrationsModalOpen:""}),n("")}),[e]),onIntegrationsClick:c}}},84680:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ee});n(62953);var a=n(96540),o=n(10058),r=n(5668),l=n(58168),c=(n(41393),n(81454),n(8711)),i=n(47767),s=n(68831),d=n(87659),u=n(43529),p=n(78862),m=n(29217),g=n(37944),h=n(3914);const f=e=>{let{...t}=e;const n=(0,g.A)();return(0,h.dg)()?null:a.createElement(m.A,{content:"Space settings"},a.createElement(o.Flex,{padding:[0,1]},a.createElement(o.Button,(0,l.A)({flavour:"borderless",icon:"gear",neutral:!0,onClick:n,small:!0,"data-ga":"left-sidebar::click-space-settings::global-view","data-testid":"workspaceBar-manageSpace"},t))))};var E=n(50105),b=n(74293),x=n(71847),v=n(64754),w=n(76634),k=n(54972),C=n(96382);const y=()=>{const e=(0,C.ae)("email"),{handleOpenProfileModal:t}=(0,k.A)();return"loading"===e.state||e.state.hasError?null:a.createElement(o.IconButton,{flavour:"borderless","data-testid":"open-email-notification",cursor:"pointer",width:"20px",height:"20px",onClick:()=>t("notifications"),icon:e.contents.email?"notification_shortcut_enabled":"notification_shortcut_disabled",tooltip:"Email Notifications","data-ga":"left-sidebar::click-user-notification-settings::global-view",iconColor:"iconColor"})},I=(0,a.memo)(y);const A=(0,n(92155).A)(v.A),S=c.default.div.withConfig({displayName:"spaces__Separator",componentId:"sc-1gbju6k-0"})(["height:1px;width:",";background:",";"],(0,o.getSizeBy)(3),(0,o.getColor)("border")),F=(0,c.default)(o.Button).withConfig({displayName:"spaces__DocButton",componentId:"sc-1gbju6k-1"})(["&&{> .button-icon{width:20px;height:20px;}}"]),N=(0,c.default)(o.Button).withConfig({displayName:"spaces__ExpandButton",componentId:"sc-1gbju6k-2"})(["&&{> .button-icon{width:6px;height:9px;}}"]),_={onClickOut:()=>(0,x.H)("header-help","click-out-modal","global-view"),onCloseClick:()=>(0,x.H)("header-help","click-close","global-view"),onOpenIssueClick:()=>(0,x.H)("header-help","click-\u03bfpen-issue","global-view"),onContributeClick:()=>(0,x.H)("header-help","click-contribute","global-view"),onOpenBugClick:()=>(0,x.H)("header-help","click-bug","global-view"),onSupportClick:()=>(0,x.H)("header-help","click-support","global-view"),onVisitDocumentClick:()=>(0,x.H)("header-help","click-visit-doc","global-view"),onGoToDemoClick:()=>(0,x.H)("header-help","click-go-to-demo","global-view")},P=e=>{let{spacePanelCollapsed:t,toggleSpacePanel:n}=e;const r=(0,h.Pk)(),c=(0,h.vt)(),[g,,x,v]=(0,d.A)(),k=(0,i.Zp)(),C=(0,a.useCallback)((function(){let{slug:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return k("/spaces/".concat(e))}),[]);return a.createElement(o.Flex,{background:"sideBarMini","data-testid":"workspaceBar",padding:[3,0],column:!0,alignItems:"center",gap:6,height:"100vh",justifyContent:"between"},a.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-spaces-list",gap:4,alignItems:"center",overflow:"hidden"},a.createElement(u.A,{"data-testid":"workspaceBar-netdataLogo"}),t&&a.createElement(N,{"data-testid":"workspaceBar-expandButton",onClick:n,icon:"chevron_right_s",neutral:!0,flavour:"borderless",small:!0}),a.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-spacesList",gap:4,overflow:{vertical:"auto"}},r.map((e=>a.createElement(p.A,{testIdPrefix:"workspaceBar-space",key:e,spaceId:e,active:e===c})))),a.createElement(w.A,{permission:"user:CreateSpace"},a.createElement(S,{"data-testid":"workspaceBar-separator"})),a.createElement(m.A,{content:"Create a new Space",align:"right"},a.createElement(A,{permission:"user:CreateSpace",ifForbidden:"hide",icon:"plus",onClick:x,"data-testid":"workspaceBar-addSpace-button",feature:"CreateSpace",isStart:!0}))),a.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-actionsList",gap:4,alignItems:"center"},a.createElement(o.Flex,{column:!0,gap:1,alignItems:"center"},a.createElement(w.A,{permission:"user:ChangeSpaceRoomNotifications"},a.createElement(I,null)),a.createElement(o.Documentation,(0,l.A)({app:"cloud",demoUrl:s.A.demoUrl},_),(e=>a.createElement(m.A,{content:"Read documentation, engage with the community and let us know about any feature requests or bugs",align:"right"},a.createElement(F,{neutral:!0,flavour:"borderless",icon:"question",onClick:e,"data-ga":"header-help::click-help::global-view","data-testid":"documentation-button",title:"Need help?"})))),a.createElement(f,null)),a.createElement(b.A,null)),g&&a.createElement(E.A,{onClose:v,onDone:C}))};n(30067),n(93518),n(25440),n(17333),n(3064),n(98992),n(54520),n(72577);var T=n(22292),B=n(26655),R=n(9224),O=n(47762),j=n(87337),D=n(63129),L=n(45123),W=n(56915),H=n(24266),U=n(91069);const z=(0,c.default)(o.Icon).withConfig({displayName:"styled__TrashIcon",componentId:"sc-1hr9uxl-0"})(["&:hover{fill:",";opacity:0.6;}"],(0,o.getColor)("textFocus")),M=(0,c.default)(o.TextSmall).withConfig({displayName:"styled__UrlWrapper",componentId:"sc-1hr9uxl-1"})(["overflow-wrap:anywhere;"]),V=(0,c.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1hr9uxl-2"})(["transform:",";"],(e=>{let{right:t}=e;return t?"rotate(0)":"rotate(180deg)"})),G=e=>{/https?:\/\//.test(e)||(e="http://".concat(e)),location.replace(e)},J=function(e,t){let{openList:n,setSelectedId:o}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=(0,T.uW)("isAnonymous"),l=(0,a.useRef)(),c=(0,h.UV)("ids"),i=(0,h.jw)(c);return(0,a.useCallback)((async()=>{if(o(e),l.current||(l.current=await(async(e,t)=>{let{spaces:n=[],id:a,isAnonymous:o=!1}=t;if(!o){const{data:e}=await(0,R.ys)(a);let t;if(e.length&&(t=await Promise.any(n.map((t=>B.A.get((0,U.t)({spaceId:t.id})).then((n=>{let{data:a}=n;return Promise.any(a.map((n=>(0,D.uQ)({roomId:n.id,spaceId:t.id}).then((a=>{let{data:o}=a;const r=o.find((t=>{let{id:n}=t;return e.includes(n)}));if(!r)throw new Error("can't find matching node");return"".concat(window.envSettings.cloudUrl,"/spaces/").concat(t.slug,"/rooms/").concat(n.slug,"/nodes/").concat(r.id)})))))}))))).then((e=>e)).catch((()=>{}))),t)return t}const r=e.filter((e=>!/netdata\.cloud\//.test(e)));if(r.length)return await Promise.any(r.map((e=>{let t=/^https?:\/\//.test(e)?e:"http://".concat(e);return t=t.replace(/\/+$/,""),B.A.get("".concat(t,"/api/v1/registry?action=hello")).then((()=>t))}))).then((e=>e)).catch((()=>{}))})(t,{spaces:i,id:e,isAnonymous:r})),o(),!l.current)return n();G(l.current)}),[t,i])},Y=e=>{let{id:t,selectedId:n,setSelectedId:r}=e;const l=(0,O.xY)(t,"name"),[c,,i,s]=(0,d.A)(),u=(0,j.rE)(),p=(0,O.xY)(t,"urls"),m=J(t,p,{openList:i,setSelectedId:r}),g=(0,a.useCallback)((()=>{c?s():m()}),[c,m]),h=n===t;return a.createElement(a.Fragment,null,a.createElement(L.A,{onClick:g,isSidebar:!0,padding:[1,2,1,4],testid:"visitedNodes-".concat(l),disabled:!!n&&!h,selected:h,loading:h,iconColor:"textNoFocus",textColor:"textNoFocus",Wrapper:o.TextSmall},l),c&&a.createElement(o.Flex,{column:!0,margin:[1,3],padding:[2],border:{side:"all",color:"placeholder"},round:2},a.createElement(o.Text,{textAlign:"center"},"We couldn't connect to any of your instances, here is the list:"),p.map((e=>a.createElement(L.A,{key:e,onClick:()=>G(e),isSidebar:!0,testid:"visitedNodes-node-".concat(e),actions:a.createElement(o.Flex,{flex:!1,margin:[0,0,0,1]},a.createElement(z,{name:"trashcan",size:"small",color:"textNoFocus",onClick:n=>{n.stopPropagation(),u(t,e)},width:"16px",height:"16px"})),padding:[2],Wrapper:M,iconColor:"textNoFocus",textColor:"textNoFocus"},e)))))},Z=()=>{const e=(0,j.iw)(),[t,n]=(0,d.A)(e.length>0);(0,a.useEffect)((()=>{t||n()}),[e.length]);const[r,l]=(0,a.useState)(""),c=(0,j.vS)(r),[i,s]=(0,a.useState)();return e.length?a.createElement(W.A,{isOpen:t,toggleOpen:n,label:a.createElement(o.Flex,{padding:[1,0],flex:!0,justifyContent:"between",alignItems:"center"},a.createElement(o.Flex,{alignItems:"center",gap:2},a.createElement(o.Icon,{name:"node_hollow",color:"textNoFocus",width:"14px",height:"14px"}),a.createElement(o.TextSmall,{color:"textNoFocus"},"Visited Nodes")),a.createElement(V,{right:!t,name:"chevron_down",size:"small",color:"textNoFocus"})),headerTestId:"visitedNodes"},e.length>3&&a.createElement(o.Flex,{padding:[1,2,2,4]},a.createElement(o.SearchInput,{"data-testid":"search-visited-nodes-input",onChange:l,value:r,size:"tiny"})),a.createElement(o.Flex,{padding:[0,0,2],column:!0},c.length?c.map((e=>a.createElement(Y,{key:e,id:e,selectedId:i,setSelectedId:s}))):a.createElement(o.Text,{padding:[3,5]},"No nodes match your search"))):null},q=(0,a.memo)((()=>a.createElement(H.Ay,{fallback:""},a.createElement(a.Suspense,{fallback:""},a.createElement(Z,null)))));var Q=n(79412),X=n(77279),$=n(46741);const K=e=>t=>{const n=(0,h.vt)();return a.createElement(e,(0,l.A)({},t,{key:n}))};var ee=n(12938);const te={isSidebar:!0,padding:[1,2,1,4],textColor:"textNoFocus",Wrapper:o.TextSmall},ne=K((()=>{const e=(0,$.JT)("room:Create"),t=(0,$.JT)("room:Read"),[n,r]=(0,d.A)(t),[l,,c,i]=(0,d.A)(!1),s=(0,a.useCallback)((t=>{t.stopPropagation(),e&&c()}),[e]);return a.createElement(a.Fragment,null,a.createElement(W.A,{"data-testid":"workspaceRooms-menuList",disabled:!t,headerTestId:"workspaceRooms-warRooms",isOpen:n,label:a.createElement(o.Flex,{padding:[1,0],margin:[0,0,1,0],flex:!0,justifyContent:"between",alignItems:"center",height:"24px"},a.createElement(o.Flex,{alignItems:"center",gap:2},a.createElement(o.Icon,{name:"space_new",color:"textNoFocus",width:"14px",height:"14px"}),a.createElement(o.TextSmall,{color:"textNoFocus"},"Rooms")),a.createElement(o.Flex,{alignItems:"center",gap:2},a.createElement(m.A,{content:"Create a new room",align:"right"},a.createElement(v.A,{permission:"room:Create",tiny:!0,icon:"plus",onClick:s,"data-testid":"workspaceRooms-addWarRoom-button"})),a.createElement(X.v,{right:!n,name:"chevron_down",size:"small",color:"textNoFocus"}))),toggleOpen:r},a.createElement(o.Flex,{column:!0,"data-testid":"workspaceRooms-warRoomsList",padding:[0,0,1]},a.createElement(ee.A,te))),l&&a.createElement(Q.n,{onClose:i,isSubmodal:!1}))}));var ae=n(39225),oe=n(67602);const re=(0,c.default)(o.Flex).attrs({alignItems:"center",justifyContent:"center",width:10,height:4,round:.5,background:"sideBarMini"}).withConfig({displayName:"styled__AdminPill",componentId:"sc-1ps23b1-0"})(["opacity:0;",":hover &{opacity:1;}"],L.G),le=(0,ae.A)((()=>n.e(2007).then(n.bind(n,62007))),"CurrentPlan"),ce=e=>{let{children:t,onToggle:n}=e;return a.createElement(o.Flex,{column:!0,gap:1},a.createElement(o.Flex,{justifyContent:"between",alignItems:"center"},a.createElement(o.Flex,{alignItems:"center"},t),a.createElement(o.Button,{onClick:n,icon:"chevron_left",neutral:!0,flavour:"hollow",small:!0})),a.createElement(a.Suspense,{fallback:""},a.createElement(le,null)))};var ie=n(38413),se=n(53285),de=n(667);const ue=(0,ae.A)((()=>n.e(7436).then(n.bind(n,57436)).then((e=>({default:e.TrialWarning})))),"TrialWarning"),pe=(0,c.default)(W.N).attrs({padding:[2],color:"textLite"}).withConfig({displayName:"spacePanel__ListHeader",componentId:"sc-1275zgk-0"})([""]),me=e=>a.createElement(o.Flex,(0,l.A)({alignItems:"center",gap:2},e),a.createElement(re,null,a.createElement(o.TextFemto,{strong:!0,color:"text"},"ADMIN")),a.createElement(o.Flex,{opacity:"medium"},a.createElement(o.Icon,{name:"padlock",size:"small",width:"18px",height:"18px",color:"text"}))),ge={iconWidth:"14px",iconHeight:"14px",padding:[1,2],gap:2,isSidebar:!0,textColor:"textNoFocus",iconColor:"textNoFocus",Wrapper:o.TextSmall},he=e=>{let{toggleSpacePanel:t}=e;const n=(0,h.ap)(),[r,,c,i]=(0,d.A)(),[,s]=(0,oe.A)("manageInvitations"),u=(0,h.dg)(),{onIntegrationsClick:p}=(0,de.A)();return a.createElement(a.Fragment,null,r&&a.createElement(ie.A,{title:"Integrations",onClose:i}),a.createElement(W.A,{"data-testid":"spacesPanel",isOpen:!0,label:a.createElement(ce,{onToggle:t},n.name),headerTestId:"spacesPanel-activeSpaceHeader",Header:pe},a.createElement(o.Flex,{column:!0,padding:[2,0,1],"data-testid":"spacesPanel-menuList"},a.createElement(a.Suspense,{fallback:""},a.createElement(ue,{flavour:"sidebar"})),a.createElement(L.A,(0,l.A)({onClick:p,testid:"agentDashboard-addIntegrations",dataGa:"integrations::click-add-integrations::sideMenu",icon:"integrations"},ge),"Integrations"),u?null:a.createElement(a.Fragment,null,a.createElement(se.A,{permission:"node:Create"},(e=>a.createElement(L.A,(0,l.A)({actions:e?null:a.createElement(me,{"data-testid":"adminWarning-notAdmin"}),disabled:!e,onClick:c,testid:"spacesPanel-claimNodes",icon:"nodes_hollow"},ge),"Connect Nodes"))),a.createElement(se.A,{permission:"space:InviteUser"},(e=>a.createElement(L.A,(0,l.A)({actions:e?null:a.createElement(me,{"data-testid":"adminWarning-cannotInvite"}),disabled:!e,onClick:s,testid:"spacesPanel-inviteUsers",icon:"user"},ge),"Invite Users")))))))},fe=e=>{let{spacePanelCollapsed:t,toggleSpacePanel:n}=e;return a.createElement(o.Collapsible,{width:56,background:"sideBar",border:{side:"right",color:"borderSecondary"},open:!t,direction:"horizontal"},a.createElement(o.Flex,{flex:!0,width:56,column:!0,overflow:{vertical:"hidden"},padding:[2,0],position:"relative"},a.createElement(he,{toggleSpacePanel:n}),a.createElement(o.Flex,{overflow:{vertical:"auto"},flex:!0,column:!0},a.createElement(ne,null),a.createElement(q,null))))},Ee=(0,a.memo)((()=>{const[e,t]=(0,r.tF)("spacePanelCollapsed"),{isIntegrationsVisible:n,hideIntegrations:l}=(0,de.A)(),c=(0,a.useCallback)((()=>t(!e)),[e]);return(0,a.useLayoutEffect)((()=>{const e=setTimeout((()=>window.dispatchEvent(new Event("resize"))),400);return()=>clearTimeout(e)}),[e]),a.createElement(o.Flex,null,a.createElement(P,{spacePanelCollapsed:e,toggleSpacePanel:c}),a.createElement(fe,{spacePanelCollapsed:e,toggleSpacePanel:c}),n&&a.createElement(ie.A,{title:"Integrations",onClose:l,flavour:"integrations"}))}))},84428:(e,t,n)=>{var a=n(78227)("iterator"),o=!1;try{var r=0,l={next:function(){return{done:!!r++}},return:function(){o=!0}};l[a]=function(){return this},Array.from(l,(function(){throw 2}))}catch(c){}e.exports=function(e,t){try{if(!t&&!o)return!1}catch(c){return!1}var n=!1;try{var r={};r[a]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(c){}return n}},87290:(e,t,n)=>{var a=n(50516),o=n(19088);e.exports=!a&&!o&&"object"==typeof window&&"object"==typeof document},50516:e=>{e.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},19088:(e,t,n)=>{var a=n(24475),o=n(44576);e.exports="process"===o(a.process)},16193:(e,t,n)=>{var a=n(79504),o=Error,r=a("".replace),l=String(new o("zxcasd").stack),c=/\n\s*at [^:]*:[^\n]*/,i=c.test(l);e.exports=function(e,t){if(i&&"string"==typeof e&&!o.prepareStackTrace)for(;t--;)e=r(e,c,"");return e}},80747:(e,t,n)=>{var a=n(66699),o=n(16193),r=n(24659),l=Error.captureStackTrace;e.exports=function(e,t,n,c){r&&(l?l(e,t):a(e,"stack",o(n,c)))}},24659:(e,t,n)=>{var a=n(79039),o=n(6980);e.exports=!a((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},77584:(e,t,n)=>{var a=n(20034),o=n(66699);e.exports=function(e,t){a(t)&&"cause"in t&&o(e,"cause",t.cause)}},32603:(e,t,n)=>{var a=n(655);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:a(e)}},10916:(e,t,n)=>{var a=n(24475),o=n(80550),r=n(94901),l=n(92796),c=n(33706),i=n(78227),s=n(87290),d=n(50516),u=n(96395),p=n(77388),m=o&&o.prototype,g=i("species"),h=!1,f=r(a.PromiseRejectionEvent),E=l("Promise",(function(){var e=c(o),t=e!==String(o);if(!t&&66===p)return!0;if(u&&(!m.catch||!m.finally))return!0;if(!p||p<51||!/native code/.test(e)){var n=new o((function(e){e(1)})),a=function(e){e((function(){}),(function(){}))};if((n.constructor={})[g]=a,!(h=n.then((function(){}))instanceof a))return!0}return!t&&(s||d)&&!f}));e.exports={CONSTRUCTOR:E,REJECTION_EVENT:f,SUBCLASSING:h}},90537:(e,t,n)=>{var a=n(80550),o=n(84428),r=n(10916).CONSTRUCTOR;e.exports=r||!o((function(e){a.all(e).then(void 0,(function(){}))}))},17145:(e,t,n)=>{var a=n(46518),o=n(1625),r=n(42787),l=n(52967),c=n(77740),i=n(2360),s=n(66699),d=n(6980),u=n(77584),p=n(80747),m=n(72652),g=n(32603),h=n(78227)("toStringTag"),f=Error,E=[].push,b=function(e,t){var n,a=o(x,this);l?n=l(new f,a?r(this):x):(n=a?this:i(x),s(n,h,"Error")),void 0!==t&&s(n,"message",g(t)),p(n,b,n.stack,1),arguments.length>2&&u(n,arguments[2]);var c=[];return m(e,E,{that:c}),s(n,"errors",c),n};l?l(b,f):c(b,f,{name:!0});var x=b.prototype=i(f.prototype,{constructor:d(1,b),message:d(1,""),name:d(1,"AggregateError")});a({global:!0,constructor:!0,arity:2},{AggregateError:b})},30067:(e,t,n)=>{n(17145)},93518:(e,t,n)=>{var a=n(46518),o=n(69565),r=n(79306),l=n(97751),c=n(36043),i=n(1103),s=n(72652),d=n(90537),u="No one promise resolved";a({target:"Promise",stat:!0,forced:d},{any:function(e){var t=this,n=l("AggregateError"),a=c.f(t),d=a.resolve,p=a.reject,m=i((function(){var a=r(t.resolve),l=[],c=0,i=1,m=!1;s(e,(function(e){var r=c++,s=!1;i++,o(a,t,e).then((function(e){s||m||(m=!0,d(e))}),(function(e){s||m||(s=!0,l[r]=e,--i||p(new n(l,u)))}))})),--i||p(new n(l,u))}));return m.error&&p(m.value),a.promise}})}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5171.2a848991a41e02f24c8d.js b/src/web/gui/v2/5171.2a848991a41e02f24c8d.js
new file mode 100644
index 000000000..9d993b338
--- /dev/null
+++ b/src/web/gui/v2/5171.2a848991a41e02f24c8d.js
@@ -0,0 +1,2 @@
+/*! For license information please see 5171.2a848991a41e02f24c8d.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="89eba673-758c-4622-98b2-9ff1d9614b3c",e._sentryDebugIdIdentifier="sentry-dbid-89eba673-758c-4622-98b2-9ff1d9614b3c")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5171],{43375:(e,t,n)=>{"use strict";n.d(t,{Mp:()=>Ye,Hd:()=>pt,vL:()=>ne,Pf:()=>xe,cA:()=>ge,IG:()=>ye,fp:()=>E,WB:()=>lt,Sj:()=>L,TT:()=>T,Qo:()=>R,fF:()=>Je,E5:()=>c,PM:()=>Qe,zM:()=>nt,MS:()=>v,FR:()=>y});var r=n(96540),o=n(40961),i=n(74979);const a={display:"none"};function s(e){let{id:t,value:n}=e;return r.createElement("div",{id:t,style:a},n)}function u(e){let{id:t,announcement:n,ariaLiveType:o="assertive"}=e;return r.createElement("div",{id:t,style:{position:"fixed",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":o,"aria-atomic":!0},n)}const l=(0,r.createContext)(null);function c(e){const t=(0,r.useContext)(l);(0,r.useEffect)((()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)}),[e,t])}const f={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},d={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function h(e){let{announcements:t=d,container:n,hiddenTextDescribedById:a,screenReaderInstructions:l=f}=e;const{announce:h,announcement:p}=function(){const[e,t]=(0,r.useState)("");return{announce:(0,r.useCallback)((e=>{null!=e&&t(e)}),[]),announcement:e}}(),g=(0,i.YG)("DndLiveRegion"),[v,y]=(0,r.useState)(!1);if((0,r.useEffect)((()=>{y(!0)}),[]),c((0,r.useMemo)((()=>({onDragStart(e){let{active:n}=e;h(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&h(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;h(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;h(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;h(t.onDragCancel({active:n,over:r}))}})),[h,t])),!v)return null;const m=r.createElement(r.Fragment,null,r.createElement(s,{id:a,value:l.draggable}),r.createElement(u,{id:g,announcement:p}));return n?(0,o.createPortal)(m,n):m}var p;function g(){}function v(e,t){return(0,r.useMemo)((()=>({sensor:e,options:null!=t?t:{}})),[e,t])}function y(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,r.useMemo)((()=>[...t].filter((e=>null!=e))),[...t])}!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(p||(p={}));const m=Object.freeze({x:0,y:0});function b(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function _(e,t){const n=(0,i.e_)(e);if(!n)return"0 0";return(n.x-t.left)/t.width*100+"% "+(n.y-t.top)/t.height*100+"%"}function w(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function x(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function S(e){let{left:t,top:n,height:r,width:o}=e;return[{x:t,y:n},{x:t+o,y:n},{x:t,y:n+r},{x:t+o,y:n+r}]}function A(e,t,n){return void 0===t&&(t=e.left),void 0===n&&(n=e.top),{x:t+.5*e.width,y:n+.5*e.height}}const E=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=A(t,t.left,t.top),i=[];for(const a of r){const{id:e}=a,t=n.get(e);if(t){const n=b(A(t),o);i.push({id:e,data:{droppableContainer:a,value:n}})}}return i.sort(w)};function C(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=o-r,s=i-n;if(r<o&&n<i){const n=t.width*t.height,r=e.width*e.height,o=a*s;return Number((o/(n+r-o)).toFixed(4))}return 0}const R=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const i of r){const{id:e}=i,r=n.get(e);if(r){const n=C(r,t);n>0&&o.push({id:e,data:{droppableContainer:i,value:n}})}}return o.sort(x)};function O(e,t){const{top:n,left:r,bottom:o,right:i}=t;return n<=e.y&&e.y<=o&&r<=e.x&&e.x<=i}const T=e=>{let{droppableContainers:t,droppableRects:n,pointerCoordinates:r}=e;if(!r)return[];const o=[];for(const i of t){const{id:e}=i,t=n.get(e);if(t&&O(r,t)){const n=S(t).reduce(((e,t)=>e+b(r,t)),0),a=Number((n/4).toFixed(4));o.push({id:e,data:{droppableContainer:i,value:a}})}}return o.sort(w)};function k(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:m}function M(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce(((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x})),{...t})}}const P=M(1);function N(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}const I={ignoreTransform:!1};function L(e,t){void 0===t&&(t=I);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:t,transformOrigin:r}=(0,i.zk)(e).getComputedStyle(e);t&&(n=function(e,t,n){const r=N(t);if(!r)return e;const{scaleX:o,scaleY:i,x:a,y:s}=r,u=e.left-a-(1-o)*parseFloat(n),l=e.top-s-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),c=o?e.width/o:e.width,f=i?e.height/i:e.height;return{width:c,height:f,top:l,right:u+c,bottom:l+f,left:u}}(n,t,r))}const{top:r,left:o,width:a,height:s,bottom:u,right:l}=n;return{top:r,left:o,width:a,height:s,bottom:u,right:l}}function D(e){return L(e,{ignoreTransform:!0})}function F(e,t){const n=[];return e?function r(o){if(null!=t&&n.length>=t)return n;if(!o)return n;if((0,i.wz)(o)&&null!=o.scrollingElement&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!(0,i.sb)(o)||(0,i.xZ)(o))return n;if(n.includes(o))return n;const a=(0,i.zk)(e).getComputedStyle(o);return o!==e&&function(e,t){void 0===t&&(t=(0,i.zk)(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some((e=>{const r=t[e];return"string"===typeof r&&n.test(r)}))}(o,a)&&n.push(o),function(e,t){return void 0===t&&(t=(0,i.zk)(e).getComputedStyle(e)),"fixed"===t.position}(o,a)?n:r(o.parentNode)}(e):n}function j(e){const[t]=F(e,1);return null!=t?t:null}function U(e){return i.Sw&&e?(0,i.l6)(e)?e:(0,i.Ll)(e)?(0,i.wz)(e)||e===(0,i.TW)(e).scrollingElement?window:(0,i.sb)(e)?e:null:null:null}function z(e){return(0,i.l6)(e)?e.scrollX:e.scrollLeft}function B(e){return(0,i.l6)(e)?e.scrollY:e.scrollTop}function V(e){return{x:z(e),y:B(e)}}var H;function $(e){return!(!i.Sw||!e)&&e===document.scrollingElement}function W(e){const t={x:0,y:0},n=$(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(H||(H={}));const G={x:.2,y:.2};function q(e,t,n,r,o){let{top:i,left:a,right:s,bottom:u}=n;void 0===r&&(r=10),void 0===o&&(o=G);const{isTop:l,isBottom:c,isLeft:f,isRight:d}=W(e),h={x:0,y:0},p={x:0,y:0},g=t.height*o.y,v=t.width*o.x;return!l&&i<=t.top+g?(h.y=H.Backward,p.y=r*Math.abs((t.top+g-i)/g)):!c&&u>=t.bottom-g&&(h.y=H.Forward,p.y=r*Math.abs((t.bottom-g-u)/g)),!d&&s>=t.right-v?(h.x=H.Forward,p.x=r*Math.abs((t.right-v-s)/v)):!f&&a<=t.left+v&&(h.x=H.Backward,p.x=r*Math.abs((t.left+v-a)/v)),{direction:h,speed:p}}function Y(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function X(e){return e.reduce(((e,t)=>(0,i.WQ)(e,V(t))),m)}function Z(e,t){if(void 0===t&&(t=L),!e)return;const{top:n,left:r,bottom:o,right:i}=t(e);j(e)&&(o<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const K=[["x",["left","right"],function(e){return e.reduce(((e,t)=>e+z(t)),0)}],["y",["top","bottom"],function(e){return e.reduce(((e,t)=>e+B(t)),0)}]];class Q{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=F(t),r=X(n);this.rect={...e},this.width=e.width,this.height=e.height;for(const[o,i,a]of K)for(const e of i)Object.defineProperty(this,e,{get:()=>{const t=a(n),i=r[o]-t;return this.rect[e]+i},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class J{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach((e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)}))},this.target=e}add(e,t,n){var r;null==(r=this.target)||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function ee(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return"number"===typeof t?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t&&r>t.y}var te,ne;function re(e){e.preventDefault()}function oe(e){e.stopPropagation()}!function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"}(te||(te={})),function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter"}(ne||(ne={}));const ie={start:[ne.Space,ne.Enter],cancel:[ne.Esc],end:[ne.Space,ne.Enter]},ae=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case ne.Right:return{...n,x:n.x+25};case ne.Left:return{...n,x:n.x-25};case ne.Down:return{...n,y:n.y+25};case ne.Up:return{...n,y:n.y-25}}};class se{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new J((0,i.TW)(t)),this.windowListeners=new J((0,i.zk)(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(te.Resize,this.handleCancel),this.windowListeners.add(te.VisibilityChange,this.handleCancel),setTimeout((()=>this.listeners.add(te.Keydown,this.handleKeyDown)))}handleStart(){const{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&Z(n),t(m)}handleKeyDown(e){if((0,i.kx)(e)){const{active:t,context:n,options:r}=this.props,{keyboardCodes:o=ie,coordinateGetter:a=ae,scrollBehavior:s="smooth"}=r,{code:u}=e;if(o.end.includes(u))return void this.handleEnd(e);if(o.cancel.includes(u))return void this.handleCancel(e);const{collisionRect:l}=n.current,c=l?{x:l.left,y:l.top}:m;this.referenceCoordinates||(this.referenceCoordinates=c);const f=a(e,{active:t,context:n.current,currentCoordinates:c});if(f){const t=(0,i.Re)(f,c),r={x:0,y:0},{scrollableAncestors:o}=n.current;for(const n of o){const o=e.code,{isTop:i,isRight:a,isLeft:u,isBottom:l,maxScroll:c,minScroll:d}=W(n),h=Y(n),p={x:Math.min(o===ne.Right?h.right-h.width/2:h.right,Math.max(o===ne.Right?h.left:h.left+h.width/2,f.x)),y:Math.min(o===ne.Down?h.bottom-h.height/2:h.bottom,Math.max(o===ne.Down?h.top:h.top+h.height/2,f.y))},g=o===ne.Right&&!a||o===ne.Left&&!u,v=o===ne.Down&&!l||o===ne.Up&&!i;if(g&&p.x!==f.x){const e=n.scrollLeft+t.x,i=o===ne.Right&&e<=c.x||o===ne.Left&&e>=d.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:s});r.x=i?n.scrollLeft-e:o===ne.Right?n.scrollLeft-c.x:n.scrollLeft-d.x,r.x&&n.scrollBy({left:-r.x,behavior:s});break}if(v&&p.y!==f.y){const e=n.scrollTop+t.y,i=o===ne.Down&&e<=c.y||o===ne.Up&&e>=d.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:s});r.y=i?n.scrollTop-e:o===ne.Down?n.scrollTop-c.y:n.scrollTop-d.y,r.y&&n.scrollBy({top:-r.y,behavior:s});break}}this.handleMove(e,(0,i.WQ)((0,i.Re)(f,this.referenceCoordinates),r))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function ue(e){return Boolean(e&&"distance"in e)}function le(e){return Boolean(e&&"delay"in e)}se.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=ie,onActivation:o}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const t=i.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==o||o({event:e.nativeEvent}),!0)}return!1}}];class ce{constructor(e,t,n){var r;void 0===n&&(n=function(e){const{EventTarget:t}=(0,i.zk)(e);return e instanceof t?e:(0,i.TW)(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:o}=e,{target:a}=o;this.props=e,this.events=t,this.document=(0,i.TW)(a),this.documentListeners=new J(this.document),this.listeners=new J(n),this.windowListeners=new J((0,i.zk)(a)),this.initialCoordinates=null!=(r=(0,i.e_)(o))?r:m,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),this.windowListeners.add(te.Resize,this.handleCancel),this.windowListeners.add(te.DragStart,re),this.windowListeners.add(te.VisibilityChange,this.handleCancel),this.windowListeners.add(te.ContextMenu,re),this.documentListeners.add(te.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(le(t))return void(this.timeoutId=setTimeout(this.handleStart,t.delay));if(ue(t))return}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(te.Click,oe,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(te.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;const{activated:n,initialCoordinates:r,props:o}=this,{onMove:a,options:{activationConstraint:s}}=o;if(!r)return;const u=null!=(t=(0,i.e_)(e))?t:m,l=(0,i.Re)(r,u);if(!n&&s){if(ue(s)){if(null!=s.tolerance&&ee(l,s.tolerance))return this.handleCancel();if(ee(l,s.distance))return this.handleStart()}return le(s)&&ee(l,s.tolerance)?this.handleCancel():void 0}e.cancelable&&e.preventDefault(),a(u)}handleEnd(){const{onEnd:e}=this.props;this.detach(),e()}handleCancel(){const{onCancel:e}=this.props;this.detach(),e()}handleKeydown(e){e.code===ne.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}const fe={move:{name:"pointermove"},end:{name:"pointerup"}};class de extends ce{constructor(e){const{event:t}=e,n=(0,i.TW)(t.target);super(e,fe,n)}}de.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!(!n.isPrimary||0!==n.button)&&(null==r||r({event:n}),!0)}}];const he={move:{name:"mousemove"},end:{name:"mouseup"}};var pe;!function(e){e[e.RightClick=2]="RightClick"}(pe||(pe={}));class ge extends ce{constructor(e){super(e,he,(0,i.TW)(e.event.target))}}ge.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==pe.RightClick&&(null==r||r({event:n}),!0)}}];const ve={move:{name:"touchmove"},end:{name:"touchend"}};class ye extends ce{constructor(e){super(e,ve)}static setup(){return window.addEventListener(ve.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(ve.move.name,e)};function e(){}}}var me,be;function _e(e){let{acceleration:t,activator:n=me.Pointer,canScroll:o,draggingRect:a,enabled:s,interval:u=5,order:l=be.TreeOrder,pointerCoordinates:c,scrollableAncestors:f,scrollableAncestorRects:d,delta:h,threshold:p}=e;const g=function(e){let{delta:t,disabled:n}=e;const r=(0,i.ZC)(t);return(0,i.KG)((e=>{if(n||!r||!e)return we;const o={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[H.Backward]:e.x[H.Backward]||-1===o.x,[H.Forward]:e.x[H.Forward]||1===o.x},y:{[H.Backward]:e.y[H.Backward]||-1===o.y,[H.Forward]:e.y[H.Forward]||1===o.y}}}),[n,t,r])}({delta:h,disabled:!s}),[v,y]=(0,i.$$)(),m=(0,r.useRef)({x:0,y:0}),b=(0,r.useRef)({x:0,y:0}),_=(0,r.useMemo)((()=>{switch(n){case me.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case me.DraggableRect:return a}}),[n,a,c]),w=(0,r.useRef)(null),x=(0,r.useCallback)((()=>{const e=w.current;if(!e)return;const t=m.current.x*b.current.x,n=m.current.y*b.current.y;e.scrollBy(t,n)}),[]),S=(0,r.useMemo)((()=>l===be.TreeOrder?[...f].reverse():f),[l,f]);(0,r.useEffect)((()=>{if(s&&f.length&&_){for(const e of S){if(!1===(null==o?void 0:o(e)))continue;const n=f.indexOf(e),r=d[n];if(!r)continue;const{direction:i,speed:a}=q(e,r,_,t,p);for(const e of["x","y"])g[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0)return y(),w.current=e,v(x,u),m.current=a,void(b.current=i)}m.current={x:0,y:0},b.current={x:0,y:0},y()}else y()}),[t,x,o,y,s,u,JSON.stringify(_),JSON.stringify(g),v,f,S,d,JSON.stringify(p)])}ye.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return!(o.length>1)&&(null==r||r({event:n}),!0)}}],function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(me||(me={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}(be||(be={}));const we={x:{[H.Backward]:!1,[H.Forward]:!1},y:{[H.Backward]:!1,[H.Forward]:!1}};var xe,Se;!function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"}(xe||(xe={})),function(e){e.Optimized="optimized"}(Se||(Se={}));const Ae=new Map;function Ee(e,t){return(0,i.KG)((n=>e?n||("function"===typeof t?t(e):e):null),[t,e])}function Ce(e){let{callback:t,disabled:n}=e;const o=(0,i._q)(t),a=(0,r.useMemo)((()=>{if(n||"undefined"===typeof window||"undefined"===typeof window.ResizeObserver)return;const{ResizeObserver:e}=window;return new e(o)}),[n]);return(0,r.useEffect)((()=>()=>null==a?void 0:a.disconnect()),[a]),a}function Re(e){return new Q(L(e),e)}function Oe(e,t,n){void 0===t&&(t=Re);const[o,a]=(0,r.useReducer)((function(r){if(!e)return null;var o;if(!1===e.isConnected)return null!=(o=null!=r?r:n)?o:null;const i=t(e);if(JSON.stringify(r)===JSON.stringify(i))return r;return i}),null),s=function(e){let{callback:t,disabled:n}=e;const o=(0,i._q)(t),a=(0,r.useMemo)((()=>{if(n||"undefined"===typeof window||"undefined"===typeof window.MutationObserver)return;const{MutationObserver:e}=window;return new e(o)}),[o,n]);return(0,r.useEffect)((()=>()=>null==a?void 0:a.disconnect()),[a]),a}({callback(t){if(e)for(const n of t){const{type:t,target:r}=n;if("childList"===t&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),u=Ce({callback:a});return(0,i.Es)((()=>{a(),e?(null==u||u.observe(e),null==s||s.observe(document.body,{childList:!0,subtree:!0})):(null==u||u.disconnect(),null==s||s.disconnect())}),[e]),o}const Te=[];function ke(e,t){void 0===t&&(t=[]);const n=(0,r.useRef)(null);return(0,r.useEffect)((()=>{n.current=null}),t),(0,r.useEffect)((()=>{const t=e!==m;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)}),[e]),n.current?(0,i.Re)(e,n.current):m}function Me(e){return(0,r.useMemo)((()=>e?function(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}(e):null),[e])}const Pe=[];function Ne(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return(0,i.sb)(t)?t:e}const Ie=[{sensor:de,options:{}},{sensor:se,options:{}}],Le={current:{}},De={draggable:{measure:D},droppable:{measure:D,strategy:xe.WhileDragging,frequency:Se.Optimized},dragOverlay:{measure:L}};class Fe extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter((e=>{let{disabled:t}=e;return!t}))}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}const je={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Fe,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:g},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:De,measureDroppableContainers:g,windowRect:null,measuringScheduled:!1},Ue={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:g,draggableNodes:new Map,over:null,measureDroppableContainers:g},ze=(0,r.createContext)(Ue),Be=(0,r.createContext)(je);function Ve(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Fe}}}function He(e,t){switch(t.type){case p.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case p.DragMove:return e.draggable.active?{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}}:e;case p.DragEnd:case p.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case p.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Fe(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case p.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Fe(e.droppable.containers);return a.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case p.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const i=new Fe(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function $e(e){let{disabled:t}=e;const{active:n,activatorEvent:o,draggableNodes:a}=(0,r.useContext)(ze),s=(0,i.ZC)(o),u=(0,i.ZC)(null==n?void 0:n.id);return(0,r.useEffect)((()=>{if(!t&&!o&&s&&null!=u){if(!(0,i.kx)(s))return;if(document.activeElement===s.target)return;const e=a.get(u);if(!e)return;const{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame((()=>{for(const e of[t.current,n.current]){if(!e)continue;const t=(0,i.ag)(e);if(t){t.focus();break}}}))}}),[o,t,a,u,s]),null}function We(e,t){let{transform:n,...r}=t;return null!=e&&e.length?e.reduce(((e,t)=>t({transform:e,...r})),n):n}const Ge=(0,r.createContext)({...m,scaleX:1,scaleY:1});var qe;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"}(qe||(qe={}));const Ye=(0,r.memo)((function(e){var t,n,a,s;let{id:u,accessibility:c,autoScroll:f=!0,children:d,sensors:g=Ie,collisionDetection:v=R,measuring:y,modifiers:b,..._}=e;const w=(0,r.useReducer)(He,void 0,Ve),[x,S]=w,[A,E]=function(){const[e]=(0,r.useState)((()=>new Set)),t=(0,r.useCallback)((t=>(e.add(t),()=>e.delete(t))),[e]);return[(0,r.useCallback)((t=>{let{type:n,event:r}=t;e.forEach((e=>{var t;return null==(t=e[n])?void 0:t.call(e,r)}))}),[e]),t]}(),[C,O]=(0,r.useState)(qe.Uninitialized),T=C===qe.Initialized,{draggable:{active:M,nodes:N,translate:I},droppable:{containers:D}}=x,z=M?N.get(M):null,B=(0,r.useRef)({initial:null,translated:null}),H=(0,r.useMemo)((()=>{var e;return null!=M?{id:M,data:null!=(e=null==z?void 0:z.data)?e:Le,rect:B}:null}),[M,z]),W=(0,r.useRef)(null),[G,q]=(0,r.useState)(null),[Y,Z]=(0,r.useState)(null),K=(0,i.YN)(_,Object.values(_)),J=(0,i.YG)("DndDescribedBy",u),ee=(0,r.useMemo)((()=>D.getEnabled()),[D]),te=(ne=y,(0,r.useMemo)((()=>({draggable:{...De.draggable,...null==ne?void 0:ne.draggable},droppable:{...De.droppable,...null==ne?void 0:ne.droppable},dragOverlay:{...De.dragOverlay,...null==ne?void 0:ne.dragOverlay}})),[null==ne?void 0:ne.draggable,null==ne?void 0:ne.droppable,null==ne?void 0:ne.dragOverlay]));var ne;const{droppableRects:re,measureDroppableContainers:oe,measuringScheduled:ie}=function(e,t){let{dragging:n,dependencies:o,config:a}=t;const[s,u]=(0,r.useState)(null),{frequency:l,measure:c,strategy:f}=a,d=(0,r.useRef)(e),h=function(){switch(f){case xe.Always:return!1;case xe.BeforeDragging:return n;default:return!n}}(),p=(0,i.YN)(h),g=(0,r.useCallback)((function(e){void 0===e&&(e=[]),p.current||u((t=>null===t?e:t.concat(e.filter((e=>!t.includes(e))))))}),[p]),v=(0,r.useRef)(null),y=(0,i.KG)((t=>{if(h&&!n)return Ae;if(!t||t===Ae||d.current!==e||null!=s){const t=new Map;for(let n of e){if(!n)continue;if(s&&s.length>0&&!s.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}const e=n.node.current,r=e?new Q(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t}),[e,s,n,h,c]);return(0,r.useEffect)((()=>{d.current=e}),[e]),(0,r.useEffect)((()=>{h||g()}),[n,h]),(0,r.useEffect)((()=>{s&&s.length>0&&u(null)}),[JSON.stringify(s)]),(0,r.useEffect)((()=>{h||"number"!==typeof l||null!==v.current||(v.current=setTimeout((()=>{g(),v.current=null}),l))}),[l,h,g,...o]),{droppableRects:y,measureDroppableContainers:g,measuringScheduled:null!=s}}(ee,{dragging:T,dependencies:[I.x,I.y],config:te.droppable}),ae=function(e,t){const n=null!==t?e.get(t):void 0,r=n?n.node.current:null;return(0,i.KG)((e=>{var n;return null===t?null:null!=(n=null!=r?r:e)?n:null}),[r,t])}(N,M),se=(0,r.useMemo)((()=>Y?(0,i.e_)(Y):null),[Y]),ue=function(){const e=!1===(null==G?void 0:G.autoScrollEnabled),t="object"===typeof f?!1===f.enabled:!1===f,n=T&&!e&&!t;if("object"===typeof f)return{...f,enabled:n};return{enabled:n}}(),le=function(e,t){return Ee(e,t)}(ae,te.draggable.measure);!function(e){let{activeNode:t,measure:n,initialRect:o,config:a=!0}=e;const s=(0,r.useRef)(!1),{x:u,y:l}="boolean"===typeof a?{x:a,y:a}:a;(0,i.Es)((()=>{if(!u&&!l||!t)return void(s.current=!1);if(s.current||!o)return;const e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;const r=k(n(e),o);if(u||(r.x=0),l||(r.y=0),s.current=!0,Math.abs(r.x)>0||Math.abs(r.y)>0){const t=j(e);t&&t.scrollBy({top:r.y,left:r.x})}}),[t,u,l,o,n])}({activeNode:M?N.get(M):null,config:ue.layoutShiftCompensation,initialRect:le,measure:te.draggable.measure});const ce=Oe(ae,te.draggable.measure,le),fe=Oe(ae?ae.parentElement:null),de=(0,r.useRef)({activatorEvent:null,active:null,activeNode:ae,collisionRect:null,collisions:null,droppableRects:re,draggableNodes:N,draggingNode:null,draggingNodeRect:null,droppableContainers:D,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),he=D.getNodeFor(null==(t=de.current.over)?void 0:t.id),pe=function(e){let{measure:t}=e;const[n,o]=(0,r.useState)(null),a=Ce({callback:(0,r.useCallback)((e=>{for(const{target:n}of e)if((0,i.sb)(n)){o((e=>{const r=t(n);return e?{...e,width:r.width,height:r.height}:r}));break}}),[t])}),s=(0,r.useCallback)((e=>{const n=Ne(e);null==a||a.disconnect(),n&&(null==a||a.observe(n)),o(n?t(n):null)}),[t,a]),[u,l]=(0,i.lk)(s);return(0,r.useMemo)((()=>({nodeRef:u,rect:n,setRef:l})),[n,u,l])}({measure:te.dragOverlay.measure}),ge=null!=(n=pe.nodeRef.current)?n:ae,ve=T?null!=(a=pe.rect)?a:ce:null,ye=Boolean(pe.nodeRef.current&&pe.rect),me=k(be=ye?null:ce,Ee(be));var be;const we=Me(ge?(0,i.zk)(ge):null),Se=function(e){const t=(0,r.useRef)(e),n=(0,i.KG)((n=>e?n&&n!==Te&&e&&t.current&&e.parentNode===t.current.parentNode?n:F(e):Te),[e]);return(0,r.useEffect)((()=>{t.current=e}),[e]),n}(T?null!=he?he:ae:null),Re=function(e,t){void 0===t&&(t=L);const[n]=e,o=Me(n?(0,i.zk)(n):null),[a,s]=(0,r.useReducer)((function(){return e.length?e.map((e=>$(e)?o:new Q(t(e),e))):Pe}),Pe),u=Ce({callback:s});return e.length>0&&a===Pe&&s(),(0,i.Es)((()=>{e.length?e.forEach((e=>null==u?void 0:u.observe(e))):(null==u||u.disconnect(),s())}),[e]),a}(Se),Fe=We(b,{transform:{x:I.x-me.x,y:I.y-me.y,scaleX:1,scaleY:1},activatorEvent:Y,active:H,activeNodeRect:ce,containerNodeRect:fe,draggingNodeRect:ve,over:de.current.over,overlayNodeRect:pe.rect,scrollableAncestors:Se,scrollableAncestorRects:Re,windowRect:we}),je=se?(0,i.WQ)(se,I):null,Ue=function(e){const[t,n]=(0,r.useState)(null),o=(0,r.useRef)(e),a=(0,r.useCallback)((e=>{const t=U(e.target);t&&n((e=>e?(e.set(t,V(t)),new Map(e)):null))}),[]);return(0,r.useEffect)((()=>{const t=o.current;if(e!==t){r(t);const i=e.map((e=>{const t=U(e);return t?(t.addEventListener("scroll",a,{passive:!0}),[t,V(t)]):null})).filter((e=>null!=e));n(i.length?new Map(i):null),o.current=e}return()=>{r(e),r(t)};function r(e){e.forEach((e=>{const t=U(e);null==t||t.removeEventListener("scroll",a)}))}}),[a,e]),(0,r.useMemo)((()=>e.length?t?Array.from(t.values()).reduce(((e,t)=>(0,i.WQ)(e,t)),m):X(e):m),[e,t])}(Se),Ye=ke(Ue),Xe=ke(Ue,[ce]),Ze=(0,i.WQ)(Fe,Ye),Ke=ve?P(ve,Fe):null,Qe=H&&Ke?v({active:H,collisionRect:Ke,droppableRects:re,droppableContainers:ee,pointerCoordinates:je}):null,Je=function(e,t){if(!e||0===e.length)return null;const[n]=e;return t?n[t]:n}(Qe,"id"),[et,tt]=(0,r.useState)(null),nt=function(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}(ye?Fe:(0,i.WQ)(Fe,Xe),null!=(s=null==et?void 0:et.rect)?s:null,ce),rt=(0,r.useCallback)(((e,t)=>{let{sensor:n,options:r}=t;if(null==W.current)return;const i=N.get(W.current);if(!i)return;const a=e.nativeEvent,s=new n({active:W.current,activeNode:i,event:a,options:r,context:de,onStart(e){const t=W.current;if(null==t)return;const n=N.get(t);if(!n)return;const{onDragStart:r}=K.current,i={active:{id:t,data:n.data,rect:B}};(0,o.unstable_batchedUpdates)((()=>{null==r||r(i),O(qe.Initializing),S({type:p.DragStart,initialCoordinates:e,active:t}),A({type:"onDragStart",event:i})}))},onMove(e){S({type:p.DragMove,coordinates:e})},onEnd:u(p.DragEnd),onCancel:u(p.DragCancel)});function u(e){return async function(){const{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=de.current;let s=null;if(t&&i){const{cancelDrop:o}=K.current;if(s={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===p.DragEnd&&"function"===typeof o){await Promise.resolve(o(s))&&(e=p.DragCancel)}}W.current=null,(0,o.unstable_batchedUpdates)((()=>{S({type:e}),O(qe.Uninitialized),tt(null),q(null),Z(null);const t=e===p.DragEnd?"onDragEnd":"onDragCancel";if(s){const e=K.current[t];null==e||e(s),A({type:t,event:s})}}))}}(0,o.unstable_batchedUpdates)((()=>{q(s),Z(e.nativeEvent)}))}),[N]),ot=(0,r.useCallback)(((e,t)=>(n,r)=>{const o=n.nativeEvent,i=N.get(r);if(null!==W.current||!i||o.dndKit||o.defaultPrevented)return;const a={active:i};!0===e(n,t.options,a)&&(o.dndKit={capturedBy:t.sensor},W.current=r,rt(n,t))}),[N,rt]),it=function(e,t){return(0,r.useMemo)((()=>e.reduce(((e,n)=>{const{sensor:r}=n;return[...e,...r.activators.map((e=>({eventName:e.eventName,handler:t(e.handler,n)})))]}),[])),[e,t])}(g,ot);!function(e){(0,r.useEffect)((()=>{if(!i.Sw)return;const t=e.map((e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()}));return()=>{for(const e of t)null==e||e()}}),e.map((e=>{let{sensor:t}=e;return t})))}(g),(0,i.Es)((()=>{ce&&C===qe.Initializing&&O(qe.Initialized)}),[ce,C]),(0,r.useEffect)((()=>{const{onDragMove:e}=K.current,{active:t,activatorEvent:n,collisions:r,over:i}=de.current;if(!t||!n)return;const a={active:t,activatorEvent:n,collisions:r,delta:{x:Ze.x,y:Ze.y},over:i};(0,o.unstable_batchedUpdates)((()=>{null==e||e(a),A({type:"onDragMove",event:a})}))}),[Ze.x,Ze.y]),(0,r.useEffect)((()=>{const{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=de.current;if(!e||null==W.current||!t||!i)return;const{onDragOver:a}=K.current,s=r.get(Je),u=s&&s.rect.current?{id:s.id,rect:s.rect.current,data:s.data,disabled:s.disabled}:null,l={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:u};(0,o.unstable_batchedUpdates)((()=>{tt(u),null==a||a(l),A({type:"onDragOver",event:l})}))}),[Je]),(0,i.Es)((()=>{de.current={activatorEvent:Y,active:H,activeNode:ae,collisionRect:Ke,collisions:Qe,droppableRects:re,draggableNodes:N,draggingNode:ge,draggingNodeRect:ve,droppableContainers:D,over:et,scrollableAncestors:Se,scrollAdjustedTranslate:Ze},B.current={initial:ve,translated:Ke}}),[H,ae,Qe,Ke,N,ge,ve,re,D,et,Se,Ze]),_e({...ue,delta:I,draggingRect:Ke,pointerCoordinates:je,scrollableAncestors:Se,scrollableAncestorRects:Re});const at=(0,r.useMemo)((()=>({active:H,activeNode:ae,activeNodeRect:ce,activatorEvent:Y,collisions:Qe,containerNodeRect:fe,dragOverlay:pe,draggableNodes:N,droppableContainers:D,droppableRects:re,over:et,measureDroppableContainers:oe,scrollableAncestors:Se,scrollableAncestorRects:Re,measuringConfiguration:te,measuringScheduled:ie,windowRect:we})),[H,ae,ce,Y,Qe,fe,pe,N,D,re,et,oe,Se,Re,te,ie,we]),st=(0,r.useMemo)((()=>({activatorEvent:Y,activators:it,active:H,activeNodeRect:ce,ariaDescribedById:{draggable:J},dispatch:S,draggableNodes:N,over:et,measureDroppableContainers:oe})),[Y,it,H,ce,S,J,N,et,oe]);return r.createElement(l.Provider,{value:E},r.createElement(ze.Provider,{value:st},r.createElement(Be.Provider,{value:at},r.createElement(Ge.Provider,{value:nt},d)),r.createElement($e,{disabled:!1===(null==c?void 0:c.restoreFocus)})),r.createElement(h,{...c,hiddenTextDescribedById:J}))})),Xe=(0,r.createContext)(null),Ze="button",Ke="Droppable";function Qe(e){let{id:t,data:n,disabled:o=!1,attributes:a}=e;const s=(0,i.YG)(Ke),{activators:u,activatorEvent:l,active:c,activeNodeRect:f,ariaDescribedById:d,draggableNodes:h,over:p}=(0,r.useContext)(ze),{role:g=Ze,roleDescription:v="draggable",tabIndex:y=0}=null!=a?a:{},m=(null==c?void 0:c.id)===t,b=(0,r.useContext)(m?Ge:Xe),[_,w]=(0,i.lk)(),[x,S]=(0,i.lk)(),A=function(e,t){return(0,r.useMemo)((()=>e.reduce(((e,n)=>{let{eventName:r,handler:o}=n;return e[r]=e=>{o(e,t)},e}),{})),[e,t])}(u,t),E=(0,i.YN)(n);(0,i.Es)((()=>(h.set(t,{id:t,key:s,node:_,activatorNode:x,data:E}),()=>{const e=h.get(t);e&&e.key===s&&h.delete(t)})),[h,t]);return{active:c,activatorEvent:l,activeNodeRect:f,attributes:(0,r.useMemo)((()=>({role:g,tabIndex:y,"aria-disabled":o,"aria-pressed":!(!m||g!==Ze)||void 0,"aria-roledescription":v,"aria-describedby":d.draggable})),[o,g,y,m,v,d.draggable]),isDragging:m,listeners:o?void 0:A,node:_,over:p,setNodeRef:w,setActivatorNodeRef:S,transform:b}}function Je(){return(0,r.useContext)(Be)}const et="Droppable",tt={timeout:25};function nt(e){let{data:t,disabled:n=!1,id:o,resizeObserverConfig:a}=e;const s=(0,i.YG)(et),{active:u,dispatch:l,over:c,measureDroppableContainers:f}=(0,r.useContext)(ze),d=(0,r.useRef)({disabled:n}),h=(0,r.useRef)(!1),g=(0,r.useRef)(null),v=(0,r.useRef)(null),{disabled:y,updateMeasurementsFor:m,timeout:b}={...tt,...a},_=(0,i.YN)(null!=m?m:o),w=Ce({callback:(0,r.useCallback)((()=>{h.current?(null!=v.current&&clearTimeout(v.current),v.current=setTimeout((()=>{f(Array.isArray(_.current)?_.current:[_.current]),v.current=null}),b)):h.current=!0}),[b]),disabled:y||!u}),x=(0,r.useCallback)(((e,t)=>{w&&(t&&(w.unobserve(t),h.current=!1),e&&w.observe(e))}),[w]),[S,A]=(0,i.lk)(x),E=(0,i.YN)(t);return(0,r.useEffect)((()=>{w&&S.current&&(w.disconnect(),h.current=!1,w.observe(S.current))}),[S,w]),(0,i.Es)((()=>(l({type:p.RegisterDroppable,element:{id:o,key:s,disabled:n,node:S,rect:g,data:E}}),()=>l({type:p.UnregisterDroppable,key:s,id:o}))),[o]),(0,r.useEffect)((()=>{n!==d.current.disabled&&(l({type:p.SetDroppableDisabled,id:o,key:s,disabled:n}),d.current.disabled=n)}),[o,s,n,l]),{active:u,rect:g,isOver:(null==c?void 0:c.id)===o,node:S,over:c,setNodeRef:A}}function rt(e){let{animation:t,children:n}=e;const[o,a]=(0,r.useState)(null),[s,u]=(0,r.useState)(null),l=(0,i.ZC)(n);return n||o||!l||a(l),(0,i.Es)((()=>{if(!s)return;const e=null==o?void 0:o.key,n=null==o?void 0:o.props.id;null!=e&&null!=n?Promise.resolve(t(n,s)).then((()=>{a(null)})):a(null)}),[t,o,s]),r.createElement(r.Fragment,null,n,o?(0,r.cloneElement)(o,{ref:u}):null)}const ot={x:0,y:0,scaleX:1,scaleY:1};function it(e){let{children:t}=e;return r.createElement(ze.Provider,{value:Ue},r.createElement(Ge.Provider,{value:ot},t))}const at={position:"fixed",touchAction:"none"},st=e=>(0,i.kx)(e)?"transform 250ms ease":void 0,ut=(0,r.forwardRef)(((e,t)=>{let{as:n,activatorEvent:o,adjustScale:a,children:s,className:u,rect:l,style:c,transform:f,transition:d=st}=e;if(!l)return null;const h=a?f:{...f,scaleX:1,scaleY:1},p={...at,width:l.width,height:l.height,top:l.top,left:l.left,transform:i.Ks.Transform.toString(h),transformOrigin:a&&o?_(o,l):void 0,transition:"function"===typeof d?d(o):d,...c};return r.createElement(n,{className:u,style:p,ref:t},s)})),lt=e=>t=>{let{active:n,dragOverlay:r}=t;const o={},{styles:i,className:a}=e;if(null!=i&&i.active)for(const[e,s]of Object.entries(i.active))void 0!==s&&(o[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,s));if(null!=i&&i.dragOverlay)for(const[e,s]of Object.entries(i.dragOverlay))void 0!==s&&r.node.style.setProperty(e,s);return null!=a&&a.active&&n.node.classList.add(a.active),null!=a&&a.dragOverlay&&r.node.classList.add(a.dragOverlay),function(){for(const[e,t]of Object.entries(o))n.node.style.setProperty(e,t);null!=a&&a.active&&n.node.classList.remove(a.active)}},ct={duration:250,easing:"ease",keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:i.Ks.Transform.toString(t)},{transform:i.Ks.Transform.toString(n)}]},sideEffects:lt({styles:{active:{opacity:"0"}}})};function ft(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:o}=e;return(0,i._q)(((e,a)=>{if(null===t)return;const s=n.get(e);if(!s)return;const u=s.node.current;if(!u)return;const l=Ne(a);if(!l)return;const{transform:c}=(0,i.zk)(a).getComputedStyle(a),f=N(c);if(!f)return;const d="function"===typeof t?t:function(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...ct,...e};return e=>{let{active:i,dragOverlay:a,transform:s,...u}=e;if(!t)return;const l={x:a.rect.left-i.rect.left,y:a.rect.top-i.rect.top},c={scaleX:1!==s.scaleX?i.rect.width*s.scaleX/a.rect.width:1,scaleY:1!==s.scaleY?i.rect.height*s.scaleY/a.rect.height:1},f={x:s.x-l.x,y:s.y-l.y,...c},d=o({...u,active:i,dragOverlay:a,transform:{initial:s,final:f}}),[h]=d,p=d[d.length-1];if(JSON.stringify(h)===JSON.stringify(p))return;const g=null==r?void 0:r({active:i,dragOverlay:a,...u}),v=a.node.animate(d,{duration:t,easing:n,fill:"forwards"});return new Promise((e=>{v.onfinish=()=>{null==g||g(),e()}}))}}(t);return Z(u,o.draggable.measure),d({active:{id:e,data:s.data,node:u,rect:o.draggable.measure(u)},draggableNodes:n,dragOverlay:{node:a,rect:o.dragOverlay.measure(l)},droppableContainers:r,measuringConfiguration:o,transform:f})}))}let dt=0;function ht(e){return(0,r.useMemo)((()=>{if(null!=e)return dt++,dt}),[e])}const pt=r.memo((e=>{let{adjustScale:t=!1,children:n,dropAnimation:o,style:i,transition:a,modifiers:s,wrapperElement:u="div",className:l,zIndex:c=999}=e;const{activatorEvent:f,active:d,activeNodeRect:h,containerNodeRect:p,draggableNodes:g,droppableContainers:v,dragOverlay:y,over:m,measuringConfiguration:b,scrollableAncestors:_,scrollableAncestorRects:w,windowRect:x}=Je(),S=(0,r.useContext)(Ge),A=ht(null==d?void 0:d.id),E=We(s,{activatorEvent:f,active:d,activeNodeRect:h,containerNodeRect:p,draggingNodeRect:y.rect,over:m,overlayNodeRect:y.rect,scrollableAncestors:_,scrollableAncestorRects:w,transform:S,windowRect:x}),C=Ee(h),R=ft({config:o,draggableNodes:g,droppableContainers:v,measuringConfiguration:b}),O=C?y.setRef:void 0;return r.createElement(it,null,r.createElement(rt,{animation:R},d&&A?r.createElement(ut,{key:A,id:d.id,ref:O,as:u,activatorEvent:f,adjustScale:t,className:l,transition:a,rect:C,style:{zIndex:c,...i},transform:E},n):null))}))},43627:(e,t,n)=>{"use strict";n.d(t,{_G:()=>h,be:()=>a,gB:()=>v,gl:()=>S,m$:()=>c,uU:()=>m});var r=n(96540),o=n(43375),i=n(74979);function a(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function s(e,t){return e.reduce(((e,n,r)=>{const o=t.get(n);return o&&(e[r]=o),e}),Array(e.length))}function u(e){return null!==e&&e>=0}const l={scaleX:1,scaleY:1},c=e=>{var t;let{rects:n,activeNodeRect:r,activeIndex:o,overIndex:i,index:a}=e;const s=null!=(t=n[o])?t:r;if(!s)return null;const u=function(e,t,n){const r=e[t],o=e[t-1],i=e[t+1];if(!r||!o&&!i)return 0;if(n<t)return o?r.left-(o.left+o.width):i.left-(r.left+r.width);return i?i.left-(r.left+r.width):r.left-(o.left+o.width)}(n,a,o);if(a===o){const e=n[i];return e?{x:o<i?e.left+e.width-(s.left+s.width):e.left-s.left,y:0,...l}:null}return a>o&&a<=i?{x:-s.width-u,y:0,...l}:a<o&&a>=i?{x:s.width+u,y:0,...l}:{x:0,y:0,...l}};const f=e=>{let{rects:t,activeIndex:n,overIndex:r,index:o}=e;const i=a(t,r,n),s=t[o],u=i[o];return u&&s?{x:u.left-s.left,y:u.top-s.top,scaleX:u.width/s.width,scaleY:u.height/s.height}:null},d={scaleX:1,scaleY:1},h=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:o,rects:i,overIndex:a}=e;const s=null!=(t=i[n])?t:r;if(!s)return null;if(o===n){const e=i[a];return e?{x:0,y:n<a?e.top+e.height-(s.top+s.height):e.top-s.top,...d}:null}const u=function(e,t,n){const r=e[t],o=e[t-1],i=e[t+1];if(!r)return 0;if(n<t)return o?r.top-(o.top+o.height):i?i.top-(r.top+r.height):0;return i?i.top-(r.top+r.height):o?r.top-(o.top+o.height):0}(i,o,n);return o>n&&o<=a?{x:0,y:-s.height-u,...d}:o<n&&o>=a?{x:0,y:s.height+u,...d}:{x:0,y:0,...d}};const p="Sortable",g=r.createContext({activeIndex:-1,containerId:p,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:f,disabled:{draggable:!1,droppable:!1}});function v(e){let{children:t,id:n,items:a,strategy:u=f,disabled:l=!1}=e;const{active:c,dragOverlay:d,droppableRects:h,over:v,measureDroppableContainers:y}=(0,o.fF)(),m=(0,i.YG)(p,n),b=Boolean(null!==d.rect),_=(0,r.useMemo)((()=>a.map((e=>"object"===typeof e&&"id"in e?e.id:e))),[a]),w=null!=c,x=c?_.indexOf(c.id):-1,S=v?_.indexOf(v.id):-1,A=(0,r.useRef)(_),E=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(_,A.current),C=-1!==S&&-1===x||E,R=function(e){return"boolean"===typeof e?{draggable:e,droppable:e}:e}(l);(0,i.Es)((()=>{E&&w&&y(_)}),[E,_,w,y]),(0,r.useEffect)((()=>{A.current=_}),[_]);const O=(0,r.useMemo)((()=>({activeIndex:x,containerId:m,disabled:R,disableTransforms:C,items:_,overIndex:S,useDragOverlay:b,sortedRects:s(_,h),strategy:u})),[x,m,R.draggable,R.droppable,C,_,S,h,b,u]);return r.createElement(g.Provider,{value:O},t)}const y=e=>{let{id:t,items:n,activeIndex:r,overIndex:o}=e;return a(n,r,o).indexOf(t)},m=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:o,items:i,newIndex:a,previousItems:s,previousContainerId:u,transition:l}=e;return!(!l||!r)&&((s===i||o!==a)&&(!!n||a!==o&&t===u))},b={duration:200,easing:"ease"},_="transform",w=i.Ks.Transition.toString({property:_,duration:0,easing:"linear"}),x={roleDescription:"sortable"};function S(e){let{animateLayoutChanges:t=m,attributes:n,disabled:a,data:s,getNewIndex:l=y,id:c,strategy:f,resizeObserverConfig:d,transition:h=b}=e;const{items:p,containerId:v,activeIndex:S,disabled:A,disableTransforms:E,sortedRects:C,overIndex:R,useDragOverlay:O,strategy:T}=(0,r.useContext)(g),k=function(e,t){var n,r;if("boolean"===typeof e)return{draggable:e,droppable:!1};return{draggable:null!=(n=null==e?void 0:e.draggable)?n:t.draggable,droppable:null!=(r=null==e?void 0:e.droppable)?r:t.droppable}}(a,A),M=p.indexOf(c),P=(0,r.useMemo)((()=>({sortable:{containerId:v,index:M,items:p},...s})),[v,s,M,p]),N=(0,r.useMemo)((()=>p.slice(p.indexOf(c))),[p,c]),{rect:I,node:L,isOver:D,setNodeRef:F}=(0,o.zM)({id:c,data:P,disabled:k.droppable,resizeObserverConfig:{updateMeasurementsFor:N,...d}}),{active:j,activatorEvent:U,activeNodeRect:z,attributes:B,setNodeRef:V,listeners:H,isDragging:$,over:W,setActivatorNodeRef:G,transform:q}=(0,o.PM)({id:c,data:P,attributes:{...x,...n},disabled:k.draggable}),Y=(0,i.jn)(F,V),X=Boolean(j),Z=X&&!E&&u(S)&&u(R),K=!O&&$,Q=K&&Z?q:null,J=Z?null!=Q?Q:(null!=f?f:T)({rects:C,activeNodeRect:z,activeIndex:S,overIndex:R,index:M}):null,ee=u(S)&&u(R)?l({id:c,items:p,activeIndex:S,overIndex:R}):M,te=null==j?void 0:j.id,ne=(0,r.useRef)({activeId:te,items:p,newIndex:ee,containerId:v}),re=p!==ne.current.items,oe=t({active:j,containerId:v,isDragging:$,isSorting:X,id:c,index:M,items:p,newIndex:ne.current.newIndex,previousItems:ne.current.items,previousContainerId:ne.current.containerId,transition:h,wasDragging:null!=ne.current.activeId}),ie=function(e){let{disabled:t,index:n,node:a,rect:s}=e;const[u,l]=(0,r.useState)(null),c=(0,r.useRef)(n);return(0,i.Es)((()=>{if(!t&&n!==c.current&&a.current){const e=s.current;if(e){const t=(0,o.Sj)(a.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&l(n)}}n!==c.current&&(c.current=n)}),[t,n,a,s]),(0,r.useEffect)((()=>{u&&l(null)}),[u]),u}({disabled:!oe,index:M,node:L,rect:I});return(0,r.useEffect)((()=>{X&&ne.current.newIndex!==ee&&(ne.current.newIndex=ee),v!==ne.current.containerId&&(ne.current.containerId=v),p!==ne.current.items&&(ne.current.items=p)}),[X,ee,v,p]),(0,r.useEffect)((()=>{if(te===ne.current.activeId)return;if(te&&!ne.current.activeId)return void(ne.current.activeId=te);const e=setTimeout((()=>{ne.current.activeId=te}),50);return()=>clearTimeout(e)}),[te]),{active:j,activeIndex:S,attributes:B,data:P,rect:I,index:M,newIndex:ee,items:p,isOver:D,isSorting:X,isDragging:$,listeners:H,node:L,overIndex:R,over:W,setNodeRef:Y,setActivatorNodeRef:G,setDroppableNodeRef:F,setDraggableNodeRef:V,transform:null!=ie?ie:J,transition:function(){if(ie||re&&ne.current.newIndex===M)return w;if(K&&!(0,i.kx)(U)||!h)return;if(X||oe)return i.Ks.Transition.toString({...h,property:_});return}()}}o.vL.Down,o.vL.Right,o.vL.Up,o.vL.Left},74979:(e,t,n)=>{"use strict";n.d(t,{$$:()=>g,Es:()=>h,KG:()=>y,Ks:()=>R,Ll:()=>s,Re:()=>A,Sw:()=>i,TW:()=>d,WQ:()=>S,YG:()=>w,YN:()=>v,ZC:()=>b,_q:()=>p,ag:()=>T,e_:()=>C,jn:()=>o,kx:()=>E,l6:()=>a,lk:()=>m,sb:()=>c,wz:()=>l,xZ:()=>f,zk:()=>u});var r=n(96540);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,r.useMemo)((()=>e=>{t.forEach((t=>t(e)))}),t)}const i="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement;function a(e){const t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function s(e){return"nodeType"in e}function u(e){var t,n;return e?a(e)?e:s(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function l(e){const{Document:t}=u(e);return e instanceof t}function c(e){return!a(e)&&e instanceof u(e).HTMLElement}function f(e){return e instanceof u(e).SVGElement}function d(e){return e?a(e)?e.document:s(e)?l(e)?e:c(e)||f(e)?e.ownerDocument:document:document:document}const h=i?r.useLayoutEffect:r.useEffect;function p(e){const t=(0,r.useRef)(e);return h((()=>{t.current=e})),(0,r.useCallback)((function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t.current?void 0:t.current(...n)}),[])}function g(){const e=(0,r.useRef)(null);return[(0,r.useCallback)(((t,n)=>{e.current=setInterval(t,n)}),[]),(0,r.useCallback)((()=>{null!==e.current&&(clearInterval(e.current),e.current=null)}),[])]}function v(e,t){void 0===t&&(t=[e]);const n=(0,r.useRef)(e);return h((()=>{n.current!==e&&(n.current=e)}),t),n}function y(e,t){const n=(0,r.useRef)();return(0,r.useMemo)((()=>{const t=e(n.current);return n.current=t,t}),[...t])}function m(e){const t=p(e),n=(0,r.useRef)(null),o=(0,r.useCallback)((e=>{e!==n.current&&(null==t||t(e,n.current)),n.current=e}),[]);return[n,o]}function b(e){const t=(0,r.useRef)();return(0,r.useEffect)((()=>{t.current=e}),[e]),t.current}let _={};function w(e,t){return(0,r.useMemo)((()=>{if(t)return t;const n=null==_[e]?0:_[e]+1;return _[e]=n,e+"-"+n}),[e,t])}function x(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce(((t,n)=>{const r=Object.entries(n);for(const[o,i]of r){const n=t[o];null!=n&&(t[o]=n+e*i)}return t}),{...t})}}const S=x(1),A=x(-1);function E(e){if(!e)return!1;const{KeyboardEvent:t}=u(e.target);return t&&e instanceof t}function C(e){if(function(e){if(!e)return!1;const{TouchEvent:t}=u(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return function(e){return"clientX"in e&&"clientY"in e}(e)?{x:e.clientX,y:e.clientY}:null}const R=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[R.Translate.toString(e),R.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),O="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function T(e){return e.matches(O)?e:e.querySelector(O)}},12009:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=n(96540).createContext(null)},70659:(e,t,n)=>{"use strict";n.d(t,{A:()=>ge});var r={};n.r(r),n.d(r,{a11yNotify:()=>oe,addFilter:()=>V,clearFilters:()=>$,removeFilter:()=>W,reset:()=>G,setCurrent:()=>q,setFilter:()=>Y,setResultsPerPage:()=>X,setSearchTerm:()=>Z,setSort:()=>K,trackAutocompleteClickThrough:()=>H,trackAutocompleteSuggestionClickThrough:()=>ie,trackClickThrough:()=>Q});var o=n(96540),i=n(58168);function a(e){return"/"===e.charAt(0)}function s(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const u=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],o=t&&t.split("/")||[],i=e&&a(e),u=t&&a(t),l=i||u;if(e&&a(e)?o=r:r.length&&(o.pop(),o=o.concat(r)),!o.length)return"/";if(o.length){var c=o[o.length-1];n="."===c||".."===c||""===c}else n=!1;for(var f=0,d=o.length;d>=0;d--){var h=o[d];"."===h?s(o,d):".."===h?(s(o,d),f++):f&&(s(o,d),f--)}if(!l)for(;f--;f)o.unshift("..");!l||""===o[0]||o[0]&&a(o[0])||o.unshift("");var p=o.join("/");return n&&"/"!==p.substr(-1)&&(p+="/"),p};var l=!0,c="Invariant failed";function f(e){return"/"===e.charAt(0)?e:"/"+e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function h(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function g(e,t,n,r){var o;"string"===typeof e?(o=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,i.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(a){throw a instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):a}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=u(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var y=!("undefined"===typeof window||!window.document||!window.document.createElement);function m(e,t){t(window.confirm(e))}var b="popstate",_="hashchange";function w(){try{return window.history.state||{}}catch(e){return{}}}function x(e){void 0===e&&(e={}),y||function(e,t){if(!e){if(l)throw new Error(c);var n="function"===typeof t?t():t,r=n?"".concat(c,": ").concat(n):c;throw new Error(r)}}(!1);var t=window.history,n=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history}(),r=!(-1===window.navigator.userAgent.indexOf("Trident")),o=e,a=o.forceRefresh,s=void 0!==a&&a,u=o.getUserConfirmation,x=void 0===u?m:u,S=o.keyLength,A=void 0===S?6:S,E=e.basename?h(f(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,i=o.pathname+o.search+o.hash;return E&&(i=d(i,E)),g(i,r,n)}function R(){return Math.random().toString(36).substr(2,A)}var O=v();function T(e){(0,i.A)(B,e),B.length=t.length,O.notifyListeners(B.location,B.action)}function k(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function M(){N(C(w()))}var P=!1;function N(e){if(P)P=!1,T();else{O.confirmTransitionTo(e,"POP",x,(function(t){t?T({action:"POP",location:e}):function(e){var t=B.location,n=L.indexOf(t.key);-1===n&&(n=0);var r=L.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(P=!0,F(o))}(e)}))}}var I=C(w()),L=[I.key];function D(e){return E+p(e)}function F(e){t.go(e)}var j=0;function U(e){1===(j+=e)&&1===e?(window.addEventListener(b,k),r&&window.addEventListener(_,M)):0===j&&(window.removeEventListener(b,k),r&&window.removeEventListener(_,M))}var z=!1;var B={length:t.length,action:"POP",location:I,createHref:D,push:function(e,r){var o="PUSH",i=g(e,r,R(),B.location);O.confirmTransitionTo(i,o,x,(function(e){if(e){var r=D(i),a=i.key,u=i.state;if(n)if(t.pushState({key:a,state:u},null,r),s)window.location.href=r;else{var l=L.indexOf(B.location.key),c=L.slice(0,l+1);c.push(i.key),L=c,T({action:o,location:i})}else window.location.href=r}}))},replace:function(e,r){var o="REPLACE",i=g(e,r,R(),B.location);O.confirmTransitionTo(i,o,x,(function(e){if(e){var r=D(i),a=i.key,u=i.state;if(n)if(t.replaceState({key:a,state:u},null,r),s)window.location.replace(r);else{var l=L.indexOf(B.location.key);-1!==l&&(L[l]=i.key),T({action:o,location:i})}else window.location.replace(r)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=O.setPrompt(e);return z||(U(1),z=!0),function(){return z&&(z=!1,U(-1)),t()}},listen:function(e){var t=O.appendListener(e);return U(1),function(){U(-1),t()}}};return B}function S(e,t,n){return Math.min(Math.max(e,t),n)}var A=n(46284),E=n.n(A);const C={encode:(e,t)=>function(e){return void 0!==e&&null!==e&&"number"===typeof e}(e)?`n_${e}_n`:function(e){return e&&"boolean"===typeof e}(e)?`b_${e}_b`:t(e),decode(e,t){if(/n_-?[\d\.]*_n/.test(e)){const t=e.substring(2,e.length-2);return Number(t)}if(/^b_(true|false)*_b$/.test(e)){return function(e){if("true"===e)return!0;if("false"===e)return!1;throw"Invalid type parsed as Boolean value"}(e.substring(2,e.length-2))}return t(e)}},R={parse:e=>E().parse(e,{ignoreQueryPrefix:!0,decoder:C.decode,arrayLimit:1e3}),stringify:e=>E().stringify(e,{encoder:C.encode})};function O(e){return Array.isArray(e)?e[e.length-1]:e}function T(e){return function(e){if(!function(e){return!isNaN(e)}(e))return;return parseInt(e,10)}(O(e))}function k(e){return e.filters}function M(e){return T(e.current)}function P(e){return O(e.q)}function N(e){const t=O(e["sort-field"]),n=O(e["sort-direction"]);return t?[t,n]:[]}function I(e){return T(e.size)}function L(e){return e.sort}class D{constructor(e={}){this.routingOptions={readUrl:e.readUrl||this.readUrl.bind(this),writeUrl:e.writeUrl||this.writeUrl.bind(this),urlToState:e.urlToState||this.urlToState.bind(this),stateToUrl:e.stateToUrl||this.stateToUrl.bind(this),routeChangeHandler:e.routeChangeHandler||this.routeChangeHandler.bind(this)},this.history="undefined"!==typeof window?x():function(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,r=t.initialEntries,o=void 0===r?["/"]:r,a=t.initialIndex,s=void 0===a?0:a,u=t.keyLength,l=void 0===u?6:u,c=v();function f(e){(0,i.A)(_,e),_.length=_.entries.length,c.notifyListeners(_.location,_.action)}function d(){return Math.random().toString(36).substr(2,l)}var h=S(s,0,o.length-1),y=o.map((function(e){return g(e,void 0,"string"===typeof e?d():e.key||d())})),m=p;function b(e){var t=S(_.index+e,0,_.entries.length-1),r=_.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?f({action:"POP",location:r,index:t}):f()}))}var _={length:y.length,action:"POP",location:y[h],index:h,entries:y,createHref:m,push:function(e,t){var r="PUSH",o=g(e,t,d(),_.location);c.confirmTransitionTo(o,r,n,(function(e){if(e){var t=_.index+1,n=_.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),f({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=g(e,t,d(),_.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(_.entries[_.index]=o,f({action:r,location:o}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=_.index+e;return t>=0&&t<_.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return _}(),this.lastPushSearchString=""}readUrl(){return this.history?this.history.location.search:""}writeUrl(e,{replaceUrl:t=!1}={}){(t?this.history.replace:this.history.push)(`?${e}`)}urlToState(e){return function(e){const t={current:M(e),filters:k(e),searchTerm:P(e),resultsPerPage:I(e),sortField:N(e)[0],sortDirection:N(e)[1],sortList:L(e)};return Object.keys(t).reduce(((e,n)=>{const r=t[n];return r&&(e[n]=r),e}),{})}(R.parse(e))}stateToUrl(e){return`${function(e){return R.stringify(function({searchTerm:e,current:t,filters:n,resultsPerPage:r,sortDirection:o,sortField:i,sortList:a}){const s={};return t>1&&(s.current=t),e&&(s.q=e),r&&(s.size=r),n&&n.length>0&&(s.filters=n),a&&a.length>0?s.sort=a:i&&(s["sort-field"]=i,s["sort-direction"]=o),s}(e))}(e)}`}getStateFromURL(){return this.routingOptions.urlToState(this.routingOptions.readUrl())}pushStateToURL(e,{replaceUrl:t=!1}={}){const n=this.routingOptions.stateToUrl(e);this.lastPushSearchString=n,this.routingOptions.writeUrl(n,{replaceUrl:t})}onURLStateChange(e){this.unlisten=this.routingOptions.routeChangeHandler((t=>{`?${this.lastPushSearchString}`!==t&&(this.lastPushSearchString="",e(this.routingOptions.urlToState(t)))}).bind(this))}routeChangeHandler(e){return this.history.listen((t=>{e(t.search)}))}tearDown(){this.unlisten()}}class F{constructor(){this.requestSequence=0,this.lastCompleted=0}next(){return++this.requestSequence}isOldRequest(e){return e<this.lastCompleted}completed(e){this.lastCompleted=e}}function j(e,t){let n;const r=function(){const r=arguments;clearTimeout(n),n=setTimeout((()=>{e.apply(null,r)}),t)};return r.cancel=()=>{n&&(clearTimeout(n),n=null)},r}class U{constructor(){this.debounceCache={}}runWithDebounce(e,t,n,...r){if(!e)return n(...r);const o=`${t}|${e.toString()}`;let i=this.debounceCache[o];i||(this.debounceCache[o]=j(n,e),i=this.debounceCache[o]),i(...r)}cancelByName(e){Object.entries(this.debounceCache).filter((([t])=>t.startsWith(`${e}|`))).forEach((([e,t])=>t.cancel()))}}U.debounce=(e,t)=>j(t,e);const z=U;var B=n(65433);function V(e,t,n="all"){this.debug&&console.log("Search UI: Action","addFilter",...arguments);const{filters:r}=this.state,o=r.find((t=>t.field===e&&t.type===n))||null,i=r.filter((t=>t.field!==e||t.type!==n))||[],a=(null===o||void 0===o?void 0:o.values)||[],s=a.find((e=>(0,B.doFilterValuesMatch)(e,t)))?a:a.concat(t);this._updateSearchResults({current:1,filters:[...i,{field:e,values:s,type:n}]});this.events.emit({type:"FacetFilterSelected",field:e,value:(0,B.serialiseFilter)(s),query:this.state.searchTerm})}function H(e,t=[]){this.debug&&console.log("Search UI: Action","trackAutocompleteClickThrough",...arguments);const{autocompletedResultsRequestId:n,searchTerm:r,autocompletedResults:o,current:i,resultsPerPage:a,totalResults:s,filters:u}=this.state,l=o.findIndex((t=>t._meta.id===e)),c=o[l],f=this.events;f.autocompleteResultClick({query:r,documentId:e,requestId:n,tags:t,result:c,resultIndex:l}),f.emit({type:"ResultSelected",documentId:e,query:r,position:l,origin:"autocomplete",tags:t,totalResults:s,filters:u,currentPage:i,resultsPerPage:a})}function $(e=[]){this.debug&&console.log("Search UI: Action","clearFilters",...arguments);const{filters:t}=this.state,n=t.filter((t=>{const n=t.field;return e.includes(n)}));this._updateSearchResults({current:1,filters:n})}function W(e,t,n){this.debug&&console.log("Search UI: Action","removeFilter",...arguments);const{filters:r}=this.state;let o=r;o=!t&&n?r.filter((t=>!(t.field===e&&t.type===n))):t?(0,B.removeSingleFilterValue)(r,e,t,n):r.filter((t=>t.field!==e)),this._updateSearchResults({current:1,filters:o});this.events.emit({type:"FacetFilterRemoved",field:e,value:t&&(0,B.serialiseFilter)([t]),query:this.state.searchTerm})}function G(){this.debug&&console.log("Search UI: Action","reset",...arguments),this._setState(this.startingState),this.trackUrlState&&this.URLManager.pushStateToURL(this.state)}function q(e){this.debug&&console.log("Search UI: Action","setCurrent",...arguments),this._updateSearchResults({current:e})}function Y(e,t,n="all"){this.debug&&console.log("Search UI: Action","setFilter",...arguments);let{filters:r}=this.state;r=r.filter((t=>t.field!==e||t.type!==n)),this._updateSearchResults({current:1,filters:[...r,{field:e,values:[t],type:n}]});this.events.emit({type:"FacetFilterSelected",field:e,value:t&&(0,B.serialiseFilter)([t]),query:this.state.searchTerm})}function X(e){this.debug&&console.log("Search UI: Action","setResultsPerPage",...arguments),this._updateSearchResults({current:1,resultsPerPage:e})}function Z(e,{autocompleteMinimumCharacters:t=0,autocompleteResults:n=!1,autocompleteSuggestions:r=!1,shouldClearFilters:o=!0,refresh:i=!0,debounce:a=0}={}){this.debug&&console.log("Search UI: Action","setSearchTerm",...arguments),this._setState({searchTerm:e}),i&&this.debounceManager.runWithDebounce(a,"_updateSearchResults",this._updateSearchResults,Object.assign({current:1},o&&{filters:[]})),(n||r)&&e.length>=t&&this.debounceManager.runWithDebounce(a,"_updateAutocomplete",this._updateAutocomplete,e,{autocompleteResults:n,autocompleteSuggestions:r})}function K(e,t){this.debug&&console.log("Search UI: Action","setSort",...arguments);const n={current:1,sortList:null,sortField:null,sortDirection:null};Array.isArray(e)?n.sortList=e:(n.sortField=e,n.sortDirection=t),this._updateSearchResults(n)}function Q(e,t=[]){this.debug&&console.log("Search UI: Action","trackClickThrough",...arguments);const{requestId:n,searchTerm:r,results:o,current:i,resultsPerPage:a,totalResults:s,filters:u}=this.state,l=o.findIndex((t=>t._meta.id===e)),c=o[l],f=this.events;this.events.resultClick({query:r,documentId:e,requestId:n,tags:t,result:c,page:i,resultsPerPage:a,resultIndexOnPage:l}),f.emit({type:"ResultSelected",documentId:e,query:r,origin:"results",position:l,tags:t,totalResults:s,filters:u,currentPage:i,resultsPerPage:a})}const J="search-ui-screen-reader-notifications",ee="undefined"!==typeof document,te=()=>{if(!ee)return null;let e=document.getElementById(J);return e||(e=document.createElement("div"),e.id=J,e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.margin="-1px",e.style.padding="0",e.style.border="0",e.style.overflow="hidden",e.style.clip="rect(0 0 0 0)",document.body.appendChild(e),e)},ne=e=>{const t=te();t&&(t.textContent=e)},re={searchResults:({start:e,end:t,totalResults:n,searchTerm:r})=>{let o=`Showing ${e} to ${t} results out of ${n}`;return r&&(o+=`, searching for "${r}".`),o}};function oe(e,t){if(!this.hasA11yNotifications)return;const n=this.a11yNotificationMessages[e];if(!n){const t=`Could not find corresponding message function in a11yNotificationMessages: "${e}"`;return void console.warn("Action","a11yNotify",t)}const r=n(t);ne(r),this.debug&&console.log("Search UI: Action","a11yNotify",{messageFunc:e,messageArgs:t,message:r})}function ie(e,t,n=[]){this.debug&&console.log("Search UI: Action","trackAutocompleteSuggestionClickThrough",...arguments);const{searchTerm:r}=this.state;this.events.emit({type:"AutocompleteSuggestionSelected",position:t,query:r,tags:n,suggestion:e})}function ae(e,t,n){if(n){if(t){const r=t[e].bind(t);return(...e)=>n(...e,r)}return n}return t&&t[e]?t[e].bind(t):()=>{throw`No ${e} handler provided and no Connector provided. You must configure one or the other.`}}const se=class{constructor({apiConnector:e,onSearch:t,onAutocomplete:n,onResultClick:r,onAutocompleteResultClick:o,plugins:i=[]}={}){this.search=ae("onSearch",e,t),this.autocomplete=ae("onAutocomplete",e,n),this.resultClick=ae("onResultClick",e,r),this.autocompleteResultClick=ae("onAutocompleteResultClick",e,o),this.plugins=i}emit(e){this.plugins.forEach((t=>{t.subscribe(e)}))}};var ue=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function le({current:e,filters:t,resultsPerPage:n,searchTerm:r,sortDirection:o,sortField:i,sortList:a}){return{current:e,filters:t,resultsPerPage:n,searchTerm:r,sortDirection:o,sortField:i,sortList:a}}const ce={current:1,filters:[],resultsPerPage:20,searchTerm:"",sortDirection:"",sortField:"",sortList:[],autocompletedResults:[],autocompletedResultsRequestId:"",autocompletedSuggestions:{},autocompletedSuggestionsRequestId:"",error:"",isLoading:!1,facets:{},requestId:"",results:[],resultSearchTerm:"",totalPages:0,totalResults:0,pagingStart:0,pagingEnd:0,wasSearched:!1,rawResponse:{}};function fe(e={},t={},n=[]){return Object.entries(e).reduce(((e,[r,o])=>(t[r]&&"function"===typeof t[r]&&!t[r]({filters:n})||(e[r]=o),e)),{})}const de=class{constructor({apiConnector:e,autocompleteQuery:t={},plugins:n=[],debug:o,initialState:i,onSearch:a,onAutocomplete:s,onResultClick:u,onAutocompleteResultClick:l,searchQuery:c={},trackUrlState:f=!0,routingOptions:d={},urlPushDebounceLength:h=500,hasA11yNotifications:p=!1,a11yNotificationMessages:g={},alwaysSearchOnInitialLoad:v=!1}){let y;this.state=ce,this._updateAutocomplete=(e,{autocompleteResults:t,autocompleteSuggestions:n}={})=>{const r=this.autocompleteRequestSequencer.next(),o=Object.assign(Object.assign({},t&&{results:this.autocompleteQuery.results||{}}),n&&{suggestions:this.autocompleteQuery.suggestions||{}});return this.events.autocomplete({searchTerm:e},o).then((e=>{this.autocompleteRequestSequencer.isOldRequest(r)||(this.autocompleteRequestSequencer.completed(r),this._setState(e))}))},this._updateSearchResults=(e,{skipPushToUrl:t=!1,replaceUrl:n=!1}={})=>{const{current:r,filters:o,resultsPerPage:i,searchTerm:a,sortDirection:s,sortField:u,sortList:l}=Object.assign(Object.assign({},this.state),e);this.debounceManager.cancelByName("_updateSearchResults"),this._setState({current:r,error:"",filters:o,resultsPerPage:i,searchTerm:a,sortDirection:s,sortField:u,sortList:l}),this._makeSearchRequest({skipPushToUrl:t,replaceUrl:n})},this._makeSearchRequest=z.debounce(0,(({skipPushToUrl:e,replaceUrl:t})=>{const{current:n,filters:r,resultsPerPage:o,searchTerm:i,sortDirection:a,sortField:s,sortList:u}=this.state;this._setState({isLoading:!0});const l=this.searchRequestSequencer.next(),c=this.searchQuery,{conditionalFacets:f}=c,d=ue(c,["conditionalFacets"]),h=Object.assign(Object.assign({},d),{facets:fe(this.searchQuery.facets,f,r)}),p=Object.assign(Object.assign({},le(this.state)),{filters:(0,B.mergeFilters)(r,this.searchQuery.filters)});return this.events.search(p,h).then((c=>{if(this.searchRequestSequencer.isOldRequest(l))return;this.searchRequestSequencer.completed(l);const{totalResults:f}=c;this.events.emit({type:"SearchQuery",filters:this.state.filters,query:this.state.searchTerm,currentPage:p.current,resultsPerPage:p.resultsPerPage,totalResults:f});const d=0===f?0:(n-1)*o+1,h=f<d+o?f:d+o-1;if(this._setState(Object.assign(Object.assign({isLoading:!1,resultSearchTerm:i,pagingStart:d,pagingEnd:h},c),{wasSearched:!0})),this.hasA11yNotifications){const e={start:d,end:h,totalResults:f,searchTerm:i};this.actions.a11yNotify("searchResults",e)}!e&&this.trackUrlState&&this.debounceManager.runWithDebounce(this.urlPushDebounceLength,"pushStateToURL",this.URLManager.pushStateToURL.bind(this.URLManager),{current:n,filters:r,resultsPerPage:o,searchTerm:i,sortDirection:a,sortField:s,sortList:u},{replaceUrl:t})}),(e=>{var t;"Invalid credentials"!==e.message?this._setState({error:`An unexpected error occurred: ${e.message}`}):this._setState(Object.assign({},(null===(t=this.apiConnector)||void 0===t?void 0:t.state)&&Object.assign({},this.apiConnector.state)))}))})),this.actions=Object.entries(r).reduce(((e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n.bind(this)})),{}),this.actions=Object.assign(Object.assign({},this.actions),(null===e||void 0===e?void 0:e.actions)&&Object.assign({},e.actions)),Object.assign(this,this.actions),this.events=new se({apiConnector:e,onSearch:a,onAutocomplete:s,onResultClick:u,onAutocompleteResultClick:l,plugins:n}),this.debug=o,this.debug&&(console.warn("Search UI Debugging is enabled. This should be turned off in production deployments."),"undefined"!==typeof window&&(window.searchUI=this)),this.autocompleteRequestSequencer=new F,this.searchRequestSequencer=new F,this.debounceManager=new z,this.autocompleteQuery=t,this.searchQuery=c,this.subscriptions=[],this.trackUrlState=f,this.urlPushDebounceLength=h,this.alwaysSearchOnInitialLoad=v,this.apiConnector=e,f?(this.URLManager=new D(d),y=this.URLManager.getStateFromURL(),this.URLManager.onURLStateChange((e=>{this._updateSearchResults(Object.assign(Object.assign({},ce),e),{skipPushToUrl:!0})}))):y={},this.hasA11yNotifications=p,this.hasA11yNotifications&&te(),this.a11yNotificationMessages=Object.assign(Object.assign({},re),g),this.startingState=Object.assign(Object.assign({},this.state),i);const m=le(Object.assign(Object.assign({},this.startingState),y));this.state=Object.assign(Object.assign(Object.assign({},this.state),(null===e||void 0===e?void 0:e.state)&&Object.assign({},e.state)),m),(m.searchTerm||m.filters.length>0||this.alwaysSearchOnInitialLoad)&&this._updateSearchResults(m,{replaceUrl:!0})}_setState(e){const t=Object.assign(Object.assign({},this.state),e);this.debug&&console.log("Search UI: State Update",e,t),this.state=t,this.subscriptions.forEach((e=>e(t)))}setSearchQuery(e){this.searchQuery=e,this._updateSearchResults({})}setAutocompleteQuery(e){this.autocompleteQuery=e}subscribeToStateChanges(e){this.subscriptions.push(e)}unsubscribeToStateChanges(e){this.subscriptions=this.subscriptions.filter((t=>t!==e))}tearDown(){this.subscriptions=[],this.URLManager&&this.URLManager.tearDown(),this.debounceManager.cancelByName("pushStateToURL")}getActions(){return this.actions}getState(){return Object.assign({},this.state)}};var he=n(12009);const pe={moreFilters:({visibleOptionsCount:e,showingAll:t})=>{let n=t?"All ":"";return n+=`${e} options shown.`,n}},ge=({children:e,config:t,driver:n})=>{const[r,i]=(0,o.useState)(null);if((0,o.useEffect)((()=>{const e=n||new de(Object.assign(Object.assign({},t),{a11yNotificationMessages:Object.assign(Object.assign({},pe),t.a11yNotificationMessages)}));return i(e),()=>{e.tearDown()}}),[]),(0,o.useEffect)((()=>{r&&r.setSearchQuery(t.searchQuery)}),[t.searchQuery]),(0,o.useEffect)((()=>{r&&r.setAutocompleteQuery(t.autocompleteQuery)}),[t.autocompleteQuery]),!r)return null;const a={driver:r};return o.createElement(he.A.Provider,{value:a},e)}},46963:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),o=n(12009),i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function a(e,t,n){return(n.mapContextToProps||t)(e,n)||{}}const s=function(e){if(!e)throw"withSearch requires a function to be provided which returns an object with at least one value.";return function(t){class n extends r.PureComponent{constructor(t,n){super(t),this.subscription=t=>{this.mounted&&this.setState((n=>a(Object.assign(Object.assign({},n),t),e,this.props)))},this.mounted=!1,this.state=Object.assign({},a(function(e){return Object.assign(Object.assign({},e.driver.getState()),e.driver.getActions())}(n),e,t))}componentDidMount(){this.mounted=!0,this.context.driver.subscribeToStateChanges(this.subscription)}componentWillUnmount(){this.mounted=!1,this.context.driver.unsubscribeToStateChanges(this.subscription)}render(){const e=i(this.props,[]);return r.createElement(t,Object.assign({},this.state,e))}}return n.contextType=o.A,n}};var u=n(5556),l=n.n(u);function c({mapContextToProps:e,children:t}){const n=s(e)((e=>t(e)));return r.createElement(n,null)}c.propTypes={mapContextToProps:l().func,children:l().func.isRequired};const f=c},81703:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(65433);const o=Object.assign({},r);var i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function a(e,t,n){const{disjunctiveFacets:r,disjunctiveFacetsAnalyticsTags:a}=t;r&&console.warn("search-ui-site-search-connector: disjunctiveFacets is not supported by Site Search"),a&&console.warn("search-ui-site-search-connector: disjunctiveFacetsAnalyticsTags is not supported by Site Search");const s=function(e){if(!e)return;const t=Object.entries(e).map((([e,t])=>{if("value"==t.type)return t.sort&&console.warn("search-ui-site-search-connector: Site Search does not support 'sort' on facets"),t.size&&console.warn("search-ui-site-search-connector: Site Search does not support 'size' on facets"),[e,t];console.warn(`search-ui-site-search-connector: Dropping ${e} facet, only value facets are supported in Site Search`)})).filter((e=>e)).map((([e])=>e));return t.length?t:void 0}(t.facets),u=function(e){if(e&&0!==Object.keys(e).length)return e.reduce(((e,t)=>{const n=t.field,r=t.values;if(e[n])return console.warn("search-ui-site-search-connector: More than one filter found for a single field"),e;if(t.type&&"all"!==t.type&&"any"!==t.type)return console.warn(`search-ui-site-search-connector: Unsupported filter type "${t.type}" found, only "all" and "any" are currently supported`),e;if(void 0!==r.find((e=>"object"===typeof e))){if(r.length>1)return console.warn("search-ui-site-search-connector: Cannot apply more than 1 none-value filters to a single field"),e;const t=r[0];if(o.isFilterValueRange(t)){const{name:r}=t,o=i(t,["name"]);return e[n]=Object.assign({type:"range"},o),e}return e}return e[n]=Object.assign(Object.assign({},"any"===t.type?{}:{type:"and"}),{values:r}),e}),{})}(void 0!==t.filters?t.filters:e.filters),l=void 0!==t.current?t.current:e.current,c=void 0!==t.resultsPerPage?t.resultsPerPage:e.resultsPerPage,f=void 0!==t.sortDirection?t.sortDirection:e.sortDirection,d=void 0!==t.sortField?t.sortField:e.sortField,h=void 0!==t.sortList?t.sortList:e.sortList,[p,g]=(v=t.result_fields)?[Object.keys(v),Object.entries(v).reduce(((e,[t,n])=>n.snippet?Object.assign(Object.assign({},e),{[t]:n.snippet}):e),{})]:[];var v;const y=(m=t.search_fields)?Object.keys(m):[];var m;const b=e.searchTerm;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},c&&{per_page:c}),l&&{page:l}),f&&{sort_direction:{[n]:f}}),d&&{sort_field:{[n]:d}}),h&&{sort_list:{[n]:h}}),u&&{filters:{[n]:u}}),s&&{facets:{[n]:s}}),p&&{fetch_fields:{[n]:p}}),g&&{highlight_fields:{[n]:g}}),y&&!!y.length&&{search_fields:{[n]:y}}),{q:b})}var s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};const u=(e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n});function l(e,t){const n=function(e,t){return e[t].map((e=>{const{highlight:t,sort:n}=e,r=s(e,["highlight","sort"]),o=Object.entries(r).filter((([e])=>!e.startsWith("_"))).map((([e,t])=>{return[e,(n=t,{raw:n})];var n})).reduce(u,{});return Object.entries(t).forEach((([e,t])=>{o[e].snippet=t})),o}))}(e.records,t),r=e.info[t].num_pages,o=e.info[t].total_result_count,i=(a=e.info[t]).facets?Object.entries(a.facets).map((([e,t])=>[e,[{field:e,data:Object.entries(t).map((([e,t])=>({value:e,count:t}))),type:"value"}]])).reduce(u,{}):{};var a;return Object.assign({rawResponse:e,results:n,totalPages:r,totalResults:o,requestId:""},Object.keys(i).length>0&&{facets:i})}var c=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(t){i(t)}}function s(e){try{u(r.throw(e))}catch(t){i(t)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};function f(e,t,n,r){return c(this,void 0,void 0,(function*(){const o=new Headers({"Content-Type":"application/json"}),i=yield fetch(`https://search-api.swiftype.com/api/v1/public/${n}`,{method:t,headers:o,body:JSON.stringify(Object.assign({engine_key:e},r)),credentials:"include"});let a;try{a=yield i.json()}catch(s){}if(i.status>=200&&i.status<300)return a;{const e=a&&a.errors&&Object.entries(a.errors).length>0?JSON.stringify(a.errors):i.status;throw new Error(`${e}`)}}))}var d=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(t){i(t)}}function s(e){try{u(r.throw(e))}catch(t){i(t)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};function h(e,t,n){const r=Object.entries(Object.assign({engine_key:e},n)).map((([e,t])=>`${e}=${encodeURIComponent(t)}`)).join("&");return fetch(`https://search-api.swiftype.com/api/v1/public/${t}?${r}`,{method:"GET",credentials:"include"})}const p=class{constructor({documentType:e,engineKey:t,beforeSearchCall:n=((e,t)=>t(e)),beforeAutocompleteResultsCall:r=((e,t)=>t(e))}){this.documentType=e,this.engineKey=t,this.beforeSearchCall=n,this.beforeAutocompleteResultsCall=r,this.request=f.bind(this,t),this._get=h.bind(this,t)}onResultClick({query:e,documentId:t,tags:n}){n&&n.length>0&&console.warn("search-ui-site-search-connector: Site Search does not support tags on click"),this._get("analytics/pc",{t:(new Date).getTime(),q:e,doc_id:t})}onAutocompleteResultClick({query:e,documentId:t,tags:n}){n&&console.warn("search-ui-site-search-connector: Site Search does not support tags on autocompleteClick"),this._get("analytics/pas",{t:(new Date).getTime(),q:e,doc_id:t})}onSearch(e,t){const n=a(e,t,this.documentType);return this.beforeSearchCall(n,(e=>this.request("POST","engines/search.json",e).then((e=>l(e,this.documentType)))))}onAutocomplete({searchTerm:e},t){return d(this,void 0,void 0,(function*(){if(t.results){const n=a({searchTerm:e},t.results,this.documentType);return this.beforeAutocompleteResultsCall(n,(e=>this.request("POST","engines/suggest.json",e).then((e=>({autocompletedResults:l(e,this.documentType).results})))))}t.suggestions&&console.warn("search-ui-site-search-connector: Site Search does support query suggestions on autocomplete")}))}}},65433:(e,t,n)=>{"use strict";n.r(t),n.d(t,{doFilterValuesMatch:()=>l,findFilterValues:()=>a,isFilterValueRange:()=>f,markSelectedFacetValuesFromFilters:()=>u,mergeFilters:()=>c,removeSingleFilterValue:()=>s,serialiseFilter:()=>d});var r=n(62303),o=n.n(r),i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function a(e,t,n){const r=e.find((e=>e.field===t&&e.type===n));return r?r.values:[]}function s(e,t,n,r){return e.reduce(((e,o)=>{const{field:a,values:s,type:u}=o,c=i(o,["field","values","type"]);if(a===t&&(!r||u===r)){const t=s.filter((e=>!l(e,n)));return t.length>0?e.concat(Object.assign({field:a,values:t,type:u},c)):e}return e.concat(o)}),[])}function u(e,t,n,r){const o=e.data,i=a(t,n,r)||[];return Object.assign(Object.assign({},e),{data:o.map((e=>Object.assign(Object.assign({},e),{selected:i.some((t=>l(t,e.value)))})))})}function l(e,t){return!!(e&&e.name&&t&&t.name&&e.name===t.name)||o()(e,t,{strict:!0})}function c(e,t){return t?t.reduce(((e,t)=>e.find((e=>e.type===t.type&&e.field===t.field))?e:[...e,t]),e):e}function f(e){return"object"===typeof e&&void 0!==e.name}const d=e=>e.reduce(((e,t)=>(f(t)?e.push(t.name):e.push(t.toString()),e)),[]).join(",")},62303:(e,t,n)=>{var r=n(1189),o=n(47244),i=n(37653),a=n(14035),s=n(71589),u=n(62120),l=Date.prototype.getTime;function c(e,t,n){var h=n||{};return!!(h.strict?i(e,t):e===t)||(!e||!t||"object"!==typeof e&&"object"!==typeof t?h.strict?i(e,t):e==t:function(e,t,n){var i,h;if(typeof e!==typeof t)return!1;if(f(e)||f(t))return!1;if(e.prototype!==t.prototype)return!1;if(o(e)!==o(t))return!1;var p=a(e),g=a(t);if(p!==g)return!1;if(p||g)return e.source===t.source&&s(e)===s(t);if(u(e)&&u(t))return l.call(e)===l.call(t);var v=d(e),y=d(t);if(v!==y)return!1;if(v||y){if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}if(typeof e!==typeof t)return!1;try{var m=r(e),b=r(t)}catch(_){return!1}if(m.length!==b.length)return!1;for(m.sort(),b.sort(),i=m.length-1;i>=0;i--)if(m[i]!=b[i])return!1;for(i=m.length-1;i>=0;i--)if(!c(e[h=m[i]],t[h],n))return!1;return!0}(e,t,h))}function f(e){return null===e||void 0===e}function d(e){return!(!e||"object"!==typeof e||"number"!==typeof e.length)&&("function"===typeof e.copy&&"function"===typeof e.slice&&!(e.length>0&&"number"!==typeof e[0]))}e.exports=c},10004:e=>{"use strict";var t=String.prototype.replace,n=/%20/g,r="RFC1738",o="RFC3986";e.exports={default:o,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:r,RFC3986:o}},46284:(e,t,n)=>{"use strict";var r=n(51809),o=n(30079),i=n(10004);e.exports={formats:i,parse:o,stringify:r}},30079:(e,t,n)=>{"use strict";var r=n(37029),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},u=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},l=function(e,t,n,r){if(e){var i=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(i),l=s?i.slice(0,s.index):i,c=[];if(l){if(!n.plainObjects&&o.call(Object.prototype,l)&&!n.allowPrototypes)return;c.push(l)}for(var f=0;n.depth>0&&null!==(s=a.exec(i))&&f<n.depth;){if(f+=1,!n.plainObjects&&o.call(Object.prototype,s[1].slice(1,-1))&&!n.allowPrototypes)return;c.push(s[1])}return s&&c.push("["+i.slice(s.index)+"]"),function(e,t,n,r){for(var o=r?t:u(t,n),i=e.length-1;i>=0;--i){var a,s=e[i];if("[]"===s&&n.parseArrays)a=[].concat(o);else{a=n.plainObjects?Object.create(null):{};var l="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(l,10);n.parseArrays||""!==l?!isNaN(c)&&s!==l&&String(c)===l&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(a=[])[c]=o:"__proto__"!==l&&(a[l]=o):a={0:o}}o=a}return o}(c,t,n,r)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!==typeof e.decoder)throw new TypeError("Decoder has to be a function.");if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t="undefined"===typeof e.charset?a.charset:e.charset;return{allowDots:"undefined"===typeof e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"===typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"===typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"===typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"===typeof e.comma?e.comma:a.comma,decoder:"function"===typeof e.decoder?e.decoder:a.decoder,delimiter:"string"===typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"===typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"===typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"===typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"===typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null===e||"undefined"===typeof e)return n.plainObjects?Object.create(null):{};for(var c="string"===typeof e?function(e,t){var n,l={__proto__:null},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,f=t.parameterLimit===1/0?void 0:t.parameterLimit,d=c.split(t.delimiter,f),h=-1,p=t.charset;if(t.charsetSentinel)for(n=0;n<d.length;++n)0===d[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===d[n]?p="utf-8":"utf8=%26%2310003%3B"===d[n]&&(p="iso-8859-1"),h=n,n=d.length);for(n=0;n<d.length;++n)if(n!==h){var g,v,y=d[n],m=y.indexOf("]="),b=-1===m?y.indexOf("="):m+1;-1===b?(g=t.decoder(y,a.decoder,p,"key"),v=t.strictNullHandling?null:""):(g=t.decoder(y.slice(0,b),a.decoder,p,"key"),v=r.maybeMap(u(y.slice(b+1),t),(function(e){return t.decoder(e,a.decoder,p,"value")}))),v&&t.interpretNumericEntities&&"iso-8859-1"===p&&(v=s(v)),y.indexOf("[]=")>-1&&(v=i(v)?[v]:v),o.call(l,g)?l[g]=r.combine(l[g],v):l[g]=v}return l}(e,n):e,f=n.plainObjects?Object.create(null):{},d=Object.keys(c),h=0;h<d.length;++h){var p=d[h],g=l(p,c[p],n,"string"===typeof e);f=r.merge(f,g,n)}return!0===n.allowSparse?f:r.compact(f)}},51809:(e,t,n)=>{"use strict";var r=n(920),o=n(37029),i=n(10004),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,l=Array.prototype.push,c=function(e,t){l.apply(e,u(t)?t:[t])},f=Date.prototype.toISOString,d=i.default,h={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:o.encode,encodeValuesOnly:!1,format:d,formatter:i.formatters[d],indices:!1,serializeDate:function(e){return f.call(e)},skipNulls:!1,strictNullHandling:!1},p={},g=function e(t,n,i,a,s,l,f,d,g,v,y,m,b,_,w,x){for(var S,A=t,E=x,C=0,R=!1;void 0!==(E=E.get(p))&&!R;){var O=E.get(t);if(C+=1,"undefined"!==typeof O){if(O===C)throw new RangeError("Cyclic object value");R=!0}"undefined"===typeof E.get(p)&&(C=0)}if("function"===typeof d?A=d(n,A):A instanceof Date?A=y(A):"comma"===i&&u(A)&&(A=o.maybeMap(A,(function(e){return e instanceof Date?y(e):e}))),null===A){if(s)return f&&!_?f(n,h.encoder,w,"key",m):n;A=""}if("string"===typeof(S=A)||"number"===typeof S||"boolean"===typeof S||"symbol"===typeof S||"bigint"===typeof S||o.isBuffer(A))return f?[b(_?n:f(n,h.encoder,w,"key",m))+"="+b(f(A,h.encoder,w,"value",m))]:[b(n)+"="+b(String(A))];var T,k=[];if("undefined"===typeof A)return k;if("comma"===i&&u(A))_&&f&&(A=o.maybeMap(A,f)),T=[{value:A.length>0?A.join(",")||null:void 0}];else if(u(d))T=d;else{var M=Object.keys(A);T=g?M.sort(g):M}for(var P=a&&u(A)&&1===A.length?n+"[]":n,N=0;N<T.length;++N){var I=T[N],L="object"===typeof I&&"undefined"!==typeof I.value?I.value:A[I];if(!l||null!==L){var D=u(A)?"function"===typeof i?i(P,I):P:P+(v?"."+I:"["+I+"]");x.set(t,C);var F=r();F.set(p,x),c(k,e(L,D,i,a,s,l,"comma"===i&&_&&u(A)?null:f,d,g,v,y,m,b,_,w,F))}}return k};e.exports=function(e,t){var n,o=e,l=function(e){if(!e)return h;if(null!==e.encoder&&"undefined"!==typeof e.encoder&&"function"!==typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||h.charset;if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=i.default;if("undefined"!==typeof e.format){if(!a.call(i.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var r=i.formatters[n],o=h.filter;return("function"===typeof e.filter||u(e.filter))&&(o=e.filter),{addQueryPrefix:"boolean"===typeof e.addQueryPrefix?e.addQueryPrefix:h.addQueryPrefix,allowDots:"undefined"===typeof e.allowDots?h.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:h.charsetSentinel,delimiter:"undefined"===typeof e.delimiter?h.delimiter:e.delimiter,encode:"boolean"===typeof e.encode?e.encode:h.encode,encoder:"function"===typeof e.encoder?e.encoder:h.encoder,encodeValuesOnly:"boolean"===typeof e.encodeValuesOnly?e.encodeValuesOnly:h.encodeValuesOnly,filter:o,format:n,formatter:r,serializeDate:"function"===typeof e.serializeDate?e.serializeDate:h.serializeDate,skipNulls:"boolean"===typeof e.skipNulls?e.skipNulls:h.skipNulls,sort:"function"===typeof e.sort?e.sort:null,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:h.strictNullHandling}}(t);"function"===typeof l.filter?o=(0,l.filter)("",o):u(l.filter)&&(n=l.filter);var f,d=[];if("object"!==typeof o||null===o)return"";f=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var p=s[f];if(t&&"commaRoundTrip"in t&&"boolean"!==typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var v="comma"===p&&t&&t.commaRoundTrip;n||(n=Object.keys(o)),l.sort&&n.sort(l.sort);for(var y=r(),m=0;m<n.length;++m){var b=n[m];l.skipNulls&&null===o[b]||c(d,g(o[b],b,p,v,l.strictNullHandling,l.skipNulls,l.encode?l.encoder:null,l.filter,l.sort,l.allowDots,l.serializeDate,l.format,l.formatter,l.encodeValuesOnly,l.charset,y))}var _=d.join(l.delimiter),w=!0===l.addQueryPrefix?"?":"";return l.charsetSentinel&&("iso-8859-1"===l.charset?w+="utf8=%26%2310003%3B&":w+="utf8=%E2%9C%93&"),_.length>0?w+_:""}},37029:(e,t,n)=>{"use strict";var r=n(10004),o=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)"undefined"!==typeof e[r]&&(n[r]=e[r]);return n};e.exports={arrayToObject:s,assign:function(e,t){return Object.keys(t).reduce((function(e,n){return e[n]=t[n],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],r=0;r<t.length;++r)for(var o=t[r],a=o.obj[o.prop],s=Object.keys(a),u=0;u<s.length;++u){var l=s[u],c=a[l];"object"===typeof c&&null!==c&&-1===n.indexOf(c)&&(t.push({obj:a,prop:l}),n.push(c))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],o=0;o<n.length;++o)"undefined"!==typeof n[o]&&r.push(n[o]);t.obj[t.prop]=r}}}(t),e},decode:function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(o){return r}},encode:function(e,t,n,o,i){if(0===e.length)return e;var s=e;if("symbol"===typeof e?s=Symbol.prototype.toString.call(e):"string"!==typeof e&&(s=String(e)),"iso-8859-1"===n)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var u="",l=0;l<s.length;++l){var c=s.charCodeAt(l);45===c||46===c||95===c||126===c||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===r.RFC1738&&(40===c||41===c)?u+=s.charAt(l):c<128?u+=a[c]:c<2048?u+=a[192|c>>6]+a[128|63&c]:c<55296||c>=57344?u+=a[224|c>>12]+a[128|c>>6&63]+a[128|63&c]:(l+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(l)),u+=a[240|c>>18]+a[128|c>>12&63]+a[128|c>>6&63]+a[128|63&c])}return u},isBuffer:function(e){return!(!e||"object"!==typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var n=[],r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)},merge:function e(t,n,r){if(!n)return t;if("object"!==typeof n){if(i(t))t.push(n);else{if(!t||"object"!==typeof t)return[t,n];(r&&(r.plainObjects||r.allowPrototypes)||!o.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!==typeof t)return[t].concat(n);var a=t;return i(t)&&!i(n)&&(a=s(t,r)),i(t)&&i(n)?(n.forEach((function(n,i){if(o.call(t,i)){var a=t[i];a&&"object"===typeof a&&n&&"object"===typeof n?t[i]=e(a,n,r):t.push(n)}else t[i]=n})),t):Object.keys(n).reduce((function(t,i){var a=n[i];return o.call(t,i)?t[i]=e(t[i],a,r):t[i]=a,t}),a)}}},84300:(e,t,n)=>{"use strict";n.d(t,{A:()=>oe});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(r){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),o=Math.abs,i=String.fromCharCode,a=Object.assign;function s(e){return e.trim()}function u(e,t,n){return e.replace(t,n)}function l(e,t){return e.indexOf(t)}function c(e,t){return 0|e.charCodeAt(t)}function f(e,t,n){return e.slice(t,n)}function d(e){return e.length}function h(e){return e.length}function p(e,t){return t.push(e),e}var g=1,v=1,y=0,m=0,b=0,_="";function w(e,t,n,r,o,i,a){return{value:e,root:t,parent:n,type:r,props:o,children:i,line:g,column:v,length:a,return:""}}function x(e,t){return a(w("",null,null,"",null,null,0),e,{length:-e.length},t)}function S(){return b=m>0?c(_,--m):0,v--,10===b&&(v=1,g--),b}function A(){return b=m<y?c(_,m++):0,v++,10===b&&(v=1,g++),b}function E(){return c(_,m)}function C(){return m}function R(e,t){return f(_,e,t)}function O(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function T(e){return g=v=1,y=d(_=e),m=0,[]}function k(e){return _="",e}function M(e){return s(R(m-1,I(91===e?e+2:40===e?e+1:e)))}function P(e){for(;(b=E())&&b<33;)A();return O(e)>2||O(b)>3?"":" "}function N(e,t){for(;--t&&A()&&!(b<48||b>102||b>57&&b<65||b>70&&b<97););return R(e,C()+(t<6&&32==E()&&32==A()))}function I(e){for(;A();)switch(b){case e:return m;case 34:case 39:34!==e&&39!==e&&I(b);break;case 40:41===e&&I(e);break;case 92:A()}return m}function L(e,t){for(;A()&&e+b!==57&&(e+b!==84||47!==E()););return"/*"+R(t,m-1)+"*"+i(47===e?e:A())}function D(e){for(;!O(E());)A();return R(e,m)}var F="-ms-",j="-moz-",U="-webkit-",z="comm",B="rule",V="decl",H="@keyframes";function $(e,t){for(var n="",r=h(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function W(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case V:return e.return=e.return||e.value;case z:return"";case H:return e.return=e.value+"{"+$(e.children,r)+"}";case B:e.value=e.props.join(",")}return d(n=$(e.children,r))?e.return=e.value+"{"+n+"}":""}function G(e){return k(q("",null,null,null,[""],e=T(e),0,[0],e))}function q(e,t,n,r,o,a,s,f,h){for(var g=0,v=0,y=s,m=0,b=0,_=0,w=1,x=1,R=1,O=0,T="",k=o,I=a,F=r,j=T;x;)switch(_=O,O=A()){case 40:if(108!=_&&58==c(j,y-1)){-1!=l(j+=u(M(O),"&","&\f"),"&\f")&&(R=-1);break}case 34:case 39:case 91:j+=M(O);break;case 9:case 10:case 13:case 32:j+=P(_);break;case 92:j+=N(C()-1,7);continue;case 47:switch(E()){case 42:case 47:p(X(L(A(),C()),t,n),h);break;default:j+="/"}break;case 123*w:f[g++]=d(j)*R;case 125*w:case 59:case 0:switch(O){case 0:case 125:x=0;case 59+v:-1==R&&(j=u(j,/\f/g,"")),b>0&&d(j)-y&&p(b>32?Z(j+";",r,n,y-1):Z(u(j," ","")+";",r,n,y-2),h);break;case 59:j+=";";default:if(p(F=Y(j,t,n,g,v,o,f,T,k=[],I=[],y),a),123===O)if(0===v)q(j,t,F,F,k,a,y,f,I);else switch(99===m&&110===c(j,3)?100:m){case 100:case 108:case 109:case 115:q(e,F,F,r&&p(Y(e,F,F,0,0,o,f,T,o,k=[],y),I),o,I,y,f,r?k:I);break;default:q(j,F,F,F,[""],I,0,f,I)}}g=v=b=0,w=R=1,T=j="",y=s;break;case 58:y=1+d(j),b=_;default:if(w<1)if(123==O)--w;else if(125==O&&0==w++&&125==S())continue;switch(j+=i(O),O*w){case 38:R=v>0?1:(j+="\f",-1);break;case 44:f[g++]=(d(j)-1)*R,R=1;break;case 64:45===E()&&(j+=M(A())),m=E(),v=y=d(T=j+=D(C())),O++;break;case 45:45===_&&2==d(j)&&(w=0)}}return a}function Y(e,t,n,r,i,a,l,c,d,p,g){for(var v=i-1,y=0===i?a:[""],m=h(y),b=0,_=0,x=0;b<r;++b)for(var S=0,A=f(e,v+1,v=o(_=l[b])),E=e;S<m;++S)(E=s(_>0?y[S]+" "+A:u(A,/&\f/g,y[S])))&&(d[x++]=E);return w(e,t,n,0===i?B:c,d,p,g)}function X(e,t,n){return w(e,t,n,z,i(b),f(e,2,-2),0)}function Z(e,t,n,r){return w(e,t,n,V,f(e,0,r),f(e,r+1,-1),r)}var K=function(e,t,n){for(var r=0,o=0;r=o,o=E(),38===r&&12===o&&(t[n]=1),!O(o);)A();return R(e,m)},Q=function(e,t){return k(function(e,t){var n=-1,r=44;do{switch(O(r)){case 0:38===r&&12===E()&&(t[n]=1),e[n]+=K(m-1,t,n);break;case 2:e[n]+=M(r);break;case 4:if(44===r){e[++n]=58===E()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=i(r)}}while(r=A());return e}(T(e),t))},J=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var o=[],i=Q(t,o),a=n.props,s=0,u=0;s<i.length;s++)for(var l=0;l<a.length;l++,u++)e.props[u]=o[s]?i[s].replace(/&\f/g,a[l]):a[l]+" "+i[s]}}},te=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function ne(e,t){switch(function(e,t){return 45^c(e,0)?(((t<<2^c(e,0))<<2^c(e,1))<<2^c(e,2))<<2^c(e,3):0}(e,t)){case 5103:return U+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return U+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return U+e+j+e+F+e+e;case 6828:case 4268:return U+e+F+e+e;case 6165:return U+e+F+"flex-"+e+e;case 5187:return U+e+u(e,/(\w+).+(:[^]+)/,U+"box-$1$2"+F+"flex-$1$2")+e;case 5443:return U+e+F+"flex-item-"+u(e,/flex-|-self/,"")+e;case 4675:return U+e+F+"flex-line-pack"+u(e,/align-content|flex-|-self/,"")+e;case 5548:return U+e+F+u(e,"shrink","negative")+e;case 5292:return U+e+F+u(e,"basis","preferred-size")+e;case 6060:return U+"box-"+u(e,"-grow","")+U+e+F+u(e,"grow","positive")+e;case 4554:return U+u(e,/([^-])(transform)/g,"$1"+U+"$2")+e;case 6187:return u(u(u(e,/(zoom-|grab)/,U+"$1"),/(image-set)/,U+"$1"),e,"")+e;case 5495:case 3959:return u(e,/(image-set\([^]*)/,U+"$1$`$1");case 4968:return u(u(e,/(.+:)(flex-)?(.*)/,U+"box-pack:$3"+F+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+U+e+e;case 4095:case 3583:case 4068:case 2532:return u(e,/(.+)-inline(.+)/,U+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(d(e)-1-t>6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return u(e,/(.+:)(.+)-([^]+)/,"$1"+U+"$2-$3$1"+j+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~l(e,"stretch")?ne(u(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,d(e)-3-(~l(e,"!important")&&10))){case 107:return u(e,":",":"+U)+e;case 101:return u(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+U+(45===c(e,14)?"inline-":"")+"box$3$1"+U+"$2$3$1"+F+"$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return U+e+F+u(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return U+e+F+u(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return U+e+F+u(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return U+e+F+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case V:e.return=ne(e.value,e.length);break;case H:return $([x(e,{value:u(e.value,"@","@"+U)})],r);case B:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return $([x(e,{props:[u(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return $([x(e,{props:[u(t,/:(plac\w+)/,":"+U+"input-$1")]}),x(e,{props:[u(t,/:(plac\w+)/,":-moz-$1")]}),x(e,{props:[u(t,/:(plac\w+)/,F+"input-$1")]})],r)}return""}))}}],oe=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o=e.stylisPlugins||re;var i,a,s={},u=[];i=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)s[t[n]]=!0;u.push(e)}));var l,c,f=[W,(c=function(e){l.insert(e)},function(e){e.root||(e=e.return)&&c(e)})],d=function(e){var t=h(e);return function(n,r,o,i){for(var a="",s=0;s<t;s++)a+=e[s](n,r,o,i)||"";return a}}([ee,te].concat(o,f));a=function(e,t,n,r){l=n,$(G(e?e+"{"+t.styles+"}":t.styles),d),r&&(p.inserted[t.name]=!0)};var p={key:t,sheet:new r({key:t,container:i,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:s,registered:{},insert:a};return p.sheet.hydrate(u),p}},36289:(e,t,n)=>{"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{A:()=>r})},95819:(e,t,n)=>{"use strict";n.d(t,{AH:()=>T,Y:()=>O,i7:()=>k});var r=n(96540),o=n.t(r,2),i=n(84300);var a=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)};var s={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},u=n(36289),l=/[A-Z]|^ms/g,c=/_EMO_([^_]+?)_([^]*?)_EMO_/g,f=function(e){return 45===e.charCodeAt(1)},d=function(e){return null!=e&&"boolean"!==typeof e},h=(0,u.A)((function(e){return f(e)?e:e.replace(l,"-$&").toLowerCase()})),p=function(e,t){switch(e){case"animation":case"animationName":if("string"===typeof t)return t.replace(c,(function(e,t,n){return v={name:t,styles:n,next:v},t}))}return 1===s[e]||f(e)||"number"!==typeof t||0===t?t:t+"px"};function g(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return v={name:n.name,styles:n.styles,next:v},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)v={name:r.name,styles:r.styles,next:v},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=g(e,t,n[o])+";";else for(var i in n){var a=n[i];if("object"!==typeof a)null!=t&&void 0!==t[a]?r+=i+"{"+t[a]+"}":d(a)&&(r+=h(i)+":"+p(i,a)+";");else if(!Array.isArray(a)||"string"!==typeof a[0]||null!=t&&void 0!==t[a[0]]){var s=g(e,t,a);switch(i){case"animation":case"animationName":r+=h(i)+":"+s+";";break;default:r+=i+"{"+s+"}"}}else for(var u=0;u<a.length;u++)d(a[u])&&(r+=h(i)+":"+p(i,a[u])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=v,i=n(e);return v=o,g(e,t,i)}}if(null==t)return n;var a=t[n];return void 0!==a?a:n}var v,y=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var m=function(e,t,n){if(1===e.length&&"object"===typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";v=void 0;var i=e[0];null==i||void 0===i.raw?(r=!1,o+=g(n,t,i)):o+=i[0];for(var a=1;a<e.length;a++)o+=g(n,t,e[a]),r&&(o+=i[a]);y.lastIndex=0;for(var s,u="";null!==(s=y.exec(o));)u+="-"+s[1];var l=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+u;return{name:l,styles:o,next:v}},b=!!o.useInsertionEffect&&o.useInsertionEffect,_=b||function(e){return e()},w=(b||r.useLayoutEffect,{}.hasOwnProperty),x=r.createContext("undefined"!==typeof HTMLElement?(0,i.A)({key:"css"}):null);x.Provider;var S=function(e){return(0,r.forwardRef)((function(t,n){var o=(0,r.useContext)(x);return e(t,o,n)}))};var A=r.createContext({});var E="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",C=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return a(t,n,r),_((function(){return function(e,t,n){a(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}(t,n,r)})),null};var R=S((function(e,t,n){var o=e.css;"string"===typeof o&&void 0!==t.registered[o]&&(o=t.registered[o]);var i=e[E],a=[o],s="";"string"===typeof e.className?s=function(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}(t.registered,a,e.className):null!=e.className&&(s=e.className+" ");var u=m(a,void 0,r.useContext(A));s+=t.key+"-"+u.name;var l={};for(var c in e)w.call(e,c)&&"css"!==c&&c!==E&&(l[c]=e[c]);return l.ref=n,l.className=s,r.createElement(r.Fragment,null,r.createElement(C,{cache:t,serialized:u,isStringTag:"string"===typeof i}),r.createElement(i,l))})),O=(n(4146),function(e,t){var n=arguments;if(null==t||!w.call(t,"css"))return r.createElement.apply(void 0,n);var o=n.length,i=new Array(o);i[0]=R,i[1]=function(e,t){var n={};for(var r in t)w.call(t,r)&&(n[r]=t[r]);return n[E]=e,n}(e,t);for(var a=2;a<o;a++)i[a]=n[a];return r.createElement.apply(null,i)});function T(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m(t)}var k=function(){var e=T.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}},45588:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}var o;n.d(t,{AO:()=>s,B6:()=>S,Gh:()=>T,HS:()=>k,Oi:()=>i,Rr:()=>u,pX:()=>L,pb:()=>E,rc:()=>o,tH:()=>I,tW:()=>x,ue:()=>c,yD:()=>O}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(o||(o={}));function i(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function a(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function s(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function u(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}var l;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(l||(l={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function c(e,t,n){void 0===n&&(n="/");let r=E(("string"===typeof t?u(t):t).pathname||"/",n);if(null==r)return null;let o=f(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let a=0;null==i&&a<o.length;++a){let e=A(r);i=w(o[a],e)}return i}function f(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=[]),void 0===r&&(r="");let o=(e,o,a)=>{let s={relativePath:void 0===a?e.path||"":a,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};s.relativePath.startsWith("/")&&(i(s.relativePath.startsWith(r),'Absolute route path "'+s.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),s.relativePath=s.relativePath.slice(r.length));let u=k([r,s.relativePath]),l=n.concat(s);e.children&&e.children.length>0&&(i(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+u+'".'),f(e.children,t,l,u)),(null!=e.path||e.index)&&t.push({path:u,score:_(u,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of d(e.path))o(e,t,r);else o(e,t)})),t}function d(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return o?[i,""]:[i];let a=d(r.join("/")),s=[];return s.push(...a.map((e=>""===e?i:[i,e].join("/")))),o&&s.push(...a),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const h=/^:[\w-]+$/,p=3,g=2,v=1,y=10,m=-2,b=e=>"*"===e;function _(e,t){let n=e.split("/"),r=n.length;return n.some(b)&&(r+=m),t&&(r+=g),n.filter((e=>!b(e))).reduce(((e,t)=>e+(h.test(t)?p:""===t?v:y)),r)}function w(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let a=0;a<n.length;++a){let e=n[a],s=a===n.length-1,u="/"===o?t:t.slice(o.length)||"/",l=S({path:e.relativePath,caseSensitive:e.caseSensitive,end:s},u);if(!l)return null;Object.assign(r,l.params);let c=e.route;i.push({params:r,pathname:k([o,l.pathname]),pathnameBase:M(k([o,l.pathnameBase])),route:c}),"/"!==l.pathnameBase&&(o=k([o,l.pathnameBase]))}return i}function x(e,t){void 0===t&&(t={});let n=e;n.endsWith("*")&&"*"!==n&&!n.endsWith("/*")&&(a(!1,'Route path "'+n+'" will be treated as if it were "'+n.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+n.replace(/\*$/,"/*")+'".'),n=n.replace(/\*$/,"/*"));const r=n.startsWith("/")?"/":"",o=e=>null==e?"":"string"===typeof e?e:String(e);return r+n.split(/\/+/).map(((e,n,r)=>{if(n===r.length-1&&"*"===e){return o(t["*"])}const a=e.match(/^:([\w-]+)(\??)$/);if(a){const[,e,n]=a;let r=t[e];return i("?"===n||null!=r,'Missing ":'+e+'" param'),o(r)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")}function S(e,t){"string"===typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=!0);a("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were "'+e.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+e.replace(/\*$/,"/*")+'".');let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,n)=>(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(r.push({paramName:"*"}),o+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":""!==e&&"/"!==e&&(o+="(?:(?=\\/|$))");let i=new RegExp(o,t?void 0:"i");return[i,r]}(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],s=i.replace(/(.)\/+$/,"$1"),u=o.slice(1);return{params:r.reduce(((e,t,n)=>{let{paramName:r,isOptional:o}=t;if("*"===r){let e=u[n]||"";s=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const a=u[n];return e[r]=o&&!a?void 0:(a||"").replace(/%2F/g,"/"),e}),{}),pathname:i,pathnameBase:s,pattern:e}}function A(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return a(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function E(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function C(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}function R(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function O(e,t){let n=R(e);return t?n.map(((t,n)=>n===e.length-1?t.pathname:t.pathnameBase)):n.map((e=>e.pathnameBase))}function T(e,t,n,o){let a;void 0===o&&(o=!1),"string"===typeof e?a=u(e):(a=r({},e),i(!a.pathname||!a.pathname.includes("?"),C("?","pathname","search",a)),i(!a.pathname||!a.pathname.includes("#"),C("#","pathname","hash",a)),i(!a.search||!a.search.includes("#"),C("#","search","hash",a)));let s,l=""===e||""===a.pathname,c=l?"/":a.pathname;if(null==c)s=n;else{let e=t.length-1;if(!o&&c.startsWith("..")){let t=c.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}s=e>=0?t[e]:"/"}let f=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:o=""}="string"===typeof e?u(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:P(r),hash:N(o)}}(a,s),d=c&&"/"!==c&&c.endsWith("/"),h=(l||"."===c)&&n.endsWith("/");return f.pathname.endsWith("/")||!d&&!h||(f.pathname+="/"),f}const k=e=>e.join("/").replace(/\/\/+/g,"/"),M=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),P=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",N=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";class I extends Error{}function L(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const D=["post","put","patch","delete"],F=(new Set(D),["get",...D]);new Set(F),new Set([301,302,303,307,308]),new Set([307,308]);Symbol("deferred")},10390:(e,t,n)=>{"use strict";n.d(t,{Ts:()=>Kt,mn:()=>Qt});var r=n(17412),o=n(6936),i=n(39653),a=n(92220),s=n(42531),u=n(86641);const l=[];function c(e){const t=e.defaultIntegrations||[],n=e.integrations;let r;t.forEach((e=>{e.isDefaultInstance=!0})),r=Array.isArray(n)?[...t,...n]:"function"===typeof n?(0,o.k9)(n(t)):t;const i=function(e){const t={};return e.forEach((e=>{const{name:n}=e,r=t[n];r&&!r.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)})),Object.keys(t).map((e=>t[e]))}(r),a=function(e,t){for(let n=0;n<e.length;n++)if(!0===t(e[n]))return n;return-1}(i,(e=>"Debug"===e.name));if(-1!==a){const[e]=i.splice(a,1);i.push(e)}return i}function f(e,t){for(const n of t)n&&n.afterAllSetup&&n.afterAllSetup(e)}function d(e,t,n){if(n[t.name])a.T&&r.vF.log(`Integration skipped because it was already installed: ${t.name}`);else{if(n[t.name]=t,-1===l.indexOf(t.name)&&(t.setupOnce(s.lb,u.BF),l.push(t.name)),t.setup&&"function"===typeof t.setup&&t.setup(e),e.on&&"function"===typeof t.preprocessEvent){const n=t.preprocessEvent.bind(t);e.on("preprocessEvent",((t,r)=>n(t,r,e)))}if(e.addEventProcessor&&"function"===typeof t.processEvent){const n=t.processEvent.bind(t),r=Object.assign(((t,r)=>n(t,r,e)),{id:t.name});e.addEventProcessor(r)}a.T&&r.vF.log(`Integration installed: ${t.name}`)}}function h(e,t){return Object.assign((function(...e){return t(...e)}),{id:e})}const p=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/],g=[/^.*\/healthcheck$/,/^.*\/healthy$/,/^.*\/live$/,/^.*\/ready$/,/^.*\/heartbeat$/,/^.*\/health$/,/^.*\/healthz$/],v="InboundFilters",y=(e={})=>({name:v,setupOnce(){},processEvent(t,n,s){const u=s.getOptions(),l=function(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:p],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[],...e.disableTransactionDefaults?[]:g],ignoreInternal:void 0===e.ignoreInternal||e.ignoreInternal}}(e,u);return function(e,t){if(t.ignoreInternal&&function(e){try{return"SentryError"===e.exception.values[0].type}catch(t){}return!1}(e))return a.T&&r.vF.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${(0,o.$X)(e)}`),!0;if(function(e,t){if(e.type||!t||!t.length)return!1;return function(e){const t=[];e.message&&t.push(e.message);let n;try{n=e.exception.values[e.exception.values.length-1]}catch(i){}n&&n.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`));a.T&&0===t.length&&r.vF.error(`Could not extract message for event ${(0,o.$X)(e)}`);return t}(e).some((e=>(0,i.Xr)(e,t)))}(e,t.ignoreErrors))return a.T&&r.vF.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${(0,o.$X)(e)}`),!0;if(function(e,t){if("transaction"!==e.type||!t||!t.length)return!1;const n=e.transaction;return!!n&&(0,i.Xr)(n,t)}(e,t.ignoreTransactions))return a.T&&r.vF.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${(0,o.$X)(e)}`),!0;if(function(e,t){if(!t||!t.length)return!1;const n=m(e);return!!n&&(0,i.Xr)(n,t)}(e,t.denyUrls))return a.T&&r.vF.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${(0,o.$X)(e)}.\nUrl: ${m(e)}`),!0;if(!function(e,t){if(!t||!t.length)return!0;const n=m(e);return!n||(0,i.Xr)(n,t)}(e,t.allowUrls))return a.T&&r.vF.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${(0,o.$X)(e)}.\nUrl: ${m(e)}`),!0;return!1}(t,l)?null:t}});h(v,y);function m(e){try{let n;try{n=e.exception.values[0].stacktrace.frames}catch(t){}return n?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&"<anonymous>"!==n.filename&&"[native code]"!==n.filename)return n.filename||null}return null}(n):null}catch(n){return a.T&&r.vF.error(`Cannot extract url for event ${(0,o.$X)(e)}`),null}}var b=n(68411),_=n(83741);let w;const x="FunctionToString",S=new WeakMap,A=()=>({name:x,setupOnce(){w=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=(0,b.sp)(this),n=S.has((0,_.KU)())&&void 0!==t?t:this;return w.apply(n,e)}}catch(e){}},setup(e){S.set(e,!0)}});h(x,A);function E(e,t){!0===t.debug&&(a.T?r.vF.enable():(0,r.pq)((()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})));(0,_.o5)().update(t.initialScope);const n=new e(t);!function(e){const t=(0,u.BF)().getStackTop();t.client=e,t.scope.setClient(e)}(n),function(e){e.init?e.init():e.setupIntegrations&&e.setupIntegrations()}(n)}var C=n(5644);const R=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function O(e,t=!1){const{host:n,path:r,pass:o,port:i,projectId:a,protocol:s,publicKey:u}=e;return`${s}://${u}${t&&o?`:${o}`:""}@${n}${i?`:${i}`:""}/${r?`${r}/`:r}${a}`}function T(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function k(e){const t="string"===typeof e?function(e){const t=R.exec(e);if(!t)return void(0,r.pq)((()=>{console.error(`Invalid Sentry Dsn: ${e}`)}));const[n,o,i="",a,s="",u]=t.slice(1);let l="",c=u;const f=c.split("/");if(f.length>1&&(l=f.slice(0,-1).join("/"),c=f.pop()),c){const e=c.match(/^\d+/);e&&(c=e[0])}return T({host:a,pass:i,path:l,projectId:c,port:s,protocol:n,publicKey:o})}(e):T(e);if(t&&function(e){if(!C.T)return!0;const{port:t,projectId:n,protocol:o}=e;return!["protocol","publicKey","host","projectId"].find((t=>!e[t]&&(r.vF.error(`Invalid Sentry Dsn: ${t} missing`),!0)))&&(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(o)?!t||!isNaN(parseInt(t,10))||(r.vF.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):(r.vF.error(`Invalid Sentry Dsn: Invalid protocol ${o}`),!1):(r.vF.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1))}(t))return t}const M="7";function P(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function N(e,t={}){const n="string"===typeof t?t:t.tunnel,r="string"!==typeof t&&t._metadata?t._metadata.sdk:void 0;return n||`${function(e){return`${P(e)}${e.projectId}/envelope/`}(e)}?${function(e,t){return(0,b.u4)({sentry_key:e.publicKey,sentry_version:M,...t&&{sentry_client:`${t.name}/${t.version}`}})}(e,r)}`}var I=n(83917),L=n(16341);const D=(0,L.VZ)();function F(){if(!("fetch"in D))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch(e){return!1}}function j(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}const U=(0,L.VZ)();const z={},B={};function V(e,t){z[e]=z[e]||[],z[e].push(t)}function H(e,t){B[e]||(t(),B[e]=!0)}function $(e,t){const n=e&&z[e];if(n)for(const i of n)try{i(t)}catch(o){C.T&&r.vF.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${(0,I.qQ)(i)}\nError:`,o)}}const W=L.OW;let G;function q(e){const t="history";V(t,e),H(t,Y)}function Y(){if(!function(){const e=U.chrome,t=e&&e.app&&e.app.runtime,n="history"in U&&!!U.history.pushState&&!!U.history.replaceState;return!t&&n}())return;const e=W.onpopstate;function t(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const e=G,t=String(n);G=t;$("history",{from:e,to:t})}return e.apply(this,t)}}W.onpopstate=function(...t){const n=W.location.href,r=G;G=n;if($("history",{from:r,to:n}),e)try{return e.apply(this,t)}catch(o){}},(0,b.GS)(W.history,"pushState",t),(0,b.GS)(W.history,"replaceState",t)}var X=n(73816),Z=n(60690),K=n(42181);function Q(e,t=[]){return[e,t]}function J(e,t){const[n,r]=e;return[n,[...r,t]]}function ee(e,t){const n=e[1];for(const r of n){if(t(r,r[0].type))return!0}return!1}function te(e,t){return(t||new TextEncoder).encode(e)}function ne(e,t){const[n,r]=e;let o=JSON.stringify(n);function i(e){"string"===typeof o?o="string"===typeof e?o+e:[te(o,t),e]:o.push("string"===typeof e?te(e,t):e)}for(const s of r){const[e,t]=s;if(i(`\n${JSON.stringify(e)}\n`),"string"===typeof t||t instanceof Uint8Array)i(t);else{let e;try{e=JSON.stringify(t)}catch(a){e=JSON.stringify((0,K.S8)(t))}i(e)}}return"string"===typeof o?o:function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);let r=0;for(const o of e)n.set(o,r),r+=o.length;return n}(o)}function re(e,t){const n="string"===typeof e.data?te(e.data,t):e.data;return[(0,b.Ce)({type:"attachment",length:n.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),n]}const oe={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",statsd:"unknown"};function ie(e){return oe[e]}function ae(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}class se extends Error{constructor(e,t="warn"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=t}}function ue(e,t,n,r){const o=ae(n),i=e.type&&"replay_event"!==e.type?e.type:"event";!function(e,t){t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]])}(e,n&&n.sdk);const a=function(e,t,n,r){const o=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:O(r)},...o&&{trace:(0,b.Ce)({...o})}}}(e,o,r,t);delete e.sdkProcessingMetadata;return Q(a,[[{type:i},e]])}function le(e,t,n,r){const o={sent_at:(new Date).toISOString()};n&&n.sdk&&(o.sdk={name:n.sdk.name,version:n.sdk.version}),r&&t&&(o.dsn=O(t));const i=function(e){const t=function(e){let t="";for(const n of e){const e=Object.entries(n.tags),r=e.length>0?`|#${e.map((([e,t])=>`${e}:${t}`)).join(",")}`:"";t+=`${n.name}@${n.unit}:${n.metric}|${n.metricType}${r}|T${n.timestamp}\n`}return t}(e);return[{type:"statsd",length:t.length},t]}(e);return Q(o,[i])}var ce=n(7058),fe=n(75452),de=n(49475);const he="Not capturing exception because it's already been captured.";class pe{constructor(e){if(this._options=e,this._integrations={},this._integrationsInitialized=!1,this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=k(e.dsn):a.T&&r.vF.warn("No DSN provided, client will not send events."),this._dsn){const t=N(this._dsn,e);this._transport=e.transport({recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,n){if((0,o.GR)(e))return void(a.T&&r.vF.log(he));let i=t&&t.event_id;return this._process(this.eventFromException(e,t).then((e=>this._captureEvent(e,t,n))).then((e=>{i=e}))),i}captureMessage(e,t,n,r){let o=n&&n.event_id;const i=(0,X.NF)(e)?e:String(e),a=(0,X.sO)(e)?this.eventFromMessage(i,t,n):this.eventFromException(e,n);return this._process(a.then((e=>this._captureEvent(e,n,r))).then((e=>{o=e}))),o}captureEvent(e,t,n){if(t&&t.originalException&&(0,o.GR)(t.originalException))return void(a.T&&r.vF.log(he));let i=t&&t.event_id;const s=(e.sdkProcessingMetadata||{}).capturedSpanScope;return this._process(this._captureEvent(e,t,s||n).then((e=>{i=e}))),i}captureSession(e){"string"!==typeof e.release?a.T&&r.vF.warn("Discarded session because of missing or non-string release"):(this.sendSession(e),(0,ce.qO)(e,{init:!1}))}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.metricsAggregator&&this.metricsAggregator.flush(),this._isClientDoneProcessing(e).then((n=>t.flush(e).then((e=>n&&e))))):(0,Z.XW)(!0)}close(e){return this.flush(e).then((e=>(this.getOptions().enabled=!1,this.metricsAggregator&&this.metricsAggregator.close(),e)))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}setupIntegrations(e){(e&&!this._integrationsInitialized||this._isEnabled()&&!this._integrationsInitialized)&&this._setupIntegrations()}init(){this._isEnabled()&&this._setupIntegrations()}getIntegrationById(e){return this.getIntegrationByName(e)}getIntegrationByName(e){return this._integrations[e]}getIntegration(e){try{return this._integrations[e.id]||null}catch(t){return a.T&&r.vF.warn(`Cannot retrieve integration ${e.id} from the current Client`),null}}addIntegration(e){const t=this._integrations[e.name];d(this,e,this._integrations),t||f(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let n=ue(e,this._dsn,this._options._metadata,this._options.tunnel);for(const o of t.attachments||[])n=J(n,re(o,this._options.transportOptions&&this._options.transportOptions.textEncoder));const r=this._sendEnvelope(n);r&&r.then((t=>this.emit("afterSendEvent",e,t)),null)}sendSession(e){const t=function(e,t,n,r){const o=ae(n);return Q({sent_at:(new Date).toISOString(),...o&&{sdk:o},...!!r&&t&&{dsn:O(t)}},["aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this._sendEnvelope(t)}recordDroppedEvent(e,t,n){if(this._options.sendClientReports){const n=`${e}:${t}`;a.T&&r.vF.log(`Adding outcome: "${n}"`),this._outcomes[n]=this._outcomes[n]+1||1}}captureAggregateMetrics(e){a.T&&r.vF.log(`Flushing aggregated metrics, number of metrics: ${e.length}`);const t=le(e,this._dsn,this._options._metadata,this._options.tunnel);this._sendEnvelope(t)}on(e,t){this._hooks[e]||(this._hooks[e]=[]),this._hooks[e].push(t)}emit(e,...t){this._hooks[e]&&this._hooks[e].forEach((e=>e(...t)))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=function(e,t){const n={};return t.forEach((t=>{t&&d(e,t,n)})),n}(this,e),f(this,e),this._integrationsInitialized=!0}_updateSessionFromEvent(e,t){let n=!1,r=!1;const o=t.exception&&t.exception.values;if(o){r=!0;for(const e of o){const t=e.mechanism;if(t&&!1===t.handled){n=!0;break}}}const i="ok"===e.status;(i&&0===e.errors||i&&n)&&((0,ce.qO)(e,{...n&&{status:"crashed"},errors:e.errors||Number(r||n)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Z.T2((t=>{let n=0;const r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),t(!0)):(n+=1,e&&n>=e&&(clearInterval(r),t(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._transport}_prepareEvent(e,t,n,r=(0,u.rm)()){const o=this.getOptions(),i=Object.keys(this._integrations);return!t.integrations&&i.length>0&&(t.integrations=i),this.emit("preprocessEvent",e,t),(0,de.mG)(o,e,t,n,this,r).then((e=>{if(null===e)return e;const t={...r.getPropagationContext(),...n?n.getPropagationContext():void 0};if(!(e.contexts&&e.contexts.trace)&&t){const{traceId:r,spanId:o,parentSpanId:i,dsc:a}=t;e.contexts={trace:{trace_id:r,span_id:o,parent_span_id:i},...e.contexts};const s=a||(0,fe.l)(r,this,n);e.sdkProcessingMetadata={dynamicSamplingContext:s,...e.sdkProcessingMetadata}}return e}))}_captureEvent(e,t={},n){return this._processEvent(e,t,n).then((e=>e.event_id),(e=>{if(a.T){const t=e;"log"===t.logLevel?r.vF.log(t.message):r.vF.warn(t)}}))}_processEvent(e,t,n){const r=this.getOptions(),{sampleRate:o}=r,i=ve(e),a=ge(e),s=e.type||"error",u=`before send for type \`${s}\``;if(a&&"number"===typeof o&&Math.random()>o)return this.recordDroppedEvent("sample_rate","error",e),(0,Z.xg)(new se(`Discarding event because it's not included in the random sample (sampling rate = ${o})`,"log"));const l="replay_event"===s?"replay":s,c=(e.sdkProcessingMetadata||{}).capturedSpanIsolationScope;return this._prepareEvent(e,t,n,c).then((n=>{if(null===n)throw this.recordDroppedEvent("event_processor",l,e),new se("An event processor returned `null`, will not send event.","log");if(t.data&&!0===t.data.__sentry__)return n;const o=function(e,t,n){const{beforeSend:r,beforeSendTransaction:o}=e;if(ge(t)&&r)return r(t,n);if(ve(t)&&o)return o(t,n);return t}(r,n,t);return function(e,t){const n=`${t} must return \`null\` or a valid event.`;if((0,X.Qg)(e))return e.then((e=>{if(!(0,X.Qd)(e)&&null!==e)throw new se(n);return e}),(e=>{throw new se(`${t} rejected with ${e}`)}));if(!(0,X.Qd)(e)&&null!==e)throw new se(n);return e}(o,u)})).then((r=>{if(null===r)throw this.recordDroppedEvent("before_send",l,e),new se(`${u} returned \`null\`, will not send event.`,"log");const o=n&&n.getSession();!i&&o&&this._updateSessionFromEvent(o,r);const a=r.transaction_info;if(i&&a&&r.transaction!==e.transaction){const e="custom";r.transaction_info={...a,source:e}}return this.sendEvent(r,t),r})).then(null,(e=>{if(e instanceof se)throw e;throw this.captureException(e,{data:{__sentry__:!0},originalException:e}),new se(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`)}))}_process(e){this._numProcessing++,e.then((e=>(this._numProcessing--,e)),(e=>(this._numProcessing--,e)))}_sendEnvelope(e){if(this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport)return this._transport.send(e).then(null,(e=>{a.T&&r.vF.error("Error while sending event:",e)}));a.T&&r.vF.error("Transport disabled")}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.keys(e).map((t=>{const[n,r]=t.split(":");return{reason:n,category:r,quantity:e[t]}}))}}function ge(e){return void 0===e.type}function ve(e){return"transaction"===e.type}var ye=n(40601);var me=n(89297);const be="undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;function _e(e,t){const n=xe(e,t),r={type:t&&t.name,value:Ae(t)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function we(e,t){return{exception:{values:[_e(e,t)]}}}function xe(e,t){const n=t.stacktrace||t.stack||"",r=function(e){if(e){if("number"===typeof e.framesToPop)return e.framesToPop;if(Se.test(e.message))return 1}return 0}(t);try{return e(n,r)}catch(o){}return[]}const Se=/Minified React error #\d+;/i;function Ae(e){const t=e&&e.message;return t?t.error&&"string"===typeof t.error.message?t.error.message:t:"No error message"}function Ee(e,t,n,r,i){let a;if((0,X.T2)(t)&&t.error){return we(e,t.error)}if((0,X.BD)(t)||(0,X.W6)(t)){const i=t;if("stack"in t)a=we(e,t);else{const t=i.name||((0,X.BD)(i)?"DOMError":"DOMException"),s=i.message?`${t}: ${i.message}`:t;a=Ce(e,s,n,r),(0,o.gO)(a,s)}return"code"in i&&(a.tags={...a.tags,"DOMException.code":`${i.code}`}),a}if((0,X.bJ)(t))return we(e,t);if((0,X.Qd)(t)||(0,X.xH)(t)){return a=function(e,t,n,r){const o=(0,_.KU)(),i=o&&o.getOptions().normalizeDepth,a={exception:{values:[{type:(0,X.xH)(t)?t.constructor.name:r?"UnhandledRejection":"Error",value:Re(t,{isUnhandledRejection:r})}]},extra:{__serialized__:(0,K.cd)(t,i)}};if(n){const t=xe(e,n);t.length&&(a.exception.values[0].stacktrace={frames:t})}return a}(e,t,n,i),(0,o.M6)(a,{synthetic:!0}),a}return a=Ce(e,t,n,r),(0,o.gO)(a,`${t}`,void 0),(0,o.M6)(a,{synthetic:!0}),a}function Ce(e,t,n,r){const o={};if(r&&n){const r=xe(e,n);r.length&&(o.exception={values:[{value:t,stacktrace:{frames:r}}]})}if((0,X.NF)(t)){const{__sentry_template_string__:e,__sentry_template_values__:n}=t;return o.logentry={message:e,params:n},o}return o.message=t,o}function Re(e,{isUnhandledRejection:t}){const n=(0,b.HF)(e),r=t?"promise rejection":"exception";if((0,X.T2)(e))return`Event \`ErrorEvent\` captured as ${r} with message \`${e.message}\``;if((0,X.xH)(e)){return`Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(t){}}(e)}\` (type=${e.type}) captured as ${r}`}return`Object captured as ${r} with keys: ${n}`}const Oe=L.OW;let Te=0;function ke(){return Te>0}function Me(e,t={},n){if("function"!==typeof e)return e;try{const t=e.__sentry_wrapped__;if(t)return t;if((0,b.sp)(e))return e}catch(i){return e}const r=function(){const r=Array.prototype.slice.call(arguments);try{n&&"function"===typeof n&&n.apply(this,arguments);const o=r.map((e=>Me(e,t)));return e.apply(this,o)}catch(i){throw Te++,setTimeout((()=>{Te--})),(0,_.v4)((e=>{e.addEventProcessor((e=>(t.mechanism&&((0,o.gO)(e,void 0,void 0),(0,o.M6)(e,t.mechanism)),e.extra={...e.extra,arguments:r},e))),(0,_.Cp)(i)})),i}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch(a){}(0,b.pO)(r,e),(0,b.my)(e,"__sentry_wrapped__",r);try{Object.getOwnPropertyDescriptor(r,"name").configurable&&Object.defineProperty(r,"name",{get:()=>e.name})}catch(a){}return r}class Pe extends pe{constructor(e){const t=Oe.SENTRY_SDK_SOURCE||"npm";(0,ye.K)(e,"browser",["browser"],t),super(e),e.sendClientReports&&Oe.document&&Oe.document.addEventListener("visibilitychange",(()=>{"hidden"===Oe.document.visibilityState&&this._flushOutcomes()}))}eventFromException(e,t){return function(e,t,n,r){const i=Ee(e,t,n&&n.syntheticException||void 0,r);return(0,o.M6)(i),i.level="error",n&&n.event_id&&(i.event_id=n.event_id),(0,Z.XW)(i)}(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",n){return function(e,t,n="info",r,o){const i=Ce(e,t,r&&r.syntheticException||void 0,o);return i.level=n,r&&r.event_id&&(i.event_id=r.event_id),(0,Z.XW)(i)}(this._options.stackParser,e,t,n,this._options.attachStacktrace)}captureUserFeedback(e){if(!this._isEnabled())return void(be&&r.vF.warn("SDK not enabled, will not capture user feedback."));const t=function(e,{metadata:t,tunnel:n,dsn:r}){const o={event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&t.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!r&&{dsn:O(r)}},i=function(e){return[{type:"user_report"},e]}(e);return Q(o,[i])}(e,{metadata:this.getSdkMetadata(),dsn:this.getDsn(),tunnel:this.getOptions().tunnel});this._sendEnvelope(t)}_prepareEvent(e,t,n){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,n)}_flushOutcomes(){const e=this._clearOutcomes();if(0===e.length)return void(be&&r.vF.log("No outcomes to send"));if(!this._dsn)return void(be&&r.vF.log("No dsn provided, will not send outcomes"));be&&r.vF.log("Sending outcomes:",e);const t=(n=e,Q((o=this._options.tunnel&&O(this._dsn))?{dsn:o}:{},[[{type:"client_report"},{timestamp:i||(0,me.lu)(),discarded_events:n}]]));var n,o,i;this._sendEnvelope(t)}}function Ne(){"console"in L.OW&&r.Ow.forEach((function(e){e in L.OW.console&&(0,b.GS)(L.OW.console,e,(function(t){return r.Z9[e]=t,function(...t){$("console",{args:t,level:e});const n=r.Z9[e];n&&n.apply(L.OW.console,t)}}))}))}const Ie=L.OW,Le=1e3;let De,Fe,je;function Ue(){if(!Ie.document)return;const e=$.bind(null,"dom"),t=ze(e,!0);Ie.document.addEventListener("click",t,!1),Ie.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach((t=>{const n=Ie[t]&&Ie[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,b.GS)(n,"addEventListener",(function(t){return function(n,r,o){if("click"===n||"keypress"==n)try{const r=this,i=r.__sentry_instrumentation_handlers__=r.__sentry_instrumentation_handlers__||{},a=i[n]=i[n]||{refCount:0};if(!a.handler){const r=ze(e);a.handler=r,t.call(this,n,r,o)}a.refCount++}catch(i){}return t.call(this,n,r,o)}})),(0,b.GS)(n,"removeEventListener",(function(e){return function(t,n,r){if("click"===t||"keypress"==t)try{const n=this,o=n.__sentry_instrumentation_handlers__||{},i=o[t];i&&(i.refCount--,i.refCount<=0&&(e.call(this,t,i.handler,r),i.handler=void 0,delete o[t]),0===Object.keys(o).length&&delete n.__sentry_instrumentation_handlers__)}catch(o){}return e.call(this,t,n,r)}})))}))}function ze(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const r=function(e){try{return e.target}catch(t){return null}}(n);if(function(e,t){return"keypress"===e&&(!t||!t.tagName||"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName&&!t.isContentEditable)}(n.type,r))return;(0,b.my)(n,"_sentryCaptured",!0),r&&!r._sentryId&&(0,b.my)(r,"_sentryId",(0,o.eJ)());const i="keypress"===n.type?"input":n.type;if(!function(e){if(e.type!==Fe)return!1;try{if(!e.target||e.target._sentryId!==je)return!1}catch(t){}return!0}(n)){e({event:n,name:i,global:t}),Fe=n.type,je=r?r._sentryId:void 0}clearTimeout(De),De=Ie.setTimeout((()=>{je=void 0,Fe=void 0}),Le)}}const Be=L.OW,Ve="__sentry_xhr_v3__";function He(){if(!Be.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;(0,b.GS)(e,"open",(function(e){return function(...t){const n=Date.now(),r=(0,X.Kg)(t[0])?t[0].toUpperCase():void 0,o=function(e){if((0,X.Kg)(e))return e;try{return e.toString()}catch(t){}return}(t[1]);if(!r||!o)return e.apply(this,t);this[Ve]={method:r,url:o,request_headers:{}},"POST"===r&&o.match(/sentry_key/)&&(this.__sentry_own_request__=!0);const i=()=>{const e=this[Ve];if(e&&4===this.readyState){try{e.status_code=this.status}catch(t){}$("xhr",{args:[r,o],endTimestamp:Date.now(),startTimestamp:n,xhr:this})}};return"onreadystatechange"in this&&"function"===typeof this.onreadystatechange?(0,b.GS)(this,"onreadystatechange",(function(e){return function(...t){return i(),e.apply(this,t)}})):this.addEventListener("readystatechange",i),(0,b.GS)(this,"setRequestHeader",(function(e){return function(...t){const[n,r]=t,o=this[Ve];return o&&(0,X.Kg)(n)&&(0,X.Kg)(r)&&(o.request_headers[n.toLowerCase()]=r),e.apply(this,t)}})),e.apply(this,t)}})),(0,b.GS)(e,"send",(function(e){return function(...t){const n=this[Ve];if(!n)return e.apply(this,t);void 0!==t[0]&&(n.body=t[0]);return $("xhr",{args:[n.method,n.url],startTimestamp:Date.now(),xhr:this}),e.apply(this,t)}}))}function $e(){(function(){if("string"===typeof EdgeRuntime)return!0;if(!F())return!1;if(j(D.fetch))return!0;let e=!1;const t=D.document;if(t&&"function"===typeof t.createElement)try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=j(n.contentWindow.fetch)),t.head.removeChild(n)}catch(n){C.T&&r.vF.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return e})()&&(0,b.GS)(L.OW,"fetch",(function(e){return function(...t){const{method:n,url:r}=function(e){if(0===e.length)return{method:"GET",url:""};if(2===e.length){const[t,n]=e;return{url:Ge(t),method:We(n,"method")?String(n.method).toUpperCase():"GET"}}const t=e[0];return{url:Ge(t),method:We(t,"method")?String(t.method).toUpperCase():"GET"}}(t),o={args:t,fetchData:{method:n,url:r},startTimestamp:Date.now()};return $("fetch",{...o}),e.apply(L.OW,t).then((e=>($("fetch",{...o,endTimestamp:Date.now(),response:e}),e)),(e=>{throw $("fetch",{...o,endTimestamp:Date.now(),error:e}),e}))}}))}function We(e,t){return!!e&&"object"===typeof e&&!!e[t]}function Ge(e){return"string"===typeof e?e:e?We(e,"url")?e.url:e.toString?e.toString():"":""}var qe=n(19766);const Ye=["fatal","error","warning","log","info","debug"];function Xe(e){return"warn"===e?"warning":Ye.includes(e)?e:"log"}function Ze(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}const Ke=1024,Qe="Breadcrumbs",Je=(e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:Qe,setupOnce(){},setup(e){var n;t.console&&function(e){const t="console";V(t,e),H(t,Ne)}(function(e){return function(t){if((0,_.KU)()!==e)return;const n={category:"console",data:{arguments:t.args,logger:"console"},level:Xe(t.level),message:(0,i.gt)(t.args," ")};if("assert"===t.level){if(!1!==t.args[0])return;n.message=`Assertion failed: ${(0,i.gt)(t.args.slice(1)," ")||"console.assert"}`,n.data.arguments=t.args.slice(1)}(0,_.ZQ)(n,{input:t.args,level:t.level})}}(e)),t.dom&&(n=function(e,t){return function(n){if((0,_.KU)()!==e)return;let o,i,a="object"===typeof t?t.serializeAttribute:void 0,s="object"===typeof t&&"number"===typeof t.maxStringLength?t.maxStringLength:void 0;s&&s>Ke&&(be&&r.vF.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${s} was configured. Sentry will use 1024 instead.`),s=Ke),"string"===typeof a&&(a=[a]);try{const e=n.event,t=function(e){return!!e&&!!e.target}(e)?e.target:e;o=(0,qe.Hd)(t,{keyAttrs:a,maxStringLength:s}),i=(0,qe.xE)(t)}catch(l){o="<unknown>"}if(0===o.length)return;const u={category:`ui.${n.name}`,message:o};i&&(u.data={"ui.component_name":i}),(0,_.ZQ)(u,{event:n.event,name:n.name,global:n.global})}}(e,t.dom),V("dom",n),H("dom",Ue)),t.xhr&&function(e){V("xhr",e),H("xhr",He)}(function(e){return function(t){if((0,_.KU)()!==e)return;const{startTimestamp:n,endTimestamp:r}=t,o=t.xhr[Ve];if(!n||!r||!o)return;const{method:i,url:a,status_code:s,body:u}=o,l={method:i,url:a,status_code:s},c={xhr:t.xhr,input:u,startTimestamp:n,endTimestamp:r};(0,_.ZQ)({category:"xhr",data:l,type:"http"},c)}}(e)),t.fetch&&function(e){const t="fetch";V(t,e),H(t,$e)}(function(e){return function(t){if((0,_.KU)()!==e)return;const{startTimestamp:n,endTimestamp:r}=t;if(r&&(!t.fetchData.url.match(/sentry_key/)||"POST"!==t.fetchData.method))if(t.error){const e=t.fetchData,o={data:t.error,input:t.args,startTimestamp:n,endTimestamp:r};(0,_.ZQ)({category:"fetch",data:e,level:"error",type:"http"},o)}else{const e=t.response,o={...t.fetchData,status_code:e&&e.status},i={input:t.args,response:e,startTimestamp:n,endTimestamp:r};(0,_.ZQ)({category:"fetch",data:o,type:"http"},i)}}}(e)),t.history&&q(function(e){return function(t){if((0,_.KU)()!==e)return;let n=t.from,r=t.to;const o=Ze(Oe.location.href);let i=n?Ze(n):void 0;const a=Ze(r);i&&i.path||(i=o),o.protocol===a.protocol&&o.host===a.host&&(r=a.relative),o.protocol===i.protocol&&o.host===i.host&&(n=i.relative),(0,_.ZQ)({category:"navigation",data:{from:n,to:r}})}}(e)),t.sentry&&e.on&&e.on("beforeSendEvent",function(e){return function(t){(0,_.KU)()===e&&(0,_.ZQ)({category:"sentry."+("transaction"===t.type?"transaction":"event"),event_id:t.event_id,level:t.level,message:(0,o.$X)(t)},{event:t})}}(e))}}};h(Qe,Je);const et="Dedupe",tt=()=>{let e;return{name:et,setupOnce(){},processEvent(t){if(t.type)return t;try{if(function(e,t){if(!t)return!1;if(function(e,t){const n=e.message,r=t.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!rt(e,t))return!1;if(!nt(e,t))return!1;return!0}(e,t))return!0;if(function(e,t){const n=ot(t),r=ot(e);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!rt(e,t))return!1;if(!nt(e,t))return!1;return!0}(e,t))return!0;return!1}(t,e))return be&&r.vF.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(n){}return e=t}}};h(et,tt);function nt(e,t){let n=it(e),r=it(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){const e=r[o],t=n[o];if(e.filename!==t.filename||e.lineno!==t.lineno||e.colno!==t.colno||e.function!==t.function)return!1}return!0}function rt(e,t){let n=e.fingerprint,r=t.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;try{return!(n.join("")!==r.join(""))}catch(o){return!1}}function ot(e){return e.exception&&e.exception.values&&e.exception.values[0]}function it(e){const t=e.exception;if(t)try{return t.values[0].stacktrace.frames}catch(n){return}}let at=null;function st(){at=L.OW.onerror,L.OW.onerror=function(e,t,n,r,o){return $("error",{column:r,error:o,line:n,msg:e,url:t}),!(!at||at.__SENTRY_LOADER__)&&at.apply(this,arguments)},L.OW.onerror.__SENTRY_INSTRUMENTED__=!0}let ut=null;function lt(){ut=L.OW.onunhandledrejection,L.OW.onunhandledrejection=function(e){return $("unhandledrejection",e),!(ut&&!ut.__SENTRY_LOADER__)||ut.apply(this,arguments)},L.OW.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}const ct="GlobalHandlers",ft=(e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:ct,setupOnce(){Error.stackTraceLimit=50},setup(e){t.onerror&&(!function(e){!function(e){const t="error";V(t,e),H(t,st)}((t=>{const{stackParser:n,attachStacktrace:r}=pt();if((0,_.KU)()!==e||ke())return;const{msg:o,url:i,line:a,column:s,error:u}=t,l=void 0===u&&(0,X.Kg)(o)?function(e,t,n,r){const o=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;let i=(0,X.T2)(e)?e.message:e,a="Error";const s=i.match(o);s&&(a=s[1],i=s[2]);const u={exception:{values:[{type:a,value:i}]}};return dt(u,t,n,r)}(o,i,a,s):dt(Ee(n,u||o,void 0,r,!1),i,a,s);l.level="error",(0,_.r)(l,{originalException:u,mechanism:{handled:!1,type:"onerror"}})}))}(e),ht("onerror")),t.onunhandledrejection&&(!function(e){!function(e){const t="unhandledrejection";V(t,e),H(t,lt)}((t=>{const{stackParser:n,attachStacktrace:r}=pt();if((0,_.KU)()!==e||ke())return;const o=function(e){if((0,X.sO)(e))return e;const t=e;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch(n){}return e}(t),i=(0,X.sO)(o)?{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(o)}`}]}}:Ee(n,o,void 0,r,!0);i.level="error",(0,_.r)(i,{originalException:o,mechanism:{handled:!1,type:"onunhandledrejection"}})}))}(e),ht("onunhandledrejection"))}}};h(ct,ft);function dt(e,t,n,r){const o=e.exception=e.exception||{},i=o.values=o.values||[],a=i[0]=i[0]||{},s=a.stacktrace=a.stacktrace||{},u=s.frames=s.frames||[],l=isNaN(parseInt(r,10))?void 0:r,c=isNaN(parseInt(n,10))?void 0:n,f=(0,X.Kg)(t)&&t.length>0?t:(0,qe.$N)();return 0===u.length&&u.push({colno:l,filename:f,function:"?",in_app:!0,lineno:c}),e}function ht(e){be&&r.vF.log(`Global Handler attached: ${e}`)}function pt(){const e=(0,_.KU)();return e&&e.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}const gt="HttpContext",vt=()=>({name:gt,setupOnce(){},preprocessEvent(e){if(!Oe.navigator&&!Oe.location&&!Oe.document)return;const t=e.request&&e.request.url||Oe.location&&Oe.location.href,{referrer:n}=Oe.document||{},{userAgent:r}=Oe.navigator||{},o={...e.request&&e.request.headers,...n&&{Referer:n},...r&&{"User-Agent":r}},i={...e.request,...t&&{url:t},headers:o};e.request=i}});h(gt,vt);function yt(e,t,n=250,r,o,a,s){if(!a.exception||!a.exception.values||!s||!(0,X.tH)(s.originalException,Error))return;const u=a.exception.values.length>0?a.exception.values[a.exception.values.length-1]:void 0;var l,c;u&&(a.exception.values=(l=mt(e,t,o,s.originalException,r,a.exception.values,u,0),c=n,l.map((e=>(e.value&&(e.value=(0,i.xv)(e.value,c)),e)))))}function mt(e,t,n,r,o,i,a,s){if(i.length>=n+1)return i;let u=[...i];if((0,X.tH)(r[o],Error)){bt(a,s);const i=e(t,r[o]),l=u.length;_t(i,o,l,s),u=mt(e,t,n,r[o],o,[i,...u],i,l)}return Array.isArray(r.errors)&&r.errors.forEach(((r,i)=>{if((0,X.tH)(r,Error)){bt(a,s);const l=e(t,r),c=u.length;_t(l,`errors[${i}]`,c,s),u=mt(e,t,n,r,o,[l,...u],l,c)}})),u}function bt(e,t){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,..."AggregateError"===e.type&&{is_exception_group:!0},exception_id:t}}function _t(e,t,n,r){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}const wt="LinkedErrors",xt=(e={})=>{const t=e.limit||5,n=e.key||"cause";return{name:wt,setupOnce(){},preprocessEvent(e,r,o){const i=o.getOptions();yt(_e,i.stackParser,i.maxValueLength,n,t,e,r)}}},St=(h(wt,xt),["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"]),At="TryCatch",Et=(e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...e};return{name:At,setupOnce(){t.setTimeout&&(0,b.GS)(Oe,"setTimeout",Ct),t.setInterval&&(0,b.GS)(Oe,"setInterval",Ct),t.requestAnimationFrame&&(0,b.GS)(Oe,"requestAnimationFrame",Rt),t.XMLHttpRequest&&"XMLHttpRequest"in Oe&&(0,b.GS)(XMLHttpRequest.prototype,"send",Ot);const e=t.eventTarget;if(e){(Array.isArray(e)?e:St).forEach(Tt)}}}};h(At,Et);function Ct(e){return function(...t){const n=t[0];return t[0]=Me(n,{mechanism:{data:{function:(0,I.qQ)(e)},handled:!1,type:"instrument"}}),e.apply(this,t)}}function Rt(e){return function(t){return e.apply(this,[Me(t,{mechanism:{data:{function:"requestAnimationFrame",handler:(0,I.qQ)(e)},handled:!1,type:"instrument"}})])}}function Ot(e){return function(...t){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach((e=>{e in n&&"function"===typeof n[e]&&(0,b.GS)(n,e,(function(t){const n={mechanism:{data:{function:e,handler:(0,I.qQ)(t)},handled:!1,type:"instrument"}},r=(0,b.sp)(t);return r&&(n.mechanism.data.handler=(0,I.qQ)(r)),Me(t,n)}))})),e.apply(this,t)}}function Tt(e){const t=Oe,n=t[e]&&t[e].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,b.GS)(n,"addEventListener",(function(t){return function(n,r,o){try{"function"===typeof r.handleEvent&&(r.handleEvent=Me(r.handleEvent,{mechanism:{data:{function:"handleEvent",handler:(0,I.qQ)(r),target:e},handled:!1,type:"instrument"}}))}catch(i){}return t.apply(this,[n,Me(r,{mechanism:{data:{function:"addEventListener",handler:(0,I.qQ)(r),target:e},handled:!1,type:"instrument"}}),o])}})),(0,b.GS)(n,"removeEventListener",(function(e){return function(t,n,r){const o=n;try{const n=o&&o.__sentry_wrapped__;n&&e.call(this,t,n,r)}catch(i){}return e.call(this,t,o,r)}})))}const kt="?";function Mt(e,t,n,r){const o={filename:e,function:t,in_app:!0};return void 0!==n&&(o.lineno=n),void 0!==r&&(o.colno=r),o}const Pt=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Nt=/\((\S*)(?::(\d+))(?::(\d+))\)/,It=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Lt=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Dt=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,Ft=[[30,e=>{const t=Pt.exec(e);if(t){if(t[2]&&0===t[2].indexOf("eval")){const e=Nt.exec(t[2]);e&&(t[2]=e[1],t[3]=e[2],t[4]=e[3])}const[e,n]=Ut(t[1]||kt,t[2]);return Mt(n,e,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}}],[50,e=>{const t=It.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const e=Lt.exec(t[3]);e&&(t[1]=t[1]||"eval",t[3]=e[1],t[4]=e[2],t[5]="")}let e=t[3],n=t[1]||kt;return[n,e]=Ut(n,e),Mt(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}],[40,e=>{const t=Dt.exec(e);return t?Mt(t[2],t[1]||kt,+t[3],t[4]?+t[4]:void 0):void 0}]],jt=(0,I.gd)(...Ft),Ut=(e,t)=>{const n=-1!==e.indexOf("safari-extension"),r=-1!==e.indexOf("safari-web-extension");return n||r?[-1!==e.indexOf("@")?e.split("@")[0]:kt,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};function zt(e){const t=[];function n(e){return t.splice(t.indexOf(e),1)[0]}return{$:t,add:function(r){if(!(void 0===e||t.length<e))return(0,Z.xg)(new se("Not adding Promise because buffer limit was reached."));const o=r();return-1===t.indexOf(o)&&t.push(o),o.then((()=>n(o))).then(null,(()=>n(o).then(null,(()=>{})))),o},drain:function(e){return new Z.T2(((n,r)=>{let o=t.length;if(!o)return n(!0);const i=setTimeout((()=>{e&&e>0&&n(!1)}),e);t.forEach((e=>{(0,Z.XW)(e).then((()=>{--o||(clearTimeout(i),n(!0))}),r)}))}))}}}const Bt=6e4;function Vt(e,{statusCode:t,headers:n},r=Date.now()){const o={...e},i=n&&n["x-sentry-rate-limits"],a=n&&n["retry-after"];if(i)for(const s of i.trim().split(",")){const[e,t]=s.split(":",2),n=parseInt(e,10),i=1e3*(isNaN(n)?60:n);if(t)for(const a of t.split(";"))o[a]=r+i;else o.all=r+i}else a?o.all=r+function(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const r=Date.parse(`${e}`);return isNaN(r)?Bt:r-t}(a,r):429===t&&(o.all=r+6e4);return o}const Ht=30;function $t(e,t,n=zt(e.bufferSize||Ht)){let o={};function i(i){const s=[];if(ee(i,((t,n)=>{const r=ie(n);if(function(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}(o,r)){const o=Wt(t,n);e.recordDroppedEvent("ratelimit_backoff",r,o)}else s.push(t)})),0===s.length)return(0,Z.XW)();const u=Q(i[0],s),l=t=>{ee(u,((n,r)=>{const o=Wt(n,r);e.recordDroppedEvent(t,ie(r),o)}))};return n.add((()=>t({body:ne(u,e.textEncoder)}).then((e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&a.T&&r.vF.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),o=Vt(o,e),e)),(e=>{throw l("network_error"),e})))).then((e=>e),(e=>{if(e instanceof se)return a.T&&r.vF.error("Skipped sending event because buffer is full."),l("queue_overflow"),(0,Z.XW)();throw e}))}return i.__sentry__baseTransport__=!0,{send:i,flush:e=>n.drain(e)}}function Wt(e,t){if("event"===t||"transaction"===t)return Array.isArray(e)?e[1]:void 0}let Gt;function qt(e,t=function(){if(Gt)return Gt;if(j(Oe.fetch))return Gt=Oe.fetch.bind(Oe);const e=Oe.document;let t=Oe.fetch;if(e&&"function"===typeof e.createElement)try{const n=e.createElement("iframe");n.hidden=!0,e.head.appendChild(n);const r=n.contentWindow;r&&r.fetch&&(t=r.fetch),e.head.removeChild(n)}catch(n){be&&r.vF.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return Gt=t.bind(Oe)}()){let n=0,o=0;return $t(e,(function(r){const i=r.body.length;n+=i,o++;const a={body:r.body,method:"POST",referrerPolicy:"origin",headers:e.headers,keepalive:n<=6e4&&o<15,...e.fetchOptions};try{return t(e.url,a).then((e=>(n-=i,o--,{statusCode:e.status,headers:{"x-sentry-rate-limits":e.headers.get("X-Sentry-Rate-Limits"),"retry-after":e.headers.get("Retry-After")}})))}catch(s){return Gt=void 0,n-=i,o--,(0,Z.xg)(s)}}))}const Yt=4;function Xt(e){return $t(e,(function(t){return new Z.T2(((n,r)=>{const o=new XMLHttpRequest;o.onerror=r,o.onreadystatechange=()=>{o.readyState===Yt&&n({statusCode:o.status,headers:{"x-sentry-rate-limits":o.getResponseHeader("X-Sentry-Rate-Limits"),"retry-after":o.getResponseHeader("Retry-After")}})},o.open("POST",e.url);for(const t in e.headers)Object.prototype.hasOwnProperty.call(e.headers,t)&&o.setRequestHeader(t,e.headers[t]);o.send(t.body)}))}))}const Zt=[y(),A(),Et(),Je(),ft(),xt(),tt(),vt()];function Kt(e={}){void 0===e.defaultIntegrations&&(e.defaultIntegrations=[...Zt]),void 0===e.release&&("string"===typeof __SENTRY_RELEASE__&&(e.release=__SENTRY_RELEASE__),Oe.SENTRY_RELEASE&&Oe.SENTRY_RELEASE.id&&(e.release=Oe.SENTRY_RELEASE.id)),void 0===e.autoSessionTracking&&(e.autoSessionTracking=!0),void 0===e.sendClientReports&&(e.sendClientReports=!0);const t={...e,stackParser:(0,I.vk)(e.stackParser||jt),integrations:c(e),transport:e.transport||(F()?qt:Xt)};E(Pe,t),e.autoSessionTracking&&function(){if("undefined"===typeof Oe.document)return void(be&&r.vF.warn("Session tracking in non-browser environment with @sentry/browser is not supported."));(0,_.J0)({ignoreDuration:!0}),(0,_.J5)(),q((({from:e,to:t})=>{void 0!==e&&e!==t&&((0,_.J0)({ignoreDuration:!0}),(0,_.J5)())}))}()}const Qt=(e={},t=(0,u.BF)())=>{if(!Oe.document)return void(be&&r.vF.error("Global document not defined in showReportDialog call"));const{client:n,scope:o}=t.getStackTop(),i=e.dsn||n&&n.getDsn();if(!i)return void(be&&r.vF.error("DSN not configured for showReportDialog call"));o&&(e.user={...o.getUser(),...e.user}),e.eventId||(e.eventId=t.lastEventId());const a=Oe.document.createElement("script");a.async=!0,a.crossOrigin="anonymous",a.src=function(e,t){const n=k(e);if(!n)return"";const r=`${P(n)}embed/error-page/`;let o=`dsn=${O(n)}`;for(const i in t)if("dsn"!==i&&"onClose"!==i)if("user"===i){const e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`;return`${r}?${o}`}(i,e),e.onLoad&&(a.onload=e.onLoad);const{onClose:s}=e;if(s){const e=t=>{if("__sentry_reportdialog_closed__"===t.data)try{s()}finally{Oe.removeEventListener("message",e)}};Oe.addEventListener("message",e)}const l=Oe.document.head||Oe.document.body;l?l.appendChild(a):be&&r.vF.error("Not injecting report dialog. No injection point found in HTML")}},92967:(e,t,n)=>{"use strict";n.d(t,{U:()=>r});const r="production"},92220:(e,t,n)=>{"use strict";n.d(t,{T:()=>r});const r="undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},42531:(e,t,n)=>{"use strict";n.d(t,{jB:()=>c,lG:()=>u,lb:()=>l});var r=n(16341),o=n(60690),i=n(17412),a=n(73816),s=n(92220);function u(){return(0,r.BY)("globalEventProcessors",(()=>[]))}function l(e){u().push(e)}function c(e,t,n,r=0){return new o.T2(((o,u)=>{const l=e[r];if(null===t||"function"!==typeof l)o(t);else{const f=l({...t},n);s.T&&l.id&&null===f&&i.vF.log(`Event processor "${l.id}" dropped event`),(0,a.Qg)(f)?f.then((t=>c(e,t,n,r+1).then(o))).then(null,u):c(e,f,n,r+1).then(o).then(null,u)}}))}},83741:(e,t,n)=>{"use strict";n.d(t,{Cp:()=>u,J0:()=>g,J5:()=>m,KU:()=>h,ZQ:()=>c,gV:()=>f,o5:()=>p,r:()=>l,v4:()=>d});var r=n(16341),o=n(92967),i=n(86641),a=n(7058),s=n(49475);function u(e,t){return(0,i.BF)().captureException(e,(0,s.li)(t))}function l(e,t){return(0,i.BF)().captureEvent(e,t)}function c(e,t){(0,i.BF)().addBreadcrumb(e,t)}function f(e){(0,i.BF)().setUser(e)}function d(...e){const t=(0,i.BF)();if(2===e.length){const[n,r]=e;return n?t.withScope((()=>(t.getStackTop().scope=n,r(n)))):t.withScope(r)}return t.withScope(e[0])}function h(){return(0,i.BF)().getClient()}function p(){return(0,i.BF)().getScope()}function g(e){const t=h(),n=(0,i.rm)(),s=p(),{release:u,environment:l=o.U}=t&&t.getOptions()||{},{userAgent:c}=r.OW.navigator||{},f=(0,a.fj)({release:u,environment:l,user:s.getUser()||n.getUser(),...c&&{userAgent:c},...e}),d=n.getSession();return d&&"ok"===d.status&&(0,a.qO)(d,{status:"exited"}),v(),n.setSession(f),s.setSession(f),f}function v(){const e=(0,i.rm)(),t=p(),n=t.getSession()||e.getSession();n&&(0,a.Vu)(n),y(),e.setSession(),t.setSession()}function y(){const e=(0,i.rm)(),t=p(),n=h(),r=t.getSession()||e.getSession();r&&n&&n.captureSession&&n.captureSession(r)}function m(e=!1){e?v():y()}},86641:(e,t,n)=>{"use strict";n.d(t,{BF:()=>m,rm:()=>b});var r=n(73816),o=n(6936),i=n(89297),a=n(17412),s=n(16341),u=n(92967),l=n(92220),c=n(22486),f=n(7058),d=n(57986);const h=parseFloat(d.M),p=100;class g{constructor(e,t,n,r=h){let o,i;this._version=r,t?o=t:(o=new c.HG,o.setClient(e)),n?i=n:(i=new c.HG,i.setClient(e)),this._stack=[{scope:o}],e&&this.bindClient(e),this._isolationScope=i}isOlderThan(e){return this._version<e}bindClient(e){const t=this.getStackTop();t.client=e,t.scope.setClient(e),e&&e.setupIntegrations&&e.setupIntegrations()}pushScope(){const e=this.getScope().clone();return this.getStack().push({client:this.getClient(),scope:e}),e}popScope(){return!(this.getStack().length<=1)&&!!this.getStack().pop()}withScope(e){const t=this.pushScope();let n;try{n=e(t)}catch(o){throw this.popScope(),o}return(0,r.Qg)(n)?n.then((e=>(this.popScope(),e)),(e=>{throw this.popScope(),e})):(this.popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStack(){return this._stack}getStackTop(){return this._stack[this._stack.length-1]}captureException(e,t){const n=this._lastEventId=t&&t.event_id?t.event_id:(0,o.eJ)(),r=new Error("Sentry syntheticException");return this.getScope().captureException(e,{originalException:e,syntheticException:r,...t,event_id:n}),n}captureMessage(e,t,n){const r=this._lastEventId=n&&n.event_id?n.event_id:(0,o.eJ)(),i=new Error(e);return this.getScope().captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r}),r}captureEvent(e,t){const n=t&&t.event_id?t.event_id:(0,o.eJ)();return e.type||(this._lastEventId=n),this.getScope().captureEvent(e,{...t,event_id:n}),n}lastEventId(){return this._lastEventId}addBreadcrumb(e,t){const{scope:n,client:r}=this.getStackTop();if(!r)return;const{beforeBreadcrumb:o=null,maxBreadcrumbs:s=p}=r.getOptions&&r.getOptions()||{};if(s<=0)return;const u={timestamp:(0,i.lu)(),...e},l=o?(0,a.pq)((()=>o(u,t))):u;null!==l&&(r.emit&&r.emit("beforeAddBreadcrumb",l,t),n.addBreadcrumb(l,s))}setUser(e){this.getScope().setUser(e),this.getIsolationScope().setUser(e)}setTags(e){this.getScope().setTags(e),this.getIsolationScope().setTags(e)}setExtras(e){this.getScope().setExtras(e),this.getIsolationScope().setExtras(e)}setTag(e,t){this.getScope().setTag(e,t),this.getIsolationScope().setTag(e,t)}setExtra(e,t){this.getScope().setExtra(e,t),this.getIsolationScope().setExtra(e,t)}setContext(e,t){this.getScope().setContext(e,t),this.getIsolationScope().setContext(e,t)}configureScope(e){const{scope:t,client:n}=this.getStackTop();n&&e(t)}run(e){const t=y(this);try{e(this)}finally{y(t)}}getIntegration(e){const t=this.getClient();if(!t)return null;try{return t.getIntegration(e)}catch(n){return l.T&&a.vF.warn(`Cannot retrieve integration ${e.id} from the current Hub`),null}}startTransaction(e,t){const n=this._callExtensionMethod("startTransaction",e,t);if(l.T&&!n){this.getClient()?a.vF.warn("Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n"):a.vF.warn("Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'")}return n}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(e=!1){if(e)return this.endSession();this._sendSessionUpdate()}endSession(){const e=this.getStackTop().scope,t=e.getSession();t&&(0,f.Vu)(t),this._sendSessionUpdate(),e.setSession()}startSession(e){const{scope:t,client:n}=this.getStackTop(),{release:r,environment:o=u.U}=n&&n.getOptions()||{},{userAgent:i}=s.OW.navigator||{},a=(0,f.fj)({release:r,environment:o,user:t.getUser(),...i&&{userAgent:i},...e}),l=t.getSession&&t.getSession();return l&&"ok"===l.status&&(0,f.qO)(l,{status:"exited"}),this.endSession(),t.setSession(a),a}shouldSendDefaultPii(){const e=this.getClient(),t=e&&e.getOptions();return Boolean(t&&t.sendDefaultPii)}_sendSessionUpdate(){const{scope:e,client:t}=this.getStackTop(),n=e.getSession();n&&t&&t.captureSession&&t.captureSession(n)}_callExtensionMethod(e,...t){const n=v().__SENTRY__;if(n&&n.extensions&&"function"===typeof n.extensions[e])return n.extensions[e].apply(this,t);l.T&&a.vF.warn(`Extension method ${e} couldn't be found, doing nothing.`)}}function v(){return s.OW.__SENTRY__=s.OW.__SENTRY__||{extensions:{},hub:void 0},s.OW}function y(e){const t=v(),n=x(t);return S(t,e),n}function m(){const e=v();if(e.__SENTRY__&&e.__SENTRY__.acs){const t=e.__SENTRY__.acs.getCurrentHub();if(t)return t}return _(e)}function b(){return m().getIsolationScope()}function _(e=v()){return w(e)&&!x(e).isOlderThan(h)||S(e,new g),x(e)}function w(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function x(e){return(0,s.BY)("hub",(()=>new g),e)}function S(e,t){if(!e)return!1;return(e.__SENTRY__=e.__SENTRY__||{}).hub=t,!0}},22486:(e,t,n)=>{"use strict";n.d(t,{HG:()=>f,m6:()=>d});var r=n(73816),o=n(89297),i=n(6936),a=n(17412),s=n(42531),u=n(7058),l=n(41535);let c;class f{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=h()}static clone(e){return e?e.clone():new f}clone(){const e=new f;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},e._user=this._user,e._level=this._level,e._span=this._span,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._requestSession=this._requestSession,e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e}setClient(e){this._client=e}getClient(){return this._client}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,segment:void 0,username:void 0},this._session&&(0,u.qO)(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSpan(e){return this._span=e,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const e=this._span;return e&&e.transaction}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t="function"===typeof e?e(this):e;if(t instanceof f){const e=t.getScopeData();this._tags={...this._tags,...e.tags},this._extra={...this._extra,...e.extra},this._contexts={...this._contexts,...e.contexts},e.user&&Object.keys(e.user).length&&(this._user=e.user),e.level&&(this._level=e.level),e.fingerprint.length&&(this._fingerprint=e.fingerprint),t.getRequestSession()&&(this._requestSession=t.getRequestSession()),e.propagationContext&&(this._propagationContext=e.propagationContext)}else if((0,r.Qd)(t)){const t=e;this._tags={...this._tags,...t.tags},this._extra={...this._extra,...t.extra},this._contexts={...this._contexts,...t.contexts},t.user&&(this._user=t.user),t.level&&(this._level=t.level),t.fingerprint&&(this._fingerprint=t.fingerprint),t.requestSession&&(this._requestSession=t.requestSession),t.propagationContext&&(this._propagationContext=t.propagationContext)}return this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this._propagationContext=h(),this}addBreadcrumb(e,t){const n="number"===typeof t?t:100;if(n<=0)return this;const r={timestamp:(0,o.lu)(),...e},i=this._breadcrumbs;return i.push(r),this._breadcrumbs=i.length>n?i.slice(-n):i,this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}getAttachments(){return this.getScopeData().attachments}clearAttachments(){return this._attachments=[],this}getScopeData(){const{_breadcrumbs:e,_attachments:t,_contexts:n,_tags:r,_extra:o,_user:i,_level:a,_fingerprint:s,_eventProcessors:u,_propagationContext:l,_sdkProcessingMetadata:c,_transactionName:f,_span:d}=this;return{breadcrumbs:e,attachments:t,contexts:n,tags:r,extra:o,user:i,level:a,fingerprint:s||[],eventProcessors:u,propagationContext:l,sdkProcessingMetadata:c,transactionName:f,span:d}}applyToEvent(e,t={},n=[]){(0,l.e2)(e,this.getScopeData());const r=[...n,...(0,s.lG)(),...this._eventProcessors];return(0,s.jB)(r,e,t)}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...e},this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const n=t&&t.event_id?t.event_id:(0,i.eJ)();if(!this._client)return a.vF.warn("No client configured on scope - will not capture exception!"),n;const r=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){const r=n&&n.event_id?n.event_id:(0,i.eJ)();if(!this._client)return a.vF.warn("No client configured on scope - will not capture message!"),r;const o=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:o,...n,event_id:r},this),r}captureEvent(e,t){const n=t&&t.event_id?t.event_id:(0,i.eJ)();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(a.vF.warn("No client configured on scope - will not capture event!"),n)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((e=>{e(this)})),this._notifyingListeners=!1)}}function d(){return c||(c=new f),c}function h(){return{traceId:(0,i.eJ)(),spanId:(0,i.eJ)().substring(16)}}},7058:(e,t,n)=>{"use strict";n.d(t,{Vu:()=>u,fj:()=>a,qO:()=>s});var r=n(89297),o=n(6936),i=n(68411);function a(e){const t=(0,r.zf)(),n={sid:(0,o.eJ)(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return(0,i.Ce)({sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:"number"===typeof e.did||"string"===typeof e.did?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}(n)};return e&&s(n,e),n}function s(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||(0,r.zf)(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:(0,o.eJ)()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),"number"===typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if("number"===typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),"number"===typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function u(e,t){let n={};t?n={status:t}:"ok"===e.status&&(n={status:"exited"}),s(e,n)}},75452:(e,t,n)=>{"use strict";n.d(t,{k:()=>l,l:()=>u});var r=n(68411),o=n(92967),i=n(83741),a=n(34636),s=n(3445);function u(e,t,n){const i=t.getOptions(),{publicKey:a}=t.getDsn()||{},{segment:s}=n&&n.getUser()||{},u=(0,r.Ce)({environment:i.environment||o.U,release:i.release,user_segment:s,public_key:a,trace_id:e});return t.emit&&t.emit("createDsc",u),u}function l(e){const t=(0,i.KU)();if(!t)return{};const n=u((0,s.et)(e).trace_id||"",t,(0,i.o5)()),r=(0,a.z)(e);if(!r)return n;const o=r&&r._frozenDynamicSamplingContext;if(o)return o;const{sampleRate:l,source:c}=r.metadata;null!=l&&(n.sample_rate=`${l}`);const f=(0,s.et)(r);return c&&"url"!==c&&(n.transaction=f.description),n.sampled=String((0,s.pK)(r)),t.emit&&t.emit("createDsc",n),n}},41535:(e,t,n)=>{"use strict";n.d(t,{Rg:()=>l,e2:()=>u});var r=n(68411),o=n(6936),i=n(75452),a=n(34636),s=n(3445);function u(e,t){const{fingerprint:n,span:u,breadcrumbs:l,sdkProcessingMetadata:c}=t;!function(e,t){const{extra:n,tags:o,user:i,contexts:a,level:s,transactionName:u}=t,l=(0,r.Ce)(n);l&&Object.keys(l).length&&(e.extra={...l,...e.extra});const c=(0,r.Ce)(o);c&&Object.keys(c).length&&(e.tags={...c,...e.tags});const f=(0,r.Ce)(i);f&&Object.keys(f).length&&(e.user={...f,...e.user});const d=(0,r.Ce)(a);d&&Object.keys(d).length&&(e.contexts={...d,...e.contexts});s&&(e.level=s);u&&(e.transaction=u)}(e,t),u&&function(e,t){e.contexts={trace:(0,s.kX)(t),...e.contexts};const n=(0,a.z)(t);if(n){e.sdkProcessingMetadata={dynamicSamplingContext:(0,i.k)(t),...e.sdkProcessingMetadata};const r=(0,s.et)(n).description;r&&(e.tags={transaction:r,...e.tags})}}(e,u),function(e,t){e.fingerprint=e.fingerprint?(0,o.k9)(e.fingerprint):[],t&&(e.fingerprint=e.fingerprint.concat(t));e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}(e,n),function(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}(e,l),function(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}(e,c)}function l(e,t){const{extra:n,tags:r,user:o,contexts:i,level:a,sdkProcessingMetadata:s,breadcrumbs:u,fingerprint:l,eventProcessors:f,attachments:d,propagationContext:h,transactionName:p,span:g}=t;c(e,"extra",n),c(e,"tags",r),c(e,"user",o),c(e,"contexts",i),c(e,"sdkProcessingMetadata",s),a&&(e.level=a),p&&(e.transactionName=p),g&&(e.span=g),u.length&&(e.breadcrumbs=[...e.breadcrumbs,...u]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),f.length&&(e.eventProcessors=[...e.eventProcessors,...f]),d.length&&(e.attachments=[...e.attachments,...d]),e.propagationContext={...e.propagationContext,...h}}function c(e,t,n){if(n&&Object.keys(n).length){e[t]={...e[t]};for(const r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[t][r]=n[r])}}},34636:(e,t,n)=>{"use strict";function r(e){return e.transaction}n.d(t,{z:()=>r})},49475:(e,t,n)=>{"use strict";n.d(t,{li:()=>g,mG:()=>h});var r=n(6936),o=n(89297),i=n(39653),a=n(16341),s=n(42181),u=n(92967),l=n(42531),c=n(22486),f=n(41535),d=n(3445);function h(e,t,n,h,g,v){const{normalizeDepth:y=3,normalizeMaxBreadth:m=1e3}=e,b={...t,event_id:t.event_id||n.event_id||(0,r.eJ)(),timestamp:t.timestamp||(0,o.lu)()},_=n.integrations||e.integrations.map((e=>e.name));!function(e,t){const{environment:n,release:r,dist:o,maxValueLength:a=250}=t;"environment"in e||(e.environment="environment"in t?n:u.U);void 0===e.release&&void 0!==r&&(e.release=r);void 0===e.dist&&void 0!==o&&(e.dist=o);e.message&&(e.message=(0,i.xv)(e.message,a));const s=e.exception&&e.exception.values&&e.exception.values[0];s&&s.value&&(s.value=(0,i.xv)(s.value,a));const l=e.request;l&&l.url&&(l.url=(0,i.xv)(l.url,a))}(b,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(b,_),void 0===t.type&&function(e,t){const n=a.OW._sentryDebugIds;if(!n)return;let r;const o=p.get(t);o?r=o:(r=new Map,p.set(t,r));const i=Object.keys(n).reduce(((e,o)=>{let i;const a=r.get(o);a?i=a:(i=t(o),r.set(o,i));for(let t=i.length-1;t>=0;t--){const r=i[t];if(r.filename){e[r.filename]=n[o];break}}return e}),{});try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.filename&&(e.debug_id=i[e.filename])}))}))}catch(s){}}(b,e.stackParser);const w=function(e,t){if(!t)return e;const n=e?e.clone():new c.HG;return n.update(t),n}(h,n.captureContext);n.mechanism&&(0,r.M6)(b,n.mechanism);const x=g&&g.getEventProcessors?g.getEventProcessors():[],S=(0,c.m6)().getScopeData();if(v){const e=v.getScopeData();(0,f.Rg)(S,e)}if(w){const e=w.getScopeData();(0,f.Rg)(S,e)}const A=[...n.attachments||[],...S.attachments];A.length&&(n.attachments=A),(0,f.e2)(b,S);const E=[...x,...(0,l.lG)(),...S.eventProcessors];return(0,l.jB)(E,b,n).then((e=>(e&&function(e){const t={};try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)}))}))}catch(r){}if(0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.keys(t).forEach((e=>{n.push({type:"sourcemap",code_file:e,debug_id:t[e]})}))}(e),"number"===typeof y&&y>0?function(e,t,n){if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((e=>({...e,...e.data&&{data:(0,s.S8)(e.data,t,n)}})))},...e.user&&{user:(0,s.S8)(e.user,t,n)},...e.contexts&&{contexts:(0,s.S8)(e.contexts,t,n)},...e.extra&&{extra:(0,s.S8)(e.extra,t,n)}};e.contexts&&e.contexts.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=(0,s.S8)(e.contexts.trace.data,t,n)));e.spans&&(r.spans=e.spans.map((e=>{const r=(0,d.et)(e).data;return r&&(e.data=(0,s.S8)(r,t,n)),e})));return r}(e,y,m):e)))}const p=new WeakMap;function g(e){if(e)return function(e){return e instanceof c.HG||"function"===typeof e}(e)||function(e){return Object.keys(e).some((e=>v.includes(e)))}(e)?{captureContext:e}:e}const v=["user","level","extra","contexts","tags","fingerprint","requestSession","propagationContext"]},40601:(e,t,n)=>{"use strict";n.d(t,{K:()=>o});var r=n(57986);function o(e,t,n=[t],o="npm"){const i=e._metadata||{};i.sdk||(i.sdk={name:`sentry.javascript.${t}`,packages:n.map((e=>({name:`${o}:@sentry/${e}`,version:r.M}))),version:r.M}),e._metadata=i}},3445:(e,t,n)=>{"use strict";n.d(t,{et:()=>a,kX:()=>i,pK:()=>s});var r=n(68411);const o=1;function i(e){const{spanId:t,traceId:n}=e.spanContext(),{data:o,op:i,parent_span_id:s,status:u,tags:l,origin:c}=a(e);return(0,r.Ce)({data:o,op:i,parent_span_id:s,span_id:t,status:u,tags:l,trace_id:n,origin:c})}function a(e){return function(e){return"function"===typeof e.getSpanJSON}(e)?e.getSpanJSON():"function"===typeof e.toJSON?e.toJSON():{}}function s(e){const{traceFlags:t}=e.spanContext();return Boolean(t&o)}},57986:(e,t,n)=>{"use strict";n.d(t,{M:()=>r});const r="7.104.0"},41358:(e,t,n)=>{"use strict";n.d(t,{tH:()=>c});var r=n(83741),o=n(10390),i=n(73816),a=n(17412),s=(n(4146),n(96540));const u="undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;const l={componentStack:null,error:null,eventId:null};class c extends s.Component{constructor(e){super(e),c.prototype.__init.call(this),this.state=l,this._openFallbackReportDialog=!0;const t=(0,r.KU)();t&&t.on&&e.showDialog&&(this._openFallbackReportDialog=!1,t.on("afterSendEvent",(t=>{t.type||t.event_id!==this._lastEventId||(0,o.mn)({...e.dialogOptions,eventId:this._lastEventId})})))}componentDidCatch(e,{componentStack:t}){const{beforeCapture:n,onError:a,showDialog:u,dialogOptions:l}=this.props;(0,r.v4)((c=>{if(function(e){const t=e.match(/^([^.]+)/);return null!==t&&parseInt(t[0])>=17}(s.version)&&(0,i.bJ)(e)){const n=new Error(e.message);n.name=`React ErrorBoundary ${e.name}`,n.stack=t,function(e,t){const n=new WeakMap;!function e(t,r){if(!n.has(t))return t.cause?(n.set(t,!0),e(t.cause,r)):void(t.cause=r)}(e,t)}(e,n)}n&&n(c,e,t);const f=(0,r.Cp)(e,{captureContext:{contexts:{react:{componentStack:t}}},mechanism:{handled:!1}});a&&a(e,t,f),u&&(this._lastEventId=f,this._openFallbackReportDialog&&(0,o.mn)({...l,eventId:f})),this.setState({error:e,componentStack:t,eventId:f})}))}componentDidMount(){const{onMount:e}=this.props;e&&e()}componentWillUnmount(){const{error:e,componentStack:t,eventId:n}=this.state,{onUnmount:r}=this.props;r&&r(e,t,n)}__init(){this.resetErrorBoundary=()=>{const{onReset:e}=this.props,{error:t,componentStack:n,eventId:r}=this.state;e&&e(t,n,r),this.setState(l)}}render(){const{fallback:e,children:t}=this.props,n=this.state;if(n.error){let t;return t="function"===typeof e?e({error:n.error,componentStack:n.componentStack,resetError:this.resetErrorBoundary,eventId:n.eventId}):e,s.isValidElement(t)?t:(e&&u&&a.vF.warn("fallback did not produce a valid ReactElement"),null)}return"function"===typeof t?t():t}}},12968:(e,t,n)=>{"use strict";n.d(t,{T:()=>i});var r=n(10390),o=n(40601);function i(e){const t={...e};(0,o.K)(t,"react"),(0,r.Ts)(t)}},19766:(e,t,n)=>{"use strict";n.d(t,{$N:()=>u,Hd:()=>a,xE:()=>l});var r=n(73816);const o=(0,n(16341).VZ)(),i=80;function a(e,t={}){if(!e)return"<unknown>";try{let n=e;const r=5,o=[];let a=0,u=0;const l=" > ",c=l.length;let f;const d=Array.isArray(t)?t:t.keyAttrs,h=!Array.isArray(t)&&t.maxStringLength||i;for(;n&&a++<r&&(f=s(n,d),!("html"===f||a>1&&u+o.length*c+f.length>=h));)o.push(f),u+=f.length,n=n.parentNode;return o.reverse().join(l)}catch(n){return"<unknown>"}}function s(e,t){const n=e,i=[];let a,s,u,l,c;if(!n||!n.tagName)return"";if(o.HTMLElement&&n instanceof HTMLElement&&n.dataset&&n.dataset.sentryComponent)return n.dataset.sentryComponent;i.push(n.tagName.toLowerCase());const f=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(f&&f.length)f.forEach((e=>{i.push(`[${e[0]}="${e[1]}"]`)}));else if(n.id&&i.push(`#${n.id}`),a=n.className,a&&(0,r.Kg)(a))for(s=a.split(/\s+/),c=0;c<s.length;c++)i.push(`.${s[c]}`);const d=["aria-label","type","name","title","alt"];for(c=0;c<d.length;c++)u=d[c],l=n.getAttribute(u),l&&i.push(`[${u}="${l}"]`);return i.join("")}function u(){try{return o.document.location.href}catch(e){return""}}function l(e){if(!o.HTMLElement)return null;let t=e;for(let n=0;n<5;n++){if(!t)return null;if(t instanceof HTMLElement&&t.dataset.sentryComponent)return t.dataset.sentryComponent;t=t.parentNode}return null}},5644:(e,t,n)=>{"use strict";n.d(t,{T:()=>r});const r="undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},73816:(e,t,n)=>{"use strict";n.d(t,{BD:()=>s,Kg:()=>l,L2:()=>_,NF:()=>c,Qd:()=>d,Qg:()=>v,T2:()=>a,W6:()=>u,bJ:()=>o,gd:()=>g,mE:()=>y,sO:()=>f,tH:()=>b,vq:()=>p,xH:()=>h,yr:()=>m});const r=Object.prototype.toString;function o(e){switch(r.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return b(e,Error)}}function i(e,t){return r.call(e)===`[object ${t}]`}function a(e){return i(e,"ErrorEvent")}function s(e){return i(e,"DOMError")}function u(e){return i(e,"DOMException")}function l(e){return i(e,"String")}function c(e){return"object"===typeof e&&null!==e&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function f(e){return null===e||c(e)||"object"!==typeof e&&"function"!==typeof e}function d(e){return i(e,"Object")}function h(e){return"undefined"!==typeof Event&&b(e,Event)}function p(e){return"undefined"!==typeof Element&&b(e,Element)}function g(e){return i(e,"RegExp")}function v(e){return Boolean(e&&e.then&&"function"===typeof e.then)}function y(e){return d(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function m(e){return"number"===typeof e&&e!==e}function b(e,t){try{return e instanceof t}catch(n){return!1}}function _(e){return!("object"!==typeof e||null===e||!e.__isVue&&!e._isVue)}},17412:(e,t,n)=>{"use strict";n.d(t,{Ow:()=>i,Z9:()=>a,pq:()=>s,vF:()=>u});var r=n(5644),o=n(16341);const i=["debug","info","warn","error","log","assert","trace"],a={};function s(e){if(!("console"in o.OW))return e();const t=o.OW.console,n={},r=Object.keys(a);r.forEach((e=>{const r=a[e];n[e]=t[e],t[e]=r}));try{return e()}finally{r.forEach((e=>{t[e]=n[e]}))}}const u=function(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1},isEnabled:()=>e};return r.T?i.forEach((n=>{t[n]=(...t)=>{e&&s((()=>{o.OW.console[n](`Sentry Logger [${n}]:`,...t)}))}})):i.forEach((e=>{t[e]=()=>{}})),t}()},6936:(e,t,n)=>{"use strict";n.d(t,{$X:()=>s,GR:()=>c,M6:()=>l,eJ:()=>i,gO:()=>u,k9:()=>f});var r=n(68411),o=n(16341);function i(){const e=o.OW,t=e.crypto||e.msCrypto;let n=()=>16*Math.random();try{if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,"");t&&t.getRandomValues&&(n=()=>{const e=new Uint8Array(1);return t.getRandomValues(e),e[0]})}catch(r){}return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,(e=>(e^(15&n())>>e/4).toString(16)))}function a(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function s(e){const{message:t,event_id:n}=e;if(t)return t;const r=a(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"<unknown>":n||"<unknown>"}function u(e,t,n){const r=e.exception=e.exception||{},o=r.values=r.values||[],i=o[0]=o[0]||{};i.value||(i.value=t||""),i.type||(i.type=n||"Error")}function l(e,t){const n=a(e);if(!n)return;const r=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...r,...t},t&&"data"in t){const e={...r&&r.data,...t.data};n.mechanism.data=e}}function c(e){if(e&&e.__sentry_captured__)return!0;try{(0,r.my)(e,"__sentry_captured__",!0)}catch(t){}return!1}function f(e){return Array.isArray(e)?e:[e]}},42181:(e,t,n)=>{"use strict";n.d(t,{S8:()=>a,cd:()=>s});var r=n(73816);var o=n(68411),i=n(83917);function a(e,t=100,n=1/0){try{return u("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function s(e,t=3,n=102400){const r=a(e,t);return o=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(o))>n?s(e,t-1,n):r;var o}function u(e,t,a=1/0,s=1/0,l=function(){const e="function"===typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;e<t.length;e++)if(t[e]===n)return!0;return t.push(n),!1},function(n){if(e)t.delete(n);else for(let e=0;e<t.length;e++)if(t[e]===n){t.splice(e,1);break}}]}()){const[c,f]=l;if(null==t||["number","boolean","string"].includes(typeof t)&&!(0,r.yr)(t))return t;const d=function(e,t){try{if("domain"===e&&t&&"object"===typeof t&&t._events)return"[Domain]";if("domainEmitter"===e)return"[DomainEmitter]";if("undefined"!==typeof n.g&&t===n.g)return"[Global]";if("undefined"!==typeof window&&t===window)return"[Window]";if("undefined"!==typeof document&&t===document)return"[Document]";if((0,r.L2)(t))return"[VueViewModel]";if((0,r.mE)(t))return"[SyntheticEvent]";if("number"===typeof t&&t!==t)return"[NaN]";if("function"===typeof t)return`[Function: ${(0,i.qQ)(t)}]`;if("symbol"===typeof t)return`[${String(t)}]`;if("bigint"===typeof t)return`[BigInt: ${String(t)}]`;const o=function(e){const t=Object.getPrototypeOf(e);return t?t.constructor.name:"null prototype"}(t);return/^HTML(\w*)Element$/.test(o)?`[HTMLElement: ${o}]`:`[object ${o}]`}catch(o){return`**non-serializable** (${o})`}}(e,t);if(!d.startsWith("[object "))return d;if(t.__sentry_skip_normalization__)return t;const h="number"===typeof t.__sentry_override_normalization_depth__?t.__sentry_override_normalization_depth__:a;if(0===h)return d.replace("object ","");if(c(t))return"[Circular ~]";const p=t;if(p&&"function"===typeof p.toJSON)try{return u("",p.toJSON(),h-1,s,l)}catch(m){}const g=Array.isArray(t)?[]:{};let v=0;const y=(0,o.W4)(t);for(const n in y){if(!Object.prototype.hasOwnProperty.call(y,n))continue;if(v>=s){g[n]="[MaxProperties ~]";break}const e=y[n];g[n]=u(n,e,h-1,s,l),v++}return f(t),g}},68411:(e,t,n)=>{"use strict";n.d(t,{Ce:()=>y,GS:()=>u,HF:()=>v,W4:()=>h,my:()=>l,pO:()=>c,sp:()=>f,u4:()=>d});var r=n(19766),o=n(5644),i=n(73816),a=n(17412),s=n(39653);function u(e,t,n){if(!(t in e))return;const r=e[t],o=n(r);"function"===typeof o&&c(o,r),e[t]=o}function l(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch(r){o.T&&a.vF.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function c(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,l(e,"__sentry_original__",t)}catch(n){}}function f(e){return e.__sentry_original__}function d(e){return Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}function h(e){if((0,i.bJ)(e))return{message:e.message,name:e.name,stack:e.stack,...g(e)};if((0,i.xH)(e)){const t={type:e.type,target:p(e.target),currentTarget:p(e.currentTarget),...g(e)};return"undefined"!==typeof CustomEvent&&(0,i.tH)(e,CustomEvent)&&(t.detail=e.detail),t}return e}function p(e){try{return(0,i.vq)(e)?(0,r.Hd)(e):Object.prototype.toString.call(e)}catch(t){return"<unknown>"}}function g(e){if("object"===typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function v(e,t=40){const n=Object.keys(h(e));if(n.sort(),!n.length)return"[object has no keys]";if(n[0].length>=t)return(0,s.xv)(n[0],t);for(let r=n.length;r>0;r--){const e=n.slice(0,r).join(", ");if(!(e.length>t))return r===n.length?e:(0,s.xv)(e,t)}return""}function y(e){return m(e,new Map)}function m(e,t){if(function(e){if(!(0,i.Qd)(e))return!1;try{const t=Object.getPrototypeOf(e).constructor.name;return!t||"Object"===t}catch(t){return!0}}(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const o of Object.keys(e))"undefined"!==typeof e[o]&&(r[o]=m(e[o],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(m(e,t))})),r}return e}},83917:(e,t,n)=>{"use strict";n.d(t,{gd:()=>a,qQ:()=>l,vk:()=>s});const r=50,o=/\(error: (.*)\)/,i=/captureMessage|captureException/;function a(...e){const t=e.sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));return(e,n=0)=>{const a=[],s=e.split("\n");for(let i=n;i<s.length;i++){const e=s[i];if(e.length>1024)continue;const n=o.test(e)?e.replace(o,"$1"):e;if(!n.match(/\S*Error: /)){for(const e of t){const t=e(n);if(t){a.push(t);break}}if(a.length>=r)break}}return function(e){if(!e.length)return[];const t=Array.from(e);/sentryWrapped/.test(t[t.length-1].function||"")&&t.pop();t.reverse(),i.test(t[t.length-1].function||"")&&(t.pop(),i.test(t[t.length-1].function||"")&&t.pop());return t.slice(0,r).map((e=>({...e,filename:e.filename||t[t.length-1].filename,function:e.function||"?"})))}(a)}}function s(e){return Array.isArray(e)?a(...e):e}const u="<anonymous>";function l(e){try{return e&&"function"===typeof e&&e.name||u}catch(t){return u}}},39653:(e,t,n)=>{"use strict";n.d(t,{Xr:()=>a,gt:()=>i,xv:()=>o});var r=n(73816);function o(e,t=0){return"string"!==typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function i(e,t){if(!Array.isArray(e))return"";const n=[];for(let i=0;i<e.length;i++){const t=e[i];try{(0,r.L2)(t)?n.push("[VueViewModel]"):n.push(String(t))}catch(o){n.push("[value cannot be serialized]")}}return n.join(t)}function a(e,t=[],n=!1){return t.some((t=>function(e,t,n=!1){return!!(0,r.Kg)(e)&&((0,r.gd)(t)?t.test(e):!!(0,r.Kg)(t)&&(n?e===t:e.includes(t)))}(e,t,n)))}},60690:(e,t,n)=>{"use strict";n.d(t,{T2:()=>s,XW:()=>i,xg:()=>a});var r,o=n(73816);function i(e){return new s((t=>{t(e)}))}function a(e){return new s(((t,n)=>{n(e)}))}!function(e){e[e.PENDING=0]="PENDING";e[e.RESOLVED=1]="RESOLVED";e[e.REJECTED=2]="REJECTED"}(r||(r={}));class s{constructor(e){s.prototype.__init.call(this),s.prototype.__init2.call(this),s.prototype.__init3.call(this),s.prototype.__init4.call(this),this._state=r.PENDING,this._handlers=[];try{e(this._resolve,this._reject)}catch(t){this._reject(t)}}then(e,t){return new s(((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(o){r(o)}else n(t)},e=>{if(t)try{n(t(e))}catch(o){r(o)}else r(e)}]),this._executeHandlers()}))}catch(e){return this.then((e=>e),e)}finally(e){return new s(((t,n)=>{let r,o;return this.then((t=>{o=!1,r=t,e&&e()}),(t=>{o=!0,r=t,e&&e()})).then((()=>{o?n(r):t(r)}))}))}__init(){this._resolve=e=>{this._setResult(r.RESOLVED,e)}}__init2(){this._reject=e=>{this._setResult(r.REJECTED,e)}}__init3(){this._setResult=(e,t)=>{this._state===r.PENDING&&((0,o.Qg)(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init4(){this._executeHandlers=()=>{if(this._state===r.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach((e=>{e[0]||(this._state===r.RESOLVED&&e[1](this._value),this._state===r.REJECTED&&e[2](this._value),e[0]=!0)}))}}}},89297:(e,t,n)=>{"use strict";n.d(t,{lu:()=>i,zf:()=>a});var r=n(16341);const o=1e3;function i(){return Date.now()/o}const a=function(){const{performance:e}=r.OW;if(!e||!e.now)return i;const t=Date.now()-e.now(),n=void 0==e.timeOrigin?t:e.timeOrigin;return()=>(n+e.now())/o}();let s;(()=>{const{performance:e}=r.OW;if(!e||!e.now)return void(s="none");const t=36e5,n=e.now(),o=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+n-o):t,a=i<t,u=e.timing&&e.timing.navigationStart,l="number"===typeof u?Math.abs(u+n-o):t;a||l<t?i<=l?(s="timeOrigin",e.timeOrigin):s="navigationStart":s="dateNow"})()},16341:(e,t,n)=>{"use strict";function r(e){return e&&e.Math==Math?e:void 0}n.d(t,{BY:()=>a,OW:()=>o,VZ:()=>i});const o="object"==typeof globalThis&&r(globalThis)||"object"==typeof window&&r(window)||"object"==typeof self&&r(self)||"object"==typeof n.g&&r(n.g)||function(){return this}()||{};function i(){return o}function a(e,t,n){const r=n||o,i=r.__SENTRY__=r.__SENTRY__||{};return i[e]||(i[e]=t())}},50402:(e,t,n)=>{"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.r(t),n.d(t,{css:()=>h,default:()=>p,get:()=>o,responsive:()=>d});var o=function(e,t,n,r,o){for(t=t&&t.split?t.split("."):[t],r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e},i=[40,52,64].map((function(e){return e+"em"})),a={space:[0,4,8,16,32,64,128,256,512],fontSizes:[12,14,16,20,24,32,48,64,72]},s={bg:"backgroundColor",m:"margin",mt:"marginTop",mr:"marginRight",mb:"marginBottom",ml:"marginLeft",mx:"marginX",my:"marginY",p:"padding",pt:"paddingTop",pr:"paddingRight",pb:"paddingBottom",pl:"paddingLeft",px:"paddingX",py:"paddingY"},u={marginX:["marginLeft","marginRight"],marginY:["marginTop","marginBottom"],paddingX:["paddingLeft","paddingRight"],paddingY:["paddingTop","paddingBottom"],size:["width","height"]},l={color:"colors",backgroundColor:"colors",borderColor:"colors",margin:"space",marginTop:"space",marginRight:"space",marginBottom:"space",marginLeft:"space",marginX:"space",marginY:"space",padding:"space",paddingTop:"space",paddingRight:"space",paddingBottom:"space",paddingLeft:"space",paddingX:"space",paddingY:"space",top:"space",right:"space",bottom:"space",left:"space",gridGap:"space",gridColumnGap:"space",gridRowGap:"space",gap:"space",columnGap:"space",rowGap:"space",fontFamily:"fonts",fontSize:"fontSizes",fontWeight:"fontWeights",lineHeight:"lineHeights",letterSpacing:"letterSpacings",border:"borders",borderTop:"borders",borderRight:"borders",borderBottom:"borders",borderLeft:"borders",borderWidth:"borderWidths",borderStyle:"borderStyles",borderRadius:"radii",borderTopRightRadius:"radii",borderTopLeftRadius:"radii",borderBottomRightRadius:"radii",borderBottomLeftRadius:"radii",borderTopWidth:"borderWidths",borderTopColor:"colors",borderTopStyle:"borderStyles",borderBottomWidth:"borderWidths",borderBottomColor:"colors",borderBottomStyle:"borderStyles",borderLeftWidth:"borderWidths",borderLeftColor:"colors",borderLeftStyle:"borderStyles",borderRightWidth:"borderWidths",borderRightColor:"colors",borderRightStyle:"borderStyles",outlineColor:"colors",boxShadow:"shadows",textShadow:"shadows",zIndex:"zIndices",width:"sizes",minWidth:"sizes",maxWidth:"sizes",height:"sizes",minHeight:"sizes",maxHeight:"sizes",flexBasis:"sizes",size:"sizes",fill:"colors",stroke:"colors"},c=function(e,t){if("number"!==typeof t||t>=0)return o(e,t,t);var n=Math.abs(t),r=o(e,n,n);return"string"===typeof r?"-"+r:-1*r},f=["margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","top","bottom","left","right"].reduce((function(e,t){var n;return r({},e,((n={})[t]=c,n))}),{}),d=function(e){return function(t){var n={},r=o(t,"breakpoints",i),a=[null].concat(r.map((function(e){return"@media screen and (min-width: "+e+")"})));for(var s in e){var u="function"===typeof e[s]?e[s](t):e[s];if(null!=u)if(Array.isArray(u))for(var l=0;l<u.slice(0,a.length).length;l++){var c=a[l];c?(n[c]=n[c]||{},null!=u[l]&&(n[c][s]=u[l])):n[s]=u[l]}else n[s]=u}return n}},h=function e(t){return function(n){void 0===n&&(n={});var i=r({},a,{},n.theme||n),c={},h="function"===typeof t?t(i):t,p=d(h)(i);for(var g in p){var v=p[g],y="function"===typeof v?v(i):v;if("variant"!==g)if(y&&"object"===typeof y)c[g]=e(y)(i);else{var m=o(s,g,g),b=o(l,m),_=o(i,b,o(i,m,{})),w=o(f,m,o)(_,y,y);if(u[m])for(var x=u[m],S=0;S<x.length;S++)c[x[S]]=w;else c[m]=w}else c=r({},c,{},e(o(i,y))(i))}return c}};const p=h},38075:(e,t,n)=>{"use strict";var r=n(70453),o=n(10487),i=o(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"===typeof n&&i(e,".prototype.")>-1?o(n):n}},10487:(e,t,n)=>{"use strict";var r=n(66743),o=n(70453),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),s=o("%Reflect.apply%",!0)||r.call(a,i),u=o("%Object.getOwnPropertyDescriptor%",!0),l=o("%Object.defineProperty%",!0),c=o("%Math.max%");if(l)try{l({},"a",{value:1})}catch(d){l=null}e.exports=function(e){var t=s(r,a,arguments);u&&l&&(u(t,"length").configurable&&l(t,"length",{value:1+c(0,e.length-(arguments.length-1))}));return t};var f=function(){return s(r,i,arguments)};l?l(e.exports,"apply",{value:f}):e.exports.apply=f},92151:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=t},20053:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.r(t),n.d(t,{clsx:()=>o,default:()=>i});const i=o},3939:e=>{!function(){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=n.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var n=[],r=0;r<e.length;r+=3)for(var o=e[r]<<16|e[r+1]<<8|e[r+2],i=0;i<4;i++)8*r+6*i<=8*e.length?n.push(t.charAt(o>>>6*(3-i)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],r=0,o=0;r<e.length;o=++r%4)0!=o&&n.push((t.indexOf(e.charAt(r-1))&Math.pow(2,-2*o+8)-1)<<2*o|t.indexOf(e.charAt(r))>>>6-2*o);return n}};e.exports=n}()},30454:e=>{"use strict";var t="%[a-f0-9]{2}",n=new RegExp("("+t+")|([^%]+?)","gi"),r=new RegExp("("+t+")+","gi");function o(e,t){try{return[decodeURIComponent(e.join(""))]}catch(i){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],o(n),o(r))}function i(e){try{return decodeURIComponent(e)}catch(i){for(var t=e.match(n)||[],r=1;r<t.length;r++)t=(e=o(t,r).join("")).match(n)||[];return e}}e.exports=function(e){if("string"!==typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var n={"%FE%FF":"\ufffd\ufffd","%FF%FE":"\ufffd\ufffd"},o=r.exec(e);o;){try{n[o[0]]=decodeURIComponent(o[0])}catch(t){var a=i(o[0]);a!==o[0]&&(n[o[0]]=a)}o=r.exec(e)}n["%C2"]="\ufffd";for(var s=Object.keys(n),u=0;u<s.length;u++){var l=s[u];e=e.replace(new RegExp(l,"g"),n[l])}return e}(e)}}},30041:(e,t,n)=>{"use strict";var r=n(30592)(),o=n(70453),i=r&&o("%Object.defineProperty%",!0),a=o("%SyntaxError%"),s=o("%TypeError%"),u=n(75795);e.exports=function(e,t,n){if(!e||"object"!==typeof e&&"function"!==typeof e)throw new s("`obj` must be an object or a function`");if("string"!==typeof t&&"symbol"!==typeof t)throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!==typeof arguments[3]&&null!==arguments[3])throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!==typeof arguments[4]&&null!==arguments[4])throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!==typeof arguments[5]&&null!==arguments[5])throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!==typeof arguments[6])throw new s("`loose`, if provided, must be a boolean");var r=arguments.length>3?arguments[3]:null,o=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,c=arguments.length>6&&arguments[6],f=!!u&&u(e,t);if(i)i(e,t,{configurable:null===l&&f?f.configurable:!l,enumerable:null===r&&f?f.enumerable:!r,value:n,writable:null===o&&f?f.writable:!o});else{if(!c&&(r||o||l))throw new a("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=n}}},38452:(e,t,n)=>{"use strict";var r=n(1189),o="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=n(30041),u=n(30592)(),l=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if("function"!==typeof(o=r)||"[object Function]"!==i.call(o)||!r())return;var o;u?s(e,t,n,!0):s(e,t,n)},c=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s<i.length;s+=1)l(e,i[s],t[i[s]],n[i[s]])};c.supportsDescriptors=!!u,e.exports=c},62523:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.default});var r=n(77887)},76641:(e,t,n)=>{"use strict";n.d(t,{A4:()=>_,GH:()=>i,Tj:()=>o,Z7:()=>s,fi:()=>a});var r=n(43015),o=function(e,t,n,r,o,a){return i(e,t,n,(function(e){return"logscale"!==e&&r(e)}),o,a)},i=function(e,t,n,o,i,a){var s,u,l,c,f=o("pixelsPerLabel"),d=[];if(a)for(s=0;s<a.length;s++)d.push({v:a[s]});else{if(o("logscale")){c=Math.floor(n/f);var h=r.binarySearch(e,y,1),p=r.binarySearch(t,y,-1);-1==h&&(h=0),-1==p&&(p=y.length-1);var g=null;if(p-h>=c/4){for(var v=p;v>=h;v--){var m=y[v],b=Math.log(m/e)/Math.log(t/e)*n,_={v:m};null===g||Math.abs(b-g.pixel_coord)>=f?g={tickValue:m,pixel_coord:b}:_.label="",d.push(_)}d.reverse()}}if(0===d.length){var w,x;o("labelsKMG2")?(w=[1,2,4,8,16,32,64,128,256],x=16):(w=[1,2,5,10,20,50,100],x=10);var S,A,E,C=Math.ceil(n/f),R=Math.abs(t-e)/C,O=Math.floor(Math.log(R)/Math.log(x)),T=Math.pow(x,O);for(u=0;u<w.length&&(S=T*w[u],A=Math.floor(e/S)*S,E=Math.ceil(t/S)*S,!(n/(c=Math.abs(E-A)/S)>f));u++);for(A>E&&(S*=-1),s=0;s<=c;s++)l=A+s*S,d.push({v:l})}}var k=o("axisLabelFormatter");for(s=0;s<d.length;s++)void 0===d[s].label&&(d[s].label=k.call(i,d[s].v,0,o,i));return d},a=function(e,t,n,r,o,i){var a=m(e,t,n,r);return a>=0?_(e,t,a,r,o):[]},s={MILLISECONDLY:0,TWO_MILLISECONDLY:1,FIVE_MILLISECONDLY:2,TEN_MILLISECONDLY:3,FIFTY_MILLISECONDLY:4,HUNDRED_MILLISECONDLY:5,FIVE_HUNDRED_MILLISECONDLY:6,SECONDLY:7,TWO_SECONDLY:8,FIVE_SECONDLY:9,TEN_SECONDLY:10,THIRTY_SECONDLY:11,MINUTELY:12,TWO_MINUTELY:13,FIVE_MINUTELY:14,TEN_MINUTELY:15,THIRTY_MINUTELY:16,HOURLY:17,TWO_HOURLY:18,SIX_HOURLY:19,DAILY:20,TWO_DAILY:21,WEEKLY:22,MONTHLY:23,QUARTERLY:24,BIANNUAL:25,ANNUAL:26,DECADAL:27,CENTENNIAL:28,NUM_GRANULARITIES:29},u=0,l=1,c=2,f=3,d=4,h=5,p=6,g=7,v=[];v[s.MILLISECONDLY]={datefield:p,step:1,spacing:1},v[s.TWO_MILLISECONDLY]={datefield:p,step:2,spacing:2},v[s.FIVE_MILLISECONDLY]={datefield:p,step:5,spacing:5},v[s.TEN_MILLISECONDLY]={datefield:p,step:10,spacing:10},v[s.FIFTY_MILLISECONDLY]={datefield:p,step:50,spacing:50},v[s.HUNDRED_MILLISECONDLY]={datefield:p,step:100,spacing:100},v[s.FIVE_HUNDRED_MILLISECONDLY]={datefield:p,step:500,spacing:500},v[s.SECONDLY]={datefield:h,step:1,spacing:1e3},v[s.TWO_SECONDLY]={datefield:h,step:2,spacing:2e3},v[s.FIVE_SECONDLY]={datefield:h,step:5,spacing:5e3},v[s.TEN_SECONDLY]={datefield:h,step:10,spacing:1e4},v[s.THIRTY_SECONDLY]={datefield:h,step:30,spacing:3e4},v[s.MINUTELY]={datefield:d,step:1,spacing:6e4},v[s.TWO_MINUTELY]={datefield:d,step:2,spacing:12e4},v[s.FIVE_MINUTELY]={datefield:d,step:5,spacing:3e5},v[s.TEN_MINUTELY]={datefield:d,step:10,spacing:6e5},v[s.THIRTY_MINUTELY]={datefield:d,step:30,spacing:18e5},v[s.HOURLY]={datefield:f,step:1,spacing:36e5},v[s.TWO_HOURLY]={datefield:f,step:2,spacing:72e5},v[s.SIX_HOURLY]={datefield:f,step:6,spacing:216e5},v[s.DAILY]={datefield:c,step:1,spacing:864e5},v[s.TWO_DAILY]={datefield:c,step:2,spacing:1728e5},v[s.WEEKLY]={datefield:c,step:7,spacing:6048e5},v[s.MONTHLY]={datefield:l,step:1,spacing:2629746e3},v[s.QUARTERLY]={datefield:l,step:3,spacing:7889238e3},v[s.BIANNUAL]={datefield:l,step:6,spacing:15778476e3},v[s.ANNUAL]={datefield:u,step:1,spacing:31556952e3},v[s.DECADAL]={datefield:u,step:10,spacing:31556952e4},v[s.CENTENNIAL]={datefield:u,step:100,spacing:31556952e5};var y=function(){for(var e=[],t=-39;t<=39;t++)for(var n=Math.pow(10,t),r=1;r<=9;r++){var o=n*r;e.push(o)}return e}(),m=function(e,t,n,r){for(var o=r("pixelsPerLabel"),i=0;i<s.NUM_GRANULARITIES;i++){if(n/b(e,t,i)>=o)return i}return-1},b=function(e,t,n){var r=v[n].spacing;return Math.round(1*(t-e)/r)},_=function(e,t,n,o,i){var a=o("axisLabelFormatter"),y=o("labelsUTC")?r.DateAccessorsUTC:r.DateAccessorsLocal,m=v[n].datefield,b=v[n].step,_=v[n].spacing,w=new Date(e),x=[];x[u]=y.getFullYear(w),x[l]=y.getMonth(w),x[c]=y.getDate(w),x[f]=y.getHours(w),x[d]=y.getMinutes(w),x[h]=y.getSeconds(w),x[p]=y.getMilliseconds(w);var S=x[m]%b;n==s.WEEKLY&&(S=y.getDay(w)),x[m]-=S;for(var A=m+1;A<g;A++)x[A]=A===c?1:0;var E=[],C=y.makeDate.apply(null,x),R=C.getTime();if(n<=s.HOURLY)for(R<e&&(R+=_,C=new Date(R));R<=t;)E.push({v:R,label:a.call(i,C,n,o,i)}),R+=_,C=new Date(R);else for(R<e&&(x[m]+=b,R=(C=y.makeDate.apply(null,x)).getTime());R<=t;)(n>=s.DAILY||y.getHours(C)%b===0)&&E.push({v:R,label:a.call(i,C,n,o,i)}),x[m]+=b,R=(C=y.makeDate.apply(null,x)).getTime();return E}},43015:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Circles:()=>K,DASHED_LINE:()=>c,DOTTED_LINE:()=>l,DOT_DASH_LINE:()=>f,DateAccessorsLocal:()=>O,DateAccessorsUTC:()=>T,HORIZONTAL:()=>d,Iterator:()=>W,LN_TEN:()=>a,LOG_SCALE:()=>i,VERTICAL:()=>h,addEvent:()=>g,binarySearch:()=>N,cancelEvent:()=>y,clone:()=>V,createCanvas:()=>H,createIterator:()=>G,dateAxisLabelFormatter:()=>ve,dateParser:()=>I,dateStrToMillis:()=>L,dateString_:()=>M,dateValueFormatter:()=>ye,detectLineDelimiter:()=>Q,dragGetX_:()=>x,dragGetY_:()=>S,findPos:()=>b,floatFormat:()=>C,getContext:()=>p,getContextPixelRatio:()=>$,hmsString_:()=>k,hsvToRGB:()=>m,isArrayLike:()=>z,isCanvasSupported:()=>ie,isDateLike:()=>B,isNodeContainedBy:()=>J,isOK:()=>A,isPixelChangingOptionList:()=>Z,isValidPoint:()=>E,log10:()=>s,logRangeFraction:()=>u,numberAxisLabelFormatter:()=>pe,numberValueFormatter:()=>he,pageX:()=>_,pageY:()=>w,parseFloat_:()=>ae,pow:()=>ee,removeEvent:()=>v,repeatAndCleanup:()=>Y,requestAnimFrame:()=>q,round_:()=>P,setupDOMready_:()=>we,toRGB_:()=>oe,type:()=>o,typeArrayLike:()=>U,update:()=>D,updateDeep:()=>j,zeropad:()=>R});var r=n(76641);function o(e){return null===e?"null":typeof e}var i=10,a=Math.log(i),s=function(e){return Math.log(e)/a},u=function(e,t,n){var r=s(e),o=r+n*(s(t)-r);return Math.pow(i,o)},l=[2,2],c=[7,3],f=[7,2,2,2],d=1,h=2,p=function(e){return e.getContext("2d")},g=function(e,t,n){e.addEventListener(t,n,!1)};function v(e,t,n){e.removeEventListener(t,n,!1)}function y(e){return(e=e||window.event).stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1,!1}function m(e,t,n){var r,o,i;if(0===t)r=n,o=n,i=n;else{var a=Math.floor(6*e),s=6*e-a,u=n*(1-t),l=n*(1-t*s),c=n*(1-t*(1-s));switch(a){case 1:r=l,o=n,i=u;break;case 2:r=u,o=n,i=c;break;case 3:r=u,o=l,i=n;break;case 4:r=c,o=u,i=n;break;case 5:r=n,o=u,i=l;break;case 6:case 0:r=n,o=c,i=u}}return"rgb("+(r=Math.floor(255*r+.5))+","+(o=Math.floor(255*o+.5))+","+(i=Math.floor(255*i+.5))+")"}function b(e){var t=e.getBoundingClientRect(),n=window,r=document.documentElement;return{x:t.left+(n.pageXOffset||r.scrollLeft),y:t.top+(n.pageYOffset||r.scrollTop)}}function _(e){return!e.pageX||e.pageX<0?0:e.pageX}function w(e){return!e.pageY||e.pageY<0?0:e.pageY}function x(e,t){return _(e)-t.px}function S(e,t){return w(e)-t.py}function A(e){return!!e&&!isNaN(e)}function E(e,t){return!!e&&(null!==e.yval&&(null!==e.x&&void 0!==e.x&&(null!==e.y&&void 0!==e.y&&!(isNaN(e.x)||!t&&isNaN(e.y)))))}function C(e,t){var n=Math.min(Math.max(1,t||2),21);return Math.abs(e)<.001&&0!==e?e.toExponential(n-1):e.toPrecision(n)}function R(e){return e<10?"0"+e:""+e}var O={getFullYear:e=>e.getFullYear(),getMonth:e=>e.getMonth(),getDate:e=>e.getDate(),getHours:e=>e.getHours(),getMinutes:e=>e.getMinutes(),getSeconds:e=>e.getSeconds(),getMilliseconds:e=>e.getMilliseconds(),getDay:e=>e.getDay(),makeDate:function(e,t,n,r,o,i,a){return new Date(e,t,n,r,o,i,a)}},T={getFullYear:e=>e.getUTCFullYear(),getMonth:e=>e.getUTCMonth(),getDate:e=>e.getUTCDate(),getHours:e=>e.getUTCHours(),getMinutes:e=>e.getUTCMinutes(),getSeconds:e=>e.getUTCSeconds(),getMilliseconds:e=>e.getUTCMilliseconds(),getDay:e=>e.getUTCDay(),makeDate:function(e,t,n,r,o,i,a){return new Date(Date.UTC(e,t,n,r,o,i,a))}};function k(e,t,n,r){var o=R(e)+":"+R(t);if(n&&(o+=":"+R(n),r)){var i=""+r;o+="."+("000"+i).substring(i.length)}return o}function M(e,t){var n=t?T:O,r=new Date(e),o=n.getFullYear(r),i=n.getMonth(r),a=n.getDate(r),s=n.getHours(r),u=n.getMinutes(r),l=n.getSeconds(r),c=n.getMilliseconds(r),f=""+o+"/"+R(i+1)+"/"+R(a);return 3600*s+60*u+l+.001*c&&(f+=" "+k(s,u,l,c)),f}function P(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}function N(e,t,n,r,o){if(null!==r&&void 0!==r&&null!==o&&void 0!==o||(r=0,o=t.length-1),r>o)return-1;null!==n&&void 0!==n||(n=0);var i,a=function(e){return e>=0&&e<t.length},s=parseInt((r+o)/2,10),u=t[s];return u==e?s:u>e?n>0&&a(i=s-1)&&t[i]<e?s:N(e,t,n,r,s-1):u<e?n<0&&a(i=s+1)&&t[i]>e?s:N(e,t,n,s+1,o):-1}function I(e){var t,n;if((-1==e.search("-")||-1!=e.search("T")||-1!=e.search("Z"))&&(n=L(e))&&!isNaN(n))return n;if(-1!=e.search("-")){for(t=e.replace("-","/","g");-1!=t.search("-");)t=t.replace("-","/");n=L(t)}else n=L(e);return n&&!isNaN(n)||console.error("Couldn't parse "+e+" as a date"),n}function L(e){return new Date(e).getTime()}function D(e,t){if("undefined"!=typeof t&&null!==t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var F="undefined"!==typeof Node&&null!==Node&&"object"===typeof Node?function(e){return e instanceof Node}:function(e){return"object"===typeof e&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName};function j(e,t){if("undefined"!=typeof t&&null!==t)for(var n in t)if(t.hasOwnProperty(n)){const r=t[n];null===r?e[n]=null:z(r)?e[n]=r.slice():F(r)?e[n]=r:"object"==typeof r?("object"==typeof e[n]&&null!==e[n]||(e[n]={}),j(e[n],r)):e[n]=r}return e}function U(e){if(null===e)return"null";const t=typeof e;return("object"===t||"function"===t&&"function"===typeof e.item)&&"number"===typeof e.length&&3!==e.nodeType&&4!==e.nodeType?"array":t}function z(e){const t=typeof e;return null!==e&&("object"===t||"function"===t&&"function"===typeof e.item)&&"number"===typeof e.length&&3!==e.nodeType&&4!==e.nodeType}function B(e){return null!==e&&"object"===typeof e&&"function"===typeof e.getTime}function V(e){for(var t=[],n=0;n<e.length;n++)z(e[n])?t.push(V(e[n])):t.push(e[n]);return t}function H(){return document.createElement("canvas")}function $(e){try{var t=window.devicePixelRatio,n=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return void 0!==t?t/n:1}catch(r){return 1}}function W(e,t,n,r){t=t||0,n=n||e.length,this.hasNext=!0,this.peek=null,this.start_=t,this.array_=e,this.predicate_=r,this.end_=Math.min(e.length,t+n),this.nextIdx_=t-1,this.next()}function G(e,t,n,r){return new W(e,t,n,r)}W.prototype.next=function(){if(!this.hasNext)return null;for(var e=this.peek,t=this.nextIdx_+1,n=!1;t<this.end_;){if(!this.predicate_||this.predicate_(this.array_,t)){this.peek=this.array_[t],n=!0;break}t++}return this.nextIdx_=t,n||(this.hasNext=!1,this.peek=null),e};var q=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)};function Y(e,t,n,r){var o,i=0,a=(new Date).getTime();if(e(i),1!=t){var s=t-1;!function u(){i>=t||q.call(window,(function(){var t=(new Date).getTime()-a;o=i;var l=(i=Math.floor(t/n))-o;i+l>s||i>=s?(e(s),r()):(0!==l&&e(i),u())}))}()}else r()}var X={annotationClickHandler:!0,annotationDblClickHandler:!0,annotationMouseOutHandler:!0,annotationMouseOverHandler:!0,axisLineColor:!0,axisLineWidth:!0,clickCallback:!0,drawCallback:!0,drawHighlightPointCallback:!0,drawPoints:!0,drawPointCallback:!0,drawGrid:!0,fillAlpha:!0,gridLineColor:!0,gridLineWidth:!0,hideOverlayOnMouseOut:!0,highlightCallback:!0,highlightCircleSize:!0,interactionModel:!0,labelsDiv:!0,labelsKMB:!0,labelsKMG2:!0,labelsSeparateLines:!0,labelsShowZeroValues:!0,legend:!0,panEdgeFraction:!0,pixelsPerYLabel:!0,pointClickCallback:!0,pointSize:!0,rangeSelectorPlotFillColor:!0,rangeSelectorPlotFillGradientColor:!0,rangeSelectorPlotStrokeColor:!0,rangeSelectorBackgroundStrokeColor:!0,rangeSelectorBackgroundLineWidth:!0,rangeSelectorPlotLineWidth:!0,rangeSelectorForegroundStrokeColor:!0,rangeSelectorForegroundLineWidth:!0,rangeSelectorAlpha:!0,showLabelsOnHighlight:!0,showRoller:!0,strokeWidth:!0,underlayCallback:!0,unhighlightCallback:!0,zoomCallback:!0};function Z(e,t){var n={};if(e)for(var r=1;r<e.length;r++)n[e[r]]=!0;var o=function(e){for(var t in e)if(e.hasOwnProperty(t)&&!X[t])return!0;return!1};for(var i in t)if(t.hasOwnProperty(i))if("highlightSeriesOpts"==i||n[i]&&!t.series){if(o(t[i]))return!0}else if("series"==i||"axes"==i){var a=t[i];for(var s in a)if(a.hasOwnProperty(s)&&o(a[s]))return!0}else if(!X[i])return!0;return!1}var K={DEFAULT:function(e,t,n,r,o,i,a){n.beginPath(),n.fillStyle=i,n.arc(r,o,a,0,2*Math.PI,!1),n.fill()}};function Q(e){for(var t=0;t<e.length;t++){var n=e.charAt(t);if("\r"===n)return t+1<e.length&&"\n"===e.charAt(t+1)?"\r\n":n;if("\n"===n)return t+1<e.length&&"\r"===e.charAt(t+1)?"\n\r":n}return null}function J(e,t){if(null===t||null===e)return!1;for(var n=e;n&&n!==t;)n=n.parentNode;return n===t}function ee(e,t){return t<0?1/Math.pow(e,-t):Math.pow(e,t)}var te=/^#([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})?$/,ne=/^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*([01](?:\.\d+)?))?\)$/;function re(e){var t,n,r,o,i=null;if(t=te.exec(e))n=parseInt(t[1],16),r=parseInt(t[2],16),o=parseInt(t[3],16),t[4]&&(i=parseInt(t[4],16));else{if(!(t=ne.exec(e)))return null;n=parseInt(t[1],10),r=parseInt(t[2],10),o=parseInt(t[3],10),t[4]&&(i=parseFloat(t[4]))}return null!==i?{r:n,g:r,b:o,a:i}:{r:n,g:r,b:o}}function oe(e){var t=re(e);if(t)return t;var n=document.createElement("div");n.style.backgroundColor=e,n.style.visibility="hidden",document.body.appendChild(n);var r=window.getComputedStyle(n,null).backgroundColor;return document.body.removeChild(n),re(r)}function ie(e){try{(e||document.createElement("canvas")).getContext("2d")}catch(t){return!1}return!0}function ae(e,t,n){var r=parseFloat(e);if(!isNaN(r))return r;if(/^ *$/.test(e))return null;if(/^ *nan *$/i.test(e))return NaN;var o="Unable to parse '"+e+"' as a number";return void 0!==n&&void 0!==t&&(o+=" on line "+(1+(t||0))+" ('"+n+"') of CSV."),console.error(o),null}var se=["k","M","G","T","P","E","Z","Y"],ue=["m","\xb5","n","p","f","a","z","y"],le=["Ki","Mi","Gi","Ti","Pi","Ei","Zi","Yi"],ce=["p-10","p-20","p-30","p-40","p-50","p-60","p-70","p-80"],fe=["K","M","G","T","P","E","Z","Y"],de=ue;function he(e,t){var n=t("sigFigs");if(null!==n)return C(e,n);if(0===e)return"0";var r=t("digitsAfterDecimal"),o=t("maxNumberWidth"),i=t("labelsKMB"),a=t("labelsKMG2"),s=Math.abs(e);if(i||a){var u,l,c,f=[],d=[];if(i&&(u=1e3,f=se,d=ue),a&&(u=1024,f=le,d=ce,i&&(f=fe,d=de)),s>=u){for(c=f.length;c>0;)if(l=ee(u,c),--c,s>=l)return s/l>=Math.pow(10,o)?e.toExponential(r):P(e/l,r)+f[c]}else if(s<1){for(c=0;c<d.length&&!(s*(l=ee(u,++c))>=1););return s*l<Math.pow(10,-r)?e.toExponential(r):P(e*l,r)+d[c-1]}}return s>=Math.pow(10,o)||s<Math.pow(10,-r)?e.toExponential(r):""+P(e,r)}function pe(e,t,n){return he.call(this,e,n)}var ge=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ve(e,t,n){var o=n("labelsUTC")?T:O,i=o.getFullYear(e),a=o.getMonth(e),s=o.getDate(e),u=o.getHours(e),l=o.getMinutes(e),c=o.getSeconds(e),f=o.getMilliseconds(e);if(t>=r.Z7.DECADAL)return""+i;if(t>=r.Z7.MONTHLY)return ge[a]+"&#160;"+i;if(0===3600*u+60*l+c+.001*f||t>=r.Z7.DAILY)return R(s)+"&#160;"+ge[a];if(t<r.Z7.SECONDLY){var d=""+f;return R(c)+"."+("000"+d).substring(d.length)}return t>r.Z7.MINUTELY?k(u,l,c,0):k(u,l,c,f)}function ye(e,t){return M(e,t("labelsUTC"))}var me=[],be=!1;function _e(e){return"function"===typeof e&&e(),!0}function we(e){if("undefined"!==typeof document){const t=function(){if(!be){be=!0,e.onDOMready=_e,document.removeEventListener("DOMContentLoaded",t,!1),window.removeEventListener("load",t,!1);for(let e=0;e<me.length;++e)me[e]();me=null}};e.onDOMready=function(n){if("complete"===document.readyState)return e.onDOMready=_e,_e(n);const r=function(e){return"function"===typeof e&&me.push(e),!1};return e.onDOMready=r,document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1),"complete"===document.readyState?(t(),e.onDOMready=_e,_e(n)):r(n)}}}},77887:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>K});var r=n(43015),o=function(e){this.dygraph_=e,this.points=[],this.setNames=[],this.annotations=[],this.yAxes_=null,this.xTicks_=null,this.yTicks_=null};o.prototype.addDataset=function(e,t){this.points.push(t),this.setNames.push(e)},o.prototype.getPlotArea=function(){return this.area_},o.prototype.computePlotArea=function(){var e={x:0,y:0};e.w=this.dygraph_.width_-e.x-this.dygraph_.getOption("rightGap"),e.h=this.dygraph_.height_;var t={chart_div:this.dygraph_.graphDiv,reserveSpaceLeft:function(t){var n={x:e.x,y:e.y,w:t,h:e.h};return e.x+=t,e.w-=t,n},reserveSpaceRight:function(t){var n={x:e.x+e.w-t,y:e.y,w:t,h:e.h};return e.w-=t,n},reserveSpaceTop:function(t){var n={x:e.x,y:e.y,w:e.w,h:t};return e.y+=t,e.h-=t,n},reserveSpaceBottom:function(t){var n={x:e.x,y:e.y+e.h-t,w:e.w,h:t};return e.h-=t,n},chartRect:function(){return{x:e.x,y:e.y,w:e.w,h:e.h}}};this.dygraph_.cascadeEvents_("layout",t),this.area_=e},o.prototype.setAnnotations=function(e){this.annotations=[];for(var t=this.dygraph_.getOption("xValueParser")||function(e){return e},n=0;n<e.length;n++){var o={};if(!e[n].xval&&void 0===e[n].x)return void console.error("Annotations must have an 'x' property");if(e[n].icon&&(!e[n].hasOwnProperty("width")||!e[n].hasOwnProperty("height")))return void console.error("Must set width and height when setting annotation.icon property");r.update(o,e[n]),o.xval||(o.xval=t(o.x)),this.annotations.push(o)}},o.prototype.setXTicks=function(e){this.xTicks_=e},o.prototype.setYAxes=function(e){this.yAxes_=e},o.prototype.evaluate=function(){this._xAxis={},this._evaluateLimits(),this._evaluateLineCharts(),this._evaluateLineTicks(),this._evaluateAnnotations()},o.prototype._evaluateLimits=function(){var e=this.dygraph_.xAxisRange();this._xAxis.minval=e[0],this._xAxis.maxval=e[1];var t=e[1]-e[0];this._xAxis.scale=0!==t?1/t:1,this.dygraph_.getOptionForAxis("logscale","x")&&(this._xAxis.xlogrange=r.log10(this._xAxis.maxval)-r.log10(this._xAxis.minval),this._xAxis.xlogscale=0!==this._xAxis.xlogrange?1/this._xAxis.xlogrange:1);for(var n=0;n<this.yAxes_.length;n++){var o=this.yAxes_[n];o.minyval=o.computedValueRange[0],o.maxyval=o.computedValueRange[1],o.yrange=o.maxyval-o.minyval,o.yscale=0!==o.yrange?1/o.yrange:1,(this.dygraph_.getOption("logscale")||o.logscale)&&(o.ylogrange=r.log10(o.maxyval)-r.log10(o.minyval),o.ylogscale=0!==o.ylogrange?1/o.ylogrange:1,isFinite(o.ylogrange)&&!isNaN(o.ylogrange)||console.error("axis "+n+" of graph at "+o.g+" can't be displayed in log scale for range ["+o.minyval+" - "+o.maxyval+"]"))}},o.calcXNormal_=function(e,t,n){return n?(r.log10(e)-r.log10(t.minval))*t.xlogscale:(e-t.minval)*t.scale},o.calcYNormal_=function(e,t,n){if(n){var o=1-(r.log10(t)-r.log10(e.minyval))*e.ylogscale;return isFinite(o)?o:NaN}return 1-(t-e.minyval)*e.yscale},o.prototype._evaluateLineCharts=function(){for(var e=this.dygraph_.getOption("stackedGraph"),t=this.dygraph_.getOptionForAxis("logscale","x"),n=0;n<this.points.length;n++){for(var r=this.points[n],i=this.setNames[n],a=this.dygraph_.getOption("connectSeparatedPoints",i),s=this.dygraph_.axisPropertiesForSeries(i),u=this.dygraph_.attributes_.getForSeries("logscale",i),l=0;l<r.length;l++){var c=r[l];c.x=o.calcXNormal_(c.xval,this._xAxis,t);var f=c.yval;e&&(c.y_stacked=o.calcYNormal_(s,c.yval_stacked,u),null===f||isNaN(f)||(f=c.yval_stacked)),null===f&&(f=NaN,a||(c.yval=NaN)),c.y=o.calcYNormal_(s,f,u)}this.dygraph_.dataHandler_.onLineEvaluated(r,s,u)}},o.prototype._evaluateLineTicks=function(){var e,t,n,r,o,i;for(this.xticks=[],e=0;e<this.xTicks_.length;e++)n=(t=this.xTicks_[e]).label,o=(i=!("label_v"in t))?t.v:t.label_v,(r=this.dygraph_.toPercentXCoord(o))>=0&&r<1&&this.xticks.push({pos:r,label:n,has_tick:i});for(this.yticks=[],e=0;e<this.yAxes_.length;e++)for(var a=this.yAxes_[e],s=0;s<a.ticks.length;s++)n=(t=a.ticks[s]).label,o=(i=!("label_v"in t))?t.v:t.label_v,(r=this.dygraph_.toPercentYCoord(o,e))>0&&r<=1&&this.yticks.push({axis:e,pos:r,label:n,has_tick:i})},o.prototype._evaluateAnnotations=function(){var e,t={};for(e=0;e<this.annotations.length;e++){var n=this.annotations[e];t[n.xval+","+n.series]=n}if(this.annotated_points=[],this.annotations&&this.annotations.length)for(var r=0;r<this.points.length;r++){var o=this.points[r];for(e=0;e<o.length;e++){var i=o[e],a=i.xval+","+i.name;a in t&&(i.annotation=t[a],this.annotated_points.push(i),delete t[a])}}},o.prototype.removeAllDatasets=function(){delete this.points,delete this.setNames,delete this.setPointsLengths,delete this.setPointsOffsets,this.points=[],this.setNames=[],this.setPointsLengths=[],this.setPointsOffsets=[]};const i=o;var a=function(e,t,n,o){if(this.dygraph_=e,this.layout=o,this.element=t,this.elementContext=n,this.height=e.height_,this.width=e.width_,!r.isCanvasSupported(this.element))throw"Canvas is not supported.";this.area=o.getPlotArea();var i=this.dygraph_.canvas_ctx_;i.beginPath(),i.rect(this.area.x,this.area.y,this.area.w,this.area.h),i.clip(),(i=this.dygraph_.hidden_ctx_).beginPath(),i.rect(this.area.x,this.area.y,this.area.w,this.area.h),i.clip()};a.prototype.clear=function(){this.elementContext.clearRect(0,0,this.width,this.height)},a.prototype.render=function(){this._updatePoints(),this._renderLineChart()},a._getIteratorPredicate=function(e){return e?a._predicateThatSkipsEmptyPoints:null},a._predicateThatSkipsEmptyPoints=function(e,t){return null!==e[t].yval},a._drawStyledLine=function(e,t,n,o,i,s,u){var l=e.dygraph,c=l.getBooleanOption("stepPlot",e.setName);r.isArrayLike(o)||(o=null);var f=l.getBooleanOption("drawGapEdgePoints",e.setName),d=e.points,h=e.setName,p=r.createIterator(d,0,d.length,a._getIteratorPredicate(l.getBooleanOption("connectSeparatedPoints",h))),g=o&&o.length>=2,v=e.drawingContext;v.save(),g&&v.setLineDash&&v.setLineDash(o);var y=a._drawSeries(e,p,n,u,i,f,c,t);a._drawPointsOnLine(e,y,s,t,u),g&&v.setLineDash&&v.setLineDash([]),v.restore()},a._drawSeries=function(e,t,n,r,o,i,a,s){var u,l,c=null,f=null,d=null,h=[],p=!0,g=e.drawingContext;g.beginPath(),g.strokeStyle=s,g.lineWidth=n;for(var v=t.array_,y=t.end_,m=t.predicate_,b=t.start_;b<y;b++){if(l=v[b],m){for(;b<y&&!m(v,b);)b++;if(b==y)break;l=v[b]}if(null===l.canvasy||l.canvasy!=l.canvasy)a&&null!==c&&(g.moveTo(c,f),g.lineTo(l.canvasx,f)),c=f=null;else{if(u=!1,i||null===c){t.nextIdx_=b,t.next();var _=null===(d=t.hasNext?t.peek.canvasy:null)||d!=d;u=null===c&&_,i&&(!p&&null===c||t.hasNext&&_)&&(u=!0)}null!==c?n&&(a&&(g.moveTo(c,f),g.lineTo(l.canvasx,f)),g.lineTo(l.canvasx,l.canvasy)):g.moveTo(l.canvasx,l.canvasy),(o||u)&&h.push([l.canvasx,l.canvasy,l.idx]),c=l.canvasx,f=l.canvasy}p=!1}return g.stroke(),h},a._drawPointsOnLine=function(e,t,n,r,o){for(var i=e.drawingContext,a=0;a<t.length;a++){var s=t[a];i.save(),n.call(e.dygraph,e.dygraph,e.setName,i,s[0],s[1],r,o,s[2]),i.restore()}},a.prototype._updatePoints=function(){for(var e=this.layout.points,t=e.length;t--;)for(var n=e[t],r=n.length;r--;){var o=n[r];o.canvasx=this.area.w*o.x+this.area.x,o.canvasy=this.area.h*o.y+this.area.y}},a.prototype._renderLineChart=function(e,t){var n,o,i=t||this.elementContext,a=this.layout.points,s=this.layout.setNames;this.colors=this.dygraph_.colorsMap_;var u=this.dygraph_.getOption("plotter"),l=u;r.isArrayLike(l)||(l=[l]);var c={};for(n=0;n<s.length;n++){o=s[n];var f=this.dygraph_.getOption("plotter",o);f!=u&&(c[o]=f)}for(n=0;n<l.length;n++)for(var d=l[n],h=n==l.length-1,p=0;p<a.length;p++)if(o=s[p],!e||o==e){var g=a[p],v=d;if(o in c){if(!h)continue;v=c[o]}var y=this.colors[o],m=this.dygraph_.getOption("strokeWidth",o);i.save(),i.strokeStyle=y,i.lineWidth=m,v({points:g,setName:o,drawingContext:i,color:y,strokeWidth:m,dygraph:this.dygraph_,axis:this.dygraph_.axisPropertiesForSeries(o),plotArea:this.area,seriesIndex:p,seriesCount:a.length,singleSeriesName:e,allSeriesPoints:a}),i.restore()}},a._Plotters={linePlotter:function(e){a._linePlotter(e)},fillPlotter:function(e){a._fillPlotter(e)},errorPlotter:function(e){a._errorPlotter(e)}},a._linePlotter=function(e){var t=e.dygraph,n=e.setName,o=e.strokeWidth,i=t.getNumericOption("strokeBorderWidth",n),s=t.getOption("drawPointCallback",n)||r.Circles.DEFAULT,u=t.getOption("strokePattern",n),l=t.getBooleanOption("drawPoints",n),c=t.getNumericOption("pointSize",n);i&&o&&a._drawStyledLine(e,t.getOption("strokeBorderColor",n),o+2*i,u,l,s,c),a._drawStyledLine(e,e.color,o,u,l,s,c)},a._errorPlotter=function(e){var t=e.dygraph,n=e.setName;if(t.getBooleanOption("errorBars")||t.getBooleanOption("customBars")){t.getBooleanOption("fillGraph",n)&&console.warn("Can't use fillGraph option with customBars or errorBars option");var o,i=e.drawingContext,s=e.color,u=t.getNumericOption("fillAlpha",n),l=t.getBooleanOption("stepPlot",n),c=e.points,f=r.createIterator(c,0,c.length,a._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",n))),d=NaN,h=NaN,p=[-1,-1],g=r.toRGB_(s),v="rgba("+g.r+","+g.g+","+g.b+","+u+")";i.fillStyle=v,i.beginPath();for(var y=function(e){return null===e||void 0===e||isNaN(e)};f.hasNext;){var m=f.next();!l&&y(m.y)||l&&!isNaN(h)&&y(h)?d=NaN:(o=[m.y_bottom,m.y_top],l&&(h=m.y),isNaN(o[0])&&(o[0]=m.y),isNaN(o[1])&&(o[1]=m.y),o[0]=e.plotArea.h*o[0]+e.plotArea.y,o[1]=e.plotArea.h*o[1]+e.plotArea.y,isNaN(d)||(l?(i.moveTo(d,p[0]),i.lineTo(m.canvasx,p[0]),i.lineTo(m.canvasx,p[1])):(i.moveTo(d,p[0]),i.lineTo(m.canvasx,o[0]),i.lineTo(m.canvasx,o[1])),i.lineTo(d,p[1]),i.closePath()),p=o,d=m.canvasx)}i.fill()}},a._fastCanvasProxy=function(e){var t=[],n=null,r=null,o=0,i=function(n){!function(e){if(!(t.length<=1)){for(var n=t.length-1;n>0;n--)if(2==(s=t[n])[0]){var r=t[n-1];r[1]==s[1]&&r[2]==s[2]&&t.splice(n,1)}for(n=0;n<t.length-1;)2==(s=t[n])[0]&&2==t[n+1][0]?t.splice(n,1):n++;if(t.length>2&&!e){var o=0;2==t[0][0]&&o++;var i=null,a=null;for(n=o;n<t.length;n++){var s;if(1==(s=t[n])[0])if(null===i&&null===a)i=n,a=n;else{var u=s[2];u<t[i][2]?i=n:u>t[a][2]&&(a=n)}}var l=t[i],c=t[a];t.splice(o,t.length-o),i<a?(t.push(l),t.push(c)):i>a?(t.push(c),t.push(l)):t.push(l)}}}(n);for(var i=0,a=t.length;i<a;i++){var s=t[i];1==s[0]?e.lineTo(s[1],s[2]):2==s[0]&&e.moveTo(s[1],s[2])}t.length&&(r=t[t.length-1][1]),o+=t.length,t=[]},a=function(e,o,a){var s=Math.round(o);null!==n&&s==n||(i(n-r>1||s-n>1),n=s);t.push([e,o,a])};return{moveTo:function(e,t){a(2,e,t)},lineTo:function(e,t){a(1,e,t)},stroke:function(){i(!0),e.stroke()},fill:function(){i(!0),e.fill()},beginPath:function(){i(!0),e.beginPath()},closePath:function(){i(!0),e.closePath()},_count:function(){return o}}},a._fillPlotter=function(e){if(!e.singleSeriesName&&0===e.seriesIndex){for(var t=e.dygraph,n=t.getLabels().slice(1),o=n.length;o>=0;o--)t.visibility()[o]||n.splice(o,1);var i=function(){for(var e=0;e<n.length;e++)if(t.getBooleanOption("fillGraph",n[e]))return!0;return!1}();if(i)for(var s,u,l=e.plotArea,c=e.allSeriesPoints,f=c.length,d=t.getBooleanOption("stackedGraph"),h=t.getColors(),p={},g=function(e,t,n,r){if(e.lineTo(t,n),d)for(var o=r.length-1;o>=0;o--){var i=r[o];e.lineTo(i[0],i[1])}},v=f-1;v>=0;v--){var y=e.drawingContext,m=n[v];if(t.getBooleanOption("fillGraph",m)){var b=t.getNumericOption("fillAlpha",m),_=t.getBooleanOption("stepPlot",m),w=h[v],x=t.axisPropertiesForSeries(m),S=1+x.minyval*x.yscale;S<0?S=0:S>1&&(S=1),S=l.h*S+l.y;var A,E=c[v],C=r.createIterator(E,0,E.length,a._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",m))),R=NaN,O=[-1,-1],T=r.toRGB_(w),k="rgba("+T.r+","+T.g+","+T.b+","+b+")";y.fillStyle=k,y.beginPath();var M,P=!0;(E.length>2*t.width_||K.FORCE_FAST_PROXY)&&(y=a._fastCanvasProxy(y));for(var N,I=[];C.hasNext;)if(N=C.next(),r.isOK(N.y)||_){if(d){if(!P&&M==N.xval)continue;var L;P=!1,M=N.xval,L=void 0===(s=p[N.canvasx])?S:u?s[0]:s,A=[N.canvasy,L],_?-1===O[0]?p[N.canvasx]=[N.canvasy,S]:p[N.canvasx]=[N.canvasy,O[0]]:p[N.canvasx]=N.canvasy}else A=isNaN(N.canvasy)&&_?[l.y+l.h,S]:[N.canvasy,S];isNaN(R)?(y.moveTo(N.canvasx,A[1]),y.lineTo(N.canvasx,A[0])):(_?(y.lineTo(N.canvasx,O[0]),y.lineTo(N.canvasx,A[0])):y.lineTo(N.canvasx,A[0]),d&&(I.push([R,O[1]]),u&&s?I.push([N.canvasx,s[1]]):I.push([N.canvasx,A[1]]))),O=A,R=N.canvasx}else g(y,R,O[1],I),I=[],R=NaN,null===N.y_stacked||isNaN(N.y_stacked)||(p[N.canvasx]=l.h*N.y_stacked+l.y);u=_,A&&N&&(g(y,N.canvasx,A[1],I),I=[]),y.fill()}}}};const s=a;var u=n(76641),l={maybeTreatMouseOpAsClick:function(e,t,n){n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=Math.abs(n.dragEndX-n.dragStartX),i=Math.abs(n.dragEndY-n.dragStartY);o<2&&i<2&&void 0!==t.lastx_&&null!==t.lastx_&&l.treatMouseOpAsClick(t,e,n),n.regionWidth=o,n.regionHeight=i},startPan:function(e,t,n){var o,i;n.isPanning=!0;var a=t.xAxisRange();if(t.getOptionForAxis("logscale","x")?(n.initialLeftmostDate=r.log10(a[0]),n.dateRange=r.log10(a[1])-r.log10(a[0])):(n.initialLeftmostDate=a[0],n.dateRange=a[1]-a[0]),n.xUnitsPerPixel=n.dateRange/(t.plotter_.area.w-1),t.getNumericOption("panEdgeFraction")){var s=t.width_*t.getNumericOption("panEdgeFraction"),u=t.xAxisExtremes(),l=t.toDomXCoord(u[0])-s,c=t.toDomXCoord(u[1])+s,f=t.toDataXCoord(l),d=t.toDataXCoord(c);n.boundedDates=[f,d];var h=[],p=t.height_*t.getNumericOption("panEdgeFraction");for(o=0;o<t.axes_.length;o++){var g=(i=t.axes_[o]).extremeRange,v=t.toDomYCoord(g[0],o)+p,y=t.toDomYCoord(g[1],o)-p,m=t.toDataYCoord(v,o),b=t.toDataYCoord(y,o);h[o]=[m,b]}n.boundedValues=h}else n.boundedDates=null,n.boundedValues=null;for(n.is2DPan=!1,n.axes=[],o=0;o<t.axes_.length;o++){i=t.axes_[o];var _={},w=t.yAxisRange(o);t.attributes_.getForAxis("logscale",o)?(_.initialTopValue=r.log10(w[1]),_.dragValueRange=r.log10(w[1])-r.log10(w[0])):(_.initialTopValue=w[1],_.dragValueRange=w[1]-w[0]),_.unitsPerPixel=_.dragValueRange/(t.plotter_.area.h-1),n.axes.push(_),i.valueRange&&(n.is2DPan=!0)}},movePan:function(e,t,n){n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=n.initialLeftmostDate-(n.dragEndX-n.dragStartX)*n.xUnitsPerPixel;n.boundedDates&&(o=Math.max(o,n.boundedDates[0]));var i=o+n.dateRange;if(n.boundedDates&&i>n.boundedDates[1]&&(i=(o-=i-n.boundedDates[1])+n.dateRange),t.getOptionForAxis("logscale","x")?t.dateWindow_=[Math.pow(r.LOG_SCALE,o),Math.pow(r.LOG_SCALE,i)]:t.dateWindow_=[o,i],n.is2DPan)for(var a=n.dragEndY-n.dragStartY,s=0;s<t.axes_.length;s++){var u=t.axes_[s],l=n.axes[s],c=a*l.unitsPerPixel,f=n.boundedValues?n.boundedValues[s]:null,d=l.initialTopValue+c;f&&(d=Math.min(d,f[1]));var h=d-l.dragValueRange;f&&h<f[0]&&(h=(d-=h-f[0])-l.dragValueRange),t.attributes_.getForAxis("logscale",s)?u.valueRange=[Math.pow(r.LOG_SCALE,h),Math.pow(r.LOG_SCALE,d)]:u.valueRange=[h,d]}t.drawGraph_(!1)}};l.endPan=l.maybeTreatMouseOpAsClick,l.startZoom=function(e,t,n){n.isZooming=!0,n.zoomMoved=!1},l.moveZoom=function(e,t,n){n.zoomMoved=!0,n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=Math.abs(n.dragStartX-n.dragEndX),i=Math.abs(n.dragStartY-n.dragEndY);n.dragDirection=o<i/2?r.VERTICAL:r.HORIZONTAL,t.drawZoomRect_(n.dragDirection,n.dragStartX,n.dragEndX,n.dragStartY,n.dragEndY,n.prevDragDirection,n.prevEndX,n.prevEndY),n.prevEndX=n.dragEndX,n.prevEndY=n.dragEndY,n.prevDragDirection=n.dragDirection},l.treatMouseOpAsClick=function(e,t,n){for(var r=e.getFunctionOption("clickCallback"),o=e.getFunctionOption("pointClickCallback"),i=null,a=-1,s=Number.MAX_VALUE,u=0;u<e.selPoints_.length;u++){var l=e.selPoints_[u],c=Math.pow(l.canvasx-n.dragEndX,2)+Math.pow(l.canvasy-n.dragEndY,2);!isNaN(c)&&(-1==a||c<s)&&(s=c,a=u)}var f=e.getNumericOption("highlightCircleSize")+2;if(s<=f*f&&(i=e.selPoints_[a]),i){var d={cancelable:!0,point:i,canvasx:n.dragEndX,canvasy:n.dragEndY};if(e.cascadeEvents_("pointClick",d))return;o&&o.call(e,t,i)}d={cancelable:!0,xval:e.lastx_,pts:e.selPoints_,canvasx:n.dragEndX,canvasy:n.dragEndY};e.cascadeEvents_("click",d)||r&&r.call(e,t,e.lastx_,e.selPoints_)},l.endZoom=function(e,t,n){t.clearZoomRect_(),n.isZooming=!1,l.maybeTreatMouseOpAsClick(e,t,n);var o=t.getArea();if(n.regionWidth>=10&&n.dragDirection==r.HORIZONTAL){var i=Math.min(n.dragStartX,n.dragEndX),a=Math.max(n.dragStartX,n.dragEndX);(i=Math.max(i,o.x))<(a=Math.min(a,o.x+o.w))&&t.doZoomX_(i,a),n.cancelNextDblclick=!0}else if(n.regionHeight>=10&&n.dragDirection==r.VERTICAL){var s=Math.min(n.dragStartY,n.dragEndY),u=Math.max(n.dragStartY,n.dragEndY);(s=Math.max(s,o.y))<(u=Math.min(u,o.y+o.h))&&t.doZoomY_(s,u),n.cancelNextDblclick=!0}n.dragStartX=null,n.dragStartY=null},l.startTouch=function(e,t,n){e.preventDefault(),e.touches.length>1&&(n.startTimeForDoubleTapMs=null);for(var r=[],o=0;o<e.touches.length;o++){var i=e.touches[o],a=i.target.getBoundingClientRect();r.push({pageX:i.pageX,pageY:i.pageY,dataX:t.toDataXCoord(i.clientX-a.left),dataY:t.toDataYCoord(i.clientY-a.top)})}if(n.initialTouches=r,1==r.length)n.initialPinchCenter=r[0],n.touchDirections={x:!0,y:!0};else if(r.length>=2){n.initialPinchCenter={pageX:.5*(r[0].pageX+r[1].pageX),pageY:.5*(r[0].pageY+r[1].pageY),dataX:.5*(r[0].dataX+r[1].dataX),dataY:.5*(r[0].dataY+r[1].dataY)};var s=180/Math.PI*Math.atan2(n.initialPinchCenter.pageY-r[0].pageY,r[0].pageX-n.initialPinchCenter.pageX);(s=Math.abs(s))>90&&(s=90-s),n.touchDirections={x:s<67.5,y:s>22.5}}n.initialRange={x:t.xAxisRange(),y:t.yAxisRange()}},l.moveTouch=function(e,t,n){n.startTimeForDoubleTapMs=null;var r,o=[];for(r=0;r<e.touches.length;r++){var i=e.touches[r];o.push({pageX:i.pageX,pageY:i.pageY})}var a,s,u,l=n.initialTouches,c=n.initialPinchCenter,f={pageX:(a=1==o.length?o[0]:{pageX:.5*(o[0].pageX+o[1].pageX),pageY:.5*(o[0].pageY+o[1].pageY)}).pageX-c.pageX,pageY:a.pageY-c.pageY},d=n.initialRange.x[1]-n.initialRange.x[0],h=n.initialRange.y[0]-n.initialRange.y[1];if(f.dataX=f.pageX/t.plotter_.area.w*d,f.dataY=f.pageY/t.plotter_.area.h*h,1==o.length)s=1,u=1;else if(o.length>=2){var p=l[1].pageX-c.pageX;s=(o[1].pageX-a.pageX)/p;var g=l[1].pageY-c.pageY;u=(o[1].pageY-a.pageY)/g}s=Math.min(8,Math.max(.125,s)),u=Math.min(8,Math.max(.125,u));var v=!1;if(n.touchDirections.x){var y=c.dataX-f.dataX/s;t.dateWindow_=[y+(n.initialRange.x[0]-c.dataX)/s,y+(n.initialRange.x[1]-c.dataX)/s],v=!0}if(n.touchDirections.y)for(r=0;r<1;r++){var m=t.axes_[r];if(t.attributes_.getForAxis("logscale",r));else{y=c.dataY-f.dataY/u;m.valueRange=[y+(n.initialRange.y[0]-c.dataY)/u,y+(n.initialRange.y[1]-c.dataY)/u],v=!0}}if(t.drawGraph_(!1),v&&o.length>1&&t.getFunctionOption("zoomCallback")){var b=t.xAxisRange();t.getFunctionOption("zoomCallback").call(t,b[0],b[1],t.yAxisRanges())}},l.endTouch=function(e,t,n){if(0!==e.touches.length)l.startTouch(e,t,n);else if(1==e.changedTouches.length){var r=(new Date).getTime(),o=e.changedTouches[0];n.startTimeForDoubleTapMs&&r-n.startTimeForDoubleTapMs<500&&n.doubleTapX&&Math.abs(n.doubleTapX-o.screenX)<50&&n.doubleTapY&&Math.abs(n.doubleTapY-o.screenY)<50?t.resetZoom():(n.startTimeForDoubleTapMs=r,n.doubleTapX=o.screenX,n.doubleTapY=o.screenY)}};var c=function(e,t,n){return e<t?t-e:e>n?e-n:0};l.defaultModel={mousedown:function(e,t,n){if(!e.button||2!=e.button){n.initializeMouseDown(e,t,n),e.altKey||e.shiftKey?l.startPan(e,t,n):l.startZoom(e,t,n);var o=function(e){if(n.isZooming){var o=function(e,t){var n=r.findPos(t.canvas_),o={left:n.x,right:n.x+t.canvas_.offsetWidth,top:n.y,bottom:n.y+t.canvas_.offsetHeight},i={x:r.pageX(e),y:r.pageY(e)},a=c(i.x,o.left,o.right),s=c(i.y,o.top,o.bottom);return Math.max(a,s)}(e,t);o<100?l.moveZoom(e,t,n):null!==n.dragEndX&&(n.dragEndX=null,n.dragEndY=null,t.clearZoomRect_())}else n.isPanning&&l.movePan(e,t,n)},i=function(e){n.isZooming?null!==n.dragEndX?l.endZoom(e,t,n):l.maybeTreatMouseOpAsClick(e,t,n):n.isPanning&&l.endPan(e,t,n),r.removeEvent(document,"mousemove",o),r.removeEvent(document,"mouseup",i),n.destroy()};t.addAndTrackEvent(document,"mousemove",o),t.addAndTrackEvent(document,"mouseup",i)}},willDestroyContextMyself:!0,touchstart:function(e,t,n){l.startTouch(e,t,n)},touchmove:function(e,t,n){l.moveTouch(e,t,n)},touchend:function(e,t,n){l.endTouch(e,t,n)},dblclick:function(e,t,n){if(n.cancelNextDblclick)n.cancelNextDblclick=!1;else{var r={canvasx:n.dragEndX,canvasy:n.dragEndY,cancelable:!0};t.cascadeEvents_("dblclick",r)||e.altKey||e.shiftKey||t.resetZoom()}}},l.nonInteractiveModel_={mousedown:function(e,t,n){n.initializeMouseDown(e,t,n)},mouseup:l.maybeTreatMouseOpAsClick},l.dragIsPanInteractionModel={mousedown:function(e,t,n){n.initializeMouseDown(e,t,n),l.startPan(e,t,n)},mousemove:function(e,t,n){n.isPanning&&l.movePan(e,t,n)},mouseup:function(e,t,n){n.isPanning&&l.endPan(e,t,n)}};const f=l;const d={highlightCircleSize:3,highlightSeriesOpts:null,highlightSeriesBackgroundAlpha:.5,highlightSeriesBackgroundColor:"rgb(255, 255, 255)",labelsSeparateLines:!1,labelsShowZeroValues:!0,labelsKMB:!1,labelsKMG2:!1,showLabelsOnHighlight:!0,digitsAfterDecimal:2,maxNumberWidth:6,sigFigs:null,strokeWidth:1,strokeBorderWidth:0,strokeBorderColor:"white",axisTickSize:3,axisLabelFontSize:14,rightGap:5,showRoller:!1,xValueParser:void 0,delimiter:",",sigma:2,errorBars:!1,fractions:!1,wilsonInterval:!0,customBars:!1,fillGraph:!1,fillAlpha:.15,connectSeparatedPoints:!1,stackedGraph:!1,stackedGraphNaNFill:"all",hideOverlayOnMouseOut:!0,resizable:"no",legend:"onmouseover",legendFollowOffsetX:50,legendFollowOffsetY:-50,stepPlot:!1,xRangePad:0,yRangePad:null,drawAxesAtZero:!1,titleHeight:28,xLabelHeight:18,yLabelWidth:18,axisLineColor:"black",axisLineWidth:.3,gridLineWidth:.3,axisLabelWidth:50,gridLineColor:"rgb(128,128,128)",interactionModel:f.defaultModel,animatedZooms:!1,animateBackgroundFade:!0,showRangeSelector:!1,rangeSelectorHeight:40,rangeSelectorPlotStrokeColor:"#808FAB",rangeSelectorPlotFillGradientColor:"white",rangeSelectorPlotFillColor:"#A7B1C4",rangeSelectorBackgroundStrokeColor:"gray",rangeSelectorBackgroundLineWidth:1,rangeSelectorPlotLineWidth:1.5,rangeSelectorForegroundStrokeColor:"black",rangeSelectorForegroundLineWidth:1,rangeSelectorAlpha:.6,showInRangeSelector:null,plotter:[s._fillPlotter,s._errorPlotter,s._linePlotter],plugins:[],axes:{x:{pixelsPerLabel:70,axisLabelWidth:60,axisLabelFormatter:r.dateAxisLabelFormatter,valueFormatter:r.dateValueFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:u.fi},y:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:r.numberValueFormatter,axisLabelFormatter:r.numberAxisLabelFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:u.GH},y2:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:r.numberValueFormatter,axisLabelFormatter:r.numberAxisLabelFormatter,drawAxis:!0,drawGrid:!1,independentTicks:!1,ticker:u.GH}}};var h=function(e){this.dygraph_=e,this.yAxes_=[],this.xAxis_={},this.series_={},this.global_=this.dygraph_.attrs_,this.user_=this.dygraph_.user_attrs_||{},this.labels_=[],this.highlightSeries_=this.get("highlightSeriesOpts")||{},this.reparseSeries()};h.AXIS_STRING_MAPPINGS_={y:0,Y:0,y1:0,Y1:0,y2:1,Y2:1},h.axisToIndex_=function(e){if("string"==typeof e){if(h.AXIS_STRING_MAPPINGS_.hasOwnProperty(e))return h.AXIS_STRING_MAPPINGS_[e];throw"Unknown axis : "+e}if("number"==typeof e){if(0===e||1===e)return e;throw"Dygraphs only supports two y-axes, indexed from 0-1."}if(e)throw"Unknown axis : "+e;return 0},h.prototype.reparseSeries=function(){var e=this.get("labels");if(e){this.labels_=e.slice(1),this.yAxes_=[{series:[],options:{}}],this.xAxis_={options:{}},this.series_={};for(var t=this.user_.series||{},n=0;n<this.labels_.length;n++){var o=this.labels_[n],i=t[o]||{},a=h.axisToIndex_(i.axis);this.series_[o]={idx:n,yAxis:a,options:i},this.yAxes_[a]?this.yAxes_[a].series.push(o):this.yAxes_[a]={series:[o],options:{}}}var s=this.user_.axes||{};r.update(this.yAxes_[0].options,s.y||{}),this.yAxes_.length>1&&r.update(this.yAxes_[1].options,s.y2||{}),r.update(this.xAxis_.options,s.x||{})}},h.prototype.get=function(e){var t=this.getGlobalUser_(e);return null!==t?t:this.getGlobalDefault_(e)},h.prototype.getGlobalUser_=function(e){return this.user_.hasOwnProperty(e)?this.user_[e]:null},h.prototype.getGlobalDefault_=function(e){return this.global_.hasOwnProperty(e)?this.global_[e]:d.hasOwnProperty(e)?d[e]:null},h.prototype.getForAxis=function(e,t){var n,r;if("number"==typeof t)r=0===(n=t)?"y":"y2";else{if("y1"==t&&(t="y"),"y"==t)n=0;else if("y2"==t)n=1;else{if("x"!=t)throw"Unknown axis "+t;n=-1}r=t}var o=-1==n?this.xAxis_:this.yAxes_[n];if(o){var i=o.options;if(i.hasOwnProperty(e))return i[e]}if("x"!==t||"logscale"!==e){var a=this.getGlobalUser_(e);if(null!==a)return a}var s=d.axes[r];return s.hasOwnProperty(e)?s[e]:this.getGlobalDefault_(e)},h.prototype.getForSeries=function(e,t){if(t===this.dygraph_.getHighlightSeries()&&this.highlightSeries_.hasOwnProperty(e))return this.highlightSeries_[e];if(!this.series_.hasOwnProperty(t))throw"Unknown series: "+t;var n=this.series_[t],r=n.options;return r.hasOwnProperty(e)?r[e]:this.getForAxis(e,n.yAxis)},h.prototype.numAxes=function(){return this.yAxes_.length},h.prototype.axisForSeries=function(e){return this.series_[e].yAxis},h.prototype.axisOptions=function(e){return this.yAxes_[e].options},h.prototype.seriesForAxis=function(e){return this.yAxes_[e].series},h.prototype.seriesNames=function(){return this.labels_};const p=h;function g(){this.tarps=[]}g.prototype.cover=function(){for(var e=document.getElementsByTagName("iframe"),t=0;t<e.length;t++){var n=e[t],o=r.findPos(n),i=o.x,a=o.y,s=n.offsetWidth,u=n.offsetHeight,l=document.createElement("div");l.style.position="absolute",l.style.left=i+"px",l.style.top=a+"px",l.style.width=s+"px",l.style.height=u+"px",l.style.zIndex=999,document.body.appendChild(l),this.tarps.push(l)}},g.prototype.uncover=function(){for(var e=0;e<this.tarps.length;e++)this.tarps[e].parentNode.removeChild(this.tarps[e]);this.tarps=[]};const v=g;var y=function(){},m=y;m.X=0,m.Y=1,m.EXTRAS=2,m.prototype.extractSeries=function(e,t,n){},m.prototype.seriesToPoints=function(e,t,n){for(var r=[],o=0;o<e.length;++o){var i=e[o],a=i[1],s=null===a?null:m.parseFloat(a),u={x:NaN,y:NaN,xval:m.parseFloat(i[0]),yval:s,name:t,idx:o+n,canvasx:NaN,canvasy:NaN};r.push(u)}return this.onPointsCreated_(e,r),r},m.prototype.onPointsCreated_=function(e,t){},m.prototype.rollingAverage=function(e,t,n,r){},m.prototype.getExtremeYValues=function(e,t,n){},m.prototype.onLineEvaluated=function(e,t,n){},m.parseFloat=function(e){return null===e?NaN:e};const b=y;var _=function(){};(_.prototype=new b).extractSeries=function(e,t,n){var r=[];const o=n.get("labels")[t],i=n.getForSeries("logscale",o);for(var a=0;a<e.length;a++){var s=e[a][0],u=e[a][t];i&&u<=0&&(u=null),r.push([s,u])}return r},_.prototype.rollingAverage=function(e,t,n,r){var o,i,a,s,u=[];if(1==(t=Math.min(t,e.length)))return e;for(r=0;r<e.length;r++){for(a=0,s=0,o=Math.max(0,r-t+1);o<r+1;o++)null===(i=e[o][1])||isNaN(i)||(s++,a+=e[o][1]);u[r]=s?[e[r][0],a/s]:[e[r][0],null]}return u},_.prototype.getExtremeYValues=function(e,t,n){for(var r,o=null,i=null,a=e.length-1,s=0;s<=a;s++)null===(r=e[s][1])||isNaN(r)||((null===i||r>i)&&(i=r),(null===o||r<o)&&(o=r));return[o,i]};const w=_;var x=function(){b.call(this)};(x.prototype=new b).extractSeries=function(e,t,n){},x.prototype.rollingAverage=function(e,t,n,r){},x.prototype.onPointsCreated_=function(e,t){for(var n=0;n<e.length;++n){var r=e[n],o=t[n];o.y_top=NaN,o.y_bottom=NaN,o.yval_minus=b.parseFloat(r[2][0]),o.yval_plus=b.parseFloat(r[2][1])}},x.prototype.getExtremeYValues=function(e,t,n){for(var r,o=null,i=null,a=e.length-1,s=0;s<=a;s++)if(null!==(r=e[s][1])&&!isNaN(r)){var u=e[s][2][0],l=e[s][2][1];u>r&&(u=r),l<r&&(l=r),(null===i||l>i)&&(i=l),(null===o||u<o)&&(o=u)}return[o,i]},x.prototype.onLineEvaluated=function(e,t,n){for(var r,o=0;o<e.length;o++)(r=e[o]).y_top=i.calcYNormal_(t,r.yval_minus,n),r.y_bottom=i.calcYNormal_(t,r.yval_plus,n)};const S=x;var A=function(){};(A.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a,s=[];const u=n.get("labels")[t],l=n.getForSeries("logscale",u),c=n.getForSeries("sigma",u);for(var f=0;f<e.length;f++)r=e[f][0],a=e[f][t],l&&null!==a&&(a[0]<=0||a[0]-c*a[1]<=0)&&(a=null),null!==a?null===(o=a[0])||isNaN(o)?s.push([r,o,[o,o,o]]):(i=c*a[1],s.push([r,o,[o-i,o+i,a[1]]])):s.push([r,null,[null,null,null]]);return s},A.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[];const i=n.get("labels")[r],a=n.getForSeries("sigma",i);var s,u,l,c,f,d,h,p;for(r=0;r<e.length;r++){for(c=0,h=0,f=0,s=Math.max(0,r-t+1);s<r+1;s++)null===(u=e[s][1])||isNaN(u)||(f++,c+=u,h+=Math.pow(e[s][2][2],2));f?(d=Math.sqrt(h)/f,p=c/f,o[r]=[e[r][0],p,[p-a*d,p+a*d]]):(l=1==t?e[r][1]:null,o[r]=[e[r][0],l,[l,l]])}return o};const E=A;var C=function(){};(C.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a=[];const s=n.get("labels")[t],u=n.getForSeries("logscale",s);for(var l=0;l<e.length;l++)r=e[l][0],i=e[l][t],u&&null!==i&&(i[0]<=0||i[1]<=0||i[2]<=0)&&(i=null),null!==i?null===(o=i[1])||isNaN(o)?a.push([r,o,[o,o]]):a.push([r,o,[i[0],i[2]]]):a.push([r,null,[null,null]]);return a},C.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o,i,a,s,u,l,c=[];for(i=0,s=0,a=0,u=0,r=0;r<e.length;r++){if(o=e[r][1],l=e[r][2],c[r]=e[r],null===o||isNaN(o)||(i+=l[0],s+=o,a+=l[1],u+=1),r-t>=0){var f=e[r-t];null===f[1]||isNaN(f[1])||(i-=f[2][0],s-=f[1],a-=f[2][1],u-=1)}c[r]=u?[e[r][0],1*s/u,[1*i/u,1*a/u]]:[e[r][0],null,[null,null]]}return c};const R=C;var O=function(){};(O.prototype=new w).extractSeries=function(e,t,n){var r,o,i,a,s,u=[];const l=n.get("labels")[t],c=n.getForSeries("logscale",l);for(var f=0;f<e.length;f++)r=e[f][0],i=e[f][t],c&&null!==i&&(i[0]<=0||i[1]<=0)&&(i=null),null!==i?(a=i[0],s=i[1],null===a||isNaN(a)?u.push([r,a,[a,s]]):(o=100*(s?a/s:0),u.push([r,o,[a,s]]))):u.push([r,null,[null,null]]);return u},O.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[],i=0,a=0;for(r=0;r<e.length;r++){i+=e[r][2][0],a+=e[r][2][1],r-t>=0&&(i-=e[r-t][2][0],a-=e[r-t][2][1]);var s=e[r][0],u=a?i/a:0;o[r]=[s,100*u]}return o};const T=O;var k=function(){};(k.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a,s,u,l,c=[];const f=n.get("labels")[t],d=n.getForSeries("logscale",f),h=n.getForSeries("sigma",f);for(var p=0;p<e.length;p++)r=e[p][0],i=e[p][t],d&&null!==i&&(i[0]<=0||i[1]<=0)&&(i=null),null!==i?(a=i[0],s=i[1],null===a||isNaN(a)?c.push([r,a,[a,a,a,s]]):(u=s?a/s:0,l=100*(s?h*Math.sqrt(u*(1-u)/s):1),o=100*u,c.push([r,o,[o-l,o+l,a,s]]))):c.push([r,null,[null,null,null,null]]);return c},k.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[];const i=n.get("labels")[r],a=n.getForSeries("sigma",i),s=n.getForSeries("wilsonInterval",i);var u,l,c,f=0,d=0,h=100;for(r=0;r<e.length;r++){f+=e[r][2][2],d+=e[r][2][3],r-t>=0&&(f-=e[r-t][2][2],d-=e[r-t][2][3]);var p=e[r][0],g=d?f/d:0;if(s)if(d){var v=g<0?0:g,y=d,m=a*Math.sqrt(v*(1-v)/y+a*a/(4*y*y)),b=1+a*a/d;u=(v+a*a/(2*d)-m)/b,l=(v+a*a/(2*d)+m)/b,o[r]=[p,v*h,[u*h,l*h]]}else o[r]=[p,0,[0,0]];else c=d?a*Math.sqrt(g*(1-g)/d):1,o[r]=[p,h*g,[h*(g-c),h*(g+c)]]}return o};const M=k;var P=function(){this.annotations_=[]};P.prototype.toString=function(){return"Annotations Plugin"},P.prototype.activate=function(e){return{clearChart:this.clearChart,didDrawChart:this.didDrawChart}},P.prototype.detachLabels=function(){for(var e=0;e<this.annotations_.length;e++){var t=this.annotations_[e];t.parentNode&&t.parentNode.removeChild(t),this.annotations_[e]=null}this.annotations_=[]},P.prototype.clearChart=function(e){this.detachLabels()},P.prototype.didDrawChart=function(e){var t=e.dygraph,n=t.layout_.annotated_points;if(n&&0!==n.length)for(var r=e.canvas.parentNode,o=function(e,n,r){return function(o){var i=r.annotation;i.hasOwnProperty(e)?i[e](i,r,t,o):t.getOption(n)&&t.getOption(n)(i,r,t,o)}},i=e.dygraph.getArea(),a={},s=0;s<n.length;s++){var u=n[s];if(!(u.canvasx<i.x||u.canvasx>i.x+i.w||u.canvasy<i.y||u.canvasy>i.y+i.h)){var l=u.annotation,c=6;l.hasOwnProperty("tickHeight")&&(c=l.tickHeight);var f=document.createElement("div");f.style.fontSize=t.getOption("axisLabelFontSize")+"px";var d="dygraph-annotation";l.hasOwnProperty("icon")||(d+=" dygraphDefaultAnnotation dygraph-default-annotation"),l.hasOwnProperty("cssClass")&&(d+=" "+l.cssClass),f.className=d;var h=l.hasOwnProperty("width")?l.width:16,p=l.hasOwnProperty("height")?l.height:16;if(l.hasOwnProperty("icon")){var g=document.createElement("img");g.src=l.icon,g.width=h,g.height=p,f.appendChild(g)}else u.annotation.hasOwnProperty("shortText")&&f.appendChild(document.createTextNode(u.annotation.shortText));var v=u.canvasx-h/2;f.style.left=v+"px";var y=0;if(l.attachAtBottom){var m=i.y+i.h-p-c;a[v]?m-=a[v]:a[v]=0,a[v]+=c+p,y=m}else y=u.canvasy-p-c;f.style.top=y+"px",f.style.width=h+"px",f.style.height=p+"px",f.title=u.annotation.text,f.style.color=t.colorsMap_[u.name],f.style.borderColor=t.colorsMap_[u.name],l.div=f,t.addAndTrackEvent(f,"click",o("clickHandler","annotationClickHandler",u)),t.addAndTrackEvent(f,"mouseover",o("mouseOverHandler","annotationMouseOverHandler",u)),t.addAndTrackEvent(f,"mouseout",o("mouseOutHandler","annotationMouseOutHandler",u)),t.addAndTrackEvent(f,"dblclick",o("dblClickHandler","annotationDblClickHandler",u)),r.appendChild(f),this.annotations_.push(f);var b=e.drawingContext;if(b.save(),b.strokeStyle=l.hasOwnProperty("tickColor")?l.tickColor:t.colorsMap_[u.name],b.lineWidth=l.hasOwnProperty("tickWidth")?l.tickWidth:t.getOption("strokeWidth"),b.beginPath(),l.attachAtBottom){m=y+p;b.moveTo(u.canvasx,m),b.lineTo(u.canvasx,m+c)}else b.moveTo(u.canvasx,u.canvasy),b.lineTo(u.canvasx,u.canvasy-2-c);b.closePath(),b.stroke(),b.restore()}}},P.prototype.destroy=function(){this.detachLabels()};const N=P;var I=function(){this.xlabels_=[],this.ylabels_=[]};I.prototype.toString=function(){return"Axes Plugin"},I.prototype.activate=function(e){return{layout:this.layout,clearChart:this.clearChart,willDrawChart:this.willDrawChart}},I.prototype.layout=function(e){var t,n=e.dygraph;if(n.getOptionForAxis("drawAxis","y")){var r=n.getOptionForAxis("axisLabelWidth","y")+2*n.getOptionForAxis("axisTickSize","y");e.reserveSpaceLeft(r)}n.getOptionForAxis("drawAxis","x")&&(t=n.getOption("xAxisHeight")?n.getOption("xAxisHeight"):n.getOptionForAxis("axisLabelFontSize","x")+2*n.getOptionForAxis("axisTickSize","x"),e.reserveSpaceBottom(t));if(2==n.numAxes()){if(n.getOptionForAxis("drawAxis","y2")){r=n.getOptionForAxis("axisLabelWidth","y2")+2*n.getOptionForAxis("axisTickSize","y2");e.reserveSpaceRight(r)}}else n.numAxes()>2&&n.error("Only two y-axes are supported at this time. (Trying to use "+n.numAxes()+")")},I.prototype.detachLabels=function(){function e(e){for(var t=0;t<e.length;t++){var n=e[t];n.parentNode&&n.parentNode.removeChild(n)}}e(this.xlabels_),e(this.ylabels_),this.xlabels_=[],this.ylabels_=[]},I.prototype.clearChart=function(e){this.detachLabels()},I.prototype.willDrawChart=function(e){var t=e.dygraph;if(!t.getOptionForAxis("drawAxis","x")&&!t.getOptionForAxis("drawAxis","y")&&!t.getOptionForAxis("drawAxis","y2"))return;function n(e){return Math.round(e)+.5}function o(e){return Math.round(e)-.5}var i,a,s,u=e.drawingContext,l=e.canvas.parentNode,c=t.width_,f=t.height_,d=function(e){return{position:"absolute",fontSize:t.getOptionForAxis("axisLabelFontSize",e)+"px",width:t.getOptionForAxis("axisLabelWidth",e)+"px"}},h={x:d("x"),y:d("y"),y2:d("y2")},p=function(e,t,n){var o=document.createElement("div"),i=h["y2"==n?"y2":t];r.update(o.style,i);var a=document.createElement("div");return a.className="dygraph-axis-label dygraph-axis-label-"+t+(n?" dygraph-axis-label-"+n:""),a.innerHTML=e,o.appendChild(a),o};u.save();var g=t.layout_,v=e.dygraph.plotter_.area,y=function(e){return function(n){return t.getOptionForAxis(n,e)}};const m=this;if(t.getOptionForAxis("drawAxis","y")||2==t.numAxes()&&t.getOptionForAxis("drawAxis","y2")){if(g.yticks&&g.yticks.length>0){var b=t.numAxes(),_=[y("y"),y("y2")];g.yticks.forEach((function(e){if(void 0!==e.label){a=v.x;var t="y1",n=_[0];if(1==e.axis&&(a=v.x+v.w,-1,t="y2",n=_[1]),n("drawAxis")){var r=n("axisLabelFontSize");s=v.y+e.pos*v.h,i=p(e.label,"y",2==b?t:null);var o=s-r/2;o<0&&(o=0),o+r+3>f?i.style.bottom="0":i.style.top=Math.min(o,f-2*r)+"px",0===e.axis?(i.style.left=v.x-n("axisLabelWidth")-n("axisTickSize")+"px",i.style.textAlign="right"):1==e.axis&&(i.style.left=v.x+v.w+n("axisTickSize")+"px",i.style.textAlign="left"),i.style.width=n("axisLabelWidth")+"px",l.appendChild(i),m.ylabels_.push(i)}}}))}var w;if(t.getOption("drawAxesAtZero"))((A=t.toPercentXCoord(0))>1||A<0||isNaN(A))&&(A=0),w=n(v.x+A*v.w);else w=n(v.x);u.strokeStyle=t.getOptionForAxis("axisLineColor","y"),u.lineWidth=t.getOptionForAxis("axisLineWidth","y"),u.beginPath(),u.moveTo(w,o(v.y)),u.lineTo(w,o(v.y+v.h)),u.closePath(),u.stroke(),2==t.numAxes()&&t.getOptionForAxis("drawAxis","y2")&&(u.strokeStyle=t.getOptionForAxis("axisLineColor","y2"),u.lineWidth=t.getOptionForAxis("axisLineWidth","y2"),u.beginPath(),u.moveTo(o(v.x+v.w),o(v.y)),u.lineTo(o(v.x+v.w),o(v.y+v.h)),u.closePath(),u.stroke())}if(t.getOptionForAxis("drawAxis","x")){if(g.xticks){var x=y("x");g.xticks.forEach((function(e){if(void 0!==e.label){a=v.x+e.pos*v.w,s=v.y+v.h,(i=p(e.label,"x")).style.textAlign="center",i.style.top=s+x("axisTickSize")+"px";var t=a-x("axisLabelWidth")/2;t+x("axisLabelWidth")>c&&(t=c-x("axisLabelWidth"),i.style.textAlign="right"),t<0&&(t=0,i.style.textAlign="left"),i.style.left=t+"px",i.style.width=x("axisLabelWidth")+"px",l.appendChild(i),m.xlabels_.push(i)}}))}var S,A;if(u.strokeStyle=t.getOptionForAxis("axisLineColor","x"),u.lineWidth=t.getOptionForAxis("axisLineWidth","x"),u.beginPath(),t.getOption("drawAxesAtZero"))((A=t.toPercentYCoord(0,0))>1||A<0)&&(A=1),S=o(v.y+A*v.h);else S=o(v.y+v.h);u.moveTo(n(v.x),S),u.lineTo(n(v.x+v.w),S),u.closePath(),u.stroke()}u.restore()};const L=I;var D=function(){this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};D.prototype.toString=function(){return"ChartLabels Plugin"},D.prototype.activate=function(e){return{layout:this.layout,didDrawChart:this.didDrawChart}};var F=function(e){var t=document.createElement("div");return t.style.position="absolute",t.style.left=e.x+"px",t.style.top=e.y+"px",t.style.width=e.w+"px",t.style.height=e.h+"px",t};D.prototype.detachLabels_=function(){for(var e=[this.title_div_,this.xlabel_div_,this.ylabel_div_,this.y2label_div_],t=0;t<e.length;t++){var n=e[t];n&&(n.parentNode&&n.parentNode.removeChild(n))}this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};var j=function(e,t,n,r,o){var i=document.createElement("div");i.style.position="absolute",i.style.left=1==n?"0px":t.x+"px",i.style.top=t.y+"px",i.style.width=t.w+"px",i.style.height=t.h+"px",i.style.fontSize=e.getOption("yLabelWidth")-2+"px";var a=document.createElement("div");a.style.position="absolute",a.style.width=t.h+"px",a.style.height=t.w+"px",a.style.top=t.h/2-t.w/2+"px",a.style.left=t.w/2-t.h/2+"px",a.className="dygraph-label-rotate-"+(1==n?"right":"left");var s=document.createElement("div");return s.className=r,s.innerHTML=o,a.appendChild(s),i.appendChild(a),i};D.prototype.layout=function(e){this.detachLabels_();var t=e.dygraph,n=e.chart_div;if(t.getOption("title")){var r=e.reserveSpaceTop(t.getOption("titleHeight"));this.title_div_=F(r),this.title_div_.style.fontSize=t.getOption("titleHeight")-8+"px",(o=document.createElement("div")).className="dygraph-label dygraph-title",o.innerHTML=t.getOption("title"),this.title_div_.appendChild(o),n.appendChild(this.title_div_)}if(t.getOption("xlabel")){var o,i=e.reserveSpaceBottom(t.getOption("xLabelHeight"));this.xlabel_div_=F(i),this.xlabel_div_.style.fontSize=t.getOption("xLabelHeight")-2+"px",(o=document.createElement("div")).className="dygraph-label dygraph-xlabel",o.innerHTML=t.getOption("xlabel"),this.xlabel_div_.appendChild(o),n.appendChild(this.xlabel_div_)}if(t.getOption("ylabel")){var a=e.reserveSpaceLeft(0);this.ylabel_div_=j(t,a,1,"dygraph-label dygraph-ylabel",t.getOption("ylabel")),n.appendChild(this.ylabel_div_)}if(t.getOption("y2label")&&2==t.numAxes()){var s=e.reserveSpaceRight(0);this.y2label_div_=j(t,s,2,"dygraph-label dygraph-y2label",t.getOption("y2label")),n.appendChild(this.y2label_div_)}},D.prototype.didDrawChart=function(e){var t=e.dygraph;this.title_div_&&(this.title_div_.children[0].innerHTML=t.getOption("title")),this.xlabel_div_&&(this.xlabel_div_.children[0].innerHTML=t.getOption("xlabel")),this.ylabel_div_&&(this.ylabel_div_.children[0].children[0].innerHTML=t.getOption("ylabel")),this.y2label_div_&&(this.y2label_div_.children[0].children[0].innerHTML=t.getOption("y2label"))},D.prototype.clearChart=function(){},D.prototype.destroy=function(){this.detachLabels_()};const U=D;var z=function(){};z.prototype.toString=function(){return"Gridline Plugin"},z.prototype.activate=function(e){return{willDrawChart:this.willDrawChart}},z.prototype.willDrawChart=function(e){var t,n,r,o=e.dygraph,i=e.drawingContext,a=o.layout_,s=e.dygraph.plotter_.area;function u(e){return Math.round(e)+.5}function l(e){return Math.round(e)-.5}if(o.getOptionForAxis("drawGrid","y")){for(var c=["y","y2"],f=[],d=[],h=[],p=[],g=[],v=0;v<c.length;v++)h[v]=o.getOptionForAxis("drawGrid",c[v]),h[v]&&(f[v]=o.getOptionForAxis("gridLineColor",c[v]),d[v]=o.getOptionForAxis("gridLineWidth",c[v]),g[v]=o.getOptionForAxis("gridLinePattern",c[v]),p[v]=g[v]&&g[v].length>=2);r=a.yticks,i.save(),r.forEach((e=>{if(e.has_tick){var r=e.axis;h[r]&&(i.save(),p[r]&&i.setLineDash&&i.setLineDash(g[r]),i.strokeStyle=f[r],i.lineWidth=d[r],t=u(s.x),n=l(s.y+e.pos*s.h),i.beginPath(),i.moveTo(t,n),i.lineTo(t+s.w,n),i.stroke(),i.restore())}})),i.restore()}if(o.getOptionForAxis("drawGrid","x")){r=a.xticks,i.save();g=o.getOptionForAxis("gridLinePattern","x");(p=g&&g.length>=2)&&i.setLineDash&&i.setLineDash(g),i.strokeStyle=o.getOptionForAxis("gridLineColor","x"),i.lineWidth=o.getOptionForAxis("gridLineWidth","x"),r.forEach((e=>{e.has_tick&&(t=u(s.x+e.pos*s.w),n=l(s.y+s.h),i.beginPath(),i.moveTo(t,n),i.lineTo(t,s.y),i.stroke())})),p&&i.setLineDash&&i.setLineDash([]),i.restore()}},z.prototype.destroy=function(){};const B=z;var V=function(){this.legend_div_=null,this.is_generated_div_=!1};V.prototype.toString=function(){return"Legend Plugin"},V.prototype.activate=function(e){var t,n=e.getOption("labelsDiv");return n&&null!==n?t="string"==typeof n||n instanceof String?document.getElementById(n):n:((t=document.createElement("div")).className="dygraph-legend",e.graphDiv.appendChild(t),this.is_generated_div_=!0),this.legend_div_=t,this.one_em_width_=10,{select:this.select,deselect:this.deselect,predraw:this.predraw,didDrawChart:this.didDrawChart}};function H(e,t,n){if(!e||e.length<=1)return`<div class="dygraph-legend-line" style="border-bottom-color: ${t};"></div>`;var r,o,i,a,s=0,u=0,l=[];for(r=0;r<=e.length;r++)s+=e[r%e.length];if((a=Math.floor(n/(s-e[0])))>1){for(r=0;r<e.length;r++)l[r]=e[r]/n;u=l.length}else{for(a=1,r=0;r<e.length;r++)l[r]=e[r]/s;u=l.length+1}var c="";for(o=0;o<a;o++)for(r=0;r<u;r+=2)i=l[r%l.length],c+=`<div class="dygraph-legend-dash" style="margin-right: ${r<e.length?l[(r+1)%l.length]:0}em; padding-left: ${i}em;"></div>`;return c}V.prototype.select=function(e){var t=e.selectedX,n=e.selectedPoints,r=e.selectedRow,o=e.dygraph.getOption("legend");if("never"!==o){var i=V.generateLegendHTML(e.dygraph,t,n,this.one_em_width_,r);if(i instanceof Node&&i.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(this.legend_div_.innerHTML="",this.legend_div_.appendChild(i)):this.legend_div_.innerHTML=i,this.legend_div_.style.display="","follow"===o){var a,s=e.dygraph.plotter_.area,u=this.legend_div_.offsetWidth,l=e.dygraph.getOptionForAxis("axisLabelWidth","y"),c=e.dygraph.getHighlightSeries();c&&(a=n.find((e=>e.name===c)))||(a=n[0]);const t=e.dygraph.getNumericOption("legendFollowOffsetX"),r=e.dygraph.getNumericOption("legendFollowOffsetY");var f=a.x*s.w+t,d=a.y*s.h+r;f+u+1>s.w&&(f=f-2*t-u-(l-s.x)),this.legend_div_.style.left=l+f+"px",this.legend_div_.style.top=d+"px"}else if("onmouseover"===o&&this.is_generated_div_){s=e.dygraph.plotter_.area,u=this.legend_div_.offsetWidth;this.legend_div_.style.left=s.x+s.w-u-1+"px",this.legend_div_.style.top=s.y+"px"}}else this.legend_div_.style.display="none"},V.prototype.deselect=function(e){"always"!==e.dygraph.getOption("legend")&&(this.legend_div_.style.display="none");var t=function(e){var t=document.createElement("span");t.setAttribute("style","margin: 0; padding: 0 0 0 1em; border: 0;"),e.appendChild(t);var n=t.offsetWidth;return e.removeChild(t),n}(this.legend_div_);this.one_em_width_=t;var n=V.generateLegendHTML(e.dygraph,void 0,void 0,t,null);n instanceof Node&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(this.legend_div_.innerHTML="",this.legend_div_.appendChild(n)):this.legend_div_.innerHTML=n},V.prototype.didDrawChart=function(e){this.deselect(e)},V.prototype.predraw=function(e){if(this.is_generated_div_){e.dygraph.graphDiv.appendChild(this.legend_div_);var t=e.dygraph.plotter_.area,n=this.legend_div_.offsetWidth;this.legend_div_.style.left=t.x+t.w-n-1+"px",this.legend_div_.style.top=t.y+"px"}},V.prototype.destroy=function(){this.legend_div_=null},V.generateLegendHTML=function(e,t,n,o,i){var a,s={dygraph:e,x:t,i:i,series:[]},u={},l=e.getLabels();if(l)for(var c=1;c<l.length;c++){var f=e.getPropertiesForSeries(l[c]),d={dashHTML:H(e.getOption("strokePattern",l[c]),f.color,o),label:l[c],labelHTML:(a=l[c],a.replace(/&/g,"&amp;").replace(/"/g,"&#34;").replace(/</g,"&lt;").replace(/>/g,"&gt;")),isVisible:f.visible,color:f.color};s.series.push(d),u[l[c]]=d}if("undefined"!==typeof t){var h=e.optionsViewForAxis_("x"),p=h("valueFormatter");s.xHTML=p.call(e,t,h,l[0],e,i,0);var g=[],v=e.numAxes();for(c=0;c<v;c++)g[c]=e.optionsViewForAxis_("y"+(c?1+c:""));var y=e.getOption("labelsShowZeroValues"),m=e.getHighlightSeries();for(c=0;c<n.length;c++){var b=n[c];if((d=u[b.name]).y=b.yval,0===b.yval&&!y||isNaN(b.canvasy))d.isVisible=!1;else{var _=g[(f=e.getPropertiesForSeries(b.name)).axis-1],w=_("valueFormatter").call(e,b.yval,_,b.name,e,i,l.indexOf(b.name));r.update(d,{yHTML:w}),b.name==m&&(d.isHighlighted=!0)}}}return(e.getOption("legendFormatter")||V.defaultFormatter).call(e,s)},V.defaultFormatter=function(e){var t=e.dygraph;if(!0!==t.getOption("showLabelsOnHighlight"))return"";var n,r=t.getOption("labelsSeparateLines");if("undefined"===typeof e.x){if("always"!=t.getOption("legend"))return"";n="";for(var o=0;o<e.series.length;o++){(i=e.series[o]).isVisible&&(""!==n&&(n+=r?"<br />":" "),n+=`<span style='font-weight: bold; color: ${i.color};'>${i.dashHTML} ${i.labelHTML}</span>`)}return n}n=e.xHTML+":";for(o=0;o<e.series.length;o++){var i;if((i=e.series[o]).y||i.yHTML)if(i.isVisible)r&&(n+="<br>"),n+=`<span${i.isHighlighted?' class="highlight"':""}> <b><span style='color: ${i.color};'>${i.labelHTML}</span></b>:&#160;${i.yHTML}</span>`}return n};const $=V;var W=function(){this.hasTouchInterface_="undefined"!=typeof TouchEvent,this.isMobileDevice_=/mobile|android/gi.test(navigator.appVersion),this.interfaceCreated_=!1};W.prototype.toString=function(){return"RangeSelector Plugin"},W.prototype.activate=function(e){return this.dygraph_=e,this.getOption_("showRangeSelector")&&this.createInterface_(),{layout:this.reserveSpace_,predraw:this.renderStaticLayer_,didDrawChart:this.renderInteractiveLayer_}},W.prototype.destroy=function(){this.bgcanvas_=null,this.fgcanvas_=null,this.leftZoomHandle_=null,this.rightZoomHandle_=null},W.prototype.getOption_=function(e,t){return this.dygraph_.getOption(e,t)},W.prototype.setDefaultOption_=function(e,t){this.dygraph_.attrs_[e]=t},W.prototype.createInterface_=function(){this.createCanvases_(),this.createZoomHandles_(),this.initInteraction_(),this.getOption_("animatedZooms")&&(console.warn("Animated zooms and range selector are not compatible; disabling animatedZooms."),this.dygraph_.updateOptions({animatedZooms:!1},!0)),this.interfaceCreated_=!0,this.addToGraph_()},W.prototype.addToGraph_=function(){var e=this.graphDiv_=this.dygraph_.graphDiv;e.appendChild(this.bgcanvas_),e.appendChild(this.fgcanvas_),e.appendChild(this.leftZoomHandle_),e.appendChild(this.rightZoomHandle_)},W.prototype.removeFromGraph_=function(){var e=this.graphDiv_;e.removeChild(this.bgcanvas_),e.removeChild(this.fgcanvas_),e.removeChild(this.leftZoomHandle_),e.removeChild(this.rightZoomHandle_),this.graphDiv_=null},W.prototype.reserveSpace_=function(e){this.getOption_("showRangeSelector")&&e.reserveSpaceBottom(this.getOption_("rangeSelectorHeight")+4)},W.prototype.renderStaticLayer_=function(){this.updateVisibility_()&&(this.resize_(),this.drawStaticLayer_())},W.prototype.renderInteractiveLayer_=function(){this.updateVisibility_()&&!this.isChangingRange_&&(this.placeZoomHandles_(),this.drawInteractiveLayer_())},W.prototype.updateVisibility_=function(){var e=this.getOption_("showRangeSelector");if(e)this.interfaceCreated_?this.graphDiv_&&this.graphDiv_.parentNode||this.addToGraph_():this.createInterface_();else if(this.graphDiv_){this.removeFromGraph_();var t=this.dygraph_;setTimeout((function(){t.width_=0,t.resize()}),1)}return e},W.prototype.resize_=function(){function e(e,t,n,o){var i=o||r.getContextPixelRatio(t);e.style.top=n.y+"px",e.style.left=n.x+"px",e.width=n.w*i,e.height=n.h*i,e.style.width=n.w+"px",e.style.height=n.h+"px",1!=i&&t.scale(i,i)}var t=this.dygraph_.layout_.getPlotArea(),n=0;this.dygraph_.getOptionForAxis("drawAxis","x")&&(n=this.getOption_("xAxisHeight")||this.getOption_("axisLabelFontSize")+2*this.getOption_("axisTickSize")),this.canvasRect_={x:t.x,y:t.y+t.h+n+4,w:t.w,h:this.getOption_("rangeSelectorHeight")};var o=this.dygraph_.getNumericOption("pixelRatio");e(this.bgcanvas_,this.bgcanvas_ctx_,this.canvasRect_,o),e(this.fgcanvas_,this.fgcanvas_ctx_,this.canvasRect_,o)},W.prototype.createCanvases_=function(){this.bgcanvas_=r.createCanvas(),this.bgcanvas_.className="dygraph-rangesel-bgcanvas",this.bgcanvas_.style.position="absolute",this.bgcanvas_.style.zIndex=9,this.bgcanvas_ctx_=r.getContext(this.bgcanvas_),this.fgcanvas_=r.createCanvas(),this.fgcanvas_.className="dygraph-rangesel-fgcanvas",this.fgcanvas_.style.position="absolute",this.fgcanvas_.style.zIndex=9,this.fgcanvas_.style.cursor="default",this.fgcanvas_ctx_=r.getContext(this.fgcanvas_)},W.prototype.createZoomHandles_=function(){var e=new Image;e.className="dygraph-rangesel-zoomhandle",e.style.position="absolute",e.style.zIndex=10,e.style.visibility="hidden",e.style.cursor="col-resize",e.width=9,e.height=16,e.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQCAYAAADESFVDAAAAAXNSR0IArs4c6QAAAAZiS0dEANAAzwDP4Z7KegAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sHGw0cMqdt1UwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAaElEQVQoz+3SsRFAQBCF4Z9WJM8KCDVwownl6YXsTmCUsyKGkZzcl7zkz3YLkypgAnreFmDEpHkIwVOMfpdi9CEEN2nGpFdwD03yEqDtOgCaun7sqSTDH32I1pQA2Pb9sZecAxc5r3IAb21d6878xsAAAAAASUVORK5CYII=",this.isMobileDevice_&&(e.width*=2,e.height*=2),this.leftZoomHandle_=e,this.rightZoomHandle_=e.cloneNode(!1)},W.prototype.initInteraction_=function(){var e,t,n,o,i,a,s,u,l,c,d,h,p,g,y=this,m=document,b=0,_=null,w=!1,x=!1,S=!this.isMobileDevice_,A=new v;e=function(e){var t=y.dygraph_.xAxisExtremes(),n=(t[1]-t[0])/y.canvasRect_.w;return[t[0]+(e.leftHandlePos-y.canvasRect_.x)*n,t[0]+(e.rightHandlePos-y.canvasRect_.x)*n]},t=function(e){return r.cancelEvent(e),w=!0,b=e.clientX,_=e.target?e.target:e.srcElement,"mousedown"!==e.type&&"dragstart"!==e.type||(r.addEvent(m,"mousemove",n),r.addEvent(m,"mouseup",o)),y.fgcanvas_.style.cursor="col-resize",A.cover(),!0},n=function(e){if(!w)return!1;r.cancelEvent(e);var t=e.clientX-b;if(Math.abs(t)<4)return!0;b=e.clientX;var n,o=y.getZoomHandleStatus_();_==y.leftZoomHandle_?(n=o.leftHandlePos+t,n=Math.min(n,o.rightHandlePos-_.width-3),n=Math.max(n,y.canvasRect_.x)):(n=o.rightHandlePos+t,n=Math.min(n,y.canvasRect_.x+y.canvasRect_.w),n=Math.max(n,o.leftHandlePos+_.width+3));var a=_.width/2;return _.style.left=n-a+"px",y.drawInteractiveLayer_(),S&&i(),!0},o=function(e){return!!w&&(w=!1,A.uncover(),r.removeEvent(m,"mousemove",n),r.removeEvent(m,"mouseup",o),y.fgcanvas_.style.cursor="default",S||i(),!0)},i=function(){try{var t=y.getZoomHandleStatus_();if(y.isChangingRange_=!0,t.isZoomed){var n=e(t);y.dygraph_.doZoomXDates_(n[0],n[1])}else y.dygraph_.resetZoom()}finally{y.isChangingRange_=!1}},a=function(e){var t=y.leftZoomHandle_.getBoundingClientRect(),n=t.left+t.width/2,r=(t=y.rightZoomHandle_.getBoundingClientRect()).left+t.width/2;return e.clientX>n&&e.clientX<r},s=function(e){return!(x||!a(e)||!y.getZoomHandleStatus_().isZoomed)&&(r.cancelEvent(e),x=!0,b=e.clientX,"mousedown"===e.type&&(r.addEvent(m,"mousemove",u),r.addEvent(m,"mouseup",l)),!0)},u=function(e){if(!x)return!1;r.cancelEvent(e);var t=e.clientX-b;if(Math.abs(t)<4)return!0;b=e.clientX;var n=y.getZoomHandleStatus_(),o=n.leftHandlePos,i=n.rightHandlePos,a=i-o;o+t<=y.canvasRect_.x?i=(o=y.canvasRect_.x)+a:i+t>=y.canvasRect_.x+y.canvasRect_.w?o=(i=y.canvasRect_.x+y.canvasRect_.w)-a:(o+=t,i+=t);var s=y.leftZoomHandle_.width/2;return y.leftZoomHandle_.style.left=o-s+"px",y.rightZoomHandle_.style.left=i-s+"px",y.drawInteractiveLayer_(),S&&c(),!0},l=function(e){return!!x&&(x=!1,r.removeEvent(m,"mousemove",u),r.removeEvent(m,"mouseup",l),S||c(),!0)},c=function(){try{y.isChangingRange_=!0,y.dygraph_.dateWindow_=e(y.getZoomHandleStatus_()),y.dygraph_.drawGraph_(!1)}finally{y.isChangingRange_=!1}},d=function(e){if(!w&&!x){var t=a(e)?"move":"default";t!=y.fgcanvas_.style.cursor&&(y.fgcanvas_.style.cursor=t)}},h=function(e){"touchstart"==e.type&&1==e.targetTouches.length?t(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?n(e.targetTouches[0])&&r.cancelEvent(e):o(e)},p=function(e){"touchstart"==e.type&&1==e.targetTouches.length?s(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?u(e.targetTouches[0])&&r.cancelEvent(e):l(e)},g=function(e,t){for(var n=["touchstart","touchend","touchmove","touchcancel"],r=0;r<n.length;r++)y.dygraph_.addAndTrackEvent(e,n[r],t)},this.setDefaultOption_("interactionModel",f.dragIsPanInteractionModel),this.setDefaultOption_("panEdgeFraction",1e-4);var E=window.opera?"mousedown":"dragstart";this.dygraph_.addAndTrackEvent(this.leftZoomHandle_,E,t),this.dygraph_.addAndTrackEvent(this.rightZoomHandle_,E,t),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousedown",s),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousemove",d),this.hasTouchInterface_&&(g(this.leftZoomHandle_,h),g(this.rightZoomHandle_,h),g(this.fgcanvas_,p))},W.prototype.drawStaticLayer_=function(){var e=this.bgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);try{this.drawMiniPlot_()}catch(n){console.warn(n)}var t=.5;this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorBackgroundLineWidth"),e.strokeStyle=this.getOption_("rangeSelectorBackgroundStrokeColor"),e.beginPath(),e.moveTo(t,t),e.lineTo(t,this.canvasRect_.h-t),e.lineTo(this.canvasRect_.w-t,this.canvasRect_.h-t),e.lineTo(this.canvasRect_.w-t,t),e.stroke()},W.prototype.drawMiniPlot_=function(){var e=this.getOption_("rangeSelectorPlotFillColor"),t=this.getOption_("rangeSelectorPlotFillGradientColor"),n=this.getOption_("rangeSelectorPlotStrokeColor");if(e||n){var r=this.getOption_("stepPlot"),o=this.computeCombinedSeriesAndLimits_(),i=o.yMax-o.yMin,a=this.bgcanvas_ctx_,s=.5,u=this.dygraph_.xAxisExtremes(),l=Math.max(u[1]-u[0],1e-30),c=(this.canvasRect_.w-s)/l,f=(this.canvasRect_.h-s)/i,d=this.canvasRect_.w-s,h=this.canvasRect_.h-s,p=null,g=null;a.beginPath(),a.moveTo(s,h);for(var v=0;v<o.data.length;v++){var y=o.data[v],m=null!==y[0]?(y[0]-u[0])*c:NaN,b=null!==y[1]?h-(y[1]-o.yMin)*f:NaN;(r||null===p||Math.round(m)!=Math.round(p))&&(isFinite(m)&&isFinite(b)?(null===p?a.lineTo(m,h):r&&a.lineTo(m,g),a.lineTo(m,b),p=m,g=b):(null!==p&&(r?(a.lineTo(m,g),a.lineTo(m,h)):a.lineTo(p,h)),p=g=null))}if(a.lineTo(d,h),a.closePath(),e){var _=this.bgcanvas_ctx_.createLinearGradient(0,0,0,h);t&&_.addColorStop(0,t),_.addColorStop(1,e),this.bgcanvas_ctx_.fillStyle=_,a.fill()}n&&(this.bgcanvas_ctx_.strokeStyle=n,this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorPlotLineWidth"),a.stroke())}},W.prototype.computeCombinedSeriesAndLimits_=function(){var e,t=this.dygraph_,n=this.getOption_("logscale"),o=t.numColumns(),i=t.getLabels(),a=new Array(o),s=!1,u=t.visibility(),l=[];for(e=1;e<o;e++){var c=this.getOption_("showInRangeSelector",i[e]);l.push(c),null!==c&&(s=!0)}if(s)for(e=1;e<o;e++)a[e]=l[e-1];else for(e=1;e<o;e++)a[e]=u[e-1];var f=[],d=t.dataHandler_,h=t.attributes_;for(e=1;e<t.numColumns();e++)if(a[e]){var p=d.extractSeries(t.rawData_,e,h);t.rollPeriod()>1&&(p=d.rollingAverage(p,t.rollPeriod(),h,e)),f.push(p)}var g=[];for(e=0;e<f[0].length;e++){for(var v=0,y=0,m=0;m<f.length;m++){var b=f[m][e][1];null===b||isNaN(b)||(y++,v+=b)}g.push([f[0][e][0],v/y])}var _=Number.MAX_VALUE,w=-Number.MAX_VALUE;for(e=0;e<g.length;e++){var x=g[e][1];null!==x&&isFinite(x)&&(!n||x>0)&&(_=Math.min(_,x),w=Math.max(w,x))}var S=.25;if(n)for(w=r.log10(w),w+=w*S,_=r.log10(_),e=0;e<g.length;e++)g[e][1]=r.log10(g[e][1]);else{var A,E=w-_;w+=A=E<=Number.MIN_VALUE?w*S:E*S,_-=A}return{data:g,yMin:_,yMax:w}},W.prototype.placeZoomHandles_=function(){var e=this.dygraph_.xAxisExtremes(),t=this.dygraph_.xAxisRange(),n=e[1]-e[0],r=Math.max(0,(t[0]-e[0])/n),o=Math.max(0,(e[1]-t[1])/n),i=this.canvasRect_.x+this.canvasRect_.w*r,a=this.canvasRect_.x+this.canvasRect_.w*(1-o),s=Math.max(this.canvasRect_.y,this.canvasRect_.y+(this.canvasRect_.h-this.leftZoomHandle_.height)/2),u=this.leftZoomHandle_.width/2;this.leftZoomHandle_.style.left=i-u+"px",this.leftZoomHandle_.style.top=s+"px",this.rightZoomHandle_.style.left=a-u+"px",this.rightZoomHandle_.style.top=this.leftZoomHandle_.style.top,this.leftZoomHandle_.style.visibility="visible",this.rightZoomHandle_.style.visibility="visible"},W.prototype.drawInteractiveLayer_=function(){var e=this.fgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);var t=this.canvasRect_.w-1,n=this.canvasRect_.h-1,r=this.getZoomHandleStatus_();if(e.strokeStyle=this.getOption_("rangeSelectorForegroundStrokeColor"),e.lineWidth=this.getOption_("rangeSelectorForegroundLineWidth"),r.isZoomed){var o=Math.max(1,r.leftHandlePos-this.canvasRect_.x),i=Math.min(t,r.rightHandlePos-this.canvasRect_.x);const a=this.getOption_("rangeSelectorVeilColour");e.fillStyle=a||"rgba(240, 240, 240, "+this.getOption_("rangeSelectorAlpha").toString()+")",e.fillRect(0,0,o,this.canvasRect_.h),e.fillRect(i,0,this.canvasRect_.w-i,this.canvasRect_.h),e.beginPath(),e.moveTo(1,1),e.lineTo(o,1),e.lineTo(o,n),e.lineTo(i,n),e.lineTo(i,1),e.lineTo(t,1),e.stroke()}else e.beginPath(),e.moveTo(1,1),e.lineTo(1,n),e.lineTo(t,n),e.lineTo(t,1),e.stroke()},W.prototype.getZoomHandleStatus_=function(){var e=this.leftZoomHandle_.width/2,t=parseFloat(this.leftZoomHandle_.style.left)+e,n=parseFloat(this.rightZoomHandle_.style.left)+e;return{leftHandlePos:t,rightHandlePos:n,isZoomed:t-1>this.canvasRect_.x||n+1<this.canvasRect_.x+this.canvasRect_.w}};const G=W;var q=function(e){this.container=e};q.prototype.draw=function(e,t){this.container.innerHTML="","undefined"!=typeof this.date_graph&&this.date_graph.destroy(),this.date_graph=new K(this.container,e,t)},q.prototype.setSelection=function(e){var t=!1;e.length&&(t=e[0].row),this.date_graph.setSelection(t)},q.prototype.getSelection=function(){var e=[],t=this.date_graph.getSelection();if(t<0)return e;for(var n=this.date_graph.layout_.points,r=0;r<n.length;++r)e.push({row:t,column:r+1});return e};const Y=q;var X=function(e,t,n){this.__init__(e,t,n)};X.NAME="Dygraph",X.VERSION="2.2.1";var Z={};(X._require=function(e){return e in Z?Z[e]:X._require._b(e)})._b=null,X._require.add=function(e,t){Z[e]=t},X.DEFAULT_ROLL_PERIOD=1,X.DEFAULT_WIDTH=480,X.DEFAULT_HEIGHT=320,X.ANIMATION_STEPS=12,X.ANIMATION_DURATION=200,X.Plotters=s._Plotters,X.addedAnnotationCSS=!1,X.prototype.__init__=function(e,t,n){if(this.is_initial_draw_=!0,this.readyFns_=[],null!==n&&void 0!==n||(n={}),n=X.copyUserAttrs_(n),"string"==typeof e&&(e=document.getElementById(e)),!e)throw new Error("Constructing dygraph with a non-existent div!");this.maindiv_=e,this.file_=t,this.rollPeriod_=n.rollPeriod||X.DEFAULT_ROLL_PERIOD,this.previousVerticalX_=-1,this.fractions_=n.fractions||!1,this.dateWindow_=n.dateWindow||null,this.annotations_=[],e.innerHTML="";const o=window.getComputedStyle(e,null);"0px"===o.paddingLeft&&"0px"===o.paddingRight&&"0px"===o.paddingTop&&"0px"===o.paddingBottom||console.error("Main div contains padding; graph will misbehave"),""===e.style.width&&n.width&&(e.style.width=n.width+"px"),""===e.style.height&&n.height&&(e.style.height=n.height+"px"),""===e.style.height&&0===e.clientHeight&&(e.style.height=X.DEFAULT_HEIGHT+"px",""===e.style.width&&(e.style.width=X.DEFAULT_WIDTH+"px")),this.width_=e.clientWidth||n.width||0,this.height_=e.clientHeight||n.height||0,n.stackedGraph&&(n.fillGraph=!0),this.user_attrs_={},r.update(this.user_attrs_,n),this.attrs_={},r.updateDeep(this.attrs_,d),this.boundaryIds_=[],this.setIndexByName_={},this.datasetIndex_=[],this.registeredEvents_=[],this.eventListeners_={},this.attributes_=new p(this),this.createInterface_(),this.plugins_=[];for(var i=X.PLUGINS.concat(this.getOption("plugins")),a=0;a<i.length;a++){var s,u=i[a],l={plugin:s="undefined"!==typeof u.activate?u:new u,events:{},options:{},pluginOptions:{}},c=s.activate(this);for(var f in c)c.hasOwnProperty(f)&&(l.events[f]=c[f]);this.plugins_.push(l)}for(a=0;a<this.plugins_.length;a++){var h=this.plugins_[a];for(var f in h.events)if(h.events.hasOwnProperty(f)){var g=h.events[f],v=[h.plugin,g];f in this.eventListeners_?this.eventListeners_[f].push(v):this.eventListeners_[f]=[v]}}this.createDragInterface_(),this.start_()},X.prototype.cascadeEvents_=function(e,t){if(!(e in this.eventListeners_))return!1;var n={dygraph:this,cancelable:!1,defaultPrevented:!1,preventDefault:function(){if(!n.cancelable)throw"Cannot call preventDefault on non-cancelable event.";n.defaultPrevented=!0},propagationStopped:!1,stopPropagation:function(){n.propagationStopped=!0}};r.update(n,t);var o=this.eventListeners_[e];if(o)for(var i=o.length-1;i>=0;i--){var a=o[i][0];if(o[i][1].call(a,n),n.propagationStopped)break}return n.defaultPrevented},X.prototype.getPluginInstance_=function(e){for(var t=0;t<this.plugins_.length;t++){var n=this.plugins_[t];if(n.plugin instanceof e)return n.plugin}return null},X.prototype.isZoomed=function(e){const t=!!this.dateWindow_;if("x"===e)return t;const n=this.axes_.map((e=>!!e.valueRange)).indexOf(!0)>=0;if(null===e||void 0===e)return t||n;if("y"===e)return n;throw new Error(`axis parameter is [${e}] must be null, 'x' or 'y'.`)},X.prototype.toString=function(){var e=this.maindiv_;return"[Dygraph "+(e&&e.id?e.id:e)+"]"},X.prototype.attr_=function(e,t){return t?this.attributes_.getForSeries(e,t):this.attributes_.get(e)},X.prototype.getOption=function(e,t){return this.attr_(e,t)},X.prototype.getNumericOption=function(e,t){return this.getOption(e,t)},X.prototype.getStringOption=function(e,t){return this.getOption(e,t)},X.prototype.getBooleanOption=function(e,t){return this.getOption(e,t)},X.prototype.getFunctionOption=function(e,t){return this.getOption(e,t)},X.prototype.getOptionForAxis=function(e,t){return this.attributes_.getForAxis(e,t)},X.prototype.optionsViewForAxis_=function(e){var t=this;return function(n){var r=t.user_attrs_.axes;return r&&r[e]&&r[e].hasOwnProperty(n)?r[e][n]:("x"!==e||"logscale"!==n)&&("undefined"!=typeof t.user_attrs_[n]?t.user_attrs_[n]:(r=t.attrs_.axes)&&r[e]&&r[e].hasOwnProperty(n)?r[e][n]:"y"==e&&t.axes_[0].hasOwnProperty(n)?t.axes_[0][n]:"y2"==e&&t.axes_[1].hasOwnProperty(n)?t.axes_[1][n]:t.attr_(n))}},X.prototype.rollPeriod=function(){return this.rollPeriod_},X.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},X.prototype.xAxisExtremes=function(){var e=this.getNumericOption("xRangePad")/this.plotter_.area.w;if(0===this.numRows())return[0-e,1+e];var t=this.rawData_[0][0],n=this.rawData_[this.rawData_.length-1][0];if(e){var r=n-t;t-=r*e,n+=r*e}return[t,n]},X.prototype.yAxisExtremes=function(){const e=this.gatherDatasets_(this.rolledSeries_,null),{extremes:t}=e,n=this.axes_;this.computeYAxisRanges_(t);const r=this.axes_;return this.axes_=n,r.map((e=>e.extremeRange))},X.prototype.yAxisRange=function(e){if("undefined"==typeof e&&(e=0),e<0||e>=this.axes_.length)return null;var t=this.axes_[e];return[t.computedValueRange[0],t.computedValueRange[1]]},X.prototype.yAxisRanges=function(){for(var e=[],t=0;t<this.axes_.length;t++)e.push(this.yAxisRange(t));return e},X.prototype.toDomCoords=function(e,t,n){return[this.toDomXCoord(e),this.toDomYCoord(t,n)]},X.prototype.toDomXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,n=this.xAxisRange();return t.x+(e-n[0])/(n[1]-n[0])*t.w},X.prototype.toDomYCoord=function(e,t){var n=this.toPercentYCoord(e,t);if(null===n)return null;var r=this.plotter_.area;return r.y+n*r.h},X.prototype.toDataCoords=function(e,t,n){return[this.toDataXCoord(e),this.toDataYCoord(t,n)]},X.prototype.toDataXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,n=this.xAxisRange();if(this.attributes_.getForAxis("logscale","x")){var o=(e-t.x)/t.w;return r.logRangeFraction(n[0],n[1],o)}return n[0]+(e-t.x)/t.w*(n[1]-n[0])},X.prototype.toDataYCoord=function(e,t){if(null===e)return null;var n=this.plotter_.area,o=this.yAxisRange(t);if("undefined"==typeof t&&(t=0),this.attributes_.getForAxis("logscale",t)){var i=(e-n.y)/n.h;return r.logRangeFraction(o[1],o[0],i)}return o[0]+(n.y+n.h-e)/n.h*(o[1]-o[0])},X.prototype.toPercentYCoord=function(e,t){if(null===e)return null;"undefined"==typeof t&&(t=0);var n,o=this.yAxisRange(t);if(this.attributes_.getForAxis("logscale",t)){var i=r.log10(o[0]),a=r.log10(o[1]);n=(a-r.log10(e))/(a-i)}else n=(o[1]-e)/(o[1]-o[0]);return n},X.prototype.toPercentXCoord=function(e){if(null===e)return null;var t,n=this.xAxisRange();if(!0===this.attributes_.getForAxis("logscale","x")){var o=r.log10(n[0]),i=r.log10(n[1]);t=(r.log10(e)-o)/(i-o)}else t=(e-n[0])/(n[1]-n[0]);return t},X.prototype.numColumns=function(){return this.rawData_?this.rawData_[0]?this.rawData_[0].length:this.attr_("labels").length:0},X.prototype.numRows=function(){return this.rawData_?this.rawData_.length:0},X.prototype.getValue=function(e,t){return e<0||e>=this.rawData_.length||t<0||t>=this.rawData_[e].length?null:this.rawData_[e][t]},X.prototype.createInterface_=function(){var e=this.maindiv_;this.graphDiv=document.createElement("div"),this.graphDiv.style.textAlign="left",this.graphDiv.style.position="relative",e.appendChild(this.graphDiv),this.canvas_=r.createCanvas(),this.canvas_.style.position="absolute",this.canvas_.style.top=0,this.canvas_.style.left=0,this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.canvas_ctx_=r.getContext(this.canvas_),this.hidden_ctx_=r.getContext(this.hidden_),this.resizeElements_(),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new i(this);var t=this;if(this.mouseMoveHandler_=function(e){t.mouseMove_(e)},this.mouseOutHandler_=function(e){var n=e.target||e.fromElement,o=e.relatedTarget||e.toElement;r.isNodeContainedBy(n,t.graphDiv)&&!r.isNodeContainedBy(o,t.graphDiv)&&t.mouseOut_(e)},this.addAndTrackEvent(window,"mouseout",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),!this.resizeHandler_){this.resizeHandler_=function(e){t.resize()},this.addAndTrackEvent(window,"resize",this.resizeHandler_),this.resizeObserver_=null;var n=this.getStringOption("resizable");if("undefined"===typeof ResizeObserver&&"no"!==n&&(console.error("ResizeObserver unavailable; ignoring resizable property"),n="no"),"horizontal"===n||"vertical"===n||"both"===n?e.style.resize=n:"passive"!==n&&(n="no"),"no"!==n){window.getComputedStyle(e).overflow;"visible"===window.getComputedStyle(e).overflow&&(e.style.overflow="hidden"),this.resizeObserver_=new ResizeObserver(this.resizeHandler_),this.resizeObserver_.observe(e)}}},X.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+"px",this.graphDiv.style.height=this.height_+"px";var e=this.getNumericOption("pixelRatio"),t=e||r.getContextPixelRatio(this.canvas_ctx_);this.canvas_.width=this.width_*t,this.canvas_.height=this.height_*t,this.canvas_.style.width=this.width_+"px",this.canvas_.style.height=this.height_+"px",1!==t&&this.canvas_ctx_.scale(t,t);var n=e||r.getContextPixelRatio(this.hidden_ctx_);this.hidden_.width=this.width_*n,this.hidden_.height=this.height_*n,this.hidden_.style.width=this.width_+"px",this.hidden_.style.height=this.height_+"px",1!==n&&this.hidden_ctx_.scale(n,n)},X.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();for(var e=this.plugins_.length-1;e>=0;e--){var t=this.plugins_.pop();t.plugin.destroy&&t.plugin.destroy()}var n=function(e){for(;e.hasChildNodes();)n(e.firstChild),e.removeChild(e.firstChild)};this.removeTrackedEvents_(),r.removeEvent(window,"mouseout",this.mouseOutHandler_),r.removeEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null),r.removeEvent(window,"resize",this.resizeHandler_),this.resizeHandler_=null,n(this.maindiv_);var o=function(e){for(var t in e)"object"===typeof e[t]&&(e[t]=null)};o(this.layout_),o(this.plotter_),o(this)},X.prototype.createPlotKitCanvas_=function(e){var t=r.createCanvas();return t.style.position="absolute",t.style.top=e.style.top,t.style.left=e.style.left,t.width=this.width_,t.height=this.height_,t.style.width=this.width_+"px",t.style.height=this.height_+"px",t},X.prototype.createMouseEventElement_=function(){return this.canvas_},X.prototype.setColors_=function(){var e=this.getLabels(),t=e.length-1;this.colors_=[],this.colorsMap_={};for(var n=this.getNumericOption("colorSaturation")||1,o=this.getNumericOption("colorValue")||.5,i=Math.ceil(t/2),a=this.getOption("colors"),s=this.visibility(),u=0;u<t;u++)if(s[u]){var l=e[u+1],c=this.attributes_.getForSeries("color",l);if(!c)if(a)c=a[u%a.length];else{var f=1*(u%2?i+(u+1)/2:Math.ceil((u+1)/2))/(1+t);c=r.hsvToRGB(f,n,o)}this.colors_.push(c),this.colorsMap_[l]=c}},X.prototype.getColors=function(){return this.colors_},X.prototype.getPropertiesForSeries=function(e){for(var t=-1,n=this.getLabels(),r=1;r<n.length;r++)if(n[r]==e){t=r;break}return-1==t?null:{name:e,column:t,visible:this.visibility()[t-1],color:this.colorsMap_[e],axis:1+this.attributes_.axisForSeries(e)}},X.prototype.createRollInterface_=function(){var e=this.roller_;e||(this.roller_=e=document.createElement("input"),e.type="text",e.style.display="none",e.className="dygraph-roller",this.graphDiv.appendChild(e));var t=this.getBooleanOption("showRoller")?"block":"none",n=this.getArea(),o={top:n.y+n.h-25+"px",left:n.x+1+"px",display:t};e.size="2",e.value=this.rollPeriod_,r.update(e.style,o);const i=this;e.onchange=function(){return i.adjustRoll(e.value)}},X.prototype.createDragInterface_=function(){var e={isZooming:!1,isPanning:!1,is2DPan:!1,dragStartX:null,dragStartY:null,dragEndX:null,dragEndY:null,dragDirection:null,prevEndX:null,prevEndY:null,prevDragDirection:null,cancelNextDblclick:!1,initialLeftmostDate:null,xUnitsPerPixel:null,dateRange:null,px:0,py:0,boundedDates:null,boundedValues:null,tarp:new v,initializeMouseDown:function(e,t,n){e.preventDefault?e.preventDefault():(e.returnValue=!1,e.cancelBubble=!0);var o=r.findPos(t.canvas_);n.px=o.x,n.py=o.y,n.dragStartX=r.dragGetX_(e,n),n.dragStartY=r.dragGetY_(e,n),n.cancelNextDblclick=!1,n.tarp.cover()},destroy:function(){var e=this;if((e.isZooming||e.isPanning)&&(e.isZooming=!1,e.dragStartX=null,e.dragStartY=null),e.isPanning){e.isPanning=!1,e.draggingDate=null,e.dateRange=null;for(var t=0;t<n.axes_.length;t++)delete n.axes_[t].draggingValue,delete n.axes_[t].dragValueRange}e.tarp.uncover()}},t=this.getOption("interactionModel"),n=this,o=function(t){return function(r){t(r,n,e)}};for(var i in t)t.hasOwnProperty(i)&&this.addAndTrackEvent(this.mouseEventElement_,i,o(t[i]));if(!t.willDestroyContextMyself){this.addAndTrackEvent(document,"mouseup",(function(t){e.destroy()}))}},X.prototype.drawZoomRect_=function(e,t,n,o,i,a,s,u){var l=this.canvas_ctx_;a==r.HORIZONTAL?l.clearRect(Math.min(t,s),this.layout_.getPlotArea().y,Math.abs(t-s),this.layout_.getPlotArea().h):a==r.VERTICAL&&l.clearRect(this.layout_.getPlotArea().x,Math.min(o,u),this.layout_.getPlotArea().w,Math.abs(o-u)),e==r.HORIZONTAL?n&&t&&(l.fillStyle="rgba(128,128,128,0.33)",l.fillRect(Math.min(t,n),this.layout_.getPlotArea().y,Math.abs(n-t),this.layout_.getPlotArea().h)):e==r.VERTICAL&&i&&o&&(l.fillStyle="rgba(128,128,128,0.33)",l.fillRect(this.layout_.getPlotArea().x,Math.min(o,i),this.layout_.getPlotArea().w,Math.abs(i-o)))},X.prototype.clearZoomRect_=function(){this.currentZoomRectArgs_=null,this.canvas_ctx_.clearRect(0,0,this.width_,this.height_)},X.prototype.doZoomX_=function(e,t){this.currentZoomRectArgs_=null;var n=this.toDataXCoord(e),r=this.toDataXCoord(t);this.doZoomXDates_(n,r)},X.prototype.doZoomXDates_=function(e,t){var n=this.xAxisRange(),r=[e,t];const o=this.getFunctionOption("zoomCallback"),i=this;this.doAnimatedZoom(n,r,null,null,(function(){o&&o.call(i,e,t,i.yAxisRanges())}))},X.prototype.doZoomY_=function(e,t){this.currentZoomRectArgs_=null;for(var n=this.yAxisRanges(),r=[],o=0;o<this.axes_.length;o++){var i=this.toDataYCoord(e,o),a=this.toDataYCoord(t,o);r.push([a,i])}const s=this.getFunctionOption("zoomCallback"),u=this;this.doAnimatedZoom(null,null,n,r,(function(){if(s){const[e,t]=u.xAxisRange();s.call(u,e,t,u.yAxisRanges())}}))},X.zoomAnimationFunction=function(e,t){return(1-Math.pow(1.5,-e))/(1-Math.pow(1.5,-t))},X.prototype.resetZoom=function(){const e=this.isZoomed("x"),t=this.isZoomed("y"),n=e||t;if(this.clearSelection(),!n)return;const[r,o]=this.xAxisExtremes(),i=this.getBooleanOption("animatedZooms"),a=this.getFunctionOption("zoomCallback");if(!i)return this.dateWindow_=null,this.axes_.forEach((e=>{e.valueRange&&delete e.valueRange})),this.drawGraph_(),void(a&&a.call(this,r,o,this.yAxisRanges()));var s=null,u=null,l=null,c=null;e&&(s=this.xAxisRange(),u=[r,o]),t&&(l=this.yAxisRanges(),c=this.yAxisExtremes());const f=this;this.doAnimatedZoom(s,u,l,c,(function(){f.dateWindow_=null,f.axes_.forEach((e=>{e.valueRange&&delete e.valueRange})),a&&a.call(f,r,o,f.yAxisRanges())}))},X.prototype.doAnimatedZoom=function(e,t,n,o,i){var a,s,u=this.getBooleanOption("animatedZooms")?X.ANIMATION_STEPS:1,l=[],c=[];if(null!==e&&null!==t)for(a=1;a<=u;a++)s=X.zoomAnimationFunction(a,u),l[a-1]=[e[0]*(1-s)+s*t[0],e[1]*(1-s)+s*t[1]];if(null!==n&&null!==o)for(a=1;a<=u;a++){s=X.zoomAnimationFunction(a,u);for(var f=[],d=0;d<this.axes_.length;d++)f.push([n[d][0]*(1-s)+s*o[d][0],n[d][1]*(1-s)+s*o[d][1]]);c[a-1]=f}const h=this;r.repeatAndCleanup((function(e){if(c.length)for(var t=0;t<h.axes_.length;t++){var n=c[e][t];h.axes_[t].valueRange=[n[0],n[1]]}l.length&&(h.dateWindow_=l[e]),h.drawGraph_()}),u,X.ANIMATION_DURATION/u,i)},X.prototype.getArea=function(){return this.plotter_.area},X.prototype.eventToDomCoords=function(e){if(e.offsetX&&e.offsetY)return[e.offsetX,e.offsetY];var t=r.findPos(this.mouseEventElement_);return[r.pageX(e)-t.x,r.pageY(e)-t.y]},X.prototype.findClosestRow=function(e){for(var t=1/0,n=-1,o=this.layout_.points,i=0;i<o.length;i++)for(var a=o[i],s=a.length,u=0;u<s;u++){var l=a[u];if(r.isValidPoint(l,!0)){var c=Math.abs(l.canvasx-e);c<t&&(t=c,n=l.idx)}}return n},X.prototype.findClosestPoint=function(e,t){for(var n,o,i,a,s,u,l,c=1/0,f=this.layout_.points.length-1;f>=0;--f)for(var d=this.layout_.points[f],h=0;h<d.length;++h)a=d[h],r.isValidPoint(a)&&(n=(o=a.canvasx-e)*o+(i=a.canvasy-t)*i)<c&&(c=n,s=a,u=f,l=a.idx);return{row:l,seriesName:this.layout_.setNames[u],point:s}},X.prototype.findStackedPoint=function(e,t){for(var n,o,i=this.findClosestRow(e),a=0;a<this.layout_.points.length;++a){var s=i-this.getLeftBoundary_(a),u=this.layout_.points[a];if(!(s>=u.length)){var l=u[s];if(r.isValidPoint(l)){var c=l.canvasy;if(e>l.canvasx&&s+1<u.length){var f=u[s+1];if(r.isValidPoint(f))if((d=f.canvasx-l.canvasx)>0)c+=(e-l.canvasx)/d*(f.canvasy-l.canvasy)}else if(e<l.canvasx&&s>0){var d,h=u[s-1];if(r.isValidPoint(h))if((d=l.canvasx-h.canvasx)>0)c+=(l.canvasx-e)/d*(h.canvasy-l.canvasy)}(0===a||c<t)&&(n=l,o=a)}}}return{row:i,seriesName:this.layout_.setNames[o],point:n}},X.prototype.mouseMove_=function(e){var t=this.layout_.points;if(void 0!==t&&null!==t){var n=this.eventToDomCoords(e),r=n[0],o=n[1],i=!1;if(this.getOption("highlightSeriesOpts")&&!this.isSeriesLocked()){var a;a=this.getBooleanOption("stackedGraph")?this.findStackedPoint(r,o):this.findClosestPoint(r,o),i=this.setSelection(a.row,a.seriesName)}else{var s=this.findClosestRow(r);i=this.setSelection(s)}var u=this.getFunctionOption("highlightCallback");u&&i&&u.call(this,e,this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}},X.prototype.getLeftBoundary_=function(e){if(this.boundaryIds_[e])return this.boundaryIds_[e][0];for(var t=0;t<this.boundaryIds_.length;t++)if(void 0!==this.boundaryIds_[t])return this.boundaryIds_[t][0];return 0},X.prototype.animateSelection_=function(e){void 0===this.fadeLevel&&(this.fadeLevel=0),void 0===this.animateId&&(this.animateId=0);var t=this.fadeLevel,n=e<0?t:10-t;if(n<=0)this.fadeLevel&&this.updateSelection_(1);else{var o=++this.animateId,i=this;r.repeatAndCleanup((function(t){i.animateId==o&&(i.fadeLevel+=e,0===i.fadeLevel?i.clearSelection():i.updateSelection_(i.fadeLevel/10))}),n,30,(function(){0!==i.fadeLevel&&e<0&&(i.fadeLevel=0,i.clearSelection())}))}},X.prototype.updateSelection_=function(e){var t;this.cascadeEvents_("select",{selectedRow:-1===this.lastRow_?void 0:this.lastRow_,selectedX:null===this.lastx_?void 0:this.lastx_,selectedPoints:this.selPoints_});var n=this.canvas_ctx_;if(this.getOption("highlightSeriesOpts")){n.clearRect(0,0,this.width_,this.height_);var o=1-this.getNumericOption("highlightSeriesBackgroundAlpha"),i=r.toRGB_(this.getOption("highlightSeriesBackgroundColor"));if(o){if(this.getBooleanOption("animateBackgroundFade")){if(void 0===e)return void this.animateSelection_(1);o*=e}n.fillStyle="rgba("+i.r+","+i.g+","+i.b+","+o+")",n.fillRect(0,0,this.width_,this.height_)}this.plotter_._renderLineChart(this.highlightSet_,n)}else if(this.previousVerticalX_>=0){var a=0,s=this.attr_("labels");for(t=1;t<s.length;t++){var u=this.getNumericOption("highlightCircleSize",s[t]);u>a&&(a=u)}var l=this.previousVerticalX_;n.clearRect(l-a-1,0,2*a+2,this.height_)}if(this.selPoints_.length>0){var c=this.selPoints_[0].canvasx;for(n.save(),t=0;t<this.selPoints_.length;t++){var f=this.selPoints_[t];if(!isNaN(f.canvasy)){var d=this.getNumericOption("highlightCircleSize",f.name),h=this.getFunctionOption("drawHighlightPointCallback",f.name),p=this.plotter_.colors[f.name];h||(h=r.Circles.DEFAULT),n.lineWidth=this.getNumericOption("strokeWidth",f.name),n.strokeStyle=p,n.fillStyle=p,h.call(this,this,f.name,n,c,f.canvasy,p,d,f.idx)}}n.restore(),this.previousVerticalX_=c}},X.prototype.setSelection=function(e,t,n,r){this.selPoints_=[];var o=!1;if(!1!==e&&e>=0){e!=this.lastRow_&&(o=!0),this.lastRow_=e;for(var i=0;i<this.layout_.points.length;++i){var a=this.layout_.points[i],s=e-this.getLeftBoundary_(i);if(s>=0&&s<a.length&&a[s].idx==e)null!==(l=a[s]).yval&&this.selPoints_.push(l);else for(var u=0;u<a.length;++u){var l;if((l=a[u]).idx==e){null!==l.yval&&this.selPoints_.push(l);break}}}}else this.lastRow_>=0&&(o=!0),this.lastRow_=-1;if(this.selPoints_.length?this.lastx_=this.selPoints_[0].xval:this.lastx_=null,void 0!==t&&(this.highlightSet_!==t&&(o=!0),this.highlightSet_=t),void 0!==n&&(this.lockedSet_=n),o&&(this.updateSelection_(void 0),r)){var c=this.getFunctionOption("highlightCallback");if(c){c.call(this,{},this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}}return o},X.prototype.mouseOut_=function(e){this.getFunctionOption("unhighlightCallback")&&this.getFunctionOption("unhighlightCallback").call(this,e),this.getBooleanOption("hideOverlayOnMouseOut")&&!this.lockedSet_&&this.clearSelection()},X.prototype.clearSelection=function(){this.cascadeEvents_("deselect",{}),this.lockedSet_=!1,this.fadeLevel?this.animateSelection_(-1):(this.canvas_ctx_.clearRect(0,0,this.width_,this.height_),this.fadeLevel=0,this.selPoints_=[],this.lastx_=null,this.lastRow_=-1,this.highlightSet_=null)},X.prototype.getSelection=function(){if(!this.selPoints_||this.selPoints_.length<1)return-1;for(var e=0;e<this.layout_.points.length;e++)for(var t=this.layout_.points[e],n=0;n<t.length;n++)if(t[n].x==this.selPoints_[0].x)return t[n].idx;return-1},X.prototype.getHighlightSeries=function(){return this.highlightSet_},X.prototype.isSeriesLocked=function(){return this.lockedSet_},X.prototype.loadedEvent_=function(e){this.rawData_=this.parseCSV_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_()},X.prototype.addXTicks_=function(){var e;e=this.dateWindow_?[this.dateWindow_[0],this.dateWindow_[1]]:this.xAxisExtremes();var t=this.optionsViewForAxis_("x"),n=t("ticker")(e[0],e[1],this.plotter_.area.w,t,this);this.layout_.setXTicks(n)},X.prototype.getHandlerClass_=function(){return this.attr_("dataHandler")?this.attr_("dataHandler"):this.fractions_?this.getBooleanOption("errorBars")?M:T:this.getBooleanOption("customBars")?R:this.getBooleanOption("errorBars")?E:w},X.prototype.predraw_=function(){var e=new Date;this.dataHandler_=new(this.getHandlerClass_()),this.layout_.computePlotArea(),this.computeYAxes_(),this.is_initial_draw_||(this.canvas_ctx_.restore(),this.hidden_ctx_.restore()),this.canvas_ctx_.save(),this.hidden_ctx_.save(),this.plotter_=new s(this,this.hidden_,this.hidden_ctx_,this.layout_),this.createRollInterface_(),this.cascadeEvents_("predraw"),this.rolledSeries_=[null];for(var t=1;t<this.numColumns();t++){var n=this.dataHandler_.extractSeries(this.rawData_,t,this.attributes_);this.rollPeriod_>1&&(n=this.dataHandler_.rollingAverage(n,this.rollPeriod_,this.attributes_,t)),this.rolledSeries_.push(n)}this.drawGraph_();var r=new Date;this.drawingTimeMs_=r-e},X.PointType=void 0,X.stackPoints_=function(e,t,n,r){for(var o=null,i=null,a=null,s=-1,u=function(t){if(!(s>=t))for(var n=t;n<e.length;++n)if(a=null,!isNaN(e[n].yval)&&null!==e[n].yval){s=n,a=e[n];break}},l=0;l<e.length;++l){var c=e[l],f=c.xval;void 0===t[f]&&(t[f]=0);var d=c.yval;isNaN(d)||null===d?"none"==r?d=0:(u(l),d=i&&a&&"none"!=r?i.yval+(a.yval-i.yval)*((f-i.xval)/(a.xval-i.xval)):i&&"all"==r?i.yval:a&&"all"==r?a.yval:0):i=c;var h=t[f];o!=f&&(h+=d,t[f]=h),o=f,c.yval_stacked=h,h>n[1]&&(n[1]=h),h<n[0]&&(n[0]=h)}},X.prototype.gatherDatasets_=function(e,t){var n,r,o,i,a,s,u=[],l=[],c=[],f={};for(n=e.length-1;n>=1;n--)if(this.visibility()[n-1]){if(t){s=e[n];var d=t[0],h=t[1];for(o=null,i=null,r=0;r<s.length;r++)s[r][0]>=d&&null===o&&(o=r),s[r][0]<=h&&(i=r);null===o&&(o=0);for(var p=o,g=!0;g&&p>0;)g=null===s[--p][1];null===i&&(i=s.length-1);var v=i;for(g=!0;g&&v<s.length-1;)g=null===s[++v][1];p!==o&&(o=p),v!==i&&(i=v),u[n-1]=[o,i],s=s.slice(o,i+1)}else s=e[n],u[n-1]=[0,s.length-1];var y=this.attr_("labels")[n],m=this.dataHandler_.getExtremeYValues(s,t,this.getBooleanOption("stepPlot",y)),b=this.dataHandler_.seriesToPoints(s,y,u[n-1][0]);this.getBooleanOption("stackedGraph")&&(void 0===c[a=this.attributes_.axisForSeries(y)]&&(c[a]=[]),X.stackPoints_(b,c[a],m,this.getBooleanOption("stackedGraphNaNFill"))),f[y]=m,l[n]=b}return{points:l,extremes:f,boundaryIds:u}},X.prototype.drawGraph_=function(){var e=new Date,t=this.is_initial_draw_;this.is_initial_draw_=!1,this.layout_.removeAllDatasets(),this.setColors_(),this.attrs_.pointSize=.5*this.getNumericOption("highlightCircleSize");var n=this.gatherDatasets_(this.rolledSeries_,this.dateWindow_),r=n.points,o=n.extremes;this.boundaryIds_=n.boundaryIds,this.setIndexByName_={};for(var i=this.attr_("labels"),a=0,s=1;s<r.length;s++)this.visibility()[s-1]&&(this.layout_.addDataset(i[s],r[s]),this.datasetIndex_[s]=a++);for(s=0;s<i.length;s++)this.setIndexByName_[i[s]]=s;if(this.computeYAxisRanges_(o),this.layout_.setYAxes(this.axes_),this.addXTicks_(),this.layout_.evaluate(),this.renderGraph_(t),this.getStringOption("timingName")){var u=new Date;console.log(this.getStringOption("timingName")+" - drawGraph: "+(u-e)+"ms")}},X.prototype.renderGraph_=function(e){this.cascadeEvents_("clearChart"),this.plotter_.clear();const t=this.getFunctionOption("underlayCallback");t&&t.call(this,this.hidden_ctx_,this.layout_.getPlotArea(),this,this);var n={canvas:this.hidden_,drawingContext:this.hidden_ctx_};this.cascadeEvents_("willDrawChart",n),this.plotter_.render(),this.cascadeEvents_("didDrawChart",n),this.lastRow_=-1,this.canvas_.getContext("2d").clearRect(0,0,this.width_,this.height_);const r=this.getFunctionOption("drawCallback");if(null!==r&&r.call(this,this,e),e)for(this.readyFired_=!0;this.readyFns_.length>0;){this.readyFns_.pop()(this)}},X.prototype.computeYAxes_=function(){var e,t,n;for(this.axes_=[],e=0;e<this.attributes_.numAxes();e++)t={g:this},r.update(t,this.attributes_.axisOptions(e)),this.axes_[e]=t;for(e=0;e<this.axes_.length;e++)if(0===e)(n=(t=this.optionsViewForAxis_("y"+(e?"2":"")))("valueRange"))&&(this.axes_[e].valueRange=n);else{var o=this.user_attrs_.axes;o&&o.y2&&(n=o.y2.valueRange)&&(this.axes_[e].valueRange=n)}},X.prototype.numAxes=function(){return this.attributes_.numAxes()},X.prototype.axisPropertiesForSeries=function(e){return this.axes_[this.attributes_.axisForSeries(e)]},X.prototype.computeYAxisRanges_=function(e){for(var t,n,o,i,a,s=function(e){return isNaN(parseFloat(e))},u=this.attributes_.numAxes(),l=0;l<u;l++){var c=this.axes_[l],f=this.attributes_.getForAxis("logscale",l),d=this.attributes_.getForAxis("includeZero",l),h=this.attributes_.getForAxis("independentTicks",l);o=this.attributes_.seriesForAxis(l),t=!0,i=.1;const u=this.getNumericOption("yRangePad");if(null!==u&&(t=!1,i=u/this.plotter_.area.h),0===o.length)c.extremeRange=[0,1];else{for(var p,g,v=1/0,y=-1/0,m=0;m<o.length;m++)e.hasOwnProperty(o[m])&&(null!==(p=e[o[m]][0])&&(v=Math.min(p,v)),null!==(g=e[o[m]][1])&&(y=Math.max(g,y)));d&&!f&&(v>0&&(v=0),y<0&&(y=0)),v==1/0&&(v=0),y==-1/0&&(y=1),0===(n=y-v)&&(0!==y?n=Math.abs(y):(y=1,n=1));var b=y,_=v;t&&(f?(b=y+i*n,_=v):((_=v-i*n)<0&&v>=0&&(_=0),(b=y+i*n)>0&&y<=0&&(b=0))),c.extremeRange=[_,b]}if(c.valueRange){var w=s(c.valueRange[0])?c.extremeRange[0]:c.valueRange[0],x=s(c.valueRange[1])?c.extremeRange[1]:c.valueRange[1];c.computedValueRange=[w,x]}else c.computedValueRange=c.extremeRange;if(!t){if((w=c.computedValueRange[0])===(x=c.computedValueRange[1]))if(0===w)x=1;else{var S=Math.abs(w/10);w-=S,x+=S}if(f){var A=i/(2*i-1),E=(i-1)/(2*i-1);c.computedValueRange[0]=r.logRangeFraction(w,x,A),c.computedValueRange[1]=r.logRangeFraction(w,x,E)}else n=x-w,c.computedValueRange[0]=w-n*i,c.computedValueRange[1]=x+n*i}if(h){c.independentTicks=h;var C=(R=this.optionsViewForAxis_("y"+(l?"2":"")))("ticker");c.ticks=C(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,R,this),a||(a=c)}}if(void 0===a)throw'Configuration Error: At least one axis has to have the "independentTicks" option activated.';for(l=0;l<u;l++){if(!(c=this.axes_[l]).independentTicks){C=(R=this.optionsViewForAxis_("y"+(l?"2":"")))("ticker");for(var R,O=a.ticks,T=a.computedValueRange[1]-a.computedValueRange[0],k=c.computedValueRange[1]-c.computedValueRange[0],M=[],P=0;P<O.length;P++){var N=(O[P].v-a.computedValueRange[0])/T,I=c.computedValueRange[0]+N*k;M.push(I)}c.ticks=C(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,R,this,M)}}},X.prototype.detectTypeFromString_=function(e){var t=!1,n=e.indexOf("-");(n>0&&"e"!=e[n-1]&&"E"!=e[n-1]||e.indexOf("/")>=0||isNaN(parseFloat(e)))&&(t=!0),this.setXAxisOptions_(t)},X.prototype.setXAxisOptions_=function(e){e?(this.attrs_.xValueParser=r.dateParser,this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=u.fi,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter):(this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=u.GH,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter)},X.prototype.parseCSV_=function(e){var t,n,o=[],i=r.detectLineDelimiter(e),a=e.split(i||"\n"),s=this.getStringOption("delimiter");-1==a[0].indexOf(s)&&a[0].indexOf("\t")>=0&&(s="\t");var u=0;"labels"in this.user_attrs_||(u=1,this.attrs_.labels=a[0].split(s),this.attributes_.reparseSeries());for(var l,c=!1,f=this.attr_("labels").length,d=!1,h=u;h<a.length;h++){var p=a[h];if(h,0!==p.length&&"#"!=p[0]){var g=p.split(s);if(!(g.length<2)){var v=[];if(c||(this.detectTypeFromString_(g[0]),l=this.getFunctionOption("xValueParser"),c=!0),v[0]=l(g[0],this),this.fractions_)for(n=1;n<g.length;n++)2!=(t=g[n].split("/")).length?(console.error('Expected fractional "num/den" values in CSV data but found a value \''+g[n]+"' on line "+(1+h)+" ('"+p+"') which is not of this form."),v[n]=[0,0]):v[n]=[r.parseFloat_(t[0],h,p),r.parseFloat_(t[1],h,p)];else if(this.getBooleanOption("errorBars"))for(g.length%2!=1&&console.error("Expected alternating (value, stdev.) pairs in CSV data but line "+(1+h)+" has an odd number of values ("+(g.length-1)+"): '"+p+"'"),n=1;n<g.length;n+=2)v[(n+1)/2]=[r.parseFloat_(g[n],h,p),r.parseFloat_(g[n+1],h,p)];else if(this.getBooleanOption("customBars"))for(n=1;n<g.length;n++){var y=g[n];/^ *$/.test(y)?v[n]=[null,null,null]:3==(t=y.split(";")).length?v[n]=[r.parseFloat_(t[0],h,p),r.parseFloat_(t[1],h,p),r.parseFloat_(t[2],h,p)]:console.warn('When using customBars, values must be either blank or "low;center;high" tuples (got "'+y+'" on line '+(1+h)+")")}else for(n=1;n<g.length;n++)v[n]=r.parseFloat_(g[n],h,p);if(o.length>0&&v[0]<o[o.length-1][0]&&(d=!0),v.length!=f&&console.error("Number of columns in line "+h+" ("+v.length+") does not agree with number of labels ("+f+") "+p),0===h&&this.attr_("labels")){var m=!0;for(n=0;m&&n<v.length;n++)v[n]&&(m=!1);if(m){console.warn("The dygraphs 'labels' option is set, but the first row of CSV data ('"+p+"') appears to also contain labels. Will drop the CSV labels and use the option labels.");continue}}o.push(v)}}}return d&&(console.warn("CSV is out of order; order it correctly to speed loading."),o.sort((function(e,t){return e[0]-t[0]}))),o},X.prototype.parseArray_=function(e){if(0===e.length&&(e=[[0]]),0===e[0].length)return console.error("Data set cannot contain an empty row"),null;var t;if(function(e){const t=e[0],n=t[0];if("number"!==typeof n&&!r.isDateLike(n))throw new Error(`Expected number or date but got ${typeof n}: ${n}.`);for(let o=1;o<t.length;o++){const e=t[o];if(null!==e&&void 0!==e&&"number"!==typeof e&&!r.isArrayLike(e))throw new Error(`Expected number or array but got ${typeof e}: ${e}.`)}}(e),null===this.attr_("labels")){for(console.warn("Using default labels. Set labels explicitly via 'labels' in the options parameter"),this.attrs_.labels=["X"],t=1;t<e[0].length;t++)this.attrs_.labels.push("Y"+t);this.attributes_.reparseSeries()}else{var n=this.attr_("labels");if(n.length!=e[0].length)return console.error("Mismatch between number of labels ("+n+") and number of columns in array ("+e[0].length+")"),null}if(r.isDateLike(e[0][0])){this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=u.fi,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter;var o=r.clone(e);for(t=0;t<e.length;t++){if(0===o[t].length)return console.error("Row "+(1+t)+" of data is empty"),null;if(null===o[t][0]||"function"!=typeof o[t][0].getTime||isNaN(o[t][0].getTime()))return console.error("x value in row "+(1+t)+" is not a Date"),null;o[t][0]=o[t][0].getTime()}return o}return this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=u.GH,this.attrs_.axes.x.axisLabelFormatter=r.numberAxisLabelFormatter,e},X.prototype.parseDataTable_=function(e){var t=function(e){var t=String.fromCharCode(65+e%26);for(e=Math.floor(e/26);e>0;)t=String.fromCharCode(65+(e-1)%26)+t.toLowerCase(),e=Math.floor((e-1)/26);return t},n=e.getNumberOfColumns(),o=e.getNumberOfRows(),i=e.getColumnType(0);if("date"==i||"datetime"==i)this.attrs_.xValueParser=r.dateParser,this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=u.fi,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter;else{if("number"!=i)throw new Error("only 'date', 'datetime' and 'number' types are supported for column 1 of DataTable input (Got '"+i+"')");this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=u.GH,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter}var a,s,l=[],c={},f=!1;for(a=1;a<n;a++){var d=e.getColumnType(a);if("number"==d)l.push(a);else{if("string"!=d||!this.getBooleanOption("displayAnnotations"))throw new Error("Only 'number' is supported as a dependent type with Gviz. 'string' is only supported if displayAnnotations is true");var h=l[l.length-1];c.hasOwnProperty(h)?c[h].push(a):c[h]=[a],f=!0}}var p=[e.getColumnLabel(0)];for(a=0;a<l.length;a++)p.push(e.getColumnLabel(l[a])),this.getBooleanOption("errorBars")&&(a+=1);this.attrs_.labels=p,n=p.length;var g=[],v=!1,y=[];for(a=0;a<o;a++){var m=[];if("undefined"!==typeof e.getValue(a,0)&&null!==e.getValue(a,0)){if("date"==i||"datetime"==i?m.push(e.getValue(a,0).getTime()):m.push(e.getValue(a,0)),this.getBooleanOption("errorBars"))for(s=0;s<n-1;s++)m.push([e.getValue(a,1+2*s),e.getValue(a,2+2*s)]);else{for(s=0;s<l.length;s++){var b=l[s];if(m.push(e.getValue(a,b)),f&&c.hasOwnProperty(b)&&null!==e.getValue(a,c[b][0])){var _={};_.series=e.getColumnLabel(b),_.xval=m[0],_.shortText=t(y.length),_.text="";for(var w=0;w<c[b].length;w++)w&&(_.text+="\n"),_.text+=e.getValue(a,c[b][w]);y.push(_)}}for(s=0;s<m.length;s++)isFinite(m[s])||(m[s]=null)}g.length>0&&m[0]<g[g.length-1][0]&&(v=!0),g.push(m)}else console.warn("Ignoring row "+a+" of DataTable because of undefined or null first column.")}v&&(console.warn("DataTable is out of order; order it correctly to speed loading."),g.sort((function(e,t){return e[0]-t[0]}))),this.rawData_=g,y.length>0&&this.setAnnotations(y,!0),this.attributes_.reparseSeries()},X.prototype.cascadeDataDidUpdateEvent_=function(){this.cascadeEvents_("dataDidUpdate",{})},X.prototype.start_=function(){var e=this.file_;"function"==typeof e&&(e=e());const t=r.typeArrayLike(e);if("array"==t)this.rawData_=this.parseArray_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("object"==t&&"function"==typeof e.getColumnRange)this.parseDataTable_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("string"==t){if(r.detectLineDelimiter(e))this.loadedEvent_(e);else{var n;n=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var o=this;n.onreadystatechange=function(){4==n.readyState&&(200!==n.status&&0!==n.status||o.loadedEvent_(n.responseText))},n.open("GET",e,!0),n.send(null)}}else console.error("Unknown data format: "+t)},X.prototype.updateOptions=function(e,t){"undefined"==typeof t&&(t=!1);var n=e.file,o=X.copyUserAttrs_(e),i=this.attributes_.numAxes();"rollPeriod"in o&&(this.rollPeriod_=o.rollPeriod),"dateWindow"in o&&(this.dateWindow_=o.dateWindow);var a=r.isPixelChangingOptionList(this.attr_("labels"),o);r.updateDeep(this.user_attrs_,o),this.attributes_.reparseSeries(),i<this.attributes_.numAxes()&&this.plotter_.clear(),n?(this.cascadeEvents_("dataWillUpdate",{}),this.file_=n,t||this.start_()):t||(a?this.predraw_():this.renderGraph_(!1))},X.copyUserAttrs_=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&"file"!=n&&e.hasOwnProperty(n)&&(t[n]=e[n]);return t},X.prototype.resize=function(e,t){if(!this.resize_lock){this.resize_lock=!0,null===e!=(null===t)&&(console.warn("Dygraph.resize() should be called with zero parameters or two non-NULL parameters. Pretending it was zero."),e=t=null);var n=this.width_,r=this.height_;e?(this.maindiv_.style.width=e+"px",this.maindiv_.style.height=t+"px",this.width_=e,this.height_=t):(this.width_=this.maindiv_.clientWidth,this.height_=this.maindiv_.clientHeight),n==this.width_&&r==this.height_||(this.resizeElements_(),this.predraw_()),this.resize_lock=!1}},X.prototype.adjustRoll=function(e){this.rollPeriod_=e,this.predraw_()},X.prototype.visibility=function(){for(this.getOption("visibility")||(this.attrs_.visibility=[]);this.getOption("visibility").length<this.numColumns()-1;)this.attrs_.visibility.push(!0);return this.getOption("visibility")},X.prototype.setVisibility=function(e,t){var n=this.visibility(),r=!1;if(Array.isArray(e)||(null!==e&&"object"===typeof e?r=!0:e=[e]),r)for(var o in e)e.hasOwnProperty(o)&&(o<0||o>=n.length?console.warn("Invalid series number in setVisibility: "+o):n[o]=e[o]);else for(o=0;o<e.length;o++)"boolean"===typeof e[o]?o>=n.length?console.warn("Invalid series number in setVisibility: "+o):n[o]=e[o]:e[o]<0||e[o]>=n.length?console.warn("Invalid series number in setVisibility: "+e[o]):n[e[o]]=t;this.predraw_()},X.prototype.size=function(){return{width:this.width_,height:this.height_}},X.prototype.setAnnotations=function(e,t){this.annotations_=e,this.layout_?(this.layout_.setAnnotations(this.annotations_),t||this.predraw_()):console.warn("Tried to setAnnotations before dygraph was ready. Try setting them in a ready() block. See dygraphs.com/tests/annotation.html")},X.prototype.annotations=function(){return this.annotations_},X.prototype.getLabels=function(){var e=this.attr_("labels");return e?e.slice():null},X.prototype.indexFromSetName=function(e){return this.setIndexByName_[e]},X.prototype.getRowForX=function(e){for(var t=0,n=this.numRows()-1;t<=n;){var r=n+t>>1,o=this.getValue(r,0);if(o<e)t=r+1;else if(o>e)n=r-1;else{if(t==r)return r;n=r}}return null},X.prototype.ready=function(e){this.is_initial_draw_?this.readyFns_.push(e):e.call(this,this)},X.prototype.addAndTrackEvent=function(e,t,n){r.addEvent(e,t,n),this.registeredEvents_.push({elem:e,type:t,fn:n})},X.prototype.removeTrackedEvents_=function(){if(this.registeredEvents_)for(var e=0;e<this.registeredEvents_.length;e++){var t=this.registeredEvents_[e];r.removeEvent(t.elem,t.type,t.fn)}this.registeredEvents_=[]},X.PLUGINS=[$,L,G,U,N,B],X.GVizChart=Y,X.DASHED_LINE=r.DASHED_LINE,X.DOT_DASH_LINE=r.DOT_DASH_LINE,X.dateAxisLabelFormatter=r.dateAxisLabelFormatter,X.toRGB_=r.toRGB_,X.findPos=r.findPos,X.pageX=r.pageX,X.pageY=r.pageY,X.dateString_=r.dateString_,X.defaultInteractionModel=f.defaultModel,X.nonInteractiveModel=X.nonInteractiveModel_=f.nonInteractiveModel_,X.Circles=r.Circles,X.Plugins={Legend:$,Axes:L,Annotations:N,ChartLabels:U,Grid:B,RangeSelector:G},X.DataHandlers={DefaultHandler:w,BarsHandler:S,CustomBarsHandler:R,DefaultFractionHandler:T,ErrorBarsHandler:E,FractionsBarsHandler:M},X.startPan=f.startPan,X.startZoom=f.startZoom,X.movePan=f.movePan,X.moveZoom=f.moveZoom,X.endPan=f.endPan,X.endZoom=f.endZoom,X.numericLinearTicks=u.Tj,X.numericTicks=u.GH,X.dateTicker=u.fi,X.Granularity=u.Z7,X.getDateAxis=u.A4,X.floatFormat=r.floatFormat,r.setupDOMready_(X);const K=X},63303:(e,t,n)=>{!function(){"use strict";var e;function t(e,t,n,r,o){var i=void 0!==r?r:1/3,a=o||!1;if(!n)return[t.x,t.y,null,null];var s=(1-i)*t.x+i*e.x,u=(1-i)*t.y+i*e.y,l=(1-i)*t.x+i*n.x,c=(1-i)*t.y+i*n.y;if(s!=l){var f=t.y-c-(t.x-l)*(u-c)/(s-l);u+=f,c+=f}return a||(u>e.y&&u>t.y?(u=Math.max(e.y,t.y),c=2*t.y-u):u<e.y&&u<t.y&&(u=Math.min(e.y,t.y),c=2*t.y-u),c>t.y&&c>n.y?(c=Math.max(t.y,n.y),u=2*t.y-c):c<t.y&&c<n.y&&(c=Math.min(t.y,n.y),u=2*t.y-c)),[s,u,l,c]}function r(e){return!!e&&!isNaN(e)}function o(e){var n=e.drawingContext,i=e.points;n.beginPath(),n.moveTo(i[0].canvasx,i[0].canvasy);for(var a=i[0].canvasx,s=i[0].canvasy,u=1;u<i.length;u++){var l=i[u-1],c=i[u],f=i[u+1];if(l=l&&r(l.canvasy)?l:null,c=c&&r(c.canvasy)?c:null,f=f&&r(f.canvasy)?f:null,l&&c){var d=t({x:l.canvasx,y:l.canvasy},{x:c.canvasx,y:c.canvasy},f&&{x:f.canvasx,y:f.canvasy},o.smoothing);a=null!==a?a:l.canvasx,s=null!==s?s:l.canvasy,n.bezierCurveTo(a,s,d[0],d[1],c.canvasx,c.canvasy),a=d[2],s=d[3]}else c?(n.moveTo(c.canvasx,c.canvasy),a=c.canvasx,s=c.canvasy):a=s=null}n.stroke()}window.Dygraph?e=window.Dygraph:"undefined"===typeof(e=n(77887)).NAME&&"undefined"!==typeof e.default&&(e=e.default),o.smoothing=1/3,o._getControlPoints=t,window.smoothPlotter=o,e.smoothPlotter=o,e._require.add("dygraphs/src/extras/smooth-plotter.js",{})}()},88208:function(e,t){var n,r;r=this,void 0===(n=function(){return r.EasyPieChart=function(){var e=function(e,t){var n,r=document.createElement("canvas");e.appendChild(r),"object"===typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(r);var o=r.getContext("2d");r.width=r.height=t.size;var i=1;window.devicePixelRatio>1&&(i=window.devicePixelRatio,r.style.width=r.style.height=[t.size,"px"].join(""),r.width=r.height=t.size*i,o.scale(i,i)),o.translate(t.size/2,t.size/2),o.rotate((t.rotate/180-.5)*Math.PI);var a=(t.size-t.lineWidth)/2;t.scaleColor&&t.scaleLength&&(a-=t.scaleLength+2),Date.now=Date.now||function(){return+new Date};var s=function(e,t,n){var r=(n=Math.min(Math.max(-1,n||0),1))<=0;o.beginPath(),o.arc(0,0,a,0,2*Math.PI*n,r),o.strokeStyle=e,o.lineWidth=t,o.stroke()},u=function(){var e,n;o.lineWidth=1,o.fillStyle=t.scaleColor,o.save();for(var r=24;r>0;--r)r%6===0?(n=t.scaleLength,e=0):(n=.6*t.scaleLength,e=t.scaleLength-n),o.fillRect(-t.size/2+e,0,n,1),o.rotate(Math.PI/12);o.restore()},l=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)},c=function(){t.scaleColor&&u(),t.trackColor&&s(t.trackColor,t.trackWidth||t.lineWidth,1)};this.getCanvas=function(){return r},this.getCtx=function(){return o},this.clear=function(){o.clearRect(t.size/-2,t.size/-2,t.size,t.size)},this.draw=function(e){var r;t.scaleColor||t.trackColor?o.getImageData&&o.putImageData?n?o.putImageData(n,0,0):(c(),n=o.getImageData(0,0,t.size*i,t.size*i)):(this.clear(),c()):this.clear(),o.lineCap=t.lineCap,r="function"===typeof t.barColor?t.barColor(e):t.barColor,s(r,t.lineWidth,e/100)}.bind(this),this.animate=function(e,n){var r=Date.now();t.onStart(e,n);var o=function(){var i=Math.min(Date.now()-r,t.animate.duration),a=t.easing(this,i,e,n-e,t.animate.duration);this.draw(a),t.onStep(e,n,a),i>=t.animate.duration?t.onStop(e,n):l(o)}.bind(this);l(o)}.bind(this)};return function(t,n){var r={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(e,t,n,r,o){return(t/=o/2)<1?r/2*t*t+n:-r/2*(--t*(t-2)-1)+n},onStart:function(e,t){},onStep:function(e,t,n){},onStop:function(e,t){}};if("undefined"!==typeof e)r.renderer=e;else{if("undefined"===typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");r.renderer=SVGRenderer}var o={},i=0,a=function(){for(var e in this.el=t,this.options=o,r)r.hasOwnProperty(e)&&(o[e]=n&&"undefined"!==typeof n[e]?n[e]:r[e],"function"===typeof o[e]&&(o[e]=o[e].bind(this)));"string"===typeof o.easing&&"undefined"!==typeof jQuery&&jQuery.isFunction(jQuery.easing[o.easing])?o.easing=jQuery.easing[o.easing]:o.easing=r.easing,"number"===typeof o.animate&&(o.animate={duration:o.animate,enabled:!0}),"boolean"!==typeof o.animate||o.animate||(o.animate={duration:1e3,enabled:o.animate}),this.renderer=new o.renderer(t,o),this.renderer.draw(i),t.dataset&&t.dataset.percent?this.update(parseFloat(t.dataset.percent)):t.getAttribute&&t.getAttribute("data-percent")&&this.update(parseFloat(t.getAttribute("data-percent")))}.bind(this);this.update=function(e){return e=parseFloat(e),o.animate.enabled?this.renderer.animate(i,e):this.renderer.draw(e),i=e,this}.bind(this),this.disableAnimation=function(){return o.animate.enabled=!1,this},this.enableAnimation=function(){return o.animate.enabled=!0,this},a()}}()}.apply(t,[]))||(e.exports=n)},73055:e=>{"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),o=Array.isArray(t),i=0;i<r.length;i++){var a=r[i],s=e[a];(o?-1!==t.indexOf(a):t(a,s,e))&&(n[a]=s)}return n}},89353:e=>{"use strict";var t=Object.prototype.toString,n=Math.max,r=function(e,t){for(var n=[],r=0;r<e.length;r+=1)n[r]=e[r];for(var o=0;o<t.length;o+=1)n[o+e.length]=t[o];return n};e.exports=function(e){var o=this;if("function"!==typeof o||"[object Function]"!==t.apply(o))throw new TypeError("Function.prototype.bind called on incompatible "+o);for(var i,a=function(e,t){for(var n=[],r=t||0,o=0;r<e.length;r+=1,o+=1)n[o]=e[r];return n}(arguments,1),s=n(0,o.length-a.length),u=[],l=0;l<s;l++)u[l]="$"+l;if(i=Function("binder","return function ("+function(e,t){for(var n="",r=0;r<e.length;r+=1)n+=e[r],r+1<e.length&&(n+=t);return n}(u,",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof i){var t=o.apply(this,r(a,arguments));return Object(t)===t?t:this}return o.apply(e,r(a,arguments))})),o.prototype){var c=function(){};c.prototype=o.prototype,i.prototype=new c,c.prototype=null}return i}},66743:(e,t,n)=>{"use strict";var r=n(89353);e.exports=Function.prototype.bind||r},74462:e=>{"use strict";var t=function(){return"string"===typeof function(){}.name},n=Object.getOwnPropertyDescriptor;if(n)try{n([],"length")}catch(o){n=null}t.functionsHaveConfigurableNames=function(){if(!t()||!n)return!1;var e=n((function(){}),"name");return!!e&&!!e.configurable};var r=Function.prototype.bind;t.boundFunctionsHaveNames=function(){return t()&&"function"===typeof r&&""!==function(){}.bind().name},e.exports=t},70453:(e,t,n)=>{"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(t){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(k){u=null}var l=function(){throw new a},c=u?function(){try{return l}catch(e){try{return u(arguments,"callee").get}catch(t){return l}}}():l,f=n(64039)(),d=n(80024)(),h=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),p={},g="undefined"!==typeof Uint8Array&&h?h(Uint8Array):r,v={"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f&&h?h([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":p,"%AsyncGenerator%":p,"%AsyncGeneratorFunction%":p,"%AsyncIteratorPrototype%":p,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":p,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f&&h?h(h([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&f&&h?h((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&f&&h?h((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f&&h?h(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(h)try{null.error}catch(k){var y=h(h(k));v["%Error.prototype%"]=y}var m=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&h&&(n=h(o.prototype))}return v[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},_=n(66743),w=n(19030),x=_.call(Function.call,Array.prototype.concat),S=_.call(Function.apply,Array.prototype.splice),A=_.call(Function.call,String.prototype.replace),E=_.call(Function.call,String.prototype.slice),C=_.call(Function.call,RegExp.prototype.exec),R=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,O=/\\(\\)?/g,T=function(e,t){var n,r=e;if(w(b,r)&&(r="%"+(n=b[r])[0]+"%"),w(v,r)){var i=v[r];if(i===p&&(i=m(r)),"undefined"===typeof i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===C(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=E(e,0,1),n=E(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return A(e,R,(function(e,t,n,o){r[r.length]=n?A(o,O,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=T("%"+r+"%",t),s=i.name,l=i.value,c=!1,f=i.alias;f&&(r=f[0],S(n,x([0,1],f)));for(var d=1,h=!0;d<n.length;d+=1){var p=n[d],g=E(p,0,1),y=E(p,-1);if(('"'===g||"'"===g||"`"===g||'"'===y||"'"===y||"`"===y)&&g!==y)throw new o("property names with quotes must have matching quotes");if("constructor"!==p&&h||(c=!0),w(v,s="%"+(r+="."+p)+"%"))l=v[s];else if(null!=l){if(!(p in l)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(u&&d+1>=n.length){var m=u(l,p);l=(h=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:l[p]}else h=w(l,p),l=l[p];h&&!c&&(v[s]=l)}}return l}},75795:(e,t,n)=>{"use strict";var r=n(70453)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(o){r=null}e.exports=r},30592:(e,t,n)=>{"use strict";var r=n(70453)("%Object.defineProperty%",!0),o=function(){if(r)try{return r({},"a",{value:1}),!0}catch(e){return!1}return!1};o.hasArrayLengthDefineBug=function(){if(!o())return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=o},80024:e=>{"use strict";var t={foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof n)}},64039:(e,t,n)=>{"use strict";var r="undefined"!==typeof Symbol&&Symbol,o=n(41333);e.exports=function(){return"function"===typeof r&&("function"===typeof Symbol&&("symbol"===typeof r("foo")&&("symbol"===typeof Symbol("bar")&&o())))}},41333:e=>{"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},49092:(e,t,n)=>{"use strict";var r=n(41333);e.exports=function(){return r()&&!!Symbol.toStringTag}},19030:(e,t,n)=>{"use strict";var r=n(66743);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},57971:(e,t,n)=>{"use strict";n.d(t,{zR:()=>u});var r,o=n(58168);!function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(r||(r={}));var i=function(e){return e};var a="beforeunload",s="popstate";function u(e){void 0===e&&(e={});var t=e.window,n=void 0===t?document.defaultView:t,u=n.history;function p(){var e=n.location,t=e.pathname,r=e.search,o=e.hash,a=u.state||{};return[a.idx,i({pathname:t,search:r,hash:o,state:a.usr||null,key:a.key||"default"})]}var g=null;n.addEventListener(s,(function(){if(g)w.call(g),g=null;else{var e=r.Pop,t=p(),n=t[0],o=t[1];if(w.length){if(null!=n){var i=m-n;i&&(g={action:e,location:o,retry:function(){R(-1*i)}},R(i))}}else C(e)}}));var v=r.Pop,y=p(),m=y[0],b=y[1],_=c(),w=c();function x(e){return"string"===typeof e?e:d(e)}function S(e,t){return void 0===t&&(t=null),i((0,o.A)({pathname:b.pathname,hash:"",search:""},"string"===typeof e?h(e):e,{state:t,key:f()}))}function A(e,t){return[{usr:e.state,key:e.key,idx:t},x(e)]}function E(e,t,n){return!w.length||(w.call({action:e,location:t,retry:n}),!1)}function C(e){v=e;var t=p();m=t[0],b=t[1],_.call({action:v,location:b})}function R(e){u.go(e)}null==m&&(m=0,u.replaceState((0,o.A)({},u.state,{idx:m}),""));var O={get action(){return v},get location(){return b},createHref:x,push:function e(t,o){var i=r.Push,a=S(t,o);if(E(i,a,(function(){e(t,o)}))){var s=A(a,m+1),l=s[0],c=s[1];try{u.pushState(l,"",c)}catch(f){n.location.assign(c)}C(i)}},replace:function e(t,n){var o=r.Replace,i=S(t,n);if(E(o,i,(function(){e(t,n)}))){var a=A(i,m),s=a[0],l=a[1];u.replaceState(s,"",l),C(o)}},go:R,back:function(){R(-1)},forward:function(){R(1)},listen:function(e){return _.push(e)},block:function(e){var t=w.push(e);return 1===w.length&&n.addEventListener(a,l),function(){t(),w.length||n.removeEventListener(a,l)}}};return O}function l(e){e.preventDefault(),e.returnValue=""}function c(){var e=[];return{get length(){return e.length},push:function(t){return e.push(t),function(){e=e.filter((function(e){return e!==t}))}},call:function(t){e.forEach((function(e){return e&&e(t)}))}}}function f(){return Math.random().toString(36).substr(2,8)}function d(e){var t=e.pathname,n=void 0===t?"/":t,r=e.search,o=void 0===r?"":r,i=e.hash,a=void 0===i?"":i;return o&&"?"!==o&&(n+="?"===o.charAt(0)?o:"?"+o),a&&"#"!==a&&(n+="#"===a.charAt(0)?a:"#"+a),n}function h(e){var t={};if(e){var n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}},4146:(e,t,n)=>{"use strict";var r=n(73404),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var l=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(p){var o=h(n);o&&o!==p&&e(t,o,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var s=u(t),g=u(n),v=0;v<a.length;++v){var y=a[v];if(!i[y]&&(!r||!r[y])&&(!g||!g[y])&&(!s||!s[y])){var m=d(n,y);try{l(t,y,m)}catch(b){}}}}return t}},3072:(e,t)=>{"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,m=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case i:case s:case a:case h:return e;default:switch(e=e&&e.$$typeof){case l:case d:case v:case g:case u:return e;default:return t}}case o:return t}}}function x(e){return w(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=l,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=i,t.Lazy=v,t.Memo=g,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=h,t.isAsyncMode=function(e){return x(e)||w(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return w(e)===l},t.isContextProvider=function(e){return w(e)===u},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===d},t.isFragment=function(e){return w(e)===i},t.isLazy=function(e){return w(e)===v},t.isMemo=function(e){return w(e)===g},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===a},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===f||e===s||e===a||e===h||e===p||"object"===typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===g||e.$$typeof===u||e.$$typeof===l||e.$$typeof===d||e.$$typeof===m||e.$$typeof===b||e.$$typeof===_||e.$$typeof===y)},t.typeOf=w},73404:(e,t,n)=>{"use strict";e.exports=n(3072)},47244:(e,t,n)=>{"use strict";var r=n(49092)(),o=n(38075)("Object.prototype.toString"),i=function(e){return!(r&&e&&"object"===typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},a=function(e){return!!i(e)||null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"[object Function]"===o(e.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,e.exports=s?i:a},87206:e=>{function t(e){return!!e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"===typeof e.readFloatLE&&"function"===typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},62120:(e,t,n)=>{"use strict";var r=Date.prototype.getDay,o=Object.prototype.toString,i=n(49092)();e.exports=function(e){return"object"===typeof e&&null!==e&&(i?function(e){try{return r.call(e),!0}catch(t){return!1}}(e):"[object Date]"===o.call(e))}},14035:(e,t,n)=>{"use strict";var r,o,i,a,s=n(38075),u=n(49092)();if(u){r=s("Object.prototype.hasOwnProperty"),o=s("RegExp.prototype.exec"),i={};var l=function(){throw i};a={toString:l,valueOf:l},"symbol"===typeof Symbol.toPrimitive&&(a[Symbol.toPrimitive]=l)}var c=s("Object.prototype.toString"),f=Object.getOwnPropertyDescriptor;e.exports=u?function(e){if(!e||"object"!==typeof e)return!1;var t=f(e,"lastIndex");if(!(t&&r(t,"value")))return!1;try{o(e,a)}catch(n){return n===i}}:function(e){return!(!e||"object"!==typeof e&&"function"!==typeof e)&&"[object RegExp]"===c(e)}},55580:(e,t,n)=>{var r=n(56110)(n(9325),"DataView");e.exports=r},21549:(e,t,n)=>{var r=n(22032),o=n(63862),i=n(66721),a=n(12749),s=n(35749);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},30980:(e,t,n)=>{var r=n(39344),o=n(94033);function i(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},80079:(e,t,n)=>{var r=n(63702),o=n(70080),i=n(24739),a=n(48655),s=n(31175);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},56017:(e,t,n)=>{var r=n(39344),o=n(94033);function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},68223:(e,t,n)=>{var r=n(56110)(n(9325),"Map");e.exports=r},53661:(e,t,n)=>{var r=n(63040),o=n(17670),i=n(90289),a=n(4509),s=n(72949);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},32804:(e,t,n)=>{var r=n(56110)(n(9325),"Promise");e.exports=r},76545:(e,t,n)=>{var r=n(56110)(n(9325),"Set");e.exports=r},38859:(e,t,n)=>{var r=n(53661),o=n(31380),i=n(51459);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},37217:(e,t,n)=>{var r=n(80079),o=n(51420),i=n(90938),a=n(63605),s=n(29817),u=n(80945);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},51873:(e,t,n)=>{var r=n(9325).Symbol;e.exports=r},37828:(e,t,n)=>{var r=n(9325).Uint8Array;e.exports=r},28303:(e,t,n)=>{var r=n(56110)(n(9325),"WeakMap");e.exports=r},91033:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},83729:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},79770:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},15325:(e,t,n)=>{var r=n(96131);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},29905:e=>{e.exports=function(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}},70695:(e,t,n)=>{var r=n(78096),o=n(72428),i=n(56449),a=n(3656),s=n(30361),u=n(37167),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),c=!n&&o(e),f=!n&&!c&&a(e),d=!n&&!c&&!f&&u(e),h=n||c||f||d,p=h?r(e.length,String):[],g=p.length;for(var v in e)!t&&!l.call(e,v)||h&&("length"==v||f&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,g))||p.push(v);return p}},34932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},14528:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},14248:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},87805:(e,t,n)=>{var r=n(43360),o=n(75288);e.exports=function(e,t,n){(void 0!==n&&!o(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},16547:(e,t,n)=>{var r=n(43360),o=n(75288),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},26025:(e,t,n)=>{var r=n(75288);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},74733:(e,t,n)=>{var r=n(21791),o=n(95950);e.exports=function(e,t){return e&&r(t,o(t),e)}},43838:(e,t,n)=>{var r=n(21791),o=n(37241);e.exports=function(e,t){return e&&r(t,o(t),e)}},43360:(e,t,n)=>{var r=n(93243);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},9999:(e,t,n)=>{var r=n(37217),o=n(83729),i=n(16547),a=n(74733),s=n(43838),u=n(93290),l=n(23007),c=n(92271),f=n(48948),d=n(50002),h=n(83349),p=n(5861),g=n(76189),v=n(77199),y=n(35529),m=n(56449),b=n(3656),_=n(87730),w=n(23805),x=n(38440),S=n(95950),A=n(37241),E="[object Arguments]",C="[object Function]",R="[object Object]",O={};O[E]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O[R]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O[C]=O["[object WeakMap]"]=!1,e.exports=function e(t,n,T,k,M,P){var N,I=1&n,L=2&n,D=4&n;if(T&&(N=M?T(t,k,M,P):T(t)),void 0!==N)return N;if(!w(t))return t;var F=m(t);if(F){if(N=g(t),!I)return l(t,N)}else{var j=p(t),U=j==C||"[object GeneratorFunction]"==j;if(b(t))return u(t,I);if(j==R||j==E||U&&!M){if(N=L||U?{}:y(t),!I)return L?f(t,s(N,t)):c(t,a(N,t))}else{if(!O[j])return M?t:{};N=v(t,j,I)}}P||(P=new r);var z=P.get(t);if(z)return z;P.set(t,N),x(t)?t.forEach((function(r){N.add(e(r,n,T,r,t,P))})):_(t)&&t.forEach((function(r,o){N.set(o,e(r,n,T,o,t,P))}));var B=F?void 0:(D?L?h:d:L?A:S)(t);return o(B||t,(function(r,o){B&&(r=t[o=r]),i(N,o,e(r,n,T,o,t,P))})),N}},39344:(e,t,n)=>{var r=n(23805),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},83915:(e,t,n)=>{var r=n(38859),o=n(15325),i=n(29905),a=n(34932),s=n(27301),u=n(19219);e.exports=function(e,t,n,l){var c=-1,f=o,d=!0,h=e.length,p=[],g=t.length;if(!h)return p;n&&(t=a(t,s(n))),l?(f=i,d=!1):t.length>=200&&(f=u,d=!1,t=new r(t));e:for(;++c<h;){var v=e[c],y=null==n?v:n(v);if(v=l||0!==v?v:0,d&&y===y){for(var m=g;m--;)if(t[m]===y)continue e;p.push(v)}else f(t,y,l)||p.push(v)}return p}},2523:e=>{e.exports=function(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}},83120:(e,t,n)=>{var r=n(14528),o=n(45891);e.exports=function e(t,n,i,a,s){var u=-1,l=t.length;for(i||(i=o),s||(s=[]);++u<l;){var c=t[u];n>0&&i(c)?n>1?e(c,n-1,i,a,s):r(s,c):a||(s[s.length]=c)}return s}},86649:(e,t,n)=>{var r=n(83221)();e.exports=r},47422:(e,t,n)=>{var r=n(31769),o=n(77797);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},82199:(e,t,n)=>{var r=n(14528),o=n(56449);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},72552:(e,t,n)=>{var r=n(51873),o=n(659),i=n(59350),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},96131:(e,t,n)=>{var r=n(2523),o=n(85463),i=n(76959);e.exports=function(e,t,n){return t===t?i(e,t,n):r(e,o,n)}},27534:(e,t,n)=>{var r=n(72552),o=n(40346);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},60270:(e,t,n)=>{var r=n(87068),o=n(40346);e.exports=function e(t,n,i,a,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!==t&&n!==n:r(t,n,i,a,e,s))}},87068:(e,t,n)=>{var r=n(37217),o=n(25911),i=n(21986),a=n(50689),s=n(5861),u=n(56449),l=n(3656),c=n(37167),f="[object Arguments]",d="[object Array]",h="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,g,v,y){var m=u(e),b=u(t),_=m?d:s(e),w=b?d:s(t),x=(_=_==f?h:_)==h,S=(w=w==f?h:w)==h,A=_==w;if(A&&l(e)){if(!l(t))return!1;m=!0,x=!1}if(A&&!x)return y||(y=new r),m||c(e)?o(e,t,n,g,v,y):i(e,t,_,n,g,v,y);if(!(1&n)){var E=x&&p.call(e,"__wrapped__"),C=S&&p.call(t,"__wrapped__");if(E||C){var R=E?e.value():e,O=C?t.value():t;return y||(y=new r),v(R,O,n,g,y)}}return!!A&&(y||(y=new r),a(e,t,n,g,v,y))}},29172:(e,t,n)=>{var r=n(5861),o=n(40346);e.exports=function(e){return o(e)&&"[object Map]"==r(e)}},85463:e=>{e.exports=function(e){return e!==e}},45083:(e,t,n)=>{var r=n(1882),o=n(87296),i=n(23805),a=n(47473),s=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,f=l.hasOwnProperty,d=RegExp("^"+c.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?d:s).test(a(e))}},16038:(e,t,n)=>{var r=n(5861),o=n(40346);e.exports=function(e){return o(e)&&"[object Set]"==r(e)}},4901:(e,t,n)=>{var r=n(72552),o=n(30294),i=n(40346),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},88984:(e,t,n)=>{var r=n(55527),o=n(3650),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},72903:(e,t,n)=>{var r=n(23805),o=n(55527),i=n(90181),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=o(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},94033:e=>{e.exports=function(){}},85250:(e,t,n)=>{var r=n(37217),o=n(87805),i=n(86649),a=n(42824),s=n(23805),u=n(37241),l=n(14974);e.exports=function e(t,n,c,f,d){t!==n&&i(n,(function(i,u){if(d||(d=new r),s(i))a(t,n,u,c,e,f,d);else{var h=f?f(l(t,u),i,u+"",t,n,d):void 0;void 0===h&&(h=i),o(t,u,h)}}),u)}},42824:(e,t,n)=>{var r=n(87805),o=n(93290),i=n(71961),a=n(23007),s=n(35529),u=n(72428),l=n(56449),c=n(83693),f=n(3656),d=n(1882),h=n(23805),p=n(11331),g=n(37167),v=n(14974),y=n(69884);e.exports=function(e,t,n,m,b,_,w){var x=v(e,n),S=v(t,n),A=w.get(S);if(A)r(e,n,A);else{var E=_?_(x,S,n+"",e,t,w):void 0,C=void 0===E;if(C){var R=l(S),O=!R&&f(S),T=!R&&!O&&g(S);E=S,R||O||T?l(x)?E=x:c(x)?E=a(x):O?(C=!1,E=o(S,!0)):T?(C=!1,E=i(S,!0)):E=[]:p(S)||u(S)?(E=x,u(x)?E=y(x):h(x)&&!d(x)||(E=s(S))):C=!1}C&&(w.set(S,E),b(E,S,m,_,w),w.delete(S)),r(e,n,E)}}},69302:(e,t,n)=>{var r=n(83488),o=n(56757),i=n(32865);e.exports=function(e,t){return i(o(e,t,r),e+"")}},19570:(e,t,n)=>{var r=n(37334),o=n(93243),i=n(83488),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},25160:e=>{e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}},78096:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},77556:(e,t,n)=>{var r=n(51873),o=n(34932),i=n(56449),a=n(44394),s=r?r.prototype:void 0,u=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return u?u.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},27301:e=>{e.exports=function(e){return function(t){return e(t)}}},19931:(e,t,n)=>{var r=n(31769),o=n(68090),i=n(68969),a=n(77797);e.exports=function(e,t){return t=r(t,e),null==(e=i(e,t))||delete e[a(o(t))]}},19219:e=>{e.exports=function(e,t){return e.has(t)}},31769:(e,t,n)=>{var r=n(56449),o=n(28586),i=n(61802),a=n(13222);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},49653:(e,t,n)=>{var r=n(37828);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},93290:(e,t,n)=>{e=n.nmd(e);var r=n(9325),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,a=i&&i.exports===o?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},76169:(e,t,n)=>{var r=n(49653);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},73201:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},93736:(e,t,n)=>{var r=n(51873),o=r?r.prototype:void 0,i=o?o.valueOf:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},71961:(e,t,n)=>{var r=n(49653);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},23007:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},21791:(e,t,n)=>{var r=n(16547),o=n(43360);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=i?i(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?o(n,l,c):r(n,l,c)}return n}},92271:(e,t,n)=>{var r=n(21791),o=n(4664);e.exports=function(e,t){return r(e,o(e),t)}},48948:(e,t,n)=>{var r=n(21791),o=n(86375);e.exports=function(e,t){return r(e,o(e),t)}},55481:(e,t,n)=>{var r=n(9325)["__core-js_shared__"];e.exports=r},20999:(e,t,n)=>{var r=n(69302),o=n(36800);e.exports=function(e){return r((function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var u=n[r];u&&e(t,u,r,a)}return t}))}},83221:e=>{e.exports=function(e){return function(t,n,r){for(var o=-1,i=Object(t),a=r(t),s=a.length;s--;){var u=a[e?s:++o];if(!1===n(i[u],u,i))break}return t}}},66929:(e,t,n)=>{var r=n(56017),o=n(38816),i=n(37381),a=n(62284),s=n(56449),u=n(85087);e.exports=function(e){return o((function(t){var n=t.length,o=n,l=r.prototype.thru;for(e&&t.reverse();o--;){var c=t[o];if("function"!=typeof c)throw new TypeError("Expected a function");if(l&&!f&&"wrapper"==a(c))var f=new r([],!0)}for(o=f?o:n;++o<n;){c=t[o];var d=a(c),h="wrapper"==d?i(c):void 0;f=h&&u(h[0])&&424==h[1]&&!h[4].length&&1==h[9]?f[a(h[0])].apply(f,h[3]):1==c.length&&u(c)?f[d]():f.thru(c)}return function(){var e=arguments,r=e[0];if(f&&1==e.length&&s(r))return f.plant(r).value();for(var o=0,i=n?t[o].apply(this,e):r;++o<n;)i=t[o].call(this,i);return i}}))}},53138:(e,t,n)=>{var r=n(11331);e.exports=function(e){return r(e)?void 0:e}},93243:(e,t,n)=>{var r=n(56110),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=o},25911:(e,t,n)=>{var r=n(38859),o=n(14248),i=n(19219);e.exports=function(e,t,n,a,s,u){var l=1&n,c=e.length,f=t.length;if(c!=f&&!(l&&f>c))return!1;var d=u.get(e),h=u.get(t);if(d&&h)return d==t&&h==e;var p=-1,g=!0,v=2&n?new r:void 0;for(u.set(e,t),u.set(t,e);++p<c;){var y=e[p],m=t[p];if(a)var b=l?a(m,y,p,t,e,u):a(y,m,p,e,t,u);if(void 0!==b){if(b)continue;g=!1;break}if(v){if(!o(t,(function(e,t){if(!i(v,t)&&(y===e||s(y,e,n,a,u)))return v.push(t)}))){g=!1;break}}else if(y!==m&&!s(y,m,n,a,u)){g=!1;break}}return u.delete(e),u.delete(t),g}},21986:(e,t,n)=>{var r=n(51873),o=n(37828),i=n(75288),a=n(25911),s=n(20317),u=n(84247),l=r?r.prototype:void 0,c=l?l.valueOf:void 0;e.exports=function(e,t,n,r,l,f,d){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var h=s;case"[object Set]":var p=1&r;if(h||(h=u),e.size!=t.size&&!p)return!1;var g=d.get(e);if(g)return g==t;r|=2,d.set(e,t);var v=a(h(e),h(t),r,l,f,d);return d.delete(e),v;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},50689:(e,t,n)=>{var r=n(50002),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,i,a,s){var u=1&n,l=r(e),c=l.length;if(c!=r(t).length&&!u)return!1;for(var f=c;f--;){var d=l[f];if(!(u?d in t:o.call(t,d)))return!1}var h=s.get(e),p=s.get(t);if(h&&p)return h==t&&p==e;var g=!0;s.set(e,t),s.set(t,e);for(var v=u;++f<c;){var y=e[d=l[f]],m=t[d];if(i)var b=u?i(m,y,d,t,e,s):i(y,m,d,e,t,s);if(!(void 0===b?y===m||a(y,m,n,i,s):b)){g=!1;break}v||(v="constructor"==d)}if(g&&!v){var _=e.constructor,w=t.constructor;_==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w||(g=!1)}return s.delete(e),s.delete(t),g}},38816:(e,t,n)=>{var r=n(35970),o=n(56757),i=n(32865);e.exports=function(e){return i(o(e,void 0,r),e+"")}},34840:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},50002:(e,t,n)=>{var r=n(82199),o=n(4664),i=n(95950);e.exports=function(e){return r(e,i,o)}},83349:(e,t,n)=>{var r=n(82199),o=n(86375),i=n(37241);e.exports=function(e){return r(e,i,o)}},37381:(e,t,n)=>{var r=n(48152),o=n(63950),i=r?function(e){return r.get(e)}:o;e.exports=i},62284:(e,t,n)=>{var r=n(84629),o=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t=e.name+"",n=r[t],i=o.call(r,t)?n.length:0;i--;){var a=n[i],s=a.func;if(null==s||s==e)return a.name}return t}},12651:(e,t,n)=>{var r=n(74218);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},56110:(e,t,n)=>{var r=n(45083),o=n(10392);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},28879:(e,t,n)=>{var r=n(74335)(Object.getPrototypeOf,Object);e.exports=r},659:(e,t,n)=>{var r=n(51873),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(u){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},4664:(e,t,n)=>{var r=n(79770),o=n(63345),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return i.call(e,t)})))}:o;e.exports=s},86375:(e,t,n)=>{var r=n(14528),o=n(28879),i=n(4664),a=n(63345),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},5861:(e,t,n)=>{var r=n(55580),o=n(68223),i=n(32804),a=n(76545),s=n(28303),u=n(72552),l=n(47473),c="[object Map]",f="[object Promise]",d="[object Set]",h="[object WeakMap]",p="[object DataView]",g=l(r),v=l(o),y=l(i),m=l(a),b=l(s),_=u;(r&&_(new r(new ArrayBuffer(1)))!=p||o&&_(new o)!=c||i&&_(i.resolve())!=f||a&&_(new a)!=d||s&&_(new s)!=h)&&(_=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case g:return p;case v:return c;case y:return f;case m:return d;case b:return h}return t}),e.exports=_},10392:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},22032:(e,t,n)=>{var r=n(81042);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},63862:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},66721:(e,t,n)=>{var r=n(81042),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},12749:(e,t,n)=>{var r=n(81042),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},35749:(e,t,n)=>{var r=n(81042);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},76189:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},77199:(e,t,n)=>{var r=n(49653),o=n(76169),i=n(73201),a=n(93736),s=n(71961);e.exports=function(e,t,n){var u=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new u(+e);case"[object DataView]":return o(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":case"[object Set]":return new u;case"[object Number]":case"[object String]":return new u(e);case"[object RegExp]":return i(e);case"[object Symbol]":return a(e)}}},35529:(e,t,n)=>{var r=n(39344),o=n(28879),i=n(55527);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:r(o(e))}},45891:(e,t,n)=>{var r=n(51873),o=n(72428),i=n(56449),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},30361:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},36800:(e,t,n)=>{var r=n(75288),o=n(64894),i=n(30361),a=n(23805);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&i(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},28586:(e,t,n)=>{var r=n(56449),o=n(44394),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},74218:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},85087:(e,t,n)=>{var r=n(30980),o=n(37381),i=n(62284),a=n(53758);e.exports=function(e){var t=i(e),n=a[t];if("function"!=typeof n||!(t in r.prototype))return!1;if(e===n)return!0;var s=o(n);return!!s&&e===s[0]}},87296:(e,t,n)=>{var r=n(55481),o=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!o&&o in e}},55527:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},63702:e=>{e.exports=function(){this.__data__=[],this.size=0}},70080:(e,t,n)=>{var r=n(26025),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},24739:(e,t,n)=>{var r=n(26025);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},48655:(e,t,n)=>{var r=n(26025);e.exports=function(e){return r(this.__data__,e)>-1}},31175:(e,t,n)=>{var r=n(26025);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},63040:(e,t,n)=>{var r=n(21549),o=n(80079),i=n(68223);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},17670:(e,t,n)=>{var r=n(12651);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},90289:(e,t,n)=>{var r=n(12651);e.exports=function(e){return r(this,e).get(e)}},4509:(e,t,n)=>{var r=n(12651);e.exports=function(e){return r(this,e).has(e)}},72949:(e,t,n)=>{var r=n(12651);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},20317:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},62224:(e,t,n)=>{var r=n(50104);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},48152:(e,t,n)=>{var r=n(28303),o=r&&new r;e.exports=o},81042:(e,t,n)=>{var r=n(56110)(Object,"create");e.exports=r},3650:(e,t,n)=>{var r=n(74335)(Object.keys,Object);e.exports=r},90181:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},86009:(e,t,n)=>{e=n.nmd(e);var r=n(34840),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},59350:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},74335:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},56757:(e,t,n)=>{var r=n(91033),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),u=Array(s);++a<s;)u[a]=i[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=i[a];return l[t]=n(u),r(e,this,l)}}},68969:(e,t,n)=>{var r=n(47422),o=n(25160);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},84629:e=>{e.exports={}},9325:(e,t,n)=>{var r=n(34840),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},14974:e=>{e.exports=function(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}},31380:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},51459:e=>{e.exports=function(e){return this.__data__.has(e)}},84247:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},32865:(e,t,n)=>{var r=n(19570),o=n(51811)(r);e.exports=o},51811:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),i=16-(o-r);if(r=o,i>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},51420:(e,t,n)=>{var r=n(80079);e.exports=function(){this.__data__=new r,this.size=0}},90938:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},63605:e=>{e.exports=function(e){return this.__data__.get(e)}},29817:e=>{e.exports=function(e){return this.__data__.has(e)}},80945:(e,t,n)=>{var r=n(80079),o=n(68223),i=n(53661);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},76959:e=>{e.exports=function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}},61802:(e,t,n)=>{var r=n(62224),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)})),t}));e.exports=a},77797:(e,t,n)=>{var r=n(44394);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},47473:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},80257:(e,t,n)=>{var r=n(30980),o=n(56017),i=n(23007);e.exports=function(e){if(e instanceof r)return e.clone();var t=new o(e.__wrapped__,e.__chain__);return t.__actions__=i(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}},37334:e=>{e.exports=function(e){return function(){return e}}},66245:(e,t,n)=>{var r=n(83915),o=n(83120),i=n(69302),a=n(83693),s=i((function(e,t){return a(e)?r(e,o(t,1,a,!0)):[]}));e.exports=s},75288:e=>{e.exports=function(e,t){return e===t||e!==e&&t!==t}},35970:(e,t,n)=>{var r=n(83120);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},49870:(e,t,n)=>{var r=n(66929)();e.exports=r},58156:(e,t,n)=>{var r=n(47422);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},83488:e=>{e.exports=function(e){return e}},72428:(e,t,n)=>{var r=n(27534),o=n(40346),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},56449:e=>{var t=Array.isArray;e.exports=t},64894:(e,t,n)=>{var r=n(1882),o=n(30294);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},83693:(e,t,n)=>{var r=n(64894),o=n(40346);e.exports=function(e){return o(e)&&r(e)}},3656:(e,t,n)=>{e=n.nmd(e);var r=n(9325),o=n(89935),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u},2404:(e,t,n)=>{var r=n(60270);e.exports=function(e,t){return r(e,t)}},1882:(e,t,n)=>{var r=n(72552),o=n(23805);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},30294:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},87730:(e,t,n)=>{var r=n(29172),o=n(27301),i=n(86009),a=i&&i.isMap,s=a?o(a):r;e.exports=s},23805:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},40346:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},11331:(e,t,n)=>{var r=n(72552),o=n(28879),i=n(40346),a=Function.prototype,s=Object.prototype,u=a.toString,l=s.hasOwnProperty,c=u.call(Object);e.exports=function(e){if(!i(e)||"[object Object]"!=r(e))return!1;var t=o(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==c}},38440:(e,t,n)=>{var r=n(16038),o=n(27301),i=n(86009),a=i&&i.isSet,s=a?o(a):r;e.exports=s},44394:(e,t,n)=>{var r=n(72552),o=n(40346);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},37167:(e,t,n)=>{var r=n(4901),o=n(27301),i=n(86009),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},95950:(e,t,n)=>{var r=n(70695),o=n(88984),i=n(64894);e.exports=function(e){return i(e)?r(e):o(e)}},37241:(e,t,n)=>{var r=n(70695),o=n(72903),i=n(64894);e.exports=function(e){return i(e)?r(e,!0):o(e)}},68090:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},50104:(e,t,n)=>{var r=n(53661);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},55364:(e,t,n)=>{var r=n(85250),o=n(20999)((function(e,t,n){r(e,t,n)}));e.exports=o},63950:e=>{e.exports=function(){}},90179:(e,t,n)=>{var r=n(34932),o=n(9999),i=n(19931),a=n(31769),s=n(21791),u=n(53138),l=n(38816),c=n(83349),f=l((function(e,t){var n={};if(null==e)return n;var l=!1;t=r(t,(function(t){return t=a(t,e),l||(l=t.length>1),t})),s(e,c(e),n),l&&(n=o(n,7,u));for(var f=t.length;f--;)i(n,t[f]);return n}));e.exports=f},63345:e=>{e.exports=function(){return[]}},89935:e=>{e.exports=function(){return!1}},69884:(e,t,n)=>{var r=n(21791),o=n(37241);e.exports=function(e){return r(e,o(e))}},13222:(e,t,n)=>{var r=n(77556);e.exports=function(e){return null==e?"":r(e)}},53758:(e,t,n)=>{var r=n(30980),o=n(56017),i=n(94033),a=n(56449),s=n(40346),u=n(80257),l=Object.prototype.hasOwnProperty;function c(e){if(s(e)&&!a(e)&&!(e instanceof r)){if(e instanceof o)return e;if(l.call(e,"__wrapped__"))return u(e)}return new o(e)}c.prototype=i.prototype,c.prototype.constructor=c,e.exports=c},83503:(e,t,n)=>{!function(){var t=n(3939),r=n(92151).utf8,o=n(87206),i=n(92151).bin,a=function(e,n){e.constructor==String?e=n&&"binary"===n.encoding?i.stringToBytes(e):r.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var s=t.bytesToWords(e),u=8*e.length,l=1732584193,c=-271733879,f=-1732584194,d=271733878,h=0;h<s.length;h++)s[h]=16711935&(s[h]<<8|s[h]>>>24)|4278255360&(s[h]<<24|s[h]>>>8);s[u>>>5]|=128<<u%32,s[14+(u+64>>>9<<4)]=u;var p=a._ff,g=a._gg,v=a._hh,y=a._ii;for(h=0;h<s.length;h+=16){var m=l,b=c,_=f,w=d;l=p(l,c,f,d,s[h+0],7,-680876936),d=p(d,l,c,f,s[h+1],12,-389564586),f=p(f,d,l,c,s[h+2],17,606105819),c=p(c,f,d,l,s[h+3],22,-1044525330),l=p(l,c,f,d,s[h+4],7,-176418897),d=p(d,l,c,f,s[h+5],12,1200080426),f=p(f,d,l,c,s[h+6],17,-1473231341),c=p(c,f,d,l,s[h+7],22,-45705983),l=p(l,c,f,d,s[h+8],7,1770035416),d=p(d,l,c,f,s[h+9],12,-1958414417),f=p(f,d,l,c,s[h+10],17,-42063),c=p(c,f,d,l,s[h+11],22,-1990404162),l=p(l,c,f,d,s[h+12],7,1804603682),d=p(d,l,c,f,s[h+13],12,-40341101),f=p(f,d,l,c,s[h+14],17,-1502002290),l=g(l,c=p(c,f,d,l,s[h+15],22,1236535329),f,d,s[h+1],5,-165796510),d=g(d,l,c,f,s[h+6],9,-1069501632),f=g(f,d,l,c,s[h+11],14,643717713),c=g(c,f,d,l,s[h+0],20,-373897302),l=g(l,c,f,d,s[h+5],5,-701558691),d=g(d,l,c,f,s[h+10],9,38016083),f=g(f,d,l,c,s[h+15],14,-660478335),c=g(c,f,d,l,s[h+4],20,-405537848),l=g(l,c,f,d,s[h+9],5,568446438),d=g(d,l,c,f,s[h+14],9,-1019803690),f=g(f,d,l,c,s[h+3],14,-187363961),c=g(c,f,d,l,s[h+8],20,1163531501),l=g(l,c,f,d,s[h+13],5,-1444681467),d=g(d,l,c,f,s[h+2],9,-51403784),f=g(f,d,l,c,s[h+7],14,1735328473),l=v(l,c=g(c,f,d,l,s[h+12],20,-1926607734),f,d,s[h+5],4,-378558),d=v(d,l,c,f,s[h+8],11,-2022574463),f=v(f,d,l,c,s[h+11],16,1839030562),c=v(c,f,d,l,s[h+14],23,-35309556),l=v(l,c,f,d,s[h+1],4,-1530992060),d=v(d,l,c,f,s[h+4],11,1272893353),f=v(f,d,l,c,s[h+7],16,-155497632),c=v(c,f,d,l,s[h+10],23,-1094730640),l=v(l,c,f,d,s[h+13],4,681279174),d=v(d,l,c,f,s[h+0],11,-358537222),f=v(f,d,l,c,s[h+3],16,-722521979),c=v(c,f,d,l,s[h+6],23,76029189),l=v(l,c,f,d,s[h+9],4,-640364487),d=v(d,l,c,f,s[h+12],11,-421815835),f=v(f,d,l,c,s[h+15],16,530742520),l=y(l,c=v(c,f,d,l,s[h+2],23,-995338651),f,d,s[h+0],6,-198630844),d=y(d,l,c,f,s[h+7],10,1126891415),f=y(f,d,l,c,s[h+14],15,-1416354905),c=y(c,f,d,l,s[h+5],21,-57434055),l=y(l,c,f,d,s[h+12],6,1700485571),d=y(d,l,c,f,s[h+3],10,-1894986606),f=y(f,d,l,c,s[h+10],15,-1051523),c=y(c,f,d,l,s[h+1],21,-2054922799),l=y(l,c,f,d,s[h+8],6,1873313359),d=y(d,l,c,f,s[h+15],10,-30611744),f=y(f,d,l,c,s[h+6],15,-1560198380),c=y(c,f,d,l,s[h+13],21,1309151649),l=y(l,c,f,d,s[h+4],6,-145523070),d=y(d,l,c,f,s[h+11],10,-1120210379),f=y(f,d,l,c,s[h+2],15,718787259),c=y(c,f,d,l,s[h+9],21,-343485551),l=l+m>>>0,c=c+b>>>0,f=f+_>>>0,d=d+w>>>0}return t.endian([l,c,f,d])};a._ff=function(e,t,n,r,o,i,a){var s=e+(t&n|~t&r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._gg=function(e,t,n,r,o,i,a){var s=e+(t&r|n&~r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._hh=function(e,t,n,r,o,i,a){var s=e+(t^n^r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._ii=function(e,t,n,r,o,i,a){var s=e+(n^(t|~r))+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._blocksize=16,a._digestsize=16,e.exports=function(e,n){if(void 0===e||null===e)throw new Error("Illegal argument "+e);var r=t.wordsToBytes(a(e,n));return n&&n.asBytes?r:n&&n.asString?i.bytesToString(r):t.bytesToHex(r)}}()},45228:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var i,a,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in i=Object(arguments[u]))n.call(i,l)&&(s[l]=i[l]);if(t){a=t(i);for(var c=0;c<a.length;c++)r.call(i,a[c])&&(s[a[c]]=i[a[c]])}}return s}},58859:(e,t,n)=>{var r="function"===typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=r&&o&&"function"===typeof o.get?o.get:null,a=r&&Map.prototype.forEach,s="function"===typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&u&&"function"===typeof u.get?u.get:null,c=s&&Set.prototype.forEach,f="function"===typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,d="function"===typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,h="function"===typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,p=Boolean.prototype.valueOf,g=Object.prototype.toString,v=Function.prototype.toString,y=String.prototype.match,m=String.prototype.slice,b=String.prototype.replace,_=String.prototype.toUpperCase,w=String.prototype.toLowerCase,x=RegExp.prototype.test,S=Array.prototype.concat,A=Array.prototype.join,E=Array.prototype.slice,C=Math.floor,R="function"===typeof BigInt?BigInt.prototype.valueOf:null,O=Object.getOwnPropertySymbols,T="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?Symbol.prototype.toString:null,k="function"===typeof Symbol&&"object"===typeof Symbol.iterator,M="function"===typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===k||"symbol")?Symbol.toStringTag:null,P=Object.prototype.propertyIsEnumerable,N=("function"===typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function I(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||x.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var r=e<0?-C(-e):C(e);if(r!==e){var o=String(r),i=m.call(t,o.length+1);return b.call(o,n,"$&_")+"."+b.call(b.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return b.call(t,n,"$&_")}var L=n(42634),D=L.custom,F=V(D)?D:null;function j(e,t,n){var r="double"===(n.quoteStyle||t)?'"':"'";return r+e+r}function U(e){return b.call(String(e),/"/g,"&quot;")}function z(e){return"[object Array]"===W(e)&&(!M||!("object"===typeof e&&M in e))}function B(e){return"[object RegExp]"===W(e)&&(!M||!("object"===typeof e&&M in e))}function V(e){if(k)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!T)return!1;try{return T.call(e),!0}catch(t){}return!1}e.exports=function e(t,n,r,o){var s=n||{};if($(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if($(s,"maxStringLength")&&("number"===typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var u=!$(s,"customInspect")||s.customInspect;if("boolean"!==typeof u&&"symbol"!==u)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if($(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if($(s,"numericSeparator")&&"boolean"!==typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var g=s.numericSeparator;if("undefined"===typeof t)return"undefined";if(null===t)return"null";if("boolean"===typeof t)return t?"true":"false";if("string"===typeof t)return q(t,s);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var _=String(t);return g?I(t,_):_}if("bigint"===typeof t){var x=String(t)+"n";return g?I(t,x):x}var C="undefined"===typeof s.depth?5:s.depth;if("undefined"===typeof r&&(r=0),r>=C&&C>0&&"object"===typeof t)return z(t)?"[Array]":"[Object]";var O=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=A.call(Array(e.indent+1)," ")}return{base:n,prev:A.call(Array(t+1),n)}}(s,r);if("undefined"===typeof o)o=[];else if(G(o,t)>=0)return"[Circular]";function D(t,n,i){if(n&&(o=E.call(o)).push(n),i){var a={depth:s.depth};return $(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,r+1,o)}return e(t,s,r+1,o)}if("function"===typeof t&&!B(t)){var H=function(e){if(e.name)return e.name;var t=y.call(v.call(e),/^function\s*([\w$]+)/);if(t)return t[1];return null}(t),Y=J(t,D);return"[Function"+(H?": "+H:" (anonymous)")+"]"+(Y.length>0?" { "+A.call(Y,", ")+" }":"")}if(V(t)){var ee=k?b.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):T.call(t);return"object"!==typeof t||k?ee:X(ee)}if(function(e){if(!e||"object"!==typeof e)return!1;if("undefined"!==typeof HTMLElement&&e instanceof HTMLElement)return!0;return"string"===typeof e.nodeName&&"function"===typeof e.getAttribute}(t)){for(var te="<"+w.call(String(t.nodeName)),ne=t.attributes||[],re=0;re<ne.length;re++)te+=" "+ne[re].name+"="+j(U(ne[re].value),"double",s);return te+=">",t.childNodes&&t.childNodes.length&&(te+="..."),te+="</"+w.call(String(t.nodeName))+">"}if(z(t)){if(0===t.length)return"[]";var oe=J(t,D);return O&&!function(e){for(var t=0;t<e.length;t++)if(G(e[t],"\n")>=0)return!1;return!0}(oe)?"["+Q(oe,O)+"]":"[ "+A.call(oe,", ")+" ]"}if(function(e){return"[object Error]"===W(e)&&(!M||!("object"===typeof e&&M in e))}(t)){var ie=J(t,D);return"cause"in Error.prototype||!("cause"in t)||P.call(t,"cause")?0===ie.length?"["+String(t)+"]":"{ ["+String(t)+"] "+A.call(ie,", ")+" }":"{ ["+String(t)+"] "+A.call(S.call("[cause]: "+D(t.cause),ie),", ")+" }"}if("object"===typeof t&&u){if(F&&"function"===typeof t[F]&&L)return L(t,{depth:C-r});if("symbol"!==u&&"function"===typeof t.inspect)return t.inspect()}if(function(e){if(!i||!e||"object"!==typeof e)return!1;try{i.call(e);try{l.call(e)}catch(te){return!0}return e instanceof Map}catch(t){}return!1}(t)){var ae=[];return a&&a.call(t,(function(e,n){ae.push(D(n,t,!0)+" => "+D(e,t))})),K("Map",i.call(t),ae,O)}if(function(e){if(!l||!e||"object"!==typeof e)return!1;try{l.call(e);try{i.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}(t)){var se=[];return c&&c.call(t,(function(e){se.push(D(e,t))})),K("Set",l.call(t),se,O)}if(function(e){if(!f||!e||"object"!==typeof e)return!1;try{f.call(e,f);try{d.call(e,d)}catch(te){return!0}return e instanceof WeakMap}catch(t){}return!1}(t))return Z("WeakMap");if(function(e){if(!d||!e||"object"!==typeof e)return!1;try{d.call(e,d);try{f.call(e,f)}catch(te){return!0}return e instanceof WeakSet}catch(t){}return!1}(t))return Z("WeakSet");if(function(e){if(!h||!e||"object"!==typeof e)return!1;try{return h.call(e),!0}catch(t){}return!1}(t))return Z("WeakRef");if(function(e){return"[object Number]"===W(e)&&(!M||!("object"===typeof e&&M in e))}(t))return X(D(Number(t)));if(function(e){if(!e||"object"!==typeof e||!R)return!1;try{return R.call(e),!0}catch(t){}return!1}(t))return X(D(R.call(t)));if(function(e){return"[object Boolean]"===W(e)&&(!M||!("object"===typeof e&&M in e))}(t))return X(p.call(t));if(function(e){return"[object String]"===W(e)&&(!M||!("object"===typeof e&&M in e))}(t))return X(D(String(t)));if(!function(e){return"[object Date]"===W(e)&&(!M||!("object"===typeof e&&M in e))}(t)&&!B(t)){var ue=J(t,D),le=N?N(t)===Object.prototype:t instanceof Object||t.constructor===Object,ce=t instanceof Object?"":"null prototype",fe=!le&&M&&Object(t)===t&&M in t?m.call(W(t),8,-1):ce?"Object":"",de=(le||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(fe||ce?"["+A.call(S.call([],fe||[],ce||[]),": ")+"] ":"");return 0===ue.length?de+"{}":O?de+"{"+Q(ue,O)+"}":de+"{ "+A.call(ue,", ")+" }"}return String(t)};var H=Object.prototype.hasOwnProperty||function(e){return e in this};function $(e,t){return H.call(e,t)}function W(e){return g.call(e)}function G(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function q(e,t){if(e.length>t.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return q(m.call(e,0,t.maxStringLength),t)+r}return j(b.call(b.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Y),"single",t)}function Y(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+_.call(t.toString(16))}function X(e){return"Object("+e+")"}function Z(e){return e+" { ? }"}function K(e,t,n,r){return e+" ("+t+") {"+(r?Q(n,r):A.call(n,", "))+"}"}function Q(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+A.call(e,","+n)+"\n"+t.prev}function J(e,t){var n=z(e),r=[];if(n){r.length=e.length;for(var o=0;o<e.length;o++)r[o]=$(e,o)?t(e[o],e):""}var i,a="function"===typeof O?O(e):[];if(k){i={};for(var s=0;s<a.length;s++)i["$"+a[s]]=a[s]}for(var u in e)$(e,u)&&(n&&String(Number(u))===u&&u<e.length||k&&i["$"+u]instanceof Symbol||(x.call(/[^\w$]/,u)?r.push(t(u,e)+": "+t(e[u],e)):r.push(u+": "+t(e[u],e))));if("function"===typeof O)for(var l=0;l<a.length;l++)P.call(e,a[l])&&r.push("["+t(a[l])+"]: "+t(e[a[l]],e));return r}},89211:e=>{"use strict";var t=function(e){return e!==e};e.exports=function(e,n){return 0===e&&0===n?1/e===1/n:e===n||!(!t(e)||!t(n))}},37653:(e,t,n)=>{"use strict";var r=n(38452),o=n(10487),i=n(89211),a=n(9394),s=n(36576),u=o(a(),Object);r(u,{getPolyfill:a,implementation:i,shim:s}),e.exports=u},9394:(e,t,n)=>{"use strict";var r=n(89211);e.exports=function(){return"function"===typeof Object.is?Object.is:r}},36576:(e,t,n)=>{"use strict";var r=n(9394),o=n(38452);e.exports=function(){var e=r();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},28875:(e,t,n)=>{"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=n(1093),s=Object.prototype.propertyIsEnumerable,u=!s.call({toString:null},"toString"),l=s.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],f=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},h=function(){if("undefined"===typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"===typeof window[e])try{f(window[e])}catch(t){return!0}}catch(t){return!0}return!1}();r=function(e){var t=null!==e&&"object"===typeof e,n="[object Function]"===i.call(e),r=a(e),s=t&&"[object String]"===i.call(e),d=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var p=l&&n;if(s&&e.length>0&&!o.call(e,0))for(var g=0;g<e.length;++g)d.push(String(g));if(r&&e.length>0)for(var v=0;v<e.length;++v)d.push(String(v));else for(var y in e)p&&"prototype"===y||!o.call(e,y)||d.push(String(y));if(u)for(var m=function(e){if("undefined"===typeof window||!h)return f(e);try{return f(e)}catch(t){return!1}}(e),b=0;b<c.length;++b)m&&"constructor"===c[b]||!o.call(e,c[b])||d.push(c[b]);return d}}e.exports=r},1189:(e,t,n)=>{"use strict";var r=Array.prototype.slice,o=n(1093),i=Object.keys,a=i?function(e){return i(e)}:n(28875),s=Object.keys;a.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?s(r.call(e)):s(e)})}else Object.keys=a;return Object.keys||a},e.exports=a},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},13759:(e,t,n)=>{"use strict";n.r(t),n.d(t,{adjustHue:()=>Qe,animation:()=>Lt,backgroundImages:()=>Dt,backgrounds:()=>Ft,between:()=>G,border:()=>Ut,borderColor:()=>zt,borderRadius:()=>Bt,borderStyle:()=>Vt,borderWidth:()=>Ht,buttons:()=>Yt,clearFix:()=>q,complement:()=>Je,cover:()=>Y,cssVar:()=>w,darken:()=>nt,desaturate:()=>ot,directionalProperty:()=>E,easeIn:()=>B,easeInOut:()=>H,easeOut:()=>W,ellipsis:()=>X,em:()=>k,fluidRange:()=>Q,fontFace:()=>ae,getContrast:()=>at,getLuminance:()=>it,getValueAndUnit:()=>P,grayscale:()=>st,hiDPI:()=>le,hideText:()=>se,hideVisually:()=>ue,hsl:()=>ze,hslToColorString:()=>ut,hsla:()=>Be,important:()=>N,invert:()=>lt,lighten:()=>ft,linearGradient:()=>fe,margin:()=>Xt,math:()=>b,meetsContrastGuidelines:()=>dt,mix:()=>pt,modularScale:()=>L,normalize:()=>de,opacify:()=>vt,padding:()=>Zt,parseToHsl:()=>Ie,parseToRgb:()=>Ne,position:()=>Qt,radialGradient:()=>he,readableColor:()=>bt,rem:()=>D,remToPx:()=>U,retinaImage:()=>pe,rgb:()=>Ve,rgbToColorString:()=>_t,rgba:()=>He,saturate:()=>xt,setHue:()=>At,setLightness:()=>Ct,setSaturation:()=>Ot,shade:()=>kt,size:()=>Jt,stripUnit:()=>O,textInputs:()=>nn,timingFunctions:()=>ve,tint:()=>Pt,toColorString:()=>Ye,transitions:()=>rn,transparentize:()=>It,triangle:()=>be,wordWrap:()=>_e});var r=n(58168),o=n(9417),i=n(77387),a=n(53954),s=n(63662);var u=n(52176);function l(e,t,n){return l=(0,u.A)()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&(0,s.A)(o,n.prototype),o},l.apply(null,arguments)}function c(e){var t="function"===typeof Map?new Map:void 0;return c=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"===typeof e}}(e))return e;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return l(e,arguments,(0,a.A)(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,s.A)(n,e)},c(e)}function f(e,t){return t||(t=e.slice(0)),e.raw=t,e}function d(){var e;return(e=arguments.length-1)<0||arguments.length<=e?void 0:arguments[e]}var h={symbols:{"*":{infix:{symbol:"*",f:function(e,t){return e*t},notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"*",regSymbol:"\\*"},"/":{infix:{symbol:"/",f:function(e,t){return e/t},notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"/",regSymbol:"/"},"+":{infix:{symbol:"+",f:function(e,t){return e+t},notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"+",f:d,notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"+",regSymbol:"\\+"},"-":{infix:{symbol:"-",f:function(e,t){return e-t},notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"-",f:function(e){return-e},notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"-",regSymbol:"-"},",":{infix:{symbol:",",f:function(){return Array.of.apply(Array,arguments)},notation:"infix",precedence:1,rightToLeft:0,argCount:2},symbol:",",regSymbol:","},"(":{prefix:{symbol:"(",f:d,notation:"prefix",precedence:0,rightToLeft:0,argCount:1},symbol:"(",regSymbol:"\\("},")":{postfix:{symbol:")",f:void 0,notation:"postfix",precedence:0,rightToLeft:0,argCount:1},symbol:")",regSymbol:"\\)"},min:{func:{symbol:"min",f:function(){return Math.min.apply(Math,arguments)},notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"min",regSymbol:"min\\b"},max:{func:{symbol:"max",f:function(){return Math.max.apply(Math,arguments)},notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"max",regSymbol:"max\\b"}}};var p=function(e){function t(t){var n;return n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this,(0,o.A)(n)}return(0,i.A)(t,e),t}(c(Error)),g=/((?!\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\D|$)|ged|darg?|nrut)/g;function v(e,t){var n,r=e.pop();return t.push(r.f.apply(r,(n=[]).concat.apply(n,t.splice(-r.argCount)))),r.precedence}function y(e,t){var n,o=function(e){var t={};return t.symbols=e?(0,r.A)({},h.symbols,e.symbols):(0,r.A)({},h.symbols),t}(t),i=[o.symbols["("].prefix],a=[],s=new RegExp("\\d+(?:\\.\\d+)?|"+Object.keys(o.symbols).map((function(e){return o.symbols[e]})).sort((function(e,t){return t.symbol.length-e.symbol.length})).map((function(e){return e.regSymbol})).join("|")+"|(\\S)","g");s.lastIndex=0;var u=!1;do{var l=(n=s.exec(e))||[")",void 0],c=l[0],f=l[1],d=o.symbols[c],g=d&&!d.prefix&&!d.func,y=!d||!d.postfix&&!d.infix;if(f||(u?y:g))throw new p(37,n?n.index:e.length,e);if(u){var m=d.postfix||d.infix;do{var b=i[i.length-1];if((m.precedence-b.precedence||b.rightToLeft)>0)break}while(v(i,a));u="postfix"===m.notation,")"!==m.symbol&&(i.push(m),u&&v(i,a))}else if(d){if(i.push(d.prefix||d.func),d.func&&(!(n=s.exec(e))||"("!==n[0]))throw new p(38,n?n.index:e.length,e)}else a.push(+c),u=!0}while(n&&i.length);if(i.length)throw new p(39,n?n.index:e.length,e);if(n)throw new p(40,n?n.index:e.length,e);return a.pop()}function m(e){return e.split("").reverse().join("")}function b(e,t){var n=m(e),r=n.match(g);if(r&&!r.every((function(e){return e===r[0]})))throw new p(41);return""+y(m(n.replace(g,"")),t)+(r?m(r[0]):"")}var _=/--[\S]*/g;function w(e,t){if(!e||!e.match(_))throw new p(73);var n;if("undefined"!==typeof document&&null!==document.documentElement&&(n=getComputedStyle(document.documentElement).getPropertyValue(e)),n)return n.trim();if(t)return t;throw new p(74)}function x(e){return e.charAt(0).toUpperCase()+e.slice(1)}var S=["Top","Right","Bottom","Left"];function A(e,t){if(!e)return t.toLowerCase();var n=e.split("-");if(n.length>1)return n.splice(1,0,t),n.reduce((function(e,t){return""+e+x(t)}));var r=e.replace(/([a-z])([A-Z])/g,"$1"+t+"$2");return e===r?""+e+t:r}function E(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=n[0],i=n[1],a=void 0===i?o:i,s=n[2],u=void 0===s?o:s,l=n[3];return function(e,t){for(var n={},r=0;r<t.length;r+=1)(t[r]||0===t[r])&&(n[A(e,S[r])]=t[r]);return n}(e,[o,a,u,void 0===l?a:l])}function C(e,t){return e.substr(-t.length)===t}var R=/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;function O(e){return"string"!==typeof e?e:e.match(R)?parseFloat(e):e}var T=function(e){return function(t,n){void 0===n&&(n="16px");var r=t,o=n;if("string"===typeof t){if(!C(t,"px"))throw new p(69,e,t);r=O(t)}if("string"===typeof n){if(!C(n,"px"))throw new p(70,e,n);o=O(n)}if("string"===typeof r)throw new p(71,t,e);if("string"===typeof o)throw new p(72,n,e);return""+r/o+e}},k=T("em"),M=/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;function P(e){if("string"!==typeof e)return[e,""];var t=e.match(M);return t?[parseFloat(e),t[2]]:[e,void 0]}function N(e,t){if("object"!==typeof e||null===e)throw new p(75,typeof e);var n={};return Object.keys(e).forEach((function(r){"object"===typeof e[r]&&null!==e[r]?n[r]=N(e[r],t):!t||t&&(t===r||t.indexOf(r)>=0)?n[r]=e[r]+" !important":n[r]=e[r]})),n}var I={minorSecond:1.067,majorSecond:1.125,minorThird:1.2,majorThird:1.25,perfectFourth:1.333,augFourth:1.414,perfectFifth:1.5,minorSixth:1.6,goldenSection:1.618,majorSixth:1.667,minorSeventh:1.778,majorSeventh:1.875,octave:2,majorTenth:2.5,majorEleventh:2.667,majorTwelfth:3,doubleOctave:4};function L(e,t,n){if(void 0===t&&(t="1em"),void 0===n&&(n=1.333),"number"!==typeof e)throw new p(42);if("string"===typeof n&&!I[n])throw new p(43);var r="string"===typeof t?P(t):[t,""],o=r[0],i=r[1],a="string"===typeof n?I[n]:n;if("string"===typeof o)throw new p(44,t);return""+o*Math.pow(a,e)+(i||"")}var D=T("rem"),F=16;function j(e){var t=P(e);if("px"===t[1])return parseFloat(e);if("%"===t[1])return parseFloat(e)/100*F;throw new p(78,t[1])}function U(e,t){var n=P(e);if("rem"!==n[1]&&""!==n[1])throw new p(77,n[1]);var r=t?j(t):function(){if("undefined"!==typeof document&&null!==document.documentElement){var e=getComputedStyle(document.documentElement).fontSize;return e?j(e):F}return F}();return n[0]*r+"px"}var z={back:"cubic-bezier(0.600, -0.280, 0.735, 0.045)",circ:"cubic-bezier(0.600, 0.040, 0.980, 0.335)",cubic:"cubic-bezier(0.550, 0.055, 0.675, 0.190)",expo:"cubic-bezier(0.950, 0.050, 0.795, 0.035)",quad:"cubic-bezier(0.550, 0.085, 0.680, 0.530)",quart:"cubic-bezier(0.895, 0.030, 0.685, 0.220)",quint:"cubic-bezier(0.755, 0.050, 0.855, 0.060)",sine:"cubic-bezier(0.470, 0.000, 0.745, 0.715)"};function B(e){return z[e.toLowerCase().trim()]}var V={back:"cubic-bezier(0.680, -0.550, 0.265, 1.550)",circ:"cubic-bezier(0.785, 0.135, 0.150, 0.860)",cubic:"cubic-bezier(0.645, 0.045, 0.355, 1.000)",expo:"cubic-bezier(1.000, 0.000, 0.000, 1.000)",quad:"cubic-bezier(0.455, 0.030, 0.515, 0.955)",quart:"cubic-bezier(0.770, 0.000, 0.175, 1.000)",quint:"cubic-bezier(0.860, 0.000, 0.070, 1.000)",sine:"cubic-bezier(0.445, 0.050, 0.550, 0.950)"};function H(e){return V[e.toLowerCase().trim()]}var $={back:"cubic-bezier(0.175, 0.885, 0.320, 1.275)",cubic:"cubic-bezier(0.215, 0.610, 0.355, 1.000)",circ:"cubic-bezier(0.075, 0.820, 0.165, 1.000)",expo:"cubic-bezier(0.190, 1.000, 0.220, 1.000)",quad:"cubic-bezier(0.250, 0.460, 0.450, 0.940)",quart:"cubic-bezier(0.165, 0.840, 0.440, 1.000)",quint:"cubic-bezier(0.230, 1.000, 0.320, 1.000)",sine:"cubic-bezier(0.390, 0.575, 0.565, 1.000)"};function W(e){return $[e.toLowerCase().trim()]}function G(e,t,n,r){void 0===n&&(n="320px"),void 0===r&&(r="1200px");var o=P(e),i=o[0],a=o[1],s=P(t),u=s[0],l=s[1],c=P(n),f=c[0],d=c[1],h=P(r),g=h[0],v=h[1];if("number"!==typeof f||"number"!==typeof g||!d||!v||d!==v)throw new p(47);if("number"!==typeof i||"number"!==typeof u||a!==l)throw new p(48);if(a!==d||l!==v)throw new p(76);var y=(i-u)/(f-g);return"calc("+(u-y*g).toFixed(2)+(a||"")+" + "+(100*y).toFixed(2)+"vw)"}function q(e){var t;return void 0===e&&(e="&"),(t={})[e+"::after"]={clear:"both",content:'""',display:"table"},t}function Y(e){return void 0===e&&(e=0),{position:"absolute",top:e,right:e,bottom:e,left:e}}function X(e,t){void 0===t&&(t=1);var n={display:"inline-block",maxWidth:e||"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",wordWrap:"normal"};return t>1?(0,r.A)({},n,{WebkitBoxOrient:"vertical",WebkitLineClamp:t,display:"-webkit-box",whiteSpace:"normal"}):n}function Z(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return K(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return K(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Q(e,t,n){if(void 0===t&&(t="320px"),void 0===n&&(n="1200px"),!Array.isArray(e)&&"object"!==typeof e||null===e)throw new p(49);if(Array.isArray(e)){for(var o,i={},a={},s=Z(e);!(o=s()).done;){var u,l,c=o.value;if(!c.prop||!c.fromSize||!c.toSize)throw new p(50);a[c.prop]=c.fromSize,i["@media (min-width: "+t+")"]=(0,r.A)({},i["@media (min-width: "+t+")"],((u={})[c.prop]=G(c.fromSize,c.toSize,t,n),u)),i["@media (min-width: "+n+")"]=(0,r.A)({},i["@media (min-width: "+n+")"],((l={})[c.prop]=c.toSize,l))}return(0,r.A)({},a,i)}var f,d,h;if(!e.prop||!e.fromSize||!e.toSize)throw new p(51);return(h={})[e.prop]=e.fromSize,h["@media (min-width: "+t+")"]=((f={})[e.prop]=G(e.fromSize,e.toSize,t,n),f),h["@media (min-width: "+n+")"]=((d={})[e.prop]=e.toSize,d),h}var J,ee,te=/^\s*data:([a-z]+\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\-._~:@/?%\s]*\s*$/i,ne={woff:"woff",woff2:"woff2",ttf:"truetype",otf:"opentype",eot:"embedded-opentype",svg:"svg",svgz:"svg"};function re(e,t){return t?' format("'+ne[e]+'")':""}function oe(e,t,n){if(function(e){return!!e.replace(/\s+/g," ").match(te)}(e))return'url("'+e+'")'+re(t[0],n);var r=t.map((function(t){return'url("'+e+"."+t+'")'+re(t,n)}));return r.join(", ")}function ie(e,t,n,r){var o=[];return t&&o.push(function(e){return e.map((function(e){return'local("'+e+'")'})).join(", ")}(t)),e&&o.push(oe(e,n,r)),o.join(", ")}function ae(e){var t=e.fontFamily,n=e.fontFilePath,r=e.fontStretch,o=e.fontStyle,i=e.fontVariant,a=e.fontWeight,s=e.fileFormats,u=void 0===s?["eot","woff2","woff","ttf","svg"]:s,l=e.formatHint,c=void 0!==l&&l,f=e.localFonts,d=void 0===f?[t]:f,h=e.unicodeRange,g=e.fontDisplay,v=e.fontVariationSettings,y=e.fontFeatureSettings;if(!t)throw new p(55);if(!n&&!d)throw new p(52);if(d&&!Array.isArray(d))throw new p(53);if(!Array.isArray(u))throw new p(54);var m={"@font-face":{fontFamily:t,src:ie(n,d,u,c),unicodeRange:h,fontStretch:r,fontStyle:o,fontVariant:i,fontWeight:a,fontDisplay:g,fontVariationSettings:v,fontFeatureSettings:y}};return JSON.parse(JSON.stringify(m))}function se(){return{textIndent:"101%",overflow:"hidden",whiteSpace:"nowrap"}}function ue(){return{border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",whiteSpace:"nowrap",width:"1px"}}function le(e){return void 0===e&&(e=1.3),"\n @media only screen and (-webkit-min-device-pixel-ratio: "+e+"),\n only screen and (min--moz-device-pixel-ratio: "+e+"),\n only screen and (-o-min-device-pixel-ratio: "+e+"/1),\n only screen and (min-resolution: "+Math.round(96*e)+"dpi),\n only screen and (min-resolution: "+e+"dppx)\n "}function ce(e){for(var t="",n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];for(var i=0;i<e.length;i+=1)if(t+=e[i],i===r.length-1&&r[i]){var a=r.filter((function(e){return!!e}));a.length>1?(t=t.slice(0,-1),t+=", "+r[i]):1===a.length&&(t+=""+r[i])}else r[i]&&(t+=r[i]+" ");return t.trim()}function fe(e){var t=e.colorStops,n=e.fallback,r=e.toDirection,o=void 0===r?"":r;if(!t||t.length<2)throw new p(56);return{backgroundColor:n||t[0].replace(/,\s+/g,",").split(" ")[0].replace(/,(?=\S)/g,", "),backgroundImage:ce(J||(J=f(["linear-gradient(","",")"])),o,t.join(", ").replace(/,(?=\S)/g,", "))}}function de(){var e;return[(e={html:{lineHeight:"1.15",textSizeAdjust:"100%"},body:{margin:"0"},main:{display:"block"},h1:{fontSize:"2em",margin:"0.67em 0"},hr:{boxSizing:"content-box",height:"0",overflow:"visible"},pre:{fontFamily:"monospace, monospace",fontSize:"1em"},a:{backgroundColor:"transparent"},"abbr[title]":{borderBottom:"none",textDecoration:"underline"}},e["b,\n strong"]={fontWeight:"bolder"},e["code,\n kbd,\n samp"]={fontFamily:"monospace, monospace",fontSize:"1em"},e.small={fontSize:"80%"},e["sub,\n sup"]={fontSize:"75%",lineHeight:"0",position:"relative",verticalAlign:"baseline"},e.sub={bottom:"-0.25em"},e.sup={top:"-0.5em"},e.img={borderStyle:"none"},e["button,\n input,\n optgroup,\n select,\n textarea"]={fontFamily:"inherit",fontSize:"100%",lineHeight:"1.15",margin:"0"},e["button,\n input"]={overflow:"visible"},e["button,\n select"]={textTransform:"none"},e['button,\n html [type="button"],\n [type="reset"],\n [type="submit"]']={WebkitAppearance:"button"},e['button::-moz-focus-inner,\n [type="button"]::-moz-focus-inner,\n [type="reset"]::-moz-focus-inner,\n [type="submit"]::-moz-focus-inner']={borderStyle:"none",padding:"0"},e['button:-moz-focusring,\n [type="button"]:-moz-focusring,\n [type="reset"]:-moz-focusring,\n [type="submit"]:-moz-focusring']={outline:"1px dotted ButtonText"},e.fieldset={padding:"0.35em 0.625em 0.75em"},e.legend={boxSizing:"border-box",color:"inherit",display:"table",maxWidth:"100%",padding:"0",whiteSpace:"normal"},e.progress={verticalAlign:"baseline"},e.textarea={overflow:"auto"},e['[type="checkbox"],\n [type="radio"]']={boxSizing:"border-box",padding:"0"},e['[type="number"]::-webkit-inner-spin-button,\n [type="number"]::-webkit-outer-spin-button']={height:"auto"},e['[type="search"]']={WebkitAppearance:"textfield",outlineOffset:"-2px"},e['[type="search"]::-webkit-search-decoration']={WebkitAppearance:"none"},e["::-webkit-file-upload-button"]={WebkitAppearance:"button",font:"inherit"},e.details={display:"block"},e.summary={display:"list-item"},e.template={display:"none"},e["[hidden]"]={display:"none"},e),{"abbr[title]":{textDecoration:"underline dotted"}}]}function he(e){var t=e.colorStops,n=e.extent,r=void 0===n?"":n,o=e.fallback,i=e.position,a=void 0===i?"":i,s=e.shape,u=void 0===s?"":s;if(!t||t.length<2)throw new p(57);return{backgroundColor:o||t[0].split(" ")[0],backgroundImage:ce(ee||(ee=f(["radial-gradient(","","","",")"])),a,u,r,t.join(", "))}}function pe(e,t,n,o,i){var a;if(void 0===n&&(n="png"),void 0===i&&(i="_2x"),!e)throw new p(58);var s=n.replace(/^\./,""),u=o?o+"."+s:""+e+i+"."+s;return(a={backgroundImage:"url("+e+"."+s+")"})[le()]=(0,r.A)({backgroundImage:"url("+u+")"},t?{backgroundSize:t}:{}),a}var ge={easeInBack:"cubic-bezier(0.600, -0.280, 0.735, 0.045)",easeInCirc:"cubic-bezier(0.600, 0.040, 0.980, 0.335)",easeInCubic:"cubic-bezier(0.550, 0.055, 0.675, 0.190)",easeInExpo:"cubic-bezier(0.950, 0.050, 0.795, 0.035)",easeInQuad:"cubic-bezier(0.550, 0.085, 0.680, 0.530)",easeInQuart:"cubic-bezier(0.895, 0.030, 0.685, 0.220)",easeInQuint:"cubic-bezier(0.755, 0.050, 0.855, 0.060)",easeInSine:"cubic-bezier(0.470, 0.000, 0.745, 0.715)",easeOutBack:"cubic-bezier(0.175, 0.885, 0.320, 1.275)",easeOutCubic:"cubic-bezier(0.215, 0.610, 0.355, 1.000)",easeOutCirc:"cubic-bezier(0.075, 0.820, 0.165, 1.000)",easeOutExpo:"cubic-bezier(0.190, 1.000, 0.220, 1.000)",easeOutQuad:"cubic-bezier(0.250, 0.460, 0.450, 0.940)",easeOutQuart:"cubic-bezier(0.165, 0.840, 0.440, 1.000)",easeOutQuint:"cubic-bezier(0.230, 1.000, 0.320, 1.000)",easeOutSine:"cubic-bezier(0.390, 0.575, 0.565, 1.000)",easeInOutBack:"cubic-bezier(0.680, -0.550, 0.265, 1.550)",easeInOutCirc:"cubic-bezier(0.785, 0.135, 0.150, 0.860)",easeInOutCubic:"cubic-bezier(0.645, 0.045, 0.355, 1.000)",easeInOutExpo:"cubic-bezier(1.000, 0.000, 0.000, 1.000)",easeInOutQuad:"cubic-bezier(0.455, 0.030, 0.515, 0.955)",easeInOutQuart:"cubic-bezier(0.770, 0.000, 0.175, 1.000)",easeInOutQuint:"cubic-bezier(0.860, 0.000, 0.070, 1.000)",easeInOutSine:"cubic-bezier(0.445, 0.050, 0.550, 0.950)"};function ve(e){return ge[e]}var ye=function(e,t,n){var r=""+n[0]+(n[1]||""),o=""+n[0]/2+(n[1]||""),i=""+t[0]+(t[1]||""),a=""+t[0]/2+(t[1]||"");switch(e){case"top":return"0 "+o+" "+i+" "+o;case"topLeft":return r+" "+i+" 0 0";case"left":return a+" "+r+" "+a+" 0";case"bottomLeft":return r+" 0 0 "+i;case"bottom":return i+" "+o+" 0 "+o;case"bottomRight":return"0 0 "+r+" "+i;case"right":return a+" 0 "+a+" "+r;default:return"0 "+r+" "+i+" 0"}},me=function(e,t){switch(e){case"top":case"bottomRight":return{borderBottomColor:t};case"right":case"bottomLeft":return{borderLeftColor:t};case"bottom":case"topLeft":return{borderTopColor:t};case"left":case"topRight":return{borderRightColor:t};default:throw new p(59)}};function be(e){var t=e.pointingDirection,n=e.height,o=e.width,i=e.foregroundColor,a=e.backgroundColor,s=void 0===a?"transparent":a,u=P(o),l=P(n);if(isNaN(l[0])||isNaN(u[0]))throw new p(60);return(0,r.A)({width:"0",height:"0",borderColor:s},me(t,i),{borderStyle:"solid",borderWidth:ye(t,l,u)})}function _e(e){return void 0===e&&(e="break-word"),{overflowWrap:e,wordWrap:e,wordBreak:"break-word"===e?"break-all":e}}function we(e){return Math.round(255*e)}function xe(e,t,n){return we(e)+","+we(t)+","+we(n)}function Se(e,t,n,r){if(void 0===r&&(r=xe),0===t)return r(n,n,n);var o=(e%360+360)%360/60,i=(1-Math.abs(2*n-1))*t,a=i*(1-Math.abs(o%2-1)),s=0,u=0,l=0;o>=0&&o<1?(s=i,u=a):o>=1&&o<2?(s=a,u=i):o>=2&&o<3?(u=i,l=a):o>=3&&o<4?(u=a,l=i):o>=4&&o<5?(s=a,l=i):o>=5&&o<6&&(s=i,l=a);var c=n-i/2;return r(s+c,u+c,l+c)}var Ae={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var Ee=/^#[a-fA-F0-9]{6}$/,Ce=/^#[a-fA-F0-9]{8}$/,Re=/^#[a-fA-F0-9]{3}$/,Oe=/^#[a-fA-F0-9]{4}$/,Te=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,ke=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,Me=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,Pe=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function Ne(e){if("string"!==typeof e)throw new p(3);var t=function(e){if("string"!==typeof e)return e;var t=e.toLowerCase();return Ae[t]?"#"+Ae[t]:e}(e);if(t.match(Ee))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(Ce)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(Re))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(Oe)){var r=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:r}}var o=Te.exec(t);if(o)return{red:parseInt(""+o[1],10),green:parseInt(""+o[2],10),blue:parseInt(""+o[3],10)};var i=ke.exec(t.substring(0,50));if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])>1?parseFloat(""+i[4])/100:parseFloat(""+i[4])};var a=Me.exec(t);if(a){var s="rgb("+Se(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",u=Te.exec(s);if(!u)throw new p(4,t,s);return{red:parseInt(""+u[1],10),green:parseInt(""+u[2],10),blue:parseInt(""+u[3],10)}}var l=Pe.exec(t.substring(0,50));if(l){var c="rgb("+Se(parseInt(""+l[1],10),parseInt(""+l[2],10)/100,parseInt(""+l[3],10)/100)+")",f=Te.exec(c);if(!f)throw new p(4,t,c);return{red:parseInt(""+f[1],10),green:parseInt(""+f[2],10),blue:parseInt(""+f[3],10),alpha:parseFloat(""+l[4])>1?parseFloat(""+l[4])/100:parseFloat(""+l[4])}}throw new p(5)}function Ie(e){return function(e){var t,n=e.red/255,r=e.green/255,o=e.blue/255,i=Math.max(n,r,o),a=Math.min(n,r,o),s=(i+a)/2;if(i===a)return void 0!==e.alpha?{hue:0,saturation:0,lightness:s,alpha:e.alpha}:{hue:0,saturation:0,lightness:s};var u=i-a,l=s>.5?u/(2-i-a):u/(i+a);switch(i){case n:t=(r-o)/u+(r<o?6:0);break;case r:t=(o-n)/u+2;break;default:t=(n-r)/u+4}return t*=60,void 0!==e.alpha?{hue:t,saturation:l,lightness:s,alpha:e.alpha}:{hue:t,saturation:l,lightness:s}}(Ne(e))}var Le=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function De(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function Fe(e){return De(Math.round(255*e))}function je(e,t,n){return Le("#"+Fe(e)+Fe(t)+Fe(n))}function Ue(e,t,n){return Se(e,t,n,je)}function ze(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return Ue(e,t,n);if("object"===typeof e&&void 0===t&&void 0===n)return Ue(e.hue,e.saturation,e.lightness);throw new p(1)}function Be(e,t,n,r){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?Ue(e,t,n):"rgba("+Se(e,t,n)+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?Ue(e.hue,e.saturation,e.lightness):"rgba("+Se(e.hue,e.saturation,e.lightness)+","+e.alpha+")";throw new p(2)}function Ve(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return Le("#"+De(e)+De(t)+De(n));if("object"===typeof e&&void 0===t&&void 0===n)return Le("#"+De(e.red)+De(e.green)+De(e.blue));throw new p(6)}function He(e,t,n,r){if("string"===typeof e&&"number"===typeof t){var o=Ne(e);return"rgba("+o.red+","+o.green+","+o.blue+","+t+")"}if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?Ve(e,t,n):"rgba("+e+","+t+","+n+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?Ve(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new p(7)}var $e=function(e){return"number"===typeof e.red&&"number"===typeof e.green&&"number"===typeof e.blue&&("number"!==typeof e.alpha||"undefined"===typeof e.alpha)},We=function(e){return"number"===typeof e.red&&"number"===typeof e.green&&"number"===typeof e.blue&&"number"===typeof e.alpha},Ge=function(e){return"number"===typeof e.hue&&"number"===typeof e.saturation&&"number"===typeof e.lightness&&("number"!==typeof e.alpha||"undefined"===typeof e.alpha)},qe=function(e){return"number"===typeof e.hue&&"number"===typeof e.saturation&&"number"===typeof e.lightness&&"number"===typeof e.alpha};function Ye(e){if("object"!==typeof e)throw new p(8);if(We(e))return He(e);if($e(e))return Ve(e);if(qe(e))return Be(e);if(Ge(e))return ze(e);throw new p(8)}function Xe(e,t,n){return function(){var r=n.concat(Array.prototype.slice.call(arguments));return r.length>=t?e.apply(this,r):Xe(e,t,r)}}function Ze(e){return Xe(e,e.length,[])}function Ke(e,t){if("transparent"===t)return t;var n=Ie(t);return Ye((0,r.A)({},n,{hue:n.hue+parseFloat(e)}))}var Qe=Ze(Ke);function Je(e){if("transparent"===e)return e;var t=Ie(e);return Ye((0,r.A)({},t,{hue:(t.hue+180)%360}))}function et(e,t,n){return Math.max(e,Math.min(t,n))}function tt(e,t){if("transparent"===t)return t;var n=Ie(t);return Ye((0,r.A)({},n,{lightness:et(0,1,n.lightness-parseFloat(e))}))}var nt=Ze(tt);function rt(e,t){if("transparent"===t)return t;var n=Ie(t);return Ye((0,r.A)({},n,{saturation:et(0,1,n.saturation-parseFloat(e))}))}var ot=Ze(rt);function it(e){if("transparent"===e)return 0;var t=Ne(e),n=Object.keys(t).map((function(e){var n=t[e]/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)})),r=n[0],o=n[1],i=n[2];return parseFloat((.2126*r+.7152*o+.0722*i).toFixed(3))}function at(e,t){var n=it(e),r=it(t);return parseFloat((n>r?(n+.05)/(r+.05):(r+.05)/(n+.05)).toFixed(2))}function st(e){return"transparent"===e?e:Ye((0,r.A)({},Ie(e),{saturation:0}))}function ut(e){if("object"===typeof e&&"number"===typeof e.hue&&"number"===typeof e.saturation&&"number"===typeof e.lightness)return e.alpha&&"number"===typeof e.alpha?Be({hue:e.hue,saturation:e.saturation,lightness:e.lightness,alpha:e.alpha}):ze({hue:e.hue,saturation:e.saturation,lightness:e.lightness});throw new p(45)}function lt(e){if("transparent"===e)return e;var t=Ne(e);return Ye((0,r.A)({},t,{red:255-t.red,green:255-t.green,blue:255-t.blue}))}function ct(e,t){if("transparent"===t)return t;var n=Ie(t);return Ye((0,r.A)({},n,{lightness:et(0,1,n.lightness+parseFloat(e))}))}var ft=Ze(ct);function dt(e,t){var n=at(e,t);return{AA:n>=4.5,AALarge:n>=3,AAA:n>=7,AAALarge:n>=4.5}}function ht(e,t,n){if("transparent"===t)return n;if("transparent"===n)return t;if(0===e)return n;var o=Ne(t),i=(0,r.A)({},o,{alpha:"number"===typeof o.alpha?o.alpha:1}),a=Ne(n),s=(0,r.A)({},a,{alpha:"number"===typeof a.alpha?a.alpha:1}),u=i.alpha-s.alpha,l=2*parseFloat(e)-1,c=((l*u===-1?l:l+u)/(1+l*u)+1)/2,f=1-c;return He({red:Math.floor(i.red*c+s.red*f),green:Math.floor(i.green*c+s.green*f),blue:Math.floor(i.blue*c+s.blue*f),alpha:i.alpha*parseFloat(e)+s.alpha*(1-parseFloat(e))})}var pt=Ze(ht);function gt(e,t){if("transparent"===t)return t;var n=Ne(t),o="number"===typeof n.alpha?n.alpha:1;return He((0,r.A)({},n,{alpha:et(0,1,(100*o+100*parseFloat(e))/100)}))}var vt=Ze(gt),yt="#000",mt="#fff";function bt(e,t,n,r){void 0===t&&(t=yt),void 0===n&&(n=mt),void 0===r&&(r=!0);var o=it(e)>.179,i=o?t:n;return!r||at(e,i)>=4.5?i:o?yt:mt}function _t(e){if("object"===typeof e&&"number"===typeof e.red&&"number"===typeof e.green&&"number"===typeof e.blue)return"number"===typeof e.alpha?He({red:e.red,green:e.green,blue:e.blue,alpha:e.alpha}):Ve({red:e.red,green:e.green,blue:e.blue});throw new p(46)}function wt(e,t){if("transparent"===t)return t;var n=Ie(t);return Ye((0,r.A)({},n,{saturation:et(0,1,n.saturation+parseFloat(e))}))}var xt=Ze(wt);function St(e,t){return"transparent"===t?t:Ye((0,r.A)({},Ie(t),{hue:parseFloat(e)}))}var At=Ze(St);function Et(e,t){return"transparent"===t?t:Ye((0,r.A)({},Ie(t),{lightness:parseFloat(e)}))}var Ct=Ze(Et);function Rt(e,t){return"transparent"===t?t:Ye((0,r.A)({},Ie(t),{saturation:parseFloat(e)}))}var Ot=Ze(Rt);function Tt(e,t){return"transparent"===t?t:pt(parseFloat(e),"rgb(0, 0, 0)",t)}var kt=Ze(Tt);function Mt(e,t){return"transparent"===t?t:pt(parseFloat(e),"rgb(255, 255, 255)",t)}var Pt=Ze(Mt);function Nt(e,t){if("transparent"===t)return t;var n=Ne(t),o="number"===typeof n.alpha?n.alpha:1;return He((0,r.A)({},n,{alpha:et(0,1,+(100*o-100*parseFloat(e)).toFixed(2)/100)}))}var It=Ze(Nt);function Lt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=Array.isArray(t[0]);if(!r&&t.length>8)throw new p(64);return{animation:t.map((function(e){if(r&&!Array.isArray(e)||!r&&Array.isArray(e))throw new p(65);if(Array.isArray(e)&&e.length>8)throw new p(66);return Array.isArray(e)?e.join(" "):e})).join(", ")}}function Dt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return{backgroundImage:t.join(", ")}}function Ft(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return{background:t.join(", ")}}var jt=["top","right","bottom","left"];function Ut(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o;return"string"===typeof e&&jt.indexOf(e)>=0?((o={})["border"+x(e)+"Width"]=n[0],o["border"+x(e)+"Style"]=n[1],o["border"+x(e)+"Color"]=n[2],o):(n.unshift(e),{borderWidth:n[0],borderStyle:n[1],borderColor:n[2]})}function zt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return E.apply(void 0,["borderColor"].concat(t))}function Bt(e,t){var n,r,o=x(e);if(!t&&0!==t)throw new p(62);if("Top"===o||"Bottom"===o)return(n={})["border"+o+"RightRadius"]=t,n["border"+o+"LeftRadius"]=t,n;if("Left"===o||"Right"===o)return(r={})["borderTop"+o+"Radius"]=t,r["borderBottom"+o+"Radius"]=t,r;throw new p(63)}function Vt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return E.apply(void 0,["borderStyle"].concat(t))}function Ht(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return E.apply(void 0,["borderWidth"].concat(t))}function $t(e,t){return e(t?":"+t:"")}function Wt(e,t,n){if(!t)throw new p(67);if(0===e.length)return $t(t,null);for(var r=[],o=0;o<e.length;o+=1){if(n&&n.indexOf(e[o])<0)throw new p(68);r.push($t(t,e[o]))}return r=r.join(",")}var Gt=[void 0,null,"active","focus","hover"];function qt(e){return"button"+e+',\n input[type="button"]'+e+',\n input[type="reset"]'+e+',\n input[type="submit"]'+e}function Yt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Wt(t,qt,Gt)}function Xt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return E.apply(void 0,["margin"].concat(t))}function Zt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return E.apply(void 0,["padding"].concat(t))}var Kt=["absolute","fixed","relative","static","sticky"];function Qt(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return Kt.indexOf(e)>=0&&e?(0,r.A)({},E.apply(void 0,[""].concat(n)),{position:e}):E.apply(void 0,["",e].concat(n))}function Jt(e,t){return void 0===t&&(t=e),{height:e,width:t}}var en=[void 0,null,"active","focus","hover"];function tn(e){return'input[type="color"]'+e+',\n input[type="date"]'+e+',\n input[type="datetime"]'+e+',\n input[type="datetime-local"]'+e+',\n input[type="email"]'+e+',\n input[type="month"]'+e+',\n input[type="number"]'+e+',\n input[type="password"]'+e+',\n input[type="search"]'+e+',\n input[type="tel"]'+e+',\n input[type="text"]'+e+',\n input[type="time"]'+e+',\n input[type="url"]'+e+',\n input[type="week"]'+e+",\n input:not([type])"+e+",\n textarea"+e}function nn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Wt(t,tn,en)}function rn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(Array.isArray(t[0])&&2===t.length){var r=t[1];if("string"!==typeof r)throw new p(61);return{transition:t[0].map((function(e){return e+" "+r})).join(", ")}}return{transition:t.join(", ")}}},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},86663:(e,t,n)=>{"use strict";const r=n(24280),o=n(30454),i=n(528),a=n(73055),s=Symbol("encodeFragmentIdentifier");function u(e){if("string"!==typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e,t){return t.decode?o(e):e}function f(e){return Array.isArray(e)?e.sort():"object"===typeof e?f(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function h(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function p(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"===typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function g(e,t){u((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const o="string"===typeof n&&n.includes(e.arrayFormatSeparator),i="string"===typeof n&&!o&&c(n,e).includes(e.arrayFormatSeparator);n=i?c(n,e):n;const a=o||i?n.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===n?n:c(n,e);r[t]=a};case"bracket-separator":return(t,n,r)=>{const o=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!o)return void(r[t]=n?c(n,e):n);const i=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],i):r[t]=i};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!==typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const o of e.split("&")){if(""===o)continue;let[e,a]=i(t.decode?o.replace(/\+/g," "):o,"=");a=void 0===a?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:c(a,t),n(c(e,t),a,r)}for(const o of Object.keys(r)){const e=r[o];if("object"===typeof e&&null!==e)for(const n of Object.keys(e))e[n]=p(e[n],t);else r[o]=p(e,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"===typeof n&&!Array.isArray(n)?e[t]=f(n):e[t]=n,e}),Object.create(null))}t.extract=h,t.parse=g,t.stringify=(e,t)=>{if(!e)return"";u((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>{return t.skipNull&&(null===(r=e[n])||void 0===r)||t.skipEmptyString&&""===e[n];var r},r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const o=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",o,"]"].join("")]:[...n,[l(t,e),"[",l(o,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"colon-list-separator":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),":list="].join("")]:[...n,[l(t,e),":list=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,o)=>void 0===o||e.skipNull&&null===o||e.skipEmptyString&&""===o?r:(o=null===o?"":o,0===r.length?[[l(n,e),t,l(o,e)].join("")]:[[r,l(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),o={};for(const a of Object.keys(e))n(a)||(o[a]=e[a]);const i=Object.keys(o);return!1!==t.sort&&i.sort(t.sort),i.map((n=>{const o=e[n];return void 0===o?"":null===o?l(n,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":o.reduce(r(n),[]).join("&"):l(n,t)+"="+l(o,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=i(e,"#");return Object.assign({url:n.split("?")[0]||"",query:g(h(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:c(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0,[s]:!0},n);const r=d(e.url).split("?")[0]||"",o=t.extract(e.url),i=t.parse(o,{sort:!1}),a=Object.assign(i,e.query);let u=t.stringify(a,n);u&&(u=`?${u}`);let c=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(c=`#${n[s]?l(e.fragmentIdentifier,n):e.fragmentIdentifier}`),`${r}${u}${c}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0,[s]:!1},r);const{url:o,query:i,fragmentIdentifier:u}=t.parseUrl(e,r);return t.stringifyUrl({url:o,query:a(i,n),fragmentIdentifier:u},r)},t.exclude=(e,n,r)=>{const o=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,o,r)}},22799:(e,t)=>{"use strict";var n,r=Symbol.for("react.element"),o=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.server_context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen");function y(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case i:case s:case a:case d:case h:return e;default:switch(e=e&&e.$$typeof){case c:case l:case f:case g:case p:case u:return e;default:return t}}case o:return t}}}n=Symbol.for("react.module.reference"),t.ContextConsumer=l,t.ContextProvider=u,t.Element=r,t.ForwardRef=f,t.Fragment=i,t.Lazy=g,t.Memo=p,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=d,t.SuspenseList=h,t.isAsyncMode=function(){return!1},t.isConcurrentMode=function(){return!1},t.isContextConsumer=function(e){return y(e)===l},t.isContextProvider=function(e){return y(e)===u},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return y(e)===f},t.isFragment=function(e){return y(e)===i},t.isLazy=function(e){return y(e)===g},t.isMemo=function(e){return y(e)===p},t.isPortal=function(e){return y(e)===o},t.isProfiler=function(e){return y(e)===s},t.isStrictMode=function(e){return y(e)===a},t.isSuspense=function(e){return y(e)===d},t.isSuspenseList=function(e){return y(e)===h},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===s||e===a||e===d||e===h||e===v||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===p||e.$$typeof===u||e.$$typeof===l||e.$$typeof===f||e.$$typeof===n||void 0!==e.getModuleId)},t.typeOf=y},44363:(e,t,n)=>{"use strict";e.exports=n(22799)},30708:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(40961),o=n(96540),i=n(5556),a=n.n(i),s=!("undefined"===typeof window||!window.document||!window.document.createElement),u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var l=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),u(t,[{key:"componentWillUnmount",value:function(){this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null}},{key:"render",value:function(){return s?(this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode)),r.createPortal(this.props.children,this.props.node||this.defaultNode)):null}}]),t}(o.Component);l.propTypes={children:a().node.isRequired,node:a().any};const c=l;var f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var d=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),f(t,[{key:"componentDidMount",value:function(){this.renderPortal()}},{key:"componentDidUpdate",value:function(e){this.renderPortal()}},{key:"componentWillUnmount",value:function(){r.unmountComponentAtNode(this.defaultNode||this.props.node),this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null,this.portal=null}},{key:"renderPortal",value:function(e){this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode));var t=this.props.children;"function"===typeof this.props.children.type&&(t=o.cloneElement(this.props.children)),this.portal=r.unstable_renderSubtreeIntoContainer(this,t,this.props.node||this.defaultNode)}},{key:"render",value:function(){return null}}]),t}(o.Component);const h=d;d.propTypes={children:a().node.isRequired,node:a().any};const p=r.createPortal?c:h},84976:(e,t,n)=>{"use strict";var r,o;n.d(t,{N_:()=>y,ok:()=>_,rI:()=>p});var i=n(96540),a=n(40961),s=n(47767),u=n(45588);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function f(e){return void 0===e&&(e=""),new URLSearchParams("string"===typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);const d=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"];try{window.__reactRouterVersion="6"}catch(w){}new Map;const h=(r||(r=n.t(i,2))).startTransition;(o||(o=n.t(a,2))).flushSync,(r||(r=n.t(i,2))).useId;function p(e){let{basename:t,children:n,future:r,history:o}=e,[a,u]=i.useState({action:o.action,location:o.location}),{v7_startTransition:l}=r||{},c=i.useCallback((e=>{l&&h?h((()=>u(e))):u(e)}),[u,l]);return i.useLayoutEffect((()=>o.listen(c)),[o,c]),i.createElement(s.Ix,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:o,future:r})}const g="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,v=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,y=i.forwardRef((function(e,t){let n,{onClick:r,relative:o,reloadDocument:a,replace:f,state:h,target:p,to:y,preventScrollReset:m,unstable_viewTransition:b}=e,_=c(e,d),{basename:x}=i.useContext(s.jb),S=!1;if("string"===typeof y&&v.test(y)&&(n=y,g))try{let e=new URL(window.location.href),t=y.startsWith("//")?new URL(e.protocol+y):new URL(y),n=(0,u.pb)(t.pathname,x);t.origin===e.origin&&null!=n?y=n+t.search+t.hash:S=!0}catch(w){}let A=(0,s.$P)(y,{relative:o}),E=function(e,t){let{target:n,replace:r,state:o,preventScrollReset:a,relative:l,unstable_viewTransition:c}=void 0===t?{}:t,f=(0,s.Zp)(),d=(0,s.zy)(),h=(0,s.x$)(e,{relative:l});return i.useCallback((t=>{if(function(e,t){return 0===e.button&&(!t||"_self"===t)&&!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)}(t,n)){t.preventDefault();let n=void 0!==r?r:(0,u.AO)(d)===(0,u.AO)(h);f(e,{replace:n,state:o,preventScrollReset:a,relative:l,unstable_viewTransition:c})}}),[d,f,h,r,o,n,e,a,l,c])}(y,{replace:f,state:h,target:p,preventScrollReset:m,relative:o,unstable_viewTransition:b});return i.createElement("a",l({},_,{href:n||A,onClick:S||a?r:function(e){r&&r(e),e.defaultPrevented||E(e)},ref:t,target:p}))}));var m,b;function _(e){let t=i.useRef(f(e)),n=i.useRef(!1),r=(0,s.zy)(),o=i.useMemo((()=>function(e,t){let n=f(e);return t&&t.forEach(((e,r)=>{n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}))})),n}(r.search,n.current?null:t.current)),[r.search]),a=(0,s.Zp)(),u=i.useCallback(((e,t)=>{const r=f("function"===typeof e?e(o):e);n.current=!0,a("?"+r,t)}),[a,o]);return[o,u]}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(m||(m={})),function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(b||(b={}))},47767:(e,t,n)=>{"use strict";var r;n.d(t,{$P:()=>h,BV:()=>D,C5:()=>N,Ix:()=>L,RQ:()=>v,Zp:()=>m,g:()=>b,jb:()=>l,qh:()=>I,x$:()=>_,zy:()=>g});var o=n(96540),i=n(45588);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const s=o.createContext(null);const u=o.createContext(null);const l=o.createContext(null);const c=o.createContext(null);const f=o.createContext({outlet:null,matches:[],isDataRoute:!1});const d=o.createContext(null);function h(e,t){let{relative:n}=void 0===t?{}:t;p()||(0,i.Oi)(!1);let{basename:r,navigator:a}=o.useContext(l),{hash:s,pathname:u,search:c}=_(e,{relative:n}),f=u;return"/"!==r&&(f="/"===u?r:(0,i.HS)([r,u])),a.createHref({pathname:f,search:c,hash:s})}function p(){return null!=o.useContext(c)}function g(){return p()||(0,i.Oi)(!1),o.useContext(c).location}function v(e){p()||(0,i.Oi)(!1);let{pathname:t}=g();return o.useMemo((()=>(0,i.B6)(e,t)),[t,e])}function y(e){o.useContext(l).static||o.useLayoutEffect(e)}function m(){let{isDataRoute:e}=o.useContext(f);return e?function(){let{router:e}=T(R.UseNavigateStable),t=M(O.UseNavigateStable),n=o.useRef(!1);return y((()=>{n.current=!0})),o.useCallback((function(r,o){void 0===o&&(o={}),n.current&&("number"===typeof r?e.navigate(r):e.navigate(r,a({fromRouteId:t},o)))}),[e,t])}():function(){p()||(0,i.Oi)(!1);let e=o.useContext(s),{basename:t,future:n,navigator:r}=o.useContext(l),{matches:a}=o.useContext(f),{pathname:u}=g(),c=JSON.stringify((0,i.yD)(a,n.v7_relativeSplatPath)),d=o.useRef(!1);return y((()=>{d.current=!0})),o.useCallback((function(n,o){if(void 0===o&&(o={}),!d.current)return;if("number"===typeof n)return void r.go(n);let a=(0,i.Gh)(n,JSON.parse(c),u,"path"===o.relative);null==e&&"/"!==t&&(a.pathname="/"===a.pathname?t:(0,i.HS)([t,a.pathname])),(o.replace?r.replace:r.push)(a,o.state,o)}),[t,r,c,u,e])}()}function b(){let{matches:e}=o.useContext(f),t=e[e.length-1];return t?t.params:{}}function _(e,t){let{relative:n}=void 0===t?{}:t,{future:r}=o.useContext(l),{matches:a}=o.useContext(f),{pathname:s}=g(),u=JSON.stringify((0,i.yD)(a,r.v7_relativeSplatPath));return o.useMemo((()=>(0,i.Gh)(e,JSON.parse(u),s,"path"===n)),[e,u,s,n])}function w(e,t,n,r){p()||(0,i.Oi)(!1);let{navigator:s}=o.useContext(l),{matches:u}=o.useContext(f),d=u[u.length-1],h=d?d.params:{},v=(d&&d.pathname,d?d.pathnameBase:"/");d&&d.route;let y,m=g();if(t){var b;let e="string"===typeof t?(0,i.Rr)(t):t;"/"===v||(null==(b=e.pathname)?void 0:b.startsWith(v))||(0,i.Oi)(!1),y=e}else y=m;let _=y.pathname||"/",w=_;if("/"!==v){let e=v.replace(/^\//,"").split("/");w="/"+_.replace(/^\//,"").split("/").slice(e.length).join("/")}let x=(0,i.ue)(e,{pathname:w});let S=C(x&&x.map((e=>Object.assign({},e,{params:Object.assign({},h,e.params),pathname:(0,i.HS)([v,s.encodeLocation?s.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?v:(0,i.HS)([v,s.encodeLocation?s.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),u,n,r);return t&&S?o.createElement(c.Provider,{value:{location:a({pathname:"/",search:"",hash:"",state:null,key:"default"},y),navigationType:i.rc.Pop}},S):S}function x(){let e=function(){var e;let t=o.useContext(d),n=k(O.UseRouteError),r=M(O.UseRouteError);if(void 0!==t)return t;return null==(e=n.errors)?void 0:e[r]}(),t=(0,i.pX)(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:r};return o.createElement(o.Fragment,null,o.createElement("h2",null,"Unexpected Application Error!"),o.createElement("h3",{style:{fontStyle:"italic"}},t),n?o.createElement("pre",{style:a},n):null,null)}const S=o.createElement(x,null);class A extends o.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?o.createElement(f.Provider,{value:this.props.routeContext},o.createElement(d.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function E(e){let{routeContext:t,match:n,children:r}=e,i=o.useContext(s);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),o.createElement(f.Provider,{value:t},r)}function C(e,t,n,r){var a;if(void 0===t&&(t=[]),void 0===n&&(n=null),void 0===r&&(r=null),null==e){var s;if(null==(s=n)||!s.errors)return null;e=n.matches}let u=e,l=null==(a=n)?void 0:a.errors;if(null!=l){let e=u.findIndex((e=>e.route.id&&(null==l?void 0:l[e.route.id])));e>=0||(0,i.Oi)(!1),u=u.slice(0,Math.min(u.length,e+1))}let c=!1,f=-1;if(n&&r&&r.v7_partialHydration)for(let o=0;o<u.length;o++){let e=u[o];if((e.route.HydrateFallback||e.route.hydrateFallbackElement)&&(f=o),e.route.id){let{loaderData:t,errors:r}=n,o=e.route.loader&&void 0===t[e.route.id]&&(!r||void 0===r[e.route.id]);if(e.route.lazy||o){c=!0,u=f>=0?u.slice(0,f+1):[u[0]];break}}}return u.reduceRight(((e,r,i)=>{let a,s=!1,d=null,h=null;var p;n&&(a=l&&r.route.id?l[r.route.id]:void 0,d=r.route.errorElement||S,c&&(f<0&&0===i?(p="route-fallback",!1||P[p]||(P[p]=!0),s=!0,h=null):f===i&&(s=!0,h=r.route.hydrateFallbackElement||null)));let g=t.concat(u.slice(0,i+1)),v=()=>{let t;return t=a?d:s?h:r.route.Component?o.createElement(r.route.Component,null):r.route.element?r.route.element:e,o.createElement(E,{match:r,routeContext:{outlet:e,matches:g,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===i)?o.createElement(A,{location:n.location,revalidation:n.revalidation,component:d,error:a,children:v(),routeContext:{outlet:null,matches:g,isDataRoute:!0}}):v()}),null)}var R=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(R||{}),O=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(O||{});function T(e){let t=o.useContext(s);return t||(0,i.Oi)(!1),t}function k(e){let t=o.useContext(u);return t||(0,i.Oi)(!1),t}function M(e){let t=function(e){let t=o.useContext(f);return t||(0,i.Oi)(!1),t}(),n=t.matches[t.matches.length-1];return n.route.id||(0,i.Oi)(!1),n.route.id}const P={};(r||(r=n.t(o,2))).startTransition;function N(e){let{to:t,replace:n,state:r,relative:a}=e;p()||(0,i.Oi)(!1);let{future:s,static:u}=o.useContext(l),{matches:c}=o.useContext(f),{pathname:d}=g(),h=m(),v=(0,i.Gh)(t,(0,i.yD)(c,s.v7_relativeSplatPath),d,"path"===a),y=JSON.stringify(v);return o.useEffect((()=>h(JSON.parse(y),{replace:n,state:r,relative:a})),[h,y,a,n,r]),null}function I(e){(0,i.Oi)(!1)}function L(e){let{basename:t="/",children:n=null,location:r,navigationType:s=i.rc.Pop,navigator:u,static:f=!1,future:d}=e;p()&&(0,i.Oi)(!1);let h=t.replace(/^\/*/,"/"),g=o.useMemo((()=>({basename:h,navigator:u,static:f,future:a({v7_relativeSplatPath:!1},d)})),[h,d,u,f]);"string"===typeof r&&(r=(0,i.Rr)(r));let{pathname:v="/",search:y="",hash:m="",state:b=null,key:_="default"}=r,w=o.useMemo((()=>{let e=(0,i.pb)(v,h);return null==e?null:{location:{pathname:e,search:y,hash:m,state:b,key:_},navigationType:s}}),[h,v,y,m,b,_,s]);return null==w?null:o.createElement(l.Provider,{value:g},o.createElement(c.Provider,{children:n,value:w}))}function D(e){let{children:t,location:n}=e;return w(F(t),n)}new Promise((()=>{}));o.Component;function F(e,t){void 0===t&&(t=[]);let n=[];return o.Children.forEach(e,((e,r)=>{if(!o.isValidElement(e))return;let a=[...t,r];if(e.type===o.Fragment)return void n.push.apply(n,F(e.props.children,a));e.type!==I&&(0,i.Oi)(!1),e.props.index&&e.props.children&&(0,i.Oi)(!1);let s={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(s.children=F(e.props.children,a)),n.push(s)})),n}},12689:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(58168),o=n(96540),i=n(17531),a=n(52836),s=n(89379),u=n(45458),l=n(80045),c=n(53921),f=["allowCreateWhileLoading","createOptionPosition","formatCreateLabel","isValidNewOption","getNewOptionData","onCreateOption","options","onChange"],d=function(){var e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0,n=String(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toLowerCase(),r=String(t.getOptionValue(e)).toLowerCase(),o=String(t.getOptionLabel(e)).toLowerCase();return r===n||o===n},h={formatCreateLabel:function(e){return'Create "'.concat(e,'"')},isValidNewOption:function(e,t,n,r){return!(!e||t.some((function(t){return d(e,t,r)}))||n.some((function(t){return d(e,t,r)})))},getNewOptionData:function(e,t){return{label:t,value:e,__isNew__:!0}}};n(40961),n(27003);var p=(0,o.forwardRef)((function(e,t){var n=function(e){var t=e.allowCreateWhileLoading,n=void 0!==t&&t,r=e.createOptionPosition,a=void 0===r?"last":r,d=e.formatCreateLabel,p=void 0===d?h.formatCreateLabel:d,g=e.isValidNewOption,v=void 0===g?h.isValidNewOption:g,y=e.getNewOptionData,m=void 0===y?h.getNewOptionData:y,b=e.onCreateOption,_=e.options,w=void 0===_?[]:_,x=e.onChange,S=(0,l.A)(e,f),A=S.getOptionValue,E=void 0===A?i.g:A,C=S.getOptionLabel,R=void 0===C?i.b:C,O=S.inputValue,T=S.isLoading,k=S.isMulti,M=S.value,P=S.name,N=(0,o.useMemo)((function(){return v(O,(0,c.H)(M),w,{getOptionValue:E,getOptionLabel:R})?m(O,p(O)):void 0}),[p,m,R,E,O,v,w,M]),I=(0,o.useMemo)((function(){return!n&&T||!N?w:"first"===a?[N].concat((0,u.A)(w)):[].concat((0,u.A)(w),[N])}),[n,a,T,N,w]),L=(0,o.useCallback)((function(e,t){if("select-option"!==t.action)return x(e,t);var n=Array.isArray(e)?e:[e];if(n[n.length-1]!==N)x(e,t);else if(b)b(O);else{var r=m(O,O),o={action:"create-option",name:P,option:r};x((0,c.D)(k,[].concat((0,u.A)((0,c.H)(M)),[r]),r),o)}}),[m,O,k,P,N,b,x,M]);return(0,s.A)((0,s.A)({},S),{},{options:I,onChange:L})}((0,a.u)(e));return o.createElement(i.S,(0,r.A)({ref:t},n))}))},17531:(e,t,n)=>{"use strict";n.d(t,{S:()=>ge,b:()=>Z,g:()=>K});var r=n(58168),o=n(89379),i=n(23029),a=n(92901),s=n(85501),u=n(49640),l=n(45458),c=n(96540),f=n(53921),d=n(95819),h=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function p(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],o=t[n],!(r===o||h(r)&&h(o)))return!1;var r,o;return!0}var g=n(80045);for(var v={name:"7pg0cj-a11yText",styles:"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap"},y=function(e){return(0,d.Y)("span",(0,r.A)({css:v},e))},m={guidance:function(e){var t=e.isSearchable,n=e.isMulti,r=e.tabSelectsValue,o=e.context,i=e.isInitialFocus;switch(o){case"menu":return"Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu".concat(r?", press Tab to select the option and exit the menu":"",".");case"input":return i?"".concat(e["aria-label"]||"Select"," is focused ").concat(t?",type to refine list":"",", press Down to open the menu, ").concat(n?" press left to focus selected values":""):"";case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value";default:return""}},onChange:function(e){var t=e.action,n=e.label,r=void 0===n?"":n,o=e.labels,i=e.isDisabled;switch(t){case"deselect-option":case"pop-value":case"remove-value":return"option ".concat(r,", deselected.");case"clear":return"All selected options have been cleared.";case"initial-input-focus":return"option".concat(o.length>1?"s":""," ").concat(o.join(","),", selected.");case"select-option":return"option ".concat(r,i?" is disabled. Select another option.":", selected.");default:return""}},onFocus:function(e){var t=e.context,n=e.focused,r=e.options,o=e.label,i=void 0===o?"":o,a=e.selectValue,s=e.isDisabled,u=e.isSelected,l=e.isAppleDevice,c=function(e,t){return e&&e.length?"".concat(e.indexOf(t)+1," of ").concat(e.length):""};if("value"===t&&a)return"value ".concat(i," focused, ").concat(c(a,n),".");if("menu"===t&&l){var f=s?" disabled":"",d="".concat(u?" selected":"").concat(f);return"".concat(i).concat(d,", ").concat(c(r,n),".")}return""},onFilter:function(e){var t=e.inputValue,n=e.resultsMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}},b=function(e){var t=e.ariaSelection,n=e.focusedOption,r=e.focusedValue,i=e.focusableOptions,a=e.isFocused,s=e.selectValue,u=e.selectProps,l=e.id,f=e.isAppleDevice,h=u.ariaLiveMessages,p=u.getOptionLabel,g=u.inputValue,v=u.isMulti,b=u.isOptionDisabled,_=u.isSearchable,w=u.menuIsOpen,x=u.options,S=u.screenReaderStatus,A=u.tabSelectsValue,E=u.isLoading,C=u["aria-label"],R=u["aria-live"],O=(0,c.useMemo)((function(){return(0,o.A)((0,o.A)({},m),h||{})}),[h]),T=(0,c.useMemo)((function(){var e,n="";if(t&&O.onChange){var r=t.option,i=t.options,a=t.removedValue,u=t.removedValues,l=t.value,c=a||r||(e=l,Array.isArray(e)?null:e),f=c?p(c):"",d=i||u||void 0,h=d?d.map(p):[],g=(0,o.A)({isDisabled:c&&b(c,s),label:f,labels:h},t);n=O.onChange(g)}return n}),[t,O,b,s,p]),k=(0,c.useMemo)((function(){var e="",t=n||r,o=!!(n&&s&&s.includes(n));if(t&&O.onFocus){var a={focused:t,label:p(t),isDisabled:b(t,s),isSelected:o,options:i,context:t===n?"menu":"value",selectValue:s,isAppleDevice:f};e=O.onFocus(a)}return e}),[n,r,p,b,O,i,s,f]),M=(0,c.useMemo)((function(){var e="";if(w&&x.length&&!E&&O.onFilter){var t=S({count:i.length});e=O.onFilter({inputValue:g,resultsMessage:t})}return e}),[i,g,w,O,x,S,E]),P="initial-input-focus"===(null===t||void 0===t?void 0:t.action),N=(0,c.useMemo)((function(){var e="";if(O.guidance){var t=r?"value":w?"menu":"input";e=O.guidance({"aria-label":C,context:t,isDisabled:n&&b(n,s),isMulti:v,isSearchable:_,tabSelectsValue:A,isInitialFocus:P})}return e}),[C,n,r,v,b,_,w,O,s,A,P]),I=(0,d.Y)(c.Fragment,null,(0,d.Y)("span",{id:"aria-selection"},T),(0,d.Y)("span",{id:"aria-focused"},k),(0,d.Y)("span",{id:"aria-results"},M),(0,d.Y)("span",{id:"aria-guidance"},N));return(0,d.Y)(c.Fragment,null,(0,d.Y)(y,{id:l},P&&I),(0,d.Y)(y,{"aria-live":R,"aria-atomic":"false","aria-relevant":"additions text",role:"log"},a&&!P&&I))},_=[{base:"A",letters:"A\u24b6\uff21\xc0\xc1\xc2\u1ea6\u1ea4\u1eaa\u1ea8\xc3\u0100\u0102\u1eb0\u1eae\u1eb4\u1eb2\u0226\u01e0\xc4\u01de\u1ea2\xc5\u01fa\u01cd\u0200\u0202\u1ea0\u1eac\u1eb6\u1e00\u0104\u023a\u2c6f"},{base:"AA",letters:"\ua732"},{base:"AE",letters:"\xc6\u01fc\u01e2"},{base:"AO",letters:"\ua734"},{base:"AU",letters:"\ua736"},{base:"AV",letters:"\ua738\ua73a"},{base:"AY",letters:"\ua73c"},{base:"B",letters:"B\u24b7\uff22\u1e02\u1e04\u1e06\u0243\u0182\u0181"},{base:"C",letters:"C\u24b8\uff23\u0106\u0108\u010a\u010c\xc7\u1e08\u0187\u023b\ua73e"},{base:"D",letters:"D\u24b9\uff24\u1e0a\u010e\u1e0c\u1e10\u1e12\u1e0e\u0110\u018b\u018a\u0189\ua779"},{base:"DZ",letters:"\u01f1\u01c4"},{base:"Dz",letters:"\u01f2\u01c5"},{base:"E",letters:"E\u24ba\uff25\xc8\xc9\xca\u1ec0\u1ebe\u1ec4\u1ec2\u1ebc\u0112\u1e14\u1e16\u0114\u0116\xcb\u1eba\u011a\u0204\u0206\u1eb8\u1ec6\u0228\u1e1c\u0118\u1e18\u1e1a\u0190\u018e"},{base:"F",letters:"F\u24bb\uff26\u1e1e\u0191\ua77b"},{base:"G",letters:"G\u24bc\uff27\u01f4\u011c\u1e20\u011e\u0120\u01e6\u0122\u01e4\u0193\ua7a0\ua77d\ua77e"},{base:"H",letters:"H\u24bd\uff28\u0124\u1e22\u1e26\u021e\u1e24\u1e28\u1e2a\u0126\u2c67\u2c75\ua78d"},{base:"I",letters:"I\u24be\uff29\xcc\xcd\xce\u0128\u012a\u012c\u0130\xcf\u1e2e\u1ec8\u01cf\u0208\u020a\u1eca\u012e\u1e2c\u0197"},{base:"J",letters:"J\u24bf\uff2a\u0134\u0248"},{base:"K",letters:"K\u24c0\uff2b\u1e30\u01e8\u1e32\u0136\u1e34\u0198\u2c69\ua740\ua742\ua744\ua7a2"},{base:"L",letters:"L\u24c1\uff2c\u013f\u0139\u013d\u1e36\u1e38\u013b\u1e3c\u1e3a\u0141\u023d\u2c62\u2c60\ua748\ua746\ua780"},{base:"LJ",letters:"\u01c7"},{base:"Lj",letters:"\u01c8"},{base:"M",letters:"M\u24c2\uff2d\u1e3e\u1e40\u1e42\u2c6e\u019c"},{base:"N",letters:"N\u24c3\uff2e\u01f8\u0143\xd1\u1e44\u0147\u1e46\u0145\u1e4a\u1e48\u0220\u019d\ua790\ua7a4"},{base:"NJ",letters:"\u01ca"},{base:"Nj",letters:"\u01cb"},{base:"O",letters:"O\u24c4\uff2f\xd2\xd3\xd4\u1ed2\u1ed0\u1ed6\u1ed4\xd5\u1e4c\u022c\u1e4e\u014c\u1e50\u1e52\u014e\u022e\u0230\xd6\u022a\u1ece\u0150\u01d1\u020c\u020e\u01a0\u1edc\u1eda\u1ee0\u1ede\u1ee2\u1ecc\u1ed8\u01ea\u01ec\xd8\u01fe\u0186\u019f\ua74a\ua74c"},{base:"OI",letters:"\u01a2"},{base:"OO",letters:"\ua74e"},{base:"OU",letters:"\u0222"},{base:"P",letters:"P\u24c5\uff30\u1e54\u1e56\u01a4\u2c63\ua750\ua752\ua754"},{base:"Q",letters:"Q\u24c6\uff31\ua756\ua758\u024a"},{base:"R",letters:"R\u24c7\uff32\u0154\u1e58\u0158\u0210\u0212\u1e5a\u1e5c\u0156\u1e5e\u024c\u2c64\ua75a\ua7a6\ua782"},{base:"S",letters:"S\u24c8\uff33\u1e9e\u015a\u1e64\u015c\u1e60\u0160\u1e66\u1e62\u1e68\u0218\u015e\u2c7e\ua7a8\ua784"},{base:"T",letters:"T\u24c9\uff34\u1e6a\u0164\u1e6c\u021a\u0162\u1e70\u1e6e\u0166\u01ac\u01ae\u023e\ua786"},{base:"TZ",letters:"\ua728"},{base:"U",letters:"U\u24ca\uff35\xd9\xda\xdb\u0168\u1e78\u016a\u1e7a\u016c\xdc\u01db\u01d7\u01d5\u01d9\u1ee6\u016e\u0170\u01d3\u0214\u0216\u01af\u1eea\u1ee8\u1eee\u1eec\u1ef0\u1ee4\u1e72\u0172\u1e76\u1e74\u0244"},{base:"V",letters:"V\u24cb\uff36\u1e7c\u1e7e\u01b2\ua75e\u0245"},{base:"VY",letters:"\ua760"},{base:"W",letters:"W\u24cc\uff37\u1e80\u1e82\u0174\u1e86\u1e84\u1e88\u2c72"},{base:"X",letters:"X\u24cd\uff38\u1e8a\u1e8c"},{base:"Y",letters:"Y\u24ce\uff39\u1ef2\xdd\u0176\u1ef8\u0232\u1e8e\u0178\u1ef6\u1ef4\u01b3\u024e\u1efe"},{base:"Z",letters:"Z\u24cf\uff3a\u0179\u1e90\u017b\u017d\u1e92\u1e94\u01b5\u0224\u2c7f\u2c6b\ua762"},{base:"a",letters:"a\u24d0\uff41\u1e9a\xe0\xe1\xe2\u1ea7\u1ea5\u1eab\u1ea9\xe3\u0101\u0103\u1eb1\u1eaf\u1eb5\u1eb3\u0227\u01e1\xe4\u01df\u1ea3\xe5\u01fb\u01ce\u0201\u0203\u1ea1\u1ead\u1eb7\u1e01\u0105\u2c65\u0250"},{base:"aa",letters:"\ua733"},{base:"ae",letters:"\xe6\u01fd\u01e3"},{base:"ao",letters:"\ua735"},{base:"au",letters:"\ua737"},{base:"av",letters:"\ua739\ua73b"},{base:"ay",letters:"\ua73d"},{base:"b",letters:"b\u24d1\uff42\u1e03\u1e05\u1e07\u0180\u0183\u0253"},{base:"c",letters:"c\u24d2\uff43\u0107\u0109\u010b\u010d\xe7\u1e09\u0188\u023c\ua73f\u2184"},{base:"d",letters:"d\u24d3\uff44\u1e0b\u010f\u1e0d\u1e11\u1e13\u1e0f\u0111\u018c\u0256\u0257\ua77a"},{base:"dz",letters:"\u01f3\u01c6"},{base:"e",letters:"e\u24d4\uff45\xe8\xe9\xea\u1ec1\u1ebf\u1ec5\u1ec3\u1ebd\u0113\u1e15\u1e17\u0115\u0117\xeb\u1ebb\u011b\u0205\u0207\u1eb9\u1ec7\u0229\u1e1d\u0119\u1e19\u1e1b\u0247\u025b\u01dd"},{base:"f",letters:"f\u24d5\uff46\u1e1f\u0192\ua77c"},{base:"g",letters:"g\u24d6\uff47\u01f5\u011d\u1e21\u011f\u0121\u01e7\u0123\u01e5\u0260\ua7a1\u1d79\ua77f"},{base:"h",letters:"h\u24d7\uff48\u0125\u1e23\u1e27\u021f\u1e25\u1e29\u1e2b\u1e96\u0127\u2c68\u2c76\u0265"},{base:"hv",letters:"\u0195"},{base:"i",letters:"i\u24d8\uff49\xec\xed\xee\u0129\u012b\u012d\xef\u1e2f\u1ec9\u01d0\u0209\u020b\u1ecb\u012f\u1e2d\u0268\u0131"},{base:"j",letters:"j\u24d9\uff4a\u0135\u01f0\u0249"},{base:"k",letters:"k\u24da\uff4b\u1e31\u01e9\u1e33\u0137\u1e35\u0199\u2c6a\ua741\ua743\ua745\ua7a3"},{base:"l",letters:"l\u24db\uff4c\u0140\u013a\u013e\u1e37\u1e39\u013c\u1e3d\u1e3b\u017f\u0142\u019a\u026b\u2c61\ua749\ua781\ua747"},{base:"lj",letters:"\u01c9"},{base:"m",letters:"m\u24dc\uff4d\u1e3f\u1e41\u1e43\u0271\u026f"},{base:"n",letters:"n\u24dd\uff4e\u01f9\u0144\xf1\u1e45\u0148\u1e47\u0146\u1e4b\u1e49\u019e\u0272\u0149\ua791\ua7a5"},{base:"nj",letters:"\u01cc"},{base:"o",letters:"o\u24de\uff4f\xf2\xf3\xf4\u1ed3\u1ed1\u1ed7\u1ed5\xf5\u1e4d\u022d\u1e4f\u014d\u1e51\u1e53\u014f\u022f\u0231\xf6\u022b\u1ecf\u0151\u01d2\u020d\u020f\u01a1\u1edd\u1edb\u1ee1\u1edf\u1ee3\u1ecd\u1ed9\u01eb\u01ed\xf8\u01ff\u0254\ua74b\ua74d\u0275"},{base:"oi",letters:"\u01a3"},{base:"ou",letters:"\u0223"},{base:"oo",letters:"\ua74f"},{base:"p",letters:"p\u24df\uff50\u1e55\u1e57\u01a5\u1d7d\ua751\ua753\ua755"},{base:"q",letters:"q\u24e0\uff51\u024b\ua757\ua759"},{base:"r",letters:"r\u24e1\uff52\u0155\u1e59\u0159\u0211\u0213\u1e5b\u1e5d\u0157\u1e5f\u024d\u027d\ua75b\ua7a7\ua783"},{base:"s",letters:"s\u24e2\uff53\xdf\u015b\u1e65\u015d\u1e61\u0161\u1e67\u1e63\u1e69\u0219\u015f\u023f\ua7a9\ua785\u1e9b"},{base:"t",letters:"t\u24e3\uff54\u1e6b\u1e97\u0165\u1e6d\u021b\u0163\u1e71\u1e6f\u0167\u01ad\u0288\u2c66\ua787"},{base:"tz",letters:"\ua729"},{base:"u",letters:"u\u24e4\uff55\xf9\xfa\xfb\u0169\u1e79\u016b\u1e7b\u016d\xfc\u01dc\u01d8\u01d6\u01da\u1ee7\u016f\u0171\u01d4\u0215\u0217\u01b0\u1eeb\u1ee9\u1eef\u1eed\u1ef1\u1ee5\u1e73\u0173\u1e77\u1e75\u0289"},{base:"v",letters:"v\u24e5\uff56\u1e7d\u1e7f\u028b\ua75f\u028c"},{base:"vy",letters:"\ua761"},{base:"w",letters:"w\u24e6\uff57\u1e81\u1e83\u0175\u1e87\u1e85\u1e98\u1e89\u2c73"},{base:"x",letters:"x\u24e7\uff58\u1e8b\u1e8d"},{base:"y",letters:"y\u24e8\uff59\u1ef3\xfd\u0177\u1ef9\u0233\u1e8f\xff\u1ef7\u1e99\u1ef5\u01b4\u024f\u1eff"},{base:"z",letters:"z\u24e9\uff5a\u017a\u1e91\u017c\u017e\u1e93\u1e95\u01b6\u0225\u0240\u2c6c\ua763"}],w=new RegExp("["+_.map((function(e){return e.letters})).join("")+"]","g"),x={},S=0;S<_.length;S++)for(var A=_[S],E=0;E<A.letters.length;E++)x[A.letters[E]]=A.base;var C=function(e){return e.replace(w,(function(e){return x[e]}))},R=function(e,t){void 0===t&&(t=p);var n=null;function r(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;var i=e.apply(this,r);return n={lastResult:i,lastArgs:r,lastThis:this},i}return r.clear=function(){n=null},r}(C),O=function(e){return e.replace(/^\s+|\s+$/g,"")},T=function(e){return"".concat(e.label," ").concat(e.value)},k=["innerRef"];function M(e){var t=e.innerRef,n=(0,g.A)(e,k),o=(0,f.r)(n,"onExited","in","enter","exit","appear");return(0,d.Y)("input",(0,r.A)({ref:t},o,{css:(0,d.AH)({label:"dummyInput",background:0,border:0,caretColor:"transparent",fontSize:"inherit",gridArea:"1 / 1 / 2 / 3",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(.01)"},"","")}))}var P=function(e){e.cancelable&&e.preventDefault(),e.stopPropagation()};var N=["boxSizing","height","overflow","paddingRight","position"],I={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function L(e){e.preventDefault()}function D(e){e.stopPropagation()}function F(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function j(){return"ontouchstart"in window||navigator.maxTouchPoints}var U=!("undefined"===typeof window||!window.document||!window.document.createElement),z=0,B={capture:!1,passive:!1};var V=function(e){var t=e.target;return t.ownerDocument.activeElement&&t.ownerDocument.activeElement.blur()},H={name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"};function $(e){var t=e.children,n=e.lockEnabled,r=e.captureEnabled,o=function(e){var t=e.isEnabled,n=e.onBottomArrive,r=e.onBottomLeave,o=e.onTopArrive,i=e.onTopLeave,a=(0,c.useRef)(!1),s=(0,c.useRef)(!1),u=(0,c.useRef)(0),l=(0,c.useRef)(null),d=(0,c.useCallback)((function(e,t){if(null!==l.current){var u=l.current,c=u.scrollTop,f=u.scrollHeight,d=u.clientHeight,h=l.current,p=t>0,g=f-d-c,v=!1;g>t&&a.current&&(r&&r(e),a.current=!1),p&&s.current&&(i&&i(e),s.current=!1),p&&t>g?(n&&!a.current&&n(e),h.scrollTop=f,v=!0,a.current=!0):!p&&-t>c&&(o&&!s.current&&o(e),h.scrollTop=0,v=!0,s.current=!0),v&&P(e)}}),[n,r,o,i]),h=(0,c.useCallback)((function(e){d(e,e.deltaY)}),[d]),p=(0,c.useCallback)((function(e){u.current=e.changedTouches[0].clientY}),[]),g=(0,c.useCallback)((function(e){var t=u.current-e.changedTouches[0].clientY;d(e,t)}),[d]),v=(0,c.useCallback)((function(e){if(e){var t=!!f.s&&{passive:!1};e.addEventListener("wheel",h,t),e.addEventListener("touchstart",p,t),e.addEventListener("touchmove",g,t)}}),[g,p,h]),y=(0,c.useCallback)((function(e){e&&(e.removeEventListener("wheel",h,!1),e.removeEventListener("touchstart",p,!1),e.removeEventListener("touchmove",g,!1))}),[g,p,h]);return(0,c.useEffect)((function(){if(t){var e=l.current;return v(e),function(){y(e)}}}),[t,v,y]),function(e){l.current=e}}({isEnabled:void 0===r||r,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),i=function(e){var t=e.isEnabled,n=e.accountForScrollbars,r=void 0===n||n,o=(0,c.useRef)({}),i=(0,c.useRef)(null),a=(0,c.useCallback)((function(e){if(U){var t=document.body,n=t&&t.style;if(r&&N.forEach((function(e){var t=n&&n[e];o.current[e]=t})),r&&z<1){var i=parseInt(o.current.paddingRight,10)||0,a=document.body?document.body.clientWidth:0,s=window.innerWidth-a+i||0;Object.keys(I).forEach((function(e){var t=I[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(s,"px"))}t&&j()&&(t.addEventListener("touchmove",L,B),e&&(e.addEventListener("touchstart",F,B),e.addEventListener("touchmove",D,B))),z+=1}}),[r]),s=(0,c.useCallback)((function(e){if(U){var t=document.body,n=t&&t.style;z=Math.max(z-1,0),r&&z<1&&N.forEach((function(e){var t=o.current[e];n&&(n[e]=t)})),t&&j()&&(t.removeEventListener("touchmove",L,B),e&&(e.removeEventListener("touchstart",F,B),e.removeEventListener("touchmove",D,B)))}}),[r]);return(0,c.useEffect)((function(){if(t){var e=i.current;return a(e),function(){s(e)}}}),[t,a,s]),function(e){i.current=e}}({isEnabled:n});return(0,d.Y)(c.Fragment,null,n&&(0,d.Y)("div",{onClick:V,css:H}),t((function(e){o(e),i(e)})))}var W={name:"1a0ro4n-requiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"},G=function(e){var t=e.name,n=e.onFocus;return(0,d.Y)("input",{required:!0,name:t,tabIndex:-1,"aria-hidden":"true",onFocus:n,css:W,value:"",onChange:function(){}})};function q(e){var t;return"undefined"!==typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function Y(){return q(/^Mac/i)}function X(){return q(/^iPhone/i)||q(/^iPad/i)||Y()&&navigator.maxTouchPoints>1}var Z=function(e){return e.label},K=function(e){return e.value},Q={clearIndicator:f.a,container:f.b,control:f.d,dropdownIndicator:f.e,group:f.g,groupHeading:f.f,indicatorsContainer:f.i,indicatorSeparator:f.h,input:f.j,loadingIndicator:f.l,loadingMessage:f.k,menu:f.m,menuList:f.n,menuPortal:f.o,multiValue:f.p,multiValueLabel:f.q,multiValueRemove:f.t,noOptionsMessage:f.u,option:f.v,placeholder:f.w,singleValue:f.x,valueContainer:f.y};var J,ee={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},te={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:(0,f.z)(),captureMenuScroll:!(0,f.z)(),classNames:{},closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e,t){if(e.data.__isNew__)return!0;var n=(0,o.A)({ignoreCase:!0,ignoreAccents:!0,stringify:T,trim:!0,matchFrom:"any"},J),r=n.ignoreCase,i=n.ignoreAccents,a=n.stringify,s=n.trim,u=n.matchFrom,l=s?O(t):t,c=s?O(a(e)):a(e);return r&&(l=l.toLowerCase(),c=c.toLowerCase()),i&&(l=R(l),c=C(c)),"start"===u?c.substr(0,l.length)===l:c.indexOf(l)>-1},formatGroupLabel:function(e){return e.label},getOptionLabel:Z,getOptionValue:K,isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!(0,f.A)(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0,unstyled:!1};function ne(e,t,n,r){return{type:"option",data:t,isDisabled:ce(e,t,n),isSelected:fe(e,t,n),label:ue(e,t),value:le(e,t),index:r}}function re(e,t){return e.options.map((function(n,r){if("options"in n){var o=n.options.map((function(n,r){return ne(e,n,t,r)})).filter((function(t){return ae(e,t)}));return o.length>0?{type:"group",data:n,options:o,index:r}:void 0}var i=ne(e,n,t,r);return ae(e,i)?i:void 0})).filter(f.K)}function oe(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,(0,l.A)(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function ie(e,t){return e.reduce((function(e,n){return"group"===n.type?e.push.apply(e,(0,l.A)(n.options.map((function(e){return{data:e.data,id:"".concat(t,"-").concat(n.index,"-").concat(e.index)}})))):e.push({data:n.data,id:"".concat(t,"-").concat(n.index)}),e}),[])}function ae(e,t){var n=e.inputValue,r=void 0===n?"":n,o=t.data,i=t.isSelected,a=t.label,s=t.value;return(!he(e)||!i)&&de(e,{label:a,value:s,data:o},r)}var se=function(e,t){var n;return(null===(n=e.find((function(e){return e.data===t})))||void 0===n?void 0:n.id)||null},ue=function(e,t){return e.getOptionLabel(t)},le=function(e,t){return e.getOptionValue(t)};function ce(e,t,n){return"function"===typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function fe(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"===typeof e.isOptionSelected)return e.isOptionSelected(t,n);var r=le(e,t);return n.some((function(t){return le(e,t)===r}))}function de(e,t,n){return!e.filterOption||e.filterOption(t,n)}var he=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},pe=1,ge=function(e){(0,s.A)(n,e);var t=(0,u.A)(n);function n(e){var r;if((0,i.A)(this,n),(r=t.call(this,e)).state={ariaSelection:null,focusedOption:null,focusedOptionId:null,focusableOptionsWithIds:[],focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0,instancePrefix:""},r.blockOptionHover=!1,r.isComposing=!1,r.commonProps=void 0,r.initialTouchX=0,r.initialTouchY=0,r.openAfterFocus=!1,r.scrollToFocusedOptionOnUpdate=!1,r.userIsDragging=void 0,r.isAppleDevice=Y()||X(),r.controlRef=null,r.getControlRef=function(e){r.controlRef=e},r.focusedOptionRef=null,r.getFocusedOptionRef=function(e){r.focusedOptionRef=e},r.menuListRef=null,r.getMenuListRef=function(e){r.menuListRef=e},r.inputRef=null,r.getInputRef=function(e){r.inputRef=e},r.focus=r.focusInput,r.blur=r.blurInput,r.onChange=function(e,t){var n=r.props,o=n.onChange,i=n.name;t.name=i,r.ariaOnChange(e,t),o(e,t)},r.setValue=function(e,t,n){var o=r.props,i=o.closeMenuOnSelect,a=o.isMulti,s=o.inputValue;r.onInputChange("",{action:"set-value",prevInputValue:s}),i&&(r.setState({inputIsHiddenAfterUpdate:!a}),r.onMenuClose()),r.setState({clearFocusValueOnUpdate:!0}),r.onChange(e,{action:t,option:n})},r.selectOption=function(e){var t=r.props,n=t.blurInputOnSelect,o=t.isMulti,i=t.name,a=r.state.selectValue,s=o&&r.isOptionSelected(e,a),u=r.isOptionDisabled(e,a);if(s){var c=r.getOptionValue(e);r.setValue((0,f.B)(a.filter((function(e){return r.getOptionValue(e)!==c}))),"deselect-option",e)}else{if(u)return void r.ariaOnChange((0,f.C)(e),{action:"select-option",option:e,name:i});o?r.setValue((0,f.B)([].concat((0,l.A)(a),[e])),"select-option",e):r.setValue((0,f.C)(e),"select-option")}n&&r.blurInput()},r.removeValue=function(e){var t=r.props.isMulti,n=r.state.selectValue,o=r.getOptionValue(e),i=n.filter((function(e){return r.getOptionValue(e)!==o})),a=(0,f.D)(t,i,i[0]||null);r.onChange(a,{action:"remove-value",removedValue:e}),r.focusInput()},r.clearValue=function(){var e=r.state.selectValue;r.onChange((0,f.D)(r.props.isMulti,[],null),{action:"clear",removedValues:e})},r.popValue=function(){var e=r.props.isMulti,t=r.state.selectValue,n=t[t.length-1],o=t.slice(0,t.length-1),i=(0,f.D)(e,o,o[0]||null);r.onChange(i,{action:"pop-value",removedValue:n})},r.getFocusedOptionId=function(e){return se(r.state.focusableOptionsWithIds,e)},r.getFocusableOptionsWithIds=function(){return ie(re(r.props,r.state.selectValue),r.getElementId("option"))},r.getValue=function(){return r.state.selectValue},r.cx=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return f.E.apply(void 0,[r.props.classNamePrefix].concat(t))},r.getOptionLabel=function(e){return ue(r.props,e)},r.getOptionValue=function(e){return le(r.props,e)},r.getStyles=function(e,t){var n=r.props.unstyled,o=Q[e](t,n);o.boxSizing="border-box";var i=r.props.styles[e];return i?i(o,t):o},r.getClassNames=function(e,t){var n,o;return null===(n=(o=r.props.classNames)[e])||void 0===n?void 0:n.call(o,t)},r.getElementId=function(e){return"".concat(r.state.instancePrefix,"-").concat(e)},r.getComponents=function(){return(0,f.F)(r.props)},r.buildCategorizedOptions=function(){return re(r.props,r.state.selectValue)},r.getCategorizedOptions=function(){return r.props.menuIsOpen?r.buildCategorizedOptions():[]},r.buildFocusableOptions=function(){return oe(r.buildCategorizedOptions())},r.getFocusableOptions=function(){return r.props.menuIsOpen?r.buildFocusableOptions():[]},r.ariaOnChange=function(e,t){r.setState({ariaSelection:(0,o.A)({value:e},t)})},r.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),r.focusInput())},r.onMenuMouseMove=function(e){r.blockOptionHover=!1},r.onControlMouseDown=function(e){if(!e.defaultPrevented){var t=r.props.openMenuOnClick;r.state.isFocused?r.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&r.onMenuClose():t&&r.openMenu("first"):(t&&(r.openAfterFocus=!0),r.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()}},r.onDropdownIndicatorMouseDown=function(e){if((!e||"mousedown"!==e.type||0===e.button)&&!r.props.isDisabled){var t=r.props,n=t.isMulti,o=t.menuIsOpen;r.focusInput(),o?(r.setState({inputIsHiddenAfterUpdate:!n}),r.onMenuClose()):r.openMenu("first"),e.preventDefault()}},r.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(r.clearValue(),e.preventDefault(),r.openAfterFocus=!1,"touchend"===e.type?r.focusInput():setTimeout((function(){return r.focusInput()})))},r.onScroll=function(e){"boolean"===typeof r.props.closeMenuOnScroll?e.target instanceof HTMLElement&&(0,f.G)(e.target)&&r.props.onMenuClose():"function"===typeof r.props.closeMenuOnScroll&&r.props.closeMenuOnScroll(e)&&r.props.onMenuClose()},r.onCompositionStart=function(){r.isComposing=!0},r.onCompositionEnd=function(){r.isComposing=!1},r.onTouchStart=function(e){var t=e.touches,n=t&&t.item(0);n&&(r.initialTouchX=n.clientX,r.initialTouchY=n.clientY,r.userIsDragging=!1)},r.onTouchMove=function(e){var t=e.touches,n=t&&t.item(0);if(n){var o=Math.abs(n.clientX-r.initialTouchX),i=Math.abs(n.clientY-r.initialTouchY);r.userIsDragging=o>5||i>5}},r.onTouchEnd=function(e){r.userIsDragging||(r.controlRef&&!r.controlRef.contains(e.target)&&r.menuListRef&&!r.menuListRef.contains(e.target)&&r.blurInput(),r.initialTouchX=0,r.initialTouchY=0)},r.onControlTouchEnd=function(e){r.userIsDragging||r.onControlMouseDown(e)},r.onClearIndicatorTouchEnd=function(e){r.userIsDragging||r.onClearIndicatorMouseDown(e)},r.onDropdownIndicatorTouchEnd=function(e){r.userIsDragging||r.onDropdownIndicatorMouseDown(e)},r.handleInputChange=function(e){var t=r.props.inputValue,n=e.currentTarget.value;r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange(n,{action:"input-change",prevInputValue:t}),r.props.menuIsOpen||r.onMenuOpen()},r.onInputFocus=function(e){r.props.onFocus&&r.props.onFocus(e),r.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(r.openAfterFocus||r.props.openMenuOnFocus)&&r.openMenu("first"),r.openAfterFocus=!1},r.onInputBlur=function(e){var t=r.props.inputValue;r.menuListRef&&r.menuListRef.contains(document.activeElement)?r.inputRef.focus():(r.props.onBlur&&r.props.onBlur(e),r.onInputChange("",{action:"input-blur",prevInputValue:t}),r.onMenuClose(),r.setState({focusedValue:null,isFocused:!1}))},r.onOptionHover=function(e){if(!r.blockOptionHover&&r.state.focusedOption!==e){var t=r.getFocusableOptions().indexOf(e);r.setState({focusedOption:e,focusedOptionId:t>-1?r.getFocusedOptionId(e):null})}},r.shouldHideSelectedOptions=function(){return he(r.props)},r.onValueInputFocus=function(e){e.preventDefault(),e.stopPropagation(),r.focus()},r.onKeyDown=function(e){var t=r.props,n=t.isMulti,o=t.backspaceRemovesValue,i=t.escapeClearsValue,a=t.inputValue,s=t.isClearable,u=t.isDisabled,l=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,d=t.openMenuOnFocus,h=r.state,p=h.focusedOption,g=h.focusedValue,v=h.selectValue;if(!u&&("function"!==typeof c||(c(e),!e.defaultPrevented))){switch(r.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||a)return;r.focusValue("previous");break;case"ArrowRight":if(!n||a)return;r.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(g)r.removeValue(g);else{if(!o)return;n?r.popValue():s&&r.clearValue()}break;case"Tab":if(r.isComposing)return;if(e.shiftKey||!l||!f||!p||d&&r.isOptionSelected(p,v))return;r.selectOption(p);break;case"Enter":if(229===e.keyCode)break;if(l){if(!p)return;if(r.isComposing)return;r.selectOption(p);break}return;case"Escape":l?(r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange("",{action:"menu-close",prevInputValue:a}),r.onMenuClose()):s&&i&&r.clearValue();break;case" ":if(a)return;if(!l){r.openMenu("first");break}if(!p)return;r.selectOption(p);break;case"ArrowUp":l?r.focusOption("up"):r.openMenu("last");break;case"ArrowDown":l?r.focusOption("down"):r.openMenu("first");break;case"PageUp":if(!l)return;r.focusOption("pageup");break;case"PageDown":if(!l)return;r.focusOption("pagedown");break;case"Home":if(!l)return;r.focusOption("first");break;case"End":if(!l)return;r.focusOption("last");break;default:return}e.preventDefault()}},r.state.instancePrefix="react-select-"+(r.props.instanceId||++pe),r.state.selectValue=(0,f.H)(e.value),e.menuIsOpen&&r.state.selectValue.length){var a=r.getFocusableOptionsWithIds(),s=r.buildFocusableOptions(),u=s.indexOf(r.state.selectValue[0]);r.state.focusableOptionsWithIds=a,r.state.focusedOption=s[u],r.state.focusedOptionId=se(a,s[u])}return r}return(0,a.A)(n,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput(),this.props.menuIsOpen&&this.state.focusedOption&&this.menuListRef&&this.focusedOptionRef&&(0,f.I)(this.menuListRef,this.focusedOptionRef)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isDisabled,r=t.menuIsOpen,o=this.state.isFocused;(o&&!n&&e.isDisabled||o&&r&&!e.menuIsOpen)&&this.focusInput(),o&&n&&!e.isDisabled?this.setState({isFocused:!1},this.onMenuClose):o||n||!e.isDisabled||this.inputRef!==document.activeElement||this.setState({isFocused:!0}),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&((0,f.I)(this.menuListRef,this.focusedOptionRef),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){this.onInputChange("",{action:"menu-close",prevInputValue:this.props.inputValue}),this.props.onMenuClose()}},{key:"onInputChange",value:function(e,t){this.props.onInputChange(e,t)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(e){var t=this,n=this.state,r=n.selectValue,o=n.isFocused,i=this.buildFocusableOptions(),a="first"===e?0:i.length-1;if(!this.props.isMulti){var s=i.indexOf(r[0]);s>-1&&(a=s)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:i[a],focusedOptionId:this.getFocusedOptionId(i[a])},(function(){return t.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t=this.state,n=t.selectValue,r=t.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var o=n.indexOf(r);r||(o=-1);var i=n.length-1,a=-1;if(n.length){switch(e){case"previous":a=0===o?0:-1===o?i:o-1;break;case"next":o>-1&&o<i&&(a=o+1)}this.setState({inputIsHidden:-1!==a,focusedValue:n[a]})}}}},{key:"focusOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state.focusedOption,r=this.getFocusableOptions();if(r.length){var o=0,i=r.indexOf(n);n||(i=-1),"up"===e?o=i>0?i-1:r.length-1:"down"===e?o=(i+1)%r.length:"pageup"===e?(o=i-t)<0&&(o=0):"pagedown"===e?(o=i+t)>r.length-1&&(o=r.length-1):"last"===e&&(o=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[o],focusedValue:null,focusedOptionId:this.getFocusedOptionId(r[o])})}}},{key:"getTheme",value:function(){return this.props.theme?"function"===typeof this.props.theme?this.props.theme(ee):(0,o.A)((0,o.A)({},ee),this.props.theme):ee}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getClassNames,o=this.getValue,i=this.selectOption,a=this.setValue,s=this.props,u=s.isMulti,l=s.isRtl,c=s.options;return{clearValue:e,cx:t,getStyles:n,getClassNames:r,getValue:o,hasValue:this.hasValue(),isMulti:u,isRtl:l,options:c,selectOption:i,selectProps:s,setValue:a,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return ce(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return fe(this.props,e,t)}},{key:"filterOption",value:function(e,t){return de(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"===typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,i=e.inputId,a=e.inputValue,s=e.tabIndex,u=e.form,l=e.menuIsOpen,d=e.required,h=this.getComponents().Input,p=this.state,g=p.inputIsHidden,v=p.ariaSelection,y=this.commonProps,m=i||this.getElementId("input"),b=(0,o.A)((0,o.A)((0,o.A)({"aria-autocomplete":"list","aria-expanded":l,"aria-haspopup":!0,"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-required":d,role:"combobox","aria-activedescendant":this.isAppleDevice?void 0:this.state.focusedOptionId||""},l&&{"aria-controls":this.getElementId("listbox")}),!n&&{"aria-readonly":!0}),this.hasValue()?"initial-input-focus"===(null===v||void 0===v?void 0:v.action)&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return n?c.createElement(h,(0,r.A)({},y,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:m,innerRef:this.getInputRef,isDisabled:t,isHidden:g,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:s,form:u,type:"text",value:a},b)):c.createElement(M,(0,r.A)({id:m,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:f.J,onFocus:this.onInputFocus,disabled:t,tabIndex:s,inputMode:"none",form:u,value:""},b))}},{key:"renderPlaceholderOrValue",value:function(){var e=this,t=this.getComponents(),n=t.MultiValue,o=t.MultiValueContainer,i=t.MultiValueLabel,a=t.MultiValueRemove,s=t.SingleValue,u=t.Placeholder,l=this.commonProps,f=this.props,d=f.controlShouldRenderValue,h=f.isDisabled,p=f.isMulti,g=f.inputValue,v=f.placeholder,y=this.state,m=y.selectValue,b=y.focusedValue,_=y.isFocused;if(!this.hasValue()||!d)return g?null:c.createElement(u,(0,r.A)({},l,{key:"placeholder",isDisabled:h,isFocused:_,innerProps:{id:this.getElementId("placeholder")}}),v);if(p)return m.map((function(t,s){var u=t===b,f="".concat(e.getOptionLabel(t),"-").concat(e.getOptionValue(t));return c.createElement(n,(0,r.A)({},l,{components:{Container:o,Label:i,Remove:a},isFocused:u,isDisabled:h,key:f,index:s,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault()}},data:t}),e.formatOptionLabel(t,"value"))}));if(g)return null;var w=m[0];return c.createElement(s,(0,r.A)({},l,{data:w,isDisabled:h}),this.formatOptionLabel(w,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.getComponents().ClearIndicator,t=this.commonProps,n=this.props,o=n.isDisabled,i=n.isLoading,a=this.state.isFocused;if(!this.isClearable()||!e||o||!this.hasValue()||i)return null;var s={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return c.createElement(e,(0,r.A)({},t,{innerProps:s,isFocused:a}))}},{key:"renderLoadingIndicator",value:function(){var e=this.getComponents().LoadingIndicator,t=this.commonProps,n=this.props,o=n.isDisabled,i=n.isLoading,a=this.state.isFocused;if(!e||!i)return null;return c.createElement(e,(0,r.A)({},t,{innerProps:{"aria-hidden":"true"},isDisabled:o,isFocused:a}))}},{key:"renderIndicatorSeparator",value:function(){var e=this.getComponents(),t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var o=this.commonProps,i=this.props.isDisabled,a=this.state.isFocused;return c.createElement(n,(0,r.A)({},o,{isDisabled:i,isFocused:a}))}},{key:"renderDropdownIndicator",value:function(){var e=this.getComponents().DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,o=this.state.isFocused,i={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return c.createElement(e,(0,r.A)({},t,{innerProps:i,isDisabled:n,isFocused:o}))}},{key:"renderMenu",value:function(){var e=this,t=this.getComponents(),n=t.Group,o=t.GroupHeading,i=t.Menu,a=t.MenuList,s=t.MenuPortal,u=t.LoadingMessage,l=t.NoOptionsMessage,d=t.Option,h=this.commonProps,p=this.state.focusedOption,g=this.props,v=g.captureMenuScroll,y=g.inputValue,m=g.isLoading,b=g.loadingMessage,_=g.minMenuHeight,w=g.maxMenuHeight,x=g.menuIsOpen,S=g.menuPlacement,A=g.menuPosition,E=g.menuPortalTarget,C=g.menuShouldBlockScroll,R=g.menuShouldScrollIntoView,O=g.noOptionsMessage,T=g.onMenuScrollToTop,k=g.onMenuScrollToBottom;if(!x)return null;var M,P=function(t,n){var o=t.type,i=t.data,a=t.isDisabled,s=t.isSelected,u=t.label,l=t.value,f=p===i,g=a?void 0:function(){return e.onOptionHover(i)},v=a?void 0:function(){return e.selectOption(i)},y="".concat(e.getElementId("option"),"-").concat(n),m={id:y,onClick:v,onMouseMove:g,onMouseOver:g,tabIndex:-1,role:"option","aria-selected":e.isAppleDevice?void 0:s};return c.createElement(d,(0,r.A)({},h,{innerProps:m,data:i,isDisabled:a,isSelected:s,key:y,label:u,type:o,value:l,isFocused:f,innerRef:f?e.getFocusedOptionRef:void 0}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())M=this.getCategorizedOptions().map((function(t){if("group"===t.type){var i=t.data,a=t.options,s=t.index,u="".concat(e.getElementId("group"),"-").concat(s),l="".concat(u,"-heading");return c.createElement(n,(0,r.A)({},h,{key:u,data:i,options:a,Heading:o,headingProps:{id:l,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return P(e,"".concat(s,"-").concat(e.index))})))}if("option"===t.type)return P(t,"".concat(t.index))}));else if(m){var N=b({inputValue:y});if(null===N)return null;M=c.createElement(u,h,N)}else{var I=O({inputValue:y});if(null===I)return null;M=c.createElement(l,h,I)}var L={minMenuHeight:_,maxMenuHeight:w,menuPlacement:S,menuPosition:A,menuShouldScrollIntoView:R},D=c.createElement(f.M,(0,r.A)({},h,L),(function(t){var n=t.ref,o=t.placerProps,s=o.placement,u=o.maxHeight;return c.createElement(i,(0,r.A)({},h,L,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove},isLoading:m,placement:s}),c.createElement($,{captureEnabled:v,onTopArrive:T,onBottomArrive:k,lockEnabled:C},(function(t){return c.createElement(a,(0,r.A)({},h,{innerRef:function(n){e.getMenuListRef(n),t(n)},innerProps:{role:"listbox","aria-multiselectable":h.isMulti,id:e.getElementId("listbox")},isLoading:m,maxHeight:u,focusedOption:p}),M)})))}));return E||"fixed"===A?c.createElement(s,(0,r.A)({},h,{appendTo:E,controlElement:this.controlRef,menuPlacement:S,menuPosition:A}),D):D}},{key:"renderFormField",value:function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,o=t.isMulti,i=t.name,a=t.required,s=this.state.selectValue;if(a&&!this.hasValue()&&!r)return c.createElement(G,{name:i,onFocus:this.onValueInputFocus});if(i&&!r){if(o){if(n){var u=s.map((function(t){return e.getOptionValue(t)})).join(n);return c.createElement("input",{name:i,type:"hidden",value:u})}var l=s.length>0?s.map((function(t,n){return c.createElement("input",{key:"i-".concat(n),name:i,type:"hidden",value:e.getOptionValue(t)})})):c.createElement("input",{name:i,type:"hidden",value:""});return c.createElement("div",null,l)}var f=s[0]?this.getOptionValue(s[0]):"";return c.createElement("input",{name:i,type:"hidden",value:f})}}},{key:"renderLiveRegion",value:function(){var e=this.commonProps,t=this.state,n=t.ariaSelection,o=t.focusedOption,i=t.focusedValue,a=t.isFocused,s=t.selectValue,u=this.getFocusableOptions();return c.createElement(b,(0,r.A)({},e,{id:this.getElementId("live-region"),ariaSelection:n,focusedOption:o,focusedValue:i,isFocused:a,selectValue:s,focusableOptions:u,isAppleDevice:this.isAppleDevice}))}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,o=e.SelectContainer,i=e.ValueContainer,a=this.props,s=a.className,u=a.id,l=a.isDisabled,f=a.menuIsOpen,d=this.state.isFocused,h=this.commonProps=this.getCommonProps();return c.createElement(o,(0,r.A)({},h,{className:s,innerProps:{id:u,onKeyDown:this.onKeyDown},isDisabled:l,isFocused:d}),this.renderLiveRegion(),c.createElement(t,(0,r.A)({},h,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:l,isFocused:d,menuIsOpen:f}),c.createElement(i,(0,r.A)({},h,{isDisabled:l}),this.renderPlaceholderOrValue(),this.renderInput()),c.createElement(n,(0,r.A)({},h,{isDisabled:l}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.clearFocusValueOnUpdate,i=t.inputIsHiddenAfterUpdate,a=t.ariaSelection,s=t.isFocused,u=t.prevWasFocused,l=t.instancePrefix,c=e.options,d=e.value,h=e.menuIsOpen,p=e.inputValue,g=e.isMulti,v=(0,f.H)(d),y={};if(n&&(d!==n.value||c!==n.options||h!==n.menuIsOpen||p!==n.inputValue)){var m=h?function(e,t){return oe(re(e,t))}(e,v):[],b=h?ie(re(e,v),"".concat(l,"-option")):[],_=r?function(e,t){var n=e.focusedValue,r=e.selectValue.indexOf(n);if(r>-1){if(t.indexOf(n)>-1)return n;if(r<t.length)return t[r]}return null}(t,v):null,w=function(e,t){var n=e.focusedOption;return n&&t.indexOf(n)>-1?n:t[0]}(t,m);y={selectValue:v,focusedOption:w,focusedOptionId:se(b,w),focusableOptionsWithIds:b,focusedValue:_,clearFocusValueOnUpdate:!1}}var x=null!=i&&e!==n?{inputIsHidden:i,inputIsHiddenAfterUpdate:void 0}:{},S=a,A=s&&u;return s&&!A&&(S={value:(0,f.D)(g,v,v[0]||null),options:v,action:"initial-input-focus"},A=!u),"initial-input-focus"===(null===a||void 0===a?void 0:a.action)&&(S=null),(0,o.A)((0,o.A)((0,o.A)({},y),x),{},{prevProps:e,ariaSelection:S,prevWasFocused:A})}}]),n}(c.Component);ge.defaultProps=te},53921:(e,t,n)=>{"use strict";n.d(t,{A:()=>Z,B:()=>oe,C:()=>re,D:()=>ne,E:()=>z,F:()=>ot,G:()=>$,H:()=>B,I:()=>Y,J:()=>j,K:()=>te,M:()=>he,a:()=>Ne,b:()=>_e,c:()=>rt,d:()=>je,e:()=>Pe,f:()=>Ve,g:()=>Be,h:()=>Ie,i:()=>xe,j:()=>We,k:()=>me,l:()=>De,m:()=>fe,n:()=>ge,o:()=>be,p:()=>Xe,q:()=>Ze,r:()=>ie,s:()=>ee,t:()=>Ke,u:()=>ye,v:()=>et,w:()=>tt,x:()=>nt,y:()=>we,z:()=>X});var r=n(89379),o=n(58168),i=n(95819),a=n(80296),s=n(80045),u=n(82284);var l=n(64467),c=n(96540),f=n(40961);function d(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}Math.min,Math.max;const h=["top","right","bottom","left"];h.reduce(((e,t)=>e.concat(t,t+"-start",t+"-end")),[]);function p(e){var t;return(null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function g(e){return p(e).getComputedStyle(e)}function v(e){return e instanceof p(e).Node}function y(e){return v(e)?(e.nodeName||"").toLowerCase():""}let m;function b(){if(m)return m;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(m=e.brands.map((e=>e.brand+"/"+e.version)).join(" "),m):navigator.userAgent}function _(e){return e instanceof p(e).HTMLElement}function w(e){return e instanceof p(e).Element}function x(e){return"undefined"!=typeof ShadowRoot&&(e instanceof p(e).ShadowRoot||e instanceof ShadowRoot)}function S(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=g(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function A(){return/^((?!chrome|android).)*safari/i.test(b())}function E(e){return["html","body","#document"].includes(y(e))}Math.min,Math.max;const C=Math.round;function R(e){const t=g(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=_(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=C(n)!==i||C(r)!==a;return s&&(n=i,r=a),{width:n,height:r,fallback:s}}function O(e){return w(e)?e:e.contextElement}const T={x:1,y:1};function k(e){const t=O(e);if(!_(t))return T;const n=t.getBoundingClientRect(),{width:r,height:o,fallback:i}=R(t);let a=(i?C(n.width):n.width)/r,s=(i?C(n.height):n.height)/o;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}function M(e,t,n,r){var o,i;void 0===t&&(t=!1),void 0===n&&(n=!1);const a=e.getBoundingClientRect(),s=O(e);let u=T;t&&(r?w(r)&&(u=k(r)):u=k(e));const l=s?p(s):window,c=A()&&n;let f=(a.left+(c&&(null==(o=l.visualViewport)?void 0:o.offsetLeft)||0))/u.x,h=(a.top+(c&&(null==(i=l.visualViewport)?void 0:i.offsetTop)||0))/u.y,g=a.width/u.x,v=a.height/u.y;if(s){const e=p(s),t=r&&w(r)?p(r):r;let n=e.frameElement;for(;n&&r&&t!==e;){const e=k(n),t=n.getBoundingClientRect(),r=getComputedStyle(n);t.x+=(n.clientLeft+parseFloat(r.paddingLeft))*e.x,t.y+=(n.clientTop+parseFloat(r.paddingTop))*e.y,f*=e.x,h*=e.y,g*=e.x,v*=e.y,f+=t.x,h+=t.y,n=p(n).frameElement}}return d({width:g,height:v,x:f,y:h})}function P(e){return((v(e)?e.ownerDocument:e.document)||window.document).documentElement}function N(e){if("html"===y(e))return e;const t=e.assignedSlot||e.parentNode||x(e)&&e.host||P(e);return x(t)?t.host:t}function I(e){const t=N(e);return E(t)?t.ownerDocument.body:_(t)&&S(t)?t:I(t)}function L(e,t){var n;void 0===t&&(t=[]);const r=I(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=p(r);return o?t.concat(i,i.visualViewport||[],S(r)?r:[]):t.concat(r,L(r))}var D=n(27003),F=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],j=function(){};function U(e,t){return t?"-"===t[0]?e+t:e+"__"+t:e}function z(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];var i=[].concat(r);if(t&&e)for(var a in t)t.hasOwnProperty(a)&&t[a]&&i.push("".concat(U(e,a)));return i.filter((function(e){return e})).map((function(e){return String(e).trim()})).join(" ")}var B=function(e){return t=e,Array.isArray(t)?e.filter(Boolean):"object"===(0,u.A)(e)&&null!==e?[e]:[];var t},V=function(e){e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme;var t=(0,s.A)(e,F);return(0,r.A)({},t)},H=function(e,t,n){var r=e.cx,o=e.getStyles,i=e.getClassNames,a=e.className;return{css:o(t,e),className:r(null!==n&&void 0!==n?n:{},i(t,e),a)}};function $(e){return[document.documentElement,document.body,window].indexOf(e)>-1}function W(e){return $(e)?window.pageYOffset:e.scrollTop}function G(e,t){$(e)?window.scrollTo(0,t):e.scrollTop=t}function q(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:j,o=W(e),i=t-o,a=0;!function t(){var s=function(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}(a+=10,o,i,n);G(e,s),a<n?window.requestAnimationFrame(t):r(e)}()}function Y(e,t){var n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=t.offsetHeight/3;r.bottom+o>n.bottom?G(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+o,e.scrollHeight)):r.top-o<n.top&&G(e,Math.max(t.offsetTop-o,0))}function X(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}}function Z(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}var K=!1,Q={get passive(){return K=!0}},J="undefined"!==typeof window?window:{};J.addEventListener&&J.removeEventListener&&(J.addEventListener("p",j,Q),J.removeEventListener("p",j,!1));var ee=K;function te(e){return null!=e}function ne(e,t,n){return e?t:n}function re(e){return e}function oe(e){return e}var ie=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Object.entries(e).filter((function(e){var t=(0,a.A)(e,1)[0];return!n.includes(t)})).reduce((function(e,t){var n=(0,a.A)(t,2),r=n[0],o=n[1];return e[r]=o,e}),{})},ae=["children","innerProps"],se=["children","innerProps"];function ue(e){var t=e.maxHeight,n=e.menuEl,r=e.minHeight,o=e.placement,i=e.shouldScroll,a=e.isFixedPosition,s=e.controlHeight,u=function(e){var t=getComputedStyle(e),n="absolute"===t.position,r=/(auto|scroll)/;if("fixed"===t.position)return document.documentElement;for(var o=e;o=o.parentElement;)if(t=getComputedStyle(o),(!n||"static"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return o;return document.documentElement}(n),l={placement:"bottom",maxHeight:t};if(!n||!n.offsetParent)return l;var c,f=u.getBoundingClientRect().height,d=n.getBoundingClientRect(),h=d.bottom,p=d.height,g=d.top,v=n.offsetParent.getBoundingClientRect().top,y=a?window.innerHeight:$(c=u)?window.innerHeight:c.clientHeight,m=W(u),b=parseInt(getComputedStyle(n).marginBottom,10),_=parseInt(getComputedStyle(n).marginTop,10),w=v-_,x=y-g,S=w+m,A=f-m-g,E=h-y+m+b,C=m+g-_,R=160;switch(o){case"auto":case"bottom":if(x>=p)return{placement:"bottom",maxHeight:t};if(A>=p&&!a)return i&&q(u,E,R),{placement:"bottom",maxHeight:t};if(!a&&A>=r||a&&x>=r)return i&&q(u,E,R),{placement:"bottom",maxHeight:a?x-b:A-b};if("auto"===o||a){var O=t,T=a?w:S;return T>=r&&(O=Math.min(T-b-s,t)),{placement:"top",maxHeight:O}}if("bottom"===o)return i&&G(u,E),{placement:"bottom",maxHeight:t};break;case"top":if(w>=p)return{placement:"top",maxHeight:t};if(S>=p&&!a)return i&&q(u,C,R),{placement:"top",maxHeight:t};if(!a&&S>=r||a&&w>=r){var k=t;return(!a&&S>=r||a&&w>=r)&&(k=a?w-_:S-_),i&&q(u,C,R),{placement:"top",maxHeight:k}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return l}var le,ce=function(e){return"auto"===e?"bottom":e},fe=function(e,t){var n,o=e.placement,i=e.theme,a=i.borderRadius,s=i.spacing,u=i.colors;return(0,r.A)((n={label:"menu"},(0,l.A)(n,function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(o),"100%"),(0,l.A)(n,"position","absolute"),(0,l.A)(n,"width","100%"),(0,l.A)(n,"zIndex",1),n),t?{}:{backgroundColor:u.neutral0,borderRadius:a,boxShadow:"0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",marginBottom:s.menuGutter,marginTop:s.menuGutter})},de=(0,c.createContext)(null),he=function(e){var t=e.children,n=e.minMenuHeight,o=e.maxMenuHeight,i=e.menuPlacement,s=e.menuPosition,u=e.menuShouldScrollIntoView,l=e.theme,f=((0,c.useContext)(de)||{}).setPortalPlacement,d=(0,c.useRef)(null),h=(0,c.useState)(o),p=(0,a.A)(h,2),g=p[0],v=p[1],y=(0,c.useState)(null),m=(0,a.A)(y,2),b=m[0],_=m[1],w=l.spacing.controlHeight;return(0,D.A)((function(){var e=d.current;if(e){var t="fixed"===s,r=ue({maxHeight:o,menuEl:e,minHeight:n,placement:i,shouldScroll:u&&!t,isFixedPosition:t,controlHeight:w});v(r.maxHeight),_(r.placement),null===f||void 0===f||f(r.placement)}}),[o,i,s,u,n,f,w]),t({ref:d,placerProps:(0,r.A)((0,r.A)({},e),{},{placement:b||ce(i),maxHeight:g})})},pe=function(e){var t=e.children,n=e.innerRef,r=e.innerProps;return(0,i.Y)("div",(0,o.A)({},H(e,"menu",{menu:!0}),{ref:n},r),t)},ge=function(e,t){var n=e.maxHeight,o=e.theme.spacing.baseUnit;return(0,r.A)({maxHeight:n,overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},t?{}:{paddingBottom:o,paddingTop:o})},ve=function(e,t){var n=e.theme,o=n.spacing.baseUnit,i=n.colors;return(0,r.A)({textAlign:"center"},t?{}:{color:i.neutral40,padding:"".concat(2*o,"px ").concat(3*o,"px")})},ye=ve,me=ve,be=function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},_e=function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":void 0,pointerEvents:t?"none":void 0,position:"relative"}},we=function(e,t){var n=e.theme.spacing,o=e.isMulti,i=e.hasValue,a=e.selectProps.controlShouldRenderValue;return(0,r.A)({alignItems:"center",display:o&&i&&a?"flex":"grid",flex:1,flexWrap:"wrap",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"},t?{}:{padding:"".concat(n.baseUnit/2,"px ").concat(2*n.baseUnit,"px")})},xe=function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},Se=["size"],Ae=["innerProps","isRtl","size"];var Ee,Ce,Re={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},Oe=function(e){var t=e.size,n=(0,s.A)(e,Se);return(0,i.Y)("svg",(0,o.A)({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:Re},n))},Te=function(e){return(0,i.Y)(Oe,(0,o.A)({size:20},e),(0,i.Y)("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},ke=function(e){return(0,i.Y)(Oe,(0,o.A)({size:20},e),(0,i.Y)("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},Me=function(e,t){var n=e.isFocused,o=e.theme,i=o.spacing.baseUnit,a=o.colors;return(0,r.A)({label:"indicatorContainer",display:"flex",transition:"color 150ms"},t?{}:{color:n?a.neutral60:a.neutral20,padding:2*i,":hover":{color:n?a.neutral80:a.neutral40}})},Pe=Me,Ne=Me,Ie=function(e,t){var n=e.isDisabled,o=e.theme,i=o.spacing.baseUnit,a=o.colors;return(0,r.A)({label:"indicatorSeparator",alignSelf:"stretch",width:1},t?{}:{backgroundColor:n?a.neutral10:a.neutral20,marginBottom:2*i,marginTop:2*i})},Le=(0,i.i7)(le||(Ee=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],Ce||(Ce=Ee.slice(0)),le=Object.freeze(Object.defineProperties(Ee,{raw:{value:Object.freeze(Ce)}})))),De=function(e,t){var n=e.isFocused,o=e.size,i=e.theme,a=i.colors,s=i.spacing.baseUnit;return(0,r.A)({label:"loadingIndicator",display:"flex",transition:"color 150ms",alignSelf:"center",fontSize:o,lineHeight:1,marginRight:o,textAlign:"center",verticalAlign:"middle"},t?{}:{color:n?a.neutral60:a.neutral20,padding:2*s})},Fe=function(e){var t=e.delay,n=e.offset;return(0,i.Y)("span",{css:(0,i.AH)({animation:"".concat(Le," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},je=function(e,t){var n=e.isDisabled,o=e.isFocused,i=e.theme,a=i.colors,s=i.borderRadius,u=i.spacing;return(0,r.A)({label:"control",alignItems:"center",cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:u.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms"},t?{}:{backgroundColor:n?a.neutral5:a.neutral0,borderColor:n?a.neutral10:o?a.primary:a.neutral20,borderRadius:s,borderStyle:"solid",borderWidth:1,boxShadow:o?"0 0 0 1px ".concat(a.primary):void 0,"&:hover":{borderColor:o?a.primary:a.neutral30}})},Ue=function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,a=e.innerRef,s=e.innerProps,u=e.menuIsOpen;return(0,i.Y)("div",(0,o.A)({ref:a},H(e,"control",{control:!0,"control--is-disabled":n,"control--is-focused":r,"control--menu-is-open":u}),s,{"aria-disabled":n||void 0}),t)},ze=["data"],Be=function(e,t){var n=e.theme.spacing;return t?{}:{paddingBottom:2*n.baseUnit,paddingTop:2*n.baseUnit}},Ve=function(e,t){var n=e.theme,o=n.colors,i=n.spacing;return(0,r.A)({label:"group",cursor:"default",display:"block"},t?{}:{color:o.neutral40,fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:3*i.baseUnit,paddingRight:3*i.baseUnit,textTransform:"uppercase"})},He=function(e){var t=e.children,n=e.cx,r=e.getStyles,a=e.getClassNames,s=e.Heading,u=e.headingProps,l=e.innerProps,c=e.label,f=e.theme,d=e.selectProps;return(0,i.Y)("div",(0,o.A)({},H(e,"group",{group:!0}),l),(0,i.Y)(s,(0,o.A)({},u,{selectProps:d,theme:f,getStyles:r,getClassNames:a,cx:n}),c),(0,i.Y)("div",null,t))},$e=["innerRef","isDisabled","isHidden","inputClassName"],We=function(e,t){var n=e.isDisabled,o=e.value,i=e.theme,a=i.spacing,s=i.colors;return(0,r.A)((0,r.A)({visibility:n?"hidden":"visible",transform:o?"translateZ(0)":""},qe),t?{}:{margin:a.baseUnit/2,paddingBottom:a.baseUnit/2,paddingTop:a.baseUnit/2,color:s.neutral80})},Ge={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},qe={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content","&:after":(0,r.A)({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},Ge)},Ye=function(e){return(0,r.A)({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},Ge)},Xe=function(e,t){var n=e.theme,o=n.spacing,i=n.borderRadius,a=n.colors;return(0,r.A)({label:"multiValue",display:"flex",minWidth:0},t?{}:{backgroundColor:a.neutral10,borderRadius:i/2,margin:o.baseUnit/2})},Ze=function(e,t){var n=e.theme,o=n.borderRadius,i=n.colors,a=e.cropWithEllipsis;return(0,r.A)({overflow:"hidden",textOverflow:a||void 0===a?"ellipsis":void 0,whiteSpace:"nowrap"},t?{}:{borderRadius:o/2,color:i.neutral80,fontSize:"85%",padding:3,paddingLeft:6})},Ke=function(e,t){var n=e.theme,o=n.spacing,i=n.borderRadius,a=n.colors,s=e.isFocused;return(0,r.A)({alignItems:"center",display:"flex"},t?{}:{borderRadius:i/2,backgroundColor:s?a.dangerLight:void 0,paddingLeft:o.baseUnit,paddingRight:o.baseUnit,":hover":{backgroundColor:a.dangerLight,color:a.danger}})},Qe=function(e){var t=e.children,n=e.innerProps;return(0,i.Y)("div",n,t)};var Je=function(e){var t=e.children,n=e.components,o=e.data,a=e.innerProps,s=e.isDisabled,u=e.removeProps,l=e.selectProps,c=n.Container,f=n.Label,d=n.Remove;return(0,i.Y)(c,{data:o,innerProps:(0,r.A)((0,r.A)({},H(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":s})),a),selectProps:l},(0,i.Y)(f,{data:o,innerProps:(0,r.A)({},H(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:l},t),(0,i.Y)(d,{data:o,innerProps:(0,r.A)((0,r.A)({},H(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(t||"option")},u),selectProps:l}))},et=function(e,t){var n=e.isDisabled,o=e.isFocused,i=e.isSelected,a=e.theme,s=a.spacing,u=a.colors;return(0,r.A)({label:"option",cursor:"default",display:"block",fontSize:"inherit",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)"},t?{}:{backgroundColor:i?u.primary:o?u.primary25:"transparent",color:n?u.neutral20:i?u.neutral0:"inherit",padding:"".concat(2*s.baseUnit,"px ").concat(3*s.baseUnit,"px"),":active":{backgroundColor:n?void 0:i?u.primary:u.primary50}})},tt=function(e,t){var n=e.theme,o=n.spacing,i=n.colors;return(0,r.A)({label:"placeholder",gridArea:"1 / 1 / 2 / 3"},t?{}:{color:i.neutral50,marginLeft:o.baseUnit/2,marginRight:o.baseUnit/2})},nt=function(e,t){var n=e.isDisabled,o=e.theme,i=o.spacing,a=o.colors;return(0,r.A)({label:"singleValue",gridArea:"1 / 1 / 2 / 3",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},t?{}:{color:n?a.neutral40:a.neutral80,marginLeft:i.baseUnit/2,marginRight:i.baseUnit/2})},rt={ClearIndicator:function(e){var t=e.children,n=e.innerProps;return(0,i.Y)("div",(0,o.A)({},H(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),t||(0,i.Y)(Te,null))},Control:Ue,DropdownIndicator:function(e){var t=e.children,n=e.innerProps;return(0,i.Y)("div",(0,o.A)({},H(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),t||(0,i.Y)(ke,null))},DownChevron:ke,CrossIcon:Te,Group:He,GroupHeading:function(e){var t=V(e);t.data;var n=(0,s.A)(t,ze);return(0,i.Y)("div",(0,o.A)({},H(e,"groupHeading",{"group-heading":!0}),n))},IndicatorsContainer:function(e){var t=e.children,n=e.innerProps;return(0,i.Y)("div",(0,o.A)({},H(e,"indicatorsContainer",{indicators:!0}),n),t)},IndicatorSeparator:function(e){var t=e.innerProps;return(0,i.Y)("span",(0,o.A)({},t,H(e,"indicatorSeparator",{"indicator-separator":!0})))},Input:function(e){var t=e.cx,n=e.value,r=V(e),a=r.innerRef,u=r.isDisabled,l=r.isHidden,c=r.inputClassName,f=(0,s.A)(r,$e);return(0,i.Y)("div",(0,o.A)({},H(e,"input",{"input-container":!0}),{"data-value":n||""}),(0,i.Y)("input",(0,o.A)({className:t({input:!0},c),ref:a,style:Ye(l),disabled:u},f)))},LoadingIndicator:function(e){var t=e.innerProps,n=e.isRtl,a=e.size,u=void 0===a?4:a,l=(0,s.A)(e,Ae);return(0,i.Y)("div",(0,o.A)({},H((0,r.A)((0,r.A)({},l),{},{innerProps:t,isRtl:n,size:u}),"loadingIndicator",{indicator:!0,"loading-indicator":!0}),t),(0,i.Y)(Fe,{delay:0,offset:n}),(0,i.Y)(Fe,{delay:160,offset:!0}),(0,i.Y)(Fe,{delay:320,offset:!n}))},Menu:pe,MenuList:function(e){var t=e.children,n=e.innerProps,r=e.innerRef,a=e.isMulti;return(0,i.Y)("div",(0,o.A)({},H(e,"menuList",{"menu-list":!0,"menu-list--is-multi":a}),{ref:r},n),t)},MenuPortal:function(e){var t=e.appendTo,n=e.children,s=e.controlElement,u=e.innerProps,l=e.menuPlacement,d=e.menuPosition,h=(0,c.useRef)(null),p=(0,c.useRef)(null),g=(0,c.useState)(ce(l)),v=(0,a.A)(g,2),y=v[0],m=v[1],b=(0,c.useMemo)((function(){return{setPortalPlacement:m}}),[]),_=(0,c.useState)(null),x=(0,a.A)(_,2),S=x[0],A=x[1],E=(0,c.useCallback)((function(){if(s){var e=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(s),t="fixed"===d?0:window.pageYOffset,n=e[y]+t;n===(null===S||void 0===S?void 0:S.offset)&&e.left===(null===S||void 0===S?void 0:S.rect.left)&&e.width===(null===S||void 0===S?void 0:S.rect.width)||A({offset:n,rect:e})}}),[s,d,y,null===S||void 0===S?void 0:S.offset,null===S||void 0===S?void 0:S.rect.left,null===S||void 0===S?void 0:S.rect.width]);(0,D.A)((function(){E()}),[E]);var C=(0,c.useCallback)((function(){"function"===typeof p.current&&(p.current(),p.current=null),s&&h.current&&(p.current=function(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:s=!1}=r,u=o||i?[...w(e)?L(e):e.contextElement?L(e.contextElement):[],...L(t)]:[];u.forEach((e=>{const t=!w(e)&&e.toString().includes("V");!o||s&&!t||e.addEventListener("scroll",n,{passive:!0}),i&&e.addEventListener("resize",n)}));let l,c=null;a&&(c=new ResizeObserver((()=>{n()})),w(e)&&!s&&c.observe(e),w(e)||!e.contextElement||s||c.observe(e.contextElement),c.observe(t));let f=s?M(e):null;return s&&function t(){const r=M(e);!f||r.x===f.x&&r.y===f.y&&r.width===f.width&&r.height===f.height||n(),f=r,l=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{o&&e.removeEventListener("scroll",n),i&&e.removeEventListener("resize",n)})),null==(e=c)||e.disconnect(),c=null,s&&cancelAnimationFrame(l)}}(s,h.current,E,{elementResize:"ResizeObserver"in window}))}),[s,E]);(0,D.A)((function(){C()}),[C]);var R=(0,c.useCallback)((function(e){h.current=e,C()}),[C]);if(!t&&"fixed"!==d||!S)return null;var O=(0,i.Y)("div",(0,o.A)({ref:R},H((0,r.A)((0,r.A)({},e),{},{offset:S.offset,position:d,rect:S.rect}),"menuPortal",{"menu-portal":!0}),u),n);return(0,i.Y)(de.Provider,{value:b},t?(0,f.createPortal)(O,t):O)},LoadingMessage:function(e){var t=e.children,n=void 0===t?"Loading...":t,a=e.innerProps,u=(0,s.A)(e,se);return(0,i.Y)("div",(0,o.A)({},H((0,r.A)((0,r.A)({},u),{},{children:n,innerProps:a}),"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),a),n)},NoOptionsMessage:function(e){var t=e.children,n=void 0===t?"No options":t,a=e.innerProps,u=(0,s.A)(e,ae);return(0,i.Y)("div",(0,o.A)({},H((0,r.A)((0,r.A)({},u),{},{children:n,innerProps:a}),"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),a),n)},MultiValue:Je,MultiValueContainer:Qe,MultiValueLabel:Qe,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return(0,i.Y)("div",(0,o.A)({role:"button"},n),t||(0,i.Y)(Te,{size:14}))},Option:function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,a=e.isSelected,s=e.innerRef,u=e.innerProps;return(0,i.Y)("div",(0,o.A)({},H(e,"option",{option:!0,"option--is-disabled":n,"option--is-focused":r,"option--is-selected":a}),{ref:s,"aria-disabled":n},u),t)},Placeholder:function(e){var t=e.children,n=e.innerProps;return(0,i.Y)("div",(0,o.A)({},H(e,"placeholder",{placeholder:!0}),n),t)},SelectContainer:function(e){var t=e.children,n=e.innerProps,r=e.isDisabled,a=e.isRtl;return(0,i.Y)("div",(0,o.A)({},H(e,"container",{"--is-disabled":r,"--is-rtl":a}),n),t)},SingleValue:function(e){var t=e.children,n=e.isDisabled,r=e.innerProps;return(0,i.Y)("div",(0,o.A)({},H(e,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),r),t)},ValueContainer:function(e){var t=e.children,n=e.innerProps,r=e.isMulti,a=e.hasValue;return(0,i.Y)("div",(0,o.A)({},H(e,"valueContainer",{"value-container":!0,"value-container--is-multi":r,"value-container--has-value":a}),n),t)}},ot=function(e){return(0,r.A)((0,r.A)({},rt),e.components)}},46005:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s});var r=n(52836),o=n(58168),i=n(96540),a=n(17531),s=(n(84300),n(40961),n(27003),(0,i.forwardRef)((function(e,t){var n=(0,r.u)(e);return i.createElement(a.S,(0,o.A)({ref:t},n))})))},52836:(e,t,n)=>{"use strict";n.d(t,{u:()=>u});var r=n(89379),o=n(80296),i=n(80045),a=n(96540),s=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"];function u(e){var t=e.defaultInputValue,n=void 0===t?"":t,u=e.defaultMenuIsOpen,l=void 0!==u&&u,c=e.defaultValue,f=void 0===c?null:c,d=e.inputValue,h=e.menuIsOpen,p=e.onChange,g=e.onInputChange,v=e.onMenuClose,y=e.onMenuOpen,m=e.value,b=(0,i.A)(e,s),_=(0,a.useState)(void 0!==d?d:n),w=(0,o.A)(_,2),x=w[0],S=w[1],A=(0,a.useState)(void 0!==h?h:l),E=(0,o.A)(A,2),C=E[0],R=E[1],O=(0,a.useState)(void 0!==m?m:f),T=(0,o.A)(O,2),k=T[0],M=T[1],P=(0,a.useCallback)((function(e,t){"function"===typeof p&&p(e,t),M(e)}),[p]),N=(0,a.useCallback)((function(e,t){var n;"function"===typeof g&&(n=g(e,t)),S(void 0!==n?n:e)}),[g]),I=(0,a.useCallback)((function(){"function"===typeof y&&y(),R(!0)}),[y]),L=(0,a.useCallback)((function(){"function"===typeof v&&v(),R(!1)}),[v]),D=void 0!==d?d:x,F=void 0!==h?h:C,j=void 0!==m?m:k;return(0,r.A)((0,r.A)({},b),{},{inputValue:D,menuIsOpen:F,onChange:P,onInputChange:N,onMenuClose:L,onMenuOpen:I,value:j})}},13674:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>v});var r=n(98587),o=n(77387),i=n(96540),a=n(40961);const s=!1,u=i.createContext(null);var l="unmounted",c="exited",f="entering",d="entered",h="exiting",p=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o=c,r.appearStatus=f):o=d:o=t.unmountOnExit||t.mountOnEnter?l:c,r.state={status:o},r.nextCallback=null,r}(0,o.A)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===l?{status:c}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==f&&n!==d&&(t=f):n!==f&&n!==d||(t=h)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===f){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this);n&&function(e){e.scrollTop}(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===c&&this.setState({status:l})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[a.findDOMNode(this),r],i=o[0],u=o[1],l=this.getTimeouts(),c=r?l.appear:l.enter;!e&&!n||s?this.safeSetState({status:d},(function(){t.props.onEntered(i)})):(this.props.onEnter(i,u),this.safeSetState({status:f},(function(){t.props.onEntering(i,u),t.onTransitionEnd(c,(function(){t.safeSetState({status:d},(function(){t.props.onEntered(i,u)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:a.findDOMNode(this);t&&!s?(this.props.onExit(r),this.safeSetState({status:h},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:c},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:c},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],s=o[1];this.props.addEndListener(i,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===l)return null;var t=this.props,n=t.children,o=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,r.A)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return i.createElement(u.Provider,{value:null},"function"===typeof n?n(e,o):i.cloneElement(i.Children.only(n),o))},t}(i.Component);function g(){}p.contextType=u,p.propTypes={},p.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:g,onEntering:g,onEntered:g,onExit:g,onExiting:g,onExited:g},p.UNMOUNTED=l,p.EXITED=c,p.ENTERING=f,p.ENTERED=d,p.EXITING=h;const v=p},15287:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),u=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),h=Symbol.iterator;var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}function m(){}function b(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=y.prototype;var _=b.prototype=new m;_.constructor=b,g(_,y.prototype),_.isPureReactComponent=!0;var w=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},A={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var o,i={},a=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)x.call(t,o)&&!A.hasOwnProperty(o)&&(i[o]=t[o]);var u=arguments.length-2;if(1===u)i.children=r;else if(1<u){for(var l=Array(u),c=0;c<u;c++)l[c]=arguments[c+2];i.children=l}if(e&&e.defaultProps)for(o in u=e.defaultProps)void 0===i[o]&&(i[o]=u[o]);return{$$typeof:n,type:e,key:a,ref:s,props:i,_owner:S.current}}function C(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var R=/\/+/g;function O(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,o,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var u=!1;if(null===e)u=!0;else switch(s){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case n:case r:u=!0}}if(u)return a=a(u=e),e=""===i?"."+O(u,0):i,w(a)?(o="",null!=e&&(o=e.replace(R,"$&/")+"/"),T(a,t,o,"",(function(e){return e}))):null!=a&&(C(a)&&(a=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,o+(!a.key||u&&u.key===a.key?"":(""+a.key).replace(R,"$&/")+"/")+e)),t.push(a)),1;if(u=0,i=""===i?".":i+":",w(e))for(var l=0;l<e.length;l++){var c=i+O(s=e[l],l);u+=T(s,t,o,c,a)}else if(c=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=h&&e[h]||e["@@iterator"])?e:null}(e),"function"===typeof c)for(e=c.call(e),l=0;!(s=e.next()).done;)u+=T(s=s.value,t,o,c=i+O(s,l++),a);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return u}function k(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function M(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},N={transition:null},I={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:N,ReactCurrentOwner:S};t.Children={map:k,forEach:function(e,t,n){k(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return k(e,(function(){t++})),t},toArray:function(e){return k(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=y,t.Fragment=o,t.Profiler=a,t.PureComponent=b,t.StrictMode=i,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=g({},e.props),i=e.key,a=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,s=S.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(l in t)x.call(t,l)&&!A.hasOwnProperty(l)&&(o[l]=void 0===t[l]&&void 0!==u?u[l]:t[l])}var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){u=Array(l);for(var c=0;c<l;c++)u[c]=arguments[c+2];o.children=u}return{$$typeof:n,type:e.type,key:i,ref:a,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:u,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:M}},t.memo=function(e,t){return{$$typeof:f,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return P.current.useTransition()},t.version="18.2.0"},96540:(e,t,n)=>{"use strict";e.exports=n(15287)},47444:(e,t,n)=>{"use strict";n.d(t,{E0:()=>bs,Iz:()=>hs,K0:()=>ps,L4:()=>ys,RH:()=>_s,Zs:()=>ws,bi:()=>cs,eU:()=>fs,gD:()=>ds,lZ:()=>ms,vc:()=>gs,xf:()=>vs});var r=n(96540),o=n(40961);var i=function(e){const t=new Error(e);if(void 0===t.stack)try{throw t}catch(n){}return t};var a=function(e){return!!e&&"function"===typeof e.then};var s=function(e,t){if(null!=e)return e;throw i(null!==t&&void 0!==t?t:"Got unexpected null or undefined")};function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class l{getValue(){throw i("BaseLoadable")}toPromise(){throw i("BaseLoadable")}valueMaybe(){throw i("BaseLoadable")}valueOrThrow(){throw i(`Loadable expected value, but in "${this.state}" state`)}promiseMaybe(){throw i("BaseLoadable")}promiseOrThrow(){throw i(`Loadable expected promise, but in "${this.state}" state`)}errorMaybe(){throw i("BaseLoadable")}errorOrThrow(){throw i(`Loadable expected error, but in "${this.state}" state`)}is(e){return e.state===this.state&&e.contents===this.contents}map(e){throw i("BaseLoadable")}}class c extends l{constructor(e){super(),u(this,"state","hasValue"),u(this,"contents",void 0),this.contents=e}getValue(){return this.contents}toPromise(){return Promise.resolve(this.contents)}valueMaybe(){return this.contents}valueOrThrow(){return this.contents}promiseMaybe(){}errorMaybe(){}map(e){try{const t=e(this.contents);return a(t)?g(t):m(t)?t:h(t)}catch(t){return a(t)?g(t.next((()=>this.map(e)))):p(t)}}}class f extends l{constructor(e){super(),u(this,"state","hasError"),u(this,"contents",void 0),this.contents=e}getValue(){throw this.contents}toPromise(){return Promise.reject(this.contents)}valueMaybe(){}promiseMaybe(){}errorMaybe(){return this.contents}errorOrThrow(){return this.contents}map(e){return this}}class d extends l{constructor(e){super(),u(this,"state","loading"),u(this,"contents",void 0),this.contents=e}getValue(){throw this.contents}toPromise(){return this.contents}valueMaybe(){}promiseMaybe(){return this.contents}promiseOrThrow(){return this.contents}errorMaybe(){}map(e){return g(this.contents.then((t=>{const n=e(t);if(m(n)){const e=n;switch(e.state){case"hasValue":case"loading":return e.contents;case"hasError":throw e.contents}}return n})).catch((t=>{if(a(t))return t.then((()=>this.map(e).contents));throw t})))}}function h(e){return Object.freeze(new c(e))}function p(e){return Object.freeze(new f(e))}function g(e){return Object.freeze(new d(e))}function v(){return Object.freeze(new d(new Promise((()=>{}))))}function y(e){const t=function(e){return e.every((e=>"hasValue"===e.state))?h(e.map((e=>e.contents))):e.some((e=>"hasError"===e.state))?p(s(e.find((e=>"hasError"===e.state)),"Invalid loadable passed to loadableAll").contents):g(Promise.all(e.map((e=>e.contents))))}((Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((t=>e[t]))).map((e=>m(e)?e:a(e)?g(e):h(e))));return Array.isArray(e)?t:t.map((t=>Object.getOwnPropertyNames(e).reduce(((e,n,r)=>({...e,[n]:t[r]})),{})))}function m(e){return e instanceof l}const b={of:e=>a(e)?g(e):m(e)?e:h(e),error:e=>p(e),loading:()=>v(),all:y,isLoadable:m};var _={loadableWithValue:h,loadableWithError:p,loadableWithPromise:g,loadableLoading:v,loadableAll:y,isLoadable:m,RecoilLoadable:b},w=_.loadableWithValue,x=_.loadableWithError,S=_.loadableWithPromise,A=_.loadableLoading,E=_.loadableAll,C=_.isLoadable,R=_.RecoilLoadable,O=Object.freeze({__proto__:null,loadableWithValue:w,loadableWithError:x,loadableWithPromise:S,loadableLoading:A,loadableAll:E,isLoadable:C,RecoilLoadable:R});const T={RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED:!0,RECOIL_GKS_ENABLED:new Set(["recoil_hamt_2020","recoil_sync_external_store","recoil_suppress_rerender_in_callback","recoil_memory_managament_2020"])};!function(){var e;"undefined"!==typeof process&&null!=(null===(e=process)||void 0===e?void 0:e.env)&&(function(e,t){var n,r;const o=null===(n=process.env[e])||void 0===n||null===(r=n.toLowerCase())||void 0===r?void 0:r.trim();if(null==o||""===o)return;if(!["true","false"].includes(o))throw i(`process.env.${e} value must be 'true', 'false', or empty: ${o}`);t("true"===o)}("RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED",(e=>{T.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=e})),function(e,t){var n;const r=null===(n=process.env[e])||void 0===n?void 0:n.trim();null!=r&&""!==r&&t(r.split(/\s*,\s*|\s+/))}("RECOIL_GKS_ENABLED",(e=>{e.forEach((e=>{T.RECOIL_GKS_ENABLED.add(e)}))})))}();var k=T;function M(e){return k.RECOIL_GKS_ENABLED.has(e)}M.setPass=e=>{k.RECOIL_GKS_ENABLED.add(e)},M.setFail=e=>{k.RECOIL_GKS_ENABLED.delete(e)},M.clear=()=>{k.RECOIL_GKS_ENABLED.clear()};var P=M;var N,I,L,D=function(e,t,{error:n}={}){return null};const F=null!==(N=r.createMutableSource)&&void 0!==N?N:r.unstable_createMutableSource,j=null!==(I=r.useMutableSource)&&void 0!==I?I:r.unstable_useMutableSource,U=null!==(L=r.useSyncExternalStore)&&void 0!==L?L:r.unstable_useSyncExternalStore;let z=!1;var B={createMutableSource:F,useMutableSource:j,useSyncExternalStore:U,currentRendererSupportsUseSyncExternalStore:function(){var e;const{ReactCurrentDispatcher:t,ReactCurrentOwner:n}=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,o=null!=(null!==(e=null===t||void 0===t?void 0:t.current)&&void 0!==e?e:n.currentDispatcher).useSyncExternalStore;return!U||o||z||(z=!0,D("A React renderer without React 18+ API support is being used with React 18+.")),o},reactMode:function(){return P("recoil_transition_support")?{mode:"TRANSITION_SUPPORT",early:!0,concurrent:!0}:P("recoil_sync_external_store")&&null!=U?{mode:"SYNC_EXTERNAL_STORE",early:!0,concurrent:!1}:P("recoil_mutable_source")&&null!=j&&"undefined"!==typeof window&&!window.$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE?P("recoil_suppress_rerender_in_callback")?{mode:"MUTABLE_SOURCE",early:!0,concurrent:!0}:{mode:"MUTABLE_SOURCE",early:!1,concurrent:!1}:P("recoil_suppress_rerender_in_callback")?{mode:"LEGACY",early:!0,concurrent:!1}:{mode:"LEGACY",early:!1,concurrent:!1}},isFastRefreshEnabled:function(){return!1}};class V{constructor(e){u(this,"key",void 0),this.key=e}toJSON(){return{key:this.key}}}class H extends V{}class $ extends V{}var W={AbstractRecoilValue:V,RecoilState:H,RecoilValueReadOnly:$,isRecoilValue:function(e){return e instanceof H||e instanceof $}},G=W.AbstractRecoilValue,q=W.RecoilState,Y=W.RecoilValueReadOnly,X=W.isRecoilValue,Z=Object.freeze({__proto__:null,AbstractRecoilValue:G,RecoilState:q,RecoilValueReadOnly:Y,isRecoilValue:X});var K=function(e,...t){0};var Q=function(e,t){return function*(){let n=0;for(const r of e)yield t(r,n++)}()};const{isFastRefreshEnabled:J}=B;class ee{}const te=new ee,ne=new Map,re=new Map;class oe extends Error{}const ie=new Map;function ae(e){return ie.get(e)}var se={nodes:ne,recoilValues:re,registerNode:function(e){k.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED&&function(e){if(ne.has(e)){const t=`Duplicate atom key "${e}". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.`;console.warn(t)}}(e.key),ne.set(e.key,e);const t=null==e.set?new Z.RecoilValueReadOnly(e.key):new Z.RecoilState(e.key);return re.set(e.key,t),t},getNode:function(e){const t=ne.get(e);if(null==t)throw new oe(`Missing definition for RecoilValue: "${e}""`);return t},getNodeMaybe:function(e){return ne.get(e)},deleteNodeConfigIfPossible:function(e){var t;if(!P("recoil_memory_managament_2020"))return;const n=ne.get(e);var r;null!==n&&void 0!==n&&null!==(t=n.shouldDeleteConfigOnRelease)&&void 0!==t&&t.call(n)&&(ne.delete(e),null===(r=ae(e))||void 0===r||r(),ie.delete(e))},setConfigDeletionHandler:function(e,t){P("recoil_memory_managament_2020")&&(void 0===t?ie.delete(e):ie.set(e,t))},getConfigDeletionHandler:ae,recoilValuesForKeys:function(e){return Q(e,(e=>s(re.get(e))))},NodeMissingError:oe,DefaultValue:ee,DEFAULT_VALUE:te};var ue={enqueueExecution:function(e,t){t()}};var le,ce,fe=(le=function(e){var t="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n={},r=Math.pow(2,5),o=r-1,i=r/2,a=r/4,s={},u=function(e){return function(){return e}},l=n.hash=function(e){var n="undefined"===typeof e?"undefined":t(e);if("number"===n)return e;"string"!==n&&(e+="");for(var r=0,o=0,i=e.length;o<i;++o)r=(r<<5)-r+e.charCodeAt(o)|0;return r},c=function(e,t){return t>>>e&o},f=function(e){return 1<<e},d=function(e,t){return n=e&t-1,n=(n=(858993459&(n-=n>>1&1431655765))+(n>>2&858993459))+(n>>4)&252645135,127&(n+=n>>8)+(n>>16);var n},h=function(e,t,n,r){var o=r;if(!e){var i=r.length;o=new Array(i);for(var a=0;a<i;++a)o[a]=r[a]}return o[t]=n,o},p=function(e,t,n){var r=n.length-1,o=0,i=0,a=n;if(e)o=i=t;else for(a=new Array(r);o<t;)a[i++]=n[o++];for(++o;o<=r;)a[i++]=n[o++];return e&&(a.length=r),a},g={__hamt_isEmpty:!0},v=function(e){return e===g||e&&e.__hamt_isEmpty},y=function(e,t,n,r){return{type:1,edit:e,hash:t,key:n,value:r,_modify:S}},m=function(e,t,n){return{type:2,edit:e,hash:t,children:n,_modify:A}},b=function(e,t,n){return{type:3,edit:e,mask:t,children:n,_modify:E}},_=function(e,t,n){return{type:4,edit:e,size:t,children:n,_modify:C}},w=function e(t,n,r,o,i,a){if(r===i)return m(t,r,[a,o]);var s=c(n,r),u=c(n,i);return b(t,f(s)|f(u),s===u?[e(t,n+5,r,o,i,a)]:s<u?[o,a]:[a,o])},x=function(e,t){return e===t.edit},S=function(e,t,n,r,o,i,a){if(t(i,this.key)){var u=r(this.value);return u===this.value?this:u===s?(--a.value,g):x(e,this)?(this.value=u,this):y(e,o,i,u)}var l=r();return l===s?this:(++a.value,w(e,n,this.hash,this,o,y(e,o,i,l)))},A=function(e,t,n,r,o,i,a){if(o===this.hash){var u=function(e,t,n,r,o,i,a,u){for(var l=o.length,c=0;c<l;++c){var f=o[c];if(n(a,f.key)){var d=f.value,g=i(d);return g===d?o:g===s?(--u.value,p(e,c,o)):h(e,c,y(t,r,a,g),o)}}var v=i();return v===s?o:(++u.value,h(e,l,y(t,r,a,v),o))}(x(e,this),e,t,this.hash,this.children,r,i,a);return u===this.children?this:u.length>1?m(e,this.hash,u):u[0]}var l=r();return l===s?this:(++a.value,w(e,n,this.hash,this,o,y(e,o,i,l)))},E=function(e,t,n,r,o,a,s){var u=this.mask,l=this.children,y=c(n,o),m=f(y),w=d(u,m),S=u&m,A=S?l[w]:g,E=A._modify(e,t,n+5,r,o,a,s);if(A===E)return this;var C=x(e,this),R=u,O=void 0;if(S&&v(E)){if(!(R&=~m))return g;if(l.length<=2&&function(e){return e===g||1===e.type||2===e.type}(l[1^w]))return l[1^w];O=p(C,w,l)}else if(S||v(E))O=h(C,w,E,l);else{if(l.length>=i)return function(e,t,n,r,o){for(var i=[],a=r,s=0,u=0;a;++u)1&a&&(i[u]=o[s++]),a>>>=1;return i[t]=n,_(e,s+1,i)}(e,y,E,u,l);R|=m,O=function(e,t,n,r){var o=r.length;if(e){for(var i=o;i>=t;)r[i--]=r[i];return r[t]=n,r}for(var a=0,s=0,u=new Array(o+1);a<t;)u[s++]=r[a++];for(u[t]=n;a<o;)u[++s]=r[a++];return u}(C,w,E,l)}return C?(this.mask=R,this.children=O,this):b(e,R,O)},C=function(e,t,n,r,o,i,s){var u=this.size,l=this.children,f=c(n,o),d=l[f],p=(d||g)._modify(e,t,n+5,r,o,i,s);if(d===p)return this;var y=x(e,this),m=void 0;if(v(d)&&!v(p))++u,m=h(y,f,p,l);else if(!v(d)&&v(p)){if(--u<=a)return function(e,t,n,r){for(var o=new Array(t-1),i=0,a=0,s=0,u=r.length;s<u;++s)if(s!==n){var l=r[s];l&&!v(l)&&(o[i++]=l,a|=1<<s)}return b(e,a,o)}(e,u,f,l);m=h(y,f,g,l)}else m=h(y,f,p,l);return y?(this.size=u,this.children=m,this):_(e,u,m)};function R(e,t,n,r,o){this._editable=e,this._edit=t,this._config=n,this._root=r,this._size=o}g._modify=function(e,t,n,r,o,i,a){var u=r();return u===s?g:(++a.value,y(e,o,i,u))},R.prototype.setTree=function(e,t){return this._editable?(this._root=e,this._size=t,this):e===this._root?this:new R(this._editable,this._edit,this._config,e,t)};var O=n.tryGetHash=function(e,t,n,r){for(var o=r._root,i=0,a=r._config.keyEq;;)switch(o.type){case 1:return a(n,o.key)?o.value:e;case 2:if(t===o.hash)for(var s=o.children,u=0,l=s.length;u<l;++u){var h=s[u];if(a(n,h.key))return h.value}return e;case 3:var p=c(i,t),g=f(p);if(o.mask&g){o=o.children[d(o.mask,g)],i+=5;break}return e;case 4:if(o=o.children[c(i,t)]){i+=5;break}return e;default:return e}};R.prototype.tryGetHash=function(e,t,n){return O(e,t,n,this)};var T=n.tryGet=function(e,t,n){return O(e,n._config.hash(t),t,n)};R.prototype.tryGet=function(e,t){return T(e,t,this)};var k=n.getHash=function(e,t,n){return O(void 0,e,t,n)};R.prototype.getHash=function(e,t){return k(e,t,this)},n.get=function(e,t){return O(void 0,t._config.hash(e),e,t)},R.prototype.get=function(e,t){return T(t,e,this)};var M=n.has=function(e,t,n){return O(s,e,t,n)!==s};R.prototype.hasHash=function(e,t){return M(e,t,this)};var P=n.has=function(e,t){return M(t._config.hash(e),e,t)};R.prototype.has=function(e){return P(e,this)};var N=function(e,t){return e===t};n.make=function(e){return new R(0,0,{keyEq:e&&e.keyEq||N,hash:e&&e.hash||l},g,0)},n.empty=n.make();var I=n.isEmpty=function(e){return e&&!!v(e._root)};R.prototype.isEmpty=function(){return I(this)};var L=n.modifyHash=function(e,t,n,r){var o={value:r._size},i=r._root._modify(r._editable?r._edit:NaN,r._config.keyEq,0,e,t,n,o);return r.setTree(i,o.value)};R.prototype.modifyHash=function(e,t,n){return L(n,e,t,this)};var D=n.modify=function(e,t,n){return L(e,n._config.hash(t),t,n)};R.prototype.modify=function(e,t){return D(t,e,this)};var F=n.setHash=function(e,t,n,r){return L(u(n),e,t,r)};R.prototype.setHash=function(e,t,n){return F(e,t,n,this)};var j=n.set=function(e,t,n){return F(n._config.hash(e),e,t,n)};R.prototype.set=function(e,t){return j(e,t,this)};var U=u(s),z=n.removeHash=function(e,t,n){return L(U,e,t,n)};R.prototype.removeHash=R.prototype.deleteHash=function(e,t){return z(e,t,this)};var B=n.remove=function(e,t){return z(t._config.hash(e),e,t)};R.prototype.remove=R.prototype.delete=function(e){return B(e,this)};var V=n.beginMutation=function(e){return new R(e._editable+1,e._edit+1,e._config,e._root,e._size)};R.prototype.beginMutation=function(){return V(this)};var H=n.endMutation=function(e){return e._editable=e._editable&&e._editable-1,e};R.prototype.endMutation=function(){return H(this)};var $=n.mutate=function(e,t){var n=V(t);return e(n),H(n)};R.prototype.mutate=function(e){return $(e,this)};var W=function(e){return e&&G(e[0],e[1],e[2],e[3],e[4])},G=function(e,t,n,r,o){for(;n<e;){var i=t[n++];if(i&&!v(i))return q(i,r,[e,t,n,r,o])}return W(o)},q=function(e,t,n){switch(e.type){case 1:return{value:t(e),rest:n};case 2:case 4:case 3:var r=e.children;return G(r.length,r,0,t,n);default:return W(n)}},Y={done:!0};function X(e){this.v=e}X.prototype.next=function(){if(!this.v)return Y;var e=this.v;return this.v=W(e.rest),e},X.prototype[Symbol.iterator]=function(){return this};var Z=function(e,t){return new X(q(e._root,t))},K=function(e){return[e.key,e.value]},Q=n.entries=function(e){return Z(e,K)};R.prototype.entries=R.prototype[Symbol.iterator]=function(){return Q(this)};var J=function(e){return e.key},ee=n.keys=function(e){return Z(e,J)};R.prototype.keys=function(){return ee(this)};var te=function(e){return e.value},ne=n.values=R.prototype.values=function(e){return Z(e,te)};R.prototype.values=function(){return ne(this)};var re=n.fold=function(e,t,n){var r=n._root;if(1===r.type)return e(t,r.value,r.key);for(var o=[r.children],i=void 0;i=o.pop();)for(var a=0,s=i.length;a<s;){var u=i[a++];u&&u.type&&(1===u.type?t=e(t,u.value,u.key):o.push(u.children))}return t};R.prototype.fold=function(e,t){return re(e,t,this)};var oe=n.forEach=function(e,t){return re((function(n,r,o){return e(r,o,t)}),null,t)};R.prototype.forEach=function(e){return oe(e,this)};var ie=n.count=function(e){return e._size};R.prototype.count=function(){return ie(this)},Object.defineProperty(R.prototype,"size",{get:R.prototype.count}),e.exports?e.exports=n:(void 0).hamt=n},le(ce={exports:{}},ce.exports),ce.exports);class de{constructor(e){u(this,"_map",void 0),this._map=new Map(null===e||void 0===e?void 0:e.entries())}keys(){return this._map.keys()}entries(){return this._map.entries()}get(e){return this._map.get(e)}has(e){return this._map.has(e)}set(e,t){return this._map.set(e,t),this}delete(e){return this._map.delete(e),this}clone(){return pe(this)}toMap(){return new Map(this._map)}}class he{constructor(e){if(u(this,"_hamt",fe.empty.beginMutation()),e instanceof he){const t=e._hamt.endMutation();e._hamt=t.beginMutation(),this._hamt=t.beginMutation()}else if(e)for(const[t,n]of e.entries())this._hamt.set(t,n)}keys(){return this._hamt.keys()}entries(){return this._hamt.entries()}get(e){return this._hamt.get(e)}has(e){return this._hamt.has(e)}set(e,t){return this._hamt.set(e,t),this}delete(e){return this._hamt.delete(e),this}clone(){return pe(this)}toMap(){return new Map(this._hamt)}}function pe(e){return P("recoil_hamt_2020")?new he(e):new de(e)}var ge=pe,ve=Object.freeze({__proto__:null,persistentMap:ge});var ye=function(e,...t){const n=new Set;e:for(const r of e){for(const e of t)if(e.has(r))continue e;n.add(r)}return n};var me=function(e,t){const n=new Map;return e.forEach(((e,r)=>{n.set(r,t(e,r))})),n};function be(e,t,n,r){const{nodeDeps:o,nodeToNodeSubscriptions:i}=n,a=o.get(e);if(a&&r&&a!==r.nodeDeps.get(e))return;o.set(e,t);const u=null==a?t:ye(t,a);for(const l of u){i.has(l)||i.set(l,new Set);s(i.get(l)).add(e)}if(a){const n=ye(a,t);for(const t of n){if(!i.has(t))return;const n=s(i.get(t));n.delete(e),0===n.size&&i.delete(t)}}}var _e={cloneGraph:function(e){return{nodeDeps:me(e.nodeDeps,(e=>new Set(e))),nodeToNodeSubscriptions:me(e.nodeToNodeSubscriptions,(e=>new Set(e)))}},graph:function(){return{nodeDeps:new Map,nodeToNodeSubscriptions:new Map}},saveDepsToStore:function(e,t,n,r){var o,i,a,s;const u=n.getState();r!==u.currentTree.version&&r!==(null===(o=u.nextTree)||void 0===o?void 0:o.version)&&r!==(null===(i=u.previousTree)||void 0===i?void 0:i.version)&&D("Tried to save dependencies to a discarded tree");const l=n.getGraph(r);if(be(e,t,l),r===(null===(a=u.previousTree)||void 0===a?void 0:a.version)){be(e,t,n.getGraph(u.currentTree.version),l)}if(r===(null===(s=u.previousTree)||void 0===s?void 0:s.version)||r===u.currentTree.version){var c;const r=null===(c=u.nextTree)||void 0===c?void 0:c.version;if(void 0!==r){be(e,t,n.getGraph(r),l)}}}};let we=0;let xe=0;let Se=0;var Ae={getNextTreeStateVersion:()=>we++,getNextStoreID:()=>xe++,getNextComponentID:()=>Se++};const{persistentMap:Ee}=ve,{graph:Ce}=_e,{getNextTreeStateVersion:Re}=Ae;function Oe(){const e=Re();return{version:e,stateID:e,transactionMetadata:{},dirtyAtoms:new Set,atomValues:Ee(),nonvalidatedAtoms:Ee()}}var Te={makeEmptyTreeState:Oe,makeEmptyStoreState:function(){const e=Oe();return{currentTree:e,nextTree:null,previousTree:null,commitDepth:0,knownAtoms:new Set,knownSelectors:new Set,transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(e.version,Ce()),retention:{referenceCounts:new Map,nodesRetainedByZone:new Map,retainablesToCheckForRelease:new Set},nodeCleanupFunctions:new Map}},getNextTreeStateVersion:Re};class ke{}var Me={RetentionZone:ke,retentionZone:function(){return new ke}};var Pe={setByAddingToSet:function(e,t){const n=new Set(e);return n.add(t),n},setByDeletingFromSet:function(e,t){const n=new Set(e);return n.delete(t),n},mapBySettingInMap:function(e,t,n){const r=new Map(e);return r.set(t,n),r},mapByUpdatingInMap:function(e,t,n){const r=new Map(e);return r.set(t,n(r.get(t))),r},mapByDeletingFromMap:function(e,t){const n=new Map(e);return n.delete(t),n},mapByDeletingMultipleFromMap:function(e,t){const n=new Map(e);return t.forEach((e=>n.delete(e))),n}};var Ne=function*(e,t){let n=0;for(const r of e)t(r,n++)&&(yield r)};var Ie=function(e,t){return new Proxy(e,{get:(e,n)=>(!(n in e)&&n in t&&(e[n]=t[n]()),e[n]),ownKeys:e=>Object.keys(e)})};const{getNode:Le,getNodeMaybe:De,recoilValuesForKeys:Fe}=se,{RetentionZone:je}=Me,{setByAddingToSet:Ue}=Pe,ze=Object.freeze(new Set);class Be extends Error{}function Ve(e,t,n,r){const o=e.getState();if(o.nodeCleanupFunctions.has(n))return;const i=Le(n),a=function(e,t,n){if(!P("recoil_memory_managament_2020"))return()=>{};const{nodesRetainedByZone:r}=e.getState().retention;function o(e){let n=r.get(e);n||r.set(e,n=new Set),n.add(t)}if(n instanceof je)o(n);else if(Array.isArray(n))for(const i of n)o(i);return()=>{if(!P("recoil_memory_managament_2020"))return;const{retention:r}=e.getState();function o(e){const n=r.nodesRetainedByZone.get(e);null===n||void 0===n||n.delete(t),n&&0===n.size&&r.nodesRetainedByZone.delete(e)}if(n instanceof je)o(n);else if(Array.isArray(n))for(const e of n)o(e)}}(e,n,i.retainedBy),s=i.init(e,t,r);o.nodeCleanupFunctions.set(n,(()=>{s(),a()}))}function He(e,t,n){return Le(n).peek(e,t)}function $e(e,t,n){const r=new Set,o=Array.from(n),i=e.getGraph(t.version);for(let s=o.pop();s;s=o.pop()){var a;r.add(s);const e=null!==(a=i.nodeToNodeSubscriptions.get(s))&&void 0!==a?a:ze;for(const t of e)r.has(t)||o.push(t)}return r}var We={getNodeLoadable:function(e,t,n){return Ve(e,t,n,"get"),Le(n).get(e,t)},peekNodeLoadable:He,setNodeValue:function(e,t,n,r){const o=Le(n);if(null==o.set)throw new Be(`Attempt to set read-only RecoilValue: ${n}`);const i=o.set;return Ve(e,t,n,"set"),i(e,t,r)},initializeNode:function(e,t,n){Ve(e,e.getState().currentTree,t,n)},cleanUpNode:function(e,t){var n;const r=e.getState();null===(n=r.nodeCleanupFunctions.get(t))||void 0===n||n(),r.nodeCleanupFunctions.delete(t)},setUnvalidatedAtomValue_DEPRECATED:function(e,t,n){var r;const o=De(t);return null===o||void 0===o||null===(r=o.invalidate)||void 0===r||r.call(o,e),{...e,atomValues:e.atomValues.clone().delete(t),nonvalidatedAtoms:e.nonvalidatedAtoms.clone().set(t,n),dirtyAtoms:Ue(e.dirtyAtoms,t)}},peekNodeInfo:function(e,t,n){const r=e.getState(),o=e.getGraph(t.version),i=Le(n).nodeType;return Ie({type:i},{loadable:()=>He(e,t,n),isActive:()=>r.knownAtoms.has(n)||r.knownSelectors.has(n),isSet:()=>"selector"!==i&&t.atomValues.has(n),isModified:()=>t.dirtyAtoms.has(n),deps:()=>{var e;return Fe(null!==(e=o.nodeDeps.get(n))&&void 0!==e?e:[])},subscribers:()=>{var o,i;return{nodes:Fe(Ne($e(e,t,new Set([n])),(e=>e!==n))),components:Q(null!==(o=null===(i=r.nodeToComponentSubscriptions.get(n))||void 0===i?void 0:i.values())&&void 0!==o?o:[],(([e])=>({name:e})))}}})},getDownstreamNodes:$e};let Ge=null;var qe={setInvalidateMemoizedSnapshot:function(e){Ge=e},invalidateMemoizedSnapshot:function(){var e;null===(e=Ge)||void 0===e||e()}};const{getDownstreamNodes:Ye,getNodeLoadable:Xe,setNodeValue:Ze}=We,{getNextComponentID:Ke}=Ae,{getNode:Qe,getNodeMaybe:Je}=se,{DefaultValue:et}=se,{reactMode:tt}=B,{AbstractRecoilValue:nt,RecoilState:rt,RecoilValueReadOnly:ot,isRecoilValue:it}=Z,{invalidateMemoizedSnapshot:at}=qe;function st(e,t,n){if("set"===n.type){const{recoilValue:r,valueOrUpdater:o}=n,a=function(e,t,{key:n},r){if("function"===typeof r){const o=Xe(e,t,n);if("loading"===o.state){const e=`Tried to set atom or selector "${n}" using an updater function while the current state is pending, this is not currently supported.`;throw D(e),i(e)}if("hasError"===o.state)throw o.contents;return r(o.contents)}return r}(e,t,r,o),s=Ze(e,t,r.key,a);for(const[e,n]of s.entries())ut(t,e,n)}else if("setLoadable"===n.type){const{recoilValue:{key:e},loadable:r}=n;ut(t,e,r)}else if("markModified"===n.type){const{recoilValue:{key:e}}=n;t.dirtyAtoms.add(e)}else if("setUnvalidated"===n.type){var r;const{recoilValue:{key:e},unvalidatedValue:o}=n,i=Je(e);null===i||void 0===i||null===(r=i.invalidate)||void 0===r||r.call(i,t),t.atomValues.delete(e),t.nonvalidatedAtoms.set(e,o),t.dirtyAtoms.add(e)}else D(`Unknown action ${n.type}`)}function ut(e,t,n){"hasValue"===n.state&&n.contents instanceof et?e.atomValues.delete(t):e.atomValues.set(t,n),e.dirtyAtoms.add(t),e.nonvalidatedAtoms.delete(t)}function lt(e,t){e.replaceState((n=>{const r=dt(n);for(const o of t)st(e,r,o);return ht(e,r),at(),r}))}function ct(e,t){if(ft.length){const n=ft[ft.length-1];let r=n.get(e);r||n.set(e,r=[]),r.push(t)}else lt(e,[t])}const ft=[];function dt(e){return{...e,atomValues:e.atomValues.clone(),nonvalidatedAtoms:e.nonvalidatedAtoms.clone(),dirtyAtoms:new Set(e.dirtyAtoms)}}function ht(e,t){const n=Ye(e,t,t.dirtyAtoms);for(const i of n){var r,o;null===(r=Je(i))||void 0===r||null===(o=r.invalidate)||void 0===o||o.call(r,t)}}function pt(e,t,n){ct(e,{type:"set",recoilValue:t,valueOrUpdater:n})}var gt={RecoilValueReadOnly:ot,AbstractRecoilValue:nt,RecoilState:rt,getRecoilValueAsLoadable:function(e,{key:t},n=e.getState().currentTree){var r,o;const i=e.getState();n.version!==i.currentTree.version&&n.version!==(null===(r=i.nextTree)||void 0===r?void 0:r.version)&&n.version!==(null===(o=i.previousTree)||void 0===o?void 0:o.version)&&D("Tried to read from a discarded tree");const a=Xe(e,n,t);return"loading"===a.state&&a.contents.catch((()=>{})),a},setRecoilValue:pt,setRecoilValueLoadable:function(e,t,n){if(n instanceof et)return pt(e,t,n);ct(e,{type:"setLoadable",recoilValue:t,loadable:n})},markRecoilValueModified:function(e,t){ct(e,{type:"markModified",recoilValue:t})},setUnvalidatedRecoilValue:function(e,t,n){ct(e,{type:"setUnvalidated",recoilValue:t,unvalidatedValue:n})},subscribeToRecoilValue:function(e,{key:t},n,r=null){const o=Ke(),i=e.getState();i.nodeToComponentSubscriptions.has(t)||i.nodeToComponentSubscriptions.set(t,new Map),s(i.nodeToComponentSubscriptions.get(t)).set(o,[null!==r&&void 0!==r?r:"<not captured>",n]);const a=tt();if(a.early&&("LEGACY"===a.mode||"MUTABLE_SOURCE"===a.mode)){const r=e.getState().nextTree;r&&r.dirtyAtoms.has(t)&&n(r)}return{release:()=>{const n=e.getState(),r=n.nodeToComponentSubscriptions.get(t);void 0!==r&&r.has(o)?(r.delete(o),0===r.size&&n.nodeToComponentSubscriptions.delete(t)):D(`Subscription missing at release time for atom ${t}. This is a bug in Recoil.`)}}},isRecoilValue:it,applyAtomValueWrites:function(e,t){const n=e.clone();return t.forEach(((e,t)=>{"hasValue"===e.state&&e.contents instanceof et?n.delete(t):n.set(t,e)})),n},batchStart:function(){const e=new Map;return ft.push(e),()=>{for(const[t,n]of e)lt(t,n);ft.pop()!==e&&D("Incorrect order of batch popping")}},writeLoadableToTreeState:ut,invalidateDownstreams:ht,copyTreeState:dt,refreshRecoilValue:function(e,t){var n;const{currentTree:r}=e.getState(),o=Qe(t.key);null===(n=o.clearCache)||void 0===n||n.call(o,e,r)}};var vt=function(e,t,n){const r=e.entries();let o=r.next();for(;!o.done;){const i=o.value;if(t.call(n,i[1],i[0],e))return!0;o=r.next()}return!1};const{cleanUpNode:yt}=We,{deleteNodeConfigIfPossible:mt,getNode:bt}=se,{RetentionZone:_t}=Me,wt=new Set;function xt(e,t){const n=e.getState(),r=n.currentTree;if(n.nextTree)return void D("releaseNodesNowOnCurrentTree should only be called at the end of a batch");const o=new Set;for(const a of t)if(a instanceof _t)for(const e of At(n,a))o.add(e);else o.add(a);const i=function(e,t){const n=e.getState(),r=n.currentTree,o=e.getGraph(r.version),i=new Set,a=new Set;return u(t),i;function u(t){const l=new Set,c=function(e,t,n,r,o){const i=e.getGraph(t.version),a=[],u=new Set;for(;n.size>0;)l(s(n.values().next().value));return a;function l(e){if(r.has(e)||o.has(e))return void n.delete(e);if(u.has(e))return;const t=i.nodeToNodeSubscriptions.get(e);if(t)for(const n of t)l(n);u.add(e),n.delete(e),a.push(e)}}(e,r,t,i,a);for(const e of c){var f;if("recoilRoot"===bt(e).retainedBy){a.add(e);continue}if((null!==(f=n.retention.referenceCounts.get(e))&&void 0!==f?f:0)>0){a.add(e);continue}if(Et(e).some((e=>n.retention.referenceCounts.get(e)))){a.add(e);continue}const t=o.nodeToNodeSubscriptions.get(e);t&&vt(t,(e=>a.has(e)))?a.add(e):(i.add(e),l.add(e))}const d=new Set;for(const e of l)for(const t of null!==(h=o.nodeDeps.get(e))&&void 0!==h?h:wt){var h;i.has(t)||d.add(t)}d.size&&u(d)}}(e,o);for(const a of i)St(e,r,a)}function St(e,t,n){if(!P("recoil_memory_managament_2020"))return;yt(e,n);const r=e.getState();r.knownAtoms.delete(n),r.knownSelectors.delete(n),r.nodeTransactionSubscriptions.delete(n),r.retention.referenceCounts.delete(n);const o=Et(n);for(const u of o){var i;null===(i=r.retention.nodesRetainedByZone.get(u))||void 0===i||i.delete(n)}t.atomValues.delete(n),t.dirtyAtoms.delete(n),t.nonvalidatedAtoms.delete(n);const a=r.graphsByVersion.get(t.version);if(a){const e=a.nodeDeps.get(n);if(void 0!==e){a.nodeDeps.delete(n);for(const t of e){var s;null===(s=a.nodeToNodeSubscriptions.get(t))||void 0===s||s.delete(n)}}a.nodeToNodeSubscriptions.delete(n)}mt(n)}function At(e,t){var n;return null!==(n=e.retention.nodesRetainedByZone.get(t))&&void 0!==n?n:wt}function Et(e){const t=bt(e).retainedBy;return void 0===t||"components"===t||"recoilRoot"===t?[]:t instanceof _t?[t]:t}function Ct(e,t){if(!P("recoil_memory_managament_2020"))return;e.getState().retention.referenceCounts.delete(t),function(e,t){const n=e.getState();n.nextTree?n.retention.retainablesToCheckForRelease.add(t):xt(e,new Set([t]))}(e,t)}var Rt={SUSPENSE_TIMEOUT_MS:12e4,updateRetainCount:function(e,t,n){var r;if(!P("recoil_memory_managament_2020"))return;const o=e.getState().retention.referenceCounts,i=(null!==(r=o.get(t))&&void 0!==r?r:0)+n;0===i?Ct(e,t):o.set(t,i)},updateRetainCountToZero:Ct,releaseScheduledRetainablesNow:function(e){if(!P("recoil_memory_managament_2020"))return;const t=e.getState();xt(e,t.retention.retainablesToCheckForRelease),t.retention.retainablesToCheckForRelease.clear()},retainedByOptionWithDefault:function(e){return void 0===e?"recoilRoot":e}};const{unstable_batchedUpdates:Ot}=o;var Tt={unstable_batchedUpdates:Ot};const{unstable_batchedUpdates:kt}=Tt;var Mt={unstable_batchedUpdates:kt};const{batchStart:Pt}=gt,{unstable_batchedUpdates:Nt}=Mt;let It=Nt||(e=>e());var Lt={getBatcher:()=>It,setBatcher:e=>{It=e},batchUpdates:e=>{It((()=>{let t=()=>{};try{t=Pt(),e()}finally{t()}}))}};var Dt=function*(e){for(const t of e)for(const e of t)yield e};const Ft="undefined"===typeof Window||"undefined"===typeof window,jt="undefined"!==typeof navigator&&"ReactNative"===navigator.product;var Ut={isSSR:Ft,isReactNative:jt,isWindow:e=>!Ft&&(e===window||e instanceof Window)};var zt={memoizeWithArgsHash:function(e,t){let n;return(...r)=>{n||(n={});const o=t(...r);return Object.hasOwnProperty.call(n,o)||(n[o]=e(...r)),n[o]}},memoizeOneWithArgsHash:function(e,t){let n,r;return(...o)=>{const i=t(...o);return n===i||(n=i,r=e(...o)),r}},memoizeOneWithArgsHashAndInvalidation:function(e,t){let n,r;return[(...o)=>{const i=t(...o);return n===i||(n=i,r=e(...o)),r},()=>{n=null}]}};const{batchUpdates:Bt}=Lt,{initializeNode:Vt,peekNodeInfo:Ht}=We,{graph:$t}=_e,{getNextStoreID:Wt}=Ae,{DEFAULT_VALUE:Gt,recoilValues:qt,recoilValuesForKeys:Yt}=se,{AbstractRecoilValue:Xt,getRecoilValueAsLoadable:Zt,setRecoilValue:Kt,setUnvalidatedRecoilValue:Qt}=gt,{updateRetainCount:Jt}=Rt,{setInvalidateMemoizedSnapshot:en}=qe,{getNextTreeStateVersion:tn,makeEmptyStoreState:nn}=Te,{isSSR:rn}=Ut,{memoizeOneWithArgsHashAndInvalidation:on}=zt;class an{constructor(e,t){u(this,"_store",void 0),u(this,"_refCount",1),u(this,"getLoadable",(e=>(this.checkRefCount_INTERNAL(),Zt(this._store,e)))),u(this,"getPromise",(e=>(this.checkRefCount_INTERNAL(),this.getLoadable(e).toPromise()))),u(this,"getNodes_UNSTABLE",(e=>{if(this.checkRefCount_INTERNAL(),!0===(null===e||void 0===e?void 0:e.isModified)){if(!1===(null===e||void 0===e?void 0:e.isInitialized))return[];const t=this._store.getState().currentTree;return Yt(t.dirtyAtoms)}const t=this._store.getState().knownAtoms,n=this._store.getState().knownSelectors;return null==(null===e||void 0===e?void 0:e.isInitialized)?qt.values():!0===e.isInitialized?Yt(Dt([t,n])):Ne(qt.values(),(({key:e})=>!t.has(e)&&!n.has(e)))})),u(this,"getInfo_UNSTABLE",(({key:e})=>(this.checkRefCount_INTERNAL(),Ht(this._store,this._store.getState().currentTree,e)))),u(this,"map",(e=>{this.checkRefCount_INTERNAL();const t=new cn(this,Bt);return e(t),t})),u(this,"asyncMap",(async e=>{this.checkRefCount_INTERNAL();const t=new cn(this,Bt);return t.retain(),await e(t),t.autoRelease_INTERNAL(),t})),this._store={storeID:Wt(),parentStoreID:t,getState:()=>e,replaceState:t=>{e.currentTree=t(e.currentTree)},getGraph:t=>{const n=e.graphsByVersion;if(n.has(t))return s(n.get(t));const r=$t();return n.set(t,r),r},subscribeToTransactions:()=>({release:()=>{}}),addTransactionMetadata:()=>{throw i("Cannot subscribe to Snapshots")}};for(const n of this._store.getState().knownAtoms)Vt(this._store,n,"get"),Jt(this._store,n,1);this.autoRelease_INTERNAL()}retain(){this._refCount<=0&&D("Attempt to retain() Snapshot that was already released."),this._refCount++;let e=!1;return()=>{e||(e=!0,this._release())}}autoRelease_INTERNAL(){rn||window.setTimeout((()=>this._release()),10)}_release(){if(this._refCount--,0===this._refCount){if(this._store.getState().nodeCleanupFunctions.forEach((e=>e())),this._store.getState().nodeCleanupFunctions.clear(),!P("recoil_memory_managament_2020"))return}else this._refCount}isRetained(){return this._refCount>0}checkRefCount_INTERNAL(){P("recoil_memory_managament_2020")&&this._refCount}getStore_INTERNAL(){return this.checkRefCount_INTERNAL(),this._store}getID(){return this.checkRefCount_INTERNAL(),this._store.getState().currentTree.stateID}getStoreID(){return this.checkRefCount_INTERNAL(),this._store.storeID}}function sn(e,t,n=!1){const r=e.getState(),o=n?tn():t.version;return{currentTree:{version:n?o:t.version,stateID:n?o:t.stateID,transactionMetadata:{...t.transactionMetadata},dirtyAtoms:new Set(t.dirtyAtoms),atomValues:t.atomValues.clone(),nonvalidatedAtoms:t.nonvalidatedAtoms.clone()},commitDepth:0,nextTree:null,previousTree:null,knownAtoms:new Set(r.knownAtoms),knownSelectors:new Set(r.knownSelectors),transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(o,e.getGraph(t.version)),retention:{referenceCounts:new Map,nodesRetainedByZone:new Map,retainablesToCheckForRelease:new Set},nodeCleanupFunctions:new Map(Q(r.nodeCleanupFunctions.entries(),(([e])=>[e,()=>{}])))}}const[un,ln]=on(((e,t)=>{var n;const r=e.getState(),o="latest"===t?null!==(n=r.nextTree)&&void 0!==n?n:r.currentTree:s(r.previousTree);return new an(sn(e,o),e.storeID)}),((e,t)=>{var n,r;return String(t)+String(e.storeID)+String(null===(n=e.getState().nextTree)||void 0===n?void 0:n.version)+String(e.getState().currentTree.version)+String(null===(r=e.getState().previousTree)||void 0===r?void 0:r.version)}));en(ln);class cn extends an{constructor(e,t){super(sn(e.getStore_INTERNAL(),e.getStore_INTERNAL().getState().currentTree,!0),e.getStoreID()),u(this,"_batch",void 0),u(this,"set",((e,t)=>{this.checkRefCount_INTERNAL();const n=this.getStore_INTERNAL();this._batch((()=>{Jt(n,e.key,1),Kt(this.getStore_INTERNAL(),e,t)}))})),u(this,"reset",(e=>{this.checkRefCount_INTERNAL();const t=this.getStore_INTERNAL();this._batch((()=>{Jt(t,e.key,1),Kt(this.getStore_INTERNAL(),e,Gt)}))})),u(this,"setUnvalidatedAtomValues_DEPRECATED",(e=>{this.checkRefCount_INTERNAL();const t=this.getStore_INTERNAL();Bt((()=>{for(const[n,r]of e.entries())Jt(t,n,1),Qt(t,new Xt(n),r)}))})),this._batch=t}}var fn={Snapshot:an,MutableSnapshot:cn,freshSnapshot:function(e){const t=new an(nn());return null!=e?t.map(e):t},cloneSnapshot:function(e,t="latest"){const n=un(e,t);return n.isRetained()?n:(ln(),un(e,t))}},dn=fn.Snapshot,hn=fn.MutableSnapshot,pn=fn.freshSnapshot,gn=fn.cloneSnapshot,vn=Object.freeze({__proto__:null,Snapshot:dn,MutableSnapshot:hn,freshSnapshot:pn,cloneSnapshot:gn});var yn=function(...e){const t=new Set;for(const n of e)for(const e of n)t.add(e);return t};const{useRef:mn}=r;var bn=function(e){const t=mn(e);return t.current===e&&"function"===typeof e&&(t.current=e()),t};const{getNextTreeStateVersion:_n,makeEmptyStoreState:wn}=Te,{cleanUpNode:xn,getDownstreamNodes:Sn,initializeNode:An,setNodeValue:En,setUnvalidatedAtomValue_DEPRECATED:Cn}=We,{graph:Rn}=_e,{cloneGraph:On}=_e,{getNextStoreID:Tn}=Ae,{createMutableSource:kn,reactMode:Mn}=B,{applyAtomValueWrites:Pn}=gt,{releaseScheduledRetainablesNow:Nn}=Rt,{freshSnapshot:In}=vn,{useCallback:Ln,useContext:Dn,useEffect:Fn,useMemo:jn,useRef:Un,useState:zn}=r;function Bn(){throw i("This component must be used inside a <RecoilRoot> component.")}const Vn=Object.freeze({storeID:Tn(),getState:Bn,replaceState:Bn,getGraph:Bn,subscribeToTransactions:Bn,addTransactionMetadata:Bn});let Hn=!1;function $n(e){if(Hn)throw i("An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.");const t=e.getState();if(null===t.nextTree){P("recoil_memory_managament_2020")&&P("recoil_release_on_cascading_update_killswitch_2021")&&t.commitDepth>0&&Nn(e);const n=t.currentTree.version,r=_n();t.nextTree={...t.currentTree,version:r,stateID:r,dirtyAtoms:new Set,transactionMetadata:{}},t.graphsByVersion.set(r,On(s(t.graphsByVersion.get(n))))}}const Wn=r.createContext({current:Vn}),Gn=()=>Dn(Wn),qn=r.createContext(null);function Yn(e,t,n){const r=Sn(e,n,n.dirtyAtoms);for(const o of r){const e=t.nodeToComponentSubscriptions.get(o);if(e)for(const[t,[r,o]]of e)o(n)}}function Xn(e){const t=e.getState(),n=t.currentTree,r=n.dirtyAtoms;if(r.size){for(const[n,o]of t.nodeTransactionSubscriptions)if(r.has(n))for(const[t,r]of o)r(e);for(const[n,r]of t.transactionSubscriptions)r(e);(!Mn().early||t.suspendedComponentResolvers.size>0)&&(Yn(e,t,n),t.suspendedComponentResolvers.forEach((e=>e())),t.suspendedComponentResolvers.clear())}t.queuedComponentCallbacks_DEPRECATED.forEach((e=>e(n))),t.queuedComponentCallbacks_DEPRECATED.splice(0,t.queuedComponentCallbacks_DEPRECATED.length)}function Zn({setNotifyBatcherOfChange:e}){const t=Gn(),[,n]=zn([]);return e((()=>n({}))),Fn((()=>(e((()=>n({}))),()=>{e((()=>{}))})),[e]),Fn((()=>{ue.enqueueExecution("Batcher",(()=>{!function(e){const t=e.getState();t.commitDepth++;try{const{nextTree:n}=t;if(null==n)return;t.previousTree=t.currentTree,t.currentTree=n,t.nextTree=null,Xn(e),null!=t.previousTree?t.graphsByVersion.delete(t.previousTree.version):D("Ended batch with no previous state, which is unexpected","recoil"),t.previousTree=null,P("recoil_memory_managament_2020")&&null==n&&Nn(e)}finally{t.commitDepth--}}(t.current)}))})),null}let Kn=0;function Qn({initializeState_DEPRECATED:e,initializeState:t,store_INTERNAL:n,children:o}){let i;const a=e=>{const t=i.current.graphsByVersion;if(t.has(e))return s(t.get(e));const n=Rn();return t.set(e,n),n},u=(e,t)=>{if(null==t){const{transactionSubscriptions:t}=h.current.getState(),n=Kn++;return t.set(n,e),{release:()=>{t.delete(n)}}}{const{nodeTransactionSubscriptions:n}=h.current.getState();n.has(t)||n.set(t,new Map);const r=Kn++;return s(n.get(t)).set(r,e),{release:()=>{const e=n.get(t);e&&(e.delete(r),0===e.size&&n.delete(t))}}}},l=e=>{$n(h.current);for(const t of Object.keys(e))s(h.current.getState().nextTree).transactionMetadata[t]=e[t]},c=e=>{$n(h.current);const t=s(i.current.nextTree);let n;try{Hn=!0,n=e(t)}finally{Hn=!1}n!==t&&(i.current.nextTree=n,Mn().early&&Yn(h.current,i.current,n),s(f.current)())},f=Un(null),d=Ln((e=>{f.current=e}),[f]),h=bn((()=>null!==n&&void 0!==n?n:{storeID:Tn(),getState:()=>i.current,replaceState:c,getGraph:a,subscribeToTransactions:u,addTransactionMetadata:l}));null!=n&&(h.current=n),i=bn((()=>null!=e?function(e,t){const n=wn();return t({set:(t,r)=>{const o=n.currentTree,i=En(e,o,t.key,r),a=new Set(i.keys()),s=o.nonvalidatedAtoms.clone();for(const e of a)s.delete(e);n.currentTree={...o,dirtyAtoms:yn(o.dirtyAtoms,a),atomValues:Pn(o.atomValues,i),nonvalidatedAtoms:s}},setUnvalidatedAtomValues:e=>{e.forEach(((e,t)=>{n.currentTree=Cn(n.currentTree,t,e)}))}}),n}(h.current,e):null!=t?function(e){const t=In(e),n=t.getStore_INTERNAL().getState();return t.retain(),n.nodeCleanupFunctions.forEach((e=>e())),n.nodeCleanupFunctions.clear(),n}(t):wn()));const p=jn((()=>null===kn||void 0===kn?void 0:kn(i,(()=>i.current.currentTree.version))),[i]);return Fn((()=>{const e=h.current;for(const t of new Set(e.getState().knownAtoms))An(e,t,"get");return()=>{for(const t of e.getState().knownAtoms)xn(e,t)}}),[h]),r.createElement(Wn.Provider,{value:h},r.createElement(qn.Provider,{value:p},r.createElement(Zn,{setNotifyBatcherOfChange:d}),o))}var Jn={RecoilRoot:function(e){const{override:t,...n}=e,o=Gn();return!1===t&&o.current!==Vn?e.children:r.createElement(Qn,n)},useStoreRef:Gn,useRecoilMutableSource:function(){const e=Dn(qn);return null==e&&K("Attempted to use a Recoil hook outside of a <RecoilRoot>. <RecoilRoot> must be an ancestor of any component that uses Recoil hooks."),e},useRecoilStoreID:function(){return Gn().current.storeID},notifyComponents_FOR_TESTING:Yn,sendEndOfBatchNotifications_FOR_TESTING:Xn};var er=function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return!1;return!0};const{useEffect:tr,useRef:nr}=r;var rr=function(e){const t=nr();return tr((()=>{t.current=e})),t.current};const{useStoreRef:or}=Jn,{SUSPENSE_TIMEOUT_MS:ir}=Rt,{updateRetainCount:ar}=Rt,{RetentionZone:sr}=Me,{useEffect:ur,useRef:lr}=r,{isSSR:cr}=Ut;var fr=function(e){if(P("recoil_memory_managament_2020"))return function(e){const t=Array.isArray(e)?e:[e],n=t.map((e=>e instanceof sr?e:e.key)),r=or();ur((()=>{if(!P("recoil_memory_managament_2020"))return;const e=r.current;if(o.current&&!cr)window.clearTimeout(o.current),o.current=null;else for(const t of n)ar(e,t,1);return()=>{for(const t of n)ar(e,t,-1)}}),[r,...n]);const o=lr(),i=rr(n);if(!cr&&(void 0===i||!er(i,n))){const e=r.current;for(const t of n)ar(e,t,1);if(i)for(const t of i)ar(e,t,-1);o.current&&window.clearTimeout(o.current),o.current=window.setTimeout((()=>{o.current=null;for(const t of n)ar(e,t,-1)}),ir)}}(e)};var dr=function(){return"<component name not available>"};const{batchUpdates:hr}=Lt,{DEFAULT_VALUE:pr}=se,{currentRendererSupportsUseSyncExternalStore:gr,reactMode:vr,useMutableSource:yr,useSyncExternalStore:mr}=B,{useRecoilMutableSource:br,useStoreRef:_r}=Jn,{isRecoilValue:wr}=Z,{AbstractRecoilValue:xr,getRecoilValueAsLoadable:Sr,setRecoilValue:Ar,setUnvalidatedRecoilValue:Er,subscribeToRecoilValue:Cr}=gt,{useCallback:Rr,useEffect:Or,useMemo:Tr,useRef:kr,useState:Mr}=r,{setByAddingToSet:Pr}=Pe,{isSSR:Nr}=Ut;function Ir(e,t,n){if("hasValue"===e.state)return e.contents;if("loading"===e.state){throw new Promise((t=>{const r=n.current.getState().suspendedComponentResolvers;r.add(t),Nr&&a(e.contents)&&e.contents.finally((()=>{r.delete(t)}))}))}throw"hasError"===e.state?e.contents:i(`Invalid value of loadable atom "${t.key}"`)}function Lr(e){const t=_r(),n=dr(),r=Rr((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return{loadable:Sr(r,e,i),key:e.key}}),[t,e]),o=Rr((e=>{let t;return()=>{var n,r;const o=e();return null!==(n=t)&&void 0!==n&&n.loadable.is(o.loadable)&&(null===(r=t)||void 0===r?void 0:r.key)===o.key?t:(t=o,o)}}),[]),i=Tr((()=>o(r)),[r,o]),a=Rr((r=>{const o=t.current;return Cr(o,e,r,n).release}),[t,e,n]);return mr(a,i,i).loadable}function Dr(e){const t=_r(),n=Rr((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),r=Rr((()=>n()),[n]),o=dr(),a=Rr(((r,i)=>{const a=t.current;return Cr(a,e,(()=>{if(!P("recoil_suppress_rerender_in_callback"))return i();const e=n();l.current.is(e)||i(),l.current=e}),o).release}),[t,e,o,n]),s=br();if(null==s)throw i("Recoil hooks must be used in components contained within a <RecoilRoot> component.");const u=yr(s,r,a),l=kr(u);return Or((()=>{l.current=u})),u}function Fr(e){const t=_r(),n=dr(),r=Rr((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),o=Rr((()=>({loadable:r(),key:e.key})),[r,e.key]),i=Rr((e=>{const t=o();return e.loadable.is(t.loadable)&&e.key===t.key?e:t}),[o]);Or((()=>{const r=Cr(t.current,e,(e=>{s(i)}),n);return s(i),r.release}),[n,e,t,i]);const[a,s]=Mr(o);return a.key!==e.key?o().loadable:a.loadable}function jr(e){const t=_r(),[,n]=Mr([]),r=dr(),o=Rr((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),i=o(),a=kr(i);return Or((()=>{a.current=i})),Or((()=>{const i=t.current,s=i.getState(),u=Cr(i,e,(e=>{var t;if(!P("recoil_suppress_rerender_in_callback"))return n([]);const r=o();null!==(t=a.current)&&void 0!==t&&t.is(r)||n(r),a.current=r}),r);if(s.nextTree)i.getState().queuedComponentCallbacks_DEPRECATED.push((()=>{a.current=null,n([])}));else{var l;if(!P("recoil_suppress_rerender_in_callback"))return n([]);const e=o();null!==(l=a.current)&&void 0!==l&&l.is(e)||n(e),a.current=e}return u.release}),[r,o,e,t]),i}function Ur(e){return P("recoil_memory_managament_2020")&&fr(e),{TRANSITION_SUPPORT:Fr,SYNC_EXTERNAL_STORE:gr()?Lr:Fr,MUTABLE_SOURCE:Dr,LEGACY:jr}[vr().mode](e)}function zr(e){const t=_r();return Ir(Ur(e),e,t)}function Br(e){const t=_r();return Rr((n=>{Ar(t.current,e,n)}),[t,e])}function Vr(e){return P("recoil_memory_managament_2020")&&fr(e),Fr(e)}function Hr(e){const t=_r();return Ir(Vr(e),e,t)}var $r={recoilComponentGetRecoilValueCount_FOR_TESTING:{current:0},useRecoilInterface:function(){const e=dr(),t=_r(),[,n]=Mr([]),r=kr(new Set);r.current=new Set;const o=kr(new Set),i=kr(new Map),a=Rr((e=>{const t=i.current.get(e);t&&(t.release(),i.current.delete(e))}),[i]),s=Rr(((e,t)=>{i.current.has(t)&&n([])}),[]);return Or((()=>{const n=t.current;ye(r.current,o.current).forEach((t=>{if(i.current.has(t))return void K(`Double subscription to RecoilValue "${t}"`);const r=Cr(n,new xr(t),(e=>s(e,t)),e);i.current.set(t,r);n.getState().nextTree?n.getState().queuedComponentCallbacks_DEPRECATED.push((()=>{s(n.getState(),t)})):s(n.getState(),t)})),ye(o.current,r.current).forEach((e=>{a(e)})),o.current=r.current})),Or((()=>{const n=i.current;return ye(r.current,new Set(n.keys())).forEach((r=>{const o=Cr(t.current,new xr(r),(e=>s(e,r)),e);n.set(r,o)})),()=>n.forEach(((e,t)=>a(t)))}),[e,t,a,s]),Tr((()=>{function e(e){return n=>{Ar(t.current,e,n)}}function n(e){var n;r.current.has(e.key)||(r.current=Pr(r.current,e.key));const o=t.current.getState();return Sr(t.current,e,vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree)}function o(e){return Ir(n(e),e,t)}return{getRecoilValue:o,getRecoilValueLoadable:n,getRecoilState:function(t){return[o(t),e(t)]},getRecoilStateLoadable:function(t){return[n(t),e(t)]},getSetRecoilState:e,getResetRecoilState:function(e){return()=>Ar(t.current,e,pr)}}}),[r,t])},useRecoilState:function(e){return[zr(e),Br(e)]},useRecoilStateLoadable:function(e){return[Ur(e),Br(e)]},useRecoilValue:zr,useRecoilValueLoadable:Ur,useResetRecoilState:function(e){const t=_r();return Rr((()=>{Ar(t.current,e,pr)}),[t,e])},useSetRecoilState:Br,useSetUnvalidatedAtomValues:function(){const e=_r();return(t,n={})=>{hr((()=>{e.current.addTransactionMetadata(n),t.forEach(((t,n)=>Er(e.current,new xr(n),t)))}))}},useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Vr,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:Hr,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:function(e){return[Hr(e),Br(e)]}};var Wr=function(e,t){const n=new Map;for(const[r,o]of e)t(o,r)&&n.set(r,o);return n};var Gr=function(e,t){const n=new Set;for(const r of e)t(r)&&n.add(r);return n};var qr=function(...e){const t=new Map;for(let n=0;n<e.length;n++){const r=e[n].keys();let o;for(;!(o=r.next()).done;)t.set(o.value,e[n].get(o.value))}return t};const{batchUpdates:Yr}=Lt,{DEFAULT_VALUE:Xr,getNode:Zr,nodes:Kr}=se,{useStoreRef:Qr}=Jn,{AbstractRecoilValue:Jr,setRecoilValueLoadable:eo}=gt,{SUSPENSE_TIMEOUT_MS:to}=Rt,{cloneSnapshot:no}=vn,{useCallback:ro,useEffect:oo,useRef:io,useState:ao}=r,{isSSR:so}=Ut;function uo(e){const t=Qr();oo((()=>t.current.subscribeToTransactions(e).release),[e,t])}function lo(e){const t=e.atomValues.toMap(),n=me(Wr(t,((e,t)=>{const n=Zr(t).persistence_UNSTABLE;return null!=n&&"none"!==n.type&&"hasValue"===e.state})),(e=>e.contents));return qr(e.nonvalidatedAtoms.toMap(),n)}function co(e,t){var n;const r=e.getState(),o=null!==(n=r.nextTree)&&void 0!==n?n:r.currentTree,i=t.getStore_INTERNAL().getState().currentTree;Yr((()=>{const n=new Set;for(const e of[o.atomValues.keys(),i.atomValues.keys()])for(const t of e){var r,a;(null===(r=o.atomValues.get(t))||void 0===r?void 0:r.contents)!==(null===(a=i.atomValues.get(t))||void 0===a?void 0:a.contents)&&Zr(t).shouldRestoreFromSnapshots&&n.add(t)}n.forEach((t=>{eo(e,new Jr(t),i.atomValues.has(t)?s(i.atomValues.get(t)):Xr)})),e.replaceState((e=>({...e,stateID:t.getID()})))}))}var fo={useRecoilSnapshot:function(){const e=Qr(),[t,n]=ao((()=>no(e.current))),r=rr(t),o=io(),i=io();if(uo(ro((e=>n(no(e))),[])),oo((()=>{const e=t.retain();var n;o.current&&!so&&(window.clearTimeout(o.current),o.current=null,null===(n=i.current)||void 0===n||n.call(i),i.current=null);return()=>{window.setTimeout(e,10)}}),[t]),r!==t&&!so){var a;if(o.current)window.clearTimeout(o.current),o.current=null,null===(a=i.current)||void 0===a||a.call(i),i.current=null;i.current=t.retain(),o.current=window.setTimeout((()=>{var e;o.current=null,null===(e=i.current)||void 0===e||e.call(i),i.current=null}),to)}return t},gotoSnapshot:co,useGotoRecoilSnapshot:function(){const e=Qr();return ro((t=>co(e.current,t)),[e])},useRecoilTransactionObserver:function(e){uo(ro((t=>{const n=no(t,"latest"),r=no(t,"previous");e({snapshot:n,previousSnapshot:r})}),[e]))},useTransactionObservation_DEPRECATED:function(e){uo(ro((t=>{let n=t.getState().previousTree;const r=t.getState().currentTree;n||(D("Transaction subscribers notified without a previous tree being present -- this is a bug in Recoil"),n=t.getState().currentTree);const o=lo(r),i=lo(n),a=me(Kr,(e=>{var t,n,r,o;return{persistence_UNSTABLE:{type:null!==(t=null===(n=e.persistence_UNSTABLE)||void 0===n?void 0:n.type)&&void 0!==t?t:"none",backButton:null!==(r=null===(o=e.persistence_UNSTABLE)||void 0===o?void 0:o.backButton)&&void 0!==r&&r}}})),s=Gr(r.dirtyAtoms,(e=>o.has(e)||i.has(e)));e({atomValues:o,previousAtomValues:i,atomInfo:a,modifiedAtoms:s,transactionMetadata:{...r.transactionMetadata}})}),[e]))},useTransactionSubscription_DEPRECATED:uo};const{peekNodeInfo:ho}=We,{useStoreRef:po}=Jn;var go=function(){const e=po();return({key:t})=>ho(e.current,e.current.getState().currentTree,t)};const{reactMode:vo}=B,{RecoilRoot:yo,useStoreRef:mo}=Jn,{useMemo:bo}=r;var _o=function(){"MUTABLE_SOURCE"===vo().mode&&console.warn("Warning: There are known issues using useRecoilBridgeAcrossReactRoots() in recoil_mutable_source rendering mode. Please consider upgrading to recoil_sync_external_store mode.");const e=mo().current;return bo((()=>function({children:t}){return r.createElement(yo,{store_INTERNAL:e},t)}),[e])};const{loadableWithValue:wo}=O,{initializeNode:xo}=We,{DEFAULT_VALUE:So,getNode:Ao}=se,{copyTreeState:Eo,getRecoilValueAsLoadable:Co,invalidateDownstreams:Ro,writeLoadableToTreeState:Oo}=gt;function To(e){return"atom"===Ao(e.key).nodeType}class ko{constructor(e,t){u(this,"_store",void 0),u(this,"_treeState",void 0),u(this,"_changes",void 0),u(this,"get",(e=>{if(this._changes.has(e.key))return this._changes.get(e.key);if(!To(e))throw i("Reading selectors within atomicUpdate is not supported");const t=Co(this._store,e,this._treeState);if("hasValue"===t.state)return t.contents;throw"hasError"===t.state?t.contents:i(`Expected Recoil atom ${e.key} to have a value, but it is in a loading state.`)})),u(this,"set",((e,t)=>{if(!To(e))throw i("Setting selectors within atomicUpdate is not supported");if("function"===typeof t){const n=this.get(e);this._changes.set(e.key,t(n))}else xo(this._store,e.key,"set"),this._changes.set(e.key,t)})),u(this,"reset",(e=>{this.set(e,So)})),this._store=e,this._treeState=t,this._changes=new Map}newTreeState_INTERNAL(){if(0===this._changes.size)return this._treeState;const e=Eo(this._treeState);for(const[t,n]of this._changes)Oo(e,t,wo(n));return Ro(this._store,e),e}}var Mo=function(e){return t=>{e.replaceState((n=>{const r=new ko(e,n);return t(r),r.newTreeState_INTERNAL()}))}},Po=Mo,No=Object.freeze({__proto__:null,atomicUpdater:Po});var Io=function(e,t){if(!e)throw new Error(t)};const{atomicUpdater:Lo}=No,{batchUpdates:Do}=Lt,{DEFAULT_VALUE:Fo}=se,{useStoreRef:jo}=Jn,{refreshRecoilValue:Uo,setRecoilValue:zo}=gt,{cloneSnapshot:Bo}=vn,{gotoSnapshot:Vo}=fo,{useCallback:Ho}=r;class $o{}const Wo=new $o;function Go(e,t,n,r){let o,s=Wo;var u;(Do((()=>{const a="useRecoilCallback() expects a function that returns a function: it accepts a function of the type (RecoilInterface) => (Args) => ReturnType and returns a callback function (Args) => ReturnType, where RecoilInterface is an object {snapshot, set, ...} and Args and ReturnType are the argument and return types of the callback you want to create. Please see the docs at recoiljs.org for details.";if("function"!==typeof t)throw i(a);const u=Ie({...null!==r&&void 0!==r?r:{},set:(t,n)=>zo(e,t,n),reset:t=>zo(e,t,Fo),refresh:t=>Uo(e,t),gotoSnapshot:t=>Vo(e,t),transact_UNSTABLE:t=>Lo(e)(t)},{snapshot:()=>{const t=Bo(e);return o=t.retain(),t}}),l=t(u);if("function"!==typeof l)throw i(a);s=l(...n)})),s instanceof $o&&Io(!1),a(s))?s=s.finally((()=>{var e;null===(e=o)||void 0===e||e()})):null===(u=o)||void 0===u||u();return s}var qo={recoilCallback:Go,useRecoilCallback:function(e,t){const n=jo();return Ho(((...t)=>Go(n.current,e,t)),null!=t?[...t,n]:void 0)}};const{useStoreRef:Yo}=Jn,{refreshRecoilValue:Xo}=gt,{useCallback:Zo}=r;var Ko=function(e){const t=Yo();return Zo((()=>{const n=t.current;Xo(n,e)}),[e,t])};const{atomicUpdater:Qo}=No,{useStoreRef:Jo}=Jn,{useMemo:ei}=r;var ti=function(e,t){const n=Jo();return ei((()=>(...t)=>{Qo(n.current)((n=>{e(n)(...t)}))}),null!=t?[...t,n]:void 0)};var ni=class{constructor(e){u(this,"value",void 0),this.value=e}},ri=Object.freeze({__proto__:null,WrappedValue:ni});const{isFastRefreshEnabled:oi}=B;class ii extends Error{}var ai=class{constructor(e){var t,n,r;u(this,"_name",void 0),u(this,"_numLeafs",void 0),u(this,"_root",void 0),u(this,"_onHit",void 0),u(this,"_onSet",void 0),u(this,"_mapNodeValue",void 0),this._name=null===e||void 0===e?void 0:e.name,this._numLeafs=0,this._root=null,this._onHit=null!==(t=null===e||void 0===e?void 0:e.onHit)&&void 0!==t?t:()=>{},this._onSet=null!==(n=null===e||void 0===e?void 0:e.onSet)&&void 0!==n?n:()=>{},this._mapNodeValue=null!==(r=null===e||void 0===e?void 0:e.mapNodeValue)&&void 0!==r?r:e=>e}size(){return this._numLeafs}root(){return this._root}get(e,t){var n;return null===(n=this.getLeafNode(e,t))||void 0===n?void 0:n.value}getLeafNode(e,t){if(null==this._root)return;let n=this._root;for(;n;){if(null===t||void 0===t||t.onNodeVisit(n),"leaf"===n.type)return this._onHit(n),n;const r=this._mapNodeValue(e(n.nodeKey));n=n.branches.get(r)}}set(e,t,n){const r=()=>{var r,o,i,a;let s,u;for(const[t,p]of e){var l,c,f;const e=this._root;if("leaf"===(null===e||void 0===e?void 0:e.type))throw this.invalidCacheError();const r=s;if(s=r?r.branches.get(u):e,s=null!==(l=s)&&void 0!==l?l:{type:"branch",nodeKey:t,parent:r,branches:new Map,branchKey:u},"branch"!==s.type||s.nodeKey!==t)throw this.invalidCacheError();null===r||void 0===r||r.branches.set(u,s),null===n||void 0===n||null===(c=n.onNodeVisit)||void 0===c||c.call(n,s),u=this._mapNodeValue(p),this._root=null!==(f=this._root)&&void 0!==f?f:s}const d=s?null===(r=s)||void 0===r?void 0:r.branches.get(u):this._root;if(null!=d&&("leaf"!==d.type||d.branchKey!==u))throw this.invalidCacheError();const h={type:"leaf",value:t,parent:s,branchKey:u};null===(o=s)||void 0===o||o.branches.set(u,h),this._root=null!==(i=this._root)&&void 0!==i?i:h,this._numLeafs++,this._onSet(h),null===n||void 0===n||null===(a=n.onNodeVisit)||void 0===a||a.call(n,h)};try{r()}catch(o){if(!(o instanceof ii))throw o;this.clear(),r()}}delete(e){const t=this.root();if(!t)return!1;if(e===t)return this._root=null,this._numLeafs=0,!0;let n=e.parent,r=e.branchKey;for(;n;){var o;if(n.branches.delete(r),n===t)return 0===n.branches.size?(this._root=null,this._numLeafs=0):this._numLeafs--,!0;if(n.branches.size>0)break;r=null===(o=n)||void 0===o?void 0:o.branchKey,n=n.parent}for(;n!==t;n=n.parent)if(null==n)return!1;return this._numLeafs--,!0}clear(){this._numLeafs=0,this._root=null}invalidCacheError(){const e=oi()?"Possible Fast Refresh module reload detected. This may also be caused by an selector returning inconsistent values. Resetting cache.":"Invalid cache values. This happens when selectors do not return consistent values for the same input dependency values. That may also be caused when using Fast Refresh to change a selector implementation. Resetting cache.";throw D(e+(null!=this._name?` - ${this._name}`:"")),new ii}},si=Object.freeze({__proto__:null,TreeCache:ai});var ui=class{constructor(e){var t;u(this,"_maxSize",void 0),u(this,"_size",void 0),u(this,"_head",void 0),u(this,"_tail",void 0),u(this,"_map",void 0),u(this,"_keyMapper",void 0),this._maxSize=e.maxSize,this._size=0,this._head=null,this._tail=null,this._map=new Map,this._keyMapper=null!==(t=e.mapKey)&&void 0!==t?t:e=>e}head(){return this._head}tail(){return this._tail}size(){return this._size}maxSize(){return this._maxSize}has(e){return this._map.has(this._keyMapper(e))}get(e){const t=this._keyMapper(e),n=this._map.get(t);if(n)return this.set(e,n.value),n.value}set(e,t){const n=this._keyMapper(e);this._map.get(n)&&this.delete(e);const r=this.head(),o={key:e,right:r,left:null,value:t};r?r.left=o:this._tail=o,this._map.set(n,o),this._head=o,this._size++,this._maybeDeleteLRU()}_maybeDeleteLRU(){this.size()>this.maxSize()&&this.deleteLru()}deleteLru(){const e=this.tail();e&&this.delete(e.key)}delete(e){const t=this._keyMapper(e);if(!this._size||!this._map.has(t))return;const n=s(this._map.get(t)),r=n.right,o=n.left;r&&(r.left=n.left),o&&(o.right=n.right),n===this.head()&&(this._head=r),n===this.tail()&&(this._tail=o),this._map.delete(t),this._size--}clear(){this._size=0,this._head=null,this._tail=null,this._map=new Map}},li=Object.freeze({__proto__:null,LRUCache:ui});const{LRUCache:ci}=li,{TreeCache:fi}=si;var di=function({name:e,maxSize:t,mapNodeValue:n=(e=>e)}){const r=new ci({maxSize:t}),o=new fi({name:e,mapNodeValue:n,onHit:e=>{r.set(e,!0)},onSet:e=>{const n=r.tail();r.set(e,!0),n&&o.size()>t&&o.delete(n.key)}});return o};function hi(e,t,n){if("string"===typeof e&&!e.includes('"')&&!e.includes("\\"))return`"${e}"`;switch(typeof e){case"undefined":return"";case"boolean":return e?"true":"false";case"number":case"symbol":return String(e);case"string":return JSON.stringify(e);case"function":if(!0!==(null===t||void 0===t?void 0:t.allowFunctions))throw i("Attempt to serialize function in a Recoil cache key");return`__FUNCTION(${e.name})__`}if(null===e)return"null";var r;if("object"!==typeof e)return null!==(r=JSON.stringify(e))&&void 0!==r?r:"";if(a(e))return"__PROMISE__";if(Array.isArray(e))return`[${e.map(((e,n)=>hi(e,t,n.toString())))}]`;if("function"===typeof e.toJSON)return hi(e.toJSON(n),t,n);if(e instanceof Map){const r={};for(const[n,o]of e)r["string"===typeof n?n:hi(n,t)]=o;return hi(r,t,n)}return e instanceof Set?hi(Array.from(e).sort(((e,n)=>hi(e,t).localeCompare(hi(n,t)))),t,n):void 0!==Symbol&&null!=e[Symbol.iterator]&&"function"===typeof e[Symbol.iterator]?hi(Array.from(e),t,n):`{${Object.keys(e).filter((t=>void 0!==e[t])).sort().map((n=>`${hi(n,t)}:${hi(e[n],t,n)}`)).join(",")}}`}var pi=function(e,t={allowFunctions:!1}){return hi(e,t)};const{TreeCache:gi}=si,vi={equality:"reference",eviction:"keep-all",maxSize:1/0};var yi=function({equality:e=vi.equality,eviction:t=vi.eviction,maxSize:n=vi.maxSize}=vi,r){const o=function(e){switch(e){case"reference":return e=>e;case"value":return e=>pi(e)}throw i(`Unrecognized equality policy ${e}`)}(e);return function(e,t,n,r){switch(e){case"keep-all":return new gi({name:r,mapNodeValue:n});case"lru":return di({name:r,maxSize:s(t),mapNodeValue:n});case"most-recent":return di({name:r,maxSize:1,mapNodeValue:n})}throw i(`Unrecognized eviction policy ${e}`)}(t,n,o,r)};const{isReactNative:mi,isWindow:bi}=Ut;var _i={startPerfBlock:function(e){return()=>null}};const{isLoadable:wi,loadableWithError:xi,loadableWithPromise:Si,loadableWithValue:Ai}=O,{WrappedValue:Ei}=ri,{getNodeLoadable:Ci,peekNodeLoadable:Ri,setNodeValue:Oi}=We,{saveDepsToStore:Ti}=_e,{DEFAULT_VALUE:ki,getConfigDeletionHandler:Mi,getNode:Pi,registerNode:Ni}=se,{isRecoilValue:Ii}=Z,{markRecoilValueModified:Li}=gt,{retainedByOptionWithDefault:Di}=Rt,{recoilCallback:Fi}=qo,{startPerfBlock:ji}=_i;class Ui{}const zi=new Ui,Bi=[],Vi=new Map,Hi=(()=>{let e=0;return()=>e++})();function $i(e){let t=null;const{key:n,get:r,cachePolicy_UNSTABLE:o}=e,u=null!=e.set?e.set:void 0;const l=new Set,c=yi(null!==o&&void 0!==o?o:{equality:"reference",eviction:"keep-all"},n),f=Di(e.retainedBy_UNSTABLE),d=new Map;let h=0;function p(){return!P("recoil_memory_managament_2020")||h>0}function g(e){return e.getState().knownSelectors.add(n),h++,()=>{h--}}function v(){return void 0!==Mi(n)&&!p()}function y(e,t,n,r,o){k(t,r,o),m(e,n)}function m(e,t){T(e,t)&&O(e),b(t,!0)}function b(e,n){const r=Vi.get(e);if(null!=r){for(const e of r)Li(e,s(t));n&&Vi.delete(e)}}function _(e,t){let n=Vi.get(t);null==n&&Vi.set(t,n=new Set),n.add(e)}function w(e,t,n,r,o,i){return t.then((r=>{if(!p())throw O(e),zi;null!=i.loadingDepKey&&i.loadingDepPromise===t?n.atomValues.set(i.loadingDepKey,Ai(r)):e.getState().knownSelectors.forEach((e=>{n.atomValues.delete(e)}));const a=A(e,n);if(a&&"loading"!==a.state){if((T(e,o)||null==R(e))&&m(e,o),"hasValue"===a.state)return a.contents;throw a.contents}if(!T(e,o)){const t=C(e,n);if(null!=t)return t.loadingLoadable.contents}const[s,u]=S(e,n,o);if("loading"!==s.state&&y(e,n,o,s,u),"hasError"===s.state)throw s.contents;return s.contents})).catch((t=>{if(t instanceof Ui)throw zi;if(!p())throw O(e),zi;const i=xi(t);throw y(e,n,o,i,r),t}))}function x(e,t,r,o){var i,a,s,u,c,f,d;(T(e,o)||t.version===(null===(i=e.getState())||void 0===i||null===(a=i.currentTree)||void 0===a?void 0:a.version)||t.version===(null===(s=e.getState())||void 0===s||null===(u=s.nextTree)||void 0===u?void 0:u.version))&&Ti(n,r,e,null!==(c=null===(f=e.getState())||void 0===f||null===(d=f.nextTree)||void 0===d?void 0:d.version)&&void 0!==c?c:e.getState().currentTree.version);for(const n of r)l.add(n)}function S(e,o,u){const l=ji(n);let c=!0,f=!0;const d=()=>{l(),f=!1};let h,g,v=!1;const m={loadingDepKey:null,loadingDepPromise:null},_=new Map;function S({key:t}){const n=Ci(e,o,t);switch(_.set(t,n),c||(x(e,o,new Set(_.keys()),u),function(e,t){T(e,t)&&(s(R(e)).stateVersions.clear(),b(t,!1))}(e,u)),n.state){case"hasValue":return n.contents;case"hasError":throw n.contents;case"loading":throw m.loadingDepKey=t,m.loadingDepPromise=n.contents,n.contents}throw i("Invalid Loadable state")}const A=n=>(...r)=>{if(f)throw i("Callbacks from getCallback() should only be called asynchronously after the selector is evalutated. It can be used for selectors to return objects with callbacks that can work with Recoil state without a subscription.");return null==t&&Io(!1),Fi(e,n,r,{node:t})};try{h=r({get:S,getCallback:A}),h=Ii(h)?S(h):h,wi(h)&&("hasError"===h.state&&(v=!0),h=h.contents),a(h)?h=function(e,t,n,r,o,i){return t.then((t=>{if(!p())throw O(e),zi;const i=Ai(t);return y(e,n,o,i,r),t})).catch((t=>{if(!p())throw O(e),zi;if(a(t))return w(e,t,n,r,o,i);const s=xi(t);throw y(e,n,o,s,r),t}))}(e,h,o,_,u,m).finally(d):d(),h=h instanceof Ei?h.value:h}catch(E){h=E,a(h)?h=w(e,h,o,_,u,m).finally(d):(v=!0,d())}return g=v?xi(h):a(h)?Si(h):Ai(h),c=!1,function(e,t,n){if(T(e,t)){const t=R(e);null!=t&&(t.depValuesDiscoveredSoFarDuringAsyncWork=n)}}(e,u,_),x(e,o,new Set(_.keys()),u),[g,_]}function A(e,t){let r=t.atomValues.get(n);if(null!=r)return r;const o=new Set;try{r=c.get((n=>("string"!==typeof n&&Io(!1),Ci(e,t,n).contents)),{onNodeVisit:e=>{"branch"===e.type&&e.nodeKey!==n&&o.add(e.nodeKey)}})}catch(s){throw i(`Problem with cache lookup for selector "${n}": ${s.message}`)}var a;r&&(t.atomValues.set(n,r),x(e,t,o,null===(a=R(e))||void 0===a?void 0:a.executionID));return r}function E(e,t){const n=A(e,t);if(null!=n)return O(e),n;const r=C(e,t);var o;if(null!=r)return"loading"===(null===(o=r.loadingLoadable)||void 0===o?void 0:o.state)&&_(e,r.executionID),r.loadingLoadable;const i=Hi(),[a,s]=S(e,t,i);return"loading"===a.state?(!function(e,t,n,r,o){d.set(e,{depValuesDiscoveredSoFarDuringAsyncWork:r,executionID:t,loadingLoadable:n,stateVersions:new Map([[o.version,!0]])})}(e,i,a,s,t),_(e,i)):(O(e),k(t,a,s)),a}function C(e,t){const n=Dt([d.has(e)?[s(d.get(e))]:[],Q(Ne(d,(([t])=>t!==e)),(([,e])=>e))]);function r(n){for(const[r,o]of n)if(!Ci(e,t,r).is(o))return!0;return!1}for(const o of n){if(o.stateVersions.get(t.version)||!r(o.depValuesDiscoveredSoFarDuringAsyncWork))return o.stateVersions.set(t.version,!0),o;o.stateVersions.set(t.version,!1)}}function R(e){return d.get(e)}function O(e){d.delete(e)}function T(e,t){var n;return t===(null===(n=R(e))||void 0===n?void 0:n.executionID)}function k(e,t,r){e.atomValues.set(n,t);try{c.set(function(e){return Array.from(e.entries()).map((([e,t])=>[e,t.contents]))}(r),t)}catch(o){throw i(`Problem with setting cache for selector "${n}": ${o.message}`)}}function M(e,t){const r=t.atomValues.get(n);return null!=r?r:c.get((n=>{var r;return"string"!==typeof n&&Io(!1),null===(r=Ri(e,t,n))||void 0===r?void 0:r.contents}))}function N(e,t){return function(e){if(Bi.includes(n)){const e=`Recoil selector has circular dependencies: ${Bi.slice(Bi.indexOf(n)).join(" \u2192 ")}`;return xi(i(e))}Bi.push(n);try{return e()}finally{Bi.pop()}}((()=>E(e,t)))}function I(e){e.atomValues.delete(n)}function L(e,n){null==t&&Io(!1);for(const t of l){var r;const o=Pi(t);null===(r=o.clearCache)||void 0===r||r.call(o,e,n)}l.clear(),I(n),c.clear(),Li(e,t)}if(null!=u){return t=Ni({key:n,nodeType:"selector",peek:M,get:N,set:(e,t,r)=>{let o=!1;const s=new Map;function l({key:r}){if(o)throw i("Recoil: Async selector sets are not currently supported.");const a=Ci(e,t,r);if("hasValue"===a.state)return a.contents;if("loading"===a.state){const e=`Getting value of asynchronous atom or selector "${r}" in a pending state while setting selector "${n}" is not yet supported.`;throw D(e),i(e)}throw a.contents}function c(n,r){if(o){const e="Recoil: Async selector sets are not currently supported.";throw D(e),i(e)}const a="function"===typeof r?r(l(n)):r;Oi(e,t,n.key,a).forEach(((e,t)=>s.set(t,e)))}const f=u({set:c,get:l,reset:function(e){c(e,ki)}},r);if(void 0!==f)throw a(f)?i("Recoil: Async selector sets are not currently supported."):i("Recoil: selector set should be a void function.");return o=!0,s},init:g,invalidate:I,clearCache:L,shouldDeleteConfigOnRelease:v,dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1,retainedBy:f})}return t=Ni({key:n,nodeType:"selector",peek:M,get:N,init:g,invalidate:I,clearCache:L,shouldDeleteConfigOnRelease:v,dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1,retainedBy:f})}$i.value=e=>new Ei(e);var Wi=$i;const{isLoadable:Gi,loadableWithError:qi,loadableWithPromise:Yi,loadableWithValue:Xi}=O,{WrappedValue:Zi}=ri,{peekNodeInfo:Ki}=We,{DEFAULT_VALUE:Qi,DefaultValue:Ji,getConfigDeletionHandler:ea,registerNode:ta,setConfigDeletionHandler:na}=se,{isRecoilValue:ra}=Z,{getRecoilValueAsLoadable:oa,markRecoilValueModified:ia,setRecoilValue:aa,setRecoilValueLoadable:sa}=gt,{retainedByOptionWithDefault:ua}=Rt,la=e=>e instanceof Zi?e.value:e;function ca(e){const{key:t,persistence_UNSTABLE:n}=e,r=ua(e.retainedBy_UNSTABLE);let o=0;function u(e){return Yi(e.then((e=>(c=Xi(e),e))).catch((e=>{throw c=qi(e),e})))}let l,c=a(e.default)?u(e.default):Gi(e.default)?"loading"===e.default.state?u(e.default.contents):e.default:Xi(la(e.default));d(c.contents);const f=new Map;function d(e){return e}function h(e,n){var r,o;return null!==(r=null!==(o=n.atomValues.get(t))&&void 0!==o?o:l)&&void 0!==r?r:c}const p=ta({key:t,nodeType:"atom",peek:h,get:function(e,r){if(r.atomValues.has(t))return s(r.atomValues.get(t));if(r.nonvalidatedAtoms.has(t)){if(null!=l)return l;if(null==n)return K(`Tried to restore a persisted value for atom ${t} but it has no persistence settings.`),c;const e=r.nonvalidatedAtoms.get(t),o=n.validator(e,Qi),i=o instanceof Ji?c:Xi(o);return l=i,l}return c},set:function(e,n,r){if(n.atomValues.has(t)){const e=s(n.atomValues.get(t));if("hasValue"===e.state&&r===e.contents)return new Map}else if(!n.nonvalidatedAtoms.has(t)&&r instanceof Ji)return new Map;return l=void 0,(new Map).set(t,Xi(r))},init:function(n,r,s){var u;if(o++,n.getState().knownAtoms.add(t),"loading"===c.state){const y=()=>{var e;(null!==(e=n.getState().nextTree)&&void 0!==e?e:n.getState().currentTree).atomValues.has(t)||ia(n,p)};c.contents.finally(y)}const l=null!==(u=e.effects)&&void 0!==u?u:e.effects_UNSTABLE;if(null!=l){let m=Qi,b=!0,_=!1,w=null;function x(e){if(b&&e.key===t){const e=m;return e instanceof Ji?h(n,r):a(e)?Yi(e.then((e=>e instanceof Ji?c.toPromise():e))):Xi(e)}return oa(n,e)}function S(e){return x(e).toPromise()}function A(e){var r;const o=Ki(n,null!==(r=n.getState().nextTree)&&void 0!==r?r:n.getState().currentTree,e.key);return!b||e.key!==t||m instanceof Ji?o:{...o,isSet:!0,loadable:x(e)}}const E=e=>t=>{if(b){const n=x(p),r="hasValue"===n.state?n.contents:Qi;m="function"===typeof t?t(r):t,a(m)&&(m=m.then((t=>(w={effect:e,value:t},t))))}else{if(a(t))throw i("Setting atoms to async values is not implemented.");"function"!==typeof t&&(w={effect:e,value:la(t)}),aa(n,p,"function"===typeof t?n=>{const r=la(t(n));return w={effect:e,value:r},r}:la(t))}},C=e=>()=>E(e)(Qi),R=e=>r=>{var o;const{release:i}=n.subscribeToTransactions((n=>{var o;let{currentTree:i,previousTree:a}=n.getState();a||(D("Transaction subscribers notified without a next tree being present -- this is a bug in Recoil"),a=i);const s=null!==(o=i.atomValues.get(t))&&void 0!==o?o:c;if("hasValue"===s.state){var u,l,f,d;const n=s.contents,o=null!==(u=a.atomValues.get(t))&&void 0!==u?u:c,h="hasValue"===o.state?o.contents:Qi;(null===(l=w)||void 0===l?void 0:l.effect)!==e||(null===(f=w)||void 0===f?void 0:f.value)!==n?r(n,h,!i.atomValues.has(t)):(null===(d=w)||void 0===d?void 0:d.effect)===e&&(w=null)}}),t);f.set(n,[...null!==(o=f.get(n))&&void 0!==o?o:[],i])};for(const O of l)try{const T=O({node:p,storeID:n.storeID,parentStoreID_UNSTABLE:n.parentStoreID,trigger:s,setSelf:E(O),resetSelf:C(O),onSet:R(O),getPromise:S,getLoadable:x,getInfo_UNSTABLE:A});var d;if(null!=T)f.set(n,[...null!==(d=f.get(n))&&void 0!==d?d:[],T])}catch(v){m=v,_=!0}if(b=!1,!(m instanceof Ji)){var g;const k=_?qi(m):a(m)?Yi(function(e,n){const r=n.then((n=>{var o,i;return(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&aa(e,p,n),n})).catch((n=>{var o,i;throw(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&sa(e,p,qi(n)),n}));return r}(n,m)):Xi(la(m));k.contents,r.atomValues.set(t,k),null===(g=n.getState().nextTree)||void 0===g||g.atomValues.set(t,k)}}return()=>{var e;o--,null===(e=f.get(n))||void 0===e||e.forEach((e=>e())),f.delete(n)}},invalidate:function(){l=void 0},shouldDeleteConfigOnRelease:function(){return void 0!==ea(t)&&o<=0},dangerouslyAllowMutability:e.dangerouslyAllowMutability,persistence_UNSTABLE:e.persistence_UNSTABLE?{type:e.persistence_UNSTABLE.type,backButton:e.persistence_UNSTABLE.backButton}:void 0,shouldRestoreFromSnapshots:!0,retainedBy:r});return p}function fa(e){const{...t}=e,n="default"in e?e.default:new Promise((()=>{}));return ra(n)?function(e){const t=fa({...e,default:Qi,persistence_UNSTABLE:void 0===e.persistence_UNSTABLE?void 0:{...e.persistence_UNSTABLE,validator:t=>t instanceof Ji?t:s(e.persistence_UNSTABLE).validator(t,Qi)},effects:e.effects,effects_UNSTABLE:e.effects_UNSTABLE}),n=Wi({key:`${e.key}__withFallback`,get:({get:n})=>{const r=n(t);return r instanceof Ji?e.default:r},set:({set:e},n)=>e(t,n),cachePolicy_UNSTABLE:{eviction:"most-recent"},dangerouslyAllowMutability:e.dangerouslyAllowMutability});return na(n.key,ea(e.key)),n}({...t,default:n}):ca({...t,default:n})}fa.value=e=>new Zi(e);var da=fa;var ha=class{constructor(e){var t;u(this,"_map",void 0),u(this,"_keyMapper",void 0),this._map=new Map,this._keyMapper=null!==(t=null===e||void 0===e?void 0:e.mapKey)&&void 0!==t?t:e=>e}size(){return this._map.size}has(e){return this._map.has(this._keyMapper(e))}get(e){return this._map.get(this._keyMapper(e))}set(e,t){this._map.set(this._keyMapper(e),t)}delete(e){this._map.delete(this._keyMapper(e))}clear(){this._map.clear()}},pa=Object.freeze({__proto__:null,MapCache:ha});const{LRUCache:ga}=li,{MapCache:va}=pa,ya={equality:"reference",eviction:"none",maxSize:1/0};var ma=function({equality:e=ya.equality,eviction:t=ya.eviction,maxSize:n=ya.maxSize}=ya){const r=function(e){switch(e){case"reference":return e=>e;case"value":return e=>pi(e)}throw i(`Unrecognized equality policy ${e}`)}(e);return function(e,t,n){switch(e){case"keep-all":return new va({mapKey:n});case"lru":return new ga({mapKey:n,maxSize:s(t)});case"most-recent":return new ga({mapKey:n,maxSize:1})}throw i(`Unrecognized eviction policy ${e}`)}(t,n,r)};const{setConfigDeletionHandler:ba}=se;var _a=function(e){var t,n;const r=ma({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return t=>{var n,o;const i=r.get(t);if(null!=i)return i;const{cachePolicyForParams_UNSTABLE:a,...s}=e,u="default"in e?e.default:new Promise((()=>{})),l=da({...s,key:`${e.key}__${null!==(n=pi(t))&&void 0!==n?n:"void"}`,default:"function"===typeof u?u(t):u,retainedBy_UNSTABLE:"function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE,effects:"function"===typeof e.effects?e.effects(t):"function"===typeof e.effects_UNSTABLE?e.effects_UNSTABLE(t):null!==(o=e.effects)&&void 0!==o?o:e.effects_UNSTABLE});return r.set(t,l),ba(l.key,(()=>{r.delete(t)})),l}};const{setConfigDeletionHandler:wa}=se;let xa=0;var Sa=function(e){var t,n;const r=ma({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return t=>{var n;let o;try{o=r.get(t)}catch(f){throw i(`Problem with cache lookup for selector ${e.key}: ${f.message}`)}if(null!=o)return o;const a=`${e.key}__selectorFamily/${null!==(n=pi(t,{allowFunctions:!0}))&&void 0!==n?n:"void"}/${xa++}`,s=n=>e.get(t)(n),u=e.cachePolicy_UNSTABLE,l="function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE;let c;if(null!=e.set){const n=e.set;c=Wi({key:a,get:s,set:(e,r)=>n(t)(e,r),cachePolicy_UNSTABLE:u,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:l})}else c=Wi({key:a,get:s,cachePolicy_UNSTABLE:u,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:l});return r.set(t,c),wa(c.key,(()=>{r.delete(t)})),c}};const Aa=Sa({key:"__constant",get:e=>()=>e,cachePolicyForParams_UNSTABLE:{equality:"reference"}});var Ea=function(e){return Aa(e)};const Ca=Sa({key:"__error",get:e=>()=>{throw i(e)},cachePolicyForParams_UNSTABLE:{equality:"reference"}});var Ra=function(e){return Ca(e)};var Oa=function(e){return e};const{loadableWithError:Ta,loadableWithPromise:ka,loadableWithValue:Ma}=O;function Pa(e,t){const n=Array(t.length).fill(void 0),r=Array(t.length).fill(void 0);for(const[i,a]of t.entries())try{n[i]=e(a)}catch(o){r[i]=o}return[n,r]}function Na(e){return null!=e&&!a(e)}function Ia(e){return Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((t=>e[t]))}function La(e,t){return Array.isArray(e)?t:Object.getOwnPropertyNames(e).reduce(((e,n,r)=>({...e,[n]:t[r]})),{})}function Da(e,t,n){return La(e,n.map(((e,n)=>null==e?Ma(t[n]):a(e)?ka(e):Ta(e))))}var Fa={waitForNone:Sa({key:"__waitForNone",get:e=>({get:t})=>{const n=Ia(e),[r,o]=Pa(t,n);return Da(e,r,o)},dangerouslyAllowMutability:!0}),waitForAny:Sa({key:"__waitForAny",get:e=>({get:t})=>{const n=Ia(e),[r,o]=Pa(t,n);return o.some((e=>!a(e)))?Da(e,r,o):new Promise((t=>{for(const[n,i]of o.entries())a(i)&&i.then((i=>{r[n]=i,o[n]=void 0,t(Da(e,r,o))})).catch((i=>{o[n]=i,t(Da(e,r,o))}))}))},dangerouslyAllowMutability:!0}),waitForAll:Sa({key:"__waitForAll",get:e=>({get:t})=>{const n=Ia(e),[r,o]=Pa(t,n);if(o.every((e=>null==e)))return La(e,r);const i=o.find(Na);if(null!=i)throw i;return Promise.all(o).then((t=>{return La(e,(n=r,t.map(((e,t)=>void 0===e?n[t]:e))));var n}))},dangerouslyAllowMutability:!0}),waitForAllSettled:Sa({key:"__waitForAllSettled",get:e=>({get:t})=>{const n=Ia(e),[r,o]=Pa(t,n);return o.every((e=>!a(e)))?Da(e,r,o):Promise.all(o.map(((e,t)=>a(e)?e.then((e=>{r[t]=e,o[t]=void 0})).catch((e=>{r[t]=void 0,o[t]=e})):null))).then((()=>Da(e,r,o)))},dangerouslyAllowMutability:!0}),noWait:Sa({key:"__noWait",get:e=>({get:t})=>{try{return Wi.value(Ma(t(e)))}catch(n){return Wi.value(a(n)?ka(n):Ta(n))}},dangerouslyAllowMutability:!0})};const{RecoilLoadable:ja}=O,{DefaultValue:Ua}=se,{RecoilRoot:za,useRecoilStoreID:Ba}=Jn,{isRecoilValue:Va}=Z,{retentionZone:Ha}=Me,{freshSnapshot:$a}=vn,{useRecoilState:Wa,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:Ga,useRecoilStateLoadable:qa,useRecoilValue:Ya,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:Xa,useRecoilValueLoadable:Za,useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Ka,useResetRecoilState:Qa,useSetRecoilState:Ja}=$r,{useGotoRecoilSnapshot:es,useRecoilSnapshot:ts,useRecoilTransactionObserver:ns}=fo,{useRecoilCallback:rs}=qo,{noWait:os,waitForAll:is,waitForAllSettled:as,waitForAny:ss,waitForNone:us}=Fa;var ls={DefaultValue:Ua,isRecoilValue:Va,RecoilLoadable:ja,RecoilEnv:k,RecoilRoot:za,useRecoilStoreID:Ba,useRecoilBridgeAcrossReactRoots_UNSTABLE:_o,atom:da,selector:Wi,atomFamily:_a,selectorFamily:Sa,constSelector:Ea,errorSelector:Ra,readOnlySelector:Oa,noWait:os,waitForNone:us,waitForAny:ss,waitForAll:is,waitForAllSettled:as,useRecoilValue:Ya,useRecoilValueLoadable:Za,useRecoilState:Wa,useRecoilStateLoadable:qa,useSetRecoilState:Ja,useResetRecoilState:Qa,useGetRecoilValueInfo_UNSTABLE:go,useRecoilRefresher_UNSTABLE:Ko,useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Ka,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:Xa,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:Ga,useRecoilCallback:rs,useRecoilTransaction_UNSTABLE:ti,useGotoRecoilSnapshot:es,useRecoilSnapshot:ts,useRecoilTransactionObserver_UNSTABLE:ns,snapshot_UNSTABLE:$a,useRetain:fr,retentionZone:Ha},cs=ls.RecoilRoot,fs=ls.atom,ds=ls.selector,hs=ls.atomFamily,ps=ls.selectorFamily,gs=ls.useRecoilValue,vs=ls.useRecoilValueLoadable,ys=ls.useRecoilState,ms=ls.useSetRecoilState,bs=ls.useResetRecoilState,_s=ls.useRecoilRefresher_UNSTABLE,ws=ls.useRecoilCallback},77675:(e,t,n)=>{"use strict";var r=n(43206),o=Object,i=TypeError;e.exports=r((function(){if(null!=this&&this!==o(this))throw new i("RegExp.prototype.flags getter called on non-object");var e="";return this.hasIndices&&(e+="d"),this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.unicodeSets&&(e+="v"),this.sticky&&(e+="y"),e}),"get flags",!0)},71589:(e,t,n)=>{"use strict";var r=n(38452),o=n(10487),i=n(77675),a=n(15330),s=n(43984),u=o(a());r(u,{getPolyfill:a,implementation:i,shim:s}),e.exports=u},15330:(e,t,n)=>{"use strict";var r=n(77675),o=n(38452).supportsDescriptors,i=Object.getOwnPropertyDescriptor;e.exports=function(){if(o&&"gim"===/a/gim.flags){var e=i(RegExp.prototype,"flags");if(e&&"function"===typeof e.get&&"boolean"===typeof RegExp.prototype.dotAll&&"boolean"===typeof RegExp.prototype.hasIndices){var t="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){t+="d"}}),Object.defineProperty(n,"sticky",{get:function(){t+="y"}}),"dy"===t)return e.get}}return r}},43984:(e,t,n)=>{"use strict";var r=n(38452).supportsDescriptors,o=n(15330),i=Object.getOwnPropertyDescriptor,a=Object.defineProperty,s=TypeError,u=Object.getPrototypeOf,l=/a/;e.exports=function(){if(!r||!u)throw new s("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=o(),t=u(l),n=i(t,"flags");return n&&n.get===e||a(t,"flags",{configurable:!0,enumerable:!1,get:e}),e}},7463:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<i(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,a=o>>>1;r<a;){var s=2*(r+1)-1,u=e[s],l=s+1,c=e[l];if(0>i(u,n))l<o&&0>i(c,u)?(e[r]=c,e[l]=n,r=l):(e[r]=u,e[s]=n,r=s);else{if(!(l<o&&0>i(c,n)))break e;e[r]=c,e[l]=n,r=l}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var l=[],c=[],f=1,d=null,h=3,p=!1,g=!1,v=!1,y="function"===typeof setTimeout?setTimeout:null,m="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function _(e){for(var t=r(c);null!==t;){if(null===t.callback)o(c);else{if(!(t.startTime<=e))break;o(c),t.sortIndex=t.expirationTime,n(l,t)}t=r(c)}}function w(e){if(v=!1,_(e),!g)if(null!==r(l))g=!0,N(x);else{var t=r(c);null!==t&&I(w,t.startTime-e)}}function x(e,n){g=!1,v&&(v=!1,m(C),C=-1),p=!0;var i=h;try{for(_(n),d=r(l);null!==d&&(!(d.expirationTime>n)||e&&!T());){var a=d.callback;if("function"===typeof a){d.callback=null,h=d.priorityLevel;var s=a(d.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?d.callback=s:d===r(l)&&o(l),_(n)}else o(l);d=r(l)}if(null!==d)var u=!0;else{var f=r(c);null!==f&&I(w,f.startTime-n),u=!1}return u}finally{d=null,h=i,p=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,A=!1,E=null,C=-1,R=5,O=-1;function T(){return!(t.unstable_now()-O<R)}function k(){if(null!==E){var e=t.unstable_now();O=e;var n=!0;try{n=E(!0,e)}finally{n?S():(A=!1,E=null)}}else A=!1}if("function"===typeof b)S=function(){b(k)};else if("undefined"!==typeof MessageChannel){var M=new MessageChannel,P=M.port2;M.port1.onmessage=k,S=function(){P.postMessage(null)}}else S=function(){y(k,0)};function N(e){E=e,A||(A=!0,S())}function I(e,n){C=y((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||p||(g=!0,N(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):R=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_getFirstCallbackNode=function(){return r(l)},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var n=h;h=t;try{return e()}finally{h=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=h;h=e;try{return t()}finally{h=n}},t.unstable_scheduleCallback=function(e,o,i){var a=t.unstable_now();switch("object"===typeof i&&null!==i?i="number"===typeof(i=i.delay)&&0<i?a+i:a:i=a,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:f++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>a?(e.sortIndex=i,n(c,e),null===r(l)&&e===r(c)&&(v?(m(C),C=-1):v=!0,I(w,i-a))):(e.sortIndex=s,n(l,e),g||p||(g=!0,N(x))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},69982:(e,t,n)=>{"use strict";e.exports=n(7463)},43206:(e,t,n)=>{"use strict";var r=n(30041),o=n(30592)(),i=n(74462).functionsHaveConfigurableNames(),a=TypeError;e.exports=function(e,t){if("function"!==typeof e)throw new a("`fn` is not a function");return arguments.length>2&&!!arguments[2]&&!i||(o?r(e,"name",t,!0,!0):r(e,"name",t)),e}},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;u<i.length;u++){var l=i[u];if(!s(l))return!1;var c=e[l],f=t[l];if(!1===(o=n?n.call(r,c,f,l):void 0)||void 0===o&&c!==f)return!1}return!0}},920:(e,t,n)=>{"use strict";var r=n(70453),o=n(38075),i=n(58859),a=r("%TypeError%"),s=r("%WeakMap%",!0),u=r("%Map%",!0),l=o("WeakMap.prototype.get",!0),c=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),d=o("Map.prototype.get",!0),h=o("Map.prototype.set",!0),p=o("Map.prototype.has",!0),g=function(e,t){for(var n,r=e;null!==(n=r.next);r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,r={assert:function(e){if(!r.has(e))throw new a("Side channel does not contain "+i(e))},get:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return l(e,r)}else if(u){if(t)return d(t,r)}else if(n)return function(e,t){var n=g(e,t);return n&&n.value}(n,r)},has:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return f(e,r)}else if(u){if(t)return p(t,r)}else if(n)return function(e,t){return!!g(e,t)}(n,r);return!1},set:function(r,o){s&&r&&("object"===typeof r||"function"===typeof r)?(e||(e=new s),c(e,r,o)):u?(t||(t=new u),h(t,r,o)):(n||(n={key:{},next:null}),function(e,t,n){var r=g(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}}(n,r,o))}};return r}},528:e=>{"use strict";e.exports=(e,t)=>{if("string"!==typeof e||"string"!==typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},24280:e=>{"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},8711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ServerStyleSheet:()=>Be,StyleSheetConsumer:()=>ie,StyleSheetContext:()=>oe,StyleSheetManager:()=>fe,ThemeConsumer:()=>Ne,ThemeContext:()=>Pe,ThemeProvider:()=>Ie,__PRIVATE__:()=>$e,createGlobalStyle:()=>Ue,css:()=>we,default:()=>We,isStyledComponent:()=>w,keyframes:()=>ze,useTheme:()=>He,version:()=>S,withTheme:()=>Ve});var r=n(44363),o=n(96540),i=n(2833),a=n.n(i);const s=function(e){function t(e,r,u,l,d){for(var h,p,g,v,_,x=0,S=0,A=0,E=0,C=0,P=0,I=g=h=0,D=0,F=0,j=0,U=0,z=u.length,B=z-1,V="",H="",$="",W="";D<z;){if(p=u.charCodeAt(D),D===B&&0!==S+E+A+x&&(0!==S&&(p=47===S?10:47),E=A=x=0,z++,B++),0===S+E+A+x){if(D===B&&(0<F&&(V=V.replace(f,"")),0<V.trim().length)){switch(p){case 32:case 9:case 59:case 13:case 10:break;default:V+=u.charAt(D)}p=59}switch(p){case 123:for(h=(V=V.trim()).charCodeAt(0),g=1,U=++D;D<z;){switch(p=u.charCodeAt(D)){case 123:g++;break;case 125:g--;break;case 47:switch(p=u.charCodeAt(D+1)){case 42:case 47:e:{for(I=D+1;I<B;++I)switch(u.charCodeAt(I)){case 47:if(42===p&&42===u.charCodeAt(I-1)&&D+2!==I){D=I+1;break e}break;case 10:if(47===p){D=I+1;break e}}D=I}}break;case 91:p++;case 40:p++;case 34:case 39:for(;D++<B&&u.charCodeAt(D)!==p;);}if(0===g)break;D++}if(g=u.substring(U,D),0===h&&(h=(V=V.replace(c,"").trim()).charCodeAt(0)),64===h){switch(0<F&&(V=V.replace(f,"")),p=V.charCodeAt(1)){case 100:case 109:case 115:case 45:F=r;break;default:F=M}if(U=(g=t(r,F,g,p,d+1)).length,0<N&&(_=s(3,g,F=n(M,V,j),r,O,R,U,p,d,l),V=F.join(""),void 0!==_&&0===(U=(g=_.trim()).length)&&(p=0,g="")),0<U)switch(p){case 115:V=V.replace(w,a);case 100:case 109:case 45:g=V+"{"+g+"}";break;case 107:g=(V=V.replace(y,"$1 $2"))+"{"+g+"}",g=1===k||2===k&&i("@"+g,3)?"@-webkit-"+g+"@"+g:"@"+g;break;default:g=V+g,112===l&&(H+=g,g="")}else g=""}else g=t(r,n(r,V,j),g,l,d+1);$+=g,g=j=F=I=h=0,V="",p=u.charCodeAt(++D);break;case 125:case 59:if(1<(U=(V=(0<F?V.replace(f,""):V).trim()).length))switch(0===I&&(h=V.charCodeAt(0),45===h||96<h&&123>h)&&(U=(V=V.replace(" ",":")).length),0<N&&void 0!==(_=s(1,V,r,e,O,R,H.length,l,d,l))&&0===(U=(V=_.trim()).length)&&(V="\0\0"),h=V.charCodeAt(0),p=V.charCodeAt(1),h){case 0:break;case 64:if(105===p||99===p){W+=V+u.charAt(D);break}default:58!==V.charCodeAt(U-1)&&(H+=o(V,h,p,V.charCodeAt(2)))}j=F=I=h=0,V="",p=u.charCodeAt(++D)}}switch(p){case 13:case 10:47===S?S=0:0===1+h&&107!==l&&0<V.length&&(F=1,V+="\0"),0<N*L&&s(0,V,r,e,O,R,H.length,l,d,l),R=1,O++;break;case 59:case 125:if(0===S+E+A+x){R++;break}default:switch(R++,v=u.charAt(D),p){case 9:case 32:if(0===E+x+S)switch(C){case 44:case 58:case 9:case 32:v="";break;default:32!==p&&(v=" ")}break;case 0:v="\\0";break;case 12:v="\\f";break;case 11:v="\\v";break;case 38:0===E+S+x&&(F=j=1,v="\f"+v);break;case 108:if(0===E+S+x+T&&0<I)switch(D-I){case 2:112===C&&58===u.charCodeAt(D-3)&&(T=C);case 8:111===P&&(T=P)}break;case 58:0===E+S+x&&(I=D);break;case 44:0===S+A+E+x&&(F=1,v+="\r");break;case 34:case 39:0===S&&(E=E===p?0:0===E?p:E);break;case 91:0===E+S+A&&x++;break;case 93:0===E+S+A&&x--;break;case 41:0===E+S+x&&A--;break;case 40:if(0===E+S+x){if(0===h)if(2*C+3*P===533);else h=1;A++}break;case 64:0===S+A+E+x+I+g&&(g=1);break;case 42:case 47:if(!(0<E+x+A))switch(S){case 0:switch(2*p+3*u.charCodeAt(D+1)){case 235:S=47;break;case 220:U=D,S=42}break;case 42:47===p&&42===C&&U+2!==D&&(33===u.charCodeAt(U+2)&&(H+=u.substring(U,D+1)),v="",S=0)}}0===S&&(V+=v)}P=C,C=p,D++}if(0<(U=H.length)){if(F=r,0<N&&(void 0!==(_=s(2,H,F,e,O,R,U,l,d,l))&&0===(H=_).length))return W+H+$;if(H=F.join(",")+"{"+H+"}",0!==k*T){switch(2!==k||i(H,2)||(T=0),T){case 111:H=H.replace(b,":-moz-$1")+H;break;case 112:H=H.replace(m,"::-webkit-input-$1")+H.replace(m,"::-moz-$1")+H.replace(m,":-ms-input-$1")+H}T=0}}return W+H+$}function n(e,t,n){var o=t.trim().split(g);t=o;var i=o.length,a=e.length;switch(a){case 0:case 1:var s=0;for(e=0===a?"":e[0]+" ";s<i;++s)t[s]=r(e,t[s],n).trim();break;default:var u=s=0;for(t=[];s<i;++s)for(var l=0;l<a;++l)t[u++]=r(e[l]+" ",o[s],n).trim()}return t}function r(e,t,n){var r=t.charCodeAt(0);switch(33>r&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(v,"$1"+e.trim());case 58:return e.trim()+t.replace(v,"$1"+e.trim());default:if(0<1*n&&0<t.indexOf("\f"))return t.replace(v,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function o(e,t,n,r){var a=e+";",s=2*t+3*n+4*r;if(944===s){e=a.indexOf(":",9)+1;var u=a.substring(e,a.length-1).trim();return u=a.substring(0,e).trim()+u+";",1===k||2===k&&i(u,1)?"-webkit-"+u+u:u}if(0===k||2===k&&!i(a,1))return a;switch(s){case 1015:return 97===a.charCodeAt(10)?"-webkit-"+a+a:a;case 951:return 116===a.charCodeAt(3)?"-webkit-"+a+a:a;case 963:return 110===a.charCodeAt(5)?"-webkit-"+a+a:a;case 1009:if(100!==a.charCodeAt(4))break;case 969:case 942:return"-webkit-"+a+a;case 978:return"-webkit-"+a+"-moz-"+a+a;case 1019:case 983:return"-webkit-"+a+"-moz-"+a+"-ms-"+a+a;case 883:if(45===a.charCodeAt(8))return"-webkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(C,"$1-webkit-$2")+a;break;case 932:if(45===a.charCodeAt(4))switch(a.charCodeAt(5)){case 103:return"-webkit-box-"+a.replace("-grow","")+"-webkit-"+a+"-ms-"+a.replace("grow","positive")+a;case 115:return"-webkit-"+a+"-ms-"+a.replace("shrink","negative")+a;case 98:return"-webkit-"+a+"-ms-"+a.replace("basis","preferred-size")+a}return"-webkit-"+a+"-ms-"+a+a;case 964:return"-webkit-"+a+"-ms-flex-"+a+a;case 1023:if(99!==a.charCodeAt(8))break;return"-webkit-box-pack"+(u=a.substring(a.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+a+"-ms-flex-pack"+u+a;case 1005:return h.test(a)?a.replace(d,":-webkit-")+a.replace(d,":-moz-")+a:a;case 1e3:switch(t=(u=a.substring(13).trim()).indexOf("-")+1,u.charCodeAt(0)+u.charCodeAt(t)){case 226:u=a.replace(_,"tb");break;case 232:u=a.replace(_,"tb-rl");break;case 220:u=a.replace(_,"lr");break;default:return a}return"-webkit-"+a+"-ms-"+u+a;case 1017:if(-1===a.indexOf("sticky",9))break;case 975:switch(t=(a=e).length-10,s=(u=(33===a.charCodeAt(t)?a.substring(0,t):a).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|u.charCodeAt(7))){case 203:if(111>u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102<s?"inline-":"")+"box")+";"+a.replace(u,"-webkit-"+u)+";"+a.replace(u,"-ms-"+u+"box")+";"+a}return a+";";case 938:if(45===a.charCodeAt(5))switch(a.charCodeAt(6)){case 105:return u=a.replace("-items",""),"-webkit-"+a+"-webkit-box-"+u+"-ms-flex-"+u+a;case 115:return"-webkit-"+a+"-ms-flex-item-"+a.replace(S,"")+a;default:return"-webkit-"+a+"-ms-flex-line-pack"+a.replace("align-content","").replace(S,"")+a}break;case 973:case 989:if(45!==a.charCodeAt(3)||122===a.charCodeAt(4))break;case 931:case 953:if(!0===E.test(e))return 115===(u=e.substring(e.indexOf(":")+1)).charCodeAt(0)?o(e.replace("stretch","fill-available"),t,n,r).replace(":fill-available",":stretch"):a.replace(u,"-webkit-"+u)+a.replace(u,"-moz-"+u.replace("fill-",""))+a;break;case 962:if(a="-webkit-"+a+(102===a.charCodeAt(5)?"-ms-"+a:"")+a,211===n+r&&105===a.charCodeAt(13)&&0<a.indexOf("transform",10))return a.substring(0,a.indexOf(";",27)+1).replace(p,"$1-webkit-$2")+a}return a}function i(e,t){var n=e.indexOf(1===t?":":"{"),r=e.substring(0,3!==t?n:10);return n=e.substring(n+1,e.length-1),I(2!==t?r:r.replace(A,"$1"),n,t)}function a(e,t){var n=o(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(x," or ($1)").substring(4):"("+t+")"}function s(e,t,n,r,o,i,a,s,u,c){for(var f,d=0,h=t;d<N;++d)switch(f=P[d].call(l,e,h,n,r,o,i,a,s,u,c)){case void 0:case!1:case!0:case null:break;default:h=f}if(h!==t)return h}function u(e){return void 0!==(e=e.prefix)&&(I=null,e?"function"!==typeof e?k=1:(k=2,I=e):k=0),u}function l(e,n){var r=e;if(33>r.charCodeAt(0)&&(r=r.trim()),r=[r],0<N){var o=s(-1,n,r,r,O,R,0,0,0,0);void 0!==o&&"string"===typeof o&&(n=o)}var i=t(M,r,n,0,0);return 0<N&&(void 0!==(o=s(-2,i,r,r,O,R,i.length,0,0,0))&&(i=o)),"",T=0,R=O=1,i}var c=/^\0+/g,f=/[\0\r\f]/g,d=/: */g,h=/zoo|gra/,p=/([,: ])(transform)/g,g=/,\r+?/g,v=/([\t\r\n ])*\f?&/g,y=/@(k\w+)\s*(\S*)\s*/,m=/::(place)/g,b=/:(read-only)/g,_=/[svh]\w+-[tblr]{2}/,w=/\(\s*(.*)\s*\)/g,x=/([\s\S]*?);/g,S=/-self|flex-/g,A=/[^]*?(:[rp][el]a[\w-]+)[^]*/,E=/stretch|:\s*\w+\-(?:conte|avail)/,C=/([^-])(image-set\()/,R=1,O=1,T=0,k=1,M=[],P=[],N=0,I=null,L=0;return l.use=function e(t){switch(t){case void 0:case null:N=P.length=0;break;default:if("function"===typeof t)P[N++]=t;else if("object"===typeof t)for(var n=0,r=t.length;n<r;++n)e(t[n]);else L=0|!!t}return e},l.set=u,void 0!==e&&u(e),l};const u={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var l=n(36289),c=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,f=(0,l.A)((function(e){return c.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),d=n(4146),h=n.n(d);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var g=function(e,t){for(var n=[e[0]],r=0,o=t.length;r<o;r+=1)n.push(t[r],e[r+1]);return n},v=function(e){return null!==e&&"object"==typeof e&&"[object Object]"===(e.toString?e.toString():Object.prototype.toString.call(e))&&!(0,r.typeOf)(e)},y=Object.freeze([]),m=Object.freeze({});function b(e){return"function"==typeof e}function _(e){return e.displayName||e.name||"Component"}function w(e){return e&&"string"==typeof e.styledComponentId}var x="undefined"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",S="5.3.11",A="undefined"!=typeof window&&"HTMLElement"in window,E=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env&&(void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==process.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:void 0!==process.env.SC_DISABLE_SPEEDY&&""!==process.env.SC_DISABLE_SPEEDY&&("false"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY))),C={};function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw new Error("An error occurred. See https://git.io/JUIaE#"+e+" for more information."+(n.length>0?" Args: "+n.join(", "):""))}var O=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&R(16,""+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var i=r;i<o;i++)this.groupSizes[i]=0}for(var a=this.indexOfGroup(e+1),s=0,u=t.length;s<u;s++)this.tag.insertRule(a,t[s])&&(this.groupSizes[e]++,a++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),r=n+t;this.groupSizes[e]=0;for(var o=n;o<r;o++)this.tag.deleteRule(n)}},t.getGroup=function(e){var t="";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,i=r;i<o;i++)t+=this.tag.getRule(i)+"/*!sc*/\n";return t},e}(),T=new Map,k=new Map,M=1,P=function(e){if(T.has(e))return T.get(e);for(;k.has(M);)M++;var t=M++;return T.set(e,t),k.set(t,e),t},N=function(e){return k.get(e)},I=function(e,t){t>=M&&(M=t+1),T.set(e,t),k.set(t,e)},L="style["+x+'][data-styled-version="5.3.11"]',D=new RegExp("^"+x+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),F=function(e,t,n){for(var r,o=n.split(","),i=0,a=o.length;i<a;i++)(r=o[i])&&e.registerName(t,r)},j=function(e,t){for(var n=(t.textContent||"").split("/*!sc*/\n"),r=[],o=0,i=n.length;o<i;o++){var a=n[o].trim();if(a){var s=a.match(D);if(s){var u=0|parseInt(s[1],10),l=s[2];0!==u&&(I(l,u),F(e,l,s[3]),e.getTag().insertRules(u,r)),r.length=0}else r.push(a)}}},U=function(){return n.nc},z=function(e){var t=document.head,n=e||t,r=document.createElement("style"),o=function(e){for(var t=e.childNodes,n=t.length;n>=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(x))return r}}(n),i=void 0!==o?o.nextSibling:null;r.setAttribute(x,"active"),r.setAttribute("data-styled-version","5.3.11");var a=U();return a&&r.setAttribute("nonce",a),n.insertBefore(r,i),r},B=function(){function e(e){var t=this.element=z(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n<r;n++){var o=t[n];if(o.ownerNode===e)return o}R(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&"string"==typeof t.cssText?t.cssText:""},e}(),V=function(){function e(e){var t=this.element=z(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:""},e}(),H=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:""},e}(),$=A,W={isServer:!A,useCSSOMInjection:!E},G=function(){function e(e,t,n){void 0===e&&(e=m),void 0===t&&(t={}),this.options=p({},W,{},e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&A&&$&&($=!1,function(e){for(var t=document.querySelectorAll(L),n=0,r=t.length;n<r;n++){var o=t[n];o&&"active"!==o.getAttribute(x)&&(j(e,o),o.parentNode&&o.parentNode.removeChild(o))}}(this))}e.registerId=function(e){return P(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(p({},this.options,{},t),this.gs,n&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(n=(t=this.options).isServer,r=t.useCSSOMInjection,o=t.target,e=n?new H(o):r?new B(o):new V(o),new O(e)));var e,t,n,r,o},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(P(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},t.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(P(e),n)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(P(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),n=t.length,r="",o=0;o<n;o++){var i=N(o);if(void 0!==i){var a=e.names.get(i),s=t.getGroup(o);if(a&&s&&a.size){var u=x+".g"+o+'[id="'+i+'"]',l="";void 0!==a&&a.forEach((function(e){e.length>0&&(l+=e+",")})),r+=""+s+u+'{content:"'+l+'"}/*!sc*/\n'}}}return r}(this)},e}(),q=/(a)(d)/gi,Y=function(e){return String.fromCharCode(e+(e>25?39:97))};function X(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=Y(t%52)+n;return(Y(t%52)+n).replace(q,"$1-$2")}var Z=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},K=function(e){return Z(5381,e)};function Q(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(b(n)&&!w(n))return!1}return!0}var J=K("5.3.11"),ee=function(){function e(e,t,n){this.rules=e,this.staticRulesId="",this.isStatic=(void 0===n||n.isStatic)&&Q(e),this.componentId=t,this.baseHash=Z(J,t),this.baseStyle=n,G.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var r=this.componentId,o=[];if(this.baseStyle&&o.push(this.baseStyle.generateAndInjectStyles(e,t,n)),this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(r,this.staticRulesId))o.push(this.staticRulesId);else{var i=be(this.rules,e,t,n).join(""),a=X(Z(this.baseHash,i)>>>0);if(!t.hasNameForId(r,a)){var s=n(i,"."+a,void 0,r);t.insertRules(r,a,s)}o.push(a),this.staticRulesId=a}else{for(var u=this.rules.length,l=Z(this.baseHash,n.hash),c="",f=0;f<u;f++){var d=this.rules[f];if("string"==typeof d)c+=d;else if(d){var h=be(d,e,t,n),p=Array.isArray(h)?h.join(""):h;l=Z(l,p+f),c+=p}}if(c){var g=X(l>>>0);if(!t.hasNameForId(r,g)){var v=n(c,"."+g,void 0,r);t.insertRules(r,g,v)}o.push(g)}}return o.join(" ")},e}(),te=/^\s*\/\/.*$/gm,ne=[":","[",".","#"];function re(e){var t,n,r,o,i=void 0===e?m:e,a=i.options,u=void 0===a?m:a,l=i.plugins,c=void 0===l?y:l,f=new s(u),d=[],h=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(n,r,o,i,a,s,u,l,c,f){switch(n){case 1:if(0===c&&64===r.charCodeAt(0))return e(r+";"),"";break;case 2:if(0===l)return r+"/*|*/";break;case 3:switch(l){case 102:case 112:return e(o[0]+r),"";default:return r+(0===f?"/*|*/":"")}case-2:r.split("/*|*/}").forEach(t)}}}((function(e){d.push(e)})),p=function(e,r,i){return 0===r&&-1!==ne.indexOf(i[n.length])||i.match(o)?e:"."+t};function g(e,i,a,s){void 0===s&&(s="&");var u=e.replace(te,""),l=i&&a?a+" "+i+" { "+u+" }":u;return t=s,n=i,r=new RegExp("\\"+n+"\\b","g"),o=new RegExp("(\\"+n+"\\b){2,}"),f(a||!i?"":i,l)}return f.use([].concat(c,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,p))},h,function(e){if(-2===e){var t=d;return d=[],t}}])),g.hash=c.length?c.reduce((function(e,t){return t.name||R(15),Z(e,t.name)}),5381).toString():"",g}var oe=o.createContext(),ie=oe.Consumer,ae=o.createContext(),se=(ae.Consumer,new G),ue=re();function le(){return(0,o.useContext)(oe)||se}function ce(){return(0,o.useContext)(ae)||ue}function fe(e){var t=(0,o.useState)(e.stylisPlugins),n=t[0],r=t[1],i=le(),s=(0,o.useMemo)((function(){var t=i;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),u=(0,o.useMemo)((function(){return re({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return(0,o.useEffect)((function(){a()(n,e.stylisPlugins)||r(e.stylisPlugins)}),[e.stylisPlugins]),o.createElement(oe.Provider,{value:s},o.createElement(ae.Provider,{value:u},e.children))}var de=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=ue);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,"@keyframes"))},this.toString=function(){return R(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=ue),this.name+e.hash},e}(),he=/([A-Z])/,pe=/([A-Z])/g,ge=/^ms-/,ve=function(e){return"-"+e.toLowerCase()};function ye(e){return he.test(e)?e.replace(pe,ve).replace(ge,"-ms-"):e}var me=function(e){return null==e||!1===e||""===e};function be(e,t,n,r){if(Array.isArray(e)){for(var o,i=[],a=0,s=e.length;a<s;a+=1)""!==(o=be(e[a],t,n,r))&&(Array.isArray(o)?i.push.apply(i,o):i.push(o));return i}return me(e)?"":w(e)?"."+e.styledComponentId:b(e)?"function"!=typeof(l=e)||l.prototype&&l.prototype.isReactComponent||!t?e:be(e(t),t,n,r):e instanceof de?n?(e.inject(n,r),e.getName(r)):e:v(e)?function e(t,n){var r,o,i=[];for(var a in t)t.hasOwnProperty(a)&&!me(t[a])&&(Array.isArray(t[a])&&t[a].isCss||b(t[a])?i.push(ye(a)+":",t[a],";"):v(t[a])?i.push.apply(i,e(t[a],a)):i.push(ye(a)+": "+(r=a,(null==(o=t[a])||"boolean"==typeof o||""===o?"":"number"!=typeof o||0===o||r in u||r.startsWith("--")?String(o).trim():o+"px")+";")));return n?[n+" {"].concat(i,["}"]):i}(e):e.toString();var l}var _e=function(e){return Array.isArray(e)&&(e.isCss=!0),e};function we(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return b(e)||v(e)?_e(be(g(y,[e].concat(n)))):0===n.length&&1===e.length&&"string"==typeof e[0]?e:_e(be(g(e,n)))}new Set;var xe=function(e,t,n){return void 0===n&&(n=m),e.theme!==n.theme&&e.theme||t||n.theme},Se=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,Ae=/(^-|-$)/g;function Ee(e){return e.replace(Se,"-").replace(Ae,"")}var Ce=function(e){return X(K(e)>>>0)};function Re(e){return"string"==typeof e&&!0}var Oe=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},Te=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function ke(e,t,n){var r=e[n];Oe(t)&&Oe(r)?Me(r,t):e[n]=t}function Me(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var o=0,i=n;o<i.length;o++){var a=i[o];if(Oe(a))for(var s in a)Te(s)&&ke(e,a[s],s)}return e}var Pe=o.createContext(),Ne=Pe.Consumer;function Ie(e){var t=(0,o.useContext)(Pe),n=(0,o.useMemo)((function(){return function(e,t){return e?b(e)?e(t):Array.isArray(e)||"object"!=typeof e?R(8):t?p({},t,{},e):e:R(14)}(e.theme,t)}),[e.theme,t]);return e.children?o.createElement(Pe.Provider,{value:n},e.children):null}var Le={};function De(e,t,n){var r=w(e),i=!Re(e),a=t.attrs,s=void 0===a?y:a,u=t.componentId,l=void 0===u?function(e,t){var n="string"!=typeof e?"sc":Ee(e);Le[n]=(Le[n]||0)+1;var r=n+"-"+Ce("5.3.11"+n+Le[n]);return t?t+"-"+r:r}(t.displayName,t.parentComponentId):u,c=t.displayName,d=void 0===c?function(e){return Re(e)?"styled."+e:"Styled("+_(e)+")"}(e):c,g=t.displayName&&t.componentId?Ee(t.displayName)+"-"+t.componentId:t.componentId||l,v=r&&e.attrs?Array.prototype.concat(e.attrs,s).filter(Boolean):s,x=t.shouldForwardProp;r&&e.shouldForwardProp&&(x=t.shouldForwardProp?function(n,r,o){return e.shouldForwardProp(n,r,o)&&t.shouldForwardProp(n,r,o)}:e.shouldForwardProp);var S,A=new ee(n,g,r?e.componentStyle:void 0),E=A.isStatic&&0===s.length,C=function(e,t){return function(e,t,n,r){var i=e.attrs,a=e.componentStyle,s=e.defaultProps,u=e.foldedComponentIds,l=e.shouldForwardProp,c=e.styledComponentId,d=e.target,h=function(e,t,n){void 0===e&&(e=m);var r=p({},t,{theme:e}),o={};return n.forEach((function(e){var t,n,i,a=e;for(t in b(a)&&(a=a(r)),a)r[t]=o[t]="className"===t?(n=o[t],i=a[t],n&&i?n+" "+i:n||i):a[t]})),[r,o]}(xe(t,(0,o.useContext)(Pe),s)||m,t,i),g=h[0],v=h[1],y=function(e,t,n,r){var o=le(),i=ce();return t?e.generateAndInjectStyles(m,o,i):e.generateAndInjectStyles(n,o,i)}(a,r,g),_=n,w=v.$as||t.$as||v.as||t.as||d,x=Re(w),S=v!==t?p({},t,{},v):t,A={};for(var E in S)"$"!==E[0]&&"as"!==E&&("forwardedAs"===E?A.as=S[E]:(l?l(E,f,w):!x||f(E))&&(A[E]=S[E]));return t.style&&v.style!==t.style&&(A.style=p({},t.style,{},v.style)),A.className=Array.prototype.concat(u,c,y!==c?y:null,t.className,v.className).filter(Boolean).join(" "),A.ref=_,(0,o.createElement)(w,A)}(S,e,t,E)};return C.displayName=d,(S=o.forwardRef(C)).attrs=v,S.componentStyle=A,S.displayName=d,S.shouldForwardProp=x,S.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):y,S.styledComponentId=g,S.target=r?e.target:e,S.withComponent=function(e){var r=t.componentId,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,["componentId"]),i=r&&r+"-"+(Re(e)?e:Ee(_(e)));return De(e,p({},o,{attrs:v,componentId:i}),n)},Object.defineProperty(S,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Me({},e.defaultProps,t):t}}),Object.defineProperty(S,"toString",{value:function(){return"."+S.styledComponentId}}),i&&h()(S,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),S}var Fe=function(e){return function e(t,n,o){if(void 0===o&&(o=m),!(0,r.isValidElementType)(n))return R(1,String(n));var i=function(){return t(n,o,we.apply(void 0,arguments))};return i.withConfig=function(r){return e(t,n,p({},o,{},r))},i.attrs=function(r){return e(t,n,p({},o,{attrs:Array.prototype.concat(o.attrs,r).filter(Boolean)}))},i}(De,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Fe[e]=Fe(e)}));var je=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Q(e),G.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(be(this.rules,t,n,r).join(""),""),i=this.componentId+e;n.insertRules(i,i,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&G.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function Ue(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=we.apply(void 0,[e].concat(n)),a="sc-global-"+Ce(JSON.stringify(i)),s=new je(i,a);function u(e){var t=le(),n=ce(),r=(0,o.useContext)(Pe),i=(0,o.useRef)(t.allocateGSInstance(a)).current;return t.server&&l(i,e,t,r,n),(0,o.useLayoutEffect)((function(){if(!t.server)return l(i,e,t,r,n),function(){return s.removeStyles(i,t)}}),[i,e,t,r,n]),null}function l(e,t,n,r,o){if(s.isStatic)s.renderStyles(e,C,n,o);else{var i=p({},t,{theme:xe(t,r,u.defaultProps)});s.renderStyles(e,i,n,o)}}return o.memo(u)}function ze(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=we.apply(void 0,[e].concat(n)).join(""),i=Ce(o);return new de(i,o)}var Be=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var n=U();return"<style "+[n&&'nonce="'+n+'"',x+'="true"','data-styled-version="5.3.11"'].filter(Boolean).join(" ")+">"+t+"</style>"},this.getStyleTags=function(){return e.sealed?R(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return R(2);var n=((t={})[x]="",t["data-styled-version"]="5.3.11",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),r=U();return r&&(n.nonce=r),[o.createElement("style",p({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new G({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?R(2):o.createElement(fe,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return R(3)},e}(),Ve=function(e){var t=o.forwardRef((function(t,n){var r=(0,o.useContext)(Pe),i=e.defaultProps,a=xe(t,r,i);return o.createElement(e,p({},t,{theme:a,ref:n}))}));return h()(t,e),t.displayName="WithTheme("+_(e)+")",t},He=function(){return(0,o.useContext)(Pe)},$e={StyleSheet:G,masterSheet:se};const We=Fe},50677:(e,t,n)=>{"use strict";n.r(t),n.d(t,{alignContent:()=>me,alignItems:()=>ye,alignSelf:()=>Oe,background:()=>P,backgroundImage:()=>Ze,backgroundPosition:()=>Qe,backgroundRepeat:()=>Je,backgroundSize:()=>Ke,border:()=>T,borderBottom:()=>qe,borderColor:()=>$e,borderLeft:()=>Ye,borderRadius:()=>Xe,borderRight:()=>Ge,borderStyle:()=>He,borderTop:()=>We,borderWidth:()=>Ve,borders:()=>k,bottom:()=>rt,boxShadow:()=>W,buttonStyle:()=>Y,color:()=>b,colorStyle:()=>Z,compose:()=>g,createParser:()=>c,createStyleFunction:()=>h,display:()=>ie,flex:()=>Se,flexBasis:()=>Ce,flexDirection:()=>xe,flexGrow:()=>Ae,flexShrink:()=>Ee,flexWrap:()=>we,flexbox:()=>S,fontFamily:()=>fe,fontSize:()=>ce,fontStyle:()=>ge,fontWeight:()=>de,get:()=>l,grid:()=>C,gridArea:()=>Be,gridAutoColumns:()=>De,gridAutoFlow:()=>Le,gridAutoRows:()=>Fe,gridColumn:()=>Ne,gridColumnGap:()=>Me,gridGap:()=>ke,gridRow:()=>Ie,gridRowGap:()=>Pe,gridTemplateAreas:()=>ze,gridTemplateColumns:()=>je,gridTemplateRows:()=>Ue,height:()=>Q,justifyContent:()=>_e,justifyItems:()=>be,justifySelf:()=>Re,layout:()=>v,left:()=>ot,letterSpacing:()=>ve,lineHeight:()=>he,margin:()=>B,maxHeight:()=>ne,maxWidth:()=>te,minHeight:()=>ee,minWidth:()=>J,opacity:()=>le,order:()=>Te,overflow:()=>ae,overflowX:()=>se,overflowY:()=>ue,padding:()=>V,position:()=>L,right:()=>nt,shadow:()=>$,size:()=>re,space:()=>H,style:()=>it,system:()=>p,textAlign:()=>pe,textShadow:()=>W,textStyle:()=>X,top:()=>tt,typography:()=>w,variant:()=>q,verticalAlign:()=>oe,width:()=>K,zIndex:()=>et});var r=n(45228),o=n.n(r),i=function(e,t){var n=o()({},e,t);for(var r in e){var i;e[r]&&"object"===typeof t[r]&&o()(n,((i={})[r]=o()(e[r],t[r]),i))}return n},a={breakpoints:[40,52,64].map((function(e){return e+"em"}))},s=function(e){return"@media screen and (min-width: "+e+")"},u=function(e,t){return l(t,e,e)},l=function(e,t,n,r,o){for(t=t&&t.split?t.split("."):[t],r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e},c=function e(t){var n={},r=function(e){var r={},u=!1,c=e.theme&&e.theme.disableStyledSystemCache;for(var h in e)if(t[h]){var p=t[h],g=e[h],v=l(e.theme,p.scale,p.defaults);if("object"!==typeof g)o()(r,p(g,v,e));else{if(n.breakpoints=!c&&n.breakpoints||l(e.theme,"breakpoints",a.breakpoints),Array.isArray(g)){n.media=!c&&n.media||[null].concat(n.breakpoints.map(s)),r=i(r,f(n.media,p,v,g,e));continue}null!==g&&(r=i(r,d(n.breakpoints,p,v,g,e)),u=!0)}}return u&&(r=function(e){var t={};return Object.keys(e).sort((function(e,t){return e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})})).forEach((function(n){t[n]=e[n]})),t}(r)),r};r.config=t,r.propNames=Object.keys(t),r.cache=n;var u=Object.keys(t).filter((function(e){return"config"!==e}));return u.length>1&&u.forEach((function(n){var o;r[n]=e(((o={})[n]=t[n],o))})),r},f=function(e,t,n,r,i){var a={};return r.slice(0,e.length).forEach((function(r,s){var u,l=e[s],c=t(r,n,i);l?o()(a,((u={})[l]=o()({},a[l],c),u)):o()(a,c)})),a},d=function(e,t,n,r,i){var a={};for(var u in r){var l=e[u],c=t(r[u],n,i);if(l){var f,d=s(l);o()(a,((f={})[d]=o()({},a[d],c),f))}else o()(a,c)}return a},h=function(e){var t=e.properties,n=e.property,r=e.scale,o=e.transform,i=void 0===o?u:o,a=e.defaultScale;t=t||[n];var s=function(e,n,r){var o={},a=i(e,n,r);if(null!==a)return t.forEach((function(e){o[e]=a})),o};return s.scale=r,s.defaults=a,s},p=function(e){void 0===e&&(e={});var t={};return Object.keys(e).forEach((function(n){var r=e[n];t[n]=!0!==r?"function"!==typeof r?h(r):r:h({property:n,scale:n})})),c(t)},g=function(){for(var e={},t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){t&&t.config&&o()(e,t.config)})),c(e)},v=p({width:{property:"width",scale:"sizes",transform:function(e,t){return l(t,e,!function(e){return"number"===typeof e&&!isNaN(e)}(e)||e>1?e:100*e+"%")}},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},size:{properties:["width","height"],scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0});const y=v;var m={color:{property:"color",scale:"colors"},backgroundColor:{property:"backgroundColor",scale:"colors"},opacity:!0};m.bg=m.backgroundColor;var b=p(m);const _=b;var w=p({fontFamily:{property:"fontFamily",scale:"fonts"},fontSize:{property:"fontSize",scale:"fontSizes",defaultScale:[12,14,16,20,24,32,48,64,72]},fontWeight:{property:"fontWeight",scale:"fontWeights"},lineHeight:{property:"lineHeight",scale:"lineHeights"},letterSpacing:{property:"letterSpacing",scale:"letterSpacings"},textAlign:!0,fontStyle:!0});const x=w;var S=p({alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:!0,flex:!0,flexGrow:!0,flexShrink:!0,flexBasis:!0,justifySelf:!0,alignSelf:!0,order:!0});const A=S;var E={space:[0,4,8,16,32,64,128,256,512]},C=p({gridGap:{property:"gridGap",scale:"space",defaultScale:E.space},gridColumnGap:{property:"gridColumnGap",scale:"space",defaultScale:E.space},gridRowGap:{property:"gridRowGap",scale:"space",defaultScale:E.space},gridColumn:!0,gridRow:!0,gridAutoFlow:!0,gridAutoColumns:!0,gridAutoRows:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridArea:!0});const R=C;var O={border:{property:"border",scale:"borders"},borderWidth:{property:"borderWidth",scale:"borderWidths"},borderStyle:{property:"borderStyle",scale:"borderStyles"},borderColor:{property:"borderColor",scale:"colors"},borderRadius:{property:"borderRadius",scale:"radii"},borderTop:{property:"borderTop",scale:"borders"},borderTopLeftRadius:{property:"borderTopLeftRadius",scale:"radii"},borderTopRightRadius:{property:"borderTopRightRadius",scale:"radii"},borderRight:{property:"borderRight",scale:"borders"},borderBottom:{property:"borderBottom",scale:"borders"},borderBottomLeftRadius:{property:"borderBottomLeftRadius",scale:"radii"},borderBottomRightRadius:{property:"borderBottomRightRadius",scale:"radii"},borderLeft:{property:"borderLeft",scale:"borders"},borderX:{properties:["borderLeft","borderRight"],scale:"borders"},borderY:{properties:["borderTop","borderBottom"],scale:"borders"},borderTopWidth:{property:"borderTopWidth",scale:"borderWidths"},borderTopColor:{property:"borderTopColor",scale:"colors"},borderTopStyle:{property:"borderTopStyle",scale:"borderStyles"}};O.borderTopLeftRadius={property:"borderTopLeftRadius",scale:"radii"},O.borderTopRightRadius={property:"borderTopRightRadius",scale:"radii"},O.borderBottomWidth={property:"borderBottomWidth",scale:"borderWidths"},O.borderBottomColor={property:"borderBottomColor",scale:"colors"},O.borderBottomStyle={property:"borderBottomStyle",scale:"borderStyles"},O.borderBottomLeftRadius={property:"borderBottomLeftRadius",scale:"radii"},O.borderBottomRightRadius={property:"borderBottomRightRadius",scale:"radii"},O.borderLeftWidth={property:"borderLeftWidth",scale:"borderWidths"},O.borderLeftColor={property:"borderLeftColor",scale:"colors"},O.borderLeftStyle={property:"borderLeftStyle",scale:"borderStyles"},O.borderRightWidth={property:"borderRightWidth",scale:"borderWidths"},O.borderRightColor={property:"borderRightColor",scale:"colors"},O.borderRightStyle={property:"borderRightStyle",scale:"borderStyles"};var T=p(O);const k=T;var M={background:!0,backgroundImage:!0,backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0};M.bgImage=M.backgroundImage,M.bgSize=M.backgroundSize,M.bgPosition=M.backgroundPosition,M.bgRepeat=M.backgroundRepeat;var P=p(M);const N=P;var I={space:[0,4,8,16,32,64,128,256,512]},L=p({position:!0,zIndex:{property:"zIndex",scale:"zIndices"},top:{property:"top",scale:"space",defaultScale:I.space},right:{property:"right",scale:"space",defaultScale:I.space},bottom:{property:"bottom",scale:"space",defaultScale:I.space},left:{property:"left",scale:"space",defaultScale:I.space}});const D=L;var F={space:[0,4,8,16,32,64,128,256,512]},j=function(e){return"number"===typeof e&&!isNaN(e)},U=function(e,t){if(!j(e))return l(t,e,e);var n=e<0,r=Math.abs(e),o=l(t,r,r);return j(o)?o*(n?-1:1):n?"-"+o:o},z={};z.margin={margin:{property:"margin",scale:"space",transform:U,defaultScale:F.space},marginTop:{property:"marginTop",scale:"space",transform:U,defaultScale:F.space},marginRight:{property:"marginRight",scale:"space",transform:U,defaultScale:F.space},marginBottom:{property:"marginBottom",scale:"space",transform:U,defaultScale:F.space},marginLeft:{property:"marginLeft",scale:"space",transform:U,defaultScale:F.space},marginX:{properties:["marginLeft","marginRight"],scale:"space",transform:U,defaultScale:F.space},marginY:{properties:["marginTop","marginBottom"],scale:"space",transform:U,defaultScale:F.space}},z.margin.m=z.margin.margin,z.margin.mt=z.margin.marginTop,z.margin.mr=z.margin.marginRight,z.margin.mb=z.margin.marginBottom,z.margin.ml=z.margin.marginLeft,z.margin.mx=z.margin.marginX,z.margin.my=z.margin.marginY,z.padding={padding:{property:"padding",scale:"space",defaultScale:F.space},paddingTop:{property:"paddingTop",scale:"space",defaultScale:F.space},paddingRight:{property:"paddingRight",scale:"space",defaultScale:F.space},paddingBottom:{property:"paddingBottom",scale:"space",defaultScale:F.space},paddingLeft:{property:"paddingLeft",scale:"space",defaultScale:F.space},paddingX:{properties:["paddingLeft","paddingRight"],scale:"space",defaultScale:F.space},paddingY:{properties:["paddingTop","paddingBottom"],scale:"space",defaultScale:F.space}},z.padding.p=z.padding.padding,z.padding.pt=z.padding.paddingTop,z.padding.pr=z.padding.paddingRight,z.padding.pb=z.padding.paddingBottom,z.padding.pl=z.padding.paddingLeft,z.padding.px=z.padding.paddingX,z.padding.py=z.padding.paddingY;var B=p(z.margin),V=p(z.padding),H=g(B,V);var $=p({boxShadow:{property:"boxShadow",scale:"shadows"},textShadow:{property:"textShadow",scale:"shadows"}});const W=$;var G=n(50402),q=function(e){var t,n,r=e.scale,o=e.prop,i=void 0===o?"variant":o,a=e.variants,s=void 0===a?{}:a,u=e.key;n=Object.keys(s).length?function(e,t,n){return(0,G.default)(l(t,e,null))(n.theme)}:function(e,t){return l(t,e,null)},n.scale=r||u,n.defaults=s;var f=((t={})[i]=n,t);return c(f)};var Y=q({key:"buttons"}),X=q({key:"textStyles",prop:"textStyle"}),Z=q({key:"colorStyles",prop:"colors"}),K=y.width,Q=y.height,J=y.minWidth,ee=y.minHeight,te=y.maxWidth,ne=y.maxHeight,re=y.size,oe=y.verticalAlign,ie=y.display,ae=y.overflow,se=y.overflowX,ue=y.overflowY,le=_.opacity,ce=x.fontSize,fe=x.fontFamily,de=x.fontWeight,he=x.lineHeight,pe=x.textAlign,ge=x.fontStyle,ve=x.letterSpacing,ye=A.alignItems,me=A.alignContent,be=A.justifyItems,_e=A.justifyContent,we=A.flexWrap,xe=A.flexDirection,Se=A.flex,Ae=A.flexGrow,Ee=A.flexShrink,Ce=A.flexBasis,Re=A.justifySelf,Oe=A.alignSelf,Te=A.order,ke=R.gridGap,Me=R.gridColumnGap,Pe=R.gridRowGap,Ne=R.gridColumn,Ie=R.gridRow,Le=R.gridAutoFlow,De=R.gridAutoColumns,Fe=R.gridAutoRows,je=R.gridTemplateColumns,Ue=R.gridTemplateRows,ze=R.gridTemplateAreas,Be=R.gridArea,Ve=k.borderWidth,He=k.borderStyle,$e=k.borderColor,We=k.borderTop,Ge=k.borderRight,qe=k.borderBottom,Ye=k.borderLeft,Xe=k.borderRadius,Ze=N.backgroundImage,Ke=N.backgroundSize,Qe=N.backgroundPosition,Je=N.backgroundRepeat,et=D.zIndex,tt=D.top,nt=D.right,rt=D.bottom,ot=D.left,it=function(e){var t=e.prop,n=e.cssProperty,r=e.alias,o=e.key,i=e.transformValue,a=e.scale,s=e.properties,u={};return u[t]=h({properties:s,property:n||t,scale:o,defaultScale:a,transform:i}),r&&(u[r]=u[t]),c(u)}},12897:function(e,t,n){e.exports=function(){"use strict";var e=function(e){var t=e.id,n=e.viewBox,r=e.content;this.id=t,this.viewBox=n,this.content=r};e.prototype.stringify=function(){return this.content},e.prototype.toString=function(){return this.stringify()},e.prototype.destroy=function(){var e=this;["id","viewBox","content"].forEach((function(t){return delete e[t]}))};var t=function(e){var t=!!document.importNode,n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement;return t?document.importNode(n,!0):n};function r(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self&&self;var o=r((function(e,t){!function(t,n){e.exports=n()}(0,(function(){function e(e){return e&&"object"===typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)}function t(e){return Array.isArray(e)?[]:{}}function n(n,r){return r&&!0===r.clone&&e(n)?i(t(n),n,r):n}function r(t,r,o){var a=t.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,o):e(r)?a[s]=i(t[s],r,o):-1===t.indexOf(r)&&a.push(n(r,o))})),a}function o(t,r,o){var a={};return e(t)&&Object.keys(t).forEach((function(e){a[e]=n(t[e],o)})),Object.keys(r).forEach((function(s){e(r[s])&&t[s]?a[s]=i(t[s],r[s],o):a[s]=n(r[s],o)})),a}function i(e,t,i){var a=Array.isArray(t),s=(i||{arrayMerge:r}).arrayMerge||r;return a?Array.isArray(e)?s(e,t,i):n(t,i):o(e,t,i)}return i.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,n){return i(e,n,t)}))},i}))})),i=r((function(e,t){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};t.default=n,e.exports=t.default})),a=function(e){return Object.keys(e).map((function(t){return t+'="'+e[t].toString().replace(/"/g,"&quot;")+'"'})).join(" ")},s=i.svg,u=i.xlink,l={};l[s.name]=s.uri,l[u.name]=u.uri;var c=function(e,t){void 0===e&&(e="");var n=o(l,t||{});return"<svg "+a(n)+">"+e+"</svg>"},f=function(e){function n(){e.apply(this,arguments)}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={isMounted:{}};return r.isMounted.get=function(){return!!this.node},n.createFromExistingNode=function(e){return new n({id:e.getAttribute("id"),viewBox:e.getAttribute("viewBox"),content:e.outerHTML})},n.prototype.destroy=function(){this.isMounted&&this.unmount(),e.prototype.destroy.call(this)},n.prototype.mount=function(e){if(this.isMounted)return this.node;var t="string"===typeof e?document.querySelector(e):e,n=this.render();return this.node=n,t.appendChild(n),n},n.prototype.render=function(){var e=this.stringify();return t(c(e)).childNodes[0]},n.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(n.prototype,r),n}(e);return f}()},55042:function(e,t,n){e.exports=function(){"use strict";function e(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self&&self;var t=e((function(e,t){!function(t,n){e.exports=n()}(0,(function(){function e(e){return e&&"object"===typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)}function t(e){return Array.isArray(e)?[]:{}}function n(n,r){return r&&!0===r.clone&&e(n)?i(t(n),n,r):n}function r(t,r,o){var a=t.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,o):e(r)?a[s]=i(t[s],r,o):-1===t.indexOf(r)&&a.push(n(r,o))})),a}function o(t,r,o){var a={};return e(t)&&Object.keys(t).forEach((function(e){a[e]=n(t[e],o)})),Object.keys(r).forEach((function(s){e(r[s])&&t[s]?a[s]=i(t[s],r[s],o):a[s]=n(r[s],o)})),a}function i(e,t,i){var a=Array.isArray(t),s=(i||{arrayMerge:r}).arrayMerge||r;return a?Array.isArray(e)?s(e,t,i):n(t,i):o(e,t,i)}return i.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,n){return i(e,n,t)}))},i}))}));function r(e){return e=e||Object.create(null),{on:function(t,n){(e[t]||(e[t]=[])).push(n)},off:function(t,n){e[t]&&e[t].splice(e[t].indexOf(n)>>>0,1)},emit:function(t,n){(e[t]||[]).map((function(e){e(n)})),(e["*"]||[]).map((function(e){e(t,n)}))}}}var o=e((function(e,t){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};t.default=n,e.exports=t.default})),i=function(e){return Object.keys(e).map((function(t){return t+'="'+e[t].toString().replace(/"/g,"&quot;")+'"'})).join(" ")},a=o.svg,s=o.xlink,u={};u[a.name]=a.uri,u[s.name]=s.uri;var l,c=function(e,n){void 0===e&&(e="");var r=t(u,n||{});return"<svg "+i(r)+">"+e+"</svg>"},f=o.svg,d=o.xlink,h={attrs:(l={style:["position: absolute","width: 0","height: 0"].join("; "),"aria-hidden":"true"},l[f.name]=f.uri,l[d.name]=d.uri,l)},p=function(e){this.config=t(h,e||{}),this.symbols=[]};p.prototype.add=function(e){var t=this.symbols,n=this.find(e.id);return n?(t[t.indexOf(n)]=e,!1):(t.push(e),!0)},p.prototype.remove=function(e){var t=this.symbols,n=this.find(e);return!!n&&(t.splice(t.indexOf(n),1),n.destroy(),!0)},p.prototype.find=function(e){return this.symbols.filter((function(t){return t.id===e}))[0]||null},p.prototype.has=function(e){return null!==this.find(e)},p.prototype.stringify=function(){var e=this.config.attrs,t=this.symbols.map((function(e){return e.stringify()})).join("");return c(t,e)},p.prototype.toString=function(){return this.stringify()},p.prototype.destroy=function(){this.symbols.forEach((function(e){return e.destroy()}))};var g=function(e){var t=e.id,n=e.viewBox,r=e.content;this.id=t,this.viewBox=n,this.content=r};g.prototype.stringify=function(){return this.content},g.prototype.toString=function(){return this.stringify()},g.prototype.destroy=function(){var e=this;["id","viewBox","content"].forEach((function(t){return delete e[t]}))};var v=function(e){var t=!!document.importNode,n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement;return t?document.importNode(n,!0):n},y=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={isMounted:{}};return n.isMounted.get=function(){return!!this.node},t.createFromExistingNode=function(e){return new t({id:e.getAttribute("id"),viewBox:e.getAttribute("viewBox"),content:e.outerHTML})},t.prototype.destroy=function(){this.isMounted&&this.unmount(),e.prototype.destroy.call(this)},t.prototype.mount=function(e){if(this.isMounted)return this.node;var t="string"===typeof e?document.querySelector(e):e,n=this.render();return this.node=n,t.appendChild(n),n},t.prototype.render=function(){var e=this.stringify();return v(c(e)).childNodes[0]},t.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(t.prototype,n),t}(g),m={autoConfigure:!0,mountTo:"body",syncUrlsWithBaseTag:!1,listenLocationChangeEvent:!0,locationChangeEvent:"locationChange",locationChangeAngularEmitter:!1,usagesToUpdate:"use[*|href]",moveGradientsOutsideSymbol:!1},b=function(e){return Array.prototype.slice.call(e,0)},_={isChrome:function(){return/chrome/i.test(navigator.userAgent)},isFirefox:function(){return/firefox/i.test(navigator.userAgent)},isIE:function(){return/msie/i.test(navigator.userAgent)||/trident/i.test(navigator.userAgent)},isEdge:function(){return/edge/i.test(navigator.userAgent)}},w=function(e,t){var n=document.createEvent("CustomEvent");n.initCustomEvent(e,!1,!1,t),window.dispatchEvent(n)},x=function(e){var t=[];return b(e.querySelectorAll("style")).forEach((function(e){e.textContent+="",t.push(e)})),t},S=function(e){return(e||window.location.href).split("#")[0]},A=function(e){angular.module("ng").run(["$rootScope",function(t){t.$on("$locationChangeSuccess",(function(t,n,r){w(e,{oldUrl:r,newUrl:n})}))}])},E="linearGradient, radialGradient, pattern, mask, clipPath",C=function(e,t){return void 0===t&&(t=E),b(e.querySelectorAll("symbol")).forEach((function(e){b(e.querySelectorAll(t)).forEach((function(t){e.parentNode.insertBefore(t,e)}))})),e};function R(e,t){return b(e).reduce((function(e,n){if(!n.attributes)return e;var r=b(n.attributes),o=t?r.filter(t):r;return e.concat(o)}),[])}var O=o.xlink.uri,T="xlink:href",k=/[{}|\\\^\[\]`"<>]/g;function M(e){return e.replace(k,(function(e){return"%"+e[0].charCodeAt(0).toString(16).toUpperCase()}))}function P(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(e,t,n){return b(e).forEach((function(e){var r=e.getAttribute(T);if(r&&0===r.indexOf(t)){var o=r.replace(t,n);e.setAttributeNS(O,T,o)}})),e}var I,L=["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke","style"],D=L.map((function(e){return"["+e+"]"})).join(","),F=function(e,t,n,r){var o=M(n),i=M(r);R(e.querySelectorAll(D),(function(e){var t=e.localName,n=e.value;return-1!==L.indexOf(t)&&-1!==n.indexOf("url("+o)})).forEach((function(e){return e.value=e.value.replace(new RegExp(P(o),"g"),i)})),N(t,o,i)},j={MOUNT:"mount",SYMBOL_MOUNT:"symbol_mount"},U=function(e){function n(n){var o=this;void 0===n&&(n={}),e.call(this,t(m,n));var i=r();this._emitter=i,this.node=null;var a=this.config;if(a.autoConfigure&&this._autoConfigure(n),a.syncUrlsWithBaseTag){var s=document.getElementsByTagName("base")[0].getAttribute("href");i.on(j.MOUNT,(function(){return o.updateUrls("#",s)}))}var u=this._handleLocationChange.bind(this);this._handleLocationChange=u,a.listenLocationChangeEvent&&window.addEventListener(a.locationChangeEvent,u),a.locationChangeAngularEmitter&&A(a.locationChangeEvent),i.on(j.MOUNT,(function(e){a.moveGradientsOutsideSymbol&&C(e)})),i.on(j.SYMBOL_MOUNT,(function(e){a.moveGradientsOutsideSymbol&&C(e.parentNode),(_.isIE()||_.isEdge())&&x(e)}))}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var o={isMounted:{}};return o.isMounted.get=function(){return!!this.node},n.prototype._autoConfigure=function(e){var t=this.config;"undefined"===typeof e.syncUrlsWithBaseTag&&(t.syncUrlsWithBaseTag="undefined"!==typeof document.getElementsByTagName("base")[0]),"undefined"===typeof e.locationChangeAngularEmitter&&(t.locationChangeAngularEmitter="undefined"!==typeof window.angular),"undefined"===typeof e.moveGradientsOutsideSymbol&&(t.moveGradientsOutsideSymbol=_.isFirefox())},n.prototype._handleLocationChange=function(e){var t=e.detail,n=t.oldUrl,r=t.newUrl;this.updateUrls(n,r)},n.prototype.add=function(t){var n=this,r=e.prototype.add.call(this,t);return this.isMounted&&r&&(t.mount(n.node),this._emitter.emit(j.SYMBOL_MOUNT,t.node)),r},n.prototype.attach=function(e){var t=this,n=this;if(n.isMounted)return n.node;var r="string"===typeof e?document.querySelector(e):e;return n.node=r,this.symbols.forEach((function(e){e.mount(n.node),t._emitter.emit(j.SYMBOL_MOUNT,e.node)})),b(r.querySelectorAll("symbol")).forEach((function(e){var t=y.createFromExistingNode(e);t.node=e,n.add(t)})),this._emitter.emit(j.MOUNT,r),r},n.prototype.destroy=function(){var e=this,t=e.config,n=e.symbols,r=e._emitter;n.forEach((function(e){return e.destroy()})),r.off("*"),window.removeEventListener(t.locationChangeEvent,this._handleLocationChange),this.isMounted&&this.unmount()},n.prototype.mount=function(e,t){void 0===e&&(e=this.config.mountTo),void 0===t&&(t=!1);var n=this;if(n.isMounted)return n.node;var r="string"===typeof e?document.querySelector(e):e,o=n.render();return this.node=o,t&&r.childNodes[0]?r.insertBefore(o,r.childNodes[0]):r.appendChild(o),this._emitter.emit(j.MOUNT,o),o},n.prototype.render=function(){return v(this.stringify())},n.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},n.prototype.updateUrls=function(e,t){if(!this.isMounted)return!1;var n=document.querySelectorAll(this.config.usagesToUpdate);return F(this.node,n,S(e)+"#",S(t)+"#"),!0},Object.defineProperties(n.prototype,o),n}(p),z=e((function(e){var t;t=function(){var e,t=[],n=document,r=n.documentElement.doScroll,o="DOMContentLoaded",i=(r?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return i||n.addEventListener(o,e=function(){for(n.removeEventListener(o,e),i=1;e=t.shift();)e()}),function(e){i?setTimeout(e,0):t.push(e)}},e.exports=t()})),B="__SVG_SPRITE_NODE__",V="__SVG_SPRITE__";window[V]?I=window[V]:(I=new U({attrs:{id:B,"aria-hidden":"true"}}),window[V]=I);var H=function(){var e=document.getElementById(B);e?I.attach(e):I.mount(document.body,!0)};return document.body?H():z(H),I}()},39528:(e,t,n)=>{"use strict";n.d(t,{i7:()=>f,q6:()=>c});var r=n(96540),o=n(69982),i=n(40961);const a=Symbol(),s=Symbol(),u="undefined"==typeof window||/ServerSideRendering/.test(window.navigator&&window.navigator.userAgent)?r.useEffect:r.useLayoutEffect,l=o.unstable_runWithPriority?e=>(0,o.unstable_runWithPriority)(o.unstable_NormalPriority,e):e=>e();function c(e){const t=(0,r.createContext)({[a]:{v:{current:e},n:{current:-1},l:new Set,u:e=>e()}});var n;return t[s]=t.Provider,t.Provider=(n=t.Provider,({value:e,children:t})=>{const o=(0,r.useRef)(e),s=(0,r.useRef)(0),[c,f]=(0,r.useState)(null);c&&(c(e),f(null));const d=(0,r.useRef)();if(!d.current){const e=new Set,t=(t,n)=>{(0,i.unstable_batchedUpdates)((()=>{s.current+=1;const r={n:s.current};null!=n&&n.suspense&&(r.n*=-1,r.p=new Promise((e=>{f((()=>t=>{r.v=t,delete r.p,e(t)}))}))),e.forEach((e=>e(r))),t()}))};d.current={[a]:{v:o,n:s,l:e,u:t}}}return u((()=>{o.current=e,s.current+=1,l((()=>{d.current[a].l.forEach((t=>{t({n:s.current,v:e})}))}))}),[e]),(0,r.createElement)(n,{value:d.current},t)}),delete t.Consumer,t}function f(e,t){const n=(0,r.useContext)(e)[a];const{v:{current:o},n:{current:i},l:s}=n,l=t(o),[c,f]=(0,r.useReducer)(((e,n)=>{if(!n)return[o,l];if("p"in n)throw n.p;if(n.n===i)return Object.is(e[1],l)?e:[o,l];try{if("v"in n){if(Object.is(e[0],n.v))return e;const r=t(n.v);return Object.is(e[1],r)?e:[n.v,r]}}catch(e){}return[...e]}),[o,l]);return Object.is(c[1],l)||f(),u((()=>(s.add(f),()=>{s.delete(f)})),[s]),c[1]}},27003:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=n(96540).useLayoutEffect},22831:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NIL",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"v1",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"v3",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"v4",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"v5",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"version",{enumerable:!0,get:function(){return u.default}});var r=d(n(13518)),o=d(n(14948)),i=d(n(45073)),a=d(n(77186)),s=d(n(14808)),u=d(n(7775)),l=d(n(37037)),c=d(n(49910)),f=d(n(96792));function d(e){return e&&e.__esModule?e:{default:e}}},22311:(e,t)=>{"use strict";function n(e){return 14+(e+64>>>9<<4)+1}function r(e,t){const n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,t,n,o,i,a){return r((s=r(r(t,e),r(o,a)))<<(u=i)|s>>>32-u,n);var s,u}function i(e,t,n,r,i,a,s){return o(t&n|~t&r,e,t,i,a,s)}function a(e,t,n,r,i,a,s){return o(t&r|n&~r,e,t,i,a,s)}function s(e,t,n,r,i,a,s){return o(t^n^r,e,t,i,a,s)}function u(e,t,n,r,i,a,s){return o(n^(t|~r),e,t,i,a,s)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l=function(e){if("string"===typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){const t=[],n=32*e.length,r="0123456789abcdef";for(let o=0;o<n;o+=8){const n=e[o>>5]>>>o%32&255,i=parseInt(r.charAt(n>>>4&15)+r.charAt(15&n),16);t.push(i)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[n(t)-1]=t;let o=1732584193,l=-271733879,c=-1732584194,f=271733878;for(let n=0;n<e.length;n+=16){const t=o,d=l,h=c,p=f;o=i(o,l,c,f,e[n],7,-680876936),f=i(f,o,l,c,e[n+1],12,-389564586),c=i(c,f,o,l,e[n+2],17,606105819),l=i(l,c,f,o,e[n+3],22,-1044525330),o=i(o,l,c,f,e[n+4],7,-176418897),f=i(f,o,l,c,e[n+5],12,1200080426),c=i(c,f,o,l,e[n+6],17,-1473231341),l=i(l,c,f,o,e[n+7],22,-45705983),o=i(o,l,c,f,e[n+8],7,1770035416),f=i(f,o,l,c,e[n+9],12,-1958414417),c=i(c,f,o,l,e[n+10],17,-42063),l=i(l,c,f,o,e[n+11],22,-1990404162),o=i(o,l,c,f,e[n+12],7,1804603682),f=i(f,o,l,c,e[n+13],12,-40341101),c=i(c,f,o,l,e[n+14],17,-1502002290),l=i(l,c,f,o,e[n+15],22,1236535329),o=a(o,l,c,f,e[n+1],5,-165796510),f=a(f,o,l,c,e[n+6],9,-1069501632),c=a(c,f,o,l,e[n+11],14,643717713),l=a(l,c,f,o,e[n],20,-373897302),o=a(o,l,c,f,e[n+5],5,-701558691),f=a(f,o,l,c,e[n+10],9,38016083),c=a(c,f,o,l,e[n+15],14,-660478335),l=a(l,c,f,o,e[n+4],20,-405537848),o=a(o,l,c,f,e[n+9],5,568446438),f=a(f,o,l,c,e[n+14],9,-1019803690),c=a(c,f,o,l,e[n+3],14,-187363961),l=a(l,c,f,o,e[n+8],20,1163531501),o=a(o,l,c,f,e[n+13],5,-1444681467),f=a(f,o,l,c,e[n+2],9,-51403784),c=a(c,f,o,l,e[n+7],14,1735328473),l=a(l,c,f,o,e[n+12],20,-1926607734),o=s(o,l,c,f,e[n+5],4,-378558),f=s(f,o,l,c,e[n+8],11,-2022574463),c=s(c,f,o,l,e[n+11],16,1839030562),l=s(l,c,f,o,e[n+14],23,-35309556),o=s(o,l,c,f,e[n+1],4,-1530992060),f=s(f,o,l,c,e[n+4],11,1272893353),c=s(c,f,o,l,e[n+7],16,-155497632),l=s(l,c,f,o,e[n+10],23,-1094730640),o=s(o,l,c,f,e[n+13],4,681279174),f=s(f,o,l,c,e[n],11,-358537222),c=s(c,f,o,l,e[n+3],16,-722521979),l=s(l,c,f,o,e[n+6],23,76029189),o=s(o,l,c,f,e[n+9],4,-640364487),f=s(f,o,l,c,e[n+12],11,-421815835),c=s(c,f,o,l,e[n+15],16,530742520),l=s(l,c,f,o,e[n+2],23,-995338651),o=u(o,l,c,f,e[n],6,-198630844),f=u(f,o,l,c,e[n+7],10,1126891415),c=u(c,f,o,l,e[n+14],15,-1416354905),l=u(l,c,f,o,e[n+5],21,-57434055),o=u(o,l,c,f,e[n+12],6,1700485571),f=u(f,o,l,c,e[n+3],10,-1894986606),c=u(c,f,o,l,e[n+10],15,-1051523),l=u(l,c,f,o,e[n+1],21,-2054922799),o=u(o,l,c,f,e[n+8],6,1873313359),f=u(f,o,l,c,e[n+15],10,-30611744),c=u(c,f,o,l,e[n+6],15,-1560198380),l=u(l,c,f,o,e[n+13],21,1309151649),o=u(o,l,c,f,e[n+4],6,-145523070),f=u(f,o,l,c,e[n+11],10,-1120210379),c=u(c,f,o,l,e[n+2],15,718787259),l=u(l,c,f,o,e[n+9],21,-343485551),o=r(o,t),l=r(l,d),c=r(c,h),f=r(f,p)}return[o,l,c,f]}(function(e){if(0===e.length)return[];const t=8*e.length,r=new Uint32Array(n(t));for(let n=0;n<t;n+=8)r[n>>5]|=(255&e[n/8])<<n%32;return r}(e),8*e.length))};t.default=l},46140:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={randomUUID:"undefined"!==typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};t.default=n},14808:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default="00000000-0000-0000-0000-000000000000"},96792:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(37037))&&r.__esModule?r:{default:r};var i=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");let t;const n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n};t.default=i},27656:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},2858:(e,t)=>{"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!n&&(n="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!n))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(r)};const r=new Uint8Array(16)},9042:(e,t)=>{"use strict";function n(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:case 3:return t^n^r;case 2:return t&n^t&r^n&r}}function r(e,t){return e<<t|e>>>32-t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){const t=[1518500249,1859775393,2400959708,3395469782],o=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"===typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const i=e.length/4+2,a=Math.ceil(i/16),s=new Array(a);for(let n=0;n<a;++n){const t=new Uint32Array(16);for(let r=0;r<16;++r)t[r]=e[64*n+4*r]<<24|e[64*n+4*r+1]<<16|e[64*n+4*r+2]<<8|e[64*n+4*r+3];s[n]=t}s[a-1][14]=8*(e.length-1)/Math.pow(2,32),s[a-1][14]=Math.floor(s[a-1][14]),s[a-1][15]=8*(e.length-1)&4294967295;for(let u=0;u<a;++u){const e=new Uint32Array(80);for(let t=0;t<16;++t)e[t]=s[u][t];for(let t=16;t<80;++t)e[t]=r(e[t-3]^e[t-8]^e[t-14]^e[t-16],1);let i=o[0],a=o[1],l=o[2],c=o[3],f=o[4];for(let o=0;o<80;++o){const s=Math.floor(o/20),u=r(i,5)+n(s,a,l,c)+f+t[s]+e[o]>>>0;f=c,c=l,l=r(a,30)>>>0,a=i,i=u}o[0]=o[0]+i>>>0,o[1]=o[1]+a>>>0,o[2]=o[2]+l>>>0,o[3]=o[3]+c>>>0,o[4]=o[4]+f>>>0}return[o[0]>>24&255,o[0]>>16&255,o[0]>>8&255,255&o[0],o[1]>>24&255,o[1]>>16&255,o[1]>>8&255,255&o[1],o[2]>>24&255,o[2]>>16&255,o[2]>>8&255,255&o[2],o[3]>>24&255,o[3]>>16&255,o[3]>>8&255,255&o[3],o[4]>>24&255,o[4]>>16&255,o[4]>>8&255,255&o[4]]};t.default=o},49910:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.unsafeStringify=a;var r,o=(r=n(37037))&&r.__esModule?r:{default:r};const i=[];for(let u=0;u<256;++u)i.push((u+256).toString(16).slice(1));function a(e,t=0){return i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]}var s=function(e,t=0){const n=a(e,t);if(!(0,o.default)(n))throw TypeError("Stringified UUID is invalid");return n};t.default=s},13518:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(2858))&&r.__esModule?r:{default:r},i=n(49910);let a,s,u=0,l=0;var c=function(e,t,n){let r=t&&n||0;const c=t||new Array(16);let f=(e=e||{}).node||a,d=void 0!==e.clockseq?e.clockseq:s;if(null==f||null==d){const t=e.random||(e.rng||o.default)();null==f&&(f=a=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==d&&(d=s=16383&(t[6]<<8|t[7]))}let h=void 0!==e.msecs?e.msecs:Date.now(),p=void 0!==e.nsecs?e.nsecs:l+1;const g=h-u+(p-l)/1e4;if(g<0&&void 0===e.clockseq&&(d=d+1&16383),(g<0||h>u)&&void 0===e.nsecs&&(p=0),p>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=h,l=p,s=d,h+=122192928e5;const v=(1e4*(268435455&h)+p)%4294967296;c[r++]=v>>>24&255,c[r++]=v>>>16&255,c[r++]=v>>>8&255,c[r++]=255&v;const y=h/4294967296*1e4&268435455;c[r++]=y>>>8&255,c[r++]=255&y,c[r++]=y>>>24&15|16,c[r++]=y>>>16&255,c[r++]=d>>>8|128,c[r++]=255&d;for(let o=0;o<6;++o)c[r+o]=f[o];return t||(0,i.unsafeStringify)(c)};t.default=c},14948:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(59025)),o=i(n(22311));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v3",48,o.default);t.default=a},59025:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.URL=t.DNS=void 0,t.default=function(e,t,n){function r(e,r,a,s){var u;if("string"===typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"===typeof r&&(r=(0,i.default)(r)),16!==(null===(u=r)||void 0===u?void 0:u.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+e.length);if(l.set(r),l.set(e,r.length),l=n(l),l[6]=15&l[6]|t,l[8]=63&l[8]|128,a){s=s||0;for(let e=0;e<16;++e)a[s+e]=l[e];return a}return(0,o.unsafeStringify)(l)}try{r.name=e}catch(u){}return r.DNS=a,r.URL=s,r};var r,o=n(49910),i=(r=n(96792))&&r.__esModule?r:{default:r};const a="6ba7b810-9dad-11d1-80b4-00c04fd430c8";t.DNS=a;const s="6ba7b811-9dad-11d1-80b4-00c04fd430c8";t.URL=s},45073:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(46140)),o=a(n(2858)),i=n(49910);function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e,t,n){if(r.default.randomUUID&&!t&&!e)return r.default.randomUUID();const a=(e=e||{}).random||(e.rng||o.default)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=a[e];return t}return(0,i.unsafeStringify)(a)};t.default=s},77186:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(59025)),o=i(n(9042));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v5",80,o.default);t.default=a},37037:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(27656))&&r.__esModule?r:{default:r};var i=function(e){return"string"===typeof e&&o.default.test(e)};t.default=i},7775:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(37037))&&r.__esModule?r:{default:r};var i=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)};t.default=i},62805:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r="00000000-0000-0000-0000-000000000000"},33829:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});const r={randomUUID:"undefined"!==typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let o;const i=new Uint8Array(16);function a(){if(!o&&(o="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!o))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return o(i)}const s=[];for(let c=0;c<256;++c)s.push((c+256).toString(16).slice(1));function u(e,t=0){return s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]}const l=function(e,t,n){if(r.randomUUID&&!t&&!e)return r.randomUUID();const o=(e=e||{}).random||(e.rng||a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return u(o)}},79306:(e,t,n)=>{"use strict";var r=n(94901),o=n(16823),i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not a function")}},35548:(e,t,n)=>{"use strict";var r=n(33517),o=n(16823),i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not a constructor")}},13813:(e,t,n)=>{"use strict";var r=n(72248).has;e.exports=function(e){return r(e),e}},73506:(e,t,n)=>{"use strict";var r=n(13925),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw new i("Can't set "+o(e)+" as a prototype")}},97080:(e,t,n)=>{"use strict";var r=n(94402).has;e.exports=function(e){return r(e),e}},6469:(e,t,n)=>{"use strict";var r=n(78227),o=n(2360),i=n(24913).f,a=r("unscopables"),s=Array.prototype;void 0===s[a]&&i(s,a,{configurable:!0,value:o(null)}),e.exports=function(e){s[a][e]=!0}},57829:(e,t,n)=>{"use strict";var r=n(68183).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},90679:(e,t,n)=>{"use strict";var r=n(1625),o=TypeError;e.exports=function(e,t){if(r(t,e))return e;throw new o("Incorrect invocation")}},28551:(e,t,n)=>{"use strict";var r=n(20034),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not an object")}},19617:(e,t,n)=>{"use strict";var r=n(25397),o=n(35610),i=n(26198),a=function(e){return function(t,n,a){var s=r(t),u=i(s);if(0===u)return!e&&-1;var l,c=o(a,u);if(e&&n!==n){for(;u>c;)if((l=s[c++])!==l)return!0}else for(;u>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},67680:(e,t,n)=>{"use strict";var r=n(79504);e.exports=r([].slice)},74488:(e,t,n)=>{"use strict";var r=n(67680),o=Math.floor,i=function(e,t){var n=e.length;if(n<8)for(var a,s,u=1;u<n;){for(s=u,a=e[u];s&&t(e[s-1],a)>0;)e[s]=e[--s];s!==u++&&(e[s]=a)}else for(var l=o(n/2),c=i(r(e,0,l),t),f=i(r(e,l),t),d=c.length,h=f.length,p=0,g=0;p<d||g<h;)e[p+g]=p<d&&g<h?t(c[p],f[g])<=0?c[p++]:f[g++]:p<d?c[p++]:f[g++];return e};e.exports=i},20772:(e,t,n)=>{"use strict";var r=n(69565),o=n(97751),i=n(55966);e.exports=function(e,t,n,a){try{var s=i(e,"return");if(s)return o("Promise").resolve(r(s,e)).then((function(){t(n)}),(function(e){a(e)}))}catch(u){return a(u)}t(n)}},92059:(e,t,n)=>{"use strict";var r=n(69565),o=n(1103),i=n(28551),a=n(2360),s=n(66699),u=n(56279),l=n(78227),c=n(91181),f=n(97751),d=n(55966),h=n(53982),p=n(62529),g=n(9539),v=f("Promise"),y=l("toStringTag"),m="AsyncIteratorHelper",b="WrapForValidAsyncIterator",_=c.set,w=function(e){var t=!e,n=c.getterFor(e?b:m),s=function(e){var r=o((function(){return n(e)})),i=r.error,a=r.value;return i||t&&a.done?{exit:!0,value:i?v.reject(a):v.resolve(p(void 0,!0))}:{exit:!1,value:a}};return u(a(h),{next:function(){var e=s(this),t=e.value;if(e.exit)return t;var n=o((function(){return i(t.nextHandler(v))})),r=n.error,a=n.value;return r&&(t.done=!0),r?v.reject(a):v.resolve(a)},return:function(){var t=s(this),n=t.value;if(t.exit)return n;n.done=!0;var a,u,l=n.iterator,c=o((function(){if(n.inner)try{g(n.inner.iterator,"normal")}catch(e){return g(l,"throw",e)}return d(l,"return")}));return a=u=c.value,c.error?v.reject(u):void 0===a?v.resolve(p(void 0,!0)):(u=(c=o((function(){return r(a,l)}))).value,c.error?v.reject(u):e?v.resolve(u):v.resolve(u).then((function(e){return i(e),p(void 0,!0)})))}})},x=w(!0),S=w(!1);s(S,y,"Async Iterator Helper"),e.exports=function(e,t){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=t?b:m,r.nextHandler=e,r.counter=0,r.done=!1,_(this,r)};return n.prototype=t?x:S,n}},36639:(e,t,n)=>{"use strict";var r=n(69565),o=n(79306),i=n(28551),a=n(20034),s=n(96837),u=n(97751),l=n(1767),c=n(20772),f=function(e){var t=0===e,n=1===e,f=2===e,d=3===e;return function(e,h,p){i(e);var g=void 0!==h;!g&&t||o(h);var v=l(e),y=u("Promise"),m=v.iterator,b=v.next,_=0;return new y((function(e,o){var u=function(e){c(m,o,e,o)},l=function(){try{if(g)try{s(_)}catch(v){u(v)}y.resolve(i(r(b,m))).then((function(r){try{if(i(r).done)t?(p.length=_,e(p)):e(!d&&(f||void 0));else{var s=r.value;try{if(g){var v=h(s,_),b=function(r){if(n)l();else if(f)r?l():c(m,e,!1,o);else if(t)try{p[_++]=r,l()}catch(i){u(i)}else r?c(m,e,d||s,o):l()};a(v)?y.resolve(v).then(b,u):b(v)}else p[_++]=s,l()}catch(w){u(w)}}}catch(x){o(x)}}),o)}catch(w){o(w)}};l()}))}};e.exports={toArray:f(0),forEach:f(1),every:f(2),some:f(3),find:f(4)}},41750:(e,t,n)=>{"use strict";var r=n(69565),o=n(79306),i=n(28551),a=n(20034),s=n(1767),u=n(92059),l=n(62529),c=n(20772),f=u((function(e){var t=this,n=t.iterator,o=t.mapper;return new e((function(s,u){var f=function(e){t.done=!0,u(e)},d=function(e){c(n,f,e,f)};e.resolve(i(r(t.next,n))).then((function(n){try{if(i(n).done)t.done=!0,s(l(void 0,!0));else{var r=n.value;try{var u=o(r,t.counter++),c=function(e){s(l(e,!1))};a(u)?e.resolve(u).then(c,d):c(u)}catch(h){d(h)}}}catch(p){f(p)}}),f)}))}));e.exports=function(e){return i(this),o(e),new f(s(this),{mapper:e})}},53982:(e,t,n)=>{"use strict";var r,o,i=n(24475),a=n(77629),s=n(94901),u=n(2360),l=n(42787),c=n(36840),f=n(78227),d=n(96395),h="USE_FUNCTION_CONSTRUCTOR",p=f("asyncIterator"),g=i.AsyncIterator,v=a.AsyncIteratorPrototype;if(v)r=v;else if(s(g))r=g.prototype;else if(a[h]||i[h])try{o=l(l(l(Function("return async function*(){}()")()))),l(o)===Object.prototype&&(r=o)}catch(y){}r?d&&(r=u(r)):r={},s(r[p])||c(r,p,(function(){return this})),e.exports=r},96319:(e,t,n)=>{"use strict";var r=n(28551),o=n(9539);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(a){o(e,"throw",a)}}},44576:(e,t,n)=>{"use strict";var r=n(79504),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},36955:(e,t,n)=>{"use strict";var r=n(92140),o=n(94901),i=n(44576),a=n(78227)("toStringTag"),s=Object,u="Arguments"===i(function(){return arguments}());e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=s(e),a))?n:u?i(t):"Object"===(r=i(t))&&o(t.callee)?"Arguments":r}},77740:(e,t,n)=>{"use strict";var r=n(39297),o=n(35031),i=n(77347),a=n(24913);e.exports=function(e,t,n){for(var s=o(t),u=a.f,l=i.f,c=0;c<s.length;c++){var f=s[c];r(e,f)||n&&r(n,f)||u(e,f,l(t,f))}}},12211:(e,t,n)=>{"use strict";var r=n(79039);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},62529:e=>{"use strict";e.exports=function(e,t){return{value:e,done:t}}},66699:(e,t,n)=>{"use strict";var r=n(43724),o=n(24913),i=n(6980);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},6980:e=>{"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},97040:(e,t,n)=>{"use strict";var r=n(43724),o=n(24913),i=n(6980);e.exports=function(e,t,n){r?o.f(e,t,i(0,n)):e[t]=n}},62106:(e,t,n)=>{"use strict";var r=n(50283),o=n(24913);e.exports=function(e,t,n){return n.get&&r(n.get,t,{getter:!0}),n.set&&r(n.set,t,{setter:!0}),o.f(e,t,n)}},36840:(e,t,n)=>{"use strict";var r=n(94901),o=n(24913),i=n(50283),a=n(39433);e.exports=function(e,t,n,s){s||(s={});var u=s.enumerable,l=void 0!==s.name?s.name:t;if(r(n)&&i(n,l,s),s.global)u?e[t]=n:a(t,n);else{try{s.unsafe?e[t]&&(u=!0):delete e[t]}catch(c){}u?e[t]=n:o.f(e,t,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}},56279:(e,t,n)=>{"use strict";var r=n(36840);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},39433:(e,t,n)=>{"use strict";var r=n(24475),o=Object.defineProperty;e.exports=function(e,t){try{o(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},43724:(e,t,n)=>{"use strict";var r=n(79039);e.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4055:(e,t,n)=>{"use strict";var r=n(24475),o=n(20034),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},96837:e=>{"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},67400:e=>{"use strict";e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},79296:(e,t,n)=>{"use strict";var r=n(4055)("span").classList,o=r&&r.constructor&&r.constructor.prototype;e.exports=o===Object.prototype?void 0:o},79392:e=>{"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},77388:(e,t,n)=>{"use strict";var r,o,i=n(24475),a=n(79392),s=i.process,u=i.Deno,l=s&&s.versions||u&&u.version,c=l&&l.v8;c&&(o=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},88727:e=>{"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},46518:(e,t,n)=>{"use strict";var r=n(24475),o=n(77347).f,i=n(66699),a=n(36840),s=n(39433),u=n(77740),l=n(92796);e.exports=function(e,t){var n,c,f,d,h,p=e.target,g=e.global,v=e.stat;if(n=g?r:v?r[p]||s(p,{}):r[p]&&r[p].prototype)for(c in t){if(d=t[c],f=e.dontCallGetSet?(h=o(n,c))&&h.value:n[c],!l(g?c:p+(v?".":"#")+c,e.forced)&&void 0!==f){if(typeof d==typeof f)continue;u(d,f)}(e.sham||f&&f.sham)&&i(d,"sham",!0),a(n,c,d,e)}}},79039:e=>{"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},89228:(e,t,n)=>{"use strict";n(27495);var r=n(69565),o=n(36840),i=n(57323),a=n(79039),s=n(78227),u=n(66699),l=s("species"),c=RegExp.prototype;e.exports=function(e,t,n,f){var d=s(e),h=!a((function(){var t={};return t[d]=function(){return 7},7!==""[e](t)})),p=h&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[d]=/./[d]),n.exec=function(){return t=!0,null},n[d](""),!t}));if(!h||!p||n){var g=/./[d],v=t(d,""[e],(function(e,t,n,o,a){var s=t.exec;return s===i||s===c.exec?h&&!a?{done:!0,value:r(g,t,n,o)}:{done:!0,value:r(e,n,t,o)}:{done:!1}}));o(String.prototype,e,v[0]),o(c,d,v[1])}f&&u(c[d],"sham",!0)}},18745:(e,t,n)=>{"use strict";var r=n(40616),o=Function.prototype,i=o.apply,a=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},76080:(e,t,n)=>{"use strict";var r=n(27476),o=n(79306),i=n(40616),a=r(r.bind);e.exports=function(e,t){return o(e),void 0===t?e:i?a(e,t):function(){return e.apply(t,arguments)}}},40616:(e,t,n)=>{"use strict";var r=n(79039);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},69565:(e,t,n)=>{"use strict";var r=n(40616),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},10350:(e,t,n)=>{"use strict";var r=n(43724),o=n(39297),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),u=s&&"something"===function(){}.name,l=s&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:u,CONFIGURABLE:l}},46706:(e,t,n)=>{"use strict";var r=n(79504),o=n(79306);e.exports=function(e,t,n){try{return r(o(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(i){}}},27476:(e,t,n)=>{"use strict";var r=n(44576),o=n(79504);e.exports=function(e){if("Function"===r(e))return o(e)}},79504:(e,t,n)=>{"use strict";var r=n(40616),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);e.exports=r?a:function(e){return function(){return i.apply(e,arguments)}}},97751:(e,t,n)=>{"use strict";var r=n(24475),o=n(94901);e.exports=function(e,t){return arguments.length<2?(n=r[e],o(n)?n:void 0):r[e]&&r[e][t];var n}},1767:e=>{"use strict";e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},50851:(e,t,n)=>{"use strict";var r=n(36955),o=n(55966),i=n(64117),a=n(26269),s=n(78227)("iterator");e.exports=function(e){if(!i(e))return o(e,s)||o(e,"@@iterator")||a[r(e)]}},70081:(e,t,n)=>{"use strict";var r=n(69565),o=n(79306),i=n(28551),a=n(16823),s=n(50851),u=TypeError;e.exports=function(e,t){var n=arguments.length<2?s(e):t;if(o(n))return i(r(n,e));throw new u(a(e)+" is not iterable")}},55966:(e,t,n)=>{"use strict";var r=n(79306),o=n(64117);e.exports=function(e,t){var n=e[t];return o(n)?void 0:r(n)}},83789:(e,t,n)=>{"use strict";var r=n(79306),o=n(28551),i=n(69565),a=n(91291),s=n(1767),u="Invalid size",l=RangeError,c=TypeError,f=Math.max,d=function(e,t){this.set=e,this.size=f(t,0),this.has=r(e.has),this.keys=r(e.keys)};d.prototype={getIterator:function(){return s(o(i(this.keys,this.set)))},includes:function(e){return i(this.has,this.set,e)}},e.exports=function(e){o(e);var t=+e.size;if(t!==t)throw new c(u);var n=a(t);if(n<0)throw new l(u);return new d(e,n)}},2478:(e,t,n)=>{"use strict";var r=n(79504),o=n(48981),i=Math.floor,a=r("".charAt),s=r("".replace),u=r("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,f,d){var h=n+e.length,p=r.length,g=c;return void 0!==f&&(f=o(f),g=l),s(d,g,(function(o,s){var l;switch(a(s,0)){case"$":return"$";case"&":return e;case"`":return u(t,0,n);case"'":return u(t,h);case"<":l=f[u(s,1,-1)];break;default:var c=+s;if(0===c)return o;if(c>p){var d=i(c/10);return 0===d?o:d<=p?void 0===r[d-1]?a(s,1):r[d-1]+a(s,1):o}l=r[c-1]}return void 0===l?"":l}))}},24475:function(e,t,n){"use strict";var r=function(e){return e&&e.Math===Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()},39297:(e,t,n)=>{"use strict";var r=n(79504),o=n(48981),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},30421:e=>{"use strict";e.exports={}},20397:(e,t,n)=>{"use strict";var r=n(97751);e.exports=r("document","documentElement")},35917:(e,t,n)=>{"use strict";var r=n(43724),o=n(79039),i=n(4055);e.exports=!r&&!o((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},47055:(e,t,n)=>{"use strict";var r=n(79504),o=n(79039),i=n(44576),a=Object,s=r("".split);e.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"===i(e)?s(e,""):a(e)}:a},33706:(e,t,n)=>{"use strict";var r=n(79504),o=n(94901),i=n(77629),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},91181:(e,t,n)=>{"use strict";var r,o,i,a=n(58622),s=n(24475),u=n(20034),l=n(66699),c=n(39297),f=n(77629),d=n(66119),h=n(30421),p="Object already initialized",g=s.TypeError,v=s.WeakMap;if(a||f.state){var y=f.state||(f.state=new v);y.get=y.get,y.has=y.has,y.set=y.set,r=function(e,t){if(y.has(e))throw new g(p);return t.facade=e,y.set(e,t),t},o=function(e){return y.get(e)||{}},i=function(e){return y.has(e)}}else{var m=d("state");h[m]=!0,r=function(e,t){if(c(e,m))throw new g(p);return t.facade=e,l(e,m,t),t},o=function(e){return c(e,m)?e[m]:{}},i=function(e){return c(e,m)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!u(t)||(n=o(t)).type!==e)throw new g("Incompatible receiver, "+e+" required");return n}}}},44209:(e,t,n)=>{"use strict";var r=n(78227),o=n(26269),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},94901:e=>{"use strict";var t="object"==typeof document&&document.all;e.exports="undefined"==typeof t&&void 0!==t?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},33517:(e,t,n)=>{"use strict";var r=n(79504),o=n(79039),i=n(94901),a=n(36955),s=n(97751),u=n(33706),l=function(){},c=s("Reflect","construct"),f=/^\s*(?:class|function)\b/,d=r(f.exec),h=!f.test(l),p=function(e){if(!i(e))return!1;try{return c(l,[],e),!0}catch(t){return!1}},g=function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return h||!!d(f,u(e))}catch(t){return!0}};g.sham=!0,e.exports=!c||o((function(){var e;return p(p.call)||!p(Object)||!p((function(){e=!0}))||e}))?g:p},92796:(e,t,n)=>{"use strict";var r=n(79039),o=n(94901),i=/#|\.prototype\./,a=function(e,t){var n=u[s(e)];return n===c||n!==l&&(o(t)?r(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=a.data={},l=a.NATIVE="N",c=a.POLYFILL="P";e.exports=a},31563:(e,t,n)=>{"use strict";var r=n(36955),o=n(39297),i=n(64117),a=n(78227),s=n(26269),u=a("iterator"),l=Object;e.exports=function(e){if(i(e))return!1;var t=l(e);return void 0!==t[u]||"@@iterator"in t||o(s,r(t))}},64117:e=>{"use strict";e.exports=function(e){return null===e||void 0===e}},20034:(e,t,n)=>{"use strict";var r=n(94901);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},13925:(e,t,n)=>{"use strict";var r=n(20034);e.exports=function(e){return r(e)||null===e}},96395:e=>{"use strict";e.exports=!1},10757:(e,t,n)=>{"use strict";var r=n(97751),o=n(94901),i=n(1625),a=n(7040),s=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return o(t)&&i(t.prototype,s(e))}},40507:(e,t,n)=>{"use strict";var r=n(69565);e.exports=function(e,t,n){for(var o,i,a=n?e:e.iterator,s=e.next;!(o=r(s,a)).done;)if(void 0!==(i=t(o.value)))return i}},72652:(e,t,n)=>{"use strict";var r=n(76080),o=n(69565),i=n(28551),a=n(16823),s=n(44209),u=n(26198),l=n(1625),c=n(70081),f=n(50851),d=n(9539),h=TypeError,p=function(e,t){this.stopped=e,this.result=t},g=p.prototype;e.exports=function(e,t,n){var v,y,m,b,_,w,x,S=n&&n.that,A=!(!n||!n.AS_ENTRIES),E=!(!n||!n.IS_RECORD),C=!(!n||!n.IS_ITERATOR),R=!(!n||!n.INTERRUPTED),O=r(t,S),T=function(e){return v&&d(v,"normal",e),new p(!0,e)},k=function(e){return A?(i(e),R?O(e[0],e[1],T):O(e[0],e[1])):R?O(e,T):O(e)};if(E)v=e.iterator;else if(C)v=e;else{if(!(y=f(e)))throw new h(a(e)+" is not iterable");if(s(y)){for(m=0,b=u(e);b>m;m++)if((_=k(e[m]))&&l(g,_))return _;return new p(!1)}v=c(e,y)}for(w=E?e.next:v.next;!(x=o(w,v)).done;){try{_=k(x.value)}catch(M){d(v,"throw",M)}if("object"==typeof _&&_&&l(g,_))return _}return new p(!1)}},9539:(e,t,n)=>{"use strict";var r=n(69565),o=n(28551),i=n(55966);e.exports=function(e,t,n){var a,s;o(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(u){s=!0,a=u}if("throw"===t)throw n;if(s)throw a;return o(a),n}},33994:(e,t,n)=>{"use strict";var r=n(57657).IteratorPrototype,o=n(2360),i=n(6980),a=n(10687),s=n(26269),u=function(){return this};e.exports=function(e,t,n,l){var c=t+" Iterator";return e.prototype=o(r,{next:i(+!l,n)}),a(e,c,!1,!0),s[c]=u,e}},19462:(e,t,n)=>{"use strict";var r=n(69565),o=n(2360),i=n(66699),a=n(56279),s=n(78227),u=n(91181),l=n(55966),c=n(57657).IteratorPrototype,f=n(62529),d=n(9539),h=s("toStringTag"),p="IteratorHelper",g="WrapForValidIterator",v=u.set,y=function(e){var t=u.getterFor(e?g:p);return a(o(c),{next:function(){var n=t(this);if(e)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return f(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=t(this),o=n.iterator;if(n.done=!0,e){var i=l(o,"return");return i?r(i,o):f(void 0,!0)}if(n.inner)try{d(n.inner.iterator,"normal")}catch(a){return d(o,"throw",a)}return d(o,"normal"),f(void 0,!0)}})},m=y(!0),b=y(!1);i(b,h,"Iterator Helper"),e.exports=function(e,t){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=t?g:p,r.nextHandler=e,r.counter=0,r.done=!1,v(this,r)};return n.prototype=t?m:b,n}},51088:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(96395),a=n(10350),s=n(94901),u=n(33994),l=n(42787),c=n(52967),f=n(10687),d=n(66699),h=n(36840),p=n(78227),g=n(26269),v=n(57657),y=a.PROPER,m=a.CONFIGURABLE,b=v.IteratorPrototype,_=v.BUGGY_SAFARI_ITERATORS,w=p("iterator"),x="keys",S="values",A="entries",E=function(){return this};e.exports=function(e,t,n,a,p,v,C){u(n,t,a);var R,O,T,k=function(e){if(e===p&&L)return L;if(!_&&e&&e in N)return N[e];switch(e){case x:case S:case A:return function(){return new n(this,e)}}return function(){return new n(this)}},M=t+" Iterator",P=!1,N=e.prototype,I=N[w]||N["@@iterator"]||p&&N[p],L=!_&&I||k(p),D="Array"===t&&N.entries||I;if(D&&(R=l(D.call(new e)))!==Object.prototype&&R.next&&(i||l(R)===b||(c?c(R,b):s(R[w])||h(R,w,E)),f(R,M,!0,!0),i&&(g[M]=E)),y&&p===S&&I&&I.name!==S&&(!i&&m?d(N,"name",S):(P=!0,L=function(){return o(I,this)})),p)if(O={values:k(S),keys:v?L:k(x),entries:k(A)},C)for(T in O)(_||P||!(T in N))&&h(N,T,O[T]);else r({target:t,proto:!0,forced:_||P},O);return i&&!C||N[w]===L||h(N,w,L,{name:p}),g[t]=L,O}},20713:(e,t,n)=>{"use strict";var r=n(69565),o=n(79306),i=n(28551),a=n(1767),s=n(19462),u=n(96319),l=s((function(){var e=this.iterator,t=i(r(this.next,e));if(!(this.done=!!t.done))return u(e,this.mapper,[t.value,this.counter++],!0)}));e.exports=function(e){return i(this),o(e),new l(a(this),{mapper:e})}},57657:(e,t,n)=>{"use strict";var r,o,i,a=n(79039),s=n(94901),u=n(20034),l=n(2360),c=n(42787),f=n(36840),d=n(78227),h=n(96395),p=d("iterator"),g=!1;[].keys&&("next"in(i=[].keys())?(o=c(c(i)))!==Object.prototype&&(r=o):g=!0),!u(r)||a((function(){var e={};return r[p].call(e)!==e}))?r={}:h&&(r=l(r)),s(r[p])||f(r,p,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:g}},26269:e=>{"use strict";e.exports={}},26198:(e,t,n)=>{"use strict";var r=n(18014);e.exports=function(e){return r(e.length)}},50283:(e,t,n)=>{"use strict";var r=n(79504),o=n(79039),i=n(94901),a=n(39297),s=n(43724),u=n(10350).CONFIGURABLE,l=n(33706),c=n(91181),f=c.enforce,d=c.get,h=String,p=Object.defineProperty,g=r("".slice),v=r("".replace),y=r([].join),m=s&&!o((function(){return 8!==p((function(){}),"length",{value:8}).length})),b=String(String).split("String"),_=e.exports=function(e,t,n){"Symbol("===g(h(t),0,7)&&(t="["+v(h(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||u&&e.name!==t)&&(s?p(e,"name",{value:t,configurable:!0}):e.name=t),m&&n&&a(n,"arity")&&e.length!==n.arity&&p(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(o){}var r=f(e);return a(r,"source")||(r.source=y(b,"string"==typeof t?t:"")),e};Function.prototype.toString=_((function(){return i(this)&&d(this).source||l(this)}),"toString")},72248:(e,t,n)=>{"use strict";var r=n(79504),o=Map.prototype;e.exports={Map:Map,set:r(o.set),get:r(o.get),has:r(o.has),remove:r(o.delete),proto:o}},26223:(e,t,n)=>{"use strict";var r=n(79504),o=n(40507),i=n(72248),a=i.Map,s=i.proto,u=r(s.forEach),l=r(s.entries),c=l(new a).next;e.exports=function(e,t,n){return n?o({iterator:l(e),next:c},(function(e){return t(e[1],e[0])})):u(e,t)}},80741:e=>{"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},36043:(e,t,n)=>{"use strict";var r=n(79306),o=TypeError,i=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw new o("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new i(e)}},2360:(e,t,n)=>{"use strict";var r,o=n(28551),i=n(96801),a=n(88727),s=n(30421),u=n(20397),l=n(4055),c=n(66119),f="prototype",d="script",h=c("IE_PROTO"),p=function(){},g=function(e){return"<"+d+">"+e+"</"+d+">"},v=function(e){e.write(g("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}y="undefined"!=typeof document?document.domain&&r?v(r):function(){var e,t=l("iframe"),n="java"+d+":";return t.style.display="none",u.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F}():v(r);for(var e=a.length;e--;)delete y[f][a[e]];return y()};s[h]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(p[f]=o(e),n=new p,p[f]=null,n[h]=e):n=y(),void 0===t?n:i.f(n,t)}},96801:(e,t,n)=>{"use strict";var r=n(43724),o=n(48686),i=n(24913),a=n(28551),s=n(25397),u=n(71072);t.f=r&&!o?Object.defineProperties:function(e,t){a(e);for(var n,r=s(t),o=u(t),l=o.length,c=0;l>c;)i.f(e,n=o[c++],r[n]);return e}},24913:(e,t,n)=>{"use strict";var r=n(43724),o=n(35917),i=n(48686),a=n(28551),s=n(56969),u=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,f="enumerable",d="configurable",h="writable";t.f=r?i?function(e,t,n){if(a(e),t=s(t),a(n),"function"===typeof e&&"prototype"===t&&"value"in n&&h in n&&!n[h]){var r=c(e,t);r&&r[h]&&(e[t]=n.value,n={configurable:d in n?n[d]:r[d],enumerable:f in n?n[f]:r[f],writable:!1})}return l(e,t,n)}:l:function(e,t,n){if(a(e),t=s(t),a(n),o)try{return l(e,t,n)}catch(r){}if("get"in n||"set"in n)throw new u("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},77347:(e,t,n)=>{"use strict";var r=n(43724),o=n(69565),i=n(48773),a=n(6980),s=n(25397),u=n(56969),l=n(39297),c=n(35917),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=s(e),t=u(t),c)try{return f(e,t)}catch(n){}if(l(e,t))return a(!o(i.f,e,t),e[t])}},38480:(e,t,n)=>{"use strict";var r=n(61828),o=n(88727).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},33717:(e,t)=>{"use strict";t.f=Object.getOwnPropertySymbols},42787:(e,t,n)=>{"use strict";var r=n(39297),o=n(94901),i=n(48981),a=n(66119),s=n(12211),u=a("IE_PROTO"),l=Object,c=l.prototype;e.exports=s?l.getPrototypeOf:function(e){var t=i(e);if(r(t,u))return t[u];var n=t.constructor;return o(n)&&t instanceof n?n.prototype:t instanceof l?c:null}},1625:(e,t,n)=>{"use strict";var r=n(79504);e.exports=r({}.isPrototypeOf)},61828:(e,t,n)=>{"use strict";var r=n(79504),o=n(39297),i=n(25397),a=n(19617).indexOf,s=n(30421),u=r([].push);e.exports=function(e,t){var n,r=i(e),l=0,c=[];for(n in r)!o(s,n)&&o(r,n)&&u(c,n);for(;t.length>l;)o(r,n=t[l++])&&(~a(c,n)||u(c,n));return c}},71072:(e,t,n)=>{"use strict";var r=n(61828),o=n(88727);e.exports=Object.keys||function(e){return r(e,o)}},48773:(e,t)=>{"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},52967:(e,t,n)=>{"use strict";var r=n(46706),o=n(28551),i=n(73506);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=r(Object.prototype,"__proto__","set"))(n,[]),t=n instanceof Array}catch(a){}return function(n,r){return o(n),i(r),t?e(n,r):n.__proto__=r,n}}():void 0)},84270:(e,t,n)=>{"use strict";var r=n(69565),o=n(94901),i=n(20034),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&o(n=e.toString)&&!i(s=r(n,e)))return s;if(o(n=e.valueOf)&&!i(s=r(n,e)))return s;if("string"!==t&&o(n=e.toString)&&!i(s=r(n,e)))return s;throw new a("Can't convert object to primitive value")}},35031:(e,t,n)=>{"use strict";var r=n(97751),o=n(79504),i=n(38480),a=n(33717),s=n(28551),u=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(s(e)),n=a.f;return n?u(t,n(e)):t}},1103:e=>{"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},80550:(e,t,n)=>{"use strict";var r=n(24475);e.exports=r.Promise},93438:(e,t,n)=>{"use strict";var r=n(28551),o=n(20034),i=n(36043);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},56682:(e,t,n)=>{"use strict";var r=n(69565),o=n(28551),i=n(94901),a=n(44576),s=n(57323),u=TypeError;e.exports=function(e,t){var n=e.exec;if(i(n)){var l=r(n,e,t);return null!==l&&o(l),l}if("RegExp"===a(e))return r(s,e,t);throw new u("RegExp#exec called on incompatible receiver")}},57323:(e,t,n)=>{"use strict";var r=n(69565),o=n(79504),i=n(655),a=n(67979),s=n(58429),u=n(25745),l=n(2360),c=n(91181).get,f=n(83635),d=n(18814),h=u("native-string-replace",String.prototype.replace),p=RegExp.prototype.exec,g=p,v=o("".charAt),y=o("".indexOf),m=o("".replace),b=o("".slice),_=function(){var e=/a/,t=/b*/g;return r(p,e,"a"),r(p,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),w=s.BROKEN_CARET,x=void 0!==/()??/.exec("")[1];(_||x||w||f||d)&&(g=function(e){var t,n,o,s,u,f,d,S=this,A=c(S),E=i(e),C=A.raw;if(C)return C.lastIndex=S.lastIndex,t=r(g,C,E),S.lastIndex=C.lastIndex,t;var R=A.groups,O=w&&S.sticky,T=r(a,S),k=S.source,M=0,P=E;if(O&&(T=m(T,"y",""),-1===y(T,"g")&&(T+="g"),P=b(E,S.lastIndex),S.lastIndex>0&&(!S.multiline||S.multiline&&"\n"!==v(E,S.lastIndex-1))&&(k="(?: "+k+")",P=" "+P,M++),n=new RegExp("^(?:"+k+")",T)),x&&(n=new RegExp("^"+k+"$(?!\\s)",T)),_&&(o=S.lastIndex),s=r(p,O?n:S,P),O?s?(s.input=b(s.input,M),s[0]=b(s[0],M),s.index=S.lastIndex,S.lastIndex+=s[0].length):S.lastIndex=0:_&&s&&(S.lastIndex=S.global?s.index+s[0].length:o),x&&s&&s.length>1&&r(h,s[0],n,(function(){for(u=1;u<arguments.length-2;u++)void 0===arguments[u]&&(s[u]=void 0)})),s&&R)for(s.groups=f=l(null),u=0;u<R.length;u++)f[(d=R[u])[0]]=s[d[1]];return s}),e.exports=g},67979:(e,t,n)=>{"use strict";var r=n(28551);e.exports=function(){var e=r(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}},58429:(e,t,n)=>{"use strict";var r=n(79039),o=n(24475).RegExp,i=r((function(){var e=o("a","y");return e.lastIndex=2,null!==e.exec("abcd")})),a=i||r((function(){return!o("a","y").sticky})),s=i||r((function(){var e=o("^r","gy");return e.lastIndex=2,null!==e.exec("str")}));e.exports={BROKEN_CARET:s,MISSED_STICKY:a,UNSUPPORTED_Y:i}},83635:(e,t,n)=>{"use strict";var r=n(79039),o=n(24475).RegExp;e.exports=r((function(){var e=o(".","s");return!(e.dotAll&&e.test("\n")&&"s"===e.flags)}))},18814:(e,t,n)=>{"use strict";var r=n(79039),o=n(24475).RegExp;e.exports=r((function(){var e=o("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")}))},67750:(e,t,n)=>{"use strict";var r=n(64117),o=TypeError;e.exports=function(e){if(r(e))throw new o("Can't call method on "+e);return e}},93389:(e,t,n)=>{"use strict";var r=n(24475),o=n(43724),i=Object.getOwnPropertyDescriptor;e.exports=function(e){if(!o)return r[e];var t=i(r,e);return t&&t.value}},33317:e=>{"use strict";e.exports=function(e,t){return e===t||e!==e&&t!==t}},89286:(e,t,n)=>{"use strict";var r=n(94402),o=n(38469),i=r.Set,a=r.add;e.exports=function(e){var t=new i;return o(e,(function(e){a(t,e)})),t}},83440:(e,t,n)=>{"use strict";var r=n(97080),o=n(94402),i=n(89286),a=n(25170),s=n(83789),u=n(38469),l=n(40507),c=o.has,f=o.remove;e.exports=function(e){var t=r(this),n=s(e),o=i(t);return a(t)<=n.size?u(t,(function(e){n.includes(e)&&f(o,e)})):l(n.getIterator(),(function(e){c(t,e)&&f(o,e)})),o}},94402:(e,t,n)=>{"use strict";var r=n(79504),o=Set.prototype;e.exports={Set:Set,add:r(o.add),has:r(o.has),remove:r(o.delete),proto:o}},68750:(e,t,n)=>{"use strict";var r=n(97080),o=n(94402),i=n(25170),a=n(83789),s=n(38469),u=n(40507),l=o.Set,c=o.add,f=o.has;e.exports=function(e){var t=r(this),n=a(e),o=new l;return i(t)>n.size?u(n.getIterator(),(function(e){f(t,e)&&c(o,e)})):s(t,(function(e){n.includes(e)&&c(o,e)})),o}},64449:(e,t,n)=>{"use strict";var r=n(97080),o=n(94402).has,i=n(25170),a=n(83789),s=n(38469),u=n(40507),l=n(9539);e.exports=function(e){var t=r(this),n=a(e);if(i(t)<=n.size)return!1!==s(t,(function(e){if(n.includes(e))return!1}),!0);var c=n.getIterator();return!1!==u(c,(function(e){if(o(t,e))return l(c,"normal",!1)}))}},53838:(e,t,n)=>{"use strict";var r=n(97080),o=n(25170),i=n(38469),a=n(83789);e.exports=function(e){var t=r(this),n=a(e);return!(o(t)>n.size)&&!1!==i(t,(function(e){if(!n.includes(e))return!1}),!0)}},28527:(e,t,n)=>{"use strict";var r=n(97080),o=n(94402).has,i=n(25170),a=n(83789),s=n(40507),u=n(9539);e.exports=function(e){var t=r(this),n=a(e);if(i(t)<n.size)return!1;var l=n.getIterator();return!1!==s(l,(function(e){if(!o(t,e))return u(l,"normal",!1)}))}},38469:(e,t,n)=>{"use strict";var r=n(79504),o=n(40507),i=n(94402),a=i.Set,s=i.proto,u=r(s.forEach),l=r(s.keys),c=l(new a).next;e.exports=function(e,t,n){return n?o({iterator:l(e),next:c},t):u(e,t)}},25170:(e,t,n)=>{"use strict";var r=n(46706),o=n(94402);e.exports=r(o.proto,"size","get")||function(e){return e.size}},83650:(e,t,n)=>{"use strict";var r=n(97080),o=n(94402),i=n(89286),a=n(83789),s=n(40507),u=o.add,l=o.has,c=o.remove;e.exports=function(e){var t=r(this),n=a(e).getIterator(),o=i(t);return s(n,(function(e){l(t,e)?c(o,e):u(o,e)})),o}},10687:(e,t,n)=>{"use strict";var r=n(24913).f,o=n(39297),i=n(78227)("toStringTag");e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!o(e,i)&&r(e,i,{configurable:!0,value:t})}},44204:(e,t,n)=>{"use strict";var r=n(97080),o=n(94402).add,i=n(89286),a=n(83789),s=n(40507);e.exports=function(e){var t=r(this),n=a(e).getIterator(),u=i(t);return s(n,(function(e){o(u,e)})),u}},66119:(e,t,n)=>{"use strict";var r=n(25745),o=n(33392),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},77629:(e,t,n)=>{"use strict";var r=n(96395),o=n(24475),i=n(39433),a="__core-js_shared__",s=e.exports=o[a]||i(a,{});(s.versions||(s.versions=[])).push({version:"3.36.0",mode:r?"pure":"global",copyright:"\xa9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE",source:"https://github.com/zloirock/core-js"})},25745:(e,t,n)=>{"use strict";var r=n(77629);e.exports=function(e,t){return r[e]||(r[e]=t||{})}},2293:(e,t,n)=>{"use strict";var r=n(28551),o=n(35548),i=n(64117),a=n(78227)("species");e.exports=function(e,t){var n,s=r(e).constructor;return void 0===s||i(n=r(s)[a])?t:o(n)}},68183:(e,t,n)=>{"use strict";var r=n(79504),o=n(91291),i=n(655),a=n(67750),s=r("".charAt),u=r("".charCodeAt),l=r("".slice),c=function(e){return function(t,n){var r,c,f=i(a(t)),d=o(n),h=f.length;return d<0||d>=h?e?"":void 0:(r=u(f,d))<55296||r>56319||d+1===h||(c=u(f,d+1))<56320||c>57343?e?s(f,d):r:e?l(f,d,d+2):c-56320+(r-55296<<10)+65536}};e.exports={codeAt:c(!1),charAt:c(!0)}},4495:(e,t,n)=>{"use strict";var r=n(77388),o=n(79039),i=n(24475).String;e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},35610:(e,t,n)=>{"use strict";var r=n(91291),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},25397:(e,t,n)=>{"use strict";var r=n(47055),o=n(67750);e.exports=function(e){return r(o(e))}},91291:(e,t,n)=>{"use strict";var r=n(80741);e.exports=function(e){var t=+e;return t!==t||0===t?0:r(t)}},18014:(e,t,n)=>{"use strict";var r=n(91291),o=Math.min;e.exports=function(e){var t=r(e);return t>0?o(t,9007199254740991):0}},48981:(e,t,n)=>{"use strict";var r=n(67750),o=Object;e.exports=function(e){return o(r(e))}},72777:(e,t,n)=>{"use strict";var r=n(69565),o=n(20034),i=n(10757),a=n(55966),s=n(84270),u=n(78227),l=TypeError,c=u("toPrimitive");e.exports=function(e,t){if(!o(e)||i(e))return e;var n,u=a(e,c);if(u){if(void 0===t&&(t="default"),n=r(u,e,t),!o(n)||i(n))return n;throw new l("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},56969:(e,t,n)=>{"use strict";var r=n(72777),o=n(10757);e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},47650:(e,t,n)=>{"use strict";var r=n(97751),o=n(94901),i=n(31563),a=n(20034),s=r("Set");e.exports=function(e){return function(e){return a(e)&&"number"==typeof e.size&&o(e.has)&&o(e.keys)}(e)?e:i(e)?new s(e):e}},92140:(e,t,n)=>{"use strict";var r={};r[n(78227)("toStringTag")]="z",e.exports="[object z]"===String(r)},655:(e,t,n)=>{"use strict";var r=n(36955),o=String;e.exports=function(e){if("Symbol"===r(e))throw new TypeError("Cannot convert a Symbol value to a string");return o(e)}},16823:e=>{"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(n){return"Object"}}},33392:(e,t,n)=>{"use strict";var r=n(79504),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},67416:(e,t,n)=>{"use strict";var r=n(79039),o=n(78227),i=n(43724),a=n(96395),s=o("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n=new URLSearchParams("a=1&a=2&b=3"),r="";return e.pathname="c%20d",t.forEach((function(e,n){t.delete("b"),r+=n+e})),n.delete("a",2),n.delete("b",void 0),a&&(!e.toJSON||!n.has("a",1)||n.has("a",2)||!n.has("a",void 0)||n.has("b"))||!t.size&&(a||!i)||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://\u0442\u0435\u0441\u0442").host||"#%D0%B1"!==new URL("http://a#\u0431").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host}))},7040:(e,t,n)=>{"use strict";var r=n(4495);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},48686:(e,t,n)=>{"use strict";var r=n(43724),o=n(79039);e.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},22812:e=>{"use strict";var t=TypeError;e.exports=function(e,n){if(e<n)throw new t("Not enough arguments");return e}},58622:(e,t,n)=>{"use strict";var r=n(24475),o=n(94901),i=r.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},78227:(e,t,n)=>{"use strict";var r=n(24475),o=n(25745),i=n(39297),a=n(33392),s=n(4495),u=n(7040),l=r.Symbol,c=o("wks"),f=u?l.for||l:l&&l.withoutSetter||a;e.exports=function(e){return i(c,e)||(c[e]=s&&i(l,e)?l[e]:f("Symbol."+e)),c[e]}},23792:(e,t,n)=>{"use strict";var r=n(25397),o=n(6469),i=n(26269),a=n(91181),s=n(24913).f,u=n(51088),l=n(62529),c=n(96395),f=n(43724),d="Array Iterator",h=a.set,p=a.getterFor(d);e.exports=u(Array,"Array",(function(e,t){h(this,{type:d,target:r(e),index:0,kind:t})}),(function(){var e=p(this),t=e.target,n=e.index++;if(!t||n>=t.length)return e.target=void 0,l(void 0,!0);switch(e.kind){case"keys":return l(n,!1);case"values":return l(t[n],!1)}return l([n,t[n]],!1)}),"values");var g=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!c&&f&&"values"!==g.name)try{s(g,"name",{value:"values"})}catch(v){}},9391:(e,t,n)=>{"use strict";var r=n(46518),o=n(96395),i=n(80550),a=n(79039),s=n(97751),u=n(94901),l=n(2293),c=n(93438),f=n(36840),d=i&&i.prototype;if(r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){d.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=l(this,s("Promise")),n=u(e);return this.then(n?function(n){return c(t,e()).then((function(){return n}))}:e,n?function(n){return c(t,e()).then((function(){throw n}))}:e)}}),!o&&u(i)){var h=s("Promise").prototype.finally;d.finally!==h&&f(d,"finally",h,{unsafe:!0})}},27495:(e,t,n)=>{"use strict";var r=n(46518),o=n(57323);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},69479:(e,t,n)=>{"use strict";var r=n(24475),o=n(43724),i=n(62106),a=n(67979),s=n(79039),u=r.RegExp,l=u.prototype;o&&s((function(){var e=!0;try{u(".","d")}catch(s){e=!1}var t={},n="",r=e?"dgimsy":"gimsy",o=function(e,r){Object.defineProperty(t,e,{get:function(){return n+=r,!0}})},i={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var a in e&&(i.hasIndices="d"),i)o(a,i[a]);return Object.getOwnPropertyDescriptor(l,"flags").get.call(t)!==r||n!==r}))&&i(l,"flags",{configurable:!0,get:a})},25440:(e,t,n)=>{"use strict";var r=n(18745),o=n(69565),i=n(79504),a=n(89228),s=n(79039),u=n(28551),l=n(94901),c=n(64117),f=n(91291),d=n(18014),h=n(655),p=n(67750),g=n(57829),v=n(55966),y=n(2478),m=n(56682),b=n(78227)("replace"),_=Math.max,w=Math.min,x=i([].concat),S=i([].push),A=i("".indexOf),E=i("".slice),C="$0"==="a".replace(/./,"$0"),R=!!/./[b]&&""===/./[b]("a","$0");a("replace",(function(e,t,n){var i=R?"$":"$0";return[function(e,n){var r=p(this),i=c(e)?void 0:v(e,b);return i?o(i,e,r,n):o(t,h(r),e,n)},function(e,o){var a=u(this),s=h(e);if("string"==typeof o&&-1===A(o,i)&&-1===A(o,"$<")){var c=n(t,a,s,o);if(c.done)return c.value}var p=l(o);p||(o=h(o));var v,b=a.global;b&&(v=a.unicode,a.lastIndex=0);for(var C,R=[];null!==(C=m(a,s))&&(S(R,C),b);){""===h(C[0])&&(a.lastIndex=g(s,d(a.lastIndex),v))}for(var O,T="",k=0,M=0;M<R.length;M++){for(var P,N=h((C=R[M])[0]),I=_(w(f(C.index),s.length),0),L=[],D=1;D<C.length;D++)S(L,void 0===(O=C[D])?O:String(O));var F=C.groups;if(p){var j=x([N],L,I,s);void 0!==F&&S(j,F),P=h(r(o,void 0,j))}else P=y(N,s,I,L,F,o);I>=k&&(T+=E(s,k,I)+P,k=I+N.length)}return T+E(s,k)}]}),!!s((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}))||!C||R)},74648:(e,t,n)=>{"use strict";var r=n(46518),o=n(36639).every;r({target:"AsyncIterator",proto:!0,real:!0},{every:function(e){return o(this,e)}})},17333:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(79306),a=n(28551),s=n(20034),u=n(1767),l=n(92059),c=n(62529),f=n(20772),d=n(96395),h=l((function(e){var t=this,n=t.iterator,r=t.predicate;return new e((function(i,u){var l=function(e){t.done=!0,u(e)},d=function(e){f(n,l,e,l)},h=function(){try{e.resolve(a(o(t.next,n))).then((function(n){try{if(a(n).done)t.done=!0,i(c(void 0,!0));else{var o=n.value;try{var u=r(o,t.counter++),f=function(e){e?i(c(o,!1)):h()};s(u)?e.resolve(u).then(f,d):f(u)}catch(p){d(p)}}}catch(g){l(g)}}),l)}catch(u){l(u)}};h()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:d},{filter:function(e){return a(this),i(e),new h(u(this),{predicate:e})}})},3064:(e,t,n)=>{"use strict";var r=n(46518),o=n(36639).find;r({target:"AsyncIterator",proto:!0,real:!0},{find:function(e){return o(this,e)}})},9920:(e,t,n)=>{"use strict";var r=n(46518),o=n(36639).forEach;r({target:"AsyncIterator",proto:!0,real:!0},{forEach:function(e){return o(this,e)}})},41393:(e,t,n)=>{"use strict";var r=n(46518),o=n(41750);r({target:"AsyncIterator",proto:!0,real:!0,forced:n(96395)},{map:o})},14905:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(79306),a=n(28551),s=n(20034),u=n(97751),l=n(1767),c=n(20772),f=u("Promise"),d=TypeError;r({target:"AsyncIterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var t=l(this),n=t.iterator,r=t.next,u=arguments.length<2,h=u?void 0:arguments[1],p=0;return new f((function(t,i){var l=function(e){c(n,i,e,i)},g=function(){try{f.resolve(a(o(r,n))).then((function(n){try{if(a(n).done)u?i(new d("Reduce of empty iterator with no initial value")):t(h);else{var r=n.value;if(u)u=!1,h=r,g();else try{var o=e(h,r,p),c=function(e){h=e,g()};s(o)?f.resolve(o).then(c,l):c(o)}catch(v){l(v)}}p++}catch(y){i(y)}}),i)}catch(c){i(c)}};g()}))}})},8159:(e,t,n)=>{"use strict";var r=n(46518),o=n(36639).some;r({target:"AsyncIterator",proto:!0,real:!0},{some:function(e){return o(this,e)}})},98992:(e,t,n)=>{"use strict";var r=n(46518),o=n(24475),i=n(90679),a=n(28551),s=n(94901),u=n(42787),l=n(62106),c=n(97040),f=n(79039),d=n(39297),h=n(78227),p=n(57657).IteratorPrototype,g=n(43724),v=n(96395),y="constructor",m="Iterator",b=h("toStringTag"),_=TypeError,w=o[m],x=v||!s(w)||w.prototype!==p||!f((function(){w({})})),S=function(){if(i(this,p),u(this)===p)throw new _("Abstract class Iterator not directly constructable")},A=function(e,t){g?l(p,e,{configurable:!0,get:function(){return t},set:function(t){if(a(this),this===p)throw new _("You can't redefine this property");d(this,e)?this[e]=t:c(this,e,t)}}):p[e]=t};d(p,b)||A(b,m),!x&&d(p,y)&&p[y]!==Object||A(y,S),S.prototype=p,r({global:!0,constructor:!0,forced:x},{Iterator:S})},23215:(e,t,n)=>{"use strict";var r=n(46518),o=n(72652),i=n(79306),a=n(28551),s=n(1767);r({target:"Iterator",proto:!0,real:!0},{every:function(e){a(this),i(e);var t=s(this),n=0;return!o(t,(function(t,r){if(!e(t,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},54520:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(79306),a=n(28551),s=n(1767),u=n(19462),l=n(96319),c=n(96395),f=u((function(){for(var e,t,n=this.iterator,r=this.predicate,i=this.next;;){if(e=a(o(i,n)),this.done=!!e.done)return;if(t=e.value,l(n,r,[t,this.counter++],!0))return t}}));r({target:"Iterator",proto:!0,real:!0,forced:c},{filter:function(e){return a(this),i(e),new f(s(this),{predicate:e})}})},72577:(e,t,n)=>{"use strict";var r=n(46518),o=n(72652),i=n(79306),a=n(28551),s=n(1767);r({target:"Iterator",proto:!0,real:!0},{find:function(e){a(this),i(e);var t=s(this),n=0;return o(t,(function(t,r){if(e(t,n++))return r(t)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},3949:(e,t,n)=>{"use strict";var r=n(46518),o=n(72652),i=n(79306),a=n(28551),s=n(1767);r({target:"Iterator",proto:!0,real:!0},{forEach:function(e){a(this),i(e);var t=s(this),n=0;o(t,(function(t){e(t,n++)}),{IS_RECORD:!0})}})},81454:(e,t,n)=>{"use strict";var r=n(46518),o=n(20713);r({target:"Iterator",proto:!0,real:!0,forced:n(96395)},{map:o})},8872:(e,t,n)=>{"use strict";var r=n(46518),o=n(72652),i=n(79306),a=n(28551),s=n(1767),u=TypeError;r({target:"Iterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var t=s(this),n=arguments.length<2,r=n?void 0:arguments[1],l=0;if(o(t,(function(t){n?(n=!1,r=t):r=e(r,t,l),l++}),{IS_RECORD:!0}),n)throw new u("Reduce of empty iterator with no initial value");return r}})},37550:(e,t,n)=>{"use strict";var r=n(46518),o=n(72652),i=n(79306),a=n(28551),s=n(1767);r({target:"Iterator",proto:!0,real:!0},{some:function(e){a(this),i(e);var t=s(this),n=0;return o(t,(function(t,r){if(e(t,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},71517:(e,t,n)=>{"use strict";var r=n(46518),o=n(13813),i=n(72248).remove;r({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,t=o(this),n=!0,r=0,a=arguments.length;r<a;r++)e=i(t,arguments[r]),n=n&&e;return!!n}})},11379:(e,t,n)=>{"use strict";var r=n(46518),o=n(13813),i=n(72248),a=i.get,s=i.has,u=i.set;r({target:"Map",proto:!0,real:!0,forced:!0},{emplace:function(e,t){var n,r,i=o(this);return s(i,e)?(n=a(i,e),"update"in t&&(n=t.update(n,e,i),u(i,e,n)),n):(r=t.insert(e,i),u(i,e,r),r)}})},93777:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(13813),a=n(26223);r({target:"Map",proto:!0,real:!0,forced:!0},{every:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!1!==a(t,(function(e,r){if(!n(e,r,t))return!1}),!0)}})},14190:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(13813),a=n(72248),s=n(26223),u=a.Map,l=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e,o){n(e,o,t)&&l(r,o,e)})),r}})},86097:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(13813),a=n(26223);r({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e,r){if(n(e,r,t))return{key:r}}),!0);return r&&r.key}})},12359:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(13813),a=n(26223);r({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e,r){if(n(e,r,t))return{value:e}}),!0);return r&&r.value}})},17273:(e,t,n)=>{"use strict";var r=n(46518),o=n(33317),i=n(13813),a=n(26223);r({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===a(i(this),(function(t){if(o(t,e))return!0}),!0)}})},27415:(e,t,n)=>{"use strict";var r=n(46518),o=n(13813),i=n(26223);r({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var t=i(o(this),(function(t,n){if(t===e)return{key:n}}),!0);return t&&t.key}})},19929:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(13813),a=n(72248),s=n(26223),u=a.Map,l=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e,o){l(r,n(e,o,t),e)})),r}})},37583:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(13813),a=n(72248),s=n(26223),u=a.Map,l=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e,o){l(r,o,n(e,o,t))})),r}})},55122:(e,t,n)=>{"use strict";var r=n(46518),o=n(13813),i=n(72652),a=n(72248).set;r({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var t=o(this),n=arguments.length,r=0;r<n;)i(arguments[r++],(function(e,n){a(t,e,n)}),{AS_ENTRIES:!0});return t}})},20230:(e,t,n)=>{"use strict";var r=n(46518),o=n(79306),i=n(13813),a=n(26223),s=TypeError;r({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=i(this),n=arguments.length<2,r=n?void 0:arguments[1];if(o(e),a(t,(function(o,i){n?(n=!1,r=o):r=e(r,o,i,t)})),n)throw new s("Reduce of empty map with no initial value");return r}})},57268:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(13813),a=n(26223);r({target:"Map",proto:!0,real:!0,forced:!0},{some:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!0===a(t,(function(e,r){if(n(e,r,t))return!0}),!0)}})},79733:(e,t,n)=>{"use strict";var r=n(46518),o=n(79306),i=n(13813),a=n(72248),s=TypeError,u=a.get,l=a.has,c=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,t){var n=i(this),r=arguments.length;o(t);var a=l(n,e);if(!a&&r<3)throw new s("Updating absent value");var f=a?u(n,e):o(r>2?arguments[2]:void 0)(e,n);return c(n,e,t(f,e,n)),n}})},25509:(e,t,n)=>{"use strict";var r=n(46518),o=n(97080),i=n(94402).add;r({target:"Set",proto:!0,real:!0,forced:!0},{addAll:function(){for(var e=o(this),t=0,n=arguments.length;t<n;t++)i(e,arguments[t]);return e}})},65223:(e,t,n)=>{"use strict";var r=n(46518),o=n(97080),i=n(94402).remove;r({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,t=o(this),n=!0,r=0,a=arguments.length;r<a;r++)e=i(t,arguments[r]),n=n&&e;return!!n}})},60321:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(47650),a=n(83440);r({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(e){return o(a,this,i(e))}})},41927:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(97080),a=n(38469);r({target:"Set",proto:!0,real:!0,forced:!0},{every:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!1!==a(t,(function(e){if(!n(e,e,t))return!1}),!0)}})},11632:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(97080),a=n(94402),s=n(38469),u=a.Set,l=a.add;r({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e){n(e,e,t)&&l(r,e)})),r}})},64377:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(97080),a=n(38469);r({target:"Set",proto:!0,real:!0,forced:!0},{find:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e){if(n(e,e,t))return{value:e}}),!0);return r&&r.value}})},66771:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(47650),a=n(68750);r({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(e){return o(a,this,i(e))}})},12516:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(47650),a=n(64449);r({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(e){return o(a,this,i(e))}})},68931:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(47650),a=n(53838);r({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(e){return o(a,this,i(e))}})},52514:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(47650),a=n(28527);r({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(e){return o(a,this,i(e))}})},35694:(e,t,n)=>{"use strict";var r=n(46518),o=n(79504),i=n(97080),a=n(38469),s=n(655),u=o([].join),l=o([].push);r({target:"Set",proto:!0,real:!0,forced:!0},{join:function(e){var t=i(this),n=void 0===e?",":s(e),r=[];return a(t,(function(e){l(r,e)})),u(r,n)}})},52774:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(97080),a=n(94402),s=n(38469),u=a.Set,l=a.add;r({target:"Set",proto:!0,real:!0,forced:!0},{map:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e){l(r,n(e,e,t))})),r}})},49536:(e,t,n)=>{"use strict";var r=n(46518),o=n(79306),i=n(97080),a=n(38469),s=TypeError;r({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=i(this),n=arguments.length<2,r=n?void 0:arguments[1];if(o(e),a(t,(function(o){n?(n=!1,r=o):r=e(r,o,o,t)})),n)throw new s("Reduce of empty set with no initial value");return r}})},21926:(e,t,n)=>{"use strict";var r=n(46518),o=n(76080),i=n(97080),a=n(38469);r({target:"Set",proto:!0,real:!0,forced:!0},{some:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!0===a(t,(function(e){if(n(e,e,t))return!0}),!0)}})},94483:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(47650),a=n(83650);r({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(e){return o(a,this,i(e))}})},16215:(e,t,n)=>{"use strict";var r=n(46518),o=n(69565),i=n(47650),a=n(44204);r({target:"Set",proto:!0,real:!0,forced:!0},{union:function(e){return o(a,this,i(e))}})},62953:(e,t,n)=>{"use strict";var r=n(24475),o=n(67400),i=n(79296),a=n(23792),s=n(66699),u=n(10687),l=n(78227)("iterator"),c=a.values,f=function(e,t){if(e){if(e[l]!==c)try{s(e,l,c)}catch(r){e[l]=c}if(u(e,t,!0),o[t])for(var n in a)if(e[n]!==a[n])try{s(e,n,a[n])}catch(r){e[n]=a[n]}}};for(var d in o)f(r[d]&&r[d].prototype,d);f(i,"DOMTokenList")},98406:(e,t,n)=>{"use strict";n(23792);var r=n(46518),o=n(24475),i=n(93389),a=n(69565),s=n(79504),u=n(43724),l=n(67416),c=n(36840),f=n(62106),d=n(56279),h=n(10687),p=n(33994),g=n(91181),v=n(90679),y=n(94901),m=n(39297),b=n(76080),_=n(36955),w=n(28551),x=n(20034),S=n(655),A=n(2360),E=n(6980),C=n(70081),R=n(50851),O=n(62529),T=n(22812),k=n(78227),M=n(74488),P=k("iterator"),N="URLSearchParams",I=N+"Iterator",L=g.set,D=g.getterFor(N),F=g.getterFor(I),j=i("fetch"),U=i("Request"),z=i("Headers"),B=U&&U.prototype,V=z&&z.prototype,H=o.RegExp,$=o.TypeError,W=o.decodeURIComponent,G=o.encodeURIComponent,q=s("".charAt),Y=s([].join),X=s([].push),Z=s("".replace),K=s([].shift),Q=s([].splice),J=s("".split),ee=s("".slice),te=/\+/g,ne=Array(4),re=function(e){return ne[e-1]||(ne[e-1]=H("((?:%[\\da-f]{2}){"+e+"})","gi"))},oe=function(e){try{return W(e)}catch(t){return e}},ie=function(e){var t=Z(e,te," "),n=4;try{return W(t)}catch(r){for(;n;)t=Z(t,re(n--),oe);return t}},ae=/[!'()~]|%20/g,se={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ue=function(e){return se[e]},le=function(e){return Z(G(e),ae,ue)},ce=p((function(e,t){L(this,{type:I,target:D(e).entries,index:0,kind:t})}),N,(function(){var e=F(this),t=e.target,n=e.index++;if(!t||n>=t.length)return e.target=void 0,O(void 0,!0);var r=t[n];switch(e.kind){case"keys":return O(r.key,!1);case"values":return O(r.value,!1)}return O([r.key,r.value],!1)}),!0),fe=function(e){this.entries=[],this.url=null,void 0!==e&&(x(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===q(e,0)?ee(e,1):e:S(e)))};fe.prototype={type:N,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,o,i,s,u,l=this.entries,c=R(e);if(c)for(n=(t=C(e,c)).next;!(r=a(n,t)).done;){if(i=(o=C(w(r.value))).next,(s=a(i,o)).done||(u=a(i,o)).done||!a(i,o).done)throw new $("Expected sequence with length 2");X(l,{key:S(s.value),value:S(u.value)})}else for(var f in e)m(e,f)&&X(l,{key:f,value:S(e[f])})},parseQuery:function(e){if(e)for(var t,n,r=this.entries,o=J(e,"&"),i=0;i<o.length;)(t=o[i++]).length&&(n=J(t,"="),X(r,{key:ie(K(n)),value:ie(Y(n,"="))}))},serialize:function(){for(var e,t=this.entries,n=[],r=0;r<t.length;)e=t[r++],X(n,le(e.key)+"="+le(e.value));return Y(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var de=function(){v(this,he);var e=L(this,new fe(arguments.length>0?arguments[0]:void 0));u||(this.size=e.entries.length)},he=de.prototype;if(d(he,{append:function(e,t){var n=D(this);T(arguments.length,2),X(n.entries,{key:S(e),value:S(t)}),u||this.length++,n.updateURL()},delete:function(e){for(var t=D(this),n=T(arguments.length,1),r=t.entries,o=S(e),i=n<2?void 0:arguments[1],a=void 0===i?i:S(i),s=0;s<r.length;){var l=r[s];if(l.key!==o||void 0!==a&&l.value!==a)s++;else if(Q(r,s,1),void 0!==a)break}u||(this.size=r.length),t.updateURL()},get:function(e){var t=D(this).entries;T(arguments.length,1);for(var n=S(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){var t=D(this).entries;T(arguments.length,1);for(var n=S(e),r=[],o=0;o<t.length;o++)t[o].key===n&&X(r,t[o].value);return r},has:function(e){for(var t=D(this).entries,n=T(arguments.length,1),r=S(e),o=n<2?void 0:arguments[1],i=void 0===o?o:S(o),a=0;a<t.length;){var s=t[a++];if(s.key===r&&(void 0===i||s.value===i))return!0}return!1},set:function(e,t){var n=D(this);T(arguments.length,1);for(var r,o=n.entries,i=!1,a=S(e),s=S(t),l=0;l<o.length;l++)(r=o[l]).key===a&&(i?Q(o,l--,1):(i=!0,r.value=s));i||X(o,{key:a,value:s}),u||(this.size=o.length),n.updateURL()},sort:function(){var e=D(this);M(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=D(this).entries,r=b(e,arguments.length>1?arguments[1]:void 0),o=0;o<n.length;)r((t=n[o++]).value,t.key,this)},keys:function(){return new ce(this,"keys")},values:function(){return new ce(this,"values")},entries:function(){return new ce(this,"entries")}},{enumerable:!0}),c(he,P,he.entries,{name:"entries"}),c(he,"toString",(function(){return D(this).serialize()}),{enumerable:!0}),u&&f(he,"size",{get:function(){return D(this).entries.length},configurable:!0,enumerable:!0}),h(de,N),r({global:!0,constructor:!0,forced:!l},{URLSearchParams:de}),!l&&y(z)){var pe=s(V.has),ge=s(V.set),ve=function(e){if(x(e)){var t,n=e.body;if(_(n)===N)return t=e.headers?new z(e.headers):new z,pe(t,"content-type")||ge(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),A(e,{body:E(0,S(n)),headers:E(0,t)})}return e};if(y(j)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return j(e,arguments.length>1?ve(arguments[1]):{})}}),y(U)){var ye=function(e){return v(this,B),new U(e,arguments.length>1?ve(arguments[1]):{})};B.constructor=ye,ye.prototype=B,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:ye})}}e.exports={URLSearchParams:de,getState:D}},48408:(e,t,n)=>{"use strict";n(98406)},81431:(e,t)=>{"use strict";function n(e,t,n){var r,o=n||{},i=o.noTrailing,a=void 0!==i&&i,s=o.noLeading,u=void 0!==s&&s,l=o.debounceMode,c=void 0===l?void 0:l,f=!1,d=0;function h(){r&&clearTimeout(r)}function p(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var s=this,l=Date.now()-d;function p(){d=Date.now(),t.apply(s,o)}function g(){r=void 0}f||(u||!c||r||p(),h(),void 0===c&&l>e?u?(d=Date.now(),a||(r=setTimeout(c?g:p,e))):p():!0!==a&&(r=setTimeout(c?g:p,void 0===c?e-l:e)))}return p.cancel=function(e){var t=(e||{}).upcomingOnly,n=void 0!==t&&t;h(),f=!n},p}Object.defineProperty(t,"__esModule",{value:!0}),t.debounce=function(e,t,r){var o=(r||{}).atBegin;return n(e,t,{debounceMode:!1!==(void 0!==o&&o)})},t.throttle=n},43145:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{A:()=>r})},9417:(e,t,n)=>{"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{A:()=>r})},23029:(e,t,n)=>{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{A:()=>r})},92901:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(20816);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(0,r.A)(o.key),o)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}},49640:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(53954),o=n(52176),i=n(82284),a=n(9417);function s(e){var t=(0,o.A)();return function(){var n,o=(0,r.A)(e);if(t){var s=(0,r.A)(this).constructor;n=Reflect.construct(o,arguments,s)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===(0,i.A)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.A)(e)}(this,n)}}},64467:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(20816);function o(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},58168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},53954:(e,t,n)=>{"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{A:()=>r})},85501:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(63662);function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,r.A)(e,t)}},77387:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(63662);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.A)(e,t)}},52176:(e,t,n)=>{"use strict";function r(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{A:()=>r})},89379:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(64467);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,r.A)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},80045:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(98587);function o(e,t){if(null==e)return{};var n,o,i=(0,r.A)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},98587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{A:()=>r})},63662:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{A:()=>r})},80296:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(27800);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],u=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||(0,r.A)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},45458:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(43145);var o=n(27800);function i(e){return function(e){if(Array.isArray(e))return(0,r.A)(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||(0,o.A)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},20816:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(82284);function o(e){var t=function(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=(0,r.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==(0,r.A)(t)?t:String(t)}},82284:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})},27800:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(43145);function o(e,t){if(e){if("string"===typeof e)return(0,r.A)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.A)(e,t):void 0}}},64849:(e,t,n)=>{"use strict";n.d(t,{UU:()=>I});const r=e=>Array.isArray(e)?e:[e],o=(e={},t)=>({...e,filters:[...e.filters||[],...r(t)]});var i=n(20894);const a=e=>i.p.at("document.tags",r(e));var s=Object.defineProperty,u=(e,t,n)=>(((e,t,n)=>{t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!==typeof t?t+"":t,n),n);class l extends Error{constructor(e="An invalid API response was returned",t,n){super(e),u(this,"url"),u(this,"response"),this.url=t,this.response=n}}const c=(e,t)=>{const n=e.find((e=>t(e)));if(!n)throw new l("Ref could not be found.",void 0,void 0);return n},f=e=>c(e,(e=>e.isMasterRef)),d=(e,t)=>c(e,(e=>e.id===t)),h=(e,t)=>c(e,(e=>e.label===t)),p=e=>e.replace(/%3B/g,";"),g=e=>i.p.any("document.tags",r(e)),v=e=>i.p.at("document.type",e);class y extends l{}class m extends l{}class b extends l{}class _ extends y{}class w extends y{}class x extends y{}class S extends m{}const A="Document",E="Media",C="Web",R=(e,...t)=>{if(!e)return null;const n="link_type"in e?e:(e=>{var t;return{link_type:A,id:e.id,uid:e.uid||void 0,type:e.type,tags:e.tags,lang:e.lang,url:null==e.url?void 0:e.url,slug:null==(t=e.slugs)?void 0:t[0],...e.data&&Object.keys(e.data).length>0?{data:e.data}:{}}})(e),[r]=t;let o;switch(o="function"===typeof r||null==r?{linkResolver:r}:{...r},n.link_type){case E:case C:return"url"in n?n.url:null;case A:if("id"in n&&o.linkResolver){const e=o.linkResolver(n);if(null!=e)return e}return"url"in n&&n.url?n.url:null;default:return null}},O={accessToken:"access_token"},T=e=>"string"===typeof e?e:"desc"===e.direction?`${e.field} desc`:e.field;var k=Object.defineProperty,M=(e,t,n)=>(((e,t,n)=>{t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!==typeof t?t+"":t,n),n);var P,N;(N=P||(P={})).Master="Master",N.ReleaseID="ReleaseID",N.ReleaseLabel="ReleaseLabel",N.Manual="Manual";const I=(e,t)=>new L(e,t);class L{constructor(e,t={}){if(M(this,"endpoint"),M(this,"accessToken"),M(this,"routes"),M(this,"brokenRoute"),M(this,"fetchFn"),M(this,"fetchOptions"),M(this,"defaultParams"),M(this,"refState",{mode:P.Master,autoPreviewsEnabled:!0}),M(this,"cachedRepository"),M(this,"cachedRepositoryExpiration",0),M(this,"fetchJobs",{}),(e=>{try{return new URL(e),!0}catch{return!1}})(e)?this.endpoint=e:this.endpoint=(e=>{if(/^[a-zA-Z0-9][-a-zA-Z0-9]{2,}[a-zA-Z0-9]$/.test(e))return`https://${e}.cdn.prismic.io/api/v2`;throw new l(`An invalid Prismic repository name was given: ${e}`,void 0,void 0)})(e),this.accessToken=t.accessToken,this.routes=t.routes,this.brokenRoute=t.brokenRoute,this.fetchOptions=t.fetchOptions,this.defaultParams=t.defaultParams,t.ref&&this.queryContentFromRef(t.ref),"function"===typeof t.fetch)this.fetchFn=t.fetch;else{if("function"!==typeof globalThis.fetch)throw new l("A valid fetch implementation was not provided. In environments where fetch is not available (including Node.js), a fetch implementation must be provided via a polyfill or the `fetch` option.",void 0,void 0);this.fetchFn=globalThis.fetch}this.fetchFn===globalThis.fetch&&(this.fetchFn=this.fetchFn.bind(globalThis)),this.graphQLFetch=this.graphQLFetch.bind(this)}enableAutoPreviews(){this.refState.autoPreviewsEnabled=!0}enableAutoPreviewsFromReq(e){this.refState.httpRequest=e,this.refState.autoPreviewsEnabled=!0}disableAutoPreviews(){this.refState.autoPreviewsEnabled=!1}async get(e){const t=await this.buildQueryURL(e);return await this.fetch(t,e)}async getFirst(e){var t;const n={...e};e&&e.page||(null==e?void 0:e.pageSize)||(n.pageSize=(null==(t=this.defaultParams)?void 0:t.pageSize)??1);const r=await this.buildQueryURL(n),o=(await this.fetch(r,e)).results[0];if(o)return o;throw new m("No documents were returned",r,void 0)}async dangerouslyGetAll(e={}){var t;const{limit:n=1/0,...r}=e,o={...r,pageSize:Math.min(n,r.pageSize||(null==(t=this.defaultParams)?void 0:t.pageSize)||100)},i=[];let a;for(;(!a||a.next_page)&&i.length<n;){const e=a?a.page+1:void 0;a=await this.get({...o,page:e}),i.push(...a.results),a.next_page&&await new Promise((e=>setTimeout(e,500)))}return i.slice(0,n)}async getByID(e,t){return await this.getFirst(o(t,i.p.at("document.id",e)))}async getByIDs(e,t){return await this.get(o(t,i.p.in("document.id",e)))}async getAllByIDs(e,t){return await this.dangerouslyGetAll(o(t,i.p.in("document.id",e)))}async getByUID(e,t,n){return await this.getFirst(o(n,[v(e),i.p.at(`my.${e}.uid`,t)]))}async getByUIDs(e,t,n){return await this.get(o(n,[v(e),i.p.in(`my.${e}.uid`,t)]))}async getAllByUIDs(e,t,n){return await this.dangerouslyGetAll(o(n,[v(e),i.p.in(`my.${e}.uid`,t)]))}async getSingle(e,t){return await this.getFirst(o(t,v(e)))}async getByType(e,t){return await this.get(o(t,v(e)))}async getAllByType(e,t){return await this.dangerouslyGetAll(o(t,v(e)))}async getByTag(e,t){return await this.get(o(t,g(e)))}async getAllByTag(e,t){return await this.dangerouslyGetAll(o(t,g(e)))}async getByEveryTag(e,t){return await this.get(o(t,a(e)))}async getAllByEveryTag(e,t){return await this.dangerouslyGetAll(o(t,a(e)))}async getBySomeTags(e,t){return await this.get(o(t,g(e)))}async getAllBySomeTags(e,t){return await this.dangerouslyGetAll(o(t,g(e)))}async getRepository(e){const t=new URL(this.endpoint);return this.accessToken&&t.searchParams.set("access_token",this.accessToken),await this.fetch(t.toString(),e)}async getRefs(e){return(await this.getRepository(e)).refs}async getRefByID(e,t){const n=await this.getRefs(t);return d(n,e)}async getRefByLabel(e,t){const n=await this.getRefs(t);return h(n,e)}async getMasterRef(e){const t=await this.getRefs(e);return f(t)}async getReleases(e){return(await this.getRefs(e)).filter((e=>!e.isMasterRef))}async getReleaseByID(e,t){const n=await this.getReleases(t);return d(n,e)}async getReleaseByLabel(e,t){const n=await this.getReleases(t);return h(n,e)}async getTags(e){try{const t=await this.getCachedRepositoryForm("tags",e),n=new URL(t.action);return this.accessToken&&n.searchParams.set("access_token",this.accessToken),await this.fetch(n.toString(),e)}catch{return(await this.getRepository(e)).tags}}async buildQueryURL({signal:e,fetchOptions:t,...n}={}){const o=n.ref||await this.getResolvedRefString({signal:e,fetchOptions:t}),i=n.integrationFieldsRef||(await this.getCachedRepository({signal:e,fetchOptions:t})).integrationFieldsRef||void 0;return((e,t)=>{const{filters:n,predicates:o,...i}=t,a=new URL("documents/search",`${e}/`);if(n)for(const s of r(n))a.searchParams.append("q",`[${s}]`);if(o)for(const s of r(o))a.searchParams.append("q",`[${s}]`);for(const s in i){const e=O[s]||s;let t=i[s];if("orderings"===e){const n=i[e];null!=n&&(t=`[${r(n).map((e=>T(e))).join(",")}]`)}else"routes"===e&&"object"===typeof i[e]&&(t=JSON.stringify(r(i[e])));null!=t&&a.searchParams.set(e,r(t).join(","))}return a.toString()})(this.endpoint,{...this.defaultParams,...n,ref:o,integrationFieldsRef:i,routes:n.routes||this.routes,brokenRoute:n.brokenRoute||this.brokenRoute,accessToken:n.accessToken||this.accessToken})}async resolvePreviewURL(e){var t,n;let r=e.documentID,o=e.previewToken;if("undefined"!==typeof globalThis.location){const e=new URLSearchParams(globalThis.location.search);r=r||e.get("documentId"),o=o||e.get("token")}else if(this.refState.httpRequest)if("query"in this.refState.httpRequest)r=r||(null==(t=this.refState.httpRequest.query)?void 0:t.documentId),o=o||(null==(n=this.refState.httpRequest.query)?void 0:n.token);else if("url"in this.refState.httpRequest&&this.refState.httpRequest.url){const e=new URL(this.refState.httpRequest.url,"missing-host://").searchParams;r=r||e.get("documentId"),o=o||e.get("token")}if(null!=r&&null!=o){const t=await this.getByID(r,{ref:o,lang:"*",signal:e.signal,fetchOptions:e.fetchOptions}),n=R(t,{linkResolver:e.linkResolver});if("string"===typeof n)return n}return e.defaultURL}queryLatestContent(){this.refState.mode=P.Master}queryContentFromReleaseByID(e){this.refState={...this.refState,mode:P.ReleaseID,releaseID:e}}queryContentFromReleaseByLabel(e){this.refState={...this.refState,mode:P.ReleaseLabel,releaseLabel:e}}queryContentFromRef(e){this.refState={...this.refState,mode:P.Manual,ref:e}}async graphQLFetch(e,t){const n=await this.getCachedRepository(),r=await this.getResolvedRefString(),o={"Prismic-ref":r,Authorization:this.accessToken?`Token ${this.accessToken}`:"",...t?t.headers:{}};n.integrationFieldsRef&&(o["Prismic-integration-field-ref"]=n.integrationFieldsRef);const i={};for(const u in o)o[u]&&(i[u.toLowerCase()]=o[u]);const a=new URL(e);a.searchParams.set("ref",r);const s=a.searchParams.get("query");return s&&a.searchParams.set("query",(e=>e.replace(/(\n| )*( |{|})(\n| )*/gm,((e,t,n)=>n)))(s)),await this.fetchFn(a.toString(),{...t,headers:i})}async getCachedRepository(e){return(!this.cachedRepository||Date.now()>=this.cachedRepositoryExpiration)&&(this.cachedRepositoryExpiration=Date.now()+5e3,this.cachedRepository=await this.getRepository(e)),this.cachedRepository}async getCachedRepositoryForm(e,t){const n=(await this.getCachedRepository(t)).forms[e];if(!n)throw new l(`Form with name "${e}" could not be found`,void 0,void 0);return n}async getResolvedRefString(e){var t,n;if(this.refState.autoPreviewsEnabled){let e,r;if((null==(t=this.refState.httpRequest)?void 0:t.headers)?"get"in this.refState.httpRequest.headers&&"function"===typeof this.refState.httpRequest.headers.get?r=this.refState.httpRequest.headers.get("cookie"):"cookie"in this.refState.httpRequest.headers&&(r=this.refState.httpRequest.headers.cookie):(null==(n=globalThis.document)?void 0:n.cookie)&&(r=globalThis.document.cookie),r&&(e=(e=>{const t=e.split("; ");let n;for(const r of t){const e=r.split("=");if("io.prismic.preview"===p(e[0]).replace(/%3D/g,"=")){n=p(e.slice(1).join("="));break}}return n})(r)),e)return e}const r=await this.getCachedRepository(e),o=this.refState.mode;if(o===P.ReleaseID)return d(r.refs,this.refState.releaseID).ref;if(o===P.ReleaseLabel)return h(r.refs,this.refState.releaseLabel).ref;if(o===P.Manual){const e=await(i=this.refState.ref,"function"===typeof i?i:()=>i)();if("string"===typeof e)return e}var i;return f(r.refs).ref}async fetch(e,t={}){var n,r,o,i;const a={...this.fetchOptions,...t.fetchOptions,headers:{...null==(n=this.fetchOptions)?void 0:n.headers,...null==(r=t.fetchOptions)?void 0:r.headers},signal:(null==(o=t.fetchOptions)?void 0:o.signal)||t.signal||(null==(i=this.fetchOptions)?void 0:i.signal)};let s;this.fetchJobs[e]&&this.fetchJobs[e].has(a.signal)?s=this.fetchJobs[e].get(a.signal):(this.fetchJobs[e]=this.fetchJobs[e]||new Map,s=this.fetchFn(e,a).then((async e=>{let t;try{t=await e.json()}catch{}return{status:e.status,headers:e.headers,json:t}})).finally((()=>{this.fetchJobs[e].delete(a.signal),0===this.fetchJobs[e].size&&delete this.fetchJobs[e]})),this.fetchJobs[e].set(a.signal,s));const u=await s;if(404!==u.status&&null==u.json)throw new l(void 0,e,u.json);switch(u.status){case 200:return u.json;case 400:throw new b(u.json.message,e,u.json);case 401:case 403:throw new y(u.json.error||u.json.message,e,u.json);case 404:if(void 0===u.json)throw new S(`Prismic repository not found. Check that "${this.endpoint}" is pointing to the correct repository.`,e,void 0);if("api_notfound_error"===u.json.type)throw new x(u.json.message,e,u.json);if("api_security_error"===u.json.type&&/preview token.*expired/i.test(u.json.message))throw new _(u.json.message,e,u.json);throw new m(u.json.message,e,u.json);case 410:throw new w(u.json.message,e,u.json);case 429:{const n=Number(u.headers.get("retry-after")),r=Number.isNaN(n)?1e3:n;return await new Promise(((n,o)=>{setTimeout((async()=>{try{n(await this.fetch(e,t))}catch(r){o(r)}}),r)}))}}throw new l(void 0,e,u.json)}}},20894:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});const r=e=>Array.isArray(e)?`[${e.map(r).join(", ")}]`:"string"===typeof e?`"${e}"`:e instanceof Date?`${e.getTime()}`:`${e}`,o=e=>(t,...n)=>{const o=n.map(r).join(", "),i=t&&n.length?", ":"";return`[${e}(${t}${i}${o})]`},i=e=>{const t=o(e);return e=>t(e)},a={at:o("at"),not:o("not"),any:o("any"),in:o("in"),fulltext:o("fulltext"),has:i("has"),missing:i("missing"),similar:(e=>{const t=o(e);return(...e)=>t("",...e)})("similar"),geopointNear:o("geopoint.near"),numberLessThan:o("number.lt"),numberGreaterThan:o("number.gt"),numberInRange:o("number.inRange"),dateAfter:o("date.after"),dateBefore:o("date.before"),dateBetween:o("date.between"),dateDayOfMonth:o("date.day-of-month"),dateDayOfMonthAfter:o("date.day-of-month-after"),dateDayOfMonthBefore:o("date.day-of-month-before"),dateDayOfWeek:o("date.day-of-week"),dateDayOfWeekAfter:o("date.day-of-week-after"),dateDayOfWeekBefore:o("date.day-of-week-before"),dateMonth:o("date.month"),dateMonthAfter:o("date.month-after"),dateMonthBefore:o("date.month-before"),dateYear:o("date.year"),dateHour:o("date.hour"),dateHourAfter:o("date.hour-after"),dateHourBefore:o("date.hour-before")}},1530:(e,t,n)=>{"use strict";n.d(t,{Kv:()=>i,N4:()=>a});var r=n(96540),o=n(33888);function i(e,t){return e?function(e){return"function"===typeof e&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}(n=e)||"function"===typeof n||function(e){return"object"===typeof e&&"symbol"===typeof e.$$typeof&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}(n)?r.createElement(e,t):e:null;var n}function a(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=r.useState((()=>({current:(0,o.ZR)(t)}))),[i,a]=r.useState((()=>n.current.initialState));return n.current.setOptions((t=>({...t,...e,state:{...i,...e.state},onStateChange:t=>{a(t),null==e.onStateChange||e.onStateChange(t)}}))),n.current}},33888:(e,t,n)=>{"use strict";function r(e,t){return"function"===typeof e?e(t):e}function o(e,t){return n=>{t.setState((t=>({...t,[e]:r(n,t[e])})))}}function i(e){return e instanceof Function}function a(e,t){const n=[],r=e=>{e.forEach((e=>{n.push(e);const o=t(e);null!=o&&o.length&&r(o)}))};return r(e),n}function s(e,t,n){let r,o=[];return()=>{let i;n.key&&n.debug&&(i=Date.now());const a=e();if(!(a.length!==o.length||a.some(((e,t)=>o[t]!==e))))return r;let s;if(o=a,n.key&&n.debug&&(s=Date.now()),r=t(...a),null==n||null==n.onChange||n.onChange(r),n.key&&n.debug&&null!=n&&n.debug()){const e=Math.round(100*(Date.now()-i))/100,t=Math.round(100*(Date.now()-s))/100,r=t/16,o=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${o(t,5)} /${o(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,null==n?void 0:n.key)}return r}}function u(e,t,n){var r;let o={id:null!=(r=n.id)?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const e=[],t=n=>{n.subHeaders&&n.subHeaders.length&&n.subHeaders.map(t),e.push(n)};return t(o),e},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach((t=>{null==t.createHeader||t.createHeader(o,e)})),o}n.d(t,{D0:()=>q,HT:()=>V,ZR:()=>z,cU:()=>G,h5:()=>W,hM:()=>$,kW:()=>X});const l={createTable:e=>{e.getHeaderGroups=s((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((t,n,r,o)=>{var i,a;const s=null!=(i=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?i:[],u=null!=(a=null==o?void 0:o.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?a:[];return c(t,[...s,...n.filter((e=>!(null!=r&&r.includes(e.id))&&!(null!=o&&o.includes(e.id)))),...u],e)}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getCenterHeaderGroups=s((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((t,n,r,o)=>c(t,n=n.filter((e=>!(null!=r&&r.includes(e.id))&&!(null!=o&&o.includes(e.id)))),e,"center")),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getLeftHeaderGroups=s((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left]),((t,n,r)=>{var o;return c(t,null!=(o=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?o:[],e,"left")}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getRightHeaderGroups=s((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right]),((t,n,r)=>{var o;return c(t,null!=(o=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?o:[],e,"right")}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getFooterGroups=s((()=>[e.getHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getLeftFooterGroups=s((()=>[e.getLeftHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getCenterFooterGroups=s((()=>[e.getCenterHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getRightFooterGroups=s((()=>[e.getRightHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getFlatHeaders=s((()=>[e.getHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getLeftFlatHeaders=s((()=>[e.getLeftHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getCenterFlatHeaders=s((()=>[e.getCenterHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getRightFlatHeaders=s((()=>[e.getRightHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getCenterLeafHeaders=s((()=>[e.getCenterFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getLeftLeafHeaders=s((()=>[e.getLeftFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getRightLeafHeaders=s((()=>[e.getRightFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),e.getLeafHeaders=s((()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()]),((e,t,n)=>{var r,o,i,a,s,u;return[...null!=(r=null==(o=e[0])?void 0:o.headers)?r:[],...null!=(i=null==(a=t[0])?void 0:a.headers)?i:[],...null!=(s=null==(u=n[0])?void 0:u.headers)?s:[]].map((e=>e.getLeafHeaders())).flat()}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}})}};function c(e,t,n,r){var o,i;let a=0;const s=function(e,t){void 0===t&&(t=1),a=Math.max(a,t),e.filter((e=>e.getIsVisible())).forEach((e=>{var n;null!=(n=e.columns)&&n.length&&s(e.columns,t+1)}),0)};s(e);let l=[];const c=(e,t)=>{const o={depth:t,id:[r,`${t}`].filter(Boolean).join("_"),headers:[]},i=[];e.forEach((e=>{const a=[...i].reverse()[0];let s,l=!1;if(e.column.depth===o.depth&&e.column.parent?s=e.column.parent:(s=e.column,l=!0),a&&(null==a?void 0:a.column)===s)a.subHeaders.push(e);else{const o=u(n,s,{id:[r,t,s.id,null==e?void 0:e.id].filter(Boolean).join("_"),isPlaceholder:l,placeholderId:l?`${i.filter((e=>e.column===s)).length}`:void 0,depth:t,index:i.length});o.subHeaders.push(e),i.push(o)}o.headers.push(e),e.headerGroup=o})),l.push(o),t>0&&c(i,t-1)},f=t.map(((e,t)=>u(n,e,{depth:a,index:t})));c(f,a-1),l.reverse();const d=e=>e.filter((e=>e.column.getIsVisible())).map((e=>{let t=0,n=0,r=[0];e.subHeaders&&e.subHeaders.length?(r=[],d(e.subHeaders).forEach((e=>{let{colSpan:n,rowSpan:o}=e;t+=n,r.push(o)}))):t=1;return n+=Math.min(...r),e.colSpan=t,e.rowSpan=n,{colSpan:t,rowSpan:n}}));return d(null!=(o=null==(i=l[0])?void 0:i.headers)?o:[]),l}const f={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},d={getDefaultColumnDef:()=>f,getInitialState:e=>({columnSizing:{},columnSizingInfo:{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]},...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:o("columnSizing",e),onColumnSizingInfoChange:o("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max(null!=(n=e.columnDef.minSize)?n:f.minSize,null!=(r=null!=i?i:e.columnDef.size)?r:f.size),null!=(o=e.columnDef.maxSize)?o:f.maxSize)},e.getStart=n=>{const r=n?"left"===n?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),o=r.findIndex((t=>t.id===e.id));if(o>0){const e=r[o-1];return e.getStart(n)+e.getSize()}return 0},e.resetSize=()=>{t.setColumnSizing((t=>{let{[e.id]:n,...r}=t;return r}))},e.getCanResize=()=>{var n,r;return(null==(n=e.columnDef.enableResizing)||n)&&(null==(r=t.options.enableColumnResizing)||r)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let t=0;const n=e=>{var r;e.subHeaders.length?e.subHeaders.forEach(n):t+=null!=(r=e.column.getSize())?r:0};return n(e),t},e.getStart=()=>{if(e.index>0){const t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},e.getResizeHandler=()=>{const n=t.getColumn(e.column.id),r=null==n?void 0:n.getCanResize();return o=>{if(!n||!r)return;if(null==o.persist||o.persist(),p(o)&&o.touches&&o.touches.length>1)return;const i=e.getSize(),a=e?e.getLeafHeaders().map((e=>[e.column.id,e.column.getSize()])):[[n.id,n.getSize()]],s=p(o)?Math.round(o.touches[0].clientX):o.clientX,u={},l=(e,n)=>{"number"===typeof n&&(t.setColumnSizingInfo((e=>{var t,r;const o=n-(null!=(t=null==e?void 0:e.startOffset)?t:0),i=Math.max(o/(null!=(r=null==e?void 0:e.startSize)?r:0),-.999999);return e.columnSizingStart.forEach((e=>{let[t,n]=e;u[t]=Math.round(100*Math.max(n+n*i,0))/100})),{...e,deltaOffset:o,deltaPercentage:i}})),"onChange"!==t.options.columnResizeMode&&"end"!==e||t.setColumnSizing((e=>({...e,...u}))))},c=e=>l("move",e),f=e=>{l("end",e),t.setColumnSizingInfo((e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]})))},d={moveHandler:e=>c(e.clientX),upHandler:e=>{document.removeEventListener("mousemove",d.moveHandler),document.removeEventListener("mouseup",d.upHandler),f(e.clientX)}},g={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),c(e.touches[0].clientX),!1),upHandler:e=>{var t;document.removeEventListener("touchmove",g.moveHandler),document.removeEventListener("touchend",g.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(null==(t=e.touches[0])?void 0:t.clientX)}},v=!!function(){if("boolean"===typeof h)return h;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch(t){e=!1}return h=e,h}()&&{passive:!1};p(o)?(document.addEventListener("touchmove",g.moveHandler,v),document.addEventListener("touchend",g.upHandler,v)):(document.addEventListener("mousemove",d.moveHandler,v),document.addEventListener("mouseup",d.upHandler,v)),t.setColumnSizingInfo((e=>({...e,startOffset:s,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:a,isResizingColumn:n.id})))}}},createTable:e=>{e.setColumnSizing=t=>null==e.options.onColumnSizingChange?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>null==e.options.onColumnSizingInfoChange?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:null!=(n=e.initialState.columnSizing)?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}:null!=(n=e.initialState.columnSizingInfo)?n:{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]})},e.getTotalSize=()=>{var t,n;return null!=(t=null==(n=e.getHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},e.getLeftTotalSize=()=>{var t,n;return null!=(t=null==(n=e.getLeftHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},e.getCenterTotalSize=()=>{var t,n;return null!=(t=null==(n=e.getCenterHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},e.getRightTotalSize=()=>{var t,n;return null!=(t=null==(n=e.getRightHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0}}};let h=null;function p(e){return"touchstart"===e.type}const g={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:o("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,o;if(t){if(null!=(r=null!=(o=e.options.autoResetAll)?o:e.options.autoResetExpanded)?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue((()=>{e.resetExpanded(),n=!1}))}}else e._queue((()=>{t=!0}))},e.setExpanded=t=>null==e.options.onExpandedChange?void 0:e.options.onExpandedChange(t),e.toggleAllRowsExpanded=t=>{(null!=t?t:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=t=>{var n,r;e.setExpanded(t?{}:null!=(n=null==(r=e.initialState)?void 0:r.expanded)?n:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some((e=>e.getCanExpand())),e.getToggleAllRowsExpandedHandler=()=>t=>{null==t.persist||t.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const t=e.getState().expanded;return!0===t||Object.values(t).some(Boolean)},e.getIsAllRowsExpanded=()=>{const t=e.getState().expanded;return"boolean"===typeof t?!0===t:!!Object.keys(t).length&&!e.getRowModel().flatRows.some((e=>!e.getIsExpanded()))},e.getExpandedDepth=()=>{let t=0;return(!0===e.getState().expanded?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach((e=>{const n=e.split(".");t=Math.max(t,n.length)})),t},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded((r=>{var o;const i=!0===r||!(null==r||!r[e.id]);let a={};if(!0===r?Object.keys(t.getRowModel().rowsById).forEach((e=>{a[e]=!0})):a=r,n=null!=(o=n)?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:t,...n}=a;return n}return r}))},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!(null!=(n=null==t.options.getIsRowExpanded?void 0:t.options.getIsRowExpanded(e))?n:!0===r||(null==r?void 0:r[e.id]))},e.getCanExpand=()=>{var n,r,o;return null!=(n=null==t.options.getRowCanExpand?void 0:t.options.getRowCanExpand(e))?n:(null==(r=t.options.enableExpanding)||r)&&!(null==(o=e.subRows)||!o.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}}},v=(e,t,n)=>{var r;const o=n.toLowerCase();return Boolean(null==(r=e.getValue(t))||null==(r=r.toString())||null==(r=r.toLowerCase())?void 0:r.includes(o))};v.autoRemove=e=>C(e);const y=(e,t,n)=>{var r;return Boolean(null==(r=e.getValue(t))||null==(r=r.toString())?void 0:r.includes(n))};y.autoRemove=e=>C(e);const m=(e,t,n)=>{var r;return(null==(r=e.getValue(t))||null==(r=r.toString())?void 0:r.toLowerCase())===(null==n?void 0:n.toLowerCase())};m.autoRemove=e=>C(e);const b=(e,t,n)=>{var r;return null==(r=e.getValue(t))?void 0:r.includes(n)};b.autoRemove=e=>C(e)||!(null!=e&&e.length);const _=(e,t,n)=>!n.some((n=>{var r;return!(null!=(r=e.getValue(t))&&r.includes(n))}));_.autoRemove=e=>C(e)||!(null!=e&&e.length);const w=(e,t,n)=>n.some((n=>{var r;return null==(r=e.getValue(t))?void 0:r.includes(n)}));w.autoRemove=e=>C(e)||!(null!=e&&e.length);const x=(e,t,n)=>e.getValue(t)===n;x.autoRemove=e=>C(e);const S=(e,t,n)=>e.getValue(t)==n;S.autoRemove=e=>C(e);const A=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};A.resolveFilterValue=e=>{let[t,n]=e,r="number"!==typeof t?parseFloat(t):t,o="number"!==typeof n?parseFloat(n):n,i=null===t||Number.isNaN(r)?-1/0:r,a=null===n||Number.isNaN(o)?1/0:o;if(i>a){const e=i;i=a,a=e}return[i,a]},A.autoRemove=e=>C(e)||C(e[0])&&C(e[1]);const E={includesString:v,includesStringSensitive:y,equalsString:m,arrIncludes:b,arrIncludesAll:_,arrIncludesSome:w,equals:x,weakEquals:S,inNumberRange:A};function C(e){return void 0===e||null===e||""===e}function R(e,t,n){return!(!e||!e.autoRemove)&&e.autoRemove(t,n)||"undefined"===typeof t||"string"===typeof t&&!t}const O={sum:(e,t,n)=>n.reduce(((t,n)=>{const r=n.getValue(e);return t+("number"===typeof r?r:0)}),0),min:(e,t,n)=>{let r;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(r>n||void 0===r&&n>=n)&&(r=n)})),r},max:(e,t,n)=>{let r;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(r<n||void 0===r&&n>=n)&&(r=n)})),r},extent:(e,t,n)=>{let r,o;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(void 0===r?n>=n&&(r=o=n):(r>n&&(r=n),o<n&&(o=n)))})),[r,o]},mean:(e,t)=>{let n=0,r=0;if(t.forEach((t=>{let o=t.getValue(e);null!=o&&(o=+o)>=o&&(++n,r+=o)})),n)return r/n},median:(e,t)=>{if(!t.length)return;const n=t.map((t=>t.getValue(e)));if(r=n,!Array.isArray(r)||!r.every((e=>"number"===typeof e)))return;var r;if(1===n.length)return n[0];const o=Math.floor(n.length/2),i=n.sort(((e,t)=>e-t));return n.length%2!==0?i[o]:(i[o-1]+i[o])/2},unique:(e,t)=>Array.from(new Set(t.map((t=>t.getValue(e)))).values()),uniqueCount:(e,t)=>new Set(t.map((t=>t.getValue(e)))).size,count:(e,t)=>t.length};const T={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:o("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>null==e.options.onRowSelectionChange?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:null!=(n=e.initialState.rowSelection)?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection((n=>{t="undefined"!==typeof t?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach((e=>{e.getCanSelect()&&(r[e.id]=!0)})):o.forEach((e=>{delete r[e.id]})),r}))},e.toggleAllPageRowsSelected=t=>e.setRowSelection((n=>{const r="undefined"!==typeof t?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach((t=>{k(o,t.id,r,!0,e)})),o})),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=s((()=>[e.getState().rowSelection,e.getCoreRowModel()]),((t,n)=>Object.keys(t).length?M(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),e.getFilteredSelectedRowModel=s((()=>[e.getState().rowSelection,e.getFilteredRowModel()]),((t,n)=>Object.keys(t).length?M(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:"getFilteredSelectedRowModel",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),e.getGroupedSelectedRowModel=s((()=>[e.getState().rowSelection,e.getSortedRowModel()]),((t,n)=>Object.keys(t).length?M(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:"getGroupedSelectedRowModel",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=Boolean(t.length&&Object.keys(n).length);return r&&t.some((e=>e.getCanSelect()&&!n[e.id]))&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter((e=>e.getCanSelect())),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some((e=>!n[e.id]))&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys(null!=(t=e.getState().rowSelection)?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},e.getIsSomePageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows;return!e.getIsAllPageRowsSelected()&&t.filter((e=>e.getCanSelect())).some((e=>e.getIsSelected()||e.getIsSomeSelected()))},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const o=e.getIsSelected();t.setRowSelection((i=>{var a;if(n="undefined"!==typeof n?n:!o,e.getCanSelect()&&o===n)return i;const s={...i};return k(s,e.id,n,null==(a=null==r?void 0:r.selectChildren)||a,t),s}))},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return P(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return"some"===N(e,n)},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return"all"===N(e,n)},e.getCanSelect=()=>{var n;return"function"===typeof t.options.enableRowSelection?t.options.enableRowSelection(e):null==(n=t.options.enableRowSelection)||n},e.getCanSelectSubRows=()=>{var n;return"function"===typeof t.options.enableSubRowSelection?t.options.enableSubRowSelection(e):null==(n=t.options.enableSubRowSelection)||n},e.getCanMultiSelect=()=>{var n;return"function"===typeof t.options.enableMultiRowSelection?t.options.enableMultiRowSelection(e):null==(n=t.options.enableMultiRowSelection)||n},e.getToggleSelectedHandler=()=>{const t=e.getCanSelect();return n=>{var r;t&&e.toggleSelected(null==(r=n.target)?void 0:r.checked)}}}},k=(e,t,n,r,o)=>{var i;const a=o.getRow(t);n?(a.getCanMultiSelect()||Object.keys(e).forEach((t=>delete e[t])),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&null!=(i=a.subRows)&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach((t=>k(e,t.id,n,r,o)))};function M(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(e,t){return e.map((e=>{var t;const a=P(e,n);if(a&&(r.push(e),o[e.id]=e),null!=(t=e.subRows)&&t.length&&(e={...e,subRows:i(e.subRows)}),a)return e})).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function P(e,t){var n;return null!=(n=t[e.id])&&n}function N(e,t,n){var r;if(null==(r=e.subRows)||!r.length)return!1;let o=!0,i=!1;return e.subRows.forEach((e=>{if((!i||o)&&(e.getCanSelect()&&(P(e,t)?i=!0:o=!1),e.subRows&&e.subRows.length)){const n=N(e,t);"all"===n?i=!0:"some"===n?(i=!0,o=!1):o=!1}})),o?"all":!!i&&"some"}const I=/([0-9]+)/gm;function L(e,t){return e===t?0:e>t?1:-1}function D(e){return"boolean"===typeof e?String(e):"number"===typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"===typeof e?e:""}function F(e,t){const n=parseFloat(e),r=parseFloat(t);if(!isNaN(n)&&!isNaN(r))return L(n,r);const o=e.split(I).filter(Boolean),i=t.split(I).filter(Boolean);for(;o.length&&i.length;){const e=o.shift(),t=i.shift(),n=parseInt(e,10),r=parseInt(t,10),a=[n,r].sort();if(isNaN(a[0])){if(e>t)return 1;if(t>e)return-1}else{if(isNaN(a[1]))return isNaN(n)?-1:1;if(n>r)return 1;if(r>n)return-1}}return o.length-i.length}const j={alphanumeric:(e,t,n)=>F(D(e.getValue(n)).toLowerCase(),D(t.getValue(n)).toLowerCase()),alphanumericCaseSensitive:(e,t,n)=>F(D(e.getValue(n)),D(t.getValue(n))),text:(e,t,n)=>L(D(e.getValue(n)).toLowerCase(),D(t.getValue(n)).toLowerCase()),textCaseSensitive:(e,t,n)=>L(D(e.getValue(n)),D(t.getValue(n))),datetime:(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:r<o?-1:0},basic:(e,t,n)=>L(e.getValue(n),t.getValue(n))},U=[l,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:o("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility((t=>({...t,[e.id]:null!=n?n:!e.getIsVisible()})))},e.getIsVisible=()=>{var n,r;return null==(n=null==(r=t.getState().columnVisibility)?void 0:r[e.id])||n},e.getCanHide=()=>{var n,r;return(null==(n=e.columnDef.enableHiding)||n)&&(null==(r=t.options.enableHiding)||r)},e.getToggleVisibilityHandler=()=>t=>{null==e.toggleVisibility||e.toggleVisibility(t.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=s((()=>[e.getAllCells(),t.getState().columnVisibility]),(e=>e.filter((e=>e.column.getIsVisible()))),{key:"row._getAllVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),e.getVisibleCells=s((()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()]),((e,t,n)=>[...e,...t,...n]),{key:!1,debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}})},createTable:e=>{const t=(t,n)=>s((()=>[n(),n().filter((e=>e.getIsVisible())).map((e=>e.id)).join("_")]),(e=>e.filter((e=>null==e.getIsVisible?void 0:e.getIsVisible()))),{key:t,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}});e.getVisibleFlatColumns=t("getVisibleFlatColumns",(()=>e.getAllFlatColumns())),e.getVisibleLeafColumns=t("getVisibleLeafColumns",(()=>e.getAllLeafColumns())),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",(()=>e.getLeftLeafColumns())),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",(()=>e.getRightLeafColumns())),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",(()=>e.getCenterLeafColumns())),e.setColumnVisibility=t=>null==e.options.onColumnVisibilityChange?void 0:e.options.onColumnVisibilityChange(t),e.resetColumnVisibility=t=>{var n;e.setColumnVisibility(t?{}:null!=(n=e.initialState.columnVisibility)?n:{})},e.toggleAllColumnsVisible=t=>{var n;t=null!=(n=t)?n:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce(((e,n)=>({...e,[n.id]:t||!(null!=n.getCanHide&&n.getCanHide())})),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some((e=>!(null!=e.getIsVisible&&e.getIsVisible()))),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some((e=>null==e.getIsVisible?void 0:e.getIsVisible())),e.getToggleAllColumnsVisibilityHandler=()=>t=>{var n;e.toggleAllColumnsVisible(null==(n=t.target)?void 0:n.checked)}}},{getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:o("columnOrder",e)}),createTable:e=>{e.setColumnOrder=t=>null==e.options.onColumnOrderChange?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:null!=(n=e.initialState.columnOrder)?n:[])},e._getOrderColumnsFn=s((()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode]),((e,t,n)=>r=>{let o=[];if(null!=e&&e.length){const t=[...e],n=[...r];for(;n.length&&t.length;){const e=t.shift(),r=n.findIndex((t=>t.id===e));r>-1&&o.push(n.splice(r,1)[0])}o=[...o,...n]}else o=r;return function(e,t,n){if(null==t||!t.length||!n)return e;const r=e.filter((e=>!t.includes(e.id)));return"remove"===n?r:[...t.map((t=>e.find((e=>e.id===t)))).filter(Boolean),...r]}(o,t,n)}),{key:!1})}},{getInitialState:e=>({columnPinning:{left:[],right:[]},rowPinning:{top:[],bottom:[]},...e}),getDefaultOptions:e=>({onColumnPinningChange:o("columnPinning",e),onRowPinningChange:o("rowPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map((e=>e.id)).filter(Boolean);t.setColumnPinning((e=>{var t,o,i,a,s,u;return"right"===n?{left:(null!=(i=null==e?void 0:e.left)?i:[]).filter((e=>!(null!=r&&r.includes(e)))),right:[...(null!=(a=null==e?void 0:e.right)?a:[]).filter((e=>!(null!=r&&r.includes(e)))),...r]}:"left"===n?{left:[...(null!=(s=null==e?void 0:e.left)?s:[]).filter((e=>!(null!=r&&r.includes(e)))),...r],right:(null!=(u=null==e?void 0:e.right)?u:[]).filter((e=>!(null!=r&&r.includes(e))))}:{left:(null!=(t=null==e?void 0:e.left)?t:[]).filter((e=>!(null!=r&&r.includes(e)))),right:(null!=(o=null==e?void 0:e.right)?o:[]).filter((e=>!(null!=r&&r.includes(e))))}}))},e.getCanPin=()=>e.getLeafColumns().some((e=>{var n,r,o;return(null==(n=e.columnDef.enablePinning)||n)&&(null==(r=null!=(o=t.options.enableColumnPinning)?o:t.options.enablePinning)||r)})),e.getIsPinned=()=>{const n=e.getLeafColumns().map((e=>e.id)),{left:r,right:o}=t.getState().columnPinning,i=n.some((e=>null==r?void 0:r.includes(e))),a=n.some((e=>null==o?void 0:o.includes(e)));return i?"left":!!a&&"right"},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();return o?null!=(n=null==(r=t.getState().columnPinning)||null==(r=r[o])?void 0:r.indexOf(e.id))?n:-1:0}},createRow:(e,t)=>{e.pin=(n,r,o)=>{const i=r?e.getLeafRows().map((e=>{let{id:t}=e;return t})):[],a=o?e.getParentRows().map((e=>{let{id:t}=e;return t})):[],s=new Set([...a,e.id,...i]);t.setRowPinning((e=>{var t,r,o,i,a,u;return"bottom"===n?{top:(null!=(o=null==e?void 0:e.top)?o:[]).filter((e=>!(null!=s&&s.has(e)))),bottom:[...(null!=(i=null==e?void 0:e.bottom)?i:[]).filter((e=>!(null!=s&&s.has(e)))),...Array.from(s)]}:"top"===n?{top:[...(null!=(a=null==e?void 0:e.top)?a:[]).filter((e=>!(null!=s&&s.has(e)))),...Array.from(s)],bottom:(null!=(u=null==e?void 0:e.bottom)?u:[]).filter((e=>!(null!=s&&s.has(e))))}:{top:(null!=(t=null==e?void 0:e.top)?t:[]).filter((e=>!(null!=s&&s.has(e)))),bottom:(null!=(r=null==e?void 0:e.bottom)?r:[]).filter((e=>!(null!=s&&s.has(e))))}}))},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:o}=t.options;return"function"===typeof r?r(e):null==(n=null!=r?r:o)||n},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:o}=t.getState().rowPinning,i=n.some((e=>null==r?void 0:r.includes(e))),a=n.some((e=>null==o?void 0:o.includes(e)));return i?"top":!!a&&"bottom"},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();if(!o)return-1;const i=null==(n=t._getPinnedRows(o))?void 0:n.map((e=>{let{id:t}=e;return t}));return null!=(r=null==i?void 0:i.indexOf(e.id))?r:-1},e.getCenterVisibleCells=s((()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right]),((e,t,n)=>{const r=[...null!=t?t:[],...null!=n?n:[]];return e.filter((e=>!r.includes(e.column.id)))}),{key:!1,debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),e.getLeftVisibleCells=s((()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.column.id===t)))).filter(Boolean).map((e=>({...e,position:"left"})))),{key:!1,debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),e.getRightVisibleCells=s((()=>[e._getAllVisibleCells(),t.getState().columnPinning.right]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.column.id===t)))).filter(Boolean).map((e=>({...e,position:"right"})))),{key:!1,debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}})},createTable:e=>{e.setColumnPinning=t=>null==e.options.onColumnPinningChange?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?{left:[],right:[]}:null!=(n=null==(r=e.initialState)?void 0:r.columnPinning)?n:{left:[],right:[]})},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;var o,i;return t?Boolean(null==(n=r[t])?void 0:n.length):Boolean((null==(o=r.left)?void 0:o.length)||(null==(i=r.right)?void 0:i.length))},e.getLeftLeafColumns=s((()=>[e.getAllLeafColumns(),e.getState().columnPinning.left]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.id===t)))).filter(Boolean)),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),e.getRightLeafColumns=s((()=>[e.getAllLeafColumns(),e.getState().columnPinning.right]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.id===t)))).filter(Boolean)),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),e.getCenterLeafColumns=s((()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((e,t,n)=>{const r=[...null!=t?t:[],...null!=n?n:[]];return e.filter((e=>!r.includes(e.id)))}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),e.setRowPinning=t=>null==e.options.onRowPinningChange?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?{top:[],bottom:[]}:null!=(n=null==(r=e.initialState)?void 0:r.rowPinning)?n:{top:[],bottom:[]})},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;var o,i;return t?Boolean(null==(n=r[t])?void 0:n.length):Boolean((null==(o=r.top)?void 0:o.length)||(null==(i=r.bottom)?void 0:i.length))},e._getPinnedRows=t=>s((()=>[e.getRowModel().rows,e.getState().rowPinning[t]]),((n,r)=>{var o;return(null==(o=e.options.keepPinnedRows)||o?(null!=r?r:[]).map((t=>{const n=e.getRow(t,!0);return n.getIsAllParentsExpanded()?n:null})):(null!=r?r:[]).map((e=>n.find((t=>t.id===e))))).filter(Boolean).map((e=>({...e,position:t})))}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}})(),e.getTopRows=()=>e._getPinnedRows("top"),e.getBottomRows=()=>e._getPinnedRows("bottom"),e.getCenterRows=s((()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom]),((e,t,n)=>{const r=new Set([...null!=t?t:[],...null!=n?n:[]]);return e.filter((e=>!r.has(e.id)))}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}})}},{getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:o("columnFilters",e),onGlobalFilterChange:o("globalFilter",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=null==(n=e.getCoreRowModel().flatRows[0])||null==(n=n._getAllCellsByColumnId()[t.id])?void 0:n.getValue();return"string"===typeof r||"number"===typeof r}}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=null==n?void 0:n.getValue(e.id);return"string"===typeof r?E.includesString:"number"===typeof r?E.inNumberRange:"boolean"===typeof r||null!==r&&"object"===typeof r?E.equals:Array.isArray(r)?E.arrIncludes:E.weakEquals},e.getFilterFn=()=>{var n,r;return i(e.columnDef.filterFn)?e.columnDef.filterFn:"auto"===e.columnDef.filterFn?e.getAutoFilterFn():null!=(n=null==(r=t.options.filterFns)?void 0:r[e.columnDef.filterFn])?n:E[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,o;return(null==(n=e.columnDef.enableColumnFilter)||n)&&(null==(r=t.options.enableColumnFilters)||r)&&(null==(o=t.options.enableFilters)||o)&&!!e.accessorFn},e.getCanGlobalFilter=()=>{var n,r,o,i;return(null==(n=e.columnDef.enableGlobalFilter)||n)&&(null==(r=t.options.enableGlobalFilter)||r)&&(null==(o=t.options.enableFilters)||o)&&(null==(i=null==t.options.getColumnCanGlobalFilter?void 0:t.options.getColumnCanGlobalFilter(e))||i)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return null==(n=t.getState().columnFilters)||null==(n=n.find((t=>t.id===e.id)))?void 0:n.value},e.getFilterIndex=()=>{var n,r;return null!=(n=null==(r=t.getState().columnFilters)?void 0:r.findIndex((t=>t.id===e.id)))?n:-1},e.setFilterValue=n=>{t.setColumnFilters((t=>{const o=e.getFilterFn(),i=null==t?void 0:t.find((t=>t.id===e.id)),a=r(n,i?i.value:void 0);var s;if(R(o,a,e))return null!=(s=null==t?void 0:t.filter((t=>t.id!==e.id)))?s:[];const u={id:e.id,value:a};var l;return i?null!=(l=null==t?void 0:t.map((t=>t.id===e.id?u:t)))?l:[]:null!=t&&t.length?[...t,u]:[u]}))},e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.getGlobalAutoFilterFn=()=>E.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return i(r)?r:"auto"===r?e.getGlobalAutoFilterFn():null!=(t=null==(n=e.options.filterFns)?void 0:n[r])?t:E[r]},e.setColumnFilters=t=>{const n=e.getAllLeafColumns();null==e.options.onColumnFiltersChange||e.options.onColumnFiltersChange((e=>{var o;return null==(o=r(t,e))?void 0:o.filter((e=>{const t=n.find((t=>t.id===e.id));if(t){if(R(t.getFilterFn(),e.value,t))return!1}return!0}))}))},e.setGlobalFilter=t=>{null==e.options.onGlobalFilterChange||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.columnFilters)?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel()),e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:o("sorting",e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const t of n){const n=null==t?void 0:t.getValue(e.id);if("[object Date]"===Object.prototype.toString.call(n))return j.datetime;if("string"===typeof n&&(r=!0,n.split(I).length>1))return j.alphanumeric}return r?j.text:j.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return"string"===typeof(null==n?void 0:n.getValue(e.id))?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return i(e.columnDef.sortingFn)?e.columnDef.sortingFn:"auto"===e.columnDef.sortingFn?e.getAutoSortingFn():null!=(n=null==(r=t.options.sortingFns)?void 0:r[e.columnDef.sortingFn])?n:j[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const o=e.getNextSortingOrder(),i="undefined"!==typeof n&&null!==n;t.setSorting((a=>{const s=null==a?void 0:a.find((t=>t.id===e.id)),u=null==a?void 0:a.findIndex((t=>t.id===e.id));let l,c=[],f=i?n:"desc"===o;var d;(l=null!=a&&a.length&&e.getCanMultiSort()&&r?s?"toggle":"add":null!=a&&a.length&&u!==a.length-1?"replace":s?"toggle":"replace","toggle"===l&&(i||o||(l="remove")),"add"===l)?(c=[...a,{id:e.id,desc:f}],c.splice(0,c.length-(null!=(d=t.options.maxMultiSortColCount)?d:Number.MAX_SAFE_INTEGER))):c="toggle"===l?a.map((t=>t.id===e.id?{...t,desc:f}:t)):"remove"===l?a.filter((t=>t.id!==e.id)):[{id:e.id,desc:f}];return c}))},e.getFirstSortDir=()=>{var n,r;return(null!=(n=null!=(r=e.columnDef.sortDescFirst)?r:t.options.sortDescFirst)?n:"desc"===e.getAutoSortDir())?"desc":"asc"},e.getNextSortingOrder=n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?!!(a===i||null!=(r=t.options.enableSortingRemoval)&&!r||n&&null!=(o=t.options.enableMultiRemove)&&!o)&&("desc"===a?"asc":"desc"):i},e.getCanSort=()=>{var n,r;return(null==(n=e.columnDef.enableSorting)||n)&&(null==(r=t.options.enableSorting)||r)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return null!=(n=null!=(r=e.columnDef.enableMultiSort)?r:t.options.enableMultiSort)?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=null==(n=t.getState().sorting)?void 0:n.find((t=>t.id===e.id));return!!r&&(r.desc?"desc":"asc")},e.getSortIndex=()=>{var n,r;return null!=(n=null==(r=t.getState().sorting)?void 0:r.findIndex((t=>t.id===e.id)))?n:-1},e.clearSorting=()=>{t.setSorting((t=>null!=t&&t.length?t.filter((t=>t.id!==e.id)):[]))},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(null==r.persist||r.persist(),null==e.toggleSorting||e.toggleSorting(void 0,!!e.getCanMultiSort()&&(null==t.options.isMultiSortEvent?void 0:t.options.isMultiSortEvent(r))))}}},createTable:e=>{e.setSorting=t=>null==e.options.onSortingChange?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.sorting)?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},{getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return null!=(t=null==(n=e.getValue())||null==n.toString?void 0:n.toString())?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:o("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping((t=>null!=t&&t.includes(e.id)?t.filter((t=>t!==e.id)):[...null!=t?t:[],e.id]))},e.getCanGroup=()=>{var n,r,o,i;return null!=(n=null==(r=null!=(o=null==(i=e.columnDef.enableGrouping)||i)?o:t.options.enableGrouping)||r)?n:!!e.accessorFn},e.getIsGrouped=()=>{var n;return null==(n=t.getState().grouping)?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return null==(n=t.getState().grouping)?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=null==n?void 0:n.getValue(e.id);return"number"===typeof r?O.sum:"[object Date]"===Object.prototype.toString.call(r)?O.extent:void 0},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return i(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:"auto"===e.columnDef.aggregationFn?e.getAutoAggregationFn():null!=(n=null==(r=t.options.aggregationFns)?void 0:r[e.columnDef.aggregationFn])?n:O[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>null==e.options.onGroupingChange?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.grouping)?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return null!=r&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!(null==(t=n.subRows)||!t.length)}}},g,{getInitialState:e=>({...e,pagination:{pageIndex:0,pageSize:10,...null==e?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:o("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,o;if(t){if(null!=(r=null!=(o=e.options.autoResetAll)?o:e.options.autoResetPageIndex)?r:!e.options.manualPagination){if(n)return;n=!0,e._queue((()=>{e.resetPageIndex(),n=!1}))}}else e._queue((()=>{t=!0}))},e.setPagination=t=>null==e.options.onPaginationChange?void 0:e.options.onPaginationChange((e=>r(t,e))),e.resetPagination=t=>{var n;e.setPagination(t?{pageIndex:0,pageSize:10}:null!=(n=e.initialState.pagination)?n:{pageIndex:0,pageSize:10})},e.setPageIndex=t=>{e.setPagination((n=>{let o=r(t,n.pageIndex);const i="undefined"===typeof e.options.pageCount||-1===e.options.pageCount?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,i)),{...n,pageIndex:o}}))},e.resetPageIndex=t=>{var n,r;e.setPageIndex(t?0:null!=(n=null==(r=e.initialState)||null==(r=r.pagination)?void 0:r.pageIndex)?n:0)},e.resetPageSize=t=>{var n,r;e.setPageSize(t?10:null!=(n=null==(r=e.initialState)||null==(r=r.pagination)?void 0:r.pageSize)?n:10)},e.setPageSize=t=>{e.setPagination((e=>{const n=Math.max(1,r(t,e.pageSize)),o=e.pageSize*e.pageIndex,i=Math.floor(o/n);return{...e,pageIndex:i,pageSize:n}}))},e.setPageCount=t=>e.setPagination((n=>{var o;let i=r(t,null!=(o=e.options.pageCount)?o:-1);return"number"===typeof i&&(i=Math.max(-1,i)),{...n,pageCount:i}})),e.getPageOptions=s((()=>[e.getPageCount()]),(e=>{let t=[];return e&&e>0&&(t=[...new Array(e)].fill(null).map(((e,t)=>t))),t}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:t}=e.getState().pagination,n=e.getPageCount();return-1===n||0!==n&&t<n-1},e.previousPage=()=>e.setPageIndex((e=>e-1)),e.nextPage=()=>e.setPageIndex((e=>e+1)),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var t;return null!=(t=e.options.pageCount)?t:Math.ceil(e.getPrePaginationRowModel().rows.length/e.getState().pagination.pageSize)}}},T,d];function z(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:U};const o=n._features.reduce(((e,t)=>Object.assign(e,null==t.getDefaultOptions?void 0:t.getDefaultOptions(n))),{});let i={...null!=(t=e.initialState)?t:{}};n._features.forEach((e=>{var t;i=null!=(t=null==e.getInitialState?void 0:e.getInitialState(i))?t:i}));const a=[];let u=!1;const l={_features:U,options:{...o,...e},initialState:i,_queue:e=>{a.push(e),u||(u=!0,Promise.resolve().then((()=>{for(;a.length;)a.shift()();u=!1})).catch((e=>setTimeout((()=>{throw e})))))},reset:()=>{n.setState(n.initialState)},setOptions:e=>{const t=r(e,n.options);n.options=(e=>n.options.mergeOptions?n.options.mergeOptions(o,e):{...o,...e})(t)},getState:()=>n.options.state,setState:e=>{null==n.options.onStateChange||n.options.onStateChange(e)},_getRowId:(e,t,r)=>{var o;return null!=(o=null==n.options.getRowId?void 0:n.options.getRowId(e,t,r))?o:`${r?[r.id,t].join("."):t}`},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:(e,t)=>{const r=(t?n.getCoreRowModel():n.getRowModel()).rowsById[e];if(!r)throw new Error;return r},_getDefaultColumnDef:s((()=>[n.options.defaultColumn]),(e=>{var t;return e=null!=(t=e)?t:{},{header:e=>{const t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t,n;return null!=(t=null==(n=e.renderValue())||null==n.toString?void 0:n.toString())?t:null},...n._features.reduce(((e,t)=>Object.assign(e,null==t.getDefaultColumnDef?void 0:t.getDefaultColumnDef())),{}),...e}}),{debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns},key:!1}),_getColumnDefs:()=>n.options.columns,getAllColumns:s((()=>[n._getColumnDefs()]),(e=>{const t=function(e,r,o){return void 0===o&&(o=0),e.map((e=>{const i=function(e,t,n,r){var o,i;const a={...e._getDefaultColumnDef(),...t},u=a.accessorKey;let l,c=null!=(o=null!=(i=a.id)?i:u?u.replace(".","_"):void 0)?o:"string"===typeof a.header?a.header:void 0;if(a.accessorFn?l=a.accessorFn:u&&(l=u.includes(".")?e=>{let t=e;for(const r of u.split(".")){var n;t=null==(n=t)?void 0:n[r]}return t}:e=>e[a.accessorKey]),!c)throw new Error;let f={id:`${String(c)}`,accessorFn:l,parent:r,depth:n,columnDef:a,columns:[],getFlatColumns:s((()=>[!0]),(()=>{var e;return[f,...null==(e=f.columns)?void 0:e.flatMap((e=>e.getFlatColumns()))]}),{key:"column.getFlatColumns",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),getLeafColumns:s((()=>[e._getOrderColumnsFn()]),(e=>{var t;if(null!=(t=f.columns)&&t.length){let t=f.columns.flatMap((e=>e.getLeafColumns()));return e(t)}return[f]}),{key:"column.getLeafColumns",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}})};for(const s of e._features)null==s.createColumn||s.createColumn(f,e);return f}(n,e,o,r),a=e;return i.columns=a.columns?t(a.columns,i,o+1):[],i}))};return t(e)}),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getAllFlatColumns:s((()=>[n.getAllColumns()]),(e=>e.flatMap((e=>e.getFlatColumns()))),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),_getAllFlatColumnsById:s((()=>[n.getAllFlatColumns()]),(e=>e.reduce(((e,t)=>(e[t.id]=t,e)),{})),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getAllLeafColumns:s((()=>[n.getAllColumns(),n._getOrderColumnsFn()]),((e,t)=>t(e.flatMap((e=>e.getLeafColumns())))),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getColumn:e=>n._getAllFlatColumnsById()[e]};Object.assign(n,l);for(let r=0;r<n._features.length;r++){const e=n._features[r];null==e||null==e.createTable||e.createTable(n)}return n}const B=(e,t,n,r,o,i,u)=>{let l={id:t,index:r,original:n,depth:o,parentId:u,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(l._valuesCache.hasOwnProperty(t))return l._valuesCache[t];const n=e.getColumn(t);return null!=n&&n.accessorFn?(l._valuesCache[t]=n.accessorFn(l.original,r),l._valuesCache[t]):void 0},getUniqueValues:t=>{if(l._uniqueValuesCache.hasOwnProperty(t))return l._uniqueValuesCache[t];const n=e.getColumn(t);return null!=n&&n.accessorFn?n.columnDef.getUniqueValues?(l._uniqueValuesCache[t]=n.columnDef.getUniqueValues(l.original,r),l._uniqueValuesCache[t]):(l._uniqueValuesCache[t]=[l.getValue(t)],l._uniqueValuesCache[t]):void 0},renderValue:t=>{var n;return null!=(n=l.getValue(t))?n:e.options.renderFallbackValue},subRows:null!=i?i:[],getLeafRows:()=>a(l.subRows,(e=>e.subRows)),getParentRow:()=>l.parentId?e.getRow(l.parentId,!0):void 0,getParentRows:()=>{let e=[],t=l;for(;;){const n=t.getParentRow();if(!n)break;e.push(n),t=n}return e.reverse()},getAllCells:s((()=>[e.getAllLeafColumns()]),(t=>t.map((t=>function(e,t,n,r){const o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:()=>{var t;return null!=(t=o.getValue())?t:e.options.renderFallbackValue},getContext:s((()=>[e,n,t,o]),((e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue})),{key:!1,debug:()=>e.options.debugAll})};return e._features.forEach((r=>{null==r.createCell||r.createCell(o,n,t,e)}),{}),o}(e,l,t,t.id)))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}}),_getAllCellsByColumnId:s((()=>[l.getAllCells()]),(e=>e.reduce(((e,t)=>(e[t.column.id]=t,e)),{})),{key:"row.getAllCellsByColumnId",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}})};for(let a=0;a<e._features.length;a++){const t=e._features[a];null==t||null==t.createRow||t.createRow(l,e)}return l};function V(){return e=>s((()=>[e.options.data]),(t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(t,o,i){void 0===o&&(o=0);const a=[];for(let u=0;u<t.length;u++){const l=B(e,e._getRowId(t[u],u,i),t[u],u,o,void 0,null==i?void 0:i.id);var s;if(n.flatRows.push(l),n.rowsById[l.id]=l,a.push(l),e.options.getSubRows)l.originalSubRows=e.options.getSubRows(t[u],u),null!=(s=l.originalSubRows)&&s.length&&(l.subRows=r(l.originalSubRows,o+1,l))}return a};return n.rows=r(t),n}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function H(e,t,n){return n.options.filterFromLeafRows?function(e,t,n){var r;const o=[],i={},a=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,s=function(e,r){void 0===r&&(r=0);const u=[];for(let c=0;c<e.length;c++){var l;let f=e[c];const d=B(n,f.id,f.original,f.index,f.depth,void 0,f.parentId);if(d.columnFilters=f.columnFilters,null!=(l=f.subRows)&&l.length&&r<a){if(d.subRows=s(f.subRows,r+1),f=d,t(f)&&!d.subRows.length){u.push(f),i[f.id]=f,o.push(f);continue}if(t(f)||d.subRows.length){u.push(f),i[f.id]=f,o.push(f);continue}}else f=d,t(f)&&(u.push(f),i[f.id]=f,o.push(f))}return u};return{rows:s(e),flatRows:o,rowsById:i}}(e,t,n):function(e,t,n){var r;const o=[],i={},a=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,s=function(e,r){void 0===r&&(r=0);const u=[];for(let c=0;c<e.length;c++){let f=e[c];if(t(f)){var l;if(null!=(l=f.subRows)&&l.length&&r<a){const e=B(n,f.id,f.original,f.index,f.depth,void 0,f.parentId);e.subRows=s(f.subRows,r+1),f=e}u.push(f),o.push(f),i[f.id]=f}}return u};return{rows:s(e),flatRows:o,rowsById:i}}(e,t,n)}function $(){return e=>s((()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter]),((t,n,r)=>{if(!t.rows.length||(null==n||!n.length)&&!r){for(let e=0;e<t.flatRows.length;e++)t.flatRows[e].columnFilters={},t.flatRows[e].columnFiltersMeta={};return t}const o=[],i=[];(null!=n?n:[]).forEach((t=>{var n;const r=e.getColumn(t.id);if(!r)return;const i=r.getFilterFn();i&&o.push({id:t.id,filterFn:i,resolvedValue:null!=(n=null==i.resolveFilterValue?void 0:i.resolveFilterValue(t.value))?n:t.value})}));const a=n.map((e=>e.id)),s=e.getGlobalFilterFn(),u=e.getAllLeafColumns().filter((e=>e.getCanGlobalFilter()));let l,c;r&&s&&u.length&&(a.push("__global__"),u.forEach((e=>{var t;i.push({id:e.id,filterFn:s,resolvedValue:null!=(t=null==s.resolveFilterValue?void 0:s.resolveFilterValue(r))?t:r})})));for(let e=0;e<t.flatRows.length;e++){const n=t.flatRows[e];if(n.columnFilters={},o.length)for(let e=0;e<o.length;e++){l=o[e];const t=l.id;n.columnFilters[t]=l.filterFn(n,t,l.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))}if(i.length){for(let e=0;e<i.length;e++){c=i[e];const t=c.id;if(c.filterFn(n,t,c.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))){n.columnFilters.__global__=!0;break}}!0!==n.columnFilters.__global__&&(n.columnFilters.__global__=!1)}}return H(t.rows,(e=>{for(let t=0;t<a.length;t++)if(!1===e.columnFilters[a[t]])return!1;return!0}),e)}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function W(){return e=>s((()=>[e.getState().sorting,e.getPreSortedRowModel()]),((t,n)=>{if(!n.rows.length||null==t||!t.length)return n;const r=e.getState().sorting,o=[],i=r.filter((t=>{var n;return null==(n=e.getColumn(t.id))?void 0:n.getCanSort()})),a={};i.forEach((t=>{const n=e.getColumn(t.id);n&&(a[t.id]={sortUndefined:n.columnDef.sortUndefined,invertSorting:n.columnDef.invertSorting,sortingFn:n.getSortingFn()})}));const s=e=>{const t=e.map((e=>({...e})));return t.sort(((e,t)=>{for(let r=0;r<i.length;r+=1){var n;const o=i[r],s=a[o.id],u=null!=(n=null==o?void 0:o.desc)&&n;let l=0;if(s.sortUndefined){const n=void 0===e.getValue(o.id),r=void 0===t.getValue(o.id);(n||r)&&(l=n&&r?0:n?s.sortUndefined:-s.sortUndefined)}if(0===l&&(l=s.sortingFn(e,t,o.id)),0!==l)return u&&(l*=-1),s.invertSorting&&(l*=-1),l}return e.index-t.index})),t.forEach((e=>{var t;o.push(e),null!=(t=e.subRows)&&t.length&&(e.subRows=s(e.subRows))})),t};return{rows:s(n.rows),flatRows:o,rowsById:n.rowsById}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function G(){return e=>s((()=>[e.getState().grouping,e.getPreGroupedRowModel()]),((t,n)=>{if(!n.rows.length||!t.length)return n;const r=t.filter((t=>e.getColumn(t))),o=[],i={},s=function(t,n,u){if(void 0===n&&(n=0),n>=r.length)return t.map((e=>(e.depth=n,o.push(e),i[e.id]=e,e.subRows&&(e.subRows=s(e.subRows,n+1,e.id)),e)));const l=r[n],c=function(e,t){const n=new Map;return e.reduce(((e,n)=>{const r=`${n.getGroupingValue(t)}`,o=e.get(r);return o?o.push(n):e.set(r,[n]),e}),n)}(t,l),f=Array.from(c.entries()).map(((t,c)=>{let[f,d]=t,h=`${l}:${f}`;h=u?`${u}>${h}`:h;const p=s(d,n+1,h),g=n?a(d,(e=>e.subRows)):d,v=B(e,h,g[0].original,c,n,void 0,u);return Object.assign(v,{groupingColumnId:l,groupingValue:f,subRows:p,leafRows:g,getValue:t=>{if(r.includes(t)){if(v._valuesCache.hasOwnProperty(t))return v._valuesCache[t];var n;if(d[0])v._valuesCache[t]=null!=(n=d[0].getValue(t))?n:void 0;return v._valuesCache[t]}if(v._groupingValuesCache.hasOwnProperty(t))return v._groupingValuesCache[t];const o=e.getColumn(t),i=null==o?void 0:o.getAggregationFn();return i?(v._groupingValuesCache[t]=i(t,g,d),v._groupingValuesCache[t]):void 0}}),p.forEach((e=>{o.push(e),i[e.id]=e})),v}));return f},u=s(n.rows,0);return u.forEach((e=>{o.push(e),i[e.id]=e})),{rows:u,flatRows:o,rowsById:i}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._queue((()=>{e._autoResetExpanded(),e._autoResetPageIndex()}))}})}function q(){return e=>s((()=>[e.getState().expanded,e.getPreExpandedRowModel(),e.options.paginateExpandedRows]),((e,t,n)=>!t.rows.length||!0!==e&&!Object.keys(null!=e?e:{}).length?t:n?Y(t):t),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}})}function Y(e){const t=[],n=e=>{var r;t.push(e),null!=(r=e.subRows)&&r.length&&e.getIsExpanded()&&e.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function X(e){return e=>s((()=>[e.getState().pagination,e.getPrePaginationRowModel(),e.options.paginateExpandedRows?void 0:e.getState().expanded]),((t,n)=>{if(!n.rows.length)return n;const{pageSize:r,pageIndex:o}=t;let{rows:i,flatRows:a,rowsById:s}=n;const u=r*o,l=u+r;let c;i=i.slice(u,l),c=e.options.paginateExpandedRows?{rows:i,flatRows:a,rowsById:s}:Y({rows:i,flatRows:a,rowsById:s}),c.flatRows=[];const f=e=>{c.flatRows.push(e),e.subRows.length&&e.subRows.forEach(f)};return c.rows.forEach(f),c}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}})}},46266:(e,t,n)=>{"use strict";n.d(t,{A:()=>qe});var r={};function o(e,t){return function(){return e.apply(t,arguments)}}n.r(r),n.d(r,{hasBrowserEnv:()=>re,hasStandardBrowserEnv:()=>oe,hasStandardBrowserWebWorkerEnv:()=>ae});const{toString:i}=Object.prototype,{getPrototypeOf:a}=Object,s=(u=Object.create(null),e=>{const t=i.call(e);return u[t]||(u[t]=t.slice(8,-1).toLowerCase())});var u;const l=e=>(e=e.toLowerCase(),t=>s(t)===e),c=e=>t=>typeof t===e,{isArray:f}=Array,d=c("undefined");const h=l("ArrayBuffer");const p=c("string"),g=c("function"),v=c("number"),y=e=>null!==e&&"object"===typeof e,m=e=>{if("object"!==s(e))return!1;const t=a(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},b=l("Date"),_=l("File"),w=l("Blob"),x=l("FileList"),S=l("URLSearchParams");function A(e,t,{allOwnKeys:n=!1}={}){if(null===e||"undefined"===typeof e)return;let r,o;if("object"!==typeof e&&(e=[e]),f(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let a;for(r=0;r<i;r++)a=o[r],t.call(null,e[a],a,e)}}function E(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,o=n.length;for(;o-- >0;)if(r=n[o],t===r.toLowerCase())return r;return null}const C="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global,R=e=>!d(e)&&e!==C;const O=(T="undefined"!==typeof Uint8Array&&a(Uint8Array),e=>T&&e instanceof T);var T;const k=l("HTMLFormElement"),M=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),P=l("RegExp"),N=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};A(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},I="abcdefghijklmnopqrstuvwxyz",L="0123456789",D={DIGIT:L,ALPHA:I,ALPHA_DIGIT:I+I.toUpperCase()+L};const F=l("AsyncFunction"),j={isArray:f,isArrayBuffer:h,isBuffer:function(e){return null!==e&&!d(e)&&null!==e.constructor&&!d(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=s(e))||"object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&h(e.buffer),t},isString:p,isNumber:v,isBoolean:e=>!0===e||!1===e,isObject:y,isPlainObject:m,isUndefined:d,isDate:b,isFile:_,isBlob:w,isRegExp:P,isFunction:g,isStream:e=>y(e)&&g(e.pipe),isURLSearchParams:S,isTypedArray:O,isFileList:x,forEach:A,merge:function e(){const{caseless:t}=R(this)&&this||{},n={},r=(r,o)=>{const i=t&&E(n,o)||o;m(n[i])&&m(r)?n[i]=e(n[i],r):m(r)?n[i]=e({},r):f(r)?n[i]=r.slice():n[i]=r};for(let o=0,i=arguments.length;o<i;o++)arguments[o]&&A(arguments[o],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(A(t,((t,r)=>{n&&g(t)?e[r]=o(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,i,s;const u={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)s=o[i],r&&!r(s,e,t)||u[s]||(t[s]=e[s],u[s]=!0);e=!1!==n&&a(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:s,kindOfTest:l,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(f(e))return e;let t=e.length;if(!v(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:k,hasOwnProperty:M,hasOwnProp:M,reduceDescriptors:N,freezeMethods:e=>{N(e,((t,n)=>{if(g(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];g(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return f(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:E,global:C,isContextDefined:R,ALPHABET:D,generateString:(e=16,t=D.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&g(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(y(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=f(e)?[]:{};return A(e,((e,t)=>{const i=n(e,r+1);!d(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:F,isThenable:e=>e&&(y(e)||g(e))&&g(e.then)&&g(e.catch)};function U(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}j.inherits(U,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:j.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const z=U.prototype,B={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{B[e]={value:e}})),Object.defineProperties(U,B),Object.defineProperty(z,"isAxiosError",{value:!0}),U.from=(e,t,n,r,o,i)=>{const a=Object.create(z);return j.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),U.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const V=U;function H(e){return j.isPlainObject(e)||j.isArray(e)}function $(e){return j.endsWith(e,"[]")?e.slice(0,-2):e}function W(e,t,n){return e?e.concat(t).map((function(e,t){return e=$(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const G=j.toFlatObject(j,{},null,(function(e){return/^is[A-Z]/.test(e)}));const q=function(e,t,n){if(!j.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=j.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!j.isUndefined(t[e])}))).metaTokens,o=n.visitor||l,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!==typeof Blob&&Blob)&&j.isSpecCompliantForm(t);if(!j.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(j.isDate(e))return e.toISOString();if(!s&&j.isBlob(e))throw new V("Blob is not supported. Use a Buffer instead.");return j.isArrayBuffer(e)||j.isTypedArray(e)?s&&"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}function l(e,n,o){let s=e;if(e&&!o&&"object"===typeof e)if(j.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(j.isArray(e)&&function(e){return j.isArray(e)&&!e.some(H)}(e)||(j.isFileList(e)||j.endsWith(n,"[]"))&&(s=j.toArray(e)))return n=$(n),s.forEach((function(e,r){!j.isUndefined(e)&&null!==e&&t.append(!0===a?W([n],r,i):null===a?n:n+"[]",u(e))})),!1;return!!H(e)||(t.append(W(o,n,i),u(e)),!1)}const c=[],f=Object.assign(G,{defaultVisitor:l,convertValue:u,isVisitable:H});if(!j.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!j.isUndefined(n)){if(-1!==c.indexOf(n))throw Error("Circular reference detected in "+r.join("."));c.push(n),j.forEach(n,(function(n,i){!0===(!(j.isUndefined(n)||null===n)&&o.call(t,n,j.isString(i)?i.trim():i,r,f))&&e(n,r?r.concat(i):[i])})),c.pop()}}(e),t};function Y(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function X(e,t){this._pairs=[],e&&q(e,this,t)}const Z=X.prototype;Z.append=function(e,t){this._pairs.push([e,t])},Z.toString=function(e){const t=e?function(t){return e.call(this,t,Y)}:Y;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const K=X;function Q(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function J(e,t,n){if(!t)return e;const r=n&&n.encode||Q,o=n&&n.serialize;let i;if(i=o?o(t,n):j.isURLSearchParams(t)?t.toString():new K(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}const ee=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){j.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},te={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ne={isBrowser:!0,classes:{URLSearchParams:"undefined"!==typeof URLSearchParams?URLSearchParams:K,FormData:"undefined"!==typeof FormData?FormData:null,Blob:"undefined"!==typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},re="undefined"!==typeof window&&"undefined"!==typeof document,oe=(ie="undefined"!==typeof navigator&&navigator.product,re&&["ReactNative","NativeScript","NS"].indexOf(ie)<0);var ie;const ae="undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts,se={...r,...ne};const ue=function(e){function t(e,n,r,o){let i=e[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;if(i=!i&&j.isArray(r)?r.length:i,s)return j.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&j.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],o)&&j.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r<o;r++)i=n[r],t[i]=e[i];return t}(r[i])),!a}if(j.isFormData(e)&&j.isFunction(e.entries)){const n={};return j.forEachEntry(e,((e,r)=>{t(function(e){return j.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null};const le={transitional:te,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=j.isObject(e);o&&j.isHTMLForm(e)&&(e=new FormData(e));if(j.isFormData(e))return r?JSON.stringify(ue(e)):e;if(j.isArrayBuffer(e)||j.isBuffer(e)||j.isStream(e)||j.isFile(e)||j.isBlob(e))return e;if(j.isArrayBufferView(e))return e.buffer;if(j.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return q(e,new se.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return se.isNode&&j.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=j.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return q(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(j.isString(e))try{return(t||JSON.parse)(e),j.trim(e)}catch(r){if("SyntaxError"!==r.name)throw r}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||le.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&j.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(o){if(n){if("SyntaxError"===o.name)throw V.from(o,V.ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:se.classes.FormData,Blob:se.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};j.forEach(["delete","get","head","post","put","patch"],(e=>{le.headers[e]={}}));const ce=le,fe=j.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),de=Symbol("internals");function he(e){return e&&String(e).trim().toLowerCase()}function pe(e){return!1===e||null==e?e:j.isArray(e)?e.map(pe):String(e)}function ge(e,t,n,r,o){return j.isFunction(r)?r.call(this,t,n):(o&&(t=n),j.isString(t)?j.isString(r)?-1!==t.indexOf(r):j.isRegExp(r)?r.test(t):void 0:void 0)}class ve{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=he(t);if(!o)throw new Error("header name must be a non-empty string");const i=j.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=pe(e))}const i=(e,t)=>j.forEach(e,((e,n)=>o(e,n,t)));return j.isPlainObject(e)||e instanceof this.constructor?i(e,t):j.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&fe[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&o(t,e,n),this}get(e,t){if(e=he(e)){const n=j.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(j.isFunction(t))return t.call(this,e,n);if(j.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=he(e)){const n=j.findKey(this,e);return!(!n||void 0===this[n]||t&&!ge(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=he(e)){const o=j.findKey(n,e);!o||t&&!ge(0,n[o],o,t)||(delete n[o],r=!0)}}return j.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!ge(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return j.forEach(this,((r,o)=>{const i=j.findKey(n,o);if(i)return t[i]=pe(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=pe(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return j.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&j.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[de]=this[de]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=he(e);t[r]||(!function(e,t){const n=j.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return j.isArray(e)?e.forEach(r):r(e),this}}ve.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),j.reduceDescriptors(ve.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),j.freezeMethods(ve);const ye=ve;function me(e,t){const n=this||ce,r=t||n,o=ye.from(r.headers);let i=r.data;return j.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function be(e){return!(!e||!e.__CANCEL__)}function _e(e,t,n){V.call(this,null==e?"canceled":e,V.ERR_CANCELED,t,n),this.name="CanceledError"}j.inherits(_e,V,{__CANCEL__:!0});const we=_e;const xe=se.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];j.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),j.isString(r)&&a.push("path="+r),j.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Se(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Ae=se.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=j.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};const Ee=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),l=r[a];o||(o=u),n[i]=s,r[i]=u;let c=a,f=0;for(;c!==i;)f+=n[c++],c%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),u-o<t)return;const d=l&&u-l;return d?Math.round(1e3*f/d):void 0}};function Ce(e,t){let n=0;const r=Ee(50,250);return o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-n,u=r(s);n=i;const l={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:o};l[t?"download":"upload"]=!0,e(l)}}const Re={http:null,xhr:"undefined"!==typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const o=ye.from(e.headers).normalize();let i,a,{responseType:s,withXSRFToken:u}=e;function l(){e.cancelToken&&e.cancelToken.unsubscribe(i),e.signal&&e.signal.removeEventListener("abort",i)}if(j.isFormData(r))if(se.hasStandardBrowserEnv||se.hasStandardBrowserWebWorkerEnv)o.setContentType(!1);else if(!1!==(a=o.getContentType())){const[e,...t]=a?a.split(";").map((e=>e.trim())).filter(Boolean):[];o.setContentType([e||"multipart/form-data",...t].join("; "))}let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+n))}const f=Se(e.baseURL,e.url);function d(){if(!c)return;const r=ye.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new V("Request failed with status code "+n.status,[V.ERR_BAD_REQUEST,V.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),l()}),(function(e){n(e),l()}),{data:s&&"text"!==s&&"json"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:r,config:e,request:c}),c=null}if(c.open(e.method.toUpperCase(),J(f,e.params,e.paramsSerializer),!0),c.timeout=e.timeout,"onloadend"in c?c.onloadend=d:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(d)},c.onabort=function(){c&&(n(new V("Request aborted",V.ECONNABORTED,e,c)),c=null)},c.onerror=function(){n(new V("Network Error",V.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||te;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new V(t,r.clarifyTimeoutError?V.ETIMEDOUT:V.ECONNABORTED,e,c)),c=null},se.hasStandardBrowserEnv&&(u&&j.isFunction(u)&&(u=u(e)),u||!1!==u&&Ae(f))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&xe.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===r&&o.setContentType(null),"setRequestHeader"in c&&j.forEach(o.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),j.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),s&&"json"!==s&&(c.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&c.addEventListener("progress",Ce(e.onDownloadProgress,!0)),"function"===typeof e.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",Ce(e.onUploadProgress)),(e.cancelToken||e.signal)&&(i=t=>{c&&(n(!t||t.type?new we(null,e,c):t),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(i),e.signal&&(e.signal.aborted?i():e.signal.addEventListener("abort",i)));const h=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(f);h&&-1===se.protocols.indexOf(h)?n(new V("Unsupported protocol "+h+":",V.ERR_BAD_REQUEST,e)):c.send(r||null)}))}};j.forEach(Re,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(n){}Object.defineProperty(e,"adapterName",{value:t})}}));const Oe=e=>`- ${e}`,Te=e=>j.isFunction(e)||null===e||!1===e,ke=e=>{e=j.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i<t;i++){let t;if(n=e[i],r=n,!Te(n)&&(r=Re[(t=String(n)).toLowerCase()],void 0===r))throw new V(`Unknown adapter '${t}'`);if(r)break;o[t||"#"+i]=r}if(!r){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let n=t?e.length>1?"since :\n"+e.map(Oe).join("\n"):" "+Oe(e[0]):"as no adapter specified";throw new V("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return r};function Me(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new we(null,e)}function Pe(e){Me(e),e.headers=ye.from(e.headers),e.data=me.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return ke(e.adapter||ce.adapter)(e).then((function(t){return Me(e),t.data=me.call(e,e.transformResponse,t),t.headers=ye.from(t.headers),t}),(function(t){return be(t)||(Me(e),t&&t.response&&(t.response.data=me.call(e,e.transformResponse,t.response),t.response.headers=ye.from(t.response.headers))),Promise.reject(t)}))}const Ne=e=>e instanceof ye?e.toJSON():e;function Ie(e,t){t=t||{};const n={};function r(e,t,n){return j.isPlainObject(e)&&j.isPlainObject(t)?j.merge.call({caseless:n},e,t):j.isPlainObject(t)?j.merge({},t):j.isArray(t)?t.slice():t}function o(e,t,n){return j.isUndefined(t)?j.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function i(e,t){if(!j.isUndefined(t))return r(void 0,t)}function a(e,t){return j.isUndefined(t)?j.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(Ne(e),Ne(t),!0)};return j.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=u[r]||o,a=i(e[r],t[r],r);j.isUndefined(a)&&i!==s||(n[r]=a)})),n}const Le="1.6.7",De={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{De[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Fe={};De.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.7] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new V(r(o," has been removed"+(t?" in "+t:"")),V.ERR_DEPRECATED);return t&&!Fe[o]&&(Fe[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}};const je={assertOptions:function(e,t,n){if("object"!==typeof e)throw new V("options must be an object",V.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new V("option "+i+" must be "+n,V.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new V("Unknown option "+i,V.ERR_BAD_OPTION)}},validators:De},Ue=je.validators;class ze{constructor(e){this.defaults=e,this.interceptors={request:new ee,response:new ee}}async request(e,t){try{return await this._request(e,t)}catch(n){if(n instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const t=e.stack?e.stack.replace(/^.+\n/,""):"";n.stack?t&&!String(n.stack).endsWith(t.replace(/^.+\n.+\n/,""))&&(n.stack+="\n"+t):n.stack=t}throw n}}_request(e,t){"string"===typeof e?(t=t||{}).url=e:t=e||{},t=Ie(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&je.assertOptions(n,{silentJSONParsing:Ue.transitional(Ue.boolean),forcedJSONParsing:Ue.transitional(Ue.boolean),clarifyTimeoutError:Ue.transitional(Ue.boolean)},!1),null!=r&&(j.isFunction(r)?t.paramsSerializer={serialize:r}:je.assertOptions(r,{encode:Ue.function,serialize:Ue.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&j.merge(o.common,o[t.method]);o&&j.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=ye.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const u=[];let l;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let c,f=0;if(!s){const e=[Pe.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,u),c=e.length,l=Promise.resolve(t);f<c;)l=l.then(e[f++],e[f++]);return l}c=a.length;let d=t;for(f=0;f<c;){const e=a[f++],t=a[f++];try{d=e(d)}catch(h){t.call(this,h);break}}try{l=Pe.call(this,d)}catch(h){return Promise.reject(h)}for(f=0,c=u.length;f<c;)l=l.then(u[f++],u[f++]);return l}getUri(e){return J(Se((e=Ie(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}j.forEach(["delete","get","head","options"],(function(e){ze.prototype[e]=function(t,n){return this.request(Ie(n||{},{method:e,url:t,data:(n||{}).data}))}})),j.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(Ie(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}ze.prototype[e]=t(),ze.prototype[e+"Form"]=t(!0)}));const Be=ze;class Ve{constructor(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new we(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Ve((function(t){e=t})),cancel:e}}}const He=Ve;const $e={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries($e).forEach((([e,t])=>{$e[t]=e}));const We=$e;const Ge=function e(t){const n=new Be(t),r=o(Be.prototype.request,n);return j.extend(r,Be.prototype,n,{allOwnKeys:!0}),j.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Ie(t,n))},r}(ce);Ge.Axios=Be,Ge.CanceledError=we,Ge.CancelToken=He,Ge.isCancel=be,Ge.VERSION=Le,Ge.toFormData=q,Ge.AxiosError=V,Ge.Cancel=Ge.CanceledError,Ge.all=function(e){return Promise.all(e)},Ge.spread=function(e){return function(t){return e.apply(null,t)}},Ge.isAxiosError=function(e){return j.isObject(e)&&!0===e.isAxiosError},Ge.mergeConfig=Ie,Ge.AxiosHeaders=ye,Ge.formToJSON=e=>ue(j.isHTMLForm(e)?new FormData(e):e),Ge.getAdapter=ke,Ge.HttpStatusCode=We,Ge.default=Ge;const qe=Ge},12902:(e,t,n)=>{"use strict";function r(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}n.d(t,{A:()=>r})},52016:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>c,Jj:()=>s,WD:()=>l,ah:()=>u});var r=n(12902),o=n(86037),i=n(83131);const a=(0,o.A)(r.A),s=a.right,u=a.left,l=(0,o.A)(i.A).center,c=s},86037:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(12902),o=n(41180);function i(e){let t,n,i;function s(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<0?o=t+1:i=t}while(o<i)}return o}return 2!==e.length?(t=r.A,n=(t,n)=>(0,r.A)(e(t),n),i=(t,n)=>e(t)-n):(t=e===r.A||e===o.A?e:a,n=e,i=e),{left:s,center:function(e,t,n=0,r=e.length){const o=s(e,t,n,r-1);return o>n&&i(e[o-1],t)>-i(e[o],t)?o-1:o},right:function(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<=0?o=t+1:i=t}while(o<i)}return o}}}function a(){return 0}},41180:(e,t,n)=>{"use strict";function r(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}n.d(t,{A:()=>r})},36205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(12902);function o(e,t=r.A){let n,o=!1;if(1===t.length){let i;for(const a of e){const e=t(a);(o?(0,r.A)(e,i)>0:0===(0,r.A)(e,e))&&(n=a,i=e,o=!0)}}else for(const r of e)(o?t(r,n)>0:0===t(r,r))&&(n=r,o=!0);return n}},30846:(e,t,n)=>{"use strict";function r(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n<r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}n.d(t,{A:()=>r})},4504:(e,t,n)=>{"use strict";function r(e,t){let n,r=-1,o=-1;if(void 0===t)for(const i of e)++o,null!=i&&(n<i||void 0===n&&i>=i)&&(n=i,r=o);else for(let i of e)null!=(i=t(i,++o,e))&&(n<i||void 0===n&&i>=i)&&(n=i,r=o);return r}n.d(t,{A:()=>r})},49216:(e,t,n)=>{"use strict";function r(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n>r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}n.d(t,{A:()=>r})},98026:(e,t,n)=>{"use strict";function r(e,t){let n,r=-1,o=-1;if(void 0===t)for(const i of e)++o,null!=i&&(n>i||void 0===n&&i>=i)&&(n=i,r=o);else for(let i of e)null!=(i=t(i,++o,e))&&(n>i||void 0===n&&i>=i)&&(n=i,r=o);return r}n.d(t,{A:()=>r})},83131:(e,t,n)=>{"use strict";function r(e){return null===e?NaN:+e}function*o(e,t){if(void 0===t)for(let n of e)null!=n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r=+r)>=r&&(yield r)}}n.d(t,{A:()=>r,n:()=>o})},78314:(e,t,n)=>{"use strict";function r(e,t){return Array.from(t,(t=>e[t]))}n.d(t,{A:()=>r})},84855:(e,t,n)=>{"use strict";n.d(t,{AX:()=>h,Ay:()=>f,Z4:()=>d});var r=n(30846),o=n(4504),i=n(49216),a=n(98026),s=n(15671),u=n(83131),l=n(68886),c=n(36205);function f(e,t,n){if((o=(e=Float64Array.from((0,u.n)(e,n))).length)&&!isNaN(t=+t)){if(t<=0||o<2)return(0,i.A)(e);if(t>=1)return(0,r.A)(e);var o,a=(o-1)*t,l=Math.floor(a),c=(0,r.A)((0,s.A)(e,l).subarray(0,l+1));return c+((0,i.A)(e.subarray(l+1))-c)*(a-l)}}function d(e,t,n=u.A){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,o=(r-1)*t,i=Math.floor(o),a=+n(e[i],i,e);return a+(+n(e[i+1],i+1,e)-a)*(o-i)}}function h(e,t,n){if((r=(e=Float64Array.from((0,u.n)(e,n))).length)&&!isNaN(t=+t)){if(t<=0||r<2)return(0,a.A)(e);if(t>=1)return(0,o.A)(e);var r,i=Math.floor((r-1)*t),f=(0,s.A)(Uint32Array.from(e,((e,t)=>t)),i,0,r-1,((t,n)=>(0,l.o2)(e[t],e[n])));return(0,c.A)(f.subarray(0,i+1),(t=>e[t]))}}},15671:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(68886);function o(e,t,n=0,a=1/0,s){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),a=Math.floor(Math.min(e.length-1,a)),!(n<=t&&t<=a))return e;for(s=void 0===s?r.o2:(0,r.JC)(s);a>n;){if(a-n>600){const r=a-n+1,i=t-n+1,u=Math.log(r),l=.5*Math.exp(2*u/3),c=.5*Math.sqrt(u*l*(r-l)/r)*(i-r/2<0?-1:1);o(e,t,Math.max(n,Math.floor(t-i*l/r+c)),Math.min(a,Math.floor(t+(r-i)*l/r+c)),s)}const r=e[t];let u=n,l=a;for(i(e,n,t),s(e[a],r)>0&&i(e,n,a);u<l;){for(i(e,u,l),++u,--l;s(e[u],r)<0;)++u;for(;s(e[l],r)>0;)--l}0===s(e[n],r)?i(e,n,l):(++l,i(e,l,a)),l<=t&&(n=l+1),t<=l&&(a=l-1)}return e}function i(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}},6561:(e,t,n)=>{"use strict";function r(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(o);++r<o;)i[r]=e+r*n;return i}n.d(t,{A:()=>r})},68886:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>i,JC:()=>a,o2:()=>s});var r=n(12902),o=n(78314);function i(e,...t){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");e=Array.from(e);let[n]=t;if(n&&2!==n.length||t.length>1){const r=Uint32Array.from(e,((e,t)=>t));return t.length>1?(t=t.map((t=>e.map(t))),r.sort(((e,n)=>{for(const r of t){const t=s(r[e],r[n]);if(t)return t}}))):(n=e.map(n),r.sort(((e,t)=>s(n[e],n[t])))),(0,o.A)(e,r)}return e.sort(a(n))}function a(e=r.A){if(e===r.A)return s;if("function"!==typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}function s(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}},6946:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,lq:()=>u,sG:()=>l});const r=Math.sqrt(50),o=Math.sqrt(10),i=Math.sqrt(2);function a(e,t,n){const s=(t-e)/Math.max(0,n),u=Math.floor(Math.log10(s)),l=s/Math.pow(10,u),c=l>=r?10:l>=o?5:l>=i?2:1;let f,d,h;return u<0?(h=Math.pow(10,-u)/c,f=Math.round(e*h),d=Math.round(t*h),f/h<e&&++f,d/h>t&&--d,h=-h):(h=Math.pow(10,u)*c,f=Math.round(e/h),d=Math.round(t/h),f*h<e&&++f,d*h>t&&--d),d<f&&.5<=n&&n<2?a(e,t,2*n):[f,d,h]}function s(e,t,n){if(!((n=+n)>0))return[];if((e=+e)===(t=+t))return[e];const r=t<e,[o,i,s]=r?a(t,e,n):a(e,t,n);if(!(i>=o))return[];const u=i-o+1,l=new Array(u);if(r)if(s<0)for(let a=0;a<u;++a)l[a]=(i-a)/-s;else for(let a=0;a<u;++a)l[a]=(i-a)*s;else if(s<0)for(let a=0;a<u;++a)l[a]=(o+a)/-s;else for(let a=0;a<u;++a)l[a]=(o+a)*s;return l}function u(e,t,n){return a(e=+e,t=+t,n=+n)[2]}function l(e,t,n){n=+n;const r=(t=+t)<(e=+e),o=r?u(t,e,n):u(e,t,n);return(r?-1:1)*(o<0?1/-o:o)}},46957:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>_,Gw:()=>E,KI:()=>N,Q1:()=>o,Qh:()=>A,Uw:()=>a,b:()=>S,ef:()=>i});var r=n(40871);function o(){}var i=.7,a=1/i,s="\\s*([+-]?\\d+)\\s*",u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",l="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",c=/^#([0-9a-f]{3,8})$/,f=new RegExp(`^rgb\\(${s},${s},${s}\\)$`),d=new RegExp(`^rgb\\(${l},${l},${l}\\)$`),h=new RegExp(`^rgba\\(${s},${s},${s},${u}\\)$`),p=new RegExp(`^rgba\\(${l},${l},${l},${u}\\)$`),g=new RegExp(`^hsl\\(${u},${l},${l}\\)$`),v=new RegExp(`^hsla\\(${u},${l},${l},${u}\\)$`),y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function m(){return this.rgb().formatHex()}function b(){return this.rgb().formatRgb()}function _(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=c.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?w(t):3===n?new E(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?x(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?x(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=f.exec(e))?new E(t[1],t[2],t[3],1):(t=d.exec(e))?new E(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=h.exec(e))?x(t[1],t[2],t[3],t[4]):(t=p.exec(e))?x(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=g.exec(e))?M(t[1],t[2]/100,t[3]/100,1):(t=v.exec(e))?M(t[1],t[2]/100,t[3]/100,t[4]):y.hasOwnProperty(e)?w(y[e]):"transparent"===e?new E(NaN,NaN,NaN,0):null}function w(e){return new E(e>>16&255,e>>8&255,255&e,1)}function x(e,t,n,r){return r<=0&&(e=t=n=NaN),new E(e,t,n,r)}function S(e){return e instanceof o||(e=_(e)),e?new E((e=e.rgb()).r,e.g,e.b,e.opacity):new E}function A(e,t,n,r){return 1===arguments.length?S(e):new E(e,t,n,null==r?1:r)}function E(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function C(){return`#${k(this.r)}${k(this.g)}${k(this.b)}`}function R(){const e=O(this.opacity);return`${1===e?"rgb(":"rgba("}${T(this.r)}, ${T(this.g)}, ${T(this.b)}${1===e?")":`, ${e})`}`}function O(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function T(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function k(e){return((e=T(e))<16?"0":"")+e.toString(16)}function M(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new I(e,t,n,r)}function P(e){if(e instanceof I)return new I(e.h,e.s,e.l,e.opacity);if(e instanceof o||(e=_(e)),!e)return new I;if(e instanceof I)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),s=NaN,u=a-i,l=(a+i)/2;return u?(s=t===a?(n-r)/u+6*(n<r):n===a?(r-t)/u+2:(t-n)/u+4,u/=l<.5?a+i:2-a-i,s*=60):u=l>0&&l<1?0:s,new I(s,u,l,e.opacity)}function N(e,t,n,r){return 1===arguments.length?P(e):new I(e,t,n,null==r?1:r)}function I(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function L(e){return(e=(e||0)%360)<0?e+360:e}function D(e){return Math.max(0,Math.min(1,e||0))}function F(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}(0,r.A)(o,_,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:m,formatHex:m,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return P(this).formatHsl()},formatRgb:b,toString:b}),(0,r.A)(E,A,(0,r.X)(o,{brighter(e){return e=null==e?a:Math.pow(a,e),new E(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new E(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new E(T(this.r),T(this.g),T(this.b),O(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:C,formatHex:C,formatHex8:function(){return`#${k(this.r)}${k(this.g)}${k(this.b)}${k(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:R,toString:R})),(0,r.A)(I,N,(0,r.X)(o,{brighter(e){return e=null==e?a:Math.pow(a,e),new I(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new I(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new E(F(e>=240?e-240:e+120,o,r),F(e,o,r),F(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new I(L(this.h),D(this.s),D(this.l),O(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=O(this.opacity);return`${1===e?"hsl(":"hsla("}${L(this.h)}, ${100*D(this.s)}%, ${100*D(this.l)}%${1===e?")":`, ${e})`}`}}))},40871:(e,t,n)=>{"use strict";function r(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function o(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}n.d(t,{A:()=>r,X:()=>o})},48701:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,GP:()=>o,s:()=>i});var r,o,i,a=n(56390);function s(e){return r=(0,a.A)(e),o=r.format,i=r.formatPrefix,r}s({thousands:",",grouping:[3],currency:["$",""]})},47235:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(95204);function o(e){return(e=(0,r.f)(Math.abs(e)))?e[1]:NaN}},95204:(e,t,n)=>{"use strict";function r(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function o(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}n.d(t,{A:()=>r,f:()=>o})},1631:(e,t,n)=>{"use strict";n.d(t,{A:()=>o,S:()=>i});var r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(e){if(!(t=r.exec(e)))throw new Error("invalid format: "+e);var t;return new i({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function i(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}o.prototype=i.prototype,i.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type}},56390:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(47235);var o=n(1631);var i,a=n(95204);function s(e,t){var n=(0,a.f)(e,t);if(!n)return e+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}const u={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:a.A,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>s(100*e,t),r:s,s:function(e,t){var n=(0,a.f)(e,t);if(!n)return e+"";var r=n[0],o=n[1],s=o-(i=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,u=r.length;return s===u?r:s>u?r+new Array(s-u+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+(0,a.f)(e,Math.max(0,t+s-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function l(e){return e}var c=Array.prototype.map,f=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function d(e){var t,n,a=void 0===e.grouping||void 0===e.thousands?l:(t=c.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var o=e.length,i=[],a=0,s=t[0],u=0;o>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),i.push(e.substring(o-=s,o+s)),!((u+=s+1)>r));)s=t[a=(a+1)%t.length];return i.reverse().join(n)}),s=void 0===e.currency?"":e.currency[0]+"",d=void 0===e.currency?"":e.currency[1]+"",h=void 0===e.decimal?".":e.decimal+"",p=void 0===e.numerals?l:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(c.call(e.numerals,String)),g=void 0===e.percent?"%":e.percent+"",v=void 0===e.minus?"\u2212":e.minus+"",y=void 0===e.nan?"NaN":e.nan+"";function m(e){var t=(e=(0,o.A)(e)).fill,n=e.align,r=e.sign,l=e.symbol,c=e.zero,m=e.width,b=e.comma,_=e.precision,w=e.trim,x=e.type;"n"===x?(b=!0,x="g"):u[x]||(void 0===_&&(_=12),w=!0,x="g"),(c||"0"===t&&"="===n)&&(c=!0,t="0",n="=");var S="$"===l?s:"#"===l&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",A="$"===l?d:/[%p]/.test(x)?g:"",E=u[x],C=/[defgprs%]/.test(x);function R(e){var o,s,u,l=S,d=A;if("c"===x)d=E(e)+d,e="";else{var g=(e=+e)<0||1/e<0;if(e=isNaN(e)?y:E(Math.abs(e),_),w&&(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r<n;++r)switch(e[r]){case".":o=t=r;break;case"0":0===o&&(o=r),t=r;break;default:if(!+e[r])break e;o>0&&(o=0)}return o>0?e.slice(0,o)+e.slice(t+1):e}(e)),g&&0===+e&&"+"!==r&&(g=!1),l=(g?"("===r?r:v:"-"===r||"("===r?"":r)+l,d=("s"===x?f[8+i/3]:"")+d+(g&&"("===r?")":""),C)for(o=-1,s=e.length;++o<s;)if(48>(u=e.charCodeAt(o))||u>57){d=(46===u?h+e.slice(o+1):e.slice(o))+d,e=e.slice(0,o);break}}b&&!c&&(e=a(e,1/0));var R=l.length+e.length+d.length,O=R<m?new Array(m-R+1).join(t):"";switch(b&&c&&(e=a(O+e,O.length?m-d.length:1/0),O=""),n){case"<":e=l+e+d+O;break;case"=":e=l+O+e+d;break;case"^":e=O.slice(0,R=O.length>>1)+l+e+d+O.slice(R);break;default:e=O+l+e+d}return p(e)}return _=void 0===_?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_)),R.toString=function(){return e+""},R}return{format:m,formatPrefix:function(e,t){var n=m(((e=(0,o.A)(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor((0,r.A)(t)/3))),a=Math.pow(10,-i),s=f[8+i/3];return function(e){return n(a*e)+s}}}}},1734:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(47235);function o(e){return Math.max(0,-(0,r.A)(Math.abs(e)))}},67590:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(47235);function o(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,r.A)(t)/3)))-(0,r.A)(Math.abs(e)))}},99460:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(47235);function o(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,(0,r.A)(t)-(0,r.A)(e))+1}},68079:(e,t,n)=>{"use strict";n.d(t,{$:()=>a,A:()=>i});var r=n(58503),o=n(10128);function i(e,t){return((0,o.p)(t)?o.A:a)(e,t)}function a(e,t){var n,o=t?t.length:0,i=e?Math.min(o,e.length):0,a=new Array(i),s=new Array(o);for(n=0;n<i;++n)a[n]=(0,r.A)(e[n],t[n]);for(;n<o;++n)s[n]=t[n];return function(e){for(n=0;n<i;++n)s[n]=a[n](e);return s}}},86160:(e,t,n)=>{"use strict";function r(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}function o(e){var t=e.length-1;return function(n){var o=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[o],a=e[o+1],s=o>0?e[o-1]:2*i-a,u=o<t-1?e[o+2]:2*a-i;return r((n-o/t)*t,s,i,a,u)}}n.d(t,{A:()=>o,H:()=>r})},19804:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(86160);function o(e){var t=e.length;return function(n){var o=Math.floor(((n%=1)<0?++n:n)*t),i=e[(o+t-1)%t],a=e[o%t],s=e[(o+1)%t],u=e[(o+2)%t];return(0,r.H)((n-o/t)*t,i,a,s,u)}}},84709:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,lG:()=>i,uN:()=>a});var r=n(3116);function o(e,t){return function(n){return e+n*t}}function i(e,t){var n=t-e;return n?o(e,n>180||n<-180?n-360*Math.round(n/360):n):(0,r.A)(isNaN(e)?t:e)}function a(e){return 1===(e=+e)?s:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):(0,r.A)(isNaN(t)?n:t)}}function s(e,t){var n=t-e;return n?o(e,n):(0,r.A)(isNaN(e)?t:e)}},3116:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=e=>()=>e},58172:(e,t,n)=>{"use strict";function r(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}n.d(t,{A:()=>r})},8981:(e,t,n)=>{"use strict";function r(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}n.d(t,{A:()=>r})},10128:(e,t,n)=>{"use strict";function r(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(i){for(n=0;n<r;++n)o[n]=e[n]*(1-i)+t[n]*i;return o}}function o(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}n.d(t,{A:()=>r,p:()=>o})},34287:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(58503);function o(e,t){var n,o={},i={};for(n in null!==e&&"object"===typeof e||(e={}),null!==t&&"object"===typeof t||(t={}),t)n in e?o[n]=(0,r.A)(e[n],t[n]):i[n]=t[n];return function(e){for(n in o)i[n]=o[n](e);return i}}},23104:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(58503);function o(e,t){void 0===t&&(t=e,e=r.A);for(var n=0,o=t.length-1,i=t[0],a=new Array(o<0?0:o);n<o;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(o-1,Math.floor(e*=o)));return a[t](e-t)}}},21197:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,Ik:()=>l,uL:()=>c});var r=n(46957),o=n(86160),i=n(19804),a=n(84709);const s=function e(t){var n=(0,a.uN)(t);function o(e,t){var o=n((e=(0,r.Qh)(e)).r,(t=(0,r.Qh)(t)).r),i=n(e.g,t.g),s=n(e.b,t.b),u=(0,a.Ay)(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=i(t),e.b=s(t),e.opacity=u(t),e+""}}return o.gamma=e,o}(1);function u(e){return function(t){var n,o,i=t.length,a=new Array(i),s=new Array(i),u=new Array(i);for(n=0;n<i;++n)o=(0,r.Qh)(t[n]),a[n]=o.r||0,s[n]=o.g||0,u[n]=o.b||0;return a=e(a),s=e(s),u=e(u),o.opacity=1,function(e){return o.r=a(e),o.g=s(e),o.b=u(e),o+""}}}var l=u(o.A),c=u(i.A)},49770:(e,t,n)=>{"use strict";function r(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}n.d(t,{A:()=>r})},67737:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(8981),o=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,i=new RegExp(o.source,"g");function a(e,t){var n,a,s,u=o.lastIndex=i.lastIndex=0,l=-1,c=[],f=[];for(e+="",t+="";(n=o.exec(e))&&(a=i.exec(t));)(s=a.index)>u&&(s=t.slice(u,s),c[l]?c[l]+=s:c[++l]=s),(n=n[0])===(a=a[0])?c[l]?c[l]+=a:c[++l]=a:(c[++l]=null,f.push({i:l,x:(0,r.A)(n,a)})),u=i.lastIndex;return u<t.length&&(s=t.slice(u),c[l]?c[l]+=s:c[++l]=s),c.length<2?f[0]?function(e){return function(t){return e(t)+""}}(f[0].x):function(e){return function(){return e}}(t):(t=f.length,function(e){for(var n,r=0;r<t;++r)c[(n=f[r]).i]=n.x(e);return c.join("")})}},58503:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(46957),o=n(21197),i=n(68079),a=n(58172),s=n(8981),u=n(34287),l=n(67737),c=n(3116),f=n(10128);function d(e,t){var n,d=typeof t;return null==t||"boolean"===d?(0,c.A)(t):("number"===d?s.A:"string"===d?(n=(0,r.Ay)(t))?(t=n,o.Ay):l.A:t instanceof r.Ay?o.Ay:t instanceof Date?a.A:(0,f.p)(t)?f.A:Array.isArray(t)?i.$:"function"!==typeof t.valueOf&&"function"!==typeof t.toString||isNaN(t)?u.A:s.A)(e,t)}},16199:(e,t,n)=>{"use strict";n.r(t),n.d(t,{scaleBand:()=>l,scaleDiverging:()=>Me,scaleDivergingLog:()=>Pe,scaleDivergingPow:()=>Ie,scaleDivergingSqrt:()=>Le,scaleDivergingSymlog:()=>Ne,scaleIdentity:()=>I,scaleImplicit:()=>s,scaleLinear:()=>N,scaleLog:()=>H,scaleOrdinal:()=>u,scalePoint:()=>f,scalePow:()=>Q,scaleQuantile:()=>oe,scaleQuantize:()=>ie,scaleRadial:()=>te,scaleSequential:()=>Se,scaleSequentialLog:()=>Ae,scaleSequentialPow:()=>Ce,scaleSequentialQuantile:()=>Oe,scaleSequentialSqrt:()=>Re,scaleSequentialSymlog:()=>Ee,scaleSqrt:()=>J,scaleSymlog:()=>q,scaleThreshold:()=>ae,scaleTime:()=>be,scaleUtc:()=>_e,tickFormat:()=>M});var r=n(6561);function o(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function i(e,t){switch(arguments.length){case 0:break;case 1:"function"===typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"===typeof t?this.interpolator(t):this.range(t)}return this}var a=n(24119);const s=Symbol("implicit");function u(){var e=new a.B,t=[],n=[],r=s;function i(o){let i=e.get(o);if(void 0===i){if(r!==s)return r;e.set(o,i=t.push(o)-1)}return n[i%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new a.B;for(const r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return u(t,n).unknown(r)},o.apply(i,arguments),i}function l(){var e,t,n=u().unknown(void 0),i=n.domain,a=n.range,s=0,c=1,f=!1,d=0,h=0,p=.5;function g(){var n=i().length,o=c<s,u=o?c:s,l=o?s:c;e=(l-u)/Math.max(1,n-d+2*h),f&&(e=Math.floor(e)),u+=(l-u-e*(n-d))*p,t=e*(1-d),f&&(u=Math.round(u),t=Math.round(t));var g=(0,r.A)(n).map((function(t){return u+e*t}));return a(o?g.reverse():g)}return delete n.unknown,n.domain=function(e){return arguments.length?(i(e),g()):i()},n.range=function(e){return arguments.length?([s,c]=e,s=+s,c=+c,g()):[s,c]},n.rangeRound=function(e){return[s,c]=e,s=+s,c=+c,f=!0,g()},n.bandwidth=function(){return t},n.step=function(){return e},n.round=function(e){return arguments.length?(f=!!e,g()):f},n.padding=function(e){return arguments.length?(d=Math.min(1,h=+e),g()):d},n.paddingInner=function(e){return arguments.length?(d=Math.min(1,e),g()):d},n.paddingOuter=function(e){return arguments.length?(h=+e,g()):h},n.align=function(e){return arguments.length?(p=Math.max(0,Math.min(1,e)),g()):p},n.copy=function(){return l(i(),[s,c]).round(f).paddingInner(d).paddingOuter(h).align(p)},o.apply(g(),arguments)}function c(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return c(t())},e}function f(){return c(l.apply(null,arguments).paddingInner(1))}var d=n(6946),h=n(52016),p=n(58503),g=n(8981),v=n(49770);function y(e){return+e}var m=[0,1];function b(e){return e}function _(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:(n=isNaN(t)?NaN:.5,function(){return n});var n}function w(e,t,n){var r=e[0],o=e[1],i=t[0],a=t[1];return o<r?(r=_(o,r),i=n(a,i)):(r=_(r,o),i=n(i,a)),function(e){return i(r(e))}}function x(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),i=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)o[a]=_(e[a],e[a+1]),i[a]=n(t[a],t[a+1]);return function(t){var n=(0,h.Ay)(e,t,1,r)-1;return i[n](o[n](t))}}function S(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function A(){var e,t,n,r,o,i,a=m,s=m,u=p.A,l=b;function c(){var e=Math.min(a.length,s.length);return l!==b&&(l=function(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(a[0],a[e-1])),r=e>2?x:w,o=i=null,f}function f(t){return null==t||isNaN(t=+t)?n:(o||(o=r(a.map(e),s,u)))(e(l(t)))}return f.invert=function(n){return l(t((i||(i=r(s,a.map(e),g.A)))(n)))},f.domain=function(e){return arguments.length?(a=Array.from(e,y),c()):a.slice()},f.range=function(e){return arguments.length?(s=Array.from(e),c()):s.slice()},f.rangeRound=function(e){return s=Array.from(e),u=v.A,c()},f.clamp=function(e){return arguments.length?(l=!!e||b,c()):l!==b},f.interpolate=function(e){return arguments.length?(u=e,c()):u},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,r){return e=n,t=r,c()}}function E(){return A()(b,b)}var C=n(1631),R=n(67590),O=n(48701),T=n(99460),k=n(1734);function M(e,t,n,r){var o,i=(0,d.sG)(e,t,n);switch((r=(0,C.A)(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(o=(0,R.A)(i,a))||(r.precision=o),(0,O.s)(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=(0,T.A)(i,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=(0,k.A)(i))||(r.precision=o-2*("%"===r.type))}return(0,O.GP)(r)}function P(e){var t=e.domain;return e.ticks=function(e){var n=t();return(0,d.Ay)(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return M(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,o,i=t(),a=0,s=i.length-1,u=i[a],l=i[s],c=10;for(l<u&&(o=u,u=l,l=o,o=a,a=s,s=o);c-- >0;){if((o=(0,d.lq)(u,l,n))===r)return i[a]=u,i[s]=l,t(i);if(o>0)u=Math.floor(u/o)*o,l=Math.ceil(l/o)*o;else{if(!(o<0))break;u=Math.ceil(u*o)/o,l=Math.floor(l*o)/o}r=o}return e},e}function N(){var e=E();return e.copy=function(){return S(e,N())},o.apply(e,arguments),P(e)}function I(e){var t;function n(e){return null==e||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,y),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return I(e).unknown(t)},e=arguments.length?Array.from(e,y):[0,1],P(n)}function L(e,t){var n,r=0,o=(e=e.slice()).length-1,i=e[r],a=e[o];return a<i&&(n=r,r=o,o=n,n=i,i=a,a=n),e[r]=t.floor(i),e[o]=t.ceil(a),e}function D(e){return Math.log(e)}function F(e){return Math.exp(e)}function j(e){return-Math.log(-e)}function U(e){return-Math.exp(-e)}function z(e){return isFinite(e)?+("1e"+e):e<0?0:e}function B(e){return(t,n)=>-e(-t,n)}function V(e){const t=e(D,F),n=t.domain;let r,o,i=10;function a(){return r=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(i),o=function(e){return 10===e?z:e===Math.E?Math.exp:t=>Math.pow(e,t)}(i),n()[0]<0?(r=B(r),o=B(o),e(j,U)):e(D,F),t}return t.base=function(e){return arguments.length?(i=+e,a()):i},t.domain=function(e){return arguments.length?(n(e),a()):n()},t.ticks=e=>{const t=n();let a=t[0],s=t[t.length-1];const u=s<a;u&&([a,s]=[s,a]);let l,c,f=r(a),h=r(s);const p=null==e?10:+e;let g=[];if(!(i%1)&&h-f<p){if(f=Math.floor(f),h=Math.ceil(h),a>0){for(;f<=h;++f)for(l=1;l<i;++l)if(c=f<0?l/o(-f):l*o(f),!(c<a)){if(c>s)break;g.push(c)}}else for(;f<=h;++f)for(l=i-1;l>=1;--l)if(c=f>0?l/o(-f):l*o(f),!(c<a)){if(c>s)break;g.push(c)}2*g.length<p&&(g=(0,d.Ay)(a,s,p))}else g=(0,d.Ay)(f,h,Math.min(h-f,p)).map(o);return u?g.reverse():g},t.tickFormat=(e,n)=>{if(null==e&&(e=10),null==n&&(n=10===i?"s":","),"function"!==typeof n&&(i%1||null!=(n=(0,C.A)(n)).precision||(n.trim=!0),n=(0,O.GP)(n)),e===1/0)return n;const a=Math.max(1,i*e/t.ticks().length);return e=>{let t=e/o(Math.round(r(e)));return t*i<i-.5&&(t*=i),t<=a?n(e):""}},t.nice=()=>n(L(n(),{floor:e=>o(Math.floor(r(e))),ceil:e=>o(Math.ceil(r(e)))})),t}function H(){const e=V(A()).domain([1,10]);return e.copy=()=>S(e,H()).base(e.base()),o.apply(e,arguments),e}function $(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function W(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function G(e){var t=1,n=e($(t),W(t));return n.constant=function(n){return arguments.length?e($(t=+n),W(t)):t},P(n)}function q(){var e=G(A());return e.copy=function(){return S(e,q()).constant(e.constant())},o.apply(e,arguments)}function Y(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function X(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Z(e){return e<0?-e*e:e*e}function K(e){var t=e(b,b),n=1;return t.exponent=function(t){return arguments.length?1===(n=+t)?e(b,b):.5===n?e(X,Z):e(Y(n),Y(1/n)):n},P(t)}function Q(){var e=K(A());return e.copy=function(){return S(e,Q()).exponent(e.exponent())},o.apply(e,arguments),e}function J(){return Q.apply(null,arguments).exponent(.5)}function ee(e){return Math.sign(e)*e*e}function te(){var e,t=E(),n=[0,1],r=!1;function i(n){var o=function(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}(t(n));return isNaN(o)?e:r?Math.round(o):o}return i.invert=function(e){return t.invert(ee(e))},i.domain=function(e){return arguments.length?(t.domain(e),i):t.domain()},i.range=function(e){return arguments.length?(t.range((n=Array.from(e,y)).map(ee)),i):n.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(r=!!e,i):r},i.clamp=function(e){return arguments.length?(t.clamp(e),i):t.clamp()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return te(t.domain(),n).round(r).clamp(t.clamp()).unknown(e)},o.apply(i,arguments),P(i)}var ne=n(84855),re=n(12902);function oe(){var e,t=[],n=[],r=[];function i(){var e=0,o=Math.max(1,n.length);for(r=new Array(o-1);++e<o;)r[e-1]=(0,ne.Z4)(t,e/o);return a}function a(t){return null==t||isNaN(t=+t)?e:n[(0,h.Ay)(r,t)]}return a.invertExtent=function(e){var o=n.indexOf(e);return o<0?[NaN,NaN]:[o>0?r[o-1]:t[0],o<r.length?r[o]:t[t.length-1]]},a.domain=function(e){if(!arguments.length)return t.slice();t=[];for(let n of e)null==n||isNaN(n=+n)||t.push(n);return t.sort(re.A),i()},a.range=function(e){return arguments.length?(n=Array.from(e),i()):n.slice()},a.unknown=function(t){return arguments.length?(e=t,a):e},a.quantiles=function(){return r.slice()},a.copy=function(){return oe().domain(t).range(n).unknown(e)},o.apply(a,arguments)}function ie(){var e,t=0,n=1,r=1,i=[.5],a=[0,1];function s(t){return null!=t&&t<=t?a[(0,h.Ay)(i,t,0,r)]:e}function u(){var e=-1;for(i=new Array(r);++e<r;)i[e]=((e+1)*n-(e-r)*t)/(r+1);return s}return s.domain=function(e){return arguments.length?([t,n]=e,t=+t,n=+n,u()):[t,n]},s.range=function(e){return arguments.length?(r=(a=Array.from(e)).length-1,u()):a.slice()},s.invertExtent=function(e){var o=a.indexOf(e);return o<0?[NaN,NaN]:o<1?[t,i[0]]:o>=r?[i[r-1],n]:[i[o-1],i[o]]},s.unknown=function(t){return arguments.length?(e=t,s):s},s.thresholds=function(){return i.slice()},s.copy=function(){return ie().domain([t,n]).range(a).unknown(e)},o.apply(P(s),arguments)}function ae(){var e,t=[.5],n=[0,1],r=1;function i(o){return null!=o&&o<=o?n[(0,h.Ay)(t,o,0,r)]:e}return i.domain=function(e){return arguments.length?(t=Array.from(e),r=Math.min(t.length,n.length-1),i):t.slice()},i.range=function(e){return arguments.length?(n=Array.from(e),r=Math.min(t.length,n.length-1),i):n.slice()},i.invertExtent=function(e){var r=n.indexOf(e);return[t[r-1],t[r]]},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return ae().domain(t).range(n).unknown(e)},o.apply(i,arguments)}var se=n(526),ue=n(24355),le=n(75878),ce=n(78926),fe=n(55334),de=n(54612),he=n(13298),pe=n(55030),ge=n(53705);function ve(e){return new Date(e)}function ye(e){return e instanceof Date?+e:+new Date(+e)}function me(e,t,n,r,o,i,a,s,u,l){var c=E(),f=c.invert,d=c.domain,h=l(".%L"),p=l(":%S"),g=l("%I:%M"),v=l("%I %p"),y=l("%a %d"),m=l("%b %d"),b=l("%B"),_=l("%Y");function w(e){return(u(e)<e?h:s(e)<e?p:a(e)<e?g:i(e)<e?v:r(e)<e?o(e)<e?y:m:n(e)<e?b:_)(e)}return c.invert=function(e){return new Date(f(e))},c.domain=function(e){return arguments.length?d(Array.from(e,ye)):d().map(ve)},c.ticks=function(t){var n=d();return e(n[0],n[n.length-1],null==t?10:t)},c.tickFormat=function(e,t){return null==t?w:l(t)},c.nice=function(e){var n=d();return e&&"function"===typeof e.range||(e=t(n[0],n[n.length-1],null==e?10:e)),e?d(L(n,e)):c},c.copy=function(){return S(c,me(e,t,n,r,o,i,a,s,u,l))},c}function be(){return o.apply(me(se.Cf,se.yE,ue.he,le.Ui,ce.YP,fe.UA,de.Ag,he.wX,pe.R,ge.DC).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function _e(){return o.apply(me(se.$Z,se.lk,ue.Mb,le.R6,ce.Hl,fe.dA,de.pz,he.vD,pe.R,ge.aL).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function we(){var e,t,n,r,o,i=0,a=1,s=b,u=!1;function l(t){return null==t||isNaN(t=+t)?o:s(0===n?.5:(t=(r(t)-e)*n,u?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,r;return arguments.length?([n,r]=t,s=e(n,r),l):[s(0),s(1)]}}return l.domain=function(o){return arguments.length?([i,a]=o,e=r(i=+i),t=r(a=+a),n=e===t?0:1/(t-e),l):[i,a]},l.clamp=function(e){return arguments.length?(u=!!e,l):u},l.interpolator=function(e){return arguments.length?(s=e,l):s},l.range=c(p.A),l.rangeRound=c(v.A),l.unknown=function(e){return arguments.length?(o=e,l):o},function(o){return r=o,e=o(i),t=o(a),n=e===t?0:1/(t-e),l}}function xe(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Se(){var e=P(we()(b));return e.copy=function(){return xe(e,Se())},i.apply(e,arguments)}function Ae(){var e=V(we()).domain([1,10]);return e.copy=function(){return xe(e,Ae()).base(e.base())},i.apply(e,arguments)}function Ee(){var e=G(we());return e.copy=function(){return xe(e,Ee()).constant(e.constant())},i.apply(e,arguments)}function Ce(){var e=K(we());return e.copy=function(){return xe(e,Ce()).exponent(e.exponent())},i.apply(e,arguments)}function Re(){return Ce.apply(null,arguments).exponent(.5)}function Oe(){var e=[],t=b;function n(n){if(null!=n&&!isNaN(n=+n))return t(((0,h.Ay)(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(re.A),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map(((n,r)=>t(r/(e.length-1))))},n.quantiles=function(t){return Array.from({length:t+1},((n,r)=>(0,ne.Ay)(e,r/t)))},n.copy=function(){return Oe(t).domain(e)},i.apply(n,arguments)}var Te=n(23104);function ke(){var e,t,n,r,o,i,a,s=0,u=.5,l=1,c=1,f=b,d=!1;function h(e){return isNaN(e=+e)?a:(e=.5+((e=+i(e))-t)*(c*e<c*t?r:o),f(d?Math.max(0,Math.min(1,e)):e))}function g(e){return function(t){var n,r,o;return arguments.length?([n,r,o]=t,f=(0,Te.A)(e,[n,r,o]),h):[f(0),f(.5),f(1)]}}return h.domain=function(a){return arguments.length?([s,u,l]=a,e=i(s=+s),t=i(u=+u),n=i(l=+l),r=e===t?0:.5/(t-e),o=t===n?0:.5/(n-t),c=t<e?-1:1,h):[s,u,l]},h.clamp=function(e){return arguments.length?(d=!!e,h):d},h.interpolator=function(e){return arguments.length?(f=e,h):f},h.range=g(p.A),h.rangeRound=g(v.A),h.unknown=function(e){return arguments.length?(a=e,h):a},function(a){return i=a,e=a(s),t=a(u),n=a(l),r=e===t?0:.5/(t-e),o=t===n?0:.5/(n-t),c=t<e?-1:1,h}}function Me(){var e=P(ke()(b));return e.copy=function(){return xe(e,Me())},i.apply(e,arguments)}function Pe(){var e=V(ke()).domain([.1,1,10]);return e.copy=function(){return xe(e,Pe()).base(e.base())},i.apply(e,arguments)}function Ne(){var e=G(ke());return e.copy=function(){return xe(e,Ne()).constant(e.constant())},i.apply(e,arguments)}function Ie(){var e=K(ke());return e.copy=function(){return xe(e,Ie()).exponent(e.exponent())},i.apply(e,arguments)}function Le(){return Ie.apply(null,arguments).exponent(.5)}},53705:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,DC:()=>o,GY:()=>s,T6:()=>i,aL:()=>a});var r,o,i,a,s,u=n(64398);function l(e){return r=(0,u.A)(e),o=r.format,i=r.parse,a=r.utcFormat,s=r.utcParse,r}l({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})},64398:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(78926),o=n(55334),i=n(24355);function a(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function s(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function u(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function l(e){var t=e.dateTime,n=e.date,i=e.time,l=e.periods,f=e.days,d=e.shortDays,h=e.months,p=e.shortMonths,g=v(l),X=y(l),ge=v(f),Re=y(f),Oe=v(d),Te=y(d),ke=v(h),Me=y(h),Pe=v(p),Ne=y(p),Ie={a:function(e){return d[e.getDay()]},A:function(e){return f[e.getDay()]},b:function(e){return p[e.getMonth()]},B:function(e){return h[e.getMonth()]},c:null,d:j,e:j,f:H,g:ee,G:ne,H:U,I:z,j:B,L:V,m:$,M:W,p:function(e){return l[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Ee,s:Ce,S:G,u:q,U:Y,V:Z,w:K,W:Q,x:null,X:null,y:J,Y:te,Z:re,"%":Ae},Le={a:function(e){return d[e.getUTCDay()]},A:function(e){return f[e.getUTCDay()]},b:function(e){return p[e.getUTCMonth()]},B:function(e){return h[e.getUTCMonth()]},c:null,d:oe,e:oe,f:le,g:_e,G:xe,H:ie,I:ae,j:se,L:ue,m:ce,M:fe,p:function(e){return l[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Ee,s:Ce,S:de,u:he,U:pe,V:ve,w:ye,W:me,x:null,X:null,y:be,Y:we,Z:Se,"%":Ae},De={a:function(e,t,n){var r=Oe.exec(t.slice(n));return r?(e.w=Te.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=ge.exec(t.slice(n));return r?(e.w=Re.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=Pe.exec(t.slice(n));return r?(e.m=Ne.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=ke.exec(t.slice(n));return r?(e.m=Me.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return Ue(e,t,n,r)},d:O,e:O,f:I,g:A,G:S,H:k,I:k,j:T,L:N,m:R,M:M,p:function(e,t,n){var r=g.exec(t.slice(n));return r?(e.p=X.get(r[0].toLowerCase()),n+r[0].length):-1},q:C,Q:D,s:F,S:P,u:b,U:_,V:w,w:m,W:x,x:function(e,t,r){return Ue(e,n,t,r)},X:function(e,t,n){return Ue(e,i,t,n)},y:A,Y:S,Z:E,"%":L};function Fe(e,t){return function(n){var r,o,i,a=[],s=-1,u=0,l=e.length;for(n instanceof Date||(n=new Date(+n));++s<l;)37===e.charCodeAt(s)&&(a.push(e.slice(u,s)),null!=(o=c[r=e.charAt(++s)])?r=e.charAt(++s):o="e"===r?" ":"0",(i=t[r])&&(r=i(n,o)),a.push(r),u=s+1);return a.push(e.slice(u,s)),a.join("")}}function je(e,t){return function(n){var i,l,c=u(1900,void 0,1);if(Ue(c,e,n+="",0)!=n.length)return null;if("Q"in c)return new Date(c.Q);if("s"in c)return new Date(1e3*c.s+("L"in c?c.L:0));if(t&&!("Z"in c)&&(c.Z=0),"p"in c&&(c.H=c.H%12+12*c.p),void 0===c.m&&(c.m="q"in c?c.q:0),"V"in c){if(c.V<1||c.V>53)return null;"w"in c||(c.w=1),"Z"in c?(l=(i=s(u(c.y,0,1))).getUTCDay(),i=l>4||0===l?r.rt.ceil(i):(0,r.rt)(i),i=o.dA.offset(i,7*(c.V-1)),c.y=i.getUTCFullYear(),c.m=i.getUTCMonth(),c.d=i.getUTCDate()+(c.w+6)%7):(l=(i=a(u(c.y,0,1))).getDay(),i=l>4||0===l?r.AB.ceil(i):(0,r.AB)(i),i=o.UA.offset(i,7*(c.V-1)),c.y=i.getFullYear(),c.m=i.getMonth(),c.d=i.getDate()+(c.w+6)%7)}else("W"in c||"U"in c)&&("w"in c||(c.w="u"in c?c.u%7:"W"in c?1:0),l="Z"in c?s(u(c.y,0,1)).getUTCDay():a(u(c.y,0,1)).getDay(),c.m=0,c.d="W"in c?(c.w+6)%7+7*c.W-(l+5)%7:c.w+7*c.U-(l+6)%7);return"Z"in c?(c.H+=c.Z/100|0,c.M+=c.Z%100,s(c)):a(c)}}function Ue(e,t,n,r){for(var o,i,a=0,s=t.length,u=n.length;a<s;){if(r>=u)return-1;if(37===(o=t.charCodeAt(a++))){if(o=t.charAt(a++),!(i=De[o in c?t.charAt(a++):o])||(r=i(e,n,r))<0)return-1}else if(o!=n.charCodeAt(r++))return-1}return r}return Ie.x=Fe(n,Ie),Ie.X=Fe(i,Ie),Ie.c=Fe(t,Ie),Le.x=Fe(n,Le),Le.X=Fe(i,Le),Le.c=Fe(t,Le),{format:function(e){var t=Fe(e+="",Ie);return t.toString=function(){return e},t},parse:function(e){var t=je(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=Fe(e+="",Le);return t.toString=function(){return e},t},utcParse:function(e){var t=je(e+="",!0);return t.toString=function(){return e},t}}}var c={"-":"",_:" ",0:"0"},f=/^\s*\d+/,d=/^%/,h=/[\\^$*+?|[\]().{}]/g;function p(e,t,n){var r=e<0?"-":"",o=(r?-e:e)+"",i=o.length;return r+(i<n?new Array(n-i+1).join(t)+o:o)}function g(e){return e.replace(h,"\\$&")}function v(e){return new RegExp("^(?:"+e.map(g).join("|")+")","i")}function y(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function m(e,t,n){var r=f.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function b(e,t,n){var r=f.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function _(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function w(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function x(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function S(e,t,n){var r=f.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function A(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function E(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function C(e,t,n){var r=f.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function R(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function O(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function T(e,t,n){var r=f.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function k(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function M(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function P(e,t,n){var r=f.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function N(e,t,n){var r=f.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function I(e,t,n){var r=f.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function L(e,t,n){var r=d.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function D(e,t,n){var r=f.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function F(e,t,n){var r=f.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function j(e,t){return p(e.getDate(),t,2)}function U(e,t){return p(e.getHours(),t,2)}function z(e,t){return p(e.getHours()%12||12,t,2)}function B(e,t){return p(1+o.UA.count((0,i.he)(e),e),t,3)}function V(e,t){return p(e.getMilliseconds(),t,3)}function H(e,t){return V(e,t)+"000"}function $(e,t){return p(e.getMonth()+1,t,2)}function W(e,t){return p(e.getMinutes(),t,2)}function G(e,t){return p(e.getSeconds(),t,2)}function q(e){var t=e.getDay();return 0===t?7:t}function Y(e,t){return p(r.YP.count((0,i.he)(e)-1,e),t,2)}function X(e){var t=e.getDay();return t>=4||0===t?(0,r.Mo)(e):r.Mo.ceil(e)}function Z(e,t){return e=X(e),p(r.Mo.count((0,i.he)(e),e)+(4===(0,i.he)(e).getDay()),t,2)}function K(e){return e.getDay()}function Q(e,t){return p(r.AB.count((0,i.he)(e)-1,e),t,2)}function J(e,t){return p(e.getFullYear()%100,t,2)}function ee(e,t){return p((e=X(e)).getFullYear()%100,t,2)}function te(e,t){return p(e.getFullYear()%1e4,t,4)}function ne(e,t){var n=e.getDay();return p((e=n>=4||0===n?(0,r.Mo)(e):r.Mo.ceil(e)).getFullYear()%1e4,t,4)}function re(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+p(t/60|0,"0",2)+p(t%60,"0",2)}function oe(e,t){return p(e.getUTCDate(),t,2)}function ie(e,t){return p(e.getUTCHours(),t,2)}function ae(e,t){return p(e.getUTCHours()%12||12,t,2)}function se(e,t){return p(1+o.dA.count((0,i.Mb)(e),e),t,3)}function ue(e,t){return p(e.getUTCMilliseconds(),t,3)}function le(e,t){return ue(e,t)+"000"}function ce(e,t){return p(e.getUTCMonth()+1,t,2)}function fe(e,t){return p(e.getUTCMinutes(),t,2)}function de(e,t){return p(e.getUTCSeconds(),t,2)}function he(e){var t=e.getUTCDay();return 0===t?7:t}function pe(e,t){return p(r.Hl.count((0,i.Mb)(e)-1,e),t,2)}function ge(e){var t=e.getUTCDay();return t>=4||0===t?(0,r.pT)(e):r.pT.ceil(e)}function ve(e,t){return e=ge(e),p(r.pT.count((0,i.Mb)(e),e)+(4===(0,i.Mb)(e).getUTCDay()),t,2)}function ye(e){return e.getUTCDay()}function me(e,t){return p(r.rt.count((0,i.Mb)(e)-1,e),t,2)}function be(e,t){return p(e.getUTCFullYear()%100,t,2)}function _e(e,t){return p((e=ge(e)).getUTCFullYear()%100,t,2)}function we(e,t){return p(e.getUTCFullYear()%1e4,t,4)}function xe(e,t){var n=e.getUTCDay();return p((e=n>=4||0===n?(0,r.pT)(e):r.pT.ceil(e)).getUTCFullYear()%1e4,t,4)}function Se(){return"+0000"}function Ae(){return"%"}function Ee(e){return+e}function Ce(e){return Math.floor(+e/1e3)}},55334:(e,t,n)=>{"use strict";n.d(t,{NT:()=>a,TW:()=>l,UA:()=>i,dA:()=>s,ou:()=>u,yE:()=>c});var r=n(37591),o=n(81134);const i=(0,r.f)((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.rR)/o.Nm),(e=>e.getDate()-1)),a=i.range,s=(0,r.f)((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/o.Nm),(e=>e.getUTCDate()-1)),u=s.range,l=(0,r.f)((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/o.Nm),(e=>Math.floor(e/o.Nm))),c=l.range},81134:(e,t,n)=>{"use strict";n.d(t,{Fq:()=>s,JJ:()=>i,MP:()=>l,Nm:()=>a,Pv:()=>u,Tt:()=>r,rR:()=>o});const r=1e3,o=60*r,i=60*o,a=24*i,s=7*a,u=30*a,l=365*a},54612:(e,t,n)=>{"use strict";n.d(t,{Ag:()=>i,L6:()=>a,iA:()=>u,pz:()=>s});var r=n(37591),o=n(81134);const i=(0,r.f)((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*o.Tt-e.getMinutes()*o.rR)}),((e,t)=>{e.setTime(+e+t*o.JJ)}),((e,t)=>(t-e)/o.JJ),(e=>e.getHours())),a=i.range,s=(0,r.f)((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*o.JJ)}),((e,t)=>(t-e)/o.JJ),(e=>e.getUTCHours())),u=s.range},37591:(e,t,n)=>{"use strict";n.d(t,{f:()=>i});const r=new Date,o=new Date;function i(e,t,n,a){function s(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return s.floor=t=>(e(t=new Date(+t)),t),s.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),s.round=e=>{const t=s(e),n=s.ceil(e);return e-t<n-e?t:n},s.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),s.range=(n,r,o)=>{const i=[];if(n=s.ceil(n),o=null==o?1:Math.floor(o),!(n<r)||!(o>0))return i;let a;do{i.push(a=new Date(+n)),t(n,o),e(n)}while(a<n&&n<r);return i},s.filter=n=>i((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(s.count=(t,i)=>(r.setTime(+t),o.setTime(+i),e(r),e(o),Math.floor(n(r,o))),s.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?s.filter(a?t=>a(t)%e===0:t=>s.count(0,t)%e===0):s:null)),s}},32613:(e,t,n)=>{"use strict";n.d(t,{R:()=>i,y:()=>o});var r=n(37591);const o=(0,r.f)((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));o.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?(0,r.f)((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):o:null);const i=o.range},13298:(e,t,n)=>{"use strict";n.d(t,{Y4:()=>u,rn:()=>a,vD:()=>s,wX:()=>i});var r=n(37591),o=n(81134);const i=(0,r.f)((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*o.Tt)}),((e,t)=>{e.setTime(+e+t*o.rR)}),((e,t)=>(t-e)/o.rR),(e=>e.getMinutes())),a=i.range,s=(0,r.f)((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*o.rR)}),((e,t)=>(t-e)/o.rR),(e=>e.getUTCMinutes())),u=s.range},75878:(e,t,n)=>{"use strict";n.d(t,{Bz:()=>i,R6:()=>a,Ui:()=>o,oi:()=>s});var r=n(37591);const o=(0,r.f)((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth())),i=o.range,a=(0,r.f)((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth())),s=a.range},55030:(e,t,n)=>{"use strict";n.d(t,{R:()=>i,Y:()=>a});var r=n(37591),o=n(81134);const i=(0,r.f)((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*o.Tt)}),((e,t)=>(t-e)/o.Tt),(e=>e.getUTCSeconds())),a=i.range},526:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>g,Cf:()=>y,lk:()=>v,yE:()=>m});var r=n(86037),o=n(6946),i=n(81134),a=n(32613),s=n(55030),u=n(13298),l=n(54612),c=n(55334),f=n(78926),d=n(75878),h=n(24355);function p(e,t,n,u,l,c){const f=[[s.R,1,i.Tt],[s.R,5,5*i.Tt],[s.R,15,15*i.Tt],[s.R,30,30*i.Tt],[c,1,i.rR],[c,5,5*i.rR],[c,15,15*i.rR],[c,30,30*i.rR],[l,1,i.JJ],[l,3,3*i.JJ],[l,6,6*i.JJ],[l,12,12*i.JJ],[u,1,i.Nm],[u,2,2*i.Nm],[n,1,i.Fq],[t,1,i.Pv],[t,3,3*i.Pv],[e,1,i.MP]];function d(t,n,s){const u=Math.abs(n-t)/s,l=(0,r.A)((([,,e])=>e)).right(f,u);if(l===f.length)return e.every((0,o.sG)(t/i.MP,n/i.MP,s));if(0===l)return a.y.every(Math.max((0,o.sG)(t,n,s),1));const[c,d]=f[u/f[l-1][2]<f[l][2]/u?l-1:l];return c.every(d)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const o=n&&"function"===typeof n.range?n:d(e,t,n),i=o?o.range(e,+t+1):[];return r?i.reverse():i},d]}const[g,v]=p(h.Mb,d.R6,f.Hl,c.TW,l.pz,u.vD),[y,m]=p(h.he,d.Ui,f.YP,c.UA,l.Ag,u.wX)},78926:(e,t,n)=>{"use strict";n.d(t,{AB:()=>s,Dr:()=>v,G6:()=>M,Gu:()=>l,HU:()=>y,Hl:()=>w,Mo:()=>c,OK:()=>g,ON:()=>T,PG:()=>u,SQ:()=>m,TU:()=>f,Xo:()=>I,YP:()=>a,Zn:()=>N,_M:()=>b,a1:()=>C,aZ:()=>O,c8:()=>R,h8:()=>p,jN:()=>k,pT:()=>E,rG:()=>d,rt:()=>x,sr:()=>S,vD:()=>h,wr:()=>P,z2:()=>A});var r=n(37591),o=n(81134);function i(e){return(0,r.f)((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.rR)/o.Fq))}const a=i(0),s=i(1),u=i(2),l=i(3),c=i(4),f=i(5),d=i(6),h=a.range,p=s.range,g=u.range,v=l.range,y=c.range,m=f.range,b=d.range;function _(e){return(0,r.f)((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/o.Fq))}const w=_(0),x=_(1),S=_(2),A=_(3),E=_(4),C=_(5),R=_(6),O=w.range,T=x.range,k=S.range,M=A.range,P=E.range,N=C.range,I=R.range},24355:(e,t,n)=>{"use strict";n.d(t,{Mb:()=>a,Yo:()=>i,he:()=>o,jH:()=>s});var r=n(37591);const o=(0,r.f)((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear()));o.every=e=>isFinite(e=Math.floor(e))&&e>0?(0,r.f)((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null;const i=o.range,a=(0,r.f)((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));a.every=e=>isFinite(e=Math.floor(e))&&e>0?(0,r.f)((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null;const s=a.range},89638:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Adder:()=>S,Delaunay:()=>Na,FormatSpecifier:()=>Xu.S,InternMap:()=>C.B,InternSet:()=>C.v,Node:()=>cp,Path:()=>Wo,Voronoi:()=>Ra,ZoomTransform:()=>z_,active:()=>Xr,arc:()=>dm,area:()=>_m,areaRadial:()=>Tm,ascending:()=>o.A,autoType:()=>hs,axisBottom:()=>Ke,axisLeft:()=>Qe,axisRight:()=>Ze,axisTop:()=>Xe,bin:()=>q,bisect:()=>r.Ay,bisectCenter:()=>r.WD,bisectLeft:()=>r.ah,bisectRight:()=>r.Jj,bisector:()=>i.A,blob:()=>nu,blur:()=>a,blur2:()=>s,blurImage:()=>u,brush:()=>Eo,brushSelection:()=>xo,brushX:()=>So,brushY:()=>Ao,buffer:()=>ou,chord:()=>Do,chordDirected:()=>jo,chordTranspose:()=>Fo,cluster:()=>rp,color:()=>_r.Ay,contourDensity:()=>ta,contours:()=>qi,count:()=>h,create:()=>zy,creator:()=>on,cross:()=>y,csv:()=>lu,csvFormat:()=>es,csvFormatBody:()=>ts,csvFormatRow:()=>rs,csvFormatRows:()=>ns,csvFormatValue:()=>os,csvParse:()=>Qa,csvParseRows:()=>Ja,cubehelix:()=>Fi,cumsum:()=>m,curveBasis:()=>bb,curveBasisClosed:()=>wb,curveBasisOpen:()=>Sb,curveBumpX:()=>Nm,curveBumpY:()=>Im,curveBundle:()=>Eb,curveCardinal:()=>Ob,curveCardinalClosed:()=>kb,curveCardinalOpen:()=>Pb,curveCatmullRom:()=>Lb,curveCatmullRomClosed:()=>Fb,curveCatmullRomOpen:()=>Ub,curveLinear:()=>vm,curveLinearClosed:()=>Bb,curveMonotoneX:()=>Xb,curveMonotoneY:()=>Zb,curveNatural:()=>Jb,curveStep:()=>t_,curveStepAfter:()=>r_,curveStepBefore:()=>n_,descending:()=>b.A,deviation:()=>w,difference:()=>Te,disjoint:()=>ke,dispatch:()=>ot,drag:()=>za,dragDisable:()=>An,dragEnable:()=>En,dsv:()=>uu,dsvFormat:()=>Za,easeBack:()=>Zs,easeBackIn:()=>Ys,easeBackInOut:()=>Zs,easeBackOut:()=>Xs,easeBounce:()=>Ws,easeBounceIn:()=>$s,easeBounceInOut:()=>Gs,easeBounceOut:()=>Ws,easeCircle:()=>Ns,easeCircleIn:()=>Ms,easeCircleInOut:()=>Ns,easeCircleOut:()=>Ps,easeCubic:()=>Wr,easeCubicIn:()=>Hr,easeCubicInOut:()=>Wr,easeCubicOut:()=>$r,easeElastic:()=>Js,easeElasticIn:()=>Qs,easeElasticInOut:()=>eu,easeElasticOut:()=>Js,easeExp:()=>ks,easeExpIn:()=>Os,easeExpInOut:()=>ks,easeExpOut:()=>Ts,easeLinear:()=>gs,easePoly:()=>ws,easePolyIn:()=>bs,easePolyInOut:()=>ws,easePolyOut:()=>_s,easeQuad:()=>ms,easeQuadIn:()=>vs,easeQuadInOut:()=>ms,easeQuadOut:()=>ys,easeSin:()=>Cs,easeSinIn:()=>As,easeSinInOut:()=>Cs,easeSinOut:()=>Es,every:()=>Se,extent:()=>x,fcumsum:()=>E,filter:()=>Ee,flatGroup:()=>M,flatRollup:()=>P,forceCenter:()=>mu,forceCollide:()=>Mu,forceLink:()=>Iu,forceManyBody:()=>Hu,forceRadial:()=>$u,forceSimulation:()=>Vu,forceX:()=>Wu,forceY:()=>Gu,format:()=>qu.GP,formatDefaultLocale:()=>qu.Ay,formatLocale:()=>Yu.A,formatPrefix:()=>qu.s,formatSpecifier:()=>Xu.A,fsum:()=>A,geoAlbers:()=>mh,geoAlbersUsa:()=>bh,geoArea:()=>Jl,geoAzimuthalEqualArea:()=>Sh,geoAzimuthalEqualAreaRaw:()=>xh,geoAzimuthalEquidistant:()=>Eh,geoAzimuthalEquidistantRaw:()=>Ah,geoBounds:()=>Ic,geoCentroid:()=>Gc,geoCircle:()=>rf,geoClipAntimeridian:()=>gf,geoClipCircle:()=>vf,geoClipExtent:()=>Af,geoClipRectangle:()=>Sf,geoConicConformal:()=>Mh,geoConicConformalRaw:()=>kh,geoConicEqualArea:()=>yh,geoConicEqualAreaRaw:()=>vh,geoConicEquidistant:()=>Lh,geoConicEquidistantRaw:()=>Ih,geoContains:()=>Bf,geoDistance:()=>Pf,geoEqualEarth:()=>Vh,geoEqualEarthRaw:()=>Bh,geoEquirectangular:()=>Nh,geoEquirectangularRaw:()=>Ph,geoGnomonic:()=>$h,geoGnomonicRaw:()=>Hh,geoGraticule:()=>$f,geoGraticule10:()=>Wf,geoIdentity:()=>Wh,geoInterpolate:()=>Gf,geoLength:()=>Tf,geoMercator:()=>Rh,geoMercatorRaw:()=>Ch,geoNaturalEarth1:()=>qh,geoNaturalEarth1Raw:()=>Gh,geoOrthographic:()=>Xh,geoOrthographicRaw:()=>Yh,geoPath:()=>Jd,geoProjection:()=>hh,geoProjectionMutator:()=>ph,geoRotation:()=>ef,geoStereographic:()=>Kh,geoStereographicRaw:()=>Zh,geoStream:()=>Tl,geoTransform:()=>eh,geoTransverseMercator:()=>Jh,geoTransverseMercatorRaw:()=>Qh,gray:()=>yi,greatest:()=>pe.A,greatestIndex:()=>ge,group:()=>O,groupSort:()=>z,groups:()=>T,hcl:()=>Ci,hierarchy:()=>ip,histogram:()=>q,hsl:()=>_r.KI,html:()=>vu,image:()=>fu,index:()=>L,indexes:()=>D,interpolate:()=>Cn.A,interpolateArray:()=>fg.A,interpolateBasis:()=>dg.A,interpolateBasisClosed:()=>hg.A,interpolateBlues:()=>hy,interpolateBrBG:()=>Ev,interpolateBuGn:()=>Hv,interpolateBuPu:()=>Wv,interpolateCividis:()=>Ay,interpolateCool:()=>Ry,interpolateCubehelix:()=>Mg,interpolateCubehelixDefault:()=>Ey,interpolateCubehelixLong:()=>Pg,interpolateDate:()=>pg.A,interpolateDiscrete:()=>gg,interpolateGnBu:()=>qv,interpolateGreens:()=>gy,interpolateGreys:()=>yy,interpolateHcl:()=>Og,interpolateHclLong:()=>Tg,interpolateHsl:()=>Ag,interpolateHslLong:()=>Eg,interpolateHue:()=>yg,interpolateInferno:()=>jy,interpolateLab:()=>Cg,interpolateMagma:()=>Fy,interpolateNumber:()=>cr.A,interpolateNumberArray:()=>mg.A,interpolateObject:()=>bg.A,interpolateOrRd:()=>Xv,interpolateOranges:()=>Sy,interpolatePRGn:()=>Rv,interpolatePiYG:()=>Tv,interpolatePlasma:()=>Uy,interpolatePuBu:()=>Jv,interpolatePuBuGn:()=>Kv,interpolatePuOr:()=>Mv,interpolatePuRd:()=>ty,interpolatePurples:()=>by,interpolateRainbow:()=>Ty,interpolateRdBu:()=>Nv,interpolateRdGy:()=>Lv,interpolateRdPu:()=>ry,interpolateRdYlBu:()=>Fv,interpolateRdYlGn:()=>Uv,interpolateReds:()=>wy,interpolateRgb:()=>wr.Ay,interpolateRgbBasis:()=>wr.Ik,interpolateRgbBasisClosed:()=>wr.uL,interpolateRound:()=>_g.A,interpolateSinebow:()=>Ny,interpolateSpectral:()=>Bv,interpolateString:()=>xr.A,interpolateTransformCss:()=>gr,interpolateTransformSvg:()=>vr,interpolateTurbo:()=>Iy,interpolateViridis:()=>Dy,interpolateWarm:()=>Cy,interpolateYlGn:()=>sy,interpolateYlGnBu:()=>iy,interpolateYlOrBr:()=>ly,interpolateYlOrRd:()=>fy,interpolateZoom:()=>xg,interrupt:()=>ur,intersection:()=>Me,interval:()=>F_,isoFormat:()=>I_,isoParse:()=>D_,json:()=>hu,lab:()=>mi,lch:()=>Ei,least:()=>de,leastIndex:()=>he,line:()=>bm,lineRadial:()=>Om,link:()=>jm,linkHorizontal:()=>Um,linkRadial:()=>Bm,linkVertical:()=>zm,local:()=>Vy,map:()=>Ce,matcher:()=>ct,max:()=>K.A,maxIndex:()=>Q.A,mean:()=>J,median:()=>ee,medianIndex:()=>te,merge:()=>ne,min:()=>re.A,minIndex:()=>oe.A,mode:()=>ie,namespace:()=>Et,namespaces:()=>At,nice:()=>W,now:()=>zn,pack:()=>Lp,packEnclose:()=>bp,packSiblings:()=>Np,pairs:()=>ae,partition:()=>Bp,path:()=>Go,pathRound:()=>qo,permute:()=>ue.A,pie:()=>Sm,piecewise:()=>Ng.A,pointRadial:()=>km,pointer:()=>On,pointers:()=>$y,polygonArea:()=>Lg,polygonCentroid:()=>Dg,polygonContains:()=>Bg,polygonHull:()=>zg,polygonLength:()=>Vg,precisionFixed:()=>Zu.A,precisionPrefix:()=>Ku.A,precisionRound:()=>Qu.A,quadtree:()=>Su,quantile:()=>Y.Ay,quantileIndex:()=>Y.AX,quantileSorted:()=>Y.Z4,quantize:()=>Ig,quickselect:()=>le.A,radialArea:()=>Tm,radialLine:()=>Om,randomBates:()=>Xg,randomBernoulli:()=>Qg,randomBeta:()=>tv,randomBinomial:()=>nv,randomCauchy:()=>ov,randomExponential:()=>Zg,randomGamma:()=>ev,randomGeometric:()=>Jg,randomInt:()=>Wg,randomIrwinHall:()=>Yg,randomLcg:()=>cv,randomLogNormal:()=>qg,randomLogistic:()=>iv,randomNormal:()=>Gg,randomPareto:()=>Kg,randomPoisson:()=>av,randomUniform:()=>$g,randomWeibull:()=>rv,range:()=>ce.A,rank:()=>fe,reduce:()=>Re,reverse:()=>Oe,rgb:()=>_r.Qh,ribbon:()=>oi,ribbonArrow:()=>ii,rollup:()=>N,rollups:()=>I,scaleBand:()=>fv.scaleBand,scaleDiverging:()=>fv.scaleDiverging,scaleDivergingLog:()=>fv.scaleDivergingLog,scaleDivergingPow:()=>fv.scaleDivergingPow,scaleDivergingSqrt:()=>fv.scaleDivergingSqrt,scaleDivergingSymlog:()=>fv.scaleDivergingSymlog,scaleIdentity:()=>fv.scaleIdentity,scaleImplicit:()=>fv.scaleImplicit,scaleLinear:()=>fv.scaleLinear,scaleLog:()=>fv.scaleLog,scaleOrdinal:()=>fv.scaleOrdinal,scalePoint:()=>fv.scalePoint,scalePow:()=>fv.scalePow,scaleQuantile:()=>fv.scaleQuantile,scaleQuantize:()=>fv.scaleQuantize,scaleRadial:()=>fv.scaleRadial,scaleSequential:()=>fv.scaleSequential,scaleSequentialLog:()=>fv.scaleSequentialLog,scaleSequentialPow:()=>fv.scaleSequentialPow,scaleSequentialQuantile:()=>fv.scaleSequentialQuantile,scaleSequentialSqrt:()=>fv.scaleSequentialSqrt,scaleSequentialSymlog:()=>fv.scaleSequentialSymlog,scaleSqrt:()=>fv.scaleSqrt,scaleSymlog:()=>fv.scaleSymlog,scaleThreshold:()=>fv.scaleThreshold,scaleTime:()=>fv.scaleTime,scaleUtc:()=>fv.scaleUtc,scan:()=>ve,schemeAccent:()=>pv,schemeBlues:()=>dy,schemeBrBG:()=>Av,schemeBuGn:()=>Vv,schemeBuPu:()=>$v,schemeCategory10:()=>hv,schemeDark2:()=>gv,schemeGnBu:()=>Gv,schemeGreens:()=>py,schemeGreys:()=>vy,schemeOrRd:()=>Yv,schemeOranges:()=>xy,schemePRGn:()=>Cv,schemePaired:()=>vv,schemePastel1:()=>yv,schemePastel2:()=>mv,schemePiYG:()=>Ov,schemePuBu:()=>Qv,schemePuBuGn:()=>Zv,schemePuOr:()=>kv,schemePuRd:()=>ey,schemePurples:()=>my,schemeRdBu:()=>Pv,schemeRdGy:()=>Iv,schemeRdPu:()=>ny,schemeRdYlBu:()=>Dv,schemeRdYlGn:()=>jv,schemeReds:()=>_y,schemeSet1:()=>bv,schemeSet2:()=>_v,schemeSet3:()=>wv,schemeSpectral:()=>zv,schemeTableau10:()=>xv,schemeYlGn:()=>ay,schemeYlGnBu:()=>oy,schemeYlOrBr:()=>uy,schemeYlOrRd:()=>cy,select:()=>bn,selectAll:()=>Wy,selection:()=>mn,selector:()=>at,selectorAll:()=>lt,shuffle:()=>ye,shuffler:()=>me,some:()=>Ae,sort:()=>U.Ay,stack:()=>u_,stackOffsetDiverging:()=>c_,stackOffsetExpand:()=>l_,stackOffsetNone:()=>o_,stackOffsetSilhouette:()=>f_,stackOffsetWiggle:()=>d_,stackOrderAppearance:()=>h_,stackOrderAscending:()=>g_,stackOrderDescending:()=>y_,stackOrderInsideOut:()=>m_,stackOrderNone:()=>i_,stackOrderReverse:()=>b_,stratify:()=>qp,style:()=>Dt,subset:()=>Le,sum:()=>be,superset:()=>Ne,svg:()=>yu,symbol:()=>gb,symbolAsterisk:()=>Hm,symbolCircle:()=>$m,symbolCross:()=>Wm,symbolDiamond:()=>Ym,symbolDiamond2:()=>Xm,symbolPlus:()=>Zm,symbolSquare:()=>Km,symbolSquare2:()=>Qm,symbolStar:()=>nb,symbolTimes:()=>db,symbolTriangle:()=>ob,symbolTriangle2:()=>ab,symbolWye:()=>fb,symbolX:()=>db,symbols:()=>hb,symbolsFill:()=>hb,symbolsStroke:()=>pb,text:()=>au,thresholdFreedmanDiaconis:()=>X,thresholdScott:()=>Z,thresholdSturges:()=>G,tickFormat:()=>fv.tickFormat,tickIncrement:()=>$.lq,tickStep:()=>$.sG,ticks:()=>$.Ay,timeDay:()=>E_.UA,timeDays:()=>E_.NT,timeFormat:()=>k_.DC,timeFormatDefaultLocale:()=>k_.Ay,timeFormatLocale:()=>M_.A,timeFriday:()=>C_.TU,timeFridays:()=>C_.SQ,timeHour:()=>A_.Ag,timeHours:()=>A_.L6,timeInterval:()=>__.f,timeMillisecond:()=>w_.y,timeMilliseconds:()=>w_.R,timeMinute:()=>S_.wX,timeMinutes:()=>S_.rn,timeMonday:()=>C_.AB,timeMondays:()=>C_.h8,timeMonth:()=>R_.Ui,timeMonths:()=>R_.Bz,timeParse:()=>k_.T6,timeSaturday:()=>C_.rG,timeSaturdays:()=>C_._M,timeSecond:()=>x_.R,timeSeconds:()=>x_.Y,timeSunday:()=>C_.YP,timeSundays:()=>C_.vD,timeThursday:()=>C_.Mo,timeThursdays:()=>C_.HU,timeTickInterval:()=>T_.yE,timeTicks:()=>T_.Cf,timeTuesday:()=>C_.PG,timeTuesdays:()=>C_.OK,timeWednesday:()=>C_.Gu,timeWednesdays:()=>C_.Dr,timeWeek:()=>C_.YP,timeWeeks:()=>C_.vD,timeYear:()=>O_.he,timeYears:()=>O_.Yo,timeout:()=>Yn,timer:()=>Hn,timerFlush:()=>$n,transition:()=>zr,transpose:()=>_e,tree:()=>ng,treemap:()=>sg,treemapBinary:()=>ug,treemapDice:()=>zp,treemapResquarify:()=>cg,treemapSlice:()=>rg,treemapSliceDice:()=>lg,treemapSquarify:()=>ag,tsv:()=>cu,tsvFormat:()=>us,tsvFormatBody:()=>ls,tsvFormatRow:()=>fs,tsvFormatRows:()=>cs,tsvFormatValue:()=>ds,tsvParse:()=>as,tsvParseRows:()=>ss,union:()=>De,unixDay:()=>E_.TW,unixDays:()=>E_.yE,utcDay:()=>E_.dA,utcDays:()=>E_.ou,utcFormat:()=>k_.aL,utcFriday:()=>C_.a1,utcFridays:()=>C_.Zn,utcHour:()=>A_.pz,utcHours:()=>A_.iA,utcMillisecond:()=>w_.y,utcMilliseconds:()=>w_.R,utcMinute:()=>S_.vD,utcMinutes:()=>S_.Y4,utcMonday:()=>C_.rt,utcMondays:()=>C_.ON,utcMonth:()=>R_.R6,utcMonths:()=>R_.oi,utcParse:()=>k_.GY,utcSaturday:()=>C_.c8,utcSaturdays:()=>C_.Xo,utcSecond:()=>x_.R,utcSeconds:()=>x_.Y,utcSunday:()=>C_.Hl,utcSundays:()=>C_.aZ,utcThursday:()=>C_.pT,utcThursdays:()=>C_.wr,utcTickInterval:()=>T_.lk,utcTicks:()=>T_.$Z,utcTuesday:()=>C_.sr,utcTuesdays:()=>C_.jN,utcWednesday:()=>C_.z2,utcWednesdays:()=>C_.G6,utcWeek:()=>C_.Hl,utcWeeks:()=>C_.aZ,utcYear:()=>O_.Mb,utcYears:()=>O_.jH,variance:()=>_,window:()=>Pt,xml:()=>gu,zip:()=>xe,zoom:()=>K_,zoomIdentity:()=>B_,zoomTransform:()=>V_});var r=n(52016),o=n(12902),i=n(86037);function a(e,t){if(!((t=+t)>=0))throw new RangeError("invalid r");let n=e.length;if(!((n=Math.floor(n))>=0))throw new RangeError("invalid length");if(!n||!t)return e;const r=d(t),o=e.slice();return r(e,o,0,n,1),r(o,e,0,n,1),r(e,o,0,n,1),e}const s=l(d),u=l((function(e){const t=d(e);return(e,n,r,o,i)=>{t(e,n,(r<<=2)+0,(o<<=2)+0,i<<=2),t(e,n,r+1,o+1,i),t(e,n,r+2,o+2,i),t(e,n,r+3,o+3,i)}}));function l(e){return function(t,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:a}=t;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!a||!n&&!r)return t;const s=n&&e(n),u=r&&e(r),l=o.slice();return s&&u?(c(s,l,o,i,a),c(s,o,l,i,a),c(s,l,o,i,a),f(u,o,l,i,a),f(u,l,o,i,a),f(u,o,l,i,a)):s?(c(s,o,l,i,a),c(s,l,o,i,a),c(s,o,l,i,a)):u&&(f(u,o,l,i,a),f(u,l,o,i,a),f(u,o,l,i,a)),t}}function c(e,t,n,r,o){for(let i=0,a=r*o;i<a;)e(t,n,i,i+=r,1)}function f(e,t,n,r,o){for(let i=0,a=r*o;i<r;++i)e(t,n,i,i+a,r)}function d(e){const t=Math.floor(e);if(t===e)return function(e){const t=2*e+1;return(n,r,o,i,a)=>{if(!((i-=a)>=o))return;let s=e*r[o];const u=a*e;for(let e=o,t=o+u;e<t;e+=a)s+=r[Math.min(i,e)];for(let e=o,l=i;e<=l;e+=a)s+=r[Math.min(i,e+u)],n[e]=s/t,s-=r[Math.max(o,e-u)]}}(e);const n=e-t,r=2*e+1;return(e,o,i,a,s)=>{if(!((a-=s)>=i))return;let u=t*o[i];const l=s*t,c=l+s;for(let t=i,n=i+l;t<n;t+=s)u+=o[Math.min(a,t)];for(let t=i,f=a;t<=f;t+=s)u+=o[Math.min(a,t+l)],e[t]=(u+n*(o[Math.max(i,t-c)]+o[Math.min(a,t+c)]))/r,u-=o[Math.max(i,t-l)]}}function h(e,t){let n=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&++n;else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&++n}return n}function p(e){return 0|e.length}function g(e){return!(e>0)}function v(e){return"object"!==typeof e||"length"in e?e:Array.from(e)}function y(...e){const t="function"===typeof e[e.length-1]&&function(e){return t=>e(...t)}(e.pop()),n=(e=e.map(v)).map(p),r=e.length-1,o=new Array(r+1).fill(0),i=[];if(r<0||n.some(g))return i;for(;;){i.push(o.map(((t,n)=>e[n][t])));let a=r;for(;++o[a]===n[a];){if(0===a)return t?i.map(t):i;o[a--]=0}}}function m(e,t){var n=0,r=0;return Float64Array.from(e,void 0===t?e=>n+=+e||0:o=>n+=+t(o,r++,e)||0)}var b=n(41180);function _(e,t){let n,r=0,o=0,i=0;if(void 0===t)for(let a of e)null!=a&&(a=+a)>=a&&(n=a-o,o+=n/++r,i+=n*(a-o));else{let a=-1;for(let s of e)null!=(s=t(s,++a,e))&&(s=+s)>=s&&(n=s-o,o+=n/++r,i+=n*(s-o))}if(r>1)return i/(r-1)}function w(e,t){const n=_(e,t);return n?Math.sqrt(n):n}function x(e,t){let n,r;if(void 0===t)for(const o of e)null!=o&&(void 0===n?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)));else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(void 0===n?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)))}return[n,r]}class S{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let r=0;r<this._n&&r<32;r++){const o=t[r],i=e+o,a=Math.abs(e)<Math.abs(o)?e-(i-o):o-(i-e);a&&(t[n++]=a),e=i}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,r,o=this._n,i=0;if(o>0){for(i=e[--o];o>0&&(t=i,n=e[--o],i=t+n,r=n-(i-t),!r););o>0&&(r<0&&e[o-1]<0||r>0&&e[o-1]>0)&&(n=2*r,t=i+n,n==t-i&&(i=t))}return i}}function A(e,t){const n=new S;if(void 0===t)for(let r of e)(r=+r)&&n.add(r);else{let r=-1;for(let o of e)(o=+t(o,++r,e))&&n.add(o)}return+n}function E(e,t){const n=new S;let r=-1;return Float64Array.from(e,void 0===t?e=>n.add(+e||0):o=>n.add(+t(o,++r,e)||0))}var C=n(24119);function R(e){return e}function O(e,...t){return j(e,R,R,t)}function T(e,...t){return j(e,Array.from,R,t)}function k(e,t){for(let n=1,r=t.length;n<r;++n)e=e.flatMap((e=>e.pop().map((([t,n])=>[...e,t,n]))));return e}function M(e,...t){return k(T(e,...t),t)}function P(e,t,...n){return k(I(e,t,...n),n)}function N(e,t,...n){return j(e,R,t,n)}function I(e,t,...n){return j(e,Array.from,t,n)}function L(e,...t){return j(e,R,F,t)}function D(e,...t){return j(e,Array.from,F,t)}function F(e){if(1!==e.length)throw new Error("duplicate key");return e[0]}function j(e,t,n,r){return function e(o,i){if(i>=r.length)return n(o);const a=new C.B,s=r[i++];let u=-1;for(const t of o){const e=s(t,++u,o),n=a.get(e);n?n.push(t):a.set(e,[t])}for(const[t,n]of a)a.set(t,e(n,i));return t(a)}(e,0)}var U=n(68886);function z(e,t,n){return(2!==t.length?(0,U.Ay)(N(e,t,n),(([e,t],[n,r])=>(0,o.A)(t,r)||(0,o.A)(e,n))):(0,U.Ay)(O(e,n),(([e,n],[r,i])=>t(n,i)||(0,o.A)(e,r)))).map((([e])=>e))}var B=Array.prototype,V=B.slice;B.map;function H(e){return()=>e}var $=n(6946);function W(e,t,n){let r;for(;;){const o=(0,$.lq)(e,t,n);if(o===r||0===o||!isFinite(o))return[e,t];o>0?(e=Math.floor(e/o)*o,t=Math.ceil(t/o)*o):o<0&&(e=Math.ceil(e*o)/o,t=Math.floor(t*o)/o),r=o}}function G(e){return Math.max(1,Math.ceil(Math.log(h(e))/Math.LN2)+1)}function q(){var e=R,t=x,n=G;function o(o){Array.isArray(o)||(o=Array.from(o));var i,a,s,u=o.length,l=new Array(u);for(i=0;i<u;++i)l[i]=e(o[i],i,o);var c=t(l),f=c[0],d=c[1],h=n(l,f,d);if(!Array.isArray(h)){const e=d,n=+h;if(t===x&&([f,d]=W(f,d,n)),(h=(0,$.Ay)(f,d,n))[0]<=f&&(s=(0,$.lq)(f,d,n)),h[h.length-1]>=d)if(e>=d&&t===x){const e=(0,$.lq)(f,d,n);isFinite(e)&&(e>0?d=(Math.floor(d/e)+1)*e:e<0&&(d=(Math.ceil(d*-e)+1)/-e))}else h.pop()}for(var p=h.length,g=0,v=p;h[g]<=f;)++g;for(;h[v-1]>d;)--v;(g||v<p)&&(h=h.slice(g,v),p=v-g);var y,m=new Array(p+1);for(i=0;i<=p;++i)(y=m[i]=[]).x0=i>0?h[i-1]:f,y.x1=i<p?h[i]:d;if(isFinite(s)){if(s>0)for(i=0;i<u;++i)null!=(a=l[i])&&f<=a&&a<=d&&m[Math.min(p,Math.floor((a-f)/s))].push(o[i]);else if(s<0)for(i=0;i<u;++i)if(null!=(a=l[i])&&f<=a&&a<=d){const e=Math.floor((f-a)*s);m[Math.min(p,e+(h[e]<=a))].push(o[i])}}else for(i=0;i<u;++i)null!=(a=l[i])&&f<=a&&a<=d&&m[(0,r.Ay)(h,a,0,p)].push(o[i]);return m}return o.value=function(t){return arguments.length?(e="function"===typeof t?t:H(t),o):e},o.domain=function(e){return arguments.length?(t="function"===typeof e?e:H([e[0],e[1]]),o):t},o.thresholds=function(e){return arguments.length?(n="function"===typeof e?e:H(Array.isArray(e)?V.call(e):e),o):n},o}var Y=n(84855);function X(e,t,n){const r=h(e),o=(0,Y.Ay)(e,.75)-(0,Y.Ay)(e,.25);return r&&o?Math.ceil((n-t)/(2*o*Math.pow(r,-1/3))):1}function Z(e,t,n){const r=h(e),o=w(e);return r&&o?Math.ceil((n-t)*Math.cbrt(r)/(3.49*o)):1}var K=n(30846),Q=n(4504);function J(e,t){let n=0,r=0;if(void 0===t)for(let o of e)null!=o&&(o=+o)>=o&&(++n,r+=o);else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(i=+i)>=i&&(++n,r+=i)}if(n)return r/n}function ee(e,t){return(0,Y.Ay)(e,.5,t)}function te(e,t){return(0,Y.AX)(e,.5,t)}function ne(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}var re=n(49216),oe=n(98026);function ie(e,t){const n=new C.B;if(void 0===t)for(let i of e)null!=i&&i>=i&&n.set(i,(n.get(i)||0)+1);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&o>=o&&n.set(o,(n.get(o)||0)+1)}let r,o=0;for(const[i,a]of n)a>o&&(o=a,r=i);return r}function ae(e,t=se){const n=[];let r,o=!1;for(const i of e)o&&n.push(t(r,i)),r=i,o=!0;return n}function se(e,t){return[e,t]}var ue=n(78314),le=n(15671),ce=n(6561);function fe(e,t=o.A){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");let n=Array.from(e);const r=new Float64Array(n.length);2!==t.length&&(n=n.map(t),t=o.A);const i=(e,r)=>t(n[e],n[r]);let a,s;return(e=Uint32Array.from(n,((e,t)=>t))).sort(t===o.A?(e,t)=>(0,U.o2)(n[e],n[t]):(0,U.JC)(i)),e.forEach(((e,t)=>{const n=i(e,void 0===a?e:a);n>=0?((void 0===a||n>0)&&(a=e,s=t),r[e]=s):r[e]=NaN})),r}function de(e,t=o.A){let n,r=!1;if(1===t.length){let i;for(const a of e){const e=t(a);(r?(0,o.A)(e,i)<0:0===(0,o.A)(e,e))&&(n=a,i=e,r=!0)}}else for(const o of e)(r?t(o,n)<0:0===t(o,o))&&(n=o,r=!0);return n}function he(e,t=o.A){if(1===t.length)return(0,oe.A)(e,t);let n,r=-1,i=-1;for(const o of e)++i,(r<0?0===t(o,o):t(o,n)<0)&&(n=o,r=i);return r}var pe=n(36205);function ge(e,t=o.A){if(1===t.length)return(0,Q.A)(e,t);let n,r=-1,i=-1;for(const o of e)++i,(r<0?0===t(o,o):t(o,n)>0)&&(n=o,r=i);return r}function ve(e,t){const n=he(e,t);return n<0?void 0:n}const ye=me(Math.random);function me(e){return function(t,n=0,r=t.length){let o=r-(n=+n);for(;o;){const r=e()*o--|0,i=t[o+n];t[o+n]=t[r+n],t[r+n]=i}return t}}function be(e,t){let n=0;if(void 0===t)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let o of e)(o=+t(o,++r,e))&&(n+=o)}return n}function _e(e){if(!(o=e.length))return[];for(var t=-1,n=(0,re.A)(e,we),r=new Array(n);++t<n;)for(var o,i=-1,a=r[t]=new Array(o);++i<o;)a[i]=e[i][t];return r}function we(e){return e.length}function xe(){return _e(arguments)}function Se(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");let n=-1;for(const r of e)if(!t(r,++n,e))return!1;return!0}function Ae(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");let n=-1;for(const r of e)if(t(r,++n,e))return!0;return!1}function Ee(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");const n=[];let r=-1;for(const o of e)t(o,++r,e)&&n.push(o);return n}function Ce(e,t){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!==typeof t)throw new TypeError("mapper is not a function");return Array.from(e,((n,r)=>t(n,r,e)))}function Re(e,t,n){if("function"!==typeof t)throw new TypeError("reducer is not a function");const r=e[Symbol.iterator]();let o,i,a=-1;if(arguments.length<3){if(({done:o,value:n}=r.next()),o)return;++a}for(;({done:o,value:i}=r.next()),!o;)n=t(n,i,++a,e);return n}function Oe(e){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(e).reverse()}function Te(e,...t){e=new C.v(e);for(const n of t)for(const t of n)e.delete(t);return e}function ke(e,t){const n=t[Symbol.iterator](),r=new C.v;for(const o of e){if(r.has(o))return!1;let e,t;for(;({value:e,done:t}=n.next())&&!t;){if(Object.is(o,e))return!1;r.add(e)}}return!0}function Me(e,...t){e=new C.v(e),t=t.map(Pe);e:for(const n of e)for(const r of t)if(!r.has(n)){e.delete(n);continue e}return e}function Pe(e){return e instanceof C.v?e:new C.v(e)}function Ne(e,t){const n=e[Symbol.iterator](),r=new Set;for(const o of t){const e=Ie(o);if(r.has(e))continue;let t,i;for(;({value:t,done:i}=n.next());){if(i)return!1;const n=Ie(t);if(r.add(n),Object.is(e,n))break}}return!0}function Ie(e){return null!==e&&"object"===typeof e?e.valueOf():e}function Le(e,t){return Ne(t,e)}function De(...e){const t=new C.v;for(const n of e)for(const e of n)t.add(e);return t}function Fe(e){return e}var je=1,Ue=2,ze=3,Be=4,Ve=1e-6;function He(e){return"translate("+e+",0)"}function $e(e){return"translate(0,"+e+")"}function We(e){return t=>+e(t)}function Ge(e,t){return t=Math.max(0,e.bandwidth()-2*t)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function qe(){return!this.__axis}function Ye(e,t){var n=[],r=null,o=null,i=6,a=6,s=3,u="undefined"!==typeof window&&window.devicePixelRatio>1?0:.5,l=e===je||e===Be?-1:1,c=e===Be||e===Ue?"x":"y",f=e===je||e===ze?He:$e;function d(d){var h=null==r?t.ticks?t.ticks.apply(t,n):t.domain():r,p=null==o?t.tickFormat?t.tickFormat.apply(t,n):Fe:o,g=Math.max(i,0)+s,v=t.range(),y=+v[0]+u,m=+v[v.length-1]+u,b=(t.bandwidth?Ge:We)(t.copy(),u),_=d.selection?d.selection():d,w=_.selectAll(".domain").data([null]),x=_.selectAll(".tick").data(h,t).order(),S=x.exit(),A=x.enter().append("g").attr("class","tick"),E=x.select("line"),C=x.select("text");w=w.merge(w.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(A),E=E.merge(A.append("line").attr("stroke","currentColor").attr(c+"2",l*i)),C=C.merge(A.append("text").attr("fill","currentColor").attr(c,l*g).attr("dy",e===je?"0em":e===ze?"0.71em":"0.32em")),d!==_&&(w=w.transition(d),x=x.transition(d),E=E.transition(d),C=C.transition(d),S=S.transition(d).attr("opacity",Ve).attr("transform",(function(e){return isFinite(e=b(e))?f(e+u):this.getAttribute("transform")})),A.attr("opacity",Ve).attr("transform",(function(e){var t=this.parentNode.__axis;return f((t&&isFinite(t=t(e))?t:b(e))+u)}))),S.remove(),w.attr("d",e===Be||e===Ue?a?"M"+l*a+","+y+"H"+u+"V"+m+"H"+l*a:"M"+u+","+y+"V"+m:a?"M"+y+","+l*a+"V"+u+"H"+m+"V"+l*a:"M"+y+","+u+"H"+m),x.attr("opacity",1).attr("transform",(function(e){return f(b(e)+u)})),E.attr(c+"2",l*i),C.attr(c,l*g).text(p),_.filter(qe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",e===Ue?"start":e===Be?"end":"middle"),_.each((function(){this.__axis=b}))}return d.scale=function(e){return arguments.length?(t=e,d):t},d.ticks=function(){return n=Array.from(arguments),d},d.tickArguments=function(e){return arguments.length?(n=null==e?[]:Array.from(e),d):n.slice()},d.tickValues=function(e){return arguments.length?(r=null==e?null:Array.from(e),d):r&&r.slice()},d.tickFormat=function(e){return arguments.length?(o=e,d):o},d.tickSize=function(e){return arguments.length?(i=a=+e,d):i},d.tickSizeInner=function(e){return arguments.length?(i=+e,d):i},d.tickSizeOuter=function(e){return arguments.length?(a=+e,d):a},d.tickPadding=function(e){return arguments.length?(s=+e,d):s},d.offset=function(e){return arguments.length?(u=+e,d):u},d}function Xe(e){return Ye(je,e)}function Ze(e){return Ye(Ue,e)}function Ke(e){return Ye(ze,e)}function Qe(e){return Ye(Be,e)}var Je={value:()=>{}};function et(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new tt(r)}function tt(e){this._=e}function nt(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}function rt(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=Je,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}tt.prototype=et.prototype={constructor:tt,on:function(e,t){var n,r,o=this._,i=(r=o,(e+"").trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!==typeof t)throw new Error("invalid callback: "+t);for(;++a<s;)if(n=(e=i[a]).type)o[n]=rt(o[n],e.name,t);else if(null==t)for(n in o)o[n]=rt(o[n],e.name,null);return this}for(;++a<s;)if((n=(e=i[a]).type)&&(n=nt(o[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new tt(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,o=new Array(n),i=0;i<n;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(r=this._[e]).length;i<n;++i)r[i].value.apply(t,o)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};const ot=et;function it(){}function at(e){return null==e?it:function(){return this.querySelector(e)}}function st(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function ut(){return[]}function lt(e){return null==e?ut:function(){return this.querySelectorAll(e)}}function ct(e){return function(){return this.matches(e)}}function ft(e){return function(t){return t.matches(e)}}var dt=Array.prototype.find;function ht(){return this.firstElementChild}var pt=Array.prototype.filter;function gt(){return Array.from(this.children)}function vt(e){return new Array(e.length)}function yt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function mt(e,t,n,r,o,i){for(var a,s=0,u=t.length,l=i.length;s<l;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new yt(e,i[s]);for(;s<u;++s)(a=t[s])&&(o[s]=a)}function bt(e,t,n,r,o,i,a){var s,u,l,c=new Map,f=t.length,d=i.length,h=new Array(f);for(s=0;s<f;++s)(u=t[s])&&(h[s]=l=a.call(u,u.__data__,s,t)+"",c.has(l)?o[s]=u:c.set(l,u));for(s=0;s<d;++s)l=a.call(e,i[s],s,i)+"",(u=c.get(l))?(r[s]=u,u.__data__=i[s],c.delete(l)):n[s]=new yt(e,i[s]);for(s=0;s<f;++s)(u=t[s])&&c.get(h[s])===u&&(o[s]=u)}function _t(e){return e.__data__}function wt(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function xt(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}yt.prototype={constructor:yt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var St="http://www.w3.org/1999/xhtml";const At={svg:"http://www.w3.org/2000/svg",xhtml:St,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Et(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),At.hasOwnProperty(t)?{space:At[t],local:e}:e}function Ct(e){return function(){this.removeAttribute(e)}}function Rt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ot(e,t){return function(){this.setAttribute(e,t)}}function Tt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function kt(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function Mt(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Pt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Nt(e){return function(){this.style.removeProperty(e)}}function It(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Lt(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Dt(e,t){return e.style.getPropertyValue(t)||Pt(e).getComputedStyle(e,null).getPropertyValue(t)}function Ft(e){return function(){delete this[e]}}function jt(e,t){return function(){this[e]=t}}function Ut(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function zt(e){return e.trim().split(/^|\s+/)}function Bt(e){return e.classList||new Vt(e)}function Vt(e){this._node=e,this._names=zt(e.getAttribute("class")||"")}function Ht(e,t){for(var n=Bt(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function $t(e,t){for(var n=Bt(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Wt(e){return function(){Ht(this,e)}}function Gt(e){return function(){$t(this,e)}}function qt(e,t){return function(){(t.apply(this,arguments)?Ht:$t)(this,e)}}function Yt(){this.textContent=""}function Xt(e){return function(){this.textContent=e}}function Zt(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function Kt(){this.innerHTML=""}function Qt(e){return function(){this.innerHTML=e}}function Jt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function en(){this.nextSibling&&this.parentNode.appendChild(this)}function tn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function nn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===St&&t.documentElement.namespaceURI===St?t.createElement(e):t.createElementNS(n,e)}}function rn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function on(e){var t=Et(e);return(t.local?rn:nn)(t)}function an(){return null}function sn(){var e=this.parentNode;e&&e.removeChild(this)}function un(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ln(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function cn(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r<i;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++o]=n:this.removeEventListener(n.type,n.listener,n.options);++o?t.length=o:delete this.__on}}}function fn(e,t,n){return function(){var r,o=this.__on,i=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(o)for(var a=0,s=o.length;a<s;++a)if((r=o[a]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=t);this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function dn(e,t,n){var r=Pt(e),o=r.CustomEvent;"function"===typeof o?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function hn(e,t){return function(){return dn(this,e,t)}}function pn(e,t){return function(){return dn(this,e,t.apply(this,arguments))}}Vt.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var gn=[null];function vn(e,t){this._groups=e,this._parents=t}function yn(){return new vn([[document.documentElement]],gn)}vn.prototype=yn.prototype={constructor:vn,select:function(e){"function"!==typeof e&&(e=at(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a,s=t[o],u=s.length,l=r[o]=new Array(u),c=0;c<u;++c)(i=s[c])&&(a=e.call(i,i.__data__,c,s))&&("__data__"in i&&(a.__data__=i.__data__),l[c]=a);return new vn(r,this._parents)},selectAll:function(e){e="function"===typeof e?function(e){return function(){return st(e.apply(this,arguments))}}(e):lt(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var a,s=t[i],u=s.length,l=0;l<u;++l)(a=s[l])&&(r.push(e.call(a,a.__data__,l,s)),o.push(a));return new vn(r,o)},selectChild:function(e){return this.select(null==e?ht:function(e){return function(){return dt.call(this.children,e)}}("function"===typeof e?e:ft(e)))},selectChildren:function(e){return this.selectAll(null==e?gt:function(e){return function(){return pt.call(this.children,e)}}("function"===typeof e?e:ft(e)))},filter:function(e){"function"!==typeof e&&(e=ct(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,u=r[o]=[],l=0;l<s;++l)(i=a[l])&&e.call(i,i.__data__,l,a)&&u.push(i);return new vn(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,_t);var n=t?bt:mt,r=this._parents,o=this._groups;"function"!==typeof e&&(e=function(e){return function(){return e}}(e));for(var i=o.length,a=new Array(i),s=new Array(i),u=new Array(i),l=0;l<i;++l){var c=r[l],f=o[l],d=f.length,h=wt(e.call(c,c&&c.__data__,l,r)),p=h.length,g=s[l]=new Array(p),v=a[l]=new Array(p);n(c,f,g,v,u[l]=new Array(d),h,t);for(var y,m,b=0,_=0;b<p;++b)if(y=g[b]){for(b>=_&&(_=b+1);!(m=v[_])&&++_<p;);y._next=m||null}}return(a=new vn(a,r))._enter=s,a._exit=u,a},enter:function(){return new vn(this._enter||this._groups.map(vt),this._parents)},exit:function(){return new vn(this._exit||this._groups.map(vt),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"===typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),u=0;u<a;++u)for(var l,c=n[u],f=r[u],d=c.length,h=s[u]=new Array(d),p=0;p<d;++p)(l=c[p]||f[p])&&(h[p]=l);for(;u<o;++u)s[u]=n[u];return new vn(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,o=e[t],i=o.length-1,a=o[i];--i>=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=xt);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var a,s=n[i],u=s.length,l=o[i]=new Array(u),c=0;c<u;++c)(a=s[c])&&(l[c]=a);l.sort(t)}return new vn(o,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null},size:function(){let e=0;for(const t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o,i=t[n],a=0,s=i.length;a<s;++a)(o=i[a])&&e.call(o,o.__data__,a,i);return this},attr:function(e,t){var n=Et(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?Rt:Ct:"function"===typeof t?n.local?Mt:kt:n.local?Tt:Ot)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Nt:"function"===typeof t?Lt:It)(e,t,null==n?"":n)):Dt(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Ft:"function"===typeof t?Ut:jt)(e,t)):this.node()[e]},classed:function(e,t){var n=zt(e+"");if(arguments.length<2){for(var r=Bt(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"===typeof t?qt:t?Wt:Gt)(n,t))},text:function(e){return arguments.length?this.each(null==e?Yt:("function"===typeof e?Zt:Xt)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?Kt:("function"===typeof e?Jt:Qt)(e)):this.node().innerHTML},raise:function(){return this.each(en)},lower:function(){return this.each(tn)},append:function(e){var t="function"===typeof e?e:on(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"===typeof e?e:on(e),r=null==t?an:"function"===typeof t?t:at(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(sn)},clone:function(e){return this.select(e?ln:un)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,o,i=function(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?fn:cn,r=0;r<a;++r)this.each(s(i[r],t,n));return this}var s=this.node().__on;if(s)for(var u,l=0,c=s.length;l<c;++l)for(r=0,u=s[l];r<a;++r)if((o=i[r]).type===u.type&&o.name===u.name)return u.value},dispatch:function(e,t){return this.each(("function"===typeof t?pn:hn)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,o=e[t],i=0,a=o.length;i<a;++i)(r=o[i])&&(yield r)}};const mn=yn;function bn(e){return"string"===typeof e?new vn([[document.querySelector(e)]],[document.documentElement]):new vn([[e]],gn)}const _n={passive:!1},wn={capture:!0,passive:!1};function xn(e){e.stopImmediatePropagation()}function Sn(e){e.preventDefault(),e.stopImmediatePropagation()}function An(e){var t=e.document.documentElement,n=bn(e).on("dragstart.drag",Sn,wn);"onselectstart"in t?n.on("selectstart.drag",Sn,wn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function En(e,t){var n=e.document.documentElement,r=bn(e).on("dragstart.drag",null);t&&(r.on("click.drag",Sn,wn),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Cn=n(58503);function Rn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function On(e,t){if(e=Rn(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}var Tn,kn,Mn=0,Pn=0,Nn=0,In=1e3,Ln=0,Dn=0,Fn=0,jn="object"===typeof performance&&performance.now?performance:Date,Un="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function zn(){return Dn||(Un(Bn),Dn=jn.now()+Fn)}function Bn(){Dn=0}function Vn(){this._call=this._time=this._next=null}function Hn(e,t,n){var r=new Vn;return r.restart(e,t,n),r}function $n(){zn(),++Mn;for(var e,t=Tn;t;)(e=Dn-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Mn}function Wn(){Dn=(Ln=jn.now())+Fn,Mn=Pn=0;try{$n()}finally{Mn=0,function(){var e,t,n=Tn,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:Tn=t);kn=e,qn(r)}(),Dn=0}}function Gn(){var e=jn.now(),t=e-Ln;t>In&&(Fn-=t,Ln=e)}function qn(e){Mn||(Pn&&(Pn=clearTimeout(Pn)),e-Dn>24?(e<1/0&&(Pn=setTimeout(Wn,e-jn.now()-Fn)),Nn&&(Nn=clearInterval(Nn))):(Nn||(Ln=jn.now(),Nn=setInterval(Gn,In)),Mn=1,Un(Wn)))}function Yn(e,t,n){var r=new Vn;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}Vn.prototype=Hn.prototype={constructor:Vn,restart:function(e,t,n){if("function"!==typeof e)throw new TypeError("callback is not a function");n=(null==n?zn():+n)+(null==t?0:+t),this._next||kn===this||(kn?kn._next=this:Tn=this,kn=this),this._call=e,this._time=n,qn()},stop:function(){this._call&&(this._call=null,this._time=1/0,qn())}};var Xn=ot("start","end","cancel","interrupt"),Zn=[],Kn=0,Qn=1,Jn=2,er=3,tr=4,nr=5,rr=6;function or(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(e){n.state=Qn,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(i){var l,c,f,d;if(n.state!==Qn)return u();for(l in o)if((d=o[l]).name===n.name){if(d.state===er)return Yn(a);d.state===tr?(d.state=rr,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete o[l]):+l<t&&(d.state=rr,d.timer.stop(),d.on.call("cancel",e,e.__data__,d.index,d.group),delete o[l])}if(Yn((function(){n.state===er&&(n.state=tr,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=Jn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Jn){for(n.state=er,r=new Array(f=n.tween.length),l=0,c=-1;l<f;++l)(d=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(r[++c]=d);r.length=c+1}}function s(t){for(var o=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(u),n.state=nr,1),i=-1,a=r.length;++i<a;)r[i].call(e,o);n.state===nr&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){for(var r in n.state=rr,n.timer.stop(),delete o[t],o)return;delete e.__transition}o[t]=n,n.timer=Hn(i,0,n.time)}(e,n,{name:t,index:r,group:o,on:Xn,tween:Zn,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Kn})}function ir(e,t){var n=sr(e,t);if(n.state>Kn)throw new Error("too late; already scheduled");return n}function ar(e,t){var n=sr(e,t);if(n.state>er)throw new Error("too late; already running");return n}function sr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function ur(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>Jn&&n.state<nr,n.state=rr,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[o]):a=!1;a&&delete e.__transition}}var lr,cr=n(8981),fr=180/Math.PI,dr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function hr(e,t,n,r,o,i){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*fr,skewX:Math.atan(u)*fr,scaleX:a,scaleY:s}}function pr(e,t,n,r){function o(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],u=[];return i=e(i),a=e(a),function(e,r,o,i,a,s){if(e!==o||r!==i){var u=a.push("translate(",null,t,null,n);s.push({i:u-4,x:(0,cr.A)(e,o)},{i:u-2,x:(0,cr.A)(r,i)})}else(o||i)&&a.push("translate("+o+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,u),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:(0,cr.A)(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,u),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:(0,cr.A)(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,u),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:(0,cr.A)(e,n)},{i:s-2,x:(0,cr.A)(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,u),i=a=null,function(e){for(var t,n=-1,r=u.length;++n<r;)s[(t=u[n]).i]=t.x(e);return s.join("")}}}var gr=pr((function(e){const t=new("function"===typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?dr:hr(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),vr=pr((function(e){return null==e?dr:(lr||(lr=document.createElementNS("http://www.w3.org/2000/svg","g")),lr.setAttribute("transform",e),(e=lr.transform.baseVal.consolidate())?hr((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):dr)}),", ",")",")");function yr(e,t){var n,r;return function(){var o=ar(this,e),i=o.tween;if(i!==n)for(var a=0,s=(r=n=i).length;a<s;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}o.tween=r}}function mr(e,t,n){var r,o;if("function"!==typeof n)throw new Error;return function(){var i=ar(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var s={name:t,value:n},u=0,l=o.length;u<l;++u)if(o[u].name===t){o[u]=s;break}u===l&&o.push(s)}i.tween=o}}function br(e,t,n){var r=e._id;return e.each((function(){var e=ar(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return sr(e,r).value[t]}}var _r=n(46957),wr=n(21197),xr=n(67737);function Sr(e,t){var n;return("number"===typeof t?cr.A:t instanceof _r.Ay?wr.Ay:(n=(0,_r.Ay)(t))?(t=n,wr.Ay):xr.A)(e,t)}function Ar(e){return function(){this.removeAttribute(e)}}function Er(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Cr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===r?o:o=t(r=a,n)}}function Rr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===r?o:o=t(r=a,n)}}function Or(e,t,n){var r,o,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(e))===(s=u+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,u));this.removeAttribute(e)}}function Tr(e,t,n){var r,o,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(e.space,e.local))===(s=u+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,u));this.removeAttributeNS(e.space,e.local)}}function kr(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Mr(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Pr(e,t){return function(){ir(this,e).delay=+t.apply(this,arguments)}}function Nr(e,t){return t=+t,function(){ir(this,e).delay=t}}function Ir(e,t){return function(){ar(this,e).duration=+t.apply(this,arguments)}}function Lr(e,t){return t=+t,function(){ar(this,e).duration=t}}var Dr=mn.prototype.constructor;function Fr(e){return function(){this.style.removeProperty(e)}}var jr=0;function Ur(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function zr(e){return mn().transition(e)}function Br(){return++jr}var Vr=mn.prototype;function Hr(e){return e*e*e}function $r(e){return--e*e*e+1}function Wr(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}Ur.prototype=zr.prototype={constructor:Ur,select:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=at(e));for(var r=this._groups,o=r.length,i=new Array(o),a=0;a<o;++a)for(var s,u,l=r[a],c=l.length,f=i[a]=new Array(c),d=0;d<c;++d)(s=l[d])&&(u=e.call(s,s.__data__,d,l))&&("__data__"in s&&(u.__data__=s.__data__),f[d]=u,or(f[d],t,n,d,f,sr(s,n)));return new Ur(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=lt(e));for(var r=this._groups,o=r.length,i=[],a=[],s=0;s<o;++s)for(var u,l=r[s],c=l.length,f=0;f<c;++f)if(u=l[f]){for(var d,h=e.call(u,u.__data__,f,l),p=sr(u,n),g=0,v=h.length;g<v;++g)(d=h[g])&&or(d,t,n,g,h,p);i.push(h),a.push(u)}return new Ur(i,a,t,n)},selectChild:Vr.selectChild,selectChildren:Vr.selectChildren,filter:function(e){"function"!==typeof e&&(e=ct(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,u=r[o]=[],l=0;l<s;++l)(i=a[l])&&e.call(i,i.__data__,l,a)&&u.push(i);return new Ur(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s<i;++s)for(var u,l=t[s],c=n[s],f=l.length,d=a[s]=new Array(f),h=0;h<f;++h)(u=l[h]||c[h])&&(d[h]=u);for(;s<r;++s)a[s]=t[s];return new Ur(a,this._parents,this._name,this._id)},selection:function(){return new Dr(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=Br(),r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],u=s.length,l=0;l<u;++l)if(a=s[l]){var c=sr(a,t);or(a,e,n,l,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new Ur(r,this._parents,e,n)},call:Vr.call,nodes:Vr.nodes,node:Vr.node,size:Vr.size,empty:Vr.empty,each:Vr.each,on:function(e,t){var n=this._id;return arguments.length<2?sr(this.node(),n).on.on(e):this.each(function(e,t,n){var r,o,i=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?ir:ar;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=Et(e),r="transform"===n?vr:Sr;return this.attrTween(e,"function"===typeof t?(n.local?Tr:Or)(n,r,br(this,"attr."+e,t)):null==t?(n.local?Er:Ar)(n):(n.local?Rr:Cr)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!==typeof t)throw new Error;var r=Et(e);return this.tween(n,(r.local?kr:Mr)(r,t))},style:function(e,t,n){var r="transform"===(e+="")?gr:Sr;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=Dt(this,e),a=(this.style.removeProperty(e),Dt(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,Fr(e)):"function"===typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=Dt(this,e),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(e),u=s=Dt(this,e)),a===u?null:a===r&&u===o?i:(o=u,i=t(r=a,s))}}(e,r,br(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var u=ar(this,e),l=u.on,c=null==u.value[a]?i||(i=Fr(t)):void 0;l===n&&o===c||(r=(n=l).copy()).on(s,o=c),u.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=Dt(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!==typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"===typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(br(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!==typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=sr(this.node(),n).tween,i=0,a=o.length;i<a;++i)if((r=o[i]).name===e)return r.value;return null}return this.each((null==t?yr:mr)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Pr:Nr)(t,e)):sr(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Ir:Lr)(t,e)):sr(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!==typeof t)throw new Error;return function(){ar(this,e).ease=t}}(t,e)):sr(this.node(),t).ease},easeVarying:function(e){if("function"!==typeof e)throw new Error;return this.each(function(e,t){return function(){var n=t.apply(this,arguments);if("function"!==typeof n)throw new Error;ar(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,r=n._id,o=n.size();return new Promise((function(i,a){var s={value:a},u={value:function(){0===--o&&i()}};n.each((function(){var n=ar(this,r),o=n.on;o!==e&&((t=(e=o).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(u)),n.on=t})),0===o&&i()}))},[Symbol.iterator]:Vr[Symbol.iterator]};var Gr={time:null,delay:0,duration:250,ease:Wr};function qr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}mn.prototype.interrupt=function(e){return this.each((function(){ur(this,e)}))},mn.prototype.transition=function(e){var t,n;e instanceof Ur?(t=e._id,e=e._name):(t=Br(),(n=Gr).time=zn(),e=null==e?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],u=s.length,l=0;l<u;++l)(a=s[l])&&or(a,e,t,l,s,n||qr(a,t));return new Ur(r,this._parents,e,t)};var Yr=[null];function Xr(e,t){var n,r,o=e.__transition;if(o)for(r in t=null==t?null:t+"",o)if((n=o[r]).state>Qn&&n.name===t)return new Ur([[e]],Yr,t,+r);return null}const Zr=e=>()=>e;function Kr(e,{sourceEvent:t,target:n,selection:r,mode:o,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:o,enumerable:!0,configurable:!0},_:{value:i}})}function Qr(e){e.preventDefault(),e.stopImmediatePropagation()}var Jr={name:"drag"},eo={name:"space"},to={name:"handle"},no={name:"center"};const{abs:ro,max:oo,min:io}=Math;function ao(e){return[+e[0],+e[1]]}function so(e){return[ao(e[0]),ao(e[1])]}var uo={name:"x",handles:["w","e"].map(yo),input:function(e,t){return null==e?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}},lo={name:"y",handles:["n","s"].map(yo),input:function(e,t){return null==e?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}},co={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(yo),input:function(e){return null==e?null:so(e)},output:function(e){return e}},fo={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},ho={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},po={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},go={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},vo={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function yo(e){return{type:e}}function mo(e){return!e.ctrlKey&&!e.button}function bo(){var e=this.ownerSVGElement||this;return e.hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function _o(){return navigator.maxTouchPoints||"ontouchstart"in this}function wo(e){for(;!e.__brush;)if(!(e=e.parentNode))return;return e.__brush}function xo(e){var t=e.__brush;return t?t.dim.output(t.selection):null}function So(){return Co(uo)}function Ao(){return Co(lo)}function Eo(){return Co(co)}function Co(e){var t,n=bo,r=mo,o=_o,i=!0,a=ot("start","brush","end"),s=6;function u(t){var n=t.property("__brush",g).selectAll(".overlay").data([yo("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",fo.overlay).merge(n).each((function(){var e=wo(this).extent;bn(this).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1])})),t.selectAll(".selection").data([yo("selection")]).enter().append("rect").attr("class","selection").attr("cursor",fo.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=t.selectAll(".handle").data(e.handles,(function(e){return e.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(e){return"handle handle--"+e.type})).attr("cursor",(function(e){return fo[e.type]})),t.each(l).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",d).filter(o).on("touchstart.brush",d).on("touchmove.brush",h).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function l(){var e=bn(this),t=wo(this).selection;t?(e.selectAll(".selection").style("display",null).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1]),e.selectAll(".handle").style("display",null).attr("x",(function(e){return"e"===e.type[e.type.length-1]?t[1][0]-s/2:t[0][0]-s/2})).attr("y",(function(e){return"s"===e.type[0]?t[1][1]-s/2:t[0][1]-s/2})).attr("width",(function(e){return"n"===e.type||"s"===e.type?t[1][0]-t[0][0]+s:s})).attr("height",(function(e){return"e"===e.type||"w"===e.type?t[1][1]-t[0][1]+s:s}))):e.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function c(e,t,n){var r=e.__brush.emitter;return!r||n&&r.clean?new f(e,t,n):r}function f(e,t,n){this.that=e,this.args=t,this.state=e.__brush,this.active=0,this.clean=n}function d(n){if((!t||n.touches)&&r.apply(this,arguments)){var o,a,s,u,f,d,h,p,g,v,y,m=this,b=n.target.__data__.type,_="selection"===(i&&n.metaKey?b="overlay":b)?Jr:i&&n.altKey?no:to,w=e===lo?null:go[b],x=e===uo?null:vo[b],S=wo(m),A=S.extent,E=S.selection,C=A[0][0],R=A[0][1],O=A[1][0],T=A[1][1],k=0,M=0,P=w&&x&&i&&n.shiftKey,N=Array.from(n.touches||[n],(e=>{const t=e.identifier;return(e=On(e,m)).point0=e.slice(),e.identifier=t,e}));ur(m);var I=c(m,arguments,!0).beforestart();if("overlay"===b){E&&(g=!0);const t=[N[0],N[1]||N[0]];S.selection=E=[[o=e===lo?C:io(t[0][0],t[1][0]),s=e===uo?R:io(t[0][1],t[1][1])],[f=e===lo?O:oo(t[0][0],t[1][0]),h=e===uo?T:oo(t[0][1],t[1][1])]],N.length>1&&U(n)}else o=E[0][0],s=E[0][1],f=E[1][0],h=E[1][1];a=o,u=s,d=f,p=h;var L=bn(m).attr("pointer-events","none"),D=L.selectAll(".overlay").attr("cursor",fo[b]);if(n.touches)I.moved=j,I.ended=z;else{var F=bn(n.view).on("mousemove.brush",j,!0).on("mouseup.brush",z,!0);i&&F.on("keydown.brush",(function(e){switch(e.keyCode){case 16:P=w&&x;break;case 18:_===to&&(w&&(f=d-k*w,o=a+k*w),x&&(h=p-M*x,s=u+M*x),_=no,U(e));break;case 32:_!==to&&_!==no||(w<0?f=d-k:w>0&&(o=a-k),x<0?h=p-M:x>0&&(s=u-M),_=eo,D.attr("cursor",fo.selection),U(e));break;default:return}Qr(e)}),!0).on("keyup.brush",(function(e){switch(e.keyCode){case 16:P&&(v=y=P=!1,U(e));break;case 18:_===no&&(w<0?f=d:w>0&&(o=a),x<0?h=p:x>0&&(s=u),_=to,U(e));break;case 32:_===eo&&(e.altKey?(w&&(f=d-k*w,o=a+k*w),x&&(h=p-M*x,s=u+M*x),_=no):(w<0?f=d:w>0&&(o=a),x<0?h=p:x>0&&(s=u),_=to),D.attr("cursor",fo[b]),U(e));break;default:return}Qr(e)}),!0),An(n.view)}l.call(m),I.start(n,_.name)}function j(e){for(const t of e.changedTouches||[e])for(const e of N)e.identifier===t.identifier&&(e.cur=On(t,m));if(P&&!v&&!y&&1===N.length){const e=N[0];ro(e.cur[0]-e[0])>ro(e.cur[1]-e[1])?y=!0:v=!0}for(const t of N)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,Qr(e),U(e)}function U(e){const t=N[0],n=t.point0;var r;switch(k=t[0]-n[0],M=t[1]-n[1],_){case eo:case Jr:w&&(k=oo(C-o,io(O-f,k)),a=o+k,d=f+k),x&&(M=oo(R-s,io(T-h,M)),u=s+M,p=h+M);break;case to:N[1]?(w&&(a=oo(C,io(O,N[0][0])),d=oo(C,io(O,N[1][0])),w=1),x&&(u=oo(R,io(T,N[0][1])),p=oo(R,io(T,N[1][1])),x=1)):(w<0?(k=oo(C-o,io(O-o,k)),a=o+k,d=f):w>0&&(k=oo(C-f,io(O-f,k)),a=o,d=f+k),x<0?(M=oo(R-s,io(T-s,M)),u=s+M,p=h):x>0&&(M=oo(R-h,io(T-h,M)),u=s,p=h+M));break;case no:w&&(a=oo(C,io(O,o-k*w)),d=oo(C,io(O,f+k*w))),x&&(u=oo(R,io(T,s-M*x)),p=oo(R,io(T,h+M*x)))}d<a&&(w*=-1,r=o,o=f,f=r,r=a,a=d,d=r,b in ho&&D.attr("cursor",fo[b=ho[b]])),p<u&&(x*=-1,r=s,s=h,h=r,r=u,u=p,p=r,b in po&&D.attr("cursor",fo[b=po[b]])),S.selection&&(E=S.selection),v&&(a=E[0][0],d=E[1][0]),y&&(u=E[0][1],p=E[1][1]),E[0][0]===a&&E[0][1]===u&&E[1][0]===d&&E[1][1]===p||(S.selection=[[a,u],[d,p]],l.call(m),I.brush(e,_.name))}function z(e){if(function(e){e.stopImmediatePropagation()}(e),e.touches){if(e.touches.length)return;t&&clearTimeout(t),t=setTimeout((function(){t=null}),500)}else En(e.view,g),F.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);L.attr("pointer-events","all"),D.attr("cursor",fo.overlay),S.selection&&(E=S.selection),function(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}(E)&&(S.selection=null,l.call(m)),I.end(e,_.name)}}function h(e){c(this,arguments).moved(e)}function p(e){c(this,arguments).ended(e)}function g(){var t=this.__brush||{selection:null};return t.extent=so(n.apply(this,arguments)),t.dim=e,t}return u.move=function(t,n,r){t.tween?t.on("start.brush",(function(e){c(this,arguments).beforestart().start(e)})).on("interrupt.brush end.brush",(function(e){c(this,arguments).end(e)})).tween("brush",(function(){var t=this,r=t.__brush,o=c(t,arguments),i=r.selection,a=e.input("function"===typeof n?n.apply(this,arguments):n,r.extent),s=(0,Cn.A)(i,a);function u(e){r.selection=1===e&&null===a?null:s(e),l.call(t),o.brush()}return null!==i&&null!==a?u:u(1)})):t.each((function(){var t=this,o=arguments,i=t.__brush,a=e.input("function"===typeof n?n.apply(t,o):n,i.extent),s=c(t,o).beforestart();ur(t),i.selection=null===a?null:a,l.call(t),s.start(r).brush(r).end(r)}))},u.clear=function(e,t){u.move(e,null,t)},f.prototype={beforestart:function(){return 1===++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(e,t){return this.starting?(this.starting=!1,this.emit("start",e,t)):this.emit("brush",e),this},brush:function(e,t){return this.emit("brush",e,t),this},end:function(e,t){return 0===--this.active&&(delete this.state.emitter,this.emit("end",e,t)),this},emit:function(t,n,r){var o=bn(this.that).datum();a.call(t,this.that,new Kr(t,{sourceEvent:n,target:u,selection:e.output(this.state.selection),mode:r,dispatch:a}),o)}},u.extent=function(e){return arguments.length?(n="function"===typeof e?e:Zr(so(e)),u):n},u.filter=function(e){return arguments.length?(r="function"===typeof e?e:Zr(!!e),u):r},u.touchable=function(e){return arguments.length?(o="function"===typeof e?e:Zr(!!e),u):o},u.handleSize=function(e){return arguments.length?(s=+e,u):s},u.keyModifiers=function(e){return arguments.length?(i=!!e,u):i},u.on=function(){var e=a.on.apply(a,arguments);return e===a?u:e},u}var Ro=Math.abs,Oo=Math.cos,To=Math.sin,ko=Math.PI,Mo=ko/2,Po=2*ko,No=Math.max,Io=1e-12;function Lo(e,t){return Array.from({length:t-e},((t,n)=>e+n))}function Do(){return Uo(!1,!1)}function Fo(){return Uo(!1,!0)}function jo(){return Uo(!0,!1)}function Uo(e,t){var n=0,r=null,o=null,i=null;function a(a){var s,u=a.length,l=new Array(u),c=Lo(0,u),f=new Array(u*u),d=new Array(u),h=0;a=Float64Array.from({length:u*u},t?(e,t)=>a[t%u][t/u|0]:(e,t)=>a[t/u|0][t%u]);for(let t=0;t<u;++t){let n=0;for(let r=0;r<u;++r)n+=a[t*u+r]+e*a[r*u+t];h+=l[t]=n}s=(h=No(0,Po-n*u)/h)?n:Po/u;{let t=0;r&&c.sort(((e,t)=>r(l[e],l[t])));for(const n of c){const r=t;if(e){const e=Lo(1+~u,u).filter((e=>e<0?a[~e*u+n]:a[n*u+e]));o&&e.sort(((e,t)=>o(e<0?-a[~e*u+n]:a[n*u+e],t<0?-a[~t*u+n]:a[n*u+t])));for(const r of e)if(r<0){(f[~r*u+n]||(f[~r*u+n]={source:null,target:null})).target={index:n,startAngle:t,endAngle:t+=a[~r*u+n]*h,value:a[~r*u+n]}}else{(f[n*u+r]||(f[n*u+r]={source:null,target:null})).source={index:n,startAngle:t,endAngle:t+=a[n*u+r]*h,value:a[n*u+r]}}d[n]={index:n,startAngle:r,endAngle:t,value:l[n]}}else{const e=Lo(0,u).filter((e=>a[n*u+e]||a[e*u+n]));o&&e.sort(((e,t)=>o(a[n*u+e],a[n*u+t])));for(const r of e){let e;if(n<r?(e=f[n*u+r]||(f[n*u+r]={source:null,target:null}),e.source={index:n,startAngle:t,endAngle:t+=a[n*u+r]*h,value:a[n*u+r]}):(e=f[r*u+n]||(f[r*u+n]={source:null,target:null}),e.target={index:n,startAngle:t,endAngle:t+=a[n*u+r]*h,value:a[n*u+r]},n===r&&(e.source=e.target)),e.source&&e.target&&e.source.value<e.target.value){const t=e.source;e.source=e.target,e.target=t}}d[n]={index:n,startAngle:r,endAngle:t,value:l[n]}}t+=s}}return(f=Object.values(f)).groups=d,i?f.sort(i):f}return a.padAngle=function(e){return arguments.length?(n=No(0,e),a):n},a.sortGroups=function(e){return arguments.length?(r=e,a):r},a.sortSubgroups=function(e){return arguments.length?(o=e,a):o},a.sortChords=function(e){return arguments.length?(null==e?i=null:(t=e,i=function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)})._=e,a):i&&i._;var t},a}const zo=Math.PI,Bo=2*zo,Vo=1e-6,Ho=Bo-Vo;function $o(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class Wo{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?$o:function(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return $o;const n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,o,i){this._append`C${+e},${+t},${+n},${+r},${this._x1=+o},${this._y1=+i}`}arcTo(e,t,n,r,o){if(e=+e,t=+t,n=+n,r=+r,(o=+o)<0)throw new Error(`negative radius: ${o}`);let i=this._x1,a=this._y1,s=n-e,u=r-t,l=i-e,c=a-t,f=l*l+c*c;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(f>Vo)if(Math.abs(c*s-u*l)>Vo&&o){let d=n-i,h=r-a,p=s*s+u*u,g=d*d+h*h,v=Math.sqrt(p),y=Math.sqrt(f),m=o*Math.tan((zo-Math.acos((p+f-g)/(2*v*y)))/2),b=m/y,_=m/v;Math.abs(b-1)>Vo&&this._append`L${e+b*l},${t+b*c}`,this._append`A${o},${o},0,0,${+(c*d>l*h)},${this._x1=e+_*s},${this._y1=t+_*u}`}else this._append`L${this._x1=e},${this._y1=t}`;else;}arc(e,t,n,r,o,i){if(e=+e,t=+t,i=!!i,(n=+n)<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),u=e+a,l=t+s,c=1^i,f=i?r-o:o-r;null===this._x1?this._append`M${u},${l}`:(Math.abs(this._x1-u)>Vo||Math.abs(this._y1-l)>Vo)&&this._append`L${u},${l}`,n&&(f<0&&(f=f%Bo+Bo),f>Ho?this._append`A${n},${n},0,1,${c},${e-a},${t-s}A${n},${n},0,1,${c},${this._x1=u},${this._y1=l}`:f>Vo&&this._append`A${n},${n},0,${+(f>=zo)},${c},${this._x1=e+n*Math.cos(o)},${this._y1=t+n*Math.sin(o)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function Go(){return new Wo}function qo(e=3){return new Wo(+e)}Go.prototype=Wo.prototype;var Yo=Array.prototype.slice;function Xo(e){return function(){return e}}function Zo(e){return e.source}function Ko(e){return e.target}function Qo(e){return e.radius}function Jo(e){return e.startAngle}function ei(e){return e.endAngle}function ti(){return 0}function ni(){return 10}function ri(e){var t=Zo,n=Ko,r=Qo,o=Qo,i=Jo,a=ei,s=ti,u=null;function l(){var l,c=t.apply(this,arguments),f=n.apply(this,arguments),d=s.apply(this,arguments)/2,h=Yo.call(arguments),p=+r.apply(this,(h[0]=c,h)),g=i.apply(this,h)-Mo,v=a.apply(this,h)-Mo,y=+o.apply(this,(h[0]=f,h)),m=i.apply(this,h)-Mo,b=a.apply(this,h)-Mo;if(u||(u=l=Go()),d>Io&&(Ro(v-g)>2*d+Io?v>g?(g+=d,v-=d):(g-=d,v+=d):g=v=(g+v)/2,Ro(b-m)>2*d+Io?b>m?(m+=d,b-=d):(m-=d,b+=d):m=b=(m+b)/2),u.moveTo(p*Oo(g),p*To(g)),u.arc(0,0,p,g,v),g!==m||v!==b)if(e){var _=y-+e.apply(this,arguments),w=(m+b)/2;u.quadraticCurveTo(0,0,_*Oo(m),_*To(m)),u.lineTo(y*Oo(w),y*To(w)),u.lineTo(_*Oo(b),_*To(b))}else u.quadraticCurveTo(0,0,y*Oo(m),y*To(m)),u.arc(0,0,y,m,b);if(u.quadraticCurveTo(0,0,p*Oo(g),p*To(g)),u.closePath(),l)return u=null,l+""||null}return e&&(l.headRadius=function(t){return arguments.length?(e="function"===typeof t?t:Xo(+t),l):e}),l.radius=function(e){return arguments.length?(r=o="function"===typeof e?e:Xo(+e),l):r},l.sourceRadius=function(e){return arguments.length?(r="function"===typeof e?e:Xo(+e),l):r},l.targetRadius=function(e){return arguments.length?(o="function"===typeof e?e:Xo(+e),l):o},l.startAngle=function(e){return arguments.length?(i="function"===typeof e?e:Xo(+e),l):i},l.endAngle=function(e){return arguments.length?(a="function"===typeof e?e:Xo(+e),l):a},l.padAngle=function(e){return arguments.length?(s="function"===typeof e?e:Xo(+e),l):s},l.source=function(e){return arguments.length?(t=e,l):t},l.target=function(e){return arguments.length?(n=e,l):n},l.context=function(e){return arguments.length?(u=null==e?null:e,l):u},l}function oi(){return ri()}function ii(){return ri(ni)}var ai=n(40871);const si=Math.PI/180,ui=180/Math.PI,li=.96422,ci=1,fi=.82521,di=4/29,hi=6/29,pi=3*hi*hi,gi=hi*hi*hi;function vi(e){if(e instanceof bi)return new bi(e.l,e.a,e.b,e.opacity);if(e instanceof Ri)return Oi(e);e instanceof _r.Gw||(e=(0,_r.b)(e));var t,n,r=Si(e.r),o=Si(e.g),i=Si(e.b),a=_i((.2225045*r+.7168786*o+.0606169*i)/ci);return r===o&&o===i?t=n=a:(t=_i((.4360747*r+.3850649*o+.1430804*i)/li),n=_i((.0139322*r+.0971045*o+.7141733*i)/fi)),new bi(116*a-16,500*(t-a),200*(a-n),e.opacity)}function yi(e,t){return new bi(e,0,0,null==t?1:t)}function mi(e,t,n,r){return 1===arguments.length?vi(e):new bi(e,t,n,null==r?1:r)}function bi(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function _i(e){return e>gi?Math.pow(e,1/3):e/pi+di}function wi(e){return e>hi?e*e*e:pi*(e-di)}function xi(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Si(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Ai(e){if(e instanceof Ri)return new Ri(e.h,e.c,e.l,e.opacity);if(e instanceof bi||(e=vi(e)),0===e.a&&0===e.b)return new Ri(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ui;return new Ri(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Ei(e,t,n,r){return 1===arguments.length?Ai(e):new Ri(n,t,e,null==r?1:r)}function Ci(e,t,n,r){return 1===arguments.length?Ai(e):new Ri(e,t,n,null==r?1:r)}function Ri(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Oi(e){if(isNaN(e.h))return new bi(e.l,0,0,e.opacity);var t=e.h*si;return new bi(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}(0,ai.A)(bi,mi,(0,ai.X)(_r.Q1,{brighter(e){return new bi(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new bi(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=li*wi(t),e=ci*wi(e),n=fi*wi(n),new _r.Gw(xi(3.1338561*t-1.6168667*e-.4906146*n),xi(-.9787684*t+1.9161415*e+.033454*n),xi(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),(0,ai.A)(Ri,Ci,(0,ai.X)(_r.Q1,{brighter(e){return new Ri(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new Ri(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return Oi(this).rgb()}}));var Ti=-.14861,ki=1.78277,Mi=-.29227,Pi=-.90649,Ni=1.97294,Ii=Ni*Pi,Li=Ni*ki,Di=ki*Mi-Pi*Ti;function Fi(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof ji)return new ji(e.h,e.s,e.l,e.opacity);e instanceof _r.Gw||(e=(0,_r.b)(e));var t=e.r/255,n=e.g/255,r=e.b/255,o=(Di*r+Ii*t-Li*n)/(Di+Ii-Li),i=r-o,a=(Ni*(n-o)-Mi*i)/Pi,s=Math.sqrt(a*a+i*i)/(Ni*o*(1-o)),u=s?Math.atan2(a,i)*ui-120:NaN;return new ji(u<0?u+360:u,s,o,e.opacity)}(e):new ji(e,t,n,null==r?1:r)}function ji(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}(0,ai.A)(ji,Fi,(0,ai.X)(_r.Q1,{brighter(e){return e=null==e?_r.Uw:Math.pow(_r.Uw,e),new ji(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?_r.ef:Math.pow(_r.ef,e),new ji(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*si,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),o=Math.sin(e);return new _r.Gw(255*(t+n*(Ti*r+ki*o)),255*(t+n*(Mi*r+Pi*o)),255*(t+n*(Ni*r)),this.opacity)}}));var Ui=Array.prototype.slice;function zi(e,t){return e-t}const Bi=e=>()=>e;function Vi(e,t){for(var n,r=-1,o=t.length;++r<o;)if(n=Hi(e,t[r]))return n;return 0}function Hi(e,t){for(var n=t[0],r=t[1],o=-1,i=0,a=e.length,s=a-1;i<a;s=i++){var u=e[i],l=u[0],c=u[1],f=e[s],d=f[0],h=f[1];if($i(u,f,t))return 0;c>r!==h>r&&n<(d-l)*(r-c)/(h-c)+l&&(o=-o)}return o}function $i(e,t,n){var r;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])===(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&function(e,t,n){return e<=t&&t<=n||n<=t&&t<=e}(e[r=+(e[0]===t[0])],n[r],t[r])}function Wi(){}var Gi=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function qi(){var e=1,t=1,n=G,r=s;function o(e){var t=n(e);if(Array.isArray(t))t=t.slice().sort(zi);else{const n=x(e,Yi);for(t=(0,$.Ay)(...W(n[0],n[1],t),t);t[t.length-1]>=n[1];)t.pop();for(;t[1]<n[0];)t.shift()}return t.map((t=>i(e,t)))}function i(n,o){const i=null==o?NaN:+o;if(isNaN(i))throw new Error(`invalid value: ${o}`);var s=[],u=[];return function(n,r,o){var i,s,u,l,c,f,d=new Array,h=new Array;i=s=-1,l=Xi(n[0],r),Gi[l<<1].forEach(p);for(;++i<e-1;)u=l,l=Xi(n[i+1],r),Gi[u|l<<1].forEach(p);Gi[l<<0].forEach(p);for(;++s<t-1;){for(i=-1,l=Xi(n[s*e+e],r),c=Xi(n[s*e],r),Gi[l<<1|c<<2].forEach(p);++i<e-1;)u=l,l=Xi(n[s*e+e+i+1],r),f=c,c=Xi(n[s*e+i+1],r),Gi[u|l<<1|c<<2|f<<3].forEach(p);Gi[l|c<<3].forEach(p)}i=-1,c=n[s*e]>=r,Gi[c<<2].forEach(p);for(;++i<e-1;)f=c,c=Xi(n[s*e+i+1],r),Gi[c<<2|f<<3].forEach(p);function p(e){var t,n,r=[e[0][0]+i,e[0][1]+s],u=[e[1][0]+i,e[1][1]+s],l=a(r),c=a(u);(t=h[l])?(n=d[c])?(delete h[t.end],delete d[n.start],t===n?(t.ring.push(u),o(t.ring)):d[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(u),h[t.end=c]=t):(t=d[c])?(n=h[l])?(delete d[t.start],delete h[n.end],t===n?(t.ring.push(u),o(t.ring)):d[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete d[t.start],t.ring.unshift(r),d[t.start=l]=t):d[l]=h[c]={start:l,end:c,ring:[r,u]}}Gi[c<<3].forEach(p)}(n,i,(function(e){r(e,n,i),function(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)r+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return r}(e)>0?s.push([e]):u.push(e)})),u.forEach((function(e){for(var t,n=0,r=s.length;n<r;++n)if(-1!==Vi((t=s[n])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:o,coordinates:s}}function a(t){return 2*t[0]+t[1]*(e+1)*4}function s(n,r,o){n.forEach((function(n){var i=n[0],a=n[1],s=0|i,u=0|a,l=Zi(r[u*e+s]);i>0&&i<e&&s===i&&(n[0]=Ki(i,Zi(r[u*e+s-1]),l,o)),a>0&&a<t&&u===a&&(n[1]=Ki(a,Zi(r[(u-1)*e+s]),l,o))}))}return o.contour=i,o.size=function(n){if(!arguments.length)return[e,t];var r=Math.floor(n[0]),i=Math.floor(n[1]);if(!(r>=0&&i>=0))throw new Error("invalid size");return e=r,t=i,o},o.thresholds=function(e){return arguments.length?(n="function"===typeof e?e:Array.isArray(e)?Bi(Ui.call(e)):Bi(e),o):n},o.smooth=function(e){return arguments.length?(r=e?s:Wi,o):r===s},o}function Yi(e){return isFinite(e)?e:NaN}function Xi(e,t){return null!=e&&+e>=t}function Zi(e){return null==e||isNaN(e=+e)?-1/0:e}function Ki(e,t,n,r){const o=r-t,i=n-t,a=isFinite(o)||isFinite(i)?o/i:Math.sign(o)/Math.sign(i);return isNaN(a)?e:e+a-.5}function Qi(e){return e[0]}function Ji(e){return e[1]}function ea(){return 1}function ta(){var e=Qi,t=Ji,n=ea,r=960,o=500,i=20,a=2,u=3*i,l=r+2*u>>a,c=o+2*u>>a,f=Bi(20);function d(r){var o=new Float32Array(l*c),f=Math.pow(2,-a),d=-1;for(const i of r){var h=(e(i,++d,r)+u)*f,p=(t(i,d,r)+u)*f,g=+n(i,d,r);if(g&&h>=0&&h<l&&p>=0&&p<c){var v=Math.floor(h),y=Math.floor(p),m=h-v-.5,b=p-y-.5;o[v+y*l]+=(1-m)*(1-b)*g,o[v+1+y*l]+=m*(1-b)*g,o[v+1+(y+1)*l]+=m*b*g,o[v+(y+1)*l]+=(1-m)*b*g}}return s({data:o,width:l,height:c},i*f),o}function h(e){var t=d(e),n=f(t),r=Math.pow(2,2*a);return Array.isArray(n)||(n=(0,$.Ay)(Number.MIN_VALUE,(0,K.A)(t)/r,n)),qi().size([l,c]).thresholds(n.map((e=>e*r)))(t).map(((e,t)=>(e.value=+n[t],p(e))))}function p(e){return e.coordinates.forEach(g),e}function g(e){e.forEach(v)}function v(e){e.forEach(y)}function y(e){e[0]=e[0]*Math.pow(2,a)-u,e[1]=e[1]*Math.pow(2,a)-u}function m(){return l=r+2*(u=3*i)>>a,c=o+2*u>>a,h}return h.contours=function(e){var t=d(e),n=qi().size([l,c]),r=Math.pow(2,2*a),o=e=>{e=+e;var o=p(n.contour(t,e*r));return o.value=e,o};return Object.defineProperty(o,"max",{get:()=>(0,K.A)(t)/r}),o},h.x=function(t){return arguments.length?(e="function"===typeof t?t:Bi(+t),h):e},h.y=function(e){return arguments.length?(t="function"===typeof e?e:Bi(+e),h):t},h.weight=function(e){return arguments.length?(n="function"===typeof e?e:Bi(+e),h):n},h.size=function(e){if(!arguments.length)return[r,o];var t=+e[0],n=+e[1];if(!(t>=0&&n>=0))throw new Error("invalid size");return r=t,o=n,m()},h.cellSize=function(e){if(!arguments.length)return 1<<a;if(!((e=+e)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(e)/Math.LN2),m()},h.thresholds=function(e){return arguments.length?(f="function"===typeof e?e:Array.isArray(e)?Bi(Ui.call(e)):Bi(e),h):f},h.bandwidth=function(e){if(!arguments.length)return Math.sqrt(i*(i+1));if(!((e=+e)>=0))throw new Error("invalid bandwidth");return i=(Math.sqrt(4*e*e+1)-1)/2,m()},h}const na=134217729,ra=33306690738754706e-32;function oa(e,t,n,r,o){let i,a,s,u,l=t[0],c=r[0],f=0,d=0;c>l===c>-l?(i=l,l=t[++f]):(i=c,c=r[++d]);let h=0;if(f<e&&d<n)for(c>l===c>-l?(a=l+i,s=i-(a-l),l=t[++f]):(a=c+i,s=i-(a-c),c=r[++d]),i=a,0!==s&&(o[h++]=s);f<e&&d<n;)c>l===c>-l?(a=i+l,u=a-i,s=i-(a-u)+(l-u),l=t[++f]):(a=i+c,u=a-i,s=i-(a-u)+(c-u),c=r[++d]),i=a,0!==s&&(o[h++]=s);for(;f<e;)a=i+l,u=a-i,s=i-(a-u)+(l-u),l=t[++f],i=a,0!==s&&(o[h++]=s);for(;d<n;)a=i+c,u=a-i,s=i-(a-u)+(c-u),c=r[++d],i=a,0!==s&&(o[h++]=s);return 0===i&&0!==h||(o[h++]=i),h}function ia(e){return new Float64Array(e)}const aa=22204460492503146e-32,sa=11093356479670487e-47,ua=ia(4),la=ia(8),ca=ia(12),fa=ia(16),da=ia(4);function ha(e,t,n,r,o,i){const a=(t-i)*(n-o),s=(e-o)*(r-i),u=a-s;if(0===a||0===s||a>0!==s>0)return u;const l=Math.abs(a+s);return Math.abs(u)>=33306690738754716e-32*l?u:-function(e,t,n,r,o,i,a){let s,u,l,c,f,d,h,p,g,v,y,m,b,_,w,x,S,A;const E=e-o,C=n-o,R=t-i,O=r-i;_=E*O,d=na*E,h=d-(d-E),p=E-h,d=na*O,g=d-(d-O),v=O-g,w=p*v-(_-h*g-p*g-h*v),x=R*C,d=na*R,h=d-(d-R),p=R-h,d=na*C,g=d-(d-C),v=C-g,S=p*v-(x-h*g-p*g-h*v),y=w-S,f=w-y,ua[0]=w-(y+f)+(f-S),m=_+y,f=m-_,b=_-(m-f)+(y-f),y=b-x,f=b-y,ua[1]=b-(y+f)+(f-x),A=m+y,f=A-m,ua[2]=m-(A-f)+(y-f),ua[3]=A;let T=function(e,t){let n=t[0];for(let r=1;r<e;r++)n+=t[r];return n}(4,ua),k=aa*a;if(T>=k||-T>=k)return T;if(f=e-E,s=e-(E+f)+(f-o),f=n-C,l=n-(C+f)+(f-o),f=t-R,u=t-(R+f)+(f-i),f=r-O,c=r-(O+f)+(f-i),0===s&&0===u&&0===l&&0===c)return T;if(k=sa*a+ra*Math.abs(T),T+=E*c+O*s-(R*l+C*u),T>=k||-T>=k)return T;_=s*O,d=na*s,h=d-(d-s),p=s-h,d=na*O,g=d-(d-O),v=O-g,w=p*v-(_-h*g-p*g-h*v),x=u*C,d=na*u,h=d-(d-u),p=u-h,d=na*C,g=d-(d-C),v=C-g,S=p*v-(x-h*g-p*g-h*v),y=w-S,f=w-y,da[0]=w-(y+f)+(f-S),m=_+y,f=m-_,b=_-(m-f)+(y-f),y=b-x,f=b-y,da[1]=b-(y+f)+(f-x),A=m+y,f=A-m,da[2]=m-(A-f)+(y-f),da[3]=A;const M=oa(4,ua,4,da,la);_=E*c,d=na*E,h=d-(d-E),p=E-h,d=na*c,g=d-(d-c),v=c-g,w=p*v-(_-h*g-p*g-h*v),x=R*l,d=na*R,h=d-(d-R),p=R-h,d=na*l,g=d-(d-l),v=l-g,S=p*v-(x-h*g-p*g-h*v),y=w-S,f=w-y,da[0]=w-(y+f)+(f-S),m=_+y,f=m-_,b=_-(m-f)+(y-f),y=b-x,f=b-y,da[1]=b-(y+f)+(f-x),A=m+y,f=A-m,da[2]=m-(A-f)+(y-f),da[3]=A;const P=oa(M,la,4,da,ca);_=s*c,d=na*s,h=d-(d-s),p=s-h,d=na*c,g=d-(d-c),v=c-g,w=p*v-(_-h*g-p*g-h*v),x=u*l,d=na*u,h=d-(d-u),p=u-h,d=na*l,g=d-(d-l),v=l-g,S=p*v-(x-h*g-p*g-h*v),y=w-S,f=w-y,da[0]=w-(y+f)+(f-S),m=_+y,f=m-_,b=_-(m-f)+(y-f),y=b-x,f=b-y,da[1]=b-(y+f)+(f-x),A=m+y,f=A-m,da[2]=m-(A-f)+(y-f),da[3]=A;const N=oa(P,ca,4,da,fa);return fa[N-1]}(e,t,n,r,o,i,l)}ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(8),ia(8),ia(8),ia(4),ia(8),ia(8),ia(8),ia(12);ia(192),ia(192);ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(8),ia(8),ia(8),ia(8),ia(8),ia(8),ia(8),ia(8),ia(8),ia(4),ia(4),ia(4),ia(8),ia(16),ia(16),ia(16),ia(32),ia(32),ia(48),ia(64);ia(1152),ia(1152);ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(4),ia(24),ia(24),ia(24),ia(24),ia(24),ia(24),ia(24),ia(24),ia(24),ia(24),ia(1152),ia(1152),ia(1152),ia(1152),ia(1152),ia(2304),ia(2304),ia(3456),ia(5760),ia(8),ia(8),ia(8),ia(16),ia(24),ia(48),ia(48),ia(96),ia(192),ia(384),ia(384),ia(384),ia(768);ia(96),ia(96),ia(96),ia(1152);const pa=Math.pow(2,-52),ga=new Uint32Array(512);class va{static from(e,t=xa,n=Sa){const r=e.length,o=new Float64Array(2*r);for(let i=0;i<r;i++){const r=e[i];o[2*i]=t(r),o[2*i+1]=n(r)}return new va(o)}constructor(e){const t=e.length>>1;if(t>0&&"number"!==typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:r,_hullHash:o}=this,i=e.length>>1;let a=1/0,s=1/0,u=-1/0,l=-1/0;for(let E=0;E<i;E++){const t=e[2*E],n=e[2*E+1];t<a&&(a=t),n<s&&(s=n),t>u&&(u=t),n>l&&(l=n),this._ids[E]=E}const c=(a+u)/2,f=(s+l)/2;let d,h,p,g=1/0;for(let E=0;E<i;E++){const t=ya(c,f,e[2*E],e[2*E+1]);t<g&&(d=E,g=t)}const v=e[2*d],y=e[2*d+1];g=1/0;for(let E=0;E<i;E++){if(E===d)continue;const t=ya(v,y,e[2*E],e[2*E+1]);t<g&&t>0&&(h=E,g=t)}let m=e[2*h],b=e[2*h+1],_=1/0;for(let E=0;E<i;E++){if(E===d||E===h)continue;const t=ba(v,y,m,b,e[2*E],e[2*E+1]);t<_&&(p=E,_=t)}let w=e[2*p],x=e[2*p+1];if(_===1/0){for(let r=0;r<i;r++)this._dists[r]=e[2*r]-e[0]||e[2*r+1]-e[1];_a(this._ids,this._dists,0,i-1);const t=new Uint32Array(i);let n=0;for(let e=0,r=-1/0;e<i;e++){const o=this._ids[e];this._dists[o]>r&&(t[n++]=o,r=this._dists[o])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(ha(v,y,m,b,w,x)<0){const e=h,t=m,n=b;h=p,m=w,b=x,p=e,w=t,x=n}const S=function(e,t,n,r,o,i){const a=n-e,s=r-t,u=o-e,l=i-t,c=a*a+s*s,f=u*u+l*l,d=.5/(a*l-s*u),h=e+(l*c-s*f)*d,p=t+(a*f-u*c)*d;return{x:h,y:p}}(v,y,m,b,w,x);this._cx=S.x,this._cy=S.y;for(let E=0;E<i;E++)this._dists[E]=ya(e[2*E],e[2*E+1],S.x,S.y);_a(this._ids,this._dists,0,i-1),this._hullStart=d;let A=3;n[d]=t[p]=h,n[h]=t[d]=p,n[p]=t[h]=d,r[d]=0,r[h]=1,r[p]=2,o.fill(-1),o[this._hashKey(v,y)]=d,o[this._hashKey(m,b)]=h,o[this._hashKey(w,x)]=p,this.trianglesLen=0,this._addTriangle(d,h,p,-1,-1,-1);for(let E,C,R=0;R<this._ids.length;R++){const i=this._ids[R],a=e[2*i],s=e[2*i+1];if(R>0&&Math.abs(a-E)<=pa&&Math.abs(s-C)<=pa)continue;if(E=a,C=s,i===d||i===h||i===p)continue;let u=0;for(let e=0,t=this._hashKey(a,s);e<this._hashSize&&(u=o[(t+e)%this._hashSize],-1===u||u===n[u]);e++);u=t[u];let l,c=u;for(;l=n[c],ha(a,s,e[2*c],e[2*c+1],e[2*l],e[2*l+1])>=0;)if(c=l,c===u){c=-1;break}if(-1===c)continue;let f=this._addTriangle(c,i,n[c],-1,-1,r[c]);r[i]=this._legalize(f+2),r[c]=f,A++;let g=n[c];for(;l=n[g],ha(a,s,e[2*g],e[2*g+1],e[2*l],e[2*l+1])<0;)f=this._addTriangle(g,i,l,r[i],-1,r[g]),r[i]=this._legalize(f+2),n[g]=g,A--,g=l;if(c===u)for(;l=t[c],ha(a,s,e[2*l],e[2*l+1],e[2*c],e[2*c+1])<0;)f=this._addTriangle(l,i,c,-1,r[c],r[l]),this._legalize(f+2),r[l]=f,n[c]=c,A--,c=l;this._hullStart=t[i]=c,n[c]=t[g]=i,n[i]=g,o[this._hashKey(a,s)]=i,o[this._hashKey(e[2*c],e[2*c+1])]=c}this.hull=new Uint32Array(A);for(let E=0,C=this._hullStart;E<A;E++)this.hull[E]=C,C=n[C];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:r}=this;let o=0,i=0;for(;;){const a=n[e],s=e-e%3;if(i=s+(e+2)%3,-1===a){if(0===o)break;e=ga[--o];continue}const u=a-a%3,l=s+(e+1)%3,c=u+(a+2)%3,f=t[i],d=t[e],h=t[l],p=t[c];if(ma(r[2*f],r[2*f+1],r[2*d],r[2*d+1],r[2*h],r[2*h+1],r[2*p],r[2*p+1])){t[e]=p,t[a]=f;const r=n[c];if(-1===r){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,r),this._link(a,n[i]),this._link(i,c);const s=u+(a+1)%3;o<ga.length&&(ga[o++]=s)}else{if(0===o)break;e=ga[--o]}}return i}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,r,o,i){const a=this.trianglesLen;return this._triangles[a]=e,this._triangles[a+1]=t,this._triangles[a+2]=n,this._link(a,r),this._link(a+1,o),this._link(a+2,i),this.trianglesLen+=3,a}}function ya(e,t,n,r){const o=e-n,i=t-r;return o*o+i*i}function ma(e,t,n,r,o,i,a,s){const u=e-a,l=t-s,c=n-a,f=r-s,d=o-a,h=i-s,p=c*c+f*f,g=d*d+h*h;return u*(f*g-p*h)-l*(c*g-p*d)+(u*u+l*l)*(c*h-f*d)<0}function ba(e,t,n,r,o,i){const a=n-e,s=r-t,u=o-e,l=i-t,c=a*a+s*s,f=u*u+l*l,d=.5/(a*l-s*u),h=(l*c-s*f)*d,p=(a*f-u*c)*d;return h*h+p*p}function _a(e,t,n,r){if(r-n<=20)for(let o=n+1;o<=r;o++){const r=e[o],i=t[r];let a=o-1;for(;a>=n&&t[e[a]]>i;)e[a+1]=e[a--];e[a+1]=r}else{let o=n+1,i=r;wa(e,n+r>>1,o),t[e[n]]>t[e[r]]&&wa(e,n,r),t[e[o]]>t[e[r]]&&wa(e,o,r),t[e[n]]>t[e[o]]&&wa(e,n,o);const a=e[o],s=t[a];for(;;){do{o++}while(t[e[o]]<s);do{i--}while(t[e[i]]>s);if(i<o)break;wa(e,o,i)}e[n+1]=e[i],e[i]=a,r-o+1>=i-n?(_a(e,t,o,r),_a(e,t,n,i-1)):(_a(e,t,n,i-1),_a(e,t,o,r))}}function wa(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function xa(e){return e[0]}function Sa(e){return e[1]}const Aa=1e-6;class Ea{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const r=(e=+e)+(n=+n),o=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${o}`:(Math.abs(this._x1-r)>Aa||Math.abs(this._y1-o)>Aa)&&(this._+="L"+r+","+o),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=r},${this._y1=o}`)}rect(e,t,n,r){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+r}h${-n}Z`}value(){return this._||null}}class Ca{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}class Ra{constructor(e,[t,n,r,o]=[0,0,960,500]){if(!((r=+r)>=(t=+t))||!((o=+o)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=r,this.xmin=t,this.ymax=o,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:r}=this,o=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let d,h,p=0,g=0,v=n.length;p<v;p+=3,g+=2){const t=2*n[p],r=2*n[p+1],i=2*n[p+2],a=e[t],s=e[t+1],u=e[r],l=e[r+1],c=e[i],f=e[i+1],v=u-a,y=l-s,m=c-a,b=f-s,_=2*(v*b-y*m);if(Math.abs(_)<1e-9){let t=1e9;const r=2*n[0];t*=Math.sign((e[r]-a)*b-(e[r+1]-s)*m),d=(a+c)/2-t*b,h=(s+f)/2+t*m}else{const e=1/_,t=v*v+y*y,n=m*m+b*b;d=a+(b*t-y*n)*e,h=s+(v*n-m*t)*e}o[g]=d,o[g+1]=h}let i,a,s,u=t[t.length-1],l=4*u,c=e[2*u],f=e[2*u+1];r.fill(0);for(let d=0;d<t.length;++d)u=t[d],i=l,a=c,s=f,l=4*u,c=e[2*u],f=e[2*u+1],r[i+2]=r[l]=s-f,r[i+3]=r[l+1]=c-a}render(e){const t=null==e?e=new Ea:void 0,{delaunay:{halfedges:n,inedges:r,hull:o},circumcenters:i,vectors:a}=this;if(o.length<=1)return null;for(let l=0,c=n.length;l<c;++l){const t=n[l];if(t<l)continue;const r=2*Math.floor(l/3),o=2*Math.floor(t/3),a=i[r],s=i[r+1],u=i[o],c=i[o+1];this._renderSegment(a,s,u,c,e)}let s,u=o[o.length-1];for(let l=0;l<o.length;++l){s=u,u=o[l];const t=2*Math.floor(r[u]/3),n=i[t],c=i[t+1],f=4*s,d=this._project(n,c,a[f+2],a[f+3]);d&&this._renderSegment(n,c,d[0],d[1],e)}return t&&t.value()}renderBounds(e){const t=null==e?e=new Ea:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){const n=null==t?t=new Ea:void 0,r=this._clip(e);if(null===r||!r.length)return;t.moveTo(r[0],r[1]);let o=r.length;for(;r[0]===r[o-2]&&r[1]===r[o-1]&&o>1;)o-=2;for(let i=2;i<o;i+=2)r[i]===r[i-2]&&r[i+1]===r[i-1]||t.lineTo(r[i],r[i+1]);return t.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let t=0,n=e.length/2;t<n;++t){const e=this.cellPolygon(t);e&&(e.index=t,yield e)}}cellPolygon(e){const t=new Ca;return this.renderCell(e,t),t.value()}_renderSegment(e,t,n,r,o){let i;const a=this._regioncode(e,t),s=this._regioncode(n,r);0===a&&0===s?(o.moveTo(e,t),o.lineTo(n,r)):(i=this._clipSegment(e,t,n,r,a,s))&&(o.moveTo(i[0],i[1]),o.lineTo(i[2],i[3]))}contains(e,t,n){return(t=+t)===t&&(n=+n)===n&&this.delaunay._step(e,t,n)===e}*neighbors(e){const t=this._clip(e);if(t)for(const n of this.delaunay.neighbors(e)){const e=this._clip(n);if(e)e:for(let r=0,o=t.length;r<o;r+=2)for(let i=0,a=e.length;i<a;i+=2)if(t[r]===e[i]&&t[r+1]===e[i+1]&&t[(r+2)%o]===e[(i+a-2)%a]&&t[(r+3)%o]===e[(i+a-1)%a]){yield n;break e}}}_cell(e){const{circumcenters:t,delaunay:{inedges:n,halfedges:r,triangles:o}}=this,i=n[e];if(-1===i)return null;const a=[];let s=i;do{const n=Math.floor(s/3);if(a.push(t[2*n],t[2*n+1]),s=s%3===2?s-2:s+1,o[s]!==e)break;s=r[s]}while(s!==i&&-1!==s);return a}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const t=this._cell(e);if(null===t)return null;const{vectors:n}=this,r=4*e;return this._simplify(n[r]||n[r+1]?this._clipInfinite(e,t,n[r],n[r+1],n[r+2],n[r+3]):this._clipFinite(e,t))}_clipFinite(e,t){const n=t.length;let r,o,i,a,s=null,u=t[n-2],l=t[n-1],c=this._regioncode(u,l),f=0;for(let d=0;d<n;d+=2)if(r=u,o=l,u=t[d],l=t[d+1],i=c,c=this._regioncode(u,l),0===i&&0===c)a=f,f=0,s?s.push(u,l):s=[u,l];else{let t,n,d,h,p;if(0===i){if(null===(t=this._clipSegment(r,o,u,l,i,c)))continue;[n,d,h,p]=t}else{if(null===(t=this._clipSegment(u,l,r,o,c,i)))continue;[h,p,n,d]=t,a=f,f=this._edgecode(n,d),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(n,d):s=[n,d]}a=f,f=this._edgecode(h,p),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(h,p):s=[h,p]}if(s)a=f,f=this._edgecode(s[0],s[1]),a&&f&&this._edge(e,a,f,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(e,t,n,r,o,i){const a=o<i;for(a&&([e,t,n,r,o,i]=[n,r,e,t,i,o]);;){if(0===o&&0===i)return a?[n,r,e,t]:[e,t,n,r];if(o&i)return null;let s,u,l=o||i;8&l?(s=e+(n-e)*(this.ymax-t)/(r-t),u=this.ymax):4&l?(s=e+(n-e)*(this.ymin-t)/(r-t),u=this.ymin):2&l?(u=t+(r-t)*(this.xmax-e)/(n-e),s=this.xmax):(u=t+(r-t)*(this.xmin-e)/(n-e),s=this.xmin),o?(e=s,t=u,o=this._regioncode(e,t)):(n=s,r=u,i=this._regioncode(n,r))}}_clipInfinite(e,t,n,r,o,i){let a,s=Array.from(t);if((a=this._project(s[0],s[1],n,r))&&s.unshift(a[0],a[1]),(a=this._project(s[s.length-2],s[s.length-1],o,i))&&s.push(a[0],a[1]),s=this._clipFinite(e,s))for(let u,l=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);l<c;l+=2)u=f,f=this._edgecode(s[l],s[l+1]),u&&f&&(l=this._edge(e,u,f,s,l),c=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,n,r,o){for(;t!==n;){let n,i;switch(t){case 5:t=4;continue;case 4:t=6,n=this.xmax,i=this.ymin;break;case 6:t=2;continue;case 2:t=10,n=this.xmax,i=this.ymax;break;case 10:t=8;continue;case 8:t=9,n=this.xmin,i=this.ymax;break;case 9:t=1;continue;case 1:t=5,n=this.xmin,i=this.ymin}r[o]===n&&r[o+1]===i||!this.contains(e,n,i)||(r.splice(o,0,n,i),o+=2)}return o}_project(e,t,n,r){let o,i,a,s=1/0;if(r<0){if(t<=this.ymin)return null;(o=(this.ymin-t)/r)<s&&(a=this.ymin,i=e+(s=o)*n)}else if(r>0){if(t>=this.ymax)return null;(o=(this.ymax-t)/r)<s&&(a=this.ymax,i=e+(s=o)*n)}if(n>0){if(e>=this.xmax)return null;(o=(this.xmax-e)/n)<s&&(i=this.xmax,a=t+(s=o)*r)}else if(n<0){if(e<=this.xmin)return null;(o=(this.xmin-e)/n)<s&&(i=this.xmin,a=t+(s=o)*r)}return[i,a]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){const n=(t+2)%e.length,r=(t+4)%e.length;(e[t]===e[n]&&e[n]===e[r]||e[t+1]===e[n+1]&&e[n+1]===e[r+1])&&(e.splice(n,2),t-=2)}e.length||(e=null)}return e}}const Oa=2*Math.PI,Ta=Math.pow;function ka(e){return e[0]}function Ma(e){return e[1]}function Pa(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class Na{static from(e,t=ka,n=Ma,r){return new Na("length"in e?function(e,t,n,r){const o=e.length,i=new Float64Array(2*o);for(let a=0;a<o;++a){const o=e[a];i[2*a]=t.call(r,o,a,e),i[2*a+1]=n.call(r,o,a,e)}return i}(e,t,n,r):Float64Array.from(function*(e,t,n,r){let o=0;for(const i of e)yield t.call(r,i,o,e),yield n.call(r,i,o,e),++o}(e,t,n,r)))}constructor(e){this._delaunator=new va(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:t,coords:n}=e;for(let r=0;r<t.length;r+=3){const e=2*t[r],o=2*t[r+1],i=2*t[r+2];if((n[i]-n[e])*(n[o+1]-n[e+1])-(n[o]-n[e])*(n[i+1]-n[e+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],r=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],o=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let i=0,a=t.length/2;i<a;++i){const e=Pa(t[2*i],t[2*i+1],o);t[2*i]=e[0],t[2*i+1]=e[1]}this._delaunator=new va(t)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let s=0,u=n.length;s<u;++s){const e=o[s%3===2?s-2:s+1];-1!==n[s]&&-1!==i[e]||(i[e]=s)}for(let s=0,u=r.length;s<u;++s)a[r[s]]=s;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],i[r[0]]=1,2===r.length&&(i[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(e){return new Ra(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:r,halfedges:o,triangles:i,collinear:a}=this;if(a){const t=a.indexOf(e);return t>0&&(yield a[t-1]),void(t<a.length-1&&(yield a[t+1]))}const s=t[e];if(-1===s)return;let u=s,l=-1;do{if(yield l=i[u],u=u%3===2?u-2:u+1,i[u]!==e)return;if(u=o[u],-1===u){const t=n[(r[e]+1)%n.length];return void(t!==l&&(yield t))}}while(u!==s)}find(e,t,n=0){if((e=+e)!==e||(t=+t)!==t)return-1;const r=n;let o;for(;(o=this._step(n,e,t))>=0&&o!==n&&o!==r;)n=o;return o}_step(e,t,n){const{inedges:r,hull:o,_hullIndex:i,halfedges:a,triangles:s,points:u}=this;if(-1===r[e]||!u.length)return(e+1)%(u.length>>1);let l=e,c=Ta(t-u[2*e],2)+Ta(n-u[2*e+1],2);const f=r[e];let d=f;do{let r=s[d];const f=Ta(t-u[2*r],2)+Ta(n-u[2*r+1],2);if(f<c&&(c=f,l=r),d=d%3===2?d-2:d+1,s[d]!==e)break;if(d=a[d],-1===d){if(d=o[(i[e]+1)%o.length],d!==r&&Ta(t-u[2*d],2)+Ta(n-u[2*d+1],2)<c)return d;break}}while(d!==f);return l}render(e){const t=null==e?e=new Ea:void 0,{points:n,halfedges:r,triangles:o}=this;for(let i=0,a=r.length;i<a;++i){const t=r[i];if(t<i)continue;const a=2*o[i],s=2*o[t];e.moveTo(n[a],n[a+1]),e.lineTo(n[s],n[s+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){void 0!==t||e&&"function"===typeof e.moveTo||(t=e,e=null),t=void 0==t?2:+t;const n=null==e?e=new Ea:void 0,{points:r}=this;for(let o=0,i=r.length;o<i;o+=2){const n=r[o],i=r[o+1];e.moveTo(n+t,i),e.arc(n,i,t,0,Oa)}return n&&n.value()}renderHull(e){const t=null==e?e=new Ea:void 0,{hull:n,points:r}=this,o=2*n[0],i=n.length;e.moveTo(r[o],r[o+1]);for(let a=1;a<i;++a){const t=2*n[a];e.lineTo(r[t],r[t+1])}return e.closePath(),t&&t.value()}hullPolygon(){const e=new Ca;return this.renderHull(e),e.value()}renderTriangle(e,t){const n=null==t?t=new Ea:void 0,{points:r,triangles:o}=this,i=2*o[e*=3],a=2*o[e+1],s=2*o[e+2];return t.moveTo(r[i],r[i+1]),t.lineTo(r[a],r[a+1]),t.lineTo(r[s],r[s+1]),t.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:e}=this;for(let t=0,n=e.length/3;t<n;++t)yield this.trianglePolygon(t)}trianglePolygon(e){const t=new Ca;return this.renderTriangle(e,t),t.value()}}const Ia=e=>()=>e;function La(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:s,dx:u,dy:l,dispatch:c}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:c}})}function Da(e){return!e.ctrlKey&&!e.button}function Fa(){return this.parentNode}function ja(e,t){return null==t?{x:e.x,y:e.y}:t}function Ua(){return navigator.maxTouchPoints||"ontouchstart"in this}function za(){var e,t,n,r,o=Da,i=Fa,a=ja,s=Ua,u={},l=ot("start","drag","end"),c=0,f=0;function d(e){e.on("mousedown.drag",h).filter(s).on("touchstart.drag",v).on("touchmove.drag",y,_n).on("touchend.drag touchcancel.drag",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(a,s){if(!r&&o.call(this,a,s)){var u=b(this,i.call(this,a,s),a,s,"mouse");u&&(bn(a.view).on("mousemove.drag",p,wn).on("mouseup.drag",g,wn),An(a.view),xn(a),n=!1,e=a.clientX,t=a.clientY,u("start",a))}}function p(r){if(Sn(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>f}u.mouse("drag",r)}function g(e){bn(e.view).on("mousemove.drag mouseup.drag",null),En(e.view,n),Sn(e),u.mouse("end",e)}function v(e,t){if(o.call(this,e,t)){var n,r,a=e.changedTouches,s=i.call(this,e,t),u=a.length;for(n=0;n<u;++n)(r=b(this,s,e,t,a[n].identifier,a[n]))&&(xn(e),r("start",e,a[n]))}}function y(e){var t,n,r=e.changedTouches,o=r.length;for(t=0;t<o;++t)(n=u[r[t].identifier])&&(Sn(e),n("drag",e,r[t]))}function m(e){var t,n,o=e.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<i;++t)(n=u[o[t].identifier])&&(xn(e),n("end",e,o[t]))}function b(e,t,n,r,o,i){var s,f,h,p=l.copy(),g=On(i||n,t);if(null!=(h=a.call(e,new La("beforestart",{sourceEvent:n,target:d,identifier:o,active:c,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),r)))return s=h.x-g[0]||0,f=h.y-g[1]||0,function n(i,a,l){var v,y=g;switch(i){case"start":u[o]=n,v=c++;break;case"end":delete u[o],--c;case"drag":g=On(l||a,t),v=c}p.call(i,e,new La(i,{sourceEvent:a,subject:h,target:d,identifier:o,active:v,x:g[0]+s,y:g[1]+f,dx:g[0]-y[0],dy:g[1]-y[1],dispatch:p}),r)}}return d.filter=function(e){return arguments.length?(o="function"===typeof e?e:Ia(!!e),d):o},d.container=function(e){return arguments.length?(i="function"===typeof e?e:Ia(e),d):i},d.subject=function(e){return arguments.length?(a="function"===typeof e?e:Ia(e),d):a},d.touchable=function(e){return arguments.length?(s="function"===typeof e?e:Ia(!!e),d):s},d.on=function(){var e=l.on.apply(l,arguments);return e===l?d:e},d.clickDistance=function(e){return arguments.length?(f=(e=+e)*e,d):Math.sqrt(f)},d}La.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var Ba={},Va={},Ha=34,$a=10,Wa=13;function Ga(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function qa(e){var t=Object.create(null),n=[];return e.forEach((function(e){for(var r in e)r in t||n.push(t[r]=r)})),n}function Ya(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function Xa(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),o=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":function(e){return e<0?"-"+Ya(-e,6):e>9999?"+"+Ya(e,6):Ya(e,4)}(e.getUTCFullYear())+"-"+Ya(e.getUTCMonth()+1,2)+"-"+Ya(e.getUTCDate(),2)+(o?"T"+Ya(t,2)+":"+Ya(n,2)+":"+Ya(r,2)+"."+Ya(o,3)+"Z":r?"T"+Ya(t,2)+":"+Ya(n,2)+":"+Ya(r,2)+"Z":n||t?"T"+Ya(t,2)+":"+Ya(n,2)+"Z":"")}function Za(e){var t=new RegExp('["'+e+"\n\r]"),n=e.charCodeAt(0);function r(e,t){var r,o=[],i=e.length,a=0,s=0,u=i<=0,l=!1;function c(){if(u)return Va;if(l)return l=!1,Ba;var t,r,o=a;if(e.charCodeAt(o)===Ha){for(;a++<i&&e.charCodeAt(a)!==Ha||e.charCodeAt(++a)===Ha;);return(t=a)>=i?u=!0:(r=e.charCodeAt(a++))===$a?l=!0:r===Wa&&(l=!0,e.charCodeAt(a)===$a&&++a),e.slice(o+1,t-1).replace(/""/g,'"')}for(;a<i;){if((r=e.charCodeAt(t=a++))===$a)l=!0;else if(r===Wa)l=!0,e.charCodeAt(a)===$a&&++a;else if(r!==n)continue;return e.slice(o,t)}return u=!0,e.slice(o,i)}for(e.charCodeAt(i-1)===$a&&--i,e.charCodeAt(i-1)===Wa&&--i;(r=c())!==Va;){for(var f=[];r!==Ba&&r!==Va;)f.push(r),r=c();t&&null==(f=t(f,s++))||o.push(f)}return o}function o(t,n){return t.map((function(t){return n.map((function(e){return a(t[e])})).join(e)}))}function i(t){return t.map(a).join(e)}function a(e){return null==e?"":e instanceof Date?Xa(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var n,o,i=r(e,(function(e,r){if(n)return n(e,r-1);o=e,n=t?function(e,t){var n=Ga(e);return function(r,o){return t(n(r),o,e)}}(e,t):Ga(e)}));return i.columns=o||[],i},parseRows:r,format:function(t,n){return null==n&&(n=qa(t)),[n.map(a).join(e)].concat(o(t,n)).join("\n")},formatBody:function(e,t){return null==t&&(t=qa(e)),o(e,t).join("\n")},formatRows:function(e){return e.map(i).join("\n")},formatRow:i,formatValue:a}}var Ka=Za(","),Qa=Ka.parse,Ja=Ka.parseRows,es=Ka.format,ts=Ka.formatBody,ns=Ka.formatRows,rs=Ka.formatRow,os=Ka.formatValue,is=Za("\t"),as=is.parse,ss=is.parseRows,us=is.format,ls=is.formatBody,cs=is.formatRows,fs=is.formatRow,ds=is.formatValue;function hs(e){for(var t in e){var n,r,o=e[t].trim();if(o)if("true"===o)o=!0;else if("false"===o)o=!1;else if("NaN"===o)o=NaN;else if(isNaN(n=+o)){if(!(r=o.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;ps&&r[4]&&!r[7]&&(o=o.replace(/-/g,"/").replace(/T/," ")),o=new Date(o)}else o=n;else o=null;e[t]=o}return e}const ps=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours(),gs=e=>+e;function vs(e){return e*e}function ys(e){return e*(2-e)}function ms(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}var bs=function e(t){function n(e){return Math.pow(e,t)}return t=+t,n.exponent=e,n}(3),_s=function e(t){function n(e){return 1-Math.pow(1-e,t)}return t=+t,n.exponent=e,n}(3),ws=function e(t){function n(e){return((e*=2)<=1?Math.pow(e,t):2-Math.pow(2-e,t))/2}return t=+t,n.exponent=e,n}(3),xs=Math.PI,Ss=xs/2;function As(e){return 1===+e?1:1-Math.cos(e*Ss)}function Es(e){return Math.sin(e*Ss)}function Cs(e){return(1-Math.cos(xs*e))/2}function Rs(e){return 1.0009775171065494*(Math.pow(2,-10*e)-.0009765625)}function Os(e){return Rs(1-+e)}function Ts(e){return 1-Rs(e)}function ks(e){return((e*=2)<=1?Rs(1-e):2-Rs(e-1))/2}function Ms(e){return 1-Math.sqrt(1-e*e)}function Ps(e){return Math.sqrt(1- --e*e)}function Ns(e){return((e*=2)<=1?1-Math.sqrt(1-e*e):Math.sqrt(1-(e-=2)*e)+1)/2}var Is=4/11,Ls=6/11,Ds=8/11,Fs=3/4,js=9/11,Us=10/11,zs=15/16,Bs=21/22,Vs=63/64,Hs=1/Is/Is;function $s(e){return 1-Ws(1-e)}function Ws(e){return(e=+e)<Is?Hs*e*e:e<Ds?Hs*(e-=Ls)*e+Fs:e<Us?Hs*(e-=js)*e+zs:Hs*(e-=Bs)*e+Vs}function Gs(e){return((e*=2)<=1?1-Ws(1-e):Ws(e-1)+1)/2}var qs=1.70158,Ys=function e(t){function n(e){return(e=+e)*e*(t*(e-1)+e)}return t=+t,n.overshoot=e,n}(qs),Xs=function e(t){function n(e){return--e*e*((e+1)*t+e)+1}return t=+t,n.overshoot=e,n}(qs),Zs=function e(t){function n(e){return((e*=2)<1?e*e*((t+1)*e-t):(e-=2)*e*((t+1)*e+t)+2)/2}return t=+t,n.overshoot=e,n}(qs),Ks=2*Math.PI,Qs=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=Ks);function o(e){return t*Rs(- --e)*Math.sin((r-e)/n)}return o.amplitude=function(t){return e(t,n*Ks)},o.period=function(n){return e(t,n)},o}(1,.3),Js=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=Ks);function o(e){return 1-t*Rs(e=+e)*Math.sin((e+r)/n)}return o.amplitude=function(t){return e(t,n*Ks)},o.period=function(n){return e(t,n)},o}(1,.3),eu=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=Ks);function o(e){return((e=2*e-1)<0?t*Rs(-e)*Math.sin((r-e)/n):2-t*Rs(e)*Math.sin((r+e)/n))/2}return o.amplitude=function(t){return e(t,n*Ks)},o.period=function(n){return e(t,n)},o}(1,.3);function tu(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.blob()}function nu(e,t){return fetch(e,t).then(tu)}function ru(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.arrayBuffer()}function ou(e,t){return fetch(e,t).then(ru)}function iu(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.text()}function au(e,t){return fetch(e,t).then(iu)}function su(e){return function(t,n,r){return 2===arguments.length&&"function"===typeof n&&(r=n,n=void 0),au(t,n).then((function(t){return e(t,r)}))}}function uu(e,t,n,r){3===arguments.length&&"function"===typeof n&&(r=n,n=void 0);var o=Za(e);return au(t,n).then((function(e){return o.parse(e,r)}))}var lu=su(Qa),cu=su(as);function fu(e,t){return new Promise((function(n,r){var o=new Image;for(var i in t)o[i]=t[i];o.onerror=r,o.onload=function(){n(o)},o.src=e}))}function du(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);if(204!==e.status&&205!==e.status)return e.json()}function hu(e,t){return fetch(e,t).then(du)}function pu(e){return(t,n)=>au(t,n).then((t=>(new DOMParser).parseFromString(t,e)))}const gu=pu("application/xml");var vu=pu("text/html"),yu=pu("image/svg+xml");function mu(e,t){var n,r=1;function o(){var o,i,a=n.length,s=0,u=0;for(o=0;o<a;++o)s+=(i=n[o]).x,u+=i.y;for(s=(s/a-e)*r,u=(u/a-t)*r,o=0;o<a;++o)(i=n[o]).x-=s,i.y-=u}return null==e&&(e=0),null==t&&(t=0),o.initialize=function(e){n=e},o.x=function(t){return arguments.length?(e=+t,o):e},o.y=function(e){return arguments.length?(t=+e,o):t},o.strength=function(e){return arguments.length?(r=+e,o):r},o}function bu(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var o,i,a,s,u,l,c,f,d,h=e._root,p={data:r},g=e._x0,v=e._y0,y=e._x1,m=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((l=t>=(i=(g+y)/2))?g=i:y=i,(c=n>=(a=(v+m)/2))?v=a:m=a,o=h,!(h=h[f=c<<1|l]))return o[f]=p,e;if(s=+e._x.call(null,h.data),u=+e._y.call(null,h.data),t===s&&n===u)return p.next=h,o?o[f]=p:e._root=p,e;do{o=o?o[f]=new Array(4):e._root=new Array(4),(l=t>=(i=(g+y)/2))?g=i:y=i,(c=n>=(a=(v+m)/2))?v=a:m=a}while((f=c<<1|l)===(d=(u>=a)<<1|s>=i));return o[d]=h,o[f]=p,e}function _u(e,t,n,r,o){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=o}function wu(e){return e[0]}function xu(e){return e[1]}function Su(e,t,n){var r=new Au(null==t?wu:t,null==n?xu:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function Au(e,t,n,r,o,i){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=o,this._y1=i,this._root=void 0}function Eu(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var Cu=Su.prototype=Au.prototype;function Ru(e){return function(){return e}}function Ou(e){return 1e-6*(e()-.5)}function Tu(e){return e.x+e.vx}function ku(e){return e.y+e.vy}function Mu(e){var t,n,r,o=1,i=1;function a(){for(var e,a,u,l,c,f,d,h=t.length,p=0;p<i;++p)for(a=Su(t,Tu,ku).visitAfter(s),e=0;e<h;++e)u=t[e],f=n[u.index],d=f*f,l=u.x+u.vx,c=u.y+u.vy,a.visit(g);function g(e,t,n,i,a){var s=e.data,h=e.r,p=f+h;if(!s)return t>l+p||i<l-p||n>c+p||a<c-p;if(s.index>u.index){var g=l-s.x-s.vx,v=c-s.y-s.vy,y=g*g+v*v;y<p*p&&(0===g&&(y+=(g=Ou(r))*g),0===v&&(y+=(v=Ou(r))*v),y=(p-(y=Math.sqrt(y)))/y*o,u.vx+=(g*=y)*(p=(h*=h)/(d+h)),u.vy+=(v*=y)*p,s.vx-=g*(p=1-p),s.vy-=v*p)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function u(){if(t){var r,o,i=t.length;for(n=new Array(i),r=0;r<i;++r)o=t[r],n[o.index]=+e(o,r,t)}}return"function"!==typeof e&&(e=Ru(null==e?1:+e)),a.initialize=function(e,n){t=e,r=n,u()},a.iterations=function(e){return arguments.length?(i=+e,a):i},a.strength=function(e){return arguments.length?(o=+e,a):o},a.radius=function(t){return arguments.length?(e="function"===typeof t?t:Ru(+t),u(),a):e},a}function Pu(e){return e.index}function Nu(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function Iu(e){var t,n,r,o,i,a,s=Pu,u=function(e){return 1/Math.min(o[e.source.index],o[e.target.index])},l=Ru(30),c=1;function f(r){for(var o=0,s=e.length;o<c;++o)for(var u,l,f,d,h,p,g,v=0;v<s;++v)l=(u=e[v]).source,d=(f=u.target).x+f.vx-l.x-l.vx||Ou(a),h=f.y+f.vy-l.y-l.vy||Ou(a),d*=p=((p=Math.sqrt(d*d+h*h))-n[v])/p*r*t[v],h*=p,f.vx-=d*(g=i[v]),f.vy-=h*g,l.vx+=d*(g=1-g),l.vy+=h*g}function d(){if(r){var a,u,l=r.length,c=e.length,f=new Map(r.map(((e,t)=>[s(e,t,r),e])));for(a=0,o=new Array(l);a<c;++a)(u=e[a]).index=a,"object"!==typeof u.source&&(u.source=Nu(f,u.source)),"object"!==typeof u.target&&(u.target=Nu(f,u.target)),o[u.source.index]=(o[u.source.index]||0)+1,o[u.target.index]=(o[u.target.index]||0)+1;for(a=0,i=new Array(c);a<c;++a)u=e[a],i[a]=o[u.source.index]/(o[u.source.index]+o[u.target.index]);t=new Array(c),h(),n=new Array(c),p()}}function h(){if(r)for(var n=0,o=e.length;n<o;++n)t[n]=+u(e[n],n,e)}function p(){if(r)for(var t=0,o=e.length;t<o;++t)n[t]=+l(e[t],t,e)}return null==e&&(e=[]),f.initialize=function(e,t){r=e,a=t,d()},f.links=function(t){return arguments.length?(e=t,d(),f):e},f.id=function(e){return arguments.length?(s=e,f):s},f.iterations=function(e){return arguments.length?(c=+e,f):c},f.strength=function(e){return arguments.length?(u="function"===typeof e?e:Ru(+e),h(),f):u},f.distance=function(e){return arguments.length?(l="function"===typeof e?e:Ru(+e),p(),f):l},f}Cu.copy=function(){var e,t,n=new Au(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=Eu(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var o=0;o<4;++o)(t=r.source[o])&&(t.length?e.push({source:t,target:r.target[o]=new Array(4)}):r.target[o]=Eu(t));return n},Cu.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return bu(this.cover(t,n),t,n,e)},Cu.addAll=function(e){var t,n,r,o,i=e.length,a=new Array(i),s=new Array(i),u=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<i;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(a[n]=r,s[n]=o,r<u&&(u=r),r>c&&(c=r),o<l&&(l=o),o>f&&(f=o));if(u>c||l>f)return this;for(this.cover(u,l).cover(c,f),n=0;n<i;++n)bu(this,a[n],s[n],e[n]);return this},Cu.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,o=this._x1,i=this._y1;if(isNaN(n))o=(n=Math.floor(e))+1,i=(r=Math.floor(t))+1;else{for(var a,s,u=o-n||1,l=this._root;n>e||e>=o||r>t||t>=i;)switch(s=(t<r)<<1|e<n,(a=new Array(4))[s]=l,l=a,u*=2,s){case 0:o=n+u,i=r+u;break;case 1:n=o-u,i=r+u;break;case 2:o=n+u,r=i-u;break;case 3:n=o-u,r=i-u}this._root&&this._root.length&&(this._root=l)}return this._x0=n,this._y0=r,this._x1=o,this._y1=i,this},Cu.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},Cu.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Cu.find=function(e,t,n){var r,o,i,a,s,u,l,c=this._x0,f=this._y0,d=this._x1,h=this._y1,p=[],g=this._root;for(g&&p.push(new _u(g,c,f,d,h)),null==n?n=1/0:(c=e-n,f=t-n,d=e+n,h=t+n,n*=n);u=p.pop();)if(!(!(g=u.node)||(o=u.x0)>d||(i=u.y0)>h||(a=u.x1)<c||(s=u.y1)<f))if(g.length){var v=(o+a)/2,y=(i+s)/2;p.push(new _u(g[3],v,y,a,s),new _u(g[2],o,y,v,s),new _u(g[1],v,i,a,y),new _u(g[0],o,i,v,y)),(l=(t>=y)<<1|e>=v)&&(u=p[p.length-1],p[p.length-1]=p[p.length-1-l],p[p.length-1-l]=u)}else{var m=e-+this._x.call(null,g.data),b=t-+this._y.call(null,g.data),_=m*m+b*b;if(_<n){var w=Math.sqrt(n=_);c=e-w,f=t-w,d=e+w,h=t+w,r=g.data}}return r},Cu.remove=function(e){if(isNaN(i=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,r,o,i,a,s,u,l,c,f,d,h=this._root,p=this._x0,g=this._y0,v=this._x1,y=this._y1;if(!h)return this;if(h.length)for(;;){if((l=i>=(s=(p+v)/2))?p=s:v=s,(c=a>=(u=(g+y)/2))?g=u:y=u,t=h,!(h=h[f=c<<1|l]))return this;if(!h.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;h.data!==e;)if(r=h,!(h=h.next))return this;return(o=h.next)&&delete h.next,r?(o?r.next=o:delete r.next,this):t?(o?t[f]=o:delete t[f],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=o,this)},Cu.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},Cu.root=function(){return this._root},Cu.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},Cu.visit=function(e){var t,n,r,o,i,a,s=[],u=this._root;for(u&&s.push(new _u(u,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(u=t.node,r=t.x0,o=t.y0,i=t.x1,a=t.y1)&&u.length){var l=(r+i)/2,c=(o+a)/2;(n=u[3])&&s.push(new _u(n,l,c,i,a)),(n=u[2])&&s.push(new _u(n,r,c,l,a)),(n=u[1])&&s.push(new _u(n,l,o,i,c)),(n=u[0])&&s.push(new _u(n,r,o,l,c))}return this},Cu.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new _u(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var o=t.node;if(o.length){var i,a=t.x0,s=t.y0,u=t.x1,l=t.y1,c=(a+u)/2,f=(s+l)/2;(i=o[0])&&n.push(new _u(i,a,s,c,f)),(i=o[1])&&n.push(new _u(i,c,s,u,f)),(i=o[2])&&n.push(new _u(i,a,f,c,l)),(i=o[3])&&n.push(new _u(i,c,f,u,l))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},Cu.x=function(e){return arguments.length?(this._x=e,this):this._x},Cu.y=function(e){return arguments.length?(this._y=e,this):this._y};const Lu=1664525,Du=1013904223,Fu=4294967296;function ju(e){return e.x}function Uu(e){return e.y}var zu=10,Bu=Math.PI*(3-Math.sqrt(5));function Vu(e){var t,n=1,r=.001,o=1-Math.pow(r,1/300),i=0,a=.6,s=new Map,u=Hn(f),l=ot("tick","end"),c=function(){let e=1;return()=>(e=(Lu*e+Du)%Fu)/Fu}();function f(){d(),l.call("tick",t),n<r&&(u.stop(),l.call("end",t))}function d(r){var u,l,c=e.length;void 0===r&&(r=1);for(var f=0;f<r;++f)for(n+=(i-n)*o,s.forEach((function(e){e(n)})),u=0;u<c;++u)null==(l=e[u]).fx?l.x+=l.vx*=a:(l.x=l.fx,l.vx=0),null==l.fy?l.y+=l.vy*=a:(l.y=l.fy,l.vy=0);return t}function h(){for(var t,n=0,r=e.length;n<r;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var o=zu*Math.sqrt(.5+n),i=n*Bu;t.x=o*Math.cos(i),t.y=o*Math.sin(i)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function p(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),h(),t={tick:d,restart:function(){return u.restart(f),t},stop:function(){return u.stop(),t},nodes:function(n){return arguments.length?(e=n,h(),s.forEach(p),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(o=+e,t):+o},alphaTarget:function(e){return arguments.length?(i=+e,t):i},velocityDecay:function(e){return arguments.length?(a=1-e,t):1-a},randomSource:function(e){return arguments.length?(c=e,s.forEach(p),t):c},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,p(n)),t):s.get(e)},find:function(t,n,r){var o,i,a,s,u,l=0,c=e.length;for(null==r?r=1/0:r*=r,l=0;l<c;++l)(a=(o=t-(s=e[l]).x)*o+(i=n-s.y)*i)<r&&(u=s,r=a);return u},on:function(e,n){return arguments.length>1?(l.on(e,n),t):l.on(e)}}}function Hu(){var e,t,n,r,o,i=Ru(-30),a=1,s=1/0,u=.81;function l(n){var o,i=e.length,a=Su(e,ju,Uu).visitAfter(f);for(r=n,o=0;o<i;++o)t=e[o],a.visit(d)}function c(){if(e){var t,n,r=e.length;for(o=new Array(r),t=0;t<r;++t)n=e[t],o[n.index]=+i(n,t,e)}}function f(e){var t,n,r,i,a,s=0,u=0;if(e.length){for(r=i=a=0;a<4;++a)(t=e[a])&&(n=Math.abs(t.value))&&(s+=t.value,u+=n,r+=n*t.x,i+=n*t.y);e.x=r/u,e.y=i/u}else{(t=e).x=t.data.x,t.y=t.data.y;do{s+=o[t.data.index]}while(t=t.next)}e.value=s}function d(e,i,l,c){if(!e.value)return!0;var f=e.x-t.x,d=e.y-t.y,h=c-i,p=f*f+d*d;if(h*h/u<p)return p<s&&(0===f&&(p+=(f=Ou(n))*f),0===d&&(p+=(d=Ou(n))*d),p<a&&(p=Math.sqrt(a*p)),t.vx+=f*e.value*r/p,t.vy+=d*e.value*r/p),!0;if(!(e.length||p>=s)){(e.data!==t||e.next)&&(0===f&&(p+=(f=Ou(n))*f),0===d&&(p+=(d=Ou(n))*d),p<a&&(p=Math.sqrt(a*p)));do{e.data!==t&&(h=o[e.data.index]*r/p,t.vx+=f*h,t.vy+=d*h)}while(e=e.next)}}return l.initialize=function(t,r){e=t,n=r,c()},l.strength=function(e){return arguments.length?(i="function"===typeof e?e:Ru(+e),c(),l):i},l.distanceMin=function(e){return arguments.length?(a=e*e,l):Math.sqrt(a)},l.distanceMax=function(e){return arguments.length?(s=e*e,l):Math.sqrt(s)},l.theta=function(e){return arguments.length?(u=e*e,l):Math.sqrt(u)},l}function $u(e,t,n){var r,o,i,a=Ru(.1);function s(e){for(var a=0,s=r.length;a<s;++a){var u=r[a],l=u.x-t||1e-6,c=u.y-n||1e-6,f=Math.sqrt(l*l+c*c),d=(i[a]-f)*o[a]*e/f;u.vx+=l*d,u.vy+=c*d}}function u(){if(r){var t,n=r.length;for(o=new Array(n),i=new Array(n),t=0;t<n;++t)i[t]=+e(r[t],t,r),o[t]=isNaN(i[t])?0:+a(r[t],t,r)}}return"function"!==typeof e&&(e=Ru(+e)),null==t&&(t=0),null==n&&(n=0),s.initialize=function(e){r=e,u()},s.strength=function(e){return arguments.length?(a="function"===typeof e?e:Ru(+e),u(),s):a},s.radius=function(t){return arguments.length?(e="function"===typeof t?t:Ru(+t),u(),s):e},s.x=function(e){return arguments.length?(t=+e,s):t},s.y=function(e){return arguments.length?(n=+e,s):n},s}function Wu(e){var t,n,r,o=Ru(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vx+=(r[i]-o.x)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!==typeof e&&(e=Ru(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"===typeof e?e:Ru(+e),a(),i):o},i.x=function(t){return arguments.length?(e="function"===typeof t?t:Ru(+t),a(),i):e},i}function Gu(e){var t,n,r,o=Ru(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vy+=(r[i]-o.y)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!==typeof e&&(e=Ru(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"===typeof e?e:Ru(+e),a(),i):o},i.y=function(t){return arguments.length?(e="function"===typeof t?t:Ru(+t),a(),i):e},i}var qu=n(48701),Yu=n(56390),Xu=n(1631),Zu=n(1734),Ku=n(67590),Qu=n(99460),Ju=1e-6,el=1e-12,tl=Math.PI,nl=tl/2,rl=tl/4,ol=2*tl,il=180/tl,al=tl/180,sl=Math.abs,ul=Math.atan,ll=Math.atan2,cl=Math.cos,fl=Math.ceil,dl=Math.exp,hl=(Math.floor,Math.hypot),pl=Math.log,gl=Math.pow,vl=Math.sin,yl=Math.sign||function(e){return e>0?1:e<0?-1:0},ml=Math.sqrt,bl=Math.tan;function _l(e){return e>1?0:e<-1?tl:Math.acos(e)}function wl(e){return e>1?nl:e<-1?-nl:Math.asin(e)}function xl(e){return(e=vl(e/2))*e}function Sl(){}function Al(e,t){e&&Cl.hasOwnProperty(e.type)&&Cl[e.type](e,t)}var El={Feature:function(e,t){Al(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r<o;)Al(n[r].geometry,t)}},Cl={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){Rl(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)Rl(n[r],t,0)},Polygon:function(e,t){Ol(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)Ol(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,o=n.length;++r<o;)Al(n[r],t)}};function Rl(e,t,n){var r,o=-1,i=e.length-n;for(t.lineStart();++o<i;)r=e[o],t.point(r[0],r[1],r[2]);t.lineEnd()}function Ol(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)Rl(e[n],t,1);t.polygonEnd()}function Tl(e,t){e&&El.hasOwnProperty(e.type)?El[e.type](e,t):Al(e,t)}var kl,Ml,Pl,Nl,Il,Ll,Dl,Fl,jl,Ul,zl,Bl,Vl,Hl,$l,Wl,Gl=new S,ql=new S,Yl={point:Sl,lineStart:Sl,lineEnd:Sl,polygonStart:function(){Gl=new S,Yl.lineStart=Xl,Yl.lineEnd=Zl},polygonEnd:function(){var e=+Gl;ql.add(e<0?ol+e:e),this.lineStart=this.lineEnd=this.point=Sl},sphere:function(){ql.add(ol)}};function Xl(){Yl.point=Kl}function Zl(){Ql(kl,Ml)}function Kl(e,t){Yl.point=Ql,kl=e,Ml=t,Pl=e*=al,Nl=cl(t=(t*=al)/2+rl),Il=vl(t)}function Ql(e,t){var n=(e*=al)-Pl,r=n>=0?1:-1,o=r*n,i=cl(t=(t*=al)/2+rl),a=vl(t),s=Il*a,u=Nl*i+s*cl(o),l=s*r*vl(o);Gl.add(ll(l,u)),Pl=e,Nl=i,Il=a}function Jl(e){return ql=new S,Tl(e,Yl),2*ql}function ec(e){return[ll(e[1],e[0]),wl(e[2])]}function tc(e){var t=e[0],n=e[1],r=cl(n);return[r*cl(t),r*vl(t),vl(n)]}function nc(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function rc(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function oc(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function ic(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function ac(e){var t=ml(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var sc,uc,lc,cc,fc,dc,hc,pc,gc,vc,yc,mc,bc,_c,wc,xc,Sc={point:Ac,lineStart:Cc,lineEnd:Rc,polygonStart:function(){Sc.point=Oc,Sc.lineStart=Tc,Sc.lineEnd=kc,Hl=new S,Yl.polygonStart()},polygonEnd:function(){Yl.polygonEnd(),Sc.point=Ac,Sc.lineStart=Cc,Sc.lineEnd=Rc,Gl<0?(Ll=-(Fl=180),Dl=-(jl=90)):Hl>Ju?jl=90:Hl<-Ju&&(Dl=-90),Wl[0]=Ll,Wl[1]=Fl},sphere:function(){Ll=-(Fl=180),Dl=-(jl=90)}};function Ac(e,t){$l.push(Wl=[Ll=e,Fl=e]),t<Dl&&(Dl=t),t>jl&&(jl=t)}function Ec(e,t){var n=tc([e*al,t*al]);if(Vl){var r=rc(Vl,n),o=rc([r[1],-r[0],0],r);ac(o),o=ec(o);var i,a=e-Ul,s=a>0?1:-1,u=o[0]*il*s,l=sl(a)>180;l^(s*Ul<u&&u<s*e)?(i=o[1]*il)>jl&&(jl=i):l^(s*Ul<(u=(u+360)%360-180)&&u<s*e)?(i=-o[1]*il)<Dl&&(Dl=i):(t<Dl&&(Dl=t),t>jl&&(jl=t)),l?e<Ul?Mc(Ll,e)>Mc(Ll,Fl)&&(Fl=e):Mc(e,Fl)>Mc(Ll,Fl)&&(Ll=e):Fl>=Ll?(e<Ll&&(Ll=e),e>Fl&&(Fl=e)):e>Ul?Mc(Ll,e)>Mc(Ll,Fl)&&(Fl=e):Mc(e,Fl)>Mc(Ll,Fl)&&(Ll=e)}else $l.push(Wl=[Ll=e,Fl=e]);t<Dl&&(Dl=t),t>jl&&(jl=t),Vl=n,Ul=e}function Cc(){Sc.point=Ec}function Rc(){Wl[0]=Ll,Wl[1]=Fl,Sc.point=Ac,Vl=null}function Oc(e,t){if(Vl){var n=e-Ul;Hl.add(sl(n)>180?n+(n>0?360:-360):n)}else zl=e,Bl=t;Yl.point(e,t),Ec(e,t)}function Tc(){Yl.lineStart()}function kc(){Oc(zl,Bl),Yl.lineEnd(),sl(Hl)>Ju&&(Ll=-(Fl=180)),Wl[0]=Ll,Wl[1]=Fl,Vl=null}function Mc(e,t){return(t-=e)<0?t+360:t}function Pc(e,t){return e[0]-t[0]}function Nc(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}function Ic(e){var t,n,r,o,i,a,s;if(jl=Fl=-(Ll=Dl=1/0),$l=[],Tl(e,Sc),n=$l.length){for($l.sort(Pc),t=1,i=[r=$l[0]];t<n;++t)Nc(r,(o=$l[t])[0])||Nc(r,o[1])?(Mc(r[0],o[1])>Mc(r[0],r[1])&&(r[1]=o[1]),Mc(o[0],r[1])>Mc(r[0],r[1])&&(r[0]=o[0])):i.push(r=o);for(a=-1/0,t=0,r=i[n=i.length-1];t<=n;r=o,++t)o=i[t],(s=Mc(r[1],o[0]))>a&&(a=s,Ll=o[0],Fl=r[1])}return $l=Wl=null,Ll===1/0||Dl===1/0?[[NaN,NaN],[NaN,NaN]]:[[Ll,Dl],[Fl,jl]]}var Lc={sphere:Sl,point:Dc,lineStart:jc,lineEnd:Bc,polygonStart:function(){Lc.lineStart=Vc,Lc.lineEnd=Hc},polygonEnd:function(){Lc.lineStart=jc,Lc.lineEnd=Bc}};function Dc(e,t){e*=al;var n=cl(t*=al);Fc(n*cl(e),n*vl(e),vl(t))}function Fc(e,t,n){++sc,lc+=(e-lc)/sc,cc+=(t-cc)/sc,fc+=(n-fc)/sc}function jc(){Lc.point=Uc}function Uc(e,t){e*=al;var n=cl(t*=al);_c=n*cl(e),wc=n*vl(e),xc=vl(t),Lc.point=zc,Fc(_c,wc,xc)}function zc(e,t){e*=al;var n=cl(t*=al),r=n*cl(e),o=n*vl(e),i=vl(t),a=ll(ml((a=wc*i-xc*o)*a+(a=xc*r-_c*i)*a+(a=_c*o-wc*r)*a),_c*r+wc*o+xc*i);uc+=a,dc+=a*(_c+(_c=r)),hc+=a*(wc+(wc=o)),pc+=a*(xc+(xc=i)),Fc(_c,wc,xc)}function Bc(){Lc.point=Dc}function Vc(){Lc.point=$c}function Hc(){Wc(mc,bc),Lc.point=Dc}function $c(e,t){mc=e,bc=t,e*=al,t*=al,Lc.point=Wc;var n=cl(t);_c=n*cl(e),wc=n*vl(e),xc=vl(t),Fc(_c,wc,xc)}function Wc(e,t){e*=al;var n=cl(t*=al),r=n*cl(e),o=n*vl(e),i=vl(t),a=wc*i-xc*o,s=xc*r-_c*i,u=_c*o-wc*r,l=hl(a,s,u),c=wl(l),f=l&&-c/l;gc.add(f*a),vc.add(f*s),yc.add(f*u),uc+=c,dc+=c*(_c+(_c=r)),hc+=c*(wc+(wc=o)),pc+=c*(xc+(xc=i)),Fc(_c,wc,xc)}function Gc(e){sc=uc=lc=cc=fc=dc=hc=pc=0,gc=new S,vc=new S,yc=new S,Tl(e,Lc);var t=+gc,n=+vc,r=+yc,o=hl(t,n,r);return o<el&&(t=dc,n=hc,r=pc,uc<Ju&&(t=lc,n=cc,r=fc),(o=hl(t,n,r))<el)?[NaN,NaN]:[ll(n,t)*il,wl(r/o)*il]}function qc(e){return function(){return e}}function Yc(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}function Xc(e,t){return sl(e)>tl&&(e-=Math.round(e/ol)*ol),[e,t]}function Zc(e,t,n){return(e%=ol)?t||n?Yc(Qc(e),Jc(t,n)):Qc(e):t||n?Jc(t,n):Xc}function Kc(e){return function(t,n){return sl(t+=e)>tl&&(t-=Math.round(t/ol)*ol),[t,n]}}function Qc(e){var t=Kc(e);return t.invert=Kc(-e),t}function Jc(e,t){var n=cl(e),r=vl(e),o=cl(t),i=vl(t);function a(e,t){var a=cl(t),s=cl(e)*a,u=vl(e)*a,l=vl(t),c=l*n+s*r;return[ll(u*o-c*i,s*n-l*r),wl(c*o+u*i)]}return a.invert=function(e,t){var a=cl(t),s=cl(e)*a,u=vl(e)*a,l=vl(t),c=l*o-u*i;return[ll(u*o+l*i,s*n+c*r),wl(c*n-s*r)]},a}function ef(e){function t(t){return(t=e(t[0]*al,t[1]*al))[0]*=il,t[1]*=il,t}return e=Zc(e[0]*al,e[1]*al,e.length>2?e[2]*al:0),t.invert=function(t){return(t=e.invert(t[0]*al,t[1]*al))[0]*=il,t[1]*=il,t},t}function tf(e,t,n,r,o,i){if(n){var a=cl(t),s=vl(t),u=r*n;null==o?(o=t+r*ol,i=t-u/2):(o=nf(a,o),i=nf(a,i),(r>0?o<i:o>i)&&(o+=r*ol));for(var l,c=o;r>0?c>i:c<i;c-=u)l=ec([a,-s*cl(c),-s*vl(c)]),e.point(l[0],l[1])}}function nf(e,t){(t=tc(t))[0]-=e,ac(t);var n=_l(-t[1]);return((-t[2]<0?-n:n)+ol-Ju)%ol}function rf(){var e,t,n=qc([0,0]),r=qc(90),o=qc(6),i={point:function(n,r){e.push(n=t(n,r)),n[0]*=il,n[1]*=il}};function a(){var a=n.apply(this,arguments),s=r.apply(this,arguments)*al,u=o.apply(this,arguments)*al;return e=[],t=Zc(-a[0]*al,-a[1]*al,0).invert,tf(i,s,u,1),a={type:"Polygon",coordinates:[e]},e=t=null,a}return a.center=function(e){return arguments.length?(n="function"===typeof e?e:qc([+e[0],+e[1]]),a):n},a.radius=function(e){return arguments.length?(r="function"===typeof e?e:qc(+e),a):r},a.precision=function(e){return arguments.length?(o="function"===typeof e?e:qc(+e),a):o},a}function of(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:Sl,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function af(e,t){return sl(e[0]-t[0])<Ju&&sl(e[1]-t[1])<Ju}function sf(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function uf(e,t,n,r,o){var i,a,s=[],u=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,r=e[0],a=e[t];if(af(r,a)){if(!r[2]&&!a[2]){for(o.lineStart(),i=0;i<t;++i)o.point((r=e[i])[0],r[1]);return void o.lineEnd()}a[0]+=2*Ju}s.push(n=new sf(r,e,null,!0)),u.push(n.o=new sf(r,null,n,!1)),s.push(n=new sf(a,e,null,!1)),u.push(n.o=new sf(a,null,n,!0))}})),s.length){for(u.sort(t),lf(s),lf(u),i=0,a=u.length;i<a;++i)u[i].e=n=!n;for(var l,c,f=s[0];;){for(var d=f,h=!0;d.v;)if((d=d.n)===f)return;l=d.z,o.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(i=0,a=l.length;i<a;++i)o.point((c=l[i])[0],c[1]);else r(d.x,d.n.x,1,o);d=d.n}else{if(h)for(l=d.p.z,i=l.length-1;i>=0;--i)o.point((c=l[i])[0],c[1]);else r(d.x,d.p.x,-1,o);d=d.p}l=(d=d.o).z,h=!h}while(!d.v);o.lineEnd()}}}function lf(e){if(t=e.length){for(var t,n,r=0,o=e[0];++r<t;)o.n=n=e[r],n.p=o,o=n;o.n=n=e[0],n.p=o}}function cf(e){return sl(e[0])<=tl?e[0]:yl(e[0])*((sl(e[0])+tl)%ol-tl)}function ff(e,t){var n=cf(t),r=t[1],o=vl(r),i=[vl(n),-cl(n),0],a=0,s=0,u=new S;1===o?r=nl+Ju:-1===o&&(r=-nl-Ju);for(var l=0,c=e.length;l<c;++l)if(d=(f=e[l]).length)for(var f,d,h=f[d-1],p=cf(h),g=h[1]/2+rl,v=vl(g),y=cl(g),m=0;m<d;++m,p=_,v=x,y=A,h=b){var b=f[m],_=cf(b),w=b[1]/2+rl,x=vl(w),A=cl(w),E=_-p,C=E>=0?1:-1,R=C*E,O=R>tl,T=v*x;if(u.add(ll(T*C*vl(R),y*A+T*cl(R))),a+=O?E+C*ol:E,O^p>=n^_>=n){var k=rc(tc(h),tc(b));ac(k);var M=rc(i,k);ac(M);var P=(O^E>=0?-1:1)*wl(M[2]);(r>P||r===P&&(k[0]||k[1]))&&(s+=O^E>=0?1:-1)}}return(a<-Ju||a<Ju&&u<-el)^1&s}function df(e,t,n,r){return function(o){var i,a,s,u=t(o),l=of(),c=t(l),f=!1,d={point:h,lineStart:g,lineEnd:v,polygonStart:function(){d.point=y,d.lineStart=m,d.lineEnd=b,a=[],i=[]},polygonEnd:function(){d.point=h,d.lineStart=g,d.lineEnd=v,a=ne(a);var e=ff(i,r);a.length?(f||(o.polygonStart(),f=!0),uf(a,pf,e,n,o)):e&&(f||(o.polygonStart(),f=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),f&&(o.polygonEnd(),f=!1),a=i=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}};function h(t,n){e(t,n)&&o.point(t,n)}function p(e,t){u.point(e,t)}function g(){d.point=p,u.lineStart()}function v(){d.point=h,u.lineEnd()}function y(e,t){s.push([e,t]),c.point(e,t)}function m(){c.lineStart(),s=[]}function b(){y(s[0][0],s[0][1]),c.lineEnd();var e,t,n,r,u=c.clean(),d=l.result(),h=d.length;if(s.pop(),i.push(s),s=null,h)if(1&u){if((t=(n=d[0]).length-1)>0){for(f||(o.polygonStart(),f=!0),o.lineStart(),e=0;e<t;++e)o.point((r=n[e])[0],r[1]);o.lineEnd()}}else h>1&&2&u&&d.push(d.pop().concat(d.shift())),a.push(d.filter(hf))}return d}}function hf(e){return e.length>1}function pf(e,t){return((e=e.x)[0]<0?e[1]-nl-Ju:nl-e[1])-((t=t.x)[0]<0?t[1]-nl-Ju:nl-t[1])}Xc.invert=Xc;const gf=df((function(){return!0}),(function(e){var t,n=NaN,r=NaN,o=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(i,a){var s=i>0?tl:-tl,u=sl(i-n);sl(u-tl)<Ju?(e.point(n,r=(r+a)/2>0?nl:-nl),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(i,r),t=0):o!==s&&u>=tl&&(sl(n-o)<Ju&&(n-=o*Ju),sl(i-s)<Ju&&(i-=s*Ju),r=function(e,t,n,r){var o,i,a=vl(e-n);return sl(a)>Ju?ul((vl(t)*(i=cl(r))*vl(n)-vl(r)*(o=cl(t))*vl(e))/(o*i*a)):(t+r)/2}(n,r,i,a),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=i,r=a),o=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var o;if(null==e)o=n*nl,r.point(-tl,o),r.point(0,o),r.point(tl,o),r.point(tl,0),r.point(tl,-o),r.point(0,-o),r.point(-tl,-o),r.point(-tl,0),r.point(-tl,o);else if(sl(e[0]-t[0])>Ju){var i=e[0]<t[0]?tl:-tl;o=n*i/2,r.point(-i,o),r.point(0,o),r.point(i,o)}else r.point(t[0],t[1])}),[-tl,-nl]);function vf(e){var t=cl(e),n=6*al,r=t>0,o=sl(t)>Ju;function i(e,n){return cl(e)*cl(n)>t}function a(e,n,r){var o=[1,0,0],i=rc(tc(e),tc(n)),a=nc(i,i),s=i[0],u=a-s*s;if(!u)return!r&&e;var l=t*a/u,c=-t*s/u,f=rc(o,i),d=ic(o,l);oc(d,ic(i,c));var h=f,p=nc(d,h),g=nc(h,h),v=p*p-g*(nc(d,d)-1);if(!(v<0)){var y=ml(v),m=ic(h,(-p-y)/g);if(oc(m,d),m=ec(m),!r)return m;var b,_=e[0],w=n[0],x=e[1],S=n[1];w<_&&(b=_,_=w,w=b);var A=w-_,E=sl(A-tl)<Ju;if(!E&&S<x&&(b=x,x=S,S=b),E||A<Ju?E?x+S>0^m[1]<(sl(m[0]-_)<Ju?x:S):x<=m[1]&&m[1]<=S:A>tl^(_<=m[0]&&m[0]<=w)){var C=ic(h,(-p+y)/g);return oc(C,d),[m,ec(C)]}}}function s(t,n){var o=r?e:tl-e,i=0;return t<-o?i|=1:t>o&&(i|=2),n<-o?i|=4:n>o&&(i|=8),i}return df(i,(function(e){var t,n,u,l,c;return{lineStart:function(){l=u=!1,c=1},point:function(f,d){var h,p=[f,d],g=i(f,d),v=r?g?0:s(f,d):g?s(f+(f<0?tl:-tl),d):0;if(!t&&(l=u=g)&&e.lineStart(),g!==u&&(!(h=a(t,p))||af(t,h)||af(p,h))&&(p[2]=1),g!==u)c=0,g?(e.lineStart(),h=a(p,t),e.point(h[0],h[1])):(h=a(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(o&&t&&r^g){var y;v&n||!(y=a(p,t,!0))||(c=0,r?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!g||t&&af(t,p)||e.point(p[0],p[1]),t=p,u=g,n=v},lineEnd:function(){u&&e.lineEnd(),t=null},clean:function(){return c|(l&&u)<<1}}}),(function(t,r,o,i){tf(i,e,n,o,t,r)}),r?[0,-e]:[-tl,e-tl])}var yf,mf,bf,_f,wf=1e9,xf=-wf;function Sf(e,t,n,r){function o(o,i){return e<=o&&o<=n&&t<=i&&i<=r}function i(o,i,s,l){var c=0,f=0;if(null==o||(c=a(o,s))!==(f=a(i,s))||u(o,i)<0^s>0)do{l.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+s+4)%4)!==f);else l.point(i[0],i[1])}function a(r,o){return sl(r[0]-e)<Ju?o>0?0:3:sl(r[0]-n)<Ju?o>0?2:1:sl(r[1]-t)<Ju?o>0?1:0:o>0?3:2}function s(e,t){return u(e.x,t.x)}function u(e,t){var n=a(e,1),r=a(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(a){var u,l,c,f,d,h,p,g,v,y,m,b=a,_=of(),w={point:x,lineStart:function(){w.point=S,l&&l.push(c=[]);y=!0,v=!1,p=g=NaN},lineEnd:function(){u&&(S(f,d),h&&v&&_.rejoin(),u.push(_.result()));w.point=x,v&&b.lineEnd()},polygonStart:function(){b=_,u=[],l=[],m=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,o=l.length;n<o;++n)for(var i,a,s=l[n],u=1,c=s.length,f=s[0],d=f[0],h=f[1];u<c;++u)i=d,a=h,d=(f=s[u])[0],h=f[1],a<=r?h>r&&(d-i)*(r-a)>(h-a)*(e-i)&&++t:h<=r&&(d-i)*(r-a)<(h-a)*(e-i)&&--t;return t}(),n=m&&t,o=(u=ne(u)).length;(n||o)&&(a.polygonStart(),n&&(a.lineStart(),i(null,null,1,a),a.lineEnd()),o&&uf(u,s,t,i,a),a.polygonEnd());b=a,u=l=c=null}};function x(e,t){o(e,t)&&b.point(e,t)}function S(i,a){var s=o(i,a);if(l&&c.push([i,a]),y)f=i,d=a,h=s,y=!1,s&&(b.lineStart(),b.point(i,a));else if(s&&v)b.point(i,a);else{var u=[p=Math.max(xf,Math.min(wf,p)),g=Math.max(xf,Math.min(wf,g))],_=[i=Math.max(xf,Math.min(wf,i)),a=Math.max(xf,Math.min(wf,a))];!function(e,t,n,r,o,i){var a,s=e[0],u=e[1],l=0,c=1,f=t[0]-s,d=t[1]-u;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a<l)return;a<c&&(c=a)}else if(f>0){if(a>c)return;a>l&&(l=a)}if(a=o-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>l&&(l=a)}else if(f>0){if(a<l)return;a<c&&(c=a)}if(a=r-u,d||!(a>0)){if(a/=d,d<0){if(a<l)return;a<c&&(c=a)}else if(d>0){if(a>c)return;a>l&&(l=a)}if(a=i-u,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>l&&(l=a)}else if(d>0){if(a<l)return;a<c&&(c=a)}return l>0&&(e[0]=s+l*f,e[1]=u+l*d),c<1&&(t[0]=s+c*f,t[1]=u+c*d),!0}}}}}(u,_,e,t,n,r)?s&&(b.lineStart(),b.point(i,a),m=!1):(v||(b.lineStart(),b.point(u[0],u[1])),b.point(_[0],_[1]),s||b.lineEnd(),m=!1)}p=i,g=a,v=s}return w}}function Af(){var e,t,n,r=0,o=0,i=960,a=500;return n={stream:function(n){return e&&t===n?e:e=Sf(r,o,i,a)(t=n)},extent:function(s){return arguments.length?(r=+s[0][0],o=+s[0][1],i=+s[1][0],a=+s[1][1],e=t=null,n):[[r,o],[i,a]]}}}var Ef={sphere:Sl,point:Sl,lineStart:function(){Ef.point=Rf,Ef.lineEnd=Cf},lineEnd:Sl,polygonStart:Sl,polygonEnd:Sl};function Cf(){Ef.point=Ef.lineEnd=Sl}function Rf(e,t){mf=e*=al,bf=vl(t*=al),_f=cl(t),Ef.point=Of}function Of(e,t){e*=al;var n=vl(t*=al),r=cl(t),o=sl(e-mf),i=cl(o),a=r*vl(o),s=_f*n-bf*r*i,u=bf*n+_f*r*i;yf.add(ll(ml(a*a+s*s),u)),mf=e,bf=n,_f=r}function Tf(e){return yf=new S,Tl(e,Ef),+yf}var kf=[null,null],Mf={type:"LineString",coordinates:kf};function Pf(e,t){return kf[0]=e,kf[1]=t,Tf(Mf)}var Nf={Feature:function(e,t){return Lf(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r<o;)if(Lf(n[r].geometry,t))return!0;return!1}},If={Sphere:function(){return!0},Point:function(e,t){return Df(e.coordinates,t)},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(Df(n[r],t))return!0;return!1},LineString:function(e,t){return Ff(e.coordinates,t)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(Ff(n[r],t))return!0;return!1},Polygon:function(e,t){return jf(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(jf(n[r],t))return!0;return!1},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,o=n.length;++r<o;)if(Lf(n[r],t))return!0;return!1}};function Lf(e,t){return!(!e||!If.hasOwnProperty(e.type))&&If[e.type](e,t)}function Df(e,t){return 0===Pf(e,t)}function Ff(e,t){for(var n,r,o,i=0,a=e.length;i<a;i++){if(0===(r=Pf(e[i],t)))return!0;if(i>0&&(o=Pf(e[i],e[i-1]))>0&&n<=o&&r<=o&&(n+r-o)*(1-Math.pow((n-r)/o,2))<el*o)return!0;n=r}return!1}function jf(e,t){return!!ff(e.map(Uf),zf(t))}function Uf(e){return(e=e.map(zf)).pop(),e}function zf(e){return[e[0]*al,e[1]*al]}function Bf(e,t){return(e&&Nf.hasOwnProperty(e.type)?Nf[e.type]:Lf)(e,t)}function Vf(e,t,n){var r=(0,ce.A)(e,t-Ju,n).concat(t);return function(e){return r.map((function(t){return[e,t]}))}}function Hf(e,t,n){var r=(0,ce.A)(e,t-Ju,n).concat(t);return function(e){return r.map((function(t){return[t,e]}))}}function $f(){var e,t,n,r,o,i,a,s,u,l,c,f,d=10,h=d,p=90,g=360,v=2.5;function y(){return{type:"MultiLineString",coordinates:m()}}function m(){return(0,ce.A)(fl(r/p)*p,n,p).map(c).concat((0,ce.A)(fl(s/g)*g,a,g).map(f)).concat((0,ce.A)(fl(t/d)*d,e,d).filter((function(e){return sl(e%p)>Ju})).map(u)).concat((0,ce.A)(fl(i/h)*h,o,h).filter((function(e){return sl(e%g)>Ju})).map(l))}return y.lines=function(){return m().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(r).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.extentMajor(e).extentMinor(e):y.extentMinor()},y.extentMajor=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],s=+e[0][1],a=+e[1][1],r>n&&(e=r,r=n,n=e),s>a&&(e=s,s=a,a=e),y.precision(v)):[[r,s],[n,a]]},y.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],i=+n[0][1],o=+n[1][1],t>e&&(n=t,t=e,e=n),i>o&&(n=i,i=o,o=n),y.precision(v)):[[t,i],[e,o]]},y.step=function(e){return arguments.length?y.stepMajor(e).stepMinor(e):y.stepMinor()},y.stepMajor=function(e){return arguments.length?(p=+e[0],g=+e[1],y):[p,g]},y.stepMinor=function(e){return arguments.length?(d=+e[0],h=+e[1],y):[d,h]},y.precision=function(d){return arguments.length?(v=+d,u=Vf(i,o,90),l=Hf(t,e,v),c=Vf(s,a,90),f=Hf(r,n,v),y):v},y.extentMajor([[-180,-90+Ju],[180,90-Ju]]).extentMinor([[-180,-80-Ju],[180,80+Ju]])}function Wf(){return $f()()}function Gf(e,t){var n=e[0]*al,r=e[1]*al,o=t[0]*al,i=t[1]*al,a=cl(r),s=vl(r),u=cl(i),l=vl(i),c=a*cl(n),f=a*vl(n),d=u*cl(o),h=u*vl(o),p=2*wl(ml(xl(i-r)+a*u*xl(o-n))),g=vl(p),v=p?function(e){var t=vl(e*=p)/g,n=vl(p-e)/g,r=n*c+t*d,o=n*f+t*h,i=n*s+t*l;return[ll(o,r)*il,ll(i,ml(r*r+o*o))*il]}:function(){return[n*il,r*il]};return v.distance=p,v}const qf=e=>e;var Yf,Xf,Zf,Kf,Qf=new S,Jf=new S,ed={point:Sl,lineStart:Sl,lineEnd:Sl,polygonStart:function(){ed.lineStart=td,ed.lineEnd=od},polygonEnd:function(){ed.lineStart=ed.lineEnd=ed.point=Sl,Qf.add(sl(Jf)),Jf=new S},result:function(){var e=Qf/2;return Qf=new S,e}};function td(){ed.point=nd}function nd(e,t){ed.point=rd,Yf=Zf=e,Xf=Kf=t}function rd(e,t){Jf.add(Kf*e-Zf*t),Zf=e,Kf=t}function od(){rd(Yf,Xf)}const id=ed;var ad=1/0,sd=ad,ud=-ad,ld=ud,cd={point:function(e,t){e<ad&&(ad=e);e>ud&&(ud=e);t<sd&&(sd=t);t>ld&&(ld=t)},lineStart:Sl,lineEnd:Sl,polygonStart:Sl,polygonEnd:Sl,result:function(){var e=[[ad,sd],[ud,ld]];return ud=ld=-(sd=ad=1/0),e}};const fd=cd;var dd,hd,pd,gd,vd=0,yd=0,md=0,bd=0,_d=0,wd=0,xd=0,Sd=0,Ad=0,Ed={point:Cd,lineStart:Rd,lineEnd:kd,polygonStart:function(){Ed.lineStart=Md,Ed.lineEnd=Pd},polygonEnd:function(){Ed.point=Cd,Ed.lineStart=Rd,Ed.lineEnd=kd},result:function(){var e=Ad?[xd/Ad,Sd/Ad]:wd?[bd/wd,_d/wd]:md?[vd/md,yd/md]:[NaN,NaN];return vd=yd=md=bd=_d=wd=xd=Sd=Ad=0,e}};function Cd(e,t){vd+=e,yd+=t,++md}function Rd(){Ed.point=Od}function Od(e,t){Ed.point=Td,Cd(pd=e,gd=t)}function Td(e,t){var n=e-pd,r=t-gd,o=ml(n*n+r*r);bd+=o*(pd+e)/2,_d+=o*(gd+t)/2,wd+=o,Cd(pd=e,gd=t)}function kd(){Ed.point=Cd}function Md(){Ed.point=Nd}function Pd(){Id(dd,hd)}function Nd(e,t){Ed.point=Id,Cd(dd=pd=e,hd=gd=t)}function Id(e,t){var n=e-pd,r=t-gd,o=ml(n*n+r*r);bd+=o*(pd+e)/2,_d+=o*(gd+t)/2,wd+=o,xd+=(o=gd*e-pd*t)*(pd+e),Sd+=o*(gd+t),Ad+=3*o,Cd(pd=e,gd=t)}const Ld=Ed;function Dd(e){this._context=e}Dd.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,ol)}},result:Sl};var Fd,jd,Ud,zd,Bd,Vd=new S,Hd={point:Sl,lineStart:function(){Hd.point=$d},lineEnd:function(){Fd&&Wd(jd,Ud),Hd.point=Sl},polygonStart:function(){Fd=!0},polygonEnd:function(){Fd=null},result:function(){var e=+Vd;return Vd=new S,e}};function $d(e,t){Hd.point=Wd,jd=zd=e,Ud=Bd=t}function Wd(e,t){zd-=e,Bd-=t,Vd.add(ml(zd*zd+Bd*Bd)),zd=e,Bd=t}const Gd=Hd;let qd,Yd,Xd,Zd;class Kd{constructor(e){this._append=null==e?Qd:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return Qd;if(t!==qd){const e=10**t;qd=t,Yd=function(t){let n=1;this._+=t[0];for(const r=t.length;n<r;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}return Yd}(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(e,t){switch(this._point){case 0:this._append`M${e},${t}`,this._point=1;break;case 1:this._append`L${e},${t}`;break;default:if(this._append`M${e},${t}`,this._radius!==Xd||this._append!==Yd){const e=this._radius,t=this._;this._="",this._append`m0,${e}a${e},${e} 0 1,1 0,${-2*e}a${e},${e} 0 1,1 0,${2*e}z`,Xd=e,Yd=this._append,Zd=this._,this._=t}this._+=Zd}}result(){const e=this._;return this._="",e.length?e:null}}function Qd(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Jd(e,t){let n,r,o=3,i=4.5;function a(e){return e&&("function"===typeof i&&r.pointRadius(+i.apply(this,arguments)),Tl(e,n(r))),r.result()}return a.area=function(e){return Tl(e,n(id)),id.result()},a.measure=function(e){return Tl(e,n(Gd)),Gd.result()},a.bounds=function(e){return Tl(e,n(fd)),fd.result()},a.centroid=function(e){return Tl(e,n(Ld)),Ld.result()},a.projection=function(t){return arguments.length?(n=null==t?(e=null,qf):(e=t).stream,a):e},a.context=function(e){return arguments.length?(r=null==e?(t=null,new Kd(o)):new Dd(t=e),"function"!==typeof i&&r.pointRadius(i),a):t},a.pointRadius=function(e){return arguments.length?(i="function"===typeof e?e:(r.pointRadius(+e),+e),a):i},a.digits=function(e){if(!arguments.length)return o;if(null==e)o=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);o=t}return null===t&&(r=new Kd(o)),a},a.projection(e).digits(o).context(t)}function eh(e){return{stream:th(e)}}function th(e){return function(t){var n=new nh;for(var r in e)n[r]=e[r];return n.stream=t,n}}function nh(){}function rh(e,t,n){var r=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=r&&e.clipExtent(null),Tl(n,e.stream(fd)),t(fd.result()),null!=r&&e.clipExtent(r),e}function oh(e,t,n){return rh(e,(function(n){var r=t[1][0]-t[0][0],o=t[1][1]-t[0][1],i=Math.min(r/(n[1][0]-n[0][0]),o/(n[1][1]-n[0][1])),a=+t[0][0]+(r-i*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(o-i*(n[1][1]+n[0][1]))/2;e.scale(150*i).translate([a,s])}),n)}function ih(e,t,n){return oh(e,[[0,0],t],n)}function ah(e,t,n){return rh(e,(function(n){var r=+t,o=r/(n[1][0]-n[0][0]),i=(r-o*(n[1][0]+n[0][0]))/2,a=-o*n[0][1];e.scale(150*o).translate([i,a])}),n)}function sh(e,t,n){return rh(e,(function(n){var r=+t,o=r/(n[1][1]-n[0][1]),i=-o*n[0][0],a=(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([i,a])}),n)}nh.prototype={constructor:nh,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var uh=16,lh=cl(30*al);function ch(e,t){return+t?function(e,t){function n(r,o,i,a,s,u,l,c,f,d,h,p,g,v){var y=l-r,m=c-o,b=y*y+m*m;if(b>4*t&&g--){var _=a+d,w=s+h,x=u+p,S=ml(_*_+w*w+x*x),A=wl(x/=S),E=sl(sl(x)-1)<Ju||sl(i-f)<Ju?(i+f)/2:ll(w,_),C=e(E,A),R=C[0],O=C[1],T=R-r,k=O-o,M=m*T-y*k;(M*M/b>t||sl((y*T+m*k)/b-.5)>.3||a*d+s*h+u*p<lh)&&(n(r,o,i,a,s,u,R,O,E,_/=S,w/=S,x,g,v),v.point(R,O),n(R,O,E,_,w,x,l,c,f,d,h,p,g,v))}}return function(t){var r,o,i,a,s,u,l,c,f,d,h,p,g={point:v,lineStart:y,lineEnd:b,polygonStart:function(){t.polygonStart(),g.lineStart=_},polygonEnd:function(){t.polygonEnd(),g.lineStart=y}};function v(n,r){n=e(n,r),t.point(n[0],n[1])}function y(){c=NaN,g.point=m,t.lineStart()}function m(r,o){var i=tc([r,o]),a=e(r,o);n(c,f,l,d,h,p,c=a[0],f=a[1],l=r,d=i[0],h=i[1],p=i[2],uh,t),t.point(c,f)}function b(){g.point=v,t.lineEnd()}function _(){y(),g.point=w,g.lineEnd=x}function w(e,t){m(r=e,t),o=c,i=f,a=d,s=h,u=p,g.point=m}function x(){n(c,f,l,d,h,p,o,i,r,a,s,u,uh,t),g.lineEnd=b,b()}return g}}(e,t):function(e){return th({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var fh=th({point:function(e,t){this.stream.point(e*al,t*al)}});function dh(e,t,n,r,o,i){if(!i)return function(e,t,n,r,o){function i(i,a){return[t+e*(i*=r),n-e*(a*=o)]}return i.invert=function(i,a){return[(i-t)/e*r,(n-a)/e*o]},i}(e,t,n,r,o);var a=cl(i),s=vl(i),u=a*e,l=s*e,c=a/e,f=s/e,d=(s*n-a*t)/e,h=(s*t+a*n)/e;function p(e,i){return[u*(e*=r)-l*(i*=o)+t,n-l*e-u*i]}return p.invert=function(e,t){return[r*(c*e-f*t+d),o*(h-f*e-c*t)]},p}function hh(e){return ph((function(){return e}))()}function ph(e){var t,n,r,o,i,a,s,u,l,c,f=150,d=480,h=250,p=0,g=0,v=0,y=0,m=0,b=0,_=1,w=1,x=null,S=gf,A=null,E=qf,C=.5;function R(e){return u(e[0]*al,e[1]*al)}function O(e){return(e=u.invert(e[0],e[1]))&&[e[0]*il,e[1]*il]}function T(){var e=dh(f,0,0,_,w,b).apply(null,t(p,g)),r=dh(f,d-e[0],h-e[1],_,w,b);return n=Zc(v,y,m),s=Yc(t,r),u=Yc(n,s),a=ch(s,C),k()}function k(){return l=c=null,R}return R.stream=function(e){return l&&c===e?l:l=fh(function(e){return th({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(S(a(E(c=e)))))},R.preclip=function(e){return arguments.length?(S=e,x=void 0,k()):S},R.postclip=function(e){return arguments.length?(E=e,A=r=o=i=null,k()):E},R.clipAngle=function(e){return arguments.length?(S=+e?vf(x=e*al):(x=null,gf),k()):x*il},R.clipExtent=function(e){return arguments.length?(E=null==e?(A=r=o=i=null,qf):Sf(A=+e[0][0],r=+e[0][1],o=+e[1][0],i=+e[1][1]),k()):null==A?null:[[A,r],[o,i]]},R.scale=function(e){return arguments.length?(f=+e,T()):f},R.translate=function(e){return arguments.length?(d=+e[0],h=+e[1],T()):[d,h]},R.center=function(e){return arguments.length?(p=e[0]%360*al,g=e[1]%360*al,T()):[p*il,g*il]},R.rotate=function(e){return arguments.length?(v=e[0]%360*al,y=e[1]%360*al,m=e.length>2?e[2]%360*al:0,T()):[v*il,y*il,m*il]},R.angle=function(e){return arguments.length?(b=e%360*al,T()):b*il},R.reflectX=function(e){return arguments.length?(_=e?-1:1,T()):_<0},R.reflectY=function(e){return arguments.length?(w=e?-1:1,T()):w<0},R.precision=function(e){return arguments.length?(a=ch(s,C=e*e),k()):ml(C)},R.fitExtent=function(e,t){return oh(R,e,t)},R.fitSize=function(e,t){return ih(R,e,t)},R.fitWidth=function(e,t){return ah(R,e,t)},R.fitHeight=function(e,t){return sh(R,e,t)},function(){return t=e.apply(this,arguments),R.invert=t.invert&&O,T()}}function gh(e){var t=0,n=tl/3,r=ph(e),o=r(t,n);return o.parallels=function(e){return arguments.length?r(t=e[0]*al,n=e[1]*al):[t*il,n*il]},o}function vh(e,t){var n=vl(e),r=(n+vl(t))/2;if(sl(r)<Ju)return function(e){var t=cl(e);function n(e,n){return[e*t,vl(n)/t]}return n.invert=function(e,n){return[e/t,wl(n*t)]},n}(e);var o=1+n*(2*r-n),i=ml(o)/r;function a(e,t){var n=ml(o-2*r*vl(t))/r;return[n*vl(e*=r),i-n*cl(e)]}return a.invert=function(e,t){var n=i-t,a=ll(e,sl(n))*yl(n);return n*r<0&&(a-=tl*yl(e)*yl(n)),[a/r,wl((o-(e*e+n*n)*r*r)/(2*r))]},a}function yh(){return gh(vh).scale(155.424).center([0,33.6442])}function mh(){return yh().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function bh(){var e,t,n,r,o,i,a=mh(),s=yh().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=yh().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(e,t){i=[e,t]}};function c(e){var t=e[0],a=e[1];return i=null,n.point(t,a),i||(r.point(t,a),i)||(o.point(t,a),i)}function f(){return e=t=null,c}return c.invert=function(e){var t=a.scale(),n=a.translate(),r=(e[0]-n[0])/t,o=(e[1]-n[1])/t;return(o>=.12&&o<.234&&r>=-.425&&r<-.214?s:o>=.166&&o<.234&&r>=-.214&&r<-.115?u:a).invert(e)},c.stream=function(n){return e&&t===n?e:e=function(e){var t=e.length;return{point:function(n,r){for(var o=-1;++o<t;)e[o].point(n,r)},sphere:function(){for(var n=-1;++n<t;)e[n].sphere()},lineStart:function(){for(var n=-1;++n<t;)e[n].lineStart()},lineEnd:function(){for(var n=-1;++n<t;)e[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<t;)e[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<t;)e[n].polygonEnd()}}}([a.stream(t=n),s.stream(n),u.stream(n)])},c.precision=function(e){return arguments.length?(a.precision(e),s.precision(e),u.precision(e),f()):a.precision()},c.scale=function(e){return arguments.length?(a.scale(e),s.scale(.35*e),u.scale(e),c.translate(a.translate())):a.scale()},c.translate=function(e){if(!arguments.length)return a.translate();var t=a.scale(),i=+e[0],c=+e[1];return n=a.translate(e).clipExtent([[i-.455*t,c-.238*t],[i+.455*t,c+.238*t]]).stream(l),r=s.translate([i-.307*t,c+.201*t]).clipExtent([[i-.425*t+Ju,c+.12*t+Ju],[i-.214*t-Ju,c+.234*t-Ju]]).stream(l),o=u.translate([i-.205*t,c+.212*t]).clipExtent([[i-.214*t+Ju,c+.166*t+Ju],[i-.115*t-Ju,c+.234*t-Ju]]).stream(l),f()},c.fitExtent=function(e,t){return oh(c,e,t)},c.fitSize=function(e,t){return ih(c,e,t)},c.fitWidth=function(e,t){return ah(c,e,t)},c.fitHeight=function(e,t){return sh(c,e,t)},c.scale(1070)}function _h(e){return function(t,n){var r=cl(t),o=cl(n),i=e(r*o);return i===1/0?[2,0]:[i*o*vl(t),i*vl(n)]}}function wh(e){return function(t,n){var r=ml(t*t+n*n),o=e(r),i=vl(o),a=cl(o);return[ll(t*i,r*a),wl(r&&n*i/r)]}}var xh=_h((function(e){return ml(2/(1+e))}));function Sh(){return hh(xh).scale(124.75).clipAngle(179.999)}xh.invert=wh((function(e){return 2*wl(e/2)}));var Ah=_h((function(e){return(e=_l(e))&&e/vl(e)}));function Eh(){return hh(Ah).scale(79.4188).clipAngle(179.999)}function Ch(e,t){return[e,pl(bl((nl+t)/2))]}function Rh(){return Oh(Ch).scale(961/ol)}function Oh(e){var t,n,r,o=hh(e),i=o.center,a=o.scale,s=o.translate,u=o.clipExtent,l=null;function c(){var i=tl*a(),s=o(ef(o.rotate()).invert([0,0]));return u(null==l?[[s[0]-i,s[1]-i],[s[0]+i,s[1]+i]]:e===Ch?[[Math.max(s[0]-i,l),t],[Math.min(s[0]+i,n),r]]:[[l,Math.max(s[1]-i,t)],[n,Math.min(s[1]+i,r)]])}return o.scale=function(e){return arguments.length?(a(e),c()):a()},o.translate=function(e){return arguments.length?(s(e),c()):s()},o.center=function(e){return arguments.length?(i(e),c()):i()},o.clipExtent=function(e){return arguments.length?(null==e?l=t=n=r=null:(l=+e[0][0],t=+e[0][1],n=+e[1][0],r=+e[1][1]),c()):null==l?null:[[l,t],[n,r]]},c()}function Th(e){return bl((nl+e)/2)}function kh(e,t){var n=cl(e),r=e===t?vl(e):pl(n/cl(t))/pl(Th(t)/Th(e)),o=n*gl(Th(e),r)/r;if(!r)return Ch;function i(e,t){o>0?t<-nl+Ju&&(t=-nl+Ju):t>nl-Ju&&(t=nl-Ju);var n=o/gl(Th(t),r);return[n*vl(r*e),o-n*cl(r*e)]}return i.invert=function(e,t){var n=o-t,i=yl(r)*ml(e*e+n*n),a=ll(e,sl(n))*yl(n);return n*r<0&&(a-=tl*yl(e)*yl(n)),[a/r,2*ul(gl(o/i,1/r))-nl]},i}function Mh(){return gh(kh).scale(109.5).parallels([30,30])}function Ph(e,t){return[e,t]}function Nh(){return hh(Ph).scale(152.63)}function Ih(e,t){var n=cl(e),r=e===t?vl(e):(n-cl(t))/(t-e),o=n/r+e;if(sl(r)<Ju)return Ph;function i(e,t){var n=o-t,i=r*e;return[n*vl(i),o-n*cl(i)]}return i.invert=function(e,t){var n=o-t,i=ll(e,sl(n))*yl(n);return n*r<0&&(i-=tl*yl(e)*yl(n)),[i/r,o-yl(r)*ml(e*e+n*n)]},i}function Lh(){return gh(Ih).scale(131.154).center([0,13.9389])}Ah.invert=wh((function(e){return e})),Ch.invert=function(e,t){return[e,2*ul(dl(t))-nl]},Ph.invert=Ph;var Dh=1.340264,Fh=-.081106,jh=893e-6,Uh=.003796,zh=ml(3)/2;function Bh(e,t){var n=wl(zh*vl(t)),r=n*n,o=r*r*r;return[e*cl(n)/(zh*(Dh+3*Fh*r+o*(7*jh+9*Uh*r))),n*(Dh+Fh*r+o*(jh+Uh*r))]}function Vh(){return hh(Bh).scale(177.158)}function Hh(e,t){var n=cl(t),r=cl(e)*n;return[n*vl(e)/r,vl(t)/r]}function $h(){return hh(Hh).scale(144.049).clipAngle(60)}function Wh(){var e,t,n,r,o,i,a,s=1,u=0,l=0,c=1,f=1,d=0,h=null,p=1,g=1,v=th({point:function(e,t){var n=b([e,t]);this.stream.point(n[0],n[1])}}),y=qf;function m(){return p=s*c,g=s*f,i=a=null,b}function b(n){var r=n[0]*p,o=n[1]*g;if(d){var i=o*e-r*t;r=r*e+o*t,o=i}return[r+u,o+l]}return b.invert=function(n){var r=n[0]-u,o=n[1]-l;if(d){var i=o*e+r*t;r=r*e-o*t,o=i}return[r/p,o/g]},b.stream=function(e){return i&&a===e?i:i=v(y(a=e))},b.postclip=function(e){return arguments.length?(y=e,h=n=r=o=null,m()):y},b.clipExtent=function(e){return arguments.length?(y=null==e?(h=n=r=o=null,qf):Sf(h=+e[0][0],n=+e[0][1],r=+e[1][0],o=+e[1][1]),m()):null==h?null:[[h,n],[r,o]]},b.scale=function(e){return arguments.length?(s=+e,m()):s},b.translate=function(e){return arguments.length?(u=+e[0],l=+e[1],m()):[u,l]},b.angle=function(n){return arguments.length?(t=vl(d=n%360*al),e=cl(d),m()):d*il},b.reflectX=function(e){return arguments.length?(c=e?-1:1,m()):c<0},b.reflectY=function(e){return arguments.length?(f=e?-1:1,m()):f<0},b.fitExtent=function(e,t){return oh(b,e,t)},b.fitSize=function(e,t){return ih(b,e,t)},b.fitWidth=function(e,t){return ah(b,e,t)},b.fitHeight=function(e,t){return sh(b,e,t)},b}function Gh(e,t){var n=t*t,r=n*n;return[e*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),t*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}function qh(){return hh(Gh).scale(175.295)}function Yh(e,t){return[cl(t)*vl(e),vl(t)]}function Xh(){return hh(Yh).scale(249.5).clipAngle(90+Ju)}function Zh(e,t){var n=cl(t),r=1+cl(e)*n;return[n*vl(e)/r,vl(t)/r]}function Kh(){return hh(Zh).scale(250).clipAngle(142)}function Qh(e,t){return[pl(bl((nl+t)/2)),-e]}function Jh(){var e=Oh(Qh),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}function ep(e,t){return e.parent===t.parent?1:2}function tp(e,t){return e+t.x}function np(e,t){return Math.max(e,t.y)}function rp(){var e=ep,t=1,n=1,r=!1;function o(o){var i,a=0;o.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(tp,0)/e.length}(n),t.y=function(e){return 1+e.reduce(np,0)}(n)):(t.x=i?a+=e(t,i):0,t.y=0,i=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(o),u=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(o),l=s.x-e(s,u)/2,c=u.x+e(u,s)/2;return o.eachAfter(r?function(e){e.x=(e.x-o.x)*t,e.y=(o.y-e.y)*n}:function(e){e.x=(e.x-l)/(c-l)*t,e.y=(1-(o.y?e.y/o.y:1))*n})}return o.separation=function(t){return arguments.length?(e=t,o):e},o.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],o):r?null:[t,n]},o.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],o):r?[t,n]:null},o}function op(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function ip(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=sp)):void 0===t&&(t=ap);for(var n,r,o,i,a,s=new cp(e),u=[s];n=u.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)u.push(r=o[i]=new cp(o[i])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(lp)}function ap(e){return e.children}function sp(e){return Array.isArray(e)?e[1]:null}function up(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function lp(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function cp(e){this.data=e,this.depth=this.height=0,this.parent=null}function fp(e){return null==e?null:dp(e)}function dp(e){if("function"!==typeof e)throw new Error;return e}function hp(){return 0}function pp(e){return function(){return e}}Bh.invert=function(e,t){for(var n,r=t,o=r*r,i=o*o*o,a=0;a<12&&(i=(o=(r-=n=(r*(Dh+Fh*o+i*(jh+Uh*o))-t)/(Dh+3*Fh*o+i*(7*jh+9*Uh*o)))*r)*o*o,!(sl(n)<el));++a);return[zh*e*(Dh+3*Fh*o+i*(7*jh+9*Uh*o))/cl(r),wl(vl(r)/zh)]},Hh.invert=wh(ul),Gh.invert=function(e,t){var n,r=t,o=25;do{var i=r*r,a=i*i;r-=n=(r*(1.007226+i*(.015085+a*(.028874*i-.044475-.005916*a)))-t)/(1.007226+i*(.045255+a*(.259866*i-.311325-.005916*11*a)))}while(sl(n)>Ju&&--o>0);return[e/(.8707+(i=r*r)*(i*(i*i*i*(.003971-.001529*i)-.013791)-.131979)),r]},Yh.invert=wh(wl),Zh.invert=wh((function(e){return 2*ul(e)})),Qh.invert=function(e,t){return[-t,2*ul(dl(e))-nl]},cp.prototype=ip.prototype={constructor:cp,count:function(){return this.eachAfter(op)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],s=[],u=-1;i=a.pop();)if(s.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=s.pop();)e.call(t,i,++u,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return ip(this).eachBefore(up)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};const gp=1664525,vp=1013904223,yp=4294967296;function mp(){let e=1;return()=>(e=(gp*e+vp)%yp)/yp}function bp(e){return _p(e,mp())}function _p(e,t){for(var n,r,o=0,i=(e=function(e,t){let n,r,o=e.length;for(;o;)r=t()*o--|0,n=e[o],e[o]=e[r],e[r]=n;return e}(Array.from(e),t)).length,a=[];o<i;)n=e[o],r&&Sp(r,n)?++o:(r=Ep(a=wp(a,n)),o=0);return r}function wp(e,t){var n,r;if(Ap(t,e))return[t];for(n=0;n<e.length;++n)if(xp(t,e[n])&&Ap(Cp(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(r=n+1;r<e.length;++r)if(xp(Cp(e[n],e[r]),t)&&xp(Cp(e[n],t),e[r])&&xp(Cp(e[r],t),e[n])&&Ap(Rp(e[n],e[r],t),e))return[e[n],e[r],t];throw new Error}function xp(e,t){var n=e.r-t.r,r=t.x-e.x,o=t.y-e.y;return n<0||n*n<r*r+o*o}function Sp(e,t){var n=e.r-t.r+1e-9*Math.max(e.r,t.r,1),r=t.x-e.x,o=t.y-e.y;return n>0&&n*n>r*r+o*o}function Ap(e,t){for(var n=0;n<t.length;++n)if(!Sp(e,t[n]))return!1;return!0}function Ep(e){switch(e.length){case 1:return function(e){return{x:e.x,y:e.y,r:e.r}}(e[0]);case 2:return Cp(e[0],e[1]);case 3:return Rp(e[0],e[1],e[2])}}function Cp(e,t){var n=e.x,r=e.y,o=e.r,i=t.x,a=t.y,s=t.r,u=i-n,l=a-r,c=s-o,f=Math.sqrt(u*u+l*l);return{x:(n+i+u/f*c)/2,y:(r+a+l/f*c)/2,r:(f+o+s)/2}}function Rp(e,t,n){var r=e.x,o=e.y,i=e.r,a=t.x,s=t.y,u=t.r,l=n.x,c=n.y,f=n.r,d=r-a,h=r-l,p=o-s,g=o-c,v=u-i,y=f-i,m=r*r+o*o-i*i,b=m-a*a-s*s+u*u,_=m-l*l-c*c+f*f,w=h*p-d*g,x=(p*_-g*b)/(2*w)-r,S=(g*v-p*y)/w,A=(h*b-d*_)/(2*w)-o,E=(d*y-h*v)/w,C=S*S+E*E-1,R=2*(i+x*S+A*E),O=x*x+A*A-i*i,T=-(Math.abs(C)>1e-6?(R+Math.sqrt(R*R-4*C*O))/(2*C):O/R);return{x:r+x+S*T,y:o+A+E*T,r:T}}function Op(e,t,n){var r,o,i,a,s=e.x-t.x,u=e.y-t.y,l=s*s+u*u;l?(o=t.r+n.r,o*=o,a=e.r+n.r,o>(a*=a)?(r=(l+a-o)/(2*l),i=Math.sqrt(Math.max(0,a/l-r*r)),n.x=e.x-r*s-i*u,n.y=e.y-r*u+i*s):(r=(l+o-a)/(2*l),i=Math.sqrt(Math.max(0,o/l-r*r)),n.x=t.x+r*s-i*u,n.y=t.y+r*u+i*s)):(n.x=t.x+n.r,n.y=t.y)}function Tp(e,t){var n=e.r+t.r-1e-6,r=t.x-e.x,o=t.y-e.y;return n>0&&n*n>r*r+o*o}function kp(e){var t=e._,n=e.next._,r=t.r+n.r,o=(t.x*n.r+n.x*t.r)/r,i=(t.y*n.r+n.y*t.r)/r;return o*o+i*i}function Mp(e){this._=e,this.next=null,this.previous=null}function Pp(e,t){if(!(i=(e=function(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,r,o,i,a,s,u,l,c,f,d;if((n=e[0]).x=0,n.y=0,!(i>1))return n.r;if(r=e[1],n.x=-r.r,r.x=n.r,r.y=0,!(i>2))return n.r+r.r;Op(r,n,o=e[2]),n=new Mp(n),r=new Mp(r),o=new Mp(o),n.next=o.previous=r,r.next=n.previous=o,o.next=r.previous=n;e:for(u=3;u<i;++u){Op(n._,r._,o=e[u]),o=new Mp(o),l=r.next,c=n.previous,f=r._.r,d=n._.r;do{if(f<=d){if(Tp(l._,o._)){r=l,n.next=r,r.previous=n,--u;continue e}f+=l._.r,l=l.next}else{if(Tp(c._,o._)){(n=c).next=r,r.previous=n,--u;continue e}d+=c._.r,c=c.previous}}while(l!==c.next);for(o.previous=n,o.next=r,n.next=r.previous=r=o,a=kp(n);(o=o.next)!==r;)(s=kp(o))<a&&(n=o,a=s);r=n.next}for(n=[r._],o=r;(o=o.next)!==r;)n.push(o._);for(o=_p(n,t),u=0;u<i;++u)(n=e[u]).x-=o.x,n.y-=o.y;return o.r}function Np(e){return Pp(e,mp()),e}function Ip(e){return Math.sqrt(e.value)}function Lp(){var e=null,t=1,n=1,r=hp;function o(o){const i=mp();return o.x=t/2,o.y=n/2,e?o.eachBefore(Dp(e)).eachAfter(Fp(r,.5,i)).eachBefore(jp(1)):o.eachBefore(Dp(Ip)).eachAfter(Fp(hp,1,i)).eachAfter(Fp(r,o.r/Math.min(t,n),i)).eachBefore(jp(Math.min(t,n)/(2*o.r))),o}return o.radius=function(t){return arguments.length?(e=fp(t),o):e},o.size=function(e){return arguments.length?(t=+e[0],n=+e[1],o):[t,n]},o.padding=function(e){return arguments.length?(r="function"===typeof e?e:pp(+e),o):r},o}function Dp(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function Fp(e,t,n){return function(r){if(o=r.children){var o,i,a,s=o.length,u=e(r)*t||0;if(u)for(i=0;i<s;++i)o[i].r+=u;if(a=Pp(o,n),u)for(i=0;i<s;++i)o[i].r-=u;r.r=a+u}}}function jp(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function Up(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function zp(e,t,n,r,o){for(var i,a=e.children,s=-1,u=a.length,l=e.value&&(r-t)/e.value;++s<u;)(i=a[s]).y0=n,i.y1=o,i.x0=t,i.x1=t+=i.value*l}function Bp(){var e=1,t=1,n=0,r=!1;function o(o){var i=o.height+1;return o.x0=o.y0=n,o.x1=e,o.y1=t/i,o.eachBefore(function(e,t){return function(r){r.children&&zp(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var o=r.x0,i=r.y0,a=r.x1-n,s=r.y1-n;a<o&&(o=a=(o+a)/2),s<i&&(i=s=(i+s)/2),r.x0=o,r.y0=i,r.x1=a,r.y1=s}}(t,i)),r&&o.eachBefore(Up),o}return o.round=function(e){return arguments.length?(r=!!e,o):r},o.size=function(n){return arguments.length?(e=+n[0],t=+n[1],o):[e,t]},o.padding=function(e){return arguments.length?(n=+e,o):n},o}var Vp={depth:-1},Hp={},$p={};function Wp(e){return e.id}function Gp(e){return e.parentId}function qp(){var e,t=Wp,n=Gp;function r(r){var o,i,a,s,u,l,c,f,d=Array.from(r),h=t,p=n,g=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){e=`${e}`;let t=e.length;Xp(e,t-1)&&!Xp(e,t-2)&&(e=e.slice(0,-1));return"/"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(Yp),o=new Set(t).add("");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(Yp(e)),d.push($p));h=(e,n)=>t[n],p=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],l=d[a]=new cp(i),null!=(c=h(i,a,r))&&(c+="")&&(f=l.id=c,g.set(f,g.has(f)?Hp:l)),null!=(c=p(i,a,r))&&(c+="")&&(l.parent=c);for(a=0;a<o;++a)if(c=(l=d[a]).parent){if(!(u=g.get(c)))throw new Error("missing: "+c);if(u===Hp)throw new Error("ambiguous: "+c);u.children?u.children.push(l):u.children=[l],l.parent=u}else{if(s)throw new Error("multiple roots");s=l}if(!s)throw new Error("no root");if(null!=e){for(;s.data===$p&&1===s.children.length;)s=s.children[0],--o;for(let e=d.length-1;e>=0&&(l=d[e]).data===$p;--e)l.data=null}if(s.parent=Vp,s.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(lp),s.parent=null,o>0)throw new Error("cycle");return s}return r.id=function(e){return arguments.length?(t=fp(e),r):t},r.parentId=function(e){return arguments.length?(n=fp(e),r):n},r.path=function(t){return arguments.length?(e=fp(t),r):e},r}function Yp(e){let t=e.length;if(t<2)return"";for(;--t>1&&!Xp(e,t););return e.slice(0,t)}function Xp(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(0===(1&n))return!0}return!1}function Zp(e,t){return e.parent===t.parent?1:2}function Kp(e){var t=e.children;return t?t[0]:e.t}function Qp(e){var t=e.children;return t?t[t.length-1]:e.t}function Jp(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function eg(e,t,n){return e.a.parent===t.parent?e.a:n}function tg(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function ng(){var e=Zp,t=1,n=1,r=null;function o(o){var u=function(e){for(var t,n,r,o,i,a=new tg(e,0),s=[a];t=s.pop();)if(r=t._.children)for(t.children=new Array(i=r.length),o=i-1;o>=0;--o)s.push(n=t.children[o]=new tg(r[o],o)),n.parent=t;return(a.parent=new tg(null,0)).children=[a],a}(o);if(u.eachAfter(i),u.parent.m=-u.z,u.eachBefore(a),r)o.eachBefore(s);else{var l=o,c=o,f=o;o.eachBefore((function(e){e.x<l.x&&(l=e),e.x>c.x&&(c=e),e.depth>f.depth&&(f=e)}));var d=l===c?1:e(l,c)/2,h=d-l.x,p=t/(c.x+d+h),g=n/(f.depth||1);o.eachBefore((function(e){e.x=(e.x+h)*p,e.y=e.depth*g}))}return o}function i(t){var n=t.children,r=t.parent.children,o=t.i?r[t.i-1]:null;if(n){!function(e){for(var t,n=0,r=0,o=e.children,i=o.length;--i>=0;)(t=o[i]).z+=n,t.m+=n,n+=t.s+(r+=t.c)}(t);var i=(n[0].z+n[n.length-1].z)/2;o?(t.z=o.z+e(t._,o._),t.m=t.z-i):t.z=i}else o&&(t.z=o.z+e(t._,o._));t.parent.A=function(t,n,r){if(n){for(var o,i=t,a=t,s=n,u=i.parent.children[0],l=i.m,c=a.m,f=s.m,d=u.m;s=Qp(s),i=Kp(i),s&&i;)u=Kp(u),(a=Qp(a)).a=t,(o=s.z+f-i.z-l+e(s._,i._))>0&&(Jp(eg(s,t,r),t,o),l+=o,c+=o),f+=s.m,l+=i.m,d+=u.m,c+=a.m;s&&!Qp(a)&&(a.t=s,a.m+=f-c),i&&!Kp(u)&&(u.t=i,u.m+=l-d,r=t)}return r}(t,o,t.parent.A||r[0])}function a(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return o.separation=function(t){return arguments.length?(e=t,o):e},o.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],o):r?null:[t,n]},o.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],o):r?[t,n]:null},o}function rg(e,t,n,r,o){for(var i,a=e.children,s=-1,u=a.length,l=e.value&&(o-n)/e.value;++s<u;)(i=a[s]).x0=t,i.x1=r,i.y0=n,i.y1=n+=i.value*l}tg.prototype=Object.create(cp.prototype);var og=(1+Math.sqrt(5))/2;function ig(e,t,n,r,o,i){for(var a,s,u,l,c,f,d,h,p,g,v,y=[],m=t.children,b=0,_=0,w=m.length,x=t.value;b<w;){u=o-n,l=i-r;do{c=m[_++].value}while(!c&&_<w);for(f=d=c,v=c*c*(g=Math.max(l/u,u/l)/(x*e)),p=Math.max(d/v,v/f);_<w;++_){if(c+=s=m[_].value,s<f&&(f=s),s>d&&(d=s),v=c*c*g,(h=Math.max(d/v,v/f))>p){c-=s;break}p=h}y.push(a={value:c,dice:u<l,children:m.slice(b,_)}),a.dice?zp(a,n,r,o,x?r+=l*c/x:i):rg(a,n,r,x?n+=u*c/x:o,i),x-=c,b=_}return y}const ag=function e(t){function n(e,n,r,o,i){ig(t,e,n,r,o,i)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(og);function sg(){var e=ag,t=!1,n=1,r=1,o=[0],i=hp,a=hp,s=hp,u=hp,l=hp;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(f),o=[0],t&&e.eachBefore(Up),e}function f(t){var n=o[t.depth],r=t.x0+n,c=t.y0+n,f=t.x1-n,d=t.y1-n;f<r&&(r=f=(r+f)/2),d<c&&(c=d=(c+d)/2),t.x0=r,t.y0=c,t.x1=f,t.y1=d,t.children&&(n=o[t.depth+1]=i(t)/2,r+=l(t)-n,c+=a(t)-n,(f-=s(t)-n)<r&&(r=f=(r+f)/2),(d-=u(t)-n)<c&&(c=d=(c+d)/2),e(t,r,c,f,d))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(n=+e[0],r=+e[1],c):[n,r]},c.tile=function(t){return arguments.length?(e=dp(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(i="function"===typeof e?e:pp(+e),c):i},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(a="function"===typeof e?e:pp(+e),c):a},c.paddingRight=function(e){return arguments.length?(s="function"===typeof e?e:pp(+e),c):s},c.paddingBottom=function(e){return arguments.length?(u="function"===typeof e?e:pp(+e),c):u},c.paddingLeft=function(e){return arguments.length?(l="function"===typeof e?e:pp(+e),c):l},c}function ug(e,t,n,r,o){var i,a,s=e.children,u=s.length,l=new Array(u+1);for(l[0]=a=i=0;i<u;++i)l[i+1]=a+=s[i].value;!function e(t,n,r,o,i,a,u){if(t>=n-1){var c=s[t];return c.x0=o,c.y0=i,c.x1=a,void(c.y1=u)}var f=l[t],d=r/2+f,h=t+1,p=n-1;for(;h<p;){var g=h+p>>>1;l[g]<d?h=g+1:p=g}d-l[h-1]<l[h]-d&&t+1<h&&--h;var v=l[h]-f,y=r-v;if(a-o>u-i){var m=r?(o*y+a*v)/r:a;e(t,h,v,o,i,m,u),e(h,n,y,m,i,a,u)}else{var b=r?(i*y+u*v)/r:u;e(t,h,v,o,i,a,b),e(h,n,y,o,b,a,u)}}(0,u,e.value,t,n,r,o)}function lg(e,t,n,r,o){(1&e.depth?rg:zp)(e,t,n,r,o)}const cg=function e(t){function n(e,n,r,o,i){if((a=e._squarify)&&a.ratio===t)for(var a,s,u,l,c,f=-1,d=a.length,h=e.value;++f<d;){for(u=(s=a[f]).children,l=s.value=0,c=u.length;l<c;++l)s.value+=u[l].value;s.dice?zp(s,n,r,o,h?r+=(i-r)*s.value/h:i):rg(s,n,r,h?n+=(o-n)*s.value/h:o,i),h-=s.value}else e._squarify=a=ig(t,e,n,r,o,i),a.ratio=t}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(og);var fg=n(68079),dg=n(86160),hg=n(19804),pg=n(58172);function gg(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}var vg=n(84709);function yg(e,t){var n=(0,vg.lG)(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}}var mg=n(10128),bg=n(34287),_g=n(49770);function wg(e){return((e=Math.exp(e))+1/e)/2}const xg=function e(t,n,r){function o(e,o){var i,a,s=e[0],u=e[1],l=e[2],c=o[0],f=o[1],d=o[2],h=c-s,p=f-u,g=h*h+p*p;if(g<1e-12)a=Math.log(d/l)/t,i=function(e){return[s+e*h,u+e*p,l*Math.exp(t*e*a)]};else{var v=Math.sqrt(g),y=(d*d-l*l+r*g)/(2*l*n*v),m=(d*d-l*l-r*g)/(2*d*n*v),b=Math.log(Math.sqrt(y*y+1)-y),_=Math.log(Math.sqrt(m*m+1)-m);a=(_-b)/t,i=function(e){var r=e*a,o=wg(b),i=l/(n*v)*(o*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(t*r+b)-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+i*h,u+i*p,l*o/wg(t*r+b)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return o.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},o}(Math.SQRT2,2,4);function Sg(e){return function(t,n){var r=e((t=(0,_r.KI)(t)).h,(n=(0,_r.KI)(n)).h),o=(0,vg.Ay)(t.s,n.s),i=(0,vg.Ay)(t.l,n.l),a=(0,vg.Ay)(t.opacity,n.opacity);return function(e){return t.h=r(e),t.s=o(e),t.l=i(e),t.opacity=a(e),t+""}}}const Ag=Sg(vg.lG);var Eg=Sg(vg.Ay);function Cg(e,t){var n=(0,vg.Ay)((e=mi(e)).l,(t=mi(t)).l),r=(0,vg.Ay)(e.a,t.a),o=(0,vg.Ay)(e.b,t.b),i=(0,vg.Ay)(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=r(t),e.b=o(t),e.opacity=i(t),e+""}}function Rg(e){return function(t,n){var r=e((t=Ci(t)).h,(n=Ci(n)).h),o=(0,vg.Ay)(t.c,n.c),i=(0,vg.Ay)(t.l,n.l),a=(0,vg.Ay)(t.opacity,n.opacity);return function(e){return t.h=r(e),t.c=o(e),t.l=i(e),t.opacity=a(e),t+""}}}const Og=Rg(vg.lG);var Tg=Rg(vg.Ay);function kg(e){return function t(n){function r(t,r){var o=e((t=Fi(t)).h,(r=Fi(r)).h),i=(0,vg.Ay)(t.s,r.s),a=(0,vg.Ay)(t.l,r.l),s=(0,vg.Ay)(t.opacity,r.opacity);return function(e){return t.h=o(e),t.s=i(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,r.gamma=t,r}(1)}const Mg=kg(vg.lG);var Pg=kg(vg.Ay),Ng=n(23104);function Ig(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function Lg(e){for(var t,n=-1,r=e.length,o=e[r-1],i=0;++n<r;)t=o,o=e[n],i+=t[1]*o[0]-t[0]*o[1];return i/2}function Dg(e){for(var t,n,r=-1,o=e.length,i=0,a=0,s=e[o-1],u=0;++r<o;)t=s,s=e[r],u+=n=t[0]*s[1]-s[0]*t[1],i+=(t[0]+s[0])*n,a+=(t[1]+s[1])*n;return[i/(u*=3),a/u]}function Fg(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}function jg(e,t){return e[0]-t[0]||e[1]-t[1]}function Ug(e){const t=e.length,n=[0,1];let r,o=2;for(r=2;r<t;++r){for(;o>1&&Fg(e[n[o-2]],e[n[o-1]],e[r])<=0;)--o;n[o++]=r}return n.slice(0,o)}function zg(e){if((n=e.length)<3)return null;var t,n,r=new Array(n),o=new Array(n);for(t=0;t<n;++t)r[t]=[+e[t][0],+e[t][1],t];for(r.sort(jg),t=0;t<n;++t)o[t]=[r[t][0],-r[t][1]];var i=Ug(r),a=Ug(o),s=a[0]===i[0],u=a[a.length-1]===i[i.length-1],l=[];for(t=i.length-1;t>=0;--t)l.push(e[r[i[t]][2]]);for(t=+s;t<a.length-u;++t)l.push(e[r[a[t]][2]]);return l}function Bg(e,t){for(var n,r,o=e.length,i=e[o-1],a=t[0],s=t[1],u=i[0],l=i[1],c=!1,f=0;f<o;++f)n=(i=e[f])[0],(r=i[1])>s!==l>s&&a<(u-n)*(s-r)/(l-r)+n&&(c=!c),u=n,l=r;return c}function Vg(e){for(var t,n,r=-1,o=e.length,i=e[o-1],a=i[0],s=i[1],u=0;++r<o;)t=a,n=s,t-=a=(i=e[r])[0],n-=s=i[1],u+=Math.hypot(t,n);return u}const Hg=Math.random,$g=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,1===arguments.length?(n=e,e=0):n-=e,function(){return t()*n+e}}return n.source=e,n}(Hg),Wg=function e(t){function n(e,n){return arguments.length<2&&(n=e,e=0),e=Math.floor(e),n=Math.floor(n)-e,function(){return Math.floor(t()*n+e)}}return n.source=e,n}(Hg),Gg=function e(t){function n(e,n){var r,o;return e=null==e?0:+e,n=null==n?1:+n,function(){var i;if(null!=r)i=r,r=null;else do{r=2*t()-1,i=2*t()-1,o=r*r+i*i}while(!o||o>1);return e+n*i*Math.sqrt(-2*Math.log(o)/o)}}return n.source=e,n}(Hg),qg=function e(t){var n=Gg.source(t);function r(){var e=n.apply(this,arguments);return function(){return Math.exp(e())}}return r.source=e,r}(Hg),Yg=function e(t){function n(e){return(e=+e)<=0?()=>0:function(){for(var n=0,r=e;r>1;--r)n+=t();return n+r*t()}}return n.source=e,n}(Hg),Xg=function e(t){var n=Yg.source(t);function r(e){if(0===(e=+e))return t;var r=n(e);return function(){return r()/e}}return r.source=e,r}(Hg),Zg=function e(t){function n(e){return function(){return-Math.log1p(-t())/e}}return n.source=e,n}(Hg),Kg=function e(t){function n(e){if((e=+e)<0)throw new RangeError("invalid alpha");return e=1/-e,function(){return Math.pow(1-t(),e)}}return n.source=e,n}(Hg),Qg=function e(t){function n(e){if((e=+e)<0||e>1)throw new RangeError("invalid p");return function(){return Math.floor(t()+e)}}return n.source=e,n}(Hg),Jg=function e(t){function n(e){if((e=+e)<0||e>1)throw new RangeError("invalid p");return 0===e?()=>1/0:1===e?()=>1:(e=Math.log1p(-e),function(){return 1+Math.floor(Math.log1p(-t())/e)})}return n.source=e,n}(Hg),ev=function e(t){var n=Gg.source(t)();function r(e,r){if((e=+e)<0)throw new RangeError("invalid k");if(0===e)return()=>0;if(r=null==r?1:+r,1===e)return()=>-Math.log1p(-t())*r;var o=(e<1?e+1:e)-1/3,i=1/(3*Math.sqrt(o)),a=e<1?()=>Math.pow(t(),1/e):()=>1;return function(){do{do{var e=n(),s=1+i*e}while(s<=0);s*=s*s;var u=1-t()}while(u>=1-.0331*e*e*e*e&&Math.log(u)>=.5*e*e+o*(1-s+Math.log(s)));return o*s*a()*r}}return r.source=e,r}(Hg),tv=function e(t){var n=ev.source(t);function r(e,t){var r=n(e),o=n(t);return function(){var e=r();return 0===e?0:e/(e+o())}}return r.source=e,r}(Hg),nv=function e(t){var n=Jg.source(t),r=tv.source(t);function o(e,t){return e=+e,(t=+t)>=1?()=>e:t<=0?()=>0:function(){for(var o=0,i=e,a=t;i*a>16&&i*(1-a)>16;){var s=Math.floor((i+1)*a),u=r(s,i-s+1)();u<=a?(o+=s,i-=s,a=(a-u)/(1-u)):(i=s-1,a/=u)}for(var l=a<.5,c=n(l?a:1-a),f=c(),d=0;f<=i;++d)f+=c();return o+(l?d:i-d)}}return o.source=e,o}(Hg),rv=function e(t){function n(e,n,r){var o;return 0===(e=+e)?o=e=>-Math.log(e):(e=1/e,o=t=>Math.pow(t,e)),n=null==n?0:+n,r=null==r?1:+r,function(){return n+r*o(-Math.log1p(-t()))}}return n.source=e,n}(Hg),ov=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,function(){return e+n*Math.tan(Math.PI*t())}}return n.source=e,n}(Hg),iv=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,function(){var r=t();return e+n*Math.log(r/(1-r))}}return n.source=e,n}(Hg),av=function e(t){var n=ev.source(t),r=nv.source(t);function o(e){return function(){for(var o=0,i=e;i>16;){var a=Math.floor(.875*i),s=n(a)();if(s>i)return o+r(a-1,i/s)();o+=a,i-=s}for(var u=-Math.log1p(-t()),l=0;u<=i;++l)u-=Math.log1p(-t());return o+l}}return o.source=e,o}(Hg),sv=1664525,uv=1013904223,lv=1/4294967296;function cv(e=Math.random()){let t=0|(0<=e&&e<1?e/lv:Math.abs(e));return()=>(t=sv*t+uv|0,lv*(t>>>0))}var fv=n(16199);function dv(e){for(var t=e.length/6|0,n=new Array(t),r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}const hv=dv("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),pv=dv("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),gv=dv("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),vv=dv("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),yv=dv("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),mv=dv("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),bv=dv("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),_v=dv("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),wv=dv("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),xv=dv("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),Sv=e=>(0,wr.Ik)(e[e.length-1]);var Av=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(dv);const Ev=Sv(Av);var Cv=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(dv);const Rv=Sv(Cv);var Ov=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(dv);const Tv=Sv(Ov);var kv=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(dv);const Mv=Sv(kv);var Pv=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(dv);const Nv=Sv(Pv);var Iv=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(dv);const Lv=Sv(Iv);var Dv=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(dv);const Fv=Sv(Dv);var jv=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(dv);const Uv=Sv(jv);var zv=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(dv);const Bv=Sv(zv);var Vv=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(dv);const Hv=Sv(Vv);var $v=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(dv);const Wv=Sv($v);var Gv=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(dv);const qv=Sv(Gv);var Yv=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(dv);const Xv=Sv(Yv);var Zv=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(dv);const Kv=Sv(Zv);var Qv=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(dv);const Jv=Sv(Qv);var ey=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(dv);const ty=Sv(ey);var ny=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(dv);const ry=Sv(ny);var oy=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(dv);const iy=Sv(oy);var ay=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(dv);const sy=Sv(ay);var uy=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(dv);const ly=Sv(uy);var cy=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(dv);const fy=Sv(cy);var dy=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(dv);const hy=Sv(dy);var py=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(dv);const gy=Sv(py);var vy=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(dv);const yy=Sv(vy);var my=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(dv);const by=Sv(my);var _y=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(dv);const wy=Sv(_y);var xy=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(dv);const Sy=Sv(xy);function Ay(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-2710.57*e)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-67.37*e)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-2475.67*e)))))))+")"}const Ey=Pg(Fi(300,.5,0),Fi(-240,.5,1));var Cy=Pg(Fi(-100,.75,.35),Fi(80,1.5,.8)),Ry=Pg(Fi(260,.75,.35),Fi(80,1.5,.8)),Oy=Fi();function Ty(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return Oy.h=360*e-100,Oy.s=1.5-1.5*t,Oy.l=.8-.9*t,Oy+""}var ky=(0,_r.Qh)(),My=Math.PI/3,Py=2*Math.PI/3;function Ny(e){var t;return e=(.5-e)*Math.PI,ky.r=255*(t=Math.sin(e))*t,ky.g=255*(t=Math.sin(e+My))*t,ky.b=255*(t=Math.sin(e+Py))*t,ky+""}function Iy(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-14825.05*e)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+707.56*e)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-6838.66*e)))))))+")"}function Ly(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const Dy=Ly(dv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var Fy=Ly(dv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),jy=Ly(dv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Uy=Ly(dv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function zy(e){return bn(on(e).call(document.documentElement))}var By=0;function Vy(){return new Hy}function Hy(){this._="@"+(++By).toString(36)}function $y(e,t){return e.target&&(e=Rn(e),void 0===t&&(t=e.currentTarget),e=e.touches||[e]),Array.from(e,(e=>On(e,t)))}function Wy(e){return"string"===typeof e?new vn([document.querySelectorAll(e)],[document.documentElement]):new vn([st(e)],gn)}function Gy(e){return function(){return e}}Hy.prototype=Vy.prototype={constructor:Hy,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};const qy=Math.abs,Yy=Math.atan2,Xy=Math.cos,Zy=Math.max,Ky=Math.min,Qy=Math.sin,Jy=Math.sqrt,em=1e-12,tm=Math.PI,nm=tm/2,rm=2*tm;function om(e){return e>=1?nm:e<=-1?-nm:Math.asin(e)}function im(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new Wo(t)}function am(e){return e.innerRadius}function sm(e){return e.outerRadius}function um(e){return e.startAngle}function lm(e){return e.endAngle}function cm(e){return e&&e.padAngle}function fm(e,t,n,r,o,i,a){var s=e-n,u=t-r,l=(a?i:-i)/Jy(s*s+u*u),c=l*u,f=-l*s,d=e+c,h=t+f,p=n+c,g=r+f,v=(d+p)/2,y=(h+g)/2,m=p-d,b=g-h,_=m*m+b*b,w=o-i,x=d*g-p*h,S=(b<0?-1:1)*Jy(Zy(0,w*w*_-x*x)),A=(x*b-m*S)/_,E=(-x*m-b*S)/_,C=(x*b+m*S)/_,R=(-x*m+b*S)/_,O=A-v,T=E-y,k=C-v,M=R-y;return O*O+T*T>k*k+M*M&&(A=C,E=R),{cx:A,cy:E,x01:-c,y01:-f,x11:A*(o/w-1),y11:E*(o/w-1)}}function dm(){var e=am,t=sm,n=Gy(0),r=null,o=um,i=lm,a=cm,s=null,u=im(l);function l(){var l,c,f=+e.apply(this,arguments),d=+t.apply(this,arguments),h=o.apply(this,arguments)-nm,p=i.apply(this,arguments)-nm,g=qy(p-h),v=p>h;if(s||(s=l=u()),d<f&&(c=d,d=f,f=c),d>em)if(g>rm-em)s.moveTo(d*Xy(h),d*Qy(h)),s.arc(0,0,d,h,p,!v),f>em&&(s.moveTo(f*Xy(p),f*Qy(p)),s.arc(0,0,f,p,h,v));else{var y,m,b=h,_=p,w=h,x=p,S=g,A=g,E=a.apply(this,arguments)/2,C=E>em&&(r?+r.apply(this,arguments):Jy(f*f+d*d)),R=Ky(qy(d-f)/2,+n.apply(this,arguments)),O=R,T=R;if(C>em){var k=om(C/f*Qy(E)),M=om(C/d*Qy(E));(S-=2*k)>em?(w+=k*=v?1:-1,x-=k):(S=0,w=x=(h+p)/2),(A-=2*M)>em?(b+=M*=v?1:-1,_-=M):(A=0,b=_=(h+p)/2)}var P=d*Xy(b),N=d*Qy(b),I=f*Xy(x),L=f*Qy(x);if(R>em){var D,F=d*Xy(_),j=d*Qy(_),U=f*Xy(w),z=f*Qy(w);if(g<tm)if(D=function(e,t,n,r,o,i,a,s){var u=n-e,l=r-t,c=a-o,f=s-i,d=f*u-c*l;if(!(d*d<em))return[e+(d=(c*(t-i)-f*(e-o))/d)*u,t+d*l]}(P,N,U,z,F,j,I,L)){var B=P-D[0],V=N-D[1],H=F-D[0],$=j-D[1],W=1/Qy(function(e){return e>1?0:e<-1?tm:Math.acos(e)}((B*H+V*$)/(Jy(B*B+V*V)*Jy(H*H+$*$)))/2),G=Jy(D[0]*D[0]+D[1]*D[1]);O=Ky(R,(f-G)/(W-1)),T=Ky(R,(d-G)/(W+1))}else O=T=0}A>em?T>em?(y=fm(U,z,P,N,d,T,v),m=fm(F,j,I,L,d,T,v),s.moveTo(y.cx+y.x01,y.cy+y.y01),T<R?s.arc(y.cx,y.cy,T,Yy(y.y01,y.x01),Yy(m.y01,m.x01),!v):(s.arc(y.cx,y.cy,T,Yy(y.y01,y.x01),Yy(y.y11,y.x11),!v),s.arc(0,0,d,Yy(y.cy+y.y11,y.cx+y.x11),Yy(m.cy+m.y11,m.cx+m.x11),!v),s.arc(m.cx,m.cy,T,Yy(m.y11,m.x11),Yy(m.y01,m.x01),!v))):(s.moveTo(P,N),s.arc(0,0,d,b,_,!v)):s.moveTo(P,N),f>em&&S>em?O>em?(y=fm(I,L,F,j,f,-O,v),m=fm(P,N,U,z,f,-O,v),s.lineTo(y.cx+y.x01,y.cy+y.y01),O<R?s.arc(y.cx,y.cy,O,Yy(y.y01,y.x01),Yy(m.y01,m.x01),!v):(s.arc(y.cx,y.cy,O,Yy(y.y01,y.x01),Yy(y.y11,y.x11),!v),s.arc(0,0,f,Yy(y.cy+y.y11,y.cx+y.x11),Yy(m.cy+m.y11,m.cx+m.x11),v),s.arc(m.cx,m.cy,O,Yy(m.y11,m.x11),Yy(m.y01,m.x01),!v))):s.arc(0,0,f,x,w,v):s.lineTo(I,L)}else s.moveTo(0,0);if(s.closePath(),l)return s=null,l+""||null}return l.centroid=function(){var n=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +i.apply(this,arguments))/2-tm/2;return[Xy(r)*n,Qy(r)*n]},l.innerRadius=function(t){return arguments.length?(e="function"===typeof t?t:Gy(+t),l):e},l.outerRadius=function(e){return arguments.length?(t="function"===typeof e?e:Gy(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n="function"===typeof e?e:Gy(+e),l):n},l.padRadius=function(e){return arguments.length?(r=null==e?null:"function"===typeof e?e:Gy(+e),l):r},l.startAngle=function(e){return arguments.length?(o="function"===typeof e?e:Gy(+e),l):o},l.endAngle=function(e){return arguments.length?(i="function"===typeof e?e:Gy(+e),l):i},l.padAngle=function(e){return arguments.length?(a="function"===typeof e?e:Gy(+e),l):a},l.context=function(e){return arguments.length?(s=null==e?null:e,l):s},l}var hm=Array.prototype.slice;function pm(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function gm(e){this._context=e}function vm(e){return new gm(e)}function ym(e){return e[0]}function mm(e){return e[1]}function bm(e,t){var n=Gy(!0),r=null,o=vm,i=null,a=im(s);function s(s){var u,l,c,f=(s=pm(s)).length,d=!1;for(null==r&&(i=o(c=a())),u=0;u<=f;++u)!(u<f&&n(l=s[u],u,s))===d&&((d=!d)?i.lineStart():i.lineEnd()),d&&i.point(+e(l,u,s),+t(l,u,s));if(c)return i=null,c+""||null}return e="function"===typeof e?e:void 0===e?ym:Gy(e),t="function"===typeof t?t:void 0===t?mm:Gy(t),s.x=function(t){return arguments.length?(e="function"===typeof t?t:Gy(+t),s):e},s.y=function(e){return arguments.length?(t="function"===typeof e?e:Gy(+e),s):t},s.defined=function(e){return arguments.length?(n="function"===typeof e?e:Gy(!!e),s):n},s.curve=function(e){return arguments.length?(o=e,null!=r&&(i=o(r)),s):o},s.context=function(e){return arguments.length?(null==e?r=i=null:i=o(r=e),s):r},s}function _m(e,t,n){var r=null,o=Gy(!0),i=null,a=vm,s=null,u=im(l);function l(l){var c,f,d,h,p,g=(l=pm(l)).length,v=!1,y=new Array(g),m=new Array(g);for(null==i&&(s=a(p=u())),c=0;c<=g;++c){if(!(c<g&&o(h=l[c],c,l))===v)if(v=!v)f=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),d=c-1;d>=f;--d)s.point(y[d],m[d]);s.lineEnd(),s.areaEnd()}v&&(y[c]=+e(h,c,l),m[c]=+t(h,c,l),s.point(r?+r(h,c,l):y[c],n?+n(h,c,l):m[c]))}if(p)return s=null,p+""||null}function c(){return bm().defined(o).curve(a).context(i)}return e="function"===typeof e?e:void 0===e?ym:Gy(+e),t="function"===typeof t?t:Gy(void 0===t?0:+t),n="function"===typeof n?n:void 0===n?mm:Gy(+n),l.x=function(t){return arguments.length?(e="function"===typeof t?t:Gy(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e="function"===typeof t?t:Gy(+t),l):e},l.x1=function(e){return arguments.length?(r=null==e?null:"function"===typeof e?e:Gy(+e),l):r},l.y=function(e){return arguments.length?(t="function"===typeof e?e:Gy(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t="function"===typeof e?e:Gy(+e),l):t},l.y1=function(e){return arguments.length?(n=null==e?null:"function"===typeof e?e:Gy(+e),l):n},l.lineX0=l.lineY0=function(){return c().x(e).y(t)},l.lineY1=function(){return c().x(e).y(n)},l.lineX1=function(){return c().x(r).y(t)},l.defined=function(e){return arguments.length?(o="function"===typeof e?e:Gy(!!e),l):o},l.curve=function(e){return arguments.length?(a=e,null!=i&&(s=a(i)),l):a},l.context=function(e){return arguments.length?(null==e?i=s=null:s=a(i=e),l):i},l}function wm(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}function xm(e){return e}function Sm(){var e=xm,t=wm,n=null,r=Gy(0),o=Gy(rm),i=Gy(0);function a(a){var s,u,l,c,f,d=(a=pm(a)).length,h=0,p=new Array(d),g=new Array(d),v=+r.apply(this,arguments),y=Math.min(rm,Math.max(-rm,o.apply(this,arguments)-v)),m=Math.min(Math.abs(y)/d,i.apply(this,arguments)),b=m*(y<0?-1:1);for(s=0;s<d;++s)(f=g[p[s]=s]=+e(a[s],s,a))>0&&(h+=f);for(null!=t?p.sort((function(e,n){return t(g[e],g[n])})):null!=n&&p.sort((function(e,t){return n(a[e],a[t])})),s=0,l=h?(y-d*b)/h:0;s<d;++s,v=c)u=p[s],c=v+((f=g[u])>0?f*l:0)+b,g[u]={data:a[u],index:s,value:f,startAngle:v,endAngle:c,padAngle:m};return g}return a.value=function(t){return arguments.length?(e="function"===typeof t?t:Gy(+t),a):e},a.sortValues=function(e){return arguments.length?(t=e,n=null,a):t},a.sort=function(e){return arguments.length?(n=e,t=null,a):n},a.startAngle=function(e){return arguments.length?(r="function"===typeof e?e:Gy(+e),a):r},a.endAngle=function(e){return arguments.length?(o="function"===typeof e?e:Gy(+e),a):o},a.padAngle=function(e){return arguments.length?(i="function"===typeof e?e:Gy(+e),a):i},a}gm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};var Am=Cm(vm);function Em(e){this._curve=e}function Cm(e){function t(t){return new Em(e(t))}return t._curve=e,t}function Rm(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(e){return arguments.length?t(Cm(e)):t()._curve},e}function Om(){return Rm(bm().curve(Am))}function Tm(){var e=_m().curve(Am),t=e.curve,n=e.lineX0,r=e.lineX1,o=e.lineY0,i=e.lineY1;return e.angle=e.x,delete e.x,e.startAngle=e.x0,delete e.x0,e.endAngle=e.x1,delete e.x1,e.radius=e.y,delete e.y,e.innerRadius=e.y0,delete e.y0,e.outerRadius=e.y1,delete e.y1,e.lineStartAngle=function(){return Rm(n())},delete e.lineX0,e.lineEndAngle=function(){return Rm(r())},delete e.lineX1,e.lineInnerRadius=function(){return Rm(o())},delete e.lineY0,e.lineOuterRadius=function(){return Rm(i())},delete e.lineY1,e.curve=function(e){return arguments.length?t(Cm(e)):t()._curve},e}function km(e,t){return[(t=+t)*Math.cos(e-=Math.PI/2),t*Math.sin(e)]}Em.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),t*-Math.cos(e))}};class Mm{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}}class Pm{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,t){if(e=+e,t=+t,0===this._point)this._point=1;else{const n=km(this._x0,this._y0),r=km(this._x0,this._y0=(this._y0+t)/2),o=km(e,this._y0),i=km(e,t);this._context.moveTo(...n),this._context.bezierCurveTo(...r,...o,...i)}this._x0=e,this._y0=t}}function Nm(e){return new Mm(e,!0)}function Im(e){return new Mm(e,!1)}function Lm(e){return new Pm(e)}function Dm(e){return e.source}function Fm(e){return e.target}function jm(e){let t=Dm,n=Fm,r=ym,o=mm,i=null,a=null,s=im(u);function u(){let u;const l=hm.call(arguments),c=t.apply(this,l),f=n.apply(this,l);if(null==i&&(a=e(u=s())),a.lineStart(),l[0]=c,a.point(+r.apply(this,l),+o.apply(this,l)),l[0]=f,a.point(+r.apply(this,l),+o.apply(this,l)),a.lineEnd(),u)return a=null,u+""||null}return u.source=function(e){return arguments.length?(t=e,u):t},u.target=function(e){return arguments.length?(n=e,u):n},u.x=function(e){return arguments.length?(r="function"===typeof e?e:Gy(+e),u):r},u.y=function(e){return arguments.length?(o="function"===typeof e?e:Gy(+e),u):o},u.context=function(t){return arguments.length?(null==t?i=a=null:a=e(i=t),u):i},u}function Um(){return jm(Nm)}function zm(){return jm(Im)}function Bm(){const e=jm(Lm);return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e}const Vm=Jy(3),Hm={draw(e,t){const n=.59436*Jy(t+Ky(t/28,.75)),r=n/2,o=r*Vm;e.moveTo(0,n),e.lineTo(0,-n),e.moveTo(-o,-r),e.lineTo(o,r),e.moveTo(-o,r),e.lineTo(o,-r)}},$m={draw(e,t){const n=Jy(t/tm);e.moveTo(n,0),e.arc(0,0,n,0,rm)}},Wm={draw(e,t){const n=Jy(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},Gm=Jy(1/3),qm=2*Gm,Ym={draw(e,t){const n=Jy(t/qm),r=n*Gm;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},Xm={draw(e,t){const n=.62625*Jy(t);e.moveTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.lineTo(-n,0),e.closePath()}},Zm={draw(e,t){const n=.87559*Jy(t-Ky(t/7,2));e.moveTo(-n,0),e.lineTo(n,0),e.moveTo(0,n),e.lineTo(0,-n)}},Km={draw(e,t){const n=Jy(t),r=-n/2;e.rect(r,r,n,n)}},Qm={draw(e,t){const n=.4431*Jy(t);e.moveTo(n,n),e.lineTo(n,-n),e.lineTo(-n,-n),e.lineTo(-n,n),e.closePath()}},Jm=Qy(tm/10)/Qy(7*tm/10),eb=Qy(rm/10)*Jm,tb=-Xy(rm/10)*Jm,nb={draw(e,t){const n=Jy(.8908130915292852*t),r=eb*n,o=tb*n;e.moveTo(0,-n),e.lineTo(r,o);for(let i=1;i<5;++i){const t=rm*i/5,a=Xy(t),s=Qy(t);e.lineTo(s*n,-a*n),e.lineTo(a*r-s*o,s*r+a*o)}e.closePath()}},rb=Jy(3),ob={draw(e,t){const n=-Jy(t/(3*rb));e.moveTo(0,2*n),e.lineTo(-rb*n,-n),e.lineTo(rb*n,-n),e.closePath()}},ib=Jy(3),ab={draw(e,t){const n=.6824*Jy(t),r=n/2,o=n*ib/2;e.moveTo(0,-n),e.lineTo(o,r),e.lineTo(-o,r),e.closePath()}},sb=-.5,ub=Jy(3)/2,lb=1/Jy(12),cb=3*(lb/2+1),fb={draw(e,t){const n=Jy(t/cb),r=n/2,o=n*lb,i=r,a=n*lb+n,s=-i,u=a;e.moveTo(r,o),e.lineTo(i,a),e.lineTo(s,u),e.lineTo(sb*r-ub*o,ub*r+sb*o),e.lineTo(sb*i-ub*a,ub*i+sb*a),e.lineTo(sb*s-ub*u,ub*s+sb*u),e.lineTo(sb*r+ub*o,sb*o-ub*r),e.lineTo(sb*i+ub*a,sb*a-ub*i),e.lineTo(sb*s+ub*u,sb*u-ub*s),e.closePath()}},db={draw(e,t){const n=.6189*Jy(t-Ky(t/6,1.7));e.moveTo(-n,-n),e.lineTo(n,n),e.moveTo(-n,n),e.lineTo(n,-n)}},hb=[$m,Wm,Ym,Km,nb,ob,fb],pb=[$m,Zm,db,ab,Hm,Qm,Xm];function gb(e,t){let n=null,r=im(o);function o(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return e="function"===typeof e?e:Gy(e||$m),t="function"===typeof t?t:Gy(void 0===t?64:+t),o.type=function(t){return arguments.length?(e="function"===typeof t?t:Gy(t),o):e},o.size=function(e){return arguments.length?(t="function"===typeof e?e:Gy(+e),o):t},o.context=function(e){return arguments.length?(n=null==e?null:e,o):n},o}function vb(){}function yb(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function mb(e){this._context=e}function bb(e){return new mb(e)}function _b(e){this._context=e}function wb(e){return new _b(e)}function xb(e){this._context=e}function Sb(e){return new xb(e)}function Ab(e,t){this._basis=new mb(e),this._beta=t}mb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:yb(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:yb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},_b.prototype={areaStart:vb,areaEnd:vb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:yb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},xb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:yb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},Ab.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,o=e[0],i=t[0],a=e[n]-o,s=t[n]-i,u=-1;++u<=n;)r=u/n,this._basis.point(this._beta*e[u]+(1-this._beta)*(o+r*a),this._beta*t[u]+(1-this._beta)*(i+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const Eb=function e(t){function n(e){return 1===t?new mb(e):new Ab(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function Cb(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function Rb(e,t){this._context=e,this._k=(1-t)/6}Rb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Cb(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:Cb(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Ob=function e(t){function n(e){return new Rb(e,t)}return n.tension=function(t){return e(+t)},n}(0);function Tb(e,t){this._context=e,this._k=(1-t)/6}Tb.prototype={areaStart:vb,areaEnd:vb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Cb(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const kb=function e(t){function n(e){return new Tb(e,t)}return n.tension=function(t){return e(+t)},n}(0);function Mb(e,t){this._context=e,this._k=(1-t)/6}Mb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Cb(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Pb=function e(t){function n(e){return new Mb(e,t)}return n.tension=function(t){return e(+t)},n}(0);function Nb(e,t,n){var r=e._x1,o=e._y1,i=e._x2,a=e._y2;if(e._l01_a>em){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,o=(o*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>em){var l=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);i=(i*l+e._x1*e._l23_2a-t*e._l12_2a)/c,a=(a*l+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(r,o,i,a,e._x2,e._y2)}function Ib(e,t){this._context=e,this._alpha=t}Ib.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:Nb(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Lb=function e(t){function n(e){return t?new Ib(e,t):new Rb(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Db(e,t){this._context=e,this._alpha=t}Db.prototype={areaStart:vb,areaEnd:vb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Nb(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Fb=function e(t){function n(e){return t?new Db(e,t):new Tb(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function jb(e,t){this._context=e,this._alpha=t}jb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Nb(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Ub=function e(t){function n(e){return t?new jb(e,t):new Mb(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function zb(e){this._context=e}function Bb(e){return new zb(e)}function Vb(e){return e<0?-1:1}function Hb(e,t,n){var r=e._x1-e._x0,o=t-e._x1,i=(e._y1-e._y0)/(r||o<0&&-0),a=(n-e._y1)/(o||r<0&&-0),s=(i*o+a*r)/(r+o);return(Vb(i)+Vb(a))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs(s))||0}function $b(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Wb(e,t,n){var r=e._x0,o=e._y0,i=e._x1,a=e._y1,s=(i-r)/3;e._context.bezierCurveTo(r+s,o+s*t,i-s,a-s*n,i,a)}function Gb(e){this._context=e}function qb(e){this._context=new Yb(e)}function Yb(e){this._context=e}function Xb(e){return new Gb(e)}function Zb(e){return new qb(e)}function Kb(e){this._context=e}function Qb(e){var t,n,r=e.length-1,o=new Array(r),i=new Array(r),a=new Array(r);for(o[0]=0,i[0]=2,a[0]=e[0]+2*e[1],t=1;t<r-1;++t)o[t]=1,i[t]=4,a[t]=4*e[t]+2*e[t+1];for(o[r-1]=2,i[r-1]=7,a[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=o[t]/i[t-1],i[t]-=n,a[t]-=n*a[t-1];for(o[r-1]=a[r-1]/i[r-1],t=r-2;t>=0;--t)o[t]=(a[t]-o[t+1])/i[t];for(i[r-1]=(e[r]+o[r-1])/2,t=0;t<r-1;++t)i[t]=2*e[t+1]-o[t+1];return[o,i]}function Jb(e){return new Kb(e)}function e_(e,t){this._context=e,this._t=t}function t_(e){return new e_(e,.5)}function n_(e){return new e_(e,0)}function r_(e){return new e_(e,1)}function o_(e,t){if((o=e.length)>1)for(var n,r,o,i=1,a=e[t[0]],s=a.length;i<o;++i)for(r=a,a=e[t[i]],n=0;n<s;++n)a[n][1]+=a[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]}function i_(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function a_(e,t){return e[t]}function s_(e){const t=[];return t.key=e,t}function u_(){var e=Gy([]),t=i_,n=o_,r=a_;function o(o){var i,a,s=Array.from(e.apply(this,arguments),s_),u=s.length,l=-1;for(const e of o)for(i=0,++l;i<u;++i)(s[i][l]=[0,+r(e,s[i].key,l,o)]).data=e;for(i=0,a=pm(t(s));i<u;++i)s[a[i]].index=i;return n(s,a),s}return o.keys=function(t){return arguments.length?(e="function"===typeof t?t:Gy(Array.from(t)),o):e},o.value=function(e){return arguments.length?(r="function"===typeof e?e:Gy(+e),o):r},o.order=function(e){return arguments.length?(t=null==e?i_:"function"===typeof e?e:Gy(Array.from(e)),o):t},o.offset=function(e){return arguments.length?(n=null==e?o_:e,o):n},o}function l_(e,t){if((r=e.length)>0){for(var n,r,o,i=0,a=e[0].length;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}o_(e,t)}}function c_(e,t){if((s=e.length)>0)for(var n,r,o,i,a,s,u=0,l=e[t[0]].length;u<l;++u)for(i=a=0,n=0;n<s;++n)(o=(r=e[t[n]][u])[1]-r[0])>0?(r[0]=i,r[1]=i+=o):o<0?(r[1]=a,r[0]=a+=o):(r[0]=0,r[1]=o)}function f_(e,t){if((n=e.length)>0){for(var n,r=0,o=e[t[0]],i=o.length;r<i;++r){for(var a=0,s=0;a<n;++a)s+=e[a][r][1]||0;o[r][1]+=o[r][0]=-s/2}o_(e,t)}}function d_(e,t){if((o=e.length)>0&&(r=(n=e[t[0]]).length)>0){for(var n,r,o,i=0,a=1;a<r;++a){for(var s=0,u=0,l=0;s<o;++s){for(var c=e[t[s]],f=c[a][1]||0,d=(f-(c[a-1][1]||0))/2,h=0;h<s;++h){var p=e[t[h]];d+=(p[a][1]||0)-(p[a-1][1]||0)}u+=f,l+=d*f}n[a-1][1]+=n[a-1][0]=i,u&&(i-=l/u)}n[a-1][1]+=n[a-1][0]=i,o_(e,t)}}function h_(e){var t=e.map(p_);return i_(e).sort((function(e,n){return t[e]-t[n]}))}function p_(e){for(var t,n=-1,r=0,o=e.length,i=-1/0;++n<o;)(t=+e[n][1])>i&&(i=t,r=n);return r}function g_(e){var t=e.map(v_);return i_(e).sort((function(e,n){return t[e]-t[n]}))}function v_(e){for(var t,n=0,r=-1,o=e.length;++r<o;)(t=+e[r][1])&&(n+=t);return n}function y_(e){return g_(e).reverse()}function m_(e){var t,n,r=e.length,o=e.map(v_),i=h_(e),a=0,s=0,u=[],l=[];for(t=0;t<r;++t)n=i[t],a<s?(a+=o[n],u.push(n)):(s+=o[n],l.push(n));return l.reverse().concat(u)}function b_(e){return i_(e).reverse()}zb.prototype={areaStart:vb,areaEnd:vb,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}},Gb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Wb(this,this._t0,$b(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Wb(this,$b(this,n=Hb(this,e,t)),n);break;default:Wb(this,this._t0,n=Hb(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},(qb.prototype=Object.create(Gb.prototype)).point=function(e,t){Gb.prototype.point.call(this,t,e)},Yb.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,o,i){this._context.bezierCurveTo(t,e,r,n,i,o)}},Kb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===n)this._context.lineTo(e[1],t[1]);else for(var r=Qb(e),o=Qb(t),i=0,a=1;a<n;++i,++a)this._context.bezierCurveTo(r[0][i],o[0][i],r[1][i],o[1][i],e[a],t[a]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}},e_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};var __=n(37591),w_=n(32613),x_=n(55030),S_=n(13298),A_=n(54612),E_=n(55334),C_=n(78926),R_=n(75878),O_=n(24355),T_=n(526),k_=n(53705),M_=n(64398),P_="%Y-%m-%dT%H:%M:%S.%LZ";var N_=Date.prototype.toISOString?function(e){return e.toISOString()}:(0,k_.aL)(P_);const I_=N_;var L_=+new Date("2000-01-01T00:00:00.000Z")?function(e){var t=new Date(e);return isNaN(t)?null:t}:(0,k_.GY)(P_);const D_=L_;function F_(e,t,n){var r=new Vn,o=t;return null==t?(r.restart(e,t,n),r):(r._restart=r.restart,r.restart=function(e,t,n){t=+t,n=null==n?zn():+n,r._restart((function i(a){a+=o,r._restart(i,o+=t,n),e(a)}),t,n)},r.restart(e,t,n),r)}const j_=e=>()=>e;function U_(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function z_(e,t,n){this.k=e,this.x=t,this.y=n}z_.prototype={constructor:z_,scale:function(e){return 1===e?this:new z_(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new z_(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var B_=new z_(1,0,0);function V_(e){for(;!e.__zoom;)if(!(e=e.parentNode))return B_;return e.__zoom}function H_(e){e.stopImmediatePropagation()}function $_(e){e.preventDefault(),e.stopImmediatePropagation()}function W_(e){return(!e.ctrlKey||"wheel"===e.type)&&!e.button}function G_(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function q_(){return this.__zoom||B_}function Y_(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function X_(){return navigator.maxTouchPoints||"ontouchstart"in this}function Z_(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function K_(){var e,t,n,r=W_,o=G_,i=Z_,a=Y_,s=X_,u=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,f=xg,d=ot("start","zoom","end"),h=500,p=150,g=0,v=10;function y(e){e.property("__zoom",q_).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",C).filter(s).on("touchstart.zoom",R).on("touchmove.zoom",O).on("touchend.zoom touchcancel.zoom",T).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(e,t){return(t=Math.max(u[0],Math.min(u[1],t)))===e.k?e:new z_(t,e.x,e.y)}function b(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new z_(e.k,r,o)}function _(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function w(e,t,n,r){e.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,i=arguments,a=x(e,i).event(r),s=o.apply(e,i),u=null==n?_(s):"function"===typeof n?n.apply(e,i):n,l=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),c=e.__zoom,d="function"===typeof t?t.apply(e,i):t,h=f(c.invert(u).concat(l/c.k),d.invert(u).concat(l/d.k));return function(e){if(1===e)e=d;else{var t=h(e),n=l/t[2];e=new z_(n,u[0]-t[0]*n,u[1]-t[1]*n)}a.zoom(null,e)}}))}function x(e,t,n){return!n&&e.__zooming||new S(e,t)}function S(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=o.apply(e,t),this.taps=0}function A(e,...t){if(r.apply(this,arguments)){var n=x(this,t).event(e),o=this.__zoom,s=Math.max(u[0],Math.min(u[1],o.k*Math.pow(2,a.apply(this,arguments)))),c=On(e);if(n.wheel)n.mouse[0][0]===c[0]&&n.mouse[0][1]===c[1]||(n.mouse[1]=o.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(o.k===s)return;n.mouse=[c,o.invert(c)],ur(this),n.start()}$_(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),p),n.zoom("mouse",i(b(m(o,s),n.mouse[0],n.mouse[1]),n.extent,l))}}function E(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=x(this,t,!0).event(e),s=bn(e.view).on("mousemove.zoom",(function(e){if($_(e),!a.moved){var t=e.clientX-c,n=e.clientY-f;a.moved=t*t+n*n>g}a.event(e).zoom("mouse",i(b(a.that.__zoom,a.mouse[0]=On(e,o),a.mouse[1]),a.extent,l))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),En(e.view,a.moved),$_(e),a.event(e).end()}),!0),u=On(e,o),c=e.clientX,f=e.clientY;An(e.view),H_(e),a.mouse=[u,this.__zoom.invert(u)],ur(this),a.start()}}function C(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=On(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),u=n.k*(e.shiftKey?.5:2),f=i(b(m(n,u),a,s),o.apply(this,t),l);$_(e),c>0?bn(this).transition().duration(c).call(w,f,a,e):bn(this).call(y.transform,f,a,e)}}function R(n,...o){if(r.apply(this,arguments)){var i,a,s,u,l=n.touches,c=l.length,f=x(this,o,n.changedTouches.length===c).event(n);for(H_(n),a=0;a<c;++a)u=[u=On(s=l[a],this),this.__zoom.invert(u),s.identifier],f.touch0?f.touch1||f.touch0[2]===u[2]||(f.touch1=u,f.taps=0):(f.touch0=u,i=!0,f.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(f.taps<2&&(t=u[0],e=setTimeout((function(){e=null}),h)),ur(this),f.start())}}function O(e,...t){if(this.__zooming){var n,r,o,a,s=x(this,t).event(e),u=e.changedTouches,c=u.length;for($_(e),n=0;n<c;++n)o=On(r=u[n],this),s.touch0&&s.touch0[2]===r.identifier?s.touch0[0]=o:s.touch1&&s.touch1[2]===r.identifier&&(s.touch1[0]=o);if(r=s.that.__zoom,s.touch1){var f=s.touch0[0],d=s.touch0[1],h=s.touch1[0],p=s.touch1[1],g=(g=h[0]-f[0])*g+(g=h[1]-f[1])*g,v=(v=p[0]-d[0])*v+(v=p[1]-d[1])*v;r=m(r,Math.sqrt(g/v)),o=[(f[0]+h[0])/2,(f[1]+h[1])/2],a=[(d[0]+p[0])/2,(d[1]+p[1])/2]}else{if(!s.touch0)return;o=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(b(r,o,a),s.extent,l))}}function T(e,...r){if(this.__zooming){var o,i,a=x(this,r).event(e),s=e.changedTouches,u=s.length;for(H_(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),h),o=0;o<u;++o)i=s[o],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=On(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<v)){var l=bn(this).on("dblclick.zoom");l&&l.apply(this,arguments)}}}return y.transform=function(e,t,n,r){var o=e.selection?e.selection():e;o.property("__zoom",q_),e!==o?w(e,t,n,r):o.interrupt().each((function(){x(this,arguments).event(r).start().zoom(null,"function"===typeof t?t.apply(this,arguments):t).end()}))},y.scaleBy=function(e,t,n,r){y.scaleTo(e,(function(){return this.__zoom.k*("function"===typeof t?t.apply(this,arguments):t)}),n,r)},y.scaleTo=function(e,t,n,r){y.transform(e,(function(){var e=o.apply(this,arguments),r=this.__zoom,a=null==n?_(e):"function"===typeof n?n.apply(this,arguments):n,s=r.invert(a),u="function"===typeof t?t.apply(this,arguments):t;return i(b(m(r,u),a,s),e,l)}),n,r)},y.translateBy=function(e,t,n,r){y.transform(e,(function(){return i(this.__zoom.translate("function"===typeof t?t.apply(this,arguments):t,"function"===typeof n?n.apply(this,arguments):n),o.apply(this,arguments),l)}),null,r)},y.translateTo=function(e,t,n,r,a){y.transform(e,(function(){var e=o.apply(this,arguments),a=this.__zoom,s=null==r?_(e):"function"===typeof r?r.apply(this,arguments):r;return i(B_.translate(s[0],s[1]).scale(a.k).translate("function"===typeof t?-t.apply(this,arguments):-t,"function"===typeof n?-n.apply(this,arguments):-n),e,l)}),r,a)},S.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1===++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0===--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=bn(this.that).datum();d.call(e,this.that,new U_(e,{sourceEvent:this.sourceEvent,target:y,type:e,transform:this.that.__zoom,dispatch:d}),t)}},y.wheelDelta=function(e){return arguments.length?(a="function"===typeof e?e:j_(+e),y):a},y.filter=function(e){return arguments.length?(r="function"===typeof e?e:j_(!!e),y):r},y.touchable=function(e){return arguments.length?(s="function"===typeof e?e:j_(!!e),y):s},y.extent=function(e){return arguments.length?(o="function"===typeof e?e:j_([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),y):o},y.scaleExtent=function(e){return arguments.length?(u[0]=+e[0],u[1]=+e[1],y):[u[0],u[1]]},y.translateExtent=function(e){return arguments.length?(l[0][0]=+e[0][0],l[1][0]=+e[1][0],l[0][1]=+e[0][1],l[1][1]=+e[1][1],y):[[l[0][0],l[0][1]],[l[1][0],l[1][1]]]},y.constrain=function(e){return arguments.length?(i=e,y):i},y.duration=function(e){return arguments.length?(c=+e,y):c},y.interpolate=function(e){return arguments.length?(f=e,y):f},y.on=function(){var e=d.on.apply(d,arguments);return e===d?y:e},y.clickDistance=function(e){return arguments.length?(g=(e=+e)*e,y):Math.sqrt(g)},y.tapDistance=function(e){return arguments.length?(v=+e,y):v},y}V_.prototype=z_.prototype},82695:(e,t,n)=>{"use strict";n.d(t,{q:()=>o});let r={};function o(){return r}},36847:(e,t,n)=>{"use strict";n.d(t,{m:()=>i});const r=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},o=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},i={p:o,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],i=n[1],a=n[2];if(!a)return r(e,t);let s;switch(i){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;default:s=t.dateTime({width:"full"})}return s.replace("{{date}}",r(i,t)).replace("{{time}}",o(a,t))}}},40215:(e,t,n)=>{"use strict";n.d(t,{G:()=>o});var r=n(2642);function o(e){const t=(0,r.a)(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}},76992:(e,t,n)=>{"use strict";n.d(t,{Ss:()=>u,ef:()=>a,xM:()=>s});const r=/^D+$/,o=/^Y+$/,i=["D","DD","YY","YYYY"];function a(e){return r.test(e)}function s(e){return o.test(e)}function u(e,t,n){const r=function(e,t,n){const r="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(r),i.includes(e))throw new RangeError(r)}},2940:(e,t,n)=>{"use strict";n.d(t,{Cg:()=>i,F6:()=>c,Ks:()=>u,Nw:()=>l,_m:()=>s,my:()=>r,s0:()=>a,w4:()=>o});Math.pow(10,8);const r=6048e5,o=864e5,i=6e4,a=36e5,s=1e3,u=525600,l=43200,c=1440},35840:(e,t,n)=>{"use strict";function r(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}n.d(t,{w:()=>r})},20514:(e,t,n)=>{"use strict";n.d(t,{m:()=>a});var r=n(2940),o=n(51730),i=n(40215);function a(e,t){const n=(0,o.o)(e),a=(0,o.o)(t),s=+n-(0,i.G)(n),u=+a-(0,i.G)(a);return Math.round((s-u)/r.w4)}},87991:(e,t,n)=>{"use strict";n.d(t,{GP:()=>N});var r=n(96519),o=n(82695),i=n(20514),a=n(39204),s=n(2642);function u(e){const t=(0,s.a)(e);return(0,i.m)(t,(0,a.D)(t))+1}var l=n(76974),c=n(65961),f=n(50016),d=n(29220);function h(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const p={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return h("yy"===t?r%100:r,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):h(n+1,2)},d:(e,t)=>h(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>h(e.getHours()%12||12,t.length),H:(e,t)=>h(e.getHours(),t.length),m:(e,t)=>h(e.getMinutes(),t.length),s:(e,t)=>h(e.getSeconds(),t.length),S(e,t){const n=t.length,r=e.getMilliseconds();return h(Math.trunc(r*Math.pow(10,n-3)),t.length)}},g="midnight",v="noon",y="morning",m="afternoon",b="evening",_="night",w={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:"year"})}return p.y(e,t)},Y:function(e,t,n,r){const o=(0,d.h)(e,r),i=o>0?o:1-o;if("YY"===t){return h(i%100,2)}return"Yo"===t?n.ordinalNumber(i,{unit:"year"}):h(i,t.length)},R:function(e,t){return h((0,c.p)(e),t.length)},u:function(e,t){return h(e.getFullYear(),t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return h(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return h(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return p.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return h(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const o=(0,f.N)(e,r);return"wo"===t?n.ordinalNumber(o,{unit:"week"}):h(o,t.length)},I:function(e,t,n){const r=(0,l.s)(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):h(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):p.d(e,t)},D:function(e,t,n){const r=u(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):h(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return h(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return h(i,t.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),o=0===r?7:r;switch(t){case"i":return String(o);case"ii":return h(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let o;switch(o=12===r?v:0===r?g:r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let o;switch(o=r>=17?b:r>=12?m:r>=4?y:_,t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return p.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):p.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):h(r,t.length)},k:function(e,t,n){let r=e.getHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):h(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):p.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):p.s(e,t)},S:function(e,t){return p.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(0===r)return"Z";switch(t){case"X":return S(r);case"XXXX":case"XX":return A(r);default:return A(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return S(r);case"xxxx":case"xx":return A(r);default:return A(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+x(r,":");default:return"GMT"+A(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+x(r,":");default:return"GMT"+A(r,":")}},t:function(e,t,n){return h(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return h(e.getTime(),t.length)}};function x(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=Math.trunc(r/60),i=r%60;return 0===i?n+String(o):n+String(o)+t+h(i,2)}function S(e,t){if(e%60===0){return(e>0?"-":"+")+h(Math.abs(e)/60,2)}return A(e,t)}function A(e,t=""){const n=e>0?"-":"+",r=Math.abs(e);return n+h(Math.trunc(r/60),2)+t+h(r%60,2)}var E=n(36847),C=n(76992),R=n(16074);const O=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,T=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,k=/^'([^]*?)'?$/,M=/''/g,P=/[a-zA-Z]/;function N(e,t,n){const i=(0,o.q)(),a=n?.locale??i.locale??r.c,u=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??i.weekStartsOn??i.locale?.options?.weekStartsOn??0,c=(0,s.a)(e);if(!(0,R.f)(c))throw new RangeError("Invalid time value");let f=t.match(T).map((e=>{const t=e[0];if("p"===t||"P"===t){return(0,E.m[t])(e,a.formatLong)}return e})).join("").match(O).map((e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:I(e)};if(w[t])return{isToken:!0,value:e};if(t.match(P))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}}));a.localize.preprocessor&&(f=a.localize.preprocessor(c,f));const d={firstWeekContainsDate:u,weekStartsOn:l,locale:a};return f.map((r=>{if(!r.isToken)return r.value;const o=r.value;(!n?.useAdditionalWeekYearTokens&&(0,C.xM)(o)||!n?.useAdditionalDayOfYearTokens&&(0,C.ef)(o))&&(0,C.Ss)(o,t,String(e));return(0,w[o[0]])(c,o,a.localize,d)})).join("")}function I(e){const t=e.match(k);return t?t[1].replace(M,"'"):e}},76974:(e,t,n)=>{"use strict";n.d(t,{s:()=>l});var r=n(2940),o=n(83787),i=n(65961),a=n(35840);function s(e){const t=(0,i.p)(e),n=(0,a.w)(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),(0,o.b)(n)}var u=n(2642);function l(e){const t=(0,u.a)(e),n=+(0,o.b)(t)-+s(t);return Math.round(n/r.my)+1}},65961:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(35840),o=n(83787),i=n(2642);function a(e){const t=(0,i.a)(e),n=t.getFullYear(),a=(0,r.w)(e,0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);const s=(0,o.b)(a),u=(0,r.w)(e,0);u.setFullYear(n,0,4),u.setHours(0,0,0,0);const l=(0,o.b)(u);return t.getTime()>=s.getTime()?n+1:t.getTime()>=l.getTime()?n:n-1}},50016:(e,t,n)=>{"use strict";n.d(t,{N:()=>c});var r=n(2940),o=n(92528),i=n(35840),a=n(29220),s=n(82695);function u(e,t){const n=(0,s.q)(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,u=(0,a.h)(e,t),l=(0,i.w)(e,0);l.setFullYear(u,0,r),l.setHours(0,0,0,0);return(0,o.k)(l,t)}var l=n(2642);function c(e,t){const n=(0,l.a)(e),i=+(0,o.k)(n,t)-+u(n,t);return Math.round(i/r.my)+1}},29220:(e,t,n)=>{"use strict";n.d(t,{h:()=>s});var r=n(35840),o=n(92528),i=n(2642),a=n(82695);function s(e,t){const n=(0,i.a)(e),s=n.getFullYear(),u=(0,a.q)(),l=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??u.firstWeekContainsDate??u.locale?.options?.firstWeekContainsDate??1,c=(0,r.w)(e,0);c.setFullYear(s+1,0,l),c.setHours(0,0,0,0);const f=(0,o.k)(c,t),d=(0,r.w)(e,0);d.setFullYear(s,0,l),d.setHours(0,0,0,0);const h=(0,o.k)(d,t);return n.getTime()>=f.getTime()?s+1:n.getTime()>=h.getTime()?s:s-1}},16074:(e,t,n)=>{"use strict";function r(e){return e instanceof Date||"object"===typeof e&&"[object Date]"===Object.prototype.toString.call(e)}n.d(t,{f:()=>i});var o=n(2642);function i(e){if(!r(e)&&"number"!==typeof e)return!1;const t=(0,o.a)(e);return!isNaN(Number(t))}},96519:(e,t,n)=>{"use strict";n.d(t,{c:()=>c});const r={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function o(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const i={date:o({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:o({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:o({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},a={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function s(e){return(t,n)=>{let r;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,o=n?.width?String(n.width):t;r=e.formattingValues[o]||e.formattingValues[t]}else{const t=e.defaultWidth,o=n?.width?String(n.width):e.defaultWidth;r=e.values[o]||e.values[t]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function u(e){return(t,n={})=>{const r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],i=t.match(o);if(!i)return null;const a=i[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(s)?function(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n;return}(s,(e=>e.test(a))):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,(e=>e.test(a)));let l;l=e.valueCallback?e.valueCallback(u):u,l=n.valueCallback?n.valueCallback(l):l;return{value:l,rest:t.slice(a.length)}}}var l;const c={code:"en-US",formatDistance:(e,t,n)=>{let o;const i=r[e];return o="string"===typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+o:o+" ago":o},formatLong:i,formatRelative:(e,t,n,r)=>a[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:s({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:s({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:s({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:s({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:s({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(l={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(l.matchPattern);if(!n)return null;const r=n[0],o=e.match(l.parsePattern);if(!o)return null;let i=l.valueCallback?l.valueCallback(o[0]):o[0];return i=t.valueCallback?t.valueCallback(i):i,{value:i,rest:e.slice(r.length)}}),era:u({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:u({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:u({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:u({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:u({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}}},51730:(e,t,n)=>{"use strict";n.d(t,{o:()=>o});var r=n(2642);function o(e){const t=(0,r.a)(e);return t.setHours(0,0,0,0),t}},83787:(e,t,n)=>{"use strict";n.d(t,{b:()=>o});var r=n(92528);function o(e){return(0,r.k)(e,{weekStartsOn:1})}},92528:(e,t,n)=>{"use strict";n.d(t,{k:()=>i});var r=n(2642),o=n(82695);function i(e,t){const n=(0,o.q)(),i=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=(0,r.a)(e),s=a.getDay(),u=(s<i?7:0)+s-i;return a.setDate(a.getDate()-u),a.setHours(0,0,0,0),a}},39204:(e,t,n)=>{"use strict";n.d(t,{D:()=>i});var r=n(2642),o=n(35840);function i(e){const t=(0,r.a)(e),n=(0,o.w)(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}},2642:(e,t,n)=>{"use strict";function r(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"===typeof e&&"[object Date]"===t?new e.constructor(+e):"number"===typeof e||"[object Number]"===t||"string"===typeof e||"[object String]"===t?new Date(e):new Date(NaN)}n.d(t,{a:()=>r})},77783:(e,t,n)=>{"use strict";function r(e){return new Promise(((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}function o(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const o=r(n);return(e,n)=>o.then((r=>n(r.transaction(t,e).objectStore(t))))}let i;function a(){return i||(i=o("keyval-store","keyval")),i}function s(e,t=a()){return t("readonly",(t=>r(t.get(e))))}function u(e,t,n=a()){return n("readwrite",(n=>(n.put(t,e),r(n.transaction))))}function l(e,t=a()){return t("readwrite",(t=>(t.delete(e),r(t.transaction))))}function c(e=a()){return e("readwrite",(e=>(e.clear(),r(e.transaction))))}n.d(t,{IU:()=>c,Jt:()=>s,hZ:()=>u,y$:()=>o,yH:()=>l})},24119:(e,t,n)=>{"use strict";n.d(t,{B:()=>r,v:()=>o});class r extends Map{constructor(e,t=u){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[n,r]of e)this.set(n,r)}get(e){return super.get(i(this,e))}has(e){return super.has(i(this,e))}set(e,t){return super.set(a(this,e),t)}delete(e){return super.delete(s(this,e))}}class o extends Set{constructor(e,t=u){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const n of e)this.add(n)}has(e){return super.has(i(this,e))}add(e){return super.add(a(this,e))}delete(e){return super.delete(s(this,e))}}function i({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function a({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function s({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function u(e){return null!==e&&"object"===typeof e?e.valueOf():e}},99571:(e,t,n)=>{"use strict";n.d(t,{N9:()=>A,oR:()=>I});var r=n(96540),o=n(20053);const i=e=>"number"==typeof e&&!isNaN(e),a=e=>"string"==typeof e,s=e=>"function"==typeof e,u=e=>a(e)||s(e)?e:null,l=e=>(0,r.isValidElement)(e)||a(e)||s(e)||i(e);function c(e){let{enter:t,exit:n,appendPosition:o=!1,collapse:i=!0,collapseDuration:a=300}=e;return function(e){let{children:s,position:u,preventExitTransition:l,done:c,nodeRef:f,isIn:d}=e;const h=o?`${t}--${u}`:t,p=o?`${n}--${u}`:n,g=(0,r.useRef)(0);return(0,r.useLayoutEffect)((()=>{const e=f.current,t=h.split(" "),n=r=>{r.target===f.current&&(e.dispatchEvent(new Event("d")),e.removeEventListener("animationend",n),e.removeEventListener("animationcancel",n),0===g.current&&"animationcancel"!==r.type&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener("animationend",n),e.addEventListener("animationcancel",n)}),[]),(0,r.useEffect)((()=>{const e=f.current,t=()=>{e.removeEventListener("animationend",t),i?function(e,t,n){void 0===n&&(n=300);const{scrollHeight:r,style:o}=e;requestAnimationFrame((()=>{o.minHeight="initial",o.height=r+"px",o.transition=`all ${n}ms`,requestAnimationFrame((()=>{o.height="0",o.padding="0",o.margin="0",setTimeout(t,n)}))}))}(e,c,a):c()};d||(l?t():(g.current=1,e.className+=` ${p}`,e.addEventListener("animationend",t)))}),[d]),r.createElement(r.Fragment,null,s)}}function f(e,t){return null!=e?{content:e.content,containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,status:t}:{}}const d={list:new Map,emitQueue:new Map,on(e,t){return this.list.has(e)||this.list.set(e,[]),this.list.get(e).push(t),this},off(e,t){if(t){const n=this.list.get(e).filter((e=>e!==t));return this.list.set(e,n),this}return this.list.delete(e),this},cancelEmit(e){const t=this.emitQueue.get(e);return t&&(t.forEach(clearTimeout),this.emitQueue.delete(e)),this},emit(e){this.list.has(e)&&this.list.get(e).forEach((t=>{const n=setTimeout((()=>{t(...[].slice.call(arguments,1))}),0);this.emitQueue.has(e)||this.emitQueue.set(e,[]),this.emitQueue.get(e).push(n)}))}},h=e=>{let{theme:t,type:n,...o}=e;return r.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:"colored"===t?"currentColor":`var(--toastify-icon-color-${n})`,...o})},p={info:function(e){return r.createElement(h,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(e){return r.createElement(h,{...e},r.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(e){return r.createElement(h,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(e){return r.createElement(h,{...e},r.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return r.createElement("div",{className:"Toastify__spinner"})}};function g(e){const[,t]=(0,r.useReducer)((e=>e+1),0),[n,o]=(0,r.useState)([]),c=(0,r.useRef)(null),h=(0,r.useRef)(new Map).current,g=e=>-1!==n.indexOf(e),v=(0,r.useRef)({toastKey:1,displayedToast:0,count:0,queue:[],props:e,containerId:null,isToastActive:g,getToast:e=>h.get(e)}).current;function y(e){let{containerId:t}=e;const{limit:n}=v.props;!n||t&&v.containerId!==t||(v.count-=v.queue.length,v.queue=[])}function m(e){o((t=>null==e?[]:t.filter((t=>t!==e))))}function b(){const{toastContent:e,toastProps:t,staleId:n}=v.queue.shift();w(e,t,n)}function _(e,n){let{delay:o,staleId:g,...y}=n;if(!l(e)||function(e){return!c.current||v.props.enableMultiContainer&&e.containerId!==v.props.containerId||h.has(e.toastId)&&null==e.updateId}(y))return;const{toastId:_,updateId:x,data:S}=y,{props:A}=v,E=()=>m(_),C=null==x;C&&v.count++;const R={...A,style:A.toastStyle,key:v.toastKey++,...Object.fromEntries(Object.entries(y).filter((e=>{let[t,n]=e;return null!=n}))),toastId:_,updateId:x,data:S,closeToast:E,isIn:!1,className:u(y.className||A.toastClassName),bodyClassName:u(y.bodyClassName||A.bodyClassName),progressClassName:u(y.progressClassName||A.progressClassName),autoClose:!y.isLoading&&(O=y.autoClose,T=A.autoClose,!1===O||i(O)&&O>0?O:T),deleteToast(){const e=f(h.get(_),"removed");h.delete(_),d.emit(4,e);const n=v.queue.length;if(v.count=null==_?v.count-v.displayedToast:v.count-1,v.count<0&&(v.count=0),n>0){const e=null==_?v.props.limit:1;if(1===n||1===e)v.displayedToast++,b();else{const t=e>n?n:e;v.displayedToast=t;for(let e=0;e<t;e++)b()}}else t()}};var O,T;R.iconOut=function(e){let{theme:t,type:n,isLoading:o,icon:u}=e,l=null;const c={theme:t,type:n};return!1===u||(s(u)?l=u(c):(0,r.isValidElement)(u)?l=(0,r.cloneElement)(u,c):a(u)||i(u)?l=u:o?l=p.spinner():(e=>e in p)(n)&&(l=p[n](c))),l}(R),s(y.onOpen)&&(R.onOpen=y.onOpen),s(y.onClose)&&(R.onClose=y.onClose),R.closeButton=A.closeButton,!1===y.closeButton||l(y.closeButton)?R.closeButton=y.closeButton:!0===y.closeButton&&(R.closeButton=!l(A.closeButton)||A.closeButton);let k=e;(0,r.isValidElement)(e)&&!a(e.type)?k=(0,r.cloneElement)(e,{closeToast:E,toastProps:R,data:S}):s(e)&&(k=e({closeToast:E,toastProps:R,data:S})),A.limit&&A.limit>0&&v.count>A.limit&&C?v.queue.push({toastContent:k,toastProps:R,staleId:g}):i(o)?setTimeout((()=>{w(k,R,g)}),o):w(k,R,g)}function w(e,t,n){const{toastId:r}=t;n&&h.delete(n);const i={content:e,props:t};h.set(r,i),o((e=>[...e,r].filter((e=>e!==n)))),d.emit(4,f(i,null==i.props.updateId?"added":"updated"))}return(0,r.useEffect)((()=>(v.containerId=e.containerId,d.cancelEmit(3).on(0,_).on(1,(e=>c.current&&m(e))).on(5,y).emit(2,v),()=>{h.clear(),d.emit(3,v)})),[]),(0,r.useEffect)((()=>{v.props=e,v.isToastActive=g,v.displayedToast=n.length})),{getToastToRender:function(t){const n=new Map,r=Array.from(h.values());return e.newestOnTop&&r.reverse(),r.forEach((e=>{const{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)})),Array.from(n,(e=>t(e[0],e[1])))},containerRef:c,isToastActive:g}}function v(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientX:e.clientX}function y(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientY:e.clientY}function m(e){const[t,n]=(0,r.useState)(!1),[o,i]=(0,r.useState)(!1),a=(0,r.useRef)(null),u=(0,r.useRef)({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,l=(0,r.useRef)(e),{autoClose:c,pauseOnHover:f,closeToast:d,onClick:h,closeOnClick:p}=e;function g(t){if(e.draggable){"touchstart"===t.nativeEvent.type&&t.nativeEvent.preventDefault(),u.didMove=!1,document.addEventListener("mousemove",w),document.addEventListener("mouseup",x),document.addEventListener("touchmove",w),document.addEventListener("touchend",x);const n=a.current;u.canCloseOnClick=!0,u.canDrag=!0,u.boundingRect=n.getBoundingClientRect(),n.style.transition="",u.x=v(t.nativeEvent),u.y=y(t.nativeEvent),"x"===e.draggableDirection?(u.start=u.x,u.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(u.start=u.y,u.removalDistance=n.offsetHeight*(80===e.draggablePercent?1.5*e.draggablePercent:e.draggablePercent/100))}}function m(t){if(u.boundingRect){const{top:n,bottom:r,left:o,right:i}=u.boundingRect;"touchend"!==t.nativeEvent.type&&e.pauseOnHover&&u.x>=o&&u.x<=i&&u.y>=n&&u.y<=r?_():b()}}function b(){n(!0)}function _(){n(!1)}function w(n){const r=a.current;u.canDrag&&r&&(u.didMove=!0,t&&_(),u.x=v(n),u.y=y(n),u.delta="x"===e.draggableDirection?u.x-u.start:u.y-u.start,u.start!==u.x&&(u.canCloseOnClick=!1),r.style.transform=`translate${e.draggableDirection}(${u.delta}px)`,r.style.opacity=""+(1-Math.abs(u.delta/u.removalDistance)))}function x(){document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",x),document.removeEventListener("touchmove",w),document.removeEventListener("touchend",x);const t=a.current;if(u.canDrag&&u.didMove&&t){if(u.canDrag=!1,Math.abs(u.delta)>u.removalDistance)return i(!0),void e.closeToast();t.style.transition="transform 0.2s, opacity 0.2s",t.style.transform=`translate${e.draggableDirection}(0)`,t.style.opacity="1"}}(0,r.useEffect)((()=>{l.current=e})),(0,r.useEffect)((()=>(a.current&&a.current.addEventListener("d",b,{once:!0}),s(e.onOpen)&&e.onOpen((0,r.isValidElement)(e.children)&&e.children.props),()=>{const e=l.current;s(e.onClose)&&e.onClose((0,r.isValidElement)(e.children)&&e.children.props)})),[]),(0,r.useEffect)((()=>(e.pauseOnFocusLoss&&(document.hasFocus()||_(),window.addEventListener("focus",b),window.addEventListener("blur",_)),()=>{e.pauseOnFocusLoss&&(window.removeEventListener("focus",b),window.removeEventListener("blur",_))})),[e.pauseOnFocusLoss]);const S={onMouseDown:g,onTouchStart:g,onMouseUp:m,onTouchEnd:m};return c&&f&&(S.onMouseEnter=_,S.onMouseLeave=b),p&&(S.onClick=e=>{h&&h(e),u.canCloseOnClick&&d()}),{playToast:b,pauseToast:_,isRunning:t,preventExitTransition:o,toastRef:a,eventHandlers:S}}function b(e){let{closeToast:t,theme:n,ariaLabel:o="close"}=e;return r.createElement("button",{className:`Toastify__close-button Toastify__close-button--${n}`,type:"button",onClick:e=>{e.stopPropagation(),t(e)},"aria-label":o},r.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},r.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function _(e){let{delay:t,isRunning:n,closeToast:i,type:a="default",hide:u,className:l,style:c,controlledProgress:f,progress:d,rtl:h,isIn:p,theme:g}=e;const v=u||f&&0===d,y={...c,animationDuration:`${t}ms`,animationPlayState:n?"running":"paused",opacity:v?0:1};f&&(y.transform=`scaleX(${d})`);const m=(0,o.default)("Toastify__progress-bar",f?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${g}`,`Toastify__progress-bar--${a}`,{"Toastify__progress-bar--rtl":h}),b=s(l)?l({rtl:h,type:a,defaultClassName:m}):(0,o.default)(m,l);return r.createElement("div",{role:"progressbar","aria-hidden":v?"true":"false","aria-label":"notification timer",className:b,style:y,[f&&d>=1?"onTransitionEnd":"onAnimationEnd"]:f&&d<1?null:()=>{p&&i()}})}const w=e=>{const{isRunning:t,preventExitTransition:n,toastRef:i,eventHandlers:a}=m(e),{closeButton:u,children:l,autoClose:c,onClick:f,type:d,hideProgressBar:h,closeToast:p,transition:g,position:v,className:y,style:w,bodyClassName:x,bodyStyle:S,progressClassName:A,progressStyle:E,updateId:C,role:R,progress:O,rtl:T,toastId:k,deleteToast:M,isIn:P,isLoading:N,iconOut:I,closeOnClick:L,theme:D}=e,F=(0,o.default)("Toastify__toast",`Toastify__toast-theme--${D}`,`Toastify__toast--${d}`,{"Toastify__toast--rtl":T},{"Toastify__toast--close-on-click":L}),j=s(y)?y({rtl:T,position:v,type:d,defaultClassName:F}):(0,o.default)(F,y),U=!!O||!c,z={closeToast:p,type:d,theme:D};let B=null;return!1===u||(B=s(u)?u(z):(0,r.isValidElement)(u)?(0,r.cloneElement)(u,z):b(z)),r.createElement(g,{isIn:P,done:M,position:v,preventExitTransition:n,nodeRef:i},r.createElement("div",{id:k,onClick:f,className:j,...a,style:w,ref:i},r.createElement("div",{...P&&{role:R},className:s(x)?x({type:d}):(0,o.default)("Toastify__toast-body",x),style:S},null!=I&&r.createElement("div",{className:(0,o.default)("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!N})},I),r.createElement("div",null,l)),B,r.createElement(_,{...C&&!U?{key:`pb-${C}`}:{},rtl:T,theme:D,delay:c,isRunning:t,isIn:P,closeToast:p,hide:h,type:d,style:E,className:A,controlledProgress:U,progress:O||0})))},x=function(e,t){return void 0===t&&(t=!1),{enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}},S=c(x("bounce",!0)),A=(c(x("slide",!0)),c(x("zoom")),c(x("flip")),(0,r.forwardRef)(((e,t)=>{const{getToastToRender:n,containerRef:i,isToastActive:a}=g(e),{className:l,style:c,rtl:f,containerId:d}=e;function h(e){const t=(0,o.default)("Toastify__toast-container",`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":f});return s(l)?l({position:e,rtl:f,defaultClassName:t}):(0,o.default)(t,u(l))}return(0,r.useEffect)((()=>{t&&(t.current=i.current)}),[]),r.createElement("div",{ref:i,className:"Toastify",id:d},n(((e,t)=>{const n=t.length?{...c}:{...c,pointerEvents:"none"};return r.createElement("div",{className:h(e),style:n,key:`container-${e}`},t.map(((e,n)=>{let{content:o,props:i}=e;return r.createElement(w,{...i,isIn:a(i.toastId),style:{...i.style,"--nth":n+1,"--len":t.length},key:`toast-${i.key}`},o)})))})))})));A.displayName="ToastContainer",A.defaultProps={position:"top-right",transition:S,autoClose:5e3,closeButton:b,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};let E,C=new Map,R=[],O=1;function T(){return""+O++}function k(e){return e&&(a(e.toastId)||i(e.toastId))?e.toastId:T()}function M(e,t){return C.size>0?d.emit(0,e,t):R.push({content:e,options:t}),t.toastId}function P(e,t){return{...t,type:t&&t.type||e,toastId:k(t)}}function N(e){return(t,n)=>M(t,P(e,n))}function I(e,t){return M(e,P("default",t))}I.loading=(e,t)=>M(e,P("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),I.promise=function(e,t,n){let r,{pending:o,error:i,success:u}=t;o&&(r=a(o)?I.loading(o,n):I.loading(o.render,{...n,...o}));const l={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},c=(e,t,o)=>{if(null==t)return void I.dismiss(r);const i={type:e,...l,...n,data:o},s=a(t)?{render:t}:t;return r?I.update(r,{...i,...s}):I(s.render,{...i,...s}),o},f=s(e)?e():e;return f.then((e=>c("success",u,e))).catch((e=>c("error",i,e))),f},I.success=N("success"),I.info=N("info"),I.error=N("error"),I.warning=N("warning"),I.warn=I.warning,I.dark=(e,t)=>M(e,P("default",{theme:"dark",...t})),I.dismiss=e=>{C.size>0?d.emit(1,e):R=R.filter((t=>null!=e&&t.options.toastId!==e))},I.clearWaitingQueue=function(e){return void 0===e&&(e={}),d.emit(5,e)},I.isActive=e=>{let t=!1;return C.forEach((n=>{n.isToastActive&&n.isToastActive(e)&&(t=!0)})),t},I.update=function(e,t){void 0===t&&(t={}),setTimeout((()=>{const n=function(e,t){let{containerId:n}=t;const r=C.get(n||E);return r&&r.getToast(e)}(e,t);if(n){const{props:r,content:o}=n,i={delay:100,...r,...t,toastId:t.toastId||e,updateId:T()};i.toastId!==e&&(i.staleId=e);const a=i.render||o;delete i.render,M(a,i)}}),0)},I.done=e=>{I.update(e,{progress:1})},I.onChange=e=>(d.on(4,e),()=>{d.off(4,e)}),I.POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},I.TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"},d.on(2,(e=>{E=e.containerId||e,C.set(E,e),R.forEach((e=>{d.emit(0,e.content,e.options)})),R=[]})).on(3,(e=>{C.delete(e.containerId||e),0===C.size&&d.off(0).off(1).off(5)}))},73700:(e,t,n)=>{"use strict";function r(e,t,n){var r,o=n||{},i=o.noTrailing,a=void 0!==i&&i,s=o.noLeading,u=void 0!==s&&s,l=o.debounceMode,c=void 0===l?void 0:l,f=!1,d=0;function h(){r&&clearTimeout(r)}function p(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var s=this,l=Date.now()-d;function p(){d=Date.now(),t.apply(s,o)}function g(){r=void 0}f||(u||!c||r||p(),h(),void 0===c&&l>e?u?(d=Date.now(),a||(r=setTimeout(c?g:p,e))):p():!0!==a&&(r=setTimeout(c?g:p,void 0===c?e-l:e)))}return p.cancel=function(e){var t=(e||{}).upcomingOnly,n=void 0!==t&&t;h(),f=!n},p}function o(e,t,n){var o=(n||{}).atBegin;return r(e,t,{debounceMode:!1!==(void 0!==o&&o)})}n.d(t,{n:()=>r,s:()=>o})}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5171.2a848991a41e02f24c8d.js.LICENSE.txt b/src/web/gui/v2/5171.2a848991a41e02f24c8d.js.LICENSE.txt
new file mode 100644
index 000000000..a6a2f245b
--- /dev/null
+++ b/src/web/gui/v2/5171.2a848991a41e02f24c8d.js.LICENSE.txt
@@ -0,0 +1,151 @@
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh <https://feross.org>
+ * @license MIT
+ */
+
+/**
+ * @license
+ * Copyright 2006 Dan Vanderkam (danvdk@gmail.com)
+ * MIT-licenced: https://opensource.org/licenses/MIT
+ */
+
+/**
+ * @license
+ * Copyright 2011 Dan Vanderkam (danvdk@gmail.com)
+ * MIT-licenced: https://opensource.org/licenses/MIT
+ */
+
+/**
+ * @license
+ * Copyright 2011 Paul Felix (paul.eric.felix@gmail.com)
+ * MIT-licenced: https://opensource.org/licenses/MIT
+ */
+
+/**
+ * @license
+ * Copyright 2012 Dan Vanderkam (danvdk@gmail.com)
+ * MIT-licenced: https://opensource.org/licenses/MIT
+ */
+
+/**
+ * @license
+ * Copyright 2013 David Eberlein (david.eberlein@ch.sauter-bc.com)
+ * MIT-licenced: https://opensource.org/licenses/MIT
+ */
+
+/**
+ * @license
+ * Part of dygraphs, see top-level LICENSE.txt file
+ * MIT-licenced: https://opensource.org/licenses/MIT
+ */
+
+/**
+ * @license React
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @remix-run/router v1.15.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * React Router DOM v6.22.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * React Router v6.22.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * react-table
+ *
+ * Copyright (c) TanStack
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * table-core
+ *
+ * Copyright (c) TanStack
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**!
+ * easy-pie-chart
+ * Lightweight plugin to render simple, animated and retina optimized pie charts
+ *
+ * @license
+ * @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)
+ * @version 2.1.7
+ **/
diff --git a/src/web/gui/v2/5246.a7c78643acccf04d7268.chunk.js b/src/web/gui/v2/5246.a7c78643acccf04d7268.chunk.js
new file mode 100644
index 000000000..d38a9018e
--- /dev/null
+++ b/src/web/gui/v2/5246.a7c78643acccf04d7268.chunk.js
@@ -0,0 +1 @@
+!function(){try{var C="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(C._sentryDebugIds=C._sentryDebugIds||{},C._sentryDebugIds[t]="94b89d25-7164-459f-8a0e-809b54ea0e9c",C._sentryDebugIdIdentifier="sentry-dbid-94b89d25-7164-459f-8a0e-809b54ea0e9c")}catch(C){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5246],{75246:(C,t,e)=>{e.r(t),e.d(t,{default:()=>g});e(62953);var n=e(96540),l=e(10058),i=e(71847),a=e(12897),d=e.n(a),o=e(55042),r=e.n(o),c=new(d())({id:"terms.svg",use:"terms.svg-usage",viewBox:"0 0 240 240",content:'<symbol viewBox="0 0 240 240" fill="none" xmlns="http://www.w3.org/2000/svg" id="terms.svg">\n<path opacity="0.3" d="M120 240C186.274 240 240 186.274 240 120C240 53.7258 186.274 0 120 0C53.7258 0 0 53.7258 0 120C0 186.274 53.7258 240 120 240Z" fill="#CCDDE8" />\n<path opacity="0.3" d="M120.284 222.398C183.907 222.398 235.484 218.817 235.484 214.398C235.484 209.98 183.907 206.398 120.284 206.398C56.6608 206.398 5.08398 209.98 5.08398 214.398C5.08398 218.817 56.6608 222.398 120.284 222.398Z" fill="#89B0C9" />\n<path d="M187.823 33.6016H58.2234C54.247 33.6016 51.0234 36.8251 51.0234 40.8016V207.202C51.0234 211.178 54.247 214.402 58.2234 214.402H187.823C191.8 214.402 195.023 211.178 195.023 207.202V40.8016C195.023 36.8251 191.8 33.6016 187.823 33.6016Z" fill="#00AB44" />\n<path d="M188.624 41.6016H57.4238V208.002H188.624V41.6016Z" fill="#F3F7FA" />\n<g opacity="0.3">\n<path opacity="0.3" d="M188.623 41.6V208H57.4232V41.6H188.623ZM190.223 40H55.8232V209.6H190.223V40Z" fill="#435969" />\n</g>\n<path opacity="0.2" d="M164.623 33.6016H87.8232V46.4016C87.8232 48.0989 88.4975 49.7268 89.6978 50.927C90.898 52.1273 92.5259 52.8016 94.2232 52.8016H158.223C159.921 52.8016 161.548 52.1273 162.749 50.927C163.949 49.7268 164.623 48.0989 164.623 46.4016V33.6016Z" fill="#233646" />\n<path d="M155.024 27.1992H91.024C87.4894 27.1992 84.624 30.0646 84.624 33.5992V39.9992C84.624 43.5338 87.4894 46.3992 91.024 46.3992H155.024C158.559 46.3992 161.424 43.5338 161.424 39.9992V33.5992C161.424 30.0646 158.559 27.1992 155.024 27.1992Z" fill="#DBDBDB" />\n<path d="M155.024 27.6817H91.024C90.1912 27.6604 89.3626 27.806 88.5869 28.11C87.8113 28.414 87.1044 28.8703 86.5079 29.4518C85.9114 30.0334 85.4374 30.7286 85.1138 31.4963C84.7903 32.2639 84.6237 33.0887 84.624 33.9217V39.6817C84.6237 40.5148 84.7903 41.3395 85.1138 42.1072C85.4374 42.8749 85.9114 43.5701 86.5079 44.1516C87.1044 44.7332 87.8113 45.1895 88.5869 45.4935C89.3626 45.7975 90.1912 45.9431 91.024 45.9217H155.024C155.857 45.9431 156.686 45.7975 157.461 45.4935C158.237 45.1895 158.944 44.7332 159.54 44.1516C160.137 43.5701 160.611 42.8749 160.934 42.1072C161.258 41.3395 161.424 40.5148 161.424 39.6817V33.9217C161.424 33.0887 161.258 32.2639 160.934 31.4963C160.611 30.7286 160.137 30.0334 159.54 29.4518C158.944 28.8703 158.237 28.414 157.461 28.11C156.686 27.806 155.857 27.6604 155.024 27.6817Z" fill="#DCDCDC" />\n<path d="M155.024 28.1609H91.024C90.2124 28.1178 89.4003 28.238 88.6359 28.5142C87.8715 28.7904 87.1702 29.2171 86.5736 29.769C85.9769 30.3209 85.4969 30.9869 85.1621 31.7275C84.8272 32.4681 84.6443 33.2683 84.624 34.0809V39.5209C84.6443 40.3334 84.8272 41.1336 85.1621 41.8742C85.4969 42.6149 85.9769 43.2808 86.5736 43.8327C87.1702 44.3846 87.8715 44.8113 88.6359 45.0875C89.4003 45.3638 90.2124 45.4839 91.024 45.4409H155.024C155.836 45.4839 156.648 45.3638 157.412 45.0875C158.177 44.8113 158.878 44.3846 159.474 43.8327C160.071 43.2808 160.551 42.6149 160.886 41.8742C161.221 41.1336 161.404 40.3334 161.424 39.5209V34.0809C161.404 33.2683 161.221 32.4681 160.886 31.7275C160.551 30.9869 160.071 30.3209 159.474 29.769C158.878 29.2171 158.177 28.7904 157.412 28.5142C156.648 28.238 155.836 28.1178 155.024 28.1609Z" fill="#DDDDDD" />\n<path d="M155.024 28.6383H91.024C89.4369 28.5499 87.8783 29.0865 86.6821 30.1332C85.4858 31.18 84.7471 32.6536 84.624 34.2383V39.3583C84.7471 40.9431 85.4858 42.4167 86.6821 43.4634C87.8783 44.5101 89.4369 45.0468 91.024 44.9583H155.024C156.611 45.0468 158.17 44.5101 159.366 43.4634C160.562 42.4167 161.301 40.9431 161.424 39.3583V34.2383C161.301 32.6536 160.562 31.18 159.366 30.1332C158.17 29.0865 156.611 28.5499 155.024 28.6383Z" fill="#DEDEDE" />\n<path d="M155.024 29.1211H91.024C87.504 29.1211 84.624 31.5211 84.624 34.4011V39.2011C84.624 42.0811 87.504 44.4811 91.024 44.4811H155.024C158.544 44.4811 161.424 42.0811 161.424 39.2011V34.4011C161.424 31.5211 158.544 29.1211 155.024 29.1211Z" fill="#DFDFDF" />\n<path d="M155.024 29.6016H91.024C87.504 29.6016 84.624 31.8416 84.624 34.7216V38.8816C84.624 41.7616 87.504 44.0016 91.024 44.0016H155.024C158.544 44.0016 161.424 41.7616 161.424 38.8816V34.7216C161.424 31.8416 158.544 29.6016 155.024 29.6016Z" fill="#E0E0E0" />\n<path d="M155.024 30.0781H91.024C87.504 30.0781 84.624 32.1581 84.624 34.8781V38.7181C84.624 41.4381 87.504 43.5181 91.024 43.5181H155.024C158.544 43.5181 161.424 41.4381 161.424 38.7181V34.8781C161.424 32.1581 158.544 30.0781 155.024 30.0781Z" fill="#E1E1E1" />\n<path d="M155.024 30.5586H91.024C87.504 30.5586 84.624 32.4786 84.624 35.0386V38.5586C84.624 41.1186 87.504 43.0386 91.024 43.0386H155.024C158.544 43.0386 161.424 41.1186 161.424 38.5586V35.0386C161.424 32.4786 158.544 30.5586 155.024 30.5586Z" fill="#E2E2E2" />\n<path d="M155.024 31.0391H91.024C87.504 31.0391 84.624 32.9591 84.624 35.1991V38.3991C84.624 40.6391 87.504 42.5591 91.024 42.5591H155.024C158.544 42.5591 161.424 40.6391 161.424 38.3991V35.1991C161.424 32.9591 158.544 31.0391 155.024 31.0391Z" fill="#E3E3E3" />\n<path d="M155.024 31.3594H91.024C87.504 31.3594 84.624 33.2794 84.624 35.5194V38.0794C84.624 40.3194 87.504 42.2394 91.024 42.2394H155.024C158.544 42.2394 161.424 40.3194 161.424 38.0794V35.5194C161.424 33.2794 158.544 31.3594 155.024 31.3594Z" fill="#E3E3E3" />\n<path d="M155.024 31.8398H91.024C87.504 31.8398 84.624 33.5998 84.624 35.6798V37.9198C84.624 39.9998 87.504 41.7598 91.024 41.7598H155.024C158.544 41.7598 161.424 39.9998 161.424 37.9198V35.6798C161.424 33.5998 158.544 31.8398 155.024 31.8398Z" fill="#E4E4E4" />\n<path d="M155.024 32.3203H91.024C87.504 32.3203 84.624 33.9203 84.624 35.8403V37.7603C84.624 39.6803 87.504 41.2803 91.024 41.2803H155.024C158.544 41.2803 161.424 39.6803 161.424 37.7603V35.8403C161.424 33.9203 158.544 32.3203 155.024 32.3203Z" fill="#E5E5E5" />\n<path d="M155.024 32.8008H91.024C87.504 32.8008 84.624 34.2408 84.624 36.0008V37.6008C84.624 39.3608 87.504 40.8008 91.024 40.8008H155.024C158.544 40.8008 161.424 39.3608 161.424 37.6008V36.0008C161.424 34.2408 158.544 32.8008 155.024 32.8008Z" fill="#E6E6E6" />\n<path d="M155.024 33.2812H91.024C87.504 33.2812 84.624 34.5613 84.624 36.3213V37.2812C84.624 39.0412 87.504 40.3213 91.024 40.3213H155.024C158.544 40.3213 161.424 39.0412 161.424 37.2812V36.3213C161.424 34.5613 158.544 33.2812 155.024 33.2812Z" fill="#E7E7E7" />\n<path d="M155.024 33.7617H91.024C87.504 33.7617 84.624 35.0417 84.624 36.4817V37.1217C84.624 38.5617 87.504 39.8417 91.024 39.8417H155.024C158.544 39.8417 161.424 38.5617 161.424 37.1217V36.4817C161.424 35.0417 158.544 33.7617 155.024 33.7617Z" fill="#E8E8E8" />\n<path d="M155.024 34.2422H91.024C87.504 34.2422 84.624 35.3622 84.624 36.6422V36.9622C84.624 38.2422 87.504 39.3622 91.024 39.3622H155.024C158.544 39.3622 161.424 38.2422 161.424 36.9622V36.6422C161.424 35.3622 158.544 34.2422 155.024 34.2422Z" fill="#E9E9E9" />\n<path d="M155.024 34.7188H91.024C87.504 34.7188 84.624 35.6787 84.624 36.7987C84.624 37.9188 87.504 38.8787 91.024 38.8787H155.024C158.544 38.8787 161.424 37.9188 161.424 36.7987C161.424 35.6787 158.544 34.7188 155.024 34.7188Z" fill="#EAEAEA" />\n<path d="M155.024 35.1992H91.024C87.504 35.1992 84.624 35.9992 84.624 37.1192V36.4792C84.624 37.5992 87.504 38.3992 91.024 38.3992H155.024C158.544 38.3992 161.424 37.5992 161.424 36.4792V37.1192C161.424 35.9992 158.544 35.1992 155.024 35.1992Z" fill="#EBEBEB" />\n<path opacity="0.7" d="M155.023 28.8008H91.0233L89.2633 29.1208C88.8179 29.3722 88.4644 29.7594 88.2544 30.2258C88.0445 30.6922 87.9891 31.2136 88.0962 31.7137C88.2034 32.2139 88.4676 32.6667 88.8502 33.0062C89.2329 33.3456 89.7139 33.554 90.2233 33.6008H155.823C156.333 33.554 156.814 33.3456 157.196 33.0062C157.579 32.6667 157.843 32.2139 157.95 31.7137C158.058 31.2136 158.002 30.6922 157.792 30.2258C157.582 29.7594 157.229 29.3722 156.783 29.1208L155.023 28.8008Z" fill="white" />\n<path d="M126.384 19.1992H119.664C117.985 19.1992 116.624 20.5603 116.624 22.2392V32.1592C116.624 33.8382 117.985 35.1992 119.664 35.1992H126.384C128.063 35.1992 129.424 33.8382 129.424 32.1592V22.2392C129.424 20.5603 128.063 19.1992 126.384 19.1992Z" fill="#E6E6E6" />\n<path d="M126.063 19.1992H119.823C118.233 19.1992 116.943 20.4886 116.943 22.0792V32.3192C116.943 33.9098 118.233 35.1992 119.823 35.1992H126.063C127.654 35.1992 128.943 33.9098 128.943 32.3192V22.0792C128.943 20.4886 127.654 19.1992 126.063 19.1992Z" fill="#E7E7E7" />\n<path d="M126.064 19.1992H120.144C118.642 19.1992 117.424 20.417 117.424 21.9192V32.4792C117.424 33.9814 118.642 35.1992 120.144 35.1992H126.064C127.566 35.1992 128.784 33.9814 128.784 32.4792V21.9192C128.784 20.417 127.566 19.1992 126.064 19.1992Z" fill="#E8E8E8" />\n<path d="M125.583 19.1992H120.463C118.961 19.1992 117.743 20.417 117.743 21.9192V32.4792C117.743 33.9814 118.961 35.1992 120.463 35.1992H125.583C127.085 35.1992 128.303 33.9814 128.303 32.4792V21.9192C128.303 20.417 127.085 19.1992 125.583 19.1992Z" fill="#E9E9E9" />\n<path d="M125.423 19.1992H120.623C119.21 19.1992 118.063 20.3454 118.063 21.7592V32.6392C118.063 34.0531 119.21 35.1992 120.623 35.1992H125.423C126.837 35.1992 127.983 34.0531 127.983 32.6392V21.7592C127.983 20.3454 126.837 19.1992 125.423 19.1992Z" fill="#EAEAEA" />\n<path d="M125.263 19.1992H120.943C119.617 19.1992 118.543 20.2737 118.543 21.5992V32.7992C118.543 34.1247 119.617 35.1992 120.943 35.1992H125.263C126.588 35.1992 127.663 34.1247 127.663 32.7992V21.5992C127.663 20.2737 126.588 19.1992 125.263 19.1992Z" fill="#EBEBEB" />\n<path d="M124.784 19.1992H121.264C119.939 19.1992 118.864 20.2737 118.864 21.5992V32.7992C118.864 34.1247 119.939 35.1992 121.264 35.1992H124.784C126.11 35.1992 127.184 34.1247 127.184 32.7992V21.5992C127.184 20.2737 126.11 19.1992 124.784 19.1992Z" fill="#ECECEC" />\n<path d="M124.624 19.1992H121.424C120.186 19.1992 119.184 20.2021 119.184 21.4392V32.9592C119.184 34.1963 120.186 35.1992 121.424 35.1992H124.624C125.861 35.1992 126.864 34.1963 126.864 32.9592V21.4392C126.864 20.2021 125.861 19.1992 124.624 19.1992Z" fill="#ECECEC" />\n<path d="M124.304 19.1992H121.584C120.435 19.1992 119.504 20.1305 119.504 21.2792V33.1192C119.504 34.268 120.435 35.1992 121.584 35.1992H124.304C125.453 35.1992 126.384 34.268 126.384 33.1192V21.2792C126.384 20.1305 125.453 19.1992 124.304 19.1992Z" fill="#EDEDED" />\n<path d="M124.143 19.1992H121.903C120.843 19.1992 119.983 20.0588 119.983 21.1192V33.2792C119.983 34.3396 120.843 35.1992 121.903 35.1992H124.143C125.204 35.1992 126.063 34.3396 126.063 33.2792V21.1192C126.063 20.0588 125.204 19.1992 124.143 19.1992Z" fill="#EEEEEE" />\n<path d="M123.824 19.1992H122.224C121.163 19.1992 120.304 20.0588 120.304 21.1192V33.2792C120.304 34.3396 121.163 35.1992 122.224 35.1992H123.824C124.884 35.1992 125.744 34.3396 125.744 33.2792V21.1192C125.744 20.0588 124.884 19.1992 123.824 19.1992Z" fill="#EFEFEF" />\n<path d="M123.504 19.1992H122.384C121.412 19.1992 120.624 19.9872 120.624 20.9592V33.4392C120.624 34.4112 121.412 35.1992 122.384 35.1992H123.504C124.476 35.1992 125.264 34.4112 125.264 33.4392V20.9592C125.264 19.9872 124.476 19.1992 123.504 19.1992Z" fill="#F0F0F0" />\n<path d="M123.504 19.1992H122.704C121.821 19.1992 121.104 19.9156 121.104 20.7992V33.5992C121.104 34.4829 121.821 35.1992 122.704 35.1992H123.504C124.388 35.1992 125.104 34.4829 125.104 33.5992V20.7992C125.104 19.9156 124.388 19.1992 123.504 19.1992Z" fill="#F1F1F1" />\n<path d="M123.184 19.1992H122.864C122.069 19.1992 121.424 19.8439 121.424 20.6392V33.7592C121.424 34.5545 122.069 35.1992 122.864 35.1992H123.184C123.979 35.1992 124.624 34.5545 124.624 33.7592V20.6392C124.624 19.8439 123.979 19.1992 123.184 19.1992Z" fill="#F2F2F2" />\n<path d="M126.384 19.1992H119.664C117.985 19.1992 116.624 20.5603 116.624 22.2392V32.1592C116.624 33.8382 117.985 35.1992 119.664 35.1992H126.384C128.063 35.1992 129.424 33.8382 129.424 32.1592V22.2392C129.424 20.5603 128.063 19.1992 126.384 19.1992Z" fill="#E6E6E6" />\n<path opacity="0.5" d="M119.664 20.8008C119.282 20.8008 118.915 20.9525 118.645 21.2225C118.375 21.4926 118.224 21.8589 118.224 22.2408V32.1608C118.224 32.5427 118.375 32.909 118.645 33.179C118.915 33.4491 119.282 33.6008 119.664 33.6008C119.895 33.6008 120.124 33.5553 120.337 33.4668C120.551 33.3784 120.745 33.2487 120.908 33.0853C121.072 32.9219 121.201 32.7278 121.29 32.5143C121.378 32.3008 121.424 32.0719 121.424 31.8408V22.5608C121.424 22.3297 121.378 22.1008 121.29 21.8873C121.201 21.6737 121.072 21.4797 120.908 21.3163C120.745 21.1528 120.551 21.0232 120.337 20.9348C120.124 20.8463 119.895 20.8008 119.664 20.8008Z" fill="white" />\n<path opacity="0.1" d="M155.023 27.2H129.423V22.24C129.447 21.8347 129.384 21.4291 129.239 21.0498C129.095 20.6704 128.872 20.3259 128.585 20.0388C128.298 19.7518 127.953 19.5287 127.574 19.3841C127.194 19.2395 126.789 19.1768 126.383 19.2H123.023V46.4H155.023C156.721 46.4 158.349 45.7257 159.549 44.5255C160.749 43.3253 161.423 41.6974 161.423 40V33.6C161.423 31.9026 160.749 30.2748 159.549 29.0745C158.349 27.8743 156.721 27.2 155.023 27.2Z" fill="#233646" />\n<path opacity="0.1" d="M84.624 36.8008V41.6008C84.624 43.2982 85.2983 44.926 86.4985 46.1263C87.6988 47.3265 89.3266 48.0008 91.024 48.0008H155.024C156.721 48.0008 158.349 47.3265 159.55 46.1263C160.75 44.926 161.424 43.2982 161.424 41.6008V36.8008H84.624Z" fill="#233646" />\n<path opacity="0.1" d="M187.823 33.6H161.423C161.423 31.9026 160.749 30.2748 159.549 29.0745C158.349 27.8743 156.721 27.2 155.023 27.2H129.423V22.24C129.447 21.8347 129.384 21.4291 129.239 21.0498C129.095 20.6704 128.872 20.3259 128.585 20.0388C128.298 19.7518 127.953 19.5287 127.574 19.3841C127.194 19.2395 126.789 19.1768 126.383 19.2H123.023V214.4H187.823C189.733 214.4 191.564 213.641 192.915 212.291C194.265 210.941 195.023 209.11 195.023 207.2V40.8C195.023 38.8905 194.265 37.0591 192.915 35.7089C191.564 34.3586 189.733 33.6 187.823 33.6Z" fill="#233646" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 92.7992C84.8127 92.7992 85.301 93.0015 85.6611 93.3616C86.0212 93.7216 86.2234 94.21 86.2234 94.7192V100.479C86.2234 100.988 86.0212 101.477 85.6611 101.837C85.301 102.197 84.8127 102.399 84.3034 102.399H78.5434C78.0342 102.399 77.5459 102.197 77.1858 101.837C76.8257 101.477 76.6234 100.988 76.6234 100.479V94.7192C76.6234 94.21 76.8257 93.7216 77.1858 93.3616C77.5459 93.0015 78.0342 92.7992 78.5434 92.7992H84.3034ZM84.3034 91.1992H78.5434C78.0812 91.1992 77.6235 91.2903 77.1964 91.4672C76.7693 91.6441 76.3813 91.9033 76.0544 92.2302C75.7276 92.5571 75.4683 92.9451 75.2914 93.3722C75.1145 93.7992 75.0234 94.257 75.0234 94.7192V100.479C75.0234 100.941 75.1145 101.399 75.2914 101.826C75.4683 102.253 75.7276 102.641 76.0544 102.968C76.3813 103.295 76.7693 103.554 77.1964 103.731C77.6235 103.908 78.0812 103.999 78.5434 103.999H84.3034C85.237 103.999 86.1323 103.628 86.7925 102.968C87.4526 102.308 87.8234 101.413 87.8234 100.479V94.7192C87.8234 94.257 87.7324 93.7992 87.5555 93.3722C87.3786 92.9451 87.1193 92.5571 86.7925 92.2302C86.4656 91.9033 86.0776 91.6441 85.6505 91.4672C85.2234 91.2903 84.7657 91.1992 84.3034 91.1992Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 93.6016L82.2234 100.002L79.0234 96.8016" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M147.184 92.8008H95.6636C95.2817 92.8008 94.9155 92.9525 94.6454 93.2225C94.3753 93.4926 94.2236 93.8589 94.2236 94.2408V94.5608C94.2236 94.9427 94.3753 95.309 94.6454 95.579C94.9155 95.8491 95.2817 96.0008 95.6636 96.0008H147.184C147.566 96.0008 147.932 95.8491 148.202 95.579C148.472 95.309 148.624 94.9427 148.624 94.5608V94.2408C148.624 93.8589 148.472 93.4926 148.202 93.2225C147.932 92.9525 147.566 92.8008 147.184 92.8008ZM132.784 99.2008H95.6636C95.2817 99.2008 94.9155 99.3525 94.6454 99.6225C94.3753 99.8926 94.2236 100.259 94.2236 100.641V100.961C94.2236 101.343 94.3753 101.709 94.6454 101.979C94.9155 102.249 95.2817 102.401 95.6636 102.401H132.784C133.166 102.401 133.532 102.249 133.802 101.979C134.072 101.709 134.224 101.343 134.224 100.961V100.641C134.224 100.259 134.072 99.8926 133.802 99.6225C133.532 99.3525 133.166 99.2008 132.784 99.2008Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 115.202C84.5556 115.202 84.8053 115.251 85.0382 115.348C85.2711 115.444 85.4828 115.586 85.6611 115.764C85.8394 115.942 85.9808 116.154 86.0773 116.387C86.1738 116.62 86.2234 116.869 86.2234 117.122V122.882C86.2234 123.391 86.0212 123.879 85.6611 124.239C85.301 124.599 84.8127 124.802 84.3034 124.802H78.5434C78.0342 124.802 77.5459 124.599 77.1858 124.239C76.8257 123.879 76.6234 123.391 76.6234 122.882V117.122C76.6234 116.869 76.6731 116.62 76.7696 116.387C76.8661 116.154 77.0075 115.942 77.1858 115.764C77.3641 115.586 77.5757 115.444 77.8087 115.348C78.0416 115.251 78.2913 115.202 78.5434 115.202H84.3034ZM84.3034 113.602H78.5434C78.0812 113.602 77.6235 113.693 77.1964 113.87C76.7693 114.046 76.3813 114.306 76.0544 114.633C75.7276 114.959 75.4683 115.347 75.2914 115.775C75.1145 116.202 75.0234 116.659 75.0234 117.122V122.882C75.0234 123.344 75.1145 123.802 75.2914 124.229C75.4683 124.656 75.7276 125.044 76.0544 125.371C76.3813 125.697 76.7693 125.957 77.1964 126.134C77.6235 126.311 78.0812 126.402 78.5434 126.402H84.3034C85.237 126.402 86.1323 126.031 86.7925 125.371C87.4526 124.71 87.8234 123.815 87.8234 122.882V117.122C87.8234 116.188 87.4526 115.293 86.7925 114.633C86.1323 113.972 85.237 113.602 84.3034 113.602Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 116L82.2234 122.4L79.0234 119.2" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 121.599H95.6636C95.2817 121.599 94.9155 121.751 94.6454 122.021C94.3753 122.291 94.2236 122.657 94.2236 123.039V123.359C94.2236 123.741 94.3753 124.107 94.6454 124.377C94.9155 124.647 95.2817 124.799 95.6636 124.799H132.784C133.166 124.799 133.532 124.647 133.802 124.377C134.072 124.107 134.224 123.741 134.224 123.359V123.039C134.224 122.657 134.072 122.291 133.802 122.021C133.532 121.751 133.166 121.599 132.784 121.599ZM147.184 115.199H95.6636C95.4745 115.199 95.2873 115.236 95.1126 115.309C94.9379 115.381 94.7791 115.487 94.6454 115.621C94.5117 115.755 94.4056 115.913 94.3332 116.088C94.2609 116.263 94.2236 116.45 94.2236 116.639V116.959C94.2236 117.341 94.3753 117.707 94.6454 117.977C94.9155 118.248 95.2817 118.399 95.6636 118.399H147.184C147.566 118.399 147.932 118.248 148.202 117.977C148.472 117.707 148.624 117.341 148.624 116.959V116.639C148.624 116.45 148.586 116.263 148.514 116.088C148.442 115.913 148.336 115.755 148.202 115.621C148.068 115.487 147.909 115.381 147.735 115.309C147.56 115.236 147.373 115.199 147.184 115.199Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 137.6C84.8127 137.6 85.301 137.802 85.6611 138.162C86.0212 138.522 86.2234 139.011 86.2234 139.52V145.28C86.2234 145.789 86.0212 146.278 85.6611 146.638C85.301 146.998 84.8127 147.2 84.3034 147.2H78.5434C78.0342 147.2 77.5459 146.998 77.1858 146.638C76.8257 146.278 76.6234 145.789 76.6234 145.28V139.52C76.6234 139.011 76.8257 138.522 77.1858 138.162C77.5459 137.802 78.0342 137.6 78.5434 137.6H84.3034ZM84.3034 136H78.5434C78.0812 136 77.6235 136.091 77.1964 136.268C76.7693 136.445 76.3813 136.704 76.0544 137.031C75.7276 137.358 75.4683 137.746 75.2914 138.173C75.1145 138.6 75.0234 139.058 75.0234 139.52V145.28C75.0234 145.742 75.1145 146.2 75.2914 146.627C75.4683 147.054 75.7276 147.442 76.0544 147.769C76.3813 148.096 76.7693 148.355 77.1964 148.532C77.6235 148.709 78.0812 148.8 78.5434 148.8H84.3034C85.237 148.8 86.1323 148.429 86.7925 147.769C87.4526 147.109 87.8234 146.214 87.8234 145.28V139.52C87.8234 138.586 87.4526 137.691 86.7925 137.031C86.1323 136.371 85.237 136 84.3034 136Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 138.398L82.2234 144.798L79.0234 141.598" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 144.002H95.6636C95.4745 144.002 95.2873 144.039 95.1126 144.111C94.9379 144.184 94.7791 144.29 94.6454 144.423C94.5117 144.557 94.4056 144.716 94.3332 144.891C94.2609 145.065 94.2236 145.252 94.2236 145.442V145.762C94.2236 146.143 94.3753 146.51 94.6454 146.78C94.9155 147.05 95.2817 147.202 95.6636 147.202H132.784C133.166 147.202 133.532 147.05 133.802 146.78C134.072 146.51 134.224 146.143 134.224 145.762V145.442C134.224 145.252 134.186 145.065 134.114 144.891C134.042 144.716 133.936 144.557 133.802 144.423C133.668 144.29 133.509 144.184 133.335 144.111C133.16 144.039 132.973 144.002 132.784 144.002ZM147.184 137.602H95.6636C95.2817 137.602 94.9155 137.753 94.6454 138.023C94.3753 138.293 94.2236 138.66 94.2236 139.042V139.362C94.2236 139.551 94.2609 139.738 94.3332 139.913C94.4056 140.087 94.5117 140.246 94.6454 140.38C94.7791 140.514 94.9379 140.62 95.1126 140.692C95.2873 140.764 95.4745 140.802 95.6636 140.802H147.184C147.373 140.802 147.56 140.764 147.735 140.692C147.909 140.62 148.068 140.514 148.202 140.38C148.336 140.246 148.442 140.087 148.514 139.913C148.586 139.738 148.624 139.551 148.624 139.362V139.042C148.624 138.66 148.472 138.293 148.202 138.023C147.932 137.753 147.566 137.602 147.184 137.602Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 159.998C84.8127 159.998 85.301 160.201 85.6611 160.561C86.0212 160.921 86.2234 161.409 86.2234 161.918V167.678C86.2234 167.931 86.1738 168.18 86.0773 168.413C85.9808 168.646 85.8394 168.858 85.6611 169.036C85.4828 169.214 85.2711 169.356 85.0382 169.452C84.8053 169.549 84.5556 169.598 84.3034 169.598H78.5434C78.2913 169.598 78.0416 169.549 77.8087 169.452C77.5757 169.356 77.3641 169.214 77.1858 169.036C77.0075 168.858 76.8661 168.646 76.7696 168.413C76.6731 168.18 76.6234 167.931 76.6234 167.678V161.918C76.6234 161.409 76.8257 160.921 77.1858 160.561C77.5459 160.201 78.0342 159.998 78.5434 159.998H84.3034ZM84.3034 158.398H78.5434C77.6099 158.398 76.7146 158.769 76.0544 159.429C75.3943 160.09 75.0234 160.985 75.0234 161.918V167.678C75.0234 168.612 75.3943 169.507 76.0544 170.167C76.7146 170.828 77.6099 171.198 78.5434 171.198H84.3034C85.237 171.198 86.1323 170.828 86.7925 170.167C87.4526 169.507 87.8234 168.612 87.8234 167.678V161.918C87.8234 160.985 87.4526 160.09 86.7925 159.429C86.1323 158.769 85.237 158.398 84.3034 158.398Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 160.801L82.2234 167.201L79.0234 164.001" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 166.4H95.6636C95.2817 166.4 94.9155 166.552 94.6454 166.822C94.3753 167.092 94.2236 167.458 94.2236 167.84V168.16C94.2236 168.349 94.2609 168.536 94.3332 168.711C94.4056 168.886 94.5117 169.044 94.6454 169.178C94.7791 169.312 94.9379 169.418 95.1126 169.49C95.2873 169.563 95.4745 169.6 95.6636 169.6H132.784C132.973 169.6 133.16 169.563 133.335 169.49C133.509 169.418 133.668 169.312 133.802 169.178C133.936 169.044 134.042 168.886 134.114 168.711C134.186 168.536 134.224 168.349 134.224 168.16V167.84C134.224 167.458 134.072 167.092 133.802 166.822C133.532 166.552 133.166 166.4 132.784 166.4ZM147.184 160H95.6636C95.4745 160 95.2873 160.037 95.1126 160.11C94.9379 160.182 94.7791 160.288 94.6454 160.422C94.5117 160.555 94.4056 160.714 94.3332 160.889C94.2609 161.064 94.2236 161.251 94.2236 161.44V161.76C94.2236 162.142 94.3753 162.508 94.6454 162.778C94.9155 163.048 95.2817 163.2 95.6636 163.2H147.184C147.566 163.2 147.932 163.048 148.202 162.778C148.472 162.508 148.624 162.142 148.624 161.76V161.44C148.624 161.251 148.586 161.064 148.514 160.889C148.442 160.714 148.336 160.555 148.202 160.422C148.068 160.288 147.909 160.182 147.735 160.11C147.56 160.037 147.373 160 147.184 160Z" fill="#435969" />\n<path opacity="0.2" d="M79.824 70.4H137.424C138.273 70.4 139.087 70.0629 139.687 69.4627C140.287 68.8626 140.624 68.0487 140.624 67.2C140.624 66.3513 140.287 65.5374 139.687 64.9373C139.087 64.3371 138.273 64 137.424 64H79.824C78.9753 64 78.1614 64.3371 77.5613 64.9373C76.9612 65.5374 76.624 66.3513 76.624 67.2C76.624 68.0487 76.9612 68.8626 77.5613 69.4627C78.1614 70.0629 78.9753 70.4 79.824 70.4ZM147.024 75.2H79.824C78.9753 75.2 78.1614 75.5371 77.5613 76.1373C76.9612 76.7374 76.624 77.5513 76.624 78.4C76.624 79.2487 76.9612 80.0626 77.5613 80.6627C78.1614 81.2629 78.9753 81.6 79.824 81.6H147.024C147.873 81.6 148.687 81.2629 149.287 80.6627C149.887 80.0626 150.224 79.2487 150.224 78.4C150.224 77.5513 149.887 76.7374 149.287 76.1373C148.687 75.5371 147.873 75.2 147.024 75.2Z" fill="#435969" />\n</symbol>'});r().add(c);const p=c,s=()=>n.createElement("svg",{height:"240px",width:"240px",viewBox:p.viewBox},n.createElement("use",{xlinkHref:"#".concat(p.id)}));var H=e(74664),V=e(58187);const h=C=>{let{checked:t,error:e,onChange:i,tagging:a,children:d}=C;return n.createElement(l.Flex,{alignItems:"center","data-testid":"termsAndConditions"},n.createElement(H.ph,{checked:t,onChange:i,error:e,"data-ga":"signinup::click-checkbox::".concat(a),"data-testid":"termsAndConditions-checkbox"}),d||n.createElement(l.TextBig,null,"By signing up, you agree to the Netdata ",n.createElement(V.H,{tagging:a})," and"," ",n.createElement(V.X,{tagging:a})))};var f=e(22292),E=e(87659);const g=()=>{const[C,t]=(0,f.Ir)("termsAccepted",{shouldPersist:!0}),[e,a]=(0,E.A)(),d=(0,n.useCallback)((()=>{(0,i.H)("","","","","","terms-accept"),t(e)}),[e]);return C?null:n.createElement(l.ConfirmationDialog,{confirmLabel:"Accept","data-ga":"accept-terms-dialog","data-testid":"acceptTermsDialog",handleConfirm:d,hideIcon:!0,hideDecline:!0,isConfirmPositive:!0,isConfirmDisabled:!e,message:n.createElement(l.Flex,{gap:4,alignItems:"center",column:!0},n.createElement(s,null),n.createElement(h,{checked:e,onChange:a,tagging:"modal-view"})),title:"To use Netdata you need to read and accept our terms and conditions"})}},74664:(C,t,e)=>{e.d(t,{MG:()=>p,OV:()=>c,ah:()=>d,ch:()=>a,j5:()=>o,ph:()=>r});var n=e(8711),l=e(10058),i=e(96763);const a=n.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),d=n.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,l.getColor)("success"),(0,l.getColor)("success"),(0,l.getColor)("success"),(0,l.getColor)("main"),(0,l.getSizeBy)(1)),o=(0,n.default)(i.A).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["",""],(C=>{let{isLastSignInMethod:t}=C;return t?"border: 2px solid green;":""})),r=(0,n.default)(l.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,l.getSizeBy)(2),(C=>{let{error:t}=C;return t&&(0,l.getColor)("error")})),c=(0,n.default)(l.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),p=(0,n.default)(l.Flex).attrs((C=>{let{gap:t=8}=C;return{column:!0,gap:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},58187:(C,t,e)=>{e.d(t,{H:()=>d,X:()=>o});var n=e(96540),l=e(74664);const i={link:"https://www.netdata.cloud/terms",title:"Terms And Conditions",dataGa:"signinup::click-terms::"},a=C=>{let{link:t,title:e,dataGa:i}=C;return C=>{let{tagging:a}=C;return n.createElement(l.ah,{href:t,target:"_blank",rel:"noopener noreferrer","data-ga":"".concat(i).concat(a)},e)}},d=a({link:"https://www.netdata.cloud/privacy",title:"Privacy Policy",dataGa:"signinup::click-privacy::"}),o=a(i)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5304.dcb81c99fcb90f8ee8cc.chunk.js b/src/web/gui/v2/5304.dcb81c99fcb90f8ee8cc.chunk.js
new file mode 100644
index 000000000..f4dd5cbb0
--- /dev/null
+++ b/src/web/gui/v2/5304.dcb81c99fcb90f8ee8cc.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e27ff49e-a3c2-487e-95c7-13bbd43d7887",e._sentryDebugIdIdentifier="sentry-dbid-e27ff49e-a3c2-487e-95c7-13bbd43d7887")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5304],{79394:(e,t,l)=>{l.d(t,{A:()=>u,p:()=>d});l(41393),l(81454);var a=l(96540),n=l(47444),r=l(3914),o=l(67990),s=l(63129),i=l(88982);const c=()=>{const e=(0,r.vt)();return(0,n.Zs)((t=>{let{set:l,snapshot:a}=t;return async t=>{const n=await a.getPromise((0,o.$6)({id:t,key:"nodes"}));let r=null;return null!==n&&void 0!==n&&n.length||(l((0,o.$6)({id:t,key:"loaded"}),!1),r=(0,s.uQ)({roomId:t,spaceId:e}),r.then((e=>{let{data:a}=e;l((0,o.$6)({id:t,key:"nodes"}),a.map((e=>{let{id:t,name:l}=e;return{label:l,value:t}}))),l((0,o.$6)({id:t,key:"loaded"}),!0)})).catch((e=>l((0,o.$6)({id:t,key:"error"}),e)))),r}}),[e])},d=()=>{const e=c(),t=(0,i.n)("id");(0,a.useEffect)((()=>{let l=null;return t&&(l=e(t)),()=>{var e;return!(null===(e=l)||void 0===e||!e.cancel)&&l.cancel()}}),[t,e])},u=c},25304:(e,t,l)=>{l.r(t),l.d(t,{default:()=>ae});var a=l(96540),n=l(83084),r=l(28738),o=(l(8159),l(98992),l(37550),l(62953),l(87659)),s=l(81638),i=l(30577),c=l(93615),d=l(58168),u=l(10058),m=(l(9920),l(14905),l(3949),l(8872),l(27467)),g=l(59846),p=l(82700),y=l(37171),b=l(10368);const h=(e,t,l)=>{let{id:a,name:n}=e;-1==l?t.push({id:a,name:n,count:1}):t[l]={...t[l],count:t[l].count+1}},f=e=>e.id,E=e=>e.name,x=e=>{let{title:t,baseKey:l,param:n,paramKey:r,extraKey:o,testIdPrefix:s}=e;const i=(e=>{let{baseKey:t,extraKey:l,param:n,paramKey:r}=e;const{rules:o}=(0,y.q)({extraKey:l,omit:n,keepAll:!0}),s=(0,m.rW)(n,{key:t,extraKey:l,flavour:"arr"});return(0,a.useMemo)((()=>o.reduce(((e,t)=>{const l=t[r];if(!l)return e;const a=e.findIndex((e=>e.id==l.id));return"id"==r?h({id:l,name:l},e,a):["rooms","nodes"].includes(r)?l.forEach((t=>{let{id:l,name:n,notAvailable:r}=t;const o=r?"Not available (".concat(l,")"):n;h({id:l,name:o},e,a)})):["alertNames","alertContexts","alertRoles"].includes(r)?l.forEach((t=>{h({id:t,name:t},e,a)})):"hostLabels"==r&&Object.entries(l).forEach((t=>{let[l,n]=t;const r=(0,b.M)({key:l,value:n});h({id:r,name:r},e,a)})),e}),[])),[o,s])})({baseKey:l,extraKey:o,param:n,paramKey:r});return i.length?a.createElement(g.A,{title:t,testIdPrefix:s,param:n,baseKey:l,extraKey:o},a.createElement(p.Ay,{param:n,baseKey:l,extraKey:o,testIdPrefix:s,collection:i,getValue:f,getLabel:E,capitalized:!1})):null};var A=l(3914),v=l(78940);const w=[{title:"Rules IDs",param:"ids",paramKey:"id"},{title:"Rooms",param:"roomIds",paramKey:"rooms"},{title:"Nodes",param:"nodeIds",paramKey:"nodes"},{title:"Host labels",param:"hostLabels",paramKey:"hostLabels"},{title:"Alert names",param:"alertNames",paramKey:"alertNames"},{title:"Alert contexts",param:"alertContexts",paramKey:"alertContexts"},{title:"Alert roles",param:"alertRoles",paramKey:"alertRoles"}],k={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:(0,a.memo)((e=>{const t=(0,A.vt)();return a.createElement(u.Flex,(0,d.A)({column:!0,height:"calc(100vh - 266px)",overflow:{vertical:"auto"},padding:[0,0,30]},e),w.map((e=>{let{title:l,param:n,paramKey:r}=e;return a.createElement(x,{key:l,baseKey:t,extraKey:v.qt,title:l,param:n,paramKey:r})})))})),dataTestId:"filterBar",label:"Filters"}},K=["filters"],C=e=>e.some((e=>{let{roomIds:t=[],nodeIds:l=[],hostLabels:a={},alertNames:n=[],alertContexts:r=[],alertRoles:o=[]}=e;return t.length||l.length||Object.keys(a).length||n.length||r.length||o.length})),S=e=>{let{rules:t}=e;const[l,n]=(0,o.A)((()=>C(t))),{Content:r}=k.filters;return(0,a.useEffect)((()=>{n(C(t))}),[t]),a.createElement(s.Ay,{collapsedComponent:a.createElement(i.A,{onClickTab:n,availableTabs:k,tabsToShow:K}),isOpen:l,header:a.createElement(c.A,{isOpen:l,onToggle:n,title:"Filters",icon:"filterList"})},a.createElement(r,{padding:[0,3,30]}))};var T=l(39225),L=l(4659),I=l(65570),F=(l(9391),l(41393),l(81454),l(21290)),R=l(36021),D=l(71835),N=l(29217),M=l(40267);const P=e=>{let{value:t,...l}=e;return a.createElement(N.A,{content:t},a.createElement(u.Pill,(0,d.A)({flavour:"neutral"},l),t))},_=()=>a.createElement(u.Text,null,"*"),j=e=>{let{getValue:t}=e;const l=t();return null!==l&&void 0!==l&&l.length?a.createElement(u.Flex,{flexWrap:!0,gap:1},l.map((e=>a.createElement(u.Flex,{key:e,padding:[.5,0]},a.createElement(P,{value:e}))))):a.createElement(_,null)},O=e=>{let{getValue:t}=e;const{localeDateString:l}=(0,F.$j)();if(!t())return a.createElement(u.Text,null,"-");const n=l(new Date(t()),{month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0});return a.createElement(u.Text,{whiteSpace:"nowrap"},n)},V=[{id:"disabled",name:"Disable rule",accessorKey:"disabled",header:"",cell:e=>{let{row:t,getValue:l}=e;const n=t.original,[r,s]=(0,a.useState)(!l()),[i,c]=(0,o.A)(),[,d]=(0,D.A)(),m=(0,R.FU)(),g=(0,R.Lz)();return a.createElement(u.Toggle,{colored:!0,checked:r,disabled:i,onChange:e=>{c();const t=e.target.checked;s(t),m({...n,disabled:!t}).then((()=>{g()})).catch((e=>{s(!t),d(e)})).finally(c)}})},size:80},{id:"name",name:"Name",accessorKey:"name",header:"Rule name",cell:e=>{let{row:t,getValue:l}=e;const{accountId:n}=t.original;return a.createElement(u.Flex,{gap:2,alignItems:"center"},a.createElement(u.Text,{wordBreak:"break-word"},l()),n&&a.createElement(N.A,{align:"bottom",content:"This rule affects only your account"},a.createElement(u.Box,null,a.createElement(u.Icon,{color:"textLite",height:"16px",name:"userPress",width:"16px"}))))}},{id:"rooms",name:"Rooms",accessorKey:"rooms",header:"Rooms",cell:e=>{let{getValue:t}=e;const l=t();return null!==l&&void 0!==l&&l.length?a.createElement(u.Text,null,l.map((e=>{let{name:t}=e;return t})).join(", ")):a.createElement(u.Text,null,"All rooms")}},{id:"nodes",name:"Nodes",accessorKey:"nodes",header:"Nodes",cell:e=>{let{getValue:t}=e;const l=t();return null!==l&&void 0!==l&&l.length?a.createElement(u.Flex,{flexWrap:!0,gap:1},l.map((e=>{let{id:t,name:l,notAvailable:n}=e;const r=n?a.createElement(u.Flex,{alignItems:"center",gap:1},a.createElement(u.Icon,{name:"warning_triangle",size:"small",color:"neutralPillColor"}),a.createElement(u.Text,null,"Node no longer available")):l;return a.createElement(P,{key:t,value:r})}))):a.createElement(_,null)}},{id:"hostLabels",name:"Host labels",accessorKey:"hostLabels",header:"Host labels",cell:e=>{let{getValue:t}=e;const l=t(),n=Object.entries(l||{});return n.length?a.createElement(u.Flex,{flexWrap:!0,gap:1},n.map((e=>{let[t,l]=e;const n=(0,b.M)({key:t,value:l});return a.createElement(P,{key:n,value:n})}))):a.createElement(_,null)}},{id:"alertNames",name:"Alert names",accessorKey:"alertNames",header:"Alert name",cell:j},{id:"alertContexts",name:"Alert contexts",accessorKey:"alertContexts",header:"Alert context",cell:j},{id:"severities",name:"Alert status",accessorKey:"severities",header:"Alert status",cell:e=>{let{getValue:t}=e;const l=t();return null!==l&&void 0!==l&&l.length?a.createElement(u.Flex,{flexWrap:!0,gap:1},l.map((e=>a.createElement(u.Flex,{key:e,padding:[.5,0]},a.createElement(M.A,{flavour:e.toLowerCase()},e))))):a.createElement(_,null)}},{id:"alertRoles",name:"Alert roles",accessorKey:"alertRoles",header:"Alert role",cell:j},{id:"startDate",name:"Start date",accessorKey:"startsAt",header:"Start date",cell:O},{id:"endDate",name:"End date",accessorKey:"lastsUntil",header:"End date",cell:O}];l(93514);var $=l(38819),U=l(29848),z=l(46741);const B={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},H=()=>{const[e,t]=(0,a.useState)(""),{silencingRulePrefill:l}=(0,$.PP)(),n=l?{type:"create"}:{},[r,o]=(0,a.useState)(n),[,s]=(0,D.A)(),{localeDateString:i}=(0,F.$j)(),c=(0,R._S)(),d=(0,R.Lz)(),m=(0,U.ly)(),g=()=>o({type:"create"}),p=e=>o({type:"edit",rule:e}),y=e=>{let{id:t}=e;c([t]).then((()=>{d(),m()})).catch(s)},b=(0,z.JT)("space:DeletePersonalSilencingRule"),h=(0,z.JT)("space:DeleteSystemSilencingRule"),f=(0,a.useMemo)((()=>({addEntry:{dataGa:"",flavour:"hollow",handleAction:g,iconColor:"success",label:"Add rule",small:!0,width:"auto"}})),[]),E=e=>{let{name:t}=e;return a.createElement(a.Fragment,null,"Delete ",t," rule")};return{search:e,setSearch:t,bulkActions:f,rowActions:(0,a.useMemo)((()=>({edit:{handleAction:p,disabledTooltipText:"Edit is disabled",isDisabled:e=>{let{readOnly:t}=e;return!!t},dataGa:"alert-silencing::click-edit-row::rules-table"},delete:{handleAction:y,confirmationTitle:E,confirmationMessage:e=>a.createElement(u.Text,{wordBreak:"break-word"},"You are about to delete ",a.createElement("strong",null,e.name)," silencing rule.",a.createElement("br",null),"Are you sure you want to continue?"),dataGa:"alert-silencing::click-delete-row::rules-table",disabledTooltipText:"Delete is disabled",confirmLabel:"Yes, delete",declineLabel:"Cancel",isDisabled:e=>{let{accountId:t}=e;return t?!b:!h}}})),[]),onFilter:(0,a.useCallback)(((e,t,l)=>{const a=e.original,n=l.toLowerCase(),r=(a.rooms||[]).map((e=>{let{name:t}=e;return t})),o=(a.nodes||[]).map((e=>{let{name:t}=e;return t})),s=a.alertNames||[],c=a.alertContexts||[],d=a.severities||[],u=a.alertRoles||[],m=a.hostLabels||{},g=a.startsAt?i(new Date(a.startsAt),B):"",p=a.lastsUntil?i(new Date(a.lastsUntil),B):"";return((e,t)=>e.some((e=>e.toLowerCase().includes(t))))([a.name.toLowerCase(),...r,...o,...s,...c,...d,...u,...Object.entries(m).flat(),g,p],n)}),[]),modalDetails:r,closeModal:()=>o({})}},W=(0,T.A)((()=>l.e(8011).then(l.bind(l,88011))),"CreateOrUpdateRuleModal"),q=(0,a.memo)(u.Table,((e,t)=>(0,I.Ay)(e,t))),J={right:["actions"]},G=()=>a.createElement(u.Flex,null,a.createElement(u.Text,null,"Create or Maintain Alert Notification Silencing Rules on this Space. These rules can be applicable to all users or just you, depending on their definition."," ",a.createElement(L.A,{"data-ga":"alert-silencing::click-link-docs::rules-table","data-testid":"silencing-rules-doc",href:"https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/netdata-cloud-notifications/#silencing-alert-notifications",rel:"noopener noreferrer",target:"_blank"},"Read the Alert Notification Silencing Rules documentation to learn more."))),Y=e=>{let{data:t}=e;const{search:l,setSearch:n,bulkActions:r,rowActions:o,onFilter:s,modalDetails:i,closeModal:c}=H();return a.createElement(a.Fragment,null,a.createElement(u.Flex,{column:!0,gap:4,padding:[2,4],height:"calc(100vh - 241px)"},a.createElement(G,null),a.createElement(q,{key:JSON.stringify(t||{}),enableSorting:!0,enableColumnVisibility:!0,data:t,dataColumns:V,bulkActions:r,rowActions:o,globalFilter:l,globalFilterFn:s,onSearch:n,columnPinning:J,enableColumnPinning:!0})),"create"==i.type&&a.createElement(a.Suspense,null,a.createElement(W,{onClose:c})),"edit"==i.type&&i.rule&&a.createElement(a.Suspense,null,a.createElement(W,{rule:i.rule,onClose:c,isEdit:!0})))};var Q=l(9415),Z=l(89821),X=l(18061);const ee=e=>{let{errorMessage:t}=e;return a.createElement(u.Flex,{column:!0,gap:2,alignItems:"center",justifyContent:"center",flex:!0},a.createElement(u.TextBig,null,"Something went wrong"),t&&a.createElement(u.Text,null,"(",t,")"))};var te=l(79394),le=l(63314);const ae=()=>{(e=>{const t=(0,R.ys)({id:e,key:"initialLoad"}),l=(0,R.Qu)(),a=(0,R.UJ)(e);(0,X.A)((()=>({enabled:!!e&&!t,fetch:()=>(0,Q.cH)(e),onFail:e=>a({...Z.$,loading:!1,loaded:!0,error:e}),onSuccess:e=>a(((e,t)=>({...e,loading:!1,loaded:!0,initialLoad:!0,rules:t}))(Z.$,e))})),[e,l])})((0,A.vt)()),(0,te.p)();const{loaded:e,rules:t,error:l}=(0,y.q)({extraKey:v.qt});return e?l?a.createElement(le.DL,{tab:"Notifications::SilencingRules"},a.createElement(ee,{errorMessage:l.message})):a.createElement(le.Ay,{tab:"Notifications::SilencingRules"},a.createElement(n.A,{sidebar:a.createElement(S,{rules:t}),margin:[3,0]},a.createElement(Y,{data:t}))):a.createElement(r.A,{height:"calc(100% - 44px)",title:"Loading silencing rules..."})}},10368:(e,t,l)=>{l.d(t,{H:()=>n,M:()=>r});l(14905),l(98992),l(8872),l(62953);var a=l(78940);const n=e=>{var t;const{validationErrors:l,errorMessage:n}=(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||{};return l&&Object.keys(l).length?Object.entries(l).reduce(((e,t)=>{let[,l]=t;const{Code:n}=l;return a.xc[n]&&e.push({errorMessage:a.xc[n]}),e}),[]):[{errorMessage:n}]},r=e=>{let{key:t,value:l}=e;return"".concat(t,": ").concat(l)}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5426.1235a7a39c1b0923b071.chunk.js b/src/web/gui/v2/5426.1235a7a39c1b0923b071.chunk.js
new file mode 100644
index 000000000..9ee3aca43
--- /dev/null
+++ b/src/web/gui/v2/5426.1235a7a39c1b0923b071.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a63dab3-5cc3-4deb-a6f6-264ae4ba0203",e._sentryDebugIdIdentifier="sentry-dbid-0a63dab3-5cc3-4deb-a6f6-264ae4ba0203")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5426],{45426:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});n(62953);var o=n(96540),a=n(10058),r=n(5396),d=n(4659),l=n(87659),s=n(51641);const c=()=>{const e=(0,s.e)(),[t,,n,c]=(0,l.A)();return(0,o.useEffect)((()=>{"Reachable"===e&&n()}),[e]),t?o.createElement(a.Layer,{full:"horizontal",backdropProps:{backdropBlur:"3px"},onClickOutside:c,onEsc:c,position:"top"},o.createElement(r.A,{testId:"agent-not-secure-banner",width:"100%",background:"warningBackground",position:"absolute",top:"0",tooltipProps:{align:"top"},zIndex:20},o.createElement(a.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},o.createElement(a.Text,null,"IMPORTANT: This Netdata is openly accessible from the Internet!"," ",o.createElement(d.A,{"data-testid":"learn",href:"https://learn.netdata.cloud/docs/netdata-agent/securing-netdata-agents/",as:"a",cursor:"pointer",textDecoration:"underline",color:"text",hoverColor:"textFocus"},"Secure your Netdata now"),"!")),o.createElement(a.Box,{"data-testid":"agent-not-secure-banner-close-button",as:a.Icon,color:"text",cursor:"pointer",name:"x",position:"absolute",right:"8px",onClick:c}))):null}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5596.8280cb325a103342aa30.chunk.js b/src/web/gui/v2/5596.8280cb325a103342aa30.chunk.js
new file mode 100644
index 000000000..852d4e2e9
--- /dev/null
+++ b/src/web/gui/v2/5596.8280cb325a103342aa30.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1090411b-a40f-4c47-80fb-ee9da671b268",e._sentryDebugIdIdentifier="sentry-dbid-1090411b-a40f-4c47-80fb-ee9da671b268")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5596],{92155:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(58168),r=n(96540),o=n(50876);const i=e=>(0,r.forwardRef)(((t,n)=>{let{callback:i,feature:l,isStart:c,isSuccess:s,isFailure:d,eventReason:g,payload:u={},...m}=t;const{sendLog:h,isReady:p}=(0,o.A)(),x=(0,r.useCallback)((()=>{const e=m[i],t={feature:l,isStart:c,isSuccess:s,isFailure:d,eventReason:g,...u,...m["data-ga"]?{dataGa:m["data-ga"]}:{},...m.dataGa?{dataGa:m.dataGa}:{},...m["data-track"]?{dataTrack:m["data-track"]}:{},...m.label?{label:m.label}:{}};"function"==typeof e&&e(),h(t,!0)}),[i,h,p,u,m]),b=(0,r.useMemo)((()=>({...m,[i]:x})),[m,i,x]);return r.createElement(e,(0,a.A)({ref:n},b))}));var l=n(67276);const c=e=>(0,r.forwardRef)(((t,n)=>{let{payload:o={},...c}=t;const s=i(e);return r.createElement(s,(0,a.A)({},c,{ref:n,callback:"onClick",payload:{...o,action:l.o1.buttonClicked}}))}))},21828:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(96540),r=n(10058);const o=e=>{let{theme:t}=e;const n="default"==t?"grey185":"grey45";return t="dark"==t?r.DarkTheme:r.DefaultTheme,a.createElement(r.Flex,{height:"1px",width:"100%",background:(0,r.getColor)(["neutral",n])({theme:t})})}},84541:(e,t,n)=>{n.d(t,{A:()=>I});var a=n(58168),r=n(96540),o=n(45463),i=n(10058);const l=(0,n(8711).default)(i.Flex).attrs({flex:{grow:"1",shrink:"0"},width:{max:"100%"}}).withConfig({displayName:"panel__Panel",componentId:"sc-4zlw7c-0"})(["",";",";"],(e=>{let{order:t}=e;return t&&"order: ".concat(t,";")}),(e=>{let{bgGradient:t}=e;return t&&"background: linear-gradient(34.14deg, #536775 -26.52%, #2F3A42 53.66%);\n"}));var c=n(17208);const s=()=>r.createElement(i.Flex,{alignItems:"center",column:!0,padding:[0,0,18,0]},r.createElement(c.oi,null));n(41393),n(81454);const d=[{icon:"rocket",title:"Rapid Deployment, Instant Insights",text:"One-command installation, automatic metric discovery, and intuitive out-of-the-box dashboards for every single metric."},{icon:"qualityOfServiceSolid",title:"Advanced Monitoring, Made Accessible",text:"Experience real-time monitoring with 1-second granularity and anomaly detection across 800+ integrations."},{icon:"firewallSolid",title:"On-Prem Data Storage, Transparent Pricing",text:"Unlimited metrics, Infinite scale, Zero hidden costs. Decentralized architecture ensures maximum data security."}];n(3064),n(98992),n(72577),n(62953);var g=n(18061),u=n(26655);const m=()=>u.A.get("https://us-east1-netdata-analytics-bi.cloudfunctions.net/netdata_public_metrics_website"),h=e=>{let{downScale:t,...n}=e;const i=(0,o.A)("(min-width: 992px)");return(l=i?t[0]:t[1],e=>{let{children:t,...n}=e;return r.createElement(l,(0,a.A)({color:"bright"},n),t)})(n);var l};var p=n(12897),x=n.n(p),b=n(55042),f=n.n(b),w=new(x())({id:"cloudStatistics",use:"cloudStatistics-usage",viewBox:"0 0 194 146",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 194 146" id="cloudStatistics"><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M9.557 142.145h174.886a7.576 7.576 0 0 0 7.607-7.577v-.594H1.95v.594c0 4.16 3.43 7.577 7.607 7.577Z" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M81.749 137.688h30.577c2.088 0 3.729-1.634 3.729-3.714H78.02a3.733 3.733 0 0 0 3.729 3.714ZM15.374 108.493V34.949c0-4.457 3.58-8.023 8.055-8.023H60.12M178.701 44.83v89.143H15.374v-17.086M140.442 27h30.204c4.475 0 8.055 3.566 8.055 8.023v2.526" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.879 32.2h38.408c.671 0 1.193.52 1.193 1.189v94.939c0 .668-.522 1.188-1.193 1.188H67.131M20.595 44.086V33.39c0-.669.522-1.189 1.193-1.189h33.187M55.274 129.516H21.863c-.671 0-1.194-.52-1.194-1.188V49.881M78.766 106.487h-7.83c-5.967 0-10.815-4.828-10.815-10.771v-69.83c0-5.943 4.848-10.771 10.814-10.771h19.018M90.698 106.487H86.82" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.208 67.71V95.64c0 5.943-4.848 10.772-10.814 10.772H93.681M107.851 15.115h14.543c5.966 0 10.814 4.828 10.814 10.771V59.39M101.064 1H92.19a2.319 2.319 0 0 0-2.312 2.303v22.955a2.319 2.319 0 0 0 2.312 2.302h8.874a2.319 2.319 0 0 0 2.312-2.302V3.227c0-1.262-1.044-2.228-2.312-2.228Z" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 24.029a2.977 2.977 0 0 0 2.983-2.972 2.977 2.977 0 0 0-2.983-2.971 2.977 2.977 0 0 0-2.983 2.971 2.977 2.977 0 0 0 2.983 2.972ZM107.851 70.607c-2.834 2.897-6.786 4.68-11.186 4.68-8.652 0-15.662-6.983-15.662-15.6 0-8.618 7.01-15.6 15.662-15.6 8.651 0 15.661 6.982 15.661 15.6 0 2.748-.746 5.348-2.014 7.577" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 64.144c3.296 0 5.967-2.66 5.967-5.943 0-3.282-2.671-5.943-5.967-5.943-3.295 0-5.966 2.66-5.966 5.943 0 3.282 2.671 5.943 5.966 5.943ZM111.207 85.687h3.356M78.766 85.687h28.34M97.037 90.144h10.068M86.224 90.144h7.756M99.424 64.144h-5.519c-2.983 0-5.444 2.451-5.444 5.423v3.491M104.868 73.058v-3.565c0-1.635-.671-3.046-1.79-4.012" /><path fill="#151818" d="M42.808 75.03c-19.315 0-34.915 15.6-34.915 34.914 0 19.315 15.6 34.915 34.915 34.915 19.314 0 34.915-15.6 34.915-34.915 0-19.314-15.6-34.914-34.915-34.914m3.714 52.743H34.636L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828a17.786 17.786 0 0 1-17.829 17.829" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M45.557 127.773h-10.92l-9.658-35.657h21.543c9.88 0 17.829 7.948 17.829 17.828 0 6.463-3.417 12.109-8.617 15.229" /><path stroke="#006729" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M67.768 85.504c6.166 6.314 9.954 14.932 9.954 24.44 0 19.315-15.6 34.915-34.914 34.915-19.315 0-34.915-15.6-34.915-34.915 0-19.314 15.6-34.914 34.915-34.914 6.091 0 11.886 1.56 16.863 4.308" /></symbol>'});f().add(w);const y=w,k=e=>r.createElement(i.Flex,(0,a.A)({as:"svg",height:y.height,width:y.width,viewBox:y.viewBox},e),r.createElement("use",{xlinkHref:"#".concat(y.id)})),E=()=>{const[e]=(0,g.A)((()=>({fetch:m})),[]),{nodesOnline:t,githubStars:n,dockerHubPulls:a}=(0,r.useMemo)((()=>{var t,n;return Array.isArray(e)?{nodesOnline:"1,265,463",githubStars:null===(t=e.find((e=>{let{key:t}=e;return"GitHub Stars"===t})))||void 0===t?void 0:t.value,dockerHubPulls:null===(n=e.find((e=>{let{key:t}=e;return"DockerHub Pulls"===t})))||void 0===n?void 0:n.value}:{}}),[e]);return r.createElement(i.Flex,{column:!0,gap:6},r.createElement(k,{height:"160px",padding:[0,0,4,0]}),r.createElement(i.Flex,{column:!0,gap:3},r.createElement(h,{downScale:[i.TextBigger,i.TextBigger],color:"bright",textAlign:"center"},r.createElement(h,{downScale:[i.TextBigger,i.TextBigger],color:t?"primaryHighlight":"bright",textAlign:"center",strong:!0},t||"..."),r.createElement(i.Box,{as:"span",margin:[0,0,0,3]},"Nodes Online")),r.createElement(h,{downScale:[i.TextBigger,i.TextBigger],color:"bright",textAlign:"center"},r.createElement(h,{downScale:[i.TextBigger,i.TextBigger],color:n?"primaryHighlight":"bright",textAlign:"center",strong:!0},n||"..."),r.createElement(i.Box,{as:"span",margin:[0,0,0,3]},"GitHub Stars")),r.createElement(h,{downScale:[i.TextBigger,i.TextBigger],color:"bright",textAlign:"center"},r.createElement(h,{downScale:[i.TextBigger,i.TextBigger],color:a?"primaryHighlight":"bright",textAlign:"center",strong:!0},a||"..."),r.createElement(i.Box,{as:"span",margin:[0,0,0,3]},"DockerHub Pulls"))))},v=e=>{let{icon:t,title:n,text:a}=e;const l=(0,o.A)("(min-width: 475px)");return r.createElement(i.Flex,{gap:4,alignItems:"start"},l&&r.createElement(i.Flex,{background:"transparent",justifyContent:"center",alignItems:"center",height:"64px",width:"64px",round:64,flex:"grow",border:{side:"all",color:"successLite"}},r.createElement(i.Icon,{name:t,height:"20px",widht:"20px",color:"successLite"})),r.createElement(i.Flex,{column:!0,justifyContent:"start",alignItems:"start",gap:2},r.createElement(i.TextBig,{color:"bright",strong:!0},n),r.createElement(i.Text,{color:"selected"},a)))};var S=n(21828);const C=()=>r.createElement(i.Flex,{column:!0,padding:[16,4,12],width:{max:"500px"},margin:[0,"auto"],gap:14},r.createElement(E,null),r.createElement(i.Flex,{column:!0,gap:8},d.map(((e,t)=>r.createElement(v,(0,a.A)({key:t},e))))),r.createElement(i.Flex,{column:!0,gap:6,alignItems:"center"},r.createElement(S.A,null),r.createElement(i.Flex,{column:!0,gap:4,alignItems:"center"},r.createElement(c.go,{theme:"dark"}),r.createElement(i.TextSmall,{textAlign:"center",color:"bright"},"Netdata is a member of the Cloud Native Computing Foundation (CNCF), and is one of the most starred projects in the CNCF landscape.")))),I=e=>{let{children:t,...n}=e;const c=(0,o.A)("(min-width: 998px)");return r.createElement(i.Flex,(0,a.A)({height:{min:"100vh"},flexWrap:!0},n),!window.envSettings.onprem&&r.createElement(l,{background:(0,i.getColor)(["neutral","grey25"])({theme:i.DarkTheme}),order:c?0:1},r.createElement(C,null)),r.createElement(l,{background:"mainBackground",order:c?1:0},r.createElement(i.Flex,{background:"transparent",column:!0,gap:8,padding:[12,4],width:{max:"500px"},margin:[0,"auto"]},r.createElement(s,null),t)))}},75596:(e,t,n)=>{n.r(t),n.d(t,{SignIn:()=>R,default:()=>G});n(25440),n(62953),n(3296),n(48408);var a=n(96540),r=n(47767),o=n(86663),i=n(10058),l=n(55337),c=n(11604),s=n(17182),d=n(17208),g=n(58168),u=n(8711);const m=u.default.a.withConfig({displayName:"linkButton__LinkButton",componentId:"sc-9kv26a-0"})(["color:",";text-decoration:none;background-color:transparent;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;height:",";background:",";border:1px solid ",";border-radius:2px;max-width:320px;width:100%;",";&:hover{text-decoration:none;color:unset;}"],(0,i.getColor)("background"),(0,i.getSizeBy)(5.5),(0,i.getColor)("mainBackground"),(0,i.getColor)("mainBackground"),(e=>{let{disabled:t}=e;return"\n opacity: ".concat(t?.4:1,";\n pointer-events: ").concat(t?"none":"auto",";\n ")})),h=e=>t=>{let{method:n,...r}=t;return n==localStorage.getItem("lastSignInMethod")?a.createElement(i.Box,{width:"100%"},a.createElement(i.TextMicro,null,"Last Sign-in method"),a.createElement(e,(0,g.A)({isLastSignInMethod:!0},r))):a.createElement(e,r)},p=e=>(0,u.default)(m).withConfig({displayName:"linkButton__makeSocialButton",componentId:"sc-9kv26a-1"})(["box-shadow:0px 0px 1px rgba(0,0,0,0.12);border-radius:2px;background:",";border-style:solid;border-color:",";border-width:",";span{flex:1;display:flex;align-items:center;justify-content:center;padding:0 ",";color:",";}"],e,(t=>{let{isLastSignInMethod:n}=t;return n?"green":e}),(e=>{let{isLastSignInMethod:t}=e;return t?"2px":"1px"}),(0,i.getSizeBy)(1),(0,i.getColor)("bright")),x=p("#445260"),b=p("#4285f4");var f=n(74664),w=n(50876);const y=h(f.j5),k=e=>{let{onSubmit:t,disabled:n,initialValue:r,buttonLabel:o,tagging:l}=e;const[c,s]=(0,i.useInputValue)({value:r||""}),[d,g]=(0,a.useState)(),{sendButtonClickedLog:u,isReady:m}=(0,w.A)(),h=(0,a.useCallback)((e=>{e.preventDefault(),u({feature:"SignIn",dataGa:"signinup::click-email::".concat(l)}),t(c).catch(g),localStorage.setItem("lastSignInMethod","email")}),[t,c,m]);return a.createElement(i.Flex,{as:"form",column:!0,gap:4,width:"100%","data-testid":"emailField"},a.createElement(y,{value:c,onChange:s,"data-testid":"emailField-input",method:"email",size:"large",error:d}),a.createElement(f.OV,{type:"submit",disabled:n||!c,width:"100%",label:o,onClick:h,"data-ga":"signinup::click-email::".concat(l),"data-testid":"emailField-submitButton"}))};var E=n(84541),v=n(21828),S=n(58187),C=n(92155),I=n(67276);const A=()=>{const e=(0,a.useMemo)((()=>{const{search:e}=window.location,{telemetry_session_id:t}=o.parse(e);return t}));(0,a.useEffect)((()=>{e&&sessionStorage.setItem(I.yq.session,e)}),[e])};var B=n(63314);const M=h(b),_=(0,C.A)(M),F=h(x),T=(0,C.A)(F),H=e=>{let{to:t}=e;return t=(e=>{try{const t=document.createElement("a");return t.href=e,/https?/.test(t.protocol)?new URL(t.protocol+"//"+t.host+t.pathname+t.search+t.hash).toString():null}catch(t){return null}})(t),t?a.createElement(i.Box,{position:"fixed"},a.createElement(i.Button,{as:"a",href:t,flavour:"borderless",label:"Go back to ".concat(t.replace(/#.*/,"")),icon:"arrow_left",rel:"noopener noreferrer"})):null},R=()=>{const{search:e}=(0,r.zy)(),t=window.location.hash,n=(0,c.Js)(),{redirect_uri:l}=o.parse(e);A();const g=(0,a.useCallback)((a=>{const r=encodeURIComponent((0,s.V)("/sign-in".concat(e),t)),o=encodeURIComponent((0,s.V)("/sign-up/verify".concat(e),t));return n({email:a,redirectURI:r,registerURI:o})}),[]);(0,a.useEffect)((()=>{if(!/app\.netdata\.cloud/.test(location.hostname))return;const e=document.createElement("script");return e.src="https://zsvdrp94yfxr.statuspage.io/embed/script.js",e.async=!0,document.body.appendChild(e),()=>{document.body.removeChild(e)}}),[]);const u=e=>{localStorage.setItem("lastSignInMethod",e)};return a.createElement(B.Ay,{feature:"SignIn"},!window.envSettings.onprem&&!!l&&a.createElement(H,{to:l}),a.createElement(E.A,{"data-testid":"signIn"},a.createElement(i.Flex,{column:!0,gap:4},a.createElement(i.H1,{textAlign:"center"},"Welcome!"),a.createElement(i.TextBig,{textAlign:"center"},"Sign in and let's get you started")),a.createElement(f.MG,null,a.createElement(i.Flex,{column:!0,gap:4},a.createElement(_,{href:(0,s.R)("google"),onClick:()=>u("google"),disabled:!1,"data-ga":"signinup::click-google::sni-view","data-testid":"signIn-googleButton",method:"google",feature:"SignIn",payload:{label:"Continue with Google"}},a.createElement(f.ch,null,a.createElement(d.J8,null)),a.createElement(i.Text,{textAlign:"center"},"Continue with Google")),a.createElement(T,{href:(0,s.R)("github"),onClick:()=>u("github"),disabled:!1,"data-ga":"signinup::click-github::sni-view","data-testid":"signIn-githubButton",method:"github",feature:"SignIn",payload:{label:"Continue with GitHub"}},a.createElement(f.ch,null,a.createElement(d.fx,null)),a.createElement(i.Text,null,"Continue with GitHub"))),a.createElement(i.Flex,{gap:2,alignItems:"center"},a.createElement(v.A,{theme:"default"}),a.createElement(i.H4,null,"or"),a.createElement(v.A,{theme:"default"})),a.createElement(k,{onSubmit:g,buttonLabel:"Sign in by email",tagging:"sni-view"})),!window.envSettings.onprem&&a.createElement(i.Flex,{column:!0,gap:4,alignSelf:"center",width:{max:"480px"}},a.createElement(i.TextBig,{textAlign:"center"},"No Netdata account? Sign-in and we will create one for you!"),a.createElement(i.Text,{textAlign:"center"},"By creating an account, you agree with Netdata's"," ",a.createElement(S.X,{tagging:"signin-view"})," and our"," ",a.createElement(S.H,{tagging:"signin-view"}),"."))))},G=(0,l.g)(R,"light")},74664:(e,t,n)=>{n.d(t,{MG:()=>g,OV:()=>d,ah:()=>l,ch:()=>i,j5:()=>c,ph:()=>s});var a=n(8711),r=n(10058),o=n(96763);const i=a.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),l=a.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,r.getColor)("success"),(0,r.getColor)("success"),(0,r.getColor)("success"),(0,r.getColor)("main"),(0,r.getSizeBy)(1)),c=(0,a.default)(o.A).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["",""],(e=>{let{isLastSignInMethod:t}=e;return t?"border: 2px solid green;":""})),s=(0,a.default)(r.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,r.getSizeBy)(2),(e=>{let{error:t}=e;return t&&(0,r.getColor)("error")})),d=(0,a.default)(r.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),g=(0,a.default)(r.Flex).attrs((e=>{let{gap:t=8}=e;return{column:!0,gap:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},58187:(e,t,n)=>{n.d(t,{H:()=>l,X:()=>c});var a=n(96540),r=n(74664);const o={link:"https://www.netdata.cloud/terms",title:"Terms And Conditions",dataGa:"signinup::click-terms::"},i=e=>{let{link:t,title:n,dataGa:o}=e;return e=>{let{tagging:i}=e;return a.createElement(r.ah,{href:t,target:"_blank",rel:"noopener noreferrer","data-ga":"".concat(o).concat(i)},n)}},l=i({link:"https://www.netdata.cloud/privacy",title:"Privacy Policy",dataGa:"signinup::click-privacy::"}),c=i(o)},17182:(e,t,n)=>{n.d(t,{R:()=>o,V:()=>r});var a=n(38819);const r=(e,t)=>{const n=(0,a.yq)(["expires_at",t]),r=t.includes("join-callback")?decodeURIComponent(n):n;return"".concat(window.location.origin).concat(e,"#").concat(r)},o=(e,t)=>{const{search:n,hash:a}=window.location,o=encodeURIComponent(r("/sign-in".concat(n).concat(n.length?"&":"?","oauth=").concat(e,"&"),a)),i=encodeURIComponent(r("/sign-up/verify".concat(n).concat(n.length?"&":"?","oauth=").concat(e,"&"),a));return"/api/v2/auth/account/".concat(e,"?redirect_uri=").concat(o,"&register_uri=").concat(i).concat(t?"&is_unverified_registration=true":"")}},96763:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(58168),r=n(96540),o=n(10058);const i=e=>{let{onChange:t,value:n,onKeyDown:i,label:l,...c}=e;return r.createElement(o.TextInput,(0,a.A)({label:l,name:"userEmail",placeholder:"Enter an email address",value:n,onChange:t,onKeyDown:i},c))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5598.99e492f7ae4d391df96f.chunk.js b/src/web/gui/v2/5598.99e492f7ae4d391df96f.chunk.js
new file mode 100644
index 000000000..d1e94c300
--- /dev/null
+++ b/src/web/gui/v2/5598.99e492f7ae4d391df96f.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ade1e9cc-7584-4619-bb83-539607fe6743",e._sentryDebugIdIdentifier="sentry-dbid-ade1e9cc-7584-4619-bb83-539607fe6743")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5598],{99851:(e,n,t)=>{t.d(n,{A:()=>_e});var o=t(58168),i=(t(62953),t(96540)),a=t(45467),s=t(71600),r=t(51730),l=t(37519),c=t(10058),d=t(71847),m=t(87659),u=t(86723),h=(t(41393),t(81454),t(8711));const p=(0,h.default)(c.Flex).attrs((e=>({position:"relative",width:{min:200},height:{min:45},column:!0,background:"dropdown",color:"text",zIndex:60,round:!0,alignItems:"end",...e}))).withConfig({displayName:"styled__PickerBox",componentId:"sc-gwjt9o-0"})([""]),g=h.default.span.withConfig({displayName:"styled__StyledTimePeriod",componentId:"sc-gwjt9o-1"})(["margin-bottom:",";cursor:pointer;width:187px;height:",";&:last-of-type{margin-bottom:0;}& > span:hover{color:",";}"],(0,c.getSizeBy)(1.5),(0,c.getSizeBy)(2),(0,c.getColor)("textLite")),f=(0,h.default)(c.Flex).attrs((e=>{let{isSelected:n}=e;return{color:n?"primary":"text",margin:[2,6,0]}})).withConfig({displayName:"styled__StyledCustomTimePeriod",componentId:"sc-gwjt9o-2"})(["cursor:pointer;&:first-of-type{margin-top:0;}&:hover{color:",";}"],(0,c.getColor)("textLite")),y=(0,h.default)(c.Flex).attrs({alignItems:"center",border:{side:"all",color:"border"},color:"text",flexWrap:!1,height:8,justifyContent:"center",padding:[2,0],round:1,width:22}).withConfig({displayName:"styled__TimePeriodDropdownButton",componentId:"sc-gwjt9o-3"})([""]),b=(0,h.default)(c.Drop).attrs({background:"mainBackground",column:!0,overflow:{vertical:"auto"},margin:[.5,0,0],padding:[2,0],round:1}).withConfig({displayName:"styled__TimePeriodDrop",componentId:"sc-gwjt9o-4"})([""]),_=(0,h.default)(c.Icon).withConfig({displayName:"styled__DropdownIcon",componentId:"sc-gwjt9o-5"})(["fill:",";width:12px;height:12px;"],(0,c.getColor)("text")),w=h.default.input.withConfig({displayName:"styled__CustomInput",componentId:"sc-gwjt9o-6"})(["border:1px solid ",";background:",";box-sizing:border-box;border-radius:4px;color:",";height:32px;margin-left:10px;margin-right:10px;outline:none;padding:4px;width:32px;&:focus{border:1px solid ",";}"],(0,c.getColor)("border"),(0,c.getColor)("mainBackground"),(0,c.getColor)("text"),(0,c.getColor)("primary")),v=(0,h.default)(c.Drop).attrs({background:"dropdown",round:2,margin:[.5,0,0],border:{side:"all",color:"borderSecondary"},animation:!0}).withConfig({displayName:"styled__StyledDrop",componentId:"sc-gwjt9o-7"})([""]),T=(0,h.default)(c.TextInput).withConfig({displayName:"styled__StyledDateInput",componentId:"sc-gwjt9o-8"})(["width:100%;"]),k=h.default.div.withConfig({displayName:"styled__StyledCalendar",componentId:"sc-gwjt9o-9"})(["background:",";border:0;&.react-datepicker{background:",";border:0;}.react-datepicker{&__navigation{top:8px;&-icon::before{border-color:",";}}&__month-container{height:260px;}&__header{background:",";border:0;.react-datepicker__current-month{color:",";font-weight:normal;}.react-datepicker__day-name{color:",";}}&__day{color:",";&:hover{background:",";}&--disabled{color:",";&:hover{background:inherit;}}&--keyboard-selected,&--keyboard-selected:hover{color:",";background:inherit;border-radius:inherit;}&--selected,&--selected:hover{color:",";background:",";border-radius:8px;}&--in-selecting-range,&--in-range{color:",";background:",";border-radius:0;}&--selecting-range-start,&--range-start{color:",";background:",";border-top-left-radius:8px;border-bottom-left-radius:8px;&:hover{color:",";background:",";border-radius:0;border-top-left-radius:8px;border-bottom-left-radius:8px;}}&--selecting-range-end,&--range-end{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;&:hover{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;}}}}"],(0,c.getColor)("dropdown"),(0,c.getColor)("dropdown"),(0,c.getColor)("text"),(0,c.getColor)("dropdown"),(0,c.getColor)("main"),(0,c.getColor)("textLite"),(0,c.getColor)("main"),(0,c.getColor)("elementBackground"),(0,c.getColor)("textLite"),(0,c.getColor)("main"),(0,c.getColor)("bright"),(0,c.getColor)("primary"),(0,c.getColor)("primary"),(0,c.getColor)("elementBackground"),(0,c.getColor)("bright"),(0,c.getColor)("primary"),(0,c.getColor)("bright"),(0,c.getRgbColor)(["green","netdata"],.8),(0,c.getColor)("bright"),(0,c.getColor)("primary"),(0,c.getColor)("bright"),(0,c.getRgbColor)(["green","netdata"],.8)),x=e=>{let{value:n,period:t,resolution:o,isSelected:a,setTimeRange:s,tagging:r}=e;const l=(0,i.useCallback)((()=>s(n,o)),[n,o]);return i.createElement(g,{key:n,onClick:l,"data-ga":"date-picker::click-quick-selector::".concat(r,"::").concat(-n),"data-testid":"timePeriod-value"},i.createElement(c.Text,{color:a?"primary":"text"},t))},P=(0,i.memo)(x);var C=t(79897);const q=e=>{let{handleTimePeriodChange:n,selectedDate:t,tagging:o}=e;return i.createElement(c.Flex,{column:!0,justifyContent:"start",alignItems:"start",height:{max:"260px"},overflow:{vertical:"auto"},"data-testid":"timePeriods"},C.AE.map((e=>{let{period:a,value:s,resolution:r}=e;return i.createElement(P,{key:s,value:s,period:a,resolution:r,setTimeRange:n,isSelected:t===s,tagging:o})})))};var S=t(82526),D=t(16074),A=t(26010);const M=e=>{let{customTimePeriodRef:n,handleTimePeriodChange:t,value:o,resolution:a,tagging:s}=e;const r=()=>o<=0?(0,C.Mb)(-o,a):0,[l,d]=(0,i.useState)(r),[u,h,,p]=(0,m.A)(),g=(0,i.useRef)();(0,i.useEffect)((()=>d(r())),[o]);const v=(0,i.useCallback)((e=>d(e.target.value)),[]),T=(0,i.useCallback)((e=>{const n=Number(e.currentTarget.value),i=!Number.isNaN(n)&&Number.isInteger(n)&&n>0,s=(0,S.W)(new Date(0),{[a]:n});return i&&(0,D.f)(s)&&(0,A._)(s)<=C.So?t((0,C.zp)(n,a),a):d(o<=0?(0,C.Mb)(-o,a):0)}),[a,l]),k=(0,i.useCallback)((e=>()=>{t((0,C.zp)(l,e),e),p()}),[l]);return i.createElement(c.Flex,{justifyContent:"start",alignItems:"center",height:8,"data-ga":"date-picker::click-last-integer::".concat(s),"data-testid":"customTimePeriod"},i.createElement(c.Text,{"data-testid":"customTimePeriod-label"},"Last"),i.createElement(w,{value:l,onChange:v,onBlur:T,"data-ga":"date-picker::click-last-integer::".concat(s,"::").concat(l),"data-testid":"timePeriod-timeInput"}),i.createElement(y,{"data-testid":"timePeriodDropdown-button",onClick:h,ref:g},i.createElement(c.Text,{"data-testid":"timePeriodDropdown-buttonLabel",padding:[0,4,0,0]},a),i.createElement(_,{"data-testid":"timePeriodDropdown-buttonIcon",name:"triangle_down"})),g.current&&u&&i.createElement(b,{align:{top:"bottom",left:"left"},animation:!0,close:p,"data-testid":"timePeriodDropdown",onClickOutside:p,onEsc:p,ref:n,target:g.current},C.gt.map((e=>i.createElement(f,{key:e,onClick:k(e),"data-ga":"date-picker::click-last-time-".concat(e,"::").concat(s),"data-testid":"timePeriod-option"},e)))))};var E=t(72880),N=t(87991),H=t(21290),R=t(59386),I=t.n(R);t(30857);const O=e=>{let{selected:n,selectsStart:t=!1,selectsEnd:o=!1,startDate:a,endDate:s,onChange:r,minDate:l,maxDate:c,dateFormat:d="MM/dd/yyyy",open:m=!1,startOpen:u=!1,inline:h=!1,selectsRange:p=!1,monthsShown:g=1,showPopperArrow:f=!0,calendarContainer:y=null}=e;return i.createElement(I(),{selected:n,onChange:r,selectsStart:t,selectsEnd:o,startDate:a,endDate:s,minDate:l,maxDate:c,dateFormat:d,open:m,startOpen:u,inline:h,selectsRange:p,monthsShown:g,showPopperArrow:f,calendarContainer:y})},L=e=>{let{name:n="",value:t="",onDatesChange:o,onFocus:a,placeholderText:r=""}=e;const{utcOffset:l}=(0,H.$j)(),[c,d]=(0,i.useState)(""),m=(0,i.useCallback)((e=>{const n=e.target.value;d(n)}),[]),u=(0,i.useCallback)((e=>{if((0,D.f)(e)){const n=(0,N.GP)(e,"MMMM d yyyy, H:mm");d(n)}}),[]),h=(0,i.useCallback)((e=>{const n=(0,C.ii)(e.target.value,l);if((0,D.f)(n)&&(0,s.W)(n)>0){const e=(0,s.W)(n);o(e,(()=>u(t)))}else u(t)}),[t,l]);return(0,i.useEffect)((()=>u(t)),[t]),i.createElement(T,{type:"text",name:n,value:t?c:r,onChange:m,onBlur:h,onFocus:a,placeholder:r,"data-testid":"datePicker-input"})};var B=t(2642);const U=()=>{const{localeTimeString:e,localeDateString:n}=(0,H.$j)();return(0,i.useCallback)((t=>"".concat(n(t,{locale:"en-us",long:!1})," ").concat(e(t,{locale:"en-us",secs:!1}))),[e,n])},j=(e,n)=>e>0?(0,B.a)(new Date(n(e))):e||0===e?(0,B.a)(new Date(n((new Date).valueOf()+1e3*e))):null,G=e=>{const n=U();return(0,i.useMemo)((()=>j(e,n)),[e])},F=(e,n)=>[G(e),G(n)],z=e=>{let{startDate:n,setStartDate:t,endDate:a,setEndDate:r,singleDate:l,onDatesChange:d,onInputFocus:m,onlyDates:u,maxDate:h=new Date,minDate:p=new Date("1/1/2018"),isSinglePicker:g}=e;const[f,y]=F(n,a),b=G(l),{utcOffset:_}=(0,H.$j)(),w=U(),v=(0,i.useCallback)(((e,n)=>(0,E.Y)(j(e,w),y)?t(e):n()),[a,w]),T=(0,i.useCallback)(((e,n)=>(0,E.Y)(f,j(e,w))?r(e):n()),[n,w]),x=(0,i.useCallback)((e=>{const n=Array.isArray(e)?e[0]:e,t=Array.isArray(e)?e[1]:null,o=n?(0,C.ii)((0,N.GP)(n,"MMMM d yyyy, H:mm"),_):n,i=t?(0,C.ii)((0,N.GP)(t,"MMMM d yyyy, H:mm"),_):t,a=(0,s.W)(o)||null,r=(0,s.W)(i)||null;d({...g?{singleDate:a}:{startDate:a,endDate:r}})}),[_]);return i.createElement(c.Flex,{column:!0,justifyContent:"center",alignItems:"center",flex:!0,gap:3,"data-testid":"datePicker-wrapper"},i.createElement(O,(0,o.A)({selected:g?b:f,onChange:x},g?{}:{startDate:f,endDate:y},{maxDate:h,minDate:p,inline:!0,selectsRange:!0,monthsShown:g?1:2,dateFormat:"MMMM d yyyy, H:mm",showPopperArrow:!1,calendarContainer:k})),!u&&(g?i.createElement(L,{name:"date",value:b,onDatesChange:x,placeholderText:"Select a date"}):i.createElement(c.Flex,{justifyContent:"around",alignItems:"center",width:"100%",gap:2,padding:[0,10]},i.createElement(L,{name:"startDate",value:f,onDatesChange:v,onFocus:m,placeholderText:"Select a start date"}),i.createElement(L,{name:"endDate",value:y,onDatesChange:T,onFocus:m,placeholderText:"Select an end date"}))))},Y=e=>{let{startDate:n,endDate:t,onlyDates:o}=e;const[a,s]=F(n,t),{formattedStartDate:r,formattedEndDate:l}=(0,i.useMemo)((()=>(0,C.HA)(a,s,{onlyDates:o})),[a,s]),d=(0,i.useMemo)((()=>(0,C.jo)(a,s)),[a,s]);return i.createElement(c.Flex,{alignItems:"center",gap:2},i.createElement(c.Flex,{alignItems:"center",justifyContent:"center",gap:1.5},i.createElement(c.TextSmall,{strong:!0,whiteSpace:"nowrap"},"From"),i.createElement(c.TextSmall,{whiteSpace:"nowrap","data-testid":"periodIndication-from"},r)),i.createElement(c.Icon,{name:"arrow_left",size:"small",color:"textLite",rotate:2}),i.createElement(c.Flex,{alignItems:"center",justifyContent:"center",gap:1.5},i.createElement(c.TextSmall,{strong:!0,whiteSpace:"nowrap"},"To"),i.createElement(c.TextSmall,{whiteSpace:"nowrap","data-testid":"periodIndication-to"},l)),i.createElement(c.Flex,{alignItems:"center",justifyContent:"center",gap:2},i.createElement(c.TextSmall,{whiteSpace:"nowrap"},"/"),i.createElement(c.TextSmall,{color:"textLite",whiteSpace:"nowrap","data-testid":"periodIndication-period"},d)))};var X=t(51112),W=t(85551),K=t(6593);const $=36e5,V=24*$,Z=30*V,J=[{key:"years",value:31104e6,unit:"y"},{key:"months",value:Z,unit:"m"},{key:"days",value:V,unit:"d"},{key:"hours",value:$,unit:"h"},{key:"minutes",value:6e4,unit:"min"},{key:"seconds",value:1e3,unit:"s"}],Q=["hours","minutes","seconds"],ee=e=>{let{placeholder:n="No date"}=e;return i.createElement(c.TextSmall,null,n)},ne=e=>{let{isPlaying:n,startDate:t,endDate:o,isSameDate:a,color:s,onlyDates:r,isSinglePicker:l}=e;const{localeTimeString:d,localeDateString:m}=(0,H.$j)(),u=s||(n?"accent":"textFocus");return i.createElement(c.Flex,{gap:1},i.createElement(c.TextSmall,{color:s,whiteSpace:"nowrap"},m(t,{long:!1}),!r&&i.createElement(i.Fragment,null," ","\u2022"," ",i.createElement(c.TextSmall,{color:u,whiteSpace:"nowrap"},d(t,{secs:!1})))),!l&&i.createElement(i.Fragment,null,(!r||!a)&&i.createElement(c.Icon,{name:"arrow_left",color:u,size:"small",rotate:2}),i.createElement(c.TextSmall,{color:s,whiteSpace:"nowrap"},!a&&i.createElement(i.Fragment,null,m(o,{long:!1})," \u2022 "),!r&&i.createElement(c.TextSmall,{color:u,whiteSpace:"nowrap"},d(o,{secs:!1})))))},te=e=>{let{isPlaying:n,duration:t,color:o,fluid:a=!1,isSmall:s=!1}=e;return i.createElement(c.Flex,{gap:s?.2:1,align:"center"},!s&&i.createElement(c.TextSmall,{color:o},"\u2022"),i.createElement(c.Flex,{width:a?"auto":5},n&&i.createElement(c.TextSmall,{color:o},"last")),i.createElement(c.TextSmall,{color:o},t))};var oe=t(29217);const ie=(0,h.default)(c.Flex).withConfig({displayName:"styled__Container",componentId:"sc-1s7311w-0"})(["cursor:pointer;&:hover *{color:",";fill:",";}"],(0,c.getColor)("textLite"),(0,c.getColor)("textLite")),ae=(0,h.default)(oe.A).withConfig({displayName:"styled__StyledTooltip",componentId:"sc-1s7311w-1"})(["pointer-events:",";"],(e=>{let{isDisabled:n}=e;return n?"none":"auto"})),se=(0,i.forwardRef)(((e,n)=>{let{onClick:t,start:a,end:s,isPlaying:r,isPickerOpen:l,tagging:c,color:d,fluid:m,onlyDates:u,tooltipContent:h,isSinglePicker:p,noDateSelected:g,isSmall:f,...y}=e;const b=(0,X.yD)(),[_,w,v]=(0,i.useMemo)((()=>{if(g)return[];const e=(e=>e<0?(0,S.W)(new Date,{seconds:e}):new Date(e))(a),n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e?new Date(e):new Date}(s),t=((e,n)=>(0,W.r)(e,n))(e,n);return[e,n,t]}),[a,s,g]),T=(0,i.useMemo)((()=>g?0:function(e){let{withSeconds:n=!1,withTime:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=n||!!e.seconds;return J.reduce(((n,i)=>{let{key:a,unit:s}=i;return"seconds"!==a||o?!t&&Q.includes(a)?n:e[a]?n?"".concat(n," ").concat(e[a]).concat(s):"".concat(e[a]).concat(s):n:n}),"")}(((e,n)=>(0,K.F)({start:e,end:n}))(_,w),{withTime:!u})),[r,_,w,g]);return i.createElement(ae,{content:l?()=>{}:h||"Select a predefined or a custom timeframe",align:"bottom",isDisabled:!t||b,plain:!0},i.createElement(ie,(0,o.A)({alignItems:"center",justifyContent:"center",gap:1,height:"100%",onClick:t,padding:[0,1],ref:n,"data-ga":"date-picker::click-time::".concat(c),"data-testid":"datePicker-accessorElement"},y),f?null:p&&g?i.createElement(ee,null):i.createElement(ne,{isPlaying:r,endDate:w,startDate:_,isSameDate:v,color:d,onlyDates:u,isSinglePicker:p}),!u&&!p&&!g&&i.createElement(te,{isPlaying:r,duration:T,color:d,fluid:f||m,isSmall:f})))}));var re=t(27467),le=(t(17333),t(98992),t(54520),t(45123)),ce=t(80940);const de=(0,h.default)(c.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1,width:80}).withConfig({displayName:"dropdown__Dropdown",componentId:"sc-pg99kg-0"})([""]),me=(0,h.default)(c.Flex).attrs({column:!0,padding:[2,0,0],overflow:{vertical:"auto"},height:{max:"320px"}}).withConfig({displayName:"container__Container",componentId:"sc-1gtygg6-0"})([""]),ue=(0,h.default)(c.Flex).attrs({justifyContent:"between",alignItems:"center",width:"100%",gap:2}).withConfig({displayName:"wrapper__Wrapper",componentId:"sc-1ehauu1-0"})([""]),he=e=>{let{name:n,offset:t,utc:o,onSelect:a}=e;const s=(0,i.useCallback)((()=>a(o,t,n)),[o,n]);return i.createElement(le.A,{round:1,onClick:s,Wrapper:ue,"data-ga":"timezone-picker::click-timezone::global-view::".concat(n)},i.createElement(c.Text,{color:"text"},n),i.createElement(c.Text,{color:"textLite",whiteSpace:"nowrap"},"UTC ",t))};var pe=t(82838);const ge=e=>{let{value:n,onChange:t,timezoneRef:o,timezoneName:a}=e;const[s,r]=(0,i.useState)(""),[l,d]=(0,m.A)(),u=(0,i.useRef)(),h=(0,i.useRef)();(0,i.useEffect)((()=>{h.current&&l&&h.current.focus()}),[l]);const p=(0,i.useMemo)((()=>s?pe.O.filter((e=>{let{text:n,offset:t}=e;return n.toUpperCase().includes(s.toUpperCase())||t.includes(s)})):pe.O),[s]),g=()=>{d(!1),r("")},f=(0,i.useCallback)(((e,n,o)=>{t(e,n,o),g()}),[]);return i.createElement(ce.A,{hasBorder:!1,testId:"timezone-picker"},i.createElement(le.A,{round:1,onClick:d,ref:u,Wrapper:ue,padding:[2],"data-ga":"timezone-picker::click-picker::global-view",selected:!0},i.createElement(c.Flex,{gap:1},i.createElement(c.Text,{color:"text",whiteSpace:"nowrap"},a," UTC ",n)),i.createElement(c.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"})),u.current&&l&&i.createElement(de,{onClickOutside:g,onEsc:g,ref:o,target:u.current},i.createElement(c.Box,{padding:[0,2]},i.createElement(c.SearchInput,{value:s,onChange:r,ref:h,"data-ga":"timezone-picker::click-search::global-view"})),i.createElement(me,null,p.map((e=>{let{text:n,offset:t,utc:o}=e;return i.createElement(he,{key:n,name:n,offset:t,utc:o[0],onSelect:f})})))))},fe=e=>{let{timezoneRef:n}=e;const[{offset:t,timezoneName:o},a]=(0,re.N9)(),s=(0,i.useCallback)(((e,n,t)=>a({utc:e,offset:n,timezoneName:t})),[]);return i.createElement(ge,{timezoneRef:n,timezoneName:o,value:t,onChange:s})};t(74648),t(9920),t(23215),t(3949);const ye=["mousedown","touchstart"];var be=t(57605);const _e=e=>{let{onChange:n,isSinglePicker:t,values:{start:h,end:g,singleDate:f}={},defaultValue:y=-900,tagging:b="",isPlaying:_,onlyDates:w,accessorProps:T={},maxDate:k,minDate:x,accessorTooltipContent:P,isSmall:S,...D}=e;const[A,E]=(0,i.useState)(f),[N,H]=(0,i.useState)(h),[R,I]=(0,i.useState)(h),[O,L]=(0,u.A)("resolution","minutes"),[B,U]=(0,i.useState)("startDate"),[j,G,,F]=(0,m.A)(),X=(0,i.useRef)(),[W,K]=(0,i.useState)(null),[$,V]=(0,i.useState)(null),[Z,J]=(0,i.useState)(null),Q=(0,be.A)();!function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ye,t=arguments.length>2?arguments[2]:void 0;const o=(0,i.useRef)();(0,i.useEffect)((()=>{const i=n=>{Array.isArray(t)?t.every((e=>!e||!e.contains(n.target)))&&e():o.current&&!o.current.contains(n.target)&&e()};return n.forEach((e=>document.addEventListener(e,i))),()=>{n.forEach((e=>document.removeEventListener(e,i)))}}),[o,e,t])}(F,["mouseup","touchend"],[W,$,Z,X.current]),(0,a.A)((()=>{Q(!!j)}),[j]);const ee=(0,i.useCallback)((e=>{let{startDate:n,endDate:t}=e;H(n),I(t)}),[]);(0,i.useEffect)((()=>{ee({startDate:h,endDate:g})}),[h,g]);const ne=(0,i.useCallback)((()=>{t?(E(f),F()):ee({startDate:y,endDate:0})}),[t]),te=(0,i.useCallback)((e=>{e.target.name&&U(e.target.name)}),[]),oe=(0,i.useCallback)((e=>{e.stopPropagation(),G()}),[G]),ie=()=>{t?n(A):(n({start:N,end:R}),Q(!1)),F()},ae=(0,i.useMemo)((()=>(0,C.g$)(B)),[B]),re=!!t||null!==N&&null!==R&&N!==R,le=!t&&(N===h&&R===g),ce=(0,i.useMemo)((()=>y),[]),de=N===ce,me=(0,i.useCallback)(((e,n)=>{L(n),ee({startDate:e,endDate:0})}),[]),ue=e=>{let{startDate:o,endDate:i,singleDate:a}=e;if(t)E(a),n(a),(0,d.H)("date-picker","click-date-picker",b,String(a));else{ee(w?{startDate:o?(0,s.W)((0,r.o)(new Date(o))):o,endDate:i?(0,s.W)((0,l.D)(new Date(i))):i}:{startDate:o,endDate:i});const e="finish"===ae?i||o:o||i;(0,d.H)("date-picker","click-date-picker",b,String(e))}},he=(0,i.useMemo)((()=>X.current&&j?i.createElement(v,{backdrop:!0,target:X.current,canHideTarget:!1,align:{top:"bottom",left:"left"},onEsc:F},i.createElement(p,(0,o.A)({ref:V,"data-testid":"datePicker"},D),i.createElement(c.Flex,{alignItems:"center",width:"100%",padding:w?[4]:[0,6]},!w&&!t&&i.createElement(c.Flex,{column:!0,gap:3,margin:[0,4,0,0],padding:[6,0],border:{side:"right",color:"borderSecondary"}},i.createElement(q,{handleTimePeriodChange:me,selectedDate:N,tagging:b}),i.createElement(M,{handleTimePeriodChange:me,customTimePeriodRef:K,resolution:O,tagging:b,value:N})),i.createElement(z,{startDate:N,endDate:R,singleDate:A,setStartDate:H,setEndDate:I,onDatesChange:ue,onInputFocus:te,onlyDates:w,maxDate:k,minDate:x,isSinglePicker:t})),i.createElement(c.Flex,{column:!0,padding:[4,6,2],width:"100%",border:{side:"top",color:"borderSecondary"}},!w&&!t&&i.createElement(fe,{timezoneRef:J}),i.createElement(c.Flex,{gap:1,justifyContent:t?"end":w?"center":re?"between":"end",width:"100%"},!w&&!t&&re&&i.createElement(Y,{startDate:N,endDate:R,onlyDates:w}),i.createElement(c.Flex,{alignItems:"center",justifyContent:"center",gap:1},i.createElement(c.Button,{label:"Clear",flavour:"hollow",onClick:ne,disabled:de,"data-ga":"date-picker::click-clear::".concat(b,"-").concat(ae),"data-testid":"datePicker-clear",small:!0}),i.createElement(c.Button,{label:"Apply",onClick:ie,disabled:!re||le,"data-ga":"date-picker::click-apply::".concat(b,"-").concat(ae),"data-testid":"datePicker-apply",small:!0})))))):null),[N,b,O,R,re,de,ae,le,A,j]);return i.createElement(i.Fragment,null,i.createElement(se,(0,o.A)({onClick:oe,tagging:b,isPickerOpen:j,isPlaying:_,setRangeValues:n,start:t?A:h,end:t?A:g,ref:X,onlyDates:w,tooltipContent:P,isSinglePicker:t,noDateSelected:t&&!A,isSmall:S},T)),he)}},51112:(e,n,t)=>{t.d(n,{A_:()=>l,gC:()=>d,mQ:()=>c,yD:()=>r});var o=t(47767),i=t(50466),a=t(22332);const s={},r=()=>{const e=(0,o.RQ)("/spaces/:spaceSlug/rooms/:roomSlug/alerts"),n=(0,o.RQ)("/spaces/:spaceSlug/rooms/:roomSlug/alerts/:alertId"),t=(0,o.RQ)("/spaces/:spaceSlug/rooms/:roomSlug/home");return e||n||t},l=()=>{const e=(0,o.RQ)("/spaces/:spaceSlug/rooms/:roomSlug/top"),{hasHistory:n}=(0,i.Ol)({extraKey:"fn"})||s;return e&&!n},c=()=>(0,o.RQ)("/spaces/:spaceSlug/rooms/:roomSlug/events"),d=()=>{const e=c(),n=(0,a.useAttributeValue)("autofetch");return!(0,a.useAttributeValue)("paused")&&n&&!e}},79897:(e,n,t)=>{t.d(n,{AE:()=>w,HA:()=>v,Mb:()=>f,So:()=>h,d_:()=>u,g$:()=>_,gt:()=>p,ii:()=>T,jo:()=>k,zp:()=>y});var o=t(82526),i=t(26010),a=t(87991),s=t(84128),r=t(58380),l=t(31826),c=t(71600);const d=60,m=3600,u=86400,h=94694400,p=["minutes","hours","days","months"],g={minutes:d,hours:m,days:u,months:30*u},f=(e,n)=>Math.round(e/g[n]),y=(e,n)=>{const t=(0,o.W)(new Date(0),{[n]:e});return-(0,i._)(t)},b={startDate:"start",endDate:"finish"},_=e=>b[e],w=[{period:"Last 5 minutes",value:-300,resolution:"minutes"},{period:"Last 10 minutes",value:-600,resolution:"minutes"},{period:"Last 15 minutes",value:-900,resolution:"minutes"},{period:"Last 30 minutes",value:-1800,resolution:"minutes"},{period:"Last hour",value:-3600,resolution:"hours"},{period:"Last 2 hours",value:-7200,resolution:"hours"},{period:"Last 6 hours",value:-21600,resolution:"hours"},{period:"Last 12 hours",value:-43200,resolution:"hours"},{period:"Last day",value:-u,resolution:"days"},{period:"Last 2 days",value:-2*u,resolution:"days"},{period:"Last 7 days",value:-7*u,resolution:"days"}],v=function(e,n){let{onlyDates:t}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=t?"MMMM d yyyy":"MMMM d yyyy, H:mm:ss";return{formattedStartDate:(0,a.GP)(e,o),formattedEndDate:(0,a.GP)(n,o)}},T=(e,n)=>{const t=(0,s.u)(e,"MMMM d yyyy, H:mm")?e:(0,r.qg)(e,"MMMM d yyyy, H:mm",Date.now());return(0,r.qg)("".concat(t," ").concat((e=>{if(!e)return"+00:00";const n=e.toString().split("."),t=n[0]>0?"+":"-",o=Math.abs(n[0]).toString(),i="".concat(t).concat(o.padStart(2,0));return n.length>1?"".concat(i,":").concat(String(.6*n[1]).padEnd(2,0)):"".concat(i,":00")})(n)),"MMMM d yyyy, H:mm xxx",Date.now())},k=(e,n)=>(0,l.k)((0,c.W)(e),(0,c.W)(n))},71847:(e,n,t)=>{t.d(n,{H:()=>o});const o=function(e,n,t,o,i){var a;let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"gaCustomEvent";if(window.envSettings.tracking){if(window.dataLayer){const a={event:s,eventCategory:e,eventAction:n,eventLabel:t,eventValue:o,eventResults:i};window.dataLayer.push(a)}window.gtag&&window.gtag("event","gaCustomEvent",{eventCategory:e,eventAction:n,eventLabel:t,eventValue:o,eventResults:i}),null!==(a=window.posthog)&&void 0!==a&&a.__loaded&&window.posthog.capture(s,{eventCategory:e,eventAction:n,eventLabel:t,eventValue:o})}}},92155:(e,n,t)=>{t.d(n,{A:()=>l});var o=t(58168),i=t(96540),a=t(50876);const s=e=>(0,i.forwardRef)(((n,t)=>{let{callback:s,feature:r,isStart:l,isSuccess:c,isFailure:d,eventReason:m,payload:u={},...h}=n;const{sendLog:p,isReady:g}=(0,a.A)(),f=(0,i.useCallback)((()=>{const e=h[s],n={feature:r,isStart:l,isSuccess:c,isFailure:d,eventReason:m,...u,...h["data-ga"]?{dataGa:h["data-ga"]}:{},...h.dataGa?{dataGa:h.dataGa}:{},...h["data-track"]?{dataTrack:h["data-track"]}:{},...h.label?{label:h.label}:{}};"function"==typeof e&&e(),p(n,!0)}),[s,p,g,u,h]),y=(0,i.useMemo)((()=>({...h,[s]:f})),[h,s,f]);return i.createElement(e,(0,o.A)({ref:t},y))}));var r=t(67276);const l=e=>(0,i.forwardRef)(((n,t)=>{let{payload:a={},...l}=n;const c=s(e);return i.createElement(c,(0,o.A)({},l,{ref:t,callback:"onClick",payload:{...a,action:r.o1.buttonClicked}}))}))},93155:(e,n,t)=>{t.d(n,{Dm:()=>u,EM:()=>p,Mh:()=>d,bO:()=>m,tv:()=>h});const o="mobileAppNotifications",i="trialWarning",a="alertConfiguration",s="editAlertConfiguration",r="userCustomSettings",l=[i,a,o];function c(e){if(l.includes(e))return()=>!0;const n="true"===localStorage.getItem(e);return e=>e||n}const d=c(o)(),m=c(i)(),u=c(a)(),h=c(s)(),p=c(r)()},96083:(e,n,t)=>{t.d(n,{A:()=>l});var o=t(58168),i=t(68415),a=t(96540),s=t(20982),r=t(10058);const l=(0,a.forwardRef)(((e,n)=>{let{onClick:t,src:l,title:c="User avatar",width:d=8,height:m=8,...u}=e;return a.createElement(r.Flex,(0,o.A)({cursor:"pointer",round:"50%","data-testid":"userAvatar",title:c,alt:c,onClick:e=>t&&t(e),width:d,height:m},u,{ref:n,alignItems:"center",justifyContent:"center",background:"spaceIdle",color:"textLite",overflow:"hidden"}),l?a.createElement(r.Flex,{as:"img",src:l,alt:c,width:d,height:m}):a.createElement(s.g,{icon:i.yV,size:"lg",alt:c}))}))},5396:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(58168),i=t(96540),a=t(10058),s=t(29217);const r=e=>{let{children:n,background:t,testId:r,onClose:l,tooltipProps:c,...d}=e;const m=r||"header-banner";return i.createElement(a.Flex,(0,o.A)({background:t,"data-testid":m,height:{min:10},padding:[2,10,2,2],position:"sticky",zIndex:5},d),n,i.createElement(s.A,(0,o.A)({align:"bottom",content:"Dismiss message",isBasic:!0,plain:!0,stretch:"align"},c),l&&i.createElement(a.Box,{"data-testid":"".concat(m,"-close-button"),as:a.Icon,color:"text",cursor:"pointer",name:"x",position:"absolute",right:"8px",onClick:e=>{l&&(e.stopPropagation(),l())}})))}},76051:(e,n,t)=>{t.d(n,{Ay:()=>r,I1:()=>s});var o=t(96540),i=t(8711),a=t(10058);const s=(0,i.default)(a.Box).withConfig({displayName:"blur__BlurredBox",componentId:"sc-12emg8l-0"})(["position:absolute;top:0;bottom:0;left:0;right:0;backdrop-filter:blur(",");z-index:80;"],(e=>{let{value:n}=e;return n||"7px"})),r=e=>{let{children:n,...t}=e;return o.createElement(a.Box,{position:"relative"},n,o.createElement(s,t))}},40982:(e,n,t)=>{t.d(n,{A:()=>z});var o=t(58168),i=(t(62953),t(96540)),a=t(10058),s=t(67602),r=t(29217),l=t(15255),c=t(8711),d=t(87292),m=t(28738),u=(t(17333),t(41393),t(98992),t(54520),t(81454),t(37618)),h=t(87659),p=t(50105),g=t(3914),f=t(78862),y=t(76634),b=t(64754);const _=c.default.div.withConfig({displayName:"spaces__Separator",componentId:"sc-19p9rsp-0"})(["height:1px;width:",";background:",";"],(0,a.getSizeBy)(3),(0,a.getColor)("border")),w=e=>{let{selectedSpace:n,setSelectedSpace:t,column:s,showFullname:l,...c}=e;const d=(0,g.Pk)(),m=(0,i.useMemo)((()=>d.filter((e=>!(0,u.ES)(e)))),[d]),[w,,v,T]=(0,h.A)();return i.createElement(a.Flex,(0,o.A)({"data-testid":"workspaceBar",padding:[3,2],column:s,alignItems:"center",justifyContent:"center"},c),i.createElement(a.Flex,{column:!0,"data-testid":"workspaceBar-spaces-list",gap:4,alignItems:"center",overflow:"hidden"},i.createElement(a.Flex,{column:s,"data-testid":"workspaceBar-spacesList",gap:s?4:2,overflow:{vertical:"auto"},flexWrap:!s},m.map((e=>i.createElement(f.A,{testIdPrefix:"workspaceBar-space",key:e,spaceId:e,onClick:t,active:e===(null===n||void 0===n?void 0:n.id),background:"selected",showFullname:l})))),i.createElement(y.A,{permission:"user:CreateSpace"},i.createElement(_,{"data-testid":"workspaceBar-separator"}),i.createElement(r.A,{content:"Create a new Space",align:"right"},i.createElement(b.A,{permission:"user:CreateSpace",ifForbidden:"hide",icon:"plus",onClick:v,"data-testid":"workspaceBar-addSpace-button"})))),w&&i.createElement(p.A,{onClose:T,onDone:t}))};var v=t(79412),T=t(56915),k=t(46741),x=t(87633),P=t(14994),C=t(76999);const q=e=>{let{selectedSpace:n,selectedRoom:t,setSelectedRoom:o}=e;const s=n.id;(0,x.A)(s);const l=(0,k.JT)("room:Create",s),c=(0,k.JT)("room:Read",s),[d,,m,u]=(0,h.A)(!1),p=(0,i.useCallback)((e=>{e.stopPropagation(),l&&m()}),[l]),g=(0,P.CB)(s),f=(0,i.useMemo)((()=>g.filter((e=>{let{isMember:n}=e;return n}))),[g]);return(0,i.useEffect)((()=>{null!==f&&void 0!==f&&f.length&&(t||o(f[0]))}),[f,t]),i.createElement(i.Fragment,null,i.createElement(T.A,{"data-testid":"workspaceRooms-menuList",disabled:!c,headerTestId:"workspaceRooms-warRooms",isOpen:!0,label:i.createElement(a.Flex,{padding:[1,0],margin:[0,0,1],flex:!0,justifyContent:"between",alignItems:"center",height:"24px"},i.createElement(a.Flex,{alignItems:"center",gap:2},i.createElement(a.Icon,{name:"space_new",color:"textNoFocus",width:"14px",height:"14px"}),i.createElement(a.TextSmall,{color:"textNoFocus"},"Select a room")),i.createElement(a.Flex,{alignItems:"center",gap:2},i.createElement(r.A,{content:"Create a new room",align:"right"},i.createElement(b.A,{permission:"room:Create",tiny:!0,icon:"plus",onClick:p,"data-testid":"workspaceRooms-addWarRoom-button",spaceId:s}))))},i.createElement(a.Flex,{column:!0,"data-testid":"workspaceRooms-warRoomsList",padding:[0,0,1]},f.map((e=>{const{id:n}=e;return i.createElement(C.A,{key:n,id:n,hideAlerts:!0,Wrapper:a.TextSmall,isSidebar:!0,selectedId:null===t||void 0===t?void 0:t.id,onClick:()=>o(e)})})))),d&&i.createElement(v.n,{onClose:u,isSubmodal:!1}))};var S=t(63502),D=t(22292),A=t(71835),M=t(79731),E=t(3714),N=t(20378),H=t(78459),R=t(50876);var I=t(92155),O=t(63314);const L=(0,c.default)(a.ModalContent).attrs({width:{base:"80vw"},height:{base:"80vh",min:"80vh"}}).withConfig({displayName:"modal__ModalContent",componentId:"sc-4dwymj-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),B=(0,I.A)(a.Button),U=e=>{let{claim:n,loading:t,error:o,privateKey:s,setPrivateKey:r,selectedSpace:l,setSelectedSpace:c,selectedRoom:u,keyFilename:h}=e;return l?u?i.createElement(i.Fragment,null,i.createElement(m.m,null),i.createElement(a.H3,{textAlign:"center"},'You are ready to connect your agent in "',u.name,'" of "',l.name,'"'),i.createElement(a.Text,{textAlign:"center"},"Last step is to ensure you're the admin of this agent ;)"),i.createElement(a.TextSmall,{textAlign:"center"},"We've created a file with a random key. Can you read it?"),i.createElement(d.Ay,{"data-testid":"key-filename-command",commandText:"sudo cat ".concat(h),width:"60%"},"$ sudo cat ",h),i.createElement(a.Flex,{column:!0,round:!0,background:"successSemi",border:"primary",padding:[2],width:"60%"},i.createElement(a.TextSmall,null,i.createElement(a.TextSmall,{strong:!0},"Tip:")," Run the command and paste here the key it will give you. If the command doesn't work out of the box, locate the ",h," file, open it in your favorite text editor, and copy it to your clipboard.")),i.createElement(a.TextInput,{value:s,placeholder:"Paste private key here",onChange:e=>r(e.target.value),containerStyles:{width:"60%"}}),i.createElement(B,{label:"Claim your agent",onClick:n,disabled:!s||t,isLoading:t,"data-ga":"claiming::claim-agent::modal",payload:{space:null===l||void 0===l?void 0:l.id,room:null===u||void 0===u?void 0:u.id,privateKey:s}})):i.createElement(i.Fragment,null,i.createElement(m.m,null),i.createElement(a.H3,{textAlign:"center"},'Select a room in "',l.name,'" for this agent'),i.createElement(a.TextBig,{color:"textDescription",textAlign:"center"},"or create a new one by hitting the [+] button.")):i.createElement(i.Fragment,null,i.createElement(m.m,null),i.createElement(a.H3,{textAlign:"center"},"Let's connect your agent"),i.createElement(a.TextBig,{color:"textDescription",textAlign:"center"},"Select the space you want this agent to join"),i.createElement(a.TextBig,{color:"textDescription",textAlign:"center"},"or create a new one by hitting the [+] button."),i.createElement(w,{column:!!l,selectedSpace:l,setSelectedSpace:c,showFullname:!0,width:"80%"}))},j=e=>{let{onClose:n,keyFilename:t}=e;const{claim:o,selectedSpace:s,setSelectedSpace:r,selectedRoom:c,setSelectedRoom:d,loading:m,error:u,privateKey:h,setPrivateKey:p}=(e=>{var n;const[t,o]=(0,i.useState)(),[a,s]=(0,i.useState)(),[r,c]=(0,i.useState)(""),d=(0,S.A)(null===t||void 0===t?void 0:t.id),m=(0,g.dg)(),u=null===(n=window.localNetdataRegistry)||void 0===n?void 0:n.mg,[{claiming:h,claimingError:p},f]=(0,l.RJ)(u),y=(0,D.uW)("isAnonymous"),[b,_]=(0,A.A)(),w=(0,l.OS)(),v=(0,N.OS)(),T=(0,H.OS)(),{sendLog:k,isReady:x}=(0,R.A)();return{claim:(0,i.useCallback)((()=>{var n;r&&!h&&d&&u&&m&&!y&&a&&(f({claiming:!0}),(0,E.j)({key:r,token:null===d||void 0===d||null===(n=d[0])||void 0===n?void 0:n.token,rooms:[a.id],url:window.envSettings.apiUrl}).then((n=>{let{data:o}=n;if(!o.success)return f({claiming:!1,claimingError:o.message,claimId:null}),_({message:o.message}),void k({feature:"claim-node",isFailure:!0,message:o.message});w(),v(),T(),f({claiming:!1,...o,claimingError:""}),e(),b({header:"Your agent got connected to Netdata",text:"You can see your agent in the room ".concat(a.name," of ").concat(t.name," space.")}),k({feature:"claim-node",isSuccess:!0})})).catch((e=>{var n;const t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data,o=(0,M.o)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong";f({claiming:!1,claimingError:o,claimId:null}),_({message:o}),k({feature:"claim-node",isFailure:!0,message:o})})))}),[d,r,u,m,y,h,k,x]),selectedSpace:t,setSelectedSpace:o,selectedRoom:a,setSelectedRoom:s,loading:h,error:p,privateKey:r,setPrivateKey:c}})(n);return i.createElement(a.Modal,{zIndex:80,backdropProps:{backdropBlur:!0}},i.createElement(O.Ay,{feature:"ClaimModal"},i.createElement(a.Flex,{column:!0,alignItems:"end",gap:3},i.createElement(L,{tabIndex:0},i.createElement(a.ModalHeader,{justifyContent:"between"},i.createElement(a.Flex,{gap:2,alignItems:"center"},"Connect your agent to Netdata"),i.createElement(a.ModalCloseButton,{onClose:n,testId:"claim-modal-close-button","data-ga":"claiming::close-claim-modal::local"})),i.createElement(a.ModalBody,{overflow:{vertical:"auto"},padding:[0],height:"100%",column:!1},i.createElement(a.Collapsible,{background:"sideBar",open:!!s,direction:"horizontal"},i.createElement(w,{column:!0,selectedSpace:s,setSelectedSpace:r,background:"sideBarMini",height:"100%"})),i.createElement(a.Collapsible,{background:"sideBar",open:!!s,direction:"horizontal"},i.createElement(a.Flex,{flex:!0,width:56,column:!0,overflow:{vertical:"auto"},padding:[2,0]},!!s&&i.createElement(q,{selectedSpace:s,selectedRoom:c,setSelectedRoom:d}))),i.createElement(a.Flex,{alignItems:"center",column:!0,"data-testid":"claim-modal-body",flex:!0,gap:3,justifyContent:"center",padding:[4]},i.createElement(U,{selectedSpace:s,selectedRoom:c,setSelectedSpace:r,keyFilename:t,claim:o,loading:m,error:u,privateKey:h,setPrivateKey:p})))))))},G={unavailable:"Netdata is not available for this agent.",available:"Netdata is available. Click to claim it and gain the full benefits of Netdata!",disabled:"Netdata is available, but it is disabled, you can change the agent configuration to enable it.",banned:"The agent has been banned from cloud.",offline:"The agent tries to connect to Netdata, but it fails to do so.",online:"The agent is already connected to Netdata :)"},F=(0,I.A)(a.Button),z=e=>{const[n,,t,a]=(0,s.A)("claimModal"),[{canBeClaimed:c,cloudStatus:d,keyFilename:m}]=(0,l.RJ)();return i.createElement(i.Fragment,null,i.createElement(r.A,{plain:!0,content:G[d],isBasic:!0},i.createElement("div",null,i.createElement(F,(0,o.A)({label:"Connect to Netdata",onClick:t},e,{disabled:!c,"data-ga":"claiming::open-claim-modal::local"})))),n&&i.createElement(j,{onClose:a,keyFilename:m}))}},59778:(e,n,t)=>{t.d(n,{D:()=>o,d:()=>i});const o={Community:"nightly",default:"stable",EarlyBird:"nightly"},i={nightly:{description:"Released at most once every 24 hours with fully-tested code that fixes bugs or security flaws, or introduces new features to Netdata. Every nightly release is a candidate for then becoming a stable release.",title:"Nightly"},stable:{description:"Released when a major milestone is reached. Stable releases might be a better choice for those who run Netdata in mission-critical production systems, as updates will come more infrequently.",title:"Stable"}}},12740:(e,n,t)=>{t.d(n,{O1:()=>s,OV:()=>l,Yg:()=>r});var o=t(96540),i=t(8711),a=t(10058);const s=(0,i.default)(a.Box).attrs({border:{side:"all",color:"border"},padding:[1.75,7,1.75,3],round:!0}).withConfig({displayName:"styled__InfoBlock",componentId:"sc-1lice8m-0"})(["color:",";font-family:Courier New,monospace;font-size:14px;letter-spacing:0.09px;line-height:18px;max-height:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;"],(0,a.getColor)("textLite")),r=e=>{let{children:n}=e;return o.createElement(a.Flex,{column:!0,gap:4},n)},l=(0,i.default)(a.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-1lice8m-1"})(["&&{width:auto;min-width:auto;height:22px;background:",";border:1px solid ",";border-radius:4px;padding:0;&:hover{background:",";& > span{span{color:",";}svg{fill:",";}}}& > span{display:flex;align-items:center;gap:6px;margin:2px 8px 2px 4px;span{color:",";}svg{fill:",";}}}"],(e=>{let{active:n,theme:t}=e;return(0,a.getColor)(n?"primary":"modalBackground")({theme:t})}),(0,a.getColor)("primary"),(0,a.getColor)("primary"),(0,a.getColor)("modalBackground"),(0,a.getColor)("modalBackground"),(e=>{let{active:n,theme:t}=e;return(0,a.getColor)(n?"modalBackground":"primary")({theme:t})}),(e=>{let{active:n,theme:t}=e;return(0,a.getColor)(n?"modalBackground":"primary")({theme:t})}))},18682:(e,n,t)=>{t.d(n,{C:()=>s});var o=t(33436),i=t(78217),a=t(13871);const s=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return()=>{(0,o.A)(e);const t=(0,a.UI)({header:"Copied",text:"Command copied to your clipboard! Please run it on your node's terminal.",icon:"gear",...n,success:!0});i.A.success(t,{context:"copy"})}}},87292:(e,n,t)=>{t.d(n,{Ay:()=>m,R0:()=>d});var o=t(96540),i=t(8711),a=t(10058),s=t(18682);const r=(0,i.default)(a.Box).attrs((e=>({color:"textDescription",background:"modalTabsBackground",border:{side:"all",color:"borderSecondary"},padding:[4,10,4,4],position:"relative",width:"100%",...e}))).withConfig({displayName:"command__StyledTerminalCommand",componentId:"sc-wnwmk3-0"})(["color:",";border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;font-family:Courier New,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;"],(0,a.getColor)("textDescription")),l=(0,i.default)(a.Icon).withConfig({displayName:"command__StyledIcon",componentId:"sc-wnwmk3-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),c=(0,i.default)(a.Box).attrs({color:"textDescription",border:{side:"all",color:"borderSecondary"},background:"modalTabsBackground",padding:[0,1]}).withConfig({displayName:"command__CodeText",componentId:"sc-wnwmk3-2"})(["display:inline-block;color:",";border-radius:2px;font-family:Courier New,monospace;letter-spacing:0.09px;line-height:16px;font-size:12px;font-weight:bold;word-break:break-word;"],(0,a.getColor)("textDescription")),d=e=>{let{children:n,...t}=e;return o.createElement(c,t,n)},m=e=>{let{children:n,confirmationText:t="Command copied to your clipboard.",commandText:i=n,...c}=e;return o.createElement(r,c,n,o.createElement(a.Box,{position:"absolute",bottom:"8px",right:"8px"},o.createElement(l,{name:"copy",size:"small",color:"primary",onClick:(0,s.C)(i||n,{text:t})})))}},94944:(e,n,t)=>{t.d(n,{A:()=>s});t(9920),t(98992),t(3949),t(62953);var o=t(96540),i=t(22332),a=t(27467);const s=()=>{const e=(0,i.useChart)(),[{after:n,before:t,forcePlay:s},r]=(0,a.N9)(),l=function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{autofetchOnWindowBlur:!1};return()=>{e.getNodes().forEach((e=>e.updateAttributes(o)));const i=n<0?n:-Math.floor((t-n)/1e3);r({after:i,before:0,forcePlay:!!o.autofetchOnWindowBlur})}};return{play:(0,o.useCallback)(l(),[t,n,s]),forcePlay:(0,o.useCallback)(l({autofetchOnWindowBlur:!0}),[t,n,s]),pause:(0,o.useCallback)((()=>{if(n>0)return;const e=Date.now();r({after:1e3*Math.floor(e/1e3+n),before:1e3*Math.floor(e/1e3),forcePlay:!1})}),[n,t,s])}}},80940:(e,n,t)=>{t.d(n,{A:()=>l});var o=t(58168),i=t(8711),a=t(96540),s=t(10058);const r=(0,i.default)(s.Flex).withConfig({displayName:"item__StyledFlex",componentId:"sc-1gby0f1-0"})(["&:hover{background:",";}"],(e=>{let{hasHoverBackground:n,theme:t,hoverBackground:o="borderSecondary"}=e;return n?(0,s.getColor)(o)({theme:t}):null})),l=(0,a.forwardRef)(((e,n)=>{let{background:t,children:i,cursor:l,hasBorder:c,hasHoverBackground:d,onClick:m,padding:u,testId:h,borderColor:p="selected",round:g,hoverBackground:f,...y}=e;return a.createElement(s.Flex,(0,o.A)({alignItems:"center",border:c&&{side:"right",color:p},cursor:l,"data-testid":h,onClick:m,ref:n},y),a.createElement(r,{round:g,alignItems:"center",background:t,hasHoverBackground:d,margin:c?[0,3,0,0]:void 0,padding:u,hoverBackground:f},i))}))},82230:(e,n,t)=>{t.d(n,{A:()=>s});var o=t(10058),i=t(96540);const a="node-status-indicator",s=e=>{let{statusText:n,selected:t,total:s,statusColor:r,isScreenSmall:l}=e;const{statusTextColor:c,indicatorWrapperColor:d,counterColor:m}=r;return i.createElement(o.Flex,{alignItems:"center",gap:2},!l&&i.createElement(o.TextSmall,{"data-testid":"".concat(a,"-text-").concat(n),color:c},n),i.createElement(o.Flex,{justifyContent:"center",alignItems:"center",padding:[0,1],width:{min:7.5},height:5,background:d,round:!0,gap:l?.2:1},t===s?i.createElement(o.TextSmall,{"data-testid":"".concat(a,"-total-").concat(n),color:m},s):i.createElement(i.Fragment,null,i.createElement(o.TextSmall,{strong:!0,"data-testid":"".concat(a,"-selected-").concat(n),color:m},t),i.createElement(o.TextSmall,{color:m},l?"/":"of"),i.createElement(o.TextSmall,{"data-testid":"".concat(a,"-total-").concat(n),color:m},s))))}},24398:(e,n,t)=>{t.d(n,{P:()=>o});const o={live:{statusTextColor:"live",indicatorWrapperColor:"live",counterColor:"bright"},stale:{statusTextColor:"stale",indicatorWrapperColor:"stale",counterColor:"bright"},offline:{statusTextColor:"textLite",indicatorWrapperColor:"offline",counterColor:"bright"},unseen:{statusTextColor:"unseen",indicatorWrapperColor:"unseen",counterColor:"bright"}}},11261:(e,n,t)=>{t.d(n,{A:()=>m,q:()=>d});t(41393),t(81454);var o=t(96540),i=t(8711),a=t(10058),s=t(82230),r=t(24398);const l=(0,i.default)(a.Flex).withConfig({displayName:"wrapper__NodesIndicatorWrapper",componentId:"sc-gy5ftg-0"})(["pointer-events:",";cursor:",";opacity:",";"],(e=>{let{disabled:n}=e;return n?"none":"auto"}),(e=>{let{disabled:n}=e;return n?"default":"pointer"}),(e=>{let{disabled:n}=e;return n?"0.7":"1"})),c={live:{counter:0,statusText:"Live"},stale:{counter:0,statusText:"Stale"},offline:{counter:0,statusText:"Offline"},unseen:{counter:0,statusText:"Unseen"}},d=e=>o.createElement(l,e,Object.keys(c).map((e=>o.createElement(s.A,{key:e,statusText:c[e].statusText,counter:c[e].counter,statusColor:r.P[e]})))),m=l},68741:(e,n,t)=>{t.d(n,{A:()=>c});var o=t(58168),i=t(96540),a=t(10058),s=t(22292),r=t(14550);const l=(0,t(92155).A)(a.Button),c=e=>{const n=(0,s.uW)("isAnonymous"),t=(0,r.A)();return n?i.createElement(l,(0,o.A)({label:"Sign In",isStart:!0,onClick:t,"data-ga":"click-sign-in::header",feature:"SignIn"},e)):null}},47431:(e,n,t)=>{t.d(n,{A:()=>p});var o=t(58168),i=(t(62953),t(96540)),a=t(10058),s=t(22292),r=t(46741),l=t(29217),c=t(92155),d=t(19673),m=t(42728),u=t(28061);const h=(0,c.A)(a.Button),p=e=>{let{tooltipProps:n={},...t}=e;const a=(0,s.uW)("isAnonymous"),{value:c}=(0,d.JN)(),{slug:p}=c||{},g=(0,m.Kj)(p),f=(0,r.JT)("billing:Manage"),y=(0,u.A)(),[b,_]=(0,i.useState)();return(0,i.useEffect)((()=>{_(!a&&g&&f)}),[a,g,f]),b?i.createElement(l.A,(0,o.A)({plain:!0,content:"Upgrade to business plan and experience the full power of Netdata!",isBasic:!0},n),i.createElement("div",null,i.createElement(h,(0,o.A)({label:"Upgrade Now!",isStart:!0,onClick:y,feature:"UpgradeToBusiness","data-testid":"upgradeToBusiness-header"},t)))):null}},95598:(e,n,t)=>{t.r(n),t.d(n,{default:()=>an});t(62953);var o=t(96540),i=t(39225),a=t(10058),s=t(22292),r=(t(9920),t(98992),t(3949),t(83957)),l=t(47444),c=t(7484),d=t(3914),m=t(46741);var u=t(90709),h=t(28738),p=t(87659),g=t(12938),f=t(45123),y=t(56915),b=t(69765),_=t(8711);const w=(0,_.default)(a.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[2,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1,width:64}).withConfig({displayName:"styled__Dropdown",componentId:"sc-1vwntsm-0"})([""]),v=(0,_.default)(a.H6).attrs({color:"text",padding:[2,4]}).withConfig({displayName:"styled__OtherRoomsHeader",componentId:"sc-1vwntsm-1"})([""]);var T=t(29217),k=t(80940),x=t(37944),P=t(64754),C=t(47731);const q=()=>{const e=(0,C.J)(),[n,t,,i]=(0,p.A)(),s=(0,o.useRef)(),r=(0,b.XA)(),{slug:l}=r,c=(0,d.ap)("name"),u=(0,x.A)({roomSlug:l}),h=(0,m.JT)("room:Read"),_=(0,d.dg)();return o.createElement(o.Fragment,null,o.createElement(a.Flex,{alignItems:"center",gap:1,"data-testid":"header-roomOptions"},o.createElement(f.A,{ref:s,testid:"roomDropdownMenu-roomOptions",icon:"space_new",onClick:t,padding:[2],round:1,width:"auto",disabled:!h||_,selected:n},!e&&r.name&&o.createElement(a.Flex,{alignItems:"center",gap:4},o.createElement(a.Text,null,r.name),o.createElement(a.Icon,{name:"chevron_down",size:"small",color:"text"}))),o.createElement(k.A,{borderColor:"borderSecondary",hasHoverBackground:!0},o.createElement(T.A,{align:"bottom",content:"Room settings"},o.createElement(P.A,{Component:a.IconButton,permission:"room:Leave","data-ga":"header::click-war-room-settings::global-view","data-testid":"header-manageWarRoom",onClick:u,icon:"gear"})))),s.current&&n&&o.createElement(w,{target:s.current,onEsc:i,onClickOutside:i},o.createElement(y.A,{isOpen:!0,label:"ROOMS IN ".concat(c.toUpperCase()),headerTestId:"roomDropdownMenu-otherRooms",Header:v},o.createElement(a.Flex,{onClick:i,column:!0,height:{max:100},overflow:{vertical:"auto"}},o.createElement(g.A,null)))))};var S=t(47762),D=t(49389);const A=e=>{let{description:n,title:t,testId:i,children:s}=e;return o.createElement(a.Flex,{"data-testid":i,column:!0,gap:2},o.createElement(a.H4,{color:"textDescription"},t),o.createElement(a.Flex,{column:!0,"data-testid":i,gap:2},o.createElement(a.Text,{color:"textDescription"},n),s))},M=e=>{let{children:n,testId:t,icon:i="nodes_update"}=e;return o.createElement(a.Flex,{"data-testid":t,padding:[6],round:1,width:"100%",background:"modalInfoBackground",gap:2},o.createElement(a.Box,{as:a.Icon,width:10,height:10,name:i}),n)},E=e=>{let{title:n,desciription:t}=e;return o.createElement(a.Flex,{column:!0,gap:3},o.createElement(a.Flex,{alignItems:"center",gap:2},o.createElement(a.Icon,{color:"main",name:"warning_triangle_hollow"}),o.createElement(a.H3,null,n)),o.createElement(a.Box,null,t))};var N=t(4659),H=t(47767),R=(t(8159),t(37550),t(33931)),I=t(82432),O=t(81881),L=t(55905);const B=[{id:"name",accessor:"name",header:"Name",cell:e=>{let{getValue:n,row:t}=e;return o.createElement(N.A,{disabled:!t.original.isLive&&"stale"!==t.original.state,color:"text",hoverColor:"primary",visitedColor:"accent",Component:a.TextSmall},n())},minSize:60},{id:"version",accessor:"version",header:"Version",cell:e=>{let{getValue:n}=e;return o.createElement(a.Pill,{color:"neutralPillColor",flavour:"neutral"},n())}},{id:"state",accessor:"state",header:"Status",cell:e=>{let{getValue:n}=e;return o.createElement(R.A,{state:n()})},sortingFn:(e,n)=>{return t=(0,I.GM)(e.original.state),o=(0,I.GM)(n.original.state),t===o?0:t>o?1:-1;var t,o},enableColumnFilter:!0,filterFn:(e,n,t)=>{const o=e.original;return t.length<1||t.some((e=>{let{value:n}=e;return"all"===n||n===(0,I.GM)(o.state)}))},meta:{tooltip:o.createElement(O.A,null),filter:{component:"select",isMulti:!0,options:[{value:"Offline",label:"Offline"},{value:"Live",label:"Live"},{value:"Stale",label:"Stale"}]}}},{id:"updateSeverity",accessor:"updateSeverity",header:"Severity",cell:e=>{let{getValue:n,row:t}=e;const i=t.original;return o.createElement(L.A,{name:i.name,os:i.os.id,container:i.hw.container,warningLevel:i.updateSeverity,labels:i.labels||{},version:i.version,text:n()})}}],U=(0,l.eU)({key:"notificationModal",default:!1}),j=function(){let{resetOnUnmount:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,l.E0)(U),[t,i]=(0,l.L4)(U),a=(0,o.useCallback)((()=>i(!0)),[]),s=(0,o.useCallback)((()=>i(!1)),[]);return(0,o.useEffect)((()=>()=>{e&&n()}),[]),{isModalVisible:t,openModal:a,closeModal:s,resetState:n}},G=[{id:"updateSeverity",desc:!1}],F=()=>{const{closeModal:e}=j(),n=(0,o.useMemo)((()=>({goto:{handleAction:e=>{const{_install_type:n=null}=(null===e||void 0===e?void 0:e.labels)||{},{hw:{container:t},os:{id:o},version:i}=e,a=(0,D.fe)({container:t,os:o,_install_type:n,version:i});window.open(a,"_blank","noopener,noreferrer")},tooltipText:"Go to documentation"}})),[]),t=(0,H.Zp)(),i=(0,S.Ux)();return{onClickRow:(0,o.useCallback)((n=>{let{data:o}=n;if(!o.isLive&&"stale"!==o.state)return;const a=i(o.id);t(a),e()}),[]),sortBy:G,rowActions:n,columns:B,disableClickRow:e=>{let{data:n}=e;return!n.isLive&&"stale"!==n.state}}};var z=t(60383);const Y={updateSeverity:!0,connectionToCloud:!1},X=e=>{let{data:n}=e;const{rowActions:t,onClickRow:i,disableClickRow:a,sortBy:s}=F();return o.createElement(z.A,{"data-testid":"nodesTable-layout",customSortBy:s,customNodes:n,showdDefaultRowActions:!1,showDefaultBulkActions:!1,columnVisibility:Y,customRowActions:t,enableSelection:!1,onClickRow:i,disableClickRow:a})},W=e=>{let{onClose:n}=e;const t=(0,S.Gn)(),i=(0,S.Gt)(t),s=t.length,r="Need update (".concat(t.length," ").concat((0,D.su)(t.length),")");return o.createElement(a.Modal,{backdropProps:{backdropBlur:!0}},o.createElement(a.ModalContent,{width:{min:200,base:270},height:200},o.createElement(a.ModalHeader,null,o.createElement(E,{title:"Nodes that need Attention",desciription:o.createElement(a.Text,null,"You have ",o.createElement(a.Text,{strong:!0},s)," ",(0,D.su)(s)," that should be upgraded to ensure experience using Netdata")}),o.createElement(a.ModalCloseButton,{onClose:n,testId:"close-button"})),o.createElement(a.ModalBody,{overflow:"hidden"},o.createElement(M,null,o.createElement(A,{title:r},o.createElement(a.Text,null,o.createElement(a.Flex,{column:!0},o.createElement(a.Text,null,"Please upgrade to ensure you get the latest security and bug fixes.")," ",o.createElement(a.Box,null,"To update your nodes to the latest version"," ",o.createElement(N.A,{href:D.sH.default,rel:"noopener noreferrer",strong:!0,target:"_blank"},"please read our documentation"," "),"and find direct links for each node depending on where it is running and/or how it was installed."))))),o.createElement(X,{data:i}))))};var K=t(45467),$=t(57605),V=t(51112),Z=t(22332),J=t(99851),Q=t(27467);const ee=e=>{let{tagging:n,isPlaying:t}=e;const i=(0,C.J)(),[{offset:a,after:s,before:r},l]=(0,Q.N9)(),c=(0,o.useCallback)((e=>{let{start:n=-900,end:t=0}=e;l({after:n,before:n<0?0:t})}),[]),d=(0,o.useMemo)((()=>({start:s<0?s:Math.floor(s),end:s<0?0:Math.ceil(r)})),[s,r]);return o.createElement(J.A,{values:d,utc:a,onChange:c,tagging:n,isPlaying:t,isSmall:i})},ne=(0,_.default)(a.Flex).withConfig({displayName:"container__Container",componentId:"sc-qc13l0-0"})(["background:",";"],(e=>{let{theme:n,isPlaying:t}=e;const{name:o}=n;return("Dark"===o?(0,a.getRgbColor)(t?["green","green40"]:["neutral","grey70"]):(0,a.getRgbColor)(t?["green","green190"]:["neutral","grey185"]))({theme:n})}));var te=t(94944);const oe=(0,_.default)(T.A).withConfig({displayName:"playPausePill__StyledTooltip",componentId:"sc-1umryvu-0"})(["pointer-events:",";"],(e=>{let{isDisabled:n}=e;return n?"none":"auto"})),ie=e=>{let{isPlaying:n,isForcePlaying:t,isDisabled:i}=e;const s=(0,C.J)(),{play:r,pause:l}=(0,te.A)(),c=(0,o.useMemo)((()=>((e,n)=>e?n?"forcePlay":"playSolid":"pauseSolid")(n,t)),[n,t]);return o.createElement(oe,{content:n?"Click to pause":"Click to play",align:"bottom",isDisabled:i},o.createElement(a.Box,{as:a.Pill,icon:c,onClick:n?l:r,isPlaying:n,"data-testid":"playPause-button",flavour:n?"success":"neutral",_hover:{background:n?"accent":"neutralPillColor"}},s?null:n?"Playing":"Paused"))},ae=(0,_.default)(a.Flex).attrs({padding:[1],role:"button"}).withConfig({displayName:"styled__MenuButton",componentId:"sc-3h0zgs-0"})(["cursor:pointer;"]),se=(0,_.default)(a.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,backdrop:!0,column:!0,padding:[2,0],background:"dropdown",round:1,overflow:{vertical:"auto"},margin:[.5,0,0],width:40}).withConfig({displayName:"styled__Dropdown",componentId:"sc-3h0zgs-1"})([""]),re=(0,_.default)(T.A).withConfig({displayName:"styled__StyledTooltip",componentId:"sc-3h0zgs-2"})(["pointer-events:",";"],(e=>{let{isDisabled:n}=e;return n?"none":"auto"})),le=e=>{let{target:n,isDisabled:t}=e;const[i,s,,r]=(0,p.A)(),{play:l,pause:c,forcePlay:d}=(0,te.A)();return o.createElement(o.Fragment,null,i?o.createElement(ae,{onClick:s,width:"auto","data-testid":"playOptions-picker"},o.createElement(a.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"})):o.createElement(re,{content:"Play to refresh and have live content, pause to see historical, or force play to keep refreshing even when the tab loses focus at the expense of some system performance.",align:{bottom:"bottom",right:"right"},isDisabled:t,plain:!0},o.createElement(ae,{onClick:s,width:"auto","data-testid":"playOptions-picker"},o.createElement(a.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"}))),n.current&&i&&!t&&o.createElement(se,{target:n.current,onEsc:r,onClickOutside:r},o.createElement(f.A,{icon:"playOutline",onClick:()=>{l(),r()},testid:"playOptions-play"},"Play"),o.createElement(f.A,{icon:"pauseOutline",onClick:()=>{c(),r()},testid:"playOptions-pause"},"Pause"),o.createElement(f.A,{icon:"forcePlayOutline",onClick:()=>{d(),r()},testid:"playOptions-forcePlay"},"Force Play")))},ce=(0,o.memo)(le),de=()=>{const e=(0,C.J)(),n=(0,V.yD)(),t=(0,V.mQ)(),i=(0,V.A_)(),a=(0,o.useRef)(),s=(0,V.gC)(),r=(0,Z.useAttributeValue)("autofetchOnWindowBlur"),l=(0,$.A)();return(0,K.A)((()=>{l(!!n||!!t)}),[n,t]),o.createElement(k.A,{hasBorder:!0,borderColor:"border",testId:"global-controls"},o.createElement(ne,{isPlaying:s,padding:e?[1]:[1,2],round:!0,height:"100%",alignItems:"center",gap:e?.2:1,isDisabled:n,ref:a},o.createElement(ie,{isPlaying:s,isForcePlaying:r,isDisabled:n||t}),o.createElement(ce,{target:a,isDisabled:n||t}),!i&&o.createElement(ee,{isPlaying:s,tagging:"global-view"})))};var me=t(67990),ue=t(37618);const he=e=>{let{toggle:n,upToDate:t,hasBorder:i}=e;return o.createElement(k.A,{borderColor:"borderSecondary",hasHoverBackground:!0,hasBorder:i,"data-testid":"cloud-app-news"},o.createElement(T.A,{content:"News & Announcements",align:"bottom"},o.createElement(a.IconButton,{icon:"insights",iconColor:t?"text":"attention",onClick:n,"data-ga":"news::click-news::global-view",neutral:t})))},pe=()=>{const e=(0,me.CK)().length>0;return o.createElement(a.News,{app:ue.Ay?(0,ue.I)()?"agent":["cloud","agent"]:"cloud"},(n=>{let{toggle:t,upToDate:i}=n;return o.createElement(he,{toggle:t,upToDate:i,hasBorder:!e})}))};var ge=t(11261),fe=(t(93514),t(14905),t(8872),t(5396)),ye=t(78969),be=t(65566),_e=t(75542);const we={warning:{background:"warningBackground",isDismissable:!0,icon:"warning_triangle_hollow",iconColor:"warning"},critical:{background:"errorBackground",isDismissable:!0,icon:"warning_triangle_hollow",iconColor:"error"}},ve=e=>{let{iconColor:n,icon:t,warningLevel:i,numberOfNodesWithCriticalSeverity:s,onClickUpdate:r}=e;return o.createElement(a.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},o.createElement(a.Icon,{"data-testid":"icon-banner-agent-outdated-".concat(i),color:n,name:t})," ",o.createElement(a.Text,{"data-testid":"text-agent-outdated-".concat(i),color:"main"},s," ",(0,D.su)(s)," ",s>1?"are":"is"," below recommend agent version"," ",ye.Qy,"."," ",o.createElement(a.Box,{"data-testid":"open-add-node",onClick:r,as:a.Text,cursor:"pointer",textDecoration:"underline",color:"main"},"Please update them")," ","to ensure you get the latest security bug fixes."))},Te=e=>{let{warningLevel:n,numberOfNodesWithCriticalSeverity:t,onClose:i,onClickUpdate:a}=e;const{background:s,isDismissable:r,icon:l,iconColor:c}=we[n],m=(()=>{const{id:e}=(0,_e.A)(),n=(0,d.vt)(),t=(0,S.Gn)(),i=(0,S.Gt)(t),a=Object.entries(i.reduce(((e,n)=>{let{version:t}=n;return{...e,[t]:(e[t]||0)+1}}),{})).flat().join("_");return(0,o.useCallback)((()=>"dismissed-agent-version-manager-banner-".concat(e,"-").concat(n,"-").concat(a)),[e,n,a])})(),{dismissed:u,onClose:h}=(0,be.A)({getLocalStorageKey:m,logKey:"AgentVersionManagerDissmiss"}),p=(0,o.useCallback)((()=>{h(),i&&i()}),[h]);return u?null:o.createElement(fe.A,{background:s,onClose:r?p:null},o.createElement(ve,{iconColor:c,icon:l,warningLevel:n,numberOfNodesWithCriticalSeverity:t,onClickUpdate:a}))},ke=()=>{const{openModal:e}=j(),n=(0,S.Gn)({severity:"critical"}).length;return n?o.createElement(Te,{numberOfNodesWithCriticalSeverity:n,warningLevel:"critical",onClickUpdate:e}):o.createElement(o.Fragment,null)},xe=e=>{let{onOpenModalClick:n}=e;const t=(0,S.Gn)({severity:"critical"}).length,i=(0,S.Gn)().length;return i?o.createElement(k.A,{borderColor:"borderSecondary",cursor:"pointer",testId:"update-netdata-version-menu-item",hasBorder:!1,padding:[2,0]},o.createElement(a.Pill,{"data-testid":"update-netdata-version-badge",flavour:t?"error":"warning",icon:"warning_triangle_hollow",hollow:!0,onClick:n},i)):null};var Pe=t(15255),Ce=t(40982),qe=t(68741),Se=t(47431);const De={offline:{icon:"switch_off",color:"attention",text:"Offline"},online:{icon:"checkmark_s",color:"primary",text:"Online"}},Ae=()=>{const e=(0,d.dg)(),n=(0,s.uW)("isAnonymous"),[{canBeClaimed:t,cloudStatus:i}]=(0,Pe.RJ)();if(n)return o.createElement(qe.A,null);if(!e)return o.createElement(Se.A,null);if(De[i]){const{icon:e,color:n,text:t}=De[i];return o.createElement(a.Flex,{alignItems:"center",gap:1},o.createElement(a.Icon,{name:e,color:n,width:"14px",height:"14px"}),o.createElement(a.TextSmall,{color:n},t))}return t?o.createElement(Ce.A,null):null},Me=(0,i.A)((()=>Promise.all([t.e(7144),t.e(7857),t.e(9473),t.e(9297),t.e(8507)]).then(t.bind(t,62727))),"NodesIndicator"),Ee=()=>{const e=(0,C.J)(),{isModalVisible:n,closeModal:t,openModal:i}=j();return o.createElement(o.Fragment,null,o.createElement(ke,null),o.createElement(a.Flex,{as:"header","data-testid":"header",padding:e?[1]:[2],justifyContent:"between",alignItems:"center",height:12,position:"sticky",background:"topBarBg",zIndex:5,overflow:{horizontal:"auto"}},n&&o.createElement(W,{onClose:t}),o.createElement(q,null),o.createElement(a.Flex,{alignItems:"center","data-testid":"header-features",gap:e?1:3},!window.envSettings.onprem&&o.createElement(pe,null),o.createElement(de,null),o.createElement(o.Suspense,{fallback:o.createElement(ge.q,{disabled:!0})},o.createElement(Me,null)),o.createElement(Ae,{margin:[0,1,0,0],padding:[2,4]}),o.createElement(xe,{onOpenModalClick:i}))))};var Ne=t(74293);const He=(0,_.default)(a.Flex).withConfig({displayName:"layout__UserControlContainer",componentId:"sc-18en99b-0"})(["bottom:0;left:0;"]),Re=e=>{let{children:n}=e;return o.createElement(a.Flex,{width:"100vw",height:"100vh",column:!0,justifyContent:"center",alignItems:"center",background:"mainBackground",position:"relative"},n,o.createElement(He,{position:"absolute",padding:[4]},o.createElement(Ne.A,null)))},Ie=(0,_.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),Oe=(0,_.default)(a.Icon).withConfig({displayName:"loading__StyledIcon",componentId:"sc-11p1wp-0"})(["width:208px;height:177px;animation:"," 1.6s ease-in infinite;"],Ie),Le=()=>o.createElement(o.Fragment,null,o.createElement(Oe,{name:"netdata",color:"primary",title:"Loading","data-testid":"spaceCreationLoading-logo"}),o.createElement(a.H3,{color:"text",margin:[1,0,0]},"We are attempting to create your space but the system is currently busy."),o.createElement(a.Text,{color:"text",margin:[4.5,0,0]},"Thank you for your patience!"));var Be=t(72641);const Ue=()=>{const e=(0,s.NJ)(),n=(0,s.uW)("email"),[t,i]=(0,o.useState)(!1),r=(0,o.useCallback)((()=>i(!1)),[]),l=(0,Be.A)({onSuccess:r,onError:r,isDefault:!0}),c=(0,o.useCallback)((()=>{i(!0),l({userId:e,email:n})}),[e,n]);return o.createElement(a.Flex,{column:!0,gap:6,alignItems:"center"},o.createElement(a.Flex,{column:!0,gap:2,alignItems:"center"},o.createElement(a.H3,{color:"text"},"There was a problem with automatically creating your space"),o.createElement(a.Text,{color:"text"},"Please try again below")),o.createElement(a.Button,{label:"Continue",isLoading:t,onClick:c}))},je=()=>{const[e,n]=(0,o.useState)(!0);return(0,o.useEffect)((()=>{const e=setTimeout((()=>n(!1)),1e4);return()=>clearTimeout(e)}),[]),o.createElement(Re,null,e?o.createElement(Le,null):o.createElement(Ue,null))};var Ge=t(43529);const Fe=()=>o.createElement(a.Flex,{background:"sideBarMini","data-testid":"workspaceBar",padding:[3,2],column:!0,alignItems:"center",gap:6,height:"100vh",justifyContent:"between"},o.createElement(Ge.A,{"data-testid":"workspaceBar-netdataLogo"}));var ze=t(69418),Ye=t(29848);const Xe=(0,i.A)((()=>Promise.all([t.e(1875),t.e(934)]).then(t.bind(t,60934))),"AlertConfigurationManagement"),We=(0,i.A)((()=>t.e(7436).then(t.bind(t,57436)).then((e=>({default:e.TrialWarning})))),"TrialWarning"),Ke=(0,i.A)((()=>Promise.all([t.e(3584),t.e(8505)]).then(t.bind(t,8505))),"OnPremWarning"),$e=(0,i.A)((()=>t.e(5426).then(t.bind(t,45426))),"AgentNotSecure"),Ve=(0,i.A)((()=>t.e(4680).then(t.bind(t,84680))),"SpaceSidebar"),Ze=(0,i.A)((()=>Promise.all([t.e(6323),t.e(5700)]).then(t.bind(t,95700))),"Modals"),Je=(0,i.A)((()=>t.e(5246).then(t.bind(t,75246))),"AcceptTermsDialog"),Qe=(0,i.A)((()=>Promise.all([t.e(7144),t.e(7857),t.e(3296),t.e(1220),t.e(3731),t.e(9473),t.e(9297),t.e(1875),t.e(7410),t.e(966)]).then(t.bind(t,25193))),"SpacePages"),en=(0,i.A)((()=>t.e(4034).then(t.bind(t,24034))),"DndContext"),nn=(0,i.A)((()=>t.e(1782).then(t.bind(t,1782))),"AgentBanner"),tn=(0,i.A)((()=>Promise.all([t.e(7410),t.e(1726)]).then(t.bind(t,11726))),"DynamicConfigurationModal"),on=(0,o.memo)((()=>{const{isIntegrationsPath:e}=(0,ze.Q)(),n=(0,Ye.Hs)();return o.createElement(en,null,o.createElement(a.Flex,{overflow:"hidden",height:"100vh",width:"100vw"},o.createElement(o.Suspense,{fallback:o.createElement(Fe,null)},o.createElement(Ve,null)),o.createElement(a.Flex,{column:!0,position:"relative",overflow:"hidden",flex:!0},o.createElement(o.Suspense,{fallback:""},o.createElement(We,null),o.createElement(nn,null)),!n&&!e&&o.createElement(Ee,null),o.createElement(a.Flex,{column:!0,as:"main",background:"mainBackground",flex:!0,basis:"100%",height:"100%",overflow:"hidden"},o.createElement(o.Suspense,{fallback:o.createElement(h.A,{title:"Loading your space..."})},o.createElement(Qe,null))),o.createElement(o.Suspense,{fallback:""},o.createElement(Ke,null),o.createElement($e,null))),o.createElement(o.Suspense,{fallback:""},o.createElement(Ze,null),o.createElement(Je,null)),o.createElement(Xe,null),o.createElement(tn,null)))})),an=e=>{let{isUserLoaded:n}=e;!function(){let{isUserLoaded:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,l.Zs)((e=>{let{set:n}=e;return e=>{let{results:t}=e;n((0,d.Jn)(),t),t.forEach((e=>{let{id:t,permissions:o}=e;n((0,m.Dk)(t),o)}))}}),[]);(0,r.A)((()=>({key:"spaces",cache:!1,autorun:!!e,fetch:c.EL,association:{getIds:()=>(0,d.nC)("ids"),getError:()=>(0,d.nC)("error"),getLoaded:()=>(0,d.nC)("loaded"),getUpdatedAt:()=>(0,d.nC)("updatedAt")},getResource:e=>(0,d.U2)({id:e}),onReceive:n,pollingOptions:{pollingInterval:412e3}})),[!!e])}({isUserLoaded:n}),(0,u.A)();const t=(0,d.Pk)(),i=(0,d.UV)("loaded"),a=(0,d.UV)("error"),p=(0,s.uW)("isAnonymous");if(!n||!a&&!p&&!i)return o.createElement(h.A,{title:"Loading your space..."});const g=t.length;if(a&&!g)throw a;return ue.Ay||p||g?o.createElement(on,null):o.createElement(je,null)}},43529:(e,n,t)=>{t.d(n,{A:()=>s});var o=t(58168),i=t(96540),a=t(10058);const s=e=>i.createElement(a.Icon,(0,o.A)({name:"netdataPress",color:"success",height:"32px",width:"32px"},e))},36091:(e,n,t)=>{t.d(n,{A:()=>d});var o=t(58168),i=t(96540),a=t(13083),s=t(10058);const r=()=>i.createElement(s.Text,null,"Something went wrong during document parsing"),l=e=>n=>{let{transformConfiguration:t={},validationConfig:s={},validate:l,errorComponent:c,children:d,...m}=n;const{tree:u,errors:h}=(e=>{let{markdocContent:n,validate:t,validationConfig:o,transformConfiguration:s}=e;return(0,i.useMemo)((()=>{const e=a.Ay.parse("string"===typeof n?n:"");let i=[];return t&&(i=a.Ay.validate(e,o)),{tree:i.length?null:a.Ay.transform(e,s),errors:i}}),[n,t,o,s])})({markdocContent:d,validate:l,validationConfig:s,transformConfiguration:t}),p=c&&"function"==typeof c?c:r;return h.length?i.createElement(p,{errors:h}):i.createElement(e,(0,o.A)({tree:u},m))},c=(0,i.memo)(l((e=>{let{tree:n,renderConfiguration:t}=e;return a.Ay.renderers.react(n,i,t)}))),d=(l((e=>{let{tree:n}=e;return a.Ay.renderers.html(n)})),c)},45123:(e,n,t)=>{t.d(n,{A:()=>u,G:()=>c});var o=t(58168),i=t(96540),a=t(8711),s=t(10058),r=t(47767);const l=e=>e?"selected":"modalBackground",c=(0,a.default)(s.Flex).withConfig({displayName:"item__PanelRowContainer",componentId:"sc-lf007z-0"})(["cursor:pointer;&:hover{background:",";}",""],(e=>(0,s.getColor)(l(e.isSidebar))(e)),(e=>e.selected&&"background: ".concat((0,s.getColor)(l(e.isSidebar))(e),";"))),d=(0,a.default)(s.Icon).withConfig({displayName:"item__StyledIcon",componentId:"sc-lf007z-1"})(["flex:0 0 auto;"]),m=(0,a.default)(s.IconComponents.LoaderIcon).withConfig({displayName:"item__StyledLoaderIcon",componentId:"sc-lf007z-2"})(["flex:0 0 auto;height:16px;width:16px;"]),u=(0,i.forwardRef)(((e,n)=>{let{disabled:t,children:a,Wrapper:l=s.Text,textProps:u,to:h="",onClick:p,testid:g,icon:f,iconHeight:y="16px",iconWidth:b="16px",iconColor:_="menuItem",textColor:w="menuItem",padding:v=[2,4],margin:T=[0],round:k=0,gap:x=3,actions:P,selected:C,loading:q,width:S="100%",isSidebar:D=!1,isSecondary:A,...M}=e;const E=(0,r.Zp)(),N=(0,i.useCallback)((()=>{t||(p&&p(),h&&E(h))}),[p,t,h]),H=M["data-ga"]||"";return i.createElement(c,(0,o.A)({ref:n,flexWrap:!1,justifyContent:"between",alignItems:"center",padding:v,margin:T,round:k,onClick:N,"data-testid":g,width:S,selected:C,disabled:t,isSidebar:D},H&&{"data-ga":H}),i.createElement(s.Flex,{alignItems:"center",gap:x,flex:!0,basis:""},q?i.createElement(m,null):"string"===typeof f?i.createElement(d,{name:f,disabled:t,color:_,height:y,width:b}):f,!!a&&i.createElement(l,(0,o.A)({opacity:t?"medium":void 0,width:"150px",color:w,italic:A},u),a)),P)}))},56915:(e,n,t)=>{t.d(n,{A:()=>c,N:()=>r});var o=t(58168),i=t(96540),a=t(8711),s=t(10058);const r=(0,a.default)(s.H4).attrs({padding:[0,2],background:"error"}).withConfig({displayName:"list__DefaultListHeader",componentId:"sc-5df7lw-0"})(["cursor:pointer;pointer-events:",";"],(e=>{let{disabled:n}=e;return n?"none":"auto"})),l=e=>{let{disabled:n,toggleOpen:t,label:o,testid:a,Header:s=r}=e;return i.createElement(s,{"data-testid":a,onClick:t,opacity:n?"medium":void 0,disabled:n},o)},c=e=>{let{disabled:n,isOpen:t=!1,toggleOpen:a,label:r,children:c,headerTestId:d,Header:m,...u}=e;return i.createElement(s.Flex,(0,o.A)({column:!0},u),i.createElement(l,{disabled:n,Header:m,toggleOpen:a,label:r,testid:d}),i.createElement(s.Collapsible,{open:t},c))}},55905:(e,n,t)=>{t.d(n,{A:()=>m});var o=t(58168),i=t(96540),a=t(10058),s=t(78969),r=t(49389),l=t(80158);const c={warning:{icon:"warning_triangle_hollow",flavour:"warning",reccomendedVersion:s.fx,warningText:"is below the latest stable agent version"},critical:{icon:"warning_triangle_hollow",flavour:"error",reccomendedVersion:s.Qy,warningText:"is below the recommend agent version"}},d=e=>{let{icon:n,iconColor:t,warningLevel:o,handeleNavigateToDocs:s,message:r}=e;return i.createElement(a.Flex,{column:!0,width:{max:"200px"},gap:2},i.createElement(a.Flex,{alignItems:"center",gap:2},i.createElement(a.Icon,{name:n,color:t}),i.createElement(a.TextMicro,null,(0,l.Zr)(o))),i.createElement(a.Flex,{column:!0,gap:2},i.createElement(a.TextMicro,null,r),i.createElement(a.TextMicro,{"data-testid":"text-agent-outdated-critical"},i.createElement(a.Box,{"data-testid":"open-add-node",onClick:s,as:a.TextMicro,cursor:"pointer",textDecoration:"underline"}," ","Please update them"," "),"to ensure you get the latest security bug fixes.")))},m=e=>{let{warningLevel:n,text:t="Needs Update",container:s,os:m,name:u,labels:h,version:p,...g}=e;const{icon:f,flavour:y,hollow:b,reccomendedVersion:_,iconColor:w,warningText:v}=c[n],T=(0,i.useCallback)((()=>{const e=(0,r.fe)({container:s,os:m,version:p,...h});window.open(e,"_blank","noopener,noreferrer")}),[s,m]),k="".concat(u," ").concat(v," ").concat(_);return i.createElement(a.Tooltip,{allowHoverOnTooltip:!0,content:i.createElement(d,{message:k,icon:f,iconColor:w,warningLevel:n,handeleNavigateToDocs:T})},i.createElement(a.Pill,(0,o.A)({icon:f,flavour:y,hollow:b},g),(0,l.Zr)(t)))}},33931:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(96540),i=t(82432),a=t(78969),s=t(10058);const r=e=>{let{state:n,rawState:t}=e;const r=t||(0,i.GM)(n),{flavour:l}=a.J4[r.toLocaleLowerCase()];return o.createElement(s.Pill,{flavour:l},r)}},81881:(e,n,t)=>{t.d(n,{A:()=>a});var o=t(96540),i=t(10058);const a=()=>o.createElement(i.Flex,{column:!0,width:{max:"200px"},gap:2},o.createElement(i.TextMicro,null,o.createElement(i.TextMicro,{strong:!0},"Live:")," Node is actual collecting and streaming metrics to Netdata"),o.createElement(i.TextMicro,null,o.createElement(i.TextMicro,{strong:!0},"Stale:")," Node is currently offline and not streaming metrics to Netdata. It can show historical data from a parent node"),o.createElement(i.TextMicro,null,o.createElement(i.TextMicro,{strong:!0},"Offline:")," Node is currently offline, not streaming metrics to Netdata and not available in any parent node"),o.createElement(i.TextMicro,null,o.createElement(i.TextMicro,{strong:!0},"Unseen:")," Nodes have never been connected to Netdata, they are claimed but no successful connection was established"))},83084:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(58168),i=t(96540),a=t(10058),s=t(76051);const r=(0,i.forwardRef)(((e,n)=>{let{children:t,sidebar:r=null,blurred:l,blurProps:c,BlurredContent:d,widthAuto:m=!1,...u}=e;return i.createElement(a.Flex,{id:"main",height:"100%",width:m?"auto":"100%",position:"relative",overflow:"hidden",flex:"1"},i.createElement(a.Flex,(0,o.A)({column:!0,overflow:"hidden",width:m?"auto":"100%"},u,{ref:n}),t),r,l&&i.createElement(s.I1,c,d?i.createElement(d,null):null))}))},76634:(e,n,t)=>{t.d(n,{A:()=>i});var o=t(46741);const i=e=>{let{permission:n,spaceId:t,children:i}=e;return(0,o.JT)(n,t)?i:null}},64754:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(58168),i=t(96540),a=t(10058),s=t(46741);const r=(0,i.forwardRef)(((e,n)=>{let{ifForbidden:t="disabled",permission:r,spaceId:l,Component:c=a.Button,...d}=e;const m=(0,s.JT)(r,l);return"hide"!==t||m?i.createElement(c,(0,o.A)({ref:n,disabled:"disabled"===t&&!m||d.disabled},d)):null}))},53285:(e,n,t)=>{t.d(n,{A:()=>s});var o=t(58168),i=t(96540),a=t(46741);const s=e=>{let{Component:n,ifForbidden:t="disabled",permission:s,children:r,spaceId:l,...c}=e;const d=(0,a.JT)(s,l);return"hide"!==t||d?"function"===typeof r?r(d):n?i.createElement(n,(0,o.A)({},c,{disabled:"disabled"===t&&!d||c.disabled})):r:null}},57375:(e,n,t)=>{t.d(n,{t:()=>a});var o=t(8711),i=t(10058);const a=(0,o.default)(i.Flex).attrs((e=>({padding:[3,3,0],width:"100%",background:"modalTabsBackground",...e}))).withConfig({displayName:"tabs__TabHeader",componentId:"sc-1ramyo4-0"})([""])},23630:(e,n,t)=>{t.d(n,{A:()=>l});t(62953);var o=t(96540),i=t(67742),a=t(10058),s=t(55337),r=t(33222);const l=e=>{let{text:n,updatedAt:t,error:l}=e;const[,c]=(0,o.useState)(),d=(e=>{if(!e)return"";const n=new Date(e);return n.getTime()?(0,r.A)(n,new Date):""})(t);return(0,i.A)((()=>c(Math.random())),1e3),o.createElement(s.A,{theme:"dark"},o.createElement(a.Flex,{column:!0,gap:3},o.createElement(a.TextSmall,{color:"key"},n),l&&o.createElement(a.Flex,{alignItems:"center",gap:2},o.createElement(a.Icon,{width:14,height:12,color:"text",name:"warning_triangle"}),o.createElement(a.TextSmall,null,"Error: ",d?"Data not updated":"No data")),d&&o.createElement(a.TextMicro,null,o.createElement(a.TextMicro,{color:"key"},"Last updated: "),d)))}},83179:(e,n,t)=>{t.d(n,{A:()=>l});var o=t(58168),i=(t(17333),t(41393),t(98992),t(54520),t(81454),t(96540)),a=t(10058),s=t(14994);const r={closeMenuOnSelect:!1,backspaceRemovesValue:!1,isClearable:!1,blurInputOnSelect:!0,captureMenuScroll:!0,isMulti:!0},l=e=>{let{selectedValue:n,onChange:t,formatOptions:l,filterValues:c,placeholder:d="search..."}=e;const m=(0,s.DL)(),u=(0,i.useMemo)((()=>m.map((e=>{let{id:n,name:t}=e;return{label:t,value:n,...l&&l({id:n,name:t})}}))),[m,l]),h=(0,i.useMemo)((()=>u.filter((e=>{let{label:t,value:o}=e;return n.includes(o)||c&&c({label:t,value:o})}))),[u,n,c]),p=(0,i.useCallback)((e=>{const n=e.map((e=>{let{value:n}=e;return n}));t(n)}),[t]);return i.createElement(a.Select,(0,o.A)({placeholder:d},r,{options:u,value:h,onChange:p}))}},25950:(e,n,t)=>{t.d(n,{U:()=>i,u:()=>a});t(14905),t(98992),t(8872);const o=[{iconName:"osAlpineLinux",logoFilename:"alpine.svg",name:"alpine",osNames:["Alpine Linux"],title:"Alpine Linux"},{iconName:"osAmazonLinux",logoFilename:"linux.svg",name:"linux",osNames:["Amazon Linux","Amazon Linux AMI"],title:"Amazon Linux"},{iconName:"osArchLinux",logoFilename:"arch.svg",name:"archarm",osNames:["Archcraft","Arch Linux","Arch Linux 32","Arch Linux ARM","ArchLabs","ArchLinux"],title:"Arch Linux"},{iconName:"osCentos",logoFilename:"centos.svg",name:"centos",osNames:["CentOS","CentOS Linux","CentOS Stream"],title:"CentOS"},{iconName:"osCoreOS",logoFilename:"coreos.svg",name:"coreos",osNames:["Container Linux by CoreOS"],title:"CoreOS"},{iconName:"osDebian",logoFilename:"debian.svg",name:"debian",osNames:["Debian GNU/Linux"],title:"Debian"},{iconName:"osFedora",logoFilename:"fedora.svg",name:"fedora",osNames:["Fedora","Fedora Linux","Fedora Remix for WSL"],title:"Fedora"},{iconName:"osFreeBSD",logoFilename:"freebsd.svg",name:"freebsd",osNames:["FreeBSD"],title:"FreeBSD"},{iconName:"serviceFreeNAS",logoFilename:"freenas.svg",name:"freenas",osNames:[],title:"FreeNAS"},{iconName:"osGentoo",logoFilename:"gentoo.svg",name:"gentoo",osNames:["Gentoo"],title:"Gentoo"},{iconName:"serviceKubernetes",logoFilename:"kubernetes.svg",name:"kubernetes",osNames:[],title:"Kubernetes"},{iconName:"osLinux",logoFilename:"linux.svg",name:"linux",osNames:[],title:"Linux"},{iconName:"osMacOSX",logoFilename:"macos.svg",name:"macos",osNames:["mac"],title:"MacOS"},{iconName:"osMacOSX",logoFilename:"macos.svg",name:"mac",osNames:["mac"],title:"MacOS"},{iconName:"osLinuxManjaro",logoFilename:"manjaro.svg",name:"manjaro",osNames:["Manjaro Linux","Manjaro-ARM"],title:"Manjaro"},{iconName:"serviceOpenStack",logoFilename:"openstack.svg",name:"openstack",osNames:[],title:"OpenStack"},{iconName:"osSuseLinux",logoFilename:"opensuse.svg",name:"opensuse",osNames:["openSUSE","openSUSE Leap","openSUSE Leap Micro","openSUSE MicroOS","openSUSE Tumbleweed"],title:"Open Suse"},{iconName:"serviceOpenWrt",logoFilename:"openwrt.svg",name:"openwrt",osNames:["OpenWrt"],title:"OpenWRT"},{iconName:"osOracle",logoFilename:"oracle.svg",name:"oracle",osNames:["Oracle Linux Server"],title:"Oracle Linux"},{iconName:"servicePfSense",logoFilename:"pfsense.svg",name:"pfsense",osNames:[],title:"PFSense"},{logoFilename:"raspberry-pi.svg",name:"raspberry-pi",osNames:[],title:"Raspberry PI"},{iconName:"osRaspbian",name:"raspbian",osNames:["Raspbian","Raspbian GNU/Linux"],title:"Raspbian"},{iconName:"osRedHat",logoFilename:"redhat.svg",name:"redhat",osNames:["Red Hat Enterprise Linux","Red Hat Enterprise Linux Server","Red Hat Enterprise Linux Workstation","RedHatEnterpriseServer"],title:"Red Hat Enterprise Linux"},{iconName:"osSuseLinux",logoFilename:"suse.svg",name:"suse",osNames:[],title:"Suse"},{iconName:"osUbuntu",logoFilename:"ubuntu.svg",name:"ubuntu",osNames:["Ubuntu","Ubuntu Core"],title:"Ubuntu"}],i=o.reduce(((e,n)=>({...e,[n.name]:n})),{}),a=o.reduce(((e,n)=>({...e,...n.osNames.reduce(((e,t)=>({...e,[t]:n})),{})})),{})},74293:(e,n,t)=>{t.d(n,{A:()=>D});var o=t(58168),i=(t(17333),t(41393),t(98992),t(54520),t(81454),t(62953),t(8711)),a=t(96540),s=t(10058),r=t(55337),l=t(45123);const c=i.default.div.withConfig({displayName:"styled__Divider",componentId:"sc-14bbmjw-0"})(["background:",";height:1px;width:auto;margin:"," ",";"],(0,s.getColor)("disabled"),(0,s.getSizeBy)(1),(0,s.getSizeBy)(2));var d=t(96083),m=t(87659),u=t(22292),h=t(11604),p=t(14550),g=(t(9391),t(15327)),f=t(74618),y=t(57375),b=t(54972),_=t(63314);const w={flex:"grow",height:"100%",overflow:"auto"},v={flex:"1",height:"100%",overflow:"auto"},T=e=>{let{onClose:n}=e;const[t,i]=(0,a.useState)(!1),[r,l]=(0,a.useState)(!1),[c,d]=(0,a.useState)({}),{handleChangeTab:m,activeTabIndex:h,tabsByName:p,tabs:T}=(0,b.A)(),k=(0,u.qO)(void 0,{shouldPersist:!0,onSuccess:n}),x=(0,a.useCallback)((()=>{i(!0),k(c).finally((()=>i(!1)))}),[c]),P=(0,a.useMemo)((()=>T.map((e=>{const{label:t,testId:i,Component:r}=p[e];return a.createElement(s.Tab,{key:e,label:t,"data-testid":"userProfileModal-".concat(i)},a.createElement(_.Ay,{tab:e},a.createElement(r,(0,o.A)({},"profile"===e&&{setFormState:d,setFormValid:l},{onClose:n}))))}))),[T]);return a.createElement(g.GO,{onClose:n},a.createElement(_.Ay,{feature:"UserSettings"},a.createElement(f.z,{onClose:n,title:"Settings"},"profile"===T[h]&&a.createElement(s.Button,{disabled:!r,label:"Save",onClick:x,isLoading:t,loadingLabel:"saving..."})),a.createElement(s.Tabs,{flex:"1",height:"100%",overflow:"hidden",selected:h,onChange:m,TabContent:g.Yv,TabsHeader:y.t,tabsProps:w,tabContentProps:v},P)))};var k=t(29217);const x=(0,i.default)(s.Flex).attrs({column:!0,round:1}).withConfig({displayName:"dropdown__Dropdown",componentId:"sc-w0ej6i-0"})(["box-shadow:0 4px 4px rgba(0,0,0,0.25);"]);var P=t(37618);const C=(0,t(92155).A)(l.A),q={"Operational Status":()=>!0,"Sign In":e=>{let{isAnonymous:n}=e;return n},Settings:e=>{let{isAgent:n,isAnonymous:t}=e;return n||!t},"Sign Out":e=>{let{isAnonymous:n}=e;return!n}},S=(0,i.default)(s.Button).withConfig({displayName:"userControl__SignInButton",componentId:"sc-n4ebn8-0"})(["&&{> .button-icon{width:24px;height:24px;}}"]),D=e=>{let{dropdownBackground:n="dropdown"}=e;const t=(0,u.uW)("avatarURL"),i=(0,u.uW)("name"),l=(0,u.uW)("isAnonymous"),[g,,f,y]=(0,m.A)(),_=(0,a.useCallback)((()=>{window.open("https://status.netdata.cloud","_blank")}),[]),w=(0,h.tN)(),v=(0,p.A)(),{handleOpenProfileModal:D,handleCloseProfileModal:A,isProfileModalOpen:M}=(0,b.A)(),E=(0,a.useMemo)((()=>[{name:"Settings",onClick:()=>{y(),D()},hasSeparator:!1,testid:"userControl-settings"},{name:"Operational Status",onClick:()=>{y(),_()},hasSeparator:!1,testid:"userControl-operationalStatus"},{name:"Sign In",onClick:()=>{y(),v()},hasSeparator:!0,testid:"userControl-signOut"},{name:"Sign Out",onClick:()=>{y(),w()},hasSeparator:!0,testid:"userControl-signOut"}].filter((e=>q[e.name]({isAgent:P.Ay,isAnonymous:l})))),[l,P.Ay]);return a.createElement(r.A,null,a.createElement(k.A,!l&&{content:"Edit your account settings and manage your notifications",align:"right"},!P.Ay&&l?a.createElement(k.A,{content:"Sign In",align:"right"},a.createElement(S,{small:!0,icon:"sign_in",onClick:f,"data-ga":"sidebar-sign-in::click-dropdown::global-view","data-testid":"sign-in-dropdown",iconSize:"medium",margin:[0,0,2]})):a.createElement(d.A,{src:t||"","data-testid":"userControl-userAvatar",onClick:f,title:i})),g&&a.createElement(s.Layer,{margin:[5,17],position:"bottom-left",onClickOutside:y,onEsc:y},a.createElement(x,{background:n,padding:[2]},E.map((e=>{let{hasSeparator:n,name:t,...i}=e;return a.createElement(a.Fragment,{key:t},n&&a.createElement(c,{key:"".concat(t,"-itemSeparator")}),a.createElement(C,(0,o.A)({key:t,round:1,payload:{description:"User menu - Click ".concat(t)}},i),t))})))),M&&a.createElement(T,{onClose:A}))}},96763:(e,n,t)=>{t.d(n,{A:()=>s});var o=t(58168),i=t(96540),a=t(10058);const s=e=>{let{onChange:n,value:t,onKeyDown:s,label:r,...l}=e;return i.createElement(a.TextInput,(0,o.A)({label:r,name:"userEmail",placeholder:"Enter an email address",value:t,onChange:n,onKeyDown:s},l))}},54972:(e,n,t)=>{t.d(n,{A:()=>je});t(17333),t(98992),t(54520),t(62953);var o=t(96540),i=t(540),a=t(22292),s=t(10058),r=t(80542),l=t(96083),c=t(11604),d=t(87659);var m=t(58168),u=t(27229);const h="User name cannot exceed ".concat(40," characters"),p=e=>{const n=e.length<=40;return(0,r.H)(n,h)},g=e=>{let{value:n,isValid:t,setIsValid:i,onChange:a,label:l,validators:c=[],hint:d,...h}=e;const g=(0,r.k)([p,...c]),[f,y]=(0,o.useState)("");return(0,o.useEffect)((()=>{const e=g(n),o=e.isValid,a=(0,u.W)(e);!t&&o?i(!0):t&&!o&&i(!1),y(a||"")}),[t,n]),o.createElement(s.TextInput,(0,m.A)({label:l||" ",name:"userName",placeholder:"Enter the user's name",value:n,onChange:a,hint:d,error:!t&&f},h))};var f=t(96763),y=t(19673),b=t(3914),_=t(55463),w=t(83694);const v=[e=>(0,r.H)(!!e,"Name should not be empty")],T=()=>{},k=(0,w.o)((e=>{let{isLastMember:n,spaceName:t,children:i}=e;return o.createElement(s.Flex,{column:!0,gap:2},o.createElement(s.Text,null,"You are about to delete your account at ",o.createElement("strong",null,"Netdata"),". All data related to your account will be deleted."),n&&o.createElement(o.Fragment,null,o.createElement(s.Text,null,o.createElement(s.Text,{strong:!0},t)," space will be deleted since you are the last member."),i),o.createElement(s.Text,null,"This cannot be undone. Are you sure you want to continue?"))})),x=e=>{let{setFormValid:n,setFormState:t}=e;const i=(0,a.uW)("name"),[r,m,u,h]=(0,s.useInputValue)({value:i,maxChars:40}),[p,w]=(0,o.useState)(!1),[x,,P,C]=(0,d.A)(),[q,S]=(0,d.A)(),{value:D}=(0,y.JN)(),A=(0,b.ap)(),M=1===(0,_.Gi)().length,E=(0,a.uW)("email"),N=(0,a.uW)("avatarURL");(0,o.useEffect)((()=>{h&&n(p)}),[h,p]),(0,o.useEffect)((()=>{t({name:r})}),[r]);const H=(0,c.z2)();return o.createElement(s.Flex,{column:!0,justifyContent:"between",flex:"grow"},o.createElement(s.Flex,{column:!0,gap:3},o.createElement(s.Text,{strong:!0,"data-testid":"userProfile-label"},"Photo"),o.createElement(l.A,{src:N||"","data-testid":"userProfile-avatar",width:16,height:16}),o.createElement(g,{"data-testid":"userProfile-username",value:r,label:"Name",onChange:m,isValid:p,setIsValid:w,validators:v,fieldIndicator:u,instantFeedback:"positiveFirst",isDirty:h}),o.createElement(f.A,{"data-testid":"userProfile-email",label:"Email",disabled:!0,value:E,onChange:T})),o.createElement(s.Flex,{alignSelf:"end"},o.createElement(s.Button,{flavour:"borderless",danger:!0,onClick:P,label:"Delete account","data-ga":"user-profile-settings::click-delete::global-view","data-testid":"userProfile-deleteAccount-button"})),x&&o.createElement(s.ConfirmationDialog,{confirmLabel:q?"Deleting...":"Yes, delete","data-ga":"delete-account-dialog","data-testid":"deleteAccountDialog",handleConfirm:()=>{S(),H()},handleDecline:C,message:o.createElement(k,{isLastMember:M,spaceName:A.name,currentPlan:D}),title:"Delete Account",isConfirmDisabled:q,isConfirmLoading:q,isDeclineDisabled:q}))};t(65189);var P=t(5668);const C=()=>{const[e,n]=(0,P.tF)("theme"),t=(0,o.useCallback)((e=>n(e.target.value)),[]);return o.createElement(s.Flex,{column:!0,gap:3,justifyContent:"between"},o.createElement(s.Flex,{column:!0,gap:2},o.createElement(s.Text,{strong:!0},"Netdata Theme"),o.createElement(s.RadioButton,{label:"Light Theme",checked:"light"===e,onChange:t,value:"light"}),o.createElement(s.RadioButton,{label:"Dark Theme",checked:"dark"===e||!e||"unspecified"===e,onChange:t,value:"dark"})))};var q=t(71847),S=t(29217),D=t(71835);const A=(0,t(92155).A)(s.Button),M=["scope:all","scope:agent-ui","scope:grafana-plugin"],E=e=>{let{onCloseModal:n,onCreate:t}=e;const[i,a]=(0,o.useState)(""),[r,l]=(0,o.useState)("scope:all");return o.createElement(s.ModalContent,null,o.createElement(s.ModalHeader,null,"Create New Token",o.createElement(s.ModalCloseButton,{testId:"close-button",onClose:n})),o.createElement(s.ModalBody,{gap:2,width:80},o.createElement(s.TextInput,{"data-testid":"description",placeholder:"Enter Description",onChange:e=>{let{target:n}=e;return a(n.value)},value:i,size:"small"}),o.createElement(s.Flex,{column:!0,gap:2,"data-testid":"scopes"},M.map((e=>o.createElement(s.RadioButton,{key:e,checked:r===e,onChange:e=>l(e.target.value),value:e,alignItems:"start"},o.createElement(s.TextSmall,null,e)))))),o.createElement(s.ModalFooter,null,o.createElement(A,{disabled:""===i.trim(),label:"Create",onClick:()=>t({description:i,scope:r}),"data-testid":"btn-create",payload:{description:"Modal - Create Token"}})))};var N=t(8711);const H=N.default.div.withConfig({displayName:"styled__TokenContainer",componentId:"sc-s1axew-0"})(["display:flex;flex-direction:column;align-items:center;color:",";background:",";border:1px solid ",";border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;padding:23px 27px 14px;width:100%;font-family:Courier New,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;"],(0,s.getColor)("textDescription"),(0,s.getColor)("modalTabsBackground"),(0,s.getColor)("borderSecondary")),R=e=>o.createElement(s.Box,(0,m.A)({},e,{as:s.Icon,sx:{borderRadius:"50%",overflow:"hidden",background:(0,s.getColor)(["neutral","white"])}})),I=e=>o.createElement(s.Text,(0,m.A)({},e,{color:["neutral","grey35"]})),O=e=>o.createElement(s.Flex,(0,m.A)({},e,{as:s.Icon,sx:{alignSelf:"flex-end",cursor:"pointer"}}));var L=t(33436),B=t(99571),U=t(13871);const j=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return()=>{(0,L.A)(e);const t=(0,U.UI)({...{header:"Copied",text:"Token copied to your clipboard!",icon:"gear",...n},success:!0});B.oR.success(t,{context:"copy"})}};var G=t(63314);const F=e=>{let{onCloseModal:n,token:t}=e;return o.createElement(s.ModalContent,null,o.createElement(G._0,{feature:"TokenCreated"},o.createElement(s.ModalHeader,null,"Token Generated",o.createElement(s.ModalCloseButton,{testId:"close-button",onClose:n})),o.createElement(s.ModalBody,null,o.createElement(s.Flex,{column:!0,gap:4},o.createElement(H,null,o.createElement("span",{"data-testid":"token"},t),o.createElement(O,{name:"copy",size:"small",color:"primary",onClick:j(t),"data-ga":"profile::click-copytoken::all-pages::api-token"})),o.createElement(s.Flex,{alignItems:"center",background:"warningBackground",gap:4,padding:[3,3],round:!0},o.createElement(R,{"data-testid":"noNodesView-warningBannerIcon",name:"exclamation",color:"warning"}),o.createElement(I,{"data-testid":"warning-message"},"Make sure to copy or store this token and add it where you need it. Once you close this modal you will not be able to retrieve it again.")))),o.createElement(s.ModalFooter,null,o.createElement(s.Button,{label:"Close",onClick:n}))))};var z=t(26655);const Y=e=>{let{description:n,scope:t}=e;return z.A.post("/api/v1/auth/account/api-token",{description:n,scopes:[t]})},X=e=>z.A.delete("/api/v1/auth/account/api-token/".concat(e)),W=e=>{let{onCloseModal:n,onTokenCreated:t,view:i,token:a}=e;const[r,l]=(0,o.useState)(i),[c,d]=(0,o.useState)(a);return o.createElement(s.Modal,{onClickOutside:n,onEsc:n},"CreateView"===r&&o.createElement(E,{"data-testid":"create-view",onCloseModal:n,onCreate:async e=>{let{description:n,scope:o}=e;const i=await Y({description:n,scope:o});(0,q.H)("api-token","create-token","profile",{description:n,scope:o}),d(i.data.token),l("CopyTokenView"),t()}}),"CopyTokenView"===r&&c&&o.createElement(F,{onCloseModal:n,token:c}))};t(41393),t(81454);var K=t(87991);const $=()=>{const[e,n]=(0,o.useState)([]),[t,,i,a]=(0,d.A)(!0),s=async()=>{i();const e=await z.A.get("/api/v1/auth/account/api-token");a(),n(e.data.map((e=>({...e,created_at:e.created_at?(0,K.GP)(new Date(e.created_at),"dd/MM/yyyy"):null,last_used_at:e.last_used_at?(0,K.GP)(new Date(e.last_used_at),"dd/MM/yyyy"):null}))))};return(0,o.useEffect)((()=>{s()}),[]),{isLoading:t,data:e,setData:n,fetchData:s}};var V=t(50876);const Z={right:["actions"]},J=[{id:"description",header:"Description",fullWidth:!0,size:150,wrap:!0,cell:e=>{let{getValue:n}=e;return o.createElement(S.A,{plain:!0,content:n()||"",isBasic:!0},o.createElement(s.TextSmall,{truncate:!0},n()||""))}},{id:"scopes",header:"Scope",fullWidth:!0,size:150,wrap:!0,cell:e=>{let{getValue:n}=e;return o.createElement(s.TextSmall,null,(Array.isArray(n())?n():[]).join(", "))}},{id:"created_at",header:"Created at",cell:e=>{let{getValue:n}=e;return o.createElement(s.TextSmall,null,n()||"-")}},{id:"last_used_at",header:"Used at",cell:e=>{let{getValue:n}=e;return o.createElement(s.TextSmall,null,n()||"-")}},{id:"ends_with",header:"Token",cell:e=>{let{getValue:n}=e;return o.createElement(o.Fragment,null,o.createElement(s.TextSmall,{style:{verticalAlign:"sub"}},"******"),n())}}],Q=()=>{const[e,n]=(0,o.useState)(!1),[t,i]=(0,o.useState)(!1),[a,r]=(0,o.useState)(null),{data:l,setData:c,fetchData:d}=$(),{sendButtonClickedLog:m}=(0,V.A)(),u=(0,o.useMemo)((()=>({addEntry:{handleAction:()=>{n(!0),m({label:"Create new token"},!0)},tooltipText:"Create new token"}})),[m]),[,h]=(0,D.A)(),p=(0,o.useMemo)((()=>({delete:{handleAction:e=>{let{id:n}=e;X(n).then((()=>{c((e=>e.filter((e=>e.id!==n)))),(0,q.H)("api-token","delete-token","profile"),m({label:"Delete token"},!0)})).catch(h)},confirmationTitle:"Delete API Token",confirmationMessage:"You are about to delete API Token, are you sure you want to continue?"}})),[l]);return o.createElement(o.Fragment,null,o.createElement(s.Table,{dataColumns:J,data:l,bulkActions:u,rowActions:p,enableResizing:!0,enableSorting:!0,columnPinning:Z,enableColumnPinning:!0}),e&&o.createElement(W,{view:"CreateView",onCloseModal:()=>n(!1),onTokenCreated:d}),t&&o.createElement(W,{view:"CopyTokenView",onCloseModal:()=>{i(!1),r(null)},token:a}))};var ee=t(96382),ne=t(93155),te=t(63950),oe=t.n(te);const ie=e=>{let{title:n="",description:t="",label:i="",checked:a,onChange:r=oe(),...l}=e;const c=(d=s.Toggle,e=>{let{disabledInfo:n="This setting is disabled",...t}=e;const{disabled:i}=t||{};return i?o.createElement(S.A,{content:n},o.createElement(s.Box,null,o.createElement(d,t))):o.createElement(d,t)});var d;return o.createElement(s.Flex,{justifyContent:"between",alignItems:"center"},o.createElement(s.Box,null,o.createElement(s.H5,null,n),o.createElement(s.TextSmall,null,t)),o.createElement(c,(0,m.A)({colored:!0,onChange:r,checked:a,"data-testid":"profileNotifications-".concat(i,"NotificationsToggle"),"data-ga":"profile-ntab::click-toggle::global-view::".concat(a?"enabled":"disabled")},l)))};var ae=t(194);const se=()=>{const{isLoading:e,data:n}=$(),[t,i]=(0,o.useState)(),[,a]=(0,D.A)();return(0,o.useEffect)((()=>{e||(async()=>{(null===n||void 0===n?void 0:n.length)>0&&await Promise.all(n.map((e=>{let{id:n}=e;return X(n)}))).catch(a);const{data:e}=await Y({description:"Mobile App",scopes:["scope:mobile-app"]});null!==e&&void 0!==e&&e.token&&i(e.token)})()}),[e]),{token:t}},re=e=>{let{value:n}=e;return o.createElement(s.Box,{width:"232px",height:"232px",background:"white",padding:[4],round:3},o.createElement(ae.Ay,{size:200,value:n}))},le=e=>{let{onClose:n=oe()}=e;const{token:t}=se();return o.createElement(s.Modal,null,o.createElement(s.ModalContent,{width:{min:100,base:140}},o.createElement(s.ModalHeader,null,o.createElement(s.Text,null,"Scan QR Code"),o.createElement(s.ModalCloseButton,{onClose:n,testId:"close-button"})),o.createElement(s.ModalBody,null,o.createElement(s.Flex,{alignItems:"center",justifyContent:"center",height:100},t?o.createElement(re,{value:t}):o.createElement(s.Flex,{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",padding:[4]},o.createElement(s.H3,null,"Generating token")))),o.createElement(s.ModalFooter,null,o.createElement(s.Flex,{justifyContent:"end",padding:[1,2]},o.createElement(s.Button,{label:"Done",onClick:n})))))},ce=()=>{const[e,n]=(0,ee.j$)("email"),t=(0,o.useCallback)((()=>n(!e)),[e,n]),[i,a]=(0,ee.j$)("mobileApp"),r=(0,o.useCallback)((()=>{a(!(null!==i&&void 0!==i&&i.enabled))}),[i,a]),[l,,c,m]=(0,d.A)();return o.createElement(s.Flex,{column:!0,gap:2},o.createElement(ie,{title:"E-mail",description:"Netdata will send you health notifications via e-mails",label:"email",checked:e,onChange:t}),ne.Mh&&o.createElement(s.Flex,{column:!0},o.createElement(ie,{title:"Mobile App Notifications",description:"Netdata will send you health notifications via mobile app notifications",label:"mobileApp",checked:null===i||void 0===i?void 0:i.enabled,onChange:r,disabled:!(null!==i&&void 0!==i&&i.linked),disabledInfo:"You have to link a device first and then enable notifications"}),o.createElement(s.Flex,{justifyContent:"end"},o.createElement(s.Button,{flavour:"borderless",icon:"qrCode",iconColor:"primary",iconSize:"small",onClick:c},o.createElement(s.Text,{color:"primary"},"Show QR code"))),l&&o.createElement(le,{onClose:m})))};t(14905),t(8872);var de=t(28738),me=t(46741),ue=(t(3064),t(72577),t(26770)),he=t(87633),pe=t(14994),ge=t(71856),fe=t(1522),ye=t(69765);const be=N.default.div.withConfig({displayName:"styled__Row",componentId:"sc-lpc291-0"})(["width:100%;height:",";display:flex;flex-flow:row nowrap;align-items:center;padding-left:",";margin-bottom:",";"],(0,s.getSizeBy)(5),(0,s.getSizeBy)(3),(0,s.getSizeBy)(2)),_e=(0,N.default)(s.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-lpc291-1"})(["width:20px;height:20px;margin-right:",";"],(0,s.getSizeBy)()),we=(0,N.css)(["&&{width:200px;}margin-left:auto;"]),ve=(0,N.default)(s.Select).withConfig({displayName:"styled__StyledSelect",componentId:"sc-lpc291-2"})(["",""],we),Te=(0,N.default)(s.Button).withConfig({displayName:"styled__SettingsLoader",componentId:"sc-lpc291-3"})([""," color:",";border:1px solid ",";.path{stroke:",";}"],we,(0,s.getColor)("text"),(0,s.getColor)("border"),(0,s.getColor)("text")),ke=e=>{let{roomId:n,spaceId:t}=e;const[i,a]=(0,ee.yP)({roomId:n,spaceId:t,key:"alarms"}),s=(0,o.useCallback)((e=>{a(e.value)}),[a]);return o.createElement(ve,{options:Object.values(ge.fF),value:ge.fF[i],onChange:s})},xe=e=>{let{roomId:n,spaceId:t}=e;const[i,a]=(0,o.useState)(),r=(0,fe.th)(t,n,{onFail:()=>{a(!1)},onSuccess:()=>{a(!1)}}),l=(0,o.useCallback)((()=>{a(!0),r()}),[r,n]);return o.createElement(s.Box,{margin:[0,2,0,"auto"]},o.createElement(S.A,{content:"Join this room to activate notifications for it",isBasic:!0},o.createElement(s.Button,{isLoading:i,label:"Join",onClick:l,flavour:"hollow"})))},Pe=e=>{let{isMember:n,roomId:t,spaceId:i}=e;const a=(0,ye.wz)(t,"name");return o.createElement(be,{"data-testid":"roomSettings-room-".concat(a),"data-ga":"profile-ntab::click-join-room-".concat(a,"::global-view")},o.createElement(_e,{name:"room",color:"text"}),o.createElement(s.Text,null,a),n?o.createElement(o.Suspense,{fallback:o.createElement(Te,{isLoading:!0,flavour:"hollow",label:"Loading settings.."})},o.createElement(ke,{roomId:t,spaceId:i})):o.createElement(xe,{roomId:t,spaceId:i}))},Ce=N.default.div.withConfig({displayName:"styled__CollapsibleRoot",componentId:"sc-1p8t8zr-0"})(["width:100%;height:",";display:flex;flex-flow:row nowrap;align-items:center;cursor:pointer;margin-bottom:",";"],(0,s.getSizeBy)(5),(0,s.getSizeBy)(2)),qe=(0,N.default)(s.Icon).withConfig({displayName:"styled__OpenerIcon",componentId:"sc-1p8t8zr-1"})(["height:5px;width:6px;margin-right:",";",";"],(0,s.getSizeBy)(2),(e=>{let{expanded:n}=e;return n&&"transform: rotate(90deg)"})),Se=(0,N.default)(s.Icon).withConfig({displayName:"styled__SpaceIcon",componentId:"sc-1p8t8zr-2"})(["width:20px;height:20px;margin-right:",";"],(0,s.getSizeBy)()),De=(0,N.default)(s.Text).withConfig({displayName:"styled__SpaceLabel",componentId:"sc-1p8t8zr-3"})(["font-weight:bold;"]),Ae=(0,N.default)(s.TextSmall).withConfig({displayName:"styled__SettingsInfo",componentId:"sc-1p8t8zr-4"})(["margin-left:auto;opacity:0.8;"]);var Me=t(79769);const Ee=e=>{let{expanded:n,onExpand:t,label:i,spaceId:a}=e;(0,Me.A)(a);const s=(0,ue.t5)(a,"channels").find((e=>"Email"===e.integration.slug))||{};return o.createElement(Ce,{onClick:t,"data-testid":"spaceRoot-space-".concat(i)},o.createElement(qe,{name:"chevron_right_s",expanded:n,color:"text"}),o.createElement(Se,{name:"space",color:"text"}),o.createElement(De,null,i),!s.enabled&&o.createElement(Ae,null,"E-mail notifications for this space has been disabled by admin"))},Ne={width:"108px",height:"77px"},He=e=>{let{spaceId:n,isCurrent:t,showAllRooms:i}=e;const[a,r]=(0,d.A)(t),l=(0,he.A)(n,{autorun:!1,polling:!1}),c=(0,pe.sC)(n,"loaded");(0,o.useEffect)((()=>{n&&a&&!c&&l()}),[a,c,n,l]);const m=(0,b.ns)(n,"name"),u=(0,pe.CB)(n),h=(0,o.useMemo)((()=>i?u:u.filter((e=>{let{isMember:n}=e;return n}))),[u,i]),p=(0,o.useRef)();return(0,o.useEffect)((()=>{a&&p.current&&p.current.scrollIntoView({behavior:"smooth",block:"start"})}),[a]),o.createElement(s.Flex,{column:!0,ref:p},o.createElement(Ee,{expanded:a,onExpand:r,label:m,spaceId:n}),o.createElement(s.Collapsible,{open:a},(()=>c?o.createElement(o.Fragment,null,h.map((e=>{let{id:t,isMember:i}=e;return o.createElement(Pe,{isMember:i,key:t,roomId:t,spaceId:n})}))):o.createElement(de.A,{iconProps:Ne,title:"Loading..."}))))};var Re=t(13617);const Ie={width:"108px",height:"77px"},Oe=()=>{const e=(0,b.vt)(),n=(e=>{const n=(0,b.UV)("ids");return(0,o.useMemo)((()=>n.reduce(((n,t)=>t===e?[t,...n]:[...n,t]),[])),[e,n])})(e),t=(0,me.JT)("room:ReadAll"),[i,a]=(0,o.useState)(!1);return o.createElement(o.Fragment,null,o.createElement(s.H4,null,"Notifications for all your Netdata Spaces and all the Rooms you are in"),t&&o.createElement(Re.A,{onFilterClick:e=>n=>{n.stopPropagation(),a(e)},showAllRooms:i,padding:[1,0]}),o.createElement(s.Flex,{overflow:{vertical:"auto"},column:!0,"data-testid":"spaceRoomNotifications-spacesContainer",padding:[3,0,3]},o.createElement(o.Suspense,{fallback:o.createElement(de.A,{iconProps:Ie,title:"Loading notification settings..."})},n.map((n=>o.createElement(He,{key:n,isCurrent:n===e,showAllRooms:i,spaceId:n}))))))},Le={offline:["theme"],online:["profile","theme","notifications","apiTokens"]},Be={profile:{Component:x,label:"Profile",order:0,testId:"profileTab"},theme:{Component:C,label:"Theme",order:1,testId:"themeTab"},notifications:{Component:(0,o.memo)((()=>o.createElement(s.Flex,{overflow:{vertical:"hidden"},column:!0,gap:2},o.createElement(s.H4,null,"Notification Methods"),o.createElement(o.Suspense,{fallback:"..."},o.createElement(ce,null)),o.createElement(s.Flex,{height:"1px",background:"border"}),o.createElement(Oe,null)))),label:"Notifications",order:2,testId:"notificationsTab"},apiTokens:{Component:Q,label:"API tokens",order:3,testId:"apiTokensTab"}},Ue=e=>(Be[e]||Be.profile).order,je=function(){let{modalName:e="profile"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,a.uW)("isAnonymous"),t=(0,o.useMemo)((()=>Object.keys(Be).filter((e=>Le[n?"offline":"online"].includes(e)))),[n]),{isModalOpen:s,currentModalTab:r,handleOpenModal:l,handleCloseModal:c,handleChangeModalTab:d}=(0,i.A)(e),[m,u]=(0,o.useState)(Ue(r)),h=e=>{d(e)};return(0,o.useEffect)((()=>{u(Ue(r))}),[r]),{handleOpenProfileModal:function(){l(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"profile")},handleCloseProfileModal:()=>{c()},getPreselectedTab:Ue,setCurrentTab:h,handleChangeTab:e=>{const n=t[e];u(e),h(n)},tabs:t,tabsByName:Be,activeTabIndex:m,isProfileModalOpen:s}}},14550:(e,n,t)=>{t.d(n,{A:()=>l});t(25440);var o=t(96540),i=t(47767),a=t(80158),s=t(37618),r=t(35600);const l=()=>{const e=(0,i.Zp)();return(0,o.useCallback)((()=>{if(s.Ay){const e=window.location.origin+window.location.pathname.replace(s.y7,""),n=(0,r.u0)();window.location.href=(0,a.QU)("".concat(window.envSettings.cloudUrl,"/trust?redirect_uri=").concat(encodeURIComponent(window.location.href),"&agent_uri=").concat(encodeURIComponent(e||window.envSettings.agentApiUrl),"&telemetry_session_id=").concat(n))}else e("/sign-in")}),[])}},65624:(e,n,t)=>{t.d(n,{JJ:()=>p,L6:()=>T,LO:()=>d,d$:()=>v,ph:()=>h});t(41393),t(14905),t(98992),t(81454),t(8872),t(62953),t(48408);var o=t(26655),i=t(49286),a=t(52768),s=t(98525),r=t(37618);const l={logs:(e,n)=>n?/logs/.test(n):"systemd-journal"===e,default:(e,n)=>n?!/logs/.test(n):"systemd-journal"!==e},c=e=>{const n=l[e]||l.default;return function(){let{functions:e=[],nodes:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.reduce(((e,o)=>{let{name:i,ni:a,tags:s}=o;return n(i,s)?[...e,{name:i,nodes:a.reduce(((e,n)=>t[n]?(e[t[n].nd||t[n].mg]=!0,e):e),{})}]:e}),[])}},d=(e,n,t)=>(0,r.ES)(e)?o.A.get("/api/v2/functions",{baseURL:window.envSettings.agentApiUrl,transform:c(t)}):o.A.post("/api/v3/spaces/".concat(e,"/rooms/").concat(n,"/functions"),{scope:{nodes:[]},selectors:{nodes:["*"]}},{transform:c(t)}),m=(e,n)=>{let{merge:t,direction:o,dataOnly:a=!1,tail:s=!1,reset:r=!1}=n;return n=>((n=(0,i.Ds)(n,{omit:["histogram"]})).defaultCharts||"processes"!==e||(n.defaultCharts=[["CPU","Category"],["Memory","Category"]]),n.defaultCharts=n.defaultCharts||[],a||(n.aggregations=n.facets),n.merge=t,n.direction=o,n.dataOnly=a,n.tail=s,n.reset=r,n)},u=(e,n)=>"after"===e||"before"===e?Math.floor(n/1e3):n,h=e=>{let{spaceId:n,cloudNodeIds:t,nodeIds:i,fn:a,acceptedParams:s=[],merge:l=!1,reset:c=!1,filters:d={},...h}=e,p=s.reduce(((e,n)=>{let t=u(n,h[n]);return t="undefined"===typeof t||null===t?null:"".concat(t),t?e?"".concat(e," ").concat(n,":").concat(t):"".concat(n,":").concat(t):e}),"");null!==s&&void 0!==s&&s.length&&(p=Object.keys(d).reduce(((e,n)=>{let t=u(n,d[n]);return t=((e,n)=>"query"===e&&n?n.split(/\s+/).join("|"):n)(n,t),t="undefined"===typeof t||null===t?null:"".concat(t),t?e?"".concat(e," ").concat(n,":").concat(t):"".concat(n,":").concat(t):e}),p));const g=(0,r.ES)(n);let f;if(p=p?"".concat(g?"%20":" ").concat(p):"",g){const[e]=i;f=o.A.get("/host/".concat(e,"/api/v1/function?function=").concat(a).concat(p),{baseURL:window.envSettings.agentApiUrl,transform:m(a,{merge:l,direction:h.direction,dataOnly:h.data_only&&s.includes("data_only"),tail:h.tail,reset:c})})}else{const[e]=t;f=o.A.get("/api/v2/nodes/".concat(e,"/function"),{params:{function:"".concat(a).concat(p),timeout:12e4},transform:m(a,{merge:l,direction:h.direction,dataOnly:h.data_only&&s.includes("data_only"),tail:h.tail,reset:c})})}return f.catch((e=>{throw e.merge=l,e.direction=h.direction,e.dataOnly=h.data_only&&s.includes("data_only"),e.tail=h.tail,e.reset=c,e})),f},p=e=>{let{spaceId:n,cloudNodeIds:t,nodeIds:a,fn:s,after:l,before:c}=e;const d=(0,r.ES)(n),m="".concat(d?"%20":" ","info after:").concat(u("after",l)," before:").concat(u("before",c));if(d){const[e]=a;return o.A.get("/host/".concat(e,"/api/v1/function?function=").concat(s).concat(m),{baseURL:window.envSettings.agentApiUrl,transform:i.Ds})}const[h]=t;return o.A.get("/api/v2/nodes/".concat(h,"/function"),{params:{function:"".concat(s).concat(m),timeout:12e4},transform:i.Ds})},g={filter:!1,index:1,name:"Unknown",sort:"ascending",sortable:!1,sticky:!1,summary:"",type:"string",uniqueKey:!1,visible:!0,dummy:!1},f=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{[e]:{...g,name:n.name||e,...n}}},y={...f("Timestamp",{type:"datetime",index:0}),...f("Tags",{type:"pill",index:1,wrap:!0}),...f("Description",{type:"feedTemplate",index:2}),...f("source",{type:"feedTemplate",index:3,dummy:!0}),...f("json",{type:"feedTemplate",index:4,dummy:!0})},b=function(){let[e]=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{type:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"retention"===n?/exceeds the maximum data retention/.test(e)?"You've exceeded your plan's retention limit":"":e},_=(e,n)=>t=>{var o,i,a;let{errors:s=[],page_size:r,results:{hits:l,aggregations:c}}=t;const d=(null===l||void 0===l?void 0:l.hits)||[];return{columns:{...y},data:d.map((function(){var e;let{_source:t={},_source:{event:o,host:i=[],agent:a={},Netdata:s,tags:r}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const l=Array.isArray(i)?i:[i];return s={...s,...s.alert?{alert:{...s.alert,id:null===(e=s.alert.transition)||void 0===e?void 0:e.id,...s.alert.name?{name:Array.isArray(s.alert.name)?s.alert.name:[s.alert.name]}:{},...s.alert.current?{current:{...s.alert.current,status:s.alert.current.status?Array.isArray(s.alert.current.status)?s.alert.current.status:[s.alert.current.status]:[]}}:{}}}:{}},[t["@timestamp"],r||[],o.id,{...t,...o,...s,hosts:l,agentId:a.id,roomId:n},t]})),default_sort_column:null,type:"table",update_every:5,pageSize:r,totalSize:(null===(o=l.total)||void 0===o?void 0:o.value)||0,anchorBefore:null===(i=d[d.length-1])||void 0===i||null===(i=i.sort)||void 0===i?void 0:i[0],anchorAfter:null===(a=d[0])||void 0===a||null===(a=a.sort)||void 0===a?void 0:a[0],aggregations:c,merge:e,retentionWarning:b(s,{type:"retention"}),warning:b(s)}},w=(e,n,t,o)=>t=>{var i;let{facets:s=[],items:r={},transitions:l=[]}=t;const c=l.map((t=>{let{machine_guid:o,transition_id:i,node_id:s,hostname:r,alert:l,new:{status:c,value:d},when:m,old:{status:u},instance:h,units:p}=t;const g={action:"alert-node-transition",space:{id:e},roomId:n,alert:{id:i,current:{status:[c],value_string:(0,a.m3)(d,p)},previous:{status:u},name:[l]},chart:{name:h},hosts:[{id:s||o,name:r}]};return[1e3*m,["alert","node_instance"],i,g,g,c,name,h]}));return{columns:{...y,...f("Status",{type:"value",index:5,dummy:!0,filter:"multiselect"}),...f("Alert Name",{type:"value",index:6,dummy:!0,filter:"multiselect"}),...f("Instance",{type:"value",index:7,dummy:!0,filter:"multiselect"})},data:c,default_sort_column:null,type:"table",update_every:5,pageSize:100,totalSize:(null===r||void 0===r?void 0:r.matched)||c.length,anchorBefore:null===(i=l[l.length-1])||void 0===i?void 0:i.gi,aggregations:s,merge:o,retentionWarning:null,warning:null}},v=e=>{var n;let{nodeIds:t=[],spaceId:i,roomId:a,roomSlug:l,anchor:c="",merge:d=!1,after:m,before:u,filters:h,anchorOffset:p,cloudNodeIds:g,...f}=e;if((0,r.ES)(i)){const e=new URLSearchParams({after:m?Math.floor(m/1e3):m,before:u?Math.ceil(u/1e3):u,last:200,anchor_gi:c,options:"minify",...h,...f,scope_nodes:t.join("|")||"*"}).toString();return o.A.get("/api/v2/alert_transitions?".concat(e),{baseURL:window.envSettings.agentApiUrl,transform:w(i,a,0,d)})}return o.A.post("/api/v1/feed/search",{...h,...f,histogram_seconds:(null===(n=(0,s.Bp)(m,u))||void 0===n?void 0:n.secs)||1,node_ids:g,page_size:200,space_id:i,room_ids:"all-nodes"!==l?[a]:[],search_before:c||Date.now(),from_timestamp:m,to_timestamp:u},{transform:_(d,a)})},T=()=>o.A.get("/api/v1/feed/static/facets")},61531:(e,n,t)=>{t.d(n,{Ay:()=>m,UW:()=>a,Y5:()=>l,a$:()=>s,zb:()=>d});var o=t(47444),i=t(65624);const a=(0,o.eU)({key:"fnIndexHoverAtom",default:null}),s=(0,o.eU)({key:"fnClickPointAtom",default:null}),r=(0,o.Iz)({key:"checkAgainFnsAtom",default:()=>1}),l=(0,o.K0)({key:"availableFunctionsSelector",get:e=>{let{spaceId:n,roomId:t,extraKey:o}=e;return e=>{let{get:a}=e;return a(r(n)),(e=>{let{spaceId:n,roomId:t,extraKey:o}=e;return"feed"===o?Promise.resolve({data:[{name:"feed"}]}):(0,i.LO)(n,t,o)})({spaceId:n,roomId:t,extraKey:o})}}}),c={id:null,loading:!0,loaded:!1,loadingMore:!1,infoLoaded:!1,data:null,error:"",type:"",updateEvery:1,availableFilters:{},missingRequired:!1,lastModified:null,anchorAfter:null,offset:0,defaultCharts:[],acceptedParams:[],requiredParams:[],filtersToRefresh:{}},d={table:{...c,sortColumn:"",sortDirection:"descending",columns:{},columnVisibility:{},sortedColumns:[],pinnedColumns:[],groupByColumns:null},default:c},m=(0,o.Iz)({key:"function",default:e=>({...c,id:e})})},31225:(e,n,t)=>{t.d(n,{Z$:()=>s,b4:()=>o,wD:()=>a});const o=["#19C89E","#14A6C7","#F3D63D","#E05296","#FF7448","#C082FF"],i=3600,a=86400,s=[{minLimit:350*a,secs:7*a,unit:"week"},{minLimit:50*a,secs:a,unit:"day"},{minLimit:13*a,secs:21600,unit:"hour"},{minLimit:5*a,secs:10800,unit:"hour"},{minLimit:136800,secs:i,unit:"hour"},{minLimit:61200,secs:1800,unit:"minute"},{minLimit:28800,secs:600,unit:"minute"},{minLimit:10800,secs:300,unit:"minute"},{minLimit:2280,secs:60,unit:"minute"},{minLimit:780,secs:30,unit:"second"},{minLimit:420,secs:10,unit:"second"},{minLimit:300,secs:5,unit:"second"},{minLimit:1,secs:1,unit:"second"}]},50466:(e,n,t)=>{t.d(n,{Ak:()=>f,Be:()=>v,E:()=>_,Id:()=>k,Ol:()=>b,Ph:()=>P,WB:()=>p,WH:()=>w,ZY:()=>T,_H:()=>y,dP:()=>q,nm:()=>C,vx:()=>u,x9:()=>S});t(41393),t(14905),t(98992),t(81454),t(8872),t(62953);var o=t(96540),i=t(47767),a=t(47444),s=t(27467),r=t(3914),l=t(69765),c=t(37618),d=t(61531),m=t(65624);const u=e=>{var n;const t=(0,r.vt)(),i=(0,l.ID)(),s=(0,a.xf)((0,d.Y5)({spaceId:t,roomId:i,extraKey:e})),c=(0,a.Zs)((n=>{let{refresh:o}=n;return()=>o((0,d.Y5)({spaceId:t,roomId:i,extraKey:e}))}),[t,i,e]),m=(0,o.useMemo)((()=>{var e;if(null===(e=s.contents)||void 0===e||!e.data)return[];const n=[...s.contents.data];return n.sort(((e,n)=>e.name.localeCompare(n.name,void 0,{sensitivity:"accent",ignorePunctuation:!0}))),n}),[s.contents]);return{loaded:"loading"!==s.state,value:m,hasError:"hasError"===s.state,error:null===(n=s.contents)||void 0===n||null===(n=n.response)||void 0===n?void 0:n.data,refresh:c}},h=[],p=(0,a.K0)({key:"fnState",get:e=>{let{id:n,key:t}=e;return e=>{let{get:o}=e;const i=o((0,d.Ay)(n));return t?i[t]:i}},set:e=>{let{id:n,key:t}=e;return(e,o)=>{let{set:i,reset:a}=e;o||t?i((0,d.Ay)(n),(e=>t?{...e,[t]:o}:{...e,...o})):a((0,d.Ay)(n))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),g={extraKey:"fn"},f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;const[n]=(0,s.l6)("selectedFn",{defaultValue:h,flavour:"arr",...e});return n},y=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return(0,s.r$)("selectedFn",{defaultValue:h,flavour:"arr",...e})},b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return function(e){let{key:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;return(0,a.vc)(p({id:e,key:n}))}(f(e),e)},_=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return function(e){let{key:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;return(0,a.lZ)(p({id:e,key:n}))}(f(e),e)},w=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return[b(e),_(e)]},v=function(){let{key:e,flavour:n,...t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;const o=f(t);return(0,s.r$)(e,{extraKey:"".concat(o||t.extraKey,"Settings"),flavour:n})},T=function(){let{key:e,flavour:n,...t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;const o=f(t);return(0,s.r$)(e,{extraKey:"".concat(o||t.extraKey,"Filters"),flavour:n})},k=e=>{const n=(0,i.Zp)(),t=(()=>{const e=(0,l.r9)();return e&&"".concat(e,"/top")})();return(0,o.useCallback)((function(){n(t,{state:{nodeId:arguments.length>0&&void 0!==arguments[0]?arguments[0]:e}})}),[t,n])},x=(0,a.K0)({key:"feedFacetsSelector",get:e=>()=>e?(0,m.L6)():Promise.resolve({data:{}}),cachePolicy_UNSTABLE:{eviction:"most-recent"}}),P=e=>{const n=(0,r.vt)(),t=(0,c.ES)(n),{loading:i,loaded:s,aggregations:l}=b({extraKey:e}),d=(0,a.xf)(x(!t&&"feed"===e));return(0,o.useMemo)((()=>{var e;if("hasValue"!==d.state||!s)return[];if(!l)return[];if(Array.isArray(l))return l.reduce(((e,n)=>(e.push({...n,options:[...n.options].sort(((e,n)=>e.order-n.order||(e.name?e.name.localeCompare(n.name,void 0,{sensitivity:"accent",ignorePunctuation:!0}):n.count-e.count)))}),e)),[]).sort(((e,n)=>e.order-n.order));const n=(null===d||void 0===d||null===(e=d.contents)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.facets)||{};return Object.keys(n).sort(((e,t)=>n[e].order-n[t].order)).reduce(((e,t)=>{var o;const{display_name:i,field:a}=n[t];return null!==(o=l[t])&&void 0!==o&&o.buckets?(e.push({id:t,name:i,options:l[t].buckets.map((e=>{var n,t;return{id:e.key,name:(null===(n=d.contents.data.fields)||void 0===n||null===(n=n[a])||void 0===n?void 0:n[e.key])||e.key,count:(null===(t=e.hits)||void 0===t?void 0:t.doc_count)||0}}))}),e):e}),[])}),[e,t,d.state,s,i])},C=()=>(0,a.vc)(d.UW),q=()=>(0,a.lZ)(d.UW),S=()=>(0,a.L4)(d.a$)},98525:(e,n,t)=>{t.d(n,{Bp:()=>c,Sh:()=>r,iX:()=>s,py:()=>l});t(3064),t(98992),t(72577);var o=t(96540),i=t(21290),a=t(31225);const s=function(e){let{decimalPoints:n,defaultValue:t=""}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return null===e?t:isNaN(n)?e:parseFloat(e).toFixed(n)},r=function(e){let{defaultValue:n="",usec:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t&&(e=e?Math.floor(e/1e3):e),null===e)return n;const o=Math.floor(e/86400);e-=24*o*3600;const i=Math.floor(e/3600);e-=3600*i;const a=Math.floor(e/60);return"".concat(o,"d ").concat(i,"h ").concat(a,"m")},l=()=>{const{localeTimeString:e,localeDateString:n}=(0,i.$j)();return(0,o.useCallback)((function(t){let{defaultValue:o="",usec:i=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i&&(t=t?Math.floor(t/1e3):t);const a=new Date(t);return isNaN(a.valueOf())?o:"".concat(n(a,{long:!1})," ").concat(e(a,{secs:!0}))}),[])},c=(e,n)=>a.Z$.find((t=>{let{minLimit:o}=t;return((e,n)=>e<0?Math.abs(n-e):(n-e)/1e3)(e,n)>=o}))},24695:(e,n,t)=>{t.d(n,{A:()=>G});var o=t(96540),i=t(36091),a=t(58168),s=t(8711),r=t(10058),l=t(4659),c=t(87292),d=t(88773),m=t(68831);const u=s.default.article.withConfig({displayName:"nodes__StyledArticle",componentId:"sc-z8xzec-0"})(["padding-right:8px;padding-bottom:16px;"]),h=s.default.p.withConfig({displayName:"nodes__StyledParagraph",componentId:"sc-z8xzec-1"})(["margin-top:14px;line-height:1.5;"]),p=(0,s.default)(c.Ay).withConfig({displayName:"nodes__StyledCommand",componentId:"sc-z8xzec-2"})(["padding:8px;padding-right:32px;margin-top:8px;"]),g=s.default.ol.withConfig({displayName:"nodes__OrderedList",componentId:"sc-z8xzec-3"})(["list-style:roman;padding-left:16px;line-height:2;"]),f=s.default.ul.withConfig({displayName:"nodes__UnorderedList",componentId:"sc-z8xzec-4"})(['list-style-image:url("','/img/list-style-image.svg");padding-left:16px;line-height:2;'],m.A.assetsBaseURL),y={document:{render:u},heading:{render:e=>{let{level:n=1,...t}=e;const i={1:r.H1,2:r.H2,3:r.H3,4:r.H4,5:r.H5,6:r.H6}[n]||r.H1,s=n<=3?6-n:2;return o.createElement(i,(0,a.A)({margin:[s,0,2,0]},t))},attributes:{id:{type:String},level:{type:Number}}},paragraph:{render:h},link:{render:e=>{let{children:n,href:t,...i}=e;return o.createElement(l.A,(0,a.A)({href:t,rel:"noopener noreferrer",target:"_blank"},i),n)},attributes:{href:{type:String}}},code:{render:e=>{let{content:n,...t}=e;return o.createElement(c.R0,(0,a.A)({as:"span"},t),n)},attributes:{content:{type:String}}},fence:{render:p,attributes:{content:{type:String}}},list:{render:e=>{let{ordered:n,children:t,...i}=e;const a=n?g:f;return o.createElement(a,i,t)},attributes:{ordered:{type:Boolean}}},table:{render:e=>{let{children:n,...t}=e;return o.createElement(d.gY,t,n)}}},b=e=>{let{summary:n="",open:t=!1,children:i}=e;return o.createElement(r.Flex,{margin:[2,0,0,0]},o.createElement("details",{open:t},o.createElement("summary",null,o.createElement(r.Text,{strong:!0},n)),i))};t(33811),t(41393),t(86994),t(98992),t(81454),t(41795),t(62953);const _=(0,s.default)(r.Flex).attrs({column:!0}).withConfig({displayName:"styled__StyledTerminalCommand",componentId:"sc-3zs5xg-0"})(["position:relative;top:-1px;color:",";background:",";border:1px solid ",";cursor:pointer;overflow-wrap:anywhere;white-space:pre-wrap;padding:8px 16px 16px 8px;width:100%;font-family:Courier New,monospace;font-weight:bold;letter-spacing:0.09px;line-height:16px;font-size:14px;word-break:break-word;overflow-y:auto;margin-top:",";"],(0,r.getColor)("primary"),(0,r.getColor)("terminalGreen"),(0,r.getColor)("terminalGreenBorder"),(e=>{let{noMargin:n}=e;return n?"0":"16px"})),w=(0,s.default)(r.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-3zs5xg-1"})(["display:flex;align-self:flex-end;cursor:pointer;position:absolute;bottom:8px;right:8px;"]);var v=t(76051);var T=t(25159),k=t(18682),x=t(50876);const P=(C=e=>{let{children:n,...t}=e;const i=(0,o.useMemo)((()=>(0,T.jU)(n)),[n]),{sendLog:s,isReady:r}=(0,x.A)(),l=(0,o.useCallback)((()=>{(0,k.C)(i,{text:"Config copied to your clipboard."})(),s({feature:"ConnectNode",isStart:!0,copyString:i})}),[r,i]);return o.createElement(_,(0,a.A)({onClick:l},t),n,o.createElement(w,{name:"copy",size:"small",color:"textLite"}))},e=>{let{blurred:n,blurProps:t,...i}=e;return n?o.createElement(v.Ay,t,o.createElement(C,i)):o.createElement(C,i)});var C;const q=e=>{let{children:n}=e;const[t,i]=(0,o.useState)(0),a=o.Children.toArray(n).map((e=>{let{props:n}=e;return n}));return o.createElement(r.Flex,{column:!0,width:"100%",margin:[4,0,0,0]},o.createElement(r.Flex,{border:{side:"bottom",size:"1px",color:"borderSecondary"},padding:[0,4]},o.createElement(r.Tabs,{selected:t,onChange:i},a.map((e=>{let{label:n}=e;return o.createElement(r.Tab,{key:n,label:o.createElement(r.Text,null,n),minWidth:"auto",maxWidth:"auto",padding:[1,4],background:"mainBackground",small:!0})})))),o.createElement(r.Flex,{flex:!0},o.createElement(P,{noMargin:!0},a[t].children)))};var S=t(27467),D=t(47767),A=t(3914),M=t(27776),E=t(9060);const N=e=>{let{children:n,onClick:t}=e;return o.createElement(r.Box,{as:"a",cursor:"pointer",onClick:t},n)},H=e=>{let{categoryId:n,navigateToSettings:t,children:i}=e;const a=(0,D.Zp)(),[,s]=(0,S.N9)("selectedIntegrationCategory"),r=(0,A.bq)(),{pushCategory:l}=(0,M.b8)(),c=(0,E.A)(),d=(0,o.useCallback)((()=>{t?(s("deploy.docker-kubernetes"),a({pathname:"/spaces/".concat(r,"/settings/integrations"),replace:!0})):l(c(n))}),[l,n,c,t]);return o.createElement(N,{onClick:d},i)},R=(0,o.memo)(H);t(25440),t(79978),t(3064),t(72577);var I=t(22292),O=t(46741);const L=e=>{let{showClaimingOptions:n,command:t="",claimToken:o="",claimUrl:i="",claimRooms:a=""}=e;if(n)return t.replaceAll(/{% if \$showClaimingOptions %}\n?/gi,"").replaceAll(/{% \/if %}\n?/gi,"").replaceAll(/{% claim_token %}/gi,o).replaceAll(/{% claim_url %}/gi,i).replaceAll(/{% \$claim_rooms %}/gi,a);return t.replaceAll(/{%\s*if\s*\$showClaimingOptions\s*%}[\s\S]*?{%\s*\/if\s*%}\n?/gs,"")},B=e=>{var n;let{methods:t,isNightly:i,claimToken:a="",claimUrl:s="",claimRooms:l=""}=e;const c=i?"nightly":"stable",{showClaimingOptions:d}=(()=>{const e=(0,I.uW)("isAnonymous"),n=(0,O.JT)("node:Create");return{showClaimingOptions:!e&&n}})();return t.length?d&&!a?o.createElement(r.Flex,{padding:[8,0]},o.createElement(r.Text,null,"Loading token...")):t.length>1?o.createElement(q,null,t.map((e=>{let{method:n,commands:t}=e;const{command:i}=t.find((e=>e.channel==c))||{};return o.createElement(r.Tab,{key:n,label:n},L({showClaimingOptions:d,command:i,claimToken:a,claimUrl:s,claimRooms:l}))}))):o.createElement(P,null,L({showClaimingOptions:d,command:((null===(n=t[0])||void 0===n?void 0:n.commands.find((e=>e.channel==c)))||{}).command||"",claimToken:a,claimUrl:s,claimRooms:l})):null},U={nodes:y,tags:{details:{render:b,attributes:{summary:{type:String,default:""},open:{type:Boolean,default:!1}}},tabs:{render:q},tab:{render:r.Tab,attributes:{label:{type:String,default:""}}},terminal:{render:P},goToCategory:{render:R,attributes:{categoryId:{type:String,default:""},navigateToSettings:{type:Boolean,default:!1}}},command:{render:B,attributes:{methods:{type:Array,default:[]},isNightly:{type:Boolean,default:!1},claimToken:{type:String,default:""},claimUrl:{type:String,default:""},claimRooms:{type:String,default:""}}}}},j=e=>{let{config:n={},children:t}=e;return o.createElement(i.A,{transformConfiguration:{...U,...n}},t)},G=(0,o.memo)(j)},85276:(e,n,t)=>{t.d(n,{A:()=>p});var o=t(96540),i=t(10058),a=t(12602),s=t(6586),r=t(73865),l=t(63314);const c=()=>{const{loaded:e,hasLimitations:n,maxNodes:t,preferredNodes:c}=(0,r.A)();return n&&e&&c.length==t?o.createElement(l.Ay,{feature:"ActiveNodesLimitWarning"},o.createElement(i.Flex,{gap:2},o.createElement(i.Icon,{size:"medium",color:"warning",name:"warning_triangle"}),o.createElement(i.TextBig,null,"If you connect a new node you'll"," ",o.createElement(i.TextBig,{strong:!0},"exceed the limit of ",t," active Nodes"),". To unblock the new node, either"," ",o.createElement(a.A,null,o.createElement(i.TextBig,{color:"primary"},"upgrade to the Business plan"))," ","for unlimited access or"," ",o.createElement(s.A,null,o.createElement(i.TextBig,{color:"primary"},"review your Space active Nodes on the Setting page")),"."))):null};var d=t(24695),m=t(3914),u=t(63502),h=t(69765);const p=e=>{let{integration:n={},isNightly:t,rooms:a=[],navigateToSettings:s}=e;const{deployContent:r,methods:l}=n,p=(0,m.vt)(),g=(0,h.pr)(),f=(0,h.XA)(),y=null!==f&&void 0!==f&&f.loaded?f:g,b=null===y||void 0===y?void 0:y.id,_=(0,u.A)(p),w=window.envSettings.apiUrl,v=a.length?a.join(","):b,T=(0,o.useMemo)((()=>{var e;return{variables:{methods:l,isNightly:t,claimToken:null===_||void 0===_||null===(e=_[0])||void 0===e?void 0:e.token,claimUrl:w,claimRooms:v,navigateToSettings:s}}}),[l,t,_,w,v,s]);return o.createElement(i.Flex,{width:"100%",column:!0,padding:[4,0,0,0]},o.createElement(c,null),o.createElement(d.A,{config:T},r))}},82929:(e,n,t)=>{t.d(n,{A:()=>u});var o=t(96540),i=t(10058),a=t(4659),s=t(29217),r=t(63950),l=t.n(r),c=t(59778);const d={left:"stable",right:"nightly"},m=e=>{let{right:n}=e;const{title:t,description:a}=c.d[d[n?"right":"left"]]||{};return o.createElement(s.A,{content:a,align:"bottom"},o.createElement(i.Text,{padding:n?[0,0,0,1]:[0,1,0,0]},t))},u=e=>{let{isNightly:n,toggleNightly:t=l()}=e;return o.createElement(i.Flex,{column:!0,gap:1},o.createElement(a.A,{href:"https://learn.netdata.cloud/docs/getting-started/install-netdata#nightly-vs-stable-releases",rel:"noopener noreferrer",target:"_blank"},o.createElement(i.Flex,{alignItems:"center",gap:1},o.createElement(i.Text,{color:"primary"},"Updates channel"),o.createElement(i.Icon,{color:"primary",name:"goToNode",width:"18px",height:"18px"}))),o.createElement(i.Toggle,{labelLeft:"Stable",labelRight:"Nightly",Label:m,colored:!1,checked:n,disabled:!1,onChange:t}))}},58205:(e,n,t)=>{t.d(n,{V0:()=>U,vD:()=>W,jI:()=>K,qC:()=>j,Jr:()=>X,v2:()=>G,D_:()=>Y,yI:()=>B,rP:()=>z,aw:()=>F});var o=t(58168),i=(t(62953),t(96540)),a=t(63950),s=t.n(a),r=t(10058),l=t(43529),c=t(8711),d=t(3914),m=t(98046),u=t(87659),h=t(47373);const p=e=>{let{name:n,onEdit:t=s()}=e;return i.createElement(r.Flex,{alignItems:"center",gap:2},i.createElement(r.TextBig,null,n),i.createElement(r.Button,{icon:"pencilOutline",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:t}))},g=(0,c.default)(r.Flex).withConfig({displayName:"spaceInfo__StyledWrapper",componentId:"sc-166ce7m-0"})(["margin-top:-3px !important;margin-bottom:-3px !important;"]),f=e=>{let{name:n,setName:t=s(),onSave:o=s(),onCancel:a=s(),isLoading:l}=e;const[c,d]=(0,i.useState)(),m=(0,i.useMemo)((()=>(0,h.fc)(n)),[n]);return i.createElement(g,{gap:2},i.createElement(r.TextInput,{value:n,onChange:e=>{d(!0),t(e.target.value)},onKeyDown:e=>{let{code:n}=e;["Enter","NumpadEnter"].includes(n)&&o()},disabled:l,size:"tiny",error:h.xc[m],isDirty:c,instantFeedback:"all"}),i.createElement(r.Button,{label:"Save",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:o,disabled:l||!!m}),i.createElement(r.Button,{label:"Cancel",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:a,disabled:l}))},y=()=>{const{id:e,name:n}=(0,d.ap)(),t=(0,m.A)(e),[o,,a,s]=(0,u.A)(),[r,,l,c]=(0,u.A)(),[h,g]=(0,i.useState)(n),y=(0,i.useCallback)((()=>{s(),c()}),[]),b=(0,i.useCallback)((()=>{a(),t({name:h},{onSuccess:y,onFail:s})}),[h]);return r?i.createElement(f,{name:h,setName:g,onSave:b,onCancel:c,isLoading:o}):i.createElement(p,{name:n,onEdit:l})};var b=t(29217),_=t(38413),w=t(4659),v=t(69765),T=t(87860),k=t(81048),x=t(5668),P=t(46741),C=(t(25440),t(68831));const q=(0,t(92155).A)(r.Button),S={light:"primary",dark:"white",unspecified:"primary"},D=e=>{let{onClick:n}=e;const t={icon:"add_user",flavour:"borderless",onClick:n,label:"Invite your team","data-ga":"integrations::click-invite-team::header"};return(0,P.JT)("space:InviteUser")?i.createElement(q,t):i.createElement(b.A,{content:"You can't invite a user with your current permissions"},i.createElement(r.Flex,null,i.createElement(q,(0,o.A)({},t,{disabled:!0}))))},A=e=>{let{nodesCount:n,onClick:t=s()}=e;const o=(0,P.JT)("node:Create"),a=(0,i.useMemo)((()=>({onClick:t,disabled:!o})),[o]),l=n>0?"Connect more!":"Connect a node";return o?i.createElement(w.A,a,l):i.createElement(b.A,{content:"You don't have permission to connect new nodes. Please contact an administrator to do it"},i.createElement(r.Box,null,i.createElement(w.A,a,l)))},M=e=>{let{nodesCount:n,onConnectClick:t=s()}=e;return i.createElement(r.Flex,{gap:2},i.createElement(A,{nodesCount:n,onClick:t}),i.createElement(r.Text,null,"to get started"))},E=e=>{let{nodesCount:n,onConnectClick:t=s()}=e;return i.createElement(r.Flex,{gap:2},i.createElement(r.Text,null,"You have connected ",n," node",1===n?"":"s","."),i.createElement(A,{nodesCount:n,onClick:t}))},N=(0,i.memo)((e=>{let{nodesCount:n,onConnectClick:t=s()}=e;return i.createElement(r.Flex,{gap:2},i.createElement(r.Text,null,"This is your new space"),n>0?i.createElement(E,{nodesCount:n,onConnectClick:t}):i.createElement(M,{nodesCount:n,onConnectClick:t}))})),H=e=>{let{onInvite:n=s()}=e;const t=(0,x.xd)("theme"),o=(0,d.vt)(),a=(0,v.ID)(),c=(0,v.J_)(o,k.mL),[m,,h,p]=(0,u.A)(),g=(()=>{const e=(0,d.bq)(),n=(0,v.QW)(),{defaultRoomView:t}=C.A;return(0,i.useCallback)((()=>{window.location.replace("/spaces/".concat(e,"/rooms/").concat(n,"/").concat(t))}),[])})(),[f,b]=(0,i.useState)([]);(0,T.A)({spaceId:o,id:a||c,pollingInterval:3e3,keepPolling:!0,onNodeIdsChange:e=>{let{nodeIds:n}=e;return b((null===n||void 0===n?void 0:n.length)||0)}});const w=f>0;return i.createElement(i.Fragment,null,i.createElement(l.A,{height:"66px",width:"66px",color:S[t]}),i.createElement(r.H1,{strong:!1},"Welcome to Netdata!"),i.createElement(N,{nodesCount:f,onConnectClick:e=>{e.preventDefault,h()}}),i.createElement(y,null),i.createElement(r.Flex,{gap:4},i.createElement(D,{onClick:n}),i.createElement(q,{icon:"rocket",flavour:w?"default":"borderless",onClick:g,label:w?"Launch space":"Node Required for Launch",disabled:!w,fetaure:"LaunchSpace"})),m&&i.createElement(_.A,{onClose:p,room:a}))},R=()=>i.createElement(i.Fragment,null,i.createElement(r.H1,{strong:!1},"Integrations Made Easy!"),i.createElement(r.Text,null,"Unleash the Power of Connected Systems"));var I=t(85276),O=t(24695);const L=e=>{let{integration:n={}}=e;return i.createElement(r.Flex,{width:"100%",column:!0,gap:2,padding:[4,0,0,0]},i.createElement(O.A,null,n.alerts))},B="deploy.operating-systems",U=34,j="data-collection",G="deploy-kubernetes",F={deploy:"rocket","data-collection":"collect",notify:"alarmFilled",export:"importExport",logs:void 0},z={deploy:I.A,"alert-notifications":L},Y={homePage:"homePage",settingsPage:"settingsPage",addNodesModal:"addNodesModal"},X=Y.homePage,W={homePage:{headerContent:H},settingsPage:{headerContent:R},addNodesModal:{headerContent:null}},K={homePage:{header:{height:284,wrapperProps:{padding:[4,0]}},search:{wrapperProps:{width:"500px",margin:[0]},inputProps:{containerStyles:{width:"100%"}}},cncf:{height:80},categoryCharacterWidth:9},settingsPage:{header:{height:210,wrapperProps:{padding:[4,0]}},search:{wrapperProps:{width:"500px",margin:[0]},inputProps:{containerStyles:{width:"100%"}}},cncf:{height:0},categoryCharacterWidth:9},addNodesModal:{header:{height:126,wrapperProps:{width:"100%",padding:[4]}},search:{wrapperProps:{width:"100%",margin:[0],flex:!0},inputProps:{containerStyles:{width:"500px"},size:"small"}},cncf:{height:16},categoryCharacterWidth:9}}},9060:(e,n,t)=>{t.d(n,{A:()=>i});t(3064),t(98992),t(72577);var o=t(27776);const i=()=>{const e=(0,o.j6)();return n=>e.find((e=>e.id==n))}},27776:(e,n,t)=>{t.d(n,{j6:()=>x,x9:()=>T,hh:()=>v,XL:()=>N,b8:()=>k,FF:()=>S,oE:()=>A,GT:()=>D,AR:()=>q,yv:()=>E,q2:()=>M,WB:()=>C,Ss:()=>P});t(17333),t(3064),t(41393),t(98992),t(54520),t(72577),t(81454),t(62953);var o=t(96540),i=t(47444),a=t(27467);const s=[{id:"deploy",name:"Deploy",description:"",most_popular:!0,priority:1,children:[{id:"deploy.operating-systems",name:"Operating Systems",description:"",most_popular:!0,priority:1,children:[]},{id:"deploy.docker-kubernetes",name:"Docker & Kubernetes",description:"",most_popular:!0,priority:2,children:[]},{id:"deploy.provisioning-systems",parent:"deploy",name:"Provisioning Systems",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection",name:"Data Collection",description:"",most_popular:!0,priority:2,children:[{id:"data-collection.other",name:"Other",description:"",most_popular:!1,priority:-1,collector_default:!0,children:[]},{id:"data-collection.ebpf",name:"eBPF",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.freebsd",name:"FreeBSD",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.containers-and-vms",name:"Containers and VMs",description:"",most_popular:!0,priority:6,children:[]},{id:"data-collection.database-servers",name:"Databases",description:"",most_popular:!0,priority:1,children:[]},{id:"data-collection.kubernetes",name:"Kubernetes",description:"",most_popular:!0,priority:7,children:[]},{id:"data-collection.notifications",name:"Incident Management",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.service-discovery-registry",name:"Service Discovery / Registry",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.web-servers-and-web-proxies",name:"Web Servers and Web Proxies",description:"",most_popular:!0,priority:2,children:[]},{id:"data-collection.cloud-provider-managed",name:"Cloud Provider Managed",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.windows-systems",name:"Windows Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.apm",name:"APM",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.hardware-devices-and-sensors",name:"Hardware Devices and Sensors",description:"",most_popular:!0,priority:4,children:[]},{id:"data-collection.macos-systems",name:"macOS Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.message-brokers",name:"Message Brokers",description:"",most_popular:!0,priority:3,children:[]},{id:"data-collection.provisioning-systems",name:"Provisioning Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.search-engines",name:"Search Engines",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems",name:"Linux Systems",description:"",most_popular:!0,priority:5,children:[{id:"data-collection.linux-systems.system-metrics",name:"System",description:"",most_popular:!0,priority:1,children:[]},{id:"data-collection.linux-systems.memory-metrics",name:"Memory",description:"",most_popular:!0,priority:3,children:[]},{id:"data-collection.linux-systems.cpu-metrics",name:"CPU",description:"",most_popular:!0,priority:2,children:[]},{id:"data-collection.linux-systems.pressure-metrics",name:"Pressure",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.network-metrics",name:"Network",description:"",most_popular:!0,priority:5,children:[]},{id:"data-collection.linux-systems.ipc-metrics",name:"IPC",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.disk-metrics",name:"Disk",description:"",most_popular:!0,priority:4,children:[]},{id:"data-collection.linux-systems.firewall-metrics",name:"Firewall",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.power-supply-metrics",name:"Power Supply",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics",name:"Filesystem",description:"",most_popular:!1,priority:-1,children:[{id:"data-collection.linux-systems.filesystem-metrics.zfs",name:"ZFS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics.btrfs",name:"BTRFS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics.nfs",name:"NFS",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection.linux-systems.kernel-metrics",name:"Kernel",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection.networking-stack-and-network-interfaces",name:"Networking Stack and Network Interfaces",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.synthetic-checks",name:"Synthetic Checks",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ci-cd-systems",name:"CICD Platforms",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ups",name:"UPS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.freebsd-systems",name:"FreeBSD Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.logs-servers",name:"Logs Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.security-systems",name:"Security Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.observability",name:"Observability",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.gaming",name:"Gaming",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.iot-devices",name:"IoT Devices",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.media-streaming-servers",name:"Media Services",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.authentication-and-authorization",name:"Authentication and Authorization",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.project-management",name:"Project Management",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.application-servers",name:"Application Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.dns-and-dhcp-servers",name:"DNS and DHCP Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.mail-servers",name:"Mail Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.processes-and-system-services",name:"Processes and System Services",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.storage-mount-points-and-filesystems",name:"Storage, Mount Points and Filesystems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.systemd",name:"Systemd",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.telephony-servers",name:"Telephony Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.vpns",name:"VPNs",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.blockchain-servers",name:"Blockchain Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.distributed-computing-systems",name:"Distributed Computing Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.generic-data-collection",name:"Generic Data Collection",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.p2p",name:"P2P",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.snmp-and-networked-devices",name:"SNMP and Networked Devices",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.system-clock-and-ntp",name:"System Clock and NTP",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.nas",name:"NAS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.api-gateways",name:"API Gateways",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.task-queues",name:"Task Queues",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ftp-servers",name:"FTP Servers",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"logs",name:"Logs",description:"Monitoring logs on your infrastructure",most_popular:!0,priority:3,children:[]},{id:"export",name:"exporters",description:"Exporter Integrations",most_popular:!0,priority:5,children:[]},{id:"notify",name:"notifications",description:"Notification Integrations",most_popular:!0,priority:4,children:[{id:"notify.agent",name:"Agent Dispatched Notifications",description:"",most_popular:!0,priority:2,children:[]},{id:"notify.cloud",name:"Centralized Cloud Notifications",description:"",most_popular:!0,priority:1,children:[]}]}],r=[{meta:{plugin_name:"apps.plugin",module_name:"apps",monitored_instance:{name:"Applications",link:"",categories:["data-collection.processes-and-system-services"],icon_filename:"applications.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["applications","processes","os","host monitoring"],most_popular:!1},overview:"# Applications\n\nPlugin: apps.plugin\nModule: apps\n\n## Overview\n\nMonitor Applications for optimal software performance and resource usage.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per applications group\n\nThese metrics refer to the application group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.cpu_utilization | user, system | percentage |\n| app.cpu_guest_utilization | guest | percentage |\n| app.cpu_context_switches | voluntary, involuntary | switches/s |\n| app.mem_usage | rss | MiB |\n| app.mem_private_usage | mem | MiB |\n| app.vmem_usage | vmem | MiB |\n| app.mem_page_faults | minor, major | pgfaults/s |\n| app.swap_usage | swap | MiB |\n| app.disk_physical_io | reads, writes | KiB/s |\n| app.disk_logical_io | reads, writes | KiB/s |\n| app.processes | processes | processes |\n| app.threads | threads | threads |\n| app.fds_open_limit | limit | percentage |\n| app.fds_open | files, sockets, pipes, inotifies, event, timer, signal, eventpolls, other | fds |\n| app.uptime | uptime | seconds |\n| app.uptime_summary | min, avg, max | seconds |\n\n",integration_type:"collector",id:"apps.plugin-apps-Applications",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/apps.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"apps.plugin",module_name:"groups",monitored_instance:{name:"User Groups",link:"",categories:["data-collection.processes-and-system-services"],icon_filename:"user.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["groups","processes","user auditing","authorization","os","host monitoring"],most_popular:!1},overview:"# User Groups\n\nPlugin: apps.plugin\nModule: groups\n\n## Overview\n\nThis integration monitors resource utilization on a user groups context.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per user group\n\nThese metrics refer to the user group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user_group | The name of the user group. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| usergroup.cpu_utilization | user, system | percentage |\n| usergroup.cpu_guest_utilization | guest | percentage |\n| usergroup.cpu_context_switches | voluntary, involuntary | switches/s |\n| usergroup.mem_usage | rss | MiB |\n| usergroup.mem_private_usage | mem | MiB |\n| usergroup.vmem_usage | vmem | MiB |\n| usergroup.mem_page_faults | minor, major | pgfaults/s |\n| usergroup.swap_usage | swap | MiB |\n| usergroup.disk_physical_io | reads, writes | KiB/s |\n| usergroup.disk_logical_io | reads, writes | KiB/s |\n| usergroup.processes | processes | processes |\n| usergroup.threads | threads | threads |\n| usergroup.fds_open_limit | limit | percentage |\n| usergroup.fds_open | files, sockets, pipes, inotifies, event, timer, signal, eventpolls, other | fds |\n| usergroup.uptime | uptime | seconds |\n| usergroup.uptime_summary | min, avg, max | seconds |\n\n",integration_type:"collector",id:"apps.plugin-groups-User_Groups",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/apps.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"apps.plugin",module_name:"users",monitored_instance:{name:"Users",link:"",categories:["data-collection.processes-and-system-services"],icon_filename:"users.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["users","processes","os","host monitoring"],most_popular:!1},overview:"# Users\n\nPlugin: apps.plugin\nModule: users\n\n## Overview\n\nThis integration monitors resource utilization on a user context.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per user\n\nThese metrics refer to the user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | The name of the user. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| user.cpu_utilization | user, system | percentage |\n| user.cpu_guest_utilization | guest | percentage |\n| user.cpu_context_switches | voluntary, involuntary | switches/s |\n| user.mem_usage | rss | MiB |\n| user.mem_private_usage | mem | MiB |\n| user.vmem_usage | vmem | MiB |\n| user.mem_page_faults | minor, major | pgfaults/s |\n| user.swap_usage | swap | MiB |\n| user.disk_physical_io | reads, writes | KiB/s |\n| user.disk_logical_io | reads, writes | KiB/s |\n| user.processes | processes | processes |\n| user.threads | threads | threads |\n| user.fds_open_limit | limit | percentage |\n| user.fds_open | files, sockets, pipes, inotifies, event, timer, signal, eventpolls, other | fds |\n| user.uptime | uptime | seconds |\n| user.uptime_summary | min, avg, max | seconds |\n\n",integration_type:"collector",id:"apps.plugin-users-Users",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/apps.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"Containers",link:"",categories:["data-collection.containers-and-vms"],icon_filename:"container.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["containers"],most_popular:!0},overview:"# Containers\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n| cgroup.pids_current | pids | pids |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n| device | The name of the host network interface linked to the container\'s network interface. |\n| container_device | Container network interface name. |\n| interface_type | Network interface type. Always "virtual" for the containers. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n',integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-Containers",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"Kubernetes Containers",link:"https://kubernetes.io/",icon_filename:"kubernetes.svg",categories:["data-collection.kubernetes"]},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["k8s","kubernetes","pods","containers"],most_popular:!0},overview:"# Kubernetes Containers\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ k8s_cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | k8s.cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ k8s_cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | k8s.cgroup.mem_usage | cgroup memory utilization |\n| [ k8s_cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | k8s.cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ k8s_cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | k8s.cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per k8s cgroup\n\nThese metrics refer to the Pod container.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_node_name | Node name. The value of _pod.spec.nodeName_. |\n| k8s_namespace | Namespace name. The value of _pod.metadata.namespace_. |\n| k8s_controller_kind | Controller kind (ReplicaSet, DaemonSet, StatefulSet, Job, etc.). The value of _pod.OwnerReferences.Controller.Kind_. |\n| k8s_controller_name | Controller name.The value of _pod.OwnerReferences.Controller.Name_. |\n| k8s_pod_name | Pod name. The value of _pod.metadata.name_. |\n| k8s_container_name | Container name. The value of _pod.spec.containers.name_. |\n| k8s_kind | Instance kind: "pod" or "container". |\n| k8s_qos_class | QoS class (guaranteed, burstable, besteffort). |\n| k8s_cluster_id | Cluster ID. The value of kube-system namespace _namespace.metadata.uid_. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s.cgroup.cpu_limit | used | percentage |\n| k8s.cgroup.cpu | user, system | percentage |\n| k8s.cgroup.cpu_per_core | a dimension per core | percentage |\n| k8s.cgroup.throttled | throttled | percentage |\n| k8s.cgroup.throttled_duration | duration | ms |\n| k8s.cgroup.cpu_shares | shares | shares |\n| k8s.cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| k8s.cgroup.writeback | dirty, writeback | MiB |\n| k8s.cgroup.mem_activity | in, out | MiB/s |\n| k8s.cgroup.pgfaults | pgfault, swap | MiB/s |\n| k8s.cgroup.mem_usage | ram, swap | MiB |\n| k8s.cgroup.mem_usage_limit | available, used | MiB |\n| k8s.cgroup.mem_utilization | utilization | percentage |\n| k8s.cgroup.mem_failcnt | failures | count |\n| k8s.cgroup.io | read, write | KiB/s |\n| k8s.cgroup.serviced_ops | read, write | operations/s |\n| k8s.cgroup.throttle_io | read, write | KiB/s |\n| k8s.cgroup.throttle_serviced_ops | read, write | operations/s |\n| k8s.cgroup.queued_ops | read, write | operations |\n| k8s.cgroup.merged_ops | read, write | operations/s |\n| k8s.cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.cpu_some_pressure_stall_time | time | ms |\n| k8s.cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.cpu_full_pressure_stall_time | time | ms |\n| k8s.cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.memory_some_pressure_stall_time | time | ms |\n| k8s.cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.memory_full_pressure_stall_time | time | ms |\n| k8s.cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.io_some_pressure_stall_time | time | ms |\n| k8s.cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.io_full_pressure_stall_time | time | ms |\n| k8s.cgroup.pids_current | pids | pids |\n\n### Per k8s cgroup network device\n\nThese metrics refer to the Pod container network interface.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | The name of the host network interface linked to the container\'s network interface. |\n| container_device | Container network interface name. |\n| interface_type | Network interface type. Always "virtual" for the containers. |\n| k8s_node_name | Node name. The value of _pod.spec.nodeName_. |\n| k8s_namespace | Namespace name. The value of _pod.metadata.namespace_. |\n| k8s_controller_kind | Controller kind (ReplicaSet, DaemonSet, StatefulSet, Job, etc.). The value of _pod.OwnerReferences.Controller.Kind_. |\n| k8s_controller_name | Controller name.The value of _pod.OwnerReferences.Controller.Name_. |\n| k8s_pod_name | Pod name. The value of _pod.metadata.name_. |\n| k8s_container_name | Container name. The value of _pod.spec.containers.name_. |\n| k8s_kind | Instance kind: "pod" or "container". |\n| k8s_qos_class | QoS class (guaranteed, burstable, besteffort). |\n| k8s_cluster_id | Cluster ID. The value of kube-system namespace _namespace.metadata.uid_. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s.cgroup.net_net | received, sent | kilobits/s |\n| k8s.cgroup.net_packets | received, sent, multicast | pps |\n| k8s.cgroup.net_errors | inbound, outbound | errors/s |\n| k8s.cgroup.net_drops | inbound, outbound | errors/s |\n| k8s.cgroup.net_fifo | receive, transmit | errors/s |\n| k8s.cgroup.net_compressed | receive, sent | pps |\n| k8s.cgroup.net_events | frames, collisions, carrier | events/s |\n| k8s.cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| k8s.cgroup.net_carrier | up, down | state |\n| k8s.cgroup.net_mtu | mtu | octets |\n\n',integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-Kubernetes_Containers",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"LXC Containers",link:"",icon_filename:"lxc.png",categories:["data-collection.containers-and-vms"]},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["lxc","lxd","container"],most_popular:!0},overview:"# LXC Containers\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor LXC Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n| cgroup.pids_current | pids | pids |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n| device | The name of the host network interface linked to the container\'s network interface. |\n| container_device | Container network interface name. |\n| interface_type | Network interface type. Always "virtual" for the containers. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n',integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-LXC_Containers",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"Libvirt Containers",link:"",icon_filename:"libvirt.png",categories:["data-collection.containers-and-vms"]},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["libvirt","container"],most_popular:!0},overview:"# Libvirt Containers\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor Libvirt for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n| cgroup.pids_current | pids | pids |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n| device | The name of the host network interface linked to the container\'s network interface. |\n| container_device | Container network interface name. |\n| interface_type | Network interface type. Always "virtual" for the containers. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n',integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-Libvirt_Containers",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"Proxmox Containers",link:"",icon_filename:"proxmox.png",categories:["data-collection.containers-and-vms"]},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["proxmox","container"],most_popular:!0},overview:"# Proxmox Containers\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor Proxmox for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n| cgroup.pids_current | pids | pids |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n| device | The name of the host network interface linked to the container\'s network interface. |\n| container_device | Container network interface name. |\n| interface_type | Network interface type. Always "virtual" for the containers. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n',integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-Proxmox_Containers",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"Systemd Services",link:"",icon_filename:"systemd.svg",categories:["data-collection.systemd"],keywords:["systemd","services"]},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["containers"],most_popular:!0},overview:"# Systemd Services\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per systemd service\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service_name | Service name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| systemd.service.cpu.utilization | user, system | percentage |\n| systemd.service.memory.usage | ram, swap | MiB |\n| systemd.service.memory.failcnt | fail | failures/s |\n| systemd.service.memory.ram.usage | rss, cache, mapped_file, rss_huge | MiB |\n| systemd.service.memory.writeback | writeback, dirty | MiB |\n| systemd.service.memory.paging.faults | minor, major | MiB/s |\n| systemd.service.memory.paging.io | in, out | MiB/s |\n| systemd.service.disk.io | read, write | KiB/s |\n| systemd.service.disk.iops | read, write | operations/s |\n| systemd.service.disk.throttle.io | read, write | KiB/s |\n| systemd.service.disk.throttle.iops | read, write | operations/s |\n| systemd.service.disk.queued_iops | read, write | operations/s |\n| systemd.service.disk.merged_iops | read, write | operations/s |\n| systemd.service.pids.current | pids | pids |\n\n",integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-Systemd_Services",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"Virtual Machines",link:"",icon_filename:"container.svg",categories:["data-collection.containers-and-vms"]},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["vms","virtualization","container"],most_popular:!0},overview:"# Virtual Machines\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor Virtual Machines for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n| cgroup.pids_current | pids | pids |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n| device | The name of the host network interface linked to the container\'s network interface. |\n| container_device | Container network interface name. |\n| interface_type | Network interface type. Always "virtual" for the containers. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n',integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-Virtual_Machines",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"cgroups.plugin",module_name:"/sys/fs/cgroup",monitored_instance:{name:"oVirt Containers",link:"",icon_filename:"ovirt.svg",categories:["data-collection.containers-and-vms"]},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ovirt","container"],most_popular:!0},overview:"# oVirt Containers\n\nPlugin: cgroups.plugin\nModule: /sys/fs/cgroup\n\n## Overview\n\nMonitor oVirt for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n| cgroup.pids_current | pids | pids |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container name or group path if name resolution fails. |\n| image | Docker/Podman container image name. |\n| device | The name of the host network interface linked to the container\'s network interface. |\n| container_device | Container network interface name. |\n| interface_type | Network interface type. Always "virtual" for the containers. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n',integration_type:"collector",id:"cgroups.plugin-/sys/fs/cgroup-oVirt_Containers",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cgroups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"charts.d.plugin",module_name:"ap",monitored_instance:{name:"Access Points",link:"https://learn.netdata.cloud/docs/data-collection/networking-stack-and-network-interfaces/linux-access-points",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ap","access","point","wireless","network"],most_popular:!1},overview:"# Access Points\n\nPlugin: charts.d.plugin\nModule: ap\n\n## Overview\n\nThe ap collector visualizes data related to wireless access points.\n\nIt uses the `iw` command line utility to detect access points. For each interface that is of `type AP`, it then runs `iw INTERFACE station dump` and collects statistics.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin is able to auto-detect if you are running access points on your linux box.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install charts.d plugin\n\nIf [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed.\n\n\n#### `iw` utility.\n\nMake sure the `iw` utility is installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/ap.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/ap.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It\'s a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the ap collector.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ap_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 1 | no |\n| ap_priority | Controls the order of charts at the netdata dashboard. | 6900 | no |\n| ap_retries | The number of retries to do in case of failure before disabling the collector. | 10 | no |\n\n{% /details %}\n#### Examples\n\n##### Change the collection frequency\n\nSpecify a custom collection frequence (update_every) for this collector\n\n```yaml\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\nap_update_every=10\n\n# the charts priority on the dashboard\n#ap_priority=6900\n\n# the number of retries to do in case of failure\n# before disabling the module\n#ap_retries=10\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ap` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 ap\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per wireless device\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ap.clients | clients | clients |\n| ap.net | received, sent | kilobits/s |\n| ap.packets | received, sent | packets/s |\n| ap.issues | retries, failures | issues/s |\n| ap.signal | average signal | dBm |\n| ap.bitrate | receive, transmit, expected | Mbps |\n\n",integration_type:"collector",id:"charts.d.plugin-ap-Access_Points",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/charts.d.plugin/ap/metadata.yaml",related_resources:""},{meta:{plugin_name:"charts.d.plugin",module_name:"apcupsd",monitored_instance:{name:"APC UPS",link:"https://www.apc.com",categories:["data-collection.ups"],icon_filename:"apc.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ups","apc","power","supply","battery","apcupsd"],most_popular:!1},overview:"# APC UPS\n\nPlugin: charts.d.plugin\nModule: apcupsd\n\n## Overview\n\nMonitor APC UPS performance with Netdata for optimal uninterruptible power supply operations. Enhance your power supply reliability with real-time APC UPS metrics.\n\nThe collector uses the `apcaccess` tool to contact the `apcupsd` daemon and get the APC UPS statistics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, with no configuration provided, the collector will try to contact 127.0.0.1:3551 with using the `apcaccess` utility.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install charts.d plugin\n\nIf [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed.\n\n\n#### Required software\n\nMake sure the `apcaccess` and `apcupsd` are installed and running.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/apcupsd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/apcupsd.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It\'s a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the apcupsd collector.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| apcupsd_sources | This is an array of apcupsd sources. You can have multiple entries there. Please refer to the example below on how to set it. | 127.0.0.1:3551 | no |\n| apcupsd_timeout | How long to wait for apcupsd to respond. | 3 | no |\n| apcupsd_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 1 | no |\n| apcupsd_priority | The charts priority on the dashboard. | 90000 | no |\n| apcupsd_retries | The number of retries to do in case of failure before disabling the collector. | 10 | no |\n\n{% /details %}\n#### Examples\n\n##### Multiple apcupsd sources\n\nSpecify a multiple apcupsd sources along with a custom update interval\n\n```yaml\n# add all your APC UPSes in this array - uncomment it too\ndeclare -A apcupsd_sources=(\n ["local"]="127.0.0.1:3551",\n ["remote"]="1.2.3.4:3551"\n)\n\n# how long to wait for apcupsd to respond\n#apcupsd_timeout=3\n\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\napcupsd_update_every=5\n\n# the charts priority on the dashboard\n#apcupsd_priority=90000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#apcupsd_retries=10\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `apcupsd` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 apcupsd\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ apcupsd_ups_charge ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.charge | average UPS charge over the last minute |\n| [ apcupsd_10min_ups_load ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.load | average UPS load over the last 10 minutes |\n| [ apcupsd_last_collected_secs ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.load | number of seconds since the last successful data collection |\n| [ apcupsd_selftest_warning ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.selftest | self-test failed due to insufficient battery capacity or due to overload. |\n| [ apcupsd_status_onbatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS has switched to battery power because the input power has failed |\n| [ apcupsd_status_overload ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS is overloaded and cannot supply enough power to the load |\n| [ apcupsd_status_lowbatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS battery is low and needs to be recharged |\n| [ apcupsd_status_replacebatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS battery has reached the end of its lifespan and needs to be replaced |\n| [ apcupsd_status_nobatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS has no battery |\n| [ apcupsd_status_commlost ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS communication link is lost |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ups\n\nMetrics related to UPS. Each UPS provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apcupsd.charge | charge | percentage |\n| apcupsd.battery.voltage | voltage, nominal | Volts |\n| apcupsd.input.voltage | voltage, min, max | Volts |\n| apcupsd.output.voltage | absolute, nominal | Volts |\n| apcupsd.input.frequency | frequency | Hz |\n| apcupsd.load | load | percentage |\n| apcupsd.load_usage | load | Watts |\n| apcupsd.temperature | temp | Celsius |\n| apcupsd.time | time | Minutes |\n| apcupsd.online | online | boolean |\n| apcupsd.selftest | OK, NO, BT, NG | status |\n| apcupsd.status | ONLINE, ONBATT, OVERLOAD, LOWBATT, REPLACEBATT, NOBATT, SLAVE, SLAVEDOWN, COMMLOST, CAL, TRIM, BOOST, SHUTTING_DOWN | status |\n\n",integration_type:"collector",id:"charts.d.plugin-apcupsd-APC_UPS",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/charts.d.plugin/apcupsd/metadata.yaml",related_resources:""},{meta:{plugin_name:"charts.d.plugin",module_name:"libreswan",monitored_instance:{name:"Libreswan",link:"https://libreswan.org/",categories:["data-collection.vpns"],icon_filename:"libreswan.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["vpn","libreswan","network","ipsec"],most_popular:!1},overview:"# Libreswan\n\nPlugin: charts.d.plugin\nModule: libreswan\n\n## Overview\n\nMonitor Libreswan performance for optimal IPsec VPN operations. Improve your VPN operations with Netdata''s real-time metrics and built-in alerts.\n\nThe collector uses the `ipsec` command to collect the information it needs.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install charts.d plugin\n\nIf [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed.\n\n\n#### Permissions to execute `ipsec`\n\nThe plugin executes 2 commands to collect all the information it needs:\n\n```sh\nipsec whack --status\nipsec whack --trafficstatus\n```\n\nThe first command is used to extract the currently established tunnels, their IDs and their names.\nThe second command is used to extract the current uptime and traffic.\n\nMost probably user `netdata` will not be able to query libreswan, so the `ipsec` commands will be denied.\nThe plugin attempts to run `ipsec` as `sudo ipsec ...`, to get access to libreswan statistics.\n\nTo allow user `netdata` execute `sudo ipsec ...`, create the file `/etc/sudoers.d/netdata` with this content:\n\n```\nnetdata ALL = (root) NOPASSWD: /sbin/ipsec whack --status\nnetdata ALL = (root) NOPASSWD: /sbin/ipsec whack --trafficstatus\n```\n\nMake sure the path `/sbin/ipsec` matches your setup (execute `which ipsec` to find the right path).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/libreswan.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/libreswan.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It\'s a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the libreswan collector.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| libreswan_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 1 | no |\n| libreswan_priority | The charts priority on the dashboard | 90000 | no |\n| libreswan_retries | The number of retries to do in case of failure before disabling the collector. | 10 | no |\n| libreswan_sudo | Whether to run `ipsec` with `sudo` or not. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### Run `ipsec` without sudo\n\nRun the `ipsec` utility without sudo\n\n```yaml\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\n#libreswan_update_every=1\n\n# the charts priority on the dashboard\n#libreswan_priority=90000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#libreswan_retries=10\n\n# set to 1, to run ipsec with sudo (the default)\n# set to 0, to run ipsec without sudo\nlibreswan_sudo=0\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `libreswan` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 libreswan\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IPSEC tunnel\n\nMetrics related to IPSEC tunnels. Each tunnel provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| libreswan.net | in, out | kilobits/s |\n| libreswan.uptime | uptime | seconds |\n\n",integration_type:"collector",id:"charts.d.plugin-libreswan-Libreswan",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/charts.d.plugin/libreswan/metadata.yaml",related_resources:""},{meta:{plugin_name:"charts.d.plugin",module_name:"opensips",monitored_instance:{name:"OpenSIPS",link:"https://opensips.org/",categories:["data-collection.telephony-servers"],icon_filename:"opensips.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["opensips","sip","voice","video","stream"],most_popular:!1},overview:"# OpenSIPS\n\nPlugin: charts.d.plugin\nModule: opensips\n\n## Overview\n\nExamine OpenSIPS metrics for insights into SIP server operations. Study call rates, error rates, and response times for reliable voice over IP services.\n\nThe collector uses the `opensipsctl` command line utility to gather OpenSIPS metrics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector will attempt to call `opensipsctl` along with a default number of parameters, even without any configuration.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install charts.d plugin\n\nIf [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed.\n\n\n#### Required software\n\nThe collector requires the `opensipsctl` to be installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/opensips.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/opensips.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It\'s a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the opensips collector.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| opensips_opts | Specify parameters to the `opensipsctl` command. If the default value fails to get global status, set here whatever options are needed to connect to the opensips server. | fifo get_statistics all | no |\n| opensips_cmd | If `opensipsctl` is not in $PATH, specify it\'s full path here. | | no |\n| opensips_timeout | How long to wait for `opensipsctl` to respond. | 2 | no |\n| opensips_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 5 | no |\n| opensips_priority | The charts priority on the dashboard. | 80000 | no |\n| opensips_retries | The number of retries to do in case of failure before disabling the collector. | 10 | no |\n\n{% /details %}\n#### Examples\n\n##### Custom `opensipsctl` command\n\nSet a custom path to the `opensipsctl` command\n\n```yaml\n#opensips_opts="fifo get_statistics all"\nopensips_cmd=/opt/opensips/bin/opensipsctl\n#opensips_timeout=2\n\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\n#opensips_update_every=5\n\n# the charts priority on the dashboard\n#opensips_priority=80000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#opensips_retries=10\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `opensips` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 opensips\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenSIPS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| opensips.dialogs_active | active, early | dialogs |\n| opensips.users | registered, location, contacts, expires | users |\n| opensips.registrar | accepted, rejected | registrations/s |\n| opensips.transactions | UAS, UAC | transactions/s |\n| opensips.core_rcv | requests, replies | queries/s |\n| opensips.core_fwd | requests, replies | queries/s |\n| opensips.core_drop | requests, replies | queries/s |\n| opensips.core_err | requests, replies | queries/s |\n| opensips.core_bad | bad_URIs_rcvd, unsupported_methods, bad_msg_hdr | queries/s |\n| opensips.tm_replies | received, relayed, local | replies/s |\n| opensips.transactions_status | 2xx, 3xx, 4xx, 5xx, 6xx | transactions/s |\n| opensips.transactions_inuse | inuse | transactions |\n| opensips.sl_replies | 1xx, 2xx, 3xx, 4xx, 5xx, 6xx, sent, error, ACKed | replies/s |\n| opensips.dialogs | processed, expire, failed | dialogs/s |\n| opensips.net_waiting | UDP, TCP | kilobytes |\n| opensips.uri_checks | positive, negative | checks / sec |\n| opensips.traces | requests, replies | traces / sec |\n| opensips.shmem | total, used, real_used, max_used, free | kilobytes |\n| opensips.shmem_fragment | fragments | fragments |\n\n",integration_type:"collector",id:"charts.d.plugin-opensips-OpenSIPS",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/charts.d.plugin/opensips/metadata.yaml",related_resources:""},{meta:{plugin_name:"charts.d.plugin",module_name:"sensors",monitored_instance:{name:"Linux Sensors (sysfs)",link:"https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["sensors","sysfs","hwmon","rpi","raspberry pi"],most_popular:!1},overview:"# Linux Sensors (sysfs)\n\nPlugin: charts.d.plugin\nModule: sensors\n\n## Overview\n\nUse this collector when `lm-sensors` doesn't work on your device (e.g. for RPi temperatures).\nFor all other cases use the [Python collector](https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/sensors), which supports multiple jobs, is more efficient and performs calculations on top of the kernel provided values.\"\n\n\nIt will provide charts for all configured system sensors, by reading sensors directly from the kernel.\nThe values graphed are the raw hardware values of the sensors.\n\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, the collector will try to read entries under `/sys/devices`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install charts.d plugin\n\nIf [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed.\n\n\n#### Enable the sensors collector\n\nThe `sensors` collector is disabled by default. To enable it, use `edit-config` from the Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md), which is typically at `/etc/netdata`, to edit the `charts.d.conf` file.\n\n```bash\ncd /etc/netdata # Replace this path with your Netdata config directory, if different\nsudo ./edit-config charts.d.conf\n```\n\nChange the value of the `sensors` setting to `force` and uncomment the line. Save the file and restart the Netdata Agent with `sudo systemctl restart netdata`, or the [appropriate method](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#maintaining-a-netdata-agent-installation) for your system.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/sensors.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/sensors.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It\'s a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the sensors collector.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| sensors_sys_dir | The directory the kernel exposes sensor data. | /sys/devices | no |\n| sensors_sys_depth | How deep in the tree to check for sensor data. | 10 | no |\n| sensors_source_update | If set to 1, the script will overwrite internal script functions with code generated ones. | 1 | no |\n| sensors_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 1 | no |\n| sensors_priority | The charts priority on the dashboard. | 90000 | no |\n| sensors_retries | The number of retries to do in case of failure before disabling the collector. | 10 | no |\n\n{% /details %}\n#### Examples\n\n##### Set sensors path depth\n\nSet a different sensors path depth\n\n```yaml\n# the directory the kernel keeps sensor data\n#sensors_sys_dir="/sys/devices"\n\n# how deep in the tree to check for sensor data\nsensors_sys_depth=5\n\n# if set to 1, the script will overwrite internal\n# script functions with code generated ones\n# leave to 1, is faster\n#sensors_source_update=1\n\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\n#sensors_update_every=\n\n# the charts priority on the dashboard\n#sensors_priority=90000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#sensors_retries=10\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `sensors` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 sensors\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per sensor chip\n\nMetrics related to sensor chips. Each chip provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| sensors.temp | {filename} | Celsius |\n| sensors.volt | {filename} | Volts |\n| sensors.curr | {filename} | Ampere |\n| sensors.power | {filename} | Watt |\n| sensors.fans | {filename} | Rotations / Minute |\n| sensors.energy | {filename} | Joule |\n| sensors.humidity | {filename} | Percent |\n\n",integration_type:"collector",id:"charts.d.plugin-sensors-Linux_Sensors_(sysfs)",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/charts.d.plugin/sensors/metadata.yaml",related_resources:""},{meta:{plugin_name:"cups.plugin",module_name:"cups.plugin",monitored_instance:{name:"CUPS",link:"https://www.cups.org/",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"cups.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# CUPS\n\nPlugin: cups.plugin\nModule: cups.plugin\n\n## Overview\n\nMonitor CUPS performance for achieving optimal printing system operations. Monitor job statuses, queue lengths, and error rates to ensure smooth printing tasks.\n\nThe plugin uses CUPS shared library to connect and monitor the server.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs to access the server. Netdata sets permissions during installation time to reach the server through its library.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin detects when CUPS server is running and tries to connect to it.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Minimum setup\n\nThe CUPS server must be installed and running. If you installed `netdata` using a package manager, it is also necessary to install the package `netdata-plugin-cups`.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:cups]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| command options | Additional parameters for the collector | | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CUPS instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cups.dests_state | idle, printing, stopped | dests |\n| cups.dests_option | total, acceptingjobs, shared | dests |\n| cups.job_num | pending, held, processing | jobs |\n| cups.job_size | pending, held, processing | KB |\n\n### Per destination\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cups.destination_job_num | pending, held, processing | jobs |\n| cups.destination_job_size | pending, held, processing | KB |\n\n",integration_type:"collector",id:"cups.plugin-cups.plugin-CUPS",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/cups.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"debugfs.plugin",module_name:"/sys/kernel/debug/extfrag",monitored_instance:{name:"System Memory Fragmentation",link:"https://www.kernel.org/doc/html/next/admin-guide/sysctl/vm.html",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["extfrag","extfrag_threshold","memory fragmentation"],most_popular:!1},overview:"# System Memory Fragmentation\n\nPlugin: debugfs.plugin\nModule: /sys/kernel/debug/extfrag\n\n## Overview\n\nCollects memory fragmentation statistics from the Linux kernel\n\nParse data from `debugfs` file\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to files under `/sys/kernel/debug/extfrag`, which are accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming that debugfs is mounted and the required permissions are available, this integration will automatically run by default.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### filesystem\n\nThe debugfs filesystem must be mounted on your host for plugin to collect data. You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally. It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem before starting netdata.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:debugfs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| command options | Additinal parameters for collector | | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nMonitor the overall memory fragmentation of the system.\n\n### Per node\n\nMemory fragmentation statistics for each NUMA node in the system.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| numa_node | The NUMA node the metrics are associated with. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.fragmentation_index_dma | order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10 | index |\n| mem.fragmentation_index_dma32 | order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10 | index |\n| mem.fragmentation_index_normal | order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10 | index |\n\n",integration_type:"collector",id:"debugfs.plugin-/sys/kernel/debug/extfrag-System_Memory_Fragmentation",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/debugfs.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"debugfs.plugin",module_name:"/sys/kernel/debug/zswap",monitored_instance:{name:"Linux ZSwap",link:"https://www.kernel.org/doc/html/latest/admin-guide/mm/zswap.html",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["swap","zswap","frontswap","swap cache"],most_popular:!1},overview:"# Linux ZSwap\n\nPlugin: debugfs.plugin\nModule: /sys/kernel/debug/zswap\n\n## Overview\n\nCollects zswap performance metrics on Linux systems.\n\n\nParse data from `debugfs file.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to files under `/sys/kernel/debug/zswap`, which are accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming that debugfs is mounted and the required permissions are available, this integration will automatically detect whether or not the system is using zswap.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### filesystem\n\nThe debugfs filesystem must be mounted on your host for plugin to collect data. You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally. It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem before starting netdata.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:debugfs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| command options | Additinal parameters for collector | | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nMonitor the performance statistics of zswap.\n\n### Per Linux ZSwap instance\n\nGlobal zswap performance metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.zswap_pool_compression_ratio | compression_ratio | ratio |\n| system.zswap_pool_compressed_size | compressed_size | bytes |\n| system.zswap_pool_raw_size | uncompressed_size | bytes |\n| system.zswap_rejections | compress_poor, kmemcache_fail, alloc_fail, reclaim_fail | rejections/s |\n| system.zswap_pool_limit_hit | limit | events/s |\n| system.zswap_written_back_raw_bytes | written_back | bytes/s |\n| system.zswap_same_filled_raw_size | same_filled | bytes |\n| system.zswap_duplicate_entry | duplicate | entries/s |\n\n",integration_type:"collector",id:"debugfs.plugin-/sys/kernel/debug/zswap-Linux_ZSwap",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/debugfs.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"debugfs.plugin",module_name:"intel_rapl",monitored_instance:{name:"Power Capping",link:"https://www.kernel.org/doc/html/next/power/powercap/powercap.html",categories:["data-collection.linux-systems.kernel-metrics"],icon_filename:"powersupply.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["power capping","energy"],most_popular:!1},overview:"# Power Capping\n\nPlugin: debugfs.plugin\nModule: intel_rapl\n\n## Overview\n\nCollects power capping performance metrics on Linux systems.\n\n\nParse data from `debugfs file.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to files under `/sys/devices/virtual/powercap`, which are accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming that debugfs is mounted and the required permissions are available, this integration will automatically detect whether or not the system is using zswap.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### filesystem\n\nThe debugfs filesystem must be mounted on your host for plugin to collect data. You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally. It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem before starting netdata.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:debugfs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| command options | Additinal parameters for collector | | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nMonitor the Intel RAPL zones Consumption.\n\n### Per Power Capping instance\n\nGlobal Intel RAPL zones.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.powercap_intel_rapl_zone | Power | Watts |\n| cpu.powercap_intel_rapl_subzones | dram, core, uncore | Watts |\n\n",integration_type:"collector",id:"debugfs.plugin-intel_rapl-Power_Capping",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/debugfs.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"diskspace.plugin",module_name:"diskspace.plugin",monitored_instance:{name:"Disk space",link:"",categories:["data-collection.linux-systems"],icon_filename:"hard-drive.svg"},related_resources:{integrations:{list:[{plugin_name:"ebpf.plugin",module_name:"disk"}]}},info_provided_to_referring_integrations:{description:""},keywords:["disk","I/O","space","inode"],most_popular:!1},overview:"# Disk space\n\nPlugin: diskspace.plugin\nModule: diskspace.plugin\n\n## Overview\n\nMonitor Disk space metrics for proficient storage management. Keep track of usage, free space, and error rates to prevent disk space issues.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin reads data from `/proc/self/mountinfo` and `/proc/diskstats file`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:proc:diskspace]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nYou can also specify per mount point `[plugin:proc:diskspace:mountpoint]`\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| remove charts of unmounted disks | Remove chart when a device is unmounted on host. | yes | no |\n| check for new mount points every | Parse proc files frequency. | 15 | no |\n| exclude space metrics on paths | Do not show metrics (charts) for listed paths. This option accepts netdata simple pattern. | /proc/* /sys/* /var/run/user/* /run/user/* /snap/* /var/lib/docker/* | no |\n| exclude space metrics on filesystems | Do not show metrics (charts) for listed filesystems. This option accepts netdata simple pattern. | *gvfs *gluster* *s3fs *ipfs *davfs2 *httpfs *sshfs *gdfs *moosefs fusectl autofs | no |\n| exclude inode metrics on filesystems | Do not show metrics (charts) for listed filesystems. This option accepts netdata simple pattern. | msdosfs msdos vfat overlayfs aufs* *unionfs | no |\n| space usage for all disks | Define if plugin will show metrics for space usage. When value is set to `auto` plugin will try to access information to display if filesystem or path was not discarded with previous option. | auto | no |\n| inodes usage for all disks | Define if plugin will show metrics for inode usage. When value is set to `auto` plugin will try to access information to display if filesystem or path was not discarded with previous option. | auto | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ disk_space_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/disks.conf) | disk.space | disk ${label:mount_point} space utilization |\n| [ disk_inode_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/disks.conf) | disk.inodes | disk ${label:mount_point} inode utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per mount point\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mount_point | Path used to mount a filesystem |\n| filesystem | The filesystem used to format a partition. |\n| mount_root | Root directory where mount points are present. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.space | avail, used, reserved_for_root | GiB |\n| disk.inodes | avail, used, reserved_for_root | inodes |\n\n",integration_type:"collector",id:"diskspace.plugin-diskspace.plugin-Disk_space",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/diskspace.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"cachestat",monitored_instance:{name:"eBPF Cachestat",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["Page cache","Hit ratio","eBPF"],most_popular:!1},overview:"# eBPF Cachestat\n\nPlugin: ebpf.plugin\nModule: cachestat\n\n## Overview\n\nMonitor Linux page cache events giving for users a general vision about how his kernel is manipulating files.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/cachestat.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/cachestat.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Cachestat instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.cachestat_ratio | ratio | % |\n| mem.cachestat_dirties | dirty | page/s |\n| mem.cachestat_hits | hit | hits/s |\n| mem.cachestat_misses | miss | misses/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.ebpf_cachestat_hit_ratio | ratio | % |\n| app.ebpf_cachestat_dirty_pages | pages | page/s |\n| app.ebpf_cachestat_access | hits | hits/s |\n| app.ebpf_cachestat_misses | misses | misses/s |\n\n### Per cgroup\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cachestat_ratio | ratio | % |\n| cgroup.cachestat_dirties | dirty | page/s |\n| cgroup.cachestat_hits | hit | hits/s |\n| cgroup.cachestat_misses | miss | misses/s |\n| services.cachestat_ratio | a dimension per systemd service | % |\n| services.cachestat_dirties | a dimension per systemd service | page/s |\n| services.cachestat_hits | a dimension per systemd service | hits/s |\n| services.cachestat_misses | a dimension per systemd service | misses/s |\n\n",integration_type:"collector",id:"ebpf.plugin-cachestat-eBPF_Cachestat",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"dcstat",monitored_instance:{name:"eBPF DCstat",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["Directory Cache","File system","eBPF"],most_popular:!1},overview:"# eBPF DCstat\n\nPlugin: ebpf.plugin\nModule: dcstat\n\n## Overview\n\nMonitor directory cache events per application given an overall vision about files on memory or storage device.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/dcstat.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/dcstat.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config option" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.ebpf_dc_ratio | ratio | % |\n| app.ebpf_dc_reference | files | files |\n| app.ebpf_dc_not_cache | files | files |\n| app.ebpf_dc_not_found | files | files |\n\n### Per filesystem\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.dc_reference | reference, slow, miss | files |\n| filesystem.dc_hit_ratio | ratio | % |\n\n### Per cgroup\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.dc_ratio | ratio | % |\n| cgroup.dc_reference | reference | files |\n| cgroup.dc_not_cache | slow | files |\n| cgroup.dc_not_found | miss | files |\n| services.dc_ratio | a dimension per systemd service | % |\n| services.dc_reference | a dimension per systemd service | files |\n| services.dc_not_cache | a dimension per systemd service | files |\n| services.dc_not_found | a dimension per systemd service | files |\n\n",integration_type:"collector",id:"ebpf.plugin-dcstat-eBPF_DCstat",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"disk",monitored_instance:{name:"eBPF Disk",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["hard Disk","eBPF","latency","partition"],most_popular:!1},overview:"# eBPF Disk\n\nPlugin: ebpf.plugin\nModule: disk\n\n## Overview\n\nMeasure latency for I/O events on disk.\n\nAttach tracepoints to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/disk.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/disk.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per disk\n\nThese metrics measure latency for I/O events on every hard disk present on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.latency_io | latency | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-disk-eBPF_Disk",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"filedescriptor",monitored_instance:{name:"eBPF Filedescriptor",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["file","eBPF","fd","open","close"],most_popular:!1},overview:"# eBPF Filedescriptor\n\nPlugin: ebpf.plugin\nModule: filedescriptor\n\n## Overview\n\nMonitor calls for functions responsible to open or close a file descriptor and possible errors.\n\nAttach tracing (kprobe and trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netdata sets necessary permissions during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nDepending of kernel version and frequency that files are open and close, this thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/fd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/fd.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.fd_open | open | calls/s |\n| cgroup.fd_open_error | open | calls/s |\n| cgroup.fd_closed | close | calls/s |\n| cgroup.fd_close_error | close | calls/s |\n| services.file_open | a dimension per systemd service | calls/s |\n| services.file_open_error | a dimension per systemd service | calls/s |\n| services.file_closed | a dimension per systemd service | calls/s |\n| services.file_close_error | a dimension per systemd service | calls/s |\n\n### Per eBPF Filedescriptor instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.file_descriptor | open, close | calls/s |\n| filesystem.file_error | open, close | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.ebpf_file_open | calls | calls/s |\n| app.ebpf_file_open_error | calls | calls/s |\n| app.ebpf_file_closed | calls | calls/s |\n| app.ebpf_file_close_error | calls | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-filedescriptor-eBPF_Filedescriptor",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"filesystem",monitored_instance:{name:"eBPF Filesystem",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["Filesystem","ext4","btrfs","nfs","xfs","zfs","eBPF","latency","I/O"],most_popular:!1},overview:"# eBPF Filesystem\n\nPlugin: ebpf.plugin\nModule: filesystem\n\n## Overview\n\nMonitor latency for main actions on filesystem like I/O events.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/filesystem.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/filesystem.conf\n```\n#### Options\n\nThis configuration file have two different sections. The `[global]` overwrites default options, while `[filesystem]` allow user to select the filesystems to monitor.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n| btrfsdist | Enable or disable latency monitoring for functions associated with btrfs filesystem. | yes | no |\n| ext4dist | Enable or disable latency monitoring for functions associated with ext4 filesystem. | yes | no |\n| nfsdist | Enable or disable latency monitoring for functions associated with nfs filesystem. | yes | no |\n| xfsdist | Enable or disable latency monitoring for functions associated with xfs filesystem. | yes | no |\n| zfsdist | Enable or disable latency monitoring for functions associated with zfs filesystem. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per filesystem\n\nLatency charts associate with filesystem actions.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.read_latency | latency period | calls/s |\n| filesystem.open_latency | latency period | calls/s |\n| filesystem.sync_latency | latency period | calls/s |\n\n### Per iilesystem\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.write_latency | latency period | calls/s |\n\n### Per eBPF Filesystem instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.attributte_latency | latency period | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-filesystem-eBPF_Filesystem",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"hardirq",monitored_instance:{name:"eBPF Hardirq",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["HardIRQ","eBPF"],most_popular:!1},overview:"# eBPF Hardirq\n\nPlugin: ebpf.plugin\nModule: hardirq\n\n## Overview\n\nMonitor latency for each HardIRQ available.\n\nAttach tracepoints to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/hardirq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/hardirq.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Hardirq instance\n\nThese metrics show latest timestamp for each hardIRQ available on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.hardirq_latency | hardirq names | milliseconds |\n\n",integration_type:"collector",id:"ebpf.plugin-hardirq-eBPF_Hardirq",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"mdflush",monitored_instance:{name:"eBPF MDflush",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["MD","RAID","eBPF"],most_popular:!1},overview:"# eBPF MDflush\n\nPlugin: ebpf.plugin\nModule: mdflush\n\n## Overview\n\nMonitor when flush events happen between disks.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that `md_flush_request` is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/mdflush.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/mdflush.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF MDflush instance\n\nNumber of times md_flush_request was called since last time.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mdstat.mdstat_flush | disk | flushes |\n\n",integration_type:"collector",id:"ebpf.plugin-mdflush-eBPF_MDflush",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"mount",monitored_instance:{name:"eBPF Mount",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["mount","umount","device","eBPF"],most_popular:!1},overview:"# eBPF Mount\n\nPlugin: ebpf.plugin\nModule: mount\n\n## Overview\n\nMonitor calls for mount and umount syscall.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_HAVE_SYSCALL_TRACEPOINTS), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/mount.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/mount.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Mount instance\n\nCalls for syscalls mount an umount.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mount_points.call | mount, umount | calls/s |\n| mount_points.error | mount, umount | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-mount-eBPF_Mount",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"oomkill",monitored_instance:{name:"eBPF OOMkill",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["application","memory"],most_popular:!1},overview:"# eBPF OOMkill\n\nPlugin: ebpf.plugin\nModule: oomkill\n\n## Overview\n\nMonitor applications that reach out of memory.\n\nAttach tracepoint to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/oomkill.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/oomkill.conf\n```\n#### Options\n\nOverwrite default configuration reducing number of I/O events\n\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"## Troubleshooting\n\n### update every\n\n\n\n### ebpf load mode\n\n\n\n### lifetime\n\n\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese metrics show cgroup/service that reached OOM.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.oomkills | cgroup name | kills |\n| services.oomkills | a dimension per systemd service | kills |\n\n### Per apps\n\nThese metrics show cgroup/service that reached OOM.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.oomkill | kills | kills |\n\n",integration_type:"collector",id:"ebpf.plugin-oomkill-eBPF_OOMkill",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"process",monitored_instance:{name:"eBPF Process",link:"https://github.com/netdata/netdata/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["Memory","plugin","eBPF"],most_popular:!1},overview:"# eBPF Process\n\nPlugin: ebpf.plugin\nModule: process\n\n## Overview\n\nMonitor internal memory usage.\n\nUses netdata internal statistic to monitor memory management by plugin.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Netdata flags.\n\nTo have these charts you need to compile netdata with flag `NETDATA_DEV_MODE`.\n\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Process instance\n\nHow plugin is allocating memory.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netdata.ebpf_aral_stat_size | memory | bytes |\n| netdata.ebpf_aral_stat_alloc | aral | calls |\n| netdata.ebpf_threads | total, running | threads |\n| netdata.ebpf_load_methods | legacy, co-re | methods |\n| netdata.ebpf_kernel_memory | memory_locked | bytes |\n| netdata.ebpf_hash_tables_count | hash_table | hash tables |\n| netdata.ebpf_aral_stat_size | memory | bytes |\n| netdata.ebpf_aral_stat_alloc | aral | calls |\n| netdata.ebpf_aral_stat_size | memory | bytes |\n| netdata.ebpf_aral_stat_alloc | aral | calls |\n| netdata.ebpf_hash_tables_insert_pid_elements | thread | rows |\n| netdata.ebpf_hash_tables_remove_pid_elements | thread | rows |\n\n",integration_type:"collector",id:"ebpf.plugin-process-eBPF_Process",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"processes",monitored_instance:{name:"eBPF Processes",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["thread","fork","process","eBPF"],most_popular:!1},overview:"# eBPF Processes\n\nPlugin: ebpf.plugin\nModule: processes\n\n## Overview\n\nMonitor calls for function creating tasks (threads and processes) inside Linux kernel.\n\nAttach tracing (kprobe or tracepoint, and trampoline) to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/process.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/process.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). This plugin will always try to attach a tracepoint, so option here will impact only function used to monitor task (thread and process) creation. | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Processes instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.process_thread | process | calls/s |\n| system.process_status | process, zombie | difference |\n| system.exit | process | calls/s |\n| system.task_error | task | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.process_create | calls | calls/s |\n| app.thread_create | call | calls/s |\n| app.task_exit | call | calls/s |\n| app.task_close | call | calls/s |\n| app.task_error | app | calls/s |\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.process_create | process | calls/s |\n| cgroup.thread_create | thread | calls/s |\n| cgroup.task_exit | exit | calls/s |\n| cgroup.task_close | process | calls/s |\n| cgroup.task_error | process | calls/s |\n| services.process_create | a dimension per systemd service | calls/s |\n| services.thread_create | a dimension per systemd service | calls/s |\n| services.task_close | a dimension per systemd service | calls/s |\n| services.task_exit | a dimension per systemd service | calls/s |\n| services.task_error | a dimension per systemd service | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-processes-eBPF_Processes",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"shm",monitored_instance:{name:"eBPF SHM",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["syscall","shared memory","eBPF"],most_popular:!1},overview:"# eBPF SHM\n\nPlugin: ebpf.plugin\nModule: shm\n\n## Overview\n\nMonitor syscall responsible to manipulate shared memory.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/shm.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/shm.conf\n```\n#### Options\n\nThis configuration file have two different sections. The `[global]` overwrites all default options, while `[syscalls]` allow user to select the syscall to monitor.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n| shmget | Enable or disable monitoring for syscall `shmget` | yes | no |\n| shmat | Enable or disable monitoring for syscall `shmat` | yes | no |\n| shmdt | Enable or disable monitoring for syscall `shmdt` | yes | no |\n| shmctl | Enable or disable monitoring for syscall `shmctl` | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.shmget | get | calls/s |\n| cgroup.shmat | at | calls/s |\n| cgroup.shmdt | dt | calls/s |\n| cgroup.shmctl | ctl | calls/s |\n| services.shmget | a dimension per systemd service | calls/s |\n| services.shmat | a dimension per systemd service | calls/s |\n| services.shmdt | a dimension per systemd service | calls/s |\n| services.shmctl | a dimension per systemd service | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.ebpf_shmget_call | calls | calls/s |\n| app.ebpf_shmat_call | calls | calls/s |\n| app.ebpf_shmdt_call | calls | calls/s |\n| app.ebpf_shmctl_call | calls | calls/s |\n\n### Per eBPF SHM instance\n\nThese Metrics show number of calls for specified syscall.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.shared_memory_calls | get, at, dt, ctl | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-shm-eBPF_SHM",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"socket",monitored_instance:{name:"eBPF Socket",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["TCP","UDP","bandwidth","server","connection","socket"],most_popular:!1},overview:"# eBPF Socket\n\nPlugin: ebpf.plugin\nModule: socket\n\n## Overview\n\nMonitor bandwidth consumption per application for protocols TCP and UDP.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/network.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/network.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`. Options inside `network connections` are ignored for while.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| bandwidth table size | Number of elements stored inside hash tables used to monitor calls per PID. | 16384 | no |\n| ipv4 connection table size | Number of elements stored inside hash tables used to monitor calls per IPV4 connections. | 16384 | no |\n| ipv6 connection table size | Number of elements stored inside hash tables used to monitor calls per IPV6 connections. | 16384 | no |\n| udp connection table size | Number of temporary elements stored inside hash tables used to monitor UDP connections. | 4096 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Socket instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ip.inbound_conn | connection_tcp | connections/s |\n| ip.tcp_outbound_conn | received | connections/s |\n| ip.tcp_functions | received, send, closed | calls/s |\n| ip.total_tcp_bandwidth | received, send | kilobits/s |\n| ip.tcp_error | received, send | calls/s |\n| ip.tcp_retransmit | retransmited | calls/s |\n| ip.udp_functions | received, send | calls/s |\n| ip.total_udp_bandwidth | received, send | kilobits/s |\n| ip.udp_error | received, send | calls/s |\n\n### Per apps\n\nThese metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.ebpf_call_tcp_v4_connection | connections | connections/s |\n| app.app.ebpf_call_tcp_v6_connection | connections | connections/s |\n| app.ebpf_sock_bytes_sent | bandwidth | kilobits/s |\n| app.ebpf_sock_bytes_received | bandwidth | kilobits/s |\n| app.ebpf_call_tcp_sendmsg | calls | calls/s |\n| app.ebpf_call_tcp_cleanup_rbuf | calls | calls/s |\n| app.ebpf_call_tcp_retransmit | calls | calls/s |\n| app.ebpf_call_udp_sendmsg | calls | calls/s |\n| app.ebpf_call_udp_recvmsg | calls | calls/s |\n\n### Per cgroup\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_conn_ipv4 | connected_v4 | connections/s |\n| cgroup.net_conn_ipv6 | connected_v6 | connections/s |\n| cgroup.net_bytes_recv | received | calls/s |\n| cgroup.net_bytes_sent | sent | calls/s |\n| cgroup.net_tcp_recv | received | calls/s |\n| cgroup.net_tcp_send | sent | calls/s |\n| cgroup.net_retransmit | retransmitted | calls/s |\n| cgroup.net_udp_send | sent | calls/s |\n| cgroup.net_udp_recv | received | calls/s |\n| services.net_conn_ipv6 | a dimension per systemd service | connections/s |\n| services.net_bytes_recv | a dimension per systemd service | kilobits/s |\n| services.net_bytes_sent | a dimension per systemd service | kilobits/s |\n| services.net_tcp_recv | a dimension per systemd service | calls/s |\n| services.net_tcp_send | a dimension per systemd service | calls/s |\n| services.net_tcp_retransmit | a dimension per systemd service | calls/s |\n| services.net_udp_send | a dimension per systemd service | calls/s |\n| services.net_udp_recv | a dimension per systemd service | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-socket-eBPF_Socket",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"softirq",monitored_instance:{name:"eBPF SoftIRQ",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["SoftIRQ","eBPF"],most_popular:!1},overview:"# eBPF SoftIRQ\n\nPlugin: ebpf.plugin\nModule: softirq\n\n## Overview\n\nMonitor latency for each SoftIRQ available.\n\nAttach kprobe to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/softirq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/softirq.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF SoftIRQ instance\n\nThese metrics show latest timestamp for each softIRQ available on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softirq_latency | soft IRQs | milliseconds |\n\n",integration_type:"collector",id:"ebpf.plugin-softirq-eBPF_SoftIRQ",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"swap",monitored_instance:{name:"eBPF SWAP",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["SWAP","memory","eBPF","Hard Disk"],most_popular:!1},overview:"# eBPF SWAP\n\nPlugin: ebpf.plugin\nModule: swap\n\n## Overview\n\nMonitors when swap has I/O events and applications executing events.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/swap.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/swap.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.swap_read | read | calls/s |\n| cgroup.swap_write | write | calls/s |\n| services.swap_read | a dimension per systemd service | calls/s |\n| services.swap_write | a dimension per systemd service | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.ebpf_call_swap_readpage | a dimension per app group | calls/s |\n| app.ebpf_call_swap_writepage | a dimension per app group | calls/s |\n\n### Per eBPF SWAP instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swapcalls | write, read | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-swap-eBPF_SWAP",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"sync",monitored_instance:{name:"eBPF Sync",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["syscall","eBPF","hard disk","memory"],most_popular:!1},overview:"# eBPF Sync\n\nPlugin: ebpf.plugin\nModule: sync\n\n## Overview\n\nMonitor syscall responsible to move data from memory to storage device.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_HAVE_SYSCALL_TRACEPOINTS), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/sync.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/sync.conf\n```\n#### Options\n\nThis configuration file have two different sections. The `[global]` overwrites all default options, while `[syscalls]` allow user to select the syscall to monitor.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n| sync | Enable or disable monitoring for syscall `sync` | yes | no |\n| msync | Enable or disable monitoring for syscall `msync` | yes | no |\n| fsync | Enable or disable monitoring for syscall `fsync` | yes | no |\n| fdatasync | Enable or disable monitoring for syscall `fdatasync` | yes | no |\n| syncfs | Enable or disable monitoring for syscall `syncfs` | yes | no |\n| sync_file_range | Enable or disable monitoring for syscall `sync_file_range` | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ sync_freq ](https://github.com/netdata/netdata/blob/master/src/health/health.d/synchronization.conf) | mem.sync | number of sync() system calls. Every call causes all pending modifications to filesystem metadata and cached file data to be written to the underlying filesystems. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Sync instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.file_sync | fsync, fdatasync | calls/s |\n| mem.meory_map | msync | calls/s |\n| mem.sync | sync, syncfs | calls/s |\n| mem.file_segment | sync_file_range | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-sync-eBPF_Sync",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ebpf.plugin",module_name:"vfs",monitored_instance:{name:"eBPF VFS",link:"https://kernel.org/",categories:["data-collection.ebpf"],icon_filename:"ebpf.jpg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["virtual","filesystem","eBPF","I/O","files"],most_popular:!1},overview:"# eBPF VFS\n\nPlugin: ebpf.plugin\nModule: vfs\n\n## Overview\n\nMonitor I/O events on Linux Virtual Filesystem.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/vfs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/vfs.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 5 | no |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | entry | no |\n| apps | Enable or disable integration with apps.plugin | no | no |\n| cgroups | Enable or disable integration with cgroup.plugin | no | no |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | 32768 | no |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | auto | no |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | trampoline | no |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | yes | no |\n| lifetime | Set default lifetime for thread when enabled by cloud. | 300 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.vfs_unlink | delete | calls/s |\n| cgroup.vfs_write | write | calls/s |\n| cgroup.vfs_write_error | write | calls/s |\n| cgroup.vfs_read | read | calls/s |\n| cgroup.vfs_read_error | read | calls/s |\n| cgroup.vfs_write_bytes | write | bytes/s |\n| cgroup.vfs_read_bytes | read | bytes/s |\n| cgroup.vfs_fsync | fsync | calls/s |\n| cgroup.vfs_fsync_error | fsync | calls/s |\n| cgroup.vfs_open | open | calls/s |\n| cgroup.vfs_open_error | open | calls/s |\n| cgroup.vfs_create | create | calls/s |\n| cgroup.vfs_create_error | create | calls/s |\n| services.vfs_unlink | a dimension per systemd service | calls/s |\n| services.vfs_write | a dimension per systemd service | calls/s |\n| services.vfs_write_error | a dimension per systemd service | calls/s |\n| services.vfs_read | a dimension per systemd service | calls/s |\n| services.vfs_read_error | a dimension per systemd service | calls/s |\n| services.vfs_write_bytes | a dimension per systemd service | bytes/s |\n| services.vfs_read_bytes | a dimension per systemd service | bytes/s |\n| services.vfs_fsync | a dimension per systemd service | calls/s |\n| services.vfs_fsync_error | a dimension per systemd service | calls/s |\n| services.vfs_open | a dimension per systemd service | calls/s |\n| services.vfs_open_error | a dimension per systemd service | calls/s |\n| services.vfs_create | a dimension per systemd service | calls/s |\n| services.vfs_create_error | a dimension per systemd service | calls/s |\n\n### Per eBPF VFS instance\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.vfs_deleted_objects | delete | calls/s |\n| filesystem.vfs_io | read, write | calls/s |\n| filesystem.vfs_io_bytes | read, write | bytes/s |\n| filesystem.vfs_io_error | read, write | calls/s |\n| filesystem.vfs_fsync | fsync | calls/s |\n| filesystem.vfs_fsync_error | fsync | calls/s |\n| filesystem.vfs_open | open | calls/s |\n| filesystem.vfs_open_error | open | calls/s |\n| filesystem.vfs_create | create | calls/s |\n| filesystem.vfs_create_error | create | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| app_group | The name of the group defined in the configuration. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| app.ebpf_call_vfs_unlink | calls | calls/s |\n| app.ebpf_call_vfs_write | calls | calls/s |\n| app.ebpf_call_vfs_write_error | calls | calls/s |\n| app.ebpf_call_vfs_read | calls | calls/s |\n| app.ebpf_call_vfs_read_error | calls | calls/s |\n| app.ebpf_call_vfs_write_bytes | writes | bytes/s |\n| app.ebpf_call_vfs_read_bytes | reads | bytes/s |\n| app.ebpf_call_vfs_fsync | calls | calls/s |\n| app.ebpf_call_vfs_fsync_error | calls | calls/s |\n| app.ebpf_call_vfs_open | calls | calls/s |\n| app.ebpf_call_vfs_open_error | calls | calls/s |\n| app.ebpf_call_vfs_create | calls | calls/s |\n| app.ebpf_call_vfs_create_error | calls | calls/s |\n\n",integration_type:"collector",id:"ebpf.plugin-vfs-eBPF_VFS",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ebpf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"dev.cpu.0.freq",monitored_instance:{name:"dev.cpu.0.freq",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# dev.cpu.0.freq\n\nPlugin: freebsd.plugin\nModule: dev.cpu.0.freq\n\n## Overview\n\nRead current CPU Scaling frequency.\n\nCurrent CPU Scaling Frequency\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `Config options`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config Config options\n```\n#### Options\n\n\n\n{% details summary="" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| dev.cpu.0.freq | Enable or disable CPU Scaling frequency metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per dev.cpu.0.freq instance\n\nThe metric shows status of CPU frequency, it is direct affected by system load.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.scaling_cur_freq | frequency | MHz |\n\n",integration_type:"collector",id:"freebsd.plugin-dev.cpu.0.freq-dev.cpu.0.freq",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"dev.cpu.temperature",monitored_instance:{name:"dev.cpu.temperature",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# dev.cpu.temperature\n\nPlugin: freebsd.plugin\nModule: dev.cpu.temperature\n\n## Overview\n\nGet current CPU temperature\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| dev.cpu.temperature | Enable or disable CPU temperature metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per dev.cpu.temperature instance\n\nThis metric show latest CPU temperature.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.temperature | a dimension per core | Celsius |\n\n",integration_type:"collector",id:"freebsd.plugin-dev.cpu.temperature-dev.cpu.temperature",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"devstat",monitored_instance:{name:"devstat",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"hard-drive.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# devstat\n\nPlugin: freebsd.plugin\nModule: devstat\n\n## Overview\n\nCollect information per hard disk available on host.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:kern.devstat]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable new disks detected at runtime | Enable or disable possibility to detect new disks. | auto | no |\n| performance metrics for pass devices | Enable or disable metrics for disks with type `PASS`. | auto | no |\n| total bandwidth for all disks | Enable or disable total bandwidth metric for all disks. | yes | no |\n| bandwidth for all disks | Enable or disable bandwidth for all disks metric. | auto | no |\n| operations for all disks | Enable or disable operations for all disks metric. | auto | no |\n| queued operations for all disks | Enable or disable queued operations for all disks metric. | auto | no |\n| utilization percentage for all disks | Enable or disable utilization percentage for all disks metric. | auto | no |\n| i/o time for all disks | Enable or disable I/O time for all disks metric. | auto | no |\n| average completed i/o time for all disks | Enable or disable average completed I/O time for all disks metric. | auto | no |\n| average completed i/o bandwidth for all disks | Enable or disable average completed I/O bandwidth for all disks metric. | auto | no |\n| average service time for all disks | Enable or disable average service time for all disks metric. | auto | no |\n| disable by default disks matching | Do not create charts for disks listed. | | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_disk_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/disks.conf) | disk.util | average percentage of time ${label:device} disk was busy over the last 10 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per devstat instance\n\nThese metrics give a general vision about I/O events on disks.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.io | io, out | KiB/s |\n\n### Per disk\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.io | reads, writes, frees | KiB/s |\n| disk.ops | reads, writes, other, frees | operations/s |\n| disk.qops | operations | operations |\n| disk.util | utilization | % of time working |\n| disk.iotime | reads, writes, other, frees | milliseconds/s |\n| disk.await | reads, writes, other, frees | milliseconds/operation |\n| disk.avgsz | reads, writes, frees | KiB/operation |\n| disk.svctm | svctm | milliseconds/operation |\n\n",integration_type:"collector",id:"freebsd.plugin-devstat-devstat",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"getifaddrs",monitored_instance:{name:"getifaddrs",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# getifaddrs\n\nPlugin: freebsd.plugin\nModule: getifaddrs\n\n## Overview\n\nCollect traffic per network interface.\n\nThe plugin calls `getifaddrs` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:getifaddrs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable new interfaces detected at runtime | Enable or disable possibility to discover new interface after plugin starts. | auto | no |\n| total bandwidth for physical interfaces | Enable or disable total bandwidth for physical interfaces metric. | auto | no |\n| total packets for physical interfaces | Enable or disable total packets for physical interfaces metric. | auto | no |\n| total bandwidth for ipv4 interface | Enable or disable total bandwidth for IPv4 interface metric. | auto | no |\n| total bandwidth for ipv6 interfaces | Enable or disable total bandwidth for ipv6 interfaces metric. | auto | no |\n| bandwidth for all interfaces | Enable or disable bandwidth for all interfaces metric. | auto | no |\n| packets for all interfaces | Enable or disable packets for all interfaces metric. | auto | no |\n| errors for all interfaces | Enable or disable errors for all interfaces metric. | auto | no |\n| drops for all interfaces | Enable or disable drops for all interfaces metric. | auto | no |\n| collisions for all interface | Enable or disable collisions for all interface metric. | auto | no |\n| disable by default interfaces matching | Do not display data for intterfaces listed. | lo* | no |\n| set physical interfaces for system.net | Do not show network traffic for listed interfaces. | igb* ix* cxl* em* ixl* ixlv* bge* ixgbe* vtnet* vmx* re* igc* dwc* | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ interface_speed ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.net | network interface ${label:device} current speed |\n| [ inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.drops | ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.drops | ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ 1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ 10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n| [ interface_inbound_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.errors | number of inbound errors for the network interface ${label:device} in the last 10 minutes |\n| [ interface_outbound_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.errors | number of outbound errors for the network interface ${label:device} in the last 10 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per getifaddrs instance\n\nGeneral overview about network traffic.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.net | received, sent | kilobits/s |\n| system.packets | received, sent, multicast_received, multicast_sent | packets/s |\n| system.ipv4 | received, sent | kilobits/s |\n| system.ipv6 | received, sent | kilobits/s |\n\n### Per network device\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| net.net | received, sent | kilobits/s |\n| net.packets | received, sent, multicast_received, multicast_sent | packets/s |\n| net.errors | inbound, outbound | errors/s |\n| net.drops | inbound, outbound | drops/s |\n| net.events | collisions | events/s |\n\n",integration_type:"collector",id:"freebsd.plugin-getifaddrs-getifaddrs",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"getmntinfo",monitored_instance:{name:"getmntinfo",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"hard-drive.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# getmntinfo\n\nPlugin: freebsd.plugin\nModule: getmntinfo\n\n## Overview\n\nCollect information per mount point.\n\nThe plugin calls `getmntinfo` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:getmntinfo]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable new mount points detected at runtime | Cheeck new mount points during runtime. | auto | no |\n| space usage for all disks | Enable or disable space usage for all disks metric. | auto | no |\n| inodes usage for all disks | Enable or disable inodes usage for all disks metric. | auto | no |\n| exclude space metrics on paths | Do not show metrics for listed paths. | /proc/* | no |\n| exclude space metrics on filesystems | Do not monitor listed filesystems. | autofs procfs subfs devfs none | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ disk_space_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/disks.conf) | disk.space | disk ${label:mount_point} space utilization |\n| [ disk_inode_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/disks.conf) | disk.inodes | disk ${label:mount_point} inode utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per mount point\n\nThese metrics show detailss about mount point usages.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.space | avail, used, reserved_for_root | GiB |\n| disk.inodes | avail, used, reserved_for_root | inodes |\n\n",integration_type:"collector",id:"freebsd.plugin-getmntinfo-getmntinfo",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"hw.intrcnt",monitored_instance:{name:"hw.intrcnt",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# hw.intrcnt\n\nPlugin: freebsd.plugin\nModule: hw.intrcnt\n\n## Overview\n\nGet total number of interrupts\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config option" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| hw.intrcnt | Enable or disable Interrupts metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per hw.intrcnt instance\n\nThese metrics show system interrupts frequency.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.intr | interrupts | interrupts/s |\n| system.interrupts | a dimension per interrupt | interrupts/s |\n\n",integration_type:"collector",id:"freebsd.plugin-hw.intrcnt-hw.intrcnt",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"ipfw",monitored_instance:{name:"ipfw",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"firewall.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# ipfw\n\nPlugin: freebsd.plugin\nModule: ipfw\n\n## Overview\n\nCollect information about FreeBSD firewall.\n\nThe plugin uses RAW socket to communicate with kernel and collect data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:ipfw]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| counters for static rules | Enable or disable counters for static rules metric. | yes | no |\n| number of dynamic rules | Enable or disable number of dynamic rules metric. | yes | no |\n| allocated memory | Enable or disable allocated memory metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ipfw instance\n\nTheese metrics show FreeBSD firewall statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipfw.mem | dynamic, static | bytes |\n| ipfw.packets | a dimension per static rule | packets/s |\n| ipfw.bytes | a dimension per static rule | bytes/s |\n| ipfw.active | a dimension per dynamic rule | rules |\n| ipfw.expired | a dimension per dynamic rule | rules |\n\n",integration_type:"collector",id:"freebsd.plugin-ipfw-ipfw",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"kern.cp_time",monitored_instance:{name:"kern.cp_time",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# kern.cp_time\n\nPlugin: freebsd.plugin\nModule: kern.cp_time\n\n## Overview\n\nTotal CPU utilization\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThe netdata main configuration file.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.cp_time | Enable or disable Total CPU usage. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cpu.conf) | system.cpu | average CPU utilization over the last 10 minutes (excluding iowait, nice and steal) |\n| [ 10min_cpu_iowait ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cpu.conf) | system.cpu | average CPU iowait time over the last 10 minutes |\n| [ 20min_steal_cpu ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cpu.conf) | system.cpu | average CPU steal time over the last 20 minutes |\n| [ 10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cpu.conf) | system.cpu | average CPU utilization over the last 10 minutes (excluding nice) |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.cp_time instance\n\nThese metrics show CPU usage statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu | nice, system, user, interrupt, idle | percentage |\n\n### Per core\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.cpu | nice, system, user, interrupt, idle | percentage |\n\n",integration_type:"collector",id:"freebsd.plugin-kern.cp_time-kern.cp_time",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"kern.ipc.msq",monitored_instance:{name:"kern.ipc.msq",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# kern.ipc.msq\n\nPlugin: freebsd.plugin\nModule: kern.ipc.msq\n\n## Overview\n\nCollect number of IPC message Queues\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.ipc.msq | Enable or disable IPC message queue metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.ipc.msq instance\n\nThese metrics show statistics IPC messages statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_msq_queues | queues | queues |\n| system.ipc_msq_messages | messages | messages |\n| system.ipc_msq_size | allocated, used | bytes |\n\n",integration_type:"collector",id:"freebsd.plugin-kern.ipc.msq-kern.ipc.msq",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"kern.ipc.sem",monitored_instance:{name:"kern.ipc.sem",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# kern.ipc.sem\n\nPlugin: freebsd.plugin\nModule: kern.ipc.sem\n\n## Overview\n\nCollect information about semaphore.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.ipc.sem | Enable or disable semaphore metrics. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ semaphores_used ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ipc.conf) | system.ipc_semaphores | IPC semaphore utilization |\n| [ semaphore_arrays_used ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ipc.conf) | system.ipc_semaphore_arrays | IPC semaphore arrays utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.ipc.sem instance\n\nThese metrics shows counters for semaphores on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_semaphores | semaphores | semaphores |\n| system.ipc_semaphore_arrays | arrays | arrays |\n\n",integration_type:"collector",id:"freebsd.plugin-kern.ipc.sem-kern.ipc.sem",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"kern.ipc.shm",monitored_instance:{name:"kern.ipc.shm",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"memory.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# kern.ipc.shm\n\nPlugin: freebsd.plugin\nModule: kern.ipc.shm\n\n## Overview\n\nCollect shared memory information.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.ipc.shm | Enable or disable shared memory metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.ipc.shm instance\n\nThese metrics give status about current shared memory segments.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_shared_mem_segs | segments | segments |\n| system.ipc_shared_mem_size | allocated | KiB |\n\n",integration_type:"collector",id:"freebsd.plugin-kern.ipc.shm-kern.ipc.shm",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.inet.icmp.stats",monitored_instance:{name:"net.inet.icmp.stats",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.inet.icmp.stats\n\nPlugin: freebsd.plugin\nModule: net.inet.icmp.stats\n\n## Overview\n\nCollect information about ICMP traffic.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.icmp.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| IPv4 ICMP packets | Enable or disable IPv4 ICMP packets metric. | yes | no |\n| IPv4 ICMP error | Enable or disable IPv4 ICMP error metric. | yes | no |\n| IPv4 ICMP messages | Enable or disable IPv4 ICMP messages metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.icmp.stats instance\n\nThese metrics show ICMP connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.icmp | received, sent | packets/s |\n| ipv4.icmp_errors | InErrors, OutErrors, InCsumErrors | packets/s |\n| ipv4.icmpmsg | InEchoReps, OutEchoReps, InEchos, OutEchos | packets/s |\n\n",integration_type:"collector",id:"freebsd.plugin-net.inet.icmp.stats-net.inet.icmp.stats",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.inet.ip.stats",monitored_instance:{name:"net.inet.ip.stats",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.inet.ip.stats\n\nPlugin: freebsd.plugin\nModule: net.inet.ip.stats\n\n## Overview\n\nCollect IP stats\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.ip.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv4 packets | Enable or disable IPv4 packets metric. | yes | no |\n| ipv4 fragments sent | Enable or disable IPv4 fragments sent metric. | yes | no |\n| ipv4 fragments assembly | Enable or disable IPv4 fragments assembly metric. | yes | no |\n| ipv4 errors | Enable or disable IPv4 errors metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.ip.stats instance\n\nThese metrics show IPv4 connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.packets | received, sent, forwarded, delivered | packets/s |\n| ipv4.fragsout | ok, failed, created | packets/s |\n| ipv4.fragsin | ok, failed, all | packets/s |\n| ipv4.errors | InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos | packets/s |\n\n",integration_type:"collector",id:"freebsd.plugin-net.inet.ip.stats-net.inet.ip.stats",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.inet.tcp.states",monitored_instance:{name:"net.inet.tcp.states",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.inet.tcp.states\n\nPlugin: freebsd.plugin\nModule: net.inet.tcp.states\n\n## Overview\n\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| net.inet.tcp.states | Enable or disable TCP state metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ tcp_connections ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_conn.conf) | ipv4.tcpsock | IPv4 TCP connections utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.tcp.states instance\n\nA counter for TCP connections.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.tcpsock | connections | active connections |\n\n",integration_type:"collector",id:"freebsd.plugin-net.inet.tcp.states-net.inet.tcp.states",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.inet.tcp.stats",monitored_instance:{name:"net.inet.tcp.stats",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.inet.tcp.stats\n\nPlugin: freebsd.plugin\nModule: net.inet.tcp.stats\n\n## Overview\n\nCollect overall information about TCP connections.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.tcp.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv4 TCP packets | Enable or disable ipv4 TCP packets metric. | yes | no |\n| ipv4 TCP errors | Enable or disable pv4 TCP errors metric. | yes | no |\n| ipv4 TCP handshake issues | Enable or disable ipv4 TCP handshake issue metric. | yes | no |\n| TCP connection aborts | Enable or disable TCP connection aborts metric. | auto | no |\n| TCP out-of-order queue | Enable or disable TCP out-of-order queue metric. | auto | no |\n| TCP SYN cookies | Enable or disable TCP SYN cookies metric. | auto | no |\n| TCP listen issues | Enable or disable TCP listen issues metric. | auto | no |\n| ECN packets | Enable or disable ECN packets metric. | auto | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1m_ipv4_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of sent TCP RESETS over the last minute |\n| [ 10s_ipv4_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has crashed. Netdata will not send a clear notification for this alarm. |\n| [ 1m_ipv4_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of received TCP RESETS over the last minute |\n| [ 10s_ipv4_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed. Netdata will not send a clear notification for this alarm. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.tcp.stats instance\n\nThese metrics show TCP connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.tcppackets | received, sent | packets/s |\n| ipv4.tcperrors | InErrs, InCsumErrors, RetransSegs | packets/s |\n| ipv4.tcphandshake | EstabResets, ActiveOpens, PassiveOpens, AttemptFails | events/s |\n| ipv4.tcpconnaborts | baddata, userclosed, nomemory, timeout, linger | connections/s |\n| ipv4.tcpofo | inqueue | packets/s |\n| ipv4.tcpsyncookies | received, sent, failed | packets/s |\n| ipv4.tcplistenissues | overflows | packets/s |\n| ipv4.ecnpkts | InCEPkts, InECT0Pkts, InECT1Pkts, OutECT0Pkts, OutECT1Pkts | packets/s |\n\n",integration_type:"collector",id:"freebsd.plugin-net.inet.tcp.stats-net.inet.tcp.stats",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.inet.udp.stats",monitored_instance:{name:"net.inet.udp.stats",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.inet.udp.stats\n\nPlugin: freebsd.plugin\nModule: net.inet.udp.stats\n\n## Overview\n\nCollect information about UDP connections.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.udp.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv4 UDP packets | Enable or disable ipv4 UDP packets metric. | yes | no |\n| ipv4 UDP errors | Enable or disable ipv4 UDP errors metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1m_ipv4_udp_receive_buffer_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP receive buffer errors over the last minute |\n| [ 1m_ipv4_udp_send_buffer_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP send buffer errors over the last minute |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.udp.stats instance\n\nThese metrics show UDP connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.udppackets | received, sent | packets/s |\n| ipv4.udperrors | InErrors, NoPorts, RcvbufErrors, InCsumErrors, IgnoredMulti | events/s |\n\n",integration_type:"collector",id:"freebsd.plugin-net.inet.udp.stats-net.inet.udp.stats",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.inet6.icmp6.stats",monitored_instance:{name:"net.inet6.icmp6.stats",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.inet6.icmp6.stats\n\nPlugin: freebsd.plugin\nModule: net.inet6.icmp6.stats\n\n## Overview\n\nCollect information abou IPv6 ICMP\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet6.icmp6.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| icmp | Enable or disable ICMP metric. | auto | no |\n| icmp redirects | Enable or disable ICMP redirects metric. | auto | no |\n| icmp errors | Enable or disable ICMP errors metric. | auto | no |\n| icmp echos | Enable or disable ICMP echos metric. | auto | no |\n| icmp router | Enable or disable ICMP router metric. | auto | no |\n| icmp neighbor | Enable or disable ICMP neighbor metric. | auto | no |\n| icmp types | Enable or disable ICMP types metric. | auto | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet6.icmp6.stats instance\n\nCollect IPv6 ICMP traffic statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv6.icmp | received, sent | messages/s |\n| ipv6.icmpredir | received, sent | redirects/s |\n| ipv6.icmperrors | InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutTimeExcds, OutParmProblems | errors/s |\n| ipv6.icmpechos | InEchos, OutEchos, InEchoReplies, OutEchoReplies | messages/s |\n| ipv6.icmprouter | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpneighbor | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmptypes | InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143 | messages/s |\n\n",integration_type:"collector",id:"freebsd.plugin-net.inet6.icmp6.stats-net.inet6.icmp6.stats",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.inet6.ip6.stats",monitored_instance:{name:"net.inet6.ip6.stats",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"network.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.inet6.ip6.stats\n\nPlugin: freebsd.plugin\nModule: net.inet6.ip6.stats\n\n## Overview\n\nCollect information abou IPv6 stats.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet6.ip6.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv6 packets | Enable or disable ipv6 packet metric. | auto | no |\n| ipv6 fragments sent | Enable or disable ipv6 fragments sent metric. | auto | no |\n| ipv6 fragments assembly | Enable or disable ipv6 fragments assembly metric. | auto | no |\n| ipv6 errors | Enable or disable ipv6 errors metric. | auto | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet6.ip6.stats instance\n\nThese metrics show general information about IPv6 connections.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv6.packets | received, sent, forwarded, delivers | packets/s |\n| ipv6.fragsout | ok, failed, all | packets/s |\n| ipv6.fragsin | ok, failed, timeout, all | packets/s |\n| ipv6.errors | InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes | packets/s |\n\n",integration_type:"collector",id:"freebsd.plugin-net.inet6.ip6.stats-net.inet6.ip6.stats",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"net.isr",monitored_instance:{name:"net.isr",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# net.isr\n\nPlugin: freebsd.plugin\nModule: net.isr\n\n## Overview\n\nCollect information about system softnet stat.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.isr]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| netisr | Enable or disable general vision about softnet stat metrics. | yes | no |\n| netisr per core | Enable or disable softnet stat metric per core. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1min_netdev_backlog_exceeded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/softnet.conf) | system.softnet_stat | average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog |\n| [ 1min_netdev_budget_ran_outs ](https://github.com/netdata/netdata/blob/master/src/health/health.d/softnet.conf) | system.softnet_stat | average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last minute (this can be a cause for dropped packets) |\n| [ 10min_netisr_backlog_exceeded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/softnet.conf) | system.softnet_stat | average number of drops in the last minute due to exceeded sysctl net.route.netisr_maxqlen (this can be a cause for dropped packets) |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.isr instance\n\nThese metrics show statistics about softnet stats.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softnet_stat | dispatched, hybrid_dispatched, qdrops, queued | events/s |\n\n### Per core\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.softnet_stat | dispatched, hybrid_dispatched, qdrops, queued | events/s |\n\n",integration_type:"collector",id:"freebsd.plugin-net.isr-net.isr",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"system.ram",monitored_instance:{name:"system.ram",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"memory.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# system.ram\n\nPlugin: freebsd.plugin\nModule: system.ram\n\n## Overview\n\nShow information about system memory usage.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| system.ram | Enable or disable system RAM metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | system.ram | system memory utilization |\n| [ ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | system.ram | system memory utilization |\n| [ ram_available ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | mem.available | percentage of estimated amount of RAM available for userspace processes, without causing swapping |\n| [ ram_available ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | mem.available | percentage of estimated amount of RAM available for userspace processes, without causing swapping |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per system.ram instance\n\nThis metric shows RAM usage statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ram | free, active, inactive, wired, cache, laundry, buffers | MiB |\n| mem.available | avail | MiB |\n\n",integration_type:"collector",id:"freebsd.plugin-system.ram-system.ram",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"uptime",monitored_instance:{name:"uptime",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# uptime\n\nPlugin: freebsd.plugin\nModule: uptime\n\n## Overview\n\nShow period of time server is up.\n\nThe plugin calls `clock_gettime` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.loadavg | Enable or disable load average metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per uptime instance\n\nHow long the system is running.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.uptime | uptime | seconds |\n\n",integration_type:"collector",id:"freebsd.plugin-uptime-uptime",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.loadavg",monitored_instance:{name:"vm.loadavg",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.loadavg\n\nPlugin: freebsd.plugin\nModule: vm.loadavg\n\n## Overview\n\nSystem Load Average\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.loadavg | Enable or disable load average metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ load_cpu_number ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | number of active CPU cores in the system |\n| [ load_average_15 ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | system fifteen-minute load average |\n| [ load_average_5 ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | system five-minute load average |\n| [ load_average_1 ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | system one-minute load average |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.loadavg instance\n\nMonitoring for number of threads running or waiting.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.load | load1, load5, load15 | load |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.loadavg-vm.loadavg",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.stats.sys.v_intr",monitored_instance:{name:"vm.stats.sys.v_intr",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.stats.sys.v_intr\n\nPlugin: freebsd.plugin\nModule: vm.stats.sys.v_intr\n\n## Overview\n\nDevice interrupts\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config option" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.sys.v_intr | Enable or disable device interrupts metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.sys.v_intr instance\n\nThe metric show device interrupt frequency.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.dev_intr | interrupts | interrupts/s |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.stats.sys.v_intr-vm.stats.sys.v_intr",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.stats.sys.v_soft",monitored_instance:{name:"vm.stats.sys.v_soft",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.stats.sys.v_soft\n\nPlugin: freebsd.plugin\nModule: vm.stats.sys.v_soft\n\n## Overview\n\nSoftware Interrupt\n\nvm.stats.sys.v_soft\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config option" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.sys.v_soft | Enable or disable software inerrupts metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.sys.v_soft instance\n\nThis metric shows software interrupt frequency.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.soft_intr | interrupts | interrupts/s |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.stats.sys.v_soft-vm.stats.sys.v_soft",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.stats.sys.v_swtch",monitored_instance:{name:"vm.stats.sys.v_swtch",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.stats.sys.v_swtch\n\nPlugin: freebsd.plugin\nModule: vm.stats.sys.v_swtch\n\n## Overview\n\nCPU context switch\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.sys.v_swtch | Enable or disable CPU context switch metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.sys.v_swtch instance\n\nThe metric count the number of context switches happening on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ctxt | switches | context switches/s |\n| system.forks | started | processes/s |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.stats.sys.v_swtch-vm.stats.sys.v_swtch",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.stats.vm.v_pgfaults",monitored_instance:{name:"vm.stats.vm.v_pgfaults",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"memory.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.stats.vm.v_pgfaults\n\nPlugin: freebsd.plugin\nModule: vm.stats.vm.v_pgfaults\n\n## Overview\n\nCollect memory page faults events.\n\nThe plugin calls `sysctl` function to collect necessary data\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.vm.v_pgfaults | Enable or disable Memory page fault metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.vm.v_pgfaults instance\n\nThe number of page faults happened on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.pgfaults | memory, io_requiring, cow, cow_optimized, in_transit | page faults/s |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.stats.vm.v_pgfaults-vm.stats.vm.v_pgfaults",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.stats.vm.v_swappgs",monitored_instance:{name:"vm.stats.vm.v_swappgs",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"memory.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.stats.vm.v_swappgs\n\nPlugin: freebsd.plugin\nModule: vm.stats.vm.v_swappgs\n\n## Overview\n\nThe metric swap amount of data read from and written to SWAP.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.vm.v_swappgs | Enable or disable infoormation about SWAP I/O metric. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 30min_ram_swapped_out ](https://github.com/netdata/netdata/blob/master/src/health/health.d/swap.conf) | mem.swapio | percentage of the system RAM swapped in the last 30 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.vm.v_swappgs instance\n\nThis metric shows events happening on SWAP.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swapio | io, out | KiB/s |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.stats.vm.v_swappgs-vm.stats.vm.v_swappgs",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.swap_info",monitored_instance:{name:"vm.swap_info",link:"",categories:["data-collection.freebsd"],icon_filename:"freebsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.swap_info\n\nPlugin: freebsd.plugin\nModule: vm.swap_info\n\n## Overview\n\nCollect information about SWAP memory.\n\nThe plugin calls `sysctlnametomib` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.swap_info | Enable or disable SWAP metrics. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ used_swap ](https://github.com/netdata/netdata/blob/master/src/health/health.d/swap.conf) | mem.swap | swap memory utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.swap_info instance\n\nThis metric shows the SWAP usage.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swap | free, used | MiB |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.swap_info-vm.swap_info",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"vm.vmtotal",monitored_instance:{name:"vm.vmtotal",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"memory.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# vm.vmtotal\n\nPlugin: freebsd.plugin\nModule: vm.vmtotal\n\n## Overview\n\nCollect Virtual Memory information from host.\n\nThe plugin calls function `sysctl` to collect data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:vm.vmtotal]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable total processes | Number of active processes. | yes | no |\n| processes running | Show number of processes running or blocked. | yes | no |\n| real memory | Memeory used on host. | yes | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ active_processes ](https://github.com/netdata/netdata/blob/master/src/health/health.d/processes.conf) | system.active_processes | system process IDs (PID) space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.vmtotal instance\n\nThese metrics show an overall vision about processes running.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.active_processes | active | processes |\n| system.processes | running, blocked | processes |\n| mem.real | used | MiB |\n\n",integration_type:"collector",id:"freebsd.plugin-vm.vmtotal-vm.vmtotal",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freebsd.plugin",module_name:"zfs",monitored_instance:{name:"zfs",link:"https://www.freebsd.org/",categories:["data-collection.freebsd"],icon_filename:"filesystem.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# zfs\n\nPlugin: freebsd.plugin\nModule: zfs\n\n## Overview\n\nCollect metrics for ZFS filesystem\n\nThe plugin uses `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:zfs_arcstats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| show zero charts | Do not show charts with zero metrics. | no | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ zfs_memory_throttle ](https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf) | zfs.memory_ops | number of times ZFS had to limit the ARC growth in the last 10 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per zfs instance\n\nThese metrics show detailed information about ZFS filesystem.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zfs.arc_size | arcsz, target, min, max | MiB |\n| zfs.l2_size | actual, size | MiB |\n| zfs.reads | arc, demand, prefetch, metadata, l2 | reads/s |\n| zfs.bytes | read, write | KiB/s |\n| zfs.hits | hits, misses | percentage |\n| zfs.hits_rate | hits, misses | events/s |\n| zfs.dhits | hits, misses | percentage |\n| zfs.dhits_rate | hits, misses | events/s |\n| zfs.phits | hits, misses | percentage |\n| zfs.phits_rate | hits, misses | events/s |\n| zfs.mhits | hits, misses | percentage |\n| zfs.mhits_rate | hits, misses | events/s |\n| zfs.l2hits | hits, misses | percentage |\n| zfs.l2hits_rate | hits, misses | events/s |\n| zfs.list_hits | mfu, mfu_ghost, mru, mru_ghost | hits/s |\n| zfs.arc_size_breakdown | recent, frequent | percentage |\n| zfs.memory_ops | throttled | operations/s |\n| zfs.important_ops | evict_skip, deleted, mutex_miss, hash_collisions | operations/s |\n| zfs.actual_hits | hits, misses | percentage |\n| zfs.actual_hits_rate | hits, misses | events/s |\n| zfs.demand_data_hits | hits, misses | percentage |\n| zfs.demand_data_hits_rate | hits, misses | events/s |\n| zfs.prefetch_data_hits | hits, misses | percentage |\n| zfs.prefetch_data_hits_rate | hits, misses | events/s |\n| zfs.hash_elements | current, max | elements |\n| zfs.hash_chains | current, max | chains |\n| zfs.trim_bytes | TRIMmed | bytes |\n| zfs.trim_requests | successful, failed, unsupported | requests |\n\n",integration_type:"collector",id:"freebsd.plugin-zfs-zfs",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freebsd.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"freeipmi.plugin",module_name:"freeipmi",monitored_instance:{name:"Intelligent Platform Management Interface (IPMI)",link:"https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"netdata.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["sensors","ipmi","freeipmi","ipmimonitoring"],most_popular:!0},overview:'# Intelligent Platform Management Interface (IPMI)\n\nPlugin: freeipmi.plugin\nModule: freeipmi\n\n## Overview\n\n"Monitor enterprise server sensor readings, event log entries, and hardware statuses to ensure reliable server operations."\n\n\nThe plugin uses open source library IPMImonitoring to communicate with sensors.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn\'t support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nLinux kernel module for IPMI can create big overhead.\n',setup:"## Setup\n\n### Prerequisites\n\n#### Install freeipmi.plugin\n\nWhen using our official DEB/RPM packages, the FreeIPMI plugin is included in a separate package named `netdata-plugin-freeipmi` which needs to be manually installed using your system package manager. It is not installed automatically due to the large number of dependencies it requires.\n\nWhen using a static build of Netdata, the FreeIPMI plugin will be included and installed automatically, though you will still need to have FreeIPMI installed on your system to be able to use the plugin.\n\nWhen using a local build of Netdata, you need to ensure that the FreeIPMI development packages (typically called `libipmimonitoring-dev`, `libipmimonitoring-devel`, or `freeipmi-devel`) are installed when building Netdata.\n\n\n#### Preliminary actions\n\nIf you have not previously used IPMI on your system, you will probably need to run the `ipmimonitoring` command as root\nto initialize IPMI settings so that the Netdata plugin works correctly. It should return information about available sensors on the system.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freeipmi]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThe configuration is set using command line options:\n\n```\n# netdata.conf\n[plugin:freeipmi]\n command options = opt1 opt2 ... optN\n```\n\nTo display a help message listing the available command line options:\n\n```bash\n./usr/libexec/netdata/plugins.d/freeipmi.plugin --help\n```\n\n\n{% details summary=\"Command options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SECONDS | Data collection frequency. | | no |\n| debug | Enable verbose output. | disabled | no |\n| no-sel | Disable System Event Log (SEL) collection. | disabled | no |\n| reread-sdr-cache | Re-read SDR cache on every iteration. | disabled | no |\n| interpret-oem-data | Attempt to parse OEM data. | disabled | no |\n| assume-system-event-record | treat illegal SEL events records as normal. | disabled | no |\n| ignore-non-interpretable-sensors | Do not read sensors that cannot be interpreted. | disabled | no |\n| bridge-sensors | Bridge sensors not owned by the BMC. | disabled | no |\n| shared-sensors | Enable shared sensors if found. | disabled | no |\n| no-discrete-reading | Do not read sensors if their event/reading type code is invalid. | enabled | no |\n| ignore-scanning-disabled | Ignore the scanning bit and read sensors no matter what. | disabled | no |\n| assume-bmc-owner | Assume the BMC is the sensor owner no matter what (usually bridging is required too). | disabled | no |\n| hostname HOST | Remote IPMI hostname or IP address. | local | no |\n| username USER | Username that will be used when connecting to the remote host. | | no |\n| password PASS | Password that will be used when connecting to the remote host. | | no |\n| noauthcodecheck / no-auth-code-check | Don't check the authentication codes returned. | | no |\n| driver-type IPMIDRIVER | Specify the driver type to use instead of doing an auto selection. The currently available outofband drivers are LAN and LAN_2_0, which perform IPMI 1.5 and IPMI 2.0 respectively. The currently available inband drivers are KCS, SSIF, OPENIPMI and SUNBMC. | | no |\n| sdr-cache-dir PATH | SDR cache files directory. | /tmp | no |\n| sensor-config-file FILE | Sensors configuration filename. | system default | no |\n| sel-config-file FILE | SEL configuration filename. | system default | no |\n| ignore N1,N2,N3,... | Sensor IDs to ignore. | | no |\n| ignore-status N1,N2,N3,... | Sensor IDs to ignore status (nominal/warning/critical). | | no |\n| -v | Print version and exit. | | no |\n| --help | Print usage message and exit. | | no |\n\n{% /details %}\n#### Examples\n\n##### Decrease data collection frequency\n\nBasic example decreasing data collection frequency. The minimum `update every` is 5 (enforced internally by the plugin). IPMI is slow and CPU hungry. So, once every 5 seconds is pretty acceptable.\n\n```yaml\n[plugin:freeipmi]\n update every = 10\n\n```\n##### Disable SEL collection\n\nAppend to `command options =` the options you need.\n\n{% details summary=\"Config\" %}\n```yaml\n[plugin:freeipmi]\n command options = no-sel\n\n```\n{% /details %}\n##### Ignore specific sensors\n\nSpecific sensor IDs can be excluded from freeipmi tools by editing `/etc/freeipmi/freeipmi.conf` and setting the IDs to be ignored at `ipmi-sensors-exclude-record-ids`.\n\n**However this file is not used by `libipmimonitoring`** (the library used by Netdata's `freeipmi.plugin`).\n\nTo find the IDs to ignore, run the command `ipmimonitoring`. The first column is the wanted ID:\n\nID | Name | Type | State | Reading | Units | Event\n1 | Ambient Temp | Temperature | Nominal | 26.00 | C | 'OK'\n2 | Altitude | Other Units Based Sensor | Nominal | 480.00 | ft | 'OK'\n3 | Avg Power | Current | Nominal | 100.00 | W | 'OK'\n4 | Planar 3.3V | Voltage | Nominal | 3.29 | V | 'OK'\n5 | Planar 5V | Voltage | Nominal | 4.90 | V | 'OK'\n6 | Planar 12V | Voltage | Nominal | 11.99 | V | 'OK'\n7 | Planar VBAT | Voltage | Nominal | 2.95 | V | 'OK'\n8 | Fan 1A Tach | Fan | Nominal | 3132.00 | RPM | 'OK'\n9 | Fan 1B Tach | Fan | Nominal | 2150.00 | RPM | 'OK'\n10 | Fan 2A Tach | Fan | Nominal | 2494.00 | RPM | 'OK'\n11 | Fan 2B Tach | Fan | Nominal | 1825.00 | RPM | 'OK'\n12 | Fan 3A Tach | Fan | Nominal | 3538.00 | RPM | 'OK'\n13 | Fan 3B Tach | Fan | Nominal | 2625.00 | RPM | 'OK'\n14 | Fan 1 | Entity Presence | Nominal | N/A | N/A | 'Entity Present'\n15 | Fan 2 | Entity Presence | Nominal | N/A | N/A | 'Entity Present'\n...\n\n`freeipmi.plugin` supports the option `ignore` that accepts a comma separated list of sensor IDs to ignore. To configure it set on `netdata.conf`:\n\n\n{% details summary=\"Config\" %}\n```yaml\n[plugin:freeipmi]\n command options = ignore 1,2,3,4,...\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\n\n\n### kimpi0 CPU usage\n\n\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ipmi_sensor_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ipmi.conf) | ipmi.sensor_state | IPMI sensor ${label:sensor} (${label:component}) state |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe plugin does a speed test when it starts, to find out the duration needed by the IPMI processor to respond. Depending on the speed of your IPMI processor, charts may need several seconds to show up on the dashboard.\n\n\n### Per Intelligent Platform Management Interface (IPMI) instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipmi.sel | events | events |\n\n### Per sensor\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| sensor | The sensor name |\n| type | One of 45 recognized sensor types (Battery, Voltage...) |\n| component | One of 25 recognized components (Processor, Peripheral). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipmi.sensor_state | nominal, critical, warning, unknown | state |\n| ipmi.sensor_temperature_c | temperature | Celsius |\n| ipmi.sensor_temperature_f | temperature | Fahrenheit |\n| ipmi.sensor_voltage | voltage | Volts |\n| ipmi.sensor_ampere | ampere | Amps |\n| ipmi.sensor_fan_speed | rotations | RPM |\n| ipmi.sensor_power | power | Watts |\n| ipmi.sensor_reading_percent | percentage | % |\n\n",integration_type:"collector",id:"freeipmi.plugin-freeipmi-Intelligent_Platform_Management_Interface_(IPMI)",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/freeipmi.plugin/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-activemq",module_name:"activemq",plugin_name:"go.d.plugin",monitored_instance:{categories:["data-collection.message-brokers"],icon_filename:"activemq.png",name:"ActiveMQ",link:"https://activemq.apache.org/"},alternative_monitored_instances:[],keywords:["message broker"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[{plugin_name:"go.d.plugin",module_name:"httpcheck"},{plugin_name:"apps.plugin",module_name:"apps"}]}}},overview:"# ActiveMQ\n\nPlugin: go.d.plugin\nModule: activemq\n\n## Overview\n\nThis collector monitors ActiveMQ queues and topics.\n\nIt collects metrics by sending HTTP requests to the Web Console API.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers instances running on the local host that provide metrics on port 8161.\nOn startup, it tries to collect metrics from:\n\n- http://localhost:8161\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/activemq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/activemq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://localhost:8161 | yes |\n| webadmin | Webadmin root path. | admin | yes |\n| max_queues | Maximum number of concurrently collected queues. | 50 | no |\n| max_topics | Maximum number of concurrently collected topics. | 50 | no |\n| queues_filter | Queues filter. Syntax is [simple patterns](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md#simple-patterns). | | no |\n| topics_filter | Topics filter. Syntax is [simple patterns](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md#simple-patterns). | | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| timeout | HTTP request timeout. | 1 | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Filters and limits\n\nUsing filters and limits for queues and topics.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n max_queues: 100\n max_topics: 100\n queues_filter: \'!sandr* *\'\n topics_filter: \'!sandr* *\'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n\n - name: remote\n url: http://192.0.2.1:8161\n webadmin: admin\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `activemq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m activemq\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ActiveMQ instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| activemq.messages | enqueued, dequeued | messages/s |\n| activemq.unprocessed_messages | unprocessed | messages |\n| activemq.consumers | consumers | consumers |\n\n",integration_type:"collector",id:"go.d.plugin-activemq-ActiveMQ",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/activemq/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-apache",plugin_name:"go.d.plugin",module_name:"apache",monitored_instance:{name:"Apache",link:"https://httpd.apache.org/",icon_filename:"apache.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["webserver"],related_resources:{integrations:{list:[{plugin_name:"go.d.plugin",module_name:"weblog"},{plugin_name:"go.d.plugin",module_name:"httpcheck"},{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Apache\n\nPlugin: go.d.plugin\nModule: apache\n\n## Overview\n\nThis collector monitors the activity and performance of Apache servers, and collects metrics such as the number of connections, workers, requests and more.\n\n\nIt sends HTTP requests to the Apache location [server-status](https://httpd.apache.org/docs/2.4/mod/mod_status.html), \nwhich is a built-in location that provides metrics about the Apache server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Apache instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://localhost/server-status?auto\n- http://127.0.0.1/server-status?auto\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable Apache status support\n\n- Enable and configure [status_module](https://httpd.apache.org/docs/2.4/mod/mod_status.html).\n- Ensure that you have [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/mod_status.html#troubleshoot) set on (enabled by default since Apache v2.3.6).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/apache.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/apache.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1/server-status?auto | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nApache with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/server-status?auto\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n - name: remote\n url: http://192.0.2.1/server-status?auto\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `apache` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m apache\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nAll metrics available only if [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/core.html#extendedstatus) is on.\n\n\n### Per Apache instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | Basic | Extended |\n|:------|:----------|:----|:---:|:---:|\n| apache.connections | connections | connections | \u2022 | \u2022 |\n| apache.conns_async | keepalive, closing, writing | connections | \u2022 | \u2022 |\n| apache.workers | idle, busy | workers | \u2022 | \u2022 |\n| apache.scoreboard | waiting, starting, reading, sending, keepalive, dns_lookup, closing, logging, finishing, idle_cleanup, open | connections | \u2022 | \u2022 |\n| apache.requests | requests | requests/s | | \u2022 |\n| apache.net | sent | kilobit/s | | \u2022 |\n| apache.reqpersec | requests | requests/s | | \u2022 |\n| apache.bytespersec | served | KiB/s | | \u2022 |\n| apache.bytesperreq | size | KiB | | \u2022 |\n| apache.uptime | uptime | seconds | | \u2022 |\n\n",integration_type:"collector",id:"go.d.plugin-apache-Apache",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/apache/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-httpd",plugin_name:"go.d.plugin",module_name:"apache",monitored_instance:{name:"HTTPD",link:"https://httpd.apache.org/",icon_filename:"apache.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["webserver"],related_resources:{integrations:{list:[{plugin_name:"go.d.plugin",module_name:"weblog"},{plugin_name:"go.d.plugin",module_name:"httpcheck"},{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# HTTPD\n\nPlugin: go.d.plugin\nModule: apache\n\n## Overview\n\nThis collector monitors the activity and performance of Apache servers, and collects metrics such as the number of connections, workers, requests and more.\n\n\nIt sends HTTP requests to the Apache location [server-status](https://httpd.apache.org/docs/2.4/mod/mod_status.html), \nwhich is a built-in location that provides metrics about the Apache server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Apache instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://localhost/server-status?auto\n- http://127.0.0.1/server-status?auto\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable Apache status support\n\n- Enable and configure [status_module](https://httpd.apache.org/docs/2.4/mod/mod_status.html).\n- Ensure that you have [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/mod_status.html#troubleshoot) set on (enabled by default since Apache v2.3.6).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/apache.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/apache.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1/server-status?auto | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nApache with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/server-status?auto\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n - name: remote\n url: http://192.0.2.1/server-status?auto\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `apache` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m apache\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nAll metrics available only if [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/core.html#extendedstatus) is on.\n\n\n### Per Apache instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | Basic | Extended |\n|:------|:----------|:----|:---:|:---:|\n| apache.connections | connections | connections | \u2022 | \u2022 |\n| apache.conns_async | keepalive, closing, writing | connections | \u2022 | \u2022 |\n| apache.workers | idle, busy | workers | \u2022 | \u2022 |\n| apache.scoreboard | waiting, starting, reading, sending, keepalive, dns_lookup, closing, logging, finishing, idle_cleanup, open | connections | \u2022 | \u2022 |\n| apache.requests | requests | requests/s | | \u2022 |\n| apache.net | sent | kilobit/s | | \u2022 |\n| apache.reqpersec | requests | requests/s | | \u2022 |\n| apache.bytespersec | served | KiB/s | | \u2022 |\n| apache.bytesperreq | size | KiB | | \u2022 |\n| apache.uptime | uptime | seconds | | \u2022 |\n\n",integration_type:"collector",id:"go.d.plugin-apache-HTTPD",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/apache/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-cassandra",module_name:"cassandra",plugin_name:"go.d.plugin",monitored_instance:{categories:["data-collection.database-servers"],icon_filename:"cassandra.svg",name:"Cassandra",link:"https://cassandra.apache.org/_/index.html"},alternative_monitored_instances:[],keywords:["nosql","dbms","db","database"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Cassandra\n\nPlugin: go.d.plugin\nModule: cassandra\n\n## Overview\n\nThis collector gathers metrics about client requests, cache hits, and many more, while also providing metrics per each thread pool.\n\n\nThe [JMX Exporter](https://github.com/prometheus/jmx_exporter) is used to fetch metrics from a Cassandra instance and make them available at an endpoint like `http://127.0.0.1:7072/metrics`.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers instances running on the local host that provide metrics on port 7072.\n\nOn startup, it tries to collect metrics from:\n\n- http://127.0.0.1:7072/metrics\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure Cassandra with Prometheus JMX Exporter\n\nTo configure Cassandra with the [JMX Exporter](https://github.com/prometheus/jmx_exporter):\n\n> **Note**: paths can differ depends on your setup.\n\n- Download latest [jmx_exporter](https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/) jar file\n and install it in a directory where Cassandra can access it.\n- Add\n the [jmx_exporter.yaml](https://raw.githubusercontent.com/netdata/go.d.plugin/master/modules/cassandra/jmx_exporter.yaml)\n file to `/etc/cassandra`.\n- Add the following line to `/etc/cassandra/cassandra-env.sh`\n ```\n JVM_OPTS="$JVM_OPTS $JVM_EXTRA_OPTS -javaagent:/opt/jmx_exporter/jmx_exporter.jar=7072:/etc/cassandra/jmx_exporter.yaml\n ```\n- Restart cassandra service.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/cassandra.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/cassandra.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:7072/metrics | yes |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| timeout | HTTP request timeout. | 2 | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:7072/metrics\n\n```\n##### HTTP authentication\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:7072/metrics\n username: foo\n password: bar\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nLocal server with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:7072/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:7072/metrics\n\n - name: remote\n url: http://192.0.2.1:7072/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `cassandra` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m cassandra\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Cassandra instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cassandra.client_requests_rate | read, write | requests/s |\n| cassandra.client_request_read_latency_histogram | p50, p75, p95, p98, p99, p999 | seconds |\n| cassandra.client_request_write_latency_histogram | p50, p75, p95, p98, p99, p999 | seconds |\n| cassandra.client_requests_latency | read, write | seconds |\n| cassandra.row_cache_hit_ratio | hit_ratio | percentage |\n| cassandra.row_cache_hit_rate | hits, misses | events/s |\n| cassandra.row_cache_utilization | used | percentage |\n| cassandra.row_cache_size | size | bytes |\n| cassandra.key_cache_hit_ratio | hit_ratio | percentage |\n| cassandra.key_cache_hit_rate | hits, misses | events/s |\n| cassandra.key_cache_utilization | used | percentage |\n| cassandra.key_cache_size | size | bytes |\n| cassandra.storage_live_disk_space_used | used | bytes |\n| cassandra.compaction_completed_tasks_rate | completed | tasks/s |\n| cassandra.compaction_pending_tasks_count | pending | tasks |\n| cassandra.compaction_compacted_rate | compacted | bytes/s |\n| cassandra.jvm_memory_used | heap, nonheap | bytes |\n| cassandra.jvm_gc_rate | parnew, cms | gc/s |\n| cassandra.jvm_gc_time | parnew, cms | seconds |\n| cassandra.dropped_messages_rate | dropped | messages/s |\n| cassandra.client_requests_timeouts_rate | read, write | timeout/s |\n| cassandra.client_requests_unavailables_rate | read, write | exceptions/s |\n| cassandra.client_requests_failures_rate | read, write | failures/s |\n| cassandra.storage_exceptions_rate | storage | exceptions/s |\n\n### Per thread pool\n\nMetrics related to Cassandra's thread pools. Each thread pool provides its own set of the following metrics.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thread_pool | thread pool name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cassandra.thread_pool_active_tasks_count | active | tasks |\n| cassandra.thread_pool_pending_tasks_count | pending | tasks |\n| cassandra.thread_pool_blocked_tasks_count | blocked | tasks |\n| cassandra.thread_pool_blocked_tasks_rate | blocked | tasks/s |\n\n",integration_type:"collector",id:"go.d.plugin-cassandra-Cassandra",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/cassandra/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-chrony",module_name:"chrony",plugin_name:"go.d.plugin",monitored_instance:{categories:["data-collection.system-clock-and-ntp"],icon_filename:"chrony.jpg",name:"Chrony",link:"https://chrony.tuxfamily.org/"},alternative_monitored_instances:[],keywords:[],info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}},most_popular:!1},overview:"# Chrony\n\nPlugin: go.d.plugin\nModule: chrony\n\n## Overview\n\nThis collector monitors the system's clock performance and peers activity status\n\nIt collects metrics by sending UDP packets to chronyd using the Chrony communication protocol v6.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers Chrony instance running on the local host and listening on port 323.\nOn startup, it tries to collect metrics from:\n\n- 127.0.0.1:323\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/chrony.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/chrony.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Server address. The format is IP:PORT. | 127.0.0.1:323 | yes |\n| timeout | Connection timeout. Zero means no timeout. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:323\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:323\n\n - name: remote\n address: 192.0.2.1:323\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `chrony` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m chrony\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Chrony instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| chrony.stratum | stratum | level |\n| chrony.current_correction | current_correction | seconds |\n| chrony.root_delay | root_delay | seconds |\n| chrony.root_dispersion | root_delay | seconds |\n| chrony.last_offset | offset | seconds |\n| chrony.rms_offset | offset | seconds |\n| chrony.frequency | frequency | ppm |\n| chrony.residual_frequency | residual_frequency | ppm |\n| chrony.skew | skew | ppm |\n| chrony.update_interval | update_interval | seconds |\n| chrony.ref_measurement_time | ref_measurement_time | seconds |\n| chrony.leap_status | normal, insert_second, delete_second, unsynchronised | status |\n| chrony.activity | online, offline, burst_online, burst_offline, unresolved | sources |\n\n",integration_type:"collector",id:"go.d.plugin-chrony-Chrony",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/chrony/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-cockroachdb",plugin_name:"go.d.plugin",module_name:"cockroachdb",monitored_instance:{name:"CockroachDB",link:"https://www.cockroachlabs.com/",icon_filename:"cockroachdb.svg",categories:["data-collection.database-servers"]},keywords:["cockroachdb","databases"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# CockroachDB\n\nPlugin: go.d.plugin\nModule: cockroachdb\n\n## Overview\n\nThis collector monitors CockroachDB servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/cockroachdb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/cockroachdb.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8080/_status/vars | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/_status/vars\n\n```\n{% /details %}\n##### HTTP authentication\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/_status/vars\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nCockroachDB with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8080/_status/vars\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/_status/vars\n\n - name: remote\n url: http://203.0.113.10:8080/_status/vars\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `cockroachdb` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m cockroachdb\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cockroachdb_used_storage_capacity ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cockroachdb.conf) | cockroachdb.storage_used_capacity_percentage | storage capacity utilization |\n| [ cockroachdb_used_usable_storage_capacity ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cockroachdb.conf) | cockroachdb.storage_used_capacity_percentage | storage usable space utilization |\n| [ cockroachdb_unavailable_ranges ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cockroachdb.conf) | cockroachdb.ranges_replication_problem | number of ranges with fewer live replicas than needed for quorum |\n| [ cockroachdb_underreplicated_ranges ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cockroachdb.conf) | cockroachdb.ranges_replication_problem | number of ranges with fewer live replicas than the replication target |\n| [ cockroachdb_open_file_descriptors_limit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cockroachdb.conf) | cockroachdb.process_file_descriptors | open file descriptors utilization (against softlimit) |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CockroachDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cockroachdb.process_cpu_time_combined_percentage | used | percentage |\n| cockroachdb.process_cpu_time_percentage | user, sys | percentage |\n| cockroachdb.process_cpu_time | user, sys | ms |\n| cockroachdb.process_memory | rss | KiB |\n| cockroachdb.process_file_descriptors | open | fd |\n| cockroachdb.process_uptime | uptime | seconds |\n| cockroachdb.host_disk_bandwidth | read, write | KiB |\n| cockroachdb.host_disk_operations | reads, writes | operations |\n| cockroachdb.host_disk_iops_in_progress | in_progress | iops |\n| cockroachdb.host_network_bandwidth | received, sent | kilobits |\n| cockroachdb.host_network_packets | received, sent | packets |\n| cockroachdb.live_nodes | live_nodes | nodes |\n| cockroachdb.node_liveness_heartbeats | successful, failed | heartbeats |\n| cockroachdb.total_storage_capacity | total | KiB |\n| cockroachdb.storage_capacity_usability | usable, unusable | KiB |\n| cockroachdb.storage_usable_capacity | available, used | KiB |\n| cockroachdb.storage_used_capacity_percentage | total, usable | percentage |\n| cockroachdb.sql_connections | active | connections |\n| cockroachdb.sql_bandwidth | received, sent | KiB |\n| cockroachdb.sql_statements_total | started, executed | statements |\n| cockroachdb.sql_errors | statement, transaction | errors |\n| cockroachdb.sql_started_ddl_statements | ddl | statements |\n| cockroachdb.sql_executed_ddl_statements | ddl | statements |\n| cockroachdb.sql_started_dml_statements | select, update, delete, insert | statements |\n| cockroachdb.sql_executed_dml_statements | select, update, delete, insert | statements |\n| cockroachdb.sql_started_tcl_statements | begin, commit, rollback, savepoint, savepoint_cockroach_restart, release_savepoint_cockroach_restart, rollback_to_savepoint_cockroach_restart | statements |\n| cockroachdb.sql_executed_tcl_statements | begin, commit, rollback, savepoint, savepoint_cockroach_restart, release_savepoint_cockroach_restart, rollback_to_savepoint_cockroach_restart | statements |\n| cockroachdb.sql_active_distributed_queries | active | queries |\n| cockroachdb.sql_distributed_flows | active, queued | flows |\n| cockroachdb.live_bytes | applications, system | KiB |\n| cockroachdb.logical_data | keys, values | KiB |\n| cockroachdb.logical_data_count | keys, values | num |\n| cockroachdb.kv_transactions | committed, fast-path_committed, aborted | transactions |\n| cockroachdb.kv_transaction_restarts | write_too_old, write_too_old_multiple, forwarded_timestamp, possible_reply, async_consensus_failure, read_within_uncertainty_interval, aborted, push_failure, unknown | restarts |\n| cockroachdb.ranges | ranges | ranges |\n| cockroachdb.ranges_replication_problem | unavailable, under_replicated, over_replicated | ranges |\n| cockroachdb.range_events | split, add, remove, merge | events |\n| cockroachdb.range_snapshot_events | generated, applied_raft_initiated, applied_learner, applied_preemptive | events |\n| cockroachdb.rocksdb_read_amplification | reads | reads/query |\n| cockroachdb.rocksdb_table_operations | compactions, flushes | operations |\n| cockroachdb.rocksdb_cache_usage | used | KiB |\n| cockroachdb.rocksdb_cache_operations | hits, misses | operations |\n| cockroachdb.rocksdb_cache_hit_rate | hit_rate | percentage |\n| cockroachdb.rocksdb_sstables | sstables | sstables |\n| cockroachdb.replicas | replicas | replicas |\n| cockroachdb.replicas_quiescence | quiescent, active | replicas |\n| cockroachdb.replicas_leaders | leaders, not_leaseholders | replicas |\n| cockroachdb.replicas_leaseholders | leaseholders | leaseholders |\n| cockroachdb.queue_processing_failures | gc, replica_gc, replication, split, consistency, raft_log, raft_snapshot, time_series_maintenance | failures |\n| cockroachdb.rebalancing_queries | avg | queries/s |\n| cockroachdb.rebalancing_writes | avg | writes/s |\n| cockroachdb.timeseries_samples | written | samples |\n| cockroachdb.timeseries_write_errors | write | errors |\n| cockroachdb.timeseries_write_bytes | written | KiB |\n| cockroachdb.slow_requests | acquiring_latches, acquiring_lease, in_raft | requests |\n| cockroachdb.code_heap_memory_usage | go, cgo | KiB |\n| cockroachdb.goroutines | goroutines | goroutines |\n| cockroachdb.gc_count | gc | invokes |\n| cockroachdb.gc_pause | pause | us |\n| cockroachdb.cgo_calls | cgo | calls |\n\n",integration_type:"collector",id:"go.d.plugin-cockroachdb-CockroachDB",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/cockroachdb/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-consul",plugin_name:"go.d.plugin",module_name:"consul",monitored_instance:{name:"Consul",link:"https://www.consul.io/",categories:["data-collection.service-discovery-registry"],icon_filename:"consul.svg"},alternative_monitored_instances:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["service networking platform","hashicorp"],most_popular:!0},overview:"# Consul\n\nPlugin: go.d.plugin\nModule: consul\n\n## Overview\n\nThis collector monitors [key metrics](https://developer.hashicorp.com/consul/docs/agent/telemetry#key-metrics) of Consul Agents: transaction timings, leadership changes, memory usage and more.\n\n\nIt periodically sends HTTP requests to [Consul REST API](https://developer.hashicorp.com/consul/api-docs).\n\nUsed endpoints:\n\n- [/operator/autopilot/health](https://developer.hashicorp.com/consul/api-docs/operator/autopilot#read-health)\n- [/agent/checks](https://developer.hashicorp.com/consul/api-docs/agent/check#list-checks)\n- [/agent/self](https://developer.hashicorp.com/consul/api-docs/agent#read-configuration)\n- [/agent/metrics](https://developer.hashicorp.com/consul/api-docs/agent#view-metrics)\n- [/coordinate/nodes](https://developer.hashicorp.com/consul/api-docs/coordinate#read-lan-coordinates-for-all-nodes)\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers instances running on the local host, that provide metrics on port 8500.\n\nOn startup, it tries to collect metrics from:\n\n- http://localhost:8500\n- http://127.0.0.1:8500\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable Prometheus telemetry\n\n[Enable](https://developer.hashicorp.com/consul/docs/agent/config/config-files#telemetry-prometheus_retention_time) telemetry on your Consul agent, by increasing the value of `prometheus_retention_time` from `0`.\n\n\n#### Add required ACLs to Token\n\nRequired **only if authentication is enabled**.\n\n| ACL | Endpoint |\n|:---------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `operator:read` | [autopilot health status](https://developer.hashicorp.com/consul/api-docs/operator/autopilot#read-health) |\n| `node:read` | [checks](https://developer.hashicorp.com/consul/api-docs/agent/check#list-checks) |\n| `agent:read` | [configuration](https://developer.hashicorp.com/consul/api-docs/agent#read-configuration), [metrics](https://developer.hashicorp.com/consul/api-docs/agent#view-metrics), and [lan coordinates](https://developer.hashicorp.com/consul/api-docs/coordinate#read-lan-coordinates-for-all-nodes) |\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/consul.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/consul.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="All options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://localhost:8500 | yes |\n| acl_token | ACL token used in every request. | | no |\n| max_checks | Checks processing/charting limit. | | no |\n| max_filter | Checks processing/charting filter. Uses [simple patterns](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md). | | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| timeout | HTTP request timeout. | 1 | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client tls certificate. | | no |\n| tls_key | Client tls key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8500\n acl_token: "ec15675e-2999-d789-832e-8c4794daa8d7"\n\n```\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8500\n acl_token: "ec15675e-2999-d789-832e-8c4794daa8d7"\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8500\n acl_token: "ec15675e-2999-d789-832e-8c4794daa8d7"\n\n - name: remote\n url: http://203.0.113.10:8500\n acl_token: "ada7f751-f654-8872-7f93-498e799158b6"\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `consul` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m consul\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ consul_node_health_check_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.node_health_check_status | node health check ${label:check_name} has failed on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_service_health_check_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.service_health_check_status | service health check ${label:check_name} for service ${label:service_name} has failed on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_client_rpc_requests_exceeded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.client_rpc_requests_exceeded_rate | number of rate-limited RPC requests made by server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_client_rpc_requests_failed ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.client_rpc_requests_failed_rate | number of failed RPC requests made by server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_gc_pause_time ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.gc_pause_time | time spent in stop-the-world garbage collection pauses on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_autopilot_health_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.autopilot_health_status | datacenter ${label:datacenter} cluster is unhealthy as reported by server ${label:node_name} |\n| [ consul_autopilot_server_health_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.autopilot_server_health_status | server ${label:node_name} from datacenter ${label:datacenter} is unhealthy |\n| [ consul_raft_leader_last_contact_time ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.raft_leader_last_contact_time | median time elapsed since leader server ${label:node_name} datacenter ${label:datacenter} was last able to contact the follower nodes |\n| [ consul_raft_leadership_transitions ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.raft_leadership_transitions_rate | there has been a leadership change and server ${label:node_name} datacenter ${label:datacenter} has become the leader |\n| [ consul_raft_thread_main_saturation ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.raft_thread_main_saturation_perc | average saturation of the main Raft goroutine on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_raft_thread_fsm_saturation ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.raft_thread_fsm_saturation_perc | average saturation of the FSM Raft goroutine on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_license_expiration_time ](https://github.com/netdata/netdata/blob/master/src/health/health.d/consul.conf) | consul.license_expiration_time | Consul Enterprise licence expiration time on node ${label:node_name} datacenter ${label:datacenter} |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe set of metrics depends on the [Consul Agent mode](https://developer.hashicorp.com/consul/docs/install/glossary#agent).\n\n\n### Per Consul instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | Leader | Follower | Client |\n|:------|:----------|:----|:---:|:---:|:---:|\n| consul.client_rpc_requests_rate | rpc | requests/s | \u2022 | \u2022 | \u2022 |\n| consul.client_rpc_requests_exceeded_rate | exceeded | requests/s | \u2022 | \u2022 | \u2022 |\n| consul.client_rpc_requests_failed_rate | failed | requests/s | \u2022 | \u2022 | \u2022 |\n| consul.memory_allocated | allocated | bytes | \u2022 | \u2022 | \u2022 |\n| consul.memory_sys | sys | bytes | \u2022 | \u2022 | \u2022 |\n| consul.gc_pause_time | gc_pause | seconds | \u2022 | \u2022 | \u2022 |\n| consul.kvs_apply_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | \u2022 | |\n| consul.kvs_apply_operations_rate | kvs_apply | ops/s | \u2022 | \u2022 | |\n| consul.txn_apply_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | \u2022 | |\n| consul.txn_apply_operations_rate | txn_apply | ops/s | \u2022 | \u2022 | |\n| consul.autopilot_health_status | healthy, unhealthy | status | \u2022 | \u2022 | |\n| consul.autopilot_failure_tolerance | failure_tolerance | servers | \u2022 | \u2022 | |\n| consul.autopilot_server_health_status | healthy, unhealthy | status | \u2022 | \u2022 | |\n| consul.autopilot_server_stable_time | stable | seconds | \u2022 | \u2022 | |\n| consul.autopilot_server_serf_status | active, failed, left, none | status | \u2022 | \u2022 | |\n| consul.autopilot_server_voter_status | voter, not_voter | status | \u2022 | \u2022 | |\n| consul.network_lan_rtt | min, max, avg | ms | \u2022 | \u2022 | |\n| consul.raft_commit_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | | |\n| consul.raft_commits_rate | commits | commits/s | \u2022 | | |\n| consul.raft_leader_last_contact_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | | |\n| consul.raft_leader_oldest_log_age | oldest_log_age | seconds | \u2022 | | |\n| consul.raft_follower_last_contact_leader_time | leader_last_contact | ms | | \u2022 | |\n| consul.raft_rpc_install_snapshot_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | | \u2022 | |\n| consul.raft_leader_elections_rate | leader | elections/s | \u2022 | \u2022 | |\n| consul.raft_leadership_transitions_rate | leadership | transitions/s | \u2022 | \u2022 | |\n| consul.server_leadership_status | leader, not_leader | status | \u2022 | \u2022 | |\n| consul.raft_thread_main_saturation_perc | quantile_0.5, quantile_0.9, quantile_0.99 | percentage | \u2022 | \u2022 | |\n| consul.raft_thread_fsm_saturation_perc | quantile_0.5, quantile_0.9, quantile_0.99 | percentage | \u2022 | \u2022 | |\n| consul.raft_fsm_last_restore_duration | last_restore_duration | ms | \u2022 | \u2022 | |\n| consul.raft_boltdb_freelist_bytes | freelist | bytes | \u2022 | \u2022 | |\n| consul.raft_boltdb_logs_per_batch_rate | written | logs/s | \u2022 | \u2022 | |\n| consul.raft_boltdb_store_logs_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | \u2022 | |\n| consul.license_expiration_time | license_expiration | seconds | \u2022 | \u2022 | \u2022 |\n\n### Per node check\n\nMetrics about checks on Node level.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| datacenter | Datacenter Identifier |\n| node_name | The node's name |\n| check_name | The check's name |\n\nMetrics:\n\n| Metric | Dimensions | Unit | Leader | Follower | Client |\n|:------|:----------|:----|:---:|:---:|:---:|\n| consul.node_health_check_status | passing, maintenance, warning, critical | status | \u2022 | \u2022 | \u2022 |\n\n### Per service check\n\nMetrics about checks at a Service level.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| datacenter | Datacenter Identifier |\n| node_name | The node's name |\n| check_name | The check's name |\n| service_name | The service's name |\n\nMetrics:\n\n| Metric | Dimensions | Unit | Leader | Follower | Client |\n|:------|:----------|:----|:---:|:---:|:---:|\n| consul.service_health_check_status | passing, maintenance, warning, critical | status | \u2022 | \u2022 | \u2022 |\n\n",integration_type:"collector",id:"go.d.plugin-consul-Consul",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/consul/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-coredns",plugin_name:"go.d.plugin",module_name:"coredns",monitored_instance:{name:"CoreDNS",link:"https://coredns.io/",icon_filename:"coredns.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["coredns","dns","kubernetes"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# CoreDNS\n\nPlugin: go.d.plugin\nModule: coredns\n\n## Overview\n\nThis collector monitors CoreDNS instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/coredns.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/coredns.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="All options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:9153/metrics | yes |\n| per_server_stats | Server filter. | | no |\n| per_zone_stats | Zone filter. | | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| timeout | HTTP request timeout. | 2 | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client tls certificate. | | no |\n| tls_key | Client tls key. | | no |\n\n##### per_server_stats\n\nMetrics of servers matching the selector will be collected.\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [matcher](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/matcher#supported-format).\n- Syntax:\n\n```yaml\nper_server_stats:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n##### per_zone_stats\n\nMetrics of zones matching the selector will be collected.\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [matcher](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/matcher#supported-format).\n- Syntax:\n\n```yaml\nper_zone_stats:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9153/metrics\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9153/metrics\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9153/metrics\n\n - name: remote\n url: http://203.0.113.10:9153/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `coredns` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m coredns\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CoreDNS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| coredns.dns_request_count_total | requests | requests/s |\n| coredns.dns_responses_count_total | responses | responses/s |\n| coredns.dns_request_count_total_per_status | processed, dropped | requests/s |\n| coredns.dns_no_matching_zone_dropped_total | dropped | requests/s |\n| coredns.dns_panic_count_total | panics | panics/s |\n| coredns.dns_requests_count_total_per_proto | udp, tcp | requests/s |\n| coredns.dns_requests_count_total_per_ip_family | v4, v6 | requests/s |\n| coredns.dns_requests_count_total_per_per_type | a, aaaa, mx, soa, cname, ptr, txt, ns, ds, dnskey, rrsig, nsec, nsec3, ixfr, any, other | requests/s |\n| coredns.dns_responses_count_total_per_rcode | noerror, formerr, servfail, nxdomain, notimp, refused, yxdomain, yxrrset, nxrrset, notauth, notzone, badsig, badkey, badtime, badmode, badname, badalg, badtrunc, badcookie, other | responses/s |\n\n### Per server\n\nThese metrics refer to the DNS server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| server_name | Server name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| coredns.server_dns_request_count_total | requests | requests/s |\n| coredns.server_dns_responses_count_total | responses | responses/s |\n| coredns.server_request_count_total_per_status | processed, dropped | requests/s |\n| coredns.server_requests_count_total_per_proto | udp, tcp | requests/s |\n| coredns.server_requests_count_total_per_ip_family | v4, v6 | requests/s |\n| coredns.server_requests_count_total_per_per_type | a, aaaa, mx, soa, cname, ptr, txt, ns, ds, dnskey, rrsig, nsec, nsec3, ixfr, any, other | requests/s |\n| coredns.server_responses_count_total_per_rcode | noerror, formerr, servfail, nxdomain, notimp, refused, yxdomain, yxrrset, nxrrset, notauth, notzone, badsig, badkey, badtime, badmode, badname, badalg, badtrunc, badcookie, other | responses/s |\n\n### Per zone\n\nThese metrics refer to the DNS zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| zone_name | Zone name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| coredns.zone_dns_request_count_total | requests | requests/s |\n| coredns.zone_dns_responses_count_total | responses | responses/s |\n| coredns.zone_requests_count_total_per_proto | udp, tcp | requests/s |\n| coredns.zone_requests_count_total_per_ip_family | v4, v6 | requests/s |\n| coredns.zone_requests_count_total_per_per_type | a, aaaa, mx, soa, cname, ptr, txt, ns, ds, dnskey, rrsig, nsec, nsec3, ixfr, any, other | requests/s |\n| coredns.zone_responses_count_total_per_rcode | noerror, formerr, servfail, nxdomain, notimp, refused, yxdomain, yxrrset, nxrrset, notauth, notzone, badsig, badkey, badtime, badmode, badname, badalg, badtrunc, badcookie, other | responses/s |\n\n",integration_type:"collector",id:"go.d.plugin-coredns-CoreDNS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/coredns/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-couchbase",plugin_name:"go.d.plugin",module_name:"couchbase",monitored_instance:{name:"Couchbase",link:"https://www.couchbase.com/",icon_filename:"couchbase.svg",categories:["data-collection.database-servers"]},keywords:["couchbase","databases"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Couchbase\n\nPlugin: go.d.plugin\nModule: couchbase\n\n## Overview\n\nThis collector monitors Couchbase servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/couchbase.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/couchbase.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="All options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8091 | yes |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| timeout | HTTP request timeout. | 2 | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client tls certificate. | | no |\n| tls_key | Client tls key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8091\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8091\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8091\n\n - name: remote\n url: http://203.0.113.0:8091\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `couchbase` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m couchbase\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Couchbase instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| couchbase.bucket_quota_percent_used | a dimension per bucket | percentage |\n| couchbase.bucket_ops_per_sec | a dimension per bucket | ops/s |\n| couchbase.bucket_disk_fetches | a dimension per bucket | fetches |\n| couchbase.bucket_item_count | a dimension per bucket | items |\n| couchbase.bucket_disk_used_stats | a dimension per bucket | bytes |\n| couchbase.bucket_data_used | a dimension per bucket | bytes |\n| couchbase.bucket_mem_used | a dimension per bucket | bytes |\n| couchbase.bucket_vb_active_num_non_resident | a dimension per bucket | items |\n\n",integration_type:"collector",id:"go.d.plugin-couchbase-Couchbase",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/couchbase/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-couchdb",plugin_name:"go.d.plugin",module_name:"couchdb",monitored_instance:{name:"CouchDB",link:"https://couchdb.apache.org/",icon_filename:"couchdb.svg",categories:["data-collection.database-servers"]},keywords:["couchdb","databases"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# CouchDB\n\nPlugin: go.d.plugin\nModule: couchdb\n\n## Overview\n\nThis collector monitors CouchDB servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/couchdb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/couchdb.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:5984 | yes |\n| node | CouchDB node name. Same as -name vm.args argument. | _local | no |\n| databases | List of database names for which db-specific stats should be displayed, space separated. | | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| timeout | HTTP request timeout. | 2 | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client tls certificate. | | no |\n| tls_key | Client tls key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:5984\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication, node name and multiple databases defined. Make sure to match the node name with the `NODENAME` value in your CouchDB\'s `etc/vm.args` file. Typically, this is of the form `couchdb@fully.qualified.domain.name` in a cluster, or `couchdb@127.0.0.1` for a single-node server.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:5984\n node: couchdb@127.0.0.1\n databases: my-db other-db\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:5984\n\n - name: remote\n url: http://203.0.113.0:5984\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `couchdb` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m couchdb\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CouchDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| couchdb.activity | db_reads, db_writes, view_reads | requests/s |\n| couchdb.request_methods | copy, delete, get, head, options, post, put | requests/s |\n| couchdb.response_codes | 200, 201, 202, 204, 206, 301, 302, 304, 400, 401, 403, 404, 406, 409, 412, 413, 414, 415, 416, 417, 500, 501, 503 | responses/s |\n| couchdb.response_code_classes | 2xx, 3xx, 4xx, 5xx | responses/s |\n| couchdb.active_tasks | indexer, db_compaction, replication, view_compaction | tasks |\n| couchdb.replicator_jobs | running, pending, crashed, internal_replication_jobs | jobs |\n| couchdb.open_files | files | files |\n| couchdb.erlang_vm_memory | atom, binaries, code, ets, procs, other | B |\n| couchdb.proccounts | os_procs, erl_procs | processes |\n| couchdb.peakmsgqueue | peak_size | messages |\n| couchdb.reductions | reductions | reductions |\n| couchdb.db_sizes_file | a dimension per database | KiB |\n| couchdb.db_sizes_external | a dimension per database | KiB |\n| couchdb.db_sizes_active | a dimension per database | KiB |\n| couchdb.db_doc_count | a dimension per database | docs |\n| couchdb.db_doc_del_count | a dimension per database | docs |\n\n",integration_type:"collector",id:"go.d.plugin-couchdb-CouchDB",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/couchdb/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-dns_query",plugin_name:"go.d.plugin",module_name:"dns_query",monitored_instance:{name:"DNS query",link:"",icon_filename:"network-wired.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["dns"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# DNS query\n\nPlugin: go.d.plugin\nModule: dns_query\n\n## Overview\n\nThis module monitors DNS query round-trip time (RTT).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dns_query.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dns_query.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="All options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| domains | Domain or subdomains to query. The collector will choose a random domain from the list on every iteration. | | yes |\n| servers | Servers to query. | | yes |\n| port | DNS server port. | 53 | no |\n| network | Network protocol name. Available options: udp, tcp, tcp-tls. | udp | no |\n| record_types | Query record type. Available options: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, TXT, SRV. | A | no |\n| timeout | Query read timeout. | 2 | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: job1\n record_types:\n - A\n - AAAA\n domains:\n - google.com\n - github.com\n - reddit.com\n servers:\n - 8.8.8.8\n - 8.8.4.4\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dns_query` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dns_query\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ dns_query_query_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/dns_query.conf) | dns_query.query_status | DNS request type ${label:record_type} to server ${label:server} is unsuccessful |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per server\n\nThese metrics refer to the DNS server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| server | DNS server address. |\n| network | Network protocol name (tcp, udp, tcp-tls). |\n| record_type | DNS record type (e.g. A, AAAA, CNAME). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dns_query.query_status | success, network_error, dns_error | status |\n| dns_query.query_time | query_time | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-dns_query-DNS_query",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/dnsquery/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-dnsdist",plugin_name:"go.d.plugin",module_name:"dnsdist",monitored_instance:{name:"DNSdist",link:"https://dnsdist.org/",icon_filename:"network-wired.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["dnsdist","dns"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# DNSdist\n\nPlugin: go.d.plugin\nModule: dnsdist\n\n## Overview\n\nThis collector monitors DNSDist servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable DNSdist built-in Webserver\n\nFor collecting metrics via HTTP, you need to [enable the built-in webserver](https://dnsdist.org/guides/webserver.html).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dnsdist.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dnsdist.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8083 | yes |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| timeout | HTTP request timeout. | 1 | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client tls certificate. | | no |\n| tls_key | Client tls key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8083\n headers:\n X-API-Key: your-api-key # static pre-shared authentication key for access to the REST API (api-key).\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8083\n headers:\n X-API-Key: \'your-api-key\' # static pre-shared authentication key for access to the REST API (api-key).\n\n - name: remote\n url: http://203.0.113.0:8083\n headers:\n X-API-Key: \'your-api-key\'\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dnsdist` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dnsdist\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per DNSdist instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsdist.queries | all, recursive, empty | queries/s |\n| dnsdist.queries_dropped | rule_drop, dynamic_blocked, no_policy, non_queries | queries/s |\n| dnsdist.packets_dropped | acl | packets/s |\n| dnsdist.answers | self_answered, nxdomain, refused, trunc_failures | answers/s |\n| dnsdist.backend_responses | responses | responses/s |\n| dnsdist.backend_commerrors | send_errors | errors/s |\n| dnsdist.backend_errors | timeouts, servfail, non_compliant | responses/s |\n| dnsdist.cache | hits, misses | answers/s |\n| dnsdist.servercpu | system_state, user_state | ms/s |\n| dnsdist.servermem | memory_usage | MiB |\n| dnsdist.query_latency | 1ms, 10ms, 50ms, 100ms, 1sec, slow | queries/s |\n| dnsdist.query_latency_avg | 100, 1k, 10k, 1000k | microseconds |\n\n",integration_type:"collector",id:"go.d.plugin-dnsdist-DNSdist",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/dnsdist/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-dnsmasq",plugin_name:"go.d.plugin",module_name:"dnsmasq",monitored_instance:{name:"Dnsmasq",link:"https://thekelleys.org.uk/dnsmasq/doc.html",icon_filename:"dnsmasq.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["dnsmasq","dns"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Dnsmasq\n\nPlugin: go.d.plugin\nModule: dnsmasq\n\n## Overview\n\nThis collector monitors Dnsmasq servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dnsmasq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dnsmasq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Server address in `ip:port` format. | 127.0.0.1:53 | yes |\n| protocol | DNS query transport protocol. Supported protocols: udp, tcp, tcp-tls. | udp | no |\n| timeout | DNS query timeout (dial, write and read) in seconds. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:53\n\n```\n{% /details %}\n##### Using TCP protocol\n\nLocal server with specific DNS query transport protocol.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:53\n protocol: tcp\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:53\n\n - name: remote\n address: 203.0.113.0:53\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dnsmasq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dnsmasq\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dnsmasq instance\n\nThe metrics apply to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsmasq.servers_queries | success, failed | queries/s |\n| dnsmasq.cache_performance | hist, misses | events/s |\n| dnsmasq.cache_operations | insertions, evictions | operations/s |\n| dnsmasq.cache_size | size | entries |\n\n",integration_type:"collector",id:"go.d.plugin-dnsmasq-Dnsmasq",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/dnsmasq/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-dnsmasq_dhcp",plugin_name:"go.d.plugin",module_name:"dnsmasq_dhcp",monitored_instance:{name:"Dnsmasq DHCP",link:"https://www.thekelleys.org.uk/dnsmasq/doc.html",icon_filename:"dnsmasq.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["dnsmasq","dhcp"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Dnsmasq DHCP\n\nPlugin: go.d.plugin\nModule: dnsmasq_dhcp\n\n## Overview\n\nThis collector monitors Dnsmasq DHCP leases databases, depending on your configuration.\n\nBy default, it uses:\n\n- `/var/lib/misc/dnsmasq.leases` to read leases.\n- `/etc/dnsmasq.conf` to detect dhcp-ranges.\n- `/etc/dnsmasq.d` to find additional configurations.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAll configured dhcp-ranges are detected automatically\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dnsmasq_dhcp.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dnsmasq_dhcp.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| leases_path | Path to dnsmasq DHCP leases file. | /var/lib/misc/dnsmasq.leases | no |\n| conf_path | Path to dnsmasq configuration file. | /etc/dnsmasq.conf | no |\n| conf_dir | Path to dnsmasq configuration directory. | /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: dnsmasq_dhcp\n leases_path: /var/lib/misc/dnsmasq.leases\n conf_path: /etc/dnsmasq.conf\n conf_dir: /etc/dnsmasq.d\n\n```\n{% /details %}\n##### Pi-hole\n\nDnsmasq DHCP on Pi-hole.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: dnsmasq_dhcp\n leases_path: /etc/pihole/dhcp.leases\n conf_path: /etc/dnsmasq.conf\n conf_dir: /etc/dnsmasq.d\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dnsmasq_dhcp` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dnsmasq_dhcp\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ dnsmasq_dhcp_dhcp_range_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/dnsmasq_dhcp.conf) | dnsmasq_dhcp.dhcp_range_utilization | DHCP range utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dnsmasq DHCP instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsmasq_dhcp.dhcp_ranges | ipv4, ipv6 | ranges |\n| dnsmasq_dhcp.dhcp_hosts | ipv4, ipv6 | hosts |\n\n### Per dhcp range\n\nThese metrics refer to the DHCP range.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| dhcp_range | DHCP range in `START_IP:END_IP` format |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsmasq_dhcp.dhcp_range_utilization | used | percentage |\n| dnsmasq_dhcp.dhcp_range_allocated_leases | allocated | leases |\n\n",integration_type:"collector",id:"go.d.plugin-dnsmasq_dhcp-Dnsmasq_DHCP",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/dnsmasq_dhcp/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-docker",plugin_name:"go.d.plugin",module_name:"docker",alternative_monitored_instances:[],monitored_instance:{name:"Docker",link:"https://www.docker.com/",categories:["data-collection.containers-and-vms"],icon_filename:"docker.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["container"],most_popular:!0},overview:"# Docker\n\nPlugin: go.d.plugin\nModule: docker\n\n## Overview\n\nThis collector monitors Docker containers state, health status and more.\n\n\nIt connects to the Docker instance via a TCP or UNIX socket and executes the following commands:\n\n- [System info](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemInfo).\n- [List images](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageList).\n- [List containers](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerList).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nRequires netdata user to be in the docker group.\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt discovers instances running on localhost by attempting to connect to a known Docker UNIX socket: `/var/run/docker.sock`.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nEnabling `collect_container_size` may result in high CPU usage depending on the version of Docker Engine.\n\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/docker.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/docker.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Docker daemon's listening address. When using a TCP socket, the format is: tcp://[ip]:[port] | unix:///var/run/docker.sock | yes |\n| timeout | Request timeout in seconds. | 2 | no |\n| collect_container_size | Whether to collect container writable layer size. | no | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n```yaml\njobs:\n - name: local\n address: 'unix:///var/run/docker.sock'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'unix:///var/run/docker.sock'\n\n - name: remote\n address: 'tcp://203.0.113.10:2375'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `docker` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m docker\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ docker_container_unhealthy ](https://github.com/netdata/netdata/blob/master/src/health/health.d/docker.conf) | docker.container_health_status | ${label:container_name} docker container health status is unhealthy |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Docker instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| docker.containers_state | running, paused, stopped | containers |\n| docker.containers_health_status | healthy, unhealthy, not_running_unhealthy, starting, no_healthcheck | containers |\n| docker.images | active, dangling | images |\n| docker.images_size | size | bytes |\n\n### Per container\n\nMetrics related to containers. Each container provides its own set of the following metrics.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container's name |\n| image | The image name the container uses |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| docker.container_state | running, paused, exited, created, restarting, removing, dead | state |\n| docker.container_health_status | healthy, unhealthy, not_running_unhealthy, starting, no_healthcheck | status |\n| docker.container_writeable_layer_size | writeable_layer | size |\n\n",integration_type:"collector",id:"go.d.plugin-docker-Docker",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/docker/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-docker_engine",plugin_name:"go.d.plugin",module_name:"docker_engine",alternative_monitored_instances:[],monitored_instance:{name:"Docker Engine",link:"https://docs.docker.com/engine/",categories:["data-collection.containers-and-vms"],icon_filename:"docker.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["docker","container"],most_popular:!1},overview:"# Docker Engine\n\nPlugin: go.d.plugin\nModule: docker_engine\n\n## Overview\n\nThis collector monitors the activity and health of Docker Engine and Docker Swarm.\n\n\nThe [built-in](https://docs.docker.com/config/daemon/prometheus/) Prometheus exporter is used to get the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt discovers instances running on localhost by attempting to connect to a known Docker TCP socket: `http://127.0.0.1:9323/metrics`.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable built-in Prometheus exporter\n\nTo enable built-in Prometheus exporter, follow the [official documentation](https://docs.docker.com/config/daemon/prometheus/#configure-docker).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/docker_engine.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/docker_engine.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:9323/metrics | yes |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| timeout | HTTP request timeout. | 1 | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nConfiguration with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n\n - name: remote\n url: http://192.0.2.1:9323/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `docker_engine` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m docker_engine\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Docker Engine instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| docker_engine.engine_daemon_container_actions | changes, commit, create, delete, start | actions/s |\n| docker_engine.engine_daemon_container_states_containers | running, paused, stopped | containers |\n| docker_engine.builder_builds_failed_total | build_canceled, build_target_not_reachable_error, command_not_supported_error, dockerfile_empty_error, dockerfile_syntax_error, error_processing_commands_error, missing_onbuild_arguments_error, unknown_instruction_error | fails/s |\n| docker_engine.engine_daemon_health_checks_failed_total | fails | events/s |\n| docker_engine.swarm_manager_leader | is_leader | bool |\n| docker_engine.swarm_manager_object_store | nodes, services, tasks, networks, secrets, configs | objects |\n| docker_engine.swarm_manager_nodes_per_state | ready, down, unknown, disconnected | nodes |\n| docker_engine.swarm_manager_tasks_per_state | running, failed, ready, rejected, starting, shutdown, new, orphaned, preparing, pending, complete, remove, accepted, assigned | tasks |\n\n",integration_type:"collector",id:"go.d.plugin-docker_engine-Docker_Engine",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/docker_engine/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-dockerhub",plugin_name:"go.d.plugin",module_name:"dockerhub",monitored_instance:{name:"Docker Hub repository",link:"https://hub.docker.com/",icon_filename:"docker.svg",categories:["data-collection.containers-and-vms"]},keywords:["dockerhub"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Docker Hub repository\n\nPlugin: go.d.plugin\nModule: dockerhub\n\n## Overview\n\nThis collector keeps track of DockerHub repositories statistics such as the number of stars, pulls, current status, and more.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dockerhub.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dockerhub.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | DockerHub URL. | https://hub.docker.com/v2/repositories | yes |\n| repositories | List of repositories to monitor. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: dockerhub\n repositories:\n - 'user1/name1'\n - 'user2/name2'\n - 'user3/name3'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dockerhub` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dockerhub\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Docker Hub repository instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dockerhub.pulls_sum | sum | pulls |\n| dockerhub.pulls | a dimension per repository | pulls |\n| dockerhub.pulls_rate | a dimension per repository | pulls/s |\n| dockerhub.stars | a dimension per repository | stars |\n| dockerhub.status | a dimension per repository | status |\n| dockerhub.last_updated | a dimension per repository | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-dockerhub-Docker_Hub_repository",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/dockerhub/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-elasticsearch",module_name:"elasticsearch",plugin_name:"go.d.plugin",monitored_instance:{name:"Elasticsearch",link:"https://www.elastic.co/elasticsearch/",icon_filename:"elasticsearch.svg",categories:["data-collection.search-engines"]},keywords:["elastic","elasticsearch","opensearch","search engine"],related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Elasticsearch\n\nPlugin: go.d.plugin\nModule: elasticsearch\n\n## Overview\n\nThis collector monitors the performance and health of the Elasticsearch cluster.\n\n\nIt uses [Cluster APIs](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html) to collect metrics.\n\nUsed endpoints:\n\n| Endpoint | Description | API |\n|------------------------|----------------------|-------------------------------------------------------------------------------------------------------------|\n| `/` | Node info | |\n| `/_nodes/stats` | Nodes metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_nodes/_local/stats` | Local node metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_cluster/health` | Cluster health stats | [Cluster health API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html) |\n| `/_cluster/stats` | Cluster metrics | [Cluster stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html) |\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect to port 9200:\n\n- http://127.0.0.1:9200\n- https://127.0.0.1:9200\n\n\n#### Limits\n\nBy default, this collector monitors only the node it is connected to. To monitor all cluster nodes, set the `cluster_mode` configuration option to `yes`.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/elasticsearch.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/elasticsearch.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:9200 | yes |\n| cluster_mode | Controls whether to collect metrics for all nodes in the cluster or only for the local node. | false | no |\n| collect_node_stats | Controls whether to collect nodes metrics. | true | no |\n| collect_cluster_health | Controls whether to collect cluster health metrics. | true | no |\n| collect_cluster_stats | Controls whether to collect cluster stats metrics. | true | no |\n| collect_indices_stats | Controls whether to collect indices metrics. | false | no |\n| timeout | HTTP request timeout. | 2 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic single node mode\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n```\n##### Cluster mode\n\nCluster mode example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n cluster_mode: yes\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nElasticsearch with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9200\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n - name: remote\n url: http://192.0.2.1:9200\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `elasticsearch` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m elasticsearch\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ elasticsearch_node_indices_search_time_query ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, queries run slowly. |\n| [ elasticsearch_node_indices_search_time_fetch ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, fetches run slowly. |\n| [ elasticsearch_cluster_health_status_red ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is red. |\n| [ elasticsearch_cluster_health_status_yellow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is yellow. |\n| [ elasticsearch_node_index_health_red ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.node_index_health | node index $label:index health status is red. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per node\n\nThese metrics refer to the cluster node.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name). |\n| node_name | Human-readable identifier for the node. Based on the [Node name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#node-name). |\n| host | Network host for the node, based on the [Network host setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#network.host). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_indices_indexing | index | operations/s |\n| elasticsearch.node_indices_indexing_current | index | operations |\n| elasticsearch.node_indices_indexing_time | index | milliseconds |\n| elasticsearch.node_indices_search | queries, fetches | operations/s |\n| elasticsearch.node_indices_search_current | queries, fetches | operations |\n| elasticsearch.node_indices_search_time | queries, fetches | milliseconds |\n| elasticsearch.node_indices_refresh | refresh | operations/s |\n| elasticsearch.node_indices_refresh_time | refresh | milliseconds |\n| elasticsearch.node_indices_flush | flush | operations/s |\n| elasticsearch.node_indices_flush_time | flush | milliseconds |\n| elasticsearch.node_indices_fielddata_memory_usage | used | bytes |\n| elasticsearch.node_indices_fielddata_evictions | evictions | operations/s |\n| elasticsearch.node_indices_segments_count | segments | segments |\n| elasticsearch.node_indices_segments_memory_usage_total | used | bytes |\n| elasticsearch.node_indices_segments_memory_usage | terms, stored_fields, term_vectors, norms, points, doc_values, index_writer, version_map, fixed_bit_set | bytes |\n| elasticsearch.node_indices_translog_operations | total, uncommitted | operations |\n| elasticsearch.node_indices_translog_size | total, uncommitted | bytes |\n| elasticsearch.node_file_descriptors | open | fd |\n| elasticsearch.node_jvm_heap | inuse | percentage |\n| elasticsearch.node_jvm_heap_bytes | committed, used | bytes |\n| elasticsearch.node_jvm_buffer_pools_count | direct, mapped | pools |\n| elasticsearch.node_jvm_buffer_pool_direct_memory | total, used | bytes |\n| elasticsearch.node_jvm_buffer_pool_mapped_memory | total, used | bytes |\n| elasticsearch.node_jvm_gc_count | young, old | gc/s |\n| elasticsearch.node_jvm_gc_time | young, old | milliseconds |\n| elasticsearch.node_thread_pool_queued | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_thread_pool_rejected | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_cluster_communication_packets | received, sent | pps |\n| elasticsearch.node_cluster_communication_traffic | received, sent | bytes/s |\n| elasticsearch.node_http_connections | open | connections |\n| elasticsearch.node_breakers_trips | requests, fielddata, in_flight_requests, model_inference, accounting, parent | trips/s |\n\n### Per cluster\n\nThese metrics refer to the cluster.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.cluster_health_status | green, yellow, red | status |\n| elasticsearch.cluster_number_of_nodes | nodes, data_nodes | nodes |\n| elasticsearch.cluster_shards_count | active_primary, active, relocating, initializing, unassigned, delayed_unaasigned | shards |\n| elasticsearch.cluster_pending_tasks | pending | tasks |\n| elasticsearch.cluster_number_of_in_flight_fetch | in_flight_fetch | fetches |\n| elasticsearch.cluster_indices_count | indices | indices |\n| elasticsearch.cluster_indices_shards_count | total, primaries, replication | shards |\n| elasticsearch.cluster_indices_docs_count | docs | docs |\n| elasticsearch.cluster_indices_store_size | size | bytes |\n| elasticsearch.cluster_indices_query_cache | hit, miss | events/s |\n| elasticsearch.cluster_nodes_by_role_count | coordinating_only, data, data_cold, data_content, data_frozen, data_hot, data_warm, ingest, master, ml, remote_cluster_client, voting_only | nodes |\n\n### Per index\n\nThese metrics refer to the index.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name). |\n| index | Name of the index. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_index_health | green, yellow, red | status |\n| elasticsearch.node_index_shards_count | shards | shards |\n| elasticsearch.node_index_docs_count | docs | docs |\n| elasticsearch.node_index_store_size | store_size | bytes |\n\n",integration_type:"collector",id:"go.d.plugin-elasticsearch-Elasticsearch",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/elasticsearch/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-opensearch",module_name:"elasticsearch",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenSearch",link:"https://opensearch.org/",icon_filename:"opensearch.svg",categories:["data-collection.search-engines"]},keywords:["elastic","elasticsearch","opensearch","search engine"],related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# OpenSearch\n\nPlugin: go.d.plugin\nModule: elasticsearch\n\n## Overview\n\nThis collector monitors the performance and health of the Elasticsearch cluster.\n\n\nIt uses [Cluster APIs](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html) to collect metrics.\n\nUsed endpoints:\n\n| Endpoint | Description | API |\n|------------------------|----------------------|-------------------------------------------------------------------------------------------------------------|\n| `/` | Node info | |\n| `/_nodes/stats` | Nodes metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_nodes/_local/stats` | Local node metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_cluster/health` | Cluster health stats | [Cluster health API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html) |\n| `/_cluster/stats` | Cluster metrics | [Cluster stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html) |\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect to port 9200:\n\n- http://127.0.0.1:9200\n- https://127.0.0.1:9200\n\n\n#### Limits\n\nBy default, this collector monitors only the node it is connected to. To monitor all cluster nodes, set the `cluster_mode` configuration option to `yes`.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/elasticsearch.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/elasticsearch.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:9200 | yes |\n| cluster_mode | Controls whether to collect metrics for all nodes in the cluster or only for the local node. | false | no |\n| collect_node_stats | Controls whether to collect nodes metrics. | true | no |\n| collect_cluster_health | Controls whether to collect cluster health metrics. | true | no |\n| collect_cluster_stats | Controls whether to collect cluster stats metrics. | true | no |\n| collect_indices_stats | Controls whether to collect indices metrics. | false | no |\n| timeout | HTTP request timeout. | 2 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic single node mode\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n```\n##### Cluster mode\n\nCluster mode example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n cluster_mode: yes\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nElasticsearch with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9200\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n - name: remote\n url: http://192.0.2.1:9200\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `elasticsearch` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m elasticsearch\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ elasticsearch_node_indices_search_time_query ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, queries run slowly. |\n| [ elasticsearch_node_indices_search_time_fetch ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, fetches run slowly. |\n| [ elasticsearch_cluster_health_status_red ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is red. |\n| [ elasticsearch_cluster_health_status_yellow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is yellow. |\n| [ elasticsearch_node_index_health_red ](https://github.com/netdata/netdata/blob/master/src/health/health.d/elasticsearch.conf) | elasticsearch.node_index_health | node index $label:index health status is red. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per node\n\nThese metrics refer to the cluster node.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name). |\n| node_name | Human-readable identifier for the node. Based on the [Node name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#node-name). |\n| host | Network host for the node, based on the [Network host setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#network.host). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_indices_indexing | index | operations/s |\n| elasticsearch.node_indices_indexing_current | index | operations |\n| elasticsearch.node_indices_indexing_time | index | milliseconds |\n| elasticsearch.node_indices_search | queries, fetches | operations/s |\n| elasticsearch.node_indices_search_current | queries, fetches | operations |\n| elasticsearch.node_indices_search_time | queries, fetches | milliseconds |\n| elasticsearch.node_indices_refresh | refresh | operations/s |\n| elasticsearch.node_indices_refresh_time | refresh | milliseconds |\n| elasticsearch.node_indices_flush | flush | operations/s |\n| elasticsearch.node_indices_flush_time | flush | milliseconds |\n| elasticsearch.node_indices_fielddata_memory_usage | used | bytes |\n| elasticsearch.node_indices_fielddata_evictions | evictions | operations/s |\n| elasticsearch.node_indices_segments_count | segments | segments |\n| elasticsearch.node_indices_segments_memory_usage_total | used | bytes |\n| elasticsearch.node_indices_segments_memory_usage | terms, stored_fields, term_vectors, norms, points, doc_values, index_writer, version_map, fixed_bit_set | bytes |\n| elasticsearch.node_indices_translog_operations | total, uncommitted | operations |\n| elasticsearch.node_indices_translog_size | total, uncommitted | bytes |\n| elasticsearch.node_file_descriptors | open | fd |\n| elasticsearch.node_jvm_heap | inuse | percentage |\n| elasticsearch.node_jvm_heap_bytes | committed, used | bytes |\n| elasticsearch.node_jvm_buffer_pools_count | direct, mapped | pools |\n| elasticsearch.node_jvm_buffer_pool_direct_memory | total, used | bytes |\n| elasticsearch.node_jvm_buffer_pool_mapped_memory | total, used | bytes |\n| elasticsearch.node_jvm_gc_count | young, old | gc/s |\n| elasticsearch.node_jvm_gc_time | young, old | milliseconds |\n| elasticsearch.node_thread_pool_queued | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_thread_pool_rejected | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_cluster_communication_packets | received, sent | pps |\n| elasticsearch.node_cluster_communication_traffic | received, sent | bytes/s |\n| elasticsearch.node_http_connections | open | connections |\n| elasticsearch.node_breakers_trips | requests, fielddata, in_flight_requests, model_inference, accounting, parent | trips/s |\n\n### Per cluster\n\nThese metrics refer to the cluster.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.cluster_health_status | green, yellow, red | status |\n| elasticsearch.cluster_number_of_nodes | nodes, data_nodes | nodes |\n| elasticsearch.cluster_shards_count | active_primary, active, relocating, initializing, unassigned, delayed_unaasigned | shards |\n| elasticsearch.cluster_pending_tasks | pending | tasks |\n| elasticsearch.cluster_number_of_in_flight_fetch | in_flight_fetch | fetches |\n| elasticsearch.cluster_indices_count | indices | indices |\n| elasticsearch.cluster_indices_shards_count | total, primaries, replication | shards |\n| elasticsearch.cluster_indices_docs_count | docs | docs |\n| elasticsearch.cluster_indices_store_size | size | bytes |\n| elasticsearch.cluster_indices_query_cache | hit, miss | events/s |\n| elasticsearch.cluster_nodes_by_role_count | coordinating_only, data, data_cold, data_content, data_frozen, data_hot, data_warm, ingest, master, ml, remote_cluster_client, voting_only | nodes |\n\n### Per index\n\nThese metrics refer to the index.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name). |\n| index | Name of the index. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_index_health | green, yellow, red | status |\n| elasticsearch.node_index_shards_count | shards | shards |\n| elasticsearch.node_index_docs_count | docs | docs |\n| elasticsearch.node_index_store_size | store_size | bytes |\n\n",integration_type:"collector",id:"go.d.plugin-elasticsearch-OpenSearch",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/elasticsearch/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-envoy",plugin_name:"go.d.plugin",module_name:"envoy",monitored_instance:{name:"Envoy",link:"https://www.envoyproxy.io/",icon_filename:"envoy.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["envoy","proxy"],related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Envoy\n\nPlugin: go.d.plugin\nModule: envoy\n\n## Overview\n\nThis collector monitors Envoy proxies. It collects server, cluster, and listener metrics.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Envoy instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/envoy.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/envoy.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:9091/stats/prometheus | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9901/stats/prometheus\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9901/stats/prometheus\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9901/stats/prometheus\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9901/stats/prometheus\n\n - name: remote\n url: http://192.0.2.1:9901/stats/prometheus\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `envoy` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m envoy\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Envoy instance\n\nEnvoy exposes metrics in Prometheus format. All metric labels are added to charts.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| envoy.server_state | live, draining, pre_initializing, initializing | state |\n| envoy.server_connections_count | connections | connections |\n| envoy.server_parent_connections_count | connections | connections |\n| envoy.server_memory_allocated_size | allocated | bytes |\n| envoy.server_memory_heap_size | heap | bytes |\n| envoy.server_memory_physical_size | physical | bytes |\n| envoy.server_uptime | uptime | seconds |\n| envoy.cluster_manager_cluster_count | active, not_active | clusters |\n| envoy.cluster_manager_cluster_changes_rate | added, modified, removed | clusters/s |\n| envoy.cluster_manager_cluster_updates_rate | cluster | updates/s |\n| envoy.cluster_manager_cluster_updated_via_merge_rate | via_merge | updates/s |\n| envoy.cluster_manager_update_merge_cancelled_rate | merge_cancelled | updates/s |\n| envoy.cluster_manager_update_out_of_merge_window_rate | out_of_merge_window | updates/s |\n| envoy.cluster_membership_endpoints_count | healthy, degraded, excluded | endpoints |\n| envoy.cluster_membership_changes_rate | membership | changes/s |\n| envoy.cluster_membership_updates_rate | success, failure, empty, no_rebuild | updates/s |\n| envoy.cluster_upstream_cx_active_count | active | connections |\n| envoy.cluster_upstream_cx_rate | created | connections/s |\n| envoy.cluster_upstream_cx_http_rate | http1, http2, http3 | connections/s |\n| envoy.cluster_upstream_cx_destroy_rate | local, remote | connections/s |\n| envoy.cluster_upstream_cx_connect_fail_rate | failed | connections/s |\n| envoy.cluster_upstream_cx_connect_timeout_rate | timeout | connections/s |\n| envoy.cluster_upstream_cx_bytes_rate | received, sent | bytes/s |\n| envoy.cluster_upstream_cx_bytes_buffered_size | received, send | bytes |\n| envoy.cluster_upstream_rq_active_count | active | requests |\n| envoy.cluster_upstream_rq_rate | requests | requests/s |\n| envoy.cluster_upstream_rq_failed_rate | cancelled, maintenance_mode, timeout, max_duration_reached, per_try_timeout, reset_local, reset_remote | requests/s |\n| envoy.cluster_upstream_rq_pending_active_count | active_pending | requests |\n| envoy.cluster_upstream_rq_pending_rate | pending | requests/s |\n| envoy.cluster_upstream_rq_pending_failed_rate | overflow, failure_eject | requests/s |\n| envoy.cluster_upstream_rq_retry_rate | request | retries/s |\n| envoy.cluster_upstream_rq_retry_success_rate | success | retries/s |\n| envoy.cluster_upstream_rq_retry_backoff_rate | exponential, ratelimited | retries/s |\n| envoy.listener_manager_listeners_count | active, warming, draining | listeners |\n| envoy.listener_manager_listener_changes_rate | added, modified, removed, stopped | listeners/s |\n| envoy.listener_manager_listener_object_events_rate | create_success, create_failure, in_place_updated | objects/s |\n| envoy.listener_admin_downstream_cx_active_count | active | connections |\n| envoy.listener_admin_downstream_cx_rate | created | connections/s |\n| envoy.listener_admin_downstream_cx_destroy_rate | destroyed | connections/s |\n| envoy.listener_admin_downstream_cx_transport_socket_connect_timeout_rate | timeout | connections/s |\n| envoy.listener_admin_downstream_cx_rejected_rate | overflow, overload, global_overflow | connections/s |\n| envoy.listener_admin_downstream_listener_filter_remote_close_rate | closed | connections/s |\n| envoy.listener_admin_downstream_listener_filter_error_rate | read | errors/s |\n| envoy.listener_admin_downstream_pre_cx_active_count | active | sockets |\n| envoy.listener_admin_downstream_pre_cx_timeout_rate | timeout | sockets/s |\n| envoy.listener_downstream_cx_active_count | active | connections |\n| envoy.listener_downstream_cx_rate | created | connections/s |\n| envoy.listener_downstream_cx_destroy_rate | destroyed | connections/s |\n| envoy.listener_downstream_cx_transport_socket_connect_timeout_rate | timeout | connections/s |\n| envoy.listener_downstream_cx_rejected_rate | overflow, overload, global_overflow | connections/s |\n| envoy.listener_downstream_listener_filter_remote_close_rate | closed | connections/s |\n| envoy.listener_downstream_listener_filter_error_rate | read | errors/s |\n| envoy.listener_downstream_pre_cx_active_count | active | sockets |\n| envoy.listener_downstream_pre_cx_timeout_rate | timeout | sockets/s |\n\n",integration_type:"collector",id:"go.d.plugin-envoy-Envoy",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/envoy/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-filecheck",plugin_name:"go.d.plugin",module_name:"filecheck",monitored_instance:{name:"Files and directories",link:"",icon_filename:"filesystem.svg",categories:["data-collection.linux-systems"]},keywords:["files","directories"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Files and directories\n\nPlugin: go.d.plugin\nModule: filecheck\n\n## Overview\n\nThis collector monitors files and directories.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThis collector requires the DAC_READ_SEARCH capability, but it is set automatically during installation, so no manual configuration is needed.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/filecheck.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/filecheck.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| files | Files matching the selector will be monitored. | | yes |\n| dirs | List of directories to monitor. | | yes |\n| discovery_every | Files and directories discovery interval. | 60 | no |\n\n##### files\n\nFiles matching the selector will be monitored.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match)\n- Syntax:\n\n```yaml\nfiles:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n##### dirs\n\nDirectories matching the selector will be monitored.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match)\n- Syntax:\n\n```yaml\ndirs:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Files\n\nFiles monitoring example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: files_example\n files:\n include:\n - '/path/to/file1'\n - '/path/to/file2'\n - '/path/to/*.log'\n\n```\n{% /details %}\n##### Directories\n\nDirectories monitoring example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: files_example\n dirs:\n collect_dir_size: no\n include:\n - '/path/to/dir1'\n - '/path/to/dir2'\n - '/path/to/dir3*'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `filecheck` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m filecheck\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Files and directories instance\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filecheck.file_existence | a dimension per file | boolean |\n| filecheck.file_mtime_ago | a dimension per file | seconds |\n| filecheck.file_size | a dimension per file | bytes |\n| filecheck.dir_existence | a dimension per directory | boolean |\n| filecheck.dir_mtime_ago | a dimension per directory | seconds |\n| filecheck.dir_num_of_files | a dimension per directory | files |\n| filecheck.dir_size | a dimension per directory | bytes |\n\n",integration_type:"collector",id:"go.d.plugin-filecheck-Files_and_directories",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/filecheck/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-fluentd",plugin_name:"go.d.plugin",module_name:"fluentd",monitored_instance:{name:"Fluentd",link:"https://www.fluentd.org/",icon_filename:"fluentd.svg",categories:["data-collection.logs-servers"]},keywords:["fluentd","logging"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Fluentd\n\nPlugin: go.d.plugin\nModule: fluentd\n\n## Overview\n\nThis collector monitors Fluentd servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable monitor agent\n\nTo enable monitor agent, follow the [official documentation](https://docs.fluentd.org/v1.0/articles/monitoring-rest-api).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/fluentd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/fluentd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:24220 | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:24220\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:24220\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nFluentd with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:24220\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:24220\n\n - name: remote\n url: http://192.0.2.1:24220\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `fluentd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m fluentd\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Fluentd instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| fluentd.retry_count | a dimension per plugin | count |\n| fluentd.buffer_queue_length | a dimension per plugin | queue_length |\n| fluentd.buffer_total_queued_size | a dimension per plugin | queued_size |\n\n",integration_type:"collector",id:"go.d.plugin-fluentd-Fluentd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/fluentd/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-freeradius",plugin_name:"go.d.plugin",module_name:"freeradius",monitored_instance:{name:"FreeRADIUS",link:"https://freeradius.org/",categories:["data-collection.authentication-and-authorization"],icon_filename:"freeradius.svg"},keywords:["freeradius","radius"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# FreeRADIUS\n\nPlugin: go.d.plugin\nModule: freeradius\n\n## Overview\n\nThis collector monitors FreeRADIUS servers.\n\nIt collect metrics by sending [status-server](https://wiki.freeradius.org/config/Status) messages to the server.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt automatically detects FreeRadius instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable status server\n\nTo enable status server, follow the [official documentation](https://wiki.freeradius.org/config/Status).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/freeradius.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/freeradius.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Server address. | 127.0.0.1 | yes |\n| port | Server port. | 18121 | no |\n| secret | FreeRADIUS secret. | adminsecret | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1\n port: 18121\n secert: adminsecret\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1\n port: 18121\n secert: adminsecret\n\n - name: remote\n address: 192.0.2.1\n port: 18121\n secert: adminsecret\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `freeradius` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m freeradius\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per FreeRADIUS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| freeradius.authentication | requests, responses | packets/s |\n| freeradius.authentication_access_responses | accepts, rejects, challenges | packets/s |\n| freeradius.bad_authentication | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n| freeradius.proxy_authentication | requests, responses | packets/s |\n| freeradius.proxy_authentication_access_responses | accepts, rejects, challenges | packets/s |\n| freeradius.proxy_bad_authentication | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n| freeradius.accounting | requests, responses | packets/s |\n| freeradius.bad_accounting | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n| freeradius.proxy_accounting | requests, responses | packets/s |\n| freeradius.proxy_bad_accounting | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n\n",integration_type:"collector",id:"go.d.plugin-freeradius-FreeRADIUS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/freeradius/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-geth",plugin_name:"go.d.plugin",module_name:"geth",monitored_instance:{name:"Go-ethereum",link:"https://github.com/ethereum/go-ethereum",icon_filename:"geth.png",categories:["data-collection.blockchain-servers"]},keywords:["geth","ethereum","blockchain"],related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Go-ethereum\n\nPlugin: go.d.plugin\nModule: geth\n\n## Overview\n\nThis collector monitors Go-ethereum instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Go-ethereum instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/geth.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/geth.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:6060/debug/metrics/prometheus | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:6060/debug/metrics/prometheus\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:6060/debug/metrics/prometheus\n username: username\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:6060/debug/metrics/prometheus\n\n - name: remote\n url: http://192.0.2.1:6060/debug/metrics/prometheus\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `geth` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m geth\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Go-ethereum instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| geth.eth_db_chaindata_ancient_io_rate | reads, writes | bytes/s |\n| geth.eth_db_chaindata_ancient_io | reads, writes | bytes |\n| geth.eth_db_chaindata_disk_io | reads, writes | bytes |\n| geth.goroutines | goroutines | goroutines |\n| geth.eth_db_chaindata_disk_io_rate | reads, writes | bytes/s |\n| geth.chaindata_db_size | level_db, ancient_db | bytes |\n| geth.chainhead | block, receipt, header | block |\n| geth.tx_pool_pending | invalid, pending, local, discard, no_funds, ratelimit, replace | transactions |\n| geth.tx_pool_current | invalid, pending, local, pool | transactions |\n| geth.tx_pool_queued | discard, eviction, no_funds, ratelimit | transactions |\n| geth.p2p_bandwidth | ingress, egress | bytes/s |\n| geth.reorgs | executed | reorgs |\n| geth.reorgs_blocks | added, dropped | blocks |\n| geth.p2p_peers | peers | peers |\n| geth.p2p_peers_calls | dials, serves | calls/s |\n| geth.rpc_calls | failed, successful | calls/s |\n\n",integration_type:"collector",id:"go.d.plugin-geth-Go-ethereum",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/geth/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-haproxy",plugin_name:"go.d.plugin",module_name:"haproxy",monitored_instance:{name:"HAProxy",link:"https://www.haproxy.org/",icon_filename:"haproxy.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["haproxy","web","webserver","http","proxy"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# HAProxy\n\nPlugin: go.d.plugin\nModule: haproxy\n\n## Overview\n\nThis collector monitors HAProxy servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable PROMEX addon.\n\nTo enable PROMEX addon, follow the [official documentation](https://github.com/haproxy/haproxy/tree/master/addons/promex).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/haproxy.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/haproxy.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1 | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8404/metrics\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8404/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nNGINX Plus with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8404/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8404/metrics\n\n - name: remote\n url: http://192.0.2.1:8404/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `haproxy` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m haproxy\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per HAProxy instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| haproxy.backend_current_sessions | a dimension per proxy | sessions |\n| haproxy.backend_sessions | a dimension per proxy | sessions/s |\n| haproxy.backend_response_time_average | a dimension per proxy | milliseconds |\n| haproxy.backend_queue_time_average | a dimension per proxy | milliseconds |\n| haproxy.backend_current_queue | a dimension per proxy | requests |\n\n### Per proxy\n\nThese metrics refer to the Proxy.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| haproxy.backend_http_responses | 1xx, 2xx, 3xx, 4xx, 5xx, other | responses/s |\n| haproxy.backend_network_io | in, out | bytes/s |\n\n",integration_type:"collector",id:"go.d.plugin-haproxy-HAProxy",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/haproxy/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-hfs",plugin_name:"go.d.plugin",module_name:"hfs",monitored_instance:{name:"Hadoop Distributed File System (HDFS)",link:"https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html",icon_filename:"hadoop.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:["hdfs","hadoop"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Hadoop Distributed File System (HDFS)\n\nPlugin: go.d.plugin\nModule: hfs\n\n## Overview\n\nThis collector monitors HDFS nodes.\n\nNetdata accesses HDFS metrics over `Java Management Extensions` (JMX) through the web interface of an HDFS daemon.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/hdfs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/hdfs.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:9870/jmx | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9870/jmx\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9870/jmx\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9870/jmx\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9870/jmx\n\n - name: remote\n url: http://192.0.2.1:9870/jmx\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `hfs` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m hfs\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ hdfs_capacity_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/hdfs.conf) | hdfs.capacity | summary datanodes space capacity utilization |\n| [ hdfs_missing_blocks ](https://github.com/netdata/netdata/blob/master/src/health/health.d/hdfs.conf) | hdfs.blocks | number of missing blocks |\n| [ hdfs_stale_nodes ](https://github.com/netdata/netdata/blob/master/src/health/health.d/hdfs.conf) | hdfs.data_nodes | number of datanodes marked stale due to delayed heartbeat |\n| [ hdfs_dead_nodes ](https://github.com/netdata/netdata/blob/master/src/health/health.d/hdfs.conf) | hdfs.data_nodes | number of datanodes which are currently dead |\n| [ hdfs_num_failed_volumes ](https://github.com/netdata/netdata/blob/master/src/health/health.d/hdfs.conf) | hdfs.num_failed_volumes | number of failed volumes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Hadoop Distributed File System (HDFS) instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | DataNode | NameNode |\n|:------|:----------|:----|:---:|:---:|\n| hdfs.heap_memory | committed, used | MiB | \u2022 | \u2022 |\n| hdfs.gc_count_total | gc | events/s | \u2022 | \u2022 |\n| hdfs.gc_time_total | ms | ms | \u2022 | \u2022 |\n| hdfs.gc_threshold | info, warn | events/s | \u2022 | \u2022 |\n| hdfs.threads | new, runnable, blocked, waiting, timed_waiting, terminated | num | \u2022 | \u2022 |\n| hdfs.logs_total | info, error, warn, fatal | logs/s | \u2022 | \u2022 |\n| hdfs.rpc_bandwidth | received, sent | kilobits/s | \u2022 | \u2022 |\n| hdfs.rpc_calls | calls | calls/s | \u2022 | \u2022 |\n| hdfs.open_connections | open | connections | \u2022 | \u2022 |\n| hdfs.call_queue_length | length | num | \u2022 | \u2022 |\n| hdfs.avg_queue_time | time | ms | \u2022 | \u2022 |\n| hdfs.avg_processing_time | time | ms | \u2022 | \u2022 |\n| hdfs.capacity | remaining, used | KiB | | \u2022 |\n| hdfs.used_capacity | dfs, non_dfs | KiB | | \u2022 |\n| hdfs.load | load | load | | \u2022 |\n| hdfs.volume_failures_total | failures | events/s | | \u2022 |\n| hdfs.files_total | files | num | | \u2022 |\n| hdfs.blocks_total | blocks | num | | \u2022 |\n| hdfs.blocks | corrupt, missing, under_replicated | num | | \u2022 |\n| hdfs.data_nodes | live, dead, stale | num | | \u2022 |\n| hdfs.datanode_capacity | remaining, used | KiB | \u2022 | |\n| hdfs.datanode_used_capacity | dfs, non_dfs | KiB | \u2022 | |\n| hdfs.datanode_failed_volumes | failed volumes | num | \u2022 | |\n| hdfs.datanode_bandwidth | reads, writes | KiB/s | \u2022 | |\n\n",integration_type:"collector",id:"go.d.plugin-hfs-Hadoop_Distributed_File_System_(HDFS)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/hdfs/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-httpcheck",plugin_name:"go.d.plugin",module_name:"httpcheck",monitored_instance:{name:"HTTP Endpoints",link:"",icon_filename:"globe.svg",categories:["data-collection.synthetic-checks"]},keywords:["webserver"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# HTTP Endpoints\n\nPlugin: go.d.plugin\nModule: httpcheck\n\n## Overview\n\nThis collector monitors HTTP servers availability and response time.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/httpcheck.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/httpcheck.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| status_accepted | HTTP accepted response statuses. Anything else will result in \'bad status\' in the status chart. | [200] | no |\n| response_match | If the status code is accepted, the content of the response will be matched against this regular expression. | | no |\n| headers_match | This option defines a set of rules that check for specific key-value pairs in the HTTP headers of the response. | [] | no |\n| headers_match.exclude | This option determines whether the rule should check for the presence of the specified key-value pair or the absence of it. | no | no |\n| headers_match.key | The exact name of the HTTP header to check for. | | yes |\n| headers_match.value | The [pattern](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/matcher#supported-format) to match against the value of the specified header. | | no |\n| cookie_file | Path to cookie file. See [cookie file format](https://everything.curl.dev/http/cookies/fileformat). | | no |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n\n```\n{% /details %}\n##### With HTTP request headers\n\nConfiguration with HTTP request headers that will be sent by the client.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n headers:\n Host: localhost:8080\n User-Agent: netdata/go.d.plugin\n Accept: */*\n\n```\n{% /details %}\n##### With `status_accepted`\n\nA basic example configuration with non-default status_accepted.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n status_accepted:\n - 200\n - 204\n\n```\n{% /details %}\n##### With `header_match`\n\nExample configurations with `header_match`. See the value [pattern](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/matcher#supported-format) syntax.\n\n{% details summary="Config" %}\n```yaml\njobs:\n # The "X-Robots-Tag" header must be present in the HTTP response header,\n # but the value of the header does not matter.\n # This config checks for the presence of the header regardless of its value.\n - name: local\n url: http://127.0.0.1:8080\n header_match:\n - key: X-Robots-Tag\n\n # The "X-Robots-Tag" header must be present in the HTTP response header\n # only if its value is equal to "noindex, nofollow".\n # This config checks both the presence of the header and its value.\n - name: local\n url: http://127.0.0.1:8080\n header_match:\n - key: X-Robots-Tag\n value: \'= noindex,nofollow\'\n\n # The "X-Robots-Tag" header must not be present in the HTTP response header\n # but the value of the header does not matter.\n # This config checks for the presence of the header regardless of its value.\n - name: local\n url: http://127.0.0.1:8080\n header_match:\n - key: X-Robots-Tag\n exclude: yes\n\n # The "X-Robots-Tag" header must not be present in the HTTP response header\n # only if its value is equal to "noindex, nofollow".\n # This config checks both the presence of the header and its value.\n - name: local\n url: http://127.0.0.1:8080\n header_match:\n - key: X-Robots-Tag\n exclude: yes\n value: \'= noindex,nofollow\'\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8080\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n\n - name: remote\n url: http://192.0.2.1:8080\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `httpcheck` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m httpcheck\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per target\n\nThe metrics refer to the monitored target.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| url | url value that is set in the configuration file. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| httpcheck.response_time | time | ms |\n| httpcheck.response_length | length | characters |\n| httpcheck.status | success, timeout, redirect, no_connection, bad_content, bad_header, bad_status | boolean |\n| httpcheck.in_state | time | boolean |\n\n",integration_type:"collector",id:"go.d.plugin-httpcheck-HTTP_Endpoints",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/httpcheck/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-isc_dhcpd",plugin_name:"go.d.plugin",module_name:"isc_dhcpd",monitored_instance:{name:"ISC DHCP",link:"https://www.isc.org/dhcp/",categories:["data-collection.dns-and-dhcp-servers"],icon_filename:"isc.png"},keywords:["dhcpd","dhcp"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# ISC DHCP\n\nPlugin: go.d.plugin\nModule: isc_dhcpd\n\n## Overview\n\nThis collector monitors ISC DHCP lease usage by reading the DHCP client lease database (dhcpd.leases).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/isc_dhcpd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/isc_dhcpd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| leases_path | Path to DHCP client lease database. | /var/lib/dhcp/dhcpd.leases | no |\n| pools | List of IP pools to monitor. | | yes |\n\n##### pools\n\nList of IP pools to monitor.\n\n- IP range syntax: see [supported formats](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/iprange#supported-formats).\n- Syntax:\n\n```yaml\npools:\n - name: "POOL_NAME1"\n networks: "SPACE SEPARATED LIST OF IP RANGES"\n - name: "POOL_NAME2"\n networks: "SPACE SEPARATED LIST OF IP RANGES"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n pools:\n - name: lan\n networks: "192.168.0.0/24 192.168.1.0/24 192.168.2.0/24"\n - name: wifi\n networks: "10.0.0.0/24"\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `isc_dhcpd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m isc_dhcpd\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ISC DHCP instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| isc_dhcpd.active_leases_total | active | leases |\n| isc_dhcpd.pool_active_leases | a dimension per DHCP pool | leases |\n| isc_dhcpd.pool_utilization | a dimension per DHCP pool | percentage |\n\n",integration_type:"collector",id:"go.d.plugin-isc_dhcpd-ISC_DHCP",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/isc_dhcpd/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-k8s_kubelet",plugin_name:"go.d.plugin",module_name:"k8s_kubelet",monitored_instance:{name:"Kubelet",link:"https://kubernetes.io/docs/concepts/overview/components/#kubelet",icon_filename:"kubernetes.svg",categories:["data-collection.kubernetes"]},keywords:["kubelet","kubernetes","k8s"],related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Kubelet\n\nPlugin: go.d.plugin\nModule: k8s_kubelet\n\n## Overview\n\nThis collector monitors Kubelet instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/k8s_kubelet.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/k8s_kubelet.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:10255/metrics | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:10255/metrics\n\n```\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:10250/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `k8s_kubelet` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m k8s_kubelet\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ kubelet_node_config_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_node_config_error | the node is experiencing a configuration-related error (0: false, 1: true) |\n| [ kubelet_token_requests ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_token_requests | number of failed Token() requests to the alternate token source |\n| [ kubelet_token_requests ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_token_requests | number of failed Token() requests to the alternate token source |\n| [ kubelet_operations_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_operations_errors | number of Docker or runtime operation errors |\n| [ kubelet_operations_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_operations_errors | number of Docker or runtime operation errors |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Kubelet instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_kubelet.apiserver_audit_requests_rejected | rejected | requests/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_failures | failures | events/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_latencies | 5_\xb5s, 10_\xb5s, 20_\xb5s, 40_\xb5s, 80_\xb5s, 160_\xb5s, 320_\xb5s, 640_\xb5s, 1280_\xb5s, 2560_\xb5s, 5120_\xb5s, 10240_\xb5s, 20480_\xb5s, 40960_\xb5s, +Inf | observes/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent | 5_\xb5s, 10_\xb5s, 20_\xb5s, 40_\xb5s, 80_\xb5s, 160_\xb5s, 320_\xb5s, 640_\xb5s, 1280_\xb5s, 2560_\xb5s, 5120_\xb5s, 10240_\xb5s, 20480_\xb5s, 40960_\xb5s, +Inf | percentage |\n| k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses | cache misses | events/s |\n| k8s_kubelet.kubelet_containers_running | total | running_containers |\n| k8s_kubelet.kubelet_pods_running | total | running_pods |\n| k8s_kubelet.kubelet_pods_log_filesystem_used_bytes | a dimension per namespace and pod | B |\n| k8s_kubelet.kubelet_runtime_operations | a dimension per operation type | operations/s |\n| k8s_kubelet.kubelet_runtime_operations_errors | a dimension per operation type | errors/s |\n| k8s_kubelet.kubelet_docker_operations | a dimension per operation type | operations/s |\n| k8s_kubelet.kubelet_docker_operations_errors | a dimension per operation type | errors/s |\n| k8s_kubelet.kubelet_node_config_error | experiencing_error | bool |\n| k8s_kubelet.kubelet_pleg_relist_interval_microseconds | 0.5, 0.9, 0.99 | microseconds |\n| k8s_kubelet.kubelet_pleg_relist_latency_microseconds | 0.5, 0.9, 0.99 | microseconds |\n| k8s_kubelet.kubelet_token_requests | total, failed | token_requests/s |\n| k8s_kubelet.rest_client_requests_by_code | a dimension per HTTP status code | requests/s |\n| k8s_kubelet.rest_client_requests_by_method | a dimension per HTTP method | requests/s |\n\n### Per volume manager\n\nThese metrics refer to the Volume Manager.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_kubelet.volume_manager_total_volumes | actual, desired | state |\n\n",integration_type:"collector",id:"go.d.plugin-k8s_kubelet-Kubelet",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-k8s_kubeproxy",plugin_name:"go.d.plugin",module_name:"k8s_kubeproxy",monitored_instance:{name:"Kubeproxy",link:"https://kubernetes.io/docs/concepts/overview/components/#kube-proxy",icon_filename:"kubernetes.svg",categories:["data-collection.kubernetes"]},keywords:["kubeproxy","kubernetes","k8s"],related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Kubeproxy\n\nPlugin: go.d.plugin\nModule: k8s_kubeproxy\n\n## Overview\n\nThis collector monitors Kubeproxy instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/k8s_kubeproxy.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/k8s_kubeproxy.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:10249/metrics | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:10249/metrics\n\n```\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:10249/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `k8s_kubeproxy` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m k8s_kubeproxy\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Kubeproxy instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_kubeproxy.kubeproxy_sync_proxy_rules | sync_proxy_rules | events/s |\n| k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency_microsecond | 0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512, 1.024, 2.048, 4.096, 8.192, 16.384, +Inf | observes/s |\n| k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency | 0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512, 1.024, 2.048, 4.096, 8.192, 16.384, +Inf | percentage |\n| k8s_kubeproxy.rest_client_requests_by_code | a dimension per HTTP status code | requests/s |\n| k8s_kubeproxy.rest_client_requests_by_method | a dimension per HTTP method | requests/s |\n| k8s_kubeproxy.http_request_duration | 0.5, 0.9, 0.99 | microseconds |\n\n",integration_type:"collector",id:"go.d.plugin-k8s_kubeproxy-Kubeproxy",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/k8s_kubeproxy/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-k8s_state",plugin_name:"go.d.plugin",module_name:"k8s_state",monitored_instance:{name:"Kubernetes Cluster State",link:"https://kubernetes.io/",icon_filename:"kubernetes.svg",categories:["data-collection.kubernetes"]},keywords:["kubernetes","k8s"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Kubernetes Cluster State\n\nPlugin: go.d.plugin\nModule: k8s_state\n\n## Overview\n\nThis collector monitors Kubernetes Nodes, Pods and Containers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/k8s_state.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/k8s_state.conf\n```\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `k8s_state` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m k8s_state\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per node\n\nThese metrics refer to the Node.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_cluster_id | Cluster ID. This is equal to the kube-system namespace UID. |\n| k8s_cluster_name | Cluster name. Cluster name discovery only works in GKE. |\n| k8s_node_name | Node name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_state.node_allocatable_cpu_requests_utilization | requests | % |\n| k8s_state.node_allocatable_cpu_requests_used | requests | millicpu |\n| k8s_state.node_allocatable_cpu_limits_utilization | limits | % |\n| k8s_state.node_allocatable_cpu_limits_used | limits | millicpu |\n| k8s_state.node_allocatable_mem_requests_utilization | requests | % |\n| k8s_state.node_allocatable_mem_requests_used | requests | bytes |\n| k8s_state.node_allocatable_mem_limits_utilization | limits | % |\n| k8s_state.node_allocatable_mem_limits_used | limits | bytes |\n| k8s_state.node_allocatable_pods_utilization | allocated | % |\n| k8s_state.node_allocatable_pods_usage | available, allocated | pods |\n| k8s_state.node_condition | a dimension per condition | status |\n| k8s_state.node_schedulability | schedulable, unschedulable | state |\n| k8s_state.node_pods_readiness | ready | % |\n| k8s_state.node_pods_readiness_state | ready, unready | pods |\n| k8s_state.node_pods_condition | pod_ready, pod_scheduled, pod_initialized, containers_ready | pods |\n| k8s_state.node_pods_phase | running, failed, succeeded, pending | pods |\n| k8s_state.node_containers | containers, init_containers | containers |\n| k8s_state.node_containers_state | running, waiting, terminated | containers |\n| k8s_state.node_init_containers_state | running, waiting, terminated | containers |\n| k8s_state.node_age | age | seconds |\n\n### Per pod\n\nThese metrics refer to the Pod.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_cluster_id | Cluster ID. This is equal to the kube-system namespace UID. |\n| k8s_cluster_name | Cluster name. Cluster name discovery only works in GKE. |\n| k8s_node_name | Node name. |\n| k8s_namespace | Namespace. |\n| k8s_controller_kind | Controller kind (ReplicaSet, DaemonSet, StatefulSet, Job, etc.). |\n| k8s_controller_name | Controller name. |\n| k8s_pod_name | Pod name. |\n| k8s_qos_class | Pod QOS class (burstable, guaranteed, besteffort). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_state.pod_cpu_requests_used | requests | millicpu |\n| k8s_state.pod_cpu_limits_used | limits | millicpu |\n| k8s_state.pod_mem_requests_used | requests | bytes |\n| k8s_state.pod_mem_limits_used | limits | bytes |\n| k8s_state.pod_condition | pod_ready, pod_scheduled, pod_initialized, containers_ready | state |\n| k8s_state.pod_phase | running, failed, succeeded, pending | state |\n| k8s_state.pod_age | age | seconds |\n| k8s_state.pod_containers | containers, init_containers | containers |\n| k8s_state.pod_containers_state | running, waiting, terminated | containers |\n| k8s_state.pod_init_containers_state | running, waiting, terminated | containers |\n\n### Per container\n\nThese metrics refer to the Pod container.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_cluster_id | Cluster ID. This is equal to the kube-system namespace UID. |\n| k8s_cluster_name | Cluster name. Cluster name discovery only works in GKE. |\n| k8s_node_name | Node name. |\n| k8s_namespace | Namespace. |\n| k8s_controller_kind | Controller kind (ReplicaSet, DaemonSet, StatefulSet, Job, etc.). |\n| k8s_controller_name | Controller name. |\n| k8s_pod_name | Pod name. |\n| k8s_qos_class | Pod QOS class (burstable, guaranteed, besteffort). |\n| k8s_container_name | Container name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_state.pod_container_readiness_state | ready | state |\n| k8s_state.pod_container_restarts | restarts | restarts |\n| k8s_state.pod_container_state | running, waiting, terminated | state |\n| k8s_state.pod_container_waiting_state_reason | a dimension per reason | state |\n| k8s_state.pod_container_terminated_state_reason | a dimension per reason | state |\n\n",integration_type:"collector",id:"go.d.plugin-k8s_state-Kubernetes_Cluster_State",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/k8s_state/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-lighttpd",plugin_name:"go.d.plugin",module_name:"lighttpd",monitored_instance:{name:"Lighttpd",link:"https://www.lighttpd.net/",icon_filename:"lighttpd.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["webserver"],related_resources:{integrations:{list:[{plugin_name:"go.d.plugin",module_name:"weblog"},{plugin_name:"go.d.plugin",module_name:"httpcheck"},{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Lighttpd\n\nPlugin: go.d.plugin\nModule: lighttpd\n\n## Overview\n\nThis collector monitors the activity and performance of Lighttpd servers, and collects metrics such as the number of connections, workers, requests and more.\n\n\nIt sends HTTP requests to the Lighttpd location [server-status](https://redmine.lighttpd.net/projects/lighttpd/wiki/Mod_status), \nwhich is a built-in location that provides metrics about the Lighttpd server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Lighttpd instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://localhost/server-status?auto\n- http://127.0.0.1/server-status?auto\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable Lighttpd status support\n\nTo enable status support, see the [official documentation](https://redmine.lighttpd.net/projects/lighttpd/wiki/Mod_status).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/lighttpd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/lighttpd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1/server-status?auto | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nLighttpd with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/server-status?auto\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n - name: remote\n url: http://192.0.2.1/server-status?auto\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `lighttpd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m lighttpd\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Lighttpd instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| lighttpd.requests | requests | requests/s |\n| lighttpd.net | sent | kilobits/s |\n| lighttpd.workers | idle, busy | servers |\n| lighttpd.scoreboard | waiting, open, close, hard_error, keepalive, read, read_post, write, handle_request, request_start, request_end | connections |\n| lighttpd.uptime | uptime | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-lighttpd-Lighttpd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/lighttpd/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-logind",plugin_name:"go.d.plugin",module_name:"logind",monitored_instance:{name:"systemd-logind users",link:"https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html",icon_filename:"users.svg",categories:["data-collection.systemd"]},keywords:["logind","systemd"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# systemd-logind users\n\nPlugin: go.d.plugin\nModule: logind\n\n## Overview\n\nThis collector monitors number of sessions and users as reported by the `org.freedesktop.login1` DBus API.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/logind.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/logind.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `logind` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m logind\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per systemd-logind users instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| logind.sessions | remote, local | sessions |\n| logind.sessions_type | console, graphical, other | sessions |\n| logind.sessions_state | online, closing, active | sessions |\n| logind.users_state | offline, closing, online, lingering, active | users |\n\n",integration_type:"collector",id:"go.d.plugin-logind-systemd-logind_users",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/logind/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-logstash",plugin_name:"go.d.plugin",module_name:"logstash",monitored_instance:{name:"Logstash",link:"https://www.elastic.co/products/logstash",icon_filename:"elastic-logstash.svg",categories:["data-collection.logs-servers"]},keywords:["logstatsh"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Logstash\n\nPlugin: go.d.plugin\nModule: logstash\n\n## Overview\n\nThis collector monitors Logstash instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/logstatsh.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/logstatsh.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://localhost:9600 | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:9600\n\n```\n{% /details %}\n##### HTTP authentication\n\nHTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:9600\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nHTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://localhost:9600\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:9600\n\n - name: remote\n url: http://192.0.2.1:9600\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `logstash` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m logstash\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Logstash instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| logstash.jvm_threads | threads | count |\n| logstash.jvm_mem_heap_used | in_use | percentage |\n| logstash.jvm_mem_heap | committed, used | KiB |\n| logstash.jvm_mem_pools_eden | committed, used | KiB |\n| logstash.jvm_mem_pools_survivor | committed, used | KiB |\n| logstash.jvm_mem_pools_old | committed, used | KiB |\n| logstash.jvm_gc_collector_count | eden, old | counts/s |\n| logstash.jvm_gc_collector_time | eden, old | ms |\n| logstash.open_file_descriptors | open | fd |\n| logstash.event | in, filtered, out | events/s |\n| logstash.event_duration | event, queue | seconds |\n| logstash.uptime | uptime | seconds |\n\n### Per pipeline\n\nThese metrics refer to the pipeline.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| pipeline | pipeline name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| logstash.pipeline_event | in, filtered, out | events/s |\n| logstash.pipeline_event | event, queue | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-logstash-Logstash",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/logstash/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-mongodb",plugin_name:"go.d.plugin",module_name:"mongodb",monitored_instance:{name:"MongoDB",link:"https://www.mongodb.com/",icon_filename:"mongodb.svg",categories:["data-collection.database-servers"]},keywords:["mongodb","databases"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# MongoDB\n\nPlugin: go.d.plugin\nModule: mongodb\n\n## Overview\n\nThis collector monitors MongoDB servers.\n\nExecuted queries:\n\n- [serverStatus](https://docs.mongodb.com/manual/reference/command/serverStatus/)\n- [dbStats](https://docs.mongodb.com/manual/reference/command/dbStats/)\n- [replSetGetStatus](https://www.mongodb.com/docs/manual/reference/command/replSetGetStatus/)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Create a read-only user\n\nCreate a read-only user for Netdata in the admin database.\n\n- Authenticate as the admin user:\n\n ```bash\n use admin\n db.auth("admin", "<MONGODB_ADMIN_PASSWORD>")\n ```\n\n- Create a user:\n\n ```bash\n db.createUser({\n "user":"netdata",\n "pwd": "<UNIQUE_PASSWORD>",\n "roles" : [\n {role: \'read\', db: \'admin\' },\n {role: \'clusterMonitor\', db: \'admin\'},\n {role: \'read\', db: \'local\' }\n ]\n })\n ```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mongodb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mongodb.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| uri | MongoDB connection string. See [URI syntax](https://www.mongodb.com/docs/manual/reference/connection-string/). | mongodb://localhost:27017 | yes |\n| timeout | Query timeout in seconds. | 1 | no |\n| databases | Databases selector. Determines which database metrics will be collected. | | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n uri: mongodb://netdata:password@localhost:27017\n\n```\n{% /details %}\n##### With databases metrics\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n uri: mongodb://netdata:password@localhost:27017\n databases:\n includes:\n - "* *"\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n uri: mongodb://netdata:password@localhost:27017\n\n - name: remote\n uri: mongodb://netdata:password@203.0.113.0:27017\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mongodb` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mongodb\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n- WireTiger metrics are available only if [WiredTiger](https://docs.mongodb.com/v6.0/core/wiredtiger/) is used as the\n storage engine.\n- Sharding metrics are available on shards only\n for [mongos](https://www.mongodb.com/docs/manual/reference/program/mongos/).\n\n\n### Per MongoDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.operations_rate | reads, writes, commands | operations/s |\n| mongodb.operations_latency_time | reads, writes, commands | milliseconds |\n| mongodb.operations_by_type_rate | insert, query, update, delete, getmore, command | operations/s |\n| mongodb.document_operations_rate | inserted, deleted, returned, updated | operations/s |\n| mongodb.scanned_indexes_rate | scanned | indexes/s |\n| mongodb.scanned_documents_rate | scanned | documents/s |\n| mongodb.active_clients_count | readers, writers | clients |\n| mongodb.queued_operations_count | reads, writes | operations |\n| mongodb.cursors_open_count | open | cursors |\n| mongodb.cursors_open_no_timeout_count | open_no_timeout | cursors |\n| mongodb.cursors_opened_rate | opened | cursors/s |\n| mongodb.cursors_timed_out_rate | timed_out | cursors/s |\n| mongodb.cursors_by_lifespan_count | le_1s, 1s_5s, 5s_15s, 15s_30s, 30s_1m, 1m_10m, ge_10m | cursors |\n| mongodb.transactions_count | active, inactive, open, prepared | transactions |\n| mongodb.transactions_rate | started, aborted, committed, prepared | transactions/s |\n| mongodb.connections_usage | available, used | connections |\n| mongodb.connections_by_state_count | active, threaded, exhaust_is_master, exhaust_hello, awaiting_topology_changes | connections |\n| mongodb.connections_rate | created | connections/s |\n| mongodb.asserts_rate | regular, warning, msg, user, tripwire, rollovers | asserts/s |\n| mongodb.network_traffic_rate | in, out | bytes/s |\n| mongodb.network_requests_rate | requests | requests/s |\n| mongodb.network_slow_dns_resolutions_rate | slow_dns | resolutions/s |\n| mongodb.network_slow_ssl_handshakes_rate | slow_ssl | handshakes/s |\n| mongodb.memory_resident_size | used | bytes |\n| mongodb.memory_virtual_size | used | bytes |\n| mongodb.memory_page_faults_rate | pgfaults | pgfaults/s |\n| mongodb.memory_tcmalloc_stats | allocated, central_cache_freelist, transfer_cache_freelist, thread_cache_freelists, pageheap_freelist, pageheap_unmapped | bytes |\n| mongodb.wiredtiger_concurrent_read_transactions_usage | available, used | transactions |\n| mongodb.wiredtiger_concurrent_write_transactions_usage | available, used | transactions |\n| mongodb.wiredtiger_cache_usage | used | bytes |\n| mongodb.wiredtiger_cache_dirty_space_size | dirty | bytes |\n| mongodb.wiredtiger_cache_io_rate | read, written | pages/s |\n| mongodb.wiredtiger_cache_evictions_rate | unmodified, modified | pages/s |\n| mongodb.sharding_nodes_count | shard_aware, shard_unaware | nodes |\n| mongodb.sharding_sharded_databases_count | partitioned, unpartitioned | databases |\n| mongodb.sharding_sharded_collections_count | partitioned, unpartitioned | collections |\n\n### Per lock type\n\nThese metrics refer to the lock type.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| lock_type | lock type (e.g. global, database, collection, mutex) |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.lock_acquisitions_rate | shared, exclusive, intent_shared, intent_exclusive | acquisitions/s |\n\n### Per commit type\n\nThese metrics refer to the commit type.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| commit_type | commit type (e.g. noShards, singleShard, singleWriteShard) |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.transactions_commits_rate | success, fail | commits/s |\n| mongodb.transactions_commits_duration_time | commits | milliseconds |\n\n### Per database\n\nThese metrics refer to the database.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.database_collection_count | collections | collections |\n| mongodb.database_indexes_count | indexes | indexes |\n| mongodb.database_views_count | views | views |\n| mongodb.database_documents_count | documents | documents |\n| mongodb.database_data_size | data_size | bytes |\n| mongodb.database_storage_size | storage_size | bytes |\n| mongodb.database_index_size | index_size | bytes |\n\n### Per replica set member\n\nThese metrics refer to the replica set member.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| repl_set_member | replica set member name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.repl_set_member_state | primary, startup, secondary, recovering, startup2, unknown, arbiter, down, rollback, removed | state |\n| mongodb.repl_set_member_health_status | up, down | status |\n| mongodb.repl_set_member_replication_lag_time | replication_lag | milliseconds |\n| mongodb.repl_set_member_heartbeat_latency_time | heartbeat_latency | milliseconds |\n| mongodb.repl_set_member_ping_rtt_time | ping_rtt | milliseconds |\n| mongodb.repl_set_member_uptime | uptime | seconds |\n\n### Per shard\n\nThese metrics refer to the shard.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| shard_id | shard id |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.sharding_shard_chunks_count | chunks | chunks |\n\n",integration_type:"collector",id:"go.d.plugin-mongodb-MongoDB",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/mongodb/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-mariadb",plugin_name:"go.d.plugin",module_name:"mysql",monitored_instance:{name:"MariaDB",link:"https://mariadb.org/",icon_filename:"mariadb.svg",categories:["data-collection.database-servers"]},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["db","database","mysql","maria","mariadb","sql"],most_popular:!0},overview:'# MariaDB\n\nPlugin: go.d.plugin\nModule: mysql\n\n## Overview\n\nThis collector monitors the health and performance of MySQL servers and collects general statistics, replication and user metrics.\n\n\nIt connects to the MySQL instance via a TCP or UNIX socket and executes the following commands:\n\nExecuted queries:\n\n- `SELECT VERSION();`\n- `SHOW GLOBAL STATUS;`\n- `SHOW GLOBAL VARIABLES;`\n- `SHOW SLAVE STATUS;` or `SHOW ALL SLAVES STATUS;` (MariaDBv10.2+) or `SHOW REPLICA STATUS;` (MySQL 8.0.22+)\n- `SHOW USER_STATISTICS;` (MariaDBv10.1.1+)\n- `SELECT TIME,USER FROM INFORMATION_SCHEMA.PROCESSLIST;`\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known MySQL TCP and UNIX sockets:\n\n- /var/run/mysqld/mysqld.sock\n- /var/run/mysqld/mysql.sock\n- /var/lib/mysql/mysql.sock\n- /tmp/mysql.sock\n- 127.0.0.1:3306\n- "[::1]:3306"\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n',setup:'## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nA user account should have the\nfollowing [permissions](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html):\n\n- [`USAGE`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_usage)\n- [`REPLICATION CLIENT`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_replication-client)\n- [`PROCESS`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_process)\n\nTo create the `netdata` user with these permissions, execute the following in the MySQL shell:\n\n```mysql\nCREATE USER \'netdata\'@\'localhost\';\nGRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO \'netdata\'@\'localhost\';\nFLUSH PRIVILEGES;\n```\n\nThe `netdata` user will have the ability to connect to the MySQL server on localhost without a password. It will only\nbe able to gather statistics without being able to alter or affect operations in any way.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| dsn | MySQL server DSN (Data Source Name). See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | root@tcp(localhost:3306)/ | yes |\n| my.cnf | Specifies the my.cnf file to read the connection settings from the [client] section. | | no |\n| timeout | Query timeout in seconds. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@unix(/var/lib/mysql/mysql.sock)/\n\n```\n{% /details %}\n##### Connection with password\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netconfig:password@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n my.cnf: \'/etc/my.cnf\'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n - name: remote\n dsn: netconfig:password@tcp(203.0.113.0:3306)/\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mysql\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mysql_10s_slow_queries ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.queries | number of slow queries in the last 10 seconds |\n| [ mysql_10s_table_locks_immediate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | number of table immediate locks in the last 10 seconds |\n| [ mysql_10s_table_locks_waited ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | number of table waited locks in the last 10 seconds |\n| [ mysql_10s_waited_locks_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | ratio of waited table locks over the last 10 seconds |\n| [ mysql_connections ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.connections_active | client connections utilization |\n| [ mysql_replication ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.slave_status | replication status (0: stopped, 1: working) |\n| [ mysql_replication_lag ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.slave_behind | difference between the timestamp of the latest transaction processed by the SQL thread and the timestamp of the same transaction when it was processed on the master |\n| [ mysql_galera_cluster_size_max_2m ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_size | maximum galera cluster size in the last 2 minutes starting one minute ago |\n| [ mysql_galera_cluster_size ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_size | current galera cluster size, compared to the maximum size in the last 2 minutes |\n| [ mysql_galera_cluster_state_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Donor/Desynced or Joined |\n| [ mysql_galera_cluster_state_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Undefined or Joining or Error |\n| [ mysql_galera_cluster_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_status | galera node is part of a nonoperational component. This occurs in cases of multiple membership changes that result in a loss of Quorum or in cases of split-brain situations. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MariaDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.net | in, out | kilobits/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries | queries, questions, slow_queries | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries_type | select, delete, update, insert, replace | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.handlers | commit, delete, prepare, read_first, read_key, read_next, read_prev, read_rnd, read_rnd_next, rollback, savepoint, savepointrollback, update, write | handlers/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_open_cache_overflows | open_cache | overflows/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_locks | immediate, waited | locks/s | \u2022 | \u2022 | \u2022 |\n| mysql.join_issues | full_join, full_range_join, range, range_check, scan | joins/s | \u2022 | \u2022 | \u2022 |\n| mysql.sort_issues | merge_passes, range, scan | issues/s | \u2022 | \u2022 | \u2022 |\n| mysql.tmp | disk_tables, files, tables | events/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections | all, aborted | connections/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections_active | active, limit, max_active | connections | \u2022 | \u2022 | \u2022 |\n| mysql.threads | connected, cached, running | threads | \u2022 | \u2022 | \u2022 |\n| mysql.threads_created | created | threads/s | \u2022 | \u2022 | \u2022 |\n| mysql.thread_cache_misses | misses | misses | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io | read, write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_ops | reads, writes, fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_pending_ops | reads, writes, fsyncs | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_log | waits, write_requests, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_cur_row_lock | current waits | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_rows | inserted, read, updated, deleted | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages | data, dirty, free, misc, total | pages | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages_flushed | flush_pages | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_bytes | data, dirty | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead | all, evicted | pages/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead_rnd | read-ahead | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_ops | disk_reads, wait_free | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log | fsyncs, writes | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_fsync_writes | fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_io | write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_deadlocks | deadlocks | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.files | files | files | \u2022 | \u2022 | \u2022 |\n| mysql.files_rate | files | files/s | \u2022 | \u2022 | \u2022 |\n| mysql.connection_errors | accept, internal, max, peer_addr, select, tcpwrap | errors/s | \u2022 | \u2022 | \u2022 |\n| mysql.opened_tables | tables | tables/s | \u2022 | \u2022 | \u2022 |\n| mysql.open_tables | cache, tables | tables | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_fetch_query_duration | duration | milliseconds | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_queries_count | system, user | queries | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_longest_query_duration | duration | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_ops | hits, lowmem_prunes, inserts, not_cached | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.qcache | queries | queries | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_freemem | free | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_memblocks | free, total | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.galera_writesets | rx, tx | writesets/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_bytes | rx, tx | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_queue | rx, tx | writesets | \u2022 | \u2022 | \u2022 |\n| mysql.galera_conflicts | bf_aborts, cert_fails | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_flow_control | paused | ms | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_status | primary, non_primary, disconnected | status | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_state | undefined, joining, donor, joined, synced, error | state | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_size | nodes | nodes | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_weight | weight | weight | \u2022 | \u2022 | \u2022 |\n| mysql.galera_connected | connected | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_ready | ready | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_open_transactions | open | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_thread_count | threads | threads | \u2022 | \u2022 | \u2022 |\n| mysql.key_blocks | unused, used, not_flushed | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.key_requests | reads, writes | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.key_disk_ops | reads, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_cache | disk, all | transactions/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_stmt_cache | disk, all | statements/s | \u2022 | \u2022 | \u2022 |\n\n### Per connection\n\nThese metrics refer to the replication connection.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.slave_behind | seconds | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.slave_status | sql_running, io_running | boolean | \u2022 | \u2022 | \u2022 |\n\n### Per user\n\nThese metrics refer to the MySQL user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username |\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.userstats_cpu | used | percentage | | \u2022 | \u2022 |\n| mysql.userstats_rows | read, sent, updated, inserted, deleted | operations/s | | \u2022 | \u2022 |\n| mysql.userstats_commands | select, update, other | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_commands | denied | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_created_transactions | commit, rollback | transactions/s | | \u2022 | \u2022 |\n| mysql.userstats_binlog_written | written | B/s | | \u2022 | \u2022 |\n| mysql.userstats_empty_queries | empty | queries/s | | \u2022 | \u2022 |\n| mysql.userstats_connections | created | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_lost_connections | lost | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_connections | denied | connections/s | | \u2022 | \u2022 |\n\n",integration_type:"collector",id:"go.d.plugin-mysql-MariaDB",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/mysql/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-mysql",plugin_name:"go.d.plugin",module_name:"mysql",monitored_instance:{name:"MySQL",link:"https://www.mysql.com/",categories:["data-collection.database-servers"],icon_filename:"mysql.svg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["db","database","mysql","maria","mariadb","sql"],most_popular:!0},overview:'# MySQL\n\nPlugin: go.d.plugin\nModule: mysql\n\n## Overview\n\nThis collector monitors the health and performance of MySQL servers and collects general statistics, replication and user metrics.\n\n\nIt connects to the MySQL instance via a TCP or UNIX socket and executes the following commands:\n\nExecuted queries:\n\n- `SELECT VERSION();`\n- `SHOW GLOBAL STATUS;`\n- `SHOW GLOBAL VARIABLES;`\n- `SHOW SLAVE STATUS;` or `SHOW ALL SLAVES STATUS;` (MariaDBv10.2+) or `SHOW REPLICA STATUS;` (MySQL 8.0.22+)\n- `SHOW USER_STATISTICS;` (MariaDBv10.1.1+)\n- `SELECT TIME,USER FROM INFORMATION_SCHEMA.PROCESSLIST;`\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known MySQL TCP and UNIX sockets:\n\n- /var/run/mysqld/mysqld.sock\n- /var/run/mysqld/mysql.sock\n- /var/lib/mysql/mysql.sock\n- /tmp/mysql.sock\n- 127.0.0.1:3306\n- "[::1]:3306"\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n',setup:'## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nA user account should have the\nfollowing [permissions](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html):\n\n- [`USAGE`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_usage)\n- [`REPLICATION CLIENT`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_replication-client)\n- [`PROCESS`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_process)\n\nTo create the `netdata` user with these permissions, execute the following in the MySQL shell:\n\n```mysql\nCREATE USER \'netdata\'@\'localhost\';\nGRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO \'netdata\'@\'localhost\';\nFLUSH PRIVILEGES;\n```\n\nThe `netdata` user will have the ability to connect to the MySQL server on localhost without a password. It will only\nbe able to gather statistics without being able to alter or affect operations in any way.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| dsn | MySQL server DSN (Data Source Name). See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | root@tcp(localhost:3306)/ | yes |\n| my.cnf | Specifies the my.cnf file to read the connection settings from the [client] section. | | no |\n| timeout | Query timeout in seconds. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@unix(/var/lib/mysql/mysql.sock)/\n\n```\n{% /details %}\n##### Connection with password\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netconfig:password@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n my.cnf: \'/etc/my.cnf\'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n - name: remote\n dsn: netconfig:password@tcp(203.0.113.0:3306)/\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mysql\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mysql_10s_slow_queries ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.queries | number of slow queries in the last 10 seconds |\n| [ mysql_10s_table_locks_immediate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | number of table immediate locks in the last 10 seconds |\n| [ mysql_10s_table_locks_waited ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | number of table waited locks in the last 10 seconds |\n| [ mysql_10s_waited_locks_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | ratio of waited table locks over the last 10 seconds |\n| [ mysql_connections ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.connections_active | client connections utilization |\n| [ mysql_replication ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.slave_status | replication status (0: stopped, 1: working) |\n| [ mysql_replication_lag ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.slave_behind | difference between the timestamp of the latest transaction processed by the SQL thread and the timestamp of the same transaction when it was processed on the master |\n| [ mysql_galera_cluster_size_max_2m ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_size | maximum galera cluster size in the last 2 minutes starting one minute ago |\n| [ mysql_galera_cluster_size ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_size | current galera cluster size, compared to the maximum size in the last 2 minutes |\n| [ mysql_galera_cluster_state_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Donor/Desynced or Joined |\n| [ mysql_galera_cluster_state_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Undefined or Joining or Error |\n| [ mysql_galera_cluster_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_status | galera node is part of a nonoperational component. This occurs in cases of multiple membership changes that result in a loss of Quorum or in cases of split-brain situations. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MariaDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.net | in, out | kilobits/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries | queries, questions, slow_queries | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries_type | select, delete, update, insert, replace | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.handlers | commit, delete, prepare, read_first, read_key, read_next, read_prev, read_rnd, read_rnd_next, rollback, savepoint, savepointrollback, update, write | handlers/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_open_cache_overflows | open_cache | overflows/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_locks | immediate, waited | locks/s | \u2022 | \u2022 | \u2022 |\n| mysql.join_issues | full_join, full_range_join, range, range_check, scan | joins/s | \u2022 | \u2022 | \u2022 |\n| mysql.sort_issues | merge_passes, range, scan | issues/s | \u2022 | \u2022 | \u2022 |\n| mysql.tmp | disk_tables, files, tables | events/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections | all, aborted | connections/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections_active | active, limit, max_active | connections | \u2022 | \u2022 | \u2022 |\n| mysql.threads | connected, cached, running | threads | \u2022 | \u2022 | \u2022 |\n| mysql.threads_created | created | threads/s | \u2022 | \u2022 | \u2022 |\n| mysql.thread_cache_misses | misses | misses | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io | read, write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_ops | reads, writes, fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_pending_ops | reads, writes, fsyncs | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_log | waits, write_requests, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_cur_row_lock | current waits | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_rows | inserted, read, updated, deleted | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages | data, dirty, free, misc, total | pages | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages_flushed | flush_pages | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_bytes | data, dirty | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead | all, evicted | pages/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead_rnd | read-ahead | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_ops | disk_reads, wait_free | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log | fsyncs, writes | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_fsync_writes | fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_io | write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_deadlocks | deadlocks | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.files | files | files | \u2022 | \u2022 | \u2022 |\n| mysql.files_rate | files | files/s | \u2022 | \u2022 | \u2022 |\n| mysql.connection_errors | accept, internal, max, peer_addr, select, tcpwrap | errors/s | \u2022 | \u2022 | \u2022 |\n| mysql.opened_tables | tables | tables/s | \u2022 | \u2022 | \u2022 |\n| mysql.open_tables | cache, tables | tables | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_fetch_query_duration | duration | milliseconds | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_queries_count | system, user | queries | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_longest_query_duration | duration | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_ops | hits, lowmem_prunes, inserts, not_cached | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.qcache | queries | queries | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_freemem | free | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_memblocks | free, total | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.galera_writesets | rx, tx | writesets/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_bytes | rx, tx | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_queue | rx, tx | writesets | \u2022 | \u2022 | \u2022 |\n| mysql.galera_conflicts | bf_aborts, cert_fails | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_flow_control | paused | ms | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_status | primary, non_primary, disconnected | status | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_state | undefined, joining, donor, joined, synced, error | state | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_size | nodes | nodes | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_weight | weight | weight | \u2022 | \u2022 | \u2022 |\n| mysql.galera_connected | connected | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_ready | ready | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_open_transactions | open | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_thread_count | threads | threads | \u2022 | \u2022 | \u2022 |\n| mysql.key_blocks | unused, used, not_flushed | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.key_requests | reads, writes | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.key_disk_ops | reads, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_cache | disk, all | transactions/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_stmt_cache | disk, all | statements/s | \u2022 | \u2022 | \u2022 |\n\n### Per connection\n\nThese metrics refer to the replication connection.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.slave_behind | seconds | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.slave_status | sql_running, io_running | boolean | \u2022 | \u2022 | \u2022 |\n\n### Per user\n\nThese metrics refer to the MySQL user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username |\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.userstats_cpu | used | percentage | | \u2022 | \u2022 |\n| mysql.userstats_rows | read, sent, updated, inserted, deleted | operations/s | | \u2022 | \u2022 |\n| mysql.userstats_commands | select, update, other | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_commands | denied | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_created_transactions | commit, rollback | transactions/s | | \u2022 | \u2022 |\n| mysql.userstats_binlog_written | written | B/s | | \u2022 | \u2022 |\n| mysql.userstats_empty_queries | empty | queries/s | | \u2022 | \u2022 |\n| mysql.userstats_connections | created | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_lost_connections | lost | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_connections | denied | connections/s | | \u2022 | \u2022 |\n\n",integration_type:"collector",id:"go.d.plugin-mysql-MySQL",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/mysql/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-percona_mysql",plugin_name:"go.d.plugin",module_name:"mysql",monitored_instance:{name:"Percona MySQL",link:"https://www.percona.com/software/mysql-database/percona-server",icon_filename:"percona.svg",categories:["data-collection.database-servers"]},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},info_provided_to_referring_integrations:{description:""},keywords:["db","database","mysql","maria","mariadb","sql"],most_popular:!1},overview:'# Percona MySQL\n\nPlugin: go.d.plugin\nModule: mysql\n\n## Overview\n\nThis collector monitors the health and performance of MySQL servers and collects general statistics, replication and user metrics.\n\n\nIt connects to the MySQL instance via a TCP or UNIX socket and executes the following commands:\n\nExecuted queries:\n\n- `SELECT VERSION();`\n- `SHOW GLOBAL STATUS;`\n- `SHOW GLOBAL VARIABLES;`\n- `SHOW SLAVE STATUS;` or `SHOW ALL SLAVES STATUS;` (MariaDBv10.2+) or `SHOW REPLICA STATUS;` (MySQL 8.0.22+)\n- `SHOW USER_STATISTICS;` (MariaDBv10.1.1+)\n- `SELECT TIME,USER FROM INFORMATION_SCHEMA.PROCESSLIST;`\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known MySQL TCP and UNIX sockets:\n\n- /var/run/mysqld/mysqld.sock\n- /var/run/mysqld/mysql.sock\n- /var/lib/mysql/mysql.sock\n- /tmp/mysql.sock\n- 127.0.0.1:3306\n- "[::1]:3306"\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n',setup:'## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nA user account should have the\nfollowing [permissions](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html):\n\n- [`USAGE`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_usage)\n- [`REPLICATION CLIENT`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_replication-client)\n- [`PROCESS`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_process)\n\nTo create the `netdata` user with these permissions, execute the following in the MySQL shell:\n\n```mysql\nCREATE USER \'netdata\'@\'localhost\';\nGRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO \'netdata\'@\'localhost\';\nFLUSH PRIVILEGES;\n```\n\nThe `netdata` user will have the ability to connect to the MySQL server on localhost without a password. It will only\nbe able to gather statistics without being able to alter or affect operations in any way.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| dsn | MySQL server DSN (Data Source Name). See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | root@tcp(localhost:3306)/ | yes |\n| my.cnf | Specifies the my.cnf file to read the connection settings from the [client] section. | | no |\n| timeout | Query timeout in seconds. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@unix(/var/lib/mysql/mysql.sock)/\n\n```\n{% /details %}\n##### Connection with password\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netconfig:password@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n my.cnf: \'/etc/my.cnf\'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n - name: remote\n dsn: netconfig:password@tcp(203.0.113.0:3306)/\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mysql\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mysql_10s_slow_queries ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.queries | number of slow queries in the last 10 seconds |\n| [ mysql_10s_table_locks_immediate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | number of table immediate locks in the last 10 seconds |\n| [ mysql_10s_table_locks_waited ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | number of table waited locks in the last 10 seconds |\n| [ mysql_10s_waited_locks_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.table_locks | ratio of waited table locks over the last 10 seconds |\n| [ mysql_connections ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.connections_active | client connections utilization |\n| [ mysql_replication ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.slave_status | replication status (0: stopped, 1: working) |\n| [ mysql_replication_lag ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.slave_behind | difference between the timestamp of the latest transaction processed by the SQL thread and the timestamp of the same transaction when it was processed on the master |\n| [ mysql_galera_cluster_size_max_2m ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_size | maximum galera cluster size in the last 2 minutes starting one minute ago |\n| [ mysql_galera_cluster_size ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_size | current galera cluster size, compared to the maximum size in the last 2 minutes |\n| [ mysql_galera_cluster_state_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Donor/Desynced or Joined |\n| [ mysql_galera_cluster_state_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Undefined or Joining or Error |\n| [ mysql_galera_cluster_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mysql.conf) | mysql.galera_cluster_status | galera node is part of a nonoperational component. This occurs in cases of multiple membership changes that result in a loss of Quorum or in cases of split-brain situations. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MariaDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.net | in, out | kilobits/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries | queries, questions, slow_queries | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries_type | select, delete, update, insert, replace | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.handlers | commit, delete, prepare, read_first, read_key, read_next, read_prev, read_rnd, read_rnd_next, rollback, savepoint, savepointrollback, update, write | handlers/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_open_cache_overflows | open_cache | overflows/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_locks | immediate, waited | locks/s | \u2022 | \u2022 | \u2022 |\n| mysql.join_issues | full_join, full_range_join, range, range_check, scan | joins/s | \u2022 | \u2022 | \u2022 |\n| mysql.sort_issues | merge_passes, range, scan | issues/s | \u2022 | \u2022 | \u2022 |\n| mysql.tmp | disk_tables, files, tables | events/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections | all, aborted | connections/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections_active | active, limit, max_active | connections | \u2022 | \u2022 | \u2022 |\n| mysql.threads | connected, cached, running | threads | \u2022 | \u2022 | \u2022 |\n| mysql.threads_created | created | threads/s | \u2022 | \u2022 | \u2022 |\n| mysql.thread_cache_misses | misses | misses | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io | read, write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_ops | reads, writes, fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_pending_ops | reads, writes, fsyncs | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_log | waits, write_requests, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_cur_row_lock | current waits | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_rows | inserted, read, updated, deleted | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages | data, dirty, free, misc, total | pages | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages_flushed | flush_pages | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_bytes | data, dirty | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead | all, evicted | pages/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead_rnd | read-ahead | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_ops | disk_reads, wait_free | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log | fsyncs, writes | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_fsync_writes | fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_io | write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_deadlocks | deadlocks | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.files | files | files | \u2022 | \u2022 | \u2022 |\n| mysql.files_rate | files | files/s | \u2022 | \u2022 | \u2022 |\n| mysql.connection_errors | accept, internal, max, peer_addr, select, tcpwrap | errors/s | \u2022 | \u2022 | \u2022 |\n| mysql.opened_tables | tables | tables/s | \u2022 | \u2022 | \u2022 |\n| mysql.open_tables | cache, tables | tables | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_fetch_query_duration | duration | milliseconds | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_queries_count | system, user | queries | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_longest_query_duration | duration | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_ops | hits, lowmem_prunes, inserts, not_cached | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.qcache | queries | queries | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_freemem | free | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_memblocks | free, total | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.galera_writesets | rx, tx | writesets/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_bytes | rx, tx | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_queue | rx, tx | writesets | \u2022 | \u2022 | \u2022 |\n| mysql.galera_conflicts | bf_aborts, cert_fails | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_flow_control | paused | ms | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_status | primary, non_primary, disconnected | status | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_state | undefined, joining, donor, joined, synced, error | state | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_size | nodes | nodes | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_weight | weight | weight | \u2022 | \u2022 | \u2022 |\n| mysql.galera_connected | connected | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_ready | ready | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_open_transactions | open | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_thread_count | threads | threads | \u2022 | \u2022 | \u2022 |\n| mysql.key_blocks | unused, used, not_flushed | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.key_requests | reads, writes | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.key_disk_ops | reads, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_cache | disk, all | transactions/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_stmt_cache | disk, all | statements/s | \u2022 | \u2022 | \u2022 |\n\n### Per connection\n\nThese metrics refer to the replication connection.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.slave_behind | seconds | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.slave_status | sql_running, io_running | boolean | \u2022 | \u2022 | \u2022 |\n\n### Per user\n\nThese metrics refer to the MySQL user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username |\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.userstats_cpu | used | percentage | | \u2022 | \u2022 |\n| mysql.userstats_rows | read, sent, updated, inserted, deleted | operations/s | | \u2022 | \u2022 |\n| mysql.userstats_commands | select, update, other | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_commands | denied | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_created_transactions | commit, rollback | transactions/s | | \u2022 | \u2022 |\n| mysql.userstats_binlog_written | written | B/s | | \u2022 | \u2022 |\n| mysql.userstats_empty_queries | empty | queries/s | | \u2022 | \u2022 |\n| mysql.userstats_connections | created | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_lost_connections | lost | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_connections | denied | connections/s | | \u2022 | \u2022 |\n\n",integration_type:"collector",id:"go.d.plugin-mysql-Percona_MySQL",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/mysql/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-nginx",plugin_name:"go.d.plugin",module_name:"nginx",monitored_instance:{name:"NGINX",link:"https://www.nginx.com/",categories:["data-collection.web-servers-and-web-proxies"],icon_filename:"nginx.svg"},related_resources:{integrations:{list:[{plugin_name:"go.d.plugin",module_name:"httpcheck"},{plugin_name:"go.d.plugin",module_name:"web_log"},{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},alternative_monitored_instances:[],info_provided_to_referring_integrations:{description:""},keywords:["nginx","web","webserver","http","proxy"],most_popular:!0},overview:"# NGINX\n\nPlugin: go.d.plugin\nModule: nginx\n\n## Overview\n\nThis collector monitors the activity and performance of NGINX servers, and collects metrics such as the number of connections, their status, and client requests.\n\n\nIt sends HTTP requests to the NGINX location [stub-status](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html), which is a built-in location that provides metrics about the NGINX server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects NGINX instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://127.0.0.1/basic_status\n- http://localhost/stub_status\n- http://127.0.0.1/stub_status\n- http://127.0.0.1/nginx_status\n- http://127.0.0.1/status\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable status support\n\nConfigure [ngx_http_stub_status_module](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nginx.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nginx.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1/stub_status | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nNGINX with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n\n - name: remote\n url: http://192.0.2.1/stub_status\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nginx` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nginx\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NGINX instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginx.connections | active | connections |\n| nginx.connections_status | reading, writing, idle | connections |\n| nginx.connections_accepted_handled | accepted, handled | connections/s |\n| nginx.requests | requests | requests/s |\n\n",integration_type:"collector",id:"go.d.plugin-nginx-NGINX",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/nginx/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-nginxplus",plugin_name:"go.d.plugin",module_name:"nginxplus",monitored_instance:{name:"NGINX Plus",link:"https://www.nginx.com/products/nginx/",icon_filename:"nginxplus.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["nginxplus","nginx","web","webserver","http","proxy"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# NGINX Plus\n\nPlugin: go.d.plugin\nModule: nginxplus\n\n## Overview\n\nThis collector monitors NGINX Plus servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Config API\n\nTo configure API, see the [official documentation](https://docs.nginx.com/nginx/admin-guide/monitoring/live-activity-monitoring/#configuring-the-api).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nginxplus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nginxplus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1 | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nNGINX Plus with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n - name: remote\n url: http://192.0.2.1\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nginxplus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nginxplus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NGINX Plus instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.client_connections_rate | accepted, dropped | connections/s |\n| nginxplus.client_connections_count | active, idle | connections |\n| nginxplus.ssl_handshakes_rate | successful, failed | handshakes/s |\n| nginxplus.ssl_handshakes_failures_rate | no_common_protocol, no_common_cipher, timeout, peer_rejected_cert | failures/s |\n| nginxplus.ssl_verification_errors_rate | no_cert, expired_cert, revoked_cert, hostname_mismatch, other | errors/s |\n| nginxplus.ssl_session_reuses_rate | ssl_session | reuses/s |\n| nginxplus.http_requests_rate | requests | requests/s |\n| nginxplus.http_requests_count | requests | requests |\n| nginxplus.uptime | uptime | seconds |\n\n### Per http server zone\n\nThese metrics refer to the HTTP server zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_server_zone | HTTP server zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_server_zone_requests_rate | requests | requests/s |\n| nginxplus.http_server_zone_responses_per_code_class_rate | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxplus.http_server_zone_traffic_rate | received, sent | bytes/s |\n| nginxplus.http_server_zone_requests_processing_count | processing | requests |\n| nginxplus.http_server_zone_requests_discarded_rate | discarded | requests/s |\n\n### Per http location zone\n\nThese metrics refer to the HTTP location zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_location_zone | HTTP location zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_location_zone_requests_rate | requests | requests/s |\n| nginxplus.http_location_zone_responses_per_code_class_rate | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxplus.http_location_zone_traffic_rate | received, sent | bytes/s |\n| nginxplus.http_location_zone_requests_discarded_rate | discarded | requests/s |\n\n### Per http upstream\n\nThese metrics refer to the HTTP upstream.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_upstream_name | HTTP upstream name |\n| http_upstream_zone | HTTP upstream zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_upstream_peers_count | peers | peers |\n| nginxplus.http_upstream_zombies_count | zombie | servers |\n| nginxplus.http_upstream_keepalive_count | keepalive | connections |\n\n### Per http upstream server\n\nThese metrics refer to the HTTP upstream server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_upstream_name | HTTP upstream name |\n| http_upstream_zone | HTTP upstream zone name |\n| http_upstream_server_address | HTTP upstream server address (e.g. 127.0.0.1:81) |\n| http_upstream_server_name | HTTP upstream server name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_upstream_server_requests_rate | requests | requests/s |\n| nginxplus.http_upstream_server_responses_per_code_class_rate | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxplus.http_upstream_server_response_time | response | milliseconds |\n| nginxplus.http_upstream_server_response_header_time | header | milliseconds |\n| nginxplus.http_upstream_server_traffic_rate | received, sent | bytes/s |\n| nginxplus.http_upstream_server_state | up, down, draining, unavail, checking, unhealthy | state |\n| nginxplus.http_upstream_server_connections_count | active | connections |\n| nginxplus.http_upstream_server_downtime | downtime | seconds |\n\n### Per http cache\n\nThese metrics refer to the HTTP cache.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_cache | HTTP cache name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_cache_state | warm, cold | state |\n| nginxplus.http_cache_iops | served, written, bypass | responses/s |\n| nginxplus.http_cache_io | served, written, bypass | bytes/s |\n| nginxplus.http_cache_size | size | bytes |\n\n### Per stream server zone\n\nThese metrics refer to the Stream server zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| stream_server_zone | Stream server zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.stream_server_zone_connections_rate | accepted | connections/s |\n| nginxplus.stream_server_zone_sessions_per_code_class_rate | 2xx, 4xx, 5xx | sessions/s |\n| nginxplus.stream_server_zone_traffic_rate | received, sent | bytes/s |\n| nginxplus.stream_server_zone_connections_processing_count | processing | connections |\n| nginxplus.stream_server_zone_connections_discarded_rate | discarded | connections/s |\n\n### Per stream upstream\n\nThese metrics refer to the Stream upstream.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| stream_upstream_name | Stream upstream name |\n| stream_upstream_zone | Stream upstream zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.stream_upstream_peers_count | peers | peers |\n| nginxplus.stream_upstream_zombies_count | zombie | servers |\n\n### Per stream upstream server\n\nThese metrics refer to the Stream upstream server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| stream_upstream_name | Stream upstream name |\n| stream_upstream_zone | Stream upstream zone name |\n| stream_upstream_server_address | Stream upstream server address (e.g. 127.0.0.1:12346) |\n| stream_upstream_server_name | Stream upstream server name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.stream_upstream_server_connections_rate | forwarded | connections/s |\n| nginxplus.stream_upstream_server_traffic_rate | received, sent | bytes/s |\n| nginxplus.stream_upstream_server_state | up, down, unavail, checking, unhealthy | state |\n| nginxplus.stream_upstream_server_downtime | downtime | seconds |\n| nginxplus.stream_upstream_server_connections_count | active | connections |\n\n### Per resolver zone\n\nThese metrics refer to the resolver zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| resolver_zone | resolver zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.resolver_zone_requests_rate | name, srv, addr | requests/s |\n| nginxplus.resolver_zone_responses_rate | noerror, formerr, servfail, nxdomain, notimp, refused, timedout, unknown | responses/s |\n\n",integration_type:"collector",id:"go.d.plugin-nginxplus-NGINX_Plus",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/nginxplus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-nginxvts",plugin_name:"go.d.plugin",module_name:"nginxvts",monitored_instance:{name:"NGINX VTS",link:"https://www.nginx.com/",icon_filename:"nginx.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["webserver"],related_resources:{integrations:{list:[{plugin_name:"go.d.plugin",module_name:"weblog"},{plugin_name:"go.d.plugin",module_name:"httpcheck"},{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# NGINX VTS\n\nPlugin: go.d.plugin\nModule: nginxvts\n\n## Overview\n\nThis collector monitors NGINX servers with [virtual host traffic status module](https://github.com/vozlt/nginx-module-vts).\n\n\nIt sends HTTP requests to the NGINX VTS location [status](https://github.com/vozlt/nginx-module-vts#synopsis), \nwhich is a built-in location that provides metrics about the NGINX VTS server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects NGINX instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure nginx-vts module\n\nTo configure nginx-vts, see the [https://github.com/vozlt/nginx-module-vts#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nginxvts.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nginxvts.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1/status/format/json | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/status/format/json\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/status/format/json\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/status/format/json\n\n - name: remote\n url: http://192.0.2.1/status/format/json\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nginxvts` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nginxvts\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NGINX VTS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxvts.requests_total | requests | requests/s |\n| nginxvts.active_connections | active | connections |\n| nginxvts.connections_total | reading, writing, waiting, accepted, handled | connections/s |\n| nginxvts.uptime | uptime | seconds |\n| nginxvts.shm_usage | max, used | bytes |\n| nginxvts.shm_used_node | used | nodes |\n| nginxvts.server_requests_total | requests | requests/s |\n| nginxvts.server_responses_total | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxvts.server_traffic_total | in, out | bytes/s |\n| nginxvts.server_cache_total | miss, bypass, expired, stale, updating, revalidated, hit, scarce | events/s |\n\n",integration_type:"collector",id:"go.d.plugin-nginxvts-NGINX_VTS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/nginxvts/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-ntpd",plugin_name:"go.d.plugin",module_name:"ntpd",monitored_instance:{name:"NTPd",link:"https://www.ntp.org/documentation/4.2.8-series/ntpd",icon_filename:"ntp.png",categories:["data-collection.system-clock-and-ntp"]},keywords:["ntpd","ntp","time"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# NTPd\n\nPlugin: go.d.plugin\nModule: ntpd\n\n## Overview\n\nThis collector monitors the system variables of the local `ntpd` daemon (optional incl. variables of the polled peers) using the NTP Control Message Protocol via UDP socket, similar to `ntpq`, the [standard NTP query program](https://doc.ntp.org/current-stable/ntpq.html).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/ntpd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/ntpd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Server address in IP:PORT format. | 127.0.0.1:123 | yes |\n| timeout | Connection/read/write timeout. | 1 | no |\n| collect_peers | Determines whether peer metrics will be collected. | no | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:123\n\n```\n{% /details %}\n##### With peers metrics\n\nCollect peers metrics.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:123\n collect_peers: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:123\n\n - name: remote\n address: 203.0.113.0:123\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ntpd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m ntpd\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NTPd instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ntpd.sys_offset | offset | milliseconds |\n| ntpd.sys_jitter | system, clock | milliseconds |\n| ntpd.sys_frequency | frequency | ppm |\n| ntpd.sys_wander | clock | ppm |\n| ntpd.sys_rootdelay | delay | milliseconds |\n| ntpd.sys_rootdisp | dispersion | milliseconds |\n| ntpd.sys_stratum | stratum | stratum |\n| ntpd.sys_tc | current, minimum | log2 |\n| ntpd.sys_precision | precision | log2 |\n\n### Per peer\n\nThese metrics refer to the NTPd peer.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| peer_address | peer's source IP address |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ntpd.peer_offset | offset | milliseconds |\n| ntpd.peer_delay | delay | milliseconds |\n| ntpd.peer_dispersion | dispersion | milliseconds |\n| ntpd.peer_jitter | jitter | milliseconds |\n| ntpd.peer_xleave | xleave | milliseconds |\n| ntpd.peer_rootdelay | rootdelay | milliseconds |\n| ntpd.peer_rootdisp | dispersion | milliseconds |\n| ntpd.peer_stratum | stratum | stratum |\n| ntpd.peer_hmode | hmode | hmode |\n| ntpd.peer_pmode | pmode | pmode |\n| ntpd.peer_hpoll | hpoll | log2 |\n| ntpd.peer_ppoll | ppoll | log2 |\n| ntpd.peer_precision | precision | log2 |\n\n",integration_type:"collector",id:"go.d.plugin-ntpd-NTPd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/ntpd/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-nvidia_smi",plugin_name:"go.d.plugin",module_name:"nvidia_smi",monitored_instance:{name:"Nvidia GPU",link:"https://www.nvidia.com/en-us/",icon_filename:"nvidia.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:["nvidia","gpu","hardware"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Nvidia GPU\n\nPlugin: go.d.plugin\nModule: nvidia_smi\n\n## Overview\n\nThis collector monitors GPUs performance metrics using\nthe [nvidia-smi](https://developer.nvidia.com/nvidia-system-management-interface) CLI tool.\n\n> **Warning**: under development, [loop mode](https://github.com/netdata/netdata/issues/14522) not implemented yet.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable in go.d.conf.\n\nThis collector is disabled by default. You need to explicitly enable it in the `go.d.conf` file.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nvidia_smi.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nvidia_smi.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| binary_path | Path to nvidia_smi binary. The default is "nvidia_smi" and the executable is looked for in the directories specified in the PATH environment variable. | nvidia_smi | no |\n| timeout | nvidia_smi binary execution timeout. | 2 | no |\n| use_csv_format | Used format when requesting GPU information. XML is used if set to \'no\'. | yes | no |\n\n{% /details %}\n#### Examples\n\n##### XML format\n\nUse XML format when requesting GPU information.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: nvidia_smi\n use_csv_format: no\n\n```\n{% /details %}\n##### Custom binary path\n\nThe executable is not in the directories specified in the PATH environment variable.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: nvidia_smi\n binary_path: /usr/local/sbin/nvidia_smi\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nvidia_smi` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nvidia_smi\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per gpu\n\nThese metrics refer to the GPU.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| uuid | GPU id (e.g. 00000000:00:04.0) |\n| product_name | GPU product name (e.g. NVIDIA A100-SXM4-40GB) |\n\nMetrics:\n\n| Metric | Dimensions | Unit | XML | CSV |\n|:------|:----------|:----|:---:|:---:|\n| nvidia_smi.gpu_pcie_bandwidth_usage | rx, tx | B/s | \u2022 | |\n| nvidia_smi.gpu_pcie_bandwidth_utilization | rx, tx | % | \u2022 | |\n| nvidia_smi.gpu_fan_speed_perc | fan_speed | % | \u2022 | \u2022 |\n| nvidia_smi.gpu_utilization | gpu | % | \u2022 | \u2022 |\n| nvidia_smi.gpu_memory_utilization | memory | % | \u2022 | \u2022 |\n| nvidia_smi.gpu_decoder_utilization | decoder | % | \u2022 | |\n| nvidia_smi.gpu_encoder_utilization | encoder | % | \u2022 | |\n| nvidia_smi.gpu_frame_buffer_memory_usage | free, used, reserved | B | \u2022 | \u2022 |\n| nvidia_smi.gpu_bar1_memory_usage | free, used | B | \u2022 | |\n| nvidia_smi.gpu_temperature | temperature | Celsius | \u2022 | \u2022 |\n| nvidia_smi.gpu_voltage | voltage | V | \u2022 | |\n| nvidia_smi.gpu_clock_freq | graphics, video, sm, mem | MHz | \u2022 | \u2022 |\n| nvidia_smi.gpu_power_draw | power_draw | Watts | \u2022 | \u2022 |\n| nvidia_smi.gpu_performance_state | P0-P15 | state | \u2022 | \u2022 |\n| nvidia_smi.gpu_mig_mode_current_status | enabled, disabled | status | \u2022 | |\n| nvidia_smi.gpu_mig_devices_count | mig | devices | \u2022 | |\n\n### Per mig\n\nThese metrics refer to the Multi-Instance GPU (MIG).\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| uuid | GPU id (e.g. 00000000:00:04.0) |\n| product_name | GPU product name (e.g. NVIDIA A100-SXM4-40GB) |\n| gpu_instance_id | GPU instance id (e.g. 1) |\n\nMetrics:\n\n| Metric | Dimensions | Unit | XML | CSV |\n|:------|:----------|:----|:---:|:---:|\n| nvidia_smi.gpu_mig_frame_buffer_memory_usage | free, used, reserved | B | \u2022 | |\n| nvidia_smi.gpu_mig_bar1_memory_usage | free, used | B | \u2022 | |\n\n",integration_type:"collector",id:"go.d.plugin-nvidia_smi-Nvidia_GPU",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/nvidia_smi/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-nvme",plugin_name:"go.d.plugin",module_name:"nvme",monitored_instance:{name:"NVMe devices",link:"",icon_filename:"nvme.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:["nvme"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# NVMe devices\n\nPlugin: go.d.plugin\nModule: nvme\n\n## Overview\n\nThis collector monitors the health of NVMe devices using the command line tool [nvme](https://github.com/linux-nvme/nvme-cli#nvme-cli), which can only be run by the root user. It uses `sudo` and assumes it is set up so that the netdata user can execute `nvme` as root without a password.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install nvme-cli\n\nSee [Distro Support](https://github.com/linux-nvme/nvme-cli#distro-support). Install `nvme-cli` using your distribution\'s package manager.\n\n\n#### Allow netdata to execute nvme\n\nAdd the netdata user to `/etc/sudoers` (use `which nvme` to find the full path to the binary):\n\n```bash\nnetdata ALL=(root) NOPASSWD: /usr/sbin/nvme\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nvme.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nvme.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| binary_path | Path to nvme binary. The default is "nvme" and the executable is looked for in the directories specified in the PATH environment variable. | nvme | no |\n| timeout | nvme binary execution timeout. | 2 | no |\n\n{% /details %}\n#### Examples\n\n##### Custom binary path\n\nThe executable is not in the directories specified in the PATH environment variable.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: nvme\n binary_path: /usr/local/sbin/nvme\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nvme` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nvme\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ nvme_device_critical_warnings_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/nvme.conf) | nvme.device_critical_warnings_state | NVMe device ${label:device} has critical warnings |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per device\n\nThese metrics refer to the NVME device.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | NVMe device name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nvme.device_estimated_endurance_perc | used | % |\n| nvme.device_available_spare_perc | spare | % |\n| nvme.device_composite_temperature | temperature | celsius |\n| nvme.device_io_transferred_count | read, written | bytes |\n| nvme.device_power_cycles_count | power | cycles |\n| nvme.device_power_on_time | power-on | seconds |\n| nvme.device_critical_warnings_state | available_spare, temp_threshold, nvm_subsystem_reliability, read_only, volatile_mem_backup_failed, persistent_memory_read_only | state |\n| nvme.device_unsafe_shutdowns_count | unsafe | shutdowns |\n| nvme.device_media_errors_rate | media | errors/s |\n| nvme.device_error_log_entries_rate | error_log | entries/s |\n| nvme.device_warning_composite_temperature_time | wctemp | seconds |\n| nvme.device_critical_composite_temperature_time | cctemp | seconds |\n| nvme.device_thermal_mgmt_temp1_transitions_rate | temp1 | transitions/s |\n| nvme.device_thermal_mgmt_temp2_transitions_rate | temp2 | transitions/s |\n| nvme.device_thermal_mgmt_temp1_time | temp1 | seconds |\n| nvme.device_thermal_mgmt_temp2_time | temp2 | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-nvme-NVMe_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/nvme/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-openvpn",plugin_name:"go.d.plugin",module_name:"openvpn",monitored_instance:{name:"OpenVPN",link:"https://openvpn.net/",icon_filename:"openvpn.svg",categories:["data-collection.vpns"]},keywords:["openvpn","vpn"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# OpenVPN\n\nPlugin: go.d.plugin\nModule: openvpn\n\n## Overview\n\nThis collector monitors OpenVPN servers.\n\nIt uses OpenVPN [Management Interface](https://openvpn.net/community-resources/management-interface/) to collect metrics.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable in go.d.conf.\n\nThis collector is disabled by default. You need to explicitly enable it in [go.d.conf](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d.conf).\n\nFrom the documentation for the OpenVPN Management Interface:\n> Currently, the OpenVPN daemon can at most support a single management client any one time.\n\nIt is disabled to not break other tools which use `Management Interface`.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/openvpn.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/openvpn.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Server address in IP:PORT format. | 127.0.0.1:7505 | yes |\n| timeout | Connection, read, and write timeout duration in seconds. The timeout includes name resolution. | 1 | no |\n| per_user_stats | User selector. Determines which user metrics will be collected. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:7505\n\n```\n{% /details %}\n##### With user metrics\n\nCollect metrics of all users.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:7505\n per_user_stats:\n includes:\n - "* *"\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:7505\n\n - name: remote\n address: 203.0.113.0:7505\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `openvpn` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m openvpn\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenVPN instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.active_clients | clients | clients |\n| openvpn.total_traffic | in, out | kilobits/s |\n\n### Per user\n\nThese metrics refer to the VPN user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| username | VPN username |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.user_traffic | in, out | kilobits/s |\n| openvpn.user_connection_time | time | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-openvpn-OpenVPN",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/openvpn/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-openvpn_status_log",plugin_name:"go.d.plugin",module_name:"openvpn_status_log",monitored_instance:{name:"OpenVPN status log",link:"https://openvpn.net/",icon_filename:"openvpn.svg",categories:["data-collection.vpns"]},keywords:["openvpn","vpn"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# OpenVPN status log\n\nPlugin: go.d.plugin\nModule: openvpn_status_log\n\n## Overview\n\nThis collector monitors OpenVPN server.\n\nIt parses server log files and provides summary and per user metrics.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/openvpn_status_log.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/openvpn_status_log.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| log_path | Path to status log. | /var/log/openvpn/status.log | yes |\n| per_user_stats | User selector. Determines which user metrics will be collected. | | no |\n\n{% /details %}\n#### Examples\n\n##### With user metrics\n\nCollect metrics of all users.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n per_user_stats:\n includes:\n - "* *"\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `openvpn_status_log` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m openvpn_status_log\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenVPN status log instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.active_clients | clients | clients |\n| openvpn.total_traffic | in, out | kilobits/s |\n\n### Per user\n\nThese metrics refer to the VPN user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| username | VPN username |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.user_traffic | in, out | kilobits/s |\n| openvpn.user_connection_time | time | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-openvpn_status_log-OpenVPN_status_log",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/openvpn_status_log/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-pgbouncer",plugin_name:"go.d.plugin",module_name:"pgbouncer",monitored_instance:{name:"PgBouncer",link:"https://www.pgbouncer.org/",icon_filename:"postgres.svg",categories:["data-collection.database-servers"]},keywords:["pgbouncer"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# PgBouncer\n\nPlugin: go.d.plugin\nModule: pgbouncer\n\n## Overview\n\nThis collector monitors PgBouncer servers.\n\nExecuted queries:\n\n- `SHOW VERSION;`\n- `SHOW CONFIG;`\n- `SHOW DATABASES;`\n- `SHOW STATS;`\n- `SHOW POOLS;`\n\nInformation about the queries can be found in the [PgBouncer Documentation](https://www.pgbouncer.org/usage.html).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nCreate a user with `stats_users` permissions to query your PgBouncer instance.\n\nTo create the `netdata` user:\n\n- Add `netdata` user to the `pgbouncer.ini` file:\n\n ```text\n stats_users = netdata\n ```\n\n- Add a password for the `netdata` user to the `userlist.txt` file:\n\n ```text\n "netdata" "<PASSWORD>"\n ```\n\n- To verify the credentials, run the following command\n\n ```bash\n psql -h localhost -U netdata -p 6432 pgbouncer -c "SHOW VERSION;" >/dev/null 2>&1 && echo OK || echo FAIL\n ```\n\n When it prompts for a password, enter the password you added to `userlist.txt`.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pgbouncer.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pgbouncer.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| dsn | PgBouncer server DSN (Data Source Name). See [DSN syntax](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING). | postgres://postgres:postgres@127.0.0.1:6432/pgbouncer | yes |\n| timeout | Query timeout in seconds. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: \'postgres://postgres:postgres@127.0.0.1:6432/pgbouncer\'\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: \'host=/tmp dbname=pgbouncer user=postgres port=6432\'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: \'postgres://postgres:postgres@127.0.0.1:6432/pgbouncer\'\n\n - name: remote\n dsn: \'postgres://postgres:postgres@203.0.113.10:6432/pgbouncer\'\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pgbouncer` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pgbouncer\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PgBouncer instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pgbouncer.client_connections_utilization | used | percentage |\n\n### Per database\n\nThese metrics refer to the database.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n| postgres_database | Postgres database name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pgbouncer.db_client_connections | active, waiting, cancel_req | connections |\n| pgbouncer.db_server_connections | active, idle, used, tested, login | connections |\n| pgbouncer.db_server_connections_utilization | used | percentage |\n| pgbouncer.db_clients_wait_time | time | seconds |\n| pgbouncer.db_client_max_wait_time | time | seconds |\n| pgbouncer.db_transactions | transactions | transactions/s |\n| pgbouncer.db_transactions_time | time | seconds |\n| pgbouncer.db_transaction_avg_time | time | seconds |\n| pgbouncer.db_queries | queries | queries/s |\n| pgbouncer.db_queries_time | time | seconds |\n| pgbouncer.db_query_avg_time | time | seconds |\n| pgbouncer.db_network_io | received, sent | B/s |\n\n",integration_type:"collector",id:"go.d.plugin-pgbouncer-PgBouncer",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/pgbouncer/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-phpdaemon",plugin_name:"go.d.plugin",module_name:"phpdaemon",monitored_instance:{name:"phpDaemon",link:"https://github.com/kakserpom/phpdaemon",icon_filename:"php.svg",categories:["data-collection.apm"]},keywords:["phpdaemon","php"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# phpDaemon\n\nPlugin: go.d.plugin\nModule: phpdaemon\n\n## Overview\n\nThis collector monitors phpDaemon instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Enable phpDaemon's HTTP server\n\nStatistics expected to be in JSON format.\n\n<details>\n<summary>phpDaemon configuration</summary>\n\nInstruction from [@METAJIJI](https://github.com/METAJIJI).\n\nTo enable `phpd` statistics on http, you must enable the http server and write an application.\nApplication is important, because standalone application [ServerStatus.php](https://github.com/kakserpom/phpdaemon/blob/master/PHPDaemon/Applications/ServerStatus.php) provides statistics in html format and unusable for `netdata`.\n\n```php\n// /opt/phpdaemon/conf/phpd.conf\n\npath /opt/phpdaemon/conf/AppResolver.php;\nPool:HTTPServer {\n privileged;\n listen '127.0.0.1';\n port 8509;\n}\n```\n\n```php\n// /opt/phpdaemon/conf/AppResolver.php\n\n<?php\n\nclass MyAppResolver extends \\PHPDaemon\\Core\\AppResolver {\n public function getRequestRoute($req, $upstream) {\n if (preg_match('~^/(ServerStatus|FullStatus)/~', $req->attrs->server['DOCUMENT_URI'], $m)) {\n return $m[1];\n }\n }\n}\n\nreturn new MyAppResolver;\n```\n\n```php\n/opt/phpdaemon/conf/PHPDaemon/Applications/FullStatus.php\n\n<?php\nnamespace PHPDaemon\\Applications;\n\nclass FullStatus extends \\PHPDaemon\\Core\\AppInstance {\n public function beginRequest($req, $upstream) {\n return new FullStatusRequest($this, $upstream, $req);\n }\n}\n```\n\n```php\n// /opt/phpdaemon/conf/PHPDaemon/Applications/FullStatusRequest.php\n\n<?php\nnamespace PHPDaemon\\Applications;\n\nuse PHPDaemon\\Core\\Daemon;\nuse PHPDaemon\\HTTPRequest\\Generic;\n\nclass FullStatusRequest extends Generic {\n public function run() {\n $stime = microtime(true);\n $this->header('Content-Type: application/javascript; charset=utf-8');\n\n $stat = Daemon::getStateOfWorkers();\n $stat['uptime'] = time() - Daemon::$startTime;\n echo json_encode($stat);\n }\n}\n```\n\n</details>\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/phpdaemon.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/phpdaemon.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8509/FullStatus | yes |\n| timeout | HTTP request timeout. | 2 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n\n```\n{% /details %}\n##### HTTP authentication\n\nHTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nHTTPS with self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n\n - name: remote\n url: http://192.0.2.1:8509/FullStatus\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `phpdaemon` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m phpdaemon\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per phpDaemon instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| phpdaemon.workers | alive, shutdown | workers |\n| phpdaemon.alive_workers | idle, busy, reloading | workers |\n| phpdaemon.idle_workers | preinit, init, initialized | workers |\n| phpdaemon.uptime | time | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-phpdaemon-phpDaemon",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-phpfpm",plugin_name:"go.d.plugin",module_name:"phpfpm",monitored_instance:{name:"PHP-FPM",link:"https://php-fpm.org/",icon_filename:"php.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["phpfpm","php"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# PHP-FPM\n\nPlugin: go.d.plugin\nModule: phpfpm\n\n## Overview\n\nThis collector monitors PHP-FPM instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable status page\n\nUncomment the `pm.status_path = /status` variable in the `php-fpm` config file.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/phpfpm.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/phpfpm.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1/status?full&json | yes |\n| socket | Server Unix socket. | | no |\n| address | Server address in IP:PORT format. | | no |\n| fcgi_path | Status path. | /status | no |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### HTTP\n\nCollecting data from a local instance over HTTP.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://localhost/status?full&json\n\n```\n{% /details %}\n##### Unix socket\n\nCollecting data from a local instance over Unix socket.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n socket: \'/tmp/php-fpm.sock\'\n\n```\n{% /details %}\n##### TCP socket\n\nCollecting data from a local instance over TCP socket.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:9000\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://localhost/status?full&json\n\n - name: remote\n url: http://203.0.113.10/status?full&json\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `phpfpm` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m phpfpm\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PHP-FPM instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| phpfpm.connections | active, max_active, idle | connections |\n| phpfpm.requests | requests | requests/s |\n| phpfpm.performance | max_children_reached, slow_requests | status |\n| phpfpm.request_duration | min, max, avg | milliseconds |\n| phpfpm.request_cpu | min, max, avg | percentage |\n| phpfpm.request_mem | min, max, avg | KB |\n\n",integration_type:"collector",id:"go.d.plugin-phpfpm-PHP-FPM",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/phpfpm/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-pihole",plugin_name:"go.d.plugin",module_name:"pihole",monitored_instance:{name:"Pi-hole",link:"https://pi-hole.net",icon_filename:"pihole.png",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["pihole"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Pi-hole\n\nPlugin: go.d.plugin\nModule: pihole\n\n## Overview\n\nThis collector monitors Pi-hole instances using [PHP API](https://github.com/pi-hole/AdminLTE).\n\nThe data provided by the API is for the last 24 hours. All collected values refer to this time period and not to the\nmodule's collection interval.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pihole.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pihole.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1 | yes |\n| setup_vars_path | Path to setupVars.conf. This file is used to get the web password. | /etc/pihole/setupVars.conf | no |\n| timeout | HTTP request timeout. | 5 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nRemote instance with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://203.0.113.11\n tls_skip_verify: yes\n password: 1ebd33f882f9aa5fac26a7cb74704742f91100228eb322e41b7bd6e6aeb8f74b\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n - name: remote\n url: http://203.0.113.10\n password: 1ebd33f882f9aa5fac26a7cb74704742f91100228eb322e41b7bd6e6aeb8f74b\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pihole` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pihole\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ pihole_blocklist_last_update ](https://github.com/netdata/netdata/blob/master/src/health/health.d/pihole.conf) | pihole.blocklist_last_update | gravity.list (blocklist) file last update time |\n| [ pihole_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/pihole.conf) | pihole.unwanted_domains_blocking_status | unwanted domains blocking is disabled |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Pi-hole instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pihole.dns_queries_total | queries | queries |\n| pihole.dns_queries | cached, blocked, forwarded | queries |\n| pihole.dns_queries_percentage | cached, blocked, forwarded | percentage |\n| pihole.unique_clients | unique | clients |\n| pihole.domains_on_blocklist | blocklist | domains |\n| pihole.blocklist_last_update | ago | seconds |\n| pihole.unwanted_domains_blocking_status | enabled, disabled | status |\n| pihole.dns_queries_types | a, aaaa, any, ptr, soa, srv, txt | percentage |\n| pihole.dns_queries_forwarded_destination | cached, blocked, other | percentage |\n\n",integration_type:"collector",id:"go.d.plugin-pihole-Pi-hole",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/pihole/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-pika",plugin_name:"go.d.plugin",module_name:"pika",monitored_instance:{name:"Pika",link:"https://github.com/OpenAtomFoundation/pika",icon_filename:"pika.svg",categories:["data-collection.database-servers"]},keywords:["pika","databases"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Pika\n\nPlugin: go.d.plugin\nModule: pika\n\n## Overview\n\nThis collector monitors Pika servers.\n\nIt collects information and statistics about the server executing the following commands:\n\n- [`INFO ALL`](https://github.com/OpenAtomFoundation/pika/wiki/pika-info%E4%BF%A1%E6%81%AF%E8%AF%B4%E6%98%8E)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pika.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pika.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Pika server address. | redis://@localhost:9221 | yes |\n| timeout | Dial (establishing new connections), read (socket reads) and write (socket writes) timeout in seconds. | 1 | no |\n| username | Username used for authentication. | | no |\n| password | Password used for authentication. | | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certificate authority that client use when verifying server certificates. | | no |\n| tls_cert | Client tls certificate. | | no |\n| tls_key | Client tls key. | | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://@localhost:9221'\n\n```\n{% /details %}\n##### TCP socket with password\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:9221'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:9221'\n\n - name: remote\n address: 'redis://user:password@203.0.113.0:9221'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pika` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pika\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Pika instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pika.connections | accepted | connections |\n| pika.clients | connected | clients |\n| pika.memory | used | bytes |\n| pika.connected_replicas | connected | replicas |\n| pika.commands | processed | commands/s |\n| pika.commands_calls | a dimension per command | calls/s |\n| pika.database_strings_keys | a dimension per database | keys |\n| pika.database_strings_expires_keys | a dimension per database | keys |\n| pika.database_strings_invalid_keys | a dimension per database | keys |\n| pika.database_hashes_keys | a dimension per database | keys |\n| pika.database_hashes_expires_keys | a dimension per database | keys |\n| pika.database_hashes_invalid_keys | a dimension per database | keys |\n| pika.database_lists_keys | a dimension per database | keys |\n| pika.database_lists_expires_keys | a dimension per database | keys |\n| pika.database_lists_invalid_keys | a dimension per database | keys |\n| pika.database_zsets_keys | a dimension per database | keys |\n| pika.database_zsets_expires_keys | a dimension per database | keys |\n| pika.database_zsets_invalid_keys | a dimension per database | keys |\n| pika.database_sets_keys | a dimension per database | keys |\n| pika.database_sets_expires_keys | a dimension per database | keys |\n| pika.database_sets_invalid_keys | a dimension per database | keys |\n| pika.uptime | uptime | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-pika-Pika",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/pika/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-ping",plugin_name:"go.d.plugin",module_name:"ping",monitored_instance:{name:"Ping",link:"",icon_filename:"globe.svg",categories:["data-collection.synthetic-checks"]},keywords:["ping"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:'# Ping\n\nPlugin: go.d.plugin\nModule: ping\n\n## Overview\n\nThis module measures round-tripe time and packet loss by sending ping messages to network hosts.\n\nThere are two operational modes:\n\n- privileged (send raw ICMP ping, default). Requires\n CAP_NET_RAW [capability](https://man7.org/linux/man-pages/man7/capabilities.7.html) or root privileges:\n > **Note**: set automatically during Netdata installation.\n\n ```bash\n sudo setcap CAP_NET_RAW=eip <INSTALL_PREFIX>/usr/libexec/netdata/plugins.d/go.d.plugin\n ```\n\n- unprivileged (send UDP ping, Linux only).\n Requires configuring [ping_group_range](https://www.man7.org/linux/man-pages/man7/icmp.7.html):\n\n ```bash\n sudo sysctl -w net.ipv4.ping_group_range="0 2147483647"\n ```\n To persist the change add `net.ipv4.ping_group_range="0 2147483647"` to `/etc/sysctl.conf` and\n execute `sudo sysctl -p`.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn\'t support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n',setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/ping.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/ping.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| hosts | Network hosts. | | yes |\n| network | Allows configuration of DNS resolution. Supported options: ip (select IPv4 or IPv6), ip4 (select IPv4), ip6 (select IPv6). | ip | no |\n| privileged | Ping packets type. "no" means send an "unprivileged" UDP ping, "yes" - raw ICMP ping. | yes | no |\n| packets | Number of ping packets to send. | 5 | no |\n| interval | Timeout between sending ping packets. | 100ms | no |\n\n{% /details %}\n#### Examples\n\n##### IPv4 hosts\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: example\n hosts:\n - 192.0.2.0\n - 192.0.2.1\n\n```\n{% /details %}\n##### Unprivileged mode\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: example\n privileged: no\n hosts:\n - 192.0.2.0\n - 192.0.2.1\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nMultiple instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: example1\n hosts:\n - 192.0.2.0\n - 192.0.2.1\n\n - name: example2\n packets: 10\n hosts:\n - 192.0.2.3\n - 192.0.2.4\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ping` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m ping\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ping_host_reachable ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ping.conf) | ping.host_packet_loss | network host ${lab1el:host} reachability status |\n| [ ping_packet_loss ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ping.conf) | ping.host_packet_loss | packet loss percentage to the network host ${label:host} over the last 10 minutes |\n| [ ping_host_latency ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ping.conf) | ping.host_rtt | average latency to the network host ${label:host} over the last 10 seconds |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per host\n\nThese metrics refer to the remote host.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| host | remote host |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ping.host_rtt | min, max, avg | milliseconds |\n| ping.host_std_dev_rtt | std_dev | milliseconds |\n| ping.host_packet_loss | loss | percentage |\n| ping.host_packets | received, sent | packets |\n\n",integration_type:"collector",id:"go.d.plugin-ping-Ping",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/ping/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-portcheck",plugin_name:"go.d.plugin",module_name:"portcheck",monitored_instance:{name:"TCP Endpoints",link:"",icon_filename:"globe.svg",categories:["data-collection.synthetic-checks"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# TCP Endpoints\n\nPlugin: go.d.plugin\nModule: portcheck\n\n## Overview\n\nThis collector monitors TCP services availability and response time.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/portcheck.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/portcheck.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| host | Remote host address in IPv4, IPv6 format, or DNS name. | | yes |\n| ports | Remote host ports. Must be specified in numeric format. | | yes |\n| timeout | HTTP request timeout. | 2 | no |\n\n{% /details %}\n#### Examples\n\n##### Check SSH and telnet\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: server1\n host: 127.0.0.1\n ports:\n - 22\n - 23\n\n```\n{% /details %}\n##### Check webserver with IPv6 address\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: server2\n host: "[2001:DB8::1]"\n ports:\n - 80\n - 8080\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nMultiple instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: server1\n host: 127.0.0.1\n ports:\n - 22\n - 23\n\n - name: server2\n host: 203.0.113.10\n ports:\n - 22\n - 23\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `portcheck` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m portcheck\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ portcheck_service_reachable ](https://github.com/netdata/netdata/blob/master/src/health/health.d/portcheck.conf) | portcheck.status | TCP host ${label:host} port ${label:port} liveness status |\n| [ portcheck_connection_timeouts ](https://github.com/netdata/netdata/blob/master/src/health/health.d/portcheck.conf) | portcheck.status | percentage of timed-out TCP connections to host ${label:host} port ${label:port} in the last 5 minutes |\n| [ portcheck_connection_fails ](https://github.com/netdata/netdata/blob/master/src/health/health.d/portcheck.conf) | portcheck.status | percentage of failed TCP connections to host ${label:host} port ${label:port} in the last 5 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per tcp endpoint\n\nThese metrics refer to the TCP endpoint.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| host | host |\n| port | port |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| portcheck.status | success, failed, timeout | boolean |\n| portcheck.state_duration | time | seconds |\n| portcheck.latency | time | ms |\n\n",integration_type:"collector",id:"go.d.plugin-portcheck-TCP_Endpoints",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/portcheck/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-postgres",plugin_name:"go.d.plugin",module_name:"postgres",monitored_instance:{name:"PostgreSQL",link:"https://www.postgresql.org/",categories:["data-collection.database-servers"],icon_filename:"postgres.svg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},alternative_monitored_instances:[],info_provided_to_referring_integrations:{description:""},keywords:["db","database","postgres","postgresql","sql"],most_popular:!0},overview:"# PostgreSQL\n\nPlugin: go.d.plugin\nModule: postgres\n\n## Overview\n\nThis collector monitors the activity and performance of Postgres servers, collects replication statistics, metrics for each database, table and index, and more.\n\n\nIt establishes a connection to the Postgres instance via a TCP or UNIX socket.\nTo collect metrics for database tables and indexes, it establishes an additional connection for each discovered database.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known PostgreSQL TCP and UNIX sockets:\n\n- 127.0.0.1:5432\n- /var/run/postgresql/\n\n\n#### Limits\n\nTable and index metrics are not collected for databases with more than 50 tables or 250 indexes.\nThese limits can be changed in the configuration file.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nCreate a user with granted `pg_monitor`\nor `pg_read_all_stat` [built-in role](https://www.postgresql.org/docs/current/predefined-roles.html).\n\nTo create the `netdata` user with these permissions, execute the following in the psql session, as a user with CREATEROLE privileges:\n\n```postgresql\nCREATE USER netdata;\nGRANT pg_monitor TO netdata;\n```\n\nAfter creating the new user, restart the Netdata agent with `sudo systemctl restart netdata`, or\nthe [appropriate method](https://github.com/netdata/netdata/blob/master/docs/configure/start-stop-restart.md) for your\nsystem.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/postgres.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/postgres.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| dsn | Postgres server DSN (Data Source Name). See [DSN syntax](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING). | postgres://postgres:postgres@127.0.0.1:5432/postgres | yes |\n| timeout | Query timeout in seconds. | 2 | no |\n| collect_databases_matching | Databases selector. Determines which database metrics will be collected. Syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/matcher#simple-patterns-matcher). | | no |\n| max_db_tables | Maximum number of tables in the database. Table metrics will not be collected for databases that have more tables than max_db_tables. 0 means no limit. | 50 | no |\n| max_db_indexes | Maximum number of indexes in the database. Index metrics will not be collected for databases that have more indexes than max_db_indexes. 0 means no limit. | 250 | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n```yaml\njobs:\n - name: local\n dsn: 'postgresql://netdata@127.0.0.1:5432/postgres'\n\n```\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: 'host=/var/run/postgresql dbname=postgres user=netdata'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: 'postgresql://netdata@127.0.0.1:5432/postgres'\n\n - name: remote\n dsn: 'postgresql://netdata@203.0.113.0:5432/postgres'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `postgres` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m postgres\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ postgres_total_connection_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.connections_utilization | average total connection utilization over the last minute |\n| [ postgres_acquired_locks_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.locks_utilization | average acquired locks utilization over the last minute |\n| [ postgres_txid_exhaustion_perc ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.txid_exhaustion_perc | percent towards TXID wraparound |\n| [ postgres_db_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.db_cache_io_ratio | average cache hit ratio in db ${label:database} over the last minute |\n| [ postgres_db_transactions_rollback_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.db_cache_io_ratio | average aborted transactions percentage in db ${label:database} over the last five minutes |\n| [ postgres_db_deadlocks_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.db_deadlocks_rate | number of deadlocks detected in db ${label:database} in the last minute |\n| [ postgres_table_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.table_cache_io_ratio | average cache hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_index_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.table_index_cache_io_ratio | average index cache hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_toast_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.table_toast_cache_io_ratio | average TOAST hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_toast_index_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.table_toast_index_cache_io_ratio | average index TOAST hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_bloat_size_perc ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.table_bloat_size_perc | bloat size percentage in db ${label:database} table ${label:table} |\n| [ postgres_table_last_autovacuum_time ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.table_autovacuum_since_time | time elapsed since db ${label:database} table ${label:table} was vacuumed by the autovacuum daemon |\n| [ postgres_table_last_autoanalyze_time ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.table_autoanalyze_since_time | time elapsed since db ${label:database} table ${label:table} was analyzed by the autovacuum daemon |\n| [ postgres_index_bloat_size_perc ](https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf) | postgres.index_bloat_size_perc | bloat size percentage in db ${label:database} table ${label:table} index ${label:index} |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PostgreSQL instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.connections_utilization | used | percentage |\n| postgres.connections_usage | available, used | connections |\n| postgres.connections_state_count | active, idle, idle_in_transaction, idle_in_transaction_aborted, disabled | connections |\n| postgres.transactions_duration | a dimension per bucket | transactions/s |\n| postgres.queries_duration | a dimension per bucket | queries/s |\n| postgres.locks_utilization | used | percentage |\n| postgres.checkpoints_rate | scheduled, requested | checkpoints/s |\n| postgres.checkpoints_time | write, sync | milliseconds |\n| postgres.bgwriter_halts_rate | maxwritten | events/s |\n| postgres.buffers_io_rate | checkpoint, backend, bgwriter | B/s |\n| postgres.buffers_backend_fsync_rate | fsync | calls/s |\n| postgres.buffers_allocated_rate | allocated | B/s |\n| postgres.wal_io_rate | write | B/s |\n| postgres.wal_files_count | written, recycled | files |\n| postgres.wal_archiving_files_count | ready, done | files/s |\n| postgres.autovacuum_workers_count | analyze, vacuum_analyze, vacuum, vacuum_freeze, brin_summarize | workers |\n| postgres.txid_exhaustion_towards_autovacuum_perc | emergency_autovacuum | percentage |\n| postgres.txid_exhaustion_perc | txid_exhaustion | percentage |\n| postgres.txid_exhaustion_oldest_txid_num | xid | xid |\n| postgres.catalog_relations_count | ordinary_table, index, sequence, toast_table, view, materialized_view, composite_type, foreign_table, partitioned_table, partitioned_index | relations |\n| postgres.catalog_relations_size | ordinary_table, index, sequence, toast_table, view, materialized_view, composite_type, foreign_table, partitioned_table, partitioned_index | B |\n| postgres.uptime | uptime | seconds |\n| postgres.databases_count | databases | databases |\n\n### Per repl application\n\nThese metrics refer to the replication application.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| application | application name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.replication_app_wal_lag_size | sent_lag, write_lag, flush_lag, replay_lag | B |\n| postgres.replication_app_wal_lag_time | write_lag, flush_lag, replay_lag | seconds |\n\n### Per repl slot\n\nThese metrics refer to the replication slot.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| slot | replication slot name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.replication_slot_files_count | wal_keep, pg_replslot_files | files |\n\n### Per database\n\nThese metrics refer to the database.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.db_transactions_ratio | committed, rollback | percentage |\n| postgres.db_transactions_rate | committed, rollback | transactions/s |\n| postgres.db_connections_utilization | used | percentage |\n| postgres.db_connections_count | connections | connections |\n| postgres.db_cache_io_ratio | miss | percentage |\n| postgres.db_io_rate | memory, disk | B/s |\n| postgres.db_ops_fetched_rows_ratio | fetched | percentage |\n| postgres.db_ops_read_rows_rate | returned, fetched | rows/s |\n| postgres.db_ops_write_rows_rate | inserted, deleted, updated | rows/s |\n| postgres.db_conflicts_rate | conflicts | queries/s |\n| postgres.db_conflicts_reason_rate | tablespace, lock, snapshot, bufferpin, deadlock | queries/s |\n| postgres.db_deadlocks_rate | deadlocks | deadlocks/s |\n| postgres.db_locks_held_count | access_share, row_share, row_exclusive, share_update, share, share_row_exclusive, exclusive, access_exclusive | locks |\n| postgres.db_locks_awaited_count | access_share, row_share, row_exclusive, share_update, share, share_row_exclusive, exclusive, access_exclusive | locks |\n| postgres.db_temp_files_created_rate | created | files/s |\n| postgres.db_temp_files_io_rate | written | B/s |\n| postgres.db_size | size | B |\n\n### Per table\n\nThese metrics refer to the database table.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n| schema | schema name |\n| table | table name |\n| parent_table | parent table name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.table_rows_dead_ratio | dead | percentage |\n| postgres.table_rows_count | live, dead | rows |\n| postgres.table_ops_rows_rate | inserted, deleted, updated | rows/s |\n| postgres.table_ops_rows_hot_ratio | hot | percentage |\n| postgres.table_ops_rows_hot_rate | hot | rows/s |\n| postgres.table_cache_io_ratio | miss | percentage |\n| postgres.table_io_rate | memory, disk | B/s |\n| postgres.table_index_cache_io_ratio | miss | percentage |\n| postgres.table_index_io_rate | memory, disk | B/s |\n| postgres.table_toast_cache_io_ratio | miss | percentage |\n| postgres.table_toast_io_rate | memory, disk | B/s |\n| postgres.table_toast_index_cache_io_ratio | miss | percentage |\n| postgres.table_toast_index_io_rate | memory, disk | B/s |\n| postgres.table_scans_rate | index, sequential | scans/s |\n| postgres.table_scans_rows_rate | index, sequential | rows/s |\n| postgres.table_autovacuum_since_time | time | seconds |\n| postgres.table_vacuum_since_time | time | seconds |\n| postgres.table_autoanalyze_since_time | time | seconds |\n| postgres.table_analyze_since_time | time | seconds |\n| postgres.table_null_columns | null | columns |\n| postgres.table_size | size | B |\n| postgres.table_bloat_size_perc | bloat | percentage |\n| postgres.table_bloat_size | bloat | B |\n\n### Per index\n\nThese metrics refer to the table index.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n| schema | schema name |\n| table | table name |\n| parent_table | parent table name |\n| index | index name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.index_size | size | B |\n| postgres.index_bloat_size_perc | bloat | percentage |\n| postgres.index_bloat_size | bloat | B |\n| postgres.index_usage_status | used, unused | status |\n\n",integration_type:"collector",id:"go.d.plugin-postgres-PostgreSQL",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/postgres/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-powerdns",plugin_name:"go.d.plugin",module_name:"powerdns",monitored_instance:{name:"PowerDNS Authoritative Server",link:"https://doc.powerdns.com/authoritative/",icon_filename:"powerdns.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["powerdns","dns"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# PowerDNS Authoritative Server\n\nPlugin: go.d.plugin\nModule: powerdns\n\n## Overview\n\nThis collector monitors PowerDNS Authoritative Server instances.\nIt collects metrics from [the internal webserver](https://doc.powerdns.com/authoritative/http-api/index.html#webserver).\n\nUsed endpoints:\n\n- [`/api/v1/servers/localhost/statistics`](https://doc.powerdns.com/authoritative/http-api/statistics.html)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable webserver\n\nFollow [webserver](https://doc.powerdns.com/authoritative/http-api/index.html#webserver) documentation.\n\n\n#### Enable HTTP API\n\nFollow [HTTP API](https://doc.powerdns.com/authoritative/http-api/index.html#enabling-the-api) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/powerdns.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/powerdns.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8081 | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n username: admin\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n - name: remote\n url: http://203.0.113.0:8081\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `powerdns` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m powerdns\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PowerDNS Authoritative Server instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| powerdns.questions_in | udp, tcp | questions/s |\n| powerdns.questions_out | udp, tcp | questions/s |\n| powerdns.cache_usage | query-cache-hit, query-cache-miss, packetcache-hit, packetcache-miss | events/s |\n| powerdns.cache_size | query-cache, packet-cache, key-cache, meta-cache | entries |\n| powerdns.latency | latency | microseconds |\n\n",integration_type:"collector",id:"go.d.plugin-powerdns-PowerDNS_Authoritative_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/powerdns/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-powerdns_recursor",plugin_name:"go.d.plugin",module_name:"powerdns_recursor",monitored_instance:{name:"PowerDNS Recursor",link:"https://doc.powerdns.com/recursor/",icon_filename:"powerdns.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["powerdns","dns"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# PowerDNS Recursor\n\nPlugin: go.d.plugin\nModule: powerdns_recursor\n\n## Overview\n\nThis collector monitors PowerDNS Recursor instances.\n\nIt collects metrics from [the internal webserver](https://doc.powerdns.com/recursor/http-api/index.html#built-in-webserver-and-http-api).\n\nUsed endpoints:\n\n- [`/api/v1/servers/localhost/statistics`](https://doc.powerdns.com/recursor/common/api/endpoint-statistics.html)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable webserver\n\nFollow [webserver](https://doc.powerdns.com/recursor/http-api/index.html#webserver) documentation.\n\n\n#### Enable HTTP API\n\nFollow [HTTP API](https://doc.powerdns.com/recursor/http-api/index.html#enabling-the-api) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/powerdns_recursor.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/powerdns_recursor.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8081 | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n username: admin\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n - name: remote\n url: http://203.0.113.0:8081\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `powerdns_recursor` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m powerdns_recursor\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PowerDNS Recursor instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| powerdns_recursor.questions_in | total, tcp, ipv6 | questions/s |\n| powerdns_recursor.questions_out | udp, tcp, ipv6, throttled | questions/s |\n| powerdns_recursor.answer_time | 0-1ms, 1-10ms, 10-100ms, 100-1000ms, slow | queries/s |\n| powerdns_recursor.timeouts | total, ipv4, ipv6 | timeouts/s |\n| powerdns_recursor.drops | over-capacity-drops, query-pipe-full-drops, too-old-drops, truncated-drops, empty-queries | drops/s |\n| powerdns_recursor.cache_usage | cache-hits, cache-misses, packet-cache-hits, packet-cache-misses | events/s |\n| powerdns_recursor.cache_size | cache, packet-cache, negative-cache | entries |\n\n",integration_type:"collector",id:"go.d.plugin-powerdns_recursor-PowerDNS_Recursor",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/powerdns_recursor/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-4d_server",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"4D Server",link:"https://github.com/ThomasMaul/Prometheus_4D_Exporter",icon_filename:"4d_server.png",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# 4D Server\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor 4D Server performance metrics for efficient application management and optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [4D Server exporter](https://github.com/ThomasMaul/Prometheus_4D_Exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [4D Server exporter](https://github.com/ThomasMaul/Prometheus_4D_Exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-4D_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-8430ft-modem",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"8430FT modem",link:"https://github.com/dernasherbrezon/8430ft_exporter",icon_filename:"mtc.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# 8430FT modem\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep track of vital metrics from the MTS 8430FT modem for streamlined network performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [8430FT Exporter](https://github.com/dernasherbrezon/8430ft_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [8430FT Exporter](https://github.com/dernasherbrezon/8430ft_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-8430FT_modem",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-a10-acos",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"A10 ACOS network devices",link:"https://github.com/a10networks/PrometheusExporter",icon_filename:"a10-networks.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# A10 ACOS network devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor A10 Networks device metrics for comprehensive management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [A10-Networks Prometheus Exporter](https://github.com/a10networks/PrometheusExporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [A10-Networks Prometheus Exporter](https://github.com/a10networks/PrometheusExporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-A10_ACOS_network_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-amd_smi",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AMD CPU & GPU",link:"https://github.com/amd/amd_smi_exporter",icon_filename:"amd.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AMD CPU & GPU\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor AMD System Management Interface performance for optimized hardware management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AMD SMI Exporter](https://github.com/amd/amd_smi_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AMD SMI Exporter](https://github.com/amd/amd_smi_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AMD_CPU_&_GPU",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-apicast",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"APIcast",link:"https://github.com/3scale/apicast",icon_filename:"apicast.png",categories:["data-collection.web-servers-and-web-proxies"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# APIcast\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor APIcast performance metrics to optimize API gateway operations and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [APIcast](https://github.com/3scale/apicast).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [APIcast](https://github.com/3scale/apicast) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-APIcast",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-arm_hwcpipe",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ARM HWCPipe",link:"https://github.com/ylz-at/arm-hwcpipe-exporter",icon_filename:"arm.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ARM HWCPipe\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep track of ARM running Android devices and get metrics for efficient performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ARM HWCPipe Exporter](https://github.com/ylz-at/arm-hwcpipe-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ARM HWCPipe Exporter](https://github.com/ylz-at/arm-hwcpipe-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ARM_HWCPipe",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_ec2",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS EC2 Compute instances",link:"https://github.com/O1ahmad/aws_ec2_exporter",icon_filename:"aws-ec2.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS EC2 Compute instances\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack AWS EC2 instances key metrics for optimized performance and cost management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS EC2 Exporter](https://github.com/O1ahmad/aws_ec2_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS EC2 Exporter](https://github.com/O1ahmad/aws_ec2_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_EC2_Compute_instances",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_ec2_spot",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS EC2 Spot Instance",link:"https://github.com/patcadelina/ec2-spot-exporter",icon_filename:"aws-ec2.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS EC2 Spot Instance\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor AWS EC2 Spot instances'' performance metrics for efficient resource allocation and cost optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS EC2 Spot Exporter](https://github.com/patcadelina/ec2-spot-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS EC2 Spot Exporter](https://github.com/patcadelina/ec2-spot-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_EC2_Spot_Instance",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_ecs",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS ECS",link:"https://github.com/bevers222/ecs-exporter",icon_filename:"amazon-ecs.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS ECS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on AWS ECS services and resources for optimized container management and orchestration.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS ECS exporter](https://github.com/bevers222/ecs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS ECS exporter](https://github.com/bevers222/ecs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_ECS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_health",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS Health events",link:"https://github.com/vladvasiliu/aws-health-exporter-rs",icon_filename:"aws.svg",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS Health events\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack AWS service health metrics for proactive incident management and resolution.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS Health Exporter](https://github.com/vladvasiliu/aws-health-exporter-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS Health Exporter](https://github.com/vladvasiliu/aws-health-exporter-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_Health_events",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_quota",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS Quota",link:"https://github.com/emylincon/aws_quota_exporter",icon_filename:"aws.svg",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS Quota\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor AWS service quotas for effective resource usage and cost management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [aws_quota_exporter](https://github.com/emylincon/aws_quota_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [aws_quota_exporter](https://github.com/emylincon/aws_quota_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_Quota",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_rds",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS RDS",link:"https://github.com/percona/rds_exporter",icon_filename:"aws-rds.svg",categories:["data-collection.database-servers"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS RDS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Amazon RDS (Relational Database Service) metrics for efficient cloud database management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [rds_exporter](https://github.com/percona/rds_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [rds_exporter](https://github.com/percona/rds_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_RDS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_s3",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS S3 buckets",link:"https://github.com/ribbybibby/s3_exporter",icon_filename:"aws-s3.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS S3 buckets\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor AWS S3 storage metrics for optimized performance, data management, and cost efficiency.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS S3 Exporter](https://github.com/ribbybibby/s3_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS S3 Exporter](https://github.com/ribbybibby/s3_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_S3_buckets",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_sqs",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS SQS",link:"https://github.com/jmal98/sqs-exporter",icon_filename:"aws-sqs.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS SQS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack AWS SQS messaging metrics for efficient message processing and queue management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS SQS Exporter](https://github.com/jmal98/sqs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS SQS Exporter](https://github.com/jmal98/sqs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_SQS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_instance_health",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AWS instance health",link:"https://github.com/bobtfish/aws-instance-health-exporter",icon_filename:"aws.svg",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","aws services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AWS instance health\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor the health of AWS instances for improved performance and availability.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS instance health exporter](https://github.com/bobtfish/aws-instance-health-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS instance health exporter](https://github.com/bobtfish/aws-instance-health-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AWS_instance_health",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-airthings_waveplus",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Airthings Waveplus air sensor",link:"https://github.com/jeremybz/waveplus_exporter",icon_filename:"airthings.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Airthings Waveplus air sensor\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Waveplus radon sensor metrics for efficient indoor air quality monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Waveplus Radon Sensor Exporter](https://github.com/jeremybz/waveplus_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Waveplus Radon Sensor Exporter](https://github.com/jeremybz/waveplus_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Airthings_Waveplus_air_sensor",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-akami_edgedns",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Akamai Edge DNS Traffic",link:"https://github.com/akamai/akamai-edgedns-traffic-exporter",icon_filename:"akamai.svg",categories:["data-collection.dns-and-dhcp-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Akamai Edge DNS Traffic\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack and analyze Akamai Edge DNS traffic for enhanced performance and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Akamai Edge DNS Traffic Exporter](https://github.com/akamai/akamai-edgedns-traffic-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Akamai Edge DNS Traffic Exporter](https://github.com/akamai/akamai-edgedns-traffic-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Akamai_Edge_DNS_Traffic",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-akami_gtm",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Akamai Global Traffic Management",link:"https://github.com/akamai/akamai-gtm-metrics-exporter",icon_filename:"akamai.svg",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Akamai Global Traffic Management\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor vital metrics of Akamai Global Traffic Management (GTM) for optimized load balancing and failover.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Akamai Global Traffic Management Metrics Exporter](https://github.com/akamai/akamai-gtm-metrics-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Akamai Global Traffic Management Metrics Exporter](https://github.com/akamai/akamai-gtm-metrics-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Akamai_Global_Traffic_Management",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-akami_cloudmonitor",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Akami Cloudmonitor",link:"https://github.com/ExpressenAB/cloudmonitor_exporter",icon_filename:"akamai.svg",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Akami Cloudmonitor\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Akamai cloudmonitor provider metrics for comprehensive cloud performance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloudmonitor exporter](https://github.com/ExpressenAB/cloudmonitor_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloudmonitor exporter](https://github.com/ExpressenAB/cloudmonitor_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Akami_Cloudmonitor",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-alamos_fe2",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Alamos FE2 server",link:"https://github.com/codemonauts/prometheus-fe2-exporter",icon_filename:"alamos_fe2.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Alamos FE2 server\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Alamos FE2 systems for improved performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Alamos FE2 Exporter](https://github.com/codemonauts/prometheus-fe2-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Alamos FE2 Exporter](https://github.com/codemonauts/prometheus-fe2-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Alamos_FE2_server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-alibaba-cloud",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Alibaba Cloud",link:"https://github.com/aylei/aliyun-exporter",icon_filename:"alibaba-cloud.svg",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Alibaba Cloud\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Alibaba Cloud services and resources for efficient management and cost optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Alibaba Cloud Exporter](https://github.com/aylei/aliyun-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Alibaba Cloud Exporter](https://github.com/aylei/aliyun-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Alibaba_Cloud",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-altaro_backup",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Altaro Backup",link:"https://github.com/raph2i/altaro_backup_exporter",icon_filename:"altaro.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Altaro Backup\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Altaro Backup performance metrics to ensure smooth data protection and recovery operations.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Altaro Backup Exporter](https://github.com/raph2i/altaro_backup_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Altaro Backup Exporter](https://github.com/raph2i/altaro_backup_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Altaro_Backup",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aaisp",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Andrews & Arnold line status",link:"https://github.com/daveio/aaisp-exporter",icon_filename:"andrewsarnold.jpg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Andrews & Arnold line status\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Andrews & Arnold Ltd (AAISP) metrics for improved network performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Andrews & Arnold line status exporter](https://github.com/daveio/aaisp-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Andrews & Arnold line status exporter](https://github.com/daveio/aaisp-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Andrews_&_Arnold_line_status",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-airflow",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Apache Airflow",link:"https://github.com/shalb/airflow-exporter",icon_filename:"airflow.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Apache Airflow\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Apache Airflow metrics to optimize task scheduling and workflow management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Airflow exporter](https://github.com/shalb/airflow-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Airflow exporter](https://github.com/shalb/airflow-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Apache_Airflow",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-flink",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Apache Flink",link:"https://github.com/matsumana/flink_exporter",icon_filename:"apache_flink.png",categories:["data-collection.apm"]},keywords:["web server","http","https"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Apache Flink\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Apache Flink metrics for efficient stream processing and application management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Apache Flink Metrics Reporter](https://github.com/matsumana/flink_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Apache Flink Metrics Reporter](https://github.com/matsumana/flink_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Apache_Flink",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-apple_timemachine",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Apple Time Machine",link:"https://github.com/znerol/prometheus-timemachine-exporter",icon_filename:"apple.svg",categories:["data-collection.macos-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Apple Time Machine\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Apple Time Machine backup metrics for efficient data protection and recovery.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Apple Time Machine Exporter](https://github.com/znerol/prometheus-timemachine-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Apple Time Machine Exporter](https://github.com/znerol/prometheus-timemachine-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Apple_Time_Machine",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aruba",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Aruba devices",link:"https://github.com/slashdoom/aruba_exporter",icon_filename:"aruba.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:["network monitoring","network performance","aruba devices"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Aruba devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Aruba Networks devices performance metrics for comprehensive network management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Aruba Exporter](https://github.com/slashdoom/aruba_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Aruba Exporter](https://github.com/slashdoom/aruba_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Aruba_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-arvancloud_cdn",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ArvanCloud CDN",link:"https://github.com/arvancloud/ar-prometheus-exporter",icon_filename:"arvancloud.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ArvanCloud CDN\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack and analyze ArvanCloud CDN and cloud services performance metrics for optimized delivery and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ArvanCloud exporter](https://github.com/arvancloud/ar-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ArvanCloud exporter](https://github.com/arvancloud/ar-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ArvanCloud_CDN",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-audisto",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Audisto",link:"https://github.com/ZeitOnline/audisto_exporter",icon_filename:"audisto.svg",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Audisto\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Audisto SEO and website metrics for improved search performance and optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Audisto exporter](https://github.com/ZeitOnline/audisto_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Audisto exporter](https://github.com/ZeitOnline/audisto_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Audisto",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-authlog",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"AuthLog",link:"https://github.com/woblerr/authlog_exporter",icon_filename:"linux.png",categories:["data-collection.logs-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# AuthLog\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor authentication logs for security insights and efficient access management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AuthLog Exporter](https://github.com/woblerr/authlog_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AuthLog Exporter](https://github.com/woblerr/authlog_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-AuthLog",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-azure_ad_app_passwords",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Azure AD App passwords",link:"https://github.com/vladvasiliu/azure-app-secrets-monitor",icon_filename:"azure.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","azure services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Azure AD App passwords\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nSafeguard and track Azure App secrets for enhanced security and access management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure App Secrets monitor](https://github.com/vladvasiliu/azure-app-secrets-monitor).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure App Secrets monitor](https://github.com/vladvasiliu/azure-app-secrets-monitor) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Azure_AD_App_passwords",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-azure_elastic_sql",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Azure Elastic Pool SQL",link:"https://github.com/benclapp/azure_elastic_sql_exporter",icon_filename:"azure-elastic-sql.png",categories:["data-collection.cloud-provider-managed"]},keywords:["database","relational db","data querying"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Azure Elastic Pool SQL\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Azure Elastic SQL performance metrics for efficient database management and query optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Elastic SQL Exporter](https://github.com/benclapp/azure_elastic_sql_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Elastic SQL Exporter](https://github.com/benclapp/azure_elastic_sql_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Azure_Elastic_Pool_SQL",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-azure_res",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Azure Resources",link:"https://github.com/FXinnovation/azure-resources-exporter",icon_filename:"azure.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","azure services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Azure Resources\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Azure resources vital metrics for efficient cloud management and cost optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Resources Exporter](https://github.com/FXinnovation/azure-resources-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Resources Exporter](https://github.com/FXinnovation/azure-resources-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Azure_Resources",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-azure_sql",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Azure SQL",link:"https://github.com/iamseth/azure_sql_exporter",icon_filename:"azure-sql.png",categories:["data-collection.cloud-provider-managed"]},keywords:["database","relational db","data querying"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Azure SQL\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Azure SQL performance metrics for efficient database management and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure SQL exporter](https://github.com/iamseth/azure_sql_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure SQL exporter](https://github.com/iamseth/azure_sql_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Azure_SQL",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-azure_service_bus",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Azure Service Bus",link:"https://github.com/marcinbudny/servicebus_exporter",icon_filename:"azure-service-bus.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","azure services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Azure Service Bus\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Azure Service Bus messaging metrics for optimized communication and integration.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Service Bus Exporter](https://github.com/marcinbudny/servicebus_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Service Bus Exporter](https://github.com/marcinbudny/servicebus_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Azure_Service_Bus",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-azure_app",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Azure application",link:"https://github.com/RobustPerception/azure_metrics_exporter",icon_filename:"azure.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","azure services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Azure application\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Azure Monitor metrics for comprehensive resource management and performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Monitor exporter](https://github.com/RobustPerception/azure_metrics_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Monitor exporter](https://github.com/RobustPerception/azure_metrics_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Azure_application",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-bosh",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"BOSH",link:"https://github.com/bosh-prometheus/bosh_exporter",icon_filename:"bosh.png",categories:["data-collection.provisioning-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# BOSH\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on BOSH deployment metrics for improved cloud orchestration and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [BOSH exporter](https://github.com/bosh-prometheus/bosh_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [BOSH exporter](https://github.com/bosh-prometheus/bosh_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-BOSH",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-bigquery",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"BigQuery",link:"https://github.com/m-lab/prometheus-bigquery-exporter",icon_filename:"bigquery.png",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# BigQuery\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Google BigQuery metrics for optimized data processing and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [BigQuery Exporter](https://github.com/m-lab/prometheus-bigquery-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [BigQuery Exporter](https://github.com/m-lab/prometheus-bigquery-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-BigQuery",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-bird",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Bird Routing Daemon",link:"https://github.com/czerwonk/bird_exporter",icon_filename:"bird.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Bird Routing Daemon\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Bird Routing Daemon metrics for optimized network routing and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Bird Routing Daemon Exporter](https://github.com/czerwonk/bird_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Bird Routing Daemon Exporter](https://github.com/czerwonk/bird_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Bird_Routing_Daemon",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-blackbox",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Blackbox",link:"https://github.com/prometheus/blackbox_exporter",icon_filename:"prometheus.svg",categories:["data-collection.synthetic-checks"]},keywords:["blackbox"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Blackbox\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack external service availability and response times with Blackbox monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Blackbox exporter](https://github.com/prometheus/blackbox_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Blackbox exporter](https://github.com/prometheus/blackbox_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Blackbox",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-bobcat",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Bobcat Miner 300",link:"https://github.com/pperzyna/bobcat_exporter",icon_filename:"bobcat.jpg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Bobcat Miner 300\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Bobcat equipment metrics for optimized performance and maintenance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Bobcat Exporter](https://github.com/pperzyna/bobcat_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Bobcat Exporter](https://github.com/pperzyna/bobcat_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Bobcat_Miner_300",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-borg",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Borg backup",link:"https://github.com/k0ral/borg-exporter",icon_filename:"borg.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Borg backup\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Borg backup performance metrics for efficient data protection and recovery.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Borg backup exporter](https://github.com/k0ral/borg-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Borg backup exporter](https://github.com/k0ral/borg-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Borg_backup",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-bungeecord",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"BungeeCord",link:"https://github.com/weihao/bungeecord-prometheus-exporter",icon_filename:"bungee.png",categories:["data-collection.gaming"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# BungeeCord\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack BungeeCord proxy server metrics for efficient load balancing and performance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [BungeeCord Prometheus Exporter](https://github.com/weihao/bungeecord-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [BungeeCord Prometheus Exporter](https://github.com/weihao/bungeecord-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-BungeeCord",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-csgo",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"CS:GO",link:"https://github.com/kinduff/csgo_exporter",icon_filename:"csgo.svg",categories:["data-collection.gaming"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# CS:GO\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Counter-Strike: Global Offensive server metrics for improved game performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CS:GO Exporter](https://github.com/kinduff/csgo_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CS:GO Exporter](https://github.com/kinduff/csgo_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-CS:GO",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cvmfs",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"CVMFS clients",link:"https://github.com/guilbaults/cvmfs-exporter",icon_filename:"cvmfs.png",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# CVMFS clients\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack CernVM File System metrics for optimized distributed file system performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CVMFS exporter](https://github.com/guilbaults/cvmfs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CVMFS exporter](https://github.com/guilbaults/cvmfs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-CVMFS_clients",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-celery",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Celery",link:"https://github.com/ZeitOnline/celery_redis_prometheus",icon_filename:"celery.png",categories:["data-collection.task-queues"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Celery\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Celery task queue metrics for optimized task processing and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Celery Exporter](https://github.com/ZeitOnline/celery_redis_prometheus).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Celery Exporter](https://github.com/ZeitOnline/celery_redis_prometheus) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Celery",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-certificate_transparency",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Certificate Transparency",link:"https://github.com/Hsn723/ct-exporter",icon_filename:"ct.png",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Certificate Transparency\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack certificate transparency log metrics for enhanced\nSSL/TLS certificate management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ct-exporter](https://github.com/Hsn723/ct-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ct-exporter](https://github.com/Hsn723/ct-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Certificate_Transparency",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-checkpoint",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Checkpoint device",link:"https://github.com/RespiroConsulting/CheckPointExporter",icon_filename:"checkpoint.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Checkpoint device\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Check Point firewall and security metrics for enhanced network protection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Checkpoint exporter](https://github.com/RespiroConsulting/CheckPointExporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Checkpoint exporter](https://github.com/RespiroConsulting/CheckPointExporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Checkpoint_device",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-chia",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Chia",link:"https://github.com/chia-network/chia-exporter",icon_filename:"chia.png",categories:["data-collection.blockchain-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Chia\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Chia blockchain metrics for optimized farming and resource allocation.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Chia Exporter](https://github.com/chia-network/chia-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Chia Exporter](https://github.com/chia-network/chia-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Chia",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-clm5ip",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Christ Elektronik CLM5IP power panel",link:"https://github.com/christmann/clm5ip_exporter/",icon_filename:"christelec.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Christ Elektronik CLM5IP power panel\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Christ Elektronik CLM5IP device metrics for efficient performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Christ Elektronik CLM5IP Exporter](https://github.com/christmann/clm5ip_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Christ Elektronik CLM5IP Exporter](https://github.com/christmann/clm5ip_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Christ_Elektronik_CLM5IP_power_panel",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cilium_agent",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cilium Agent",link:"https://github.com/cilium/cilium",icon_filename:"cilium.png",categories:["data-collection.kubernetes"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cilium Agent\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Cilium Agent metrics for optimized network security and connectivity.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cilium Agent](https://github.com/cilium/cilium).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cilium Agent](https://github.com/cilium/cilium) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cilium_Agent",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cilium_operator",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cilium Operator",link:"https://github.com/cilium/cilium",icon_filename:"cilium.png",categories:["data-collection.kubernetes"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cilium Operator\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Cilium Operator metrics for efficient Kubernetes network security management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cilium Operator](https://github.com/cilium/cilium).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cilium Operator](https://github.com/cilium/cilium) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cilium_Operator",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cilium_proxy",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cilium Proxy",link:"https://github.com/cilium/proxy",icon_filename:"cilium.png",categories:["data-collection.kubernetes"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cilium Proxy\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Cilium Proxy metrics for enhanced network security and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cilium Proxy](https://github.com/cilium/proxy).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cilium Proxy](https://github.com/cilium/proxy) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cilium_Proxy",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cisco_aci",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cisco ACI",link:"https://github.com/RavuAlHemio/prometheus_aci_exporter",icon_filename:"cisco.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:["network monitoring","network performance","cisco devices"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cisco ACI\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Cisco ACI infrastructure metrics for optimized network performance and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cisco ACI Exporter](https://github.com/RavuAlHemio/prometheus_aci_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cisco ACI Exporter](https://github.com/RavuAlHemio/prometheus_aci_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cisco_ACI",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-citrix_netscaler",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Citrix NetScaler",link:"https://github.com/rokett/Citrix-NetScaler-Exporter",icon_filename:"citrix.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Citrix NetScaler\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on NetScaler performance metrics for efficient application delivery and load balancing.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Citrix NetScaler Exporter](https://github.com/rokett/Citrix-NetScaler-Exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Citrix NetScaler Exporter](https://github.com/rokett/Citrix-NetScaler-Exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Citrix_NetScaler",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-clamd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ClamAV daemon",link:"https://github.com/sergeymakinen/clamav_exporter",icon_filename:"clamav.png",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ClamAV daemon\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack ClamAV antivirus metrics for enhanced threat detection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ClamAV daemon stats exporter](https://github.com/sergeymakinen/clamav_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ClamAV daemon stats exporter](https://github.com/sergeymakinen/clamav_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ClamAV_daemon",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-clamscan",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Clamscan results",link:"https://github.com/FortnoxAB/clamscan-exporter",icon_filename:"clamav.png",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Clamscan results\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor ClamAV scanning performance metrics for efficient malware detection and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [clamscan-exporter](https://github.com/FortnoxAB/clamscan-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [clamscan-exporter](https://github.com/FortnoxAB/clamscan-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Clamscan_results",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-clash",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Clash",link:"https://github.com/elonzh/clash_exporter",icon_filename:"clash.png",categories:["data-collection.web-servers-and-web-proxies"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Clash\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Clash proxy server metrics for optimized network performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Clash exporter](https://github.com/elonzh/clash_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Clash exporter](https://github.com/elonzh/clash_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Clash",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-clickhouse",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ClickHouse",link:"https://github.com/ClickHouse/ClickHouse",icon_filename:"clickhouse.svg",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ClickHouse\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor ClickHouse database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to the ClickHouse built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#server_configuration_parameters-prometheus).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ClickHouse",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-aws_cloudwatch",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"CloudWatch",link:"https://github.com/prometheus/cloudwatch_exporter",icon_filename:"aws-cloudwatch.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# CloudWatch\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor AWS CloudWatch metrics for comprehensive AWS resource management and performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CloudWatch exporter](https://github.com/prometheus/cloudwatch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CloudWatch exporter](https://github.com/prometheus/cloudwatch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-CloudWatch",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cloud_foundry",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cloud Foundry",link:"https://github.com/bosh-prometheus/cf_exporter",icon_filename:"cloud-foundry.svg",categories:["data-collection.provisioning-systems"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cloud Foundry\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Cloud Foundry platform metrics for optimized application deployment and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloud Foundry exporter](https://github.com/bosh-prometheus/cf_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloud Foundry exporter](https://github.com/bosh-prometheus/cf_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cloud_Foundry",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cloud_foundry_firebase",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cloud Foundry Firehose",link:"https://github.com/bosh-prometheus/firehose_exporter",icon_filename:"cloud-foundry.svg",categories:["data-collection.provisioning-systems"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cloud Foundry Firehose\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Cloud Foundry Firehose metrics for comprehensive platform diagnostics and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloud Foundry Firehose exporter](https://github.com/bosh-prometheus/firehose_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloud Foundry Firehose exporter](https://github.com/bosh-prometheus/firehose_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cloud_Foundry_Firehose",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cloudflare_pcap",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cloudflare PCAP",link:"https://github.com/wehkamp/docker-prometheus-cloudflare-exporter",icon_filename:"cloudflare.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cloudflare PCAP\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Cloudflare CDN and security metrics for optimized content delivery and protection.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloudflare exporter](https://github.com/wehkamp/docker-prometheus-cloudflare-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloudflare exporter](https://github.com/wehkamp/docker-prometheus-cloudflare-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cloudflare_PCAP",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cmon",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ClusterControl CMON",link:"https://github.com/severalnines/cmon_exporter",icon_filename:"cluster-control.svg",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ClusterControl CMON\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack CMON metrics for Severalnines Cluster Control for efficient monitoring and management of database operations.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CMON Exporter](https://github.com/severalnines/cmon_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CMON Exporter](https://github.com/severalnines/cmon_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ClusterControl_CMON",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-collectd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Collectd",link:"https://github.com/prometheus/collectd_exporter",icon_filename:"collectd.png",categories:["data-collection.observability"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Collectd\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor system and application metrics with Collectd for comprehensive performance analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Collectd exporter](https://github.com/prometheus/collectd_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Collectd exporter](https://github.com/prometheus/collectd_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Collectd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-concourse",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Concourse",link:"https://concourse-ci.org",icon_filename:"concourse.png",categories:["data-collection.ci-cd-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Concourse\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Concourse CI/CD pipeline metrics for optimized workflow management and deployment.\n\n\nMetrics are gathered by periodically sending HTTP requests to the Concourse built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://concourse-ci.org/metrics.html#configuring-metrics).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Concourse",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ftbeerpi",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"CraftBeerPi",link:"https://github.com/jo-hannes/craftbeerpi_exporter",icon_filename:"craftbeer.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# CraftBeerPi\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on CraftBeerPi homebrewing metrics for optimized brewing process management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CraftBeerPi exporter](https://github.com/jo-hannes/craftbeerpi_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CraftBeerPi exporter](https://github.com/jo-hannes/craftbeerpi_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-CraftBeerPi",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-crowdsec",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Crowdsec",link:"https://docs.crowdsec.net/docs/observability/prometheus",icon_filename:"crowdsec.png",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Crowdsec\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Crowdsec security metrics for efficient threat detection and response.\n\n\nMetrics are gathered by periodically sending HTTP requests to the Crowdsec build-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://docs.crowdsec.net/docs/observability/prometheus/).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Crowdsec",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-crypto",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Crypto exchanges",link:"https://github.com/ix-ai/crypto-exporter",icon_filename:"crypto.png",categories:["data-collection.blockchain-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Crypto exchanges\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack cryptocurrency market metrics for informed investment and trading decisions.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Crypto exporter](https://github.com/ix-ai/crypto-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Crypto exporter](https://github.com/ix-ai/crypto-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Crypto_exchanges",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cryptowatch",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Cryptowatch",link:"https://github.com/nbarrientos/cryptowat_exporter",icon_filename:"cryptowatch.png",categories:["data-collection.blockchain-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Cryptowatch\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Cryptowatch market data metrics for comprehensive cryptocurrency market analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cryptowat Exporter](https://github.com/nbarrientos/cryptowat_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cryptowat Exporter](https://github.com/nbarrientos/cryptowat_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Cryptowatch",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-custom",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Custom Exporter",link:"https://github.com/orange-cloudfoundry/custom_exporter",icon_filename:"customdata.png",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Custom Exporter\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nCreate and monitor custom metrics tailored to your specific use case and requirements.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Custom Exporter](https://github.com/orange-cloudfoundry/custom_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Custom Exporter](https://github.com/orange-cloudfoundry/custom_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Custom_Exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ddwrt",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"DDWRT Routers",link:"https://github.com/camelusferus/ddwrt_collector",icon_filename:"ddwrt.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# DDWRT Routers\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on DD-WRT router metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ddwrt-collector](https://github.com/camelusferus/ddwrt_collector).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ddwrt-collector](https://github.com/camelusferus/ddwrt_collector) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-DDWRT_Routers",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dmarc",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"DMARC",link:"https://github.com/jgosmann/dmarc-metrics-exporter",icon_filename:"dmarc.png",categories:["data-collection.mail-servers"]},keywords:["email authentication","policy","reporting"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# DMARC\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack DMARC email authentication metrics for improved email security and deliverability.\n\n\nMetrics are gathered by periodically sending HTTP requests to [dmarc-metrics-exporter](https://github.com/jgosmann/dmarc-metrics-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [dmarc-metrics-exporter](https://github.com/jgosmann/dmarc-metrics-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-DMARC",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dnsbl",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"DNSBL",link:"https://github.com/Luzilla/dnsbl_exporter/",icon_filename:"dnsbl.png",categories:["data-collection.dns-and-dhcp-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# DNSBL\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor DNSBL metrics for efficient domain reputation and security management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [dnsbl-exporter](https://github.com/Luzilla/dnsbl_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [dnsbl-exporter](https://github.com/Luzilla/dnsbl_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-DNSBL",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dell_emc_ecs",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Dell EMC ECS cluster",link:"https://github.com/paychex/prometheus-emcecs-exporter",icon_filename:"dell.svg",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Dell EMC ECS cluster\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Dell EMC ECS object storage metrics for optimized storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dell EMC ECS Exporter](https://github.com/paychex/prometheus-emcecs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dell EMC ECS Exporter](https://github.com/paychex/prometheus-emcecs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Dell_EMC_ECS_cluster",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dell_emc_isilon",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Dell EMC Isilon cluster",link:"https://github.com/paychex/prometheus-isilon-exporter",icon_filename:"dell.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Dell EMC Isilon cluster\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Dell EMC Isilon scale-out NAS metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dell EMC Isilon Exporter](https://github.com/paychex/prometheus-isilon-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dell EMC Isilon Exporter](https://github.com/paychex/prometheus-isilon-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Dell_EMC_Isilon_cluster",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dell_emc_xtremio",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Dell EMC XtremIO cluster",link:"https://github.com/cthiel42/prometheus-xtremio-exporter",icon_filename:"dell.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Dell EMC XtremIO cluster\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Dell/EMC XtremIO storage metrics for optimized data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dell/EMC XtremIO Exporter](https://github.com/cthiel42/prometheus-xtremio-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dell/EMC XtremIO Exporter](https://github.com/cthiel42/prometheus-xtremio-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Dell_EMC_XtremIO_cluster",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dell_powermax",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Dell PowerMax",link:"https://github.com/kckecheng/powermax_exporter",icon_filename:"powermax.png",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Dell PowerMax\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Dell EMC PowerMax storage array metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [PowerMax Exporter](https://github.com/kckecheng/powermax_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [PowerMax Exporter](https://github.com/kckecheng/powermax_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Dell_PowerMax",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dependency_track",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Dependency-Track",link:"https://github.com/jetstack/dependency-track-exporter",icon_filename:"dependency-track.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Dependency-Track\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Dependency-Track metrics for efficient vulnerability management and software supply chain analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dependency-Track Exporter](https://github.com/jetstack/dependency-track-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dependency-Track Exporter](https://github.com/jetstack/dependency-track-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Dependency-Track",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-digitalocean",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"DigitalOcean",link:"https://github.com/metalmatze/digitalocean_exporter",icon_filename:"digitalocean.svg",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# DigitalOcean\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack DigitalOcean cloud provider metrics for optimized resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [DigitalOcean Exporter](https://github.com/metalmatze/digitalocean_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [DigitalOcean Exporter](https://github.com/metalmatze/digitalocean_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-DigitalOcean",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-discourse",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Discourse",link:"https://github.com/discourse/discourse-prometheus",icon_filename:"discourse.svg",categories:["data-collection.media-streaming-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Discourse\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Discourse forum metrics for efficient community management and engagement.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Discourse Exporter](https://github.com/discourse/discourse-prometheus).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Discourse Exporter](https://github.com/discourse/discourse-prometheus) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Discourse",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dutch_electricity_smart_meter",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Dutch Electricity Smart Meter",link:"https://github.com/TobiasDeBruijn/prometheus-p1-exporter",icon_filename:"dutch-electricity.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Dutch Electricity Smart Meter\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Dutch smart meter P1 port metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [P1Exporter - Dutch Electricity Smart Meter Exporter](https://github.com/TobiasDeBruijn/prometheus-p1-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [P1Exporter - Dutch Electricity Smart Meter Exporter](https://github.com/TobiasDeBruijn/prometheus-p1-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Dutch_Electricity_Smart_Meter",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-dynatrace",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Dynatrace",link:"https://github.com/Apside-TOP/dynatrace_exporter",icon_filename:"dynatrace.svg",categories:["data-collection.observability"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Dynatrace\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Dynatrace APM metrics for comprehensive application performance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dynatrace Exporter](https://github.com/Apside-TOP/dynatrace_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dynatrace Exporter](https://github.com/Apside-TOP/dynatrace_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Dynatrace",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-eos_web",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"EOS",link:"https://eos-web.web.cern.ch/eos-web/",icon_filename:"eos.png",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# EOS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor CERN EOS metrics for efficient storage management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [EOS exporter](https://github.com/cern-eos/eos_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [EOS exporter](https://github.com/cern-eos/eos_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-EOS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-eaton_ups",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Eaton UPS",link:"https://github.com/psyinfra/prometheus-eaton-ups-exporter",icon_filename:"eaton.svg",categories:["data-collection.ups"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Eaton UPS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Eaton uninterruptible power supply (UPS) metrics for efficient power management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Prometheus Eaton UPS Exporter](https://github.com/psyinfra/prometheus-eaton-ups-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Prometheus Eaton UPS Exporter](https://github.com/psyinfra/prometheus-eaton-ups-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Eaton_UPS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-elgato_keylight",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Elgato Key Light devices.",link:"https://github.com/mdlayher/keylight_exporter",icon_filename:"elgato.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Elgato Key Light devices.\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Elgato Key Light metrics for optimized lighting control and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Elgato Key Light exporter](https://github.com/mdlayher/keylight_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Elgato Key Light exporter](https://github.com/mdlayher/keylight_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Elgato_Key_Light_devices.",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-energomera",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Energomera smart power meters",link:"https://github.com/peak-load/energomera_exporter",icon_filename:"energomera.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Energomera smart power meters\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Energomera electricity meter metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Energomera electricity meter exporter](https://github.com/peak-load/energomera_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [energomera-exporter Energomera electricity meter exporter](https://github.com/peak-load/energomera_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Energomera_smart_power_meters",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-excel",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Excel spreadsheet",link:"https://github.com/MarcusCalidus/excel-exporter",icon_filename:"excel.png",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Excel spreadsheet\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nExport Prometheus metrics to Excel for versatile data analysis and reporting.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Excel Exporter](https://github.com/MarcusCalidus/excel-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Excel Exporter](https://github.com/MarcusCalidus/excel-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Excel_spreadsheet",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-frrouting",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"FRRouting",link:"https://github.com/tynany/frr_exporter",icon_filename:"frrouting.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# FRRouting\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Free Range Routing (FRR) metrics for optimized network routing and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [FRRouting Exporter](https://github.com/tynany/frr_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [FRRouting Exporter](https://github.com/tynany/frr_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-FRRouting",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-fastd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Fastd",link:"https://github.com/freifunk-darmstadt/fastd-exporter",icon_filename:"fastd.png",categories:["data-collection.vpns"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Fastd\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Fastd VPN metrics for efficient virtual private network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Fastd Exporter](https://github.com/freifunk-darmstadt/fastd-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Fastd Exporter](https://github.com/freifunk-darmstadt/fastd-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Fastd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-fortigate",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Fortigate firewall",link:"https://github.com/bluecmd/fortigate_exporter",icon_filename:"fortinet.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Fortigate firewall\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Fortigate firewall metrics for enhanced network protection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [fortigate_exporter](https://github.com/bluecmd/fortigate_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [fortigate_exporter](https://github.com/bluecmd/fortigate_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Fortigate_firewall",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-freebsd_nfs",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"FreeBSD NFS",link:"https://github.com/Axcient/freebsd-nfs-exporter",icon_filename:"freebsd.svg",categories:["data-collection.freebsd"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# FreeBSD NFS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor FreeBSD Network File System metrics for efficient file sharing management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [FreeBSD NFS Exporter](https://github.com/Axcient/freebsd-nfs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [FreeBSD NFS Exporter](https://github.com/Axcient/freebsd-nfs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-FreeBSD_NFS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-freebsd_rctl",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"FreeBSD RCTL-RACCT",link:"https://github.com/yo000/rctl_exporter",icon_filename:"freebsd.svg",categories:["data-collection.freebsd"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# FreeBSD RCTL-RACCT\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on FreeBSD Resource Container metrics for optimized resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [FreeBSD RCTL Exporter](https://github.com/yo000/rctl_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [FreeBSD RCTL Exporter](https://github.com/yo000/rctl_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-FreeBSD_RCTL-RACCT",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-freifunk",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Freifunk network",link:"https://github.com/xperimental/freifunk-exporter",icon_filename:"freifunk.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Freifunk network\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Freifunk community network metrics for optimized network performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Freifunk Exporter](https://github.com/xperimental/freifunk-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Freifunk Exporter](https://github.com/xperimental/freifunk-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Freifunk_network",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-fritzbox",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Fritzbox network devices",link:"https://github.com/pdreker/fritz_exporter",icon_filename:"avm.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Fritzbox network devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack AVM Fritzbox router metrics for efficient home network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Fritzbox exporter](https://github.com/pdreker/fritz_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Fritzbox exporter](https://github.com/pdreker/fritz_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Fritzbox_network_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gcp_gce",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"GCP GCE",link:"https://github.com/O1ahmad/gcp-gce-exporter",icon_filename:"gcp-gce.svg",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# GCP GCE\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Google Cloud Platform Compute Engine metrics for efficient cloud resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GCP GCE Exporter](https://github.com/O1ahmad/gcp-gce-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GCP GCE Exporter](https://github.com/O1ahmad/gcp-gce-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-GCP_GCE",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gcp_quota",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"GCP Quota",link:"https://github.com/mintel/gcp-quota-exporter",icon_filename:"gcp.png",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# GCP Quota\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Google Cloud Platform quota metrics for optimized resource usage and cost management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GCP Quota Exporter](https://github.com/mintel/gcp-quota-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GCP Quota Exporter](https://github.com/mintel/gcp-quota-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-GCP_Quota",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gtp",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"GTP",link:"https://github.com/wmnsk/gtp_exporter",icon_filename:"gtpu.png",categories:["data-collection.telephony-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# GTP\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on GTP (GPRS Tunneling Protocol) metrics for optimized mobile data communication and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GTP Exporter](https://github.com/wmnsk/gtp_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GTP Exporter](https://github.com/wmnsk/gtp_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-GTP",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-generic_cli",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Generic Command Line Output",link:"https://github.com/MarioMartReq/generic-exporter",icon_filename:"cli.svg",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Generic Command Line Output\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack custom command line output metrics for tailored monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Generic Command Line Output Exporter](https://github.com/MarioMartReq/generic-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Generic Command Line Output Exporter](https://github.com/MarioMartReq/generic-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Generic_Command_Line_Output",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-enclosure",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Generic storage enclosure tool",link:"https://github.com/Gandi/jbod-rs",icon_filename:"storage-enclosure.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Generic storage enclosure tool\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor storage enclosure metrics for efficient storage device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [jbod - Generic storage enclosure tool](https://github.com/Gandi/jbod-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [jbod - Generic storage enclosure tool](https://github.com/Gandi/jbod-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Generic_storage_enclosure_tool",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-github_ratelimit",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"GitHub API rate limit",link:"https://github.com/lunarway/github-ratelimit-exporter",icon_filename:"github.svg",categories:["data-collection.other"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# GitHub API rate limit\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor GitHub API rate limit metrics for efficient\nAPI usage and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GitHub API rate limit Exporter](https://github.com/lunarway/github-ratelimit-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GitHub API rate limit Exporter](https://github.com/lunarway/github-ratelimit-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-GitHub_API_rate_limit",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-github_repo",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"GitHub repository",link:"https://github.com/githubexporter/github-exporter",icon_filename:"github.svg",categories:["data-collection.other"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# GitHub repository\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack GitHub repository metrics for optimized project and user analytics monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GitHub Exporter](https://github.com/githubexporter/github-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GitHub Exporter](https://github.com/githubexporter/github-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-GitHub_repository",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gitlab_runner",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"GitLab Runner",link:"https://gitlab.com/gitlab-org/gitlab-runner",icon_filename:"gitlab.png",categories:["data-collection.ci-cd-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# GitLab Runner\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on GitLab CI/CD job metrics for efficient development and deployment management.\n\n\nMetrics are gathered by periodically sending HTTP requests to GitLab built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://docs.gitlab.com/runner/monitoring/#configuration-of-the-metrics-http-server).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-GitLab_Runner",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gobetween",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Gobetween",link:"https://github.com/yyyar/gobetween",icon_filename:"gobetween.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Gobetween\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Gobetween load balancer metrics for optimized network traffic management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to Gobetween built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Gobetween",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gcp",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Google Cloud Platform",link:"https://github.com/DazWilkin/gcp-exporter",icon_filename:"gcp.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Google Cloud Platform\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Google Cloud Platform metrics for comprehensive cloud resource management and performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Google Cloud Platform Exporter](https://github.com/DazWilkin/gcp-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Google Cloud Platform Exporter](https://github.com/DazWilkin/gcp-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Google_Cloud_Platform",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-google_pagespeed",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Google Pagespeed",link:"https://github.com/foomo/pagespeed_exporter",icon_filename:"google.svg",categories:["data-collection.apm"]},keywords:["cloud services","cloud computing","google cloud services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Google Pagespeed\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Google PageSpeed Insights performance metrics for efficient web page optimization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pagespeed exporter](https://github.com/foomo/pagespeed_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pagespeed exporter](https://github.com/foomo/pagespeed_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Google_Pagespeed",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gcp_stackdriver",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Google Stackdriver",link:"https://github.com/prometheus-community/stackdriver_exporter",icon_filename:"gcp-stackdriver.svg",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","google cloud services"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Google Stackdriver\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Google Stackdriver monitoring metrics for optimized cloud performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Google Stackdriver exporter](https://github.com/prometheus-community/stackdriver_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Google Stackdriver exporter](https://github.com/prometheus-community/stackdriver_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Google_Stackdriver",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-grafana",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Grafana",link:"https://grafana.com/",icon_filename:"grafana.png",categories:["data-collection.observability"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Grafana\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Grafana dashboard and visualization metrics for optimized monitoring and data analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to Grafana built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Grafana",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-graylog",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Graylog Server",link:"https://github.com/Graylog2/graylog2-server/",icon_filename:"graylog.svg",categories:["data-collection.logs-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Graylog Server\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Graylog server metrics for efficient log management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to Graylog built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://go2docs.graylog.org/5-0/interacting_with_your_log_data/metrics.html#PrometheusMetricExporting).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Graylog_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hana",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"HANA",link:"https://github.com/jenningsloy318/hana_exporter",icon_filename:"sap.svg",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# HANA\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack SAP HANA database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HANA Exporter](https://github.com/jenningsloy318/hana_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HANA Exporter](https://github.com/jenningsloy318/hana_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-HANA",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hdsentinel",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"HDSentinel",link:"https://github.com/qusielle/hdsentinel-exporter",icon_filename:"harddisk.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# HDSentinel\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Hard Disk Sentinel metrics for efficient storage device health management and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HDSentinel Exporter](https://github.com/qusielle/hdsentinel-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HDSentinel Exporter](https://github.com/qusielle/hdsentinel-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-HDSentinel",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hhvm",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"HHVM",link:"https://github.com/wikimedia/operations-software-hhvm_exporter",icon_filename:"hhvm.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# HHVM\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor HipHop Virtual Machine metrics for efficient\nPHP execution and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HHVM Exporter](https://github.com/wikimedia/operations-software-hhvm_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HHVM Exporter](https://github.com/wikimedia/operations-software-hhvm_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-HHVM",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hp_ilo",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"HP iLO",link:"https://github.com/infinityworks/hpilo-exporter",icon_filename:"hp.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# HP iLO\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor HP Integrated Lights Out (iLO) metrics for efficient server management and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HP iLO Metrics Exporter](https://github.com/infinityworks/hpilo-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HP iLO Metrics Exporter](https://github.com/infinityworks/hpilo-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-HP_iLO",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-halon",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Halon",link:"https://github.com/tobiasbp/halon_exporter",icon_filename:"halon.svg",categories:["data-collection.mail-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Halon\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Halon email security and delivery metrics for optimized email management and protection.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Halon exporter](https://github.com/tobiasbp/halon_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Halon exporter](https://github.com/tobiasbp/halon_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Halon",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hashicorp_vault",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"HashiCorp Vault secrets",link:"https://github.com/tomtom-international/vault-assessment-prometheus-exporter",icon_filename:"vault.svg",categories:["data-collection.authentication-and-authorization"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# HashiCorp Vault secrets\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack HashiCorp Vault security assessment metrics for efficient secrets management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Vault Assessment Prometheus Exporter](https://github.com/tomtom-international/vault-assessment-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Vault Assessment Prometheus Exporter](https://github.com/tomtom-international/vault-assessment-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-HashiCorp_Vault_secrets",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hasura_graphql",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Hasura GraphQL Server",link:"https://github.com/zolamk/hasura-exporter",icon_filename:"hasura.svg",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Hasura GraphQL Server\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Hasura GraphQL engine metrics for optimized\nAPI performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Hasura Exporter](https://github.com/zolamk/hasura-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Hasura Exporter](https://github.com/zolamk/hasura-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Hasura_GraphQL_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-helium_hotspot",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Helium hotspot",link:"https://github.com/tedder/helium_hotspot_exporter",icon_filename:"helium.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Helium hotspot\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Helium hotspot metrics for optimized LoRaWAN network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Helium hotspot exporter](https://github.com/tedder/helium_hotspot_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Helium hotspot exporter](https://github.com/tedder/helium_hotspot_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Helium_hotspot",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-helium_miner",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Helium miner (validator)",link:"https://github.com/tedder/miner_exporter",icon_filename:"helium.svg",categories:["data-collection.blockchain-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Helium miner (validator)\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Helium miner and validator metrics for efficient blockchain performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Helium miner (validator) exporter](https://github.com/tedder/miner_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Helium miner (validator) exporter](https://github.com/tedder/miner_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Helium_miner_(validator)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hitron_cgm",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Hitron CGN series CPE",link:"https://github.com/yrro/hitron-exporter",icon_filename:"hitron.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Hitron CGN series CPE\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Hitron CGNV4 gateway metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Hitron CGNV4 exporter](https://github.com/yrro/hitron-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Hitron CGNV4 exporter](https://github.com/yrro/hitron-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Hitron_CGN_series_CPE",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hitron_coda",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Hitron CODA Cable Modem",link:"https://github.com/hairyhenderson/hitron_coda_exporter",icon_filename:"hitron.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Hitron CODA Cable Modem\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Hitron CODA cable modem metrics for optimized internet connectivity and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Hitron CODA Cable Modem Exporter](https://github.com/hairyhenderson/hitron_coda_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Hitron CODA Cable Modem Exporter](https://github.com/hairyhenderson/hitron_coda_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Hitron_CODA_Cable_Modem",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-homebridge",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Homebridge",link:"https://github.com/lstrojny/homebridge-prometheus-exporter",icon_filename:"homebridge.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Homebridge\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Homebridge smart home metrics for efficient home automation management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Homebridge Prometheus Exporter](https://github.com/lstrojny/homebridge-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Homebridge Prometheus Exporter](https://github.com/lstrojny/homebridge-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Homebridge",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-homey",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Homey",link:"https://github.com/rickardp/homey-prometheus-exporter",icon_filename:"homey.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Homey\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Homey smart home controller metrics for efficient home automation and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Homey Exporter](https://github.com/rickardp/homey-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Homey Exporter](https://github.com/rickardp/homey-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Homey",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-honeypot",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Honeypot",link:"https://github.com/Intrinsec/honeypot_exporter",icon_filename:"intrinsec.svg",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Honeypot\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor honeypot metrics for efficient threat detection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Intrinsec honeypot_exporter](https://github.com/Intrinsec/honeypot_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Intrinsec honeypot_exporter](https://github.com/Intrinsec/honeypot_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Honeypot",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hilink",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Huawei devices",link:"https://github.com/eliecharra/hilink-exporter",icon_filename:"huawei.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Huawei devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Huawei HiLink device metrics for optimized connectivity and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Huawei Hilink exporter](https://github.com/eliecharra/hilink-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Huawei Hilink exporter](https://github.com/eliecharra/hilink-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Huawei_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-hubble",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Hubble",link:"https://github.com/cilium/hubble",icon_filename:"hubble.png",categories:["data-collection.observability"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Hubble\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Hubble network observability metrics for efficient network visibility and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to Hubble built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://docs.cilium.io/en/stable/observability/metrics/#hubble-metrics).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Hubble",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ibm_aix_njmon",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IBM AIX systems Njmon",link:"https://github.com/crooks/njmon_exporter",icon_filename:"ibm.svg",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IBM AIX systems Njmon\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on NJmon system performance monitoring metrics for efficient IT infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NJmon](https://github.com/crooks/njmon_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NJmon](https://github.com/crooks/njmon_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IBM_AIX_systems_Njmon",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ibm_cex",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IBM CryptoExpress (CEX) cards",link:"https://github.com/ibm-s390-cloud/k8s-cex-dev-plugin",icon_filename:"ibm.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IBM CryptoExpress (CEX) cards\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack IBM Z Crypto Express device metrics for optimized cryptographic performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IBM Z CEX Device Plugin Prometheus Exporter](https://github.com/ibm-s390-cloud/k8s-cex-dev-plugin).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IBM Z CEX Device Plugin Prometheus Exporter](https://github.com/ibm-s390-cloud/k8s-cex-dev-plugin) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IBM_CryptoExpress_(CEX)_cards",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ibm_mq",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IBM MQ",link:"https://github.com/agebhar1/mq_exporter",icon_filename:"ibm.svg",categories:["data-collection.message-brokers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IBM MQ\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on IBM MQ message queue metrics for efficient message transport and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MQ Exporter](https://github.com/agebhar1/mq_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MQ Exporter](https://github.com/agebhar1/mq_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IBM_MQ",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ibm_spectrum",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IBM Spectrum",link:"https://github.com/topine/ibm-spectrum-exporter",icon_filename:"ibm.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IBM Spectrum\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor IBM Spectrum storage metrics for efficient data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IBM Spectrum Exporter](https://github.com/topine/ibm-spectrum-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IBM Spectrum Exporter](https://github.com/topine/ibm-spectrum-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IBM_Spectrum",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ibm_spectrum_virtualize",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IBM Spectrum Virtualize",link:"https://github.com/bluecmd/spectrum_virtualize_exporter",icon_filename:"ibm.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IBM Spectrum Virtualize\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor IBM Spectrum Virtualize metrics for efficient storage virtualization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [spectrum_virtualize_exporter](https://github.com/bluecmd/spectrum_virtualize_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [spectrum_virtualize_exporter](https://github.com/bluecmd/spectrum_virtualize_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IBM_Spectrum_Virtualize",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ibm_zhmc",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IBM Z Hardware Management Console",link:"https://github.com/zhmcclient/zhmc-prometheus-exporter",icon_filename:"ibm.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IBM Z Hardware Management Console\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor IBM Z Hardware Management Console metrics for efficient mainframe management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IBM Z HMC Exporter](https://github.com/zhmcclient/zhmc-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IBM Z HMC Exporter](https://github.com/zhmcclient/zhmc-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IBM_Z_Hardware_Management_Console",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-iota",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IOTA full node",link:"https://github.com/crholliday/iota-prom-exporter",icon_filename:"iota.svg",categories:["data-collection.blockchain-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IOTA full node\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on IOTA cryptocurrency network metrics for efficient blockchain performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IOTA Exporter](https://github.com/crholliday/iota-prom-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IOTA Exporter](https://github.com/crholliday/iota-prom-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IOTA_full_node",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ipmi",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"IPMI (By SoundCloud)",link:"https://github.com/prometheus-community/ipmi_exporter",icon_filename:"soundcloud.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# IPMI (By SoundCloud)\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor IPMI metrics externally for efficient server hardware management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SoundCloud IPMI Exporter (querying IPMI externally, blackbox-exporter style)](https://github.com/prometheus-community/ipmi_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SoundCloud IPMI Exporter (querying IPMI externally, blackbox-exporter style)](https://github.com/prometheus-community/ipmi_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-IPMI_(By_SoundCloud)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-influxdb",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"InfluxDB",link:"https://github.com/prometheus/influxdb_exporter",icon_filename:"influxdb.svg",categories:["data-collection.database-servers"]},keywords:["database","dbms","data storage"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# InfluxDB\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor InfluxDB time-series database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [InfluxDB exporter](https://github.com/prometheus/influxdb_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [InfluxDB exporter](https://github.com/prometheus/influxdb_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-InfluxDB",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-jmx",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"JMX",link:"https://github.com/prometheus/jmx_exporter",icon_filename:"java.svg",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# JMX\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Java Management Extensions (JMX) metrics for efficient Java application management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [JMX Exporter](https://github.com/prometheus/jmx_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [JMX Exporter](https://github.com/prometheus/jmx_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-JMX",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-jarvis",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Jarvis Standing Desk",link:"https://github.com/hairyhenderson/jarvis_exporter/",icon_filename:"jarvis.jpg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Jarvis Standing Desk\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Jarvis standing desk usage metrics for efficient workspace ergonomics and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Jarvis Standing Desk Exporter](https://github.com/hairyhenderson/jarvis_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Jarvis Standing Desk Exporter](https://github.com/hairyhenderson/jarvis_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Jarvis_Standing_Desk",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-jenkins",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Jenkins",link:"https://www.jenkins.io/",icon_filename:"jenkins.svg",categories:["data-collection.ci-cd-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Jenkins\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Jenkins continuous integration server metrics for efficient development and build management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Jenkins exporter](https://github.com/simplesurance/jenkins-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Jenkins exporter](https://github.com/simplesurance/jenkins-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Jenkins",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-jetbrains_fls",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"JetBrains Floating License Server",link:"https://github.com/mkreu/jetbrains-fls-exporter",icon_filename:"jetbrains.png",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# JetBrains Floating License Server\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor JetBrains floating license server metrics for efficient software licensing management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [JetBrains Floating License Server Export](https://github.com/mkreu/jetbrains-fls-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [JetBrains Floating License Server Export](https://github.com/mkreu/jetbrains-fls-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-JetBrains_Floating_License_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-kafka",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Kafka",link:"https://github.com/danielqsj/kafka_exporter/",icon_filename:"kafka.svg",categories:["data-collection.message-brokers"]},keywords:["big data","stream processing","message broker"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Kafka\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Kafka message queue metrics for optimized data streaming and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka Exporter](https://github.com/danielqsj/kafka_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka Exporter](https://github.com/danielqsj/kafka_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Kafka",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-kafka_connect",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Kafka Connect",link:"https://github.com/findelabs/kafka-connect-exporter-rs",icon_filename:"kafka.svg",categories:["data-collection.message-brokers"]},keywords:["big data","stream processing","message broker"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Kafka Connect\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Kafka Connect metrics for efficient data streaming and integration.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka Connect exporter](https://github.com/findelabs/kafka-connect-exporter-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka Connect exporter](https://github.com/findelabs/kafka-connect-exporter-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Kafka_Connect",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-kafka_consumer_lag",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Kafka Consumer Lag",link:"https://github.com/omarsmak/kafka-consumer-lag-monitoring",icon_filename:"kafka.svg",categories:["data-collection.service-discovery-registry"]},keywords:["big data","stream processing","message broker"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Kafka Consumer Lag\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Kafka consumer lag metrics for efficient message queue management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka Consumer Lag Monitoring](https://github.com/omarsmak/kafka-consumer-lag-monitoring).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka Consumer Lag Monitoring](https://github.com/omarsmak/kafka-consumer-lag-monitoring) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Kafka_Consumer_Lag",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-kafka_zookeeper",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Kafka ZooKeeper",link:"https://github.com/cloudflare/kafka_zookeeper_exporter",icon_filename:"kafka.svg",categories:["data-collection.message-brokers"]},keywords:["big data","stream processing","message broker"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Kafka ZooKeeper\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Kafka ZooKeeper metrics for optimized distributed coordination and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka ZooKeeper Exporter](https://github.com/cloudflare/kafka_zookeeper_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka ZooKeeper Exporter](https://github.com/cloudflare/kafka_zookeeper_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Kafka_ZooKeeper",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-kannel",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Kannel",link:"https://github.com/apostvav/kannel_exporter",icon_filename:"kannel.png",categories:["data-collection.telephony-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Kannel\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Kannel SMS gateway and WAP gateway metrics for efficient mobile communication and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kannel Exporter](https://github.com/apostvav/kannel_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kannel Exporter](https://github.com/apostvav/kannel_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Kannel",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-keepalived",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Keepalived",link:"https://github.com/gen2brain/keepalived_exporter",icon_filename:"keepalived.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Keepalived\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Keepalived metrics for efficient high-availability and load balancing management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Keepalived Exporter](https://github.com/gen2brain/keepalived_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Keepalived Exporter](https://github.com/gen2brain/keepalived_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Keepalived",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-korral",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Kubernetes Cluster Cloud Cost",link:"https://github.com/agilestacks/korral",icon_filename:"kubernetes.svg",categories:["data-collection.kubernetes"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Kubernetes Cluster Cloud Cost\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Kubernetes cloud cost metrics for efficient cloud resource management and budgeting.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kubernetes Cloud Cost Exporter](https://github.com/agilestacks/korral).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kubernetes Cloud Cost Exporter](https://github.com/agilestacks/korral) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Kubernetes_Cluster_Cloud_Cost",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ldap",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"LDAP",link:"https://github.com/titisan/ldap_exporter",icon_filename:"ldap.png",categories:["data-collection.authentication-and-authorization"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# LDAP\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Lightweight Directory Access Protocol (LDAP) metrics for efficient directory service management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [LDAP Exporter](https://github.com/titisan/ldap_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [LDAP Exporter](https://github.com/titisan/ldap_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-LDAP",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-lagerist",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Lagerist Disk latency",link:"https://github.com/Svedrin/lagerist",icon_filename:"linux.png",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Lagerist Disk latency\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack disk latency metrics for efficient storage performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Lagerist Disk latency exporter](https://github.com/Svedrin/lagerist).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Lagerist Disk latency exporter](https://github.com/Svedrin/lagerist) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Lagerist_Disk_latency",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-linode",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Linode",link:"https://github.com/DazWilkin/linode-exporter",icon_filename:"linode.svg",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Linode\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Linode cloud hosting metrics for efficient virtual server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Linode Exporter](https://github.com/DazWilkin/linode-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Linode Exporter](https://github.com/DazWilkin/linode-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Linode",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-lustre",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Lustre metadata",link:"https://github.com/GSI-HPC/prometheus-cluster-exporter",icon_filename:"lustre.png",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Lustre metadata\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Lustre clustered file system for efficient management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cluster Exporter](https://github.com/GSI-HPC/prometheus-cluster-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cluster Exporter](https://github.com/GSI-HPC/prometheus-cluster-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Lustre_metadata",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-lynis",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Lynis audit reports",link:"https://github.com/MauveSoftware/lynis_exporter",icon_filename:"lynis.png",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Lynis audit reports\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Lynis security auditing tool metrics for efficient system security and compliance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [lynis_exporter](https://github.com/MauveSoftware/lynis_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [lynis_exporter](https://github.com/MauveSoftware/lynis_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Lynis_audit_reports",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-mp707",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"MP707 USB thermometer",link:"https://github.com/nradchenko/mp707_exporter",icon_filename:"thermometer.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# MP707 USB thermometer\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack MP707 power strip metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MP707 exporter](https://github.com/nradchenko/mp707_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MP707 exporter](https://github.com/nradchenko/mp707_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-MP707_USB_thermometer",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-mqtt_blackbox",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"MQTT Blackbox",link:"https://github.com/inovex/mqtt_blackbox_exporter",icon_filename:"mqtt.svg",categories:["data-collection.message-brokers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# MQTT Blackbox\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack MQTT message transport performance using blackbox testing methods.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MQTT Blackbox Exporter](https://github.com/inovex/mqtt_blackbox_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MQTT Blackbox Exporter](https://github.com/inovex/mqtt_blackbox_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-MQTT_Blackbox",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-machbase",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Machbase",link:"https://github.com/MACHBASE/prometheus-machbase-exporter",icon_filename:"machbase.png",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Machbase\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Machbase time-series database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Machbase Exporter](https://github.com/MACHBASE/prometheus-machbase-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Machbase Exporter](https://github.com/MACHBASE/prometheus-machbase-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Machbase",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-maildir",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Maildir",link:"https://github.com/cherti/mailexporter",icon_filename:"mailserver.svg",categories:["data-collection.mail-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Maildir\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack mail server metrics for optimized email management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mailexporter](https://github.com/cherti/mailexporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [mailexporter](https://github.com/cherti/mailexporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Maildir",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-meilisearch",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Meilisearch",link:"https://github.com/scottaglia/meilisearch_exporter",icon_filename:"meilisearch.svg",categories:["data-collection.search-engines"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Meilisearch\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Meilisearch search engine metrics for efficient search performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Meilisearch Exporter](https://github.com/scottaglia/meilisearch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Meilisearch Exporter](https://github.com/scottaglia/meilisearch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Meilisearch",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-memcached",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Memcached (community)",link:"https://github.com/prometheus/memcached_exporter",icon_filename:"memcached.svg",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Memcached (community)\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Memcached in-memory key-value store metrics for efficient caching performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Memcached exporter](https://github.com/prometheus/memcached_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Memcached exporter](https://github.com/prometheus/memcached_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Memcached_(community)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-meraki",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Meraki dashboard",link:"https://github.com/TheHolm/meraki-dashboard-promethus-exporter",icon_filename:"meraki.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Meraki dashboard\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Cisco Meraki cloud-managed networking device metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Meraki dashboard data exporter using API](https://github.com/TheHolm/meraki-dashboard-promethus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Meraki dashboard data exporter using API](https://github.com/TheHolm/meraki-dashboard-promethus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Meraki_dashboard",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-mesos",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Mesos",link:"http://github.com/mesosphere/mesos_exporter",icon_filename:"mesos.svg",categories:["data-collection.task-queues"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Mesos\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Apache Mesos cluster manager metrics for efficient resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Mesos exporter](http://github.com/mesosphere/mesos_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Mesos exporter](http://github.com/mesosphere/mesos_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Mesos",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-mikrotik",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"MikroTik devices",link:"https://github.com/swoga/mikrotik-exporter",icon_filename:"mikrotik.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# MikroTik devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on MikroTik RouterOS metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mikrotik-exporter](https://github.com/swoga/mikrotik-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [nshttpd/mikrotik-exporter, swoga/m](https://github.com/swoga/mikrotik-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-MikroTik_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-routeros",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Mikrotik RouterOS devices",link:"https://github.com/welbymcroberts/routeros_exporter",icon_filename:"routeros.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Mikrotik RouterOS devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack MikroTik RouterOS metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [RouterOS exporter](https://github.com/welbymcroberts/routeros_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [RouterOS exporter](https://github.com/welbymcroberts/routeros_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Mikrotik_RouterOS_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-minecraft",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Minecraft",link:"https://github.com/sladkoff/minecraft-prometheus-exporter",icon_filename:"minecraft.png",categories:["data-collection.gaming"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Minecraft\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Minecraft server metrics for efficient game server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Minecraft Exporter](https://github.com/sladkoff/minecraft-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Minecraft Exporter](https://github.com/sladkoff/minecraft-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Minecraft",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-modbus_rtu",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Modbus protocol",link:"https://github.com/dernasherbrezon/modbusrtu_exporter",icon_filename:"modbus.svg",categories:["data-collection.iot-devices"]},keywords:["database","dbms","data storage"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Modbus protocol\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Modbus RTU protocol metrics for efficient industrial automation and control performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [modbusrtu_exporter](https://github.com/dernasherbrezon/modbusrtu_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [modbusrtu_exporter](https://github.com/dernasherbrezon/modbusrtu_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Modbus_protocol",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-mogilefs",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"MogileFS",link:"https://github.com/KKBOX/mogilefs-exporter",icon_filename:"filesystem.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# MogileFS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor MogileFS distributed file system metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MogileFS Exporter](https://github.com/KKBOX/mogilefs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MogileFS Exporter](https://github.com/KKBOX/mogilefs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-MogileFS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-monnit_mqtt",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Monnit Sensors MQTT",link:"https://github.com/braxton9460/monnit-mqtt-exporter",icon_filename:"monnit.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Monnit Sensors MQTT\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Monnit sensor data via MQTT for efficient IoT device monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Monnit Sensors MQTT Exporter WIP](https://github.com/braxton9460/monnit-mqtt-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Monnit Sensors MQTT Exporter WIP](https://github.com/braxton9460/monnit-mqtt-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Monnit_Sensors_MQTT",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nrpe",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"NRPE daemon",link:"https://github.com/canonical/nrpe_exporter",icon_filename:"nrpelinux.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# NRPE daemon\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Nagios Remote Plugin Executor (NRPE) metrics for efficient system and network monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NRPE exporter](https://github.com/canonical/nrpe_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NRPE exporter](https://github.com/canonical/nrpe_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-NRPE_daemon",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nsxt",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"NSX-T",link:"https://github.com/jk8s/nsxt_exporter",icon_filename:"vmware-nsx.svg",categories:["data-collection.containers-and-vms"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# NSX-T\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack VMware NSX-T software-defined networking metrics for efficient network virtualization and security management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NSX-T Exporter](https://github.com/jk8s/nsxt_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NSX-T Exporter](https://github.com/jk8s/nsxt_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-NSX-T",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nvml",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"NVML",link:"https://github.com/oko/nvml-exporter-rs",icon_filename:"nvidia.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# NVML\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on NVIDIA Management Library (NVML) GPU metrics for efficient GPU performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NVML exporter](https://github.com/oko/nvml-exporter-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NVML exporter](https://github.com/oko/nvml-exporter-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-NVML",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-naemon",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Naemon",link:"https://github.com/Griesbacher/Iapetos",icon_filename:"naemon.svg",categories:["data-collection.observability"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Naemon\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Naemon or Nagios network monitoring metrics for efficient IT infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Naemon / Nagios Exporter](https://github.com/Griesbacher/Iapetos).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Naemon / Nagios Exporter](https://github.com/Griesbacher/Iapetos) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Naemon",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nagios",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Nagios",link:"https://github.com/wbollock/nagios_exporter",icon_filename:"nagios.png",categories:["data-collection.observability"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Nagios\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Nagios network monitoring metrics for efficient\nIT infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Nagios exporter](https://github.com/wbollock/nagios_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Nagios exporter](https://github.com/wbollock/nagios_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Nagios",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nature_remo",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Nature Remo E lite devices",link:"https://github.com/kenfdev/remo-exporter",icon_filename:"nature-remo.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Nature Remo E lite devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Nature Remo E series smart home device metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Nature Remo E series Exporter](https://github.com/kenfdev/remo-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Nature Remo E series Exporter](https://github.com/kenfdev/remo-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Nature_Remo_E_lite_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-netapp_solidfire",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"NetApp Solidfire",link:"https://github.com/mjavier2k/solidfire-exporter",icon_filename:"netapp.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# NetApp Solidfire\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack NetApp Solidfire storage system metrics for efficient data storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NetApp Solidfire Exporter](https://github.com/mjavier2k/solidfire-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NetApp Solidfire Exporter](https://github.com/mjavier2k/solidfire-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-NetApp_Solidfire",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-netflow",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"NetFlow",link:"https://github.com/paihu/netflow_exporter",icon_filename:"netflow.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# NetFlow\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack NetFlow network traffic metrics for efficient network monitoring and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [netflow exporter](https://github.com/paihu/netflow_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [netflow exporter](https://github.com/paihu/netflow_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-NetFlow",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-netmeter",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"NetMeter",link:"https://github.com/ssbostan/netmeter-exporter",icon_filename:"netmeter.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# NetMeter\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor NetMeter network traffic metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NetMeter Exporter](https://github.com/ssbostan/netmeter-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NetMeter Exporter](https://github.com/ssbostan/netmeter-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-NetMeter",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-netapp_ontap",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Netapp ONTAP API",link:"https://github.com/sapcc/netapp-api-exporter",icon_filename:"netapp.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Netapp ONTAP API\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on NetApp ONTAP storage system metrics for efficient data storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Netapp ONTAP API Exporter](https://github.com/sapcc/netapp-api-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Netapp ONTAP API Exporter](https://github.com/sapcc/netapp-api-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Netapp_ONTAP_API",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-netatmo",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Netatmo sensors",link:"https://github.com/xperimental/netatmo-exporter",icon_filename:"netatmo.svg",categories:["data-collection.iot-devices"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Netatmo sensors\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Netatmo smart home device metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Netatmo exporter](https://github.com/xperimental/netatmo-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Netatmo exporter](https://github.com/xperimental/netatmo-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Netatmo_sensors",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-newrelic",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"New Relic",link:"https://github.com/jfindley/newrelic_exporter",icon_filename:"newrelic.svg",categories:["data-collection.observability"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# New Relic\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor New Relic application performance management metrics for efficient application monitoring and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [New Relic exporter](https://github.com/jfindley/newrelic_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [New Relic exporter](https://github.com/jfindley/newrelic_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-New_Relic",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nextdns",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"NextDNS",link:"https://github.com/raylas/nextdns-exporter",icon_filename:"nextdns.png",categories:["data-collection.dns-and-dhcp-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# NextDNS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack NextDNS DNS resolver and security platform metrics for efficient DNS management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [nextdns-exporter](https://github.com/raylas/nextdns-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [nextdns-exporter](https://github.com/raylas/nextdns-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-NextDNS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nextcloud",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Nextcloud servers",link:"https://github.com/xperimental/nextcloud-exporter",icon_filename:"nextcloud.png",categories:["data-collection.cloud-provider-managed"]},keywords:["cloud services","cloud computing","scalability"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Nextcloud servers\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Nextcloud cloud storage metrics for efficient file hosting and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Nextcloud exporter](https://github.com/xperimental/nextcloud-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Nextcloud exporter](https://github.com/xperimental/nextcloud-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Nextcloud_servers",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-obs_studio",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OBS Studio",link:"https://github.com/lukegb/obs_studio_exporter",icon_filename:"obs-studio.png",categories:["data-collection.media-streaming-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OBS Studio\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack OBS Studio live streaming and recording software metrics for efficient video production and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OBS Studio Exporter](https://github.com/lukegb/obs_studio_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OBS Studio Exporter](https://github.com/lukegb/obs_studio_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OBS_Studio",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-odbc",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ODBC",link:"https://github.com/MACHBASE/prometheus-odbc-exporter",icon_filename:"odbc.svg",categories:["data-collection.database-servers"]},keywords:["database","dbms","data storage"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ODBC\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Open Database Connectivity (ODBC) metrics for efficient database connection and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ODBC Exporter](https://github.com/MACHBASE/prometheus-odbc-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ODBC Exporter](https://github.com/MACHBASE/prometheus-odbc-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ODBC",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-otrs",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OTRS",link:"https://github.com/JulianDroste/otrs_exporter",icon_filename:"otrs.png",categories:["data-collection.notifications"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OTRS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor OTRS (Open-Source Ticket Request System) metrics for efficient helpdesk management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OTRS Exporter](https://github.com/JulianDroste/otrs_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OTRS Exporter](https://github.com/JulianDroste/otrs_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OTRS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openhab",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenHAB",link:"https://github.com/pdreker/openhab_exporter",icon_filename:"openhab.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenHAB\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack openHAB smart home automation system metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenHAB exporter](https://github.com/pdreker/openhab_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenHAB exporter](https://github.com/pdreker/openhab_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenHAB",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openldap",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenLDAP (community)",link:"https://github.com/tomcz/openldap_exporter",icon_filename:"openldap.svg",categories:["data-collection.authentication-and-authorization"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenLDAP (community)\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor OpenLDAP directory service metrics for efficient directory management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenLDAP Metrics Exporter](https://github.com/tomcz/openldap_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenLDAP Metrics Exporter](https://github.com/tomcz/openldap_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenLDAP_(community)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openrc",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenRC",link:"https://git.sr.ht/~tomleb/openrc-exporter",icon_filename:"linux.png",categories:["data-collection.linux-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenRC\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on OpenRC init system metrics for efficient system startup and service management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [openrc-exporter](https://git.sr.ht/~tomleb/openrc-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [openrc-exporter](https://git.sr.ht/~tomleb/openrc-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenRC",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openrct2",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenRCT2",link:"https://github.com/terinjokes/openrct2-prometheus-exporter",icon_filename:"openRCT2.png",categories:["data-collection.gaming"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenRCT2\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack OpenRCT2 game metrics for efficient game server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenRCT2 Prometheus Exporter](https://github.com/terinjokes/openrct2-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenRCT2 Prometheus Exporter](https://github.com/terinjokes/openrct2-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenRCT2",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openroadm",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenROADM devices",link:"https://github.com/utdal/openroadm_exporter",icon_filename:"openroadm.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:["network monitoring","network performance","traffic analysis"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenROADM devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor OpenROADM optical transport network metrics using the NETCONF protocol for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenROADM NETCONF Exporter WIP](https://github.com/utdal/openroadm_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenROADM NETCONF Exporter WIP](https://github.com/utdal/openroadm_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenROADM_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openstack",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenStack",link:"https://github.com/CanonicalLtd/prometheus-openstack-exporter",icon_filename:"openstack.svg",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenStack\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack OpenStack cloud computing platform metrics for efficient infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Openstack exporter](https://github.com/CanonicalLtd/prometheus-openstack-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Openstack exporter](https://github.com/CanonicalLtd/prometheus-openstack-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenStack",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openvas",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenVAS",link:"https://github.com/ModeClearCode/openvas_exporter",icon_filename:"openVAS.png",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenVAS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor OpenVAS vulnerability scanner metrics for efficient security assessment and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenVAS exporter](https://github.com/ModeClearCode/openvas_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenVAS exporter](https://github.com/ModeClearCode/openvas_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenVAS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openweathermap",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"OpenWeatherMap",link:"https://github.com/Tenzer/openweathermap-exporter",icon_filename:"openweather.png",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# OpenWeatherMap\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack OpenWeatherMap weather data and air pollution metrics for efficient environmental monitoring and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenWeatherMap Exporter](https://github.com/Tenzer/openweathermap-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenWeatherMap Exporter](https://github.com/Tenzer/openweathermap-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-OpenWeatherMap",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-openvswitch",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Open vSwitch",link:"https://github.com/digitalocean/openvswitch_exporter",icon_filename:"ovs.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Open vSwitch\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Open vSwitch software-defined networking metrics for efficient network virtualization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Open vSwitch Exporter](https://github.com/digitalocean/openvswitch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Open vSwitch Exporter](https://github.com/digitalocean/openvswitch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Open_vSwitch",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-oracledb",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Oracle DB (community)",link:"https://github.com/iamseth/oracledb_exporter",icon_filename:"oracle.svg",categories:["data-collection.database-servers"]},keywords:["oracle","database","dbms","data storage"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Oracle DB (community)\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Oracle Database metrics for efficient database management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Oracle DB Exporter](https://github.com/iamseth/oracledb_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Oracle DB Exporter](https://github.com/iamseth/oracledb_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Oracle_DB_(community)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-patroni",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Patroni",link:"https://github.com/gopaytech/patroni_exporter",icon_filename:"patroni.png",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Patroni\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Patroni PostgreSQL high-availability metrics for efficient database management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Patroni Exporter](https://github.com/gopaytech/patroni_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Patroni Exporter](https://github.com/gopaytech/patroni_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Patroni",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-pws",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Personal Weather Station",link:"https://github.com/JohnOrthoefer/pws-exporter",icon_filename:"wunderground.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Personal Weather Station\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack personal weather station metrics for efficient weather monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Personal Weather Station Exporter](https://github.com/JohnOrthoefer/pws-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Personal Weather Station Exporter](https://github.com/JohnOrthoefer/pws-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Personal_Weather_Station",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-pgpool2",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Pgpool-II",link:"https://github.com/pgpool/pgpool2_exporter",icon_filename:"pgpool2.png",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Pgpool-II\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Pgpool-II PostgreSQL middleware metrics for efficient database connection management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pgpool-II Exporter](https://github.com/pgpool/pgpool2_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pgpool-II Exporter](https://github.com/pgpool/pgpool2_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Pgpool-II",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-philips_hue",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Philips Hue",link:"https://github.com/aexel90/hue_exporter",icon_filename:"hue.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Philips Hue\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Philips Hue smart lighting metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Philips Hue Exporter](https://github.com/aexel90/hue_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Philips Hue Exporter](https://github.com/aexel90/hue_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Philips_Hue",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-pimoroni_enviro_plus",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Pimoroni Enviro+",link:"https://github.com/terradolor/prometheus-enviro-exporter",icon_filename:"pimorino.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Pimoroni Enviro+\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Pimoroni Enviro+ air quality and environmental metrics for efficient environmental monitoring and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pimoroni Enviro+ Exporter](https://github.com/terradolor/prometheus-enviro-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pimoroni Enviro+ Exporter](https://github.com/terradolor/prometheus-enviro-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Pimoroni_Enviro+",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-pingdom",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Pingdom",link:"https://github.com/veepee-oss/pingdom_exporter",icon_filename:"solarwinds.svg",categories:["data-collection.synthetic-checks"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Pingdom\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Pingdom website monitoring service metrics for efficient website performance management and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pingdom Exporter](https://github.com/veepee-oss/pingdom_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pingdom Exporter](https://github.com/veepee-oss/pingdom_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Pingdom",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-podman",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Podman",link:"https://github.com/containers/prometheus-podman-exporter",icon_filename:"podman.png",categories:["data-collection.containers-and-vms"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Podman\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Podman container runtime metrics for efficient container management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [PODMAN exporter](https://github.com/containers/prometheus-podman-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [PODMAN exporter](https://github.com/containers/prometheus-podman-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Podman",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-powerpal",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Powerpal devices",link:"https://github.com/aashley/powerpal_exporter",icon_filename:"powerpal.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Powerpal devices\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Powerpal smart meter metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Powerpal Exporter](https://github.com/aashley/powerpal_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Powerpal Exporter](https://github.com/aashley/powerpal_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Powerpal_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-proftpd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ProFTPD",link:"https://github.com/transnano/proftpd_exporter",icon_filename:"proftpd.png",categories:["data-collection.ftp-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ProFTPD\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor ProFTPD FTP server metrics for efficient file transfer and server performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ProFTPD Exporter](https://github.com/transnano/proftpd_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ProFTPD Exporter](https://github.com/transnano/proftpd_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ProFTPD",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-generic",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Prometheus endpoint",link:"https://prometheus.io/",icon_filename:"prometheus.svg",categories:["data-collection.generic-data-collection"]},keywords:["prometheus","openmetrics"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Prometheus endpoint\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nThis generic Prometheus collector gathers metrics from any [`Prometheus`](https://prometheus.io/) endpoints.\n\n\nIt collects metrics by periodically sending HTTP requests to the target instance.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Prometheus_endpoint",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-proxmox",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Proxmox VE",link:"https://github.com/prometheus-pve/prometheus-pve-exporter",icon_filename:"proxmox.png",categories:["data-collection.containers-and-vms"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Proxmox VE\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Proxmox Virtual Environment metrics for efficient virtualization and container management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Proxmox VE Exporter](https://github.com/prometheus-pve/prometheus-pve-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Proxmox VE Exporter](https://github.com/prometheus-pve/prometheus-pve-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Proxmox_VE",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-radius",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"RADIUS",link:"https://github.com/devon-mar/radius-exporter",icon_filename:"radius.png",categories:["data-collection.authentication-and-authorization"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# RADIUS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on RADIUS (Remote Authentication Dial-In User Service) protocol metrics for efficient authentication and access management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [RADIUS exporter](https://github.com/devon-mar/radius-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [RADIUS exporter](https://github.com/devon-mar/radius-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-RADIUS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ripe_atlas",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"RIPE Atlas",link:"https://github.com/czerwonk/atlas_exporter",icon_filename:"ripe.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# RIPE Atlas\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on RIPE Atlas Internet measurement platform metrics for efficient network monitoring and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [RIPE Atlas Exporter](https://github.com/czerwonk/atlas_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [RIPE Atlas Exporter](https://github.com/czerwonk/atlas_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-RIPE_Atlas",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-radio_thermostat",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Radio Thermostat",link:"https://github.com/andrewlow/radio-thermostat-exporter",icon_filename:"radiots.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Radio Thermostat\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Radio Thermostat smart thermostat metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Radio Thermostat Exporter](https://github.com/andrewlow/radio-thermostat-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Radio Thermostat Exporter](https://github.com/andrewlow/radio-thermostat-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Radio_Thermostat",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-rancher",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Rancher",link:"https://github.com/infinityworksltd/prometheus-rancher-exporter",icon_filename:"rancher.svg",categories:["data-collection.kubernetes"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Rancher\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Rancher container orchestration platform metrics for efficient container management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Rancher Exporter](https://github.com/infinityworksltd/prometheus-rancher-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Rancher Exporter](https://github.com/infinityworksltd/prometheus-rancher-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Rancher",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-raritan_pdu",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Raritan PDU",link:"https://github.com/psyinfra/prometheus-raritan-pdu-exporter",icon_filename:"raritan.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Raritan PDU\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Raritan Power Distribution Unit (PDU) metrics for efficient power management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Raritan PDU Exporter](https://github.com/psyinfra/prometheus-raritan-pdu-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Raritan PDU Exporter](https://github.com/psyinfra/prometheus-raritan-pdu-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Raritan_PDU",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-redis_queue",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Redis Queue",link:"https://github.com/mdawar/rq-exporter",icon_filename:"rq.png",categories:["data-collection.message-brokers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Redis Queue\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Python RQ (Redis Queue) job queue metrics for efficient task management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Python RQ Exporter](https://github.com/mdawar/rq-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Python RQ Exporter](https://github.com/mdawar/rq-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Redis_Queue",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sabnzbd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SABnzbd",link:"https://github.com/msroest/sabnzbd_exporter",icon_filename:"sabnzbd.png",categories:["data-collection.media-streaming-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SABnzbd\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor SABnzbd Usenet client metrics for efficient file downloads and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SABnzbd Exporter](https://github.com/msroest/sabnzbd_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SABnzbd Exporter](https://github.com/msroest/sabnzbd_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SABnzbd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sma_inverter",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SMA Inverters",link:"https://github.com/dr0ps/sma_inverter_exporter",icon_filename:"sma.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SMA Inverters\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor SMA solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [sma-exporter](https://github.com/dr0ps/sma_inverter_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [sma-exporter](https://github.com/dr0ps/sma_inverter_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SMA_Inverters",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sonic",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SONiC NOS",link:"https://github.com/kamelnetworks/sonic_exporter",icon_filename:"sonic.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SONiC NOS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Software for Open Networking in the Cloud (SONiC) metrics for efficient network switch management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SONiC Exporter](https://github.com/kamelnetworks/sonic_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SONiC Exporter](https://github.com/kamelnetworks/sonic_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SONiC_NOS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sql",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SQL Database agnostic",link:"https://github.com/free/sql_exporter",icon_filename:"sql.svg",categories:["data-collection.database-servers"]},keywords:["database","relational db","data querying"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SQL Database agnostic\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nQuery SQL databases for efficient database performance monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SQL Exporter](https://github.com/free/sql_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SQL Exporter](https://github.com/free/sql_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SQL_Database_agnostic",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ssh",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SSH",link:"https://github.com/Nordstrom/ssh_exporter",icon_filename:"ssh.png",categories:["data-collection.authentication-and-authorization"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SSH\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor SSH server metrics for efficient secure shell server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SSH Exporter](https://github.com/Nordstrom/ssh_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SSH Exporter](https://github.com/Nordstrom/ssh_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SSH",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ssl",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SSL Certificate",link:"https://github.com/ribbybibby/ssl_exporter",icon_filename:"ssl.svg",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SSL Certificate\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack SSL/TLS certificate metrics for efficient web security and certificate management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SSL Certificate exporter](https://github.com/ribbybibby/ssl_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SSL Certificate exporter](https://github.com/ribbybibby/ssl_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SSL_Certificate",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-salicru_eqx",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Salicru EQX inverter",link:"https://github.com/alejandroscf/prometheus_salicru_exporter",icon_filename:"salicru.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Salicru EQX inverter\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Salicru EQX solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Salicru EQX inverter](https://github.com/alejandroscf/prometheus_salicru_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Salicru EQX inverter](https://github.com/alejandroscf/prometheus_salicru_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Salicru_EQX_inverter",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sense_energy",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Sense Energy",link:"https://github.com/ejsuncy/sense_energy_prometheus_exporter",icon_filename:"sense.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Sense Energy\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on Sense Energy smart meter metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sense Energy exporter](https://github.com/ejsuncy/sense_energy_prometheus_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sense Energy exporter](https://github.com/ejsuncy/sense_energy_prometheus_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Sense_Energy",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sentry",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Sentry",link:"https://github.com/snakecharmer/sentry_exporter",icon_filename:"sentry.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Sentry\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Sentry error tracking and monitoring platform metrics for efficient application performance and error management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sentry Exporter](https://github.com/snakecharmer/sentry_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sentry Exporter](https://github.com/snakecharmer/sentry_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Sentry",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-servertech",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"ServerTech",link:"https://github.com/tynany/servertech_exporter",icon_filename:"servertech.png",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# ServerTech\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Server Technology power distribution unit (PDU) metrics for efficient power management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ServerTech Exporter](https://github.com/tynany/servertech_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ServerTech Exporter](https://github.com/tynany/servertech_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-ServerTech",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-shell_cmd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Shell command",link:"https://github.com/tomwilkie/prom-run",icon_filename:"crunner.svg",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Shell command\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack custom command output metrics for tailored monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Command runner exporter](https://github.com/tomwilkie/prom-run).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Command runner exporter](https://github.com/tomwilkie/prom-run) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Shell_command",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-shelly",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Shelly humidity sensor",link:"https://github.com/aexel90/shelly_exporter",icon_filename:"shelly.jpg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Shelly humidity sensor\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Shelly smart home device metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Shelly Exporter](https://github.com/aexel90/shelly_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Shelly Exporter](https://github.com/aexel90/shelly_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Shelly_humidity_sensor",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sia",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Sia",link:"https://github.com/tbenz9/sia_exporter",icon_filename:"sia.png",categories:["data-collection.blockchain-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Sia\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Sia decentralized storage platform metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sia Exporter](https://github.com/tbenz9/sia_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sia Exporter](https://github.com/tbenz9/sia_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Sia",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-s7_plc",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Siemens S7 PLC",link:"https://github.com/MarcusCalidus/s7-plc-exporter",icon_filename:"siemens.svg",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Siemens S7 PLC\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Siemens S7 Programmable Logic Controller (PLC) metrics for efficient industrial automation and control.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Siemens S7 PLC exporter](https://github.com/MarcusCalidus/s7-plc-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Siemens S7 PLC exporter](https://github.com/MarcusCalidus/s7-plc-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Siemens_S7_PLC",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-site24x7",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Site 24x7",link:"https://github.com/svenstaro/site24x7_exporter",icon_filename:"site24x7.svg",categories:["data-collection.synthetic-checks"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Site 24x7\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Site24x7 website and infrastructure monitoring metrics for efficient performance tracking and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [site24x7 Exporter](https://github.com/svenstaro/site24x7_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [site24x7 Exporter](https://github.com/svenstaro/site24x7_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Site_24x7",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-slurm",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Slurm",link:"https://github.com/vpenso/prometheus-slurm-exporter",icon_filename:"slurm.png",categories:["data-collection.task-queues"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Slurm\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Slurm workload manager metrics for efficient high-performance computing (HPC) and cluster management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [slurm exporter](https://github.com/vpenso/prometheus-slurm-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [slurm exporter](https://github.com/vpenso/prometheus-slurm-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Slurm",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-smartrg808ac",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SmartRG 808AC Cable Modem",link:"https://github.com/AdamIsrael/smartrg808ac_exporter",icon_filename:"smartr.jpeg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SmartRG 808AC Cable Modem\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor SmartRG SR808ac router metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [smartrg808ac_exporter](https://github.com/AdamIsrael/smartrg808ac_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [smartrg808ac_exporter](https://github.com/AdamIsrael/smartrg808ac_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SmartRG_808AC_Cable_Modem",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sml",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Smart meters SML",link:"https://github.com/mweinelt/sml-exporter",icon_filename:"sml.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Smart meters SML\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Smart Message Language (SML) metrics for efficient smart metering and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SML Exporter](https://github.com/mweinelt/sml-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SML Exporter](https://github.com/mweinelt/sml-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Smart_meters_SML",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-softether",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SoftEther VPN Server",link:"https://github.com/dalance/softether_exporter",icon_filename:"softether.svg",categories:["data-collection.vpns"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SoftEther VPN Server\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor SoftEther VPN Server metrics for efficient virtual private network (VPN) management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SoftEther Exporter](https://github.com/dalance/softether_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SoftEther Exporter](https://github.com/dalance/softether_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SoftEther_VPN_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-solaredge",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"SolarEdge inverters",link:"https://github.com/dave92082/SolarEdge-Exporter",icon_filename:"solaredge.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# SolarEdge inverters\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack SolarEdge solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SolarEdge Exporter](https://github.com/dave92082/SolarEdge-Exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SolarEdge Exporter](https://github.com/dave92082/SolarEdge-Exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-SolarEdge_inverters",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-lsx",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Solar logging stick",link:"https://gitlab.com/bhavin192/lsx-exporter",icon_filename:"solar.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Solar logging stick\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor solar energy metrics using a solar logging stick for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Solar logging stick exporter](https://gitlab.com/bhavin192/lsx-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Solar logging stick exporter](https://gitlab.com/bhavin192/lsx-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Solar_logging_stick",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-solis",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Solis Ginlong 5G inverters",link:"https://github.com/candlerb/solis_exporter",icon_filename:"solis.jpg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Solis Ginlong 5G inverters\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Solis solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Solis Exporter](https://github.com/candlerb/solis_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Solis Exporter](https://github.com/candlerb/solis_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Solis_Ginlong_5G_inverters",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-spacelift",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Spacelift",link:"https://github.com/spacelift-io/prometheus-exporter",icon_filename:"spacelift.png",categories:["data-collection.provisioning-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Spacelift\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Spacelift infrastructure-as-code (IaC) platform metrics for efficient infrastructure automation and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Spacelift Exporter](https://github.com/spacelift-io/prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Spacelift Exporter](https://github.com/spacelift-io/prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Spacelift",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-speedify",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Speedify CLI",link:"https://github.com/willshen/speedify_exporter",icon_filename:"speedify.png",categories:["data-collection.vpns"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Speedify CLI\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Speedify VPN metrics for efficient virtual private network (VPN) management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Speedify Exporter](https://github.com/willshen/speedify_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Speedify Exporter](https://github.com/willshen/speedify_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Speedify_CLI",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sphinx",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Sphinx",link:"https://github.com/foxdalas/sphinx_exporter",icon_filename:"sphinx.png",categories:["data-collection.search-engines"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Sphinx\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Sphinx search engine metrics for efficient search and indexing performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sphinx Exporter](https://github.com/foxdalas/sphinx_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sphinx Exporter](https://github.com/foxdalas/sphinx_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Sphinx",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-starlink",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Starlink (SpaceX)",link:"https://github.com/danopstech/starlink_exporter",icon_filename:"starlink.svg",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Starlink (SpaceX)\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor SpaceX Starlink satellite internet metrics for efficient internet service management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Starlink Exporter (SpaceX)](https://github.com/danopstech/starlink_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Starlink Exporter (SpaceX)](https://github.com/danopstech/starlink_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Starlink_(SpaceX)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-starwind_vsan",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Starwind VSAN VSphere Edition",link:"https://github.com/evoicefire/starwind-vsan-exporter",icon_filename:"starwind.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Starwind VSAN VSphere Edition\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on StarWind Virtual SAN metrics for efficient storage virtualization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Starwind vSAN Exporter](https://github.com/evoicefire/starwind-vsan-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Starwind vSAN Exporter](https://github.com/evoicefire/starwind-vsan-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Starwind_VSAN_VSphere_Edition",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-statuspage",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"StatusPage",link:"https://github.com/vladvasiliu/statuspage-exporter",icon_filename:"statuspage.png",categories:["data-collection.notifications"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# StatusPage\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor StatusPage.io incident and status metrics for efficient incident management and communication.\n\n\nMetrics are gathered by periodically sending HTTP requests to [StatusPage Exporter](https://github.com/vladvasiliu/statuspage-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [StatusPage Exporter](https://github.com/vladvasiliu/statuspage-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-StatusPage",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-steam_a2s",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Steam",link:"https://github.com/armsnyder/a2s-exporter",icon_filename:"a2s.png",categories:["data-collection.gaming"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Steam\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nGain insights into Steam A2S-supported game servers for performance and availability through real-time metric monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [A2S Exporter](https://github.com/armsnyder/a2s-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [A2S Exporter](https://github.com/armsnyder/a2s-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Steam",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-storidge",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Storidge",link:"https://github.com/Storidge/cio-user-docs/blob/master/integrations/prometheus.md",icon_filename:"storidge.png",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Storidge\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Storidge storage metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Storidge exporter](https://github.com/Storidge/cio-user-docs/blob/master/integrations/prometheus.md).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Storidge exporter](https://github.com/Storidge/cio-user-docs/blob/master/integrations/prometheus.md) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Storidge",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-stream_generic",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Stream",link:"https://github.com/carlpett/stream_exporter",icon_filename:"stream.png",categories:["data-collection.media-streaming-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Stream\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor streaming metrics for efficient media streaming and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Stream exporter](https://github.com/carlpett/stream_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Stream exporter](https://github.com/carlpett/stream_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Stream",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sunspec",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Sunspec Solar Energy",link:"https://github.com/inosion/prometheus-sunspec-exporter",icon_filename:"sunspec.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Sunspec Solar Energy\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor SunSpec Alliance solar energy metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sunspec Solar Energy Exporter](https://github.com/inosion/prometheus-sunspec-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sunspec Solar Energy Exporter](https://github.com/inosion/prometheus-sunspec-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Sunspec_Solar_Energy",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-suricata",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Suricata",link:"https://github.com/corelight/suricata_exporter",icon_filename:"suricata.png",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Suricata\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Suricata network intrusion detection and prevention system (IDS/IPS) metrics for efficient network security and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Suricata Exporter](https://github.com/corelight/suricata_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Suricata Exporter](https://github.com/corelight/suricata_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Suricata",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-synology_activebackup",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Synology ActiveBackup",link:"https://github.com/codemonauts/activebackup-prometheus-exporter",icon_filename:"synology.png",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Synology ActiveBackup\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Synology Active Backup metrics for efficient backup and data protection management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Synology ActiveBackup Exporter](https://github.com/codemonauts/activebackup-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Synology ActiveBackup Exporter](https://github.com/codemonauts/activebackup-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Synology_ActiveBackup",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-sysload",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Sysload",link:"https://github.com/egmc/sysload_exporter",icon_filename:"sysload.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Sysload\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor system load metrics for efficient system performance and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sysload Exporter](https://github.com/egmc/sysload_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sysload Exporter](https://github.com/egmc/sysload_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Sysload",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-trex",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"T-Rex NVIDIA GPU Miner",link:"https://github.com/dennisstritzke/trex_exporter",icon_filename:"trex.png",categories:["data-collection.hardware-devices-and-sensors"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# T-Rex NVIDIA GPU Miner\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor T-Rex NVIDIA GPU miner metrics for efficient cryptocurrency mining and GPU performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [T-Rex NVIDIA GPU Miner Exporter](https://github.com/dennisstritzke/trex_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [T-Rex NVIDIA GPU Miner Exporter](https://github.com/dennisstritzke/trex_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-T-Rex_NVIDIA_GPU_Miner",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-tacas",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"TACACS",link:"https://github.com/devon-mar/tacacs-exporter",icon_filename:"tacacs.png",categories:["data-collection.authentication-and-authorization"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# TACACS\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Terminal Access Controller Access-Control System (TACACS) protocol metrics for efficient network authentication and authorization management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [TACACS Exporter](https://github.com/devon-mar/tacacs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [TACACS Exporter](https://github.com/devon-mar/tacacs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-TACACS",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-tplink_p110",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"TP-Link P110",link:"https://github.com/ijohanne/prometheus-tplink-p110-exporter",icon_filename:"tplink.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# TP-Link P110\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack TP-Link P110 smart plug metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [TP-Link P110 Exporter](https://github.com/ijohanne/prometheus-tplink-p110-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [TP-Link P110 Exporter](https://github.com/ijohanne/prometheus-tplink-p110-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-TP-Link_P110",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-tado",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Tado smart heating solution",link:"https://github.com/eko/tado-exporter",icon_filename:"tado.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Tado smart heating solution\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Tado smart thermostat metrics for efficient home heating and cooling management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tado\\xB0 Exporter](https://github.com/eko/tado-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tado Exporter](https://github.com/eko/tado-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Tado_smart_heating_solution",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-tankerkoenig",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Tankerkoenig API",link:"https://github.com/lukasmalkmus/tankerkoenig_exporter",icon_filename:"tanker.png",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Tankerkoenig API\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Tankerknig API fuel price metrics for efficient fuel price monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tankerknig API Exporter](https://github.com/lukasmalkmus/tankerkoenig_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tankerknig API Exporter](https://github.com/lukasmalkmus/tankerkoenig_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Tankerkoenig_API",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-tesla_powerwall",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Tesla Powerwall",link:"https://github.com/foogod/powerwall_exporter",icon_filename:"tesla.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Tesla Powerwall\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Tesla Powerwall metrics for efficient home energy storage and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tesla Powerwall Exporter](https://github.com/foogod/powerwall_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tesla Powerwall Exporter](https://github.com/foogod/powerwall_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Tesla_Powerwall",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-tesla_wall_connector",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Tesla Wall Connector",link:"https://github.com/benclapp/tesla_wall_connector_exporter",icon_filename:"tesla.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Tesla Wall Connector\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Tesla Wall Connector charging station metrics for efficient electric vehicle charging management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tesla Wall Connector Exporter](https://github.com/benclapp/tesla_wall_connector_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tesla Wall Connector Exporter](https://github.com/benclapp/tesla_wall_connector_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Tesla_Wall_Connector",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-tesla_vehicle",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Tesla vehicle",link:"https://github.com/wywywywy/tesla-prometheus-exporter",icon_filename:"tesla.png",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Tesla vehicle\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Tesla vehicle metrics for efficient electric vehicle management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tesla exporter](https://github.com/wywywywy/tesla-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tesla exporter](https://github.com/wywywywy/tesla-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Tesla_vehicle",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-traceroute",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Traceroute",link:"https://github.com/jeanfabrice/prometheus-tcptraceroute-exporter",icon_filename:"traceroute.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Traceroute\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nExport traceroute metrics for efficient network path analysis and performance monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [traceroute exporter](https://github.com/jeanfabrice/prometheus-tcptraceroute-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [traceroute exporter](https://github.com/jeanfabrice/prometheus-tcptraceroute-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Traceroute",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-twincat_ads_webservice",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"TwinCAT ADS Web Service",link:"https://github.com/MarcusCalidus/twincat-ads-webservice-exporter",icon_filename:"twincat.png",categories:["data-collection.generic-data-collection"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# TwinCAT ADS Web Service\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor TwinCAT ADS (Automation Device Specification) Web Service metrics for efficient industrial automation and control.\n\n\nMetrics are gathered by periodically sending HTTP requests to [TwinCAT ADS Web Service exporter](https://github.com/MarcusCalidus/twincat-ads-webservice-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [TwinCAT ADS Web Service exporter](https://github.com/MarcusCalidus/twincat-ads-webservice-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-TwinCAT_ADS_Web_Service",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-twitch",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Twitch",link:"https://github.com/damoun/twitch_exporter",icon_filename:"twitch.svg",categories:["data-collection.media-streaming-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Twitch\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Twitch streaming platform metrics for efficient live streaming management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Twitch exporter](https://github.com/damoun/twitch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Twitch exporter](https://github.com/damoun/twitch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Twitch",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-ubiquity_ufiber",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Ubiquiti UFiber OLT",link:"https://github.com/swoga/ufiber-exporter",icon_filename:"ubiquiti.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Ubiquiti UFiber OLT\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Ubiquiti UFiber GPON (Gigabit Passive Optical Network) device metrics for efficient fiber-optic network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ufiber-exporter](https://github.com/swoga/ufiber-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ufiber-exporter](https://github.com/swoga/ufiber-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Ubiquiti_UFiber_OLT",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-uptimerobot",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Uptimerobot",link:"https://github.com/wosc/prometheus-uptimerobot",icon_filename:"uptimerobot.svg",categories:["data-collection.synthetic-checks"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Uptimerobot\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor UptimeRobot website uptime monitoring metrics for efficient website availability tracking and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Uptimerobot Exporter](https://github.com/wosc/prometheus-uptimerobot).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Uptimerobot Exporter](https://github.com/wosc/prometheus-uptimerobot) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Uptimerobot",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-vscode",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"VSCode",link:"https://github.com/guicaulada/vscode-exporter",icon_filename:"vscode.svg",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# VSCode\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Visual Studio Code editor metrics for efficient development environment management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [VSCode Exporter](https://github.com/guicaulada/vscode-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [VSCode Exporter](https://github.com/guicaulada/vscode-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-VSCode",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-vault_pki",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Vault PKI",link:"https://github.com/aarnaud/vault-pki-exporter",icon_filename:"vault.svg",categories:["data-collection.security-systems"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Vault PKI\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor HashiCorp Vault Public Key Infrastructure (PKI) metrics for efficient certificate management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Vault PKI Exporter](https://github.com/aarnaud/vault-pki-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Vault PKI Exporter](https://github.com/aarnaud/vault-pki-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Vault_PKI",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-vertica",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Vertica",link:"https://github.com/vertica/vertica-prometheus-exporter",icon_filename:"vertica.svg",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Vertica\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Vertica analytics database platform metrics for efficient database performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [vertica-prometheus-exporter](https://github.com/vertica/vertica-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [vertica-prometheus-exporter](https://github.com/vertica/vertica-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Vertica",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-warp10",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Warp10",link:"https://github.com/centreon/warp10-sensision-exporter",icon_filename:"warp10.svg",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Warp10\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Warp 10 time-series database metrics for efficient time-series data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Warp10 Exporter](https://github.com/centreon/warp10-sensision-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Warp10 Exporter](https://github.com/centreon/warp10-sensision-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Warp10",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-xmpp_blackbox",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"XMPP Server",link:"https://github.com/horazont/xmpp-blackbox-exporter",icon_filename:"xmpp.svg",categories:["data-collection.message-brokers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# XMPP Server\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor XMPP (Extensible Messaging and Presence Protocol) server metrics for efficient messaging and communication management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [XMPP Server Exporter](https://github.com/horazont/xmpp-blackbox-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [XMPP Server Exporter](https://github.com/horazont/xmpp-blackbox-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-XMPP_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-xiaomi_mi_flora",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Xiaomi Mi Flora",link:"https://github.com/xperimental/flowercare-exporter",icon_filename:"xiaomi.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Xiaomi Mi Flora\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep tabs on MiFlora plant monitor metrics for efficient plant care and growth management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MiFlora / Flower Care Exporter](https://github.com/xperimental/flowercare-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MiFlora / Flower Care Exporter](https://github.com/xperimental/flowercare-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Xiaomi_Mi_Flora",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-yourls",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"YOURLS URL Shortener",link:"https://github.com/just1not2/prometheus-exporter-yourls",icon_filename:"yourls.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# YOURLS URL Shortener\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor YOURLS (Your Own URL Shortener) metrics for efficient URL shortening service management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [YOURLS exporter](https://github.com/just1not2/prometheus-exporter-yourls).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [YOURLS exporter](https://github.com/just1not2/prometheus-exporter-yourls) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-YOURLS_URL_Shortener",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-zerto",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Zerto",link:"https://github.com/claranet/zerto-exporter",icon_filename:"zerto.png",categories:["data-collection.cloud-provider-managed"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Zerto\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Zerto disaster recovery and data protection metrics for efficient backup and recovery management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Zerto Exporter](https://github.com/claranet/zerto-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Zerto Exporter](https://github.com/claranet/zerto-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Zerto",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-zulip",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Zulip",link:"https://github.com/brokenpip3/zulip-exporter",icon_filename:"zulip.png",categories:["data-collection.media-streaming-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Zulip\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Zulip open-source group chat application metrics for efficient team communication management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Zulip Exporter](https://github.com/brokenpip3/zulip-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Zulip Exporter](https://github.com/brokenpip3/zulip-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Zulip",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-zyxel_gs1200",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"Zyxel GS1200-8",link:"https://github.com/robinelfrink/gs1200-exporter",icon_filename:"zyxel.png",categories:["data-collection.networking-stack-and-network-interfaces"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# Zyxel GS1200-8\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Zyxel GS1200 network switch metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Zyxel GS1200 Exporter](https://github.com/robinelfrink/gs1200-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Zyxel GS1200 Exporter](https://github.com/robinelfrink/gs1200-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-Zyxel_GS1200-8",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-bpftrace",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"bpftrace variables",link:"https://github.com/andreasgerstmayr/bpftrace_exporter",icon_filename:"bpftrace.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# bpftrace variables\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack bpftrace metrics for advanced performance analysis and troubleshooting.\n\n\nMetrics are gathered by periodically sending HTTP requests to [bpftrace exporter](https://github.com/andreasgerstmayr/bpftrace_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [bpftrace exporter](https://github.com/andreasgerstmayr/bpftrace_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-bpftrace_variables",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-cadvisor",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"cAdvisor",link:"https://github.com/google/cadvisor",icon_filename:"cadvisor.png",categories:["data-collection.containers-and-vms"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# cAdvisor\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor container resource usage and performance metrics with cAdvisor for efficient container management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [cAdvisor](https://github.com/google/cadvisor).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [cAdvisor](https://github.com/google/cadvisor) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-cAdvisor",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-etcd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"etcd",link:"https://etcd.io/",icon_filename:"etcd.svg",categories:["data-collection.service-discovery-registry"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# etcd\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack etcd database metrics for optimized distributed key-value store management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to etcd built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-etcd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-gpsd",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"gpsd",link:"https://github.com/natesales/gpsd-exporter",icon_filename:"gpsd.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# gpsd\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor GPSD (GPS daemon) metrics for efficient GPS data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [gpsd exporter](https://github.com/natesales/gpsd-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [gpsd exporter](https://github.com/natesales/gpsd-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-gpsd",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-iqair",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"iqAir AirVisual air quality monitors",link:"https://github.com/Packetslave/iqair_exporter",icon_filename:"iqair.svg",categories:["data-collection.iot-devices"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# iqAir AirVisual air quality monitors\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor air quality data from IQAir devices for efficient environmental monitoring and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IQair Exporter](https://github.com/Packetslave/iqair_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IQair Exporter](https://github.com/Packetslave/iqair_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-iqAir_AirVisual_air_quality_monitors",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-jolokia",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"jolokia",link:"https://github.com/aklinkert/jolokia_exporter",icon_filename:"jolokia.png",categories:["data-collection.apm"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# jolokia\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor Jolokia JVM metrics for optimized Java application performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [jolokia_exporter](https://github.com/aklinkert/jolokia_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [jolokia_exporter](https://github.com/aklinkert/jolokia_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-jolokia",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-journald",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"journald",link:"https://github.com/dead-claudia/journald-exporter",icon_filename:"linux.png",categories:["data-collection.logs-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# journald\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on systemd-journald metrics for efficient log management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [journald-exporter](https://github.com/dead-claudia/journald-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [journald-exporter](https://github.com/dead-claudia/journald-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-journald",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-loki",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"loki",link:"https://github.com/grafana/loki",icon_filename:"loki.png",categories:["data-collection.logs-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# loki\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack Loki metrics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [loki](https://github.com/grafana/loki).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Loki\n\nInstall [loki](https://github.com/grafana/loki) according to its documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-loki",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-mosquitto",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"mosquitto",link:"https://github.com/sapcc/mosquitto-exporter",icon_filename:"mosquitto.svg",categories:["data-collection.message-brokers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# mosquitto\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nKeep an eye on Mosquitto MQTT broker metrics for efficient IoT message transport and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mosquitto exporter](https://github.com/sapcc/mosquitto-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [mosquitto exporter](https://github.com/sapcc/mosquitto-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-mosquitto",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-mtail",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"mtail",link:"https://github.com/google/mtail",icon_filename:"mtail.png",categories:["data-collection.logs-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# mtail\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor log data metrics using mtail log data extractor and parser.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mtail](https://github.com/google/mtail).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [mtail](https://github.com/google/mtail) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-mtail",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-nftables",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"nftables",link:"https://github.com/Sheridan/nftables_exporter",icon_filename:"nftables.png",categories:["data-collection.linux-systems.firewall-metrics"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# nftables\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor nftables firewall metrics for efficient network security and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [nftables_exporter](https://github.com/Sheridan/nftables_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [nftables_exporter](https://github.com/Sheridan/nftables_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-nftables",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-pgbackrest",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"pgBackRest",link:"https://github.com/woblerr/pgbackrest_exporter",icon_filename:"pgbackrest.png",categories:["data-collection.database-servers"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# pgBackRest\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nMonitor pgBackRest PostgreSQL backup metrics for efficient database backup and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [pgBackRest Exporter](https://github.com/woblerr/pgbackrest_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [pgBackRest Exporter](https://github.com/woblerr/pgbackrest_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-pgBackRest",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-prometheus-strongswan",module_name:"prometheus",plugin_name:"go.d.plugin",monitored_instance:{name:"strongSwan",link:"https://github.com/jlti-dev/ipsec_exporter",icon_filename:"strongswan.svg",categories:["data-collection.vpns"]},keywords:[],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1,community:!0},overview:"# strongSwan\n\nPlugin: go.d.plugin\nModule: prometheus\n\n## Overview\n\nTrack strongSwan VPN and IPSec metrics using the vici interface for efficient virtual private network (VPN) management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [strongSwan/IPSec/vici Exporter](https://github.com/jlti-dev/ipsec_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [strongSwan/IPSec/vici Exporter](https://github.com/jlti-dev/ipsec_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 10 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| selector | Time series selector (filter). | | no |\n| fallback_type | Time series selector (filter). | | no |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | 2000 | no |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | 200 | no |\n| timeout | HTTP request timeout. | 10 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/pkg/prometheus/selector/README.md).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### Read metrics from a file\n\nAn example configuration to read metrics from a file.\n\n{% details summary="Config" %}\n```yaml\n# use "file://" scheme\njobs:\n - name: myapp\n url: file:///opt/metrics/myapp/metrics.txt\n\n```\n{% /details %}\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n",integration_type:"collector",id:"go.d.plugin-prometheus-strongSwan",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/prometheus/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-proxysql",plugin_name:"go.d.plugin",module_name:"proxysql",monitored_instance:{name:"ProxySQL",link:"https://www.proxysql.com/",icon_filename:"proxysql.png",categories:["data-collection.database-servers"]},keywords:["proxysql","databases","sql"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# ProxySQL\n\nPlugin: go.d.plugin\nModule: proxysql\n\n## Overview\n\nThis collector monitors ProxySQL servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/proxysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/proxysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| dsn | Data Source Name. See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | stats:stats@tcp(127.0.0.1:6032)/ | yes |\n| timeout | Query timeout in seconds. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: stats:stats@tcp(127.0.0.1:6032)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n my.cnf: \'/etc/my.cnf\'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n dsn: stats:stats@tcp(127.0.0.1:6032)/\n\n - name: remote\n dsn: stats:stats@tcp(203.0.113.0:6032)/\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `proxysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m proxysql\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ProxySQL instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.client_connections_count | connected, non_idle, hostgroup_locked | connections |\n| proxysql.client_connections_rate | created, aborted | connections/s |\n| proxysql.server_connections_count | connected | connections |\n| proxysql.server_connections_rate | created, aborted, delayed | connections/s |\n| proxysql.backends_traffic | recv, sent | B/s |\n| proxysql.clients_traffic | recv, sent | B/s |\n| proxysql.active_transactions_count | client | connections |\n| proxysql.questions_rate | questions | questions/s |\n| proxysql.slow_queries_rate | slow | queries/s |\n| proxysql.queries_rate | autocommit, autocommit_filtered, commit_filtered, rollback, rollback_filtered, backend_change_user, backend_init_db, backend_set_names, frontend_init_db, frontend_set_names, frontend_use_db | queries/s |\n| proxysql.backend_statements_count | total, unique | statements |\n| proxysql.backend_statements_rate | prepare, execute, close | statements/s |\n| proxysql.client_statements_count | total, unique | statements |\n| proxysql.client_statements_rate | prepare, execute, close | statements/s |\n| proxysql.cached_statements_count | cached | statements |\n| proxysql.query_cache_entries_count | entries | entries |\n| proxysql.query_cache_memory_used | used | B |\n| proxysql.query_cache_io | in, out | B/s |\n| proxysql.query_cache_requests_rate | read, write, read_success | requests/s |\n| proxysql.mysql_monitor_workers_count | workers, auxiliary | threads |\n| proxysql.mysql_monitor_workers_rate | started | workers/s |\n| proxysql.mysql_monitor_connect_checks_rate | succeed, failed | checks/s |\n| proxysql.mysql_monitor_ping_checks_rate | succeed, failed | checks/s |\n| proxysql.mysql_monitor_read_only_checks_rate | succeed, failed | checks/s |\n| proxysql.mysql_monitor_replication_lag_checks_rate | succeed, failed | checks/s |\n| proxysql.jemalloc_memory_used | active, allocated, mapped, metadata, resident, retained | B |\n| proxysql.memory_used | auth, sqlite3, query_digest, query_rules, firewall_users_table, firewall_users_config, firewall_rules_table, firewall_rules_config, mysql_threads, admin_threads, cluster_threads | B |\n| proxysql.uptime | uptime | seconds |\n\n### Per command\n\nThese metrics refer to the SQL command.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| command | SQL command. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.mysql_command_execution_rate | uptime | seconds |\n| proxysql.mysql_command_execution_time | time | microseconds |\n| proxysql.mysql_command_execution_duration | 100us, 500us, 1ms, 5ms, 10ms, 50ms, 100ms, 500ms, 1s, 5s, 10s, +Inf | microseconds |\n\n### Per user\n\nThese metrics refer to the user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username from the mysql_users table |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.mysql_user_connections_utilization | used | percentage |\n| proxysql.mysql_user_connections_count | used | connections |\n\n### Per backend\n\nThese metrics refer to the backend server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| host | backend server host |\n| port | backend server port |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.backend_status | online, shunned, offline_soft, offline_hard | status |\n| proxysql.backend_connections_usage | free, used | connections |\n| proxysql.backend_connections_rate | succeed, failed | connections/s |\n| proxysql.backend_queries_rate | queries | queries/s |\n| proxysql.backend_traffic | recv, send | B/s |\n| proxysql.backend_latency | latency | microseconds |\n\n",integration_type:"collector",id:"go.d.plugin-proxysql-ProxySQL",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/proxysql/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-pulsar",plugin_name:"go.d.plugin",module_name:"pulsar",monitored_instance:{name:"Apache Pulsar",link:"https://pulsar.apache.org/",icon_filename:"pulsar.svg",categories:["data-collection.message-brokers"]},keywords:["pulsar"],related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"}]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Apache Pulsar\n\nPlugin: go.d.plugin\nModule: pulsar\n\n## Overview\n\nThis collector monitors Pulsar servers.\n\n\nIt collects broker statistics using Pulsar's [Prometheus endpoint](https://pulsar.apache.org/docs/en/deploy-monitoring/#broker-stats).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Pulsar instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pulsar.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pulsar.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8080/metrics | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8080/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/metrics\n\n - name: remote\n url: http://192.0.2.1:8080/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pulsar` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pulsar\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n- topic_* metrics are available when `exposeTopicLevelMetricsInPrometheus` is set to true.\n- subscription_* and namespace_subscription metrics are available when `exposeTopicLevelMetricsInPrometheus` si set to true.\n- replication_* and namespace_replication_* metrics are available when replication is configured and `replicationMetricsEnabled` is set to true.\n\n\n### Per Apache Pulsar instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pulsar.broker_components | namespaces, topics, subscriptions, producers, consumers | components |\n| pulsar.messages_rate | publish, dispatch | messages/s |\n| pulsar.throughput_rate | publish, dispatch | KiB/s |\n| pulsar.storage_size | used | KiB |\n| pulsar.storage_operations_rate | read, write | message batches/s |\n| pulsar.msg_backlog | backlog | messages |\n| pulsar.storage_write_latency | <=0.5ms, <=1ms, <=5ms, =10ms, <=20ms, <=50ms, <=100ms, <=200ms, <=1s, >1s | entries/s |\n| pulsar.entry_size | <=128B, <=512B, <=1KB, <=2KB, <=4KB, <=16KB, <=100KB, <=1MB, >1MB | entries/s |\n| pulsar.subscription_delayed | delayed | message batches |\n| pulsar.subscription_msg_rate_redeliver | redelivered | messages/s |\n| pulsar.subscription_blocked_on_unacked_messages | blocked | subscriptions |\n| pulsar.replication_rate | in, out | messages/s |\n| pulsar.replication_throughput_rate | in, out | KiB/s |\n| pulsar.replication_backlog | backlog | messages |\n\n### Per namespace\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pulsar.namespace_broker_components | topics, subscriptions, producers, consumers | components |\n| pulsar.namespace_messages_rate | publish, dispatch | messages/s |\n| pulsar.namespace_throughput_rate | publish, dispatch | KiB/s |\n| pulsar.namespace_storage_size | used | KiB |\n| pulsar.namespace_storage_operations_rate | read, write | message batches/s |\n| pulsar.namespace_msg_backlog | backlog | messages |\n| pulsar.namespace_storage_write_latency | <=0.5ms, <=1ms, <=5ms, =10ms, <=20ms, <=50ms, <=100ms, <=200ms, <=1s, >1s | entries/s |\n| pulsar.namespace_entry_size | <=128B, <=512B, <=1KB, <=2KB, <=4KB, <=16KB, <=100KB, <=1MB, >1MB | entries/s |\n| pulsar.namespace_subscription_delayed | delayed | message batches |\n| pulsar.namespace_subscription_msg_rate_redeliver | redelivered | messages/s |\n| pulsar.namespace_subscription_blocked_on_unacked_messages | blocked | subscriptions |\n| pulsar.namespace_replication_rate | in, out | messages/s |\n| pulsar.namespace_replication_throughput_rate | in, out | KiB/s |\n| pulsar.namespace_replication_backlog | backlog | messages |\n| pulsar.topic_producers | a dimension per topic | producers |\n| pulsar.topic_subscriptions | a dimension per topic | subscriptions |\n| pulsar.topic_consumers | a dimension per topic | consumers |\n| pulsar.topic_messages_rate_in | a dimension per topic | publishes/s |\n| pulsar.topic_messages_rate_out | a dimension per topic | dispatches/s |\n| pulsar.topic_throughput_rate_in | a dimension per topic | KiB/s |\n| pulsar.topic_throughput_rate_out | a dimension per topic | KiB/s |\n| pulsar.topic_storage_size | a dimension per topic | KiB |\n| pulsar.topic_storage_read_rate | a dimension per topic | message batches/s |\n| pulsar.topic_storage_write_rate | a dimension per topic | message batches/s |\n| pulsar.topic_msg_backlog | a dimension per topic | messages |\n| pulsar.topic_subscription_delayed | a dimension per topic | message batches |\n| pulsar.topic_subscription_msg_rate_redeliver | a dimension per topic | messages/s |\n| pulsar.topic_subscription_blocked_on_unacked_messages | a dimension per topic | blocked subscriptions |\n| pulsar.topic_replication_rate_in | a dimension per topic | messages/s |\n| pulsar.topic_replication_rate_out | a dimension per topic | messages/s |\n| pulsar.topic_replication_throughput_rate_in | a dimension per topic | messages/s |\n| pulsar.topic_replication_throughput_rate_out | a dimension per topic | messages/s |\n| pulsar.topic_replication_backlog | a dimension per topic | messages |\n\n",integration_type:"collector",id:"go.d.plugin-pulsar-Apache_Pulsar",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/pulsar/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-rabbitmq",plugin_name:"go.d.plugin",module_name:"rabbitmq",monitored_instance:{name:"RabbitMQ",link:"https://www.rabbitmq.com/",icon_filename:"rabbitmq.svg",categories:["data-collection.message-brokers"]},keywords:["rabbitmq","message brokers"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# RabbitMQ\n\nPlugin: go.d.plugin\nModule: rabbitmq\n\n## Overview\n\nThis collector monitors RabbitMQ instances.\n\nIt collects data using an HTTP-based API provided by the [management plugin](https://www.rabbitmq.com/management.html).\nThe following endpoints are used:\n\n- `/api/overview`\n- `/api/node/{node_name}`\n- `/api/vhosts`\n- `/api/queues` (disabled by default)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable management plugin.\n\nThe management plugin is included in the RabbitMQ distribution, but disabled.\nTo enable see [Management Plugin](https://www.rabbitmq.com/management.html#getting-started) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/rabbitmq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/rabbitmq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://localhost:15672 | yes |\n| collect_queues_metrics | Collect stats per vhost per queues. Enabling this can introduce serious overhead on both Netdata and RabbitMQ if many queues are configured and used. | no | no |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:15672\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:15672\n username: admin\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:15672\n\n - name: remote\n url: http://192.0.2.0:15672\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `rabbitmq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m rabbitmq\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RabbitMQ instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rabbitmq.messages_count | ready, unacknowledged | messages |\n| rabbitmq.messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |\n| rabbitmq.objects_count | channels, consumers, connections, queues, exchanges | messages |\n| rabbitmq.connection_churn_rate | created, closed | operations/s |\n| rabbitmq.channel_churn_rate | created, closed | operations/s |\n| rabbitmq.queue_churn_rate | created, deleted, declared | operations/s |\n| rabbitmq.file_descriptors_count | available, used | fd |\n| rabbitmq.sockets_count | available, used | sockets |\n| rabbitmq.erlang_processes_count | available, used | processes |\n| rabbitmq.erlang_run_queue_processes_count | length | processes |\n| rabbitmq.memory_usage | used | bytes |\n| rabbitmq.disk_space_free_size | free | bytes |\n\n### Per vhost\n\nThese metrics refer to the virtual host.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vhost | virtual host name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rabbitmq.vhost_messages_count | ready, unacknowledged | messages |\n| rabbitmq.vhost_messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |\n\n### Per queue\n\nThese metrics refer to the virtual host queue.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vhost | virtual host name |\n| queue | queue name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rabbitmq.queue_messages_count | ready, unacknowledged, paged_out, persistent | messages |\n| rabbitmq.queue_messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |\n\n",integration_type:"collector",id:"go.d.plugin-rabbitmq-RabbitMQ",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/rabbitmq/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-redis",plugin_name:"go.d.plugin",module_name:"redis",monitored_instance:{name:"Redis",link:"https://redis.com/",categories:["data-collection.database-servers"],icon_filename:"redis.svg"},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"},{plugin_name:"cgroups.plugin",module_name:"cgroups"}]}},alternative_monitored_instances:[],info_provided_to_referring_integrations:{description:""},keywords:["redis","databases"],most_popular:!0},overview:"# Redis\n\nPlugin: go.d.plugin\nModule: redis\n\n## Overview\n\nThis collector monitors the health and performance of Redis servers and collects general statistics, CPU and memory consumption, replication information, command statistics, and more.\n\n\nIt connects to the Redis instance via a TCP or UNIX socket and executes the following commands:\n\n- [INFO ALL](https://redis.io/commands/info)\n- [PING](https://redis.io/commands/ping/)\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect using known Redis TCP and UNIX sockets:\n\n- 127.0.0.1:6379\n- /tmp/redis.sock\n- /var/run/redis/redis.sock\n- /var/lib/redis/redis.sock\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/redis.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/redis.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Redis server address. | redis://@localhost:6379 | yes |\n| timeout | Dial (establishing new connections), read (socket reads) and write (socket writes) timeout in seconds. | 1 | no |\n| username | Username used for authentication. | | no |\n| password | Password used for authentication. | | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certificate authority that client use when verifying server certificates. | | no |\n| tls_cert | Client tls certificate. | | no |\n| tls_key | Client tls key. | | no |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://@127.0.0.1:6379'\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'unix://@/tmp/redis.sock'\n\n```\n{% /details %}\n##### TCP socket with password\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:6379'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:6379'\n\n - name: remote\n address: 'redis://user:password@203.0.113.0:6379'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `redis` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m redis\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ redis_connections_rejected ](https://github.com/netdata/netdata/blob/master/src/health/health.d/redis.conf) | redis.connections | connections rejected because of maxclients limit in the last minute |\n| [ redis_bgsave_slow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/redis.conf) | redis.bgsave_now | duration of the on-going RDB save operation |\n| [ redis_bgsave_broken ](https://github.com/netdata/netdata/blob/master/src/health/health.d/redis.conf) | redis.bgsave_health | status of the last RDB save operation (0: ok, 1: error) |\n| [ redis_master_link_down ](https://github.com/netdata/netdata/blob/master/src/health/health.d/redis.conf) | redis.master_link_down_since_time | time elapsed since the link between master and slave is down |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Redis instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| redis.connections | accepted, rejected | connections/s |\n| redis.clients | connected, blocked, tracking, in_timeout_table | clients |\n| redis.ping_latency | min, max, avg | seconds |\n| redis.commands | processes | commands/s |\n| redis.keyspace_lookup_hit_rate | lookup_hit_rate | percentage |\n| redis.memory | max, used, rss, peak, dataset, lua, scripts | bytes |\n| redis.mem_fragmentation_ratio | mem_fragmentation | ratio |\n| redis.key_eviction_events | evicted | keys/s |\n| redis.net | received, sent | kilobits/s |\n| redis.rdb_changes | changes | operations |\n| redis.bgsave_now | current_bgsave_time | seconds |\n| redis.bgsave_health | last_bgsave | status |\n| redis.bgsave_last_rdb_save_since_time | last_bgsave_time | seconds |\n| redis.aof_file_size | current, base | bytes |\n| redis.commands_calls | a dimension per command | calls |\n| redis.commands_usec | a dimension per command | microseconds |\n| redis.commands_usec_per_sec | a dimension per command | microseconds/s |\n| redis.key_expiration_events | expired | keys/s |\n| redis.database_keys | a dimension per database | keys |\n| redis.database_expires_keys | a dimension per database | keys |\n| redis.connected_replicas | connected | replicas |\n| redis.master_link_status | up, down | status |\n| redis.master_last_io_since_time | time | seconds |\n| redis.master_link_down_since_time | time | seconds |\n| redis.uptime | uptime | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-redis-Redis",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/redis/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-scaleio",plugin_name:"go.d.plugin",module_name:"scaleio",monitored_instance:{name:"Dell EMC ScaleIO",link:"https://www.dell.com/en-ca/dt/storage/scaleio/scaleioreadynode.htm",icon_filename:"dell.svg",categories:["data-collection.storage-mount-points-and-filesystems"]},keywords:["scaleio"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Dell EMC ScaleIO\n\nPlugin: go.d.plugin\nModule: scaleio\n\n## Overview\n\nThis collector monitors ScaleIO (VxFlex OS) instances via VxFlex OS Gateway API.\n\nIt collects metrics for the following ScaleIO components:\n\n- System\n- Storage Pool\n- Sdc\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/scaleio.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/scaleio.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | https://127.0.0.1:80 | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | yes |\n| password | Password for basic HTTP authentication. | | yes |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1\n username: admin\n password: password\n tls_skip_verify: yes # self-signed certificate\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instance.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1\n username: admin\n password: password\n tls_skip_verify: yes # self-signed certificate\n\n - name: remote\n url: https://203.0.113.10\n username: admin\n password: password\n tls_skip_verify: yes\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `scaleio` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m scaleio\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dell EMC ScaleIO instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| scaleio.system_capacity_total | total | KiB |\n| scaleio.system_capacity_in_use | in_use | KiB |\n| scaleio.system_capacity_usage | thick, decreased, thin, snapshot, spare, unused | KiB |\n| scaleio.system_capacity_available_volume_allocation | available | KiB |\n| scaleio.system_capacity_health_state | protected, degraded, in_maintenance, failed, unavailable | KiB |\n| scaleio.system_workload_primary_bandwidth_total | total | KiB/s |\n| scaleio.system_workload_primary_bandwidth | read, write | KiB/s |\n| scaleio.system_workload_primary_iops_total | total | iops/s |\n| scaleio.system_workload_primary_iops | read, write | iops/s |\n| scaleio.system_workload_primary_io_size_total | io_size | KiB |\n| scaleio.system_rebalance | read, write | KiB/s |\n| scaleio.system_rebalance_left | left | KiB |\n| scaleio.system_rebalance_time_until_finish | time | seconds |\n| scaleio.system_rebuild | read, write | KiB/s |\n| scaleio.system_rebuild_left | left | KiB |\n| scaleio.system_defined_components | devices, fault_sets, protection_domains, rfcache_devices, sdc, sds, snapshots, storage_pools, volumes, vtrees | components |\n| scaleio.system_components_volumes_by_type | thick, thin | volumes |\n| scaleio.system_components_volumes_by_mapping | mapped, unmapped | volumes |\n\n### Per storage pool\n\nThese metrics refer to the storage pool.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| scaleio.storage_pool_capacity_total | total | KiB |\n| scaleio.storage_pool_capacity_in_use | in_use | KiB |\n| scaleio.storage_pool_capacity_usage | thick, decreased, thin, snapshot, spare, unused | KiB |\n| scaleio.storage_pool_capacity_utilization | used | percentage |\n| scaleio.storage_pool_capacity_available_volume_allocation | available | KiB |\n| scaleio.storage_pool_capacity_health_state | protected, degraded, in_maintenance, failed, unavailable | KiB |\n| scaleio.storage_pool_components | devices, snapshots, volumes, vtrees | components |\n\n### Per sdc\n\nThese metrics refer to the SDC (ScaleIO Data Client).\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| scaleio.sdc_mdm_connection_state | connected | boolean |\n| scaleio.sdc_bandwidth | read, write | KiB/s |\n| scaleio.sdc_iops | read, write | iops/s |\n| scaleio.sdc_io_size | read, write | KiB |\n| scaleio.sdc_num_of_mapped_volumed | mapped | volumes |\n\n",integration_type:"collector",id:"go.d.plugin-scaleio-Dell_EMC_ScaleIO",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/scaleio/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-snmp",plugin_name:"go.d.plugin",module_name:"snmp",monitored_instance:{name:"SNMP devices",link:"",icon_filename:"snmp.png",categories:["data-collection.generic-data-collection"]},keywords:["snmp"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# SNMP devices\n\nPlugin: go.d.plugin\nModule: snmp\n\n## Overview\n\nThis collector monitors any SNMP devices and uses the [gosnmp](https://github.com/gosnmp/gosnmp) package.\n\nIt supports:\n\n- all SNMP versions: SNMPv1, SNMPv2c and SNMPv3.\n- any number of SNMP devices.\n- each SNMP device can be used to collect data for any number of charts.\n- each chart may have any number of dimensions.\n- each SNMP device may have a different update frequency.\n- each SNMP device will accept one or more batches to report values (you can set `max_request_size` per SNMP server, to control the size of batches).\n\nKeep in mind that many SNMP switches and routers are very slow. They may not be able to report values per second.\n`go.d.plugin` reports the time it took for the SNMP device to respond when executed in the debug mode.\n\nAlso, if many SNMP clients are used on the same SNMP device at the same time, values may be skipped.\nThis is a problem of the SNMP device, not this collector. In this case, consider reducing the frequency of data collection (increasing `update_every`).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Find OIDs\n\nUse `snmpwalk`, like this:\n\n```sh\nsnmpwalk -t 20 -O fn -v 2c -c public 192.0.2.1\n```\n\n- `-t 20` is the timeout in seconds.\n- `-O fn` will display full OIDs in numeric format.\n- `-v 2c` is the SNMP version.\n- `-c public` is the SNMP community.\n- `192.0.2.1` is the SNMP device.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/snmp.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/snmp.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| hostname | Target ipv4 address. | 127.0.0.1 | yes |\n| community | SNMPv1/2 community string. | public | no |\n| options.version | SNMP version. Available versions: 1, 2, 3. | 2 | no |\n| options.port | Target port. | 161 | no |\n| options.retries | Retries to attempt. | 1 | no |\n| options.timeout | SNMP request/response timeout. | 10 | no |\n| options.max_request_size | Maximum number of OIDs allowed in one one SNMP request. | 60 | no |\n| user.name | SNMPv3 user name. | | no |\n| user.name | Security level of SNMPv3 messages. | | no |\n| user.auth_proto | Security level of SNMPv3 messages. | | no |\n| user.name | Authentication protocol for SNMPv3 messages. | | no |\n| user.auth_key | Authentication protocol pass phrase. | | no |\n| user.priv_proto | Privacy protocol for SNMPv3 messages. | | no |\n| user.priv_key | Privacy protocol pass phrase. | | no |\n| charts | List of charts. | [] | yes |\n| charts.id | Chart ID. Used to uniquely identify the chart. | | yes |\n| charts.title | Chart title. | Untitled chart | no |\n| charts.units | Chart units. | num | no |\n| charts.family | Chart family. | charts.id | no |\n| charts.type | Chart type (line, area, stacked). | line | no |\n| charts.priority | Chart priority. | 70000 | no |\n| charts.multiply_range | Used when you need to define many charts using incremental OIDs. | [] | no |\n| charts.dimensions | List of chart dimensions. | [] | yes |\n| charts.dimensions.oid | Collected metric OID. | | yes |\n| charts.dimensions.name | Dimension name. | | yes |\n| charts.dimensions.algorithm | Dimension algorithm (absolute, incremental). | absolute | no |\n| charts.dimensions.multiplier | Collected value multiplier, applied to convert it properly to units. | 1 | no |\n| charts.dimensions.divisor | Collected value divisor, applied to convert it properly to units. | 1 | no |\n\n##### user.auth_proto\n\nThe security of an SNMPv3 message as per RFC 3414 (`user.level`):\n\n| String value | Int value | Description |\n|:------------:|:---------:|------------------------------------------|\n| none | 1 | no message authentication or encryption |\n| authNoPriv | 2 | message authentication and no encryption |\n| authPriv | 3 | message authentication and encryption |\n\n\n##### user.name\n\nThe digest algorithm for SNMPv3 messages that require authentication (`user.auth_proto`):\n\n| String value | Int value | Description |\n|:------------:|:---------:|-------------------------------------------|\n| none | 1 | no message authentication |\n| md5 | 2 | MD5 message authentication (HMAC-MD5-96) |\n| sha | 3 | SHA message authentication (HMAC-SHA-96) |\n| sha224 | 4 | SHA message authentication (HMAC-SHA-224) |\n| sha256 | 5 | SHA message authentication (HMAC-SHA-256) |\n| sha384 | 6 | SHA message authentication (HMAC-SHA-384) |\n| sha512 | 7 | SHA message authentication (HMAC-SHA-512) |\n\n\n##### user.priv_proto\n\nThe encryption algorithm for SNMPv3 messages that require privacy (`user.priv_proto`):\n\n| String value | Int value | Description |\n|:------------:|:---------:|-------------------------------------------------------------------------|\n| none | 1 | no message encryption |\n| des | 2 | ES encryption (CBC-DES) |\n| aes | 3 | 128-bit AES encryption (CFB-AES-128) |\n| aes192 | 4 | 192-bit AES encryption (CFB-AES-192) with "Blumenthal" key localization |\n| aes256 | 5 | 256-bit AES encryption (CFB-AES-256) with "Blumenthal" key localization |\n| aes192c | 6 | 192-bit AES encryption (CFB-AES-192) with "Reeder" key localization |\n| aes256c | 7 | 256-bit AES encryption (CFB-AES-256) with "Reeder" key localization |\n\n\n{% /details %}\n#### Examples\n\n##### SNMPv1/2\n\nIn this example:\n\n- the SNMP device is `192.0.2.1`.\n- the SNMP version is `2`.\n- the SNMP community is `public`.\n- we will update the values every 10 seconds.\n- we define 2 charts `bandwidth_port1` and `bandwidth_port2`, each having 2 dimensions: `in` and `out`.\n\n> **SNMPv1**: just set `options.version` to 1.\n> **Note**: the algorithm chosen is `incremental`, because the collected values show the total number of bytes transferred, which we need to transform into kbps. To chart gauges (e.g. temperature), use `absolute` instead.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: switch\n update_every: 10\n hostname: 192.0.2.1\n community: public\n options:\n version: 2\n charts:\n - id: "bandwidth_port1"\n title: "Switch Bandwidth for port 1"\n units: "kilobits/s"\n type: "area"\n family: "ports"\n dimensions:\n - name: "in"\n oid: "1.3.6.1.2.1.2.2.1.10.1"\n algorithm: "incremental"\n multiplier: 8\n divisor: 1000\n - name: "out"\n oid: "1.3.6.1.2.1.2.2.1.16.1"\n multiplier: -8\n divisor: 1000\n - id: "bandwidth_port2"\n title: "Switch Bandwidth for port 2"\n units: "kilobits/s"\n type: "area"\n family: "ports"\n dimensions:\n - name: "in"\n oid: "1.3.6.1.2.1.2.2.1.10.2"\n algorithm: "incremental"\n multiplier: 8\n divisor: 1000\n - name: "out"\n oid: "1.3.6.1.2.1.2.2.1.16.2"\n multiplier: -8\n divisor: 1000\n\n```\n{% /details %}\n##### SNMPv3\n\nTo use SNMPv3:\n\n- use `user` instead of `community`.\n- set `options.version` to 3.\n\nThe rest of the configuration is the same as in the SNMPv1/2 example.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: switch\n update_every: 10\n hostname: 192.0.2.1\n options:\n version: 3\n user:\n name: username\n level: authPriv\n auth_proto: sha256\n auth_key: auth_protocol_passphrase\n priv_proto: aes256\n priv_key: priv_protocol_passphrase\n\n```\n{% /details %}\n##### Multiply range\n\nIf you need to define many charts using incremental OIDs, you can use the `charts.multiply_range` option.\n\nThis is like the SNMPv1/2 example, but the option will multiply the current chart from 1 to 24 inclusive, producing 24 charts in total for the 24 ports of the switch `192.0.2.1`.\n\nEach of the 24 new charts will have its id (1-24) appended at:\n\n- its chart unique `id`, i.e. `bandwidth_port_1` to `bandwidth_port_24`.\n- its title, i.e. `Switch Bandwidth for port 1` to `Switch Bandwidth for port 24`.\n- its `oid` (for all dimensions), i.e. dimension in will be `1.3.6.1.2.1.2.2.1.10.1` to `1.3.6.1.2.1.2.2.1.10.24`.\n- its `priority` will be incremented for each chart so that the charts will appear on the dashboard in this order.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: switch\n update_every: 10\n hostname: "192.0.2.1"\n community: public\n options:\n version: 2\n charts:\n - id: "bandwidth_port"\n title: "Switch Bandwidth for port"\n units: "kilobits/s"\n type: "area"\n family: "ports"\n multiply_range: [1, 24]\n dimensions:\n - name: "in"\n oid: "1.3.6.1.2.1.2.2.1.10"\n algorithm: "incremental"\n multiplier: 8\n divisor: 1000\n - name: "out"\n oid: "1.3.6.1.2.1.2.2.1.16"\n multiplier: -8\n divisor: 1000\n\n```\n{% /details %}\n##### Multiple devices with a common configuration\n\nYAML supports [anchors](https://yaml.org/spec/1.2.2/#3222-anchors-and-aliases). \nThe `&` defines and names an anchor, and the `*` uses it. `<<: *anchor` means, inject the anchor, then extend. We can use anchors to share the common configuration for multiple devices.\n\nThe following example:\n\n- adds an `anchor` to the first job.\n- injects (copies) the first job configuration to the second and updates `name` and `hostname` parameters.\n- injects (copies) the first job configuration to the third and updates `name` and `hostname` parameters.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - &anchor\n name: switch\n update_every: 10\n hostname: "192.0.2.1"\n community: public\n options:\n version: 2\n charts:\n - id: "bandwidth_port1"\n title: "Switch Bandwidth for port 1"\n units: "kilobits/s"\n type: "area"\n family: "ports"\n dimensions:\n - name: "in"\n oid: "1.3.6.1.2.1.2.2.1.10.1"\n algorithm: "incremental"\n multiplier: 8\n divisor: 1000\n - name: "out"\n oid: "1.3.6.1.2.1.2.2.1.16.1"\n multiplier: -8\n divisor: 1000\n - <<: *anchor\n name: switch2\n hostname: "192.0.2.2"\n - <<: *anchor\n name: switch3\n hostname: "192.0.2.3"\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `snmp` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m snmp\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nThe metrics that will be collected are defined in the configuration file.\n",integration_type:"collector",id:"go.d.plugin-snmp-SNMP_devices",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/snmp/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-squidlog",plugin_name:"go.d.plugin",module_name:"squidlog",monitored_instance:{name:"Squid log files",link:"https://www.lighttpd.net/",icon_filename:"squid.png",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["squid","logs"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# Squid log files\n\nPlugin: go.d.plugin\nModule: squidlog\n\n## Overview\n\nhis collector monitors Squid servers by parsing their access log files.\n\n\nIt automatically detects log files of Squid severs running on localhost.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/squidlog.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/squidlog.conf\n```\n#### Options\n\nSquid [log format codes](http://www.squid-cache.org/Doc/config/logformat/).\n\nSquidlog is aware how to parse and interpret the following codes:\n\n| field | squid format code | description |\n|----------------|-------------------|---------------------------------------------------------------|\n| resp_time | %tr | Response time (milliseconds). |\n| client_address | %>a | Client source IP address. |\n| client_address | %>A | Client FQDN. |\n| cache_code | %Ss | Squid request status (TCP_MISS etc). |\n| http_code | %>Hs | The HTTP response status code from Content Gateway to client. |\n| resp_size | %<st | Total size of reply sent to client (after adaptation). |\n| req_method | %rm | Request method (GET/POST etc). |\n| hier_code | %Sh | Squid hierarchy status (DEFAULT_PARENT etc). |\n| server_address | %<a | Server IP address of the last server or peer connection. |\n| server_address | %<A | Server FQDN or peer name. |\n| mime_type | %mt | MIME content type. |\n\nIn addition, to make `Squid` [native log format](https://wiki.squid-cache.org/Features/LogFormat#Squid_native_access.log_format_in_detail) csv parsable, squidlog understands these groups of codes:\n\n| field | squid format code | description |\n|-------------|-------------------|------------------------------------|\n| result_code | %Ss/%>Hs | Cache code and http code. |\n| hierarchy | %Sh/%<a | Hierarchy code and server address. |\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| path | Path to the Squid access log file. | /var/log/squid/access.log | yes |\n| exclude_path | Path to exclude. | *.gz | no |\n| parser | Log parser configuration. | | no |\n| parser.log_type | Log parser type. | auto | no |\n| parser.csv_config | CSV log parser config. | | no |\n| parser.csv_config.delimiter | CSV field delimiter. | space | no |\n| parser.csv_config.format | CSV log format. | - $resp_time $client_address $result_code $resp_size $req_method - - $hierarchy $mime_type | yes |\n| parser.ltsv_config | LTSV log parser config. | | no |\n| parser.ltsv_config.field_delimiter | LTSV field delimiter. | \\t | no |\n| parser.ltsv_config.value_delimiter | LTSV value delimiter. | : | no |\n| parser.ltsv_config.mapping | LTSV fields mapping to **known fields**. | | yes |\n| parser.regexp_config | RegExp log parser config. | | no |\n| parser.regexp_config.pattern | RegExp pattern with named groups. | | yes |\n\n##### parser.log_type\n\nWeblog supports 3 different log parsers:\n\n| Parser type | Description |\n|-------------|-------------------------------------------|\n| csv | A comma-separated values |\n| ltsv | [LTSV](http://ltsv.org/) |\n| regexp | Regular expression with named groups |\n\nSyntax:\n\n```yaml\nparser:\n log_type: csv\n```\n\n\n##### parser.csv_config.format\n\n\n\n##### parser.ltsv_config.mapping\n\nThe mapping is a dictionary where the key is a field, as in logs, and the value is the corresponding **known field**.\n\n> **Note**: don't use `$` and `%` prefixes for mapped field names.\n\n```yaml\nparser:\n log_type: ltsv\n ltsv_config:\n mapping:\n label1: field1\n label2: field2\n```\n\n\n##### parser.regexp_config.pattern\n\nUse pattern with subexpressions names. These names should be **known fields**.\n\n> **Note**: don't use `$` and `%` prefixes for mapped field names.\n\nSyntax:\n\n```yaml\nparser:\n log_type: regexp\n regexp_config:\n pattern: PATTERN\n```\n\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `squidlog` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m squidlog\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Squid log files instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| squidlog.requests | requests | requests/s |\n| squidlog.excluded_requests | unmatched | requests/s |\n| squidlog.type_requests | success, bad, redirect, error | requests/s |\n| squidlog.http_status_code_class_responses | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| squidlog.http_status_code_responses | a dimension per HTTP response code | responses/s |\n| squidlog.bandwidth | sent | kilobits/s |\n| squidlog.response_time | min, max, avg | milliseconds |\n| squidlog.uniq_clients | clients | clients |\n| squidlog.cache_result_code_requests | a dimension per cache result code | requests/s |\n| squidlog.cache_result_code_transport_tag_requests | a dimension per cache result delivery transport tag | requests/s |\n| squidlog.cache_result_code_handling_tag_requests | a dimension per cache result handling tag | requests/s |\n| squidlog.cache_code_object_tag_requests | a dimension per cache result produced object tag | requests/s |\n| squidlog.cache_code_load_source_tag_requests | a dimension per cache result load source tag | requests/s |\n| squidlog.cache_code_error_tag_requests | a dimension per cache result error tag | requests/s |\n| squidlog.http_method_requests | a dimension per HTTP method | requests/s |\n| squidlog.mime_type_requests | a dimension per MIME type | requests/s |\n| squidlog.hier_code_requests | a dimension per hierarchy code | requests/s |\n| squidlog.server_address_forwarded_requests | a dimension per server address | requests/s |\n\n",integration_type:"collector",id:"go.d.plugin-squidlog-Squid_log_files",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/squidlog/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-supervisord",plugin_name:"go.d.plugin",module_name:"supervisord",monitored_instance:{name:"Supervisor",link:"http://supervisord.org/",icon_filename:"supervisord.png",categories:["data-collection.processes-and-system-services"]},keywords:["supervisor"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Supervisor\n\nPlugin: go.d.plugin\nModule: supervisord\n\n## Overview\n\nThis collector monitors Supervisor instances.\n\nIt can collect metrics from:\n\n- [unix socket](http://supervisord.org/configuration.html?highlight=unix_http_server#unix-http-server-section-values)\n- [internal http server](http://supervisord.org/configuration.html?highlight=unix_http_server#inet-http-server-section-settings)\n\nUsed methods:\n\n- [`supervisor.getAllProcessInfo`](http://supervisord.org/api.html#supervisor.rpcinterface.SupervisorNamespaceRPCInterface.getAllProcessInfo)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/supervisord.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/supervisord.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:9001/RPC2 | yes |\n| timeout | System bus requests timeout. | 1 | no |\n\n{% /details %}\n#### Examples\n\n##### HTTP\n\nCollect metrics via HTTP.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: 'http://127.0.0.1:9001/RPC2'\n\n```\n{% /details %}\n##### Socket\n\nCollect metrics via Unix socket.\n\n{% details summary=\"Config\" %}\n```yaml\n- name: local\n url: 'unix:///run/supervisor.sock'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollect metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: 'http://127.0.0.1:9001/RPC2'\n\n - name: remote\n url: 'http://192.0.2.1:9001/RPC2'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `supervisord` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m supervisord\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Supervisor instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| supervisord.summary_processes | running, non-running | processes |\n\n### Per process group\n\nThese metrics refer to the process group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| supervisord.processes | running, non-running | processes |\n| supervisord.process_state_code | a dimension per process | code |\n| supervisord.process_exit_status | a dimension per process | exit status |\n| supervisord.process_uptime | a dimension per process | seconds |\n| supervisord.process_downtime | a dimension per process | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-supervisord-Supervisor",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/supervisord/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-systemdunits",plugin_name:"go.d.plugin",module_name:"systemdunits",monitored_instance:{name:"Systemd Units",link:"https://www.freedesktop.org/wiki/Software/systemd/",icon_filename:"systemd.svg",categories:["data-collection.systemd"]},keywords:["systemd"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Systemd Units\n\nPlugin: go.d.plugin\nModule: systemdunits\n\n## Overview\n\nThis collector monitors Systemd units state.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/systemdunits.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/systemdunits.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| include | Systemd units filter. | *.service | no |\n| timeout | System bus requests timeout. | 1 | no |\n\n##### include\n\nSystemd units matching the selector will be monitored.\n\n- Logic: (pattern1 OR pattern2)\n- Pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match)\n- Syntax:\n\n```yaml\nincludes:\n - pattern1\n - pattern2\n```\n\n\n{% /details %}\n#### Examples\n\n##### Service units\n\nCollect state of all service type units.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: service\n include:\n - '*.service'\n\n```\n{% /details %}\n##### One specific unit\n\nCollect state of one specific unit.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my-specific-service\n include:\n - 'my-specific.service'\n\n```\n{% /details %}\n##### All unit types\n\nCollect state of all units.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my-specific-service-unit\n include:\n - '*'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollect state of all service and socket type units.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: service\n include:\n - '*.service'\n\n - name: socket\n include:\n - '*.socket'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `systemdunits` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m systemdunits\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ systemd_service_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.service_unit_state | systemd service unit in the failed state |\n| [ systemd_socket_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.socket_unit_state | systemd socket unit in the failed state |\n| [ systemd_target_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.target_unit_state | systemd target unit in the failed state |\n| [ systemd_path_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.path_unit_state | systemd path unit in the failed state |\n| [ systemd_device_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.device_unit_state | systemd device unit in the failed state |\n| [ systemd_mount_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.mount_unit_state | systemd mount unit in the failed state |\n| [ systemd_automount_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.automount_unit_state | systemd automount unit in the failed state |\n| [ systemd_swap_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.swap_unit_state | systemd swap unit in the failed state |\n| [ systemd_scope_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.scope_unit_state | systemd scope unit in the failed state |\n| [ systemd_slice_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.slice_unit_state | systemd slice unit in the failed state |\n| [ systemd_timer_unit_failed_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/systemdunits.conf) | systemd.timer_unit_state | systemd timer unit in the failed state |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per unit\n\nThese metrics refer to the systemd unit.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| unit_name | systemd unit name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| systemd.service_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.socket_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.target_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.path_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.device_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.mount_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.automount_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.swap_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.timer_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.scope_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.slice_unit_state | active, inactive, activating, deactivating, failed | state |\n\n",integration_type:"collector",id:"go.d.plugin-systemdunits-Systemd_Units",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/systemdunits/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-tengine",plugin_name:"go.d.plugin",module_name:"tengine",monitored_instance:{name:"Tengine",link:"https://tengine.taobao.org/",icon_filename:"tengine.jpeg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["tengine","web","webserver"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Tengine\n\nPlugin: go.d.plugin\nModule: tengine\n\n## Overview\n\nThis collector monitors Tengine servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable ngx_http_reqstat_module module.\n\nTo enable the module, see the [official documentation](ngx_http_reqstat_module](https://tengine.taobao.org/document/http_reqstat.html).\nThe default line format is the only supported format.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/tengine.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/tengine.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1/us | yes |\n| timeout | HTTP request timeout. | 2 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/us\n\n```\n{% /details %}\n##### HTTP authentication\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/us\n username: foo\n password: bar\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nTengine with enabled HTTPS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/us\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/us\n\n - name: remote\n url: http://203.0.113.10/us\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `tengine` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m tengine\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Tengine instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tengine.bandwidth_total | in, out | B/s |\n| tengine.connections_total | accepted | connections/s |\n| tengine.requests_total | processed | requests/s |\n| tengine.requests_per_response_code_family_total | 2xx, 3xx, 4xx, 5xx, other | requests/s |\n| tengine.requests_per_response_code_detailed_total | 200, 206, 302, 304, 403, 404, 419, 499, 500, 502, 503, 504, 508, other | requests/s |\n| tengine.requests_upstream_total | requests | requests/s |\n| tengine.tries_upstream_total | calls | calls/s |\n| tengine.requests_upstream_per_response_code_family_total | 4xx, 5xx | requests/s |\n\n",integration_type:"collector",id:"go.d.plugin-tengine-Tengine",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/tengine/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-traefik",plugin_name:"go.d.plugin",module_name:"traefik",monitored_instance:{name:"Traefik",link:"Traefik",icon_filename:"traefik.svg",categories:["data-collection.web-servers-and-web-proxies"]},keywords:["traefik","proxy","webproxy"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Traefik\n\nPlugin: go.d.plugin\nModule: traefik\n\n## Overview\n\nThis collector monitors Traefik servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable built-in Prometheus exporter\n\nTo enable see [Prometheus exporter](https://doc.traefik.io/traefik/observability/metrics/prometheus/) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/traefik.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/traefik.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="All options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8082/metrics | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8082/metrics\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8082/metrics\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n http://127.0.0.1:8082/metrics\n\n - name: remote\n http://192.0.2.0:8082/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `traefik` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m traefik\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per entrypoint, protocol\n\nThese metrics refer to the endpoint.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| traefik.entrypoint_requests | 1xx, 2xx, 3xx, 4xx, 5xx | requests/s |\n| traefik.entrypoint_request_duration_average | 1xx, 2xx, 3xx, 4xx, 5xx | milliseconds |\n| traefik.entrypoint_open_connections | a dimension per HTTP method | connections |\n\n",integration_type:"collector",id:"go.d.plugin-traefik-Traefik",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/traefik/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-unbound",plugin_name:"go.d.plugin",module_name:"unbound",monitored_instance:{name:"Unbound",link:"https://nlnetlabs.nl/projects/unbound/about/",icon_filename:"unbound.png",categories:["data-collection.dns-and-dhcp-servers"]},keywords:["unbound","dns"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Unbound\n\nPlugin: go.d.plugin\nModule: unbound\n\n## Overview\n\nThis collector monitors Unbound servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable remote control interface\n\nSet `control-enable` to yes in [unbound.conf](https://nlnetlabs.nl/documentation/unbound/unbound.conf).\n\n\n#### Check permissions and adjust if necessary\n\nIf using unix socket:\n\n- socket should be readable and writeable by `netdata` user\n\nIf using ip socket and TLS is disabled:\n\n- socket should be accessible via network\n\nIf TLS is enabled, in addition:\n\n- `control-key-file` should be readable by `netdata` user\n- `control-cert-file` should be readable by `netdata` user\n\nFor auto-detection parameters from `unbound.conf`:\n\n- `unbound.conf` should be readable by `netdata` user\n- if you have several configuration files (include feature) all of them should be readable by `netdata` user\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/unbound.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/unbound.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Server address in IP:PORT format. | 127.0.0.1:8953 | yes |\n| timeout | Connection/read/write/ssl handshake timeout. | 1 | no |\n| conf_path | Absolute path to the unbound configuration file. | /etc/unbound/unbound.conf | no |\n| cumulative_stats | Statistics collection mode. Should have the same value as the `statistics-cumulative` parameter in the unbound configuration file. | no | no |\n| use_tls | Whether to use TLS or not. | yes | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | yes | no |\n| tls_ca | Certificate authority that client use when verifying server certificates. | | no |\n| tls_cert | Client tls certificate. | /etc/unbound/unbound_control.pem | no |\n| tls_key | Client tls key. | /etc/unbound/unbound_control.key | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:8953\n\n```\n{% /details %}\n##### Unix socket\n\nConnecting through Unix socket.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: socket\n address: /var/run/unbound.sock\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:8953\n\n - name: remote\n address: 203.0.113.11:8953\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `unbound` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m unbound\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Unbound instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| unbound.queries | queries | queries |\n| unbound.queries_ip_ratelimited | ratelimited | queries |\n| unbound.dnscrypt_queries | crypted, cert, cleartext, malformed | queries |\n| unbound.cache | hits, miss | events |\n| unbound.cache_percentage | hits, miss | percentage |\n| unbound.prefetch | prefetches | prefetches |\n| unbound.expired | expired | replies |\n| unbound.zero_ttl_replies | zero_ttl | replies |\n| unbound.recursive_replies | recursive | replies |\n| unbound.recursion_time | avg, median | milliseconds |\n| unbound.request_list_usage | avg, max | queries |\n| unbound.current_request_list_usage | all, users | queries |\n| unbound.request_list_jostle_list | overwritten, dropped | queries |\n| unbound.tcpusage | usage | buffers |\n| unbound.uptime | time | seconds |\n| unbound.cache_memory | message, rrset, dnscrypt_nonce, dnscrypt_shared_secret | KB |\n| unbound.mod_memory | iterator, respip, validator, subnet, ipsec | KB |\n| unbound.mem_streamwait | streamwait | KB |\n| unbound.cache_count | infra, key, msg, rrset, dnscrypt_nonce, shared_secret | items |\n| unbound.type_queries | a dimension per query type | queries |\n| unbound.class_queries | a dimension per query class | queries |\n| unbound.opcode_queries | a dimension per query opcode | queries |\n| unbound.flag_queries | qr, aa, tc, rd, ra, z, ad, cd | queries |\n| unbound.rcode_answers | a dimension per reply rcode | replies |\n\n### Per thread\n\nThese metrics refer to threads.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| unbound.thread_queries | queries | queries |\n| unbound.thread_queries_ip_ratelimited | ratelimited | queries |\n| unbound.thread_dnscrypt_queries | crypted, cert, cleartext, malformed | queries |\n| unbound.thread_cache | hits, miss | events |\n| unbound.thread_cache_percentage | hits, miss | percentage |\n| unbound.thread_prefetch | prefetches | prefetches |\n| unbound.thread_expired | expired | replies |\n| unbound.thread_zero_ttl_replies | zero_ttl | replies |\n| unbound.thread_recursive_replies | recursive | replies |\n| unbound.thread_recursion_time | avg, median | milliseconds |\n| unbound.thread_request_list_usage | avg, max | queries |\n| unbound.thread_current_request_list_usage | all, users | queries |\n| unbound.thread_request_list_jostle_list | overwritten, dropped | queries |\n| unbound.thread_tcpusage | usage | buffers |\n\n",integration_type:"collector",id:"go.d.plugin-unbound-Unbound",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/unbound/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-upsd",plugin_name:"go.d.plugin",module_name:"upsd",monitored_instance:{name:"UPS (NUT)",link:"",icon_filename:"plug-circle-bolt.svg",categories:["data-collection.ups"]},keywords:["ups","nut"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# UPS (NUT)\n\nPlugin: go.d.plugin\nModule: upsd\n\n## Overview\n\nThis collector monitors Uninterruptible Power Supplies by polling the UPS daemon using the NUT network protocol.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/upsd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/upsd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | UPS daemon address in IP:PORT format. | 127.0.0.1:3493 | yes |\n| timeout | Connection/read/write timeout in seconds. The timeout includes name resolution, if required. | 2 | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:3493\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:3493\n\n - name: remote\n address: 203.0.113.0:3493\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `upsd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m upsd\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ upsd_10min_ups_load ](https://github.com/netdata/netdata/blob/master/src/health/health.d/upsd.conf) | upsd.ups_load | UPS ${label:ups_name} average load over the last 10 minutes |\n| [ upsd_ups_battery_charge ](https://github.com/netdata/netdata/blob/master/src/health/health.d/upsd.conf) | upsd.ups_battery_charge | UPS ${label:ups_name} average battery charge over the last minute |\n| [ upsd_ups_last_collected_secs ](https://github.com/netdata/netdata/blob/master/src/health/health.d/upsd.conf) | upsd.ups_load | UPS ${label:ups_name} number of seconds since the last successful data collection |\n",metrics:'## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ups\n\nThese metrics refer to the UPS unit.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| ups_name | UPS name. |\n| battery_type | Battery type (chemistry). "battery.type" variable value. |\n| device_model | Device model. "device.mode" variable value. |\n| device_serial | Device serial number. "device.serial" variable value. |\n| device_manufacturer | Device manufacturer. "device.mfr" variable value. |\n| device_type | Device type (ups, pdu, scd, psu, ats). "device.type" variable value. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| upsd.ups_load | load | percentage |\n| upsd.ups_load_usage | load_usage | Watts |\n| upsd.ups_status | on_line, on_battery, low_battery, high_battery, replace_battery, charging, discharging, bypass, calibration, offline, overloaded, trim_input_voltage, boost_input_voltage, forced_shutdown, other | status |\n| upsd.ups_temperature | temperature | Celsius |\n| upsd.ups_battery_charge | charge | percentage |\n| upsd.ups_battery_estimated_runtime | runtime | seconds |\n| upsd.ups_battery_voltage | voltage | Volts |\n| upsd.ups_battery_voltage_nominal | nominal_voltage | Volts |\n| upsd.ups_input_voltage | voltage | Volts |\n| upsd.ups_input_voltage_nominal | nominal_voltage | Volts |\n| upsd.ups_input_current | current | Ampere |\n| upsd.ups_input_current_nominal | nominal_current | Ampere |\n| upsd.ups_input_frequency | frequency | Hz |\n| upsd.ups_input_frequency_nominal | nominal_frequency | Hz |\n| upsd.ups_output_voltage | voltage | Volts |\n| upsd.ups_output_voltage_nominal | nominal_voltage | Volts |\n| upsd.ups_output_current | current | Ampere |\n| upsd.ups_output_current_nominal | nominal_current | Ampere |\n| upsd.ups_output_frequency | frequency | Hz |\n| upsd.ups_output_frequency_nominal | nominal_frequency | Hz |\n\n',integration_type:"collector",id:"go.d.plugin-upsd-UPS_(NUT)",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/upsd/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-vcsa",plugin_name:"go.d.plugin",module_name:"vcsa",monitored_instance:{name:"vCenter Server Appliance",link:"https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vcsa.doc/GUID-223C2821-BD98-4C7A-936B-7DBE96291BA4.html",icon_filename:"vmware.svg",categories:["data-collection.containers-and-vms"]},keywords:["vmware"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# vCenter Server Appliance\n\nPlugin: go.d.plugin\nModule: vcsa\n\n## Overview\n\nThis collector monitors [health statistics](https://developer.vmware.com/apis/vsphere-automation/latest/appliance/health/) of vCenter Server Appliance servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/vcsa.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/vcsa.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 5 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | yes |\n| password | Password for basic HTTP authentication. | | yes |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | false | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | false | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: vcsa1\n url: https://203.0.113.1\n username: admin@vsphere.local\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nTwo instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: vcsa1\n url: https://203.0.113.1\n username: admin@vsphere.local\n password: password\n\n - name: vcsa2\n url: https://203.0.113.10\n username: admin@vsphere.local\n password: password\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `vcsa` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m vcsa\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ vcsa_system_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.system_health_status | VCSA overall system status is orange. One or more components are degraded. |\n| [ vcsa_system_health_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.system_health_status | VCSA overall system status is red. One or more components are unavailable or will stop functioning soon. |\n| [ vcsa_applmgmt_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.applmgmt_health_status | VCSA ApplMgmt component status is orange. It is degraded, and may have serious problems. |\n| [ vcsa_applmgmt_health_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.applmgmt_health_status | VCSA ApplMgmt component status is red. It is unavailable, or will stop functioning soon. |\n| [ vcsa_load_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.load_health_status | VCSA Load component status is orange. It is degraded, and may have serious problems. |\n| [ vcsa_load_health_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.load_health_status | VCSA Load component status is red. It is unavailable, or will stop functioning soon. |\n| [ vcsa_mem_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.mem_health_status | VCSA Memory component status is orange. It is degraded, and may have serious problems. |\n| [ vcsa_mem_health_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.mem_health_status | VCSA Memory component status is red. It is unavailable, or will stop functioning soon. |\n| [ vcsa_swap_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.swap_health_status | VCSA Swap component status is orange. It is degraded, and may have serious problems. |\n| [ vcsa_swap_health_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.swap_health_status | VCSA Swap component status is red. It is unavailable, or will stop functioning soon. |\n| [ vcsa_database_storage_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.database_storage_health_status | VCSA Database Storage component status is orange. It is degraded, and may have serious problems. |\n| [ vcsa_database_storage_health_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.database_storage_health_status | VCSA Database Storage component status is red. It is unavailable, or will stop functioning soon. |\n| [ vcsa_storage_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.storage_health_status | VCSA Storage component status is orange. It is degraded, and may have serious problems. |\n| [ vcsa_storage_health_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.storage_health_status | VCSA Storage component status is red. It is unavailable, or will stop functioning soon. |\n| [ vcsa_software_packages_health_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vcsa.conf) | vcsa.software_packages_health_status | VCSA software packages security updates are available. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vCenter Server Appliance instance\n\nThese metrics refer to the entire monitored application.\n<details>\n<summary>See health statuses</summary>\nOverall System Health:\n\n| Status | Description |\n|:-------:|:-------------------------------------------------------------------------------------------------------------------------|\n| green | All components in the appliance are healthy. |\n| yellow | One or more components in the appliance might become overloaded soon. |\n| orange | One or more components in the appliance might be degraded. |\n| red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. |\n| gray | No health data is available. |\n| unknown | Collector failed to decode status. |\n\nComponents Health:\n\n| Status | Description |\n|:-------:|:-------------------------------------------------------------|\n| green | The component is healthy. |\n| yellow | The component is healthy, but may have some problems. |\n| orange | The component is degraded, and may have serious problems. |\n| red | The component is unavailable, or will stop functioning soon. |\n| gray | No health data is available. |\n| unknown | Collector failed to decode status. |\n\nSoftware Updates Health:\n\n| Status | Description |\n|:-------:|:-----------------------------------------------------|\n| green | No updates available. |\n| orange | Non-security patches might be available. |\n| red | Security patches might be available. |\n| gray | An error retrieving information on software updates. |\n| unknown | Collector failed to decode status. |\n\n</details>\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vcsa.system_health_status | green, red, yellow, orange, gray, unknown | status |\n| vcsa.applmgmt_health_status | green, red, yellow, orange, gray, unknown | status |\n| vcsa.load_health_status | green, red, yellow, orange, gray, unknown | status |\n| vcsa.mem_health_status | green, red, yellow, orange, gray, unknown | status |\n| vcsa.swap_health_status | green, red, yellow, orange, gray, unknown | status |\n| vcsa.database_storage_health_status | green, red, yellow, orange, gray, unknown | status |\n| vcsa.storage_health_status | green, red, yellow, orange, gray, unknown | status |\n| vcsa.software_packages_health_status | green, red, orange, gray, unknown | status |\n\n",integration_type:"collector",id:"go.d.plugin-vcsa-vCenter_Server_Appliance",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/vcsa/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-vernemq",plugin_name:"go.d.plugin",module_name:"vernemq",monitored_instance:{name:"VerneMQ",link:"https://vernemq.com",icon_filename:"vernemq.svg",categories:["data-collection.message-brokers"]},keywords:["vernemq","message brokers"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# VerneMQ\n\nPlugin: go.d.plugin\nModule: vernemq\n\n## Overview\n\nThis collector monitors VerneMQ instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/vernemq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/vernemq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | http://127.0.0.1:8888/metrics | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8888/metrics\n\n```\n{% /details %}\n##### HTTP authentication\n\nLocal instance with basic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8888/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8888/metrics\n\n - name: remote\n url: http://203.0.113.10:8888/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `vernemq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m vernemq\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ vernemq_socket_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.socket_errors | number of socket errors in the last minute |\n| [ vernemq_queue_message_drop ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of dropped messaged due to full queues in the last minute |\n| [ vernemq_queue_message_expired ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of messages which expired before delivery in the last minute |\n| [ vernemq_queue_message_unhandled ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of unhandled messages (connections with clean session=true) in the last minute |\n| [ vernemq_average_scheduler_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.average_scheduler_utilization | average scheduler utilization over the last 10 minutes |\n| [ vernemq_cluster_dropped ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.cluster_dropped | amount of traffic dropped during communication with the cluster nodes in the last minute |\n| [ vernemq_netsplits ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vvernemq.netsplits | number of detected netsplits (split brain situation) in the last minute |\n| [ vernemq_mqtt_connack_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_connack_sent_reason | number of sent unsuccessful v3/v5 CONNACK packets in the last minute |\n| [ vernemq_mqtt_disconnect_received_reason_not_normal ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_disconnect_received_reason | number of received not normal v5 DISCONNECT packets in the last minute |\n| [ vernemq_mqtt_disconnect_sent_reason_not_normal ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_disconnect_sent_reason | number of sent not normal v5 DISCONNECT packets in the last minute |\n| [ vernemq_mqtt_subscribe_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_subscribe_error | number of failed v3/v5 SUBSCRIBE operations in the last minute |\n| [ vernemq_mqtt_subscribe_auth_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_subscribe_auth_error | number of unauthorized v3/v5 SUBSCRIBE attempts in the last minute |\n| [ vernemq_mqtt_unsubscribe_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_unsubscribe_error | number of failed v3/v5 UNSUBSCRIBE operations in the last minute |\n| [ vernemq_mqtt_publish_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_publish_errors | number of failed v3/v5 PUBLISH operations in the last minute |\n| [ vernemq_mqtt_publish_auth_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_publish_auth_errors | number of unauthorized v3/v5 PUBLISH attempts in the last minute |\n| [ vernemq_mqtt_puback_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_puback_received_reason | number of received unsuccessful v5 PUBACK packets in the last minute |\n| [ vernemq_mqtt_puback_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_puback_sent_reason | number of sent unsuccessful v5 PUBACK packets in the last minute |\n| [ vernemq_mqtt_puback_unexpected ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_puback_invalid_error | number of received unexpected v3/v5 PUBACK packets in the last minute |\n| [ vernemq_mqtt_pubrec_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_received_reason | number of received unsuccessful v5 PUBREC packets in the last minute |\n| [ vernemq_mqtt_pubrec_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_sent_reason | number of sent unsuccessful v5 PUBREC packets in the last minute |\n| [ vernemq_mqtt_pubrec_invalid_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_invalid_error | number of received unexpected v3 PUBREC packets in the last minute |\n| [ vernemq_mqtt_pubrel_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubrel_received_reason | number of received unsuccessful v5 PUBREL packets in the last minute |\n| [ vernemq_mqtt_pubrel_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubrel_sent_reason | number of sent unsuccessful v5 PUBREL packets in the last minute |\n| [ vernemq_mqtt_pubcomp_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_received_reason | number of received unsuccessful v5 PUBCOMP packets in the last minute |\n| [ vernemq_mqtt_pubcomp_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_sent_reason | number of sent unsuccessful v5 PUBCOMP packets in the last minute |\n| [ vernemq_mqtt_pubcomp_unexpected ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_invalid_error | number of received unexpected v3/v5 PUBCOMP packets in the last minute |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per VerneMQ instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vernemq.sockets | open | sockets |\n| vernemq.socket_operations | open, close | sockets/s |\n| vernemq.client_keepalive_expired | closed | sockets/s |\n| vernemq.socket_close_timeout | closed | sockets/s |\n| vernemq.socket_errors | errors | errors/s |\n| vernemq.queue_processes | queue_processes | queue processes |\n| vernemq.queue_processes_operations | setup, teardown | events/s |\n| vernemq.queue_process_init_from_storage | queue_processes | queue processes/s |\n| vernemq.queue_messages | received, sent | messages/s |\n| vernemq.queue_undelivered_messages | dropped, expired, unhandled | messages/s |\n| vernemq.router_subscriptions | subscriptions | subscriptions |\n| vernemq.router_matched_subscriptions | local, remote | subscriptions/s |\n| vernemq.router_memory | used | KiB |\n| vernemq.average_scheduler_utilization | utilization | percentage |\n| vernemq.system_utilization_scheduler | a dimension per scheduler | percentage |\n| vernemq.system_processes | processes | processes |\n| vernemq.system_reductions | reductions | ops/s |\n| vernemq.system_context_switches | context_switches | ops/s |\n| vernemq.system_io | received, sent | kilobits/s |\n| vernemq.system_run_queue | ready | processes |\n| vernemq.system_gc_count | gc | ops/s |\n| vernemq.system_gc_words_reclaimed | words_reclaimed | ops/s |\n| vernemq.system_allocated_memory | processes, system | KiB |\n| vernemq.bandwidth | received, sent | kilobits/s |\n| vernemq.retain_messages | messages | messages |\n| vernemq.retain_memory | used | KiB |\n| vernemq.cluster_bandwidth | received, sent | kilobits/s |\n| vernemq.cluster_dropped | dropped | kilobits/s |\n| vernemq.netsplit_unresolved | unresolved | netsplits |\n| vernemq.netsplits | resolved, detected | netsplits/s |\n| vernemq.mqtt_auth | received, sent | packets/s |\n| vernemq.mqtt_auth_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_auth_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_connect | connect, connack | packets/s |\n| vernemq.mqtt_connack_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_disconnect | received, sent | packets/s |\n| vernemq.mqtt_disconnect_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_disconnect_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_subscribe | subscribe, suback | packets/s |\n| vernemq.mqtt_subscribe_error | failed | ops/s |\n| vernemq.mqtt_subscribe_auth_error | unauth | attempts/s |\n| vernemq.mqtt_unsubscribe | unsubscribe, unsuback | packets/s |\n| vernemq.mqtt_unsubscribe | mqtt_unsubscribe_error | ops/s |\n| vernemq.mqtt_publish | received, sent | packets/s |\n| vernemq.mqtt_publish_errors | failed | ops/s |\n| vernemq.mqtt_publish_auth_errors | unauth | attempts/s |\n| vernemq.mqtt_puback | received, sent | packets/s |\n| vernemq.mqtt_puback_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_puback_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_puback_invalid_error | unexpected | messages/s |\n| vernemq.mqtt_pubrec | received, sent | packets/s |\n| vernemq.mqtt_pubrec_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubrec_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubrec_invalid_error | unexpected | messages/s |\n| vernemq.mqtt_pubrel | received, sent | packets/s |\n| vernemq.mqtt_pubrel_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubrel_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubcom | received, sent | packets/s |\n| vernemq.mqtt_pubcomp_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubcomp_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubcomp_invalid_error | unexpected | messages/s |\n| vernemq.mqtt_ping | pingreq, pingresp | packets/s |\n| vernemq.node_uptime | time | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-vernemq-VerneMQ",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/vernemq/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-vsphere",plugin_name:"go.d.plugin",module_name:"vsphere",monitored_instance:{name:"VMware vCenter Server",link:"https://www.vmware.com/products/vcenter-server.html",icon_filename:"vmware.svg",categories:["data-collection.containers-and-vms"]},keywords:["vmware","esxi","vcenter"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!0},overview:"# VMware vCenter Server\n\nPlugin: go.d.plugin\nModule: vsphere\n\n## Overview\n\nThis collector monitors hosts and vms performance statistics from `vCenter` servers.\n\n> **Warning**: The `vsphere` collector cannot re-login and continue collecting metrics after a vCenter reboot.\n> go.d.plugin needs to be restarted.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default `update_every` is 20 seconds, and it doesn't make sense to decrease the value.\n**VMware real-time statistics are generated at the 20-second specificity**.\n\nIt is likely that 20 seconds is not enough for big installations and the value should be tuned.\n\nTo get a better view we recommend running the collector in debug mode and seeing how much time it will take to collect metrics.\n\n<details>\n<summary>Example (all not related debug lines were removed)</summary>\n\n```\n[ilyam@pc]$ ./go.d.plugin -d -m vsphere\n[ DEBUG ] vsphere[vsphere] discover.go:94 discovering : starting resource discovering process\n[ DEBUG ] vsphere[vsphere] discover.go:102 discovering : found 3 dcs, process took 49.329656ms\n[ DEBUG ] vsphere[vsphere] discover.go:109 discovering : found 12 folders, process took 49.538688ms\n[ DEBUG ] vsphere[vsphere] discover.go:116 discovering : found 3 clusters, process took 47.722692ms\n[ DEBUG ] vsphere[vsphere] discover.go:123 discovering : found 2 hosts, process took 52.966995ms\n[ DEBUG ] vsphere[vsphere] discover.go:130 discovering : found 2 vms, process took 49.832979ms\n[ INFO ] vsphere[vsphere] discover.go:140 discovering : found 3 dcs, 12 folders, 3 clusters (2 dummy), 2 hosts, 3 vms, process took 249.655993ms\n[ DEBUG ] vsphere[vsphere] build.go:12 discovering : building : starting building resources process\n[ INFO ] vsphere[vsphere] build.go:23 discovering : building : built 3/3 dcs, 12/12 folders, 3/3 clusters, 2/2 hosts, 3/3 vms, process took 63.3\xb5s\n[ DEBUG ] vsphere[vsphere] hierarchy.go:10 discovering : hierarchy : start setting resources hierarchy process\n[ INFO ] vsphere[vsphere] hierarchy.go:18 discovering : hierarchy : set 3/3 clusters, 2/2 hosts, 3/3 vms, process took 6.522\xb5s\n[ DEBUG ] vsphere[vsphere] filter.go:24 discovering : filtering : starting filtering resources process\n[ DEBUG ] vsphere[vsphere] filter.go:45 discovering : filtering : removed 0 unmatched hosts\n[ DEBUG ] vsphere[vsphere] filter.go:56 discovering : filtering : removed 0 unmatched vms\n[ INFO ] vsphere[vsphere] filter.go:29 discovering : filtering : filtered 0/2 hosts, 0/3 vms, process took 42.973\xb5s\n[ DEBUG ] vsphere[vsphere] metric_lists.go:14 discovering : metric lists : starting resources metric lists collection process\n[ INFO ] vsphere[vsphere] metric_lists.go:30 discovering : metric lists : collected metric lists for 2/2 hosts, 3/3 vms, process took 275.60764ms\n[ INFO ] vsphere[vsphere] discover.go:74 discovering : discovered 2/2 hosts, 3/3 vms, the whole process took 525.614041ms\n[ INFO ] vsphere[vsphere] discover.go:11 starting discovery process, will do discovery every 5m0s\n[ DEBUG ] vsphere[vsphere] collect.go:11 starting collection process\n[ DEBUG ] vsphere[vsphere] scrape.go:48 scraping : scraped metrics for 2/2 hosts, process took 96.257374ms\n[ DEBUG ] vsphere[vsphere] scrape.go:60 scraping : scraped metrics for 3/3 vms, process took 57.879697ms\n[ DEBUG ] vsphere[vsphere] collect.go:23 metrics collected, process took 154.77997ms\n```\n\n</details>\n\nThere you can see that discovering took `525.614041ms`, and collecting metrics took `154.77997ms`. Discovering is a separate thread, it doesn't affect collecting.\n`update_every` and `timeout` parameters should be adjusted based on these numbers.\n\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/vsphere.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/vsphere.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 20 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | vCenter server URL. | | yes |\n| host_include | Hosts selector (filter). | | no |\n| vm_include | Virtual machines selector (filter). | | no |\n| discovery_interval | Hosts and VMs discovery interval. | 300 | no |\n| timeout | HTTP request timeout. | 20 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n##### host_include\n\nMetrics of hosts matching the selector will be collected.\n\n- Include pattern syntax: \"/Datacenter pattern/Cluster pattern/Host pattern\".\n- Match pattern syntax: [simple patterns](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md#simple-patterns).\n- Syntax:\n\n ```yaml\n host_include:\n - '/DC1/*' # select all hosts from datacenter DC1\n - '/DC2/*/!Host2 *' # select all hosts from datacenter DC2 except HOST2\n - '/DC3/Cluster3/*' # select all hosts from datacenter DC3 cluster Cluster3\n ```\n\n\n##### vm_include\n\nMetrics of VMs matching the selector will be collected.\n\n- Include pattern syntax: \"/Datacenter pattern/Cluster pattern/Host pattern/VM pattern\".\n- Match pattern syntax: [simple patterns](https://github.com/netdata/netdata/blob/master/src/libnetdata/simple_pattern/README.md#simple-patterns).\n- Syntax:\n\n ```yaml\n vm_include:\n - '/DC1/*' # select all VMs from datacenter DC\n - '/DC2/*/*/!VM2 *' # select all VMs from datacenter DC2 except VM2\n - '/DC3/Cluster3/*' # select all VMs from datacenter DC3 cluster Cluster3\n ```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name : vcenter1\n url : https://203.0.113.1\n username : admin@vsphere.local\n password : somepassword\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name : vcenter1\n url : https://203.0.113.1\n username : admin@vsphere.local\n password : somepassword\n\n - name : vcenter2\n url : https://203.0.113.10\n username : admin@vsphere.local\n password : somepassword\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `vsphere` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m vsphere\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ vsphere_vm_cpu_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vsphere.conf) | vsphere.vm_cpu_utilization | Virtual Machine CPU utilization |\n| [ vsphere_vm_mem_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vsphere.conf) | vsphere.vm_mem_utilization | Virtual Machine memory utilization |\n| [ vsphere_host_cpu_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vsphere.conf) | vsphere.host_cpu_utilization | ESXi Host CPU utilization |\n| [ vsphere_host_mem_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/vsphere.conf) | vsphere.host_mem_utilization | ESXi Host memory utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per virtual machine\n\nThese metrics refer to the Virtual Machine.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| datacenter | Datacenter name |\n| cluster | Cluster name |\n| host | Host name |\n| vm | Virtual Machine name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vsphere.vm_cpu_utilization | used | percentage |\n| vsphere.vm_mem_utilization | used | percentage |\n| vsphere.vm_mem_usage | granted, consumed, active, shared | KiB |\n| vsphere.vm_mem_swap_usage | swapped | KiB |\n| vsphere.vm_mem_swap_io | in, out | KiB/s |\n| vsphere.vm_disk_io | read, write | KiB/s |\n| vsphere.vm_disk_max_latency | latency | milliseconds |\n| vsphere.vm_net_traffic | received, sent | KiB/s |\n| vsphere.vm_net_packets | received, sent | packets |\n| vsphere.vm_net_drops | received, sent | packets |\n| vsphere.vm_overall_status | green, red, yellow, gray | status |\n| vsphere.vm_system_uptime | uptime | seconds |\n\n### Per host\n\nThese metrics refer to the ESXi host.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| datacenter | Datacenter name |\n| cluster | Cluster name |\n| host | Host name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vsphere.host_cpu_utilization | used | percentage |\n| vsphere.host_mem_utilization | used | percentage |\n| vsphere.host_mem_usage | granted, consumed, active, shared, sharedcommon | KiB |\n| vsphere.host_mem_swap_io | in, out | KiB/s |\n| vsphere.host_disk_io | read, write | KiB/s |\n| vsphere.host_disk_max_latency | latency | milliseconds |\n| vsphere.host_net_traffic | received, sent | KiB/s |\n| vsphere.host_net_packets | received, sent | packets |\n| vsphere.host_net_drops | received, sent | packets |\n| vsphere.host_net_errors | received, sent | errors |\n| vsphere.host_overall_status | green, red, yellow, gray | status |\n| vsphere.host_system_uptime | uptime | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-vsphere-VMware_vCenter_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/vsphere/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-web_log",plugin_name:"go.d.plugin",module_name:"web_log",monitored_instance:{name:"Web server log files",link:"",categories:["data-collection.web-servers-and-web-proxies"],icon_filename:"webservers.svg"},keywords:["webserver","apache","httpd","nginx","lighttpd","logs"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# Web server log files\n\nPlugin: go.d.plugin\nModule: web_log\n\n## Overview\n\nThis collector monitors web servers by parsing their log files.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt automatically detects log files of web servers running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/web_log.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/web_log.conf\n```\n#### Options\n\nWeblog is aware of how to parse and interpret the following fields (**known fields**):\n\n> [nginx](https://nginx.org/en/docs/varindex.html)\n>\n> [apache](https://httpd.apache.org/docs/current/mod/mod_log_config.html)\n\n| nginx | apache | description |\n|-------------------------|----------|------------------------------------------------------------------------------------------|\n| $host ($http_host) | %v | Name of the server which accepted a request. |\n| $server_port | %p | Port of the server which accepted a request. |\n| $scheme | - | Request scheme. "http" or "https". |\n| $remote_addr | %a (%h) | Client address. |\n| $request | %r | Full original request line. The line is "$request_method $request_uri $server_protocol". |\n| $request_method | %m | Request method. Usually "GET" or "POST". |\n| $request_uri | %U | Full original request URI. |\n| $server_protocol | %H | Request protocol. Usually "HTTP/1.0", "HTTP/1.1", or "HTTP/2.0". |\n| $status | %s (%>s) | Response status code. |\n| $request_length | %I | Bytes received from a client, including request and headers. |\n| $bytes_sent | %O | Bytes sent to a client, including request and headers. |\n| $body_bytes_sent | %B (%b) | Bytes sent to a client, not counting the response header. |\n| $request_time | %D | Request processing time. |\n| $upstream_response_time | - | Time spent on receiving the response from the upstream server. |\n| $ssl_protocol | - | Protocol of an established SSL connection. |\n| $ssl_cipher | - | String of ciphers used for an established SSL connection. |\n\nNotes:\n\n- Apache `%h` logs the IP address if [HostnameLookups](https://httpd.apache.org/docs/2.4/mod/core.html#hostnamelookups) is Off. The web log collector counts hostnames as IPv4 addresses. We recommend either to disable HostnameLookups or use `%a` instead of `%h`.\n- Since httpd 2.0, unlike 1.3, the `%b` and `%B` format strings do not represent the number of bytes sent to the client, but simply the size in bytes of the HTTP response. It will differ, for instance, if the connection is aborted, or if SSL is used. The `%O` format provided by [`mod_logio`](https://httpd.apache.org/docs/2.4/mod/mod_logio.html) will log the actual number of bytes sent over the network.\n- To get `%I` and `%O` working you need to enable `mod_logio` on Apache.\n- NGINX logs URI with query parameters, Apache doesnt.\n- `$request` is parsed into `$request_method`, `$request_uri` and `$server_protocol`. If you have `$request` in your log format, there is no sense to have others.\n- Don\'t use both `$bytes_sent` and `$body_bytes_sent` (`%O` and `%B` or `%b`). The module does not distinguish between these parameters.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| path | Path to the web server log file. | | yes |\n| exclude_path | Path to exclude. | *.gz | no |\n| url_patterns | List of URL patterns. | [] | no |\n| url_patterns.name | Used as a dimension name. | | yes |\n| url_patterns.pattern | Used to match against full original request URI. Pattern syntax in [matcher](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/matcher#supported-format). | | yes |\n| parser | Log parser configuration. | | no |\n| parser.log_type | Log parser type. | auto | no |\n| parser.csv_config | CSV log parser config. | | no |\n| parser.csv_config.delimiter | CSV field delimiter. | , | no |\n| parser.csv_config.format | CSV log format. | | no |\n| parser.ltsv_config | LTSV log parser config. | | no |\n| parser.ltsv_config.field_delimiter | LTSV field delimiter. | \\t | no |\n| parser.ltsv_config.value_delimiter | LTSV value delimiter. | : | no |\n| parser.ltsv_config.mapping | LTSV fields mapping to **known fields**. | | yes |\n| parser.json_config | JSON log parser config. | | no |\n| parser.json_config.mapping | JSON fields mapping to **known fields**. | | yes |\n| parser.regexp_config | RegExp log parser config. | | no |\n| parser.regexp_config.pattern | RegExp pattern with named groups. | | yes |\n\n##### url_patterns\n\n"URL pattern" scope metrics will be collected for each URL pattern. \n\nOption syntax:\n\n```yaml\nurl_patterns:\n - name: name1\n pattern: pattern1\n - name: name2\n pattern: pattern2\n```\n\n\n##### parser.log_type\n\nWeblog supports 5 different log parsers:\n\n| Parser type | Description |\n|-------------|-------------------------------------------|\n| auto | Use CSV and auto-detect format |\n| csv | A comma-separated values |\n| json | [JSON](https://www.json.org/json-en.html) |\n| ltsv | [LTSV](http://ltsv.org/) |\n| regexp | Regular expression with named groups |\n\nSyntax:\n\n```yaml\nparser:\n log_type: auto\n```\n\nIf `log_type` parameter set to `auto` (which is default), weblog will try to auto-detect appropriate log parser and log format using the last line of the log file.\n\n- checks if format is `CSV` (using regexp).\n- checks if format is `JSON` (using regexp).\n- assumes format is `CSV` and tries to find appropriate `CSV` log format using predefined list of formats. It tries to parse the line using each of them in the following order (the first one matches is used later):\n\n ```sh\n $host:$server_port $remote_addr - - [$time_local] "$request" $status $body_bytes_sent - - $request_length $request_time $upstream_response_time\n $host:$server_port $remote_addr - - [$time_local] "$request" $status $body_bytes_sent - - $request_length $request_time\n $host:$server_port $remote_addr - - [$time_local] "$request" $status $body_bytes_sent $request_length $request_time $upstream_response_time\n $host:$server_port $remote_addr - - [$time_local] "$request" $status $body_bytes_sent $request_length $request_time\n $host:$server_port $remote_addr - - [$time_local] "$request" $status $body_bytes_sent\n $remote_addr - - [$time_local] "$request" $status $body_bytes_sent - - $request_length $request_time $upstream_response_time\n $remote_addr - - [$time_local] "$request" $status $body_bytes_sent - - $request_length $request_time\n $remote_addr - - [$time_local] "$request" $status $body_bytes_sent $request_length $request_time $upstream_response_time\n $remote_addr - - [$time_local] "$request" $status $body_bytes_sent $request_length $request_time\n $remote_addr - - [$time_local] "$request" $status $body_bytes_sent\n ```\n\n If you\'re using the default Apache/NGINX log format, auto-detect will work for you. If it doesn\'t work you need to set the format manually.\n\n\n##### parser.csv_config.format\n\n\n\n##### parser.ltsv_config.mapping\n\nThe mapping is a dictionary where the key is a field, as in logs, and the value is the corresponding **known field**.\n\n> **Note**: don\'t use `$` and `%` prefixes for mapped field names.\n\n```yaml\nparser:\n log_type: ltsv\n ltsv_config:\n mapping:\n label1: field1\n label2: field2\n```\n\n\n##### parser.json_config.mapping\n\nThe mapping is a dictionary where the key is a field, as in logs, and the value is the corresponding **known field**.\n\n> **Note**: don\'t use `$` and `%` prefixes for mapped field names.\n\n```yaml\nparser:\n log_type: json\n json_config:\n mapping:\n label1: field1\n label2: field2\n```\n\n\n##### parser.regexp_config.pattern\n\nUse pattern with subexpressions names. These names should be **known fields**.\n\n> **Note**: don\'t use `$` and `%` prefixes for mapped field names.\n\nSyntax:\n\n```yaml\nparser:\n log_type: regexp\n regexp_config:\n pattern: PATTERN\n```\n\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `web_log` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m web_log\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ web_log_1m_unmatched ](https://github.com/netdata/netdata/blob/master/src/health/health.d/web_log.conf) | web_log.excluded_requests | percentage of unparsed log lines over the last minute |\n| [ web_log_1m_requests ](https://github.com/netdata/netdata/blob/master/src/health/health.d/web_log.conf) | web_log.type_requests | ratio of successful HTTP requests over the last minute (1xx, 2xx, 304, 401) |\n| [ web_log_1m_redirects ](https://github.com/netdata/netdata/blob/master/src/health/health.d/web_log.conf) | web_log.type_requests | ratio of redirection HTTP requests over the last minute (3xx except 304) |\n| [ web_log_1m_bad_requests ](https://github.com/netdata/netdata/blob/master/src/health/health.d/web_log.conf) | web_log.type_requests | ratio of client error HTTP requests over the last minute (4xx except 401) |\n| [ web_log_1m_internal_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/web_log.conf) | web_log.type_requests | ratio of server error HTTP requests over the last minute (5xx) |\n| [ web_log_web_slow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/web_log.conf) | web_log.request_processing_time | average HTTP response time over the last 1 minute |\n| [ web_log_5m_requests_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/web_log.conf) | web_log.type_requests | ratio of successful HTTP requests over over the last 5 minutes, compared with the previous 5 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Web server log files instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| web_log.requests | requests | requests/s |\n| web_log.excluded_requests | unmatched | requests/s |\n| web_log.type_requests | success, bad, redirect, error | requests/s |\n| web_log.status_code_class_responses | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| web_log.status_code_class_1xx_responses | a dimension per 1xx code | responses/s |\n| web_log.status_code_class_2xx_responses | a dimension per 2xx code | responses/s |\n| web_log.status_code_class_3xx_responses | a dimension per 3xx code | responses/s |\n| web_log.status_code_class_4xx_responses | a dimension per 4xx code | responses/s |\n| web_log.status_code_class_5xx_responses | a dimension per 5xx code | responses/s |\n| web_log.bandwidth | received, sent | kilobits/s |\n| web_log.request_processing_time | min, max, avg | milliseconds |\n| web_log.requests_processing_time_histogram | a dimension per bucket | requests/s |\n| web_log.upstream_response_time | min, max, avg | milliseconds |\n| web_log.upstream_responses_time_histogram | a dimension per bucket | requests/s |\n| web_log.current_poll_uniq_clients | ipv4, ipv6 | clients |\n| web_log.vhost_requests | a dimension per vhost | requests/s |\n| web_log.port_requests | a dimension per port | requests/s |\n| web_log.scheme_requests | http, https | requests/s |\n| web_log.http_method_requests | a dimension per HTTP method | requests/s |\n| web_log.http_version_requests | a dimension per HTTP version | requests/s |\n| web_log.ip_proto_requests | ipv4, ipv6 | requests/s |\n| web_log.ssl_proto_requests | a dimension per SSL protocol | requests/s |\n| web_log.ssl_cipher_suite_requests | a dimension per SSL cipher suite | requests/s |\n| web_log.url_pattern_requests | a dimension per URL pattern | requests/s |\n| web_log.custom_field_pattern_requests | a dimension per custom field pattern | requests/s |\n\n### Per custom time field\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| web_log.custom_time_field_summary | min, max, avg | milliseconds |\n| web_log.custom_time_field_histogram | a dimension per bucket | observations |\n\n### Per custom numeric field\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| web_log.custom_numeric_field_{{field_name}}_summary | min, max, avg | {{units}} |\n\n### Per URL pattern\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| web_log.url_pattern_status_code_responses | a dimension per pattern | responses/s |\n| web_log.url_pattern_http_method_requests | a dimension per HTTP method | requests/s |\n| web_log.url_pattern_bandwidth | received, sent | kilobits/s |\n| web_log.url_pattern_request_processing_time | min, max, avg | milliseconds |\n\n",integration_type:"collector",id:"go.d.plugin-web_log-Web_server_log_files",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/weblog/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-whoisquery",plugin_name:"go.d.plugin",module_name:"whoisquery",monitored_instance:{name:"Domain expiration date",link:"",icon_filename:"globe.svg",categories:["data-collection.synthetic-checks"]},keywords:["whois"],related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},most_popular:!1},overview:"# Domain expiration date\n\nPlugin: go.d.plugin\nModule: whoisquery\n\n## Overview\n\nThis collector monitors the remaining time before the domain expires.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/whoisquery.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/whoisquery.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| source | Domain address. | | yes |\n| days_until_expiration_warning | Number of days before the alarm status is warning. | 30 | no |\n| days_until_expiration_critical | Number of days before the alarm status is critical. | 15 | no |\n| timeout | The query timeout in seconds. | 5 | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nBasic configuration example\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: my_site\n source: my_site.com\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define more than one job, their names must be unique.\n\nCheck the expiration status of the multiple domains.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: my_site1\n source: my_site1.com\n\n - name: my_site2\n source: my_site2.com\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `whoisquery` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m whoisquery\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ whoisquery_days_until_expiration ](https://github.com/netdata/netdata/blob/master/src/health/health.d/whoisquery.conf) | whoisquery.time_until_expiration | time until the domain name registration expires |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per domain\n\nThese metrics refer to the configured source.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| domain | Configured source |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| whoisquery.time_until_expiration | expiry | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-whoisquery-Domain_expiration_date",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/whoisquery/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-windows-ad",plugin_name:"go.d.plugin",module_name:"windows",monitored_instance:{name:"Active Directory",link:"https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview",icon_filename:"windows.svg",categories:["data-collection.windows-systems"]},keywords:["windows","microsoft","active directory","ad","adcs","adfs"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# Active Directory\n\nPlugin: go.d.plugin\nModule: windows\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/windows.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/windows.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: <value>\n```\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n",integration_type:"collector",id:"go.d.plugin-windows-Active_Directory",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/windows/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-windows-hyperv",plugin_name:"go.d.plugin",module_name:"windows",monitored_instance:{name:"HyperV",link:"https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-technology-overview",icon_filename:"windows.svg",categories:["data-collection.windows-systems"]},keywords:["windows","microsoft","hyperv","virtualization","vm"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# HyperV\n\nPlugin: go.d.plugin\nModule: windows\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/windows.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/windows.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: <value>\n```\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n",integration_type:"collector",id:"go.d.plugin-windows-HyperV",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/windows/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-windows-msexchange",plugin_name:"go.d.plugin",module_name:"windows",monitored_instance:{name:"MS Exchange",link:"https://www.microsoft.com/en-us/microsoft-365/exchange/email",icon_filename:"exchange.svg",categories:["data-collection.windows-systems"]},keywords:["windows","microsoft","mail"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# MS Exchange\n\nPlugin: go.d.plugin\nModule: windows\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/windows.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/windows.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: <value>\n```\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n",integration_type:"collector",id:"go.d.plugin-windows-MS_Exchange",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/windows/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-windows-mssql",plugin_name:"go.d.plugin",module_name:"windows",monitored_instance:{name:"MS SQL Server",link:"https://www.microsoft.com/en-us/sql-server/",icon_filename:"mssql.svg",categories:["data-collection.windows-systems"]},keywords:["windows","microsoft","mssql","database","db"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# MS SQL Server\n\nPlugin: go.d.plugin\nModule: windows\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/windows.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/windows.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: <value>\n```\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n",integration_type:"collector",id:"go.d.plugin-windows-MS_SQL_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/windows/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-windows-dotnet",plugin_name:"go.d.plugin",module_name:"windows",monitored_instance:{name:"NET Framework",link:"https://dotnet.microsoft.com/en-us/download/dotnet-framework",icon_filename:"dotnet.svg",categories:["data-collection.windows-systems"]},keywords:["windows","microsoft","dotnet"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# NET Framework\n\nPlugin: go.d.plugin\nModule: windows\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/windows.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/windows.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: <value>\n```\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n",integration_type:"collector",id:"go.d.plugin-windows-NET_Framework",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/windows/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-windows",plugin_name:"go.d.plugin",module_name:"windows",monitored_instance:{name:"Windows",link:"https://www.microsoft.com/en-us/windows",categories:["data-collection.windows-systems"],icon_filename:"windows.svg"},keywords:["windows","microsoft"],most_popular:!0,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# Windows\n\nPlugin: go.d.plugin\nModule: windows\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/windows.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/windows.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| url | Server URL. | | yes |\n| timeout | HTTP request timeout. | 1 | no |\n| username | Username for basic HTTP authentication. | | no |\n| password | Password for basic HTTP authentication. | | no |\n| proxy_url | Proxy URL. | | no |\n| proxy_username | Username for proxy basic HTTP authentication. | | no |\n| proxy_password | Password for proxy basic HTTP authentication. | | no |\n| method | HTTP request method. | GET | no |\n| body | HTTP request body. | | no |\n| headers | HTTP request headers. | | no |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: <value>\n```\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n",integration_type:"collector",id:"go.d.plugin-windows-Windows",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/windows/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-wireguard",plugin_name:"go.d.plugin",module_name:"wireguard",monitored_instance:{name:"WireGuard",link:"https://www.wireguard.com/",categories:["data-collection.vpns"],icon_filename:"wireguard.svg"},keywords:["wireguard","vpn","security"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# WireGuard\n\nPlugin: go.d.plugin\nModule: wireguard\n\n## Overview\n\nThis collector monitors WireGuard VPN devices and peers traffic.\n\n\nIt connects to the local WireGuard instance using [wireguard-go client](https://github.com/WireGuard/wireguard-go).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThis collector requires the CAP_NET_ADMIN capability, but it is set automatically during installation, so no manual configuration is needed.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt automatically detects instances running on localhost.\n\n\n#### Limits\n\nDoesn't work if Netdata or WireGuard is installed in the container.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `wireguard` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m wireguard\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per device\n\nThese metrics refer to the VPN network interface.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | VPN network interface |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| wireguard.device_network_io | receive, transmit | B/s |\n| wireguard.device_peers | peers | peers |\n\n### Per peer\n\nThese metrics refer to the VPN peer.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | VPN network interface |\n| public_key | Public key of a peer |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| wireguard.peer_network_io | receive, transmit | B/s |\n| wireguard.peer_latest_handshake_ago | time | seconds |\n\n",integration_type:"collector",id:"go.d.plugin-wireguard-WireGuard",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/wireguard/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-x509check",plugin_name:"go.d.plugin",module_name:"x509check",monitored_instance:{name:"X.509 certificate",link:"",categories:["data-collection.synthetic-checks"],icon_filename:"lock.svg"},keywords:["x509","certificate"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[]}}},overview:"# X.509 certificate\n\nPlugin: go.d.plugin\nModule: x509check\n\n## Overview\n\n\n\nThis collectors monitors x509 certificates expiration time and revocation status.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/x509check.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/x509check.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| source | Certificate source. Allowed schemes: https, tcp, tcp4, tcp6, udp, udp4, udp6, file. | | no |\n| days_until_expiration_warning | Number of days before the alarm status is warning. | 30 | no |\n| days_until_expiration_critical | Number of days before the alarm status is critical. | 15 | no |\n| check_revocation_status | Whether to check the revocation status of the certificate. | no | no |\n| timeout | SSL connection timeout. | 2 | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Website certificate\n\nWebsite certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: my_site_cert\n source: https://my_site.org:443\n\n```\n{% /details %}\n##### Local file certificate\n\nLocal file certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: my_file_cert\n source: file:///home/me/cert.pem\n\n```\n{% /details %}\n##### SMTP certificate\n\nSMTP certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: my_smtp_cert\n source: smtp://smtp.my_mail.org:587\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define more than one job, their names must be unique.\n\nCheck the expiration status of the multiple websites\' certificates.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: my_site_cert1\n source: https://my_site1.org:443\n\n - name: my_site_cert2\n source: https://my_site1.org:443\n\n - name: my_site_cert3\n source: https://my_site3.org:443\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `x509check` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m x509check\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ x509check_days_until_expiration ](https://github.com/netdata/netdata/blob/master/src/health/health.d/x509check.conf) | x509check.time_until_expiration | time until x509 certificate expires |\n| [ x509check_revocation_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/x509check.conf) | x509check.revocation_status | x509 certificate revocation status (0: revoked, 1: valid) |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per source\n\nThese metrics refer to the configured source.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| source | Configured source. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| x509check.time_until_expiration | expiry | seconds |\n| x509check.revocation_status | revoked | boolean |\n\n",integration_type:"collector",id:"go.d.plugin-x509check-X.509_certificate",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/x509check/metadata.yaml",related_resources:""},{meta:{id:"collector-go.d.plugin-zookeeper",plugin_name:"go.d.plugin",module_name:"zookeeper",monitored_instance:{name:"ZooKeeper",link:"https://zookeeper.apache.org/",categories:["data-collection.service-discovery-registry"],icon_filename:"zookeeper.svg"},keywords:["zookeeper"],most_popular:!1,info_provided_to_referring_integrations:{description:""},related_resources:{integrations:{list:[{plugin_name:"apps.plugin",module_name:"apps"}]}}},overview:"# ZooKeeper\n\nPlugin: go.d.plugin\nModule: zookeeper\n\n## Overview\n\n\n\nIt connects to the Zookeeper instance via a TCP and executes the following commands:\n\n- [mntr](https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc_zkCommands).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect using known ZooKeeper TCP sockets:\n\n- 127.0.0.1:2181\n- 127.0.0.1:2182\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Whitelist `mntr` command\n\nAdd `mntr` to Zookeeper\'s [4lw.commands.whitelist](https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_4lw).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/zookeeper.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/zookeeper.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1 | no |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |\n| address | Server address. The format is IP:PORT. | 127.0.0.1:2181 | yes |\n| timeout | Connection/read/write/ssl handshake timeout. | 1 | no |\n| use_tls | Whether to use TLS or not. | no | no |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |\n| tls_ca | Certification authority that the client uses when verifying the server\'s certificates. | | no |\n| tls_cert | Client TLS certificate. | | no |\n| tls_key | Client TLS key. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nLocal server.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:2181\n\n```\n{% /details %}\n##### TLS with self-signed certificate\n\nZookeeper with TLS and self-signed certificate.\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:2181\n use_tls: yes\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:2181\n\n - name: remote\n address: 192.0.2.1:2181\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `zookeeper` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m zookeeper\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ZooKeeper instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zookeeper.requests | outstanding | requests |\n| zookeeper.requests_latency | min, avg, max | ms |\n| zookeeper.connections | alive | connections |\n| zookeeper.packets | received, sent | pps |\n| zookeeper.file_descriptor | open | file descriptors |\n| zookeeper.nodes | znode, ephemerals | nodes |\n| zookeeper.watches | watches | watches |\n| zookeeper.approximate_data_size | size | KiB |\n| zookeeper.server_state | state | state |\n\n",integration_type:"collector",id:"go.d.plugin-zookeeper-ZooKeeper",edit_link:"https://github.com/netdata/netdata/blob/master/src/go/collectors/go.d.plugin/modules/zookeeper/metadata.yaml",related_resources:""},{meta:{plugin_name:"idlejitter.plugin",module_name:"idlejitter.plugin",monitored_instance:{name:"Idle OS Jitter",link:"",categories:["data-collection.synthetic-checks"],icon_filename:"syslog.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["latency","jitter"],most_popular:!1},overview:"# Idle OS Jitter\n\nPlugin: idlejitter.plugin\nModule: idlejitter.plugin\n\n## Overview\n\nMonitor delays in timing for user processes caused by scheduling limitations to optimize the system to run latency sensitive applications with minimal jitter, improving consistency and quality of service.\n\n\nA thread is spawned that requests to sleep for fixed amount of time. When the system wakes it up, it measures how many microseconds have passed. The difference between the requested and the actual duration of the sleep, is the idle jitter. This is done dozens of times per second to ensure we have a representative sample.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration will run by default on all supported systems.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThis integration only supports a single configuration option, and most users will not need to change it.\n\n\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| loop time in ms | Specifies the target time for the data collection thread to sleep, measured in miliseconds. | 20 | no |\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Idle OS Jitter instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.idlejitter | min, max, average | microseconds lost/s |\n\n",integration_type:"collector",id:"idlejitter.plugin-idlejitter.plugin-Idle_OS_Jitter",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/idlejitter.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"ioping.plugin",module_name:"ioping.plugin",monitored_instance:{name:"IOPing",link:"https://github.com/koct9i/ioping",categories:["data-collection.synthetic-checks"],icon_filename:"syslog.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# IOPing\n\nPlugin: ioping.plugin\nModule: ioping.plugin\n\n## Overview\n\nMonitor IOPing metrics for efficient disk I/O latency tracking. Keep track of read/write speeds, latency, and error rates for optimized disk operations.\n\nPlugin uses `ioping` command.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install ioping\n\nYou can install the command by passing the argument `install` to the plugin (`/usr/libexec/netdata/plugins.d/ioping.plugin install`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ioping.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ioping.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | 1s | no |\n| destination | The directory/file/device to ioping. | | yes |\n| request_size | The request size in bytes to ioping the destination (symbolic modifiers are supported) | 4k | no |\n| ioping_opts | Options passed to `ioping` commands. | -T 1000000 | no |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\nThis example has the minimum configuration necessary to have the plugin running.\n\n{% details summary="Config" %}\n```yaml\ndestination="/dev/sda"\n\n```\n{% /details %}\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ioping_disk_latency ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ioping.conf) | ioping.latency | average I/O latency over the last 10 seconds |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per disk\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ioping.latency | latency | microseconds |\n\n",integration_type:"collector",id:"ioping.plugin-ioping.plugin-IOPing",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/ioping.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"macos.plugin",module_name:"mach_smi",monitored_instance:{name:"macOS",link:"https://www.apple.com/macos",categories:["data-collection.macos-systems"],icon_filename:"macos.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["macos","apple","darwin"],most_popular:!1},overview:"# macOS\n\nPlugin: macos.plugin\nModule: mach_smi\n\n## Overview\n\nMonitor macOS metrics for efficient operating system performance.\n\nThe plugin uses three different methods to collect data:\n - The function `sysctlbyname` is called to collect network, swap, loadavg, and boot time.\n - The functtion `host_statistic` is called to collect CPU and Virtual memory data;\n - The function `IOServiceGetMatchingServices` to collect storage information.\n\n\nThis collector is only supported on the following platforms:\n\n- macOS\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThere are three sections in the file which you can configure:\n\n- `[plugin:macos:sysctl]` - Enable or disable monitoring for network, swap, loadavg, and boot time.\n- `[plugin:macos:mach_smi]` - Enable or disable monitoring for CPU and Virtual memory.\n- `[plugin:macos:iokit]` - Enable or disable monitoring for storage device.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable load average | Enable or disable monitoring of load average metrics (load1, load5, load15). | yes | no |\n| system swap | Enable or disable monitoring of system swap metrics (free, used). | yes | no |\n| bandwidth | Enable or disable monitoring of network bandwidth metrics (received, sent). | yes | no |\n| ipv4 TCP packets | Enable or disable monitoring of IPv4 TCP total packets metrics (received, sent). | yes | no |\n| ipv4 TCP errors | Enable or disable monitoring of IPv4 TCP packets metrics (Input Errors, Checksum, Retransmission segments). | yes | no |\n| ipv4 TCP handshake issues | Enable or disable monitoring of IPv4 TCP handshake metrics (Established Resets, Active Opens, Passive Opens, Attempt Fails). | yes | no |\n| ECN packets | Enable or disable monitoring of ECN statistics metrics (InCEPkts, InNoECTPkts). | auto | no |\n| TCP SYN cookies | Enable or disable monitoring of TCP SYN cookies metrics (received, sent, failed). | auto | no |\n| TCP out-of-order queue | Enable or disable monitoring of TCP out-of-order queue metrics (inqueue). | auto | no |\n| TCP connection aborts | Enable or disable monitoring of TCP connection aborts metrics (Bad Data, User closed, No memory, Timeout). | auto | no |\n| ipv4 UDP packets | Enable or disable monitoring of ipv4 UDP packets metrics (sent, received.). | yes | no |\n| ipv4 UDP errors | Enable or disable monitoring of ipv4 UDP errors metrics (Recieved Buffer error, Input Errors, No Ports, IN Checksum Errors, Ignore Multi). | yes | no |\n| ipv4 icmp packets | Enable or disable monitoring of IPv4 ICMP packets metrics (sent, received, in error, OUT error, IN Checksum error). | yes | no |\n| ipv4 icmp messages | Enable or disable monitoring of ipv4 ICMP messages metrics (I/O messages, I/O Errors, In Checksum). | yes | no |\n| ipv4 packets | Enable or disable monitoring of ipv4 packets metrics (received, sent, forwarded, delivered). | yes | no |\n| ipv4 fragments sent | Enable or disable monitoring of IPv4 fragments sent metrics (ok, fails, creates). | yes | no |\n| ipv4 fragments assembly | Enable or disable monitoring of IPv4 fragments assembly metrics (ok, failed, all). | yes | no |\n| ipv4 errors | Enable or disable monitoring of IPv4 errors metrics (I/O discard, I/O HDR errors, In Addr errors, In Unknown protos, OUT No Routes). | yes | no |\n| ipv6 packets | Enable or disable monitoring of IPv6 packets metrics (received, sent, forwarded, delivered). | auto | no |\n| ipv6 fragments sent | Enable or disable monitoring of IPv6 fragments sent metrics (ok, failed, all). | auto | no |\n| ipv6 fragments assembly | Enable or disable monitoring of IPv6 fragments assembly metrics (ok, failed, timeout, all). | auto | no |\n| ipv6 errors | Enable or disable monitoring of IPv6 errors metrics (I/O Discards, In Hdr Errors, In Addr Errors, In Truncaedd Packets, I/O No Routes). | auto | no |\n| icmp | Enable or disable monitoring of ICMP metrics (sent, received). | auto | no |\n| icmp redirects | Enable or disable monitoring of ICMP redirects metrics (received, sent). | auto | no |\n| icmp errors | Enable or disable monitoring of ICMP metrics (I/O Errors, In Checksums, In Destination Unreachable, In Packet too big, In Time Exceeds, In Parm Problem, Out Dest Unreachable, Out Timee Exceeds, Out Parm Problems.). | auto | no |\n| icmp echos | Enable or disable monitoring of ICMP echos metrics (I/O Echos, I/O Echo Reply). | auto | no |\n| icmp router | Enable or disable monitoring of ICMP router metrics (I/O Solicits, I/O Advertisements). | auto | no |\n| icmp neighbor | Enable or disable monitoring of ICMP neighbor metrics (I/O Solicits, I/O Advertisements). | auto | no |\n| icmp types | Enable or disable monitoring of ICMP types metrics (I/O Type1, I/O Type128, I/O Type129, Out Type133, Out Type135, In Type136, Out Type145). | auto | no |\n| space usage for all disks | Enable or disable monitoring of space usage for all disks metrics (available, used, reserved for root). | yes | no |\n| inodes usage for all disks | Enable or disable monitoring of inodes usage for all disks metrics (available, used, reserved for root). | yes | no |\n| bandwidth | Enable or disable monitoring of bandwidth metrics (received, sent). | yes | no |\n| system uptime | Enable or disable monitoring of system uptime metrics (uptime). | yes | no |\n| cpu utilization | Enable or disable monitoring of CPU utilization metrics (user, nice, system, idel). | yes | no |\n| system ram | Enable or disable monitoring of system RAM metrics (Active, Wired, throttled, compressor, inactive, purgeable, speculative, free). | yes | no |\n| swap i/o | Enable or disable monitoring of SWAP I/O metrics (I/O Swap). | yes | no |\n| memory page faults | Enable or disable monitoring of memory page faults metrics (memory, cow, I/O page, compress, decompress, zero fill, reactivate, purge). | yes | no |\n| disk i/o | Enable or disable monitoring of disk I/O metrics (In, Out). | yes | no |\n\n{% /details %}\n#### Examples\n\n##### Disable swap monitoring.\n\nA basic example that discards swap monitoring\n\n{% details summary="Config" %}\n```yaml\n[plugin:macos:sysctl]\n system swap = no\n[plugin:macos:mach_smi]\n swap i/o = no\n\n```\n{% /details %}\n##### Disable complete Machine SMI section.\n\nA basic example that discards swap monitoring\n\n{% details summary="Config" %}\n```yaml\n[plugin:macos:mach_smi]\n cpu utilization = no\n system ram = no\n swap i/o = no\n memory page faults = no\n disk i/o = no\n\n```\n{% /details %}\n',troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ interface_speed ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.net | network interface ${label:device} current speed |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per macOS instance\n\nThese metrics refer to hardware and network monitoring.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu | user, nice, system, idle | percentage |\n| system.ram | active, wired, throttled, compressor, inactive, purgeable, speculative, free | MiB |\n| mem.swapio | io, out | KiB/s |\n| mem.pgfaults | memory, cow, pagein, pageout, compress, decompress, zero_fill, reactivate, purge | faults/s |\n| system.load | load1, load5, load15 | load |\n| mem.swap | free, used | MiB |\n| system.ipv4 | received, sent | kilobits/s |\n| ipv4.tcppackets | received, sent | packets/s |\n| ipv4.tcperrors | InErrs, InCsumErrors, RetransSegs | packets/s |\n| ipv4.tcphandshake | EstabResets, ActiveOpens, PassiveOpens, AttemptFails | events/s |\n| ipv4.tcpconnaborts | baddata, userclosed, nomemory, timeout | connections/s |\n| ipv4.tcpofo | inqueue | packets/s |\n| ipv4.tcpsyncookies | received, sent, failed | packets/s |\n| ipv4.ecnpkts | CEP, NoECTP | packets/s |\n| ipv4.udppackets | received, sent | packets/s |\n| ipv4.udperrors | RcvbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | events/s |\n| ipv4.icmp | received, sent | packets/s |\n| ipv4.icmp_errors | InErrors, OutErrors, InCsumErrors | packets/s |\n| ipv4.icmpmsg | InEchoReps, OutEchoReps, InEchos, OutEchos | packets/s |\n| ipv4.packets | received, sent, forwarded, delivered | packets/s |\n| ipv4.fragsout | ok, failed, created | packets/s |\n| ipv4.fragsin | ok, failed, all | packets/s |\n| ipv4.errors | InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos | packets/s |\n| ipv6.packets | received, sent, forwarded, delivers | packets/s |\n| ipv6.fragsout | ok, failed, all | packets/s |\n| ipv6.fragsin | ok, failed, timeout, all | packets/s |\n| ipv6.errors | InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes | packets/s |\n| ipv6.icmp | received, sent | messages/s |\n| ipv6.icmpredir | received, sent | redirects/s |\n| ipv6.icmperrors | InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutTimeExcds, OutParmProblems | errors/s |\n| ipv6.icmpechos | InEchos, OutEchos, InEchoReplies, OutEchoReplies | messages/s |\n| ipv6.icmprouter | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpneighbor | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmptypes | InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143 | messages/s |\n| system.uptime | uptime | seconds |\n| system.io | in, out | KiB/s |\n\n### Per disk\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.io | read, writes | KiB/s |\n| disk.ops | read, writes | operations/s |\n| disk.util | utilization | % of time working |\n| disk.iotime | reads, writes | milliseconds/s |\n| disk.await | reads, writes | milliseconds/operation |\n| disk.avgsz | reads, writes | KiB/operation |\n| disk.svctm | svctm | milliseconds/operation |\n\n### Per mount point\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.space | avail, used, reserved_for_root | GiB |\n| disk.inodes | avail, used, reserved_for_root | inodes |\n\n### Per network device\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| net.net | received, sent | kilobits/s |\n| net.packets | received, sent, multicast_received, multicast_sent | packets/s |\n| net.errors | inbound, outbound | errors/s |\n| net.drops | inbound | drops/s |\n| net.events | frames, collisions, carrier | events/s |\n\n",integration_type:"collector",id:"macos.plugin-mach_smi-macOS",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/macos.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"nfacct.plugin",module_name:"nfacct.plugin",monitored_instance:{name:"Netfilter",link:"https://www.netfilter.org/",categories:["data-collection.linux-systems.firewall-metrics"],icon_filename:"netfilter.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# Netfilter\n\nPlugin: nfacct.plugin\nModule: nfacct.plugin\n\n## Overview\n\nMonitor Netfilter metrics for optimal packet filtering and manipulation. Keep tabs on packet counts, dropped packets, and error rates to secure network operations.\n\nNetdata uses libmnl (https://www.netfilter.org/projects/libmnl/index.html) to collect information.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThis plugin needs setuid.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis plugin uses socket to connect with netfilter to collect data\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install required packages\n\nInstall `libmnl-dev` and `libnetfilter-acct-dev` using the package manager of your system.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:nfacct]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| command options | Additinal parameters for collector | | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Netfilter instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netfilter.netlink_new | new, ignore, invalid | connections/s |\n| netfilter.netlink_changes | insert, delete, delete_list | changes/s |\n| netfilter.netlink_search | searched, search_restart, found | searches/s |\n| netfilter.netlink_errors | icmp_error, insert_failed, drop, early_drop | events/s |\n| netfilter.netlink_expect | created, deleted, new | expectations/s |\n| netfilter.nfacct_packets | a dimension per nfacct object | packets/s |\n| netfilter.nfacct_bytes | a dimension per nfacct object | kilobytes/s |\n\n",integration_type:"collector",id:"nfacct.plugin-nfacct.plugin-Netfilter",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/nfacct.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"perf.plugin",module_name:"perf.plugin",monitored_instance:{name:"CPU performance",link:"https://kernel.org/",categories:["data-collection.linux-systems"],icon_filename:"bolt.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["linux","cpu performance","cpu cache","perf.plugin"],most_popular:!1},overview:"# CPU performance\n\nPlugin: perf.plugin\nModule: perf.plugin\n\n## Overview\n\nThis collector monitors CPU performance metrics about cycles, instructions, migrations, cache operations and more.\n\nIt uses syscall (2) to open a file descriptior to monitor the perf events.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nIt needs setuid to use necessary syscall to collect perf events. Netada sets the permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Install perf plugin\n\nIf you are [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure the `netdata-plugin-perf` package is installed.\n\n\n#### Enable the pref plugin\n\nThe plugin is disabled by default because the number of PMUs is usually quite limited and it is not desired to allow Netdata to struggle silently for PMUs, interfering with other performance monitoring software.\n\nTo enable it, use `edit-config` from the Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md), which is typically at `/etc/netdata`, to edit the `netdata.conf` file.\n\n```bash\ncd /etc/netdata # Replace this path with your Netdata config directory, if different\nsudo ./edit-config netdata.conf\n```\n\nChange the value of the `perf` setting to `yes` in the `[plugins]` section. Save the file and restart the Netdata Agent with `sudo systemctl restart netdata`, or the [appropriate method](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#maintaining-a-netdata-agent-installation) for your system.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:perf]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nYou can get the available options running:\n\n```bash\n/usr/libexec/netdata/plugins.d/perf.plugin --help\n````\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| command options | Command options that specify charts shown by plugin. `cycles`, `instructions`, `branch`, `cache`, `bus`, `stalled`, `migrations`, `alignment`, `emulation`, `L1D`, `L1D-prefetch`, `L1I`, `LL`, `DTLB`, `ITLB`, `PBU`. | 1 | yes |\n\n{% /details %}\n#### Examples\n\n##### All metrics\n\nMonitor all metrics available.\n\n```yaml\n[plugin:perf]\n command options = all\n\n```\n##### CPU cycles\n\nMonitor CPU cycles.\n\n{% details summary="Config" %}\n```yaml\n[plugin:perf]\n command options = cycles\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\n\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CPU performance instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| perf.cpu_cycles | cpu, ref_cpu | cycles/s |\n| perf.instructions | instructions | instructions/s |\n| perf.instructions_per_cycle | ipc | instructions/cycle |\n| perf.branch_instructions | instructions, misses | instructions/s |\n| perf.cache | references, misses | operations/s |\n| perf.bus_cycles | bus | cycles/s |\n| perf.stalled_cycles | frontend, backend | cycles/s |\n| perf.migrations | migrations | migrations |\n| perf.alignment_faults | faults | faults |\n| perf.emulation_faults | faults | faults |\n| perf.l1d_cache | read_access, read_misses, write_access, write_misses | events/s |\n| perf.l1d_cache_prefetch | prefetches | prefetches/s |\n| perf.l1i_cache | read_access, read_misses | events/s |\n| perf.ll_cache | read_access, read_misses, write_access, write_misses | events/s |\n| perf.dtlb_cache | read_access, read_misses, write_access, write_misses | events/s |\n| perf.itlb_cache | read_access, read_misses | events/s |\n| perf.pbu_cache | read_access | events/s |\n\n",integration_type:"collector",id:"perf.plugin-perf.plugin-CPU_performance",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/perf.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/diskstats",monitored_instance:{name:"Disk Statistics",link:"",categories:["data-collection.linux-systems.disk-metrics"],icon_filename:"hard-drive.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["disk","disks","io","bcache","block devices"],most_popular:!1},overview:"# Disk Statistics\n\nPlugin: proc.plugin\nModule: /proc/diskstats\n\n## Overview\n\nDetailed statistics for each of your system's disk devices and partitions.\nThe data is reported by the kernel and can be used to monitor disk activity on a Linux system.\n\nGet valuable insight into how your disks are performing and where potential bottlenecks might be.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_disk_backlog ](https://github.com/netdata/netdata/blob/master/src/health/health.d/disks.conf) | disk.backlog | average backlog size of the ${label:device} disk over the last 10 minutes |\n| [ 10min_disk_utilization ](https://github.com/netdata/netdata/blob/master/src/health/health.d/disks.conf) | disk.util | average percentage of time ${label:device} disk was busy over the last 10 minutes |\n| [ bcache_cache_dirty ](https://github.com/netdata/netdata/blob/master/src/health/health.d/bcache.conf) | disk.bcache_cache_alloc | percentage of cache space used for dirty data and metadata (this usually means your SSD cache is too small) |\n| [ bcache_cache_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/bcache.conf) | disk.bcache_cache_read_races | number of times data was read from the cache, the bucket was reused and invalidated in the last 10 minutes (when this occurs the data is reread from the backing device) |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Disk Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.io | in, out | KiB/s |\n\n### Per disk\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n| mount_point | TBD |\n| device_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.io | reads, writes | KiB/s |\n| disk_ext.io | discards | KiB/s |\n| disk.ops | reads, writes | operations/s |\n| disk_ext.ops | discards, flushes | operations/s |\n| disk.qops | operations | operations |\n| disk.backlog | backlog | milliseconds |\n| disk.busy | busy | milliseconds |\n| disk.util | utilization | % of time working |\n| disk.mops | reads, writes | merged operations/s |\n| disk_ext.mops | discards | merged operations/s |\n| disk.iotime | reads, writes | milliseconds/s |\n| disk_ext.iotime | discards, flushes | milliseconds/s |\n| disk.await | reads, writes | milliseconds/operation |\n| disk_ext.await | discards, flushes | milliseconds/operation |\n| disk.avgsz | reads, writes | KiB/operation |\n| disk_ext.avgsz | discards | KiB/operation |\n| disk.svctm | svctm | milliseconds/operation |\n| disk.bcache_cache_alloc | ununsed, dirty, clean, metadata, undefined | percentage |\n| disk.bcache_hit_ratio | 5min, 1hour, 1day, ever | percentage |\n| disk.bcache_rates | congested, writeback | KiB/s |\n| disk.bcache_size | dirty | MiB |\n| disk.bcache_usage | avail | percentage |\n| disk.bcache_cache_read_races | races, errors | operations/s |\n| disk.bcache | hits, misses, collisions, readaheads | operations/s |\n| disk.bcache_bypass | hits, misses | operations/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/diskstats-Disk_Statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/interrupts",monitored_instance:{name:"Interrupts",link:"",categories:["data-collection.linux-systems.cpu-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["interrupts"],most_popular:!1},overview:"# Interrupts\n\nPlugin: proc.plugin\nModule: /proc/interrupts\n\n## Overview\n\nMonitors `/proc/interrupts`, a file organized by CPU and then by the type of interrupt.\nThe numbers reported are the counts of the interrupts that have occurred of each type.\n\nAn interrupt is a signal to the processor emitted by hardware or software indicating an event that needs\nimmediate attention. The processor then interrupts its current activities and executes the interrupt handler\nto deal with the event. This is part of the way a computer multitasks and handles concurrent processing.\n\nThe types of interrupts include:\n\n- **I/O interrupts**: These are caused by I/O devices like the keyboard, mouse, printer, etc. For example, when\n you type something on the keyboard, an interrupt is triggered so the processor can handle the new input.\n\n- **Timer interrupts**: These are generated at regular intervals by the system's timer circuit. It's primarily\n used to switch the CPU among different tasks.\n\n- **Software interrupts**: These are generated by a program requiring disk I/O operations, or other system resources.\n\n- **Hardware interrupts**: These are caused by hardware conditions such as power failure, overheating, etc.\n\nMonitoring `/proc/interrupts` can be used for:\n\n- **Performance tuning**: If an interrupt is happening very frequently, it could be a sign that a device is not\n configured correctly, or there is a software bug causing unnecessary interrupts. This could lead to system\n performance degradation.\n\n- **System troubleshooting**: If you're seeing a lot of unexpected interrupts, it could be a sign of a hardware problem.\n\n- **Understanding system behavior**: More generally, keeping an eye on what interrupts are occurring can help you\n understand what your system is doing. It can provide insights into the system's interaction with hardware,\n drivers, and other parts of the kernel.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Interrupts instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.interrupts | a dimension per device | interrupts/s |\n\n### Per cpu core\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cpu | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.interrupts | a dimension per device | interrupts/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/interrupts-Interrupts",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/loadavg",monitored_instance:{name:"System Load Average",link:"",categories:["data-collection.linux-systems.system-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["load","load average"],most_popular:!1},overview:"# System Load Average\n\nPlugin: proc.plugin\nModule: /proc/loadavg\n\n## Overview\n\nThe `/proc/loadavg` file provides information about the system load average.\n\nThe load average is a measure of the amount of computational work that a system performs. It is a\nrepresentation of the average system load over a period of time.\n\nThis file contains three numbers representing the system load averages for the last 1, 5, and 15 minutes,\nrespectively. It also includes the currently running processes and the total number of processes.\n\nMonitoring the load average can be used for:\n\n- **System performance**: If the load average is too high, it may indicate that your system is overloaded.\n On a system with a single CPU, if the load average is 1, it means the single CPU is fully utilized. If the\n load averages are consistently higher than the number of CPUs/cores, it may indicate that your system is\n overloaded and tasks are waiting for CPU time.\n\n- **Troubleshooting**: If the load average is unexpectedly high, it can be a sign of a problem. This could be\n due to a runaway process, a software bug, or a hardware issue.\n\n- **Capacity planning**: By monitoring the load average over time, you can understand the trends in your\n system's workload. This can help with capacity planning and scaling decisions.\n\nRemember that load average not only considers CPU usage, but also includes processes waiting for disk I/O.\nTherefore, high load averages could be due to I/O contention as well as CPU contention.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ load_cpu_number ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | number of active CPU cores in the system |\n| [ load_average_15 ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | system fifteen-minute load average |\n| [ load_average_5 ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | system five-minute load average |\n| [ load_average_1 ](https://github.com/netdata/netdata/blob/master/src/health/health.d/load.conf) | system.load | system one-minute load average |\n| [ active_processes ](https://github.com/netdata/netdata/blob/master/src/health/health.d/processes.conf) | system.active_processes | system process IDs (PID) space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per System Load Average instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.load | load1, load5, load15 | load |\n| system.active_processes | active | processes |\n\n",integration_type:"collector",id:"proc.plugin-/proc/loadavg-System_Load_Average",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/mdstat",monitored_instance:{name:"MD RAID",link:"",categories:["data-collection.linux-systems.disk-metrics"],icon_filename:"hard-drive.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["raid","mdadm","mdstat","raid"],most_popular:!1},overview:"# MD RAID\n\nPlugin: proc.plugin\nModule: /proc/mdstat\n\n## Overview\n\nThis integration monitors the status of MD RAID devices.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mdstat_last_collected ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mdstat.conf) | md.disks | number of seconds since the last successful data collection |\n| [ mdstat_disks ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mdstat.conf) | md.disks | number of devices in the down state for the ${label:device} ${label:raid_level} array. Any number > 0 indicates that the array is degraded. |\n| [ mdstat_mismatch_cnt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mdstat.conf) | md.mismatch_cnt | number of unsynchronized blocks for the ${label:device} ${label:raid_level} array |\n| [ mdstat_nonredundant_last_collected ](https://github.com/netdata/netdata/blob/master/src/health/health.d/mdstat.conf) | md.nonredundant | number of seconds since the last successful data collection |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MD RAID instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| md.health | a dimension per md array | failed disks |\n\n### Per md array\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n| raid_level | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| md.disks | inuse, down | disks |\n| md.mismatch_cnt | count | unsynchronized blocks |\n| md.status | check, resync, recovery, reshape | percent |\n| md.expected_time_until_operation_finish | finish_in | seconds |\n| md.operation_speed | speed | KiB/s |\n| md.nonredundant | available | boolean |\n\n",integration_type:"collector",id:"proc.plugin-/proc/mdstat-MD_RAID",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/meminfo",monitored_instance:{name:"Memory Usage",link:"",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["memory","ram","available","committed"],most_popular:!1},overview:"# Memory Usage\n\nPlugin: proc.plugin\nModule: /proc/meminfo\n\n## Overview\n\n`/proc/meminfo` provides detailed information about the system's current memory usage. It includes information\nabout different types of memory, RAM, Swap, ZSwap, HugePages, Transparent HugePages (THP), Kernel memory,\nSLAB memory, memory mappings, and more.\n\nMonitoring /proc/meminfo can be useful for:\n\n- **Performance Tuning**: Understanding your system's memory usage can help you make decisions about system\n tuning and optimization. For example, if your system is frequently low on free memory, it might benefit\n from more RAM.\n\n- **Troubleshooting**: If your system is experiencing problems, `/proc/meminfo` can provide clues about\n whether memory usage is a factor. For example, if your system is slow and cached swap is high, it could\n mean that your system is swapping out a lot of memory to disk, which can degrade performance.\n\n- **Capacity Planning**: By monitoring memory usage over time, you can understand trends and make informed\n decisions about future capacity needs.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ram_in_use ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | system.ram | system memory utilization |\n| [ ram_available ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | mem.available | percentage of estimated amount of RAM available for userspace processes, without causing swapping |\n| [ used_swap ](https://github.com/netdata/netdata/blob/master/src/health/health.d/swap.conf) | mem.swap | swap memory utilization |\n| [ 1hour_memory_hw_corrupted ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memory.conf) | mem.hwcorrupt | amount of memory corrupted due to a hardware failure |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Memory Usage instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ram | free, used, cached, buffers | MiB |\n| mem.available | avail | MiB |\n| mem.swap | free, used | MiB |\n| mem.swap_cached | cached | MiB |\n| mem.zswap | in-ram, on-disk | MiB |\n| mem.hwcorrupt | HardwareCorrupted | MiB |\n| mem.commited | Commited_AS | MiB |\n| mem.writeback | Dirty, Writeback, FuseWriteback, NfsWriteback, Bounce | MiB |\n| mem.kernel | Slab, KernelStack, PageTables, VmallocUsed, Percpu | MiB |\n| mem.slab | reclaimable, unreclaimable | MiB |\n| mem.hugepages | free, used, surplus, reserved | MiB |\n| mem.thp | anonymous, shmem | MiB |\n| mem.thp_details | ShmemPmdMapped, FileHugePages, FilePmdMapped | MiB |\n| mem.reclaiming | Active, Inactive, Active(anon), Inactive(anon), Active(file), Inactive(file), Unevictable, Mlocked | MiB |\n| mem.high_low | high_used, low_used, high_free, low_free | MiB |\n| mem.cma | used, free | MiB |\n| mem.directmaps | 4k, 2m, 4m, 1g | MiB |\n\n",integration_type:"collector",id:"proc.plugin-/proc/meminfo-Memory_Usage",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/dev",monitored_instance:{name:"Network interfaces",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["network interfaces"],most_popular:!1},overview:"# Network interfaces\n\nPlugin: proc.plugin\nModule: /proc/net/dev\n\n## Overview\n\nMonitor network interface metrics about bandwidth, state, errors and more.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ interface_speed ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.net | network interface ${label:device} current speed |\n| [ 1m_received_traffic_overflow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.net | average inbound utilization for the network interface ${label:device} over the last minute |\n| [ 1m_sent_traffic_overflow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.net | average outbound utilization for the network interface ${label:device} over the last minute |\n| [ inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.drops | ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.drops | ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ wifi_inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.drops | ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ wifi_outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.drops | ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ 1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ 10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n| [ 10min_fifo_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/net.conf) | net.fifo | number of FIFO errors for the network interface ${label:device} in the last 10 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Network interfaces instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.net | received, sent | kilobits/s |\n\n### Per network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| interface_type | TBD |\n| device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| net.net | received, sent | kilobits/s |\n| net.speed | speed | kilobits/s |\n| net.duplex | full, half, unknown | state |\n| net.operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| net.carrier | up, down | state |\n| net.mtu | mtu | octets |\n| net.packets | received, sent, multicast | packets/s |\n| net.errors | inbound, outbound | errors/s |\n| net.drops | inbound, outbound | drops/s |\n| net.fifo | receive, transmit | errors |\n| net.compressed | received, sent | packets/s |\n| net.events | frames, collisions, carrier | events/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/dev-Network_interfaces",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/ip_vs_stats",monitored_instance:{name:"IP Virtual Server",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ip virtual server"],most_popular:!1},overview:"# IP Virtual Server\n\nPlugin: proc.plugin\nModule: /proc/net/ip_vs_stats\n\n## Overview\n\nThis integration monitors IP Virtual Server statistics\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IP Virtual Server instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipvs.sockets | connections | connections/s |\n| ipvs.packets | received, sent | packets/s |\n| ipvs.net | received, sent | kilobits/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/ip_vs_stats-IP_Virtual_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/netstat",monitored_instance:{name:"Network statistics",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ip","udp","udplite","icmp","netstat","snmp"],most_popular:!1},overview:"# Network statistics\n\nPlugin: proc.plugin\nModule: /proc/net/netstat\n\n## Overview\n\nThis integration provides metrics from the `netstat`, `snmp` and `snmp6` modules.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1m_tcp_syn_queue_drops ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_listen.conf) | ip.tcp_syn_queue | average number of SYN requests was dropped due to the full TCP SYN queue over the last minute (SYN cookies were not enabled) |\n| [ 1m_tcp_syn_queue_cookies ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_listen.conf) | ip.tcp_syn_queue | average number of sent SYN cookies due to the full TCP SYN queue over the last minute |\n| [ 1m_tcp_accept_queue_overflows ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_listen.conf) | ip.tcp_accept_queue | average number of overflows in the TCP accept queue over the last minute |\n| [ 1m_tcp_accept_queue_drops ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_listen.conf) | ip.tcp_accept_queue | average number of dropped packets in the TCP accept queue over the last minute |\n| [ tcp_connections ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_conn.conf) | ip.tcpsock | TCP connections utilization |\n| [ 1m_ip_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ip.tcphandshake | average number of sent TCP RESETS over the last minute |\n| [ 10s_ip_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ip.tcphandshake | average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has crashed. Netdata will not send a clear notification for this alarm. |\n| [ 1m_ip_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ip.tcphandshake | average number of received TCP RESETS over the last minute |\n| [ 10s_ip_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_resets.conf) | ip.tcphandshake | average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed. Netdata will not send a clear notification for this alarm. |\n| [ 1m_ipv4_udp_receive_buffer_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP receive buffer errors over the last minute |\n| [ 1m_ipv4_udp_send_buffer_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP send buffer errors over the last minute |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Network statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ip | received, sent | kilobits/s |\n| ip.tcpmemorypressures | pressures | events/s |\n| ip.tcpconnaborts | baddata, userclosed, nomemory, timeout, linger, failed | connections/s |\n| ip.tcpreorders | timestamp, sack, fack, reno | packets/s |\n| ip.tcpofo | inqueue, dropped, merged, pruned | packets/s |\n| ip.tcpsyncookies | received, sent, failed | packets/s |\n| ip.tcp_syn_queue | drops, cookies | packets/s |\n| ip.tcp_accept_queue | overflows, drops | packets/s |\n| ip.tcpsock | connections | active connections |\n| ip.tcppackets | received, sent | packets/s |\n| ip.tcperrors | InErrs, InCsumErrors, RetransSegs | packets/s |\n| ip.tcpopens | active, passive | connections/s |\n| ip.tcphandshake | EstabResets, OutRsts, AttemptFails, SynRetrans | events/s |\n| ipv4.packets | received, sent, forwarded, delivered | packets/s |\n| ipv4.errors | InDiscards, OutDiscards, InNoRoutes, OutNoRoutes, InHdrErrors, InAddrErrors, InTruncatedPkts, InCsumErrors | packets/s |\n| ipc4.bcast | received, sent | kilobits/s |\n| ipv4.bcastpkts | received, sent | packets/s |\n| ipv4.mcast | received, sent | kilobits/s |\n| ipv4.mcastpkts | received, sent | packets/s |\n| ipv4.icmp | received, sent | packets/s |\n| ipv4.icmpmsg | InEchoReps, OutEchoReps, InDestUnreachs, OutDestUnreachs, InRedirects, OutRedirects, InEchos, OutEchos, InRouterAdvert, OutRouterAdvert, InRouterSelect, OutRouterSelect, InTimeExcds, OutTimeExcds, InParmProbs, OutParmProbs, InTimestamps, OutTimestamps, InTimestampReps, OutTimestampReps | packets/s |\n| ipv4.icmp_errors | InErrors, OutErrors, InCsumErrors | packets/s |\n| ipv4.udppackets | received, sent | packets/s |\n| ipv4.udperrors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | events/s |\n| ipv4.udplite | received, sent | packets/s |\n| ipv4.udplite_errors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | packets/s |\n| ipv4.ecnpkts | CEP, NoECTP, ECTP0, ECTP1 | packets/s |\n| ipv4.fragsin | ok, failed, all | packets/s |\n| ipv4.fragsout | ok, failed, created | packets/s |\n| system.ipv6 | received, sent | kilobits/s |\n| ipv6.packets | received, sent, forwarded, delivers | packets/s |\n| ipv6.errors | InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InUnknownProtos, InTooBigErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes | packets/s |\n| ipv6.bcast | received, sent | kilobits/s |\n| ipv6.mcast | received, sent | kilobits/s |\n| ipv6.mcastpkts | received, sent | packets/s |\n| ipv6.udppackets | received, sent | packets/s |\n| ipv6.udperrors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | events/s |\n| ipv6.udplitepackets | received, sent | packets/s |\n| ipv6.udpliteerrors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors | events/s |\n| ipv6.icmp | received, sent | messages/s |\n| ipv6.icmpredir | received, sent | redirects/s |\n| ipv6.icmperrors | InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutPktTooBigs, OutTimeExcds, OutParmProblems | errors/s |\n| ipv6.icmpechos | InEchos, OutEchos, InEchoReplies, OutEchoReplies | messages/s |\n| ipv6.groupmemb | InQueries, OutQueries, InResponses, OutResponses, InReductions, OutReductions | messages/s |\n| ipv6.icmprouter | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpneighbor | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpmldv2 | received, sent | reports/s |\n| ipv6.icmptypes | InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143 | messages/s |\n| ipv6.ect | InNoECTPkts, InECT1Pkts, InECT0Pkts, InCEPkts | packets/s |\n| ipv6.ect | InNoECTPkts, InECT1Pkts, InECT0Pkts, InCEPkts | packets/s |\n| ipv6.fragsin | ok, failed, timeout, all | packets/s |\n| ipv6.fragsout | ok, failed, all | packets/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/netstat-Network_statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/rpc/nfs",monitored_instance:{name:"NFS Client",link:"",categories:["data-collection.linux-systems.filesystem-metrics.nfs"],icon_filename:"nfs.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["nfs client","filesystem"],most_popular:!1},overview:"# NFS Client\n\nPlugin: proc.plugin\nModule: /proc/net/rpc/nfs\n\n## Overview\n\nThis integration provides statistics from the Linux kernel's NFS Client.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NFS Client instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nfs.net | udp, tcp | operations/s |\n| nfs.rpc | calls, retransmits, auth_refresh | calls/s |\n| nfs.proc2 | a dimension per proc2 call | calls/s |\n| nfs.proc3 | a dimension per proc3 call | calls/s |\n| nfs.proc4 | a dimension per proc4 call | calls/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/rpc/nfs-NFS_Client",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/rpc/nfsd",monitored_instance:{name:"NFS Server",link:"",categories:["data-collection.linux-systems.filesystem-metrics.nfs"],icon_filename:"nfs.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["nfs server","filesystem"],most_popular:!1},overview:"# NFS Server\n\nPlugin: proc.plugin\nModule: /proc/net/rpc/nfsd\n\n## Overview\n\nThis integration provides statistics from the Linux kernel's NFS Server.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NFS Server instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nfsd.readcache | hits, misses, nocache | reads/s |\n| nfsd.filehandles | stale | handles/s |\n| nfsd.io | read, write | kilobytes/s |\n| nfsd.threads | threads | threads |\n| nfsd.net | udp, tcp | packets/s |\n| nfsd.rpc | calls, bad_format, bad_auth | calls/s |\n| nfsd.proc2 | a dimension per proc2 call | calls/s |\n| nfsd.proc3 | a dimension per proc3 call | calls/s |\n| nfsd.proc4 | a dimension per proc4 call | calls/s |\n| nfsd.proc4ops | a dimension per proc4 operation | operations/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/rpc/nfsd-NFS_Server",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/sctp/snmp",monitored_instance:{name:"SCTP Statistics",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["sctp","stream control transmission protocol"],most_popular:!1},overview:"# SCTP Statistics\n\nPlugin: proc.plugin\nModule: /proc/net/sctp/snmp\n\n## Overview\n\nThis integration provides statistics about the Stream Control Transmission Protocol (SCTP).\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per SCTP Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| sctp.established | established | associations |\n| sctp.transitions | active, passive, aborted, shutdown | transitions/s |\n| sctp.packets | received, sent | packets/s |\n| sctp.packet_errors | invalid, checksum | packets/s |\n| sctp.fragmentation | reassembled, fragmented | packets/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/sctp/snmp-SCTP_Statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/sockstat",monitored_instance:{name:"Socket statistics",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["sockets"],most_popular:!1},overview:"# Socket statistics\n\nPlugin: proc.plugin\nModule: /proc/net/sockstat\n\n## Overview\n\nThis integration provides socket statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ tcp_orphans ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_orphans.conf) | ipv4.sockstat_tcp_sockets | orphan IPv4 TCP sockets utilization |\n| [ tcp_memory ](https://github.com/netdata/netdata/blob/master/src/health/health.d/tcp_mem.conf) | ipv4.sockstat_tcp_mem | TCP memory utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Socket statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ip.sockstat_sockets | used | sockets |\n| ipv4.sockstat_tcp_sockets | alloc, orphan, inuse, timewait | sockets |\n| ipv4.sockstat_tcp_mem | mem | KiB |\n| ipv4.sockstat_udp_sockets | inuse | sockets |\n| ipv4.sockstat_udp_mem | mem | sockets |\n| ipv4.sockstat_udplite_sockets | inuse | sockets |\n| ipv4.sockstat_raw_sockets | inuse | sockets |\n| ipv4.sockstat_frag_sockets | inuse | fragments |\n| ipv4.sockstat_frag_mem | mem | KiB |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/sockstat-Socket_statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/sockstat6",monitored_instance:{name:"IPv6 Socket Statistics",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ipv6 sockets"],most_popular:!1},overview:"# IPv6 Socket Statistics\n\nPlugin: proc.plugin\nModule: /proc/net/sockstat6\n\n## Overview\n\nThis integration provides IPv6 socket statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IPv6 Socket Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv6.sockstat6_tcp_sockets | inuse | sockets |\n| ipv6.sockstat6_udp_sockets | inuse | sockets |\n| ipv6.sockstat6_udplite_sockets | inuse | sockets |\n| ipv6.sockstat6_raw_sockets | inuse | sockets |\n| ipv6.sockstat6_frag_sockets | inuse | fragments |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/sockstat6-IPv6_Socket_Statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/softnet_stat",monitored_instance:{name:"Softnet Statistics",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["softnet"],most_popular:!1},overview:"# Softnet Statistics\n\nPlugin: proc.plugin\nModule: /proc/net/softnet_stat\n\n## Overview\n\n`/proc/net/softnet_stat` provides statistics that relate to the handling of network packets by softirq.\n\nIt provides information about:\n\n- Total number of processed packets (`processed`).\n- Times ksoftirq ran out of quota (`dropped`).\n- Times net_rx_action was rescheduled.\n- Number of times processed all lists before quota.\n- Number of times did not process all lists due to quota.\n- Number of times net_rx_action was rescheduled for GRO (Generic Receive Offload) cells.\n- Number of times GRO cells were processed.\n\nMonitoring the /proc/net/softnet_stat file can be useful for:\n\n- **Network performance monitoring**: By tracking the total number of processed packets and how many packets\n were dropped, you can gain insights into your system's network performance.\n\n- **Troubleshooting**: If you're experiencing network-related issues, this collector can provide valuable clues.\n For instance, a high number of dropped packets may indicate a network problem.\n\n- **Capacity planning**: If your system is consistently processing near its maximum capacity of network\n packets, it might be time to consider upgrading your network infrastructure.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1min_netdev_backlog_exceeded ](https://github.com/netdata/netdata/blob/master/src/health/health.d/softnet.conf) | system.softnet_stat | average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog |\n| [ 1min_netdev_budget_ran_outs ](https://github.com/netdata/netdata/blob/master/src/health/health.d/softnet.conf) | system.softnet_stat | average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last minute (this can be a cause for dropped packets) |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Softnet Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softnet_stat | processed, dropped, squeezed, received_rps, flow_limit_count | events/s |\n\n### Per cpu core\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.softnet_stat | processed, dropped, squeezed, received_rps, flow_limit_count | events/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/softnet_stat-Softnet_Statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/stat/nf_conntrack",monitored_instance:{name:"Conntrack",link:"",categories:["data-collection.linux-systems.firewall-metrics"],icon_filename:"firewall.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["connection tracking mechanism","netfilter","conntrack"],most_popular:!1},overview:"# Conntrack\n\nPlugin: proc.plugin\nModule: /proc/net/stat/nf_conntrack\n\n## Overview\n\nThis integration monitors the connection tracking mechanism of Netfilter in the Linux Kernel.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ netfilter_conntrack_full ](https://github.com/netdata/netdata/blob/master/src/health/health.d/netfilter.conf) | netfilter.conntrack_sockets | netfilter connection tracker table size utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Conntrack instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netfilter.conntrack_sockets | connections | active connections |\n| netfilter.conntrack_new | new, ignore, invalid | connections/s |\n| netfilter.conntrack_changes | inserted, deleted, delete_list | changes/s |\n| netfilter.conntrack_expect | created, deleted, new | expectations/s |\n| netfilter.conntrack_search | searched, restarted, found | searches/s |\n| netfilter.conntrack_errors | icmp_error, error_failed, drop, early_drop | events/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/stat/nf_conntrack-Conntrack",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/stat/synproxy",monitored_instance:{name:"Synproxy",link:"",categories:["data-collection.linux-systems.firewall-metrics"],icon_filename:"firewall.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["synproxy"],most_popular:!1},overview:"# Synproxy\n\nPlugin: proc.plugin\nModule: /proc/net/stat/synproxy\n\n## Overview\n\nThis integration provides statistics about the Synproxy netfilter module.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Synproxy instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netfilter.synproxy_syn_received | received | packets/s |\n| netfilter.synproxy_conn_reopened | reopened | connections/s |\n| netfilter.synproxy_cookies | valid, invalid, retransmits | cookies/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/stat/synproxy-Synproxy",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/net/wireless",monitored_instance:{name:"Wireless network interfaces",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["wireless devices"],most_popular:!1},overview:"# Wireless network interfaces\n\nPlugin: proc.plugin\nModule: /proc/net/wireless\n\n## Overview\n\nMonitor wireless devices with metrics about status, link quality, signal level, noise level and more.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per wireless device\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| wireless.status | status | status |\n| wireless.link_quality | link_quality | value |\n| wireless.signal_level | signal_level | dBm |\n| wireless.noise_level | noise_level | dBm |\n| wireless.discarded_packets | nwid, crypt, frag, retry, misc | packets/s |\n| wireless.missed_beacons | missed_beacons | frames/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/net/wireless-Wireless_network_interfaces",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/pagetypeinfo",monitored_instance:{name:"Page types",link:"",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["memory page types"],most_popular:!1},overview:"# Page types\n\nPlugin: proc.plugin\nModule: /proc/pagetypeinfo\n\n## Overview\n\nThis integration provides metrics about the system's memory page types\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Page types instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.pagetype_global | a dimension per pagesize | B |\n\n### Per node, zone, type\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| node_id | TBD |\n| node_zone | TBD |\n| node_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.pagetype | a dimension per pagesize | B |\n\n",integration_type:"collector",id:"proc.plugin-/proc/pagetypeinfo-Page_types",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/pressure",monitored_instance:{name:"Pressure Stall Information",link:"",categories:["data-collection.linux-systems.pressure-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["pressure"],most_popular:!1},overview:"# Pressure Stall Information\n\nPlugin: proc.plugin\nModule: /proc/pressure\n\n## Overview\n\nIntroduced in Linux kernel 4.20, `/proc/pressure` provides information about system pressure stall information\n(PSI). PSI is a feature that allows the system to track the amount of time the system is stalled due to\nresource contention, such as CPU, memory, or I/O.\n\nThe collectors monitored 3 separate files for CPU, memory, and I/O:\n\n- **cpu**: Tracks the amount of time tasks are stalled due to CPU contention.\n- **memory**: Tracks the amount of time tasks are stalled due to memory contention.\n- **io**: Tracks the amount of time tasks are stalled due to I/O contention.\n- **irq**: Tracks the amount of time tasks are stalled due to IRQ contention.\n\nEach of them provides metrics for stall time over the last 10 seconds, 1 minute, 5 minutes, and 15 minutes.\n\nMonitoring the /proc/pressure files can provide important insights into system performance and capacity planning:\n\n- **Identifying resource contention**: If these metrics are consistently high, it indicates that tasks are\n frequently being stalled due to lack of resources, which can significantly degrade system performance.\n\n- **Troubleshooting performance issues**: If a system is experiencing performance issues, these metrics can\n help identify whether resource contention is the cause.\n\n- **Capacity planning**: By monitoring these metrics over time, you can understand trends in resource\n utilization and make informed decisions about when to add more resources to your system.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Pressure Stall Information instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu_some_pressure | some10, some60, some300 | percentage |\n| system.cpu_some_pressure_stall_time | time | ms |\n| system.cpu_full_pressure | some10, some60, some300 | percentage |\n| system.cpu_full_pressure_stall_time | time | ms |\n| system.memory_some_pressure | some10, some60, some300 | percentage |\n| system.memory_some_pressure_stall_time | time | ms |\n| system.memory_full_pressure | some10, some60, some300 | percentage |\n| system.memory_full_pressure_stall_time | time | ms |\n| system.io_some_pressure | some10, some60, some300 | percentage |\n| system.io_some_pressure_stall_time | time | ms |\n| system.io_full_pressure | some10, some60, some300 | percentage |\n| system.io_full_pressure_stall_time | time | ms |\n\n",integration_type:"collector",id:"proc.plugin-/proc/pressure-Pressure_Stall_Information",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/softirqs",monitored_instance:{name:"SoftIRQ statistics",link:"",categories:["data-collection.linux-systems.cpu-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["softirqs","interrupts"],most_popular:!1},overview:"# SoftIRQ statistics\n\nPlugin: proc.plugin\nModule: /proc/softirqs\n\n## Overview\n\nIn the Linux kernel, handling of hardware interrupts is split into two halves: the top half and the bottom half.\nThe top half is the routine that responds immediately to an interrupt, while the bottom half is deferred to be processed later.\n\nSoftirqs are a mechanism in the Linux kernel used to handle the bottom halves of interrupts, which can be\ndeferred and processed later in a context where it's safe to enable interrupts.\n\nThe actual work of handling the interrupt is offloaded to a softirq and executed later when the system\ndecides it's a good time to process them. This helps to keep the system responsive by not blocking the top\nhalf for too long, which could lead to missed interrupts.\n\nMonitoring `/proc/softirqs` is useful for:\n\n- **Performance tuning**: A high rate of softirqs could indicate a performance issue. For instance, a high\n rate of network softirqs (`NET_RX` and `NET_TX`) could indicate a network performance issue.\n\n- **Troubleshooting**: If a system is behaving unexpectedly, checking the softirqs could provide clues about\n what is going on. For example, a sudden increase in block device softirqs (BLOCK) might indicate a problem\n with a disk.\n\n- **Understanding system behavior**: Knowing what types of softirqs are happening can help you understand what\n your system is doing, particularly in terms of how it's interacting with hardware and how it's handling\n interrupts.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per SoftIRQ statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softirqs | a dimension per softirq | softirqs/s |\n\n### Per cpu core\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cpu | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.softirqs | a dimension per softirq | softirqs/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/softirqs-SoftIRQ_statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/spl/kstat/zfs",monitored_instance:{name:"ZFS Pools",link:"",categories:["data-collection.linux-systems.filesystem-metrics.zfs"],icon_filename:"filesystem.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["zfs pools","pools","zfs","filesystem"],most_popular:!1},overview:"# ZFS Pools\n\nPlugin: proc.plugin\nModule: /proc/spl/kstat/zfs\n\n## Overview\n\nThis integration provides metrics about the state of ZFS pools.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ zfs_pool_state_warn ](https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf) | zfspool.state | ZFS pool ${label:pool} state is degraded |\n| [ zfs_pool_state_crit ](https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf) | zfspool.state | ZFS pool ${label:pool} state is faulted or unavail |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per zfs pool\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| pool | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zfspool.state | online, degraded, faulted, offline, removed, unavail, suspended | boolean |\n\n",integration_type:"collector",id:"proc.plugin-/proc/spl/kstat/zfs-ZFS_Pools",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/spl/kstat/zfs/arcstats",monitored_instance:{name:"ZFS Adaptive Replacement Cache",link:"",categories:["data-collection.linux-systems.filesystem-metrics.zfs"],icon_filename:"filesystem.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["zfs arc","arc","zfs","filesystem"],most_popular:!1},overview:"# ZFS Adaptive Replacement Cache\n\nPlugin: proc.plugin\nModule: /proc/spl/kstat/zfs/arcstats\n\n## Overview\n\nThis integration monitors ZFS Adadptive Replacement Cache (ARC) statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ zfs_memory_throttle ](https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf) | zfs.memory_ops | number of times ZFS had to limit the ARC growth in the last 10 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ZFS Adaptive Replacement Cache instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zfs.arc_size | arcsz, target, min, max | MiB |\n| zfs.l2_size | actual, size | MiB |\n| zfs.reads | arc, demand, prefetch, metadata, l2 | reads/s |\n| zfs.bytes | read, write | KiB/s |\n| zfs.hits | hits, misses | percentage |\n| zfs.hits_rate | hits, misses | events/s |\n| zfs.dhits | hits, misses | percentage |\n| zfs.dhits_rate | hits, misses | events/s |\n| zfs.phits | hits, misses | percentage |\n| zfs.phits_rate | hits, misses | events/s |\n| zfs.mhits | hits, misses | percentage |\n| zfs.mhits_rate | hits, misses | events/s |\n| zfs.l2hits | hits, misses | percentage |\n| zfs.l2hits_rate | hits, misses | events/s |\n| zfs.list_hits | mfu, mfu_ghost, mru, mru_ghost | hits/s |\n| zfs.arc_size_breakdown | recent, frequent | percentage |\n| zfs.memory_ops | direct, throttled, indirect | operations/s |\n| zfs.important_ops | evict_skip, deleted, mutex_miss, hash_collisions | operations/s |\n| zfs.actual_hits | hits, misses | percentage |\n| zfs.actual_hits_rate | hits, misses | events/s |\n| zfs.demand_data_hits | hits, misses | percentage |\n| zfs.demand_data_hits_rate | hits, misses | events/s |\n| zfs.prefetch_data_hits | hits, misses | percentage |\n| zfs.prefetch_data_hits_rate | hits, misses | events/s |\n| zfs.hash_elements | current, max | elements |\n| zfs.hash_chains | current, max | chains |\n\n",integration_type:"collector",id:"proc.plugin-/proc/spl/kstat/zfs/arcstats-ZFS_Adaptive_Replacement_Cache",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/stat",monitored_instance:{name:"System statistics",link:"",categories:["data-collection.linux-systems.system-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["cpu utilization","process counts"],most_popular:!1},overview:"# System statistics\n\nPlugin: proc.plugin\nModule: /proc/stat\n\n## Overview\n\nCPU utilization, states and frequencies and key Linux system performance metrics.\n\nThe `/proc/stat` file provides various types of system statistics:\n\n- The overall system CPU usage statistics\n- Per CPU core statistics\n- The total context switching of the system\n- The total number of processes running\n- The total CPU interrupts\n- The total CPU softirqs\n\nThe collector also reads:\n\n- `/proc/schedstat` for statistics about the process scheduler in the Linux kernel.\n- `/sys/devices/system/cpu/[X]/thermal_throttle/core_throttle_count` to get the count of thermal throttling events for a specific CPU core on Linux systems.\n- `/sys/devices/system/cpu/[X]/thermal_throttle/package_throttle_count` to get the count of thermal throttling events for a specific CPU package on a Linux system.\n- `/sys/devices/system/cpu/[X]/cpufreq/scaling_cur_freq` to get the current operating frequency of a specific CPU core.\n- `/sys/devices/system/cpu/[X]/cpufreq/stats/time_in_state` to get the amount of time the CPU has spent in each of its available frequency states.\n- `/sys/devices/system/cpu/[X]/cpuidle/state[X]/name` to get the names of the idle states for each CPU core in a Linux system.\n- `/sys/devices/system/cpu/[X]/cpuidle/state[X]/time` to get the total time each specific CPU core has spent in each idle state since the system was started.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector auto-detects all metrics. No configuration is needed.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe collector disables cpu frequency and idle state monitoring when there are more than 128 CPU cores available.\n\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `plugin:proc:/proc/stat` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cpu.conf) | system.cpu | average CPU utilization over the last 10 minutes (excluding iowait, nice and steal) |\n| [ 10min_cpu_iowait ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cpu.conf) | system.cpu | average CPU iowait time over the last 10 minutes |\n| [ 20min_steal_cpu ](https://github.com/netdata/netdata/blob/master/src/health/health.d/cpu.conf) | system.cpu | average CPU steal time over the last 20 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per System statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu | guest_nice, guest, steal, softirq, irq, user, system, nice, iowait, idle | percentage |\n| system.intr | interrupts | interrupts/s |\n| system.ctxt | switches | context switches/s |\n| system.forks | started | processes/s |\n| system.processes | running, blocked | processes |\n| cpu.core_throttling | a dimension per cpu core | events/s |\n| cpu.package_throttling | a dimension per package | events/s |\n| cpu.cpufreq | a dimension per cpu core | MHz |\n\n### Per cpu core\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cpu | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.cpu | guest_nice, guest, steal, softirq, irq, user, system, nice, iowait, idle | percentage |\n| cpuidle.cpu_cstate_residency_time | a dimension per c-state | percentage |\n\n",integration_type:"collector",id:"proc.plugin-/proc/stat-System_statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/sys/kernel/random/entropy_avail",monitored_instance:{name:"Entropy",link:"",categories:["data-collection.linux-systems.system-metrics"],icon_filename:"syslog.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["entropy"],most_popular:!1},overview:"# Entropy\n\nPlugin: proc.plugin\nModule: /proc/sys/kernel/random/entropy_avail\n\n## Overview\n\nEntropy, a measure of the randomness or unpredictability of data.\n\nIn the context of cryptography, entropy is used to generate random numbers or keys that are essential for\nsecure communication and encryption. Without a good source of entropy, cryptographic protocols can become\nvulnerable to attacks that exploit the predictability of the generated keys.\n\nIn most operating systems, entropy is generated by collecting random events from various sources, such as\nhardware interrupts, mouse movements, keyboard presses, and disk activity. These events are fed into a pool\nof entropy, which is then used to generate random numbers when needed.\n\nThe `/dev/random` device in Linux is one such source of entropy, and it provides an interface for programs\nto access the pool of entropy. When a program requests random numbers, it reads from the `/dev/random` device,\nwhich blocks until enough entropy is available to generate the requested numbers. This ensures that the\ngenerated numbers are truly random and not predictable. \n\nHowever, if the pool of entropy gets depleted, the `/dev/random` device may block indefinitely, causing\nprograms that rely on random numbers to slow down or even freeze. This is especially problematic for\ncryptographic protocols that require a continuous stream of random numbers, such as SSL/TLS and SSH.\n\nTo avoid this issue, some systems use a hardware random number generator (RNG) to generate high-quality\nentropy. A hardware RNG generates random numbers by measuring physical phenomena, such as thermal noise or\nradioactive decay. These sources of randomness are considered to be more reliable and unpredictable than\nsoftware-based sources.\n\nOne such hardware RNG is the Trusted Platform Module (TPM), which is a dedicated hardware chip that is used\nfor cryptographic operations and secure boot. The TPM contains a built-in hardware RNG that generates\nhigh-quality entropy, which can be used to seed the pool of entropy in the operating system.\n\nAlternatively, software-based solutions such as `Haveged` can be used to generate additional entropy by\nexploiting sources of randomness in the system, such as CPU utilization and network traffic. These solutions\ncan help to mitigate the risk of entropy depletion, but they may not be as reliable as hardware-based solutions.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ lowest_entropy ](https://github.com/netdata/netdata/blob/master/src/health/health.d/entropy.conf) | system.entropy | minimum number of bits of entropy available for the kernel\u2019s random number generator |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Entropy instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.entropy | entropy | entropy |\n\n",integration_type:"collector",id:"proc.plugin-/proc/sys/kernel/random/entropy_avail-Entropy",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/uptime",monitored_instance:{name:"System Uptime",link:"",categories:["data-collection.linux-systems.system-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["uptime"],most_popular:!1},overview:"# System Uptime\n\nPlugin: proc.plugin\nModule: /proc/uptime\n\n## Overview\n\nThe amount of time the system has been up (running).\n\nUptime is a critical aspect of overall system performance:\n\n- **Availability**: Uptime monitoring can show whether a server is consistently available or experiences frequent downtimes.\n- **Performance Monitoring**: While server uptime alone doesn't provide detailed performance data, analyzing the duration and frequency of downtimes can help identify patterns or trends.\n- **Proactive problem detection**: If server uptime monitoring reveals unexpected downtimes or a decreasing uptime trend, it can serve as an early warning sign of potential problems.\n- **Root cause analysis**: When investigating server downtime, the uptime metric alone may not provide enough information to pinpoint the exact cause.\n- **Load balancing**: Uptime data can indirectly indicate load balancing issues if certain servers have significantly lower uptimes than others.\n- **Optimize maintenance efforts**: Servers with consistently low uptimes or frequent downtimes may require more attention.\n- **Compliance requirements**: Server uptime data can be used to demonstrate compliance with regulatory requirements or SLAs that mandate a minimum level of server availability.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per System Uptime instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.uptime | uptime | seconds |\n\n",integration_type:"collector",id:"proc.plugin-/proc/uptime-System_Uptime",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/proc/vmstat",monitored_instance:{name:"Memory Statistics",link:"",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["swap","page faults","oom","numa"],most_popular:!1},overview:"# Memory Statistics\n\nPlugin: proc.plugin\nModule: /proc/vmstat\n\n## Overview\n\nLinux Virtual memory subsystem.\n\nInformation about memory management, indicating how effectively the kernel allocates and frees\nmemory resources in response to system demands.\n\nMonitors page faults, which occur when a process requests a portion of its memory that isn't\nimmediately available. Monitoring these events can help diagnose inefficiencies in memory management and\nprovide insights into application behavior.\n\nTracks swapping activity \u2014 a vital aspect of memory management where the kernel moves data from RAM to\nswap space, and vice versa, based on memory demand and usage. It also monitors the utilization of zswap,\na compressed cache for swap pages, and provides insights into its usage and performance implications.\n\nIn the context of virtualized environments, it tracks the ballooning mechanism which is used to balance\nmemory resources between host and guest systems.\n\nFor systems using NUMA architecture, it provides insights into the local and remote memory accesses, which\ncan impact the performance based on the memory access times.\n\nThe collector also watches for 'Out of Memory' kills, a drastic measure taken by the system when it runs out\nof memory resources.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 30min_ram_swapped_out ](https://github.com/netdata/netdata/blob/master/src/health/health.d/swap.conf) | mem.swapio | percentage of the system RAM swapped in the last 30 minutes |\n| [ oom_kill ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | mem.oom_kill | number of out of memory kills in the last 30 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Memory Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swapio | in, out | KiB/s |\n| system.pgpgio | in, out | KiB/s |\n| system.pgfaults | minor, major | faults/s |\n| mem.balloon | inflate, deflate, migrate | KiB/s |\n| mem.zswapio | in, out | KiB/s |\n| mem.ksm_cow | swapin, write | KiB/s |\n| mem.thp_faults | alloc, fallback, fallback_charge | events/s |\n| mem.thp_file | alloc, fallback, mapped, fallback_charge | events/s |\n| mem.thp_zero | alloc, failed | events/s |\n| mem.thp_collapse | alloc, failed | events/s |\n| mem.thp_split | split, failed, split_pmd, split_deferred | events/s |\n| mem.thp_swapout | swapout, fallback | events/s |\n| mem.thp_compact | success, fail, stall | events/s |\n| mem.oom_kill | kills | kills/s |\n| mem.numa | local, foreign, interleave, other, pte_updates, huge_pte_updates, hint_faults, hint_faults_local, pages_migrated | events/s |\n\n",integration_type:"collector",id:"proc.plugin-/proc/vmstat-Memory_Statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/block/zram",monitored_instance:{name:"ZRAM",link:"",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["zram"],most_popular:!1},overview:"# ZRAM\n\nPlugin: proc.plugin\nModule: /sys/block/zram\n\n## Overview\n\nzRAM, or compressed RAM, is a block device that uses a portion of your system's RAM as a block device.\nThe data written to this block device is compressed and stored in memory.\n\nThe collectors provides information about the operation and the effectiveness of zRAM on your system.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per zram device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.zram_usage | compressed, metadata | MiB |\n| mem.zram_savings | savings, original | MiB |\n| mem.zram_ratio | ratio | ratio |\n| mem.zram_efficiency | percent | percentage |\n\n",integration_type:"collector",id:"proc.plugin-/sys/block/zram-ZRAM",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/class/drm",monitored_instance:{name:"AMD GPU",link:"https://www.amd.com",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"amd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["amd","gpu","hardware"],most_popular:!1},overview:"# AMD GPU\n\nPlugin: proc.plugin\nModule: /sys/class/drm\n\n## Overview\n\nThis integration monitors AMD GPU metrics, such as utilization, clock frequency and memory usage.\n\nIt reads `/sys/class/drm` to collect metrics for every AMD GPU card instance it encounters.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per gpu\n\nThese metrics refer to the GPU.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| product_name | GPU product name (e.g. AMD RX 6600) |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| amdgpu.gpu_utilization | utilization | percentage |\n| amdgpu.gpu_mem_utilization | utilization | percentage |\n| amdgpu.gpu_clk_frequency | frequency | MHz |\n| amdgpu.gpu_mem_clk_frequency | frequency | MHz |\n| amdgpu.gpu_mem_vram_usage_perc | usage | percentage |\n| amdgpu.gpu_mem_vram_usage | free, used | bytes |\n| amdgpu.gpu_mem_vis_vram_usage_perc | usage | percentage |\n| amdgpu.gpu_mem_vis_vram_usage | free, used | bytes |\n| amdgpu.gpu_mem_gtt_usage_perc | usage | percentage |\n| amdgpu.gpu_mem_gtt_usage | free, used | bytes |\n\n",integration_type:"collector",id:"proc.plugin-/sys/class/drm-AMD_GPU",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/class/infiniband",monitored_instance:{name:"InfiniBand",link:"",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["infiniband","rdma"],most_popular:!1},overview:"# InfiniBand\n\nPlugin: proc.plugin\nModule: /sys/class/infiniband\n\n## Overview\n\nThis integration monitors InfiniBand network inteface statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per infiniband port\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ib.bytes | Received, Sent | kilobits/s |\n| ib.packets | Received, Sent, Mcast_rcvd, Mcast_sent, Ucast_rcvd, Ucast_sent | packets/s |\n| ib.errors | Pkts_malformated, Pkts_rcvd_discarded, Pkts_sent_discarded, Tick_Wait_to_send, Pkts_missed_resource, Buffer_overrun, Link_Downed, Link_recovered, Link_integrity_err, Link_minor_errors, Pkts_rcvd_with_EBP, Pkts_rcvd_discarded_by_switch, Pkts_sent_discarded_by_switch | errors/s |\n| ib.hwerrors | Duplicated_packets, Pkt_Seq_Num_gap, Ack_timer_expired, Drop_missing_buffer, Drop_out_of_sequence, NAK_sequence_rcvd, CQE_err_Req, CQE_err_Resp, CQE_Flushed_err_Req, CQE_Flushed_err_Resp, Remote_access_err_Req, Remote_access_err_Resp, Remote_invalid_req, Local_length_err_Resp, RNR_NAK_Packets, CNP_Pkts_ignored, RoCE_ICRC_Errors | errors/s |\n| ib.hwpackets | RoCEv2_Congestion_sent, RoCEv2_Congestion_rcvd, IB_Congestion_handled, ATOMIC_req_rcvd, Connection_req_rcvd, Read_req_rcvd, Write_req_rcvd, RoCE_retrans_adaptive, RoCE_retrans_timeout, RoCE_slow_restart, RoCE_slow_restart_congestion, RoCE_slow_restart_count | packets/s |\n\n",integration_type:"collector",id:"proc.plugin-/sys/class/infiniband-InfiniBand",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/class/power_supply",monitored_instance:{name:"Power Supply",link:"",categories:["data-collection.linux-systems.power-supply-metrics"],icon_filename:"powersupply.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["psu","power supply"],most_popular:!1},overview:"# Power Supply\n\nPlugin: proc.plugin\nModule: /sys/class/power_supply\n\n## Overview\n\nThis integration monitors Power supply metrics, such as battery status, AC power status and more.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ linux_power_supply_capacity ](https://github.com/netdata/netdata/blob/master/src/health/health.d/linux_power_supply.conf) | powersupply.capacity | percentage of remaining power supply capacity |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per power device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| powersupply.capacity | capacity | percentage |\n| powersupply.charge | empty_design, empty, now, full, full_design | Ah |\n| powersupply.energy | empty_design, empty, now, full, full_design | Wh |\n| powersupply.voltage | min_design, min, now, max, max_design | V |\n\n",integration_type:"collector",id:"proc.plugin-/sys/class/power_supply-Power_Supply",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/devices/system/edac/mc",monitored_instance:{name:"Memory modules (DIMMs)",link:"",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["edac","ecc","dimm","ram","hardware"],most_popular:!1},overview:"# Memory modules (DIMMs)\n\nPlugin: proc.plugin\nModule: /sys/devices/system/edac/mc\n\n## Overview\n\nThe Error Detection and Correction (EDAC) subsystem is detecting and reporting errors in the system's memory,\nprimarily ECC (Error-Correcting Code) memory errors.\n\nThe collector provides data for:\n\n- Per memory controller (MC): correctable and uncorrectable errors. These can be of 2 kinds:\n - errors related to a DIMM\n - errors that cannot be associated with a DIMM\n\n- Per memory DIMM: correctable and uncorrectable errors. There are 2 kinds:\n - memory controllers that can identify the physical DIMMS and report errors directly for them,\n - memory controllers that report errors for memory address ranges that can be linked to dimms.\n In this case the DIMMS reported may be more than the physical DIMMS installed.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ecc_memory_mc_noinfo_correctable ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memory.conf) | mem.edac_mc_errors | memory controller ${label:controller} ECC correctable errors (unknown DIMM slot) |\n| [ ecc_memory_mc_noinfo_uncorrectable ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memory.conf) | mem.edac_mc_errors | memory controller ${label:controller} ECC uncorrectable errors (unknown DIMM slot) |\n| [ ecc_memory_dimm_correctable ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memory.conf) | mem.edac_mc_dimm_errors | DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC correctable errors |\n| [ ecc_memory_dimm_uncorrectable ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memory.conf) | mem.edac_mc_dimm_errors | DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC uncorrectable errors |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per memory controller\n\nThese metrics refer to the memory controller.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| controller | [mcX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#mcx-directories) directory name of this memory controller. |\n| mc_name | Memory controller type. |\n| size_mb | The amount of memory in megabytes that this memory controller manages. |\n| max_location | Last available memory slot in this memory controller. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.edac_mc_errors | correctable, uncorrectable, correctable_noinfo, uncorrectable_noinfo | errors |\n\n### Per memory module\n\nThese metrics refer to the memory module (or rank, [depends on the memory controller](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#f5)).\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| controller | [mcX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#mcx-directories) directory name of this memory controller. |\n| dimm | [dimmX or rankX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#dimmx-or-rankx-directories) directory name of this memory module. |\n| dimm_dev_type | Type of DRAM device used in this memory module. For example, x1, x2, x4, x8. |\n| dimm_edac_mode | Used type of error detection and correction. For example, S4ECD4ED would mean a Chipkill with x4 DRAM. |\n| dimm_label | Label assigned to this memory module. |\n| dimm_location | Location of the memory module. |\n| dimm_mem_type | Type of the memory module. |\n| size | The amount of memory in megabytes that this memory module manages. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.edac_mc_errors | correctable, uncorrectable | errors |\n\n",integration_type:"collector",id:"proc.plugin-/sys/devices/system/edac/mc-Memory_modules_(DIMMs)",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/devices/system/node",monitored_instance:{name:"Non-Uniform Memory Access",link:"",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["numa"],most_popular:!1},overview:"# Non-Uniform Memory Access\n\nPlugin: proc.plugin\nModule: /sys/devices/system/node\n\n## Overview\n\nInformation about NUMA (Non-Uniform Memory Access) nodes on the system.\n\nNUMA is a method of configuring a cluster of microprocessor in a multiprocessing system so that they can\nshare memory locally, improving performance and the ability of the system to be expanded. NUMA is used in a\nsymmetric multiprocessing (SMP) system.\n\nIn a NUMA system, processors, memory, and I/O devices are grouped together into cells, also known as nodes.\nEach node has its own memory and set of I/O devices, and one or more processors. While a processor can access\nmemory in any of the nodes, it does so faster when accessing memory within its own node.\n\nThe collector provides statistics on memory allocations for processes running on the NUMA nodes, revealing the\nefficiency of memory allocations in multi-node systems.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per numa node\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| numa_node | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.numa_nodes | hit, miss, local, foreign, interleave, other | events/s |\n\n",integration_type:"collector",id:"proc.plugin-/sys/devices/system/node-Non-Uniform_Memory_Access",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/fs/btrfs",monitored_instance:{name:"BTRFS",link:"",categories:["data-collection.linux-systems.filesystem-metrics.btrfs"],icon_filename:"filesystem.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["btrfs","filesystem"],most_popular:!1},overview:"# BTRFS\n\nPlugin: proc.plugin\nModule: /sys/fs/btrfs\n\n## Overview\n\nThis integration provides usage and error statistics from the BTRFS filesystem.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ btrfs_allocated ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.disk | percentage of allocated BTRFS physical disk space |\n| [ btrfs_data ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.data | utilization of BTRFS data space |\n| [ btrfs_metadata ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.metadata | utilization of BTRFS metadata space |\n| [ btrfs_system ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.system | utilization of BTRFS system space |\n| [ btrfs_device_read_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS read errors |\n| [ btrfs_device_write_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS write errors |\n| [ btrfs_device_flush_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS flush errors |\n| [ btrfs_device_corruption_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS corruption errors |\n| [ btrfs_device_generation_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS generation errors |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per btrfs filesystem\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| filesystem_uuid | TBD |\n| filesystem_label | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| btrfs.disk | unallocated, data_free, data_used, meta_free, meta_used, sys_free, sys_used | MiB |\n| btrfs.data | free, used | MiB |\n| btrfs.metadata | free, used, reserved | MiB |\n| btrfs.system | free, used | MiB |\n| btrfs.commits | commits | commits |\n| btrfs.commits_perc_time | commits | percentage |\n| btrfs.commit_timings | last, max | ms |\n\n### Per btrfs device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device_id | TBD |\n| filesystem_uuid | TBD |\n| filesystem_label | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| btrfs.device_errors | write_errs, read_errs, flush_errs, corruption_errs, generation_errs | errors |\n\n",integration_type:"collector",id:"proc.plugin-/sys/fs/btrfs-BTRFS",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"/sys/kernel/mm/ksm",monitored_instance:{name:"Kernel Same-Page Merging",link:"",categories:["data-collection.linux-systems.memory-metrics"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ksm","samepage","merging"],most_popular:!1},overview:"# Kernel Same-Page Merging\n\nPlugin: proc.plugin\nModule: /sys/kernel/mm/ksm\n\n## Overview\n\nKernel Samepage Merging (KSM) is a memory-saving feature in Linux that enables the kernel to examine the\nmemory of different processes and identify identical pages. It then merges these identical pages into a\nsingle page that the processes share. This is particularly useful for virtualization, where multiple virtual\nmachines might be running the same operating system or applications and have many identical pages.\n\nThe collector provides information about the operation and effectiveness of KSM on your system.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Kernel Same-Page Merging instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.ksm | shared, unshared, sharing, volatile | MiB |\n| mem.ksm_savings | savings, offered | MiB |\n| mem.ksm_ratios | savings | percentage |\n\n",integration_type:"collector",id:"proc.plugin-/sys/kernel/mm/ksm-Kernel_Same-Page_Merging",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"proc.plugin",module_name:"ipc",monitored_instance:{name:"Inter Process Communication",link:"",categories:["data-collection.linux-systems.ipc-metrics"],icon_filename:"network-wired.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ipc","semaphores","shared memory"],most_popular:!1},overview:"# Inter Process Communication\n\nPlugin: proc.plugin\nModule: ipc\n\n## Overview\n\nIPC stands for Inter-Process Communication. It is a mechanism which allows processes to communicate with each\nother and synchronize their actions.\n\nThis collector exposes information about:\n\n- Message Queues: This allows messages to be exchanged between processes. It's a more flexible method that\n allows messages to be placed onto a queue and read at a later time.\n\n- Shared Memory: This method allows for the fastest form of IPC because processes can exchange data by\n reading/writing into shared memory segments.\n\n- Semaphores: They are used to synchronize the operations performed by independent processes. So, if multiple\n processes are trying to access a single shared resource, semaphores can ensure that only one process\n accesses the resource at a given time.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ semaphores_used ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ipc.conf) | system.ipc_semaphores | IPC semaphore utilization |\n| [ semaphore_arrays_used ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ipc.conf) | system.ipc_semaphore_arrays | IPC semaphore arrays utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Inter Process Communication instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_semaphores | semaphores | semaphores |\n| system.ipc_semaphore_arrays | arrays | arrays |\n| system.message_queue_message | a dimension per queue | messages |\n| system.message_queue_bytes | a dimension per queue | bytes |\n| system.shared_memory_segments | segments | segments |\n| system.shared_memory_bytes | bytes | bytes |\n\n",integration_type:"collector",id:"proc.plugin-ipc-Inter_Process_Communication",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/proc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"adaptec_raid",monitored_instance:{name:"AdaptecRAID",link:"https://www.microchip.com/en-us/products/storage",categories:["data-collection.storage-mount-points-and-filesystems"],icon_filename:"adaptec.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["storage","raid-controller","manage-disks"],most_popular:!1},overview:"# AdaptecRAID\n\nPlugin: python.d.plugin\nModule: adaptec_raid\n\n## Overview\n\nThis collector monitors Adaptec RAID hardware storage controller metrics about both physical and logical drives.\n\n\nIt uses the arcconf command line utility (from adaptec) to monitor your raid controller.\n\nExecuted commands:\n - `sudo -n arcconf GETCONFIG 1 LD`\n - `sudo -n arcconf GETCONFIG 1 PD`\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThe module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password.\n\n### Default Behavior\n\n#### Auto-Detection\n\nAfter all the permissions are satisfied, netdata should be to execute commands via the arcconf command line utility\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Grant permissions for netdata, to run arcconf as sudoer\n\nThe module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password.\n\nAdd to your /etc/sudoers file:\nwhich arcconf shows the full path to the binary.\n\n```bash\nnetdata ALL=(root) NOPASSWD: /path/to/arcconf\n```\n\n\n#### Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)\n\nThe default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo.\n\nAs root user, do the following:\n\n```bash\nmkdir /etc/systemd/system/netdata.service.d\necho -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\nsystemctl daemon-reload\nsystemctl restart netdata.service\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/adaptec_raid.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/adaptec_raid.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration per job\n\n```yaml\njob_name:\n name: my_job_name \n update_every: 1 # the JOB's data collection frequency\n priority: 60000 # the JOB's order on the dashboard\n penalty: yes # the JOB's penalty\n autodetection_retry: 0 # the JOB's re-check interval in seconds\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `adaptec_raid` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin adaptec_raid debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ adaptec_raid_ld_status ](https://github.com/netdata/netdata/blob/master/src/health/health.d/adaptec_raid.conf) | adaptec_raid.ld_status | logical device status is failed or degraded |\n| [ adaptec_raid_pd_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/adaptec_raid.conf) | adaptec_raid.pd_state | physical device state is not online |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per AdaptecRAID instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adaptec_raid.ld_status | a dimension per logical device | bool |\n| adaptec_raid.pd_state | a dimension per physical device | bool |\n| adaptec_raid.smart_warnings | a dimension per physical device | count |\n| adaptec_raid.temperature | a dimension per physical device | celsius |\n\n",integration_type:"collector",id:"python.d.plugin-adaptec_raid-AdaptecRAID",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/adaptec_raid/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"alarms",monitored_instance:{name:"Netdata Agent alarms",link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/alarms/README.md",categories:["data-collection.other"],icon_filename:""},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["alarms","netdata"],most_popular:!1},overview:"# Netdata Agent alarms\n\nPlugin: python.d.plugin\nModule: alarms\n\n## Overview\n\nThis collector creates an 'Alarms' menu with one line plot of `alarms.status`.\n\n\nAlarm status is read from the Netdata agent rest api [`/api/v1/alarms?all`](https://learn.netdata.cloud/api#/alerts/alerts1).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt discovers instances of Netdata running on localhost, and gathers metrics from `http://127.0.0.1:19999/api/v1/alarms?all`. `CLEAR` status is mapped to `0`, `WARNING` to `1` and `CRITICAL` to `2`. Also, by default all alarms produced will be monitored.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/alarms.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/alarms.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| url | Netdata agent alarms endpoint to collect from. Can be local or remote so long as reachable by agent. | http://127.0.0.1:19999/api/v1/alarms?all | yes |\n| status_map | Mapping of alarm status to integer number that will be the metric value collected. | {"CLEAR": 0, "WARNING": 1, "CRITICAL": 2} | yes |\n| collect_alarm_values | set to true to include a chart with calculated alarm values over time. | no | yes |\n| alarm_status_chart_type | define the type of chart for plotting status over time e.g. \'line\' or \'stacked\'. | line | yes |\n| alarm_contains_words | A "," separated list of words you want to filter alarm names for. For example \'cpu,load\' would filter for only alarms with "cpu" or "load" in alarm name. Default includes all. | | yes |\n| alarm_excludes_words | A "," separated list of words you want to exclude based on alarm name. For example \'cpu,load\' would exclude all alarms with "cpu" or "load" in alarm name. Default excludes None. | | yes |\n| update_every | Sets the default data collection frequency. | 10 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n url: \'http://127.0.0.1:19999/api/v1/alarms?all\'\n\n```\n##### Advanced\n\nAn advanced example configuration with multiple jobs collecting different subsets of alarms for plotting on different charts.\n"ML" job will collect status and values for all alarms with "ml_" in the name. Default job will collect status for all other alarms.\n\n\n{% details summary="Config" %}\n```yaml\nML:\n update_every: 5\n url: \'http://127.0.0.1:19999/api/v1/alarms?all\'\n status_map:\n CLEAR: 0\n WARNING: 1\n CRITICAL: 2\n collect_alarm_values: true\n alarm_status_chart_type: \'stacked\'\n alarm_contains_words: \'ml_\'\n\nDefault:\n update_every: 5\n url: \'http://127.0.0.1:19999/api/v1/alarms?all\'\n status_map:\n CLEAR: 0\n WARNING: 1\n CRITICAL: 2\n collect_alarm_values: false\n alarm_status_chart_type: \'stacked\'\n alarm_excludes_words: \'ml_\'\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `alarms` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin alarms debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Netdata Agent alarms instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| alarms.status | a dimension per alarm representing the latest status of the alarm. | status |\n| alarms.values | a dimension per alarm representing the latest collected value of the alarm. | value |\n\n",integration_type:"collector",id:"python.d.plugin-alarms-Netdata_Agent_alarms",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/alarms/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"am2320",monitored_instance:{name:"AM2320",link:"https://learn.adafruit.com/adafruit-am2320-temperature-humidity-i2c-sensor/overview",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["temperature","am2320","sensor","humidity"],most_popular:!1},overview:"# AM2320\n\nPlugin: python.d.plugin\nModule: am2320\n\n## Overview\n\nThis collector monitors AM2320 sensor metrics about temperature and humidity.\n\nIt retrieves temperature and humidity values by contacting an AM2320 sensor over i2c.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming prerequisites are met, the collector will try to connect to the sensor via i2c\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Sensor connection to a Raspberry Pi\n\nConnect the am2320 to the Raspberry Pi I2C pins\n\nRaspberry Pi 3B/4 Pins:\n\n- Board 3.3V (pin 1) to sensor VIN (pin 1)\n- Board SDA (pin 3) to sensor SDA (pin 2)\n- Board GND (pin 6) to sensor GND (pin 3)\n- Board SCL (pin 5) to sensor SCL (pin 4)\n\nYou may also need to add two I2C pullup resistors if your board does not already have them. The Raspberry Pi does have internal pullup resistors but it doesn't hurt to add them anyway. You can use 2.2K - 10K but we will just use 10K. The resistors go from VDD to SCL and SDA each.\n\n\n#### Software requirements\n\nInstall the Adafruit Circuit Python AM2320 library:\n\n`sudo pip3 install adafruit-circuitpython-am2320`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/am2320.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/am2320.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Local sensor\n\nA basic JOB configuration\n\n```yaml\nlocal_sensor:\n name: 'Local AM2320'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `am2320` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin am2320 debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per AM2320 instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| am2320.temperature | temperature | celsius |\n| am2320.humidity | humidity | percentage |\n\n",integration_type:"collector",id:"python.d.plugin-am2320-AM2320",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/am2320/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"beanstalk",monitored_instance:{name:"Beanstalk",link:"https://beanstalkd.github.io/",categories:["data-collection.message-brokers"],icon_filename:"beanstalk.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["beanstalk","beanstalkd","message"],most_popular:!1},overview:"# Beanstalk\n\nPlugin: python.d.plugin\nModule: beanstalk\n\n## Overview\n\nMonitor Beanstalk metrics to enhance job queueing and processing efficiency. Track job rates, processing times, and queue lengths for better task management.\n\nThe collector uses the `beanstalkc` python module to connect to a `beanstalkd` service and gather metrics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, module will attempt to connect to beanstalkd on 127.0.0.1:11300 address.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### beanstalkc python module\n\nThe collector requires the `beanstalkc` python module to be installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/beanstalk.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/beanstalk.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| host | IP or URL to a beanstalk service. | 127.0.0.1 | no |\n| port | Port to the IP or URL to a beanstalk service. | 11300 | no |\n\n{% /details %}\n#### Examples\n\n##### Remote beanstalk server\n\nA basic remote beanstalk server\n\n```yaml\nremote:\n name: 'beanstalk'\n host: '1.2.3.4'\n port: 11300\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local_beanstalk'\n host: '127.0.0.1'\n port: 11300\n\nremote_job:\n name: 'remote_beanstalk'\n host: '192.0.2.1'\n port: 113000\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `beanstalk` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin beanstalk debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ beanstalk_server_buried_jobs ](https://github.com/netdata/netdata/blob/master/src/health/health.d/beanstalkd.conf) | beanstalk.current_jobs | number of buried jobs across all tubes. You need to manually kick them so they can be processed. Presence of buried jobs in a tube does not affect new jobs. |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Beanstalk instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| beanstalk.cpu_usage | user, system | cpu time |\n| beanstalk.jobs_rate | total, timeouts | jobs/s |\n| beanstalk.connections_rate | connections | connections/s |\n| beanstalk.commands_rate | put, peek, peek-ready, peek-delayed, peek-buried, reserve, use, watch, ignore, delete, bury, kick, stats, stats-job, stats-tube, list-tubes, list-tube-used, list-tubes-watched, pause-tube | commands/s |\n| beanstalk.connections_rate | tubes | tubes |\n| beanstalk.current_jobs | urgent, ready, reserved, delayed, buried | jobs |\n| beanstalk.current_connections | written, producers, workers, waiting | connections |\n| beanstalk.binlog | written, migrated | records/s |\n| beanstalk.uptime | uptime | seconds |\n\n### Per tube\n\nMetrics related to Beanstalk tubes. Each tube produces its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| beanstalk.jobs_rate | jobs | jobs/s |\n| beanstalk.jobs | urgent, ready, reserved, delayed, buried | jobs |\n| beanstalk.connections | using, waiting, watching | connections |\n| beanstalk.commands | deletes, pauses | commands/s |\n| beanstalk.pause | since, left | seconds |\n\n",integration_type:"collector",id:"python.d.plugin-beanstalk-Beanstalk",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/beanstalk/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"bind_rndc",monitored_instance:{name:"ISC Bind (RNDC)",link:"https://www.isc.org/bind/",categories:["data-collection.dns-and-dhcp-servers"],icon_filename:"isc.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["dns","bind","server"],most_popular:!1},overview:"# ISC Bind (RNDC)\n\nPlugin: python.d.plugin\nModule: bind_rndc\n\n## Overview\n\nMonitor ISCBind (RNDC) performance for optimal DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery.\n\nThis collector uses the `rndc` tool to dump (named.stats) statistics then read them to gather Bind Name Server summary performance metrics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, the collector will attempt to read named.stats file at `/var/log/bind/named.stats`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Minimum bind version and permissions\n\nVersion of bind must be >=9.6 and the Netdata user must have permissions to run `rndc stats`\n\n#### Setup log rotate for bind stats\n\nBIND appends logs at EVERY RUN. It is NOT RECOMMENDED to set `update_every` below 30 sec.\nIt is STRONGLY RECOMMENDED to create a `bind-rndc.conf` file for logrotate.\n\nTo set up BIND to dump stats do the following:\n\n1. Add to 'named.conf.options' options {}:\n`statistics-file \"/var/log/bind/named.stats\";`\n\n2. Create bind/ directory in /var/log:\n`cd /var/log/ && mkdir bind`\n\n3. Change owner of directory to 'bind' user:\n`chown bind bind/`\n\n4. RELOAD (NOT restart) BIND:\n`systemctl reload bind9.service`\n\n5. Run as a root 'rndc stats' to dump (BIND will create named.stats in new directory)\n\nTo allow Netdata to run 'rndc stats' change '/etc/bind/rndc.key' group to netdata:\n`chown :netdata rndc.key`\n\nLast, BUT NOT least, is to create bind-rndc.conf in logrotate.d/:\n```\n/var/log/bind/named.stats {\n\n daily\n rotate 4\n compress\n delaycompress\n create 0644 bind bind\n missingok\n postrotate\n rndc reload > /dev/null\n endscript\n}\n```\nTo test your logrotate conf file run as root:\n`logrotate /etc/logrotate.d/bind-rndc -d (debug dry-run mode)`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/bind_rndc.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/bind_rndc.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| named_stats_path | Path to the named stats, after being dumped by `nrdc` | /var/log/bind/named.stats | no |\n\n{% /details %}\n#### Examples\n\n##### Local bind stats\n\nDefine a local path to bind stats file\n\n```yaml\nlocal:\n named_stats_path: '/var/log/bind/named.stats'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `bind_rndc` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin bind_rndc debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ bind_rndc_stats_file_size ](https://github.com/netdata/netdata/blob/master/src/health/health.d/bind_rndc.conf) | bind_rndc.stats_size | BIND statistics-file size |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ISC Bind (RNDC) instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| bind_rndc.name_server_statistics | requests, rejected_queries, success, failure, responses, duplicate, recursion, nxrrset, nxdomain, non_auth_answer, auth_answer, dropped_queries | stats |\n| bind_rndc.incoming_queries | a dimension per incoming query type | queries |\n| bind_rndc.outgoing_queries | a dimension per outgoing query type | queries |\n| bind_rndc.stats_size | stats_size | MiB |\n\n",integration_type:"collector",id:"python.d.plugin-bind_rndc-ISC_Bind_(RNDC)",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/bind_rndc/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"boinc",monitored_instance:{name:"BOINC",link:"https://boinc.berkeley.edu/",categories:["data-collection.distributed-computing-systems"],icon_filename:"bolt.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["boinc","distributed"],most_popular:!1},overview:"# BOINC\n\nPlugin: python.d.plugin\nModule: boinc\n\n## Overview\n\nThis collector monitors task counts for the Berkeley Open Infrastructure Networking Computing (BOINC) distributed computing client.\n\nIt uses the same RPC interface that the BOINC monitoring GUI does.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, the module will try to auto-detect the password to the RPC interface by looking in `/var/lib/boinc` for this file (this is the location most Linux distributions use for a system-wide BOINC installation), so things may just work without needing configuration for a local system.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Boinc RPC interface\n\nBOINC requires use of a password to access it's RPC interface. You can find this password in the `gui_rpc_auth.cfg` file in your BOINC directory.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/boinc.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/boinc.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| hostname | Define a hostname where boinc is running. | localhost | no |\n| port | The port of boinc RPC interface. | | no |\n| password | Provide a password to connect to a boinc RPC interface. | | no |\n\n{% /details %}\n#### Examples\n\n##### Configuration of a remote boinc instance\n\nA basic JOB configuration for a remote boinc instance\n\n```yaml\nremote:\n hostname: '1.2.3.4'\n port: 1234\n password: 'some-password'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 1234\n password: 'some-password'\n\nremote_job:\n name: 'remote'\n host: '192.0.2.1'\n port: 1234\n password: some-other-password\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `boinc` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin boinc debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ boinc_total_tasks ](https://github.com/netdata/netdata/blob/master/src/health/health.d/boinc.conf) | boinc.tasks | average number of total tasks over the last 10 minutes |\n| [ boinc_active_tasks ](https://github.com/netdata/netdata/blob/master/src/health/health.d/boinc.conf) | boinc.tasks | average number of active tasks over the last 10 minutes |\n| [ boinc_compute_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/boinc.conf) | boinc.states | average number of compute errors over the last 10 minutes |\n| [ boinc_upload_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/boinc.conf) | boinc.states | average number of failed uploads over the last 10 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per BOINC instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| boinc.tasks | Total, Active | tasks |\n| boinc.states | New, Downloading, Ready to Run, Compute Errors, Uploading, Uploaded, Aborted, Failed Uploads | tasks |\n| boinc.sched | Uninitialized, Preempted, Scheduled | tasks |\n| boinc.process | Uninitialized, Executing, Suspended, Aborted, Quit, Copy Pending | tasks |\n\n",integration_type:"collector",id:"python.d.plugin-boinc-BOINC",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/boinc/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"ceph",monitored_instance:{name:"Ceph",link:"https://ceph.io/",categories:["data-collection.storage-mount-points-and-filesystems"],icon_filename:"ceph.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["ceph","storage"],most_popular:!1},overview:"# Ceph\n\nPlugin: python.d.plugin\nModule: ceph\n\n## Overview\n\nThis collector monitors Ceph metrics about Cluster statistics, OSD usage, latency and Pool statistics.\n\nUses the `rados` python module to connect to a Ceph cluster.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### `rados` python module\n\nMake sure the `rados` python module is installed\n\n#### Granting read permissions to ceph group from keyring file\n\nExecute: `chmod 640 /etc/ceph/ceph.client.admin.keyring`\n\n#### Create a specific rados_id\n\nYou can optionally create a rados_id to use instead of admin\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/ceph.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/ceph.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| config_file | Ceph config file | | yes |\n| keyring_file | Ceph keyring file. netdata user must be added into ceph group and keyring file must be read group permission. | | yes |\n| rados_id | A rados user id to use for connecting to the Ceph cluster. | admin | no |\n\n{% /details %}\n#### Examples\n\n##### Basic local Ceph cluster\n\nA basic configuration to connect to a local Ceph cluster.\n\n```yaml\nlocal:\n config_file: '/etc/ceph/ceph.conf'\n keyring_file: '/etc/ceph/ceph.client.admin.keyring'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ceph` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin ceph debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ceph_cluster_space_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ceph.conf) | ceph.general_usage | cluster disk space utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Ceph instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ceph.general_usage | avail, used | KiB |\n| ceph.general_objects | cluster | objects |\n| ceph.general_bytes | read, write | KiB/s |\n| ceph.general_operations | read, write | operations |\n| ceph.general_latency | apply, commit | milliseconds |\n| ceph.pool_usage | a dimension per Ceph Pool | KiB |\n| ceph.pool_objects | a dimension per Ceph Pool | objects |\n| ceph.pool_read_bytes | a dimension per Ceph Pool | KiB/s |\n| ceph.pool_write_bytes | a dimension per Ceph Pool | KiB/s |\n| ceph.pool_read_operations | a dimension per Ceph Pool | operations |\n| ceph.pool_write_operations | a dimension per Ceph Pool | operations |\n| ceph.osd_usage | a dimension per Ceph OSD | KiB |\n| ceph.osd_size | a dimension per Ceph OSD | KiB |\n| ceph.apply_latency | a dimension per Ceph OSD | milliseconds |\n| ceph.commit_latency | a dimension per Ceph OSD | milliseconds |\n\n",integration_type:"collector",id:"python.d.plugin-ceph-Ceph",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/ceph/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"changefinder",monitored_instance:{name:"python.d changefinder",link:"",categories:["data-collection.other"],icon_filename:""},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["change detection","anomaly detection","machine learning","ml"],most_popular:!1},overview:"# python.d changefinder\n\nPlugin: python.d.plugin\nModule: changefinder\n\n## Overview\n\nThis collector uses the Python [changefinder](https://github.com/shunsukeaihara/changefinder) library to\nperform [online](https://en.wikipedia.org/wiki/Online_machine_learning) [changepoint detection](https://en.wikipedia.org/wiki/Change_detection)\non your Netdata charts and/or dimensions.\n\n\nInstead of this collector just _collecting_ data, it also does some computation on the data it collects to return a changepoint score for each chart or dimension you configure it to work on. This is an [online](https://en.wikipedia.org/wiki/Online_machine_learning) machine learning algorithm so there is no batch step to train the model, instead it evolves over time as more data arrives. That makes this particular algorithm quite cheap to compute at each step of data collection (see the notes section below for more details) and it should scale fairly well to work on lots of charts or hosts (if running on a parent node for example).\n### Notes - It may take an hour or two (depending on your choice of `n_score_samples`) for the collector to 'settle' into it's\n typical behaviour in terms of the trained models and scores you will see in the normal running of your node. Mainly\n this is because it can take a while to build up a proper distribution of previous scores in over to convert the raw\n score returned by the ChangeFinder algorithm into a percentile based on the most recent `n_score_samples` that have\n already been produced. So when you first turn the collector on, it will have a lot of flags in the beginning and then\n should 'settle down' once it has built up enough history. This is a typical characteristic of online machine learning\n approaches which need some initial window of time before they can be useful.\n- As this collector does most of the work in Python itself, you may want to try it out first on a test or development\n system to get a sense of its performance characteristics on a node similar to where you would like to use it.\n- On a development n1-standard-2 (2 vCPUs, 7.5 GB memory) vm running Ubuntu 18.04 LTS and not doing any work some of the\n typical performance characteristics we saw from running this collector (with defaults) were:\n - A runtime (`netdata.runtime_changefinder`) of ~30ms.\n - Typically ~1% additional cpu usage.\n - About ~85mb of ram (`apps.mem`) being continually used by the `python.d.plugin` under default configuration.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default this collector will work over all `system.*` charts.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Python Requirements\n\nThis collector will only work with Python 3 and requires the packages below be installed.\n\n```bash\n# become netdata user\nsudo su -s /bin/bash netdata\n# install required packages for the netdata user\npip3 install --user numpy==1.19.5 changefinder==0.03 scipy==1.5.4\n```\n\n**Note**: if you need to tell Netdata to use Python 3 then you can pass the below command in the python plugin section\nof your `netdata.conf` file.\n\n```yaml\n[ plugin:python.d ]\n # update every = 1\n command options = -ppython3\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/changefinder.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/changefinder.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| charts_regex | what charts to pull data for - A regex like `system\\..*/` or `system\\..*/apps.cpu/apps.mem` etc. | system\\..* | yes |\n| charts_to_exclude | charts to exclude, useful if you would like to exclude some specific charts. note: should be a ',' separated string like 'chart.name,chart.name'. | | no |\n| mode | get ChangeFinder scores 'per_dim' or 'per_chart'. | per_chart | yes |\n| cf_r | default parameters that can be passed to the changefinder library. | 0.5 | no |\n| cf_order | default parameters that can be passed to the changefinder library. | 1 | no |\n| cf_smooth | default parameters that can be passed to the changefinder library. | 15 | no |\n| cf_threshold | the percentile above which scores will be flagged. | 99 | no |\n| n_score_samples | the number of recent scores to use when calculating the percentile of the changefinder score. | 14400 | no |\n| show_scores | set to true if you also want to chart the percentile scores in addition to the flags. (mainly useful for debugging or if you want to dive deeper on how the scores are evolving over time) | no | no |\n\n{% /details %}\n#### Examples\n\n##### Default\n\nDefault configuration.\n\n```yaml\nlocal:\n name: 'local'\n host: '127.0.0.1:19999'\n charts_regex: 'system\\..*'\n charts_to_exclude: ''\n mode: 'per_chart'\n cf_r: 0.5\n cf_order: 1\n cf_smooth: 15\n cf_threshold: 99\n n_score_samples: 14400\n show_scores: false\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `changefinder` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin changefinder debug trace\n ```\n\n### Debug Mode\n\n\n\n### Log Messages\n\n\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per python.d changefinder instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| changefinder.scores | a dimension per chart | score |\n| changefinder.flags | a dimension per chart | flag |\n\n",integration_type:"collector",id:"python.d.plugin-changefinder-python.d_changefinder",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/changefinder/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"dovecot",monitored_instance:{name:"Dovecot",link:"https://www.dovecot.org/",categories:["data-collection.mail-servers"],icon_filename:"dovecot.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["dovecot","imap","mail"],most_popular:!1},overview:"# Dovecot\n\nPlugin: python.d.plugin\nModule: dovecot\n\n## Overview\n\nThis collector monitors Dovecot metrics about sessions, logins, commands, page faults and more.\n\nIt uses the dovecot socket and executes the `EXPORT global` command to get the statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, the collector will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Dovecot configuration\n\nThe Dovecot UNIX socket should have R/W permissions for user netdata, or Dovecot should be configured with a TCP/IP socket.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/dovecot.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/dovecot.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| socket | Use this socket to communicate with Devcot | /var/run/dovecot/stats | no |\n| host | Instead of using a socket, you can point the collector to an ip for devcot statistics. | | no |\n| port | Used in combination with host, configures the port devcot listens to. | | no |\n\n{% /details %}\n#### Examples\n\n##### Local TCP\n\nA basic TCP configuration.\n\n{% details summary=\"Config\" %}\n```yaml\nlocaltcpip:\n name: 'local'\n host: '127.0.0.1'\n port: 24242\n\n```\n{% /details %}\n##### Local socket\n\nA basic local socket configuration\n\n{% details summary=\"Config\" %}\n```yaml\nlocalsocket:\n name: 'local'\n socket: '/var/run/dovecot/stats'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dovecot` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin dovecot debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dovecot instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dovecot.sessions | active sessions | number |\n| dovecot.logins | logins | number |\n| dovecot.commands | commands | commands |\n| dovecot.faults | minor, major | faults |\n| dovecot.context_switches | voluntary, involuntary | switches |\n| dovecot.io | read, write | KiB/s |\n| dovecot.net | read, write | kilobits/s |\n| dovecot.syscalls | read, write | syscalls/s |\n| dovecot.lookup | path, attr | number/s |\n| dovecot.cache | hits | hits/s |\n| dovecot.auth | ok, failed | attempts |\n| dovecot.auth_cache | hit, miss | number |\n\n",integration_type:"collector",id:"python.d.plugin-dovecot-Dovecot",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/dovecot/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"example",monitored_instance:{name:"Example collector",link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/example/README.md",categories:["data-collection.other"],icon_filename:""},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["example","netdata","python"],most_popular:!1},overview:"# Example collector\n\nPlugin: python.d.plugin\nModule: example\n\n## Overview\n\nExample collector that generates some random numbers as metrics.\n\nIf you want to write your own collector, read our [writing a new Python module](https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/README.md#how-to-write-a-new-module) tutorial.\n\n\nThe `get_data()` function uses `random.randint()` to generate a random number which will be collected as a metric.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/example.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/example.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| num_lines | The number of lines to create. | 4 | no |\n| lower | The lower bound of numbers to randomly sample from. | 0 | no |\n| upper | The upper bound of numbers to randomly sample from. | 100 | no |\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nfour_lines:\n name: "Four Lines"\n update_every: 1\n priority: 60000\n penalty: yes\n autodetection_retry: 0\n num_lines: 4\n lower: 0\n upper: 100\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `example` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin example debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Example collector instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| example.random | random | number |\n\n",integration_type:"collector",id:"python.d.plugin-example-Example_collector",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/example/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"exim",monitored_instance:{name:"Exim",link:"https://www.exim.org/",categories:["data-collection.mail-servers"],icon_filename:"exim.jpg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["exim","mail","server"],most_popular:!1},overview:"# Exim\n\nPlugin: python.d.plugin\nModule: exim\n\n## Overview\n\nThis collector monitors Exim mail queue.\n\nIt uses the `exim` command line binary to get the statistics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming setup prerequisites are met, the collector will try to gather statistics using the method described above, even without any configuration.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Exim configuration - local installation\n\nThe module uses the `exim` binary, which can only be executed as root by default. We need to allow other users to `exim` binary. We solve that adding `queue_list_requires_admin` statement in exim configuration and set to `false`, because it is `true` by default. On many Linux distributions, the default location of `exim` configuration is in `/etc/exim.conf`.\n\n1. Edit the `exim` configuration with your preferred editor and add:\n`queue_list_requires_admin = false`\n2. Restart `exim` and Netdata\n\n\n#### Exim configuration - WHM (CPanel) server\n\nOn a WHM server, you can reconfigure `exim` over the WHM interface with the following steps.\n\n1. Login to WHM\n2. Navigate to Service Configuration --\x3e Exim Configuration Manager --\x3e tab Advanced Editor\n3. Scroll down to the button **Add additional configuration setting** and click on it.\n4. In the new dropdown which will appear above we need to find and choose:\n`queue_list_requires_admin` and set to `false`\n5. Scroll to the end and click the **Save** button.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/exim.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/exim.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| command | Path and command to the `exim` binary | exim -bpc | no |\n\n{% /details %}\n#### Examples\n\n##### Local exim install\n\nA basic local exim install\n\n```yaml\nlocal:\n command: 'exim -bpc'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `exim` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin exim debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Exim instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exim.qemails | emails | emails |\n\n",integration_type:"collector",id:"python.d.plugin-exim-Exim",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/exim/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"fail2ban",monitored_instance:{name:"Fail2ban",link:"https://www.fail2ban.org/",categories:["data-collection.authentication-and-authorization"],icon_filename:"fail2ban.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["fail2ban","security","authentication","authorization"],most_popular:!1},overview:"# Fail2ban\n\nPlugin: python.d.plugin\nModule: fail2ban\n\n## Overview\n\nMonitor Fail2ban performance for prime intrusion prevention operations. Monitor ban counts, jail statuses, and failed login attempts to ensure robust network security.\n\n\nIt collects metrics through reading the default log and configuration files of fail2ban.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe `fail2ban.log` file must be readable by the user `netdata`.\n - change the file ownership and access permissions.\n - update `/etc/logrotate.d/fail2ban`` to persist the changes after rotating the log file.\n\nTo change the file ownership and access permissions, execute the following:\n\n```shell\nsudo chown root:netdata /var/log/fail2ban.log\nsudo chmod 640 /var/log/fail2ban.log\n```\n\nTo persist the changes after rotating the log file, add `create 640 root netdata` to the `/etc/logrotate.d/fail2ban`:\n\n```shell\n/var/log/fail2ban.log {\n\n weekly\n rotate 4\n compress\n\n delaycompress\n missingok\n postrotate\n fail2ban-client flushlogs 1>/dev/null\n endscript\n\n # If fail2ban runs as non-root it still needs to have write access\n # to logfiles.\n # create 640 fail2ban adm\n create 640 root netdata\n}\n```\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default the collector will attempt to read log file at /var/log/fail2ban.log and conf file at /etc/fail2ban/jail.local.\nIf conf file is not found default jail is ssh.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/fail2ban.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/fail2ban.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| log_path | path to fail2ban.log. | /var/log/fail2ban.log | no |\n| conf_path | path to jail.local/jail.conf. | /etc/fail2ban/jail.local | no |\n| conf_dir | path to jail.d/. | /etc/fail2ban/jail.d/ | no |\n| exclude | jails you want to exclude from autodetection. | | no |\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nlocal:\n log_path: '/var/log/fail2ban.log'\n conf_path: '/etc/fail2ban/jail.local'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `fail2ban` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin fail2ban debug trace\n ```\n\n### Debug Mode\n\n\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Fail2ban instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| fail2ban.failed_attempts | a dimension per jail | attempts/s |\n| fail2ban.bans | a dimension per jail | bans/s |\n| fail2ban.banned_ips | a dimension per jail | ips |\n\n",integration_type:"collector",id:"python.d.plugin-fail2ban-Fail2ban",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/fail2ban/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"gearman",monitored_instance:{name:"Gearman",link:"http://gearman.org/",categories:["data-collection.distributed-computing-systems"],icon_filename:"gearman.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["gearman","gearman job server"],most_popular:!1},overview:"# Gearman\n\nPlugin: python.d.plugin\nModule: gearman\n\n## Overview\n\nMonitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management.\n\nThis collector connects to a Gearman instance via either TCP or unix socket.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWhen no configuration file is found, the collector tries to connect to TCP/IP socket: localhost:4730.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Socket permissions\n\nThe gearman UNIX socket should have read permission for user netdata.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/gearman.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/gearman.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| host | URL or IP where gearman is running. | localhost | no |\n| port | Port of URL or IP where gearman is running. | 4730 | no |\n| tls | Use tls to connect to gearman. | false | no |\n| cert | Provide a certificate file if needed to connect to a TLS gearman instance. | | no |\n| key | Provide a key file if needed to connect to a TLS gearman instance. | | no |\n\n{% /details %}\n#### Examples\n\n##### Local gearman service\n\nA basic host and port gearman configuration for localhost.\n\n```yaml\nlocalhost:\n name: 'local'\n host: 'localhost'\n port: 4730\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: 'localhost'\n port: 4730\n\nremote:\n name: 'remote'\n host: '192.0.2.1'\n port: 4730\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `gearman` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin gearman debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ gearman_workers_queued ](https://github.com/netdata/netdata/blob/master/src/health/health.d/gearman.conf) | gearman.single_job | average number of queued jobs over the last 10 minutes |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Gearman instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| gearman.total_jobs | Pending, Running | Jobs |\n\n### Per gearman job\n\nMetrics related to Gearman jobs. Each job produces its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| gearman.single_job | Pending, Idle, Runnning | Jobs |\n\n",integration_type:"collector",id:"python.d.plugin-gearman-Gearman",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/gearman/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"go_expvar",monitored_instance:{name:"Go applications (EXPVAR)",link:"https://pkg.go.dev/expvar",categories:["data-collection.apm"],icon_filename:"go.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["go","expvar","application"],most_popular:!1},overview:"# Go applications (EXPVAR)\n\nPlugin: python.d.plugin\nModule: go_expvar\n\n## Overview\n\nThis collector monitors Go applications that expose their metrics with the use of the `expvar` package from the Go standard library. It produces charts for Go runtime memory statistics and optionally any number of custom charts.\n\nIt connects via http to gather the metrics exposed via the `expvar` package.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable the go_expvar collector\n\nThe `go_expvar` collector is disabled by default. To enable it, use `edit-config` from the Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md), which is typically at `/etc/netdata`, to edit the `python.d.conf` file.\n\n```bash\ncd /etc/netdata # Replace this path with your Netdata config directory, if different\nsudo ./edit-config python.d.conf\n```\n\nChange the value of the `go_expvar` setting to `yes`. Save the file and restart the Netdata Agent with `sudo systemctl restart netdata`, or the [appropriate method](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#maintaining-a-netdata-agent-installation) for your system.\n\n\n#### Sample `expvar` usage in a Go application\n\nThe `expvar` package exposes metrics over HTTP and is very easy to use.\nConsider this minimal sample below:\n\n```go\npackage main\n\nimport (\n _ "expvar"\n "net/http"\n)\n\nfunc main() {\n http.ListenAndServe("127.0.0.1:8080", nil)\n}\n```\n\nWhen imported this way, the `expvar` package registers a HTTP handler at `/debug/vars` that\nexposes Go runtime\'s memory statistics in JSON format. You can inspect the output by opening\nthe URL in your browser (or by using `wget` or `curl`).\n\nSample output:\n\n```json\n{\n"cmdline": ["./expvar-demo-binary"],\n"memstats": {"Alloc":630856,"TotalAlloc":630856,"Sys":3346432,"Lookups":27, <omitted for brevity>}\n}\n```\n\nYou can of course expose and monitor your own variables as well.\nHere is a sample Go application that exposes a few custom variables:\n\n```go\npackage main\n\nimport (\n "expvar"\n "net/http"\n "runtime"\n "time"\n)\n\nfunc main() {\n\n tick := time.NewTicker(1 * time.Second)\n num_go := expvar.NewInt("runtime.goroutines")\n counters := expvar.NewMap("counters")\n counters.Set("cnt1", new(expvar.Int))\n counters.Set("cnt2", new(expvar.Float))\n\n go http.ListenAndServe(":8080", nil)\n\n for {\n select {\n case <- tick.C:\n num_go.Set(int64(runtime.NumGoroutine()))\n counters.Add("cnt1", 1)\n counters.AddFloat("cnt2", 1.452)\n }\n }\n}\n```\n\nApart from the runtime memory stats, this application publishes two counters and the\nnumber of currently running Goroutines and updates these stats every second.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/go_expvar.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/go_expvar.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. Each JOB can be used to monitor a different Go application.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| url | the URL and port of the expvar endpoint. Please include the whole path of the endpoint, as the expvar handler can be installed in a non-standard location. | | yes |\n| user | If the URL is password protected, this is the username to use. | | no |\n| pass | If the URL is password protected, this is the password to use. | | no |\n| collect_memstats | Enables charts for Go runtime\'s memory statistics. | | no |\n| extra_charts | Defines extra data/charts to monitor, please see the example below. | | no |\n\n{% /details %}\n#### Examples\n\n##### Monitor a Go app1 application\n\nThe example below sets a configuration for a Go application, called `app1`. Besides the `memstats`, the application also exposes two counters and the number of currently running Goroutines and updates these stats every second.\n\nThe `go_expvar` collector can monitor these as well with the use of the `extra_charts` configuration variable.\n\nThe `extra_charts` variable is a YaML list of Netdata chart definitions.\nEach chart definition has the following keys:\n\n```\nid: Netdata chart ID\noptions: a key-value mapping of chart options\nlines: a list of line definitions\n```\n\n**Note: please do not use dots in the chart or line ID field.\nSee [this issue](https://github.com/netdata/netdata/pull/1902#issuecomment-284494195) for explanation.**\n\nPlease see these two links to the official Netdata documentation for more information about the values:\n\n- [External plugins - charts](https://github.com/netdata/netdata/blob/master/src/collectors/plugins.d/README.md#chart)\n- [Chart variables](https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/README.md#global-variables-order-and-chart)\n\n**Line definitions**\n\nEach chart can define multiple lines (dimensions).\nA line definition is a key-value mapping of line options.\nEach line can have the following options:\n\n```\n# mandatory\nexpvar_key: the name of the expvar as present in the JSON output of /debug/vars endpoint\nexpvar_type: value type; supported are "float" or "int"\nid: the id of this line/dimension in Netdata\n\n# optional - Netdata defaults are used if these options are not defined\nname: \'\'\nalgorithm: absolute\nmultiplier: 1\ndivisor: 100 if expvar_type == float, 1 if expvar_type == int\nhidden: False\n```\n\nPlease see the following link for more information about the options and their default values:\n[External plugins - dimensions](https://github.com/netdata/netdata/blob/master/src/collectors/plugins.d/README.md#dimension)\n\nApart from top-level expvars, this plugin can also parse expvars stored in a multi-level map;\nAll dicts in the resulting JSON document are then flattened to one level.\nExpvar names are joined together with \'.\' when flattening.\n\nExample:\n\n```\n{\n "counters": {"cnt1": 1042, "cnt2": 1512.9839999999983},\n "runtime.goroutines": 5\n}\n```\n\nIn the above case, the exported variables will be available under `runtime.goroutines`,\n`counters.cnt1` and `counters.cnt2` expvar_keys. If the flattening results in a key collision,\nthe first defined key wins and all subsequent keys with the same name are ignored.\n\n\n```yaml\napp1:\n name : \'app1\'\n url : \'http://127.0.0.1:8080/debug/vars\'\n collect_memstats: true\n extra_charts:\n - id: "runtime_goroutines"\n options:\n name: num_goroutines\n title: "runtime: number of goroutines"\n units: goroutines\n family: runtime\n context: expvar.runtime.goroutines\n chart_type: line\n lines:\n - {expvar_key: \'runtime.goroutines\', expvar_type: int, id: runtime_goroutines}\n - id: "foo_counters"\n options:\n name: counters\n title: "some random counters"\n units: awesomeness\n family: counters\n context: expvar.foo.counters\n chart_type: line\n lines:\n - {expvar_key: \'counters.cnt1\', expvar_type: int, id: counters_cnt1}\n - {expvar_key: \'counters.cnt2\', expvar_type: float, id: counters_cnt2}\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `go_expvar` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin go_expvar debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Go applications (EXPVAR) instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| expvar.memstats.heap | alloc, inuse | KiB |\n| expvar.memstats.stack | inuse | KiB |\n| expvar.memstats.mspan | inuse | KiB |\n| expvar.memstats.mcache | inuse | KiB |\n| expvar.memstats.live_objects | live | objects |\n| expvar.memstats.sys | sys | KiB |\n| expvar.memstats.gc_pauses | avg | ns |\n\n",integration_type:"collector",id:"python.d.plugin-go_expvar-Go_applications_(EXPVAR)",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/go_expvar/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"hddtemp",monitored_instance:{name:"HDD temperature",link:"https://linux.die.net/man/8/hddtemp",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"hard-drive.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["hardware","hdd temperature","disk temperature","temperature"],most_popular:!1},overview:"# HDD temperature\n\nPlugin: python.d.plugin\nModule: hddtemp\n\n## Overview\n\nThis collector monitors disk temperatures.\n\n\nIt uses the `hddtemp` daemon to gather the metrics.\n\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will attempt to connect to the `hddtemp` daemon on `127.0.0.1:7634`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Run `hddtemp` in daemon mode\n\nYou can execute `hddtemp` in TCP/IP daemon mode by using the `-d` argument.\n\nSo running `hddtemp -d` would run the daemon, by default on port 7634.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/hddtemp.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/hddtemp.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\nBy default this collector will try to autodetect disks (autodetection works only for disk which names start with \"sd\"). However this can be overridden by setting the option `disks` to an array of desired disks.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | local | no |\n| devices | Array of desired disks to detect, in case their name doesn't start with `sd`. | | no |\n| host | The IP or HOSTNAME to connect to. | localhost | yes |\n| port | The port to connect to. | 7634 | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 7634\n\n```\n##### Custom disk names\n\nAn example defining the disk names to detect.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 7634\n devices:\n - customdisk1\n - customdisk2\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 7634\n\nremote_job:\n name : 'remote'\n host : 'http://192.0.2.1:2812'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `hddtemp` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin hddtemp debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per HDD temperature instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hddtemp.temperatures | a dimension per disk | Celsius |\n\n",integration_type:"collector",id:"python.d.plugin-hddtemp-HDD_temperature",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/hddtemp/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"hpssa",monitored_instance:{name:"HP Smart Storage Arrays",link:"https://buy.hpe.com/us/en/software/server-management-software/server-management-software/smart-array-management-software/hpe-smart-storage-administrator/p/5409020",categories:["data-collection.storage-mount-points-and-filesystems"],icon_filename:"hp.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["storage","hp","hpssa","array"],most_popular:!1},overview:"# HP Smart Storage Arrays\n\nPlugin: python.d.plugin\nModule: hpssa\n\n## Overview\n\nThis collector monitors HP Smart Storage Arrays metrics about operational statuses and temperatures.\n\nIt uses the command line tool `ssacli`. The exact command used is `sudo -n ssacli ctrl all show config detail`\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is provided, the collector will try to execute the `ssacli` binary.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Enable the hpssa collector\n\nThe `hpssa` collector is disabled by default. To enable it, use `edit-config` from the Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md), which is typically at `/etc/netdata`, to edit the `python.d.conf` file.\n\n```bash\ncd /etc/netdata # Replace this path with your Netdata config directory, if different\nsudo ./edit-config python.d.conf\n```\n\nChange the value of the `hpssa` setting to `yes`. Save the file and restart the Netdata Agent with `sudo systemctl restart netdata`, or the [appropriate method](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#maintaining-a-netdata-agent-installation) for your system.\n\n\n#### Allow user netdata to execute `ssacli` as root.\n\nThis module uses `ssacli`, which can only be executed by root. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `ssacli` as root without a password.\n\n- Add to your `/etc/sudoers` file:\n\n`which ssacli` shows the full path to the binary.\n\n```bash\nnetdata ALL=(root) NOPASSWD: /path/to/ssacli\n```\n\n- Reset Netdata's systemd\n unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux\n distributions with systemd)\n\nThe default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `ssacli` using `sudo`.\n\nAs the `root` user, do the following:\n\n```cmd\nmkdir /etc/systemd/system/netdata.service.d\necho -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\nsystemctl daemon-reload\nsystemctl restart netdata.service\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/hpssa.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/hpssa.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| ssacli_path | Path to the `ssacli` command line utility. Configure this if `ssacli` is not in the $PATH | | no |\n| use_sudo | Whether or not to use `sudo` to execute `ssacli` | True | no |\n\n{% /details %}\n#### Examples\n\n##### Local simple config\n\nA basic configuration, specyfing the path to `ssacli`\n\n```yaml\nlocal:\n ssacli_path: /usr/sbin/ssacli\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `hpssa` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin hpssa debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per HP Smart Storage Arrays instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hpssa.ctrl_status | ctrl_{adapter slot}_status, cache_{adapter slot}_status, battery_{adapter slot}_status per adapter | Status |\n| hpssa.ctrl_temperature | ctrl_{adapter slot}_temperature, cache_{adapter slot}_temperature per adapter | Celsius |\n| hpssa.ld_status | a dimension per logical drive | Status |\n| hpssa.pd_status | a dimension per physical drive | Status |\n| hpssa.pd_temperature | a dimension per physical drive | Celsius |\n\n",integration_type:"collector",id:"python.d.plugin-hpssa-HP_Smart_Storage_Arrays",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/hpssa/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"icecast",monitored_instance:{name:"Icecast",link:"https://icecast.org/",categories:["data-collection.media-streaming-servers"],icon_filename:"icecast.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["icecast","streaming","media"],most_popular:!1},overview:"# Icecast\n\nPlugin: python.d.plugin\nModule: icecast\n\n## Overview\n\nThis collector monitors Icecast listener counts.\n\nIt connects to an icecast URL and uses the `status-json.xsl` endpoint to retrieve statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWithout configuration, the collector attempts to connect to http://localhost:8443/status-json.xsl\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Icecast minimum version\n\nNeeds at least icecast version >= 2.4.0\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/icecast.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/icecast.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| url | The URL (and port) to the icecast server. Needs to also include `/status-json.xsl` | http://localhost:8443/status-json.xsl | no |\n| user | Username to use to connect to `url` if it's password protected. | | no |\n| pass | Password to use to connect to `url` if it's password protected. | | no |\n\n{% /details %}\n#### Examples\n\n##### Remote Icecast server\n\nConfigure a remote icecast server\n\n```yaml\nremote:\n url: 'http://1.2.3.4:8443/status-json.xsl'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `icecast` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin icecast debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Icecast instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| icecast.listeners | a dimension for each active source | listeners |\n\n",integration_type:"collector",id:"python.d.plugin-icecast-Icecast",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/icecast/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"ipfs",monitored_instance:{name:"IPFS",link:"https://ipfs.tech/",categories:["data-collection.storage-mount-points-and-filesystems"],icon_filename:"ipfs.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# IPFS\n\nPlugin: python.d.plugin\nModule: ipfs\n\n## Overview\n\nThis collector monitors IPFS server metrics about its quality and performance.\n\nIt connects to an http endpoint of the IPFS server to collect the metrics\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf the endpoint is accessible by the Agent, netdata will autodetect it\n\n#### Limits\n\nCalls to the following endpoints are disabled due to IPFS bugs:\n\n/api/v0/stats/repo (https://github.com/ipfs/go-ipfs/issues/3874)\n/api/v0/pin/ls (https://github.com/ipfs/go-ipfs/issues/7528)\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/ipfs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/ipfs.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | The JOB's name as it will appear at the dashboard (by default is the job_name) | job_name | no |\n| url | URL to the IPFS API | no | yes |\n| repoapi | Collect repo metrics. | no | no |\n| pinapi | Set status of IPFS pinned object polling. | no | no |\n\n{% /details %}\n#### Examples\n\n##### Basic (default out-of-the-box)\n\nA basic example configuration, one job will run at a time. Autodetect mechanism uses it by default.\n\n```yaml\nlocalhost:\n name: 'local'\n url: 'http://localhost:5001'\n repoapi: no\n pinapi: no\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n url: 'http://localhost:5001'\n repoapi: no\n pinapi: no\n\nremote_host:\n name: 'remote'\n url: 'http://192.0.2.1:5001'\n repoapi: no\n pinapi: no\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ipfs` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin ipfs debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ipfs_datastore_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ipfs.conf) | ipfs.repo_size | IPFS datastore utilization |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IPFS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipfs.bandwidth | in, out | kilobits/s |\n| ipfs.peers | peers | peers |\n| ipfs.repo_size | avail, size | GiB |\n| ipfs.repo_objects | objects, pinned, recursive_pins | objects |\n\n",integration_type:"collector",id:"python.d.plugin-ipfs-IPFS",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/ipfs/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"litespeed",monitored_instance:{name:"Litespeed",link:"https://www.litespeedtech.com/products/litespeed-web-server",categories:["data-collection.web-servers-and-web-proxies"],icon_filename:"litespeed.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["litespeed","web","server"],most_popular:!1},overview:"# Litespeed\n\nPlugin: python.d.plugin\nModule: litespeed\n\n## Overview\n\nExamine Litespeed metrics for insights into web server operations. Analyze request rates, response times, and error rates for efficient web service delivery.\n\nThe collector uses the statistics under /tmp/lshttpd to gather the metrics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is present, the collector will attempt to read files under /tmp/lshttpd/.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/litespeed.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/litespeed.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| path | Use a different path than the default, where the lightspeed stats files reside. | /tmp/lshttpd/ | no |\n\n{% /details %}\n#### Examples\n\n##### Set the path to statistics\n\nChange the path for the litespeed stats files\n\n```yaml\nlocalhost:\n name: 'local'\n path: '/tmp/lshttpd'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `litespeed` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin litespeed debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Litespeed instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| litespeed.net_throughput | in, out | kilobits/s |\n| litespeed.net_throughput | in, out | kilobits/s |\n| litespeed.connections | free, used | conns |\n| litespeed.connections | free, used | conns |\n| litespeed.requests | requests | requests/s |\n| litespeed.requests_processing | processing | requests |\n| litespeed.cache | hits | hits/s |\n| litespeed.cache | hits | hits/s |\n| litespeed.static | hits | hits/s |\n\n",integration_type:"collector",id:"python.d.plugin-litespeed-Litespeed",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/litespeed/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"megacli",monitored_instance:{name:"MegaCLI",link:"https://wikitech.wikimedia.org/wiki/MegaCli",categories:["data-collection.storage-mount-points-and-filesystems"],icon_filename:"hard-drive.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["storage","raid-controller","manage-disks"],most_popular:!1},overview:"# MegaCLI\n\nPlugin: python.d.plugin\nModule: megacli\n\n## Overview\n\nExamine MegaCLI metrics with Netdata for insights into RAID controller performance. Improve your RAID controller efficiency with real-time MegaCLI metrics.\n\nCollects adapter, physical drives and battery stats using megacli command-line tool\n\nExecuted commands:\n\n - `sudo -n megacli -LDPDInfo -aAll`\n - `sudo -n megacli -AdpBbuCmd -a0`\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThe module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password.\n\n### Default Behavior\n\n#### Auto-Detection\n\nAfter all the permissions are satisfied, netdata should be to execute commands via the megacli command line utility\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Grant permissions for netdata, to run megacli as sudoer\n\nThe module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password.\n\nAdd to your /etc/sudoers file:\nwhich megacli shows the full path to the binary.\n\n```bash\nnetdata ALL=(root) NOPASSWD: /path/to/megacli\n```\n\n\n#### Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)\n\nThe default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo.\n\nAs root user, do the following:\n\n```bash\nmkdir /etc/systemd/system/netdata.service.d\necho -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\nsystemctl daemon-reload\nsystemctl restart netdata.service\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/megacli.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/megacli.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| do_battery | default is no. Battery stats (adds additional call to megacli `megacli -AdpBbuCmd -a0`). | no | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration per job\n\n```yaml\njob_name:\n name: myname\n update_every: 1\n priority: 60000\n penalty: yes\n autodetection_retry: 0\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `megacli` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin megacli debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ megacli_adapter_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/megacli.conf) | megacli.adapter_degraded | adapter is in the degraded state (0: false, 1: true) |\n| [ megacli_pd_media_errors ](https://github.com/netdata/netdata/blob/master/src/health/health.d/megacli.conf) | megacli.pd_media_error | number of physical drive media errors |\n| [ megacli_pd_predictive_failures ](https://github.com/netdata/netdata/blob/master/src/health/health.d/megacli.conf) | megacli.pd_predictive_failure | number of physical drive predictive failures |\n| [ megacli_bbu_relative_charge ](https://github.com/netdata/netdata/blob/master/src/health/health.d/megacli.conf) | megacli.bbu_relative_charge | average battery backup unit (BBU) relative state of charge over the last 10 seconds |\n| [ megacli_bbu_cycle_count ](https://github.com/netdata/netdata/blob/master/src/health/health.d/megacli.conf) | megacli.bbu_cycle_count | average battery backup unit (BBU) charge cycles count over the last 10 seconds |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MegaCLI instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| megacli.adapter_degraded | a dimension per adapter | is degraded |\n| megacli.pd_media_error | a dimension per physical drive | errors/s |\n| megacli.pd_predictive_failure | a dimension per physical drive | failures/s |\n\n### Per battery\n\nMetrics related to Battery Backup Units, each BBU provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| megacli.bbu_relative_charge | adapter {battery id} | percentage |\n| megacli.bbu_cycle_count | adapter {battery id} | cycle count |\n\n",integration_type:"collector",id:"python.d.plugin-megacli-MegaCLI",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/megacli/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"memcached",monitored_instance:{name:"Memcached",link:"https://memcached.org/",categories:["data-collection.database-servers"],icon_filename:"memcached.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["memcached","memcache","cache","database"],most_popular:!1},overview:"# Memcached\n\nPlugin: python.d.plugin\nModule: memcached\n\n## Overview\n\nMonitor Memcached metrics for proficient in-memory key-value store operations. Track cache hits, misses, and memory usage for efficient data caching.\n\nIt reads server response to stats command ([stats interface](https://github.com/memcached/memcached/wiki/Commands#stats)).\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, collector will attempt to connect to memcached instance on `127.0.0.1:11211` address.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/memcached.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/memcached.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| host | the host to connect to. | 127.0.0.1 | no |\n| port | the port to connect to. | 11211 | no |\n| update_every | Sets the default data collection frequency. | 10 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### localhost\n\nAn example configuration for localhost.\n\n```yaml\nlocalhost:\n name: 'local'\n host: 'localhost'\n port: 11211\n\n```\n##### localipv4\n\nAn example configuration for localipv4.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 11211\n\n```\n{% /details %}\n##### localipv6\n\nAn example configuration for localipv6.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '::1'\n port: 11211\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `memcached` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin memcached debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ memcached_cache_memory_usage ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memcached.conf) | memcached.cache | cache memory utilization |\n| [ memcached_cache_fill_rate ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memcached.conf) | memcached.cache | average rate the cache fills up (positive), or frees up (negative) space over the last hour |\n| [ memcached_out_of_cache_space_time ](https://github.com/netdata/netdata/blob/master/src/health/health.d/memcached.conf) | memcached.cache | estimated time the cache will run out of space if the system continues to add data at the same rate as the past hour |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Memcached instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| memcached.cache | available, used | MiB |\n| memcached.net | in, out | kilobits/s |\n| memcached.connections | current, rejected, total | connections/s |\n| memcached.items | current, total | items |\n| memcached.evicted_reclaimed | reclaimed, evicted | items |\n| memcached.get | hints, misses | requests |\n| memcached.get_rate | rate | requests/s |\n| memcached.set_rate | rate | requests/s |\n| memcached.delete | hits, misses | requests |\n| memcached.cas | hits, misses, bad value | requests |\n| memcached.increment | hits, misses | requests |\n| memcached.decrement | hits, misses | requests |\n| memcached.touch | hits, misses | requests |\n| memcached.touch_rate | rate | requests/s |\n\n",integration_type:"collector",id:"python.d.plugin-memcached-Memcached",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/memcached/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"monit",monitored_instance:{name:"Monit",link:"https://mmonit.com/monit/",categories:["data-collection.synthetic-checks"],icon_filename:"monit.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["monit","mmonit","supervision tool","monitrc"],most_popular:!1},overview:"# Monit\n\nPlugin: python.d.plugin\nModule: monit\n\n## Overview\n\nThis collector monitors Monit targets such as filesystems, directories, files, FIFO pipes and more.\n\n\nIt gathers data from Monit's XML interface.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will attempt to connect to Monit at `http://localhost:2812`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/monit.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/monit.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | local | no |\n| url | The URL to fetch Monit's metrics. | http://localhost:2812 | yes |\n| user | Username in case the URL is password protected. | | no |\n| pass | Password in case the URL is password protected. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nlocalhost:\n name : 'local'\n url : 'http://localhost:2812'\n\n```\n##### Basic Authentication\n\nExample using basic username and password in order to authenticate.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name : 'local'\n url : 'http://localhost:2812'\n user: 'foo'\n pass: 'bar'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n url: 'http://localhost:2812'\n\nremote_job:\n name: 'remote'\n url: 'http://192.0.2.1:2812'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `monit` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin monit debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Monit instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| monit.filesystems | a dimension per target | filesystems |\n| monit.directories | a dimension per target | directories |\n| monit.files | a dimension per target | files |\n| monit.fifos | a dimension per target | pipes |\n| monit.programs | a dimension per target | programs |\n| monit.services | a dimension per target | processes |\n| monit.process_uptime | a dimension per target | seconds |\n| monit.process_threads | a dimension per target | threads |\n| monit.process_childrens | a dimension per target | children |\n| monit.hosts | a dimension per target | hosts |\n| monit.host_latency | a dimension per target | milliseconds |\n| monit.networks | a dimension per target | interfaces |\n\n",integration_type:"collector",id:"python.d.plugin-monit-Monit",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/monit/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"nsd",monitored_instance:{name:"Name Server Daemon",link:"https://nsd.docs.nlnetlabs.nl/en/latest/#",categories:["data-collection.dns-and-dhcp-servers"],icon_filename:"nsd.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["nsd","name server daemon"],most_popular:!1},overview:"# Name Server Daemon\n\nPlugin: python.d.plugin\nModule: nsd\n\n## Overview\n\nThis collector monitors NSD statistics like queries, zones, protocols, query types and more.\n\n\nIt uses the `nsd-control stats_noreset` command to gather metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf permissions are satisfied, the collector will be able to run `nsd-control stats_noreset`, thus collecting metrics.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### NSD version\n\nThe version of `nsd` must be 4.0+.\n\n\n#### Provide Netdata the permissions to run the command\n\nNetdata must have permissions to run the `nsd-control stats_noreset` command.\n\nYou can:\n\n- Add "netdata" user to "nsd" group:\n ```\n usermod -aG nsd netdata\n ```\n- Add Netdata to sudoers\n 1. Edit the sudoers file:\n ```\n visudo -f /etc/sudoers.d/netdata\n ```\n 2. Add the entry:\n ```\n Defaults:netdata !requiretty\n netdata ALL=(ALL) NOPASSWD: /usr/sbin/nsd-control stats_noreset\n ```\n\n > Note that you will need to set the `command` option to `sudo /usr/sbin/nsd-control stats_noreset` if you use this method.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/nsd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/nsd.conf\n```\n#### Options\n\nThis particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it\'s data collection behavior.\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 30 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| command | The command to run | nsd-control stats_noreset | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nlocal:\n name: \'nsd_local\'\n command: \'nsd-control stats_noreset\'\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nsd` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin nsd debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Name Server Daemon instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nsd.queries | queries | queries/s |\n| nsd.zones | master, slave | zones |\n| nsd.protocols | udp, udp6, tcp, tcp6 | queries/s |\n| nsd.type | A, NS, CNAME, SOA, PTR, HINFO, MX, NAPTR, TXT, AAAA, SRV, ANY | queries/s |\n| nsd.transfer | NOTIFY, AXFR | queries/s |\n| nsd.rcode | NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP, REFUSED, YXDOMAIN | queries/s |\n\n",integration_type:"collector",id:"python.d.plugin-nsd-Name_Server_Daemon",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/nsd/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"openldap",monitored_instance:{name:"OpenLDAP",link:"https://www.openldap.org/",categories:["data-collection.authentication-and-authorization"],icon_filename:"statsd.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["openldap","RBAC","Directory access"],most_popular:!1},overview:"# OpenLDAP\n\nPlugin: python.d.plugin\nModule: openldap\n\n## Overview\n\nThis collector monitors OpenLDAP metrics about connections, operations, referrals and more.\n\nStatistics are taken from the monitoring interface of a openLDAP (slapd) server\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector doesn't work until all the prerequisites are checked.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Configure the openLDAP server to expose metrics to monitor it.\n\nFollow instructions from https://www.openldap.org/doc/admin24/monitoringslapd.html to activate monitoring interface.\n\n\n#### Install python-ldap module\n\nInstall python ldap module \n\n1. From pip package manager\n\n```bash\npip install ldap\n```\n\n2. With apt package manager (in most deb based distros)\n\n\n```bash\napt-get install python-ldap\n```\n\n\n3. With yum package manager (in most rpm based distros)\n\n\n```bash\nyum install python-ldap\n```\n\n\n#### Insert credentials for Netdata to access openLDAP server\n\nUse the `ldappasswd` utility to set a password for the username you will use.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/openldap.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/openldap.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| username | The bind user with right to access monitor statistics | | yes |\n| password | The password for the binded user | | yes |\n| server | The listening address of the LDAP server. In case of TLS, use the hostname which the certificate is published for. | | yes |\n| port | The listening port of the LDAP server. Change to 636 port in case of TLS connection. | 389 | yes |\n| use_tls | Make True if a TLS connection is used over ldaps:// | no | no |\n| use_start_tls | Make True if a TLS connection is used over ldap:// | no | no |\n| cert_check | False if you want to ignore certificate check | True | yes |\n| timeout | Seconds to timeout if no connection exist | | yes |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nusername: "cn=admin"\npassword: "pass"\nserver: "localhost"\nport: "389"\ncheck_cert: True\ntimeout: 1\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `openldap` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin openldap debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenLDAP instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openldap.total_connections | connections | connections/s |\n| openldap.traffic_stats | sent | KiB/s |\n| openldap.operations_status | completed, initiated | ops/s |\n| openldap.referrals | sent | referrals/s |\n| openldap.entries | sent | entries/s |\n| openldap.ldap_operations | bind, search, unbind, add, delete, modify, compare | ops/s |\n| openldap.waiters | write, read | waiters/s |\n\n",integration_type:"collector",id:"python.d.plugin-openldap-OpenLDAP",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/openldap/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"oracledb",monitored_instance:{name:"Oracle DB",link:"https://docs.oracle.com/en/database/oracle/oracle-database/",categories:["data-collection.database-servers"],icon_filename:"oracle.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["database","oracle","data warehouse","SQL"],most_popular:!1},overview:"# Oracle DB\n\nPlugin: python.d.plugin\nModule: oracledb\n\n## Overview\n\nThis collector monitors OracleDB database metrics about sessions, tables, memory and more.\n\nIt collects the metrics via the supported database client library\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nIn order for this collector to work, it needs a read-only user `netdata` in the RDBMS.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWhen the requirements are met, databases on the local host on port 1521 will be auto-detected\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Install the python-oracledb package\n\nYou can follow the official guide below to install the required package:\n\nSource: https://python-oracledb.readthedocs.io/en/latest/user_guide/installation.html\n\n\n#### Create a read only user for netdata\n\nFollow the official instructions for your oracle RDBMS to create a read-only user for netdata. The operation may follow this approach\n\nConnect to your Oracle database with an administrative user and execute:\n\n```bash\nCREATE USER netdata IDENTIFIED BY <PASSWORD>;\n\nGRANT CONNECT TO netdata;\nGRANT SELECT_CATALOG_ROLE TO netdata;\n```\n\n\n#### Edit the configuration\n\nEdit the configuration troubleshooting:\n\n1. Provide a valid user for the netdata collector to access the database\n2. Specify the network target this database is listening.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/oracledb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/oracledb.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| user | The username for the user account. | no | yes |\n| password | The password for the user account. | no | yes |\n| server | The IP address or hostname (and port) of the Oracle Database Server. | no | yes |\n| service | The Oracle Database service name. To view the services available on your server run this query, `select SERVICE_NAME from gv$session where sid in (select sid from V$MYSTAT)`. | no | yes |\n| protocol | one of the strings \"tcp\" or \"tcps\" indicating whether to use unencrypted network traffic or encrypted network traffic | no | yes |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration, two jobs described for two databases.\n\n```yaml\nlocal:\n user: 'netdata'\n password: 'secret'\n server: 'localhost:1521'\n service: 'XE'\n protocol: 'tcps'\n\nremote:\n user: 'netdata'\n password: 'secret'\n server: '10.0.0.1:1521'\n service: 'XE'\n protocol: 'tcps'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `oracledb` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin oracledb debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThese metrics refer to the entire monitored application.\n\n### Per Oracle DB instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| oracledb.session_count | total, active | sessions |\n| oracledb.session_limit_usage | usage | % |\n| oracledb.logons | logons | events/s |\n| oracledb.physical_disk_read_writes | reads, writes | events/s |\n| oracledb.sorts_on_disks | sorts | events/s |\n| oracledb.full_table_scans | full table scans | events/s |\n| oracledb.database_wait_time_ratio | wait time ratio | % |\n| oracledb.shared_pool_free_memory | free memory | % |\n| oracledb.in_memory_sorts_ratio | in-memory sorts | % |\n| oracledb.sql_service_response_time | time | seconds |\n| oracledb.user_rollbacks | rollbacks | events/s |\n| oracledb.enqueue_timeouts | enqueue timeouts | events/s |\n| oracledb.cache_hit_ration | buffer, cursor, library, row | % |\n| oracledb.global_cache_blocks | corrupted, lost | events/s |\n| oracledb.activity | parse count, execute count, user commits, user rollbacks | events/s |\n| oracledb.wait_time | application, configuration, administrative, concurrency, commit, network, user I/O, system I/O, scheduler, other | ms |\n| oracledb.tablespace_size | a dimension per active tablespace | KiB |\n| oracledb.tablespace_usage | a dimension per active tablespace | KiB |\n| oracledb.tablespace_usage_in_percent | a dimension per active tablespace | % |\n| oracledb.allocated_size | a dimension per active tablespace | B |\n| oracledb.allocated_usage | a dimension per active tablespace | B |\n| oracledb.allocated_usage_in_percent | a dimension per active tablespace | % |\n\n",integration_type:"collector",id:"python.d.plugin-oracledb-Oracle_DB",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/oracledb/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"pandas",monitored_instance:{name:"Pandas",link:"https://pandas.pydata.org/",categories:["data-collection.generic-data-collection"],icon_filename:"pandas.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["pandas","python"],most_popular:!1},overview:"# Pandas\n\nPlugin: python.d.plugin\nModule: pandas\n\n## Overview\n\n[Pandas](https://pandas.pydata.org/) is a de-facto standard in reading and processing most types of structured data in Python.\nIf you have metrics appearing in a CSV, JSON, XML, HTML, or [other supported format](https://pandas.pydata.org/docs/user_guide/io.html),\neither locally or via some HTTP endpoint, you can easily ingest and present those metrics in Netdata, by leveraging the Pandas collector.\n\nThis collector can be used to collect pretty much anything that can be read by Pandas, and then processed by Pandas.\n\n\nThe collector uses [pandas](https://pandas.pydata.org/) to pull data and do pandas-based preprocessing, before feeding to Netdata.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Python Requirements\n\nThis collector depends on some Python (Python 3 only) packages that can usually be installed via `pip` or `pip3`.\n\n```bash\nsudo pip install pandas requests\n```\n\nNote: If you would like to use [`pandas.read_sql`](https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html) to query a database, you will need to install the below packages as well.\n\n```bash\nsudo pip install 'sqlalchemy<2.0' psycopg2-binary\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/pandas.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/pandas.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| chart_configs | an array of chart configuration dictionaries | [] | yes |\n| chart_configs.name | name of the chart to be displayed in the dashboard. | None | yes |\n| chart_configs.title | title of the chart to be displayed in the dashboard. | None | yes |\n| chart_configs.family | [family](https://github.com/netdata/netdata/blob/master/docs/cloud/visualize/interact-new-charts.md#families) of the chart to be displayed in the dashboard. | None | yes |\n| chart_configs.context | [context](https://github.com/netdata/netdata/blob/master/docs/cloud/visualize/interact-new-charts.md#contexts) of the chart to be displayed in the dashboard. | None | yes |\n| chart_configs.type | the type of the chart to be displayed in the dashboard. | None | yes |\n| chart_configs.units | the units of the chart to be displayed in the dashboard. | None | yes |\n| chart_configs.df_steps | a series of pandas operations (one per line) that each returns a dataframe. | None | yes |\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Temperature API Example\n\nexample pulling some hourly temperature data, a chart for today forecast (mean,min,max) and another chart for current.\n\n{% details summary=\"Config\" %}\n```yaml\ntemperature:\n name: \"temperature\"\n update_every: 5\n chart_configs:\n - name: \"temperature_forecast_by_city\"\n title: \"Temperature By City - Today Forecast\"\n family: \"temperature.today\"\n context: \"pandas.temperature\"\n type: \"line\"\n units: \"Celsius\"\n df_steps: >\n pd.DataFrame.from_dict(\n {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}&hourly=temperature_2m').json()['hourly']['temperature_2m']\n for (city,lat,lng)\n in [\n ('dublin', 53.3441, -6.2675),\n ('athens', 37.9792, 23.7166),\n ('london', 51.5002, -0.1262),\n ('berlin', 52.5235, 13.4115),\n ('paris', 48.8567, 2.3510),\n ('madrid', 40.4167, -3.7033),\n ('new_york', 40.71, -74.01),\n ('los_angeles', 34.05, -118.24),\n ]\n }\n );\n df.describe(); # get aggregate stats for each city;\n df.transpose()[['mean', 'max', 'min']].reset_index(); # just take mean, min, max;\n df.rename(columns={'index':'city'}); # some column renaming;\n df.pivot(columns='city').mean().to_frame().reset_index(); # force to be one row per city;\n df.rename(columns={0:'degrees'}); # some column renaming;\n pd.concat([df, df['city']+'_'+df['level_0']], axis=1); # add new column combining city and summary measurement label;\n df.rename(columns={0:'measurement'}); # some column renaming;\n df[['measurement', 'degrees']].set_index('measurement'); # just take two columns we want;\n df.sort_index(); # sort by city name;\n df.transpose(); # transpose so its just one wide row;\n - name: \"temperature_current_by_city\"\n title: \"Temperature By City - Current\"\n family: \"temperature.current\"\n context: \"pandas.temperature\"\n type: \"line\"\n units: \"Celsius\"\n df_steps: >\n pd.DataFrame.from_dict(\n {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}&current_weather=true').json()['current_weather']\n for (city,lat,lng)\n in [\n ('dublin', 53.3441, -6.2675),\n ('athens', 37.9792, 23.7166),\n ('london', 51.5002, -0.1262),\n ('berlin', 52.5235, 13.4115),\n ('paris', 48.8567, 2.3510),\n ('madrid', 40.4167, -3.7033),\n ('new_york', 40.71, -74.01),\n ('los_angeles', 34.05, -118.24),\n ]\n }\n );\n df.transpose();\n df[['temperature']];\n df.transpose();\n\n```\n{% /details %}\n##### API CSV Example\n\nexample showing a read_csv from a url and some light pandas data wrangling.\n\n{% details summary=\"Config\" %}\n```yaml\nexample_csv:\n name: \"example_csv\"\n update_every: 2\n chart_configs:\n - name: \"london_system_cpu\"\n title: \"London System CPU - Ratios\"\n family: \"london_system_cpu\"\n context: \"pandas\"\n type: \"line\"\n units: \"n\"\n df_steps: >\n pd.read_csv('https://london.my-netdata.io/api/v1/data?chart=system.cpu&format=csv&after=-60', storage_options={'User-Agent': 'netdata'});\n df.drop('time', axis=1);\n df.mean().to_frame().transpose();\n df.apply(lambda row: (row.user / row.system), axis = 1).to_frame();\n df.rename(columns={0:'average_user_system_ratio'});\n df*100;\n\n```\n{% /details %}\n##### API JSON Example\n\nexample showing a read_json from a url and some light pandas data wrangling.\n\n{% details summary=\"Config\" %}\n```yaml\nexample_json:\n name: \"example_json\"\n update_every: 2\n chart_configs:\n - name: \"london_system_net\"\n title: \"London System Net - Total Bandwidth\"\n family: \"london_system_net\"\n context: \"pandas\"\n type: \"area\"\n units: \"kilobits/s\"\n df_steps: >\n pd.DataFrame(requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['data'], columns=requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['labels']);\n df.drop('time', axis=1);\n abs(df);\n df.sum(axis=1).to_frame();\n df.rename(columns={0:'total_bandwidth'});\n\n```\n{% /details %}\n##### XML Example\n\nexample showing a read_xml from a url and some light pandas data wrangling.\n\n{% details summary=\"Config\" %}\n```yaml\nexample_xml:\n name: \"example_xml\"\n update_every: 2\n line_sep: \"|\"\n chart_configs:\n - name: \"temperature_forcast\"\n title: \"Temperature Forecast\"\n family: \"temp\"\n context: \"pandas.temp\"\n type: \"line\"\n units: \"celsius\"\n df_steps: >\n pd.read_xml('http://metwdb-openaccess.ichec.ie/metno-wdb2ts/locationforecast?lat=54.7210798611;long=-8.7237392806', xpath='./product/time[1]/location/temperature', parser='etree')|\n df.rename(columns={'value': 'dublin'})|\n df[['dublin']]|\n\n```\n{% /details %}\n##### SQL Example\n\nexample showing a read_sql from a postgres database using sqlalchemy.\n\n{% details summary=\"Config\" %}\n```yaml\nsql:\n name: \"sql\"\n update_every: 5\n chart_configs:\n - name: \"sql\"\n title: \"SQL Example\"\n family: \"sql.example\"\n context: \"example\"\n type: \"line\"\n units: \"percent\"\n df_steps: >\n pd.read_sql_query(\n sql='\\\n select \\\n random()*100 as metric_1, \\\n random()*100 as metric_2 \\\n ',\n con=create_engine('postgresql://localhost/postgres?user=netdata&password=netdata')\n );\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pandas` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin pandas debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThis collector is expecting one row in the final pandas DataFrame. It is that first row that will be taken\nas the most recent values for each dimension on each chart using (`df.to_dict(orient='records')[0]`).\nSee [pd.to_dict()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_dict.html).\"\n\n\n### Per Pandas instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n\n",integration_type:"collector",id:"python.d.plugin-pandas-Pandas",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/pandas/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"postfix",monitored_instance:{name:"Postfix",link:"https://www.postfix.org/",categories:["data-collection.mail-servers"],icon_filename:"postfix.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["postfix","mail","mail server"],most_popular:!1},overview:"# Postfix\n\nPlugin: python.d.plugin\nModule: postfix\n\n## Overview\n\nKeep an eye on Postfix metrics for efficient mail server operations. \nImprove your mail server performance with Netdata's real-time metrics and built-in alerts.\n\n\nMonitors MTA email queue statistics using [postqueue](http://www.postfix.org/postqueue.1.html) tool.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nPostfix has internal access controls that limit activities on the mail queue. By default, all users are allowed to view the queue. If your system is configured with stricter access controls, you need to grant the `netdata` user access to view the mail queue. In order to do it, add `netdata` to `authorized_mailq_users` in the `/etc/postfix/main.cf` file.\nSee the `authorized_mailq_users` setting in the [Postfix documentation](https://www.postfix.org/postconf.5.html) for more details.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector executes `postqueue -p` to get Postfix queue statistics.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `postfix` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin postfix debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Postfix instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postfix.qemails | emails | emails |\n| postfix.qsize | size | KiB |\n\n",integration_type:"collector",id:"python.d.plugin-postfix-Postfix",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/postfix/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"puppet",monitored_instance:{name:"Puppet",link:"https://www.puppet.com/",categories:["data-collection.ci-cd-systems"],icon_filename:"puppet.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["puppet","jvm heap"],most_popular:!1},overview:"# Puppet\n\nPlugin: python.d.plugin\nModule: puppet\n\n## Overview\n\nThis collector monitors Puppet metrics about JVM Heap, Non-Heap, CPU usage and file descriptors.'\n\n\nIt uses Puppet's metrics API endpoint to gather the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will use `https://fqdn.example.com:8140` as the URL to look for metrics.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/puppet.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/puppet.conf\n```\n#### Options\n\nThis particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n> Notes:\n> - Exact Fully Qualified Domain Name of the node should be used.\n> - Usually Puppet Server/DB startup time is VERY long. So, there should be quite reasonable retry count.\n> - A secured PuppetDB config may require a client certificate. This does not apply to the default PuppetDB configuration though.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| url | HTTP or HTTPS URL, exact Fully Qualified Domain Name of the node should be used. | https://fqdn.example.com:8081 | yes |\n| tls_verify | Control HTTPS server certificate verification. | False | no |\n| tls_ca_file | Optional CA (bundle) file to use | | no |\n| tls_cert_file | Optional client certificate file | | no |\n| tls_key_file | Optional client key file | | no |\n| update_every | Sets the default data collection frequency. | 30 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration\n\n```yaml\npuppetserver:\n url: 'https://fqdn.example.com:8140'\n autodetection_retry: 1\n\n```\n##### TLS Certificate\n\nAn example using a TLS certificate\n\n{% details summary=\"Config\" %}\n```yaml\npuppetdb:\n url: 'https://fqdn.example.com:8081'\n tls_cert_file: /path/to/client.crt\n tls_key_file: /path/to/client.key\n autodetection_retry: 1\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\npuppetserver1:\n url: 'https://fqdn.example.com:8140'\n autodetection_retry: 1\n\npuppetserver2:\n url: 'https://fqdn.example2.com:8140'\n autodetection_retry: 1\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `puppet` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin puppet debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Puppet instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| puppet.jvm | committed, used | MiB |\n| puppet.jvm | committed, used | MiB |\n| puppet.cpu | execution, GC | percentage |\n| puppet.fdopen | used | descriptors |\n\n",integration_type:"collector",id:"python.d.plugin-puppet-Puppet",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/puppet/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"rethinkdbs",monitored_instance:{name:"RethinkDB",link:"https://rethinkdb.com/",categories:["data-collection.database-servers"],icon_filename:"rethinkdb.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["rethinkdb","database","db"],most_popular:!1},overview:"# RethinkDB\n\nPlugin: python.d.plugin\nModule: rethinkdbs\n\n## Overview\n\nThis collector monitors metrics about RethinkDB clusters and database servers.\n\nIt uses the `rethinkdb` python module to connect to a RethinkDB server instance and gather statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWhen no configuration file is found, the collector tries to connect to 127.0.0.1:28015.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Required python module\n\nThe collector requires the `rethinkdb` python module to be installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/rethinkdbs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/rethinkdbs.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| host | Hostname or ip of the RethinkDB server. | localhost | no |\n| port | Port to connect to the RethinkDB server. | 28015 | no |\n| user | The username to use to connect to the RethinkDB server. | admin | no |\n| password | The password to use to connect to the RethinkDB server. | | no |\n| timeout | Set a connect timeout to the RethinkDB server. | 2 | no |\n\n{% /details %}\n#### Examples\n\n##### Local RethinkDB server\n\nAn example of a configuration for a local RethinkDB server\n\n```yaml\nlocalhost:\n name: \'local\'\n host: \'127.0.0.1\'\n port: 28015\n user: "user"\n password: "pass"\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `rethinkdbs` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin rethinkdbs debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RethinkDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rethinkdb.cluster_connected_servers | connected, missing | servers |\n| rethinkdb.cluster_clients_active | active | clients |\n| rethinkdb.cluster_queries | queries | queries/s |\n| rethinkdb.cluster_documents | reads, writes | documents/s |\n\n### Per database server\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rethinkdb.client_connections | connections | connections |\n| rethinkdb.clients_active | active | clients |\n| rethinkdb.queries | queries | queries/s |\n| rethinkdb.documents | reads, writes | documents/s |\n\n",integration_type:"collector",id:"python.d.plugin-rethinkdbs-RethinkDB",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/rethinkdbs/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"retroshare",monitored_instance:{name:"RetroShare",link:"https://retroshare.cc/",categories:["data-collection.media-streaming-servers"],icon_filename:"retroshare.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["retroshare","p2p"],most_popular:!1},overview:"# RetroShare\n\nPlugin: python.d.plugin\nModule: retroshare\n\n## Overview\n\nThis collector monitors RetroShare statistics such as application bandwidth, peers, and DHT metrics.\n\nIt connects to the RetroShare web interface to gather metrics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector will attempt to connect and detect a RetroShare web interface through http://localhost:9090, even without any configuration.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### RetroShare web interface\n\nRetroShare needs to be configured to enable the RetroShare WEB Interface and allow access from the Netdata host.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/retroshare.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/retroshare.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| url | The URL to the RetroShare Web UI. | http://localhost:9090 | no |\n\n{% /details %}\n#### Examples\n\n##### Local RetroShare Web UI\n\nA basic configuration for a RetroShare server running on localhost.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local retroshare'\n url: 'http://localhost:9090'\n\n```\n{% /details %}\n##### Remote RetroShare Web UI\n\nA basic configuration for a remote RetroShare server.\n\n{% details summary=\"Config\" %}\n```yaml\nremote:\n name: 'remote retroshare'\n url: 'http://1.2.3.4:9090'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `retroshare` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin retroshare debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ retroshare_dht_working ](https://github.com/netdata/netdata/blob/master/src/health/health.d/retroshare.conf) | retroshare.dht | number of DHT peers |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RetroShare instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| retroshare.bandwidth | Upload, Download | kilobits/s |\n| retroshare.peers | All friends, Connected friends | peers |\n| retroshare.dht | DHT nodes estimated, RS nodes estimated | peers |\n\n",integration_type:"collector",id:"python.d.plugin-retroshare-RetroShare",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/retroshare/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"riakkv",monitored_instance:{name:"RiakKV",link:"https://riak.com/products/riak-kv/index.html",categories:["data-collection.database-servers"],icon_filename:"riak.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["database","nosql","big data"],most_popular:!1},overview:"# RiakKV\n\nPlugin: python.d.plugin\nModule: riakkv\n\n## Overview\n\nThis collector monitors RiakKV metrics about throughput, latency, resources and more.'\n\n\nThis collector reads the database stats from the `/stats` endpoint.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf the /stats endpoint is accessible, RiakKV instances on the local host running on port 8098 will be autodetected.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Configure RiakKV to enable /stats endpoint\n\nYou can follow the RiakKV configuration reference documentation for how to enable this.\n\nSource : https://docs.riak.com/riak/kv/2.2.3/configuring/reference/#client-interfaces\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/riakkv.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/riakkv.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| url | The url of the server | no | yes |\n\n{% /details %}\n#### Examples\n\n##### Basic (default)\n\nA basic example configuration per job\n\n```yaml\nlocal:\nurl: 'http://localhost:8098/stats'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocal:\n url: 'http://localhost:8098/stats'\n\nremote:\n url: 'http://192.0.2.1:8098/stats'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `riakkv` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin riakkv debug trace\n ```\n\n",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ riakkv_1h_kv_get_mean_latency ](https://github.com/netdata/netdata/blob/master/src/health/health.d/riakkv.conf) | riak.kv.latency.get | average time between reception of client GET request and subsequent response to client over the last hour |\n| [ riakkv_kv_get_slow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/riakkv.conf) | riak.kv.latency.get | average time between reception of client GET request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour |\n| [ riakkv_1h_kv_put_mean_latency ](https://github.com/netdata/netdata/blob/master/src/health/health.d/riakkv.conf) | riak.kv.latency.put | average time between reception of client PUT request and subsequent response to the client over the last hour |\n| [ riakkv_kv_put_slow ](https://github.com/netdata/netdata/blob/master/src/health/health.d/riakkv.conf) | riak.kv.latency.put | average time between reception of client PUT request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour |\n| [ riakkv_vm_high_process_count ](https://github.com/netdata/netdata/blob/master/src/health/health.d/riakkv.conf) | riak.vm | number of processes running in the Erlang VM |\n| [ riakkv_list_keys_active ](https://github.com/netdata/netdata/blob/master/src/health/health.d/riakkv.conf) | riak.core.fsm_active | number of currently running list keys finite state machines |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RiakKV instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| riak.kv.throughput | gets, puts | operations/s |\n| riak.dt.vnode_updates | counters, sets, maps | operations/s |\n| riak.search | queries | queries/s |\n| riak.search.documents | indexed | documents/s |\n| riak.consistent.operations | gets, puts | operations/s |\n| riak.kv.latency.get | mean, median, 95, 99, 100 | ms |\n| riak.kv.latency.put | mean, median, 95, 99, 100 | ms |\n| riak.dt.latency.counter_merge | mean, median, 95, 99, 100 | ms |\n| riak.dt.latency.set_merge | mean, median, 95, 99, 100 | ms |\n| riak.dt.latency.map_merge | mean, median, 95, 99, 100 | ms |\n| riak.search.latency.query | median, min, 95, 99, 999, max | ms |\n| riak.search.latency.index | median, min, 95, 99, 999, max | ms |\n| riak.consistent.latency.get | mean, median, 95, 99, 100 | ms |\n| riak.consistent.latency.put | mean, median, 95, 99, 100 | ms |\n| riak.vm | processes | total |\n| riak.vm.memory.processes | allocated, used | MB |\n| riak.kv.siblings_encountered.get | mean, median, 95, 99, 100 | siblings |\n| riak.kv.objsize.get | mean, median, 95, 99, 100 | KB |\n| riak.search.vnodeq_size | mean, median, 95, 99, 100 | messages |\n| riak.search.index | errors | errors |\n| riak.core.protobuf_connections | active | connections |\n| riak.core.repairs | read | repairs |\n| riak.core.fsm_active | get, put, secondary index, list keys | fsms |\n| riak.core.fsm_rejected | get, put | fsms |\n| riak.search.index | bad_entry, extract_fail | writes |\n\n",integration_type:"collector",id:"python.d.plugin-riakkv-RiakKV",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/riakkv/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"samba",monitored_instance:{name:"Samba",link:"https://www.samba.org/samba/",categories:["data-collection.storage-mount-points-and-filesystems"],icon_filename:"samba.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["samba","file sharing"],most_popular:!1},overview:"# Samba\n\nPlugin: python.d.plugin\nModule: samba\n\n## Overview\n\nThis collector monitors the performance metrics of Samba file sharing.\n\nIt is using the `smbstatus` command-line tool.\n\nExecuted commands:\n\n- `sudo -n smbstatus -P`\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n`smbstatus` is used, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAfter all the permissions are satisfied, the `smbstatus -P` binary is executed.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Enable the samba collector\n\nThe `samba` collector is disabled by default. To enable it, use `edit-config` from the Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md), which is typically at `/etc/netdata`, to edit the `python.d.conf` file.\n\n```bash\ncd /etc/netdata # Replace this path with your Netdata config directory, if different\nsudo ./edit-config python.d.conf\n```\nChange the value of the `samba` setting to `yes`. Save the file and restart the Netdata Agent with `sudo systemctl restart netdata`, or the [appropriate method](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#maintaining-a-netdata-agent-installation) for your system.\n\n\n#### Permissions and programs\n\nTo run the collector you need:\n\n- `smbstatus` program\n- `sudo` program\n- `smbd` must be compiled with profiling enabled\n- `smbd` must be started either with the `-P 1` option or inside `smb.conf` using `smbd profiling level`\n\nThe module uses `smbstatus`, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password.\n\n- add to your `/etc/sudoers` file:\n\n `which smbstatus` shows the full path to the binary.\n\n ```bash\n netdata ALL=(root) NOPASSWD: /path/to/smbstatus\n ```\n\n- Reset Netdata's systemd unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux distributions with systemd)\n\n The default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `smbstatus` using `sudo`.\n\n\n As the `root` user, do the following:\n\n ```cmd\n mkdir /etc/systemd/system/netdata.service.d\n echo -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\n systemctl daemon-reload\n systemctl restart netdata.service\n ```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/samba.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/samba.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\nmy_job_name:\n name: my_name\n update_every: 1\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `samba` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin samba debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Samba instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| syscall.rw | sendfile, recvfile | KiB/s |\n| smb2.rw | readout, writein, readin, writeout | KiB/s |\n| smb2.create_close | create, close | operations/s |\n| smb2.get_set_info | getinfo, setinfo | operations/s |\n| smb2.find | find | operations/s |\n| smb2.notify | notify | operations/s |\n| smb2.sm_counters | tcon, negprot, tdis, cancel, logoff, flush, lock, keepalive, break, sessetup | count |\n\n",integration_type:"collector",id:"python.d.plugin-samba-Samba",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/samba/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"sensors",monitored_instance:{name:"Linux Sensors (lm-sensors)",link:"https://hwmon.wiki.kernel.org/lm_sensors",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"microchip.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["sensors","temperature","voltage","current","power","fan","energy","humidity"],most_popular:!1},overview:"# Linux Sensors (lm-sensors)\n\nPlugin: python.d.plugin\nModule: sensors\n\n## Overview\n\nExamine Linux Sensors metrics with Netdata for insights into hardware health and performance.\n\nEnhance your system's reliability with real-time hardware health insights.\n\n\nReads system sensors information (temperature, voltage, electric current, power, etc.) via [lm-sensors](https://hwmon.wiki.kernel.org/lm_sensors).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe following type of sensors are auto-detected:\n- temperature - fan - voltage - current - power - energy - humidity\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/sensors.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/sensors.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| types | The types of sensors to collect. | temperature, fan, voltage, current, power, energy, humidity | yes |\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n\n{% /details %}\n#### Examples\n\n##### Default\n\nDefault configuration.\n\n```yaml\ntypes:\n - temperature\n - fan\n - voltage\n - current\n - power\n - energy\n - humidity\n\n```\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `sensors` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin sensors debug trace\n ```\n\n### lm-sensors doesn't work on your device\n\n\n\n### ACPI ring buffer errors are printed\n\n\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per chip\n\nMetrics related to chips. Each chip provides a set of the following metrics, each having the chip name in the metric name as reported by `sensors -u`.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| sensors.temperature | a dimension per sensor | Celsius |\n| sensors.voltage | a dimension per sensor | Volts |\n| sensors.current | a dimension per sensor | Ampere |\n| sensors.power | a dimension per sensor | Watt |\n| sensors.fan | a dimension per sensor | Rotations/min |\n| sensors.energy | a dimension per sensor | Joule |\n| sensors.humidity | a dimension per sensor | Percent |\n\n",integration_type:"collector",id:"python.d.plugin-sensors-Linux_Sensors_(lm-sensors)",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/sensors/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"smartd_log",monitored_instance:{name:"S.M.A.R.T.",link:"https://linux.die.net/man/8/smartd",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"smart.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["smart","S.M.A.R.T.","SCSI devices","ATA devices"],most_popular:!1},overview:"# S.M.A.R.T.\n\nPlugin: python.d.plugin\nModule: smartd_log\n\n## Overview\n\nThis collector monitors HDD/SSD S.M.A.R.T. metrics about drive health and performance.\n\n\nIt reads `smartd` log files to collect the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nUpon satisfying the prerequisites, the collector will auto-detect metrics if written in either `/var/log/smartd/` or `/var/lib/smartmontools/`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Configure `smartd` to write attribute information to files.\n\n`smartd` must be running with `-A` option to write `smartd` attribute information to files.\n\nFor this you need to set `smartd_opts` (or `SMARTD_ARGS`, check _smartd.service_ content) in `/etc/default/smartmontools`:\n\n```\n# dump smartd attrs info every 600 seconds\nsmartd_opts=\"-A /var/log/smartd/ -i 600\"\n```\n\nYou may need to create the smartd directory before smartd will write to it: \n\n```sh\nmkdir -p /var/log/smartd\n```\n\nOtherwise, all the smartd `.csv` files may get written to `/var/lib/smartmontools` (default location). See also <https://linux.die.net/man/8/smartd> for more info on the `-A --attributelog=PREFIX` command.\n\n`smartd` appends logs at every run. It's strongly recommended to use `logrotate` for smartd files.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/smartd_log.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/smartd_log.conf\n```\n#### Options\n\nThis particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| log_path | path to smartd log files. | /var/log/smartd | yes |\n| exclude_disks | Space-separated patterns. If the pattern is in the drive name, the module will not collect data for it. | | no |\n| age | Time in minutes since the last dump to file. | 30 | no |\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\ncustom:\n name: smartd_log\n log_path: '/var/log/smartd/'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `smartd_log` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin smartd_log debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe metrics listed below are split in terms of availability on device type, SCSI or ATA.\n\n### Per S.M.A.R.T. instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | SCSI | ATA |\n|:------|:----------|:----|:---:|:---:|\n| smartd_log.read_error_rate | a dimension per device | value | | \u2022 |\n| smartd_log.seek_error_rate | a dimension per device | value | | \u2022 |\n| smartd_log.soft_read_error_rate | a dimension per device | errors | | \u2022 |\n| smartd_log.write_error_rate | a dimension per device | value | | \u2022 |\n| smartd_log.read_total_err_corrected | a dimension per device | errors | \u2022 | |\n| smartd_log.read_total_unc_errors | a dimension per device | errors | \u2022 | |\n| smartd_log.write_total_err_corrected | a dimension per device | errors | \u2022 | |\n| smartd_log.write_total_unc_errors | a dimension per device | errors | \u2022 | |\n| smartd_log.verify_total_err_corrected | a dimension per device | errors | \u2022 | |\n| smartd_log.verify_total_unc_errors | a dimension per device | errors | \u2022 | |\n| smartd_log.sata_interface_downshift | a dimension per device | events | | \u2022 |\n| smartd_log.udma_crc_error_count | a dimension per device | errors | | \u2022 |\n| smartd_log.throughput_performance | a dimension per device | value | | \u2022 |\n| smartd_log.seek_time_performance | a dimension per device | value | | \u2022 |\n| smartd_log.start_stop_count | a dimension per device | events | | \u2022 |\n| smartd_log.power_on_hours_count | a dimension per device | hours | | \u2022 |\n| smartd_log.power_cycle_count | a dimension per device | events | | \u2022 |\n| smartd_log.unexpected_power_loss | a dimension per device | events | | \u2022 |\n| smartd_log.spin_up_time | a dimension per device | ms | | \u2022 |\n| smartd_log.spin_up_retries | a dimension per device | retries | | \u2022 |\n| smartd_log.calibration_retries | a dimension per device | retries | | \u2022 |\n| smartd_log.airflow_temperature_celsius | a dimension per device | celsius | | \u2022 |\n| smartd_log.temperature_celsius | a dimension per device | celsius | \u2022 | \u2022 |\n| smartd_log.reallocated_sectors_count | a dimension per device | sectors | | \u2022 |\n| smartd_log.reserved_block_count | a dimension per device | percentage | | \u2022 |\n| smartd_log.program_fail_count | a dimension per device | errors | | \u2022 |\n| smartd_log.erase_fail_count | a dimension per device | failures | | \u2022 |\n| smartd_log.wear_leveller_worst_case_erase_count | a dimension per device | erases | | \u2022 |\n| smartd_log.unused_reserved_nand_blocks | a dimension per device | blocks | | \u2022 |\n| smartd_log.reallocation_event_count | a dimension per device | events | | \u2022 |\n| smartd_log.current_pending_sector_count | a dimension per device | sectors | | \u2022 |\n| smartd_log.offline_uncorrectable_sector_count | a dimension per device | sectors | | \u2022 |\n| smartd_log.percent_lifetime_used | a dimension per device | percentage | | \u2022 |\n| smartd_log.media_wearout_indicator | a dimension per device | percentage | | \u2022 |\n| smartd_log.nand_writes_1gib | a dimension per device | GiB | | \u2022 |\n\n",integration_type:"collector",id:"python.d.plugin-smartd_log-S.M.A.R.T.",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/smartd_log/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"spigotmc",monitored_instance:{name:"SpigotMC",link:"",categories:["data-collection.gaming"],icon_filename:"spigot.jfif"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["minecraft server","spigotmc server","spigot"],most_popular:!1},overview:"# SpigotMC\n\nPlugin: python.d.plugin\nModule: spigotmc\n\n## Overview\n\nThis collector monitors SpigotMC server performance, in the form of ticks per second average, memory utilization, and active users.\n\n\nIt sends the `tps`, `list` and `online` commands to the Server, and gathers the metrics from the responses.\n\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will attempt to connect to a Spigot server running on the local host on port `25575`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Enable the Remote Console Protocol\n\nUnder your SpigotMC server\'s `server.properties` configuration file, you should set `enable-rcon` to `true`.\n\nThis will allow the Server to listen and respond to queries over the rcon protocol.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/spigotmc.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/spigotmc.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| host | The host\'s IP to connect to. | localhost | yes |\n| port | The port the remote console is listening on. | 25575 | yes |\n| password | Remote console password if any. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nlocal:\n name: local_server\n url: 127.0.0.1\n port: 25575\n\n```\n##### Basic Authentication\n\nAn example using basic password for authentication with the remote console.\n\n{% details summary="Config" %}\n```yaml\nlocal:\n name: local_server_pass\n url: 127.0.0.1\n port: 25575\n password: \'foobar\'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary="Config" %}\n```yaml\nlocal_server:\n name : my_local_server\n url : 127.0.0.1\n port: 25575\n\nremote_server:\n name : another_remote_server\n url : 192.0.2.1\n port: 25575\n\n```\n{% /details %}\n',troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `spigotmc` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin spigotmc debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per SpigotMC instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| spigotmc.tps | 1 Minute Average, 5 Minute Average, 15 Minute Average | ticks |\n| spigotmc.users | Users | users |\n| spigotmc.mem | used, allocated, max | MiB |\n\n",integration_type:"collector",id:"python.d.plugin-spigotmc-SpigotMC",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/spigotmc/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"squid",monitored_instance:{name:"Squid",link:"http://www.squid-cache.org/",categories:["data-collection.web-servers-and-web-proxies"],icon_filename:"squid.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["squid","web delivery","squid caching proxy"],most_popular:!1},overview:"# Squid\n\nPlugin: python.d.plugin\nModule: squid\n\n## Overview\n\nThis collector monitors statistics about the Squid Clients and Servers, like bandwidth and requests.\n\n\nIt collects metrics from the endpoint where Squid exposes its `counters` data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will try to autodetect where Squid presents its `counters` data, by trying various configurations.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Configure Squid's Cache Manager\n\nTake a look at [Squid's official documentation](https://wiki.squid-cache.org/Features/CacheManager/Index#controlling-access-to-the-cache-manager) on how to configure access to the Cache Manager.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/squid.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/squid.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 1 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | local | no |\n| host | The host to connect to. | | yes |\n| port | The port to connect to. | | yes |\n| request | The URL to request from Squid. | | yes |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nexample_job_name:\n name: 'local'\n host: 'localhost'\n port: 3128\n request: 'cache_object://localhost:3128/counters'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_job:\n name: 'local'\n host: '127.0.0.1'\n port: 3128\n request: 'cache_object://127.0.0.1:3128/counters'\n\nremote_job:\n name: 'remote'\n host: '192.0.2.1'\n port: 3128\n request: 'cache_object://192.0.2.1:3128/counters'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `squid` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin squid debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Squid instance\n\nThese metrics refer to each monitored Squid instance.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| squid.clients_net | in, out, hits | kilobits/s |\n| squid.clients_requests | requests, hits, errors | requests/s |\n| squid.servers_net | in, out | kilobits/s |\n| squid.servers_requests | requests, errors | requests/s |\n\n",integration_type:"collector",id:"python.d.plugin-squid-Squid",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/squid/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"tomcat",monitored_instance:{name:"Tomcat",link:"https://tomcat.apache.org/",categories:["data-collection.web-servers-and-web-proxies"],icon_filename:"tomcat.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["apache","tomcat","webserver","websocket","jakarta","javaEE"],most_popular:!1},overview:"# Tomcat\n\nPlugin: python.d.plugin\nModule: tomcat\n\n## Overview\n\nThis collector monitors Tomcat metrics about bandwidth, processing time, threads and more.\n\n\nIt parses the information provided by the http endpoint of the `/manager/status` in XML format\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nYou need to provide the username and the password, to access the webserver's status page. Create a seperate user with read only rights for this particular endpoint\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf the Netdata Agent and the Tomcat webserver are in the same host, without configuration, module attempts to connect to http://localhost:8080/manager/status?XML=true, without any credentials. So it will probably fail.\n\n#### Limits\n\nThis module is not supporting SSL communication. If you want a Netdata Agent to monitor a Tomcat deployment, you shouldnt try to monitor it via public network (public internet). Credentials are passed by Netdata in an unsecure port\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Create a read-only `netdata` user, to monitor the `/status` endpoint.\n\nThis is necessary for configuring the collector.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/tomcat.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/tomcat.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options per job\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| url | The URL of the Tomcat server's status endpoint. Always add the suffix ?XML=true. | no | yes |\n| user | A valid user with read permission to access the /manager/status endpoint of the server. Required if the endpoint is password protected | no | no |\n| pass | A valid password for the user in question. Required if the endpoint is password protected | no | no |\n| connector_name | The connector component that communicates with a web connector via the AJP protocol, e.g ajp-bio-8009 | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration\n\n```yaml\nlocalhost:\n name : 'local'\n url : 'http://localhost:8080/manager/status?XML=true'\n\n```\n##### Using an IPv4 endpoint\n\nA typical configuration using an IPv4 endpoint\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_ipv4:\n name : 'local'\n url : 'http://127.0.0.1:8080/manager/status?XML=true'\n\n```\n{% /details %}\n##### Using an IPv6 endpoint\n\nA typical configuration using an IPv6 endpoint\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_ipv6:\n name : 'local'\n url : 'http://[::1]:8080/manager/status?XML=true'\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `tomcat` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin tomcat debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Tomcat instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tomcat.accesses | accesses, errors | requests/s |\n| tomcat.bandwidth | sent, received | KiB/s |\n| tomcat.processing_time | processing time | seconds |\n| tomcat.threads | current, busy | current threads |\n| tomcat.jvm | free, eden, survivor, tenured, code cache, compressed, metaspace | MiB |\n| tomcat.jvm_eden | used, committed, max | MiB |\n| tomcat.jvm_survivor | used, committed, max | MiB |\n| tomcat.jvm_tenured | used, committed, max | MiB |\n\n",integration_type:"collector",id:"python.d.plugin-tomcat-Tomcat",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/tomcat/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"tor",monitored_instance:{name:"Tor",link:"https://www.torproject.org/",categories:["data-collection.vpns"],icon_filename:"tor.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["tor","traffic","vpn"],most_popular:!1},overview:"# Tor\n\nPlugin: python.d.plugin\nModule: tor\n\n## Overview\n\nThis collector monitors Tor bandwidth traffic .\n\nIt connects to the Tor control port to collect traffic statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is provided the collector will try to connect to 127.0.0.1:9051 to detect a running tor instance.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Required python module\n\nThe `stem` python library needs to be installed.\n\n\n#### Required Tor configuration\n\nAdd to /etc/tor/torrc:\n\nControlPort 9051\n\nFor more options please read the manual.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/tor.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/tor.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| control_addr | Tor control IP address | 127.0.0.1 | no |\n| control_port | Tor control port. Can be either a tcp port, or a path to a socket file. | 9051 | no |\n| password | Tor control password | | no |\n\n{% /details %}\n#### Examples\n\n##### Local TCP\n\nA basic TCP configuration. `local_addr` is ommited and will default to `127.0.0.1`\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_tcp:\n name: 'local'\n control_port: 9051\n password: <password> # if required\n\n```\n{% /details %}\n##### Local socket\n\nA basic local socket configuration\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_socket:\n name: 'local'\n control_port: '/var/run/tor/control'\n password: <password> # if required\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `tor` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin tor debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Tor instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tor.traffic | read, write | KiB/s |\n\n",integration_type:"collector",id:"python.d.plugin-tor-Tor",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/tor/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"uwsgi",monitored_instance:{name:"uWSGI",link:"https://github.com/unbit/uwsgi/tree/2.0.21",categories:["data-collection.web-servers-and-web-proxies"],icon_filename:"uwsgi.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["application server","python","web applications"],most_popular:!1},overview:"# uWSGI\n\nPlugin: python.d.plugin\nModule: uwsgi\n\n## Overview\n\nThis collector monitors uWSGI metrics about requests, workers, memory and more.\n\nIt collects every metric exposed from the stats server of uWSGI, either from the `stats.socket` or from the web server's TCP/IP socket.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector will auto-detect uWSGI instances deployed on the local host, running on port 1717, or exposing stats on socket `tmp/stats.socket`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Enable the uWSGI Stats server\n\nMake sure that you uWSGI exposes it's metrics via a Stats server.\n\nSource: https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/uwsgi.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/uwsgi.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | The JOB's name as it will appear at the dashboard (by default is the job_name) | job_name | no |\n| socket | The 'path/to/uwsgistats.sock' | no | no |\n| host | The host to connect to | no | no |\n| port | The port to connect to | no | no |\n\n{% /details %}\n#### Examples\n\n##### Basic (default out-of-the-box)\n\nA basic example configuration, one job will run at a time. Autodetect mechanism uses it by default. As all JOBs have the same name, only one can run at a time.\n\n{% details summary=\"Config\" %}\n```yaml\nsocket:\n name : 'local'\n socket : '/tmp/stats.socket'\n\nlocalhost:\n name : 'local'\n host : 'localhost'\n port : 1717\n\nlocalipv4:\n name : 'local'\n host : '127.0.0.1'\n port : 1717\n\nlocalipv6:\n name : 'local'\n host : '::1'\n port : 1717\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocal:\n name : 'local'\n host : 'localhost'\n port : 1717\n\nremote:\n name : 'remote'\n host : '192.0.2.1'\n port : 1717\n\n```\n{% /details %}\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `uwsgi` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin uwsgi debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per uWSGI instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| uwsgi.requests | a dimension per worker | requests/s |\n| uwsgi.tx | a dimension per worker | KiB/s |\n| uwsgi.avg_rt | a dimension per worker | milliseconds |\n| uwsgi.memory_rss | a dimension per worker | MiB |\n| uwsgi.memory_vsz | a dimension per worker | MiB |\n| uwsgi.exceptions | exceptions | exceptions |\n| uwsgi.harakiris | harakiris | harakiris |\n| uwsgi.respawns | respawns | respawns |\n\n",integration_type:"collector",id:"python.d.plugin-uwsgi-uWSGI",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/uwsgi/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"varnish",monitored_instance:{name:"Varnish",link:"https://varnish-cache.org/",categories:["data-collection.web-servers-and-web-proxies"],icon_filename:"varnish.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["varnish","varnishstat","varnishd","cache","web server","web cache"],most_popular:!1},overview:"# Varnish\n\nPlugin: python.d.plugin\nModule: varnish\n\n## Overview\n\nThis collector monitors Varnish metrics about HTTP accelerator global, Backends (VBE) and Storages (SMF, SMA, MSE) statistics.\n\nNote that both, Varnish-Cache (free and open source) and Varnish-Plus (Commercial/Enterprise version), are supported.\n\n\nIt uses the `varnishstat` tool in order to collect the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n`netdata` user must be a member of the `varnish` group.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, if the permissions are satisfied, the `varnishstat` tool will be executed on the host.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Provide the necessary permissions\n\nIn order for the collector to work, you need to add the `netdata` user to the `varnish` user group, so that it can execute the `varnishstat` tool:\n\n```\nusermod -aG varnish netdata\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/varnish.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/varnish.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| instance_name | the name of the varnishd instance to get logs from. If not specified, the local host name is used. | | yes |\n| update_every | Sets the default data collection frequency. | 10 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n```yaml\njob_name:\n instance_name: '<name-of-varnishd-instance>'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `varnish` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin varnish debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Varnish instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| varnish.session_connection | accepted, dropped | connections/s |\n| varnish.client_requests | received | requests/s |\n| varnish.all_time_hit_rate | hit, miss, hitpass | percentage |\n| varnish.current_poll_hit_rate | hit, miss, hitpass | percentage |\n| varnish.cached_objects_expired | objects | expired/s |\n| varnish.cached_objects_nuked | objects | nuked/s |\n| varnish.threads_total | None | number |\n| varnish.threads_statistics | created, failed, limited | threads/s |\n| varnish.threads_queue_len | in queue | requests |\n| varnish.backend_connections | successful, unhealthy, reused, closed, recycled, failed | connections/s |\n| varnish.backend_requests | sent | requests/s |\n| varnish.esi_statistics | errors, warnings | problems/s |\n| varnish.memory_usage | free, allocated | MiB |\n| varnish.uptime | uptime | seconds |\n\n### Per Backend\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| varnish.backend | header, body | kilobits/s |\n\n### Per Storage\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| varnish.storage_usage | free, allocated | KiB |\n| varnish.storage_alloc_objs | allocated | objects |\n\n",integration_type:"collector",id:"python.d.plugin-varnish-Varnish",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/varnish/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"w1sensor",monitored_instance:{name:"1-Wire Sensors",link:"https://www.analog.com/en/product-category/1wire-temperature-sensors.html",categories:["data-collection.hardware-devices-and-sensors"],icon_filename:"1-wire.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["temperature","sensor","1-wire"],most_popular:!1},overview:"# 1-Wire Sensors\n\nPlugin: python.d.plugin\nModule: w1sensor\n\n## Overview\n\nMonitor 1-Wire Sensors metrics with Netdata for optimal environmental conditions monitoring. Enhance your environmental monitoring with real-time insights and alerts.\n\nThe collector uses the wire, w1_gpio, and w1_therm kernel modules. Currently temperature sensors are supported and automatically detected.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector will try to auto detect available 1-Wire devices.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Required Linux kernel modules\n\nMake sure `wire`, `w1_gpio`, and `w1_therm` kernel modules are loaded.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/w1sensor.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/w1sensor.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |\n| name_<1-Wire id> | This allows associating a human readable name with a sensor's 1-Wire identifier. | | no |\n\n{% /details %}\n#### Examples\n\n##### Provide human readable names\n\nAssociate two 1-Wire identifiers with human readable names.\n\n```yaml\nsensors:\n name_00000022276e: 'Machine room'\n name_00000022298f: 'Rack 12'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `w1sensor` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin w1sensor debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per 1-Wire Sensors instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| w1sensor.temp | a dimension per sensor | Celsius |\n\n",integration_type:"collector",id:"python.d.plugin-w1sensor-1-Wire_Sensors",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/w1sensor/metadata.yaml",related_resources:""},{meta:{plugin_name:"python.d.plugin",module_name:"zscores",monitored_instance:{name:"python.d zscores",link:"https://en.wikipedia.org/wiki/Standard_score",categories:["data-collection.other"],icon_filename:""},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["zscore","z-score","standard score","standard deviation","anomaly detection","statistical anomaly detection"],most_popular:!1},overview:"# python.d zscores\n\nPlugin: python.d.plugin\nModule: zscores\n\n## Overview\n\nBy using smoothed, rolling [Z-Scores](https://en.wikipedia.org/wiki/Standard_score) for selected metrics or charts you can narrow down your focus and shorten root cause analysis.\n\n\nThis collector uses the [Netdata rest api](https://github.com/netdata/netdata/blob/master/src/web/api/README.md) to get the `mean` and `stddev`\nfor each dimension on specified charts over a time range (defined by `train_secs` and `offset_secs`).\n\nFor each dimension it will calculate a Z-Score as `z = (x - mean) / stddev` (clipped at `z_clip`). Scores are then smoothed over\ntime (`z_smooth_n`) and, if `mode: 'per_chart'`, aggregated across dimensions to a smoothed, rolling chart level Z-Score at each time step.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\n#### Python Requirements\n\nThis collector will only work with Python 3 and requires the below packages be installed.\n\n```bash\n# become netdata user\nsudo su -s /bin/bash netdata\n# install required packages\npip3 install numpy pandas requests netdata-pandas==0.0.38\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/zscores.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/zscores.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| charts_regex | what charts to pull data for - A regex like `system\\..*/` or `system\\..*/apps.cpu/apps.mem` etc. | system\\..* | yes |\n| train_secs | length of time (in seconds) to base calculations off for mean and stddev. | 14400 | yes |\n| offset_secs | offset (in seconds) preceding latest data to ignore when calculating mean and stddev. | 300 | yes |\n| train_every_n | recalculate the mean and stddev every n steps of the collector. | 900 | yes |\n| z_smooth_n | smooth the z score (to reduce sensitivity to spikes) by averaging it over last n values. | 15 | yes |\n| z_clip | cap absolute value of zscore (before smoothing) for better stability. | 10 | yes |\n| z_abs | set z_abs: 'true' to make all zscores be absolute values only. | true | yes |\n| burn_in | burn in period in which to initially calculate mean and stddev on every step. | 2 | yes |\n| mode | mode can be to get a zscore 'per_dim' or 'per_chart'. | per_chart | yes |\n| per_chart_agg | per_chart_agg is how you aggregate from dimension to chart when mode='per_chart'. | mean | yes |\n| update_every | Sets the default data collection frequency. | 5 | no |\n| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |\n| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |\n\n{% /details %}\n#### Examples\n\n##### Default\n\nDefault configuration.\n\n```yaml\nlocal:\n name: 'local'\n host: '127.0.0.1:19999'\n charts_regex: 'system\\..*'\n charts_to_exclude: 'system.uptime'\n train_secs: 14400\n offset_secs: 300\n train_every_n: 900\n z_smooth_n: 15\n z_clip: 10\n z_abs: 'true'\n burn_in: 2\n mode: 'per_chart'\n per_chart_agg: 'mean'\n\n```\n",troubleshooting:"## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `zscores` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin zscores debug trace\n ```\n\n",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per python.d zscores instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zscores.z | a dimension per chart or dimension | z |\n| zscores.3stddev | a dimension per chart or dimension | count |\n\n",integration_type:"collector",id:"python.d.plugin-zscores-python.d_zscores",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/python.d.plugin/zscores/metadata.yaml",related_resources:""},{meta:{plugin_name:"slabinfo.plugin",module_name:"slabinfo.plugin",monitored_instance:{name:"Linux kernel SLAB allocator statistics",link:"https://kernel.org/",categories:["data-collection.linux-systems.kernel-metrics"],icon_filename:"linuxserver.svg"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:["linux kernel","slab","slub","slob","slabinfo"],most_popular:!1},overview:"# Linux kernel SLAB allocator statistics\n\nPlugin: slabinfo.plugin\nModule: slabinfo.plugin\n\n## Overview\n\nCollects metrics on kernel SLAB cache utilization to monitor the low-level performance impact of workloads in the kernel.\n\n\nThe plugin parses `/proc/slabinfo`\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to `/proc/slabinfo`, which is accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to this file. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions sVko that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nDue to the large number of metrics generated by this integration, it is disabled by default and must be manually enabled inside `/etc/netdata/netdata.conf`\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Minimum setup\n\nIf you installed `netdata` using a package manager, it is also necessary to install the package `netdata-plugin-slabinfo`.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugins]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="The main configuration file." %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| Enable plugin | As described above plugin is disabled by default, this option is used to enable plugin. | no | yes |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nSLAB cache utilization metrics for the whole system.\n\n### Per Linux kernel SLAB allocator statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.slabmemory | a dimension per cache | B |\n| mem.slabfilling | a dimension per cache | % |\n| mem.slabwaste | a dimension per cache | B |\n\n",integration_type:"collector",id:"slabinfo.plugin-slabinfo.plugin-Linux_kernel_SLAB_allocator_statistics",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/slabinfo.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"tc.plugin",module_name:"tc.plugin",monitored_instance:{name:"tc QoS classes",link:"https://wiki.linuxfoundation.org/networking/iproute2",categories:["data-collection.linux-systems.network-metrics"],icon_filename:"netdata.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# tc QoS classes\n\nPlugin: tc.plugin\nModule: tc.plugin\n\n## Overview\n\nExamine tc metrics to gain insights into Linux traffic control operations. Study packet flow rates, queue lengths, and drop rates to optimize network traffic flow.\n\nThe plugin uses `tc` command to collect information about Traffic control.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs to access command `tc` to get the necessary metrics. To achieve this netdata modifies permission of file `/usr/libexec/netdata/plugins.d/tc-qos-helper.sh`.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Create `tc-qos-helper.conf`\n\nIn order to view tc classes, you need to create the file `/etc/netdata/tc-qos-helper.conf` with content:\n\n```conf\ntc_show="class"\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:tc]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config option" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| script to run to get tc values | Path to script `tc-qos-helper.sh` | usr/libexec/netdata/plugins.d/tc-qos-helper.s | no |\n| enable show all classes and qdiscs for all interfaces | yes/no flag to control what data is presented. | yes | no |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration using classes defined in `/etc/iproute2/tc_cls`.\n\nAn example of class IDs mapped to names in that file can be:\n\n```conf\n2:1 Standard\n2:8 LowPriorityData\n2:10 HighThroughputData\n2:16 OAM\n2:18 LowLatencyData\n2:24 BroadcastVideo\n2:26 MultimediaStreaming\n2:32 RealTimeInteractive\n2:34 MultimediaConferencing\n2:40 Signalling\n2:46 Telephony\n2:48 NetworkControl\n```\n\nYou can read more about setting up the tc rules in rc.local in this [GitHub issue](https://github.com/netdata/netdata/issues/4563#issuecomment-455711973).\n\n\n```yaml\n[plugin:tc]\n script to run to get tc values = /usr/libexec/netdata/plugins.d/tc-qos-helper.sh\n enable show all classes and qdiscs for all interfaces = yes\n\n```\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per network device direction\n\nMetrics related to QoS network device directions. Each direction (in/out) produces its own set of the following metrics.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | The network interface. |\n| device_name | The network interface name |\n| group | The device family |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tc.qos | a dimension per class | kilobits/s |\n| tc.qos_packets | a dimension per class | packets/s |\n| tc.qos_dropped | a dimension per class | packets/s |\n| tc.qos_tokens | a dimension per class | tokens |\n| tc.qos_ctokens | a dimension per class | ctokens |\n\n",integration_type:"collector",id:"tc.plugin-tc.plugin-tc_QoS_classes",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/tc.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"timex.plugin",module_name:"timex.plugin",monitored_instance:{name:"Timex",link:"",categories:["data-collection.system-clock-and-ntp"],icon_filename:"syslog.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# Timex\n\nPlugin: timex.plugin\nModule: timex.plugin\n\n## Overview\n\nExamine Timex metrics to gain insights into system clock operations. Study time sync status, clock drift, and adjustments to ensure accurate system timekeeping.\n\nIt uses system call adjtimex on Linux and ntp_adjtime on FreeBSD or Mac to monitor the system kernel clock synchronization state.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:"## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:timex]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nAt least one option ('clock synchronization state', 'time offset') needs to be enabled for this collector to run.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n| clock synchronization state | Make chart showing system clock synchronization state. | yes | yes |\n| time offset | Make chart showing computed time offset between local system and reference clock | yes | yes |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n{% details summary=\"Config\" %}\n```yaml\n[plugin:timex]\n update every = 1\n clock synchronization state = yes\n time offset = yes\n\n```\n{% /details %}\n",troubleshooting:"",alerts:"## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ system_clock_sync_state ](https://github.com/netdata/netdata/blob/master/src/health/health.d/timex.conf) | system.clock_sync_state | when set to 0, the system kernel believes the system clock is not properly synchronized to a reliable server |\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Timex instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.clock_sync_state | state | state |\n| system.clock_status | unsync, clockerr | status |\n| system.clock_sync_offset | offset | milliseconds |\n\n",integration_type:"collector",id:"timex.plugin-timex.plugin-Timex",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/timex.plugin/metadata.yaml",related_resources:""},{meta:{plugin_name:"xenstat.plugin",module_name:"xenstat.plugin",monitored_instance:{name:"Xen XCP-ng",link:"https://xenproject.org/",categories:["data-collection.containers-and-vms"],icon_filename:"xen.png"},related_resources:{integrations:{list:[]}},info_provided_to_referring_integrations:{description:""},keywords:[],most_popular:!1},overview:"# Xen XCP-ng\n\nPlugin: xenstat.plugin\nModule: xenstat.plugin\n\n## Overview\n\nThis collector monitors XenServer and XCP-ng host and domains statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis plugin requires the `xen-dom0-libs-devel` and `yajl-devel` libraries to be installed.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n",setup:'## Setup\n\n### Prerequisites\n\n#### Libraries\n\n1. Install `xen-dom0-libs-devel` and `yajl-devel` using the package manager of your system.\n\n Note: On Cent-OS systems you will need `centos-release-xen` repository and the required package for xen is `xen-devel`\n\n2. Re-install Netdata from source. The installer will detect that the required libraries are now available and will also build xenstat.plugin.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:xenstat]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```ini\n[section1]\n option1 = some value\n option2 = some other value\n\n[section2]\n option3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | 1 | no |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n',troubleshooting:"",alerts:"## Alerts\n\nThere are no alerts configured by default for this integration.\n",metrics:"## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Xen XCP-ng instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xenstat.mem | free, used | MiB |\n| xenstat.domains | domains | domains |\n| xenstat.cpus | cpus | cpus |\n| xenstat.cpu_freq | frequency | MHz |\n\n### Per xendomain\n\nMetrics related to Xen domains. Each domain provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xendomain.states | running, blocked, paused, shutdown, crashed, dying | boolean |\n| xendomain.cpu | used | percentage |\n| xendomain.mem | maximum, current | MiB |\n| xendomain.vcpu | a dimension per vcpu | percentage |\n\n### Per xendomain vbd\n\nMetrics related to Xen domain Virtual Block Device. Each VBD provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xendomain.oo_req_vbd | requests | requests/s |\n| xendomain.requests_vbd | read, write | requests/s |\n| xendomain.sectors_vbd | read, write | sectors/s |\n\n### Per xendomain network\n\nMetrics related to Xen domain network interfaces. Each network interface provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xendomain.bytes_network | received, sent | kilobits/s |\n| xendomain.packets_network | received, sent | packets/s |\n| xendomain.errors_network | received, sent | errors/s |\n| xendomain.drops_network | received, sent | drops/s |\n\n",integration_type:"collector",id:"xenstat.plugin-xenstat.plugin-Xen_XCP-ng",edit_link:"https://github.com/netdata/netdata/blob/master/src/collectors/xenstat.plugin/metadata.yaml",related_resources:""},{id:"deploy-alpinelinux",meta:{name:"Alpine Linux",link:"https://www.alpinelinux.org/",categories:["deploy.operating-systems"],icon_filename:"alpine.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-amazonlinux",meta:{name:"Amazon Linux",link:"https://aws.amazon.com/amazon-linux-2/",categories:["deploy.operating-systems"],icon_filename:"amazonlinux.png"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 2 | Core | x86_64, aarch64 | |\n| 2023 | Core | x86_64, aarch64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-archlinux",meta:{name:"Arch Linux",link:"https://archlinux.org/",categories:["deploy.operating-systems"],icon_filename:"archlinux.png"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| latest | Intermediate | | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-centos",meta:{name:"CentOS",link:"https://www.centos.org/",categories:["deploy.operating-systems"],icon_filename:"centos.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 7 | Core | x86_64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-centos-stream",meta:{name:"CentOS Stream",link:"https://www.centos.org/centos-stream",categories:["deploy.operating-systems"],icon_filename:"centos.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 9 | Community | x86_64, aarch64 | |\n| 8 | Community | x86_64, aarch64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-debian",meta:{name:"Debian",link:"https://www.debian.org/",categories:["deploy.operating-systems"],icon_filename:"debian.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 12 | Core | i386, amd64, armhf, arm64 | |\n| 11 | Core | i386, amd64, armhf, arm64 | |\n| 10 | Core | i386, amd64, armhf, arm64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-docker",meta:{name:"Docker",link:"https://www.docker.com/",categories:["deploy.docker-kubernetes"],icon_filename:"docker.svg"},most_popular:!0,keywords:["docker","container","containers"],install_description:"Install and connect new Docker containers\nFind the commands for `docker run`, `docker compose` or `Docker Swarm`. On the last two you can copy the configs, then run `docker-compose up -d` in the same directory as the `docker-compose.yml`\n\n> Netdata container requires different privileges and mounts to provide functionality similar to that provided by Netdata installed on the host. More info [here](https://learn.netdata.cloud/docs/installing/docker?_gl=1*f2xcnf*_ga*MTI1MTUwMzU0OS4xNjg2NjM1MDA1*_ga_J69Z2JCTFB*MTY5MDMxMDIyMS40MS4xLjE2OTAzMTAzNjkuNTguMC4w#create-a-new-netdata-agent-container)\n> Netdata will use the hostname from the container in which it is run instead of that of the host system. To change the default hostname check [here](https://learn.netdata.cloud/docs/agent/packaging/docker?_gl=1*i5weve*_ga*MTI1MTUwMzU0OS4xNjg2NjM1MDA1*_ga_J69Z2JCTFB*MTY5MDMxMjM4Ny40Mi4xLjE2OTAzMTIzOTAuNTcuMC4w#change-the-default-hostname)\n",methods:[{method:"Docker CLI",commands:[{channel:"nightly",command:"docker run -d --name=netdata \\\n--pid=host \\\n--network=host \\\n-v netdataconfig:/etc/netdata \\\n-v netdatalib:/var/lib/netdata \\\n-v netdatacache:/var/cache/netdata \\\n-v /etc/passwd:/host/etc/passwd:ro \\\n-v /etc/group:/host/etc/group:ro \\\n-v /etc/localtime:/etc/localtime:ro \\\n-v /proc:/host/proc:ro \\\n-v /sys:/host/sys:ro \\\n-v /etc/os-release:/host/etc/os-release:ro \\\n-v /var/log:/host/var/log:ro \\\n-v /var/run/docker.sock:/var/run/docker.sock:ro \\\n--restart unless-stopped \\\n--cap-add SYS_PTRACE \\\n--cap-add SYS_ADMIN \\\n--security-opt apparmor=unconfined \\\n{% if $showClaimingOptions %}\n-e NETDATA_CLAIM_TOKEN={% claim_token %} \\\n-e NETDATA_CLAIM_URL={% claim_url %} \\\n-e NETDATA_CLAIM_ROOMS={% $claim_rooms %} \\\n{% /if %}\nnetdata/netdata:edge\n"},{channel:"stable",command:"docker run -d --name=netdata \\\n--pid=host \\\n--network=host \\\n-v netdataconfig:/etc/netdata \\\n-v netdatalib:/var/lib/netdata \\\n-v netdatacache:/var/cache/netdata \\\n-v /etc/passwd:/host/etc/passwd:ro \\\n-v /etc/group:/host/etc/group:ro \\\n-v /etc/localtime:/etc/localtime:ro \\\n-v /proc:/host/proc:ro \\\n-v /sys:/host/sys:ro \\\n-v /etc/os-release:/host/etc/os-release:ro \\\n-v /var/log:/host/var/log:ro \\\n-v /var/run/docker.sock:/var/run/docker.sock:ro \\\n--restart unless-stopped \\\n--cap-add SYS_PTRACE \\\n--cap-add SYS_ADMIN \\\n--security-opt apparmor=unconfined \\\n{% if $showClaimingOptions %}\n-e NETDATA_CLAIM_TOKEN={% claim_token %} \\\n-e NETDATA_CLAIM_URL={% claim_url %} \\\n-e NETDATA_CLAIM_ROOMS={% $claim_rooms %} \\\n{% /if %}\nnetdata/netdata:stable\n"}]},{method:"Docker Compose",commands:[{channel:"nightly",command:"version: '3'\nservices:\n netdata:\n image: netdata/netdata:edge\n container_name: netdata\n pid: host\n network_mode: host\n restart: unless-stopped\n cap_add:\n - SYS_PTRACE\n - SYS_ADMIN\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /etc/localtime:/etc/localtime:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /var/log:/host/var/log:ro\n - /var/run/docker.sock:/var/run/docker.sock:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"},{channel:"stable",command:"version: '3'\nservices:\n netdata:\n image: netdata/netdata:stable\n container_name: netdata\n pid: host\n network_mode: host\n restart: unless-stopped\n cap_add:\n - SYS_PTRACE\n - SYS_ADMIN\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /etc/localtime:/etc/localtime:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /var/log:/host/var/log:ro\n - /var/run/docker.sock:/var/run/docker.sock:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"}]},{method:"Docker Swarm",commands:[{channel:"nightly",command:"version: '3'\nservices:\n netdata:\n image: netdata/netdata:edge\n pid: host\n network_mode: host\n cap_add:\n - SYS_PTRACE\n - SYS_ADMIN\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /etc/localtime:/etc/localtime:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /etc/hostname:/etc/hostname:ro\n - /var/log:/host/var/log:ro\n - /var/run/docker.sock:/var/run/docker.sock:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\n deploy:\n mode: global\n restart_policy:\n condition: on-failure\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"},{channel:"stable",command:"version: '3'\nservices:\n netdata:\n image: netdata/netdata:stable\n pid: host\n network_mode: host\n cap_add:\n - SYS_PTRACE\n - SYS_ADMIN\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /etc/localtime:/etc/localtime:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /etc/hostname:/etc/hostname:ro\n - /var/log:/host/var/log:ro\n - /var/run/docker.sock:/var/run/docker.sock:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\n deploy:\n mode: global\n restart_policy:\n condition: on-failure\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"}]}],additional_info:"",related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 19.03 or newer | Core | linux/i386, linux/amd64, linux/arm/v7, linux/arm64, linux/ppc64le | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:3,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-fedora",meta:{name:"Fedora",link:"https://www.fedoraproject.org/",categories:["deploy.operating-systems"],icon_filename:"fedora.png"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 39 | Core | x86_64, aarch64 | |\n| 38 | Core | x86_64, aarch64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-freebsd",meta:{name:"FreeBSD",link:"https://www.freebsd.org/",categories:["deploy.operating-systems"],icon_filename:"freebsd.svg"},most_popular:!0,keywords:["freebsd"],install_description:"## Install dependencies\nPlease install the following packages using the command below:\n\n```pkg install bash e2fsprogs-libuuid git curl autoconf automake pkgconf pidof liblz4 libuv json-c cmake gmake```\nThis step needs root privileges. Please respond in the affirmative for any relevant prompts during the installation process.\n\nRun the following command on your node to install and claim Netdata:\n",methods:[{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"fetch",commands:[{channel:"nightly",command:"fetch -o /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"fetch -o /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:"Netdata can also be installed via [FreeBSD ports](https://www.freshports.org/net-mgmt/netdata).\n",related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 13-STABLE | Community | | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:6,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-kubernetes",meta:{name:"Kubernetes (Helm)",link:"",categories:["deploy.docker-kubernetes"],icon_filename:"kubernetes.svg"},keywords:["kubernetes","container","Orchestrator"],install_description:"**Use helm install to install Netdata on your Kubernetes cluster**\nFor a new installation use `helm install` or for existing clusters add the content below to your `override.yaml` and then run `helm upgrade -f override.yml netdata netdata/netdata`\n",methods:[{method:"Helm",commands:[{channel:"nightly",command:'helm install netdata netdata/netdata \\\n--set image.tag=edge{% if $showClaimingOptions %} \\\n--set parent.claiming.enabled="true" \\\n--set parent.claiming.token={% claim_token %} \\\n--set parent.claiming.rooms={% $claim_rooms %} \\\n--set child.claiming.enabled="true" \\\n--set child.claiming.token={% claim_token %} \\\n--set child.claiming.rooms={% $claim_rooms %}{% /if %}\n'},{channel:"stable",command:'helm install netdata netdata/netdata \\\n--set image.tag=stable{% if $showClaimingOptions %} \\\n--set parent.claiming.enabled="true" \\\n--set parent.claiming.token={% claim_token %} \\\n--set parent.claiming.rooms={% $claim_rooms %} \\\n--set child.claiming.enabled="true" \\\n--set child.claiming.token={% claim_token %} \\\n--set child.claiming.rooms={% $claim_rooms %}{% /if %}\n'}]},{method:"Existing Cluster",commands:[{channel:"nightly",command:"image:\n tag: edge\n\nrestarter:\n enabled: true\n{% if $showClaimingOptions %}\n\nparent:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n\nchild:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n{% /if %}\n"},{channel:"stable",command:"image:\n tag: stable\n\nrestarter:\n enabled: true\n{% if $showClaimingOptions %}\n\nparent:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n\nchild:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n{% /if %}\n"}]}],additional_info:"",related_resources:{},most_popular:!0,platform_info:"\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:4,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-linux-generic",meta:{name:"Linux",link:"",categories:["deploy.operating-systems"],icon_filename:"linux.svg"},keywords:["linux"],most_popular:!0,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-macos",meta:{name:"macOS",link:"",categories:["deploy.operating-systems"],icon_filename:"macos.svg"},most_popular:!0,keywords:["macOS","mac","apple"],install_description:"Run the following command on your Intel based OSX, macOS servers to install and claim Netdata:",methods:[{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 13 | Community | | |\n| 12 | Community | | |\n| 11 | Community | | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:5,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-manjarolinux",meta:{name:"Manjaro Linux",link:"https://manjaro.org/",categories:["deploy.operating-systems"],icon_filename:"manjaro.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| latest | Intermediate | | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-opensuse",meta:{name:"SUSE Linux",link:"https://www.suse.com/",categories:["deploy.operating-systems"],icon_filename:"openSUSE.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 15.5 | Core | x86_64, aarch64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-oraclelinux",meta:{name:"Oracle Linux",link:"https://www.oracle.com/linux/",categories:["deploy.operating-systems"],icon_filename:"oraclelinux.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 8 | Core | x86_64, aarch64 | |\n| 9 | Core | x86_64, aarch64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-rhel",meta:{name:"Red Hat Enterprise Linux",link:"https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux",categories:["deploy.operating-systems"],icon_filename:"rhel.png"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 9.x | Core | x86_64, aarch64 | |\n| 8.x | Core | x86_64, aarch64 | |\n| 7.x | Core | x86_64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-rockylinux",meta:{name:"Rocky Linux",link:"https://rockylinux.org/",categories:["deploy.operating-systems"],icon_filename:"rocky.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 9 | Core | x86_64, aarch64 | |\n| 8 | Core | x86_64, aarch64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-ubuntu",meta:{name:"Ubuntu",link:"https://ubuntu.com/",categories:["deploy.operating-systems"],icon_filename:"ubuntu.svg"},keywords:["linux"],most_popular:!1,install_description:"Run the following command on your node to install and claim Netdata:",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:'Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?\n',related_resources:{},platform_info:"We build native packages for the following releases:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 22.04 | Core | amd64, armhf, arm64 | |\n| 23.10 | Core | amd64, armhf, arm64 | |\n| 20.04 | Core | amd64, armhf, arm64 | |\n\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:-1,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"deploy-windows",meta:{name:"Windows",link:"https://www.microsoft.com/en-us/windows",categories:["deploy.operating-systems"],icon_filename:"windows.svg"},keywords:["windows"],install_description:"1. Install [Windows Exporter](https://github.com/prometheus-community/windows_exporter) on every Windows host you want to monitor.\n2. Install Netdata agent on Linux, FreeBSD or Mac.\n3. Configure Netdata to collect data remotely from your Windows hosts by adding one job per host to windows.conf file. See the [configuration section](https://learn.netdata.cloud/docs/data-collection/monitor-anything/System%20Metrics/Windows-machines#configuration) for details.\n4. Enable [virtual nodes](https://learn.netdata.cloud/docs/data-collection/windows-systems#virtual-nodes) configuration so the windows nodes are displayed as separate nodes.\n",methods:[{method:"wget",commands:[{channel:"nightly",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]},{method:"curl",commands:[{channel:"nightly",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"},{channel:"stable",command:"curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}],additional_info:"",related_resources:{},most_popular:!0,platform_info:"\nOn other releases of this distribution, a static binary will be installed in `/opt/netdata`.",quick_start:2,integration_type:"deploy",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"},{id:"export-appoptics",meta:{name:"AppOptics",link:"https://www.solarwinds.com/appoptics",categories:["export"],icon_filename:"solarwinds.svg",keywords:["app optics","AppOptics","Solarwinds"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# AppOptics\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-aws-kinesis",meta:{name:"AWS Kinesis",link:"https://aws.amazon.com/kinesis/",categories:["export"],icon_filename:"aws-kinesis.svg"},keywords:["exporter","AWS","Kinesis"],overview:"# AWS Kinesis\n\nExport metrics to AWS Kinesis Data Streams\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- First [install](https://docs.aws.amazon.com/en_us/sdk-for-cpp/v1/developer-guide/setup.html) AWS SDK for C++\n- Here are the instructions when building from source, to ensure 3rd party dependencies are installed:\n ```bash\n git clone --recursive https://github.com/aws/aws-sdk-cpp.git\n cd aws-sdk-cpp/\n git submodule update --init --recursive\n mkdir BUILT\n cd BUILT\n cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_ONLY=kinesis ..\n make\n make install\n ```\n- `libcrypto`, `libssl`, and `libcurl` are also required to compile Netdata with Kinesis support enabled.\n- Next, Netdata should be re-installed from the source. The installer will detect that the required libraries are now available.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nNetdata automatically computes a partition key for every record with the purpose to distribute records across available shards evenly.\nThe following options can be defined for this exporter.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | Netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 2 * update_every * 1000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[kinesis:my_instance]\n enabled = yes\n destination = us-east-1\n\n```\n##### Configuration with AWS credentials\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[kinesis:my_instance]\n enabled = yes\n destination = us-east-1\n # AWS credentials\n aws_access_key_id = your_access_key_id\n aws_secret_access_key = your_secret_access_key\n # destination stream\n stream name = your_stream_name\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/aws_kinesis/metadata.yaml",troubleshooting:""},{id:"export-azure-data",meta:{name:"Azure Data Explorer",link:"https://azure.microsoft.com/en-us/pricing/details/data-explorer/",categories:["export"],icon_filename:"azuredataex.jpg",keywords:["Azure Data Explorer","Azure"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Azure Data Explorer\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-azure-event",meta:{name:"Azure Event Hub",link:"https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about",categories:["export"],icon_filename:"azureeventhub.png",keywords:["Azure Event Hub","Azure"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Azure Event Hub\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-bigquery",meta:{name:"Google BigQuery",link:"https://cloud.google.com/bigquery/",categories:["export"],icon_filename:"bigquery.png",keywords:["export","Google BigQuery","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Google BigQuery\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-blueflood",meta:{name:"Blueflood",link:"http://blueflood.io/",categories:["export"],icon_filename:"blueflood.png",keywords:["export","Blueflood","graphite"]},keywords:["exporter","graphite","remote write","time series"],overview:"# Blueflood\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/graphite/metadata.yaml",troubleshooting:""},{id:"export-chronix",meta:{name:"Chronix",link:"https://dbdb.io/db/chronix",categories:["export"],icon_filename:"chronix.png",keywords:["export","chronix","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Chronix\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-cortex",meta:{name:"Cortex",link:"https://cortexmetrics.io/",categories:["export"],icon_filename:"cortex.png",keywords:["export","cortex","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Cortex\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-crate",meta:{name:"CrateDB",link:"https://crate.io/",categories:["export"],icon_filename:"crate.svg",keywords:["export","CrateDB","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# CrateDB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-elastic",meta:{name:"ElasticSearch",link:"https://www.elastic.co/",categories:["export"],icon_filename:"elasticsearch.svg",keywords:["export","ElasticSearch","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# ElasticSearch\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-gnocchi",meta:{name:"Gnocchi",link:"https://wiki.openstack.org/wiki/Gnocchi",categories:["export"],icon_filename:"gnocchi.svg",keywords:["export","Gnocchi","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Gnocchi\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-google-pubsub",meta:{name:"Google Cloud Pub Sub",link:"https://cloud.google.com/pubsub",categories:["export"],icon_filename:"pubsub.png"},keywords:["exporter","Google Cloud","Pub Sub"],overview:"# Google Cloud Pub Sub\n\nExport metrics to Google Cloud Pub/Sub Service\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- First [install](https://github.com/googleapis/google-cloud-cpp/) install Google Cloud Platform C++ Client Libraries\n- Pub/Sub support is also dependent on the dependencies of those libraries, like `protobuf`, `protoc`, and `grpc`\n- Next, Netdata should be re-installed from the source. The installer will detect that the required libraries are now available.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | pubsub.googleapis.com | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | Netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 2 * update_every * 1000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = pubsub.googleapis.com\n ```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Basic configuration\n\n- Set the destination option to a Pub/Sub service endpoint. pubsub.googleapis.com is the default one.\n- Create the credentials JSON file by following Google Cloud\'s authentication guide.\n- The user running the Agent (typically netdata) needs read access to google_cloud_credentials.json, which you can set\n `chmod 400 google_cloud_credentials.json; chown netdata google_cloud_credentials.json`\n- Set the credentials file option to the full path of the file.\n\n\n```yaml\n[pubsub:my_instance]\n enabled = yes\n destination = pubsub.googleapis.com\n credentials file = /etc/netdata/google_cloud_credentials.json\n project id = my_project\n topic id = my_topic\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/pubsub/metadata.yaml",troubleshooting:""},{id:"export-graphite",meta:{name:"Graphite",link:"https://graphite.readthedocs.io/en/latest/",categories:["export"],icon_filename:"graphite.png"},keywords:["exporter","graphite","remote write","time series"],overview:"# Graphite\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/graphite/metadata.yaml",troubleshooting:""},{id:"export-influxdb",meta:{name:"InfluxDB",link:"https://www.influxdata.com/",categories:["export"],icon_filename:"influxdb.svg",keywords:["InfluxDB","Influx","export","graphite"]},keywords:["exporter","graphite","remote write","time series"],overview:"# InfluxDB\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/graphite/metadata.yaml",troubleshooting:""},{id:"export-irondb",meta:{name:"IRONdb",link:"https://docs.circonus.com/irondb/",categories:["export"],icon_filename:"irondb.png",keywords:["export","IRONdb","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# IRONdb\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-json",meta:{name:"JSON",link:"https://learn.netdata.cloud/docs/exporting/json-document-databases",categories:["export"],icon_filename:"json.svg"},keywords:["exporter","json"],overview:"# JSON\n\nUse the JSON connector for the exporting engine to archive your agent's metrics to JSON document databases for long-term storage,\nfurther analysis, or correlation with data from other sources\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | pubsub.googleapis.com | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | Netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 2 * update_every * 1000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = localhost:5448\n ```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Basic configuration\n\n\n\n```yaml\n[json:my_json_instance]\n enabled = yes\n destination = localhost:5448\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `json:https:my_json_instance`.\n\n```yaml\n[json:my_json_instance]\n enabled = yes\n destination = localhost:5448\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/json/metadata.yaml",troubleshooting:""},{id:"export-kafka",meta:{name:"Kafka",link:"https://kafka.apache.org/",categories:["export"],icon_filename:"kafka.svg",keywords:["export","Kafka","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Kafka\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-kairosdb",meta:{name:"KairosDB",link:"https://kairosdb.github.io/",categories:["export"],icon_filename:"kairos.png",keywords:["KairosDB","kairos","export","graphite"]},keywords:["exporter","graphite","remote write","time series"],overview:"# KairosDB\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/graphite/metadata.yaml",troubleshooting:""},{id:"export-m3db",meta:{name:"M3DB",link:"https://m3db.io/",categories:["export"],icon_filename:"m3db.png",keywords:["export","M3DB","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# M3DB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-metricfire",meta:{name:"MetricFire",link:"https://www.metricfire.com/",categories:["export"],icon_filename:"metricfire.png",keywords:["export","MetricFire","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# MetricFire\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-mongodb",meta:{name:"MongoDB",link:"https://www.mongodb.com/",categories:["export"],icon_filename:"mongodb.svg"},keywords:["exporter","MongoDB"],overview:"# MongoDB\n\nUse the MongoDB connector for the exporting engine to archive your agent's metrics to a MongoDB database\nfor long-term storage, further analysis, or correlation with data from other sources.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- To use MongoDB as an external storage for long-term archiving, you should first [install](http://mongoc.org/libmongoc/current/installing.html) libmongoc 1.7.0 or higher.\n- Next, re-install Netdata from the source, which detects that the required library is now available.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | localhost | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | Netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 2 * update_every * 1000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:27017 10.11.14.3:4242 10.11.14.4:27017\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Basic configuration\n\nThe default socket timeout depends on the exporting connector update interval.\nThe timeout is 500 ms shorter than the interval (but not less than 1000 ms). You can alter the timeout using the sockettimeoutms MongoDB URI option.\n\n\n```yaml\n[mongodb:my_instance]\n enabled = yes\n destination = mongodb://<hostname>\n database = your_database_name\n collection = your_collection_name\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/mongodb/metadata.yaml",troubleshooting:""},{id:"export-newrelic",meta:{name:"New Relic",link:"https://newrelic.com/",categories:["export"],icon_filename:"newrelic.svg",keywords:["export","NewRelic","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# New Relic\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-opentsdb",meta:{name:"OpenTSDB",link:"https://github.com/OpenTSDB/opentsdb",categories:["export"],icon_filename:"opentsdb.png"},keywords:["exporter","OpenTSDB","scalable time series"],overview:"# OpenTSDB\n\nUse the OpenTSDB connector for the exporting engine to archive your Netdata metrics to OpenTSDB databases for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- OpenTSDB and Netdata, installed, configured and operational.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | Netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 2 * update_every * 1000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to OpenTSDB. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used (opentsdb = 4242).\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Minimal configuration\n\nAdd `:http` or `:https` modifiers to the connector type if you need to use other than a plaintext protocol.\nFor example: `opentsdb:http:my_opentsdb_instance`, `opentsdb:https:my_opentsdb_instance`.\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n\n```\n##### HTTP authentication\n\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n username = my_username\n password = my_password\n\n```\n##### Using `send hosts matching`\n\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n send hosts matching = localhost *\n\n```\n##### Using `send charts matching`\n\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n send charts matching = *\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/opentsdb/metadata.yaml",troubleshooting:""},{id:"export-pgsql",meta:{name:"PostgreSQL",link:"https://www.postgresql.org/",categories:["export"],icon_filename:"postgres.svg",keywords:["export","PostgreSQL","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# PostgreSQL\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-prometheus-remote",meta:{name:"Prometheus Remote Write",link:"https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage",categories:["export"],icon_filename:"prometheus.svg"},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Prometheus Remote Write\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-quasar",meta:{name:"QuasarDB",link:"https://doc.quasar.ai/master/",categories:["export"],icon_filename:"quasar.jpeg",keywords:["export","quasar","quasarDB","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# QuasarDB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-splunk",meta:{name:"Splunk SignalFx",link:"https://www.splunk.com/en_us/products/observability.html",categories:["export"],icon_filename:"splunk.svg",keywords:["export","splunk","signalfx","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Splunk SignalFx\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-thanos",meta:{name:"Thanos",link:"https://thanos.io/",categories:["export"],icon_filename:"thanos.png",keywords:["export","thanos","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Thanos\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-tikv",meta:{name:"TiKV",link:"https://tikv.org/",categories:["export"],icon_filename:"tikv.png",keywords:["export","TiKV","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# TiKV\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-timescaledb",meta:{name:"TimescaleDB",link:"https://www.timescale.com/",categories:["export"],icon_filename:"timescale.png",keywords:["export","TimescaleDB","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# TimescaleDB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-victoria",meta:{name:"VictoriaMetrics",link:"https://victoriametrics.com/products/open-source/",categories:["export"],icon_filename:"victoriametrics.png",keywords:["export","victoriametrics","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# VictoriaMetrics\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-vmware",meta:{name:"VMware Aria",link:"https://www.vmware.com/products/aria-operations-for-applications.html",categories:["export"],icon_filename:"aria.png",keywords:["export","VMware","Aria","Tanzu","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# VMware Aria\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"export-wavefront",meta:{name:"Wavefront",link:"https://docs.wavefront.com/wavefront_data_ingestion.html",categories:["export"],icon_filename:"wavefront.png",keywords:["export","Wavefront","prometheus","remote write"]},keywords:["exporter","Prometheus","remote write","time series"],overview:"# Wavefront\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary="Config options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes/no). | no | yes |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes |\n| username | Username for HTTP authentication | my_username | no |\n| password | Password for HTTP authentication | my_password | no |\n| data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no |\n| hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no |\n| prefix | The prefix to add to all metrics. | netdata | no |\n| update every | Frequency of sending sending data to the external database, in seconds. | 10 | no |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes/no). | | no |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n',integration_type:"exporter",edit_link:"https://github.com/netdata/netdata/blob/master/src/exporting/prometheus/metadata.yaml",troubleshooting:""},{id:"notify-alerta",meta:{name:"Alerta",link:"https://alerta.io/",categories:["notify.agent"],icon_filename:"alerta.png"},keywords:["Alerta"],overview:"# Alerta\n\nThe [Alerta](https://alerta.io/) monitoring system is a tool used to consolidate and de-duplicate alerts from multiple sources for quick \u2018at-a-glance\u2019 visualization. With just one system you can monitor alerts from many other monitoring tools on a single screen.\nYou can send Netdata alerts to Alerta to see alerts coming from many Netdata hosts or also from a multi-host Netdata configuration.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- A working Alerta instance\n- An Alerta API key (if authentication in Alerta is enabled)\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_ALERTA | Set `SEND_ALERTA` to YES | | yes |\n| ALERTA_WEBHOOK_URL | set `ALERTA_WEBHOOK_URL` to the API url you defined when you installed the Alerta server. | | yes |\n| ALERTA_API_KEY | Set `ALERTA_API_KEY` to your API key. | | yes |\n| DEFAULT_RECIPIENT_ALERTA | Set `DEFAULT_RECIPIENT_ALERTA` to the default recipient environment you want the alert notifications to be sent to. All roles will default to this variable if left unconfigured. | | yes |\n| DEFAULT_RECIPIENT_CUSTOM | Set different recipient environments per role, by editing `DEFAULT_RECIPIENT_CUSTOM` with the environment name of your choice | | no |\n\n##### ALERTA_API_KEY\n\nYou will need an API key to send messages from any source, if Alerta is configured to use authentication (recommended). To create a new API key:\n1. Go to Configuration > API Keys.\n2. Create a new API key called "netdata" with `write:alerts` permission.\n\n\n##### DEFAULT_RECIPIENT_CUSTOM\n\nThe `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_alerta[sysadmin]="Systems"\nrole_recipients_alerta[domainadmin]="Domains"\nrole_recipients_alerta[dba]="Databases Systems"\nrole_recipients_alerta[webmaster]="Marketing Development"\nrole_recipients_alerta[proxyadmin]="Proxy"\nrole_recipients_alerta[sitemgr]="Sites"\n```\n\nThe values you provide should be defined as environments in `/etc/alertad.conf` with `ALLOWED_ENVIRONMENTS` option.\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# alerta (alerta.io) global notification options\n\nSEND_ALERTA="YES"\nALERTA_WEBHOOK_URL="http://yourserver/alerta/api"\nALERTA_API_KEY="INSERT_YOUR_API_KEY_HERE"\nDEFAULT_RECIPIENT_ALERTA="Production"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/alerta/metadata.yaml"},{id:"notify-awssns",meta:{name:"AWS SNS",link:"https://aws.amazon.com/sns/",categories:["notify.agent"],icon_filename:"aws.svg"},keywords:["AWS SNS"],overview:"# AWS SNS\n\nAs part of its AWS suite, Amazon provides a notification broker service called 'Simple Notification Service' (SNS). Amazon SNS works similarly to Netdata's own notification system, allowing to dispatch a single notification to multiple subscribers of different types. Among other things, SNS supports sending notifications to:\n- Email addresses\n- Mobile Phones via SMS\n- HTTP or HTTPS web hooks\n- AWS Lambda functions\n- AWS SQS queues\n- Mobile applications via push notifications\nYou can send notifications through Amazon SNS using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n\n## Limitations\n\n- While Amazon SNS supports sending differently formatted messages for different delivery methods, Netdata does not currently support this functionality.\n- For email notification support, we recommend using Netdata's email notifications, as it is has the following benefits:\n - In most cases, it requires less configuration.\n - Netdata's emails are nicely pre-formatted and support features like threading, which requires a lot of manual effort in SNS.\n - It is less resource intensive and more cost-efficient than SNS.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The [Amazon Web Services CLI tools](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) (awscli).\n- An actual home directory for the user you run Netdata as, instead of just using `/` as a home directory. The setup depends on the distribution, but `/var/lib/netdata` is the recommended directory. If you are using Netdata as a dedicated user, the permissions will already be correct.\n- An Amazon SNS topic to send notifications to with one or more subscribers. The Getting Started section of the Amazon SNS documentation covers the basics of how to set this up. Make note of the Topic ARN when you create the topic.\n- While not mandatory, it is highly recommended to create a dedicated IAM user on your account for Netdata to send notifications. This user needs to have programmatic access, and should only allow access to SNS. For an additional layer of security, you can create one for each system or group of systems.\n- Terminal access to the Agent you wish to configure.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| aws path | The full path of the aws command. If empty, the system `$PATH` will be searched for it. If not found, Amazon SNS notifications will be silently disabled. | | yes |\n| SEND_AWSNS | Set `SEND_AWSNS` to YES | YES | yes |\n| AWSSNS_MESSAGE_FORMAT | Set `AWSSNS_MESSAGE_FORMAT` to to the string that you want the alert to be sent into. | ${status} on ${host} at ${date}: ${chart} ${value_string} | yes |\n| DEFAULT_RECIPIENT_AWSSNS | Set `DEFAULT_RECIPIENT_AWSSNS` to the Topic ARN you noted down upon creating the Topic. | | yes |\n\n##### AWSSNS_MESSAGE_FORMAT\n\nThe supported variables are:\n\n| Variable name | Description |\n|:---------------------------:|:---------------------------------------------------------------------------------|\n| `${alarm}` | Like "name = value units" |\n| `${status_message}` | Like "needs attention", "recovered", "is critical" |\n| `${severity}` | Like "Escalated to CRITICAL", "Recovered from WARNING" |\n| `${raised_for}` | Like "(alarm was raised for 10 minutes)" |\n| `${host}` | The host generated this event |\n| `${url_host}` | Same as ${host} but URL encoded |\n| `${unique_id}` | The unique id of this event |\n| `${alarm_id}` | The unique id of the alarm that generated this event |\n| `${event_id}` | The incremental id of the event, for this alarm id |\n| `${when}` | The timestamp this event occurred |\n| `${name}` | The name of the alarm, as given in netdata health.d entries |\n| `${url_name}` | Same as ${name} but URL encoded |\n| `${chart}` | The name of the chart (type.id) |\n| `${url_chart}` | Same as ${chart} but URL encoded |\n| `${status}` | The current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${old_status}` | The previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${value}` | The current value of the alarm |\n| `${old_value}` | The previous value of the alarm |\n| `${src}` | The line number and file the alarm has been configured |\n| `${duration}` | The duration in seconds of the previous alarm state |\n| `${duration_txt}` | Same as ${duration} for humans |\n| `${non_clear_duration}` | The total duration in seconds this is/was non-clear |\n| `${non_clear_duration_txt}` | Same as ${non_clear_duration} for humans |\n| `${units}` | The units of the value |\n| `${info}` | A short description of the alarm |\n| `${value_string}` | Friendly value (with units) |\n| `${old_value_string}` | Friendly old value (with units) |\n| `${image}` | The URL of an image to represent the status of the alarm |\n| `${color}` | A color in AABBCC format for the alarm |\n| `${goto_url}` | The URL the user can click to see the netdata dashboard |\n| `${calc_expression}` | The expression evaluated to provide the value for the alarm |\n| `${calc_param_values}` | The value of the variables in the evaluated expression |\n| `${total_warnings}` | The total number of alarms in WARNING state on the host |\n| `${total_critical}` | The total number of alarms in CRITICAL state on the host |\n\n\n##### DEFAULT_RECIPIENT_AWSSNS\n\nAll roles will default to this variable if left unconfigured.\n\nYou can have different recipient Topics per **role**, by editing `DEFAULT_RECIPIENT_AWSSNS` with the Topic ARN you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_awssns[sysadmin]="arn:aws:sns:us-east-2:123456789012:Systems"\nrole_recipients_awssns[domainadmin]="arn:aws:sns:us-east-2:123456789012:Domains"\nrole_recipients_awssns[dba]="arn:aws:sns:us-east-2:123456789012:Databases"\nrole_recipients_awssns[webmaster]="arn:aws:sns:us-east-2:123456789012:Development"\nrole_recipients_awssns[proxyadmin]="arn:aws:sns:us-east-2:123456789012:Proxy"\nrole_recipients_awssns[sitemgr]="arn:aws:sns:us-east-2:123456789012:Sites"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\nAn example working configuration would be:\n\n```yaml\n```conf\n#------------------------------------------------------------------------------\n# Amazon SNS notifications\n\nSEND_AWSSNS="YES"\nAWSSNS_MESSAGE_FORMAT="${status} on ${host} at ${date}: ${chart} ${value_string}"\nDEFAULT_RECIPIENT_AWSSNS="arn:aws:sns:us-east-2:123456789012:MyTopic"\n```\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/awssns/metadata.yaml"},{id:"notify-cloud-awssns",meta:{name:"Amazon SNS",link:"https://aws.amazon.com/sns/",categories:["notify.cloud"],icon_filename:"awssns.png"},keywords:["awssns"],overview:"# Amazon SNS\n\nFrom the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on AWS SNS.\n",setup:"## Setup\n\n### Prerequisites\n\nTo add AWS SNS notification you need:\n\n- A Netdata Cloud account\n- Access to the space as an **administrator**\n- Space needs to be on **Business** plan or higher\n- Have an AWS account with AWS SNS access, for more details check [how to configure this on AWS SNS](#settings-on-aws-sns)\n\n### Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **AwsSns** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For AWS SNS:\n - Topic ARN - topic provided on AWS SNS (with region) for where to publish your notifications. For more details check [how to configure this on AWS SNS](#settings-on-aws-sns)\n\n### Settings on AWS SNS\n\nTo enable the webhook integration on AWS SNS you need:\n1. [Setting up access for Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-setting-up.html)\n2. Create a topic\n - On AWS SNS management console click on **Create topic**\n - On the **Details** section, the standard type and provide the topic name\n - On the **Access policy** section, change the **Publishers** option to **Only the specified AWS accounts** and provide the Netdata AWS account **(123269920060)** that will be used to publish notifications to the topic being created\n - Finally, click on **Create topic** on the bottom of the page\n3. Now, use the new **Topic ARN** while adding AWS SNS integration on your space.\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-discord",meta:{name:"Discord",link:"https://discord.com/",categories:["notify.cloud"],icon_filename:"discord.png"},keywords:["discord","community"],overview:"# Discord\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Discord.\n",setup:"## Setup\n\n### Prerequisites\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- You need to have a Discord server able to receive webhooks integrations.\n\n### Discord Server Configuration\nSteps to configure your Discord server to receive [webhook notifications](https://support.discord.com/hc/en-us/articles/228383668) from Netdata:\n1. Go to `Server Settings` --\x3e `Integrations`\n2. **Create Webhook** or **View Webhooks** if you already have some defined\n3. Specify the **Name** and **Channel** on your new webhook\n4. Use Webhook URL to add your notification configuration on Netdata UI\n\n### Netdata Configuration Steps\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Discord** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Discord:\n - Define the type channel you want to send notifications to: **Text channel** or **Forum channel**\n - Webhook URL - URL provided on Discord for the channel you want to receive your notifications.\n - Thread name - if the Discord channel is a **Forum channel** you will need to provide the thread name as well\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-mattermost",meta:{name:"Mattermost",link:"https://mattermost.com/",categories:["notify.cloud"],icon_filename:"mattermost.png"},keywords:["mattermost"],overview:"# Mattermost\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Mattermost.\n",setup:"## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have permissions on Mattermost to add new integrations.\n- You need to have a Mattermost app on your workspace to receive the webhooks.\n\n### Mattermost Server Configuration\n\nSteps to configure your Mattermost to receive notifications from Netdata:\n\n1. In Mattermost, go to Product menu > Integrations > Incoming Webhook\n - If you don\u2019t have the Integrations option, incoming webhooks may not be enabled on your Mattermost server or may be disabled for non-admins. They can be enabled by a System Admin from System Console > Integrations > Integration Management. Once incoming webhooks are enabled, continue with the steps below.\n2. Select Add Incoming Webhook and add a name and description for the webhook. The description can be up to 500 characters\n3. Select the channel to receive webhook payloads, then select Add to create the webhook\n4. You will end up with a webhook endpoint that looks like below:\n `https://your-mattermost-server.com/hooks/xxx-generatedkey-xxx`\n\n - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your Mattermost instance.\n\nFor more details please check Mattermost's article [Incoming webhooks for Mattermost](https://developers.mattermost.com/integrate/webhooks/incoming/).\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Mattermost** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Mattermost:\n - Webhook URL - URL provided on Mattermost for the channel you want to receive your notifications\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-microsoftteams",meta:{name:"Microsoft Teams",link:"https://www.microsoft.com/en-us/microsoft-teams",categories:["notify.cloud"],icon_filename:"teams.svg"},keywords:["microsoft","teams"],overview:"# Microsoft Teams\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications to a Microsoft Teams channel.\n",setup:"## Setup\n\n### Prerequisites\n\nTo add Microsoft Teams notifications integration to your Netdata Cloud space you will need the following:\n\n- A Netdata Cloud account.\n- Access to the Netdata Cloud space as an **administrator**.\n- The Space to be on **Business** plan or higher.\n- A [Microsoft 365 for Business Account](https://www.microsoft.com/en-us/microsoft-365/business). Note that this is a **paid** account.\n\n### Settings on Microsoft Teams\n\n- The integration gets enabled at a team's channel level.\n- Click on the `...` (aka three dots) icon showing up next to the channel name, it should appear when you hover over it.\n- Click on `Connectors`.\n- Look for the `Incoming Webhook` connector and click configure.\n- Provide a name for your Incoming Webhook Connector, for example _Netdata Alerts_. You can also customize it with a proper icon instead of using the default image.\n- Click `Create`.\n- The _Incoming Webhook URL_ is created.\n- That is the URL to be provided to the Netdata Cloud configuration.\n\n### Settings on Netdata Cloud\n\n1. Click on the **Space settings** cog (located above your profile icon).\n2. Click on the **Notification** tab.\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen).\n4. On the **Microsoft Teams** card click on **+ Add**.\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings:\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it.\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration.\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only.\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Microsoft Teams:\n - Microsoft Teams Incoming Webhook URL - the _Incoming Webhook URL_ that was generated earlier.\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-mobile-app",meta:{name:"Netdata Mobile App",link:"https://netdata.cloud",categories:["notify.cloud"],icon_filename:"netdata.png"},keywords:["mobile-app","phone","personal-notifications"],overview:"# Netdata Mobile App\n\nFrom the Netdata Cloud UI, you can manage your user notification settings and enable the configuration to deliver notifications on the Netdata Mobile Application.\n",setup:"## Setup\n\n### Prerequisites\n- A Netdata Cloud account\n- You need to have the Netdata Mobile Application installed on your [Android](https://play.google.com/store/apps/details?id=cloud.netdata.android&pli=1) or [iOS](https://apps.apple.com/in/app/netdata-mobile/id6474659622) phone.\n\n### Netdata Mobile App Configuration\nSteps to login to the Netdata Mobile Application to receive alert and reachability and alert notifications:\n1. Download the Netdata Mobile Application from [Google Play Store](https://play.google.com/store/apps/details?id=cloud.netdata.android&pli=1) or the [iOS App Store](https://apps.apple.com/in/app/netdata-mobile/id6474659622)\n2. Open the App and Choose the Sign In Option\n - Sign In with Email Address: Enter the Email Address of your registered Netdata Cloud Account and Click on the Verification link received by Email on your mobile device.\n - Sign In with QR Code: Scan the QR Code from your `Netdata Cloud` UI under **User Settings** --\x3e **Notifications** --\x3e **Mobile App Notifications** --\x3e **Show QR Code**\n3. Start receiving alert and reachability notifications for your **Space(s)** on a **Paid Business Subscription**\n\n### Netdata Configuration Steps\n1. Click on the **User settings** on the bottom left of your screen (your profile icon)\n2. Click on the **Notifications** tab\n3. Enable **Mobile App Notifications** if disabled (Enabled by default)\n4. Use the **Show QR Code** Option to login to your mobile device by scanning the **QR Code**\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-opsgenie",meta:{name:"Opsgenie",link:"https://www.atlassian.com/software/opsgenie",categories:["notify.cloud"],icon_filename:"opsgenie.png"},keywords:["opsgenie","atlassian"],overview:"# Opsgenie\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Opsgenie.\n",setup:"## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have permissions on Opsgenie to add new integrations.\n\n### Opsgenie Server Configuration\n\nSteps to configure your Opsgenie to receive notifications from Netdata:\n\n1. Go to integrations tab of your team, click **Add integration**\n2. Pick **API** from available integrations. Copy your API Key and press **Save Integration**.\n3. Paste copied API key into the corresponding field in **Integration configuration** section of Opsgenie modal window in Netdata.\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Opsgenie** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Opsgenie:\n - API Key - a key provided on Opsgenie for the channel you want to receive your notifications.\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-pagerduty",meta:{name:"PagerDuty",link:"https://www.pagerduty.com/",categories:["notify.cloud"],icon_filename:"pagerduty.png"},keywords:["pagerduty"],overview:"# PagerDuty\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on PagerDuty.\n",setup:"## Setup\n\n### Prerequisites\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have a PagerDuty service to receive events using webhooks.\n\n\n### PagerDuty Server Configuration\nSteps to configure your PagerDuty to receive notifications from Netdata:\n\n1. Create a service to receive events from your services directory page on PagerDuty\n2. At step 3, select `Events API V2` Integration or **View Webhooks** if you already have some defined\n3. Once the service is created you will be redirected to its configuration page, where you can copy the **integration key**, that you will need need to add to your notification configuration on Netdata UI.\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **PagerDuty** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For PagerDuty:\n - Integration Key - is a 32 character key provided by PagerDuty to receive events on your service.\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-rocketchat",meta:{name:"RocketChat",link:"https://www.rocket.chat/",categories:["notify.cloud"],icon_filename:"rocketchat.png"},keywords:["rocketchat"],overview:"# RocketChat\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on RocketChat.\n",setup:"## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have permissions on Mattermost to add new integrations.\n- You need to have a RocketChat app on your workspace to receive the webhooks.\n\n### Mattermost Server Configuration\n\nSteps to configure your RocketChat to receive notifications from Netdata:\n\n1. In RocketChat, Navigate to Administration > Workspace > Integrations.\n2. Click **+New** at the top right corner.\n3. For more details about each parameter, check [create-a-new-incoming-webhook](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations#create-a-new-incoming-webhook).\n4. After configuring integration, click Save.\n5. You will end up with a webhook endpoint that looks like below:\n `https://your-server.rocket.chat/hooks/YYYYYYYYYYYYYYYYYYYYYYYY/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`\n - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your RocketChat instance.\n\n\nFor more details please check RocketChat's article Incoming webhooks for [RocketChat](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations/).\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **RocketChat** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For RocketChat:\n - Webhook URL - URL provided on RocketChat for the channel you want to receive your notifications.\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-slack",meta:{name:"Slack",link:"https://slack.com/",categories:["notify.cloud"],icon_filename:"slack.png"},keywords:["slack"],overview:"# Slack\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Slack.\n",setup:"## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have a Slack app on your workspace to receive the Webhooks.\n\n### Slack Server Configuration\n\nSteps to configure your Slack to receive notifications from Netdata:\n\n1. Create an app to receive webhook integrations. Check [Create an app](https://api.slack.com/apps?new_app=1) from Slack documentation for further details\n2. Install the app on your workspace\n3. Configure Webhook URLs for your workspace\n - On your app go to **Incoming Webhooks** and click on **activate incoming webhooks**\n - At the bottom of **Webhook URLs for Your Workspace** section you have **Add New Webhook to Workspace**\n - After pressing that specify the channel where you want your notifications to be delivered\n - Once completed copy the Webhook URL that you will need to add to your notification configuration on Netdata UI\n\nFor more details please check Slacks's article [Incoming webhooks for Slack](https://slack.com/help/articles/115005265063-Incoming-webhooks-for-Slack).\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Slack** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Slack:\n - Webhook URL - URL provided on Slack for the channel you want to receive your notifications.\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-splunk",meta:{name:"Splunk",link:"https://splunk.com/",categories:["notify.cloud"],icon_filename:"splunk-black.svg"},keywords:["Splunk"],overview:"# Splunk\n\nFrom the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on Splunk.\n",setup:"## Setup\n\n### Prerequisites\n\nTo add Splunk notification you need:\n\n- A Netdata Cloud account\n- Access to the space as an **administrator**\n- Space needs to be on **Business** plan or higher\n- URI and token for your Splunk HTTP Event Collector. Refer to the [Splunk documentation](https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector) for detailed instructions.\n\n### Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Splunk** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n - **Notification settings** are Netdata specific settings\n - Configuration name - provide a descriptive name for your configuration to easily identify it.\n - Rooms - select the nodes or areas of your infrastructure you want to receive notifications about.\n - Notification - choose the type of notifications you want to receive: All Alerts and unreachable, All Alerts, Critical only.\n - **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Splunk:\n - HTTP Event Collector URI - The URI of your HTTP event collector in Splunk\n - HTTP Event Collector Token - the token that Splunk provided to you when you created the HTTP Event Collector\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-telegram",meta:{name:"Telegram",link:"https://telegram.org/",categories:["notify.cloud"],icon_filename:"telegram.svg"},keywords:["Telegram"],overview:"# Telegram\n\nFrom the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on Telegram.\n",setup:"## Setup\n\n### Prerequisites\n\nTo add Telegram notification you need:\n\n- A Netdata Cloud account\n- Access to the space as an **administrator**\n- Space needs to be on **Business** plan or higher\n- The Telegram bot token and chat ID\n\n### Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Telegram** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n - **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n - **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Telegram:\n - Bot Token - the token of your bot\n - Chat ID - the chat id where your bot will deliver messages to\n\n### Getting the Telegram bot token and chat ID\n\n- Bot token: To create one bot, contact the [@BotFather](https://t.me/BotFather) bot and send the command `/newbot` and follow the instructions. **Start a conversation with your bot or invite it into the group where you want it to send notifications**.\n- To get the chat ID you have two options:\n - Contact the [@myidbot](https://t.me/myidbot) bot and send the `/getid` command to get your personal chat ID, or invite it into a group and use the `/getgroupid` command to get the group chat ID.\n - Alternatively, you can get the chat ID directly from the bot API. Send your bot a command in the chat you want to use, then check `https://api.telegram.org/bot{YourBotToken}/getUpdates`, eg. `https://api.telegram.org/bot111122223:7OpFlFFRzRBbrUUmIjj5HF9Ox2pYJZy5/getUpdates`\n\n",integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-cloud-webhook",meta:{name:"Webhook",link:"https://en.wikipedia.org/wiki/Webhook",categories:["notify.cloud"],icon_filename:"webhook.svg"},keywords:["generic webhooks","webhooks"],overview:"# Webhook\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on a webhook using a predefined schema.\n",setup:'## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Pro** plan or higher\n- You need to have an app that allows you to receive webhooks following a predefined schema.\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Webhook** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Webhook:\n - Webhook URL - webhook URL is the url of the service that Netdata will send notifications to. In order to keep the communication secured, we only accept HTTPS urls.\n - Extra headers - these are optional key-value pairs that you can set to be included in the HTTP requests sent to the webhook URL.\n - Authentication Mechanism - Netdata webhook integration supports 3 different authentication mechanisms.\n * Mutual TLS (recommended) - default authentication mechanism used if no other method is selected.\n * Basic - the client sends a request with an Authorization header that includes a base64-encoded string in the format **username:password**. These will settings will be required inputs.\n * Bearer - the client sends a request with an Authorization header that includes a **bearer token**. This setting will be a required input.\n\n\n ### Webhook service\n\n A webhook integration allows your application to receive real-time alerts from Netdata by sending HTTP requests to a specified URL. In this document, we\'ll go over the steps to set up a generic webhook integration, including adding headers, and implementing different types of authorization mechanisms.\n\n #### Netdata webhook integration\n\n A webhook integration is a way for one service to notify another service about events that occur within it. This is done by sending an HTTP POST request to a specified URL (known as the "webhook URL") when an event occurs.\n\n Netdata webhook integration service will send alert notifications to the destination service as soon as they are detected.\n\n The notification content sent to the destination service will be a JSON object having these properties:\n\n | field | type | description |\n | :-- | :-- | :-- |\n | message | string | A summary message of the alert. |\n | alarm | string | The alarm the notification is about. |\n | info | string | Additional info related with the alert. |\n | chart | string | The chart associated with the alert. |\n | context | string | The chart context. |\n | space | string | The space where the node that raised the alert is assigned. |\n | rooms | object[object(string,string)] | Object with list of rooms names and urls where the node belongs to. |\n | family | string | Context family. |\n | class | string | Classification of the alert, e.g. "Error". |\n | severity | string | Alert severity, can be one of "warning", "critical" or "clear". |\n | date | string | Date of the alert in ISO8601 format. |\n | duration | string | Duration the alert has been raised. |\n | additional_active_critical_alerts | integer | Number of additional critical alerts currently existing on the same node. |\n | additional_active_warning_alerts | integer | Number of additional warning alerts currently existing on the same node. |\n | alarm_url | string | Netdata Cloud URL for this alarm. |\n\n #### Extra headers\n\n When setting up a webhook integration, the user can specify a set of headers to be included in the HTTP requests sent to the webhook URL.\n\n By default, the following headers will be sent in the HTTP request\n\n | **Header** | **Value** |\n |:-------------------------------:|-----------------------------|\n | Content-Type | application/json |\n\n #### Authentication mechanisms\n\n Netdata webhook integration supports 3 different authentication mechanisms:\n\n ##### Mutual TLS authentication (recommended)\n\n In mutual Transport Layer Security (mTLS) authentication, the client and the server authenticate each other using X.509 certificates. This ensures that the client is connecting to the intended server, and that the server is only accepting connections from authorized clients.\n\n This is the default authentication mechanism used if no other method is selected.\n\n To take advantage of mutual TLS, you can configure your server to verify Netdata\'s client certificate. In order to achieve this, the Netdata client sending the notification supports mutual TLS (mTLS) to identify itself with a client certificate that your server can validate.\n\n The steps to perform this validation are as follows:\n\n - Store Netdata CA certificate on a file in your disk. The content of this file should be:\n\n <details>\n <summary>Netdata CA certificate</summary>\n\n ```\n -----BEGIN CERTIFICATE-----\n MIIF0jCCA7qgAwIBAgIUDV0rS5jXsyNX33evHEQOwn9fPo0wDQYJKoZIhvcNAQEN\n BQAwgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH\n Ew1TYW4gRnJhbmNpc2NvMRYwFAYDVQQKEw1OZXRkYXRhLCBJbmMuMRIwEAYDVQQL\n EwlDbG91ZCBTUkUxGDAWBgNVBAMTD05ldGRhdGEgUm9vdCBDQTAeFw0yMzAyMjIx\n MjQzMDBaFw0zMzAyMTkxMjQzMDBaMIGAMQswCQYDVQQGEwJVUzETMBEGA1UECBMK\n Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEWMBQGA1UEChMNTmV0\n ZGF0YSwgSW5jLjESMBAGA1UECxMJQ2xvdWQgU1JFMRgwFgYDVQQDEw9OZXRkYXRh\n IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwIg7z3R++\n ppQYYVVoMIDlhWO3qVTMsAQoJYEvVa6fqaImUBLW/k19LUaXgUJPohB7gBp1pkjs\n QfY5dBo8iFr7MDHtyiAFjcQV181sITTMBEJwp77R4slOXCvrreizhTt1gvf4S1zL\n qeHBYWEgH0RLrOAqD0jkOHwewVouO0k3Wf2lEbCq3qRk2HeDvkv0LR7sFC+dDms8\n fDHqb/htqhk+FAJELGRqLeaFq1Z5Eq1/9dk4SIeHgK5pdYqsjpBzOTmocgriw6he\n s7F3dOec1ZZdcBEAxOjbYt4e58JwuR81cWAVMmyot5JNCzYVL9e5Vc5n22qt2dmc\n Tzw2rLOPt9pT5bzbmyhcDuNg2Qj/5DySAQ+VQysx91BJRXyUimqE7DwQyLhpQU72\n jw29lf2RHdCPNmk8J1TNropmpz/aI7rkperPugdOmxzP55i48ECbvDF4Wtazi+l+\n 4kx7ieeLfEQgixy4lRUUkrgJlIDOGbw+d2Ag6LtOgwBiBYnDgYpvLucnx5cFupPY\n Cy3VlJ4EKUeQQSsz5kVmvotk9MED4sLx1As8V4e5ViwI5dCsRfKny7BeJ6XNPLnw\n PtMh1hbiqCcDmB1urCqXcMle4sRhKccReYOwkLjLLZ80A+MuJuIEAUUuEPCwywzU\n R7pagYsmvNgmwIIuJtB6mIJBShC7TpJG+wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC\n AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU9IbvOsPSUrpr8H2zSafYVQ9e\n Ft8wDQYJKoZIhvcNAQENBQADggIBABQ08aI31VKZs8jzg+y/QM5cvzXlVhcpkZsY\n 1VVBr0roSBw9Pld9SERrEHto8PVXbadRxeEs4sKivJBKubWAooQ6NTvEB9MHuGnZ\n VCU+N035Gq/mhBZgtIs/Zz33jTB2ju3G4Gm9VTZbVqd0OUxFs41Iqvi0HStC3/Io\n rKi7crubmp5f2cNW1HrS++ScbTM+VaKVgQ2Tg5jOjou8wtA+204iYXlFpw9Q0qnP\n qq6ix7TfLLeRVp6mauwPsAJUgHZluz7yuv3r7TBdukU4ZKUmfAGIPSebtB3EzXfH\n 7Y326xzv0hEpjvDHLy6+yFfTdBSrKPsMHgc9bsf88dnypNYL8TUiEHlcTgCGU8ts\n ud8sWN2M5FEWbHPNYRVfH3xgY2iOYZzn0i+PVyGryOPuzkRHTxDLPIGEWE5susM4\n X4bnNJyKH1AMkBCErR34CLXtAe2ngJlV/V3D4I8CQFJdQkn9tuznohUU/j80xvPH\n FOcDGQYmh4m2aIJtlNVP6+/92Siugb5y7HfslyRK94+bZBg2D86TcCJWaaZOFUrR\n Y3WniYXsqM5/JI4OOzu7dpjtkJUYvwtg7Qb5jmm8Ilf5rQZJhuvsygzX6+WM079y\n nsjoQAm6OwpTN5362vE9SYu1twz7KdzBlUkDhePEOgQkWfLHBJWwB+PvB1j/cUA3\n 5zrbwvQf\n -----END CERTIFICATE-----\n ```\n </details>\n\n - Enable client certificate validation on the web server that is doing the TLS termination. Below we show you how to perform this configuration in `NGINX` and `Apache`\n\n **NGINX**\n\n ```bash\n server {\n listen 443 ssl default_server;\n\n # ... existing SSL configuration for server authentication ...\n ssl_verify_client on;\n ssl_client_certificate /path/to/Netdata_CA.pem;\n\n location / {\n if ($ssl_client_s_dn !~ "CN=app.netdata.cloud") {\n return 403;\n }\n # ... existing location configuration ...\n }\n }\n ```\n\n **Apache**\n\n ```bash\n Listen 443\n <VirtualHost *:443>\n # ... existing SSL configuration for server authentication ...\n SSLVerifyClient require\n SSLCACertificateFile "/path/to/Netdata_CA.pem"\n </VirtualHost>\n <Directory /var/www/>\n Require expr "%{SSL_CLIENT_S_DN_CN} == \'app.netdata.cloud\'"\n # ... existing directory configuration ...\n </Directory>\n ```\n\n ##### Basic authentication\n\n In basic authorization, the client sends a request with an Authorization header that includes a base64-encoded string in the format username:password. The server then uses this information to authenticate the client. If this authentication method is selected, the user can set the user and password that will be used when connecting to the destination service.\n\n ##### Bearer token authentication\n\n In bearer token authentication, the client sends a request with an Authorization header that includes a bearer token. The server then uses this token to authenticate the client. Bearer tokens are typically generated by an authentication service, and are passed to the client after a successful authentication. If this method is selected, the user can set the token to be used for connecting to the destination service.\n\n ##### Challenge secret\n\n To validate that you have ownership of the web application that will receive the webhook events, we are using a challenge response check mechanism.\n\n This mechanism works as follows:\n\n - The challenge secret parameter that you provide is a shared secret between you and Netdata only.\n - On your request for creating a new Webhook integration, we will make a GET request to the url of the webhook, adding a query parameter `crc_token`, consisting of a random string.\n - You will receive this request on your application and it must construct an encrypted response, consisting of a base64-encoded HMAC SHA-256 hash created from the crc_token and the shared secret. The response will be in the format:\n\n ```json\n {\n "response_token": "sha256=9GKoHJYmcHIkhD+C182QWN79YBd+D+Vkj4snmZrfNi4="\n }\n ```\n\n - We will compare your application\'s response with the hash that we will generate using the challenge secret, and if they are the same, the integration creation will succeed.\n\n We will do this validation everytime you update your integration configuration.\n\n - Response requirements:\n - A base64 encoded HMAC SHA-256 hash created from the crc_token and the shared secret.\n - Valid response_token and JSON format.\n - Latency less than 5 seconds.\n - 200 HTTP response code.\n\n **Example response token generation in Python:**\n\n Here you can see how to define a handler for a Flask application in python 3:\n\n ```python\n import base64\n import hashlib\n import hmac\n import json\n\n key =\'YOUR_CHALLENGE_SECRET\'\n\n @app.route(\'/webhooks/netdata\')\n def webhook_challenge():\n token = request.args.get(\'crc_token\').encode(\'ascii\')\n\n # creates HMAC SHA-256 hash from incomming token and your consumer secret\n sha256_hash_digest = hmac.new(key.encode(),\n msg=token,\n digestmod=hashlib.sha256).digest()\n\n # construct response data with base64 encoded hash\n response = {\n \'response_token\': \'sha256=\' + base64.b64encode(sha256_hash_digest).decode(\'ascii\')\n }\n\n # returns properly formatted json response\n return json.dumps(response)\n ```\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml",troubleshooting:""},{id:"notify-custom",meta:{name:"Custom",link:"",categories:["notify.agent"],icon_filename:"custom.png"},keywords:["custom"],overview:"# Custom\n\nNetdata Agent's alert notification feature allows you to send custom notifications to any endpoint you choose.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_CUSTOM | Set `SEND_CUSTOM` to YES | YES | yes |\n| DEFAULT_RECIPIENT_CUSTOM | This value is dependent on how you handle the `${to}` variable inside the `custom_sender()` function. | | yes |\n| custom_sender() | You can look at the other senders in `/usr/libexec/netdata/plugins.d/alarm-notify.sh` for examples of how to modify the function in this configuration file. | | no |\n\n##### DEFAULT_RECIPIENT_CUSTOM\n\nAll roles will default to this variable if left unconfigured. You can edit `DEFAULT_RECIPIENT_CUSTOM` with the variable you want, in the following entries at the bottom of the same file:\n```\nrole_recipients_custom[sysadmin]="systems"\nrole_recipients_custom[domainadmin]="domains"\nrole_recipients_custom[dba]="databases systems"\nrole_recipients_custom[webmaster]="marketing development"\nrole_recipients_custom[proxyadmin]="proxy-admin"\nrole_recipients_custom[sitemgr]="sites"\n```\n\n\n##### custom_sender()\n\nThe following is a sample custom_sender() function in health_alarm_notify.conf, to send an SMS via an imaginary HTTPS endpoint to the SMS gateway:\n```\ncustom_sender() {\n # example human readable SMS\n local msg="${host} ${status_message}: ${alarm} ${raised_for}"\n\n # limit it to 160 characters and encode it for use in a URL\n urlencode "${msg:0:160}" >/dev/null; msg="${REPLY}"\n\n # a space separated list of the recipients to send alarms to\n to="${1}"\n\n for phone in ${to}; do\n httpcode=$(docurl -X POST \\\n --data-urlencode "From=XXX" \\\n --data-urlencode "To=${phone}" \\\n --data-urlencode "Body=${msg}" \\\n -u "${accountsid}:${accounttoken}" \\\n https://domain.website.com/)\n\n if [ "${httpcode}" = "200" ]; then\n info "sent custom notification ${msg} to ${phone}"\n sent=$((sent + 1))\n else\n error "failed to send custom notification ${msg} to ${phone} with HTTP error code ${httpcode}."\n fi\n done\n}\n```\n\nThe supported variables that you can use for the function\'s `msg` variable are:\n\n| Variable name | Description |\n|:---------------------------:|:---------------------------------------------------------------------------------|\n| `${alarm}` | Like "name = value units" |\n| `${status_message}` | Like "needs attention", "recovered", "is critical" |\n| `${severity}` | Like "Escalated to CRITICAL", "Recovered from WARNING" |\n| `${raised_for}` | Like "(alarm was raised for 10 minutes)" |\n| `${host}` | The host generated this event |\n| `${url_host}` | Same as ${host} but URL encoded |\n| `${unique_id}` | The unique id of this event |\n| `${alarm_id}` | The unique id of the alarm that generated this event |\n| `${event_id}` | The incremental id of the event, for this alarm id |\n| `${when}` | The timestamp this event occurred |\n| `${name}` | The name of the alarm, as given in netdata health.d entries |\n| `${url_name}` | Same as ${name} but URL encoded |\n| `${chart}` | The name of the chart (type.id) |\n| `${url_chart}` | Same as ${chart} but URL encoded |\n| `${status}` | The current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${old_status}` | The previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${value}` | The current value of the alarm |\n| `${old_value}` | The previous value of the alarm |\n| `${src}` | The line number and file the alarm has been configured |\n| `${duration}` | The duration in seconds of the previous alarm state |\n| `${duration_txt}` | Same as ${duration} for humans |\n| `${non_clear_duration}` | The total duration in seconds this is/was non-clear |\n| `${non_clear_duration_txt}` | Same as ${non_clear_duration} for humans |\n| `${units}` | The units of the value |\n| `${info}` | A short description of the alarm |\n| `${value_string}` | Friendly value (with units) |\n| `${old_value_string}` | Friendly old value (with units) |\n| `${image}` | The URL of an image to represent the status of the alarm |\n| `${color}` | A color in AABBCC format for the alarm |\n| `${goto_url}` | The URL the user can click to see the netdata dashboard |\n| `${calc_expression}` | The expression evaluated to provide the value for the alarm |\n| `${calc_param_values}` | The value of the variables in the evaluated expression |\n| `${total_warnings}` | The total number of alarms in WARNING state on the host |\n| `${total_critical}` | The total number of alarms in CRITICAL state on the host |\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# custom notifications\n\nSEND_CUSTOM="YES"\nDEFAULT_RECIPIENT_CUSTOM=""\n\n# The custom_sender() is a custom function to do whatever you need to do\ncustom_sender() {\n # example human readable SMS\n local msg="${host} ${status_message}: ${alarm} ${raised_for}"\n\n # limit it to 160 characters and encode it for use in a URL\n urlencode "${msg:0:160}" >/dev/null; msg="${REPLY}"\n\n # a space separated list of the recipients to send alarms to\n to="${1}"\n\n for phone in ${to}; do\n httpcode=$(docurl -X POST \\\n --data-urlencode "From=XXX" \\\n --data-urlencode "To=${phone}" \\\n --data-urlencode "Body=${msg}" \\\n -u "${accountsid}:${accounttoken}" \\\n https://domain.website.com/)\n\n if [ "${httpcode}" = "200" ]; then\n info "sent custom notification ${msg} to ${phone}"\n sent=$((sent + 1))\n else\n error "failed to send custom notification ${msg} to ${phone} with HTTP error code ${httpcode}."\n fi\n done\n}\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/custom/metadata.yaml"},{id:"notify-discord",meta:{name:"Discord",link:"https://discord.com/",categories:["notify.agent"],icon_filename:"discord.png"},keywords:["Discord"],overview:"# Discord\n\nSend notifications to Discord using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by Discord. Create a webhook by following the official [Discord documentation](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks). You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).\n- One or more Discord channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_DISCORD | Set `SEND_DISCORD` to YES | YES | yes |\n| DISCORD_WEBHOOK_URL | set `DISCORD_WEBHOOK_URL` to your webhook URL. | | yes |\n| DEFAULT_RECIPIENT_DISCORD | Set `DEFAULT_RECIPIENT_DISCORD` to the channel you want the alert notifications to be sent to. You can define multiple channels like this: `alerts` `systems`. | | yes |\n\n##### DEFAULT_RECIPIENT_DISCORD\n\nAll roles will default to this variable if left unconfigured.\nYou can then have different channels per role, by editing `DEFAULT_RECIPIENT_DISCORD` with the channel you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_discord[sysadmin]="systems"\nrole_recipients_discord[domainadmin]="domains"\nrole_recipients_discord[dba]="databases systems"\nrole_recipients_discord[webmaster]="marketing development"\nrole_recipients_discord[proxyadmin]="proxy-admin"\nrole_recipients_discord[sitemgr]="sites"\n```\n\nThe values you provide should already exist as Discord channels in your server.\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# discord (discordapp.com) global notification options\n\nSEND_DISCORD="YES"\nDISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/XXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"\nDEFAULT_RECIPIENT_DISCORD="alerts"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/discord/metadata.yaml"},{id:"notify-dynatrace",meta:{name:"Dynatrace",link:"https://dynatrace.com",categories:["notify.agent"],icon_filename:"dynatrace.svg"},keywords:["Dynatrace"],overview:"# Dynatrace\n\nDynatrace allows you to receive notifications using their Events REST API. See the [Dynatrace documentation](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/events-v2/post-event) about POSTing an event in the Events API for more details.\nYou can send notifications to Dynatrace using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- A Dynatrace Server. You can use the same on all your Netdata servers but make sure the server is network visible from your Netdata hosts. The Dynatrace server should be with protocol prefixed (http:// or https://), for example: https://monitor.example.com.\n- An API Token. Generate a secure access API token that enables access to your Dynatrace monitoring data via the REST-based API. See [Dynatrace API - Authentication](https://www.dynatrace.com/support/help/extend-dynatrace/dynatrace-api/basics/dynatrace-api-authentication/) for more details.\n- An API Space. This is the URL part of the page you have access in order to generate the API Token. For example, the URL for a generated API token might look like: https://monitor.illumineit.com/e/2a93fe0e-4cd5-469a-9d0d-1a064235cfce/#settings/integration/apikeys;gf=all In that case, the Space is 2a93fe0e-4cd5-469a-9d0d-1a064235cfce.\n- A Server Tag. To generate one on your Dynatrace Server, go to Settings --\x3e Tags --\x3e Manually applied tags and create the Tag. The Netdata alarm is sent as a Dynatrace Event to be correlated with all those hosts tagged with this Tag you have created.\n- Terminal access to the Agent you wish to configure\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_DYNATRACE | Set `SEND_DYNATRACE` to YES | YES | yes |\n| DYNATRACE_SERVER | Set `DYNATRACE_SERVER` to the Dynatrace server with the protocol prefix, for example `https://monitor.example.com`. | | yes |\n| DYNATRACE_TOKEN | Set `DYNATRACE_TOKEN` to your Dynatrace API authentication token | | yes |\n| DYNATRACE_SPACE | Set `DYNATRACE_SPACE` to the API Space, it is the URL part of the page you have access in order to generate the API Token. | | yes |\n| DYNATRACE_TAG_VALUE | Set `DYNATRACE_TAG_VALUE` to your Dynatrace Server Tag. | | yes |\n| DYNATRACE_ANNOTATION_TYPE | `DYNATRACE_ANNOTATION_TYPE` can be left to its default value Netdata Alarm, but you can change it to better fit your needs. | Netdata Alarm | no |\n| DYNATRACE_EVENT | Set `DYNATRACE_EVENT` to the Dynatrace eventType you want. | Netdata Alarm | no |\n\n##### DYNATRACE_SPACE\n\nFor example, the URL for a generated API token might look like: https://monitor.illumineit.com/e/2a93fe0e-4cd5-469a-9d0d-1a064235cfce/#settings/integration/apikeys;gf=all In that case, the Space is 2a93fe0e-4cd5-469a-9d0d-1a064235cfce.\n\n\n##### DYNATRACE_EVENT\n\n`AVAILABILITY_EVENT`, `CUSTOM_ALERT`, `CUSTOM_ANNOTATION`, `CUSTOM_CONFIGURATION`, `CUSTOM_DEPLOYMENT`, `CUSTOM_INFO`, `ERROR_EVENT`,\n`MARKED_FOR_TERMINATION`, `PERFORMANCE_EVENT`, `RESOURCE_CONTENTION_EVENT`.\nYou can read more [here](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/events-v2/post-event#request-body-objects).\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Dynatrace global notification options\n\nSEND_DYNATRACE="YES"\nDYNATRACE_SERVER="https://monitor.example.com"\nDYNATRACE_TOKEN="XXXXXXX"\nDYNATRACE_SPACE="2a93fe0e-4cd5-469a-9d0d-1a064235cfce"\nDYNATRACE_TAG_VALUE="SERVERTAG"\nDYNATRACE_ANNOTATION_TYPE="Netdata Alert"\nDYNATRACE_EVENT="AVAILABILITY_EVENT"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/dynatrace/metadata.yaml"},{id:"notify-email",meta:{name:"Email",link:"",categories:["notify.agent"],icon_filename:"email.png"},keywords:["email"],overview:"# Email\n\nSend notifications via Email using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- A working sendmail command is required for email alerts to work. Almost all MTAs provide a sendmail interface. Netdata sends all emails as user netdata, so make sure your sendmail works for local users.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| EMAIL_SENDER | You can change `EMAIL_SENDER` to the email address sending the notifications. | netdata | no |\n| SEND_EMAIL | Set `SEND_EMAIL` to YES | YES | yes |\n| DEFAULT_RECIPIENT_EMAIL | Set `DEFAULT_RECIPIENT_EMAIL` to the email address you want the email to be sent by default. You can define multiple email addresses like this: `alarms@example.com` `systems@example.com`. | root | yes |\n\n##### DEFAULT_RECIPIENT_EMAIL\n\nAll roles will default to this variable if left unconfigured.\nThe `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_email[sysadmin]="systems@example.com"\nrole_recipients_email[domainadmin]="domains@example.com"\nrole_recipients_email[dba]="databases@example.com systems@example.com"\nrole_recipients_email[webmaster]="marketing@example.com development@example.com"\nrole_recipients_email[proxyadmin]="proxy-admin@example.com"\nrole_recipients_email[sitemgr]="sites@example.com"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# email global notification options\n\nEMAIL_SENDER="example@domain.com"\nSEND_EMAIL="YES"\nDEFAULT_RECIPIENT_EMAIL="recipient@example.com"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/email/metadata.yaml"},{id:"notify-flock",meta:{name:"Flock",link:"https://support.flock.com/",categories:["notify.agent"],icon_filename:"flock.png"},keywords:["Flock"],overview:"# Flock\n\nSend notifications to Flock using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by flock.com. You can use the same on all your Netdata servers (or you can have multiple if you like). Read more about flock webhooks and how to get one [here](https://admin.flock.com/webhooks).\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_FLOCK | Set `SEND_FLOCK` to YES | YES | yes |\n| FLOCK_WEBHOOK_URL | set `FLOCK_WEBHOOK_URL` to your webhook URL. | | yes |\n| DEFAULT_RECIPIENT_FLOCK | Set `DEFAULT_RECIPIENT_FLOCK` to the Flock channel you want the alert notifications to be sent to. All roles will default to this variable if left unconfigured. | | yes |\n\n##### DEFAULT_RECIPIENT_FLOCK\n\nYou can have different channels per role, by editing DEFAULT_RECIPIENT_FLOCK with the channel you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_flock[sysadmin]="systems"\nrole_recipients_flock[domainadmin]="domains"\nrole_recipients_flock[dba]="databases systems"\nrole_recipients_flock[webmaster]="marketing development"\nrole_recipients_flock[proxyadmin]="proxy-admin"\nrole_recipients_flock[sitemgr]="sites"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# flock (flock.com) global notification options\n\nSEND_FLOCK="YES"\nFLOCK_WEBHOOK_URL="https://api.flock.com/hooks/sendMessage/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"\nDEFAULT_RECIPIENT_FLOCK="alarms"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/flock/metadata.yaml"},{id:"notify-gotify",meta:{name:"Gotify",link:"https://gotify.net/",categories:["notify.agent"],icon_filename:"gotify.png"},keywords:["gotify"],overview:"# Gotify\n\n[Gotify](https://gotify.net/) is a self-hosted push notification service created for sending and receiving messages in real time.\nYou can send alerts to your Gotify instance using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- An application token. You can generate a new token in the Gotify Web UI.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_GOTIFY | Set `SEND_GOTIFY` to YES | YES | yes |\n| GOTIFY_APP_TOKEN | set `GOTIFY_APP_TOKEN` to the app token you generated. | | yes |\n| GOTIFY_APP_URL | Set `GOTIFY_APP_URL` to point to your Gotify instance, for example `https://push.example.domain/` | | yes |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\nSEND_GOTIFY="YES"\nGOTIFY_APP_TOKEN="XXXXXXXXXXXXXXX"\nGOTIFY_APP_URL="https://push.example.domain/"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/gotify/metadata.yaml"},{id:"notify-irc",meta:{name:"IRC",link:"",categories:["notify.agent"],icon_filename:"irc.png"},keywords:["IRC"],overview:"# IRC\n\nSend notifications to IRC using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The `nc` utility. You can set the path to it, or Netdata will search for it in your system `$PATH`.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| nc path | Set the path for nc, otherwise Netdata will search for it in your system $PATH | | yes |\n| SEND_IRC | Set `SEND_IRC` YES. | YES | yes |\n| IRC_NETWORK | Set `IRC_NETWORK` to the IRC network which your preferred channels belong to. | | yes |\n| IRC_PORT | Set `IRC_PORT` to the IRC port to which a connection will occur. | | no |\n| IRC_NICKNAME | Set `IRC_NICKNAME` to the IRC nickname which is required to send the notification. It must not be an already registered name as the connection\'s MODE is defined as a guest. | | yes |\n| IRC_REALNAME | Set `IRC_REALNAME` to the IRC realname which is required in order to make the connection. | | yes |\n| DEFAULT_RECIPIENT_IRC | You can have different channels per role, by editing `DEFAULT_RECIPIENT_IRC` with the channel you want | | yes |\n\n##### nc path\n\n```sh\n#------------------------------------------------------------------------------\n# external commands\n#\n# The full path of the nc command.\n# If empty, the system $PATH will be searched for it.\n# If not found, irc notifications will be silently disabled.\nnc="/usr/bin/nc"\n```\n\n\n##### DEFAULT_RECIPIENT_IRC\n\nThe `DEFAULT_RECIPIENT_IRC` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_irc[sysadmin]="#systems"\nrole_recipients_irc[domainadmin]="#domains"\nrole_recipients_irc[dba]="#databases #systems"\nrole_recipients_irc[webmaster]="#marketing #development"\nrole_recipients_irc[proxyadmin]="#proxy-admin"\nrole_recipients_irc[sitemgr]="#sites"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# irc notification options\n#\nSEND_IRC="YES"\nDEFAULT_RECIPIENT_IRC="#system-alarms"\nIRC_NETWORK="irc.freenode.net"\nIRC_NICKNAME="netdata-alarm-user"\nIRC_REALNAME="netdata-user"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/irc/metadata.yaml"},{id:"notify-kavenegar",meta:{name:"Kavenegar",link:"https://kavenegar.com/",categories:["notify.agent"],icon_filename:"kavenegar.png"},keywords:["Kavenegar"],overview:"# Kavenegar\n\n[Kavenegar](https://kavenegar.com/) as service for software developers, based in Iran, provides send and receive SMS, calling voice by using its APIs.\nYou can send notifications to Kavenegar using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The APIKEY and Sender from http://panel.kavenegar.com/client/setting/account\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_KAVENEGAR | Set `SEND_KAVENEGAR` to YES | YES | yes |\n| KAVENEGAR_API_KEY | Set `KAVENEGAR_API_KEY` to your API key. | | yes |\n| KAVENEGAR_SENDER | Set `KAVENEGAR_SENDER` to the value of your Sender. | | yes |\n| DEFAULT_RECIPIENT_KAVENEGAR | Set `DEFAULT_RECIPIENT_KAVENEGAR` to the SMS recipient you want the alert notifications to be sent to. You can define multiple recipients like this: 09155555555 09177777777. | | yes |\n\n##### DEFAULT_RECIPIENT_KAVENEGAR\n\nAll roles will default to this variable if lest unconfigured.\n\nYou can then have different SMS recipients per role, by editing `DEFAULT_RECIPIENT_KAVENEGAR` with the SMS recipients you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_kavenegar[sysadmin]="09100000000"\nrole_recipients_kavenegar[domainadmin]="09111111111"\nrole_recipients_kavenegar[dba]="0922222222"\nrole_recipients_kavenegar[webmaster]="0933333333"\nrole_recipients_kavenegar[proxyadmin]="0944444444"\nrole_recipients_kavenegar[sitemgr]="0955555555"\n```\n\nThe values you provide should be defined as environments in `/etc/alertad.conf` with `ALLOWED_ENVIRONMENTS` option.\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Kavenegar (Kavenegar.com) SMS options\n\nSEND_KAVENEGAR="YES"\nKAVENEGAR_API_KEY="XXXXXXXXXXXX"\nKAVENEGAR_SENDER="YYYYYYYY"\nDEFAULT_RECIPIENT_KAVENEGAR="0912345678"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/kavenegar/metadata.yaml"},{id:"notify-matrix",meta:{name:"Matrix",link:"https://spec.matrix.org/unstable/push-gateway-api/",categories:["notify.agent"],icon_filename:"matrix.svg"},keywords:["Matrix"],overview:"# Matrix\n\nSend notifications to Matrix network rooms using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The url of the homeserver (`https://homeserver:port`).\n- Credentials for connecting to the homeserver, in the form of a valid access token for your account (or for a dedicated notification account). These tokens usually don\'t expire.\n- The room ids that you want to sent the notification to.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_MATRIX | Set `SEND_MATRIX` to YES | YES | yes |\n| MATRIX_HOMESERVER | set `MATRIX_HOMESERVER` to the URL of the Matrix homeserver. | | yes |\n| MATRIX_ACCESSTOKEN | Set `MATRIX_ACCESSTOKEN` to the access token from your Matrix account. | | yes |\n| DEFAULT_RECIPIENT_MATRIX | Set `DEFAULT_RECIPIENT_MATRIX` to the rooms you want the alert notifications to be sent to. The format is `!roomid:homeservername`. | | yes |\n\n##### MATRIX_ACCESSTOKEN\n\nTo obtain the access token, you can use the following curl command:\n```\ncurl -XPOST -d \'{"type":"m.login.password", "user":"example", "password":"wordpass"}\' "https://homeserver:8448/_matrix/client/r0/login"\n```\n\n\n##### DEFAULT_RECIPIENT_MATRIX\n\nThe room ids are unique identifiers and can be obtained from the room settings in a Matrix client (e.g. Riot).\n\nYou can define multiple rooms like this: `!roomid1:homeservername` `!roomid2:homeservername`.\n\nAll roles will default to this variable if left unconfigured.\n\nYou can have different rooms per role, by editing `DEFAULT_RECIPIENT_MATRIX` with the `!roomid:homeservername` you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_matrix[sysadmin]="!roomid1:homeservername"\nrole_recipients_matrix[domainadmin]="!roomid2:homeservername"\nrole_recipients_matrix[dba]="!roomid3:homeservername"\nrole_recipients_matrix[webmaster]="!roomid4:homeservername"\nrole_recipients_matrix[proxyadmin]="!roomid5:homeservername"\nrole_recipients_matrix[sitemgr]="!roomid6:homeservername"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Matrix notifications\n\nSEND_MATRIX="YES"\nMATRIX_HOMESERVER="https://matrix.org:8448"\nMATRIX_ACCESSTOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"\nDEFAULT_RECIPIENT_MATRIX="!XXXXXXXXXXXX:matrix.org"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/matrix/metadata.yaml"},{id:"notify-messagebird",meta:{name:"MessageBird",link:"https://messagebird.com/",categories:["notify.agent"],icon_filename:"messagebird.svg"},keywords:["MessageBird"],overview:"# MessageBird\n\nSend notifications to MessageBird using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- An access key under \'API ACCESS (REST)\' (you will want a live key), you can read more [here](https://developers.messagebird.com/quickstarts/sms/test-credits-api-keys/).\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_MESSAGEBIRD | Set `SEND_MESSAGEBIRD` to YES | YES | yes |\n| MESSAGEBIRD_ACCESS_KEY | Set `MESSAGEBIRD_ACCESS_KEY` to your API key. | | yes |\n| MESSAGEBIRD_NUMBER | Set `MESSAGEBIRD_NUMBER` to the MessageBird number you want to use for the alert. | | yes |\n| DEFAULT_RECIPIENT_MESSAGEBIRD | Set `DEFAULT_RECIPIENT_MESSAGEBIRD` to the number you want the alert notification to be sent as an SMS. You can define multiple recipients like this: +15555555555 +17777777777. | | yes |\n\n##### DEFAULT_RECIPIENT_MESSAGEBIRD\n\nAll roles will default to this variable if left unconfigured.\n\nYou can then have different recipients per role, by editing `DEFAULT_RECIPIENT_MESSAGEBIRD` with the number you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_messagebird[sysadmin]="+15555555555"\nrole_recipients_messagebird[domainadmin]="+15555555556"\nrole_recipients_messagebird[dba]="+15555555557"\nrole_recipients_messagebird[webmaster]="+15555555558"\nrole_recipients_messagebird[proxyadmin]="+15555555559"\nrole_recipients_messagebird[sitemgr]="+15555555550"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Messagebird (messagebird.com) SMS options\n\nSEND_MESSAGEBIRD="YES"\nMESSAGEBIRD_ACCESS_KEY="XXXXXXXX"\nMESSAGEBIRD_NUMBER="XXXXXXX"\nDEFAULT_RECIPIENT_MESSAGEBIRD="+15555555555"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/messagebird/metadata.yaml"},{id:"notify-ntfy",meta:{name:"ntfy",link:"https://ntfy.sh/",categories:["notify.agent"],icon_filename:"ntfy.svg"},keywords:["ntfy"],overview:"# ntfy\n\n[ntfy](https://ntfy.sh/) (pronounce: notify) is a simple HTTP-based [pub-sub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, entirely without signup, cost or setup. It's also [open source](https://github.com/binwiederhier/ntfy) if you want to run your own server.\nYou can send alerts to an ntfy server using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- (Optional) A [self-hosted ntfy server](https://docs.ntfy.sh/faq/#can-i-self-host-it), in case you don\'t want to use https://ntfy.sh\n- A new [topic](https://ntfy.sh/#subscribe) for the notifications to be published to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_NTFY | Set `SEND_NTFY` to YES | YES | yes |\n| DEFAULT_RECIPIENT_NTFY | URL formed by the server-topic combination you want the alert notifications to be sent to. Unless hosting your own server, the server should always be set to https://ntfy.sh. | | yes |\n| NTFY_USERNAME | The username for netdata to use to authenticate with an ntfy server. | | no |\n| NTFY_PASSWORD | The password for netdata to use to authenticate with an ntfy server. | | no |\n| NTFY_ACCESS_TOKEN | The access token for netdata to use to authenticate with an ntfy server. | | no |\n\n##### DEFAULT_RECIPIENT_NTFY\n\nYou can define multiple recipient URLs like this: `https://SERVER1/TOPIC1` `https://SERVER2/TOPIC2`\n\nAll roles will default to this variable if left unconfigured.\n\nYou can then have different servers and/or topics per role, by editing DEFAULT_RECIPIENT_NTFY with the server-topic combination you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_ntfy[sysadmin]="https://SERVER1/TOPIC1"\nrole_recipients_ntfy[domainadmin]="https://SERVER2/TOPIC2"\nrole_recipients_ntfy[dba]="https://SERVER3/TOPIC3"\nrole_recipients_ntfy[webmaster]="https://SERVER4/TOPIC4"\nrole_recipients_ntfy[proxyadmin]="https://SERVER5/TOPIC5"\nrole_recipients_ntfy[sitemgr]="https://SERVER6/TOPIC6"\n```\n\n\n##### NTFY_USERNAME\n\nOnly useful on self-hosted ntfy instances. See [users and roles](https://docs.ntfy.sh/config/#users-and-roles) for details.\nEnsure that your user has proper read/write access to the provided topic in `DEFAULT_RECIPIENT_NTFY`\n\n\n##### NTFY_PASSWORD\n\nOnly useful on self-hosted ntfy instances. See [users and roles](https://docs.ntfy.sh/config/#users-and-roles) for details.\nEnsure that your user has proper read/write access to the provided topic in `DEFAULT_RECIPIENT_NTFY`\n\n\n##### NTFY_ACCESS_TOKEN\n\nThis can be used in place of `NTFY_USERNAME` and `NTFY_PASSWORD` to authenticate with a self-hosted ntfy instance. See [access tokens](https://docs.ntfy.sh/config/?h=access+to#access-tokens) for details.\nEnsure that the token user has proper read/write access to the provided topic in `DEFAULT_RECIPIENT_NTFY`\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\nSEND_NTFY="YES"\nDEFAULT_RECIPIENT_NTFY="https://ntfy.sh/netdata-X7seHg7d3Tw9zGOk https://ntfy.sh/netdata-oIPm4IK1IlUtlA30"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/ntfy/metadata.yaml"},{id:"notify-opsgenie",meta:{name:"OpsGenie",link:"https://www.atlassian.com/software/opsgenie",categories:["notify.agent"],icon_filename:"opsgenie.png"},keywords:["OpsGenie"],overview:"# OpsGenie\n\nOpsgenie is an alerting and incident response tool. It is designed to group and filter alarms, build custom routing rules for on-call teams, and correlate deployments and commits to incidents.\nYou can send notifications to Opsgenie using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- An Opsgenie integration. You can create an [integration](https://docs.opsgenie.com/docs/api-integration) in the [Opsgenie](https://www.atlassian.com/software/opsgenie) dashboard.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_OPSGENIE | Set `SEND_OPSGENIE` to YES | YES | yes |\n| OPSGENIE_API_KEY | Set `OPSGENIE_API_KEY` to your API key. | | yes |\n| OPSGENIE_API_URL | Set `OPSGENIE_API_URL` to the corresponding URL if required, for example there are region-specific API URLs such as `https://eu.api.opsgenie.com`. | https://api.opsgenie.com | no |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\nSEND_OPSGENIE="YES"\nOPSGENIE_API_KEY="11111111-2222-3333-4444-555555555555"\nOPSGENIE_API_URL=""\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/opsgenie/metadata.yaml"},{id:"notify-pagerduty",meta:{name:"PagerDuty",link:"https://www.pagerduty.com/",categories:["notify.agent"],icon_filename:"pagerduty.png"},keywords:["PagerDuty"],overview:"# PagerDuty\n\nPagerDuty is an enterprise incident resolution service that integrates with ITOps and DevOps monitoring stacks to improve operational reliability and agility. From enriching and aggregating events to correlating them into incidents, PagerDuty streamlines the incident management process by reducing alert noise and resolution times.\nYou can send notifications to PagerDuty using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- An installation of the [PagerDuty](https://www.pagerduty.com/docs/guides/agent-install-guide/) agent on the node running the Netdata Agent\n- A PagerDuty Generic API service using either the `Events API v2` or `Events API v1`\n- [Add a new service](https://support.pagerduty.com/docs/services-and-integrations#section-configuring-services-and-integrations) to PagerDuty. Click Use our API directly and select either `Events API v2` or `Events API v1`. Once you finish creating the service, click on the Integrations tab to find your Integration Key.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_PD | Set `SEND_PD` to YES | YES | yes |\n| DEFAULT_RECIPIENT_PD | Set `DEFAULT_RECIPIENT_PD` to the PagerDuty service key you want the alert notifications to be sent to. You can define multiple service keys like this: `pd_service_key_1` `pd_service_key_2`. | | yes |\n\n##### DEFAULT_RECIPIENT_PD\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PD` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_pd[sysadmin]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa"\nrole_recipients_pd[domainadmin]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb"\nrole_recipients_pd[dba]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc"\nrole_recipients_pd[webmaster]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd"\nrole_recipients_pd[proxyadmin]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe"\nrole_recipients_pd[sitemgr]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# pagerduty.com notification options\n\nSEND_PD="YES"\nDEFAULT_RECIPIENT_PD="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"\nUSE_PD_VERSION="2"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/pagerduty/metadata.yaml"},{id:"notify-prowl",meta:{name:"Prowl",link:"https://www.prowlapp.com/",categories:["notify.agent"],icon_filename:"prowl.png"},keywords:["Prowl"],overview:"# Prowl\n\nSend notifications to Prowl using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n\n## Limitations\n\n- Because of how Netdata integrates with Prowl, there is a hard limit of at most 1000 notifications per hour (starting from the first notification sent). Any alerts beyond the first thousand in an hour will be dropped.\n- Warning messages will be sent with the 'High' priority, critical messages will be sent with the 'Emergency' priority, and all other messages will be sent with the normal priority. Opening the notification's associated URL will take you to the Netdata dashboard of the system that issued the alert, directly to the chart that it triggered on.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- A Prowl API key, which can be requested through the Prowl website after registering\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_PROWL | Set `SEND_PROWL` to YES | YES | yes |\n| DEFAULT_RECIPIENT_PROWL | Set `DEFAULT_RECIPIENT_PROWL` to the Prowl API key you want the alert notifications to be sent to. You can define multiple API keys like this: `APIKEY1`, `APIKEY2`. | | yes |\n\n##### DEFAULT_RECIPIENT_PROWL\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PROWL` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_prowl[sysadmin]="AAAAAAAA"\nrole_recipients_prowl[domainadmin]="BBBBBBBBB"\nrole_recipients_prowl[dba]="CCCCCCCCC"\nrole_recipients_prowl[webmaster]="DDDDDDDDDD"\nrole_recipients_prowl[proxyadmin]="EEEEEEEEEE"\nrole_recipients_prowl[sitemgr]="FFFFFFFFFF"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# iOS Push Notifications\n\nSEND_PROWL="YES"\nDEFAULT_RECIPIENT_PROWL="XXXXXXXXXX"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/prowl/metadata.yaml"},{id:"notify-pushbullet",meta:{name:"Pushbullet",link:"https://www.pushbullet.com/",categories:["notify.agent"],icon_filename:"pushbullet.png"},keywords:["Pushbullet"],overview:"# Pushbullet\n\nSend notifications to Pushbullet using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- A Pushbullet access token that can be created in your [account settings](https://www.pushbullet.com/#settings/account).\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| Send_PUSHBULLET | Set `Send_PUSHBULLET` to YES | YES | yes |\n| PUSHBULLET_ACCESS_TOKEN | set `PUSHBULLET_ACCESS_TOKEN` to the access token you generated. | | yes |\n| DEFAULT_RECIPIENT_PUSHBULLET | Set `DEFAULT_RECIPIENT_PUSHBULLET` to the email (e.g. `example@domain.com`) or the channel tag (e.g. `#channel`) you want the alert notifications to be sent to. | | yes |\n\n##### DEFAULT_RECIPIENT_PUSHBULLET\n\nYou can define multiple entries like this: user1@email.com user2@email.com.\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PUSHBULLET` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_pushbullet[sysadmin]="user1@email.com"\nrole_recipients_pushbullet[domainadmin]="user2@mail.com"\nrole_recipients_pushbullet[dba]="#channel1"\nrole_recipients_pushbullet[webmaster]="#channel2"\nrole_recipients_pushbullet[proxyadmin]="user3@mail.com"\nrole_recipients_pushbullet[sitemgr]="user4@mail.com"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# pushbullet (pushbullet.com) push notification options\n\nSEND_PUSHBULLET="YES"\nPUSHBULLET_ACCESS_TOKEN="XXXXXXXXX"\nDEFAULT_RECIPIENT_PUSHBULLET="admin1@example.com admin3@somemail.com #examplechanneltag #anotherchanneltag"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/pushbullet/metadata.yaml"},{id:"notify-pushover",meta:{name:"PushOver",link:"https://pushover.net/",categories:["notify.agent"],icon_filename:"pushover.png"},keywords:["PushOver"],overview:"# PushOver\n\nSend notification to Pushover using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n- Netdata will send warning messages with priority 0 and critical messages with priority 1.\n- Pushover allows you to select do-not-disturb hours. The way this is configured, critical notifications will ring and vibrate your phone, even during the do-not-disturb-hours.\n- All other notifications will be delivered silently.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- An Application token. You can use the same on all your Netdata servers.\n- A User token for each user you are going to send notifications to. This is the actual recipient of the notification.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_PUSHOVER | Set `SEND_PUSHOVER` to YES | YES | yes |\n| PUSHOVER_WEBHOOK_URL | set `PUSHOVER_WEBHOOK_URL` to your Pushover Application token. | | yes |\n| DEFAULT_RECIPIENT_PUSHOVER | Set `DEFAULT_RECIPIENT_PUSHOVER` the Pushover User token you want the alert notifications to be sent to. You can define multiple User tokens like this: `USERTOKEN1` `USERTOKEN2`. | | yes |\n\n##### DEFAULT_RECIPIENT_PUSHOVER\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PUSHOVER` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_pushover[sysadmin]="USERTOKEN1"\nrole_recipients_pushover[domainadmin]="USERTOKEN2"\nrole_recipients_pushover[dba]="USERTOKEN3 USERTOKEN4"\nrole_recipients_pushover[webmaster]="USERTOKEN5"\nrole_recipients_pushover[proxyadmin]="USERTOKEN6"\nrole_recipients_pushover[sitemgr]="USERTOKEN7"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# pushover (pushover.net) global notification options\n\nSEND_PUSHOVER="YES"\nPUSHOVER_APP_TOKEN="XXXXXXXXX"\nDEFAULT_RECIPIENT_PUSHOVER="USERTOKEN"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/pushover/metadata.yaml"},{id:"notify-rocketchat",meta:{name:"RocketChat",link:"https://rocket.chat/",categories:["notify.agent"],icon_filename:"rocketchat.png"},keywords:["RocketChat"],overview:"# RocketChat\n\nSend notifications to Rocket.Chat using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by RocketChat. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).\n- One or more channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_ROCKETCHAT | Set `SEND_ROCKETCHAT` to `YES` | YES | yes |\n| ROCKETCHAT_WEBHOOK_URL | set `ROCKETCHAT_WEBHOOK_URL` to your webhook URL. | | yes |\n| DEFAULT_RECIPIENT_ROCKETCHAT | Set `DEFAULT_RECIPIENT_ROCKETCHAT` to the channel you want the alert notifications to be sent to. You can define multiple channels like this: `alerts` `systems`. | | yes |\n\n##### DEFAULT_RECIPIENT_ROCKETCHAT\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_ROCKETCHAT` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_rocketchat[sysadmin]="systems"\nrole_recipients_rocketchat[domainadmin]="domains"\nrole_recipients_rocketchat[dba]="databases systems"\nrole_recipients_rocketchat[webmaster]="marketing development"\nrole_recipients_rocketchat[proxyadmin]="proxy_admin"\nrole_recipients_rocketchat[sitemgr]="sites"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# rocketchat (rocket.chat) global notification options\n\nSEND_ROCKETCHAT="YES"\nROCKETCHAT_WEBHOOK_URL="<your_incoming_webhook_url>"\nDEFAULT_RECIPIENT_ROCKETCHAT="monitoring_alarms"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/rocketchat/metadata.yaml"},{id:"notify-slack",meta:{name:"Slack",link:"https://slack.com/",categories:["notify.agent"],icon_filename:"slack.png"},keywords:["Slack"],overview:"# Slack\n\nSend notifications to a Slack workspace using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Slack app along with an incoming webhook, read Slack\'s guide on the topic [here](https://api.slack.com/messaging/webhooks).\n- One or more channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_SLACK | Set `SEND_SLACK` to YES | YES | yes |\n| SLACK_WEBHOOK_URL | set `SLACK_WEBHOOK_URL` to your Slack app\'s webhook URL. | | yes |\n| DEFAULT_RECIPIENT_SLACK | Set `DEFAULT_RECIPIENT_SLACK` to the Slack channel your Slack app is set to send messages to. The syntax for channels is `#channel` or `channel`. | | yes |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# slack (slack.com) global notification options\n\nSEND_SLACK="YES"\nSLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \nDEFAULT_RECIPIENT_SLACK="#alarms"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/slack/metadata.yaml"},{id:"notify-sms",meta:{name:"SMS",link:"http://smstools3.kekekasvi.com/",categories:["notify.agent"],icon_filename:"sms.svg"},keywords:["SMS tools 3","SMS","Messaging"],overview:"# SMS\n\nSend notifications to `smstools3` using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\nThe SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- [Install](http://smstools3.kekekasvi.com/index.php?p=compiling) and [configure](http://smstools3.kekekasvi.com/index.php?p=configure) `smsd`\n- To ensure that the user `netdata` can execute `sendsms`. Any user executing `sendsms` needs to:\n - Have write permissions to /tmp and /var/spool/sms/outgoing\n - Be a member of group smsd\n - To ensure that the steps above are successful, just su netdata and execute sendsms phone message.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| sendsms | Set the path for `sendsms`, otherwise Netdata will search for it in your system `$PATH:` | YES | yes |\n| SEND_SMS | Set `SEND_SMS` to `YES`. | | yes |\n| DEFAULT_RECIPIENT_SMS | Set DEFAULT_RECIPIENT_SMS to the phone number you want the alert notifications to be sent to. You can define multiple phone numbers like this: PHONE1 PHONE2. | | yes |\n\n##### sendsms\n\n# The full path of the sendsms command (smstools3).\n# If empty, the system $PATH will be searched for it.\n# If not found, SMS notifications will be silently disabled.\nsendsms="/usr/bin/sendsms"\n\n\n##### DEFAULT_RECIPIENT_SMS\n\nAll roles will default to this variable if left unconfigured.\n\nYou can then have different phone numbers per role, by editing `DEFAULT_RECIPIENT_SMS` with the phone number you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_sms[sysadmin]="PHONE1"\nrole_recipients_sms[domainadmin]="PHONE2"\nrole_recipients_sms[dba]="PHONE3"\nrole_recipients_sms[webmaster]="PHONE4"\nrole_recipients_sms[proxyadmin]="PHONE5"\nrole_recipients_sms[sitemgr]="PHONE6"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# SMS Server Tools 3 (smstools3) global notification options\nSEND_SMS="YES"\nDEFAULT_RECIPIENT_SMS="1234567890"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/smstools3/metadata.yaml"},{id:"notify-syslog",meta:{name:"syslog",link:"",categories:["notify.agent"],icon_filename:"syslog.png"},keywords:["syslog"],overview:"# syslog\n\nSend notifications to Syslog using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- A working `logger` command for this to work. This is the case on pretty much every Linux system in existence, and most BSD systems.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SYSLOG_FACILITY | Set `SYSLOG_FACILITY` to the facility used for logging, by default this value is set to `local6`. | | yes |\n| DEFAULT_RECIPIENT_SYSLOG | Set `DEFAULT_RECIPIENT_SYSLOG` to the recipient you want the alert notifications to be sent to. | | yes |\n| SEND_SYSLOG | Set SEND_SYSLOG to YES, make sure you have everything else configured before turning this on. | | yes |\n\n##### DEFAULT_RECIPIENT_SYSLOG\n\nTargets are defined as follows:\n\n```\n[[facility.level][@host[:port]]/]prefix\n```\n\nprefix defines what the log messages are prefixed with. By default, all lines are prefixed with \'netdata\'.\n\nThe facility and level are the standard syslog facility and level options, for more info on them see your local logger and syslog documentation. By default, Netdata will log to the local6 facility, with a log level dependent on the type of message (crit for CRITICAL, warning for WARNING, and info for everything else).\n\nYou can configure sending directly to remote log servers by specifying a host (and optionally a port). However, this has a somewhat high overhead, so it is much preferred to use your local syslog daemon to handle the forwarding of messages to remote systems (pretty much all of them allow at least simple forwarding, and most of the really popular ones support complex queueing and routing of messages to remote log servers).\n\nYou can define multiple recipients like this: daemon.notice@loghost:514/netdata daemon.notice@loghost2:514/netdata.\nAll roles will default to this variable if left unconfigured.\n\n\n##### SEND_SYSLOG \n\nYou can then have different recipients per role, by editing DEFAULT_RECIPIENT_SYSLOG with the recipient you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_syslog[sysadmin]="daemon.notice@loghost1:514/netdata"\nrole_recipients_syslog[domainadmin]="daemon.notice@loghost2:514/netdata"\nrole_recipients_syslog[dba]="daemon.notice@loghost3:514/netdata"\nrole_recipients_syslog[webmaster]="daemon.notice@loghost4:514/netdata"\nrole_recipients_syslog[proxyadmin]="daemon.notice@loghost5:514/netdata"\nrole_recipients_syslog[sitemgr]="daemon.notice@loghost6:514/netdata"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# syslog notifications\n\nSEND_SYSLOG="YES"\nSYSLOG_FACILITY=\'local6\'\nDEFAULT_RECIPIENT_SYSLOG="daemon.notice@loghost6:514/netdata"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/syslog/metadata.yaml"},{id:"notify-teams",meta:{name:"Microsoft Teams",link:"https://www.microsoft.com/en-us/microsoft-teams/log-in",categories:["notify.agent"],icon_filename:"msteams.svg"},keywords:["Microsoft","Teams","MS teams"],overview:"# Microsoft Teams\n\nYou can send Netdata alerts to Microsoft Teams using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by Microsoft Teams. You can use the same on all your Netdata servers (or you can have multiple if you like).\n- One or more channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_MSTEAMS | Set `SEND_MSTEAMS` to YES | YES | yes |\n| MSTEAMS_WEBHOOK_URL | set `MSTEAMS_WEBHOOK_URL` to the incoming webhook URL as given by Microsoft Teams. | | yes |\n| DEFAULT_RECIPIENT_MSTEAMS | Set `DEFAULT_RECIPIENT_MSTEAMS` to the encoded Microsoft Teams channel name you want the alert notifications to be sent to. | | yes |\n\n##### DEFAULT_RECIPIENT_MSTEAMS\n\nIn Microsoft Teams the channel name is encoded in the URI after `/IncomingWebhook/`. You can define multiple channels like this: `CHANNEL1` `CHANNEL2`.\n\nAll roles will default to this variable if left unconfigured.\n\nYou can have different channels per role, by editing `DEFAULT_RECIPIENT_MSTEAMS` with the channel you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_msteams[sysadmin]="CHANNEL1"\nrole_recipients_msteams[domainadmin]="CHANNEL2"\nrole_recipients_msteams[dba]="databases CHANNEL3"\nrole_recipients_msteams[webmaster]="CHANNEL4"\nrole_recipients_msteams[proxyadmin]="CHANNEL5"\nrole_recipients_msteams[sitemgr]="CHANNEL6"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Microsoft Teams (office.com) global notification options\n\nSEND_MSTEAMS="YES"\nMSTEAMS_WEBHOOK_URL="https://outlook.office.com/webhook/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX@XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/IncomingWebhook/CHANNEL/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"\nDEFAULT_RECIPIENT_MSTEAMS="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/msteams/metadata.yaml"},{id:"notify-telegram",meta:{name:"Telegram",link:"https://telegram.org/",categories:["notify.agent"],icon_filename:"telegram.svg"},keywords:["Telegram"],overview:"# Telegram\n\nSend notifications to Telegram using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- A bot token. To get one, contact the [@BotFather](https://t.me/BotFather) bot and send the command `/newbot` and follow the instructions. Invite your bot to a group where you want it to send messages.\n- The chat ID for every chat you want to send messages to. Invite [@myidbot](https://t.me/myidbot) bot to the group that will receive notifications, and write the command `/getgroupid@myidbot` to get the group chat ID. Group IDs start with a hyphen, supergroup IDs start with `-100`.\n- Terminal access to the Agent you wish to configure.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_TELEGRAM | Set `SEND_TELEGRAM` to YES | YES | yes |\n| TELEGRAM_BOT_TOKEN | set `TELEGRAM_BOT_TOKEN` to your bot token. | | yes |\n| DEFAULT_RECIPIENT_TELEGRAM | Set `DEFAULT_RECIPIENT_TELEGRAM` to the chat ID you want the alert notifications to be sent to. You can define multiple chat IDs like this: -49999333322 -1009999222255. | | yes |\n\n##### DEFAULT_RECIPIENT_TELEGRAM\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_telegram[sysadmin]="-49999333324"\nrole_recipients_telegram[domainadmin]="-49999333389"\nrole_recipients_telegram[dba]="-10099992222"\nrole_recipients_telegram[webmaster]="-10099992222 -49999333389"\nrole_recipients_telegram[proxyadmin]="-49999333344"\nrole_recipients_telegram[sitemgr]="-49999333876"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# telegram (telegram.org) global notification options\n\nSEND_TELEGRAM="YES"\nTELEGRAM_BOT_TOKEN="111122223:7OpFlFFRzRBbrUUmIjj5HF9Ox2pYJZy5"\nDEFAULT_RECIPIENT_TELEGRAM="-49999333876"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/telegram/metadata.yaml"},{id:"notify-twilio",meta:{name:"Twilio",link:"https://www.twilio.com/",categories:["notify.agent"],icon_filename:"twilio.png"},keywords:["Twilio"],overview:"# Twilio\n\nSend notifications to Twilio using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n",setup:'## Setup\n\n### Prerequisites\n\n#### \n\n- Get your SID, and Token from https://www.twilio.com/console\n- Terminal access to the Agent you wish to configure\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary="Config Options" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_TWILIO | Set `SEND_TWILIO` to YES | YES | yes |\n| TWILIO_ACCOUNT_SID | set `TWILIO_ACCOUNT_SID` to your account SID. | | yes |\n| TWILIO_ACCOUNT_TOKEN | Set `TWILIO_ACCOUNT_TOKEN` to your account token. | | yes |\n| TWILIO_NUMBER | Set `TWILIO_NUMBER` to your account\'s number. | | yes |\n| DEFAULT_RECIPIENT_TWILIO | Set DEFAULT_RECIPIENT_TWILIO to the number you want the alert notifications to be sent to. You can define multiple numbers like this: +15555555555 +17777777777. | | yes |\n\n##### DEFAULT_RECIPIENT_TWILIO\n\nYou can then have different recipients per role, by editing DEFAULT_RECIPIENT_TWILIO with the recipient\'s number you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_twilio[sysadmin]="+15555555555"\nrole_recipients_twilio[domainadmin]="+15555555556"\nrole_recipients_twilio[dba]="+15555555557"\nrole_recipients_twilio[webmaster]="+15555555558"\nrole_recipients_twilio[proxyadmin]="+15555555559"\nrole_recipients_twilio[sitemgr]="+15555555550"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Twilio (twilio.com) SMS options\n\nSEND_TWILIO="YES"\nTWILIO_ACCOUNT_SID="xxxxxxxxx"\nTWILIO_ACCOUNT_TOKEN="xxxxxxxxxx"\nTWILIO_NUMBER="xxxxxxxxxxx"\nDEFAULT_RECIPIENT_TWILIO="+15555555555"\n\n```\n',troubleshooting:'## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n',integration_type:"notification",edit_link:"https://github.com/netdata/netdata/blob/master/src/health/notifications/twilio/metadata.yaml"}];var l=t(74112),c=t(86083),d=t(38819),m=t(58205);const u=(0,i.eU)({key:"integrationsCategoriesAtom",default:function(){let{hideEmptyCategories:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,l.Fc)(s),t=e=>n.find((n=>n.id==e)),o=(0,c.RF)(r);let i=[];if(e){const e=(0,l.rS)(o,t,n);i=n.filter((n=>{let{id:t}=n;return e.includes(t)}))}else i=n;return i}()}),h=(0,i.eU)({key:"topLevelIntegrationsCategoriesAtom",default:(0,i.gD)({key:"topLevelIntegrationsCategoriesState",get:e=>{let{get:n}=e;return(0,l.a8)(n(u))}})}),p=(0,i.eU)({key:"integrationsNavigationHistoryAtom",default:(0,i.gD)({key:"integrationsNavigationHistoryState",get:e=>{let{get:n}=e;return(e=>{var n;let{categories:t,integrations:o}=e;const{selectedIntegrationCategory:i,selectedIntegration:a}=(0,d.PP)(),s=t.find((e=>{let{id:n}=e;return n==(i||m.yI)})),{tree:r}=(0,l.fk)({category:s,getCategoryById:e=>t.find((n=>n.id==e))}),c=null===(n=o.filter((e=>{let{id:n}=e;return n==a})))||void 0===n?void 0:n[0],u=r.filter(Boolean).map(((e,n)=>({...e,type:"category",level:n+1})));return c&&u.push({...c,type:"integration"}),u})({categories:n(u),integrations:n(g)})}})}),g=(0,i.eU)({key:"integrationsNormalized",default:(0,i.gD)({key:"integrationsNormalizedState",get:e=>{let{get:n}=e;return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,c.RF)(r,e)}(n(u))}})}),f=(0,i.eU)({key:"integrationsSearchTerm",default:""}),y=(0,i.eU)({key:"integrationsHistoryBeforeSearch",default:null}),b=(0,i.eU)({key:"integrationsModalOpenAtom",default:"true"==(0,d.PP)().integrationsModalOpen});var _=t(9060);const w=(0,i.gD)({key:"integrationsQuickStart",get:e=>{let{get:n}=e;const t=n(g).filter((e=>e.quickStart>=0));return(0,c.xM)(t)}}),v=()=>(0,i.vc)(y),T=()=>(0,i.L4)(y),k=()=>{const e=x(),n=(0,_.A)(),[t,s]=(0,i.L4)(p),r=(0,i.E0)(y),[,c]=(0,a.N9)("selectedIntegrationCategory"),[,d]=(0,a.N9)("selectedIntegration"),[,u]=(0,a.N9)("selectedIntegrationTab"),h=(0,o.useCallback)((e=>{const{parents:t}=(0,l.fk)({category:e,getCategoryById:n}),o=[...t,e].map(((e,n)=>({...e,type:"category",level:n+1})));s(o),d(""),u(""),r()}),[e,s]),g=(0,o.useCallback)((function(){let{flattenedCategory:e,...t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=e||(t.categories||[])[0],i=o.categoryId||o.id,a=n(i),{parents:c}=(0,l.fk)({category:a,getCategoryById:n}),d=[...c,a].map(((e,n)=>({...e,type:"category",level:n+1})));s([...d,{...t,type:"integration"}]),u(""),r()}),[]),f=(0,o.useCallback)((()=>{t.length>0&&(s(t.slice(0,t.length-1)),r())}),[t,s]),b=(0,o.useMemo)((()=>{const e=t[t.length-1];return"integration"==(null===e||void 0===e?void 0:e.type)?e:null}),[t]),w=(0,o.useMemo)((()=>{const e=t.filter((e=>"category"==e.type))||[];return e.length?e[e.length-1]:null}),[t]),v=(0,o.useCallback)((()=>{const n=e.find((e=>{let{id:n}=e;return n==m.yI})),t=[e.find((e=>{let{id:t}=e;return t==n.parentId})),n].filter(Boolean).map(((e,n)=>({...e,type:"category",level:n+1})));s(t),r()}),[e,s]),T=(0,o.useMemo)((()=>null===w||void 0===w?void 0:w.level),[w]);return(0,o.useEffect)((()=>{null!==w&&void 0!==w&&w.id&&c(w.id)}),[w]),(0,o.useEffect)((()=>{null!==b&&void 0!==b&&b.id&&d(b.id)}),[b]),{history:t,level:T,selectedCategory:w,selectedIntegration:b,pushCategory:h,pushIntegration:g,pop:f,reset:v,setHistory:s}},x=()=>(0,i.vc)(u),P=()=>(0,i.vc)(h),C=()=>{const{selectedCategory:e}=k(),n=x(),t=q();return(0,l.IH)({category:e,integrations:t,categories:n})},q=()=>(0,i.vc)(g),S=()=>(0,i.vc)(w),D=()=>(0,i.vc)(f),A=()=>(0,i.L4)(f),M=()=>(0,i.E0)(f),E=()=>{const e=M(),{reset:n}=k();return()=>{e(),n()}},N=()=>(0,i.L4)(b)},88773:(e,n,t)=>{t.d(n,{$c:()=>r,AG:()=>d,Av:()=>l,BT:()=>m,D6:()=>s,GO:()=>h,Zp:()=>c,gY:()=>u,oO:()=>p});var o=t(8711),i=t(10058),a=t(25159);const s=o.default.div.withConfig({displayName:"styled__LayoutGrid",componentId:"sc-1kju9s3-0"})(["display:grid;grid-template-columns:"," auto;column-gap:32px;padding:0 24px;height:calc( 100vh - ","px - ","px );@media screen and ","{grid-template-columns:"," auto;}@media screen and ","{grid-template-columns:"," auto;}"],(e=>{let{isSidebarCollapsed:n}=e;return n?"".concat(60,"px"):"35%"}),(e=>(0,a.vF)(e.flavour)),(e=>(0,a.u8)(e.flavour)),i.breakpoints.laptop,(e=>{let{isSidebarCollapsed:n}=e;return n?"".concat(60,"px"):"30%"}),i.breakpoints.desktop,(e=>{let{isSidebarCollapsed:n}=e;return n?"".concat(60,"px"):"25%"})),r=o.default.div.withConfig({displayName:"styled__StyledVirtualRow",componentId:"sc-1kju9s3-1"})(["display:grid;grid-template-columns:repeat(",",1fr);grid-auto-rows:","px;column-gap:16px;row-gap:16px;padding-bottom:16px;"],(e=>{let{itemsPerRow:n}=e;return n}),(e=>{let{rowHeight:n}=e;return n>16?n-16:n})),l=(0,o.default)(i.Flex).withConfig({displayName:"styled__CategoryWrapper",componentId:"sc-1kju9s3-2"})(["cursor:pointer;&:hover{background-color:",";}"],(0,i.getColor)("integrationMenuItemHover")),c=(0,o.default)(i.Flex).withConfig({displayName:"styled__Card",componentId:"sc-1kju9s3-3"})(["background:",";img{transition:all 200ms ease-in-out;}&:hover{img{transform:scale(1.2);}}"],(0,i.getColor)("panelBg")),d=(o.default.div.withConfig({displayName:"styled__CardOverlay",componentId:"sc-1kju9s3-4"})(["position:absolute;width:100%;top:0;bottom:0;filter:blur(70px);opacity:0.2;&& img{width:100%;height:100%;}"]),(0,o.default)(i.Icon).withConfig({displayName:"styled__CardIcon",componentId:"sc-1kju9s3-5"})(["position:absolute;top:-20px;left:-35px;transform:rotate(40deg);opacity:0.1;"])),m=(0,o.default)(i.Flex).withConfig({displayName:"styled__CardDescription",componentId:"sc-1kju9s3-6"})(["position:absolute;bottom:0;left:0;transform:translateY(100%);transition:all 200ms ease-in-out;&&.hover{transform:translateY(0);}"]),u=o.default.table.withConfig({displayName:"styled__ContentTable",componentId:"sc-1kju9s3-7"})(["width:100%;border:1px solid ",";margin-top:16px;tr:nth-child(even){background:",";}th{padding:8px 16px;background:",";}td{padding:6px;}"],(0,i.getColor)("borderSecondary"),(0,i.getColor)("mainBackground"),(0,i.getColor)("mainBackground")),h=(0,o.default)(i.PortalSidebar).withConfig({displayName:"styled__SidebarModal",componentId:"sc-1kju9s3-8"})(["width:calc(100vw - 54px);z-index:35;background:",";overflow:",";"],(0,i.getColor)("mainBackground"),(e=>{let{overflow:n="hidden"}=e;return n})),p=(0,o.default)(i.Icon).withConfig({displayName:"styled__CategoryArrow",componentId:"sc-1kju9s3-9"})(["opacity:",";"],(e=>{let{disabled:n}=e;return n?"0":"1"}))},74112:(e,n,t)=>{t.d(n,{Fc:()=>l,IH:()=>h,PQ:()=>m,YK:()=>c,a8:()=>d,fk:()=>g,q1:()=>p,rS:()=>y,vF:()=>b});t(17333),t(3064),t(9920),t(41393),t(14905),t(98992),t(54520),t(72577),t(3949),t(81454),t(8872),t(25509),t(65223),t(60321),t(41927),t(11632),t(64377),t(66771),t(12516),t(68931),t(52514),t(35694),t(52774),t(49536),t(21926),t(94483),t(16215),t(62953);var o=t(63950),i=t.n(o),a=t(58205),s=t(80158),r=t(25159);const l=function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce(((n,t)=>{n.push(function(e){let{children:n,most_popular:t,...o}=e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{...o,name:(0,s.Zr)(o.name),mostPopular:t,parentId:i}}(t,e));const o=t.children||[];return n=[...n,...l(o,t.id)]}),[])},c=function(){const e=[],n=[];(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((t=>{void 0!==t.priority&&t.priority>=0?e.push(t):n.push(t)}));const t=[],o=[];n.forEach((e=>{e.mostPopular?t.push(e):o.push(e)}));const i=(0,r.Wl)("priority"),a=(0,r.Kr)("name"),s=[...e.sort(i),...t.sort(a)];return{categories:[...s,...o.sort(a)],popular:s,rest:o}},d=function(){return((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])||[]).filter((e=>{let{parentId:n}=e;return null==n}))},m=e=>{let{category:n,categories:t}=e;return t.filter((e=>{let{parentId:t}=e;return n.id==t}))},u=e=>{let{category:n,categories:t,allSubcategories:o=[]}=e;return(m({category:n,categories:t})||[]).forEach((e=>{o.push(e),u({category:e,categories:t,allSubcategories:o})})),o},h=e=>{let{category:n={},integrations:t=[],categories:o=[]}=e;if(null==n)return[];const i=u({category:n,categories:o}),a=[n.id,...i.map((e=>{let{id:n}=e;return n}))];return t.filter((e=>{const n=e.categories.map((e=>{let{categoryId:n}=e;return n}));for(let t=0;t<n.length;t++)if(a.includes(n[t]))return!0;return!1}))},p=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const t=n.find((n=>{let{id:t}=n;return t==e}));return t?null===t.parentId?a.aw[t.id]:p(t.parentId,n):null},g=e=>{let{category:n,getCategoryById:t=i()}=e;const o=(e=>((null===e||void 0===e?void 0:e.id)||"").split(".").reduce(((e,n)=>(e.length?e.push([e[e.length-1],n].join(".")):e.push(n),e)),[]))(n).map((e=>t(e)));return{tree:o,parents:o.length>1?o.slice(0,o.length-1):[],topLevelCategory:o[0]}},f=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i(),t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i(),o=arguments.length>3?arguments[3]:void 0;if(!e)return;const a=t(e);if(!a)return;n(a);const s=o.find((e=>{let{id:n}=e;return n==(null===a||void 0===a?void 0:a.parentId)}));s&&f(s.id,n,t,o)},y=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i(),t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const o=new Set,a=e=>o.add(e.id);return e.forEach((e=>{e.categories.forEach((e=>{let{categoryId:o}=e;f(o,a,n,t)}))})),Array.from(o)},b=e=>{let{height:n,topLevelCategories:t=[],categories:o=[],setState:s=i()}=e;const r={};if(!n||!t.length||!o.length)return r;const l=Math.floor((n/t.length-a.V0)/a.V0);t.forEach((e=>{const n=m({category:e,categories:o});r[e.id]={subcategories:n.length,limit:n.length>l?l:0}})),Object.entries(r).forEach((e=>{let[n,{subcategories:t,limit:o}]=e;n!=a.qC&&o<l&&(r[a.qC]={...r[a.qC],limit:r[a.qC].limit+(l-t)})})),s(r)}},25159:(e,n,t)=>{t.d(n,{Kr:()=>i,Wl:()=>a,jU:()=>l,u8:()=>r,vF:()=>s});t(41393),t(81454);var o=t(58205);const i=e=>(n,t)=>n[e]<t[e]?-1:n[e]>t[e]?1:0,a=e=>(n,t)=>n[e]-t[e],s=function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.Jr;return(null===(e=o.jI[n])||void 0===e||null===(e=e.header)||void 0===e?void 0:e.height)||0},r=function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.Jr;return(null===(e=o.jI[n])||void 0===e||null===(e=e.cncf)||void 0===e?void 0:e.height)||0},l=e=>{var n;return"string"===typeof e?e:Array.isArray(e)?e.map(l).join(""):null!==e&&void 0!==e&&null!==(n=e.props)&&void 0!==n&&n.children?l(e.props.children):""}},86083:(e,n,t)=>{t.d(n,{Cj:()=>d,Fd:()=>m,M6:()=>u,RF:()=>l,xM:()=>c});t(17333),t(3064),t(9920),t(41393),t(14905),t(98992),t(54520),t(72577),t(3949),t(81454),t(8872),t(62953);var o=t(63950),i=t.n(o),a=t(49286),s=t(25159);const r=function(){let{installDescription:e,additionalInfo:n,platformInfo:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[e,"{% command methods=$methods isNightly=$isNightly claimToken=$claimToken claimUrl=$claimUrl claimRooms=$claimRooms /%}",n,t].join("\n\n")},l=function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((n=>function(){let{meta:e={},...n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const{monitored_instance:o,keywords:i=[],most_popular:s,community:l}=e,{name:c,categories:d=[],icon_filename:m}=o||e,u="deploy"==n.integration_type;return(0,a.bn)({name:c,categories:d.map((e=>{const n=t.find((n=>n.id==e));return{categoryId:e,name:null===n||void 0===n?void 0:n.name}})),icon:"https://www.netdata.cloud/img/"+m,keywords:i,mostPopular:s,community:l,...n,...u?{deployContent:r({installDescription:n.install_description,methods:n.methods,additionalInfo:n.additional_info,platformInfo:n.platform_info})}:{}})}(n,e)))},c=function(){const e=[],n=[];(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((t=>{void 0!==t.quickStart&&t.quickStart>=0?e.push(t):n.push(t)}));const t=[],o=[];n.forEach((e=>{e.mostPopular?t.push(e):o.push(e)}));const i=[],a=[];o.forEach((e=>{e.community?a.push(e):i.push(e)}));const r=(0,s.Wl)("quickStart"),l=(0,s.Kr)("name");return[...e.sort(r),...t.sort(l),...i.sort(l),...a.sort(l)]},d=e=>{let{searchTerm:n="",integrations:t=[]}=e;if(!n)return t;const o=n.toLocaleLowerCase();return t.filter((e=>{const{name:n,keywords:t,categories:i=[]}=e;if(n.toLocaleLowerCase().includes(o))return!0;const a=i.map((e=>{let{name:n}=e;return n})).filter(Boolean);return[...t,...a].join(",").toLocaleLowerCase().includes(o)}))},m=function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"id";const n=[];return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((t=>{n.find((n=>n[e]==t[e]))||n.push(t)})),n},u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return e.reduce(((e,t)=>(t.categories.forEach((o=>{e.push(((e,n,t)=>({...e,flattenedKey:"".concat(e.id,"-").concat(n.categoryId),flattenedCategory:t(n.categoryId)}))(t,o,n))})),e)),[])}},42402:(e,n,t)=>{t.d(n,{Ay:()=>g,FB:()=>m,TZ:()=>u,mK:()=>p,uL:()=>d});var o=t(58168),i=t(96540),a=t(10058),s=t(35261);const r="delete-node-dialog",l="deleteNodeDialog",c=e=>{const n=1===e;return"Delete ".concat(e," ").concat(n?"node":"nodes")},d=e=>"Delete ".concat(e," node"),m=e=>{let{name:n,nodesLength:t}=e;return t?1===t&&n?d(n):c(t):""},u=e=>{let{name:n}=e;return i.createElement(i.Fragment,null,"You are about to delete offline node ",i.createElement("strong",null,n),".",i.createElement("br",null),"Node will be removed from all rooms and will no longer be accessible. Plus all metadata will be removed.",i.createElement("br",null),"Are you sure you want to continue?")},h=e=>{let{nodesLength:n}=e;const t=1===n;return i.createElement(i.Fragment,null,"You are about to delete ",t?"this":"these"," ",i.createElement("strong",null,n," offline ",t?"node":"nodes"),".",i.createElement("br",null),t?"Node":"Nodes"," will be removed from all rooms and will no longer be accessible. Plus all metadata will be removed.",i.createElement("br",null),"Are you sure you want to continue?")},p=e=>{let{name:n,nodesLength:t}=e;return t?1===t&&n?i.createElement(u,{name:n}):i.createElement(h,{nodesLength:t}):""},g=e=>{let{ids:n=[],name:t,onClose:m}=e;const p=(0,s.A)(),g=t?{"data-ga":"".concat(r,"-with-name"),"data-testid":"".concat(l,"WithName"),message:i.createElement(u,{name:t}),title:d(t)}:{"data-ga":"".concat(r,"Bulk"),"data-testid":"".concat(l,"Bulk"),message:i.createElement(h,{nodesLength:n.length}),title:c(n.length)};return i.createElement(a.ConfirmationDialog,(0,o.A)({confirmLabel:"Yes, delete",handleConfirm:async()=>{await p(n)},handleDecline:m},g))}},63119:(e,n,t)=>{t.d(n,{A:()=>u,u:()=>m});var o=t(58168),i=t(96540),a=t(84976),s=t(10058),r=t(47762),l=t(4959),c=t(29217);const d=e=>{let{isLive:n,name:t}=e;return i.createElement(i.Fragment,null,i.createElement(l.cK,{"data-testid":"node-name-text",isLive:n},t),i.createElement(s.Icon,{color:"placeholder","data-testid":"node-name-icon",name:"goToNode",width:"18px",height:"18px"}))},m=e=>{let{name:n}=e;return i.createElement(s.Flex,{width:"300px",column:!0,gap:1},i.createElement(s.Text,{strong:!0},"Locked!"),i.createElement(s.Text,null,"The node ",i.createElement(s.Text,{strong:!0},n)," is locked."),i.createElement(s.Text,null,"Your plan is limited to 5 nodes. Upgrade your plan for no limitations."))},u=(h=e=>{let{id:n,state:t,isLive:s,name:c,isPreferred:m,...u}=e;const h=(0,r.Zl)(n);return("stale"===t||s)&&m?i.createElement(a.N_,(0,o.A)({"data-testid":"node-name-link",to:h},u),i.createElement(l.Zw,{"data-testid":"node-name-container"},i.createElement(d,{isLive:s,name:c}))):i.createElement(d,{isLive:s,name:c})},e=>e.isPreferred?i.createElement(h,e):i.createElement(c.A,{plain:!0,content:i.createElement(m,{name:e.name}),isBasic:!0},i.createElement(s.Flex,{gap:1},i.createElement(s.Icon,{name:"padlock",width:"18px",height:"18px",color:"placeholder"}),i.createElement(h,e))));var h},74379:(e,n,t)=>{t.d(n,{Ay:()=>f,G:()=>h,VN:()=>g,aq:()=>u,fS:()=>d});var o=t(58168),i=t(96540),a=t(10058),s=t(17632),r=t(69765);const l="remove-node-dialog",c="removeNodeDialog",d=e=>"Remove ".concat(e," node"),m=e=>{const n=1===e;return"Remove ".concat(e," ").concat(n?"node":"nodes")},u=e=>{let{name:n,nodesLength:t}=e;return t?1===t&&n?d(n):m(t):""},h=e=>{let{name:n,roomName:t}=e;return i.createElement(i.Fragment,null,"You are about to remove ",i.createElement("strong",null,n)," from room ",i.createElement("strong",null,t),".",i.createElement("br",null),"Are you sure you want to continue?")},p=e=>{let{nodesLength:n,roomName:t}=e;const o=1===n;return i.createElement(i.Fragment,null,"You are about to remove"," ",i.createElement("strong",null,n," ",o?"node":"nodes")," ","from room ",i.createElement("strong",null,t),".",i.createElement("br",null),"Are you sure you want to continue?")},g=e=>{let{name:n,nodesLength:t,roomName:o}=e;return t?1===t&&n?i.createElement(h,{name:n,roomName:o}):i.createElement(p,{nodesLength:t,roomName:o}):""},f=e=>{let{ids:n=[],name:t,onClose:u}=e;const g=(0,s.A)(),f=n.length,y=(0,r.XA)("name"),b=t?{"data-ga":"".concat(l,"WithName"),"data-testid":"".concat(c,"WithName"),message:i.createElement(h,{name:t,roomName:y}),title:d(t)}:{"data-ga":"".concat(l,"Bulk"),"data-testid":"".concat(c,"Bulk"),message:i.createElement(p,{nodesLength:f,roomName:y}),title:m(f)};return i.createElement(a.ConfirmationDialog,(0,o.A)({handleConfirm:async()=>{await g(n)},handleDecline:u},b))}},4959:(e,n,t)=>{t.d(n,{AS:()=>s,K:()=>l,SS:()=>c,Zw:()=>d,cK:()=>m,d0:()=>r});var o=t(8711),i=t(10058);const a=(0,o.default)(i.Button).attrs({flavour:"hollow",neutral:!0,tiny:!0}).withConfig({displayName:"styled__ActionButton",componentId:"sc-31e37b-0"})(["&&&{border-color:",";&:hover{background-color:",";}.button-icon{"," fill:",";}}"],(0,i.getColor)("nodeBadgeBorder"),(0,i.getColor)("nodeBadgeBackground"),(e=>{let{iconSize:n}=e;return n&&"\n height: ".concat(n,";\n width: ").concat(n,";\n ")}),(0,i.getColor)("textDescription")),s=(0,o.default)(a).attrs({icon:"trashcan",iconSize:"15px"}).withConfig({displayName:"styled__ObsoleteButton",componentId:"sc-31e37b-1"})([""]),r=(0,o.default)(a).attrs({icon:"removeNode"}).withConfig({displayName:"styled__RemoveButton",componentId:"sc-31e37b-2"})([""]),l=(0,o.default)(i.Box).attrs({background:"placeholder",height:4,width:.25}).withConfig({displayName:"styled__InfoSeparator",componentId:"sc-31e37b-3"})([""]),c=(0,o.default)(i.Flex).withConfig({displayName:"styled__NodeActions",componentId:"sc-31e37b-4"})(["display:none;"]),d=(0,o.default)(i.Flex).attrs({alignItems:"center",gap:1}).withConfig({displayName:"styled__NodeNameContainer",componentId:"sc-31e37b-5"})(["&:hover{h5{color:#00ab44;text-decoration:underline;text-decoration-color:#00ab44;}svg{fill:#00ab44;}}"]),m=(0,o.default)(i.H5).attrs((e=>{let{isLive:n}=e;return{cursor:n?"pointer":"auto",color:n?"text":"textDescription"}})).withConfig({displayName:"styled__NodeName",componentId:"sc-31e37b-6"})([""])},60383:(e,n,t)=>{t.d(n,{A:()=>V});var o=t(96540),i=t(10058),a=t(67990),s=t(38413),r=t(46741),l=(t(41393),t(81454),t(62953),t(47767)),c=t(69765),d=t(47762),m=t(97245),u=(t(8159),t(98992),t(37550),t(33931)),h=t(78969),p=t(80158),g=t(82432);const f=e=>{let{icon:n,status:t,handleNavigateToDocs:a,message:s}=e;return o.createElement(i.Flex,{column:!0,width:{max:"200px"},gap:2},o.createElement(i.Flex,{alignItems:"center",gap:2},o.createElement(i.Icon,{name:n,size:"small"}),o.createElement(i.TextMicro,null,(0,p.Zr)(t))),o.createElement(i.Flex,{column:!0,gap:2},o.createElement(i.TextMicro,null,s),a&&o.createElement(i.TextMicro,{"data-testid":"text-agent-outdated-critical"},o.createElement(i.Box,{"data-testid":"open-add-node",onClick:a,as:i.TextMicro,cursor:"pointer",textDecoration:"underline"}," ","Check here"," "),"for troubleshooting")))},y=e=>{let{state:n,name:t}=e;const a=(0,g.jZ)(n),{icon:s,text:r,textColor:l,indicatorWrapperColor:c,tooltip:d}=h.Q$[a.toLocaleLowerCase()],m=(0,o.useCallback)((()=>{window.open("https://learn.netdata.cloud/guides/troubleshoot/troubleshooting-agent-with-cloud-connection","_blank","noopener,noreferrer")}),[]),u="".concat(t," ").concat(d);return o.createElement(i.Tooltip,{allowHoverOnTooltip:!0,content:o.createElement(f,{message:u,icon:s,status:r,handleNavigateToDocs:"Pending"===a?m:void 0})},o.createElement(i.Flex,{margin:[0,"auto",0,"auto"],height:"20px",padding:[.5,0],border:{side:"all",color:c},background:"nodeBadgeBackground",justifyContent:"center",width:30,round:4,gap:2,alignItems:"center"},o.createElement(i.Icon,{name:s,size:"small",color:l}),o.createElement(i.TextMicro,{strong:!0,color:l},r)))};var b=t(81881),_=t(55905),w=(t(9391),t(17333),t(54520),t(29217)),v=t(87659),T=t(73865),k=t(71835);const x=()=>{const{loaded:e,maxNodes:n}=(0,T.A)();return o.createElement(w.A,{align:"bottom",content:e?"Your current plan allows you to enable up to ".concat(n," nodes"):""},o.createElement(i.Flex,{gap:2},o.createElement(i.Text,null,"Enabled"),e?o.createElement(i.Icon,{name:"informationPress",size:"small",color:"text"}):null))},P=()=>o.createElement(w.A,{content:"For some reason we couldn't load preferred nodes",align:"bottom"},o.createElement(i.Icon,{name:"warning_triangle",color:"warning",size:"small"})),C=e=>{var n;let{row:t}=e;const a=null===(n=t.original)||void 0===n?void 0:n.id,{loaded:s,maxNodes:r,preferredNodes:l,refreshPreferredNodes:c,hasError:m}=(0,T.A)(),u=(0,d.je)(),h=l.includes(a),[p,g]=(0,o.useState)(!1),[f,,y,b]=(0,v.A)(),_=f||!h&&s&&l.length>=r,[,w]=(0,k.A)();(0,o.useEffect)((()=>{s&&!m&&g(h)}),[s,l,m]);const x=(0,o.useCallback)((e=>{y(),g((e=>!e));const n=e.target.checked?[...l,a]:l.filter((e=>e!=a));u(n).then((()=>{c()})).catch((e=>{g((e=>!e)),w(e)})).finally((()=>{b()}))}),[l,a]);return m?o.createElement(P,null):o.createElement(i.Toggle,{colored:!0,onChange:x,checked:p,disabled:_})};var q=t(54830),S=t(69418);function D(e,n){return e===n?0:e>n?1:-1}const A=e=>{let{isSpace:n}=e;const[,,t]=(0,S.A)(),{hasLimitations:a,maxNodes:s,preferredNodes:r}=(0,T.A)(),l=a&&t>s;return(0,o.useMemo)((()=>[...n&&l?[{id:"enabled",header:x,cell:C,sortingFn:(e,n)=>{var t,o;return(null!==(t=e.original)&&void 0!==t&&t.isPreferred?1:0)-(null!==(o=n.original)&&void 0!==o&&o.isPreferred?1:0)}}]:[],{id:"agent",accessorKey:"name",enableColumnFilter:!1,filterFn:(e,n,t)=>{var o;const i=(null===(o=e.original)||void 0===o?void 0:o.name)||"";return null===i||void 0===i?void 0:i.toLowerCase().includes(t)},header:"Name",cell:e=>{let{getValue:n,row:t}=e;return o.createElement(q.A,{nodeId:t.original.id,name:n(),showLockedNodes:l,preferredNodes:r})}},{id:"version",accessorKey:"version",header:"Version",cell:e=>{var n,t;let{getValue:a,row:s}=e;return o.createElement(i.Flex,{gap:1,flexWrap:!0},o.createElement(i.Pill,{flavour:"neutral",hollow:!0},a()),s.original.updateSeverity&&o.createElement(_.A,{name:s.original.name,os:null===(n=s.original.os)||void 0===n?void 0:n.id,container:null===(t=s.original.hw)||void 0===t?void 0:t.container,warningLevel:"critical"===s.original.updateSeverity?"critical":"warning",labels:s.original.labels,version:a(),margin:[1,0]}))}},{id:"state",accessorKey:"state",header:"Status",cell:e=>{let{getValue:n}=e;return o.createElement(u.A,{state:n()})},sortingFn:(e,n)=>D((0,g.GM)(e.original.state),(0,g.GM)(n.original.state)),enableColumnFilter:!0,filterFn:(e,n,t)=>{const o=e.original.state;return t.length<1||t.some((e=>{let{value:n}=e;return"all"===n||n===(0,g.GM)(o)}))},meta:{filter:{component:"select",isMulti:!0,options:[{value:"Offline",label:"Offline"},{value:"Live",label:"Live"},{value:"Stale",label:"Stale"},{value:"Unseen",label:"Unseen"}]},tooltip:o.createElement(b.A,null)}},{id:"connectionToCloud",accessorKey:"state",header:"Connection To Cloud",cell:e=>{let{getValue:n,row:t}=e;const i=t.original;return o.createElement(y,{state:n(),name:i.name})},sortingFn:(e,n)=>D((0,g.jZ)(e.original.state),(0,g.jZ)(n.original.state)),enableColumnFilter:!0,filterFn:(e,n,t)=>{const o=e.original.state;return t.length<1||t.some((e=>{let{value:n}=e;return"all"===n||("created"===o&&"created"===n||("created"!==o&&"completed"===n||void 0))}))},meta:{filter:{component:"select",isMulti:!0,options:[{value:"created",label:"Pending"},{value:"completed",label:"Completed"}]}}},{id:"updateSeverity",accessorKey:"updateSeverity",header:"Severity",cell:e=>{var n,t;let{getValue:i,row:a}=e;const s=a.original;return o.createElement(_.A,{name:s.name,os:null===(n=s.os)||void 0===n?void 0:n.id,container:null===(t=s.hw)||void 0===t?void 0:t.container,warningLevel:s.updateSeverity,labels:s.labels||{},version:s.version,text:i()})}}]),[a,r])};var M=t(42402),E=t(74379),N=t(35261),H=t(17632);const R=e=>{let{openClaimNodeModal:n,roomUntouchable:t,isSpace:i}=e;const a=(0,N.A)(),s=(0,H.A)(),l=(0,c.XA)("name"),d=(0,r.JT)("node:Delete"),m=(0,r.JT)("room:RemoveNode"),u=(0,r.JT)("node:Create"),h=(0,r.JT)("room:AddNode"),p=async(e,n)=>{if(!e)return;const t=(e=>Array.isArray(e)?e.filter((e=>{let{hasAccessibleData:n}=e;return!n})):e.hasAccessibleData?[]:[{id:e.id}])(e),o=t.map((e=>{let{id:n}=e;return n}));await a(o,{onSuccess:n.resetRowSelection})},g=async(e,n)=>{if(!e)return;const t=(e=>Array.isArray(e)?e:[{id:e.id}])(e),o=t.map((e=>{let{id:n}=e;return n}));await s(o,{onSuccess:n.resetRowSelection})};return{rowActions:(0,o.useMemo)((()=>({delete:{confirmLabel:"Yes, delete",confirmationMessage:e=>o.createElement(M.TZ,{name:e.name}),confirmationTitle:e=>(0,M.uL)(e.name),declineLabel:"Cancel",disabledTooltipText:d?"Delete is disabled":"Only admins can delete",handleAction:p,isVisible:!!i,isDisabled:e=>e.disabled||!d,tooltipText:"Delete node from space"},remove:{confirmLabel:"Yes, remove",confirmationMessage:e=>o.createElement(E.G,{name:e.name,roomName:l}),confirmationTitle:e=>(0,E.fS)(e.name),declineLabel:"Cancel",handleAction:g,tooltipText:"Remove node from room",isVisible:!i,isDisabled:e=>e.disabled||t||!m,disabledTooltipText:t?"Remove is disabled":"Only admins can remove"}})),[M.TZ,M.uL,E.fS,p,g,E.G,t,i,d,m]),bulkActions:(0,o.useMemo)((()=>({addEntry:{disabledTooltipText:i?"Only admins can connect new nodes":"Only admins can add nodes to the room",handleAction:n,isDisabled:i?!u:!(u||h&&!t),tooltipText:i?"Connect new nodes to space":"Add nodes to room"},...i?{delete:{confirmLabel:"Yes, delete",confirmationMessage:(e,n)=>o.createElement(M.mK,{name:n[0].name,nodesLength:n.length}),confirmationTitle:(e,n)=>(0,M.FB)({name:n[0].name,nodesLength:n.length}),disabledTooltipText:d?"Delete is disabled":"Only admins can delete",declineLabel:"Cancel",handleAction:p,isDisabled:!d,tooltipText:"Delete nodes from space"}}:{remove:{confirmLabel:"Yes, remove",confirmationMessage:(e,n)=>o.createElement(E.VN,{name:n[0].name,nodesLength:n.length,roomName:l}),confirmationTitle:(e,n)=>(0,E.aq)({name:n[0].name,nodesLength:n.length}),declineLabel:"Cancel",disabledTooltipText:t?"Remove is disabled":"Only admins can remove",handleAction:g,isDisabled:t||!m,tooltipText:"Remove nodes from room"}}})),[M.mK,M.FB,E.aq,p,g,u,d,m,E.VN,t,i]),hasPermissionToDelete:d,hasPermissionToRemove:m}},I={name:!1,updateSeverity:!1,connectionToCloud:!1},O=[{id:"state",desc:!1}],L=e=>{let{flavour:n,roomUntouchable:t,customNodes:i,alwaysEnableNodeSelection:s,isSpace:r}=e;const{roomSlug:u}=(0,l.g)(),h=(0,c.ID)(u),p=(0,a.gr)(h,"ids"),f=(0,d.Gt)(p),y=A({isSpace:r}),b=(0,o.useMemo)((()=>(0,m.P)(i||f)),[i,p]),[,_]=(0,o.useState)(""),[w,,T,k]=(0,v.A)(),{rowActions:x,bulkActions:P,hasPermissionToDelete:C,hasPermissionToRemove:q}=R({openClaimNodeModal:T,roomUntouchable:t,isSpace:r}),S=(0,o.useCallback)(((e,n,t)=>{const o=t.toLowerCase(),i=e.getValue("agent").toLowerCase(),a=(0,g.GM)(e.getValue("state")).toLocaleLowerCase(),s=(0,g.jZ)(e.getValue("connectionToCloud")).toLocaleLowerCase(),r=(e.getValue("updateSeverity")||"").toLocaleLowerCase(),l=e.getValue("version").toLowerCase();return i.includes(o)||a.includes(o)||l.includes(o)||s.includes(o)||r.includes(o)}),[]);return{nodes:b.map((e=>{const t=r?!C||!s&&e.hasAccessibleData:!q;return{...e,disabled:t||"availableNodes"==n&&!e.isPreferred}}))||[],nodeIds:p,columns:y,rowActions:x,bulkActions:P,isClaimNodeModalOpen:w,sortBy:O,columnVisibility:I,setGlobalFilter:_,openClaimNodeModal:T,closeClaimNodeModal:k,globalFilterFn:S}};var B=t(83179),U=t(3914),j=t(63502),G=t(15327),F=t(74618),z=t(77173);const Y=e=>{let{onClose:n}=e;const t=(0,U.vt)(),a=(0,c.ID)(),[s,r]=(0,o.useState)((()=>a?[a]:[]));return(0,j.A)(t),o.createElement(G.GO,{onClose:n,"data-testid":"addNodes"},o.createElement(F.z,{"data-testid":"addNodes-header",title:"Add Nodes",onClose:n}),o.createElement(G.Yv,{hasModalTitle:!1},o.createElement(i.Flex,{column:!0,"data-testid":"manageClaimedNodes-controls",gap:3},o.createElement(B.A,{placeholder:"Select Rooms",selectedValue:s,onChange:r}),o.createElement(z.A,{rooms:s}))))};var X=t(8711),W=t(93155);const K=(0,X.default)(i.Box).withConfig({displayName:"activeNodesIndicatior__ProgressBar",componentId:"sc-sq1772-0"})(["position:absolute;left:0;height:4px;"]),$=e=>{let{isSpace:n}=e;const[,,t]=(0,S.A)(),{hasLimitations:a,maxNodes:s,preferredNodes:r}=(0,T.A)(),l=W.bO&&n&&a&&t>s,c=(0,o.useMemo)((()=>s>0?"".concat(r.length/s*100,"%"):"0%"),[r,s]);return l?o.createElement(i.Flex,{width:"140px",column:!0,gap:1,margin:[0,0,0,2]},o.createElement(i.Text,null,"Active nodes: ",r.length,o.createElement(i.Text,{color:"primary"},"/",s)),o.createElement(i.Box,{width:"100%",height:"4px",round:!0,overflow:"hidden",position:"relative",background:"border"},o.createElement(K,{width:c,background:"primary"}))):null},V=e=>{let{flavour:n,roomUntouchable:t,showClaimNodeOnEmptySpace:l=!1,customNodes:c=[],customBulkActions:d,customRowActions:m,enableSelection:u=!0,showdDefaultRowActions:h=!0,showDefaultBulkActions:p=!0,onRowSelected:g,onClickRow:f,disableClickRow:y,columnVisibility:b,customSortBy:_,showClaimModalWithRoomSelection:w=!1,alwaysEnableNodeSelection:v=!1,isSpace:T}=e;const{nodes:k,columns:x,rowActions:P,bulkActions:C,sortBy:q,isClaimNodeModalOpen:S,openClaimNodeModal:D,closeClaimNodeModal:A,columnVisibility:M,setGlobalFilter:E,globalFilterFn:N}=L({flavour:n,roomUntouchable:t,customNodes:c,alwaysEnableNodeSelection:v,isSpace:T,showClaimModalWithRoomSelection:w}),H=(0,r.JT)("node:Create"),R=(0,a.nj)();(0,o.useEffect)((()=>{R&&l&&H&&0===k.length&&D()}),[R]);const I=(0,o.useMemo)((()=>({...M,...b})),[M,b]);return x.length?o.createElement(o.Fragment,null,o.createElement(i.Table,{headerChildren:o.createElement($,{isSpace:T}),onRowSelected:g,globalFilterFn:N,columnVisibility:I,enableSelection:u,enableSorting:!0,dataColumns:x,data:k,rowActions:h&&P||m,bulkActions:p&&C||d,sortBy:_||q,onSearch:E,testPrefixCallback:e=>e.hostname||e.name,onClickRow:f,disableClickRow:y}),S&&!w&&o.createElement(s.A,{onClose:A,isSubmodal:!0}),S&&w&&o.createElement(Y,{onClose:A})):null}},54830:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(96540),i=t(10058),a=t(29217),s=t(63119);const r=(l=e=>{let{name:n}=e;return o.createElement(i.TextSmall,null,n)},e=>{let{nodeId:n,showLockedNodes:t,preferredNodes:r=[],...c}=e;return t&&!r.includes(n)?o.createElement(a.A,{plain:!0,content:o.createElement(s.u,{name:c.name}),isBasic:!0},o.createElement(i.Flex,{gap:1},o.createElement(i.Icon,{name:"padlock",width:"18px",height:"18px",color:"placeholder"}),o.createElement(l,c))):o.createElement(l,c)});var l},82432:(e,n,t)=>{t.d(n,{Bb:()=>v,GM:()=>m,O:()=>b,Pg:()=>C,Po:()=>p,RI:()=>w,Ud:()=>g,gm:()=>q,jZ:()=>u,lw:()=>h,t3:()=>c,tv:()=>S,vt:()=>r,ws:()=>f});t(17333),t(3064),t(41393),t(98992),t(54520),t(72577),t(81454);var o=t(96540),i=t(87860),a=t(12800);const s="N/A",r=e=>{var n,t;let{isLive:o,health:i={}}=e;return o?null!==(n=i.alerts)&&void 0!==n&&n.critical?"critical":null!==(t=i.alerts)&&void 0!==t&&t.warning?"warning":"clear":"unreachable"},l=e=>e>9?"9+":"".concat(e),c=e=>{let{count:n,dataTestId:t,isLive:o,onAlertClick:i,type:a}=e;const s=t?"".concat(t,"-alertIndicator"):"alertIndicator",r={"data-testid":"".concat(s,"-").concat(a)};return o?{...r,...n&&{flavour:"critical"===a?"error":"warning"},...n&&i&&{onClick:()=>i(a)},text:l(n)}:r},d={created:"Unseen",reachable:"Live",stale:"Stale",unreachable:"Offline"},m=e=>d[e]||d.stale,u=e=>"created"===e?"Pending":"Completed",h=e=>e?{flavour:"success",label:"ON",status:"ON"}:{flavour:"warning",label:"OFF",status:"OFF"},p=e=>!e||"unknown"===e,g=function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:" \u2022 ";return p(e)?s:"".concat(e).concat(t).concat(n)},f=(e,n)=>p(e)?s:n?"".concat(e," ").concat(n):e,y={HZ:1,KHz:1e3,MHz:1e6,GHz:1e9,THz:1e12,PHz:1e15,EHz:1e18},b=e=>{if(p(e))return s;const n=Object.keys(y).find((n=>1e3>e/y[n]));return"".concat((e/=y[n]).toFixed(2)," ").concat(n||"")},_={B:1,KiB:1024,MiB:1048576,GiB:1073741824,TiB:1099511627776,PiB:0x4000000000000,EiB:0x1000000000000000},w=e=>{if(p(e))return s;const n=Object.keys(_).find((n=>1024>e/_[n]));return"".concat((e/=_[n]).toFixed(2)," ").concat(n||"")},v=(e,n,t,i,a)=>{const s={Live:o.createElement(o.Fragment,null,"is currently connected"),Offline:o.createElement(o.Fragment,null,"is currently not connected"),Stale:o.createElement(o.Fragment,null,"is currently not connected and has only historical data")},r={actionObsolete:o.createElement(o.Fragment,null,"Delete Node"),actionRemove:o.createElement(o.Fragment,null,"Remove Node from room"),alerts:o.createElement(o.Fragment,null,"The current Critical and Warning alerts for ",i),cloudInfo:o.createElement(o.Fragment,null,i," cloud information:",o.createElement("br",null),"Cloud Provider \u2022 Instance Type"),connectivity:n in s?o.createElement(o.Fragment,null,i," ",s[n]):null,info:o.createElement(o.Fragment,null,"View node information"),k8s:o.createElement(o.Fragment,null,i," runs on Kubernetes cluster"),kernel:o.createElement(o.Fragment,null,"Kernel information of ",i),ml:o.createElement(o.Fragment,null,"Machine Learning status of ",i," is: ",t),fn:o.createElement(o.Fragment,null,"Functions capability of ",i," is: ",t),functions:o.createElement(o.Fragment,null,i," functions"),systemInfo:o.createElement(o.Fragment,null,i," hardware information:",o.createElement("br",null),"O/S \u2022 CPU Frequency \u2022 CPU Cores \u2022 Architecture \u2022 Memory \u2022 Hard Disk Space"),type:o.createElement(o.Fragment,null,"The type of ",i," is: ",a)};return e in r?r[e]:""},T={none:!0,null:!0,unknown:!0},k=e=>!!e&&!T[e],x={container:"container","container-other":"container",other:"container"},P={"$(systemd-detect-virt -v)":"vm","$(systemd-detect-virt -v) docker-compose up":"vm","${VIRTUALIZATION}":"vm","(systemd-detect-virt -v)":"vm","detect-virt -v":"vm",lxc:"vm","none #vmware":"vmware",other:"vm","systemd-detect-virt -v":"vm",unknown:"vm","vm-other":"vm","VMware Virtual Platform":"vmware"},C=(e,n)=>k(e)?{icon:"container",label:x[e]||e}:k(n)?{icon:"cluster",label:P[n]||n}:{icon:"ram",label:"Bare Metal"},q=async e=>{let{cacheKeyPrefix:n,nodeIds:t,roomId:o,spaceId:s}=e;const r="".concat(n).concat((0,i.u)({id:o,spaceId:s}));await(0,a.y)({key:r,handleResults:e=>e.results.filter((e=>!t.includes(e.id)))})},S=async e=>{let{cacheKeyPrefix:n,nodeIds:t,roomIds:o,spaceId:s}=e;const r=e=>e.results.filter((e=>!t.includes(e.id)));o.map((async e=>{const t="".concat(n).concat((0,i.u)({id:e,spaceId:s}));await(0,a.y)({key:t,handleResults:r})}))}},54961:(e,n,t)=>{t.d(n,{A8:()=>b,An:()=>f,Jq:()=>y,Qb:()=>d,Wb:()=>m,b8:()=>c,eQ:()=>u,t9:()=>p});t(41393),t(14905),t(98992),t(81454),t(8872);var o=t(26655),i=t(80158),a=t(49286),s=t(71856),r=t(30960);const l=e=>{let{integrations:n}=e;return n.reduce(((e,n)=>{var t;const o=(0,a.bn)(n),s=o.available?"available":"unavailable";var l;(o.kindLabel=(0,i.Zr)(o.kind,!0),o.docsLink=null===(t=o.schema)||void 0===t||null===(t=t.annotations)||void 0===t?void 0:t.docsUrl,o.internal)||(o.fields=(0,r.Rm)(o.schema),o.required=null===(l=o.schema)||void 0===l?void 0:l.required);return e[s].push(o),e}),{available:[],unavailable:[],original:n})},c=e=>o.A.get("/api/v2/spaces/".concat(e,"/integrations"),{transform:l}),d=(e,n)=>o.A.post("/api/v2/spaces/".concat(e,"/channel"),n),m=(e,n)=>o.A.delete("/api/v2/spaces/".concat(e,"/channel/").concat(n)),u=(e,n,t)=>o.A.put("/api/v2/spaces/".concat(e,"/channel/").concat(n),t),h=e=>{var n;const{id:t,...o}=e.integration||{},i={...(0,a.bn)(e),...(0,a.bn)(o)};return i.docsLink=null===(n=i.schema)||void 0===n?void 0:n.annotations.docsUrl,i.internal||(i.fields=(0,r.Rm)(i.schema),i.required=i.schema.required),i},p=(e,n)=>o.A.get("/api/v2/spaces/".concat(e,"/channel/").concat(n),{transform:h}),g=e=>({channels:e.map((e=>{var n;const{id:t,...o}=e.integration||{};return{...(0,a.bn)(e),...o||{},notificationLabel:s.w8[e.alarms].label,kindLabel:(0,i.Zr)(null===(n=e.integration)||void 0===n?void 0:n.kind,!0)}})),original:e}),f=e=>o.A.get("/api/v2/spaces/".concat(e,"/channel"),{transform:g}),y=(e,n,t)=>o.A.patch("/api/v2/spaces/".concat(e,"/channel/").concat(n),{enabled:t}),b=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o.A.post("/api/v2/spaces/".concat(e,"/notifications/test"),n)}},58159:(e,n,t)=>{t.d(n,{A:()=>a,V:()=>i});var o=t(47444);const i={additionalProperties:!1,alerts:"ALARMS_SETTING_ALL",description:"",enabled:!0,error:"",fields:[],icon:"",internal:!0,id:"",integration:"",integrationId:"",kind:"",loading:!0,loaded:!1,name:"",rooms:null,roomSelections:[t(71856).PT],secrets:{}},a=(0,o.Iz)({key:"spaceChannel",default:e=>(e=>({...i,id:e}))(e)})},63756:(e,n,t)=>{t.d(n,{A:()=>a,y:()=>i});var o=t(47444);const i={currentChannelId:"",channels:[],error:"",id:null,loading:!0,loaded:!1,original:[]},a=(0,o.Iz)({key:"spaceChannels",default:e=>(e=>({...i,id:e}))(e)})},79769:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(54961),i=t(26770),a=t(63756),s=t(18061);const r=e=>{const n=(0,i.vq)(e);(0,s.A)((()=>({enabled:!!e,fetch:()=>(0,o.An)(e),onFail:e=>n({...a.y,error:e.message}),onSettle:()=>n({loading:!1,loaded:!0}),onSuccess:e=>n({...a.y,...e})})),[e])}},73743:(e,n,t)=>{t.d(n,{A:()=>a,u:()=>i});var o=t(47444);const i={available:[],error:"",id:null,loading:!0,loaded:!1,original:[],unavailable:[]},a=(0,o.Iz)({key:"spaceIntegrations",default:e=>(e=>({...i,id:e}))(e)})},96382:(e,n,t)=>{t.d(n,{yP:()=>y,ae:()=>g,j$:()=>f});t(62953);var o=t(47444),i=t(71835),a=t(26655);const s={email:null,browser:null,mobile:null},r={alerts:null},l={me:()=>"/api/v2/accounts/me/notifications/settings",room:e=>{let{spaceId:n,roomId:t}=e;return"/api/v2/spaces/".concat(n,"/rooms/").concat(t,"/notifications/settings")}},c=e=>{let{domain:n,...t}=e;return(0,l[n])(t)},d=(0,o.Iz)({key:"notificationsSettings",default:e=>{const n=(e=>{let{domain:n}=e;return{me:s,room:r}[n]})(e),t=c(e);return a.A.get(t).then((e=>({...n,...e.data,isLoaded:!0}))).catch((()=>({...n,isLoaded:!0})))}});var m=t(61649);const u=(0,o.K0)({key:"notificationsSettings",get:e=>n=>{let{get:t}=n;return t(d(e))},set:e=>(n,t)=>{let{set:o}=n;const{prop:i,...a}=e;o(d(a),(e=>{const n="object"==typeof e[i]?{...e[i],enabled:t}:t;return i?{...e,[i]:n}:n}))}}),h=function(e){let{shouldPersist:n=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=(0,o.lZ)(u(e)),s=(e=>(0,m.A)((function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return a.A.patch(c(e),n)}),[e.domain,e.spaceId,e.roomId]))(e),[,r]=(0,i.A)();return(0,o.Zs)((o=>{let{snapshot:i}=o;return async o=>{if(t(o),!n)return;const a=await i.getPromise(u(e)),{prop:l}=e;try{await s({...l?{[l]:o}:o})}catch(c){r(c),t(l?a[l]:a)}}}),[e])},p=e=>(0,o.xf)(u(e)),g=()=>(0,o.xf)(d({domain:"me"})),f=e=>{const n={domain:"me"},t=p(n),o="hasValue"!==t.state?s:t.contents,i=h({...n,prop:e});return[e?o[e]:o,i]},y=e=>{let{roomId:n,spaceId:t,key:o}=e;const i={domain:"room",roomId:n,spaceId:t},a=p(i),s="hasValue"!==a.state?r:a.contents,l=h({...i,prop:o});return[o?s[o]:s,l]}},26770:(e,n,t)=>{t.d(n,{EE:()=>v,Mw:()=>p,bY:()=>T,ef:()=>y,g4:()=>h,m$:()=>w,t5:()=>f,vq:()=>b});t(62953);var o=t(96540),i=t(47444),a=t(58159),s=t(63756),r=t(73743),l=t(30960),c=t(3914),d=t(54961),m=t(71835);const u=(0,i.K0)({key:"spaceChannelState",get:e=>{let{id:n,key:t}=e;return e=>{let{get:o}=e;const i=o((0,a.A)(n));return t?i[t]:i}},set:e=>{let{id:n,key:t}=e;return(e,o)=>{let{set:i}=e;i((0,a.A)(n),(e=>t?{...e,[t]:o}:{...e,...o}))}}}),h=(e,n)=>(0,i.vc)(u({id:e,key:n})),p=e=>(0,i.E0)(u(e)),g=(0,i.K0)({key:"spaceChannelsState",get:e=>{let{id:n,key:t}=e;return e=>{let{get:o}=e,i=o((0,s.A)(n));return i={...i,channels:(0,l.kz)(i.channels)},t?i[t]:i}},set:e=>{let{id:n,key:t}=e;return(e,o)=>{let{set:i}=e;i((0,s.A)(n),(e=>t?{...e,[t]:o}:{...e,...o}))}}}),f=(e,n)=>(0,i.vc)(g({id:e,key:n})),y=(e,n)=>(0,i.lZ)(u({id:e,key:n})),b=(e,n)=>(0,i.lZ)(g({id:e,key:n})),_=(0,i.K0)({key:"spaceIntegrationsState",get:e=>{let{id:n,key:t}=e;return e=>{let{get:o}=e,i=o((0,r.A)(n));return i={...i,available:(0,l.kz)(i.available),unavailable:(0,l.kz)(i.unavailable)},t?i[t]:i}},set:e=>{let{id:n,key:t}=e;return(e,o)=>{let{set:i}=e;i((0,r.A)(n),(e=>t?{...e,[t]:o}:{...e,...o}))}}}),w=(e,n)=>(0,i.vc)(_({id:e,key:n})),v=(e,n)=>(0,i.lZ)(_({id:e,key:n})),T=()=>{const e=(0,c.vt)(),[n,t]=(0,m.A)();return(0,o.useCallback)((function(){let{id:o,slug:i,secrets:a={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,d.A8)(e,{channelID:o,integrationSlug:i,secrets:a}).then((()=>{n({header:"Success",text:"Successfully sent test notification"})})).catch((()=>{t({header:"Error",text:"Something went wrong"})}))}),[e])}},30960:(e,n,t)=>{t.d(n,{kz:()=>g,Zv:()=>l,ct:()=>c,O5:()=>d,Rm:()=>m,$Q:()=>u,Pl:()=>h,s7:()=>p});t(17333),t(3064),t(14905),t(98992),t(54520),t(72577),t(8872),t(62953),t(41393),t(81454);var o=t(90179),i=t.n(o),a=t(71856);const s=(e,n,t)=>{const{description:o,placeholder:s,title:r,type:l,...c}=n,d=t.includes(e),u={description:o,id:e,isRequired:d,placeholder:s||"",title:r||e};if("string"===l&&"selection"!==e){const{format:e,maxLength:n,minLength:t}=c;return{component:"input",getValue:e=>{let{id:n,secrets:t,subsetId:o}=e;return(o?t[n][o]:t[n])||""},isValid:o=>!!("uri"!==e||null!==o&&void 0!==o&&o.match(a.rx))&&(!(t&&o.length<t)&&!(n&&o.length>n)),...n?{maxlength:n}:{},...t?{minlength:t}:{},onChange:e=>{let{id:n,setSecrets:t,subsetId:o}=e;return e=>t((t=>o?{...t,[n]:{...t[n],[o]:e}}:{...t,[n]:e}))},type:"uri"===e?"url":e||"text",...u}}if("object"===l){const{oneOf:e,patternProperties:n}=c;if(e)return{component:"select",getValue:n=>{var t,o;let{id:i,secrets:a}=n;return{label:(null===(t=e.find((e=>{var n;return e.properties.selection.const===(null===(n=a[i])||void 0===n?void 0:n.selection)})))||void 0===t?void 0:t.title)||(d?e[0].title:"None"),value:(null===(o=a[i])||void 0===o?void 0:o.selection)||(d?e[0].properties.selection.const:"")}},onChange:n=>{let{id:t,setRequiredSubsets:o,setSecrets:a}=n;return n=>{let{label:s,value:r}=n;if(!r)return o((e=>i()(e,t))),void a((e=>i()(e,t)));const l=e.find((e=>e.title===s));null!==l&&void 0!==l&&l.required&&o((n=>({...n,[t]:e.find((e=>e.title===s)).required}))),a((e=>({...e,[t]:{selection:r}})))}},...e.reduce(((e,n)=>({fields:{...e.fields,[n.properties.selection.const]:m(n)},options:[...e.options,{label:n.title,value:n.properties.selection.const}],required:{...e.required,[n.properties.selection.const]:n.required}})),{fields:{},options:d?[]:[{label:"None",value:""}],required:{}}),...u};if(n)return{component:"pairs",componentPairs:Object.entries(n).map((e=>{let[n,{type:t}]=e;return[a.C4[n],a.dZ[t]]})),...u}}return null};var r=t(93155);const l=(e,n)=>{const t=e=>e.toLowerCase().includes(n.toLowerCase()||"");return e.filter((e=>{let{description:n,kind:o,title:i}=e;return t(n)||t(o)||t(i)}))},c=(e,n,t)=>!!n&&("selection"===e||("select"===t.component||t.isValid(n))),d=e=>"Delete ".concat(e," channel"),m=e=>{let{properties:n,required:t}=e;return Object.keys(n).reduce(((e,o)=>{const i=s(o,n[o],t);return{...e,...i?{[o]:i}:{}}}),{})},u=e=>{const[n,t]=e;return n===t?"".concat(n,"s"):"".concat(n,"/").concat(t)},h=e=>{let{roomIds:n,roomOptions:t}=e;return n.reduce(((e,n)=>{const o=t.find((e=>e.value===n));return o&&e.push(o.label),e}),[]).join(", ")},p=(e,n)=>Object.values(e).reduce(((e,t)=>"select"===t.component&&n.includes(t.id)?{...e,[t.id]:{selection:t.options[0].value}}:e),{}),g=e=>r.Mh?e:e.filter((e=>{let{id:n}=e;return n!==a.D_}))},62329:(e,n,t)=>{t.d(n,{A:()=>y});var o=t(58168),i=t(96540),a=t(10058),s=t(83084),r=t(3914),l=t(69765),c=t(60383),d=t(68831),m=t(53285);const u=e=>{let{spaceName:n}=e;return i.createElement(a.Text,{textAlign:"center"},"Please ask your administrator to claim more nodes to\xa0",i.createElement(a.Text,{strong:!0},n)," and you will be able to add them to this room")},h=()=>i.createElement(a.Text,{textAlign:"center"},"To add nodes to this room, you first need to claim them to its space."),p=e=>{let{spaceName:n}=e;const t="".concat(d.A.assetsBaseURL,"/img/rack.png");return i.createElement(a.Flex,{column:!0,padding:[4,8,0],alignItems:"center",gap:4},i.createElement("img",{src:t,alt:"server-rack",width:"188px",height:"188px"}),i.createElement(a.H4,{textAlign:"center"},"No claimed nodes available in this Space: ",n),i.createElement(m.A,{permission:"node:Create"},(e=>e?i.createElement(h,null):i.createElement(u,{spaceName:n}))))};t(17333),t(41393),t(14905),t(98992),t(54520),t(81454),t(8872),t(62953);const g=e=>{let{setNodes:n}=e;const[t,o]=(0,i.useState)(""),[a,s]=(0,i.useState)(!0),[r,l]=(0,i.useState)([]);return(0,i.useEffect)((()=>{const e=r.map((e=>e.id));e.length||!t||a||n((e=>t.split(",").reduce(((e,n)=>e.filter((e=>e.id!==n))),e))),e.length&&e.join()!==t&&(n((n=>{const t=n.map((e=>e.id));return e.reduce(((e,n,o)=>t.includes(n)?e:[...e,r[o]]),n)})),s(!1)),o(e.join())}),[r]),{onRowSelected:l}},f={connectionToCloud:!1},y=e=>{let{claimedNodeIds:n,data:t,roomId:d,setNodes:m,showHeader:u,onAddNodes:h,canAddNodes:y,addNodesGA:b,..._}=e;const{onRowSelected:w}=g({setNodes:m}),v=(0,r.ap)(),T=(0,l.wz)(d),k=(0,i.useMemo)((()=>({addEntry:{handleAction:h,tooltipText:"Add the selected nodes to the room",isDisabled:!y,disabledTooltipText:"Select some nodes to add to the room","data-ga":b}})),[h,y]);return i.createElement(a.Flex,(0,o.A)({column:!0,gap:3,padding:[2,0,0],flex:"grow",width:"100%",height:"100%"},_),u&&i.createElement(a.Flex,{margin:[0,0,5]},i.createElement(a.H3,null,"Available Nodes (",n.length,")")),u&&i.createElement(a.Flex,null,i.createElement(a.Text,{color:"textDescription"},"Nodes in ",v.name," that can be added to ",T.name)),n.length>0?i.createElement(s.A,{"data-testid":"nodesTable-layout",overflow:"hidden",height:"100%"},i.createElement(c.A,{flavour:"availableNodes",enableSelection:!0,customNodes:t,showdDefaultRowActions:!1,showDefaultBulkActions:!1,customBulkActions:k,onRowSelected:w,columnVisibility:f,alwaysEnableNodeSelection:!0})):i.createElement(p,{spaceName:v.name}))}},31348:(e,n,t)=>{t.d(n,{A:()=>h});t(17333),t(41393),t(98992),t(54520),t(81454),t(62953);var o=t(96540),i=t(61360);var a=t(3914),s=t(69765),r=t(81048),l=t(63129),c=t(67990),d=t(97245),m=t(18061),u=t(71835);const h=function(e){let{addNodesCallback:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[t,h,p]=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[n,t]=(0,o.useState)(e),[a,s]=(0,o.useState)([]);(0,i.A)((()=>{s([n])}),300,[n]);const r=(0,o.useCallback)((e=>t(e.currentTarget.value)),[t]);return[n,r,a]}(),[g,f]=(0,o.useState)([]),y=(0,a.vt)(),b=(0,s.J_)(y,r.mL),[,_]=(0,u.A)(),[w]=(0,m.A)((()=>({enabled:!!b,fetch:()=>(0,l.uQ)({roomId:b,spaceId:y}),initialValue:[],onFail:e=>{_(e)}})),[b,y]),v=(0,c.gr)(e,"ids"),T=(0,o.useMemo)((()=>w.map((e=>e.id)).filter((e=>!v.includes(e)))),[v,w]),k=(0,o.useMemo)((()=>(0,d.P)(w)),[w]),x=(0,c.Hx)(y,e,{onSuccess:n});return[{claimedNodeIds:T,data:k,filter:t,setFilter:h,debouncedFilter:p,setNodes:f},{onAddNodes:(0,o.useCallback)((()=>x(g.map((e=>e.id)))),[x,g]),onAddNode:(0,o.useCallback)((e=>{x([e],{makeCallback:!1})}),[x]),selectedNodes:g}]}},38413:(e,n,t)=>{t.d(n,{A:()=>N});var o=t(58168),i=(t(62953),t(96540)),a=t(39225),s=t(10058),r=t(69765),l=t(3914),c=t(15327),d=t(74618),m=t(45765),u=t(88773),h=t(76634),p=t(77173),g=t(62329),f=t(31348),y=t(28738),b=t(63502),_=t(63950),w=t.n(_),v=t(8711),T=t(12740),k=t(18682);const x=(0,v.default)(s.Icon).withConfig({displayName:"copyInfo__StyledIcon",componentId:"sc-fgr5qt-0"})(["display:flex;align-self:center;cursor:pointer;position:absolute;right:16px;"]),P=e=>{let{gaPrefix:n="claim-nodes",info:t,title:o="Claim token",type:a="token",copyDisabled:r=!1}=e;return i.createElement(s.Flex,{cursor:"pointer","data-testid":"".concat(a,"Copy"),gap:2,onClick:(0,k.C)(t,{text:"".concat(o," copied to clipboard")}),position:"relative"},i.createElement(T.O1,{"data-testid":"".concat(a,"TextBlock")},t),!r&&i.createElement(x,{"data-testid":"".concat(a,"CopyButton"),"data-ga":"".concat(n,"::click-copy-").concat(a,"::allpages"),name:"copy",size:"small",color:"primary",onClick:(0,k.C)(t,{text:"".concat(o," copied to clipboard")})}))},C=e=>{let{title:n="",info:t="Loading...",copyDisabled:o=!1,onClose:a=w()}=e;return i.createElement(s.Modal,null,i.createElement(s.ModalContent,{width:{min:80,base:150},height:30},i.createElement(s.ModalHeader,null,i.createElement(s.H3,null,n),i.createElement(s.ModalCloseButton,{onClose:a})),i.createElement(s.ModalBody,null,i.createElement(P,{info:t,copyDisabled:o}))))},q=e=>{var n,t;let{spaceId:a,...s}=e;const r=(0,b.A)(a);return i.createElement(C,(0,o.A)({title:"Claim Token",info:null===(n=r[0])||void 0===n?void 0:n.token,copyDisabled:!(null!==(t=r[0])&&void 0!==t&&t.token)},s))};var S=t(58205),D=t(87659),A=t(63314);const M=(0,a.A)((()=>Promise.all([t.e(1220),t.e(7208),t.e(6323),t.e(2414),t.e(3705)]).then(t.bind(t,72414)))),E={default:{modal:{"data-testid":"addWarRoomModal"},sidebarModalHeader:{"data-testid":"addWarRoomModal-header"},sidebarContent:{"data-testid":"addWarRoomModal-content",overflow:"auto",hasFooter:!1}},integrations:{modal:{"data-testid":"addIntegrationModal"},sidebarModalHeader:{"data-testid":"addIntegration-header"},sidebarContent:{"data-testid":"addIntegration-content",overflow:"hidden",hasFooter:!1,padding:[0],hasModalTitle:!1}}},N=e=>{let{title:n="Add Nodes",onClose:t,isSubmodal:a,nodeType:b,flavour:_="default"}=e;const w=(0,l.vt)(),v=(0,r.XA)(),T=(0,r.pr)(),k=null!==v&&void 0!==v&&v.loaded?v:T,x=null===k||void 0===k?void 0:k.id,P=(0,i.useMemo)((()=>E[_]),[_]),N="integrations"==_,H=N?u.GO:c.GO,[R,{onAddNodes:I,selectedNodes:O}]=(0,f.A)(x,{addNodesCallback:t}),[L,,B,U]=(0,D.A)(),[j,,G,F]=(0,D.A)();return i.createElement(A.Ay,{feature:"AddNodes"},i.createElement(H,(0,o.A)({right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},P.modal),i.createElement(d.z,(0,o.A)({title:N?i.createElement(s.TextBig,{color:"textLite"},n):i.createElement(i.Fragment,null,"Manage room",i.createElement(s.TextBig,{color:"textLite"},"\xa0/ Add Nodes")),isSubmodal:a,onClose:t},P.sidebarModalHeader||{}),!N&&i.createElement(h.A,{permission:"node:Create"},i.createElement(s.Flex,{gap:2},i.createElement(s.Button,{flavour:"borderless",onClick:B},"Claim Token"),i.createElement(s.Button,{flavour:"borderless",onClick:G},"Room ID")))),!N&&i.createElement(m.U,{"data-testid":"addWarRoomModal-title"},"Add nodes to\xa0",null===k||void 0===k?void 0:k.name),i.createElement(c.Yv,P.sidebarContent||{},N?i.createElement(i.Suspense,{fallback:i.createElement(y.A,{title:"Loading integrations..."})},i.createElement(M,{flavour:S.D_.addNodesModal})):i.createElement(h.A,{permission:"node:Create"},i.createElement(i.Fragment,null,i.createElement(p.A,{nodeType:b,rooms:[x]}),!k.untouchable&&i.createElement(g.A,(0,o.A)({"data-testid":"addWarRoomModal-availableNodes"},R,{onAddNodes:I,canAddNodes:!!O.length,addNodesGA:"add-war-room-modal::click-add-node::global-view"})))))),!N&&L&&i.createElement(A.Ay,{subModal:"ClaimTokenModal"},i.createElement(q,{spaceId:w,onClose:U})),!N&&j&&i.createElement(A.Ay,{subModal:"RoomIdModal"},i.createElement(C,{title:"Room ID",info:x,copyDisabled:!x,onClose:F})))}},77173:(e,n,t)=>{t.d(n,{A:()=>p});t(41393),t(81454),t(62953);var o=t(96540),i=t(10058),a=t(3914),s=t(27776),r=t(82929),l=t(85276),c=t(59778);const d=e=>{let{label:n}=e;return n?o.createElement(o.Fragment,null,o.createElement(i.Icon,{name:"code",size:"small"}),o.createElement(i.TextNano,{strong:!0,textTransform:"uppercase"},n)):null},m=(0,o.memo)(d);var u=t(12740);t(3064),t(98992),t(72577);const h={linux:"deploy-linux-generic",centos:"deploy-linux-generic",macos:"deploy-macos",freebsd:"deploy-freebsd",ubuntu:"deploy-linux-generic",debian:"deploy-linux-generic",cloudlinux:"deploy-linux-generic",Container:"deploy-docker"},p=e=>{let{integrationId:n,nodeType:t,rooms:d=[]}=e;const p=(0,s.FF)(),g=(0,a.ap)("plan"),f=(()=>{const e=(0,s.AR)();return n=>e.find((e=>e.id==n))})(),y=f(n),[b,_]=(0,o.useState)(function(){let e=arguments.length>1?arguments[1]:void 0;const n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).findIndex((n=>{let{id:t}=n;return t==h[e]}));return n>=0?n:0}(p,t)),[w,v]=(0,o.useState)(c.D[g]||c.D.default);return o.createElement(i.Flex,{column:!0,gap:4,width:"100%"},o.createElement(i.Flex,{justifyContent:"end"},o.createElement(r.A,{isNightly:"nightly"==w,toggleNightly:e=>{const n=e.target.checked?"nightly":"stable";v(n)}})),y?o.createElement(l.A,{integration:y,isNightly:"nightly"==w,rooms:d,navigateToSettings:!0}):o.createElement(i.Tabs,{selected:b,onChange:_,TabContent:u.Yg,tabsProps:{gap:1,margin:[0,0,4,0]}},p.map((e=>o.createElement(i.Tab,{as:u.OV,key:e.name,label:o.createElement(m,{label:e.name})},o.createElement(l.A,{integration:e,isNightly:"nightly"==w,rooms:d,navigateToSettings:!0}))))))}},79412:(e,n,t)=>{t.d(n,{n:()=>u});t(62953);var o=t(96540),i=t(47767),a=t(45588),s=t(10058),r=t(67031),l=t(3914),c=t(69765),d=t(15327),m=t(74618);const u=e=>{let{onClose:n,onDone:t,isSubmodal:u=!0}=e;const h=(0,l.vt)(),[p,g]=(0,o.useState)(""),[f,y,b]=(0,s.useInputValue)({maxChars:255,value:""}),_=(e=>{const n=(0,i.Zp)(),t=(0,l.bq)();return(0,o.useMemo)((()=>o=>{let{slug:i}=o;const s=(0,a.tW)("/spaces/:spaceSlug/rooms/:roomSlug",{spaceSlug:t,roomSlug:i});e(),n(s)}),[t])})(n),w=(0,c.NG)(h,{onSuccess:t||_}),v=(0,o.useCallback)((()=>{w({name:p,description:f})}),[p,f]);return o.createElement(d.GO,{onClose:n},o.createElement(m.z,{onClose:n,isSubmodal:u,title:"Create a new room"},o.createElement(s.Button,{label:"Add",onClick:v,disabled:!p})),o.createElement(d.Yv,null,o.createElement(r.U,{roomName:p,setRoomName:g,roomDescription:f,charsDescIndicator:b,setRoomDescription:y,isCreateForm:!0})))}},74564:(e,n,t)=>{t.d(n,{Ay:()=>u,TU:()=>d,kI:()=>c,rj:()=>m});t(62953);var o=t(96540),i=t(10058),a=t(3914),s=t(87659),r=t(69765),l=t(46741);const c=e=>{const n=1===e;return"Delete ".concat(e," ").concat(n?"room":"rooms")},d=e=>"Delete ".concat(e," room"),m=e=>{let{name:n,roomsLength:t,spaceName:i}=e;const a=n||"".concat(t,1===t?" room":" rooms");return o.createElement(o.Fragment,null,"You are about to delete ",o.createElement("strong",null,a)," from ",o.createElement("strong",null,i)," space.",o.createElement("br",null),"This cannot be undone. Are you sure you want to continue?")},u=e=>{let{id:n,name:t,navigateToParent:c}=e;const u=(0,a.ap)("name"),h=(0,r.wz)(n,"untouchable"),p=(0,l.JT)("room:Delete")&&!h,g=(0,r.HX)(n,{onSuccess:c}),[f,,y,b]=(0,s.A)();return p?o.createElement(o.Fragment,null,o.createElement(i.Button,{"data-testid":"manageWarRoom-delete",flavour:"hollow",onClick:y,label:"Delete room",danger:!0}),f&&o.createElement(i.ConfirmationDialog,{confirmLabel:"Yes, delete","data-ga":"delete-war-room-dialog","data-testid":"deleteWarRoomDialog",handleConfirm:g,handleDecline:b,message:o.createElement(m,{name:t,spaceName:u}),title:d(t)})):null}},67031:(e,n,t)=>{t.d(n,{U:()=>v});var o=t(58168),i=(t(62953),t(96540)),a=t(10058),s=t(78969),r=t(14994),l=t(69765),c=t(46741),d=t(46902),m=t(87659);const u="leave-war-room-dialog",h="leaveWarRoomDialog",p=e=>{let{id:n,name:t,navigateToParent:s}=e;const r=(0,d.ES)(n,"ids"),c=(0,l.NQ)(n,{onSuccess:s}),p=(0,l.wz)(n,"untouchable"),[g,,f,y]=(0,m.A)(),b=1===r.length&&!p?{"data-ga":"".concat(u,"-last-member"),"data-testid":"".concat(h,"LastMember"),message:i.createElement(i.Fragment,null,"If you leave, ",i.createElement("strong",null,t)," room will be deleted immediately.",i.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(t," room")}:{"data-ga":u,"data-testid":h,message:i.createElement(i.Fragment,null,"You are about to leave ",i.createElement("strong",null,t)," room.",i.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(t," room")};return i.createElement(i.Fragment,null,i.createElement(a.Button,{"data-ga":"manage-war-room-tab::click-leave-war-room::manage-war-room-modal","data-testid":"manageWarRoom-leave",icon:"switch_off",flavour:"borderless",label:"Leave room",neutral:!0,padding:[0],width:"fit-content",onClick:f}),g&&i.createElement(a.ConfirmationDialog,(0,o.A)({confirmLabel:"Yes, leave",handleConfirm:c,handleDecline:y},b)))};var g=t(74564),f=t(80542);const y=(0,f.k)([e=>{const n=e.length>=1;return(0,f.H)(n,"Give your room a name that's at least one character.")},e=>{const n=e.length<=20;return(0,f.H)(n,"A room's name can't exceed 20 characters.")}]),b=e=>{let{charsIndicator:n,isDisabled:t,isValid:s,handleChange:r,setIsValid:l,setValidationMessage:c,validationMessage:d,value:m,...u}=e;const[h,p]=(0,a.useTouchedState)({});return(0,i.useEffect)((()=>{const e=y(m),n=e.isValid,t=e.messages&&e.messages.length?e.messages[0]:void 0;!s&&n?l(!0):s&&!n&&l(!1),t&&c(t)}),[s,l,m,h,c]),i.createElement(a.TextInput,(0,o.A)({"data-testid":"warRoomOptions-warRoomNameInput",label:"Room name",name:"createRoom",placeholder:"Enter your room's name",hint:"Tip: Use rooms to group your Nodes by their service, purpose, or location.",fieldIndicator:n,value:m,touched:h,onBlur:p,onChange:r,success:s,error:!s&&d,instantFeedback:"all",disabled:t,autoFocus:!0},u))};var _=t(63314);const w=new RegExp(/^[\w\s\d]*?$/),v=e=>{let{id:n,navigateToParent:t,isCreateForm:d,roomName:m,setRoomName:u,roomDescription:h,setRoomDescription:f,charsDescIndicator:y,onSaveClick:v,...T}=e;const k=(0,l.wz)(n),x=(0,r.DL)(),[P,C]=(0,i.useState)(!1),[q,S]=(0,i.useState)(""),[D,A]=(0,i.useState)(""),[M]=(0,a.useInputValue)({maxChars:s.ux}),E=(0,i.useCallback)((e=>u(e.target.value)),[u]),N=!!n,H=((0,c.JT)("room:LeaveAllNodes")||!k.untouchable)&&x.length>1&&k.isMember,[R,I]=(0,a.useTouchedState)({defaultState:!0}),O=!k.name||m===k.name&&h===k.description;return(0,i.useEffect)((()=>{A(w.test(h)&&R?"":"The description can only contain digits, letters, and spaces.")}),[R,h]),i.createElement(_.Ay,{tab:"Room::RoomForm"},i.createElement(a.Flex,(0,o.A)({column:!0,"data-testid":"manageWarRoom",flex:"grow",justifyContent:"between",height:"100%",gap:3},T),i.createElement(a.Flex,{column:!0,"data-testid":"manageWarRoom-settings",gap:2},i.createElement(b,{"data-testid":"manageWarRoom-createRoomInput",value:m,handleChange:E,charsIndicator:M,validationMessage:q,setValidationMessage:S,isValid:P,setIsValid:C,isDisabled:N&&k.untouchable}),i.createElement(a.TextInput,{"data-testid":"manageWarRoom-descriptionInput",label:"Description",name:"roomDescription",placeholder:"A room description...",instantFeedback:"positiveFirst",touched:R,onBlur:I,fieldIndicator:y,error:""!==D&&D,success:""===D,value:h,onChange:f})),i.createElement(a.Flex,{"data-testid":"manageWarRoom-actions"},i.createElement(a.Flex,{"data-testid":"manageWarRoom-deleteLeaveActions",gap:4},N&&H&&i.createElement(p,{id:n,name:k.name,navigateToParent:t}),N&&i.createElement(g.Ay,{id:n,name:m,navigateToParent:t})),!d&&i.createElement(a.Button,{"data-ga":"manage-war-room-tab::click-save::manage-war-room-modal","data-testid":"manageRoom-saveButton",label:"Save",onClick:v,disabled:O,margin:[0,0,0,"auto"]}))))}},97245:(e,n,t)=>{t.d(n,{L:()=>a,P:()=>s});t(14905),t(98992),t(8872);var o=t(68831),i=t(25950);const a=e=>{let{data:n,untouchable:t,currentUserId:o,canRemoveUser:i}=e;return n.reduce(((e,n)=>{const a=o===(null===n||void 0===n?void 0:n.id);return e.push({name:n.name,email:n.email,user:{avatarURL:n.avatarURL,name:n.name,email:n.email,id:n.id},type:n.role,disabled:!i||a||t,isSelf:a}),e}),[])},s=e=>e.reduce(((e,n)=>{var t;return e.push({name:n.name||"",os:n.os.id||"",node:{id:n.id,name:n.name||"",os:n.os?"".concat(o.A.assetsBaseURL,"/img/logos/os/").concat((null===(t=i.U[n.os.id])||void 0===t?void 0:t.logoFilename)||"placeholder.svg"):"".concat(o.A.assetsBaseURL,"/img/logos/os/placeholder.svg")},...n}),e}),[])},46440:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(58168),i=t(96540),a=t(10058),s=t(29217);const r=e=>i.createElement(s.A,{content:"Room you're a member of. You're able to receive notifications related to nodes in this room"},i.createElement(a.Icon,(0,o.A)({name:"checkmark",width:"12px",height:"12px","data-testid":"svg"},e)))},87860:(e,n,t)=>{t.d(n,{A:()=>g,u:()=>p});t(62953);var o=t(96540),i=t(63950),a=t.n(i),s=t(71847),r=t(37618),l=t(83957),c=t(47762),d=t(41739),m=t(46741),u=t(63129),h=t(67990);const p=r.Ay?e=>{let{id:n}=e;return"rooms.".concat(n,".nodes")}:e=>{let{id:n,spaceId:t}=e;return"spaces.".concat(t,".rooms.").concat(n,".nodes")},g=e=>{let{id:n,spaceId:t,pollingInterval:i=63e3,polling:r=!0,keepPolling:g,onNodeIdsChange:f=a()}=e;const y=(0,h.gr)(n,"ids"),[b,_]=(0,o.useState)((()=>(null===y||void 0===y?void 0:y.length)||0)),w=(0,h.gr)(n,"loaded"),v=(0,m.JT)("room:Read");(0,o.useEffect)((()=>{w&&f({nodeIds:y})}),[y,w]),(0,o.useEffect)((()=>{w&&b!==y.length&&((0,s.H)("node-count","node-count-changed-from-".concat(b,"-to-").concat(y.length),"","","","node-count-change"),_(y.length))}),[y.length,b,w]),(0,l.A)((()=>({key:p({id:n,spaceId:t}),autorun:!!v&&!!t&&!!n,fetch:()=>(0,u.uQ)({roomId:n,spaceId:t}),polling:r,association:{getError:()=>(0,h.dT)({id:n,key:"error"}),getIds:()=>(0,h.dT)({id:n,key:"ids"}),getLoaded:()=>(0,h.dT)({id:n,key:"loaded"}),getUpdatedAt:()=>(0,h.dT)({id:n,key:"updatedAt"})},sort:(e,n)=>e.name.localeCompare(n.name,void 0,{sensitivity:"accent",ignorePunctuation:!0}),getResource:e=>(0,c.GN)({id:e}),getResourcesInitializer:()=>c.gl,getResourceInitialState:d.q,pollingOptions:{pollingInterval:i},maxCacheAge:900,force:!0,keepPolling:g})),[t,n,i])}},56359:(e,n,t)=>{t.d(n,{S:()=>c,z:()=>d});t(62953);var o=t(47444),i=t(2404),a=t.n(i),s=t(3914);const r={loaded:!1,entries:[],error:null,updatedAt:""},l=(0,o.Iz)({key:"spaceAlerts",default:r}),c=(0,o.K0)({key:"spaceAlertState",get:e=>{let{id:n,key:t}=e;return e=>{let{get:o}=e;return o(l(n))[t]}},set:e=>{let{id:n,key:t}=e;return(e,o)=>{let{set:i}=e;i(l(n),"error"!==t?e=>({loaded:!0,entries:a()(o,e.entries)?e.entries:o,updatedAt:(new Date).toISOString()}):{...r,error:o})}}}),d=e=>((e,n)=>(0,o.vc)(c({id:e,key:n})))((0,s.vt)(),e)},36712:(e,n,t)=>{t.d(n,{$t:()=>w,FN:()=>_,MQ:()=>p,O0:()=>b,PE:()=>u,U2:()=>y,n$:()=>m,pZ:()=>f,td:()=>g,ue:()=>l});t(9920),t(14905),t(98992),t(3949),t(8872),t(62953);var o=t(26655),i=t(63950),a=t.n(i),s=t(49286),r=t(88116);const l={id:null,name:"",description:"",commitment:!1,pricing:[],enrolledAt:null,currentPeriodFrom:null,currentPeriodTo:null,committedNodes:0,billingEmail:"",balance:{amount:0,currency:"usd"}},c=e=>{var n;const t=r.Nw[e.class],o=(0,s.bn)(e),i=Array.isArray(o.pricing)?o.pricing.reduce(((e,n)=>({...e,[n.type]:n})),{}):{},a=null===(n=r.uC[t])||void 0===n?void 0:n[e.version];return{...l,...o,planLimitations:a,pricing:i,slug:t}},d=e=>(0,s.bn)(e),m=e=>o.A.get("/api/v2/spaces/".concat(e,"/billing/plans"),{transform:e=>{let{plans:n}=e;const t=n.reduce(((e,n)=>{const t=c(n),o=e[t.slug]||[];return"year"===t.interval?o.unshift(t):o.push(t),e[t.slug]=o,e}),{});return Object.entries(t).forEach((e=>{let[n,o]=e;const i=o.reduce(((e,n)=>{const{version:t}=n;return e[t]?e[t]=[...e[t],n]:e[t]=[n],e}),{});t[n]=i})),t}}),u=e=>o.A.get("/api/v2/spaces/".concat(e,"/billing/plan"),{allow401:!0,transform:c}),h=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";return function(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i="update"==e?o.A.put:o.A.post;return"function"!==typeof i?a():i("/api/v2/spaces/".concat(n,"/billing/plan"),(0,s.Jz)(t),{transform:e=>{let{url:n}=e;return n}})}},p=(e,n)=>h("checkout")(e,n),g=(e,n)=>h()(e,n),f=(e,n)=>o.A.get("/api/v2/spaces/".concat(e,"/billing/portal?redirect_url=").concat(encodeURIComponent(n)),{transform:e=>{let{url:n}=e;return n}}),y=(e,n)=>{let{after:t,before:i}=n;return o.A.get("/api/v2/spaces/".concat(e,"/billing/node-count?from=").concat(t,"&to=").concat(i))},b=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o.A.put("/api/v2/spaces/".concat(e,"/billing/plan/preview"),(0,s.Jz)(n),{transform:d})},_=function(e){let{email:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o.A.post("/api/v2/spaces/".concat(e,"/billing/trial"),{email:n})},w=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o.A.post("api/v2/spaces/".concat(e,"/billing/promo-code/check"),(0,s.Jz)(n))}},19673:(e,n,t)=>{t.d(n,{og:()=>q,L_:()=>x,D:()=>D,JN:()=>v,Qh:()=>T,lU:()=>f,qW:()=>_,i5:()=>C,M4:()=>P});t(9391),t(62953);var o=t(96540),i=t(47444);const a=(0,i.eU)({key:"billingPlanCancelling",default:!1});var s=t(63950),r=t.n(s),l=t(3914),c=t(36712),d=t(88116),m=t(29848),u=t(46741),h=t(37618);const p=[],g=(0,i.K0)({key:"plans",get:e=>()=>(0,c.n$)(e)}),f=()=>{var e;const n=(0,l.vt)(),t=(0,i.xf)(g(n));return{loaded:"loading"!==t.state,value:(null===(e=t.contents)||void 0===e?void 0:e.data)||p,hasError:"hasError"===t.state}},y=(0,i.K0)({key:"previewPlan",get:e=>{let{spaceId:n,payload:t}=e;return()=>t?(0,c.O0)(n,t):Promise.resolve({data:{noRequest:!0}})},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),b=e=>{var n;return d.aT[null===e||void 0===e||null===(n=e.response)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.errorMsgKey]},_=(e,n)=>{var t;const o=(0,l.vt)(),a=(0,i.xf)(y({spaceId:o,payload:e,forceFetch:n}));return{loading:"loading"===a.state,value:(null===(t=a.contents)||void 0===t?void 0:t.data)||{},promoCodeError:"hasError"===a.state?b(a.contents):void 0}},w=(0,i.K0)({key:"currentPlan",get:e=>{let{spaceId:n,canFetchPlan:t}=e;return()=>t&&n&&!(0,h.ES)(n)?(0,c.PE)(n):Promise.resolve()}}),v=()=>{var e;const n=(0,l.vt)(),t=(0,u.JT)("billing:ReadBasic"),o=(0,i.xf)(w({spaceId:n,canFetchPlan:t})),a=(0,i.RH)(w({spaceId:n,canFetchPlan:t}));return{loaded:"loading"!==o.state,value:(null===(e=o.contents)||void 0===e?void 0:e.data)||c.ue,hasError:"hasError"===o.state,refresh:a}},T=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.href;const[n,t]=(0,o.useState)(!1),i=(0,l.vt)();return[(0,o.useCallback)((()=>{t(!0),(0,c.pZ)(i,e).then((e=>{let{data:n}=e;return location.href=n})).finally((()=>t(!1)))}),[i,e]),n]},k=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c.td;const n=(0,l.vt)(),t=v(),o=(0,m.ly)();return!t.loaded||t.hasError?r():i=>e(n,i).then((e=>{t.refresh(),o(),null!==e&&void 0!==e&&e.data&&(location.href=e.data)}))},x=()=>k(c.MQ),P=()=>k(),C=()=>{const e=(0,l.vt)();return n=>(0,c.FN)(e,n)},q=()=>{const[e,n]=(0,i.L4)(a);return{cancelling:e,startCancelling:(0,o.useCallback)((()=>n(!0)),[]),stopCancelling:(0,o.useCallback)((()=>n(!1)),[])}},S=(0,i.K0)({key:"couponCheck",get:e=>{let{spaceId:n,...t}=e;return()=>t.promotionCode?(0,c.$t)(n,t):Promise.resolve({})}}),D=function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,l.vt)(),o=(0,i.xf)(S({spaceId:t,...n}));return{loading:"loading"===o.state,discount:(null===(e=o.contents)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.percent_off)||0,promoCodeError:"hasError"===o.state?b(o.contents):void 0}}},63502:(e,n,t)=>{t.d(n,{A:()=>c});var o=t(96540),i=t(47444),a=t(46741),s=t(26655);const r=(0,i.Iz)({key:"spaceClaimingTokens",default:[]}),l=(0,i.K0)({key:"claimingTokensState",get:e=>n=>{let{get:t}=n;return t(r(e))},set:e=>(n,t)=>{let{set:o}=n;o(r(e),[t])}}),c=e=>{const n=(0,i.vc)(l(e)),t=(0,a.JT)("node:Create",e),r=(0,i.Zs)((e=>{let{snapshot:n,set:t}=e;return async e=>{if(!(await n.getPromise(l(e))).length){const{data:n}=await(e=>s.A.post("/api/v1/spaces/".concat(e,"/tokens"),void 0,{allow401:!0}))(e);t(l(e),n)}}}),[]);return(0,o.useEffect)((()=>{t&&e&&r(e)}),[t,e]),n}},6586:(e,n,t)=>{t.d(n,{A:()=>l});var o=t(58168),i=t(96540),a=t(84976),s=t(4659),r=t(3914);const l=e=>{let{children:n,...t}=e;const l=(0,r.bq)(),c="/spaces/".concat(l,"/settings/nodes");return i.createElement(s.A,(0,o.A)({as:a.N_,to:c},t),n)}},28061:(e,n,t)=>{t.d(n,{A:()=>s});var o=t(96540),i=t(47767),a=t(27994);const s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const n=(0,i.Zp)(),{url:t}=(0,a.A)("business");return(0,o.useCallback)((()=>{n(t,{replace:!0,state:{coupon:e}})}),[t])}},12602:(e,n,t)=>{t.d(n,{A:()=>l});var o=t(58168),i=t(96540),a=t(84976),s=t(4659),r=t(27994);const l=e=>{let{children:n,...t}=e;const{url:l}=(0,r.A)("business");return i.createElement(s.A,(0,o.A)({as:a.N_,to:l,disabled:!l},t),n)}},73865:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(96540),i=t(47762),a=t(19673),s=t(93155);const r=()=>{const{loaded:e,nodes:n,hasError:t,refresh:r}=(0,i.Du)(),{loaded:l,value:c,hasError:d}=(0,a.JN)(),m=s.bO&&!(null===c||void 0===c||!c.planLimitations),{maxNodes:u=0,maxDashboards:h=0}=(null===c||void 0===c?void 0:c.planLimitations)||{},p=(0,o.useCallback)((e=>m&&!n.includes(e)),[n,m]);return{loaded:e&&l,hasError:t||d,currentPlan:c,hasLimitations:m,maxNodes:u,maxDashboards:h,preferredNodes:n,isNodeRestricted:p,refreshPreferredNodes:r}}},27994:(e,n,t)=>{t.d(n,{A:()=>s});var o=t(96540),i=t(19673),a=t(3914);const s=e=>{const{loaded:n,value:t,hasError:s}=(0,i.JN)(),r=(0,a.bq)(),l=n&&t?t.billingEmail?"update":"checkout":"",c="/spaces/".concat(r,"/settings/billing/all-plans"),d=(0,o.useCallback)((e=>n&&t?"".concat(c,"#billingModalType=").concat(l,"&billingModalSlug=").concat(e):null),[e,r,l]),m=e?d(e):c;return{loaded:n,getUrl:d,url:m,hasError:s}}},42728:(e,n,t)=>{t.d(n,{Dy:()=>c,Kj:()=>i,LJ:()=>h,Lm:()=>d,M7:()=>p,S_:()=>m,bk:()=>s,di:()=>g,ji:()=>a,lb:()=>f,qN:()=>r,z_:()=>l});t(17333),t(14905),t(98992),t(54520),t(8872),t(62953);var o=t(88116);const i=e=>[o.VH.free,o.VH.earlyBird].includes(e),a=(e,n,t)=>{if(e.amountPerNode)return t?e.amountPerNode:e.amountPerNode/12;if(n.amountPerNode)return t?12*n.amountPerNode:n.amountPerNode;if(e.amountFlat){const n="year"==e.interval?e.amountFlat/12:e.amountFlat;return t?12*n:n}return 0},s=function(){let{amountFlat:e,interval:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e?"month"==n?e:e/12:0},r=e=>{if(!e)return null;const{city:n,country:t,line_1:o,line_2:i,postalCode:a,state:s}=e;return[[o,i].filter(Boolean).join(" "),n,a,s,t].filter(Boolean).join(", ")},l=e=>{let{currentPlan:n,slug:t,version:o,onTrial:a}=e;const{slug:s,version:r,interval:l}=n;return s===t&&r===o?i(t)?"Current plan":a?"Upgrade":"year"===l?"Update plan options":"Change billing frequency":i(s)&&!i(t)||"pro"===s&&"business"===t?"Upgrade":"Select"},c=(e,n)=>i(n)?"hollow":"business"===n||"pro"===n&&i(e)?"default":"hollow",d=function(e,n,t,o,i){let a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;const s=u(e,n,t,o,i)-a;return s<0?0:s},m=function(e,n,t,o,i){let a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(!o)return o;const s=u(i,e,n,t)-a;return o-s<0?o:s},u=(e,n,t,o,i)=>((n||0)-e)*(t||0)+(o||0)-(i||0),h=e=>e?Object.entries(e).reduce(((e,n)=>{let[t,i]=n;return o.tD.includes(t)?e+Object.keys(i).length:e}),0)+2:2,p=(e,n)=>{const t=e.split("."),o=new Date(t[0],t[1]-1),i=n.split(".");return new Date(i[0],i[1]-1)-o},g=function(){let{price:e={},promotionCode:n,commitment:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:o,commitment:i}=e,a={productId:o,promotionCode:n};return!o||i&&!t?null:i&&t?{...a,commitment:t}:a},f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(!e||isNaN(e))return"";const n=parseFloat(e);return n%1>.1?n.toFixed(1):n.toFixed(0)}},50105:(e,n,t)=>{t.d(n,{A:()=>y});t(62953);var o=t(96540),i=t(10058),a=t(72641),s=t(78969),r=t(15327),l=t(74618),c=t(45765),d=t(55189),m=t(80542);const u=new RegExp(/(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]|[!@#$%^&*()_+=\-])/),h=(0,m.k)([e=>{const n=e.length>=d.pz;return(0,m.H)(n,"Please enter a name for the Space that is at least 5 characters.")},e=>{const n=e.length<=d.dy;return(0,m.H)(n,"A Space's name can't exceed 20 characters.")},e=>u.test(e)?{isValid:!1,message:"There's an unexpected character in the Space's name. Use only alphanumeric characters (A-Z, a-z, 0-9) and spaces."}:{isValid:!0}]),p=e=>{let{value:n,isValid:t,setIsValid:a,charsIndicator:s,isDirty:r,handleChange:l,validationMessage:c,setValidationMessage:d,onKeyDown:m}=e;const[u,p]=(0,i.useTouchedState)({});return(0,o.useEffect)((()=>{const e=h(n),o=e.isValid,i=e.messages&&e.messages.length?e.messages[0]:void 0;!t&&o?a(!0):t&&!o&&a(!1),i&&d(i)}),[t,n,u,a,d]),o.createElement(i.TextInput,{label:"Space name",name:"createWorkspace",placeholder:"Enter your Space's name",hint:"Give your Space a name that's between 5-20 characters. This cannot change.",fieldIndicator:s,value:n,touched:u,onBlur:p,onChange:l,success:t,error:!t&&c,instantFeedback:"positiveFirst",isDirty:r,onKeyDown:m})};var g=t(50876),f=t(63314);const y=e=>{let{onClose:n,onDone:t}=e;const[m,u]=(0,o.useState)(!1),[h,y]=(0,o.useState)(!1),[b,_,w,v]=(0,i.useInputValue)({maxChars:d.dy}),[T,k]=(0,o.useState)(""),{sendLog:x,isReady:P}=(0,g.A)(),C=(0,o.useCallback)((e=>{y(!1),n(),null===t||void 0===t||t(e),x({feature:"CreateSpace",isSuccess:!0})}),[n,x,P]),q=(0,o.useCallback)((()=>{y(!1),x({feature:"CreateSpace",isFailure:!0})}),[x,P]),S=(0,a.A)({onSuccess:C,onError:q}),D=(0,o.useCallback)((()=>{m&&(y(!0),S({name:b}))}),[b,m]);return o.createElement(r.GO,{onClose:n},o.createElement(f.Ay,{feature:"CreateSpace"},o.createElement(l.z,{onClose:n,title:"Create Space"},o.createElement(i.Button,{disabled:!m,isLoading:h,loadingLabel:"Creating",label:"Save",onClick:D})),o.createElement(c.U,null,"Create a new Space"),o.createElement(r.Yv,null,o.createElement(p,{isDirty:v,isValid:m,setIsValid:u,value:b,handleChange:_,charsIndicator:w,validationMessage:T,setValidationMessage:k,onKeyDown:e=>{e.keyCode===s.I7&&m&&D()}}))))}},84280:(e,n,t)=>{t.d(n,{$d:()=>m,A8:()=>r,G0:()=>l,IV:()=>u,Wk:()=>p,aj:()=>i,bO:()=>c,bq:()=>g,mm:()=>o,uX:()=>f,ys:()=>h});const o="info",i="rooms",a="nodes",s="users",r="notifications",l="integrations",c="billing",d="integrations",m="configurations",u=[o,i,a,s,r,c,d,m],h={[o]:"Info",[i]:"Rooms",[a]:"Nodes",[s]:"Users",[r]:"Alerts & Notifications",[l]:"Services",[c]:"Plan & Billing",[d]:"Integrations",[m]:"Configurations"},p=u[0],g="/spaces/:spaceSlug/settings/:settingsTab/*",f="/spaces/:spaceSlug/settings/:settingsTab/:settingsSubTab/*"},83694:(e,n,t)=>{t.d(n,{A:()=>w,o:()=>b});var o=t(58168),i=(t(9391),t(62953),t(96540)),a=t(47767),s=t(10058),r=t(76634),l=t(4659),c=t(29217),d=t(57992),m=t(55189),u=t(22292),h=t(87659),p=t(19673),g=t(92155),f=t(50876);const y=(0,g.A)(s.Button),b=e=>n=>{let{currentPlan:t,...o}=n;const{class:a,interval:r,billingEmail:c}=t,d="year"===r?"yearly":"monthy",m="".concat(a," ").concat(d),u=!["Community","EarlyBird"].includes(a),h=!!c&&!u;return i.createElement(e,o,u&&i.createElement(i.Fragment,null,i.createElement(s.Text,null,"You are currently on ",i.createElement(s.Text,{strong:!0},m)," subscription, which will be cancelled automatically and any due credit from unused period will be given to your credit balance."),i.createElement(s.Text,null,"Any available credit with us won't be automatically lost. If you want to use it in the future, within the defined period on our"," ",i.createElement(l.A,{href:"https://www.netdata.cloud/service-terms/",rel:"noopener noreferrer",target:"_blank"},"Terms of Service"),", or have any requests about previous invoices you can reach out to"," ",i.createElement(s.Text,{strong:!0},"support@netdata.cloud"))),h&&i.createElement(s.Text,null,"You will lose direct access to you invoices and billing information. If you want to retrieve this information in the future, you'll have to contact"," ",i.createElement(s.Text,{strong:!0},"support@netdata.cloud")))},_=b((e=>{let{spaceName:n,children:t}=e;return i.createElement(s.Flex,{column:!0,gap:2},i.createElement(s.Text,null,"You are about to delete ",i.createElement("strong",null,n)," space."),t,i.createElement(s.Text,null,"Are you sure you want to continue?"))})),w=e=>{let{id:n,isLastSpace:t,name:l,onClose:g,...b}=e;const w=(0,a.Zp)(),v=(0,d.A)(n),T=(0,u.NJ)(),{value:k}=(0,p.JN)(),[x,,P,C]=(0,h.A)(),[q,S]=(0,h.A)(),{sendLog:D,sendButtonClickedLog:A,isReady:M}=(0,f.A)(),E=(0,i.useCallback)((e=>{g(),D({feature:"DeleteSpace",isSuccess:!0}).finally((()=>w("/spaces/".concat(e))))}),[D,M]),N=(0,i.useCallback)((()=>{S(),v({onSuccess:E}),A({feature:"DeleteSpace",label:"Confirm Delete"})}),[A,M]),H=(0,i.useCallback)((()=>{C(),D({feature:"DeleteSpace",isFailure:!0,eventReason:"User canceled"})}),[D,M]);return T&&i.createElement(r.A,{permission:"space:Delete"},i.createElement(c.A,{align:"top",content:t&&m.sh.delete,isBasic:!0,stretch:"align"},i.createElement(s.Box,null,i.createElement(y,(0,o.A)({danger:!0,"data-ga":"manage-space-tab::click-delete-space::manage-space-modal","data-testid":"deleteSpace-button",disabled:t,flavour:"hollow",label:"DELETE SPACE",onClick:P,isStart:!0,feature:"DeleteSpace"},b)))),x&&i.createElement(s.ConfirmationDialog,{confirmLabel:q?"Deleting...":"Yes, delete","data-ga":"delete-space","data-testid":"deleteSpaceDialog",handleConfirm:N,handleDecline:H,message:i.createElement(_,{spaceName:l,currentPlan:k}),title:"Delete ".concat(l," space"),isConfirmDisabled:q,isConfirmLoading:q,isDeclineDisabled:q}))}},47373:(e,n,t)=>{t.d(n,{e_:()=>l,fc:()=>s,ni:()=>r,xc:()=>a});const o=/^[a-zA-Z0-9@_.-\s!]*$/,i=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,a={nameMinLength:"Space name should be more than 4 characters",slugMinLength:"Space slug should be more than 2 characters",slugMaxLength:"Space slug should not be more than 30 characters",slugNotAvailable:"Space slug is not available. Please try another one.",nameAllowedChars:"Please use alphanumeric characters (A-Z, a-z, 0-9), spaces, periods and supported special characters @, -, _,.",slugAllowedChars:"Please use lowercase alphanumeric characters (a-z, 0-9) or hyphens. The slug cannot start or end with a hyphen."},s=e=>e.length<5?"nameMinLength":o.test(e)?null:"nameAllowedChars",r=e=>e.length<3?"slugMinLength":i.test(e)?null:"slugAllowedChars",l=e=>!o.test(e)&&"allowedChars"},76999:(e,n,t)=>{t.d(n,{A:()=>w});var o=t(58168),i=t(96540),a=t(10058),s=t(56359),r=(t(3064),t(98992),t(72577),t(47444)),l=t(3914);const c={alertCounter:{warning:0,critical:0},unreachableCount:0},d=(0,r.K0)({key:"roomAlertSummaryState",get:e=>{let{id:n,key:t}=e;return e=>{let{get:o}=e;const i=o(l.EG),a=o((0,s.S)({id:i,key:"entries"})).find((e=>{let{id:t}=e;return t===n}))||c;return t?a[t]:a}}});var m=t(69765),u=t(45123),h=t(29217),p=t(8711);const g=(0,p.default)(a.Flex).attrs({flex:{grow:0,shrink:0},width:2,height:2,margin:[0,1,0,0],round:1,background:"error",justifyContent:"center",alignItems:"center"}).withConfig({displayName:"indicators__ErrorIndicator",componentId:"sc-19hg3ay-0"})([""]),f=(0,p.default)(g).attrs({background:"warning"}).withConfig({displayName:"indicators__WarningIndicator",componentId:"sc-19hg3ay-1"})([""]),y=(0,p.default)(g).attrs({background:"textLite"}).withConfig({displayName:"indicators__UnreachableIndicator",componentId:"sc-19hg3ay-2"})([""]);var b=t(23630),_=t(46440);const w=e=>{let{id:n,selectedId:t,spaceSlug:l,isSidebar:c,hideAlerts:p,differentiateIsMember:w,...v}=e;const{alertCounter:{critical:T,warning:k},unreachableCount:x}=((e,n)=>(0,r.vc)(d({id:e,key:n})))(n),P=(0,m.wz)(n,"slug"),C=(0,m.wz)(n,"name"),q=(0,m.wz)(n,"isMember"),S=(0,s.z)("error"),D=(0,s.z)("updatedAt");return i.createElement(u.A,(0,o.A)({},!!l&&{to:"/spaces/".concat(l,"/rooms/").concat(P)},{testid:"roomLabel-warRoom-".concat(C),actions:p?null:i.createElement(h.A,{content:i.createElement(b.A,{error:S,text:"Room alerts",updatedAt:D}),isBasic:!0,align:"right"},i.createElement(a.Flex,{flex:!1,flexWrap:!1,justifyContent:"end",width:{min:6},height:{min:2}},T>0&&i.createElement(g,null),k>0&&i.createElement(f,null),x>0&&i.createElement(y,null))),icon:w&&q&&i.createElement(_.A,null),iconColor:"successLite",iconHeight:"12px",iconWidth:"12px",gap:1,textProps:w&&!q&&{padding:[0,0,0,4]},selected:n===t,isSidebar:c,isSecondary:!q},v),C)}},13617:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(58168),i=t(96540),a=t(10058),s=t(77279);const r=e=>{let{onFilterClick:n,showAllRooms:t,...r}=e;return i.createElement(a.Flex,(0,o.A)({gap:2,padding:[1,2],"data-testid":"roomFilterPills"},r),i.createElement(s.O,{flavour:t?"hollow":"default",onClick:n(!1),label:"My Rooms","data-ga":"roomFilterPills::click-my::global-view","data-testid":"roomFilterPills-showMy"}),i.createElement(s.O,{flavour:t?"default":"hollow",onClick:n(!0),label:"All Rooms","data-ga":"roomFilterPills::click-show-all::global-view","data-testid":"roomFilterPills-showAll"}))}},12938:(e,n,t)=>{t.d(n,{A:()=>h});var o=t(58168),i=(t(17333),t(41393),t(98992),t(54520),t(81454),t(62953),t(96540)),a=t(45467),s=t(10058),r=t(14994),l=t(3914),c=t(69765),d=t(46741),m=t(76999),u=t(13617);const h=e=>{let{isSidebar:n,...t}=e;const h=(0,r.DL)(),[p,g]=(0,i.useState)(!1),f=(0,l.vt)(),y=(0,l.bq)();(0,a.A)((()=>{g(!1)}),[f]);const b=(0,d.JT)("room:ReadAll"),_=(0,i.useMemo)((()=>h.filter((e=>{let{isMember:n}=e;return n}))),[h]),w=b&&_.length>0,v=w&&!p?_:h,T=(0,c.ID)();return i.createElement(i.Fragment,null,w&&i.createElement(u.A,{onFilterClick:e=>n=>{n.stopPropagation(),g(e)},showAllRooms:p}),v.map(((e,a)=>{let{id:r,untouchable:l}=e;return i.createElement(i.Fragment,{key:r},i.createElement(m.A,(0,o.A)({id:r,hideAlerts:!n,Wrapper:s.Text,isSidebar:n,differentiateIsMember:p,spaceSlug:y,selectedId:T},t)),l&&a!==v.length-1&&i.createElement(s.Flex,{border:{side:"top",color:"border"},margin:[1.5,0],"data-testid":"roomLabel-warRoomSeparator"}))})))}},77279:(e,n,t)=>{t.d(n,{O:()=>s,v:()=>a});var o=t(8711),i=t(10058);const a=(0,o.default)(i.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-i0gfkp-0"})(["transform:",";"],(e=>{let{right:n}=e;return n?"rotate(0)":"rotate(180deg)"})),s=(0,o.default)(i.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-i0gfkp-1"})(["&&{padding:2px 16px;font-size:12px;height:auto;width:auto;min-width:96px;}"])},78862:(e,n,t)=>{t.d(n,{A:()=>u});var o=t(58168),i=(t(62953),t(96540)),a=t(8711),s=t(47767),r=t(10058),l=t(29217),c=t(3914);const d=[],m=(0,a.default)(r.Flex).attrs((e=>{let{active:n,background:t,showFullname:o,...i}=e;return{width:o?"auto":7,height:7,background:n?"spaceSelected":"spaceIdle",justifyContent:"center",alignItems:"center",round:.5,padding:o?[0,1]:[0],margin:o?[0,0,1]:[0],...i}})).withConfig({displayName:"spaceLabel__SpaceBox",componentId:"sc-1e67mnq-0"})(["cursor:pointer;&:hover{background:",";}"],(e=>{let{active:n}=e;return n?(0,r.getColor)("spaceSelected"):(0,r.getColor)("spaceHovered")})),u=(h=e=>{let{active:n,spaceId:t,testIdPrefix:a,local:l=!1,onClick:u,showFullname:h,color:p,...g}=e;const f=(0,s.Zp)(),y=(0,c.ns)(t),[b,_]=(e=>{if(!e)return d;const n=e.split(" "),[t,o]=n;return[t[0],o?o[0]:""]})(y.name),w=(0,i.useCallback)((()=>u?u(y):f(l?"/overview":"/spaces/".concat(y.slug))),[y.slug,l,u]);return i.createElement(m,(0,o.A)({active:n,"data-testid":"".concat(a||"spaceLabel-space","-").concat(y.slug),onClick:w},g,{showFullname:h}),l?i.createElement(r.Icon,{name:"node",color:n?"textFocus":"textLite"}):h?i.createElement(r.TextSmall,{strong:!0,color:n?"textFocus":p||"textNoFocus"},y.name):i.createElement(i.Fragment,null,i.createElement(r.TextSmall,{strong:!0,color:n?"key":p||"text"},b),i.createElement(r.TextSmall,{strong:!0,color:n?"textLite":p||"textNoFocus"},_)))},e=>{const n=(0,c.ns)(e.spaceId);return e.showFullname?i.createElement(h,e):i.createElement(l.A,{content:null===n||void 0===n?void 0:n.name,align:"right",isBasic:!0},i.createElement(r.Box,null,i.createElement(h,e)))});var h},55463:(e,n,t)=>{t.d(n,{Z8:()=>d,K2:()=>m,kd:()=>c,jX:()=>u,pB:()=>g,i3:()=>_,Gi:()=>h,$D:()=>p,bj:()=>y});t(17333),t(9920),t(41393),t(98992),t(54520),t(3949),t(81454);var o=t(47444),i=t(70716),a=t(22292),s=t(3914);const r={ids:(0,o.Iz)({key:"spaceMemberIds",default:[]}),updatedAt:(0,o.Iz)({key:"spaceMembersUpdatedAt",default:""}),loaded:(0,o.Iz)({key:"spaceMembersLoaded",default:!1})},l=(0,o.Iz)({key:"spaceMemberRole",default:""}),c=(0,o.K0)({key:"spaceMemberState",get:e=>{let{id:n,key:t}=e;return e=>{let{get:o}=e;return o(r[t](n))}},set:e=>{let{id:n,key:t}=e;return(e,o)=>{let{set:i}=e;i(r[t](n),o)}}}),d=(e,n)=>{Object.values(r).forEach((t=>e(t(n))))},m=(0,o.K0)({key:"spaceMemberRoleState",get:e=>{let{id:n,spaceId:t}=e;return e=>{let{get:o}=e;return o(l({id:n,spaceId:t}))}},set:e=>{let{id:n,spaceId:t}=e;return(e,o)=>{let{set:i}=e;i(l({id:n,spaceId:t}),o)}}}),u=(0,o.K0)({key:"spaceMembersRoleState",set:e=>(n,t)=>{let{set:o}=n;t.forEach((n=>{let{id:t,role:i}=n;o(m({id:t,spaceId:e}),i)}))},get:e=>{let{ids:n,spaceId:t}=e;return e=>{let{get:o}=e;return n.map((e=>o(m({id:e,spaceId:t}))))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),h=()=>{const e=(0,s.vt)();return n=e,t="ids",(0,o.vc)(c({id:n,key:t}));var n,t},p=e=>{const n=(0,s.vt)();return(0,o.vc)(u({ids:e,spaceId:n}))},g=()=>"admin"===(e=>{const n=(0,s.vt)();return(0,o.vc)(m({id:e,spaceId:n}))})((0,a.uW)("id")),f=(0,o.K0)({key:"currentSpaceMembersState",get:e=>{let{ids:n,spaceId:t}=e;return e=>{let{get:o}=e;return n.map((e=>({...o((0,i.m)({id:e})),role:o(m({id:e,spaceId:t}))})))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),y=()=>{const e=(0,s.vt)(),n=h();return(0,o.vc)(f({ids:n,spaceId:e}))},b=(0,o.K0)({key:"spaceAdminsState",get:e=>{let{memberIds:n,spaceId:t}=e;return e=>{let{get:o}=e;return o(f({ids:n,spaceId:t})).filter((e=>{let{role:n}=e;return"admin"===n}))}}}),_=()=>{const e=(0,s.vt)(),n=h();return(0,o.vc)(b({memberIds:n,spaceId:e}))}},72641:(e,n,t)=>{t.d(n,{A:()=>r});t(25509),t(65223),t(60321),t(41927),t(11632),t(64377),t(66771),t(12516),t(68931),t(52514),t(35694),t(52774),t(49536),t(21926),t(94483),t(16215),t(62953);var o=t(47444),i=t(7484),a=t(3914),s=t(56639);const r=e=>{let{onSuccess:n,onError:t,isDefault:r=!1}=e;return(0,o.Zs)((e=>{let{set:o}=e;return async e=>{let{name:l,userId:c,email:d}=e;try{const{data:e}=r?await(0,i.qi)(c,d):await(0,i.bz)(l),{id:t,slug:m,name:u}=e;o((0,s.Ay)(t),{id:t,slug:m,name:r?u:l,loaded:!0}),o((0,s.aR)(m),t),o((0,a.nC)("ids"),(e=>e=[...new Set([...e,t])])),o((0,a.nC)("loaded"),!0),n&&n(e)}catch(m){t&&t()}}}),[n,t])}},57992:(e,n,t)=>{t.d(n,{A:()=>u});t(17333),t(98992),t(54520),t(62953);var o=t(47444),i=t(71835),a=t(7484),s=t(55189),r=t(3914),l=t(56639),c=t(48849),d=t(55463),m=t(14994);const u=e=>{const[,n]=(0,i.A)();return(0,o.Zs)((t=>{let{snapshot:o,set:i,reset:u}=t;return async t=>{let{onSuccess:h,onError:p}=t;const g=await o.getPromise((0,r.nC)("ids")),f=g.filter((n=>e!==n)),[y]=f;if(!y)return void n({header:"Spaces",text:s.sh.delete});const{slug:b}=y&&await o.getPromise((0,l.Ay)(y));i((0,r.nC)("ids"),f),i(c.A,(n=>n.filter((n=>n!==e))));try{await(0,a.cN)(e),h&&h(b),(0,d.Z8)(u,e),(0,m.Is)(u,e),u((0,l.Ay)(e))}catch(_){i((0,r.nC)("ids"),g),n(_),p&&p()}}}),[e])}},98046:(e,n,t)=>{t.d(n,{A:()=>r});t(62953);var o=t(47444),i=t(3914),a=t(7484),s=t(71835);const r=e=>{const[n,t]=(0,s.A)();return(0,o.Zs)((o=>{let{snapshot:s,set:r}=o;return async(o,l)=>{let{onSuccess:c,onFail:d}=l;const m=await s.getPromise((0,i.U2)({id:e}));r((0,i.U2)({id:e}),(e=>({...e,...o})));try{await(0,a.Yk)(e,o),n({header:"Space successfully updated!"}),c&&c()}catch(u){r((0,i.U2)({id:e}),m),t(u),d&&d()}}}),[e])}},65566:(e,n,t)=>{t.d(n,{A:()=>s});t(62953);var o=t(96540),i=t(50876);const a=()=>"dissmissed-banner",s=e=>{let{getLocalStorageKey:n=a,logKey:t}=e;const[s,r]=(0,o.useState)(!0),{sendButtonClickedLog:l}=(0,i.A)();(0,o.useEffect)((()=>{const e="true"==localStorage.getItem(n());r(e)}),[n]);return{dismissed:s,onClose:(0,o.useCallback)((()=>{localStorage.setItem(n(),!0),r(!0),t&&l({feature:t})}),[r,l,n])}}},61360:(e,n,t)=>{t.d(n,{A:()=>i});t(62953);var o=t(96540);const i=function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const i=(0,o.useRef)(e);(0,o.useLayoutEffect)((()=>{i.current=e}),t),(0,o.useEffect)((()=>{const e=setTimeout((()=>i.current()),n);return()=>clearTimeout(e)}),[n,...t])}},67742:(e,n,t)=>{t.d(n,{A:()=>i});var o=t(96540);const i=(e,n)=>{const t=(0,o.useRef)(e);(0,o.useLayoutEffect)((()=>{t.current=e}),[e]),(0,o.useEffect)((()=>{if(!n&&0!==n)return;const e=setInterval((()=>t.current()),n);return()=>clearInterval(e)}),[n])}},540:(e,n,t)=>{t.d(n,{A:()=>s});t(62953);var o=t(96540),i=t(27467);const a={},s=(e,n,t,s)=>{const[r,l]=(0,i.N9)("modal"),[c,d]=(0,i.N9)("modalTab"),[m,u]=(0,i.N9)("modalParams"),h=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;"string"===typeof n&&d(n),l(e),t&&u(t)};return(0,o.useEffect)((()=>{n&&h(t,s)}),[]),{isModalOpen:e===r,currentModalTab:c,handleChangeModalTab:d,handleOpenModal:h,handleCloseModal:()=>{d(""),l(""),u()},params:m||a}}},35261:(e,n,t)=>{t.d(n,{A:()=>d});var o=t(96540),i=t(87337),a=t(82432),s=t(67990),r=t(3914),l=t(14994),c=t(5169);const d=()=>{const e=(0,c.t)(),n=(0,l.WW)(),t=(0,r.vt)(),d=(0,i.YN)(),m=(0,s.nl)(t,n);return(0,o.useCallback)((async function(o){let{onSuccess:i,onFail:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};await m(o,{onSuccess:o=>{(0,a.tv)({cacheKeyPrefix:e,nodeIds:o,roomIds:n,spaceId:t}),null===i||void 0===i||i()},onFail:s}),await d(o)}),[m,d])}},57605:(e,n,t)=>{t.d(n,{A:()=>s});t(62953);var o=t(45467),i=t(87659),a=t(80925);const s=()=>{const[e,n]=(0,i.A)(!1),t=(0,a.e)();return(0,o.A)((()=>{if(t&&t.getRoot())return t.getRoot().updateAttribute("paused",!t.getRoot().getAttribute("autofetchOnWindowBlur")&&t.getRoot().getAttribute("blurred")||e),()=>t.getRoot().updateAttribute("paused",!t.getRoot().getAttribute("autofetchOnWindowBlur")&&t.getRoot().getAttribute("blurred"))}),[e]),n}},37944:(e,n,t)=>{t.d(n,{A:()=>l});var o=t(47767),i=t(96540),a=t(45588),s=t(3914),r=t(84280);const l=function(){let{roomSlug:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,s.bq)(),t=(0,o.Zp)(),{pathname:l}=(0,o.zy)(),c="".concat(l);return(0,i.useCallback)((()=>{const o=e?(0,a.tW)(r.uX,{spaceSlug:n,settingsTab:r.aj,settingsSubTab:e}):"/spaces/".concat(n,"/settings");t(o,{state:{previousUrlPath:c}})}),[c,t,e,n])}},17632:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(69765),i=t(67990),a=t(82432),s=t(5169);const r=e=>{const n=(0,s.t)(),t=(0,o.ID)(),r=(0,o.wz)(e||t,"spaceId");return(0,i.vV)(r,e||t,{onSuccess:o=>(0,a.gm)({cacheKeyPrefix:n,nodeIds:o,roomId:e||t,spaceId:r})})}},67602:(e,n,t)=>{t.d(n,{A:()=>i});var o=t(540);const i=(e,n)=>{const{isModalOpen:t,handleOpenModal:i,handleCloseModal:a,params:s}=(0,o.A)(e,n);return[t,t?a:i,i,a,s]}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5700.313f7b9c7005d2022b03.chunk.js b/src/web/gui/v2/5700.313f7b9c7005d2022b03.chunk.js
new file mode 100644
index 000000000..e57ac73e9
--- /dev/null
+++ b/src/web/gui/v2/5700.313f7b9c7005d2022b03.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b3984748-ff70-4ff6-a157-b5273d602eb9",e._sentryDebugIdIdentifier="sentry-dbid-b3984748-ff70-4ff6-a157-b5273d602eb9")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5700],{95700:(e,n,d)=>{d.r(n),d.d(n,{default:()=>b});d(62953);var f=d(96540),t=d(67602),o=d(55337),l=d(6323);const b=()=>{const[e,,,n]=(0,t.A)("manageInvitations");return f.createElement(o.A,null,e&&f.createElement(l.d,{onClose:n}))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js b/src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js
new file mode 100644
index 000000000..341e411c2
--- /dev/null
+++ b/src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js
@@ -0,0 +1,2 @@
+/*! For license information please see 5709.6fc5fd48f639100fa6ad.chunk.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="53f25339-47b5-4c62-a37b-72772d5eef9c",e._sentryDebugIdIdentifier="sentry-dbid-53f25339-47b5-4c62-a37b-72772d5eef9c")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5709],{86272:(e,t,n)=>{"use strict";t.__esModule=!0,t.Button=void 0;var o,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),l=n(75879),s=n(34247),c=n(9736),r=(o=n(15877))&&o.__esModule?o:{default:o},i=["label","icon","flavour","isLoading","loadingLabel","onClick","textTransform","iconColor","iconSize","iconWidth","iconHeight","children"];function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(this,arguments)}(t.Button=(0,a.forwardRef)((function(e,t){var n=e.label,o=e.icon,d=e.flavour,h=e.isLoading,v=e.loadingLabel,m=e.onClick,f=e.textTransform,w=void 0===f?"firstLetter":f,p=e.iconColor,g=e.iconSize,y=e.iconWidth,b=e.iconHeight,x=e.children,_=void 0===x?n:x,M=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i);return a.default.createElement(l.StyledButton,u({flavour:d,textTransform:w,hasIcon:!!o||h,onClick:h?void 0:m,ref:t,iconColor:p,iconWidth:y,iconHeight:b},M),h&&a.default.createElement(c.LoaderIcon,{className:"button-icon"}),o&&!h&&a.default.createElement(r.default,{justifyContent:"center",alignItems:"center",width:"auto",height:"100%"},a.default.createElement(s.Icon,{size:g,className:"button-icon",title:o,name:o,width:y,height:b})),!!_&&a.default.createElement("span",null,h&&v||_))}))).defaultProps={onClick:function(){},icon:null}},27029:(e,t,n)=>{"use strict";t.__esModule=!0,t.ButtonGroup=void 0;var o,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=r(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),l=(o=n(15877))&&o.__esModule?o:{default:o},s=n(86272),c=["items","checked","onChange","children","buttonProps"];function r(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(r=function(e){return e?n:t})(e)}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},i.apply(this,arguments)}var d=function(e,t){var n=0==e,o=e==t-1;return{groupFirst:n,groupLast:o,groupMiddle:!n&&!o}},u=function(e){var t=e.children,n=a.Children.toArray(t).length;return a.default.createElement(a.default.Fragment,null,a.Children.map(t,(function(e,t){if((0,a.isValidElement)(e)){var o=d(t,n);return(0,a.cloneElement)(e,o)}return e})))},h=function(e){var t=e.items,n=e.checked,o=e.buttonProps,l=void 0===o?{}:o,c=e.onChange;return a.default.createElement(a.default.Fragment,null,t.map((function(e,o){var r=e.label,u=e.value,h=e.title,v=d(o,t.length);return a.default.createElement(s.Button,i({key:u,label:r,onClick:function(){return c(u)}},h?{title:h}:{},n!=u?{flavour:"hollow"}:{},v,l))})))};t.ButtonGroup=function(e){var t=e.items,n=e.checked,o=e.onChange,s=e.children,r=e.buttonProps,d=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c);return a.default.createElement(l.default,i({alignItems:"center"},d),null!=t&&t.length?a.default.createElement(h,{items:t,checked:n,onChange:o,buttonProps:r}):a.default.createElement(u,null,s))}},25547:(e,t)=>{"use strict";t.__esModule=!0,t.HOLLOW=t.DEFAULT=t.BORDER_LESS=void 0;t.DEFAULT="default",t.HOLLOW="hollow",t.BORDER_LESS="borderless"},7517:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=d(n(8043)),l=d(n(15877)),s=d(n(81816)),c=n(92019),r=n(86272),i=["width","height","tooltip"];function d(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},h.apply(this,arguments)}var v=function(e){var t=e.content;return o.default.createElement(l.default,{padding:[1.5,2],margin:[2],background:"tooltip",round:1,alignSelf:"start"},o.default.createElement(c.TextSmall,{color:"tooltipText"},t))},m=(0,o.forwardRef)((function(e,t){var n=e.width,l=void 0===n?"14px":n,c=e.height,d=void 0===c?"14px":c,u=e.tooltip,m=void 0===u?"":u,f=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i);return o.default.createElement(s.default,{plain:!0,animation:!0,content:m&&o.default.createElement(v,{content:m})},o.default.createElement(a.default,h({as:r.Button,iconWidth:l,iconHeight:d,ref:t,flavour:"borderless",neutral:!0},f)))}));t.default=m},37466:(e,t,n)=>{"use strict";t.__esModule=!0,t.IconButton=t.ButtonGroup=t.Button=void 0;var o=n(86272);t.Button=o.Button;var a,l=(a=n(7517))&&a.__esModule?a:{default:a};t.IconButton=l.default;var s=n(27029);t.ButtonGroup=s.ButtonGroup},75879:(e,t,n)=>{"use strict";t.__esModule=!0,t.StyledButton=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=w(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(8711)),a=n(13759),l=n(41234),s=f(n(32305)),c=f(n(36094)),r=f(n(62703)),i=f(n(27988)),d=f(n(60090)),u=f(n(25320)),h=n(50677),v=n(25547),m=["groupFirst","groupLast","groupMiddle"];function f(e){return e&&e.__esModule?e:{default:e}}function w(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(w=function(e){return e?n:t})(e)}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function y(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b={light:l.DefaultTheme,dark:l.DarkTheme},x=(0,o.css)(["border-color:",";background-color:",";color:",";box-shadow:inset 0 4px 4px rgba(0,0,0,0.25);"],(function(e){return e.colors.borderActive(e)}),(function(e){return e.colors.bgActive(e)}),(function(e){return e.colors.colorActive(e)})),_=function(e){return e.neutral?(0,l.getColor)(e.flavour===v.HOLLOW?"textFocus":"text")(e):(0,l.getColor)("primary")(e)},M=function(e){return e.neutral?(0,l.getColor)("generic")(e):(0,l.getColor)("primary")(e)},z=function(e){return e.neutral?(0,l.getColor)(e.flavour===v.HOLLOW?"text":"mainBackground")(e):(0,l.getColor)(e.flavour===v.HOLLOW?"secondaryColor":"mainBackground")(e)},B=function(e){return e.neutral?(0,l.getColor)("generic")(e):(0,l.getColor)("accent")(e)},H=function(e){return e.neutral?(0,l.getColor)(e.flavour===v.BORDER_LESS?"textFocus":"neutralHighlight")(e):(0,l.getColor)(e.flavour===v.HOLLOW?"secondaryHighlight":"primaryHighlight")(e)},C=(0,l.getColor)(["transparent","full"]),V=function(e){var t,n=e.flavour,o=void 0===n?v.DEFAULT:n,s=e.danger,c=e.warning,r=e.iconColor,i=s?(0,l.getColor)("error"):void 0,d=c?(0,l.getColor)("warning"):void 0,u=i||d,h=u?function(e){return(0,a.lighten)(.2,u(e))}:void 0,m=u?function(e){return(0,a.darken)(.2,u(e))}:void 0,f=r?(0,l.getColor)(r):void 0,w=((t={})[v.DEFAULT]={color:z,colorHover:z,colorActive:z,bg:u||_,bgHover:h||B,bgActive:m||H,border:u||_,borderHover:h||B,borderActive:m||H,iconColor:f||z},t[v.HOLLOW]={color:u||z,colorHover:h||z,colorActive:m||z,bg:C,bgHover:H,bgActive:H,border:u||M,borderHover:h||_,borderActive:m||_,iconColor:f||u||_},t[v.BORDER_LESS]={color:u||_,colorHover:h||H,colorActive:m||H,bg:C,bgHover:C,bgActive:C,border:C,borderHover:C,borderActive:C,iconColor:f||u||_},t);return w[o]||w[v.DEFAULT]};t.StyledButton=o.default.button.attrs((function(e){var t=e.groupFirst,n=e.groupLast,o=e.groupMiddle,a=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,m);return g({padding:a.padding||a.tiny?[.5,1]:a.small?[1,3]:[2],colors:V(a),round:t?{side:"left"}:n?{side:"right"}:!o},function(e){return e.themeType?g(g({},e),{},{theme:b[e.themeType]}):g(g({},e),{},{theme:e.theme})}(a))})).withConfig({displayName:"styled__StyledButton",componentId:"sc-14wh25s-0"})(["&&{display:flex;justify-content:center;align-items:center;position:relative;",";font-weight:",";font-size:",";white-space:nowrap;word-break:keep-all;cursor:pointer;"," pointer-events:",";"," "," transition:all 150ms;background-color:",";color:",";border-width:1px;border-style:solid;border-color:",";"," box-sizing:border-box;"," "," text-decoration:none;& > span{",";margin-left:",";}&:hover{border-color:",";background-color:",";color:",";text-decoration:none;.button-icon{fill:",";}}&:active{","}"," &:focus{outline:none;}.button-icon{height:",";width:",";fill:",";}.ntd-spinner{fill:none;stroke-width:17px;stroke-dasharray:100;stroke-dashoffset:100;animation:ntd-draw 1s linear infinite;stroke:",";width:24px;}.path{stroke:",";}@keyframes ntd-draw{to{stroke-dashoffset:0;}}}"],i.default,(function(e){return e.strong?700:500}),(function(e){var t=e.small;return e.tiny?"10px":t?"12px":"14px"}),(function(e){return e.disabled&&"opacity: 0.4;"}),(function(e){return e.disabled?"none":"auto"}),s.default,c.default,(function(e){return e.colors.bg(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.border(e)}),r.default,u.default,h.position,d.default,(function(e){return e.hasIcon?"4px":"0px"}),(function(e){return e.colors.borderHover(e)}),(function(e){return e.colors.bgHover(e)}),(function(e){return e.colors.colorHover(e)}),(function(e){return e.colors.colorHover(e)}),x,(function(e){return e.active&&"\n "+x+"\n "}),(function(e){return e.iconWidth?"string"===typeof e.iconWidth?e.iconWidth:e.iconWidth+"px":(0,l.getSizeBy)(2)(e)}),(function(e){return e.iconHeight?"string"===typeof e.iconHeight?e.iconHeight:e.iconHeight+"px":(0,l.getSizeBy)(2)(e)}),(function(e){return e.colors.iconColor(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.color(e)}))},87159:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),l=(o=n(15877))&&o.__esModule?o:{default:o},s=n(92019),c=n(34247),r=["children","align","margin","background"];function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},d.apply(this,arguments)}var u={right:1,bottom:2,left:3},h=(0,a.forwardRef)((function(e,t){var n=e.children,o=e.align,i=e.margin,h=void 0===i?[1]:i,v=e.background,m=void 0===v?"tooltip":v,f=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,r);return a.default.createElement(l.default,{ref:t,column:"top"===o,columnReverse:"bottom"===o,rowReverse:"right"===o,margin:h},a.default.createElement(l.default,d({background:m,padding:[1,2],round:!0,column:!0},f),"string"===typeof n?a.default.createElement(s.Text,{color:"tooltipText"},n):n),o&&a.default.createElement(c.Icon,{name:"triangle",alignSelf:"center",color:m,rotate:u[o],height:"8px",width:"8px","data-testid":"drop-arrow"}))}));t.default=h},99436:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=w(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=f(n(40961)),l=f(n(44862)),s=f(n(43119)),c=f(n(35586)),r=f(n(51365)),i=f(n(34587)),d=f(n(22007)),u=f(n(93331)),h=f(n(89075)),v=f(n(8711)),m=["backdrop","target","align","stretch","onClickOutside","onEsc","children","canHideTarget","keepHorizontal"];function f(e){return e&&e.__esModule?e:{default:e}}function w(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(w=function(e){return e?n:t})(e)}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},p.apply(this,arguments)}var g=v.default.div.withConfig({displayName:"drop__Backdrop",componentId:"sc-1lp2o35-0"})(["position:absolute;inset:0;pointer-events:all;background-color:rgba(0,0,0,0.3);z-index:60;",";}"],h.default),y={top:"bottom",left:"left"},b=(0,o.forwardRef)((function(e,t){var n=e.backdrop,h=void 0!==n&&n,v=e.target,f=e.align,w=void 0===f?y:f,b=e.stretch,x=void 0===b?"width":b,_=e.onClickOutside,M=e.onEsc,z=e.children,B=e.canHideTarget,H=void 0===B||B,C=e.keepHorizontal,V=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,m),O=(0,r.default)(t),k=O[0],L=O[1],S=(0,d.default)(v,k,w,x,H,C);(0,o.useLayoutEffect)((function(){S()}),[S]),(0,i.default)(v,S),(0,c.default)(k,_,v),(0,s.default)(M);var A=(0,l.default)();return a.default.createPortal(h?o.default.createElement(o.default.Fragment,null,o.default.createElement(u.default,p({ref:L,width:{max:"100%"},column:!0,"data-testid":"drop"},V),z),o.default.createElement(g,null)):o.default.createElement(u.default,p({ref:L,width:{max:"100%"},column:!0,"data-testid":"drop"},V),z),A)}));t.default=b},34587:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=n(96540),l=(o=n(42561))&&o.__esModule?o:{default:o};t.default=function(e,t){return(0,a.useEffect)((function(){var n,o=function(){var n=(0,l.default)(e).filter((function(e){return e.scrollHeight>e.clientHeight}));return n.forEach((function(e){return e.addEventListener("scroll",t,{capture:!1,passive:!0})})),function(){return n.forEach((function(e){return e.removeEventListener("scroll",t)}))}};n=o();var a=function(){n(),n=o(),t()};return window.addEventListener("resize",a),function(){n(),window.removeEventListener("resize",a)}}),[e,t])}},86633:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=u(n(8711)),l=n(56977),s=u(n(15877)),c=u(n(94474)),r=u(n(8043)),i=n(51462),d=["hideShadow","itemProps","items","onItemClick","dropTitle","dropTitlePadding","Item","Footer","value","hasSearch","searchMargin","gap","estimateSize","close"];function u(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},v.apply(this,arguments)}var m=(0,a.default)(s.default).withConfig({displayName:"dropdown__Container",componentId:"sc-1nyt35p-0"})([""," list-style-type:none;"],(function(e){return!e.hideShadow&&"box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);"})),f=function(){return 28},w=(0,o.forwardRef)((function(e,t){var n=e.hideShadow,a=e.itemProps,u=e.items,h=e.onItemClick,w=e.dropTitle,p=e.dropTitlePadding,g=void 0===p?[3,3,0]:p,y=e.Item,b=e.Footer,x=e.value,_=e.hasSearch,M=e.searchMargin,z=void 0===M?[4]:M,B=e.gap,H=void 0===B?0:B,C=e.estimateSize,V=void 0===C?f:C,O=e.close,k=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,d),L=(0,o.useState)(""),S=L[0],A=L[1],E=(0,o.useMemo)((function(){if(!S)return u;var e=S.toLowerCase();return u.filter((function(t){var n=t.label,o=t.value;return!("string"!==typeof n||!n.toLowerCase().includes(e))||!("string"!==typeof o||!o.toLowerCase().includes(e))}))}),[u,S]),P=(0,o.useRef)(),j=(0,l.useVirtualizer)({count:E.length,getScrollElement:function(){return P.current},scrollOffsetFn:function(e){return e?e.target.scrollTop-P.current.offsetTop:0},overscan:3,enableSmoothScroll:!1,estimateSize:V});return o.default.createElement(m,v({as:"ul",role:"listbox",background:"dropdown",hideShadow:n,padding:[0],margin:[1,0],column:!0,tabindex:"-1",width:"auto"},k),w&&o.default.createElement(s.default,{padding:g},w),_&&o.default.createElement(r.default,{margin:z},o.default.createElement(c.default,{"data-testid":"dropdown-search",placeholder:"Search",onChange:A})),o.default.createElement("div",{ref:(0,i.mergeRefs)(P,t),style:{height:"100%",overflow:"auto"}},o.default.createElement("div",{style:{minHeight:j.getTotalSize()+"px",width:"100%",position:"relative"}},j.getVirtualItems().map((function(e){return o.default.createElement("div",{key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY("+e.start+"px)",padding:2*H,overflow:"hidden"},"data-index":e.index,ref:j.measureElement},o.default.createElement(y,{item:E[e.index],index:e.index,itemProps:a,value:x,onItemClick:h,close:O}))})))),b&&o.default.createElement(b,{close:O}))}));t.default=w},21046:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=t.ItemContainer=void 0;var o=d(n(96540)),a=d(n(8711)),l=n(41234),s=d(n(15877)),c=n(92019),r=["value","label","icon","reverse","disabled","onClick"],i=["item","value","onItemClick","index","style"];function d(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(this,arguments)}function h(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function m(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=t.ItemContainer=(0,a.default)(s.default).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){m(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({as:"li",role:"option",padding:[1,4]},e)})).withConfig({displayName:"dropdownItem__ItemContainer",componentId:"sc-vjov6x-0"})(["cursor:",";opacity:",";pointer-events:",";&:hover{background-color:",";}"," ",""],(function(e){var t=e.cursor;return null!=t?t:"pointer"}),(function(e){var t=e.disabled;return e.selected?.9:t?.4:1}),(function(e){return e.disabled?"none":"auto"}),(function(e){return(0,l.getColor)("borderSecondary")(e)}),(function(e){var t=e.justDesc,n=e.theme;return t&&"\n pointer-events: none;\n border-top: 1px solid "+(0,l.getColor)("borderSecondary")({theme:n})+";\n & > * {\n color: "+(0,l.getColor)("textLite")({theme:n})+"\n }\n "}),(function(e){var t=e.selected,n=e.theme;return t&&"\n background-color: "+("Dark"===n.name?(0,l.getRgbColor)(["green","netdata"],.3)({theme:n}):(0,l.getRgbColor)(["green","frostee"])({theme:n}))+"\n "}));t.default=function(e){var t=e.item,n=t.value,a=t.label,l=t.icon,s=t.reverse,d=t.disabled,v=t.onClick,m=h(t,r),w=e.value,p=e.onItemClick,g=e.index,y=e.style,b=h(e,i),x=w===n;return o.default.createElement(f,u({"data-index":g,"aria-selected":x,disabled:d,selected:x,onClick:function(e){v&&v(e),p(n)}},m,b,{style:y}),s&&o.default.createElement(c.TextSmall,null,a),l,!s&&o.default.createElement(c.TextSmall,null,a))}},72982:(e,t,n)=>{"use strict";t.A=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=v(n(99436)),l=v(n(48004)),s=v(n(42561)),c=v(n(51365)),r=v(n(23627)),i=v(n(9763)),d=v(n(86633)),u=v(n(21046)),h=["value","onChange","onOpen","onClose","closeOnClick","open","icon","label","caret","children","dropProps","dropdownProps","itemProps","items","Item","Footer","Dropdown","animation","dropTitle","dropTitlePadding","hasSearch"];function v(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},f.apply(this,arguments)}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=(0,o.forwardRef)((function(e,t){var n=e.value,v=e.onChange,m=e.onOpen,g=e.onClose,y=e.closeOnClick,b=void 0===y||y,x=e.open,_=void 0!==x&&x,M=e.icon,z=void 0===M?null:M,B=e.label,H=e.caret,C=void 0===H||H,V=e.children,O=e.dropProps,k=e.dropdownProps,L=e.itemProps,S=e.items,A=e.Item,E=void 0===A?u.default:A,P=e.Footer,j=e.Dropdown,T=void 0===j?d.default:j,D=e.animation,I=e.dropTitle,F=e.dropTitlePadding,R=e.hasSearch,N=void 0!==R&&R,W=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,h),q=(0,r.default)(_,{on:m,off:g}),U=q[0],Y=q[1],Q=q[3],X=(0,c.default)(t),Z=X[0],G=X[1],K=(0,o.useCallback)((function(e){v&&v(e),b&&Q()}),[v]),$=(0,o.useCallback)((function(e){Z.current===e.target||(0,s.default)(e.target).some((function(e){return e===Z.current}))||Q()}),[Q]),J=(0,l.default)(V,G,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({onClick:Y,"aria-haspopup":"listbox","aria-expanded":U,open:U},W)),ee=(0,o.useMemo)((function(){if(B)return B;if(J)return J;var e=S.find((function(e){return e.value===n}));return null==e?void 0:e.label}),[B,J,S,n]);return o.default.createElement(o.Fragment,null,J||o.default.createElement(i.default,f({ref:G,icon:z,label:ee,caret:C,onClick:Y,open:U},W)),U&&Z.current&&o.default.createElement(a.default,f({animation:D,onEsc:Q,onClickOutside:$,hideShadow:!0,target:Z.current},O),o.default.createElement(T,f({dropTitle:I,dropTitlePadding:F,value:n,onItemClick:K,items:S,itemProps:L,Item:E,Footer:P,hasSearch:N,close:Q},k))))}));t.A=g},9763:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=i(n(8711)),l=i(n(15877)),s=n(34247),c=n(92019),r=["open","icon","label","caret"];function i(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(this,arguments)}var h=(0,a.default)(l.default).withConfig({displayName:"menuButton__MenuContainer",componentId:"sc-aj99z3-0"})(["cursor:pointer;"]),v=(0,o.forwardRef)((function(e,t){var n=e.open,a=e.icon,i=e.label,d=e.caret,v=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,r);return o.default.createElement(h,u({gap:2,padding:[2,4],justifyContent:"between",alignItems:"center",role:"button",tabindex:"0","aria-haspopup":"listbox","aria-expanded":n,ref:t},v),o.default.createElement(l.default,{alignItems:"center",gap:2},a,"string"===typeof i?o.default.createElement(c.Text,null,i):i),!0===d?o.default.createElement(s.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px",rotate:n?2:null}):d)}));t.default=v},22232:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default={top:{bottom:"top"},left:{right:"left"},right:{left:"right"},bottom:{top:"bottom"}}},42561:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=[];for(e=e.parentNode;e;)t.push(e),e=e.parentNode;return t}},2310:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=(o=n(42561))&&o.__esModule?o:{default:o};t.default=function(e,t){return(0,a.default)(t).some((function(t){return t===e}))}},48004:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var c=a?Object.getOwnPropertyDescriptor(e,l):null;c&&(c.get||c.set)?Object.defineProperty(o,l,c):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),l=(o=n(68016))&&o.__esModule?o:{default:o};function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t,n){return(0,a.useMemo)((function(){if(void 0===e||null===e)return e;if("function"===typeof e)return e(r({ref:function(e){return(0,l.default)(t,e)}},n));var o=function(e){return 1!==a.Children.count(e)?a.Children.only(e):(0,a.isValidElement)(e)?e:a.default.createElement("span",null,e)}(e);return(0,a.cloneElement)(o,r(r({},n),{},{ref:function(e){(0,l.default)(t,e),(0,l.default)(o.ref,e)}}))}),[e,n.open])}},88484:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=n(96540),l=(o=n(3639))&&o.__esModule?o:{default:o};t.default=function(e){return(0,a.useMemo)((function(){return e||(0,l.default)()}),[])}},81816:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=h(n(99436)),l=h(n(51365)),s=h(n(23627)),c=h(n(48004)),r=h(n(88484)),i=h(n(22232)),d=h(n(87159)),u=["plain","open","align","dropProps","content","animation","disabled","zIndex","children","allowHoverOnTooltip"];function h(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},m.apply(this,arguments)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=function(e){return"function"===typeof e?e():e},y=(0,o.forwardRef)((function(e,t){var n=e.plain,h=e.open,v=void 0!==h&&h,f=e.align,p=void 0===f?"top":f,y=e.dropProps,b=e.content,x=e.animation,_=e.disabled,M=e.zIndex,z=void 0===M?80:M,B=e.children,H=e.allowHoverOnTooltip,C=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),V=(0,r.default)(C["aria-describedby"]),O=(0,s.default)(!1),k=O[0],L=O[2],S=O[3],A=(0,l.default)(t),E=A[0],P=A[1],j=(0,c.default)(B,P,w(w({onMouseEnter:L,onMouseLeave:H?function(){return setTimeout((function(){T.current||S()}),300)}:S,onFocus:L,onBlur:S},k&&{"aria-describedby":V}),C)),T=(0,o.useRef)(!1);return(0,o.useLayoutEffect)((function(){E.current&&v&&L()}),[]),b?o.default.createElement(o.Fragment,null,j,k&&E.current&&!_&&o.default.createElement(a.default,m({noEvents:!H,align:(null==y?void 0:y.align)||i.default[p],hideShadow:!0,id:V,onClickOutside:S,onMouseEnter:function(){return T.current=!0},onMouseLeave:function(){T.current=!1,S()},target:E.current},y,{animation:x,onEsc:S,zIndex:z}),n?g(b):o.default.createElement(d.default,{align:p},g(b)))):B}));t.default=y},9736:(e,t,n)=>{"use strict";t.__esModule=!0,t.LoaderIcon=void 0;var o=n(27597);t.LoaderIcon=o.LoaderIcon},27597:(e,t,n)=>{"use strict";t.__esModule=!0,t.LoaderIcon=void 0;var o=s(n(96540)),a=s(n(8711)),l=n(41234);function s(e){return e&&e.__esModule?e:{default:e}}var c=a.default.svg.withConfig({displayName:"loader__StyledSvg",componentId:"sc-fxhmqg-0"})(["fill:none;stroke-width:17px;stroke-dasharray:100;stroke-dashoffset:100;animation:ntd-draw 1s linear infinite;stroke:",";width:24px;.path{stroke:",";}@keyframes ntd-draw{to{stroke-dashoffset:0;}}"],(0,l.getColor)("bright"),(0,l.getColor)("bright"));t.LoaderIcon=function(e){var t=e.className;return o.default.createElement(c,{className:t,viewBox:"0 0 21 17",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},o.default.createElement("g",{className:"path",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd"},o.default.createElement("path",{d:"M2,1 C8.25086152,1 11.9367136,1 13.0575562,1 C14.73882,1 19.6834591,2 19.9614325,7.72050108 C20.239406,13.4410022 15.7459591,15.1224845 13.6463763,15.1224845 C12.2466545,15.1224845 10.0279195,15.1224845 6.9901715,15.1224845 L2,1 Z",id:"Path-2",strokeWidth:"2"})))}},63534:(e,t,n)=>{"use strict";t.__esModule=!0,t.Icon=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=n(38857),l=n(81900),s=["name","size"];function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r.apply(this,arguments)}t.Icon=(0,o.forwardRef)((function(e,t){var n=e.name,c=e.size,i=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,s),d=a.iconsList[n];if(!d)return null;var u,h=c||((u=n).endsWith("_s")?"small":u.endsWith("_l")?"large":"medium");return o.default.createElement(l.StyledIcon,r({viewBox:d.viewBox},i,{size:h,ref:t}),o.default.createElement("use",{xlinkHref:"#"+d.id}))}))},38857:(e,t,n)=>{"use strict";t.__esModule=!0,t.iconsList=void 0;var o=rs(n(47060)),a=rs(n(18217)),l=rs(n(34975)),s=rs(n(52441)),c=rs(n(72041)),r=rs(n(60863)),i=rs(n(30882)),d=rs(n(17423)),u=rs(n(38475)),h=rs(n(71049)),v=rs(n(29044)),m=rs(n(26391)),f=rs(n(58709)),w=rs(n(62709)),p=rs(n(34390)),g=rs(n(20949)),y=rs(n(24810)),b=rs(n(97322)),x=rs(n(58655)),_=rs(n(51317)),M=rs(n(86480)),z=rs(n(98666)),B=rs(n(81886)),H=rs(n(38813)),C=rs(n(78286)),V=rs(n(52390)),O=rs(n(70157)),k=rs(n(87723)),L=rs(n(59460)),S=rs(n(25817)),A=rs(n(78957)),E=rs(n(48783)),P=rs(n(36878)),j=rs(n(62682)),T=rs(n(45715)),D=rs(n(74389)),I=rs(n(43071)),F=rs(n(15588)),R=rs(n(22203)),N=rs(n(14767)),W=rs(n(91956)),q=rs(n(87875)),U=rs(n(97517)),Y=rs(n(3559)),Q=rs(n(79919)),X=rs(n(63668)),Z=rs(n(26762)),G=rs(n(30464)),K=rs(n(66643)),$=rs(n(39078)),J=rs(n(8827)),ee=rs(n(49686)),te=rs(n(49764)),ne=rs(n(49484)),oe=rs(n(89482)),ae=rs(n(20327)),le=rs(n(93855)),se=rs(n(53079)),ce=rs(n(65377)),re=rs(n(77568)),ie=rs(n(51580)),de=rs(n(34623)),ue=rs(n(63319)),he=rs(n(85419)),ve=rs(n(81426)),me=rs(n(68124)),fe=rs(n(86547)),we=rs(n(85809)),pe=rs(n(42202)),ge=rs(n(48083)),ye=rs(n(58746)),be=rs(n(4643)),xe=rs(n(21774)),_e=rs(n(43380)),Me=rs(n(38001)),ze=rs(n(26181)),Be=rs(n(6494)),He=rs(n(66427)),Ce=rs(n(16888)),Ve=rs(n(74552)),Oe=rs(n(66194)),ke=rs(n(14946)),Le=rs(n(85095)),Se=rs(n(47307)),Ae=rs(n(68864)),Ee=rs(n(84652)),Pe=rs(n(8035)),je=rs(n(98411)),Te=rs(n(20599)),De=rs(n(79570)),Ie=rs(n(8001)),Fe=rs(n(79684)),Re=rs(n(4228)),Ne=rs(n(3113)),We=rs(n(39088)),qe=rs(n(99464)),Ue=rs(n(37414)),Ye=rs(n(91423)),Qe=rs(n(79644)),Xe=rs(n(89875)),Ze=rs(n(47720)),Ge=rs(n(72570)),Ke=rs(n(60774)),$e=rs(n(3886)),Je=rs(n(24241)),et=rs(n(41519)),tt=rs(n(22370)),nt=rs(n(40813)),ot=rs(n(58609)),at=rs(n(10237)),lt=rs(n(78057)),st=rs(n(7351)),ct=rs(n(24229)),rt=rs(n(25094)),it=rs(n(89513)),dt=rs(n(41517)),ut=rs(n(27612)),ht=rs(n(5048)),vt=rs(n(11862)),mt=rs(n(949)),ft=rs(n(61898)),wt=rs(n(73862)),pt=rs(n(92949)),gt=rs(n(78131)),yt=rs(n(11336)),bt=rs(n(27555)),xt=rs(n(9080)),_t=rs(n(56851)),Mt=rs(n(49232)),zt=rs(n(32824)),Bt=rs(n(86294)),Ht=rs(n(92605)),Ct=rs(n(35813)),Vt=rs(n(16912)),Ot=rs(n(76107)),kt=rs(n(88909)),Lt=rs(n(45266)),St=rs(n(70762)),At=rs(n(68081)),Et=rs(n(64197)),Pt=rs(n(6232)),jt=rs(n(90728)),Tt=rs(n(52547)),Dt=rs(n(50199)),It=rs(n(20002)),Ft=rs(n(67977)),Rt=rs(n(70009)),Nt=rs(n(65550)),Wt=rs(n(40483)),qt=rs(n(47676)),Ut=rs(n(21489)),Yt=rs(n(82118)),Qt=rs(n(64739)),Xt=rs(n(27703)),Zt=rs(n(16933)),Gt=rs(n(76415)),Kt=rs(n(96104)),$t=rs(n(5820)),Jt=rs(n(72085)),en=rs(n(40235)),tn=rs(n(81199)),nn=rs(n(95546)),on=rs(n(40852)),an=rs(n(43902)),ln=rs(n(21674)),sn=rs(n(1279)),cn=rs(n(53965)),rn=rs(n(14608)),dn=rs(n(5057)),un=rs(n(1498)),hn=rs(n(96317)),vn=rs(n(51991)),mn=rs(n(34111)),fn=rs(n(4344)),wn=rs(n(18647)),pn=rs(n(30983)),gn=rs(n(16410)),yn=rs(n(57013)),bn=rs(n(34031)),xn=rs(n(55703)),_n=rs(n(12501)),Mn=rs(n(43947)),zn=rs(n(52059)),Bn=rs(n(9150)),Hn=rs(n(74480)),Cn=rs(n(45753)),Vn=rs(n(89336)),On=rs(n(22463)),kn=rs(n(3599)),Ln=rs(n(61386)),Sn=rs(n(17506)),An=rs(n(91008)),En=rs(n(95173)),Pn=rs(n(39850)),jn=rs(n(79662)),Tn=rs(n(34106)),Dn=rs(n(7297)),In=rs(n(80370)),Fn=rs(n(38194)),Rn=rs(n(54349)),Nn=rs(n(75873)),Wn=rs(n(39862)),qn=rs(n(29474)),Un=rs(n(53328)),Yn=rs(n(94403)),Qn=rs(n(60188)),Xn=rs(n(64612)),Zn=rs(n(56025)),Gn=rs(n(94064)),Kn=rs(n(24934)),$n=rs(n(61248)),Jn=rs(n(48635)),eo=rs(n(29921)),to=rs(n(52874)),no=rs(n(70922)),oo=rs(n(38141)),ao=rs(n(26946)),lo=rs(n(98108)),so=rs(n(87007)),co=rs(n(14167)),ro=rs(n(64628)),io=rs(n(32365)),uo=rs(n(27506)),ho=rs(n(75116)),vo=rs(n(25376)),mo=rs(n(53085)),fo=rs(n(46550)),wo=rs(n(27129)),po=rs(n(49164)),go=rs(n(47217)),yo=rs(n(15471)),bo=rs(n(65024)),xo=rs(n(84024)),_o=rs(n(69460)),Mo=rs(n(62061)),zo=rs(n(17026)),Bo=rs(n(72693)),Ho=rs(n(19227)),Co=rs(n(5323)),Vo=rs(n(72293)),Oo=rs(n(40484)),ko=rs(n(71061)),Lo=rs(n(43671)),So=rs(n(834)),Ao=rs(n(70249)),Eo=rs(n(88112)),Po=rs(n(27891)),jo=rs(n(16171)),To=rs(n(68205)),Do=rs(n(67360)),Io=rs(n(15958)),Fo=rs(n(47532)),Ro=rs(n(6133)),No=rs(n(19943)),Wo=rs(n(21832)),qo=rs(n(47306)),Uo=rs(n(78902)),Yo=rs(n(28676)),Qo=rs(n(89399)),Xo=rs(n(99229)),Zo=rs(n(97116)),Go=rs(n(77840)),Ko=rs(n(49762)),$o=rs(n(31411)),Jo=rs(n(44555)),ea=rs(n(5157)),ta=rs(n(31896)),na=rs(n(62520)),oa=rs(n(14191)),aa=rs(n(50861)),la=rs(n(13974)),sa=rs(n(51665)),ca=rs(n(66689)),ra=rs(n(74161)),ia=rs(n(26249)),da=rs(n(51961)),ua=rs(n(6819)),ha=rs(n(70391)),va=rs(n(55767)),ma=rs(n(72232)),fa=rs(n(65494)),wa=rs(n(55925)),pa=rs(n(10484)),ga=rs(n(35743)),ya=rs(n(51771)),ba=rs(n(95715)),xa=rs(n(12393)),_a=rs(n(76533)),Ma=rs(n(24972)),za=rs(n(61357)),Ba=rs(n(88222)),Ha=rs(n(43077)),Ca=rs(n(8277)),Va=rs(n(51072)),Oa=rs(n(78776)),ka=rs(n(44212)),La=rs(n(8269)),Sa=rs(n(4729)),Aa=rs(n(66359)),Ea=rs(n(46021)),Pa=rs(n(63487)),ja=rs(n(79723)),Ta=rs(n(81925)),Da=rs(n(22202)),Ia=rs(n(17576)),Fa=rs(n(60194)),Ra=rs(n(85694)),Na=rs(n(25628)),Wa=rs(n(2965)),qa=rs(n(13203)),Ua=rs(n(34124)),Ya=rs(n(13151)),Qa=rs(n(52039)),Xa=rs(n(15670)),Za=rs(n(20972)),Ga=rs(n(99947)),Ka=rs(n(86788)),$a=rs(n(73931)),Ja=rs(n(75194)),el=rs(n(84458)),tl=rs(n(26140)),nl=rs(n(83835)),ol=rs(n(2386)),al=rs(n(13347)),ll=rs(n(5601)),sl=rs(n(84222)),cl=rs(n(87083)),rl=rs(n(35624)),il=rs(n(51081)),dl=rs(n(13322)),ul=rs(n(44894)),hl=rs(n(79349)),vl=rs(n(20508)),ml=rs(n(73215)),fl=rs(n(37110)),wl=rs(n(67287)),pl=rs(n(99679)),gl=rs(n(97285)),yl=rs(n(24387)),bl=rs(n(54204)),xl=rs(n(46020)),_l=rs(n(134)),Ml=rs(n(38860)),zl=rs(n(16168)),Bl=rs(n(95436)),Hl=rs(n(87501)),Cl=rs(n(68008)),Vl=rs(n(97701)),Ol=rs(n(1806)),kl=rs(n(85994)),Ll=rs(n(39191)),Sl=rs(n(36419)),Al=rs(n(30807)),El=rs(n(55370)),Pl=rs(n(24762)),jl=rs(n(42149)),Tl=rs(n(5060)),Dl=rs(n(54991)),Il=rs(n(55766)),Fl=rs(n(75444)),Rl=rs(n(18672)),Nl=rs(n(74271)),Wl=rs(n(43728)),ql=rs(n(35655)),Ul=rs(n(88335)),Yl=rs(n(62791)),Ql=rs(n(73324)),Xl=rs(n(9932)),Zl=rs(n(9232)),Gl=rs(n(68905)),Kl=rs(n(79529)),$l=rs(n(85903)),Jl=rs(n(68973)),es=rs(n(68705)),ts=rs(n(29085)),ns=rs(n(99444)),os=rs(n(83357)),as=rs(n(34386)),ls=rs(n(68317)),ss=rs(n(10120)),cs=rs(n(31952));function rs(e){return e&&e.__esModule?e:{default:e}}t.iconsList={add_node:o.default,add_user:a.default,aggregation_avg:l.default,aggregation_max:s.default,aggregation_med:c.default,aggregation_min:r.default,aggregation_sum:i.default,aggregation_sum_abs:d.default,alarm:u.default,alarmCritical:h.default,alarmCriticalWarning:v.default,alarmFilled:m.default,alarmWarning:f.default,alarm_bell:w.default,alarms_new:p.default,alarm_off:g.default,anomaliesBrain:y.default,anomaliesLens:b.default,anomalyBadge:x.default,applications_hollow:_.default,applicationsSolid:Kl.default,around_clock:M.default,arrow_down:z.default,arrow_w_line_left:B.default,arrow_w_line_right:H.default,arrow_left:C.default,arrow_s_down:V.default,arrow_s_left:O.default,arrows_vertical:k.default,bookmark:L.default,bullet_one:S.default,bullet_three:A.default,bullet_two:E.default,calendarFull:P.default,calendarFullPress:j.default,chart_added:T.default,chart_bars:D.default,chart_circle:I.default,chart_gauge:F.default,chart_pie:R.default,charts:N.default,charts_view:Jl.default,check:W.default,checkmark_partial_s:q.default,checkmark_s:U.default,checkmark:Y.default,chevron_double:Q.default,chevron_down:X.default,chevron_down_thin:Z.default,chevron_expand:G.default,chevron_left:K.default,chevron_left_small:J.default,chevron_left_start:$.default,chevron_right:ee.default,chevron_right_end:ne.default,chevron_right_s:te.default,chevron_right_small:oe.default,chevron_up_thin:ae.default,classError:le.default,classLatency:se.default,classUtilization:ce.default,classWorkload:re.default,clock_hollow:ie.default,clock5Min:de.default,clock5MinPress:ue.default,close_circle:he.default,cluster:ve.default,cluster_spaces:me.default,code:fe.default,collapse:we.default,collect:pe.default,community:ge.default,connection_to_cloud:ye.default,connectivityStatusLive:be.default,connectivityStatusOffline:xe.default,connectivityStatusStale:_e.default,container:Me.default,controller_kind:ze.default,controller_name:Be.default,copy:He.default,correlation:Ce.default,correlation_inv:Ve.default,cpu:Oe.default,cross_s:ke.default,data_retention:Le.default,database:Se.default,dashboard:Ae.default,dashboard_add:Ee.default,dashboards:Pe.default,disk:je.default,discoveredConfig:Te.default,documentation:De.default,dot:Ie.default,dots_2x3:Fe.default,download:Re.default,dragHorizontal:Ne.default,dynamicConfig:We.default,edit:qe.default,error:Ue.default,exclamation:Ye.default,expand:Qe.default,favorites:Xe.default,feed:Ze.default,filter:Ge.default,filterList:Ke.default,firewallSolid:Zl.default,forcePlay:$e.default,forcePlayOutline:Je.default,functions:et.default,fullScreen:tt.default,gear:nt.default,github:ot.default,google:lt.default,goToNode:at.default,group_by:st.default,h1:ct.default,h2:rt.default,hamburger:it.default,help:dt.default,hide:ut.default,highlightArea:ht.default,holder:vt.default,importExport:mt.default,incident_manager:ft.default,information:wt.default,informationPress:pt.default,insights:gt.default,integrationAWSSNS:yt.default,integrationAWSSNSColored:bt.default,integrationDiscord:xt.default,integrationDiscordColored:_t.default,integrationEmail:Mt.default,integrationEmailColored:zt.default,integrationMattermost:Bt.default,integrationMattermostColored:Ht.default,integrationMobileAppColored:Ct.default,integrationOpsgenie:Vt.default,integrationOpsgenieColored:Ot.default,integrationPagerduty:kt.default,integrationPagerdutyColored:Lt.default,integrationRocketChat:St.default,integrationRocketChatColored:At.default,integrations:Et.default,internalConfig:Pt.default,integrationSlack:jt.default,integrationSlackColored:Tt.default,integrationSplunk:Dt.default,integrationTeams:It.default,integrationTeamsColored:Ft.default,integrationTelegram:Rt.default,integrationTelegramColored:Nt.default,integrationWebhook:Wt.default,integrationWebhookColored:qt.default,ipNetworking:Ut.default,ipNetworkingPress:Yt.default,last_week:Qt.default,line_chart:Xt.default,logo_s:Gt.default,logs:Zt.default,loading:Kt.default,long_arrow_up:$t.default,magnify:Jt.default,metrics:en.default,metrics_explorer:tn.default,minimize_s:nn.default,mobilePushNotifications:on.default,mobilePushNotificationsHollow:an.default,monitoring:ln.default,more:sn.default,navLeft:cn.default,navRight:rn.default,nav_arrow_goto:dn.default,nav_dots:un.default,networkingStack:$l.default,netdata:hn.default,netdataAssistant:vn.default,netdataPress:mn.default,node:fn.default,node_child:wn.default,node_default_l:pn.default,node_hollow:gn.default,node_import_export:yn.default,node_notification_l:bn.default,node_parent:xn.default,node_selected_l:_n.default,nodes:Mn.default,nodes_hollow:zn.default,none_selected:Bn.default,nodes_update:es.default,notification:eo.default,notification_shortcut_enabled:Hn.default,notification_shortcut_disabled:Cn.default,notificationTrigger:Vn.default,os:On.default,osAlpineLinux:kn.default,osAmazonLinux:Ln.default,osArchLinux:Sn.default,osCelarOS:An.default,osCentos:En.default,osCentosColored:Pn.default,osCoreOS:jn.default,osDebian:Tn.default,osDebianColored:Dn.default,osFedora:In.default,osFreeBSD:Fn.default,osGentoo:Rn.default,osLinux:Nn.default,osLinuxColored:Wn.default,osLinuxManjaro:qn.default,osMacOSX:Un.default,osOracle:Yn.default,osOracleColored:Qn.default,osPress:Xn.default,osRaspbian:Zn.default,osRedHat:Gn.default,osSuseLinux:Kn.default,osUbuntu:$n.default,osUbuntuColored:Jn.default,padlock:to.default,panTool:no.default,pauseOutline:oo.default,pauseSolid:ao.default,pencilSolid:so.default,pencilOutline:lo.default,pie_chart_skeleton:co.default,pin_element:ro.default,playOutline:io.default,playSolid:uo.default,plus:ho.default,plus_mini_s:vo.default,pod:mo.default,pricing:fo.default,print:wo.default,privacy:po.default,pushNotifications:go.default,qrCode:yo.default,ram:_o.default,qualityOfServiceSolid:Gl.default,question:bo.default,questionFilled:xo.default,rearrange:Mo.default,reduceSize:zo.default,refresh:Bo.default,reload:Ho.default,removeNode:Co.default,resize_handler:Vo.default,rocket:Oo.default,room:ko.default,room_home:Lo.default,room_new:So.default,room_overview:Ao.default,sad:Eo.default,save:Po.default,save2:jo.default,scheduled:To.default,search:Do.default,search_s:Io.default,searchPress:Fo.default,serviceAlarm:u.default,serviceApache:Ro.default,serviceAsterisk:No.default,serviceApacheTomcat:Wo.default,serviceBeanstalk:qo.default,serviceBind:Uo.default,serviceContainer:Yo.default,serviceCoreDns:Qo.default,serviceCouchDB:Xo.default,serviceDatabase:Zo.default,serviceDNS:Go.default,serviceDNSmasq:Ko.default,serviceDockerHubPress:$o.default,serviceDockerHub:Jo.default,serviceDotNet:ea.default,serviceEBPF:ta.default,serviceElasticSearch:na.default,serviceExample:oa.default,serviceFreeNAS:aa.default,serviceHAProxy:la.default,serviceHTTPCheck:sa.default,serviceIceCast:ca.default,serviceInfluxDB:ra.default,serviceIPFS:ia.default,serviceIPVS:da.default,serviceKubernetes:ua.default,serviceLighthttpd:ha.default,serviceLighthttpd2:va.default,serviceLiteSpeed:ma.default,serviceLxc:fa.default,serviceMariaDB:wa.default,serviceMemCached:pa.default,serviceMongoDB:ga.default,serviceMySQL:ya.default,serviceMySQLPress:ba.default,serviceNginx:xa.default,serviceNginxLocal:_a.default,serviceNginxPlus:Ma.default,serviceNtpd:za.default,serviceNvidia:Ba.default,serviceNtpdPress:Ha.default,serviceOpenStack:Ca.default,serviceOpenWrt:Va.default,servicePan:Oa.default,servicePandas:ka.default,servicePercona:La.default,servicePfSense:Sa.default,servicePhpFpm:Aa.default,servicePostgreSQL:Ea.default,servicePrometheus:Pa.default,serviceProxySQL:ja.default,serviceRabbitMQ:Ta.default,serviceRandom:Da.default,serviceRedis:Ia.default,serviceRethinkDB:Fa.default,serviceRetroShare:Ra.default,serviceSelectedArea:Na.default,serviceSendgrid:Wa.default,services:qa.default,servicesSmartdlog:Ua.default,serviceSolr:Ya.default,serviceSquid:Qa.default,serviceSummaryStatistic:Xa.default,serviceSystemd:Za.default,serviceTraefik:Ga.default,serviceVarnish:Ka.default,serviceWebLog:$a.default,serviceWebLogNginx:Ja.default,serviceX509Check:el.default,serviceXen:tl.default,settings:nl.default,settings_h:ol.default,sign_in:al.default,sorting_vertical:ll.default,sort_ascending:cl.default,sorting_asc:sl.default,sort_descending:il.default,sorting_desc:rl.default,sort_indicator:dl.default,space:ul.default,space_new:hl.default,spaces_v2:vl.default,stockConfig:ml.default,switch_off:fl.default,system_overview:wl.default,systemOverviewPress:pl.default,text_add:gl.default,thumb_down:yl.default,thumb_up:bl.default,tiny_buttons:xl.default,training:_l.default,trashcan:Ml.default,triangle:zl.default,triangle_down:Bl.default,top:Hl.default,unknownError:Cl.default,universe:Vl.default,unreachable:Ol.default,unreachableNode:kl.default,update:Ll.default,update_pending:Sl.default,upload:Al.default,userConfig:El.default,user:Pl.default,userPress:jl.default,users:Tl.default,value:Dl.default,view_list:Il.default,viewSingleNode:Fl.default,viewSingleNodePress:Rl.default,virtualization:Nl.default,warning:Wl.default,warning_triangle:ql.default,warning_triangle_hollow:Ul.default,weights_compare:Yl.default,weights_drill_down:Ql.default,x:Xl.default,zoomIn:ts.default,zoomOut:ns.default,zoomReset:os.default,N:as.default,I:ls.default,D:ss.default,L:cs.default}},34247:(e,t,n)=>{"use strict";t.__esModule=!0;var o={iconsList:!0,IconComponents:!0};t.iconsList=t.IconComponents=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(9736));t.IconComponents=a;var l=n(38857);t.iconsList=l.iconsList;var s=n(63534);function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===s[e]||(t[e]=s[e]))}))},318:(e,t,n)=>{"use strict";t.__esModule=!0;var o={MultiRangeInput:!0,useTouchedState:!0,useFocusedState:!0,useInputValue:!0};t.useTouchedState=t.useInputValue=t.useFocusedState=t.MultiRangeInput=void 0;var a=n(65478);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===a[e]||(t[e]=a[e]))}));var l,s=(l=n(11421))&&l.__esModule?l:{default:l};t.MultiRangeInput=s.default;var c=n(58926);t.useTouchedState=c.useTouchedState;var r=n(87773);t.useFocusedState=r.useFocusedState;var i=n(85956);t.useInputValue=i.useInputValue},65478:(e,t,n)=>{"use strict";t.__esModule=!0,t.TextInput=void 0;var o=r(n(96540)),a=r(n(15877)),l=n(92019),s=n(9963),c=["error","disabled","iconLeft","iconRight","name","onFocus","onBlur","className","hint","fieldIndicator","placeholder","label","value","inputRef","size","containerStyles","inputContainerStyles","hideErrorMessage"];function r(e){return e&&e.__esModule?e:{default:e}}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},i.apply(this,arguments)}var d=function(e){var t=e.error,n=!0===t?"invalid":t;return"string"===typeof n?o.default.createElement(l.TextMicro,{color:"errorText"},n):!!n&&n};t.TextInput=function(e){var t=e.error,n=e.disabled,r=e.iconLeft,u=e.iconRight,h=e.name,v=e.onFocus,m=e.onBlur,f=e.className,w=e.hint,p=e.fieldIndicator,g=e.placeholder,y=void 0===g?"":g,b=e.label,x=e.value,_=e.inputRef,M=e.size,z=void 0===M?"large":M,B=e.containerStyles,H=e.inputContainerStyles,C=e.hideErrorMessage,V=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c);return o.default.createElement(a.default,i({gap:.5,column:!0,className:f},B,{as:"label"}),"string"===typeof b?o.default.createElement(s.LabelText,{size:z},b):b,o.default.createElement(a.default,i({position:"relative"},H),r&&o.default.createElement(a.default,{position:"absolute",left:1,top:0,bottom:0,alignItems:"center"},r),o.default.createElement(s.Input,i({disabled:n,placeholder:y,onBlur:m,onFocus:v,name:h,"aria-label":h,hasIconLeft:!!r,hasIconRight:!!u,hasIndicator:!!p,type:"text",value:x,size:z,ref:_,error:t,hasValue:!!x},V)),(!!u||!!p)&&o.default.createElement(a.default,{position:"absolute",right:1,top:0,bottom:0,alignItems:"center",gap:1},!!p&&o.default.createElement(l.TextMicro,{color:"textLite"},p),!!u&&u)),"string"===typeof w?o.default.createElement(l.TextMicro,{color:"textLite"},w):!!w&&w,C?null:o.default.createElement(d,{error:t}))}},11421:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),l=(o=n(15877))&&o.__esModule?o:{default:o},s=n(92019),c=n(42318),r=["initMax","initMin","max","min","onChange","onInput","step","TextComponent"];function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},d.apply(this,arguments)}t.default=function(e){var t=e.initMax,n=e.initMin,o=e.max,i=void 0===o?100:o,u=e.min,h=void 0===u?0:u,v=e.onChange,m=e.onInput,f=e.step,w=void 0===f?1:f,p=e.TextComponent,g=void 0===p?s.TextSmall:p,y=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,r),b=(0,a.useState)(t||i),x=b[0],_=b[1],M=(0,a.useState)(n||h),z=M[0],B=M[1],H=(0,a.useState)(0),C=H[0],V=H[1],O=(0,a.useRef)(null),k=(0,a.useRef)(null);(0,a.useEffect)((function(){O.current&&V(O.current.getBoundingClientRect().width)}),[z]),(0,a.useEffect)((function(){_(t||i),B(n||h)}),[i,h]);return a.default.createElement(l.default,{column:!0,gap:1,flex:!0},a.default.createElement(l.default,{alignItems:"center","data-testid":"multiRangeInput",justifyContent:"center",position:"relative",width:"100%"},a.default.createElement(c.Range,d({"data-testid":"minRangeInput",max:i,min:h,onChange:function(e){v&&v({max:x,min:e.target.value})},onInput:function(e){var t=Math.min(+e.target.value,x-w);B(t),e.target.value=t.toString(),m&&m({max:x,min:e.target.value})},position:"relative",ref:k,step:w,value:z,zIndex:3},y)),a.default.createElement(c.Range,d({"data-testid":"maxRangeInput",max:i,min:h,onChange:function(e){v&&v({max:e.target.value,min:z})},onInput:function(e){var t=Math.max(+e.target.value,z+w);_(t),e.target.value=t.toString(),m&&m({max:e.target.value,min:z})},ref:O,step:w,value:x,zIndex:5},y)),a.default.createElement(c.Slider,{"data-testid":"multiRange-slider"},a.default.createElement(c.SliderTrack,{"data-testid":"multiRange-sliderTrack",max:i,maxValue:x,min:h,minValue:z,width:C}))),a.default.createElement(l.default,{"data-testid":"multiRange-values",justifyContent:"between"},a.default.createElement(g,{"data-testid":"multiRange-minValue"},z),a.default.createElement(g,{"data-testid":"multiRange-maxValue"},x)))}},42318:(e,t,n)=>{"use strict";t.__esModule=!0,t.SliderTrack=t.Slider=t.Range=void 0;var o=s(n(8711)),a=s(n(8043)),l=s(n(93980));function s(e){return e&&e.__esModule?e:{default:e}}t.Slider=(0,o.default)(a.default).withConfig({displayName:"styled__Slider",componentId:"sc-y2g216-0"})([""]),t.SliderTrack=(0,o.default)(a.default).withConfig({displayName:"styled__SliderTrack",componentId:"sc-y2g216-1"})(["background-position:",";background-color:","40;background-image:linear-gradient( ",","," );background-repeat:no-repeat;background-size:",";height:2px;width:",";"],(function(e){var t=e.max,n=e.min,o=e.minValue;return e.width*((o-n)/(t-n))*100/100+"px 100%"}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){var t=e.max,n=e.maxValue,o=e.min;return 100*(n-e.minValue)/(t-o)+"% 100%"}),(function(e){return e.width+"px"||0})),t.Range=(0,o.default)(l.default).withConfig({displayName:"styled__Range",componentId:"sc-y2g216-2"})(["pointer-events:none;position:absolute;height:0;outline:none;width:100%;&::-webkit-slider-thumb{pointer-events:all;}"])},93980:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var c=a?Object.getOwnPropertyDescriptor(e,l):null;c&&(c.get||c.set)?Object.defineProperty(o,l,c):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),a=n(43773),l=["max","min","step","value"];function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},c.apply(this,arguments)}var r=(0,o.forwardRef)((function(e,t){var n=e.max,s=void 0===n?100:n,r=e.min,i=void 0===r?0:r,d=e.step,u=void 0===d?1:d,h=e.value,v=void 0===h?0:h,m=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,l);return o.default.createElement(a.InputRange,c({"data-testid":"rangeInput",max:s,min:i,step:u,type:"range",value:v,ref:t},m))}));t.default=r},43773:(e,t,n)=>{"use strict";t.__esModule=!0,t.InputRange=void 0;var o,a=(o=n(8711))&&o.__esModule?o:{default:o},l=n(41234);t.InputRange=a.default.input.attrs({type:"range"}).withConfig({displayName:"styled__InputRange",componentId:"sc-17kts71-0"})(["-webkit-appearance:none;height:2px;background-color:","40;background-image:linear-gradient(",",",");background-repeat:no-repeat;background-size:",";cursor:pointer;width:100%;&::-webkit-slider-thumb{-webkit-appearance:none;height:10px;width:10px;border-radius:50%;background:",";transition:all 0.3s ease-in-out;&:active{height:16px;width:16px;}}"],(0,l.getColor)("primary"),(0,l.getColor)("primary"),(0,l.getColor)("primary"),(function(e){var t=e.max;return 100*e.value/t+"% 100%"}),(0,l.getColor)("primary"))},9963:(e,t,n)=>{"use strict";t.__esModule=!0,t.SuccessIcon=t.StyledLabel=t.StyledIcon=t.MetaInfo=t.MetaContainer=t.LabelText=t.Input=t.IconContainer=t.FieldInfo=t.ErrorIcon=void 0;var o,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(8711)),l=n(34247),s=(o=n(15877))&&o.__esModule?o:{default:o},c=n(92019),r=n(34867);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=(0,a.css)(["cursor:",";pointer-events:",";"],(function(e){return e.disabled?"not-allowed":""}),(function(e){return e.disabled?"none":"auto"})),m=(t.Input=(0,a.default)(s.default).attrs((function(e){return u({round:.5,as:"input",background:"inputBg",backgroundOpacity:e.disabled?.4:1,width:"100%",border:e.hasValue?"text":e.error?"error":"inputBorder",_hover:{border:e.error?"errorText":"inputBorderHover"},_focus:{border:e.error?"errorText":"inputBorderFocus"},padding:"tiny"===e.size?[.5,1]:"small"===e.size?[1,2]:[2,3],height:"tiny"===e.size?6:"small"===e.size?7:9},e)})).withConfig({displayName:"styled__Input",componentId:"sc-1iygz87-0"})(["font-size:",";color:",";"," "," &::placeholder{font-size:",";color:",";opacity:",";font-weight:normal;}",";"],(function(e){var t=e.size;return"tiny"===t?"11px":"small"===t?"12px":"14px"}),(function(e){var t=e.disabled;return e.hasValue?(0,r.getColor)("text"):t?(0,r.getColor)("placeholder"):(0,r.getColor)("textLite")}),(function(e){return e.hasIconLeft&&"padding-left: 24px;"}),(function(e){var t=e.hasIconRight,n=e.hasIndicator;return(t||n)&&"padding-right: "+(t&&n?48:24)+"px;"}),(function(e){var t=e.size;return"tiny"===t?"11px":"small"===t?"12px":"14px"}),(0,r.getColor)("placeholder"),(function(e){return e.disabled?.4:1}),v),t.StyledLabel=a.default.label.withConfig({displayName:"styled__StyledLabel",componentId:"sc-1iygz87-1"})(["width:100%;display:block;",";"],v),t.LabelText=(0,a.default)(s.default).attrs((function(e){return u({as:"tiny"===e.size?c.TextMicro:c.TextSmall,strong:!0,alignItems:"center",flex:!1,width:"100%"},e)})).withConfig({displayName:"styled__LabelText",componentId:"sc-1iygz87-2"})([""]),t.StyledIcon=(0,a.default)(l.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1iygz87-3"})(["flex-grow:0;flex-shrink:0;"])),f=(t.ErrorIcon=(0,a.default)(m).withConfig({displayName:"styled__ErrorIcon",componentId:"sc-1iygz87-4"})(["fill:",";"],(0,r.getColor)("error")),t.SuccessIcon=(0,a.default)(m).withConfig({displayName:"styled__SuccessIcon",componentId:"sc-1iygz87-5"})(["fill:",";"],(0,r.getColor)("success")),t.IconContainer=(0,a.default)(s.default).withConfig({displayName:"styled__IconContainer",componentId:"sc-1iygz87-6"})([""]),t.MetaContainer=(0,a.default)(s.default).withConfig({displayName:"styled__MetaContainer",componentId:"sc-1iygz87-7"})(["flex-flow:row nowrap;"]),t.MetaInfo=a.default.span.withConfig({displayName:"styled__MetaInfo",componentId:"sc-1iygz87-8"})(["font-size:12px;line-height:16px;overflow:hidden;flex-grow:0;flex-shrink:0;color:",";"],(0,r.getColor)("placeholder")));t.FieldInfo=(0,a.default)(f).withConfig({displayName:"styled__FieldInfo",componentId:"sc-1iygz87-9"})(["color:",";flex-shrink:1;"],(0,r.getValidatedControlColor)("text"))},87773:(e,t,n)=>{"use strict";t.__esModule=!0,t.useFocusedState=void 0;var o=n(96540);t.useFocusedState=function(e){var t=e.defaultState,n=void 0!==t&&t,a=e.onBlur,l=e.onFocus,s=(0,o.useState)(n),c=s[0],r=s[1],i=(0,o.useCallback)((function(e){c||r(!0),l&&l(e)}),[l,c]),d=(0,o.useCallback)((function(e){r(!1),a&&a(e)}),[a]);return[c,i,d]}},85956:(e,t,n)=>{"use strict";t.__esModule=!0,t.useInputValue=void 0;var o=n(96540);t.useInputValue=function(e){var t=e.value,n=void 0===t?"":t,a=e.onChange,l=e.maxChars,s=(0,o.useState)(n),c=s[0],r=s[1],i=(0,o.useState)(!1),d=i[0],u=i[1],h=(0,o.useCallback)((function(e){var t=e.target.value;if(l&&t.length>l)return e.preventDefault(),void e.stopPropagation();r(t),d||u(!0),a&&a(e)}),[d,l,a]),v=l?c.length+"/"+l:"",m=(0,o.useCallback)((function(e){void 0===e&&(e=""),r(e),u(!1)}),[]);return[c,h,v,d,{setIsDirty:u,setValue:r,resetValue:m}]}},58926:(e,t,n)=>{"use strict";t.__esModule=!0,t.useTouchedState=void 0;var o=n(96540);t.useTouchedState=function(e){var t=e.onBlur,n=e.defaultState,a=void 0!==n&&n,l=(0,o.useState)(a),s=l[0],c=l[1],r=(0,o.useCallback)((function(e){s||c(!0),t&&t(e)}),[t,s]);return[s,r,c]}},94474:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(96540)),l=(o=n(44048))&&o.__esModule?o:{default:o},s=n(34247),c=n(318),r=n(37466),i=["value","onChange","onReset","placeholder"];function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(this,arguments)}var h=(0,a.forwardRef)((function(e,t){var n=e.value,o=void 0===n?"":n,d=e.onChange,h=e.onReset,v=e.placeholder,m=function(e,t){if(null==e)return{};var n,o,a={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i),f=(0,a.useState)(o),w=f[0],p=f[1];return(0,l.default)((function(){return d(w)}),300,[w]),a.default.createElement(c.TextInput,u({iconLeft:a.default.createElement(s.Icon,{name:"search",color:w?"textFocus":"textLite",width:"14px",height:"14px"}),iconRight:(!!w||!!o)&&a.default.createElement(r.IconButton,{icon:"x",iconColor:w?"textFocus":"textLite",width:"14px",height:"14px",onClick:function(){return h?h():p("")},padding:[0],neutral:!0}),inputRef:t,value:w,onChange:function(e){return p(e.target.value)},placeholder:v,size:"small"},m))}));t.default=h},53162:(e,t,n)=>{"use strict";t.__esModule=!0,t.sx=t.default=void 0;var o=_(n(8711)),a=_(n(27988)),l=_(n(32305)),s=_(n(36094)),c=_(n(62703)),r=_(n(31886)),i=_(n(25320)),d=_(n(96029)),u=_(n(88725)),h=_(n(86397)),v=_(n(11564)),m=_(n(48488)),f=_(n(26278)),w=_(n(90836)),p=_(n(85103)),g=_(n(92108)),y=_(n(48299)),b=n(50677),x=_(n(50402));function _(e){return e&&e.__esModule?e:{default:e}}var M=t.sx=function(e){return(0,x.default)(e.sx)(e)};t.default=function(e){return(0,o.default)(e).withConfig({displayName:"box",componentId:"sc-12jmtj1-0"})(["box-sizing:border-box;"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",""],w.default,a.default,i.default,l.default,s.default,p.default,v.default,h.default,f.default,r.default,g.default,c.default,m.default,d.default,u.default,y.default,b.position,M)}},8043:(e,t,n)=>{"use strict";var o;t.__esModule=!0,t.default=void 0;var a=(0,((o=n(53162))&&o.__esModule?o:{default:o}).default)("div");t.default=a},89075:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.backdropBlur;return t?"boolean"===typeof t?"backdrop-filter: blur(10px);":"number"===typeof t?"backdrop-filter: blur("+t+"px);":"backdrop-filter: blur("+t+");":""}},92019:(e,t,n)=>{"use strict";t.__esModule=!0,t.TextSmall=t.TextNano=t.TextMicro=t.TextHuge=t.TextFemto=t.TextBigger=t.TextBig=t.Text=t.ListItem=t.List=t.H6=t.H5=t.H4=t.H3=t.H2=t.H1=t.H0=void 0;var o=n(36350);t.makeH0=o.makeH0,t.makeH1=o.makeH1,t.makeH2=o.makeH2,t.makeH3=o.makeH3,t.makeH4=o.makeH4,t.makeH5=o.makeH5,t.makeH6=o.makeH6,t.makeTypography=o.makeTypography,t.makeFemto=o.makeFemto,t.makeNano=o.makeNano,t.makeMicro=o.makeMicro,t.makeSmall=o.makeSmall,t.makeText=o.makeText,t.makeBig=o.makeBig,t.makeBigger=o.makeBigger,t.makeHuge=o.makeHuge;var a=n(37079);t.List=a.List,t.ListItem=a.ListItem;t.H0=(0,o.makeH0)("h1"),t.H1=(0,o.makeH1)("h1"),t.H2=(0,o.makeH2)("h2"),t.H3=(0,o.makeH3)("h3"),t.H4=(0,o.makeH4)("h4"),t.H5=(0,o.makeH5)("h5"),t.H6=(0,o.makeH6)("h6"),t.TextFemto=(0,o.makeFemto)("span"),t.TextNano=(0,o.makeNano)("span"),t.TextMicro=(0,o.makeMicro)("span"),t.TextSmall=(0,o.makeSmall)("span"),t.Text=(0,o.makeText)("span"),t.TextBig=(0,o.makeBig)("span"),t.TextBigger=(0,o.makeBigger)("span"),t.TextHuge=(0,o.makeHuge)("span")},37079:(e,t,n)=>{"use strict";t.__esModule=!0,t.ListItem=t.List=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=r(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=a?Object.getOwnPropertyDescriptor(e,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(8711)),a=c(n(27988)),l=c(n(32305)),s=c(n(36094));function c(e){return e&&e.__esModule?e:{default:e}}function r(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(r=function(e){return e?n:t})(e)}var i=(0,o.css)([""," "," ",""],a.default,l.default,s.default);t.List=o.default.ul.withConfig({displayName:"list__List",componentId:"sc-ln4euz-0"})(["list-style-type:disc;list-style-position:outside;padding-left:28px;",""],i),t.ListItem=o.default.li.withConfig({displayName:"list__ListItem",componentId:"sc-ln4euz-1"})(["line-height:22px;padding-left:9px;",""],i)},43119:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=n(96540);t.default=function(e){return(0,o.useEffect)((function(){if(e){var t=function(t){27===t.keyCode&&e(t)};return document.addEventListener("keydown",t),function(){return document.removeEventListener("keydown",t)}}}),[e])}},35586:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o,a=n(96540),l=(o=n(2310))&&o.__esModule?o:{default:o};t.default=function(e,t,n,o){(0,a.useEffect)((function(){if(t&&!o){var a=function(o){o.target===e.current||(0,l.default)(e.current,o.target)||(0,l.default)(n,o.target)||t(o)};return document.addEventListener("mousedown",a),function(){return document.removeEventListener("mousedown",a)}}}),[t])}},23627:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var o=n(96540);t.default=function(e,t){var n=void 0===t?{}:t,a=n.on,l=n.off,s=n.toggle,c=(0,o.useState)(!!e),r=c[0],i=c[1];return[r,(0,o.useCallback)((function(e){return i((function(t){var n="boolean"===typeof e?e:!t;return s&&s(n),a&&n&&a(),l&&!n&&l(),n}))}),[s,a,l]),(0,o.useCallback)((function(){i(!0),a&&a()}),[a]),(0,o.useCallback)((function(){i(!1),l&&l()}),[l])]}},3639:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;var n=0;t.default=function(){return--n}},54481:(e,t)=>{"use strict";function n(e){return Array.isArray(e)}function o(e){var t=typeof e;return null!=e&&("object"===t||"function"===t)&&!n(e)}t.__esModule=!0,t.isArray=n,t.isEmptyObject=function(e){return o(e)&&0===Object.keys(e).length},t.isFunction=function(e){return"function"===typeof e},t.isObject=o},69114:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e,t){var n=t?e.toLowerCase():e;return n.charAt(0).toUpperCase()+n.slice(1)}},51462:(e,t,n)=>{"use strict";t.__esModule=!0;var o={mergeRefs:!0,capitalizeFirstLetter:!0};t.mergeRefs=t.capitalizeFirstLetter=void 0;var a=n(27184);t.mergeRefs=a.mergeRefs;var l=n(54481);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===l[e]||(t[e]=l[e]))}));var s,c=(s=n(69114))&&s.__esModule?s:{default:s};t.capitalizeFirstLetter=c.default},27184:(e,t,n)=>{"use strict";t.__esModule=!0,t.assignRef=a,t.mergeRefs=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){return a(t,e)}))}};var o=n(54481);function a(e,t){if(null!=e)if((0,o.isFunction)(e))e(t);else try{e.current=t}catch(n){throw new Error("Cannot assign value '"+t+"' to ref '"+e+"'")}}},56977:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(96540),a=n(8263);function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=l(o);const c="undefined"!==typeof window?s.useLayoutEffect:s.useEffect;function r(e){const t=s.useReducer((()=>({})),{})[1],n={...e,onChange:n=>{t(),null==e.onChange||e.onChange(n)}},[o]=s.useState((()=>new a.Virtualizer(n)));return o.setOptions(n),s.useEffect((()=>o._didMount()),[]),c((()=>o._willUpdate())),o}t.useVirtualizer=function(e){return r({observeElementRect:a.observeElementRect,observeElementOffset:a.observeElementOffset,scrollToFn:a.elementScroll,...e})},t.useWindowVirtualizer=function(e){return r({getScrollElement:()=>"undefined"!==typeof window?window:null,observeElementRect:a.observeWindowRect,observeElementOffset:a.observeWindowOffset,scrollToFn:a.windowScroll,...e})},Object.keys(a).forEach((function(e){"default"===e||t.hasOwnProperty(e)||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}})}))},8263:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(18386);const a=e=>e,l=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),o=[];for(let a=t;a<=n;a++)o.push(a);return o},s={element:["scrollLeft","scrollTop"],window:["scrollX","scrollY"]},c=e=>(t,n)=>{if(!t.scrollElement)return;const o=s[e][0],a=s[e][1];let l=t.scrollElement[o],c=t.scrollElement[a];const r=()=>{const e=t.scrollElement[t.options.horizontal?o:a];n(Math.max(0,e-t.options.scrollMargin))};r();const i=e=>{const n=e.currentTarget,s=n[o],i=n[a];(t.options.horizontal?l-s:c-i)&&r(),l=s,c=i};return t.scrollElement.addEventListener("scroll",i,{capture:!1,passive:!0}),()=>{t.scrollElement.removeEventListener("scroll",i)}},r=c("element"),i=c("window"),d=(e,t)=>Math.round(e.getBoundingClientRect()[t.options.horizontal?"width":"height"]);const u=(e,t,n,o)=>{for(;e<=t;){const a=(e+t)/2|0,l=n(a);if(l<o)e=a+1;else{if(!(l>o))return a;t=a-1}}return e>0?e-1:0};t.memo=o.memo,t.Virtualizer=class{constructor(e){var t=this;this.unsubs=[],this.scrollElement=null,this.isScrolling=!1,this.isScrollingTimeoutId=null,this.measurementsCache=[],this.itemMeasurementsCache={},this.pendingMeasuredCacheIndexes=[],this.scrollAdjustments=0,this.measureElementCache={},this.pendingScrollToIndexCallback=null,this.getResizeObserver=(()=>{let e=null;return()=>e||("undefined"!==typeof ResizeObserver?e=new ResizeObserver((e=>{e.forEach((e=>{this._measureElement(e.target,!1)}))})):null)})(),this.range={startIndex:0,endIndex:0},this.setOptions=e=>{Object.entries(e).forEach((t=>{let[n,o]=t;"undefined"===typeof o&&delete e[n]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:a,rangeExtractor:l,onChange:()=>{},measureElement:d,initialRect:{width:0,height:0},scrollMargin:0,scrollingDelay:150,indexAttribute:"data-index",...e}},this.notify=()=>{var e,t;null==(e=(t=this.options).onChange)||e.call(t,this)},this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((e=>e())),this.unsubs=[],this.scrollElement=null},this._didMount=()=>{const e=this.getResizeObserver();return Object.values(this.measureElementCache).forEach((t=>null==e?void 0:e.observe(t))),()=>{null==e||e.disconnect(),this.cleanup()}},this._willUpdate=()=>{var e;null==(e=this.pendingScrollToIndexCallback)||e.call(this);const t=this.options.getScrollElement();this.scrollElement!==t?(this.cleanup(),this.scrollElement=t,this._scrollToOffset(this.scrollOffset,{adjustments:void 0,behavior:void 0,sync:!0}),this.unsubs.push(this.options.observeElementRect(this,(e=>{this.scrollRect=e,this.calculateRange()}))),this.unsubs.push(this.options.observeElementOffset(this,(e=>{null!==this.isScrollingTimeoutId&&(clearTimeout(this.isScrollingTimeoutId),this.isScrollingTimeoutId=null),this.scrollOffset!==e?(this.scrollOffset=e,this.isScrolling=!0,this.scrollAdjustments=0,this.isScrollingTimeoutId=setTimeout((()=>{this.isScrollingTimeoutId=null,this.isScrolling=!1,this.notify()}),this.options.scrollingDelay)):(this.isScrolling=!1,this.scrollAdjustments=0),this.calculateRange()})))):this.isScrolling||this.calculateRange()},this.getSize=()=>this.scrollRect[this.options.horizontal?"width":"height"],this.getMeasurements=o.memo((()=>[this.options.count,this.options.paddingStart,this.options.getItemKey,this.itemMeasurementsCache]),((e,t,n,o)=>{const a=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const l=this.measurementsCache.slice(0,a);for(let s=a;s<e;s++){const e=n(s),a=o[e],c=l[s-1]?l[s-1].end:t,r="number"===typeof a?a:this.options.estimateSize(s),i=c+r;l[s]={index:s,start:c,size:r,end:i,key:e}}return this.measurementsCache=l,l}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=o.memo((()=>[this.getMeasurements(),this.getSize(),this.scrollOffset]),((e,t,n)=>{const o=function(e){let{measurements:t,outerSize:n,scrollOffset:o}=e;const a=t.length-1,l=e=>t[e].start,s=u(0,a,l,o);let c=s;for(;c<a&&t[c].end<o+n;)c++;return{startIndex:s,endIndex:c}}({measurements:e,outerSize:t,scrollOffset:n});return o.startIndex===this.range.startIndex&&o.endIndex===this.range.endIndex||(this.range=o,this.notify()),this.range}),{key:!1,debug:()=>this.options.debug}),this.getIndexes=o.memo((()=>[this.options.rangeExtractor,this.range,this.options.overscan,this.options.count]),((e,t,n,o)=>e({...t,overscan:n,count:o})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),o=this.measurementsCache[n];if(!o)return;const a=this.measureElementCache[o.key],l=this.getResizeObserver();if(!e.isConnected)return void(a&&(null==l||l.unobserve(a),delete this.measureElementCache[o.key]));a&&a===e||(a&&(null==l||l.unobserve(a)),this.measureElementCache[o.key]=e,null==l||l.observe(e));const s=this.options.measureElement(e,this),c=s-(this.itemMeasurementsCache[o.key]??o.size);0!==c&&(o.start<this.scrollOffset&&this.isScrolling&&this._scrollToOffset(this.scrollOffset,{adjustments:this.scrollAdjustments+=c,behavior:void 0,sync:!1}),this.pendingMeasuredCacheIndexes.push(n),this.itemMeasurementsCache={...this.itemMeasurementsCache,[o.key]:s},this.notify())},this.measureElement=e=>{e&&this._measureElement(e,!0)},this.getVirtualItems=o.memo((()=>[this.getIndexes(),this.getMeasurements()]),((e,t)=>{const n=[];for(let o=0,a=e.length;o<a;o++){const a=t[e[o]];n.push(a)}return n}),{key:!1,debug:()=>this.options.debug}),this.scrollToOffset=function(e,n){let{align:o="start",behavior:a}=void 0===n?{}:n;const l=t.scrollOffset,s=t.getSize();"auto"===o&&(o=e<=l?"start":e>=l+s?"end":"start");const c={adjustments:void 0,behavior:a,sync:!1};"start"===o?t._scrollToOffset(e,c):"end"===o?t._scrollToOffset(e-s,c):"center"===o&&t._scrollToOffset(e-s/2,c)},this.scrollToIndex=function(e,n){let{align:o="auto",...a}=void 0===n?{}:n;t.pendingScrollToIndexCallback=null;const l=t.getMeasurements(),s=t.scrollOffset,c=t.getSize(),{count:r}=t.options,i=l[Math.max(0,Math.min(e,r-1))];if(!i)return;if("auto"===o)if(i.end>=s+c-t.options.scrollPaddingEnd)o="end";else{if(!(i.start<=s+t.options.scrollPaddingStart))return;o="start"}const d="end"===o?i.end+t.options.scrollPaddingEnd:i.start-t.options.scrollPaddingStart;t.scrollToOffset(d,{align:o,...a});if(Object.keys(t.measureElementCache).length>0){const n=()=>"number"===typeof t.itemMeasurementsCache[t.options.getItemKey(e)];n()||(t.pendingScrollToIndexCallback=()=>{n()&&(t.pendingScrollToIndexCallback=null,t.scrollToIndex(e,{align:o,...a}))})}},this.getTotalSize=()=>{var e;return((null==(e=this.getMeasurements()[this.options.count-1])?void 0:e.end)||this.options.paddingStart)+this.options.paddingEnd},this._scrollToOffset=(e,t)=>{let{adjustments:n,behavior:o,sync:a}=t;this.options.scrollToFn(e,{behavior:o,sync:a,adjustments:n},this)},this.measure=()=>{this.itemMeasurementsCache={},this.notify()},this.setOptions(e),this.scrollRect=this.options.initialRect,this.scrollOffset=this.options.initialOffset,this.calculateRange()}},t.defaultKeyExtractor=a,t.defaultRangeExtractor=l,t.elementScroll=(e,t,n)=>{var o;let{adjustments:a,behavior:l,sync:s}=t;const c=(s?e:e+n.options.scrollMargin)+(a??0);null==(o=n.scrollElement)||null==o.scrollTo||o.scrollTo({[n.options.horizontal?"left":"top"]:c,behavior:l})},t.measureElement=d,t.observeElementOffset=r,t.observeElementRect=(e,t)=>{const n=new ResizeObserver((e=>{var n,o;t({width:null==(n=e[0])?void 0:n.contentRect.width,height:null==(o=e[0])?void 0:o.contentRect.height})}));if(e.scrollElement)return t(e.scrollElement.getBoundingClientRect()),n.observe(e.scrollElement),()=>{n.unobserve(e.scrollElement)}},t.observeWindowOffset=i,t.observeWindowRect=(e,t)=>{const n=((e,t)=>{let n={height:-1,width:-1};return o=>{(e.options.horizontal?o.width!==n.width:o.height!==n.height)&&t(o),n=o}})(e,t),o=()=>n({width:e.scrollElement.innerWidth,height:e.scrollElement.innerHeight});if(e.scrollElement)return o(),e.scrollElement.addEventListener("resize",o,{capture:!1,passive:!0}),()=>{e.scrollElement.removeEventListener("resize",o)}},t.windowScroll=(e,t,n)=>{var o;let{adjustments:a,behavior:l,sync:s}=t;const c=(s?e:e+n.options.scrollMargin)+(a??0);null==(o=n.scrollElement)||null==o.scrollTo||o.scrollTo({[n.options.horizontal?"left":"top"]:c,behavior:l})}},18386:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.memo=function(e,t,n){let o,a=[];return()=>{let l;n.key&&null!=n.debug&&n.debug()&&(l=Date.now());const s=e();if(!(s.length!==a.length||s.some(((e,t)=>a[t]!==e))))return o;let c;if(a=s,n.key&&null!=n.debug&&n.debug()&&(c=Date.now()),o=t(...s),null==n||null==n.onChange||n.onChange(o),n.key&&null!=n.debug&&n.debug()){const e=Math.round(100*(Date.now()-l))/100,t=Math.round(100*(Date.now()-c))/100,o=t/16,a=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${a(t,5)} /${a(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*o,120))}deg 100% 31%);`,null==n?void 0:n.key)}return o}}},3839:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>K});var o=n(47168),a=n.n(o),l=n(12020);const s=e=>e&&e.enabled&&e.modifierKey,c=(e,t)=>e&&t[e+"Key"],r=(e,t)=>e&&!t[e+"Key"];function i(e,t,n){return void 0===e||("string"===typeof e?-1!==e.indexOf(t):"function"===typeof e&&-1!==e({chart:n}).indexOf(t))}function d(e,t){return"function"===typeof e&&(e=e({chart:t})),"string"===typeof e?{x:-1!==e.indexOf("x"),y:-1!==e.indexOf("y")}:{x:!1,y:!1}}function u(e,t,n){const{mode:o="xy",scaleMode:a,overScaleMode:s}=e||{},c=function({x:e,y:t},n){const o=n.scales,a=Object.keys(o);for(let l=0;l<a.length;l++){const n=o[a[l]];if(t>=n.top&&t<=n.bottom&&e>=n.left&&e<=n.right)return n}return null}(t,n),r=d(o,n),i=d(a,n);if(s){const e=d(s,n);for(const t of["x","y"])e[t]&&(i[t]=r[t],r[t]=!1)}if(c&&i[c.axis])return[c];const u=[];return(0,l.F)(n.scales,(function(e){r[e.axis]&&u.push(e)})),u}const h=new WeakMap;function v(e){let t=h.get(e);return t||(t={originalScaleLimits:{},updatedScaleLimits:{},handlers:{},panDelta:{}},h.set(e,t)),t}function m(e,t,n){const o=e.max-e.min,a=o*(t-1),l=e.isHorizontal()?n.x:n.y,s=Math.max(0,Math.min(1,(e.getValueForPixel(l)-e.min)/o||0));return{min:a*s,max:a*(1-s)}}function f(e,t,n,o,a){let s=n[o];if("original"===s){const n=e.originalScaleLimits[t.id][o];s=(0,l.v)(n.options,n.scale)}return(0,l.v)(s,a)}function w(e,{min:t,max:n},o,a=!1){const l=v(e.chart),{id:s,axis:c,options:r}=e,i=o&&(o[s]||o[c])||{},{minRange:d=0}=i,u=f(l,e,i,"min",-1/0),h=f(l,e,i,"max",1/0),m=a?Math.max(n-t,d):e.max-e.min,w=(m-n+t)/2;return n+=w,(t-=w)<u?(t=u,n=Math.min(u+m,h)):n>h&&(n=h,t=Math.max(h-m,u)),r.min=t,r.max=n,l.updatedScaleLimits[e.id]={min:t,max:n},e.parse(t)!==e.min||e.parse(n)!==e.max}const p=e=>0===e||isNaN(e)?0:e<0?Math.min(Math.round(e),-1):Math.max(Math.round(e),1);const g={second:500,minute:3e4,hour:18e5,day:432e5,week:3024e5,month:1296e6,quarter:5184e6,year:157248e5};function y(e,t,n,o=!1){const{min:a,max:l,options:s}=e,c=s.time&&s.time.round,r=g[c]||0,i=e.getValueForPixel(e.getPixelForValue(a+r)-t),d=e.getValueForPixel(e.getPixelForValue(l+r)-t),{min:u=-1/0,max:h=1/0}=o&&n&&n[e.axis]||{};return!!(isNaN(i)||isNaN(d)||i<u||d>h)||w(e,{min:i,max:d},n,o)}function b(e,t,n){return y(e,t,n,!0)}const x={category:function(e,t,n,o){const a=m(e,t,n);return e.min===e.max&&t<1&&function(e){const t=e.getLabels().length-1;e.min>0&&(e.min-=1),e.max<t&&(e.max+=1)}(e),w(e,{min:e.min+p(a.min),max:e.max-p(a.max)},o,!0)},default:function(e,t,n,o){const a=m(e,t,n);return w(e,{min:e.min+a.min,max:e.max-a.max},o,!0)}},_={default:function(e,t,n,o){w(e,function(e,t,n){const o=e.getValueForPixel(t),a=e.getValueForPixel(n);return{min:Math.min(o,a),max:Math.max(o,a)}}(e,t,n),o,!0)}},M={category:function(e,t,n){const o=e.getLabels().length-1;let{min:a,max:l}=e;const s=Math.max(l-a,1),c=Math.round(function(e){return e.isHorizontal()?e.width:e.height}(e)/Math.max(s,10)),r=Math.round(Math.abs(t/c));let i;return t<-c?(l=Math.min(l+r,o),a=1===s?l:l-s,i=l===o):t>c&&(a=Math.max(0,a-r),l=1===s?a:a+s,i=0===a),w(e,{min:a,max:l},n)||i},default:y,logarithmic:b,timeseries:b};function z(e,t){(0,l.F)(e,((n,o)=>{t[o]||delete e[o]}))}function B(e,t){const{scales:n}=e,{originalScaleLimits:o,updatedScaleLimits:a}=t;return(0,l.F)(n,(function(e){(function(e,t,n){const{id:o,options:{min:a,max:l}}=e;if(!t[o]||!n[o])return!0;const s=n[o];return s.min!==a||s.max!==l})(e,o,a)&&(o[e.id]={min:{scale:e.min,options:e.options.min},max:{scale:e.max,options:e.options.max}})})),z(o,n),z(a,n),o}function H(e,t,n,o){const a=x[e.type]||x.default;(0,l.Q)(a,[e,t,n,o])}function C(e,t,n,o,a){const s=_[e.type]||_.default;(0,l.Q)(s,[e,t,n,o,a])}function V(e){const t=e.chartArea;return{x:(t.left+t.right)/2,y:(t.top+t.bottom)/2}}function O(e,t,n="none"){const{x:o=1,y:a=1,focalPoint:s=V(e)}="number"===typeof t?{x:t,y:t}:t,c=v(e),{options:{limits:r,zoom:i}}=c;B(e,c);const d=1!==o,h=1!==a,m=u(i,s,e);(0,l.F)(m||e.scales,(function(e){e.isHorizontal()&&d?H(e,o,s,r):!e.isHorizontal()&&h&&H(e,a,s,r)})),e.update(n),(0,l.Q)(i.onZoom,[{chart:e}])}function k(e,t,n,o="none"){const a=v(e),{options:{limits:s,zoom:c}}=a,{mode:r="xy"}=c;B(e,a);const d=i(r,"x",e),u=i(r,"y",e);(0,l.F)(e.scales,(function(e){e.isHorizontal()&&d?C(e,t.x,n.x,s):!e.isHorizontal()&&u&&C(e,t.y,n.y,s)})),e.update(o),(0,l.Q)(c.onZoom,[{chart:e}])}function L(e){const t=v(e);let n=1,o=1;return(0,l.F)(e.scales,(function(e){const a=function(e,t){const n=e.originalScaleLimits[t];if(!n)return;const{min:o,max:a}=n;return(0,l.v)(a.options,a.scale)-(0,l.v)(o.options,o.scale)}(t,e.id);if(a){const t=Math.round(a/(e.max-e.min)*100)/100;n=Math.min(n,t),o=Math.max(o,t)}})),n<1?n:o}function S(e,t,n,o){const{panDelta:a}=o,s=a[e.id]||0;(0,l.s)(s)===(0,l.s)(t)&&(t+=s);const c=M[e.type]||M.default;(0,l.Q)(c,[e,t,n])?a[e.id]=0:a[e.id]=t}function A(e,t,n,o="none"){const{x:a=0,y:s=0}="number"===typeof t?{x:t,y:t}:t,c=v(e),{options:{pan:r,limits:i}}=c,{onPan:d}=r||{};B(e,c);const u=0!==a,h=0!==s;(0,l.F)(n||e.scales,(function(e){e.isHorizontal()&&u?S(e,a,i,c):!e.isHorizontal()&&h&&S(e,s,i,c)})),e.update(o),(0,l.Q)(d,[{chart:e}])}function E(e){const t=v(e);B(e,t);const n={};for(const o of Object.keys(e.scales)){const{min:e,max:a}=t.originalScaleLimits[o]||{min:{},max:{}};n[o]={min:e.scale,max:a.scale}}return n}function P(e,t){const{handlers:n}=v(e),o=n[t];o&&o.target&&(o.target.removeEventListener(t,o),delete n[t])}function j(e,t,n,o){const{handlers:a,options:l}=v(e),s=a[n];s&&s.target===t||(P(e,n),a[n]=t=>o(e,t,l),a[n].target=t,t.addEventListener(n,a[n]))}function T(e,t){const n=v(e);n.dragStart&&(n.dragging=!0,n.dragEnd=t,e.update("none"))}function D(e,t){const n=v(e);n.dragStart&&"Escape"===t.key&&(P(e,"keydown"),n.dragging=!1,n.dragStart=n.dragEnd=null,e.update("none"))}function I(e,t,n){const{onZoomStart:o,onZoomRejected:a}=n;if(o){const n=(0,l.z)(t,e);if(!1===(0,l.Q)(o,[{chart:e,event:t,point:n}]))return(0,l.Q)(a,[{chart:e,event:t}]),!1}}function F(e,t){const n=v(e),{pan:o,zoom:a={}}=n.options;if(0!==t.button||c(s(o),t)||r(s(a.drag),t))return(0,l.Q)(a.onZoomRejected,[{chart:e,event:t}]);!1!==I(e,t,a)&&(n.dragStart=t,j(e,e.canvas,"mousemove",T),j(e,window.document,"keydown",D))}function R(e,t,n,o){const a=i(t,"x",e),s=i(t,"y",e);let{top:c,left:r,right:d,bottom:u,width:h,height:v}=e.chartArea;const m=(0,l.z)(n,e),f=(0,l.z)(o,e);a&&(r=Math.min(m.x,f.x),d=Math.max(m.x,f.x)),s&&(c=Math.min(m.y,f.y),u=Math.max(m.y,f.y));const w=d-r,p=u-c;return{left:r,top:c,right:d,bottom:u,width:w,height:p,zoomX:a&&w?1+(h-w)/h:1,zoomY:s&&p?1+(v-p)/v:1}}function N(e,t){const n=v(e);if(!n.dragStart)return;P(e,"mousemove");const{mode:o,onZoomComplete:a,drag:{threshold:s=0}}=n.options.zoom,c=R(e,o,n.dragStart,t),r=i(o,"x",e)?c.width:0,d=i(o,"y",e)?c.height:0,u=Math.sqrt(r*r+d*d);if(n.dragStart=n.dragEnd=null,u<=s)return n.dragging=!1,void e.update("none");k(e,{x:c.left,y:c.top},{x:c.right,y:c.bottom},"zoom"),setTimeout((()=>n.dragging=!1),500),(0,l.Q)(a,[{chart:e}])}function W(e,t){const{handlers:{onZoomComplete:n},options:{zoom:o}}=v(e);if(!function(e,t,n){if(r(s(n.wheel),t))(0,l.Q)(n.onZoomRejected,[{chart:e,event:t}]);else if(!1!==I(e,t,n)&&(t.cancelable&&t.preventDefault(),void 0!==t.deltaY))return!0}(e,t,o))return;const a=t.target.getBoundingClientRect(),c=1+(t.deltaY>=0?-o.wheel.speed:o.wheel.speed);O(e,{x:c,y:c,focalPoint:{x:t.clientX-a.left,y:t.clientY-a.top}}),n&&n()}function q(e,t,n,o){n&&(v(e).handlers[t]=function(e,t){let n;return function(){return clearTimeout(n),n=setTimeout(e,t),t}}((()=>(0,l.Q)(n,[{chart:e}])),o))}function U(e,t){return function(n,o){const{pan:a,zoom:i={}}=t.options;if(!a||!a.enabled)return!1;const d=o&&o.srcEvent;return!d||(!(!t.panning&&"mouse"===o.pointerType&&(r(s(a),d)||c(s(i.drag),d)))||((0,l.Q)(a.onPanRejected,[{chart:e,event:o}]),!1))}}function Y(e,t,n){if(t.scale){const{center:o,pointers:a}=n,l=1/t.scale*n.scale,s=n.target.getBoundingClientRect(),c=function(e,t){const n=Math.abs(e.clientX-t.clientX),o=Math.abs(e.clientY-t.clientY),a=n/o;let l,s;return a>.3&&a<1.7?l=s=!0:n>o?l=!0:s=!0,{x:l,y:s}}(a[0],a[1]),r=t.options.zoom.mode;O(e,{x:c.x&&i(r,"x",e)?l:1,y:c.y&&i(r,"y",e)?l:1,focalPoint:{x:o.x-s.left,y:o.y-s.top}}),t.scale=n.scale}}function Q(e,t,n){const o=t.delta;o&&(t.panning=!0,A(e,{x:n.deltaX-o.x,y:n.deltaY-o.y},t.panScales),t.delta={x:n.deltaX,y:n.deltaY})}const X=new WeakMap;function Z(e,t){const n=v(e),o=e.canvas,{pan:s,zoom:c}=t,r=new(a().Manager)(o);c&&c.pinch.enabled&&(r.add(new(a().Pinch)),r.on("pinchstart",(()=>function(e,t){t.options.zoom.pinch.enabled&&(t.scale=1)}(0,n))),r.on("pinch",(t=>Y(e,n,t))),r.on("pinchend",(t=>function(e,t,n){t.scale&&(Y(e,t,n),t.scale=null,(0,l.Q)(t.options.zoom.onZoomComplete,[{chart:e}]))}(e,n,t)))),s&&s.enabled&&(r.add(new(a().Pan)({threshold:s.threshold,enable:U(e,n)})),r.on("panstart",(t=>function(e,t,n){const{enabled:o,onPanStart:a,onPanRejected:s}=t.options.pan;if(!o)return;const c=n.target.getBoundingClientRect(),r={x:n.center.x-c.left,y:n.center.y-c.top};if(!1===(0,l.Q)(a,[{chart:e,event:n,point:r}]))return(0,l.Q)(s,[{chart:e,event:n}]);t.panScales=u(t.options.pan,r,e),t.delta={x:0,y:0},clearTimeout(t.panEndTimeout),Q(e,t,n)}(e,n,t))),r.on("panmove",(t=>Q(e,n,t))),r.on("panend",(()=>function(e,t){t.delta=null,t.panning&&(t.panEndTimeout=setTimeout((()=>t.panning=!1),500),(0,l.Q)(t.options.pan.onPanComplete,[{chart:e}]))}(e,n)))),X.set(e,r)}function G(e,t,n){const o=n.zoom.drag,{dragStart:a,dragEnd:l}=v(e);if(o.drawTime!==t||!l)return;const{left:s,top:c,width:r,height:i}=R(e,n.zoom.mode,a,l),d=e.ctx;d.save(),d.beginPath(),d.fillStyle=o.backgroundColor||"rgba(225,225,225,0.3)",d.fillRect(s,c,r,i),o.borderWidth>0&&(d.lineWidth=o.borderWidth,d.strokeStyle=o.borderColor||"rgba(225,225,225)",d.strokeRect(s,c,r,i)),d.restore()}var K={id:"zoom",version:"2.0.1",defaults:{pan:{enabled:!1,mode:"xy",threshold:10,modifierKey:null},zoom:{wheel:{enabled:!1,speed:.1,modifierKey:null},drag:{enabled:!1,drawTime:"beforeDatasetsDraw",modifierKey:null},pinch:{enabled:!1},mode:"xy"}},start:function(e,t,n){v(e).options=n,Object.prototype.hasOwnProperty.call(n.zoom,"enabled")&&console.warn("The option `zoom.enabled` is no longer supported. Please use `zoom.wheel.enabled`, `zoom.drag.enabled`, or `zoom.pinch.enabled`."),(Object.prototype.hasOwnProperty.call(n.zoom,"overScaleMode")||Object.prototype.hasOwnProperty.call(n.pan,"overScaleMode"))&&console.warn("The option `overScaleMode` is deprecated. Please use `scaleMode` instead (and update `mode` as desired)."),a()&&Z(e,n),e.pan=(t,n,o)=>A(e,t,n,o),e.zoom=(t,n)=>O(e,t,n),e.zoomRect=(t,n,o)=>k(e,t,n,o),e.zoomScale=(t,n,o)=>function(e,t,n,o="none"){B(e,v(e)),w(e.scales[t],n,void 0,!0),e.update(o)}(e,t,n,o),e.resetZoom=t=>function(e,t="default"){const n=v(e),o=B(e,n);(0,l.F)(e.scales,(function(e){const t=e.options;o[e.id]?(t.min=o[e.id].min.options,t.max=o[e.id].max.options):(delete t.min,delete t.max)})),e.update(t),(0,l.Q)(n.options.zoom.onZoomComplete,[{chart:e}])}(e,t),e.getZoomLevel=()=>L(e),e.getInitialScaleBounds=()=>E(e),e.isZoomedOrPanned=()=>function(e){const t=E(e);for(const n of Object.keys(e.scales)){const{min:o,max:a}=t[n];if(void 0!==o&&e.scales[n].min!==o)return!0;if(void 0!==a&&e.scales[n].max!==a)return!0}return!1}(e)},beforeEvent(e){const t=v(e);if(t.panning||t.dragging)return!1},beforeUpdate:function(e,t,n){v(e).options=n,function(e,t){const n=e.canvas,{wheel:o,drag:a,onZoomComplete:l}=t.zoom;o.enabled?(j(e,n,"wheel",W),q(e,"onZoomComplete",l,250)):P(e,"wheel"),a.enabled?(j(e,n,"mousedown",F),j(e,n.ownerDocument,"mouseup",N)):(P(e,"mousedown"),P(e,"mousemove"),P(e,"mouseup"),P(e,"keydown"))}(e,n)},beforeDatasetsDraw(e,t,n){G(e,"beforeDatasetsDraw",n)},afterDatasetsDraw(e,t,n){G(e,"afterDatasetsDraw",n)},beforeDraw(e,t,n){G(e,"beforeDraw",n)},afterDraw(e,t,n){G(e,"afterDraw",n)},stop:function(e){!function(e){P(e,"mousedown"),P(e,"mousemove"),P(e,"mouseup"),P(e,"wheel"),P(e,"click"),P(e,"keydown")}(e),a()&&function(e){const t=X.get(e);t&&(t.remove("pinchstart"),t.remove("pinch"),t.remove("pinchend"),t.remove("panstart"),t.remove("pan"),t.remove("panend"),t.destroy(),X.delete(e))}(e),function(e){h.delete(e)}(e)},panFunctions:M,zoomFunctions:x,zoomRectFunctions:_}},47168:(e,t,n)=>{var o;!function(a,l,s,c){"use strict";var r,i=["","webkit","Moz","MS","ms","o"],d=l.createElement("div"),u="function",h=Math.round,v=Math.abs,m=Date.now;function f(e,t,n){return setTimeout(_(e,n),t)}function w(e,t,n){return!!Array.isArray(e)&&(p(e,n[t],n),!0)}function p(e,t,n){var o;if(e)if(e.forEach)e.forEach(t,n);else if(e.length!==c)for(o=0;o<e.length;)t.call(n,e[o],o,e),o++;else for(o in e)e.hasOwnProperty(o)&&t.call(n,e[o],o,e)}function g(e,t,n){var o="DEPRECATED METHOD: "+t+"\n"+n+" AT \n";return function(){var t=new Error("get-stack-trace"),n=t&&t.stack?t.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",l=a.console&&(a.console.warn||a.console.log);return l&&l.call(a.console,o,n),e.apply(this,arguments)}}r="function"!==typeof Object.assign?function(e){if(e===c||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var o=arguments[n];if(o!==c&&null!==o)for(var a in o)o.hasOwnProperty(a)&&(t[a]=o[a])}return t}:Object.assign;var y=g((function(e,t,n){for(var o=Object.keys(t),a=0;a<o.length;)(!n||n&&e[o[a]]===c)&&(e[o[a]]=t[o[a]]),a++;return e}),"extend","Use `assign`."),b=g((function(e,t){return y(e,t,!0)}),"merge","Use `assign`.");function x(e,t,n){var o,a=t.prototype;(o=e.prototype=Object.create(a)).constructor=e,o._super=a,n&&r(o,n)}function _(e,t){return function(){return e.apply(t,arguments)}}function M(e,t){return typeof e==u?e.apply(t&&t[0]||c,t):e}function z(e,t){return e===c?t:e}function B(e,t,n){p(O(t),(function(t){e.addEventListener(t,n,!1)}))}function H(e,t,n){p(O(t),(function(t){e.removeEventListener(t,n,!1)}))}function C(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function V(e,t){return e.indexOf(t)>-1}function O(e){return e.trim().split(/\s+/g)}function k(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var o=0;o<e.length;){if(n&&e[o][n]==t||!n&&e[o]===t)return o;o++}return-1}function L(e){return Array.prototype.slice.call(e,0)}function S(e,t,n){for(var o=[],a=[],l=0;l<e.length;){var s=t?e[l][t]:e[l];k(a,s)<0&&o.push(e[l]),a[l]=s,l++}return n&&(o=t?o.sort((function(e,n){return e[t]>n[t]})):o.sort()),o}function A(e,t){for(var n,o,a=t[0].toUpperCase()+t.slice(1),l=0;l<i.length;){if((o=(n=i[l])?n+a:t)in e)return o;l++}return c}var E=1;function P(e){var t=e.ownerDocument||e;return t.defaultView||t.parentWindow||a}var j="ontouchstart"in a,T=A(a,"PointerEvent")!==c,D=j&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),I="touch",F="mouse",R=25,N=1,W=4,q=8,U=1,Y=2,Q=4,X=8,Z=16,G=Y|Q,K=X|Z,$=G|K,J=["x","y"],ee=["clientX","clientY"];function te(e,t){var n=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){M(e.options.enable,[e])&&n.handler(t)},this.init()}function ne(e,t,n){var o=n.pointers.length,a=n.changedPointers.length,l=t&N&&o-a===0,s=t&(W|q)&&o-a===0;n.isFirst=!!l,n.isFinal=!!s,l&&(e.session={}),n.eventType=t,function(e,t){var n=e.session,o=t.pointers,a=o.length;n.firstInput||(n.firstInput=oe(t));a>1&&!n.firstMultiple?n.firstMultiple=oe(t):1===a&&(n.firstMultiple=!1);var l=n.firstInput,s=n.firstMultiple,r=s?s.center:l.center,i=t.center=ae(o);t.timeStamp=m(),t.deltaTime=t.timeStamp-l.timeStamp,t.angle=re(r,i),t.distance=ce(r,i),function(e,t){var n=t.center,o=e.offsetDelta||{},a=e.prevDelta||{},l=e.prevInput||{};t.eventType!==N&&l.eventType!==W||(a=e.prevDelta={x:l.deltaX||0,y:l.deltaY||0},o=e.offsetDelta={x:n.x,y:n.y});t.deltaX=a.x+(n.x-o.x),t.deltaY=a.y+(n.y-o.y)}(n,t),t.offsetDirection=se(t.deltaX,t.deltaY);var d=le(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=v(d.x)>v(d.y)?d.x:d.y,t.scale=s?(u=s.pointers,h=o,ce(h[0],h[1],ee)/ce(u[0],u[1],ee)):1,t.rotation=s?function(e,t){return re(t[1],t[0],ee)+re(e[1],e[0],ee)}(s.pointers,o):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,o,a,l,s=e.lastInterval||t,r=t.timeStamp-s.timeStamp;if(t.eventType!=q&&(r>R||s.velocity===c)){var i=t.deltaX-s.deltaX,d=t.deltaY-s.deltaY,u=le(r,i,d);o=u.x,a=u.y,n=v(u.x)>v(u.y)?u.x:u.y,l=se(i,d),e.lastInterval=t}else n=s.velocity,o=s.velocityX,a=s.velocityY,l=s.direction;t.velocity=n,t.velocityX=o,t.velocityY=a,t.direction=l}(n,t);var u,h;var f=e.element;C(t.srcEvent.target,f)&&(f=t.srcEvent.target);t.target=f}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function oe(e){for(var t=[],n=0;n<e.pointers.length;)t[n]={clientX:h(e.pointers[n].clientX),clientY:h(e.pointers[n].clientY)},n++;return{timeStamp:m(),pointers:t,center:ae(t),deltaX:e.deltaX,deltaY:e.deltaY}}function ae(e){var t=e.length;if(1===t)return{x:h(e[0].clientX),y:h(e[0].clientY)};for(var n=0,o=0,a=0;a<t;)n+=e[a].clientX,o+=e[a].clientY,a++;return{x:h(n/t),y:h(o/t)}}function le(e,t,n){return{x:t/e||0,y:n/e||0}}function se(e,t){return e===t?U:v(e)>=v(t)?e<0?Y:Q:t<0?X:Z}function ce(e,t,n){n||(n=J);var o=t[n[0]]-e[n[0]],a=t[n[1]]-e[n[1]];return Math.sqrt(o*o+a*a)}function re(e,t,n){n||(n=J);var o=t[n[0]]-e[n[0]],a=t[n[1]]-e[n[1]];return 180*Math.atan2(a,o)/Math.PI}te.prototype={handler:function(){},init:function(){this.evEl&&B(this.element,this.evEl,this.domHandler),this.evTarget&&B(this.target,this.evTarget,this.domHandler),this.evWin&&B(P(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&H(this.element,this.evEl,this.domHandler),this.evTarget&&H(this.target,this.evTarget,this.domHandler),this.evWin&&H(P(this.element),this.evWin,this.domHandler)}};var ie={mousedown:N,mousemove:2,mouseup:W},de="mousedown",ue="mousemove mouseup";function he(){this.evEl=de,this.evWin=ue,this.pressed=!1,te.apply(this,arguments)}x(he,te,{handler:function(e){var t=ie[e.type];t&N&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=W),this.pressed&&(t&W&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:F,srcEvent:e}))}});var ve={pointerdown:N,pointermove:2,pointerup:W,pointercancel:q,pointerout:q},me={2:I,3:"pen",4:F,5:"kinect"},fe="pointerdown",we="pointermove pointerup pointercancel";function pe(){this.evEl=fe,this.evWin=we,te.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}a.MSPointerEvent&&!a.PointerEvent&&(fe="MSPointerDown",we="MSPointerMove MSPointerUp MSPointerCancel"),x(pe,te,{handler:function(e){var t=this.store,n=!1,o=e.type.toLowerCase().replace("ms",""),a=ve[o],l=me[e.pointerType]||e.pointerType,s=l==I,c=k(t,e.pointerId,"pointerId");a&N&&(0===e.button||s)?c<0&&(t.push(e),c=t.length-1):a&(W|q)&&(n=!0),c<0||(t[c]=e,this.callback(this.manager,a,{pointers:t,changedPointers:[e],pointerType:l,srcEvent:e}),n&&t.splice(c,1))}});var ge={touchstart:N,touchmove:2,touchend:W,touchcancel:q};function ye(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,te.apply(this,arguments)}function be(e,t){var n=L(e.touches),o=L(e.changedTouches);return t&(W|q)&&(n=S(n.concat(o),"identifier",!0)),[n,o]}x(ye,te,{handler:function(e){var t=ge[e.type];if(t===N&&(this.started=!0),this.started){var n=be.call(this,e,t);t&(W|q)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:I,srcEvent:e})}}});var xe={touchstart:N,touchmove:2,touchend:W,touchcancel:q},_e="touchstart touchmove touchend touchcancel";function Me(){this.evTarget=_e,this.targetIds={},te.apply(this,arguments)}function ze(e,t){var n=L(e.touches),o=this.targetIds;if(t&(2|N)&&1===n.length)return o[n[0].identifier]=!0,[n,n];var a,l,s=L(e.changedTouches),c=[],r=this.target;if(l=n.filter((function(e){return C(e.target,r)})),t===N)for(a=0;a<l.length;)o[l[a].identifier]=!0,a++;for(a=0;a<s.length;)o[s[a].identifier]&&c.push(s[a]),t&(W|q)&&delete o[s[a].identifier],a++;return c.length?[S(l.concat(c),"identifier",!0),c]:void 0}x(Me,te,{handler:function(e){var t=xe[e.type],n=ze.call(this,e,t);n&&this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:I,srcEvent:e})}});var Be=2500;function He(){te.apply(this,arguments);var e=_(this.handler,this);this.touch=new Me(this.manager,e),this.mouse=new he(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function Ce(e,t){e&N?(this.primaryTouch=t.changedPointers[0].identifier,Ve.call(this,t)):e&(W|q)&&Ve.call(this,t)}function Ve(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var n={x:t.clientX,y:t.clientY};this.lastTouches.push(n);var o=this.lastTouches;setTimeout((function(){var e=o.indexOf(n);e>-1&&o.splice(e,1)}),Be)}}function Oe(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,o=0;o<this.lastTouches.length;o++){var a=this.lastTouches[o],l=Math.abs(t-a.x),s=Math.abs(n-a.y);if(l<=25&&s<=25)return!0}return!1}x(He,te,{handler:function(e,t,n){var o=n.pointerType==I,a=n.pointerType==F;if(!(a&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if(o)Ce.call(this,t,n);else if(a&&Oe.call(this,n))return;this.callback(e,t,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ke=A(d.style,"touchAction"),Le=ke!==c,Se="compute",Ae="auto",Ee="manipulation",Pe="none",je="pan-x",Te="pan-y",De=function(){if(!Le)return!1;var e={},t=a.CSS&&a.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){e[n]=!t||a.CSS.supports("touch-action",n)})),e}();function Ie(e,t){this.manager=e,this.set(t)}Ie.prototype={set:function(e){e==Se&&(e=this.compute()),Le&&this.manager.element.style&&De[e]&&(this.manager.element.style[ke]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return p(this.manager.recognizers,(function(t){M(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(V(e,Pe))return Pe;var t=V(e,je),n=V(e,Te);if(t&&n)return Pe;if(t||n)return t?je:Te;if(V(e,Ee))return Ee;return Ae}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,n=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var o=this.actions,a=V(o,Pe)&&!De[Pe],l=V(o,Te)&&!De[Te],s=V(o,je)&&!De[je];if(a){var c=1===e.pointers.length,r=e.distance<2,i=e.deltaTime<250;if(c&&r&&i)return}if(!s||!l)return a||l&&n&G||s&&n&K?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Fe=1,Re=32;function Ne(e){this.options=r({},this.defaults,e||{}),this.id=E++,this.manager=null,this.options.enable=z(this.options.enable,!0),this.state=Fe,this.simultaneous={},this.requireFail=[]}function We(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function qe(e){return e==Z?"down":e==X?"up":e==Y?"left":e==Q?"right":""}function Ue(e,t){var n=t.manager;return n?n.get(e):e}function Ye(){Ne.apply(this,arguments)}function Qe(){Ye.apply(this,arguments),this.pX=null,this.pY=null}function Xe(){Ye.apply(this,arguments)}function Ze(){Ne.apply(this,arguments),this._timer=null,this._input=null}function Ge(){Ye.apply(this,arguments)}function Ke(){Ye.apply(this,arguments)}function $e(){Ne.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Je(e,t){return(t=t||{}).recognizers=z(t.recognizers,Je.defaults.preset),new et(e,t)}Ne.prototype={defaults:{},set:function(e){return r(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(w(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ue(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return w(e,"dropRecognizeWith",this)||(e=Ue(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(w(e,"requireFailure",this))return this;var t=this.requireFail;return-1===k(t,e=Ue(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(w(e,"dropRequireFailure",this))return this;e=Ue(e,this);var t=k(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,n=this.state;function o(n){t.manager.emit(n,e)}n<8&&o(t.options.event+We(n)),o(t.options.event),e.additionalEvent&&o(e.additionalEvent),n>=8&&o(t.options.event+We(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=Re},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(this.requireFail[e].state&(Re|Fe)))return!1;e++}return!0},recognize:function(e){var t=r({},e);if(!M(this.options.enable,[this,t]))return this.reset(),void(this.state=Re);56&this.state&&(this.state=Fe),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},x(Ye,Ne,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,n=e.eventType,o=6&t,a=this.attrTest(e);return o&&(n&q||!a)?16|t:o||a?n&W?8|t:2&t?4|t:2:Re}}),x(Qe,Ye,{defaults:{event:"pan",threshold:10,pointers:1,direction:$},getTouchAction:function(){var e=this.options.direction,t=[];return e&G&&t.push(Te),e&K&&t.push(je),t},directionTest:function(e){var t=this.options,n=!0,o=e.distance,a=e.direction,l=e.deltaX,s=e.deltaY;return a&t.direction||(t.direction&G?(a=0===l?U:l<0?Y:Q,n=l!=this.pX,o=Math.abs(e.deltaX)):(a=0===s?U:s<0?X:Z,n=s!=this.pY,o=Math.abs(e.deltaY))),e.direction=a,n&&o>t.threshold&&a&t.direction},attrTest:function(e){return Ye.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=qe(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),x(Xe,Ye,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),x(Ze,Ne,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ae]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,o=e.distance<t.threshold,a=e.deltaTime>t.time;if(this._input=e,!o||!n||e.eventType&(W|q)&&!a)this.reset();else if(e.eventType&N)this.reset(),this._timer=f((function(){this.state=8,this.tryEmit()}),t.time,this);else if(e.eventType&W)return 8;return Re},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&e.eventType&W?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=m(),this.manager.emit(this.options.event,this._input)))}}),x(Ge,Ye,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),x(Ke,Ye,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:G|K,pointers:1},getTouchAction:function(){return Qe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return n&(G|K)?t=e.overallVelocity:n&G?t=e.overallVelocityX:n&K&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&v(t)>this.options.velocity&&e.eventType&W},emit:function(e){var t=qe(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),x($e,Ne,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ee]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,o=e.distance<t.threshold,a=e.deltaTime<t.time;if(this.reset(),e.eventType&N&&0===this.count)return this.failTimeout();if(o&&a&&n){if(e.eventType!=W)return this.failTimeout();var l=!this.pTime||e.timeStamp-this.pTime<t.interval,s=!this.pCenter||ce(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,s&&l?this.count+=1:this.count=1,this._input=e,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=f((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return Re},failTimeout:function(){return this._timer=f((function(){this.state=Re}),this.options.interval,this),Re},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),Je.VERSION="2.0.7",Je.defaults={domEvents:!1,touchAction:Se,enable:!0,inputTarget:null,inputClass:null,preset:[[Ge,{enable:!1}],[Xe,{enable:!1},["rotate"]],[Ke,{direction:G}],[Qe,{direction:G},["swipe"]],[$e],[$e,{event:"doubletap",taps:2},["tap"]],[Ze]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function et(e,t){var n;this.options=r({},Je.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new((n=this).options.inputClass||(T?pe:D?Me:j?He:he))(n,ne),this.touchAction=new Ie(this,this.options.touchAction),tt(this,!0),p(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function tt(e,t){var n,o=e.element;o.style&&(p(e.options.cssProps,(function(a,l){n=A(o.style,l),t?(e.oldCssProps[n]=o.style[n],o.style[n]=a):o.style[n]=e.oldCssProps[n]||""})),t||(e.oldCssProps={}))}et.prototype={set:function(e){return r(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var n;this.touchAction.preventDefaults(e);var o=this.recognizers,a=t.curRecognizer;(!a||a&&8&a.state)&&(a=t.curRecognizer=null);for(var l=0;l<o.length;)n=o[l],2===t.stopped||a&&n!=a&&!n.canRecognizeWith(a)?n.reset():n.recognize(e),!a&&14&n.state&&(a=t.curRecognizer=n),l++}},get:function(e){if(e instanceof Ne)return e;for(var t=this.recognizers,n=0;n<t.length;n++)if(t[n].options.event==e)return t[n];return null},add:function(e){if(w(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(w(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,n=k(t,e);-1!==n&&(t.splice(n,1),this.touchAction.update())}return this},on:function(e,t){if(e!==c&&t!==c){var n=this.handlers;return p(O(e),(function(e){n[e]=n[e]||[],n[e].push(t)})),this}},off:function(e,t){if(e!==c){var n=this.handlers;return p(O(e),(function(e){t?n[e]&&n[e].splice(k(n[e],t),1):delete n[e]})),this}},emit:function(e,t){this.options.domEvents&&function(e,t){var n=l.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=t,t.target.dispatchEvent(n)}(e,t);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){t.type=e,t.preventDefault=function(){t.srcEvent.preventDefault()};for(var o=0;o<n.length;)n[o](t),o++}},destroy:function(){this.element&&tt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},r(Je,{INPUT_START:N,INPUT_MOVE:2,INPUT_END:W,INPUT_CANCEL:q,STATE_POSSIBLE:Fe,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:Re,DIRECTION_NONE:U,DIRECTION_LEFT:Y,DIRECTION_RIGHT:Q,DIRECTION_UP:X,DIRECTION_DOWN:Z,DIRECTION_HORIZONTAL:G,DIRECTION_VERTICAL:K,DIRECTION_ALL:$,Manager:et,Input:te,TouchAction:Ie,TouchInput:Me,MouseInput:he,PointerEventInput:pe,TouchMouseInput:He,SingleTouchInput:ye,Recognizer:Ne,AttrRecognizer:Ye,Tap:$e,Pan:Qe,Swipe:Ke,Pinch:Xe,Rotate:Ge,Press:Ze,on:B,off:H,each:p,merge:b,extend:y,assign:r,inherit:x,bindFn:_,prefixed:A}),("undefined"!==typeof a?a:"undefined"!==typeof self?self:{}).Hammer=Je,(o=function(){return Je}.call(t,n,t,e))===c||(e.exports=o)}(window,document)},27185:(e,t,n)=>{var o=n(38859),a=n(15325),l=n(29905),s=n(34932),c=n(27301),r=n(19219),i=Math.min;e.exports=function(e,t,n){for(var d=n?l:a,u=e[0].length,h=e.length,v=h,m=Array(h),f=1/0,w=[];v--;){var p=e[v];v&&t&&(p=s(p,c(t))),f=i(p.length,f),m[v]=!n&&(t||u>=120&&p.length>=120)?new o(v&&p):void 0}p=e[0];var g=-1,y=m[0];e:for(;++g<u&&w.length<f;){var b=p[g],x=t?t(b):b;if(b=n||0!==b?b:0,!(y?r(y,x):d(w,x,n))){for(v=h;--v;){var _=m[v];if(!(_?r(_,x):d(e[v],x,n)))continue e}y&&y.push(x),w.push(b)}}return w}},3122:(e,t,n)=>{var o=n(83693);e.exports=function(e){return o(e)?e:[]}},5287:(e,t,n)=>{var o=n(34932),a=n(27185),l=n(69302),s=n(3122),c=l((function(e){var t=o(e,s);return t.length&&t[0]===e[0]?a(t):[]}));e.exports=c},47060:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"add_node",use:"add_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="add_node"><path d="M4.25 6.25h1v-1h-1zM3.375 8.5h11c.759 0 1.375-.616 1.375-1.375v-3.75c0-.759-.616-1.375-1.375-1.375h-11C2.616 2 2 2.616 2 3.375v3.75C2 7.884 2.616 8.5 3.375 8.5m.125-5h10.75V7H3.5zm1.75 10v-1h-1v1zM3.5 10.75h12.25v-.125c0-.759-.616-1.375-1.375-1.375h-11C2.616 9.25 2 9.866 2 10.625v3.75c0 .759.616 1.375 1.375 1.375H10.5v-1.5h-7zm12.25 3.5V12h-1.5v2.25H12v1.5h2.25V18h1.5v-2.25H18v-1.5z" /></symbol>'});s().add(c);const r=c},18217:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"add_user",use:"add_user-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="add_user"><path d="M11.5 5C11.5 2.519 9.481.5 7 .5A4.505 4.505 0 0 0 2.5 5c0 1.217.49 2.32 1.278 3.13C1.902 8.584.5 10.266.5 12.279V15.5H2v-3.221A2.779 2.779 0 0 1 4.779 9.5H7c2.481 0 4.5-2.019 4.5-4.5M7 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6m5.75 4.25V10h-1.5v2.25H9v1.5h2.25V16h1.5v-2.25H15v-1.5z" /></symbol>'});s().add(c);const r=c},34975:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aggregation_avg",use:"aggregation_avg-usage",viewBox:"0 0 16 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12" id="aggregation_avg"><path d="M15.75 4c0-.41-.34-.75-.75-.75H3.81l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L.19 4.75H15c.41 0 .75-.34.75-.75M1 7.25c-.41 0-.75.34-.75.75s.34.75.75.75h11.19l-1.72 1.72c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l4.28-4.28z" /></symbol>'});s().add(c);const r=c},52441:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aggregation_max",use:"aggregation_max-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_max"><path d="M10.03.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06L10.94 4H4.71C2.11 4 0 6.11 0 8.71V16h1.5V8.71c0-1.77 1.44-3.21 3.21-3.21h6.73L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 5z" /></symbol>'});s().add(c);const r=c},72041:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aggregation_med",use:"aggregation_med-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_med"><path d="M.75 0H0v1.5h.75zM0 14h.75v-1.5H0zM3.53 0H2.14v1.5h1.39zM2.14 14h1.39v-1.5H2.14zM6.31 0H4.92v1.5h1.39zm5.55 0h-1.39v1.5h1.39zM9.08 0H7.69v1.5h1.39zM0 5.75h14v-1.5H0zM4.92 14h1.39v-1.5H4.92zm8.33-14v1.5H14V0zM0 9.75h14v-1.5H0zM7.69 14h1.39v-1.5H7.69zm5.56 0H14v-1.5h-.75zm-2.78 0h1.39v-1.5h-1.39z" /></symbol>'});s().add(c);const r=c},60863:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aggregation_min",use:"aggregation_min-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_min"><path d="M10.03 6.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.47 2.47H4.71c-1.77 0-3.21-1.44-3.21-3.21V0H0v7.29C0 9.89 2.11 12 4.71 12h6.23l-1.97 1.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 11z" /></symbol>'});s().add(c);const r=c},30882:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aggregation_sum",use:"aggregation_sum-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="aggregation_sum"><path d="M12 3V0H0v3l5 4-5 4v3h12v-3h-1.5v1.5h-9v-.78l4.44-3.55L7.4 7 5.94 5.83 1.5 2.28V1.5h9V3z" /></symbol>'});s().add(c);const r=c},17423:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aggregation_sum_abs",use:"aggregation_sum_abs-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_sum_abs"><path d="M0 0v6h14V0zm12.5 4.5h-11v-3h11zM0 14h14V8H0zm1.5-4.5h11v3h-11z" /></symbol>'});s().add(c);const r=c},38475:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alarm",use:"alarm-usage",viewBox:"0 0 18 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 21" id="alarm"><path d="M17 13.6c-.6-.6-1-1.5-1-2.4V8c0-3.5-2.6-6.4-6-6.9V1c0-.6-.4-1-1-1S8 .4 8 1v.1C4.6 1.6 2 4.5 2 8v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C0 18.9 1.1 20 2.5 20h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H8a2 2 0 0 0 2-2H3.7c.2-.6.3-1.2.3-1.8V8c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4z" /></symbol>'});s().add(c);const r=c},26391:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alarmFilled",use:"alarmFilled-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alarmFilled"><path d="M15.22 9.84A1.988 1.988 0 0 1 14 8V7c0-1.73-.87-3.25-2.2-4.15a5.17 5.17 0 0 0-1.82-.76c0-.03.02-.06.02-.1 0-.55-.45-1-1-1s-1 .45-1 1c0 .04.02.06.02.1-.66.13-1.28.39-1.82.76C4.87 3.75 4 5.27 4 7v1a1.988 1.988 0 0 1-1.22 1.84c-.24.1-.02.16-.02.16H11c0 .83-.67 1.5-1.5 1.5H2v2.35c0 .15.02.29.04.43A2.154 2.154 0 0 0 4.15 16H8c0 .55.45 1 1 1s1-.45 1-1h3.85a2.154 2.154 0 0 0 2.11-1.72c.03-.14.04-.29.04-.43V10c-.28 0-.54-.06-.78-.16" /></symbol>'});s().add(c);const r=c},71049:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alarm_c",use:"alarm_c-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_c"><circle cx="21.5" cy="2.5" r="2.5" fill="#FF4136" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},29044:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alarm_cw",use:"alarm_cw-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_cw"><circle cx="15.5" cy="2.5" r="2.5" fill="#FF4136" /><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path d="M12.317 1.042A3.487 3.487 0 0 0 12 2.5c0 .541.123 1.054.342 1.511A5.29 5.29 0 0 0 12 4C9.2 4 7 6.2 7 9v3.2c0 .6-.1 1.2-.3 1.8H13a2 2 0 0 1-2 2H5.4l-.4.4v2.1c0 .3.2.5.5.5h13c.3 0 .5-.2.5-.5v-2.1l-.4-.4c-1-1-1.6-2.4-1.6-3.8V9c0-1.134-.36-2.17-.976-3h2.294c.437.909.682 1.926.682 3v3.2c0 .9.4 1.8 1 2.4l1 1v2.9c0 1.4-1.1 2.5-2.5 2.5h-4.8c-.3.6-1 1-1.7 1s-1.4-.4-1.7-1H5.5C4.1 21 3 19.9 3 18.5v-2.9l1-1c.7-.7 1-1.5 1-2.4V9c0-3.5 2.6-6.4 6-6.9V2c0-.6.4-1 1-1 .113 0 .22.014.317.042" /></symbol>'});s().add(c);const r=c},20949:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alarm_off",use:"alarm_off-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="alarm_off"><path d="M12.2 7V6c0-.272-.029-.537-.07-.797l-1.412 2.046a3.504 3.504 0 0 0 1.982 2.914v2.688c0 .358-.292.65-.65.65H6.407l-1.035 1.5H6.2a1 1 0 0 0 2 0h3.85a2.15 2.15 0 0 0 2.15-2.15V9a2 2 0 0 1-2-2m.426-6.867a.75.75 0 0 0-1.043.191L10.34 2.128A4.913 4.913 0 0 0 8.18 1.099c.004-.034.02-.063.02-.099a1 1 0 0 0-2 0c0 .035.016.064.02.099A4.999 4.999 0 0 0 2.2 6v1a2 2 0 0 1-2 2v3.85c0 .912.57 1.687 1.372 2a.746.746 0 0 0 1.245.827l10-14.5a.75.75 0 0 0-.19-1.044M2.496 13.5H2.35a.65.65 0 0 1-.65-.65V10.5h2.865zM5.6 9H3.063A3.472 3.472 0 0 0 3.7 7V6c0-1.93 1.57-3.5 3.5-3.5.877 0 1.672.331 2.284.867z" /></symbol>'});s().add(c);const r=c},58709:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alarm_w",use:"alarm_w-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_w"><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},34390:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alarms_new",use:"alarms_new-usage",viewBox:"0 0 22 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 20" id="alarms_new"><path d="m17.5 12 4.4-5-4.4-5H11V0H9v2H0v10h9v6H5v2h10v-2h-4v-6zM2 10V4h14.5l2.6 3-2.6 3z" /></symbol>'});s().add(c);const r=c},24810:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"anomalies_brain",use:"anomalies_brain-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_brain"><path d="M17 8.99c0-1.008-.31-1.915-.929-2.621v-.101a4.44 4.44 0 0 0-4.439-4.436h-.103a3.97 3.97 0 0 0-1.755-.706c-.826-.202-1.548-.1-1.548-.1-.723.2-1.342.503-1.858.907-2.374 0-4.439 2.016-4.439 4.436v.1A3.818 3.818 0 0 0 1 8.99c0 1.008.31 1.916.929 2.622v.1c0 2.42 1.961 4.437 4.336 4.437h.103a4.352 4.352 0 0 0 1.858.806s.722.101 1.548 0a3.868 3.868 0 0 0 1.858-.806c2.375 0 4.439-2.017 4.439-4.437v-.1c.62-.706.929-1.614.929-2.622m-8.774 1.815c-.207-.1-.413-.202-.62-.303l-.825 1.311a6.06 6.06 0 0 0 1.445.504v3.126a2.479 2.479 0 0 1-1.136-.605c-.619-.605-.929-1.31-.929-2.218H4.613c0 .605.103 1.109.31 1.613-.93-.504-1.446-1.412-1.446-2.52v-.303c0-.605.413-1.31.93-1.815.206-.202.412-.302.722-.403.206.403.62.907 1.239 1.21L7.09 9.09c-1.032-.504-.722-1.411-.516-1.714L5.13 6.671c-.103.303-.206.605-.31 1.008-.516.101-1.032.404-1.445.807-.31.303-.516.605-.826.907V8.99c0-.706.31-1.411.723-1.915.516-.605 1.342-.908 2.064-.908V4.655c-.516 0-1.135.1-1.548.302.516-.907 1.445-1.512 2.478-1.512h.206l.413.1.31-.302c.206-.302.619-.504 1.032-.605zm6.503.1c-.516.606-1.342.908-2.064.908v1.513c.516 0 1.135-.101 1.548-.303-.516.908-1.445 1.512-2.477 1.512h-.207l-.413-.1-.31.302c-.31.303-.722.504-1.135.605V7.276c.206.101.413.101.62.303l.825-1.311c-.31-.302-.826-.504-1.342-.504V2.638c.413.101.826.303 1.136.605.619.504.929 1.311.929 2.118h1.548c0-.605-.103-1.11-.31-1.614.93.505 1.446 1.412 1.446 2.521v.302c-.104.706-.413 1.412-.93 1.916-.206.202-.412.303-.722.403-.207-.504-.62-.907-1.239-1.21L10.91 8.99c1.032.504.722 1.412.516 1.714l1.445.605c.103-.302.206-.605.31-1.008a6.624 6.624 0 0 0 1.445-.807c.31-.302.62-.605.826-1.008v.403a3.2 3.2 0 0 1-.723 2.017" /></symbol>'});s().add(c);const r=c},97322:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"anomalies_lens",use:"anomalies_lens-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_lens"><path fill-rule="evenodd" d="m12.74 11.68 2.79 2.79c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22l-2.79-2.79A5.976 5.976 0 0 1 8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6c0 1.39-.47 2.66-1.26 3.68M3.814 9.65A4.51 4.51 0 0 0 8 12.5a4.51 4.51 0 0 0 4.186-2.85h-.456l-.19-.19-.54-.54-.54.54-.561.56-.44-.66L8 7.173 6.54 9.36l-.192.289H4zm-.3-1.3A4.507 4.507 0 0 1 8 3.5a4.507 4.507 0 0 1 4.486 4.85h-.217l-.81-.81L11 7.08l-.46.46-.439.44-1.56-2.34L8 4.827l-.54.811L5.651 8.35H4z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},51317:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"applications_hollow",use:"applications_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="applications_hollow"><path d="M13.75 3.75h-1.99c-.37 0-.72.09-1.04.23a2.578 2.578 0 0 0-2.55-2.23H4.34a2.59 2.59 0 0 0-2.59 2.59v3.83c0 1.13.74 2.09 1.76 2.44-.16.32-.26.68-.26 1.07v1.16c0 1.33 1.08 2.42 2.42 2.42h1.16c.4 0 .77-.11 1.1-.28a2.14 2.14 0 0 0 1.96 1.28h2.71c1.18 0 2.15-.96 2.15-2.15V11.4c0-.28-.06-.55-.16-.8.96-.35 1.66-1.26 1.66-2.35v-2a2.5 2.5 0 0 0-2.5-2.5m-6 9.08c0 .51-.41.92-.92.92H5.67c-.51 0-.92-.41-.92-.92v-1.16c0-.51.41-.92.92-.92h1.16c.51 0 .92.41.92.92zm.41-3.58H4.34c-.6 0-1.09-.49-1.09-1.09V4.34c0-.6.49-1.09 1.09-1.09h3.83c.6 0 1.09.49 1.09 1.09v3.83c-.01.59-.5 1.08-1.1 1.08m5.09 4.85c0 .36-.29.65-.65.65H9.9c-.36 0-.65-.29-.65-.65v-2.7c0-.36.29-.65.65-.65h2.7c.36 0 .65.29.65.65zm1.5-5.85c0 .55-.45 1-1 1h-1.99c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h1.99c.55 0 1 .45 1 1z" /></symbol>'});s().add(c);const r=c},79529:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"applications_solid",use:"applications_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="applications_solid"><path d="M15.87 16c-1.19 0-2.24-.55-2.95-1.39C14.15 14 15 12.75 15 11.3V5.71C15 3.67 13.34 2 11.29 2H5.71C3.66 2 2 3.66 2 5.71v5.59c0 2.04 1.66 3.71 3.71 3.71h.4c-.06.23-.11.47-.11.72v1.57c0 1.5 1.22 2.72 2.72 2.72h1.37a3.68 3.68 0 0 1-.09-.82V18H8.72c-.4 0-.72-.32-.72-.72v-1.57c0-.4.32-.72.72-.72h2.42c-.08.26-.13.53-.13.82v3.37c0 1.55 1.26 2.82 2.82 2.82h3.37c1.55 0 2.82-1.26 2.82-2.82V15.9c-.28.07-.57.1-.87.1zm3.26-10H16v2h3.13c.48 0 .87.39.87.87v3.27c0 .48-.39.87-.87.87h-3.27c-.06 0-.12-.02-.18-.04-.25.65-.64 1.23-1.14 1.7.4.21.84.34 1.32.34h3.27c1.58 0 2.87-1.29 2.87-2.87V8.87C22 7.29 20.71 6 19.13 6" /></symbol>'});s().add(c);const r=c},86480:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"around_clock",use:"around_clock-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="around_clock"><path d="M8 3.25c-.41 0-.75.34-.75.75v4c0 .2.08.39.22.53l2 2c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L8.75 7.69V4c0-.41-.34-.75-.75-.75" /><path d="M8 0C3.58 0 0 3.58 0 8c0 .17.01.33.03.5h1.5c-.01-.17-.03-.33-.03-.5 0-3.58 2.92-6.5 6.5-6.5s6.5 2.92 6.5 6.5-2.92 6.5-6.5 6.5c-2.29 0-4.29-1.2-5.45-3h2.7c.41 0 .75-.34.75-.75S5.66 10 5.25 10H0v5.25c0 .41.34.75.75.75s.75-.34.75-.75v-2.61C2.95 14.67 5.31 16 8 16c4.42 0 8-3.58 8-8s-3.58-8-8-8" /></symbol>'});s().add(c);const r=c},52390:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arrow-s_down",use:"arrow-s_down-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_down"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4" /></symbol>'});s().add(c);const r=c},70157:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arrow-s_left",use:"arrow-s_left-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_left"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4" /></symbol>'});s().add(c);const r=c},98666:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arrow_down",use:"arrow_down-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="arrow_down"><path d="M9 3v5h2l-3 4-3-4h2V3z" /></symbol>'});s().add(c);const r=c},78286:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arrow_left",use:"arrow_left-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_left"><path d="M7.3 17.7c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L5.4 13H21c.6 0 1-.4 1-1s-.4-1-1-1H5.4l3.3-3.3c.4-.4.4-1 0-1.4-.2-.2-.5-.3-.7-.3-.2 0-.5.1-.7.3L1.6 12z" /></symbol>'});s().add(c);const r=c},81886:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arrow_w_line_left",use:"arrow_w_line_left-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_w_line_left"><path d="M20.314 19.334V5H22v14.334zM8.488 7.36c-.31-.336-.773-.336-1.082 0L3 12.168l4.406 4.806a.801.801 0 0 0 .54.253.801.801 0 0 0 .542-.253.867.867 0 0 0 0-1.18l-2.55-2.783h12.057c.464 0 .773-.337.773-.843s-.31-.843-.773-.843H5.937l2.55-2.783a.867.867 0 0 0 0-1.18" /></symbol>'});s().add(c);const r=c},38813:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arrow_w_line_right",use:"arrow_w_line_right-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_w_line_right"><path d="M4.686 5v14.334H3V5zM16.512 16.973c.31.338.773.338 1.082 0L22 12.167l-4.406-4.806a.801.801 0 0 0-.54-.253.801.801 0 0 0-.542.253.867.867 0 0 0 0 1.18l2.55 2.783H7.006c-.464 0-.773.337-.773.843s.31.843.773.843h12.058l-2.55 2.783a.867.867 0 0 0 0 1.18" /></symbol>'});s().add(c);const r=c},87723:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arrows_vertical",use:"arrows_vertical-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="arrows_vertical"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0m1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0" /></symbol>'});s().add(c);const r=c},59460:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"bookmark",use:"bookmark-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="bookmark"><path d="M9.77 1.5c.4 0 .73.33.73.73V12.5L6.9 9.8 6 9.13l-.9.67-3.6 2.7V2.23c0-.4.33-.73.73-.73zm0-1.5H2.23C1 0 0 1 0 2.23V12.5a1.498 1.498 0 0 0 2.4 1.2L6 11l3.6 2.7a1.498 1.498 0 0 0 2.4-1.2V2.23C12 1 11 0 9.77 0" /></symbol>'});s().add(c);const r=c},25817:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"bullet_one",use:"bullet_one-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_one"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m1.5 7.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1v-3H4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5v3.5h1c.28 0 .5.22.5.5s-.22.5-.5.5" /></symbol>'});s().add(c);const r=c},78957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"bullet_three",use:"bullet_three-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_three"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m2 6c0 .83-.67 1.5-1.5 1.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4c0 .39-.15.73-.39 1 .24.27.39.61.39 1" /></symbol>'});s().add(c);const r=c},48783:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"bullet_two",use:"bullet_two-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_two"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m1.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5v-.99c0-.83.67-1.5 1.49-1.51H5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4s-.67 1.5-1.5 1.5h-.99c-.28 0-.51.23-.51.51v.49z" /></symbol>'});s().add(c);const r=c},36878:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"calendar_full",use:"calendar_full-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full"><path d="M13.747 3.518c0-.006.003-.011.003-.018v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1c0 .006.003.011.003.018A2.922 2.922 0 0 0 1.5 6.428v6.644A2.931 2.931 0 0 0 4.428 16h9.144a2.931 2.931 0 0 0 2.928-2.928V6.428a2.922 2.922 0 0 0-2.753-2.91M15 13.072c0 .789-.639 1.428-1.428 1.428H4.428A1.428 1.428 0 0 1 3 13.072V8.75h8.5a1.5 1.5 0 0 0 1.5-1.5H3v-.822C3 5.639 3.639 5 4.428 5h9.144C14.361 5 15 5.639 15 6.428z" /></symbol>'});s().add(c);const r=c},62682:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"calendar_full_press",use:"calendar_full_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full_press"><path d="M14.07 3h-.32V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-.32C2.86 3 2 3.86 2 4.93V6h11c0 .83-.67 1.5-1.5 1.5H2v6.57C2 15.13 2.86 16 3.93 16h10.15c1.06 0 1.93-.86 1.93-1.93V4.93A1.94 1.94 0 0 0 14.07 3" /></symbol>'});s().add(c);const r=c},45715:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chart_added",use:"chart_added-usage",viewBox:"0 0 17 17",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" id="chart_added"><path d="M15.5 10.56V4.38L12 .88l-6 6-2-2-3.5 3.5v3.06c0 2.24 1.82 4.06 4.06 4.06h4.7c-.3-.46-.53-.96-.65-1.5H4.56C3.15 14 2 12.85 2 11.44V9l2-2 2 2 6-6 2 2v4.66c-.32-.1-.65-.16-1-.16-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5c0-.95-.38-1.81-1-2.44m-.5 3.19h-1.25V15h-1.5v-1.25H11v-1.5h1.25V11h1.5v1.25H15z" /></symbol>'});s().add(c);const r=c},14767:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"charts",use:"charts-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="charts"><path d="m15 12.59-6-6-3 3-1.5-1.5-4.5 4.5v2.58C0 17.84 2.17 20 4.83 20h10.33c2.67 0 4.83-2.17 4.83-4.83V7.59zm3 2.58c0 1.56-1.27 2.83-2.83 2.83H4.83C3.27 18 2 16.73 2 15.17v-1.75l2.5-2.5 1.5 1.5 3-3 6 6 3-3zM2 6.41l2-2 2 2 3.5-3.5 5.5 5.5 2-2 .67.67 1.41-1.41L17 3.59l-2 2L9.5.09 6 3.59l-2-2-4 4v4.17l2-2z" /></symbol>'});s().add(c);const r=c},68973:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"charts_view",use:"charts_view-usage",viewBox:"0 0 16 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 15" id="charts_view"><path d="M10.25 6.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88m.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H3.13c-.48 0-.88-.39-.88-.88V7.14l1.67 1.11 1.02.68 1.5-1.5C7.43 8.39 8.76 9 10.25 9c2.7 0 4.93-1.94 5.4-4.5a5.497 5.497 0 0 0-5.4-4.5c-2.69 0-4.93 1.94-5.4 4.5.12.63.34 1.22.65 1.75L4.75 7l-3-2h-1v7.62A2.38 2.38 0 0 0 3.13 15h9.24a2.38 2.38 0 0 0 2.38-2.38V10l-1.17-.73c-.87.24-1.81.27-2.74.06m-.59-7.83c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3" /></symbol>'});s().add(c);const r=c},91956:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"check",use:"check-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="check"><path fill-rule="evenodd" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},3559:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"checkmark",use:"checkmark-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="checkmark"><circle cx="8" cy="8" r="8" fill="#42B861" /><path fill="#fff" d="M6.913 11.728 3.718 8.532a.747.747 0 1 1 1.057-1.057L6.83 9.53l4.35-5.018a.749.749 0 1 1 1.133.983z" /></symbol>'});s().add(c);const r=c},87875:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"checkmark_partial_s",use:"checkmark_partial_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_partial_s"><path d="M1 7h14v3H1z" /></symbol>'});s().add(c);const r=c},79919:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chevron_double",use:"chevron_double-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="chevron_double"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0m1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0" /></symbol>'});s().add(c);const r=c},66643:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chevron_left",use:"chevron_left-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left"><path d="m4.59 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L7.41 9l4.29 4.29a.996.996 0 1 1-1.41 1.41z" /></symbol>'});s().add(c);const r=c},8827:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chevron_left_small",use:"chevron_left_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_left_small"><path d="M4 0c.3 0 .5.1.7.3.4.4.4 1 0 1.4L3.4 3l1.3 1.3c.4.4.4 1 0 1.4-.4.4-1 .4-1.4 0L.6 3 3.3.3c.2-.2.4-.3.7-.3" /></symbol>'});s().add(c);const r=c},39078:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chevron_left_start",use:"chevron_left_start-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left_start"><path d="m8 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L10.82 9l4.29 4.29a.996.996 0 1 1-1.41 1.41z" /><path fill-rule="evenodd" d="M4 3a1 1 0 0 1 1 1v10a1 1 0 1 1-2 0V4a1 1 0 0 1 1-1" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},49686:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chevron_right",use:"chevron_right-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right"><path d="M13.41 9 7.7 14.71a.996.996 0 1 1-1.41-1.41l4.29-4.29-4.29-4.3A.996.996 0 1 1 7.7 3.3z" /></symbol>'});s().add(c);const r=c},49764:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chevron_right_s",use:"chevron_right_s-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_s"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3" /></symbol>'});s().add(c);const r=c},89482:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"chevron_right_small",use:"chevron_right_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_small"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3" /></symbol>'});s().add(c);const r=c},93855:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"class_error",use:"class_error-usage",viewBox:"0 0 21 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 22" id="class_error"><path d="M10.358 12.95a1.7 1.7 0 1 0 0 3.4 1.7 1.7 0 0 0 0-3.4M9.88 5.728a1.83 1.83 0 0 0-1.24 2.272l.88 3a.913.913 0 0 0 1.752 0l.88-3A1.828 1.828 0 0 0 9.88 5.727m8.172-1.855L12.741.806a4.7 4.7 0 0 0-4.689 0L2.74 3.872a4.702 4.702 0 0 0-2.344 4.06v6.134c0 1.67.898 3.226 2.344 4.06l5.312 3.067a4.682 4.682 0 0 0 2.345.626c.81 0 1.62-.208 2.344-.626l5.311-3.066a4.702 4.702 0 0 0 2.345-4.061V7.933c0-1.67-.898-3.226-2.344-4.061m.345 10.193c0 .958-.515 1.85-1.344 2.329L11.74 19.46a2.694 2.694 0 0 1-2.689 0L3.74 16.394a2.697 2.697 0 0 1-1.344-2.33V7.934c0-.958.515-1.85 1.344-2.33l5.312-3.066a2.69 2.69 0 0 1 1.345-.358c.464 0 .93.119 1.344.358l5.311 3.067a2.697 2.697 0 0 1 1.345 2.329z" /></symbol>'});s().add(c);const r=c},53079:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"class_latency",use:"class_latency-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="class_latency"><path d="M7.736.36c-.36.1-.72.22-1.06.36l.75 1.85c.27-.11.55-.2.84-.28zm-2.58 3.59-1.31-1.5c-.28.24-.54.5-.79.77l1.46 1.35c-.1.11-.2.22-.29.34.33-.4.69-.76 1.09-1.08-.05.03-.11.08-.16.12m-3.92 2.04c-.15.33-.28.68-.39 1.04l1.91.59c.09-.28.2-.56.31-.83zM2.396 10v.25l-1.99.07c.01.38.04.74.1 1.1l1.97-.28c-.05-.37-.08-.75-.08-1.14m.89 3.66-1.78.92c.17.33.36.65.57.96l1.66-1.11c.08.12.16.24.25.35-.26-.35-.49-.73-.7-1.12m17.09-4.29c-.02-.38-.07-.74-.13-1.1-.01-.04-.01-.08-.02-.12l-.06-.29c-.02-.12-.05-.24-.09-.36-.02-.11-.05-.21-.09-.32-.1-.36-.22-.7-.37-1.04 0-.01 0-.02-.01-.03-.11-.28-.24-.55-.38-.81-.03-.06-.06-.11-.09-.16-.18-.32-.38-.63-.6-.93-.02-.03-.04-.07-.06-.1-.02-.03-.04-.06-.07-.09-.06-.09-.13-.18-.2-.26-.09-.11-.17-.22-.27-.32-.03-.04-.06-.07-.09-.11-.25-.27-.51-.53-.78-.78-.04-.03-.07-.06-.11-.09-.1-.1-.21-.18-.32-.27-.14-.11-.29-.23-.44-.33-.3-.22-.62-.42-.94-.6-.05-.03-.1-.06-.16-.09-.27-.14-.55-.27-.83-.39-.34-.15-.69-.271-1.05-.37-.11-.04-.21-.07-.32-.09-.2-.06-.4-.1-.61-.14-.05-.01-.1-.02-.15-.02-.36-.07-.73-.12-1.11-.14-.2-.01-.42-.02-.63-.02-.16 0-.32 0-.47.01-.38.021-.75.06-1.11.12l.32 1.97c.29-.05.58-.08.88-.09.12-.01.25-.01.38-.01.17 0 .34.01.51.02a7.71 7.71 0 0 1 1.74.3c.29.09.57.19.84.3.01 0 .01.01.02.01.24.09.47.21.7.34.03.01.05.021.08.04.31.18.61.37.89.58.1.08.2.15.3.24.32.26.61.53.88.84.16.18.31.36.45.55.21.28.4.58.58.89.15.26.28.53.39.8.11.27.21.55.3.84.04.14.08.28.11.43.03.13.06.26.08.39.01.01.01.03.01.04.05.29.08.58.1.88.01.17.02.34.02.51a8.714 8.714 0 0 1-.19 1.76c-.02.08-.04.16-.06.23-.03.13-.07.26-.11.38-.15.48-.35.95-.59 1.39 0 .01 0 .01-.01.021 0 0 0 .01-.01.02-.02.03-.04.07-.06.11-.24.41-.51.81-.8 1.17-.07.1-.16.2-.25.29a7.786 7.786 0 0 1-1.6 1.36c-.24.15-.5.3-.77.44-.03.01-.06.03-.09.04-.11.06-.23.11-.35.16-.46.19-.93.34-1.42.45-.22.05-.45.09-.68.12-.29.03-.58.05-.88.06h-.13c-.26 0-.51-.01-.76-.04-.3-.02-.59-.07-.88-.13-.29-.06-.58-.14-.86-.23-.28-.1-.56-.2-.82-.32-.05-.021-.1-.04-.14-.07-.12-.05-.24-.11-.35-.18-.1-.05-.2-.11-.3-.17-.45-.28-.87-.59-1.26-.94.16.16.34.31.52.45l-1.2 1.58c.29.23.59.44.91.63.26.16.54.3.81.43.05.03.11.06.17.08.33.16.68.3 1.04.41.35.12.71.21 1.07.29.36.07.72.13 1.1.17.31.02.63.04.95.04h.16c.37-.01.74-.03 1.1-.08.09-.01.18-.02.26-.04.15-.02.31-.05.45-.07l.39-.09v-.01c.36-.08.71-.18 1.06-.31.01 0 .01-.01.02-.01.3-.11.6-.24.89-.38.04-.01.07-.03.11-.05.34-.17.66-.35.97-.55.07-.05.14-.09.21-.14.12-.08.24-.17.36-.26.11-.07.22-.16.33-.25.28-.24.56-.49.81-.75.1-.09.19-.19.28-.29l.24-.27c.07-.09.15-.18.22-.27.23-.29.44-.59.63-.91.1-.15.2-.31.29-.47.08-.16.16-.31.23-.47.01-.01.01-.02.01-.03h.01a9.82 9.82 0 0 0 .65-1.8c.03-.1.05-.2.07-.3.09-.35.15-.72.19-1.09 0-.03.01-.06.01-.09.03-.34.05-.68.05-1.02 0-.211-.01-.421-.02-.631m-16.11 5.77-1.53 1.29c.24.28.5.55.76.8l1.38-1.44c.05.05.1.09.15.13-.29-.26-.56-.54-.8-.84.01.02.02.04.04.06m-1.62-3.13-1.93.5c.09.36.2.71.34 1.06l1.86-.72c.03.09.07.18.11.26-.15-.36-.27-.72-.38-1.1m-.11-3.53-1.96-.37c-.07.36-.12.72-.15 1.1l1.99.15c0 .06-.01.11-.01.17.02-.36.07-.71.13-1.05m1.42-3.22-1.61-1.19c-.22.3-.42.61-.61.93l1.73 1c-.04.06-.07.13-.1.19.18-.32.38-.63.59-.93m2.66-2.31-.94-1.77c-.33.18-.65.37-.95.58l1.13 1.65c-.06.04-.12.09-.18.14.3-.22.61-.42.94-.6" /></symbol>'});s().add(c);const r=c},65377:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"class_utilization",use:"class_utilization-usage",viewBox:"0 0 25 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 19" id="class_utilization"><path d="m5.357 7.55-2.12-2.12c2.22-1.94 5.05-3.17 8.16-3.39v3.01c.33-.03.663-.05 1-.05.337 0 .67.021 1 .05V2.04c3.11.22 5.94 1.45 8.16 3.39l-2.12 2.12c.51.43.98.9 1.41 1.41l2.12-2.12 1.42-1.41c-.44-.51-.91-.98-1.42-1.42A15.925 15.925 0 0 0 12.397 0c-4.05 0-7.75 1.52-10.57 4.01-.51.44-.98.91-1.42 1.42l1.42 1.41 2.12 2.12c.43-.51.9-.98 1.41-1.41m9.56 8.57 2.394-9.714a1.017 1.017 0 0 0-1.827-.812L9.878 13.88a2.8 2.8 0 1 0 5.039 2.24" /></symbol>'});s().add(c);const r=c},77568:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"class_workload",use:"class_workload-usage",viewBox:"0 0 22 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21" id="class_workload"><path d="M2.336 21h1v-2h-1zm-1.94 0h.94v-2h-.94zm3.94 0h1v-2h-1zM21.104 5.293 16.397.586 11.69 5.293a.999.999 0 1 0 1.414 1.414l2.293-2.293v9.626c0 .13-.01.26-.02.38-.01.16-.03.32-.06.47-.01.1-.03.2-.06.3 0 .02-.01.03-.01.05a4.894 4.894 0 0 1-.45 1.16c-.06.12-.14.24-.21.36-.16.23-.33.45-.52.65a.8.8 0 0 1-.13.13c-.11.11-.23.22-.35.32-.26.21-.54.4-.83.56-.24.13-.5.24-.76.33-.26.08-.53.15-.81.19l-.25.03c-.17.02-.36.03-.6.03h-2v2h2.1c.23 0 .46-.01.68-.04.03 0 .06 0 .08-.01.06 0 .12-.01.17-.01l.12-.03c.39-.05.77-.14 1.14-.26a6.764 6.764 0 0 0 2.05-1.1.55.55 0 0 0 .09-.07c.08-.06.16-.12.24-.2.19-.15.37-.33.53-.51.26-.28.5-.58.72-.91.1-.16.2-.33.3-.5.05-.11.11-.21.15-.31.04-.07.07-.15.1-.22.16-.35.29-.72.38-1.1.01-.03.01-.05.02-.08.03-.12.05-.24.07-.35.04-.17.06-.35.08-.53v-.03c.01-.03.01-.07.01-.11v-.05c.02-.18.03-.36.03-.54V4.414l2.293 2.293a.997.997 0 0 0 1.413 0 .999.999 0 0 0 0-1.414M6.336 21h1v-2h-1zm6.82-20h-5.8C3.516 1 .396 4.12.396 7.96V17h2V7.96c0-2.73 2.23-4.96 4.96-4.96h3.8z" /></symbol>'});s().add(c);const r=c},34623:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"clock_5_min",use:"clock_5_min-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2M2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76M9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7m0 12.5A5.51 5.51 0 0 1 3.5 9c0-3.03 2.47-5.5 5.5-5.5s5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5m5.24-.14c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06zM9 5v4l1.8-3.57A3.959 3.959 0 0 0 9 5" /></symbol>'});s().add(c);const r=c},63319:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"clock_5_min_press",use:"clock_5_min_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min_press"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2M2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76M9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7m0 7V5c.31 0 .62.04.92.11.3.07.6.18.87.32zm5.24 5.36c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06z" /></symbol>'});s().add(c);const r=c},51580:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"clock_hollow",use:"clock_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="clock_hollow"><path d="M12 4c-4.96 0-9 4.04-9 9 0 2.07.71 3.97 1.89 5.5l-1.64 1.84a.998.998 0 0 0 .08 1.41c.19.17.43.25.66.25.28 0 .55-.11.75-.34l1.53-1.72A8.965 8.965 0 0 0 12 22c4.96 0 9-4.04 9-9s-4.04-9-9-9m0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7M4.17 6.79C4.06 6.55 4 6.28 4 6c0-1.1.9-2 2-2 .39 0 .75.12 1.06.31.63-.36 1.29-.65 1.99-.87A3.978 3.978 0 0 0 6 2C3.79 2 2 3.79 2 6c0 1.01.39 1.93 1.01 2.63.32-.65.71-1.27 1.16-1.84M18 4c1.1 0 2 .9 2 2 0 .28-.06.55-.17.79.45.57.83 1.18 1.15 1.84C21.61 7.93 22 7.01 22 6c0-2.21-1.79-4-4-4-1.23 0-2.32.57-3.05 1.44.7.22 1.36.51 1.99.87.31-.19.67-.31 1.06-.31m1.79 15.26c-.42.52-.89 1-1.4 1.43l.86.97c.2.22.47.34.75.34.24 0 .47-.08.66-.25.41-.37.45-1 .08-1.41zM13 12.46V9c0-.55-.45-1-1-1s-1 .45-1 1v4.54l3.45 2.3c.17.11.36.17.55.17.32 0 .64-.16.83-.45.31-.46.18-1.08-.28-1.39z" /></symbol>'});s().add(c);const r=c},85419:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"close_circle",use:"close_circle-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="close_circle"><path d="M5 0a5 5 0 1 0 .001 10.001A5 5 0 0 0 5 0m2.03 5.97a.75.75 0 0 1-1.06 1.061L5 6.061l-.97.97a.748.748 0 0 1-1.06 0 .75.75 0 0 1 0-1.061L3.94 5l-.97-.97a.75.75 0 1 1 1.061-1.061l.97.97.97-.97A.75.75 0 1 1 7.032 4.03l-.97.97z" /></symbol>'});s().add(c);const r=c},81426:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"cluster",use:"cluster-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster"><path d="M11 3.494 4.5 7.247v7.506l6.5 3.753 6.5-3.753V7.247zm0 1.732 4.227 2.44-1.99 1.161L11 7.537 8.736 8.842l-2.01-1.148zm-.75 11.115L6 13.887v-4.88l2 1.143v2.582l2.25 1.3zm-.75-4.475v-1.732l1.5-.866 1.5.866v1.731l-1.5.866zm6.5 2.021-4.227 2.44-.01-2.304-.013.008L14 12.732V10.12l2-1.167z" /></symbol>'});s().add(c);const r=c},68124:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"cluster_spaces",use:"cluster_spaces-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster_spaces"><path d="M12 4v6h6V4zm4.5 4.5h-3v-3h3zM4 18h6v-6H4zm1.5-4.5h3v3h-3zM4 10h6V4H4zm8 8h6v-6h-6zm1.5-4.5h3v3h-3z" /></symbol>'});s().add(c);const r=c},86547:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"code",use:"code-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="code"><path d="M9.24 4.29a.753.753 0 0 0-.95.47l-2 6a.753.753 0 0 0 .71.99c.31 0 .61-.2.71-.51l2-6c.13-.4-.08-.82-.47-.95M5.32 5c-.3 0-.56.17-.69.45L3.5 8l1.14 2.55c.12.27.39.45.69.45.54 0 .91-.56.69-1.05L5.14 8 6 6.05C6.23 5.56 5.86 5 5.32 5m5.36 0c-.54 0-.91.56-.69 1.05L10.85 8l-.86 1.95c-.22.5.14 1.05.69 1.05.3 0 .56-.17.69-.45L12.5 8l-1.14-2.55a.728.728 0 0 0-.68-.45m1.67-3h-8.7C2.19 2 1 3.19 1 4.65v6.69c0 1.47 1.19 2.65 2.65 2.65h8.69c1.47 0 2.65-1.19 2.65-2.65V4.65A2.64 2.64 0 0 0 12.35 2m1.15 9.35c0 .64-.52 1.15-1.15 1.15h-8.7c-.64 0-1.15-.52-1.15-1.15v-6.7c0-.63.52-1.15 1.15-1.15h8.69c.64 0 1.15.52 1.15 1.15v6.7z" /></symbol>'});s().add(c);const r=c},42202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"collect",use:"collect-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="collect"><path d="M7.79 11.79a.996.996 0 0 0 0 1.41L12 17.41l4.21-4.21a.996.996 0 1 0-1.41-1.41l-1.8 1.8V2h-2v11.59L9.21 11.8a.999.999 0 0 0-1.42-.01M19.64 8H14v3.17l.09-.09a1.983 1.983 0 0 1 2.82 0 1.983 1.983 0 0 1 0 2.82L12 18.83l-4.91-4.91a1.983 1.983 0 0 1 0-2.82 1.983 1.983 0 0 1 2.82 0l.09.09V8H4V6.36c0-.2.16-.36.36-.36H10V4H4.36C3.06 4 2 5.06 2 6.36v12.09A3.55 3.55 0 0 0 5.55 22h12.89a3.55 3.55 0 0 0 3.55-3.55v-8.09A2.35 2.35 0 0 0 19.64 8" /></symbol>'});s().add(c);const r=c},48083:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"community",use:"community-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="community"><path d="M10 5.25H6v1.5h4zm-1.5 3H6v1.5h2.5zm6.48-1.09c.01.11.02.22.02.34 0 .94-.19 1.84-.53 2.66.01.11.03.22.03.34V15H10c-1.33 0-2.5-.59-3.32-1.5H8c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6v6h2.83c1.04 1.79 2.96 3 5.17 3h6v-6c0-1.23-.38-2.38-1.02-3.34M3.5 12V7.5C3.5 5.01 5.51 3 8 3c1.42 0 2.67.67 3.49 1.7.08.1.17.2.25.3.48.72.76 1.57.76 2.5 0 2.49-2.01 4.5-4.5 4.5z" /></symbol>'});s().add(c);const r=c},58746:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"connection_to_cloud",use:"connection_to_cloud-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="connection_to_cloud"><path d="M15.05 5.07A4.956 4.956 0 0 1 17 9c0 2.58-1.96 4.68-4.47 4.95l.21-.21c.33-.33.51-.77.51-1.24 0-.072-.008-.136-.017-.206a5.176 5.176 0 0 1-.003-.024c1.32-.5 2.27-1.77 2.27-3.27 0-.9-.35-1.71-.9-2.32-.31-.35-.69-.63-1.11-.83l-.025-.015-.025-.015c-.18-.09-.38-.15-.58-.2l-.037-.014c-.023-.01-.048-.02-.073-.026-.24-.05-.49-.08-.74-.08a.506.506 0 0 1-.065.01c-.023.003-.045.005-.065.01l-.22.03-.41.04c-.72.16-1.36.55-1.84 1.08l-1.11-1c.42-.48.94-.87 1.51-1.15A4.43 4.43 0 0 0 7 3.5C4.52 3.5 2.5 5.52 2.5 8c0 1.7.96 3.16 2.35 3.92a1.739 1.739 0 0 0 .41 1.81l.01.01A5.994 5.994 0 0 1 1 8c0-3.31 2.69-6 6-6 1.79 0 3.39.79 4.48 2.04a4.731 4.731 0 0 1 1.44.06c.02.005.04.008.06.01a3.832 3.832 0 0 1 .81.24 4.322 4.322 0 0 1 1.158.644z" /><path d="m7.119 13.09 1.22-1.22v3.19h1.5v-3.19l1.22 1.22c.29.29 1.06 0 1.06 0s.29-.77 0-1.06L9.089 9l-3.03 3.03c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0" /></symbol>'});s().add(c);const r=c},4643:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"connectivity_status_live",use:"connectivity_status_live-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_live"><circle cx="9" cy="9" r="9" fill="#BFE5C6" /><path fill="#00AB44" d="M6.903 7.351c0-.538.2-1.024.51-1.396l-.73-.645a3.169 3.169 0 0 0-.748 2.041A3.2 3.2 0 0 0 6.684 9.4l.729-.652a2.18 2.18 0 0 1-.51-1.396m-.961-2.7L5.206 4A5.246 5.246 0 0 0 4 7.351c0 1.277.458 2.447 1.206 3.351l.736-.652a4.196 4.196 0 0 1-.974-2.699c0-1.03.367-1.975.974-2.7M9 8.516c.62 0 1.129-.526 1.129-1.164 0-.638-.51-1.163-1.129-1.163-.62 0-1.129.525-1.129 1.163S8.381 8.515 9 8.515m0-1.33c.09 0 .161.073.161.166 0 .186-.322.186-.322 0 0-.093.07-.166.161-.166M12.794 4c-.2.173-.413.366-.736.652.607.724.974 1.668.974 2.7 0 1.03-.367 1.974-.974 2.698.323.286.536.473.736.652A5.233 5.233 0 0 0 14 7.352 5.233 5.233 0 0 0 12.793 4m-1.478 1.303-.729.645c.316.38.51.864.51 1.396 0 .532-.2 1.024-.51 1.397.336.292.368.325.73.645a3.2 3.2 0 0 0 .748-2.048c0-.785-.29-1.483-.749-2.035m-1.348 7.7h-.484V9.844A.495.495 0 0 0 9 9.346a.495.495 0 0 0-.484.498v3.159h-.484c-.535 0-.967.445-.967.997h3.87c0-.552-.432-.997-.967-.997" /></symbol>'});s().add(c);const r=c},21774:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"connectivity_status_offline",use:"connectivity_status_offline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_offline"><circle cx="9" cy="9" r="9" fill="#FFEBEF" /><path fill="#ED7374" d="M9 2.778A6.218 6.218 0 0 0 2.778 9 6.218 6.218 0 0 0 9 15.222 6.218 6.218 0 0 0 15.222 9 6.218 6.218 0 0 0 9 2.778M4.111 9A4.898 4.898 0 0 1 9 4.111c1.111 0 2.124.373 2.951.996l-6.835 6.835A4.784 4.784 0 0 1 4.11 9M9 13.89a4.878 4.878 0 0 1-2.951-.996l6.835-6.835c.623.818.996 1.84.996 2.95.009 2.685-2.187 4.88-4.88 4.88" /></symbol>'});s().add(c);const r=c},43380:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"connectivity_status_stale",use:"connectivity_status_stale-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_stale"><circle cx="9" cy="9" r="9" fill="#ECEEEF" /><path fill="#8F9EAA" d="M7.03 4H5.47C4.66 4 4 4.66 4 5.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C8.5 4.66 7.84 4 7.03 4M5.5 12.53 5.47 5.5H7l.03 7zM12.53 4h-1.56c-.81 0-1.47.66-1.47 1.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C14 4.66 13.34 4 12.53 4M11 12.53l-.03-7.03h1.53l.03 7z" /></symbol>'});s().add(c);const r=c},26181:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"controller_kind",use:"controller_kind-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_kind"><path d="M10.25 15h1.5v-1.5h-1.5zm3.189-11H8.561A4.561 4.561 0 0 0 4 8.561v4.879A4.56 4.56 0 0 0 8.561 18h4.879a4.561 4.561 0 0 0 4.561-4.561V8.561A4.562 4.562 0 0 0 13.439 4m3.061 9.439a3.064 3.064 0 0 1-3.061 3.061H8.561A3.064 3.064 0 0 1 5.5 13.439V8.561A3.064 3.064 0 0 1 8.561 5.5h4.879a3.064 3.064 0 0 1 3.06 3.061zM13 9.25h-1.25V7h-1.5v2.25H9c-.965 0-1.75.785-1.75 1.75s.785 1.75 1.75 1.75h4c.965 0 1.75-.785 1.75-1.75S13.965 9.25 13 9.25m0 2H9a.25.25 0 0 1 0-.5h4a.25.25 0 0 1 0 .5" /></symbol>'});s().add(c);const r=c},6494:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"controller_name",use:"controller_name-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_name"><path d="m12.227 8.228-3.354 3.21a1.622 1.622 0 1 0 2.667 1.666l1.415-4.422a.443.443 0 0 0-.728-.454m2.482-3.166A6.996 6.996 0 0 0 5.063 7.29 7.001 7.001 0 0 0 10.993 18 7 7 0 0 0 14.71 5.062m.956 8.852a5.473 5.473 0 0 1-4.67 2.586 5.496 5.496 0 0 1-2.909-.836 5.507 5.507 0 0 1-1.75-7.579A5.477 5.477 0 0 1 11.008 5.5c1.026 0 2.031.29 2.907.836a5.508 5.508 0 0 1 1.75 7.579" /></symbol>'});s().add(c);const r=c},66427:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"copy",use:"copy-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="copy"><path d="M10.146 14h1.412v-1.5h-1.412zm-2.352 0h1.412v-1.5H7.794zM11 0H0v11h3v.559h1.5V11H11V4.5h.559V3H11zM9.5 9.5h-8v-8h8zM3 14h1.5v-1.5H3zm2.441 0h1.411v-1.5H5.441zm7.059 0H14v-1.5h-1.5zm0-11v1.5H14V3zm0 3.853H14V5.441h-1.5zm0 2.353H14V7.794h-1.5zm0 2.353H14v-1.412h-1.5z" /></symbol>'});s().add(c);const r=c},16888:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"correlation",use:"correlation-usage",viewBox:"0 0 28 28",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 28 28" id="correlation"><path fill="#00AB44" d="M21.56 2.333H6.79A4.456 4.456 0 0 0 2.333 6.79v14.77a4.113 4.113 0 0 0 4.107 4.107h15.12a4.113 4.113 0 0 0 4.107-4.107V6.44a4.113 4.113 0 0 0-4.107-4.107M19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21zm1.995-9.672a1.146 1.146 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645" /><path fill="#fff" d="M21.828 11.328a1.145 1.145 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645" /><path fill="#fff" d="M19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21z" /></symbol>'});s().add(c);const r=c},74552:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"correlation_inv",use:"correlation_inv-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="correlation_inv"><path d="M12.99 15.24 17 17.58V22h2v-5.57l-4.02-2.35zm9.22-9.45L18 1.59 13.79 5.8a.996.996 0 1 0 1.41 1.41l1.8-1.8v4.01l-5 2.92-5-2.91V5.41L8.79 7.2c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L6 1.59l-4.21 4.2A.996.996 0 1 0 3.2 7.2L5 5.41v5.16l5.02 2.93L5 16.43V22h2v-4.43l12-7V5.41l1.79 1.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41" /></symbol>'});s().add(c);const r=c},66194:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"cpu",use:"cpu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="cpu"><path d="M11 2 9.22 8H14l-7 8 1.78-6H4zm0-1.5c-.42 0-.84.18-1.13.51l-7 8c-.39.44-.48 1.07-.24 1.61s.78.88 1.37.88h2.77l-1.21 4.07a1.505 1.505 0 0 0 1.43 1.93c.42 0 .84-.18 1.13-.51l6.96-7.96a1.498 1.498 0 0 0-1.09-2.53H14h-2.77l1.21-4.07A1.505 1.505 0 0 0 11 .5" /></symbol>'});s().add(c);const r=c},14946:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"cross_s",use:"cross_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="cross_s"><path fill-rule="evenodd" d="M13 4.538 11.461 3 8 6.462 4.538 3 3 4.538 6.462 8 3 11.461 4.538 13 8 9.538 11.461 13 13 11.461 9.538 8z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},68864:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dashboard",use:"dashboard-usage",viewBox:"0 0 22 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 18" id="dashboard"><path d="M11.98 11.29 4.27 8.53a.551.551 0 0 0-.54.94l6.29 5.24a1.994 1.994 0 0 0 3.16-.86 2 2 0 0 0-1.2-2.56M11 0C4.93 0 0 4.93 0 11c0 2.39.77 4.68 2.22 6.6l.3.4h16.96l.3-.4C21.23 15.67 22 13.39 22 11c0-6.07-4.93-11-11-11m7.47 16H3.53C2.53 14.51 2 12.79 2 11c0-4.62 3.51-8.44 8-8.94V3c0 .55.45 1 1 1s1-.45 1-1v-.94c3.21.36 5.9 2.4 7.19 5.23l-.89.29c-.53.17-.81.73-.64 1.26.14.42.53.69.95.69.1 0 .21-.02.31-.05l.9-.29c.12.59.18 1.19.18 1.81 0 1.79-.53 3.51-1.53 5" /></symbol>'});s().add(c);const r=c},84652:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dashboard_add",use:"dashboard_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dashboard_add"><path fill-rule="evenodd" d="M8.594 9.357 3.921 7.721a.342.342 0 0 0-.37.101.322.322 0 0 0 .043.456l3.812 3.106a1.233 1.233 0 0 0 1.268.174 3.318 3.318 0 0 1 .423-1.865 1.19 1.19 0 0 0-.503-.336m-5.121 2.791h5.294c.11.436.304.837.566 1.185H2.861l-.182-.237a6.36 6.36 0 0 1-1.346-3.91c0-3.598 2.988-6.52 6.667-6.52s6.667 2.922 6.667 6.52c0 .048 0 .096-.002.145a3.347 3.347 0 0 0-1.284-1.033 5.11 5.11 0 0 0-.036-.185l-.239.075A3.325 3.325 0 0 0 12.08 8a.586.586 0 0 1 .346-.842l.539-.172a5.454 5.454 0 0 0-4.358-3.1v.557A.601.601 0 0 1 8 5.037a.601.601 0 0 1-.606-.593v-.557c-2.721.297-4.849 2.56-4.849 5.298 0 1.06.322 2.08.928 2.963m5.86-.815a2.666 2.666 0 1 1 5.334 0 2.666 2.666 0 1 1-5.334 0m3.334 2V12H14v-1.333h-1.333V9.333h-1.334v1.334H10V12h1.333v1.333z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},8035:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dashboards",use:"dashboards-usage",viewBox:"0 0 16 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 10" id="dashboards"><path d="M6.27 5.18 3.13 4.6a.436.436 0 0 0-.46.23c-.1.21-.02.47.19.57l2.86 1.42c.07.03.15.06.23.08.47.09.93-.22 1.02-.7a.868.868 0 0 0-.7-1.02M10 0c-.7 0-1.37.13-1.99.35C7.38.13 6.71 0 6 0 2.69 0 0 2.69 0 6c0 1.3.42 2.54 1.22 3.6l.3.4h8.95l.3-.4c.8-1.06 1.22-2.31 1.22-3.6 0-1.51-.57-2.89-1.49-3.95C12.47 2.3 14 3.97 14 6c0 .7-.19 1.39-.55 2h-.76c-.21.71-.54 1.38-.98 2h2.77l.3-.4C15.58 8.54 16 7.29 16 6c0-3.31-2.69-6-6-6m-.55 8h-6.9C2.19 7.39 2 6.7 2 6c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .7-.19 1.39-.55 2" /></symbol>'});s().add(c);const r=c},85095:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"data_retention",use:"data_retention-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="data_retention"><path d="m13.78 4.83-.93-3.46a.75.75 0 1 0-1.45.39l.2.76C10.8 2.2 9.93 2 9 2a6.98 6.98 0 0 0-6.04 3.48l1.11 1.11A5.477 5.477 0 0 1 9 3.5c.78 0 1.52.18 2.2.48l-1.26.34c-.2.05-.36.18-.46.35-.1.17-.13.37-.07.57.11.4.52.64.92.53zM3.53 9.59l.94.94c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L3 6.94.47 9.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.55-.55c.48 3.39 3.38 6 6.9 6.02l.41-1.52c-.13.01-.25.02-.38.02-2.84 0-5.18-2.15-5.48-4.91m10.53 5.11-.75-.2A6.992 6.992 0 0 0 16 9c0-1.27-.34-2.45-.93-3.48l-1.51.4c.59.88.94 1.93.94 3.07 0 1.81-.89 3.41-2.24 4.41l.33-1.25c.05-.2.02-.4-.07-.57-.1-.17-.26-.3-.46-.35a.75.75 0 0 0-.92.53l-.93 3.46 3.46.93a.75.75 0 1 0 .39-1.45" /></symbol>'});s().add(c);const r=c},47307:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"database",use:"database-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="database"><path d="M12 14c5.607 0 10-2.636 10-6s-4.393-6-10-6S2 4.636 2 8s4.393 6 10 6m0-10c4.714 0 8 2.108 8 4s-3.286 4-8 4-8-2.108-8-4 3.286-4 8-4m7.627 13.126C18.644 18.641 15.785 20 12 20c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 16c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98m0-4C18.644 14.641 15.785 16 12 16c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 12c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98" /></symbol>'});s().add(c);const r=c},20599:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"discovered_config",use:"discovered_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="discovered_config"><path fill-rule="evenodd" d="M1 2.933C1 2.418 1.348 2 1.778 2h2.889a1 1 0 0 1 1 1v.633H14a1 1 0 0 1 1 1v7.634c0 .515-.348.933-.778.933H1.778c-.43 0-.778-.418-.778-.933zm8.959 6.334a2.54 2.54 0 0 0 .581-1.616c0-1.445-1.222-2.618-2.728-2.618-1.507 0-2.729 1.173-2.729 2.618 0 1.446 1.222 2.619 2.729 2.619a2.79 2.79 0 0 0 1.684-.558l1.44 1.382a.337.337 0 0 0 .463 0 .305.305 0 0 0 0-.444zm-2.147.165c-1.025 0-1.856-.797-1.856-1.78 0-.984.83-1.781 1.856-1.781 1.024 0 1.855.797 1.855 1.78 0 .984-.83 1.781-1.855 1.781m.144-3.135a1.473 1.473 0 0 0-.703.103 1.413 1.413 0 0 0-.563.418 1.31 1.31 0 0 0-.209 1.307l.426-.152a.89.89 0 0 1 .142-.889.96.96 0 0 1 .383-.284c.15-.062.315-.086.478-.07z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},98411:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"disk",use:"disk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="disk"><path d="M4 13.5h2V12H4zm12.44-3.91-1.82-6.37a2.376 2.376 0 0 0-2.27-1.72h-6.7c-1.05 0-1.98.71-2.27 1.72L1.56 9.59l-.06.2v3.58C1.5 14.82 2.68 16 4.13 16h9.74c1.45 0 2.63-1.18 2.63-2.63V9.79zM15 13.37c0 .62-.51 1.13-1.13 1.13H4.13c-.62 0-1.13-.51-1.13-1.13v-2.62h8.5c.83 0 1.5-.67 1.5-1.5H3.21l1.61-5.62c.11-.37.45-.63.83-.63h6.69c.39 0 .73.26.83.63L15 10z" /></symbol>'});s().add(c);const r=c},79570:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"documentation",use:"documentation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="documentation"><path d="M19.5 16h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5m0 2h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5m2.5-5.7V5.63c0-2-1.63-3.63-3.63-3.63H7C4.24 2 2 4.24 2 7v11c0 .15.03.3.1.43A4.503 4.503 0 0 0 6.5 22H21c.55 0 1-.45 1-1s-.45-1-1-1H6.5a2.5 2.5 0 0 1 0-5h12.8c1.49 0 2.7-1.21 2.7-2.7m-2 0c0 .39-.31.7-.7.7H6.5c-.92 0-1.78.28-2.5.76V7c0-1.65 1.35-3 3-3h11.37c.9 0 1.63.73 1.63 1.63z" /></symbol>'});s().add(c);const r=c},79684:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dots_2x3",use:"dots_2x3-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="dots_2x3"><path d="M1 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m0-4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m4-2c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1m0 6c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1M1 0C.4 0 0 .4 0 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m4 4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1" /></symbol>'});s().add(c);const r=c},4228:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"download",use:"download-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="download"><path d="M18 13v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 16.1V13H0v3.1C0 18.25 1.75 20 3.9 20h12.2c2.15 0 3.9-1.75 3.9-3.9V13zm-8 1.41 5.21-5.21a.996.996 0 1 0-1.41-1.41l-2.8 2.8V1c0-.55-.45-1-1-1S9 .45 9 1v9.59l-2.79-2.8A.996.996 0 1 0 4.8 9.2z" /></symbol>'});s().add(c);const r=c},39088:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dynamic_config",use:"dynamic_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dynamic_config"><path fill-rule="evenodd" d="m14.853 6.35.09.689c.043.333.057.625.057.903s-.021.57-.063.904l-.091.688-.603.34-.315.18c-.07.188-.147.376-.231.557l.098.347.182.667-.42.55c-.21.27-.4.486-.603.687a6.88 6.88 0 0 1-.687.591l-.553.417-.673-.18-.35-.098c-.183.083-.372.16-.56.23l-.183.312-.343.598-.694.09a7.35 7.35 0 0 1-.911.063c-.28 0-.575-.021-.91-.063l-.695-.09-.343-.598-.182-.313a7.882 7.882 0 0 1-.56-.23l-.207.058-.247.43c-.127.218-.28.428-.433.636-.07.095-.14.19-.206.285l-.176-.081c.1-.354.198-.707.292-1.062l-.047.013-.553-.417a6.891 6.891 0 0 1-.694-.598 6.85 6.85 0 0 1-.596-.68l-.42-.55.182-.667.098-.347a7.737 7.737 0 0 1-.23-.556l-.316-.18-.603-.341-.09-.688A7.172 7.172 0 0 1 1 7.942c0-.278.021-.57.063-.903l.091-.688.603-.34.315-.181c.07-.188.147-.376.231-.556l-.098-.348-.182-.667.42-.549c.21-.27.4-.486.603-.688a6.87 6.87 0 0 1 .687-.59l.553-.417.68.18.35.098c.183-.084.372-.16.56-.23l.183-.312.343-.598.694-.09A7.35 7.35 0 0 1 8.007 1c.28 0 .575.02.91.063l.695.09.343.598.182.312c.19.07.378.146.56.23l.351-.098.673-.18.227.17.157-.227.07-.102c.137-.175.287-.342.45-.5.203.08.146.2.098.3-.01.023-.021.045-.028.066l-.041.123-.236.698c.208.166.384.321.55.486.196.195.385.41.596.681l.42.55-.182.666-.098.348c.084.18.16.368.23.556l.316.18zm-2.941-2.4.054.052c.175.174.33.354.476.549l-.238.89c.252.416.435.861.554 1.327l.799.452c.028.236.056.479.056.722s-.028.487-.063.723l-.8.452a5.09 5.09 0 0 1-.553 1.327l.245.882a5.964 5.964 0 0 1-.476.55 5.084 5.084 0 0 1-.554.472l-.89-.236c-.42.25-.868.43-1.338.549l-.455.792a6.307 6.307 0 0 1-.729.056c-.245 0-.49-.021-.729-.056l-.455-.792a5.194 5.194 0 0 1-.953-.345l.685-1.208c.313-.553.626-1.107.94-1.659.09-.164.19-.323.304-.476a.597.597 0 0 1 .322-.223.61.61 0 0 1 .395.016c.066.023.124.059.182.094.046.029.093.058.144.08.092.04.182.081.272.122.31.143.622.286 1.014.345.452-1.868 1.103-3.665 1.79-5.456m-.974-.29a164.6 164.6 0 0 0-1.262 1.874c-.229.347-.46.672-.878.895-.488-.013-.917-.182-1.351-.354-.488-.192-.983-.388-1.577-.367a56.578 56.578 0 0 1-1.153 6.611l-.13.036a5.983 5.983 0 0 1-.553-.473 5.067 5.067 0 0 1-.476-.548l.238-.89a4.896 4.896 0 0 1-.554-1.327l-.799-.452A4.946 4.946 0 0 1 2.45 7.22l.8-.452c.118-.459.3-.904.553-1.327l-.245-.883c.147-.195.308-.375.476-.549.175-.174.357-.327.554-.473l.89.237c.42-.25.868-.431 1.338-.55l.455-.791A6.31 6.31 0 0 1 8 2.376c.245 0 .49.02.729.056l.455.792c.463.118.911.299 1.339.549z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},99464:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"edit",use:"edit-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="edit"><circle cx="8" cy="8" r="8" fill="#536775" /><path fill="#fff" d="M12.23 3.765a2.638 2.638 0 0 0-2.555-.67c-.455.12-.86.38-1.19.715L7.295 5 9.19 6.895c.39.39 1.025.39 1.415 0L8.705 5l.525-.525c.605-.605 1.68-.605 2.29 0 .305.31.475.72.475 1.15 0 .425-.175.845-.475 1.145l-4.76 4.76-.91.13a2.492 2.492 0 0 0-1.505-1.505l.13-.915L7.65 6.065l-.71-.71-3.41 3.41-.47 3.285c-.04.245.04.495.215.67.145.145.345.23.545.23a.82.82 0 0 0 .115-.01l3.295-.47 4.965-4.965c.33-.33.59-.735.71-1.19.25-.935-.01-1.88-.675-2.55M4.09 11.91l.105-.735c.27.14.49.36.63.63z" /></symbol>'});s().add(c);const r=c},37414:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"error",use:"error-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="error"><path fill-rule="evenodd" d="M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z" clip-rule="evenodd" /><mask id="error_a" width="22" height="19" x="1" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z" clip-rule="evenodd" /></mask></symbol>'});s().add(c);const r=c},91423:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"exclamation",use:"exclamation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="exclamation"><path d="m11.865 14.354-.656-4.656V6.546h2.176v3.152l-.624 4.656zm.432 3.552c-.459 0-.79-.106-.992-.32-.203-.213-.304-.485-.304-.816v-.32c0-.33.101-.602.304-.816.203-.213.533-.32.992-.32.448 0 .773.107.976.32.203.214.304.486.304.816v.32c0 .331-.101.603-.304.816-.203.214-.528.32-.976.32" /></symbol>'});s().add(c);const r=c},89875:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"favorites",use:"favorites-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="favorites"><path d="M3 2v11.5l6 3 6-3V2zm7.4 8.43L9 9.69l-1.4.74.27-1.56-1.14-1.11 1.57-.22.7-1.42.7 1.42 1.57.23-1.13 1.11z" /></symbol>'});s().add(c);const r=c},47720:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"feed",use:"feed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="feed"><g clip-path="url(#feed_a)"><path d="M12.12 8C13.16 8 14 7.16 14 6.12V2.88C14 1.84 13.16 1 12.12 1H3.88C2.84 1 2 1.84 2 2.88V10l2-2zM3.5 2.88c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.25c0 .21-.17.38-.38.38H3.5zm1.79.93a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38m2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38M14.12 9H5.88C4.84 9 4 9.84 4 10.88v3.25c0 1.04.84 1.88 1.88 1.88H14l2 2v-7.12C16 9.84 15.16 9 14.12 9m.38 5.5H5.88a.38.38 0 0 1-.38-.38v-3.25c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.63zm-3.21-2.69a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38m2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38" /></g><defs><clipPath id="feed_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'});s().add(c);const r=c},72570:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"filter",use:"filter-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="filter"><path d="M18.467 4.222H5.533c-.722 0-1.31.59-1.31 1.311v3.134l4.444 4.444v6.667h2.222l4.444-3.334v-3.333l4.445-4.444V5.533c0-.722-.59-1.31-1.311-1.31m-.356 3.756-3.956 3.955-.488.49v3.188l-3.334 2.5v-5.689l-.489-.489-3.266-3.266h6.533c.611 0 1.111-.5 1.111-1.111H5.89V5.889H18.11z" /></symbol>'});s().add(c);const r=c},60774:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"filterList",use:"filterList-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="filterList"><path d="m3 5 .5 2h11l.5-2zm4.5 8h3l.5-2H7zm-2-3h7l.5-2H5z" /></symbol>'});s().add(c);const r=c},9232:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"firewall_solid",use:"firewall_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="firewall_solid"><path d="M20 3c-3.71 0-7.52-1.88-7.55-1.89L12 .88l-.45.22C11.52 1.12 7.72 3 4 3H3v7.03c0 5.29 2.94 10.05 7.68 12.42l1.32.66 1-.5V3.51c1.39.55 3.62 1.27 6 1.44v5.07c0 4.3-2.27 8.19-5.97 10.3.12.72.64 1.31 1.32 1.54C18.48 19.35 21 14.91 21 10.01V3z" /></symbol>'});s().add(c);const r=c},3886:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"force_play",use:"force_play-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play"><path d="M15.55 7.95 7.5 2.09a.942.942 0 0 0-1.5.77v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .77.88 1.22 1.5.77l8.05-5.85a1.3 1.3 0 0 0 0-2.11" /></symbol>'});s().add(c);const r=c},24241:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"force_play_outline",use:"force_play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play_outline"><path d="M15.55 7.95 7.5 2.09a.904.904 0 0 0-.55-.18.95.95 0 0 0-.95.95v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .56.46.95.95.95.19 0 .38-.06.55-.18l8.05-5.85a1.3 1.3 0 0 0 0-2.11m-8.05 6.1V3.95L14.45 9z" /></symbol>'});s().add(c);const r=c},22370:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"full_screen",use:"full_screen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="full_screen"><path d="m11.53 7.53 2.97-2.97v2.19a.75.75 0 0 0 1.5 0V3.06l.03-.03L16 3V2h-1l-.03-.03-.03.03h-3.69a.75.75 0 0 0 0 1.5h2.189l-2.97 2.97zm-5.06 2.94L3.5 13.439v-2.19a.75.75 0 0 0-1.5 0v3.69l-.03.03.03.03v1h1l.03.03.03-.03h3.69a.75.75 0 0 0 0-1.5H4.561l2.97-2.97zm.28-6.97a.75.75 0 0 0 0-1.5H3.061l-.03-.03L3 2H2v1l-.03.03.03.03v3.69a.75.75 0 0 0 1.5 0V4.56l2.97 2.97 1.06-1.06L4.561 3.5zM16 11.25a.75.75 0 0 0-1.5 0v2.189l-2.97-2.97-1.06 1.06 2.97 2.97h-2.19a.75.75 0 0 0 0 1.5h3.689l.03.03.03-.03h1v-1l.03-.03-.03-.03z" /></symbol>'});s().add(c);const r=c},41519:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"functions",use:"functions-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="functions"><path d="m7.381 2.268.008-.046-.627-.16c-.623-.16-1.274-.005-1.798.43-.539.445-.893 1.144-.976 1.92l-.079.735h-.473l-.414 1.292h.75L3.497 9l-.412 3.649c-.041.368-.15.72-.316 1.033a2.418 2.418 0 0 1-.604.745L2 15.929l.032.071.474-.309a3.545 3.545 0 0 0 1.176-1.315c.25-.47.412-1 .474-1.554L4.57 9.17l.291-2.73h.95l.385-1.204v-.088H4.998l.061-.57c.044-.414.233-.786.52-1.023a1.07 1.07 0 0 1 .957-.23l.34.088zM9.186 8.598l1.276 2.144-1.276 2.145.88.75 1.058-1.78 1.06 1.78.88-.75-1.277-2.145 1.276-2.144-.88-.75-1.059 1.78-1.059-1.78zM6.234 9.733c.258-1.79 1.133-3.25 1.863-4.062l.153.198v1.53a6.684 6.684 0 0 0-.952 2.554c-.171 1.187-.004 2.576.952 4.01v1.5l-.16.2c-1.724-1.989-2.121-4.095-1.856-5.93M14.062 15.665c.73-.81 1.605-2.272 1.863-4.061.265-1.835-.132-3.941-1.856-5.93l-.16.2v1.5c.955 1.433 1.123 2.823.952 4.01a6.685 6.685 0 0 1-.953 2.554v1.53z" /></symbol>'});s().add(c);const r=c},58609:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"github",use:"github-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="github"><path fill-rule="evenodd" d="M12 3a9 9 0 0 0-2.845 17.54c.45.083.614-.195.614-.434 0-.213-.007-.78-.012-1.53-2.503.543-3.031-1.207-3.031-1.207-.41-1.04-1-1.317-1-1.317-.817-.558.062-.547.062-.547.903.064 1.378.928 1.378.928.803 1.375 2.107.978 2.62.747.082-.58.314-.977.571-1.202-1.998-.227-4.1-1-4.1-4.448 0-.983.351-1.787.927-2.415-.093-.228-.402-1.144.089-2.382 0 0 .755-.242 2.474.922.718-.2 1.488-.3 2.253-.303a8.63 8.63 0 0 1 2.253.303c1.719-1.164 2.473-.922 2.473-.922.491 1.238.182 2.154.09 2.382.577.628.925 1.432.925 2.415 0 3.457-2.105 4.218-4.11 4.44.323.278.611.828.611 1.667 0 1.203-.01 2.174-.01 2.47 0 .24.162.52.618.432A9 9 0 0 0 12 3" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},10237:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"go_to_node",use:"go_to_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="go_to_node"><path d="M13.5 11.57c0 1.07-.86 1.93-1.93 1.93H6.43c-1.07 0-1.93-.86-1.93-1.93V6.43c0-1.07.86-1.93 1.93-1.93h.07C7.33 4.5 8 3.83 8 3H6.43C4.54 3 3 4.54 3 6.43v5.14C3 13.47 4.54 15 6.43 15h5.14c1.9 0 3.43-1.54 3.43-3.43V10c-.83 0-1.5.67-1.5 1.5zM10 3c-.41 0-.75.34-.75.75s.34.75.75.75h2.44L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l3.47-3.47V8c0 .41.34.75.75.75S15 8.41 15 8V3z" /></symbol>'});s().add(c);const r=c},78057:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"google",use:"google-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="google"><path fill-rule="evenodd" d="M20.64 12.205c0-.639-.057-1.252-.164-1.841H12v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 21c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H3.957v2.332A8.997 8.997 0 0 0 12 21" clip-rule="evenodd" /><path fill-rule="evenodd" d="M6.964 13.71A5.41 5.41 0 0 1 6.682 12c0-.593.102-1.17.282-1.71V7.958H3.957A8.997 8.997 0 0 0 3 12c0 1.452.348 2.827.957 4.042z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 6.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C16.463 3.891 14.426 3 12 3a8.997 8.997 0 0 0-8.043 4.958l3.007 2.332C7.672 8.163 9.656 6.58 12 6.58" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},7351:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"group_by",use:"group_by-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="group_by"><path d="M3.5 12H2v4h4v-1.5H3.5zM6 12h2v-2H6zM3.5 3.5H6V2H2v4h1.5zM12 6h-2v2h2zm2.5 8.5H12V16h4v-4h-1.5zM12 2v1.5h2.5V6H16V2zm0 8h-2v2h2zM6 8h2V6H6z" /></symbol>'});s().add(c);const r=c},24229:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"h1",use:"h1-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="h1"><path d="M6.25 1.5h1v3.75h-4.5V1.5h1V0H.25v1.5h1v9h-1V12h3.5v-1.5h-1V6.75h4.5v3.75h-1V12h3.5v-1.5h-1v-9h1V0h-3.5zM13 11V6h-1.5v1h.5v4h-1v1h3v-1z" /></symbol>'});s().add(c);const r=c},25094:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"h2",use:"h2-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="h2"><path d="M6.25 1.5h1v3.75h-4.5V1.5h1V0H.25v1.5h1v9h-1V12h3.5v-1.5h-1V6.75h4.5v3.75h-1V12h3.5v-1.5h-1v-9h1V0h-3.5zm5.9 9.06 1.41-1.41c.28-.28.44-.66.44-1.06V7.5c0-.83-.67-1.5-1.5-1.5S11 6.67 11 7.5V8h1v-.5c0-.28.22-.5.5-.5s.5.22.5.5v.59c0 .13-.05.26-.15.35l-1.41 1.41c-.28.28-.44.66-.44 1.06V12h3v-1h-2v-.09c0-.13.05-.26.15-.35" /></symbol>'});s().add(c);const r=c},89513:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"hamburger",use:"hamburger-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="hamburger"><path d="M3 13h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2M3 7h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2M3 19h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2" /></symbol>'});s().add(c);const r=c},41517:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"help",use:"help-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="help"><path d="M10 12.2c-.72 0-1.3.58-1.3 1.3 0 .72.58 1.3 1.3 1.3.72 0 1.3-.58 1.3-1.3 0-.72-.58-1.3-1.3-1.3M13 0c-1.2 0-2.27.54-3 1.38C9.27.54 8.2 0 7 0H0v19h7c1.1 0 2 .9 2 2h2c0-1.1.9-2 2-2h7V0zm5 17h-5c-1.2 0-2.27.54-3 1.38C9.27 17.54 8.2 17 7 17H2V2h5a2 2 0 0 1 1.72 1h2.56A2 2 0 0 1 13 2h5zM10.88 5.13C8.85 4.54 7 6.06 7 8h2c0-.55.45-1 1-1s1 .45 1 1c0 .37-.21.71-.54.89-.9.47-1.46 1.45-1.46 2.55h2c0-.34.16-.65.39-.77 1.3-.68 1.96-2.21 1.43-3.72a2.915 2.915 0 0 0-1.94-1.82" /></symbol>'});s().add(c);const r=c},27612:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"hide",use:"hide-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="hide"><path d="M12 11c1.1 0 2-.9 2-2 0-.86-.54-1.58-1.3-1.87l-1.4 3.73c.22.09.45.14.7.14m-.47-8.73a.94.94 0 1 0-1.76-.66L9.25 3H6C2.69 3 0 5.69 0 9c0 2.9 2.06 5.32 4.8 5.88l-.32.86a.94.94 0 1 0 1.76.66L11.25 3zM7.49 7.68A1.98 1.98 0 0 0 6 7c-1.1 0-2 .9-2 2s.9 2 2 2c.09 0 .17-.01.26-.03l-.92 2.46C3.17 13.11 1.5 11.25 1.5 9c0-2.48 2.02-4.5 4.5-4.5h2.69zm6.61-4.29-.52 1.41A4.49 4.49 0 0 1 16.5 9c0 2.48-2.02 4.5-4.5 4.5h-1.69L9.75 15H12c3.31 0 6-2.69 6-6 0-2.57-1.62-4.76-3.9-5.61" /></symbol>'});s().add(c);const r=c},5048:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"highlight_area",use:"highlight_area-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="highlight_area"><g clip-path="url(#highlight_area_a)"><path d="M10 13h2v2h1v-2h2v-1h-2v-2h-1v2h-2zM6 13h2v-1H6zM4 13v-1H2v-2H1v2a1 1 0 0 0 1 1zM12 8h1V6h-1zM12 2v2h1V2a1 1 0 0 0-1-1h-2v1zM1 8h1V6H1zM6 2h2V1H6zM2 4V2h2V1H2a1 1 0 0 0-1 1v2z" /></g><defs><clipPath id="highlight_area_a"><path d="M0 0h16v16H0z" /></clipPath></defs></symbol>'});s().add(c);const r=c},11862:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"holder",use:"holder-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="holder"><path d="m12 10 3 4H9z" /></symbol>'});s().add(c);const r=c},949:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"importExport",use:"importExport-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="importExport"><path d="m10.5 7.06 2.03-2.03c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.22.22V2h-1.5v2.19l-.22-.22a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06zM4.53 5.03l.22-.22V7h1.5V4.81l.22.22c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L5.5 1.94 3.47 3.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0M12.65 8h-9.3C2.6 8 2 8.6 2 9.35v3.3C2 13.4 2.6 14 3.35 14h9.3c.75 0 1.35-.6 1.35-1.35v-3.3C14 8.6 13.4 8 12.65 8M5.5 12H4v-1.5h1.5z" /></symbol>'});s().add(c);const r=c},61898:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"incident_manager",use:"incident_manager-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="incident_manager"><path d="M9 10.3c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2m-.13-.68c.41.07.81-.2.88-.62l.36-2c.02-.12.02-.26 0-.39C10 6 9.41 5.59 8.8 5.7c-.61.11-1.02.69-.91 1.3l.36 2c.05.31.29.56.62.62m5.95-5.48L10.3 1.53A2.56 2.56 0 0 0 9 1.18c-.46 0-.91.12-1.3.35L3.18 4.14c-.8.46-1.3 1.33-1.3 2.25v5.22c0 .93.5 1.79 1.3 2.25l4.52 2.61c.39.23.84.35 1.3.35.46 0 .91-.12 1.3-.35l4.52-2.61c.8-.46 1.3-1.33 1.3-2.25V6.39c0-.92-.5-1.79-1.3-2.25m-.2 7.47c0 .39-.21.76-.55.95l-4.52 2.61a1.084 1.084 0 0 1-1.1 0l-4.52-2.61c-.34-.2-.55-.56-.55-.95V6.39c0-.39.21-.76.55-.95l4.52-2.61a1.084 1.084 0 0 1 1.1 0l4.52 2.61c.34.2.55.56.55.95z" /></symbol>'});s().add(c);const r=c},92949:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"information_press",use:"information_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information_press"><path d="M9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714M9 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m2 6.503c0 .688-.558 1.247-1.247 1.247H7v-.211c0-.698.557-1.26 1.25-1.281V9.5H7A1.5 1.5 0 0 1 8.5 8h1.25v3.25H11z" /></symbol>'});s().add(c);const r=c},78131:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"insights",use:"insights-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="insights"><path d="M.5 6.25h1.559a7.037 7.037 0 0 0-.011 1.5H2a1.5 1.5 0 0 1-1.5-1.5M1.541 11.145zl1.293-.875c.235.443.511.862.836 1.246l-.046.031a1.5 1.5 0 0 1-2.082-.401M2.382 1.614l1.284.869a7.025 7.025 0 0 0-.85 1.236l-.033-.022a1.5 1.5 0 0 1-.401-2.083M14.337 2.481l1.281-.867a1.5 1.5 0 0 1-.401 2.083l-.036.025a7.03 7.03 0 0 0-.844-1.241M6.119 6.163C5.893 6.969 5 7 5 7a4 4 0 0 1 4-4v1a2.99 2.99 0 0 0-2.881 2.163" /><path d="M7.615.645A6.508 6.508 0 0 1 15.5 7c0 2.236-1.15 4.29-3 5.472v1.122A2.91 2.91 0 0 1 9.594 16.5H8.406A2.91 2.91 0 0 1 5.5 13.594v-1.121a6.521 6.521 0 0 1-2.902-6.611c.444-2.586 2.46-4.683 5.017-5.217M11 13.594v-2.016A4.998 4.998 0 0 0 9 2c-.353 0-.713.036-1.079.113-1.955.408-3.507 2.033-3.845 4.002-.405 2.358.85 4.463 2.779 5.385H10A1.5 1.5 0 0 1 8.5 13H7v.594C7 14.371 7.63 15 8.406 15h1.188C10.37 15 11 14.371 11 13.594M14.377 11.546l-.042-.029a7.01 7.01 0 0 0 .846-1.239l1.279.866-.001.001a1.499 1.499 0 0 1-2.082.401M16 7c0-.253-.016-.503-.042-.75H17.5a1.5 1.5 0 0 1-1.5 1.5h-.046A6.91 6.91 0 0 0 16 7" /></symbol>'});s().add(c);const r=c},64197:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"integrations",use:"integrations-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="integrations"><path d="M15.03 3.97a.754.754 0 0 0-1.06 0l-1.94 1.94-1.94-1.94 1.94-1.94c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L9.03 2.91 7.5 1.38 4.75 4.13c-.81.8-1.25 1.88-1.25 3.02v.23l-.27.27C2.04 8.83 1.96 10.7 2.94 12l-1.47 1.47c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L4 13.06c.57.44 1.27.68 2 .68.89 0 1.72-.35 2.35-.97l.27-.27h.23c1.14 0 2.21-.44 3.02-1.25l2.75-2.75-1.53-1.53 1.94-1.94c.29-.29.29-.77 0-1.06m-4.22 6.22c-.52.52-1.22.81-1.96.81H8l-.71.71a1.8 1.8 0 0 1-1.29.53c-.47 0-.93-.18-1.29-.53l-.42-.42c-.71-.71-.71-1.87 0-2.58l.18-.18.94.94c.59.59 1.54.59 2.12 0L5.02 6.96c.05-.66.32-1.29.79-1.77L7.5 3.5l5 5z" /></symbol>'});s().add(c);const r=c},11336:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aws_sns",use:"aws_sns-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="aws_sns"><g clip-path="url(#aws_sns_a)"><g clip-path="url(#aws_sns_b)"><path fill="#737373" d="m9.27 21.754-2.478-.694-2.344-2.673 2.931-.08zm-5.73-1.762-1.395-.39-1.318-1.504 1.601-.263z" /><path fill="#565656" d="m0 17.91 1.425.289.207-.364V5.485l-.207-.24L0 6.059z" /><path fill="#fff" stroke="#565656" d="m2.662 17.839-.166-.242-.292.027-.278.026V5.877L6.43 6.933v10.299l-1.944.18-.283.027-.122.256-.622 1.301z" /><path fill="#565656" d="m3.184 18.576 2.443.492.16-.379V3.511l-.16-.343-2.443 1.238z" /><path fill="#fff" stroke="#565656" d="m7.65 18.574-.173-.247-.3.038-1.05.135V3.853l12.942 4.155v8.827l-8.258 1.063-.27.034-.117.246-1.237 2.588z" /><path fill="#737373" d="m17.047 24.047-3.522-.986-3.329-3.797 4.316-.044z" /><path fill="#565656" d="m8.399 19.59 3.593.696.28-.24V.386l-.28-.386L8.4 1.797z" /><path fill="#fff" stroke="#565656" d="m19.47 18.278.017.451-.37-.176-2.152 4.506-2.444-3.485-.187-.267-.32.064-1.52.305V.81L23.5 6.313V17.47z" /></g></g><defs><clipPath id="aws_sns_a"><path fill="#fff" d="M0 0h24v24H0z" /></clipPath><clipPath id="aws_sns_b"><path fill="#fff" d="M0 0h24v24.096H0z" /></clipPath></defs></symbol>'});s().add(c);const r=c},27555:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"aws_sns_colored",use:"aws_sns_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="aws_sns_colored"><g clip-path="url(#aws_sns_colored_a)"><g clip-path="url(#aws_sns_colored_b)"><path fill="#995B80" d="m9.27 21.754-2.478-.694-2.344-2.673 2.931-.08zm-5.73-1.762-1.395-.39-1.318-1.504 1.601-.263z" /><path fill="#7B3F65" d="m0 17.91 1.425.289.207-.364V5.485l-.207-.24L0 6.059z" /><path fill="#C17B9D" d="m6.931 6.536-5.505-1.29v12.953l.825-.077 1.288 1.87.994-2.082 2.398-.223z" /><path fill="#7B3F65" d="m3.184 18.576 2.443.492.16-.379V3.511l-.16-.343-2.443 1.238z" /><path fill="#C17B9D" d="M19.569 7.643 5.627 3.168v15.9l1.614-.207 2.029 2.893 1.605-3.36 8.694-1.12z" /><path fill="#995B80" d="m17.047 24.047-3.522-.986-3.329-3.797 4.316-.044z" /><path fill="#7B3F65" d="m8.399 19.59 3.593.696.28-.24V.386l-.28-.386L8.4 1.797z" /><path fill="#C17B9D" d="M24 6.004 11.993.001v20.285l2.119-.425 2.935 4.186 2.522-5.279h-.002L24 17.88z" /></g></g><defs><clipPath id="aws_sns_colored_a"><path fill="#fff" d="M0 0h24v24H0z" /></clipPath><clipPath id="aws_sns_colored_b"><path fill="#fff" d="M0 0h24v24.096H0z" /></clipPath></defs></symbol>'});s().add(c);const r=c},9080:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"discord",use:"discord-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="discord"><path d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22M8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22" /><path fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2m10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},56851:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"discord_colored",use:"discord_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="discord_colored"><path fill="#7289DA" d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22M8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22" /><path fill="#7289DA" fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2m10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},49232:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"email",use:"email-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="email"><path d="M18.177 9.974c-1.233.83-2.487 1.624-3.748 2.407L18.5 16.5l-5.341-3.335c-.258.158-.514.32-.773.478l-.385.235-.386-.235c-.259-.157-.515-.319-.774-.478L5.5 16.5l4.07-4.119a119.756 119.756 0 0 1-3.748-2.406l-1.421-.962A3.167 3.167 0 0 1 4 8.699v7.12A2.18 2.18 0 0 0 6.181 18H17.82A2.18 2.18 0 0 0 20 15.82V8.696a3.03 3.03 0 0 1-.402.315zM4.907 8.171l1.517.801c1.889 1.003 3.737 2.074 5.576 3.161 1.84-1.085 3.688-2.156 5.577-3.159l1.517-.801c.4-.17.636-.43.749-.794A2.177 2.177 0 0 0 17.819 6H6.18c-.919 0-1.702.57-2.023 1.375.113.366.349.625.75.796M17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3M21.5 15.82a3.684 3.684 0 0 1-3.68 3.68H6.181A3.685 3.685 0 0 1 2.5 15.819V8.18A3.684 3.684 0 0 1 6.18 4.5h11.639A3.685 3.685 0 0 1 21.5 8.181z" /></symbol>'});s().add(c);const r=c},32824:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"email_colored",use:"email_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="email_colored"><path fill="#49B5E6" d="M17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3" /><path fill="#fff" d="M17.819 4.5H6.18A3.684 3.684 0 0 0 2.5 8.18v7.639A3.685 3.685 0 0 0 6.181 19.5H17.82a3.684 3.684 0 0 0 3.68-3.68V8.181A3.685 3.685 0 0 0 17.819 4.5M6.18 6h11.639c.92 0 1.704.572 2.024 1.378-.113.365-.349.624-.749.794l-1.517.801C15.688 9.976 13.84 11.047 12 12.132c-1.839-1.087-3.687-2.158-5.576-3.161L4.907 8.17c-.4-.17-.637-.43-.749-.796A2.177 2.177 0 0 1 6.18 6M20 15.82A2.18 2.18 0 0 1 17.82 18H6.181A2.18 2.18 0 0 1 4 15.819v-7.12c.138.129.284.238.401.314l1.421.962c1.233.83 2.487 1.623 3.748 2.406L5.5 16.5l5.341-3.335c.259.158.515.32.774.478l.386.235.385-.235c.259-.158.515-.319.773-.478L18.5 16.5l-4.071-4.119a122.86 122.86 0 0 0 3.748-2.407l1.421-.962c.118-.077.264-.187.402-.315z" /></symbol>'});s().add(c);const r=c},86294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mattermost",use:"mattermost-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 700" id="mattermost"><path fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419" clip-rule="evenodd" /><path fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},92605:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mattermost_colored",use:"mattermost_colored-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 700 700" id="mattermost_colored"><path fill="#0058CC" fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419" clip-rule="evenodd" /><path fill="#0058CC" fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},35813:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mobile_app_colored",use:"mobile_app_colored-usage",viewBox:"0 0 25 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24" id="mobile_app_colored"><path fill="#00CD51" d="m22.84 7.67-.09-.09V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H6.68a3.93 3.93 0 0 0-3.93 3.93v14.14A3.93 3.93 0 0 0 6.68 23h7.14a3.93 3.93 0 0 0 3.93-3.93V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22M12.25 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09h2.58c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06 1.92-.37 3.6 1.09 3.6 2.94v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});s().add(c);const r=c},16912:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"opsgenie",use:"opsgenie-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="opsgenie"><path d="M7.97 7.825a3.12 3.12 0 1 0 0-6.242 3.12 3.12 0 0 0 0 6.242" /><path d="M10.858 12.258a14.347 14.347 0 0 0 2.48-3.266.174.174 0 0 0-.021-.22.175.175 0 0 0-.067-.043l-2.567-1.341c-.116-.059-.233-.03-.262.058a10.441 10.441 0 0 1-2.45 2.887A10.88 10.88 0 0 1 5.55 7.446a.204.204 0 0 0-.262-.058L2.72 8.729a.175.175 0 0 0-.088.263 15.167 15.167 0 0 0 2.45 3.266h.059a13.04 13.04 0 0 0 2.829 2.159 12.482 12.482 0 0 0 2.858-2.13h.03z" /></symbol>'});s().add(c);const r=c},76107:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"opsgenie_colored",use:"opsgenie_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="opsgenie_colored"><path fill="url(#opsgenie_colored_a)" d="M8 7.982A3.491 3.491 0 1 0 8 1a3.491 3.491 0 0 0 0 6.982" /><path fill="url(#opsgenie_colored_b)" d="M7.702 14.906a16.84 16.84 0 0 1-5.528-5.779.391.391 0 0 1 .17-.542l2.644-1.297a.391.391 0 0 1 .51.156 13.07 13.07 0 0 0 5.676 5.137 16.925 16.925 0 0 1-2.877 2.325.561.561 0 0 1-.595 0" /><path fill="#2684FF" d="M8.297 14.906a16.83 16.83 0 0 0 5.529-5.779.391.391 0 0 0-.169-.542l-2.645-1.297a.391.391 0 0 0-.511.156 13.064 13.064 0 0 1-5.675 5.137c.87.879 1.835 1.658 2.876 2.325a.561.561 0 0 0 .595 0" /><defs><linearGradient id="opsgenie_colored_a" x1="589.669" x2="589.669" y1="233.534" y2="1669.91" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".82" stop-color="#0052CC" /></linearGradient><linearGradient id="opsgenie_colored_b" x1="486.022" x2="888.127" y1="436.972" y2="1041.77" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".62" stop-color="#0052CC" /></linearGradient></defs></symbol>'});s().add(c);const r=c},88909:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pagerduty",use:"pagerduty-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pagerduty"><path d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2M9.821 18.667H7.897v-3.59H9.82zm3.269-5.257H7.897V5.333h5.192a4.038 4.038 0 0 1 .001 8.077M12.577 7H9.821v4.744h2.756a2.372 2.372 0 0 0 0-4.744" /></symbol>'});s().add(c);const r=c},45266:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pagerduty_colored",use:"pagerduty_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="pagerduty_colored"><path fill="#04AC38" d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2" /><path fill="#fff" d="M13.09 5.333H7.897v8.077h5.192a4.038 4.038 0 0 0 .001-8.077m-.513 6.41H9.821V7h2.756a2.372 2.372 0 0 1 0 4.744m-4.68 6.924H9.82v-3.59H7.897z" /></symbol>'});s().add(c);const r=c},47217:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"push_notifications",use:"push_notifications-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="push_notifications"><path d="M20.09 6.67 20 6.58V5c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48C12.35.19 11.73 0 11.07 0H3.93A3.93 3.93 0 0 0 0 3.93v14.14A3.93 3.93 0 0 0 3.93 22h7.14A3.93 3.93 0 0 0 15 18.07V13h-2.69C10.06 13 8.08 11.28 8 9.03c-.04-1.05.32-2.05 1-2.84V5c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22M9.5 18c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H14c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C16.32 1.69 18 3.15 18 5v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});s().add(c);const r=c},70762:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"rocketChat",use:"rocketChat-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="rocketChat"><path d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817m-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81m9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667M12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68m-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799" /></symbol>'});s().add(c);const r=c},68081:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"rocketChat_colored",use:"rocketChat_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="rocketChat_colored"><path fill="#fff" d="M1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.432.375.822.2 1.293-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.073-.975 1.617-2.184 1.35-3.668-.248-1.367-1.093-2.312-2.224-3.02C10.935 3.218 8.98 2.94 6.938 3.17c-.372.041-.64 0-.946-.255C4.566 1.718 2.535 1.498 1 2.338" /><path fill="#DC2928" d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817m-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81m9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667M12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68m-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799" /></symbol>'});s().add(c);const r=c},90728:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"slack",use:"slack-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="slack"><path d="M22.483 9.243a2.203 2.203 0 0 0-2.205-2.205 2.203 2.203 0 0 0-2.205 2.205v2.206h2.205c1.22 0 2.205-.986 2.205-2.206m-20.966 5.53c0 1.219.986 2.205 2.205 2.205a2.203 2.203 0 0 0 2.205-2.205v-2.206H3.722a2.204 2.204 0 0 0-2.205 2.206m7.718-2.205a2.204 2.204 0 0 0-2.205 2.206v5.513c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206v-5.513c0-1.22-.985-2.206-2.205-2.206m5.53-1.12a2.204 2.204 0 0 0 2.205-2.205v-5.53c0-1.22-.986-2.205-2.205-2.205a2.204 2.204 0 0 0-2.205 2.206v5.529c0 1.22.985 2.206 2.205 2.206m-5.53-4.41h-5.53A2.203 2.203 0 0 0 1.5 9.243c0 1.22.986 2.206 2.205 2.206h5.53a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205m11.06 5.53h-5.53a2.204 2.204 0 0 0-2.205 2.206c0 1.219.986 2.205 2.205 2.205h5.53a2.203 2.203 0 0 0 2.205-2.205c0-1.22-.986-2.206-2.205-2.206m-5.53 5.513H12.56v2.205c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205M9.235 1.508A2.204 2.204 0 0 0 7.03 3.714c0 1.219.986 2.205 2.205 2.205h2.205V3.714c0-1.22-.985-2.206-2.205-2.206" /></symbol>'});s().add(c);const r=c},52547:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"slack_colored",use:"slack_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="slack_colored"><path fill="#E0225B" d="M5.927 14.773c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h2.205zm1.103 0c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205v5.513c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205z" /><path fill="#39C5EF" d="M9.235 5.919A2.203 2.203 0 0 1 7.03 3.714c0-1.22.986-2.205 2.205-2.205s2.205.986 2.205 2.205v2.205zm0 1.119c1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-5.53A2.203 2.203 0 0 1 1.5 9.243c0-1.22.986-2.205 2.205-2.205z" /><path fill="#2FB77E" d="M18.073 9.243c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-2.205zm-1.103 0c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205v-5.53c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205z" /><path fill="#EBB22D" d="M14.765 18.08c1.22 0 2.205.987 2.205 2.206 0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205V18.08zm0-1.101a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h5.53c1.22 0 2.205.986 2.205 2.205 0 1.22-.986 2.205-2.205 2.205z" /></symbol>'});s().add(c);const r=c},50199:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"splunk-black",use:"splunk-black-usage",viewBox:"0 0 122 36",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 122 36" id="splunk-black"><desc>An information technology company based in California, United States</desc><path fill="#0C1724" d="M12.93 21.8c0 .802-.17 1.547-.509 2.236-.339.68-.82 1.264-1.423 1.736-.612.481-1.338.849-2.177 1.113-.838.264-1.762.396-2.76.396-1.198 0-2.272-.16-3.214-.49-.942-.321-1.894-.868-2.846-1.623l1.574-2.557c.754.632 1.432 1.094 2.045 1.387a4.223 4.223 0 0 0 1.866.434c.782 0 1.404-.198 1.885-.604.48-.406.707-.943.707-1.632 0-.292-.047-.566-.132-.82-.085-.256-.245-.52-.471-.793a6.406 6.406 0 0 0-.952-.878 46.597 46.597 0 0 0-1.555-1.17c-.48-.34-.96-.698-1.423-1.057a11.538 11.538 0 0 1-1.263-1.17 5.337 5.337 0 0 1-.914-1.396 4.318 4.318 0 0 1-.348-1.755c0-.754.16-1.453.47-2.076s.745-1.15 1.292-1.594c.546-.443 1.197-.783 1.969-1.028a8.105 8.105 0 0 1 2.497-.367c.951 0 1.866.122 2.75.377a9.265 9.265 0 0 1 2.47 1.113l-1.423 2.302c-.97-.68-1.998-1.028-3.072-1.028-.65 0-1.197.17-1.621.51s-.641.764-.641 1.282c0 .49.188.934.565 1.321.377.397 1.027.934 1.951 1.651.933.68 1.706 1.283 2.31 1.792.612.51 1.092 1 1.45 1.453.358.453.594.906.735 1.377.142.481.208.99.208 1.557zm16.16-4.311c0 .708-.075 1.472-.226 2.292a7.877 7.877 0 0 1-.754 2.274c-.358.698-.82 1.274-1.395 1.717-.575.453-1.31.68-2.186.68-1.47 0-2.629-.586-3.477-1.765-.848-1.17-1.272-2.783-1.272-4.83 0-2.104.424-3.764 1.291-5 .858-1.236 2.026-1.849 3.496-1.849 1.395 0 2.497.585 3.307 1.736.81 1.16 1.216 2.745 1.216 4.745zm5.107-.18c0-1.367-.198-2.612-.584-3.725-.396-1.123-.942-2.085-1.668-2.896-.726-.812-1.574-1.434-2.563-1.887s-2.082-.68-3.28-.68c-1.318 0-2.477.255-3.476.746-.999.5-1.932 1.283-2.78 2.358l-.028-2.67h-4.702v27.44h4.693v-11.59c.461.537.904.99 1.338 1.358.424.368.857.67 1.3.896.442.226.904.396 1.394.49.49.095 1.018.142 1.574.142a8.317 8.317 0 0 0 3.486-.745c1.074-.5 2.007-1.198 2.789-2.104s1.395-1.962 1.838-3.16c.452-1.208.669-2.538.669-3.972zm2.092 9.539h4.824V-.002h-4.824zm25.4.01V8.537h-4.824v9.857c0 .877-.038 1.557-.113 2.038a5.384 5.384 0 0 1-.368 1.302c-.678 1.51-1.932 2.274-3.75 2.274-1.423 0-2.412-.51-2.978-1.538a3.92 3.92 0 0 1-.461-1.32c-.085-.491-.132-1.199-.132-2.133V8.538h-4.824v10.41c0 .708.01 1.311.019 1.792a12.567 12.567 0 0 0 .264 2.312c.056.292.15.575.273.84.443 1.123 1.15 1.972 2.139 2.547.99.575 2.205.858 3.637.858 1.29 0 2.43-.226 3.41-.68s1.933-1.188 2.856-2.216l.01 2.453 4.842.01zm20.79-.01v-10.39c0-.708-.01-1.311-.019-1.811-.01-.5-.037-.934-.094-1.302a8.874 8.874 0 0 0-.18-.963c-.075-.283-.16-.556-.254-.82-.442-1.094-1.15-1.943-2.139-2.538s-2.205-.897-3.647-.897c-1.29 0-2.43.227-3.41.68s-1.933 1.198-2.856 2.217l-.009-2.453h-4.853v18.28h4.862v-9.868c0-.85.028-1.52.094-1.991.057-.472.18-.916.349-1.34.31-.736.8-1.283 1.451-1.66s1.423-.566 2.327-.566c1.423 0 2.412.509 2.978 1.538.217.386.367.83.452 1.31.085.482.132 1.199.132 2.124v10.43l4.815.01zm19.96-1.208-7.349-9.142 6.209-6.66-3.656-1.575-6.464 7.5h-.509V.003h-4.862v26.85h4.862v-9.726l7.274 10.09zm18.79-6.566v-2.991l-14.62-7.34v3.292l11.33 5.519-11.33 5.594v3.217l14.62-7.292zm-13.2-15.08c-.895 0-1.621.736-1.621 1.642 0 .924.726 1.65 1.621 1.65.905 0 1.621-.726 1.621-1.65a1.62 1.62 0 0 0-1.621-1.642m.01.254c.725 0 1.309.623 1.309 1.396 0 .774-.584 1.396-1.309 1.387-.735 0-1.32-.613-1.32-1.396 0-.764.585-1.387 1.32-1.387m-.311 1.557h.197c.236 0 .349.085.396.321.038.246.085.406.123.463h.311c-.029-.057-.076-.17-.113-.453-.038-.274-.142-.415-.311-.444v-.019c.198-.056.358-.207.358-.443 0-.17-.057-.302-.17-.377-.113-.085-.292-.142-.565-.142-.217 0-.368.019-.518.047v1.83h.292zm0-.849c.047-.01.113-.019.207-.019.33 0 .443.16.443.321 0 .227-.208.312-.443.312h-.207z" /></symbol>'});s().add(c);const r=c},20002:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"teams",use:"teams-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="teams"><path d="M10.246 6.112c.154.001.306-.03.447-.09.277-.118.496-.338.614-.614a1.156 1.156 0 0 0-1.063-1.6 1.109 1.109 0 0 0-.444.09c-.105.045-.138.103-.282.173v1.778c.145.071.177.128.282.174.141.06.293.09.446.089m1.873 1.454v3.469h.578c.199-.001.397-.019.592-.056.196-.034.385-.1.56-.195.165-.09.308-.216.418-.368a.957.957 0 0 0 .165-.575V7.566zm-2.602 4.387c.145.031.197.056.299.07.113.016.226.024.339.025.175-.001.35-.019.521-.056.175-.035.342-.1.494-.193.149-.092.275-.217.368-.366.103-.173.153-.373.145-.575V6.844H9.517zm2.939-5.455a1.158 1.158 0 0 0 1.263.247 1.16 1.16 0 0 0 .614-.614 1.16 1.16 0 0 0 0-.896 1.16 1.16 0 0 0-.614-.614 1.157 1.157 0 0 0-1.51 1.51c.059.137.143.261.247.367M1.567 13.059l7.516 1.301V1.64L1.567 2.941zm2.024-7.305 3.469-.211v.867l-1.301.058v3.794l-.867-.051v-3.71l-1.301.052z" /></symbol>'});s().add(c);const r=c},67977:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"teams_colored",use:"teams_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="teams_colored"><path fill="#5558AF" d="M12.457 6.498a1.158 1.158 0 0 0 1.263.247 1.16 1.16 0 0 0 .614-.614 1.16 1.16 0 0 0 0-.896 1.16 1.16 0 0 0-.614-.614 1.16 1.16 0 0 0-.896 0 1.16 1.16 0 0 0-.614.614 1.16 1.16 0 0 0 .247 1.263m-.337 1.068v3.469h.578c.199-.001.397-.019.592-.056.196-.035.385-.1.56-.196.165-.09.308-.216.418-.368a.957.957 0 0 0 .165-.575V7.566zm-1.874-1.454c.153.001.306-.03.447-.09.277-.118.496-.338.614-.614a1.156 1.156 0 0 0-1.063-1.6 1.117 1.117 0 0 0-.445.09c-.105.045-.138.103-.282.173v1.777c.145.071.177.129.282.173.142.062.294.092.447.091m-.728 5.841c.145.031.197.056.299.07.112.016.226.024.339.025.175-.001.35-.019.521-.056.175-.035.342-.1.494-.193a1.12 1.12 0 0 0 .368-.366c.103-.173.153-.373.145-.575V6.844H9.518zm-7.951 1.106 7.516 1.301V1.64L1.567 2.941z" /><path fill="#fff" fill-rule="evenodd" d="m7.06 5.543-3.469.21v.8l1.301-.051v3.71l.867.05V6.468L7.06 6.41z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},70009:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"telegram",use:"telegram-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="telegram"><path d="M12 1.4C6.146 1.4 1.4 6.146 1.4 12c0 5.854 4.746 10.6 10.6 10.6 5.854 0 10.6-4.746 10.6-10.6 0-5.854-4.746-10.6-10.6-10.6M9.892 16.394c-.031.029-.053.042-.058.049a.282.282 0 0 1-.047-.064 1.067 1.067 0 0 1-.07-.159l-.106-.324c-.054-.185-.108-.37-.167-.553l-.112-.356a40.337 40.337 0 0 0-.19-.589c-.107-.32-.201-.645-.296-.969l-.062-.213c.207-.122.408-.253.609-.384l4.47-2.85-2.861 2.571c-.242.216-.482.434-.722.652l-.135.126c-.068.064-.136.129-.207.189-.105.089-.156.19-.153.303.003.112.06.211.17.294l1.305.995zm6.54-4.969c-.007.033-.01.067-.014.1l-.29 1.405c-.21 1.01-.42 2.021-.655 3.026-.06.258-.11.519-.164.779-.192.484-.676.632-1.067.331-.833-.641-1.668-1.279-2.502-1.92-.03-.023-.06-.047-.098-.053-.01-.016-.014-.036-.027-.046a89.258 89.258 0 0 0-.61-.466c-.295-.226-.591-.452-.888-.676-.082-.062-.09-.112-.006-.183.12-.102.232-.215.349-.321.239-.217.479-.435.72-.651.4-.358.804-.713 1.205-1.072.27-.244.538-.493.809-.738.433-.39.868-.778 1.302-1.167.176-.158.352-.317.532-.471.098-.084.142-.189.095-.261-.053-.08-.138-.081-.27-.004a.088.088 0 0 1-.01.006c-.681.435-1.363.871-2.045 1.305l-3.238 2.06c-.361.23-.714.473-1.09.682-.311-.126-.635-.217-.953-.326-.541-.183-1.083-.363-1.624-.544a1.28 1.28 0 0 1-.263-.128c-.16-.1-.254-.231-.217-.43.006-.016.01-.031.017-.046l.06-.111a1.04 1.04 0 0 1 .342-.214c.616-.266 1.227-.541 1.845-.802a138.131 138.131 0 0 1 3.716-1.497c.404-.156.813-.301 1.218-.458.783-.302 1.57-.591 2.359-.878.279-.101.56-.199.838-.303.27-.101.542-.201.826-.271.293-.071.579.058.52.473-.19 1.301-.476 2.582-.722 3.87" /></symbol>'});s().add(c);const r=c},65550:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"telegram_colored",use:"telegram_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="telegram_colored"><path fill="#33A7DC" d="M22.6 12c0 5.854-4.746 10.6-10.6 10.6-5.854 0-10.6-4.746-10.6-10.6C1.4 6.146 6.146 1.4 12 1.4c5.854 0 10.6 4.746 10.6 10.6" /><path fill="#fff" fill-rule="evenodd" d="m5.429 11.617.059-.11a1.04 1.04 0 0 1 .342-.215c.616-.265 1.227-.54 1.845-.802a126.34 126.34 0 0 1 3.716-1.495c.404-.156.813-.302 1.218-.458.783-.302 1.57-.59 2.359-.878.279-.1.56-.199.838-.303.272-.1.543-.2.826-.27.293-.073.579.057.52.472-.187 1.3-.474 2.58-.72 3.87-.007.032-.01.066-.014.1l-.29 1.403c-.21 1.011-.42 2.021-.655 3.026-.06.258-.11.52-.164.78-.192.483-.676.631-1.067.33l-2.502-1.919c-.03-.023-.06-.047-.098-.053-.01-.016-.014-.036-.027-.046-.202-.157-.406-.312-.61-.467-.295-.226-.591-.452-.888-.676-.082-.062-.09-.112-.006-.182.12-.102.232-.215.349-.32.239-.219.479-.436.72-.652.4-.358.804-.713 1.205-1.073.27-.244.538-.493.809-.738.433-.39.868-.778 1.302-1.167.176-.158.352-.317.532-.47.098-.085.142-.19.095-.262-.053-.08-.138-.08-.27-.004l-.01.006-2.045 1.305-3.238 2.06c-.361.23-.714.473-1.09.682-.311-.127-.635-.218-.953-.325-.541-.183-1.083-.363-1.624-.545a1.23 1.23 0 0 1-.263-.128c-.16-.1-.254-.23-.217-.43z" clip-rule="evenodd" /><path fill="#CADFED" fill-rule="evenodd" d="M8.47 13.091c.376-.209.728-.452 1.09-.682l3.238-2.06 2.046-1.305.01-.006c.13-.077.216-.076.269.004.047.071.003.177-.095.261-.18.154-.356.313-.532.471-.434.388-.87.777-1.302 1.167-.271.245-.538.494-.81.738-.4.36-.803.714-1.204 1.073-.241.216-.48.433-.72.651-.117.106-.228.22-.35.321-.083.071-.075.12.007.182.298.224.593.451.889.676.203.155.406.31.609.467.013.01.018.031.027.046-.007.046-.047.067-.076.094a245.895 245.895 0 0 1-1.493 1.4c-.202.187-.38.16-.515-.078-.055-.095-.086-.2-.131-.299-.078-.263-.151-.527-.235-.788-.101-.314-.196-.629-.301-.942-.154-.459-.281-.927-.42-1.39" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},40483:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"webhook",use:"webhook-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="webhook"><path d="M4.34 17.025c.247 1.325 1.453 2.139 2.69 1.815 1.314-.344 2.012-1.611 1.517-2.912-.18-.472-.068-.773.156-1.144.874-1.444 1.73-2.9 2.624-4.401-2.082-1.044-2.843-2.43-2.34-4.124.443-1.494 1.938-2.472 3.46-2.242.759.114 1.427.426 1.947 1.018.788.898.965 1.947.725 3.115.639.173 1.22.33 1.798.488.766-2.101-.133-4.555-2.094-5.814a5.148 5.148 0 0 0-6.422.674C7.495 4.39 7 5.478 6.885 6.738c-.163 1.782.573 3.22 1.81 4.45l-1.966 3.3c-.182.013-.293.015-.401.03-1.294.184-2.204 1.334-1.987 2.507m17.924-2.384c-.866-1.898-3.281-3.67-6.483-2.68l-1.902-3.355c.098-.246.189-.447.259-.655.252-.745.1-1.424-.378-2.028a2.185 2.185 0 0 0-2.474-.675 2.195 2.195 0 0 0-1.401 2.15c.039.964.685 1.824 1.687 1.998.6.104.894.388 1.16.879.789 1.456 1.619 2.89 2.434 4.337 1.965-1.31 3.59-1.268 4.804.096a3.21 3.21 0 0 1 .052 4.19c-1.198 1.415-2.813 1.47-4.658.276L13.898 20.4c1.868 1.865 4.536 2.113 6.645.66 2.052-1.412 2.767-4.127 1.72-6.42M15.85 18.3a2.18 2.18 0 0 0 3.068.106c.904-.84.945-2.25.09-3.127-.835-.858-2.265-.94-3.041-.031-.472.552-.955.617-1.581.607-1.603-.025-3.208-.008-4.811-.008.104 2.256-.748 3.662-2.44 3.995-1.656.327-3.181-.518-3.718-2.06-.61-1.752.144-3.153 2.324-4.265l-.494-1.791c-2.375.518-4.157 2.822-3.973 5.415.163 2.289 2.009 4.32 4.267 4.686a5.146 5.146 0 0 0 3.448-.614c1.375-.78 2.173-2.007 2.543-3.527h3.855c.163.22.295.435.463.614" /></symbol>'});s().add(c);const r=c},47676:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"webhook_colored",use:"webhook_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="webhook_colored"><path fill="#C73A63" d="M11.327 10.383c-.894 1.502-1.75 2.957-2.624 4.4-.224.372-.336.674-.156 1.145.495 1.302-.203 2.568-1.516 2.912-1.238.324-2.444-.49-2.69-1.814-.217-1.173.694-2.323 1.987-2.506.108-.015.219-.017.4-.031l1.968-3.3C7.458 9.96 6.722 8.52 6.885 6.739 7 5.478 7.495 4.39 8.4 3.498a5.148 5.148 0 0 1 6.422-.674c1.96 1.26 2.859 3.714 2.094 5.814l-1.798-.488c.24-1.168.063-2.216-.725-3.115-.52-.593-1.188-.904-1.947-1.02-1.522-.23-3.017.749-3.46 2.243-.504 1.696.258 3.08 2.34 4.125" /><path fill="#4B4B4B" d="m13.879 8.606 1.902 3.355c3.202-.991 5.617.782 6.483 2.68 1.046 2.293.33 5.008-1.724 6.422-2.11 1.452-4.776 1.204-6.645-.661l1.466-1.227c1.846 1.195 3.46 1.139 4.658-.276a3.21 3.21 0 0 0-.052-4.19c-1.214-1.364-2.84-1.406-4.804-.096-.815-1.446-1.644-2.88-2.434-4.337-.266-.491-.56-.776-1.16-.88-1.002-.174-1.648-1.034-1.687-1.998a2.194 2.194 0 0 1 1.4-2.15 2.184 2.184 0 0 1 2.475.675c.478.604.63 1.284.378 2.028-.068.208-.158.409-.256.655" /><path fill="#4A4A4A" d="M15.383 17.686h-3.855c-.37 1.52-1.168 2.747-2.543 3.527a5.144 5.144 0 0 1-3.448.614c-2.258-.364-4.104-2.397-4.267-4.685-.184-2.593 1.598-4.897 3.974-5.415l.494 1.79c-2.18 1.113-2.934 2.514-2.324 4.266.537 1.542 2.062 2.387 3.718 2.06 1.69-.334 2.544-1.74 2.44-3.995 1.603 0 3.208-.017 4.81.008.627.01 1.11-.055 1.582-.607.777-.908 2.206-.826 3.042.032a2.183 2.183 0 0 1-.091 3.127 2.181 2.181 0 0 1-3.068-.106c-.165-.181-.298-.395-.464-.616" /></symbol>'});s().add(c);const r=c},6232:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"internal_config",use:"internal_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="internal_config"><path d="m7.222 1.002-.126.015-.694.091-.343.605-.182.316c-.19.07-.378.148-.56.232l-.351-.098-.68-.183-.553.422c-.274.21-.49.4-.687.597a6.93 6.93 0 0 0-.603.696l-.42.556.182.675.098.351a7.887 7.887 0 0 0-.23.562l-.316.183-.603.345-.09.696A7.339 7.339 0 0 0 1 7.977c0 .28.021.576.063.914l.091.696.603.344.315.183c.07.19.147.38.231.562l-.098.352-.182.675.42.555c.21.274.4.492.596.69.203.203.42.393.694.604l.553.422.673-.183.35-.099c.182.085.372.162.56.232l.183.317.343.604.694.092c.336.042.63.063.911.063.28 0 .575-.021.91-.063l.695-.092.343-.604.182-.317c.19-.07.378-.147.56-.232l.351.099.673.183.553-.422c.274-.211.49-.401.687-.598.203-.204.392-.422.603-.696l.42-.555-.182-.675-.098-.352c.084-.183.16-.372.23-.562l.316-.183.603-.344.09-.696c.043-.338.064-.633.064-.914 0-.282-.014-.577-.056-.914l-.091-.696-.603-.345-.315-.183c-.07-.19-.147-.38-.231-.562l.098-.351.182-.675-.42-.556c-.21-.274-.4-.492-.596-.689a6.929 6.929 0 0 0-.694-.604l-.553-.422-.673.183-.35.098a7.834 7.834 0 0 0-.56-.232l-.183-.316-.343-.605-.694-.091A10.28 10.28 0 0 0 8.778 1v4.274c.441.127.858.365 1.205.713.362.363.61.805.733 1.287h.006l-.004.006a2.857 2.857 0 0 1-.001.002l-2.461 3.495L8 11.14l-.256-.363-2.466-3.503h1.944v-2z" /><path d="M10.715 7.274a2.813 2.813 0 0 0-1.937-2v2z" /></symbol>'});s().add(c);const r=c},21489:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ipNetworking",use:"ipNetworking-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworking"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.3-.6-.4h-.1c-.2-.1-.4-.2-.6-.2h-.1c-.2-.1-.4-.1-.7-.1h-.3C9.4 3.8 8 3 6.5 3 4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3M10.5 11h-4C4.6 11 3 9.4 3 7.5S4.6 4 6.5 4c1.1 0 2 .5 2.7 1.3-.7.2-1.3.8-1.7 1.4l.9.5c.3-.5.8-.9 1.4-1.1.1 0 .2 0 .2-.1h.5c.2 0 .4 0 .5.1h.1c.1 0 .3.1.4.1h.1c.1.1.3.2.4.3.1.1.3.2.4.4.4.4.6 1 .6 1.6 0 1.4-1.1 2.5-2.5 2.5" /></symbol>'});s().add(c);const r=c},82118:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ipNetworkingPress",use:"ipNetworkingPress-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworkingPress"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.2-.5-.3 0 0-.1 0-.1-.1-.2-.1-.4-.1-.6-.2h-.1c-.3-.1-.5-.1-.8-.1h-.2c-1.2.1-2.2.7-2.7 1.7l-.9-.5c.6-1 1.6-1.8 2.8-2.1-.8-.7-1.8-1.1-3-1.1C4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3" /></symbol>'});s().add(c);const r=c},64739:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"last_week",use:"last_week-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="last_week"><path d="M10.75 11.083 9 8.75l-1.75 2.333V5.5h-1.5v7.25h2.125L9 11.25l1.125 1.5h2.125V5.5h-1.5zM11.562 2H6.438A4.438 4.438 0 0 0 2 6.438v5.124A4.438 4.438 0 0 0 6.438 16h5.124A4.438 4.438 0 0 0 16 11.562V6.438A4.438 4.438 0 0 0 11.562 2m2.938 9.562a2.941 2.941 0 0 1-2.938 2.938H6.438A2.941 2.941 0 0 1 3.5 11.562V6.438A2.941 2.941 0 0 1 6.438 3.5h5.124A2.941 2.941 0 0 1 14.5 6.438z" /></symbol>'});s().add(c);const r=c},27703:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"line_chart",use:"line_chart-usage",viewBox:"0 0 15 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" id="line_chart"><path d="M14 3.24A3.24 3.24 0 0 0 10.76 0H3.24A3.24 3.24 0 0 0 0 3.24v7.53a3.24 3.24 0 0 0 3.24 3.24h7.53a3.24 3.24 0 0 0 3.24-3.24V6.48c-.42.32-.94.52-1.5.52v3.76c0 .96-.78 1.74-1.74 1.74H3.24c-.96 0-1.74-.78-1.74-1.74V10C2.33 10 3 9.33 3 8.5c0-.23-.06-.45-.15-.64l1.01-1.01c.2.09.41.15.64.15.36 0 .69-.13.95-.35L8.03 8.2A1.498 1.498 0 0 0 9.5 10a1.498 1.498 0 0 0 1.25-2.33l1.31-1.74c.14.04.29.07.44.07.83 0 1.5-.67 1.5-1.5v-.01zm-2.75 2.09L9.94 7.07C9.8 7.03 9.65 7 9.5 7c-.36 0-.69.13-.95.35L5.97 5.8A1.498 1.498 0 0 0 4.5 4C3.67 4 3 4.67 3 5.5c0 .23.06.45.15.64L2.14 7.15C1.94 7.06 1.73 7 1.5 7V3.24c0-.96.78-1.74 1.74-1.74h7.53c.88 0 1.6.66 1.71 1.5a1.5 1.5 0 0 0-1.23 2.33" /></symbol>'});s().add(c);const r=c},76415:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"logo_s",use:"logo_s-usage",viewBox:"0 0 14 13",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 13" id="logo_s"><path fill-rule="evenodd" d="M8.393 12.804H5.64L0 .882h8.007c3.113.007 5.636 2.77 5.637 6.177-.005 3.176-2.353 5.745-5.251 5.745" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},16933:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"logs",use:"logs-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="logs"><path d="M2 9.601c0-.276.252-.5.563-.5h10.875c.31 0 .562.224.562.5s-.252.5-.562.5H2.563c-.311 0-.563-.224-.563-.5M2 11.601c0-.276.252-.5.563-.5h7.874c.311 0 .563.224.563.5s-.252.5-.562.5H2.561c-.31 0-.562-.224-.562-.5M2 13.601c0-.276.252-.5.563-.5h4.874c.311 0 .563.224.563.5s-.252.5-.562.5H2.563c-.311 0-.563-.224-.563-.5M5.33 3.153a.527.527 0 0 0-.73-.013L2.37 5.225a.49.49 0 0 0-.153.423.487.487 0 0 0 .213.562l2.626 1.616a.522.522 0 0 0 .706-.158.488.488 0 0 0-.154-.686l-2.19-1.348L5.318 3.86a.49.49 0 0 0 .013-.707M8.7 3.254a.527.527 0 0 1 .728-.013l2.23 2.085a.49.49 0 0 1 .154.423.488.488 0 0 1-.212.562L8.974 7.927a.522.522 0 0 1-.706-.158.488.488 0 0 1 .153-.686l2.19-1.348-1.898-1.774a.49.49 0 0 1-.013-.707" /></symbol>'});s().add(c);const r=c},5820:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"long_arrow_up",use:"long_arrow_up-usage",viewBox:"0 0 10 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 14" id="long_arrow_up"><path d="M.97 4.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l2.22-2.22V13c0 .41.34.75.75.75s.75-.34.75-.75V3.31l2.22 2.22c.29.29.77.29 1.06 0 .15-.15.22-.34.22-.53s-.07-.38-.22-.53L5 .44z" /></symbol>'});s().add(c);const r=c},72085:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"magnify",use:"magnify-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="magnify"><path fill-rule="evenodd" d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},40235:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"metrics",use:"metrics-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="metrics"><path d="M21.83 5.64C21.29 3.55 19.41 2 17.16 2H6.84C4.17 2 2 4.17 2 6.84v6.94c-.61.55-1 1.34-1 2.22 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.46-.11-.89-.3-1.29l1.01-1.01c.39.19.82.3 1.29.3.87 0 1.65-.38 2.2-.97l1.82.78c0 .06-.02.12-.02.19 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.67-.23-1.29-.61-1.79l.88-1.31c.24.06.48.1.73.1 1.65 0 3-1.35 3-3 0-.96-.46-1.81-1.17-2.36M4 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m5-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m7 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m1-7c0 .67.23 1.29.61 1.79l-.87 1.31c-.24-.06-.48-.1-.73-.1-.87 0-1.65.38-2.2.97l-1.82-.78c0-.06.02-.12.02-.19 0-1.65-1.35-3-3-3s-3 1.35-3 3c0 .46.11.89.3 1.29L5.29 13.3C4.9 13.11 4.47 13 4 13V6.84C4 5.27 5.28 4 6.84 4h10.31c.89 0 1.68.42 2.2 1.07C18.01 5.37 17 6.57 17 8m3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m0 8.16c0 1.57-1.28 2.84-2.84 2.84H6.84c-.46 0-.89-.12-1.28-.32-.48.2-1.01.32-1.56.32-.42 0-.83-.08-1.21-.21A4.84 4.84 0 0 0 6.84 22h10.31c2.67 0 4.84-2.17 4.84-4.84v-5.72c-.59.35-1.27.56-2 .56v5.16z" /></symbol>'});s().add(c);const r=c},81199:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"metrics_explorer",use:"metrics_explorer-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="metrics_explorer"><path d="M11.5 7.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88m.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H4.38c-.48 0-.88-.39-.88-.88V8.14l1.67 1.11 1.02.68 1.5-1.5c.99.96 2.32 1.57 3.81 1.57 2.7 0 4.93-1.94 5.4-4.5A5.497 5.497 0 0 0 11.5 1C8.81 1 6.57 2.94 6.1 5.5c.12.63.34 1.22.65 1.75L6 8 3 6H2v7.62A2.38 2.38 0 0 0 4.38 16h9.24A2.38 2.38 0 0 0 16 13.62V11l-1.17-.73c-.87.24-1.81.27-2.74.06M11.5 2.5c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3" /></symbol>'});s().add(c);const r=c},95546:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"minimize_s",use:"minimize_s-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="minimize_s"><path d="M14 14H4c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1" /></symbol>'});s().add(c);const r=c},40852:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mobile_push_notifications",use:"mobile_push_notifications-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications"><path d="M22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22M11.5 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});s().add(c);const r=c},43902:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mobile_push_notifications_hollow",use:"mobile_push_notifications_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications_hollow"><path d="M11.5 19h-4c-.28 0-.5.22-.5.5s.22.5.5.5h4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5M22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2v5.07c0 1.06-.87 1.93-1.93 1.93H5.93C4.87 21 4 20.13 4 19.07V4.93C4 3.87 4.87 3 5.93 3h7.09c-.63.84-1.03 1.87-1.03 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12.01-.84-.31-1.63-.9-2.22M19.88 11h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});s().add(c);const r=c},21674:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"monitoring",use:"monitoring-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="monitoring"><path d="m13.5 9.38-2 4-.69-1.38H4v1h6.19l1.31 2.62 2-4 .69 1.38H16v-1h-1.19zM15.87 0H4.13C1.85 0 0 1.85 0 4.13v11.74C0 18.15 1.85 20 4.13 20h11.74c2.28 0 4.13-1.85 4.13-4.13V4.13C20 1.85 18.15 0 15.87 0M18 15.87c0 1.17-.96 2.13-2.13 2.13H4.13C2.96 18 2 17.04 2 15.87V4.13C2 2.96 2.96 2 4.13 2h11.74C17.04 2 18 2.96 18 4.13zM9.5 4.38l-2 4L6.81 7H4v1h2.19l1.31 2.62 2-4L10.19 8H16V7h-5.19z" /></symbol>'});s().add(c);const r=c},1279:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"more",use:"more-usage",viewBox:"0 0 18 4",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 4" id="more"><path d="M14 2a2 2 0 1 0 4.001-.001A2 2 0 0 0 14 2m-3 0a2 2 0 1 0-4.001.001A2 2 0 0 0 11 2M4 2a2 2 0 1 0-4.001.001A2 2 0 0 0 4 2" /></symbol>'});s().add(c);const r=c},5057:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nav_arrow_goto",use:"nav_arrow_goto-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="nav_arrow_goto"><path d="M8.5 7.6c0 .5-.4.9-.9.9H2.4c-.5 0-.9-.4-.9-.9V2.4c0-.5.4-.9.9-.9h.1C3.33 1.5 4 .83 4 0H2.4A2.4 2.4 0 0 0 0 2.4v5.2A2.4 2.4 0 0 0 2.4 10h5.2A2.4 2.4 0 0 0 10 7.6V6c-.83 0-1.5.67-1.5 1.5zM5.75 0C5.34 0 5 .34 5 .75s.34.75.75.75h1.69L3.97 4.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L8.5 2.56v1.69c0 .41.34.75.75.75s.75-.34.75-.75V0z" /></symbol>'});s().add(c);const r=c},1498:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nav_dots",use:"nav_dots-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="nav_dots"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2" /></symbol>'});s().add(c);const r=c},34111:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"netdata-press",use:"netdata-press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="netdata-press"><path fill-rule="evenodd" d="M10.535 2H.158l7.311 14h3.567c3.756 0 6.8-3.017 6.806-6.746C17.84 5.251 14.571 2.007 10.535 2" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},96317:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"netdata",use:"netdata-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="netdata"><g clip-path="url(#netdata_a)"><path d="M13.645 4.5H2.526l7.833 15h3.822c4.025 0 7.286-3.232 7.293-7.228-.002-4.288-3.505-7.764-7.83-7.772m.536 13.125h-2.685L5.62 6.375h8.021c3.283.006 5.956 2.652 5.957 5.894-.004 2.954-2.435 5.356-5.417 5.356" /></g><defs><clipPath id="netdata_a"><path d="M2 5.2c0-1.12 0-1.68.218-2.108a2 2 0 0 1 .874-.874C3.52 2 4.08 2 5.2 2h13.6c1.12 0 1.68 0 2.108.218a2 2 0 0 1 .874.874C22 3.52 22 4.08 22 5.2v13.6c0 1.12 0 1.68-.218 2.108a2 2 0 0 1-.874.874C20.48 22 19.92 22 18.8 22H5.2c-1.12 0-1.68 0-2.108-.218a2 2 0 0 1-.874-.874C2 20.48 2 19.92 2 18.8z" /></clipPath></defs></symbol>'});s().add(c);const r=c},51991:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"netdataAssistant",use:"netdataAssistant-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="netdataAssistant"><path fill-rule="evenodd" d="M8.302 2.5H1l5.788 11.1h2.8L6.2 6.3h2.102zm1.902 11.068L9.45 8.85h1.85L9.06 2.5h.155c3.195.006 5.783 2.578 5.785 5.751-.005 2.758-2.101 5.024-4.796 5.317" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},85903:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"networking_stack",use:"networking_stack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="networking_stack"><path d="m2.94 9.26 3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.82-.47 1.31-1.32 1.31-2.27s-.49-1.8-1.31-2.27l-3.73-2.15c-.71-.41-1.53-.63-2.35-.63-.82 0-1.64.22-2.35.63L2.94 4.72c-.82.47-1.31 1.32-1.31 2.27s.49 1.79 1.31 2.27m.75-3.24 3.69-2.13c.5-.29 1.05-.43 1.6-.43s1.11.14 1.6.43l3.73 2.15c.75.43.75 1.51 0 1.94l-3.69 2.13c-.5.29-1.05.43-1.6.43s-1.11-.14-1.6-.43L3.69 7.96c-.75-.43-.75-1.51 0-1.94m3.46 1.8c.72.41 1.88.42 2.59 0 .27-.15 1.06-.61 1.29-.75.48-.27.47-.72-.01-1s-1.25-.28-1.73 0c-.42.24-.45.62-.12.89-.11-.04-.21-.09-.31-.14-.38-.22-.56-.51-.53-.8-.44.01-.87.11-1.2.3-.7.41-.7 1.08.02 1.5m8.26 4.07-3.69 2.13a5.43 5.43 0 0 1-5.4 0l-3.73-2.15c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.33-.56.61-.94.83m0-2-3.69 2.13a5.43 5.43 0 0 1-5.4 0L2.59 9.86c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.34-.56.62-.94.84" /></symbol>'});s().add(c);const r=c},4344:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node",use:"node-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node"><path fill-rule="evenodd" d="M19.111 9H4.89A.885.885 0 0 0 4 9.875v5.25c0 .481.4.875.889.875H19.11a.885.885 0 0 0 .889-.875v-5.25c0-.481-.4-.875-.889-.875M7.556 14.25c-.978 0-1.778-.787-1.778-1.75 0-.962.8-1.75 1.778-1.75.977 0 1.777.788 1.777 1.75 0 .963-.8 1.75-1.777 1.75" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},18647:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node_child",use:"node_child-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_child"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35M5 13.5H3.5V12H5z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9m-.01 5.49 12.99.01v-3.99l-.01-.01H2.51z" /></symbol>'});s().add(c);const r=c},30983:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node_default_l",use:"node_default_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_default_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#979797" rx="7.5" /><path fill="#35414A" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088m1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549m-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09m10.766 2.254c.369 0 .716.09 1.022.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034m-.177 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},16410:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node_hollow",use:"node_hollow-usage",viewBox:"0 0 22 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 12" id="node_hollow"><path d="M5 7H3v2h2zm14.97-7H2.03C.91 0 0 .91 0 2.03v7.94C0 11.09.91 12 2.03 12h17.94c1.12 0 2.03-.91 2.03-2.03V2.03C22 .91 21.09 0 19.97 0M20 9.97c0 .02-.01.03-.03.03L2 9.97 2.03 2 20 2.03z" /></symbol>'});s().add(c);const r=c},57013:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node_import_export",use:"node_import_export-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node_import_export"><path d="m7 11.41 3.71-3.71A.996.996 0 1 0 9.3 6.29L8 7.59V2H6v5.59l-1.29-1.3A.996.996 0 1 0 3.3 7.7zm7.71-4.7L16 5.41V11h2V5.41l1.29 1.29c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L17 1.59 13.29 5.3a.996.996 0 0 0 0 1.41c.39.39 1.03.39 1.42 0M7 17H5v2h2zm13.61-4H3.39C2.62 13 2 13.62 2 14.39v6.22c0 .77.62 1.39 1.39 1.39h17.22c.77 0 1.39-.62 1.39-1.39v-6.22c0-.77-.62-1.39-1.39-1.39M20 20H4v-5h16z" /></symbol>'});s().add(c);const r=c},34031:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node_notification_l",use:"node_notification_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_notification_l"><rect width="39" height="39" x=".5" y=".5" fill="#00AB44" stroke="#00AB4E" rx="7.5" /><path fill="#fff" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088m1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549m-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09m10.766 2.254c.369 0 .716.09 1.022.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034m-.177 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},55703:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node_parent",use:"node_parent-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_parent"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35M5 13.5H3.5V12H5z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9m-.01 5.49 12.99.01v-3.99l-.01-.01H2.51z" /></symbol>'});s().add(c);const r=c},12501:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"node_selected_l",use:"node_selected_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_selected_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#00AB4E" rx="7.5" /><path fill="#00AB44" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088m1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549m-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09m10.766 2.254c.369 0 .716.09 1.022.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034m-.177 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},43947:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nodes",use:"nodes-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="nodes"><path d="M15.111 8.889H.89c-.489 0-.889.4-.889.889v5.333C0 15.6.4 16 .889 16H15.11c.489 0 .889-.4.889-.889V9.778c0-.49-.4-.89-.889-.89M3.556 14.222c-.978 0-1.778-.8-1.778-1.778 0-.977.8-1.777 1.778-1.777.977 0 1.777.8 1.777 1.777 0 .978-.8 1.778-1.777 1.778M15.11 0H.89C.4 0 0 .4 0 .889v5.333c0 .49.4.89.889.89H15.11c.489 0 .889-.4.889-.89V.89C16 .4 15.6 0 15.111 0M3.556 5.333c-.978 0-1.778-.8-1.778-1.777 0-.978.8-1.778 1.778-1.778.977 0 1.777.8 1.777 1.778 0 .977-.8 1.777-1.777 1.777" /></symbol>'});s().add(c);const r=c},52059:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nodes_hollow",use:"nodes_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nodes_hollow"><path d="M2.5 15.5H4V14H2.5zM15.88 0H2.12C.95 0 0 .95 0 2.12v4.26C0 7.55.95 8.5 2.12 8.5h13.76c1.17 0 2.12-.95 2.12-2.12V2.12C18 .95 17.05 0 15.88 0m.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62V2.12c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62zM2.5 6H4V4.5H2.5zm13.38 3.5H2.12C.95 9.5 0 10.45 0 11.62v4.26C0 17.05.95 18 2.12 18h13.76c1.17 0 2.12-.95 2.12-2.12v-4.26c0-1.17-.95-2.12-2.12-2.12m.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62v-4.26c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62z" /></symbol>'});s().add(c);const r=c},68705:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nodes_update",use:"nodes_update-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="nodes_update"><rect width="40" height="40" fill="#F9A825" rx="20" /><path fill="#FFF8E1" d="M20 10.285c-5.356 0-9.715 4.358-9.715 9.715s4.359 9.715 9.715 9.715 9.715-4.358 9.715-9.715-4.36-9.715-9.715-9.715m0 4.382a1.334 1.334 0 1 1-.001 2.668 1.334 1.334 0 0 1 0-2.668m2.666 8.67c0 .918-.744 1.663-1.662 1.663h-3.67v-.281c0-.93.742-1.679 1.666-1.708v-2.344h-1.667a2 2 0 0 1 2-2H21V23h1.666z" /></symbol>'});s().add(c);const r=c},9150:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"none_selected",use:"none_selected-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="none_selected"><path d="M8 .5C3.86.5.5 3.86.5 8c0 4.14 3.36 7.5 7.5 7.5 4.14 0 7.5-3.36 7.5-7.5C15.5 3.86 12.14.5 8 .5M2 8c0-3.31 2.69-6 6-6 1.39 0 2.66.47 3.67 1.26l-8.41 8.41A5.926 5.926 0 0 1 2 8m6 6c-1.39 0-2.66-.47-3.67-1.26l8.41-8.41A5.926 5.926 0 0 1 14 8c0 3.31-2.69 6-6 6" /></symbol>'});s().add(c);const r=c},29921:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"notification",use:"notification-usage",viewBox:"0 0 40 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 24" id="notification"><path fill-rule="evenodd" d="M28 24c6.627 0 12-5.373 12-12S34.627 0 28 0 16 5.373 16 12s5.373 12 12 12" clip-rule="evenodd" /><path stroke="#fff" d="M23.5 12c0 6.351-5.149 11.5-11.5 11.5S.5 18.351.5 12 5.649.5 12 .5 23.5 5.649 23.5 12Z" /><path d="M14.718 15H9.459v-.897l2.606-2.841c.375-.42.642-.768.8-1.048.16-.283.241-.565.241-.848 0-.373-.105-.673-.316-.903-.208-.229-.49-.343-.844-.343-.422 0-.75.129-.983.386-.232.258-.349.61-.349 1.058H9.31c0-.476.107-.904.322-1.283.219-.383.528-.68.93-.892.404-.211.87-.317 1.396-.317.76 0 1.357.192 1.794.575.44.38.66.906.66 1.58 0 .39-.11.8-.332 1.23-.219.425-.579.91-1.08 1.455l-1.912 2.046h3.63zM26.969 10.494h.795c.4-.004.718-.108.95-.312.237-.204.355-.5.355-.886 0-.372-.099-.66-.296-.865-.193-.208-.49-.311-.891-.311-.351 0-.64.102-.865.306-.226.2-.338.463-.338.79h-1.305c0-.402.105-.767.316-1.096.215-.33.512-.586.892-.768.383-.187.811-.28 1.284-.28.78 0 1.393.197 1.837.591.447.39.671.935.671 1.633 0 .35-.113.682-.338.994-.222.308-.51.54-.865.698.43.147.755.378.977.693.226.315.339.69.339 1.128 0 .701-.242 1.26-.725 1.675-.48.416-1.112.623-1.896.623-.752 0-1.368-.2-1.848-.601-.48-.401-.72-.935-.72-1.6h1.306c0 .343.114.622.343.837.233.215.544.322.935.322.404 0 .723-.107.956-.322.233-.215.349-.526.349-.934 0-.412-.122-.73-.365-.951-.244-.222-.605-.333-1.085-.333h-.768z" /></symbol>'});s().add(c);const r=c},45753:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"notification_shortcut_disabled",use:"notification_shortcut_disabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_disabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78M5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7" /><path fill="#F59B9B" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5z" /></symbol>'});s().add(c);const r=c},74480:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"notification_shortcut_enabled",use:"notification_shortcut_enabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_enabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78M5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7" /><path fill="#96D4A2" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5z" /></symbol>'});s().add(c);const r=c},89336:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"notification_trigger",use:"notification_trigger-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="notification_trigger"><path d="M10 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1M6.89 3.92l-.58-1.39A7.03 7.03 0 0 0 2.54 6.3l1.39.58c.55-1.33 1.62-2.4 2.96-2.96M6.5 9c0-.17.02-.33.05-.49l-1.47-.29C5.03 8.47 5 8.73 5 9c0 2.21 1.79 4 4 4 .27 0 .53-.03.78-.08l-.29-1.47A2.5 2.5 0 0 1 6.5 9m4.61 5.08.58 1.39a7.03 7.03 0 0 0 3.77-3.77l-1.39-.58a5.502 5.502 0 0 1-2.96 2.96M9 14.5A5.51 5.51 0 0 1 3.5 9c0-.37.04-.73.11-1.08l-1.47-.29C2.05 8.07 2 8.53 2 9c0 3.87 3.13 7 7 7 .47 0 .93-.05 1.37-.14l-.29-1.47c-.35.07-.71.11-1.08.11M9 2c-.47 0-.93.05-1.37.14l.29 1.47c.35-.07.71-.11 1.08-.11 3.03 0 5.5 2.47 5.5 5.5 0 .37-.04.73-.11 1.08l1.47.29c.09-.44.14-.9.14-1.37 0-3.87-3.13-7-7-7m2.45 7.49 1.47.29c.05-.25.08-.52.08-.78 0-2.21-1.79-4-4-4-.27 0-.53.03-.78.08l.29 1.47a2.5 2.5 0 0 1 2.94 2.94" /></symbol>'});s().add(c);const r=c},3599:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"alpine_linux",use:"alpine_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alpine_linux"><path d="M13.04 2H4.96L.92 9l4.04 7h8.08l4.04-7zm-6.41 8.78c-.44-.02-.84-.21-1.13-.5l1.13-1.1zm3.32-.49L7.52 7.93l-2.44 2.36c-.62.6-1.61.6-2.23 0l4.67-4.52 4.67 4.52c-.62.6-1.61.6-2.24 0m2.85.04-2.02-1.96-.17.17-1.13-1.08 1.29-1.25 4.26 4.12c-.62.61-1.61.61-2.23 0" /></symbol>'});s().add(c);const r=c},61386:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"amazon_linux",use:"amazon_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="amazon_linux"><path d="m15.95 11.99-.01.01c-.23.19-.53.34-.83.46-.31.12-.63.21-.95.3-.65.16-1.33.28-2 .36-1.35.17-2.72.22-4.08.16-1.36-.06-2.71-.24-4.02-.6-1.3-.35-2.55-.89-3.65-1.71a.242.242 0 0 0-.31.01c-.1.09-.12.25-.03.35.48.56 1.06 1.03 1.68 1.42.62.4 1.29.71 1.98.96 1.38.5 2.83.76 4.28.84 1.45.08 2.91-.01 4.34-.31.71-.15 1.42-.35 2.1-.64.34-.14.67-.31.99-.51.16-.1.31-.22.46-.34.14-.13.28-.27.4-.45.05-.08.05-.19-.02-.27-.09-.11-.24-.12-.33-.04m-.84-4.81c.68.15 1.28.33 1.28.85 0 .45-.39.75-1.14.75-.63 0-1.24-.28-1.63-.62a.162.162 0 0 0-.25.04l-.28.43c-.05.07-.03.16.03.22.53.48 1.26.72 2.09.72 1.39 0 2.13-.71 2.13-1.62 0-1.21-1.09-1.46-2.01-1.67-.66-.15-1.22-.31-1.22-.76 0-.43.41-.69 1.08-.69.58 0 1.09.2 1.42.5.08.07.2.05.26-.04l.24-.38c.05-.07.03-.17-.03-.22-.44-.38-1.06-.65-1.9-.65-1.29 0-2.01.72-2.01 1.56 0 1.13 1.05 1.37 1.94 1.58M6.93 9.32c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.1-3.43c.05-.16.27-.16.32 0l1.1 3.43c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.55-4.93c.03-.11-.05-.22-.16-.22h-.67c-.08 0-.14.05-.16.12l-1.01 3.38c-.05.16-.27.16-.32 0L9.74 4.28a.171.171 0 0 0-.16-.12h-.61c-.07 0-.14.05-.16.12L7.7 7.67c-.05.16-.28.16-.32 0L6.37 4.28a.171.171 0 0 0-.16-.12h-.67c-.11 0-.2.11-.16.22zm11.03 1.65-.01-.04a.35.35 0 0 0-.3-.23c-.14-.01-.26-.02-.38-.02h-.37c-.25.01-.49.02-.74.06-.25.04-.49.08-.73.16s-.47.18-.68.33c-.06.04-.08.11-.05.18.03.07.12.11.19.08h.01c.2-.09.41-.14.63-.17.22-.03.44-.03.66-.02.22.01.45.04.67.07l.33.06c.02 0 .04.01.06.01v.03c.01.1.01.2.01.31-.01.21-.04.44-.1.65-.11.44-.29.86-.55 1.25-.04.07-.04.15.02.21.07.06.17.06.23-.01.35-.37.63-.8.83-1.27a3.651 3.651 0 0 0 .3-1.16c.01-.15.01-.3-.03-.48M3.83 6.54c-.39-.3-.89-.44-1.45-.44-.88 0-1.83.52-1.83 1.73 0 1.16.96 1.75 1.83 1.75.57 0 1.06-.16 1.45-.46.11-.09.27-.01.27.13v.02c0 .09.08.17.17.17h.64c.09 0 .17-.08.17-.17V5.88c0-1.34-.97-1.85-2.12-1.85-.8 0-1.49.25-2.06.76-.06.06-.08.15-.03.22l.24.38c.06.09.18.11.26.04.43-.38.9-.56 1.44-.56.75 0 1.29.39 1.29 1.05v.48c0 .14-.16.22-.27.14m.27 1.68c0 .04-.01.08-.04.11-.3.36-.79.55-1.32.55-.71 0-1.21-.43-1.21-1.05 0-.62.5-1.05 1.21-1.05.52 0 1.02.19 1.32.55.02.03.04.07.04.11z" /></symbol>'});s().add(c);const r=c},17506:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"arch_linux",use:"arch_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="arch_linux"><path d="M15.46 14.32c-.21-.19-.43-.38-.66-.56-.53-.42-1.08-.81-1.69-1.1-.03-.02-.05-.06-.03-.09.01-.03.05-.04.08-.04.57.13 1.12.36 1.65.61C12.57 9.09 10.6 5.04 9 1c-.6 1.5-1.25 3.01-1.94 4.52.07.08.14.16.22.24.26.27.53.53.82.78.29.24.6.47.93.67.03.02.04.06.02.09s-.05.04-.08.03c-.37-.13-.73-.29-1.08-.47-.35-.19-.69-.39-1.02-.62-.04-.02-.07-.05-.11-.08C5.08 9.76 3.13 13.38 1 17h.1c1.43-1.31 3.6-2.25 6.1-2.56-.04-.27-.06-.55-.06-.84 0-1.8.84-3.27 1.87-3.27 1.03 0 1.87 1.46 1.87 3.27 0 .29-.02.57-.06.84 2.5.31 4.67 1.25 6.1 2.56h.1c-.55-.89-1.06-1.79-1.56-2.68" /></symbol>'});s().add(c);const r=c},91008:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"celarOS",use:"celarOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="celarOS"><path d="M9 2.02c-3.87 0-7 3.13-7 7 0 2.44 1.25 4.59 3.15 5.85v-2.54l-2.21-2.21a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.69 2.69v3.99c.46.15.94.26 1.43.32V10.9L4.97 7.67a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.9 2.9 2.9-2.9c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14L9.81 10.9v5.08c.5-.06.98-.16 1.43-.32v-3.99l2.69-2.69c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14l-2.21 2.21v2.54c1.9-1.25 3.15-3.4 3.15-5.85-.01-3.86-3.14-7-7.01-7m0 5.46c-.66 0-1.19-.53-1.19-1.19 0-.66.53-1.19 1.19-1.19.66 0 1.19.53 1.19 1.19 0 .66-.53 1.19-1.19 1.19" /></symbol>'});s().add(c);const r=c},95173:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"centos",use:"centos-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos"><path d="M7.76 8.27h.51v-.52L5.14 4.62l1.08-1.08H3.54v2.68l1.08-1.08zm.21.73-.36-.36H3.17V7.1L1.27 9l1.9 1.9V9.36H7.6zm.67-1.39.36.36.36-.36V3.17h1.54L9 1.27l-1.9 1.9h1.53v4.44zM4.62 5.65 3.54 6.74v1.53h3.7zm3.65 1.59v-3.7H6.74L5.65 4.62zm1.46 0 2.62-2.62-1.08-1.08H9.73zm0 .52v.52h.51l3.13-3.13 1.08 1.08V3.54h-2.68l1.08 1.08zm1.03.51h3.7V6.74l-1.08-1.08zm2.62 4.08 1.08-1.08V9.73h-3.7zm-8.76 0 2.62-2.62h-3.7v1.53zm5.62-2.62h-.51v.52l3.13 3.13-1.08 1.08h2.69v-2.68l-1.08 1.08zM16.73 9l-1.9-1.9v1.53H10.4l-.36.36.36.36h4.43v1.55zm-7 1.76v3.7h1.53l1.08-1.08zm-.37-.37L9 10.03l-.36.36v4.43H7.1l1.9 1.9 1.9-1.9H9.36zm-1.09-.15v-.51h-.51l-3.13 3.13-1.08-1.09v2.69h2.68l-1.08-1.08zm0 .52-2.62 2.62 1.08 1.08h1.53v-3.7z" /></symbol>'});s().add(c);const r=c},39850:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"centos_colored",use:"centos_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos_colored"><path fill="#942579" d="m7.7 8.4.6.59-.6.59H3.5v1.97L.95 8.99l2.56-2.52V8.4z" /><path fill="#EEA724" d="m9.6 7.7-.59.6-.59-.6V3.5H6.44L9.01.95l2.52 2.56H9.6z" /><path fill="#2E2C74" d="m10.3 9.6-.6-.59.6-.59h4.2V6.44l2.56 2.57-2.56 2.52V9.6z" /><path fill="#9DCB3B" d="m8.4 10.3.59-.6.59.6v4.2h1.97l-2.57 2.56-2.52-2.56H8.4zM3.36 3.36h5.1v5.1h-5.1z" /><path fill="#fff" d="M3.17 3.17h5.46v5.46H3.17zm.37 5.1h4.73V3.54H3.54z" /><path fill="#942579" d="M9.55 3.36h5.1v5.1h-5.1z" /><path fill="#fff" d="M9.36 3.17h5.46v5.46H9.36zm.37 5.1h4.73V3.54H9.73z" /><path fill="#EEA724" d="M9.55 9.55h5.1v5.1h-5.1z" /><path fill="#fff" d="M9.36 9.36h5.46v5.46H9.36zm.37 5.1h4.73V9.73H9.73z" /><path fill="#2E2C74" d="M3.36 9.55h5.1v5.1h-5.1z" /><path fill="#fff" d="M3.17 9.36h5.46v5.46H3.17zm.37 5.1h4.73V9.73H3.54z" /><path fill="#fff" d="M4.62 12.86.76 9l3.86-3.86L8.49 9zM1.28 9l3.35 3.35L7.97 9 4.62 5.65zM9 8.49 5.14 4.62 9 .76l3.86 3.86zM5.65 4.62 9 7.97l3.35-3.35L9 1.28zm7.73 8.24L9.52 9l3.86-3.86L17.24 9zM10.03 9l3.35 3.35L16.72 9l-3.35-3.35zM9 17.24l-3.86-3.86L9 9.52l3.86 3.86zm-3.35-3.86L9 16.72l3.35-3.35L9 10.03z" /></symbol>'});s().add(c);const r=c},79662:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"coreOS",use:"coreOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="coreOS"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7m-2.1 9.1c0-4.9.7-7 2.1-8.4A6.3 6.3 0 0 1 15.3 9c-1.4 1.4-3.5 2.1-8.4 2.1m1.96-5.42c-.28.92-.48 2.18-.54 4 1.82-.06 3.08-.25 4-.54a4.88 4.88 0 0 0-3.46-3.46" /></symbol>'});s().add(c);const r=c},34106:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"debian",use:"debian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian"><path d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15M7.56 7.56c.01 0 .01 0 0 0m6.97-2.63-.03.12zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16m1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01m-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18" /></symbol>'});s().add(c);const r=c},7297:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"debian_colored",use:"debian_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian_colored"><path fill="#D61C53" d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15M7.56 7.56c.01 0 .01 0 0 0m6.97-2.63-.03.12zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16m1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01m-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18" /></symbol>'});s().add(c);const r=c},80370:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"fedora",use:"fedora-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="fedora"><path d="M8.98 2C5.11 2 2 5.15 2 8.98v5.45c0 .85.68 1.57 1.57 1.57h5.4c3.87 0 7.02-3.15 7.02-7.02C16 5.15 12.85 2 8.98 2M4.19 14.69a3.261 3.261 0 0 1-1.47-2.73c0-1.6 1.15-2.91 2.63-3.21-.14.2-.24.44-.24.7 0 .34.14.64.35.86-.69.24-1.21.9-1.21 1.65 0 .53.24 1 .61 1.31-.44.19-.73.59-.73 1.11.01.11.04.21.06.31m6.49-4.48H9.32v1.74c0 1.83-1.49 3.28-3.32 3.28-.26 0-.47 0-.72-.08-.34-.08-.64-.38-.64-.77 0-.43.3-.72.77-.72.21 0 .3.04.6.04.98 0 1.74-.77 1.74-1.74v-1.49c0-.13-.08-.26-.26-.26H6.38c-.43 0-.77-.34-.77-.77s.34-.77.77-.77h1.36V6.94c0-1.79 1.49-3.28 3.28-3.28.3 0 .47.04.72.08.38.13.68.43.68.77 0 .43-.3.72-.77.72-.21 0-.3-.04-.64-.04-.94 0-1.7.81-1.7 1.74v1.49c0 .17.09.25.21.25h1.15c.43 0 .77.34.77.77s-.33.77-.76.77m1.03-.06c.14-.2.24-.44.24-.7 0-.33-.14-.63-.35-.86a1.739 1.739 0 0 0 .58-2.95c.45-.18.75-.6.75-1.13 0-.1-.03-.2-.06-.29.88.59 1.47 1.6 1.47 2.72 0 1.6-1.15 2.91-2.63 3.21" /></symbol>'});s().add(c);const r=c},38194:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"freeBSD",use:"freeBSD-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeBSD"><path d="M3.1 5.51c.59-.98 1.42-1.81 2.4-2.4-.3-.2-.59-.38-.77-.46-.42-.21-1.96-.98-2.59-.49-.49.63.28 2.17.49 2.59.1.17.27.46.47.76m11 1.19c.35-.35 1.05-1.4 1.26-1.82.21-.42.98-1.96.49-2.59-.63-.49-2.17.28-2.59.49-.42.21-1.46.92-1.81 1.27-.28.98 1.25 2.93 2.65 2.65m.64-.21c.18.55.06.93-.39.96-.7.04-1.94-.81-2.77-1.91-.83-1.1-.93-2.02-.22-2.07.1-.01.2.01.31.03l.52-.43a6.822 6.822 0 0 0-9.83 6.12c0 3.77 3.05 6.81 6.81 6.81a6.822 6.822 0 0 0 5.95-10.16z" /></symbol>'});s().add(c);const r=c},54349:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"gentoo",use:"gentoo-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="gentoo"><path d="M8.77 5.34c-.1-.02-.2-.04-.29-.04-.4 0-.71.23-.71.53 0 .19.1.42.26.63a.537.537 0 0 1-.05-.21c0-.2.19-.34.44-.34.06 0 .12.01.18.02.4.1.7.49.7.77 0 .16-.12.29-.31.33.06.01.12.02.18.02.4 0 .71-.23.71-.53.01-.42-.47-1.02-1.11-1.18M16 8.06c0-.18-.03-.38-.11-.6-.17-.45-.5-.89-.8-1.27-.62-.79-3.19-2.67-3.5-2.89C11.46 3.2 9.81 2 7.78 2h-.17c-2.33.01-4.14 1.36-4.98 2.52-.32.45-.47.9-.48 1.31-.01.18-.01.93.01 1.13.04.49.27.9.57 1.18.31.29 1.37.8 2.26 1.19-.72.57-1.84 1.48-2.31 2.01-.57.64-.78 1.33-.63 2.03-.11.5-.03 1.02.25 1.53.39.72 1.18 1.09 2.33 1.09.39 0 .83-.04 1.37-.12 1.47-.23 4.06-1.64 5.35-2.47 1.26-.82 3.5-2.81 4.19-3.44.19-.18.45-.5.47-.97-.01-.16-.01-.78-.01-.93m-.73.79c-.68.63-2.9 2.6-4.14 3.41-1.26.82-3.78 2.2-5.19 2.42-.51.08-.94.12-1.31.12-1.02 0-1.68-.3-2.01-.91-.43-.79-.31-1.59.34-2.32.66-.75 2.74-2.35 2.89-2.47.18-.15.37-.34.47-.46-.12-.06-.31-.13-.48-.18-.02 0-.03-.01-.05-.02-.4-.17-2.42-1.05-2.81-1.41-.5-.46-.72-1.38-.05-2.31.79-1.09 2.49-2.37 4.68-2.37h.16c1.94 0 3.52 1.17 3.59 1.22.11.08 2.82 2.06 3.43 2.83.5.61 1.33 1.66.48 2.45m-4.13-5.03S9.53 2.61 7.63 2.67c-2.27 0-3.8 1.42-4.39 2.22-.59.8-.37 1.55 0 1.89.37.34 2.7 1.35 2.7 1.35s.73.2.8.4c.07.2-.66.81-.66.81s-2.18 1.69-2.84 2.44c-.66.74-.58 1.42-.29 1.95.44.81 1.61.81 2.92.61 1.31-.2 3.8-1.55 5.04-2.36 1.24-.81 3.51-2.83 4.09-3.37.58-.54.07-1.28-.51-2.02-.58-.75-3.35-2.77-3.35-2.77M8.98 7.49c-1.07-.15-1.93-.86-1.9-1.59.02-.73.91-1.19 1.99-1.04 1.07.15 1.93.86 1.9 1.59-.03.72-.92 1.19-1.99 1.04" /></symbol>'});s().add(c);const r=c},75873:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"linux",use:"linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux"><path d="M6.71 15.07c-.13-.17-.27-.32-.4-.49-.19-.25-.34-.54-.49-.81-.2-.37-.42-.73-.64-1.09-.09-.15-.19-.3-.32-.4a.696.696 0 0 0-.23-.11.39.39 0 0 0-.26.02.41.41 0 0 0-.21.18c-.05.08-.09.16-.12.25s-.07.17-.11.26a.52.52 0 0 1-.18.21c-.08.06-.19.08-.29.09-.1.01-.21-.01-.31-.01-.1-.01-.21-.02-.31 0a.6.6 0 0 0-.28.13c-.07.07-.11.16-.13.25-.02.09-.02.19-.01.28.01.21.05.42.06.63.01.21 0 .43-.07.63-.05.13-.13.25-.18.38-.02.07-.04.13-.05.2 0 .07.01.14.05.2.05.08.13.14.22.18.09.04.18.06.27.08.21.05.41.13.61.18.57.16 1.18.19 1.74.39.29.11.58.26.89.27.19.01.39-.04.56-.14.17-.1.31-.24.4-.42.13-.24.16-.53.08-.79-.04-.2-.16-.38-.29-.55m9.05-.49a.4.4 0 0 0-.14-.15c-.05-.04-.11-.08-.17-.12-.12-.08-.23-.17-.34-.27-.11-.09-.22-.19-.32-.3a.93.93 0 0 1-.2-.38c-.02-.09-.02-.18-.02-.26-.01-.1-.03-.2-.06-.29a.585.585 0 0 0-.1-.17.576.576 0 0 0-.23-.13h-.02c.11-.19.2-.4.24-.61.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.11-.15-.21-.3-.32-.45-.06-.12-.12-.23-.17-.35-.15-.32-.28-.65-.46-.95-.03-.04-.05-.09-.08-.13-.02-.3-.05-.6-.07-.89-.03-.59.01-1.19-.15-1.76-.08-.28-.2-.54-.35-.79-.18-.29-.41-.54-.68-.74C9.93.94 9.39.78 8.85.78c-.4-.01-.8.07-1.15.26-.37.2-.68.52-.87.9-.19.37-.26.8-.27 1.23-.01.41.02.83.04 1.24.01.43.01.87.04 1.29.01.14.03.28.03.42 0 .07 0 .14-.01.21v-.02c0 .01-.01.01-.01.02-.06.14-.13.28-.21.41-.14.17-.27.34-.41.51l-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.02.07.05.12.07.19.04-.07.09-.14.14-.2.06-.07.14-.13.22-.16.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.08.11.14.23.2.36.06.11.11.22.14.33.06.23.04.47-.04.7l.12-.03c.25-.05.5-.1.76-.1.05 0 .1-.01.15-.01.18.02.37.03.56.02.03 0 .06-.01.09-.01.04 0 .07.01.1.02.31.02.61.05.91.09.27.04.53.09.79.16.1.02.2.05.3.08a1.87 1.87 0 0 1-.03-.34c.01-.34.09-.67.16-1 .02-.1.04-.19.05-.29.04-.21.07-.41.09-.62-.03.28-.08.56-.13.83-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.07-.08.12-.17.16-.26.09-.1.07-.2.03-.28M8.78 3.65c.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.12.04.26.03.39-.01.15-.04.29-.1.43-.04.09-.11.17-.19.24l-.09-.03c-.13-.03-.24-.09-.36-.13.08 0 .16-.02.23-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25.297.297 0 0 0-.16-.02c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.03.26.03.07.07.14.13.19-.08-.04-.16-.08-.23-.12a.3.3 0 0 1-.08-.04c-.05-.06-.08-.14-.11-.21-.02-.04-.05-.07-.08-.11a.75.75 0 0 1 .01-.49m.12 2.22c.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.01-.01c.05 0 .09-.01.14-.01-.05.02-.1.05-.15.08-.08.05-.15.12-.23.19-.17.14-.36.26-.56.33-.13.05-.27.08-.41.11-.18.04-.36.08-.54.07-.18-.01-.37-.05-.51-.16-.05-.04-.1-.09-.15-.14a.585.585 0 0 0-.17-.1c-.01-.01-.02-.01-.04-.01s-.03-.01-.04-.02c-.01-.01-.01-.01-.01-.02.08.01.15.05.21.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.15-.03.29-.06.42-.11M6.96 3.6c.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.1.11.18.25.23.4.05.13.07.27.07.41-.07.09-.13.19-.2.28-.03.02-.07.03-.1.05 0-.01.01-.01.01-.02.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.03.05-.04.11-.05.16-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.02.01.05.01.08.01-.05.05-.11.09-.16.14-.04.03-.08.07-.12.11-.02-.02-.05-.03-.06-.05-.07-.06-.11-.14-.15-.22-.07-.17-.08-.35-.09-.53-.01-.19-.02-.39.04-.57m7.05 9.22c-.19.27-.48.48-.8.59-.19.07-.4.07-.6.01a.622.622 0 0 1-.3-.18c-.1-.11-.13-.26-.14-.41-.01-.15.01-.31.05-.45-.13-.03-.26-.05-.39-.07-.08-.01-.16-.02-.24-.02a.35.35 0 0 0-.22.08c-.06.06-.1.14-.11.22-.01.08-.01.17 0 .26.02.33.02.65.01.98a1.06 1.06 0 0 0-.43-.05c-.26.03-.51.12-.74.24-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.07.08-.16.13-.24.2-.07.01-.15.03-.22.03-.06-.08-.12-.15-.18-.23-.15-.2-.22-.45-.35-.67-.17-.3-.45-.52-.75-.69a.95.95 0 0 0-.09-.21c-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07l-.12-.12c-.01-.23-.01-.47.01-.7.06-.6.23-1.19.47-1.74.07-.16.15-.32.23-.47.12-.12.24-.24.38-.35.24-.17.55-.31.9-.43.23-.05.46-.08.46-.08-1.31.19-1.22-.11-1.28-.19a.342.342 0 0 1-.04-.18c.1-.32.29-.6.49-.87.05-.07.1-.14.14-.21.04.03.08.07.12.1.15.08.31.12.47.14.03 0 .06 0 .08.01-.2-.18-.38-.39-.46-.64-.07-.2-.09-.42-.16-.61-.02-.05-.05-.11-.06-.16-.01-.03-.01-.06-.01-.09.01.02.03.04.06.06.02.02.05.03.07.05.13.08.24.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.04-.18 0-.03.01-.05.02-.08l.01.01c.03.06.04.14.03.21 0 .07-.01.15.02.22.03.08.08.14.12.21.02.04.03.08.03.12 0 .04-.01.08-.04.11-.02.02-.06.04-.09.04-.03.01-.07 0-.1-.01-.07-.01-.13-.04-.19-.05a.375.375 0 0 0-.25.08c-.07.05-.13.12-.2.18-.14.13-.31.24-.48.33-.14.08-.29.15-.42.23-.02.01-.04.03-.06.04.21.01.42 0 .62-.03.35-.06.67-.18 1.01-.21.24-.02.48 0 .71-.04-.09.01-.18.02-.27.02.02.05.05.09.07.14.18.4.31.82.37 1.25.24.25.44.53.59.84.43.9.43 1.94.31 2.93l-.03.24.2.03.03-.12c.04-.1.11-.2.19-.27.09-.07.18-.13.29-.15.12-.03.26-.01.38 0 .12.02.24.05.36.07.13.02.26.04.38.1.06.02.12.06.17.1.04.04.09.1.11.16.03.07.03.16.01.25.01.1-.05.2-.11.3M11.04 8.3c-.09-.28-.13-.84-.13-.84s-.06.45-.32.64c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78M7.72 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.03-.35.03-.69 0-1.04m.53-1.4a.472.472 0 0 1-.18-.49c-.01.08-.02.16-.04.24L8 8.06c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.631.631 0 0 1-.38-.12" /></symbol>'});s().add(c);const r=c},39862:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"linux_colored",use:"linux_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux_colored"><path fill="#050507" d="M12.29 6.52c.18.39.38.78.56 1.17.34.76.61 1.56.72 2.38.11.82.06 1.68-.2 2.47-.29.89-.85 1.69-1.52 2.34-.8.77-1.83 1.36-2.94 1.41-.72.03-1.45-.18-2.09-.52a4.58 4.58 0 0 1-1.42-1.13c-.39-.47-.68-1.02-.82-1.61-.17-.73-.09-1.51.16-2.21.18-.51.45-.98.64-1.48.21-.55.32-1.13.6-1.65.25-.47.62-.87.82-1.36.12-.29.17-.61.25-.92.08-.31.18-.62.39-.86.25-.29.63-.44 1.01-.49.38-.04.76.02 1.14.1.3.07.59.15.88.25.24.09.49.19.7.34.29.21.51.49.68.8.16.32.29.65.44.97" /><path fill="#050507" d="M9.1 16.3c.31.02.61.05.91.09.27.04.53.09.79.16.41.1.82.23 1.24.24.11 0 .22 0 .33-.03a.69.69 0 0 0 .3-.14c.13-.1.21-.26.24-.42.03-.16.01-.33-.04-.49-.1-.32-.3-.59-.47-.87-.1-.16-.18-.33-.29-.49-.1-.16-.23-.31-.39-.41-.22-.14-.49-.19-.75-.16s-.51.12-.74.24c-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.1.1-.23.17-.33.27-.05.05-.1.11-.12.17-.03.07-.03.14-.01.21.02.05.05.09.08.12.04.03.08.05.13.07.09.04.19.04.29.05" /><path fill="#050507" d="M8.19 16.28c-.25.01-.51.05-.76.1-.24.05-.48.1-.71.17-.4.1-.79.23-1.2.24-.11 0-.22 0-.32-.03a.606.606 0 0 1-.29-.14.69.69 0 0 1-.24-.42c-.03-.16-.01-.33.04-.49.09-.32.3-.59.46-.87.09-.16.18-.33.28-.49.1-.16.22-.31.38-.41.21-.14.48-.19.73-.16s.5.12.72.24c.32.17.61.41.79.72.13.22.2.47.35.67.08.11.18.2.25.32.03.06.06.12.06.19a.25.25 0 0 1-.05.19c-.03.04-.06.07-.1.09-.04.02-.08.04-.13.05-.08.03-.17.03-.26.03M6.77 5.69c-.04-.43-.03-.86-.04-1.29-.02-.41-.05-.83-.04-1.24.01-.42.08-.85.27-1.23s.49-.7.86-.9c.35-.19.75-.27 1.15-.26.54.01 1.08.17 1.52.49.27.2.5.45.69.74.15.24.28.51.35.79.15.57.12 1.17.15 1.76.03.56.12 1.12.09 1.68-.01.12-.02.25-.07.35a.55.55 0 0 1-.25.25.97.97 0 0 1-.34.11c-.23.04-.47.01-.71.03-.34.03-.67.16-1.01.21-.41.06-.82.02-1.23 0-.16-.01-.33-.01-.49-.03a1.28 1.28 0 0 1-.47-.14.876.876 0 0 1-.24-.19.604.604 0 0 1-.14-.26c-.04-.15-.02-.3-.02-.45 0-.14-.02-.28-.03-.42" /><path fill="#FDFEFC" d="M7.42 5.52c-.06.07-.1.16-.12.25-.02.09-.03.18-.03.28-.01.19 0 .38-.04.56-.05.19-.17.36-.29.52-.2.28-.4.57-.5.9-.06.2-.08.41-.06.62-.22.33-.42.68-.58 1.04-.24.55-.41 1.14-.47 1.74-.07.73.02 1.49.31 2.17.21.49.52.94.93 1.29.21.18.43.33.68.45.84.41 1.89.42 2.72-.03.43-.23.8-.57 1.15-.91.21-.21.42-.42.59-.66.31-.48.42-1.06.49-1.62.12-.99.12-2.03-.31-2.93-.15-.31-.35-.59-.59-.84-.06-.43-.19-.85-.37-1.25-.13-.29-.29-.56-.41-.85-.05-.12-.09-.24-.15-.36s-.12-.23-.22-.32a.9.9 0 0 0-.34-.2c-.13-.04-.26-.06-.39-.07-.26-.01-.53.02-.79.01-.21-.01-.42-.05-.63-.03-.11.01-.21.02-.31.06-.12.04-.21.1-.27.18" /><path fill="#010101" fill-opacity=".259" d="M7.29 6.51c.09.27.28.51.51.69.07.06.15.12.24.16.09.04.18.06.28.05.09-.01.18-.04.27-.09l.24-.15c.14-.09.28-.16.42-.23.17-.09.34-.2.48-.33.07-.06.13-.13.2-.18.07-.05.16-.09.25-.08.07 0 .13.03.19.05.03.01.07.01.1.01.03-.01.07-.02.09-.04a.15.15 0 0 0 .04-.11c0-.04-.02-.08-.03-.12-.04-.07-.1-.14-.12-.21-.02-.07-.02-.14-.02-.22 0-.07 0-.15-.03-.21a.254.254 0 0 0-.12-.11.293.293 0 0 0-.16-.04c-.11-.01-.22.01-.33.02-.15.01-.3-.01-.44 0-.18.01-.36.06-.55.06-.21 0-.42-.07-.63-.04-.09.01-.17.05-.26.08s-.17.05-.26.05c-.1 0-.2-.04-.3-.04-.05 0-.1 0-.15.02-.05.02-.09.05-.11.1a.31.31 0 0 0-.02.08c0 .03 0 .06.01.09.01.06.04.11.06.16.06.16.08.38.15.58" /><path fill="#010101" d="M7.02 5.73c.18.11.35.25.49.41.13.15.24.31.4.42.12.08.26.12.4.13.17.02.34-.01.5-.05.15-.04.3-.1.43-.17.26-.14.47-.36.75-.45.06-.02.13-.04.18-.06.06-.03.11-.06.14-.12.03-.05.03-.11.03-.17.01-.06.03-.12.04-.18.01-.06.01-.13-.02-.18-.02-.05-.07-.08-.12-.11-.05-.02-.11-.03-.16-.04-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.04-.55.05-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.01-.18.04-.25.09-.07.04-.13.11-.2.16-.03.03-.07.05-.11.07-.04.02-.08.03-.13.03H7.1c-.04.01-.07.03-.09.05.01.04.01.08.01.11" opacity=".3" /><path fill="url(#linux_colored_a)" d="M8.2 4.25c0 .12-.01.25-.04.37-.04.12-.1.23-.18.32-.06.06-.13.1-.21.12-.08.03-.17.03-.25.01a.512.512 0 0 1-.23-.14.636.636 0 0 1-.14-.22c-.07-.17-.08-.35-.1-.53-.01-.2-.03-.4.04-.59.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.21.04.07.03.12.08.18.13.11.11.18.25.24.4.04.15.06.3.07.46" /><path fill="url(#linux_colored_b)" d="M10.41 4.25c-.01.15-.04.29-.1.43-.06.13-.16.25-.29.32-.1.06-.23.08-.35.07a.74.74 0 0 1-.33-.13c-.2-.14-.33-.35-.41-.58-.07-.23-.11-.48-.03-.7.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.13.04.27.03.4" /><path fill="#010101" fill-opacity=".259" d="M7.47 4.82c-.1.08-.19.17-.28.26-.05.05-.1.1-.12.17-.02.06-.02.12-.03.19 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33a2.11 2.11 0 0 0 .3-.26c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.09-.48.25-.65.45" /><path fill="#050507" d="M7.96 4.53c.1-.11.17-.24.26-.36.05-.06.1-.11.17-.15.06-.04.14-.06.21-.05.08.01.16.05.22.1.06.06.1.13.14.2.03.07.06.15.11.21.05.07.13.11.19.16.03.03.06.05.09.09.03.03.05.07.05.11.01.04 0 .09-.01.13-.01.04-.04.08-.07.11-.06.06-.14.09-.23.1-.17.02-.34-.03-.51-.02-.17 0-.34.07-.51.06-.09 0-.17-.02-.24-.07a.258.258 0 0 1-.09-.09.284.284 0 0 1-.04-.12c0-.04.01-.08.02-.12a.36.36 0 0 1 .07-.1c.06-.08.12-.13.17-.19M9.6 3.69c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.04.26.03.08.08.16.14.21.07.06.16.09.25.1.09 0 .18-.02.25-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25c-.06-.01-.11-.02-.17-.02" /><path fill="#161615" d="M9.74 4.07c-.05.02-.12.01-.15.05-.01.03.01.07.03.09.06.02.15-.02.17-.08.01-.02-.01-.06-.03-.07 0 0-.01.01-.02.01" /><path fill="#fff" d="M9.96 4.2c.06-.06-.05-.24-.13-.31-.06-.05-.24-.1-.24-.05.01.06.09.13.14.18.08.07.2.21.23.18" opacity=".5" /><path fill="gray" d="M10.38 3.86c-.08-.07-.16-.13-.25-.19-.29-.19-.68-.23-1.01-.13-.07.02-.14.05-.21.08.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.02.07.04.12.04.18M9.78 2.77c-.03.03-.05.07-.07.11.12.03.23.07.33.14.2.13.35.32.45.53.02-.03.05-.06.07-.09-.11-.22-.26-.42-.46-.56a.831.831 0 0 0-.32-.13M7.49 2.88h-.07c.08.01.16.03.23.06.1.04.18.11.26.18.14.13.24.29.31.46-.02-.13-.06-.26-.11-.37l-.09-.09a1 1 0 0 0-.26-.18.626.626 0 0 0-.27-.06" /><path fill="#050507" d="M7.26 4.04c-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.05.02.11.03.16.02a.2.2 0 0 0 .12-.08c.03-.04.05-.09.07-.13.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.01.05-.03.11-.04.16" /><path fill="#fff" d="M7.53 3.95c.01.04.06.05.08.08.02.03.05.06.06.09.03.07-.02.16.03.21.02.01.05.01.07 0 .06-.06.05-.17.02-.26a.298.298 0 0 0-.15-.18c-.03-.02-.08-.03-.11-.01-.01.02-.01.05 0 .07" opacity=".5" /><path fill="#BA9319" d="M7.03 5.59c0 .02.01.03.02.05.01.02.04.04.06.06.02.02.05.03.07.05.13.08.23.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.03-.18.01-.07.03-.13.04-.2.01-.07.01-.14-.02-.2a.278.278 0 0 0-.12-.12.317.317 0 0 0-.16-.04c-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.05-.55.06-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.02-.18.05-.25.1s-.13.12-.2.18c-.03.03-.07.06-.11.07-.04.02-.08.03-.13.03H7.1c-.01 0-.03.01-.04.02l-.03.03c.03.03.01.06 0 .09" /><path fill="#5F461B" d="M7.49 5.13c-.07.04-.15.09-.22.14-.04.03-.07.05-.09.09-.01.03-.02.06-.02.09v.09c0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.02.02.04.02.01 0 .03.01.04.01.07.02.12.06.17.1.05.04.09.1.15.14.14.11.33.16.51.16s.36-.03.54-.07c.14-.03.28-.06.41-.11.21-.08.4-.19.56-.33.07-.07.15-.14.23-.19.07-.05.16-.08.23-.12.01 0 .01-.01.02-.01.01-.01.01-.01.01-.02a.03.03 0 0 0 0-.04c0-.01-.01-.02-.02-.04l-.03-.03a.508.508 0 0 0-.29-.1c-.1-.01-.21 0-.31-.02s-.19-.05-.28-.08c-.1-.03-.2-.06-.3-.07a1.94 1.94 0 0 0-.72.02c-.22.05-.44.13-.64.25" /><path fill="#F4C021" d="M7.47 4.88c-.11.07-.2.16-.28.26-.05.06-.09.12-.11.19-.02.06-.02.11-.04.17 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.06.04.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.07-.07c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.08-.48.24-.65.45" /><path fill="#F6DA4A" d="M9.11 4.93a.055.055 0 0 0-.05-.03c-.02 0-.04-.01-.06 0a.37.37 0 0 0-.11.05c-.09.07-.18.15-.25.23a.8.8 0 0 0-.2.4c0 .03-.01.05 0 .08s.01.05.03.07c.02.02.04.03.06.03.02 0 .05 0 .07-.01.04-.01.08-.04.11-.07.19-.17.35-.36.42-.6.01-.02.01-.05.01-.07-.01-.04-.01-.06-.03-.08" /><path fill="#5F461B" d="M8.67 4.59c.01.04.08.03.12.05.03.02.06.06.1.06.04 0 .09-.01.1-.05.01-.05-.06-.08-.11-.09-.06-.02-.13-.03-.18 0-.02 0-.04.01-.03.03M8.03 4.56c-.05-.02-.13.07-.1.12.01.01.03.03.04.02.02-.01.04-.06.07-.07.02-.02.01-.06-.01-.07" /><path fill="#F4C021" d="M10.39 5.21c-.01.11-.09.2-.18.2s-.15-.09-.14-.2c.01-.11.09-.2.18-.2.09.01.15.09.14.2" /><path fill="gray" d="M8.02 3.57c-.08-.01-.15-.03-.23-.04a.902.902 0 0 0-.51.1c-.1.06-.17.14-.24.23 0-.09.01-.18.04-.26.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.05.06.09.11.13.17" /><path fill="#050507" d="M12.54 8.94c.34.27.55.68.62 1.11.05.33.02.68-.06 1.01-.08.33-.19.65-.31.97-.05.13-.09.25-.11.39a.59.59 0 0 0 .06.39c.07.14.21.23.36.27.15.04.3.04.45.01.15-.04.29-.11.41-.2.31-.24.49-.61.56-.99.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.16-.21-.28-.45-.47-.64a.955.955 0 0 0-.33-.22.654.654 0 0 0-.39-.03c-.17.05-.3.18-.38.34-.07.16-.09.34-.06.51.04.22.14.43.25.62.13.22.28.43.47.59.23.18.48.29.68.45" /><path fill="#838385" d="M13.23 11.05c-.12.4-.27.79-.41 1.19-.05.14-.1.28-.12.42-.01-.07-.01-.16-.01-.24.02-.14.07-.26.11-.39.23-.64.47-1.31.37-1.98-.07-.43-.28-.84-.62-1.11-.18-.15-.4-.26-.59-.4.21.12.43.21.62.36.36.26.62.67.69 1.11.05.34.07.64-.04 1.04" /><path fill="#010101" fill-opacity=".259" d="M6.48 8.17c.06.08-.04.38 1.28.19 0 0-.23.03-.46.08-.35.12-.66.25-.9.43-.24.17-.41.4-.62.59 0 0 .35-.64.44-.83.09-.19-.01-.18.05-.47.07-.28.24-.56.24-.56s-.14.41-.03.57M10.71 8.1c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78c-.09-.28-.13-.84-.13-.84s-.05.45-.32.64" /><path fill="#010101" fill-opacity=".259" d="M8.19 7.7c-.01.08-.02.16-.04.24l-.03.12c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.63.63 0 0 1-.4-.12.428.428 0 0 1-.14-.16.613.613 0 0 1-.02-.33M7.85 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.02-.35.02-.69 0-1.04" /><path fill="#050507" d="M15.88 14.83c-.03-.06-.08-.11-.13-.16-.05-.04-.11-.08-.16-.12-.12-.09-.22-.18-.33-.28-.11-.1-.22-.2-.3-.31a.868.868 0 0 1-.18-.39c-.01-.04 0-.07-.01-.11-.01-.03-.03-.07-.04-.1-.02-.09-.02-.18-.02-.26 0-.05-.02-.09-.03-.13-.02-.04-.04-.09-.07-.13a.636.636 0 0 0-.22-.14.742.742 0 0 0-.25-.05c-.21-.01-.42.06-.63.07-.2.02-.39-.02-.58-.07-.11-.03-.22-.08-.33-.11-.18-.05-.36-.08-.54-.12-.08-.01-.16-.03-.23-.03a.34.34 0 0 0-.22.07c-.07.05-.1.14-.12.22-.02.08-.01.17-.01.26.02.51 0 1.02-.07 1.52-.03.18-.07.36-.1.54l-.03.21c-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.06-.07.1-.14.13-.22-.02-.02-.02-.04-.03-.06" /><path fill="#F4C021" d="M15.75 14.67c-.03.09-.08.17-.14.24-.13.16-.32.26-.5.35-.31.16-.64.29-.93.48-.2.13-.38.28-.55.44-.15.14-.28.28-.45.4-.17.12-.36.2-.56.23-.24.04-.5-.01-.72-.11-.16-.07-.31-.16-.4-.31-.09-.15-.11-.32-.11-.49 0-.3.06-.6.11-.9.04-.25.09-.5.11-.75.05-.46.05-.92.02-1.37a.885.885 0 0 1 0-.23.288.288 0 0 1 .3-.27c.07 0 .14.01.21.02.17.02.34.04.5.09.1.03.2.06.31.09.17.05.35.07.53.05.19-.02.38-.09.57-.09.08 0 .16.02.23.04.08.02.15.06.21.11.04.04.07.1.1.15.03.08.06.17.06.26s-.02.19-.01.28c.01.08.04.15.08.21s.09.12.14.18c.1.11.19.23.31.31.14.1.3.16.44.25.04.03.08.06.11.1.04.07.06.16.03.24" /><path fill="#7D7D7D" d="M12.37 9.21c.07-.01.47.34.42.46-.06.13-.16.05-.23.05s-.28.09-.31.04c-.03-.05.09-.2.16-.31.04-.09-.11-.23-.04-.24" opacity=".75" /><path fill="#7D7D7D" d="M6.63 7.03c-.01-.08-.12-.09-.17-.05-.04.03-.08.15-.05.19.07.08.23-.03.22-.14" opacity=".25" /><path fill="#BA9319" d="M14.01 12.84a.273.273 0 0 0-.15-.13c-.06-.03-.13-.03-.2-.03-.14 0-.27.04-.41.02-.12-.01-.23-.05-.34-.08a.732.732 0 0 0-.36-.01c-.12.03-.23.12-.3.22-.06.1-.09.21-.1.32-.01.11 0 .23.01.34.01.08.02.16.04.24a.561.561 0 0 0 .38.42c.18.07.38.06.56-.01.31-.14.58-.38.74-.68.06-.11.1-.22.13-.34.01-.05.02-.1.02-.14.01-.05 0-.1-.02-.14" /><path fill="#BA9319" d="M14.01 12.77a.33.33 0 0 0-.15-.1c-.06-.02-.13-.03-.2-.02-.14 0-.27.03-.41.02-.12-.01-.23-.04-.34-.06-.12-.02-.24-.03-.36-.01-.12.02-.23.08-.3.16a.43.43 0 0 0-.1.23c-.01.08 0 .16.01.24.01.06.02.12.04.17.02.06.05.11.1.16.07.07.17.12.28.15.18.05.38.05.56-.01.31-.1.58-.28.74-.49.06-.08.1-.16.13-.25.01-.03.02-.07.02-.1.01-.02 0-.06-.02-.09" /><path fill="#050507" d="M14.26 12.27c.03.07.03.16.01.25-.03.1-.08.21-.15.29-.19.28-.47.49-.79.6-.19.07-.4.07-.6.01a.71.71 0 0 1-.3-.18c-.1-.11-.13-.26-.15-.41-.01-.19.01-.4.1-.57a.736.736 0 0 1 .48-.43c.12-.02.26-.01.38.01s.24.05.36.07c.12.02.26.04.38.1.06.02.12.06.16.1.07.04.1.09.12.16" /><path fill="#838385" d="M12.94 11.77c-.03 0-.06.01-.09.01-.19.03-.37.16-.47.32-.07.12-.1.26-.09.4 0-.1.03-.19.08-.28.08-.14.22-.25.38-.28.1-.02.2-.01.3.01.1.01.19.02.29.05.15.03.29.08.41.17.03.02.06.04.08.07.02.03.04.06.05.09.01.05 0 .1-.03.15a1.06 1.06 0 0 1-.19.2c.14-.03.29-.07.4-.15a.3.3 0 0 0 .12-.13c.03-.05.04-.12.03-.18a.238.238 0 0 0-.06-.11c-.03-.03-.06-.06-.09-.08-.15-.1-.32-.17-.5-.19-.12-.02-.23-.04-.35-.05-.09-.01-.18-.02-.27-.02" /><path fill="#050507" d="m6.63 6.67-.46.58-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.04.16.11.31.18.45.31.61.79 1.14 1.34 1.55.25.18.53.34.81.47.15.07.32.13.49.14.08 0 .17-.01.25-.05.08-.03.15-.09.19-.16.06-.09.08-.2.06-.3-.01-.1-.05-.2-.11-.29-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07-.11-.11-.23-.22-.31-.35-.08-.13-.12-.28-.15-.43-.08-.41-.06-.84.08-1.23.05-.15.13-.3.2-.45.12-.25.23-.51.39-.75.2-.29.46-.54.62-.85.14-.26.19-.56.24-.85.05-.22.09-.44.13-.67" /><path fill="#838385" d="M5.06 10.24c-.14.39-.16.82-.08 1.23.03.15.07.3.15.43.08.13.19.24.31.35.01.01.04.03.05.04h-.02a.523.523 0 0 1-.23-.1.58.58 0 0 1-.16-.19c-.06-.09-.1-.18-.16-.26a.548.548 0 0 0-.29-.21c.09-.04.16-.1.21-.18a.6.6 0 0 0 .07-.32c-.01-.11-.02-.22-.01-.33.01-.21.1-.41.18-.61.1-.27.19-.55.34-.79.1-.15.21-.29.33-.41a.12.12 0 0 1 .07-.07c.02-.01.04-.03.07-.03-.07.09-.15.18-.21.28-.16.23-.27.49-.39.74-.11.13-.18.28-.23.43" /><path fill="#050507" d="M4.46 11.86c.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.13.19.25.4.3.63.07.3.03.62-.12.88a1.146 1.146 0 0 1-1.07.59c-.34-.03-.64-.21-.95-.34-.63-.28-1.33-.39-1.98-.61-.2-.07-.4-.15-.6-.21-.09-.03-.18-.05-.27-.1a.478.478 0 0 1-.21-.19.378.378 0 0 1-.04-.21c.01-.07.02-.14.05-.21.05-.14.14-.26.2-.39.1-.22.12-.46.12-.7 0-.24-.03-.48-.04-.71 0-.11 0-.21.02-.32.02-.1.07-.2.15-.28.07-.07.17-.1.27-.12.1-.02.2-.01.29-.01.1.01.2.01.29.01.1 0 .2-.02.28-.07.08-.04.15-.11.21-.18.06-.07.1-.15.15-.23.05-.08.1-.16.16-.23s.16-.13.25-.16" /><path fill="#F4C021" d="M4.5 12.18c.08-.03.17-.04.26-.02.08.02.16.06.23.11.14.11.23.26.32.4.22.36.44.72.64 1.09.15.28.3.56.49.81.13.17.27.32.4.49.13.17.24.35.3.55.07.26.04.55-.08.79-.09.17-.23.32-.4.42-.17.1-.36.15-.56.14-.31-.01-.59-.17-.89-.27-.56-.2-1.17-.23-1.74-.39-.21-.06-.41-.13-.61-.18-.09-.02-.18-.04-.27-.08a.433.433 0 0 1-.22-.18.351.351 0 0 1-.05-.2c0-.07.02-.14.04-.2.05-.13.13-.25.18-.38.08-.2.09-.42.07-.63-.01-.21-.05-.42-.06-.63a.878.878 0 0 1 .01-.28c.02-.09.06-.18.13-.25s.17-.11.28-.13c.1-.02.21-.01.31 0s.21.02.31.01.21-.03.29-.09a.52.52 0 0 0 .18-.21c.04-.08.08-.17.11-.26s.07-.17.12-.25a.41.41 0 0 1 .21-.18" /><defs><radialGradient id="linux_colored_a" cx="0" cy="0" r="1" gradientTransform="matrix(.65895 -.02773 .04242 1.00798 7.632 4.069)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient><radialGradient id="linux_colored_b" cx="0" cy="0" r="1" gradientTransform="translate(9.662 4.1)scale(.95439)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient></defs></symbol>'});s().add(c);const r=c},29474:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"linux_manjaro",use:"linux_manjaro-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="linux_manjaro"><path d="M9.049 0H0v14h4.084V4.097h4.965zM14 0H9.903v14H14z" /><path d="M9.049 4.951H4.95V14H9.05z" /></symbol>'});s().add(c);const r=c},53328:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"macOSX",use:"macOSX-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="macOSX"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7m3.55 11.48h-.85L9 9.61l-2.7 3.87h-.85L8.57 9 5.45 4.52h.85L9 8.39l2.7-3.87h.85L9.43 9z" /></symbol>'});s().add(c);const r=c},94403:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"oracle",use:"oracle-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle"><path d="M12 14H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h6c2.76 0 5 2.24 5 5s-2.24 5-5 5M6 6C4.35 6 3 7.35 3 9s1.35 3 3 3h6c1.65 0 3-1.35 3-3s-1.35-3-3-3z" /></symbol>'});s().add(c);const r=c},60188:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"oracle_colored",use:"oracle_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle_colored"><path fill="#ED1C24" d="M12 4H6C3.24 4 1 6.24 1 9s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5" /></symbol>'});s().add(c);const r=c},22463:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"os",use:"os-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os"><path d="M6.75 6C5.78 6 5 6.78 5 7.75v2.5c0 .97.78 1.75 1.75 1.75s1.75-.78 1.75-1.75v-2.5C8.5 6.78 7.72 6 6.75 6M7 10.25c0 .14-.11.25-.25.25s-.25-.11-.25-.25v-2.5c0-.14.11-.25.25-.25s.25.11.25.25zM11.25 6c-.96 0-1.75.79-1.75 1.75v.03c0 .57.28 1.11.75 1.43l1.15.8c.07.05.11.12.11.21v.03c0 .14-.11.25-.25.25s-.25-.11-.25-.25V9.9H9.5v.35c0 .96.79 1.75 1.75 1.75S13 11.21 13 10.25v-.03c0-.57-.28-1.11-.75-1.43l-1.15-.8a.248.248 0 0 1-.11-.21v-.03c0-.14.11-.25.25-.25s.25.11.25.25v.35h1.5v-.35C13 6.79 12.21 6 11.25 6m.52-4H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2m2.73 9.77c0 1.5-1.22 2.73-2.73 2.73H6.23c-1.5 0-2.73-1.22-2.73-2.73V6.23c0-1.51 1.22-2.73 2.73-2.73h5.54c1.5 0 2.73 1.22 2.73 2.73z" /></symbol>'});s().add(c);const r=c},64612:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"os_press",use:"os_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os_press"><path d="M6.75 7.5c-.14 0-.25.11-.25.25v2.5c0 .14.11.25.25.25s.25-.11.25-.25v-2.5c0-.14-.11-.25-.25-.25M11.77 2H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2M8.5 10.25c0 .97-.78 1.75-1.75 1.75S5 11.22 5 10.25v-2.5C5 6.78 5.78 6 6.75 6s1.75.78 1.75 1.75zM13 8.1h-1.5v-.35c0-.14-.11-.25-.25-.25s-.25.11-.25.25v.03c0 .08.04.16.11.21l1.15.8c.47.33.75.86.75 1.43v.03c0 .96-.79 1.75-1.75 1.75s-1.76-.79-1.76-1.75V9.9H11v.35c0 .14.11.25.25.25s.25-.11.25-.25v-.03a.26.26 0 0 0-.11-.21l-1.15-.8c-.47-.33-.75-.86-.75-1.43v-.03c0-.96.79-1.75 1.75-1.75S13 6.79 13 7.75z" /></symbol>'});s().add(c);const r=c},56025:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"raspbian",use:"raspbian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="raspbian"><path d="M13.96 8.09c.32-1.85-1.36-2.49-1.36-2.49 1.36-.32 2.4-2.57 2-3.86 0 0 .16-.24-1.76-.64S9 1.58 9 2.86C9 1.58 7.08.7 5.16 1.1c-1.92.4-1.76.64-1.76.64-.4 1.29.64 3.53 2 3.86 0 0-1.68.64-1.36 2.49 0 0-2.24 1.45-.64 3.86 0 0 .08.8.4 1.2 0 0 .24 1.69 1.68 2.01 0 0 .48.8 1.44.88 0 0 .72.96 2.08.96s2.08-.96 2.08-.96c.96-.08 1.44-.88 1.44-.88 1.44-.32 1.68-2.01 1.68-2.01.32-.4.4-1.2.4-1.2 1.6-2.42-.64-3.86-.64-3.86m-1.1-1.77c.59.53.84 1.25.66 1.77-.45-.17-.94-.47-1.41-.89a4.49 4.49 0 0 1-1.06-1.33c.49-.24 1.23-.07 1.81.45M9.72 2.3c.64-.64 1.44-.8 2.16-.72.72.08 1.92.48 2.4.4-.24.4-.4.88-.4 1.37 0 .49-.8 1.69-1.76 1.93-.84.21-1.67-.01-2.03-.71 0-.01.01-.01.01-.02.1-.12.21-.23.32-.34.23-.22.48-.43.74-.62.52-.39 1.09-.72 1.69-1l-.03-.07c-.63.21-1.24.49-1.82.83-.29.17-.57.35-.84.56-.11.09-.21.17-.32.27-.48-.34-.71-1.28-.12-1.88m.93 4.14c-.13.57-.82 1-1.65 1s-1.52-.43-1.65-1c.13-.57.82-1 1.65-1s1.52.43 1.65 1m.03 6.22c0 .93-.75 1.69-1.68 1.69-.93 0-1.68-.76-1.68-1.69 0-.93.75-1.69 1.68-1.69.93 0 1.68.76 1.68 1.69M4.12 3.35c0-.48-.16-.96-.4-1.37.48.08 1.68-.32 2.4-.4.72-.08 1.52.08 2.16.72.59.6.36 1.54-.12 1.86-.1-.09-.21-.18-.32-.27-.27-.21-.55-.39-.84-.56-.58-.33-1.2-.61-1.83-.82l-.03.07c.6.28 1.16.61 1.69 1 .26.19.51.4.74.62.12.11.22.23.32.34 0 .01.01.01.01.02-.36.7-1.2.92-2.03.71-.95-.24-1.75-1.44-1.75-1.92m1.02 2.97c.59-.52 1.33-.69 1.81-.45-.22.43-.58.9-1.06 1.33-.47.41-.96.72-1.41.89-.19-.52.06-1.24.66-1.77m-1.12 5.36h-.05c-.44-.04-.73-.78-.64-1.64.09-.86.51-1.52.95-1.48.06.01.12.03.18.06.19.33.28.88.22 1.5-.07.73-.34 1.34-.66 1.56m2.44 3.15c-.57.11-1.43-.47-1.92-1.29-.49-.83-.43-1.58.13-1.7.57-.11 1.43.47 1.92 1.29.49.83.43 1.59-.13 1.7m.08-3.59c-.91-.04-1.48-.9-1.26-1.92.22-1.02 1.13-1.81 2.04-1.76.91.04 1.48.9 1.26 1.92-.22 1.01-1.13 1.8-2.04 1.76M9 16.52c-.83 0-1.53-.5-1.76-1.19.45-.31 1.07-.5 1.76-.5s1.31.19 1.76.5c-.23.69-.93 1.19-1.76 1.19m.42-7.05c-.22-1.01.35-1.87 1.26-1.91.91-.04 1.83.75 2.04 1.76.22 1.02-.35 1.88-1.26 1.92-.91.04-1.82-.75-2.04-1.77m4.04 4.07c-.49.83-1.35 1.4-1.92 1.29-.57-.11-.63-.87-.13-1.7.49-.83 1.35-1.4 1.92-1.29.57.11.63.87.13 1.7m.57-1.86h-.05c-.32-.23-.59-.83-.66-1.56-.06-.61.03-1.17.22-1.5.06-.03.12-.05.18-.06.44-.04.87.62.95 1.48.09.87-.2 1.6-.64 1.64" /></symbol>'});s().add(c);const r=c},94064:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"red_hat",use:"red_hat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="red_hat"><path d="m14.41 8.96-.19-.8a1.153 1.153 0 0 1 0 .01l-.63-2.72c-.14-.6-.27-.87-1.32-1.4-.81-.42-2.59-1.11-3.12-1.11-.49 0-.63.63-1.21.63-.56 0-.98-.47-1.5-.47-.5 0-.83.34-1.09 1.05 0 0-.71 1.99-.8 2.28v.01l-.31.76C2.83 7.28 1 7.53 1 9.14c0 2.65 6.27 5.91 11.23 5.91 3.81 0 4.77-1.72 4.77-3.08 0-1.07-.92-2.28-2.59-3.01M4.54 6.54v.08-.02a.064.064 0 0 1 0-.06m6.95 5.11c-3.93 0-7.37-2.3-7.37-3.82v-.04c.13-.31.3-.71.45-1.03v-.02c0 .01.01.02.01.03l.03.06c0 .01.01.02.01.03.01.02.02.04.04.07.01.01.01.02.02.03.01.02.03.05.05.07.01.01.02.03.03.04.02.02.03.05.05.07.01.01.02.03.03.04.02.02.03.04.05.06.02.02.04.04.05.06.02.02.03.04.05.05.02.02.04.05.07.07l.05.05.07.07.06.06c.02.02.05.04.08.07.02.02.05.04.07.06.02.02.04.04.06.05.03.03.07.05.1.08.02.02.04.04.07.05l.11.08c.02.02.05.03.07.05.04.03.08.06.12.08.02.02.05.03.07.05.04.03.08.05.12.08.03.02.06.04.08.05.04.02.08.05.11.07.03.02.06.04.1.06.04.02.08.05.12.07.03.02.06.04.1.06.04.03.09.05.13.08.03.01.05.03.08.04.05.03.11.06.16.08.02.01.05.02.07.04l.18.09c.02.01.05.02.07.03.06.03.13.06.19.09.02.01.05.02.07.03.07.03.13.06.2.09.02.01.05.02.07.03.07.03.14.06.22.08.02.01.04.02.06.02.08.03.15.06.23.08.02.01.04.01.05.02.08.03.16.05.24.08.01 0 .03.01.04.01.08.03.17.05.25.07.01 0 .02.01.04.01.09.02.18.05.27.07.02 0 .03.01.05.01l.27.06c.02 0 .03.01.05.01.09.02.18.04.28.05.02 0 .04.01.05.01.09.02.19.03.28.04.02 0 .03 0 .05.01.1.01.19.03.29.04h.05l.3.03h.04c.11.01.21.01.32.02h.02c.11 0 .23.01.34.01.98 0 2.37-.19 2.55-1.23.1.44.22.94.3 1.41-.15 1.03-1.4 1.58-2.99 1.58" /></symbol>'});s().add(c);const r=c},24934:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"suse_linux",use:"suse_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="suse_linux"><path d="M16.83 8.24c.01 0 .02-.01.03-.01.13-.04.77-.2.68-.45l-.47-1.26s-.16-.55-.87-.79-2.52-.79-3.07-.79v.63s-1.89-.79-4.88-.79-5.59 1.5-6.85 3.07c-1.26 1.57-1.01 3-.7 3.63.31.63 1.1 1.73 2.6 1.73s2.28-1.02 2.28-1.65c0-.7-.23-1.51-.84-1.92-.65-.42-1.58-.46-2.15.11-.68.68-.3 2.01.76 1.98.28-.01.73-.14.73-.48 0-.31-.16-.39-.39-.31-.24.08-.31.08-.47 0-.25-.13-.3-.5-.1-.69.26-.24.69-.2.96-.01.42.28.74.66.57 1.18-.16.49-.53.88-1.08.89-.56.01-1.17-.08-1.52-.57-.43-.61-.69-1.46-.26-2.13.55-.87 1.26-1.02 2.05-.94.79.08 2.2.87 2.44 1.57.24.71.31.87.31 1.1l1.1.55s-.47-1.26.24-1.89c.71-.63 1.65-.31 1.97-.08.32.23 1.34 1.18 1.5 1.5l1.5.71s-.47-.71-.71-1.34c-.24-.63 0-1.26.39-1.26s1.5.16 2.05.16c.55 0 2.52-.08 2.83-1.34-.02.08-.41.22-.49.25-.19.08-.39.15-.6.18-.38.07-.74.02-1.1-.11-.49-.16-.97-.39-1.43-.64l-.31-.71c.57.32 1.11.71 1.73.93.5.17 1.05.13 1.57-.01m-2.12-1.29c0-.59.48-1.06 1.06-1.06.58 0 1.06.48 1.06 1.06a1.06 1.06 0 0 1-2.12 0m1.81 0c0-.41-.33-.75-.75-.75s-.75.33-.75.75c0 .41.33.75.75.75s.75-.33.75-.75m-.93-.25c.03-.1.19-.14.36-.09.17.05.27.18.24.28-.03.1-.19.14-.36.09-.17-.05-.27-.18-.24-.28" /></symbol>'});s().add(c);const r=c},61248:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ubuntu",use:"ubuntu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu"><path d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46m6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26m3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46M6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9m3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1m3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46" /></symbol>'});s().add(c);const r=c},48635:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ubuntu_colored",use:"ubuntu_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu_colored"><path fill="#F26422" d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46m6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26m3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46M6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9m3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1m3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46" /></symbol>'});s().add(c);const r=c},52874:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"padlock",use:"padlock-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="padlock"><path d="M13 7.5v-2c0-2.21-1.79-4-4-4s-4 1.79-4 4v2H3.5V11c0 3.03 2.47 5.5 5.5 5.5s5.5-2.47 5.5-5.5V7.5zm-6.5-2a2.5 2.5 0 0 1 5 0v2h-5zM13 11c0 2.21-1.79 4-4 4s-4-1.79-4-4V9h8zm-4.75 1.75c0 .41.34.75.75.75s.75-.34.75-.75v-.95A1.097 1.097 0 0 0 9 9.9a1.097 1.097 0 0 0-.75 1.9z" /></symbol>'});s().add(c);const r=c},38141:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pause_outline",use:"pause_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pause_outline"><path d="M6.43 3H5.07C3.93 3 3 3.93 3 5.07v7.86C3 14.07 3.93 15 5.07 15h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C8.5 3.93 7.57 3 6.43 3M7 12.93c0 .31-.26.57-.57.57H5.07a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57zM12.93 3h-1.36c-1.14 0-2.07.93-2.07 2.07v7.86c0 1.14.93 2.07 2.07 2.07h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C15 3.93 14.07 3 12.93 3m.57 9.93c0 .31-.26.57-.57.57h-1.36a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57z" /></symbol>'});s().add(c);const r=c},26946:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pause_solid",use:"pause_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pause_solid"><path d="M9.1 5H6.8c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9C11 5.8 10.2 5 9.1 5m8 0h-2.3c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9c0-1.1-.8-1.9-1.9-1.9" /></symbol>'});s().add(c);const r=c},98108:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pencil_outline",use:"pencil_outline-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pencil_outline"><path d="M9.76 0c-1.13 0-2.2.45-3 1.24L6 2 4.94 3.06.5 7.5 0 14l6.5-.5 6.26-6.26a4.242 4.242 0 0 0-3-7.24m1.94 6.18-5.86 5.86-2.26.17c-.21-.43-.49-.82-.84-1.15-.28-.26-.6-.48-.95-.65l.17-2.25L6 4.12 8.38 6.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44L7.06 3.06l.76-.76a2.744 2.744 0 0 1 3.88 3.88" /></symbol>'});s().add(c);const r=c},87007:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pencil_solid",use:"pencil_solid-usage",viewBox:"0 0 19 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 19" id="pencil_solid"><path d="M17.71 4.043c.39-.39.39-1.04 0-1.41L15.37.293c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75zM0 14.253v3.75h3.75l11.06-11.07-3.75-3.75z" /></symbol>'});s().add(c);const r=c},14167:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pie_chart_skeleton",use:"pie_chart_skeleton-usage",viewBox:"0 0 100 100",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" id="pie_chart_skeleton"><path fill-rule="evenodd" d="m68.254 96.563-1.544-8.756A41.654 41.654 0 0 1 50 91.282c-23.083 0-41.795-18.712-41.795-41.795C8.205 26.404 26.917 7.692 50 7.692c.872 0 1.739.027 2.598.08L51.23.015A50.96 50.96 0 0 0 50 0C22.386 0 0 22.386 0 50s22.386 50 50 50c6.442 0 12.6-1.219 18.254-3.437m31.092-54.669a50.02 50.02 0 0 0-.224-1.27z" clip-rule="evenodd" /><path fill-rule="evenodd" d="m95.04 28.262 1.687 4.637-7.31 2.66a41.73 41.73 0 0 1 2.377 13.928c0 23.083-18.712 41.795-41.794 41.795-.225 0-.45-.002-.674-.005l3.153 8.662C78.941 98.648 100 76.784 100 50a49.8 49.8 0 0 0-4.96-21.738" clip-rule="evenodd" /><path fill-rule="evenodd" d="M99.514 57c.32-2.287.486-4.624.486-7 0-27.614-22.385-50-50-50h-.256v7.693H50c23.083 0 41.795 18.711 41.795 41.794 0 2.565-.23 5.076-.673 7.513z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},64628:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pin_element",use:"pin_element-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pin_element"><path d="M3.75 0h6.5A3.75 3.75 0 0 1 14 3.75C14 4.44 13.44 5 12.75 5h-.25V3.75a2.25 2.25 0 0 0-2.25-2.25h-6.5A2.25 2.25 0 0 0 1.5 3.75v6.5a2.25 2.25 0 0 0 2.25 2.25H5v.25C5 13.44 4.44 14 3.75 14A3.75 3.75 0 0 1 0 10.25v-6.5A3.75 3.75 0 0 1 3.75 0" /><path d="M12.5 7.25a.75.75 0 0 1 1.5 0V14H7.25a.75.75 0 0 1 0-1.5h4.19L6.47 7.53l1.06-1.06 4.97 4.969z" /></symbol>'});s().add(c);const r=c},32365:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"play_outline",use:"play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="play_outline"><path d="M13.73 7.24 5.94 3.05c-.2-.11-.42-.16-.62-.16C4.63 2.89 4 3.44 4 4.2v9.6c0 .77.63 1.32 1.32 1.32.21 0 .42-.05.62-.16l7.79-4.19c1.4-.76 1.4-2.78 0-3.53m-.71 2.2L5.5 13.49V4.51l7.52 4.05c.23.12.26.33.26.44 0 .11-.03.32-.26.44" /></symbol>'});s().add(c);const r=c},27506:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"play_solid",use:"play_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="play_solid"><path d="M21.728 10.702 5.619 1.5a1.738 1.738 0 0 0-.868-.234c-.917 0-1.759.734-1.759 1.759v17.95a1.76 1.76 0 0 0 1.759 1.759c.29 0 .587-.073.868-.234l16.109-9.201a1.496 1.496 0 0 0 0-2.597" /></symbol>'});s().add(c);const r=c},75116:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"plus",use:"plus-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus"><path fill-rule="evenodd" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},25376:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"plus_mini_s",use:"plus_mini_s-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus_mini_s"><path fill-rule="evenodd" d="M15.889 7H8.11C7.5 7 7 7.5 7 8.111v7.778C7 16.5 7.5 17 8.111 17h7.778C16.5 17 17 16.5 17 15.889V8.11C17 7.5 16.5 7 15.889 7M15 12.6h-2.4V15h-1.2v-2.4H9v-1.2h2.4V9h1.2v2.4H15z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},53085:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pod",use:"pod-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="pod"><path d="M7 15h3v-3H7zm4-11-7 6v8h7l7-6V4zm5.5 7.31-6.055 5.19H5.5v-5.81l6.055-5.19H16.5zM15 7h-3v3h3z" /></symbol>'});s().add(c);const r=c},46550:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pricing",use:"pricing-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="pricing"><path d="M9.75 5.751 7.556 7.947l-.862-.862a.67.67 0 0 0-.942 0 .67.67 0 0 0 0 .942L7.555 9.83l3.138-3.138a.67.67 0 0 0 0-.942.67.67 0 0 0-.942 0M8 1.778c-2.596.026-4.64.649-6.222 1.778V7.11C1.75 9.618 4.426 12.97 8 14.222c3.573-1.253 6.249-4.604 6.222-7.11V3.555C12.64 2.426 10.595 1.805 8 1.778M8 12.79c-2.845-1.182-4.907-3.893-4.89-5.68V4.285C4.419 3.529 6.054 3.138 8 3.11c1.946.018 3.582.418 4.889 1.165V7.12c.017 1.778-2.045 4.489-4.89 5.671" /></symbol>'});s().add(c);const r=c},27129:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"print",use:"print-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="print"><path d="M18 8.2v6.4l-1 1v2.3c0 .1-.1.2-.2.2H3.2c-.1-.1-.2-.2-.2-.3V16h10c1.1 0 2-.9 2-2H2v-3c0-.6.5-1 1-1h13V0H4v8H3c-1.7 0-3 1.4-3 3v4.4l1 1v1.4C1 19 2 20 3.2 20h13.7c1.2 0 2.2-1 2.2-2.2v-1.4l1-1V11c-.1-1.3-.9-2.4-2.1-2.8M6 2h8v6H6z" /></symbol>'});s().add(c);const r=c},49164:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"privacy",use:"privacy-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="privacy"><path d="M11.556 6.667V4.889A3.555 3.555 0 0 0 8 1.333 3.555 3.555 0 0 0 4.445 4.89v1.778H3.11v3.11a4.897 4.897 0 0 0 4.89 4.89 4.897 4.897 0 0 0 4.888-4.89v-3.11zM5.778 4.889a2.223 2.223 0 0 1 4.444 0v1.778H5.778zm5.778 4.889A3.555 3.555 0 0 1 8 13.333a3.555 3.555 0 0 1-3.555-3.555V8h7.11zm-4.222 1.555c0 .365.302.667.666.667a.671.671 0 0 0 .667-.667v-.844A.975.975 0 0 0 8 8.8a.975.975 0 0 0-.666 1.689z" /></symbol>'});s().add(c);const r=c},15471:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"qr_code",use:"qr_code-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="qr_code"><path d="M11.323 16.226c0-.428.346-.774.774-.774a3.355 3.355 0 0 0 3.355-3.355v-1.032a.774.774 0 0 1 1.548 0v1.032A4.903 4.903 0 0 1 12.097 17a.774.774 0 0 1-.774-.774M6.677 16.226a.774.774 0 0 1-.774.774A4.903 4.903 0 0 1 1 12.097v-1.032a.774.774 0 0 1 1.548 0v1.032a3.355 3.355 0 0 0 3.355 3.355c.428 0 .774.346.774.774M6.677 1.774a.774.774 0 0 1-.774.774 3.355 3.355 0 0 0-3.355 3.355v1.032a.774.774 0 0 1-1.548 0V5.903A4.903 4.903 0 0 1 5.903 1c.428 0 .774.347.774.774M11.323 1.774c0-.427.346-.774.774-.774A4.903 4.903 0 0 1 17 5.903v1.032a.774.774 0 1 1-1.548 0V5.903a3.355 3.355 0 0 0-3.355-3.355.774.774 0 0 1-.774-.774M3.684 8.071a.774.774 0 0 0 0 1.548h10.323a.774.774 0 0 0 0-1.548z" /></symbol>'});s().add(c);const r=c},68905:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"qualityOfService_solid",use:"qualityOfService_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="qualityOfService_solid"><path d="m22.28 8.88-1.99-1.67-.45-2.56c-.17-.96-1-1.65-1.97-1.65h-2.6l-1.99-1.67c-.37-.31-.83-.47-1.29-.47-.46 0-.91.16-1.29.47L8.72 3h-2.6c-.97 0-1.8.7-1.97 1.65L3.7 7.21 1.72 8.88c-.74.62-.93 1.69-.45 2.53l1.3 2.25-.45 2.56a2 2 0 0 0 1.29 2.23l2.44.89 1.3 2.25c.37.63 1.03 1 1.73 1 .23 0 .46-.04.68-.12l2.44-.89 2.44.89a1.994 1.994 0 0 0 2.41-.88l1.3-2.25 2.44-.89c.91-.33 1.45-1.27 1.29-2.23l-.45-2.56 1.3-2.25c.49-.84.3-1.91-.45-2.53m-5.57 1.83L11 16.41 7.29 12.7a.996.996 0 1 1 1.41-1.41l2.29 2.29 4.29-4.29a.996.996 0 0 1 1.41 0c.39.39.41 1.03.02 1.42" /></symbol>'});s().add(c);const r=c},65024:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"question",use:"question-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="question"><path d="M10 12.6c-.77 0-1.4.63-1.4 1.4 0 .77.63 1.4 1.4 1.4.77 0 1.4-.63 1.4-1.4 0-.77-.63-1.4-1.4-1.4M10 0C4.49 0 0 4.49 0 10s4.49 10 10 10 10-4.49 10-10S15.51 0 10 0m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m.06-13h-.11C8.32 5 7 6.32 7 7.94V8l2-.06c0-.52.42-.94.94-.94h.11c.52 0 .94.42.94.94 0 .25-.15.49-.38.6l-.12.05a2.87 2.87 0 0 0-1.65 2.59v.61h2v-.61c0-.33.19-.64.49-.78l.12-.05c.93-.44 1.53-1.38 1.53-2.41C13 6.32 11.68 5 10.06 5" /></symbol>'});s().add(c);const r=c},84024:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"questionFilled",use:"questionFilled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="questionFilled"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2m0 15.4c-.77 0-1.4-.63-1.4-1.4 0-.77.63-1.4 1.4-1.4.77 0 1.4.63 1.4 1.4 0 .77-.63 1.4-1.4 1.4m1.55-5.06c-.48.22-.55.47-.55.76v.65h-2v-.96c0-.87.48-1.65 1.26-2.04l.4-.2c.21-.11.34-.32.34-.55 0-.55-.45-1-1-1s-1 .45-1 1H9c0-1.65 1.35-3 3-3s3 1.35 3 3c0 1-.55 1.9-1.45 2.34" /></symbol>'});s().add(c);const r=c},69460:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ram",use:"ram-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ram"><path d="m7.5 8.5 2 2 1-1-2-2zM5 11l2 2 1-1-2-2zm5-5 2 2 1-1-2-2zm7 1-6-6L1 11l6 6 1-1 1 1 8-8-1-1zm-2.12 2L9 14.88l-1-1-1 1L3.12 11 11 3.12 14.88 7l-1 1z" /></symbol>'});s().add(c);const r=c},17026:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"reduce_size",use:"reduce_size-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="reduce_size"><path d="M2 6.75A.75.75 0 0 1 2.75 6h2.189L1.97 3.03l1.06-1.061L6 4.939v-2.19a.75.75 0 0 1 1.5 0v3.69l.03.03-.03.03v1h-1l-.031.03-.03-.03H2.75A.75.75 0 0 1 2 6.75M11.31 2a.75.75 0 0 1 .75.75v2.189l2.97-2.97 1.061 1.06L13.121 6h2.189a.75.75 0 0 1 0 1.5h-3.69l-.03.03-.03-.03h-1v-1l-.03-.03.03-.03v-3.69a.75.75 0 0 1 .75-.75M2 11.31c0 .414.336.75.75.75h2.189L1.97 15.03l1.06 1.06L6 13.12v2.19a.75.75 0 0 0 1.5 0v-3.69l.03-.03-.03-.03v-1h-1l-.031-.03-.03.03H2.75a.75.75 0 0 0-.75.75M11.31 16.06a.75.75 0 0 0 .75-.75v-2.19l2.97 2.97 1.061-1.06-2.97-2.97h2.189a.75.75 0 0 0 0-1.5h-3.69l-.03-.03-.03.03h-1v1l-.03.03.03.03v3.69c0 .414.336.75.75.75" /></symbol>'});s().add(c);const r=c},72693:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"refresh",use:"refresh-usage",viewBox:"0 0 18 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 19" id="refresh"><path d="M9 14.524c-1.867 0-3.487-1.023-4.365-2.531h2.948a.85.85 0 0 0 .843-.844.85.85 0 0 0-.844-.843H2.25v5.343a.85.85 0 0 0 .844.844.85.85 0 0 0 .844-.844v-1.755C5.175 15.312 6.975 16.212 9 16.212a6.741 6.741 0 0 0 6.716-6.188h-1.721c-.27 2.52-2.396 4.5-4.995 4.5m5.906-12.093a.85.85 0 0 0-.844.843V5.03C12.826 3.612 11.026 2.712 9 2.712a6.741 6.741 0 0 0-6.716 6.187h1.721C4.275 6.38 6.401 4.4 9 4.4c1.867 0 3.488 1.024 4.365 2.532h-2.959a.85.85 0 0 0-.844.843.85.85 0 0 0 .844.844h5.344V3.274a.85.85 0 0 0-.844-.843" /></symbol>'});s().add(c);const r=c},19227:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"reload",use:"reload-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="reload"><path fill-rule="evenodd" d="M12.77 20.047c3.228-.362 5.814-2.942 6.183-6.17.483-4.221-2.798-7.814-6.91-7.86V4.124c0-.106-.131-.161-.22-.096L7.924 6.891a.12.12 0 0 0 0 .194l3.899 2.863c.088.066.22.007.22-.095v-1.89c2.89.046 5.204 2.505 5.006 5.444-.167 2.527-2.228 4.579-4.756 4.74a5.105 5.105 0 0 1-5.365-4.274.971.971 0 0 0-.96-.812.963.963 0 0 0-.956 1.105 7.048 7.048 0 0 0 7.758 5.88" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},5323:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"remove_node",use:"remove_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="remove_node"><path d="M3.5 6.55c0-1.68 1.37-3.05 3.05-3.05H8V2H6.55C4.04 2 2 4.04 2 6.55V8h1.5zm7.71-5.27c-.4-.12-.81.12-.93.52l-.06.21-.22.77-1.21 4.24C7.78 7.13 7 7.97 7 9c0 .64.31 1.2.77 1.56L6.65 14.5h-.1c-1.68 0-3.05-1.37-3.05-3.05V10H2v1.45c0 2.41 1.89 4.37 4.27 4.52a.742.742 0 0 0 .74.78c.33 0 .63-.21.72-.54l4-14c.1-.4-.13-.82-.52-.93m2.6 1.39-.44 1.53c.68.56 1.13 1.4 1.13 2.35V8H16V6.55c0-1.65-.88-3.08-2.19-3.88m.69 8.78c0 1.68-1.37 3.05-3.05 3.05h-1.03L9.99 16h1.45c2.51 0 4.55-2.04 4.55-4.55V10h-1.5v1.45z" /></symbol>'});s().add(c);const r=c},72293:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"resize_handler",use:"resize_handler-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="resize_handler"><path d="M4 11c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m8-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1m-4 6c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1" /></symbol>'});s().add(c);const r=c},40484:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"rocket",use:"rocket-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rocket"><path d="m15.788 11.25-2.862-1.717c-.038.94-.172 1.807-.326 2.53H16v-.438a.437.437 0 0 0-.212-.375M12.26 13.375h3.303a.438.438 0 0 0 .437-.437V12.5h-3.5a15.72 15.72 0 0 1-.24.875M5.074 9.533 2.212 11.25a.436.436 0 0 0-.212.375v.438h3.4a15.12 15.12 0 0 1-.326-2.53M2 12.5v.438c0 .241.196.437.438.437H5.74a15.496 15.496 0 0 1-.24-.875zM9 16c.45 0 .927-.512 1.058-1.312H7.942C8.073 15.488 8.55 16 9 16M9.243 2.074a.437.437 0 0 0-.486 0C7.183 3.124 5.5 5.494 5.5 9c0 .962.113 1.861.258 2.625h6.484A14.14 14.14 0 0 0 12.5 9c0-3.506-1.683-5.877-3.257-6.926M9 8.563a1.313 1.313 0 1 1 0-2.626 1.313 1.313 0 0 1 0 2.625" /><path d="M9 8.125a.875.875 0 1 0 0-1.75.875.875 0 0 0 0 1.75M6.406 13.975a.438.438 0 0 0 .407.275h4.375c.178 0 .34-.109.406-.275.02-.053.312-.792.558-1.912H5.848c.246 1.12.537 1.86.558 1.912" /></symbol>'});s().add(c);const r=c},71061:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"room",use:"room-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="room"><path fill-rule="evenodd" d="M9 6a1 1 0 0 0-1 1v1H7a1 1 0 1 0 0 2h1v4H7a1 1 0 1 0 0 2h1v1a1 1 0 1 0 2 0v-1h4v1a1 1 0 1 0 2 0v-1h1a1 1 0 1 0 0-2h-1v-4h1a1 1 0 1 0 0-2h-1V7a1 1 0 1 0-2 0v1h-4V7a1 1 0 0 0-1-1m5 8v-4h-4v4z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},43671:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"room_home",use:"room_home-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="room_home"><path d="M11.93 0H2.07C.93 0 0 .93 0 2.07v5.85c0 1.14.93 2.07 2.07 2.07H6.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.14 0 2.07-.93 2.07-2.07V2.07C14 .93 13.07 0 11.93 0m0 9H2.07c-.57 0-1.02-.44-1.06-1h11.97c-.03.56-.49 1-1.05 1M13 7H1V2.07C1 1.48 1.48 1 2.07 1h9.85c.59 0 1.07.48 1.07 1.07V7z" /></symbol>'});s().add(c);const r=c},834:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"room_new",use:"room_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="room_new"><path d="M2.567 10h6.866A2.57 2.57 0 0 0 12 7.433V2.567A2.57 2.57 0 0 0 9.433 0H2.567A2.57 2.57 0 0 0 0 2.567v4.866A2.57 2.57 0 0 0 2.567 10M2 2.567C2 2.255 2.254 2 2.567 2h6.866c.312 0 .567.254.567.567v4.866A.568.568 0 0 1 9.433 8H2.567A.568.568 0 0 1 2 7.433zM15.14 0h-1.933c.398.583.644 1.267.736 2h1.197A2.863 2.863 0 0 1 18 4.86v10.28A2.863 2.863 0 0 1 15.14 18H4.86A2.863 2.863 0 0 1 2 15.14v-3.197a4.541 4.541 0 0 1-2-.736v3.933C0 17.82 2.18 20 4.86 20h10.28c2.68 0 4.86-2.18 4.86-4.86V4.86C20 2.18 17.82 0 15.14 0" /></symbol>'});s().add(c);const r=c},70249:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"room_overview",use:"room_overview-usage",viewBox:"0 0 24 25",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" id="room_overview"><path d="m16 8.5 2.667-2.666L21.334 8.5v.16l-2 1.507v-.84l-.667-.667L16 11.327l-5.333-5.333L8 8.66 6.667 7.327l-2 2v1.013l-2 2V8.5l4-4L8 5.834l2.667-2.667z" /><path fill-rule="evenodd" d="m8 12.5 2.667-2.666L16 15.167l5.334-4v6.107c0 2.52-2.04 4.56-4.56 4.56H7.227c-2.52 0-4.56-2.04-4.56-4.56v-2.107l4-4zm11.334 4.774v-2.107l-3.52 2.64-5.147-5.147L8 15.327l-1.333-1.333-2 2v1.28a2.56 2.56 0 0 0 2.56 2.56h9.547a2.56 2.56 0 0 0 2.56-2.56" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},88112:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"sad",use:"sad-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="sad"><path fill-rule="evenodd" d="M17.93 20.666A10.453 10.453 0 0 1 12 22.5C6.201 22.5 1.5 17.799 1.5 12S6.201 1.5 12 1.5 22.5 6.201 22.5 12c0 1.483-.308 2.922-.895 4.248l1.34 2.476a1.5 1.5 0 0 1 .165.934 1.506 1.506 0 0 1-1.56 1.278l-.144-.014-3.174-.47zM8.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m7.514 5.833c-2.81-1.775-5.406-1.775-7.889-.015a.5.5 0 1 1-.578-.816c2.822-2 5.856-2 9-.015a.5.5 0 1 1-.533.845M15.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m-13 1a9.5 9.5 0 1 1 19 0 9.461 9.461 0 0 1-.905 4.053l-.108.229 1.578 2.918a.5.5 0 0 1-.454.738l-.087-.009-3.563-.529-.168.13A9.455 9.455 0 0 1 12 21.5 9.5 9.5 0 0 1 2.5 12" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},27891:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"save",use:"save-usage",viewBox:"0 0 12 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" id="save"><path d="M10 0H2v.01C.89.04 0 .94 0 2.06v7.9c0 1.13.92 2.05 2.05 2.05h7.9c1.13 0 2.05-.92 2.05-2.05V2zM3.5 1.5h5v3h-5zm4 9h-3v-2h3zm3-.55c0 .3-.25.55-.55.55H9V7H3v3.5h-.95c-.3 0-.55-.25-.55-.55v-7.9c0-.29.22-.51.5-.54V6h8V2.12l.5.5z" /></symbol>'});s().add(c);const r=c},16171:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"save2",use:"save2-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="save2"><path d="m7 11.061 4.03-4.03A.75.75 0 1 0 9.969 5.97l-2.22 2.22V0h-1.5v8.189L4.03 5.97a.75.75 0 1 0-1.061 1.061zM0 12.5V14h14v-1.5z" /></symbol>'});s().add(c);const r=c},68205:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"scheduled",use:"scheduled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="scheduled"><path d="M19.79 19.26c-.42.52-.89 1-1.4 1.43l.86.97c.2.22.47.34.75.34.24 0 .47-.08.66-.25.41-.37.45-1 .08-1.41zM18 4c1.1 0 2 .9 2 2 0 .28-.06.55-.17.79.45.57.83 1.18 1.15 1.84C21.61 7.93 22 7.01 22 6c0-2.21-1.79-4-4-4-1.23 0-2.32.57-3.05 1.44.7.22 1.36.51 1.99.87.31-.19.67-.31 1.06-.31M4.17 6.79C4.06 6.55 4 6.28 4 6c0-1.1.9-2 2-2 .39 0 .75.12 1.06.31.63-.36 1.29-.65 1.99-.87A3.978 3.978 0 0 0 6 2C3.79 2 2 3.79 2 6c0 1.01.39 1.93 1.01 2.63.32-.65.71-1.27 1.16-1.84M12 4c-4.96 0-9 4.04-9 9 0 2.07.71 3.97 1.89 5.5l-1.64 1.84a.998.998 0 0 0 .08 1.41c.19.17.43.25.66.25.28 0 .55-.11.75-.34l1.53-1.72A8.965 8.965 0 0 0 12 22c4.96 0 9-4.04 9-9s-4.04-9-9-9m0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7m0-12v5H7c0 2.74 2.26 5 5 5s5-2.26 5-5-2.26-5-5-5" /></symbol>'});s().add(c);const r=c},67360:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"search",use:"search-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search"><path d="M5 8h1c0-1.1.9-2 2-2V5C6.34 5 5 6.34 5 8m10.53 6.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06M8 12.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 3.5 8 3.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5" /></symbol>'});s().add(c);const r=c},47532:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"search_press",use:"search_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search_press"><path d="m15.53 14.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06M8 6c-1.1 0-2 .9-2 2H5c0-1.66 1.34-3 3-3z" /></symbol>'});s().add(c);const r=c},15958:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"search_s",use:"search_s-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="search_s"><path fill-rule="evenodd" d="m10.122 9.143 3.673 3.66A.701.701 0 0 1 13.296 14a.703.703 0 0 1-.497-.204L9.12 10.128a5.648 5.648 0 0 1-3.45 1.178C2.543 11.306 0 8.77 0 5.653 0 2.536 2.544 0 5.67 0c3.127 0 5.67 2.536 5.67 5.653a5.61 5.61 0 0 1-1.218 3.49m-4.45-7.74c-2.351 0-4.265 1.906-4.265 4.25 0 2.343 1.914 4.25 4.264 4.25 2.351 0 4.264-1.907 4.264-4.25 0-2.344-1.913-4.25-4.264-4.25" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},6133:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"apache",use:"apache-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache"><path d="M4.91 16.7c.18-.5.35-1 .54-1.5.21.07.42.14.64.22-.16.53-.31 1.06-.48 1.59zm8.95-10.95c-.3.3-.8.48-1.37.42 0 0 .53.22 1.16.38-.14.47-.29.96-.46 1.47-.39.17-.79.29-1.13.26.35.15.65.25.93.33-.03.1-.07.19-.11.29-.42.06-.96.09-1.64.02.39.27.86.47 1.32.62-1.43 2.55-4.21 3.39-4.21 3.39 1.21.84 2.02.21 2.02.21-.62 1.37-1.83.53-1.83.53.19.74 1.21.84 1.21.84-.82.63-3.04-.31-3.04-.31 1.21.84.39 1.48.39 1.48-.13-.49-.6-.69-.92-.77.1-.34.2-.68.3-1.03.16-.55.33-1.1.5-1.64.17-.55.34-1.09.52-1.64.43-1.29.87-2.58 1.36-3.84.52-1.26 1.02-2.53 1.84-3.65-.87 1.09-1.43 2.34-2 3.57-.55 1.24-1.05 2.51-1.54 3.78-.09.24-.18.48-.27.71-.2.54-.39 1.07-.59 1.61l-.57 1.62c-.03.09-.06.19-.09.28-.4-.21-1.18-.52-1.77-.06-.19-.74.82-.63.82-.63-1.21-.84-.19-.74-.19-.74.19.74 1.21.84 1.21.84-.19-.74-1.59-2.32-1.59-2.32 1.01.1 1.21.84 1.21.84-.97-3.69 1.91-7.71 2.54-9.08.62-1.37 2.85-2.95 4.28-2.43 2.16.78 2.27 2.4 1.71 4.65" /></symbol>'});s().add(c);const r=c},21832:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"apache_tomcat",use:"apache_tomcat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache_tomcat"><path d="M16.58 9.12v-.23h-.92c-.04.08-.09.15-.13.23zm0-.54v-.23h-.64c-.04.08-.07.15-.11.23zm1.15 6.04c-.34-.38-1.01-.57-1.57-.55-.36-.43-2.26-2.43-2.63-2.83.79-.55 1.47-1.27 2-2.13h-.77v-.23h.9c.06-.1.11-.21.17-.31h-1.07v-.23h1.18c.47-1.02.74-2.19.71-3.47 0-.35-.11-1.84-.31-2.24-.54.21-1.54.88-1.76 1.57-1.07-.16-2.29-.14-3.35.04-.18-.74-1.07-1.31-1.74-1.62-.29.48-.41 1.59-.38 2.37H9.1c.03.71.12 1.37.28 1.97-2.32.58-4.84 2.1-6.26 3.56-.66-.89-.93-1.63-1-2.18-.1-.7.07-1.34.49-1.86.65-.81 1.58-.86 2.53-.71-.02.15 0 .29.06.38.25.37 1.6.5 2.41.14-.59-.84-1.8-1.24-2.14-1.08-.11.06-.19.15-.25.27-.33-.06-.66-.1-.89-.1-.84.01-1.48.3-1.96.89-.47.59-.66 1.31-.55 2.1.11.75.47 1.54 1.1 2.37l-.3.33C1.1 12.77 0 14.58 0 14.88v.16h1.99l-.03-.19c-.11-.59.11-1.34.57-1.89.29-.35.77-.75 1.52-.93.67.66 1.52 1.34 2.47 2.02H8v-.16c0-.18-.08-.33-.24-.44-.23-.15-.59-.18-.93-.06-.32-.35-.49-.82-.53-1.41 3.21.28 6.29 1.58 9.76 3.4h1.91l.02-.12c.03-.18-.06-.42-.26-.64m-1.4-8.06-.14.41-.62-.1zm-.31.92-.11.34-.47-.17zm-1.16-3.23c-.01 0-.02-.01-.02-.01s.01.01.02.01m-1.43.06-.38 1.3-.58-1.28zm-2.99 2.38-.84.05-.09-.55zm-.13.73-.47.13-.09-.36zM4.67 9.51l.53-.4.26.94zm1.17-.77.6-.36.54.94zm1.06-.55 1.03-.47.51 1.51zm4.13.93H9.21v-.23h1.82zm0-.54H9.21v-.23h1.82zm1.2.77-.11-.17.65-.43-1.15-.72.05-.08c.15-.26.28-.59.37-.92h-.88v-.2h.92c.11-.49.14-.95 0-1.19-.06-.1-.14-.15-.25-.15-.53 0-.75.56-.75.58L10.89 6c.01-.03.28-.71.94-.71.19 0 .33.08.43.25.17.29.15.78.03 1.29h1.61c.21-.63.66-.93 1.41-.93v.2c-.81 0-1.04.34-1.2.73h.88v.2l-.88-.01h-.08c-.1.34-.02.64.21 1-.06.03-1.14.74-1.13.74l.72.45-.11.17-.79-.51zm1.39 2.29.37.36-.86.4zm-.02 1.46.79-.6.31.32zm-1.51-5.01.85.54.81-.54zm1.74-1.07h-1.59c-.08.32-.2.62-.33.87h2.06c-.18-.3-.21-.64-.14-.87" /></symbol>'});s().add(c);const r=c},19943:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"asterisk",use:"asterisk-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="asterisk"><path d="M7.417 1v.583h1.166V1zM7.417 2.75v1.167h1.166V2.75zM7.417 5.083V6.25h1.166V5.083zM7.417 9.75v1.167h1.166V9.75zM7.417 12.083v1.167h1.166v-1.167zM7.417 14.417V15h1.166v-.583zM1 8.583h.583V7.417H1zM2.75 8.583h1.167V7.417H2.75zM5.083 8.583H6.25V7.417H5.083zM8 8.802l-.011.012-.23-.23h-.342v-.342l-.23-.23.01-.012-.01-.011.23-.23v-.342h.341l.23-.23.012.01.011-.01.23.23h.342v.341l.23.23-.01.012.01.011-.23.23v.342h-.341l-.23.23zM9.75 8.583h1.167V7.417H9.75zM12.083 8.583h1.167V7.417h-1.167zM14.417 8.583H15V7.417h-.583zM14.83 1.996l-.402.4-.825-.824.401-.401zM13.626 3.199 12.824 4l-.825-.825.802-.802zM12.022 4.803l-.802.802-.825-.825.802-.802zM10.418 6.407l-.802.802-.825-.825.802-.802zM7.21 9.616l-.803.802-.825-.825.802-.802zM5.605 11.22l-.802.802-.825-.825.802-.802zM4.001 12.824l-.802.802-.825-.825.802-.802zM2.397 14.428l-.401.401-.825-.825.4-.4zM1.17 1.996l.402.4.825-.824-.401-.401zM2.374 3.199 3.176 4l.825-.825-.802-.802zM3.978 4.803l.802.802.825-.825-.802-.802zM5.582 6.407l.802.802.825-.825-.802-.802zM8.79 9.616l.803.802.825-.825-.802-.802zM10.395 11.22l.802.802.825-.825-.802-.802zM11.999 12.824l.802.802.825-.825-.802-.802zM13.603 14.428l.401.401.825-.825-.4-.4z" /></symbol>'});s().add(c);const r=c},47306:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"beanstalk",use:"beanstalk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="beanstalk"><path d="M8.37 8.56c-.29 0-.54.11-.76.32-.22.21-.33.57-.33 1.06 0 .36.04.65.13.87.17.42.48.63.94.63.34 0 .6-.14.77-.41.17-.27.26-.64.26-1.08 0-.4-.09-.73-.26-.99-.16-.27-.41-.4-.75-.4M6.99 5.64c-1.61-.73-4.05-.68-4.56-.71-.52-.03-1.27-.15-1.41-.57.08 1.24.58 4 1.57 5.94.99 1.94 3.11 2.79 4.15 3.08 1.04.29 2.7.28 3.11.3.41.02.55.43.65.9.11.53.05 1.72-.27 2.42h.72c.13-2.14-.14-4.86-.58-7.23-.44-2.36-1.77-3.4-3.38-4.13m2.61 5.77c-.29.4-.69.59-1.21.59-.29 0-.53-.07-.73-.21-.12-.08-.24-.21-.38-.4v.49H6.7V6.66h.62v1.89c.14-.18.31-.32.5-.42.19-.1.4-.14.63-.14.47 0 .86.16 1.15.49.29.32.44.8.44 1.44 0 .6-.15 1.09-.44 1.49M16.98 1c-.3.29-1.48.42-1.92.44-.44.02-2.03.07-3.47 1.17-1.44 1.1-1.55 4.67-1.2 6.37-.13-.92.28-1.36.51-1.47.34-.16.68-.08 1.45-.13 1.25-.08 2.46-.92 3.3-2C16.49 4.29 17 1.71 16.98 1" /></symbol>'});s().add(c);const r=c},78902:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"bind",use:"bind-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="bind"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14m.02-1.128a5.892 5.892 0 1 0-5.206-3.131c.123.206.25.394.38.581.215.312.456.604.762.866.355.305.759.597 1.223.657.185.024.334.024.334.024h.314l.815-.084.188-.02c.15-.018.453-.091.585-.126.773-.23 1.525-.982 1.63-1.087.083-.083.3-.369.397-.501.054-.07.03-.17.006-.27l-.005-.021a3.113 3.113 0 1 1 1.65-3.131c.122.655.227 1.762-.084 2.586-.48 1.275-.773 1.65-1.484 2.382-.535.551-1.248.886-1.591 1.004a.087.087 0 0 0-.06.083.194.194 0 0 1-.12.182c.09.004.178.006.267.006m-1.368-.16a8.949 8.949 0 0 1-1.012-.341c.323.143.661.257 1.012.34M10.069 8A2.069 2.069 0 1 1 5.93 8a2.069 2.069 0 0 1 4.138 0" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},28676:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"containerTech",use:"containerTech-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="containerTech"><path d="M10.42 1.81c-.46-.34-1.02-.53-1.59-.53-.41 0-.82.1-1.19.28L2.61 4.08l4.45 3.34 6.5-3.25zm-1.79.5c.07-.01.13-.02.2-.02.02 0 .04.01.06.01a.758.758 0 0 0-.26.01M2 9.47c0 .65.31 1.26.83 1.65L6.4 13.8l.1.08V8.25L2 4.88zm5.5-1.16v5.56l1.5-.75V9.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l1-.5V8.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l.86-.43c.7-.35 1.14-1.06 1.14-1.85V5.06z" /></symbol>'});s().add(c);const r=c},89399:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"coreDNS",use:"coreDNS-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="coreDNS"><path d="m7.508 7.097-.074-.074L5.48 8.977l-.013.014a.661.661 0 0 0-.11.15l-.003.004-.029.06a.697.697 0 0 0 .151.753l.394.394 1.635-1.636a1.142 1.142 0 0 0 .003-1.62" /><path d="m14.405 5.14-.84-.841a1.143 1.143 0 0 0-1.536-.074c-.03.022-.055.048-.084.074l-.64.64 2.005 2.007c.05.051.098.106.142.164l.003.005c.03.173.052.35.068.526l-.003.003a5.812 5.812 0 0 0-.071-.528 1.365 1.365 0 0 0-.142-.164l-2.003-2.01L9.112 2.75a1.632 1.632 0 0 0-2.3 0l-4.53 4.527a1.63 1.63 0 0 0-.24 1.987l.002.004-.434.427a1.145 1.145 0 0 0 0 1.62l.84.84a1.148 1.148 0 0 0 1.62 0l.394-.394 2.014 2.014a1.632 1.632 0 0 0 2.299 0l4.533-4.527a1.623 1.623 0 0 0 .358-1.752l-.073.073.076-.076-.002-.005.733-.732a1.144 1.144 0 0 0 .003-1.617m-3.493 2.55a1.25 1.25 0 0 1 0 0M7.624 11.12a1.304 1.304 0 0 1-1.841 0l-.342-.34-.977.976-1.091-1.091 1.09 1.09.978-.979-.39-.39a1.316 1.316 0 0 1-.232-1.526c.061-.116.14-.223.233-.315l1.952-1.953.002.002 1.046-1.047a1.302 1.302 0 0 1 1.842 0l.4.4-.429.428.002.001-.002.002-.402-.403a.68.68 0 0 0-.622-.193.693.693 0 0 0-.357.19L7.437 7.02l.075.074a1.145 1.145 0 0 1 0 1.62l-1.64 1.638.342.341a.691.691 0 0 0 .753.152l.062-.03c.003 0 .003-.003.006-.003a.72.72 0 0 0 .161-.119l1.32-1.32-.013-.013a1.145 1.145 0 0 1 0-1.62l.003-.002a1.144 1.144 0 0 0 0 1.62l.012.01-.002.002.428.428 1.681-1.68a.867.867 0 0 0 0 .003z" /></symbol>'});s().add(c);const r=c},99229:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"couchDB",use:"couchDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="couchDB"><path d="M14 10.75c0 .66-.35.99-1 1H5c-.65-.01-1-.34-1-1 0-.66.35-.99 1-1h8c.65.01 1 .34 1 1m-1 1.5H5c-.65.01-1 .34-1 1 0 .66.35.99 1 1h8c.65-.01 1-.34 1-1 0-.66-.35-.99-1-1m2.5-5.5c-.65.01-1 .34-1 1v5.5c0 .66.35.99 1 1 .98-.03 1.5-1.01 1.5-3v-2.5c0-1.33-.52-1.98-1.5-2m-13 0c-.98.02-1.5.67-1.5 2v2.5c0 1.99.52 2.96 1.5 3 .65-.01 1-.34 1-1v-5.5c0-.66-.35-.99-1-1m13-.5c0-1.66-.87-2.47-2.5-2.5H5c-1.63.03-2.5.84-2.5 2.5.98.02 1.5.5 1.5 1.5 0 .99.52 1.48 1.5 1.5h7c.98-.02 1.5-.5 1.5-1.5 0-.99.52-1.48 1.5-1.5" /></symbol>'});s().add(c);const r=c},97116:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"database",use:"database-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="database"><path d="M9 10c5.153 0 7.5-2.073 7.5-4S14.153 2 9 2C3.847 2 1.5 4.073 1.5 6s2.347 4 7.5 4m0-6.5c3.313 0 6 1.119 6 2.5s-2.687 2.5-6 2.5S3 7.381 3 6s2.687-2.5 6-2.5m5.566 9.431C13.68 13.85 11.523 14.5 9 14.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 12c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369m0-3C13.68 10.85 11.523 11.5 9 11.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 9c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369" /></symbol>'});s().add(c);const r=c},77840:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dns",use:"dns-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dns"><path d="M12.233 9.344c-.564 0-1.174-.151-1.19-.745l-.552.002c0 .907.865 1.172 1.7 1.172.743 0 1.588-.246 1.588-1.084 0-.68-.822-.796-1.112-.848l-.906-.14c-.456-.07-.604-.232-.604-.435 0-.389.46-.54.858-.54.885 0 1.058.354 1.099.61h.549c-.056-.796-.828-1.037-1.575-1.037-.947 0-1.48.398-1.48 1.005 0 .643.658.805 1.098.865l.84.124c.428.07.687.19.687.49-.002.357-.42.561-1 .561M3.154 3.801a6.836 6.836 0 0 1 1.888-1.216c-.512.616-.933 1.385-1.24 2.264h1.112c.176-.449.388-.86.631-1.234.355-.535.775-.967 1.212-1.247.234-.148.47-.256.713-.319v2.8h1.053v-2.8c.242.063.479.17.713.32.438.277.856.71 1.21 1.246.245.372.457.785.634 1.232h1.109c-.306-.878-.729-1.648-1.24-2.264a6.82 6.82 0 0 1 1.89 1.217c.355.319.664.672.931 1.047h1.213c-1.325-2.274-3.954-3.825-6.986-3.825-3.032 0-5.662 1.551-6.988 3.825H2.22c.268-.375.579-.727.934-1.046M9.446 9.012h-.012L7.059 6.38H6.42v3.306h.549V7.055h.01l2.377 2.632h.638V6.381h-.55zM4.155 6.38H2.28v3.306h1.907c1.133 0 1.584-.778 1.584-1.699.001-.959-.507-1.607-1.616-1.607m.007 2.88-1.33-.002V6.806h1.227c.952 0 1.166.61 1.166 1.189-.002.589-.162 1.266-1.063 1.266M12.84 12.22a6.859 6.859 0 0 1-1.89 1.216c.514-.615.935-1.386 1.24-2.264h-1.11c-.176.448-.389.86-.635 1.233-.353.536-.774.968-1.211 1.249a2.542 2.542 0 0 1-.711.317V11.17H7.472v2.8c-.24-.064-.48-.171-.714-.318-.438-.28-.854-.711-1.21-1.249a6.986 6.986 0 0 1-.635-1.233H3.802c.305.879.728 1.648 1.24 2.264a6.836 6.836 0 0 1-1.888-1.217 6.42 6.42 0 0 1-.934-1.047H1.01c1.327 2.276 3.956 3.827 6.988 3.827 3.032 0 5.663-1.551 6.988-3.827h-1.213c-.268.377-.577.73-.931 1.05" /></symbol>'});s().add(c);const r=c},49762:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dnsmasq",use:"dnsmasq-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dnsmasq"><path fill-rule="evenodd" d="M8 4c-1.91 0-3.648.475-4.915 1.253C1.822 6.028 1 7.125 1 8.37c0 1.245.822 2.342 2.085 3.117.36.221.748.248 1.141.178.388-.07.794-.236 1.2-.417l.269-.12c.747-.338 1.51-.683 2.305-.683.794 0 1.558.345 2.305.682l.268.12c.407.182.813.348 1.201.418.393.07.781.043 1.14-.178C14.179 10.713 15 9.616 15 8.371c0-1.246-.822-2.343-2.085-3.118C11.648 4.475 9.909 4 8 4M4.259 7.949c0-.006.002-.029.04-.067a.644.644 0 0 1 .202-.124c.193-.081.473-.136.792-.136.32 0 .6.055.792.136.097.041.163.085.202.124.039.038.04.06.04.067 0 .006-.001.028-.04.066a.644.644 0 0 1-.202.124 2.116 2.116 0 0 1-.792.136c-.319 0-.599-.055-.792-.136a.644.644 0 0 1-.202-.124c-.038-.038-.04-.06-.04-.066m5.397.085zv-.001c0-.001 0-.004.003-.008a.152.152 0 0 1 .032-.038.652.652 0 0 1 .2-.115c.194-.076.474-.127.793-.127.319 0 .6.051.793.127.097.039.163.08.201.115a.15.15 0 0 1 .032.038.03.03 0 0 1 .003.008v.002a.035.035 0 0 1-.003.008.153.153 0 0 1-.032.038.652.652 0 0 1-.201.115 2.255 2.255 0 0 1-.793.127c-.319 0-.599-.05-.792-.127a.651.651 0 0 1-.201-.115.152.152 0 0 1-.032-.038.036.036 0 0 1-.003-.007z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},44555:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"docker_hub",use:"docker_hub-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub"><g clip-path="url(#docker_hub_a)"><path d="M9.98 4.37v1.3h-1.3v-1.3zm-1.96 0v1.3h-1.3v-1.3zm5.01 1.32c1.4 0 1.15 1.75 1.26 1.77.34-.15.7-.21 1.02-.21.65 0 1.18.21 1.18.21.01 1-.87 1.49-2.05 1.59-.6.05-.97.53-1.19 1.01-.56 1.21-1.43 2.28-2.62 2.89-.79.4-1.77.7-2.96.7h-.88c-2.65 0-4.07-1.92-5.09-3.45-.52-.79.05-1.84 1-1.84h8.53c.21 0 1.63-.03 1.3-.88-.3-.77.44-1.77.44-1.77.02-.02.04-.02.06-.02m-3.05.63v1.3h-1.3v-1.3zm-1.96 0v1.3h-1.3v-1.3zm-1.95 0v1.3h-1.3v-1.3zm5.41-3.45H5.22v1.96H3.26v2.02H2.7c-1 0-1.91.55-2.38 1.42-.47.87-.42 1.93.13 2.75.89 1.34 2.74 4.12 6.34 4.12h.88c1.29 0 2.51-.29 3.64-.86 1.4-.71 2.55-1.95 3.31-3.59.03-.07.06-.12.09-.16 2.44-.25 3.3-1.75 3.29-3.08l-.01-1.02-.95-.37c-.13-.05-.78-.29-1.61-.31-.59-1.38-1.81-1.56-2.4-1.56h-.11l-.72.03-.43.58c-.06.07-.17.23-.29.45v-.88z" /></g><defs><clipPath id="docker_hub_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'});s().add(c);const r=c},31411:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"docker_hub_press",use:"docker_hub_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub_press"><path d="M7.9 3.77H6.42v1.47H7.9zm2.21 2.21H8.63v1.47h1.47V5.98zm0-2.21H8.63v1.47h1.47V3.77zm4.87 3.49c-.13-.02.16-2.05-1.5-1.99 0 0-.84 1.12-.5 1.99.41 1.04-1.5 1-1.5 1h-9.6C.81 8.26.16 9.45.75 10.34c1.15 1.73 2.76 3.9 5.75 3.9h1c1.34 0 2.46-.34 3.35-.79 1.35-.68 2.33-1.89 2.96-3.26.25-.53.67-1.08 1.34-1.14 1.33-.11 2.33-.66 2.32-1.8 0 .01-1.35-.52-2.49.01M5.69 5.98H4.21v1.47h1.47V5.98zm2.21 0H6.42v1.47H7.9z" /></symbol>'});s().add(c);const r=c},5157:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"dotnet",use:"dotnet-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dotnet"><path d="M2.389 9.991c0 .127-.054.24-.14.32a.488.488 0 0 1-.672 0 .44.44 0 0 1 .001-.64.49.49 0 0 1 .672 0c.085.08.139.194.139.32zm4.758.379h-.852L4.053 6.83c-.052-.08-.1-.171-.138-.268l-.003-.01h-.02a4.874 4.874 0 0 1 .026.668v-.007 3.156h-.753V5.556h.907L6.24 9.011c.091.143.15.242.177.296h.013a4.205 4.205 0 0 1-.033-.653v.005-3.103h.75zm3.667 0H8.178V5.556h2.532v.678H8.958v1.364h1.614v.675H8.958v1.423h1.856zm3.747-4.136h-1.35v4.136h-.779V6.234h-1.346v-.678h3.474z" /></symbol>'});s().add(c);const r=c},31896:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"eBPF",use:"eBPF-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="eBPF"><path d="M16.291 4.293a.445.445 0 0 0-.629.029c-.315.345-1.152.89-2.217 1.093a3.968 3.968 0 0 0-1.848-1.306c-.132-1.01.002-1.838.419-2.663a.444.444 0 1 0-.795-.4c-.455.901-.63 1.822-.538 2.885-.901-.052-1.749.269-2.279.953a2.373 2.373 0 0 0-.278.458C7.3 5.05 6.365 4.913 5.47 4.913c-1.586 0-3.049.426-3.574 1.161-1.119 1.564.86 3.292 2.061 3.802a3.694 3.694 0 0 0-.344 1.501c-.007.745.227 1.493.677 2.163.131.195.28.38.443.553l-.384 1.778 1.75-.79c.41.19.843.312 1.275.356.12.012.248.02.385.02.699 0 1.593-.197 2.489-.935.713 1.02 1.738 1.678 2.751 1.678h.074c1.467-.048 3.18-1.955.372-6.939a2.32 2.32 0 0 0 .249-.273c.597-.77.648-1.816.235-2.767 1.068-.267 1.948-.812 2.392-1.298a.449.449 0 0 0-.03-.63M9.735 9.41a5.275 5.275 0 0 0-.431 2.292c-.68 0-1.291-.232-1.719-.664-.316-.319-.497-.718-.495-1.072a4.242 4.242 0 0 0 1.946-1.087 4.05 4.05 0 0 0 .699.531m-4.049-.079a5.11 5.11 0 0 1-.246-.006c-.003-.71.155-1.312.951-1.952.95.03 1.868.167 2.588.307a3.323 3.323 0 0 1-.404.518c-.698.752-1.67 1.133-2.889 1.133m-.217-3.614c.963 0 1.904.172 2.653.485.829.413 1.002.739 1.031.897a.511.511 0 0 1-.009.204c-1.687-.337-3.169-.426-4.404-.263-.03.004-.059.01-.088.013-.376-.13-.803-.427-1.049-1.091.534-.158 1.193-.245 1.866-.245M2.453 7.453c-.138-.345-.108-.626.096-.911.139-.195.43-.347.675-.447.137.366.374.783.787 1.08a5.139 5.139 0 0 0-1.422.546 1.991 1.991 0 0 1-.136-.268m.98 1.173a4.029 4.029 0 0 1-.608-.58c.519-.297 1.126-.478 1.769-.578.008 0 .116-.017.116-.017.356-.05.721-.075 1.087-.082-.616.63-.755 1.26-.757 1.926a6.278 6.278 0 0 1-.52-.078c-.175-.033-.608-.218-1.087-.591m4.024 6.011c-.967-.1-1.925-.692-2.499-1.546-.644-.957-.71-2.037-.202-3.019.145.02.303.037.469.048.041.797.406 1.601 1.032 2.233.783.791 1.866 1.218 3.043 1.218.137 0 .275-.007.414-.018.038.09.078.178.12.265-.713.623-1.53.906-2.377.82m2.658-2.827a4.486 4.486 0 0 1 .482-2.348c.064-.118.176-.253.317-.373.464.883.81 1.666 1.05 2.384-.331.79-.891 1.311-1.608 1.51a4.542 4.542 0 0 1-.241-1.173m2.177 3.434a2.554 2.554 0 0 1-.445-.24 3.76 3.76 0 0 1-1.078-1.152 4.387 4.387 0 0 1-.262-.493c.686-.199 1.244-.652 1.627-1.323.079.294.14.577.182.852.141.903.072 1.623-.024 2.356m1.619-.404c-.273.484-.695.55-.864.554l-.048.001c-.104 0-.209-.01-.316-.032.065-.495.122-.988.116-1.535.368.241.887.41 1.304.454-.039.212-.103.4-.192.558m.183-1.71c.041.27.057.523.049.755a2.794 2.794 0 0 1-.619-.149c-.362-.13-.652-.31-.755-.469-.101-1.099-.486-2.446-1.515-4.398a.98.98 0 0 1 .414-.1c.158 0 .308.049.458.151.217.147.425.394.617.736.748 1.328 1.203 2.496 1.351 3.473" /></symbol>'});s().add(c);const r=c},62520:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"elasticSearch",use:"elasticSearch-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="elasticSearch"><path d="m6.21 6.83-2.52-.59c-1.03.33-1.73 1.32-1.73 2.39 0 1.05.65 1.99 1.62 2.36L6.8 8.08zm4.49 2.63 3.37-2.96c.05-.25.07-.5.07-.75 0-2.08-1.69-3.76-3.76-3.76-1.25 0-2.41.61-3.1 1.64l-.56 2.91.65 1.39zM6.17 6.23l.51-2.6c-.32-.24-.7-.37-1.1-.37-.99 0-1.81.81-1.81 1.81 0 .21.04.43.11.62zm8.25.75-3.3 2.88.67 1.28 2.52.59a2.535 2.535 0 0 0 1.73-2.39c0-1.05-.64-1.98-1.62-2.36m-2.59 4.77-.5 2.59c.32.24.7.38 1.09.38.99 0 1.81-.81 1.81-1.81 0-.22-.04-.43-.11-.62zM7.2 8.5l-3.29 2.97c-.05.24-.07.5-.07.76 0 2.08 1.7 3.77 3.77 3.77 1.26 0 2.42-.62 3.13-1.65l.55-2.91-.75-1.42z" /></symbol>'});s().add(c);const r=c},14191:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"example",use:"example-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="example"><path d="M12.134 2.662c.363.346.681.736.948 1.163l.818-.667-.948-1.163zm-8.259.008-.827-.674L2.1 3.159l.833.68a6.19 6.19 0 0 1 .942-1.169m-1.774 8.172.948 1.163.824-.672a5.966 5.966 0 0 1-.947-1.164zM1 6.25v1.5h1.051a5.978 5.978 0 0 1 .005-1.5zm12.948 0c.031.246.052.496.052.75 0 .253-.017.503-.048.75H15v-1.5zm-1.822 5.082.825.673.948-1.163-.822-.67a5.897 5.897 0 0 1-.951 1.16M8 1.5a5.74 5.74 0 0 0-.679.041c-2.399.29-4.4 2.232-4.759 4.62A5.485 5.485 0 0 0 3.78 10.5H9a1 1 0 0 1-1 1H4.886c.04.027.074.06.114.086v.26A2.656 2.656 0 0 0 7.654 14.5h.692A2.656 2.656 0 0 0 11 11.846v-.259A5.447 5.447 0 0 0 13.5 7c0-3.033-2.467-5.5-5.5-5.5M8 5a2 2 0 0 0-2 2H5c0-1.654 1.346-3 3-3z" /></symbol>'});s().add(c);const r=c},50861:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"freeNAS",use:"freeNAS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeNAS"><path d="M17.33 7.17c-.43.86-2.22 1.51-2.94 1.43l-.43.79-.43-.72c-1.08.22-2.44.07-2.58-.14-.14-.22-.14-.43-.14-.43l.93-1.15-2.37-.5 3.01-.57c.43-.86 1.08-2.51 1-3.37-.65 0-5.45.57-6.88 1.86-1.79-1.43-4.01-1.64-4.94-1.64.79.72.79 1.22.79 1.79v1.29s-.72 1.29-.93 2.44c-.21 1.15.14 2.72.72 3.66.18.29.44.76.84 1.25-.45.76-1.07 1.83-.98 1.83.09 0 .97-.7 1.58-1.18.94.88 2.4 1.69 4.73 1.69 4.23 0 6.31-3.44 6.38-4.66 2.28-.66 2.78-2.74 2.64-3.67m-5.23 5.59c-.57.29-1.72.5-2.51 0-.73-.46-.72-1.51-.57-2.01.15-.5.93-1.65.93-1.65.36 1 1.79 1.86 3.08 1.86 0 .8-.36 1.52-.93 1.8" /></symbol>'});s().add(c);const r=c},13974:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"haProxy",use:"haProxy-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="haProxy"><path d="m15.93 8.98.53-.52v.01h.48V8h-.48v.2l-1.29-.26v-.31l1.06-.72V7h.48v-.47h-.48v.06l-.71-.4.26-.61h.31v-.47h-.48v.24l-.95.07v-.38h-.17l.4-.72h.37v-.47h-.48v.16l-.69-.11-.07-.65h.18v-.47h-.48v.29l-.75.38v-.2h-.38l.07-.83h.26v-.47h-.48v.27l-.67.18-.37-.62h.08v-.47H11v.47h.05l-.51.62h-.45l-.26-.93h.16V1h-.48v.43l-.55.44-.5-.39V1h-.47v.48h.15l-.26.92h-.45l-.49-.6h.03v-.47h-.48v.47h.07l-.36.6-.65-.18v-.29h-.47v.48h.25l.06.87H5v.19l-.73-.34v-.34h-.48v.47H4l-.08.7-.68.13v-.24h-.48v.47h.31l.42.73h-.18v.39l-.92-.07v-.24h-.48v.47h.32l.27.6-.69.4v-.07h-.48V7h.48v-.08l.99.68v.35l-1.27.24v-.17h-.48v.47h.46l.54.51-.54.51h-.46v.47h.48v-.17l1.28.22v.33l-1.01.69v-.02h-.48v.47h.48v-.07l.69.38-.26.62H1.9v.47h.48v-.24l.94-.09v.37h.19l-.44.79h-.32v.47h.48v-.21l.69.1.07.68h-.18v.47h.48v-.3l.73-.4v.18h.39l-.07.95h-.22v.47h.48v-.31l.66-.2.36.6h-.11v.47h.48v-.47h-.02l.51-.66h.42l.26.97h-.12v.47h.48v-.46l.5-.4.55.45v.41h.47v-.48h-.17l.27-.94h.45l.51.65h-.07v.47h.48v-.47h-.09l.38-.64.65.19v.32h.47v-.48h-.25l-.06-.91h.4v-.21l.74.37v.35h.48v-.47h-.21l.08-.69.7-.1v.23h.48v-.47h-.34l-.42-.78h.16v-.39l.95.1v.28h.48v-.47h-.32l-.29-.66.74-.42v.13h.48v-.47h-.48v.07l-1.07-.71v-.33l1.3-.24v.17h.48v-.47h-.46zm.54-.75v.2l-.55.53-.74-.72v-.27zm-.24-1.61v.26l-1.06.72v-.15h-.19l.53-1.24zm-.62-1.24v.2h.14l-.25.59-.83-.47v-.25zm-.94.53v-.18l.82.47-.54 1.25h-.65v.3l-.67-.18.01-.83h-.25l.56-.82zm-1.25 4.11.6-.93.38.58h-.1v.6l-.69.23v-.49zm-2.68 2.27.11-1.34 1.43-.12v.49h.57l-.15 1.34-1.4.16v-.54zm-2.79 0 .23-.26 1.64.01.21.24h-.06l-.01 1.14-.98.75-1.01-.77.01-1.11zM4.6 8.03l-.63.95-.43-.67h.13v-.52l.72-.2v.44zm2.63-2.34-.14 1.44-1.38.16v-.56h-.57l.14-1.4 1.39-.17v.53zm2.8 0-.25.29-1.6-.01-.25-.27H8l.01-1.14.97-.75 1.02.78-.01 1.1zm2.81 1.04-.52-.01-.01.56-1.47-.17-.12-1.43h.59v-.55l1.38.17zm-.12-1.41 1.07.13v.46h.12l-.56.82-.48-.01zm-1.79 2.73-.07-.86 1.46.17-.01.52-.29.25v-.06zm-2.89 2.09-.01.81-.89-.09-.09-.89.81.01.01-1.9-.82-.01.09-.88.88-.1-.01.78 1.9.01.01-.8.85.1.07.87-.75-.01-.01 1.9.77.01-.08.94-.85.07.01-.81zM5.98 8.25l-.01 1.58-.25.22v-.01l-1.07-.01-.67-1.02.65-.98 1.07.01v-.03zm-.27-.33v-.57l1.37-.16-.09.88-1.01-.01v.1zm.01 2.22.25-.22v.04l1.02.01.09.88-1.37-.14zm5.22-.19 1.04.01.32.28v.54l-1.43.12zm-.16-2.84-.85-.1.01-1.03h-.08l.25-.29h.54zM8.09 5.97h-.05l-.01 1.05-.88.1.15-1.43h.55zm-2.98.75H4.6l-.55-.8h.11v-.46l1.08-.13zm-.5 3.32h-.22v.43l-.71-.22v-.58h-.12l.41-.62zm.5 1.32.14 1.31-1.06-.12v-.5h-.08l.5-.71zm.03 0 .57.01.01-.59 1.38.14.14 1.37h-.56v.55l-1.39-.15zm2.02-.44.88.09-.01 1.03h.06l-.23.26H7.3zm2.75 1.13h.02l.01-1.02.85-.07-.11 1.33h-.55zm2.97-.72h.46l.54.73h-.09v.47l-1.06.12zm-.59-1.32v.14L12 9.9l.01-1.69.29-.25v.09l1.04.01.65 1-.62.96zm1.73-.99-.63-.96h.24V7.6l.67.18v.53h.17zm.76-4.98v.29h.08l-.4.72h-.25l-.12-1.11zm-1.06-.94v.15h.27l.07.65-1.09-.17v-.26zm-.74 1.02v-.35l1.09.17.12 1.12h-.39v.37l-1.08-.14-.13-1.17zm-.29 1.16-1.37-.17v-.53l.79-.56v.1h.45zm-.24-3.04v.17h.19l-.07.84h-.27l-.5-.84zm-1.36-.46h.29l.37.62-1.12.3v-.31h-.05zm-.45 1.49v-.53l1.13-.31.5.83h-.16v.73l-.79.55v-.16l-.81-.01-.21-1.1zm-.38 0 .21 1.1h-.48v.18L9 3.8l.77-.59v.07zm-.75-1.81v.01h.3l.26.93h-.31v.08l-.78-.6zm-.55.44.8.61v.65l-.79.61-.78-.6V2.5zm-.79-.41h.26l.52.4-.75.59v-.07h-.3zm.03 1.78v-.06l.76.58-.94.72v-.14h-.54l.21-1.1zM6.59 1.8h.31l.49.6h-.06v.3l-1.11-.3zm-.37.62 1.12.31v.54h.32l-.21 1.1-.75-.01v.22L5.87 4v-.72H5.7zm-.86-.01h.2v-.16l.63.17-.52.86h-.25zm.05 1.74h.46v-.11l.82.58v.5l-1.39.17zm-1.38-.9h.24v-.1L5 3.5v.26l-1.05.19zm-.08.72L5 3.78v.36h.37l-.12 1.15-1.08.13v-.38h-.36zm-.85.34h.14V4.1l.68-.12-.12 1.06h-.28zm.92 1.61.55.8h-.18l-.01.85-.72.2v-.31h-.59l-.55-1.23.78-.46v.15zm-1.77-.34h.14v-.2l.92.07v.27l-.79.46zM1.8 6.9v-.27l.7-.41.54 1.22H2.8v.13zm-.27 1.58v-.26l1.27-.24v.32l-.73.69zm0 1.31v-.25l.54-.51.73.69v.3zm1.28-.12v.01l-.71-.67.73-.7h.67l.45.7-.43.65zM1.8 11.4v-.32l1.01-.68v.13h.23l-.54 1.26zm.57 1.23v-.2h-.12l.26-.6.8.45v.27zm.94-.56v.18l-.79-.44.55-1.27h.61v-.25l.71.22-.01.86h.17l-.5.71zm-.09 1.89v-.24h-.13l.44-.79h.25l.12 1.12zm1.06.94v-.14h-.27l-.07-.68 1.07.15v.27zM5 13.84v.36l-1.07-.15-.12-1.13h.37v-.34l1.06.12.12 1.13zm.28-1.13 1.39.15v.52l-.79.57v-.12H5.4zm.29 3.08v-.14h-.23l.07-.95h.26l.53.89zm1.33.43h-.29l-.36-.61 1.07-.33v.28h.09zm.42-1.53v.56l-1.09.34-.53-.88h.17V14l.79-.57v.18l.79.01.21 1.08zm.37 0-.21-1.08h.5v-.17l.98.75-.77.59v-.1zm.77 1.84h-.31l-.26-.97h.3v-.07l.77.63zm-.27-1.07v-.62l.8-.61.8.61v.63l-.8.64zm1.62 1.06h-.27v.04l-.53-.44.78-.63v.08h.3zm-.02-1.81v.09l-.77-.59.95-.73v.14h.53l-.21 1.1zm1.58 1.53h-.26l-.51-.66h.05v-.31l1.1.33zm.39-.67-1.11-.33v-.53h-.34l.21-1.1.76.01v-.21l.83.6v.71h.15zm.86.06h-.2v.13l-.64-.19.51-.86h.26zm-.05-1.78h-.44v.12l-.83-.6v-.5l1.39-.16zm1.4.91h-.24v.1l-.74-.37v-.26l1.06-.16zm.08-.72-1.06.16v-.34h-.39l.13-1.16 1.07-.12v.36h.39zm.83-.32h-.11v.22l-.7.1.13-1.1h.26zm-.95-1.65-.54-.73h.22l.01-.8.69-.23v.23h.61l.54 1.25-.79.45v-.16zm1.82.38h-.13v.17l-.95-.1v-.26l.8-.46zm.48-1.32v.21l-.75.43-.54-1.23h.23v-.12zm-1.78-1.47-.4-.61.47-.74h.66v-.03l.72.7-.73.71v-.02zm2.02.13-1.3.24v-.31l.74-.72.55.54z" /></symbol>'});s().add(c);const r=c},51665:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"httpCheck",use:"httpCheck-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="httpCheck"><path d="M7.16 7.35c0 .47.16.76.79.76.16 0 .42-.02.56-.06v-.59H8.4c-.18 0-.22-.05-.22-.18v-.93h.39V5.7h-.39v-.6h-1v.6h-.33v.65h.32v1zM12.6 6.3c-.22 0-.28.16-.28.6 0 .39.06.58.27.58.21 0 .29-.16.29-.61.01-.46-.1-.57-.28-.57M9 2c-3.08.26-4.98.86-6.39 1.6v5.11c0 3.26 2.62 6.78 6.39 7.29 3.77-.51 6.39-4.03 6.39-7.29V3.6C13.98 2.86 12.08 2.26 9 2m.31 3.69h.33v-.6h1v.6h.39v.65h-.39v.93c0 .13.04.18.22.18h.11v.59c-.14.04-.4.06-.56.06-.62 0-.79-.29-.79-.76v-1H9.3v-.65zM9 13.52v1.84c-1.58-.24-3.04-1.08-4.12-2.38-1.04-1.24-1.63-2.8-1.63-4.27V3.99C4.73 3.28 6.58 2.85 9 2.64v9.07l2.36-2.36.9.9zm3.88-5.39c-.27 0-.43-.09-.53-.21v.99h-1.02V5.7h.99c.01.06.02.19.02.25.09-.13.27-.31.66-.31.48 0 .92.39.92 1.19.01.91-.51 1.3-1.04 1.3M7.69 10.4l-.9.9L9 13.52v-1.81zM5.86 5.63c-.34 0-.54.15-.67.29v-1.1H4.17v3.24h1.02V6.75c0-.25.03-.41.23-.41.14 0 .2.09.2.29v1.44h1.02V6.52c-.01-.55-.26-.89-.78-.89" /></symbol>'});s().add(c);const r=c},66689:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"iceCast",use:"iceCast-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="iceCast"><path d="m14.94 12.17-.22-.39c-.01-.02-.02-.03-.04-.03l-.31-.12L16.3 9.7l-5.34-5.34-1.65 1.77a.09.09 0 0 1-.07.03c-.02 0-.05-.01-.06-.02-.04-.03-.04-.09 0-.13l1.65-1.77L9 2.41 6.66 4.75l1.28 1.31c.04.04.04.1 0 .13-.02.02-.04.03-.06.03-.02 0-.05-.01-.07-.03L6.53 4.88 1.7 9.7l1.73 1.73-.03.1a.79.79 0 0 0-.23.14c-.18.17-.28.76-.26 1.19.01.28.07.46.17.54.09.07.15.1.23.04.02-.02.04-.03.14-.02.16.03.2.08.2.1 0 .04.03.08.07.08l1.18.07c.25-.01.46-.05.65-.12L9 17l3.48-3.48.32-.21.03.06c.01.02.03.03.04.04.27.09.55.12.81.12.21 0 .42-.02.61-.04.01 0 .02 0 .03-.01l.48-.27c.01-.01.03-.02.03-.04.1-.24.14-.56.13-.97-.01-.01-.01-.02-.02-.03m-1.61-2.03c.24-.04.44-.02.55.08.09.08.14.19.13.35 0 .02 0 .03.01.04.17.25.19.41.07.69-.08.05-.23.1-.7.1h-.01l-.34.06h-.52l-.18-.26c-.01-.09-.03-.19-.08-.32 0-.12 0-.29-.05-.44l.05-.25c.06 0 .12-.01.17-.02l.5-.04h.38c.01.01.02.01.02.01m-.56-1 .28.2.12.48c-.28.12-.51.21-.63.18h-.04c-.02.01-.04.01-.07.02l-.22.02H10.8c-.3-.04-.52-.13-.63-.27l-.01-.01c-.14-.11-.21-.27-.2-.49 0-.01 0-.03-.01-.04-.02-.03-.06-.11.1-.24l.67-.06h1.81zm-.59 2.2c-.01.02-.04.03-.07.03h-.05c-.06-.03-.13-.05-.2-.08s-.14-.05-.21-.08c-.2-.08-.4-.18-.54-.3a.489.489 0 0 1-.14-.18c-.01-.01-.01-.02-.02-.03-.03-.02-.06-.04-.08-.07-.18-.16-.14-.25-.04-.39l1.02.02c.23.08.28.31.27.64v.03c.11.29.08.38.06.41m-.72-3.51c.02-.01.12-.08.69.02.21.15.28.31.24.48v.03c.01.09-.05.2-.17.33H10.84c-.28.09-.52.12-.72.09h-.01a.868.868 0 0 1-.46-.1c-.01 0-.02-.01-.03-.02l-.07-.19.04-.27.03-.24 1.11-.08.7-.02c0-.01.02-.02.03-.03m-2.08.67.04.12c-.06.03-.12.05-.19.06-.06-.01-.11-.02-.17-.04h-.03l-.47.09-.83.02H7.7c-.18.07-.48.02-.86-.05l.02-.7.12-.06c.13-.06.24-.09.33-.08h.01c.37-.06.78-.11 1.05-.05h.03c.28-.04.51 0 .72.04h.01c.11.1.2.22.26.36l-.03.25c.01.01.01.03.02.04m-1.34.48.53-.1.47-.09c.07.01.13.03.19.04.33.08.5.16.5.32v.42c-.06.1-.43.13-.57.14l-.66.1a.57.57 0 0 0-.26 0c-.2-.05-.32-.13-.38-.27-.08-.24-.02-.42.18-.56m1.41-2.25c.26-.1.68-.01.98.06l.09.02h.03c.2-.04.35.01.46.15l.01.01c.12.11.26.38.18.47-.01.02-.02.04-.02.06.01.13-.02.18-.03.19-.01 0-.02.02-.07.01h-.77l-.84.06c-.25-.04-.38-.17-.4-.4 0-.01 0-.02-.01-.03-.08-.16-.14-.29-.18-.48.16-.05.34-.09.55-.11.01-.01.01-.01.02-.01m-1.41-.51c.01 0 .01 0 .02-.01.29-.17.94-.21 1.1-.07l.15.22c-.01.08-.03.14-.07.17-.04.03-.1.04-.19.02h-.03l-1 .12c-.12.02-.2.01-.24-.03-.04-.04-.07-.11-.07-.22.06-.11.17-.16.33-.2M5.99 7.49l.54-.26.61-.36h1.29c.19.05.29.21.29.5 0 .01 0 .02.01.03.03.07.05.12.03.15-.02.03-.08.06-.16.07l-.21.03c-.26-.06-.61-.02-1.07.05-.11 0-.23.03-.36.08h-.55c-.19.05-.31.05-.37 0-.07-.05-.07-.18-.05-.29m-.28.76.64-.16c.06 0 .14 0 .17.05.04.04.03.12.02.18v.04c.06.15.03.25-.09.33l-.81.13c-.13.02-.24-.03-.33-.15-.01-.07 0-.22.4-.42M4.68 9.43c.1-.13.2-.21.32-.24.01 0 .02-.01.03-.01.18-.14.37-.16.62-.16h.65l.6-.05.43.15.22.2-.03.64-.29.08c-.13-.05-.28-.02-.47.09l-1.45-.05H5.3c-.22.04-.42-.01-.63-.14-.06-.2-.06-.36.01-.51m2.38 1.73a.24.24 0 0 1-.15.06c-.07 0-.14-.03-.21-.09-.15-.59-.06-.72-.01-.75.04-.03.08-.06.12-.08h.11l.29-.08c.07.06.12.19.14.39l-.31.49s0 .03.02.06m-3.43.16v-.01c.04-.44.13-.77.24-.91.32-.17.61-.21.85-.11.01 0 .01 0 .02.01l.76.06h.74c.06 0 .11.01.14.04.05.05.08.16.08.31l-.05.7c-.04.03-.08.06-.11.1-.06.06-.1.13-.14.2-.1 0-.23 0-.42.06-.55.17-1.17.07-1.77-.03-.15-.02-.29-.05-.43-.06zm2.32 1.34v.25l-.07.31c-.25.19-.56.29-.97.31l-1.12-.07c-.03-.06-.11-.14-.31-.18-.15-.03-.21.01-.26.04-.01-.01-.02-.01-.04-.03-.05-.04-.1-.17-.11-.42-.02-.43.09-.95.22-1.08.02-.02.04-.04.07-.05 0 .02 0 .04.01.05.01.02.03.03.05.03.16.02.33.05.51.07.36.06.74.12 1.12.12.24 0 .48-.03.7-.09.1.07.19.16.28.31zm1.26-.4-.03.08-.26.78c-.21.28-.36.41-.47.41-.1 0-.21-.1-.34-.3v-.55l.11-.56v-.02c-.01-.07.01-.16.04-.24.12-.01.2-.06.29-.24 0-.01.01-.02.01-.03l.01-.09c.06-.03.12-.05.19-.04h.01l.41-.04.18.09c.06.21-.03.44-.15.75m1.58-1.84-.23.26c-.52.48-.88.73-1.05.73l-.23-.25c.02-.02.03-.04.05-.05 0-.01.01-.01.01-.02l.18-.43c0-.01.01-.02.01-.03l.06-.09c.11-.1.24-.2.35-.29.14-.11.26-.2.32-.27.03.01.05.01.08.01h.02l.13-.02c.1.03.19.08.27.15.01.01.02.03.04.04v.26zm1.4.61-.71-.36c-.18-.1-.36-.16-.53-.17V10l.54-.12.68.2.3.22.03.47c-.19.1-.29.18-.31.26m.66.54-.43-.43.22-.26c.06-.02.12-.05.2-.08l.01.01c.18.32.61.49.97.62.07.03.14.05.2.08.01 0 .01 0 .02.01.09.14.05.25 0 .33l-.01.01c-.08.02-.16.07-.22.15l-.18.14-.13.1zm1.5 1.85c-.23 0-.31-.12-.4-.26-.01-.02-.03-.04-.04-.06-.02-.03-.05-.06-.07-.09-.13-.16-.3-.37-.31-.58l.18-.14.38-.28c.06 0 .12.02.19.06 0 .03.01.07.02.1l.22.61v.01l.12.23.04.18zm2.34-.33-.44.25c-.4.04-.86.07-1.31-.06l-.28-.55-.21-.6c-.02-.09-.04-.22.02-.28.05-.05.15-.06.3-.04h.02l.86-.12.59.04.36.14.19.35c.02.37-.02.66-.1.87M3.02 1.03c-.04-.04-.09-.04-.13 0-.04.04-.04.09 0 .13l3.64 3.72.13-.13zm10.88.19c.03-.04.03-.1 0-.13-.04-.03-.1-.03-.13 0l-2.94 3.15.13.13z" /></symbol>'});s().add(c);const r=c},74161:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"influxDB",use:"influxDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="influxDB"><path d="M16.68 10.76 14.9 3.78a.76.76 0 0 0-.53-.54L7.43 1.28a.78.78 0 0 0-.74.19L1.53 6.5a.79.79 0 0 0-.21.73l1.78 6.99c.07.26.27.47.53.54l6.94 1.95a.75.75 0 0 0 .74-.19l5.16-5.03c.19-.18.27-.46.21-.73m-4.02-6.42-2.39.8-1.46-1.89zm-1.54 6.71-4.79-1.8 3.6-3zM7.44 2.87l.14.04 2.04 2.62L5.56 8.9 3.1 7.1zM3.1 8.04l2.03 1.49-.94 2.81zm7.48 7.07-.02.02-5.94-1.67 1.2-3.59 5.41 2.03zm.97-.94.44-2.18 2.17-.36zm.4-2.94-1.35-5.4 3-1 1.5 5.88z" /></symbol>'});s().add(c);const r=c},26249:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ipfs",use:"ipfs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipfs"><path d="M2.05 13.09 8.81 17V9.19L2.05 5.28zm.47-6.74c.08-.04.16-.08.23-.13l4.91 2.83c-.06.51.22 1 .7 1.21v5.67c-.08.04-.16.08-.23.13l-4.91-2.83c.06-.51-.22-1-.7-1.21zm1.07 6.66 4.39 2.53v-5.06c-.42-.27-.68-.72-.7-1.22L2.89 6.73v5.07c.41.27.67.72.7 1.21M9 2.54c-.25 0-.49-.06-.7-.17L3.91 4.91 8.3 7.44c.22-.11.45-.17.7-.17.25 0 .49.06.7.17l4.39-2.53L9.7 2.37c-.22.11-.46.17-.7.17m1.02 7.94v5.03l4.39-2.53c.02-.5.28-.95.7-1.22V6.7l-4.39 2.56c-.02.5-.28.95-.7 1.22M9 1 2.23 4.91 9 8.81l6.77-3.91zm-.7 6.87L3.39 5.04c.01-.09.01-.18 0-.26L8.3 1.94c.41.31.98.31 1.39 0l4.91 2.83c-.01.09-.01.18 0 .26L9.69 7.87c-.41-.31-.97-.31-1.39 0m.89 1.32V17l6.77-3.91V5.28zm6.29 2.8c-.47.21-.75.69-.7 1.21l-4.91 2.83c-.07-.05-.15-.1-.23-.13l-.01-5.63c.47-.21.75-.69.7-1.21l4.91-2.86c.07.05.15.1.23.13v5.66z" /></symbol>'});s().add(c);const r=c},51961:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ipvs",use:"ipvs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipvs"><path d="M1.63 13.18 8.24 17V9.41L1.63 5.59zm2.3-5 .6 2.6c.18.8.31 1.39.41 2l.02.01c.09-.45.23-.91.42-1.51L6 9.37l1.17.68-1.57 4.17-1.36-.78L2.7 7.47zM9.02 1 2.45 4.8l6.61 3.82 6.57-3.8zM5.05 4.47 8.46 2.5l1.17.68-3.41 1.97zm7.15 1.48c-.77.45-1.74.31-2.5-.13l-.53-.31L8 6.18l-1.14-.66 3.41-1.97 1.71.99c.8.46.9 1.02.22 1.41M9.76 9.41V17l6.61-3.82V5.59zm3.32 4.5c-1.17.67-1.8.4-1.9-.5l1.14-.66c.09.42.38.44.84.18.44-.25.63-.55.63-.87 0-.37-.21-.39-.92-.17-1.27.39-1.54.01-1.54-.67 0-.89.58-1.87 1.71-2.52 1.24-.71 1.73-.26 1.79.48l-1.13.66c-.04-.26-.16-.49-.68-.2-.33.19-.53.46-.53.76s.17.33.86.12c1.32-.4 1.61-.01 1.61.72-.01.94-.64 1.95-1.88 2.67m-2.1-9.08-.32-.18-.74.42.33.19c.26.15.55.18.8.04.25-.15.2-.32-.07-.47" /></symbol>'});s().add(c);const r=c},6819:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"kubernetes",use:"kubernetes-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="kubernetes"><path d="M8.18 8.14c.15 0 .28-.12.28-.27l.08-1.66-.33.07c-.58.13-1.11.43-1.54.84l1.37.98c.06.03.09.04.14.04m1.31-.11c.08.12.25.13.36.07l1.36-.96c-.5-.5-1.14-.81-1.87-.89l.1 1.67c0 .04.02.08.05.11M7.46 9.22a.27.27 0 0 0-.03-.38L6.2 7.75a3.52 3.52 0 0 0-.48 2.02l1.6-.47c.07-.01.1-.03.14-.08m1.06.58.45.22.45-.22.12-.48-.31-.4h-.5l-.31.4zm1.68.48c-.12.05-.18.18-.15.31l.65 1.56c.4-.25.75-.6.99-.99.13-.18.23-.4.31-.63l-1.66-.28c-.04 0-.09.01-.14.03m-2.65-.02-1.64.28c.23.66.7 1.24 1.28 1.62l.63-1.52c.03-.05.03-.12.02-.17-.02-.12-.15-.21-.29-.21m7.42-5.15a1.03 1.03 0 0 0-.53-.61L9.39 2.08A.859.859 0 0 0 8.98 2c-.13 0-.28 0-.41.03L3.51 4.47c-.25.12-.43.33-.5.61l-1.24 5.45c-.05.28.02.56.18.79l3.49 4.32c.2.2.48.33.76.35h5.56c.3.03.58-.1.76-.35l3.49-4.32c.17-.23.23-.51.2-.79zm-.81 5.78c-.03 0-.05 0-.08-.02-.02-.02-.02-.02-.03-.02-.03 0-.05-.02-.07-.02-.07-.02-.12-.05-.18-.08-.03 0-.07-.02-.1-.03h-.02c-.17-.07-.35-.12-.53-.15h-.02c-.05 0-.1.02-.13.05 0 0 0 .02-.02.02l-.13-.02c-.3.94-.94 1.74-1.79 2.25l.05.13s-.02 0-.02.02c-.03.05-.03.12-.02.17.07.17.15.33.26.48v.03c.03.03.05.05.07.08.05.05.08.1.12.17.02.02.03.03.03.05 0 0 .02 0 .02.02.03.08.03.17.02.25-.01.08-.08.15-.15.18-.05.02-.08.03-.13.03-.13 0-.25-.08-.31-.2-.02 0-.02-.02-.02-.02-.02-.02-.02-.03-.03-.05-.03-.05-.05-.12-.07-.18l-.03-.1v-.02c-.05-.18-.13-.35-.22-.51a.256.256 0 0 0-.13-.1c0-.02 0-.02-.02-.02l-.07-.12c-.17.05-.35.12-.53.15-.3.08-.6.12-.89.12-.5 0-.98-.08-1.44-.26l-.07.13c0 .02 0 .02-.02.02-.05.02-.1.05-.13.1-.08.17-.17.33-.22.51l-.03.1c-.02.07-.05.12-.07.18-.02.02-.03.03-.03.05-.02 0-.02.02-.02.02-.07.12-.18.2-.31.2-.03 0-.08-.02-.12-.03A.334.334 0 0 1 6.4 14c.02 0 .02-.02.02-.02.02-.02.02-.03.03-.05.05-.07.08-.13.12-.17a.5.5 0 0 0 .07-.08v-.02c.1-.15.2-.31.26-.48.02-.05.02-.12-.02-.17 0 0-.02 0-.02-.02l.08-.12c-.17-.08-.3-.18-.45-.3-.65-.5-1.11-1.18-1.36-1.94l-.15.02s0-.02-.02-.02a.19.19 0 0 0-.13-.05h-.02c-.2.03-.36.08-.55.15h-.02c-.03 0-.07.02-.1.03-.05.02-.12.05-.18.07-.02 0-.07-.02-.07 0s0 .02-.02.02c-.03.02-.05.02-.08.02-.15.02-.3-.08-.33-.23-.03-.18.08-.35.26-.38.02-.02.02-.02.03-.02.03 0 .05-.02.07-.02.07 0 .13-.02.2-.02.03-.02.07-.02.1-.02.2-.02.38-.05.56-.1.05-.03.1-.07.12-.12 0 0 .02 0 .02-.02l.13-.03c-.15-.94.07-1.9.58-2.72.02-.03.03-.05.05-.08l-.1-.1v.02c.02-.05-.02-.12-.05-.15-.13-.13-.3-.23-.46-.33-.03-.02-.07-.03-.1-.05-.07-.03-.13-.07-.18-.1-.02 0-.05-.03-.05-.03s0-.02-.02-.02c-.13-.12-.17-.31-.07-.46.05-.08.13-.12.23-.12.08 0 .17.03.23.08l.02.02c.02.02.03.02.05.03.05.05.08.1.13.15.02.02.05.03.07.07.12.13.27.26.41.38.03.02.07.03.1.03s.05-.02.07-.02h.02l.1.07c.55-.58 1.26-.99 2.04-1.16.2-.03.38-.07.56-.08l.02-.13v-.03c.05-.03.07-.08.08-.13 0-.2 0-.38-.03-.56v.01c0-.03 0-.07-.02-.1a.693.693 0 0 1-.03-.2v-.08c0-.08.03-.17.1-.23.08-.08.18-.13.28-.12.17.02.3.18.28.35v.1c-.02.07-.02.13-.03.2 0 .03-.02.07-.02.1v.02c-.03.2-.03.38-.03.56.02.05.03.1.08.13v-.02l.02.13c.78.08 1.54.38 2.15.86.13.13.28.26.41.4l.13-.08h.02c.02.02.05.02.07.02.03 0 .07-.02.1-.03.15-.1.3-.23.41-.36.02-.02.05-.03.07-.07.03-.05.08-.1.13-.15.02 0 .03-.02.05-.03l.02-.02a.4.4 0 0 1 .23-.08c.08 0 .18.05.23.12.12.15.08.35-.07.46 0 .02.02.02 0 .03-.02.02-.03.02-.05.03-.07.03-.12.07-.18.1-.03.02-.07.03-.1.05-.17.1-.31.2-.46.33-.03.03-.05.1-.05.15v.02l-.1.1c.26.41.46.88.58 1.36.1.48.13.98.07 1.46l.13.03c.02.05.07.1.12.12.18.05.38.08.56.1h.02c.03.02.07.02.1.02.07 0 .13 0 .2.02.03 0 .07 0 .07.02s.02.02.03.02c.15.03.28.17.3.35-.03.1-.16.2-.31.2m-2.45-3.14-1.24 1.13c-.03.03-.05.07-.07.12-.03.15.05.3.2.33l1.57.45c.03-.35.02-.7-.07-1.04-.07-.36-.21-.7-.39-.99m-2.65 3.23c-.12-.07-.25-.03-.33.07l-.81 1.47c.33.1.7.17 1.04.17.25 0 .48-.03.71-.08.12-.03.22-.05.31-.07l-.79-1.44a.474.474 0 0 0-.13-.12" /></symbol>'});s().add(c);const r=c},70391:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"lighthttpd",use:"lighthttpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd"><path d="M3.67 14.86v.01l1.02-.92-.48-.32zM17.49 2 .51 10.14l1.89 1.65 14.92-9.67-14.63 9.92.98 2.83.36-1.82zL4.38 13.25l-.01.03L8.43 16z" /></symbol>'});s().add(c);const r=c},55767:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"lighthttpd2",use:"lighthttpd2-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd2"><path d="M16.97 2 1.03 6.92l3.5 3.76L16.8 2.11 4.82 10.93l.97 2.81.36-1.81zL6.5 12.13l-.01.03 6.8 3.84zm-4.03 10.71v.71h-2.43v-.8c0-.7.57-1.27 1.27-1.27h.2c.18 0 .32-.14.32-.32s-.14-.32-.32-.32h-.61c-.08 0-.14.06-.14.14v.07h-.71v-.07c0-.47.39-.86.86-.86h.61a1.04 1.04 0 1 1 0 2.08h-.2c-.31 0-.55.25-.55.55v.09zM5.8 13.73v.01l1.01-.92-.47-.32z" /></symbol>'});s().add(c);const r=c},72232:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"liteSpeed",use:"liteSpeed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="liteSpeed"><path d="M8.2 10.92 6.5 9.23a.398.398 0 0 1 0-.57l.49-.49-.33-.47a.532.532 0 0 1 .11-.72l3.84-2.95V1L2.95 8.67c-.16.16-.16.41 0 .57l3.68 3.68zm2.78-.51L9.13 7.75c-.08-.11-.07-.29.01-.4l3.37-4.28c.05-.06.06-.1.05-.1-.01 0-.04.02-.09.05L7.05 7.19c-.11.08-.13.24-.06.36l1.88 2.7c.08.11.07.29-.01.4l-3.37 4.27c-.05.06-.06.1-.04.1.01 0 .04-.02.09-.05l5.42-4.16c.1-.08.06-.33.02-.4m4.07-1.64-3.68-3.68L9.8 7.08l1.69 1.69c.16.16.16.41 0 .57l-.49.49s.33.49.34.52c.08.15.09.51-.12.67l-3.84 2.95V17l7.67-7.66c.16-.16.16-.41 0-.57" /></symbol>'});s().add(c);const r=c},65494:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"lxc",use:"lxc-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lxc"><path d="M8.69 6.35 4.96 4.26l-3.58 2 3.74 2.09zM5.26 9.59l3.59-2.01V6.6L5.26 8.61zm7.48 0v-.98l-3.59-2v.98zm-7.78.17V8.61L1.22 6.52v1.19l3.7 2.07zm11.66-3.5L9 2 5.26 4.09l7.62 4.26zm-3.58 5.21h-.07l-3.84 2.15V16l7.65-4.28V9.34l-3.74 2.09zm-.3-.22v-.94l-3.61 2.02v.94zm.3-2.64v2.47l3.74-2.09V6.52zM1.22 11.72 8.87 16v-2.39L1.22 9.34zm11.52-1.79L9 7.84 5.26 9.93v.04L9 12.06l3.74-2.09zM1.22 8.99l7.65 4.28v-.94L1.22 8.06z" /></symbol>'});s().add(c);const r=c},55925:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mariaDB",use:"mariaDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mariaDB"><path d="M16.82 3.09c-.9.3-1.21-.3-2.41 0-1.21.3-1.51 2.98-3.02 3.87-1.51.89-3.92.6-5.43 1.79-1.51 1.19-1.81 3.28-2.41 3.28-.6 0-1.21-.3-2.11-.3-.9 0-.9 0-.9.3s1.21.89 1.21 1.19c0 .3-.91.89-.91 1.49s1.51 0 2.11-.3c.6-.3 1.81-1.49 2.71-1.49.9 0 2.41.6 3.32.6.41 0 .57-.06.63-.13.07-.08.88-.77.88-1.36 0 0 0 1.19-.6 1.79-.6.6-1.21 1.19-.9 1.19.3 0 3.02 0 3.32-2.98.15-1.51.3 0 .3 0l-.3.6s2.41-1.49 2.71-2.68c.3-1.19-.3-2.68.6-3.28.9-.6 1.81-1.49 1.81-1.79-.01-.3.29-1.2-.61-1.79M15.39 4.3c-.04.07-.11.13-.17.17-.13.08-.25.1-.4.07-.05-.02-.06-.05-.06-.07 0-.02 0-.04.01-.06.02-.07.03-.11.06-.15.03-.03.07-.06.13-.08.11-.04.24-.04.35-.03.05 0 .09-.01.1.05.01.02-.01.07-.02.1" /></symbol>'});s().add(c);const r=c},10484:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"memCached",use:"memCached-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="memCached"><path d="M11.46 2H6.54C2.57 2 2 2.57 2 6.54v4.92C2 15.43 2.57 16 6.54 16h4.93c3.97 0 4.54-.57 4.54-4.54V6.54C16 2.57 15.43 2 11.46 2M8.07 13.08c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51m1.86 0c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51m3.38 0h-2.15c.2-1.09.94-6.06.33-6.08-.33.05-1.82 4.22-1.82 4.22s-.33-.04-.66-.04-.66.04-.66.04S6.84 7.06 6.52 7c-.61.02.12 4.99.33 6.08H4.69S4.33 9 5.02 4.64h1.99c.38 0 1.82 2.53 1.99 2.53.17 0 1.61-2.53 1.99-2.53h1.99c.69 4.36.33 8.44.33 8.44" /></symbol>'});s().add(c);const r=c},35743:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mongoDB",use:"mongoDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mongoDB"><g clip-path="url(#mongoDB_a)"><path d="M8.9.07c-.04.27-.12.47-.38.7-.64.57-3.35 2.78-3.58 7.57-.2 4.29 3.01 7 3.67 7.45.22-.63.34-1.3.42-2.33.11-4.19.11-10.81-.13-13.39m.16 14.6c-.07.45-.17.82-.29 1.18l-.06.17c.05.35.15 1.15.23 1.99h.36c.08-.76.21-1.51.38-2.25l-.02-.01c-.27-.14-.48-.52-.6-1.08m3.86-7.58C11.97 2.88 9.97 1.76 9.47.96 9.28.65 9.12.33 8.97 0c0 .04.01.09.01.13.04.29.07.79.09 1.4.09 2.02.12 4.96.1 7.74.02.88.01 1.75-.03 2.63-.01.64-.02 1.26-.04 1.82.05 1.05.29 1.71.62 1.87l.04.02c1.69-1.2 3.9-4.24 3.16-8.52" /></g><defs><clipPath id="mongoDB_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'});s().add(c);const r=c},51771:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mySQL",use:"mySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL"><path d="M16.06 14.8c-.14-.14-.3-.27-.46-.39-.05-.04-.08-.06-.12-.09.13-.02.26-.05.39-.07.17-.02.36-.03.5-.04l1.27-.02-.6-1.08c-.5-.9-1.21-1.46-1.92-1.94-.36-.24-.72-.45-1.1-.64-.31-.16-.61-.3-.93-.43-.51-.67-.79-1.54-1.2-2.53a10.57 10.57 0 0 0-1.79-2.89c-.75-.85-1.58-1.6-2.53-2.23-.47-.31-1.01-.61-1.59-.79-.5-.16-.97-.26-1.54-.28-.41-.32-.85-.61-1.38-.81C2.72.47 2.38.39 1.98.4 1.62.41 1.19.51.81.82c-.27.18-.46.49-.52.76-.07.28-.05.53-.01.75.09.44.28.8.6 1.12.2.19.25.21.36.31.09.08.16.15.21.21.09.11.12.2.15.4.09.68.3 1.24.52 1.8.12.29.23.55.44.89.05.06.07.1.14.18.04.04.09.09.14.12-.26.65-.29 1.25-.32 1.83-.01.36 0 .71.04 1.06.04.37.06.67.2 1.14.16.44.36.76.64 1.09.14.16.3.32.52.46.22.14.52.28.92.26.4-.04.7-.19.96-.51.18.22.37.44.56.65.64.62 1.33 1.17 2.06 1.65 1.46.95 3.02 1.67 4.67 2.15l.22-.62c-1.46-.71-2.85-1.61-4.09-2.61-.62-.51-1.18-1.07-1.69-1.65-.52-.58-.93-1.21-1.37-1.83l-.93-1.29-.44 1.38-.02.05c-.14.44-.13.8-.15 1.03-.03-.03-.07-.06-.09-.1-.15-.16-.29-.41-.35-.58-.05-.16-.1-.51-.13-.79-.03-.3-.04-.6-.03-.9.01-.58.1-1.2.3-1.52l.2-.33-.15-.34c-.09-.21-.17-.35-.31-.54-.07-.09-.15-.19-.27-.28-.08-.13-.2-.38-.29-.61-.19-.48-.37-.99-.43-1.44-.04-.36-.2-.82-.48-1.15-.25-.31-.57-.54-.67-.63a.801.801 0 0 1-.19-.35c0-.02-.01-.04-.01-.06l.04-.03s.08-.05.23-.05c.15 0 .34.03.53.1.39.14.77.39 1.13.7l.23.2.33-.01a4 4 0 0 1 1.26.21c.43.14.83.35 1.24.63.81.54 1.58 1.21 2.22 1.96.65.74 1.15 1.57 1.54 2.5.39.89.71 2.05 1.51 3.01l.13.15.19.07c.32.12.68.29 1 .46.33.17.65.35.96.56.22.15.43.31.63.48-.4.1-.81.23-1.21.46l-.61.35.31.64.01.01c.17.32.3.44.47.6.16.15.33.27.51.37.17.1.38.2.52.25.14.05.27.11.4.18.26.14.51.31.72.5.22.23.5.49.75.72l.42-.29c-.14-.33-.26-.63-.43-.96-.16-.37-.4-.68-.69-.95M.73.89C.76.86.79.85.82.82L.84.8zM5.2 5.51c.47-.39.16-1.1-.63-1.02.4.24.63.87.63 1.02" /></symbol>'});s().add(c);const r=c},95715:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"mySQL_press",use:"mySQL_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL_press"><path d="M16.45 16.06s-.39-.63-1.26-1.1c-.87-.47-1.1-.94-1.1-.94.94-.55 2.28-.55 2.28-.55-.87-1.65-3.78-2.75-3.78-2.75-1.02-1.26-1.02-2.44-2.13-4.25C9.36 4.65 7.48 3.15 6.3 2.6c-1.18-.55-2.13-.47-2.13-.47-1.26-1.1-2.44-1.18-2.91-.71-.47.32-.24 1.18.23 1.58.47.4.79.63.87 1.34.08.71.71 2.28.94 2.44.24.16.39.55.39.55-.63 1.02-.39 3.23-.24 3.78.16.55.87 1.57 1.5 1.34.63-.24.31-1.02.55-1.65 2.13 4.09 7.71 6.06 7.71 6.06H17zM4.8 4.81c0-.16-.24-.79-.63-1.02.79-.08 1.1.62.63 1.02" /></symbol>'});s().add(c);const r=c},12393:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nginx",use:"nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx"><path d="M10.75 6c-.41 0-.75.34-.75.75v2.31L7.84 6.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V8.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75m4.19-1.78-4.77-2.76c-.35-.2-.76-.31-1.16-.31-.4 0-.81.11-1.16.31L3.06 4.23c-.72.41-1.16 1.19-1.16 2.02v5.51c0 .83.45 1.6 1.17 2.02l4.77 2.76c.35.2.76.31 1.16.31.41 0 .81-.11 1.16-.31l4.78-2.76c.72-.41 1.16-1.19 1.16-2.02V6.24c.01-.83-.44-1.6-1.16-2.02m-.33 7.54c0 .3-.16.57-.41.72l-4.78 2.76c-.13.07-.27.11-.41.11-.14 0-.29-.04-.41-.11l-4.78-2.76a.819.819 0 0 1-.41-.72V6.24c0-.3.16-.57.41-.72L8.6 2.76c.13-.07.27-.11.41-.11.14 0 .29.04.41.11l4.78 2.76c.26.15.41.42.41.72z" /></symbol>'});s().add(c);const r=c},76533:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nginx_local",use:"nginx_local-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_local"><path d="m9 17 2-2H7zm1.75-12c-.41 0-.75.34-.75.75v2.31L7.84 5.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V7.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75m2.77-1.21-3.13-1.81c-.42-.24-.9-.37-1.39-.37-.49 0-.97.13-1.39.37L4.48 3.79c-.86.49-1.39 1.41-1.39 2.4V9.8c0 .99.53 1.91 1.39 2.41l3.13 1.81c.42.24.9.37 1.39.37.49 0 .97-.13 1.39-.37l3.13-1.81a2.78 2.78 0 0 0 1.39-2.41V6.19c0-.99-.53-1.91-1.39-2.4m-.11 6.02c0 .46-.24.88-.64 1.11l-3.13 1.81c-.2.11-.42.17-.64.17-.22 0-.44-.06-.64-.17l-3.13-1.81c-.4-.23-.64-.65-.64-1.11V6.19c0-.46.24-.88.64-1.11l3.13-1.81c.2-.11.42-.17.64-.17.22 0 .44.06.64.17l3.13 1.81c.4.23.64.65.64 1.11z" /></symbol>'});s().add(c);const r=c},24972:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nginx_plus",use:"nginx_plus-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_plus"><path d="M15.55 4.62 9.52 1.14a1.02 1.02 0 0 0-1.04 0L2.45 4.62c-.32.19-.52.53-.52.9v6.96c0 .37.2.71.52.9l6.03 3.48c.32.19.72.19 1.04 0l6.03-3.48c.32-.19.52-.53.52-.9V5.52c0-.37-.2-.71-.52-.9m-6.43 6.49c0 .24-.14.46-.37.55-.07.03-.15.05-.23.05-.15 0-.31-.06-.42-.17L4.6 8.03v3.09a.591.591 0 0 1-1.18 0V6.6c0-.24.14-.46.37-.55.22-.09.48-.04.65.13l3.51 3.51V6.6a.591.591 0 0 1 1.18 0v4.51zm5.23-1.75h-1.53v1.53a.56.56 0 1 1-1.12 0V9.36h-1.53a.56.56 0 1 1 0-1.12h1.53V6.7a.56.56 0 1 1 1.12 0v1.53h1.53c.31 0 .56.25.56.56 0 .31-.25.57-.56.57" /></symbol>'});s().add(c);const r=c},61357:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ntpd",use:"ntpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76M4.5 7c0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5S4.5 9.48 4.5 7m5.25-.31V4.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v2.81l1.24 1.24c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06z" /></symbol>'});s().add(c);const r=c},43077:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"ntpd_press",use:"ntpd_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd_press"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76m-7-7.19V4.5c0-.41.34-.75.75-.75s.75.34.75.75v2.19l.8.8c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22z" /></symbol>'});s().add(c);const r=c},88222:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"nvidia",use:"nvidia-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nvidia"><path d="M2.635 8.558S4.08 6.423 6.97 6.203v-.775C3.77 5.685 1 8.395 1 8.395s1.57 4.536 5.97 4.951v-.823c-3.23-.406-4.335-3.965-4.335-3.965m4.335 2.328v.754c-2.44-.435-3.118-2.972-3.118-2.972S5.023 7.37 6.97 7.159v.827h-.004c-1.021-.123-1.82.831-1.82.831s.448 1.607 1.824 2.07M6.97 4v1.428c.094-.007.188-.013.282-.016 3.637-.123 6.007 2.983 6.007 2.983s-2.722 3.31-5.557 3.31c-.26 0-.504-.024-.732-.065v.883c.195.025.398.04.61.04 2.638 0 4.547-1.348 6.394-2.943.307.245 1.561.842 1.819 1.104-1.757 1.47-5.852 2.656-8.173 2.656-.224 0-.439-.013-.65-.034v1.241H17V4zm0 3.16v-.957c.093-.007.186-.012.282-.015 2.616-.082 4.332 2.248 4.332 2.248S9.73 11.01 7.743 11.01c-.286 0-.542-.046-.773-.124v-2.9c1.018.123 1.223.573 1.835 1.594l1.362-1.149s-.994-1.303-2.67-1.303c-.182 0-.356.013-.527.031" /></symbol>'});s().add(c);const r=c},8277:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"openStack",use:"openStack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openStack"><path d="M12.5 12.01c0 .27-.22.49-.49.49H5.99a.49.49 0 0 1-.49-.49v-.21H2v3.38c0 .45.37.82.82.82h12.36c.45 0 .82-.37.82-.82V11.8h-3.5zm-7-4.41H2v2.8h3.5zM15.18 2H2.82c-.45 0-.82.37-.82.82V6.2h3.5v-.21c0-.27.22-.49.49-.49h6.03c.27 0 .49.22.49.49v.21h3.5V2.82a.839.839 0 0 0-.83-.82m-2.68 8.4H16V7.6h-3.5z" /></symbol>'});s().add(c);const r=c},51072:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"openWrt",use:"openWrt-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openWrt"><path d="M3.69 8.36c-.12 0-.22.04-.29.13-.07.08-.11.22-.11.42 0 .19.04.33.11.41.07.08.17.13.29.13.13 0 .23-.04.3-.12.07-.08.1-.23.1-.44 0-.18-.04-.31-.11-.39-.07-.1-.16-.14-.29-.14M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7M4.58 9.43c-.08.14-.18.25-.33.33-.14.08-.32.12-.53.12-.22 0-.4-.03-.54-.1a.773.773 0 0 1-.34-.33c-.1-.14-.14-.33-.14-.55 0-.31.09-.55.26-.73.17-.17.42-.26.73-.26.32 0 .57.09.74.26.17.17.26.41.26.72 0 .22-.04.4-.11.54m1.76.27c-.11.12-.25.18-.42.18-.08 0-.16-.01-.22-.04a.567.567 0 0 1-.18-.12v.66h-.54V8.47h.5v.2c.07-.09.13-.14.19-.17.08-.04.16-.06.26-.06.19 0 .33.07.43.21.1.14.15.32.15.53 0 .23-.06.4-.17.52m1.97-.41H7.24c.01.08.03.15.07.19.05.06.12.09.2.09.05 0 .1-.01.15-.04.03-.02.06-.05.09-.09l.53.05c-.08.14-.18.24-.29.3-.11.06-.28.09-.49.09-.18 0-.33-.03-.44-.08a.568.568 0 0 1-.26-.25.744.744 0 0 1-.1-.4c0-.22.07-.39.21-.52.14-.13.33-.2.58-.2.2 0 .36.03.47.09.12.06.2.15.26.26.06.11.09.26.09.44zm1.71.56h-.54v-.76c0-.09-.02-.15-.05-.18-.03-.04-.08-.05-.14-.05-.06 0-.12.02-.16.07-.04.05-.06.14-.06.26v.66h-.53V8.47h.5v.23c.07-.09.15-.16.22-.2.08-.04.17-.06.28-.06.15 0 .26.04.35.13.08.09.12.22.12.4v.88zm2.42 0h-.58l-.34-1.2-.33 1.2h-.59l-.43-1.91h.56l.2 1.06.3-1.06h.56l.3 1.07.2-1.07h.56zm1.52-.96a.336.336 0 0 0-.15-.04.18.18 0 0 0-.16.09c-.06.08-.08.23-.08.45v.46h-.54V8.47h.5v.23c.05-.1.1-.17.15-.2.05-.04.11-.06.19-.06s.17.02.26.07zm.68.94a.339.339 0 0 1-.14-.15.875.875 0 0 1-.05-.33v-.49h-.2v-.39h.2v-.25l.53-.27v.52h.29v.39h-.29v.49c0 .06.01.1.02.12.02.03.05.04.09.04.04 0 .09-.01.17-.03l.04.37c-.13.03-.25.04-.37.04-.13 0-.23-.02-.29-.06M7.5 8.75c-.08 0-.15.03-.2.1-.03.04-.05.1-.06.19h.53c-.01-.1-.04-.18-.08-.22a.294.294 0 0 0-.19-.07m-1.75.08c-.07 0-.12.03-.17.08-.05.05-.07.14-.07.26 0 .11.02.19.07.24.05.05.1.08.18.08.06 0 .11-.02.16-.08.04-.05.06-.14.06-.26 0-.11-.02-.2-.07-.25a.213.213 0 0 0-.16-.07" /></symbol>'});s().add(c);const r=c},78776:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pan",use:"pan-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pan"><path d="M9 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2m6.624-2.416a.75.75 0 1 0-1.248.832l1.223 1.834h-1.674C13.56 5.847 11.504 4 9 4S4.44 5.847 4.076 8.25H2.401l1.223-1.834a.75.75 0 0 0-1.248-.832L.099 9l2.277 3.416a.75.75 0 0 0 1.248-.832L2.401 9.75h1.674C4.44 12.153 6.496 14 9 14s4.56-1.847 4.924-4.25h1.674l-1.223 1.834a.75.75 0 0 0 1.248.832L17.901 9zM9 12.5c-1.93 0-3.5-1.57-3.5-3.5S7.07 5.5 9 5.5s3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5" /></symbol>'});s().add(c);const r=c},44212:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pandas",use:"pandas-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pandas"><path d="M6.81 1.946h1.748v3.63H6.81zm0 7.458h1.748v3.631H6.81zm0-2.768h1.748V8.35H6.81zM4 4.931H5.75V17H4zM9.56 12.4h1.75v3.63H9.56zm0-7.465h1.75v3.63H9.56zm0 4.691h1.75v1.713H9.56zM12.311 1h1.749v12.07H12.31z" /></symbol>'});s().add(c);const r=c},8269:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"percona",use:"percona-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="percona"><path d="M9 2C5.13 2 2 5.13 2 9c0 2.38 1.19 4.48 3 5.74V9c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4c-.95 0-1.81-.35-2.5-.9v3.44c.78.3 1.62.47 2.5.47 3.87 0 7-3.13 7-7S12.87 2 9 2m2.5 7a2.5 2.5 0 0 0-5 0 2.5 2.5 0 0 0 5 0" /></symbol>'});s().add(c);const r=c},4729:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"pfSense",use:"pfSense-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pfSense"><path d="m11.86 6.83.53-1.8c.38-1.3 1.57-2.19 2.92-2.19H16c0-.46-.38-.84-.84-.84H2.84c-.46 0-.84.38-.84.84V13.5l1.68-6.67h2.1l-.21.85c.86-.76 1.9-1.19 2.87-1.1 1.7.17 2.5 1.92 1.78 3.92s-2.68 3.48-4.38 3.31c-.69-.07-1.23-.4-1.58-.9L3.47 16h11.69c.46 0 .84-.38.84-.84V4.8h-.69c-.48 0-.91.32-1.04.78l-.37 1.25h1.26l.35.84-.84.84h-1.26l-1.5 5.11H9.87l1.5-5.11h-.75l.49-1.68zm-3.75 3.56c.36-1.02-.05-1.92-.93-2.01-.82-.09-1.76.57-2.17 1.5l-.19.77c-.05.75.36 1.34 1.05 1.41.87.1 1.87-.65 2.24-1.67" /></symbol>'});s().add(c);const r=c},66359:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"php_fpm",use:"php_fpm-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="php_fpm"><path d="M2.32 8.49h-.37l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12m10.11.04h-.38l-.21 1.19h.34c.22 0 .39-.05.51-.14.11-.09.18-.24.22-.47.02-.07.02-.14.02-.2 0-.11-.02-.18-.07-.24-.07-.1-.22-.14-.43-.14M.82 6.67 0 11.33h8.32l.82-4.65H.82zm2.53 2.42c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.13.05-.3.07-.52.07h-.47l-.13.72H.98l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49 0 .08-.02.17-.03.27m2.27-.31-.23 1.26h-.55l.22-1.2c.01-.06.02-.11.02-.14 0-.06-.01-.11-.04-.13-.05-.05-.14-.07-.27-.07h-.44l-.29 1.55H3.5L4 7.33h.54l-.13.72h.48c.3 0 .51.06.63.17.09.08.12.2.12.35 0 .07 0 .14-.02.21m2.48.31c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.14.04-.3.07-.52.07H6.4l-.13.72h-.54l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49-.01.08-.02.17-.03.27m1.47-2.42-.82 4.65h8.43L18 6.67zm.83 3.49h-.58l.3-1.67h-.39l.07-.41h.39l.04-.21c.04-.21.11-.36.2-.43.09-.07.25-.11.47-.11h.52l-.07.4h-.26c-.09 0-.16.02-.21.04-.05.03-.07.08-.09.14l-.03.17h.52l-.07.41h-.51zm3.06-1.01c-.03.14-.07.27-.13.38-.06.11-.13.21-.22.3-.11.12-.23.2-.37.24-.14.05-.31.07-.52.07h-.47l-.13.75h-.55l.52-2.82h1.06c.32 0 .55.1.7.28.11.13.15.3.15.51-.01.1-.02.19-.04.29m3.41-.31-.24 1.32h-.56l.22-1.25c.01-.03.01-.05.02-.07 0-.02.01-.05.01-.08 0-.06-.01-.11-.03-.15-.05-.05-.14-.07-.28-.07h-.31l-.3 1.62h-.57l.29-1.62h-.64l-.3 1.62h-.56L14 8.09h2.12c.3 0 .52.06.64.18.08.09.12.21.12.37.01.06 0 .13-.01.2m-9.8-.35H6.7l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12" /></symbol>'});s().add(c);const r=c},46021:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"postgreSQL",use:"postgreSQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="postgreSQL"><path d="M6.05 10.28c-.55-.58-.8-1.37-.69-2.19.12-.88.08-1.65.05-2.07-.01-.1-.01-.19-.01-.24 0-.12-.05-2.62 1.4-4.07.01-.01.03-.02.04-.04-.87-.28-3.05-.85-4.37.09-.81.58-1.19 1.65-1.11 3.19.02.49.33 2.22.86 3.95.61 1.99 1.3 3.25 1.89 3.45.09.03.37.12.77-.36.57-.68 1.1-1.27 1.35-1.53-.07-.06-.12-.12-.18-.18m8.17-5.06c-.59-.07-1.27-.06-1.54.33-.52.75.5 2.58.93 3.36.11.2.19.35.23.44.04.1.09.19.13.27.3-.64.22-1.28.15-1.91-.04-.31-.08-.63-.07-.94.01-.32.05-.58.09-.83.04-.25.07-.47.08-.72m-.58.56c-.05.05-.15.14-.29.16h-.05c-.21 0-.38-.17-.4-.26-.02-.13.19-.22.4-.25.21-.03.43.01.45.13.01.06-.03.14-.11.22m-.14-3.17c.8.93 1.19 1.96 1.22 2.3.01.05 0 .1-.01.13.01.36-.03.66-.08.96-.04.24-.07.49-.08.77-.01.27.03.56.06.87.09.74.19 1.59-.32 2.43l.03.03c.02.03.04.05.06.08 1.99-3.13 2.68-6.76 2.05-7.56C14.94.71 12.65.91 11.55 1.14c.87.39 1.51.96 1.95 1.47m-5 8.54c-.14-.06-.21-.09-.38.1-.11.12-.19.22-.26.31-.31.39-.45.52-1.36.71-.19.04-.3.08-.36.11.07.05.2.11.34.14.67.17 1.6.18 2.24-.72.08-.11.05-.24.03-.31-.04-.16-.14-.29-.25-.34m5.91-.06c-.03-.02-.05-.04-.07-.05-.04.02-.08.03-.1.03-.23.07-.45.13-.42.72.19.18 1.4.16 2.07-.15.34-.16.58-.33.71-.46h-.01c-1.04.21-1.77.18-2.18-.09m-8-1.15c.35.36.81.57 1.28.57.05-.22.14-.46.24-.71l.04-.1c.05-.13.1-.25.16-.39.29-.64.65-1.44.23-3.35-.08-.37-.27-.58-.59-.66-.69-.16-1.66.36-1.87.55 0 .04.01.1.01.16.03.43.07 1.24-.06 2.17-.09.65.12 1.29.56 1.76m.79-4.22c0-.03.02-.07.07-.11.08-.06.25-.09.43-.06.11.02.22.05.29.09.14.08.15.16.14.21-.02.13-.22.3-.44.3h-.06a.578.578 0 0 1-.36-.22c-.02-.05-.08-.13-.07-.21m6.86 4.88c-.04-.05-.08-.11-.13-.17-.16-.2-.38-.48-.55-.89-.03-.06-.11-.21-.2-.38-.52-.94-1.61-2.89-.91-3.89.32-.46.96-.65 1.9-.55-.3-.87-1.64-3.46-4.72-3.51-.94-.02-1.71.27-2.29.86C6.24 3 6 4.46 5.93 5.24c.04-.02.09-.05.14-.07.23-.12.7-.32 1.21-.38.85-.09 1.41.29 1.58 1.07.45 2.08.04 3-.27 3.67-.06.12-.11.24-.15.35l-.04.1c-.09.24-.17.46-.22.65.22-.06.41.02.51.06.25.11.47.36.55.66l.03.15c.01.03.01.05.01.08-.06 2.08.02 3.97.19 4.39.26.65.65 1.22 1.76.98 1.07-.23 1.45-.62 1.63-1.65.14-.79.4-3.02.44-3.48-.03-.95.48-1.14.76-1.22" /></symbol>'});s().add(c);const r=c},63487:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"prometheus",use:"prometheus-usage",viewBox:"0 0 256 257",content:'<symbol xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" viewBox="0 0 256 257" id="prometheus"><path d="M128.001.667C57.311.667 0 57.971 0 128.664c0 70.69 57.311 127.998 128.001 127.998S256 199.354 256 128.664C256 57.97 198.689.667 128.001.667m0 239.56c-20.112 0-36.419-13.435-36.419-30.004h72.838c0 16.566-16.306 30.004-36.419 30.004m60.153-39.94H67.842V178.47h120.314v21.816h-.002zm-.432-33.045H68.185c-.398-.458-.804-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.716-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722-7.673-8.994-12.23-20.428-12.23-32.116 0-25.658 19.68-48.079 12.58-66.201 6.91.562 14.3 14.583 14.8 36.505 7.346-10.152 10.42-28.69 10.42-40.056 0-11.769 7.755-25.44 15.512-25.907-6.915 11.396 1.79 21.165 9.53 45.4 2.902 9.103 2.532 24.423 4.772 34.138.744-20.178 4.213-49.62 17.014-59.784-5.647 12.8.836 28.818 5.27 36.518 7.154 12.424 11.49 21.836 11.49 39.638 0 11.936-4.407 23.173-11.84 31.958 8.452-1.586 14.289-3.016 14.289-3.016l27.45-5.355c.002-.002-3.987 16.401-19.314 32.197" /></symbol>'});s().add(c);const r=c},79723:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"proxySQL",use:"proxySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="proxySQL"><path d="m3.26 8.13-.89-.75-.37.53.18.62zm-1.27-.21L2 7.91v-.02zm1.97 4.15H2.8l.05.64.54.36zm2.64 3.77-.01-.01h-.02zm-3.75-3.12v-.02l-.01-.01zm10.72-9.05.01.01h.02zM7.03 14.63l-.89.74.45.46.64-.07zm5.72-9.96 1.09-.39-.26-.59-.63-.16zM9 3.29l.58-1L9 2.01l-.58.28zM8.99 2l.01.01.01-.01zM4.41 3.69h.02l.01-.01zm.84.98-.2-1.14-.63.16-.26.59zm-2.39 5.49a.09.09 0 0 0-.07-.03l-.09.02c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.26-.05-.02-.12c0-.03-.02-.06-.04-.08m11.88-2.03 1.09.4.18-.62-.38-.52zM3.82 6.23c.03-.01.05-.03.07-.07.02-.03.03-.06.03-.09A.09.09 0 0 0 3.89 6l-.22-.14a.085.085 0 0 0-.07 0c-.03.01-.05.03-.07.07-.02.03-.03.06-.03.09s.01.05.03.07l.22.14c.02.01.04.01.07 0m10.79 1.93 1.02-.86a6.962 6.962 0 0 0-1.72-2.98l-1.24.45.23-1.3A6.85 6.85 0 0 0 9.66 2.3L9 3.42 8.35 2.3c-1.2.12-2.3.54-3.24 1.19l.22 1.28-1.22-.44c-.81.82-1.41 1.84-1.72 2.98l1 .84-1.22.45a6.911 6.911 0 0 0 .6 3.4h1.31l-.65 1.13c.68.94 1.59 1.71 2.65 2.21l1-.84.23 1.28c.55.14 1.12.21 1.71.21.58 0 1.14-.07 1.68-.21l.23-1.29 1.01.85c1.06-.5 1.97-1.26 2.65-2.2l-.66-1.15h1.33a6.843 6.843 0 0 0 .6-3.39zm-3.57-5.05.12-.23.24.12-.12.23c-.01.02-.01.05.01.07.01.03.04.05.07.07.03.02.06.02.09.02s.05-.02.06-.04l.12-.23.23.12-.12.23c-.05.09-.15.1-.32.03l-.16.31-.23-.12.16-.31c-.15-.08-.2-.17-.15-.27m-4.48-.06.1.24c.01.02.03.04.06.04.03.01.06 0 .1-.01.03-.01.06-.03.08-.06.02-.03.02-.05.01-.07l-.1-.24.24-.1.09.2c.04.1-.02.18-.17.27.17-.06.27-.04.31.06l.09.2-.24.1-.1-.24a.068.068 0 0 0-.06-.04c-.03-.01-.06 0-.1.01-.03.01-.06.03-.08.06-.02.03-.02.05-.01.07l.1.24-.24.1-.09-.2c-.04-.1.02-.18.17-.27-.17.06-.27.04-.31-.06l-.09-.2zM3.38 6.31c-.04-.03-.06-.07-.06-.13s.02-.12.05-.18l.14-.22c.04-.06.09-.1.14-.13.06-.03.11-.03.15 0l.22.14c.04.03.06.07.06.13s-.02.12-.05.19l-.13.21c-.04.06-.09.1-.14.13-.06.03-.11.03-.15 0zm-.75 4.38-.1-.5a.306.306 0 0 1 .02-.19.14.14 0 0 1 .11-.1l.05-.01c.04-.01.08 0 .12.04.04.03.07.09.09.18l-.02-.12c-.01-.03 0-.07.01-.09.01-.03.03-.04.05-.05l.31-.06.05.25-.26.05c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.35-.07.05.25zm2.34 3.62-.38-.37a.335.335 0 0 1-.1-.17c-.01-.06 0-.11.03-.14l.06-.06c.03-.03.08-.05.14-.04.06.01.12.04.17.09l.19.18.24-.26.19.18zm8.26-.03-.45-.54-.3.25-.06-.07.51-.42.51.61zm-4.22.34c-3.03 0-5.49-2.46-5.49-5.49 0-3.03 2.46-5.49 5.49-5.49 3.03 0 5.49 2.46 5.49 5.49 0 3.03-2.45 5.49-5.49 5.49M14.56 6c-.02.01-.03.03-.03.06l-.04.35c-.01.06-.03.11-.07.13l-.04.02c-.04.02-.09.02-.15 0a.348.348 0 0 1-.14-.13l-.07-.11a.45.45 0 0 1-.06-.19c0-.05.03-.09.08-.12l.07.11c-.01 0-.01 0-.01.01-.02.01-.03.03-.03.06s.01.06.03.09c.02.04.05.07.07.08.02.01.05.01.07-.01.02-.01.03-.03.03-.06l.04-.35c.01-.06.03-.11.07-.13l.04-.02c.04-.02.09-.02.15 0 .06.03.1.07.14.13l.07.11c.08.14.08.25-.02.32l-.07-.11c.05-.04.05-.09.01-.15a.19.19 0 0 0-.07-.08c-.02-.01-.05-.02-.07-.01m1.05 4.28-.06.26c-.02.07-.05.13-.09.17-.05.04-.09.06-.14.05l-.43-.1c-.1-.02-.14-.12-.11-.3l-.06.26-.09-.02.05-.19c.02-.08.06-.11.12-.11l.05-.19c.02-.07.05-.13.09-.17.05-.04.09-.06.14-.05l.43.1c.05.01.08.05.1.1.02.05.02.12 0 .19M4.84 13.73c-.03-.01-.05 0-.07.02l-.06.06c-.02.02-.02.04-.01.07.01.03.02.06.05.08l.1.09.18-.19-.1-.09c-.03-.02-.06-.03-.09-.04m10.6-3.49-.43-.1c-.02-.01-.05 0-.07.02-.02.02-.04.05-.05.09a.17.17 0 0 0 0 .1c.01.03.03.05.05.05l.43.1c.02.01.05 0 .07-.02.02-.02.04-.05.05-.08a.17.17 0 0 0 0-.1c-.01-.04-.02-.06-.05-.06m-1.4 1.83.58 1 .54-.36.05-.64zm1.12.63-.01.01v.02zm-4.19 1.93-.2 1.14.64.07.45-.46zm.45 1.2h-.02l-.01.01zm4.59-7.94v.02l.01.01zm-7-3.88c-2.83 0-5.12 2.29-5.12 5.12s2.29 5.12 5.12 5.12 5.12-2.29 5.12-5.12-2.29-5.12-5.12-5.12m-1.7 3.61c.6-.86 1.43-1.32 2.47-1.37h.09c.32 0 .64.08.88.15-.29-.07-.56-.1-.83-.1-.67 0-1.12.22-1.45.42-.54.32-.43.78-.4.87 0 0-.01 0-.01.01-.42.27-.78.84-.66 1.41.11.53.58 1.14 1.36 1.25-.04.07-.16.23-.39.23-.08 0-.16-.02-.25-.05-.31-.12-.79-.7-.99-1.34-.12-.37-.18-.95.18-1.48m1.24 3.91c-.67 0-1.36-.28-1.86-.75-.49-.45-.79-1.12-.88-1.84.27 1.6 1.77 2.15 1.79 2.16.16.06.32.09.49.09.32 0 .6-.11.77-.32 1.05-.23 1.66-.93 1.63-1.89.18.18.65.78 0 1.57-.53.64-1.2.98-1.94.98m2.35-1.99c0-.15-.18-.58-.43-.68l-.05-.02v.05c.03 1.28-1.03 1.71-1.15 1.76l-.02.01c-.12.04-.36.14-.68.14-.44 0-.87-.16-1.3-.49-.48-.36-.68-.83-.73-1.29.03.18.09.35.18.51.3.57.88.94 1.29 1.04.09.02.17.03.25.03.44 0 .58-.34.58-.34l.02-.04-.04-.01c-.6-.08-1.08-.59-1.27-1.04-.09-.2-.06-.52.06-.81.15-.35.41-.65.75-.85.34-.19.73-.3 1.13-.3.16 0 .31.02.46.05-.1-.01-.21-.02-.32-.02-.16 0-.3.01-.43.02-.03 0-.07.01-.1.01-.35.03-.88.39-.91.62-.03.23.07.27.08.27l.02.01.01-.01c.1-.08.41-.26 1.07-.26.64 0 1.24.38 1.56.98.32.61.01 1.46-.32 1.87-.17.21-.36.36-.51.46.73-.57.8-1.4.8-1.67m-.47 2.72c.78-.62 1.21-1.29 1.26-1.97.07-.92-.56-1.55-.57-1.56l-.07-.07.01.09c.01.09.01.18 0 .25-.18-.62-1.06-1.18-1.92-1.18-.34 0-.64.09-.87.26-.02-.12.02-.24.1-.34.2-.26.67-.42 1.23-.42.77 0 2.13.43 2.29 2.02.12 1.19-.42 2.26-1.46 2.92" /></symbol>'});s().add(c);const r=c},81925:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"rabbitMQ",use:"rabbitMQ-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rabbitMQ"><path d="M10.26 6.96V2.71c0-.39-.32-.71-.71-.71H8.17c-.39 0-.71.32-.71.71v4.25c0 .39-.32.71-.71.71h-.82c-.39 0-.71-.32-.71-.71V2.71c0-.39-.32-.71-.71-.71H3.2c-.39 0-.71.32-.71.71v12.58c0 .39.32.71.71.71h11.6c.39 0 .71-.32.71-.71V8.38c0-.39-.32-.71-.71-.71h-3.83c-.39 0-.71-.32-.71-.71m2.66 5.54c0 .38-.31.7-.7.7h-1.27c-.38 0-.7-.31-.7-.7v-1.27c0-.38.31-.7.7-.7h1.27c.38 0 .7.31.7.7z" /></symbol>'});s().add(c);const r=c},22202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"random",use:"random-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="random"><path d="M7.628 9.192h.026a2.178 2.178 0 0 0-.239-.427L1.332 5.292C1.13 5.363 1 5.576 1 5.899v5.385c0 .566.397 1.254.887 1.537l5.018 2.898c.298.172.562.154.723-.013zm-3.08 3.789-1.002-.579v-1.05l1.002.579zm.851-2.322c-.072.11-.195.202-.368.277l-.178.066c-.126.049-.208.1-.247.152a.333.333 0 0 0-.058.208v.132l-1.001-.578v-.144c0-.161.03-.287.091-.375.06-.09.19-.176.386-.255l.177-.069a.527.527 0 0 0 .23-.156.351.351 0 0 0 .076-.228.691.691 0 0 0-.133-.398 1.12 1.12 0 0 0-.372-.333 1.548 1.548 0 0 0-.485-.18 1.746 1.746 0 0 0-.544-.022V7.83c.223.047.428.104.613.172.185.067.363.15.535.25.451.26.795.558 1.032.89.237.331.355.685.355 1.06 0 .193-.036.345-.108.457zm8.487-6.428L8.67 1.213c-.49-.284-1.284-.284-1.774 0L1.679 4.23c-.417.242-.479.61-.184.89l5.79 3.306c.319.08.684.08 1.003-.001l5.795-3.317c.28-.278.215-.64-.197-.878M7.972 5.418l-.126-.07c-.14-.08-.23-.168-.27-.267-.04-.1-.033-.26.02-.479l.053-.196a.52.52 0 0 0 .009-.288.302.302 0 0 0-.152-.18.704.704 0 0 0-.431-.072c-.17.018-.344.077-.525.178a2.188 2.188 0 0 0-.825.846l-.807-.453c.181-.182.36-.342.535-.479.175-.137.36-.26.556-.369.51-.287.986-.457 1.426-.511.438-.055.821.009 1.149.193.168.094.278.201.33.322.05.12.053.277.009.473l-.055.195c-.036.14-.044.24-.023.301.02.06.068.112.145.156l.116.064zm1.296.727-.915-.513 1.135-.636.916.513zm4.966-.86L8.181 8.75c-.1.137-.186.289-.251.445v6.48c.157.197.434.227.75.045l5.017-2.898c.49-.283.888-.97.888-1.537V5.9c0-.333-.137-.55-.35-.614m-2.517 7.393-1.002.577v-1.05l1.002-.578zm.851-3.305a4.058 4.058 0 0 1-.369.703l-.177.27c-.126.195-.208.34-.247.438a.727.727 0 0 0-.058.275v.133l-1.001.578v-.145c0-.161.03-.321.091-.48.06-.162.19-.395.386-.7l.177-.274c.106-.163.182-.304.23-.422a.835.835 0 0 0 .076-.315c0-.137-.045-.219-.133-.245-.09-.027-.213.005-.372.097-.15.087-.311.214-.486.38a5.808 5.808 0 0 0-.544.607v-.927c.224-.211.428-.39.613-.536.185-.147.364-.27.536-.369.451-.26.795-.36 1.032-.3.237.057.355.274.355.65 0 .192-.036.386-.108.58z" /></symbol>'});s().add(c);const r=c},17576:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"redis",use:"redis-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="redis"><path d="M1.49 5.89c.87.41 5.67 2.35 6.43 2.71.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.42-.22.63-.39.64-.55.01-.17-.21-.31-.65-.47-.85-.31-5.34-2.1-6.2-2.41-.86-.32-1.21-.3-2.22.06-1.01.36-5.78 2.23-6.63 2.57-.43.17-.63.32-.63.49.01.16.23.33.66.54m7.85 1.92L6.55 6.66l4-.61zm5.81-2.65-2.33.92-.26.1-2.34-.92 2.58-1.02zM8.04 2.79l1.22.48 1.14-.37-.31.74 1.06.4-.01.07-1.39.14-.34.81-.54-.9-1.62-.14-.01-.07 1.18-.43zM5.66 4.46c1.16 0 2.06.36 2.06.82 0 .46-.9.82-2.06.82-1.16 0-2.06-.36-2.06-.82 0-.46.91-.82 2.06-.82m10.87 6.68c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57v-1.63c-.01.16-.22.33-.64.55M1.49 7.54c.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V5.31c-.01.02-.02.03-.04.05v.01c-.03.03-.06.06-.11.1l-.01.01c-.02.01-.04.03-.06.04l-.01.01c-.05.03-.1.07-.16.1-.01 0-.01.01-.02.01-.02.01-.05.03-.07.04-.01 0-.02.01-.03.01-.03.02-.07.04-.1.05-.01.01-.03.01-.04.02-.24.12-.7.33-1.26.57-.08.04-.17.07-.26.11-.02.01-.04.02-.07.03-.43.19-.91.39-1.4.6-.34.14-.68.29-1 .43l-.06.03-.15.06c-.58.25-1.12.49-1.53.67-.25.11-.44.21-.57.27-.4.21-.73.33-1.02.38-.1.02-.2.02-.29.02h-.12c-.05 0-.09-.01-.14-.02-.23-.03-.47-.11-.75-.25-.35-.17-1.58-.68-2.9-1.23a.694.694 0 0 0-.13-.05c-.82-.34-1.65-.68-2.3-.96-.14-.06-.28-.12-.41-.17-.31-.13-.56-.24-.7-.31-.04-.02-.07-.03-.1-.05-.01 0-.02-.01-.03-.01-.03-.01-.05-.03-.07-.04-.01 0-.01-.01-.02-.01-.03-.02-.06-.03-.09-.05h-.01c-.03-.02-.05-.03-.07-.05-.01 0-.01-.01-.02-.01-.02-.01-.04-.03-.06-.04 0 0-.01 0-.01-.01-.02-.02-.04-.03-.06-.05-.02-.01-.03-.03-.05-.04l-.01-.01c-.01-.02-.03-.03-.04-.05v1.46c.02.18.25.35.68.56m15.04.91c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.36 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V7.9c-.01.16-.22.33-.64.55" /></symbol>'});s().add(c);const r=c},60194:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"rethinkDB",use:"rethinkDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rethinkDB"><path d="M4.08 8.83c-.13 0-.22.04-.27.12-.05.08-.08.17-.08.27h.67c0-.26-.11-.39-.32-.39M2.1 8.27h-.12v.74h.07c.17 0 .31-.03.4-.1.1-.07.14-.16.14-.3.02-.22-.15-.34-.49-.34M0 4.91v8.18h18V4.91zm8.2 3.1c.04-.04.1-.06.17-.06s.12.02.17.06c.04.04.06.1.06.16s-.02.12-.06.16c-.04.04-.1.06-.17.06s-.12-.02-.16-.06a.211.211 0 0 1-.06-.16c0-.07.01-.11.05-.16m-4.99 2.08c0 .03-.02.05-.05.05h-.42c-.03 0-.06-.01-.07-.04l-.44-.83h-.06c-.07 0-.13 0-.18-.01v.64h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.28h-.17c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05.27-.01.5-.02.68-.02.56 0 .83.19.83.57a.635.635 0 0 1-.39.58l.37.71h.2c.03 0 .05.02.05.05v.17zm1.51-.66c-.01.01-.02.01-.05.01h-.94c.01.15.05.26.11.34.07.08.18.12.34.12.12 0 .24-.03.36-.08.03-.01.05-.01.06.02l.06.14c.01.02 0 .05-.03.06-.14.07-.32.11-.53.11-.25 0-.44-.07-.56-.21-.12-.14-.18-.33-.18-.57 0-.24.06-.43.19-.59.13-.16.31-.23.54-.23.12 0 .22.02.3.06.08.04.15.1.19.17.09.14.13.3.13.48.02.12.01.16.01.17m1.21.67c-.1.05-.22.07-.36.07-.19 0-.31-.05-.37-.14a.34.34 0 0 1-.07-.18c-.02-.08-.03-.17-.03-.25v-.74h-.18c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.18v-.42c0-.03.02-.05.05-.05h.26c.03 0 .05.02.05.05v.42h.32c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.32v.78c0 .1.01.17.04.21.03.04.07.06.14.06s.14-.01.2-.04c.02-.01.04 0 .05.02l.06.14v.03c.01.01 0 .02-.02.04m1.95-.01c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.49c.03 0 .05.02.05.05v.95c.12-.17.29-.26.5-.26.33 0 .5.17.5.52v.79h.19c.03 0 .05.02.05.05v.17zm.95 0c0 .03-.02.05-.05.05h-.76c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.2V8.86h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05v1.24h.2c.03 0 .05.02.05.05zm1.92 0c0 .03-.02.05-.05.05H10c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05H9c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.86H9c-.03 0-.05-.01-.05-.04v-.16c0-.03.02-.05.05-.05h.44c.03 0 .04.02.05.05l.03.18c.11-.16.27-.25.48-.26h.07c.31.01.46.19.46.52v.79h.19c.03 0 .05.02.05.05v.15zm1.83 0c0 .03-.02.05-.05.05h-.41c-.03 0-.05-.01-.07-.04l-.48-.75h-.11v.54h.17c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05V9.1h.16l.5-.47c.02-.02.05-.03.08-.03h.25c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.2l-.35.33.44.7h.19c.03 0 .05.02.05.05zm1.75-.23c-.21.18-.5.27-.87.27h-.67c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.27-.01.48-.02.61-.02s.23 0 .3.01l.22.03c.08.02.16.04.22.07.07.03.13.07.2.12.07.05.12.11.17.18.1.16.15.36.15.61-.01.38-.12.66-.33.84m2.05.08c-.13.11-.31.17-.53.18-.09.01-.24.01-.44.01h-.45c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.26-.01.5-.02.73-.02.23 0 .41.04.55.13.14.09.21.21.21.37 0 .12-.04.22-.11.3-.07.09-.16.15-.26.19.16.02.29.08.38.18.09.09.13.21.13.34 0 .18-.07.32-.21.43m-2.86-1.67h-.2v1.62h.21c.23 0 .42-.07.55-.22.13-.15.19-.35.19-.61s-.06-.45-.18-.59c-.13-.13-.32-.2-.57-.2m2.2.89h-.23v.74h.14c.19 0 .33-.03.44-.09.1-.06.16-.16.16-.3-.01-.23-.17-.35-.51-.35m.36-.57c0-.12-.04-.2-.12-.25a.623.623 0 0 0-.33-.07h-.15v.63h.12c.33 0 .48-.1.48-.31" /></symbol>'});s().add(c);const r=c},85694:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"retroShare",use:"retroShare-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="retroShare"><path d="M15.31 5.69a2.428 2.428 0 0 0-2.99-2.99c-.89-.45-1.9-.7-2.96-.7-2.31 0-4.34 1.18-5.53 2.96-.22.05-.43.14-.62.25-.56.32-.96.84-1.13 1.47-.17.62-.08 1.28.24 1.84.11.19.25.37.41.52.2 3.34 2.87 6.01 6.2 6.22.15.16.33.3.53.41.37.21.79.32 1.21.32a2.427 2.427 0 0 0 2.35-1.82A6.64 6.64 0 0 0 16 8.63c0-1.05-.25-2.05-.69-2.94M5.34 9.35c-1.03.46-2.27.08-2.85-.92-.62-1.07-.25-2.44.82-3.05 1.07-.62 2.44-.25 3.05.82.38.65.39 1.42.09 2.06l3.02 3.06-.12.06c-.44.25-.78.62-1 1.04zm6.65 2.42c.92.66 1.2 1.93.63 2.93a2.23 2.23 0 0 1-3.05.82 2.23 2.23 0 0 1-.82-3.05c.38-.65 1.04-1.05 1.74-1.11l1.14-4.14c.04.02.08.05.11.07.44.25.92.36 1.39.35zm.99-4.51c-.76 0-1.42-.38-1.83-.95L7 7.4v-.13c0-.51-.15-.98-.4-1.38l4.16-1.09a2.235 2.235 0 0 1 4.46.23c0 1.23-1 2.23-2.24 2.23" /></symbol>'});s().add(c);const r=c},25628:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"selected_area",use:"selected_area-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="selected_area"><path d="M3.5 5.85H2v2.1h1.5zm0-2.35h.25V2H2v1.75h1.5zM7.949 2h-2.1v1.5h2.1zM2 16h6.75V9.25H2zm1.5-5.25h3.75v3.75H3.5zM14.25 2v1.5h.25v.25H16V2zm.25 5.95H16v-2.1h-1.5zm0 4.2H16v-2.1h-1.5zM10.051 16h2.1v-1.5h-2.1zm4.449-1.5h-.25V16H16v-1.75h-1.5zM12.149 2h-2.1v1.5h2.1z" /></symbol>'});s().add(c);const r=c},2965:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"sendgrid",use:"sendgrid-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="sendgrid"><path d="M2 10.16h3.84V14H2zm7.92 0H6.08V14h3.84zM2 9.92h3.84V6.08H2zm4.08 0h3.84V6.08H6.08zm4.08-4.08H14V2h-3.84zm3.84.24h-3.84v3.84H14zm-7.92-.24h3.84V2H6.08z" /></symbol>'});s().add(c);const r=c},13203:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"services",use:"services-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="services"><path d="M14.5 6c-1.39 0-2.57.96-2.9 2.25H9.52c.47-.53.84-1.12 1.11-1.78.12.02.24.03.37.03 1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3c0 1 .49 1.88 1.24 2.43a5.11 5.11 0 0 1-1.97 2.32H6.4A3.003 3.003 0 0 0 3.5 6c-1.65 0-3 1.35-3 3s1.35 3 3 3c1.39 0 2.57-.96 2.9-2.25h.87c.9.58 1.55 1.35 1.97 2.32C8.49 12.62 8 13.5 8 14.5c0 1.65 1.35 3 3 3s3-1.35 3-3-1.35-3-3-3c-.13 0-.25.01-.37.03-.27-.66-.64-1.25-1.11-1.78h2.08A3.003 3.003 0 0 0 14.5 12c1.65 0 3-1.35 3-3s-1.35-3-3-3m-4.97 8.22c.01-.08.04-.16.07-.23.02-.07.06-.14.1-.21v-.01c.02-.04.05-.09.08-.13a.53.53 0 0 1 .1-.12c.01-.02.03-.04.05-.06.02-.03.04-.05.07-.06a.7.7 0 0 1 .16-.14c.08-.05.16-.1.25-.14.1-.04.2-.07.31-.09.09-.02.19-.03.28-.03.03 0 .07 0 .1.01.1 0 .19.02.28.05.08.02.16.04.23.08.07.03.14.06.21.11.01 0 .01.01.02.01.06.04.13.09.18.15.06.05.11.11.15.17.21.25.33.56.33.92 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5c0-.1.01-.19.03-.28M9.5 3.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .8-.62 1.44-1.4 1.49-.03.01-.07.01-.1.01-.56 0-1.06-.31-1.3-.77-.13-.22-.2-.46-.2-.73m5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5S16 8.17 16 9s-.67 1.5-1.5 1.5" /></symbol>'});s().add(c);const r=c},34124:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"smartdlog",use:"smartdlog-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="smartdlog"><path d="M15 14.022H1V2h14zm-13.48-.52h12.96V2.52H1.52z" /><path d="M15 2.52H1v.99h14zM9.848 4.602h-4.25v.52h4.25zM12.103 5.947H5.597v.52h6.506zM11.123 7.335H5.597v.52h5.526zM12.97 8.809H5.597v.52h7.373zM10.715 10.327H5.597v.52h5.118zM12.016 11.671H5.684v.52h6.332zM4.816 4.602H2.561v.52h2.255zM4.816 5.947H2.561v.52h2.255z" /><path d="M4.816 5.947H2.561v.52h2.255zM4.816 7.291H2.561v.52h2.255zM4.816 8.636H2.561v.52h2.255zM4.816 10.327H2.561v.52h2.255zM4.816 11.671H2.561v.52h2.255z" /></symbol>'});s().add(c);const r=c},13151:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"solr",use:"solr-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="solr"><path d="M8.99 2c-.95 0-1.86.19-2.69.54l-.92 7.79L10 2.07A8.57 8.57 0 0 0 8.99 2M3.21 5.03l1.02 5.12 1.45-7.32c-.99.52-1.83 1.28-2.47 2.2m7.2-2.88-4.02 8.71 7.45-6.89a6.857 6.857 0 0 0-3.43-1.82M2 8.38l1.09 1.95-.5-4.2c-.31.7-.52 1.46-.59 2.25m13.94-.28-8.21 4.59 7.7-.91c.37-.85.57-1.78.57-2.77 0-.31-.02-.61-.06-.91m-3.03 6.73c.92-.62 1.68-1.45 2.22-2.43l-7.22 1.43zM9.57 16c.78-.06 1.52-.25 2.2-.55l-4.04-.48zM14.1 4.22l-6.89 7.45 8.66-4a6.965 6.965 0 0 0-1.77-3.45" /></symbol>'});s().add(c);const r=c},52039:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"squid",use:"squid-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="squid"><path d="M17 3.1c-.03-.43-.36-.65-.54-.81-.18-.16-.41-.47.03-.7-1.9-.15-5.12-.31-8.95 1.79C4.36 5.13 3.3 7.43 3.03 8.15c-.79.2-1.37.92-1.37 1.77 0 .16.02.32.06.48-.85.67-.88 2.89-.5 3.52.4.66 1.15 1.35 2.59 1.24 1.44-.11 2.27.58 2.39 1.33 0 0 .19-.72.04-1.29-.15-.16-.4-.34-.75-.48.04.03.07.08.07.14 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.02c-.09-.03-.18-.06-.28-.09-.13-.04-.27-.08-.41-.13.05.03.09.08.09.15 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.03c-.44-.16-.9-.4-1.19-.75-.39-.33-.44-.8-.32-1 .02.18.23.56.47.88.2.24.64.58 1.56.84.11.03.41.12.71.29.14.08.26.16.36.24.11.03.29.06.55.06.5-.01 2.03.03 2.57.95-.18-1.26-.9-1.8-1.69-2.06-.11.04-.23.07-.35.09.05.04.09.11.09.18 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.06 0-.12.01-.18.01-.12 0-.25-.01-.39-.02.01.03.02.06.02.1 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.02 0-.04-.01-.06-.01a2.17 2.17 0 0 1-.42-.11c-.02.13-.13.23-.26.23-.15 0-.26-.12-.26-.26 0-.07.03-.14.08-.19-.17-.11-.34-.25-.49-.4a.32.32 0 0 1-.29.19c-.18 0-.32-.14-.32-.32 0-.16.11-.29.26-.32-.13-.2-.24-.42-.33-.65a.29.29 0 0 1-.24.14.28.28 0 1 1 0-.56c.05 0 .11.02.15.04l.14-.03c.1.41.27.78.5 1.1.08.04.14.11.16.2.19.22.42.41.66.55.09 0 .17.04.22.11.16.07.32.12.49.14.89.14 1.4.09 1.96-.19.14-.12.25-.25.34-.36.17-.22.91-1.02 1.49-.99-.09-.31-.41-.52-.77-.55-.36-.03-.7.17-.95.38s-.82.61-1.31.41c-.49-.2-1.08-.69-1.14-1.4-.06-.71.56-1.19.56-1.19.68.31 1.88.24 2.89-.08 1.01-.32 2.93-1.31 3.54-1.9.61-.59 1.03-1.23 1.2-1.87.16-.64.48-.72.56-.67.09.05.28.31.52.31s.91-.27.88-1.12c-.03-.59-.14-.67.14-.83.19-.11.42-.09.58-.07.11-.01.49-.18.46-.61M6.03 15.39c.08 0 .15.07.15.15 0 .08-.07.15-.15.15-.08 0-.15-.07-.15-.15 0-.08.07-.15.15-.15m-2.29-1.2c.13 0 .24.11.24.24s-.11.24-.24.24-.24-.11-.24-.24.1-.24.24-.24m4.88.48c.1 0 .18.08.18.18 0 .1-.08.18-.18.18a.18.18 0 0 1-.18-.18c0-.1.08-.18.18-.18m-.6-.44c.11 0 .2.09.2.2a.2.2 0 0 1-.2.2.2.2 0 0 1-.2-.2c0-.11.09-.2.2-.2m1.2-2.25c.07 0 .12.05.12.12 0 .07-.05.12-.12.12-.07 0-.12-.05-.12-.12 0-.07.05-.12.12-.12m-.46.08c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16c0-.08.08-.16.16-.16m-.61.29c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16.07-.16.16-.16m-.81.32c.12 0 .21.1.21.21 0 .12-.1.21-.21.21-.12 0-.21-.1-.21-.21-.01-.11.09-.21.21-.21m-.85 0a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58m6.53-10.88c.18 0 .33.15.33.33 0 .18-.15.33-.33.33-.18 0-.33-.15-.33-.33 0-.18.14-.33.33-.33m-2.65.57c.25 0 .46.21.46.46s-.21.46-.46.46-.46-.21-.46-.46.21-.46.46-.46m-1.63.7a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12m-1.48.86a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12m-2.4 2.05c.17 0 .31.14.31.31 0 .17-.14.32-.31.32-.17 0-.31-.14-.31-.31 0-.17.13-.32.31-.32m-2.53 7.28c-.17 0-.3-.13-.3-.3 0-.17.13-.3.3-.3.17 0 .3.13.3.3a.3.3 0 0 1-.3.3m-.3-1.34c0-.18.14-.32.32-.32s.32.14.32.32-.14.32-.32.32a.329.329 0 0 1-.32-.32m1.12 1.99c0 .15-.12.27-.27.27-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27m.35-2.43c-.86 0-1.55-.69-1.55-1.55 0-.86.69-1.55 1.55-1.55.86 0 1.55.69 1.55 1.55 0 .86-.7 1.55-1.55 1.55m1.56.25c-.17 0-.31-.14-.31-.31 0-.17.14-.31.31-.31.17 0 .31.14.31.31 0 .17-.14.31-.31.31m.57.34a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58m.15-3.61c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27m.14-2.55c-.25 0-.46-.21-.46-.46s.21-.46.46-.46.46.21.46.46-.21.46-.46.46m.61 3.82c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27m.38-1.81c-.23 0-.42-.19-.42-.42 0-.23.19-.42.42-.42.23 0 .42.19.42.42 0 .23-.19.42-.42.42m.78 1.9c-.22 0-.41-.18-.41-.41 0-.22.18-.41.41-.41.22 0 .41.18.41.41 0 .23-.18.41-.41.41m.2-3.17a.58.58 0 1 1 1.16.001.58.58 0 0 1-1.16 0M9.2 9.4a.49.49 0 1 1 .002-.981.49.49 0 0 1-.002.981m.4-3.77c0-.36.29-.65.65-.65.36 0 .65.29.65.65 0 .36-.29.65-.65.65-.36 0-.65-.29-.65-.65m1.1 3.14c-.31 0-.55-.25-.55-.55 0-.3.25-.55.55-.55.31 0 .55.25.55.55 0 .3-.25.55-.55.55m.63-6.32a.37.37 0 1 1 .738-.002.37.37 0 0 1-.738.002m.7 1.76c.3 0 .53.24.53.53 0 .3-.24.53-.53.53-.3 0-.53-.24-.53-.53 0-.29.24-.53.53-.53m.1 3.49c-.29 0-.52-.23-.52-.52 0-.29.23-.52.52-.52.29 0 .52.23.52.52 0 .29-.23.52-.52.52m1.02-1.1a.47.47 0 1 1-.001-.939.47.47 0 0 1 .001.94m.28-2.25a.39.39 0 1 1 .39-.39c0 .22-.17.39-.39.39m.59 1.06c-.13 0-.23-.1-.23-.23s.1-.23.23-.23.23.1.23.23-.1.23-.23.23m.39-1.75c-.14 0-.26-.11-.26-.26 0-.14.11-.26.26-.26.15 0 .26.11.26.26 0 .14-.12.26-.26.26M3.66 8.68c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1" /></symbol>'});s().add(c);const r=c},15670:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"summary_statistic",use:"summary_statistic-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="summary_statistic"><path d="M3.5 11.666V6.334A2.837 2.837 0 0 1 6.334 3.5h5.332A2.837 2.837 0 0 1 14.5 6.334V11H16V6.334A4.333 4.333 0 0 0 11.666 2H6.334A4.333 4.333 0 0 0 2 6.334v5.332A4.333 4.333 0 0 0 6.334 16H11v-1.5H6.334A2.837 2.837 0 0 1 3.5 11.666M9.75 12V8h-1.5v4zM16 14.5V12h-1.5v2.5H12V16h2.5v2H16v-2h2v-1.5zM5.25 12h1.5V9h-1.5zm7.5-6h-1.5v6h1.5z" /></symbol>'});s().add(c);const r=c},20972:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"systemd",use:"systemd-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="systemd"><path d="M2 6v3.628h1.395V9.07h-.837V6.558h.837V6zm10.605 0v.558h.837V9.07h-.837v.558H14V6zM8.28 7.814l2.511-1.396V9.21zM6.187 9.07a1.256 1.256 0 1 0 0-2.512 1.256 1.256 0 0 0 0 2.512" /></symbol>'});s().add(c);const r=c},99947:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"traefik",use:"traefik-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="traefik"><path d="M4.93 5.87c-.07.12-.21.2-.35.2-.07 0-.14-.02-.21-.05-.03.39-.03.78-.01 1.18l4.38 1.07.02.1c.01.03.11.64.16 1.41.05-.77.16-1.38.16-1.41l.02-.1 4.17-1.07c-.01-.39-.04-.78-.08-1.16-.06.03-.12.04-.19.04-.15 0-.28-.07-.35-.19-.01-.02-.16-.21-.35-.52-.06.46-.24.88-.57 1.03l-1.76-.2c.09.14.11.29-.04.45-.13.14-.25.14-.39.11.01.19.04.38 0 .6-.06.11-.17.12-.27.16a.388.388 0 0 1-.3-.24c-.03-.24 0-.47.02-.7h-.02c-.01.25-.05.5-.02.75-.46.61-.74-.15-.6-.6-.17.04-.34.03-.44-.16a.425.425 0 0 1-.04-.31l-1.95.12c-.36-.06-.58-.47-.66-.97-.17.26-.29.41-.33.46m.67-.98c.39 1.51 2.81 1.13 2.72-.39-.03-.43-.21-.74-.48-.93H9.4c-.26.25-.43.6-.41 1.04.28 1.63 2.81 1.32 2.77-.18-.21-.41-.41-.88-.57-1.39-.03-.1-.03-.2-.01-.29-.73-.31-1.59-.38-2.48-.38-.79.06-1.55.18-2.22.44.02.08.01.17-.02.26-.24.71-.57 1.34-.86 1.82m4.09-.79c.22 0 .4.2.4.44s-.18.44-.4.44c-.22 0-.4-.2-.4-.44s.18-.44.4-.44m-3.02.55c0 .24-.18.44-.41.44-.23 0-.41-.2-.41-.44s.18-.44.41-.44c.23 0 .41.2.41.44m3.2.1c.05 0 .09-.05.09-.11s-.04-.11-.09-.11c-.05 0-.1.05-.1.11.01.06.05.11.1.11m-3.42.11c.05 0 .1-.05.1-.11s-.04-.11-.1-.11c-.05 0-.1.05-.1.11s.05.11.1.11m-2.27.81h.01c.02.05.06.09.11.12l.14.08c.13.07.28.03.35-.09 0 0 .98-1.22 1.51-2.74.05-.14.02-.27-.11-.34l-.14-.08a.25.25 0 0 0-.17-.03h-.01c-.5-.27-1.11-.16-1.59.22.2-.31.47-.64.8-.96.99-.94 6.99-.7 7.6 0 .23.26.45.62.63.95-.47-.37-1.06-.48-1.55-.23h-.01a.27.27 0 0 0-.17.03l-.15.08c-.13.07-.16.19-.12.34.48 1.54 1.43 2.79 1.43 2.79.06.12.22.17.35.1l.15-.08c.05-.03.09-.07.12-.12h.01c.58-.3.83-1.02.67-1.74.1-.06.07-.3-.05-.54-.11-.21-.26-.36-.36-.36-.19-.45-.51-1.09-.97-1.51-.76-.7-6.68-.73-7.59 0-.53.43-.9 1.04-1.12 1.48-.1.03-.24.16-.34.35-.13.24-.16.48-.07.54-.17.7.07 1.42.64 1.74m4.48-.39c-.02.02-.05.07-.1.14.2-.1.47-.11.67-.03a.63.63 0 0 0-.08-.11c-.11-.08-.4-.07-.49 0m5.2 6.79c-.01-.12-.03-.25-.04-.37-.05.01-2.53.66-4.68.42.02.19.04.37.05.53v-.06s2.42.17 4.67-.52m-4.45 1.37c-.01-.02-.02-.03-.03-.05.1.17.25.35.35.41.13.09.66.24 1.4.27.74.03 1.59-.13 2.12-.43s.7-.63.7-.63v-.02c-.09.03-2.41.69-4.54.45m-.07-.1c-.03-.06-.06-.13-.08-.21.01.05.02.09.03.11.02.03.04.06.05.1m6.6-7.15-.08-.04c-.1-.05-.23.01-.3.14l-1.47 2.78-.05.09v.01l-.25.46c-.17-.05-.35-.07-.52-.06l.02.5c.01.19.05.18.15.22l-.11.2c-.08-.11-.14-.27-.13-.61.03-.77.32-.46.31-.95l.01-1.63-4.3 1.1s-.17.92-.18 1.91c0 .3.01.66.03 1.03 0-.02 0-.04.01-.06 0 0 2.27.22 4.53-.47.06 0 .12-.02.14-.07l.12-.24c.16.04.31 0 .32-.25.17-.08.1-.24 0-.36l.26-.5v-.01l1.52-2.86c.09-.14.07-.28-.03-.33M4.29 10.86l.07-.03c2.2.65 4.38.44 4.38.44v.02c.02-.35.03-.7.03-.99-.01-1-.17-1.91-.17-1.91l-4.51-1.1.1 1.63c-.01.49.46.18.49.95.01.45-.08.59-.2.7l-.11-.23c.1-.04.14-.02.15-.22l.02-.5c-.16-.01-.33 0-.49.05l-.21-.44s0-.01-.01-.01L2.44 6.28c-.06-.13-.19-.2-.29-.15l-.08.04c-.1.05-.13.19-.07.32l1.39 2.93c0 .01.01.02.02.03l.22.46c-.11.12-.2.3-.02.39.01.25.16.29.32.25l.12.26c.03.07.14.1.24.05m8.94 2.97c-.5.25-1.22.41-1.92.41h-.19c-.71-.03-1.29-.18-1.48-.3-.17-.11-.4-.42-.49-.64-.08-.2-.19-1.26-.23-2.18-.04.92-.15 1.98-.23 2.18-.09.23-.32.53-.49.64-.18.12-.76.27-1.46.3h-.19c-.73 0-1.49-.18-1.99-.46-.05-.03-.09-.06-.14-.08.07.51.21 1 .48 1.42.15.24.34.45.55.63-.02 0-.04 0-.06.01-.3.22-.89.55-.6 1 .07.07.07.03.12.05.03.05.15.29.45.11.33-.18.55-.53.94-.59-.02-.02-.04-.05-.06-.07.69.33 1.5.47 2.21.49 1.02.04 2.17-.1 3.09-.6.42.14.69 1.05 1.17.61.5-.3-.1-.92-.44-1.13.24-.22.44-.49.59-.8.17-.31.28-.65.37-1m-4.55-1.71c-2.13.23-4.6-.42-4.62-.42-.01.12-.03.25-.04.37 2.22.69 4.6.52 4.61.52.02-.14.04-.3.05-.47m-.13 1.07c-.01.02-.02.05-.02.07 0-.01.01-.02.01-.02 0-.02 0-.03.01-.05m-1.82.89c.73-.03 1.25-.19 1.38-.27.09-.06.22-.21.32-.36-2.14.24-4.46-.44-4.48-.45v.02s.17.33.69.63c.52.3 1.36.46 2.09.43" /></symbol>'});s().add(c);const r=c},86788:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"varnish",use:"varnish-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="varnish"><path d="M13.165 8.533a3.766 3.766 0 1 0 0-7.531 3.766 3.766 0 0 0 0 7.531M7.197 17.001a2.72 2.72 0 1 0 0-5.44 2.72 2.72 0 0 0 0 5.44M2.638 9.656a1.564 1.564 0 1 0 0-3.127 1.564 1.564 0 0 0 0 3.127" /></symbol>'});s().add(c);const r=c},73931:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"webLog",use:"webLog-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog"><path d="M8.26 15.96c.24.03.49.04.74.04s.5-.01.74-.04l1.34-1.36H6.92zM6.22 13.9h5.55l1.38-1.4H4.84zm-2.07-2.1h9.71l1.38-1.4H2.76zM16 8.82v-.18c0-.03 0-.06-.01-.09 0-.03 0-.06-.01-.09 0-.06-.01-.11-.01-.17a7.03 7.03 0 0 0-2.16-4.39A7.046 7.046 0 0 0 9 2c-1.79 0-3.5.68-4.8 1.91A6.93 6.93 0 0 0 2.04 8.3c-.01.06-.01.11-.01.17 0 .03 0 .06-.01.08 0 .03 0 .06-.01.09V9c0 .24.01.47.04.7h13.93c.02-.23.04-.46.04-.7-.02-.06-.02-.12-.02-.18M8.3 8.3H3.44c.13-1.05.54-2.02 1.21-2.84a7.19 7.19 0 0 0 3.64 1.4V8.3zm0-2.84c-.94-.11-1.83-.45-2.61-.97.77-.56 1.66-.92 2.61-1.04zm1.4-2.02c.95.12 1.84.47 2.61 1.04-.78.53-1.67.86-2.61.97zm0 4.86V6.87a7.28 7.28 0 0 0 3.64-1.4c.67.82 1.08 1.79 1.21 2.84H9.7z" /></symbol>'});s().add(c);const r=c},75194:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"webLog_nginx",use:"webLog_nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog_nginx"><path d="m11.06 1.94-.44-.44H3.5v15h11V5.38zm-.31 1.81 1.5 1.5h-1.5zM13 15H5V3h4.25v3.75H13zM6.97 7.93c-.29.11-.47.39-.47.7v3.75c0 .41.34.75.75.75s.75-.34.75-.75v-1.85l2.2 2.36c.14.16.34.24.55.24.09 0 .19-.02.28-.05.29-.11.47-.39.47-.7V8.62c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.85L7.8 8.11a.754.754 0 0 0-.83-.18" /></symbol>'});s().add(c);const r=c},84458:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"x509_check",use:"x509_check-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="x509_check"><path d="M12.79 9.42c-.02.46-.07.85-.16 1.18h1.23c.04.22.13.45.45.45.5 0 .53-.88.54-1.49-.21.27-.56.36-.91.36-.48 0-.88-.17-1.15-.5m1.45 2.64c-1.2 0-1.59-.65-1.71-1.15-.31.81-.88 1.15-1.71 1.15-.77 0-1.33-.31-1.65-1.06-.27.67-.86 1.06-1.82 1.06-1.29 0-1.82-.71-1.87-1.67h1.38c.03.41.16.66.51.66.42 0 .53-.34.53-.97 0-.63-.13-.93-.55-.93-.32 0-.46.19-.54.51l-1.25-.13c.1-.66.29-2.5.35-3.22h3.27L9 7.44H7.06c-.02.25-.08.74-.1.95.18-.16.47-.27.9-.27.45 0 .79.15 1.04.4.13-1.72.89-2.31 1.96-2.31.77 0 1.37.3 1.69 1.12.26-.7.88-1.12 1.77-1.12.72 0 1.22.24 1.54.71C14.96 4.07 12.3 2 9.16 2 5.83 2 3.04 4.33 2.33 7.45h.81c.23.56.39 1.09.47 1.35h.03c.11-.33.3-.88.5-1.35h1.51L4.49 9.57l1.16 2.4H4.08c-.24-.63-.39-1.13-.48-1.4h-.03c-.08.25-.3.92-.49 1.4h-.27A7.013 7.013 0 0 0 9.16 16a7 7 0 0 0 6.56-4.56c-.32.41-.79.62-1.48.62M2.16 9c0 .5.05.98.15 1.45l.36-.72-.5-1.04c-.01.1-.01.21-.01.31m12.18-.11c.31 0 .5-.2.5-.77 0-.59-.11-.91-.51-.91-.34 0-.5.27-.5.84 0 .59.18.84.51.84m-3.85.6-.63-.63-.49.49 1.12 1.12 1.68-1.68-.49-.49z" /></symbol>'});s().add(c);const r=c},26140:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"xen",use:"xen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="xen"><path d="M10.22 6.47H7.17L5.4 7.82 4.37 6.47H1.92l1.94 2.54L0 11.97h3.06l1.93-1.48 1.13 1.48h2.45L6.53 9.3zm-5.24 5.94a3.3 3.3 0 0 1-1.65-.43l-.21.16H1.58c.85.91 2.05 1.49 3.4 1.49s2.55-.57 3.4-1.49H6.29c-.4.17-.84.27-1.31.27m5.72-4.84c-1.78 0-2.57.97-2.57 1.85 0 .73.52 1.42 2.06 1.42 1.42 0 2.1-.51 2.36-1.05h-1.56c-.12.16-.29.26-.66.26-.43 0-.61-.2-.61-.48 0-.03 0-.07.01-.1h2.96c.07-.18.1-.34.1-.56-.01-.74-.63-1.34-2.09-1.34m.56 1.25H9.91c.09-.3.35-.5.77-.5.39 0 .59.14.59.4.01.02 0 .06-.01.1m-9.42 1.51a3.406 3.406 0 0 1 .32-3.25l-.6-.79H2.9a3.419 3.419 0 0 1 4.17.02l.03-.02h1.63a4.634 4.634 0 0 0-3.76-1.92C2.42 4.37.35 6.44.35 9c0 .75.18 1.47.5 2.1zm6.49-1.97c.24-.31.59-.58 1.07-.76-.02-.08-.05-.15-.08-.23l-1.03.79c.01.08.03.14.04.2m8.44-.79c-.71 0-1.11.22-1.36.42.02-.09.05-.28.06-.34h-1.58c-.05.21-.11.45-.22.85l-.61 2.25h1.62l.43-1.6c.13-.5.4-.72.81-.72.42 0 .46.22.38.52l-.49 1.8h1.62l.51-1.89c.23-.85-.24-1.29-1.17-1.29m-8.6 2.62c-.08.21-.18.41-.29.59l.78 1.02c.21-.28.4-.59.54-.91-.29-.08-.53-.2-.72-.36a1.26 1.26 0 0 1-.31-.34" /></symbol>'});s().add(c);const r=c},83835:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"settings",use:"settings-usage",viewBox:"0 0 17 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 15" id="settings"><path d="M14.514 7.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v5.86c-1.29.34-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89m-.17 4.27c-.18.08-.38.12-.58.12-.2 0-.4-.04-.58-.12-.54-.23-.92-.76-.92-1.38a1.36 1.36 0 0 1 .08-.45c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36-.02.62-.4 1.15-.94 1.38M4.014 5.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v3.86c-1.29.33-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89m.7 3.25-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52-.22.13-.48.21-.75.21s-.53-.08-.75-.21c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.03-.12-.05-.24-.05-.36s.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.02.25-.05.36m4.52-7.26a.739.739 0 0 0-.72-.6c-.36 0-.65.26-.72.6a2.982 2.982 0 0 0-2.28 2.9c0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.41-.97-2.58-2.28-2.9m.73 3.26-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52a1.42 1.42 0 0 1-1.49 0c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.02-.11-.04-.23-.04-.36 0-.13.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.04.25-.07.36m-7.45 7.05v2.34c0 .41.34.75.75.75s.75-.34.75-.75v-2.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09m5.25-4v6.34c0 .41.34.75.75.75s.75-.34.75-.75V7.71c-.24.05-.49.09-.75.09s-.51-.04-.75-.09m5.25 6v.34c0 .41.34.75.75.75s.75-.34.75-.75v-.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09" /></symbol>'});s().add(c);const r=c},13347:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"sign_in",use:"sign_in-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sign_in"><g clip-path="url(#sign_in_a)"><path d="M6.76 4.231c.38-.308.994-.308 1.374 0L14 9.001l-5.867 4.768c-.19.154-.438.231-.687.231-.248 0-.497-.078-.686-.232-.38-.308-.38-.808 0-1.116l3.523-2.863H.97C.435 9.79 0 9.436 0 9c0-.435.435-.788.971-.788h9.312L6.76 5.348c-.38-.308-.38-.808 0-1.117" /><path d="M2.6 3.88a.759.759 0 0 1-.07-1.12A8.944 8.944 0 0 1 9 0c4.97 0 8.99 4.03 8.99 9S13.97 18 9 18c-2.54 0-4.84-1.06-6.47-2.76a.759.759 0 0 1 .07-1.12c.3-.23.73-.22.99.05 1.69 1.78 4.25 2.73 7 2.16 2.89-.59 5.2-2.93 5.77-5.82.1-.51.14-1.02.14-1.51s-.04-1-.14-1.51c-.57-2.89-2.89-5.22-5.77-5.82-2.74-.57-5.3.38-7 2.16-.26.28-.7.29-.99.05" /></g><defs><clipPath id="sign_in_a"><path d="M0 18V0h18v18z" /></clipPath></defs></symbol>'});s().add(c);const r=c},13322:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"sort_indicator",use:"sort_indicator-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_indicator"><path d="M6 2.44 3.47 4.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.72-.72V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l.72.72c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06zM12 15.75l2.53-2.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.72.72V3.19c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-.72-.72a.742.742 0 0 0-.53-.22c-.19 0-.38.07-.53.22-.29.29-.29.77 0 1.06z" /></symbol>'});s().add(c);const r=c},84222:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"sorting_asc",use:"sorting_asc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_asc"><path d="M.8 5.2c.4.4 1 .4 1.4 0l.8-.8V8c0 .6.4 1 1 1s1-.4 1-1V4.4l.8.8c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L4 .6.8 3.8c-.4.4-.4 1 0 1.4" /></symbol>'});s().add(c);const r=c},35624:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"sorting_desc",use:"sorting_desc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_desc"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4" /></symbol>'});s().add(c);const r=c},5601:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"sorting_vertical",use:"sorting_vertical-usage",viewBox:"0 0 19 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" id="sorting_vertical"><path d="M16.736 0H2.908C1.822 0 .933.9.933 2v14c0 1.1.889 2 1.975 2h13.828c1.086 0 1.975-.9 1.975-2V2c0-1.1-.889-2-1.975-2M6.859 14H4.883V7H6.86zm3.95 0H8.835V4h1.976zm3.951 0h-1.975v-4h1.975z" /></symbol>'});s().add(c);const r=c},44894:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"space",use:"space-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="space"><path fill-rule="evenodd" d="M11.985 2a9.92 9.92 0 0 1 7.06 2.925 9.92 9.92 0 0 1 2.925 7.06 9.92 9.92 0 0 1-2.924 7.06 9.92 9.92 0 0 1-7.06 2.925 9.92 9.92 0 0 1-7.061-2.924A9.92 9.92 0 0 1 2 11.986c0-1.346.263-2.652.782-3.881a.58.58 0 0 1 1.068.45 8.771 8.771 0 0 0-.691 3.43c0 4.867 3.96 8.827 8.826 8.827 4.867 0 8.827-3.96 8.827-8.827s-3.96-8.826-8.827-8.826a8.788 8.788 0 0 0-3.179.59.58.58 0 0 1-.417-1.082A9.942 9.942 0 0 1 11.985 2m.195 13.963c.895 0 1.623.727 1.623 1.622 0 .894-.728 1.622-1.623 1.622a1.624 1.624 0 0 1-1.622-1.622c0-.895.728-1.622 1.622-1.622m0 1.158a.464.464 0 1 0 .002.928.464.464 0 0 0-.002-.928m-.195-11.315a6.186 6.186 0 0 1 6.18 6.18 6.176 6.176 0 0 1-2.725 5.122.58.58 0 0 1-.648-.96 5.02 5.02 0 1 0-5.332.177.58.58 0 0 1-.584 1 6.175 6.175 0 0 1-3.07-5.34 6.186 6.186 0 0 1 6.18-6.179m0 2.698c1.92 0 3.481 1.562 3.481 3.481 0 1.92-1.561 3.481-3.48 3.481a3.485 3.485 0 0 1-3.482-3.48c0-1.92 1.562-3.482 3.481-3.482m0 1.16a2.325 2.325 0 0 0-2.322 2.321 2.325 2.325 0 0 0 2.322 2.322 2.325 2.325 0 0 0 2.322-2.322 2.325 2.325 0 0 0-2.322-2.322M5.228 2.946A2.284 2.284 0 0 1 7.51 5.228 2.284 2.284 0 0 1 5.23 7.51a2.284 2.284 0 0 1-2.282-2.28 2.284 2.284 0 0 1 2.281-2.282m0 1.16c-.618 0-1.122.503-1.122 1.121 0 .619.504 1.122 1.122 1.122.62 0 1.122-.503 1.122-1.122 0-.618-.503-1.122-1.122-1.122" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},79349:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"space_new",use:"space_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="space_new"><path d="M2 13.77V11H0v2.77C0 17.2 2.79 20 6.23 20H9v-2H6.23C3.9 18 2 16.1 2 13.77m0-7.54C2 3.9 3.9 2 6.23 2H9V0H6.23A6.23 6.23 0 0 0 0 6.23V9h2zM12 10c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2m6 3.77C18 16.1 16.1 18 13.77 18H11v2h2.77C17.2 20 20 17.21 20 13.77V11h-2zM13.77 0H11v2h2.77C16.1 2 18 3.9 18 6.23V9h2V6.23A6.23 6.23 0 0 0 13.77 0" /></symbol>'});s().add(c);const r=c},20508:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"spaces_v2",use:"spaces_v2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="spaces_v2"><path d="M22.27 4.22c-.17-.85-.65-1.49-1.38-1.85-.89-.45-2.11-.43-3.58.02.82.46 1.58 1.02 2.25 1.66.18.02.32.05.43.11.12.06.25.16.31.47.08.4.01.94-.19 1.56A9.926 9.926 0 0 0 12 2C6.49 2 2 6.49 2 12c0 1.25.25 2.43.67 3.54-.85 1.7-1.17 3.13-.94 4.25.2.96.8 1.67 1.7 1.99.36.13.76.19 1.2.19 2.25 0 5.54-1.59 8.98-4.4 4.73-3.87 9.37-9.86 8.66-13.35M4.1 19.89c-.2-.07-.34-.18-.41-.51-.08-.39 0-.94.2-1.58.54.75 1.17 1.41 1.89 1.99-.72.19-1.3.23-1.68.1m3.91-.99C5.62 17.52 4 14.95 4 12c0-4.41 3.59-8 8-8 3.1 0 5.79 1.78 7.11 4.36-1.33 2.31-3.69 5.14-6.77 7.65-1.58 1.3-3.05 2.24-4.33 2.89m12.56-5.35c-.34.4-.69.78-1.06 1.16-1.04 2.89-3.69 5-6.87 5.26 0 0-.01 0-.01.01-1.07.6-2.15 1.18-3.32 1.65.85.24 1.75.37 2.67.37 5.51 0 10-4.49 10-10 0-.1-.01-.2-.01-.29-.42.65-.89 1.26-1.4 1.84" /></symbol>'});s().add(c);const r=c},73215:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"stock_config",use:"stock_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="stock_config"><path fill-rule="evenodd" d="M1 2.933C1 2.418 1.348 2 1.778 2h3.189a.7.7 0 0 1 .7.7v.933H14.3a.7.7 0 0 1 .7.7v7.934c0 .515-.348.933-.778.933H1.778c-.43 0-.778-.418-.778-.933zM7.012 6.38l-.098.84-.86.217-1.359-1.392a2.21 2.21 0 0 0-.195.918c0 1.195.958 2.173 2.14 2.173.234 0 .45-.05.664-.119l2.375 2.42c.45.454 1.143.484 1.543.079.401-.405.362-1.096-.078-1.55l-2.432-2.45c.039-.178.068-.375.068-.553A2.145 2.145 0 0 0 6.64 4.8c-.342 0-.664.089-.948.227z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},37110:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"switch_off",use:"switch_off-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="switch_off"><path d="M11.58 2.712a.75.75 0 0 0-.981 1.136A5.479 5.479 0 0 1 12.499 8c0 3.033-2.468 5.5-5.5 5.5a5.506 5.506 0 0 1-5.5-5.5 5.48 5.48 0 0 1 1.9-4.152.75.75 0 1 0-.981-1.136A6.985 6.985 0 0 0 0 8c0 3.86 3.141 7 7 7s7-3.14 7-7a6.98 6.98 0 0 0-2.42-5.288M7 8.75A.75.75 0 0 0 7.75 8V1a.75.75 0 0 0-1.5 0v7c0 .414.336.75.75.75" /></symbol>'});s().add(c);const r=c},67287:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"system_overview",use:"system_overview-usage",viewBox:"0 0 32 32",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="system_overview"><path d="M16 14c.51 0 .98.2 1.33.52l2.68-2.98A5.99 5.99 0 0 0 16 10.01c-3.29 0-6 2.71-6 6s2.71 6 6 6 6-2.71 6-6a6 6 0 0 0-.48-2.36l-3.68 1.57A2.006 2.006 0 0 1 16 18.01c-1.1 0-2-.9-2-2S14.9 14 16 14M3.47 16C4.84 10.25 10.06 6.11 16 6.11c2.41 0 4.69.69 6.65 1.89H21.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5H28V4.5c0-.83-.67-1.5-1.5-1.5S25 3.67 25 4.5v1.19c-2.6-1.76-5.7-2.8-9-2.8C8.43 2.89 1.8 8.26.24 15.67L.17 16l.07.33c.19.92.47 1.81.81 2.67H4.6c-.5-.94-.88-1.94-1.13-3m28.29-.33c-.19-.92-.47-1.81-.81-2.67H27.4c.5.94.88 1.94 1.13 3-1.37 5.75-6.59 9.89-12.53 9.89-2.41 0-4.69-.69-6.65-1.89h1.15c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H4v6.5c0 .83.67 1.5 1.5 1.5S7 28.33 7 27.5v-1.19c2.6 1.76 5.7 2.8 9 2.8 7.57 0 14.2-5.37 15.76-12.78l.07-.33z" /></symbol>'});s().add(c);const r=c},99679:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"system_overview_press",use:"system_overview_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="system_overview_press"><path d="M3.07 12H7.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.12 0 2.03-.89 2.07-2H1.01c.04 1.11.94 2 2.06 2m9.86-10H3.07C1.93 2 1 2.93 1 4.07V9h14V4.07C15 2.93 14.07 2 12.93 2" /></symbol>'});s().add(c);const r=c},97285:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"text_add",use:"text_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="text_add"><path d="M12 8.5c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5m2 4.25h-1.25V14h-1.5v-1.25H10v-1.5h1.25V10h1.5v1.25H14zM12.5 1.54V5H14V1.54C14 .69 13.31 0 12.46 0H1.54C.69 0 0 .69 0 1.54V5h1.5V1.54c0-.02.02-.04.04-.04h4.71v11H3V14h4.75V1.5h4.71c.02 0 .04.02.04.04" /></symbol>'});s().add(c);const r=c},24387:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"thumb_down",use:"thumb_down-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_down"><path d="M20.4 4h-3l-2-2H5.6L2 5.6v8.8L4.6 17H9v3.4l1.6 1.6h3.8l1.6-1.6v-3l1.4-1.4H22V5.6zM16 14.6l-2 2v3l-.4.4h-2.2l-.4-.4V15H5.4L4 13.6V12h5v-1H4V8h5V7H4v-.6L6.4 4h8.2L16 5.4zm4-.6h-2V6h1.6l.4.4z" /></symbol>'});s().add(c);const r=c},54204:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"thumb_up",use:"thumb_up-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_up"><path d="M19.4 7H15V3.6L13.4 2H9.6L8 3.6v3L6.6 8H2v10.4L3.6 20h3l2 2h9.8l3.6-3.6V9.6zM6 18H4.4l-.4-.4V10h2zm14-6h-5v1h5v3h-5v1h5v.6L17.6 20H9.4L8 18.6V9.4l2-2v-3l.4-.4h2.2l.4.4V9h5.6l1.4 1.4z" /></symbol>'});s().add(c);const r=c},46020:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"tiny_buttons",use:"tiny_buttons-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="tiny_buttons"><path d="M14.525 18.5h1.65V17h-1.65zm.225-15H3.5v11.25h3.75v1.425h1.5V14.75h6v-6h1.425v-1.5H14.75zm-1.5 9.75H5V5h8.25zm-1.2 5.25h1.65V17h-1.65zm-2.475 0h1.65V17h-1.65zm-2.325 0h1.5V17h-1.5zM17 7.25v1.5h1.5v-1.5zm0 3.975h1.5v-1.65H17zm0 7.275h1.5V17H17zm0-2.325h1.5v-1.65H17zm0-2.475h1.5v-1.65H17zM4 1h14v-2H4zm17 3v14h2V4zm-3 17H4v2h14zM1 18V4h-2v14zm3 3a3 3 0 0 1-3-3h-2a5 5 0 0 0 5 5zm17-3a3 3 0 0 1-3 3v2a5 5 0 0 0 5-5zM18 1a3 3 0 0 1 3 3h2a5 5 0 0 0-5-5zM4-1a5 5 0 0 0-5 5h2a3 3 0 0 1 3-3z" /></symbol>'});s().add(c);const r=c},87501:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"top",use:"top-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="top"><path d="M7.293 2.707a1 1 0 0 1 1.414 0l3.586 3.586c.63.63.184 1.707-.707 1.707H4.414c-.89 0-1.337-1.077-.707-1.707z" /><path d="M6 6h4v8H6z" /></symbol>'});s().add(c);const r=c},134:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"training",use:"training-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="training"><path fill="#8F9EAA" fill-rule="evenodd" d="M1.3 6.661 3.507 7.8v2.976c.016.276.1.544.243.777.142.23.337.42.568.552.87.6 2.314.896 3.681.896s2.81-.296 3.68-.896a1.6 1.6 0 0 0 .569-.552c.143-.233.227-.5.243-.777V7.796l.337-.183v3.35l.01.031a.589.589 0 0 0 .208.294.554.554 0 0 0 .662 0 .59.59 0 0 0 .208-.294l.01-.03V7.058l.772-.397h.002a.558.558 0 0 0 .225-.222.588.588 0 0 0-.031-.623.552.552 0 0 0-.246-.195l-.033-.013h-.037l-6.4-2.57a.508.508 0 0 0-.395 0L1.35 5.623a.552.552 0 0 0-.246.196.584.584 0 0 0 .194.843m10.07 1.701-.013 1.246v1.17c0 .048-.034.146-.181.279-.141.127-.36.262-.658.385-.592.245-1.464.43-2.556.43s-1.963-.19-2.555-.438a2.324 2.324 0 0 1-.658-.39c-.147-.134-.182-.233-.182-.281V8.357l1.454.751 1.101.573.577.298a.514.514 0 0 0 .495.001l.605-.298 1.119-.57zm-3.917.234L2.866 6.22l5.096-2.045 5.096 2.042-4.586 2.378-.51.245z" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},38860:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"trashcan",use:"trashcan-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="trashcan"><path d="M4.75 5.188v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.562v-6.75a.557.557 0 0 0-.562-.563.557.557 0 0 0-.563.563m3.375 0v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.562v-6.75a.557.557 0 0 0-.562-.563.557.557 0 0 0-.563.563m4.669.73-.259.26.09-1.474v-.068H11.5l-.495 7.92a1.147 1.147 0 0 1-1.147 1.08H4.143a1.147 1.147 0 0 1-1.148-1.08L2.568 5.75 2.433 3.5h10.755a.557.557 0 0 0 .562-.562.557.557 0 0 0-.562-.563H9.25A2.257 2.257 0 0 0 7 .125a2.257 2.257 0 0 0-2.25 2.25H.813a.557.557 0 0 0-.563.563c0 .314.248.562.563.562h.495l.067 1.193.09 1.473-.259-.259a.557.557 0 0 0-.798 0 .557.557 0 0 0 0 .8L1.533 7.83c.01.011.022.011.033.023l.293 4.759A2.286 2.286 0 0 0 4.13 14.75h5.704a2.27 2.27 0 0 0 2.272-2.137l.293-4.748c.011-.011.022-.011.034-.022l1.125-1.125a.557.557 0 0 0 0-.8c-.225-.224-.551-.224-.765 0M7 1.25c.619 0 1.125.506 1.125 1.125h-2.25c0-.619.506-1.125 1.125-1.125" /></symbol>'});s().add(c);const r=c},16168:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"triangle",use:"triangle-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="triangle"><path d="M24 0 12 16 0 0z" /></symbol>'});s().add(c);const r=c},95436:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"triangle_down",use:"triangle_down-usage",viewBox:"0 0 10 5",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 5" id="triangle_down"><path d="m0 0 5 5 5-5z" /></symbol>'});s().add(c);const r=c},97701:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"universe",use:"universe-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="universe"><path d="M9 13.35c.75 0 1.35-.6 1.35-1.35 0-.75-.6-1.35-1.35-1.35-.75 0-1.35.6-1.35 1.35 0 .75.6 1.35 1.35 1.35m2.23-2.12c.35.35.93.26 1.19-.16.37-.6.58-1.31.58-2.07 0-2.21-1.79-3.97-4-3.98a3.982 3.982 0 0 0-3.42 6.05c.26.43.84.51 1.19.16.25-.25.28-.63.1-.93-.23-.37-.37-.82-.37-1.3 0-1.38 1.12-2.49 2.5-2.49S11.5 7.63 11.5 9c0 .48-.14.93-.37 1.31-.18.29-.15.67.1.92M5.71 5.71c.53-.53.53-1.38 0-1.91s-1.38-.53-1.91 0-.53 1.38 0 1.91 1.38.53 1.91 0M9 10c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1m.42-7.99c-.81-.05-1.58.04-2.31.25-.43.12-.66.59-.49 1.01l.01.01c.14.34.51.53.86.43.89-.26 1.87-.3 2.88-.05 1.98.48 3.57 2.11 4.01 4.1a5.514 5.514 0 0 1-6.6 6.6c-1.99-.44-3.62-2.02-4.1-4-.25-1.01-.21-2 .05-2.89.1-.35-.1-.72-.43-.86 0 0-.01 0-.01-.01a.759.759 0 0 0-1.01.49c-.2.73-.3 1.5-.25 2.3.2 3.59 3.24 6.52 6.84 6.6 3.98.08 7.22-3.15 7.15-7.12-.08-3.59-3.01-6.65-6.6-6.86" /></symbol>'});s().add(c);const r=c},68008:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"unknownError",use:"unknownError-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="unknownError"><path d="M11.17 2H4.83C2.26 2 .68 4.8 2 7l3.35 5.59c.6 1 1.62 1.5 2.65 1.5 1.03 0 2.05-.5 2.65-1.5L14 7c1.32-2.2-.26-5-2.83-5m1.55 4.23-3.35 5.59c-.42.7-1.09.77-1.36.77s-.94-.07-1.36-.77L3.28 6.23c-.49-.81-.18-1.54-.02-1.81s.62-.92 1.57-.92h6.34c.95 0 1.41.64 1.57.91.16.27.46 1-.02 1.82M8 8.35c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75m-.18-3.31c-.43.1-.71.53-.61.96l.36 1.6a.434.434 0 0 0 .85 0L8.78 6c.02-.11.03-.24 0-.35a.79.79 0 0 0-.96-.61" /></symbol>'});s().add(c);const r=c},1806:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"unreachable",use:"unreachable-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="unreachable"><path d="M10 8.5H8V10H5.62l-1.38 1.5h.96v2h1.62v-2H9.5V10h2V3.62L10 5.24zM11.5.45a.746.746 0 0 0-1.06.05l-.46.5H.5v9h1.3L.44 11.5c-.28.31-.26.78.05 1.06.14.13.32.2.5.2.2 0 .41-.08.55-.25l10-11c.29-.31.27-.79-.04-1.06M3.17 8.5H2v-6h1.25V4h1.5V2.5h3.87z" /></symbol>'});s().add(c);const r=c},85994:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"unreachableNode",use:"unreachableNode-usage",viewBox:"0 0 231 230",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 231 230" id="unreachableNode"><path fill="#EDF2F6" d="M115.5 226c61.304 0 111-49.696 111-111S176.804 4 115.5 4 4.5 53.696 4.5 115s49.696 111 111 111" /><path fill="#E2E6EC" d="M212.149 115a96.657 96.657 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432 96.653 96.653 0 0 1-60.974-64.43 96.65 96.65 0 0 1 17.25-87.015l3.303-4.037A96.649 96.649 0 0 1 212.149 115" /><mask id="unreachableNode_a" width="206" height="194" x="6" y="18" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#E2E6EC" d="M211.798 114.743a96.645 96.645 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432C68.697 200.905 26.108 203.209 15.5 192c-10.608-11.209.281-35.172-4-50-4.281-14.828-6-31.361-3-46.5 3.001-15.139-.614-35.927 9-48H40c13.017-14.675 33.037-22.027 52.086-26.708a96.648 96.648 0 0 1 119.712 93.951" /></mask><g mask="url(#unreachableNode_a)"><g clip-path="url(#unreachableNode_b)"><path fill="#45535C" d="M217.255 50H19.142a2.641 2.641 0 0 0-2.642 2.642v134.716A2.642 2.642 0 0 0 19.142 190h198.113a2.641 2.641 0 0 0 2.641-2.642V52.642A2.641 2.641 0 0 0 217.255 50" /><path fill="#546C82" d="M19.142 50h198.113a2.644 2.644 0 0 1 2.641 2.642v3.962H16.5v-3.962A2.641 2.641 0 0 1 19.142 50" /><path fill="#0F0" d="M21.123 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963" opacity=".5" /><path fill="#FF0" d="M27.727 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963" opacity=".5" /><path fill="red" d="M34.33 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963" opacity=".5" /><path stroke="#fff" stroke-miterlimit="10" stroke-width="2" d="m34.33 88.962 6.604-6.603-6.604-6.604M44.236 88.302h11.887" /></g><path fill="#7698B0" d="M145.374 81.989a2.328 2.328 0 0 0-4.656 0v19.552a2.327 2.327 0 0 0 4.656 0z" /><path fill="#6D8CA3" d="M145.373 83.386h7.821a2.421 2.421 0 0 1 2.421 2.42v11.918a2.42 2.42 0 0 1-2.421 2.421h-7.821z" /><path fill="#658196" d="M155.615 88.972h2.979a2.607 2.607 0 0 1 2.607 2.607v.372a2.61 2.61 0 0 1-2.607 2.607h-2.979z" /><path fill="#7698B0" d="M219.897 143.904v1.862h-36.35a9.31 9.31 0 0 1-9.311-9.31v-36.312c0-4.096-2.7-7.448-6.052-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.19 7.914 9.31v36.312a7.447 7.447 0 0 0 7.449 7.448z" /><path fill="#80A4BF" d="M124.89 85.247h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724M124.89 94.558h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724" /><path fill="#6D8CA3" d="M127.777 81.523h12.941v20.484h-12.941a3.818 3.818 0 0 1-3.818-3.818V85.341a3.815 3.815 0 0 1 2.357-3.527c.463-.192.959-.29 1.461-.29" /><path fill="#19B357" d="M106.269 107.127a2.327 2.327 0 0 0-4.655 0v19.553a2.327 2.327 0 0 0 4.655 0z" /><path fill="#00AB44" d="M106.269 108.523h7.821a2.419 2.419 0 0 1 2.42 2.421v11.918a2.419 2.419 0 0 1-2.42 2.42h-7.821z" /><path fill="#00993D" d="M116.51 114.11h2.98a2.607 2.607 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.98z" /><path fill="#00AB44" d="M219.896 132.732c-.016.624 0 1.136 0 1.862h-75.454a9.312 9.312 0 0 1-9.311-9.311c0-4.096-2.7-7.448-6.051-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.189 7.914 9.31a7.447 7.447 0 0 0 7.448 7.449z" /><path fill="#00CB51" d="M85.786 110.386h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724M85.786 119.696h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724" /><path fill="#00AB44" d="M88.672 106.662h12.942v20.483H88.672a3.817 3.817 0 0 1-3.817-3.817v-12.849a3.818 3.818 0 0 1 3.817-3.817" /><path fill="#7698B0" d="M124.89 149.025a2.328 2.328 0 1 0-4.655 0v19.552a2.328 2.328 0 0 0 4.655 0z" /><path fill="#6D8CA3" d="M124.89 150.421h7.821a2.421 2.421 0 0 1 2.421 2.421v11.824a2.421 2.421 0 0 1-2.421 2.421h-7.821z" /><path fill="#658196" d="M135.131 156.008h2.98a2.606 2.606 0 0 1 2.607 2.607v.372a2.608 2.608 0 0 1-2.607 2.607h-2.98z" /><path fill="#7698B0" d="M219.896 122.49h-56.833a7.447 7.447 0 0 0-7.448 7.448v20.484c0 5.12-3.538 9.31-7.914 9.31h-6.983v-1.862h6.983c3.352 0 6.052-3.352 6.052-7.448v-20.484a9.31 9.31 0 0 1 9.31-9.31h56.833z" /><path fill="#80A4BF" d="M104.407 152.283h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724M104.407 161.594h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724" /><path fill="#6D8CA3" d="M107.293 148.559h12.942v20.483h-12.942a3.817 3.817 0 0 1-3.817-3.818v-12.848a3.815 3.815 0 0 1 3.817-3.817" /></g><defs><clipPath id="unreachableNode_b"><path fill="#fff" d="M16.5 50h203.396v140H16.5z" /></clipPath></defs></symbol>'});s().add(c);const r=c},39191:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"update",use:"update-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update"><path d="M12.29 7.29 9 10.59 7.71 9.3a.996.996 0 1 0-1.41 1.41l2.71 2.71 4.71-4.71a.996.996 0 0 0 0-1.41 1.02 1.02 0 0 0-1.43-.01M2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1m17.95-1h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1" /></symbol>'});s().add(c);const r=c},36419:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"update_pending",use:"update_pending-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update_pending"><path d="M2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1m9.5-3.21a1.54 1.54 0 0 0-1.86-1.14A1.53 1.53 0 0 0 8.5 7.5l.59 2.5a.93.93 0 0 0 1.81 0l.59-2.5c.06-.23.07-.47.01-.71M10 11.24c-.7 0-1.26.56-1.26 1.26s.56 1.26 1.26 1.26 1.26-.56 1.26-1.26-.56-1.26-1.26-1.26M19.95 9h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1" /></symbol>'});s().add(c);const r=c},30807:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"upload",use:"upload-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="upload"><path d="M6.21 7.21 9 4.41V14c0 .55.45 1 1 1s1-.45 1-1V4.41l2.79 2.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L10 .59l-5.21 5.2a.996.996 0 0 0 0 1.41c.39.39 1.03.4 1.42.01M18 14v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 17.1V14H0v3.1C0 19.25 1.75 21 3.9 21h12.2c2.15 0 3.9-1.75 3.9-3.9V14z" /></symbol>'});s().add(c);const r=c},24762:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"user",use:"user-usage",viewBox:"0 0 16 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 18" id="user"><path d="M13.72 11.59c-.02.02-.04.05-.06.07-.35.35-.74.66-1.14.94 1.18.71 1.98 2 1.98 3.48V18H16v-1.92c0-1.85-.9-3.48-2.28-4.49M8 0C4.69 0 2 2.69 2 6c0 1.89.87 3.57 2.24 4.67-2.43.6-4.24 2.79-4.24 5.41V18h1.5v-1.92C1.5 13.83 3.33 12 5.58 12H8c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 1.5 8 1.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5" /></symbol>'});s().add(c);const r=c},55370:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"user_config",use:"user_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="user_config"><path d="M8 1.333c2.206 0 4 1.794 4 4s-1.794 4-4 4H6.167a2.837 2.837 0 0 0-2.834 2.834v2.5H2v-2.5a4.171 4.171 0 0 1 3.147-4.036A3.986 3.986 0 0 1 4 5.333c0-2.206 1.794-4 4-4M11.292 12.333c0-.206.168-.375.375-.375.206 0 .375.169.375.375a.376.376 0 0 1-.375.375.376.376 0 0 1-.375-.375" /><path fill-rule="evenodd" d="m13.703 12.015.064.037.333.188-.04.37c-.023.184-.06.357-.117.518l-.124.353-.371.026-.083.004c-.052.075-.112.15-.176.217l.015.083.06.367-.315.199c-.142.09-.3.161-.476.225l-.353.124-.25-.274-.053-.056c-.05.007-.098.007-.143.007-.045 0-.094-.004-.142-.007l-.053.056-.251.274-.353-.124a2.233 2.233 0 0 1-.476-.225l-.315-.199.06-.367.015-.083a1.935 1.935 0 0 1-.176-.217l-.083-.004-.37-.026-.125-.353a2.359 2.359 0 0 1-.116-.517l-.041-.372.322-.183.064-.038a2.3 2.3 0 0 1 .068-.277l-.05-.068-.213-.307.199-.315c.101-.162.206-.296.322-.413l.263-.266.345.139.082.034c.083-.046.17-.09.255-.124l.02-.075.108-.356.371-.042.045-.007.015-.002c.054-.008.124-.017.203-.017.073 0 .136.008.19.015l.027.004.045.007.371.042.11.356.022.071c.086.034.172.075.255.124l.082-.034.345-.139.263.266c.116.12.22.255.322.413l.199.315-.214.307-.049.068c.03.09.053.184.068.277m-2.974.318a.938.938 0 1 0 1.876 0 .938.938 0 0 0-1.876 0" clip-rule="evenodd" /></symbol>'});s().add(c);const r=c},42149:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"user_press",use:"user_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="user_press"><path d="M10 7.2c.6-.5 1-1.3 1-2.2 0-1.7-1.3-3-3-3S5 3.3 5 5c0 .9.4 1.7 1 2.2-1.7.5-3 2.1-3 4V14h10v-2.8c0-1.9-1.3-3.5-3-4" /></symbol>'});s().add(c);const r=c},5060:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"users",use:"users-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="users"><path d="M11.71 6.92C12.5 6.19 13 5.16 13 4c0-2.21-1.79-4-4-4-1.11 0-2.1.46-2.82 1.2C5.81 1.08 5.42 1 5 1 2.79 1 1 2.79 1 5c0 1.16.5 2.19 1.29 2.92A4.059 4.059 0 0 0 0 11.56V14h1.5v-2.44C1.5 10.15 2.65 9 4.06 9h1.88c1.41 0 2.56 1.15 2.56 2.56V14H10v-2.44c0-1.6-.94-2.98-2.29-3.64C8.5 7.19 9 6.16 9 5c0-1.22-.56-2.3-1.42-3.03.41-.29.89-.47 1.42-.47a2.494 2.494 0 0 1 .8 4.86c-.09.32-.23.63-.38.92l.24.72h.27c1.41 0 2.56 1.15 2.56 2.56V14h1.5v-3.44c.01-1.6-.93-2.98-2.28-3.64M5 7.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5" /></symbol>'});s().add(c);const r=c},55766:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"view_list",use:"view_list-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="view_list"><path d="M10 17h6c1.1 0 2-.9 2-2h-8zm0-8h6c1.1 0 2-.9 2-2h-8zm8.48-7H5.52C3.58 2 2 3.58 2 5.52v12.97c0 1.94 1.58 3.52 3.52 3.52h12.97c1.94 0 3.52-1.58 3.52-3.52V5.52A3.54 3.54 0 0 0 18.48 2M6 20h-.48C4.68 20 4 19.32 4 18.48V5.52C4 4.68 4.68 4 5.52 4H6zm14-1.52c0 .84-.68 1.52-1.52 1.52H8V4h10.48c.84 0 1.52.68 1.52 1.52zM10 13h6c1.1 0 2-.9 2-2h-8z" /></symbol>'});s().add(c);const r=c},75444:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"single_node_view",use:"single_node_view-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view"><path d="m7.22 2.75-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58m2.53-.2V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05M4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05m-1.06 9.12-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06M12.75 1.9l-1.39-.57-.59 1.43c.49.14.95.33 1.39.57zm1.34 3.07 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06m-1.06 9.12 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06M5 8.5H3.5V10H5zm10.5-3h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5m0 5.5h-13V7h13zm-7.25 4.45V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05m2.53-.2.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57m-5.53.85 1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57z" /></symbol>'});s().add(c);const r=c},18672:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"single_node_view_press",use:"single_node_view_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view_press"><path d="M9.75 2.55V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05m-2.53.2-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58m5.53-.85-1.39-.57-.59 1.43c.49.14.95.33 1.39.57zM4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05m9.12 1.06 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06M5.25 16.1l1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57zm7.78-2.01 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06M15.5 5.5h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5M5 10H3.5V8.5H5zm-1.09 3.03-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06m6.87 2.22.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57m-2.53.2V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05" /></symbol>'});s().add(c);const r=c},74271:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"virtualization",use:"virtualization-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="virtualization"><path d="M11.69 3H6.31C5.59 3 5 3.59 5 4.31V5h-.69C3.59 5 3 5.59 3 6.31v5.38c0 .72.59 1.31 1.31 1.31h5.38c.72 0 1.31-.59 1.31-1.31V11h.69c.72 0 1.31-.59 1.31-1.31V4.31C13 3.59 12.41 3 11.69 3M10 11.69c0 .17-.14.31-.31.31H4.31c-.17 0-.31-.14-.31-.31V6.31c0-.17.14-.31.31-.31H5v3.69c0 .72.59 1.31 1.31 1.31H10zM10 10H6.31C6.14 10 6 9.86 6 9.69V6h3.69c.17 0 .31.14.31.31zm2-.31c0 .17-.14.31-.31.31H11V6.31C11 5.59 10.41 5 9.69 5H6v-.69c0-.17.14-.31.31-.31h5.38c.17 0 .31.14.31.31z" /></symbol>'});s().add(c);const r=c},43728:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"warning",use:"warning-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.064C22.129 6.509 17.62 2 12.065 2m1.006 15.097h-2.013v-2.013h2.013zm0-4.026h-2.013V7.032h2.013z" clip-rule="evenodd" /><mask id="warning_a" width="21" height="21" x="2" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.064C22.129 6.509 17.62 2 12.065 2m1.006 15.097h-2.013v-2.013h2.013zm0-4.026h-2.013V7.032h2.013z" clip-rule="evenodd" /></mask></symbol>'});s().add(c);const r=c},35655:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"warning_triangle",use:"warning_triangle-usage",viewBox:"0 0 12 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 10" id="warning_triangle"><path d="M11.027 7.94 6.84.493a.887.887 0 0 0-.153-.2C6.68.287 6.68.28 6.674.28A.932.932 0 0 0 6 0a.953.953 0 0 0-.673.273C5.32.28 5.32.287 5.314.287c-.054.06-.107.12-.154.2L.974 7.94a1.23 1.23 0 0 0-.154.593c.014.394.227.767.567.967.173.1.373.16.593.16h8.04a1.158 1.158 0 0 0 1.16-1.127c.007-.193-.04-.4-.153-.593M6 7.667A.669.669 0 0 1 5.334 7c0-.367.3-.667.666-.667.367 0 .667.3.667.667 0 .367-.3.667-.667.667m.667-3.334-.32 1.334a.365.365 0 0 1-.433.266.372.372 0 0 1-.267-.266l-.313-1.334a.688.688 0 0 1 .506-.826.688.688 0 0 1 .827.826" /></symbol>'});s().add(c);const r=c},62791:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"weights_compare",use:"weights_compare-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="weights_compare"><path d="M2.111 11.778v-.89H.778v.89zM13.222 10v-.889H11.89V10zM.778 9.111V10H2.11v-.889zm12.444 2.667v-.89H11.89v.89zm0-8.89V2H11.89v.889zm-3.529-.47-.942.942 1.974 1.973H3.277L5.25 3.36l-.943-.942L2.11 4.612v-.834H.778v.889h1.279L.724 6l1.333 1.333H.777v.89h1.334v-.835l2.196 2.194.942-.942-1.973-1.973h7.448L8.75 8.64l.943.942 2.196-2.195v.835h1.333v-.889h-1.279L13.277 6l-1.334-1.333h1.28v-.89h-1.334v.835zm3.53-1.307V.222h-1.334v.89zm-12.445 0H2.11V.222H.778zM2.11 2.89V2H.778v.889z" /></symbol>'});s().add(c);const r=c},73324:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"weights_drill_down",use:"weights_drill_down-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="weights_drill_down"><path d="M13.222 8.333V3.89H7.89v1.555H4.11v-.666h2V.333H.778v4.445h2v7.333h5.11v1.556h5.334V9.222H7.89v1.556H4.11v-4H7.89v1.555zm-4-3.11h2.667V7H9.222zm0 5.333h2.667v1.777H9.222zm-7.11-7.112V1.667h2.666v1.777z" /></symbol>'});s().add(c);const r=c},9932:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var o=n(12897),a=n.n(o),l=n(55042),s=n.n(l),c=new(a())({id:"x",use:"x-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="x"><path d="m13.4 12 5.3-5.3c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4.2.2.4.3.7.3.3 0 .5-.1.7-.3l5.3-5.3 5.3 5.3c.2.2.5.3.7.3.2 0 .5-.1.7-.3.4-.4.4-1 0-1.4z" /></symbol>'});s().add(c);const r=c},77518:(e,t,n)=>{"use strict";var o=n(66118),a=n(2642),l=n(58380),s=n(84929),c=n(16074),r=n(87991),i=n(87836),d=n(93001),u=n(2940);function h(e,t){return(0,i.A)(e,t*u.Cg)}function v(e,t){return(0,i.A)(e,t*u.s0)}var m=n(13999);function f(e,t){const n=7*t;return(0,m.f)(e,n)}var w=n(4883);function p(e,t){const n=3*t;return(0,w.P)(e,n)}function g(e,t){return(0,w.P)(e,12*t)}var y=n(77275),b=n(43924),x=n(10648),_=n(50502),M=n(17764),z=n(14123);function B(e,t,n){const o=(0,M.c)(e,t)/7;return(0,z.u)(n?.roundingMethod)(o)}var H=n(49858);function C(e,t,n){const o=(0,H.W)(e,t)/3;return(0,z.u)(n?.roundingMethod)(o)}var V=n(33607);function O(e){const t=(0,a.a)(e);return t.setMilliseconds(0),t}function k(e){const t=(0,a.a)(e);return t.setSeconds(0,0),t}function L(e){const t=(0,a.a)(e);return t.setMinutes(0,0,0),t}var S=n(51730),A=n(92528);function E(e){const t=(0,a.a)(e);return t.setDate(1),t.setHours(0,0,0,0),t}function P(e){const t=(0,a.a)(e),n=t.getMonth(),o=n-n%3;return t.setMonth(o,1),t.setHours(0,0,0,0),t}var j=n(39204);function T(e){const t=(0,a.a)(e);return t.setMilliseconds(999),t}function D(e){const t=(0,a.a)(e);return t.setSeconds(59,999),t}function I(e){const t=(0,a.a)(e);return t.setMinutes(59,59,999),t}var F=n(37519),R=n(82695);function N(e,t){const n=(0,R.q)(),o=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,l=(0,a.a)(e),s=l.getDay(),c=6+(s<o?-7:0)-(s-o);return l.setDate(l.getDate()+c),l.setHours(23,59,59,999),l}var W=n(71359);function q(e){const t=(0,a.a)(e),n=t.getMonth(),o=n-n%3+3;return t.setMonth(o,0),t.setHours(23,59,59,999),t}function U(e){const t=(0,a.a)(e),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(23,59,59,999),t}const Y={datetime:"MMM d, yyyy, h:mm:ss aaaa",millisecond:"h:mm:ss.SSS aaaa",second:"h:mm:ss aaaa",minute:"h:mm aaaa",hour:"ha",day:"MMM d",week:"PP",month:"MMM yyyy",quarter:"qqq - yyyy",year:"yyyy"};o.ij._date.override({_id:"date-fns",formats:function(){return Y},parse:function(e,t){if(null===e||"undefined"===typeof e)return null;const n=typeof e;return"number"===n||e instanceof Date?e=(0,a.a)(e):"string"===n&&(e="string"===typeof t?(0,l.qg)(e,t,new Date,this.options):(0,s.H)(e,this.options)),(0,c.f)(e)?e.getTime():null},format:function(e,t){return(0,r.GP)(e,t,this.options)},add:function(e,t,n){switch(n){case"millisecond":return(0,i.A)(e,t);case"second":return(0,d.p)(e,t);case"minute":return h(e,t);case"hour":return v(e,t);case"day":return(0,m.f)(e,t);case"week":return f(e,t);case"month":return(0,w.P)(e,t);case"quarter":return p(e,t);case"year":return g(e,t);default:return e}},diff:function(e,t,n){switch(n){case"millisecond":return(0,y.b)(e,t);case"second":return(0,b.O)(e,t);case"minute":return(0,x.o)(e,t);case"hour":return(0,_.M)(e,t);case"day":return(0,M.c)(e,t);case"week":return B(e,t);case"month":return(0,H.W)(e,t);case"quarter":return C(e,t);case"year":return(0,V.V)(e,t);default:return 0}},startOf:function(e,t,n){switch(t){case"second":return O(e);case"minute":return k(e);case"hour":return L(e);case"day":return(0,S.o)(e);case"week":return(0,A.k)(e);case"isoWeek":return(0,A.k)(e,{weekStartsOn:+n});case"month":return E(e);case"quarter":return P(e);case"year":return(0,j.D)(e);default:return e}},endOf:function(e,t){switch(t){case"second":return T(e);case"minute":return D(e);case"hour":return I(e);case"day":return(0,F.D)(e);case"week":return N(e);case"month":return(0,W.p)(e);case"quarter":return q(e);case"year":return U(e);default:return e}}})},84929:(e,t,n)=>{"use strict";n.d(t,{H:()=>a});var o=n(2940);function a(e,t){const n=t?.additionalDigits??2,a=function(e){const t={},n=e.split(l.dateTimeDelimiter);let o;if(n.length>2)return t;/:/.test(n[0])?o=n[0]:(t.date=n[0],o=n[1],l.timeZoneDelimiter.test(t.date)&&(t.date=e.split(l.timeZoneDelimiter)[0],o=e.substr(t.date.length,e.length)));if(o){const e=l.timezone.exec(o);e?(t.time=o.replace(e[1],""),t.timezone=e[1]):t.time=o}return t}(e);let v;if(a.date){const e=function(e,t){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),o=e.match(n);if(!o)return{year:NaN,restDateString:""};const a=o[1]?parseInt(o[1]):null,l=o[2]?parseInt(o[2]):null;return{year:null===l?a:100*l,restDateString:e.slice((o[1]||o[2]).length)}}(a.date,n);v=function(e,t){if(null===t)return new Date(NaN);const n=e.match(s);if(!n)return new Date(NaN);const o=!!n[4],a=i(n[1]),l=i(n[2])-1,c=i(n[3]),r=i(n[4]),d=i(n[5])-1;if(o)return function(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}(0,r,d)?function(e,t,n){const o=new Date(0);o.setUTCFullYear(e,0,4);const a=o.getUTCDay()||7,l=7*(t-1)+n+1-a;return o.setUTCDate(o.getUTCDate()+l),o}(t,r,d):new Date(NaN);{const e=new Date(0);return function(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(u[t]||(h(e)?29:28))}(t,l,c)&&function(e,t){return t>=1&&t<=(h(e)?366:365)}(t,a)?(e.setUTCFullYear(t,l,Math.max(a,c)),e):new Date(NaN)}}(e.restDateString,e.year)}if(!v||isNaN(v.getTime()))return new Date(NaN);const m=v.getTime();let f,w=0;if(a.time&&(w=function(e){const t=e.match(c);if(!t)return NaN;const n=d(t[1]),a=d(t[2]),l=d(t[3]);if(!function(e,t,n){if(24===e)return 0===t&&0===n;return n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}(n,a,l))return NaN;return n*o.s0+a*o.Cg+1e3*l}(a.time),isNaN(w)))return new Date(NaN);if(!a.timezone){const e=new Date(m+w),t=new Date(0);return t.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),t.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),t}return f=function(e){if("Z"===e)return 0;const t=e.match(r);if(!t)return 0;const n="+"===t[1]?-1:1,a=parseInt(t[2]),l=t[3]&&parseInt(t[3])||0;if(!function(e,t){return t>=0&&t<=59}(0,l))return NaN;return n*(a*o.s0+l*o.Cg)}(a.timezone),isNaN(f)?new Date(NaN):new Date(m+w+f)}const l={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},s=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,c=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,r=/^([+-])(\d{2})(?::?(\d{2}))?$/;function i(e){return e?parseInt(e):1}function d(e){return e&&parseFloat(e.replace(",","."))||0}const u=[31,null,31,30,31,30,31,31,30,31,30,31];function h(e){return e%400===0||e%4===0&&e%100!==0}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js.LICENSE.txt b/src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js.LICENSE.txt
new file mode 100644
index 000000000..7b9c89844
--- /dev/null
+++ b/src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js.LICENSE.txt
@@ -0,0 +1,34 @@
+/*!
+* chartjs-plugin-zoom v2.0.1
+* undefined
+ * (c) 2016-2023 chartjs-plugin-zoom Contributors
+ * Released under the MIT License
+ */
+
+/*! Hammer.JS - v2.0.7 - 2016-04-22
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2016 Jorik Tangelder;
+ * Licensed under the MIT license */
+
+/**
+ * react-virtual
+ *
+ * Copyright (c) TanStack
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * virtual-core
+ *
+ * Copyright (c) TanStack
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
diff --git a/src/web/gui/v2/5794.719f2daca8b8f3a118fe.chunk.js b/src/web/gui/v2/5794.719f2daca8b8f3a118fe.chunk.js
new file mode 100644
index 000000000..128ead265
--- /dev/null
+++ b/src/web/gui/v2/5794.719f2daca8b8f3a118fe.chunk.js
@@ -0,0 +1 @@
+!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="95d8b25c-d17e-4819-a3bd-7d8187ba5c01",t._sentryDebugIdIdentifier="sentry-dbid-95d8b25c-d17e-4819-a3bd-7d8187ba5c01")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[5794],{86027:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return d.default}}),e.default=void 0;var o=function(t,e){if(!e&&t&&t.__esModule)return t;if(null===t||"object"!==typeof t&&"function"!==typeof t)return{default:t};var n=p(e);if(n&&n.has(t))return n.get(t);var o={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if("default"!==a&&Object.prototype.hasOwnProperty.call(t,a)){var i=r?Object.getOwnPropertyDescriptor(t,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=t[a]}o.default=t,n&&n.set(t,o);return o}(n(96540)),r=f(n(5556)),a=f(n(40961)),i=f(n(20053)),s=n(71089),l=n(81726),u=n(77056),d=f(n(6888)),c=f(n(18696));function f(t){return t&&t.__esModule?t:{default:t}}function p(t){if("function"!==typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return(p=function(t){return t?n:e})(t)}function g(){return g=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},g.apply(this,arguments)}function h(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class m extends o.Component{static getDerivedStateFromProps(t,e){let{position:n}=t,{prevPropsPosition:o}=e;return!n||o&&n.x===o.x&&n.y===o.y?null:((0,c.default)("Draggable: getDerivedStateFromProps %j",{position:n,prevPropsPosition:o}),{x:n.x,y:n.y,prevPropsPosition:{...n}})}constructor(t){super(t),h(this,"onDragStart",((t,e)=>{(0,c.default)("Draggable: onDragStart: %j",e);if(!1===this.props.onStart(t,(0,l.createDraggableData)(this,e)))return!1;this.setState({dragging:!0,dragged:!0})})),h(this,"onDrag",((t,e)=>{if(!this.state.dragging)return!1;(0,c.default)("Draggable: onDrag: %j",e);const n=(0,l.createDraggableData)(this,e),o={x:n.x,y:n.y,slackX:0,slackY:0};if(this.props.bounds){const{x:t,y:e}=o;o.x+=this.state.slackX,o.y+=this.state.slackY;const[r,a]=(0,l.getBoundPosition)(this,o.x,o.y);o.x=r,o.y=a,o.slackX=this.state.slackX+(t-o.x),o.slackY=this.state.slackY+(e-o.y),n.x=o.x,n.y=o.y,n.deltaX=o.x-this.state.x,n.deltaY=o.y-this.state.y}if(!1===this.props.onDrag(t,n))return!1;this.setState(o)})),h(this,"onDragStop",((t,e)=>{if(!this.state.dragging)return!1;if(!1===this.props.onStop(t,(0,l.createDraggableData)(this,e)))return!1;(0,c.default)("Draggable: onDragStop: %j",e);const n={dragging:!1,slackX:0,slackY:0};if(Boolean(this.props.position)){const{x:t,y:e}=this.props.position;n.x=t,n.y=e}this.setState(n)})),this.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,prevPropsPosition:{...t.position},slackX:0,slackY:0,isElementSVG:!1},!t.position||t.onDrag||t.onStop||console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){"undefined"!==typeof window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.setState({dragging:!1})}findDOMNode(){var t,e;return null!==(t=null===(e=this.props)||void 0===e||null===(e=e.nodeRef)||void 0===e?void 0:e.current)&&void 0!==t?t:a.default.findDOMNode(this)}render(){const{axis:t,bounds:e,children:n,defaultPosition:r,defaultClassName:a,defaultClassNameDragging:u,defaultClassNameDragged:c,position:f,positionOffset:p,scale:h,...m}=this.props;let y={},b=null;const v=!Boolean(f)||this.state.dragging,D=f||r,S={x:(0,l.canDragX)(this)&&v?this.state.x:D.x,y:(0,l.canDragY)(this)&&v?this.state.y:D.y};this.state.isElementSVG?b=(0,s.createSVGTransform)(S,p):y=(0,s.createCSSTransform)(S,p);const w=(0,i.default)(n.props.className||"",a,{[u]:this.state.dragging,[c]:this.state.dragged});return o.createElement(d.default,g({},m,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),o.cloneElement(o.Children.only(n),{className:w,style:{...n.props.style,...y},transform:b}))}}e.default=m,h(m,"displayName","Draggable"),h(m,"propTypes",{...d.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),h(m,"defaultProps",{...d.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})},6888:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=function(t,e){if(!e&&t&&t.__esModule)return t;if(null===t||"object"!==typeof t&&"function"!==typeof t)return{default:t};var n=c(e);if(n&&n.has(t))return n.get(t);var o={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if("default"!==a&&Object.prototype.hasOwnProperty.call(t,a)){var i=r?Object.getOwnPropertyDescriptor(t,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=t[a]}o.default=t,n&&n.set(t,o);return o}(n(96540)),r=d(n(5556)),a=d(n(40961)),i=n(71089),s=n(81726),l=n(77056),u=d(n(18696));function d(t){return t&&t.__esModule?t:{default:t}}function c(t){if("function"!==typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return(c=function(t){return t?n:e})(t)}function f(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e||"default");if("object"!==typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const p={start:"touchstart",move:"touchmove",stop:"touchend"},g={start:"mousedown",move:"mousemove",stop:"mouseup"};let h=g;class m extends o.Component{constructor(){super(...arguments),f(this,"dragging",!1),f(this,"lastX",NaN),f(this,"lastY",NaN),f(this,"touchIdentifier",null),f(this,"mounted",!1),f(this,"handleDragStart",(t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&"number"===typeof t.button&&0!==t.button)return!1;const e=this.findDOMNode();if(!e||!e.ownerDocument||!e.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:n}=e;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!(0,i.matchesSelectorAndParentsTo)(t.target,this.props.handle,e)||this.props.cancel&&(0,i.matchesSelectorAndParentsTo)(t.target,this.props.cancel,e))return;"touchstart"===t.type&&t.preventDefault();const o=(0,i.getTouchIdentifier)(t);this.touchIdentifier=o;const r=(0,s.getControlPosition)(t,o,this);if(null==r)return;const{x:a,y:l}=r,d=(0,s.createCoreData)(this,a,l);(0,u.default)("DraggableCore: handleDragStart: %j",d),(0,u.default)("calling",this.props.onStart);!1!==this.props.onStart(t,d)&&!1!==this.mounted&&(this.props.enableUserSelectHack&&(0,i.addUserSelectStyles)(n),this.dragging=!0,this.lastX=a,this.lastY=l,(0,i.addEvent)(n,h.move,this.handleDrag),(0,i.addEvent)(n,h.stop,this.handleDragStop))})),f(this,"handleDrag",(t=>{const e=(0,s.getControlPosition)(t,this.touchIdentifier,this);if(null==e)return;let{x:n,y:o}=e;if(Array.isArray(this.props.grid)){let t=n-this.lastX,e=o-this.lastY;if([t,e]=(0,s.snapToGrid)(this.props.grid,t,e),!t&&!e)return;n=this.lastX+t,o=this.lastY+e}const r=(0,s.createCoreData)(this,n,o);(0,u.default)("DraggableCore: handleDrag: %j",r);if(!1!==this.props.onDrag(t,r)&&!1!==this.mounted)this.lastX=n,this.lastY=o;else try{this.handleDragStop(new MouseEvent("mouseup"))}catch(a){const t=document.createEvent("MouseEvents");t.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(t)}})),f(this,"handleDragStop",(t=>{if(!this.dragging)return;const e=(0,s.getControlPosition)(t,this.touchIdentifier,this);if(null==e)return;let{x:n,y:o}=e;if(Array.isArray(this.props.grid)){let t=n-this.lastX||0,e=o-this.lastY||0;[t,e]=(0,s.snapToGrid)(this.props.grid,t,e),n=this.lastX+t,o=this.lastY+e}const r=(0,s.createCoreData)(this,n,o);if(!1===this.props.onStop(t,r)||!1===this.mounted)return!1;const a=this.findDOMNode();a&&this.props.enableUserSelectHack&&(0,i.removeUserSelectStyles)(a.ownerDocument),(0,u.default)("DraggableCore: handleDragStop: %j",r),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,a&&((0,u.default)("DraggableCore: Removing handlers"),(0,i.removeEvent)(a.ownerDocument,h.move,this.handleDrag),(0,i.removeEvent)(a.ownerDocument,h.stop,this.handleDragStop))})),f(this,"onMouseDown",(t=>(h=g,this.handleDragStart(t)))),f(this,"onMouseUp",(t=>(h=g,this.handleDragStop(t)))),f(this,"onTouchStart",(t=>(h=p,this.handleDragStart(t)))),f(this,"onTouchEnd",(t=>(h=p,this.handleDragStop(t))))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,i.addEvent)(t,p.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:e}=t;(0,i.removeEvent)(e,g.move,this.handleDrag),(0,i.removeEvent)(e,p.move,this.handleDrag),(0,i.removeEvent)(e,g.stop,this.handleDragStop),(0,i.removeEvent)(e,p.stop,this.handleDragStop),(0,i.removeEvent)(t,p.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,i.removeUserSelectStyles)(e)}}findDOMNode(){var t,e;return null!==(t=this.props)&&void 0!==t&&t.nodeRef?null===(e=this.props)||void 0===e||null===(e=e.nodeRef)||void 0===e?void 0:e.current:a.default.findDOMNode(this)}render(){return o.cloneElement(o.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}e.default=m,f(m,"displayName","DraggableCore"),f(m,"propTypes",{allowAnyClick:r.default.bool,children:r.default.node.isRequired,disabled:r.default.bool,enableUserSelectHack:r.default.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:r.default.arrayOf(r.default.number),handle:r.default.string,cancel:r.default.string,nodeRef:r.default.object,onStart:r.default.func,onDrag:r.default.func,onStop:r.default.func,onMouseDown:r.default.func,scale:r.default.number,className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),f(m,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},55794:(t,e,n)=>{const{default:o,DraggableCore:r}=n(86027);t.exports=o,t.exports.default=o,t.exports.DraggableCore=r},71089:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.addClassName=u,e.addEvent=function(t,e,n,o){if(!t)return;const r={capture:!0,...o};t.addEventListener?t.addEventListener(e,n,r):t.attachEvent?t.attachEvent("on"+e,n):t["on"+e]=n},e.addUserSelectStyles=function(t){if(!t)return;let e=t.getElementById("react-draggable-style-el");e||(e=t.createElement("style"),e.type="text/css",e.id="react-draggable-style-el",e.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",e.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",t.getElementsByTagName("head")[0].appendChild(e));t.body&&u(t.body,"react-draggable-transparent-selection")},e.createCSSTransform=function(t,e){const n=l(t,e,"px");return{[(0,r.browserPrefixToKey)("transform",r.default)]:n}},e.createSVGTransform=function(t,e){return l(t,e,"")},e.getTouch=function(t,e){return t.targetTouches&&(0,o.findInArray)(t.targetTouches,(t=>e===t.identifier))||t.changedTouches&&(0,o.findInArray)(t.changedTouches,(t=>e===t.identifier))},e.getTouchIdentifier=function(t){if(t.targetTouches&&t.targetTouches[0])return t.targetTouches[0].identifier;if(t.changedTouches&&t.changedTouches[0])return t.changedTouches[0].identifier},e.getTranslation=l,e.innerHeight=function(t){let e=t.clientHeight;const n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=(0,o.int)(n.paddingTop),e-=(0,o.int)(n.paddingBottom),e},e.innerWidth=function(t){let e=t.clientWidth;const n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=(0,o.int)(n.paddingLeft),e-=(0,o.int)(n.paddingRight),e},e.matchesSelector=s,e.matchesSelectorAndParentsTo=function(t,e,n){let o=t;do{if(s(o,e))return!0;if(o===n)return!1;o=o.parentNode}while(o);return!1},e.offsetXYFromParent=function(t,e,n){const o=e===e.ownerDocument.body?{left:0,top:0}:e.getBoundingClientRect(),r=(t.clientX+e.scrollLeft-o.left)/n,a=(t.clientY+e.scrollTop-o.top)/n;return{x:r,y:a}},e.outerHeight=function(t){let e=t.clientHeight;const n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=(0,o.int)(n.borderTopWidth),e+=(0,o.int)(n.borderBottomWidth),e},e.outerWidth=function(t){let e=t.clientWidth;const n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=(0,o.int)(n.borderLeftWidth),e+=(0,o.int)(n.borderRightWidth),e},e.removeClassName=d,e.removeEvent=function(t,e,n,o){if(!t)return;const r={capture:!0,...o};t.removeEventListener?t.removeEventListener(e,n,r):t.detachEvent?t.detachEvent("on"+e,n):t["on"+e]=null},e.removeUserSelectStyles=function(t){if(!t)return;try{if(t.body&&d(t.body,"react-draggable-transparent-selection"),t.selection)t.selection.empty();else{const e=(t.defaultView||window).getSelection();e&&"Caret"!==e.type&&e.removeAllRanges()}}catch(e){}};var o=n(77056),r=function(t,e){if(!e&&t&&t.__esModule)return t;if(null===t||"object"!==typeof t&&"function"!==typeof t)return{default:t};var n=a(e);if(n&&n.has(t))return n.get(t);var o={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if("default"!==i&&Object.prototype.hasOwnProperty.call(t,i)){var s=r?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(o,i,s):o[i]=t[i]}o.default=t,n&&n.set(t,o);return o}(n(33514));function a(t){if("function"!==typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return(a=function(t){return t?n:e})(t)}let i="";function s(t,e){return i||(i=(0,o.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],(function(e){return(0,o.isFunction)(t[e])}))),!!(0,o.isFunction)(t[i])&&t[i](e)}function l(t,e,n){let{x:o,y:r}=t,a="translate(".concat(o).concat(n,",").concat(r).concat(n,")");if(e){const t="".concat("string"===typeof e.x?e.x:e.x+n),o="".concat("string"===typeof e.y?e.y:e.y+n);a="translate(".concat(t,", ").concat(o,")")+a}return a}function u(t,e){t.classList?t.classList.add(e):t.className.match(new RegExp("(?:^|\\s)".concat(e,"(?!\\S)")))||(t.className+=" ".concat(e))}function d(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp("(?:^|\\s)".concat(e,"(?!\\S)"),"g"),"")}},33514:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.browserPrefixToKey=r,e.browserPrefixToStyle=function(t,e){return e?"-".concat(e.toLowerCase(),"-").concat(t):t},e.default=void 0,e.getPrefix=o;const n=["Moz","Webkit","O","ms"];function o(){var t;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"===typeof window)return"";const o=null===(t=window.document)||void 0===t||null===(t=t.documentElement)||void 0===t?void 0:t.style;if(!o)return"";if(e in o)return"";for(let a=0;a<n.length;a++)if(r(e,n[a])in o)return n[a];return""}function r(t,e){return e?"".concat(e).concat(function(t){let e="",n=!0;for(let o=0;o<t.length;o++)n?(e+=t[o].toUpperCase(),n=!1):"-"===t[o]?n=!0:e+=t[o];return e}(t)):t}e.default=o()},18696:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){0}},81726:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.canDragX=function(t){return"both"===t.props.axis||"x"===t.props.axis},e.canDragY=function(t){return"both"===t.props.axis||"y"===t.props.axis},e.createCoreData=function(t,e,n){const r=!(0,o.isNum)(t.lastX),i=a(t);return r?{node:i,deltaX:0,deltaY:0,lastX:e,lastY:n,x:e,y:n}:{node:i,deltaX:e-t.lastX,deltaY:n-t.lastY,lastX:t.lastX,lastY:t.lastY,x:e,y:n}},e.createDraggableData=function(t,e){const n=t.props.scale;return{node:e.node,x:t.state.x+e.deltaX/n,y:t.state.y+e.deltaY/n,deltaX:e.deltaX/n,deltaY:e.deltaY/n,lastX:t.state.x,lastY:t.state.y}},e.getBoundPosition=function(t,e,n){if(!t.props.bounds)return[e,n];let{bounds:i}=t.props;i="string"===typeof i?i:function(t){return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}(i);const s=a(t);if("string"===typeof i){const{ownerDocument:t}=s,e=t.defaultView;let n;if(n="parent"===i?s.parentNode:t.querySelector(i),!(n instanceof e.HTMLElement))throw new Error('Bounds selector "'+i+'" could not find an element.');const a=n,l=e.getComputedStyle(s),u=e.getComputedStyle(a);i={left:-s.offsetLeft+(0,o.int)(u.paddingLeft)+(0,o.int)(l.marginLeft),top:-s.offsetTop+(0,o.int)(u.paddingTop)+(0,o.int)(l.marginTop),right:(0,r.innerWidth)(a)-(0,r.outerWidth)(s)-s.offsetLeft+(0,o.int)(u.paddingRight)-(0,o.int)(l.marginRight),bottom:(0,r.innerHeight)(a)-(0,r.outerHeight)(s)-s.offsetTop+(0,o.int)(u.paddingBottom)-(0,o.int)(l.marginBottom)}}(0,o.isNum)(i.right)&&(e=Math.min(e,i.right));(0,o.isNum)(i.bottom)&&(n=Math.min(n,i.bottom));(0,o.isNum)(i.left)&&(e=Math.max(e,i.left));(0,o.isNum)(i.top)&&(n=Math.max(n,i.top));return[e,n]},e.getControlPosition=function(t,e,n){const o="number"===typeof e?(0,r.getTouch)(t,e):null;if("number"===typeof e&&!o)return null;const i=a(n),s=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,r.offsetXYFromParent)(o||t,s,n.props.scale)},e.snapToGrid=function(t,e,n){const o=Math.round(e/t[0])*t[0],r=Math.round(n/t[1])*t[1];return[o,r]};var o=n(77056),r=n(71089);function a(t){const e=t.findDOMNode();if(!e)throw new Error("<DraggableCore>: Unmounted during event!");return e}},77056:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.dontSetMe=function(t,e,n){if(t[e])return new Error("Invalid prop ".concat(e," passed to ").concat(n," - do not set this, set it on the child."))},e.findInArray=function(t,e){for(let n=0,o=t.length;n<o;n++)if(e.apply(e,[t[n],n,t]))return t[n]},e.int=function(t){return parseInt(t,10)},e.isFunction=function(t){return"function"===typeof t||"[object Function]"===Object.prototype.toString.call(t)},e.isNum=function(t){return"number"===typeof t&&!isNaN(t)}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/6008.07f03fb5dba476a12f91.chunk.js b/src/web/gui/v2/6008.07f03fb5dba476a12f91.chunk.js
new file mode 100644
index 000000000..450b41533
--- /dev/null
+++ b/src/web/gui/v2/6008.07f03fb5dba476a12f91.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d1ab54dd-a2c8-4f14-8eb0-b0c7645441d5",e._sentryDebugIdIdentifier="sentry-dbid-d1ab54dd-a2c8-4f14-8eb0-b0c7645441d5")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6008],{86008:(e,t,r)=>{r.d(t,{A:()=>de});var n=r(58168),o=r(96540),a=(r(62953),r(8711)),i=r(10058),d=r(86652),s=r(38257),l=r(45463),c=r(62302),u=(r(17333),r(3064),r(41393),r(14905),r(98992),r(54520),r(72577),r(81454),r(8872),r(45467)),g=r(65570),m=r(40961),h=r(43375),p=r(43627),f=r(34604),b=r(44554),I=r(42629),v=r(74979),y=r(13692);const x=e=>(0,p.uU)({...e,wasDragging:!0}),E=e=>{var t;let{id:r,items:a,containerWidth:i,rowHeight:d,gutter:s,Component:l,isSortingContainer:c,onRemove:u,onItemRemove:g,Item:m,gridTracks:h,transforming:f,containerDndProps:I,itemProps:E,dragOverlay:C,rootId:w,...k}=e;const{active:A,attributes:D,isDragging:S,listeners:P,over:R,setNodeRef:_,transition:T,transform:O}=(0,p.gl)({id:C?"dragOverlay-".concat(r):r,disabled:C,data:{rootId:w,isContainer:!0,items:a,containerId:r,dropArea:!0,...I},animateLayoutChanges:x}),B=!!R&&(r===R.id&&"container"!==(null===A||void 0===A||null===(t=A.data.current)||void 0===t?void 0:t.type)||a.includes(R.id)),H=(0,b.Hp)(a),N=H*d+(H-1)*s+"px";return o.createElement(l,(0,n.A)({ref:_,style:C?{width:i,height:N}:{transition:T,transform:v.Ks.Translate.toString(O),opacity:S?.5:void 0,width:i,height:N},hover:B,onRemove:u,attributes:D,listeners:P},k,{itemProps:E,id:r,dragOverlay:C}),a.map(((e,t)=>o.createElement(y.A,(0,n.A)({disabled:c,key:e.id},e,{index:t,containerId:r,Item:m,onRemove:g,draggable:!0,containerWidth:i,rowHeight:d,gridTracks:h,gutter:s,transformed:f?a[t]:null,itemProps:E,containerDragOverlay:C,rootId:w,containerDndProps:I,draggableProps:e})))))},C=e=>{let{containers:t,Container:r,containerWidth:n,isSortingContainer:a,items:i,Item:d,transforming:s,onContainerRemove:l,onRemove:c,rowHeight:u,gridTracks:g,gutter:m,containerDndProps:h,itemProps:p,rootId:f}=e;return t.map((e=>o.createElement(E,{key:e,id:e,items:i[e],onRemove:()=>l(e),containerWidth:n,rowHeight:u,gridTracks:g,gutter:m,Component:r,Item:d,isSortingContainer:a,transforming:s,onItemRemove:c,containerDndProps:h,itemProps:p,rootId:f})))},w={sideEffects(e){let{active:t}=e;t.node.animate([{opacity:0},{opacity:1}],{easing:"ease-in",duration:250})}},k="TRASH_ID",A="PLACEHOLDER_ID",D=e=>{let{id:t}=e;const{setNodeRef:r,isOver:n}=(0,h.zM)({id:t,data:{dropArea:!0,isTrash:!0}});return o.createElement("div",{ref:r,style:{display:"flex",alignItems:"center",justifyContent:"center",position:"fixed",left:"50%",marginLeft:-150,bottom:20,width:300,height:60,borderRadius:5,border:"1px solid",borderColor:n?"red":"#DDD"}},"Drop here to delete")},S=e=>{let{rootId:t,items:r,containers:a,trashable:i=!0,onRemove:d,Item:s,containerWidth:l=800,rowHeight:c=40,gridTracks:v=12,gutter:x=4,allowOverlap:S=!1,compactType:P="vertical",maxRows:R=3e5,Container:_=f.A,onDragEnd:T,containerDndProps:O,itemProps:B,updateOnNewProps:H=!1,rearrangeable:N=!0}=e;const{active:F}=(0,h.fF)(),L=(0,o.useRef)(null),[W,M]=(0,o.useState)((()=>(a||Object.keys(r)).reduce(((e,t)=>(e[t]=(0,b.oE)((0,b.Su)(r[t]),P,v),e)),{})),{}),[j,z]=(0,o.useState)((()=>a||Object.keys(W)));(0,u.A)((()=>{M((a||Object.keys(r)).reduce(((e,t)=>(e[t]=(0,b.oE)((0,b.Su)(r[t]),P,v),e)),{}))}),[v]),(0,u.A)((()=>{H&&((0,g.Ay)(r,W)||(M((a||Object.keys(r)).reduce(((e,t)=>(e[t]=(0,b.oE)((0,b.Su)(r[t]),P,v),e)),{})),z(a)))}),[a,r]);const G=null===F||void 0===F?void 0:F.isContainer,[U,q]=(0,o.useState)(null),[J,Z]=(0,o.useState)(null),$=(0,o.useRef)(null),K=e=>e in W?e:null,Q=()=>{U&&M(U),q(null),Z(null),$.current=null},Y=()=>{const e=Object.keys(W),t=e[e.length-1];return String.fromCharCode(t.charCodeAt(0)+1)},V=e=>{let{active:t}=e;const{isContainer:r}=t.data.current;q(W),r||Z(W)};return(0,o.useLayoutEffect)((()=>{if(F)return V({active:F}),Q}),[]),(0,h.E5)({onDragStart:V,onDragMove:e=>{let{active:t,over:r,collisions:n}=e;const{isResizer:o,isContainer:a,itemId:i,itemContainerId:d}=t.data.current;if(a||!J)return;const{initial:s,translated:u}=t.rect.current;let g=(0,b.Su)(J[d]);const m=!J[d],h=(0,b.GN)(m?J:g,i,m)||(0,b.lc)(t.data.current);if(!h||!h.width)return;const p=null===r||void 0===r?void 0:r.id;if(o){if(!p)return;const e=r.rect.width+(u.right-s.right),t=r.rect.height+(u.bottom-s.bottom);let{width:o,height:a}=(0,I.tr)({gutter:x,maxRows:R,gridTracks:v,rowHeight:c,containerWidth:l},e,t,h);if(h.width===o&&h.height===a)return;if(!n)return;return g=g.map((e=>e.id===h.id?{...h,width:o,height:a}:e)),n=n.filter((e=>e.id!==h.id)),g=(0,b.oE)(g,P,v),$.current={...h,itemContainerId:d},void Z((e=>({...e,[d]:[...g]})))}if(p===k)return void Z(U);if(!N)return;const f=K(d),y=K(p)||r&&K(r.data.current.itemContainerId)||f;if(!y)return;if(y&&y===f||(g=[...J[y],h]),!n)return;const E=n.find((e=>e.id===y));if(!E)return;let{left:C,top:w}=(0,I.zA)({gutter:x,maxRows:R,gridTracks:v,rowHeight:c,containerWidth:l},u.top-E.data.droppableContainer.rect.current.top,u.left-E.data.droppableContainer.rect.current.left,h);if(h.top===w&&h.left===C&&f===y)return;g=(0,b.Pe)(g,h,C,w,!0,!1,P,v,S),g=(0,b.oE)(g,P,v);const A=y!==f;A&&(L.current=t.itemContainerId),$.current={...h,itemContainerId:y},Z((e=>({...e,[y]:g.filter((e=>!!e)),...A&&!!e[d]&&{[d]:(0,b.oE)(e[d].filter((e=>e.id!==h.id)),P,v)}})))},onDragEnd:e=>{let{active:t,over:r}=e;if(!J)return;const{isResizer:n,isItem:o}=t.data.current,a=null===r||void 0===r?void 0:r.id;if(null===a)return void Z(null);if(a===k)return M((e=>({...e,[t.containerId]:(0,b.oE)(e[t.containerId].filter((e=>{let{id:r}=e;return r!==t.itemId})),P,v)}))),void Z(null);if(o||n)return J&&M(J),Z(null),void T(J,$.current,j);t.id in W&&null!==r&&void 0!==r&&r.id&&z((e=>{const n=e.indexOf(t.id),o=e.indexOf(r.id),a=(0,p.be)(e,n,o);return T(J,$.current,a),a}));const i=K(t.id);if(i)if(a!==A)J&&M(J),Z(null),T(J,$.current,j);else{const e=Y();(0,m.unstable_batchedUpdates)((()=>{z((t=>[...t,e])),M((r=>({...r,[i]:r[i].filter((e=>e!==t.itemId)),[e]:[t.id]})))}))}},onDragCancel:Q}),J||W?o.createElement(o.Fragment,null,o.createElement(p.gB,{items:[...j,A],strategy:p._G},o.createElement(C,{rootId:t,containers:j,Container:_,containerWidth:l,isSortingContainer:G,items:J||W,transforming:null!==J,Item:s,onContainerRemove:e=>{z((t=>t.filter((t=>t!==e))))},onRemove:d,rowHeight:c,gridTracks:v,gutter:x,itemProps:B,containerDndProps:O})),(0,m.createPortal)(o.createElement(h.Hd,{adjustScale:!1,dropAnimation:w},F&&F.data.current.rootId===t?F.data.current.isContainer?(X=F.data.current,o.createElement(E,{rootId:t,id:X,items:J||W,containerWidth:l,rowHeight:c,gutter:x,Component:_,Item:s,gridTracks:v,containerDndProps:O,itemProps:B,dragOverlay:!0})):F.data.current.isItem?(e=>{const r=(J||W)[e.itemContainerId];if(!r)return null;const a=r.find((t=>t.id===e.itemId));return a?o.createElement(y.A,(0,n.A)({rootId:t},a,{containerId:e.itemContainerId,Item:s,onRemove:d,draggable:!0,containerWidth:l,rowHeight:c,gridTracks:v,gutter:x,dragOverlay:!0,itemProps:B})):null})(F.data.current):null:null),document.body),i&&F&&(F.isContainer||F.isItem)?o.createElement(D,{id:k}):null):null;var X},P=a.default.div.withConfig({displayName:"gridLayout__Div",componentId:"sc-jna1fu-0"})(["position:relative;"]),R=(0,o.forwardRef)(((e,t)=>{let{id:r,onRemove:a,children:s,attributes:l,listeners:c,itemProps:u={},itemProps:{dashboardId:g},style:m,dragOverlay:h,...p}=e;(0,d.QZ)(g,r);return o.createElement(i.Flex,(0,n.A)({},p,{ref:t,column:!0,flex:!0,round:!0,background:"mainBackground",padding:[3],gap:2}),o.createElement(P,{style:m},s))})),_=e=>{let{id:t,Component:r,containerWidth:a,onActiveSubMenuId:u,onActiveMenuGroupId:g,...m}=e;const[h,p]=(0,d.B1)(t),[f,b]=(0,d.Ix)(t),I=(0,l.A)("(max-width: 767px)"),v=(0,s.A)(),y=(0,o.useRef)(),x=(0,o.useMemo)((()=>(y.current&&y.current.cancel(),y.current=(0,c.A)(),()=>{})),[h,u,g]);return o.createElement(i.Flex,{ref:v,column:!0,overflow:{vertical:"auto"},flex:"1","data-testid":"dashboardGrid",height:"100%",onScroll:x},o.createElement(S,(0,n.A)({rootId:t,key:t,Container:R,onDragEnd:(e,t,r)=>{p(e),b(r)},containers:f,items:h,containerWidth:a-(I?16:26)},m,{Item:r,gridTracks:12,itemProps:{dashboardId:t},containerDndProps:{droppable:!0},updateOnNewProps:!0})))};var T=r(27078),O=r(58388),B=r(28973),H=r(80925);const N=(0,a.default)(i.Flex).attrs((e=>({height:"100%",background:"mainChartBg",round:!0,...e}))).withConfig({displayName:"container__Card",componentId:"sc-esi601-0"})(["",""],(e=>{let{dragging:t,theme:r}=e;return t&&"\n &:before {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: ".concat((0,i.getRgbColor)("primary",.2)({theme:r}),";\n z-index: 10;\n backdrop-filter: blur(3px);\n }\n\n ")}));var F=r(36196);const L={},W=(0,o.memo)((e=>{let{dashboardId:t,id:r,handleProps:a,listeners:i,attributes:d,style:s,dragging:l,dragOverlay:c,...g}=e;const m=(0,H.e)(),{nodesScope:h,...p}=(0,O.bE)(t,r)||L,f=(0,O.v_)(t,r),b=(0,o.useMemo)((()=>{const e=(0,T.My)(m,t);let n=e.getNode({id:c?"dragOverlay-".concat(r):r});return n||(n=m.makeChart({attributes:{id:c?"dragOverlay-".concat(r):r,cardId:r,dashboardId:t,...p,...!!p.nodeId&&!h&&{nodesScope:[p.nodeId]},toolboxProps:{drag:{...a,...i,...d}}},makeTrack:T.qh}),e.appendChild(n),n)}),[t,r]);return(0,u.A)((()=>{b.updateAttributes({height:s.height,width:s.width}),b.trigger("resize")}),[b,s.height,s.width]),(0,u.A)((()=>{b.updateAttributes({toolboxProps:{drag:{...a,...i,...d,dragging:l}}})}),[l]),(0,o.useLayoutEffect)((()=>(0,B.unregister)(b.onAttributesChange(["aggregationMethod","groupBy","groupByLabel","postAggregationMethod","postGroupBy","postGroupByLabel","groupingMethod","groupingTime","chartType","chartLibrary","selectedDimensions","selectedLabels","selectedNodes","selectedInstances","sparkline","selectedLegendDimensions","showingInfo","dimensionsSortBy","instancesSortBy","nodesSortBy","groupBySortBy","labelsSortBy","dimensionsSort","nodesExpanded","groupByExpanded","labelsExpanded","expanded","staticZones","title","description","showPostAggregations"],((e,t,r)=>f((t=>({...t,[r]:e}))))))),[b,f]),(0,u.A)((()=>{b.updateAttributes(p)}),[p]),o.createElement(N,(0,n.A)({"data-testid":"chartCard-".concat((p.contextScope||[]).join(",")),height:s.height,width:"100%"},g,{dragging:l}),o.createElement(F.A,{chart:b,"data-chartid":c?"dragOverlay-".concat(r):r,"data-track":b.track("container"),height:s.height,width:"100%"}))})),M=W;var j=r(46741),z=r(58384),G=r(67544);const U="text",q="customDashboard",J=e=>{let{dashboardId:t,id:r,onClick:n}=e;const a=(0,O.bE)(t,r,"editing"),i=(0,O.v_)(t,r,"editing");return o.createElement(z.t,{icon:"pencilSolid",onClick:()=>{n(),i(!0)},"data-ga":"".concat(U,"-reset::").concat(q),"data-testid":"textCard-edit",disabled:a},"Edit")},Z=e=>{let{dashboardId:t,id:r}=e;const n=(0,G.c6)(t,r);return o.createElement(z.t,{icon:"trashcan",onClick:n,"data-ga":"".concat(U,"-reset::").concat(q),"data-testid":"textCard-remove"},"Remove")},$=e=>{let{dashboardId:t,id:r,children:a,...i}=e;return o.createElement(o.Fragment,null,o.createElement(z.A,(0,n.A)({category:U,context:q,testId:"chartTextDropdown"},i),(e=>{let{close:n}=e;return o.createElement(o.Fragment,null,o.createElement(J,{dashboardId:t,id:r,onClick:n}),o.createElement(Z,{dashboardId:t,id:r}))})),a)};r(25440);const K=(0,a.default)(i.Flex).attrs({as:"form",column:!0,flex:!0,gap:2,height:"100%",padding:[0,0,2],onMouseDown:e=>e.stopPropagation()}).withConfig({displayName:"form__CardContent",componentId:"sc-3tcqxu-0"})(["cursor:auto;"]),Q=(0,a.default)(i.Box).attrs((e=>({as:"textarea",background:"inputBg",height:"100%",round:!0,border:!0,padding:[2],...e}))).withConfig({displayName:"form__Textarea",componentId:"sc-3tcqxu-1"})(["resize:none;font-size:12px;color:",";"],(0,i.getColor)("text")),Y=(0,o.memo)((e=>{let{dashboardId:t,id:r}=e;const n=(0,O.bE)(t,r,"text"),a=(0,O.v_)(t,r,"editing"),d=(0,O.v_)(t,r,"text"),[s,l]=(0,o.useState)(n);return o.createElement(K,{"data-testid":"textCardForm"},o.createElement(Q,{placeholder:"Add some text",value:s.replace(/<\/?[^>]+(>|$)/g,""),onChange:e=>l(e.target.value)}),o.createElement(i.Flex,{position:"absolute",right:"24px",bottom:0,gap:1},o.createElement(i.IconButton,{icon:"check",small:!0,padding:[0],onClick:()=>{d(s),a(!1)},"data-testid":"textCardForm-cancel",neutral:!1,flavour:"default"}),o.createElement(i.IconButton,{icon:"x",small:!0,padding:[0],onClick:()=>a(!1),"data-testid":"textCardForm-done",flavour:"default"})))})),V={h1:i.H2,h2:i.H4,text:i.Text,micro:i.TextNano},X=e=>{let{dashboardId:t,id:r}=e;const n=(0,O.bE)(t,r,"text")||"",a=(0,O.bE)(t,r,"textType"),d=V[a]||V.text;return o.createElement(i.Box,{"data-testid":"textCardContent"},o.createElement(d,{whiteSpace:"pre-wrap"},n.replace(/<\/?[^>]+(>|$)/g,"")))},ee=(0,a.default)(i.Flex).attrs({column:!0}).withConfig({displayName:"text__StyledOptions",componentId:"sc-1f67m9f-0"})([""]),te=e=>{let{dragging:t,...r}=e;const a=(0,j.JT)("dashboard:Update");return o.createElement(i.IconButton,(0,n.A)({position:"absolute",top:0,right:0,padding:[0],width:"12px",height:"12px",icon:"rearrange",title:"Drag & drop","data-testid":"text-drag",disabled:!a,cursor:t?"grabbing":"grab"},r))},re=["h1","h2","text","micro"],ne=e=>{let{id:t,dashboardId:r}=e;const n=(0,j.JT)("dashboard:Update"),a=(0,O.bE)(r,t,"textType")||"text",d=(0,O.v_)(r,t,"textType");return o.createElement(i.IconButton,{padding:[0],width:"12px",height:"12px",icon:"text_add",title:"Change text component","data-testid":"text-component",disabled:!n,onClick:()=>{const e=re.findIndex((e=>e===a)),t=re[e>re.length-2?0:e+1];d(t)}})},oe=(0,a.default)(N).withConfig({displayName:"text__StyledCard",componentId:"sc-1f67m9f-1"})(["","{opacity:0;}&:hover{border:1px solid ",";}&:hover ","{opacity:1;}"],ee,(0,i.getColor)("border"),ee),ae={chart:M,text:(0,o.memo)((e=>{let{dashboardId:t,id:r,listeners:a,handleProps:i,dragging:d}=e;const s=(0,O.bE)(t,r,"editing");return o.createElement(oe,{"data-testid":"textCard",alignItems:"start",overflow:"hidden",dragging:d},o.createElement(ee,null,o.createElement($,{dashboardId:t,id:r}),o.createElement(ne,{dashboardId:t,id:r})),s&&o.createElement(Y,{dashboardId:t,id:r}),!s&&o.createElement(X,{dashboardId:t,id:r}),o.createElement(te,(0,n.A)({},a,i,{dragging:d})))})),placeholder:(0,o.memo)((()=>o.createElement(N,{column:!0,"data-testid":"placeholderCard",background:"secondaryHighlight",width:"100%"})))},ie=(0,o.forwardRef)(((e,t)=>{let{dashboardId:r,id:a,attributes:i,style:d,resizeHandle:s,...l}=e;const c=(0,O.bE)(r,a,"type")||"placeholder",u=ae[c]||ae.chart;return o.createElement("div",(0,n.A)({ref:t},i,{style:d}),o.createElement(u,(0,n.A)({dashboardId:r,id:a,style:d},l)),s)})),de=(0,o.memo)((e=>{let{id:t,...r}=e;return(0,T.Ay)(t),o.createElement(_,(0,n.A)({id:t,Component:ie},r))}))}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js b/src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js
new file mode 100644
index 000000000..1bf1bb310
--- /dev/null
+++ b/src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js
@@ -0,0 +1,2 @@
+/*! For license information please see 6121.8c25bb62d82381e90df8.chunk.js.LICENSE.txt */
+!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="fa08ed54-1a64-493c-a8b0-465d30cd08e7",t._sentryDebugIdIdentifier="sentry-dbid-fa08ed54-1a64-493c-a8b0-465d30cd08e7")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6121],{51891:(t,e,o)=>{o.d(e,{A:()=>Jt});var n=o(66118),r=o(12020);const i={modes:{point:(t,e)=>a(t,e,{intersect:!0}),nearest:(t,e,o)=>function(t,e,o){let n=Number.POSITIVE_INFINITY;return a(t,e,o).reduce(((t,i)=>{const s=i.getCenterPoint(),a=function(t,e,o){if("x"===o)return{x:t.x,y:e.y};if("y"===o)return{x:e.x,y:t.y};return e}(e,s,o.axis),d=(0,r.aE)(e,a);return d<n?(t=[i],n=d):d===n&&t.push(i),t}),[]).sort(((t,e)=>t._index-e._index)).slice(0,1)}(t,e,o),x:(t,e,o)=>a(t,e,{intersect:o.intersect,axis:"x"}),y:(t,e,o)=>a(t,e,{intersect:o.intersect,axis:"y"})}};function s(t,e,o){return(i.modes[o.mode]||i.modes.nearest)(t,e,o)}function a(t,e,o){return t.visibleElements.filter((t=>o.intersect?t.inRange(e.x,e.y):function(t,e,o){return"x"!==o&&"y"!==o?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,o,!0)}(t,e,o.axis)))}const d=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,l=.001,c=(t,e,o)=>Math.min(o,Math.max(e,t));function h(t,e,o){for(const n of Object.keys(t))t[n]=c(t[n],e,o);return t}function u(t,{x:e,y:o,x2:n,y2:r},i,s){const a=s/2,d=t.x>=e-a-l&&t.x<=n+a+l,c=t.y>=o-a-l&&t.y<=r+a+l;return"x"===i?d:("y"===i||d)&&c}function f(t,e){const{centerX:o,centerY:n}=t.getProps(["centerX","centerY"],e);return{x:o,y:n}}const x=t=>"string"===typeof t&&t.endsWith("%"),y=t=>parseFloat(t)/100,p=t=>c(y(t),0,1);function b(t,e){return"start"===e?0:"end"===e?t:x(e)?p(e)*t:t/2}function g(t,e,o=!0){return"number"===typeof e?e:x(e)?(o?p(e):y(e))*t:t}function m(t,e="center"){return(0,r.i)(t)?{x:(0,r.v)(t.x,e),y:(0,r.v)(t.y,e)}:{x:t=(0,r.v)(t,e),y:t}}function v(t){return t&&((0,r.h)(t.xValue)||(0,r.h)(t.yValue))}function w(t,e,o,n=!1){const i=o.init;if(i)return!0===i?S(e,n):function(t,e,o){if(!0===o)return S(t,e);if((0,r.i)(o))return o}(e,n,(0,r.Q)(i,[{chart:t,properties:e,options:o}]))}function M(t,e,o){let n=!1;return e.forEach((e=>{(0,r.a7)(t[e])?(n=!0,o[e]=t[e]):(0,r.h)(o[e])&&delete o[e]})),n}function S({centerX:t,centerY:e},o){return o?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}const k=new Map,C=t=>t.reduce((function(t,e){return t+=e.string}),"");function P(t){if(t&&"object"===typeof t){const e=t.toString();return"[object HTMLImageElement]"===e||"[object HTMLCanvasElement]"===e}}function D(t,{x:e,y:o},n){n&&(t.translate(e,o),t.rotate((0,r.t)(n)),t.translate(-e,-o))}function j(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function T(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function O(t,e){const o=e.content;if(P(o))return{width:g(o.width,e.width),height:g(o.height,e.height)};const n=e.font,i=(0,r.b)(n)?n.map((t=>(0,r.a0)(t))):[(0,r.a0)(n)],s=e.textStrokeWidth,a=(0,r.b)(o)?o:[o],d=a.join()+C(i)+s+(t._measureText?"-spriting":"");return k.has(d)||k.set(d,function(t,e,o,n){t.save();const r=e.length;let i=0,s=n;for(let a=0;a<r;a++){const r=o[Math.min(a,o.length-1)];t.font=r.string;const d=e[a];i=Math.max(i,t.measureText(d).width+n),s+=r.lineHeight}return t.restore(),{width:i,height:s}}(t,a,i,s)),k.get(d)}function A(t,e,o){const{x:n,y:i,width:s,height:a}=e;t.save(),T(t,o);const d=j(t,o);t.fillStyle=o.backgroundColor,t.beginPath(),(0,r.au)(t,{x:n,y:i,w:s,h:a,radius:h((0,r.aw)(o.borderRadius),0,Math.min(s,a)/2)}),t.closePath(),t.fill(),d&&(t.shadowColor=o.borderShadowColor,t.stroke()),t.restore()}function Y(t,e,o){const n=o.content;if(P(n))return t.save(),t.globalAlpha=function(t,e){const o=(0,r.x)(t)?t:e;return(0,r.x)(o)?c(o,0,1):1}(o.opacity,n.style.opacity),t.drawImage(n,e.x,e.y,e.width,e.height),void t.restore();const i=(0,r.b)(n)?n:[n],s=o.font,a=(0,r.b)(s)?s.map((t=>(0,r.a0)(t))):[(0,r.a0)(s)],d=o.color,l=(0,r.b)(d)?d:[d],h=function(t,e){const{x:o,width:n}=t,r=e.textAlign;return"center"===r?o+n/2:"end"===r||"right"===r?o+n:o}(e,o),u=e.y+o.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=o.textAlign,function(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}(t,o)&&function(t,{x:e,y:o},n,r){t.beginPath();let i=0;n.forEach((function(n,s){const a=r[Math.min(s,r.length-1)],d=a.lineHeight;t.font=a.string,t.strokeText(n,e,o+d/2+i),i+=d})),t.stroke()}(t,{x:h,y:u},i,a),function(t,{x:e,y:o},n,{fonts:r,colors:i}){let s=0;n.forEach((function(n,a){const d=i[Math.min(a,i.length-1)],l=r[Math.min(a,r.length-1)],c=l.lineHeight;t.beginPath(),t.font=l.string,t.fillStyle=d,t.fillText(n,e,o+c/2+s),s+=c,t.fill()}))}(t,{x:h,y:u},i,{fonts:a,colors:l}),t.restore()}function I(t,e,o,n){const{radius:i,options:s}=e,a=s.pointStyle,d=s.rotation;let l=(d||0)*r.b3;if(P(a))return t.save(),t.translate(o,n),t.rotate(l),t.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),void t.restore();(t=>isNaN(t)||t<=0)(i)||function(t,{x:e,y:o,radius:n,rotation:i,style:s,rad:a}){let d,l,c,h;switch(t.beginPath(),s){default:t.arc(e,o,n,0,r.T),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(a)*n,o-Math.cos(a)*n),a+=r.b5,t.lineTo(e+Math.sin(a)*n,o-Math.cos(a)*n),a+=r.b5,t.lineTo(e+Math.sin(a)*n,o-Math.cos(a)*n),t.closePath();break;case"rectRounded":h=.516*n,c=n-h,d=Math.cos(a+r.b4)*c,l=Math.sin(a+r.b4)*c,t.arc(e-d,o-l,h,a-r.P,a-r.H),t.arc(e+l,o-d,h,a-r.H,a),t.arc(e+d,o+l,h,a,a+r.H),t.arc(e-l,o+d,h,a+r.H,a+r.P),t.closePath();break;case"rect":if(!i){c=Math.SQRT1_2*n,t.rect(e-c,o-c,2*c,2*c);break}a+=r.b4;case"rectRot":d=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-d,o-l),t.lineTo(e+l,o-d),t.lineTo(e+d,o+l),t.lineTo(e-l,o+d),t.closePath();break;case"crossRot":a+=r.b4;case"cross":d=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-d,o-l),t.lineTo(e+d,o+l),t.moveTo(e+l,o-d),t.lineTo(e-l,o+d);break;case"star":d=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-d,o-l),t.lineTo(e+d,o+l),t.moveTo(e+l,o-d),t.lineTo(e-l,o+d),a+=r.b4,d=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-d,o-l),t.lineTo(e+d,o+l),t.moveTo(e+l,o-d),t.lineTo(e-l,o+d);break;case"line":d=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-d,o-l),t.lineTo(e+d,o+l);break;case"dash":t.moveTo(e,o),t.lineTo(e+Math.cos(a)*n,o+Math.sin(a)*n)}t.fill()}(t,{x:o,y:n,radius:i,rotation:d,style:a,rad:l})}const X={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function E(t,e,o){return e="number"===typeof e?e:t.parse(e),(0,r.g)(e)?t.getPixelForValue(e):o}function W(t,e,o){const n=e[o];if(n||"scaleID"===o)return n;const r=o.charAt(0),i=Object.values(t).filter((t=>t.axis&&t.axis===r));return i.length?i[0].id:r}function R(t,e){if(t){const o=t.options.reverse;return{start:E(t,e.min,o?e.end:e.start),end:E(t,e.max,o?e.start:e.end)}}}function _(t,e){const{chartArea:o,scales:n}=t,r=n[W(n,e,"xScaleID")],i=n[W(n,e,"yScaleID")];let s=o.width/2,a=o.height/2;return r&&(s=E(r,e.xValue,r.left+r.width/2)),i&&(a=E(i,e.yValue,i.top+i.height/2)),{x:s,y:a}}function z(t,e){const o=t.scales,n=o[W(o,e,"xScaleID")],r=o[W(o,e,"yScaleID")];if(!n&&!r)return{};let{left:i,right:s}=n||t.chartArea,{top:a,bottom:d}=r||t.chartArea;const l=$(n,{min:e.xMin,max:e.xMax,start:i,end:s});i=l.start,s=l.end;const c=$(r,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:i,y:a,x2:s,y2:d,width:s-i,height:d-a,centerX:i+(s-i)/2,centerY:a+(d-a)/2}}function H(t,e){if(!v(e)){const o=z(t,e);let n=e.radius;n&&!isNaN(n)||(n=Math.min(o.width,o.height)/2,e.radius=n);const r=2*n,i=o.centerX+e.xAdjust,s=o.centerY+e.yAdjust;return{x:i-n,y:s-n,x2:i+n,y2:s+n,centerX:i,centerY:s,width:r,height:r,radius:n}}return function(t,e){const o=_(t,e),n=2*e.radius;return{x:o.x-e.radius+e.xAdjust,y:o.y-e.radius+e.yAdjust,x2:o.x+e.radius+e.xAdjust,y2:o.y+e.radius+e.yAdjust,centerX:o.x+e.xAdjust,centerY:o.y+e.yAdjust,radius:e.radius,width:n,height:n}}(t,e)}function N(t,e){const{scales:o,chartArea:n}=t,r=o[e.scaleID],i={x:n.left,y:n.top,x2:n.right,y2:n.bottom};return r?function(t,e,o){const n=E(t,o.value,NaN),r=E(t,o.endValue,n);t.isHorizontal()?(e.x=n,e.x2=r):(e.y=n,e.y2=r)}(r,i,e):function(t,e,o){for(const n of Object.keys(X)){const r=t[W(t,o,n)];if(r){const{min:t,max:i,start:s,end:a,startProp:d,endProp:l}=X[n],c=R(r,{min:o[t],max:o[i],start:r[s],end:r[a]});e[d]=c.start,e[l]=c.end}}}(o,i,e),i}function V(t,e,o){const n=z(t,e);return n.initProperties=w(t,n,e,o),n.elements=[{type:"label",optionScope:"label",properties:L(t,n,e),initProperties:n.initProperties}],n}function $(t,e){const o=R(t,e)||e;return{start:Math.min(o.start,o.end),end:Math.max(o.start,o.end)}}function B(t,e){const{start:o,end:n,borderWidth:r}=t,{position:i,padding:{start:s,end:a},adjust:d}=e;return o+r/2+d+b(n-r-o-s-a-e.size,i)}function L(t,e,o){const n=o.label;n.backgroundColor="transparent",n.callout.display=!1;const i=m(n.position),s=(0,r.E)(n.padding),a=O(t.ctx,n),d=function({properties:t,options:e},o,n,r){const{x:i,x2:s,width:a}=t;return B({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:n.x,padding:{start:r.left,end:r.right},adjust:e.label.xAdjust,size:o.width})}({properties:e,options:o},a,i,s),l=function({properties:t,options:e},o,n,r){const{y:i,y2:s,height:a}=t;return B({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:n.y,padding:{start:r.top,end:r.bottom},adjust:e.label.yAdjust,size:o.height})}({properties:e,options:o},a,i,s),c=a.width+s.width,h=a.height+s.height;return{x:d,y:l,x2:d+c,y2:l+h,width:c,height:h,centerX:d+c/2,centerY:l+h/2,rotation:n.rotation}}function J(t,e,o){const n=Math.cos(o),r=Math.sin(o),i=e.x,s=e.y;return{x:i+n*(t.x-i)-r*(t.y-s),y:s+r*(t.x-i)+n*(t.y-s)}}const F=["enter","leave"],Q=F.concat("click");function U(t,e,o){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return function(t,e,o){if(!t.moveListened)return;let n;n="mousemove"===e.type?s(t,e,o.interaction):[];const r=t.hovered;t.hovered=n;const i={state:t,event:e};let a=q(i,"leave",r,n);return q(i,"enter",n,r)||a}(t,e,o);case"click":return function(t,e,o){const n=t.listeners,r=s(t,e,o.interaction);let i;for(const s of r)i=G(s.options.click||n.click,s,e)||i;return i}(t,e,o)}}function q({state:t,event:e},o,n,r){let i;for(const s of n)r.indexOf(s)<0&&(i=G(s.options[o]||t.listeners[o],s,e)||i);return i}function G(t,e,o){return!0===(0,r.Q)(t,[e.$context,o])}const K=["afterDraw","beforeDraw"];function Z(t,e,o){if(t.hooked){const n=e.options[o]||t.hooks[o];return(0,r.Q)(n,[e.$context])}}function tt(t,e,o){const n=function(t,e,o){const n=e.axis,i=e.id,s=n+"ScaleID",a={min:(0,r.v)(e.min,Number.NEGATIVE_INFINITY),max:(0,r.v)(e.max,Number.POSITIVE_INFINITY)};for(const r of o)r.scaleID===i?rt(r,e,["value","endValue"],a):W(t,r,s)===i&&rt(r,e,[n+"Min",n+"Max",n+"Value"],a);return a}(t.scales,e,o);let i=et(e,n,"min","suggestedMin");i=et(e,n,"max","suggestedMax")||i,i&&(0,r.a7)(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function et(t,e,o,n){if((0,r.g)(e[o])&&!function(t,e,o){return(0,r.h)(t[e])||(0,r.h)(t[o])}(t.options,o,n)){const n=t[o]!==e[o];return t[o]=e[o],n}}function ot(t,e){for(const o of["scaleID","xScaleID","yScaleID"]){const n=W(e,t,o);n&&!e[n]&&nt(t,o)&&console.warn(`No scale found with id '${n}' for annotation '${t.id}'`)}}function nt(t,e){if("scaleID"===e)return!0;const o=e.charAt(0);for(const n of["Min","Max","Value"])if((0,r.h)(t[o+n]))return!0;return!1}function rt(t,e,o,n){for(const i of o){const o=t[i];if((0,r.h)(o)){const t=e.parse(o);n.min=Math.min(n.min,t),n.max=Math.max(n.max,t)}}}class it extends n.Hg{inRange(t,e,o,n){const{x:i,y:s}=J({x:t,y:e},this.getCenterPoint(n),(0,r.t)(-this.options.rotation));return u({x:i,y:s},this.getProps(["x","y","x2","y2"],n),o,this.options.borderWidth)}getCenterPoint(t){return f(this,t)}draw(t){t.save(),D(t,this.getCenterPoint(),this.options.rotation),A(t,this,this.options),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return V(t,e)}}it.id="boxAnnotation",it.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},it.defaultRoutes={borderColor:"color",backgroundColor:"color"},it.descriptors={label:{_fallback:!0}};const st=["left","bottom","top","right"];class at extends n.Hg{inRange(t,e,o,n){const{x:i,y:s}=J({x:t,y:e},this.getCenterPoint(n),(0,r.t)(-this.rotation));return u({x:i,y:s},this.getProps(["x","y","x2","y2"],n),o,this.options.borderWidth)}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options,o=!(0,r.h)(this._visible)||this._visible;e.display&&e.content&&o&&(t.save(),D(t,this.getCenterPoint(),this.rotation),function(t,e){const{pointX:o,pointY:n,options:i}=e,s=i.callout,a=s&&s.display&&function(t,e){const o=e.position;if(st.includes(o))return o;return function(t,e){const{x:o,y:n,x2:i,y2:s,width:a,height:d,pointX:l,pointY:c,centerX:h,centerY:u,rotation:f}=t,x={x:h,y:u},y=e.start,p=g(a,y),b=g(d,y),m=[o,o+p,o+p,i],v=[n+b,s,n,s],w=[];for(let g=0;g<4;g++){const t=J({x:m[g],y:v[g]},x,(0,r.t)(f));w.push({position:st[g],distance:(0,r.aE)(t,{x:l,y:c})})}return w.sort(((t,e)=>t.distance-e.distance))[0].position}(t,e)}(e,s);if(!a||function(t,e,o){const{pointX:n,pointY:r}=t,i=e.margin;let s=n,a=r;"left"===o?s+=i:"right"===o?s-=i:"top"===o?a+=i:"bottom"===o&&(a-=i);return t.inRange(s,a)}(e,s,a))return;t.save(),t.beginPath();const d=j(t,s);if(!d)return t.restore();const{separatorStart:l,separatorEnd:c}=function(t,e){const{x:o,y:n,x2:r,y2:i}=t,s=function(t,e){const{width:o,height:n,options:r}=t,i=r.callout.margin+r.borderWidth/2;if("right"===e)return o+i;if("bottom"===e)return n+i;return-i}(t,e);let a,d;"left"===e||"right"===e?(a={x:o+s,y:n},d={x:a.x,y:i}):(a={x:o,y:n+s},d={x:r,y:a.y});return{separatorStart:a,separatorEnd:d}}(e,a),{sideStart:h,sideEnd:u}=function(t,e,o){const{y:n,width:r,height:i,options:s}=t,a=s.callout.start,d=function(t,e){const o=e.side;if("left"===t||"top"===t)return-o;return o}(e,s.callout);let l,c;"left"===e||"right"===e?(l={x:o.x,y:n+g(i,a)},c={x:l.x+d,y:l.y}):(l={x:o.x+g(r,a),y:o.y},c={x:l.x,y:l.y+d});return{sideStart:l,sideEnd:c}}(e,a,l);(s.margin>0||0===i.borderWidth)&&(t.moveTo(l.x,l.y),t.lineTo(c.x,c.y));t.moveTo(h.x,h.y),t.lineTo(u.x,u.y);const f=J({x:o,y:n},e.getCenterPoint(),(0,r.t)(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}(t,this),A(t,this,e),Y(t,function({x:t,y:e,width:o,height:n,options:i}){const s=i.borderWidth/2,a=(0,r.E)(i.padding);return{x:t+a.left+s,y:e+a.top+s,width:o-a.left-a.right-i.borderWidth,height:n-a.top-a.bottom-i.borderWidth}}(this),e),t.restore())}resolveElementProperties(t,e){let o;if(v(e))o=_(t,e);else{const{centerX:n,centerY:r}=z(t,e);o={x:n,y:r}}const n=(0,r.E)(e.padding),i=function(t,e,o,n){const r=e.width+n.width+o.borderWidth,i=e.height+n.height+o.borderWidth,s=m(o.position,"center"),a=dt(t.x,r,o.xAdjust,s.x),d=dt(t.y,i,o.yAdjust,s.y);return{x:a,y:d,x2:a+r,y2:d+i,width:r,height:i,centerX:a+r/2,centerY:d+i/2}}(o,O(t.ctx,e),e,n);return{initProperties:w(t,i,e),pointX:o.x,pointY:o.y,...i,rotation:e.rotation}}}function dt(t,e,o=0,n){return t-b(e,n)+o}at.id="labelAnnotation",at.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},at.defaultRoutes={borderColor:"color"};const lt=(t,e,o)=>({x:t.x+o*(e.x-t.x),y:t.y+o*(e.y-t.y)}),ct=(t,e,o)=>lt(e,o,Math.abs((t-e.y)/(o.y-e.y))).x,ht=(t,e,o)=>lt(e,o,Math.abs((t-e.x)/(o.x-e.x))).y,ut=t=>t*t,ft=(t,e,o,n)=>(1-n)*(1-n)*t+2*(1-n)*n*e+n*n*o,xt=(t,e,o,n)=>({x:ft(t.x,e.x,o.x,n),y:ft(t.y,e.y,o.y,n)}),yt=(t,e,o,n)=>2*(1-n)*(e-t)+2*n*(o-e),pt=(t,e,o,n)=>-Math.atan2(yt(t.x,e.x,o.x,n),yt(t.y,e.y,o.y,n))+.5*r.P;class bt extends n.Hg{inRange(t,e,o,n){const r=this.options.borderWidth/2;if("x"!==o&&"y"!==o){const o={mouseX:t,mouseY:e},{path:i,ctx:s}=this;if(i){j(s,this.options);const{chart:r}=this.$context,a=t*r.currentDevicePixelRatio,d=e*r.currentDevicePixelRatio,l=s.isPointInStroke(i,a,d)||vt(this,o,n);return s.restore(),l}return function(t,{mouseX:e,mouseY:o},n=.001,r){const{x:i,y:s,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-i,c=d-s,h=ut(l)+ut(c),u=0===h?-1:((e-i)*l+(o-s)*c)/h;let f,x;u<0?(f=i,x=s):u>1?(f=a,x=d):(f=i+u*l,x=s+u*c);return ut(e-f)+ut(o-x)<=n}(this,o,ut(r),n)||vt(this,o,n)}return function(t,{mouseX:e,mouseY:o},n,{hBorderWidth:r,useFinalPosition:i}){const s=((t,e,{x:o,y:n,x2:r,y2:i},s)=>"y"===s?{start:Math.min(n,i),end:Math.max(n,i),value:e}:{start:Math.min(o,r),end:Math.max(o,r),value:t})(e,o,t.getProps(["x","y","x2","y2"],i),n);return s.value>=s.start-r&&s.value<=s.end+r||vt(t,{mouseX:e,mouseY:o},i,n)}(this,{mouseX:t,mouseY:e},o,{hBorderWidth:r,useFinalPosition:n})}getCenterPoint(t){return f(this,t)}draw(t){const{x:e,y:o,x2:n,y2:i,cp:s,options:a}=this;if(t.save(),!j(t,a))return t.restore();T(t,a);const d=Math.sqrt(Math.pow(n-e,2)+Math.pow(i-o,2));if(a.curve&&s)return function(t,e,o,n){const{x:i,y:s,x2:a,y2:d,options:l}=e,{startOpts:c,endOpts:h,startAdjust:u,endAdjust:f}=St(e),x={x:i,y:s},y={x:a,y:d},p=pt(x,o,y,0),b=pt(x,o,y,1)-r.P,g=xt(x,o,y,u/n),m=xt(x,o,y,1-f/n),v=new Path2D;t.beginPath(),v.moveTo(g.x,g.y),v.quadraticCurveTo(o.x,o.y,m.x,m.y),t.shadowColor=l.borderShadowColor,t.stroke(v),e.path=v,e.ctx=t,Pt(t,g,{angle:p,adjust:u},c),Pt(t,m,{angle:b,adjust:f},h)}(t,this,s,d),t.restore();const{startOpts:l,endOpts:c,startAdjust:h,endAdjust:u}=St(this),f=Math.atan2(i-o,n-e);t.translate(e,o),t.rotate(f),t.beginPath(),t.moveTo(0+h,0),t.lineTo(d-u,0),t.shadowColor=a.borderShadowColor,t.stroke(),Ct(t,0,h,l),Ct(t,d,-u,c),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){const o=N(t,e),{x:n,y:i,x2:s,y2:a}=o,d=function({x:t,y:e,x2:o,y2:n},{top:r,right:i,bottom:s,left:a}){return!(t<a&&o<a||t>i&&o>i||e<r&&n<r||e>s&&n>s)}(o,t.chartArea),l=d?function(t,e,o){const{x:n,y:r}=mt(t,e,o),{x:i,y:s}=mt(e,t,o);return{x:n,y:r,x2:i,y2:s,width:Math.abs(i-n),height:Math.abs(s-r)}}({x:n,y:i},{x:s,y:a},t.chartArea):{x:n,y:i,x2:s,y2:a,width:Math.abs(s-n),height:Math.abs(a-i)};if(l.centerX=(s+n)/2,l.centerY=(a+i)/2,l.initProperties=w(t,l,e),e.curve){const t={x:l.x,y:l.y},o={x:l.x2,y:l.y2};l.cp=function(t,e,o){const{x:n,y:r,x2:i,y2:s,centerX:a,centerY:d}=t,l=Math.atan2(s-r,i-n),c=m(e.controlPoint,0);return J({x:a+g(o,c.x,!1),y:d+g(o,c.y,!1)},{x:a,y:d},l)}(l,e,(0,r.aE)(t,o))}const c=function(t,e,o){const n=o.borderWidth,i=(0,r.E)(o.padding),s=O(t.ctx,o),a=s.width+i.width+n,d=s.height+i.height+n;return function(t,e,o,n){const{width:i,height:s,padding:a}=o,{xAdjust:d,yAdjust:l}=e,c={x:t.x,y:t.y},h={x:t.x2,y:t.y2},u="auto"===e.rotation?function(t){const{x:e,y:o,x2:n,y2:i}=t,s=Math.atan2(i-o,n-e);return s>r.P/2?s-r.P:s<r.P/-2?s+r.P:s}(t):(0,r.t)(e.rotation),f=function(t,e,o){const n=Math.cos(o),r=Math.sin(o);return{w:Math.abs(t*n)+Math.abs(e*r),h:Math.abs(t*r)+Math.abs(e*n)}}(i,s,u),x=function(t,e,o,n){let r;const i=function(t,e){const{x:o,x2:n,y:r,y2:i}=t,s=Math.min(r,i)-e.top,a=Math.min(o,n)-e.left,d=e.bottom-Math.max(r,i),l=e.right-Math.max(o,n);return{x:Math.min(a,l),y:Math.min(s,d),dx:a<=l?1:-1,dy:s<=d?1:-1}}(t,n);r="start"===e.position?wt({w:t.x2-t.x,h:t.y2-t.y},o,e,i):"end"===e.position?1-wt({w:t.x-t.x2,h:t.y-t.y2},o,e,i):b(1,e.position);return r}(t,e,{labelSize:f,padding:a},n),y=t.cp?xt(c,t.cp,h,x):lt(c,h,x),p={size:f.w,min:n.left,max:n.right,padding:a.left},g={size:f.h,min:n.top,max:n.bottom,padding:a.top},m=Mt(y.x,p)+d,v=Mt(y.y,g)+l;return{x:m-i/2,y:v-s/2,x2:m+i/2,y2:v+s/2,centerX:m,centerY:v,pointX:y.x,pointY:y.y,width:i,height:s,rotation:(0,r.U)(u)}}(e,o,{width:a,height:d,padding:i},t.chartArea)}(t,l,e.label);return c._visible=d,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}bt.id="lineAnnotation";const gt={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};function mt({x:t,y:e},o,{top:n,right:r,bottom:i,left:s}){return t<s&&(e=ht(s,{x:t,y:e},o),t=s),t>r&&(e=ht(r,{x:t,y:e},o),t=r),e<n&&(t=ct(n,{x:t,y:e},o),e=n),e>i&&(t=ct(i,{x:t,y:e},o),e=i),{x:t,y:e}}function vt(t,{mouseX:e,mouseY:o},n,r){const i=t.label;return i.options.display&&i.inRange(e,o,r,n)}function wt(t,e,o,n){const{labelSize:r,padding:i}=e,s=t.w*n.dx,a=t.h*n.dy,d=s>0&&(r.w/2+i.left-n.x)/s,l=a>0&&(r.h/2+i.top-n.y)/a;return c(Math.max(d,l),0,.25)}function Mt(t,e){const{size:o,min:n,max:r,padding:i}=e,s=o/2;return o>r-n?(r+n)/2:(n>=t-i-s&&(t=n+i+s),r<=t+i+s&&(t=r-i-s),t)}function St(t){const e=t.options,o=e.arrowHeads&&e.arrowHeads.start,n=e.arrowHeads&&e.arrowHeads.end;return{startOpts:o,endOpts:n,startAdjust:kt(t,o),endAdjust:kt(t,n)}}function kt(t,e){if(!e||!e.display)return 0;const{length:o,width:n}=e,r=t.options.borderWidth/2,i={x:o,y:n+r},s={x:0,y:r};return Math.abs(ct(0,i,s))}function Ct(t,e,o,n){if(!n||!n.display)return;const{length:r,width:i,fill:s,backgroundColor:a,borderColor:d}=n,l=Math.abs(e-r)+o;t.beginPath(),T(t,n),j(t,n),t.moveTo(l,-i),t.lineTo(e+o,0),t.lineTo(l,i),!0===s?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=n.borderShadowColor,t.stroke()}function Pt(t,{x:e,y:o},{angle:n,adjust:r},i){i&&i.display&&(t.save(),t.translate(e,o),t.rotate(n),Ct(t,0,-r,i),t.restore())}bt.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},gt),fill:!1,length:12,start:Object.assign({},gt),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},at.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},bt.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}},bt.defaultRoutes={borderColor:"color"};class Dt extends n.Hg{inRange(t,e,o,n){const i=this.options.rotation,s=this.options.borderWidth;if("x"!==o&&"y"!==o)return function(t,e,o,n){const{width:i,height:s,centerX:a,centerY:d}=e,l=i/2,c=s/2;if(l<=0||c<=0)return!1;const h=(0,r.t)(o||0),u=n/2||0,f=Math.cos(h),x=Math.sin(h),y=Math.pow(f*(t.x-a)+x*(t.y-d),2),p=Math.pow(x*(t.x-a)-f*(t.y-d),2);return y/Math.pow(l+u,2)+p/Math.pow(c+u,2)<=1.0001}({x:t,y:e},this.getProps(["width","height","centerX","centerY"],n),i,s);const{x:a,y:d,x2:c,y2:h}=this.getProps(["x","y","x2","y2"],n),u=s/2,f="y"===o?{start:d,end:h}:{start:a,end:c},x=J({x:t,y:e},this.getCenterPoint(n),(0,r.t)(-i));return x[o]>=f.start-u-l&&x[o]<=f.end+u+l}getCenterPoint(t){return f(this,t)}draw(t){const{width:e,height:o,centerX:n,centerY:i,options:s}=this;t.save(),D(t,this.getCenterPoint(),s.rotation),T(t,this.options),t.beginPath(),t.fillStyle=s.backgroundColor;const a=j(t,s);t.ellipse(n,i,o/2,e/2,r.P/2,0,2*r.P),t.fill(),a&&(t.shadowColor=s.borderShadowColor,t.stroke()),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return V(t,e,!0)}}Dt.id="ellipseAnnotation",Dt.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},it.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},Dt.defaultRoutes={borderColor:"color",backgroundColor:"color"},Dt.descriptors={label:{_fallback:!0}};class jt extends n.Hg{inRange(t,e,o,n){const{x:r,y:i,x2:s,y2:a,width:d}=this.getProps(["x","y","x2","y2","width"],n),l=this.options.borderWidth;if("x"!==o&&"y"!==o)return function(t,e,o,n){if(!t||!e||o<=0)return!1;const r=n/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(o+r,2)}({x:t,y:e},this.getCenterPoint(n),d/2,l);const c=l/2,h="y"===o?{start:i,end:a,value:e}:{start:r,end:s,value:t};return h.value>=h.start-c&&h.value<=h.end+c}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options,o=e.borderWidth;if(e.radius<.1)return;t.save(),t.fillStyle=e.backgroundColor,T(t,e);const n=j(t,e);I(t,this,this.centerX,this.centerY),n&&!P(e.pointStyle)&&(t.shadowColor=e.borderShadowColor,t.stroke()),t.restore(),e.borderWidth=o}resolveElementProperties(t,e){const o=H(t,e);return o.initProperties=w(t,o,e,!0),o}}jt.id="pointAnnotation",jt.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},jt.defaultRoutes={borderColor:"color",backgroundColor:"color"};class Tt extends n.Hg{inRange(t,e,o,n){if("x"!==o&&"y"!==o)return this.options.radius>=.1&&this.elements.length>1&&function(t,e,o,n){let r=!1,i=t[t.length-1].getProps(["bX","bY"],n);for(const s of t){const t=s.getProps(["bX","bY"],n);t.bY>o!==i.bY>o&&e<(i.bX-t.bX)*(o-t.bY)/(i.bY-t.bY)+t.bX&&(r=!r),i=t}return r}(this.elements,t,e,n);const i=J({x:t,y:e},this.getCenterPoint(n),(0,r.t)(-this.options.rotation)),s=this.elements.map((t=>"y"===o?t.bY:t.bX)),a=Math.min(...s),d=Math.max(...s);return i[o]>=a&&i[o]<=d}getCenterPoint(t){return f(this,t)}draw(t){const{elements:e,options:o}=this;t.save(),t.beginPath(),t.fillStyle=o.backgroundColor,T(t,o);const n=j(t,o);let r=!0;for(const i of e)r?(t.moveTo(i.x,i.y),r=!1):t.lineTo(i.x,i.y);t.closePath(),t.fill(),n&&(t.shadowColor=o.borderShadowColor,t.stroke()),t.restore()}resolveElementProperties(t,e){const o=H(t,e),{sides:n,rotation:i}=e,s=[],a=2*r.P/n;let d=i*r.b3;for(let r=0;r<n;r++,d+=a){const n=Ot(o,e,d);n.initProperties=w(t,o,e),s.push(n)}return o.elements=s,o}}function Ot({centerX:t,centerY:e},{radius:o,borderWidth:n},r){const i=n/2,s=Math.sin(r),a=Math.cos(r),d={x:t+s*o,y:e-a*o};return{type:"point",optionScope:"point",properties:{x:d.x,y:d.y,centerX:d.x,centerY:d.y,bX:t+s*(o+i),bY:e-a*(o+i)}}}Tt.id="polygonAnnotation",Tt.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},Tt.defaultRoutes={borderColor:"color",backgroundColor:"color"};const At={box:it,ellipse:Dt,label:at,line:bt,point:jt,polygon:Tt};Object.keys(At).forEach((t=>{r.d.describe(`elements.${At[t].id}`,{_fallback:"plugins.annotation.common"})}));const Yt={update:Object.assign},It=Q.concat(K),Xt=(t,e)=>(0,r.i)(e)?Vt(t,e):t,Et=t=>"color"===t||"font"===t;function Wt(t="line"){return At[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function Rt(t,e,o,i){const s=function(t,e,o){if("reset"===o||"none"===o||"resize"===o)return Yt;return new n.Qw(t,e)}(t,o.animations,i),a=e.annotations,d=function(t,e){const o=e.length,n=t.length;if(n<o){const e=o-n;t.splice(n,0,...new Array(e))}else n>o&&t.splice(o,n-o);return t}(e.elements,a);for(let n=0;n<a.length;n++){const e=a[n],o=Ht(d,n,e.type),i=e.setContext($t(t,o,e)),l=o.resolveElementProperties(t,i);l.skip=_t(l),"elements"in l&&(zt(o,l.elements,i,s),delete l.elements),(0,r.h)(o.x)||Object.assign(o,l),Object.assign(o,l.initProperties),l.options=Nt(i),s.update(o,l)}}function _t(t){return isNaN(t.x)||isNaN(t.y)}function zt(t,e,o,n){const r=t.elements||(t.elements=[]);r.length=e.length;for(let i=0;i<e.length;i++){const t=e[i],s=t.properties,a=Ht(r,i,t.type,t.initProperties),d=o[t.optionScope].override(t);s.options=Nt(d),n.update(a,s)}}function Ht(t,e,o,n){const r=At[Wt(o)];let i=t[e];return i&&i instanceof r||(i=t[e]=new r,Object.assign(i,n)),i}function Nt(t){const e=At[Wt(t.type)],o={};o.id=t.id,o.type=t.type,o.drawTime=t.drawTime,Object.assign(o,Vt(t,e.defaults),Vt(t,e.defaultRoutes));for(const n of It)o[n]=t[n];return o}function Vt(t,e){const o={};for(const n of Object.keys(e)){const i=e[n],s=t[n];Et(n)&&(0,r.b)(s)?o[n]=s.map((t=>Xt(t,i))):o[n]=Xt(s,i)}return o}function $t(t,e,o){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:o.id,type:"annotation"}))}const Bt=new Map,Lt=Q.concat(K);var Jt={id:"annotation",version:"2.2.1",beforeRegister(){!function(t,e,o,n=!0){const r=o.split(".");let i=0;for(const s of e.split(".")){const a=r[i++];if(parseInt(s,10)<parseInt(a,10))break;if(d(a,s)){if(n)throw new Error(`${t} v${o} is not supported. v${e} or newer is required.`);return!1}}}("chart.js","3.7",n.t1.version)},afterRegister(){n.t1.register(At)},afterUnregister(){n.t1.unregister(At)},beforeInit(t){Bt.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,o){const n=Bt.get(t).annotations=[];let i=o.annotations;(0,r.i)(i)?Object.keys(i).forEach((t=>{const e=i[t];(0,r.i)(e)&&(e.id=t,n.push(e))})):(0,r.b)(i)&&n.push(...i),function(t,e){for(const o of t)ot(o,e)}(n,t.scales)},afterDataLimits(t,e){const o=Bt.get(t);tt(t,e.scale,o.annotations.filter((t=>t.display&&t.adjustScaleRange)))},afterUpdate(t,e,o){const n=Bt.get(t);!function(t,e,o){e.listened=M(o,Q,e.listeners),e.moveListened=!1,e._getElements=s,F.forEach((t=>{(0,r.a7)(o[t])&&(e.moveListened=!0)})),e.listened&&e.moveListened||e.annotations.forEach((t=>{!e.listened&&(0,r.a7)(t.click)&&(e.listened=!0),e.moveListened||F.forEach((o=>{(0,r.a7)(t[o])&&(e.listened=!0,e.moveListened=!0)}))}))}(0,n,o),Rt(t,n,o,e.mode),n.visibleElements=n.elements.filter((t=>!t.skip&&t.options.display)),function(t,e,o){const n=e.visibleElements;e.hooked=M(o,K,e.hooks),e.hooked||n.forEach((t=>{e.hooked||K.forEach((o=>{(0,r.a7)(t.options[o])&&(e.hooked=!0)}))}))}(0,n,o)},beforeDatasetsDraw(t,e,o){Ft(t,"beforeDatasetsDraw",o.clip)},afterDatasetsDraw(t,e,o){Ft(t,"afterDatasetsDraw",o.clip)},beforeDraw(t,e,o){Ft(t,"beforeDraw",o.clip)},afterDraw(t,e,o){Ft(t,"afterDraw",o.clip)},beforeEvent(t,e,o){U(Bt.get(t),e.event,o)&&(e.changed=!0)},afterDestroy(t){Bt.delete(t)},_getState:t=>Bt.get(t),defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!Lt.includes(t)&&"init"!==t,annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${At[Wt(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Et,_fallback:!0},_indexable:Et}},additionalOptionScopes:[""]};function Ft(t,e,o){const{ctx:n,chartArea:i}=t,s=Bt.get(t);o&&(0,r.Y)(n,i);const a=function(t,e){const o=[];for(const n of t)if(n.options.drawTime===e&&o.push({element:n,main:!0}),n.elements&&n.elements.length)for(const t of n.elements)t.options.display&&t.options.drawTime===e&&o.push({element:t});return o}(s.visibleElements,e).sort(((t,e)=>t.element.options.z-e.element.options.z));for(const r of a)Qt(n,i,s,r);o&&(0,r.$)(n)}function Qt(t,e,o,n){const r=n.element;n.main?(Z(o,r,"beforeDraw"),r.draw(t,e),Z(o,r,"afterDraw")):r.draw(t,e)}},18107:(t,e,o)=>{var n=o(46518),r=o(48981),i=o(26198),s=o(91291),a=o(6469);n({target:"Array",proto:!0},{at:function(t){var e=r(this),o=i(e),n=s(t),a=n>=0?n:o+n;return a<0||a>=o?void 0:e[a]}}),a("at")},34504:(t,e,o)=>{o(18107)},78898:(t,e,o)=>{var n=o(46518),r=o(68183).charAt,i=o(67750),s=o(91291),a=o(655);n({target:"String",proto:!0,forced:!0},{at:function(t){var e=a(i(this)),o=e.length,n=s(t),d=n>=0?n:o+n;return d<0||d>=o?void 0:r(e,d)}})}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js.LICENSE.txt b/src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js.LICENSE.txt
new file mode 100644
index 000000000..1b47ed127
--- /dev/null
+++ b/src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js.LICENSE.txt
@@ -0,0 +1,6 @@
+/*!
+* chartjs-plugin-annotation v2.2.1
+* https://www.chartjs.org/chartjs-plugin-annotation/index
+ * (c) 2023 chartjs-plugin-annotation Contributors
+ * Released under the MIT License
+ */
diff --git a/src/web/gui/v2/6218.26fc25279f45fbcf29f7.chunk.js b/src/web/gui/v2/6218.26fc25279f45fbcf29f7.chunk.js
new file mode 100644
index 000000000..461c9595e
--- /dev/null
+++ b/src/web/gui/v2/6218.26fc25279f45fbcf29f7.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6fa8d0b9-fa43-47bd-954d-d2c98b377b56",e._sentryDebugIdIdentifier="sentry-dbid-6fa8d0b9-fa43-47bd-954d-d2c98b377b56")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6218,3705],{32089:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(58168),o=r(96540),i=r(10058);const s=e=>{let{vertical:t,color:r="borderSecondary",...s}=e;return o.createElement(i.Box,(0,n.A)({as:"hr",height:t?"100%":"1px"},t?{}:{width:"100%"},{sx:{borderWidth:t?"0px 0px 0px 1px":"1px 0px 0px 0px",borderColor:r,borderStyle:"solid"}},s))}},47193:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});r(62953);var n=r(69765),o=r(67990),i=r(87860),s=r(3914),f=r(47762),d=r(87659);const l=function(){let{polling:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:t=""}=(0,n.pr)(),r=(0,o.gr)(t,"ids"),l=(0,o.gr)(t,"loaded"),u=(0,f.Gt)(r),a=(0,s.vt)(),[c,,,p]=(0,d.A)();return(0,i.A)({id:t,spaceId:a,polling:e}),{areDefaultRoomNodesLoaded:l,nodes:u,isClaimNodeModalOpen:c,closeClaimNodeModal:p}}},3705:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});r(62953);var n=r(96540);const o={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0},i=()=>{const[e,t]=(0,n.useState)(null),[r,i]=(0,n.useState)(o),s=(0,n.useMemo)((()=>new window.ResizeObserver((e=>{if(e[0]){const{x:t,y:r,width:n,height:o,top:s,left:f,bottom:d,right:l}=e[0].contentRect;i({x:t,y:r,width:n,height:o,top:s,left:f,bottom:d,right:l})}}))),[]);return(0,n.useLayoutEffect)((()=>{if(e)return s.observe(e),()=>{s.disconnect()}}),[e]),[t,r]}},54128:(e,t,r)=>{var n=r(31800),o=/^\s+/;e.exports=function(e){return e?e.slice(0,n(e)+1).replace(o,""):e}},55765:(e,t,r)=>{var n=r(38859),o=r(15325),i=r(29905),s=r(19219),f=r(44517),d=r(84247);e.exports=function(e,t,r){var l=-1,u=o,a=e.length,c=!0,p=[],b=p;if(r)c=!1,u=i;else if(a>=200){var h=t?null:f(e);if(h)return d(h);c=!1,u=s,b=new n}else b=t?[]:p;e:for(;++l<a;){var g=e[l],v=t?t(g):g;if(g=r||0!==g?g:0,c&&v===v){for(var y=b.length;y--;)if(b[y]===v)continue e;t&&b.push(v),p.push(g)}else u(b,v,r)||(b!==p&&b.push(v),p.push(g))}return p}},44517:(e,t,r)=>{var n=r(76545),o=r(63950),i=r(84247),s=n&&1/i(new n([,-0]))[1]==1/0?function(e){return new n(e)}:o;e.exports=s},31800:e=>{var t=/\s/;e.exports=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r}},62193:(e,t,r)=>{var n=r(88984),o=r(5861),i=r(72428),s=r(56449),f=r(64894),d=r(3656),l=r(55527),u=r(37167),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(f(e)&&(s(e)||"string"==typeof e||"function"==typeof e.splice||d(e)||u(e)||i(e)))return!e.length;var t=o(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(l(e))return!n(e).length;for(var r in e)if(a.call(e,r))return!1;return!0}},99374:(e,t,r)=>{var n=r(54128),o=r(23805),i=r(44394),s=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,d=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=n(e);var r=f.test(e);return r||d.test(e)?l(e.slice(2),r?2:8):s.test(e)?NaN:+e}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/6323.425683f5bf71a51caf65.chunk.js b/src/web/gui/v2/6323.425683f5bf71a51caf65.chunk.js
new file mode 100644
index 000000000..374bb1ce4
--- /dev/null
+++ b/src/web/gui/v2/6323.425683f5bf71a51caf65.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca862f14-1ce9-4a2e-a9c7-1270a4596365",e._sentryDebugIdIdentifier="sentry-dbid-ca862f14-1ce9-4a2e-a9c7-1270a4596365")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6323],{49032:(e,t,a)=>{a.d(t,{B9:()=>l});const n=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,l=e=>!!e&&n.test(e)},84707:(e,t,a)=>{a.d(t,{y:()=>c});a(25440),a(17333),a(41393),a(98992),a(54520),a(81454),a(62953);var n=a(96540),l=a(10058),o=a(49032);const i=(0,a(8711).default)(l.Select).withConfig({displayName:"styled__StyledSelect",componentId:"sc-bkkrx-0"})(["width:100%;"]);a(71517),a(11379),a(93777),a(14190),a(12359),a(86097),a(17273),a(27415),a(19929),a(37583),a(55122),a(20230),a(57268),a(79733),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215);const s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"name";return e.length?"string"===typeof e[0]?[...new Set(e)]:[...new Map(e.map((e=>[e[t],e]))).values()]:[]},r=[],c=e=>{let{invitations:t,setInvitations:a}=e;const[c,d]=(0,n.useState)(r),[m,u]=(0,n.useState)(""),[p,g]=(0,n.useState)(""),h=()=>g(""),v=(0,n.useCallback)((e=>{u(e.toLowerCase())}),[u]),f=n.useCallback((e=>{let{emails:t=r,invitations:n=r,isEmailValid:l}=e;if(l){const e=s(t),l=s(n);return d(e),a(l),u(""),void h()}g("Invalid Email")}),[a]),b=(0,n.useCallback)((e=>(0,o.B9)(e)&&!c.includes(e)),[c]),y=(0,n.useCallback)((e=>{f({isEmailValid:!0,emails:e.map((e=>e.value)),invitations:e.map((e=>({email:e.value,name:e.value.split("@")[0]})))})}),[d]),E=(0,n.useCallback)((e=>{const a=e.clipboardData.getData("Text").toLowerCase().replace(/ /g,",").replace(/,,/g,",").split(",").filter((e=>b(e)))||r;f({emails:[...c,...a],invitations:[...t,...a.map((e=>({email:e,name:e.split("@")[0]})))],isEmailValid:a.length>0}),e.preventDefault()}),[c,t,b,f]),w=(0,n.useCallback)((e=>{if(m)switch(h(),e.key){case"Enter":case"Tab":case",":case" ":f({emails:[...c,m],invitations:[...t,{email:m,name:m.split("@")[0]}],isEmailValid:b(m)}),e.preventDefault()}}),[c,m,t,b,f]);return n.createElement(l.Flex,{justifyContent:"space-between",column:!0,onPaste:E},n.createElement(i,{components:{DropdownIndicator:null},inputValue:m,isClearable:!0,isMulti:!0,menuIsOpen:!1,onBlur:()=>{m&&f({emails:[...c,m],invitations:[...t,{email:m,name:m.split("@")[0]}],isEmailValid:b(m)})},onChange:y,onInputChange:v,onKeyDown:w,onClear:()=>{d(r),a(r)},placeholder:"Enter an email and hit enter",value:c.map((e=>{return{label:t=e,value:t};var t}))}),p&&n.createElement(l.Text,{color:"error"},p))}},6323:(e,t,a)=>{a.d(t,{d:()=>U});var n=a(58168),l=(a(17333),a(41393),a(98992),a(54520),a(81454),a(62953),a(96540)),o=a(10058),i=a(71847),s=a(13871),r=a(78217),c=a(83179),d=a(4659),m=a(84707),u=a(3914),p=a(14994),g=a(77181),h=a(81048),v=a(15327),f=a(74618),b=a(45765),y=a(27287);const E=e=>{let{id:t,handleDelete:a}=e;const n=(0,g.c)(t,"email");return l.createElement(o.Flex,{justifyContent:"between",alignItems:"center"},l.createElement(o.Flex,{gap:4},l.createElement(o.Icon,{color:"text",name:"check"}),l.createElement(o.Text,null,n)),l.createElement(o.Button,{flavour:"borderless",icon:"trashcan",onClick:()=>a({email:n})}))};var w=a(71835),C=a(49032),I=a(46741),k=a(69756),x=a(36850),S=a(92155),_=a(50876),A=a(63314);const R=e=>{let{email:t}=e;return(0,C.B9)(t)},T=(0,S.A)(o.Button),B={header:"Invitations",text:"Invitations successfully sent!"},U=e=>{let{onClose:t,isSubmodal:a=!1}=e;const{id:C,name:S,slug:U}=(0,u.ap)(),D=(0,p.WW)(),[N,j]=(0,l.useState)(D),[F,L]=(0,l.useState)([]),[V,M]=(0,l.useState)([]),[Z,O]=(0,l.useState)(),{sendLog:z,isReady:P}=(0,_.A)(),[K,H,Y,G]=(0,g.g)(C),[,q]=(0,w.A)(),Q=(0,l.useCallback)((e=>{const{header:a,text:n}=e||B,l=(0,s.UI)({header:a,text:n,success:!0}),o=V.filter(R).map((e=>{let{email:t}=e;return t})).join(",");(0,i.H)("invite","invite-sent","".concat(Z,"::").concat(o,"::").concat(N.join(",")),"","","invite-sent"),r.A.success(l,{context:"manageInvitations"}),t(),P&&z({isSuccess:!0},!0)}),[z,P]),W=(0,I._s)(),J=e=>t=>{let{email:a}=t;e&&H(e),M(V.filter((e=>e.email!==a))),L(F.filter((e=>e.email!==a)))},$=(0,l.useCallback)((()=>{j([])}),[j]),X="member"===Z;return l.createElement(v.GO,{onClose:t,closeOnClickOutside:!1},l.createElement(A.Ay,{feature:"ManageInvitationsModal"},l.createElement(f.z,{onClose:t,isSubmodal:a,title:"Invite Users"}),l.createElement(b.U,null,"Invite users to\xa0",S),l.createElement(v.Yv,null,l.createElement(y.dE,null,"Send invitations to your team"),l.createElement(y.BZ,null,"TIP: You can send more invitations at once, separate each with a comma."),l.createElement(m.y,{invitations:V,setInvitations:M}),l.createElement("br",null),l.createElement(y.dE,null,"Rooms"),l.createElement(o.Flex,{alignItems:"center",justifyContent:"between",margin:[1,0,2]},l.createElement(o.TextSmall,null,"Choose one or more rooms you'd like to invite users to."),!!N.length&&l.createElement(o.Button,{onClick:$,padding:[0],flavour:"borderless","data-ga":"rooms-clear",label:"Clear",small:!0},"Clear")),l.createElement(o.Box,{"data-testid":"invite-selectRoom"},l.createElement(c.A,(0,n.A)({selectedValue:N,onChange:j},X?{formatOptions:e=>{let{name:t}=e;return{isDisabled:t===h.Q8}},filterValues:e=>{let{label:t}=e;return t===h.Q8}}:{}))),l.createElement("br",null),l.createElement(y.dE,null,"Role"),l.createElement(y.BZ,null,"Choose a role for invited user."," ",l.createElement(d.A,{href:x.S,target:"_blank",rel:"noopener noreferrer",Component:o.TextSmall},"Learn more")),l.createElement(o.Box,{"data-testid":"invite-selectRole"},l.createElement(k.A,{availableRoles:W,dataGA:"invite-to-space",dataTestId:"invite-selectRole",onChange:e=>{O(e.target.value)},value:Z})),l.createElement(y.fh,null,l.createElement(T,{label:"Send",onClick:async()=>{const e=V.filter(R).map((e=>({email:e.email,name:e.name,role:Z,roomIDs:N}))),t="".concat(window.location.origin,"/spaces/").concat(U,"/join-space");Y(e,t,{onSuccess:Q,onError:e=>{q(e),z({isFailure:!0,error:e.message},!0)}})},disabled:0===V.length||!Z,flavour:"hollow",isLoading:G,"data-ga":"manage-invitations-modal::click-send::modal-footer"})),l.createElement(o.H5,{margin:[2,0,0]},"Invitations awaiting response"),l.createElement(o.Flex,{column:!0},K.length>0?K.map((e=>l.createElement(E,{key:e,handleDelete:J(e),id:e}))):l.createElement(y.au,null,l.createElement("br",null),l.createElement(y.dE,null,"You haven't invited any users yet."))))))}},27287:(e,t,a)=>{a.d(t,{BZ:()=>r,au:()=>s,dE:()=>o,fh:()=>i});var n=a(8711),l=a(10058);const o=(0,n.default)(l.H5).withConfig({displayName:"styled__StyledH5",componentId:"sc-1kusjmi-0"})(["display:flex;align-items:center;"]),i=n.default.div.withConfig({displayName:"styled__FormRow",componentId:"sc-1kusjmi-1"})(["width:100%;display:flex;flex-flow:row no-wrap;justify-content:flex-end;margin-top:",";"],(0,l.getSizeBy)(2)),s=n.default.div.withConfig({displayName:"styled__StyledUserInvitationEmptyListItem",componentId:"sc-1kusjmi-2"})(["display:flex;flex-flow:column nowrap;align-items:center;"]),r=(0,n.default)(l.TextSmall).withConfig({displayName:"styled__StyledSecondaryText",componentId:"sc-1kusjmi-3"})(["margin:2px 0 8px;"])},36850:(e,t,a)=>{a.d(t,{S:()=>n});const n="https://learn.netdata.cloud/docs/nightly/concepts/role-based-access-model"},69756:(e,t,a)=>{a.d(t,{A:()=>h});a(41393),a(81454);var n=a(96540),l=a(10058),o=a(8711),i=a(80158),s=a(97674),r=a(3914),c=a(4659),d=a(84976),m=a(46741),u=a(27994);const p={admin:"Users with this role can control Spaces, Rooms, Nodes, Users and Billing. They can also access any Room in the Space.",member:"Users with this role can create Rooms and invite other Members. They can only see the Rooms they belong to and all Nodes in the All Nodes room",manager:"Users with this role can manage Rooms and Users. They can access any Room in the Space.",troubleshooter:"Users with this role can use Netdata to troubleshoot, not manage entities. They can access any Room in the Space.",observer:"Users with this role can only view data in specific Rooms.",billing:"Users with this role can handle billing options and invoices."},g=(0,o.default)(l.Flex).withConfig({displayName:"rolePicker__PlanBadge",componentId:"sc-ypuqww-0"})(["pointer-events:auto;"]),h=e=>{let{availableRoles:t,dataGA:a,dataTestId:o,onChange:h,value:v}=e;const f=(0,r.ap)("plan"),b=(0,n.useMemo)((()=>(0,s.L_)(f).map((e=>({isChecked:e===v,isEnabled:t.includes(e),role:e}))).sort(((e,t)=>Number(t.isEnabled)-Number(e.isEnabled)))),[t,s.L_,f,v]),y=(0,m.JT)("billing:ReadAll"),{url:E}=(0,u.A)();return n.createElement(l.Flex,{column:!0,gap:2,"data-testid":"".concat(o,"-roleOptions")},b.map((e=>{let{isChecked:t,isEnabled:s,role:r}=e;const m=s?void 0:"medium",u="troubleshooter"===r?"pro":"business";return n.createElement(l.RadioButton,{key:r,checked:t,"data-ga":"".concat(a,"::select-role-").concat(r,"::global-view"),"data-testid":"".concat(o,"-").concat(r,"Option"),disabled:!s,onChange:h,value:r,alignItems:"start"},n.createElement(l.Flex,{column:!0},n.createElement(l.Flex,{gap:2,alignItems:"center"},n.createElement(l.Text,{opacity:m},(0,i.Zr)(r)),!s&&n.createElement(g,{background:"sideBarMini",border:{side:"all",color:"border"},cursor:"initial",padding:[1],round:!0},n.createElement(c.A,{align:"bottom",as:d.N_,boxProps:{as:l.Flex},color:"text",Component:l.TextMicro,content:"Upgrade your plan in order to use this role","data-ga":"".concat(a,"::click-plan-badge-").concat(u,"::global-view"),disabled:!y,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:E},"Upgrade now!"))),n.createElement(l.TextSmall,{color:"textLite",opacity:m},p[r])))})))}},77181:(e,t,a)=>{a.d(t,{c:()=>f,g:()=>v});a(17333),a(9920),a(41393),a(98992),a(54520),a(3949),a(81454),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(96540),l=a(47444);const o=(0,l.Iz)({key:"invitation",default:{id:"",email:""}}),i=(0,l.Iz)({key:"invitationIds",default:[]});var s=a(26655);const r=e=>e.map((e=>{let{id:t,email:a}=e;return{id:t,email:a}})),c={member:1,admin:2,manager:3,troubleshooter:4,observer:5,billing:6},d=e=>e.map((e=>{let{role:t,...a}=e;if(void 0===c[t])throw new Error("role not found");return{role:c[t],...a}}));a(14905),a(8872);var m=a(78969);const u=e=>{let{data:t,invitations:a}=e;return t.reduce(((e,t,n)=>{var l,o;(o=t.errorMsgKey)&&o===m.vK&&(null!==(l=a[n])&&void 0!==l&&l.email&&e.push(a[n].email));return e}),[])},p=e=>e.length>1,g=(0,l.K0)({key:"spaceInvitationValue",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const l=n(o(t));return a?l[a]:l}}}),h=(0,l.K0)({key:"spaceInvitationsIdsValue",get:e=>t=>{let{get:a}=t;return a(i(e))},set:e=>(t,a)=>{let{set:n}=t,{invitations:l,merge:s}=a;n(i(e),(e=>[...new Set([...e,...l.map((e=>{let{id:t}=e;return t}))])])),l.forEach((e=>{n(o(e.id),(t=>({...s&&t,...e})))}))}}),v=e=>{const t=(0,l.vc)(h(e)),[a,c]=(0,n.useState)(!1),m=(0,l.Zs)((t=>{let{snapshot:a,set:n}=t;return async()=>{if(!(await a.getLoadable(h(e))).length){const{data:t}=await(e=>s.A.get("/api/v2/spaces/".concat(e,"/invitations"),{transform:r}))(e);n(h(e),{invitations:t,merge:!0})}}}),[e]),g=(0,n.useCallback)((async(t,a,n)=>{let{onSuccess:l,onError:o}=n;try{c(!0);const{data:n}=await((e,t,a)=>s.A.post("/api/v1/spaces/".concat(e,"/invitations"),{redirectURI:a,requests:d(t)}))(e,t,a),i=u({data:n,invitations:t});if(i.length&&!p(t))return void(o&&o({message:"User has already joined that space!"}));if(i.length&&p(t)){if(i.length===t.length)return void(o&&o({message:"All of the selected users are already meembers of this space"}));if(l)return void l({header:"Invitations partially send",text:"Some of the selected users are already members of this space"})}l&&l()}catch(i){o&&o(i)}finally{c(!1)}}),[e]),v=(0,l.Zs)((t=>{let{snapshot:a,set:n,reset:l}=t;return async t=>{const r=await a.getPromise(h(e)),c=r.filter((e=>e===t));n(i(e),(e=>{const t=new Set(e);return c.forEach((e=>t.delete(e))),[...t]}));try{await((e,t)=>s.A.delete("/api/v1/spaces/".concat(e,"/invitations"),{params:{invitation_ids:t.join(",")}}))(e,[t]),c.forEach((e=>{l(o(e))}))}catch(d){n(h(e),{invitations:r,merge:!1})}}}),[e]);return(0,n.useEffect)((()=>{m()}),[e]),[t,v,g,a]},f=(e,t)=>(0,l.vc)(g({id:e,key:t}))}}]); \ No newline at end of file
diff --git a/web/gui/v2/3253.89070793921be1288bb5.css b/src/web/gui/v2/6331.89070793921be1288bb5.css
index e5d02668f..e5d02668f 100644
--- a/web/gui/v2/3253.89070793921be1288bb5.css
+++ b/src/web/gui/v2/6331.89070793921be1288bb5.css
diff --git a/src/web/gui/v2/6331.ccfaab2b17a28e1b6aa2.chunk.js b/src/web/gui/v2/6331.ccfaab2b17a28e1b6aa2.chunk.js
new file mode 100644
index 000000000..9db9ec68e
--- /dev/null
+++ b/src/web/gui/v2/6331.ccfaab2b17a28e1b6aa2.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="74fede77-ab5c-40b6-82ed-19acdbef063f",e._sentryDebugIdIdentifier="sentry-dbid-74fede77-ab5c-40b6-82ed-19acdbef063f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6331],{36196:(e,t,n)=>{n.d(t,{A:()=>b});var l=n(58168),a=n(96540),r=n(22332),o=n(10534),i=n(89380),c=n(25369),s=n(39360),u=n(95662),d=n(99891),m=n(49096),p=n(74487),g=n(64131);const h=(0,a.forwardRef)(((e,t)=>{let{width:n,height:r,...o}=e;return a.createElement(i.ChartWrapper,{width:n,height:r},a.createElement(g.N1,(0,l.A)({hasHeader:!1,hasFilters:!1,hasFooter:!1,width:n,height:r},o,{ref:t})))})),E=(0,o.default)(h,{tile:!0}),v={dygraph:g.Ay,easypiechart:d.Ay,gauge:s.Ay,number:m.Ay,groupBoxes:c.Ay,d3pie:u.Ay,bars:p.Ay},x=e=>{const t=(0,r.useChart)(),n=(0,r.useAttributeValue)("sparkline"),o=(0,r.useAttributeValue)("chartLibrary"),i=(0,a.useMemo)((()=>t?n?E:v[o]:null),[t,o,n]);return i?a.createElement(i,(0,l.A)({},e,{chart:t})):null},b=(0,r.withChartProvider)((0,a.memo)(x))},40267:(e,t,n)=>{n.d(t,{A:()=>r});var l=n(96540),a=n(10058);const r=e=>{let{flavour:t,icon:n,children:r}=e;return l.createElement(a.Pill,{icon:n,textProps:{textTransform:"capitalize"},flavour:t},r)}},32089:(e,t,n)=>{n.d(t,{A:()=>o});var l=n(58168),a=n(96540),r=n(10058);const o=e=>{let{vertical:t,color:n="borderSecondary",...o}=e;return a.createElement(r.Box,(0,l.A)({as:"hr",height:t?"100%":"1px"},t?{}:{width:"100%"},{sx:{borderWidth:t?"0px 0px 0px 1px":"1px 0px 0px 0px",borderColor:n,borderStyle:"solid"}},o))}},11164:(e,t,n)=>{n.d(t,{A:()=>v});var l=n(96540),a=n(36196),r=n(63950),o=n.n(r),i=n(10058),c=n(57605),s=n(28738),u=n(3914),d=n(69765),m=n(80925),p=n(47731),g=n(52768);const h=e=>t=>"alert-modal::".concat(e.getAttribute("id"),"::").concat(t),E={width:"108px",height:"77px"},v=e=>{let{instance:t,context:n,isFormattedValueLoaded:r,nodeId:v,status:x,lastStatusChange:b,formattedLastStatusChangeValue:y,lastUpdated:f,spaceId:C,roomId:A,setChartSelected:w=o()}=e;const T=(0,u.vt)();C=C||T;const I=(0,d.ID)();A=A||I;const S=(0,p.J)(),F=(0,m.e)(),k=(0,c.A)();(0,l.useEffect)((()=>(k(),k)),[]);const D=(0,u.dg)(),O=(0,l.useMemo)((()=>{if(!r)return;const e=F.makeChart({attributes:{nodeId:v,contextScope:[n],selectedInstances:t&&v?["".concat(t,"@").concat(v)]:[],id:t,roomId:A,enabledResetRange:!1,overlays:{proceeded:{type:"proceeded"},alarm:{type:"alarm",status:x,value:y,when:b}},host:D?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(C,"/rooms/").concat(A),nodesScope:[v],toolboxElements:[],sparkline:S,hasToolbox:!S},makeTrack:h});return F.getRoot().appendChild(e),e}),[t,r]);return(0,g.Vt)({lastUpdated:f,lastStatusChange:b},r),(0,l.useEffect)((()=>(w((e=>({...e,...O}))),()=>{O&&O.destroy(),w(null)})),[O]),l.createElement(i.Flex,{flex:!1,width:"100%",height:75},r&&O?l.createElement(a.A,{"data-chartid":t,chart:O,hasHeader:!S,hasFooter:!S}):l.createElement(s.A,{iconProps:E,title:"Loading chart..."}))}},33590:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Se});var l=n(96540),a=n(10058),r=(n(62953),n(21875)),o=n(87659),i=n(69765),c=n(36196),s=n(80925),u=n(35243);const d=()=>{const e=(0,l.useRef)(),t=(0,r.vX)().getAttribute("id"),n=(0,i.ID)(),o=(0,u.N)(),d=(0,s.e)(),m=(e=>{const[t,n]=(0,l.useState)(!1),a=(0,l.useMemo)((()=>new IntersectionObserver((e=>{let[t]=e;return n(t.isIntersecting)}))),[e]);return(0,l.useEffect)((()=>(a.observe(e.current),()=>a.disconnect())),[]),t})(e),p=(0,l.useMemo)((()=>{const e=d.makeChart({attributes:{contextScope:[t],height:80,id:t,roomId:n,toolboxElements:[]}});return o.appendChild(e),e}),[o,n,t]);return l.createElement(a.Flex,{ref:e,width:"100%",height:"350px"},m?l.createElement(c.A,{margin:[0,0,2],chart:p,"data-chartid":t,"data-track":p.track("container")}):null)},m=(0,l.memo)(d);var p=n(64118),g=n(11164),h=n(52768),E=n(3914);const v=e=>{let{alertId:t}=e;const n=(0,E.vt)(),o=(0,i.ID)(),[,c]=(0,r.v7)(),{fullyLoaded:s=!1,units:u,lastStatusChangeValue:d,lastStatusChange:m,context:v,instance:x,nodeId:b,status:y,lastUpdated:f,value:C}=(0,p.JL)(t);(0,p.yk)(t,{spaceId:n,roomId:o});const A=(0,h.J4)(C,u),w=(0,h.J4)(d,u);return s?l.createElement(g.A,{id:t,context:v,instance:x,formattedLastValue:A,formattedLastStatusChangeValue:w,lastStatusChange:m,lastUpdated:f,isFormattedValueLoaded:s,nodeId:b,status:y,testid:"alertView",spaceId:n,roomId:o,setChartSelected:c}):l.createElement(a.Flex,{height:"200px"},"Loading chart...")},x=e=>{let{title:t="Chart preview"}=e;const[n,i]=(0,o.A)(!0),c=(0,r.vX)();return l.createElement(a.Flex,{column:!0,gap:2,padding:[2,0]},l.createElement(a.Flex,{gap:1,alignItems:"center",cursor:"pointer",onClick:i},l.createElement(a.Box,null,t),l.createElement(a.Icon,{name:"chevron_down",size:"small",color:"textLite",rotate:n?2:0})),l.createElement(a.Flex,{height:n?"auto":"0px",overflow:"hidden"},null!==c&&void 0!==c&&c.alertId?l.createElement(v,{alertId:c.alertId}):l.createElement(m,null)))};var b=n(58168);n(41393),n(81454);const y=e=>{let{title:t="",showAdvanced:n,children:r,...i}=e;const[c,s]=(0,o.A)(!1);return l.createElement(a.Flex,(0,b.A)({column:!0,gap:2,padding:[2,0]},i),l.createElement(a.Flex,{alignItems:"center",justifyContent:"between"},l.createElement(a.Flex,{alignItems:"center",gap:2},l.createElement(a.Icon,{name:"dot",width:"8px",color:"primary"}),l.createElement(a.Text,{strong:!0},t)),n&&l.createElement(a.Checkbox,{label:"Show advanced",checked:c,onChange:s})),l.createElement(a.Flex,{padding:[0,0,0,4]},l.Children.map(r,(e=>l.isValidElement(e)?l.cloneElement(e,{advanced:c}):e))))},f=e=>{let{isVertical:t,...n}=e;return l.createElement(a.Box,(0,b.A)({as:"hr",height:t?"100%":"1px",width:t?"1px":"100%",sx:{borderWidth:t?"0px 0px 0px 1px":"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}},n))};var C=n(83863);const A=()=>{const{detectionMethod:e,setDetectionMethod:t}=(0,r.aR)();return l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Flex,null,l.createElement(a.ButtonGroup,{items:C.Hv,checked:e,onChange:t})),l.createElement(a.TextSmall,{color:"textLite"},"An alert is triggered whenever a metric crosses a threshold"))};n(17333),n(98992),n(54520);var w=n(63950),T=n.n(w),I=n(53921);const S=e=>l.createElement(I.c.Option,e,l.createElement(a.Flex,{gap:2},l.createElement(a.Checkbox,{checked:e.isSelected}),l.createElement(a.TextSmall,null,e.label))),F=e=>l.createElement(a.Box,{position:"relative"},l.createElement(a.Select,(0,b.A)({components:{Option:S}},e))),k=function(){let{label:e,value:t={},options:n=[],updateState:r=T(),placeholder:o,defaultOption:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{items:c,expression:s}=t,[u,d]=(0,l.useState)(t);(0,l.useEffect)((()=>{r(u)}),[u]);const m=(0,l.useCallback)((e=>{d((t=>({...t,items:e.filter((e=>{let{value:t}=e;return!!t}))})))}),[u,d]),p=(0,l.useCallback)((e=>{let{target:{value:t}}=e;d((e=>({...e,expression:t})))}),[u,d]);return l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Flex,{column:!0,gap:1},e&&l.createElement(a.TextSmall,{strong:!0},e),l.createElement(F,{options:n,value:null!==c&&void 0!==c&&c.length?c.filter((e=>{let{value:t}=e;return t})):i,onChange:m,styles:{size:"tiny"},isDisabled:!1,isMulti:!0,closeMenuOnSelect:!1})),l.createElement(a.TextInput,{value:s||"",onChange:p,placeholder:o||"Type an expression",size:"tiny"}))},D=()=>{const[e]=(0,r.v7)(),t=e.getAttribute&&e.getAttribute("nodes")||[],n=Object.entries(t).map((e=>{let[t,{nm:n}]=e;return{label:n,value:t}})),a={label:"".concat(n.length," ").concat(n.length>1?"Nodes":"Node"),value:""},o=[a,...n],{metrics:{hosts:i},setHosts:c}=(0,r.BO)();return l.createElement(k,{value:i,options:o,updateState:c,defaultOption:a})},O=()=>{const[e]=(0,r.v7)(),t=e.getAttribute&&e.getAttribute("instances")||[],n=Object.entries(t).map((e=>{let[t,{nm:n}]=e;return{label:n,value:t}})),a={label:"".concat(n.length," ").concat(n.length>1?"Instances":"Instance"),value:""},o=[a,...n],{metrics:{charts:i},setCharts:c}=(0,r.BO)();return l.createElement(k,{value:i,options:o,updateState:c,defaultOption:a})},B=()=>{const[e]=(0,r.v7)(),t=e.getAttribute&&e.getAttribute("labels")||[],n=Object.values(t).map((e=>{let{id:t,vl:n=[]}=e;return{label:t,options:n.map((e=>({label:e.id,value:"".concat(t,":").concat(e.id)})))}})),a={label:"".concat(n.length," ").concat(n.length>1?"Labels":"Label"),value:""},o=[a,...n],{metrics:{chartLabels:i},setChartLabels:c}=(0,r.BO)();return l.createElement(k,{value:i,options:o,updateState:c,defaultOption:a})},L=()=>{const{metrics:{os:e},setOs:t}=(0,r.BO)(),n=(0,l.useMemo)((()=>null!==e&&void 0!==e&&e.length?e.filter((e=>{let{value:t}=e;return t})):C.Lf),[e]);return l.createElement(F,{options:C.R8,value:n,onChange:t,styles:{size:"tiny"},isDisabled:!1,isMulti:!0,closeMenuOnSelect:!1})};var V=n(32089);const z=e=>{let{children:t,...n}=e;return l.createElement(a.Flex,(0,b.A)({width:{max:70}},n),t)},N=()=>l.createElement(a.Flex,{gap:2},l.createElement(z,null,l.createElement(D,null)),l.createElement(V.A,{vertical:!0}),l.createElement(z,null,l.createElement(O,null)),l.createElement(V.A,{vertical:!0}),l.createElement(z,null,l.createElement(B,null)),l.createElement(V.A,{vertical:!0}),l.createElement(z,null,l.createElement(L,null))),U=e=>{let{advanced:t}=e;const[n]=(0,r.v7)(),o=n.getAttribute?n.getAttribute("id"):"",{setOn:i}=(0,r.BO)();return(0,l.useEffect)((()=>{i(o)}),[]),l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Flex,{alignItems:"center",gap:2},l.createElement(a.Box,{width:"200px"},l.createElement(a.TextInput,{value:o,onChange:e=>i(e.target.value),disabled:!0,size:"tiny"})),l.createElement(a.Text,null,t?"from":"on"),!t&&l.createElement(a.TextInput,{value:"each system everywhere",onChange:()=>{},disabled:!0,size:"tiny"})),t&&l.createElement(N,null))},M=()=>{const{metrics:{lookup:e},setLookup:t}=(0,r.BO)(),{aggregation:n}=e||{};return l.createElement(a.Select,{options:C.Bo,value:n,onChange:e=>t({aggregation:e}),styles:{minWidth:"80px",size:"tiny"},isDisabled:!1})},R=()=>{const{metrics:{lookup:e},setLookup:t}=(0,r.BO)(),{denoter:n}=e||{};return l.createElement(a.Select,{options:C.Lm,value:n,onChange:e=>t({denoter:e}),styles:{minWidth:"80px",size:"tiny"},isDisabled:!1})},_=()=>{const[e]=(0,r.v7)(),t=(e.getAttribute&&e.getAttribute("dimensionIds")||[]).map((e=>({label:e,value:e}))),n={label:"All Dimensions",value:""},a=[n,...t],{metrics:{lookup:o},setLookup:i}=(0,r.BO)(),{dimensions:c}=o||{},s=(0,l.useMemo)((()=>null!==c&&void 0!==c&&c.length?c.filter((e=>{let{value:t}=e;return t})):n),[c,n.label]);return l.createElement(F,{options:a,value:s,onChange:e=>i({dimensions:e}),styles:{size:"tiny"},isDisabled:!1,isMulti:!0,closeMenuOnSelect:!1})},W=()=>{const{metrics:{lookup:e},setLookup:t}=(0,r.BO)(),{timePeriod:n}=e||{};return l.createElement(a.Select,{options:C.ZE,value:n,onChange:e=>t({timePeriod:e}),styles:{minWidth:"80px",size:"tiny"},isDisabled:!1})},j=()=>{const{metrics:{lookup:e},setLookup:t}=(0,r.BO)(),{options:n}=e||{};return l.createElement(F,{options:C.Ws,value:n,placeholder:"Options",onChange:e=>t({options:e}),styles:{size:"tiny"},isDisabled:!1,isMulti:!0,closeMenuOnSelect:!1})},P=()=>l.createElement(a.Flex,{flexWrap:!0,alignItems:"center",gap:2},l.createElement(a.Text,null,"Evaluate the"),l.createElement(M,null),l.createElement(a.Text,null,"of"),l.createElement(R,null),l.createElement(a.Text,null,"of"),l.createElement(_,null),l.createElement(a.Text,null,"over the last"),l.createElement(W,null),l.createElement(j,null)),J=()=>{const{metrics:{calc:e,units:t},setCalcActive:n,setCalcValue:o,setUnitsValue:i}=(0,r.BO)(),{active:c,value:s}=e||{};return l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Toggle,{labelRight:"Add formula",colored:!0,checked:c,onChange:e=>n(e.target.checked)}),l.createElement(a.Flex,{gap:2},l.createElement(a.Flex,{column:!0,gap:1},l.createElement(a.Text,null,"Formula"),l.createElement(a.Box,{width:"500px"},l.createElement(a.TextInput,{value:s,placeholder:"$this",onChange:e=>o(e.target.value),size:"tiny",disabled:!c}))),l.createElement(a.Flex,{column:!0,gap:1},l.createElement(a.Text,null,"Units"),l.createElement(a.Box,{width:"80px"},l.createElement(a.TextInput,{value:t,onChange:e=>i(e.target.value),size:"tiny",disabled:!c})))))},G=e=>{let{advanced:t}=e;return l.createElement(a.Flex,{column:!0,gap:3},l.createElement(U,{advanced:t}),l.createElement(P,null),t&&l.createElement(J,null))},H=e=>{let{value:t,onChange:n}=e;return l.createElement(a.Select,{options:C.j8,value:t,onChange:n,styles:{size:"tiny"}})};var $=n(40267),Z=n(29217);const K={denoter:C.jV.thresholds.below,value:75},X=e=>{let{recovery:t,onRecoveryThresholdAdd:n,onValueChange:r}=e;const{value:o}=t||{};return t?l.createElement(a.Flex,{alignItems:"center",gap:2},l.createElement(a.Pill,{flavour:"success",hollow:!0,icon:"reload"},"Recovery Threshold"),l.createElement(a.TextInput,{onChange:e=>r(e.target.value),value:o,type:"number",min:0,size:"tiny",metaShrinked:!0,containerStyles:{width:"80px"}}),l.createElement(Z.A,{content:"Remove recovery threshold"},l.createElement(a.Button,{icon:"trashcan",flavour:"borderless",onClick:()=>n(null),iconColor:"textLite",iconSize:"small"}))):l.createElement(a.Button,{label:"Recovery Threshold",icon:"plus",flavour:"borderless",onClick:()=>n(K)})};var Y=n(80158);const q=()=>()=>{},Q=(ee=e=>{let{isEdit:t,alertingConditions:n,setThreshold:r,setRecoveryThreshold:o,type:i,advanced:c,isDisabled:s}=e;const{denoter:u,value:d,recovery:m}=n[i]||{},p=r(i,"denoter"),g=r(i,"value"),h=r(i,"recovery"),E=o(i,"denoter"),v=o(i,"value");return l.createElement(a.Flex,{alignItems:"center",gap:2,height:"34px"},l.createElement(a.Box,null,l.createElement($.A,{width:"80px",flavour:i,textSize:"small"},(0,Y.Zr)(i,!0))),t?l.createElement(a.TextInput,{onChange:e=>g(e.target.value),value:d,size:"tiny",containerStyles:{width:"360px"},metaShrinked:!0}):l.createElement(l.Fragment,null,c&&!s?l.createElement(H,{value:u,onChange:p,isDisabled:s}):l.createElement(a.TextInput,{value:null===u||void 0===u?void 0:u.label,size:"tiny",containerStyles:{width:"160px"},disabled:!0,metaShrinked:!0}),l.createElement(a.TextInput,{onChange:e=>g(e.target.value),value:d,type:"number",min:0,size:"tiny",metaShrinked:!0,containerStyles:{width:"80px"},disabled:s}),c&&!s&&l.createElement(X,{recovery:m,onRecoveryThresholdAdd:h,onDenoterChange:E,onValueChange:v,disabled:s})))},e=>{var t;const n=(0,r.op)(),{alertingConditions:o,setThreshold:i=q}=n||{},c=i(e.type,"isFormula"),s=i(e.type,"value"),u=!(null!==o&&void 0!==o&&null!==(t=o[e.type])&&void 0!==t&&t.isFormula),d=!u,m=(0,l.useCallback)((e=>{let{target:{value:t}}=e;return s(t)}),[s]);return!n.isEdit&&e.advanced?l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Flex,{alignItems:"center",gap:2},l.createElement(a.RadioButton,{checked:u,onChange:()=>c(!1)}),l.createElement(ee,(0,b.A)({},n,e,{isDisabled:!u}))),l.createElement(a.Flex,{alignItems:"center",gap:2},l.createElement(a.RadioButton,{checked:d,onChange:()=>c(!0)}),l.createElement(a.Flex,{column:!0,gap:1},l.createElement(a.Text,null,"Formula"),l.createElement(a.Box,{width:"500px"},l.createElement(a.TextInput,{value:e.value,placeholder:"$this",onChange:m,size:"tiny",disabled:!d}))))):l.createElement(ee,(0,b.A)({},n,e))});var ee;const te=e=>{let{advanced:t}=e;return l.createElement(a.Flex,{column:!0,gap:2},l.createElement(Q,{type:"critical",advanced:t}),l.createElement(V.A,null),l.createElement(Q,{type:"warning",advanced:t}))},ne=e=>{let{label:t="",value:n,onValueChange:r=T(),unit:o,onUnitChange:i=T(),unitsOptions:c=C.WB,isDisabled:s}=e;return l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Text,{color:s?"textLite":"text"},t),l.createElement(a.Flex,{gap:2},l.createElement(a.TextInput,{value:n,onChange:e=>r(e.target.value),type:"number",min:0,size:"tiny",containerStyles:{width:"60px"},disabled:s}),l.createElement(a.Select,{options:c,value:o,onChange:e=>i(e),styles:{size:"tiny"},isDisabled:s})))},le=e=>{let{advanced:t}=e;const{alertingConditions:{interval:{value:n,unit:a}},setIntervalValue:o,setIntervalUnit:i}=(0,r.op)();return l.createElement(ne,{label:"Check interval",value:n,onValueChange:o,unit:a,onUnitChange:i,isDisabled:!t})};var ae=n(8711),re=n(59303);const oe=(0,ae.default)(a.Box).withConfig({displayName:"delayNotification__Grid",componentId:"sc-4dhott-0"})(["display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;"]),ie=()=>{const{alertingConditions:{delayNotification:e},setDelayNotificationActive:t,setDelayNotificationUpValue:n,setDelayNotificationUpUnit:o,setDelayNotificationDownValue:i,setDelayNotificationDownUnit:c,setDelayNotificationMaxDelayValue:s,setDelayNotificationMaxDelayUnit:u,setDelayNotificationMultiplier:d}=(0,r.op)(),{active:m,up:p,down:g,multiplier:h,max:E}=e,v=!m,x=(0,re.m8)(t),b=(0,re.L7)(d);return l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Toggle,{labelRight:"Delay Notification",colored:!0,checked:m,onChange:x}),l.createElement(oe,null,l.createElement(ne,{label:"Initial Delay on Alert Severity Escalation",value:null===p||void 0===p?void 0:p.value,onValueChange:n,unit:null===p||void 0===p?void 0:p.unit,onUnitChange:o,isDisabled:v}),l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Text,{color:v?"textLite":"text"},"Delay Multiplier on successive delays"),l.createElement(a.TextInput,{value:h,onChange:b,type:"number",min:0,step:.1,size:"tiny",containerStyles:{width:"60px"},disabled:v})),l.createElement(ne,{label:"Initial Delay on Alert Severity De-escalation",value:null===g||void 0===g?void 0:g.value,onValueChange:i,unit:null===g||void 0===g?void 0:g.unit,onUnitChange:c,isDisabled:v}),l.createElement(ne,{label:"Limit Maximum Delay",value:null===E||void 0===E?void 0:E.value,onValueChange:s,unit:null===E||void 0===E?void 0:E.unit,onUnitChange:u,isDisabled:v})))},ce=()=>{const{alertingConditions:{agentOptions:e},setAgentOptionsActive:t,setAgentOptionsRepeatNotification:n,setAgentOptionsWarningAlertsDurationValue:o,setAgentOptionsWarningAlertsDurationUnit:i,setAgentOptionsCriticalAlertsDurationValue:c,setAgentOptionsCriticalAlertsDurationUnit:s,setAgentOptionsSendToValue:u,setAgentOptionsSendToClearNotifications:d,setAgentOptionsExecScriptActive:m,setAgentOptionsExecScriptPath:p}=(0,r.op)(),{active:g,off:h,warningAlertsDuration:E,criticalAlertsDuration:v,sendTo:x,execScript:b}=e,y=!g,f=y||h,C=(0,re.m8)(t),A=(0,re.pU)(n,!0),w=(0,re.pU)(d,!0),T=(0,re.L7)(u),I=(0,re.pU)(m),S=(0,re.L7)(p);return l.createElement(a.Flex,{column:!0,gap:2},l.createElement(a.Toggle,{labelRight:"Agent Specific Options",colored:!0,checked:g,onChange:C}),l.createElement(a.Flex,{column:!0,gap:2,width:"100%"},l.createElement(a.Checkbox,{label:"Repeat Alert Notifications",checked:!h,onChange:A,disabled:y}),l.createElement(a.Flex,{gap:4},l.createElement(ne,{label:"Warning Alerts Duration isActive",value:null===E||void 0===E?void 0:E.value,onValueChange:o,unit:null===E||void 0===E?void 0:E.unit,onUnitChange:i,isDisabled:f}),l.createElement(ne,{label:"Critical Alerts Duration isActive",value:null===v||void 0===v?void 0:v.value,onValueChange:c,unit:null===v||void 0===v?void 0:v.unit,onUnitChange:s,isDisabled:f})),l.createElement(a.Flex,{column:!0,gap:1},l.createElement(a.Text,{color:y?"textLite":"text"},"Send to"),l.createElement(Z.A,{content:"Insert space separated roles (already defined on the agent)",align:"top"},l.createElement(a.Flex,{alignItems:"center",gap:2},l.createElement(a.TextInput,{value:null===x||void 0===x?void 0:x.value,placeholder:"Roles",onChange:T,disabled:y,size:"tiny"}),l.createElement(a.Checkbox,{label:"Don't send Clear notifications",checked:!(null!==x&&void 0!==x&&x.clearNotifications),onChange:w,disabled:y})))),l.createElement(a.Flex,{alignItems:"center",gap:4},l.createElement(a.Checkbox,{label:"Custom Exec Script",checked:null===b||void 0===b?void 0:b.active,onChange:I,disabled:y}),l.createElement(a.Box,{width:"500px"},l.createElement(a.TextInput,{value:null===b||void 0===b?void 0:b.path,placeholder:"/path/to/script",onChange:S,disabled:y,size:"tiny"})))))},se=e=>{let{advanced:t}=e;const{alertingConditions:{denoter:n},setMainDenoter:o}=(0,r.op)();return l.createElement(a.Flex,{column:!0,gap:4},l.createElement(a.Flex,{alignItems:"center",gap:2},l.createElement(a.Text,null,"Trigger when the evaluated value is"),l.createElement(H,{value:n,onChange:o}),l.createElement(a.Text,null,"the threshold")),l.createElement(te,{advanced:t}),l.createElement(le,{advanced:t}),t&&l.createElement(l.Fragment,null,l.createElement(ie,null),l.createElement(ce,null)))},ue=()=>{const{templateName:e,templateDescription:t,summary:n,setTemplateName:o,setTemplateDescription:i,setSummary:c}=(0,r.I8)();return l.createElement(a.Flex,{column:!0,gap:2,width:"100%"},l.createElement(a.Flex,{column:!0,gap:1,width:"100%"},l.createElement(a.Text,null,"Alert template Name"),l.createElement(a.TextInput,{value:e,onChange:e=>o(e.target.value),size:"tiny"})),l.createElement(a.Flex,{column:!0,gap:1,width:"100%"},l.createElement(a.Text,null,"Alert template Description"),l.createElement(a.TextInput,{value:t,onChange:e=>i(e.target.value),size:"tiny"}),l.createElement(a.TextSmall,{color:"textLite"},"Select an appropriate Template Description")),l.createElement(a.Flex,{column:!0,gap:1,width:"100%"},l.createElement(a.Text,null,"Alert summary"),l.createElement(a.TextInput,{value:n,onChange:e=>c(e.target.value),size:"tiny",placeholder:"Alert summary ${label:label_name} can be added"}),l.createElement(a.TextSmall,{color:"textLite"},"Add a custom title to receive Alert notifications")))},de=ae.default.div.withConfig({displayName:"styled__StyledTerminalCommand",componentId:"sc-jb3u29-0"})(["display:flex;position:relative;flex-direction:column;color:",";background:",";border:1px solid ",";border-radius:4px;cursor:pointer;overflow-wrap:anywhere;white-space:pre-wrap;padding:16px 16px 24px;width:100%;height:100%;font-family:Courier New,monospace;font-weight:bold;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;overflow-y:auto;"],(0,a.getColor)("primary"),(0,a.getColor)("terminalGreen"),(0,a.getColor)("primary")),me=(0,ae.default)(a.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-jb3u29-1"})(["display:flex;align-self:flex-end;cursor:pointer;position:absolute;bottom:16px;right:16px;"]);var pe=n(18682);const ge=()=>{const[e]=(0,r.$h)(),t=(0,l.useMemo)((()=>(0,re.sS)(e)),[e]);return l.createElement(de,{onClick:(0,pe.C)(t,{text:"Config copied to your clipboard."})},t,l.createElement(me,{name:"copy",size:"small",color:"textLite",onClick:(0,pe.C)(t,{text:"Config copied to your clipboard."})}))};var he=n(54856),Ee=n(4659),ve=n(22292),xe=n(19673),be=n(42728),ye=n(37618),fe=n(68741);const Ce=()=>l.createElement(a.Flex,{column:!0,gap:2,width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},l.createElement(a.Flex,{flexWrap:!0,gap:2,alignItems:"center",justifyContent:"center"},l.createElement(a.Icon,{color:"warning",name:"warning_triangle",height:"16px"}),l.createElement(a.TextBig,null,"This feature is only available to paid plans"),l.createElement(he.A,{Component:a.TextBig})),l.createElement(a.Text,null,"Take a quick look at"," ",l.createElement(Ee.A,{href:"https://learn.netdata.cloud/docs/live-demo",target:"_blank",rel:"noopener noreferrer",Component:a.Text},"one of the demo spaces"),"."),l.createElement(a.Text,null,l.createElement(Ee.A,{href:"https://learn.netdata.cloud/docs/alerting/creating-alerts-with-the-alerts-configuration-manager",target:"_blank",rel:"noopener noreferrer",Component:a.Text},"Checkout the docs")," ","for more information.")),Ae=e=>{let{isAnonymous:t}=e;return l.createElement(a.Flex,{column:!0,gap:2,width:"100%",height:"100%",alignItems:"center",justifyContent:"center",padding:[0,8]},t?l.createElement(l.Fragment,null,l.createElement(a.TextBig,{textAlign:"center"},"Please sign in to unlock this feature"),l.createElement(fe.A,null)):l.createElement(a.TextBig,{textAlign:"center"},"Please go to a space that is on Business plan to unlock this feature."))},we=e=>{let{canViewConfiguration:t}=e;return t?l.createElement(a.Flex,{width:"100%",column:!0,gap:3},l.createElement(a.Text,null,"Configuration"),l.createElement(ge,null)):l.createElement(Ce,null)},Te=(e=>t=>{const{value:n}=(0,xe.JN)(),{slug:a}=n||{},r=!(0,be.Kj)(a);return l.createElement(e,(0,b.A)({canViewConfiguration:r},t))})(we),Ie=e=>{const t=(0,ve.uW)("isAnonymous"),n=(0,E.vt)();return(0,ye.ES)(n)?l.createElement(Ae,{isAnonymous:t}):t?l.createElement(we,(0,b.A)({canViewConfiguration:!0},e)):l.createElement(Te,e)},Se=()=>l.createElement(a.Flex,{gap:3,height:"100%"},l.createElement(a.Flex,{width:"70%",height:"100%",column:!0,gap:2,padding:[2,2,2,0],overflow:{vertical:"auto"}},l.createElement(x,null),l.createElement(f,null),l.createElement(y,{title:"Select the Detection Method"},l.createElement(A,null)),l.createElement(f,null),l.createElement(y,{title:"Select and define the metric to alert on",showAdvanced:!0},l.createElement(G,null)),l.createElement(f,null),l.createElement(y,{title:"Define alerting conditions",showAdvanced:!0},l.createElement(se,null)),l.createElement(f,null),l.createElement(y,{title:"Description"},l.createElement(ue,null))),l.createElement(f,{isVertical:!0}),l.createElement(a.Flex,{width:"30%",padding:[2,0]},l.createElement(Ie,null)))},54856:(e,t,n)=>{n.d(t,{A:()=>u});var l=n(58168),a=n(96540),r=n(84976),o=n(10058),i=n(4659),c=n(46741),s=n(27994);const u=function(){let{containerProps:e={},...t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,c.JT)("billing:ReadAll"),{url:u}=(0,s.A)();return u?a.createElement(o.Flex,(0,l.A)({background:"sideBarMini",border:{side:"all",color:"border"},padding:[1,2],round:!0},e),a.createElement(i.A,(0,l.A)({align:"bottom",as:r.N_,boxProps:{as:o.Flex},color:"text",Component:o.TextMicro,content:n?"Upgrade your plan in order to use this feature":"You have no permissions to manage billing",disabled:!n,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:u},t),"Upgrade now!")):null}},35243:(e,t,n)=>{n.d(t,{G:()=>i,N:()=>o});n(3064),n(98992),n(72577);var l=n(47444),a=n(80925);const r=(0,l.eU)({key:"currentChartsContainerKey",default:null}),o=()=>{const e=(0,a.e)(),t=(0,l.vc)(r);return e&&e.getRoot().getChildren().find((e=>e.match({id:t})))},i=()=>(0,l.lZ)(r)}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/6760.fe4a9b58186542294e85.chunk.js b/src/web/gui/v2/6760.fe4a9b58186542294e85.chunk.js
new file mode 100644
index 000000000..f0360c5cd
--- /dev/null
+++ b/src/web/gui/v2/6760.fe4a9b58186542294e85.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="96eaea1d-bd67-40b3-9c93-6e4dfb78f006",e._sentryDebugIdIdentifier="sentry-dbid-96eaea1d-bd67-40b3-9c93-6e4dfb78f006")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[6760],{96760:(e,t,n)=>{n.r(t),n.d(t,{default:()=>I});var l=n(96540),a=n(8711),d=n(63950),o=n.n(d),r=n(81638),c=n(64473),i=n(10058),m=n(84976),s=n(47762);const f=e=>{let{id:t}=e;const n=(0,s.Zl)(t),a=(0,s.xY)(t,"name");return l.createElement(m.N_,{to:n},l.createElement(i.Flex,{alignItems:"center",gap:1},l.createElement(i.Icon,{name:"node_hollow",color:"primary",size:"small"}),l.createElement(i.Flex,{width:{max:40},overflow:"hidden"},l.createElement(i.Text,{color:"primary",whiteSpace:"nowrap"},a)),l.createElement(i.Icon,{name:"goToNode",color:"primary",size:"small"})))};var b=n(25825),E=n(89879),u=n(60072),h=n(80618),p=n(58010),w=n(17240);const g=e=>{let{id:t}=e;const n=(0,s.xY)(t);return n.loaded?l.createElement(i.Flex,{column:!0,gap:1,overflow:{horizontal:"hidden",vertical:"auto"},padding:[2],width:"100%"},l.createElement(b.A,{node:n}),l.createElement(E.A,{id:t,flavour:"sidebar"}),l.createElement(u.A,{node:n}),l.createElement(h.A,{node:n}),l.createElement(p.A,{node:n}),l.createElement(w.A,{node:n})):null};var y=n(20687);const v=(0,a.default)(i.Tabs).withConfig({displayName:"contents__StyledTabs",componentId:"sc-11zjb7h-0"})(["overflow:hidden;height:100%;"]),_=e=>t=>l.createElement(i.Flex,{column:!0,overflow:"hidden",height:"calc(100% - 80px)",position:"relative",gap:3,padding:[1,0]},l.createElement(e,t)),x=_(g),A=_(y.A),I=e=>{let{id:t,onClose:n=o()}=e;return l.createElement(r.Ay,{width:90,isOpen:!0,header:l.createElement(c.A,{title:l.createElement(f,{id:t}),onClick:n})},l.createElement(i.Flex,{"data-testid":"home-sidebar-tabs",column:!0,overflow:"hidden",height:"100%"},l.createElement(v,{selected:0},l.createElement(i.Tab,{label:l.createElement(i.Text,null,"Info"),small:!0},l.createElement(x,{id:t})),l.createElement(i.Tab,{label:l.createElement(i.Text,null,"Alerts"),small:!0},l.createElement(A,{nodeIds:[t]})))))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/683.95b7a3193b43fd5dbe51.chunk.js b/src/web/gui/v2/683.95b7a3193b43fd5dbe51.chunk.js
new file mode 100644
index 000000000..387e24028
--- /dev/null
+++ b/src/web/gui/v2/683.95b7a3193b43fd5dbe51.chunk.js
@@ -0,0 +1 @@
+!function(){try{var o="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(o._sentryDebugIds=o._sentryDebugIds||{},o._sentryDebugIds[e]="f6b63764-1570-4a70-a7f3-893128b2e506",o._sentryDebugIdIdentifier="sentry-dbid-f6b63764-1570-4a70-a7f3-893128b2e506")}catch(o){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[683],{683:(o,e,t)=>{t.r(e),t.d(e,{Notification:()=>l.Eg,Warning:()=>f,createErrorNotification:()=>l.gi,createNotification:()=>l.UI,default:()=>g,showDashboardCreatedNotification:()=>c.jE,showInvalidDashboardSlugNotification:()=>c.$j,showJoiningSpaceNotification:()=>c.Fw,showNodesNotification:()=>c.AM,showRoomCreationNotification:()=>c.ZM,showRoomsInSpaceNotification:()=>c.mw,showRoomsNotification:()=>c.r0,showSpaceNotification:()=>c.X7,showUsersInRoomNotification:()=>c.R9,showUsersInSpaceNotification:()=>c.sb,toast:()=>d.A});var n=t(58168),r=t(96540),a=t(8711),i=t(10058),s=t(99571),d=t(78217),c=t(24198),l=t(13871);const f=o=>{let{title:e,children:t,...a}=o;return r.createElement(i.Flex,(0,n.A)({column:!0,gap:2,background:"warningBackground",backgroundOpacity:.7,round:!0,padding:[4]},a),e&&r.createElement(i.H3,null,e),t)},g=(0,a.default)((o=>{let{className:e,...t}=o;return r.createElement(i.Box,{className:e},r.createElement(s.N9,(0,n.A)({},t,{closeButton:!1})))})).withConfig({displayName:"notifications__Container",componentId:"sc-8t8ne-0"})([".Toastify__toast-container{position:fixed;width:unset;min-width:400px;max-width:500px;z-index:50;color:",";}.Toastify__toast{padding:0;padding-top:5px;background:",";border:1px solid ",";}.Toastify__toast--error{background:",";border:1px solid ",";}.Toastify__toast--warning{background:",";border:1px solid ",";}.Toastify__toast--success{background:",";border:1px solid ",";}.Toastify__toast-icon{display:none;}.Toastify__toast-body{}.Toastify__progress-bar{bottom:unset;top:0;}.Toastify__progress-bar--success{background-color:",";}.Toastify__progress-bar--error{background-color:",";}"],(0,i.getColor)(["neutral","limedSpruce"]),(0,i.getColor)("elementBackground"),(0,i.getColor)("text"),(0,i.getColor)(["red","lavender"]),(0,i.getColor)("error"),(0,i.getColor)("bright"),(0,i.getColor)("warning"),(0,i.getColor)(["green","frostee"]),(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("error"))}}]); \ No newline at end of file
diff --git a/web/gui/v2/6723.cc9fa5f3bdc0bf3ab2fc.css b/src/web/gui/v2/683.cc9fa5f3bdc0bf3ab2fc.css
index c936073e2..c936073e2 100644
--- a/web/gui/v2/6723.cc9fa5f3bdc0bf3ab2fc.css
+++ b/src/web/gui/v2/683.cc9fa5f3bdc0bf3ab2fc.css
diff --git a/src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js b/src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js
new file mode 100644
index 000000000..45c78eb9d
--- /dev/null
+++ b/src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js
@@ -0,0 +1,2 @@
+/*! For license information please see 7144.72da82bc4f112d1e6d31.chunk.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bf2a9e31-01b1-4115-82c6-3475565dbeca",e._sentryDebugIdIdentifier="sentry-dbid-bf2a9e31-01b1-4115-82c6-3475565dbeca")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7144],{62055:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=h(r(96540)),a=h(r(8711)),o=r(10058),i=v(r(99010)),l=h(r(1249)),u=v(r(24652)),c=r(22332),f=r(96380),d=h(r(33640)),s=r(99506),p=["children","fractionDigits"],m=["children"];function g(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(g=function(e){return e?r:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=g(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function h(e){return e&&e.__esModule?e:{default:e}}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},b.apply(this,arguments)}function y(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var w=(0,a.default)(o.Flex).attrs({position:"relative","data-testid":"chartPopover-dimension",padding:[1,0]}).withConfig({displayName:"dimension__GridRow",componentId:"sc-wluvip-0"})(["display:contents;"]),O=(0,a.default)(i.ColorBar).attrs({position:"absolute",top:0,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"dimension__ColorBackground",componentId:"sc-wluvip-1"})([""]),x={ANOMALY_RATE:"arp",default:"value"},_=function(e){var t=e.children,r=e.fractionDigits,a=void 0===r?0:r,i=y(e,p),l=t.toString().split("."),c=l[0],f=l[1];return n.default.createElement(o.Flex,{alignItems:"center",justifyContent:"end",padding:[0,.5]},n.default.createElement(u.Value,b({},i,{textAlign:"right"}),c),"undefined"!==typeof f&&n.default.createElement(u.Value,i,"."),n.default.createElement(u.Value,b({as:o.Flex,flex:!1,width:1.8*a},i,{textAlign:"left"}),f))},j=function(e){var t=e.children,r=y(e,m);return n.default.createElement(o.Flex,{gap:1,justifyContent:"end"},Object.keys(t).map((function(e){return n.default.createElement(o.Flex,{key:e,border:{size:"1px",side:"all",color:t[e]},round:!0,flex:!1,padding:[0,.5]},n.default.createElement(d.default,{content:f.labels[e]||e},n.default.createElement(u.Value,b({},r,{color:t[e]}),e)))})))};t.default=function(e){var t=e.id,r=e.strong,a=e.rowFlavour,f=e.fullCols,d=(0,c.useVisibleDimensionId)(t),p=(0,c.useChart)().getAttribute("unitsConversionFractionDigits");return n.default.createElement(w,{opacity:d?null:"weak"},n.default.createElement(o.Flex,{alignItems:"center",gap:1,position:"relative",overflow:"hidden"},n.default.createElement(O,{id:t,valueKey:x[a]||x.default,height:"100%"},n.default.createElement(i.default,{id:t})),n.default.createElement(l.default,{padding:[.5,1],flex:!0,id:t,strong:r,fontSize:"1.1em"})),n.default.createElement(u.default,{id:t,strong:r,visible:d,Component:_,fractionDigits:p,color:a===s.rowFlavours.default?"text":"textLite",fontSize:"1.1em"}),f&&n.default.createElement(n.default.Fragment,null,n.default.createElement(u.default,{id:t,strong:r,visible:d,valueKey:"arp",Component:_,fractionDigits:2,color:a===s.rowFlavours.ANOMALY_RATE?"anomalyTextFocus":"anomalyText",fontSize:"1.1em"}),n.default.createElement(u.default,{textAlign:"right",id:t,strong:r,visible:d,valueKey:"pa",Component:j,color:a===s.rowFlavours.ANNOTATIONS?"text":"textLite",fontSize:"1.1em"})))}},99506:(e,t,r)=>{t.__esModule=!0,t.rowFlavours=t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=c(r(8711)),o=r(22332),i=r(10058),l=c(r(75010)),u=c(r(62055));function c(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}var d=a.default.div.withConfig({displayName:"dimensions__Grid",componentId:"sc-x7v8hd-0"})(["display:grid;width:100%;grid-template-columns:",";gap:",";align-items:center;"],(function(e){return"full"===e.cols?"3fr 1fr 1fr 1fr":"5fr 2fr"}),(function(e){return e.gap||0})),s=[null,null],p=function(e){var t=Math.round((e-70)/18);return t<2?2:t},m=function(e){return p(e)/2},g=t.rowFlavours={ANOMALY_RATE:"ANOMALY_RATE",ANNOTATIONS:"ANNOTATIONS",default:"VALUE"},v={ANOMALY_RATE:"anomalyDesc",ANNOTATIONS:"annotationsDesc",default:"valueDesc"},h=function(e){var t=e.height,r=(e.width,(0,o.useChart)()),a=(0,o.useAttributeValue)("hoverX")||s,c=a[0],f=a[1],h=(0,o.usePayload)().data,b=(0,n.useMemo)((function(){var e=r.getClosestRow(c)||h.length-1,n=r.onHoverSortDimensions(e,v[f]||r.getAttribute("dimensionsSort")||v.default)||[];r.getAttribute("selectedDimensions").length>0&&(n=n.filter((function(e){return r.isDimensionVisible(e)})));var a=n.findIndex((function(e){return e===f})),o=n.length,i=Math.floor(function(e,t,r){return e<p(r)||t<m(r)?0:t>e-m(r)?t-(m(r)+(e-t)):t-m(r)}(o,a,t)),l=Math.ceil(function(e,t,r){return e<p(r)?e:t<m(r)?t+m(r)+(m(r)-t):t>e-m(r)?e:t+m(r)}(o,a,t));return[i,l,o,n.slice(i,l)]}),[r,f,c,h,t]),y=b[0],w=b[1],O=b[2],x=b[3],_=g[f]||g.default,j=(0,o.useAttributeValue)("cols");return n.default.createElement(n.default.Fragment,null,n.default.createElement(i.TextNano,{fontSize:"1em",color:"textLite"},y>0?"\u2191"+y+" more values":n.default.createElement(n.default.Fragment,null,"\xa0")),n.default.createElement(d,{gap:"2px",column:!0,cols:j},n.default.createElement(i.TextMicro,{fontSize:"1em",strong:!0},"Dimension"),n.default.createElement(i.TextMicro,{fontSize:"1em",color:_===g.default?"text":"textLite",textAlign:"right"},"Value"," ",n.default.createElement(l.default,{visible:!0,strong:_===g.default,color:_===g.default?"text":"textLite",fontSize:"1em"})),"full"===j&&n.default.createElement(n.default.Fragment,null,n.default.createElement(i.TextMicro,{fontSize:"1em",strong:_===g.ANOMALY_RATE,color:_===g.ANOMALY_RATE?"text":"textLite",textAlign:"right"},"AR %"),n.default.createElement(i.TextMicro,{fontSize:"1em",strong:_===g.ANNOTATIONS,color:_===g.ANNOTATIONS?"text":"textLite",textAlign:"right"},"Info")),x.map((function(e){return n.default.createElement(u.default,{key:e,id:e,strong:f===e,rowFlavour:_,fullCols:"full"===j})}))),n.default.createElement(i.TextNano,{color:"textLite",fontSize:"1em"},w<O?"\u2193"+(O-w)+" more values":n.default.createElement(n.default.Fragment,null,"\xa0")))};t.default=(0,n.memo)(h)},74487:(e,t,r)=>{t.Ay=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=f(r(74113)),o=r(22332),i=f(r(10534)),l=r(89380),u=f(r(99506)),c=["uiName"];function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}var p=(0,n.forwardRef)((function(e,t){var r=e.uiName,i=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,c),f=(0,o.useOnResize)(r),d=f.width,p=f.height;return n.default.createElement(l.ChartWrapper,{ref:t},n.default.createElement(a.default,s({uiName:r,column:!0,gap:.5,position:"relative"},i),n.default.createElement(u.default,{height:p,width:d})))}));t.Ay=(0,i.default)(p,{tile:!0})},74113:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(22332),i=["uiName"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u.apply(this,arguments)}t.default=function(e){var t=e.uiName,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,i),l=(0,o.useChart)(),c=(0,n.useRef)();return(0,n.useLayoutEffect)((function(){return l.getUI(t).mount(c.current),function(){return l.getUI(t)&&l.getUI(t).unmount()}}),[]),n.default.createElement(a.Flex,u({"data-testid":"chartContent",ref:c,height:"100%",width:"100%",overflow:"hidden"},r))}},89031:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=(n=r(8711))&&n.__esModule?n:{default:n},o=r(10058),i=["height","width"];function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c=(0,a.default)(o.Flex).attrs((function(e){var t=e.height,r=void 0===t?"100%":t,n=e.width,a=void 0===n?"100%":n;return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){u(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({"data-testid":"chart",column:!0,position:"relative",round:!0,border:{color:"mainChartBorder",side:"all"},background:"mainChartBg",height:"string"===typeof r?r:r+"px",width:"string"===typeof a?a:a+"px"},function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,i))})).withConfig({displayName:"container__Container",componentId:"sc-sbp2x3-0"})(["::selection{background:transparent;}::-moz-selection{background:transparent;}"]);t.default=c},95662:(e,t,r)=>{t.Ay=void 0;var n=p(r(96540)),a=p(r(8711)),o=r(10058),i=d(r(74113)),l=r(22332),u=d(r(10534)),c=r(89380),f=["uiName"];function d(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}function p(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},m.apply(this,arguments)}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var h=(0,a.default)(o.Flex).withConfig({displayName:"d3pie__StatsContainer",componentId:"sc-7pf92d-0"})(["font-size:",";"],(function(e){return e.fontSize})),b=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),y=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({background:"panelBg",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"d3pie__Skeleton",componentId:"sc-7pf92d-1"})(["animation:"," 1.6s ease-in infinite;"],b),w=(0,n.forwardRef)((function(e,t){var r=e.uiName,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,f),o=(0,l.useAttributeValue)("loaded"),u=(0,l.useOnResize)(r),d=u.width,s=u.height,p=d<s?d:s;return n.default.createElement(c.ChartWrapper,m({alignItems:"center",justifyContent:"center",column:!0,ref:t},a),o?n.default.createElement(h,{position:"relative",width:"100%",height:"100%",fontSize:p/15+"px"},n.default.createElement(i.default,{uiName:r})):n.default.createElement(y,null))}));t.Ay=(0,u.default)(w,{tile:!0})},85546:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=l(r(96540)),a=r(10058),o=r(22332),i=l(r(44597));function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e){var t=e.title,r=e.children;return n.default.createElement(a.Flex,{gap:2},n.default.createElement(a.TextSmall,{color:"textDescription"},t),n.default.createElement(a.Flex,{as:a.TextSmall,background:"elementBackground"},r))};t.default=function(){var e=(0,o.useAttributeValue)("contextScope");return n.default.createElement(i.default,{title:"Plugin and chart context",color:"key","data-testid":"chartDetails-context"},n.default.createElement(u,{title:"Context"},e.join(", ")))}},90276:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=l(r(96540)),a=r(10058),o=r(22332),i=l(r(44597));function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=(0,o.useTitle)(),t=(0,o.useAttributeValue)("info"),r=(0,o.useAttributeValue)("sectionInfo"),l=(0,o.useChart)(),u=function(e){var t=e.target.hash,r=void 0===t?"":t;r.startsWith("#menu")&&(e.preventDefault(),l.sdk.trigger("goToLink",l,r.substr(1)))};return n.default.createElement(i.default,{title:e,color:"key","data-testid":"cartDetails-description"},n.default.createElement(a.TextSmall,{color:"textDescription",dangerouslySetInnerHTML:{__html:r},onClick:u}),n.default.createElement(a.TextSmall,{color:"textDescription",dangerouslySetInnerHTML:{__html:t},onClick:u}))}},93693:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=f(r(96540)),a=f(r(8711)),o=r(10058),i=r(22332),l=f(r(85546)),u=f(r(760)),c=f(r(90276));function f(e){return e&&e.__esModule?e:{default:e}}var d=(0,a.default)(o.Flex).attrs({column:!0,padding:[3,2],gap:3,overflow:{vertical:"auto"},width:"100%",height:"100%"}).withConfig({displayName:"details__Container",componentId:"sc-etnkd0-0"})([""]);t.default=function(){var e=(0,i.useAttributeValue)("nodeName");return n.default.createElement(d,{"data-testid":"chartDetails"},n.default.createElement(c.default,null),e&&n.default.createElement(u.default,null),n.default.createElement(l.default,null))}},44597:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=(n=r(96540))&&n.__esModule?n:{default:n},o=r(10058),i=["icon","title","children"];function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}t.default=function(e){var t=e.icon,r=e.title,n=e.children,u=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,i);return a.default.createElement(o.Flex,l({gap:4},u),t,a.default.createElement(o.Flex,{column:!0,gap:1,flex:"grow",basis:0},a.default.createElement(o.Text,{strong:!0,color:"key"},r),n&&a.default.createElement(o.Flex,{column:!0,gap:1},n)))}},760:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=l(r(96540)),a=r(10058),o=r(22332),i=l(r(44597));function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=(0,o.useAttributeValue)("nodeName");return n.default.createElement(i.default,{title:"Source",color:"key","data-testid":"chartDetails-source"},n.default.createElement(a.TextSmall,{color:"textDescription"},e))}},99891:(e,t,r)=>{t.Ay=void 0;var n=m(r(96540)),a=m(r(8711)),o=r(10058),i=s(r(74113)),l=r(22332),u=s(r(10534)),c=r(89380),f=s(r(62841)),d=["uiName"];function s(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},g.apply(this,arguments)}function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function h(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var b=(0,a.default)(o.Text).withConfig({displayName:"easyPie__Label",componentId:"sc-1c7qdjs-0"})(["line-height:1;font-size:",";",";"],(function(e){return e.fontSize}),(function(e){return e.isFetching&&f.default})),y=function(){var e=(0,l.useLatestConvertedValue)("selected");return n.default.createElement(b,{color:"text",fontSize:"3em",strong:!0},e)},w=function(){var e=(0,l.useUnitSign)();return n.default.createElement(b,{color:"textLite",fontSize:"1.5em"},e)},O=(0,a.default)(o.Flex).attrs({position:"absolute",column:!0,alignContent:"center",justifyContent:"center",gap:2}).withConfig({displayName:"easyPie__StatsContainer",componentId:"sc-1c7qdjs-1"})(["inset:0;text-align:center;font-size:",";"],(function(e){return e.fontSize})),x=function(e){var t=e.size;return n.default.createElement(O,{fontSize:t/15+"px"},n.default.createElement(y,null),n.default.createElement(w,null))},_=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),j=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({background:"borderSecondary",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"easyPie__Skeleton",componentId:"sc-1c7qdjs-2"})(["animation:"," 1.6s ease-in infinite;"],_),P=(0,n.forwardRef)((function(e,t){var r=e.uiName,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,d),o=(0,l.useAttributeValue)("loaded"),u=(0,l.useOnResize)(r),f=u.width,s=u.height,p=f<s?f:s;return n.default.createElement(c.ChartWrapper,{alignItems:"center",ref:t},o?n.default.createElement(i.default,g({uiName:r,position:"relative",justifyContent:"center",alignItems:"center"},a),n.default.createElement(x,{size:p})):n.default.createElement(j,{size:p}))}));t.Ay=(0,u.default)(P,{tile:!0})},6533:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=c(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(10058),i=r(22332),l=(n=r(94069))&&n.__esModule?n:{default:n},u=["labelProps"];function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},f.apply(this,arguments)}function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var m=a.default.createElement(o.TextMicro,{padding:[0,0,2],color:"textLite"},"When aggregating multiple multiple source time-series metrics to one visible dimension on the chart, use the following aggregation function"),g={heading:"Metrics aggregation",body:"View or select the aggregation function applied when multiple source time-series metrics need to be grouped together to be presented as dimensions on this chart."},v=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,u),n=(0,i.useChart)(),o=(0,i.useAttributeValue)("aggregationMethod"),c=function(e){return(0,a.useMemo)((function(){return[{value:"avg",label:"Average",description:"For each point presented, calculate the average of the metrics contributing to it.",short:"AVG()","data-track":e.track("avg")},{value:"sum",label:"Sum",description:"For each point presented, calculate the sum of the metrics contributing to it.",short:"SUM()","data-track":e.track("sum")},{value:"min",label:"Minimum",description:"For each point presented, present the minimum of the metrics contributing to it.",short:"MIN()","data-track":e.track("min")},{value:"max",label:"Maximum",description:"For each point presented, present the maximum of the metrics contributing to it.",short:"MAX()","data-track":e.track("max")}]}),[e])}(n),d=(c.find((function(e){return e.value===o}))||c[0]).short;return a.default.createElement(l.default,f({value:o,onChange:n.updateAggregationMethodAttribute,items:c,"data-track":n.track("aggregate"),dropTitle:m},r,{labelProps:s({secondaryLabel:"the",label:d,title:g.heading,tooltipProps:g},t)}))};t.default=(0,a.memo)(v)},35369:(e,t,r)=>{t.__esModule=!0,t.uniqueColumn=t.minColumn=t.metricsColumn=t.maxColumn=t.labelColumn=t.instancesColumn=t.contributionColumn=t.avgColumn=t.anomalyRateColumn=t.alertsColumn=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=c(r(99010)),i=c(r(75010)),l=r(22332),u=c(r(36112));function c(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}t.labelColumn=function(e){return{id:"label",header:function(){return n.default.createElement(a.TextSmall,{strong:!0},"Name")},size:200,minSize:60,maxSize:800,cell:function(t){var r=t.getValue,i=t.row,c=function(e){return(0,n.useMemo)((function(){return{dimension:"dimensions",node:"nodes",instance:e.intl("instance",2),label:"labels",value:"values",default:"values"}}),[])}((0,l.useChart)());return n.default.createElement(a.Flex,{justifyContent:"between",alignItems:"center",padding:[0,0,0,3*i.depth],width:"100%"},n.default.createElement(a.Flex,{gap:1},n.default.createElement(o.default,{id:i.original.value}),n.default.createElement(a.TextSmall,{strong:!0,onClick:i.original.disabled?void 0:i.getToggleSelectedHandler(),cursor:i.original.disabled?"default":"pointer",whiteSpace:"normal",wordBreak:"break-word"},r())),i.getCanExpand()&&n.default.createElement(u.default,{label:c[i.original.value]||c[e]||c.default,onClick:function(e){i.getToggleExpandedHandler()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},iconRotate:i.getIsExpanded()?2:null,textProps:{fontSize:"10px",color:"textLite"},alignItems:"center"}))}}},t.uniqueColumn=function(){return{id:"unique",header:n.default.createElement(a.TextMicro,{strong:!0},"Unique"),size:45,minSize:30,maxSize:90,cell:function(e){var t=e.getValue;return n.default.createElement(a.TextSmall,{color:"textLite"},t())},sortingFn:"basic"}},t.minColumn=function(){return{id:"min",header:n.default.createElement(a.TextMicro,{strong:!0},"Min ",n.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,r=(0,l.useConverted)(t());return n.default.createElement(a.TextSmall,{color:"textLite"},r)},sortingFn:"basic"}},t.avgColumn=function(){return{id:"avg",header:n.default.createElement(a.TextMicro,{strong:!0},"Avg ",n.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,r=(0,l.useConverted)(t());return n.default.createElement(a.TextSmall,{color:"textLite"},r)},sortingFn:"basic"}},t.maxColumn=function(){return{id:"max",header:n.default.createElement(a.TextMicro,{strong:!0},"Max ",n.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,r=(0,l.useConverted)(t());return n.default.createElement(a.TextSmall,{color:"textLite"},r)},sortingFn:"basic"}},t.instancesColumn=function(){return{id:"instances",header:n.default.createElement(a.TextMicro,{strong:!0},"Instances"),size:60,minSize:30,maxSize:90,cell:function(e){var t,r=e.getValue,o=e.row;if(null==(t=o.original.info)||!t.is)return n.default.createElement(a.TextSmall,{color:"textLite"},r());var i=o.original.info.is,l=i.qr,u=void 0===l?0:l,c=i.sl,f=void 0===c?0:c,d=i.ex,s=void 0===d?0:d;return n.default.createElement(a.Flex,{flex:!0,column:!0,gap:.5},n.default.createElement(a.TextSmall,{color:"textLite"},n.default.createElement(a.TextSmall,{color:"primary"},u)," of ",f+s),n.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:u/(f+s)*100+"%",containerWidth:"100%",border:"none"}))},sortingFn:"basic"}},t.metricsColumn=function(){return{id:"metrics",header:n.default.createElement(a.TextMicro,{strong:!0},"Metrics"),size:80,minSize:60,cell:function(e){var t,r=e.row,o=e.getValue;if(null==(t=r.original.info)||!t.ds)return n.default.createElement(a.TextSmall,{color:"textLite"},o());var i=r.original.info.ds,l=i.qr,u=void 0===l?0:l,c=i.sl,f=void 0===c?0:c,d=i.ex,s=void 0===d?0:d;return n.default.createElement(a.Flex,{flex:!0,column:!0,gap:.5},n.default.createElement(a.TextSmall,{color:"textLite"},n.default.createElement(a.TextSmall,{color:"primary"},u)," of ",f+s),n.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:u/(f+s)*100+"%",containerWidth:"100%",border:"none"}))},sortingFn:"basic"}},t.contributionColumn=function(){return{id:"contribution",header:n.default.createElement(a.TextMicro,{strong:!0},"Vol %"),size:60,minSize:30,maxSize:90,cell:function(e){var t,r=e.row,o=e.getValue;return null!=(t=r.original.info)&&t.sts?n.default.createElement(a.Flex,{flex:!0,column:!0,gap:.5},n.default.createElement(a.TextSmall,{color:"primary"},Math.round(100*(o()+Number.EPSILON))/100,"%"),n.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:o()+"%",containerWidth:"100%",border:"none"})):n.default.createElement(a.TextSmall,{color:"textLite"},o())},sortingFn:"basic"}},t.anomalyRateColumn=function(){return{id:"anomalyRate",header:n.default.createElement(a.TextMicro,{strong:!0},"AR %"),size:60,minSize:30,maxSize:90,cell:function(e){var t,r=e.row,o=e.getValue;return null!=(t=r.original.info)&&t.sts?n.default.createElement(a.Flex,{flex:!0,column:!0,gap:.5},n.default.createElement(a.TextSmall,{color:"textLite"},Math.round(100*(o()+Number.EPSILON))/100,"%"),n.default.createElement(a.ProgressBar,{background:"progressBg",color:"anomalyText",height:2,width:o()+"%",containerWidth:"100%",border:"none"})):n.default.createElement(a.TextSmall,{color:"textLite"},o())},sortingFn:"basic"}},t.alertsColumn=function(){return{id:"alerts",header:n.default.createElement(a.TextMicro,{strong:!0},"Alerts"),size:75,minSize:60,maxSize:90,cell:function(e){var t,r=e.row,o=e.getValue;if(null==(t=r.original.info)||!t.al)return n.default.createElement(a.TextSmall,{color:"textLite"},o());var i=r.original.info.al,l=i.cl,u=void 0===l?0:l,c=i.cr,f=void 0===c?0:c,d=i.wr,s=void 0===d?0:d,p={text:f,flavour:f?"error":"disabledError"},m={text:s,flavour:s?"warning":"disabledWarning"},g={text:u,flavour:u?"clear":"disabledClear"};return n.default.createElement(a.Flex,null,n.default.createElement(a.MasterCard,{pillLeft:p,pillRight:m,pillEnd:g}))},sortingFn:"basic"}}},31866:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=c(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(65562),i=u(r(36112)),l=u(r(34578));function u(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},f.apply(this,arguments)}var d={heading:"Show/hide filters and aggregations"};t.default=function(e){var t=e.labelProps,r=(0,n.useState)(!1),u=r[0],c=r[1],s=(0,o.useChart)(),p=(0,n.useRef)(),m=function(){return c(!1)};return n.default.createElement(a.Flex,null,n.default.createElement(i.default,f({ref:p},t,{onClick:function(){return c((function(e){return!e}))},"data-track":s.track("showConfig"),tooltipProps:d,title:d.heading})),u&&n.default.createElement(a.Modal,{onClickOutside:m,onEsc:m,backdropProps:{backdropBlur:!0}},n.default.createElement(a.ModalContent,null,n.default.createElement(a.ModalHeader,null,"Chart configuration",n.default.createElement(a.ModalCloseButton,{testId:"close-button",onClick:m})),n.default.createElement(a.ModalBody,null,n.default.createElement(a.Flex,{width:80,padding:[3]},n.default.createElement(l.default,{border:!1}))),n.default.createElement(a.ModalFooter,null,n.default.createElement(a.Button,{neutral:!0,label:"Close",onClick:m})))))}},21105:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=(n=r(94069))&&n.__esModule?n:{default:n},l=["labelProps"];function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var p={heading:"Context",body:"View or select the context applied on this chart."},m=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,l),n=(0,o.useChart)(),u=(0,o.useAttributeValue)("contextScope"),f=(0,o.useAttributeValue)("contextItems");if(!f.length)return null;var s=(f.find((function(e){return e.value===u[0]}))||f[0]).label;return a.default.createElement(i.default,c({value:u,onChange:n.updateContextScopeAttribute,items:f,"data-track":n.track("contextScope")},r,{labelProps:d({secondaryLabel:"On",label:s,title:p.heading,tooltipProps:p},t)}))};t.default=(0,a.memo)(m)},65877:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=(n=r(34737))&&n.__esModule?n:{default:n},l=r(96659),u=r(35369),c=["labelProps"];function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}var s={heading:"Dimensions",body:"View or filter the original dimensions contributing time-series metrics to this chart. This menu also presents the contribution of each original dimension on the chart, and a break down of the anomaly rate of the data per dimension."},p=[(0,u.labelColumn)(),(0,u.metricsColumn)(),(0,u.contributionColumn)(),(0,u.anomalyRateColumn)(),(0,u.minColumn)(),(0,u.avgColumn)(),(0,u.maxColumn)()],m=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,c),n=(0,o.useChart)(),u=(0,o.useAttributeValue)("selectedDimensions"),f=(0,o.useAttributeValue)("dimensions"),m=(0,o.useAttributeValue)("dimensionsTotals"),g=(0,a.useCallback)((function(){return Object.keys(f).map((function(e){var t=u.includes(e);return(0,l.getStats)(n,f[e],{key:"dimensions",props:{selected:t}})}))}),[f,u]),v=(0,o.useAttribute)("nodesSortBy"),h=v[0],b=v[1];return a.default.createElement(i.default,d({title:"Dimensions",resourceName:"dimension","data-track":n.track("dimensions"),labelProps:t,onChange:n.updateDimensionsAttribute,getOptions:g,tooltipProps:s,value:u,columns:p,sortBy:h,onSortByChange:b,totals:m},r))};t.default=(0,a.memo)(m)},94069:(e,t,r)=>{t.__esModule=!0,t.default=t.ItemContainer=t.Item=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=m(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=p(r(8711)),o=r(22332),i=r(10058),l=p(r(97517)),u=p(r(73862)),c=p(r(6504)),f=p(r(33640)),d=p(r(36112)),s=["labelProps"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(m=function(e){return e?r:t})(e)}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},g.apply(this,arguments)}function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function h(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var b=t.ItemContainer=(0,a.default)(i.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({as:"li",role:"option",padding:[1,2],gap:1,justifyContent:"between"},e)})).withConfig({displayName:"dropdownSingleSelect__ItemContainer",componentId:"sc-u6ous4-0"})(["cursor:",";opacity:",";align-items:",";"," "," ",""],(function(e){return e.disabled?"default":"pointer"}),(function(e){var t=e.disabled,r=e.stale;return e.selected||!r&&!t?1:.7}),(function(e){return e.alignItems||"center"}),(function(e){var t=e.selected,r=e.theme;return t&&"\n background-color: "+function(e){var t=e.theme;return("Dark"===t.name?(0,i.getRgbColor)(["green","netdata"],.3):(0,i.getRgbColor)(["green","frostee"]))({theme:t})}({theme:r})+";\n "}),(function(e){var t=e.selected,r=e.theme;return!t&&"\n &:hover {\n background-color: "+(0,i.getColor)("borderSecondary")({theme:r})+";\n }\n "}),(function(e){var t=e.justDesc,r=e.theme;return t&&"\n pointer-events: none;\n border-top: 1px solid "+(0,i.getColor)("borderSecondary")({theme:r})+";\n "})),y=t.Item=function(e){var t=e.value,r=e.item,a=e.onItemClick,o=e.itemProps,d=r.value,s=r.label,p=r.description,m=r.justDesc,v=void 0!==m&&m,h=t===d;return n.default.createElement(b,g({},o,{disabled:h,selected:h,onClick:function(){return a(d)},justDesc:v}),n.default.createElement(i.Flex,{column:v,padding:[0,1],alignItems:"start",width:"100%",justifyContent:"between"},!!s&&n.default.createElement(i.Text,null,s,h&&n.default.createElement(c.default,{margin:[-.5,2,-.5,0],width:"14px",height:"14px",color:"primary",svg:l.default})),!!p&&(v?n.default.createElement(i.TextMicro,{color:"textLite"},p):n.default.createElement(f.default,{content:p,zIndex:9999999},n.default.createElement("div",null,n.default.createElement(c.default,{width:"14px",height:"14px",color:"textLite",svg:u.default}))))))},w=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,s),a=(0,o.useAttributeValue)("id");return n.default.createElement(i.Menu,g({},r,{Item:y,dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":a,width:"460px"},dropdownProps:{padding:[0,0,2,0],height:{max:"80vh"}}},r),n.default.createElement(d.default,g({},t,{"data-value":""+(r.value||"No selection")})))};t.default=(0,n.memo)(w)},34737:(e,t,r)=>{t.__esModule=!0,t.meta=t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=s(r(8711)),o=r(10058),i=r(22332),l=s(r(25772)),u=s(r(36112)),c=s(r(4975)),f=["getOptions","onItemClick","close","columns","sortBy","onSortByChange","expanded","onExpandedChange","tableMeta","enableSubRowSelection","value","newValues","totals","emptyMessage","title","filterSelectedCount"],d=["label","labelProps","onChange","getOptions","secondaryLabel","tooltipProps","value","columns","sortBy","onSortByChange","expanded","onExpandedChange","tableMeta","enableSubRowSelection","totals","emptyMessage","resourceName","title","filterSelectedCount"];function s(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},m.apply(this,arguments)}function g(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function b(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var y=(0,a.default)(o.Flex).withConfig({displayName:"dropdownTable__Container",componentId:"sc-194yxs8-0"})(["box-shadow:0 18px 28px ",";list-style-type:none;border-radius:2px;border:1px solid ",";*{box-sizing:border-box;}"],(0,o.getColor)("dropdownShadow"),(0,o.getColor)("borderSecondary")),w=t.meta=function(e,t,r){return{cellStyles:h(h(h({},(null==e||null==e.getIsExpanded?void 0:e.getIsExpanded())&&{background:"columnHighlight",backgroundOpacity:.7}),e.depth>0&&{backgroundOpacity:.4}),e.depth>0&&0===r&&{border:{side:"left",size:"4px"}})}},O=function(){},x=[{id:"contribution",desc:!0}],_={},j=function(e){return e},P=function(e){var t=e.getOptions,r=e.onItemClick,a=(e.close,e.columns),i=e.sortBy,u=e.onSortByChange,d=e.expanded,s=e.onExpandedChange,p=e.tableMeta,v=void 0===p?w:p,b=e.enableSubRowSelection,x=e.value,_=e.newValues,P=e.totals,k=e.emptyMessage,M=e.title,C=e.filterSelectedCount,S=void 0===C?j:C,A=g(e,f),D=(0,n.useMemo)(t,[]),T=(0,n.useState)((function(){return E(D,{})})),L=T[0],N=T[1];(0,n.useEffect)((function(){var e=E(D,{});N((function(t){return(0,l.default)(t,e)?t:e}))}),[]);var I=(0,n.useMemo)((function(){return!!_&&(0,l.default)(x,_)}),[_]),z=(0,n.useMemo)((function(){return null!=_&&_.length?S(_).length:0}),[_]);return n.default.createElement(y,m({role:"listbox",background:"dropdown",padding:[0],margin:[1,0],column:!0,tabindex:"-1",flex:!0},A),n.default.createElement(o.Table,{title:M,background:"dropdownTable",enableResizing:!0,enableSorting:!0,enableSelection:!0,dataColumns:a,data:D,onRowSelected:r,onSearch:O,meta:v,sortBy:i,rowSelection:L,onSortingChange:u,expanded:d,onExpandedChange:s,enableSubRowSelection:b,width:{base:250,max:"80vw"}}),n.default.createElement(o.Flex,{padding:[2],justifyContent:"between",alignItems:"center",border:{side:"top",color:"borderSecondary"}},n.default.createElement(o.Flex,{gap:1,alignItems:"center"},n.default.createElement(o.TextSmall,{color:"textLite"},"Selected ",n.default.createElement(o.TextSmall,{strong:!0},z)," of"," ",n.default.createElement(o.TextSmall,{strong:!0},((null==P?void 0:P.sl)||0)+((null==P?void 0:P.ex)||0)||D.length)),n.default.createElement(o.Button,{padding:[0],flavour:"borderless",width:"auto",height:"auto",cursor:"pointer",color:"primary",onClick:function(){N({}),r([])},disabled:!(null!=_&&_.length)&&!x.length,label:"clear",small:!0}),n.default.createElement(o.Button,{padding:[0],flavour:"borderless",width:"auto",height:"auto",cursor:"pointer",color:"primary",onClick:function(){N(h({},L)),r(x)},disabled:!I,label:"reset",small:!0}),!(null!=_&&_.length)&&!!k&&n.default.createElement(o.TextSmall,{color:"warningText"},k)),P&&n.default.createElement(c.default,m({selected:x},P))))},E=function e(t,r,n){return t.reduce((function(t,r,a){return"undefined"!==typeof n&&(a=n+"."+a),r.selected&&(t[a]=!0),r.children&&e(r.children,t,a),t}),r)};t.default=function(e){var t=e.label,r=e.labelProps,a=e.onChange,l=e.getOptions,f=e.secondaryLabel,s=e.tooltipProps,p=e.value,v=e.columns,h=e.sortBy,b=void 0===h?x:h,y=e.onSortByChange,w=e.expanded,O=void 0===w?_:w,j=e.onExpandedChange,E=e.tableMeta,k=e.enableSubRowSelection,M=e.totals,C=e.emptyMessage,S=e.resourceName,A=e.title,D=e.filterSelectedCount,T=g(e,d),L=(0,n.useState)(!1),N=L[0],I=L[1],z=(0,n.useState)(),W=z[0],F=z[1],B=(0,n.useRef)();(0,n.useEffect)((function(){!N&&W&&(B.current=null,a(W))}),[N]),(0,n.useEffect)((function(){return function(){return B.current&&a(B.current)}}),[]);var V=(0,i.useAttributeValue)("id");return n.default.createElement(o.Menu,m({onChange:function(e){B.current=e,F(e)},hasSearch:!1,closeOnClick:!1,Dropdown:P,dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":V,keepHorizontal:!0,stretch:null},dropdownProps:{height:{max:"60vh"},width:"100%",overflow:"auto",columns:v,getOptions:l,sortBy:b,onSortByChange:y,expanded:O,onExpandedChange:j,tableMeta:E,enableSubRowSelection:k,value:p,totals:M,newValues:W,emptyMessage:C,title:A,filterSelectedCount:D},value:p,onOpen:function(){return I(!0)},onClose:function(){return I(!1)}},T),n.default.createElement(u.default,m({"data-value":p.join("|")||S+" all-selected",secondaryLabel:f,label:t||n.default.createElement(c.default,m({selected:p},M,{resourceName:S,teaser:!0})),title:s.heading,tooltipProps:s},r)))}},75157:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=E(r(96540)),a=r(10058),o=r(22753),i=r(22332),l=E(r(6533)),u=E(r(36495)),c=E(r(65877)),f=E(r(55146)),d=E(r(28119)),s=E(r(21105)),p=E(r(90648)),m=E(r(26482)),g=E(r(67231)),v=E(r(88623)),h=E(r(6885)),b=E(r(64776)),y=(E(r(31866)),E(r(34386))),w=E(r(68317)),O=E(r(10120)),x=E(r(31952)),_=E(r(40813)),j=E(r(49484)),P=E(r(6504));function E(e){return e&&e.__esModule?e:{default:e}}function k(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function M(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?k(Object(r),!0).forEach((function(t){C(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):k(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function C(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var S={secondaryLabel:"The"},A={},D={nodes:{icon:n.default.createElement(P.default,{svg:y.default,color:"textLite",size:"16px"}),padding:[0]},instances:{icon:n.default.createElement(P.default,{svg:w.default,color:"textLite",size:"16px"}),padding:[0]},dimensions:{icon:n.default.createElement(P.default,{svg:O.default,color:"textLite",size:"16px"}),padding:[0]},labels:{icon:n.default.createElement(P.default,{svg:x.default,color:"textLite",size:"16px"}),padding:[0]},config:{icon:n.default.createElement(P.default,{svg:_.default,color:"textLite",size:"12px"}),padding:[.5]},showPostAggregations:{icon:n.default.createElement(P.default,{svg:j.default,color:"textLite",size:"10px"}),padding:[0]}};t.default=function(e){var t=e.plain,r=(0,o.useIsHeatmap)(),y=(0,i.useAttributeValue)("filterElements"),w=(0,i.useAttributeValue)("showPostAggregations");return y?y.map((function(e,t){return n.default.createElement(e,{key:t,showPostAggregations:w})})):t?n.default.createElement(n.default.Fragment,null,n.default.createElement(d.default,{labelProps:D.nodes}),n.default.createElement(f.default,{labelProps:D.instances}),n.default.createElement(c.default,{labelProps:D.dimensions}),n.default.createElement(v.default,{labelProps:D.labels})):w?n.default.createElement(n.default.Fragment,null,n.default.createElement(a.Flex,{padding:[.5],flexWrap:!0,gap:2},n.default.createElement(a.Flex,{alignItems:"center"},n.default.createElement(b.default,{labelProps:D.showPostAggregations}),!r&&n.default.createElement(s.default,null),!r&&n.default.createElement(m.default,{labelProps:{secondaryLabel:"Group by"}}),n.default.createElement(u.default,{labelProps:M({},r?S:A)}),n.default.createElement(a.TextSmall,{color:"textLite",whiteSpace:"nowrap"},"of the:"," ")),n.default.createElement(a.Flex,{round:!0,border:{side:"all",size:"2px",type:"dashed",color:"border"},alignItems:"center"},!r&&n.default.createElement(p.default,{labelProps:{secondaryLabel:"Group by"}}),n.default.createElement(l.default,{labelProps:r?S:A}),n.default.createElement(d.default,null),n.default.createElement(f.default,null),n.default.createElement(c.default,null),n.default.createElement(v.default,null)),n.default.createElement(g.default,null)),n.default.createElement(h.default,null)):n.default.createElement(n.default.Fragment,null,n.default.createElement(a.Flex,{flexWrap:!0},n.default.createElement(b.default,{labelProps:D.showPostAggregations}),!r&&n.default.createElement(s.default,null),!r&&n.default.createElement(p.default,{labelProps:{secondaryLabel:"Group by"}}),n.default.createElement(l.default,{labelProps:r?S:A}),n.default.createElement(d.default,null),n.default.createElement(f.default,null),n.default.createElement(c.default,null),n.default.createElement(v.default,null),n.default.createElement(g.default,null)),n.default.createElement(h.default,null))}},46874:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=(n=r(8711))&&n.__esModule?n:{default:n},o=r(10058);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var u=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({alignItems:"center",border:{side:"bottom",color:"borderSecondary"},overflow:"auto",justifyContent:"between",flex:!1},e)})).withConfig({displayName:"filtersContainer__FiltersContainer",componentId:"sc-1f00tzv-0"})(["&::-webkit-scrollbar{height:0;}"]);t.default=u},90648:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=r(10058),l=(n=r(34737))&&n.__esModule?n:{default:n},u=r(96659),c=r(35369),f=["labelProps"];function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}function p(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var h={heading:"Group by",body:"Slice and dice the source time-series metrics in multiple ways, to get different viewing angles on them. Multiple groupings can be selected at the same time to fine tune the segmentation."},b=[(0,c.labelColumn)("label"),(0,c.uniqueColumn)(),(0,c.metricsColumn)(),(0,c.contributionColumn)(),(0,c.anomalyRateColumn)(),(0,c.minColumn)(),(0,c.avgColumn)(),(0,c.maxColumn)()],y=function(e){var t,r=e.labelProps,n=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,f),c=(0,o.useChart)(),d=(0,o.useAttributeValue)("groupBy"),m=(0,o.useAttributeValue)("groupByLabel"),y=function(e){return(0,a.useMemo)((function(){return[{nm:"node",id:"node",key:"nodes"},{nm:e.intl("instance")+" "+("instance"===e.intl("instance")?"":"(instance)"),id:"instance",key:"instances"},{nm:"dimension",id:"dimension",key:"dimensions"},{nm:"percentage of "+e.intl("instance"),id:"percentage-of-instance",key:"instances"}]}),[])}(c),w=(0,a.useCallback)((function(){var e=c.getAttributes(),t=y.map((function(t){var r=d.includes(t.id);return(0,u.getStats)(c,t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({key:"group-by",childrenKey:"label",props:{contribution:"-",anomalyRate:"-",alerts:"-",min:"-",avg:"-",max:"-",selected:r},childProps:{unique:"-",disabled:"hidden"}},t.key&&{children:Object.values(e[t.key])}))}));return[].concat(p(t),p(Object.keys(e.labels).map((function(t){return(0,u.getStats)(c,e.labels[t],{key:"group-by",childrenKey:"label",props:{getLabel:function(e){return"label: "+(e.nm||t||e.id)},isLabel:!0,selected:m.includes(t)},childProps:{unique:"-",disabled:"hidden"},children:e.labels[t].vl})}))))}),[d,m]);t=(0,a.useMemo)((function(){var e=d.filter((function(e){return"node"!==e})),t=e.map((function(e){return"label"===e?m.length>1?m.length+" labels":m[0]:e}));return e.length<d.length&&t.push("node"),t.join(", ")}),[d,m]);var O=(0,a.useMemo)((function(){return[].concat(p(d),p(m))}),[d,m]),x=(0,o.useAttribute)("groupBySortBy"),_=x[0],j=x[1],P=(0,o.useAttribute)("groupByExpanded"),E=P[0],k=P[1];return a.default.createElement(l.default,s({title:a.default.createElement(i.TextBig,{strong:!0,whiteSpace:"nowrap"},"Group by"),label:t,"data-track":c.track("group-by"),labelProps:r,onChange:c.updateGroupByAttribute,getOptions:w,secondaryLabel:"Group by",tooltipProps:h,value:O,columns:b,enableSubRowSelection:!1,sortBy:_,onSortByChange:j,expanded:E,onExpandedChange:k,emptyMessage:"Deselecting everything will use GROUP BY DIMENSION by default"},n))};t.default=(0,a.memo)(y)},34578:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=u(r(96540)),a=u(r(46874)),o=u(r(75157)),i=u(r(19751)),l=["plain"];function u(e){return e&&e.__esModule?e:{default:e}}t.default=(0,i.default)((function(e){var t=e.plain,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,l);return n.default.createElement(a.default,r,n.default.createElement(o.default,{plain:t}))}))},55146:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=r(20207),l=(n=r(34737))&&n.__esModule?n:{default:n},u=r(96659),c=r(35369),f=["labelProps"];function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}var p=[(0,c.labelColumn)(),(0,c.metricsColumn)(),(0,c.contributionColumn)(),(0,c.anomalyRateColumn)(),(0,c.alertsColumn)(),(0,c.minColumn)(),(0,c.avgColumn)(),(0,c.maxColumn)()],m=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,f),n=(0,o.useChart)(),c=(0,o.useAttributeValue)("selectedInstances"),d=(0,o.useAttributeValue)("instances"),m=(0,o.useAttributeValue)("instancesTotals"),g=(0,a.useCallback)((function(){return Object.keys(d).map((function(e){return(0,u.getStats)(n,d[e],{id:e,key:"instances",props:{selected:c.includes(e)}})}))}),[d,c]),v=(0,o.useAttribute)("instancesSortBy"),h=v[0],b=v[1],y=function(e){return(0,a.useMemo)((function(){return{heading:(0,i.uppercase)(e.intl("instance",2)),body:"View or filter the "+e.intl("instance",2)+" contributing time-series metrics to this chart. This menu also provides the contribution of each "+e.intl("instance")+" to the volume of the chart, and a break down of the anomaly rate of the queried data per "+e.intl("instance")+"."}}),[])}(n);return a.default.createElement(l.default,s({title:(0,i.uppercase)(n.intl("instance",2)),resourceName:"instance","data-track":n.track("instances"),labelProps:t,onChange:n.updateInstancesAttribute,getOptions:g,tooltipProps:y,value:c,columns:p,sortBy:h,onSortByChange:b,totals:m},r))};t.default=(0,a.memo)(m)},36112:(e,t,r)=>{t.__esModule=!0,t.default=t.Container=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=d(r(8711)),o=r(10058),i=d(r(63668)),l=d(r(6504)),u=r(33640),c=["width","open"],f=["icon","secondaryLabel","tertiaryLabel","label","chevron","iconRotate","textProps"];function d(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},p.apply(this,arguments)}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function v(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var b=t.Container=(0,a.default)(o.Flex).attrs((function(e){var t=e.width,r=void 0===t?{max:100}:t,n=e.open,a=h(e,c);return g(g({cursor:"pointer",role:"button",padding:[.5],gap:.5,width:r,alignItems:"center"},n&&{background:"selected"}),a)})).withConfig({displayName:"label__Container",componentId:"sc-1lmmfid-0"})(["&:hover{background:",";}"],(0,o.getColor)("selected")),y=(0,a.default)(o.TextSmall).attrs({whiteSpace:"nowrap",truncate:!0}).withConfig({displayName:"label__StyledLabel",componentId:"sc-1lmmfid-1"})(["flex:1;"]),w=(0,n.forwardRef)((function(e,t){var r=e.icon,a=e.secondaryLabel,u=e.tertiaryLabel,c=e.label,d=e.chevron,s=void 0===d||d,m=e.iconRotate,g=e.textProps,v=h(e,f);return r?n.default.createElement(b,p({ref:t},v),r):n.default.createElement(b,p({ref:t},v),a&&n.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap",truncate:!0},a),n.default.createElement(y,g,c),u&&n.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap",truncate:!0},u),s&&n.default.createElement(l.default,{svg:i.default,size:"12px",color:"textNoFocus",rotate:m}))}));t.default=(0,u.withTooltip)(w,{Content:function(e){var t=e.heading,r=e.body;return n.default.createElement(o.Flex,p({column:!0,gap:1},u.tooltipStyleProps),t&&n.default.createElement(o.TextSmall,{strong:!0},t),r&&n.default.createElement(o.TextSmall,null,r))},align:"top"})},88623:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=(n=r(34737))&&n.__esModule?n:{default:n},l=r(96659),u=r(35369),c=["labelProps"];function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}var s={heading:"Labels",body:"View or filter the contributing time-series labels to this chart. This menu also presents the contribution of each label on the chart, and a break down of the anomaly rate of the data per label."},p=[(0,u.labelColumn)("value"),(0,u.uniqueColumn)(),(0,u.metricsColumn)(),(0,u.contributionColumn)(),(0,u.anomalyRateColumn)(),(0,u.minColumn)(),(0,u.avgColumn)(),(0,u.maxColumn)()],m=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,c),n=(0,o.useChart)(),u=(0,o.useAttributeValue)("selectedLabels"),f=(0,o.useAttributeValue)("labels"),m=(0,o.useAttributeValue)("labelsTotals"),g=(0,a.useCallback)((function(){return Object.keys(f).map((function(e){return(0,l.getStats)(n,f[e],{key:"labels",childrenKey:"values",props:{selected:u.includes(e)},childProps:{unique:"-",parentId:e,getIsSelected:function(t){return u.includes(e+":"+t.id)},getValue:function(t){return e+":"+t.id}},children:f[e].vl})}))}),[f,u]),v=(0,o.useAttribute)("labelsSortBy"),h=v[0],b=v[1],y=(0,o.useAttribute)("labelsExpanded"),w=y[0],O=y[1],x=(0,a.useCallback)((function(e){return e.filter((function(e){return!!e.parentId}))}),[]);return a.default.createElement(i.default,d({title:"Labels",resourceName:"label","data-track":n.track("labels"),labelProps:t,onChange:n.updateLabelsAttribute,getOptions:g,tooltipProps:s,value:u,columns:p,enableSubRowSelection:!0,sortBy:h,onSortByChange:b,expanded:w,onExpandedChange:O,totals:m,filterSelectedCount:x},r))};t.default=(0,a.memo)(m)},28119:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=(n=r(34737))&&n.__esModule?n:{default:n},l=r(96659),u=r(35369),c=["labelProps"];function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}function s(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var m={heading:"Nodes",body:"View or filter the nodes contributing time-series metrics to this chart. This menu also provides the contribution of each node to the volume of the chart, and a break down of the anomaly rate of the queried data per node."},g=[(0,u.labelColumn)("instance"),(0,u.instancesColumn)(),(0,u.metricsColumn)(),(0,u.contributionColumn)(),(0,u.anomalyRateColumn)(),(0,u.alertsColumn)(),(0,u.minColumn)(),(0,u.avgColumn)(),(0,u.maxColumn)()],v=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,c),n=(0,o.useChart)(),u=(0,o.useAttributeValue)("selectedNodes"),f=(0,o.useAttributeValue)("nodes"),p=(0,o.useAttributeValue)("instances"),v=(0,o.useAttributeValue)("nodesTotals"),h=(0,o.useAttributeValue)("selectedInstances"),b=(0,a.useCallback)((function(){return Object.keys(f).map((function(e){var t=u.includes(e);return(0,l.getStats)(n,f[e],{id:e,key:"nodes",childrenKey:"instances",props:{selected:t},childProps:{isInstance:!0,getValue:function(t){return t.id+"@"+e},getIsSelected:function(t){return h.includes(t.id+"@"+e)}},children:Object.keys(p).reduce((function(t,r){return p[r].ni===f[e].ni?[].concat(s(t),[p[r]]):t}),[])})}))}),[f,u,h]),y=(0,o.useAttribute)("nodesSortBy"),w=y[0],O=y[1],x=(0,o.useAttribute)("nodesExpanded"),_=x[0],j=x[1],P=(0,a.useCallback)((function(e){return e.filter((function(e){return!e.isInstance}))}),[]);return a.default.createElement(i.default,d({title:"Nodes",resourceName:"node","data-track":n.track("nodes"),labelProps:t,onChange:n.updateNodesAttribute,getOptions:b,tooltipProps:m,value:u,columns:g,sortBy:w,onSortByChange:O,expanded:_,onExpandedChange:j,enableSubRowSelection:!1,totals:v,filterSelectedCount:P},r))};t.default=(0,a.memo)(v)},36495:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=(n=r(94069))&&n.__esModule?n:{default:n},l=["labelProps"];function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var p={heading:"Metrics post aggregation"},m=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,l),n=(0,o.useChart)(),u=(0,o.useAttributeValue)("postAggregationMethod"),f=function(e){return(0,a.useMemo)((function(){return[{value:"avg",label:"Average",description:"For each aggregated point, calculate the average of the metrics.",short:"AVG()","data-track":e.track("avg")},{value:"sum",label:"Sum",description:"For each aggregated point, calculate the sum of the metrics.",short:"SUM()","data-track":e.track("sum")},{value:"min",label:"Minimum",description:"For each aggregated point, present the minimum of the metrics.",short:"MIN()","data-track":e.track("min")},{value:"max",label:"Maximum",description:"For each aggregated point, present the maximum of the metrics.",short:"MAX()","data-track":e.track("max")}]}),[e])}(n),s=(f.find((function(e){return e.value===u}))||f[0]).short;return a.default.createElement(i.default,c({value:u,onChange:n.updatePostAggregationMethodAttribute,items:f,"data-track":n.track("post-aggregate")},r,{labelProps:d({secondaryLabel:"the",label:s,title:p.heading,tooltipProps:p},t)}))};t.default=(0,a.memo)(m)},26482:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=r(10058),l=(n=r(34737))&&n.__esModule?n:{default:n},u=r(96659),c=r(35369),f=["labelProps"];function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}function p(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var g={heading:"Post group by"},v=[(0,c.labelColumn)("label"),(0,c.uniqueColumn)(),(0,c.metricsColumn)(),(0,c.contributionColumn)(),(0,c.anomalyRateColumn)(),(0,c.minColumn)(),(0,c.avgColumn)(),(0,c.maxColumn)()],h=function(e){var t,r=e.labelProps,n=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,f),c=(0,o.useChart)(),d=(0,o.useAttributeValue)("postGroupBy"),m=(0,o.useAttributeValue)("postGroupByLabel"),h=function(e){return(0,a.useMemo)((function(){return[{nm:"node",id:"node",key:"nodes"},{nm:e.intl("instance")+" "+("instance"===e.intl("instance")?"":"(instance)"),id:"instance",key:"instances"},{nm:"dimension",id:"dimension",key:"dimensions"},{nm:"percentage of "+e.intl("instance"),id:"percentage-of-instance",key:"instances"},{nm:"as single value",id:"selected"}]}),[])}(c),b=(0,a.useCallback)((function(){var e=c.getAttributes(),t=h.map((function(t){var r=d.includes(t.id);return(0,u.getStats)(c,t,{key:"group-by",childrenKey:"label",props:{contribution:"-",anomalyRate:"-",alerts:"-",min:"-",avg:"-",max:"-",selected:r},childProps:{unique:"-",disabled:"hidden"},children:e[t.key]?Object.values(e[t.key]):[]})}));return[].concat(p(t),p(Object.keys(e.labels).map((function(t){return(0,u.getStats)(c,e.labels[t],{key:"group-by",childrenKey:"label",props:{getLabel:function(e){return"label: "+(e.nm||t||e.id)},isLabel:!0,selected:m.includes(t)},childProps:{unique:"-",disabled:"hidden"},children:e.labels[t].vl})}))))}),[d,m]);t=(0,a.useMemo)((function(){var e=d.filter((function(e){return"node"!==e})),t=e.map((function(e){return"label"===e?m.length>1?m.length+" labels":m[0]:e}));return e.length<d.length&&t.push("node"),t.join(", ")||"-"}),[d,m]);var y=(0,a.useMemo)((function(){return[].concat(p(d),p(m))}),[d,m]),w=(0,o.useAttribute)("groupBySortBy"),O=w[0],x=w[1],_=(0,o.useAttribute)("groupByExpanded"),j=_[0],P=_[1];return a.default.createElement(l.default,s({title:a.default.createElement(i.TextBig,{strong:!0,whiteSpace:"nowrap"},"Post group by"),label:t,"data-track":c.track("post-group-by"),labelProps:r,onChange:c.updatePostGroupByAttribute,getOptions:b,secondaryLabel:"Post group by",tooltipProps:g,value:y,columns:v,enableSubRowSelection:!1,sortBy:O,onSortByChange:x,expanded:j,onExpandedChange:P},n))};t.default=(0,a.memo)(h)},6885:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=l(r(96540)),a=l(r(8711)),o=r(10058),i=r(65562);function l(e){return e&&e.__esModule?e:{default:e}}var u=(0,a.default)(o.Button).attrs({flavour:"borderless",label:"Reset",width:"initial",height:"initial",padding:[0,1],title:"Reset Filters",small:!0,neutral:!0}).withConfig({displayName:"reset__StyledButton",componentId:"sc-kilpc3-0"})(["&&{height:initial;font-weight:normal;}"]);t.default=function(){var e=(0,i.useChart)(),t=(0,i.useAttributeValue)("pristine"),r=!Object.keys(t).length;return n.default.createElement(u,{disabled:r,onClick:e.resetPristine,"data-track":e.track("reset")})}},64776:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=i(r(96540)),a=r(65562),o=i(r(36112));function i(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}var u={heading:"Show/hide post aggregations"};t.default=function(e){var t=e.labelProps,r=(0,a.useChart)(),i=(0,a.useAttributeValue)("showPostAggregations");return n.default.createElement(o.default,l({},t,{onClick:function(){return r.updateAttribute("showPostAggregations",!i)},"data-track":r.track("showPostAggregations"),tooltipProps:u,title:u.heading}))}},70419:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=l(r(96540)),a=r(10058),o=l(r(46874)),i=l(r(36112));function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(){return n.default.createElement(o.default,null,n.default.createElement(a.Flex,{gap:1},n.default.createElement(i.default,{width:"90px",background:"borderSecondary",secondaryLabel:"",label:""}),n.default.createElement(i.default,{width:"120px",background:"borderSecondary"}),n.default.createElement(i.default,{width:"100px",background:"borderSecondary"})))}},67231:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=c(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(10058),i=r(22332),l=(n=r(94069))&&n.__esModule?n:{default:n},u=["labelProps"];function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},f.apply(this,arguments)}function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var m={percentile:"95","trimmed-mean":"5","trimmed-median":"5"},g={heading:"Aliases aggregation over time",body:"The percentile or percentage of the data you want to focus for the percentile or trimmed functions selected."},v={heading:"Time aggregation",body:"View or select the aggregation function applied on each time-series metric when the number of points in the database are more than the points your screen resolution provides to present this chart. This function is helpful when viewing long time-frames, like days, weeks or months, to quickly spot anomalies, spikes or dives."},h=a.default.createElement(o.TextMicro,{padding:[0,0,2],color:"textLite"},"When the screen resolution provides less points than the points available of the source time-series metrics, use the following aggregation function over time on each metric to reduce the number of points"),b=function(e){var t=e.labelProps,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,u),n=(0,i.useChart)(),c=(0,i.useAttributeValue)("groupingMethod").match(/[\d.]+|\D+/g)||[],d=c[0],p=void 0===d?"":d,b=c[1],y=void 0===b?"":b,w=(0,i.useAttributeValue)("viewUpdateEvery"),O=(0,i.useAttributeValue)("perTier"),x=function(e,t){void 0===t&&(t=[]);var r=t,n=r[0],o=r.slice(1);return(0,a.useMemo)((function(){return[{value:"min",label:"Minimum",description:"Reveal short dives that would otherwise be smoothed out.",short:"MIN()","data-track":e.track("time-aggregation-min")},{value:"max",label:"Maximum",description:"Reveal short spikes that would otherwise be smoothed out.",short:"MAX()","data-track":e.track("time-aggregation-max")},{value:"average",label:"Mean or Average",description:"Calculate the longer term average, as if data were collected at screen resolution.",short:"AVG()","data-track":e.track("time-aggregation-average")},{value:"sum",label:"Sum",description:"Provide the sum of the points that are aggregated over time. Use it when a sense of volume is needed over the aggregation period. It may not be sensible to use this function on all data types.",short:"SUM()","data-track":e.track("time-aggregation-sum")},Array.isArray(o)&&"undefined"!==typeof(null==n?void 0:n.points)&&{justDesc:!0,description:"The functions below lose accuracy when applied on tiered data, compared to high resolution data. Your current query is "+100*n.points/t.reduce((function(e,t){return e+t.points}),0)+"% high resolution and "+100*o.reduce((function(e,t){return e+t.points}),0)/t.reduce((function(e,t){return e+t.points}),0).toFixed(2)+"% tiered data of lower resolution."},{value:"percentile",label:"Percentile",description:"Provide the maximum value of a percentage of the aggregated points, having the smaller values. The default is p95, which provides the maximum value of the aggregated points after ignoring the top 5% of them.",short:"PERCENTILE()","data-track":e.track("time-aggregation-percentile95")},{value:"trimmed-mean",label:"Trimmed Average or Trimmed Mean",description:"Like average, but first remove a percentage of the extreme high and low values.",short:"TRIMMEAN()","data-track":e.track("time-aggregation-trimmed-mean5")},{value:"median",label:"Median",description:"The middle value of all points that would otherwise be smoothed out. This function works like average, but short extreme dives and spikes influence it significantly less than average.",short:"MEDIAN()","data-track":e.track("time-aggregation-median")},{value:"trimmed-median",label:"Trimmed Median",description:"Like median, but first remove a percentage of the extreme high and low values.",short:"TRIMMEDIAN()","data-track":e.track("time-aggregation-trimmed-median5")},{value:"stddev",label:"Standard deviation",description:"Reveal how far each point lies from the average. A high standard deviation means that values are generally far from the average, while a low standard deviation indicates that values are clustered close to the mean. The result is again in the original units of the data source metric.",short:"STDDEV()","data-track":e.track("time-aggregation-stddev")},{value:"cv",label:"Coefficient of variation or Relative standard deviation",description:"The ratio of the standard deviation to the average. Its use is the same as standard deviation, but expressed as a percentage related to the average. The units change to %.",short:"CV()","data-track":e.track("time-aggregation-cv")},{value:"incremental-sum",label:"Incremental Sum or Delta",description:"Provide the difference between the newest and the oldest values of the aggregated points. Each point will be positive if the trend grows and negative if the trend shrinks.",short:"DELTA()","data-track":e.track("time-aggregation-incremental-sum")},{value:"ses",label:"Single exponential smoothing",description:"Use the aggregated points to produce a forecast of the next value, and reveal the forecasted value. Use it when there are indications that the trend is more predictable using the more recent points than the older ones.",short:"SES()","data-track":e.track("time-aggregation-ses")},{value:"des",label:"Double exponential smoothing",description:"Like single exponential smoothing, but better suited when the aggregated points may have a strong trend.",short:"DES()","data-track":e.track("time-aggregation-des")}].filter(Boolean)}),[e,null==n?void 0:n.points])}(n,O),_=function(e){var t=e.chart,r=e.method;return(0,a.useMemo)((function(){return"percentile"===r?[{value:"25",label:"25th",short:"25th","data-track":t.track("time-aggregation-percentile25")},{value:"50",label:"50th",short:"50th","data-track":t.track("time-aggregation-percentile50")},{value:"75",label:"75th",short:"75th","data-track":t.track("time-aggregation-percentile75")},{value:"80",label:"80th",short:"80th","data-track":t.track("time-aggregation-percentile80")},{value:"90",label:"90th",short:"90th","data-track":t.track("time-aggregation-percentile90")},{value:"95",label:"95th",short:"95th","data-track":t.track("time-aggregation-percentile95")},{value:"97",label:"97th",short:"97th","data-track":t.track("time-aggregation-percentile97")},{value:"98",label:"98th",short:"98th","data-track":t.track("time-aggregation-percentile98")},{value:"99",label:"99th",short:"99th","data-track":t.track("time-aggregation-percentile99")}]:r.includes("trimmed")?[{value:"1",label:"1%",short:"1%","data-track":t.track("time-aggregation-"+r+"1")},{value:"2",label:"2%",short:"2%","data-track":t.track("time-aggregation-"+r+"2")},{value:"3",label:"3%",short:"3%","data-track":t.track("time-aggregation-"+r+"3")},{value:"5",label:"5%",short:"5%","data-track":t.track("time-aggregation-"+r+"5")},{value:"10",label:"10%",short:"10%","data-track":t.track("time-aggregation-"+r+"10")},{value:"15",label:"15%",short:"15%","data-track":t.track("time-aggregation-"+r+"15")},{value:"20",label:"20%",short:"20%","data-track":t.track("time-aggregation-"+r+"20")},{value:"25",label:"25%",short:"25%","data-track":t.track("time-aggregation-"+r+"25")}]:[]}),[t,r])}({chart:n,method:p}),j=(x.find((function(e){return e.value===p}))||x[0]).short,P=_.find((function(e){return e.value===y}))||_[0];return a.default.createElement(o.Flex,null,y&&a.default.createElement(l.default,f({value:y,onChange:function(e){return n.updateTimeAggregationMethodAttribute({alias:e,method:p})},items:_,"data-track":n.track("groupingMethodAlias")},r,{labelProps:s({secondaryLabel:"each as",label:P.short,title:g.heading,tooltipProps:g},t)})),a.default.createElement(l.default,f({value:p,onChange:function(e){return n.updateTimeAggregationMethodAttribute({alias:m[e],method:e})},items:x,"data-track":n.track("groupingMethod"),dropTitle:h},r,{labelProps:s({secondaryLabel:!y&&"each as",tertiaryLabel:"every "+w+"s",label:j,title:v.heading,tooltipProps:v},t)})))};t.default=(0,a.memo)(b)},4975:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=c(r(96540)),a=r(10058),o=c(r(97517)),i=c(r(88335)),l=c(r(6504)),u=r(22332);function c(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.selected,r=void 0===t?[]:t,c=e.qr,f=void 0===c?0:c,d=e.fl,s=void 0===d?0:d,p=e.sl,m=void 0===p?0:p,g=e.ex,v=void 0===g?0:g,h=e.teaser,b=void 0!==h&&h,y=e.resourceName,w=m+v,O=r.length&&r.length<f?r.length:f,x=s>0||b&&f<(r.length||w),_=(b?r.length||w:r.length)||m,j=(0,u.useChart)();return n.default.createElement(a.TextMicro,{color:"textLite"},n.default.createElement(a.TextMicro,{color:b?"text":"primary"},O),b?" ":" queried",!b&&n.default.createElement(l.default,{margin:[-.5,1,-.5,0],width:"14px",height:"14px",color:"primary",svg:o.default}),!!s&&n.default.createElement(n.default.Fragment,null,b?n.default.createElement(a.TextMicro,{color:"errorLite"}," +"):"+ ",n.default.createElement(a.TextMicro,{color:"errorLite"},s),b?" ":"failed ",n.default.createElement(l.default,{margin:[-.5,1,-.5,0],width:"14px",height:"14px",color:"errorLite",svg:i.default})),x&&n.default.createElement(n.default.Fragment,null,"of ",n.default.createElement(a.TextMicro,{color:b?"textLite":"text"},_),b?" ":" selected"),!b&&f!==w&&n.default.createElement(n.default.Fragment,null,"of ",n.default.createElement(a.TextMicro,null,w)," available"),y?j.intl(y,x?_:O):"")}},96659:(e,t)=>{t.__esModule=!0,t.getStats=void 0;var r=["getValue","getLabel","getIsSelected"];function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=function(e,t){return e&&(null==e?void 0:e[t])||0},l=function(e){return e?i(e,"qr")+i(e,"qr")/(i(e,"ex")+i(e,"sl")):"-"},u=function(e){return e?3*i(e,"cr")+2*i(e,"wr")+i(e,"cl"):"-"};t.getStats=function e(t,n,o){var c=void 0===o?{}:o,f=c.id,d=c.key,s=c.childrenKey,p=c.children,m=void 0===p?[]:p,g=c.childProps,v=c.props,h=v.getValue,b=v.getLabel,y=v.getIsSelected,w=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(v,r);return a(a({label:(null==b?void 0:b(n))||n.nm||f||n.id,value:(null==h?void 0:h(n))||f||n.id,"data-track":t.track(d+"-"+(f||n.id||n.nm)),unique:m.length,instances:l(n.is),metrics:l(n.ds),contribution:i(n.sts,"con"),anomalyRate:i(n.sts,"arp"),min:i(n.sts,"min"),avg:i(n.sts,"avg"),max:i(n.sts,"max"),alerts:u(n.al),info:n,selected:(null==y?void 0:y(n))||!1},w),{},{children:m.map((function(r){return e(t,r,{key:d+"-"+s,props:g})}))})}},19751:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=i(r(96540)),a=r(22332),o=i(r(70419));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){return function(t){return(0,a.useInitialLoading)()?n.default.createElement(o.default,t):n.default.createElement(e,t)}}},39360:(e,t,r)=>{t.Ay=void 0;var n=g(r(96540)),a=g(r(8711)),o=r(10058),i=p(r(74113)),l=r(22332),u=p(r(10534)),c=r(89380),f=p(r(62841)),d=["empty","index","uiName"],s=["uiName"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(m=function(e){return e?r:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=m(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function h(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},b.apply(this,arguments)}function y(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var w=(0,a.default)(o.Text).withConfig({displayName:"gauge__Label",componentId:"sc-1o49axm-0"})(["line-height:1;font-size:",";flex:",";",";"],(function(e){return e.fontSize}),(function(e){var t=e.flex;return void 0===t?0:t}),(function(e){return e.isFetching&&f.default})),O=(0,a.default)(w).withConfig({displayName:"gauge__StrokeLabel",componentId:"sc-1o49axm-1"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,o.getColor)("border"),(0,o.getColor)("border"),(0,o.getColor)("border"),(0,o.getColor)("border")),x=function(){var e=(0,l.useLatestConvertedValue)("selected");return n.default.createElement(O,{flex:"2",color:"text",fontSize:"2em",strong:!0},e)},_=function(){var e=(0,l.useUnitSign)();return n.default.createElement(w,{color:"textLite",fontSize:"1em"},e)},j=function(e){var t=e.empty,r=e.index,a=e.uiName,o=y(e,d),i=(0,l.useChart)(),u=i.getUI(a).getMinMax();return n.default.createElement(w,b({color:"textLite",fontSize:"1.3em"},o),t?"-":i.getConvertedValue(u[r]))},P=(0,a.default)(o.Flex).attrs({alignItems:"center",justifyContent:"between",flex:!0}).withConfig({displayName:"gauge__BoundsContainer",componentId:"sc-1o49axm-2"})([""]),E=function(e){var t=e.uiName;return n.default.createElement(P,null,n.default.createElement(j,{index:0,uiName:t}),n.default.createElement(j,{index:1,uiName:t}))},k=(0,a.default)(o.Flex).attrs({position:"absolute",column:!0,alignContent:"center",justifyContent:"center"}).withConfig({displayName:"gauge__StatsContainer",componentId:"sc-1o49axm-3"})(["inset:",";text-align:center;font-size:",";"],(function(e){return e.inset}),(function(e){return e.fontSize})),M=function(e){var t=e.uiName,r=(0,l.useOnResize)(t),a=r.width,o=r.height,i=a<o?a:o;return n.default.createElement(n.default.Fragment,null,n.default.createElement(k,{fontSize:i/15+"px",inset:"50% 15% 0%"},n.default.createElement(_,null)),n.default.createElement(k,{fontSize:i/15+"px",inset:"35% 15% 0%"},n.default.createElement(x,null)),n.default.createElement(k,{fontSize:i/15+"px",inset:"80% "+(100-.8*i*100/a)/2+"% 0%"},n.default.createElement(E,{uiName:t})))},C=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),S=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({background:"borderSecondary",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"gauge__Skeleton",componentId:"sc-1o49axm-4"})(["animation:"," 1.6s ease-in infinite;"],C),A=(0,n.forwardRef)((function(e,t){var r=e.uiName,a=y(e,s),o=(0,l.useAttributeValue)("loaded");return n.default.createElement(c.ChartWrapper,{alignItems:"center",justifyContent:"center",column:!0,ref:t,gap:0},o?n.default.createElement(n.default.Fragment,null,n.default.createElement(i.default,b({uiName:r,position:"relative",justifyContent:"center",alignItems:"center",overflow:"hidden"},a),n.default.createElement("canvas",null)),n.default.createElement(M,{uiName:r})):n.default.createElement(S,null))}));t.Ay=(0,u.default)(A,{tile:!0})},65010:(e,t,r)=>{t.__esModule=!0,t.makeGetColor=t.getWidth=t.default=void 0;var n,a=r(16199),o=r(69982),i=r(33862),l=r(41377),u=(n=r(92084))&&n.__esModule?n:{default:n};function c(){"use strict";c=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",l=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function d(e,t,r,n){var o=t&&t.prototype instanceof b?t:b,i=Object.create(o.prototype),l=new A(n||[]);return a(i,"_invoke",{value:k(e,r,l)}),i}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=d;var p="suspendedStart",m="suspendedYield",g="executing",v="completed",h={};function b(){}function y(){}function w(){}var O={};f(O,i,(function(){return this}));var x=Object.getPrototypeOf,_=x&&x(x(D([])));_&&_!==r&&n.call(_,i)&&(O=_);var j=w.prototype=b.prototype=Object.create(O);function P(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function r(a,o,i,l){var u=s(e[a],e,o);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,i,l)}),(function(e){r("throw",e,i,l)})):t.resolve(f).then((function(e){c.value=e,i(c)}),(function(e){return r("throw",e,i,l)}))}l(u.arg)}var o;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return o=o?o.then(a,a):a()}})}function k(t,r,n){var a=p;return function(o,i){if(a===g)throw new Error("Generator is already running");if(a===v){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var l=n.delegate;if(l){var u=M(l,n);if(u){if(u===h)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===p)throw a=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=g;var c=s(t,r,n);if("normal"===c.type){if(a=n.done?v:m,c.arg===h)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(a=v,n.method="throw",n.arg=c.arg)}}}function M(t,r){var n=r.method,a=t.iterator[n];if(a===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,M(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var o=s(a,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,h;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,h):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function D(t){if(t||""===t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function r(){for(;++a<t.length;)if(n.call(t,a))return r.value=t[a],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return y.prototype=w,a(j,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:y,configurable:!0}),y.displayName=f(w,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,f(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},P(E.prototype),f(E.prototype,l,(function(){return this})),t.AsyncIterator=E,t.async=function(e,r,n,a,o){void 0===o&&(o=Promise);var i=new E(d(e,r,n,a),o);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},P(j),f(j,u,"Generator"),f(j,i,(function(){return this})),f(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=D,A.prototype={constructor:A,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(S),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function a(n,a){return l.type="throw",l.arg=t,r.next=n,a&&(r.method="next",r.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],l=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),h}},t}t.getWidth=function(e,t){var r=void 0===t?{}:t,n=r.aspectRatio,a=r.cellSize,o=(0,l.getRows)(e,n),i=(0,l.getColumns)(o,n);return(0,l.getFullWidth)(i,a)};var f=function(e,t){var r=void 0===t?{}:t,n=r.aspectRatio,a=r.cellSize,o=r.padding,i=(0,l.getRows)(e,n),u=(0,l.getColumns)(i,n);return{width:(0,l.getFullWidth)(u,a),height:(0,l.getFullHeight)(i,a,o),columns:Math.ceil(u)}},d=t.makeGetColor=function(e,t,r){return(0,a.scaleLinear)().domain([e,t]).range(r)};t.default=function(e,t,r,n){var a=c().mark(S),s=r.onMouseenter,p=r.onMouseout;void 0===n&&(n={});var m=n,g=m.cellSize,v=m.cellPadding,h=m.cellStroke,b=void 0===h?2:h,y=m.lineWidth,w=void 0===y?1:y,O=m.colorRange,x=void 0===O?[e.getThemeAttribute("themeGroupBoxesMin"),e.getThemeAttribute("themeGroupBoxesMax")]:O,_=t.getContext("2d"),j=(0,i.createCanvas)(_.width,_.height),P=j.getContext("2d"),E=-1,k=function(){},M=function(){},C=function(){};function S(r,m){var h,y,O,S,A,D,T,L,N;return c().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(h=f(r,n),y=h.width,O=h.height,S=h.columns,y&&O){a.next=6;break}if(!(0,o.unstable_shouldYield)()){a.next=5;break}return void(a.next=5);case 5:return a.abrupt("return");case 6:j.width=parseInt(y),j.height=parseInt(O),P.clearRect(0,0,j.width,j.height),A=e.getAttribute("min"),D=e.getAttribute("max"),T=d(A,D,x),L=function(t,r,n){t.beginPath(),t.fillStyle=T(e.getRowDimensionValue(r,m));var a=(0,l.getXPosition)(S,n,g),o=(0,l.getYPosition)(S,n,g);w&&b&&t.clearRect(a-w,o-w,(0,l.getCellBoxSize)(g,v)+b,(0,l.getCellBoxSize)(g,v)+b),t.fillRect(a,o,(0,l.getCellBoxSize)(g,v),(0,l.getCellBoxSize)(g,v))},N=0;case 14:if(!(N<r.length)){a.next=22;break}if(L(P,r[N],N),!(0,o.unstable_shouldYield)()){a.next=19;break}return void(a.next=19);case 19:++N,a.next=14;break;case 22:k(),C(),(0,i.copyCanvas)(j,t),C=(0,u.default)(t,S,r.length,{onMouseenter:s,onMouseout:p},n),k=function(){return-1!==E&&L(_,r[E],E)},M=function(e){k(),E=e;var t=(0,l.getXPosition)(S,e,g),r=(0,l.getYPosition)(S,e,g);w&&b&&(_.lineWidth=w,_.strokeStyle="#fff",_.strokeRect(t+w,r+w,(0,l.getCellBoxSize)(g,v)-b,(0,l.getCellBoxSize)(g,v)-b))};case 28:case"end":return a.stop()}}),a)}return{clear:function(){k(),C(),_.clearRect(0,0,t.width,t.height),P.clearRect(0,0,j.width,j.height)},update:S,activateBox:function(e){return M(e)},deactivateBox:function(){return k()}}}},92084:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(41377);t.default=function(e,t,r,a,o){var i=a.onMouseenter,l=a.onMouseout,u=void 0===o?{}:o,c=u.cellSize,f=u.cellPadding,d=-1,s=function(r){var a=e.getBoundingClientRect(),o=(0,n.getXPosition)(t,r,c),i=(0,n.getYPosition)(t,r,c),l=a.left+o,u=a.top+i,d=(0,n.getCellBoxSize)(c,f);return{index:r,left:l,top:u,right:l+d,bottom:u+d,width:d,height:d,offsetX:o,offsetY:i}},p=function(){l(s(d)),d=-1},m=function(e){var a=e.offsetX,o=e.offsetY,l=(0,n.getOffsetPosition)(a,c),u=(0,n.getOffsetPosition)(o,c)*t+l;u!==d&&(-1!==d&&p(),u>=r||(i(s(u)),d=u))};return e.addEventListener("mousemove",m),e.addEventListener("mouseout",p),function(){e.removeEventListener("mousemove",m),e.removeEventListener("mouseout",p)}}},7365:(e,t,r)=>{t.__esModule=!0,t.default=t.Container=void 0;var n=l(r(96540)),a=r(10058),o=l(r(93658)),i=l(r(66788));function l(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u.apply(this,arguments)}var c=t.Container=function(e){return n.default.createElement(a.Flex,u({border:{side:"top",color:"borderSecondary"},"data-testid":"chartLegend",column:!0,position:"relative"},e))};t.default=function(){return n.default.createElement(c,null,n.default.createElement(o.default,null),n.default.createElement(a.Flex,{alignItems:"center",padding:[2]},n.default.createElement(i.default,null)))}},66788:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=l(r(96540)),a=l(r(8711)),o=r(10058),i=r(22332);function l(e){return e&&e.__esModule?e:{default:e}}var u=(0,a.default)(o.Flex).attrs({width:{max:"320px",base:"100%"},height:"12px",round:!0}).withConfig({displayName:"legend__LinearColorScaleBar",componentId:"sc-1iit0cq-0"})(["background:linear-gradient( to right,",","," );"],(function(e){return e.minColor}),(function(e){return e.maxColor}));t.default=function(){var e=(0,i.useChart)(),t=(0,i.useAttributeValue)("min"),r=(0,i.useAttributeValue)("max"),a=(0,i.useUnitSign)(),l=(0,i.useAttributeValue)("selectedContexts").join(", "),c=(0,i.useAttributeValue)("contextScope").join(", ");(0,i.useAttributeValue)("theme");var f=e.getThemeAttribute("themeGroupBoxesMin"),d=e.getThemeAttribute("themeGroupBoxesMax");return n.default.createElement(o.Flex,{"data-testid":"groupBox-legend",gap:4,alignItems:"center"},n.default.createElement(o.TextNano,{strong:!0},l&&"*"!==l?l:c),n.default.createElement(o.Flex,{gap:2,alignItems:"center"},n.default.createElement(o.TextNano,null,e.getConvertedValue(t)," ",a),n.default.createElement(u,{minColor:f,maxColor:d}),n.default.createElement(o.TextNano,null,e.getConvertedValue(r)," ",a)))}},25069:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(22332),o=s(r(39912)),i=s(r(65010)),l=s(r(39600)),u=s(r(8367)),c=["uiName","dimensions","groupLabel"],f=["index"],d=["index"];function s(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(){"use strict";m=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",l=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function f(e,t,r,n){var o=t&&t.prototype instanceof b?t:b,i=Object.create(o.prototype),l=new A(n||[]);return a(i,"_invoke",{value:k(e,r,l)}),i}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var s="suspendedStart",p="suspendedYield",g="executing",v="completed",h={};function b(){}function y(){}function w(){}var O={};c(O,i,(function(){return this}));var x=Object.getPrototypeOf,_=x&&x(x(D([])));_&&_!==r&&n.call(_,i)&&(O=_);var j=w.prototype=b.prototype=Object.create(O);function P(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function r(a,o,i,l){var u=d(e[a],e,o);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,i,l)}),(function(e){r("throw",e,i,l)})):t.resolve(f).then((function(e){c.value=e,i(c)}),(function(e){return r("throw",e,i,l)}))}l(u.arg)}var o;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return o=o?o.then(a,a):a()}})}function k(t,r,n){var a=s;return function(o,i){if(a===g)throw new Error("Generator is already running");if(a===v){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var l=n.delegate;if(l){var u=M(l,n);if(u){if(u===h)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===s)throw a=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=g;var c=d(t,r,n);if("normal"===c.type){if(a=n.done?v:p,c.arg===h)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(a=v,n.method="throw",n.arg=c.arg)}}}function M(t,r){var n=r.method,a=t.iterator[n];if(a===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,M(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var o=d(a,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,h;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,h):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function D(t){if(t||""===t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function r(){for(;++a<t.length;)if(n.call(t,a))return r.value=t[a],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return y.prototype=w,a(j,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:y,configurable:!0}),y.displayName=c(w,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,c(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},P(E.prototype),c(E.prototype,l,(function(){return this})),t.AsyncIterator=E,t.async=function(e,r,n,a,o){void 0===o&&(o=Promise);var i=new E(f(e,r,n,a),o);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},P(j),c(j,u,"Generator"),c(j,i,(function(){return this})),c(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=D,A.prototype={constructor:A,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(S),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function a(n,a){return l.type="throw",l.arg=t,r.next=n,a&&(r.method="next",r.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],l=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),h}},t}function g(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}t.default=function(e){var t=e.uiName,r=e.dimensions,s=e.groupLabel,p=g(e,c),v=(0,a.useChart)(),h=(0,n.useRef)(),b=(0,n.useRef)(),y=(0,n.useRef)(),w=(0,n.useState)(null),O=w[0],x=w[1],_=(0,n.useRef)(-1),j=(0,n.useRef)();(0,n.useLayoutEffect)((function(){return y.current=(0,i.default)(v,b.current,{onMouseenter:function(e){var t=e.index,r=g(e,f);_.current=t,y.current.activateBox(t),j.current=setTimeout((function(){x({target:{getBoundingClientRect:function(){return r}},index:t})}),100)},onMouseout:function(){_.current=-1,clearTimeout(j.current),requestAnimationFrame((function(){x((function(e){return-1===_.current||_.current!==(null==e?void 0:e.index)?(y.current.deactivateBox(),_.current=-1,null):e}))}))},onClick:function(e){void 0===e&&(e={});var t=e,r=t.index,n=g(t,d);_.current=r,y.current.activateBox(r),j.current=setTimeout((function(){x({target:{getBoundingClientRect:function(){return n}},index:r})}),100)}},p),function(){return y.current.clear()}}),[]);var P=(0,l.default)(t),E=(0,o.default)(),k=E[1],M=E[2],C=(0,a.useAttributeValue)("theme");(0,n.useLayoutEffect)((function(){return k(m().mark((function e(){return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return O&&h.current&&h.current[O.index]!==r[O.index]&&(y.current.deactivateBox(),x(null),_.current=-1),h.current=r,e.delegateYield(y.current.update(r,P),"t0",3);case 3:case"end":return e.stop()}}),e)}))),function(){return M()}}),[P,k,M,C]);var S=(0,n.useMemo)((function(){if(O){var e=r[O.index].split(",");return e[e.length-1]}}),[r[null==O?void 0:O.index]]);return n.default.createElement(n.Fragment,null,n.default.createElement("canvas",{"data-testid":"groupBox",ref:b}),O&&n.default.createElement(u.default,{target:O.target,label:S,groupLabel:s,data:P,id:r[O.index]}))}},28805:(e,t,r)=>{t.__esModule=!0,t.default=t.SkeletonIcon=void 0;var n=s(r(96540)),a=s(r(8711)),o=r(10058),i=r(22332),l=f(r(93693)),u=f(r(25069)),c=f(r(5702));function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function s(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var g=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),v=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){m(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({background:"borderSecondary",flex:!0,height:50},e)})).withConfig({displayName:"groupBoxes__Skeleton",componentId:"sc-1m75n17-0"})(["animation:"," 1.6s ease-in infinite;"],g),h=t.SkeletonIcon=function(){var e=(0,i.useLoadingColor)();return n.default.createElement(v,{background:e})},b=function e(t){var r=t.uiName,a=t.subTree,l=t.data,c=t.label,f=t.groupedBy,d=t.hasMore,s=Object.values(a),p=f[0],m=f.slice(1),g=(0,i.useColor)("themeBackground");return n.default.createElement(o.Flex,{"data-testid":"groupBoxWrapper",column:!0,alignItems:"start",gap:1,margin:[0,3,3,0],border:!!d&&{color:"borderSecondary",side:"all"},round:d,padding:d?[2]:[0],position:"relative"},n.default.createElement(o.Box,d&&{position:"absolute",top:"-12px",left:1,background:g,padding:[0,1]},n.default.createElement(o.TextMicro,{strong:d,"data-testid":"groupBoxWrapper-title",whiteSpace:"nowrap"},c,l.length>3&&n.default.createElement("span",null,"(",s.length,")"))),m.length?Object.keys(a).map((function(t){return n.default.createElement(e,{key:t,label:t,subTree:a[t],data:l,uiName:r,groupedBy:m,hasMore:m.length>1})})):n.default.createElement(u.default,{dimensions:s,groupLabel:c,uiName:r,groupKey:p}))},y=function(e){var t=e.uiName,r=(0,c.default)(t),a=r.data,u=r.tree,f=(0,i.useAttributeValue)("loaded"),d=(0,i.useAttributeValue)("showingInfo"),s=(0,i.useAttributeValue)("viewDimensions").grouped_by||[],p=s[0],m=s.slice(1);return f?n.default.createElement(o.Flex,{"data-testid":"groupBoxes",flexWrap:!0,flex:!0,position:"relative",height:{min:"150px"}},d?n.default.createElement(l.default,null):m.length?Object.keys(u).map((function(e){return n.default.createElement(b,{key:e,label:e,subTree:u[e],data:a,uiName:t,groupedBy:m,hasMore:m.length>1})})):n.default.createElement(b,{key:p,label:p,subTree:u,data:a,uiName:t,groupedBy:m})):n.default.createElement(h,null)};t.default=(0,n.memo)(y)},25369:(e,t,r)=>{t.Ay=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=v(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=g(r(51365)),o=g(r(18121)),i=g(r(10534)),l=r(22332),u=g(r(74113)),c=g(r(75200)),f=g(r(34578)),d=g(r(89031)),s=g(r(28805)),p=g(r(7365)),m=["uiName"];function g(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(v=function(e){return e?r:t})(e)}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},h.apply(this,arguments)}var b=(0,n.forwardRef)((function(e,t){var r=e.uiName,i=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,m),g=(0,l.useChart)(),v=(0,o.default)({onHover:g.focus,onBlur:g.blur,isOut:function(e){return!e||!e.closest('[data-toolbox="'+g.getId()+'"]')&&!e.closest('[data-chartid="'+g.getId()+'"]')}},[g]),b=(0,a.default)((function(e){v.current=e,t&&(t.current=e)}))[1],y=(0,l.useAttributeValue)("showingInfo"),w=(0,l.useAttributeValue)("focused");return n.default.createElement(d.default,h({ref:b},i),n.default.createElement(c.default,null),n.default.createElement(f.default,{opacity:w?1:.7}),n.default.createElement(u.default,{uiName:r,column:!0,gap:4,padding:[4,2]},n.default.createElement(s.default,{uiName:r})),!y&&n.default.createElement(p.default,null))}));t.Ay=(0,i.default)(b)},8367:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=f(r(40961)),o=r(22332),i=f(r(93331)),l=f(r(22007)),u=f(r(44862)),c=f(r(9408));function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}var s={right:"left",bottom:"top"},p={right:"left",top:"bottom"},m={left:"right",bottom:"top"},g={left:"right",top:"bottom"};t.default=function(e){var t=e.target,r=e.label,f=e.groupLabel,d=e.data,v=e.id,h=(0,n.useRef)(),b=(0,n.useRef)(),y=(0,n.useState)(g),w=y[0],O=y[1];b.current=(0,l.default)(t,h,w,"width"),(0,n.useEffect)((function(){if(null!=t&&t.getBoundingClientRect&&h.current){var e=t.getBoundingClientRect(),r=e.right,n=e.bottom,a=window.innerHeight,o=window.innerWidth,i=h.current.getBoundingClientRect(),l=i.width,u=i.height;O(function(e,t){return e&&t?s:e?p:t?m:g}(r+l>o,n+u>a))}}),[t]),(0,n.useEffect)((function(){b.current()}),[w]);var x=(0,u.default)(),_=(0,o.useAttributeValue)("id");return a.default.createPortal(n.default.createElement(i.default,{"data-toolbox":_,ref:h,width:{max:"100%"},column:!0,"data-testid":"drop",sx:{pointerEvents:"none"}},n.default.createElement(c.default,{"data-testid":"chartPopover",label:r,groupLabel:f,data:d,id:v})),x)}},70741:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=i(r(96540)),a=i(r(8711)),o=r(10058);function i(e){return e&&e.__esModule?e:{default:e}}var l=(0,a.default)(o.Flex).attrs({"data-testid":"chartPopover-label"}).withConfig({displayName:"label__GridRow",componentId:"sc-1j7ox7-0"})(["display:contents;"]);t.default=function(e){var t=e.label,r=e.value;return n.default.createElement(l,null,n.default.createElement(o.TextMicro,{padding:[1,0]},t),n.default.createElement(o.TextSmall,{strong:!0},(null==r?void 0:r.join(", "))||"-"))}},9408:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=c(r(8711)),o=r(10058),i=r(22332),l=r(99010),u=c(r(70741));function c(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}var d=(0,a.default)(o.Flex).attrs((function(e){return{round:!0,border:{side:"all",color:"elementBackground"},width:{min:"196px",max:e.maxWidth?e.maxWidth+"px":"80vw"},background:"dropdown",column:!0,padding:[4],gap:1}})).withConfig({displayName:"labels__Container",componentId:"sc-5eymlk-0"})(["box-shadow:0px 8px 12px rgba(9,30,66,0.15),0px 0px 1px rgba(9,30,66,0.31);"]),s=(0,a.default)(l.BaseColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"labels__ColorBackground",componentId:"sc-5eymlk-1"})([""]),p=a.default.div.withConfig({displayName:"labels__Grid",componentId:"sc-5eymlk-2"})(["display:grid;width:100%;grid-template-columns:auto 2fr;column-gap:8px;align-items:center;"]),m=(0,n.forwardRef)((function(e,t){var r=e.label,a=e.groupLabel,l=e.data,c=e.id,f=(0,i.useChart)(),m=f.getAttribute("viewDimensions"),g=f.getDimensionIndex(c),v=(0,i.useAttributeValue)("min"),h=(0,i.useAttributeValue)("max"),b=.9*f.getUI().getChartWidth(),y=f.getRowDimensionValue(c,l),w=(0,i.useConverted)(y,{valueKey:"percent"});return n.default.createElement(d,{"data-testid":"chartPopover-labels",maxWidth:b,gap:2,ref:t},n.default.createElement(o.Flex,{column:!0,gap:1},n.default.createElement(o.TextMicro,null,a),n.default.createElement(o.TextMicro,{strong:!0},r),n.default.createElement(o.Flex,{alignItems:"center",position:"relative"},n.default.createElement(s,{value:y,min:v,max:h,bg:f.getThemeAttribute("themeGroupBoxesMax"),height:"18px"}),n.default.createElement(o.TextMicro,{padding:[1.5,2],strong:!0},w,"-"!==w&&"%"))),!(null==m||!m.labels)&&n.default.createElement(p,{gap:1,column:!0},Object.keys(m.labels).map((function(e){var t;return n.default.createElement(u.default,{key:e,label:e,value:null==(t=m.labels[e])?void 0:t[g]})}))))}));t.default=(0,n.memo)(m)},5702:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(22332),a=r(42872);t.default=function(e){var t,r,o=(0,n.useChart)(),i=(0,n.useForceUpdate)();return(0,n.useImmediateListener)((function(){return o.getUI(e).on("groupBoxChanged",i)}),[o]),(null==(t=(r=o.getUI(e)).getGroupBox)?void 0:t.call(r))||a.initialValue}},39600:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(22332);t.default=function(e){var t=(0,n.useChart)(),r=(0,n.useForceUpdate)();return(0,n.useImmediateListener)((function(){return t.getUI(e).on("groupBoxRowDataChanged",r)}),[t]),t.getUI(e).getGroupBoxRowData()}},41377:(e,t)=>{t.__esModule=!0,t.getYPosition=t.getXPosition=t.getRows=t.getOffsetPosition=t.getFullWidth=t.getFullHeight=t.getColumns=t.getCellBoxSize=t.defaultPadding=t.defaultCellSize=t.defaultAspectRatio=void 0;var r=t.defaultCellSize=17,n=t.defaultPadding=1,a=t.defaultAspectRatio=Math.round(16/9);t.getCellBoxSize=function(e,t){return void 0===e&&(e=r),void 0===t&&(t=n),e-t},t.getRows=function(e,t){return void 0===t&&(t=a),Math.sqrt(e.length/t)||1},t.getColumns=function(e,t){return void 0===t&&(t=a),e*t||1},t.getXPosition=function(e,t,n){return void 0===n&&(n=r),Math.floor(t%e)*n},t.getYPosition=function(e,t,n){return void 0===n&&(n=r),Math.floor(t/e)*n},t.getFullWidth=function(e,t){return void 0===t&&(t=r),Math.ceil(e)*t},t.getFullHeight=function(e,t,n){return void 0===t&&(t=r),void 0===n&&(n=r),Math.ceil(e)*t+n},t.getOffsetPosition=function(e,t){return void 0===t&&(t=r),Math.floor(e/t)}},75200:(e,t,r)=>{t.__esModule=!0,t.default=t.Container=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(22332),i=c(r(90592)),l=c(r(99684)),u=r(57513);function c(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}var s=t.Container=function(e){return n.default.createElement(a.Flex,d({alignItems:"center",justifyContent:"start",padding:[1,2],gap:.5,border:{side:"bottom",color:"borderSecondary"},"data-testid":"chartHeader",height:"25px",background:"mainChartHeaderBg"},e))};t.default=function(){var e=(0,o.useAttributeValue)("leftHeaderElements");return n.default.createElement(s,null,e.map((function(e,t,r){return n.default.createElement(n.Fragment,{key:t},n.default.createElement(e,null),r[t+1]?n.default.createElement(l.default,null):null)})),n.default.createElement(u.Title,null),n.default.createElement(i.default,null))}},79881:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(8711);function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var l={default:"default",selectVertical:"row-resize",select:"col-resize",highlight:"crosshair"},u=o(o({},l),{},{pan:"grabbing"});t.default=(0,n.css)(["cursor:",";"," &:active{cursor:",";}"],(function(e){return l[e.navigation]||l.default}),(function(e){var t=u[e.navigation];return t?"\n &:active {\n cursor: "+t+";\n }\n ":""}),(function(e){return u[e.navigation]||l.default}))},56284:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=o(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var l=a?Object.getOwnPropertyDescriptor(e,i):null;l&&(l.get||l.set)?Object.defineProperty(n,i,l):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=["children","Component","maxHeight","maxWidth","maxFontSize","minFontSize"];function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}t.default=function(e){var t=e.children,r=e.Component,o=void 0===r?"div":r,l=e.maxHeight,u=void 0===l?100:l,c=e.maxWidth,f=void 0===c?100:c,d=e.maxFontSize,s=void 0===d?500:d,p=e.minFontSize,m=void 0===p?10:p,g=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,a),v=(0,n.useState)(),h=v[0],b=v[1];return(0,n.useEffect)((function(){if(h){var e=s;for(h.style.fontSize=e+"px";e>m&&(h.offsetWidth>f||h.offsetHeight>u);){e-=Math.ceil(e/100),h.style.fontSize=e+"px"}}}),[t,u,f,h]),n.default.createElement(o,i({truncate:!0,ref:b},g),t)}},54924:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=l(r(86263)),o=l(r(33640)),i=["text","Component","noTooltip"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}t.default=function(e){var t=e.text,r=e.Component,l=void 0===r?"div":r,u=e.noTooltip,f=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,i),d=(0,n.useState)(""),s=d[0],p=d[1],m=(0,n.useState)(),g=m[0],v=m[1];return(0,n.useEffect)((function(){if(g){for(var e=g.offsetWidth,r=0;g.scrollWidth>e;)g.textContent=(0,a.default)(g.textContent,r),r+=1;g.textContent!==t&&p(t)}}),[t,g]),n.default.createElement(o.default,{content:!u&&s?t:"",align:"bottom",isBasic:!0},n.default.createElement(l,c({truncate:!0,ref:v},f),t))}},62841:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(8711),a=(0,n.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),o=(0,n.css)(["animation:"," 1.6s ease-in infinite;"],a);t.default=o},39912:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(96540),a=r(69982);t.default=function(){var e=(0,n.useState)(!1),t=e[0],r=e[1],o=(0,n.useRef)(),i=(0,n.useRef)(),l=(0,n.useCallback)((function(){o.current&&((0,a.unstable_cancelCallback)(o.current),o.current=void 0,r(!1)),i.current&&(i.current(),i.current=void 0)}),[]),u=(0,n.useCallback)((function(e,t){void 0===t&&(t=a.unstable_IdlePriority),l();var n=e(),u=(0,a.unstable_runWithPriority)(t,(function e(){var t=n.next();if(i.current=t.value,!t.done)return e;r(!1)}));u&&((0,a.unstable_runWithPriority)(a.unstable_ImmediatePriority,(function(){return r(!0)})),o.current=(0,a.unstable_scheduleCallback)(t,u))}),[]);return(0,n.useEffect)((function(){return l}),[]),[t,u,l]}},10534:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=c(r(96540)),a=r(22332),o=c(r(94515)),i=c(r(4357)),l=c(r(14154)),u=c(r(89380));function c(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){void 0===t&&(t={});var r=(0,o.default)((0,l.default)(e));t.tile&&(r=(0,u.default)(r)),r=(0,a.withChartProvider)((0,i.default)(r));return function(e){return n.default.createElement(r,e)}}},94515:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=o(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var l=a?Object.getOwnPropertyDescriptor(e,i):null;l&&(l.get||l.set)?Object.defineProperty(n,i,l):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(22332);function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}t.default=function(e){var t=(0,n.forwardRef)((function(t,r){var o=(0,a.useChart)();return n.default.createElement(e,i({"data-track":o.track("container")},t,{ref:r}))}));return(0,n.memo)(t)}},14154:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(22332),o=["isVisible","height","width"];function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}t.default=function(e){return(0,n.forwardRef)((function(t,r){var i=t.isVisible,u=void 0===i||i,c=t.height,f=void 0===c?"100%":c,d=t.width,s=void 0===d?"100%":d,p=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(t,o),m=(0,a.useChart)();return(0,a.useImmediateListener)((function(){if(u&&(!p.uiName||"default"===p.uiName)){var e=window.requestAnimationFrame(m.activate);return function(){window.cancelAnimationFrame(e),m.deactivate()}}}),[u,m,p.uiName]),n.default.createElement(e,l({ref:r,height:f,width:s},p))}))}},4357:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(22332);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}var u=function(e){var t=e.children;return(0,o.useAttributeValue)("fullscreen")?n.default.createElement(a.Layer,{full:!0},n.default.createElement(a.Flex,{background:"mainBackground",flex:!0,width:{max:"inherit"},padding:[4]},t)):t};t.default=function(e){return(0,n.forwardRef)((function(t,r){var a=(0,o.useAttributeValue)("fullscreen");return n.default.createElement(u,null,n.default.createElement(e,l({},t,{height:a?"100%":t.height,ref:r})))}))}},89380:(e,t,r)=>{t.__esModule=!0,t.default=t.Title=t.HeadWrapper=t.ChartWrapper=void 0;var n=y(r(96540)),a=y(r(8711)),o=r(10058),i=y(r(58655)),l=y(r(79045)),u=y(r(6504)),c=y(r(18121)),f=y(r(90592)),d=r(22332),s=y(r(34578)),p=r(99010),m=y(r(33640)),g=y(r(93693)),v=["size"],h=["children","customChildren"],b=["count","tile","height","width","children"];function y(e){return e&&e.__esModule?e:{default:e}}function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},w.apply(this,arguments)}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?O(Object(r),!0).forEach((function(t){_(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var P=(0,a.default)(o.Text).withConfig({displayName:"withTile__Label",componentId:"sc-1oake2r-0"})(["line-height:1;font-size:",";"],(function(e){return e.fontSize})),E=(0,a.default)(o.Flex).attrs((function(e){var t=e.size,r=j(e,v);return x({background:"panelBg",round:!0,fontSize:parseInt(t/3,10),height:"100%",width:"100%",position:"relative"},r)})).withConfig({displayName:"withTile__ChartHeadWrapper",componentId:"sc-1oake2r-1"})(["font-size:","px;"],(function(e){return e.fontSize>11?11:e.fontSize<8?8:e.fontSize})),k=t.Title=function(){var e=(0,d.useChart)(),t=(0,d.useTitle)();return n.default.createElement(P,{fontSize:"1em",textAlign:"center",color:"sectionDescription",width:"80%",onClick:function(t){t.preventDefault(),e.sdk.trigger("goToLink",e)},cursor:"pointer",padding:[2,0,0]},t)},M=t.HeadWrapper=function(e){var t,r=e.children,a=e.customChildren,g=j(e,h),v=(0,d.useOnResize)().width,b=(0,d.useAttributeValue)("focused"),y=null==(t=(0,d.useDimensionIds)())?void 0:t[0],O=(0,d.useAttributeValue)("leftHeaderElements"),x=v;x=x<20?20:x>50?50:x;var _=(0,d.useChart)(),P=(0,c.default)({onHover:_.focus,onBlur:_.blur,isOut:function(e){return!e||!e.closest('[data-toolbox="'+_.getId()+'"]')&&!e.closest('[data-chartid="'+_.getId()+'"]')}},[_]),M=(0,d.useColor)("themeShadow"),C=(0,l.default)(b,400);return n.default.createElement(E,w({size:x},g,{ref:P}),b&&C&&n.default.createElement(f.default,{position:"absolute",top:"-16px",right:"0",background:"mainChartHeaderBg",width:{min:"100%"},padding:[1],sx:{boxShadow:"0px 1px 5px 0px "+M+";"},overflow:"hidden"},v>400&&n.default.createElement(o.Box,{width:"100%"},n.default.createElement(s.default,{border:"none",opacity:b?1:.1,focused:b}))),n.default.createElement(o.Flex,{column:!0,width:5,padding:[1,0]},O.map((function(e,t){return n.default.createElement(e,{key:t,plain:!0})})),v<400&&n.default.createElement(o.Flex,{column:!0,width:5},n.default.createElement(s.default,{column:!0,border:"none",justifyContent:"start",plain:!0,opacity:b?1:.1,focused:b}))),n.default.createElement(o.Flex,{column:!0,alignItems:"center",justifyContent:"center",padding:[1,0],height:"100%",width:"100%",position:"relative",overflow:"hidden"},n.default.createElement(k,null),r),n.default.createElement(o.Flex,{column:!0,width:5,alignItems:"center",padding:[4,0],gap:2},"selected"===y&&n.default.createElement(n.default.Fragment,null,n.default.createElement(o.Flex,{column:!0,height:"100%",width:"2px",background:"neutralHighlight",justifyContent:"end"},n.default.createElement(p.ColorBar,{id:"selected",valueKey:"arp",width:"2px",styleDimension:"height",round:.5})),n.default.createElement(m.default,{content:"Anomaly rate for this metric"},n.default.createElement(u.default,{svg:i.default,color:"anomalyTextLite",size:"14px"})))),a)};t.ChartWrapper=(0,a.default)(o.Flex).attrs((function(e){return x({column:!0,justifyContent:"center",alignContent:"center",gap:2,position:"relative",width:"100%",height:"100%",overflow:"hidden"},e)})).withConfig({displayName:"withTile__ChartWrapper",componentId:"sc-1oake2r-2"})([""]),t.default=function(e){return function(t){var r=t.count,a=t.tile,o=void 0===a||a,i=t.height,l=void 0===i?"100%":i,u=t.width,c=void 0===u?"100%":u,f=t.children,s=j(t,b),p=(0,d.useAttributeValue)("showingInfo"),m=(0,d.useAttributeValue)("focused"),v=(0,d.useColor)("themeShadow"),h=m?{sx:{boxShadow:"0px 1px 5px 0px "+v+";"}}:{};return o?n.default.createElement(M,w({count:r,uiName:s.uiName,height:l,width:c,customChildren:f},h),p?n.default.createElement(g.default,null):n.default.createElement(e,s)):n.default.createElement(E,w({size:20,height:l,width:c},h),p?n.default.createElement(g.default,null):n.default.createElement(e,s),f)}}},6963:(e,t,r)=>{t.__esModule=!0,t.default=t.ContentWrapper=t.Container=void 0;var n=b(r(96540)),a=b(r(8711)),o=r(10058),i=r(22332),l=r(18121),u=v(r(74113)),c=v(r(34101)),f=v(r(75029)),d=v(r(31899)),s=v(r(94833)),p=r(48666),m=v(r(15587)),g=v(r(79881));function v(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(h=function(e){return e?r:t})(e)}function b(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=h(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},y.apply(this,arguments)}var w={dygraph:(0,a.css)([""," ",""],m.default,g.default)},O=(0,a.default)(o.Flex).withConfig({displayName:"chartContentWrapper__StyledContainer",componentId:"sc-ngouqx-0"})(["",""],(function(e){var t=e.chartLibrary;return w[t]||""})),x=(t.ContentWrapper=function(e){return n.default.createElement(o.Flex,y({position:"relative",column:!0,flex:!0,overflow:"hidden","data-testid":"contentWrapper"},e))},t.Container=(0,n.forwardRef)((function(e,t){var r=(0,i.useAttributeValue)("chartLibrary"),a=(0,i.useAttributeValue)("navigation");return n.default.createElement(O,y({ref:t,chartLibrary:r,position:"relative",flex:!0,"data-testid":"chartContentWrapper",height:"100%",width:"100%",overflow:"hidden",navigation:a},e))})));t.default=function(e){var t=e.uiName,r=(0,i.useAttributeValue)("id"),a=(0,l.useHovered)({isOut:function(e){return!e||!e.closest('[data-toolbox="'+r+'"]')&&!e.closest('[data-chartid="'+r+'"]')}}),o=a[0],m=a[1],g=(0,i.useInitialLoading)(),v=(0,i.useEmpty)(),h=(0,i.useAttributeValue)("hasToolbox"),b=(0,i.useAttributeValue)("processing");return n.default.createElement(x,{ref:o},!g&&n.default.createElement(u.default,null),!g&&n.default.createElement(s.default,{uiName:t}),g&&n.default.createElement(d.default,null),h&&m&&!v&&n.default.createElement(f.default,null),b&&n.default.createElement(p.Processing,null),n.default.createElement(c.default,{uiName:t}))}},98744:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=s(r(96540)),a=r(10058),o=f(r(8001)),i=f(r(87083)),l=f(r(51081)),u=s(r(6504)),c=r(22332);function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function s(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},p.apply(this,arguments)}var m={as:function(e){return n.default.createElement(u.default,p({svg:o.default},e))},size:"16px"},g=function(e){var t=e.item,r=t.value,o=t.label,i=e.value,l=e.onItemClick;return n.default.createElement(a.MenuItemContainer,{"data-testid":"chartDimensionFilter-"+r},n.default.createElement(a.RadioButton,{label:n.default.createElement(a.TextSmall,{"data-testid":"chartDimensionFilter-label"},o),checked:r===i,onChange:function(e){return l(e.target.value)},value:r,"data-testid":"chartDimensionFilter-input",name:"dimensionsSort",iconProps:m}))},v={default:l.default,nameAsc:i.default,nameDesc:l.default,valueAsc:i.default,valueDesc:l.default,anomalyAsc:i.default,anomalyDesc:l.default};t.default=function(e){var t=(0,c.useChart)(),r=(0,n.useState)(t.getAttribute("dimensionsSort")),o=r[0],i=r[1];(0,n.useEffect)((function(){return t.onAttributeChange("dimensionsSort",i)}),[t]);var l=function(e){return(0,n.useMemo)((function(){return[{value:"default",label:"Default","data-track":e.track("default")},{value:"nameAsc",label:"Sort by name A\u2192Z","data-track":e.track("nameAsc")},{value:"nameDesc",label:"Sort by name Z\u2192A","data-track":e.track("nameDesc")},{value:"valueAsc",label:"Sort by value Min\u2192Max","data-track":e.track("valueAsc")},{value:"valueDesc",label:"Sort by value Max\u2192Min","data-track":e.track("valueDesc")},{value:"anomalyAsc",label:"Sort by anomaly Min\u2192Max","data-track":e.track("anomalyAsc")},{value:"anomalyDesc",label:"Sort by anomaly Max\u2192Min","data-track":e.track("anomalyDesc")}]}),[e])}(t);return n.default.createElement(a.Flex,p({padding:[0,4,3],"data-testid":"chartDimensionSort"},e),n.default.createElement(a.Menu,{value:o,items:l,dropProps:{align:{bottom:"top",left:"left"},"data-toolbox":t.getId()},dropdownProps:{width:"200px",padding:[2,0]},Item:g,onChange:function(e){return t.updateAttribute("dimensionsSort",e)}},n.default.createElement(u.Button,{icon:n.default.createElement(u.default,{svg:v[o],size:"16px"}),"data-testid":"chartDimensionSort-toggle",title:"Sort dimensions by name or value",small:!0})))}},99010:(e,t,r)=>{t.__esModule=!0,t.default=t.ColorBar=t.Color=t.BaseColorBar=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=(n=r(8711))&&n.__esModule?n:{default:n},i=r(10058),l=r(22332),u=r(22753),c=["bg"],f=["value","min","max","valueKey","bg","styleDimension"],d=["id","valueKey"],s=["id"];function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},m.apply(this,arguments)}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var b=t.Color=(0,o.default)(i.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({width:"4px",round:!0,"data-testid":"chartDimensions-color",flex:!1,background:e.bg},h(e,c))})).withConfig({displayName:"color__Color",componentId:"sc-1ooxdoy-0"})(["pointer-events:none;"]),y=t.BaseColorBar=function(e){var t=e.value,r=e.min,n=e.max,o=e.valueKey,i=e.bg,l=e.styleDimension,c=void 0===l?"width":l,d=h(e,f),s=(0,a.useRef)();(0,a.useLayoutEffect)((function(){if(s.current){requestAnimationFrame((function(){return s.current&&(s.current.style[c]=t?100*(Math.abs(t)-r)/(n-r)+"%":0)}))}}),[t,o,r,n]);var p=(0,u.useIsHeatmap)(),g=(0,u.useGetColor)(.4);return i?a.default.createElement(b,m({ref:s,width:{min:1},bg:i,sx:{background:p?g(t):void 0}},d)):null};t.ColorBar=function(e){var t=e.id,r=e.valueKey,n=h(e,d),o=(0,l.useChart)(),i="arp"===r?"anomalyTextLite":o.selectDimensionColor(t),u="arp"===r?0:o.getAttribute("min"),c="arp"===r?100:o.getAttribute("max"),f=Math.abs(u),s=Math.abs(c),p=c>0?u<0?0:u:s,g=(0,l.useLatestValue)(t,{valueKey:r})||0;return a.default.createElement(y,m({value:g,min:p,max:s>f?s:f,valueKey:r,bg:i},n))},t.default=function(e){var t=e.id,r=h(e,s),n=(0,l.useChart)().selectDimensionColor(t);return n?a.default.createElement(b,m({bg:n},r)):null}},1249:(e,t,r)=>{t.__esModule=!0,t.default=t.Name=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(10058),i=r(22332),l=(n=r(54924))&&n.__esModule?n:{default:n},u=["children"],c=["id"];function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}function s(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var p=t.Name=(0,a.memo)((0,a.forwardRef)((function(e,t){var r=e.children,n=s(e,u);return a.default.createElement(l.default,d({text:r,Component:o.TextMicro,color:"textDescription",whiteSpace:"nowrap",ref:t,"data-testid":"chartDimensions-name"},n))})));t.default=function(e){var t=e.id,r=s(e,c),n=(0,i.useChart)().getDimensionName(t);return a.default.createElement(p,r,n)}},75010:(e,t,r)=>{t.__esModule=!0,t.default=t.Value=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(22332),i=["visible"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u.apply(this,arguments)}var c=t.Value=function(e){return n.default.createElement(a.TextMicro,u({color:"textDescription",whiteSpace:"nowrap",truncate:!0,"data-testid":"chartDimensions-units"},e))},f=function(e){var t=e.visible,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,i),a=(0,o.useUnitSign)();return t?n.default.createElement(c,r,a):null};t.default=(0,n.memo)(f)},24652:(e,t,r)=>{t.__esModule=!0,t.default=t.Value=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(22332),i=["id","visible","valueKey","period","objKey","Component"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u.apply(this,arguments)}var c=t.Value=(0,n.forwardRef)((function(e,t){return n.default.createElement(a.TextMicro,u({color:"textDescription","data-testid":"chartDimensions-value"},e,{ref:t}))})),f=(0,n.forwardRef)((function(e,t){var r=e.id,a=e.visible,l=e.valueKey,f=e.period,d=void 0===f?"latest":f,s=e.objKey,p=e.Component,m=void 0===p?c:p,g=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,i),v=(0,o.useConvertedValue)(r,d,{valueKey:l,objKey:s,allowNull:!0});return a?n.default.createElement(m,u({},g,{ref:t}),v):null}));t.default=f},96720:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=c(r(96540)),a=c(r(8711)),o=r(10058),i=c(r(30464)),l=r(22332),u=c(r(6504));function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var s=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){d(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({"data-testid":"chartExpander",alignItems:"center",justifyContent:"center",gap:1},e)})).withConfig({displayName:"expander__Container",componentId:"sc-19kn93v-0"})(["&:hover > *{color:",";fill:",";}"],(0,o.getColor)("text"),(0,o.getColor)("text"));t.default=function(){var e=(0,l.useChart)(),t=(0,l.useAttributeValue)("expanded");return n.default.createElement(s,{cursor:"pointer",onClick:function(){return e.updateAttribute("expanded",!t)},alignSelf:"center"},n.default.createElement(u.default,{svg:i.default,color:"textLite",width:"7.5px",height:"5px",rotate:t?2:0}),n.default.createElement(o.TextSmall,{color:"textLite"},t?"Collapse":"Expand"),n.default.createElement(u.default,{svg:i.default,color:"textLite",width:"7.5px",height:"5px",rotate:t?2:0}))}},39591:(e,t,r)=>{t.__esModule=!0,t.default=t.Container=void 0;var n=s(r(96540)),a=r(10058),o=s(r(69529)),i=s(r(49941)),l=s(r(98744)),u=r(65562),c=s(r(93658)),f=s(r(96720)),d=r(22753);function s(e){return e&&e.__esModule?e:{default:e}}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},p.apply(this,arguments)}var m=t.Container=function(e){return n.default.createElement(a.Flex,p({border:{side:"top",color:"borderSecondary"},"data-testid":"chartLegend",column:!0,position:"relative"},e))};t.default=function(){var e=(0,u.useAttributeValue)("showingInfo"),t=(0,u.useAttributeValue)("expandable"),r=(0,d.useIsHeatmap)();return n.default.createElement(m,null,n.default.createElement(c.default,null),!e&&n.default.createElement(n.default.Fragment,null,r&&n.default.createElement(i.default,null),n.default.createElement(a.Flex,{alignItems:"center"},n.default.createElement(l.default,null),n.default.createElement(o.default,null))),t&&n.default.createElement(a.Flex,{flex:!0,position:"relative",alignItems:"center",justifyContent:"center",border:{side:"top",color:"borderSecondary"}},n.default.createElement(f.default,null)))}},64131:(e,t,r)=>{t.Ay=t.N1=void 0;var n=h(r(96540)),a=g(r(51365)),o=g(r(18121)),i=g(r(10534)),l=r(22332),u=g(r(75200)),c=g(r(93693)),f=h(r(6963)),d=g(r(34578)),s=g(r(89031)),p=g(r(39591)),m=["hasHeader","hasFooter","hasFilters","uiName"];function g(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(v=function(e){return e?r:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=v(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},b.apply(this,arguments)}var y=t.N1=(0,n.forwardRef)((function(e,t){var r=e.hasHeader,i=void 0===r||r,g=e.hasFooter,v=void 0===g||g,h=e.hasFilters,y=void 0===h||h,w=e.uiName,O=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,m),x=(0,l.useChart)(),_=(0,l.useAttributeValue)("showingInfo"),j=(0,l.useAttributeValue)("sparkline"),P=(0,o.default)({onHover:x.focus,onBlur:x.blur,isOut:function(e){return!e||!e.closest('[data-toolbox="'+x.getId()+'"]')&&!e.closest('[data-chartid="'+x.getId()+'"]')}},[x]),E=(0,a.default)((function(e){P.current=e,t&&(t.current=e)}))[1],k=(0,l.useAttributeValue)("focused");return n.default.createElement(s.default,b({ref:E},j&&{border:!1,background:"transparent"},O),i&&n.default.createElement(u.default,null),y&&n.default.createElement(d.default,{opacity:k?1:.7}),n.default.createElement(f.ContentWrapper,null,_?n.default.createElement(c.default,null):n.default.createElement(f.default,{uiName:w})),v&&n.default.createElement(p.default,null))}));t.Ay=(0,i.default)(y)},93658:(e,t,r)=>{t.__esModule=!0,t.getDateDiff=t.default=void 0;var n,a=(n=r(96540))&&n.__esModule?n:{default:n},o=r(10058),i=r(22332);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}function u(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?u(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var d=function(e){var t=e.timestamp,r=(0,i.useFormatTime)(t),n=(0,i.useFormatDate)(t);return a.default.createElement(o.TextNano,{color:"textDescription","data-testid":"chartIndicator-dateTime-latest-value"},n," \u2022 ",r)},s=function(){var e,t=(0,i.useChart)(),r=((0,i.useAttributeValue)("hoverX")||[])[0],n=(0,i.usePayload)().data;if(!n.length)return null;var l=null==(e=n[r?t.getClosestRow(r):n.length-1])?void 0:e[0];return a.default.createElement(o.Flex,{gap:1},a.default.createElement(o.TextNano,{color:"textLite"},r?"Hovering":"Latest",":"),!!l&&a.default.createElement(d,{timestamp:l}))},p=86400,m=3600,g=t.getDateDiff=function(e,t){var r=a=t-e,n=Math.floor(r/p),a=r-n*p,o=Math.floor(a/m);a-=o*m;var i=Math.floor(a/60);return[{value:n,unit:"d",check:function(){return r>=p&&!!n}},{value:o,unit:"h",check:function(){return r>=m&&!!o}},{value:i,unit:"m",check:function(){return!!i}},{value:a-=60*i,unit:"s",check:function(){return r<m&&!!a}}].reduce((function(e,t){var r=function(e){var t,r=e.value,n=e.unit,a=e.check,o=e.hasPrev;if(null!=a&&a())return""+(o?(t=r)>9?t:"0"+t:r)+n}(c(c({},t),{},{hasPrev:!!e[e.length-1]}));return r&&e.push(r),e}),[])},v=function(e){var t=e.date,r=e.after,n=e.before,l=(0,i.useFormatTime)(1e3*r),u=(0,i.useFormatTime)(1e3*n),c=g(r,n);return a.default.createElement(o.Flex,{gap:1},a.default.createElement(o.TextNano,{color:"textDescription"},t," \u2022"),a.default.createElement(o.TextNano,{color:"textLite"},l," \u2192 ",u),a.default.createElement(o.TextNano,{color:"textDescription"},"\u2022 ",c))},h=function(e){var t=e.afterDate,r=e.beforeDate,n=e.after,l=e.before,u=(0,i.useFormatTime)(1e3*n),c=(0,i.useFormatTime)(1e3*l),f=g(n,l);return a.default.createElement(o.Flex,{gap:1},a.default.createElement(o.TextNano,{color:"textDescription"},t," \u2022"),a.default.createElement(o.TextNano,{color:"textLite"},u," \u2192"),a.default.createElement(o.TextNano,{color:"textDescription"},r," \u2022"),a.default.createElement(o.TextNano,{color:"textLite"},c),a.default.createElement(o.TextNano,{color:"textDescription"},"\u2022 ",f))},b=function(e){var t=e.after,r=e.before,n=(0,i.useFormatDate)(1e3*r),o=(0,i.useFormatDate)(1e3*t);return n===o?a.default.createElement(v,{date:o,after:t,before:r}):a.default.createElement(h,{afterDate:o,beforeDate:n,after:t,before:r})};t.default=function(e){var t,r=(0,i.useChart)(),n=(0,i.useAttributeValue)("overlays").highlight,u=null==n?void 0:n.range,c=null!=(t=null==n?void 0:n.moveX)?t:{},f=c.after,d=c.before;return a.default.createElement(o.Flex,l({gap:1,justifyContent:"between",flex:!0},e),u?a.default.createElement(o.Flex,{onClick:function(){d&&f&&r.moveX(f,d)},cursor:"pointer",gap:1,padding:[0,11,0]},a.default.createElement(o.TextNano,{color:"textLite"},"Highlight:"),a.default.createElement(b,{after:u[0],before:u[1]})):a.default.createElement("div",null),a.default.createElement(s,null))}},33949:(e,t,r)=>{t.__esModule=!0,t.default=t.SkeletonDimension=t.EmptyDimension=void 0;var n,a=g(r(96540)),o=r(8711),i=r(10058),l=g(r(99010)),u=g(r(1249)),c=g(r(24652)),f=g(r(33640)),d=(n=r(75010))&&n.__esModule?n:{default:n},s=r(22332),p=r(22753);function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(m=function(e){return e?r:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=m(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},v.apply(this,arguments)}var h=(0,a.forwardRef)((function(e,t){return a.default.createElement(i.Flex,v({ref:t,width:{min:22,max:50},flex:!1,gap:.5,"data-testid":"chartLegendDimension"},e))})),b=(t.SkeletonDimension=function(){var e=(0,o.useTheme)();return a.default.createElement(h,null,a.default.createElement(l.Color,{bg:(0,i.getColor)("placeholder")({theme:e})}),a.default.createElement(i.Flex,{flex:!0,gap:1,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(i.Flex,{height:"10px",width:"76px",background:"borderSecondary",round:!0}),a.default.createElement(i.Flex,{height:"10px",width:"34px",background:"borderSecondary",round:!0,"data-testid":"chartLegendDimension-valueContainer"})))},t.EmptyDimension=function(){var e=(0,o.useTheme)();return a.default.createElement(h,null,a.default.createElement(l.Color,{bg:(0,i.getColor)("placeholder")({theme:e})}),a.default.createElement(i.Flex,{flex:!0,gap:.5,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(u.Name,null,"No data"),a.default.createElement(c.Value,null,"-")))},function(e){var t=e.id,r=(0,s.useLatestValue)(t,{valueKey:"arp"});return a.default.createElement(i.ProgressBar,{height:.5,color:"anomalyText",width:Math.abs(r)+"%"})}),y=function(e){return a.default.createElement(i.Flex,v({},f.tooltipStyleProps,e,{column:!0,gap:1}))},w=function(e){var t=e.id,r=e.name,n=(0,s.useUnits)(),o=(0,s.useLatestValue)(t);return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.TextSmall,{strong:!0,wordBreak:"break-word"},r),a.default.createElement(i.TextSmall,{whiteSpace:"nowrap"},o," ",n))},O=(0,a.forwardRef)((function(e,t){var r=e.id,n=(0,s.useVisibleDimensionId)(r),o=(0,s.useChart)(),m=o.getDimensionName(r),g=(0,p.useIsHeatmap)();return a.default.createElement(h,{ref:t,opacity:n?null:"weak",cursor:"pointer",onClick:function(e){var t=e.shiftKey||e.ctrlKey||e.metaKey;o.toggleDimensionId(r,{merge:t})},"data-track":o.track("dimension-"+m)},!g&&a.default.createElement(l.default,{id:r}),a.default.createElement(f.default,{Content:y,content:n?a.default.createElement(w,{id:r,name:m}):null},a.default.createElement(i.Flex,{flex:!0,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(u.default,{id:r,noTooltip:!0}),a.default.createElement(b,{id:r}),a.default.createElement(i.Flex,{gap:1,alignItems:"center","data-testid":"chartLegendDimension-valueContainer",flex:!0},a.default.createElement(c.default,{id:r,strong:!0,visible:n,Component:i.TextBig}),a.default.createElement(d.default,{visible:n})))))}));t.default=O},49941:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=l(r(96540)),a=l(r(8711)),o=r(10058),i=r(22332);function l(e){return e&&e.__esModule?e:{default:e}}var u=(0,a.default)(o.Flex).attrs({width:"320px",height:"12px",round:!0}).withConfig({displayName:"heatmapColors__LinearColorScaleBar",componentId:"sc-13fexd8-0"})(["background:linear-gradient( to right,rgb(62,73,137),rgb(49,104,142),rgb(38,130,142),rgb(31,158,137),rgb(53,183,121),rgb(110,206,88),rgb(181,222,43),rgb(253,231,37) );"]);t.default=function(){var e=(0,i.useChart)(),t=(0,i.useAttributeValue)("max"),r=(0,i.useUnitSign)();return(0,i.useAttributeValue)("theme"),n.default.createElement(o.Flex,{"data-testid":"heatmap-legend",gap:2,alignItems:"center",padding:[2,11]},n.default.createElement(o.TextNano,null,e.getConvertedValue(0)," ",r),n.default.createElement(u,null),n.default.createElement(o.TextNano,null,e.getConvertedValue(t)," ",r))}},69529:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=m(r(96540)),a=s(r(8711)),o=r(81431),i=r(10058),l=s(r(53965)),u=s(r(14608)),c=r(22332),f=m(r(33949)),d=s(r(6504));function s(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},g.apply(this,arguments)}var v=(0,a.default)(i.Flex).attrs({gap:.5,padding:[0,0,1],alignItems:"center",flex:!0,"data-testid":"chartLegend"}).withConfig({displayName:"legend__Container",componentId:"sc-czwham-0"})(["overflow-x:auto;overflow-x:overlay;overflow-y:hidden;::-webkit-scrollbar{height:6px;}"]),h=Array.from(Array(5)),b=function(){return n.default.createElement(n.Fragment,null,h.map((function(e,t){return n.default.createElement(f.SkeletonDimension,{key:t})})))},y=(0,n.memo)((function(e){var t=e.lastItemRef,r=(0,c.useDimensionIds)();return r?n.default.createElement(n.Fragment,null,r.map((function(e,a){return n.default.createElement(f.default,g({},a===r.length-1&&{ref:t},{key:e,id:e}))}))):null}));t.default=function(e){var t=(0,c.useDimensionIds)(),r=(0,c.useChart)(),a=(0,c.useInitialLoading)(),s=(0,c.useEmpty)(),p=(0,c.useAttributeValue)("active"),m=(0,n.useRef)(null),h=(0,n.useRef)(),w=(0,i.useNavigationArrows)(m,h,t.length,!0),O=w[0],x=w[1],_=w[2];(0,n.useEffect)((function(){m.current&&p&&m.current.scrollTo({left:r.getAttribute("legendScroll")})}),[m.current,p]),(0,n.useEffect)((function(){var e=function(){var e,t=((e=m.current)?{x:e.scrollLeft}:{x:0}).x;r.updateAttribute("legendScroll",t),_()};e();var t=(0,o.debounce)(300,e);if(t(),window.addEventListener("resize",t),m.current)return m.current.addEventListener("scroll",e),function(){window.removeEventListener("resize",t),m.current&&m.current.removeEventListener("scroll",e)}}),[m.current]);return n.default.createElement(i.Flex,{overflow:"hidden",position:"relative"},O&&n.default.createElement(i.Flex,{"data-testid":"filterTray-arrowLeft",cursor:"pointer",onClick:function(e){e.preventDefault();var t=m.current;t.scrollTo({left:t.scrollLeft-100,behavior:"smooth"})},padding:[0,1],height:"100%",position:"absolute",left:0,background:"mainChartBg",alignItems:"center"},n.default.createElement(d.default,{svg:l.default,color:"key",size:"8px"})),n.default.createElement(v,g({ref:m},e,{"data-track":r.track("legend")}),!a&&!s&&n.default.createElement(y,{lastItemRef:h}),a&&n.default.createElement(b,null),!a&&s&&n.default.createElement(f.EmptyDimension,null)),x&&n.default.createElement(i.Flex,{"data-testid":"filterTray-arrowRight",cursor:"pointer",onClick:function(e){e.preventDefault();var t=m.current;t.scrollTo({left:t.scrollLeft+100,behavior:"smooth"})},padding:[0,1],height:"100%",position:"absolute",right:0,background:"mainChartBg",alignItems:"center"},n.default.createElement(d.default,{svg:u.default,color:"key",size:"8px"})))}},75029:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=h(r(96540)),a=g(r(8711)),o=r(10058),i=g(r(70922)),l=g(r(58937)),u=g(r(29085)),c=g(r(99444)),f=g(r(83357)),d=h(r(6504)),s=r(22332),p=g(r(55969)),m=g(r(49628));function g(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(v=function(e){return e?r:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=v(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},b.apply(this,arguments)}var y=(0,a.default)(o.Flex).attrs({padding:[.5],gap:1,round:!0,border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"navigationToolbox__Container",componentId:"sc-17lxzh2-0"})(["position:absolute;top:18px;right:8px;background:",";&:hover{background:",";}"],(0,o.getRgbColor)("elementBackground",.5),(0,o.getColor)("elementBackground")),w=function(e){var t=e.log,r=void 0===t?function(){}:t,a=(0,s.useChart)(),o=(0,s.useAttributeValue)("after");return n.default.createElement(d.Button,{icon:n.default.createElement(d.default,{svg:f.default,size:"16px"}),title:"Reset zoom",onClick:function(){a.resetNavigation(),r({chartAction:"chart-toolbox-reset-zoom"})},"data-testid":"chartToolbox-zoomReset","data-track":a.track("zoomReset"),disabled:-900===o,padding:"2px",small:!0})},O=(0,n.forwardRef)((function(e,t){var r=(0,s.useChart)(),a=(0,s.useAttribute)("navigation"),o=a[0],f=a[1],g=(0,s.useAttributeValue)("highlighting"),v=(0,s.useAttributeValue)("panning");if(g||v)return null;var h=(0,m.default)(r);return n.default.createElement(y,b({"data-testid":"chartToolbox","data-toolbox":r.getId()},e,{ref:t,"data-track":r.track("toolbox")}),n.default.createElement(d.Button,{icon:n.default.createElement(d.default,{svg:i.default,size:"16px"}),title:"Pan",onClick:function(){f("pan"),h({chartAction:"chart-toolbox-pan"})},active:"pan"===o,"data-testid":"chartToolbox-pan",stroked:!0,"data-track":r.track("pan"),padding:"2px",small:!0}),n.default.createElement(d.Button,{icon:n.default.createElement(d.default,{svg:l.default,size:"16px"}),title:"Highlight",onClick:function(){f("highlight"),h({chartAction:"chart-toolbox-highlight"})},active:"highlight"===o,"data-testid":"chartToolbox-highlight","data-track":r.track("highlight"),padding:"2px",small:!0}),n.default.createElement(p.default,null),n.default.createElement(d.Button,{icon:n.default.createElement(d.default,{svg:u.default,size:"16px"}),title:"Zoom in",onClick:function(){r.zoomIn(),h({chartAction:"chart-toolbox-zoom-in"})},"data-testid":"chartToolbox-zoomIn","data-track":r.track("zoomIn"),padding:"2px",small:!0}),n.default.createElement(d.Button,{icon:n.default.createElement(d.default,{svg:c.default,size:"16px"}),title:"Zoom out",onClick:function(){r.zoomOut(),h({chartAction:"chart-toolbox-zoom-out"})},"data-testid":"chartToolbox-zoomOut","data-track":r.track("zoomOut"),padding:"2px",small:!0}),n.default.createElement(w,{log:h}))}));t.default=O},55969:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=m(r(96540)),a=r(10058),o=s(r(3113)),i=s(r(73983)),l=s(r(20327)),u=s(r(26762)),c=r(22332),f=m(r(6504)),d=["value","onChange","onClick","open","item"];function s(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function h(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},b.apply(this,arguments)}var y=(0,n.forwardRef)((function(e,t){var r=e.value,o=e.onChange,i=e.onClick,c=e.open,s=e.item,p=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,d),m=s.icon,g=s.value,v=s.title;return n.default.createElement(a.Flex,b({ref:t,alignItems:"end"},p),n.default.createElement(f.Button,{icon:m,title:v,active:r===g,onClick:function(){return o(g)},padding:"2px",small:!0}),n.default.createElement(f.Button,{icon:n.default.createElement(f.default,{svg:c?l.default:u.default,size:"12px"}),onClick:i,padding:"2px",stroked:!0,small:!0}))})),w=function(e){var t=e.onItemClick,r=e.items[0],o=r.icon,i=r.value,l=r.title,u=(0,c.useAttributeValue)("id");return n.default.createElement(a.Flex,{background:"dropdown",round:{side:"bottom"},border:{side:"bottom",color:"borderSecondary"},padding:[1,0],"data-toolbox":u},n.default.createElement(f.Button,{title:l,icon:o,onClick:function(){return t(i)},padding:"2px",small:!0}))},O=function(){var e=(0,c.useChart)(),t=(0,c.useAttribute)("navigation"),r=t[0],l=t[1],u=function(e){return(0,n.useMemo)((function(){return[{value:"select",title:"Select and zoom",icon:n.default.createElement(f.default,{svg:o.default,size:"16px"}),"data-track":e.track("selectHorizontal")},{value:"selectVertical",title:"Select vertical and zoom",icon:n.default.createElement(f.default,{svg:i.default,size:"16px"}),"data-track":e.track("selectVertical")}]}),[e])}(e),d=(0,n.useMemo)((function(){return u.reduce((function(e,t){return t.value===r?v(v({},e),{},{selectedItem:t}):v(v({},e),{},{remainingItems:[t]})}),{selectedItem:u[0],remainingItems:[]})}),[r]),s=d.selectedItem,p=d.remainingItems;return n.default.createElement(a.Menu,{value:r,onChange:l,items:p,Dropdown:w,"data-track":"select"},n.default.createElement(y,{value:r,onChange:l,item:s}))};t.default=(0,n.memo)(O)},97556:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=u(r(96540)),a=r(10058),o=r(22332),i=u(r(32464));function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var c={critical:"error",clear:"success"},f=function(e){var t=e.id,r=(0,o.useAttributeValue)("overlays")[t],l=r.status,u=r.value,f=c[l]||l,d=(0,i.getColors)(f).color;return n.default.createElement(i.default,{type:f,noBorder:!0},n.default.createElement(a.TextSmall,{color:d},"Triggered value:"," ",n.default.createElement(a.TextSmall,{strong:!0,color:d},u)))};t.default=(0,n.memo)(f)},74787:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=u(r(96540)),a=r(10058),o=r(22332),i=u(r(32464));function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var c={critical:"error",clear:"success"},f=function(e){var t=e.id,r=(0,o.useAttributeValue)("overlays")[t],l=r.status,u=r.valueTriggered,f=c[l]||l,d=(0,i.getColors)(f).color;return n.default.createElement(i.default,{type:f,noBorder:!0},n.default.createElement(a.TextSmall,{color:d},"Triggered value:"," ",n.default.createElement(a.TextSmall,{strong:!0,color:d},u)))};t.default=(0,n.memo)(f)},33406:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=f(r(96540)),a=f(r(8711)),o=r(10058),i=r(22332),l=f(r(54924)),u=f(r(33640)),c=["field","normalize"];function f(e){return e&&e.__esModule?e:{default:e}}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}var s=(0,a.default)(l.default).withConfig({displayName:"chartName__StyledShortener",componentId:"sc-q7d2de-0"})(["text-shadow:0 18px 28px rgba(9,30,66,0.15),0 0 1px rgba(9,30,66,0.31);pointer-events:none;"]);t.default=function(e){var t=e.field,r=e.normalize,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,c),l=(0,i.useAttributeValue)(t),f=(0,i.useChart)();return r&&(l=r(l,f.getAttributes())),l?n.default.createElement(u.default,{content:l},n.default.createElement(s,d({color:"key",text:l,Component:o.TextSmall},a))):null}},85338:(e,t,r)=>{t.__esModule=!0,t.default=t.alignment=void 0;var n,a,o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),i=(n=r(8711))&&n.__esModule?n:{default:n},l=r(10058),u=r(22332),c=["id","align","right","fixed","children","uiName"];function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}var s=t.alignment={chartMiddle:"chartMiddle",elementMiddle:"elementMiddle",elementRight:"elementRight",elementLeft:"elementLeft",elementFull:"elementFull"},p=((a={})[s.chartMiddle]=function(e){var t,r=e.from,n=e.chartWidth,a=e.element;return[60,Math.min(r-24,60+n/2+(null==(t=a.firstChild)?void 0:t.offsetWidth)/2)]},a[s.chartLeft]=function(e){var t,r=e.chartWidth;return[0,(null==(t=e.element.firstChild)?void 0:t.offsetWidth)-r]},a[s.elementMiddle]=function(e){var t,r=e.from;return[r,r+e.width/2+(null==(t=e.element.firstChild)?void 0:t.offsetWidth)/2]},a[s.elementRight]=function(e){var t=e.from;return[t,t+e.width]},a[s.elementLeft]=function(e){var t=e.from;return[t,t]},a),m=(0,i.default)(l.Flex).withConfig({displayName:"container__HorizontalContainer",componentId:"sc-n9fh2a-0"})(["position:absolute;",";",";",";",";",";",";overflow:hidden;"],(function(e){return e.noTransform?"":"transform: translateY(-50%)"}),(function(e){var t=e.top;return t&&"top: "+t+";"}),(function(e){var t=e.bottom;return t&&"bottom: "+t+";"}),(function(e){var t=e.left;return t&&"left: "+t+";"}),(function(e){var t=e.right;return t&&"right: "+t+";"}),(function(e){return e.noEvents&&"pointer-events: none;"})),g=function(e){var t=e.id,r=e.align,n=e.right,a=void 0===n?0:n,i=e.fixed,l=e.children,f=e.uiName,g=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,c),v=(0,o.useRef)(),h=(0,o.useState)(),b=h[0],y=h[1],w=(0,u.useChart)(),O=function(e){if(w&&w.getUI(f)&&e&&v.current){var t=function(e,t,r,n,a){void 0===e&&(e=s.elementMiddle);var o=r.from,i=r.width,l=t.getUI(a).getChartWidth();return(p[e]||p.elementMiddle)({from:o,width:i,chartWidth:l,element:n})}(r,w,e,v.current,f),n=t[1];v.current.style.right="calc(100% - "+(n+a)+"px)"}};return(0,o.useLayoutEffect)((function(){return!i&&w.getUI(f).on("overlayedAreaChanged:"+t,(function(e){O(e),y((function(t){return!!t!==!!e?e:t}))}))}),[]),(0,o.useLayoutEffect)((function(){return!i&&O(b)}),[b]),b||i?o.default.createElement(m,d({ref:v},g),l):null};t.default=(0,o.memo)(g)},98066:(e,t,r)=>{t.__esModule=!0,t.default=t.Period=void 0;var n=s(r(96540)),a=s(r(8711)),o=r(10058),i=s(r(35083)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(6504)),u=s(r(33640)),c=r(22332),f=r(93658);function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function s(e){return e&&e.__esModule?e:{default:e}}var p=(0,a.default)(l.Button).withConfig({displayName:"correlation__CorrelationButton",componentId:"sc-a0l0u6-0"})(["pointer-events:all;"]);t.Period=function(e){var t=e.id,r=(0,c.useAttributeValue)("overlays")[t].range,a=r[0],i=r[1],l=(0,f.getDateDiff)(a,i);return n.default.createElement(o.TextNano,{strong:!0},l)},t.default=function(e){var t=e.id,r=(0,c.useAttributeValue)("overlays")[t].range,a=r[0],f=function(e){return e<15?"requires 15 secs minimum selection":""}(r[1]-a),d=(0,c.useChart)();return n.default.createElement(u.default,{content:f?"Metrics correlation: "+f:"Run metrics correlation"},n.default.createElement(o.Flex,null,n.default.createElement(p,{"data-track":d.track("metrics-correlation"),icon:n.default.createElement(l.default,{svg:i.default,size:"20px"}),onClick:function(){return d.sdk.trigger("correlation",d,r)},"data-testid":"highlight-correlations",disabled:!!f})))}},8586:(e,t,r)=>{t.__esModule=!0,t.default=t.Divider=void 0;var n,a=f(r(96540)),o=(n=r(8711))&&n.__esModule?n:{default:n},i=r(10058),l=f(r(98066)),u=r(22332);function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function f(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=c(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}var s=(0,o.default)(i.Flex).attrs({justifyContent:"center",alignItems:"center",gap:2,height:"40px",alignSelf:"center",round:!0,width:{min:"70px"},padding:[1,2],border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"highlight__StyledHighlight",componentId:"sc-e18ttp-0"})(["background-color:","80;"],(0,i.getColor)("mainBackground")),p=t.Divider=(0,o.default)(i.Flex).withConfig({displayName:"highlight__Divider",componentId:"sc-e18ttp-1"})(["background:",";height:16px;width:1px;"],(0,i.getColor)("borderSecondary")),m=(0,a.memo)((function(e){return a.default.createElement(i.Flex,{column:!0,gap:[.5]},a.default.createElement(i.TextNano,{strong:!0,textTransform:"uppercase",color:"textLite"},"Range"),a.default.createElement(l.Period,e))})),g=function(e){var t=e.id,r=e.correlationProps,n=(0,u.useAttributeValue)("hasCorrelation");return(0,u.useAttributeValue)("focused")?a.default.createElement(s,null,a.default.createElement(m,{id:t}),n?a.default.createElement(a.default.Fragment,null,a.default.createElement(p,null),a.default.createElement(l.default,d({id:t},r))):null):null};t.default=(0,a.memo)(g)},94833:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),o=r(22332),i=(n=r(71840))&&n.__esModule?n:{default:n},l=["type"];function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}var f=function(e){var t=e.uiName,r=(0,o.useAttributeValue)("overlays");return a.default.createElement(a.Fragment,null,Object.keys(r).map((function(e){var n=r[e],o=n.type,u=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(n,l),f=i.default[o];return a.default.createElement(f,c({key:e,id:e,uiName:t},u))})))};t.default=(0,a.memo)(f)},92585:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=c(r(96540)),a=c(r(8711)),o=r(10058),i=r(22332),l=c(r(56284)),u=["dimensionId","textProps"];function c(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},f.apply(this,arguments)}var d=(0,a.default)(o.Text).withConfig({displayName:"latestValue__StrokeLabel",componentId:"sc-1x8pqx7-0"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary")),s=(0,a.default)(o.Flex).withConfig({displayName:"latestValue__StyledFlex",componentId:"sc-1x8pqx7-1"})(["pointer-events:none;"]),p={color:"text",whiteSpace:"nowrap"};t.default=function(e){var t=e.dimensionId,r=e.textProps,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,u),o=(0,i.useUnitSign)(),c=(0,i.useLatestConvertedValue)(t),m=(0,i.useOnResize)(),g=m.width,v=m.height;return c&&"-"!==c?n.default.createElement(s,f({column:!0},a),n.default.createElement(l.default,f({Component:d,maxHeight:.8*(v-20),maxWidth:g-20,fontSize:"2.1em",lineHeight:"1.1em",strong:!0},p,r),c),n.default.createElement(l.default,f({Component:d,maxHeight:.25*(v-20),maxWidth:.7*(g-20),fontSize:"1.1em",strong:!0},p,{color:"textLite"},r),o)):n.default.createElement(l.default,f({Component:d,maxHeight:.9*(v-20),maxWidth:g-20,fontSize:"2.5em",strong:!0},p,r,a),"string"!==typeof c?"Loading...":"No data")}},48666:(e,t,r)=>{t.__esModule=!0,t.default=t.Processing=void 0;var n=u(r(96540)),a=u(r(8711)),o=r(10058),i=r(22332),l=["defaultValue","uiName"];function u(e){return e&&e.__esModule?e:{default:e}}var c=(0,a.default)(o.Flex).attrs({column:!0,round:!0,border:{side:"all",color:"borderSecondary"},gap:1,padding:[1,2],flex:!1}).withConfig({displayName:"proceeded__ProceededContainer",componentId:"sc-ac5spo-0"})(["direction:initial;"]),f=function(e){var t=e.defaultValue,r=e.uiName,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,l),u=(0,i.useChart)().getUI(r).getChartWidth(),f=(0,i.useChartError)();return u<240?null:f&&t?n.default.createElement(c,a,n.default.createElement(o.Text,{textAlign:"center",textTransform:"firstLetter"},f||t)):null},d=(0,a.default)(o.Flex).withConfig({displayName:"proceeded__CenterContainer",componentId:"sc-ac5spo-1"})(["z-index:60000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);"]);t.Processing=function(){return n.default.createElement(d,null,n.default.createElement(f,{defaultValue:"Processing"}))},t.default=f},71840:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=w(r(96540)),a=w(r(8711)),o=w(r(41956)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=y(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(85338)),l=w(r(97556)),u=w(r(74787)),c=w(r(8586)),f=w(r(48666)),d=w(r(33406)),s=w(r(92585)),p=r(22332),m=["id"],g=["id"],v=["id"],h=["id","uiName"],b=["containerProps"];function y(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(y=function(e){return e?r:t})(e)}function w(e){return e&&e.__esModule?e:{default:e}}function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},O.apply(this,arguments)}function x(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var _=(0,a.default)(o.default).withConfig({displayName:"types__NoEventsContainer",componentId:"sc-19vz950-0"})(["pointer-events:none;"]);t.default={alarm:function(e){var t=e.id,r=x(e,m);return n.default.createElement(i.default,O({id:t,top:"20px",margin:[0,2,0,0],align:i.alignment.elementLeft},r),n.default.createElement(l.default,{id:t}))},alarmRange:function(e){var t=e.id,r=x(e,g);return n.default.createElement(i.default,O({id:t,top:"20px",margin:[0,2,0,0],align:i.alignment.elementLeft},r),n.default.createElement(u.default,{id:t}))},highlight:function(e){var t=e.id,r=x(e,v);return(0,p.useAttributeValue)("sparkline")?null:n.default.createElement(i.default,O({id:t,align:i.alignment.elementRight,bottom:"25px",right:100},r,{noEvents:!0}),n.default.createElement(c.default,{id:t}))},proceeded:function(e){var t=e.id,r=e.uiName,a=x(e,h);return n.default.createElement(i.default,O({id:t,top:"50%",align:i.alignment.chartMiddle,uiName:r},a),n.default.createElement(f.default,{id:t,uiName:r}))},name:function(e){var t=e.containerProps,r=x(e,b);return n.default.createElement(_,O({isAbsolute:!0,position:"top",margin:[2,0,0,0]},t),n.default.createElement(d.default,r))},latestValue:function(e){return n.default.createElement(_,{isAbsolute:!0,position:"center"},n.default.createElement(s.default,e))}}},42417:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=h(r(96540)),a=h(r(8711)),o=r(10058),i=v(r(99010)),l=h(r(1249)),u=v(r(24652)),c=r(22332),f=r(96380),d=r(22753),s=r(67268),p=["children","fractionDigits"],m=["children","showFull"];function g(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(g=function(e){return e?r:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=g(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}function h(e){return e&&e.__esModule?e:{default:e}}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},b.apply(this,arguments)}function y(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var w=(0,a.default)(o.Flex).attrs({position:"relative","data-testid":"chartPopover-dimension",padding:[1,0]}).withConfig({displayName:"dimension__GridRow",componentId:"sc-adzl1v-0"})(["display:contents;"]),O=(0,a.default)(i.ColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"dimension__ColorBackground",componentId:"sc-adzl1v-1"})([""]),x={ANOMALY_RATE:"arp",default:"value"},_=function(e){var t=e.children,r=e.fractionDigits,a=void 0===r?0:r,i=y(e,p),l=t.toString().split("."),c=l[0],f=l[1];return n.default.createElement(o.Flex,{alignItems:"center",justifyContent:"end"},n.default.createElement(u.Value,b({},i,{textAlign:"right"}),c),"undefined"!==typeof f&&n.default.createElement(u.Value,i,"."),n.default.createElement(u.Value,b({as:o.Flex,flex:!1,width:1.6*a},i,{textAlign:"left"}),f))},j=function(e){var t=e.children,r=e.showFull,a=y(e,m);return n.default.createElement(o.Flex,{gap:1,justifyContent:"end"},Object.keys(t).map((function(e){return n.default.createElement(o.Flex,{key:e,border:{size:"1px",side:"all",color:t[e]},round:!0,flex:!1,padding:[0,.5]},n.default.createElement(u.Value,b({},a,{color:t[e]}),r&&f.labels[e]||e))})))};t.default=function(e){var t=e.id,r=e.strong,a=e.rowFlavour,f=(0,c.useVisibleDimensionId)(t),p=(0,c.useChart)().getAttribute("unitsConversionFractionDigits"),m=(0,d.useIsHeatmap)();return n.default.createElement(w,{opacity:f?null:"weak"},n.default.createElement(o.Flex,{alignItems:"center",gap:1,position:"relative"},n.default.createElement(O,{id:t,valueKey:x[a]||x.default,height:"18px"},!m&&n.default.createElement(i.default,{id:t})),n.default.createElement(l.default,{padding:[1,2],flex:!0,id:t,strong:r,noTooltip:!0,color:r?"textFocus":"text"})),n.default.createElement(u.default,{id:t,strong:r,visible:f,Component:_,fractionDigits:p,color:a===s.rowFlavours.default?r?"textFocus":"text":"textLite"}),n.default.createElement(u.default,{id:t,strong:r,visible:f,valueKey:"arp",Component:_,fractionDigits:2,color:a===s.rowFlavours.ANOMALY_RATE?"anomalyTextFocus":"anomalyText"}),n.default.createElement(u.default,{textAlign:"right",id:t,strong:r,visible:f,valueKey:"pa",Component:j,color:a===s.rowFlavours.ANNOTATIONS?r?"textFocus":"text":"textLite",showFull:a===s.rowFlavours.ANNOTATIONS}))}},67268:(e,t,r)=>{t.__esModule=!0,t.rowFlavours=t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=d(r(8711)),o=r(10058),i=r(22332),l=d(r(75010)),u=d(r(24413)),c=d(r(17073)),f=d(r(42417));function d(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}var p=(0,a.default)(o.Flex).attrs({round:!0,width:{min:"196px",max:"80vw"},background:"dropdown",column:!0,padding:[4],gap:1}).withConfig({displayName:"dimensions__Container",componentId:"sc-172on4u-0"})(["box-shadow:0px 8px 12px rgba(9,30,66,0.15),0px 0px 1px rgba(9,30,66,0.31);"]),m=a.default.div.withConfig({displayName:"dimensions__Grid",componentId:"sc-172on4u-1"})(["display:grid;width:100%;grid-template-columns:minmax(150px,max-content) 60px 60px minmax(80px,auto);align-items:center;"]),g=a.default.div.withConfig({displayName:"dimensions__GridHeader",componentId:"sc-172on4u-2"})(["display:contents;"]),v=[null,null],h=function(){var e=Math.floor((window.innerHeight-500)/15)||16;return e<5?5:10},b=function(){return h()/2},y=t.rowFlavours={ANOMALY_RATE:"ANOMALY_RATE",ANNOTATIONS:"ANNOTATIONS",default:"VALUE"},w={ANOMALY_RATE:"anomalyDesc",ANNOTATIONS:"annotationsDesc",default:"valueDesc"},O=function(){var e=(0,i.useChart)(),t=(0,i.useAttributeValue)("hoverX")||v,r=t[0],a=t[1],d=(0,n.useMemo)((function(){var t=e.getClosestRow(r),n=e.onHoverSortDimensions(t,w[a]||w.default)||[];e.getAttribute("selectedDimensions").length>0&&(n=n.filter((function(t){return e.isDimensionVisible(t)})));var o=n.findIndex((function(e){return e===a})),i=n.length,l=Math.floor(function(e,t){return e<h()||t<b()?0:t>e-b()?t-(b()+(e-t)):t-b()}(i,o)),u=Math.ceil(function(e,t){return e<h()?e:t<b()?t+b()+(b()-t):t>e-b()?e:t+b()}(i,o));return[l,u,i,n.slice(l,u)]}),[e,a,r]),s=d[0],O=d[1],x=d[2],_=d[3],j=y[a]||y.default;return n.default.createElement(p,{"data-testid":"chartPopover-dimensions",gap:2},n.default.createElement(o.Flex,{column:!0,gap:1},r&&n.default.createElement(c.default,{value:r}),n.default.createElement(u.default,null)),n.default.createElement(o.Flex,{flex:!1,height:3},s>0&&n.default.createElement(o.TextNano,{color:"textLite"},"\u2191",s," more values")),n.default.createElement(m,{gap:1,column:!0},n.default.createElement(g,null,n.default.createElement(o.TextMicro,{strong:!0},"Dimension"),n.default.createElement(o.TextMicro,{color:j===y.default?"text":"textLite",textAlign:"right"},"Value","heatmap"!==e.getAttribute("chartType")&&n.default.createElement(n.default.Fragment,null," ",n.default.createElement(l.default,{visible:!0,strong:j===y.default,color:j===y.default?"text":"textLite"}))),n.default.createElement(o.TextMicro,{strong:j===y.ANOMALY_RATE,color:j===y.ANOMALY_RATE?"text":"textLite",textAlign:"right"},"AR %"),n.default.createElement(o.TextMicro,{strong:j===y.ANNOTATIONS,color:j===y.ANNOTATIONS?"text":"textLite",textAlign:"right"},"Info")),_.map((function(e){return n.default.createElement(f.default,{key:e,id:e,strong:a===e,rowFlavour:j})}))),n.default.createElement(o.Flex,{flex:!1,height:3},O<x&&n.default.createElement(o.TextNano,{color:"textLite",margin:[2,0,0]},"\u2193",x-O," more values")))};t.default=(0,n.memo)(O)},34101:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=s(r(40961)),i=s(r(93331)),l=s(r(22007)),u=s(r(44862)),c=r(28973),f=r(22332),d=s(r(67268));function s(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}var m={right:"left",bottom:"top"},g={right:"left",top:"bottom"},v={left:"right",bottom:"top"},h={left:"right",top:"bottom"};t.default=function(e){var t=e.uiName,r=(0,f.useChart)(),s=(0,n.useRef)(),p=(0,n.useState)(),b=p[0],y=p[1],w=(0,n.useRef)(),O=(0,n.useRef)(),x=(0,n.useState)(!1),_=x[0],j=x[1],P=(0,n.useState)(m),E=P[0],k=P[1];w.current=b,O.current=(0,l.default)(b,s,E,"width"),(0,n.useEffect)((function(){return(0,c.unregister)(r.getUI(t).on("mousemove",(function(e){if(!r.getAttribute("panning")&&!r.getAttribute("highlighting")){var t=e.offsetX||e.layerX,n=e.offsetY||e.layerY;if(j(!0),w.current){w.current.style.left=t+"px",w.current.style.top=n+"px",O.current();var a=window.innerHeight,o=window.innerWidth,i=s.current.getBoundingClientRect(),l=i.width,u=i.height;k(function(e,t){return e&&t?m:e?g:t?v:h}(t+l>o,n+u>a))}}})),r.getUI(t).on("mouseout",(function(){return j(!1)})),r.onAttributeChange("panning",(function(e){return e&&j(!1)})),r.onAttributeChange("highlighting",(function(e){return e&&j(!1)})))}),[r]);var M=(0,u.default)();return _?n.default.createElement(n.Fragment,null,n.default.createElement(a.Flex,{ref:function(e){return y(e)},position:"absolute"}),o.default.createPortal(n.default.createElement(i.default,{"data-toolbox":r.getId(),margin:[E.top?2:-2,E.right?-2:2],ref:s,width:{max:"100%"},column:!0,"data-testid":"drop",sx:{pointerEvents:"none"}},n.default.createElement(d.default,{uiName:t,"data-testid":"chartPopover"})),M)):null}},17073:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(22332);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}t.default=function(e){var t=e.value,r=(0,o.useChart)(),i=(0,n.useMemo)((function(){return r.formatDate(t)+" \u2022 "+r.formatTime(t)}),[t]);return n.default.createElement(a.TextMicro,{color:"textDescription","data-testid":"chartPopover-timestamp"},i)}},24413:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=r(22332);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}t.default=function(){var e=(0,o.useAttributeValue)("viewUpdateEvery"),t=(0,o.useAttributeValue)("updateEvery"),r=(0,o.useAttributeValue)("groupingMethod");return n.default.createElement(n.Fragment,null,n.default.createElement(a.Flex,{gap:1,"data-testid":"chartPopover-collection"},n.default.createElement(a.TextMicro,{color:"textLite"},"Granularity:"),n.default.createElement(a.TextMicro,{color:"textDescription"},t,"s")),e!==t&&n.default.createElement(a.Flex,{gap:1,"data-testid":"chartPopover-collection"},n.default.createElement(a.TextMicro,{color:"textLite"},"View point:"),n.default.createElement(a.TextMicro,{color:"textDescription"},r," ",e,"s")))}},99684:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=(n=r(96540))&&n.__esModule?n:{default:n},o=r(10058);t.default=function(e){var t=e.disabled;return a.default.createElement(o.Flex,{width:"1px",background:t?"disabled":"borderSecondary"})}},31899:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=d(r(96540)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(8711)),o=r(10058),i=r(22332),l=d(r(6504)),u=d(r(42883)),c=["height"];function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}var p=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),m=(0,a.default)(l.default).attrs({svg:u.default,width:"100%"}).withConfig({displayName:"skeleton__SkeletonIcon",componentId:"sc-x7r6du-0"})(["animation:"," 1.6s ease-in infinite;"],p);t.default=function(e){var t=e.height,r=void 0===t?"90%":t,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,c),l=(0,i.useLoadingColor)();return n.default.createElement(o.Flex,s({flex:!0,padding:[0,0,0,10]},a),n.default.createElement(m,{color:l,height:r}))}},49096:(e,t,r)=>{t.Ay=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(96540)),a=r(10058),o=d(r(74113)),i=r(22332),l=d(r(10534)),u=r(89380),c=d(r(56284)),f=["uiName"];function d(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},p.apply(this,arguments)}var m=function(e){var t=(0,i.useOnResize)(),r=t.width,o=t.height,l=(0,i.useLatestConvertedValue)("selected");return n.default.createElement(c.default,p({Component:a.Text,maxHeight:.7*(o-20),maxWidth:r-20,lineHeight:"1.1em",strong:!0},e),l)},g=function(e){var t=(0,i.useOnResize)(),r=t.width,o=t.height,l=(0,i.useUnitSign)();return l?n.default.createElement(c.default,p({Component:a.Text,maxHeight:.25*(o-20),maxWidth:.7*(r-20),fontSize:"1.1em",strong:!0,color:"textLite"},e),l):null},v=(0,n.forwardRef)((function(e,t){var r=e.uiName,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,f);return n.default.createElement(u.ChartWrapper,{ref:t},n.default.createElement(o.default,p({uiName:r,column:!0,alignItems:"center",justifyContent:"center",position:"relative"},a),n.default.createElement(m,null),n.default.createElement(g,null)))}));t.Ay=(0,l.default)(v,{tile:!0})},57513:(e,t,r)=>{t.__esModule=!0,t.default=t.Title=void 0;var n,a=(n=r(96540))&&n.__esModule?n:{default:n},o=r(10058),i=r(22332);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}var u=t.Title=function(e){var t=(0,i.useTitle)(),r=(0,i.useUnitSign)({long:!0}),n=(0,i.useName)();return a.default.createElement(o.Flex,l({overflow:"hidden","data-testid":"chartHeaderStatus-title",gap:1,flex:"shrink",justifyContent:"start"},e),a.default.createElement(o.TextSmall,{color:"textDescription",truncate:!0},t),!!n&&a.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap"},t?"\u2022 ":"",n),!!r&&a.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap"},"\u2022 [",r,"]"))};t.default=(0,i.withChartProvider)(u)},90592:(e,t,r)=>{t.__esModule=!0,t.default=t.Container=void 0;var n=d(r(96540)),a=r(10058),o=r(22332),i=d(r(99684));t.Separator=i.default;var l=d(r(13752));t.ChartType=l.default;var u=d(r(92815));t.Fullscreen=u.default;var c=d(r(72582));t.Information=c.default;var f=["children"];function d(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}var p=t.Container=function(e){return n.default.createElement(a.Flex,s({gap:1,justifyContent:"end",alignItems:"center",flex:!0,"data-testid":"chartHeaderToolbox",zIndex:5},e))};t.default=function(e){var t=e.children,r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,f),a=!(0,o.useAttributeValue)("focused"),i=(0,o.useAttributeValue)("toolboxElements");return n.default.createElement(p,r,t,i.map((function(e,t){return n.default.createElement(e,{key:t,disabled:a})})))}},33862:(e,t)=>{t.__esModule=!0,t.createCanvas=t.copyCanvas=void 0;t.createCanvas=function(e,t){var r=document.createElement("canvas");return r.width=e,r.height=t,r},t.copyCanvas=function(e,t){t.width=e.width,t.height=e.height;var r=t.getContext("2d");r.clearRect(0,0,t.width,t.height),r.drawImage(e,0,0)}},20207:(e,t)=>{function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.__esModule=!0,t.uppercase=t.underscoredKeys=t.underscoreToCamel=t.objectTransformator=t.camelizeKeys=t.camelToUnderscore=void 0;t.uppercase=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};var o=t.camelToUnderscore=function(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase()},i=t.underscoreToCamel=function(e){return e.replace(/([_][a-z])/g,(function(e){return e[1].toUpperCase()}))},l=[],u=function(e,t,r){var a;return n(n({},e),{},((a={})[o(t)]=r,a))},c=function(e,t,r){var a;return n(n({},e),{},((a={})[i(t)]=r,a))},f=t.objectTransformator=function(e,t){var r=t.func,a=t.action,o=t.omit,i=void 0===o?l:o;return Array.isArray(e)?e.map((function(e){return r(e,{omit:i})})):"object"===typeof e&&e?Object.keys(e).reduce((function(t,o){var l;if(i.includes(o))return n(n({},t),{},((l={})[o]=e[o],l));var u=r(e[o],{omit:i});return a(t,o,u)}),{}):e};t.underscoredKeys=function e(t,r){var n=(void 0===r?{}:r).omit;return f(t,{func:e,action:u,omit:void 0===n?l:n})},t.camelizeKeys=function e(t,r){var n=(void 0===r?{}:r).omit;return f(t,{func:e,action:c,omit:void 0===n?l:n})}},93331:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(8711)),o=(n=r(15877))&&n.__esModule?n:{default:n},i=["zIndex"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=(0,a.keyframes)(["0%{opacity:0.5;transform:scale(0.8);}100%{opacity:1;transform:scale(1);}"]),d=(0,a.css)(["opacity:0;animation:"," 0.1s forwards;animation-delay:0.01s;"],f),s=(0,a.default)(o.default).attrs((function(e){var t=e.zIndex;return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?u(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({zIndex:void 0===t?70:t,position:"fixed"},function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,i))})).withConfig({displayName:"container__Container",componentId:"sc-l6u9ms-0"})(["left:-99999px;"," "," "," backface-visibility:hidden;perspective:1000;transform:translate3d(0,0,0);will-change:left,top,transform;"],(function(e){return e.animation&&d}),(function(e){return!e.hideShadow&&"box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);"}),(function(e){return!!e.noEvents&&"pointer-events: none;"}));t.default=s},22007:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(96540),a=function e(t,r,n,a){void 0===a&&(a=!0);var o=function(e,t,r){return"left"===e.left?t.left:"right"===e.left?t.right:"right"===e.right?t.right-r.width:"left"===e.right?t.left-r.width:t.left+t.width/2-r.width/2}(t,r,n),i=Math.max(0,o);return o=Math.min(window.innerWidth-n.width,i),a||i===o?o:e(function(e){return"left"===e.left?{right:"right"}:"right"===e.left?{right:"left"}:"right"===e.right?{left:"left"}:"left"===e.right?{left:"right"}:void 0}(t),r,n)},o=function e(t,r,n,a){void 0===a&&(a=!0);var o=function(e,t,r){if("top"===e.top)return t.top;if("bottom"===e.top)return t.bottom;if("bottom"===e.bottom)return t.bottom-r.height;if("top"===e.bottom){var n=t.top-r.height;return n<0&&t.bottom+r.height<window.innerHeight?t.bottom:n}return t.top+t.height/2-r.height/2}(t,r,n),i=Math.max(0,o);return o=Math.min(window.innerHeight-n.height,i),a||i===o?o:e(function(e){return"top"===e.top?{bottom:"bottom"}:"bottom"===e.top?{bottom:"top"}:"bottom"===e.bottom?{top:"top"}:"top"===e.bottom?{top:"bottom"}:void 0}(t),r,n)},i=["top","right","bottom","right","width"];t.default=function(e,t,r,l,u,c){return(0,n.useCallback)((function(){if(t.current){i.forEach((function(e){return t.current.style[e]=""}));var n=e.getBoundingClientRect(),f=t.current.getBoundingClientRect(),d=function(e,t,r){return"align"===e?Math.min(t.width,r.width):"width"===e?Math.max(t.width,r.width):Math.min(r.width,window.innerWidth)}(l,n,f);f.width=d;requestAnimationFrame((function(){var e=a(r,n,f,u),i=o(r,n,f,u);t.current&&(c&&t.current.style.left||(t.current.style.left=e+"px"),t.current.style.top=i+"px",l&&(t.current.style.width=d+"px"))}))}}),[e,r,l])}},98909:(e,t,r)=>{t.__esModule=!0,t.sx=t.default=void 0;var n=M(r(8711)),a=M(r(27988)),o=M(r(32305)),i=M(r(36094)),l=M(r(62703)),u=M(r(31886)),c=M(r(25320)),f=M(r(96029)),d=M(r(88725)),s=M(r(86397)),p=M(r(11564)),m=M(r(48488)),g=M(r(26278)),v=M(r(11341)),h=M(r(22318)),b=M(r(97373)),y=M(r(90836)),w=M(r(41311)),O=M(r(85103)),x=M(r(20909)),_=M(r(92108)),j=M(r(48299)),P=r(36350),E=r(50677),k=M(r(50402));function M(e){return e&&e.__esModule?e:{default:e}}var C=t.sx=function(e){return(0,k.default)(e.sx)(e)};t.default=function(e){return(0,n.default)(e).withConfig({displayName:"flex",componentId:"sc-1gtk8kg-0"})(["display:flex;"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",""],v.default,x.default,h.default,b.default,y.default,w.default,a.default,c.default,o.default,i.default,O.default,p.default,s.default,P.fontColor,g.default,u.default,_.default,l.default,m.default,f.default,d.default,j.default,E.position,C)}},15877:(e,t,r)=>{var n;t.__esModule=!0,t.default=void 0;var a=(0,((n=r(98909))&&n.__esModule?n:{default:n}).default)("div");t.default=a},41956:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=u(r(8711)),a=u(r(97373)),o=u(r(90836)),i=u(r(41311)),l=u(r(37341));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(e,t){return"0"!==e&&"0"!==t?"calc((100% - "+e+") - "+t+")":"0"===e&&"0"===t?"100%":"calc(100% - "+("0"===e?t:e)+")"},f=new Set(["top","center","bottom"]),d=new Set(["bottom-left","left","top-left"]),s=new Set(["right","center","left"]),p=new Set(["top-left","top","top-right"]),m=new Set(["top-right","right","bottom-right"]),g=new Set(["bottom-right","bottom","bottom-left"]),v=n.default.div.attrs((function(e){var t=e.theme,r=e.margin;return{marginDimensions:(0,l.default)(t,r)}})).withConfig({displayName:"container__Container",componentId:"sc-k2hlzf-0"})(["position:",";display:flex;outline:none;pointer-events:all;"," "," "," "," "," "," "," "," "," "," "," ",""],(function(e){return e.isAbsolute?"absolute":"fixed"}),a.default,o.default,i.default,(function(e){var t=e.marginDimensions,r=t.top,n=t.bottom;return"max-height: "+c(r,n)+";"}),(function(e){var t=e.marginDimensions,r=t.right,n=t.left;return"max-width: "+c(n,r)+";"}),(function(e){var t=e.position,r=e.full,n=e.marginDimensions;return"vertical"===r||!0===r||p.has(t)?"top: "+n.top+";":s.has(t)?"top: 50%;":""}),(function(e){var t=e.position,r=e.full,n=e.marginDimensions;return"horizontal"===r||!0===r||m.has(t)?"right: "+n.right+";":""}),(function(e){var t=e.position,r=e.full,n=e.marginDimensions;return"vertical"===r||!0===r||g.has(t)?"bottom: "+n.bottom+";":""}),(function(e){var t=e.position,r=e.full,n=e.marginDimensions;return"horizontal"===r||!0===r||d.has(t)?"left: "+n.left+";":f.has(t)?"left: 50%;":""}),(function(e){var t=e.full,r=e.position,n=function(){var e=!0!==t&&"horizontal"!==t&&f.has(r),n=!0!==t&&"vertical"!==t&&s.has(r);return e||n?e&&!n?"translateX(-50%)":!e&&n?"translateY(-50%)":"translate(-50%, -50%)":""}();return n&&"transform: "+n+";"}),(function(e){return e.borderShadow&&"box-shadow: 0px 2px 68px rgba(0, 0, 0, 0.288);"}),(function(e){var t=e.zIndex,r=void 0===t?35:t;return"z-index: "+r+";"}));t.default=v},37341:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(48558),a={top:"0",right:"0",bottom:"0",left:"0"};t.default=function(e,t){if(!Array.isArray(t)||t.length<1||t.length>4)return a;var r=t.map((function(t){return(0,n.getDimension)(e,t)}));return 1===r.length?{top:r[0],right:r[0],bottom:r[0],left:r[0]}:2===r.length?{top:r[0],right:r[1],bottom:r[0],left:r[1]}:3===r.length?{top:r[0],right:r[1],bottom:r[2],left:r[1]}:{top:r[0],right:r[1],bottom:r[2],left:r[3]}}},90836:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",stretch:"stretch"};t.default=function(e){var t=e.alignContent;return t in r?"align-content: "+r[t]+";":""}},97373:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"};t.default=function(e){var t=e.alignItems;return t in r?"align-items: "+r[t]+";":""}},26278:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(41234);t.default=function(e){var t=e.theme,r=e.background,a=e.backgroundOpacity;if(!r)return"";var o=a?(0,n.getRgbColor)(r,a)({theme:t}):(0,n.getColor)(r)({theme:t});return o&&"background-color: "+o+";"}},92108:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(41234);function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var l={all:function(e){return"\n border: "+e.size+" "+e.type+" "+e.color+";\n "},horizontal:function(e){var t=e.size,r=e.type,n=e.color;return"\n border-top: "+t+" "+r+" "+n+";\n border-bottom: "+t+" "+r+" "+n+";\n "},vertical:function(e){var t=e.size,r=e.type,n=e.color;return"\n border-left: "+t+" "+r+" "+n+";\n border-right: "+t+" "+r+" "+n+";\n "},top:function(e){return"\n border-top: "+e.size+" "+e.type+" "+e.color+";\n "},right:function(e){return"\n border-right: "+e.size+" "+e.type+" "+e.color+";\n "},bottom:function(e){return"\n border-bottom: "+e.size+" "+e.type+" "+e.color+";\n "},left:function(e){return"\n border-left: "+e.size+" "+e.type+" "+e.color+";\n "}},u=function(e){return{color:(0,n.getColor)("border")({theme:e}),size:"1px",side:"all",type:"solid"}};t.default=function(e){var t=e.theme,r=e.border;if(void 0===r)return"";if(!0===r)return l.all(u(t));if(r in l)return l[r](u(t));if("string"===typeof r)return l.all(o(o({},u(t)),{},{color:(0,n.getColor)(r||"border")({theme:t})}));if("object"!==typeof r)return"";var a=r.side,i=r.color;return a in l&&l[a](o(o(o({},u(t)),r),{},{color:(0,n.getColor)(i||"border")({theme:t})}))}},20909:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=function(e,t,r){return e?"column":t?"column-reverse":r?"row-reverse":"row"}(e.column,e.columnReverse,e.rowReverse);return"flex-direction: "+t+";"}},11341:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.flex,r=e.basis;if(void 0===t&&void 0===r)return"";if(r&&void 0===t)return"flex-basis: "+r+";";var n=function(e,t){return void 0===t&&(t="auto"),!0===e?"1 1 "+t:!1===e?"0 0 "+t:"grow"===e?"1 0 "+t:"shrink"===e?"0 1 "+t:"number"===typeof e?e+" 0 "+t:"object"!==typeof e?e:e.grow+" "+e.shrink+" "+t}(t,r);return n?"flex: "+n+";":""}},85103:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,r=e.gap,n=e.column,a=e.columnReverse,o=e.rowReverse;if("number"!==typeof r)return"";var i=function(e){var t=e.column,r=e.columnReverse,n=e.rowReverse;return t||r?"bottom":n?"left":"right"}({column:n,columnReverse:a,rowReverse:o});return"\n &> *:not(:last-child) {\n margin-"+i+": "+t*r+"px;\n }\n "}},86397:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,r=e.height;if("object"===typeof r){var n=r.min,a=void 0===n?"":n,o=r.max,i=void 0===o?"":o;return"\n "+(a&&"min-height: "+("number"===typeof a?t*a+"px":a)+";")+"\n "+(i&&"max-height: "+("number"===typeof i?t*i+"px":i)+";")+"\n "}return r&&"height: "+("number"===typeof r?t*r+"px":r)+";"}},41311:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly",stretch:"stretch"};t.default=function(e){var t=e.justifyContent;return t in r?"justify-content: "+r[t]+";":""}},48488:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.overflow;if(!t)return"";if("string"===typeof t)return"overflow: "+t+";";var r=t.vertical,n=void 0===r?"":r,a=t.horizontal,o=void 0===a?"":a;return"\n "+(n&&"overflow-y: "+n+";")+"\n "+(o&&"overflow-x: "+o+";")+"\n "}},48299:(e,t,r)=>{t.__esModule=!0,t.pseudoSelectors=t.default=t.calculateStyles=void 0;var n=c(r(26278)),a=c(r(92108)),o=r(41234),i=c(r(97373)),l=["theme"],u=["theme"];function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}var m={border:a.default,background:n.default,color:function(e){var t=e.theme,r=e.color;return r?"color: "+(0,o.getColor)(r)({theme:t})+";":""},alignItems:i.default},g=t.calculateStyles=function(e){var t=e.theme,r=p(e,l),n="";for(var a in r)if(void 0===m[a]){n=n+(a+":")+r[a]+";"}else{var o=m[a];n+=o&&"function"===typeof o?o(d({theme:t},r)):""}return n},v=t.pseudoSelectors={_before:"&::before",_after:"&::after",_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_focusWithin:"&:focus-within",_visited:"&:visited",_empty:"&:empty",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_disabled:"&[disabled], &[aria-disabled=true], &[data-disabled]",_checked:"&[aria-checked=true]",_mixed:"&[aria-checked=mixed]",_selected:"&[aria-selected=true], [data-selected] > &",_invalid:"&[aria-invalid=true]",_pressed:"&[aria-pressed=true]",_readOnly:"&[aria-readonly=true], &[readonly]",_first:"&:first-of-type",_last:"&:last-of-type",_expanded:"&[aria-expanded=true]",_grabbed:"&[aria-grabbed=true]",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_groupHover:"[role=group]:hover &",_autofill:"&:-webkit-autofill",_placeholder:"&::placeholder"};t.default=function(e){var t=e.theme,r=p(e,u),n="";for(var a in r)if(a in v){var o=a,i=r[o],l=g(d({theme:t},i));n=n+"\n "+v[o]+"{ \n "+l+" \n }"}return n.replace(/^(?=\n)$|^\s*|\s*$|\n\n+/gm,"")}},11564:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,r=e.width;if("object"===typeof r){var n=r.min,a=void 0===n?"":n,o=r.max,i=void 0===o?"":o,l=r.base,u=void 0===l?"":l;return"\n "+(a&&"min-width: "+("number"===typeof a?t*a+"px":a)+";")+"\n "+(i&&"max-width: "+("number"===typeof i?t*i+"px":i)+";")+"\n "+(u&&"width: "+("number"===typeof u?t*u+"px":u)+";")+"\n "}return r&&"width: "+("number"===typeof r?t*r+"px":r)+";"}},22318:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=function(e){return!0===e?"wrap":!1===e?"nowrap":"reverse"===e?e:""}(e.flexWrap);return t&&"flex-wrap: "+t+";"}},23234:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=new Set(["left","center","right"]);t.default=function(e){var t=e.textAlign;return r.has(t)&&"text-align: "+t+";"}},67789:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=new Set(["underline","none","line-through"]);t.default=function(e){var t=e.textDecoration;return r.has(t)&&"text-decoration: "+t+";"}},610:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){return e.truncate&&"\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"}},44453:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=new Set(["normal","nowrap","pre-line","pre-wrap"]);t.default=function(e){var t=e.whiteSpace;return r.has(t)&&"white-space: "+t+";"}},30109:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=new Set(["normal","break-all","keep-all","break-word"]);t.default=function(e){var t=e.wordBreak;return r.has(t)&&"word-break: "+t+";"}},36350:(e,t,r)=>{t.__esModule=!0,t.makeTypography=t.makeText=t.makeSmall=t.makeNano=t.makeMicro=t.makeHuge=t.makeH6=t.makeH5=t.makeH4=t.makeH3=t.makeH2=t.makeH1=t.makeH0=t.makeFemto=t.makeBigger=t.makeBig=t.fontColor=t.fontCode=void 0;var n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=h(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}(r(8711)),a=r(41234),o=v(r(27988)),i=v(r(32305)),l=v(r(36094)),u=v(r(60090)),c=v(r(23234)),f=v(r(67789)),d=v(r(610)),s=v(r(44453)),p=v(r(30109)),m=v(r(31886)),g=v(r(88725));function v(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(h=function(e){return e?r:t})(e)}var b=t.fontColor=function(e){var t=e.theme,r=e.color,n=void 0===r?"text":r;return"color: "+(0,a.getColor)(n)({theme:t})+";"},y=t.fontCode=function(e){var t=e.background,r=void 0===t?"text":t,n=e.code,o=e.color,i=void 0===o?"elementBackground":o,l=e.theme;return n&&"\n background-color: "+(0,a.getColor)(r)({theme:l})+";\n border-radius: 4px;\n color: "+(0,a.getColor)(i)({theme:l})+";\n padding: 0 6px;\n "},w=(0,n.css)([""," "," "," "," "," "," "," "," "," "," "," "," "," "," ",""],b,y,o.default,c.default,f.default,u.default,d.default,s.default,p.default,i.default,l.default,m.default,g.default,(function(e){var t=e.fontSize;return t&&"\n font-size: "+t+";\n line-height: "+t+";\n "}),(function(e){var t=e.lineHeight;return t&&"\n line-height: "+t+";\n "})),O=t.makeTypography=function(e,t){var r,a,o=t.fontSize,i=t.lineHeight,l=t.strong;return(0,n.default)(e).withConfig({displayName:"typography",componentId:"sc-1lwqv72-0"})(['font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif;font-style:normal;'," "," "," ",""],(a=o,function(){return"font-size: "+a+";"}),function(e){return function(){return"line-height: "+e+";"}}(i),(r=l,function(e){var t=e.strong;return"font-weight: "+((void 0===t?r:t)?"bold":"normal")+";"}),w)};t.makeH0=function(e){return O(e,{fontSize:"26px",lineHeight:"32px",strong:!0})},t.makeH1=function(e){return O(e,{fontSize:"24px",lineHeight:"28px",strong:!0})},t.makeH2=function(e){return O(e,{fontSize:"22px",lineHeight:"24px",strong:!0})},t.makeH3=function(e){return O(e,{fontSize:"20px",lineHeight:"24px",strong:!0})},t.makeH4=function(e){return O(e,{fontSize:"16px",lineHeight:"21px",strong:!0})},t.makeH5=function(e){return O(e,{fontSize:"14px",lineHeight:"18px",strong:!0})},t.makeH6=function(e){return O(e,{fontSize:"12px",lineHeight:"14px",strong:!0})},t.makeFemto=function(e){return O(e,{fontSize:"7px",lineHeight:"8px"})},t.makeNano=function(e){return O(e,{fontSize:"8px",lineHeight:"10px"})},t.makeMicro=function(e){return O(e,{fontSize:"10px",lineHeight:"13px"})},t.makeSmall=function(e){return O(e,{fontSize:"11px",lineHeight:"14px"})},t.makeText=function(e){return O(e,{fontSize:"12px",lineHeight:"16px"})},t.makeBig=function(e){return O(e,{fontSize:"14px",lineHeight:"20px"})},t.makeBigger=function(e){return O(e,{fontSize:"16px",lineHeight:"18px"})},t.makeHuge=function(e){return O(e,{fontSize:"24px",lineHeight:"32px"})}},44048:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(96540);function a(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}t.default=function(e,t,r){void 0===r&&(r=[]);var o=(0,n.useRef)(e);(0,n.useLayoutEffect)((function(){o.current=e}),r),(0,n.useEffect)((function(){var e=setTimeout((function(){return o.current()}),t);return function(){return clearTimeout(e)}}),[t].concat(a(r)))}},79045:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=r(96540),o=(n=r(44048))&&n.__esModule?n:{default:n};function i(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}t.default=function(e,t,r){void 0===r&&(r=[]);var n=(0,a.useState)(),l=n[0],u=n[1];return(0,o.default)((function(){return u(e)}),t,[e].concat(i(r))),l}},44862:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(96540);t.default=function(){var e=(0,n.useMemo)((function(){var e=document.createElement("div");return document.body.append(e),e}),[]);return(0,n.useLayoutEffect)((function(){return function(){return document.body.removeChild(e)}}),[]),e}},51365:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,a=r(96540),o=(n=r(68016))&&n.__esModule?n:{default:n};t.default=function(e){var t=(0,a.useRef)(),r=(0,a.useCallback)((function(r){t.current=r,(0,o.default)(e,r)}),[]);return[t,r]}},31886:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={weak:.3,medium:.4,strong:.8,none:1};t.default=function(e){var t=e.opacity,n=t&&r[t]||t;return n?"opacity: "+n+";":""}},36094:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=r(48558);t.default=function(e){var t=e.theme,r=e.padding;return r?Array.isArray(r)&&r.length>=1&&r.length<=4?"padding: "+(0,n.getDimensions)(t,r)+";":(console.error("Please provide an array (max 4 elements) for `padding` style helper."),""):""}},25320:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={static:"static",absolute:"absolute",fixed:"fixed",relative:"relative",sticky:"sticky",initial:"initial",inherit:"inherit"};t.default=function(e){var t=e.position;return t in r?"position: "+t+";":""}},62703:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=function(e,t){return!0===t?e+"px":"number"===typeof t?e*t+"px":"string"===typeof t?t:""},n=function(e,t){return"border-top-left-radius: "+r(e,t)+";"},a=function(e,t){return"border-top-right-radius: "+r(e,t)+";"},o=function(e,t){return"border-bottom-left-radius: "+r(e,t)+";"},i=function(e,t){return"border-bottom-right-radius: "+r(e,t)+";"},l={top:function(e,t){return"\n "+n(e,t)+"\n "+a(e,t)+"\n "},left:function(e,t){return"\n "+n(e,t)+"\n "+o(e,t)+"\n "},bottom:function(e,t){return"\n "+o(e,t)+"\n "+i(e,t)+"\n "},right:function(e,t){return"\n "+a(e,t)+"\n "+i(e,t)+"\n "},"top-left":n,"top-right":a,"bottom-left":o,"bottom-right":i};t.default=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.round;if(!n)return"";var a=r(t,n);if(a)return"border-radius: "+a+";";var o=n.side,i=n.size,u=void 0===i?1:i;return o in l?""+l[o](t,u):""}},68016:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e,t){"function"===typeof e?e(t):e&&(e.current=t)}},60090:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={none:"none",capitalize:"capitalize",uppercase:"uppercase",lowercase:"lowercase",firstLetter:"firstLetter",fullWidth:"full-width"};t.default=function(e){var t=(void 0===e?{}:e).textTransform,n=void 0===t?r.none:t;return n===r.firstLetter?"text-transform: lowercase;\n &::first-letter {\n text-transform: uppercase;\n }\n":n in r?"text-transform: "+r[n]+";":"text-transform: "+r.none+";"}},96029:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.zIndex;if(t&&"number"===typeof t)return"z-index: "+t+";"}},15587:(e,t,r)=>{r.r(t)},42883:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"skeleton",use:"skeleton-usage",viewBox:"0 0 1225 192",content:'<symbol xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 1225 192" id="skeleton"><path d="M-.464 126.486a.501.501 0 0 0-.036.187V197a.5.5 0 0 0 .5.5h1925.5c.28 0 .5-.224.5-.5V87.914a.498.498 0 0 0-.37-.483l-90.5-24.046a.503.503 0 0 0-.44.091l-88.62 70.036-67.7-75.319a.491.491 0 0 0-.63-.09l-111.22 69.485-102.25-64.143a.51.51 0 0 0-.68.132l-73.12 101.88-88.08-107.247a.505.505 0 0 0-.65-.11l-94.3 57.511-85.73-19.511a.49.49 0 0 0-.22 0l-96.57 22.108-15.8-26.017a.492.492 0 0 0-.33-.23l-71.441-14.668a.499.499 0 0 0-.287.026l-36.471 14.667a.503.503 0 0 0-.15.094l-33.007 30.039-27.171-48.716a.5.5 0 0 0-.814-.085l-51.672 59.467-84.567-55.42a.499.499 0 0 0-.654.094l-38.053 44.679-49.087-58.56-36.95-62.01a.5.5 0 0 0-.911.122l-33.249 120.05-27.307-40.101a.5.5 0 0 0-.819-.012l-33.743 46.692-51.595-20.913a.5.5 0 0 0-.357-.007l-89.706 32.263-80.733-47.642a.5.5 0 0 0-.662.14l-53.702 75.383-52.412-27.689-43.396-104.383a.5.5 0 0 0-.826-.15L82.968 63.1l-37.61-48.07a.5.5 0 0 0-.858.12z" /></symbol>'});i().add(l);const u=l},10120:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"D",use:"D-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="D"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M5.81 10.299v-4.7c-.253-.003-.44-.06-.562-.17a.568.568 0 0 1-.182-.433c0-.18.061-.324.182-.434.125-.113.332-.17.621-.17l2.514.006c.39 0 .771.073 1.142.217.375.145.676.328.903.551.172.168.35.398.533.691.187.293.328.584.422.873.094.29.14.643.14 1.061v.574c0 .508-.085.96-.257 1.354-.172.39-.399.71-.68.96a3.45 3.45 0 0 1-.785.546c-.39.183-.897.275-1.518.275H5.87c-.289 0-.496-.055-.62-.164a.574.574 0 0 1-.183-.44c0-.175.061-.32.182-.433.125-.113.313-.168.563-.164m1.202 0h1.277c.477 0 .836-.069 1.078-.205.317-.18.555-.408.715-.686.16-.277.24-.637.24-1.078v-.568c0-.38-.072-.711-.216-.996-.227-.446-.483-.75-.768-.914-.281-.168-.635-.252-1.06-.252H7.011z" /></symbol>'});i().add(l);const u=l},68317:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"I",use:"I-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="I"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M8.598 5.6v4.699H9.81c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H6.184c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.55.55 0 0 1 .181-.427c.125-.114.333-.17.622-.17h1.212v-4.7H6.184c-.29 0-.497-.054-.622-.163a.575.575 0 0 1-.181-.44c0-.18.06-.324.181-.434.125-.113.333-.17.622-.17l3.627.006c.289 0 .494.055.615.165.125.109.187.253.187.433s-.062.326-.187.44c-.121.109-.326.164-.615.164z" /></symbol>'});i().add(l);const u=l},31952:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"L",use:"L-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="L"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M7.496 5.6v4.699h2.59V9.162c0-.289.055-.494.164-.615a.566.566 0 0 1 .44-.188c.175 0 .318.063.427.188.113.121.17.326.17.615V11.5h-5.69c-.288 0-.495-.055-.62-.164a.574.574 0 0 1-.182-.44.55.55 0 0 1 .182-.427c.125-.114.332-.17.62-.17h.698v-4.7h-.697c-.29 0-.496-.054-.621-.163a.575.575 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l2.602.006c.29 0 .494.055.615.165.125.109.188.253.188.433s-.063.326-.188.44c-.12.109-.326.164-.615.164z" /></symbol>'});i().add(l);const u=l},34386:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"N",use:"N-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="N"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M6.494 6.666v3.633h.434c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H5.352c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.56.56 0 0 1 .181-.427c.122-.114.31-.17.563-.17v-4.7h-.188c-.289 0-.496-.054-.62-.163a.574.574 0 0 1-.182-.44c0-.18.06-.324.181-.434.125-.113.332-.17.621-.17l1.39.006 3.07 4.817V5.6H9.13c-.29 0-.496-.055-.621-.164a.574.574 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l1.577.006c.29 0 .494.055.615.165.125.109.188.253.188.433 0 .176-.06.32-.182.434-.121.113-.306.17-.556.17v5.9h-1.19z" /></symbol>'});i().add(l);const u=l},58655:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"anomaly_badge",use:"anomaly_badge-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="anomaly_badge"><path fill-rule="evenodd" d="M13.228 3.296 8.522.579a2.292 2.292 0 0 0-2.294 0L1.522 3.296A2.294 2.294 0 0 0 .375 5.283v5.435c0 .819.437 1.577 1.147 1.986l4.706 2.717a2.292 2.292 0 0 0 2.294 0l4.706-2.717a2.293 2.293 0 0 0 1.147-1.986V5.283c0-.82-.437-1.577-1.147-1.987M7.979 4.761l-.604-1.528-.604 1.528-1.838 4.646H1.375v1.3h4.442l.162-.411 1.396-3.529 1.396 3.529.495 1.253.672-1.168.437-.758.437.758.187.326h2.376v-1.3h-1.624l-.813-1.412-.563-.978-.563.978-.328.57z" clip-rule="evenodd" /></symbol>'});i().add(l);const u=l},97517:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"checkmark_s",use:"checkmark_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_s"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154" clip-rule="evenodd" /><mask id="checkmark_s_a" width="10" height="10" x="3" y="3" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154" clip-rule="evenodd" /></mask></symbol>'});i().add(l);const u=l},63668:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"chevron_down",use:"chevron_down-usage",viewBox:"0 0 12 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" id="chevron_down"><path d="M3 5c0-.3.1-.5.3-.7.4-.4 1-.4 1.4 0L6 5.6l1.3-1.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4L6 8.4 3.3 5.7C3.1 5.5 3 5.3 3 5" /></symbol>'});i().add(l);const u=l},26762:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"chevron_down_thin",use:"chevron_down_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_down_thin"><path d="M6.979 13.813 10.792 10l.541.542-4.083 4.083h-.542l-4.083-4.083.541-.542z" /></symbol>'});i().add(l);const u=l},30464:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"chevron_expand",use:"chevron_expand-usage",viewBox:"0 0 8 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 6" id="chevron_expand"><path d="M.632 1.577 4 3.264l3.368-1.687A.593.593 0 0 0 7.632.79a.59.59 0 0 0-.785-.264L4 1.957 1.146.535A.586.586 0 0 0 .36.8a.578.578 0 0 0 .272.778m6.222 1.29L4 4.292 1.146 2.868a.586.586 0 0 0-.786.264.58.58 0 0 0 .264.786L4 5.598 7.368 3.91a.593.593 0 0 0 .264-.786.572.572 0 0 0-.778-.256" /></symbol>'});i().add(l);const u=l},49484:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"chevron_right_end",use:"chevron_right_end-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right_end"><path d="m10 9-5.71 5.71a.996.996 0 1 1-1.41-1.41L7.18 9 2.89 4.71A.996.996 0 1 1 4.3 3.3z" /><path fill-rule="evenodd" d="M14 15a1 1 0 0 1-1-1V4a1 1 0 1 1 2 0v10a1 1 0 0 1-1 1" clip-rule="evenodd" /></symbol>'});i().add(l);const u=l},20327:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"chevron_up_thin",use:"chevron_up_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_up_thin"><path d="m7 9.427 3.33 3.331a.58.58 0 1 1-.822.823L7 11.073l-2.503 2.502a.58.58 0 1 1-.822-.822z" /></symbol>'});i().add(l);const u=l},35083:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"correlations",use:"correlations-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="correlations"><path d="M12.99 15.24 17 17.58V22h2v-5.57l-4.02-2.35zm9.22-9.45L18 1.59 13.79 5.8a.996.996 0 1 0 1.41 1.41l1.8-1.8v4.01l-5 2.92-5-2.91V5.41L8.79 7.2c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L6 1.59l-4.21 4.2A.996.996 0 1 0 3.2 7.2L5 5.41v5.16l5.02 2.93L5 16.43V22h2v-4.43l12-7V5.41l1.79 1.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41" /></symbol>'});i().add(l);const u=l},8001:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"dot",use:"dot-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="dot"><rect width="10" height="10" rx="5" /></symbol>'});i().add(l);const u=l},3113:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"drag_horizontal",use:"drag_horizontal-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="drag_horizontal"><path d="M9 3v8.25H4.373l1.935-1.943L5.25 8.25 1.5 12l3.75 3.75 1.058-1.057-1.936-1.943H9V21h1.5V3zM18.75 8.25l-1.058 1.057 1.936 1.943H15V3h-1.5v18H15v-8.25h4.628l-1.936 1.943 1.058 1.057L22.5 12z" /></symbol>'});i().add(l);const u=l},73983:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"drag_vertical",use:"drag_vertical-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="drag_vertical"><path d="M3 15h8.25v4.628l-1.943-1.936L8.25 18.75 12 22.5l3.75-3.75-1.057-1.058-1.943 1.936V15H21v-1.5H3zM8.25 5.25l1.057 1.058 1.943-1.936V9H3v1.5h18V9h-8.25V4.373l1.943 1.935L15.75 5.25 12 1.5z" /></symbol>'});i().add(l);const u=l},40813:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"gear",use:"gear-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="gear"><path d="M7.17 7.17a4.004 4.004 0 0 0 0 5.66C7.95 13.61 8.97 14 10 14s2.05-.39 2.83-1.17C13.59 12.07 14 11.07 14 10s-.42-2.07-1.17-2.83a4.008 4.008 0 0 0-5.66 0m4.24 4.24c-.78.78-2.05.78-2.83 0a1.983 1.983 0 0 1 0-2.82c.39-.39.9-.58 1.41-.58.51 0 1.02.19 1.41.58.38.38.59.88.59 1.41 0 .53-.2 1.04-.58 1.41m8.5-2.71-.13-.99-.86-.49-.45-.26c-.1-.27-.21-.54-.33-.8l.14-.5.26-.96-.6-.79c-.3-.39-.57-.7-.85-.98-.29-.29-.6-.56-.99-.86l-.79-.6-.96.26-.5.14c-.26-.12-.53-.23-.8-.33l-.26-.45-.49-.86-.99-.13c-.48-.06-.9-.09-1.3-.09s-.82.03-1.3.09l-.99.13-.49.86-.26.45c-.27.1-.54.21-.8.33l-.5-.14-.97-.26-.79.6c-.39.3-.7.57-.98.85-.29.29-.56.6-.86.99l-.6.79.26.96.14.5c-.12.26-.23.53-.33.8l-.45.26-.86.49-.13.99c-.06.48-.09.9-.09 1.3s.03.82.09 1.3l.13.99.86.49.45.26c.1.27.21.54.33.8l-.14.5-.26.96.6.79c.3.39.57.7.85.98.29.29.6.56.99.86l.79.6.96-.26.5-.14c.26.12.53.23.8.33l.26.45.49.86.99.13c.48.06.9.09 1.3.09s.82-.03 1.3-.09l.99-.13.49-.86.26-.45c.27-.1.54-.21.8-.33l.5.14.96.26.79-.6c.39-.3.7-.57.98-.85.29-.29.56-.6.86-.99l.6-.79-.26-.96-.14-.5c.12-.26.23-.53.33-.8l.45-.26.86-.49.13-.99c.06-.48.09-.9.09-1.3s-.02-.82-.08-1.3m-1.99 2.34-1.14.65c-.17.66-.43 1.3-.79 1.91l.35 1.27c-.21.28-.44.54-.68.79-.25.25-.51.47-.79.68L13.6 16c-.6.36-1.24.62-1.91.79l-.65 1.14c-.34.04-.69.08-1.04.08-.35 0-.7-.03-1.04-.08l-.65-1.14A7.35 7.35 0 0 1 6.4 16l-1.27.35c-.28-.21-.54-.44-.79-.68-.25-.25-.47-.51-.68-.79L4 13.6c-.36-.6-.62-1.24-.79-1.91l-1.14-.65C2.03 10.7 2 10.35 2 10c0-.35.03-.7.08-1.04l1.14-.65c.17-.66.43-1.3.79-1.91l-.35-1.27c.21-.28.44-.54.68-.79.25-.25.51-.47.79-.68L6.4 4c.6-.36 1.24-.62 1.91-.79l.65-1.14c.34-.04.69-.08 1.04-.08.35 0 .7.03 1.04.08l.65 1.14c.66.17 1.3.43 1.91.79l1.27-.35c.28.21.54.44.79.68.25.25.47.51.68.79L16 6.4c.36.6.62 1.24.79 1.91l1.14.65c.04.34.08.69.08 1.04 0 .35-.04.7-.09 1.04" /></symbol>'});i().add(l);const u=l},53965:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"nav_left",use:"nav_left-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_left"><path d="M4.17 8.67 2.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .745.745 0 0 0-1.01.34L.66 5l2.17 4.33c.19.37.64.52 1.01.34s.52-.63.33-1m1.66-8L3.66 5l2.17 4.33c.19.37.64.52 1.01.34.37-.19.52-.64.34-1.01L5.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .74.74 0 0 0-1.01.34" /></symbol>'});i().add(l);const u=l},14608:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"nav_right",use:"nav_right-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_right"><path d="M3.83 1.33 5.66 5 3.83 8.67a.742.742 0 0 0 .33 1c.37.19.82.04 1.01-.34L7.34 5 5.17.67A.763.763 0 0 0 4.16.33c-.37.18-.52.63-.33 1m-1.66 8L4.34 5 2.17.67A.763.763 0 0 0 1.16.33C.79.52.64.97.82 1.34L2.66 5 .83 8.67a.742.742 0 0 0 .33 1c.38.19.83.04 1.01-.34" /></symbol>'});i().add(l);const u=l},70922:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"pan_tool",use:"pan_tool-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pan_tool"><path d="m9.893 3.579.42.157.202-.399a1.497 1.497 0 0 1 1.329-.837c.574 0 1.073.337 1.327.85l.202.406.424-.162c.141-.054.303-.083.48-.083a1.48 1.48 0 0 1 1.471 1.35l.05.572.561-.13a1.576 1.576 0 0 1 1.4.38c.284.296.428.653.428 1.044v8.256c0 3.6-2.851 6.517-6.343 6.517-1.69 0-3.283-.67-4.474-1.91l-.005-.006C6.155 18.36 5.5 16.724 5.5 14.983v-4.706c0-.806.65-1.461 1.477-1.461.112 0 .232.012.347.038l.61.137V4.972c0-.81.655-1.481 1.476-1.481.164 0 .327.029.483.088m1.035.418v7.415c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-6.42c0-.522-.442-.933-.956-.933-.515 0-.957.411-.957.934v9.804c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-4.5c0-.22-.09-.459-.265-.638l-.352.343.352-.343a.966.966 0 0 0-.692-.275c-.504 0-.956.382-.956.913v4.706c0 1.584.613 3.082 1.712 4.21 1.1 1.127 2.561 1.76 4.11 1.76 3.129 0 5.667-2.538 5.817-5.676h.047v-8.57a.894.894 0 0 0-.265-.619.966.966 0 0 0-.691-.274c-.495 0-.957.372-.957.872v4.706c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-6.42c0-.522-.443-.933-.957-.933s-.956.411-.956.934v6.419c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-7.43c0-.523-.442-.934-.956-.934-.508 0-.967.41-.916.949" /></symbol>'});i().add(l);const u=l},58937:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"selected_area",use:"selected_area-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="selected_area"><path d="M15 19.5h3v3h1.5v-3h3V18h-3v-3H18v3h-3zM9 19.5h3V18H9zM6 19.5V18H3v-3H1.5v3A1.5 1.5 0 0 0 3 19.5zM18 12h1.5V9H18zM18 3v3h1.5V3A1.5 1.5 0 0 0 18 1.5h-3V3zM1.5 12H3V9H1.5zM9 3h3V1.5H9zM3 6V3h3V1.5H3A1.5 1.5 0 0 0 1.5 3v3z" /></symbol>'});i().add(l);const u=l},87083:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"sort_ascending",use:"sort_ascending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_ascending"><path d="M4.97 6.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l2.22-2.22V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l2.22 2.22c.29.29.77.29 1.06 0 .15-.15.22-.34.22-.53s-.07-.38-.22-.53L9 2.44z" /></symbol>'});i().add(l);const u=l},51081:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"sort_descending",use:"sort_descending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_descending"><path d="M13.03 11.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.22 2.22V3c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-2.22-2.22a.754.754 0 0 0-1.06 0c-.15.15-.22.34-.22.53s.07.38.22.53L9 15.56z" /></symbol>'});i().add(l);const u=l},88335:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"warning_triangle_hollow",use:"warning_triangle_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning_triangle_hollow"><path d="M12 15.8c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2m-.37-6.69c-.84.2-1.36 1.05-1.15 1.89l.73 3c.07.29.29.53.6.6.44.11.88-.16.99-.6l.73-3c.06-.23.06-.49 0-.74a1.58 1.58 0 0 0-1.9-1.15m10.96 9.19L13.86 3.22A2.137 2.137 0 0 0 12 2.15c-.77 0-1.47.4-1.86 1.07L1.41 18.3c-.45.77-.45 1.69 0 2.47.45.77 1.24 1.23 2.14 1.23h16.91a2.456 2.456 0 0 0 2.13-3.7m-1.73 1.47c-.05.09-.17.23-.4.23H3.54c-.23 0-.35-.15-.4-.23a.451.451 0 0 1 0-.47l8.73-15.08c.01-.02.04-.08.13-.08s.12.06.13.08l8.73 15.08c.12.2.05.38 0 .47" /></symbol>'});i().add(l);const u=l},29085:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"zoom_in",use:"zoom_in-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_in"><path d="M13.5 9h-3V6H9v3H6v1.5h3v3h1.5v-3h3z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06zM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75" /></symbol>'});i().add(l);const u=l},99444:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"zoom_out",use:"zoom_out-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_out"><path d="M13.5 9H6v1.5h7.5z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06zM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75" /></symbol>'});i().add(l);const u=l},83357:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var n=r(12897),a=r.n(n),o=r(55042),i=r.n(o),l=new(a())({id:"zoom_reset",use:"zoom_reset-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_reset"><path d="M16.836 15.75a8.141 8.141 0 0 0 1.914-5.25A8.242 8.242 0 0 0 4.5 4.85V1.5H3v6h6V6H5.499a6.733 6.733 0 1 1-1.575 6h-1.53a8.259 8.259 0 0 0 8.106 6.75 8.141 8.141 0 0 0 5.25-1.914l5.69 5.664 1.06-1.06z" /></symbol>'});i().add(l);const u=l}}]); \ No newline at end of file
diff --git a/web/gui/v2/1277.884a6e09fbb50c214d8e.chunk.js.LICENSE.txt b/src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js.LICENSE.txt
index ae386fb79..ae386fb79 100644
--- a/web/gui/v2/1277.884a6e09fbb50c214d8e.chunk.js.LICENSE.txt
+++ b/src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js.LICENSE.txt
diff --git a/src/web/gui/v2/7146.43b5125ff0b41138f0bc.chunk.js b/src/web/gui/v2/7146.43b5125ff0b41138f0bc.chunk.js
new file mode 100644
index 000000000..d6cfcde16
--- /dev/null
+++ b/src/web/gui/v2/7146.43b5125ff0b41138f0bc.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="10a709f2-87ea-4a1f-a521-3a9b569d1d43",e._sentryDebugIdIdentifier="sentry-dbid-10a709f2-87ea-4a1f-a521-3a9b569d1d43")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7146],{57146:(e,n,t)=>{t.r(n),t.d(n,{default:()=>u});t(62953);var a=t(96540),d=t(39225),l=t(86663),o=t(47767),r=t(22292),s=t(28738),f=t(24266);const c=(0,d.A)((()=>Promise.all([t.e(7144),t.e(7857),t.e(9473),t.e(7789)]).then(t.bind(t,7356))),"AlertWebview"),u=(i=(0,f.Xc)((()=>{const{search:e}=window.location,{space_id:n,room_id:t,node_name:d,node_id:f}=l.parse(e);return(0,r.uW)("isLoaded")?a.createElement(a.Suspense,{fallback:a.createElement(s.A,null)},a.createElement(o.BV,null,a.createElement(o.qh,{path:"alerts/:alertId",element:a.createElement(c,{spaceId:n,roomId:t,nodeName:d,nodeId:f})}))):a.createElement(s.A,null)})),e=>{const{hash:n}=window.location,{token:t}=l.parse(n),[d,o]=(0,a.useState)();return(0,a.useEffect)((()=>{t&&(o(t),localStorage.setItem("netdataJWT",t))}),[]),d?a.createElement(i,e):a.createElement(s.A,null)});var i}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7208.3c255b9641ab4d451747.chunk.js b/src/web/gui/v2/7208.3c255b9641ab4d451747.chunk.js
new file mode 100644
index 000000000..a579eaf30
--- /dev/null
+++ b/src/web/gui/v2/7208.3c255b9641ab4d451747.chunk.js
@@ -0,0 +1 @@
+!function(){try{var c="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},h=(new Error).stack;h&&(c._sentryDebugIds=c._sentryDebugIds||{},c._sentryDebugIds[h]="c23dc46d-88f4-4aad-9572-45234751acc8",c._sentryDebugIdIdentifier="sentry-dbid-c23dc46d-88f4-4aad-9572-45234751acc8")}catch(c){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7208],{17208:(c,h,l)=>{l.d(h,{go:()=>r,fx:()=>I,J8:()=>z,oi:()=>w});var s=l(96540),t=l(12897),i=l.n(t),n=l(55042),e=l.n(n),d=new(i())({id:"netdata.svg",use:"netdata.svg-usage",viewBox:"0 0 288 56",content:'<symbol viewBox="0 0 288 56" fill="none" xmlns="http://www.w3.org/2000/svg" id="netdata.svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M75.1667 14H79.4505L92.9765 35.6927V14H96.4219V40.7787H92.3568L78.6302 19.1042V40.7787H75.1667V14ZM109.941 14H129.464V17.2813H113.477V25.4115H128.261V28.5104H113.477V37.5886H129.738V40.7787H109.941V14ZM161.449 17.1901V14H139.72V17.1901H148.743V40.7787H152.426V17.1901H161.449ZM182.515 37.6797C183.742 37.6797 184.751 37.5521 185.541 37.2969C186.95 36.8229 188.105 35.9115 189.004 34.5625C189.721 33.4809 190.238 32.0955 190.554 30.4063C190.736 29.3976 190.827 28.4618 190.827 27.599C190.827 24.2812 190.168 21.7049 188.849 19.8698C187.531 18.0347 185.407 17.1172 182.478 17.1172H176.043V37.6797H182.515ZM172.397 14H183.244C186.926 14 189.782 15.3064 191.811 17.9193C193.622 20.2769 194.528 23.2969 194.528 26.9792C194.528 29.8229 193.993 32.3932 192.923 34.6901C191.04 38.7492 187.801 40.7787 183.207 40.7787H172.397V14ZM216.341 17.974L220.406 29.8047H212.02L216.341 17.974ZM218.546 14H214.445L204.364 40.7787H208.083L210.981 32.7578H221.572L224.288 40.7787H228.262L218.546 14ZM255.763 14V17.1901H246.74V40.7787H243.057V17.1901H234.034V14H255.763ZM273.474 17.974L277.54 29.8047H269.154L273.474 17.974ZM275.68 14H271.579L261.498 40.7787H265.217L268.115 32.7578H278.706L281.422 40.7787H285.396L275.68 14Z" fill="black" />\n<path fill-rule="evenodd" clip-rule="evenodd" d="M34.9472 51.3334H23.6506L0.5 7H33.3617C46.1398 7.0233 56.4932 17.2969 56.5 29.9707C56.4795 41.7815 46.84 51.3334 34.9472 51.3334Z" fill="#00AB44" />\n<defs>\n<clipPath id="netdata.svg_clip0_2_10795">\n<rect width="212.333" height="28" fill="white" transform="translate(75.1667 14)" />\n</clipPath>\n</defs>\n</symbol>'});e().add(d);const a=d;var C=new(i())({id:"google.svg",use:"google.svg-usage",viewBox:"0 0 48 48",content:'<symbol xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" aria-hidden="true" id="google.svg">\n <defs>\n <path id="google.svg_a" d="M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z" />\n </defs>\n <clipPath id="google.svg_b">\n <use xlink:href="#google.svg_a" overflow="visible" />\n </clipPath>\n <path clip-path="url(#google.svg_b)" fill="#FBBC05" d="M0 37V11l17 13z" />\n <path clip-path="url(#google.svg_b)" fill="#EA4335" d="M0 11l17 13 7-6.1L48 14V0H0z" />\n <path clip-path="url(#google.svg_b)" fill="#34A853" d="M0 37l30-23 7.9 1L48 0v48H0z" />\n <path clip-path="url(#google.svg_b)" fill="#4285F4" d="M48 48L17 24l-4-3 35-10z" />\n</symbol>'});e().add(C);const v=C;var _=new(i())({id:"github.svg",use:"github.svg-usage",viewBox:"0 0 16 16",content:'<symbol class="icon" viewBox="0 0 16 16" aria-hidden="true" id="github.svg">\n <path fillRule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z" />\n</symbol>'});e().add(_);const M=_;var V=new(i())({id:"cncfColor.svg",use:"cncfColor.svg-usage",viewBox:"0 0 400 77",content:'<symbol viewBox="0 0 400 77" fill="none" xmlns="http://www.w3.org/2000/svg" id="cncfColor.svg">\n<path d="M98.9 33.4C100.4 33.4 101.8 33.1 103.2 32.5C104.5 31.9 105.7 30.9 106.6 29.7L110.7 33.9C107.5 37.5 103.8 39.3 99.4 39.3C97.4 39.4 95.5 39.1 93.6 38.3C91.8 37.6 90.1 36.5 88.6 35.2C87.2 33.9 86.1 32.2 85.4 30.5C84.7 28.7 84.3 26.8 84.4 24.9C84.3 23 84.7 21 85.4 19.2C86.1 17.4 87.2 15.8 88.6 14.4C90.1 13 91.9 11.9 93.8 11.2C95.7 10.5 97.8 10.2 99.9 10.3C102 10.4 104 10.9 105.9 11.8C107.8 12.7 109.4 14 110.8 15.6L106.9 20.1C106 18.9 104.9 18 103.6 17.4C102.3 16.8 100.9 16.4 99.4 16.4C97.2 16.4 95 17.2 93.3 18.7C92.4 19.5 91.8 20.5 91.3 21.6C90.9 22.7 90.7 23.9 90.7 25C90.6 26.2 90.8 27.3 91.2 28.4C91.6 29.5 92.2 30.5 93.1 31.3C94.7 32.6 96.8 33.4 98.9 33.4ZM115.5 38.9V10.7H121.8V33.3H133.9V38.9H115.5ZM161.5 35C158.6 37.7 154.9 39.2 150.9 39.2C146.9 39.2 143.2 37.7 140.3 35C138.9 33.7 137.8 32.1 137.1 30.3C136.4 28.5 136 26.6 136 24.7C135.9 22.8 136.3 20.8 137 19.1C137.7 17.3 138.8 15.7 140.2 14.4C143.1 11.7 146.8 10.2 150.8 10.2C154.8 10.2 158.5 11.7 161.4 14.4C162.8 15.7 163.9 17.3 164.6 19.1C165.3 20.9 165.7 22.8 165.6 24.7C165.7 26.6 165.3 28.6 164.6 30.3C164 32.1 162.9 33.7 161.5 35ZM159.3 24.7C159.3 22.3 158.4 20 156.8 18.2C156 17.4 155.1 16.7 154.1 16.2C153.1 15.7 151.9 15.5 150.8 15.5C149.7 15.5 148.6 15.7 147.5 16.2C146.5 16.7 145.5 17.3 144.8 18.2C143.2 20 142.3 22.3 142.3 24.7C142.3 27.1 143.2 29.4 144.8 31.2C145.6 32 146.5 32.7 147.5 33.2C148.5 33.7 149.7 33.9 150.8 33.9C151.9 33.9 153 33.7 154.1 33.2C155.1 32.7 156.1 32.1 156.8 31.2C157.6 30.3 158.3 29.3 158.7 28.2C159.2 27 159.4 25.9 159.3 24.7ZM178.6 31.7C179.1 32.4 179.8 32.9 180.5 33.2C181.2 33.5 182.1 33.7 182.9 33.7C183.7 33.7 184.5 33.6 185.2 33.2C185.9 32.9 186.6 32.3 187 31.7C188.1 30.1 188.6 28.3 188.5 26.4V10.8H194.8V26.6C194.8 30.7 193.7 33.8 191.4 36C190.2 37.1 188.9 38 187.4 38.5C185.9 39.1 184.3 39.3 182.7 39.3C181.1 39.3 179.5 39.1 178 38.5C176.5 37.9 175.1 37.1 174 36C171.7 33.8 170.6 30.7 170.6 26.6V10.8H176.9V26.4C176.9 28.3 177.5 30.2 178.6 31.7ZM223.1 14.4C225.8 16.9 227.2 20.3 227.2 24.7C227.2 29.1 225.9 32.6 223.3 35.2C220.7 37.8 216.6 39 211.3 39H201.5V10.7H211.5C216.5 10.7 220.4 11.9 223.1 14.4ZM218.5 31.2C220 29.8 220.8 27.6 220.8 24.8C220.8 22 220 19.9 218.5 18.4C217 16.9 214.6 16.1 211.4 16.1H207.9V33.3H211.9C214.3 33.5 216.7 32.8 218.5 31.2ZM263.1 10.7H269.4V39H263.1L249.6 21.3V39H243.3V10.7H249.2L263.1 28.9V10.7ZM296.5 38.9L293.8 32.8H281.9L279.2 38.9H272.4L284.6 10.6H290.7L303 38.9H296.5ZM288 19.1L284.5 27.3H291.5L288 19.1ZM316.5 16.2V39H310.2V16.2H302.2V10.8H324.6V16.2C324.6 16.2 316.5 16.2 316.5 16.2ZM329 10.7H335.3V39H329C329 38.9 329 10.7 329 10.7ZM352.8 28.7L360 10.7H366.9L355.6 39H350.3L339 10.7H345.9L352.8 28.7ZM390.5 10.7V16.3H376.4V22.1H389.1V27.5H376.4V33.4H391V39H370.2V10.8L390.5 10.7ZM91.6 63C92.4 63 93.2 62.8 94 62.5C94.7 62.1 95.4 61.6 95.9 60.9L98.2 63.3C97.4 64.2 96.5 65 95.3 65.5C94.2 66 93 66.3 91.8 66.3C90.7 66.3 89.6 66.2 88.6 65.8C87.6 65.4 86.6 64.8 85.8 64C85 63.3 84.4 62.4 84 61.4C83.6 60.4 83.4 59.3 83.4 58.2C83.4 57.1 83.6 56 84 55C84.4 54 85 53.1 85.8 52.3C86.6 51.5 87.5 50.9 88.5 50.5C89.5 50.1 90.6 49.9 91.7 49.9C92.9 49.9 94.2 50.1 95.3 50.6C96.4 51.1 97.4 51.9 98.3 52.8L96.1 55.3C95.6 54.6 95 54.1 94.3 53.7C93.6 53.3 92.8 53.2 91.9 53.2C90.6 53.2 89.4 53.7 88.5 54.5C88 54.9 87.6 55.5 87.4 56.1C87.2 56.7 87 57.4 87.1 58C87.1 58.6 87.2 59.3 87.4 59.9C87.6 60.5 88 61.1 88.4 61.5C88.8 61.9 89.3 62.3 89.9 62.5C90.5 62.7 91 63 91.6 63ZM113.9 63.9C112.3 65.4 110.2 66.3 108 66.3C106.9 66.3 105.8 66.1 104.8 65.7C103.8 65.3 102.9 64.7 102.1 63.9C100.6 62.4 99.7 60.3 99.7 58.1C99.7 55.9 100.6 53.8 102.1 52.3C103.7 50.8 105.8 49.9 108 49.9C109.1 49.9 110.2 50.1 111.2 50.5C112.2 50.9 113.1 51.5 113.9 52.3C115.4 53.8 116.3 55.9 116.3 58.1C116.3 60.3 115.4 62.4 113.9 63.9ZM112.8 58.1C112.8 56.8 112.4 55.5 111.5 54.5C111.1 54 110.6 53.7 110 53.4C109.4 53.1 108.8 53 108.2 53C107.6 53 106.9 53.1 106.4 53.4C105.8 53.7 105.3 54.1 104.9 54.6C104.4 55.1 104.1 55.6 103.9 56.3C103.7 56.9 103.6 57.6 103.6 58.2C103.6 59.5 104.1 60.8 104.9 61.8C105.3 62.3 105.8 62.6 106.4 62.9C107 63.2 107.6 63.3 108.2 63.3C108.8 63.3 109.5 63.2 110 62.9C110.6 62.6 111.1 62.2 111.5 61.7C112.3 60.8 112.8 59.5 112.8 58.1ZM133.5 56.1L129.2 64.8H127.1L122.8 56.1V66.1H119.3V50.3H124.1L128.2 59L132.3 50.3H137.1V66.2H133.6L133.5 56.1ZM151.9 51.8C152.5 52.3 153 53 153.3 53.8C153.6 54.6 153.7 55.4 153.6 56.2C153.6 58.2 153 59.6 151.9 60.5C150.8 61.5 149 61.8 146.7 61.8H144.6V66.2H141V50.3H146.6C149 50.3 150.7 50.8 151.9 51.8ZM149.3 58C149.8 57.4 150 56.7 150 55.9C150 55.5 150 55.2 149.8 54.8C149.6 54.5 149.4 54.2 149.1 54C148.3 53.6 147.4 53.4 146.5 53.4H144.5V58.7H146.9C147.3 58.7 147.8 58.7 148.2 58.6C148.6 58.4 149 58.2 149.3 58ZM160.6 62C160.9 62.4 161.2 62.6 161.7 62.8C162.1 63 162.6 63.1 163 63.1C163.5 63.1 163.9 63 164.3 62.8C164.7 62.6 165.1 62.3 165.4 62C166 61.1 166.3 60 166.3 59V50.2H169.8V59C169.9 60 169.7 60.9 169.4 61.9C169.1 62.8 168.6 63.7 167.9 64.4C166.6 65.6 164.8 66.2 163 66.2C161.2 66.2 159.5 65.5 158.2 64.3C157.5 63.6 157 62.7 156.7 61.8C156.4 60.9 156.2 59.9 156.3 58.9V50.1H159.8V58.9C159.6 60 159.9 61.1 160.6 62ZM180.1 53.4V66.1H176.6V53.4H172.1V50.4H184.7V53.4C184.6 53.4 180.1 53.4 180.1 53.4ZM187.2 50.3H190.7V66.2H187.2V50.3ZM205.7 50.3H209.2V66.2H205.7L198.2 56.3V66.2H194.7V50.3H198L205.8 60.5L205.7 50.3ZM223.5 58.1H227V63.7C226.2 64.6 225.1 65.3 224 65.7C222.9 66.2 221.6 66.4 220.4 66.3C218.2 66.3 216.1 65.5 214.5 64C213.7 63.3 213.1 62.4 212.7 61.4C212.3 60.4 212.1 59.3 212.1 58.2C212.1 57.1 212.3 56 212.7 55C213.1 54 213.7 53.1 214.5 52.3C215.3 51.5 216.2 50.9 217.2 50.5C218.2 50.1 219.3 49.9 220.4 49.9C222.6 49.9 224.7 50.7 226.3 52.2L224.5 54.9C224 54.3 223.3 53.9 222.5 53.7C221.9 53.5 221.2 53.3 220.6 53.3C219.3 53.3 218.1 53.8 217.2 54.6C216.7 55.1 216.3 55.6 216.1 56.3C215.9 57 215.7 57.6 215.8 58.3C215.8 59.6 216.2 60.9 217.1 61.9C217.5 62.3 218 62.7 218.5 62.9C219 63.1 219.6 63.2 220.2 63.2C221.3 63.3 222.3 63 223.2 62.5V58H223.5V58.1ZM247 50.3V53.4H239.7V56.8H246.6V60H239.7V66.2H236.2V50.3C236.1 50.3 247 50.3 247 50.3ZM263.4 63.9C261.8 65.4 259.7 66.3 257.5 66.3C256.4 66.3 255.3 66.1 254.3 65.7C253.3 65.3 252.4 64.7 251.6 63.9C250.1 62.4 249.2 60.3 249.2 58.1C249.2 55.9 250.1 53.8 251.6 52.3C253.2 50.8 255.3 49.9 257.5 49.9C258.6 49.9 259.7 50.1 260.7 50.5C261.7 50.9 262.6 51.5 263.4 52.3C264.9 53.8 265.8 55.9 265.8 58.1C265.8 60.3 264.9 62.4 263.4 63.9ZM262.1 58.1C262.1 56.8 261.7 55.5 260.8 54.5C260.4 54 259.9 53.7 259.3 53.4C258.7 53.1 258.1 53 257.5 53C256.9 53 256.2 53.1 255.7 53.4C255.1 53.7 254.6 54.1 254.2 54.6C253.7 55.1 253.4 55.6 253.2 56.3C253 57 252.9 57.6 252.9 58.2C252.9 59.5 253.4 60.8 254.2 61.8C254.6 62.3 255.1 62.6 255.7 62.9C256.3 63.2 256.9 63.3 257.5 63.3C258.1 63.3 258.8 63.2 259.3 62.9C259.9 62.6 260.4 62.2 260.8 61.7C261.3 61.2 261.6 60.7 261.8 60C262 59.3 262.2 58.8 262.1 58.1ZM273 62C273.3 62.4 273.6 62.6 274.1 62.8C274.5 63 275 63.1 275.4 63.1C275.8 63.1 276.3 63 276.7 62.8C277.1 62.6 277.5 62.3 277.8 62C278.4 61.1 278.7 60 278.7 59V50.2H282.2V59C282.3 60 282.1 60.9 281.8 61.9C281.5 62.8 281 63.7 280.3 64.4C279 65.6 277.2 66.2 275.4 66.2C273.6 66.2 271.9 65.5 270.6 64.3C269.9 63.6 269.4 62.7 269.1 61.8C268.8 60.9 268.6 59.9 268.7 58.9V50.1H272.2V58.9C272 60 272.3 61.2 273 62ZM296.9 50.3H300.4V66.2H296.9L289.4 56.3V66.2H285.9V50.3H289.2L297 60.5L296.9 50.3ZM316.4 52.4C317.2 53.1 317.8 54.1 318.2 55.1C318.6 56.1 318.8 57.2 318.7 58.2C318.8 59.3 318.6 60.3 318.2 61.3C317.8 62.3 317.2 63.2 316.5 64C315.1 65.4 312.8 66.2 309.7 66.2H304.3V50.3H309.9C312.8 50.3 315 51 316.4 52.4ZM313.8 61.9C314.2 61.4 314.6 60.9 314.8 60.3C315 59.7 315.1 59 315.1 58.4C315.1 57.7 315 57.1 314.8 56.5C314.6 55.9 314.2 55.3 313.8 54.8C313.2 54.3 312.6 54 311.9 53.8C311.2 53.6 310.5 53.5 309.8 53.6H307.8V63.2H310.1C311.4 63.1 312.8 62.7 313.8 61.9ZM332.6 66.1L331.2 62.7H324.5L323.1 66.1H319.3L326.2 50.2H329.6L336.5 66.1H332.6ZM327.8 55L325.8 59.6H329.8L327.8 55ZM343.8 53.4V66.1H340.3V53.4H335.7V50.4H348.3V53.4H343.8ZM350.8 50.3H354.3V66.2H350.8V50.3ZM371.6 63.9C370 65.4 367.9 66.3 365.7 66.3C364.6 66.3 363.5 66.1 362.5 65.7C361.5 65.3 360.6 64.7 359.8 63.9C358.3 62.4 357.4 60.3 357.4 58.1C357.4 55.9 358.3 53.8 359.8 52.3C361.4 50.8 363.5 49.9 365.7 49.9C366.8 49.9 367.9 50.1 368.9 50.5C369.9 50.9 370.8 51.5 371.6 52.3C373.1 53.8 374 55.9 374 58.1C374 60.3 373.1 62.4 371.6 63.9ZM370.5 58.1C370.5 56.8 370 55.5 369.2 54.5C368.8 54 368.3 53.7 367.7 53.4C367.1 53.1 366.5 53 365.9 53C365.3 53 364.6 53.1 364.1 53.4C363.5 53.7 363 54.1 362.6 54.6C362.1 55.1 361.8 55.6 361.6 56.3C361.4 57 361.3 57.6 361.3 58.2C361.3 59.5 361.8 60.8 362.6 61.8C363 62.3 363.5 62.6 364.1 62.9C364.7 63.2 365.3 63.3 365.9 63.3C366.5 63.3 367.2 63.2 367.7 62.9C368.3 62.6 368.8 62.2 369.2 61.7C370 60.8 370.5 59.5 370.5 58.1ZM388.1 50.3H391.6V66.2H388.1L380.6 56.3V66.2H377V50.3H380.3L388.1 60.5C388.2 60.5 388.1 50.3 388.1 50.3Z" fill="black" />\n<path d="M16.2 47.3H7.5V67.6H27.8V58.9H16.2V47.3Z" fill="#0086FF" />\n<path d="M59.8 47.4V58.9H48.2V67.6H68.5V47.3L59.8 47.4Z" fill="#0086FF" />\n<path d="M7.5 27.1H16.3L16.2 27V15.5H27.8V6.8H7.5V27.1Z" fill="#0086FF" />\n<path d="M48.2 6.8V15.5H59.8V27.1H68.5V6.8C68.4 6.8 48.2 6.8 48.2 6.8Z" fill="#0086FF" />\n<path d="M47 27.1L35.4 15.5H48.1V6.8H27.8V15.5L39.4 27.1H47Z" fill="#93EAFF" />\n<path d="M36.6 47.3H29L38.6 56.9L40.5 58.9H27.8V67.6H48.2V58.8L42.4 53.1L36.6 47.3Z" fill="#93EAFF" />\n<path d="M59.8 27.1V39.7L48.2 28.1V35.8L59.7 47.3L68.5 47.3V27.1H59.8Z" fill="#93EAFF" />\n<path d="M27.8 38.6L16.3 27.1H7.5V47.3H16.2V34.7L27.8 46.3V38.6Z" fill="#93EAFF" />\n</symbol>'});e().add(V);const f=V;var g=new(i())({id:"cncfWhite.svg",use:"cncfWhite.svg-usage",viewBox:"-1.81 -3.06 419.38 80.13",content:'<symbol xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-1.81 -3.06 419.38 80.13" id="cncfWhite.svg">\n<path fill="white" id="cncfWhite.svg_XMLID_643_" d="M102.2 33c3.3 0 5.9-1.3 8-3.9l4.3 4.4c-3.4 3.8-7.3 5.7-11.9 5.7s-8.3-1.4-11.3-4.3-4.4-6.5-4.4-10.9 1.5-8.1 4.5-11 6.7-4.4 11.1-4.4c4.9 0 9 1.9 12.2 5.6l-4.1 4.7c-2.1-2.6-4.7-3.9-7.8-3.9-2.5 0-4.6.8-6.4 2.4s-2.7 3.8-2.7 6.6.8 5 2.5 6.7c1.6 1.4 3.6 2.3 6 2.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_641_" d="M119.7 38.8V9.1h6.6v23.8H139v5.9h-19.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_638_" d="M168 34.7c-3 2.9-6.7 4.4-11.1 4.4s-8.1-1.5-11.1-4.4-4.5-6.6-4.5-10.9c0-4.4 1.5-8 4.5-10.9s6.7-4.4 11.1-4.4S165 10 168 12.9s4.5 6.6 4.5 10.9c0 4.4-1.5 8-4.5 10.9zm-2.3-10.9c0-2.6-.9-4.9-2.6-6.8s-3.8-2.8-6.3-2.8-4.6.9-6.3 2.8c-1.7 1.9-2.6 4.1-2.6 6.8 0 2.6.9 4.9 2.6 6.8s3.8 2.8 6.3 2.8 4.6-.9 6.3-2.8c1.8-1.9 2.6-4.1 2.6-6.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_636_" d="M186 31.2c1.1 1.4 2.6 2.1 4.5 2.1s3.4-.7 4.4-2.1c1.1-1.4 1.6-3.3 1.6-5.6V9.2h6.6v16.6c0 4.3-1.2 7.6-3.6 9.9s-5.4 3.5-9.1 3.5-6.8-1.2-9.2-3.5c-2.4-2.3-3.6-5.6-3.6-9.9V9.2h6.6v16.4c.1 2.3.7 4.2 1.8 5.6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_633_" d="M232.7 13c2.8 2.6 4.3 6.2 4.3 10.8s-1.4 8.3-4.1 11c-2.8 2.7-7 4-12.6 4H210V9.1h10.5c5.3 0 9.4 1.3 12.2 3.9zm-4.8 17.7c1.6-1.5 2.4-3.8 2.4-6.7 0-2.9-.8-5.2-2.4-6.7-1.6-1.6-4.1-2.4-7.5-2.4h-3.7V33h4.2c3 0 5.3-.8 7-2.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_631_" d="M274.7 9.1h6.6v29.7h-6.6l-14.2-18.6v18.6h-6.6V9.1h6.2l14.6 19.1V9.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_628_" d="M309.8 38.8l-2.8-6.4h-12.5l-2.8 6.4h-7.1l12.8-29.7h6.4l12.8 29.7h-6.8zM300.9 18l-3.7 8.6h7.4l-3.7-8.6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_626_" d="M330.8 14.9v24h-6.6v-24h-8.4V9.2h23.5v5.7h-8.5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_624_" d="M344 9.1h6.6v29.7H344V9.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_622_" d="M368.9 28l7.6-18.9h7.2l-11.9 29.7h-5.6L354.3 9.1h7.2l7.4 18.9z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_620_" d="M408.6 9.1V15h-14.8v6.1h13.3v5.7h-13.3V33h15.3v5.9h-21.9V9.2h21.4v-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_618_" d="M94.6 64.1c1.8 0 3.3-.7 4.5-2.2l2.4 2.5c-1.9 2.1-4.1 3.2-6.7 3.2s-4.7-.8-6.3-2.4c-1.7-1.6-2.5-3.7-2.5-6.1 0-2.5.8-4.5 2.5-6.2s3.8-2.5 6.2-2.5c2.7 0 5 1 6.9 3.1l-2.3 2.6c-1.2-1.5-2.6-2.2-4.4-2.2-1.4 0-2.6.5-3.6 1.4s-1.5 2.1-1.5 3.7.5 2.8 1.4 3.7c.9 1 2.1 1.4 3.4 1.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_615_" d="M118 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_613_" d="M138.6 56.9l-4.5 9.1h-2.2l-4.5-9.1v10.5h-3.7V50.7h5l4.3 9.1 4.3-9.1h5v16.7h-3.7V56.9z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_610_" d="M157.9 52.3c1.2 1 1.8 2.5 1.8 4.6s-.6 3.6-1.8 4.5c-1.2 1-3 1.4-5.5 1.4h-2.2v4.6h-3.7V50.7h5.9c2.5.1 4.3.6 5.5 1.6zm-2.7 6.5c.4-.5.7-1.2.7-2.2s-.3-1.6-.9-2-1.5-.6-2.7-.6h-2.1v5.6h2.5c1.2 0 2-.3 2.5-.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_608_" d="M167 63.1c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V60c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2-2-3.2-2-5.6v-9.3h3.7v9.2c0 1.5.3 2.6.9 3.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_606_" d="M187.5 54v13.4h-3.7V54h-4.7v-3.2h13.2V54h-4.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_604_" d="M195 50.8h3.7v16.7H195V50.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_602_" d="M214.4 50.8h3.7v16.7h-3.7l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7V50.8h-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_600_" d="M233.1 59h3.7v5.9c-1.7 1.8-3.9 2.8-6.9 2.8-2.4 0-4.5-.8-6.2-2.4s-2.5-3.7-2.5-6.1c0-2.5.8-4.5 2.5-6.2s3.7-2.5 6.1-2.5 4.5.8 6.2 2.4l-1.9 2.8c-.7-.7-1.4-1.1-2.1-1.3-.6-.2-1.3-.4-2-.4-1.4 0-2.6.5-3.6 1.4-1 1-1.5 2.2-1.5 3.8 0 1.6.5 2.8 1.4 3.8.9.9 2 1.4 3.3 1.4s2.4-.2 3.2-.7V59h.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_598_" d="M257.8 50.8v3.3h-7.7v3.6h7.3V61h-7.3v6.5h-3.7V50.8h11.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_595_" d="M275 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.3-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c1-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_593_" d="M285.1 63.1c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V60c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2c-1.3-1.3-2-3.2-2-5.6v-9.3h3.7v9.2c-.1 1.5.3 2.6.9 3.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_591_" d="M310.2 50.8h3.7v16.7h-3.7l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7V50.8h-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_588_" d="M330.7 53c1.6 1.5 2.4 3.5 2.4 6.1s-.8 4.6-2.3 6.1-3.9 2.3-7.1 2.3H318V50.8h5.9c3 0 5.3.7 6.8 2.2zm-2.7 9.9c.9-.9 1.4-2.1 1.4-3.7s-.5-2.9-1.4-3.8-2.3-1.3-4.2-1.3h-2.1v10.1h2.4c1.7-.1 3-.5 3.9-1.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_585_" d="M347.7 67.4l-1.5-3.6h-7l-1.5 3.6h-4l7.2-16.7h3.6l7.2 16.7h-4zm-5-11.7l-2.1 4.8h4.2l-2.1-4.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_583_" d="M359.5 54v13.4h-3.7V54H351v-3.2h13.2V54h-4.7z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_581_" d="M366.9 50.8h3.7v16.7h-3.7V50.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_578_" d="M388.7 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_576_" d="M406 50.8h3.7v16.7H406l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7-.1-10.7z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_397_" d="M15.5 47.7H6.4v21.4h21.3v-9.2H15.5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_395_" d="M61.3 47.8v12.1H49.1v-.1 9.3h21.3V47.7h-9.2z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_394_" d="M6.4 26.4h9.2l-.1-.1V14.2h12.2V5H6.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_393_" d="M49.1 5v9.2h12.2v12.2h9.1V5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_391_" d="M47.9 26.4L35.7 14.2h13.4V5H27.7v9.2l12.2 12.2z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_390_" d="M36.9 47.7h-8L39 57.8l2 2.1H27.7v9.2h21.4v-9.3l-6.1-6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_389_" d="M61.3 26.4v13.3l-2.1-2.1-10.1-10.1v8.1l6 6 6.1 6.1h9.2V26.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_388_" d="M27.7 38.5L15.6 26.4H6.4v21.3h9.1V34.4l12.2 12.2z" class="st0" />\n</symbol>'});e().add(g);const H=g;var L=new(i())({id:"cncfBlack.svg",use:"cncfBlack.svg-usage",viewBox:"-3.69 -2.94 438.62 83.87",content:'<symbol xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-3.69 -2.94 438.62 83.87" id="cncfBlack.svg">\n<path id="cncfBlack.svg_XMLID_633_" d="M105 35c3.4 0 6.2-1.3 8.4-4l4.4 4.6c-3.5 4-7.7 6-12.5 6s-8.7-1.5-11.8-4.5c-3.1-3-4.6-6.8-4.6-11.4 0-4.6 1.6-8.5 4.7-11.5 3.2-3.1 7-4.6 11.6-4.6 5.1 0 9.4 1.9 12.8 5.8l-4.3 4.9c-2.2-2.7-4.9-4.1-8.2-4.1-2.6 0-4.8.9-6.7 2.6-1.9 1.7-2.8 4-2.8 6.9s.9 5.2 2.6 7c1.8 1.4 3.9 2.3 6.4 2.3z" />\n<path id="cncfBlack.svg_XMLID_631_" d="M123.3 41.1V10h6.9v24.9h13.2v6.2h-20.1z" />\n<path id="cncfBlack.svg_XMLID_628_" d="M173.9 36.8c-3.1 3.1-7 4.6-11.6 4.6s-8.5-1.5-11.6-4.6c-3.1-3.1-4.7-6.9-4.7-11.4 0-4.6 1.6-8.4 4.7-11.4 3.1-3.1 7-4.6 11.6-4.6s8.5 1.5 11.6 4.6c3.1 3.1 4.7 6.9 4.7 11.4s-1.6 8.3-4.7 11.4zm-2.4-11.4c0-2.8-.9-5.1-2.7-7.1-1.8-2-4-2.9-6.6-2.9-2.6 0-4.8 1-6.6 2.9-1.8 2-2.7 4.3-2.7 7.1s.9 5.1 2.7 7.1c1.8 1.9 4 2.9 6.6 2.9 2.6 0 4.8-1 6.6-2.9 1.8-2 2.7-4.3 2.7-7.1z" />\n<path id="cncfBlack.svg_XMLID_626_" d="M192.7 33.1c1.2 1.4 2.7 2.2 4.7 2.2s3.5-.7 4.6-2.2c1.1-1.4 1.7-3.4 1.7-5.9V10h6.9v17.4c0 4.5-1.2 8-3.7 10.4-2.5 2.4-5.7 3.6-9.6 3.6-3.9 0-7.1-1.2-9.6-3.6-2.5-2.4-3.8-5.9-3.8-10.4V10h6.9v17.2c.1 2.5.7 4.4 1.9 5.9z" />\n<path id="cncfBlack.svg_XMLID_623_" d="M241.6 14.1c3 2.7 4.4 6.5 4.4 11.3s-1.4 8.7-4.3 11.5c-2.9 2.8-7.3 4.2-13.2 4.2h-10.6V10h11c5.4 0 9.7 1.4 12.7 4.1zm-5.1 18.5c1.7-1.6 2.6-3.9 2.6-7s-.9-5.4-2.6-7c-1.7-1.6-4.3-2.5-7.8-2.5h-3.9V35h4.4c3.1 0 5.6-.8 7.3-2.4z" />\n<path id="cncfBlack.svg_XMLID_621_" d="M285.5 10h6.9v31.1h-6.9l-14.8-19.5v19.5h-6.9V10h6.5l15.2 20V10z" />\n<path id="cncfBlack.svg_XMLID_618_" d="M322.2 41.1l-2.9-6.7h-13l-2.9 6.7H296L309.5 10h6.7l13.4 31.1h-7.4zm-9.4-21.8l-3.9 9h7.8l-3.9-9z" />\n<path id="cncfBlack.svg_XMLID_616_" d="M344.1 16v25.1h-6.9V16h-8.8v-6h24.5v6h-8.8z" />\n<path id="cncfBlack.svg_XMLID_614_" d="M358 10h6.9v31.1H358V10z" />\n<path id="cncfBlack.svg_XMLID_612_" d="M384 29.8l7.9-19.8h7.5l-12.5 31.1H381L368.6 10h7.5l7.9 19.8z" />\n<path id="cncfBlack.svg_XMLID_610_" d="M425.5 10v6.2H410v6.4h14v5.9h-13.9V35h16v6.1h-22.9V10h22.3z" />\n<path id="cncfBlack.svg_XMLID_608_" d="M97.1 67.6c1.9 0 3.5-.8 4.7-2.3l2.5 2.6c-2 2.2-4.3 3.3-7 3.3s-4.9-.8-6.6-2.5C88.9 67 88 64.8 88 62.2s.9-4.7 2.7-6.5 3.9-2.6 6.5-2.6c2.9 0 5.2 1.1 7.2 3.3l-2.4 2.7c-1.2-1.5-2.8-2.3-4.6-2.3-1.5 0-2.7.5-3.8 1.4-1 1-1.6 2.2-1.6 3.9s.5 2.9 1.5 3.9c1 1.1 2.2 1.6 3.6 1.6z" />\n<path id="cncfBlack.svg_XMLID_605_" d="M121.6 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.8 4.7-2.6 6.4zm-1.3-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_603_" d="M143.1 60l-4.7 9.5h-2.3l-4.7-9.5v11h-3.9V53.6h5.3l4.5 9.6 4.5-9.6h5.2V71h-3.9V60z" />\n<path id="cncfBlack.svg_XMLID_600_" d="M163.3 55.1c1.2 1 1.8 2.6 1.8 4.8 0 2.2-.6 3.7-1.9 4.7-1.3 1-3.2 1.5-5.7 1.5h-2.3V71h-3.9V53.6h6.2c2.6 0 4.6.5 5.8 1.5zm-2.8 6.9c.5-.5.7-1.3.7-2.3 0-1-.3-1.7-.9-2.1-.6-.4-1.5-.6-2.8-.6h-2.2v5.9h2.6c1.2-.1 2.1-.4 2.6-.9z" />\n<path id="cncfBlack.svg_XMLID_598_" d="M172.8 66.5c.6.8 1.5 1.2 2.6 1.2s2-.4 2.6-1.2c.6-.8 1-1.9 1-3.3v-9.6h3.9v9.7c0 2.5-.7 4.5-2.1 5.8-1.4 1.4-3.2 2-5.4 2s-4-.7-5.4-2c-1.4-1.4-2.1-3.3-2.1-5.8v-9.7h3.9v9.6c0 1.4.3 2.5 1 3.3z" />\n<path id="cncfBlack.svg_XMLID_596_" d="M194.3 57v14h-3.9V57h-4.9v-3.4h13.8V57h-5z" />\n<path id="cncfBlack.svg_XMLID_594_" d="M202 53.6h3.9V71H202V53.6z" />\n<path id="cncfBlack.svg_XMLID_592_" d="M222.4 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_590_" d="M241.9 62.1h3.9v6.2c-1.7 1.9-4.1 2.9-7.2 2.9-2.6 0-4.7-.8-6.4-2.5-1.7-1.7-2.6-3.8-2.6-6.4 0-2.6.9-4.7 2.7-6.5 1.8-1.7 3.9-2.6 6.4-2.6 2.5 0 4.7.8 6.5 2.5l-2 2.9c-.8-.7-1.5-1.2-2.2-1.4-.7-.3-1.4-.4-2.1-.4-1.5 0-2.7.5-3.7 1.5s-1.5 2.3-1.5 4c0 1.6.5 3 1.5 3.9 1 1 2.1 1.5 3.5 1.5 1.3 0 2.5-.3 3.4-.8v-4.8z" />\n<path id="cncfBlack.svg_XMLID_588_" d="M267.8 53.6V57h-8.1v3.8h7.7v3.4h-7.7V71h-3.9V53.6h12z" />\n<path id="cncfBlack.svg_XMLID_585_" d="M285.8 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.9 4.7-2.6 6.4zm-1.4-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_583_" d="M296.3 66.5c.6.8 1.5 1.2 2.6 1.2s2-.4 2.6-1.2c.6-.8 1-1.9 1-3.3v-9.6h3.9v9.7c0 2.5-.7 4.5-2.1 5.8-1.4 1.4-3.2 2-5.4 2s-4-.7-5.4-2c-1.4-1.4-2.1-3.3-2.1-5.8v-9.7h3.9v9.6c0 1.4.4 2.5 1 3.3z" />\n<path id="cncfBlack.svg_XMLID_581_" d="M322.6 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_578_" d="M344.1 55.9c1.7 1.5 2.5 3.6 2.5 6.3 0 2.7-.8 4.9-2.4 6.4-1.6 1.6-4.1 2.4-7.4 2.4h-6V53.6h6.2c3 0 5.4.7 7.1 2.3zm-2.9 10.3c1-.9 1.4-2.2 1.4-3.9 0-1.7-.5-3-1.4-4-1-.9-2.4-1.4-4.4-1.4h-2.2v10.6h2.5c1.8.1 3.2-.4 4.1-1.3z" />\n<path id="cncfBlack.svg_XMLID_575_" d="M361.8 71l-1.6-3.8h-7.3l-1.6 3.8h-4.1l7.5-17.4h3.8L366 71h-4.2zm-5.2-12.2l-2.2 5.1h4.4l-2.2-5.1z" />\n<path id="cncfBlack.svg_XMLID_573_" d="M374.1 57v14h-3.9V57h-4.9v-3.4H379V57h-4.9z" />\n<path id="cncfBlack.svg_XMLID_571_" d="M381.9 53.6h3.9V71h-3.9V53.6z" />\n<path id="cncfBlack.svg_XMLID_568_" d="M404.7 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.8 4.7-2.6 6.4zm-1.3-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_566_" d="M422.8 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_397_" d="M14.4 50.4H4.8v22.3h22.3v-9.6H14.4z" />\n<path id="cncfBlack.svg_XMLID_395_" d="M62.2 50.4v12.7H49.5v9.6h22.3V50.4h-9.7z" />\n<path id="cncfBlack.svg_XMLID_394_" d="M4.8 28.1h9.7l-.1-.1V15.3h12.7v.1-9.7H4.8z" />\n<path id="cncfBlack.svg_XMLID_393_" d="M49.5 5.7v9.6h12.7v12.8h9.6V5.7z" />\n<path id="cncfBlack.svg_XMLID_391_" d="M48.3 28.1L35.5 15.3h14V5.7H27.1v9.7l12.7 12.7z" class="st0" />\n<path id="cncfBlack.svg_XMLID_390_" d="M36.8 50.4h-8.5l10.6 10.5 2.2 2.2h-14v9.6h22.4v-9.6l-6.4-6.4z" class="st0" />\n<path id="cncfBlack.svg_XMLID_389_" d="M62.2 28.1V42L60 39.8 49.5 29.2v8.5l6.3 6.3 6.3 6.4h9.7V28.1z" class="st0" />\n<path id="cncfBlack.svg_XMLID_388_" d="M27.1 40.7L14.5 28.1H4.8v22.3h9.6v-14l12.7 12.8z" class="st0" />\n</symbol>'});e().add(L);const p=L;var o=l(5668);const w=()=>s.createElement("svg",{width:"256",height:"48",viewBox:a.viewBox},s.createElement("use",{xlinkHref:"#".concat(a.id)})),z=()=>s.createElement("svg",{width:"16",height:"16",viewBox:v.viewBox},s.createElement("use",{xlinkHref:"#".concat(v.id)})),I=()=>s.createElement("svg",{width:"16",height:"16",viewBox:M.viewBox},s.createElement("use",{xlinkHref:"#".concat(M.id)})),D=c=>{let{width:h="152",height:l="29",svg:t={}}=c;return()=>s.createElement("svg",{width:h,height:l,viewBox:t.viewBox},s.createElement("use",{xlinkHref:"#".concat(t.id)}))},X={light:D({svg:p}),dark:D({svg:H}),unspecified:D({svg:f})},r=function(){let{theme:c}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const h=(0,o.xd)("theme"),l=X[c||h]||X.unspecified;return s.createElement(l,null)}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7332.8f89f4887946c129ea01.chunk.js b/src/web/gui/v2/7332.8f89f4887946c129ea01.chunk.js
new file mode 100644
index 000000000..a43e3e5d8
--- /dev/null
+++ b/src/web/gui/v2/7332.8f89f4887946c129ea01.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="63acaffc-2dd4-4010-9e06-74762095e673",e._sentryDebugIdIdentifier="sentry-dbid-63acaffc-2dd4-4010-9e06-74762095e673")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7332],{47332:(e,t,a)=>{a.r(t),a.d(t,{Dropdown:()=>j,default:()=>R});a(62953);var d=a(96540),o=a(8711),r=a(10058),n=a(43375),i=a(61360);var s=a(74618),l=a(15327),c=a(35304),u=a(21591),p=a(68980),m=a(28738),b=a(38257);const g=e=>(0,o.keyframes)(["from{border-color:",";border-width:2px;}to{border-color:",";border-width:1px;}"],(0,r.getColor)("primary")(e),(0,r.getColor)("textLite")(e)),h=(0,o.default)(r.Flex).withConfig({displayName:"dropArea__AnimatedFlex",componentId:"sc-vs4sjk-0"})(["animation:",";"],(e=>{let{animate:t}=e;return t?(0,o.css)([""," 0.15s linear infinite"],g):""})),f={},v=(0,d.memo)((e=>{let{item:t=f,itemProps:a=f}=e;const{id:o,name:i,isNew:s}=t,{overDashboardId:l}=a,{setNodeRef:c,isOver:u,over:m}=(0,n.zM)({id:o,data:{droppable:!0,dropArea:!0,dashboardId:o,onlyPointerWithin:!0}}),{processing:b,loading:g}=(0,p.fz)(o),v=b||g;return d.createElement(r.Flex,{padding:[2],flex:!0,background:l===o&&"successSemi"},d.createElement(h,{alignItems:"center",justifyContent:"center",padding:[2],border:{side:"all",type:"dashed",color:u?"primary":"textLite"},round:!0,ref:c,width:"100%",height:15,animate:(null===m||void 0===m?void 0:m.id)===o&&l!==o},v?d.createElement(r.Text,{color:"textLite"},"Loading..."):d.createElement(r.TextBig,{color:l===o?"successText":"text"},s?"":d.createElement(d.Fragment,null,"Add in "),d.createElement(r.TextBig,{strong:!0,color:s?"primary":l===o?"successText":"text"},i))))})),w=((0,o.default)(r.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,backdrop:!0,column:!0,padding:[2,0],background:"dropdown",round:1,overflow:{vertical:"auto"},margin:[.5,0,0],width:30}).withConfig({displayName:"list__Dropdown",componentId:"sc-s8yppy-0"})([""]),(0,d.memo)((e=>{let{dashboards:t,selected:a,setSelected:o,itemProps:n}=e;const i=(0,b.A)();return d.createElement(d.Fragment,null,d.createElement(v,{item:{id:"new",name:"Create a new dashboard",isNew:!0},itemProps:n}),d.createElement(r.MenuDropdown,{items:t,Item:v,value:a,hasSearch:!1,onItemClick:o,hideShadow:!0,itemProps:n,overflow:"hidden",ref:i}))})));var x=a(86008),D=a(3914),y=a(69765),I=a(91517),E=a(47767),A=a(80925),C=a(71835),S=a(79731),k=a(50876),_=a(2025),F=a(67544),L=a(4659),N=a(18202),M=a(54621);const P=e=>{let{onDone:t}=e;const a=(0,E.Zp)(),o=(0,D.vt)(),r=(0,y.ID)(),n=(0,D.ns)(o,"slug"),i=(0,y.wz)(r,"slug"),s=(0,A.e)(),[l,c]=(0,C.A)(),{sendLog:u}=(0,k.A)(),p=(0,M.tV)(),m=(0,_.DH)(null,{onSuccess:e=>{p({title:e.slug,id:e.id,destination:e.slug,type:"dashboards",droppable:!0,droppableProps:{dashboardId:e.id,dropArea:!0}}),l({header:"Added",text:d.createElement(d.Fragment,null,"Chart added in"," ",d.createElement(L.A,{as:"a",strong:!0,onClick:()=>a("/spaces/".concat(n,"/rooms/").concat(i,"/dashboards/").concat(e.slug))},e.name)," ","dashboard.")}),setTimeout((()=>t()),2e3),u({feature:"drag-in-dashboard",isSuccess:!0})},onFail:e=>{var a;const d=null===e||void 0===e||null===(a=e.response)||void 0===a?void 0:a.data,o=(0,S.o)(null===d||void 0===d?void 0:d.errorMsgKey)||(null===d||void 0===d?void 0:d.errorMessage)||"Something went wrong";c({message:o}),t(),u({feature:"drag-in-dashboard",isFailure:!0,message:o})}}),b=(0,F.nM)(),g=(0,F.Dn)(o,r);return(0,d.useCallback)(((e,t)=>{const a=s.getNode({id:null===t||void 0===t?void 0:t.itemId}),d=(0,N.A)(a.getAttributes());"new"!==e?b(d.contextScope,{...d,dashboardId:e,itemLayout:t},(()=>m(e))):g({name:"[Untitled]"},(e=>{b(d.contextScope,{...d,dashboardId:e.id,itemLayout:t},(()=>m(e.id)))}))}),[g,b])},T=(0,o.default)(r.Flex).attrs({background:"mainBackground",padding:[2],overflow:"auto",height:"80%",width:"600px"}).withConfig({displayName:"dropDashboard__ScaledDownContainer",componentId:"sc-zd7fpn-0"})(["box-shadow:0 0 0 1px rgba(63,63,68,0.05),-1px 0 15px 0 rgba(34,33,81,0.01),0px 15px 15px 0 rgba(34,33,81,0.25);"]),z=e=>{let{id:t,setOverDashboard:a}=e;const o=(0,D.vt)(),n=(0,y.ID)(),i=(0,D.ns)(o,"slug"),s=(0,y.wz)(n,"slug"),l=(0,I.A)(t,{spaceId:o,spaceSlug:i,roomId:n,roomSlug:s}),c=P({onDone:a});return t?d.createElement(r.Flex,{flex:!0,width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},d.createElement(T,null,l?d.createElement(m.A,{title:"Loading dashboard..."}):d.createElement(x.A,{id:t,containerWidth:600,trashable:!1,containerDndProps:{droppable:!0},onDragEnd:(e,d)=>{if(!d)return a();c(t,d)}}))):null},j=(0,o.default)(r.Flex).attrs({column:!0,background:"dropdown",width:{max:"auto",min:100,base:100}}).withConfig({displayName:"dropInDashboard__Dropdown",componentId:"sc-12fd9r3-0"})(["box-shadow:0 0 0 1px rgba(63,63,68,0.05),-1px 0 15px 0 rgba(34,33,81,0.01),0px 15px 15px 0 rgba(34,33,81,0.25);"]),R=()=>{const[e,t]=(0,d.useState)(),[a,o]=(0,d.useState)();(0,c.A)();const b=(0,u.q)();let g=(0,p.Sf)(b);g=(0,d.useMemo)((()=>[...g].sort(((e,t)=>new Date(e.updatedAt)<new Date(t.updatedAt)?1:-1))),[b]);const h=(0,u.RQ)(),f=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const[o,r]=(0,d.useState)();return(0,i.A)((()=>r(e)),t,[e,...a]),o}(null===a||void 0===a?void 0:a.id,500),v=P({onDone:o});(0,n.E5)({onDragMove:e=>{let{active:t,over:a}=e;if(null!==a&&void 0!==a&&a.id&&t)if(a.data.current.dropinDashboards&&t.data.current.dashboardable)o((e=>e||{active:t,dropinDashboards:!0}));else if(a.data.current.dashboardId&&t.data.current.dashboardable){if("new"===a.data.current.dashboardId)return;o((e=>e&&(null===e||void 0===e?void 0:e.id)===a.data.current.dashboardId?e:{...e,id:a.data.current.dashboardId,active:t}))}},onDragEnd:e=>{let{active:t,over:a}=e;null!==a&&void 0!==a&&a.id&&t&&(a.data.current.dashboardId&&t.data.current.dashboardable?v(a.data.current.dashboardId,t.data.current):setTimeout((()=>o()),1e3))},onDragCancel:()=>{o()}});const x=(0,d.useMemo)((()=>({overDashboardId:f})),[f]);if(null===a||void 0===a||!a.active)return null;const{isItem:D,isContainer:y,dashboardable:I}=a.active.data.current;return I&&(D||y)?d.createElement(r.Layer,{position:"right",full:!0,backdrop:!0,shadow:!0,justifyContent:"end"},d.createElement(z,{id:f,setOverDashboard:o}),(null===a||void 0===a?void 0:a.dropinDashboards)&&d.createElement(j,null,d.createElement(s.z,{title:"Drop in a dashboard",onClose:()=>o()}),d.createElement(l.Yv,{gap:2,height:"100%",overflow:"hidden",background:"dropdown"},h?d.createElement(w,{dashboards:g,selected:e,setSelected:t,itemProps:x}):d.createElement(m.A,{title:"Loading dashboards..."})))):null}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7340.c563ddaad6c68dab9088.chunk.js b/src/web/gui/v2/7340.c563ddaad6c68dab9088.chunk.js
new file mode 100644
index 000000000..bb57d1ed9
--- /dev/null
+++ b/src/web/gui/v2/7340.c563ddaad6c68dab9088.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="befef7c6-b832-4752-a7ca-8fd4c63c727f",e._sentryDebugIdIdentifier="sentry-dbid-befef7c6-b832-4752-a7ca-8fd4c63c727f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7340],{26751:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(58168),r=n(96540),l=n(10058);const o=e=>{let{message:t,title:n,footer:o,...i}=e;const c=(null===i||void 0===i?void 0:i["data-testid"])||"functionError";return r.createElement(l.Flex,(0,a.A)({alignItems:"center",column:!0,"data-testid":c,flex:!0,gap:3,justifyContent:"center",padding:[0,20]},i),r.createElement(l.H3,{"data-testid":"".concat(c,"-title")},n),r.createElement(l.TextBig,{color:"textDescription","data-testid":"".concat(c,"-message")},t),o)}},97340:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ma});n(62953);var a=n(96540),r=n(83084),l=n(67990),o=n(27467),i=n(50466),c=n(99292),s=n(99739),d=n(28738),u=n(3705),m=n(58168),f=(n(3064),n(98992),n(72577),n(10058)),p=n(11128),g=n(47762),h=n(3914),v=n(20378),y=n(47767);const x=e=>{const t=(0,p.u7)(e),{state:n}=(0,y.zy)();return(0,a.useEffect)((()=>{null!==n&&void 0!==n&&n.nodeId&&t([n.nodeId])}),[]),null===n||void 0===n?void 0:n.nodeId};var E=n(4659),b=n(26751);const C=e=>{let{paramsKey:t,...n}=e;const r=(null===n||void 0===n?void 0:n["data-testid"])||"capableNodesError",l=(0,p.w7)(t),o=(0,g.xY)(null===l||void 0===l?void 0:l[0],"name");return a.createElement(f.Flex,(0,m.A)({alignItems:"center",flex:!0,gap:8,justifyContent:"center"},n,{"data-testid":r}),a.createElement(f.Icon,{"data-testid":"".concat(r,"-icon"),height:"230px",name:"unreachableNode",width:"230px"}),a.createElement(b.A,{"data-testid":"".concat(r,"-details"),gap:2,title:o?"".concat(o," is not configured for Functions"):"Your nodes are not configured for Functions",message:a.createElement(a.Fragment,null,"Learn how to configure your nodes"," ",a.createElement(E.A,{Component:f.TextBig,"data-ga":"functions-capable-nodes-error::click-docs-link::functions-view","data-testid":"".concat(r,"-docsLink"),href:"https://learn.netdata.cloud/docs/nightly/operations/run-time-troubleshooting-with-functions#prerequisites",target:"_blank",rel:"noopener noreferrer"},"to support functions")),width:{max:"fit-content"}}))};var w=n(68741),k=n(40982),A=n(78459),I=(n(41393),n(14905),n(81454),n(8872),n(18121)),F=n(57605),T=n(29217),S=n(87659),K=n(18925),P=n(40933),z=n(44644),N=n(92155);const L={room:"space_new",space:"spaces_v2",personal:"user"},M=[{icon:L.personal,value:"personal",label:"Personal"},{icon:L.room,value:"room",label:"Room"},{icon:L.space,value:"space",label:"Space"}],O=(0,N.A)(f.Button),R=e=>{let{onSubmit:t,onClose:n}=e;const[r,l]=(0,a.useState)(""),[o,i]=(0,a.useState)("personal");return a.createElement(f.Modal,{onClickOutside:n,onEsc:n},a.createElement(f.ModalContent,{background:"dropdown"},a.createElement(f.ModalHeader,null,"Create a new settings snapshot",a.createElement(f.ModalCloseButton,{testId:"close-button",onClose:n})),a.createElement(f.ModalBody,null,a.createElement(f.Flex,{column:!0,width:80,gap:3},a.createElement(f.TextInput,{"data-testid":"name",label:"Name",onChange:e=>{let{target:t}=e;return l(t.value)},value:r}),a.createElement(f.Flex,{column:!0,gap:1},a.createElement(f.TextSmall,{strong:!0},"Scope"),a.createElement(f.Select,{options:M,value:M.find((e=>e.value===o)),onChange:e=>{let{value:t}=e;return i(t)},styles:{minWidth:"80px"}})))),a.createElement(f.ModalFooter,null,a.createElement(O,{disabled:""===r.trim(),label:"Create",onClick:()=>t({name:r,scope:o}),"data-testid":"btn-create",payload:{description:"Modal - Create Settings"}}))))},B={color:"textLite",margin:[0,1,0,0],width:"14px",height:"14px"},D=e=>{let{openForm:t,close:n}=e;return a.createElement(f.Flex,{padding:[2,1],border:{side:"top"},justifyContent:"center"},a.createElement(f.Button,{small:!0,icon:"save",onClick:()=>{t(),n()},"data-ga":"user-settings::click-create",title:"Create a new setting with your changes"},"Add new setting"))},_=e=>{let{id:t,close:n}=e;const r=(0,K.xS)(t,{onSuccess:n});return a.createElement(f.IconButton,{icon:"save",iconColor:"textLite",onClick:e=>{e.stopPropagation(),r({value:{}})},"data-ga":"user-settings::click-update",neutral:!0,padding:[0],title:"Update this setting with your changes"})},j=e=>{let{id:t,close:n}=e;const r=(0,K.z2)(t,{onSuccess:n});return a.createElement(f.IconButton,{icon:"trashcan",iconColor:"textLite",onClick:e=>{e.stopPropagation(),r()},"data-ga":"user-settings::click-delete",neutral:!0,padding:[0],title:"Delete this setting"})},W=e=>{let{item:{value:t,label:n,icon:r,disabled:l,onClick:o,...i},value:c,onItemClick:s,index:d,style:u,close:p,...g}=e;const h=c===t;return a.createElement(f.MenuItemContainer,(0,m.A)({"data-index":d,"aria-selected":h,disabled:l,selected:h,onClick:e=>{o&&o(e),s(t)}},i,g,{style:u,alignItems:"center",justifyContent:"between",padding:[1],overflow:"hidden"}),a.createElement(f.Flex,{alignItems:"center"},r,a.createElement(f.TextSmall,{whiteSpace:"normal",wordBreak:"break-word"},n)),a.createElement(f.Flex,{alignItems:"center",gap:.5},a.createElement(_,{id:t,close:p}),a.createElement(j,{id:t,close:p})))},V=e=>{let{disabled:t,type:n,types:r,entity:l,entities:o,...i}=e;r=Array.isArray(r)?r:n?[n]:[],o=Array.isArray(o)?o:l?[l]:[];const c=(0,P._)({params:{type:r,entity:o}}),[s,d]=(0,z.WY)({type:n,entity:l}),u=(e=>(0,a.useMemo)((()=>e.map((e=>({value:e.id,label:e.name,icon:a.createElement(f.Icon,(0,m.A)({name:L[e.scope]||L.personal},B)),"data-track":"setting-".concat(e.scope)})))),[e]))(c),[p,,g,h]=(0,S.A)(),v=(0,K.yK)({onSuccess:()=>{h(),close()}});return a.createElement(a.Fragment,null,a.createElement(f.Menu,{value:s,items:u,dropProps:{align:{top:"bottom",right:"right"},"data-toolbox":l},dropdownProps:{width:"200px"},onChange:d,"data-track":"user-settings",Item:W,Footer:e=>a.createElement(D,(0,m.A)({},e,{openForm:g}))},a.createElement(f.IconButton,(0,m.A)({icon:"settings_h",padding:[0],title:"User settings",disabled:t,"data-testid":"toolbox-addSettings"},i))),p&&a.createElement(R,{onSubmit:function(){return v({type:n,entity:l,path:"/",...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}})},onClose:h}))},q=(0,a.memo)(V);var H=n(93155),G=n(61360),U=n(8711);const Z=(0,U.default)(f.Flex).attrs({alignItems:"center",border:{side:"bottom",color:"borderSecondary"},padding:[2]}).withConfig({displayName:"styled__MenuItem",componentId:"sc-1bb2nho-0"})(["&:last-child{border:none;}"]),X=(0,U.default)(f.TextInput).withConfig({displayName:"styled__TextInput",componentId:"sc-1bb2nho-1"})(['margin:0 10px;min-width:unset;width:45px;> div{margin:0;}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}input[type="number"]{-moz-appearance:textfield;}']),Y=a.createElement(f.Flex,{column:!0,width:{max:"500px"},gap:1},a.createElement(f.TextSmall,null,"Full data queries will always provide all the available facets with counters for your search, which depending on the size of the query could result in poor performance."),a.createElement(f.TextSmall,null,"i.e. Querying logs for multiple days with multitudes of entries."),a.createElement(f.TextSmall,null,"With this toggle \u201coff\u201d (default), queries will slice the data and will lower performance hit on your servers.")),$=e=>{let{onClose:t,targetRef:n,paramsKey:r,...l}=e;const c=(null===l||void 0===l?void 0:l["data-testid"])||"config",s=(0,i.Ol)({key:"acceptedParams",...r}).includes("slice"),[d,u]=(0,o.r$)("slice",{defaultValue:!0,flavour:"bool",...r}),[m,p]=(0,S.A)(!d);(0,G.A)((()=>{!!d===!!m&&u(!m)}),200,[d,m]);const g=(0,i.Ol)({key:"updateEvery",...r}),[h,v]=(0,o.r$)("pollingInterval",{...r,flavour:"int",defaultValue:g}),[y,x]=(0,a.useState)(h);return(0,G.A)((()=>{h!==y&&v(y)}),400,[h,y]),n.current?a.createElement(f.Drop,{align:{top:"bottom",right:"right"},animation:!0,background:"dropdown",close:t,column:!0,"data-testid":c,margin:[.5,0,0],onClickOutside:t,onEsc:t,round:1,target:n.current,width:58},s&&a.createElement(Z,{"data-testid":"".concat(c,"-slice-data"),justifyContent:"between"},a.createElement(f.Flex,{gap:1,alignItems:"center"},a.createElement(f.Text,{color:"textNoFocus","data-testid":"".concat(c,"-slice-data-label")},"Full data queries (slow)"),a.createElement(T.A,{plain:!0,content:Y,isBasic:!0,allowHoverOnTooltip:!0,stretch:"align"},a.createElement(f.Icon,{name:"information",color:"textDescription",width:"14px",height:"14px"}))),a.createElement(f.Toggle,{colored:!0,checked:m,"data-ga":"functions-config::auto-slice-data-switch::functions-view::".concat(m?"enabled":"disabled"),"data-testid":"".concat(c,"-slice-data-switch"),onChange:p})),a.createElement(Z,{"data-testid":"".concat(c,"-pollingInterval")},a.createElement(f.Text,{color:"textNoFocus","data-testid":"".concat(c,"-pollingInterval-label")},"Refresh every"),a.createElement(X,{"data-ga":"functions-config::polling-interval::functions-view","data-testid":"".concat(c,"-pollingInterval-input"),min:1,onChange:e=>{let{target:t}=e;const n=+t.value;n>0&&x(n)},size:"tiny",type:"number",value:y}),a.createElement(f.Text,{color:"textNoFocus","data-testid":"".concat(c,"-pollingInterval-units")},"seconds"))):null};var J=n(21290);const Q=e=>{let{paramsKey:t}=e;const{updatedAt:n}=(0,i.Ol)(t),{localeTimeString:r,localeDateString:l}=(0,J.$j)();return a.createElement(f.TextMicro,{color:"textLite"},"Last updated: ",l(n,{long:!0})," ",r(n,{secs:!0}))};var ee=n(51112);const te=U.default.div.withConfig({displayName:"reload__IconsContainer",componentId:"sc-gd414j-0"})(["position:relative;"]),ne=(0,U.default)(f.Icon).withConfig({displayName:"reload__SmallIcon",componentId:"sc-gd414j-1"})(["position:absolute;top:3px;left:3px;"]),ae=(0,U.keyframes)(["from{transform:rotate(0deg);}to{transform:rotate(359deg);}"]),re=(0,U.default)(f.IconButton).withConfig({displayName:"reload__AnimatedIcon",componentId:"sc-gd414j-2"})(["&& svg{animation:",";}animation:rotation 2s infinite linear;"],(e=>{let{animate:t}=e;return t?(0,U.css)([""," 3s linear infinite"],ae):""})),le=e=>{let{onRefresh:t,onCancel:n,dataGa:r,testId:l,loading:o}=e;const i=(0,ee.gC)(),[c,s]=(0,a.useState)(!1),[d,u]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{if(!o)return s(!1),void u(!1);const e=setTimeout((()=>s(!0)),500),t=setTimeout((()=>u(!0)),3e3);return()=>{clearTimeout(e),clearTimeout(t)}}),[o]),a.createElement(f.Flex,{alignItems:"center",gap:1},a.createElement(te,null,a.createElement(ne,{name:i?"playSolid":"pauseSolid",width:"6px",height:"6px",color:i?"primary":"text"}),a.createElement(re,{animate:c,"data-testid":"".concat(l,"-refreshNowBtn"),"data-ga":"".concat(r,"::click-refresh-now::functions-view"),flavour:"hollow",icon:"refresh",onClick:()=>t({merge:!1}),disabled:i,padding:[1]})),a.createElement(f.Collapsible,{open:d,direction:"horizontal",duration:300},a.createElement(f.IconButton,{"data-testid":"".concat(l,"-cancelBtn"),"data-ga":"".concat(r,"::click-cancel::functions-view"),flavour:"hollow",warning:!0,icon:"x",onClick:()=>n(),padding:[1]})))},oe={fn:{dataGa:"functions-header",hasConfig:!0,Title:e=>{let{name:t,fn:n}=e;return n?t?"".concat(n," on ").concat(t):n:"Top"},titleTooltip:a.createElement(f.Flex,{width:{max:"500px"},alignItems:"center",flexWrap:!0},a.createElement(f.Text,null,"Netdata Functions enable detailed low-level monitoring at the edge. "),a.createElement(E.A,{Component:f.Text,"data-ga":"functions-header::click-docs-link::functions-view","data-testid":"docsLink",href:"https://learn.netdata.cloud/docs/nightly/concepts/netdata-functions",target:"_blank",rel:"noopener noreferrer"},"Read the Netdata functions documentation to learn more"),a.createElement(f.Text,null,"."))},logs:{dataGa:"logs-header",hasConfig:!0,Title:e=>{let{name:t,fn:n}=e;return n?t?"".concat(n," logs on ").concat(t):"".concat(n," logs"):"Logs"},titleTooltip:a.createElement(f.Flex,{width:{max:"500px"},alignItems:"center",flexWrap:!0},a.createElement(f.Text,null,"Explore system and applications logs. "),a.createElement(E.A,{Component:f.Text,"data-ga":"functions-header::click-docs-link::functions-view","data-testid":"docsLink",href:"https://learn.netdata.cloud/docs/logs/systemd-journal",target:"_blank",rel:"noopener noreferrer"},"Read the Netdata logs documentation to learn more"),a.createElement(f.Text,null,"."))},feed:{dataGa:"feed-header",Title:()=>"Events",titleTooltip:a.createElement(f.Flex,{width:{max:"500px"},alignItems:"center",flexWrap:!0},a.createElement(f.Text,null,"Troubleshoot faster with Netdata Events. Access topology and alert events across the room in one convenient location."," "),a.createElement(E.A,{Component:f.Text,"data-ga":"feed-header::click-docs-link::feed-view","data-testid":"docsLink",href:"https://learn.netdata.cloud/docs/nightly/concepts/events-feed",target:"_blank",rel:"noopener noreferrer"},"Read the Events feed documentation to learn more"),a.createElement(f.Text,null,"."))}},ie=(0,a.memo)((e=>{let{onRefresh:t,onCancel:n,paramsKey:r,...l}=e;const o=(null===l||void 0===l?void 0:l["data-testid"])||"functionsHeader",c=(0,a.useRef)(),{dataGa:s,hasConfig:d,titleTooltip:u,Title:m}=oe[r.extraKey]||oe.fn,[h,v,,y]=(0,S.A)(!1),x=(0,p.w7)(r),E=(0,g.xY)(null===x||void 0===x?void 0:x[0],"name"),{loaded:b,data:C,totalSize:w,actualSize:k,loading:A,loadingMore:I,aggregatedView:F}=(0,i.Ol)(r),K=(0,i.Ak)(r);return a.createElement(f.Flex,{"data-testid":o,justifyContent:"between"},a.createElement(f.Flex,{column:!0},a.createElement(f.Flex,{alignItems:"center","data-testid":"".concat(o,"-title"),gap:1},a.createElement(f.H3,null,a.createElement(m,{name:E,fn:K})),a.createElement(T.A,{plain:!0,content:u,isBasic:!0,allowHoverOnTooltip:!0,stretch:"align"},a.createElement(f.Icon,{name:"information",color:"textDescription",width:"16px",height:"16px"}))),a.createElement(f.Flex,{alignItems:"center",gap:2},b&&a.createElement(f.TextSmall,{color:"textLite",strong:!0},"(",!!F&&!!k&&a.createElement(a.Fragment,null,a.createElement(f.TextSmall,{color:"text",strong:!0},k||0," ",F.aggregatedLabel),a.createElement("span",null," \u2283 ")),w||(null===C||void 0===C?void 0:C.length)||0," ",(null===F||void 0===F?void 0:F.resultsLabel)||"results",")"),a.createElement(Q,{paramsKey:r}))),a.createElement(f.Flex,{gap:1,alignItems:"start"},a.createElement(le,{testId:o,dataGa:s,onRefresh:t,onCancel:n,loading:A||I}),d&&a.createElement(f.IconButton,{"data-testid":"".concat(o,"-ConfigBtn"),"data-ga":"".concat(s,"::click-config::functions-view"),flavour:"hollow",icon:"gear",ref:c,onClick:v,padding:[1]}),h&&a.createElement($,{"data-testid":"".concat(o,"-Config"),isOpen:h,onClose:y,targetRef:c,paramsKey:r}),H.EM&&a.createElement(q,{type:"function",path:"/view",entity:K,padding:[1],"data-testid":"".concat(o,"-SettingsBtn"),"data-ga":"".concat(s,"::click-config::functions-view"),flavour:"hollow"})))}),((e,t)=>e.onRefresh===t.onRefresh));n(25440);var ce=n(65570),se=n(98525);const de=(0,U.default)(f.Icon).attrs({color:"text",height:"16px",width:"16px"}).withConfig({displayName:"value__Arrow",componentId:"sc-1apuy8c-0"})(["rotate:",";transition:all 200ms ease;"],(e=>{let{rotate:t}=e;return t})),ue=function(e){let{transform:t,decimalPoints:n=0,units:r,defaultValue:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=(0,se.py)();return(0,a.useMemo)((()=>{switch(t){case"number":return(0,se.iX)(e,{decimalPoints:n,units:r,defaultValue:l});case"duration":return(0,se.Sh)(e,{defaultValue:l});case"datetime":return o(e,{defaultValue:l});case"datetime_usec":return o(e,{defaultValue:l,usec:!0});default:return null===e||"undefined"===typeof e?l:e}}),[e,r])},me=e=>{let{description:t="",value:n,units:r=""}=e;return t?a.createElement(f.Flex,{column:!0,gap:1,justifyContent:"center"},a.createElement(f.TextSmall,null,t),a.createElement(f.TextSmall,{strong:!0,textAlign:"center"},n," ",r)):"".concat(n," ").concat(r)},fe=(0,U.default)(f.Flex).withConfig({displayName:"value__ValueContainer",componentId:"sc-1apuy8c-1"})(["",""],(e=>{let{overflowWrap:t}=e;return t&&"* {\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n word-break: break-word;\n }\n "})),pe={debug:{strong:!0,color:"textLite"},normal:{},notice:{strong:!0},warning:{strong:!0,color:"warningText"},critical:{strong:!0,color:"errorText"}},ge=(0,U.default)(f.Text).attrs((e=>({...e,...pe[e.severity]||pe.normal}))).withConfig({displayName:"value__ValueLabel",componentId:"sc-1apuy8c-2"})([""]),he=(0,a.forwardRef)(((e,t)=>{let{icon:n,iconRotate:r,children:l,onClick:o,strong:i,testId:c="cell",textAlign:s,wrap:d,truncate:u=!0,rowOptions:f,...p}=e;return a.createElement(fe,(0,m.A)({cursor:o?"pointer":"inherit",gap:.5,onClick:o,overflow:"hidden",ref:t,width:{max:"100%"},flexWrap:!0,overflowWrap:d},p),n&&a.createElement(de,{name:n,rotate:r}),a.createElement(ge,(0,m.A)({"data-testid":"".concat(c,"-value"),strong:i,textAlign:s,truncate:!d&&u,whiteSpace:d?"wrap":"nowrap"},f),l))})),ve=e=>{let{description:t="",tooltipValue:n,value:r,valueOptions:l={},wrap:o,rowOptions:i,...c}=e;const s=ue(r,l);return a.createElement(T.A,(0,m.A)({content:!o&&a.createElement(me,{description:t,value:n||r,units:l.units}),"data-testid":"valueComponent",isBasic:!0},c),a.createElement(he,{wrap:o,rowOptions:i},s))},ye=e=>{let{value:t,...n}=e;return a.createElement(ve,(0,m.A)({value:t.value},n))},xe=e=>{let{description:t="",maxValue:n,strong:r,type:l,value:o,valueOptions:i={},wrap:c,...s}=e;const d=100*o/n,u="bar"===l,m=(null===s||void 0===s?void 0:s["data-testid"])||"progressValue",p=ue(o,i);return a.createElement(T.A,{content:a.createElement(me,{description:t,value:o,units:i.units}),isBasic:!0,stretch:"align"},a.createElement(f.Flex,{column:!0,"data-testid":m,gap:1,flexWrap:c,flex:!0},!u&&a.createElement(he,{strong:r,testid:m},p),null!==o&&a.createElement(f.ProgressBar,{background:"borderSecondary",border:"none",color:["green","netdata"],containerWidth:"100%","data-testid":"".concat(m,"-bar"),height:2,width:"".concat(d,"%")})))},Ee=e=>{let{value:t,wrap:n}=e;return t=Array.isArray(t)?t:[t],a.createElement(f.Flex,{alignItems:"center",flexWrap:n},t.map(((e,t)=>a.createElement(f.Pill,{flavour:"neutral","data-testid":"pillValueComponent",key:"".concat(e,"-").concat(t),margin:[.3],normal:!1},e))))};var be=n(69765),Ce=n(40267);const we=e=>{let{hide:t,user:n}=e;return t||!n?null:a.createElement(a.Fragment,null,a.createElement(f.Text,null,"by"),a.createElement(ke,null,n))},ke=e=>{let{color:t="text",...n}=e;return a.createElement(f.Text,(0,m.A)({color:t,strong:!0},n))},Ae=e=>{let{type:t,text:n=t,hollow:r}=e;return a.createElement(Ce.A,(0,m.A)({flavour:t.toLowerCase()},r&&{border:!1}),n)},Ie=(0,U.default)(f.Flex).attrs({gap:1,flexWrap:!0,alignItems:"center"}).withConfig({displayName:"components__Container",componentId:"sc-b5rk6g-0"})([""]);var Fe=n(84976);const Te={CLEAR:0,WARNING:1,CRITICAL:2,UNINITIALIZED:3,UNDEFINED:4},Se=e=>{let{chart:t,context:n,nodeId:r,nodeName:l,spaceSlug:o,roomSlug:i,alert:c}=e;const s=(0,y.Zp)(),d=(0,g.Zl)(r),u=(0,a.useCallback)((()=>{var e;null!==c&&void 0!==c&&c.id?s(d,{state:{alertId:c.id}}):s(d,{state:{contextToGo:null===n||void 0===n||null===(e=n.name)||void 0===e?void 0:e[0]}})}),[d,c]),m="/spaces/".concat(o,"/rooms/").concat(i,"/alerts/").concat(null===c||void 0===c?void 0:c.id),{current:p,name:h,previous:v}=c;if("ERROR"===p.status)return a.createElement(Ie,null,a.createElement(f.Text,null,"For the alert"),a.createElement(E.A,{Component:ke,as:Fe.N_,to:m},h),a.createElement(f.Text,null,"for"),a.createElement(E.A,{Component:ke,onClick:u},t.name),a.createElement(f.Text,null,"on"),a.createElement(E.A,{Component:ke,onClick:u},l),a.createElement(f.Text,null,"we couldn't calculate the current value"),a.createElement(T.A,{align:"bottom",content:"Please check your alert configuration"},a.createElement(f.Icon,{color:"nodeBadgeColor",size:"small",name:"information"})));if("REMOVED"===p.status)return a.createElement(Ie,null,a.createElement(f.Text,null,"Alert"),a.createElement(E.A,{Component:ke,as:Fe.N_,to:m},h),a.createElement(f.Text,null,"for"),a.createElement(E.A,{Component:ke,onClick:u},t.name),a.createElement(f.Text,null,"on"),a.createElement(E.A,{Component:ke,onClick:u},l),a.createElement(f.Text,null,"is no longer available, state can't be assessed"));const x=Te[p.status]===Te.CLEAR;return a.createElement(Ie,null,a.createElement(f.Text,null,"Alert"),a.createElement(E.A,{Component:ke,as:Fe.N_,to:m},h),a.createElement(f.Text,null,"for"),a.createElement(E.A,{Component:ke,onClick:u},t.name),a.createElement(f.Text,null,"on"),a.createElement(E.A,{Component:ke,onClick:u},l),x?a.createElement(f.Text,null,"recovered"):a.createElement(a.Fragment,null,a.createElement(f.Text,{strong:!0},Te[v.status]===Te.CRITICAL?"was demoted":Te[v.status]===Te.WARNING?"escalated":Te[p.status]===Te.UNDEFINED?"transitioned":"was raised"),a.createElement(f.Text,null,"to"),a.createElement(Ae,{type:p.status}),Te[p.status]===Te.UNDEFINED&&a.createElement(f.Text,null,"state")),a.createElement(f.Text,null,"with value"),a.createElement(Ae,{type:p.status,text:p.value_string,hollow:!0,padding:[0]}))},Ke=e=>{let{id:t,name:n}=e;const r=(0,h.bq)(),l=(0,be.wz)(t,"slug"),o="/spaces/".concat(r,"/rooms/").concat(l,"/home");return a.createElement(E.A,{Component:ke,as:Fe.N_,to:o},n)},Pe=e=>{let{rooms:t}=e;return t.map(((e,n)=>a.createElement(a.Fragment,{key:e.id},n>0&&(n<t.length-1?", ":" and "),a.createElement(Ke,e))))},ze=e=>{let{rooms:t}=e;if(!t.length)return null;const n=t.length>1?"rooms":"room";return a.createElement(a.Fragment,null,a.createElement(f.Text,null,"on ",n),a.createElement(Pe,{rooms:t}))},Ne=e=>{let{contexts:t}=e;t.map(((e,n)=>a.createElement(a.Fragment,{key:e},n>0&&(n<t.length-1?", ":" and "),a.createElement(ke,null,e))))},Le=e=>{let{contexts:t}=e;if(!t.length)return null;const n=t.length>1?"contexts":"context";return a.createElement(f.Text,null,"on ",n," ",a.createElement(Ne,{contexts:t}))},Me={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},Oe=e=>{let{start:t,end:n}=e;const{localeDateString:r}=(0,J.$j)();if(!t||!n)return null;const l=r(new Date(t),Me),o=r(new Date(n),Me);return a.createElement(a.Fragment,null,a.createElement(f.Text,null,"(scheduled ",l," - ",o,")"))},Re={"silencing-rule-created":"created","silencing-rule-deleted":"deleted","silencing-rule-changed":"changed"},Be=e=>{let{rooms:t=[],contexts:n=[]}=e;return t.length||n.length?a.createElement(a.Fragment,null,!!t.length&&a.createElement(ze,{rooms:t}),!!t.length&&!!n.length&&a.createElement(f.Text,null,"and ",a.createElement(Le,{contexts:n}))):null},De=e=>{var t;let{action:n,notification:r,user:l,room:o,context:i}=e;const c=((null===r||void 0===r||null===(t=r.silencing)||void 0===t?void 0:t.rule)||[])[0],s=null===l||void 0===l?void 0:l.name,d=(null===i||void 0===i?void 0:i.name)||[];return a.createElement(Ie,null,a.createElement(f.Text,null,"Silencing rule"),a.createElement(ke,null,c.name),a.createElement(Be,{rooms:o,contexts:d}),a.createElement(f.Text,null,"was ",Re[n]),a.createElement(we,{user:s}),a.createElement(Oe,c))};var _e=n(78969);const je=(e,t)=>{var n,a;return(null===(n=e.target)||void 0===n?void 0:n[t])||(null===(a=e.target)||void 0===a?void 0:a.id)||e[t]||e.id},We=e=>Array.isArray(e)?e[0].name||e[0].id:e.name||e.id,Ve=e=>{let{statistics:t}=e;const{live:n,stale:r,removed:l,total:o}=(null===t||void 0===t?void 0:t.nodes)||{};return a.createElement(Ie,null,a.createElement(f.Text,null,"Space statistics. Nodes:"),a.createElement(f.Text,{color:_e.J4.live.statusTextColor},n," live"),a.createElement(f.Text,null,","),a.createElement(f.Text,{color:_e.J4.stale.statusTextColor},r," stale"),a.createElement(f.Text,null,","),a.createElement(f.Text,{color:_e.J4.offline.statusTextColor},l," removed"),a.createElement(f.Text,null,","),a.createElement(f.Text,{strong:!0},o," total"))};n(34504),n(78898);var qe=n(24398);const He=e=>{let{stateColor:t,state:n}=e;return a.createElement(a.Fragment,null,a.createElement(f.Text,null,"became"),a.createElement(ke,{color:t},n))},Ge=e=>{let{stateColor:t,state:n}=e;return a.createElement(a.Fragment,null,a.createElement(f.Text,null,"was"),a.createElement(ke,{color:t},n))},Ue={"node-created":Ge,"node-state-live":He,"node-state-stale":He,"node-state-offline":He,"node-removed":Ge,"node-deleted":Ge,"node-restored":Ge,default:Ge},Ze=e=>{var t;let{action:n,hosts:r=[]}=e;const{id:l,name:o}=r[0],i=(0,y.Zp)(),c=(0,g.Zl)(l),s=(0,a.useCallback)((()=>i(c)),[c]),d=Ue[n],u=n.split("-").at(-1),m=null===(t=qe.P[u])||void 0===t?void 0:t.statusTextColor;return a.createElement(Ie,null,a.createElement(f.Text,null,"Node"),a.createElement(E.A,{Component:ke,onClick:s},o),a.createElement(d,{stateColor:m,state:u}))},Xe=e=>{let{room:t}=e;const n=(0,be.XA)("untouchable");return a.createElement(a.Fragment,null,a.createElement(f.Text,null,"was added to",n?" room":""),a.createElement(ke,null,n?We(t):"this room"))},Ye=e=>{let{room:t}=e;const n=(0,be.XA)("untouchable");return a.createElement(a.Fragment,null,a.createElement(f.Text,null,"was removed from",n?" room":""),a.createElement(ke,null,n?We(t):"this room"))},$e={"room-created":()=>a.createElement(f.Text,null,"was created"),"room-deleted":()=>a.createElement(f.Text,null,"was deleted"),"room-node-added":Xe,"room-node-removed":Ye,"room-user-added":Xe,"room-user-removed":Ye},Je=e=>{var t;let{action:n,hosts:r=[],Netdata:l,user:o}=e;const i=$e[n],c=null===(t=r[0])||void 0===t?void 0:t.name;return a.createElement(Ie,null,a.createElement(f.Text,null,"Node"),a.createElement(ke,null,c),a.createElement(i,{room:l.room}),a.createElement(we,{user:null===o||void 0===o?void 0:o.name}))},Qe=e=>{let{action:t,Netdata:n,user:r}=e;const l=$e[t];return a.createElement(Ie,null,a.createElement(f.Text,null,"User"),a.createElement(ke,null,je(r,"name")),a.createElement(l,{room:n.room}),a.createElement(we,{hide:!r.target,user:r.name}))},et=e=>{let{action:t,Netdata:n,user:r}=e;const l=$e[t];return a.createElement(Ie,null,a.createElement(f.Text,null,"Room"),a.createElement(ke,null,We(n.room)),a.createElement(l,null),a.createElement(we,{user:r.name}))},tt={"alert-node-transition":e=>{let{chart:t,hosts:n,alert:r,...l}=e;return n.map(((e,n)=>{let{id:o,name:i}=e;const c={...r,name:r.name[n],...r.current?{current:{...r.current,...r.current.status?{status:r.current.status[n]||r.current.status[0]}:{}}}:{}};return a.createElement(Se,(0,m.A)({key:o,chart:t,nodeId:o,nodeName:i,alert:c},l))}))},"node-created":Ze,"node-state-live":Ze,"node-state-stale":Ze,"node-state-offline":Ze,"node-removed":Ze,"node-deleted":Ze,"node-restored":Ze,"agent-connected":e=>{let{agentId:t}=e;return a.createElement(Ie,null,a.createElement(f.Text,null,"Agent with claim ID"),a.createElement(ke,null,t)," ",a.createElement(f.Text,null,"has connected to Netdata"))},"agent-connection-initialized":e=>{let{agentId:t,reason:n}=e;return a.createElement(Ie,null,a.createElement(f.Text,null,"Agent with claim ID"),a.createElement(ke,null,t),a.createElement(f.Text,null,"has initialized its connection to Netdata"))},"agent-disconnected":e=>{let{agentId:t,reason:n}=e;return a.createElement(Ie,null,a.createElement(f.Text,null,"Agent with claim ID"),a.createElement(ke,null,t),a.createElement(f.Text,null,"has disconnected from Netdata with reason: \u201c",n,"\u201d"))},"agent-authenticated":e=>{let{agentId:t}=e;return a.createElement(Ie,null,a.createElement(f.Text,null,"Agent with claim ID"),a.createElement(ke,null,t),a.createElement(f.Text,null,"has successfully authenticated"))},"agent-authentication-failed":e=>{let{agentId:t}=e;return a.createElement(Ie,null,a.createElement(f.Text,null,"Agent with claim ID"),a.createElement(ke,null,t),a.createElement(f.Text,null,"has failed to authenticate"))},"room-created":et,"room-deleted":et,"room-node-added":Je,"room-node-removed":Je,"room-user-added":Qe,"room-user-removed":Qe,"space-created":e=>{let{Netdata:t,user:n}=e;return a.createElement(Ie,null,a.createElement(f.Text,null,"Space"),a.createElement(ke,null,t.space.name||t.space.id),a.createElement(f.Text,null,"was created"),a.createElement(we,{user:n.name}))},"space-statistics":Ve,"space-user-added":e=>{let{Netdata:t,user:n}=e;const{name:r}=(null===t||void 0===t?void 0:t.inviter)||{};return a.createElement(Ie,null,a.createElement(f.Text,null,"User"),a.createElement(ke,null,je(n,"name")),a.createElement(f.Text,null,"was added to this space"),r&&a.createElement(a.Fragment,null,a.createElement(f.Text,null,"by invite of"),a.createElement(ke,null,r)))},"space-user-changed":e=>{var t;let{user:n}=e;if(!(null===(t=n.changes)||void 0===t||!t.roles)&&1===Object.keys(n.changes).length){const e=n.changes.roles.length>1,t=n.changes.roles.join(", ");return a.createElement(Ie,null,a.createElement(f.Text,null,"User ",e?"roles":"role"," for"),a.createElement(ke,null,je(n,"name")),a.createElement(f.Text,null,e?"were":"was"," changed to"),a.createElement(ke,null,t),a.createElement(we,{hide:!n.target,user:n.name}))}return a.createElement(Ie,null,a.createElement(f.Text,null,"User"),a.createElement(ke,null,je(n,"name")),a.createElement(f.Text,null,"was modified"))},"space-user-invited":e=>{let{user:t}=e;return a.createElement(Ie,null,a.createElement(f.Text,null,"User"),a.createElement(ke,null,je(t,"email")),a.createElement(f.Text,null,"was invited to this space"),a.createElement(we,{user:t.name}))},"space-user-removed":e=>{let{user:t}=e;const{name:n}=t.target||{};return a.createElement(Ie,null,a.createElement(f.Text,null,"User"),a.createElement(ke,null,je(t,"name")),a.createElement(f.Text,null,"was removed from this space"),n&&a.createElement(we,{user:t.name}))},"space-user-uninvited":e=>{let{event:t,user:n}=e;return"space-invite-expired"===t.reason?a.createElement(Ie,null,a.createElement(f.Text,null,"The invite for"),a.createElement(ke,null,je(n,"email")),a.createElement(f.Text,null,"to this space has expired")):a.createElement(Ie,null,a.createElement(f.Text,null,"User"),a.createElement(ke,null,je(n,"email")),a.createElement(f.Text,null,"was uninvited from this space"),a.createElement(we,{hide:!n.target,user:n.name}))},"silencing-rule-created":De,"silencing-rule-deleted":De,"silencing-rule-changed":De},nt=e=>{let{data:t}=e;const{action:n,roomId:r,space:l}=t.source,o=(0,h.ns)(l.id,"slug"),i=(0,be.wz)(r,"slug"),c=tt[n];return c?a.createElement(c,(0,m.A)({},t.source,{spaceSlug:o,roomSlug:i})):a.createElement(Ie,null,a.createElement(f.Text,null,"Event")," ",a.createElement(f.Text,{strong:!0},n)," ",a.createElement(f.Text,null,"emitted"))},at={bar:xe,"bar-with-integer":xe,duration:xe,pill:Ee,number:ve,string:ve,feedTemplate:nt,datetime:e=>{let{value:t,...n}=e;const r=new Date(t),{localeTimeString:l,localeDateString:o}=(0,J.$j)(),i=isNaN(r.valueOf())?"Missing date & time":"".concat(o(r,{long:!1})," ").concat(l(r,{secs:!0}));return a.createElement(ve,(0,m.A)({value:i},n))},value:ve},rt={bar:xe,pill:Ee,value:ve,richValue:ye,feedTemplate:nt,rowOptions:"skip"},lt=e=>{let{visualization:t,type:n,value:r,data:l,...o}=e;const i=rt[t]||at[n]||rt.value;return i===rt.rowOptions?null:a.createElement(i,(0,m.A)({value:r,type:n,rowOptions:null===l||void 0===l?void 0:l.rowOptions,data:l},o))},ot={sum:"sum",min:"min",max:"max",extent:"extent",mean:"mean",median:"median",unique:"unique",uniqueCount:"uniqueCount",count:"count"};n(17333),n(8159),n(54520),n(37550);var it=n(47444);const ct={query:(e,t,n)=>{let{columnVisibility:a}=n;const r="string"===typeof t?t.toLowerCase():"";return Object.entries(e).some((e=>{let[t,n]=e;return!!a[t]&&(null!==n&&"undefined"!==typeof n&&(Array.isArray(n)?n.some((e=>String(e).toLowerCase().includes(r))):("object"===typeof n&&Object.keys(n).some((e=>String(n[e]).toLowerCase().includes(r))),String(n).toLowerCase().includes(r))))}))}},st=e=>(t,n)=>!e.some((e=>{let[a,r]=e;return ct[a]?!ct[a](t,r,n):!(e=>(t,n,a)=>{var r,l;if(!a.columns[e]||"facet"===(null===(r=a.columns[e])||void 0===r?void 0:r.filter))return!0;if("range"===(null===(l=a.columns[e])||void 0===l?void 0:l.filter)&&null!==n&&void 0!==n&&n.length)return t[e]>=n[0]&&t[e]<=n[1];if(!Array.isArray(n)||!n.length)return!0;let o=t[e];return"number"===typeof o?(o=parseFloat(o),n.some((e=>parseFloat(e)===o))):n.includes(o)})(a)(t,r,n)})),dt=(0,it.K0)({key:"fnDataFiltered",get:e=>{let{extraKey:t,roomId:n,omit:a,keepAll:r,fn:l}=e;return e=>{var c;let{get:s}=e;const{columnVisibility:d,data:u,columns:m,aggregations:f,requiredParams:p}=s((0,i.WB)({id:l}));if(f||!u)return u||[];const g=s((0,o.GA)({key:n,extraKey:t,merge:!1})),h=a?a.split(":::"):[],v=Object.keys(g).reduce(((e,t)=>(p.some((e=>e.id===t))||h.includes(t)||e.push([t,g[t]]),e)),[]);if(!v.length)return u;const y=st(v),x=null===(c=s((0,o.GA)({key:n,extraKey:"".concat(l,"Settings"),flavour:"val"})))||void 0===c?void 0:c.sortColumn;return r?u.map((e=>y(e,{columnVisibility:d,columns:m,sortColumn:x})?e:{...e,hidden:!0})):u.filter((e=>y(e,{columnVisibility:d,columns:m,sortColumn:x})))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),ut=function(){let{extraKey:e="fn",omit:t,keepAll:n=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=(0,i.Ak)({extraKey:e}),r=(0,be.ID)();return(0,it.vc)(dt({extraKey:"".concat(a||e,"Filters"),fn:a,roomId:r,omit:t,keepAll:n}))};var mt=n(94944);const ft=(0,U.default)(f.Table).withConfig({displayName:"table__StyledTable",componentId:"sc-1n2s6gl-0"})(["*{font-family:Courier New,monospace;letter-spacing:0.09px;}"]),pt=(0,a.memo)(ft,((e,t)=>(0,ce.Ay)(e,t,{keep:["columnVisibility","data","fnQuery","sortBy","virtualizeOptions"]})));let gt;const ht=(0,a.memo)((0,a.forwardRef)(((e,t)=>{let{"data-testid":n,paramsKey:r,refetch:l,onShowInfo:c}=e;const s=(0,i.Ol)(r),{columns:d,sortedColumns:u,sortColumn:m,sortDirection:p,columnVisibility:g,pinnedColumns:h,loadingMore:v,retentionWarning:y,groupByColumns:x,pagination:E,merged:b,latestDirection:C,hasDirection:w,tail:k,aggregations:A}=s,I=(0,a.useRef)();I.current=s;const[F,T]=(0,a.useState)(""),S=ut(r),K="feed"===r.extraKey,P=((e,t,n)=>{let{groupBy:r}=n;return(0,a.useMemo)((()=>(e||[]).reduce(((e,n)=>{const l=t[n];if(!l)return e;const{displayName:o,name:i,sortable:c,sticky:s,units:d,max:u,dummy:m,cellSize:p,valueOptions:g,summary:h,type:v,visualization:y,wrap:x=!1,...E}=l;return m?e:[...e,{...E,displayName:o,id:o,accessorFn:e=>e[n],cell:e=>{let{getValue:t,row:n,cell:l}=e;const o=l.getIsAggregated(),c=t(),s=o&&(ot[h]===ot.count||ot[h]===ot.uniqueCount||!ot[h]);return a.createElement(lt,{description:i,data:n.original,maxValue:u,padding:n.depth>0?[0,0,0,2.5*n.depth]:[0],strong:o,value:s?"".concat(c,"x"):c,tooltipValue:s?"".concat(c," ").concat(1===c?"item":"items"," associated with ").concat(r," grouping"):c,valueOptions:s?{...g,transform:"none"}:g,type:v,visualization:y,wrap:x})},header:a.createElement(f.Flex,{column:!0},a.createElement(f.TextSmall,{strong:!0},o),d&&a.createElement(f.TextMicro,null,"(",d,")")),enableSorting:c,aggregationFn:ot[h]||ot.count,...p,meta:{...o!==i?{tooltip:i}:{}}}]}),[])),[e,t,r])})(u,d,{...K?{}:{groupBy:F}}),[z,N]=(0,o.r$)("colSizing",{defaultValue:{},flavour:"obj",...r}),[L,M]=(0,i.Be)({key:"sortColumn",flavour:"val",...r}),[O,R]=(0,i.Be)({key:"sortDirection",flavour:"val",...r}),[B,D]=(0,i.ZY)({key:"query",flavour:"val",...r}),_=(0,i.E)({key:"columnVisibility",...r}),j=(0,a.useMemo)((()=>L||m?[{id:L||m,desc:"descending"===(O||p)}]:[]),[m,p,L,O]),W=(0,a.useCallback)((e=>{const[t]=e,n=null!==t&&void 0!==t&&t.desc?p||"descending":"ascending";M((null===t||void 0===t?void 0:t.id)||m),R(n)}),[L,m,p]),V=(0,a.useMemo)((()=>({left:h})),[h]),q=(0,a.useRef)();q.current=v;const{pause:H}=(0,mt.A)(),G=(0,a.useCallback)((e=>{let{data:t}=e;return c({data:t.json||t,columns:d})}),[]),U=(0,a.useRef)(),Z=(0,a.useRef)(),X=(0,a.useRef)(),Y=(0,a.useRef)(0),$=(0,a.useRef)(0),J=(0,a.useRef)(b);(0,a.useLayoutEffect)((()=>{var e;b&&!k||null===(e=Z.current)||void 0===e||!e.scrollOffset||Z.current.scrollToOffset(0)}),[b,k]),(0,a.useLayoutEffect)((()=>{clearTimeout(gt),v||(gt=setTimeout((()=>{J.current=!1}),200))}),[v]),(0,a.useLayoutEffect)((()=>{if(!E||!w||k)return;if($.current!==S.length&&"forward"===C){var e;const n=Z.current.scrollOffset;let a=0,r=Z.current.getMeasurements().find(((e,t)=>0!==t&&(a+=e.size,a>n)));var t;if(!r)r=null===(t=Z.current.getMeasurements())||void 0===t?void 0:t[1];if(!r)return;X.current={...S[S.length-$.current+(r.index-1)],headerSize:(null===(e=Z.current.getMeasurements())||void 0===e||null===(e=e[0])||void 0===e?void 0:e.size)||0},b&&!k?Y.current=0:X.current=null}const n=()=>{if(X.current&&Y.current<5){var e,t;Y.current=Y.current+1,$.current=S.length;const a=null===(e=X.current)||void 0===e||null===(e=e[E.column])||void 0===e||null===(t=e.toString)||void 0===t?void 0:t.call(e);let r=Z.current.getMeasurements().find((e=>e.key.replace(/-\d+?/,"")===a));if(!r){const e=S.findIndex((e=>e[E.column]==a));r=Z.current.getMeasurements()[e+1]}return r?(Z.current.scrollToOffset(r.start-X.current.headerSize),void setTimeout(n)):(Y.current=5,void(X.current=null))}Y.current=5,X.current=null};n(),$.current=S.length}),[S]);const Q=(0,a.useCallback)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"backward";k||q.current||I.current.hasDirection&&(J.current||("backward"!==e||I.current.hasNextPage||I.current.anchorBefore)&&("forward"!==e||I.current.hasPrevPage||I.current.anchorAfter)&&("forward"===e&&(J.current=!0),l({anchor:"backward"===e?I.current.anchorBefore:I.current.anchorAfter,merge:!0,direction:e,data_only:!0})))}),[k]),ee=(0,a.useCallback)((e=>{var t;return"undefined"!==typeof(null===(t=I.current.data[e])||void 0===t?void 0:t[null===E||void 0===E?void 0:E.column])?"".concat(I.current.data[e][null===E||void 0===E?void 0:E.column],"-").concat(e):e}),[]),te=(0,a.useCallback)((()=>I.current.hasNextPage),[]),ne=(0,a.useCallback)((()=>I.current.hasPrevPage),[]),ae=(0,a.useCallback)((e=>{e.scrollOffset>10&&H()}),[H]),re=(0,a.useMemo)((()=>({overscan:15,getHasNextPage:te,getHasPrevPage:ne,loading:v,loadMore:Q,warning:y,virtualRef:Z,getItemKey:ee,onVirtualChange:ae})),[S,v]),le=(0,i.dP)();return a.createElement(pt,{groupByColumns:x,onClickRow:G,columnPinning:V,columnVisibility:g,data:S,dataColumns:P,dataGa:"functions",enableColumnPinning:!(null===h||void 0===h||!h.length),enableColumnVisibility:!K,enableCustomSearch:!!A,enableResizing:!0,enableSorting:!K,globalFilter:K?null:B,onColumnVisibilityChange:_,onColumnSizingChange:N,columnSizing:z,onSearch:K?null:D,onGroupByChange:K?null:T,onSortingChange:K?null:W,sortBy:j,testPrefix:n,virtualizeOptions:re,ref:t,tableRef:U,onHoverCell:(0,a.useCallback)((function(){let{row:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e||le(null),le(e)}),[])})})),(()=>!0)),vt=ht;n(9391);var yt=n(2404),xt=n.n(yt),Et=n(92138),bt=n(99090),Ct=n(65624),wt=n(61531),kt=(n(9920),n(3949),n(88055)),At=n.n(kt),It=n(64454);const Ft=90,Tt=110,St=160,Kt=1e3,Pt={minSize:Ft,maxSize:Kt},zt=50,Nt={uniqueKey:{size:Ft,downLimit:Ft-zt,upLimit:Ft+zt},bar:{size:Ft,downLimit:Ft-zt,upLimit:Ft+zt},value:{size:Tt,downLimit:Tt-zt,upLimit:Tt+zt},feedTemplate:{size:Kt,downLimit:Kt-zt,upLimit:Kt+zt,minSize:230,maxSize:5e3,fullWidth:!0},pill:{size:Tt,downLimit:Tt-zt,upLimit:Tt+zt},timestamp:{size:St,downLimit:St-zt,upLimit:St+zt},datetime:{size:St,downLimit:St-zt,upLimit:St+zt}},Lt=(e,t)=>{e((e=>{var n,a,r;const{updateEvery:l,merge:o,reset:i,groupBy:c,items:s,direction:d,dataOnly:u,showIds:m=!1!==e.showIds,facetsDelta:f,histogramDelta:p,itemsDelta:g,aggregatedView:h,...v}=t;let y=i?t.columns:u?At()(e.columns):At()(o?(0,It.A)(t.columns,e.columns):t.columns),x=i?{}:{...e.sortedColumnsObj}||{};const E=v.hasHistory||e.hasHistory,b=u?e.pagination:t.pagination;let C=Object.keys(y).reduce(((t,n)=>{const a=y[n],{id:r,name:l,sticky:o,visible:c,index:s}=a;return a.displayName=m?r||n:l,t.columnVisibility[a.displayName]=!i&&e.loaded?!!t.columnVisibility[a.displayName]:c,!o||!i&&e.loaded||t.pinnedColumns.push(a.displayName),a.valueOptions=a.valueOptions||{},a.cellSize=(e=>{let{visualization:t,type:n,fullWidth:a=!1,uniqueKey:r}=e;return{...Pt,fullWidth:a,...(r&&"timestamp"!==n?Nt.uniqueKey:Nt[n])||Nt[t]||{minSize:Ft,maxSize:Kt,size:Tt,downLimit:Tt-zt,upLimit:Tt+zt}}})(a),a.sortable=a.sortable&&!(null!==b&&void 0!==b&&b.enabled),"undefined"!==typeof s&&(x[x[s]!==n?a.displayName:s]=n),t}),{columnVisibility:i?{}:{...e.columnVisibility||{}},pinnedColumns:i?[]:[...e.pinnedColumns||[]]}),w=i?t.aggregations:o?At()(e.aggregations):t.aggregations||At()(e.aggregations);f&&f.forEach((e=>{const t=w.find((t=>t.id===e.id));t?e.options.forEach((e=>{if(isNaN(e.count))return;const n=t.options.find((t=>t.id===e.id));n?n.count=(n.count||0)+((null===e||void 0===e?void 0:e.count)||0):t.options.push(e)})):w.push(e)}));let k=i?t.histogram:o?At()(e.histogram):t.histogram||At()(e.histogram);if(p){var A;if(!i&&(null===(A=e.histogram)||void 0===A?void 0:A.id)!==(null===p||void 0===p?void 0:p.id))return;const t=k.chart.result.labels;if((0,ce.Ay)(t,p.chart.result.labels))k.chart.result.data=[...k.chart.result.data,...p.chart.result.data];else{const e=((e,t)=>{const n=t.reduce(((t,n,a)=>{const r=e.findIndex((e=>n===e));return-1===r||(t[r]=a),t}),{});return t=>e.reduce(((e,a,r)=>("undefined"===typeof n[r]?e.push([0,0,0]):e.push(t[n[r]]),e)),[])})(t,p.chart.result.labels);p.chart.result.data.forEach((t=>k.chart.result.data.push(e(t))))}}let I={};Object.keys(t.columns).forEach((e=>{I[t.columns[e].index]=e}));let F=t.data.map((e=>e.reduce(((e,t,n)=>{const a=I[n];return a?(e[a]=t,e):e}),{}))),T=i?F:o?"forward"===d?F.concat(e.data||[]):(e.data||[]).concat(F):F;v.tail&&T.slice(0,500);let S=null!==b&&void 0!==b&&b.enabled&&b.column&&Array.isArray(T)&&null!==(n=T[T.length-1])&&void 0!==n&&n[b.column]&&null!==(a=T[0])&&void 0!==a&&a[b.column]?{anchorBefore:T[T.length-1][b.column],anchorAfter:T[0][b.column],anchorUnits:b.units}:{};const K=t.defaultSortColumn||e.defaultSortColumn,P=(i?t.acceptedParams||[]:t.acceptedParams||e.acceptedParams).includes("direction");let z=0;h&&(z=T.reduce(((e,t)=>e+(t[h.column]||0)),0));const N={...e||wt.zb.table,...v,groupByColumns:i?c:c||e.groupByColumns,data:T,columns:y,updatedAt:(new Date).getTime(),updateEvery:l||e.updateEvery,sortedColumns:Object.values(x),sortColumn:null===(r=y[K])||void 0===r?void 0:r.displayName,sortDirection:K?y[K].sort:"descending",...C,...S,totalSize:v.totalSize||(null===s||void 0===s?void 0:s.matched)||(!u||"forward"===d||F.length||t.partial?(e.totalSize||0)+(g?g.matched:0):0),actualSize:z,...!!E&&{hasNextPage:!(u&&"forward"!==d&&!F.length&&!t.partial)&&(!s||0!==s.after)},...!!E&&P&&{hasPrevPage:!(u&&"forward"===d&&!F.length&&!t.partial)&&(!(!v.tail&&s)||0!==s.before)},offset:o?null:(null===s||void 0===s?void 0:s.before)||null,loading:!1,loaded:!0,showIds:m,merged:o,latestDirection:d,hasHistory:E,hasDirection:P,aggregations:w,histogram:k,sortedColumnsObj:x,filtersToRefresh:(v.requiredParams||[]).reduce(((e,t)=>t.uniqueView?{...e,[t.id]:!0}:e),{}),reset:i,aggregatedView:h};return x=null,k=null,w=null,S=null,C=null,y=null,I=null,F=null,T=null,N}))},Mt={table:Lt,log:Lt,default:(e,t)=>{const{data:n,type:a,updateEvery:r,...l}=t;e({...wt.zb.default,...l,data:n,updateEvery:r,type:a,loading:!1,loaded:!0})}},Ot={default:{fetch:Ct.ph,isEnabled:e=>{let{nodeIds:t,fn:n,after:a}=e;return!(null===t||void 0===t||!t.length)&&!!n&&!!a}},feed:{fetch:Ct.d$,isEnabled:e=>{let{roomId:t,fn:n}=e;return!!t&&!!n}}},Rt=e=>{const{after:t,before:n,highlight:r}=(0,o.rW)();return(0,a.useMemo)((()=>t>0?[()=>({after:t,before:n}),t,n,e||r.before]:[()=>{const e=Date.now();return{after:e+1e3*t,before:e}},t,n,e||r.before]),[t,n,null===r||void 0===r?void 0:r.before,e])};var Bt=n(18061);const Dt={default:{fetch:Ct.JJ,isEnabled:e=>{let{nodeIds:t,fn:n}=e;return!(null===t||void 0===t||!t.length)&&!!n}},feed:{fetch:()=>Promise.resolve({data:{type:"table"}}),isEnabled:()=>!0}},_t=(e,t,n)=>{const a=(0,h.vt)(),r=(0,g.yN)(e),[{loading:l}]=(0,A.f7)(),{fetch:o,isEnabled:c}=Dt[t]||Dt.default,[{infoLoaded:s},d]=(0,i.WH)(n),[u]=Rt(),{loaded:m,error:f}=(0,i.vx)(n.extraKey);return(0,Bt.A)((()=>({enabled:!s&&m&&!f&&!l&&c({nodeIds:e,fn:t}),fetch:()=>o({spaceId:a,cloudNodeIds:r,nodeIds:e,fn:t,after:u().after,before:u().before}),onFail:e=>{var t,n;null===(t=e)||void 0===t||null===(t=t.response)||void 0===t||!t.status||400!==e.response.status&&304!==e.response.status?(null!==(n=e)&&void 0!==n&&null!==(n=n.response)&&void 0!==n&&n.data&&(e=e.response.data),d({error:e})):d((e=>({...e,infoLoaded:!0})))},onSuccess:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return d((t=>({...wt.zb[e.type]||wt.zb.default,...t,hasHistory:e.hasHistory||!1,acceptedParams:e.acceptedParams||[],requiredParams:e.requiredParams||[],type:e.type,help:e.help,infoLoaded:!0})))}})),[s,m,t,l,!(null!==e&&void 0!==e&&e.length),null===e||void 0===e?void 0:e[0]]),f};var jt=n(24266),Wt=n(44731),Vt=n(51891),qt=n(3839),Ht=n(66118);const Gt=(0,it.eU)({key:"chartjs",default:{navigation:"pan"}}),Ut=(0,it.K0)({key:"feedChartState",get:e=>{let{key:t}=e;return e=>{let{get:n}=e;const a=n(Gt);return t?a[t]:a}},set:e=>{let{key:t}=e;return(e,n)=>{let{set:a}=e;a(Gt,(e=>t?{...e,[t]:n}:{...e,...n}))}}}),Zt=e=>(0,it.vc)(Ut({key:e})),Xt=e=>(0,it.lZ)(Ut({key:e}));var Yt=n(31225);n(77518);const $t=(0,U.default)(f.Button).attrs((e=>{let{active:t}=e;return{flavour:"borderless",iconColor:t?"textDescription":"border",iconSize:"small",padding:[.5],small:!0}})).withConfig({displayName:"styled__Button",componentId:"sc-8s0lqd-0"})(["&&{background-color:",";height:20px;width:20px;&:hover{background-color:",";.button-icon__color{fill:",";}}}"],(e=>{let{theme:t,active:n}=e;return n?(0,f.getColor)("borderSecondary")({theme:t}):"initial"}),(e=>{let{theme:t}=e;return(0,f.getColor)("borderSecondary")({theme:t})}),(e=>{let{theme:t}=e;return(0,f.getColor)("textDescription")({theme:t})})),Jt=(0,U.default)(f.Flex).attrs({padding:[.5],gap:1,round:!0,border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"styled__Container",componentId:"sc-8s0lqd-1"})(["position:absolute;top:18px;right:8px;background:",";&:hover{background:",";}"],(0,f.getRgbColor)("elementBackground",.5),(0,f.getColor)("elementBackground")),Qt=(0,a.forwardRef)(((e,t)=>{let{testIdPrefix:n,...r}=e;const[{after:l,before:i},c]=(0,o.N9)(),[s,d]=[Zt(u="navigation"),Xt(u)];var u;const f=(0,a.useCallback)((e=>{let t=l,n=i;if(l<0){const e=Date.now();t=e+1e3*l,n=e}const a=e*Math.round((n-t)/4);c({after:t+a,before:n-a})}),[l,i]),p=l>0&&Math.abs(i-l)<2e3||-1===l;return a.createElement(Jt,(0,m.A)({"data-testid":"chartToolbox","data-track":"chart-toolbox::hover-chart::".concat(n),"data-toolbox":"true",ref:t},r),a.createElement($t,{active:"pan"===s,"data-testid":"chartToolbox-pan","data-track":"chart-toolbox::pan-click::".concat(n),icon:"panTool",onClick:()=>d("pan"),title:"Pan"}),a.createElement($t,{active:"highlight"===s,"data-testid":"chartToolbox-highlight","data-track":"chart-toolbox::highlight-click::".concat(n),icon:"highlightArea",onClick:()=>d("highlight"),title:"Highlight"}),a.createElement($t,{active:"zoom"===s,"data-testid":"chartToolbox-zoom","data-track":"chart-toolbox::zoom-click::".concat(n),disabled:p,icon:"dragHorizontal",onClick:()=>{d("zoom")},title:"Select and zoom"}),a.createElement($t,{"data-testid":"chartToolbox-zoomIn","data-track":"chart-toolbox::zoom-in-click::".concat(n),disabled:p,icon:"zoomIn",onClick:()=>{f(1)},title:"Zoom in"}),a.createElement($t,{"data-testid":"chartToolbox-zoomOut","data-track":"chart-toolbox::zoom-out-click::".concat(n),icon:"zoomOut",onClick:()=>{f(-1)},title:"Zoom out"}),a.createElement($t,{"data-testid":"chartToolbox-zoomReset","data-track":"chart-toolbox::zoom-reset-click::".concat(n),disabled:-900===l&&0===i,icon:"zoomReset",onClick:()=>{c({after:-900,before:0})},title:"Zoom reset"}))})),en={after:null,before:null};Ht.t1.register(Vt.A,Ht.A6,Ht.E8,Ht.PP,Ht.s$,Ht.kc,Ht.UA,Ht.m_,qt.Ay);const tn=e=>{var t;let{paramsKey:n,testIdPrefix:r}=e;const l=(0,a.useRef)(),c=(0,a.useContext)(U.ThemeContext),[s,d]=(0,o.N9)(),[u,m]=(0,a.useState)([]),[p,g]=(0,a.useState)(en),[h,v]=(0,a.useState)(!1),[y,x]=(0,a.useState)(!1),[E,b]=(0,a.useState)([]),[C,w]=(0,a.useState)(null),[k,A]=(0,a.useState)("second"),[I,,F,T]=(0,S.A)(!1),{aggregations:K}=(0,i.Ol)(n),{navigation:P}=Zt(),{localeTimeString:z,localeDateString:N}=(0,J.$j)(),[L]=Rt(),M=L.before-L.after,O=(0,a.useMemo)((()=>{const e=Date.now();return{min:L.after-M,max:0===s.before?L.before:e<L.before+M?e:L.before+M}}),[L.after,L.before,s.before]),R=[{backgroundColor:(0,f.getColor)("primary")({theme:c}),borderWidth:0,data:u,label:"Histogram",maxBarThickness:50,minBarLength:0}];(0,a.useEffect)((()=>{var e;if(null===K||void 0===K||null===(e=K.event_histogram)||void 0===e||null===(e=e.hits)||void 0===e||!e.buckets)return;const t=K.event_histogram.hits.buckets.reduce(((e,t)=>{let{key:n,doc_count:a}=t;return{data:[...e.data,a],labels:[...e.labels,n]}}),{data:[],labels:[]}),n=(0,se.Bp)(s.after,s.before)||{};m(t.data),b(t.labels),w(null),A(n.unit)}),[null===K||void 0===K||null===(t=K.event_histogram)||void 0===t||null===(t=t.hits)||void 0===t?void 0:t.buckets]);const B=(0,a.useMemo)((()=>({animation:!1,interaction:{axis:"x"},maintainAspectRatio:!1,plugins:{annotation:{annotations:{...p.after&&p.before?{annotation:{type:"box",backgroundColor:"rgba(128,128,128,0.3)",borderDash:[1,5,1,1],borderWidth:1,xMax:p.before,xMin:p.after,xScaleID:"x"}}:{}}},legend:{align:"start",display:!1,position:"bottom"},zoom:{limits:{x:O},pan:{enabled:"pan"===P&&!h,mode:"x",onPanStart:e=>{let{chart:t}=e;t.canvas.style.cursor="grabbing"},onPanComplete:e=>{let{chart:t}=e;t.canvas.style.cursor="default";const{min:n,max:a}=t.scales.x;w({min:Math.round(n),max:Math.round(a)}),d({after:Math.round(n),before:Math.round(a)}),t.update()},threshold:1},zoom:{drag:{enabled:"zoom"===P||h},mode:"x",onZoomStart:e=>{let{chart:t}=e;t.canvas.style.cursor="col-resize"},onZoomComplete:e=>{let{chart:t}=e;if("zoom"!==P&&!h)return;t.canvas.style.cursor="default";const{min:n,max:a}=t.scales.x;d({after:Math.round(n),before:Math.round(a)}),v(!1)}}}},responsive:!0,scales:{x:{type:"time",grid:{drawBorder:!0,drawOnChartArea:!1,drawTicks:!0,offset:!1},parsing:!1,ticks:{color:(0,f.getColor)("textLite")({theme:c}),font:{size:11},autoSkip:!0,maxTicksLimit:20,..."minute"===k&&M>=1e3*Yt.wD?{callback:e=>{const t=N(e,{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0}).split("/").reverse().slice(1).join("-"),n=z(e,{secs:!1});return"".concat(t," ").concat(n)}}:{}},time:{displayFormats:{week:"yyyy-MM-dd",day:"MM-dd",hour:"MM-dd HH:mm",minute:"HH:mm",second:"HH:mm:ss"},tooltipFormat:"yyyy-MM-dd HH:mm:ss",unit:k||"second"},...C?{min:C.min,max:C.max}:{}},y:{beginAtZero:!0,ticks:{precision:0,color:(0,f.getColor)("textLite")({theme:c}),font:{size:11}}}}})),[p,M,h,P,C,w,k,O]);if((0,a.useEffect)((()=>{const e=e=>{"Shift"===e.key&&(e.preventDefault(),v(!0))};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[]),!u.length)return null;return a.createElement(f.Flex,{position:"relative",height:{min:50},onMouseEnter:F,onMouseLeave:T},I&&a.createElement(Qt,{testIdPrefix:r}),a.createElement(Wt.yP,{data:{datasets:R,labels:E},onMouseDown:e=>{if(e.preventDefault(),"highlight"!==P)return;x(!0);const t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;n.canvas.style.cursor="crosshair",g({after:Math.round(n.scales.x.getValueForPixel(t)),before:null})},onMouseMove:e=>{if(e.preventDefault(),"highlight"!==P||!y)return;const t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;g((e=>({...e,before:Math.round(n.scales.x.getValueForPixel(t))})))},onMouseUp:e=>{e.preventDefault(),x(!1);const t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;n.canvas.style.cursor="default";p.after===Math.round(n.scales.x.getValueForPixel(t))?g(en):g(p)},options:B,ref:l}))};var nn=n(80158);const an={none:!0,facet:!0},rn=(e,t)=>{const{loaded:n,loading:r,columns:l,sortedColumns:o}=(0,i.Ol)({extraKey:e}),c=(0,a.useRef)([]);return(0,a.useMemo)((()=>(!n||r||(c.current=(o||[]).reduce(((e,n)=>l[n]&&l[n].filter&&!an[l[n].filter]?[...e,t(n,l)]:e),[])),c.current)),[n,r])};n(74648),n(23215),n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215);const ln={sum:e=>e.reduce(((e,t)=>e+("number"===typeof t?t:0)),0),min:e=>{let t;return e.forEach((e=>{null!=e&&(t>e||void 0===t&&e>=e)&&(t=e)})),t},max:e=>{let t;return e.forEach((e=>{null!=e&&(t<e||void 0===t&&e>=e)&&(t=e)})),t},extent:e=>{let t,n;return e.forEach((e=>{null!=e&&(void 0===t?e>=e&&(t=n=e):(t>e&&(t=e),n<e&&(n=e)))})),[t,n]},mean:e=>{let t=0,n=0;if(e.forEach((e=>{null!=e&&(e=+e)>=e&&(++t,n+=e)})),t)return n/t},median:e=>{if(!e.length)return;if(t=e,!Array.isArray(t)||!t.every((e=>"number"===typeof e)))return;var t;if(1===e.length)return e[0];const n=Math.floor(e.length/2),a=e.sort(((e,t)=>e-t));return e.length%2!==0?a[n]:(a[n-1]+a[n])/2},unique:e=>Array.from(new Set(e.map((e=>e))).values()),uniqueCount:e=>new Set(e.map((e=>e))).size,count:e=>e.length},on=e=>({label:e,value:e}),cn=(0,a.memo)((e=>{let{paramsKey:t,initData:n,initFilter:r}=e;const{charts:l,loaded:o,columns:c}=(0,i.Ol)(t),s=ut(t),d=(0,a.useContext)(U.ThemeContext),u=Object.keys(l).map(on),m=rn(t.extraKey,on),[p,g]=(0,a.useState)(n),[h,v]=(0,a.useState)(r),y=(0,i.Ak)(t);(0,a.useEffect)((()=>{g(n)}),[n]),(0,a.useEffect)((()=>{v(r)}),[r]);const x=(0,a.useMemo)((()=>{if(!l[p])return{datasets:[],labels:[]};const e=l[p].columns.reduce(((e,t)=>{var n;const a=((e,t,n)=>e.reduce(((e,a)=>(e[a[n]]||(e[a[n]]={label:a[n],data:[]}),e[a[n]].data.push(a[t]),e)),{}))(s,t,h),r=(null===(n=c[t])||void 0===n?void 0:n.summary)||"count",l=ln[r];return Object.keys(a).forEach((n=>{const r=l(a[n].data);e[a[n].label]={...e[a[n].label],[t]:r,label:a[n].label,sortByValue:e[a[n].label]&&e[a[n].label].sortByValue>r?e[a[n].label].sortByValue:r}})),e}),{}),t=Object.values(e).sort(((e,t)=>t.sortByValue-e.sortByValue)).slice(0,15).map((e=>{let{sortByValue:t,...n}=e;return n}));return{datasets:l[p].columns.map(((e,n)=>({backgroundColor:Yt.b4[n],borderWidth:0,data:t.map((t=>t[e])),label:e,maxBarThickness:50,minBarLength:0}))),labels:t.map((e=>{let{label:t}=e;return t}))}}),[y,l,p,h,s]),E={animation:!1,maintainAspectRatio:!1,plugins:{legend:{position:"bottom",labels:{boxWidth:4,boxHeight:20,title:{color:(0,f.getColor)("textLite")({theme:d})}}}},responsive:!0,scales:{x:{stacked:!0,grid:{color:(0,f.getColor)("borderSecondary")({theme:d})},afterSetDimensions:e=>{e.maxHeight=50},ticks:{callback:(e,t)=>{let n=x.labels[t];if(!n)return;let a=0;for(;(null===(r=n)||void 0===r?void 0:r.length)>20;){var r;n=(0,nn.P3)(n,a),a+=1}return n}}},y:{stacked:!0,grid:{color:(0,f.getColor)("borderSecondary")({theme:d})},afterSetDimensions:e=>{e.maxWidth=50}}}},[b,C]=(0,I.useHovered)({},[o]),w=(0,F.A)();return(0,a.useEffect)((()=>{w(C)}),[C]),a.createElement(f.Flex,{column:!0,"data-testid":"functionsCharts",gap:3,width:"50%",background:"mainChartBg",border:{side:"all",color:"mainChartBorder"},padding:[4],round:.5},a.createElement(f.Flex,{alignItems:"center","data-testid":"functionsChart".concat(p,"-selects"),gap:2},a.createElement(f.Select,{"data-ga":"functions-chart-".concat(p,"::select-data::functions-view"),"data-testid":"functionsChart".concat(p,"-dataSelect"),isLoading:!o,onChange:e=>{let{value:t}=e;return g(t)},options:u,styles:{size:"tiny",minWidth:120},value:{label:p,value:p}}),a.createElement(f.Text,{"data-testid":"functionsChart".concat(p,"-perLabel"),color:"textLite"},"per"),a.createElement(f.Select,{"data-ga":"functions-chart-".concat(h,"::select-filter::functions-view"),"data-testid":"functionsChart".concat(h,"-filterSelect"),isLoading:!o,onChange:e=>{let{value:t}=e;return v(t)},options:m,styles:{size:"tiny",minWidth:120},value:{label:h,value:h}})),a.createElement(f.Flex,{position:"relative",height:{min:60},width:{min:"100%"},ref:b},a.createElement(Wt.yP,{data:x,options:E})))})),sn=cn;var dn=n(83465),un=n(75233),mn=n(89638),fn=n(5668);n(69982),n(39912);const pn={dark:{publicColor:"#FF9700",privateColor:"#0075A2",serverColor:"#00a44a",clientColor:"#DB162F",otherColor:"#3E4551",appFontColor:"#AEBBBB",appFontFamily:"Courier New, monospace",appFontSize:"12px",appFontWeight:"regular",borderFontColor:"#EDF0F0",borderFontFamily:"Courier New, monospace",borderFontSize:"14px",borderFontWeight:"bold"},light:{publicColor:"#BFA142",privateColor:"#197EA8",serverColor:"#339979",clientColor:"#CD6364",otherColor:"#AFB5BA",appFontColor:"#526161",appFontFamily:"Courier New, monospace",appFontSize:"12px",appFontWeight:"regular",borderFontColor:"#5D7070",borderFontFamily:"Courier New, monospace",borderFontSize:"14px",borderFontWeight:"bold"}},gn=(0,a.memo)((0,a.forwardRef)(((e,t)=>{let{data:n,width:r,height:l,processing:o}=e;const i=(0,a.useRef)({}),c=(0,fn.xd)("theme"),s=(0,Et.A)(n),d=(0,Et.A)(r),u=(0,Et.A)(l),m=(0,Et.A)(o),p=(0,a.useRef)({}),g=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=!e&&(0,ce.Ay)(n,s);p.current=t?p.current:n.reduce(((e,t)=>(e[t.Process]||(e[t.Process]={listen:0,inbound:0,outbound:0,local:0,private:0,public:0,total:0,name:t.Process}),e[t.Process].total+=t.Count,"listen"===t.Direction?e[t.Process].listen+=t.Count:"local"===t.Direction?e[t.Process].local+=t.Count:"inbound"===t.Direction?e[t.Process].inbound+=t.Count:"outbound"===t.Direction&&(e[t.Process].outbound+=t.Count),"public"===t.RemoteAddressSpace?e[t.Process].public+=t.Count:"private"===t.RemoteAddressSpace&&(e[t.Process].private+=t.Count),e)),{});function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(7!==e.length||"#"!==e[0])throw new Error("Invalid hex color format");const n=parseInt(e.slice(1,3),16),a=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16);return"rgba(".concat(n,", ").concat(a,", ").concat(r,", ").concat(t,")")}function o(e,t,n,a,r){const l=t/2,o=n/2;!function(e){e.selectAll(".app").each((function(e){e&&(i.current[e.name]={x:e.x,y:e.y})}))}(e);const c=mn.scaleOrdinal().domain(["public","private","listenInbound","outbound","others"]).range([r.publicColor,r.privateColor,r.serverColor,r.clientColor,r.otherColor]),s=mn.pie().value((e=>e.value)),d=mn.arc(),g=e.selectAll(".app").data(Object.values(p.current),(e=>e.name));g.exit().transition().style("opacity",0).remove();const h=g.enter().append("g").attr("class","app").attr("transform",(e=>{const t=i.current[e.name];return"translate(".concat((null===t||void 0===t?void 0:t.x)||l,", ").concat((null===t||void 0===t?void 0:t.x)||o,")")}));h.each((function(e){const t=mn.select(this),n=s(e.d3.pie),a=e.d3.size;t.selectAll("path").data(n).enter().append("path").transition().attr("fill",((e,t)=>c(t))),t.append("text").text((e=>e.name)).attr("text-anchor","middle").attr("y",a+10).style("font-family",r.appFontFamily).style("font-size",r.appFontSize).style("font-weight",r.appFontWeight).style("fill",r.appFontColor)}));const v=h.merge(g);return v.each((function(e){const t=mn.select(this),n=i.current[e.name]||function(e){return e.d3.isListener?{x:e.d3.x,y:e.d3.y}:{x:l,y:o}}(e);e.x=n.x,e.y=n.y,t.selectAll("path").data(s(e.d3.pie)).transition().attr("d",d.innerRadius(0).outerRadius(e.d3.size)),t.select("text").transition().attr("y",e.d3.size+10)})),v.call(mn.drag().on("start",u).on("drag",m).on("end",f)),v}let d;function u(e,t){e.active||d.alphaTarget(1).restart(),t.fx=t.x,t.fy=t.y}function m(e,t){t.fx=e.x,t.fy=e.y}function f(e,t){e.active||d.alphaTarget(0),t.fx=null,t.fy=null}!function(n,i){let c=mn.select("#d3-canvas").select("svg");((e,n,a)=>{if(t)return;const r=e/2-a,l=n/2-a,o=Math.min(2*r/3-a,2*l/3-a,Math.max(5,Math.min(e,n)/Object.keys(p.current).length)+13),i=Object.values(p.current),c={total:mn.max(i,(e=>e.total)),local:mn.max(i,(e=>e.local)),listen:mn.max(i,(e=>e.listen)),private:mn.max(i,(e=>e.private)),public:mn.max(i,(e=>e.public)),inbound:mn.max(i,(e=>e.inbound)),outbound:mn.max(i,(e=>e.outbound))},s=mn.scaleLog().domain([1,c.total]).range([13,o]).clamp(!0);let d=0,u=0,m=0,f=n-a;i.forEach((t=>{const o=mn.scaleLog().domain([1,t.total+1]).range([0,r-a]),i=mn.scaleLog().domain([1,t.total+1]).range([0,r-a]),g=mn.scaleLog().domain([1,t.total+1]).range([0,l-a]),h=mn.scaleLog().domain([1,t.total+1]).range([0,l-a]);p.current[t.name].forces={total:t.total/c.total,local:t.local/c.local,listen:t.listen/c.listen,private:t.private/c.private,public:t.public/c.public,inbound:t.inbound/c.inbound,outbound:t.outbound/c.outbound},p.current[t.name].pos={right:o(t.public+1),left:i(t.private+1),top:g(t.outbound+1),bottom:h((t.listen+t.inbound)/2+1)};const v=t.total-(t.public+t.private+t.listen+t.inbound+t.outbound);let y=a+r+p.current[t.name].pos.right-p.current[t.name].pos.left,x=a+l+p.current[t.name].pos.bottom-p.current[t.name].pos.top,E=s(t.total);t.listen===t.total&&(E=10,m===u&&50*d>2*e/3&&(d=0,m=0,u=0,f-=80),d?m>=u?(u++,y=e/2+50*u,x=f-E-(u%2===0?0:40)):(m++,y=e/2-50*m,x=f-E-(m%2===0?0:40)):(y=e/2,x=f-E),d++),p.current[t.name].d3={isListener:t.listen===t.total,x:y,y:x,size:E,pie:[{value:t.public},{value:t.private},{value:t.listen+t.inbound},{value:t.outbound},{value:v>0?v:0}]},p.current[t.name].d3.x-p.current[t.name].d3.size/2<a&&(p.current[t.name].d3.x=a+2*p.current[t.name].d3.size),p.current[t.name].d3.x+p.current[t.name].d3.size/2>e&&(p.current[t.name].d3.x=e-2*p.current[t.name].d3.size),p.current[t.name].d3.y-p.current[t.name].d3.size/2<a&&(p.current[t.name].d3.y=a+2*p.current[t.name].d3.size),p.current[t.name].d3.y+p.current[t.name].d3.size/2>n&&(p.current[t.name].d3.y=n-2*p.current[t.name].d3.size)}))})(r,l,n),(c.empty()||e)&&(c=c.empty()?mn.select("#d3-canvas").append("svg").attr("width",r).attr("height",l):c.attr("width",r).attr("height",l),function(e,t,n,r,l){mn.select("#d3-canvas").selectAll("svg > *").remove();const o=n/2,i=e.append("defs").append("linearGradient").attr("id","clientsGradient").attr("x1","0%").attr("y1","0%").attr("x2","0%").attr("y2","100%");i.append("stop").attr("offset","0%").style("stop-color",a(l.clientColor,1)),i.append("stop").attr("offset","100%").style("stop-color",a(l.clientColor,0));const c=e.append("g").attr("class","topRect");c.append("rect").attr("x",0).attr("y",0).attr("width","100%").attr("height",r/2).style("fill","url(#clientsGradient)"),c.append("text").text("Clients").attr("x","50%").attr("y",12).attr("text-anchor","middle").style("font-family",l.borderFontFamily).style("font-size",l.borderFontSize).style("font-weight",l.borderFontWeight).style("fill",l.borderFontColor);const s=e.append("defs").append("linearGradient").attr("id","serversGradient").attr("x1","0%").attr("y1","100%").attr("x2","0%").attr("y2","0%");s.append("stop").attr("offset","0%").style("stop-color",a(l.serverColor,1)),s.append("stop").attr("offset","100%").style("stop-color",a(l.serverColor,0));const d=e.append("g").attr("class","bottomRect");d.append("rect").attr("x",0).attr("y","100%").attr("width","100%").attr("height",r/2).attr("transform","translate(0, -".concat(r/2,")")).style("fill","url(#serversGradient)"),d.append("text").text("Servers").attr("x","50%").attr("y","100%").attr("text-anchor","middle").attr("transform","translate(0, -4)").style("font-family",l.borderFontFamily).style("font-size",l.borderFontSize).style("font-weight",l.borderFontWeight).style("fill",l.borderFontColor);const u=e.append("defs").append("linearGradient").attr("id","publicGradient").attr("x1","100%").attr("y1","0%").attr("x2","0%").attr("y2","0%");u.append("stop").attr("offset","0%").style("stop-color",a(l.publicColor,1)),u.append("stop").attr("offset","100%").style("stop-color",a(l.publicColor,0));const m=e.append("g").attr("class","rightRect");m.append("rect").attr("x","100%").attr("y",0).attr("transform","translate(-".concat(r/2,", 0)")).attr("width",r/2).attr("height","100%").style("fill","url(#publicGradient)"),m.append("text").text("Public").attr("x","100%").attr("y","50%").attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform","rotate(90, ".concat(t-r/4,", ").concat(o,")")).style("font-family",l.borderFontFamily).style("font-size",l.borderFontSize).style("font-weight",l.borderFontWeight).style("fill",l.borderFontColor);const f=e.append("defs").append("linearGradient").attr("id","privateGradient").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");f.append("stop").attr("offset","0%").style("stop-color",a(l.privateColor,1)),f.append("stop").attr("offset","100%").style("stop-color",a(l.privateColor,0));const p=e.append("g").attr("class","leftRect");p.append("rect").attr("x",0).attr("y",0).attr("width",r/2).attr("height","100%").style("fill","url(#privateGradient)"),p.append("text").text("Private").attr("x",r/2).attr("y","50%").attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform","rotate(-90, ".concat(r/2-10,", ").concat(o,")")).style("font-family",l.borderFontFamily).style("font-size",l.borderFontSize).style("font-weight",l.borderFontWeight).style("fill",l.borderFontColor)}(c,r,l,n,i));const s=o(c,r,l,0,i);d=mn.forceSimulation(Object.values(p.current)).force("x",mn.forceX((e=>e.d3.x)).strength((e=>e.d3.isListener?.2:.1))).force("y",mn.forceY((e=>e.d3.y)).strength((e=>e.d3.isListener?.2:.1))).force("collision",mn.forceCollide((e=>1.1*e.d3.size+15)).strength(1)).on("tick",(()=>{s.each((e=>{e.x>r-n?e.x=r-n:e.x<n&&(e.x=n),e.y>l-n?e.y=l-n:e.y<n&&(e.y=n)})),s.attr("transform",(e=>"translate(".concat(e.x,", ").concat(e.y,")")))}))}(40,pn[c]||pn.dark)};return(0,a.useLayoutEffect)((()=>{o||r&&l&&g(d!==r||u!==l||m!==o)}),[n,r,l,c,o]),a.createElement(f.Flex,{id:"d3-canvas",ref:t,width:"100%",height:"100%",flex:!0,round:!0,overflow:"hidden"})}))),hn={"network-viewer":gn},vn=(0,a.forwardRef)(((e,t)=>{let{id:n,resizeHandle:r,style:l,paramsKey:o,containerWidth:i,resizing:c,...s}=e;const d=ut(o),p=hn[n],[g,h]=(0,I.useHovered)({},[]),v=(0,F.A)();(0,a.useEffect)((()=>{v(h)}),[h]);const[y,{width:x,height:E}]=(0,u.A)();return a.createElement(f.Flex,{ref:(0,f.mergeRefs)(t,y),position:"relative",style:l},a.createElement(p,(0,m.A)({data:d,key:n,id:n,role:"graphics-object","aria-roledescription":"chart",ref:g,containerWidth:i,width:x,height:E,processing:c},s)),r)})),yn=(0,a.memo)((e=>{var t;let{paramsKey:n,customCharts:r,containerWidth:l}=e;const o=Object.values(r).filter((e=>!!hn[e.type])),i=null===(t=o[0])||void 0===t?void 0:t.type,[c,s]=(0,a.useState)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return[(0,dn.bP)(e,{left:0,top:0,width:12,height:9,id:e,...t,chartId:e,minWidth:12,maxWidth:12,minHeight:4,static:!1,dashboardable:!0})]}(i,{paramsKey:n,containerWidth:l}));return o.length?a.createElement(f.Flex,{column:!0,"data-testid":"functionsCharts",gap:3,width:"100%",background:"mainChartBg",round:.5},a.createElement(un.A,{rootId:n.extraKey,containerId:n.extraKey,onDragEnd:(e,t)=>{(0,dn.Q)(t),s(e)},items:c,containerWidth:l-40,Item:vn,rearrangeable:!1})):"No chart found"}));var xn=n(36196),En=n(28973),bn=n(13752),Cn=n(92815),wn=n(72582),kn=n(80925),An=n(22332),In=n(72982),Fn=n(6504);const Tn=e=>{let{fn:t,histograms:n,selectedId:r,disabled:l}=e;const i=(0,An.useChart)(),c=(0,be.ID)(),s=(0,a.useMemo)((()=>n.map((e=>{let{id:t,name:n}=e;return{value:t,label:n,"data-track":i.track("select-histogram-".concat(n))}}))),[n]),[d,u]=(0,o.N9)("histogram",{defaultValue:[r],key:c,extraKey:"".concat(t,"Filters"),flavour:"val"}),m=d[0];return a.createElement(In.A,{value:m,items:s,dropProps:{align:{top:"bottom",right:"right"},"data-toolbox":!0},onChange:e=>u([e]),"data-track":i.track("selectHistogram"),dropdownProps:{width:"150px"}},a.createElement(Fn.Button,{disabled:l},"Source"))},Sn=(0,a.memo)(Tn),Kn=e=>t=>"histogram::".concat(e.getAttribute("id"),"::").concat(t),Pn={width:"108px",height:"77px"},zn=e=>{let{nodeId:t,fn:n,paramsKey:r}=e;const{availableHistograms:l,histogram:o,help:c,pagination:s,data:u}=(0,i.Ol)(r),m=(0,i.nm)(),p=(0,kn.e)(),g=(0,a.useRef)();g.current=()=>Promise.resolve(null===o||void 0===o?void 0:o.chart);const[h,v]=(0,a.useMemo)((()=>{const e="".concat(t,"-").concat(n),a=p.makeChart({attributes:{id:e,info:c},getChart:()=>g.current(),makeTrack:Kn});return p.getRoot().appendChild(a),[a,e]}),[t,n]);(0,a.useEffect)((()=>h.trigger("fetch")),[o]);const[y,x]=(0,i.x9)();return(0,a.useEffect)((()=>{if(h)return(0,En.unregister)(h.on("highlightClick",(e=>x(e+1e3*o.chart.view.update_every))),h.on("highlightEnd",(()=>x(null))))}),[h,o]),(0,a.useEffect)((()=>{var e;return!!l&&h.updateAttributes({toolboxElements:[e=>{let{disabled:t}=e;return a.createElement(Sn,{histograms:l,fn:n,selectedId:o.id,disabled:t})},wn.default,bn.default,Cn.default],title:null===o||void 0===o||null===(e=o.chart)||void 0===e||null===(e=e.view)||void 0===e?void 0:e.title})}),[l]),(0,a.useEffect)((()=>{if(!m||!h||!s)return;const e=u[m],t=Math.floor((null===e||void 0===e?void 0:e[null===s||void 0===s?void 0:s.column])/1e6);t&&!isNaN(t)&&h.updateAttribute("hoverX",[1e3*Math.floor(t-t%o.chart.view.update_every),null])}),[u,o,m]),(0,a.useEffect)((()=>{y&&h&&s&&h.updateAttribute("clickX",[y,null])}),[y]),(0,a.useEffect)((()=>()=>h&&h.destroy()),[h]),a.createElement(f.Flex,{flex:!1,width:"100%",height:75},h?a.createElement(xn.A,{"data-chartid":v,chart:h,overflow:"hidden",hasFilters:!1}):a.createElement(d.A,{iconProps:Pn,title:"Loading chart..."}))},Nn={extraKey:"fn"},Ln=(0,a.memo)((e=>{let{margin:t,defaultCharts:n,hasCustom:r,...l}=e;const[o,i]=(0,S.A)(!r);return null!==n&&void 0!==n&&n.length?a.createElement(f.Flex,{column:!0},a.createElement(f.Flex,{alignItems:"center",justifyContent:"end",gap:1,onClick:i,cursor:"pointer"},a.createElement(f.TextMicro,{color:"textLite"},o?"Collapse":"Expand"," charts"),a.createElement(f.Icon,{name:"chevron_down",color:"textLite",rotate:o?0:3})),a.createElement(f.Collapsible,{open:o},a.createElement(f.Flex,{gap:4,margin:t},n.map(((e,t)=>{let[n,r]=e;return a.createElement(sn,(0,m.A)({key:t,initData:n,initFilter:r},l))}))))):null})),Mn=(0,a.memo)((e=>{let{margin:t,hasHistogram:n=!1,...r}=e;const[l,o]=(0,S.A)(!0);return n?a.createElement(f.Flex,{column:!0},a.createElement(f.Flex,{alignItems:"center",justifyContent:"end",gap:1,onClick:o,cursor:"pointer"},a.createElement(f.TextMicro,{color:"textLite"},l?"Collapse":"Expand"," histogram"),a.createElement(f.Icon,{name:"chevron_down",color:"textLite",rotate:l?0:3})),a.createElement(f.Collapsible,{open:l},a.createElement(f.Flex,{gap:4,margin:t},a.createElement(zn,r)))):null})),On=(0,a.memo)((e=>{let{margin:t,...n}=e;const[r,l]=(0,S.A)(!0);return n.customCharts?a.createElement(f.Flex,{column:!0},a.createElement(f.Flex,{alignItems:"center",justifyContent:"end",gap:1,onClick:l,cursor:"pointer"},a.createElement(f.TextMicro,{color:"textLite"},r?"Collapse":"Expand"," chart"),a.createElement(f.Icon,{name:"chevron_down",color:"textLite",rotate:r?0:3})),a.createElement(f.Collapsible,{open:r},a.createElement(f.Flex,{gap:4,margin:t},a.createElement(yn,n)))):null})),Rn={fn:{Chart:Ln,CustomChart:On,loadingMessage:"Loading function...",item:"functions"},logs:{Chart:Mn,CustomChart:On,loadingMessage:"Loading logs...",item:"logs"},feed:{Chart:tn,CustomChart:On,loadingMessage:"Loading events...",item:"events"}},Bn={table:vt},Dn=(0,a.memo)((e=>{let{paramsKey:t=Nn,testIdPrefix:n="functions",availableFns:r,availableFnsLoaded:l,hasError:c,containerWidth:s,...u}=e;const{Chart:v,loadingMessage:y}=Rn[t.extraKey]||Rn.fn,[x,E]=(0,i._H)(t),C=(0,p.w7)({...t,merge:!1,emptyIfAll:"feed"===t.extraKey}),{infoLoaded:w,loaded:k,data:T,error:S,type:K,retentionWarning:P,defaultCharts:z,histogram:N,missingRequired:L,requiredParams:M,customCharts:O}=(0,i.Ol)(t),R=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const[t]=e,n=(0,g.xY)(t,"name");return 0===e.length?"on your nodes":1===e.length&&n?"on ".concat(n):"on your selected node"}(C);(0,a.useEffect)((()=>{var e;null!==x&&void 0!==x&&x.length||null===r||void 0===r||null===(e=r[0])||void 0===e||!e.name||c||E([r.reduce(((e,t)=>"undefined"===typeof e.priority||e.priority<t.priority?e:t),r.find((e=>"processes"===e.name))||r[0]).name])}),[l,x]);const[B,D]=(0,I.useHovered)({},[k]),_=(0,F.A)();(0,a.useEffect)((()=>{_(D)}),[D]);const j=_t(C,x[0],t),[W,V]=((e,t,n)=>{const r=(0,h.vt)(),l=(0,be.QW)(),c=(0,ee.mQ)(),s=(0,o.l6)("pollingInterval",{flavour:"int",...n}),d=(0,o.l6)("slice",{defaultValue:!0,flavour:"bool",...n}),[u,m]=(0,i.WH)(n),[f,p]=(0,i.x9)(),v=(0,a.useRef)();v.current=u;const y=e=>{let{skip:t,data:n={}}=e;!t&&n.data?((Mt[n.type]||Mt.default)(m,n),p((e=>null!==e?null:e))):m((e=>({...e,tail:n.tail||!1,loading:!1})))},{fetch:x,isEnabled:E}=Ot[t]||Ot.default,[b,C,w,k]=Rt(f),I=(0,Et.A)(k),F=(0,a.useRef)();F.current=b;const T=(0,a.useRef)();T.current=u.lastModified;const S=(0,a.useRef)();S.current=u.anchorAfter;const K=(0,be.ID)(),P=(0,o.rW)(null,{key:K,extraKey:"".concat(t||n.extraKey,"Filters")}),z=(0,Et.A)(P,!0),N=(0,g.yN)(e),[{loading:L}]=(0,A.f7)();(0,a.useEffect)((()=>{"feed"!==t&&(T.current=null,S.current=null,m({...wt.zb[u.type]||wt.zb.default,type:u.type}))}),[null===e||void 0===e?void 0:e[0],t]);const M=P[Object.keys(P).find((e=>u.filtersToRefresh[e]&&!(0,ce.Ay)(null===z||void 0===z?void 0:z[e],P[e])))],O=(0,a.useRef)();O.current=!1,(0,a.useEffect)((()=>{"feed"!==t&&(O.current=!0)}),[!!u.requiredParams.length&&M]),(0,a.useEffect)((()=>{z&&!xt()(z,P)&&u.loaded&&(T.current=null,S.current=null,m((e=>({...e,lastModified:null,anchorAfter:null,anchorBefore:null,offset:0}))))}),[!!u.aggregations&&P]),(0,a.useEffect)((()=>{u.loaded&&(T.current=null,S.current=null,m((e=>({...e,lastModified:null,anchorAfter:null,anchorBefore:null,offset:0}))))}),[C,d]);const R=(0,a.useRef)(),B=(0,a.useRef)();B.current=function(){let{checkPeriod:n,...a}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=F.current();return m((e=>({...e,tail:!!a.tail,loading:!0,requestedPeriod:o}))),n&&v.current.tail&&v.current.requestedPeriod.after<o.after&&!S.current&&v.current.requestedPeriod.before-v.current.requestedPeriod.after===o.before-o.after?Promise.resolve({skip:!0}):(R.current=x({roomId:K,spaceId:r,nodeIds:e,cloudNodeIds:N,fn:t,roomSlug:l,filters:P,slice:d,...o,...a,acceptedParams:u.acceptedParams,last:200}),R.current)};const D=e=>{var t,n;const{merge:a,direction:r,dataOnly:l,tail:o}=e||{};null===(t=e)||void 0===t||null===(t=t.response)||void 0===t||!t.status||400!==e.response.status&&304!==e.response.status?(null!==(n=e)&&void 0!==n&&null!==(n=n.response)&&void 0!==n&&n.data&&(e=e.response.data),m((t=>({...t,error:e,loaded:!0,loading:!1}))),p((e=>null!==e?null:e))):m((t=>({...t,loaded:!0,loading:!1,...!!e&&{merge:a,direction:r,dataOnly:l,tail:o}})))},_=(0,bt.A)((()=>({enabled:!u.missingRequired&&u.infoLoaded&&!L&&E({nodeIds:e,fn:t,roomId:K,after:C}),fetch:()=>B.current(!c&&C<0?{if_modified_since:T.current,...T.current&&{direction:"forward",merge:u.hasHistory,tail:!0,delta:!0,data_only:!0,anchor:S.current},reset:O.current}:!c&&((e,t)=>{let{after:n,before:a}=e;return t<a&&t>n})(F.current(),k)?{anchor:1e3*k,data_only:!!T.current,reset:O.current}:{direction:"backward",data_only:!!T.current,checkPeriod:!0,reset:O.current}),onFail:D,onPollingFail:D,onReceive:y,onBlurMode:()=>v.current.loading&&m((e=>({...e,loading:!1}))),polling:!c&&C<0,pollingOptions:{pollingInterval:1e3*(s||u.updateEvery),shouldPause:!0},force:!0,skip:!!I&&!k})),[c,u.infoLoaded,u.missingRequired,K,null===e||void 0===e?void 0:e.length,null===e||void 0===e?void 0:e[0],t,s,(!!u.aggregations||!!u.requiredParams.length)&&!!z&&P,C,w,L,k,d]);return[(0,a.useCallback)((e=>{if(v.current.loadingMore)return;m((e=>({...e,loadingMore:!0})));const t=B.current(e);return t.then(y).catch(D).finally((()=>m((e=>({...e,loadingMore:!1}))))),t}),[m]),(0,a.useCallback)((()=>{var e,t,n,a,r;null===_||void 0===_||null===(e=_.clearRef)||void 0===e||null===(e=e.current)||void 0===e||null===(e=e.promise)||void 0===e||null===(t=e.cancel)||void 0===t||t.call(e),clearTimeout(null===_||void 0===_||null===(n=_.clearRef)||void 0===n||null===(n=n.current)||void 0===n?void 0:n.timeoutId),null===(a=R.current)||void 0===a||null===(r=a.cancel)||void 0===r||r.call(a),m((e=>({...e,loaded:!0,loading:!1,loadingMore:!1})))}),[m])]})(C,x[0],t);if(!l)return a.createElement(d.A,{title:y,"data-testid":"".concat(n,"Loading")});if(j){const{item:e="items"}=Rn[t.extraKey]||{};return a.createElement(b.A,{title:"".concat((0,nn.Zr)(e)," couldn't be loaded"),message:"ErrAllNodesFailed"==j.errorMsgKey?"You do not have permissions to load ".concat(e):"Something went wrong."})}if(c)return a.createElement(jt.H4,{title:"Functions couldn't be loaded",message:"We couldn't find any available functions."});if(S&&"canceled"!==S){if("ErrNodeResourceNotFound"===(null===S||void 0===S?void 0:S.errorMsgKey))return a.createElement(b.A,{message:"Please review your selection and try again.",title:"".concat("feed"===t.extraKey?"Events are":'Function "'.concat(x,'" is')," not available ").concat(R,".")});if(null===T||void 0===T||!T.length)return a.createElement(jt.H4,{title:"".concat("feed"===t.extraKey?"Events":'Function "'.concat(x,'"')," couldn't be loaded"),message:"ErrForbidden"===(null===S||void 0===S?void 0:S.errorMsgKey)?"Forbidden":(null===S||void 0===S?void 0:S.errorMessage)||""})}if(w&&L)return a.createElement(b.A,{title:"Required filters are needed",message:'Function "'.concat(x,'" needs: ').concat(M.map((e=>e.name)).join(", "),"."),footer:"Check them on the right sidebar!"});const q=Bn[K]||Bn.table;return a.createElement(f.Box,{overflow:{horizontal:"hidden",vertical:"auto"},column:!0,padding:[4,4,0],gap:2},a.createElement(ie,{nodeIds:C,onRefresh:W,onCancel:V,paramsKey:t}),k?a.createElement(a.Fragment,null,a.createElement(On,{paramsKey:t,testIdPrefix:n,customCharts:O,refetch:W,fn:x,nodeIds:C,containerWidth:s}),a.createElement(v,{paramsKey:t,testIdPrefix:n,defaultCharts:z,hasCustom:!!O,hasHistogram:!!N,refetch:W,fn:x,nodeIds:C,containerWidth:s}),a.createElement(q,(0,m.A)({key:x,"data-testid":"".concat(n,"Component"),paramsKey:t,refetch:W,ref:B,selectedFn:x,containerWidth:s},u)),!(null!==T&&void 0!==T&&T.length)&&a.createElement(f.Flex,{column:!0,justifyContent:"center",alignItems:"center",alignSelf:"center",margin:["feed"===t.extraKey?3:30,0,0],gap:3},a.createElement(f.H3,null,"No results to display"),a.createElement(f.Text,{color:"textDescription",textAlign:"center"},"Double-check your search or filters and dates and try again with different conditions"),P&&a.createElement(f.Text,{color:"text",textAlign:"center"},P))):a.createElement(d.A,{title:y,"data-testid":"".concat(n,"Loading")}))})),_n=Dn;var jn=n(15255);const Wn=e=>{const t=(0,A.OS)();return a.createElement(f.Button,(0,m.A)({label:"Get a fresh agent token",onClick:t},e))},Vn="Functions expose sensitive information about your systems and applications. To protect your privacy, Netdata exposes this information only to logged-in users and claimed agents. When viewing Functions directly on a Netdata Agent UI, this information is sent directly from the Netdata Agent to your web browser, without exposing it to any third parties.",qn={notLoggedIn:{title:"Sign in to Netdata to use this function",description:Vn,footer:a.createElement(w.A,null)},notClaimed:{title:"Connect this agent to Netdata to use this function",description:Vn,footer:a.createElement(k.A,null)},noAccess:{title:"This agent belongs to a Netdata Space you are not member of",description:Vn,footer:a.createElement(f.TextBig,{color:"textDescription"},"Ask for an invitation from the administrators of the Netdata Space of the agent to use functions.")},bearerError:{title:"You are not authorized to use this function",description:Vn,footer:a.createElement(Wn,null)}},Hn={extraKey:"fn"},Gn=e=>{let{paramsKey:t=Hn,hasError:n,refreshAvailableFns:r,availableFnsLoaded:l,availableFns:o,...c}=e;const s=(0,p.w7)({...t,emptyIfAll:!1,merge:!0}),[d,u]=(0,p.Oj)(t),f=(0,g.dN)(),y=x(t),E=(0,i.Ak)(t),w=(0,i.E)(t);(0,a.useEffect)((()=>w),[E,null===d||void 0===d?void 0:d[0]]),(0,a.useEffect)((()=>{var e;if(y||!E)return;const t=null===(e=o.find((e=>e.name===E)))||void 0===e?void 0:e.nodes;t&&(null!==d&&void 0!==d&&d.length&&t[d[0]]||u([Object.keys(t)[0]]))}),[y,u,s.length,E,o]);const[k]=(0,v.Q8)(),[{bearerProtection:I,error:F,token:T}]=(0,A.f7)(),{error:S}=(0,i.Ol)(t),K=(0,h.dg)(),[{canBeClaimed:P,cloudStatus:z}]=(0,jn.RJ)();if((0,a.useEffect)((()=>{n&&r()}),[z,T]),!f.length)return a.createElement(C,{paramsKey:t});if(K&&(S||n||F&&I)){const{title:e,description:t,footer:n}=(e=>{let{userStatus:t,userNodeStatus:n,accessError:a,canBeClaimed:r,cloudStatus:l}=e;return qn[t]?qn[t]:a?qn.notLoggedIn:r?qn.notClaimed:qn[n]?qn[n]:qn.bearerError?qn.bearerError:qn.notLoggedIn})({...k,bearerError:F,canBeClaimed:P,cloudStatus:z,error:S});return a.createElement(b.A,{title:e,message:t,footer:n})}return a.createElement(_n,(0,m.A)({testIdPrefix:"fn",paramsKey:t,availableFnsLoaded:l,availableFns:o},c))},Un={extraKey:"feed"},Zn=e=>{let{paramsKey:t=Un,...n}=e;x(t);const r=(0,i.E)(t);return(0,a.useEffect)((()=>r),[]),a.createElement(_n,(0,m.A)({testIdPrefix:"feed",paramsKey:t},n))};var Xn=n(5287),Yn=n.n(Xn),$n=n(42828),Jn=n(59846);const Qn={fn:!0,logs:!0},ea=(0,a.memo)((e=>{let{roomId:t,flavour:n,availableFns:r}=e;const l=(e=>{const t=Qn[e];return(0,a.useMemo)((()=>({Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasFn:t},node:{textColor:"textFocus",showFn:t,requireFn:t}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale"},node:{textColor:"textFocus",disabled:t}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline"},node:{textColor:"textLite",disabled:t}}})),[e])})(n),o=(e=>{const{aggregations:t}=(0,i.Ol)({extraKey:e});return(0,a.useMemo)((()=>null!==t&&void 0!==t&&t.node_ids?t.node_ids.buckets.reduce(((e,t)=>({...e,[t.key]:t.hits.doc_count})),{}):null),[t])})(n),c=Qn[n],s=(0,i.Ak)({extraKey:n}),d=(0,a.useMemo)((()=>{var e;return Array.isArray(r)&&(null===(e=r.find((e=>e.name===s)))||void 0===e?void 0:e.nodes)||null}),[s,r]),u=(0,a.useCallback)((e=>!!d&&!d[e]),[d]),f=(0,a.useCallback)((e=>Yn()(d?Object.keys(d):[],e)),[d]);return c&&!d?null:a.createElement(Jn.A,{title:"Nodes",testIdPrefix:"nodes",baseKey:t,extraKey:n,param:"selectedNodeIds",multi:"feed"===n},a.createElement($n.A,(0,m.A)({key:n,baseKey:t,extraKey:n,statusProps:l,background:"mainBackground",itemProps:{padding:[1,1,1,.5]},searchMargin:[0,0,1],height:{max:"300px"},multi:"feed"===n,nodeCounts:o},c&&{useFilteredIds:f},{checkIsDisabled:u})))})),ta=ea;var na=n(82700);const aa=e=>e.name,ra=(0,a.memo)((e=>{let{param:t,baseKey:n,extraKey:r,testIdPrefix:l,title:o,items:i=[],multi:c=!1}=e;return i.length?a.createElement(Jn.A,{title:o,testIdPrefix:l,baseKey:n,extraKey:r,param:t,multi:c},a.createElement(na.Ay,{param:t,baseKey:n,extraKey:r,testIdPrefix:l,collection:i,multi:c,getValue:aa,getLabel:aa})):null}));var la=n(83488);const oa=e=>e.id,ia={string:(e,t)=>e.localeCompare(t,void 0,{sensitivity:"accent",ignorePunctuation:!0}),integer:(e,t)=>e-t},ca={table:function(e){let{param:t,columns:n,aggregatedView:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.entries(e.reduce(((e,r)=>{var l,o,i;return e[r[t]]={count:((null===(l=e[r[t]])||void 0===l?void 0:l.count)||0)+(r.hidden?0:1),type:null===(o=n[t])||void 0===o?void 0:o.type,...a&&{actualCount:((null===(i=e[r[t]])||void 0===i?void 0:i.actualCount)||0)+(r.hidden?0:r[a.column]||1),actualCountLabel:a.aggregatedLabel,countLabel:a.resultsLabel}},e}),{})).map((e=>{let[t,n]=e;return{id:t,...n}})).sort(((e,t)=>(ia[e.type]||ia.integer)(e.id,t.id)))},default:n.n(la)()},sa=e=>{let{param:t,baseKey:n,extraKey:r,filtersKey:l,testIdPrefix:c,title:s,defaultExpanded:d=!1}=e;const u=(e=>{let{extraKey:t,filtersKey:n,param:r}=e;const l=ut({extraKey:t,omit:r,keepAll:!0}),c=(0,o.l6)(r,{extraKey:n,flavour:"arr"}),s=(0,i.Ol)({key:"type",extraKey:t}),d=ca[s]||ca.default,{columns:u,aggregatedView:m}=(0,i.Ol)({extraKey:t});return(0,a.useMemo)((()=>d(l,{param:r,columns:u,aggregatedView:m})),[r,l,c])})({param:t,extraKey:r,filtersKey:l});return u&&u.length?a.createElement(Jn.A,{title:s,testIdPrefix:c,baseKey:n,extraKey:l,param:t,defaultIsOpen:d},a.createElement(na.Ay,{param:t,baseKey:n,extraKey:l,testIdPrefix:c,collection:u,capitalized:!1,getValue:oa,getLabel:oa})):null};var da=n(73700);const ua=e=>{let{param:t,baseKey:n,extraKey:r,filtersKey:l,testIdPrefix:c,title:s,defaultExpanded:d=!1}=e;const{columns:u}=(0,i.Ol)({extraKey:r}),[m,p]=(0,o.r$)(t,{extraKey:l,flavour:"arr",defaultValue:[]}),g=(0,a.useCallback)((0,da.n)(10,(e=>{let{min:t,max:n}=e;return p([t,n])})),[]);if(!u[t])return null;const h=1*(u[t].min||0),v=1*(u[t].max||0);return a.createElement(Jn.A,{title:s,testIdPrefix:c,baseKey:n,extraKey:l,param:t,defaultIsOpen:d,showCounter:!1},a.createElement(f.Box,{padding:[2,0],width:"100%"},a.createElement(f.MultiRangeInput,{min:h,max:v,onChange:g,initMin:m[0]?1*m[0]:h,initMax:m[1]?1*m[1]:v,step:(v-h)/20})))},ma=(e,t)=>({key:e,type:t[e].filter,defaultExpanded:t[e].defaultExpandedFilter}),fa={multiselect:sa,range:ua},pa=e=>{let{roomId:t,extraKey:n}=e;const r=(0,i.Ak)({extraKey:n}),l=(e=>rn(e,ma))(n);return l.map((e=>{const l=fa[e.type]||fa.multiselect;return a.createElement(l,{key:e.key,title:e.key,testIdPrefix:"function",baseKey:t,extraKey:n,filtersKey:"".concat(r||n,"Filters"),param:e.key,defaultExpanded:e.defaultExpanded})}))},ga=e=>e.name||e.id,ha=e=>e.id,va=(0,a.memo)((e=>{let{title:t,options:n,param:r,baseKey:l,filtersKey:o,testIdPrefix:i,multi:c=!0,defaultIsOpen:s=!1,required:d=!1}=e;const[u,m]=(0,S.A)(!1),p=(0,a.useMemo)((()=>null!==n&&void 0!==n&&n.length?n.filter((e=>"number"!==typeof e.count||e.count>0)):null),[n]);return null!==n&&void 0!==n&&n.length?a.createElement(Jn.A,{title:t,testIdPrefix:i,baseKey:l,extraKey:o,param:r,defaultIsOpen:s,required:d,multi:c,configElements:e=>{let{isOpen:t}=e;return t&&(null===p||void 0===p?void 0:p.length)!==(null===n||void 0===n?void 0:n.length)&&a.createElement(f.Button,{padding:[0],flavour:"borderless",onClick:e=>{e.stopPropagation(),m()},"data-testid":"".concat(i,"-filter-resetAll"),label:u?"Show zeros":"Hide zeros",tiny:!0,neutral:!0})}},a.createElement(na.Ay,{param:r,baseKey:l,extraKey:o,testIdPrefix:i,collection:u?p:n,capitalized:!1,getValue:ha,getLabel:ga,multi:c})):null})),ya={nodes:!0},xa=e=>{let{roomId:t,extraKey:n}=e;const r=(0,i.Ak)({extraKey:n}),l=(0,i.Ph)(n),{columns:o}=(0,i.Ol)({extraKey:n});return l.length?l.map((e=>{var l;return ya[e.id]?null:a.createElement(va,{key:e.id,title:e.name,options:e.options,param:e.id,testIdPrefix:"function",baseKey:t,filtersKey:"".concat(r||n,"Filters"),defaultExpanded:null===(l=o[e.id])||void 0===l?void 0:l.defaultExpandedFilter})})):null},Ea={select:!0},ba=e=>{let{roomId:t,extraKey:n,requiredParams:r}=e;return r.map((e=>a.createElement(va,{key:e.id,title:e.name,options:e.options,param:e.id,testIdPrefix:"function",baseKey:t,filtersKey:"".concat(n,"Filters"),multi:!Ea[e.type],defaultIsOpen:!0,required:!0})))},Ca=(0,a.memo)((e=>{let{extraKey:t}=e;const n=(0,i.Ak)({extraKey:t}),[{requiredParams:r,infoLoaded:l},c]=(0,i.WH)({extraKey:t}),s=(0,be.ID)(),[d,u]=(0,o.N9)(null,{key:s,extraKey:"".concat(n,"Filters")});return(0,a.useEffect)((()=>{l&&r.length&&r.forEach((e=>{var t,n;return(null===(t=e.options)||void 0===t?void 0:t.length)>0&&!(null!==(n=d[e.id])&&void 0!==n&&n.length)&&u({[e.id]:[e.options[0].id]})}))}),[l]),(0,a.useEffect)((()=>{l&&(r.length?d&&c((e=>({...e,missingRequired:!!r.length&&!r.every((e=>{var t,n;return!(null===(t=e.options)||void 0===t||!t.length)&&(Array.isArray(d[e.id])?!(null===(n=d[e.id])||void 0===n||!n.length):!!d[e.id])}))}))):c((e=>({...e,missingRequired:!1}))))}),[l,r,d]),a.createElement(ba,{roomId:s,extraKey:n,requiredParams:r})})),wa=(0,a.memo)((e=>{let{flavour:t,availableFns:n}=e;const r=(0,be.ID)(),{loaded:l,aggregations:o,error:c}=(0,i.Ol)({extraKey:t});return a.createElement(f.Flex,{column:!0,overflow:{vertical:"auto"},padding:[0,3,30]},"feed"!==t&&a.createElement(ra,{title:"Function",testIdPrefix:"function",baseKey:r,extraKey:t,param:"selectedFn",items:n}),a.createElement(ta,{roomId:r,flavour:t,availableFns:n}),a.createElement(Ca,{extraKey:t}),l&&!o&&!c&&a.createElement(pa,{roomId:r,extraKey:t}),l&&o&&!c&&a.createElement(xa,{roomId:r,extraKey:t}))})),ka=wa;var Aa=n(12352),Ia=n(50065),Fa=n(18682);const Ta=e=>{let{data:t}=e;return a.createElement(Ia.A,{name:"Files"},a.createElement(f.Flex,{gap:1,padding:[0,1],alignItems:"center"},a.createElement(f.Box,{sx:{fontWeight:"500",letterSpacing:"1px"},as:f.Text,color:"textLite"},"{;}"),a.createElement(f.TextSmall,null,"Copy data as"),a.createElement(f.Flex,{cursor:"pointer",gap:1,onClick:(0,Fa.C)(JSON.stringify(t),{text:"JSON copied to clipboard"})},a.createElement(f.TextSmall,{color:"primary"},"json"),a.createElement(f.Icon,{color:"primary",size:"small",name:"copy"}))))},Sa=function(){let{data:e={},columns:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"fn";return Object.entries(e).sort(((e,n)=>{var a,r;let[l]=e,[o]=n;return((null===(a=t[l])||void 0===a?void 0:a.displayName)||l).localeCompare((null===(r=t[o])||void 0===r?void 0:r.displayName)||o,void 0,{sensitivity:"accent",ignorePunctuation:!0})})).reduce(((e,n)=>{var o,i,c;let[s,d]=n;const u=a?"".concat(a,".").concat((null===(i=t[s])||void 0===i?void 0:i.displayName)||s):(null===(o=t[s])||void 0===o?void 0:o.displayName)||s;if(null!==(c=t[s])&&void 0!==c&&c.dummy)return e;if("feed"!==l&&!t[s])return e;const m=Array.isArray(d);if(m&&"object"===typeof d[0]&&null!==d[0]||m&&d.length>1)e.push([u,JSON.stringify(d)]),r[u]=d;else if(d&&"object"===typeof d)Sa({data:d},e,u,r,l);else{if(null===d)return e;e.push([u,m?d.length>1?"[".concat(d.join(", "),"]"):d[0]:d]),r[u]=m?d.length>1?"[".concat(d.join(", "),"]"):d[0]:d}return e}),n)},Ka=(0,U.default)(f.Flex).withConfig({displayName:"sidebarInfo__Container",componentId:"sc-18vn5bm-0"})(["*{font-family:Courier New,monospace;letter-spacing:0.09px;line-height:13px;font-size:12px;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;}"]),Pa=e=>{let{selectedRowData:t={},setSelectedRowData:n,flavour:r,...l}=e,o={};const i=(0,a.useMemo)((()=>Sa(t,[],null,o,r).sort(((e,t)=>{let[n]=e,[a]=t;return n.localeCompare(a)}))),[t]);return a.createElement(f.Flex,(0,m.A)({column:!0,gap:2,overflow:{vertical:"auto"},padding:[0,2,30]},l),a.createElement(f.Flex,{justifyContent:"between",padding:[2,0],border:{side:"bottom",color:"borderSecondary"}},a.createElement(f.TextBig,{strong:!0},"Row info"),i.length>0&&a.createElement(f.Box,{onClick:()=>n(),cursor:"pointer"},a.createElement(f.TextSmall,{color:"primary"},"Clear selection"))),Array.isArray(i)&&i.length?a.createElement(a.Fragment,null,a.createElement(Ka,{column:!0,gap:2},i.map((e=>{let[t,n]=e;return a.createElement(Aa.A,{key:t,size:"small",name:t,testId:"sidebar-rowInfoContent-".concat(t),padding:[1,0,0]},n)}))),a.createElement(Ta,{data:t.json||o})):a.createElement(f.Text,null,"Select a row to see raw data"))};var za=n(63314);const Na={fn:{Component:Gn,paramsKey:{extraKey:"fn"},loadingMessage:"Loading functions..."},logs:{Component:Gn,paramsKey:{extraKey:"logs"},loadingMessage:"Loading logs..."},feed:{Component:Zn,paramsKey:{extraKey:"feed"},loadingMessage:"Loading events..."}},La={filters:{iconName:"filterList",...c.kO,width:"19px",Content:ka,dataTestId:"fnFilters",label:"Filters"},info:{iconName:"information",...c.kO,width:"19px",dataTestId:"info",Content:Pa,label:"Info"}},Ma=e=>{let{flavour:t}=e;const{Component:n,paramsKey:m,loadingMessage:f}=Na[t]||Na.fn,p=(0,l.CK)(),g=(0,l.nj)(),h=(0,o.Fw)("sidebarTab",{flavour:"val",extraKey:t}),v=(0,o.Fw)("sidebarOpen",{flavour:"bool"}),[y,x]=(0,a.useState)(),E=(0,a.useCallback)((function(){v(!0),h("info"),x(...arguments)}),[]),{loaded:b,value:C,hasError:w,refresh:k}=(0,i.vx)(m.extraKey),[A,{width:I}]=(0,u.A)();return g?p.length||"feed"===t?a.createElement(za.Ay,{feature:"Functions-".concat(t)},a.createElement(r.A,{"data-testid":"".concat(t,"Page"),margin:[0,0,2],sidebar:a.createElement(c.Ay,{title:"Filters",flavour:t,selectedRowData:y,setSelectedRowData:x,availableFns:C,tabs:La,loaded:!0,hasSearch:!1}),ref:A},a.createElement(n,{testIdPrefix:t,paramsKey:m,onShowInfo:E,availableFnsLoaded:b,availableFns:C,refreshAvailableFns:k,hasError:w,containerWidth:I}))):a.createElement(za.Ay,{feature:"Functions-".concat(t),mode:"NoNodesView"},a.createElement(s.A,null)):a.createElement(d.A,{title:f})}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7410.cb47519a7a5187208b28.chunk.js b/src/web/gui/v2/7410.cb47519a7a5187208b28.chunk.js
new file mode 100644
index 000000000..f3bbc741a
--- /dev/null
+++ b/src/web/gui/v2/7410.cb47519a7a5187208b28.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="90522262-a7a3-4ab8-8395-8f936642a94b",e._sentryDebugIdIdentifier="sentry-dbid-90522262-a7a3-4ab8-8395-8f936642a94b")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7410],{47130:(e,t,n)=>{n.d(t,{A:()=>l});var o=n(58168),r=n(96540),a=n(10058),d=n(29217);const l=e=>function(){let{tooltipProps:t={},...n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return n.tooltip||Object.keys(t).length?r.createElement(d.A,(0,o.A)({plain:!0,content:n.tooltip},t),r.createElement(a.Box,null,r.createElement(e,n))):r.createElement(e,n)}},94390:(e,t,n)=>{n.d(t,{D9:()=>i,FL:()=>o,Fn:()=>c,T_:()=>s,V6:()=>d,V8:()=>u,bM:()=>a,g7:()=>r,gh:()=>l,lp:()=>p,zy:()=>h});const o=51,r={template:{color:"success"},default:{color:"text"}},a={accepted:{label:"Accepted",color:"success",icon:"checkmark_s"},disabled:{label:"Disabled",color:["neutral","grey100"],icon:"none_selected"},failed:{label:"Failed",color:["red","red100"],icon:"warning_triangle"},orphan:{label:"Orphan",color:["neutral","grey90"],icon:"checkmark_partial_s"},incomplete:{label:"Incomplete",color:["yellow","yellow100"],icon:"incindent_manager"},running:{label:"Running",color:"success",icon:"checkmark_s"}},d={internal:{icon:"internalConfig"},stock:{icon:"stockConfig"},user:{icon:"userConfig"},discovered:{icon:"discoveredConfig"},dyncfg:{icon:"dynamicConfig"}},l={loaded:!0,value:{},hasError:!1},i="__unsaved__",c="Something went wrong",s={accepted:{label:"Accepted",color:"border",searchCondition:{status:"accepted"}},disabled:{label:"Disabled",color:"border",searchCondition:{status:"disabled"}},failed:{label:"Failed",color:"border",searchCondition:{status:"failed"}},orphan:{label:"Orphan",color:"border",searchCondition:{status:"orphan"}},incomplete:{label:"Incomplete",color:"border",searchCondition:{status:"incomplete"}},running:{label:"Running",color:"border",searchCondition:{status:"running"}}},u={internal:{label:"Internal",color:"border",searchCondition:{source_type:"internal"}},stock:{label:"Stock",color:"border",searchCondition:{source_type:"stock"}},user:{label:"User",color:"border",searchCondition:{source_type:"user"}},discovered:{label:"Discovered",color:"border",searchCondition:{source_type:"discovered"}},dyncfg:{label:"Dynamic configuration",color:"border",searchCondition:{source_type:"dyncfg"}}},p={restartRequired:{label:"Restart required",color:"border",searchCondition:{restart_required:!0}},pluginRejected:{label:"Plugin rejected",color:"border",searchCondition:{plugin_rejected:!0}}},h=["restartRequired","pluginRejected","failed","incomplete"]},8239:(e,t,n)=>{n.d(t,{Nj:()=>N,SW:()=>O,Hj:()=>B,t8:()=>j,wd:()=>S,OD:()=>U,_O:()=>Z,QH:()=>L,sh:()=>I,IP:()=>q,OU:()=>T,ZN:()=>R,SD:()=>K,EZ:()=>x,DP:()=>D,O_:()=>H,xS:()=>F,_F:()=>w});n(17333),n(98992),n(54520),n(62953);var o=n(96540),r=n(47444),a=(n(9920),n(3949),n(48408),n(26655)),d=n(37618),l=n(49286);const i=e=>({...e,attention:(0,l.bn)(e.attention)}),c={tree:a.A.get,schema:a.A.get,get:a.A.get,enable:a.A.get,disable:a.A.get,restart:a.A.get,remove:a.A.get,add:a.A.post,update:a.A.post,test:a.A.post,default:a.A.get},s=function(){let{node:e,searchParams:t={},payload:n={},...o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=Object.entries(e);if(!t.length)return"";const n=new URLSearchParams;return t.forEach((e=>{let[t,o]=e;o&&n.append(t,o)})),"?".concat(n.toString())}(t),{action:l}=t,s=c[l]||c.default,u={..."tree"==l?{transform:i,...o}:{...o},...d.Ay?{baseURL:window.envSettings.agentApiUrl,...o}:{...o}},p=s==a.A.get?[u]:[n,u];return d.Ay?s("/api/v1/config".concat(r),...p):s("/api/v2/nodes/".concat(e,"/config").concat(r),...p)},u=e=>{let{node:t,path:n,id:o}=e;return s({node:t,searchParams:{action:"tree",path:n,id:o},allow401:!0})},p=e=>{let{id:t,node:n}=e;return s({node:n,searchParams:{action:"enable",id:t}})},h=e=>{let{id:t,node:n}=e;return s({node:n,searchParams:{action:"disable",id:t}})},g=(0,r.eU)({key:"newConfigurationItemAtom",default:null}),f=(0,r.eU)({key:"dyncnfModalAtom",default:null}),b=(0,r.eU)({key:"dyncnfKeyAtom",default:0}),y=(0,r.Iz)({key:"dyncnfVirtualListScrollPosition",default:0}),v=(0,r.eU)({key:"dyncnfOpenItems",default:[]}),m=(0,r.Iz)({key:"dyncnfItemTree",default:null});var _=n(81198),k=n(94390);const A=(0,r.K0)({key:"configurationsTree",get:e=>{let{node:t,path:n}=e;return e=>{let{get:o}=e;return o(b),u({node:t,path:n})}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),C=(0,r.K0)({key:"configurationsSchema",get:e=>{let{id:t,node:n}=e;return e=>{let{get:o}=e;return o(b),(e=>{let{id:t,node:n}=e;return s({node:n,searchParams:{action:"schema",id:t}})})({id:t,node:n})}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),E=(0,r.K0)({key:"configurationsData",get:e=>{let{id:t,node:n}=e;return e=>{let{get:o}=e;return o(b),(e=>{let{id:t,node:n}=e;return s({node:n,searchParams:{action:"get",id:t}})})({id:t,node:n})}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),P=(0,r.K0)({key:"virtualListScrollPositionSelector",get:e=>{let{node:t,path:n}=e;return e=>{let{get:o}=e;return o(y({node:t,path:n}))}},set:e=>{let{node:t,path:n}=e;return(e,o)=>{let{set:r}=e;r(y({node:t,path:n}),o)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),w=e=>{let{node:t,path:n}=e;return(0,r.L4)(P({node:t,path:n}))},S=function(){var e;let{node:t,path:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=(0,r.xf)(A({node:t,path:n}));return{loaded:"loading"!==o.state,value:null===(e=o.contents)||void 0===e?void 0:e.data,hasError:"hasError"===o.state}},j=function(){var e,t;let{id:n,node:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=(0,r.xf)(C({id:n,node:o})),d=(0,r.RH)(C({id:n,node:o})),l="hasError"===a.state;return{loaded:"loading"!==a.state,value:null===(e=a.contents)||void 0===e?void 0:e.data,hasError:l,error:(null===(t=a.contents)||void 0===t||null===(t=t.response)||void 0===t?void 0:t.data)||(l?k.Fn:null),refresh:d}},O=function(){var e,t;let{id:n,node:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=(0,r.xf)(E({id:n,node:o})),d=(0,r.RH)(E({id:n,node:o})),l="hasError"===a.state;return{loaded:"loading"!==a.state,value:null===(e=a.contents)||void 0===e?void 0:e.data,hasError:l,error:(null===(t=a.contents)||void 0===t||null===(t=t.response)||void 0===t?void 0:t.data)||(l?k.Fn:null),refresh:d}},I=()=>(0,r.vc)(g),L=()=>(0,r.L4)(g),U=()=>(0,r.L4)(f),D=e=>{let{id:t,node:n}=e;return e=>(e?p:h)({id:t,node:n})},R=e=>{let{id:t,node:n}=e;return()=>(e=>{let{id:t,node:n}=e;return s({node:n,searchParams:{action:"restart",id:t}})})({id:t,node:n})},T=e=>{let{id:t,node:n}=e;return()=>(e=>{let{id:t,node:n}=e;return s({node:n,searchParams:{action:"remove",id:t}})})({id:t,node:n})},F=e=>{let{id:t,node:n}=e;return e=>(e=>{let{id:t,node:n,payload:o}=e;return s({node:n,searchParams:{action:"update",id:t},payload:o})})({id:t,node:n,payload:e})},N=e=>{let{id:t,node:n}=e;return e=>{let{name:o,...r}=e;return(e=>{let{id:t,name:n,node:o,payload:r}=e;return s({node:o,searchParams:{action:"add",name:n,id:t},payload:r})})({id:t,name:o,node:n,payload:r})}},x=e=>{let{id:t,node:n}=e;return e=>{let{payload:o}=e;return(e=>{let{id:t,node:n,payload:o}=e;return s({node:n,searchParams:{action:"test",id:t},payload:o})})({id:t,node:n,payload:o})}},B=()=>{const e=(0,r.lZ)(b),[,t]=L();return()=>{e((e=>e+1)),t(null)}},K=e=>{let{node:t,path:n}=e;const{loaded:r,value:a,hasError:d}=S({node:t,path:n});return(0,o.useCallback)((e=>{var t;if(!r||d)return null;const{tree:n}=a||{},o=(0,_.dG)(n);return o[null===(t=o[e])||void 0===t?void 0:t.template]}),[r,a,d])},q=()=>{const[e,t]=(0,r.L4)(v),n=(0,o.useCallback)((e=>{t((t=>t.filter((t=>t!=e))))}),[t]);return{openItems:e,toggle:(0,o.useCallback)(((e,o)=>{o?t((t=>[...t,e])):n(e)}),[t,n]),close:n}},H=e=>{let{node:t,id:n}=e;return(0,r.Zs)((e=>{let{set:o}=e;return async()=>{u({node:t,id:n}).then((e=>{let{data:r}=e;const{tree:a}=r||{};if(a){const e=Object.values(a)[0];if(e){const r=Object.values(e)[0]||{};console.log({entityProps:r}),o(m({node:t,id:n}),(0,l.bn)(r))}}})).catch((()=>{}))}}),[t,n])},Z=e=>{let{node:t,id:n}=e;return(0,r.vc)(m({node:t,id:n}))}},81198:(e,t,n)=>{n.d(t,{J3:()=>o,UE:()=>r,dG:()=>a,m8:()=>d});n(25440),n(17333),n(14905),n(98992),n(54520),n(8872),n(62953);const o=e=>{const t=null===e||void 0===e?void 0:e.split(":");return t?t[t.length-1]:""},r=e=>null===e||void 0===e?void 0:e.split(":").slice(0,-1).join(":"),a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.entries(e).reduce(((e,t)=>{let[n,o]=t;return n.match(/\/[^/]+/g)?{...e,...o}:o}),{})},d=function(){const e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.entries(e).reduce(((e,t)=>{let[n,o]=t;return{...e,[n.replace(/^\/[^/]+/,"")]:o}}),{})}(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{});return Object.entries(e).reduce(((e,t)=>{let[n,o]=t;return{...e,[n]:Object.entries(o).reduce(((e,t)=>{let[n,r]=t;if(["template","single"].includes(r.type)&&(e[n]={...r}),"template"==r.type){const t=Object.entries(o).filter((e=>{let[,{template:t}]=e;return t==n})).reduce(((e,t)=>{let[n,o]=t;return{...e,[n]:o}}),{});Object.keys(t).length&&(e[n].templateChildren=t)}return e}),{})}}),{})}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7436.6d4c25c5ff7d2e65734c.chunk.js b/src/web/gui/v2/7436.6d4c25c5ff7d2e65734c.chunk.js
new file mode 100644
index 000000000..f7113fefe
--- /dev/null
+++ b/src/web/gui/v2/7436.6d4c25c5ff7d2e65734c.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6e4a4358-e84e-456d-91ac-762dd8101ae3",e._sentryDebugIdIdentifier="sentry-dbid-6e4a4358-e84e-456d-91ac-762dd8101ae3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7436],{99904:(e,t,n)=>{n.d(t,{A:()=>s});n(62953);var a=n(96540),r=n(3914),l=n(25624);var i=n(87659);const o=e=>{const t=new Date(e||void 0).toDateString();return"Invalid Date"!==t?t:null},s=()=>{var e;const t=(0,r.ap)(),n=(0,a.useMemo)((()=>"".concat("dismissedBumpedWarningKey","_").concat(null===t||void 0===t?void 0:t.id)),[null===t||void 0===t?void 0:t.id]),[s,,,d]=(0,i.A)(!localStorage.getItem(n)),{trialEndsAtRaw:u}=(0,l.A)(),c="EarlybirdAndCommunitySunset"==(null===t||void 0===t||null===(e=t.metadata)||void 0===e?void 0:e.joinTrialCode),m=s&&u&&c,g=c?"EARLYB25":null,p=(0,a.useCallback)((()=>{localStorage.setItem(n,!0),d()}),[d,n]);return{isModalVisible:m,isEarlybirdAndCommunitySunset:c,coupon:g,trialEndsAt:o(u),onClose:p}}},57436:(e,t,n)=>{n.r(t),n.d(t,{OptOut:()=>p.A,OptOutModal:()=>f.A,TrialMessage:()=>b.A,TrialWarning:()=>g,default:()=>E,useBusinessPlan:()=>y.A,useTrial:()=>i.A});var a=n(96540),r=n(22292),l=(n(62953),n(39225)),i=n(25624),o=n(99904);const s=(0,l.A)((()=>n.e(9843).then(n.bind(n,19843))),"TrialWelcome"),d=(0,l.A)((()=>n.e(1839).then(n.bind(n,41839))),"BumpedWarning"),u=()=>{const{isEarlybirdAndCommunitySunset:e}=(0,o.A)(),{trialWelcomeVisible:t}=(0,i.A)();if(!e&&!t)return null;const n=e?d:s;return a.createElement(a.Suspense,{fallback:""},a.createElement(n,null))};var c=n(93155);const m=(0,l.A)((()=>Promise.all([n.e(3584),n.e(86)]).then(n.bind(n,60086))),"Warnings"),g=e=>{const t=(0,r.uW)("isAnonymous");return c.bO&&!t?a.createElement(a.Suspense,{fallback:""},a.createElement(m,e)):null};var p=n(66732),f=n(34641),b=n(93476),y=n(28061);const E=()=>(0,r.uW)("isAnonymous")?null:a.createElement(u,null)},34641:(e,t,n)=>{n.d(t,{A:()=>f});n(9391),n(62953);var a=n(96540),r=n(63950),l=n.n(r),i=n(10058),o=n(19673),s=n(71835),d=n(92155),u=n(50876),c=n(63314),m=n(87659),g=n(97118);const p=(0,d.A)(i.Button),f=e=>{let{onConfirm:t,onDecline:n=l(),onCancellingEnd:r=l()}=e;const d=(0,o.M4)(),[f,b]=(0,s.A)(),{id:y}=(0,g.A)(),{sendLog:E,isReady:A}=(0,u.A)(),[v,,x,h]=(0,m.A)(),C=(0,a.useCallback)((()=>{x(),d({productId:y}).then((()=>{f({header:"Successfully canceled subscription",text:"You are now on Community plan"}),E({feature:"TrialOptOut",isSuccess:!0})})).catch((()=>{b({header:"Failed to cancel the subscription",text:"Remained on Business plan"}),E({feature:"TrialOptOut",isFailure:!0,error:"Failed to cancel the subscription"})})).finally((()=>{r(),h()}))}),[y,A]),w=(0,a.useCallback)((()=>{t?t():C()}),[t,C]);return a.createElement(i.Modal,{backdropProps:{backdropBlur:!0}},a.createElement(c.Ay,{feature:"TrialOptOut"},a.createElement(i.ModalContent,{width:{base:140}},a.createElement(i.ModalHeader,null,a.createElement(i.Flex,{gap:2,alignItems:"center"},a.createElement(i.H4,null,"Go to Community plan"))),a.createElement(i.ModalBody,null,v?a.createElement(i.Flex,{height:"100px"},a.createElement(i.TextBig,null,"Changing billing plan...")):a.createElement(i.Flex,{gap:2,column:!0},a.createElement(i.H3,null,"Are You Sure?"),a.createElement(i.TextBig,null,"It looks like you have chosen to opt-out of your free 30-day business trial. Are you sure you do not want to experience all the features Netdata has to offer?"),a.createElement(i.TextBig,null,"By opting out, you will switch to the community plan immediately."))),a.createElement(i.ModalFooter,null,a.createElement(i.Flex,{justifyContent:"end",gap:4,padding:[1,2]},a.createElement(p,{feature:"TrialOptOut",label:"Yes, I am sure!",flavour:"hollow",small:!0,onClick:w,disabled:!y||v,textTransform:""}),a.createElement(p,{feature:"TrialOptOut",label:"No, I want the trial!",small:!0,onClick:n,disabled:v,textTransform:""}))))))}},35454:(e,t,n)=>{n.d(t,{$B:()=>i,TB:()=>o,W1:()=>r,ml:()=>l,ue:()=>a});const a={default:"successSemi",warning:"warningSemi",critical:"errorSemi"},r={default:{background:"successSemi",border:"success"},warning:{background:"warningSemi",border:"warning"},critical:{background:"errorSemi",border:"error"}},l=[30,15,3,2,1],i="dismissedTrialWelcome",o="dismissedTrialWarningDate"},93476:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(58168),r=n(96540),l=n(10058),i=n(63950),o=n.n(i),s=n(25624),d=n(99904),u=n(24864);const c={banner:{color:"main"},sidebar:{lineHeight:"1.6",color:"main"},freePlanUpgrade:{lineHeight:"1.6",color:"main"},billing:{color:"textLite"}},m=e=>{let{canUpgrade:t,onUpdateClick:n=o(),children:i,...s}=e;return t?r.createElement(l.Box,(0,a.A)({"data-testid":"upgrade-to-business-banner",onClick:n,as:l.Text,cursor:"pointer",textDecoration:"underline",color:"main"},s),i):null},g=e=>{let{flavour:t,couponRemainingDays:n,onUpdateClick:i=o()}=e;const{daysRemaining:g,canUpgrade:p,trialEndsAt:f}=(0,s.A)(),{isEarlybirdAndCommunitySunset:b}=(0,d.A)(),y=(0,r.useMemo)((()=>({isCoupon:n>0,isEarlybirdAndCommunitySunset:b,isBanner:"banner"==t,isSidebar:"sidebar"==t,isBilling:"billing"==t,isFreePlanUpgrade:"freePlanUpgrade"==t})),[t,n]);return r.createElement(l.Flex,{justifyContent:y.isBilling?"start":"center",alignItems:"center",width:"100%",gap:2},y.isCoupon?r.createElement(l.Flex,{column:!0},r.createElement(l.Text,(0,a.A)({},c[t],{fontSize:"10px",strong:!0}),"POST BLACK FRIDAY OFFER"),r.createElement(u.Te,(0,a.A)({},c[t],{fontSize:"38px",lineHeight:.8,strong:!0}),"50% off")):y.isEarlybirdAndCommunitySunset?r.createElement(l.Flex,{column:!0,gap:1,alignItems:"center"},r.createElement(l.Text,(0,a.A)({},c[t],{textAlign:"center",strong:!0},y.isBanner?{}:{fontSize:"10px"}),"Thank you for your support!"," ",y.isBanner?r.createElement(m,{canUpgrade:p,onUpdateClick:i},"Upgrade"):null),r.createElement(l.Text,(0,a.A)({},c[t],{color:"primary",fontSize:"22px",lineHeight:.8,strong:!0}),"25% Lifetime off")):y.isFreePlanUpgrade?r.createElement(l.Text,c[t],"Upgrade your plan for unlimited access and Business features."):r.createElement(l.Text,c[t],"You have ",r.createElement(l.Text,(0,a.A)({strong:!0},c[t]),"".concat(g," days"))," ","left to explore all the features of Netdata Business."," ",y.isBilling&&r.createElement(r.Fragment,null,"Trial ends at"," ",r.createElement(l.Text,(0,a.A)({strong:!0},c[t]),f),"."," "),y.isBanner?r.createElement(m,{canUpgrade:p,onUpdateClick:i},"Consider upgrading for unlimited access."):r.createElement(r.Fragment,null,"Consider upgrading for unlimited access.")))}},24864:(e,t,n)=>{n.d(t,{PL:()=>o,Te:()=>s,bg:()=>i});var a=n(8711),r=n(10058),l=n(35454);const i=(0,a.default)(r.Flex).attrs({position:"relative"}).withConfig({displayName:"styled__TrialWarningSidebar",componentId:"sc-66x250-0"})(["background-color:",";border-width:1px;border-style:dashed;border-color:",";border-radius:2px;"],(e=>{var t;let{type:n}=e;return(0,r.getColor)(null===(t=l.W1[n])||void 0===t?void 0:t.background)}),(e=>{var t;let{type:n}=e;return(0,r.getColor)(null===(t=l.W1[n])||void 0===t?void 0:t.border)})),o=(0,a.default)(r.Button).withConfig({displayName:"styled__TrialUpgradeButton",componentId:"sc-66x250-1"})(["flex:auto;"]),s=(0,a.default)(r.Text).attrs({strong:!0,lineHeight:.8}).withConfig({displayName:"styled__PromoText",componentId:"sc-66x250-2"})(["background-color:",";background-image:linear-gradient( 43deg,"," 0%,"," 46%,"," 100% );-webkit-background-clip:text;-webkit-text-fill-color:transparent;"],(0,r.getColor)("primary"),(0,r.getColor)(["blue","aquamarine"]),(0,r.getColor)(["purple","mauve"]),(0,r.getColor)("primary"))},66732:(e,t,n)=>{n.d(t,{A:()=>d});var a=n(96540),r=n(63950),l=n.n(r),i=n(10058),o=n(50876);const s={default:"Or you can opt to downgrade immediately",billing:"Or you can opt to downgrade immediately"},d=e=>{let{flavour:t="default",onOptOutClick:n=l(),...r}=e;const{sendLog:d,isReady:u}=(0,o.A)(),c=(0,a.useCallback)((()=>{n(),d({feature:"TrialOptOut",isStart:!0})}),[u]);return a.createElement(i.Text,r,"After the trial, you'll automatically switch to the free Community plan."," ",a.createElement(i.Box,{"data-testid":"upgrade-to-business-banner",onClick:c,as:i.Text,cursor:"pointer",textDecoration:"underline",color:"primary"},s[t]),".")}},25624:(e,t,n)=>{n.d(t,{A:()=>f});n(62953);var a=n(96540),r=n(46741),l=n(5668),i=n(22292),o=(n(8159),n(98992),n(37550),n(16074)),s=n(6593);var d=n(19673),u=n(50503),c=n(35454),m=n(42728),g=n(93155);const p=e=>{const t=new Date(e||void 0).toLocaleDateString();return"Invalid Date"!==t?t:null},f=()=>{const{loaded:e,value:t,refresh:n}=(0,d.JN)(),{isFailure:f}=(0,u.A)(),{slug:b,trialEndsAt:y}=t||{},E=(0,a.useMemo)((()=>(e=>{if(!e)return null;const t=new Date(e)-new Date;return Math.ceil(t/864e5)})(y)),[y]),A=e&&!!y,v=(0,r.JT)("billing:Manage"),[x]=(0,l.ng)("trialModalDismissed"),h=g.bO&&v&&(A||f)&&!localStorage.getItem(c.$B)&&!x,[C,w]=(0,a.useState)(localStorage.getItem(c.TB)),T=(0,a.useMemo)((()=>g.bO&&A),[A]),[S,k]=(0,a.useState)(),B=(O=E)>15?"default":O>5?"warning":"critical";var O;const I=!(0,i.uW)("isAnonymous")&&v;return(0,a.useEffect)((()=>{const e=((e,t,n,a)=>{if(t<0)return!1;const r=new Date(e||void 0);if(!(0,o.f)(r))return!1;const l=new Date(a||void 0);if(!(0,o.f)(l))return!0;const{days:i}=(0,s.F)({start:l,end:r}),d=i;return n.some((e=>e>=t&&e<d))})(y,E,c.ml,C);k(g.bO&&e)}),[y,E,C]),{trialWelcomeVisible:h,sidebarWarningVisible:T,bannerVisible:S,dismissBanner:()=>{const e=(new Date).toISOString();w(e),localStorage.setItem(c.TB,e)},daysRemaining:E,trialEndsAt:p(y),trialEndsAtRaw:y,type:B,canUpgrade:I,onTrial:A,refreshPlan:n,planIsFreeOrEarlyBird:(0,m.Kj)(b)}}},97118:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(19673),r=n(42728);const l=()=>{var e;const{value:t}=(0,a.lU)();if(null===t||void 0===t||!t.free)return{};const n=Object.keys(t.free).sort(r.M7)[0];return{id:t.free[n]?null===(e=t.free[n][0])||void 0===e?void 0:e.id:null,version:n}}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7471.d61aa69f317a13bd1b86.chunk.js b/src/web/gui/v2/7471.d61aa69f317a13bd1b86.chunk.js
new file mode 100644
index 000000000..be45f432f
--- /dev/null
+++ b/src/web/gui/v2/7471.d61aa69f317a13bd1b86.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e7ac229a-95f5-491a-b677-51a52a5e836a",e._sentryDebugIdIdentifier="sentry-dbid-e7ac229a-95f5-491a-b677-51a52a5e836a")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7471],{51641:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,e:()=>d});var a,r=n(96540),o=n(47444),i=n(21396);const s=(0,o.eU)({key:"agentDataTrackStatus",default:""}),l=null===(a=window.localNetdataRegistry)||void 0===a?void 0:a.mg,c=window.envSettings.agentApiUrl,d=()=>(0,o.vc)(s),u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;const n=(0,o.lZ)(s);(0,r.useEffect)((()=>{if(!e)return;const a=i.enc.Hex.parse("fd90fa3e33a504c10a444f910444650772e77e81b00c7523643462f298fd14c0"),r=i.lib.WordArray.random(16),o=JSON.stringify({machine_guid:e,url:t}),s=i.AES.encrypt(o,a,{iv:r}).ciphertext,l=i.enc.Hex.stringify(r)+i.enc.Hex.stringify(s),c=l+i.HmacSHA256(i.enc.Hex.parse(l),a).toString();fetch("".concat("https://frankfurt.netdata.rocks/privacy","?data=").concat(encodeURIComponent(c))).then((e=>e.json())).then((e=>n(e.status))).catch((e=>console.error("Error:",e)))}),[e])}},86147:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>A});n(62953);var a=n(96540),r=n(39225),o=n(83741),i=n(22332),s=n(80925),l=n(24266),c=n(22292),d=n(20378),u=n(78459),g=n(15255),m=n(87337),v=n(28738),f=n(38819),y=n(71835);const w={ErrInvalidRedirectURI:"Invalid redirect URI",ErrUntrustedRedirectURI:"Untrusted redirect URI",ErrSpaceMemberAlreadyExists:"Space member already exists",ErrInvalidSpaceID:"Invalid space ID",ErrInvalidInvitationToken:"Invalid invitation token",ErrInvitationNotFound:"Invitation not found",ErrInvitationEmailMismatch:"Invitation email mismatch",ErrInvitationExpired:"Invitation expired",ErrUnauthenticated:"Unauthenticated",ErrInternalServerError:"Internal server error"},h=()=>{const[,e]=(0,y.A)();(0,a.useEffect)((()=>{const{error_msg_key:t,error_message:n}=(0,f.PP)();var a,r;n&&e({message:decodeURIComponent((a=t,r=n,w[a]||r||"An unexpected error occurred"))})}),[])};var I=n(29848);const p=(0,r.A)((()=>Promise.all([n.e(7519),n.e(8323),n.e(5598)]).then(n.bind(n,95598))),"Layout"),k=(0,i.withChartProvider)((()=>{const e=(0,c.uW)("isLoaded"),t=(0,c.uW)("email"),n=(0,c.NJ)(),r=(0,c.uW)("isAnonymous"),i=(0,I.c0)(),s=(0,u.OS)();return(0,a.useEffect)((()=>{r||s()}),[r]),(0,a.useEffect)((()=>{if(n&&t)try{o.gV({id:n,email:t})}catch(e){console.warn("Sentry: unable to set user")}}),[t,n]),(0,m.xN)(),(0,u.Ay)(),(0,d.Ay)(),(0,g.Ay)(),h(),a.createElement(a.Suspense,{fallback:a.createElement(v.A,null)},a.createElement(p,{key:i,isUserLoaded:e}))})),A=(0,l.Xc)((()=>{const e=(0,s.e)().getRoot();return a.createElement(k,{chart:e})}))},3714:(e,t,n)=>{"use strict";n.d(t,{j:()=>i});n(62953),n(48408);var a=n(26655),r=n(80158);const o=e=>(window.localNetdataRegistry.mg=e.agent.mg,window.localNetdataRegistry.hostname=(0,r.Yv)(e.agent.nm||"agent"),{cloudStatus:e.cloud.status,canBeClaimed:e.can_be_claimed,keyFilename:e.key_filename,claimId:e.cloud.claim_id,mg:e.agent.mg,nd:e.agent.nd,success:e.success,message:e.message}),i=function(){let{key:e,token:t,rooms:n,url:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=new URLSearchParams({key:e,rooms:n,token:t,url:r}).toString();return i=e&&n&&t&&r&&i?"?".concat(i):"",a.A.get("/api/v2/claim".concat(i),{baseURL:window.envSettings.agentApiUrl,transform:o})}},15255:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>m,OS:()=>u,RJ:()=>g});n(62953);var a=n(96540),r=n(47444),o=n(3914),i=n(22292),s=n(79731),l=n(3714);const c=(0,r.Iz)({key:"claimStatusAtom",default:{loaded:!1,loading:!1,cloudStatus:"disabled",canBeClaimed:!1,claimId:null,keyFilename:"",error:"",claiming:!1,claimingError:""}}),d=(0,r.Iz)({key:"checkClaimStatus",default:()=>1}),u=()=>{var e;const t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,n=(0,r.lZ)(d(t));return(0,a.useCallback)((()=>n((e=>e+1))),[t])},g=()=>{var e;const t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,[n,o]=(0,r.L4)(c({machineGuid:t}));return[n,(0,a.useCallback)((e=>o((t=>({...t,...e})),[])))]},m=()=>{var e;const t=(0,o.dg)(),n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,[c,u]=(0,r.L4)(d(n)),[m,v]=g(n),{loading:f}=m,y=(0,i.uW)("isAnonymous");return(0,a.useEffect)((()=>{!f&&n&&t&&(v({loading:!0,nodeId:null,spaceId:null,roomIds:[]}),(0,l.j)().then((e=>{let{data:t}=e;v({loading:!1,loaded:!0,...t,error:""})})).catch((e=>{var t;const n=null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data;v({loading:!1,loaded:!0,error:(0,s.o)(null===n||void 0===n?void 0:n.errorMsgKey)||(null===n||void 0===n?void 0:n.errorMessage)||"Something went wrong",cloudStatus:"disabled",canBeClaimed:!1,keyFilename:""})})))}),[n,c,t,y]),{...m,checkAgain:u}}},29848:(e,t,n)=>{"use strict";n.d(t,{Hs:()=>l,c0:()=>i,ly:()=>s,pp:()=>c});n(62953);var a=n(47444);const r=(0,a.eU)({key:"spaceKeyAtom",default:0}),o=(0,a.eU)({key:"roomViewLoading",default:!0}),i=()=>(0,a.vc)(r),s=()=>{const[e,t]=(0,a.L4)(r);return()=>t(e+1)},l=()=>(0,a.vc)(o),c=()=>(0,a.L4)(o)},78459:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>h,OS:()=>y,f7:()=>w});n(62953);var a,r=n(96540),o=n(47444),i=n(92138),s=n(3914),l=n(22292),c=n(79731),d=n(15255),u=n(9224),g=n(51641);const m=null===(a=window.localNetdataRegistry)||void 0===a?void 0:a.mg,v=(0,o.Iz)({key:"currentAgentBearerAtom",default:{loading:!1,token:localStorage.getItem("agentJWT:".concat(m))||"",expiration:localStorage.getItem("agentJWTExp:".concat(m))||null,bearerProtection:!0,error:""}}),f=(0,o.Iz)({key:"checkAgentBearer",default:()=>1}),y=()=>{const[{mg:e}]=(0,d.RJ)(),t=(0,o.lZ)(f(e));return(0,r.useCallback)((()=>t((e=>e+1))),[e])},w=()=>{const[{claimId:e,mg:t,nd:n}]=(0,d.RJ)();return(0,o.L4)(v({nodeId:n,machineGuid:t,claimId:e}))},h=()=>{const e=(0,s.dg)(),[{claimId:t,mg:n,nd:a}]=(0,d.RJ)(),[m,v]=(0,o.L4)(f(n)),[{loading:y,token:h,expiration:I,bearerProtection:p,error:k},A]=w(),S=(0,i.A)(m),b=(0,l.uW)("isAnonymous");return(0,r.useEffect)((()=>{!y&&n&&e&&!b&&t&&a&&(m===S&&I&&1e3*I>(new Date).getTime()+3600||(A((e=>({...e,loading:!0}))),(0,u.q5)(a,n,t).then((e=>{let{data:t}=e;A({loading:!1,...t,error:""}),localStorage.setItem("agentJWT:".concat(n),null===t||void 0===t?void 0:t.token),localStorage.setItem("agentJWTExp:".concat(n),null===t||void 0===t?void 0:t.expiration)})).catch((e=>{var t;const a=null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data;localStorage.removeItem("agentJWT:".concat(n)),localStorage.removeItem("agentJWTExp:".concat(n)),A({loading:!1,token:"",expiration:null,bearerProtection:!0,error:(0,c.o)(null===a||void 0===a?void 0:a.errorMsgKey)||(null===a||void 0===a?void 0:a.errorMessage)||"Something went wrong"})}))))}),[n,I,m,e,b,S]),(0,g.A)(n),{token:h,bearerProtection:p,checkAgain:v,error:k}}},20378:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>m,OS:()=>u,Q8:()=>g});n(62953);var a=n(96540),r=n(47444),o=n(3914),i=n(22292),s=n(79731),l=n(9224);const c=(0,r.Iz)({key:"userAccessAtom",default:{loaded:!1,loading:!1,userStatus:"notLoggedIn",userNodeStatus:"noAccess",nodeId:null,spaceId:null,roomIds:[],error:""}}),d=(0,r.Iz)({key:"checkUserAccess",default:()=>1}),u=()=>{var e;const t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,n=(0,r.lZ)(d(t));return(0,a.useCallback)((()=>n((e=>e+1))),[t])},g=()=>{var e;const t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg;return(0,r.L4)(c({machineGuid:t}))},m=()=>{var e;const t=(0,o.dg)(),n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,[c,u]=(0,r.L4)(d(n)),[m,v]=g(n),{loading:f}=m,y=(0,i.uW)("isAnonymous");return(0,a.useEffect)((()=>{!f&&n&&t&&!y&&(v((e=>({loading:!0,nodeId:null,spaceId:null,roomIds:[],...e}))),(0,l.az)(n).then((e=>{let{data:t}=e;v({loading:!1,loaded:!0,...t,error:""})})).catch((e=>{var t;const n=null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data;v({loading:!1,loaded:!0,error:(0,s.o)(null===n||void 0===n?void 0:n.errorMsgKey)||(null===n||void 0===n?void 0:n.errorMessage)||"Something went wrong",userStatus:"notLoggedIn",userNodeStatus:"noAccess",nodeId:null,spaceId:null,roomIds:[]})})))}),[n,c,t,y,f]),{...m,checkAgain:u}}},87337:(e,t,n)=>{"use strict";n.d(t,{xN:()=>f,vS:()=>g,YN:()=>y,KF:()=>v,iw:()=>u,rE:()=>m});n(17333),n(3064),n(41393),n(14905),n(98992),n(54520),n(72577),n(81454),n(8872),n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215),n(62953);var a=n(96540),r=n(47444),o=n(47767),i=n(22292);const s=(0,r.Iz)({key:"visitedNodes",default:()=>[]});var l=n(47762),c=n(9224);const d=(0,r.K0)({key:"visitedNodeIdsValue",get:e=>t=>{let{get:n}=t;return n(s(e)).map((e=>{let{id:t}=e;return t}))}}),u=()=>{const e=(0,i.NJ)(),t=(0,r.vc)(s(e)),n=(0,r.Zs)((e=>{let{set:t}=e;return e=>{t(l.gl,{values:e.reduce(((e,t)=>({...e,[t.id]:{...t,loaded:!0}})),{}),merge:!0})}}),[]);return(0,a.useEffect)((()=>{n(t)}),[t]),(0,r.vc)(d(e))},g=e=>{const t=(0,i.NJ)(),n=(0,r.vc)(s(t)),o=(0,a.useMemo)((()=>e?n.filter((t=>t.name.toUpperCase().includes(e.toUpperCase()))):n),[n,e]);return(0,a.useMemo)((()=>o.map((e=>e.id))),[o])},m=()=>(0,r.Zs)((e=>{let{snapshot:t,set:n}=e;return async(e,a)=>{const r=await t.getPromise((0,i.Dm)("id")),{urls:o,name:d}=await t.getPromise((0,l.GN)({id:e})),u=o.filter((e=>e!==a));n((0,l.GN)({id:e,key:"urls"}),u),u.length||n(s(r),(t=>t.filter((t=>t.id!==e))));try{await(u.length?(0,c.Bz)(r,e,d,u):(0,c.sm)(r,[e])),(0,c.UL)(r,e).catch((()=>{}))}catch(g){n((0,l.GN)({id:e,key:"urls"}),o)}}}),[]),v=()=>{const{pathname:e}=(0,o.zy)(),t=(0,i.NJ)(),n=f({autoFetch:!1});return(0,r.Zs)((e=>{let{snapshot:t,set:a}=e;return async(e,r,o)=>{if(await t.getPromise((0,i.Dm)("isAnonymous")))return;const d=await t.getPromise((0,i.Dm)("id")),{urls:u,name:g}=await t.getPromise((0,l.GN)({id:e}));let m=r?[r,...u]:u;m=[...new Set([window.location.href,...m])];const v=m.length!==u.length;try{a((0,l.GN)({id:e,key:"urls"}),m),a(s(d),(t=>{const n=t.find((t=>t.id===e)),a=t.filter((t=>t.id!==e));return n?[{...n,accessCount:n.accessCount+1,lastAccessTime:(new Date).toISOString()},...a]:[{accessCount:1,id:e,lastAccessTime:(new Date).toISOString(),urls:m,name:o},...a]})),v&&await(0,c.Bz)(d,e,o||g,m),n(),await(0,c.UL)(d,e)}catch(f){a((0,l.GN)({id:e,key:"urls"}),u)}}}),[n,e,t])},f=function(){let{autoFetch:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:t,isAnonymous:n}=(0,i.uW)(),[,o]=(0,r.L4)(s(t)),[l,d]=(0,a.useState)(0),u=(0,a.useCallback)((()=>{d((e=>e+1))}),[d]);return(0,a.useEffect)((()=>{if(t&&(e||l))if(n){const e=(window.visitedNodes||[]).sort(((e,t)=>new Date(t.lastAccessTime)-new Date(e.lastAccessTime)));o(e)}else(0,c.uQ)(t).then((e=>{if(!e)return;const{data:{results:t}}=e,n=t.sort(((e,t)=>new Date(t.lastAccessTime)-new Date(e.lastAccessTime)));o(n)}))}),[e,l,t,n]),u},y=()=>{const e=(0,i.NJ)(),t=s(e);return(0,r.Zs)((e=>{let{snapshot:n,set:a}=e;return async e=>{const r=(await n.getPromise((0,l.th)(e))).map((e=>e.machineGUID)),o=await n.getPromise(t),i=o.filter((e=>!r.includes(e.id)));i.length!==o.length&&a(t,i)}}),[e])}},92138:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(96540),r=n(2404),o=n.n(r),i=n(80862);const s=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o();const r=(0,a.useRef)(),s=(0,a.useRef)(e);return!(0,i.A)().current||t&&n(s.current,e)||(r.current=s.current,s.current=e),r.current}},50477:()=>{}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js b/src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js
new file mode 100644
index 000000000..1c6207486
--- /dev/null
+++ b/src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js
@@ -0,0 +1,8 @@
+/*! For license information please see 749.8ce93b3d6d67d600e8c8.chunk.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3fa4dc8d-8bbe-4e2f-829c-8af412cfd710",e._sentryDebugIdIdentifier="sentry-dbid-3fa4dc8d-8bbe-4e2f-829c-8af412cfd710")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[749],{22086:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>qr});var n=r(74848),o=r(96540),a=r(45576),i=r(58156),s=r.n(i),c=r(62193),l=r.n(c),u=r(44383),d=r.n(u),f=r(42072),p=r.n(f),m=r(88055),h=r.n(m),y=r(23805),g=r.n(y),v=r(63560),b=r.n(v);let $=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+=(t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_"),"");function w(){return $()}function S(e){return Array.isArray(e)?e.map((e=>({key:w(),item:e}))):[]}function _(e){return Array.isArray(e)?e.map((e=>e.item)):[]}class x extends o.Component{constructor(e){super(e),this._getNewFormDataRow=()=>{const{schema:e,registry:t}=this.props,{schemaUtils:r}=t;let n=e.items;return(0,a.nQ)(e)&&(0,a.Hh)(e)&&(n=e.additionalItems),r.getDefaultFormState(n)},this.onAddClick=e=>{this._handleAddClick(e)},this.onAddIndexClick=e=>t=>{this._handleAddClick(t,e)},this.onCopyIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:r,errorSchema:n}=this.props,{keyedFormData:o}=this.state;let a;if(n){a={};for(const t in n){const r=parseInt(t);r<=e?b()(a,[r],n[t]):r>e&&b()(a,[r+1],n[t])}}const i={key:w(),item:h()(o[e].item)},s=[...o];void 0!==e?s.splice(e+1,0,i):s.push(i),this.setState({keyedFormData:s,updatedKeyedFormData:!0},(()=>r(_(s),a)))},this.onDropIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:r,errorSchema:n}=this.props,{keyedFormData:o}=this.state;let a;if(n){a={};for(const t in n){const r=parseInt(t);r<e?b()(a,[r],n[t]):r>e&&b()(a,[r-1],n[t])}}const i=o.filter(((t,r)=>r!==e));this.setState({keyedFormData:i,updatedKeyedFormData:!0},(()=>r(_(i),a)))},this.onReorderClick=(e,t)=>r=>{r&&(r.preventDefault(),r.currentTarget.blur());const{onChange:n,errorSchema:o}=this.props;let a;if(o){a={};for(const r in o){const n=parseInt(r);n==e?b()(a,[t],o[e]):n==t?b()(a,[e],o[t]):b()(a,[r],o[n])}}const{keyedFormData:i}=this.state;const s=function(){const r=i.slice();return r.splice(e,1),r.splice(t,0,i[e]),r}();this.setState({keyedFormData:s},(()=>n(_(s),a)))},this.onChangeForIndex=e=>(t,r,n)=>{const{formData:o,onChange:a,errorSchema:i}=this.props,s=(Array.isArray(o)?o:[]).map(((r,n)=>e===n?"undefined"===typeof t?null:t:r));a(s,i&&i&&{...i,[e]:r},n)},this.onSelectChange=e=>{const{onChange:t,idSchema:r}=this.props;t(e,void 0,r&&r.$id)};const{formData:t=[]}=e,r=S(t);this.state={keyedFormData:r,updatedKeyedFormData:!1}}static getDerivedStateFromProps(e,t){if(t.updatedKeyedFormData)return{updatedKeyedFormData:!1};const r=Array.isArray(e.formData)?e.formData:[],n=t.keyedFormData||[];return{keyedFormData:r.length===n.length?n.map(((e,t)=>({key:e.key,item:r[t]}))):S(r)}}get itemTitle(){const{schema:e,registry:t}=this.props,{translateString:r}=t;return s()(e,[a.ZN,"title"],s()(e,[a.ZN,"description"],r(a.Zl.ArrayItemTitle)))}isItemRequired(e){return Array.isArray(e.type)?!e.type.includes("null"):"null"!==e.type}canAddItem(e){const{schema:t,uiSchema:r,registry:n}=this.props;let{addable:o}=(0,a.$R)(r,n.globalUiOptions);return!1!==o&&(o=void 0===t.maxItems||e.length<t.maxItems),o}_handleAddClick(e,t){e&&e.preventDefault();const{onChange:r,errorSchema:n}=this.props,{keyedFormData:o}=this.state;let a;if(n){a={};for(const e in n){const r=parseInt(e);void 0===t||r<t?b()(a,[r],n[e]):r>=t&&b()(a,[r+1],n[e])}}const i={key:w(),item:this._getNewFormDataRow()},s=[...o];void 0!==t?s.splice(t,0,i):s.push(i),this.setState({keyedFormData:s,updatedKeyedFormData:!0},(()=>r(_(s),a)))}render(){const{schema:e,uiSchema:t,idSchema:r,registry:o}=this.props,{schemaUtils:i,translateString:s}=o;if(!(a.ZN in e)){const i=(0,a.$R)(t),c=(0,a.$F)("UnsupportedFieldTemplate",o,i);return(0,n.jsx)(c,{schema:e,idSchema:r,reason:s(a.Zl.MissingItems),registry:o})}return i.isMultiSelect(e)?this.renderMultiSelect():(0,a.ar)(t)?this.renderCustomWidget():(0,a.nQ)(e)?this.renderFixedArray():i.isFilesArray(e,t)?this.renderFiles():this.renderNormalArray()}renderNormalArray(){const{schema:e,uiSchema:t={},errorSchema:r,idSchema:o,name:i,title:s,disabled:c=!1,readonly:l=!1,autofocus:u=!1,required:d=!1,registry:f,onBlur:p,onFocus:m,idPrefix:h,idSeparator:y="_",rawErrors:v}=this.props,{keyedFormData:b}=this.state,$=e.title||s||i,{schemaUtils:w,formContext:S}=f,x=(0,a.$R)(t),E=g()(e.items)?e.items:{},j=w.retrieveSchema(E),k=_(this.state.keyedFormData),O=this.canAddItem(k),C={canAdd:O,items:b.map(((e,n)=>{const{key:a,item:s}=e,c=s,l=w.retrieveSchema(E,c),d=r?r[n]:void 0,f=o.$id+y+n,g=w.toIdSchema(l,f,c,h,y);return this.renderArrayFieldItem({key:a,index:n,name:i&&`${i}-${n}`,title:$?`${$}-${n+1}`:void 0,canAdd:O,canMoveUp:n>0,canMoveDown:n<k.length-1,itemSchema:l,itemIdSchema:g,itemErrorSchema:d,itemData:c,itemUiSchema:t.items,autofocus:u&&0===n,onBlur:p,onFocus:m,rawErrors:v,totalItems:b.length})})),className:`field field-array field-array-of-${j.type}`,disabled:c,idSchema:o,uiSchema:t,onAddClick:this.onAddClick,readonly:l,required:d,schema:e,title:$,formContext:S,formData:k,rawErrors:v,registry:f},A=(0,a.$F)("ArrayFieldTemplate",f,x);return(0,n.jsx)(A,{...C})}renderCustomWidget(){var e;const{schema:t,idSchema:r,uiSchema:o,disabled:i=!1,readonly:s=!1,autofocus:c=!1,required:l=!1,hideError:u,placeholder:d,onBlur:f,onFocus:p,formData:m=[],registry:h,rawErrors:y,name:g}=this.props,{widgets:v,formContext:b,globalUiOptions:$,schemaUtils:w}=h,{widget:S,title:_,...x}=(0,a.$R)(o,$),E=(0,a.Bt)(t,S,v),j=null!==(e=null!==_&&void 0!==_?_:t.title)&&void 0!==e?e:g,k=w.getDisplayLabel(t,o,$);return(0,n.jsx)(E,{id:r.$id,name:g,multiple:!0,onChange:this.onSelectChange,onBlur:f,onFocus:p,options:x,schema:t,uiSchema:o,registry:h,value:m,disabled:i,readonly:s,hideError:u,required:l,label:j,hideLabel:!k,placeholder:d,formContext:b,autofocus:c,rawErrors:y})}renderMultiSelect(){var e;const{schema:t,idSchema:r,uiSchema:o,formData:i=[],disabled:s=!1,readonly:c=!1,autofocus:l=!1,required:u=!1,placeholder:d,onBlur:f,onFocus:p,registry:m,rawErrors:h,name:y}=this.props,{widgets:g,schemaUtils:v,formContext:b,globalUiOptions:$}=m,w=v.retrieveSchema(t.items,i),S=(0,a.f9)(w),{widget:_="select",title:x,...E}=(0,a.$R)(o,$),j=(0,a.Bt)(t,_,g),k=null!==(e=null!==x&&void 0!==x?x:t.title)&&void 0!==e?e:y,O=v.getDisplayLabel(t,o,$);return(0,n.jsx)(j,{id:r.$id,name:y,multiple:!0,onChange:this.onSelectChange,onBlur:f,onFocus:p,options:{...E,enumOptions:S},schema:t,uiSchema:o,registry:m,value:i,disabled:s,readonly:c,required:u,label:k,hideLabel:!O,placeholder:d,formContext:b,autofocus:l,rawErrors:h})}renderFiles(){var e;const{schema:t,uiSchema:r,idSchema:o,name:i,disabled:s=!1,readonly:c=!1,autofocus:l=!1,required:u=!1,onBlur:d,onFocus:f,registry:p,formData:m=[],rawErrors:h}=this.props,{widgets:y,formContext:g,globalUiOptions:v,schemaUtils:b}=p,{widget:$="files",title:w,...S}=(0,a.$R)(r,v),_=(0,a.Bt)(t,$,y),x=null!==(e=null!==w&&void 0!==w?w:t.title)&&void 0!==e?e:i,E=b.getDisplayLabel(t,r,v);return(0,n.jsx)(_,{options:S,id:o.$id,name:i,multiple:!0,onChange:this.onSelectChange,onBlur:d,onFocus:f,schema:t,uiSchema:r,value:m,disabled:s,readonly:c,required:u,registry:p,formContext:g,autofocus:l,rawErrors:h,label:x,hideLabel:!E})}renderFixedArray(){const{schema:e,uiSchema:t={},formData:r=[],errorSchema:o,idPrefix:i,idSeparator:s="_",idSchema:c,name:l,title:u,disabled:d=!1,readonly:f=!1,autofocus:p=!1,required:m=!1,registry:h,onBlur:y,onFocus:v,rawErrors:b}=this.props,{keyedFormData:$}=this.state;let{formData:w=[]}=this.props;const S=e.title||u||l,_=(0,a.$R)(t),{schemaUtils:x,formContext:E}=h,j=(g()(e.items)?e.items:[]).map(((e,t)=>x.retrieveSchema(e,r[t]))),k=g()(e.additionalItems)?x.retrieveSchema(e.additionalItems,r):null;(!w||w.length<j.length)&&(w=w||[],w=w.concat(new Array(j.length-w.length)));const O=this.canAddItem(w)&&!!k,C={canAdd:O,className:"field field-array field-array-fixed-items",disabled:d,idSchema:c,formData:r,items:$.map(((r,n)=>{const{key:a,item:u}=r,d=u,f=n>=j.length,m=(f&&g()(e.additionalItems)?x.retrieveSchema(e.additionalItems,d):j[n])||{},h=c.$id+s+n,_=x.toIdSchema(m,h,d,i,s),E=f?t.additionalItems||{}:Array.isArray(t.items)?t.items[n]:t.items||{},k=o?o[n]:void 0;return this.renderArrayFieldItem({key:a,index:n,name:l&&`${l}-${n}`,title:S?`${S}-${n+1}`:void 0,canAdd:O,canRemove:f,canMoveUp:n>=j.length+1,canMoveDown:f&&n<w.length-1,itemSchema:m,itemData:d,itemUiSchema:E,itemIdSchema:_,itemErrorSchema:k,autofocus:p&&0===n,onBlur:y,onFocus:v,rawErrors:b,totalItems:$.length})})),onAddClick:this.onAddClick,readonly:f,required:m,registry:h,schema:e,uiSchema:t,title:S,formContext:E,rawErrors:b},A=(0,a.$F)("ArrayFieldTemplate",h,_);return(0,n.jsx)(A,{...C})}renderArrayFieldItem(e){const{key:t,index:r,name:o,canAdd:i,canRemove:s=!0,canMoveUp:c,canMoveDown:l,itemSchema:u,itemData:d,itemUiSchema:f,itemIdSchema:p,itemErrorSchema:m,autofocus:h,onBlur:y,onFocus:g,rawErrors:v,totalItems:b,title:$}=e,{disabled:w,hideError:S,idPrefix:_,idSeparator:x,readonly:E,uiSchema:j,registry:k,formContext:O}=this.props,{fields:{ArraySchemaField:C,SchemaField:A},globalUiOptions:P}=k,N=C||A,{orderable:D=!0,removable:I=!0,copyable:F=!1}=(0,a.$R)(j,P),T={moveUp:D&&c,moveDown:D&&l,copy:F&&i,remove:I&&s,toolbar:!1};return T.toolbar=Object.keys(T).some((e=>T[e])),{children:(0,n.jsx)(N,{name:o,title:$,index:r,schema:u,uiSchema:f,formData:d,formContext:O,errorSchema:m,idPrefix:_,idSeparator:x,idSchema:p,required:this.isItemRequired(u),onChange:this.onChangeForIndex(r),onBlur:y,onFocus:g,registry:k,disabled:w,readonly:E,hideError:S,autofocus:h,rawErrors:v}),className:"array-item",disabled:w,canAdd:i,hasCopy:T.copy,hasToolbar:T.toolbar,hasMoveUp:T.moveUp,hasMoveDown:T.moveDown,hasRemove:T.remove,index:r,totalItems:b,key:t,onAddIndexClick:this.onAddIndexClick,onCopyIndexClick:this.onCopyIndexClick,onDropIndexClick:this.onDropIndexClick,onReorderClick:this.onReorderClick,readonly:E,registry:k,schema:u,uiSchema:f}}}const E=x;const j=function(e){var t,r,o;const{schema:i,name:s,uiSchema:c,idSchema:l,formData:u,registry:d,required:f,disabled:p,readonly:m,hideError:h,autofocus:y,title:v,onChange:b,onFocus:$,onBlur:w,rawErrors:S}=e,{title:_}=i,{widgets:x,formContext:E,translateString:j,globalUiOptions:k}=d,{widget:O="checkbox",title:C,label:A=!0,...P}=(0,a.$R)(c,k),N=(0,a.Bt)(i,O,x),D=j(a.Zl.YesLabel),I=j(a.Zl.NoLabel);let F;const T=null!==(r=null!==(t=null!==C&&void 0!==C?C:_)&&void 0!==t?t:v)&&void 0!==r?r:s;if(Array.isArray(i.oneOf))F=(0,a.f9)({oneOf:i.oneOf.map((e=>{if(g()(e))return{...e,title:e.title||(!0===e.const?D:I)}})).filter((e=>e))});else{const e=i,t=null!==(o=i.enum)&&void 0!==o?o:[!0,!1];F=!e.enumNames&&2===t.length&&t.every((e=>"boolean"===typeof e))?[{value:t[0],label:t[0]?D:I},{value:t[1],label:t[1]?D:I}]:(0,a.f9)({enum:t,enumNames:e.enumNames})}return(0,n.jsx)(N,{options:{...P,enumOptions:F},schema:i,uiSchema:c,id:l.$id,name:s,onChange:b,onFocus:$,onBlur:w,label:T,hideLabel:!A,value:u,required:f,disabled:p,readonly:m,hideError:h,registry:d,formContext:E,autofocus:y,rawErrors:S})};var k=r(90179),O=r.n(k);class C extends o.Component{constructor(e){super(e),this.onOptionChange=e=>{const{selectedOption:t,retrievedOptions:r}=this.state,{formData:n,onChange:o,registry:a}=this.props,{schemaUtils:i}=a,s=void 0!==e?parseInt(e,10):-1;if(s===t)return;const c=s>=0?r[s]:void 0,l=t>=0?r[t]:void 0;let u=i.sanitizeDataForNewSchema(c,l,n);u&&c&&(u=i.getDefaultFormState(c,u,"excludeObjectChildren")),o(u,void 0,this.getFieldId()),this.setState({selectedOption:s})};const{formData:t,options:r,registry:{schemaUtils:n}}=this.props,o=r.map((e=>n.retrieveSchema(e,t)));this.state={retrievedOptions:o,selectedOption:this.getMatchingOption(0,t,o)}}componentDidUpdate(e,t){const{formData:r,options:n,idSchema:o}=this.props,{selectedOption:i}=this.state;let s=this.state;if(!(0,a.c2)(e.options,n)){const{registry:{schemaUtils:e}}=this.props;s={selectedOption:i,retrievedOptions:n.map((t=>e.retrieveSchema(t,r)))}}if(!(0,a.c2)(r,e.formData)&&o.$id===e.idSchema.$id){const{retrievedOptions:e}=s,n=this.getMatchingOption(i,r,e);t&&n!==i&&(s={selectedOption:n,retrievedOptions:e})}s!==this.state&&this.setState(s)}getMatchingOption(e,t,r){const{schema:n,registry:{schemaUtils:o}}=this.props,i=(0,a.KU)(n);return o.getClosestMatchingOption(t,r,e,i)}getFieldId(){const{idSchema:e,schema:t}=this.props;return`${e.$id}${t.oneOf?"__oneof_select":"__anyof_select"}`}render(){const{name:e,disabled:t=!1,errorSchema:r={},formContext:o,onBlur:i,onFocus:c,registry:u,schema:d,uiSchema:f}=this.props,{widgets:p,fields:m,translateString:h,globalUiOptions:y,schemaUtils:g}=u,{SchemaField:v}=m,{selectedOption:b,retrievedOptions:$}=this.state,{widget:w="select",placeholder:S,autofocus:_,autocomplete:x,title:E=d.title,...j}=(0,a.$R)(f,y),k=(0,a.Bt)({type:"number"},w,p),C=s()(r,a.s2,[]),A=O()(r,[a.s2]),P=g.getDisplayLabel(d,f,y),N=b>=0&&$[b]||null;let D;if(N){const{required:e}=d;D=e?(0,a.dW)({required:e},N):N}let I=[];a.Ru in d&&f&&a.Ru in f?Array.isArray(f[a.Ru])?I=f[a.Ru]:console.warn(`uiSchema.oneOf is not an array for "${E||e}"`):a.Xo in d&&f&&a.Xo in f&&(Array.isArray(f[a.Xo])?I=f[a.Xo]:console.warn(`uiSchema.anyOf is not an array for "${E||e}"`));let F=f;b>=0&&I.length>b&&(F=I[b]);const T=E?a.Zl.TitleOptionPrefix:a.Zl.OptionPrefix,R=E?[E]:[],M=$.map(((e,t)=>{const{title:r=e.title}=(0,a.$R)(I[t]);return{label:r||h(T,R.concat(String(t+1))),value:t}}));return(0,n.jsxs)("div",{className:"panel panel-default panel-body",children:[(0,n.jsx)("div",{className:"form-group",children:(0,n.jsx)(k,{id:this.getFieldId(),name:`${e}${d.oneOf?"__oneof_select":"__anyof_select"}`,schema:{type:"number",default:0},onChange:this.onOptionChange,onBlur:i,onFocus:c,disabled:t||l()(M),multiple:!1,rawErrors:C,errorSchema:A,value:b>=0?b:void 0,options:{enumOptions:M,...j},registry:u,formContext:o,placeholder:S,autocomplete:x,autofocus:_,label:null!==E&&void 0!==E?E:e,hideLabel:!P})}),D&&(0,n.jsx)(v,{...this.props,schema:D,uiSchema:F})]})}}const A=C,P=/\.([0-9]*0)*$/,N=/[0.]0*$/;const D=function(e){const{registry:t,onChange:r,formData:i,value:s}=e,[c,l]=(0,o.useState)(s),{StringField:u}=t.fields;let d=i;const f=(0,o.useCallback)((e=>{l(e),"."===`${e}`.charAt(0)&&(e=`0${e}`);const t="string"===typeof e&&e.match(P)?(0,a.i)(e.replace(N,"")):(0,a.i)(e);r(t)}),[r]);if("string"===typeof c&&"number"===typeof d){const e=new RegExp(`${d}`.replace(".","\\.")+"\\.?0*$");c.match(e)&&(d=c)}return(0,n.jsx)(u,{...e,formData:d,onChange:f})};function I(){return I=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},I.apply(this,arguments)}const F=["children","options"];var T,R,M;(M=T||(T={})).blockQuote="0",M.breakLine="1",M.breakThematic="2",M.codeBlock="3",M.codeFenced="4",M.codeInline="5",M.footnote="6",M.footnoteReference="7",M.gfmTask="8",M.heading="9",M.headingSetext="10",M.htmlBlock="11",M.htmlComment="12",M.htmlSelfClosing="13",M.image="14",M.link="15",M.linkAngleBraceStyleDetector="16",M.linkBareUrlDetector="17",M.linkMailtoDetector="18",M.newlineCoalescer="19",M.orderedList="20",M.paragraph="21",M.ref="22",M.refImage="23",M.refLink="24",M.table="25",M.tableSeparator="26",M.text="27",M.textBolded="28",M.textEmphasized="29",M.textEscaped="30",M.textMarked="31",M.textStrikethroughed="32",M.unorderedList="33",function(e){e[e.MAX=0]="MAX",e[e.HIGH=1]="HIGH",e[e.MED=2]="MED",e[e.LOW=3]="LOW",e[e.MIN=4]="MIN"}(R||(R={}));const U=["allowFullScreen","allowTransparency","autoComplete","autoFocus","autoPlay","cellPadding","cellSpacing","charSet","className","classId","colSpan","contentEditable","contextMenu","crossOrigin","encType","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","hrefLang","inputMode","keyParams","keyType","marginHeight","marginWidth","maxLength","mediaGroup","minLength","noValidate","radioGroup","readOnly","rowSpan","spellCheck","srcDoc","srcLang","srcSet","tabIndex","useMap"].reduce(((e,t)=>(e[t.toLowerCase()]=t,e)),{for:"htmlFor"}),V={amp:"&",apos:"'",gt:">",lt:"<",nbsp:"\xa0",quot:"\u201c"},B=["style","script"],z=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,q=/mailto:/i,L=/\n{2,}$/,K=/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/,W=/^ *> ?/gm,H=/^ {2,}\n/,G=/^(?:( *[-*_])){3,} *(?:\n *)+\n/,J=/^\s*(`{3,}|~{3,}) *(\S+)?([^\n]*?)?\n([\s\S]+?)\s*\1 *(?:\n *)*\n?/,Z=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,Y=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,Q=/^(?:\n *)*\n/,X=/\r\n?/g,ee=/^\[\^([^\]]+)](:.*)\n/,te=/^\[\^([^\]]+)]/,re=/\f/g,ne=/^---[ \t]*\n(.|\n)*\n---[ \t]*\n/,oe=/^\s*?\[(x|\s)\]/,ae=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,ie=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,se=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,ce=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?([^>]*)\/{0}>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1)[\s\S])*?)<\/\1>\n*/i,le=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,ue=/^<!--[\s\S]*?(?:-->)/,de=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,fe=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,pe=/^\{.*\}$/,me=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,he=/^<([^ >]+@[^ >]+)>/,ye=/^<([^ >]+:\/[^ >]+)>/,ge=/-([a-z])?/gi,ve=/^(.*\|?.*)\n *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*)\n?/,be=/^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/,$e=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,we=/^\[([^\]]*)\] ?\[([^\]]*)\]/,Se=/(\[|\])/g,_e=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,xe=/\t/g,Ee=/^ *\| */,je=/(^ *\||\| *$)/g,ke=/ *$/,Oe=/^ *:-+: *$/,Ce=/^ *:-+ *$/,Ae=/^ *-+: *$/,Pe=/^([*_])\1((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1\1(?!\1)/,Ne=/^([*_])((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1(?!\1|\w)/,De=/^==((?:\[.*?\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)==/,Ie=/^~~((?:\[.*?\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/,Fe=/^\\([^0-9A-Za-z\s])/,Te=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&#;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,Re=/^\n+/,Me=/^([ \t]*)/,Ue=/\\([^\\])/g,Ve=/ *\n+$/,Be=/(?:^|\n)( *)$/,ze="(?:\\d+\\.)",qe="(?:[*+-])";function Le(e){return"( *)("+(1===e?ze:qe)+") +"}const Ke=Le(1),We=Le(2);function He(e){return new RegExp("^"+(1===e?Ke:We))}const Ge=He(1),Je=He(2);function Ze(e){return new RegExp("^"+(1===e?Ke:We)+"[^\\n]*(?:\\n(?!\\1"+(1===e?ze:qe)+" )[^\\n]*)*(\\n|$)","gm")}const Ye=Ze(1),Qe=Ze(2);function Xe(e){const t=1===e?ze:qe;return new RegExp("^( *)("+t+") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1"+t+" (?!"+t+" ))\\n*|\\s*\\n*$)")}const et=Xe(1),tt=Xe(2);function rt(e,t){const r=1===t,n=r?et:tt,o=r?Ye:Qe,a=r?Ge:Je;return{match(e,t,r){const o=Be.exec(r);return o&&(t.list||!t.inline&&!t.simple)?n.exec(e=o[1]+e):null},order:1,parse(e,t,n){const i=r?+e[2]:void 0,s=e[0].replace(L,"\n").match(o);let c=!1;return{items:s.map((function(e,r){const o=a.exec(e)[0].length,i=new RegExp("^ {1,"+o+"}","gm"),l=e.replace(i,"").replace(a,""),u=r===s.length-1,d=-1!==l.indexOf("\n\n")||u&&c;c=d;const f=n.inline,p=n.list;let m;n.list=!0,d?(n.inline=!1,m=l.replace(Ve,"\n\n")):(n.inline=!0,m=l.replace(Ve,""));const h=t(m,n);return n.inline=f,n.list=p,h})),ordered:r,start:i}},render:(t,r,n)=>e(t.ordered?"ol":"ul",{key:n.key,start:"20"===t.type?t.start:void 0},t.items.map((function(t,o){return e("li",{key:o},r(t,n))})))}}const nt=/^\[([^\]]*)]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/,ot=/^!\[([^\]]*)]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/,at=[K,J,Z,ae,se,ie,ue,ve,Ye,et,Qe,tt],it=[...at,/^[^\n]+(?: \n|\n{2,})/,ce,fe];function st(e){return e.replace(/[\xc0\xc1\xc2\xc3\xc4\xc5\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xc6]/g,"a").replace(/[\xe7\xc7]/g,"c").replace(/[\xf0\xd0]/g,"d").replace(/[\xc8\xc9\xca\xcb\xe9\xe8\xea\xeb]/g,"e").replace(/[\xcf\xef\xce\xee\xcd\xed\xcc\xec]/g,"i").replace(/[\xd1\xf1]/g,"n").replace(/[\xf8\xd8\u0153\u0152\xd5\xf5\xd4\xf4\xd3\xf3\xd2\xf2]/g,"o").replace(/[\xdc\xfc\xdb\xfb\xda\xfa\xd9\xf9]/g,"u").replace(/[\u0178\xff\xdd\xfd]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function ct(e){return Ae.test(e)?"right":Oe.test(e)?"center":Ce.test(e)?"left":null}function lt(e,t,r){const n=r.inTable;r.inTable=!0;const o=t(e.trim(),r);r.inTable=n;let a=[[]];return o.forEach((function(e,t){"26"===e.type?0!==t&&t!==o.length-1&&a.push([]):("27"!==e.type||null!=o[t+1]&&"26"!==o[t+1].type||(e.text=e.text.replace(ke,"")),a[a.length-1].push(e))})),a}function ut(e,t,r){r.inline=!0;const n=lt(e[1],t,r),o=e[2].replace(je,"").split("|").map(ct),a=function(e,t,r){return e.trim().split("\n").map((function(e){return lt(e,t,r)}))}(e[3],t,r);return r.inline=!1,{align:o,cells:a,header:n,type:"25"}}function dt(e,t){return null==e.align[t]?{}:{textAlign:e.align[t]}}function ft(e){return function(t,r){return r.inline?e.exec(t):null}}function pt(e){return function(t,r){return r.inline||r.simple?e.exec(t):null}}function mt(e){return function(t,r){return r.inline||r.simple?null:e.exec(t)}}function ht(e){return function(t){return e.exec(t)}}function yt(e,t,r){if(t.inline||t.simple)return null;if(r&&!r.endsWith("\n"))return null;let n="";e.split("\n").every((e=>!at.some((t=>t.test(e)))&&(n+=e+"\n",e.trim())));const o=n.trimEnd();return""==o?null:[n,o]}function gt(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data(?!:image)):/i))return}catch(e){return null}return e}function vt(e){return e.replace(Ue,"$1")}function bt(e,t,r){const n=r.inline||!1,o=r.simple||!1;r.inline=!0,r.simple=!0;const a=e(t,r);return r.inline=n,r.simple=o,a}function $t(e,t,r){const n=r.inline||!1,o=r.simple||!1;r.inline=!1,r.simple=!0;const a=e(t,r);return r.inline=n,r.simple=o,a}function wt(e,t,r){return r.inline=!1,e(t,r)}const St=(e,t,r)=>({children:bt(t,e[1],r)});function _t(){return{}}function xt(){return null}function Et(...e){return e.filter(Boolean).join(" ")}function jt(e,t,r){let n=e;const o=t.split(".");for(;o.length&&(n=n[o[0]],void 0!==n);)o.shift();return n||r}function kt(e,t={}){t.overrides=t.overrides||{},t.slugify=t.slugify||st,t.namedCodesToUnicode=t.namedCodesToUnicode?I({},V,t.namedCodesToUnicode):V;const r=t.createElement||o.createElement;function n(e,n,...o){const a=jt(t.overrides,`${e}.props`,{});return r(function(e,t){const r=jt(t,e);return r?"function"==typeof r||"object"==typeof r&&"render"in r?r:jt(t,`${e}.component`,e):e}(e,t.overrides),I({},n,a,{className:Et(null==n?void 0:n.className,a.className)||void 0}),...o)}function a(e){e=e.replace(ne,"");let r=!1;t.forceInline?r=!0:t.forceBlock||(r=!1===_e.test(e));const a=d(u(r?e:`${e.trimEnd().replace(Re,"")}\n\n`,{inline:r}));for(;"string"==typeof a[a.length-1]&&!a[a.length-1].trim();)a.pop();if(null===t.wrapper)return a;const i=t.wrapper||(r?"span":"div");let s;if(a.length>1||t.forceWrapper)s=a;else{if(1===a.length)return s=a[0],"string"==typeof s?n("span",{key:"outer"},s):s;s=null}return o.createElement(i,{key:"outer"},s)}function i(e){const t=e.match(z);return t?t.reduce((function(e,t,r){const n=t.indexOf("=");if(-1!==n){const i=function(e){return-1!==e.indexOf("-")&&null===e.match(de)&&(e=e.replace(ge,(function(e,t){return t.toUpperCase()}))),e}(t.slice(0,n)).trim(),s=function(e){const t=e[0];return('"'===t||"'"===t)&&e.length>=2&&e[e.length-1]===t?e.slice(1,-1):e}(t.slice(n+1).trim()),c=U[i]||i,l=e[c]=function(e,t){return"style"===e?t.split(/;\s?/).reduce((function(e,t){const r=t.slice(0,t.indexOf(":"));return e[r.replace(/(-[a-z])/g,(e=>e[1].toUpperCase()))]=t.slice(r.length+1).trim(),e}),{}):"href"===e||"src"===e?gt(t):(t.match(pe)&&(t=t.slice(1,t.length-1)),"true"===t||"false"!==t&&t)}(i,s);"string"==typeof l&&(ce.test(l)||fe.test(l))&&(e[c]=o.cloneElement(a(l.trim()),{key:r}))}else"style"!==t&&(e[U[t]||t]=!0);return e}),{}):null}const s=[],c={},l={0:{match:mt(K),order:1,parse:(e,t,r)=>({children:t(e[0].replace(W,""),r)}),render:(e,t,r)=>n("blockquote",{key:r.key},t(e.children,r))},1:{match:ht(H),order:1,parse:_t,render:(e,t,r)=>n("br",{key:r.key})},2:{match:mt(G),order:1,parse:_t,render:(e,t,r)=>n("hr",{key:r.key})},3:{match:mt(Z),order:0,parse:e=>({lang:void 0,text:e[0].replace(/^ {4}/gm,"").replace(/\n+$/,"")}),render:(e,t,r)=>n("pre",{key:r.key},n("code",I({},e.attrs,{className:e.lang?`lang-${e.lang}`:""}),e.text))},4:{match:mt(J),order:0,parse:e=>({attrs:i(e[3]||""),lang:e[2]||void 0,text:e[4],type:"3"})},5:{match:pt(Y),order:3,parse:e=>({text:e[2]}),render:(e,t,r)=>n("code",{key:r.key},e.text)},6:{match:mt(ee),order:0,parse:e=>(s.push({footnote:e[2],identifier:e[1]}),{}),render:xt},7:{match:ft(te),order:1,parse:e=>({target:`#${t.slugify(e[1])}`,text:e[1]}),render:(e,t,r)=>n("a",{key:r.key,href:gt(e.target)},n("sup",{key:r.key},e.text))},8:{match:ft(oe),order:1,parse:e=>({completed:"x"===e[1].toLowerCase()}),render:(e,t,r)=>n("input",{checked:e.completed,key:r.key,readOnly:!0,type:"checkbox"})},9:{match:mt(t.enforceAtxHeadings?ie:ae),order:1,parse:(e,r,n)=>({children:bt(r,e[2],n),id:t.slugify(e[2]),level:e[1].length}),render:(e,t,r)=>n(`h${e.level}`,{id:e.id,key:r.key},t(e.children,r))},10:{match:mt(se),order:0,parse:(e,t,r)=>({children:bt(t,e[1],r),level:"="===e[2]?1:2,type:"9"})},11:{match:ht(ce),order:1,parse(e,t,r){const[,n]=e[3].match(Me),o=new RegExp(`^${n}`,"gm"),a=e[3].replace(o,""),s=(c=a,it.some((e=>e.test(c)))?wt:bt);var c;const l=e[1].toLowerCase(),u=-1!==B.indexOf(l),d={attrs:i(e[2]),noInnerParse:u,tag:u?l:e[1]};return r.inAnchor=r.inAnchor||"a"===l,u?d.text=e[3]:d.children=s(t,a,r),r.inAnchor=!1,d},render:(e,t,r)=>n(e.tag,I({key:r.key},e.attrs),e.text||t(e.children,r))},13:{match:ht(fe),order:1,parse:e=>({attrs:i(e[2]||""),tag:e[1]}),render:(e,t,r)=>n(e.tag,I({},e.attrs,{key:r.key}))},12:{match:ht(ue),order:1,parse:()=>({}),render:xt},14:{match:pt(ot),order:1,parse:e=>({alt:e[1],target:vt(e[2]),title:e[3]}),render:(e,t,r)=>n("img",{key:r.key,alt:e.alt||void 0,title:e.title||void 0,src:gt(e.target)})},15:{match:ft(nt),order:3,parse:(e,t,r)=>({children:$t(t,e[1],r),target:vt(e[2]),title:e[3]}),render:(e,t,r)=>n("a",{key:r.key,href:gt(e.target),title:e.title},t(e.children,r))},16:{match:ft(ye),order:0,parse:e=>({children:[{text:e[1],type:"27"}],target:e[1],type:"15"})},17:{match:(e,t)=>t.inAnchor?null:ft(me)(e,t),order:0,parse:e=>({children:[{text:e[1],type:"27"}],target:e[1],title:void 0,type:"15"})},18:{match:ft(he),order:0,parse(e){let t=e[1],r=e[1];return q.test(r)||(r="mailto:"+r),{children:[{text:t.replace("mailto:",""),type:"27"}],target:r,type:"15"}}},20:rt(n,1),33:rt(n,2),19:{match:mt(Q),order:3,parse:_t,render:()=>"\n"},21:{match:yt,order:3,parse:St,render:(e,t,r)=>n("p",{key:r.key},t(e.children,r))},22:{match:ft(be),order:0,parse:e=>(c[e[1]]={target:e[2],title:e[4]},{}),render:xt},23:{match:pt($e),order:0,parse:e=>({alt:e[1]||void 0,ref:e[2]}),render:(e,t,r)=>n("img",{key:r.key,alt:e.alt,src:gt(c[e.ref].target),title:c[e.ref].title})},24:{match:ft(we),order:0,parse:(e,t,r)=>({children:t(e[1],r),fallbackChildren:t(e[0].replace(Se,"\\$1"),r),ref:e[2]}),render:(e,t,r)=>c[e.ref]?n("a",{key:r.key,href:gt(c[e.ref].target),title:c[e.ref].title},t(e.children,r)):n("span",{key:r.key},t(e.fallbackChildren,r))},25:{match:mt(ve),order:1,parse:ut,render:(e,t,r)=>n("table",{key:r.key},n("thead",null,n("tr",null,e.header.map((function(o,a){return n("th",{key:a,style:dt(e,a)},t(o,r))})))),n("tbody",null,e.cells.map((function(o,a){return n("tr",{key:a},o.map((function(o,a){return n("td",{key:a,style:dt(e,a)},t(o,r))})))}))))},26:{match:function(e,t){return t.inTable?(t.inline=!0,Ee.exec(e)):null},order:1,parse:function(){return{type:"26"}},render:()=>" | "},27:{match:ht(Te),order:4,parse:e=>({text:e[0].replace(le,((e,r)=>t.namedCodesToUnicode[r]?t.namedCodesToUnicode[r]:e))}),render:e=>e.text},28:{match:pt(Pe),order:2,parse:(e,t,r)=>({children:t(e[2],r)}),render:(e,t,r)=>n("strong",{key:r.key},t(e.children,r))},29:{match:pt(Ne),order:3,parse:(e,t,r)=>({children:t(e[2],r)}),render:(e,t,r)=>n("em",{key:r.key},t(e.children,r))},30:{match:pt(Fe),order:1,parse:e=>({text:e[1],type:"27"})},31:{match:pt(De),order:3,parse:St,render:(e,t,r)=>n("mark",{key:r.key},t(e.children,r))},32:{match:pt(Ie),order:3,parse:St,render:(e,t,r)=>n("del",{key:r.key},t(e.children,r))}};!0===t.disableParsingRawHTML&&(delete l[11],delete l[13]);const u=function(e){let t=Object.keys(e);function r(n,o){let a=[],i="";for(;n;){let s=0;for(;s<t.length;){const c=t[s],l=e[c],u=l.match(n,o,i);if(u){const e=u[0];n=n.substring(e.length);const t=l.parse(u,r,o);null==t.type&&(t.type=c),a.push(t),i=e;break}s++}}return a}return t.sort((function(t,r){let n=e[t].order,o=e[r].order;return n!==o?n-o:1})),function(e,t){return r(function(e){return e.replace(X,"\n").replace(re,"").replace(xe," ")}(e),t)}}(l),d=(f=function(e,t){return function(r,n,o){const a=e[r.type].render;return t?t((()=>a(r,n,o)),r,n,o):a(r,n,o)}}(l,t.renderRule),function e(t,r={}){if(Array.isArray(t)){const n=r.key,o=[];let a=!1;for(let i=0;i<t.length;i++){r.key=i;const n=e(t[i],r),s="string"==typeof n;s&&a?o[o.length-1]+=n:null!==n&&o.push(n),a=s}return r.key=n,o}return f(t,e,r)});var f;const p=a(e);return s.length?n("div",null,p,n("footer",{key:"footer"},s.map((function(e){return n("div",{id:t.slugify(e.identifier),key:e.identifier},e.identifier,d(u(e.footnote,{inline:!0})))})))):p}const Ot=e=>{let{children:t,options:r}=e,n=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(o[r]=e[r]);return o}(e,F);return o.cloneElement(kt(t,r),n)};var Ct=r(61448),At=r.n(Ct),Pt=r(73357),Nt=r.n(Pt);class Dt extends o.Component{constructor(){super(...arguments),this.state={wasPropertyKeyModified:!1,additionalProperties:{}},this.onPropertyChange=(e,t=!1)=>(r,n,o)=>{const{formData:a,onChange:i,errorSchema:s}=this.props;void 0===r&&t&&(r="");i({...a,[e]:r},s&&s&&{...s,[e]:n},o)},this.onDropPropertyClick=e=>t=>{t.preventDefault();const{onChange:r,formData:n}=this.props,o={...n};Nt()(o,e),r(o)},this.getAvailableKey=(e,t)=>{const{uiSchema:r,registry:n}=this.props,{duplicateKeySuffixSeparator:o="-"}=(0,a.$R)(r,n.globalUiOptions);let i=0,s=e;for(;At()(t,s);)s=`${e}${o}${++i}`;return s},this.onKeyChange=e=>(t,r)=>{if(e===t)return;const{formData:n,onChange:o,errorSchema:a}=this.props;t=this.getAvailableKey(t,n);const i={...n},s={[e]:t},c=Object.keys(i).map((e=>({[s[e]||e]:i[e]}))),l=Object.assign({},...c);this.setState({wasPropertyKeyModified:!0}),o(l,a&&a&&{...a,[t]:r})},this.handleAddClick=e=>()=>{if(!e.additionalProperties)return;const{formData:t,onChange:r,registry:n}=this.props,o={...t};let i;if(g()(e.additionalProperties)){i=e.additionalProperties.type;let r=e.additionalProperties;if(a.Es in r){const{schemaUtils:e}=n;r=e.retrieveSchema({$ref:r[a.Es]},t),i=r.type}i||!(a.Xo in r)&&!(a.Ru in r)||(i="object")}const s=this.getAvailableKey("newKey",o);b()(o,s,this.getDefaultValue(i)),r(o)}}isRequired(e){const{schema:t}=this.props;return Array.isArray(t.required)&&-1!==t.required.indexOf(e)}getDefaultValue(e){const{registry:{translateString:t}}=this.props;switch(e){case"array":return[];case"boolean":return!1;case"null":return null;case"number":return 0;case"object":return{};default:return t(a.Zl.NewStringDefault)}}render(){var e,t,r,o;const{schema:i,uiSchema:c={},formData:l,errorSchema:u,idSchema:d,name:f,required:p=!1,disabled:m=!1,readonly:h=!1,hideError:y,idPrefix:g,idSeparator:v,onBlur:b,onFocus:$,registry:w,title:S}=this.props,{fields:_,formContext:x,schemaUtils:E,translateString:j,globalUiOptions:k}=w,{SchemaField:O}=_,C=E.retrieveSchema(i,l),A=(0,a.$R)(c,k),{properties:P={}}=C,N=null!==(r=null!==(t=null!==(e=A.title)&&void 0!==e?e:C.title)&&void 0!==t?t:S)&&void 0!==r?r:f,D=null!==(o=A.description)&&void 0!==o?o:C.description;let I;try{const e=Object.keys(P);I=(0,a.UI)(e,A.order)}catch(R){return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"config-error",style:{color:"red"},children:(0,n.jsx)(Ot,{children:j(a.Zl.InvalidObjectField,[f||"root",R.message])})}),(0,n.jsx)("pre",{children:JSON.stringify(C)})]})}const F=(0,a.$F)("ObjectFieldTemplate",w,A),T={title:!1===A.label?"":N,description:!1===A.label?void 0:D,properties:I.map((e=>{const t=At()(C,[a.s1,e,a.Rr]),r=t?c.additionalProperties:c[e],o="hidden"===(0,a.$R)(r).widget,i=s()(d,[e],{});return{content:(0,n.jsx)(O,{name:e,required:this.isRequired(e),schema:s()(C,[a.s1,e],{}),uiSchema:r,errorSchema:s()(u,e),idSchema:i,idPrefix:g,idSeparator:v,formData:s()(l,e),formContext:x,wasPropertyKeyModified:this.state.wasPropertyKeyModified,onKeyChange:this.onKeyChange(e),onChange:this.onPropertyChange(e,t),onBlur:b,onFocus:$,registry:w,disabled:m,readonly:h,hideError:y,onDropPropertyClick:this.onDropPropertyClick},e),name:e,readonly:h,disabled:m,required:p,hidden:o}})),readonly:h,disabled:m,required:p,idSchema:d,uiSchema:c,errorSchema:u,schema:C,formData:l,formContext:x,registry:w};return(0,n.jsx)(F,{...T,onAddClick:this.handleAddClick})}}const It=Dt,Ft={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function Tt(e){const{schema:t,idSchema:r,uiSchema:i,formData:s,errorSchema:c,idPrefix:l,idSeparator:u,name:d,onChange:f,onKeyChange:p,onDropPropertyClick:m,required:h,registry:y,wasPropertyKeyModified:v=!1}=e,{formContext:b,schemaUtils:$,globalUiOptions:w}=y,S=(0,a.$R)(i,w),_=(0,a.$F)("FieldTemplate",y,S),x=(0,a.$F)("DescriptionFieldTemplate",y,S),E=(0,a.$F)("FieldHelpTemplate",y,S),j=(0,a.$F)("FieldErrorTemplate",y,S),k=$.retrieveSchema(t,s),C=r[a.K0],A=(0,a.rL)($.toIdSchema(k,C,s,l,u),r),P=(0,o.useCallback)(((e,t,r)=>f(e,t,r||C)),[C,f]),N=function(e,t,r,o){const i=t.field,{fields:s,translateString:c}=o;if("function"===typeof i)return i;if("string"===typeof i&&i in s)return s[i];const l=(0,a._I)(e),u=Array.isArray(l)?l[0]:l||"",d=e.$id;let f=Ft[u];return d&&d in s&&(f=d),f||!e.anyOf&&!e.oneOf?f in s?s[f]:()=>{const i=(0,a.$F)("UnsupportedFieldTemplate",o,t);return(0,n.jsx)(i,{schema:e,idSchema:r,reason:c(a.Zl.UnknownFieldType,[String(e.type)]),registry:o})}:()=>null}(k,S,A,y),D=Boolean(e.disabled||S.disabled),I=Boolean(e.readonly||S.readonly||e.schema.readOnly||k.readOnly),F=S.hideError,T=void 0===F?e.hideError:Boolean(F),R=Boolean(e.autofocus||S.autofocus);if(0===Object.keys(k).length)return null;const M=$.getDisplayLabel(k,i,w),{__errors:U,...V}=c||{},B=O()(i,["ui:classNames","classNames","ui:style"]);a.ce in B&&(B[a.ce]=O()(B[a.ce],["classNames","style"]));const z=(0,n.jsx)(N,{...e,onChange:P,idSchema:A,schema:k,uiSchema:B,disabled:D,readonly:I,hideError:T,autofocus:R,errorSchema:V,formContext:b,rawErrors:U}),q=A[a.K0];let L;L=v||a.Rr in k?d:S.title||e.schema.title||k.title||e.title||d;const K=S.description||e.schema.description||k.description||"",W=S.enableMarkdownInDescription?(0,n.jsx)(Ot,{children:K}):K,H=S.help,G="hidden"===S.widget,J=["form-group","field",`field-${(0,a._I)(k)}`];!T&&U&&U.length>0&&J.push("field-error has-error has-danger"),(null===i||void 0===i?void 0:i.classNames)&&J.push(i.classNames),S.classNames&&J.push(S.classNames);const Z=(0,n.jsx)(E,{help:H,idSchema:A,schema:k,uiSchema:i,hasErrors:!T&&U&&U.length>0,registry:y}),Y=T||(k.anyOf||k.oneOf)&&!$.isSelect(k)?void 0:(0,n.jsx)(j,{errors:U,errorSchema:c,idSchema:A,schema:k,uiSchema:i,registry:y}),Q={description:(0,n.jsx)(x,{id:(0,a.IR)(q),description:W,schema:k,uiSchema:i,registry:y}),rawDescription:K,help:Z,rawHelp:"string"===typeof H?H:void 0,errors:Y,rawErrors:T?void 0:U,id:q,label:L,hidden:G,onChange:f,onKeyChange:p,onDropPropertyClick:m,required:h,disabled:D,readonly:I,hideError:T,displayLabel:M,classNames:J.join(" ").trim(),style:S.style,formContext:b,formData:s,schema:k,uiSchema:i,registry:y},X=y.fields.AnyOfField,ee=y.fields.OneOfField,te=(null===i||void 0===i?void 0:i["ui:field"])&&!0===(null===i||void 0===i?void 0:i["ui:fieldReplacesAnyOrOneOf"]);return(0,n.jsx)(_,{...Q,children:(0,n.jsxs)(n.Fragment,{children:[z,k.anyOf&&!te&&!$.isSelect(k)&&(0,n.jsx)(X,{name:d,disabled:D,readonly:I,hideError:T,errorSchema:c,formData:s,formContext:b,idPrefix:l,idSchema:A,idSeparator:u,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:k.anyOf.map((e=>$.retrieveSchema(g()(e)?e:{},s))),registry:y,schema:k,uiSchema:i}),k.oneOf&&!te&&!$.isSelect(k)&&(0,n.jsx)(ee,{name:d,disabled:D,readonly:I,hideError:T,errorSchema:c,formData:s,formContext:b,idPrefix:l,idSchema:A,idSeparator:u,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:k.oneOf.map((e=>$.retrieveSchema(g()(e)?e:{},s))),registry:y,schema:k,uiSchema:i})]})})}class Rt extends o.Component{shouldComponentUpdate(e){return!(0,a.c2)(this.props,e)}render(){return(0,n.jsx)(Tt,{...this.props})}}const Mt=Rt;const Ut=function(e){var t;const{schema:r,name:o,uiSchema:i,idSchema:s,formData:c,required:l,disabled:u=!1,readonly:d=!1,autofocus:f=!1,onChange:p,onBlur:m,onFocus:h,registry:y,rawErrors:g,hideError:v}=e,{title:b,format:$}=r,{widgets:w,formContext:S,schemaUtils:_,globalUiOptions:x}=y,E=_.isSelect(r)?(0,a.f9)(r):void 0;let j=E?"select":"text";$&&(0,a.Lw)(r,$,w)&&(j=$);const{widget:k=j,placeholder:O="",title:C,...A}=(0,a.$R)(i),P=_.getDisplayLabel(r,i,x),N=null!==(t=null!==C&&void 0!==C?C:b)&&void 0!==t?t:o,D=(0,a.Bt)(r,k,w);return(0,n.jsx)(D,{options:{...A,enumOptions:E},schema:r,uiSchema:i,id:s.$id,name:o,label:N,hideLabel:!P,hideError:v,value:c,onChange:p,onBlur:m,onFocus:h,required:l,disabled:u,readonly:d,formContext:S,autofocus:f,registry:y,placeholder:O,rawErrors:g})};const Vt=function(e){const{formData:t,onChange:r}=e;return(0,o.useEffect)((()=>{void 0===t&&r(null)}),[t,r]),null};const Bt=function(){return{AnyOfField:A,ArrayField:E,BooleanField:j,NumberField:D,ObjectField:It,OneOfField:A,SchemaField:Mt,StringField:Ut,NullField:Vt}};function zt(e){const{idSchema:t,description:r,registry:o,schema:i,uiSchema:s}=e,c=(0,a.$R)(s,o.globalUiOptions),{label:l=!0}=c;if(!r||!l)return null;const u=(0,a.$F)("DescriptionFieldTemplate",o,c);return(0,n.jsx)(u,{id:(0,a.IR)(t),description:r,schema:i,uiSchema:s,registry:o})}function qt(e){const{children:t,className:r,disabled:o,hasToolbar:a,hasMoveDown:i,hasMoveUp:s,hasRemove:c,hasCopy:l,index:u,onCopyIndexClick:d,onDropIndexClick:f,onReorderClick:p,readonly:m,registry:h,uiSchema:y}=e,{CopyButton:g,MoveDownButton:v,MoveUpButton:b,RemoveButton:$}=h.templates.ButtonTemplates,w={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"};return(0,n.jsxs)("div",{className:r,children:[(0,n.jsx)("div",{className:a?"col-xs-9":"col-xs-12",children:t}),a&&(0,n.jsx)("div",{className:"col-xs-3 array-item-toolbox",children:(0,n.jsxs)("div",{className:"btn-group",style:{display:"flex",justifyContent:"space-around"},children:[(s||i)&&(0,n.jsx)(b,{style:w,disabled:o||m||!s,onClick:p(u,u-1),uiSchema:y,registry:h}),(s||i)&&(0,n.jsx)(v,{style:w,disabled:o||m||!i,onClick:p(u,u+1),uiSchema:y,registry:h}),l&&(0,n.jsx)(g,{style:w,disabled:o||m,onClick:d(u),uiSchema:y,registry:h}),c&&(0,n.jsx)($,{style:w,disabled:o||m,onClick:f(u),uiSchema:y,registry:h})]})})]})}function Lt(e){const{canAdd:t,className:r,disabled:o,idSchema:i,uiSchema:s,items:c,onAddClick:l,readonly:u,registry:d,required:f,schema:p,title:m}=e,h=(0,a.$R)(s),y=(0,a.$F)("ArrayFieldDescriptionTemplate",d,h),g=(0,a.$F)("ArrayFieldItemTemplate",d,h),v=(0,a.$F)("ArrayFieldTitleTemplate",d,h),{ButtonTemplates:{AddButton:b}}=d.templates;return(0,n.jsxs)("fieldset",{className:r,id:i.$id,children:[(0,n.jsx)(v,{idSchema:i,title:h.title||m,required:f,schema:p,uiSchema:s,registry:d}),(0,n.jsx)(y,{idSchema:i,description:h.description||p.description,schema:p,uiSchema:s,registry:d}),(0,n.jsx)("div",{className:"row array-item-list",children:c&&c.map((({key:e,...t})=>(0,n.jsx)(g,{...t},e)))}),t&&(0,n.jsx)(b,{className:"array-item-add",onClick:l,disabled:o||u,uiSchema:s,registry:d})]})}function Kt(e){const{idSchema:t,title:r,schema:o,uiSchema:i,required:s,registry:c}=e,l=(0,a.$R)(i,c.globalUiOptions),{label:u=!0}=l;if(!r||!u)return null;const d=(0,a.$F)("TitleFieldTemplate",c,l);return(0,n.jsx)(d,{id:(0,a.EH)(t),title:r,required:s,schema:o,uiSchema:i,registry:c})}function Wt(e){const{id:t,name:r,value:i,readonly:s,disabled:c,autofocus:l,onBlur:u,onFocus:d,onChange:f,onChangeOverride:p,options:m,schema:h,uiSchema:y,formContext:g,registry:v,rawErrors:b,type:$,hideLabel:w,hideError:S,..._}=e;if(!t)throw console.log("No id for",e),new Error(`no id for props ${JSON.stringify(e)}`);const x={..._,...(0,a.ti)(h,$,m)};let E;E="number"===x.type||"integer"===x.type?i||0===i?i:"":null==i?"":i;const j=(0,o.useCallback)((({target:{value:e}})=>f(""===e?m.emptyValue:e)),[f,m]),k=(0,o.useCallback)((({target:{value:e}})=>u(t,e)),[u,t]),O=(0,o.useCallback)((({target:{value:e}})=>d(t,e)),[d,t]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{id:t,name:t,className:"form-control",readOnly:s,disabled:c,autoFocus:l,value:E,...x,list:h.examples?(0,a.$c)(t):void 0,onChange:p||j,onBlur:k,onFocus:O,"aria-describedby":(0,a.eG)(t,!!h.examples)}),Array.isArray(h.examples)&&(0,n.jsx)("datalist",{id:(0,a.$c)(t),children:h.examples.concat(h.default&&!h.examples.includes(h.default)?[h.default]:[]).map((e=>(0,n.jsx)("option",{value:e},e)))},`datalist_${t}`)]})}function Ht({uiSchema:e}){const{submitText:t,norender:r,props:o={}}=(0,a.Bj)(e);return r?null:(0,n.jsx)("div",{children:(0,n.jsx)("button",{type:"submit",...o,className:`btn btn-info ${o.className||""}`,children:t})})}function Gt(e){const{iconType:t="default",icon:r,className:o,uiSchema:a,registry:i,...s}=e;return(0,n.jsx)("button",{type:"button",className:`btn btn-${t} ${o}`,...s,children:(0,n.jsx)("i",{className:`glyphicon glyphicon-${r}`})})}function Jt(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(Gt,{title:t(a.Zl.CopyButton),className:"array-item-copy",...e,icon:"copy"})}function Zt(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(Gt,{title:t(a.Zl.MoveDownButton),className:"array-item-move-down",...e,icon:"arrow-down"})}function Yt(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(Gt,{title:t(a.Zl.MoveUpButton),className:"array-item-move-up",...e,icon:"arrow-up"})}function Qt(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(Gt,{title:t(a.Zl.RemoveButton),className:"array-item-remove",...e,iconType:"danger",icon:"remove"})}function Xt({className:e,onClick:t,disabled:r,registry:o}){const{translateString:i}=o;return(0,n.jsx)("div",{className:"row",children:(0,n.jsx)("p",{className:`col-xs-3 col-xs-offset-9 text-right ${e}`,children:(0,n.jsx)(Gt,{iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:i(a.Zl.AddButton),onClick:t,disabled:r,registry:o})})})}const er=function(){return{SubmitButton:Ht,AddButton:Xt,CopyButton:Jt,MoveDownButton:Zt,MoveUpButton:Yt,RemoveButton:Qt}};function tr(e){const{id:t,description:r}=e;return r?"string"===typeof r?(0,n.jsx)("p",{id:t,className:"field-description",children:r}):(0,n.jsx)("div",{id:t,className:"field-description",children:r}):null}function rr({errors:e,registry:t}){const{translateString:r}=t;return(0,n.jsxs)("div",{className:"panel panel-danger errors",children:[(0,n.jsx)("div",{className:"panel-heading",children:(0,n.jsx)("h3",{className:"panel-title",children:r(a.Zl.ErrorsLabel)})}),(0,n.jsx)("ul",{className:"list-group",children:e.map(((e,t)=>(0,n.jsx)("li",{className:"list-group-item text-danger",children:e.stack},t)))})]})}const nr="*";function or(e){const{label:t,required:r,id:o}=e;return t?(0,n.jsxs)("label",{className:"control-label",htmlFor:o,children:[t,r&&(0,n.jsx)("span",{className:"required",children:nr})]}):null}const ar=function(e){const{id:t,label:r,children:o,errors:i,help:s,description:c,hidden:l,required:u,displayLabel:d,registry:f,uiSchema:p}=e,m=(0,a.$R)(p),h=(0,a.$F)("WrapIfAdditionalTemplate",f,m);return l?(0,n.jsx)("div",{className:"hidden",children:o}):(0,n.jsxs)(h,{...e,children:[d&&(0,n.jsx)(or,{label:r,required:u,id:t}),d&&c?c:null,o,i,s]})};function ir(e){const{errors:t=[],idSchema:r}=e;if(0===t.length)return null;const o=(0,a.rD)(r);return(0,n.jsx)("div",{children:(0,n.jsx)("ul",{id:o,className:"error-detail bs-callout bs-callout-info",children:t.filter((e=>!!e)).map(((e,t)=>(0,n.jsx)("li",{className:"text-danger",children:e},t)))})})}function sr(e){const{idSchema:t,help:r}=e;if(!r)return null;const o=(0,a.F5)(t);return"string"===typeof r?(0,n.jsx)("p",{id:o,className:"help-block",children:r}):(0,n.jsx)("div",{id:o,className:"help-block",children:r})}function cr(e){const{description:t,disabled:r,formData:o,idSchema:i,onAddClick:s,properties:c,readonly:l,registry:u,required:d,schema:f,title:p,uiSchema:m}=e,h=(0,a.$R)(m),y=(0,a.$F)("TitleFieldTemplate",u,h),g=(0,a.$F)("DescriptionFieldTemplate",u,h),{ButtonTemplates:{AddButton:v}}=u.templates;return(0,n.jsxs)("fieldset",{id:i.$id,children:[p&&(0,n.jsx)(y,{id:(0,a.EH)(i),title:p,required:d,schema:f,uiSchema:m,registry:u}),t&&(0,n.jsx)(g,{id:(0,a.IR)(i),description:t,schema:f,uiSchema:m,registry:u}),c.map((e=>e.content)),(0,a.Xl)(f,m,o)&&(0,n.jsx)(v,{className:"object-property-expand",onClick:s(f),disabled:r||l,uiSchema:m,registry:u})]})}const lr="*";function ur(e){const{id:t,title:r,required:o}=e;return(0,n.jsxs)("legend",{id:t,children:[r,o&&(0,n.jsx)("span",{className:"required",children:lr})]})}const dr=function(e){const{schema:t,idSchema:r,reason:o,registry:i}=e,{translateString:s}=i;let c=a.Zl.UnsupportedField;const l=[];return r&&r.$id&&(c=a.Zl.UnsupportedFieldWithId,l.push(r.$id)),o&&(c=c===a.Zl.UnsupportedField?a.Zl.UnsupportedFieldWithReason:a.Zl.UnsupportedFieldWithIdAndReason,l.push(o)),(0,n.jsxs)("div",{className:"unsupported-field",children:[(0,n.jsx)("p",{children:(0,n.jsx)(Ot,{children:s(c,l)})}),t&&(0,n.jsx)("pre",{children:JSON.stringify(t,null,2)})]})};function fr(e){const{id:t,classNames:r,style:o,disabled:i,label:s,onKeyChange:c,onDropPropertyClick:l,readonly:u,required:d,schema:f,children:p,uiSchema:m,registry:h}=e,{templates:y,translateString:g}=h,{RemoveButton:v}=y.ButtonTemplates,b=g(a.Zl.KeyLabel,[s]);return a.Rr in f?(0,n.jsx)("div",{className:r,style:o,children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)("div",{className:"col-xs-5 form-additional",children:(0,n.jsxs)("div",{className:"form-group",children:[(0,n.jsx)(or,{label:b,required:d,id:`${t}-key`}),(0,n.jsx)("input",{className:"form-control",type:"text",id:`${t}-key`,onBlur:e=>c(e.target.value),defaultValue:s})]})}),(0,n.jsx)("div",{className:"form-additional form-group col-xs-5",children:p}),(0,n.jsx)("div",{className:"col-xs-2",children:(0,n.jsx)(v,{className:"array-item-remove btn-block",style:{border:"0"},disabled:i||u,onClick:l(s),uiSchema:m,registry:h})})]})}):(0,n.jsx)("div",{className:r,style:o,children:p})}const pr=function(){return{ArrayFieldDescriptionTemplate:zt,ArrayFieldItemTemplate:qt,ArrayFieldTemplate:Lt,ArrayFieldTitleTemplate:Kt,ButtonTemplates:er(),BaseInputTemplate:Wt,DescriptionFieldTemplate:tr,ErrorListTemplate:rr,FieldTemplate:ar,FieldErrorTemplate:ir,FieldHelpTemplate:sr,ObjectFieldTemplate:cr,TitleFieldTemplate:ur,UnsupportedFieldTemplate:dr,WrapIfAdditionalTemplate:fr}};function mr(e,t){const r=[];for(let n=e;n<=t;n++)r.push({value:n,label:(0,a.eV)(n,2)});return r}function hr({type:e,range:t,value:r,select:o,rootId:i,name:s,disabled:c,readonly:l,autofocus:u,registry:d,onBlur:f,onFocus:p}){const m=i+"_"+e,{SelectWidget:h}=d.widgets;return(0,n.jsx)(h,{schema:{type:"integer"},id:m,name:s,className:"form-control",options:{enumOptions:mr(t[0],t[1])},placeholder:e,value:r,disabled:c,readonly:l,autofocus:u,onChange:t=>o(e,t),onBlur:f,onFocus:p,registry:d,label:"","aria-describedby":(0,a.eG)(i)})}const yr=function({time:e=!1,disabled:t=!1,readonly:r=!1,autofocus:i=!1,options:s,id:c,name:l,registry:u,onBlur:d,onFocus:f,onChange:p,value:m}){const{translateString:h}=u,[y,g]=(0,o.useState)(m),[v,b]=(0,o.useReducer)(((e,t)=>({...e,...t})),(0,a.Rm)(m,e));(0,o.useEffect)((()=>{const t=(0,a.HN)(v,e);!function(e){return Object.values(e).every((e=>-1!==e))}(v)||t===m?y!==m&&(g(m),b((0,a.Rm)(m,e))):p(t)}),[e,m,p,v,y]);const $=(0,o.useCallback)(((e,t)=>{b({[e]:t})}),[]),w=(0,o.useCallback)((n=>{if(n.preventDefault(),t||r)return;const o=(0,a.Rm)((new Date).toJSON(),e);p((0,a.HN)(o,e))}),[t,r,e]),S=(0,o.useCallback)((e=>{e.preventDefault(),t||r||p(void 0)}),[t,r,p]);return(0,n.jsxs)("ul",{className:"list-inline",children:[(0,a.dO)(v,e,s.yearsRange,s.format).map(((e,o)=>(0,n.jsx)("li",{className:"list-inline-item",children:(0,n.jsx)(hr,{rootId:c,name:l,select:$,...e,disabled:t,readonly:r,registry:u,onBlur:d,onFocus:f,autofocus:i&&0===o})},o))),("undefined"===s.hideNowButton||!s.hideNowButton)&&(0,n.jsx)("li",{className:"list-inline-item",children:(0,n.jsx)("a",{href:"#",className:"btn btn-info btn-now",onClick:w,children:h(a.Zl.NowLabel)})}),("undefined"===s.hideClearButton||!s.hideClearButton)&&(0,n.jsx)("li",{className:"list-inline-item",children:(0,n.jsx)("a",{href:"#",className:"btn btn-warning btn-clear",onClick:S,children:h(a.Zl.ClearLabel)})})]})};const gr=function({time:e=!0,...t}){const{AltDateWidget:r}=t.registry.widgets;return(0,n.jsx)(r,{time:e,...t})};const vr=function({schema:e,uiSchema:t,options:r,id:i,value:s,disabled:c,readonly:l,label:u,hideLabel:d,autofocus:f=!1,onBlur:p,onFocus:m,onChange:h,registry:y}){var g;const v=(0,a.$F)("DescriptionFieldTemplate",y,r),b=(0,a.l1)(e),$=(0,o.useCallback)((e=>h(e.target.checked)),[h]),w=(0,o.useCallback)((e=>p(i,e.target.checked)),[p,i]),S=(0,o.useCallback)((e=>m(i,e.target.checked)),[m,i]),_=null!==(g=r.description)&&void 0!==g?g:e.description;return(0,n.jsxs)("div",{className:"checkbox "+(c||l?"disabled":""),children:[!d&&!!_&&(0,n.jsx)(v,{id:(0,a.IR)(i),description:_,schema:e,uiSchema:t,registry:y}),(0,n.jsxs)("label",{children:[(0,n.jsx)("input",{type:"checkbox",id:i,name:i,checked:"undefined"!==typeof s&&s,required:b,disabled:c||l,autoFocus:f,onChange:$,onBlur:w,onFocus:S,"aria-describedby":(0,a.eG)(i)}),(0,a.w)((0,n.jsx)("span",{children:u}),d)]})]})};const br=function({id:e,disabled:t,options:{inline:r=!1,enumOptions:i,enumDisabled:s,emptyValue:c},value:l,autofocus:u=!1,readonly:d,onChange:f,onBlur:p,onFocus:m}){const h=Array.isArray(l)?l:[l],y=(0,o.useCallback)((({target:{value:t}})=>p(e,(0,a.Od)(t,i,c))),[p,e]),g=(0,o.useCallback)((({target:{value:t}})=>m(e,(0,a.Od)(t,i,c))),[m,e]);return(0,n.jsx)("div",{className:"checkboxes",id:e,children:Array.isArray(i)&&i.map(((o,c)=>{const l=(0,a.BH)(o.value,h),p=Array.isArray(s)&&-1!==s.indexOf(o.value),m=t||p||d?"disabled":"",v=(0,n.jsxs)("span",{children:[(0,n.jsx)("input",{type:"checkbox",id:(0,a.pk)(e,c),name:e,checked:l,value:String(c),disabled:t||p||d,autoFocus:u&&0===c,onChange:e=>{e.target.checked?f((0,a.L4)(c,h,i)):f((0,a.Uw)(c,h,i))},onBlur:y,onFocus:g,"aria-describedby":(0,a.eG)(e)}),(0,n.jsx)("span",{children:o.label})]});return r?(0,n.jsx)("label",{className:`checkbox-inline ${m}`,children:v},c):(0,n.jsx)("div",{className:`checkbox ${m}`,children:(0,n.jsx)("label",{children:v})},c)}))})};function $r(e){const{disabled:t,readonly:r,options:o,registry:i}=e,s=(0,a.$F)("BaseInputTemplate",i,o);return(0,n.jsx)(s,{type:"color",...e,disabled:t||r})}function wr(e){const{onChange:t,options:r,registry:i}=e,s=(0,a.$F)("BaseInputTemplate",i,r),c=(0,o.useCallback)((e=>t(e||void 0)),[t]);return(0,n.jsx)(s,{type:"date",...e,onChange:c})}function Sr(e){const{onChange:t,value:r,options:o,registry:i}=e,s=(0,a.$F)("BaseInputTemplate",i,o);return(0,n.jsx)(s,{type:"datetime-local",...e,value:(0,a.v4)(r),onChange:e=>t((0,a.z$)(e))})}function _r(e){const{options:t,registry:r}=e,o=(0,a.$F)("BaseInputTemplate",r,t);return(0,n.jsx)(o,{type:"email",...e})}function xr(e,t){return null===e?null:e.replace(";base64",`;name=${encodeURIComponent(t)};base64`)}function Er(e){const{name:t,size:r,type:n}=e;return new Promise(((o,a)=>{const i=new window.FileReader;i.onerror=a,i.onload=e=>{var a;"string"===typeof(null===(a=e.target)||void 0===a?void 0:a.result)?o({dataURL:xr(e.target.result,t),name:t,size:r,type:n}):o({dataURL:null,name:t,size:r,type:n})},i.readAsDataURL(e)}))}function jr({fileInfo:e,registry:t}){const{translateString:r}=t,{dataURL:o,type:i,name:s}=e;return o?["image/jpeg","image/png"].includes(i)?(0,n.jsx)("img",{src:o,style:{maxWidth:"100%"},className:"file-preview"}):(0,n.jsxs)(n.Fragment,{children:[" ",(0,n.jsx)("a",{download:`preview-${s}`,href:o,className:"file-download",children:r(a.Zl.PreviewLabel)})]}):null}function kr({filesInfo:e,registry:t,preview:r,onRemove:o,options:i}){if(0===e.length)return null;const{translateString:s}=t,{RemoveButton:c}=(0,a.$F)("ButtonTemplates",t,i);return(0,n.jsx)("ul",{className:"file-info",children:e.map(((e,i)=>{const{name:l,size:u,type:d}=e;return(0,n.jsxs)("li",{children:[(0,n.jsx)(Ot,{children:s(a.Zl.FilesInfo,[l,d,String(u)])}),r&&(0,n.jsx)(jr,{fileInfo:e,registry:t}),(0,n.jsx)(c,{onClick:()=>o(i),registry:t})]},i)}))})}const Or=function(e){const{disabled:t,readonly:r,required:i,multiple:s,onChange:c,value:l,options:u,registry:d}=e,f=(0,a.$F)("BaseInputTemplate",d,u),p=(0,o.useCallback)((e=>{var t;e.target.files&&(t=e.target.files,Promise.all(Array.from(t).map(Er))).then((e=>{const t=e.map((e=>e.dataURL));c(s?l.concat(t[0]):t[0])}))}),[s,l,c]),m=(0,o.useMemo)((()=>(Array.isArray(l)?l:[l]).reduce(((e,t)=>{if(!t)return e;try{const{blob:r,name:n}=(0,a.zM)(t);return[...e,{dataURL:t,name:n,size:r.size,type:r.type}]}catch(M){return e}}),[])),[l]),h=(0,o.useCallback)((e=>{if(s){const t=l.filter(((t,r)=>r!==e));c(t)}else c(void 0)}),[s,l,c]);return(0,n.jsxs)("div",{children:[(0,n.jsx)(f,{...e,disabled:t||r,type:"file",required:!l&&i,onChangeOverride:p,value:"",accept:u.accept?String(u.accept):void 0}),(0,n.jsx)(kr,{filesInfo:m,onRemove:h,registry:d,preview:u.filePreview,options:u})]})};const Cr=function({id:e,value:t}){return(0,n.jsx)("input",{type:"hidden",id:e,name:e,value:"undefined"===typeof t?"":t})};function Ar(e){const{options:t,registry:r}=e,o=(0,a.$F)("BaseInputTemplate",r,t);return(0,n.jsx)(o,{type:"password",...e})}const Pr=function({options:e,value:t,required:r,disabled:i,readonly:s,autofocus:c=!1,onBlur:l,onFocus:u,onChange:d,id:f}){const{enumOptions:p,enumDisabled:m,inline:h,emptyValue:y}=e,g=(0,o.useCallback)((({target:{value:e}})=>l(f,(0,a.Od)(e,p,y))),[l,f]),v=(0,o.useCallback)((({target:{value:e}})=>u(f,(0,a.Od)(e,p,y))),[u,f]);return(0,n.jsx)("div",{className:"field-radio-group",id:f,children:Array.isArray(p)&&p.map(((e,o)=>{const l=(0,a.BH)(e.value,t),u=Array.isArray(m)&&-1!==m.indexOf(e.value),p=i||u||s?"disabled":"",y=(0,n.jsxs)("span",{children:[(0,n.jsx)("input",{type:"radio",id:(0,a.pk)(f,o),checked:l,name:f,required:r,value:String(o),disabled:i||u||s,autoFocus:c&&0===o,onChange:()=>d(e.value),onBlur:g,onFocus:v,"aria-describedby":(0,a.eG)(f)}),(0,n.jsx)("span",{children:e.label})]});return h?(0,n.jsx)("label",{className:`radio-inline ${p}`,children:y},o):(0,n.jsx)("div",{className:`radio ${p}`,children:(0,n.jsx)("label",{children:y})},o)}))})};function Nr(e){const{value:t,registry:{templates:{BaseInputTemplate:r}}}=e;return(0,n.jsxs)("div",{className:"field-range-wrapper",children:[(0,n.jsx)(r,{type:"range",...e}),(0,n.jsx)("span",{className:"range-view",children:t})]})}function Dr(e,t){return t?Array.from(e.target.options).slice().filter((e=>e.selected)).map((e=>e.value)):e.target.value}const Ir=function({schema:e,id:t,options:r,value:i,required:s,disabled:c,readonly:l,multiple:u=!1,autofocus:d=!1,onChange:f,onBlur:p,onFocus:m,placeholder:h}){const{enumOptions:y,enumDisabled:g,emptyValue:v}=r,b=u?[]:"",$=(0,o.useCallback)((e=>{const r=Dr(e,u);return m(t,(0,a.Od)(r,y,v))}),[m,t,e,u,r]),w=(0,o.useCallback)((e=>{const r=Dr(e,u);return p(t,(0,a.Od)(r,y,v))}),[p,t,e,u,r]),S=(0,o.useCallback)((e=>{const t=Dr(e,u);return f((0,a.Od)(t,y,v))}),[f,e,u,r]),_=(0,a.Yu)(i,y,u);return(0,n.jsxs)("select",{id:t,name:t,multiple:u,className:"form-control",value:"undefined"===typeof _?b:_,required:s,disabled:c||l,autoFocus:d,onBlur:w,onFocus:$,onChange:S,"aria-describedby":(0,a.eG)(t),children:[!u&&void 0===e.default&&(0,n.jsx)("option",{value:"",children:h}),Array.isArray(y)&&y.map((({value:e,label:t},r)=>{const o=g&&-1!==g.indexOf(e);return(0,n.jsx)("option",{value:String(r),disabled:o,children:t},r)}))]})};function Fr({id:e,options:t={},placeholder:r,value:i,required:s,disabled:c,readonly:l,autofocus:u=!1,onChange:d,onBlur:f,onFocus:p}){const m=(0,o.useCallback)((({target:{value:e}})=>d(""===e?t.emptyValue:e)),[d,t.emptyValue]),h=(0,o.useCallback)((({target:{value:t}})=>f(e,t)),[f,e]),y=(0,o.useCallback)((({target:{value:t}})=>p(e,t)),[e,p]);return(0,n.jsx)("textarea",{id:e,name:e,className:"form-control",value:i||"",placeholder:r,required:s,disabled:c,readOnly:l,autoFocus:u,rows:t.rows,onBlur:h,onFocus:y,onChange:m,"aria-describedby":(0,a.eG)(e)})}Fr.defaultProps={autofocus:!1,options:{}};const Tr=Fr;function Rr(e){const{options:t,registry:r}=e,o=(0,a.$F)("BaseInputTemplate",r,t);return(0,n.jsx)(o,{...e})}function Mr(e){const{onChange:t,options:r,registry:i}=e,s=(0,a.$F)("BaseInputTemplate",i,r),c=(0,o.useCallback)((e=>t(e?`${e}:00`:void 0)),[t]);return(0,n.jsx)(s,{type:"time",...e,onChange:c})}function Ur(e){const{options:t,registry:r}=e,o=(0,a.$F)("BaseInputTemplate",r,t);return(0,n.jsx)(o,{type:"url",...e})}function Vr(e){const{options:t,registry:r}=e,o=(0,a.$F)("BaseInputTemplate",r,t);return(0,n.jsx)(o,{type:"number",...e})}const Br=function(){return{AltDateWidget:yr,AltDateTimeWidget:gr,CheckboxWidget:vr,CheckboxesWidget:br,ColorWidget:$r,DateWidget:wr,DateTimeWidget:Sr,EmailWidget:_r,FileWidget:Or,HiddenWidget:Cr,PasswordWidget:Ar,RadioWidget:Pr,RangeWidget:Nr,SelectWidget:Ir,TextWidget:Rr,TextareaWidget:Tr,TimeWidget:Mr,UpDownWidget:Vr,URLWidget:Ur}};class zr extends o.Component{constructor(e){if(super(e),this.getUsedFormData=(e,t)=>{if(0===t.length&&"object"!==typeof e)return e;const r=d()(e,t);return Array.isArray(e)?Object.keys(r).map((e=>r[e])):r},this.getFieldNames=(e,t)=>{const r=(e,n=[],o=[[]])=>(Object.keys(e).forEach((i=>{if("object"===typeof e[i]){const t=o.map((e=>[...e,i]));e[i][a.yB]&&""!==e[i][a.oS]?n.push(e[i][a.oS]):r(e[i],n,t)}else i===a.oS&&""!==e[i]&&o.forEach((e=>{const r=s()(t,e);("object"!==typeof r||l()(r)||Array.isArray(r)&&r.every((e=>"object"!==typeof e)))&&n.push(e)}))})),n);return r(e)},this.onChange=(e,t,r)=>{const{extraErrors:n,omitExtraData:o,liveOmit:i,noValidate:s,liveValidate:c,onChange:l}=this.props,{schemaUtils:u,schema:d,retrievedSchema:f}=this.state;if((0,a.Gv)(e)||Array.isArray(e)){e=this.getStateFromProps(this.props,e,f).formData}const p=!s&&c;let m,h={formData:e,schema:d},y=e;if(!0===o&&!0===i){m=u.retrieveSchema(d,e);const t=u.toPathSchema(m,"",e),r=this.getFieldNames(t,e);y=this.getUsedFormData(e,r),h={formData:y}}if(p){const e=this.validate(y,d,u,f);let t=e.errors,r=e.errorSchema;const o=t,i=r;if(n){const o=(0,a.k6)(e,n);r=o.errorSchema,t=o.errors}h={formData:y,errors:t,errorSchema:r,schemaValidationErrors:o,schemaValidationErrorSchema:i}}else if(!s&&t){const e=n?(0,a.rL)(t,n,"preventDuplicates"):t;h={formData:y,errorSchema:e,errors:(0,a.SL)(e)}}m&&(h.retrievedSchema=m),this.setState(h,(()=>l&&l({...this.state,...h},r)))},this.reset=()=>{const{onChange:e}=this.props,t={formData:this.getStateFromProps(this.props,void 0).formData,errorSchema:{},errors:[],schemaValidationErrors:[],schemaValidationErrorSchema:{}};this.setState(t,(()=>e&&e({...this.state,...t})))},this.onBlur=(e,t)=>{const{onBlur:r}=this.props;r&&r(e,t)},this.onFocus=(e,t)=>{const{onFocus:r}=this.props;r&&r(e,t)},this.onSubmit=e=>{if(e.preventDefault(),e.target!==e.currentTarget)return;e.persist();const{omitExtraData:t,extraErrors:r,noValidate:n,onSubmit:o}=this.props;let{formData:i}=this.state;const{schema:s,schemaUtils:c}=this.state;if(!0===t){const e=c.retrieveSchema(s,i),t=c.toPathSchema(e,"",i),r=this.getFieldNames(t,i);i=this.getUsedFormData(i,r)}if(n||this.validateForm()){const t=r||{},n=r?(0,a.SL)(r):[];this.setState({formData:i,errors:n,errorSchema:t,schemaValidationErrors:[],schemaValidationErrorSchema:{}},(()=>{o&&o({...this.state,formData:i,status:"submitted"},e)}))}},this.submit=()=>{this.formElement.current&&(this.formElement.current.dispatchEvent(new CustomEvent("submit",{cancelable:!0})),this.formElement.current.requestSubmit())},!e.validator)throw new Error("A validator is required for Form functionality to work");this.state=this.getStateFromProps(e,e.formData),this.props.onChange&&!(0,a.c2)(this.state.formData,this.props.formData)&&this.props.onChange(this.state),this.formElement=(0,o.createRef)()}getSnapshotBeforeUpdate(e,t){if(!(0,a.c2)(this.props,e)){const r=this.getStateFromProps(this.props,this.props.formData,e.schema!==this.props.schema?void 0:this.state.retrievedSchema);return{nextState:r,shouldUpdate:!(0,a.c2)(r,t)}}return{shouldUpdate:!1}}componentDidUpdate(e,t,r){if(r.shouldUpdate){const{nextState:e}=r;(0,a.c2)(e.formData,this.props.formData)||(0,a.c2)(e.formData,t.formData)||!this.props.onChange||this.props.onChange(e),this.setState(e)}}getStateFromProps(e,t,r){const n=this.state||{},o="schema"in e?e.schema:this.props.schema,i=("uiSchema"in e?e.uiSchema:this.props.uiSchema)||{},s="undefined"!==typeof t,c="liveValidate"in e?e.liveValidate:this.props.liveValidate,l=s&&!e.noValidate&&c,u=o,d="experimental_defaultFormStateBehavior"in e?e.experimental_defaultFormStateBehavior:this.props.experimental_defaultFormStateBehavior;let f=n.schemaUtils;f&&!f.doesSchemaUtilsDiffer(e.validator,u,d)||(f=(0,a.BP)(e.validator,u,d));const p=f.getDefaultFormState(o,t),m=null!==r&&void 0!==r?r:f.retrieveSchema(o,p);let h,y,g=n.schemaValidationErrors,v=n.schemaValidationErrorSchema;if(l){const e=this.validate(p,o,f,m);h=e.errors,y=e.errorSchema,g=h,v=y}else{const t=e.noValidate?{errors:[],errorSchema:{}}:e.liveValidate?{errors:n.errors||[],errorSchema:n.errorSchema||{}}:{errors:n.schemaValidationErrors||[],errorSchema:n.schemaValidationErrorSchema||{}};h=t.errors,y=t.errorSchema}if(e.extraErrors){const t=(0,a.k6)({errorSchema:y,errors:h},e.extraErrors);y=t.errorSchema,h=t.errors}const b=f.toIdSchema(m,i["ui:rootFieldId"],p,e.idPrefix,e.idSeparator);return{schemaUtils:f,schema:o,uiSchema:i,idSchema:b,formData:p,edit:s,errors:h,errorSchema:y,schemaValidationErrors:g,schemaValidationErrorSchema:v,retrievedSchema:m}}shouldComponentUpdate(e,t){return(0,a.F9)(this,e,t)}validate(e,t=this.props.schema,r,n){const o=r||this.state.schemaUtils,{customValidate:a,transformErrors:i,uiSchema:s}=this.props,c=null!==n&&void 0!==n?n:o.retrieveSchema(t,e);return o.getValidator().validateFormData(e,c,a,i,s)}renderErrors(e){const{errors:t,errorSchema:r,schema:o,uiSchema:i}=this.state,{formContext:s}=this.props,c=(0,a.$R)(i),l=(0,a.$F)("ErrorListTemplate",e,c);return t&&t.length?(0,n.jsx)(l,{errors:t,errorSchema:r||{},schema:o,uiSchema:i,formContext:s,registry:e}):null}getRegistry(){var e;const{translateString:t,uiSchema:r={}}=this.props,{schemaUtils:n}=this.state,{fields:o,templates:i,widgets:s,formContext:c,translateString:l}={fields:Bt(),templates:pr(),widgets:Br(),rootSchema:{},formContext:{},translateString:a.qe};return{fields:{...o,...this.props.fields},templates:{...i,...this.props.templates,ButtonTemplates:{...i.ButtonTemplates,...null===(e=this.props.templates)||void 0===e?void 0:e.ButtonTemplates}},widgets:{...s,...this.props.widgets},rootSchema:this.props.schema,formContext:this.props.formContext||c,schemaUtils:n,translateString:t||l,globalUiOptions:r[a.AK]}}focusOnError(e){const{idPrefix:t="root",idSeparator:r="_"}=this.props,{property:n}=e,o=p()(n);""===o[0]?o[0]=t:o.unshift(t);const a=o.join(r);let i=this.formElement.current.elements[a];i||(i=this.formElement.current.querySelector(`input[id^=${a}`)),i&&i.length&&(i=i[0]),i&&i.focus()}validateForm(){const{extraErrors:e,extraErrorsBlockSubmit:t,focusOnFirstError:r,onError:n}=this.props,{formData:o,errors:i}=this.state,s=this.validate(o);let c=s.errors,l=s.errorSchema;const u=c,d=l,f=c.length>0||e&&t;if(f){if(e){const t=(0,a.k6)(s,e);l=t.errorSchema,c=t.errors}r&&("function"===typeof r?r(c[0]):this.focusOnError(c[0])),this.setState({errors:c,errorSchema:l,schemaValidationErrors:u,schemaValidationErrorSchema:d},(()=>{n?n(c):console.error("Form validation failed",c)}))}else i.length>0&&this.setState({errors:[],errorSchema:{},schemaValidationErrors:[],schemaValidationErrorSchema:{}});return!f}render(){const{children:e,id:t,idPrefix:r,idSeparator:o,className:i="",tagName:s,name:c,method:l,target:u,action:d,autoComplete:f,enctype:p,acceptcharset:m,noHtml5Validate:h=!1,disabled:y=!1,readonly:g=!1,formContext:v,showErrorList:b="top",_internalFormWrapper:$}=this.props,{schema:w,uiSchema:S,formData:_,errorSchema:x,idSchema:E}=this.state,j=this.getRegistry(),{SchemaField:k}=j.fields,{SubmitButton:O}=j.templates.ButtonTemplates,C=$?s:void 0,A=$||s||"form";let{[a.xh]:P={}}=(0,a.$R)(S);y&&(P={...P,props:{...P.props,disabled:!0}});const N={[a.ce]:{[a.xh]:P}};return(0,n.jsxs)(A,{className:i||"rjsf",id:t,name:c,method:l,target:u,action:d,autoComplete:f,encType:p,acceptCharset:m,noValidate:h,onSubmit:this.onSubmit,as:C,ref:this.formElement,children:["top"===b&&this.renderErrors(j),(0,n.jsx)(k,{name:"",schema:w,uiSchema:S,errorSchema:x,idSchema:E,idPrefix:r,idSeparator:o,formContext:v,formData:_,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:j,disabled:y,readonly:g}),e||(0,n.jsx)(O,{uiSchema:N,registry:j}),"bottom"===b&&this.renderErrors(j)]})}}const qr=zr},45576:(e,t,r)=>{"use strict";function n(e){return!("undefined"!==typeof File&&e instanceof File)&&(!("undefined"!==typeof Date&&e instanceof Date)&&("object"===typeof e&&null!==e&&!Array.isArray(e)))}function o(e){return!0===e.additionalItems&&console.warn("additionalItems=true is currently not supported"),n(e.additionalItems)}function a(e){if(""===e)return;if(null===e)return null;if(/\.$/.test(e))return e;if(/\.0$/.test(e))return e;if(/\.\d*0$/.test(e))return e;const t=Number(e);return"number"===typeof t&&!Number.isNaN(t)?t:e}r.d(t,{Rr:()=>i,Xo:()=>l,s2:()=>m,K0:()=>h,ZN:()=>g,oS:()=>v,Ru:()=>b,s1:()=>$,Es:()=>_,yB:()=>x,at:()=>E,xh:()=>S,Zl:()=>tr,AK:()=>O,ce:()=>k,Hh:()=>o,eG:()=>Tt,i:()=>a,Xl:()=>A,JF:()=>D,BP:()=>ot,zM:()=>at,c2:()=>T,IR:()=>Pt,qe:()=>it,Uw:()=>ct,Yu:()=>ut,BH:()=>lt,L4:()=>pt,Od:()=>st,rD:()=>Nt,$c:()=>Dt,dO:()=>gt,NV:()=>Ge,KU:()=>we,ti:()=>bt,_I:()=>Ee,Bj:()=>wt,$F:()=>St,$R:()=>C,Bt:()=>kt,Lw:()=>Ct,$K:()=>Ot,F5:()=>It,ar:()=>Je,nQ:()=>Ue,Gv:()=>n,w:()=>Mt,z$:()=>Ut,rL:()=>Be,dW:()=>je,pk:()=>Rt,f9:()=>Vt,UI:()=>Bt,eV:()=>zt,Rm:()=>qt,l1:()=>Lt,F9:()=>Kt,EH:()=>Ft,HN:()=>Wt,SL:()=>Ht,MD:()=>Zt,fV:()=>Yt,v4:()=>Qt,k6:()=>Xt,vh:()=>er});const i="__additional_property",s="additionalProperties",c="allOf",l="anyOf",u="const",d="default",f="dependencies",p="enum",m="__errors",h="$id",y="if",g="items",v="$name",b="oneOf",$="properties",w="required",S="submitButtonOptions",_="$ref",x="__rjsf_additionalProperties",E="__rjsf_rootSchema",j="ui:widget",k="ui:options",O="ui:globalOptions";function C(e={},t={}){return Object.keys(e).filter((e=>0===e.indexOf("ui:"))).reduce(((t,r)=>{const o=e[r];return r===j&&n(o)?(console.error("Setting options via ui:widget object is no longer supported, use ui:options instead"),t):r===k&&n(o)?{...t,...o}:{...t,[r.substring(3)]:o}}),{...t})}function A(e,t={},r){if(!e.additionalProperties)return!1;const{expandable:n=!0}=C(t);return!1===n?n:void 0===e.maxProperties||!r||Object.keys(r).length<e.maxProperties}var P=r(11331),N=r.n(P);function D(e){const t={[m]:[],addError(e){this[m].push(e)}};if(Array.isArray(e))return e.reduce(((e,t,r)=>({...e,[r]:D(t)})),t);if(N()(e)){const r=e;return Object.keys(r).reduce(((e,t)=>({...e,[t]:D(r[t])})),t)}return t}var I=r(29132),F=r.n(I);function T(e,t){return F()(e,t,((e,t)=>{if("function"===typeof e&&"function"===typeof t)return!0}))}var R=r(58156),M=r.n(R),U=r(62193),V=r.n(U),B=r(56239),z=r(90179),q=r.n(z);function L(e,t){const r=t[e];return[q()(t,[e]),r]}function K(e,t={}){let r=e||"";if(!r.startsWith("#"))throw new Error(`Could not find a definition for ${e}.`);r=decodeURIComponent(r.substring(1));const n=B.get(t,r);if(void 0===n)throw new Error(`Could not find a definition for ${e}.`);if(n[_]){const[e,r]=L(_,n),o=K(r,t);return Object.keys(e).length>0?{...e,...o}:o}return n}var W=r(61448),H=r.n(W),G=r(98023),J=r.n(G),Z=r(23805),Y=r.n(Z),Q=r(85015),X=r.n(Q),ee=r(40860),te=r.n(ee),re=r(6638),ne=r.n(re);function oe(e,t,r){var n;if(e&&r){const o=M()(e,r);if(void 0===o)return;for(let e=0;e<t.length;e++){const a=t[e],i=M()(a,[$,r],{});if("object"!==i.type&&"array"!==i.type){if(i.const===o)return e;if(null===(n=i.enum)||void 0===n?void 0:n.includes(o))return e}}}}function ae(e,t,r,n,o){if(void 0===t)return 0;const a=oe(t,r,o);if(J()(a))return a;for(let i=0;i<r.length;i++){const a=r[i];if(o&&H()(a,[$,o])){const r=M()(t,o),s=M()(a,[$,o],{});if(e.isValid(s,r,n))return i}else if(a[$]){const r={anyOf:Object.keys(a[$]).map((e=>({required:[e]})))};let o;if(a.anyOf){const{...e}=a;e.allOf?e.allOf=e.allOf.slice():e.allOf=[],e.allOf.push(r),o=e}else o=Object.assign({},a,r);if(delete o.required,e.isValid(o,t,n))return i}else if(e.isValid(a,t,n))return i}return 0}function ie(e,t,r,n,o){return ae(e,t,r,n,o)}var se=r(2404),ce=r.n(se),le=r(63560),ue=r.n(le),de=r(69752),fe=r.n(de),pe=r(55364),me=r.n(pe),he=r(3176),ye=r.n(he),ge=r(63375),ve=r.n(ge),be=r(33978),$e=r.n(be);function we(e){let t;const r=M()(e,"discriminator.propertyName",void 0);return X()(r)?t=r:void 0!==r&&console.warn(`Expecting discriminator to be a string, got "${typeof r}" instead`),t}function Se(e){return Array.isArray(e)?"array":"string"===typeof e?"string":null==e?"null":"boolean"===typeof e?"boolean":isNaN(e)?"object"===typeof e?"object":"string":"number"}var _e=r(80299),xe=r.n(_e);function Ee(e){let{type:t}=e;return!t&&e.const?Se(e.const):!t&&e.enum?"string":t||!e.properties&&!e.additionalProperties?(Array.isArray(t)&&(t=2===t.length&&t.includes("null")?t.find((e=>"null"!==e)):t[0]),t):"object"}function je(e,t){const r=Object.assign({},e);return Object.keys(t).reduce(((r,o)=>{const a=e?e[o]:{},i=t[o];return e&&o in e&&n(i)?r[o]=je(a,i):e&&t&&("object"===Ee(e)||"object"===Ee(t))&&o===w&&Array.isArray(a)&&Array.isArray(i)?r[o]=xe()(a,i):r[o]=i,r}),r)}function ke(e,t,r={},n){return Pe(e,t,r,n)[0]}function Oe(e){return e.reduce(((e,t)=>t.length>1?t.flatMap((t=>ne()(e.length,(r=>[...e[r]].concat(t))))):(e.forEach((e=>e.push(t[0]))),e)),[[]])}function Ce(e,t,r,n,o,a){const i=Ae(t,r,o);return i!==t?Pe(e,i,r,a,n,o):[t]}function Ae(e,t,r){if(!n(e))return e;let o=e;if(_ in o){const{$ref:e,...n}=o;if(r.includes(e))return o;r.push(e);o={...K(e,t),...n}}if($ in o){const e=[],n=fe()(o[$],((n,o,a)=>{const i=[...r];n[a]=Ae(o,t,i),e.push(i)}),{});me()(r,ve()(ye()(e))),o={...o,[$]:n}}return g in o&&!Array.isArray(o.items)&&"boolean"!==typeof o.items&&(o={...o,items:Ae(o.items,t,r)}),ce()(e,o)?e:o}function Pe(e,t,r,o,a=!1,u=[]){if(!n(t))return[{}];const d=function(e,t,r,n,o,a){const i=Ce(e,t,r,n,o,a);if(i.length>1||i[0]!==t)return i;if(f in t)return Ne(e,t,r,n,o,a).flatMap((t=>Pe(e,t,r,a,n,o)));if(c in t&&Array.isArray(t.allOf))return Oe(t.allOf.map((t=>Pe(e,t,r,a,n,o)))).map((e=>({...t,allOf:e})));return[t]}(e,t,r,a,u,o);return d.flatMap((t=>{let d=t;if(y in d)return function(e,t,r,n,o,a){const{if:i,then:s,else:c,...l}=t,u=e.isValid(i,a||{},r);let d=[l],f=[];if(n)s&&"boolean"!==typeof s&&(f=f.concat(Pe(e,s,r,a,n,o))),c&&"boolean"!==typeof c&&(f=f.concat(Pe(e,c,r,a,n,o)));else{const t=u?s:c;t&&"boolean"!==typeof t&&(f=f.concat(Pe(e,t,r,a,n,o)))}return f.length&&(d=f.map((e=>je(l,e)))),d.flatMap((t=>Pe(e,t,r,a,n,o)))}(e,d,r,a,u,o);if(c in d){if(a){const{allOf:e,...t}=d;return[...e,t]}try{d=$e()(d,{deep:!1})}catch(f){console.warn("could not merge subschemas in allOf:\n",f);const{allOf:e,...t}=d;return t}}return s in d&&!1!==d.additionalProperties?function(e,t,r,o){const a={...t,properties:{...t.properties}},s=o&&n(o)?o:{};return Object.keys(s).forEach((t=>{if(t in a.properties)return;let n={};n="boolean"!==typeof a.additionalProperties?_ in a.additionalProperties?ke(e,{$ref:M()(a.additionalProperties,[_])},r,s):"type"in a.additionalProperties?{...a.additionalProperties}:l in a.additionalProperties||b in a.additionalProperties?{type:"object",...a.additionalProperties}:{type:Se(M()(s,[t]))}:{type:Se(M()(s,[t]))},a.properties[t]=n,ue()(a.properties,[t,i],!0)})),a}(e,d,r,o):d}))}function Ne(e,t,r,n,o,a){const{dependencies:i,...s}=t,c=function(e,t,r,n,o){let a;const{oneOf:i,anyOf:s,...c}=t;if(Array.isArray(i)?a=i:Array.isArray(s)&&(a=s),a){const i=void 0===o&&n?{}:o,s=we(t);a=a.map((e=>Ae(e,r,[])));const l=ie(e,i,a,r,s);if(n)return a.map((e=>je(c,e)));t=je(c,a[l])}return[t]}(e,s,r,n,a);return c.flatMap((t=>De(e,i,t,r,n,o,a)))}function De(e,t,r,o,a,i,s){let c=[r];for(const l in t){if(!a&&void 0===M()(s,[l]))continue;if(r.properties&&!(l in r.properties))continue;const[u,d]=L(l,t);return Array.isArray(d)?c[0]=Ie(r,d):n(d)&&(c=Fe(e,r,o,l,d,a,i,s)),c.flatMap((t=>De(e,u,t,o,a,i,s)))}return c}function Ie(e,t){if(!t)return e;const r=Array.isArray(e.required)?Array.from(new Set([...e.required,...t])):t;return{...e,required:r}}function Fe(e,t,r,n,o,a,i,s){return Pe(e,o,r,s,a,i).flatMap((o=>{const{oneOf:c,...l}=o;if(t=je(t,l),void 0===c)return t;return Oe(c.map((t=>"boolean"!==typeof t&&_ in t?Ce(e,t,r,a,i,s):[t]))).flatMap((o=>function(e,t,r,n,o,a,i,s){const c=o.filter((t=>{if("boolean"===typeof t||!t||!t.properties)return!1;const{[n]:o}=t.properties;if(o){const t={type:"object",properties:{[n]:o}};return e.isValid(t,s,r)||a}return!1}));if(!a&&1!==c.length)return console.warn("ignoring oneOf in dependencies because there isn't exactly one subschema that is valid"),[t];return c.flatMap((o=>{const c=o,[l]=L(n,c.properties),u={...c,properties:l};return Pe(e,u,r,s,a,i).map((e=>je(t,e)))}))}(e,t,r,n,o,a,i,s)))}))}const Te={type:"object",$id:"_$junk_option_schema_id$_",properties:{__not_really_there__:{type:"number"}}};function Re(e,t,r,n={}){let o=0;return r&&(Y()(r.properties)?o+=te()(r.properties,((r,o,a)=>{const i=M()(n,a);if("boolean"===typeof o)return r;if(H()(o,_)){const n=ke(e,o,t,i);return r+Re(e,t,n,i||{})}if((H()(o,b)||H()(o,l))&&i){const n=H()(o,b)?b:l,a=we(o);return r+Me(e,t,i,M()(o,n),-1,a)}if("object"===o.type)return r+Re(e,t,o,i||{});if(o.type===Se(i)){let e=r+1;return o.default?e+=i===o.default?1:-1:o.const&&(e+=i===o.const?1:-1),e}return r}),0):X()(r.type)&&r.type===Se(n)&&(o+=1)),o}function Me(e,t,r,n,o=-1,a){const i=n.map((e=>Ae(e,t,[]))),s=oe(r,n,a);if(J()(s))return s;const c=i.reduce(((n,o,i)=>(1===ie(e,r,[Te,o],t,a)&&n.push(i),n)),[]);if(1===c.length)return c[0];c.length||ne()(i.length,(e=>c.push(e)));const l=new Set,{bestIndex:u}=c.reduce(((n,o)=>{const{bestScore:a}=n,s=i[o],c=Re(e,t,s,r);return l.add(c),c>a?{bestIndex:o,bestScore:c}:n}),{bestIndex:o,bestScore:0});return 1===l.size&&o>=0?o:u}function Ue(e){return Array.isArray(e.items)&&e.items.length>0&&e.items.every((e=>n(e)))}function Ve(e,t,r=!1){if(Array.isArray(t)){const n=Array.isArray(e)?e:[],o=t.map(((e,t)=>n[t]?Ve(n[t],e,r):e));return r&&o.length<n.length&&o.push(...n.slice(o.length)),o}if(n(t)){const n=Object.assign({},e);return Object.keys(t).reduce(((n,o)=>(n[o]=Ve(e?M()(e,o):{},M()(t,o),r),n)),n)}return t}function Be(e,t,r=!1){return Object.keys(t).reduce(((o,a)=>{const i=e?e[a]:{},s=t[a];if(e&&a in e&&n(s))o[a]=Be(i,s,r);else if(r&&Array.isArray(i)&&Array.isArray(s)){let e=s;"preventDuplicates"===r&&(e=s.reduce(((e,t)=>(i.includes(t)||e.push(t),e)),[])),o[a]=i.concat(e)}else o[a]=s;return o}),Object.assign({},e))}function ze(e,t,r={}){const n=ke(e,t,r,void 0),o=n.oneOf||n.anyOf;return!!Array.isArray(n.enum)||!!Array.isArray(o)&&o.every((e=>"boolean"!==typeof e&&function(e){return Array.isArray(e.enum)&&1===e.enum.length||u in e}(e)))}function qe(e,t,r){return!(!t.uniqueItems||!t.items||"boolean"===typeof t.items)&&ze(e,t.items,r)}var Le;function Ke(e,t=Le.Ignore,r=-1){if(r>=0){if(Array.isArray(e.items)&&r<e.items.length){const t=e.items[r];if("boolean"!==typeof t)return t}}else if(e.items&&!Array.isArray(e.items)&&"boolean"!==typeof e.items)return e.items;return t!==Le.Ignore&&n(e.additionalItems)?e.additionalItems:{}}function We(e,t,r,o,a,i=[],s={}){const{emptyObjectFields:c="populateAllDefaults"}=s;if(o)e[t]=r;else if("skipDefaults"!==c)if(n(r)){const n=void 0===a?i.includes(t):a;V()(r)&&!i.includes(t)||!n&&"populateRequiredDefaults"===c||(e[t]=r)}else void 0===r||"populateAllDefaults"!==c&&!i.includes(t)||(e[t]=r)}function He(e,t,{parentDefaults:r,rawFormData:o,rootSchema:a={},includeUndefinedValues:i=!1,_recurseList:s=[],experimental_defaultFormStateBehavior:u,required:p}={}){var m,h;const y=n(o)?o:{},g=n(t)?t:{};let v=r,w=null,S=s;if(n(v)&&n(g.default))v=Be(v,g.default);else if(d in g)v=g.default;else if(_ in g){const e=g[_];s.includes(e)||(S=s.concat(e),w=K(e,a))}else if(f in g){w=Ne(e,g,a,!1,[],y)[0]}else if(Ue(g))v=g.items.map(((t,n)=>He(e,t,{rootSchema:a,includeUndefinedValues:i,_recurseList:s,experimental_defaultFormStateBehavior:u,parentDefaults:Array.isArray(r)?r[n]:void 0,rawFormData:y,required:p})));else if(b in g){const{oneOf:t,...r}=g;if(0===t.length)return;const n=we(g);w=t[Me(e,a,V()(y)?void 0:y,t,0,n)],w=je(r,w)}else if(l in g){const{anyOf:t,...r}=g;if(0===t.length)return;const n=we(g);w=t[Me(e,a,V()(y)?void 0:y,t,0,n)],w=je(r,w)}if(w)return He(e,w,{rootSchema:a,includeUndefinedValues:i,_recurseList:S,experimental_defaultFormStateBehavior:u,parentDefaults:v,rawFormData:y,required:p});switch(void 0===v&&(v=g.default),Ee(g)){case"object":{const t="populateDefaults"===(null===u||void 0===u?void 0:u.allOf)&&c in g?ke(e,g,a,y):g,r=Object.keys(t.properties||{}).reduce(((r,n)=>{var o;return We(r,n,He(e,M()(t,[$,n]),{rootSchema:a,_recurseList:s,experimental_defaultFormStateBehavior:u,includeUndefinedValues:!0===i,parentDefaults:M()(v,[n]),rawFormData:M()(y,[n]),required:null===(o=t.required)||void 0===o?void 0:o.includes(n)}),i,p,t.required,u),r}),{});if(t.additionalProperties){const o=n(t.additionalProperties)?t.additionalProperties:{},c=new Set;n(v)&&Object.keys(v).filter((e=>!t.properties||!t.properties[e])).forEach((e=>c.add(e)));const l=[];Object.keys(y).filter((e=>!t.properties||!t.properties[e])).forEach((e=>{c.add(e),l.push(e)})),c.forEach((n=>{var c;const d=He(e,o,{rootSchema:a,_recurseList:s,experimental_defaultFormStateBehavior:u,includeUndefinedValues:!0===i,parentDefaults:M()(v,[n]),rawFormData:M()(y,[n]),required:null===(c=t.required)||void 0===c?void 0:c.includes(n)});We(r,n,d,i,p,l)}))}return r}case"array":{const t="never"===(null===(m=null===u||void 0===u?void 0:u.arrayMinItems)||void 0===m?void 0:m.populate),r="requiredOnly"===(null===(h=null===u||void 0===u?void 0:u.arrayMinItems)||void 0===h?void 0:h.populate);if(Array.isArray(v)&&(v=v.map(((t,r)=>{const n=Ke(g,Le.Fallback,r);return He(e,n,{rootSchema:a,_recurseList:s,experimental_defaultFormStateBehavior:u,parentDefaults:t,required:p})}))),Array.isArray(o)){const r=Ke(g);v=t?o:o.map(((t,n)=>He(e,r,{rootSchema:a,_recurseList:s,experimental_defaultFormStateBehavior:u,rawFormData:t,parentDefaults:M()(v,[n]),required:p})))}if(t)return null!==v&&void 0!==v?v:[];if(r&&!p)return v||void 0;const n=Array.isArray(v)?v.length:0;if(!g.minItems||qe(e,g,a)||g.minItems<=n)return v||[];const i=v||[],c=Ke(g,Le.Invert),l=c.default,d=new Array(g.minItems-n).fill(He(e,c,{parentDefaults:l,rootSchema:a,_recurseList:s,experimental_defaultFormStateBehavior:u,required:p}));return i.concat(d)}}return v}function Ge(e,t,r,o,a=!1,i){if(!n(t))throw new Error("Invalid schema: "+t);const s=He(e,ke(e,t,o,r),{rootSchema:o,includeUndefinedValues:a,experimental_defaultFormStateBehavior:i,rawFormData:r});if(void 0===r||null===r||"number"===typeof r&&isNaN(r))return s;const{mergeExtraDefaults:c}=(null===i||void 0===i?void 0:i.arrayMinItems)||{};return n(r)||Array.isArray(r)?Ve(s,r,c):r}function Je(e={}){return"widget"in C(e)&&"hidden"!==C(e).widget}function Ze(e,t,r={},n){if("files"===r[j])return!0;if(t.items){const r=ke(e,t.items,n);return"string"===r.type&&"data-url"===r.format}return!1}!function(e){e[e.Ignore=0]="Ignore",e[e.Invert=1]="Invert",e[e.Fallback=2]="Fallback"}(Le||(Le={}));const Ye=Symbol("no Value");function Qe(e,t,r,n,o={}){let a;if(H()(r,$)){const i={};if(H()(n,$)){const e=M()(n,$,{});Object.keys(e).forEach((e=>{H()(o,e)&&(i[e]=void 0)}))}const s=Object.keys(M()(r,$,{})),c={};s.forEach((a=>{const s=M()(o,a);let l=M()(n,[$,a],{}),u=M()(r,[$,a],{});H()(l,_)&&(l=ke(e,l,t,s)),H()(u,_)&&(u=ke(e,u,t,s));const d=M()(l,"type"),f=M()(u,"type");if(!d||d===f)if(H()(i,a)&&delete i[a],"object"===f||"array"===f&&Array.isArray(s)){const r=Qe(e,t,u,l,s);void 0===r&&"array"!==f||(c[a]=r)}else{const e=M()(u,"default",Ye),t=M()(l,"default",Ye);e!==Ye&&e!==s&&(t===s?i[a]=e:!0===M()(u,"readOnly")&&(i[a]=void 0));const r=M()(u,"const",Ye),n=M()(l,"const",Ye);r!==Ye&&r!==s&&(i[a]=n===s?r:void 0)}})),a={..."string"==typeof o||Array.isArray(o)?void 0:o,...i,...c}}else if("array"===M()(n,"type")&&"array"===M()(r,"type")&&Array.isArray(o)){let i=M()(n,"items"),s=M()(r,"items");if("object"!==typeof i||"object"!==typeof s||Array.isArray(i)||Array.isArray(s))"boolean"===typeof i&&"boolean"===typeof s&&i===s&&(a=o);else{H()(i,_)&&(i=ke(e,i,t,o)),H()(s,_)&&(s=ke(e,s,t,o));const n=M()(i,"type"),c=M()(s,"type");if(!n||n===c){const n=M()(r,"maxItems",-1);a="object"===c?o.reduce(((r,o)=>{const a=Qe(e,t,s,i,o);return void 0!==a&&(n<0||r.length<n)&&r.push(a),r}),[]):n>0&&o.length>n?o.slice(0,n):o}}}return a}function Xe(e,t,r,o,a,i,s,l=[]){if(_ in t||f in t||c in t){const n=ke(e,t,i,s);if(-1===l.findIndex((e=>ce()(e,n))))return Xe(e,n,r,o,a,i,s,l.concat(n))}if(g in t&&!M()(t,[g,_]))return Xe(e,M()(t,g),r,o,a,i,s,l);const u={$id:a||r};if("object"===Ee(t)&&$ in t)for(const c in t.properties){const a=M()(t,[$,c]),d=u[h]+o+c;u[c]=Xe(e,n(a)?a:{},r,o,d,i,M()(s,[c]),l)}return u}function et(e,t,r,n,o,a="root",i="_"){return Xe(e,t,a,i,r,n,o)}function tt(e,t,r,n,o,a=[]){if(_ in t||f in t||c in t){const i=ke(e,t,n,o);if(-1===a.findIndex((e=>ce()(e,i))))return tt(e,i,r,n,o,a.concat(i))}let i={[v]:r.replace(/^\./,"")};if(b in t||l in t){const s=b in t?t.oneOf:t.anyOf,c=we(t),l=s[Me(e,n,o,s,0,c)];i={...i,...tt(e,l,r,n,o,a)}}if(s in t&&!1!==t[s]&&ue()(i,x,!0),g in t&&Array.isArray(o)){const{items:s,additionalItems:c}=t;Array.isArray(s)?o.forEach(((t,o)=>{s[o]?i[o]=tt(e,s[o],`${r}.${o}`,n,t,a):c?i[o]=tt(e,c,`${r}.${o}`,n,t,a):console.warn(`Unable to generate path schema for "${r}.${o}". No schema defined for it`)})):o.forEach(((t,o)=>{i[o]=tt(e,s,`${r}.${o}`,n,t,a)}))}else if($ in t)for(const s in t.properties){const c=M()(t,[$,s]);i[s]=tt(e,c,`${r}.${s}`,n,M()(o,[s]),a)}return i}function rt(e,t,r="",n,o){return tt(e,t,r,n,o)}class nt{constructor(e,t,r){this.rootSchema=t,this.validator=e,this.experimental_defaultFormStateBehavior=r}getValidator(){return this.validator}doesSchemaUtilsDiffer(e,t,r={}){return!(!e||!t)&&(this.validator!==e||!T(this.rootSchema,t)||!T(this.experimental_defaultFormStateBehavior,r))}getDefaultFormState(e,t,r=!1){return Ge(this.validator,e,t,this.rootSchema,r,this.experimental_defaultFormStateBehavior)}getDisplayLabel(e,t,r){return function(e,t,r={},n,o){const a=C(r,o),{label:i=!0}=a;let s=!!i;const c=Ee(t);return"array"===c&&(s=qe(e,t,n)||Ze(e,t,r,n)||Je(r)),"object"===c&&(s=!1),"boolean"!==c||r[j]||(s=!1),r["ui:field"]&&(s=!1),s}(this.validator,e,t,this.rootSchema,r)}getClosestMatchingOption(e,t,r,n){return Me(this.validator,this.rootSchema,e,t,r,n)}getFirstMatchingOption(e,t,r){return ie(this.validator,e,t,this.rootSchema,r)}getMatchingOption(e,t,r){return ae(this.validator,e,t,this.rootSchema,r)}isFilesArray(e,t){return Ze(this.validator,e,t,this.rootSchema)}isMultiSelect(e){return qe(this.validator,e,this.rootSchema)}isSelect(e){return ze(this.validator,e,this.rootSchema)}mergeValidationData(e,t){return function(e,t,r){if(!r)return t;const{errors:n,errorSchema:o}=t;let a=e.toErrorList(r),i=r;return V()(o)||(i=Be(o,r,!0),a=[...n].concat(a)),{errorSchema:i,errors:a}}(this.validator,e,t)}retrieveSchema(e,t){return ke(this.validator,e,this.rootSchema,t)}sanitizeDataForNewSchema(e,t,r){return Qe(this.validator,this.rootSchema,e,t,r)}toIdSchema(e,t,r,n="root",o="_"){return et(this.validator,e,t,this.rootSchema,r,n,o)}toPathSchema(e,t,r){return rt(this.validator,e,t,this.rootSchema,r)}}function ot(e,t,r={}){return new nt(e,t,r)}function at(e){var t;if(-1===e.indexOf("data:"))throw new Error("File is invalid: URI must be a dataURI");const r=e.slice(5).split(";base64,");if(2!==r.length)throw new Error("File is invalid: dataURI must be base64");const[n,o]=r,[a,...i]=n.split(";"),s=a||"",c=decodeURI((null===(t=i.map((e=>e.split("="))).find((([e])=>"name"===e)))||void 0===t?void 0:t[1])||"unknown");try{const e=atob(o),t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return{blob:new window.Blob([new Uint8Array(t)],{type:s}),name:c}}catch(l){throw new Error("File is invalid: "+l.message)}}function it(e,t){return function(e,t){let r=e;if(Array.isArray(t)){const e=r.split(/(%\d)/);t.forEach(((t,r)=>{const n=e.findIndex((e=>e===`%${r+1}`));n>=0&&(e[n]=t)})),r=e.join("")}return r}(e,t)}function st(e,t=[],r){if(Array.isArray(e))return e.map((e=>st(e,t))).filter((e=>e!==r));const n=""===e||null===e?-1:Number(e),o=t[n];return o?o.value:r}function ct(e,t,r=[]){const n=st(e,r);return Array.isArray(t)?t.filter((e=>!ce()(e,n))):ce()(n,t)?void 0:t}function lt(e,t){return Array.isArray(t)?t.some((t=>ce()(t,e))):ce()(t,e)}function ut(e,t=[],r=!1){const n=t.map(((t,r)=>lt(t.value,e)?String(r):void 0)).filter((e=>"undefined"!==typeof e));return r?n:n[0]}var dt=r(69843),ft=r.n(dt);function pt(e,t,r=[]){const n=st(e,r);if(!ft()(n)){const e=r.findIndex((e=>n===e.value)),o=r.map((({value:e})=>e));return t.slice(0,e).concat(n,t.slice(e)).sort(((e,t)=>Number(o.indexOf(e)>o.indexOf(t))))}return t}var mt=r(88055),ht=r.n(mt);class yt{constructor(e){this.errorSchema={},this.resetAllErrors(e)}get ErrorSchema(){return this.errorSchema}getOrCreateErrorBlock(e){let t=Array.isArray(e)&&e.length>0||"string"===typeof e?M()(this.errorSchema,e):this.errorSchema;return!t&&e&&(t={},ue()(this.errorSchema,e,t)),t}resetAllErrors(e){return this.errorSchema=e?ht()(e):{},this}addErrors(e,t){const r=this.getOrCreateErrorBlock(t);let n=M()(r,m);return Array.isArray(n)||(n=[],r[m]=n),Array.isArray(e)?n.push(...e):n.push(e),this}setErrors(e,t){const r=this.getOrCreateErrorBlock(t),n=Array.isArray(e)?[...e]:[e];return ue()(r,m,n),this}clearErrors(e){const t=this.getOrCreateErrorBlock(e);return ue()(t,m,[]),this}}function gt(e,t,r=[1900,(new Date).getFullYear()+2],n="YMD"){const{day:o,month:a,year:i,hour:s,minute:c,second:l}=e,u={type:"day",range:[1,31],value:o},d={type:"month",range:[1,12],value:a},f={type:"year",range:r,value:i},p=[];switch(n){case"MDY":p.push(d,u,f);break;case"DMY":p.push(u,d,f);break;default:p.push(f,d,u)}return t&&p.push({type:"hour",range:[0,23],value:s},{type:"minute",range:[0,59],value:c},{type:"second",range:[0,59],value:l}),p}function vt(e){const t={};return e.multipleOf&&(t.step=e.multipleOf),(e.minimum||0===e.minimum)&&(t.min=e.minimum),(e.maximum||0===e.maximum)&&(t.max=e.maximum),t}function bt(e,t,r={},n=!0){const o={type:t||"text",...vt(e)};return r.inputType?o.type=r.inputType:t||("number"===e.type?(o.type="number",n&&void 0===o.step&&(o.step="any")):"integer"===e.type&&(o.type="number",void 0===o.step&&(o.step=1))),r.autocomplete&&(o.autoComplete=r.autocomplete),o}const $t={props:{disabled:!1},submitText:"Submit",norender:!1};function wt(e={}){const t=C(e);if(t&&t[S]){const e=t[S];return{...$t,...e}}return $t}function St(e,t,r={}){const{templates:n}=t;return"ButtonTemplates"===e?n[e]:r[e]||n[e]}var _t=r(74848),xt=r(96540),Et=r(44363);const jt={boolean:{checkbox:"CheckboxWidget",radio:"RadioWidget",select:"SelectWidget",hidden:"HiddenWidget"},string:{text:"TextWidget",password:"PasswordWidget",email:"EmailWidget",hostname:"TextWidget",ipv4:"TextWidget",ipv6:"TextWidget",uri:"URLWidget","data-url":"FileWidget",radio:"RadioWidget",select:"SelectWidget",textarea:"TextareaWidget",hidden:"HiddenWidget",date:"DateWidget",datetime:"DateTimeWidget","date-time":"DateTimeWidget","alt-date":"AltDateWidget","alt-datetime":"AltDateTimeWidget",time:"TimeWidget",color:"ColorWidget",file:"FileWidget"},number:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},integer:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},array:{select:"SelectWidget",checkboxes:"CheckboxesWidget",files:"FileWidget",hidden:"HiddenWidget"}};function kt(e,t,r={}){const n=Ee(e);if("function"===typeof t||t&&Et.isForwardRef((0,xt.createElement)(t))||Et.isMemo(t))return function(e){let t=M()(e,"MergedWidget");if(!t){const r=e.defaultProps&&e.defaultProps.options||{};t=({options:t,...n})=>(0,_t.jsx)(e,{options:{...r,...t},...n}),ue()(e,"MergedWidget",t)}return t}(t);if("string"!==typeof t)throw new Error("Unsupported widget definition: "+typeof t);if(t in r){return kt(e,r[t],r)}if("string"===typeof n){if(!(n in jt))throw new Error(`No widget for type '${n}'`);if(t in jt[n]){return kt(e,r[jt[n][t]],r)}}throw new Error(`No widget '${t}' for type '${n}'`)}function Ot(e){const t=new Set;return JSON.stringify(e,((e,r)=>(t.add(e),r))),function(e){let t=0;for(let r=0;r<e.length;r+=1)t=(t<<5)-t+e.charCodeAt(r),t&=t;return t.toString(16)}(JSON.stringify(e,Array.from(t).sort()))}function Ct(e,t,r={}){try{return kt(e,t,r),!0}catch(n){const e=n;if(e.message&&(e.message.startsWith("No widget")||e.message.startsWith("Unsupported widget")))return!1;throw n}}function At(e,t){return`${X()(e)?e:e[h]}__${t}`}function Pt(e){return At(e,"description")}function Nt(e){return At(e,"error")}function Dt(e){return At(e,"examples")}function It(e){return At(e,"help")}function Ft(e){return At(e,"title")}function Tt(e,t=!1){const r=t?` ${Dt(e)}`:"";return`${Nt(e)} ${Pt(e)} ${It(e)}${r}`}function Rt(e,t){return`${e}-${t}`}function Mt(e,t,r){return t?r:e}function Ut(e){return e?new Date(e).toJSON():void 0}function Vt(e){const t=e;if(t.enumNames,e.enum)return e.enum.map(((e,r)=>({label:t.enumNames&&t.enumNames[r]||String(e),value:e})));const r=e.oneOf||e.anyOf;return r&&r.map((e=>{const t=e,r=function(e){if(p in e&&Array.isArray(e.enum)&&1===e.enum.length)return e.enum[0];if(u in e)return e.const;throw new Error("schema cannot be inferred as a constant")}(t);return{schema:t,label:t.title||String(r),value:r}}))}function Bt(e,t){if(!Array.isArray(t))return e;const r=e=>e.reduce(((e,t)=>(e[t]=!0,e)),{}),n=r(e),o=t.filter((e=>"*"===e||n[e])),a=r(o),i=e.filter((e=>!a[e])),s=o.indexOf("*");if(-1===s){if(i.length)throw new Error("uiSchema order list does not contain "+((c=i).length>1?`properties '${c.join("', '")}'`:`property '${c[0]}'`));return o}var c;if(s!==o.lastIndexOf("*"))throw new Error("uiSchema order list contains more than one wildcard item");const l=[...o];return l.splice(s,1,...i),l}function zt(e,t){let r=String(e);for(;r.length<t;)r="0"+r;return r}function qt(e,t=!0){if(!e)return{year:-1,month:-1,day:-1,hour:t?-1:0,minute:t?-1:0,second:t?-1:0};const r=new Date(e);if(Number.isNaN(r.getTime()))throw new Error("Unable to parse date "+e);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:t?r.getUTCHours():0,minute:t?r.getUTCMinutes():0,second:t?r.getUTCSeconds():0}}function Lt(e){if(e.const)return!0;if(e.enum&&1===e.enum.length&&!0===e.enum[0])return!0;if(e.anyOf&&1===e.anyOf.length)return Lt(e.anyOf[0]);if(e.oneOf&&1===e.oneOf.length)return Lt(e.oneOf[0]);if(e.allOf){const t=e=>Lt(e);return e.allOf.some(t)}return!1}function Kt(e,t,r){const{props:n,state:o}=e;return!T(n,t)||!T(o,r)}function Wt(e,t=!0){const{year:r,month:n,day:o,hour:a=0,minute:i=0,second:s=0}=e,c=Date.UTC(r,n-1,o,a,i,s),l=new Date(c).toJSON();return t?l:l.slice(0,10)}function Ht(e,t=[]){if(!e)return[];let r=[];return m in e&&(r=r.concat(e[m].map((e=>{const r=`.${t.join(".")}`;return{property:r,message:e,stack:`${r} ${e}`}})))),Object.keys(e).reduce(((r,n)=>{if(n!==m){const o=e[n];N()(o)&&(r=r.concat(Ht(o,[...t,n])))}return r}),r)}var Gt=r(42072),Jt=r.n(Gt);function Zt(e){const t=new yt;return e.length&&e.forEach((e=>{const{property:r,message:n}=e,o="."===r?[]:Jt()(r);o.length>0&&""===o[0]&&o.splice(0,1),n&&t.addErrors(n,o)})),t.ErrorSchema}function Yt(e){return Object.keys(e).reduce(((t,r)=>{if("addError"===r)return t;{const n=e[r];return N()(n)?{...t,[r]:Yt(n)}:{...t,[r]:n}}}),{})}function Qt(e){if(!e)return"";const t=new Date(e);return`${zt(t.getFullYear(),4)}-${zt(t.getMonth()+1,2)}-${zt(t.getDate(),2)}T${zt(t.getHours(),2)}:${zt(t.getMinutes(),2)}:${zt(t.getSeconds(),2)}.${zt(t.getMilliseconds(),3)}`}function Xt(e,t){if(!t)return e;const{errors:r,errorSchema:n}=e;let o=Ht(t),a=t;return V()(n)||(a=Be(n,t,!0),o=[...r].concat(o)),{errorSchema:a,errors:o}}function er(e){return Array.isArray(e)?function(e){for(let t=0;t<e.length;t++)e[t]=er(e[t]);return e}([...e]):Y()(e)?function(e){for(const t in e){const r=e,n=r[t];t===_&&"string"===typeof n&&n.startsWith("#")?r[t]=E+n:r[t]=er(n)}return e}({...e}):e}var tr;!function(e){e.ArrayItemTitle="Item",e.MissingItems="Missing items definition",e.YesLabel="Yes",e.NoLabel="No",e.CloseLabel="Close",e.ErrorsLabel="Errors",e.NewStringDefault="New Value",e.AddButton="Add",e.AddItemButton="Add Item",e.CopyButton="Copy",e.MoveDownButton="Move down",e.MoveUpButton="Move up",e.RemoveButton="Remove",e.NowLabel="Now",e.ClearLabel="Clear",e.AriaDateLabel="Select a date",e.PreviewLabel="Preview",e.DecrementAriaLabel="Decrease value by 1",e.IncrementAriaLabel="Increase value by 1",e.UnknownFieldType="Unknown field type %1",e.OptionPrefix="Option %1",e.TitleOptionPrefix="%1 option %2",e.KeyLabel="%1 Key",e.InvalidObjectField='Invalid "%1" object field configuration: <em>%2</em>.',e.UnsupportedField="Unsupported field schema.",e.UnsupportedFieldWithId="Unsupported field schema for field <code>%1</code>.",e.UnsupportedFieldWithReason="Unsupported field schema: <em>%1</em>.",e.UnsupportedFieldWithIdAndReason="Unsupported field schema for field <code>%1</code>: <em>%2</em>.",e.FilesInfo="<strong>%1</strong> (%2, %3 bytes)"}(tr||(tr={}));r(39754)},74810:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>g});var n=r(45576),o=r(63282),a=r.n(o),i=r(68182),s=r.n(i),c=r(23805),l=r.n(c);const u={allErrors:!0,multipleOfPrecision:8,strict:!1,verbose:!0},d=/^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/,f=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;var p=r(58156),m=r.n(p);function h(e,t,r,o,a,i,s){const{validationError:c}=t;let l=function(e=[],t){return e.map((e=>{const{instancePath:r,keyword:o,params:a,schemaPath:i,parentSchema:s,...c}=e;let{message:l=""}=c,u=r.replace(/\//g,"."),d=`${u} ${l}`.trim();if("missingProperty"in a){u=u?`${u}.${a.missingProperty}`:a.missingProperty;const e=a.missingProperty,r=(0,n.$R)(m()(t,`${u.replace(/^\./,"")}`)).title;if(r)l=l.replace(e,r);else{const t=m()(s,[n.s1,e,"title"]);t&&(l=l.replace(e,t))}d=l}else{const e=(0,n.$R)(m()(t,`${u.replace(/^\./,"")}`)).title;if(e)d=`'${e}' ${l}`.trim();else{const e=null===s||void 0===s?void 0:s.title;e&&(d=`'${e}' ${l}`.trim())}}return{name:o,property:u,message:l,params:a,stack:d,schemaPath:i}}))}(t.errors,s);c&&(l=[...l,{stack:c.message}]),"function"===typeof i&&(l=i(l,s));let u=(0,n.MD)(l);if(c&&(u={...u,$schema:{__errors:[c.message]}}),"function"!==typeof a)return{errors:l,errorSchema:u};const d=(0,n.NV)(e,o,r,o,!0),f=a(d,(0,n.JF)(d),s),p=(0,n.fV)(f);return(0,n.k6)({errors:l,errorSchema:u},p)}class y{constructor(e,t){const{additionalMetaSchemas:r,customFormats:o,ajvOptionsOverrides:i,ajvFormatOptions:c,AjvClass:p}=e;this.ajv=function(e,t,r={},o,i=a()){const c=new i({...u,...r});return o?s()(c,o):!1!==o&&s()(c),c.addFormat("data-url",f),c.addFormat("color",d),c.addKeyword(n.Rr),c.addKeyword(n.yB),Array.isArray(e)&&c.addMetaSchema(e),l()(t)&&Object.keys(t).forEach((e=>{c.addFormat(e,t[e])})),c}(r,o,i,c,p),this.localizer=t}toErrorList(e,t=[]){return(0,n.SL)(e,t)}rawValidation(e,t){let r,o,a;e[n.K0]&&(o=this.ajv.getSchema(e[n.K0]));try{void 0===o&&(o=this.ajv.compile(e)),o(t)}catch(i){r=i}return o&&("function"===typeof this.localizer&&this.localizer(o.errors),a=o.errors||void 0,o.errors=null),{errors:a,validationError:r}}validateFormData(e,t,r,n,o){return h(this,this.rawValidation(t,e),e,t,r,n,o)}isValid(e,t,r){var o,a;const i=null!==(o=r[n.K0])&&void 0!==o?o:n.at;try{this.ajv.addSchema(r,i);const o=(0,n.vh)(e),s=null!==(a=o[n.K0])&&void 0!==a?a:(0,n.$K)(o);let c;c=this.ajv.getSchema(s),void 0===c&&(c=this.ajv.addSchema(o,s).getSchema(s)||this.ajv.compile(o));return c(t)}catch(s){return console.warn("Error encountered compiling schema:",s),!1}finally{this.ajv.removeSchema(i)}}}r(2404);const g=function(e={},t){return new y(e,t)}()},14018:(e,t)=>{"use strict";function r(e,t){return{validate:e,compare:t}}Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0,t.fullFormats={date:r(a,i),time:r(c,l),"date-time":r((function(e){const t=e.split(u);return 2===t.length&&a(t[0])&&c(t[1],!0)}),d),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:function(e){return f.test(e)&&p.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:function(e){if(v.test(e))return!1;try{return new RegExp(e),!0}catch(t){return!1}},uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:function(e){return m.lastIndex=0,m.test(e)},int32:{type:"number",validate:function(e){return Number.isInteger(e)&&e<=y&&e>=h}},int64:{type:"number",validate:function(e){return Number.isInteger(e)}},float:{type:"number",validate:g},double:{type:"number",validate:g},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:r(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,i),time:r(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"date-time":r(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,d),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},t.formatNames=Object.keys(t.fullFormats);const n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,o=[0,31,28,31,30,31,30,31,31,30,31,30,31];function a(e){const t=n.exec(e);if(!t)return!1;const r=+t[1],a=+t[2],i=+t[3];return a>=1&&a<=12&&i>=1&&i<=(2===a&&function(e){return e%4===0&&(e%100!==0||e%400===0)}(r)?29:o[a])}function i(e,t){if(e&&t)return e>t?1:e<t?-1:0}const s=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;function c(e,t){const r=s.exec(e);if(!r)return!1;const n=+r[1],o=+r[2],a=+r[3],i=r[5];return(n<=23&&o<=59&&a<=59||23===n&&59===o&&60===a)&&(!t||""!==i)}function l(e,t){if(!e||!t)return;const r=s.exec(e),n=s.exec(t);return r&&n?(e=r[1]+r[2]+r[3]+(r[4]||""))>(t=n[1]+n[2]+n[3]+(n[4]||""))?1:e<t?-1:0:void 0}const u=/t|\s/i;function d(e,t){if(!e||!t)return;const[r,n]=e.split(u),[o,a]=t.split(u),s=i(r,o);return void 0!==s?s||l(n,a):void 0}const f=/\/|:/,p=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;const m=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;const h=-(2**31),y=2**31-1;function g(){return!0}const v=/[^\\]\\Z/},68182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(14018),o=r(26461),a=r(99029),i=new a.Name("fullFormats"),s=new a.Name("fastFormats"),c=(e,t={keywords:!0})=>{if(Array.isArray(t))return l(e,t,n.fullFormats,i),e;const[r,a]="fast"===t.mode?[n.fastFormats,s]:[n.fullFormats,i];return l(e,t.formats||n.formatNames,r,a),t.keywords&&o.default(e),e};function l(e,t,r,n){var o,i;null!==(o=(i=e.opts.code).formats)&&void 0!==o||(i.formats=a._`require("ajv-formats/dist/formats").${n}`);for(const a of t)e.addFormat(a,r[a])}c.get=(e,t="full")=>{const r=("fast"===t?n.fastFormats:n.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r},e.exports=t=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c},26461:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;const n=r(63282),o=r(99029),a=o.operators,i={formatMaximum:{okStr:"<=",ok:a.LTE,fail:a.GT},formatMinimum:{okStr:">=",ok:a.GTE,fail:a.LT},formatExclusiveMaximum:{okStr:"<",ok:a.LT,fail:a.GTE},formatExclusiveMinimum:{okStr:">",ok:a.GT,fail:a.LTE}},s={message:({keyword:e,schemaCode:t})=>o.str`should be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>o._`{comparison: ${i[e].okStr}, limit: ${t}}`};t.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(e){const{gen:t,data:r,schemaCode:a,keyword:s,it:c}=e,{opts:l,self:u}=c;if(!l.validateFormats)return;const d=new n.KeywordCxt(c,u.RULES.all.format.definition,"format");function f(e){return o._`${e}.compare(${r}, ${a}) ${i[s].fail} 0`}d.$data?function(){const r=t.scopeValue("formats",{ref:u.formats,code:l.code.formats}),n=t.const("fmt",o._`${r}[${d.schemaCode}]`);e.fail$data(o.or(o._`typeof ${n} != "object"`,o._`${n} instanceof RegExp`,o._`typeof ${n}.compare != "function"`,f(n)))}():function(){const r=d.schema,n=u.formats[r];if(!n||!0===n)return;if("object"!=typeof n||n instanceof RegExp||"function"!=typeof n.compare)throw new Error(`"${s}": format "${r}" does not define "compare" function`);const a=t.scopeValue("formats",{key:r,ref:n,code:l.code.formats?o._`${l.code.formats}${o.getProperty(r)}`:void 0});e.fail$data(f(a))}()},dependencies:["format"]};t.default=e=>(e.addKeyword(t.formatLimitDefinition),e)},63282:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const n=r(4042),o=r(86144),a=r(36653),i=r(72079),s=["/properties"],c="http://json-schema.org/draft-07/schema";class l extends n.default{_addVocabularies(){super._addVocabularies(),o.default.forEach((e=>this.addVocabulary(e))),this.opts.discriminator&&this.addKeyword(a.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(i,s):i;this.addMetaSchema(e,c,!1),this.refs["http://json-schema.org/schema"]=c}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(c)?c:void 0)}}e.exports=t=l,Object.defineProperty(t,"__esModule",{value:!0}),t.default=l;var u=r(62586);Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var d=r(99029);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return d._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return d.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return d.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return d.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return d.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return d.CodeGen}});var f=r(13558);Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return f.default}});var p=r(34551);Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})},41520:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class r{}t._CodeOrName=r,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends r{constructor(e){if(super(),!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=n;class o extends r{constructor(e){super(),this._items="string"===typeof e?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const e=this._items[0];return""===e||'""'===e}get str(){var e;return null!==(e=this._str)&&void 0!==e?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return null!==(e=this._names)&&void 0!==e?e:this._names=this._items.reduce(((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e)),{})}}function a(e,...t){const r=[e[0]];let n=0;for(;n<t.length;)c(r,t[n]),r.push(e[++n]);return new o(r)}t._Code=o,t.nil=new o(""),t._=a;const i=new o("+");function s(e,...t){const r=[u(e[0])];let n=0;for(;n<t.length;)r.push(i),c(r,t[n]),r.push(i,u(e[++n]));return function(e){let t=1;for(;t<e.length-1;){if(e[t]===i){const r=l(e[t-1],e[t+1]);if(void 0!==r){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}(r),new o(r)}function c(e,t){var r;t instanceof o?e.push(...t._items):t instanceof n?e.push(t):e.push("number"==typeof(r=t)||"boolean"==typeof r||null===r?r:u(Array.isArray(r)?r.join(","):r))}function l(e,t){if('""'===t)return e;if('""'===e)return t;if("string"==typeof e){if(t instanceof n||'"'!==e[e.length-1])return;return"string"!=typeof t?`${e.slice(0,-1)}${t}"`:'"'===t[0]?e.slice(0,-1)+t.slice(1):void 0}return"string"!=typeof t||'"'!==t[0]||e instanceof n?void 0:`"${e}${t.slice(1)}`}function u(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}t.str=s,t.addCodeArg=c,t.strConcat=function(e,t){return t.emptyStr()?e:e.emptyStr()?t:s`${e}${t}`},t.stringify=function(e){return new o(u(e))},t.safeStringify=u,t.getProperty=function(e){return"string"==typeof e&&t.IDENTIFIER.test(e)?new o(`.${e}`):a`[${e}]`},t.getEsmExportName=function(e){if("string"==typeof e&&t.IDENTIFIER.test(e))return new o(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)},t.regexpCode=function(e){return new o(e.toString())}},99029:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;const n=r(41520),o=r(57845);var a=r(41520);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return a._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return a.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return a.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return a.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return a.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return a.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return a.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return a.Name}});var i=r(57845);Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),t.operators={GT:new n._Code(">"),GTE:new n._Code(">="),LT:new n._Code("<"),LTE:new n._Code("<="),EQ:new n._Code("==="),NEQ:new n._Code("!=="),NOT:new n._Code("!"),OR:new n._Code("||"),AND:new n._Code("&&"),ADD:new n._Code("+")};class s{optimizeNodes(){return this}optimizeNames(e,t){return this}}class c extends s{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r}render({es5:e,_n:t}){const r=e?o.varKinds.var:this.varKind,n=void 0===this.rhs?"":` = ${this.rhs}`;return`${r} ${this.name}${n};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=P(this.rhs,e,t)),this}get names(){return this.rhs instanceof n._CodeOrName?this.rhs.names:{}}}class l extends s{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof n.Name)||e[this.lhs.str]||this.sideEffects)return this.rhs=P(this.rhs,e,t),this}get names(){return A(this.lhs instanceof n.Name?{}:{...this.lhs.names},this.rhs)}}class u extends l{constructor(e,t,r,n){super(e,r,n),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class d extends s{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}}class f extends s{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}}class p extends s{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class m extends s{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=P(this.code,e,t),this}get names(){return this.code instanceof n._CodeOrName?this.code.names:{}}}class h extends s{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce(((t,r)=>t+r.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;for(;t--;){const r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){const{nodes:r}=this;let n=r.length;for(;n--;){const o=r[n];o.optimizeNames(e,t)||(N(e,o.names),r.splice(n,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce(((e,t)=>C(e,t.names)),{})}}class y extends h{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class g extends h{}class v extends y{}v.kind="else";class b extends y{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(!0===e)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new v(e):e}return t?!1===e?t instanceof b?t:t.nodes:this.nodes.length?this:new b(D(e),t instanceof b?[t]:t.nodes):!1!==e&&this.nodes.length?this:void 0}optimizeNames(e,t){var r;if(this.else=null===(r=this.else)||void 0===r?void 0:r.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=P(this.condition,e,t),this}get names(){const e=super.names;return A(e,this.condition),this.else&&C(e,this.else.names),e}}b.kind="if";class $ extends y{}$.kind="for";class w extends ${constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=P(this.iteration,e,t),this}get names(){return C(super.names,this.iteration.names)}}class S extends ${constructor(e,t,r,n){super(),this.varKind=e,this.name=t,this.from=r,this.to=n}render(e){const t=e.es5?o.varKinds.var:this.varKind,{name:r,from:n,to:a}=this;return`for(${t} ${r}=${n}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){const e=A(super.names,this.from);return A(e,this.to)}}class _ extends ${constructor(e,t,r,n){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=n}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=P(this.iterable,e,t),this}get names(){return C(super.names,this.iterable.names)}}class x extends y{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}}x.kind="func";class E extends h{render(e){return"return "+super.render(e)}}E.kind="return";class j extends y{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),null===(e=this.catch)||void 0===e||e.optimizeNodes(),null===(t=this.finally)||void 0===t||t.optimizeNodes(),this}optimizeNames(e,t){var r,n;return super.optimizeNames(e,t),null===(r=this.catch)||void 0===r||r.optimizeNames(e,t),null===(n=this.finally)||void 0===n||n.optimizeNames(e,t),this}get names(){const e=super.names;return this.catch&&C(e,this.catch.names),this.finally&&C(e,this.finally.names),e}}class k extends y{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}k.kind="catch";class O extends y{render(e){return"finally"+super.render(e)}}O.kind="finally";function C(e,t){for(const r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function A(e,t){return t instanceof n._CodeOrName?C(e,t.names):e}function P(e,t,r){return e instanceof n.Name?a(e):(o=e)instanceof n._Code&&o._items.some((e=>e instanceof n.Name&&1===t[e.str]&&void 0!==r[e.str]))?new n._Code(e._items.reduce(((e,t)=>(t instanceof n.Name&&(t=a(t)),t instanceof n._Code?e.push(...t._items):e.push(t),e)),[])):e;var o;function a(e){const n=r[e.str];return void 0===n||1!==t[e.str]?e:(delete t[e.str],n)}}function N(e,t){for(const r in t)e[r]=(e[r]||0)-(t[r]||0)}function D(e){return"boolean"==typeof e||"number"==typeof e||null===e?!e:n._`!${R(e)}`}t.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?"\n":""},this._extScope=e,this._scope=new o.Scope({parent:e}),this._nodes=[new g]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const r=this._extScope.value(e,t);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,n){const o=this._scope.toName(t);return void 0!==r&&n&&(this._constants[o.str]=r),this._leafNode(new c(e,o,r)),o}const(e,t,r){return this._def(o.varKinds.const,e,t,r)}let(e,t,r){return this._def(o.varKinds.let,e,t,r)}var(e,t,r){return this._def(o.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new l(e,t,r))}add(e,r){return this._leafNode(new u(e,t.operators.ADD,r))}code(e){return"function"==typeof e?e():e!==n.nil&&this._leafNode(new m(e)),this}object(...e){const t=["{"];for(const[r,o]of e)t.length>1&&t.push(","),t.push(r),(r!==o||this.opts.es5)&&(t.push(":"),(0,n.addCodeArg)(t,o));return t.push("}"),new n._Code(t)}if(e,t,r){if(this._blockNode(new b(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new b(e))}else(){return this._elseNode(new v)}endIf(){return this._endBlockNode(b,v)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new w(e),t)}forRange(e,t,r,n,a=(this.opts.es5?o.varKinds.var:o.varKinds.let)){const i=this._scope.toName(e);return this._for(new S(a,i,t,r),(()=>n(i)))}forOf(e,t,r,a=o.varKinds.const){const i=this._scope.toName(e);if(this.opts.es5){const e=t instanceof n.Name?t:this.var("_arr",t);return this.forRange("_i",0,n._`${e}.length`,(t=>{this.var(i,n._`${e}[${t}]`),r(i)}))}return this._for(new _("of",a,i,t),(()=>r(i)))}forIn(e,t,r,a=(this.opts.es5?o.varKinds.var:o.varKinds.const)){if(this.opts.ownProperties)return this.forOf(e,n._`Object.keys(${t})`,r);const i=this._scope.toName(e);return this._for(new _("in",a,i,t),(()=>r(i)))}endFor(){return this._endBlockNode($)}label(e){return this._leafNode(new d(e))}break(e){return this._leafNode(new f(e))}return(e){const t=new E;if(this._blockNode(t),this.code(e),1!==t.nodes.length)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(E)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');const n=new j;if(this._blockNode(n),this.code(e),t){const e=this.name("e");this._currNode=n.catch=new k(e),t(e)}return r&&(this._currNode=n.finally=new O,this.code(r)),this._endBlockNode(k,O)}throw(e){return this._leafNode(new p(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){const t=this._blockStarts.pop();if(void 0===t)throw new Error("CodeGen: not in self-balancing block");const r=this._nodes.length-t;if(r<0||void 0!==e&&r!==e)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=n.nil,r,o){return this._blockNode(new x(e,t,r)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(x)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){const r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof b))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}},t.not=D;const I=T(t.operators.AND);t.and=function(...e){return e.reduce(I)};const F=T(t.operators.OR);function T(e){return(t,r)=>t===n.nil?r:r===n.nil?t:n._`${R(t)} ${e} ${R(r)}`}function R(e){return e instanceof n.Name?e:n._`(${e})`}t.or=function(...e){return e.reduce(F)}},57845:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const n=r(41520);class o extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}}var a;!function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"}(a=t.UsedValueState||(t.UsedValueState={})),t.varKinds={const:new n.Name("const"),let:new n.Name("let"),var:new n.Name("var")};class i{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof n.Name?e:this.name(e)}name(e){return new n.Name(this._newName(e))}_newName(e){return`${e}${(this._names[e]||this._nameGroup(e)).index++}`}_nameGroup(e){var t,r;if((null===(r=null===(t=this._parent)||void 0===t?void 0:t._prefixes)||void 0===r?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}}t.Scope=i;class s extends n.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:t,itemIndex:r}){this.value=e,this.scopePath=n._`.${new n.Name(t)}[${r}]`}}t.ValueScopeName=s;const c=n._`\n`;t.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?c:n.nil}}get(){return this._scope}name(e){return new s(e,this._newName(e))}value(e,t){var r;if(void 0===t.ref)throw new Error("CodeGen: ref must be passed in value");const n=this.toName(e),{prefix:o}=n,a=null!==(r=t.key)&&void 0!==r?r:t.ref;let i=this._values[o];if(i){const e=i.get(a);if(e)return e}else i=this._values[o]=new Map;i.set(a,n);const s=this._scope[o]||(this._scope[o]=[]),c=s.length;return s[c]=t.ref,n.setValue(t,{property:o,itemIndex:c}),n}getValue(e,t){const r=this._values[e];if(r)return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(void 0===t.scopePath)throw new Error(`CodeGen: name "${t}" has no value`);return n._`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,r){return this._reduceValues(e,(e=>{if(void 0===e.value)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,r)}_reduceValues(e,r,i={},s){let c=n.nil;for(const l in e){const u=e[l];if(!u)continue;const d=i[l]=i[l]||new Map;u.forEach((e=>{if(d.has(e))return;d.set(e,a.Started);let i=r(e);if(i){const r=this.opts.es5?t.varKinds.var:t.varKinds.const;c=n._`${c}${r} ${e} = ${i};${this.opts._n}`}else{if(!(i=null===s||void 0===s?void 0:s(e)))throw new o(e);c=n._`${c}${i}${this.opts._n}`}d.set(e,a.Completed)}))}return c}}},48708:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const n=r(99029),o=r(94227),a=r(42023);function i(e,t){const r=e.const("err",t);e.if(n._`${a.default.vErrors} === null`,(()=>e.assign(a.default.vErrors,n._`[${r}]`)),n._`${a.default.vErrors}.push(${r})`),e.code(n._`${a.default.errors}++`)}function s(e,t){const{gen:r,validateName:o,schemaEnv:a}=e;a.$async?r.throw(n._`new ${e.ValidationError}(${t})`):(r.assign(n._`${o}.errors`,t),r.return(!1))}t.keywordError={message:({keyword:e})=>n.str`must pass "${e}" keyword validation`},t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?n.str`"${e}" keyword must be ${t} ($data)`:n.str`"${e}" keyword is invalid ($data)`},t.reportError=function(e,r=t.keywordError,o,a){const{it:c}=e,{gen:u,compositeRule:d,allErrors:f}=c,p=l(e,r,o);(null!==a&&void 0!==a?a:d||f)?i(u,p):s(c,n._`[${p}]`)},t.reportExtraError=function(e,r=t.keywordError,n){const{it:o}=e,{gen:c,compositeRule:u,allErrors:d}=o;i(c,l(e,r,n)),u||d||s(o,a.default.vErrors)},t.resetErrorsCount=function(e,t){e.assign(a.default.errors,t),e.if(n._`${a.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign(n._`${a.default.vErrors}.length`,t)),(()=>e.assign(a.default.vErrors,null)))))},t.extendErrors=function({gen:e,keyword:t,schemaValue:r,data:o,errsCount:i,it:s}){if(void 0===i)throw new Error("ajv implementation error");const c=e.name("err");e.forRange("i",i,a.default.errors,(i=>{e.const(c,n._`${a.default.vErrors}[${i}]`),e.if(n._`${c}.instancePath === undefined`,(()=>e.assign(n._`${c}.instancePath`,(0,n.strConcat)(a.default.instancePath,s.errorPath)))),e.assign(n._`${c}.schemaPath`,n.str`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign(n._`${c}.schema`,r),e.assign(n._`${c}.data`,o))}))};const c={keyword:new n.Name("keyword"),schemaPath:new n.Name("schemaPath"),params:new n.Name("params"),propertyName:new n.Name("propertyName"),message:new n.Name("message"),schema:new n.Name("schema"),parentSchema:new n.Name("parentSchema")};function l(e,t,r){const{createErrors:o}=e.it;return!1===o?n._`{}`:function(e,t,r={}){const{gen:o,it:i}=e,s=[u(i,r),d(e,r)];return function(e,{params:t,message:r},o){const{keyword:i,data:s,schemaValue:l,it:u}=e,{opts:d,propertyName:f,topSchemaRef:p,schemaPath:m}=u;o.push([c.keyword,i],[c.params,"function"==typeof t?t(e):t||n._`{}`]),d.messages&&o.push([c.message,"function"==typeof r?r(e):r]);d.verbose&&o.push([c.schema,l],[c.parentSchema,n._`${p}${m}`],[a.default.data,s]);f&&o.push([c.propertyName,f])}(e,t,s),o.object(...s)}(e,t,r)}function u({errorPath:e},{instancePath:t}){const r=t?n.str`${e}${(0,o.getErrorPath)(t,o.Type.Str)}`:e;return[a.default.instancePath,(0,n.strConcat)(a.default.instancePath,r)]}function d({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:a}){let i=a?t:n.str`${t}/${e}`;return r&&(i=n.str`${i}${(0,o.getErrorPath)(r,o.Type.Str)}`),[c.schemaPath,i]}},73835:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const n=r(99029),o=r(13558),a=r(42023),i=r(66939),s=r(94227),c=r(62586);class l{constructor(e){var t;let r;this.refs={},this.dynamicAnchors={},"object"==typeof e.schema&&(r=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=null!==(t=e.baseId)&&void 0!==t?t:(0,i.normalizeId)(null===r||void 0===r?void 0:r[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=null===r||void 0===r?void 0:r.$async,this.refs={}}}function u(e){const t=f.call(this,e);if(t)return t;const r=(0,i.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:s,lines:l}=this.opts.code,{ownProperties:u}=this.opts,d=new n.CodeGen(this.scope,{es5:s,lines:l,ownProperties:u});let p;e.$async&&(p=d.scopeValue("Error",{ref:o.default,code:n._`require("ajv/dist/runtime/validation_error").default`}));const m=d.scopeName("validate");e.validateName=m;const h={gen:d,allErrors:this.opts.allErrors,data:a.default.data,parentData:a.default.parentData,parentDataProperty:a.default.parentDataProperty,dataNames:[a.default.data],dataPathArr:[n.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:d.scopeValue("schema",!0===this.opts.code.source?{ref:e.schema,code:(0,n.stringify)(e.schema)}:{ref:e.schema}),validateName:m,ValidationError:p,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:n.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:n._`""`,opts:this.opts,self:this};let y;try{this._compilations.add(e),(0,c.validateFunctionCode)(h),d.optimize(this.opts.code.optimize);const t=d.toString();y=`${d.scopeRefs(a.default.scope)}return ${t}`,this.opts.code.process&&(y=this.opts.code.process(y,e));const r=new Function(`${a.default.self}`,`${a.default.scope}`,y)(this,this.scope.get());if(this.scope.value(m,{ref:r}),r.errors=null,r.schema=e.schema,r.schemaEnv=e,e.$async&&(r.$async=!0),!0===this.opts.code.source&&(r.source={validateName:m,validateCode:t,scopeValues:d._values}),this.opts.unevaluated){const{props:e,items:t}=h;r.evaluated={props:e instanceof n.Name?void 0:e,items:t instanceof n.Name?void 0:t,dynamicProps:e instanceof n.Name,dynamicItems:t instanceof n.Name},r.source&&(r.source.evaluated=(0,n.stringify)(r.evaluated))}return e.validate=r,e}catch(g){throw delete e.validate,delete e.validateName,y&&this.logger.error("Error compiling schema, function code:",y),g}finally{this._compilations.delete(e)}}function d(e){return(0,i.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:u.call(this,e)}function f(e){for(const n of this._compilations)if(r=e,(t=n).schema===r.schema&&t.root===r.root&&t.baseId===r.baseId)return n;var t,r}function p(e,t){let r;for(;"string"==typeof(r=this.refs[t]);)t=r;return r||this.schemas[t]||m.call(this,e,t)}function m(e,t){const r=this.opts.uriResolver.parse(t),n=(0,i._getFullPath)(this.opts.uriResolver,r);let o=(0,i.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===o)return y.call(this,r,e);const a=(0,i.normalizeId)(n),s=this.refs[a]||this.schemas[a];if("string"==typeof s){const t=m.call(this,e,s);if("object"!==typeof(null===t||void 0===t?void 0:t.schema))return;return y.call(this,r,t)}if("object"===typeof(null===s||void 0===s?void 0:s.schema)){if(s.validate||u.call(this,s),a===(0,i.normalizeId)(t)){const{schema:t}=s,{schemaId:r}=this.opts,n=t[r];return n&&(o=(0,i.resolveUrl)(this.opts.uriResolver,o,n)),new l({schema:t,schemaId:r,root:e,baseId:o})}return y.call(this,r,s)}}t.SchemaEnv=l,t.compileSchema=u,t.resolveRef=function(e,t,r){var n;r=(0,i.resolveUrl)(this.opts.uriResolver,t,r);const o=e.refs[r];if(o)return o;let a=p.call(this,e,r);if(void 0===a){const o=null===(n=e.localRefs)||void 0===n?void 0:n[r],{schemaId:i}=this.opts;o&&(a=new l({schema:o,schemaId:i,root:e,baseId:t}))}return void 0!==a?e.refs[r]=d.call(this,a):void 0},t.getCompilingSchema=f,t.resolveSchema=m;const h=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function y(e,{baseId:t,schema:r,root:n}){var o;if("/"!==(null===(o=e.fragment)||void 0===o?void 0:o[0]))return;for(const l of e.fragment.slice(1).split("/")){if("boolean"===typeof r)return;const e=r[(0,s.unescapeFragment)(l)];if(void 0===e)return;const n="object"===typeof(r=e)&&r[this.opts.schemaId];!h.has(l)&&n&&(t=(0,i.resolveUrl)(this.opts.uriResolver,t,n))}let a;if("boolean"!=typeof r&&r.$ref&&!(0,s.schemaHasRulesButRef)(r,this.RULES)){const e=(0,i.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=m.call(this,n,e)}const{schemaId:c}=this.opts;return a=a||new l({schema:r,schemaId:c,root:n,baseId:t}),a.schema!==a.root.schema?a:void 0}},42023:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o={data:new n.Name("data"),valCxt:new n.Name("valCxt"),instancePath:new n.Name("instancePath"),parentData:new n.Name("parentData"),parentDataProperty:new n.Name("parentDataProperty"),rootData:new n.Name("rootData"),dynamicAnchors:new n.Name("dynamicAnchors"),vErrors:new n.Name("vErrors"),errors:new n.Name("errors"),this:new n.Name("this"),self:new n.Name("self"),scope:new n.Name("scope"),json:new n.Name("json"),jsonPos:new n.Name("jsonPos"),jsonLen:new n.Name("jsonLen"),jsonPart:new n.Name("jsonPart")};t.default=o},34551:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(66939);class o extends Error{constructor(e,t,r,o){super(o||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0,n.resolveUrl)(e,t,r),this.missingSchema=(0,n.normalizeId)((0,n.getFullPath)(e,this.missingRef))}}t.default=o},66939:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const n=r(94227),o=r(32017),a=r(7106),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);t.inlineRef=function(e,t=!0){return"boolean"==typeof e||(!0===t?!c(e):!!t&&l(e)<=t)};const s=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function c(e){for(const t in e){if(s.has(t))return!0;const r=e[t];if(Array.isArray(r)&&r.some(c))return!0;if("object"==typeof r&&c(r))return!0}return!1}function l(e){let t=0;for(const r in e){if("$ref"===r)return 1/0;if(t++,!i.has(r)&&("object"==typeof e[r]&&(0,n.eachItem)(e[r],(e=>t+=l(e))),t===1/0))return 1/0}return t}function u(e,t="",r){!1!==r&&(t=p(t));const n=e.parse(t);return d(e,n)}function d(e,t){return e.serialize(t).split("#")[0]+"#"}t.getFullPath=u,t._getFullPath=d;const f=/#\/?$/;function p(e){return e?e.replace(f,""):""}t.normalizeId=p,t.resolveUrl=function(e,t,r){return r=p(r),e.resolve(t,r)};const m=/^[a-z_][-a-z0-9._]*$/i;t.getSchemaRefs=function(e,t){if("boolean"==typeof e)return{};const{schemaId:r,uriResolver:n}=this.opts,i=p(e[r]||t),s={"":i},c=u(n,i,!1),l={},d=new Set;return a(e,{allKeys:!0},((e,t,n,o)=>{if(void 0===o)return;const a=c+t;let i=s[o];function u(t){const r=this.opts.uriResolver.resolve;if(t=p(i?r(i,t):t),d.has(t))throw h(t);d.add(t);let n=this.refs[t];return"string"==typeof n&&(n=this.refs[n]),"object"==typeof n?f(e,n.schema,t):t!==p(a)&&("#"===t[0]?(f(e,l[t],t),l[t]=e):this.refs[t]=a),t}function y(e){if("string"==typeof e){if(!m.test(e))throw new Error(`invalid anchor "${e}"`);u.call(this,`#${e}`)}}"string"==typeof e[r]&&(i=u.call(this,e[r])),y.call(this,e.$anchor),y.call(this,e.$dynamicAnchor),s[t]=i})),l;function f(e,t,r){if(void 0!==t&&!o(e,t))throw h(r)}function h(e){return new Error(`reference "${e}" resolves to more than one schema`)}}},10396:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;const r=new Set(["string","number","integer","boolean","null","object","array"]);t.isJSONType=function(e){return"string"==typeof e&&r.has(e)},t.getRules=function(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}},94227:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const n=r(99029),o=r(41520);function a(e,t=e.schema){const{opts:r,self:n}=e;if(!r.strictSchema)return;if("boolean"===typeof t)return;const o=n.RULES.keywords;for(const a in t)o[a]||m(e,`unknown keyword: "${a}"`)}function i(e,t){if("boolean"==typeof e)return!e;for(const r in e)if(t[r])return!0;return!1}function s(e){return"number"==typeof e?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}function c(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function l({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:o}){return(a,i,s,c)=>{const l=void 0===s?i:s instanceof n.Name?(i instanceof n.Name?e(a,i,s):t(a,i,s),s):i instanceof n.Name?(t(a,s,i),i):r(i,s);return c!==n.Name||l instanceof n.Name?l:o(a,l)}}function u(e,t){if(!0===t)return e.var("props",!0);const r=e.var("props",n._`{}`);return void 0!==t&&d(e,r,t),r}function d(e,t,r){Object.keys(r).forEach((r=>e.assign(n._`${t}${(0,n.getProperty)(r)}`,!0)))}t.toHash=function(e){const t={};for(const r of e)t[r]=!0;return t},t.alwaysValidSchema=function(e,t){return"boolean"==typeof t?t:0===Object.keys(t).length||(a(e,t),!i(t,e.self.RULES.all))},t.checkUnknownRules=a,t.schemaHasRules=i,t.schemaHasRulesButRef=function(e,t){if("boolean"==typeof e)return!e;for(const r in e)if("$ref"!==r&&t.all[r])return!0;return!1},t.schemaRefOrVal=function({topSchemaRef:e,schemaPath:t},r,o,a){if(!a){if("number"==typeof r||"boolean"==typeof r)return r;if("string"==typeof r)return n._`${r}`}return n._`${e}${t}${(0,n.getProperty)(o)}`},t.unescapeFragment=function(e){return c(decodeURIComponent(e))},t.escapeFragment=function(e){return encodeURIComponent(s(e))},t.escapeJsonPointer=s,t.unescapeJsonPointer=c,t.eachItem=function(e,t){if(Array.isArray(e))for(const r of e)t(r);else t(e)},t.mergeEvaluated={props:l({mergeNames:(e,t,r)=>e.if(n._`${r} !== true && ${t} !== undefined`,(()=>{e.if(n._`${t} === true`,(()=>e.assign(r,!0)),(()=>e.assign(r,n._`${r} || {}`).code(n._`Object.assign(${r}, ${t})`)))})),mergeToName:(e,t,r)=>e.if(n._`${r} !== true`,(()=>{!0===t?e.assign(r,!0):(e.assign(r,n._`${r} || {}`),d(e,r,t))})),mergeValues:(e,t)=>!0===e||{...e,...t},resultToName:u}),items:l({mergeNames:(e,t,r)=>e.if(n._`${r} !== true && ${t} !== undefined`,(()=>e.assign(r,n._`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`))),mergeToName:(e,t,r)=>e.if(n._`${r} !== true`,(()=>e.assign(r,!0===t||n._`${r} > ${t} ? ${r} : ${t}`))),mergeValues:(e,t)=>!0===e||Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})},t.evaluatedPropsToName=u,t.setEvaluated=d;const f={};var p;function m(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,!0===r)throw new Error(t);e.self.logger.warn(t)}}t.useFunc=function(e,t){return e.scopeValue("func",{ref:t,code:f[t.code]||(f[t.code]=new o._Code(t.code))})},function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"}(p=t.Type||(t.Type={})),t.getErrorPath=function(e,t,r){if(e instanceof n.Name){const o=t===p.Num;return r?o?n._`"[" + ${e} + "]"`:n._`"['" + ${e} + "']"`:o?n._`"/" + ${e}`:n._`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,n.getProperty)(e).toString():"/"+s(e)},t.checkStrictMode=m},7887:(e,t)=>{"use strict";function r(e,t){return t.rules.some((t=>n(e,t)))}function n(e,t){var r;return void 0!==e[t.keyword]||(null===(r=t.definition.implements)||void 0===r?void 0:r.some((t=>void 0!==e[t])))}Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0,t.schemaHasRulesForType=function({schema:e,self:t},n){const o=t.RULES.types[n];return o&&!0!==o&&r(e,o)},t.shouldUseGroup=r,t.shouldUseRule=n},28727:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const n=r(48708),o=r(99029),a=r(42023),i={message:"boolean schema is false"};function s(e,t){const{gen:r,data:o}=e,a={gen:r,keyword:"false schema",data:o,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,n.reportError)(a,i,void 0,t)}t.topBoolOrEmptySchema=function(e){const{gen:t,schema:r,validateName:n}=e;!1===r?s(e,!1):"object"==typeof r&&!0===r.$async?t.return(a.default.data):(t.assign(o._`${n}.errors`,null),t.return(!0))},t.boolOrEmptySchema=function(e,t){const{gen:r,schema:n}=e;!1===n?(r.var(t,!1),s(e)):r.var(t,!0)}},10208:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const n=r(10396),o=r(7887),a=r(48708),i=r(99029),s=r(94227);var c;function l(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(n.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}!function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"}(c=t.DataType||(t.DataType={})),t.getSchemaTypes=function(e){const t=l(e.type);if(t.includes("null")){if(!1===e.nullable)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&void 0!==e.nullable)throw new Error('"nullable" cannot be used without "type"');!0===e.nullable&&t.push("null")}return t},t.getJSONTypes=l,t.coerceAndCheckDataType=function(e,t){const{gen:r,data:n,opts:a}=e,s=function(e,t){return t?e.filter((e=>u.has(e)||"array"===t&&"array"===e)):[]}(t,a.coerceTypes),l=t.length>0&&!(0===s.length&&1===t.length&&(0,o.schemaHasRulesForType)(e,t[0]));if(l){const o=f(t,n,a.strictNumbers,c.Wrong);r.if(o,(()=>{s.length?function(e,t,r){const{gen:n,data:o,opts:a}=e,s=n.let("dataType",i._`typeof ${o}`),c=n.let("coerced",i._`undefined`);"array"===a.coerceTypes&&n.if(i._`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,(()=>n.assign(o,i._`${o}[0]`).assign(s,i._`typeof ${o}`).if(f(t,o,a.strictNumbers),(()=>n.assign(c,o)))));n.if(i._`${c} !== undefined`);for(const i of r)(u.has(i)||"array"===i&&"array"===a.coerceTypes)&&l(i);function l(e){switch(e){case"string":return void n.elseIf(i._`${s} == "number" || ${s} == "boolean"`).assign(c,i._`"" + ${o}`).elseIf(i._`${o} === null`).assign(c,i._`""`);case"number":return void n.elseIf(i._`${s} == "boolean" || ${o} === null
+ || (${s} == "string" && ${o} && ${o} == +${o})`).assign(c,i._`+${o}`);case"integer":return void n.elseIf(i._`${s} === "boolean" || ${o} === null
+ || (${s} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(c,i._`+${o}`);case"boolean":return void n.elseIf(i._`${o} === "false" || ${o} === 0 || ${o} === null`).assign(c,!1).elseIf(i._`${o} === "true" || ${o} === 1`).assign(c,!0);case"null":return n.elseIf(i._`${o} === "" || ${o} === 0 || ${o} === false`),void n.assign(c,null);case"array":n.elseIf(i._`${s} === "string" || ${s} === "number"
+ || ${s} === "boolean" || ${o} === null`).assign(c,i._`[${o}]`)}}n.else(),m(e),n.endIf(),n.if(i._`${c} !== undefined`,(()=>{n.assign(o,c),function({gen:e,parentData:t,parentDataProperty:r},n){e.if(i._`${t} !== undefined`,(()=>e.assign(i._`${t}[${r}]`,n)))}(e,c)}))}(e,t,s):m(e)}))}return l};const u=new Set(["string","number","integer","boolean","null"]);function d(e,t,r,n=c.Correct){const o=n===c.Correct?i.operators.EQ:i.operators.NEQ;let a;switch(e){case"null":return i._`${t} ${o} null`;case"array":a=i._`Array.isArray(${t})`;break;case"object":a=i._`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=s(i._`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=s();break;default:return i._`typeof ${t} ${o} ${e}`}return n===c.Correct?a:(0,i.not)(a);function s(e=i.nil){return(0,i.and)(i._`typeof ${t} == "number"`,e,r?i._`isFinite(${t})`:i.nil)}}function f(e,t,r,n){if(1===e.length)return d(e[0],t,r,n);let o;const a=(0,s.toHash)(e);if(a.array&&a.object){const e=i._`typeof ${t} != "object"`;o=a.null?e:i._`!${t} || ${e}`,delete a.null,delete a.array,delete a.object}else o=i.nil;a.number&&delete a.integer;for(const s in a)o=(0,i.and)(o,d(s,t,r,n));return o}t.checkDataType=d,t.checkDataTypes=f;const p={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>"string"==typeof e?i._`{type: ${e}}`:i._`{type: ${t}}`};function m(e){const t=function(e){const{gen:t,data:r,schema:n}=e,o=(0,s.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:e}}(e);(0,a.reportError)(t,p)}t.reportTypeError=m},7870:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const n=r(99029),o=r(94227);function a(e,t,r){const{gen:a,compositeRule:i,data:s,opts:c}=e;if(void 0===r)return;const l=n._`${s}${(0,n.getProperty)(t)}`;if(i)return void(0,o.checkStrictMode)(e,`default is ignored for: ${l}`);let u=n._`${l} === undefined`;"empty"===c.useDefaults&&(u=n._`${u} || ${l} === null || ${l} === ""`),a.if(u,n._`${l} = ${(0,n.stringify)(r)}`)}t.assignDefaults=function(e,t){const{properties:r,items:n}=e.schema;if("object"===t&&r)for(const o in r)a(e,o,r[o].default);else"array"===t&&Array.isArray(n)&&n.forEach(((t,r)=>a(e,r,t.default)))}},62586:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const n=r(28727),o=r(10208),a=r(7887),i=r(10208),s=r(7870),c=r(33673),l=r(24495),u=r(99029),d=r(42023),f=r(66939),p=r(94227),m=r(48708);function h({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},a){o.code.es5?e.func(t,u._`${d.default.data}, ${d.default.valCxt}`,n.$async,(()=>{e.code(u._`"use strict"; ${y(r,o)}`),function(e,t){e.if(d.default.valCxt,(()=>{e.var(d.default.instancePath,u._`${d.default.valCxt}.${d.default.instancePath}`),e.var(d.default.parentData,u._`${d.default.valCxt}.${d.default.parentData}`),e.var(d.default.parentDataProperty,u._`${d.default.valCxt}.${d.default.parentDataProperty}`),e.var(d.default.rootData,u._`${d.default.valCxt}.${d.default.rootData}`),t.dynamicRef&&e.var(d.default.dynamicAnchors,u._`${d.default.valCxt}.${d.default.dynamicAnchors}`)}),(()=>{e.var(d.default.instancePath,u._`""`),e.var(d.default.parentData,u._`undefined`),e.var(d.default.parentDataProperty,u._`undefined`),e.var(d.default.rootData,d.default.data),t.dynamicRef&&e.var(d.default.dynamicAnchors,u._`{}`)}))}(e,o),e.code(a)})):e.func(t,u._`${d.default.data}, ${function(e){return u._`{${d.default.instancePath}="", ${d.default.parentData}, ${d.default.parentDataProperty}, ${d.default.rootData}=${d.default.data}${e.dynamicRef?u._`, ${d.default.dynamicAnchors}={}`:u.nil}}={}`}(o)}`,n.$async,(()=>e.code(y(r,o)).code(a)))}function y(e,t){const r="object"==typeof e&&e[t.schemaId];return r&&(t.code.source||t.code.process)?u._`/*# sourceURL=${r} */`:u.nil}function g(e,t){b(e)&&($(e),v(e))?function(e,t){const{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&S(e);(function(e){const t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,f.resolveUrl)(e.opts.uriResolver,e.baseId,t))})(e),function(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}(e);const a=n.const("_errs",d.default.errors);w(e,a),n.var(t,u._`${a} === ${d.default.errors}`)}(e,t):(0,n.boolOrEmptySchema)(e,t)}function v({schema:e,self:t}){if("boolean"==typeof e)return!e;for(const r in e)if(t.RULES.all[r])return!0;return!1}function b(e){return"boolean"!=typeof e.schema}function $(e){(0,p.checkUnknownRules)(e),function(e){const{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,p.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}(e)}function w(e,t){if(e.opts.jtd)return _(e,[],!1,t);const r=(0,o.getSchemaTypes)(e.schema);_(e,r,!(0,o.coerceAndCheckDataType)(e,r),t)}function S({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:o}){const a=r.$comment;if(!0===o.$comment)e.code(u._`${d.default.self}.logger.log(${a})`);else if("function"==typeof o.$comment){const r=u.str`${n}/$comment`,o=e.scopeValue("root",{ref:t.root});e.code(u._`${d.default.self}.opts.$comment(${a}, ${r}, ${o}.schema)`)}}function _(e,t,r,n){const{gen:o,schema:s,data:c,allErrors:l,opts:f,self:m}=e,{RULES:h}=m;function y(p){(0,a.shouldUseGroup)(s,p)&&(p.type?(o.if((0,i.checkDataType)(p.type,c,f.strictNumbers)),x(e,p),1===t.length&&t[0]===p.type&&r&&(o.else(),(0,i.reportTypeError)(e)),o.endIf()):x(e,p),l||o.if(u._`${d.default.errors} === ${n||0}`))}!s.$ref||!f.ignoreKeywordsWithRef&&(0,p.schemaHasRulesButRef)(s,h)?(f.jtd||function(e,t){if(e.schemaEnv.meta||!e.opts.strictTypes)return;(function(e,t){if(!t.length)return;if(!e.dataTypes.length)return void(e.dataTypes=t);t.forEach((t=>{j(e.dataTypes,t)||k(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)})),function(e,t){const r=[];for(const n of e.dataTypes)j(t,n)?r.push(n):t.includes("integer")&&"number"===n&&r.push("integer");e.dataTypes=r}(e,t)})(e,t),e.opts.allowUnionTypes||function(e,t){t.length>1&&(2!==t.length||!t.includes("null"))&&k(e,"use allowUnionTypes to allow union type keyword")}(e,t);!function(e,t){const r=e.self.RULES.all;for(const n in r){const o=r[n];if("object"==typeof o&&(0,a.shouldUseRule)(e.schema,o)){const{type:r}=o.definition;r.length&&!r.some((e=>E(t,e)))&&k(e,`missing type "${r.join(",")}" for keyword "${n}"`)}}}(e,e.dataTypes)}(e,t),o.block((()=>{for(const e of h.rules)y(e);y(h.post)}))):o.block((()=>C(e,"$ref",h.all.$ref.definition)))}function x(e,t){const{gen:r,schema:n,opts:{useDefaults:o}}=e;o&&(0,s.assignDefaults)(e,t.type),r.block((()=>{for(const r of t.rules)(0,a.shouldUseRule)(n,r)&&C(e,r.keyword,r.definition,t.type)}))}function E(e,t){return e.includes(t)||"number"===t&&e.includes("integer")}function j(e,t){return e.includes(t)||"integer"===t&&e.includes("number")}function k(e,t){t+=` at "${e.schemaEnv.baseId+e.errSchemaPath}" (strictTypes)`,(0,p.checkStrictMode)(e,t,e.opts.strictTypes)}t.validateFunctionCode=function(e){b(e)&&($(e),v(e))?function(e){const{schema:t,opts:r,gen:n}=e;h(e,(()=>{r.$comment&&t.$comment&&S(e),function(e){const{schema:t,opts:r}=e;void 0!==t.default&&r.useDefaults&&r.strictSchema&&(0,p.checkStrictMode)(e,"default is ignored in the schema root")}(e),n.let(d.default.vErrors,null),n.let(d.default.errors,0),r.unevaluated&&function(e){const{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",u._`${r}.evaluated`),t.if(u._`${e.evaluated}.dynamicProps`,(()=>t.assign(u._`${e.evaluated}.props`,u._`undefined`))),t.if(u._`${e.evaluated}.dynamicItems`,(()=>t.assign(u._`${e.evaluated}.items`,u._`undefined`)))}(e),w(e),function(e){const{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:a}=e;r.$async?t.if(u._`${d.default.errors} === 0`,(()=>t.return(d.default.data)),(()=>t.throw(u._`new ${o}(${d.default.vErrors})`))):(t.assign(u._`${n}.errors`,d.default.vErrors),a.unevaluated&&function({gen:e,evaluated:t,props:r,items:n}){r instanceof u.Name&&e.assign(u._`${t}.props`,r);n instanceof u.Name&&e.assign(u._`${t}.items`,n)}(e),t.return(u._`${d.default.errors} === 0`))}(e)}))}(e):h(e,(()=>(0,n.topBoolOrEmptySchema)(e)))};class O{constructor(e,t,r){if((0,c.validateKeywordUsage)(e,t,r),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=r,this.data=e.data,this.schema=e.schema[r],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,p.schemaRefOrVal)(e,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",N(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,c.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:!1!==t.errors)&&(this.errsCount=e.gen.const("_errs",d.default.errors))}result(e,t,r){this.failResult((0,u.not)(e),t,r)}failResult(e,t,r){this.gen.if(e),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.failResult((0,u.not)(e),void 0,t)}fail(e){if(void 0===e)return this.error(),void(this.allErrors||this.gen.if(!1));this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail(u._`${t} !== undefined && (${(0,u.or)(this.invalid$data(),e)})`)}error(e,t,r){if(t)return this.setParams(t),this._error(e,r),void this.setParams({});this._error(e,r)}_error(e,t){(e?m.reportExtraError:m.reportError)(this,this.def.error,t)}$dataError(){(0,m.reportError)(this,this.def.$dataError||m.keyword$DataError)}reset(){if(void 0===this.errsCount)throw new Error('add "trackErrors" to keyword definition');(0,m.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,r=u.nil){this.gen.block((()=>{this.check$data(e,r),t()}))}check$data(e=u.nil,t=u.nil){if(!this.$data)return;const{gen:r,schemaCode:n,schemaType:o,def:a}=this;r.if((0,u.or)(u._`${n} === undefined`,t)),e!==u.nil&&r.assign(e,!0),(o.length||a.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==u.nil&&r.assign(e,!1)),r.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:r,def:n,it:o}=this;return(0,u.or)(function(){if(r.length){if(!(t instanceof u.Name))throw new Error("ajv implementation error");const e=Array.isArray(r)?r:[r];return u._`${(0,i.checkDataTypes)(e,t,o.opts.strictNumbers,i.DataType.Wrong)}`}return u.nil}(),function(){if(n.validateSchema){const r=e.scopeValue("validate$data",{ref:n.validateSchema});return u._`!${r}(${t})`}return u.nil}())}subschema(e,t){const r=(0,l.getSubschema)(this.it,e);(0,l.extendSubschemaData)(r,this.it,e),(0,l.extendSubschemaMode)(r,e);const n={...this.it,...r,items:void 0,props:void 0};return g(n,t),n}mergeEvaluated(e,t){const{it:r,gen:n}=this;r.opts.unevaluated&&(!0!==r.props&&void 0!==e.props&&(r.props=p.mergeEvaluated.props(n,e.props,r.props,t)),!0!==r.items&&void 0!==e.items&&(r.items=p.mergeEvaluated.items(n,e.items,r.items,t)))}mergeValidEvaluated(e,t){const{it:r,gen:n}=this;if(r.opts.unevaluated&&(!0!==r.props||!0!==r.items))return n.if(t,(()=>this.mergeEvaluated(e,u.Name))),!0}}function C(e,t,r,n){const o=new O(e,r,t);"code"in r?r.code(o,n):o.$data&&r.validate?(0,c.funcKeywordCode)(o,r):"macro"in r?(0,c.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,c.funcKeywordCode)(o,r)}t.KeywordCxt=O;const A=/^\/(?:[^~]|~0|~1)*$/,P=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function N(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,a;if(""===e)return d.default.rootData;if("/"===e[0]){if(!A.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,a=d.default.rootData}else{const i=P.exec(e);if(!i)throw new Error(`Invalid JSON-pointer: ${e}`);const s=+i[1];if(o=i[2],"#"===o){if(s>=t)throw new Error(c("property/index",s));return n[t-s]}if(s>t)throw new Error(c("data",s));if(a=r[t-s],!o)return a}let i=a;const s=o.split("/");for(const l of s)l&&(a=u._`${a}${(0,u.getProperty)((0,p.unescapeJsonPointer)(l))}`,i=u._`${i} && ${a}`);return i;function c(e,r){return`Cannot access ${e} ${r} levels up, current level is ${t}`}}t.getData=N},33673:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const n=r(99029),o=r(42023),a=r(15765),i=r(48708);function s(e){const{gen:t,data:r,it:o}=e;t.if(o.parentData,(()=>t.assign(r,n._`${o.parentData}[${o.parentDataProperty}]`)))}function c(e,t,r){if(void 0===r)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword","function"==typeof r?{ref:r}:{ref:r,code:(0,n.stringify)(r)})}t.macroKeywordCode=function(e,t){const{gen:r,keyword:o,schema:a,parentSchema:i,it:s}=e,l=t.macro.call(s.self,a,i,s),u=c(r,o,l);!1!==s.opts.validateSchema&&s.self.validateSchema(l,!0);const d=r.name("valid");e.subschema({schema:l,schemaPath:n.nil,errSchemaPath:`${s.errSchemaPath}/${o}`,topSchemaRef:u,compositeRule:!0},d),e.pass(d,(()=>e.error(!0)))},t.funcKeywordCode=function(e,t){var r;const{gen:l,keyword:u,schema:d,parentSchema:f,$data:p,it:m}=e;!function({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}(m,t);const h=!p&&t.compile?t.compile.call(m.self,d,f,m):t.validate,y=c(l,u,h),g=l.let("valid");function v(r=(t.async?n._`await `:n.nil)){const i=m.opts.passContext?o.default.this:o.default.self,s=!("compile"in t&&!p||!1===t.schema);l.assign(g,n._`${r}${(0,a.callValidateCode)(e,y,i,s)}`,t.modifying)}function b(e){var r;l.if((0,n.not)(null!==(r=t.valid)&&void 0!==r?r:g),e)}e.block$data(g,(function(){if(!1===t.errors)v(),t.modifying&&s(e),b((()=>e.error()));else{const r=t.async?function(){const e=l.let("ruleErrs",null);return l.try((()=>v(n._`await `)),(t=>l.assign(g,!1).if(n._`${t} instanceof ${m.ValidationError}`,(()=>l.assign(e,n._`${t}.errors`)),(()=>l.throw(t))))),e}():function(){const e=n._`${y}.errors`;return l.assign(e,null),v(n.nil),e}();t.modifying&&s(e),b((()=>function(e,t){const{gen:r}=e;r.if(n._`Array.isArray(${t})`,(()=>{r.assign(o.default.vErrors,n._`${o.default.vErrors} === null ? ${t} : ${o.default.vErrors}.concat(${t})`).assign(o.default.errors,n._`${o.default.vErrors}.length`),(0,i.extendErrors)(e)}),(()=>e.error()))}(e,r)))}})),e.ok(null!==(r=t.valid)&&void 0!==r?r:g)},t.validSchemaType=function(e,t,r=!1){return!t.length||t.some((t=>"array"===t?Array.isArray(e):"object"===t?e&&"object"==typeof e&&!Array.isArray(e):typeof e==t||r&&"undefined"==typeof e))},t.validateKeywordUsage=function({schema:e,opts:t,self:r,errSchemaPath:n},o,a){if(Array.isArray(o.keyword)?!o.keyword.includes(a):o.keyword!==a)throw new Error("ajv implementation error");const i=o.dependencies;if(null===i||void 0===i?void 0:i.some((t=>!Object.prototype.hasOwnProperty.call(e,t))))throw new Error(`parent schema must have dependencies of ${a}: ${i.join(",")}`);if(o.validateSchema){if(!o.validateSchema(e[a])){const e=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if("log"!==t.validateSchema)throw new Error(e);r.logger.error(e)}}}},24495:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const n=r(99029),o=r(94227);t.getSubschema=function(e,{keyword:t,schemaProp:r,schema:a,schemaPath:i,errSchemaPath:s,topSchemaRef:c}){if(void 0!==t&&void 0!==a)throw new Error('both "keyword" and "schema" passed, only one allowed');if(void 0!==t){const a=e.schema[t];return void 0===r?{schema:a,schemaPath:n._`${e.schemaPath}${(0,n.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[r],schemaPath:n._`${e.schemaPath}${(0,n.getProperty)(t)}${(0,n.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,o.escapeFragment)(r)}`}}if(void 0!==a){if(void 0===i||void 0===s||void 0===c)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:a,schemaPath:i,topSchemaRef:c,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')},t.extendSubschemaData=function(e,t,{dataProp:r,dataPropType:a,data:i,dataTypes:s,propertyName:c}){if(void 0!==i&&void 0!==r)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:l}=t;if(void 0!==r){const{errorPath:i,dataPathArr:s,opts:c}=t;u(l.let("data",n._`${t.data}${(0,n.getProperty)(r)}`,!0)),e.errorPath=n.str`${i}${(0,o.getErrorPath)(r,a,c.jsPropertySyntax)}`,e.parentDataProperty=n._`${r}`,e.dataPathArr=[...s,e.parentDataProperty]}if(void 0!==i){u(i instanceof n.Name?i:l.let("data",i,!0)),void 0!==c&&(e.propertyName=c)}function u(r){e.data=r,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,r]}s&&(e.dataTypes=s)},t.extendSubschemaMode=function(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:a}){void 0!==n&&(e.compositeRule=n),void 0!==o&&(e.createErrors=o),void 0!==a&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}},4042:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var n=r(62586);Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return n.KeywordCxt}});var o=r(99029);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return o._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return o.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return o.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return o.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return o.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return o.CodeGen}});const a=r(13558),i=r(34551),s=r(10396),c=r(73835),l=r(99029),u=r(66939),d=r(10208),f=r(94227),p=r(63837),m=r(55944),h=(e,t)=>new RegExp(e,t);h.code="new RegExp";const y=["removeAdditional","useDefaults","coerceTypes"],g=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),v={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},b={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};function $(e){var t,r,n,o,a,i,s,c,l,u,d,f,p,y,g,v,b,$,w,S,_,x,E,j,k;const O=e.strict,C=null===(t=e.code)||void 0===t?void 0:t.optimize,A=!0===C||void 0===C?1:C||0,P=null!==(n=null===(r=e.code)||void 0===r?void 0:r.regExp)&&void 0!==n?n:h,N=null!==(o=e.uriResolver)&&void 0!==o?o:m.default;return{strictSchema:null===(i=null!==(a=e.strictSchema)&&void 0!==a?a:O)||void 0===i||i,strictNumbers:null===(c=null!==(s=e.strictNumbers)&&void 0!==s?s:O)||void 0===c||c,strictTypes:null!==(u=null!==(l=e.strictTypes)&&void 0!==l?l:O)&&void 0!==u?u:"log",strictTuples:null!==(f=null!==(d=e.strictTuples)&&void 0!==d?d:O)&&void 0!==f?f:"log",strictRequired:null!==(y=null!==(p=e.strictRequired)&&void 0!==p?p:O)&&void 0!==y&&y,code:e.code?{...e.code,optimize:A,regExp:P}:{optimize:A,regExp:P},loopRequired:null!==(g=e.loopRequired)&&void 0!==g?g:200,loopEnum:null!==(v=e.loopEnum)&&void 0!==v?v:200,meta:null===(b=e.meta)||void 0===b||b,messages:null===($=e.messages)||void 0===$||$,inlineRefs:null===(w=e.inlineRefs)||void 0===w||w,schemaId:null!==(S=e.schemaId)&&void 0!==S?S:"$id",addUsedSchema:null===(_=e.addUsedSchema)||void 0===_||_,validateSchema:null===(x=e.validateSchema)||void 0===x||x,validateFormats:null===(E=e.validateFormats)||void 0===E||E,unicodeRegExp:null===(j=e.unicodeRegExp)||void 0===j||j,int32range:null===(k=e.int32range)||void 0===k||k,uriResolver:N}}class w{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...$(e)};const{es5:t,lines:r}=this.opts.code;this.scope=new l.ValueScope({scope:{},prefixes:g,es5:t,lines:r}),this.logger=function(e){if(!1===e)return O;if(void 0===e)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}(e.logger);const n=e.validateFormats;e.validateFormats=!1,this.RULES=(0,s.getRules)(),S.call(this,v,e,"NOT SUPPORTED"),S.call(this,b,e,"DEPRECATED","warn"),this._metaOpts=k.call(this),e.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&j.call(this,e.keywords),"object"==typeof e.meta&&this.addMetaSchema(e.meta),x.call(this),e.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:r}=this.opts;let n=p;"id"===r&&(n={...p},n.id=n.$id,delete n.$id),t&&e&&this.addMetaSchema(n,n[r],!1)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta="object"==typeof e?e[t]||e:void 0}validate(e,t){let r;if("string"==typeof e){if(r=this.getSchema(e),!r)throw new Error(`no schema with key or ref "${e}"`)}else r=this.compile(e);const n=r(t);return"$async"in r||(this.errors=r.errors),n}compile(e,t){const r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if("function"!=typeof this.opts.loadSchema)throw new Error("options.loadSchema should be a function");const{loadSchema:r}=this.opts;return n.call(this,e,t);async function n(e,t){await o.call(this,e.$schema);const r=this._addSchema(e,t);return r.validate||a.call(this,r)}async function o(e){e&&!this.getSchema(e)&&await n.call(this,{$ref:e},!0)}async function a(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof i.default))throw t;return s.call(this,t),await c.call(this,t.missingSchema),a.call(this,e)}}function s({missingSchema:e,missingRef:t}){if(this.refs[e])throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function c(e){const r=await l.call(this,e);this.refs[e]||await o.call(this,r.$schema),this.refs[e]||this.addSchema(r,e,t)}async function l(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=r(e))}finally{delete this._loading[e]}}}addSchema(e,t,r,n=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,void 0,r,n);return this}let o;if("object"===typeof e){const{schemaId:t}=this.opts;if(o=e[t],void 0!==o&&"string"!=typeof o)throw new Error(`schema ${t} must be string`)}return t=(0,u.normalizeId)(t||o),this._checkUnique(t),this.schemas[t]=this._addSchema(e,r,t,n,!0),this}addMetaSchema(e,t,r=this.opts.validateSchema){return this.addSchema(e,t,!0,r),this}validateSchema(e,t){if("boolean"==typeof e)return!0;let r;if(r=e.$schema,void 0!==r&&"string"!=typeof r)throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const n=this.validate(r,e);if(!n&&t){const e="schema is invalid: "+this.errorsText();if("log"!==this.opts.validateSchema)throw new Error(e);this.logger.error(e)}return n}getSchema(e){let t;for(;"string"==typeof(t=_.call(this,e));)e=t;if(void 0===t){const{schemaId:r}=this.opts,n=new c.SchemaEnv({schema:{},schemaId:r});if(t=c.resolveSchema.call(this,n,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const t=_.call(this,e);return"object"==typeof t&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{const t=e;this._cache.delete(t);let r=e[this.opts.schemaId];return r&&(r=(0,u.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if("string"==typeof e)r=e,"object"==typeof t&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=r);else{if("object"!=typeof e||void 0!==t)throw new Error("invalid addKeywords parameters");if(r=(t=e).keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}if(A.call(this,r,t),!t)return(0,f.eachItem)(r,(e=>P.call(this,e))),this;D.call(this,t);const n={...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)};return(0,f.eachItem)(r,0===n.type.length?e=>P.call(this,e,n):e=>n.type.forEach((t=>P.call(this,e,n,t)))),this}getKeyword(e){const t=this.RULES.all[e];return"object"==typeof t?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(const r of t.rules){const t=r.rules.findIndex((t=>t.keyword===e));t>=0&&r.rules.splice(t,1)}return this}addFormat(e,t){return"string"==typeof t&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){return e&&0!==e.length?e.map((e=>`${r}${e.instancePath} ${e.message}`)).reduce(((e,r)=>e+t+r)):"No errors"}$dataMetaSchema(e,t){const r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const n of t){const t=n.split("/").slice(1);let o=e;for(const e of t)o=o[e];for(const e in r){const t=r[e];if("object"!=typeof t)continue;const{$data:n}=t.definition,a=o[e];n&&a&&(o[e]=F(a))}}return e}_removeAllSchemas(e,t){for(const r in e){const n=e[r];t&&!t.test(r)||("string"==typeof n?delete e[r]:n&&!n.meta&&(this._cache.delete(n.schema),delete e[r]))}}_addSchema(e,t,r,n=this.opts.validateSchema,o=this.opts.addUsedSchema){let a;const{schemaId:i}=this.opts;if("object"==typeof e)a=e[i];else{if(this.opts.jtd)throw new Error("schema must be object");if("boolean"!=typeof e)throw new Error("schema must be object or boolean")}let s=this._cache.get(e);if(void 0!==s)return s;r=(0,u.normalizeId)(a||r);const l=u.getSchemaRefs.call(this,e,r);return s=new c.SchemaEnv({schema:e,schemaId:i,meta:t,baseId:r,localRefs:l}),this._cache.set(s.schema,s),o&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=s),n&&this.validateSchema(e,!0),s}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):c.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{c.compileSchema.call(this,e)}finally{this.opts=t}}}function S(e,t,r,n="error"){for(const o in e){const a=o;a in t&&this.logger[n](`${r}: option ${o}. ${e[a]}`)}}function _(e){return e=(0,u.normalizeId)(e),this.schemas[e]||this.refs[e]}function x(){const e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function E(){for(const e in this.opts.formats){const t=this.opts.formats[e];t&&this.addFormat(e,t)}}function j(e){if(Array.isArray(e))this.addVocabulary(e);else{this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}}function k(){const e={...this.opts};for(const t of y)delete e[t];return e}t.default=w,w.ValidationError=a.default,w.MissingRefError=i.default;const O={log(){},warn(){},error(){}};const C=/^[a-z_$][a-z0-9_$:-]*$/i;function A(e,t){const{RULES:r}=this;if((0,f.eachItem)(e,(e=>{if(r.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!C.test(e))throw new Error(`Keyword ${e} has invalid name`)})),t&&t.$data&&!("code"in t)&&!("validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function P(e,t,r){var n;const o=null===t||void 0===t?void 0:t.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:a}=this;let i=o?a.post:a.rules.find((({type:e})=>e===r));if(i||(i={type:r,rules:[]},a.rules.push(i)),a.keywords[e]=!0,!t)return;const s={keyword:e,definition:{...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)}};t.before?N.call(this,i,s,t.before):i.rules.push(s),a.all[e]=s,null===(n=t.implements)||void 0===n||n.forEach((e=>this.addKeyword(e)))}function N(e,t,r){const n=e.rules.findIndex((e=>e.keyword===r));n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function D(e){let{metaSchema:t}=e;void 0!==t&&(e.$data&&this.opts.$data&&(t=F(t)),e.validateSchema=this.compile(t,!0))}const I={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function F(e){return{anyOf:[e,I]}}},76250:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(32017);n.code='require("ajv/dist/runtime/equal").default',t.default=n},53853:(e,t)=>{"use strict";function r(e){const t=e.length;let r,n=0,o=0;for(;o<t;)n++,r=e.charCodeAt(o++),r>=55296&&r<=56319&&o<t&&(r=e.charCodeAt(o),56320===(64512&r)&&o++);return n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r,r.code='require("ajv/dist/runtime/ucs2length").default'},55944:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(46579);n.code='require("ajv/dist/runtime/uri").default',t.default=n},13558:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}}t.default=r},15457:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;const n=r(99029),o=r(94227),a={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:e}})=>n.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>n._`{limit: ${e}}`},code(e){const{parentSchema:t,it:r}=e,{items:n}=t;Array.isArray(n)?i(e,n):(0,o.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas')}};function i(e,t){const{gen:r,schema:a,data:i,keyword:s,it:c}=e;c.items=!0;const l=r.const("len",n._`${i}.length`);if(!1===a)e.setParams({len:t.length}),e.pass(n._`${l} <= ${t.length}`);else if("object"==typeof a&&!(0,o.alwaysValidSchema)(c,a)){const a=r.var("valid",n._`${l} <= ${t.length}`);r.if((0,n.not)(a),(()=>function(a){r.forRange("i",t.length,l,(t=>{e.subschema({keyword:s,dataProp:t,dataPropType:o.Type.Num},a),c.allErrors||r.if((0,n.not)(a),(()=>r.break()))}))}(a))),e.ok(a)}}t.validateAdditionalItems=i,t.default=a},38660:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(15765),o=r(99029),a=r(42023),i=r(94227),s={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:e})=>o._`{additionalProperty: ${e.additionalProperty}}`},code(e){const{gen:t,schema:r,parentSchema:s,data:c,errsCount:l,it:u}=e;if(!l)throw new Error("ajv implementation error");const{allErrors:d,opts:f}=u;if(u.props=!0,"all"!==f.removeAdditional&&(0,i.alwaysValidSchema)(u,r))return;const p=(0,n.allSchemaProperties)(s.properties),m=(0,n.allSchemaProperties)(s.patternProperties);function h(e){t.code(o._`delete ${c}[${e}]`)}function y(n){if("all"===f.removeAdditional||f.removeAdditional&&!1===r)h(n);else{if(!1===r)return e.setParams({additionalProperty:n}),e.error(),void(d||t.break());if("object"==typeof r&&!(0,i.alwaysValidSchema)(u,r)){const r=t.name("valid");"failing"===f.removeAdditional?(g(n,r,!1),t.if((0,o.not)(r),(()=>{e.reset(),h(n)}))):(g(n,r),d||t.if((0,o.not)(r),(()=>t.break())))}}}function g(t,r,n){const o={keyword:"additionalProperties",dataProp:t,dataPropType:i.Type.Str};!1===n&&Object.assign(o,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(o,r)}t.forIn("key",c,(r=>{p.length||m.length?t.if(function(r){let a;if(p.length>8){const e=(0,i.schemaRefOrVal)(u,s.properties,"properties");a=(0,n.isOwnProperty)(t,e,r)}else a=p.length?(0,o.or)(...p.map((e=>o._`${r} === ${e}`))):o.nil;return m.length&&(a=(0,o.or)(a,...m.map((t=>o._`${(0,n.usePattern)(e,t)}.test(${r})`)))),(0,o.not)(a)}(r),(()=>y(r))):y(r)})),e.ok(o._`${l} === ${a.default.errors}`)}};t.default=s},15844:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(94227),o={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:r,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const a=t.name("valid");r.forEach(((t,r)=>{if((0,n.alwaysValidSchema)(o,t))return;const i=e.subschema({keyword:"allOf",schemaProp:r},a);e.ok(a),e.mergeEvaluated(i)}))}};t.default=o},16505:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:r(15765).validateUnion,error:{message:"must match a schema in anyOf"}};t.default=n},12661:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:e,max:t}})=>void 0===t?n.str`must contain at least ${e} valid item(s)`:n.str`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>void 0===t?n._`{minContains: ${e}}`:n._`{minContains: ${e}, maxContains: ${t}}`},code(e){const{gen:t,schema:r,parentSchema:a,data:i,it:s}=e;let c,l;const{minContains:u,maxContains:d}=a;s.opts.next?(c=void 0===u?1:u,l=d):c=1;const f=t.const("len",n._`${i}.length`);if(e.setParams({min:c,max:l}),void 0===l&&0===c)return void(0,o.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');if(void 0!==l&&c>l)return(0,o.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),void e.fail();if((0,o.alwaysValidSchema)(s,r)){let t=n._`${f} >= ${c}`;return void 0!==l&&(t=n._`${t} && ${f} <= ${l}`),void e.pass(t)}s.items=!0;const p=t.name("valid");function m(){const e=t.name("_valid"),r=t.let("count",0);h(e,(()=>t.if(e,(()=>function(e){t.code(n._`${e}++`),void 0===l?t.if(n._`${e} >= ${c}`,(()=>t.assign(p,!0).break())):(t.if(n._`${e} > ${l}`,(()=>t.assign(p,!1).break())),1===c?t.assign(p,!0):t.if(n._`${e} >= ${c}`,(()=>t.assign(p,!0))))}(r)))))}function h(r,n){t.forRange("i",0,f,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:o.Type.Num,compositeRule:!0},r),n()}))}void 0===l&&1===c?h(p,(()=>t.if(p,(()=>t.break())))):0===c?(t.let(p,!0),void 0!==l&&t.if(n._`${i}.length > 0`,m)):(t.let(p,!1),m()),e.result(p,(()=>e.reset()))}};t.default=a},83025:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const n=r(99029),o=r(94227),a=r(15765);t.error={message:({params:{property:e,depsCount:t,deps:r}})=>{const o=1===t?"property":"properties";return n.str`must have ${o} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:o}})=>n._`{property: ${e},
+ missingProperty: ${o},
+ depsCount: ${t},
+ deps: ${r}}`};const i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,r]=function({schema:e}){const t={},r={};for(const n in e){if("__proto__"===n)continue;(Array.isArray(e[n])?t:r)[n]=e[n]}return[t,r]}(e);s(e,t),c(e,r)}};function s(e,t=e.schema){const{gen:r,data:o,it:i}=e;if(0===Object.keys(t).length)return;const s=r.let("missing");for(const c in t){const l=t[c];if(0===l.length)continue;const u=(0,a.propertyInData)(r,o,c,i.opts.ownProperties);e.setParams({property:c,depsCount:l.length,deps:l.join(", ")}),i.allErrors?r.if(u,(()=>{for(const t of l)(0,a.checkReportMissingProp)(e,t)})):(r.if(n._`${u} && (${(0,a.checkMissingProp)(e,l,s)})`),(0,a.reportMissingProp)(e,s),r.else())}}function c(e,t=e.schema){const{gen:r,data:n,keyword:i,it:s}=e,c=r.name("valid");for(const l in t)(0,o.alwaysValidSchema)(s,t[l])||(r.if((0,a.propertyInData)(r,n,l,s.opts.ownProperties),(()=>{const t=e.subschema({keyword:i,schemaProp:l},c);e.mergeValidEvaluated(t,c)}),(()=>r.var(c,!0))),e.ok(c))}t.validatePropertyDeps=s,t.validateSchemaDeps=c,t.default=i},1239:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>n.str`must match "${e.ifClause}" schema`,params:({params:e})=>n._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:r,it:a}=e;void 0===r.then&&void 0===r.else&&(0,o.checkStrictMode)(a,'"if" without "then" and "else" is ignored');const s=i(a,"then"),c=i(a,"else");if(!s&&!c)return;const l=t.let("valid",!0),u=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}(),e.reset(),s&&c){const r=t.let("ifClause");e.setParams({ifClause:r}),t.if(u,d("then",r),d("else",r))}else s?t.if(u,d("then")):t.if((0,n.not)(u),d("else"));function d(r,o){return()=>{const a=e.subschema({keyword:r},u);t.assign(l,u),e.mergeValidEvaluated(a,l),o?t.assign(o,n._`${r}`):e.setParams({ifClause:r})}}e.pass(l,(()=>e.error(!0)))}};function i(e,t){const r=e.schema[t];return void 0!==r&&!(0,o.alwaysValidSchema)(e,r)}t.default=a},56378:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(15457),o=r(65354),a=r(20494),i=r(93966),s=r(12661),c=r(83025),l=r(19713),u=r(38660),d=r(40117),f=r(45333),p=r(57923),m=r(16505),h=r(96163),y=r(15844),g=r(1239),v=r(14426);t.default=function(e=!1){const t=[p.default,m.default,h.default,y.default,g.default,v.default,l.default,u.default,c.default,d.default,f.default];return e?t.push(o.default,i.default):t.push(n.default,a.default),t.push(s.default),t}},20494:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const n=r(99029),o=r(94227),a=r(15765),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:r}=e;if(Array.isArray(t))return s(e,"additionalItems",t);r.items=!0,(0,o.alwaysValidSchema)(r,t)||e.ok((0,a.validateArray)(e))}};function s(e,t,r=e.schema){const{gen:a,parentSchema:i,data:s,keyword:c,it:l}=e;!function(e){const{opts:n,errSchemaPath:a}=l,i=r.length,s=i===e.minItems&&(i===e.maxItems||!1===e[t]);if(n.strictTuples&&!s){const e=`"${c}" is ${i}-tuple, but minItems or maxItems/${t} are not specified or different at path "${a}"`;(0,o.checkStrictMode)(l,e,n.strictTuples)}}(i),l.opts.unevaluated&&r.length&&!0!==l.items&&(l.items=o.mergeEvaluated.items(a,r.length,l.items));const u=a.name("valid"),d=a.const("len",n._`${s}.length`);r.forEach(((t,r)=>{(0,o.alwaysValidSchema)(l,t)||(a.if(n._`${d} > ${r}`,(()=>e.subschema({keyword:c,schemaProp:r,dataProp:r},u))),e.ok(u))}))}t.validateTuple=s,t.default=i},93966:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a=r(15765),i=r(15457),s={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>n.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>n._`{limit: ${e}}`},code(e){const{schema:t,parentSchema:r,it:n}=e,{prefixItems:s}=r;n.items=!0,(0,o.alwaysValidSchema)(n,t)||(s?(0,i.validateAdditionalItems)(e,s):e.ok((0,a.validateArray)(e)))}};t.default=s},57923:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(94227),o={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:r,it:o}=e;if((0,n.alwaysValidSchema)(o,r))return void e.fail();const a=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,(()=>e.reset()),(()=>e.error()))},error:{message:"must NOT be valid"}};t.default=o},96163:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:e})=>n._`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:r,parentSchema:a,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&a.discriminator)return;const s=r,c=t.let("valid",!1),l=t.let("passing",null),u=t.name("_valid");e.setParams({passing:l}),t.block((function(){s.forEach(((r,a)=>{let s;(0,o.alwaysValidSchema)(i,r)?t.var(u,!0):s=e.subschema({keyword:"oneOf",schemaProp:a,compositeRule:!0},u),a>0&&t.if(n._`${u} && ${c}`).assign(c,!1).assign(l,n._`[${l}, ${a}]`).else(),t.if(u,(()=>{t.assign(c,!0),t.assign(l,a),s&&e.mergeEvaluated(s,n.Name)}))}))})),e.result(c,(()=>e.reset()),(()=>e.error(!0)))}};t.default=a},45333:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(15765),o=r(99029),a=r(94227),i=r(94227),s={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,data:s,parentSchema:c,it:l}=e,{opts:u}=l,d=(0,n.allSchemaProperties)(r),f=d.filter((e=>(0,a.alwaysValidSchema)(l,r[e])));if(0===d.length||f.length===d.length&&(!l.opts.unevaluated||!0===l.props))return;const p=u.strictSchema&&!u.allowMatchingProperties&&c.properties,m=t.name("valid");!0===l.props||l.props instanceof o.Name||(l.props=(0,i.evaluatedPropsToName)(t,l.props));const{props:h}=l;function y(e){for(const t in p)new RegExp(e).test(t)&&(0,a.checkStrictMode)(l,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function g(r){t.forIn("key",s,(a=>{t.if(o._`${(0,n.usePattern)(e,r)}.test(${a})`,(()=>{const n=f.includes(r);n||e.subschema({keyword:"patternProperties",schemaProp:r,dataProp:a,dataPropType:i.Type.Str},m),l.opts.unevaluated&&!0!==h?t.assign(o._`${h}[${a}]`,!0):n||l.allErrors||t.if((0,o.not)(m),(()=>t.break()))}))}))}!function(){for(const e of d)p&&y(e),l.allErrors?g(e):(t.var(m,!0),g(e),t.if(m))}()}};t.default=s},65354:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(20494),o={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,n.validateTuple)(e,"items")};t.default=o},40117:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(62586),o=r(15765),a=r(94227),i=r(38660),s={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,parentSchema:s,data:c,it:l}=e;"all"===l.opts.removeAdditional&&void 0===s.additionalProperties&&i.default.code(new n.KeywordCxt(l,i.default,"additionalProperties"));const u=(0,o.allSchemaProperties)(r);for(const n of u)l.definedProperties.add(n);l.opts.unevaluated&&u.length&&!0!==l.props&&(l.props=a.mergeEvaluated.props(t,(0,a.toHash)(u),l.props));const d=u.filter((e=>!(0,a.alwaysValidSchema)(l,r[e])));if(0===d.length)return;const f=t.name("valid");for(const n of d)p(n)?m(n):(t.if((0,o.propertyInData)(t,c,n,l.opts.ownProperties)),m(n),l.allErrors||t.else().var(f,!0),t.endIf()),e.it.definedProperties.add(n),e.ok(f);function p(e){return l.opts.useDefaults&&!l.compositeRule&&void 0!==r[e].default}function m(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},f)}}};t.default=s},19713:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:e})=>n._`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:r,data:a,it:i}=e;if((0,o.alwaysValidSchema)(i,r))return;const s=t.name("valid");t.forIn("key",a,(r=>{e.setParams({propertyName:r}),e.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:!0},s),t.if((0,n.not)(s),(()=>{e.error(!0),i.allErrors||t.break()}))})),e.ok(s)}};t.default=a},14426:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(94227),o={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){void 0===t.if&&(0,n.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};t.default=o},15765:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const n=r(99029),o=r(94227),a=r(42023),i=r(94227);function s(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:n._`Object.prototype.hasOwnProperty`})}function c(e,t,r){return n._`${s(e)}.call(${t}, ${r})`}function l(e,t,r,o){const a=n._`${t}${(0,n.getProperty)(r)} === undefined`;return o?(0,n.or)(a,(0,n.not)(c(e,t,r))):a}function u(e){return e?Object.keys(e).filter((e=>"__proto__"!==e)):[]}t.checkReportMissingProp=function(e,t){const{gen:r,data:o,it:a}=e;r.if(l(r,o,t,a.opts.ownProperties),(()=>{e.setParams({missingProperty:n._`${t}`},!0),e.error()}))},t.checkMissingProp=function({gen:e,data:t,it:{opts:r}},o,a){return(0,n.or)(...o.map((o=>(0,n.and)(l(e,t,o,r.ownProperties),n._`${a} = ${o}`))))},t.reportMissingProp=function(e,t){e.setParams({missingProperty:t},!0),e.error()},t.hasPropFunc=s,t.isOwnProperty=c,t.propertyInData=function(e,t,r,o){const a=n._`${t}${(0,n.getProperty)(r)} !== undefined`;return o?n._`${a} && ${c(e,t,r)}`:a},t.noPropertyInData=l,t.allSchemaProperties=u,t.schemaProperties=function(e,t){return u(t).filter((r=>!(0,o.alwaysValidSchema)(e,t[r])))},t.callValidateCode=function({schemaCode:e,data:t,it:{gen:r,topSchemaRef:o,schemaPath:i,errorPath:s},it:c},l,u,d){const f=d?n._`${e}, ${t}, ${o}${i}`:t,p=[[a.default.instancePath,(0,n.strConcat)(a.default.instancePath,s)],[a.default.parentData,c.parentData],[a.default.parentDataProperty,c.parentDataProperty],[a.default.rootData,a.default.rootData]];c.opts.dynamicRef&&p.push([a.default.dynamicAnchors,a.default.dynamicAnchors]);const m=n._`${f}, ${r.object(...p)}`;return u!==n.nil?n._`${l}.call(${u}, ${m})`:n._`${l}(${m})`};const d=n._`new RegExp`;t.usePattern=function({gen:e,it:{opts:t}},r){const o=t.unicodeRegExp?"u":"",{regExp:a}=t.code,s=a(r,o);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:n._`${"new RegExp"===a.code?d:(0,i.useFunc)(e,a)}(${r}, ${o})`})},t.validateArray=function(e){const{gen:t,data:r,keyword:a,it:i}=e,s=t.name("valid");if(i.allErrors){const e=t.let("valid",!0);return c((()=>t.assign(e,!1))),e}return t.var(s,!0),c((()=>t.break())),s;function c(i){const c=t.const("len",n._`${r}.length`);t.forRange("i",0,c,(r=>{e.subschema({keyword:a,dataProp:r,dataPropType:o.Type.Num},s),t.if((0,n.not)(s),i)}))}},t.validateUnion=function(e){const{gen:t,schema:r,keyword:a,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some((e=>(0,o.alwaysValidSchema)(i,e)))&&!i.opts.unevaluated)return;const s=t.let("valid",!1),c=t.name("_valid");t.block((()=>r.forEach(((r,o)=>{const i=e.subschema({keyword:a,schemaProp:o,compositeRule:!0},c);t.assign(s,n._`${s} || ${c}`);e.mergeValidEvaluated(i,c)||t.if((0,n.not)(s))})))),e.result(s,(()=>e.reset()),(()=>e.error(!0)))}},83463:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=r},72128:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(83463),o=r(13693),a=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",n.default,o.default];t.default=a},13693:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;const n=r(34551),o=r(15765),a=r(99029),i=r(42023),s=r(73835),c=r(94227),l={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:r,it:o}=e,{baseId:i,schemaEnv:c,validateName:l,opts:f,self:p}=o,{root:m}=c;if(("#"===r||"#/"===r)&&i===m.baseId)return function(){if(c===m)return d(e,l,c,c.$async);const r=t.scopeValue("root",{ref:m});return d(e,a._`${r}.validate`,m,m.$async)}();const h=s.resolveRef.call(p,m,i,r);if(void 0===h)throw new n.default(o.opts.uriResolver,i,r);return h instanceof s.SchemaEnv?function(t){const r=u(e,t);d(e,r,t,t.$async)}(h):function(n){const o=t.scopeValue("schema",!0===f.code.source?{ref:n,code:(0,a.stringify)(n)}:{ref:n}),i=t.name("valid"),s=e.subschema({schema:n,dataTypes:[],schemaPath:a.nil,topSchemaRef:o,errSchemaPath:r},i);e.mergeEvaluated(s),e.ok(i)}(h)}};function u(e,t){const{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):a._`${r.scopeValue("wrapper",{ref:t})}.validate`}function d(e,t,r,n){const{gen:s,it:l}=e,{allErrors:u,schemaEnv:d,opts:f}=l,p=f.passContext?i.default.this:a.nil;function m(e){const t=a._`${e}.errors`;s.assign(i.default.vErrors,a._`${i.default.vErrors} === null ? ${t} : ${i.default.vErrors}.concat(${t})`),s.assign(i.default.errors,a._`${i.default.vErrors}.length`)}function h(e){var t;if(!l.opts.unevaluated)return;const n=null===(t=null===r||void 0===r?void 0:r.validate)||void 0===t?void 0:t.evaluated;if(!0!==l.props)if(n&&!n.dynamicProps)void 0!==n.props&&(l.props=c.mergeEvaluated.props(s,n.props,l.props));else{const t=s.var("props",a._`${e}.evaluated.props`);l.props=c.mergeEvaluated.props(s,t,l.props,a.Name)}if(!0!==l.items)if(n&&!n.dynamicItems)void 0!==n.items&&(l.items=c.mergeEvaluated.items(s,n.items,l.items));else{const t=s.var("items",a._`${e}.evaluated.items`);l.items=c.mergeEvaluated.items(s,t,l.items,a.Name)}}n?function(){if(!d.$async)throw new Error("async schema referenced by sync schema");const r=s.let("valid");s.try((()=>{s.code(a._`await ${(0,o.callValidateCode)(e,t,p)}`),h(t),u||s.assign(r,!0)}),(e=>{s.if(a._`!(${e} instanceof ${l.ValidationError})`,(()=>s.throw(e))),m(e),u||s.assign(r,!1)})),e.ok(r)}():e.result((0,o.callValidateCode)(e,t,p),(()=>h(t)),(()=>m(t)))}t.getValidate=u,t.callRef=d,t.default=l},36653:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(97652),a=r(73835),i=r(94227),s={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:e,tagName:t}})=>e===o.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>n._`{error: ${e}, tag: ${r}, tagValue: ${t}}`},code(e){const{gen:t,data:r,schema:s,parentSchema:c,it:l}=e,{oneOf:u}=c;if(!l.opts.discriminator)throw new Error("discriminator: requires discriminator option");const d=s.propertyName;if("string"!=typeof d)throw new Error("discriminator: requires propertyName");if(s.mapping)throw new Error("discriminator: mapping is not supported");if(!u)throw new Error("discriminator: requires oneOf keyword");const f=t.let("valid",!1),p=t.const("tag",n._`${r}${(0,n.getProperty)(d)}`);function m(r){const o=t.name("valid"),a=e.subschema({keyword:"oneOf",schemaProp:r},o);return e.mergeEvaluated(a,n.Name),o}t.if(n._`typeof ${p} == "string"`,(()=>function(){const r=function(){var e;const t={},r=o(c);let n=!0;for(let c=0;c<u.length;c++){let t=u[c];(null===t||void 0===t?void 0:t.$ref)&&!(0,i.schemaHasRulesButRef)(t,l.self.RULES)&&(t=a.resolveRef.call(l.self,l.schemaEnv.root,l.baseId,null===t||void 0===t?void 0:t.$ref),t instanceof a.SchemaEnv&&(t=t.schema));const f=null===(e=null===t||void 0===t?void 0:t.properties)||void 0===e?void 0:e[d];if("object"!=typeof f)throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${d}"`);n=n&&(r||o(t)),s(f,c)}if(!n)throw new Error(`discriminator: "${d}" must be required`);return t;function o({required:e}){return Array.isArray(e)&&e.includes(d)}function s(e,t){if(e.const)f(e.const,t);else{if(!e.enum)throw new Error(`discriminator: "properties/${d}" must have "const" or "enum"`);for(const r of e.enum)f(r,t)}}function f(e,r){if("string"!=typeof e||e in t)throw new Error(`discriminator: "${d}" values must be unique strings`);t[e]=r}}();t.if(!1);for(const e in r)t.elseIf(n._`${p} === ${e}`),t.assign(f,m(r[e]));t.else(),e.error(!1,{discrError:o.DiscrError.Mapping,tag:p,tagName:d}),t.endIf()}()),(()=>e.error(!1,{discrError:o.DiscrError.Tag,tag:p,tagName:d}))),e.ok(f)}};t.default=s},97652:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0,function(e){e.Tag="tag",e.Mapping="mapping"}(t.DiscrError||(t.DiscrError={}))},86144:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(72128),o=r(67060),a=r(56378),i=r(97532),s=r(69857),c=[n.default,o.default,(0,a.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];t.default=c},94737:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>n.str`must match format "${e}"`,params:({schemaCode:e})=>n._`{format: ${e}}`},code(e,t){const{gen:r,data:o,$data:a,schema:i,schemaCode:s,it:c}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:f}=c;l.validateFormats&&(a?function(){const a=r.scopeValue("formats",{ref:f.formats,code:l.code.formats}),i=r.const("fDef",n._`${a}[${s}]`),c=r.let("fType"),u=r.let("format");r.if(n._`typeof ${i} == "object" && !(${i} instanceof RegExp)`,(()=>r.assign(c,n._`${i}.type || "string"`).assign(u,n._`${i}.validate`)),(()=>r.assign(c,n._`"string"`).assign(u,i))),e.fail$data((0,n.or)(!1===l.strictSchema?n.nil:n._`${s} && !${u}`,function(){const e=d.$async?n._`(${i}.async ? await ${u}(${o}) : ${u}(${o}))`:n._`${u}(${o})`,r=n._`(typeof ${u} == "function" ? ${e} : ${u}.test(${o}))`;return n._`${u} && ${u} !== true && ${c} === ${t} && !${r}`}()))}():function(){const a=f.formats[i];if(!a)return void function(){if(!1===l.strictSchema)return void f.logger.warn(e());throw new Error(e());function e(){return`unknown format "${i}" ignored in schema at path "${u}"`}}();if(!0===a)return;const[s,c,p]=function(e){const t=e instanceof RegExp?(0,n.regexpCode)(e):l.code.formats?n._`${l.code.formats}${(0,n.getProperty)(i)}`:void 0,o=r.scopeValue("formats",{key:i,ref:e,code:t});if("object"==typeof e&&!(e instanceof RegExp))return[e.type||"string",e.validate,n._`${o}.validate`];return["string",e,o]}(a);s===t&&e.pass(function(){if("object"==typeof a&&!(a instanceof RegExp)&&a.async){if(!d.$async)throw new Error("async format in sync schema");return n._`await ${p}(${o})`}return"function"==typeof c?n._`${p}(${o})`:n._`${p}.test(${o})`}())}())}};t.default=o},97532:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=[r(94737).default];t.default=n},69857:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},27935:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a=r(76250),i={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:e})=>n._`{allowedValue: ${e}}`},code(e){const{gen:t,data:r,$data:i,schemaCode:s,schema:c}=e;i||c&&"object"==typeof c?e.fail$data(n._`!${(0,o.useFunc)(t,a.default)}(${r}, ${s})`):e.fail(n._`${c} !== ${r}`)}};t.default=i},28643:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a=r(76250),i={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:e})=>n._`{allowedValues: ${e}}`},code(e){const{gen:t,data:r,$data:i,schema:s,schemaCode:c,it:l}=e;if(!i&&0===s.length)throw new Error("enum must have non-empty array");const u=s.length>=l.opts.loopEnum;let d;const f=()=>null!==d&&void 0!==d?d:d=(0,o.useFunc)(t,a.default);let p;if(u||i)p=t.let("valid"),e.block$data(p,(function(){t.assign(p,!1),t.forOf("v",c,(e=>t.if(n._`${f()}(${r}, ${e})`,(()=>t.assign(p,!0).break()))))}));else{if(!Array.isArray(s))throw new Error("ajv implementation error");const e=t.const("vSchema",c);p=(0,n.or)(...s.map(((t,o)=>function(e,t){const o=s[t];return"object"===typeof o&&null!==o?n._`${f()}(${r}, ${e}[${t}])`:n._`${r} === ${o}`}(e,o))))}e.pass(p)}};t.default=i},67060:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(75882),o=r(63439),a=r(77307),i=r(90422),s=r(34486),c=r(34003),l=r(61163),u=r(60617),d=r(27935),f=r(28643),p=[n.default,o.default,a.default,i.default,s.default,c.default,l.default,u.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},d.default,f.default];t.default=p},61163:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const r="maxItems"===e?"more":"fewer";return n.str`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>n._`{limit: ${e}}`},code(e){const{keyword:t,data:r,schemaCode:o}=e,a="maxItems"===t?n.operators.GT:n.operators.LT;e.fail$data(n._`${r}.length ${a} ${o}`)}};t.default=o},77307:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=r(94227),a=r(53853),i={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const r="maxLength"===e?"more":"fewer";return n.str`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>n._`{limit: ${e}}`},code(e){const{keyword:t,data:r,schemaCode:i,it:s}=e,c="maxLength"===t?n.operators.GT:n.operators.LT,l=!1===s.opts.unicode?n._`${r}.length`:n._`${(0,o.useFunc)(e.gen,a.default)}(${r})`;e.fail$data(n._`${l} ${c} ${i}`)}};t.default=i},75882:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o=n.operators,a={maximum:{okStr:"<=",ok:o.LTE,fail:o.GT},minimum:{okStr:">=",ok:o.GTE,fail:o.LT},exclusiveMaximum:{okStr:"<",ok:o.LT,fail:o.GTE},exclusiveMinimum:{okStr:">",ok:o.GT,fail:o.LTE}},i={message:({keyword:e,schemaCode:t})=>n.str`must be ${a[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>n._`{comparison: ${a[e].okStr}, limit: ${t}}`},s={keyword:Object.keys(a),type:"number",schemaType:"number",$data:!0,error:i,code(e){const{keyword:t,data:r,schemaCode:o}=e;e.fail$data(n._`${r} ${a[t].fail} ${o} || isNaN(${r})`)}};t.default=s},34486:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const r="maxProperties"===e?"more":"fewer";return n.str`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>n._`{limit: ${e}}`},code(e){const{keyword:t,data:r,schemaCode:o}=e,a="maxProperties"===t?n.operators.GT:n.operators.LT;e.fail$data(n._`Object.keys(${r}).length ${a} ${o}`)}};t.default=o},63439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(99029),o={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:e})=>n.str`must be multiple of ${e}`,params:({schemaCode:e})=>n._`{multipleOf: ${e}}`},code(e){const{gen:t,data:r,schemaCode:o,it:a}=e,i=a.opts.multipleOfPrecision,s=t.let("res"),c=i?n._`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:n._`${s} !== parseInt(${s})`;e.fail$data(n._`(${o} === 0 || (${s} = ${r}/${o}, ${c}))`)}};t.default=o},90422:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(15765),o=r(99029),a={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>o.str`must match pattern "${e}"`,params:({schemaCode:e})=>o._`{pattern: ${e}}`},code(e){const{data:t,$data:r,schema:a,schemaCode:i,it:s}=e,c=s.opts.unicodeRegExp?"u":"",l=r?o._`(new RegExp(${i}, ${c}))`:(0,n.usePattern)(e,a);e.fail$data(o._`!${l}.test(${t})`)}};t.default=a},34003:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(15765),o=r(99029),a=r(94227),i={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:e}})=>o.str`must have required property '${e}'`,params:({params:{missingProperty:e}})=>o._`{missingProperty: ${e}}`},code(e){const{gen:t,schema:r,schemaCode:i,data:s,$data:c,it:l}=e,{opts:u}=l;if(!c&&0===r.length)return;const d=r.length>=u.loopRequired;if(l.allErrors?function(){if(d||c)e.block$data(o.nil,f);else for(const t of r)(0,n.checkReportMissingProp)(e,t)}():function(){const a=t.let("missing");if(d||c){const r=t.let("valid",!0);e.block$data(r,(()=>function(r,a){e.setParams({missingProperty:r}),t.forOf(r,i,(()=>{t.assign(a,(0,n.propertyInData)(t,s,r,u.ownProperties)),t.if((0,o.not)(a),(()=>{e.error(),t.break()}))}),o.nil)}(a,r))),e.ok(r)}else t.if((0,n.checkMissingProp)(e,r,a)),(0,n.reportMissingProp)(e,a),t.else()}(),u.strictRequired){const t=e.parentSchema.properties,{definedProperties:n}=e.it;for(const e of r)if(void 0===(null===t||void 0===t?void 0:t[e])&&!n.has(e)){const t=`required property "${e}" is not defined at "${l.schemaEnv.baseId+l.errSchemaPath}" (strictRequired)`;(0,a.checkStrictMode)(l,t,l.opts.strictRequired)}}function f(){t.forOf("prop",i,(r=>{e.setParams({missingProperty:r}),t.if((0,n.noPropertyInData)(t,s,r,u.ownProperties),(()=>e.error()))}))}}};t.default=i},60617:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10208),o=r(99029),a=r(94227),i=r(76250),s={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:e,j:t}})=>o.str`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>o._`{i: ${e}, j: ${t}}`},code(e){const{gen:t,data:r,$data:s,schema:c,parentSchema:l,schemaCode:u,it:d}=e;if(!s&&!c)return;const f=t.let("valid"),p=l.items?(0,n.getSchemaTypes)(l.items):[];function m(a,i){const s=t.name("item"),c=(0,n.checkDataTypes)(p,s,d.opts.strictNumbers,n.DataType.Wrong),l=t.const("indices",o._`{}`);t.for(o._`;${a}--;`,(()=>{t.let(s,o._`${r}[${a}]`),t.if(c,o._`continue`),p.length>1&&t.if(o._`typeof ${s} == "string"`,o._`${s} += "_"`),t.if(o._`typeof ${l}[${s}] == "number"`,(()=>{t.assign(i,o._`${l}[${s}]`),e.error(),t.assign(f,!1).break()})).code(o._`${l}[${s}] = ${a}`)}))}function h(n,s){const c=(0,a.useFunc)(t,i.default),l=t.name("outer");t.label(l).for(o._`;${n}--;`,(()=>t.for(o._`${s} = ${n}; ${s}--;`,(()=>t.if(o._`${c}(${r}[${n}], ${r}[${s}])`,(()=>{e.error(),t.assign(f,!1).break(l)}))))))}e.block$data(f,(function(){const n=t.let("i",o._`${r}.length`),a=t.let("j");e.setParams({i:n,j:a}),t.assign(f,!0),t.if(o._`${n} > 1`,(()=>(p.length>0&&!p.some((e=>"object"===e||"array"===e))?m:h)(n,a)))}),o._`${u} === false`),e.ok(f)}};t.default=s},6641:(e,t,r)=>{"use strict";var n=r(7800),o=r(96552),a=r(82986),i=Math.pow(2,31)-1;function s(e,t){var r,n=1;if(0===e)return t;if(0===t)return e;for(;e%2===0&&t%2===0;)e/=2,t/=2,n*=2;for(;e%2===0;)e/=2;for(;t;){for(;t%2===0;)t/=2;e>t&&(r=t,t=e,e=r),t-=e}return n*e}function c(e,t){var r,n=0;if(0===e)return t;if(0===t)return e;for(;0===(1&e)&&0===(1&t);)e>>>=1,t>>>=1,n++;for(;0===(1&e);)e>>>=1;for(;t;){for(;0===(1&t);)t>>>=1;e>t&&(r=t,t=e,e=r),t-=e}return e<<n}e.exports=function(){var e,t,r,l,u,d,f,p=arguments.length;for(e=new Array(p),f=0;f<p;f++)e[f]=arguments[f];if(o(e)){if(2===p)return(u=e[0])<0&&(u=-u),(d=e[1])<0&&(d=-d),u<=i&&d<=i?c(u,d):s(u,d);r=e}else{if(!n(e[0]))throw new TypeError("gcd()::invalid input argument. Must provide an array of integers. Value: `"+e[0]+"`.");if(p>1){if(r=e[0],t=e[1],!a(t))throw new TypeError("gcd()::invalid input argument. Accessor must be a function. Value: `"+t+"`.")}else r=e[0]}if((l=r.length)<2)return null;if(t){for(u=new Array(l),f=0;f<l;f++)u[f]=t(r[f],f);r=u}if(p<3&&!o(r))throw new TypeError("gcd()::invalid input argument. Accessed array values must be integers. Value: `"+r+"`.");for(f=0;f<l;f++)(u=r[f])<0&&(r[f]=-u);for(u=r[0],f=1;f<l;f++)u=(d=r[f])<=i&&u<=i?c(u,d):s(u,d);return u}},78867:(e,t,r)=>{"use strict";var n=r(6641),o=r(7800),a=r(96552),i=r(82986);e.exports=function(){var e,t,r,s,c,l,u,d=arguments.length;for(e=new Array(d),u=0;u<d;u++)e[u]=arguments[u];if(a(e)){if(2===d)return(c=e[0])<0&&(c=-c),(l=e[1])<0&&(l=-l),0===c||0===l?0:c/n(c,l)*l;r=e}else{if(!o(e[0]))throw new TypeError("lcm()::invalid input argument. Must provide an array of integers. Value: `"+e[0]+"`.");if(d>1){if(r=e[0],t=e[1],!i(t))throw new TypeError("lcm()::invalid input argument. Accessor must be a function. Value: `"+t+"`.")}else r=e[0]}if((s=r.length)<2)return null;if(t){for(c=new Array(s),u=0;u<s;u++)c[u]=t(r[u],u);r=c}if(d<3&&!a(r))throw new TypeError("lcm()::invalid input argument. Accessed array values must be integers. Value: `"+r+"`.");for(u=0;u<s;u++)(c=r[u])<0&&(r[u]=-c);for(c=r[0],u=1;u<s;u++){if(l=r[u],0===c||0===l)return 0;c=c/n(c,l)*l}return c}},32017:e=>{"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,o,a;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(o=n;0!==o--;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(a=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(o=n;0!==o--;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;0!==o--;){var i=a[o];if(!e(t[i],r[i]))return!1}return!0}return t!==t&&r!==r}},82682:(e,t,r)=>{"use strict";var n=r(69600),o=Object.prototype.toString,a=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){if(!n(t))throw new TypeError("iterator must be a function");var i;arguments.length>=3&&(i=r),"[object Array]"===o.call(e)?function(e,t,r){for(var n=0,o=e.length;n<o;n++)a.call(e,n)&&(null==r?t(e[n],n,e):t.call(r,e[n],n,e))}(e,t,i):"string"===typeof e?function(e,t,r){for(var n=0,o=e.length;n<o;n++)null==r?t(e.charAt(n),n,e):t.call(r,e.charAt(n),n,e)}(e,t,i):function(e,t,r){for(var n in e)a.call(e,n)&&(null==r?t(e[n],n,e):t.call(r,e[n],n,e))}(e,t,i)}},56698:e=>{"function"===typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},69600:e=>{"use strict";var t,r,n=Function.prototype.toString,o="object"===typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"===typeof o&&"function"===typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o((function(){throw 42}),null,t)}catch(p){p!==r&&(o=null)}else o=null;var a=/^\s*class\b/,i=function(e){try{var t=n.call(e);return a.test(t)}catch(r){return!1}},s=function(e){try{return!i(e)&&(n.call(e),!0)}catch(t){return!1}},c=Object.prototype.toString,l="function"===typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),d=function(){return!1};if("object"===typeof document){var f=document.all;c.call(f)===c.call(document.all)&&(d=function(e){if((u||!e)&&("undefined"===typeof e||"object"===typeof e))try{var t=c.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(r){}return!1})}e.exports=o?function(e){if(d(e))return!0;if(!e)return!1;if("function"!==typeof e&&"object"!==typeof e)return!1;try{o(e,null,t)}catch(n){if(n!==r)return!1}return!i(e)&&s(e)}:function(e){if(d(e))return!0;if(!e)return!1;if("function"!==typeof e&&"object"!==typeof e)return!1;if(l)return s(e);if(i(e))return!1;var t=c.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&s(e)}},48184:(e,t,r)=>{"use strict";var n,o=Object.prototype.toString,a=Function.prototype.toString,i=/^\s*(?:function)?\*/,s=r(49092)(),c=Object.getPrototypeOf;e.exports=function(e){if("function"!==typeof e)return!1;if(i.test(a.call(e)))return!0;if(!s)return"[object GeneratorFunction]"===o.call(e);if(!c)return!1;if("undefined"===typeof n){var t=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(e){}}();n=!!t&&c(t)}return c(e)===n}},35680:(e,t,r)=>{"use strict";var n=r(25767);e.exports=function(e){return!!n(e)}},90370:(e,t,r)=>{var n=r(2404),o=r(33031),a=r(63375),i=r(9063),s=r(84684),c=r(80191),l=r(11331),u=r(53812),d=e=>Array.isArray(e)?e:[e],f=e=>void 0===e,p=e=>l(e)||Array.isArray(e)?Object.keys(e):[],m=(e,t)=>e.hasOwnProperty(t),h=e=>o(a(e)),y=e=>f(e)||Array.isArray(e)&&0===e.length,g=(e,t,r,n)=>t&&m(t,r)&&e&&m(e,r)&&n(e[r],t[r]),v=(e,t)=>f(e)&&0===t||f(t)&&0===e||n(e,t),b=e=>f(e)||n(e,{})||!0===e,$=e=>f(e)||n(e,{}),w=e=>f(e)||l(e)||!0===e||!1===e;function S(e,t){return!(!y(e)||!y(t))||n(h(e),h(t))}function _(e,t,r,o){var i=a(p(e).concat(p(t)));return!(!$(e)||!$(t))||(!$(e)||!p(t).length)&&((!$(t)||!p(e).length)&&i.every((function(r){var a=e[r],i=t[r];return Array.isArray(a)&&Array.isArray(i)?n(h(e),h(t)):!(Array.isArray(a)&&!Array.isArray(i))&&(!(Array.isArray(i)&&!Array.isArray(a))&&g(e,t,r,o))})))}function x(e,t,r,n){var o=i(e,n),a=i(t,n);return c(o,a,n).length===Math.max(o.length,a.length)}var E={title:n,uniqueItems:(e,t)=>f(e)&&!1===t||f(t)&&!1===e||n(e,t),minLength:v,minItems:v,minProperties:v,required:S,enum:S,type:function(e,t){return e=d(e),t=d(t),n(h(e),h(t))},items:function(e,t,r,o){return l(e)&&l(t)?o(e,t):Array.isArray(e)&&Array.isArray(t)?_(e,t,0,o):n(e,t)},anyOf:x,allOf:x,oneOf:x,properties:_,patternProperties:_,dependencies:_},j=["properties","patternProperties","dependencies","uniqueItems","minLength","minItems","minProperties","required"],k=["additionalProperties","additionalItems","contains","propertyNames","not"];e.exports=function e(t,r,o){if(o=s(o,{ignore:[]}),b(t)&&b(r))return!0;if(!w(t)||!w(r))throw new Error("Either of the values are not a JSON schema.");if(t===r)return!0;if(u(t)&&u(r))return t===r;if(void 0===t&&!1===r||void 0===r&&!1===t)return!1;if(f(t)&&!f(r)||!f(t)&&f(r))return!1;var i=a(Object.keys(t).concat(Object.keys(r)));if(o.ignore.length&&(i=i.filter((e=>-1===o.ignore.indexOf(e)))),!i.length)return!0;function c(t,r){return e(t,r,o)}return i.every((function(a){var i=t[a],s=r[a];if(-1!==k.indexOf(a))return e(i,s,o);var l=E[a];if(l||(l=n),n(i,s))return!0;if(-1===j.indexOf(a)&&(!m(t,a)&&m(r,a)||m(t,a)&&!m(r,a)))return i===s;var d=l(i,s,a,c);if(!u(d))throw new Error("Comparer must return true or false");return d}))}},5109:(e,t,r)=>{const n=r(35970),o=r(3176),a=r(11331),i=r(63375),s=r(9063),c=r(91648);const l=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),u=e=>a(e)||Array.isArray(e)?Object.keys(e):[],d=e=>!u(e).length&&!1!==e&&!0!==e;e.exports={allUniqueKeys:e=>i(o(e.map(u))),deleteUndefinedProps:function(e){for(const t in e)l(e,t)&&d(e[t])&&delete e[t];return e},getValues:(e,t)=>e.map((e=>e&&e[t])),has:l,isEmptySchema:d,isSchema:e=>a(e)||!0===e||!1===e,keys:u,notUndefined:e=>void 0!==e,uniqWith:s,withoutArr:(e,...t)=>c.apply(null,[e].concat(n(t)))}},11051:(e,t,r)=>{const n=r(90370),o=r(39754),{allUniqueKeys:a,deleteUndefinedProps:i,has:s,isSchema:c,notUndefined:l,uniqWith:u}=r(5109);function d(e,t,r){return a(r).reduce((function(r,o){const a=function(e,t){return e.map((function(e){if(e){if(!Array.isArray(e.items))return e.items;{const r=e.items[t];if(c(r))return r;if(s(e,"additionalItems"))return e.additionalItems}}}))}(e,o),i=u(a.filter(l),n);return r[o]=t(i,o),r}),[])}e.exports={keywords:["items","additionalItems"],resolver(e,t,r){const n=e.map((e=>e.items)),a=n.filter(l),s={};let u;var f;return a.every(c)?s.items=r.items(n):s.items=d(e,r.items,n),a.every(Array.isArray)?u=e.map((e=>e.additionalItems)):a.some(Array.isArray)&&(u=e.map((function(e){if(e)return Array.isArray(e.items)?e.additionalItems:e.items}))),u&&(s.additionalItems=r.additionalItems(u)),!1===s.additionalItems&&Array.isArray(s.items)&&(f=s.items,o(f,(function(e,t){!1===e&&f.splice(t,1)}))),i(s)}}},7894:(e,t,r)=>{const n=r(90370),o=r(39754),{allUniqueKeys:a,deleteUndefinedProps:i,getValues:s,keys:c,notUndefined:l,uniqWith:u,withoutArr:d}=r(5109);function f(e,t){return a(e).reduce((function(r,o){const a=s(e,o),i=u(a.filter(l),n);return r[o]=t(i,o),r}),{})}e.exports={keywords:["properties","patternProperties","additionalProperties"],resolver(e,t,r,n){n.ignoreAdditionalProperties||(e.forEach((function(t){const n=e.filter((e=>e!==t)),o=c(t.properties),a=c(t.patternProperties).map((e=>new RegExp(e)));n.forEach((function(e){const n=c(e.properties),i=n.filter((e=>a.some((t=>t.test(e)))));d(n,o,i).forEach((function(n){e.properties[n]=r.properties([e.properties[n],t.additionalProperties],n)}))}))})),e.forEach((function(t){const r=e.filter((e=>e!==t)),n=c(t.patternProperties);!1===t.additionalProperties&&r.forEach((function(e){const t=c(e.patternProperties);d(t,n).forEach((t=>delete e.patternProperties[t]))}))})));const a={additionalProperties:r.additionalProperties(e.map((e=>e.additionalProperties))),patternProperties:f(e.map((e=>e.patternProperties)),r.patternProperties),properties:f(e.map((e=>e.properties)),r.properties)};var s;return!1===a.additionalProperties&&o(s=a.properties,(function(e,t){!1===e&&delete s[t]})),i(a)}}},33978:(e,t,r)=>{const n=r(88055),o=r(90370),a=r(78867),i=r(74354),s=r(35970),c=r(3176),l=r(5287),u=r(80191),d=r(2404),f=r(11331),p=r(12358),m=r(33031),h=r(63375),y=r(9063),g=r(7894),v=r(11051),b=(e,t)=>-1!==e.indexOf(t),$=e=>f(e)||!0===e||!1===e,w=e=>!1===e,S=e=>!0===e,_=(e,t,r)=>r(e),x=e=>m(h(c(e))),E=e=>void 0!==e,j=e=>h(c(e.map(N))),k=e=>e[0],O=e=>Math.max.apply(Math,e),C=e=>Math.min.apply(Math,e);function A(e){let{allOf:t=[],...r}=e;return r=f(e)?r:e,[r,...t.map(A)]}function P(e,t){return e.map((e=>e&&e[t]))}function N(e){return f(e)||Array.isArray(e)?Object.keys(e):[]}function D(e,t){if(t=t||[],!e.length)return t;const r=e.slice(0).shift(),n=e.slice(1);return t.length?D(n,s(t.map((e=>r.map((t=>[t].concat(e))))))):D(n,r.map((e=>e)))}function I(e,t){let r;try{r=e.map((function(e){return JSON.stringify(e,null,2)})).join("\n")}catch(n){r=e.join(", ")}throw new Error('Could not resolve values for path:"'+t.join(".")+'". They are probably incompatible. Values: \n'+r)}function F(e,t,r,n,a,i){if(e.length){const s=a.complexResolvers[t];if(!s||!s.resolver)throw new Error("No resolver found for "+t);const c=r.map((t=>e.reduce(((e,r)=>(void 0!==t[r]&&(e[r]=t[r]),e)),{}))),l=y(c,o),u=s.keywords.reduce(((e,t)=>({...e,[t]:(e,r=[])=>n(e,null,i.concat(t,r))})),{}),d=s.resolver(l,i.concat(t),u,a);return f(d)||I(l,i.concat(t)),d}}function T(e){return{required:e}}const R=["properties","patternProperties","definitions","dependencies"],M=["anyOf","oneOf"],U=["additionalProperties","additionalItems","contains","propertyNames","not","items"],V={type(e){if(e.some(Array.isArray)){const t=e.map((function(e){return Array.isArray(e)?e:[e]})),r=l.apply(null,t);if(1===r.length)return r[0];if(r.length>1)return h(r)}},dependencies:(e,t,r)=>j(e).reduce((function(t,n){const a=P(e,n);let i=y(a.filter(E),d);const s=i.filter(Array.isArray);if(s.length){if(s.length===i.length)t[n]=x(i);else{const e=i.filter($),o=s.map(T);t[n]=r(e.concat(o),n)}return t}return i=y(i,o),t[n]=r(i,n),t}),{}),oneOf(e,t,r){const a=function(e,t){return e.map((function(e,r){try{return t(e,r)}catch(n){return}})).filter(E)}(D(n(e)),r),i=y(a,o);if(i.length)return i},not:e=>({anyOf:e}),pattern:e=>e.map((e=>"(?="+e+")")).join(""),multipleOf(e){let t=e.slice(0),r=1;for(;t.some((e=>!Number.isInteger(e)));)t=t.map((e=>10*e)),r*=10;return a(t)/r},enum(e){const t=u.apply(null,e.concat(d));if(t.length)return m(t)}};V.$id=k,V.$ref=k,V.$schema=k,V.additionalItems=_,V.additionalProperties=_,V.anyOf=V.oneOf,V.contains=_,V.default=k,V.definitions=V.dependencies,V.description=k,V.examples=e=>y(s(e),d),V.exclusiveMaximum=C,V.exclusiveMinimum=O,V.items=v,V.maximum=C,V.maxItems=C,V.maxLength=C,V.maxProperties=C,V.minimum=O,V.minItems=O,V.minLength=O,V.minProperties=O,V.properties=g,V.propertyNames=_,V.required=e=>x(e),V.title=k,V.uniqueItems=e=>e.some(S);const B={properties:g,items:v};function z(e,t,r){r=r||[],t=i(t,{ignoreAdditionalProperties:!1,resolvers:V,complexResolvers:B,deep:!0});const a=Object.entries(t.complexResolvers);const s=function e(i,s,c){i=n(i.filter(E)),c=c||[];const l=f(s)?s:{};if(!i.length)return;if(i.some(w))return!1;if(i.every(S))return!0;i=i.filter(f);const u=j(i);if(t.deep&&b(u,"allOf"))return z({allOf:i},t,r);const d=a.map((([e,t])=>u.filter((e=>t.keywords.includes(e)))));return d.forEach((e=>p(u,e))),u.forEach((function(r){const n=P(i,r),a=y(n.filter(E),function(e){return function(t,r){return o({[e]:t},{[e]:r})}}(r));if(1===a.length&&b(M,r))l[r]=a[0].map((t=>e([t],t)));else if(1!==a.length||b(R,r)||b(U,r)){const n=t.resolvers[r]||t.resolvers.defaultResolver;if(!n)throw new Error("No resolver found for key "+r+". You can provide a resolver for this keyword in the options, or provide a default resolver.");const o=(t,n=[])=>e(t,null,c.concat(r,n));l[r]=n(a,c.concat(r),o,t),void 0===l[r]?I(a,c.concat(r)):void 0===l[r]&&delete l[r]}else l[r]=a[0]})),a.reduce(((r,[n,o],a)=>({...r,...F(d[a],n,i,e,t,c)})),l)}(c(A(e)));return s}z.options={resolvers:V},e.exports=z},7106:e=>{"use strict";var t=e.exports=function(e,t,n){"function"==typeof t&&(n=t,t={}),r(t,"function"==typeof(n=t.cb||n)?n:n.pre||function(){},n.post||function(){},e,"",e)};function r(e,n,o,a,i,s,c,l,u,d){if(a&&"object"==typeof a&&!Array.isArray(a)){for(var f in n(a,i,s,c,l,u,d),a){var p=a[f];if(Array.isArray(p)){if(f in t.arrayKeywords)for(var m=0;m<p.length;m++)r(e,n,o,p[m],i+"/"+f+"/"+m,s,i,f,a,m)}else if(f in t.propsKeywords){if(p&&"object"==typeof p)for(var h in p)r(e,n,o,p[h],i+"/"+f+"/"+h.replace(/~/g,"~0").replace(/\//g,"~1"),s,i,f,a,h)}else(f in t.keywords||e.allKeys&&!(f in t.skipKeywords))&&r(e,n,o,p,i+"/"+f,s,i,f,a)}o(a,i,s,c,l,u,d)}}t.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},t.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},t.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},t.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},56239:(e,t)=>{var r=/~/,n=/~[01]/g;function o(e){switch(e){case"~1":return"/";case"~0":return"~"}throw new Error("Invalid tilde escape: "+e)}function a(e){return r.test(e)?e.replace(n,o):e}function i(e){if("string"===typeof e){if(""===(e=e.split("/"))[0])return e;throw new Error("Invalid JSON pointer.")}if(Array.isArray(e)){for(const t of e)if("string"!==typeof t&&"number"!==typeof t)throw new Error("Invalid JSON pointer. Must be of type string or number.");return e}throw new Error("Invalid JSON pointer.")}function s(e,t){if("object"!==typeof e)throw new Error("Invalid input object.");var r=(t=i(t)).length;if(1===r)return e;for(var n=1;n<r;){if(e=e[a(t[n++])],r===n)return e;if("object"!==typeof e||null===e)return}}function c(e,t,r){if("object"!==typeof e)throw new Error("Invalid input object.");if(0===(t=i(t)).length)throw new Error("Invalid JSON pointer for set.");return function(e,t,r){for(var n,o,i=1,s=t.length;i<s;){if("constructor"===t[i]||"prototype"===t[i]||"__proto__"===t[i])return e;if(n=a(t[i++]),o=s>i,"undefined"===typeof e[n]&&(Array.isArray(e)&&"-"===n&&(n=e.length),o&&(""!==t[i]&&t[i]<1/0||"-"===t[i]?e[n]=[]:e[n]={})),!o)break;e=e[n]}var c=e[n];return void 0===r?delete e[n]:e[n]=r,c}(e,t,r)}t.get=s,t.set=c,t.compile=function(e){var t=i(e);return{get:function(e){return s(e,t)},set:function(e,r){return c(e,t,r)}}}},40882:e=>{e.exports=function(e,t,r,n){var o=-1,a=null==e?0:e.length;for(n&&a&&(r=e[++o]);++o<a;)r=t(r,e[o],o,e);return r}},20426:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e,r){return null!=e&&t.call(e,r)}},12027:e=>{e.exports=function(e,t,r,n){for(var o=r-1,a=e.length;++o<a;)if(n(e[o],t))return o;return-1}},27185:(e,t,r)=>{var n=r(38859),o=r(15325),a=r(29905),i=r(34932),s=r(27301),c=r(19219),l=Math.min;e.exports=function(e,t,r){for(var u=r?a:o,d=e[0].length,f=e.length,p=f,m=Array(f),h=1/0,y=[];p--;){var g=e[p];p&&t&&(g=i(g,s(t))),h=l(g.length,h),m[p]=!r&&(t||d>=120&&g.length>=120)?new n(p&&g):void 0}g=e[0];var v=-1,b=m[0];e:for(;++v<d&&y.length<h;){var $=g[v],w=t?t($):$;if($=r||0!==$?$:0,!(b?c(b,w):u(y,w,r))){for(p=f;--p;){var S=m[p];if(!(S?c(S,w):u(e[p],w,r)))continue e}b&&b.push(w),y.push($)}}return y}},46155:(e,t,r)=>{var n=r(34932),o=r(47422),a=r(15389),i=r(5128),s=r(73937),c=r(27301),l=r(43714),u=r(83488),d=r(56449);e.exports=function(e,t,r){t=t.length?n(t,(function(e){return d(e)?function(t){return o(t,1===e.length?e[0]:e)}:e})):[u];var f=-1;t=n(t,c(a));var p=i(e,(function(e,r,o){return{criteria:n(t,(function(t){return t(e)})),index:++f,value:e}}));return s(p,(function(e,t){return l(e,t,r)}))}},76001:(e,t,r)=>{var n=r(97420),o=r(80631);e.exports=function(e,t){return n(e,t,(function(t,r){return o(e,r)}))}},97420:(e,t,r)=>{var n=r(47422),o=r(73170),a=r(31769);e.exports=function(e,t,r){for(var i=-1,s=t.length,c={};++i<s;){var l=t[i],u=n(e,l);r(u,l)&&o(c,a(l,e),u)}return c}},21988:(e,t,r)=>{var n=r(34932),o=r(96131),a=r(12027),i=r(27301),s=r(23007),c=Array.prototype.splice;e.exports=function(e,t,r,l){var u=l?a:o,d=-1,f=t.length,p=e;for(e===t&&(t=s(t)),r&&(p=n(e,i(r)));++d<f;)for(var m=0,h=t[d],y=r?r(h):h;(m=u(p,y,m,l))>-1;)p!==e&&c.call(p,m,1),c.call(e,m,1);return e}},85558:e=>{e.exports=function(e,t,r,n,o){return o(e,(function(e,o,a){r=n?(n=!1,e):t(r,e,o,a)})),r}},73170:(e,t,r)=>{var n=r(16547),o=r(31769),a=r(30361),i=r(23805),s=r(77797);e.exports=function(e,t,r,c){if(!i(e))return e;for(var l=-1,u=(t=o(t,e)).length,d=u-1,f=e;null!=f&&++l<u;){var p=s(t[l]),m=r;if("__proto__"===p||"constructor"===p||"prototype"===p)return e;if(l!=d){var h=f[p];void 0===(m=c?c(h,p,f):void 0)&&(m=i(h)?h:a(t[l+1])?[]:{})}n(f,p,m),f=f[p]}return e}},73937:e=>{e.exports=function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}},3122:(e,t,r)=>{var n=r(83693);e.exports=function(e){return n(e)?e:[]}},53730:(e,t,r)=>{var n=r(44394);e.exports=function(e,t){if(e!==t){var r=void 0!==e,o=null===e,a=e===e,i=n(e),s=void 0!==t,c=null===t,l=t===t,u=n(t);if(!c&&!u&&!i&&e>t||i&&s&&l&&!c&&!u||o&&s&&l||!r&&l||!a)return 1;if(!o&&!i&&!u&&e<t||u&&r&&a&&!o&&!i||c&&r&&a||!s&&a||!l)return-1}return 0}},43714:(e,t,r)=>{var n=r(53730);e.exports=function(e,t,r){for(var o=-1,a=e.criteria,i=t.criteria,s=a.length,c=r.length;++o<s;){var l=n(a[o],i[o]);if(l)return o>=c?l:l*("desc"==r[o]?-1:1)}return e.index-t.index}},52606:(e,t,r)=>{var n=r(85250),o=r(23805);e.exports=function e(t,r,a,i,s,c){return o(t)&&o(r)&&(c.set(r,t),n(t,r,void 0,e,c),c.delete(r)),t}},84684:(e,t,r)=>{var n=r(69302),o=r(75288),a=r(36800),i=r(37241),s=Object.prototype,c=s.hasOwnProperty,l=n((function(e,t){e=Object(e);var r=-1,n=t.length,l=n>2?t[2]:void 0;for(l&&a(t[0],t[1],l)&&(n=1);++r<n;)for(var u=t[r],d=i(u),f=-1,p=d.length;++f<p;){var m=d[f],h=e[m];(void 0===h||o(h,s[m])&&!c.call(e,m))&&(e[m]=u[m])}return e}));e.exports=l},74354:(e,t,r)=>{var n=r(91033),o=r(69302),a=r(52606),i=r(6924),s=o((function(e){return e.push(void 0,a),n(i,void 0,e)}));e.exports=s},3176:(e,t,r)=>{var n=r(83120);e.exports=function(e){return(null==e?0:e.length)?n(e,Infinity):[]}},39754:(e,t,r)=>{var n=r(83729),o=r(80909),a=r(24066),i=r(56449);e.exports=function(e,t){return(i(e)?n:o)(e,a(t))}},61448:(e,t,r)=>{var n=r(20426),o=r(49326);e.exports=function(e,t){return null!=e&&o(e,t,n)}},5287:(e,t,r)=>{var n=r(34932),o=r(27185),a=r(69302),i=r(3122),s=a((function(e){var t=n(e,i);return t.length&&t[0]===e[0]?o(t):[]}));e.exports=s},80191:(e,t,r)=>{var n=r(34932),o=r(27185),a=r(69302),i=r(3122),s=r(68090),c=a((function(e){var t=s(e),r=n(e,i);return(t="function"==typeof t?t:void 0)&&r.pop(),r.length&&r[0]===e[0]?o(r,void 0,t):[]}));e.exports=c},53812:(e,t,r)=>{var n=r(72552),o=r(40346);e.exports=function(e){return!0===e||!1===e||o(e)&&"[object Boolean]"==n(e)}},29132:(e,t,r)=>{var n=r(60270);e.exports=function(e,t,r){var o=(r="function"==typeof r?r:void 0)?r(e,t):void 0;return void 0===o?n(e,t,void 0,r):!!o}},69843:e=>{e.exports=function(e){return null==e}},98023:(e,t,r)=>{var n=r(72552),o=r(40346);e.exports=function(e){return"number"==typeof e||o(e)&&"[object Number]"==n(e)}},6924:(e,t,r)=>{var n=r(85250),o=r(20999)((function(e,t,r,o){n(e,t,r,o)}));e.exports=o},44383:(e,t,r)=>{var n=r(76001),o=r(38816)((function(e,t){return null==e?{}:n(e,t)}));e.exports=o},12358:(e,t,r)=>{var n=r(21988);e.exports=function(e,t){return e&&e.length&&t&&t.length?n(e,t):e}},40860:(e,t,r)=>{var n=r(40882),o=r(80909),a=r(15389),i=r(85558),s=r(56449);e.exports=function(e,t,r){var c=s(e)?n:i,l=arguments.length<3;return c(e,a(t,4),r,l,o)}},63560:(e,t,r)=>{var n=r(73170);e.exports=function(e,t,r){return null==e?e:n(e,t,r)}},33031:(e,t,r)=>{var n=r(83120),o=r(46155),a=r(69302),i=r(36800),s=a((function(e,t){if(null==e)return[];var r=t.length;return r>1&&i(e,t[0],t[1])?t=[]:r>2&&i(t[0],t[1],t[2])&&(t=[t[0]]),o(e,n(t,1),[])}));e.exports=s},6638:(e,t,r)=>{var n=r(78096),o=r(24066),a=r(61489),i=4294967295,s=Math.min;e.exports=function(e,t){if((e=a(e))<1||e>9007199254740991)return[];var r=i,c=s(e,i);t=o(t),e-=i;for(var l=n(c,t);++r<e;)t(r);return l}},17400:(e,t,r)=>{var n=r(99374),o=1/0;e.exports=function(e){return e?(e=n(e))===o||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}},61489:(e,t,r)=>{var n=r(17400);e.exports=function(e){var t=n(e),r=t%1;return t===t?r?t-r:t:0}},42072:(e,t,r)=>{var n=r(34932),o=r(23007),a=r(56449),i=r(44394),s=r(61802),c=r(77797),l=r(13222);e.exports=function(e){return a(e)?n(e,c):i(e)?[e]:o(s(l(e)))}},69752:(e,t,r)=>{var n=r(83729),o=r(39344),a=r(30641),i=r(15389),s=r(28879),c=r(56449),l=r(3656),u=r(1882),d=r(23805),f=r(37167);e.exports=function(e,t,r){var p=c(e),m=p||l(e)||f(e);if(t=i(t,4),null==r){var h=e&&e.constructor;r=m?p?new h:[]:d(e)&&u(h)?o(s(e)):{}}return(m?n:a)(e,(function(e,n,o){return t(r,e,n,o)})),r}},80299:(e,t,r)=>{var n=r(83120),o=r(69302),a=r(55765),i=r(83693),s=o((function(e){return a(n(e,1,i,!0))}));e.exports=s},63375:(e,t,r)=>{var n=r(55765);e.exports=function(e){return e&&e.length?n(e):[]}},9063:(e,t,r)=>{var n=r(55765);e.exports=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?n(e,void 0,t):[]}},73357:(e,t,r)=>{var n=r(19931);e.exports=function(e,t){return null==e||n(e,t)}},91648:(e,t,r)=>{var n=r(83915),o=r(69302),a=r(83693),i=o((function(e,t){return a(e)?n(e,t):[]}));e.exports=i},21020:(e,t,r)=>{"use strict";var n=r(96540),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,r){var n,a={},l=null,u=null;for(n in void 0!==r&&(l=""+r),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,n)&&!c.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===a[n]&&(a[n]=t[n]);return{$$typeof:o,type:e,key:l,ref:u,props:a,_owner:s.current}}t.Fragment=a,t.jsx=l,t.jsxs=l},74848:(e,t,r)=>{"use strict";e.exports=r(21020)},46579:function(e,t){!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];if(t.length>1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,o=1;o<n;++o)t[o]=t[o].slice(1,-1);return t[n]=t[n].slice(1),t.join("")}return t[0]}function r(e){return"(?:"+e+")"}function n(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function o(e){return e.toUpperCase()}function a(e){return void 0!==e&&null!==e?e instanceof Array?e:"number"!==typeof e.length||e.split||e.setInterval||e.call?[e]:Array.prototype.slice.call(e):[]}function i(e,t){var r=e;if(t)for(var n in t)r[n]=t[n];return r}function s(e){var n="[A-Za-z]",o="[0-9]",a=t(o,"[A-Fa-f]"),i=r(r("%[EFef]"+a+"%"+a+a+"%"+a+a)+"|"+r("%[89A-Fa-f]"+a+"%"+a+a)+"|"+r("%"+a+a)),s="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",c=t("[\\:\\/\\?\\#\\[\\]\\@]",s),l=e?"[\\uE000-\\uF8FF]":"[]",u=t(n,o,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),d=r(n+t(n,o,"[\\+\\-\\.]")+"*"),f=r(r(i+"|"+t(u,s,"[\\:]"))+"*"),p=(r(r("25[0-5]")+"|"+r("2[0-4]"+o)+"|"+r("1"+o+o)+"|"+r("[1-9]"+o)+"|"+o),r(r("25[0-5]")+"|"+r("2[0-4]"+o)+"|"+r("1"+o+o)+"|"+r("0?[1-9]"+o)+"|0?0?"+o)),m=r(p+"\\."+p+"\\."+p+"\\."+p),h=r(a+"{1,4}"),y=r(r(h+"\\:"+h)+"|"+m),g=r(r(h+"\\:")+"{6}"+y),v=r("\\:\\:"+r(h+"\\:")+"{5}"+y),b=r(r(h)+"?\\:\\:"+r(h+"\\:")+"{4}"+y),$=r(r(r(h+"\\:")+"{0,1}"+h)+"?\\:\\:"+r(h+"\\:")+"{3}"+y),w=r(r(r(h+"\\:")+"{0,2}"+h)+"?\\:\\:"+r(h+"\\:")+"{2}"+y),S=r(r(r(h+"\\:")+"{0,3}"+h)+"?\\:\\:"+h+"\\:"+y),_=r(r(r(h+"\\:")+"{0,4}"+h)+"?\\:\\:"+y),x=r(r(r(h+"\\:")+"{0,5}"+h)+"?\\:\\:"+h),E=r(r(r(h+"\\:")+"{0,6}"+h)+"?\\:\\:"),j=r([g,v,b,$,w,S,_,x,E].join("|")),k=r(r(u+"|"+i)+"+"),O=(r(j+"\\%25"+k),r(j+r("\\%25|\\%(?!"+a+"{2})")+k)),C=r("[vV]"+a+"+\\."+t(u,s,"[\\:]")+"+"),A=r("\\["+r(O+"|"+j+"|"+C)+"\\]"),P=r(r(i+"|"+t(u,s))+"*"),N=r(A+"|"+m+"(?!"+P+")|"+P),D=r(o+"*"),I=r(r(f+"@")+"?"+N+r("\\:"+D)+"?"),F=r(i+"|"+t(u,s,"[\\:\\@]")),T=r(F+"*"),R=r(F+"+"),M=r(r(i+"|"+t(u,s,"[\\@]"))+"+"),U=r(r("\\/"+T)+"*"),V=r("\\/"+r(R+U)+"?"),B=r(M+U),z=r(R+U),q="(?!"+F+")",L=(r(U+"|"+V+"|"+B+"|"+z+"|"+q),r(r(F+"|"+t("[\\/\\?]",l))+"*")),K=r(r(F+"|[\\/\\?]")+"*"),W=r(r("\\/\\/"+I+U)+"|"+V+"|"+z+"|"+q),H=r(d+"\\:"+W+r("\\?"+L)+"?"+r("\\#"+K)+"?"),G=r(r("\\/\\/"+I+U)+"|"+V+"|"+B+"|"+q),J=r(G+r("\\?"+L)+"?"+r("\\#"+K)+"?");return r(H+"|"+J),r(d+"\\:"+W+r("\\?"+L)+"?"),r(r("\\/\\/("+r("("+f+")@")+"?("+N+")"+r("\\:("+D+")")+"?)")+"?("+U+"|"+V+"|"+z+"|"+q+")"),r("\\?("+L+")"),r("\\#("+K+")"),r(r("\\/\\/("+r("("+f+")@")+"?("+N+")"+r("\\:("+D+")")+"?)")+"?("+U+"|"+V+"|"+B+"|"+q+")"),r("\\?("+L+")"),r("\\#("+K+")"),r(r("\\/\\/("+r("("+f+")@")+"?("+N+")"+r("\\:("+D+")")+"?)")+"?("+U+"|"+V+"|"+z+"|"+q+")"),r("\\?("+L+")"),r("\\#("+K+")"),r("("+f+")@"),r("\\:("+D+")"),{NOT_SCHEME:new RegExp(t("[^]",n,o,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",u,s),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",u,s),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",u,s),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",u,s),"g"),NOT_QUERY:new RegExp(t("[^\\%]",u,s,"[\\:\\@\\/\\?]",l),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",u,s,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",u,s),"g"),UNRESERVED:new RegExp(u,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",u,c),"g"),PCT_ENCODED:new RegExp(i,"g"),IPV4ADDRESS:new RegExp("^("+m+")$"),IPV6ADDRESS:new RegExp("^\\[?("+j+")"+r(r("\\%25|\\%(?!"+a+"{2})")+"("+k+")")+"?\\]?$")}}var c=s(!1),l=s(!0),u=function(){function e(e,t){var r=[],n=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(c){o=!0,a=c}finally{try{!n&&s.return&&s.return()}finally{if(o)throw a}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),d=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},f=2147483647,p=36,m=1,h=26,y=38,g=700,v=72,b=128,$="-",w=/^xn--/,S=/[^\0-\x7E]/,_=/[\x2E\u3002\uFF0E\uFF61]/g,x={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},E=p-m,j=Math.floor,k=String.fromCharCode;function O(e){throw new RangeError(x[e])}function C(e,t){for(var r=[],n=e.length;n--;)r[n]=t(e[n]);return r}function A(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+C((e=e.replace(_,".")).split("."),t).join(".")}function P(e){for(var t=[],r=0,n=e.length;r<n;){var o=e.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){var a=e.charCodeAt(r++);56320==(64512&a)?t.push(((1023&o)<<10)+(1023&a)+65536):(t.push(o),r--)}else t.push(o)}return t}var N=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:p},D=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},I=function(e,t,r){var n=0;for(e=r?j(e/g):e>>1,e+=j(e/t);e>E*h>>1;n+=p)e=j(e/E);return j(n+(E+1)*e/(e+y))},F=function(e){var t=[],r=e.length,n=0,o=b,a=v,i=e.lastIndexOf($);i<0&&(i=0);for(var s=0;s<i;++s)e.charCodeAt(s)>=128&&O("not-basic"),t.push(e.charCodeAt(s));for(var c=i>0?i+1:0;c<r;){for(var l=n,u=1,d=p;;d+=p){c>=r&&O("invalid-input");var y=N(e.charCodeAt(c++));(y>=p||y>j((f-n)/u))&&O("overflow"),n+=y*u;var g=d<=a?m:d>=a+h?h:d-a;if(y<g)break;var w=p-g;u>j(f/w)&&O("overflow"),u*=w}var S=t.length+1;a=I(n-l,S,0==l),j(n/S)>f-o&&O("overflow"),o+=j(n/S),n%=S,t.splice(n++,0,o)}return String.fromCodePoint.apply(String,t)},T=function(e){var t=[],r=(e=P(e)).length,n=b,o=0,a=v,i=!0,s=!1,c=void 0;try{for(var l,u=e[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var d=l.value;d<128&&t.push(k(d))}}catch(W){s=!0,c=W}finally{try{!i&&u.return&&u.return()}finally{if(s)throw c}}var y=t.length,g=y;for(y&&t.push($);g<r;){var w=f,S=!0,_=!1,x=void 0;try{for(var E,C=e[Symbol.iterator]();!(S=(E=C.next()).done);S=!0){var A=E.value;A>=n&&A<w&&(w=A)}}catch(W){_=!0,x=W}finally{try{!S&&C.return&&C.return()}finally{if(_)throw x}}var N=g+1;w-n>j((f-o)/N)&&O("overflow"),o+=(w-n)*N,n=w;var F=!0,T=!1,R=void 0;try{for(var M,U=e[Symbol.iterator]();!(F=(M=U.next()).done);F=!0){var V=M.value;if(V<n&&++o>f&&O("overflow"),V==n){for(var B=o,z=p;;z+=p){var q=z<=a?m:z>=a+h?h:z-a;if(B<q)break;var L=B-q,K=p-q;t.push(k(D(q+L%K,0))),B=j(L/K)}t.push(k(D(B,0))),a=I(o,N,g==y),o=0,++g}}}catch(W){T=!0,R=W}finally{try{!F&&U.return&&U.return()}finally{if(T)throw R}}++o,++n}return t.join("")},R=function(e){return A(e,(function(e){return w.test(e)?F(e.slice(4).toLowerCase()):e}))},M=function(e){return A(e,(function(e){return S.test(e)?"xn--"+T(e):e}))},U={version:"2.1.0",ucs2:{decode:P,encode:function(e){return String.fromCodePoint.apply(String,d(e))}},decode:F,encode:T,toASCII:M,toUnicode:R},V={};function B(e){var t=e.charCodeAt(0);return t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function z(e){for(var t="",r=0,n=e.length;r<n;){var o=parseInt(e.substr(r+1,2),16);if(o<128)t+=String.fromCharCode(o),r+=3;else if(o>=194&&o<224){if(n-r>=6){var a=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&o)<<6|63&a)}else t+=e.substr(r,6);r+=6}else if(o>=224){if(n-r>=9){var i=parseInt(e.substr(r+4,2),16),s=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&o)<<12|(63&i)<<6|63&s)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function q(e,t){function r(e){var r=z(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,B).replace(t.PCT_ENCODED,o)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,B).replace(t.PCT_ENCODED,o)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,B).replace(t.PCT_ENCODED,o)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,B).replace(t.PCT_ENCODED,o)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,B).replace(t.PCT_ENCODED,o)),e}function L(e){return e.replace(/^0*(.*)/,"$1")||"0"}function K(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=u(r,2)[1];return n?n.split(".").map(L).join("."):e}function W(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=u(r,3),o=n[1],a=n[2];if(o){for(var i=o.toLowerCase().split("::").reverse(),s=u(i,2),c=s[0],l=s[1],d=l?l.split(":").map(L):[],f=c.split(":").map(L),p=t.IPV4ADDRESS.test(f[f.length-1]),m=p?7:8,h=f.length-m,y=Array(m),g=0;g<m;++g)y[g]=d[g]||f[h+g]||"";p&&(y[m-1]=K(y[m-1],t));var v=y.reduce((function(e,t,r){if(!t||"0"===t){var n=e[e.length-1];n&&n.index+n.length===r?n.length++:e.push({index:r,length:1})}return e}),[]).sort((function(e,t){return t.length-e.length}))[0],b=void 0;if(v&&v.length>1){var $=y.slice(0,v.index),w=y.slice(v.index+v.length);b=$.join(":")+"::"+w.join(":")}else b=y.join(":");return a&&(b+="%"+a),b}return e}var H=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,G=void 0==="".match(/(){0}/)[1];function J(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?l:c;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var o=e.match(H);if(o){G?(r.scheme=o[1],r.userinfo=o[3],r.host=o[4],r.port=parseInt(o[5],10),r.path=o[6]||"",r.query=o[7],r.fragment=o[8],isNaN(r.port)&&(r.port=o[5])):(r.scheme=o[1]||void 0,r.userinfo=-1!==e.indexOf("@")?o[3]:void 0,r.host=-1!==e.indexOf("//")?o[4]:void 0,r.port=parseInt(o[5],10),r.path=o[6]||"",r.query=-1!==e.indexOf("?")?o[7]:void 0,r.fragment=-1!==e.indexOf("#")?o[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?o[4]:void 0)),r.host&&(r.host=W(K(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var a=V[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||a&&a.unicodeSupport)q(r,n);else{if(r.host&&(t.domainHost||a&&a.domainHost))try{r.host=U.toASCII(r.host.replace(n.PCT_ENCODED,z).toLowerCase())}catch(i){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+i}q(r,c)}a&&a.parse&&a.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function Z(e,t){var r=!1!==t.iri?l:c,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(W(K(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"!==typeof e.port&&"string"!==typeof e.port||(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}var Y=/^\.\.?\//,Q=/^\/\.(\/|$)/,X=/^\/\.\.(\/|$)/,ee=/^\/?(?:.|\n)*?(?=\/|$)/;function te(e){for(var t=[];e.length;)if(e.match(Y))e=e.replace(Y,"");else if(e.match(Q))e=e.replace(Q,"/");else if(e.match(X))e=e.replace(X,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(ee);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function re(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?l:c,n=[],o=V[(t.scheme||e.scheme||"").toLowerCase()];if(o&&o.serialize&&o.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||o&&o.domainHost)try{e.host=t.iri?U.toUnicode(e.host):U.toASCII(e.host.replace(r.PCT_ENCODED,z).toLowerCase())}catch(s){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+s}q(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var a=Z(e,t);if(void 0!==a&&("suffix"!==t.reference&&n.push("//"),n.push(a),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var i=e.path;t.absolutePath||o&&o.absolutePath||(i=te(i)),void 0===a&&(i=i.replace(/^\/\//,"/%2F")),n.push(i)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function ne(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={};return arguments[3]||(e=J(re(e,r),r),t=J(re(t,r),r)),!(r=r||{}).tolerant&&t.scheme?(n.scheme=t.scheme,n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=te(t.path||""),n.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=te(t.path||""),n.query=t.query):(t.path?("/"===t.path.charAt(0)?n.path=te(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?n.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:n.path=t.path:n.path="/"+t.path,n.path=te(n.path)),n.query=t.query):(n.path=e.path,void 0!==t.query?n.query=t.query:n.query=e.query),n.userinfo=e.userinfo,n.host=e.host,n.port=e.port),n.scheme=e.scheme),n.fragment=t.fragment,n}function oe(e,t,r){var n=i({scheme:"null"},r);return re(ne(J(e,n),J(t,n),n,!0),n)}function ae(e,t){return"string"===typeof e?e=re(J(e,t),t):"object"===n(e)&&(e=J(re(e,t),t)),e}function ie(e,t,r){return"string"===typeof e?e=re(J(e,r),r):"object"===n(e)&&(e=re(e,r)),"string"===typeof t?t=re(J(t,r),r):"object"===n(t)&&(t=re(t,r)),e===t}function se(e,t){return e&&e.toString().replace(t&&t.iri?l.ESCAPE:c.ESCAPE,B)}function ce(e,t){return e&&e.toString().replace(t&&t.iri?l.PCT_ENCODED:c.PCT_ENCODED,z)}var le={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},ue={scheme:"https",domainHost:le.domainHost,parse:le.parse,serialize:le.serialize};function de(e){return"boolean"===typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var fe={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=de(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e,t){if(e.port!==(de(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"===typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var r=e.resourceName.split("?"),n=u(r,2),o=n[0],a=n[1];e.path=o&&"/"!==o?o:void 0,e.query=a,e.resourceName=void 0}return e.fragment=void 0,e}},pe={scheme:"wss",domainHost:fe.domainHost,parse:fe.parse,serialize:fe.serialize},me={},he="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",ye="[0-9A-Fa-f]",ge=r(r("%[EFef]"+ye+"%"+ye+ye+"%"+ye+ye)+"|"+r("%[89A-Fa-f]"+ye+"%"+ye+ye)+"|"+r("%"+ye+ye)),ve="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",be=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),$e="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",we=new RegExp(he,"g"),Se=new RegExp(ge,"g"),_e=new RegExp(t("[^]",ve,"[\\.]",'[\\"]',be),"g"),xe=new RegExp(t("[^]",he,$e),"g"),Ee=xe;function je(e){var t=z(e);return t.match(we)?t:e}var ke={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var o=!1,a={},i=r.query.split("&"),s=0,c=i.length;s<c;++s){var l=i[s].split("=");switch(l[0]){case"to":for(var u=l[1].split(","),d=0,f=u.length;d<f;++d)n.push(u[d]);break;case"subject":r.subject=ce(l[1],t);break;case"body":r.body=ce(l[1],t);break;default:o=!0,a[ce(l[0],t)]=ce(l[1],t)}}o&&(r.headers=a)}r.query=void 0;for(var p=0,m=n.length;p<m;++p){var h=n[p].split("@");if(h[0]=ce(h[0]),t.unicodeSupport)h[1]=ce(h[1],t).toLowerCase();else try{h[1]=U.toASCII(ce(h[1],t).toLowerCase())}catch(y){r.error=r.error||"Email address's domain name can not be converted to ASCII via punycode: "+y}n[p]=h.join("@")}return r},serialize:function(e,t){var r=e,n=a(e.to);if(n){for(var i=0,s=n.length;i<s;++i){var c=String(n[i]),l=c.lastIndexOf("@"),u=c.slice(0,l).replace(Se,je).replace(Se,o).replace(_e,B),d=c.slice(l+1);try{d=t.iri?U.toUnicode(d):U.toASCII(ce(d,t).toLowerCase())}catch(h){r.error=r.error||"Email address's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+h}n[i]=u+"@"+d}r.path=n.join(",")}var f=e.headers=e.headers||{};e.subject&&(f.subject=e.subject),e.body&&(f.body=e.body);var p=[];for(var m in f)f[m]!==me[m]&&p.push(m.replace(Se,je).replace(Se,o).replace(xe,B)+"="+f[m].replace(Se,je).replace(Se,o).replace(Ee,B));return p.length&&(r.query=p.join("&")),r}},Oe=/^([^\:]+)\:(.*)/,Ce={scheme:"urn",parse:function(e,t){var r=e.path&&e.path.match(Oe),n=e;if(r){var o=t.scheme||n.scheme||"urn",a=r[1].toLowerCase(),i=r[2],s=o+":"+(t.nid||a),c=V[s];n.nid=a,n.nss=i,n.path=void 0,c&&(n=c.parse(n,t))}else n.error=n.error||"URN can not be parsed.";return n},serialize:function(e,t){var r=t.scheme||e.scheme||"urn",n=e.nid,o=r+":"+(t.nid||n),a=V[o];a&&(e=a.serialize(e,t));var i=e,s=e.nss;return i.path=(n||t.nid)+":"+s,i}},Ae=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,Pe={scheme:"urn:uuid",parse:function(e,t){var r=e;return r.uuid=r.nss,r.nss=void 0,t.tolerant||r.uuid&&r.uuid.match(Ae)||(r.error=r.error||"UUID is not valid."),r},serialize:function(e,t){var r=e;return r.nss=(e.uuid||"").toLowerCase(),r}};V[le.scheme]=le,V[ue.scheme]=ue,V[fe.scheme]=fe,V[pe.scheme]=pe,V[ke.scheme]=ke,V[Ce.scheme]=Ce,V[Pe.scheme]=Pe,e.SCHEMES=V,e.pctEncChar=B,e.pctDecChars=z,e.parse=J,e.removeDotSegments=te,e.serialize=re,e.resolveComponents=ne,e.resolve=oe,e.normalize=ae,e.equal=ie,e.escapeComponent=se,e.unescapeComponent=ce,Object.defineProperty(e,"__esModule",{value:!0})}(t)},81135:e=>{e.exports=function(e){return e&&"object"===typeof e&&"function"===typeof e.copy&&"function"===typeof e.fill&&"function"===typeof e.readUInt8}},26651:(e,t,r)=>{"use strict";var n=r(47244),o=r(48184),a=r(25767),i=r(35680);function s(e){return e.call.bind(e)}var c="undefined"!==typeof BigInt,l="undefined"!==typeof Symbol,u=s(Object.prototype.toString),d=s(Number.prototype.valueOf),f=s(String.prototype.valueOf),p=s(Boolean.prototype.valueOf);if(c)var m=s(BigInt.prototype.valueOf);if(l)var h=s(Symbol.prototype.valueOf);function y(e,t){if("object"!==typeof e)return!1;try{return t(e),!0}catch(r){return!1}}function g(e){return"[object Map]"===u(e)}function v(e){return"[object Set]"===u(e)}function b(e){return"[object WeakMap]"===u(e)}function $(e){return"[object WeakSet]"===u(e)}function w(e){return"[object ArrayBuffer]"===u(e)}function S(e){return"undefined"!==typeof ArrayBuffer&&(w.working?w(e):e instanceof ArrayBuffer)}function _(e){return"[object DataView]"===u(e)}function x(e){return"undefined"!==typeof DataView&&(_.working?_(e):e instanceof DataView)}t.isArgumentsObject=n,t.isGeneratorFunction=o,t.isTypedArray=i,t.isPromise=function(e){return"undefined"!==typeof Promise&&e instanceof Promise||null!==e&&"object"===typeof e&&"function"===typeof e.then&&"function"===typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):i(e)||x(e)},t.isUint8Array=function(e){return"Uint8Array"===a(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===a(e)},t.isUint16Array=function(e){return"Uint16Array"===a(e)},t.isUint32Array=function(e){return"Uint32Array"===a(e)},t.isInt8Array=function(e){return"Int8Array"===a(e)},t.isInt16Array=function(e){return"Int16Array"===a(e)},t.isInt32Array=function(e){return"Int32Array"===a(e)},t.isFloat32Array=function(e){return"Float32Array"===a(e)},t.isFloat64Array=function(e){return"Float64Array"===a(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===a(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===a(e)},g.working="undefined"!==typeof Map&&g(new Map),t.isMap=function(e){return"undefined"!==typeof Map&&(g.working?g(e):e instanceof Map)},v.working="undefined"!==typeof Set&&v(new Set),t.isSet=function(e){return"undefined"!==typeof Set&&(v.working?v(e):e instanceof Set)},b.working="undefined"!==typeof WeakMap&&b(new WeakMap),t.isWeakMap=function(e){return"undefined"!==typeof WeakMap&&(b.working?b(e):e instanceof WeakMap)},$.working="undefined"!==typeof WeakSet&&$(new WeakSet),t.isWeakSet=function(e){return $(e)},w.working="undefined"!==typeof ArrayBuffer&&w(new ArrayBuffer),t.isArrayBuffer=S,_.working="undefined"!==typeof ArrayBuffer&&"undefined"!==typeof DataView&&_(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=x;var E="undefined"!==typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function j(e){return"[object SharedArrayBuffer]"===u(e)}function k(e){return"undefined"!==typeof E&&("undefined"===typeof j.working&&(j.working=j(new E)),j.working?j(e):e instanceof E)}function O(e){return y(e,d)}function C(e){return y(e,f)}function A(e){return y(e,p)}function P(e){return c&&y(e,m)}function N(e){return l&&y(e,h)}t.isSharedArrayBuffer=k,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===u(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===u(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===u(e)},t.isGeneratorObject=function(e){return"[object Generator]"===u(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===u(e)},t.isNumberObject=O,t.isStringObject=C,t.isBooleanObject=A,t.isBigIntObject=P,t.isSymbolObject=N,t.isBoxedPrimitive=function(e){return O(e)||C(e)||A(e)||P(e)||N(e)},t.isAnyArrayBuffer=function(e){return"undefined"!==typeof Uint8Array&&(S(e)||k(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},40537:(e,t,r)=>{var n=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++)r[t[n]]=Object.getOwnPropertyDescriptor(e,t[n]);return r},o=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(c(arguments[r]));return t.join(" ")}r=1;for(var n=arguments,a=n.length,i=String(e).replace(o,(function(e){if("%%"===e)return"%";if(r>=a)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return e}})),s=n[r];r<a;s=n[++r])y(s)||!w(s)?i+=" "+s:i+=" "+c(s);return i},t.deprecate=function(e,r){if("undefined"!==typeof process&&!0===process.noDeprecation)return e;if("undefined"===typeof process)return function(){return t.deprecate(e,r).apply(this,arguments)};var n=!1;return function(){if(!n){if(process.throwDeprecation)throw new Error(r);process.traceDeprecation?console.trace(r):console.error(r),n=!0}return e.apply(this,arguments)}};var a={},i=/^$/;if(process.env.NODE_DEBUG){var s=process.env.NODE_DEBUG;s=s.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),i=new RegExp("^"+s+"$","i")}function c(e,r){var n={seen:[],stylize:u};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),h(r)?n.showHidden=r:r&&t._extend(n,r),b(n.showHidden)&&(n.showHidden=!1),b(n.depth)&&(n.depth=2),b(n.colors)&&(n.colors=!1),b(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),d(n,e,n.depth)}function l(e,t){var r=c.styles[t];return r?"\x1b["+c.colors[r][0]+"m"+e+"\x1b["+c.colors[r][1]+"m":e}function u(e,t){return e}function d(e,r,n){if(e.customInspect&&r&&x(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,e);return v(o)||(o=d(e,o,n)),o}var a=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(g(t))return e.stylize(""+t,"number");if(h(t))return e.stylize(""+t,"boolean");if(y(t))return e.stylize("null","null")}(e,r);if(a)return a;var i=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(r)),_(r)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return f(r);if(0===i.length){if(x(r)){var c=r.name?": "+r.name:"";return e.stylize("[Function"+c+"]","special")}if($(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(S(r))return e.stylize(Date.prototype.toString.call(r),"date");if(_(r))return f(r)}var l,u="",w=!1,E=["{","}"];(m(r)&&(w=!0,E=["[","]"]),x(r))&&(u=" [Function"+(r.name?": "+r.name:"")+"]");return $(r)&&(u=" "+RegExp.prototype.toString.call(r)),S(r)&&(u=" "+Date.prototype.toUTCString.call(r)),_(r)&&(u=" "+f(r)),0!==i.length||w&&0!=r.length?n<0?$(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),l=w?function(e,t,r,n,o){for(var a=[],i=0,s=t.length;i<s;++i)O(t,String(i))?a.push(p(e,t,r,n,String(i),!0)):a.push("");return o.forEach((function(o){o.match(/^\d+$/)||a.push(p(e,t,r,n,o,!0))})),a}(e,r,n,s,i):i.map((function(t){return p(e,r,n,s,t,w)})),e.seen.pop(),function(e,t,r){var n=e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(n>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(l,u,E)):E[0]+u+E[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,r,n,o,a){var i,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(n,o)||(i="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=y(r)?d(e,c.value,null):d(e,c.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(i)){if(a&&o.match(/^\d+$/))return s;(i=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(i=i.substr(1,i.length-2),i=e.stylize(i,"name")):(i=i.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),i=e.stylize(i,"string"))}return i+": "+s}function m(e){return Array.isArray(e)}function h(e){return"boolean"===typeof e}function y(e){return null===e}function g(e){return"number"===typeof e}function v(e){return"string"===typeof e}function b(e){return void 0===e}function $(e){return w(e)&&"[object RegExp]"===E(e)}function w(e){return"object"===typeof e&&null!==e}function S(e){return w(e)&&"[object Date]"===E(e)}function _(e){return w(e)&&("[object Error]"===E(e)||e instanceof Error)}function x(e){return"function"===typeof e}function E(e){return Object.prototype.toString.call(e)}function j(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(i.test(e)){var r=process.pid;a[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else a[e]=function(){};return a[e]},t.inspect=c,c.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=r(26651),t.isArray=m,t.isBoolean=h,t.isNull=y,t.isNullOrUndefined=function(e){return null==e},t.isNumber=g,t.isString=v,t.isSymbol=function(e){return"symbol"===typeof e},t.isUndefined=b,t.isRegExp=$,t.types.isRegExp=$,t.isObject=w,t.isDate=S,t.types.isDate=S,t.isError=_,t.types.isNativeError=_,t.isFunction=x,t.isPrimitive=function(e){return null===e||"boolean"===typeof e||"number"===typeof e||"string"===typeof e||"symbol"===typeof e||"undefined"===typeof e},t.isBuffer=r(81135);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",function(){var e=new Date,t=[j(e.getHours()),j(e.getMinutes()),j(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}(),t.format.apply(t,arguments))},t.inherits=r(56698),t._extend=function(e,t){if(!t||!w(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var C="undefined"!==typeof Symbol?Symbol("util.promisify.custom"):void 0;function A(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!==typeof e)throw new TypeError('The "original" argument must be of type Function');if(C&&e[C]){var t;if("function"!==typeof(t=e[C]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,C,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),o=[],a=0;a<arguments.length;a++)o.push(arguments[a]);o.push((function(e,n){e?r(e):t(n)}));try{e.apply(this,o)}catch(i){r(i)}return n}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),C&&Object.defineProperty(t,C,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,n(e))},t.promisify.custom=C,t.callbackify=function(e){if("function"!==typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],r=0;r<arguments.length;r++)t.push(arguments[r]);var n=t.pop();if("function"!==typeof n)throw new TypeError("The last argument must be of type Function");var o=this,a=function(){return n.apply(o,arguments)};e.apply(this,t).then((function(e){process.nextTick(a.bind(null,null,e))}),(function(e){process.nextTick(A.bind(null,e,a))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,n(e)),t}},7800:e=>{"use strict";e.exports=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},82986:e=>{"use strict";e.exports=function(e){return"function"===typeof e}},96552:(e,t,r)=>{"use strict";var n=r(7800),o=r(84356);e.exports=function(e){var t;if(!n(e))return!1;if(!(t=e.length))return!1;for(var r=0;r<t;r++)if(!o(e[r]))return!1;return!0}},84356:(e,t,r)=>{"use strict";var n=r(66415);e.exports=function(e){return n(e)&&e%1===0}},66415:e=>{"use strict";e.exports=function(e){return("number"===typeof e||"[object Number]"===Object.prototype.toString.call(e))&&e.valueOf()===e.valueOf()}},25767:(e,t,r)=>{"use strict";var n=r(82682),o=r(39209),a=r(10487),i=r(38075),s=r(75795),c=i("Object.prototype.toString"),l=r(49092)(),u="undefined"===typeof globalThis?r.g:globalThis,d=o(),f=i("String.prototype.slice"),p=Object.getPrototypeOf,m=i("Array.prototype.indexOf",!0)||function(e,t){for(var r=0;r<e.length;r+=1)if(e[r]===t)return r;return-1},h={__proto__:null};n(d,l&&s&&p?function(e){var t=new u[e];if(Symbol.toStringTag in t){var r=p(t),n=s(r,Symbol.toStringTag);if(!n){var o=p(r);n=s(o,Symbol.toStringTag)}h["$"+e]=a(n.get)}}:function(e){var t=new u[e];h["$"+e]=a(t.slice)});e.exports=function(e){if(!e||"object"!==typeof e)return!1;if(!l){var t=f(c(e),8,-1);return m(d,t)>-1?t:"Object"===t&&function(e){var t=!1;return n(h,(function(r,n){if(!t)try{r(e),t=f(n,1)}catch(o){}})),t}(e)}return s?function(e){var t=!1;return n(h,(function(r,n){if(!t)try{"$"+r(e)===n&&(t=f(n,1))}catch(o){}})),t}(e):null}},39209:(e,t,r)=>{"use strict";var n=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],o="undefined"===typeof globalThis?r.g:globalThis;e.exports=function(){for(var e=[],t=0;t<n.length;t++)"function"===typeof o[n[t]]&&(e[e.length]=n[t]);return e}},63837:e=>{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},72079:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js.LICENSE.txt b/src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js.LICENSE.txt
new file mode 100644
index 000000000..d639ff9e1
--- /dev/null
+++ b/src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js.LICENSE.txt
@@ -0,0 +1,11 @@
+/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
diff --git a/src/web/gui/v2/7519.8a99c6b9370779196847.chunk.js b/src/web/gui/v2/7519.8a99c6b9370779196847.chunk.js
new file mode 100644
index 000000000..14dbe7f0e
--- /dev/null
+++ b/src/web/gui/v2/7519.8a99c6b9370779196847.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="21ef2309-bef2-4a5b-8612-de9b687627c0",e._sentryDebugIdIdentifier="sentry-dbid-21ef2309-bef2-4a5b-8612-de9b687627c0")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7519],{68415:(e,t)=>{var r="user-astronaut",n=[],a="f4fb",i="M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z";t.mw={prefix:"fas",iconName:r,icon:[448,512,n,a,i]},t.yV=t.mw},20982:(e,t,r)=>{function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,a,i=[],o=!0,s=!1;try{for(r=r.call(e);!(o=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);o=!0);}catch(c){s=!0,a=c}finally{try{o||null==r.return||r.return()}finally{if(s)throw a}}return i}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"===typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,{g:()=>Fr});var p=function(){},d={},h={},m=null,g={mark:p,measure:p};try{"undefined"!==typeof window&&(d=window),"undefined"!==typeof document&&(h=document),"undefined"!==typeof MutationObserver&&(m=MutationObserver),"undefined"!==typeof performance&&(g=performance)}catch(Lr){}var b,y,v,k,_,w=(d.navigator||{}).userAgent,x=void 0===w?"":w,A=d,C=h,E=m,S=g,D=(A.document,!!C.documentElement&&!!C.head&&"function"===typeof C.addEventListener&&"function"===typeof C.createElement),j=~x.indexOf("MSIE")||~x.indexOf("Trident/"),O="___FONT_AWESOME___",q=16,F="fa",z="svg-inline--fa",L="data-fa-i2svg",I="data-fa-pseudo-element",N="data-fa-pseudo-element-pending",M="data-prefix",T="data-icon",P="fontawesome-i2svg",R="async",$=["HTML","HEAD","STYLE","SCRIPT"],B=function(){try{return!0}catch(Lr){return!1}}(),U="classic",V="sharp",Z=[U,V];function H(e){return new Proxy(e,{get:function(e,t){return t in e?e[t]:e[U]}})}var Y=H((s(b={},U,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit",fakd:"kit","fa-kit":"kit","fa-kit-duotone":"kit"}),s(b,V,{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"}),b)),G=H((s(y={},U,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),s(y,V,{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"}),y)),W=H((s(v={},U,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),s(v,V,{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"}),v)),J=H((s(k={},U,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),s(k,V,{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"}),k)),X=/fa(s|r|l|t|d|b|k|ss|sr|sl|st)?[\-\ ]/,K="fa-layers-text",Q=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,ee=H((s(_={},U,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),s(_,V,{900:"fass",400:"fasr",300:"fasl",100:"fast"}),_)),te=[1,2,3,4,5,6,7,8,9,10],re=te.concat([11,12,13,14,15,16,17,18,19,20]),ne=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],ae={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},ie=new Set;Object.keys(G[U]).map(ie.add.bind(ie)),Object.keys(G[V]).map(ie.add.bind(ie));var oe=[].concat(Z,l(ie),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",ae.GROUP,ae.SWAP_OPACITY,ae.PRIMARY,ae.SECONDARY]).concat(te.map((function(e){return"".concat(e,"x")}))).concat(re.map((function(e){return"w-".concat(e)}))),se=A.FontAwesomeConfig||{};if(C&&"function"===typeof C.querySelector){[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach((function(e){var t=c(e,2),r=t[0],n=t[1],a=function(e){return""===e||"false"!==e&&("true"===e||e)}(function(e){var t=C.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}(r));void 0!==a&&null!==a&&(se[n]=a)}))}var ce={styleDefault:"solid",familyDefault:"classic",cssPrefix:F,replacementClass:z,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};se.familyPrefix&&(se.cssPrefix=se.familyPrefix);var le=a(a({},ce),se);le.autoReplaceSvg||(le.observeMutations=!1);var ue={};Object.keys(ce).forEach((function(e){Object.defineProperty(ue,e,{enumerable:!0,set:function(t){le[e]=t,fe.forEach((function(e){return e(ue)}))},get:function(){return le[e]}})})),Object.defineProperty(ue,"familyPrefix",{enumerable:!0,set:function(e){le.cssPrefix=e,fe.forEach((function(e){return e(ue)}))},get:function(){return le.cssPrefix}}),A.FontAwesomeConfig=ue;var fe=[];var pe=q,de={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};var he="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function me(){for(var e=12,t="";e-- >0;)t+=he[62*Math.random()|0];return t}function ge(e){for(var t=[],r=(e||[]).length>>>0;r--;)t[r]=e[r];return t}function be(e){return e.classList?ge(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function ye(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ve(e){return Object.keys(e||{}).reduce((function(t,r){return t+"".concat(r,": ").concat(e[r].trim(),";")}),"")}function ke(e){return e.size!==de.size||e.x!==de.x||e.y!==de.y||e.rotate!==de.rotate||e.flipX||e.flipY}var _e=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';function we(){var e=F,t=z,r=ue.cssPrefix,n=ue.replacementClass,a=_e;if(r!==e||n!==t){var i=new RegExp("\\.".concat(e,"\\-"),"g"),o=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");a=a.replace(i,".".concat(r,"-")).replace(o,"--".concat(r,"-")).replace(s,".".concat(n))}return a}var xe=!1;function Ae(){ue.autoAddCss&&!xe&&(!function(e){if(e&&D){var t=C.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var r=C.head.childNodes,n=null,a=r.length-1;a>-1;a--){var i=r[a],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(n=i)}C.head.insertBefore(t,n)}}(we()),xe=!0)}var Ce={mixout:function(){return{dom:{css:we,insertCss:Ae}}},hooks:function(){return{beforeDOMElementCreation:function(){Ae()},beforeI2svg:function(){Ae()}}}},Ee=A||{};Ee[O]||(Ee[O]={}),Ee[O].styles||(Ee[O].styles={}),Ee[O].hooks||(Ee[O].hooks={}),Ee[O].shims||(Ee[O].shims=[]);var Se=Ee[O],De=[],je=!1;function Oe(e){var t=e.tag,r=e.attributes,n=void 0===r?{}:r,a=e.children,i=void 0===a?[]:a;return"string"===typeof e?ye(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,r){return t+"".concat(r,'="').concat(ye(e[r]),'" ')}),"").trim()}(n),">").concat(i.map(Oe).join(""),"</").concat(t,">")}function qe(e,t,r){if(e&&e[t]&&e[t][r])return{prefix:t,iconName:r,icon:e[t][r]}}D&&((je=(C.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(C.readyState))||C.addEventListener("DOMContentLoaded",(function e(){C.removeEventListener("DOMContentLoaded",e),je=1,De.map((function(e){return e()}))})));var Fe=function(e,t,r,n){var a,i,o,s=Object.keys(e),c=s.length,l=void 0!==n?function(e,t){return function(r,n,a,i){return e.call(t,r,n,a,i)}}(t,n):t;for(void 0===r?(a=1,o=e[s[0]]):(a=0,o=r);a<c;a++)o=l(o,e[i=s[a]],i,e);return o};function ze(e){var t=function(e){for(var t=[],r=0,n=e.length;r<n;){var a=e.charCodeAt(r++);if(a>=55296&&a<=56319&&r<n){var i=e.charCodeAt(r++);56320==(64512&i)?t.push(((1023&a)<<10)+(1023&i)+65536):(t.push(a),r--)}else t.push(a)}return t}(e);return 1===t.length?t[0].toString(16):null}function Le(e){return Object.keys(e).reduce((function(t,r){var n=e[r];return!!n.icon?t[n.iconName]=n.icon:t[r]=n,t}),{})}function Ie(e,t){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).skipHooks,n=void 0!==r&&r,i=Le(t);"function"!==typeof Se.hooks.addPack||n?Se.styles[e]=a(a({},Se.styles[e]||{}),i):Se.hooks.addPack(e,Le(t)),"fas"===e&&Ie("fa",t)}var Ne,Me,Te,Pe=Se.styles,Re=Se.shims,$e=(s(Ne={},U,Object.values(W[U])),s(Ne,V,Object.values(W[V])),Ne),Be=null,Ue={},Ve={},Ze={},He={},Ye={},Ge=(s(Me={},U,Object.keys(Y[U])),s(Me,V,Object.keys(Y[V])),Me);function We(e,t){var r,n=t.split("-"),a=n[0],i=n.slice(1).join("-");return a!==e||""===i||(r=i,~oe.indexOf(r))?null:i}var Je,Xe=function(){var e=function(e){return Fe(Pe,(function(t,r,n){return t[n]=Fe(r,e,{}),t}),{})};Ue=e((function(e,t,r){(t[3]&&(e[t[3]]=r),t[2])&&t[2].filter((function(e){return"number"===typeof e})).forEach((function(t){e[t.toString(16)]=r}));return e})),Ve=e((function(e,t,r){(e[r]=r,t[2])&&t[2].filter((function(e){return"string"===typeof e})).forEach((function(t){e[t]=r}));return e})),Ye=e((function(e,t,r){var n=t[2];return e[r]=r,n.forEach((function(t){e[t]=r})),e}));var t="far"in Pe||ue.autoFetchSvg,r=Fe(Re,(function(e,r){var n=r[0],a=r[1],i=r[2];return"far"!==a||t||(a="fas"),"string"===typeof n&&(e.names[n]={prefix:a,iconName:i}),"number"===typeof n&&(e.unicodes[n.toString(16)]={prefix:a,iconName:i}),e}),{names:{},unicodes:{}});Ze=r.names,He=r.unicodes,Be=nt(ue.styleDefault,{family:ue.familyDefault})};function Ke(e,t){return(Ue[e]||{})[t]}function Qe(e,t){return(Ye[e]||{})[t]}function et(e){return Ze[e]||{prefix:null,iconName:null}}function tt(){return Be}Je=function(e){Be=nt(e.styleDefault,{family:ue.familyDefault})},fe.push(Je),Xe();var rt=function(){return{prefix:null,iconName:null,rest:[]}};function nt(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).family,r=void 0===t?U:t,n=Y[r][e],a=G[r][e]||G[r][n],i=e in Se.styles?e:null;return a||i||null}var at=(s(Te={},U,Object.keys(W[U])),s(Te,V,Object.keys(W[V])),Te);function it(e){var t,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).skipLookups,n=void 0!==r&&r,a=(s(t={},U,"".concat(ue.cssPrefix,"-").concat(U)),s(t,V,"".concat(ue.cssPrefix,"-").concat(V)),t),i=null,o=U;(e.includes(a[U])||e.some((function(e){return at[U].includes(e)})))&&(o=U),(e.includes(a[V])||e.some((function(e){return at[V].includes(e)})))&&(o=V);var c=e.reduce((function(e,t){var r=We(ue.cssPrefix,t);if(Pe[t]?(t=$e[o].includes(t)?J[o][t]:t,i=t,e.prefix=t):Ge[o].indexOf(t)>-1?(i=t,e.prefix=nt(t,{family:o})):r?e.iconName=r:t!==ue.replacementClass&&t!==a[U]&&t!==a[V]&&e.rest.push(t),!n&&e.prefix&&e.iconName){var s="fa"===i?et(e.iconName):{},c=Qe(e.prefix,e.iconName);s.prefix&&(i=null),e.iconName=s.iconName||c||e.iconName,e.prefix=s.prefix||e.prefix,"far"!==e.prefix||Pe.far||!Pe.fas||ue.autoFetchSvg||(e.prefix="fas")}return e}),rt());return(e.includes("fa-brands")||e.includes("fab"))&&(c.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(c.prefix="fad"),c.prefix||o!==V||!Pe.fass&&!ue.autoFetchSvg||(c.prefix="fass",c.iconName=Qe(c.prefix,c.iconName)||c.iconName),"fa"!==c.prefix&&"fa"!==i||(c.prefix=tt()||"fas"),c}var ot=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,r,n;return t=e,r=[{key:"add",value:function(){for(var e=this,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=r.reduce(this._pullDefinitions,{});Object.keys(i).forEach((function(t){e.definitions[t]=a(a({},e.definitions[t]||{}),i[t]),Ie(t,i[t]);var r=W[U][t];r&&Ie(r,i[t]),Xe()}))}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(e,t){var r=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(r).map((function(t){var n=r[t],a=n.prefix,i=n.iconName,o=n.icon,s=o[2];e[a]||(e[a]={}),s.length>0&&s.forEach((function(t){"string"===typeof t&&(e[a][t]=o)})),e[a][i]=o})),e}}],r&&o(t.prototype,r),n&&o(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}(),st=[],ct={},lt={},ut=Object.keys(lt);function ft(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),a=2;a<r;a++)n[a-2]=arguments[a];return(ct[e]||[]).forEach((function(e){t=e.apply(null,[t].concat(n))})),t}function pt(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];(ct[e]||[]).forEach((function(e){e.apply(null,r)}))}function dt(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return lt[e]?lt[e].apply(null,t):void 0}function ht(e){"fa"===e.prefix&&(e.prefix="fas");var t=e.iconName,r=e.prefix||tt();if(t)return t=Qe(r,t)||t,qe(mt.definitions,r,t)||qe(Se.styles,r,t)}var mt=new ot,gt={i2svg:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return D?(pt("beforeI2svg",e),dt("pseudoElements2svg",e),dt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.autoReplaceSvgRoot;!1===ue.autoReplaceSvg&&(ue.autoReplaceSvg=!0),ue.observeMutations=!0,e=function(){yt({autoReplaceSvgRoot:r}),pt("watch",t)},D&&(je?setTimeout(e,0):De.push(e))}},bt={noAuto:function(){ue.autoReplaceSvg=!1,ue.observeMutations=!1,pt("noAuto")},config:ue,dom:gt,parse:{icon:function(e){if(null===e)return null;if("object"===i(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Qe(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],r=nt(e[0]);return{prefix:r,iconName:Qe(r,t)||t}}if("string"===typeof e&&(e.indexOf("".concat(ue.cssPrefix,"-"))>-1||e.match(X))){var n=it(e.split(" "),{skipLookups:!0});return{prefix:n.prefix||tt(),iconName:Qe(n.prefix,n.iconName)||n.iconName}}if("string"===typeof e){var a=tt();return{prefix:a,iconName:Qe(a,e)||e}}}},library:mt,findIconDefinition:ht,toHtml:Oe},yt=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,t=void 0===e?C:e;(Object.keys(Se.styles).length>0||ue.autoFetchSvg)&&D&&ue.autoReplaceSvg&&bt.dom.i2svg({node:t})};function vt(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return Oe(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(D){var t=C.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function kt(e){var t=e.icons,r=t.main,n=t.mask,i=e.prefix,o=e.iconName,s=e.transform,c=e.symbol,l=e.title,u=e.maskId,f=e.titleId,p=e.extra,d=e.watchable,h=void 0!==d&&d,m=n.found?n:r,g=m.width,b=m.height,y="fak"===i,v=[ue.replacementClass,o?"".concat(ue.cssPrefix,"-").concat(o):""].filter((function(e){return-1===p.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(p.classes).join(" "),k={children:[],attributes:a(a({},p.attributes),{},{"data-prefix":i,"data-icon":o,class:v,role:p.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(b)})},_=y&&!~p.classes.indexOf("fa-fw")?{width:"".concat(g/b*16*.0625,"em")}:{};h&&(k.attributes[L]=""),l&&(k.children.push({tag:"title",attributes:{id:k.attributes["aria-labelledby"]||"title-".concat(f||me())},children:[l]}),delete k.attributes.title);var w=a(a({},k),{},{prefix:i,iconName:o,main:r,mask:n,maskId:u,transform:s,symbol:c,styles:a(a({},_),p.styles)}),x=n.found&&r.found?dt("generateAbstractMask",w)||{children:[],attributes:{}}:dt("generateAbstractIcon",w)||{children:[],attributes:{}},A=x.children,C=x.attributes;return w.children=A,w.attributes=C,c?function(e){var t=e.prefix,r=e.iconName,n=e.children,i=e.attributes,o=e.symbol,s=!0===o?"".concat(t,"-").concat(ue.cssPrefix,"-").concat(r):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:a(a({},i),{},{id:s}),children:n}]}]}(w):function(e){var t=e.children,r=e.main,n=e.mask,i=e.attributes,o=e.styles,s=e.transform;if(ke(s)&&r.found&&!n.found){var c={x:r.width/r.height/2,y:.5};i.style=ve(a(a({},o),{},{"transform-origin":"".concat(c.x+s.x/16,"em ").concat(c.y+s.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}(w)}function _t(e){var t=e.content,r=e.width,n=e.height,i=e.transform,o=e.title,s=e.extra,c=e.watchable,l=void 0!==c&&c,u=a(a(a({},s.attributes),o?{title:o}:{}),{},{class:s.classes.join(" ")});l&&(u[L]="");var f=a({},s.styles);ke(i)&&(f.transform=function(e){var t=e.transform,r=e.width,n=void 0===r?q:r,a=e.height,i=void 0===a?q:a,o=e.startCentered,s=void 0!==o&&o,c="";return c+=s&&j?"translate(".concat(t.x/pe-n/2,"em, ").concat(t.y/pe-i/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/pe,"em), calc(-50% + ").concat(t.y/pe,"em)) "):"translate(".concat(t.x/pe,"em, ").concat(t.y/pe,"em) "),c+="scale(".concat(t.size/pe*(t.flipX?-1:1),", ").concat(t.size/pe*(t.flipY?-1:1),") "),c+"rotate(".concat(t.rotate,"deg) ")}({transform:i,startCentered:!0,width:r,height:n}),f["-webkit-transform"]=f.transform);var p=ve(f);p.length>0&&(u.style=p);var d=[];return d.push({tag:"span",attributes:u,children:[t]}),o&&d.push({tag:"span",attributes:{class:"sr-only"},children:[o]}),d}var wt=Se.styles;function xt(e){var t=e[0],r=e[1],n=c(e.slice(4),1)[0];return{found:!0,width:t,height:r,icon:Array.isArray(n)?{tag:"g",attributes:{class:"".concat(ue.cssPrefix,"-").concat(ae.GROUP)},children:[{tag:"path",attributes:{class:"".concat(ue.cssPrefix,"-").concat(ae.SECONDARY),fill:"currentColor",d:n[0]}},{tag:"path",attributes:{class:"".concat(ue.cssPrefix,"-").concat(ae.PRIMARY),fill:"currentColor",d:n[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:n}}}}var At={found:!1,width:512,height:512};function Ct(e,t){var r=t;return"fa"===t&&null!==ue.styleDefault&&(t=tt()),new Promise((function(n,i){dt("missingIconAbstract");if("fa"===r){var o=et(e)||{};e=o.iconName||e,t=o.prefix||t}if(e&&t&&wt[t]&&wt[t][e])return n(xt(wt[t][e]));!function(e,t){B||ue.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),n(a(a({},At),{},{icon:ue.showMissingIcons&&e&&dt("missingIconAbstract")||{}}))}))}var Et=function(){},St=ue.measurePerformance&&S&&S.mark&&S.measure?S:{mark:Et,measure:Et},Dt='FA "6.5.1"',jt=function(e){St.mark("".concat(Dt," ").concat(e," ends")),St.measure("".concat(Dt," ").concat(e),"".concat(Dt," ").concat(e," begins"),"".concat(Dt," ").concat(e," ends"))},Ot={begin:function(e){return St.mark("".concat(Dt," ").concat(e," begins")),function(){return jt(e)}},end:jt},qt=function(){};function Ft(e){return"string"===typeof(e.getAttribute?e.getAttribute(L):null)}function zt(e){return C.createElementNS("http://www.w3.org/2000/svg",e)}function Lt(e){return C.createElement(e)}function It(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).ceFn,r=void 0===t?"svg"===e.tag?zt:Lt:t;if("string"===typeof e)return C.createTextNode(e);var n=r(e.tag);return Object.keys(e.attributes||[]).forEach((function(t){n.setAttribute(t,e.attributes[t])})),(e.children||[]).forEach((function(e){n.appendChild(It(e,{ceFn:r}))})),n}var Nt={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(It(e),t)})),null===t.getAttribute(L)&&ue.keepOriginalSource){var r=C.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(r,t)}else t.remove()},nest:function(e){var t=e[0],r=e[1];if(~be(t).indexOf(ue.replacementClass))return Nt.replace(e);var n=new RegExp("".concat(ue.cssPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var a=r[0].attributes.class.split(" ").reduce((function(e,t){return t===ue.replacementClass||t.match(n)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});r[0].attributes.class=a.toSvg.join(" "),0===a.toNode.length?t.removeAttribute("class"):t.setAttribute("class",a.toNode.join(" "))}var i=r.map((function(e){return Oe(e)})).join("\n");t.setAttribute(L,""),t.innerHTML=i}};function Mt(e){e()}function Tt(e,t){var r="function"===typeof t?t:qt;if(0===e.length)r();else{var n=Mt;ue.mutateApproach===R&&(n=A.requestAnimationFrame||Mt),n((function(){var t=!0===ue.autoReplaceSvg?Nt.replace:Nt[ue.autoReplaceSvg]||Nt.replace,n=Ot.begin("mutate");e.map(t),n(),r()}))}}var Pt=!1;function Rt(){Pt=!0}function $t(){Pt=!1}var Bt=null;function Ut(e){if(E&&ue.observeMutations){var t=e.treeCallback,r=void 0===t?qt:t,n=e.nodeCallback,a=void 0===n?qt:n,i=e.pseudoElementsCallback,o=void 0===i?qt:i,s=e.observeMutationsRoot,c=void 0===s?C:s;Bt=new E((function(e){if(!Pt){var t=tt();ge(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!Ft(e.addedNodes[0])&&(ue.searchPseudoElements&&o(e.target),r(e.target)),"attributes"===e.type&&e.target.parentNode&&ue.searchPseudoElements&&o(e.target.parentNode),"attributes"===e.type&&Ft(e.target)&&~ne.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(M):null,r=e.getAttribute?e.getAttribute(T):null;return t&&r}(e.target)){var n=it(be(e.target)),i=n.prefix,s=n.iconName;e.target.setAttribute(M,i||t),s&&e.target.setAttribute(T,s)}else(c=e.target)&&c.classList&&c.classList.contains&&c.classList.contains(ue.replacementClass)&&a(e.target);var c}))}})),D&&Bt.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Vt(e){var t,r,n=e.getAttribute("data-prefix"),a=e.getAttribute("data-icon"),i=void 0!==e.innerText?e.innerText.trim():"",o=it(be(e));return o.prefix||(o.prefix=tt()),n&&a&&(o.prefix=n,o.iconName=a),o.iconName&&o.prefix||(o.prefix&&i.length>0&&(o.iconName=(t=o.prefix,r=e.innerText,(Ve[t]||{})[r]||Ke(o.prefix,ze(e.innerText)))),!o.iconName&&ue.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(o.iconName=e.firstChild.data)),o}function Zt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},r=Vt(e),n=r.iconName,i=r.prefix,o=r.rest,s=function(e){var t=ge(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),r=e.getAttribute("title"),n=e.getAttribute("data-fa-title-id");return ue.autoA11y&&(r?t["aria-labelledby"]="".concat(ue.replacementClass,"-title-").concat(n||me()):(t["aria-hidden"]="true",t.focusable="false")),t}(e),c=ft("parseNodeAttributes",{},e),l=t.styleParser?function(e){var t=e.getAttribute("style"),r=[];return t&&(r=t.split(";").reduce((function(e,t){var r=t.split(":"),n=r[0],a=r.slice(1);return n&&a.length>0&&(e[n]=a.join(":").trim()),e}),{})),r}(e):[];return a({iconName:n,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:i,transform:de,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:l,attributes:s}},c)}var Ht=Se.styles;function Yt(e){var t="nest"===ue.autoReplaceSvg?Zt(e,{styleParser:!1}):Zt(e);return~t.extra.classes.indexOf(K)?dt("generateLayersText",e,t):dt("generateSvgReplacementMutation",e,t)}var Gt=new Set;function Wt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!D)return Promise.resolve();var r=C.documentElement.classList,n=function(e){return r.add("".concat(P,"-").concat(e))},a=function(e){return r.remove("".concat(P,"-").concat(e))},i=ue.autoFetchSvg?Gt:Z.map((function(e){return"fa-".concat(e)})).concat(Object.keys(Ht));i.includes("fa")||i.push("fa");var o=[".".concat(K,":not([").concat(L,"])")].concat(i.map((function(e){return".".concat(e,":not([").concat(L,"])")}))).join(", ");if(0===o.length)return Promise.resolve();var s=[];try{s=ge(e.querySelectorAll(o))}catch(Lr){}if(!(s.length>0))return Promise.resolve();n("pending"),a("complete");var c=Ot.begin("onTree"),l=s.reduce((function(e,t){try{var r=Yt(t);r&&e.push(r)}catch(Lr){B||"MissingIcon"===Lr.name&&console.error(Lr)}return e}),[]);return new Promise((function(e,r){Promise.all(l).then((function(r){Tt(r,(function(){n("active"),n("complete"),a("pending"),"function"===typeof t&&t(),c(),e()}))})).catch((function(e){c(),r(e)}))}))}function Jt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;Yt(e).then((function(e){e&&Tt([e],t)}))}Z.map((function(e){Gt.add("fa-".concat(e))})),Object.keys(Y[U]).map(Gt.add.bind(Gt)),Object.keys(Y[V]).map(Gt.add.bind(Gt)),Gt=l(Gt);var Xt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.transform,n=void 0===r?de:r,i=t.symbol,o=void 0!==i&&i,s=t.mask,c=void 0===s?null:s,l=t.maskId,u=void 0===l?null:l,f=t.title,p=void 0===f?null:f,d=t.titleId,h=void 0===d?null:d,m=t.classes,g=void 0===m?[]:m,b=t.attributes,y=void 0===b?{}:b,v=t.styles,k=void 0===v?{}:v;if(e){var _=e.prefix,w=e.iconName,x=e.icon;return vt(a({type:"icon"},e),(function(){return pt("beforeDOMElementCreation",{iconDefinition:e,params:t}),ue.autoA11y&&(p?y["aria-labelledby"]="".concat(ue.replacementClass,"-title-").concat(h||me()):(y["aria-hidden"]="true",y.focusable="false")),kt({icons:{main:xt(x),mask:c?xt(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:_,iconName:w,transform:a(a({},de),n),symbol:o,title:p,maskId:u,titleId:h,extra:{attributes:y,styles:k,classes:g}})}))}},Kt={mixout:function(){return{icon:(e=Xt,function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(t||{}).icon?t:ht(t||{}),i=r.mask;return i&&(i=(i||{}).icon?i:ht(i||{})),e(n,a(a({},r),{},{mask:i}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=Wt,e.nodeCallback=Jt,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,r=void 0===t?C:t,n=e.callback;return Wt(r,void 0===n?function(){}:n)},e.generateSvgReplacementMutation=function(e,t){var r=t.iconName,n=t.title,a=t.titleId,i=t.prefix,o=t.transform,s=t.symbol,l=t.mask,u=t.maskId,f=t.extra;return new Promise((function(t,p){Promise.all([Ct(r,i),l.iconName?Ct(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(l){var p=c(l,2),d=p[0],h=p[1];t([e,kt({icons:{main:d,mask:h},prefix:i,iconName:r,transform:o,symbol:s,maskId:u,title:n,titleId:a,extra:f,watchable:!0})])})).catch(p)}))},e.generateAbstractIcon=function(e){var t,r=e.children,n=e.attributes,a=e.main,i=e.transform,o=ve(e.styles);return o.length>0&&(n.style=o),ke(i)&&(t=dt("generateAbstractTransformGrouping",{main:a,transform:i,containerWidth:a.width,iconWidth:a.width})),r.push(t||a.icon),{children:r,attributes:n}}}},Qt={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.classes,n=void 0===r?[]:r;return vt({type:"layer"},(function(){pt("beforeDOMElementCreation",{assembler:e,params:t});var r=[];return e((function(e){Array.isArray(e)?e.map((function(e){r=r.concat(e.abstract)})):r=r.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(ue.cssPrefix,"-layers")].concat(l(n)).join(" ")},children:r}]}))}}}},er={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.title,n=void 0===r?null:r,i=t.classes,o=void 0===i?[]:i,s=t.attributes,c=void 0===s?{}:s,u=t.styles,f=void 0===u?{}:u;return vt({type:"counter",content:e},(function(){return pt("beforeDOMElementCreation",{content:e,params:t}),function(e){var t=e.content,r=e.title,n=e.extra,i=a(a(a({},n.attributes),r?{title:r}:{}),{},{class:n.classes.join(" ")}),o=ve(n.styles);o.length>0&&(i.style=o);var s=[];return s.push({tag:"span",attributes:i,children:[t]}),r&&s.push({tag:"span",attributes:{class:"sr-only"},children:[r]}),s}({content:e.toString(),title:n,extra:{attributes:c,styles:f,classes:["".concat(ue.cssPrefix,"-layers-counter")].concat(l(o))}})}))}}}},tr={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.transform,n=void 0===r?de:r,i=t.title,o=void 0===i?null:i,s=t.classes,c=void 0===s?[]:s,u=t.attributes,f=void 0===u?{}:u,p=t.styles,d=void 0===p?{}:p;return vt({type:"text",content:e},(function(){return pt("beforeDOMElementCreation",{content:e,params:t}),_t({content:e,transform:a(a({},de),n),title:o,extra:{attributes:f,styles:d,classes:["".concat(ue.cssPrefix,"-layers-text")].concat(l(c))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var r=t.title,n=t.transform,a=t.extra,i=null,o=null;if(j){var s=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();i=c.width/s,o=c.height/s}return ue.autoA11y&&!r&&(a.attributes["aria-hidden"]="true"),Promise.resolve([e,_t({content:e.innerHTML,width:i,height:o,transform:n,title:r,extra:a,watchable:!0})])}}},rr=new RegExp('"',"ug"),nr=[1105920,1112319];function ar(e,t){var r="".concat(N).concat(t.replace(":","-"));return new Promise((function(n,i){if(null!==e.getAttribute(r))return n();var o=ge(e.children).filter((function(e){return e.getAttribute(I)===t}))[0],s=A.getComputedStyle(e,t),c=s.getPropertyValue("font-family").match(Q),l=s.getPropertyValue("font-weight"),u=s.getPropertyValue("content");if(o&&!c)return e.removeChild(o),n();if(c&&"none"!==u&&""!==u){var f=s.getPropertyValue("content"),p=~["Sharp"].indexOf(c[2])?V:U,d=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(c[2])?G[p][c[2].toLowerCase()]:ee[p][l],h=function(e){var t=e.replace(rr,""),r=function(e,t){var r,n=e.length,a=e.charCodeAt(t);return a>=55296&&a<=56319&&n>t+1&&(r=e.charCodeAt(t+1))>=56320&&r<=57343?1024*(a-55296)+r-56320+65536:a}(t,0),n=r>=nr[0]&&r<=nr[1],a=2===t.length&&t[0]===t[1];return{value:ze(a?t[0]:t),isSecondary:n||a}}(f),m=h.value,g=h.isSecondary,b=c[0].startsWith("FontAwesome"),y=Ke(d,m),v=y;if(b){var k=function(e){var t=He[e],r=Ke("fas",e);return t||(r?{prefix:"fas",iconName:r}:null)||{prefix:null,iconName:null}}(m);k.iconName&&k.prefix&&(y=k.iconName,d=k.prefix)}if(!y||g||o&&o.getAttribute(M)===d&&o.getAttribute(T)===v)n();else{e.setAttribute(r,v),o&&e.removeChild(o);var _={iconName:null,title:null,titleId:null,prefix:null,transform:de,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},w=_.extra;w.attributes[I]=t,Ct(y,d).then((function(i){var o=kt(a(a({},_),{},{icons:{main:i,mask:rt()},prefix:d,iconName:v,extra:w,watchable:!0})),s=C.createElementNS("http://www.w3.org/2000/svg","svg");"::before"===t?e.insertBefore(s,e.firstChild):e.appendChild(s),s.outerHTML=o.map((function(e){return Oe(e)})).join("\n"),e.removeAttribute(r),n()})).catch(i)}}else n()}))}function ir(e){return Promise.all([ar(e,"::before"),ar(e,"::after")])}function or(e){return e.parentNode!==document.head&&!~$.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(I)&&(!e.parentNode||"svg"!==e.parentNode.tagName)}function sr(e){if(D)return new Promise((function(t,r){var n=ge(e.querySelectorAll("*")).filter(or).map(ir),a=Ot.begin("searchPseudoElements");Rt(),Promise.all(n).then((function(){a(),$t(),t()})).catch((function(){a(),$t(),r()}))}))}var cr=!1,lr=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var r=t.toLowerCase().split("-"),n=r[0],a=r.slice(1).join("-");if(n&&"h"===a)return e.flipX=!0,e;if(n&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(n){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},ur={mixout:function(){return{parse:{transform:function(e){return lr(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var r=t.getAttribute("data-fa-transform");return r&&(e.transform=lr(r)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,r=e.transform,n=e.containerWidth,i=e.iconWidth,o={transform:"translate(".concat(n/2," 256)")},s="translate(".concat(32*r.x,", ").concat(32*r.y,") "),c="scale(".concat(r.size/16*(r.flipX?-1:1),", ").concat(r.size/16*(r.flipY?-1:1),") "),l="rotate(".concat(r.rotate," 0 0)"),u={outer:o,inner:{transform:"".concat(s," ").concat(c," ").concat(l)},path:{transform:"translate(".concat(i/2*-1," -256)")}};return{tag:"g",attributes:a({},u.outer),children:[{tag:"g",attributes:a({},u.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:a(a({},t.icon.attributes),u.path)}]}]}}}},fr={x:0,y:0,width:"100%",height:"100%"};function pr(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var dr={hooks:function(){return{parseNodeAttributes:function(e,t){var r=t.getAttribute("data-fa-mask"),n=r?it(r.split(" ").map((function(e){return e.trim()}))):rt();return n.prefix||(n.prefix=tt()),e.mask=n,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,r=e.children,n=e.attributes,i=e.main,o=e.mask,s=e.maskId,c=e.transform,l=i.width,u=i.icon,f=o.width,p=o.icon,d=function(e){var t=e.transform,r=e.containerWidth,n=e.iconWidth,a={transform:"translate(".concat(r/2," 256)")},i="translate(".concat(32*t.x,", ").concat(32*t.y,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(i," ").concat(o," ").concat(s)},path:{transform:"translate(".concat(n/2*-1," -256)")}}}({transform:c,containerWidth:f,iconWidth:l}),h={tag:"rect",attributes:a(a({},fr),{},{fill:"white"})},m=u.children?{children:u.children.map(pr)}:{},g={tag:"g",attributes:a({},d.inner),children:[pr(a({tag:u.tag,attributes:a(a({},u.attributes),d.path)},m))]},b={tag:"g",attributes:a({},d.outer),children:[g]},y="mask-".concat(s||me()),v="clip-".concat(s||me()),k={tag:"mask",attributes:a(a({},fr),{},{id:y,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[h,b]},_={tag:"defs",children:[{tag:"clipPath",attributes:{id:v},children:(t=p,"g"===t.tag?t.children:[t])},k]};return r.push(_,{tag:"rect",attributes:a({fill:"currentColor","clip-path":"url(#".concat(v,")"),mask:"url(#".concat(y,")")},fr)}),{children:r,attributes:n}}}},hr={provides:function(e){var t=!1;A.matchMedia&&(t=A.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],r={fill:"currentColor"},n={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:a(a({},r),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var i=a(a({},n),{},{attributeName:"opacity"}),o={tag:"circle",attributes:a(a({},r),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||o.children.push({tag:"animate",attributes:a(a({},n),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:a(a({},i),{},{values:"1;0;1;1;0;1;"})}),e.push(o),e.push({tag:"path",attributes:a(a({},r),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:a(a({},i),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:a(a({},r),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:a(a({},i),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}};!function(e,t){var r=t.mixoutsTo;st=e,ct={},Object.keys(lt).forEach((function(e){-1===ut.indexOf(e)&&delete lt[e]})),st.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"===typeof t[e]&&(r[e]=t[e]),"object"===i(t[e])&&Object.keys(t[e]).forEach((function(n){r[e]||(r[e]={}),r[e][n]=t[e][n]}))})),e.hooks){var n=e.hooks();Object.keys(n).forEach((function(e){ct[e]||(ct[e]=[]),ct[e].push(n[e])}))}e.provides&&e.provides(lt)}))}([Ce,Kt,Qt,er,tr,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=sr,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,r=void 0===t?C:t;ue.searchPseudoElements&&sr(r)}}},{mixout:function(){return{dom:{unwatch:function(){Rt(),cr=!0}}}},hooks:function(){return{bootstrap:function(){Ut(ft("mutationObserverCallbacks",{}))},noAuto:function(){Bt&&Bt.disconnect()},watch:function(e){var t=e.observeMutationsRoot;cr?$t():Ut(ft("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},ur,dr,hr,{hooks:function(){return{parseNodeAttributes:function(e,t){var r=t.getAttribute("data-fa-symbol"),n=null!==r&&(""===r||r);return e.symbol=n,e}}}}],{mixoutsTo:bt});var mr=bt.parse,gr=bt.icon,br=r(5556),yr=r.n(br),vr=r(96540);function kr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?kr(Object(r),!0).forEach((function(t){xr(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):kr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function wr(e){return wr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wr(e)}function xr(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ar(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function Cr(e){return function(e){if(Array.isArray(e))return Er(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Er(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Er(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Er(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Sr(e){return t=e,(t-=0)===t?e:(e=e.replace(/[\-_\s]+(.)?/g,(function(e,t){return t?t.toUpperCase():""}))).substr(0,1).toLowerCase()+e.substr(1);var t}var Dr=["style"];var jr=!1;try{jr=!0}catch(Lr){}function Or(e){return e&&"object"===wr(e)&&e.prefix&&e.iconName&&e.icon?e:mr.icon?mr.icon(e):null===e?null:e&&"object"===wr(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"===typeof e?{prefix:"fas",iconName:e}:void 0}function qr(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?xr({},e,t):{}}var Fr=vr.forwardRef((function(e,t){var r=e.icon,n=e.mask,a=e.symbol,i=e.className,o=e.title,s=e.titleId,c=e.maskId,l=Or(r),u=qr("classes",[].concat(Cr(function(e){var t,r=e.beat,n=e.fade,a=e.beatFade,i=e.bounce,o=e.shake,s=e.flash,c=e.spin,l=e.spinPulse,u=e.spinReverse,f=e.pulse,p=e.fixedWidth,d=e.inverse,h=e.border,m=e.listItem,g=e.flip,b=e.size,y=e.rotation,v=e.pull,k=(xr(t={"fa-beat":r,"fa-fade":n,"fa-beat-fade":a,"fa-bounce":i,"fa-shake":o,"fa-flash":s,"fa-spin":c,"fa-spin-reverse":u,"fa-spin-pulse":l,"fa-pulse":f,"fa-fw":p,"fa-inverse":d,"fa-border":h,"fa-li":m,"fa-flip":!0===g,"fa-flip-horizontal":"horizontal"===g||"both"===g,"fa-flip-vertical":"vertical"===g||"both"===g},"fa-".concat(b),"undefined"!==typeof b&&null!==b),xr(t,"fa-rotate-".concat(y),"undefined"!==typeof y&&null!==y&&0!==y),xr(t,"fa-pull-".concat(v),"undefined"!==typeof v&&null!==v),xr(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(k).map((function(e){return k[e]?e:null})).filter((function(e){return e}))}(e)),Cr(i.split(" ")))),f=qr("transform","string"===typeof e.transform?mr.transform(e.transform):e.transform),p=qr("mask",Or(n)),d=gr(l,_r(_r(_r(_r({},u),f),p),{},{symbol:a,title:o,titleId:s,maskId:c}));if(!d)return function(){var e;!jr&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",l),null;var h=d.abstract,m={ref:t};return Object.keys(e).forEach((function(t){Fr.defaultProps.hasOwnProperty(t)||(m[t]=e[t])})),zr(h[0],m)}));Fr.displayName="FontAwesomeIcon",Fr.propTypes={beat:yr().bool,border:yr().bool,beatFade:yr().bool,bounce:yr().bool,className:yr().string,fade:yr().bool,flash:yr().bool,mask:yr().oneOfType([yr().object,yr().array,yr().string]),maskId:yr().string,fixedWidth:yr().bool,inverse:yr().bool,flip:yr().oneOf([!0,!1,"horizontal","vertical","both"]),icon:yr().oneOfType([yr().object,yr().array,yr().string]),listItem:yr().bool,pull:yr().oneOf(["right","left"]),pulse:yr().bool,rotation:yr().oneOf([0,90,180,270]),shake:yr().bool,size:yr().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:yr().bool,spinPulse:yr().bool,spinReverse:yr().bool,symbol:yr().oneOfType([yr().bool,yr().string]),title:yr().string,titleId:yr().string,transform:yr().oneOfType([yr().string,yr().object]),swapOpacity:yr().bool},Fr.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var zr=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof r)return r;var a=(r.children||[]).map((function(r){return e(t,r)})),i=Object.keys(r.attributes||{}).reduce((function(e,t){var n=r.attributes[t];switch(t){case"class":e.attrs.className=n,delete r.attributes.class;break;case"style":e.attrs.style=n.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,t){var r,n=t.indexOf(":"),a=Sr(t.slice(0,n)),i=t.slice(n+1).trim();return a.startsWith("webkit")?e[(r=a,r.charAt(0).toUpperCase()+r.slice(1))]=i:e[a]=i,e}),{});break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=n:e.attrs[Sr(t)]=n}return e}),{attrs:{}}),o=n.style,s=void 0===o?{}:o,c=Ar(n,Dr);return i.attrs.style=_r(_r({},i.attrs.style),s),t.apply(void 0,[r.tag,_r(_r({},i.attrs),c)].concat(Cr(a)))}.bind(null,vr.createElement)},13083:(e,t,r)=>{r.d(t,{Ay:()=>$r});var n=Object.create,a=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=e=>a(e,"__esModule",{value:!0}),u=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},f=(e,t)=>{for(var r in l(e),t)a(e,r,{get:t[r],enumerable:!0})},p=e=>((e,t,r)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of o(t))c.call(e,n)||"default"===n||a(e,n,{get:()=>t[n],enumerable:!(r=i(t,n))||r.enumerable});return e})(l(a(null!=e?n(s(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),d=u({"src/grammar/tag.js"(e,t){"use strict";function r(e,t,n,a){this.message=e,this.expected=t,this.found=n,this.location=a,this.name="SyntaxError","function"===typeof Error.captureStackTrace&&Error.captureStackTrace(this,r)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(r,Error),r.buildMessage=function(e,t,r){var n,a={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t=e.parts.map((function(e){return Array.isArray(e)?s(e[0])+"-"+s(e[1]):s(e)}));return"["+(e.inverted?"^":"")+t+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(e){return e.description},not:function(e){return"not "+c(e.expected)}};function i(e){return e.charCodeAt(0).toString(16).toUpperCase()}function o(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+i(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+i(e)}))}function s(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+i(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+i(e)}))}function c(e){return a[e.type](e)}return"Expected "+function(e){var t,r,n=e.map(c);if(n.sort(),n.length>0){for(t=1,r=1;t<n.length;t++)n[t-1]!==n[t]&&(n[r]=n[t],r++);n.length=r}switch(n.length){case 1:return n[0];case 2:return n[0]+" or "+n[1];default:return n.slice(0,-1).join(", ")+", or "+n[n.length-1]}}(e)+" but "+(((n=t)?'"'+o(n)+'"':"end of input")+" found.")},t.exports={SyntaxError:r,parse:function(e,t){t=void 0!==t?t:{};var n,a={},i={Top:Te},o=Te,s="/",c=".",l="#",u="=",f="(",p=")",d=",",h="[",m="]",g="null",b="true",y="false",v="{",k="}",_=":",w="-",x='"',A="\\",C=/^[$@]/,E=/^[0-9]/,S=/^[^\0-\x1F"\\]/,D=/^[a-zA-Z0-9_\-]/,j=/^[ \n\t]/,O=qe("/",!1),q=Fe("tag name"),F=Fe("class"),z=Fe("id"),L=qe("=",!1),I=qe("(",!1),N=qe(")",!1),M=qe(",",!1),T=Fe("variable"),P=Fe("null"),R=Fe("boolean"),$=qe("[",!1),B=qe("]",!1),U=qe("{",!1),V=qe("}",!1),Z=qe(":",!1),H=Fe("number"),Y=Fe("string"),G=Fe("identifier"),W=Fe("whitespace"),J=function(e){return{type:"variable",meta:{variable:e}}},X=function(e){return{type:"annotation",meta:{attributes:e}}},K=function(e,t){return t},Q=function(e,t,r,n){t&&(r=r||[]).unshift({type:"attribute",name:"primary",value:t});const[a,i]=n?["tag",0]:["tag_open",1];return{type:a,nesting:i,meta:{tag:e,attributes:r}}},ee=function(e){return{type:"tag_close",nesting:-1,meta:{tag:e}}},te=function(e,t){return e?[e,...t]:[]},re=function(e){return e},ne=function(e){return e},ae=function(e){return e},ie=function(e){return e},oe=function(e){return{type:"class",name:e,value:!0}},se=function(e){return{type:"attribute",name:"id",value:e}},ce=function(e,t){return{type:"attribute",name:e,value:t}},le=function(e,t,r){return t?[t,...r]:[]},ue=function(e,t){let r={};for(let[n,{name:a,value:i}]of t.entries())r[a||n]=i;return new it(e,r)},fe=function(e){return e},pe=function(e,t){return{name:e,value:t}},de=function(e){return e},he=function(e,t,r){return"@"===e?[t,...r]:new at([t,...r])},me=function(){return null},ge=function(){return!0},be=function(){return!1},ye=function(e,t){return[e,...t]},ve=function(e){return e||[]},ke=function(e,t){return Object.assign(e,...t)},_e=function(e){return e||{}},we=function(e,t){return"$$mdtype"===e?{}:{[e]:t}},xe=function(){return parseFloat(e.substring(Se,Ee))},Ae=function(e){return e.join("")},Ce=function(e){return e},Ee=0,Se=0,De=[{line:1,column:1}],je=[],Oe=0;if("startRule"in t){if(!(t.startRule in i))throw new Error("Can't start parsing from rule \""+t.startRule+'".');o=i[t.startRule]}function qe(e,t){return{type:"literal",text:e,ignoreCase:t}}function Fe(e){return{type:"other",description:e}}function ze(t){var r,n=De[t];if(n)return n;for(r=t-1;!De[r];)r--;for(n={line:(n=De[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return De[t]=n,n}var Le="string"===typeof t.filename&&t.filename.length>0;function Ie(e,r){var n={};Le&&(n.filename=t.filename);var a=ze(e);n.start={offset:e,line:a.line,column:a.column};var i=ze(r);return n.end={offset:r,line:i.line,column:i.column},n}function Ne(e){var t=je[je.length-1];Ee<t.pos||(Ee>t.pos&&(t.pos=Ee,t.variants=[]),t.variants.push(e))}function Me(e,t,n){return new r(r.buildMessage(e,t,n),e,t,n)}function Te(){var t;return(t=function(){var e,t;e=Ee,(t=Ye())===a&&(t=Ue());t!==a&&(Se=e,t=J(t));return e=t,e}())===a&&(t=function(){var e,t,r,n;if(e=Ee,(t=Re())!==a){for(r=[],n=nt();n!==a;)r.push(n),n=nt();Se=e,e=X(t)}else Ee=e,e=a;return e}())===a&&(t=function(){var t,r,n,i,o,c,l,u=function(e){0===Oe&&Ne(e)};if(t=Ee,(r=Pe())!==a){for(n=[],i=nt();i!==a;)n.push(i),i=nt();for(i=Ee,(o=We())!==a?((c=nt())===a&&(c=null),Se=i,i=K(r,o)):(Ee=i,i=a),i===a&&(i=null),(o=Re())===a&&(o=null),c=[],l=nt();l!==a;)c.push(l),l=nt();u(O),47===e.charCodeAt(Ee)?(l=s,Ee++):l=a,l===a&&(l=null),Se=t,t=Q(r,i,o,l)}else Ee=t,t=a;return t}(),t===a&&(t=function(){var t,r,n,i=function(e){0===Oe&&Ne(e)};t=Ee,i(O),47===e.charCodeAt(Ee)?(r=s,Ee++):r=a;r!==a&&(n=Pe())!==a?(Se=t,t=ee(n)):(Ee=t,t=a);return t}())),t}function Pe(){var e,t;return t=q,0===Oe&&Ne(t),Oe++,e=rt(),Oe--,e}function Re(){var e,t,r,n;if(e=Ee,(t=Be())!==a){for(r=[],n=$e();n!==a;)r.push(n),n=$e();Se=e,e=te(t,r)}else Ee=e,e=a;return e}function $e(){var e,t,r;if(e=Ee,t=[],(r=nt())!==a)for(;r!==a;)t.push(r),r=nt();else t=a;return t!==a&&(r=Be())!==a?(Se=e,e=re(r)):(Ee=e,e=a),e}function Be(){var t,r;return t=Ee,r=function(){var t,r,n,i=function(e){0===Oe&&Ne(e)};i(z),Oe++,t=Ee,35===e.charCodeAt(Ee)?(r=l,Ee++):r=a;r!==a&&(n=rt())!==a?(Se=t,t=se(n)):(Ee=t,t=a);return Oe--,t}(),r!==a&&(Se=t,r=ne(r)),(t=r)===a&&(t=Ee,r=function(){var t,r,n,i=function(e){0===Oe&&Ne(e)};i(F),Oe++,t=Ee,46===e.charCodeAt(Ee)?(r=c,Ee++):r=a;r!==a&&(n=rt())!==a?(Se=t,t=oe(n)):(Ee=t,t=a);return Oe--,t}(),r!==a&&(Se=t,r=ae(r)),(t=r)===a&&(t=Ee,r=function(){var t,r,n,i,o=function(e){0===Oe&&Ne(e)};t=Ee,r=rt(),r!==a?(o(L),61===e.charCodeAt(Ee)?(n=u,Ee++):n=a,n!==a&&(i=We())!==a?(Se=t,t=ce(r,i)):(Ee=t,t=a)):(Ee=t,t=a);return t}(),r!==a&&(Se=t,r=ie(r)),t=r)),t}function Ue(){var t,r,n,i,o,s,c,l,u=function(e){0===Oe&&Ne(e)};if(t=Ee,(r=rt())!==a)if(u(I),40===e.charCodeAt(Ee)?(n=f,Ee++):n=a,n!==a){for(i=[],o=nt();o!==a;)i.push(o),o=nt();for(o=Ee,(s=Ve())===a&&(s=null),c=[],l=Ze();l!==a;)c.push(l),l=Ze();Se=o,o=le(r,s,c),u(N),41===e.charCodeAt(Ee)?(s=p,Ee++):s=a,s!==a?(Se=t,t=ue(r,o)):(Ee=t,t=a)}else Ee=t,t=a;else Ee=t,t=a;return t}function Ve(){var t,r,n,i,o;return t=Ee,r=Ee,(n=rt())!==a?(o=L,0===Oe&&Ne(o),61===e.charCodeAt(Ee)?(i=u,Ee++):i=a,i!==a?(Se=r,r=fe(n)):(Ee=r,r=a)):(Ee=r,r=a),r===a&&(r=null),(n=We())!==a?(Se=t,t=pe(r,n)):(Ee=t,t=a),t}function Ze(){var t,r,n,i,o,s;for(t=Ee,r=[],n=nt();n!==a;)r.push(n),n=nt();if(s=M,0===Oe&&Ne(s),44===e.charCodeAt(Ee)?(n=d,Ee++):n=a,n!==a){for(i=[],o=nt();o!==a;)i.push(o),o=nt();(o=Ve())!==a?(Se=t,t=de(o)):(Ee=t,t=a)}else Ee=t,t=a;return t}function He(){var t,r,n,i;for(t=Ee,r=[],n=nt();n!==a;)r.push(n),n=nt();return i=M,0===Oe&&Ne(i),44===e.charCodeAt(Ee)?(n=d,Ee++):n=a,n!==a?t=r=[r,n]:(Ee=t,t=a),t===a&&(t=null),t}function Ye(){var t,r,n,i,o,s;if(s=T,0===Oe&&Ne(s),Oe++,t=Ee,C.test(e.charAt(Ee))?(r=e.charAt(Ee),Ee++):r=a,r!==a)if((n=rt())!==a){for(i=[],o=Ge();o!==a;)i.push(o),o=Ge();Se=t,t=he(r,n,i)}else Ee=t,t=a;else Ee=t,t=a;return Oe--,t}function Ge(){var t,r,n,i;return t=Ee,46===e.charCodeAt(Ee)?(r=c,Ee++):r=a,r!==a&&(n=rt())!==a?(Se=t,t=fe(n)):(Ee=t,t=a),t===a&&(t=Ee,91===e.charCodeAt(Ee)?(r=h,Ee++):r=a,r!==a?((n=Qe())===a&&(n=et()),n!==a?(93===e.charCodeAt(Ee)?(i=m,Ee++):i=a,i!==a?(Se=t,t=de(n)):(Ee=t,t=a)):(Ee=t,t=a)):(Ee=t,t=a)),t}function We(){var t;return t=function(){var t,r,n=function(e){0===Oe&&Ne(e)};n(P),Oe++,t=Ee,e.substr(Ee,4)===g?(r=g,Ee+=4):r=a;r!==a&&(Se=t,r=me());return t=r,Oe--,t}(),t===a&&(t=function(){var t,r,n=function(e){0===Oe&&Ne(e)};n(R),Oe++,t=Ee,e.substr(Ee,4)===b?(r=b,Ee+=4):r=a;r!==a&&(Se=t,r=ge());t=r,t===a&&(t=Ee,e.substr(Ee,5)===y?(r=y,Ee+=5):r=a,r!==a&&(Se=t,r=be()),t=r);return Oe--,t}(),t===a&&(t=et())===a&&(t=Qe())===a&&(t=function(){var t,r,n,i,o,s,c,l=function(e){0===Oe&&Ne(e)};t=Ee,l($),91===e.charCodeAt(Ee)?(r=h,Ee++):r=a;if(r!==a){for(n=[],i=nt();i!==a;)n.push(i),i=nt();if(i=Ee,(o=We())!==a){for(s=[],c=Je();c!==a;)s.push(c),c=Je();c=He(),Se=i,i=ye(o,s)}else Ee=i,i=a;for(i===a&&(i=null),o=[],s=nt();s!==a;)o.push(s),s=nt();l(B),93===e.charCodeAt(Ee)?(s=m,Ee++):s=a,s!==a?(Se=t,t=ve(i)):(Ee=t,t=a)}else Ee=t,t=a;return t}(),t===a&&(t=function(){var t,r,n,i,o,s,c,l=function(e){0===Oe&&Ne(e)};t=Ee,l(U),123===e.charCodeAt(Ee)?(r=v,Ee++):r=a;if(r!==a){for(n=[],i=nt();i!==a;)n.push(i),i=nt();if(i=Ee,(o=Ke())!==a){for(s=[],c=Xe();c!==a;)s.push(c),c=Xe();c=He(),Se=i,i=ke(o,s)}else Ee=i,i=a;for(i===a&&(i=null),o=[],s=nt();s!==a;)o.push(s),s=nt();l(V),125===e.charCodeAt(Ee)?(s=k,Ee++):s=a,s!==a?(Se=t,t=_e(i)):(Ee=t,t=a)}else Ee=t,t=a;return t}(),t===a&&(t=Ue())===a&&(t=Ye())))),t}function Je(){var t,r,n,i,o,s;for(t=Ee,r=[],n=nt();n!==a;)r.push(n),n=nt();if(s=M,0===Oe&&Ne(s),44===e.charCodeAt(Ee)?(n=d,Ee++):n=a,n!==a){for(i=[],o=nt();o!==a;)i.push(o),o=nt();(o=We())!==a?(Se=t,t=de(o)):(Ee=t,t=a)}else Ee=t,t=a;return t}function Xe(){var t,r,n,i,o,s;for(t=Ee,r=[],n=nt();n!==a;)r.push(n),n=nt();if(s=M,0===Oe&&Ne(s),44===e.charCodeAt(Ee)?(n=d,Ee++):n=a,n!==a){for(i=[],o=nt();o!==a;)i.push(o),o=nt();(o=Ke())!==a?(Se=t,t=re(o)):(Ee=t,t=a)}else Ee=t,t=a;return t}function Ke(){var t,r,n,i,o,s;if(t=Ee,(r=rt())===a&&(r=et()),r!==a)if(s=Z,0===Oe&&Ne(s),58===e.charCodeAt(Ee)?(n=_,Ee++):n=a,n!==a){for(i=[],o=nt();o!==a;)i.push(o),o=nt();(o=We())!==a?(Se=t,t=we(r,o)):(Ee=t,t=a)}else Ee=t,t=a;else Ee=t,t=a;return t}function Qe(){var t,r,n,i,o,s,l,u;if(u=H,0===Oe&&Ne(u),Oe++,t=Ee,45===e.charCodeAt(Ee)?(r=w,Ee++):r=a,r===a&&(r=null),n=[],E.test(e.charAt(Ee))?(i=e.charAt(Ee),Ee++):i=a,i!==a)for(;i!==a;)n.push(i),E.test(e.charAt(Ee))?(i=e.charAt(Ee),Ee++):i=a;else n=a;if(n!==a){if(i=Ee,46===e.charCodeAt(Ee)?(o=c,Ee++):o=a,o!==a){if(s=[],E.test(e.charAt(Ee))?(l=e.charAt(Ee),Ee++):l=a,l!==a)for(;l!==a;)s.push(l),E.test(e.charAt(Ee))?(l=e.charAt(Ee),Ee++):l=a;else s=a;s!==a?i=o=[o,s]:(Ee=i,i=a)}else Ee=i,i=a;i===a&&(i=null),Se=t,t=xe()}else Ee=t,t=a;return Oe--,t}function et(){var t,r,n,i,o;if(o=Y,0===Oe&&Ne(o),Oe++,t=Ee,34===e.charCodeAt(Ee)?(r=x,Ee++):r=a,r!==a){for(n=[],i=tt();i!==a;)n.push(i),i=tt();34===e.charCodeAt(Ee)?(i=x,Ee++):i=a,i!==a?(Se=t,t=Ae(n)):(Ee=t,t=a)}else Ee=t,t=a;return Oe--,t}function tt(){var t;return S.test(e.charAt(Ee))?(t=e.charAt(Ee),Ee++):t=a,t===a&&(t=function(){var t,r,n;t=Ee,92===e.charCodeAt(Ee)?(r=A,Ee++):r=a;r!==a?(34===e.charCodeAt(Ee)?(n=x,Ee++):n=a,n===a&&(92===e.charCodeAt(Ee)?(n=A,Ee++):n=a),n!==a?(Se=t,t=Ce(n)):(Ee=t,t=a)):(Ee=t,t=a);return t}()),t}function rt(){var t,r,n,i;if(i=G,0===Oe&&Ne(i),Oe++,t=Ee,r=[],D.test(e.charAt(Ee))?(n=e.charAt(Ee),Ee++):n=a,n!==a)for(;n!==a;)r.push(n),D.test(e.charAt(Ee))?(n=e.charAt(Ee),Ee++):n=a;else r=a;return t=r!==a?e.substring(t,Ee):r,Oe--,t}function nt(){var t,r;return r=W,0===Oe&&Ne(r),Oe++,j.test(e.charAt(Ee))?(t=e.charAt(Ee),Ee++):t=a,Oe--,t}const{Variable:at,Function:it}=t;if(je.push({pos:Ee,variants:[]}),(n=o())!==a&&Ee===e.length)return n;throw n!==a&&Ee<e.length&&Ne({type:"end"}),function(){var t=je[0],r=t.pos;return Me(t.variants,r<e.length?e.charAt(r):null,r<e.length?Ie(r,r+1):Ie(r,r))}()}}}}),h=u({"node_modules/entities/lib/maps/entities.json"(e,t){t.exports={Aacute:"\xc1",aacute:"\xe1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223e",acd:"\u223f",acE:"\u223e\u0333",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",Acy:"\u0410",acy:"\u0430",AElig:"\xc6",aelig:"\xe6",af:"\u2061",Afr:"\ud835\udd04",afr:"\ud835\udd1e",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03b1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2a3f",amp:"&",AMP:"&",andand:"\u2a55",And:"\u2a53",and:"\u2227",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angmsd:"\u2221",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",Aogon:"\u0104",aogon:"\u0105",Aopf:"\ud835\udd38",aopf:"\ud835\udd52",apacir:"\u2a6f",ap:"\u2248",apE:"\u2a70",ape:"\u224a",apid:"\u224b",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224a",Aring:"\xc5",aring:"\xe5",Ascr:"\ud835\udc9c",ascr:"\ud835\udcb6",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224d",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",Backslash:"\u2216",Barv:"\u2ae7",barvee:"\u22bd",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",Bernoullis:"\u212c",Beta:"\u0392",beta:"\u03b2",beth:"\u2136",between:"\u226c",Bfr:"\ud835\udd05",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bNot:"\u2aed",bnot:"\u2310",Bopf:"\ud835\udd39",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxbox:"\u29c9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250c",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252c",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxul:"\u2518",boxuL:"\u255b",boxUl:"\u255c",boxUL:"\u255d",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255a",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253c",boxvH:"\u256a",boxVh:"\u256b",boxVH:"\u256c",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251c",boxvR:"\u255e",boxVr:"\u255f",boxVR:"\u2560",bprime:"\u2035",breve:"\u02d8",Breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",Bscr:"\u212c",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsolb:"\u29c5",bsol:"\\",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",Bumpeq:"\u224e",bumpeq:"\u224f",Cacute:"\u0106",cacute:"\u0107",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",cap:"\u2229",Cap:"\u22d2",capcup:"\u2a47",capdot:"\u2a40",CapitalDifferentialD:"\u2145",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",Cayleys:"\u212d",ccaps:"\u2a4d",Ccaron:"\u010c",ccaron:"\u010d",Ccedil:"\xc7",ccedil:"\xe7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2a4c",ccupssm:"\u2a50",Cdot:"\u010a",cdot:"\u010b",cedil:"\xb8",Cedilla:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",CenterDot:"\xb7",cfr:"\ud835\udd20",Cfr:"\u212d",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",CircleDot:"\u2299",circledR:"\xae",circledS:"\u24c8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25cb",cirE:"\u29c3",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2a74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",Congruent:"\u2261",conint:"\u222e",Conint:"\u222f",ContourIntegral:"\u222e",copf:"\ud835\udd54",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xa9",COPY:"\xa9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21b5",cross:"\u2717",Cross:"\u2a2f",Cscr:"\ud835\udc9e",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cupbrcap:"\u2a48",cupcap:"\u2a46",CupCap:"\u224d",cup:"\u222a",Cup:"\u22d3",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21a1",dArr:"\u21d3",dash:"\u2010",Dashv:"\u2ae4",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",Dcaron:"\u010e",dcaron:"\u010f",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21ca",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2a77",deg:"\xb0",Del:"\u2207",Delta:"\u0394",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",Dfr:"\ud835\udd07",dfr:"\ud835\udd21",dHar:"\u2965",dharl:"\u21c3",dharr:"\u21c2",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",diam:"\u22c4",diamond:"\u22c4",Diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",DifferentialD:"\u2146",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",Dopf:"\ud835\udd3b",dopf:"\ud835\udd55",Dot:"\xa8",dot:"\u02d9",DotDot:"\u20dc",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21d3",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21bd",DownRightTeeVector:"\u295f",DownRightVectorBar:"\u2957",DownRightVector:"\u21c1",DownTeeArrow:"\u21a7",DownTee:"\u22a4",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",Dscr:"\ud835\udc9f",dscr:"\ud835\udcb9",DScy:"\u0405",dscy:"\u0455",dsol:"\u29f6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",DZcy:"\u040f",dzcy:"\u045f",dzigrarr:"\u27ff",Eacute:"\xc9",eacute:"\xe9",easter:"\u2a6e",Ecaron:"\u011a",ecaron:"\u011b",Ecirc:"\xca",ecirc:"\xea",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042d",ecy:"\u044d",eDDot:"\u2a77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\ud835\udd08",efr:"\ud835\udd22",eg:"\u2a9a",Egrave:"\xc8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",Element:"\u2208",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25fb",emptyv:"\u2205",EmptyVerySmallSquare:"\u25ab",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014a",eng:"\u014b",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\ud835\udd3c",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",Epsilon:"\u0395",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",Equal:"\u2a75",equals:"=",EqualTilde:"\u2242",equest:"\u225f",Equilibrium:"\u21cc",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erarr:"\u2971",erDot:"\u2253",escr:"\u212f",Escr:"\u2130",esdot:"\u2250",Esim:"\u2a73",esim:"\u2242",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",Ffr:"\ud835\udd09",ffr:"\ud835\udd23",filig:"\ufb01",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",Fopf:"\ud835\udd3d",fopf:"\ud835\udd57",forall:"\u2200",ForAll:"\u2200",fork:"\u22d4",forkv:"\u2ad9",Fouriertrf:"\u2131",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",Fscr:"\u2131",gacute:"\u01f5",Gamma:"\u0393",gamma:"\u03b3",Gammad:"\u03dc",gammad:"\u03dd",gap:"\u2a86",Gbreve:"\u011e",gbreve:"\u011f",Gcedil:"\u0122",Gcirc:"\u011c",gcirc:"\u011d",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2a8c",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",gescc:"\u2aa9",ges:"\u2a7e",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",Gfr:"\ud835\udd0a",gfr:"\ud835\udd24",gg:"\u226b",Gg:"\u22d9",ggg:"\u22d9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2aa5",gl:"\u2277",glE:"\u2a92",glj:"\u2aa4",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gnE:"\u2269",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",Gopf:"\ud835\udd3e",gopf:"\ud835\udd58",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gt:">",GT:">",Gt:"\u226b",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",harrcir:"\u2948",harr:"\u2194",hArr:"\u21d4",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",Hfr:"\u210c",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",Hopf:"\u210d",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\ud835\udcbd",Hscr:"\u210b",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",Ifr:"\u2111",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",incare:"\u2105",in:"\u2208",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",intcal:"\u22ba",int:"\u222b",Int:"\u222c",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",Iscr:"\u2110",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41",jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",Lang:"\u27ea",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",larrb:"\u21e4",larrbfs:"\u291f",larr:"\u2190",Larr:"\u219e",lArr:"\u21d0",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",latail:"\u2919",lAtail:"\u291b",lat:"\u2aab",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lBarr:"\u290e",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27e8",LeftArrowBar:"\u21e4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21d0",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21c3",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTeeArrow:"\u21a4",LeftTee:"\u22a3",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangleBar:"\u29cf",LeftTriangle:"\u22b2",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21bf",LeftVectorBar:"\u2952",LeftVector:"\u21bc",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",lescc:"\u2aa8",les:"\u2a7d",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21c7",ll:"\u226a",Ll:"\u22d8",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoustache:"\u23b0",lmoust:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lnE:"\u2268",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftrightarrow:"\u27f7",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longmapsto:"\u27fc",longrightarrow:"\u27f6",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",Lscr:"\u2112",lsh:"\u21b0",Lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",lt:"<",LT:"<",Lt:"\u226a",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midast:"*",midcir:"\u2af0",mid:"\u2223",middot:"\xb7",minusb:"\u229f",minus:"\u2212",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",Mscr:"\u2133",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266e",naturals:"\u2115",natur:"\u266e",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21d7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nharr:"\u21ae",nhArr:"\u21ce",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlarr:"\u219a",nlArr:"\u21cd",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219a",nLeftarrow:"\u21cd",nleftrightarrow:"\u21ae",nLeftrightarrow:"\u21ce",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nopf:"\ud835\udd5f",Nopf:"\u2115",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangle:"\u22eb",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",nprec:"\u2280",npreceq:"\u2aaf\u0338",npre:"\u2aaf\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219b",nrArr:"\u21cf",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nRightarrow:"\u21cf",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvDash:"\u22ad",nVdash:"\u22ae",nVDash:"\u22af",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21d6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",Ocirc:"\xd4",ocirc:"\xf4",ocir:"\u229a",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",orarr:"\u21bb",Or:"\u2a54",or:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",otimesas:"\u2a36",Otimes:"\u2a37",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",para:"\xb6",parallel:"\u2225",par:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plus:"+",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",popf:"\ud835\udd61",Popf:"\u2119",pound:"\xa3",prap:"\u2ab7",Pr:"\u2abb",pr:"\u227a",prcue:"\u227c",precapprox:"\u2ab7",prec:"\u227a",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",pre:"\u2aaf",prE:"\u2ab3",precsim:"\u227e",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportional:"\u221d",Proportion:"\u2237",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",Qopf:"\u211a",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',QUOT:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",Rang:"\u27eb",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21a0",rArr:"\u21d2",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",rAtail:"\u291c",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rBarr:"\u290f",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",Re:"\u211c",rect:"\u25ad",reg:"\xae",REG:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",Rfr:"\u211c",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrowBar:"\u21e5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21d2",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVectorBar:"\u2955",RightDownVector:"\u21c2",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTeeArrow:"\u21a6",RightTee:"\u22a2",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangleBar:"\u29d0",RightTriangle:"\u22b3",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVectorBar:"\u2954",RightUpVector:"\u21be",RightVectorBar:"\u2953",RightVector:"\u21c0",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoustache:"\u23b1",rmoust:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",Ropf:"\u211d",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",rscr:"\ud835\udcc7",Rscr:"\u211b",rsh:"\u21b1",Rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2abc",sc:"\u227b",sccue:"\u227d",sce:"\u2ab0",scE:"\u2ab4",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdotb:"\u22a1",sdot:"\u22c5",sdote:"\u2a66",searhk:"\u2925",searr:"\u2198",seArr:"\u21d8",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",solbar:"\u233f",solb:"\u29c4",sol:"/",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25a1",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squ:"\u25a1",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",Sub:"\u22d0",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",Subset:"\u22d0",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succapprox:"\u2ab8",succ:"\u227b",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",sum:"\u2211",Sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",Sup:"\u22d1",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",Supset:"\u22d1",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21d9",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2a31",timesb:"\u22a0",times:"\xd7",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",topbot:"\u2336",topcir:"\u2af1",top:"\u22a4",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",Uarr:"\u219f",uArr:"\u21d1",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21d1",UpArrowDownArrow:"\u21c5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21d5",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03c5",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTeeArrow:"\u21a5",UpTee:"\u22a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",vArr:"\u21d5",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vBar:"\u2ae8",Vbar:"\u2aeb",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22a2",vDash:"\u22a8",Vdash:"\u22a9",VDash:"\u22ab",Vdashl:"\u2ae6",veebar:"\u22bb",vee:"\u2228",Vee:"\u22c1",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",Wedge:"\u22c0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xharr:"\u27f7",xhArr:"\u27fa",Xi:"\u039e",xi:"\u03be",xlarr:"\u27f5",xlArr:"\u27f8",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrarr:"\u27f6",xrArr:"\u27f9",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",yuml:"\xff",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",zfr:"\ud835\udd37",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",Zopf:"\u2124",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"}}}),m=u({"node_modules/markdown-it/lib/common/entities.js"(e,t){"use strict";t.exports=h()}}),g=u({"node_modules/uc.micro/categories/P/regex.js"(e,t){t.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/}}),b=u({"node_modules/mdurl/encode.js"(e,t){"use strict";var r={};function n(e,t,a){var i,o,s,c,l,u="";for("string"!==typeof t&&(a=t,t=n.defaultChars),"undefined"===typeof a&&(a=!0),l=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?a.push(n):a.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)a[e.charCodeAt(t)]=e[t];return a}(t),i=0,o=e.length;i<o;i++)if(s=e.charCodeAt(i),a&&37===s&&i+2<o&&/^[0-9a-f]{2}$/i.test(e.slice(i+1,i+3)))u+=e.slice(i,i+3),i+=2;else if(s<128)u+=l[s];else if(s>=55296&&s<=57343){if(s>=55296&&s<=56319&&i+1<o&&(c=e.charCodeAt(i+1))>=56320&&c<=57343){u+=encodeURIComponent(e[i]+e[i+1]),i++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[i]);return u}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",t.exports=n}}),y=u({"node_modules/mdurl/decode.js"(e,t){"use strict";var r={};function n(e,t){var a;return"string"!==typeof t&&(t=n.defaultChars),a=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),a.push(n);for(t=0;t<e.length;t++)a[n=e.charCodeAt(t)]="%"+("0"+n.toString(16).toUpperCase()).slice(-2);return a}(t),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,r,n,i,o,s,c,l="";for(t=0,r=e.length;t<r;t+=3)(n=parseInt(e.slice(t+1,t+3),16))<128?l+=a[n]:192===(224&n)&&t+3<r&&128===(192&(i=parseInt(e.slice(t+4,t+6),16)))?(l+=(c=n<<6&1984|63&i)<128?"\ufffd\ufffd":String.fromCharCode(c),t+=3):224===(240&n)&&t+6<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),128===(192&i)&&128===(192&o))?(l+=(c=n<<12&61440|i<<6&4032|63&o)<2048||c>=55296&&c<=57343?"\ufffd\ufffd\ufffd":String.fromCharCode(c),t+=6):240===(248&n)&&t+9<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),s=parseInt(e.slice(t+10,t+12),16),128===(192&i)&&128===(192&o)&&128===(192&s))?((c=n<<18&1835008|i<<12&258048|o<<6&4032|63&s)<65536||c>1114111?l+="\ufffd\ufffd\ufffd\ufffd":(c-=65536,l+=String.fromCharCode(55296+(c>>10),56320+(1023&c))),t+=9):l+="\ufffd";return l}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="",t.exports=n}}),v=u({"node_modules/mdurl/format.js"(e,t){"use strict";t.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}}}),k=u({"node_modules/mdurl/parse.js"(e,t){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var n=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,i=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),s=["'"].concat(o),c=["%","/","?",";","#"].concat(s),l=["/","?","#"],u=/^[+a-z0-9A-Z_-]{0,63}$/,f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};r.prototype.parse=function(e,t){var r,a,o,s,h,m=e;if(m=m.trim(),!t&&1===e.split("#").length){var g=i.exec(m);if(g)return this.pathname=g[1],g[2]&&(this.search=g[2]),this}var b=n.exec(m);if(b&&(o=(b=b[0]).toLowerCase(),this.protocol=b,m=m.substr(b.length)),(t||b||m.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(h="//"===m.substr(0,2))||b&&p[b]||(m=m.substr(2),this.slashes=!0)),!p[b]&&(h||b&&!d[b])){var y,v,k=-1;for(r=0;r<l.length;r++)-1!==(s=m.indexOf(l[r]))&&(-1===k||s<k)&&(k=s);for(-1!==(v=-1===k?m.lastIndexOf("@"):m.lastIndexOf("@",k))&&(y=m.slice(0,v),m=m.slice(v+1),this.auth=y),k=-1,r=0;r<c.length;r++)-1!==(s=m.indexOf(c[r]))&&(-1===k||s<k)&&(k=s);-1===k&&(k=m.length),":"===m[k-1]&&k--;var _=m.slice(0,k);m=m.slice(k),this.parseHost(_),this.hostname=this.hostname||"";var w="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!w){var x=this.hostname.split(/\./);for(r=0,a=x.length;r<a;r++){var A=x[r];if(A&&!A.match(u)){for(var C="",E=0,S=A.length;E<S;E++)A.charCodeAt(E)>127?C+="x":C+=A[E];if(!C.match(u)){var D=x.slice(0,r),j=x.slice(r+1),O=A.match(f);O&&(D.push(O[1]),j.unshift(O[2])),j.length&&(m=j.join(".")+m),this.hostname=D.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var q=m.indexOf("#");-1!==q&&(this.hash=m.substr(q),m=m.slice(0,q));var F=m.indexOf("?");return-1!==F&&(this.search=m.substr(F),m=m.slice(0,F)),m&&(this.pathname=m),d[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.exports=function(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}}}),_=u({"node_modules/mdurl/index.js"(e,t){"use strict";t.exports.encode=b(),t.exports.decode=y(),t.exports.format=v(),t.exports.parse=k()}}),w=u({"node_modules/uc.micro/properties/Any/regex.js"(e,t){t.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/}}),x=u({"node_modules/uc.micro/categories/Cc/regex.js"(e,t){t.exports=/[\0-\x1F\x7F-\x9F]/}}),A=u({"node_modules/uc.micro/categories/Cf/regex.js"(e,t){t.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/}}),C=u({"node_modules/uc.micro/categories/Z/regex.js"(e,t){t.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/}}),E=u({"node_modules/uc.micro/index.js"(e){"use strict";e.Any=w(),e.Cc=x(),e.Cf=A(),e.P=g(),e.Z=C()}}),S=u({"node_modules/markdown-it/lib/common/utils.js"(e){"use strict";var t=Object.prototype.hasOwnProperty;function r(e,r){return t.call(e,r)}function n(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var i=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,o=new RegExp(i.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),s=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,c=m();var l=/[&<>"]/,u=/[&<>"]/g,f={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function p(e){return f[e]}var d=/[.?*+^$[\]\\(){}|-]/g;var h=g();e.lib={},e.lib.mdurl=_(),e.lib.ucmicro=E(),e.assign=function(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!==typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(r){e[r]=t[r]}))}})),e},e.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},e.has=r,e.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(i,"$1")},e.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(o,(function(e,t,i){return t||function(e,t){var i=0;return r(c,t)?c[t]:35===t.charCodeAt(0)&&s.test(t)&&n(i="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(i):e}(e,i)}))},e.isValidEntityCode=n,e.fromCodePoint=a,e.escapeHtml=function(e){return l.test(e)?e.replace(u,p):e},e.arrayReplaceAt=function(e,t,r){return[].concat(e.slice(0,t),r,e.slice(t+1))},e.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},e.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},e.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},e.isPunctChar=function(e){return h.test(e)},e.escapeRE=function(e){return e.replace(d,"\\$&")},e.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"\u1e7e"==="\u1e9e".toLowerCase()&&(e=e.replace(/\u1e9e/g,"\xdf")),e.toLowerCase().toUpperCase()}}}),D=u({"node_modules/markdown-it/lib/helpers/parse_link_label.js"(e,t){"use strict";t.exports=function(e,t,r){var n,a,i,o,s=-1,c=e.posMax,l=e.pos;for(e.pos=t+1,n=1;e.pos<c;){if(93===(i=e.src.charCodeAt(e.pos))&&0===--n){a=!0;break}if(o=e.pos,e.md.inline.skipToken(e),91===i)if(o===e.pos-1)n++;else if(r)return e.pos=l,-1}return a&&(s=e.pos),e.pos=l,s}}}),j=u({"node_modules/markdown-it/lib/helpers/parse_link_destination.js"(e,t){"use strict";var r=S().unescapeAll;t.exports=function(e,t,n){var a,i,o=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(a=e.charCodeAt(t)))return s;if(60===a)return s;if(62===a)return s.pos=t+1,s.str=r(e.slice(o+1,t)),s.ok=!0,s;92===a&&t+1<n?t+=2:t++}return s}for(i=0;t<n&&32!==(a=e.charCodeAt(t))&&!(a<32||127===a);)if(92===a&&t+1<n){if(32===e.charCodeAt(t+1))break;t+=2}else{if(40===a&&++i>32)return s;if(41===a){if(0===i)break;i--}t++}return o===t||0!==i||(s.str=r(e.slice(o,t)),s.lines=0,s.pos=t,s.ok=!0),s}}}),O=u({"node_modules/markdown-it/lib/helpers/parse_link_title.js"(e,t){"use strict";var r=S().unescapeAll;t.exports=function(e,t,n){var a,i,o=0,s=t,c={ok:!1,pos:0,lines:0,str:""};if(t>=n)return c;if(34!==(i=e.charCodeAt(t))&&39!==i&&40!==i)return c;for(t++,40===i&&(i=41);t<n;){if((a=e.charCodeAt(t))===i)return c.pos=t+1,c.lines=o,c.str=r(e.slice(s+1,t)),c.ok=!0,c;if(40===a&&41===i)return c;10===a?o++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&o++),t++}return c}}}),q=u({"node_modules/markdown-it/lib/helpers/index.js"(e){"use strict";e.parseLinkLabel=D(),e.parseLinkDestination=j(),e.parseLinkTitle=O()}}),F=u({"node_modules/markdown-it/lib/renderer.js"(e,t){"use strict";var r=S().assign,n=S().unescapeAll,a=S().escapeHtml,i={};function o(){this.rules=r({},i)}i.code_inline=function(e,t,r,n,i){var o=e[t];return"<code"+i.renderAttrs(o)+">"+a(e[t].content)+"</code>"},i.code_block=function(e,t,r,n,i){var o=e[t];return"<pre"+i.renderAttrs(o)+"><code>"+a(e[t].content)+"</code></pre>\n"},i.fence=function(e,t,r,i,o){var s,c,l,u,f,p=e[t],d=p.info?n(p.info).trim():"",h="",m="";return d&&(h=(l=d.split(/(\s+)/g))[0],m=l.slice(2).join("")),0===(s=r.highlight&&r.highlight(p.content,h,m)||a(p.content)).indexOf("<pre")?s+"\n":d?(c=p.attrIndex("class"),u=p.attrs?p.attrs.slice():[],c<0?u.push(["class",r.langPrefix+h]):(u[c]=u[c].slice(),u[c][1]+=" "+r.langPrefix+h),f={attrs:u},"<pre><code"+o.renderAttrs(f)+">"+s+"</code></pre>\n"):"<pre><code"+o.renderAttrs(p)+">"+s+"</code></pre>\n"},i.image=function(e,t,r,n,a){var i=e[t];return i.attrs[i.attrIndex("alt")][1]=a.renderInlineAsText(i.children,r,n),a.renderToken(e,t,r)},i.hardbreak=function(e,t,r){return r.xhtmlOut?"<br />\n":"<br>\n"},i.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?"<br />\n":"<br>\n":"\n"},i.text=function(e,t){return a(e[t].content)},i.html_block=function(e,t){return e[t].content},i.html_inline=function(e,t){return e[t].content},o.prototype.renderAttrs=function(e){var t,r,n;if(!e.attrs)return"";for(n="",t=0,r=e.attrs.length;t<r;t++)n+=" "+a(e.attrs[t][0])+'="'+a(e.attrs[t][1])+'"';return n},o.prototype.renderToken=function(e,t,r){var n,a="",i=!1,o=e[t];return o.hidden?"":(o.block&&-1!==o.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===o.nesting?"</":"<")+o.tag,a+=this.renderAttrs(o),0===o.nesting&&r.xhtmlOut&&(a+=" /"),o.block&&(i=!0,1===o.nesting&&t+1<e.length&&("inline"===(n=e[t+1]).type||n.hidden||-1===n.nesting&&n.tag===o.tag)&&(i=!1)),a+=i?">\n":">")},o.prototype.renderInline=function(e,t,r){for(var n,a="",i=this.rules,o=0,s=e.length;o<s;o++)"undefined"!==typeof i[n=e[o].type]?a+=i[n](e,o,t,r,this):a+=this.renderToken(e,o,t);return a},o.prototype.renderInlineAsText=function(e,t,r){for(var n="",a=0,i=e.length;a<i;a++)"text"===e[a].type?n+=e[a].content:"image"===e[a].type?n+=this.renderInlineAsText(e[a].children,t,r):"softbreak"===e[a].type&&(n+="\n");return n},o.prototype.render=function(e,t,r){var n,a,i,o="",s=this.rules;for(n=0,a=e.length;n<a;n++)"inline"===(i=e[n].type)?o+=this.renderInline(e[n].children,t,r):"undefined"!==typeof s[i]?o+=s[e[n].type](e,n,t,r,this):o+=this.renderToken(e,n,t,r);return o},t.exports=o}}),z=u({"node_modules/markdown-it/lib/ruler.js"(e,t){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(r){r.enabled&&(t&&r.alt.indexOf(t)<0||e.__cache__[t].push(r.fn))}))}))},r.prototype.at=function(e,t,r){var n=this.__find__(e),a=r||{};if(-1===n)throw new Error("Parser rule not found: "+e);this.__rules__[n].fn=t,this.__rules__[n].alt=a.alt||[],this.__cache__=null},r.prototype.before=function(e,t,r,n){var a=this.__find__(e),i=n||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:r,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,r,n){var a=this.__find__(e),i=n||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:r,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,r){var n=r||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var r=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!0,r.push(e)}),this),this.__cache__=null,r},r.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},r.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var r=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!1,r.push(e)}),this),this.__cache__=null,r},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},t.exports=r}}),L=u({"node_modules/markdown-it/lib/rules_core/normalize.js"(e,t){"use strict";var r=/\r\n?|\n/g,n=/\0/g;t.exports=function(e){var t;t=(t=e.src.replace(r,"\n")).replace(n,"\ufffd"),e.src=t}}}),I=u({"node_modules/markdown-it/lib/rules_core/block.js"(e,t){"use strict";t.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}}}),N=u({"node_modules/markdown-it/lib/rules_core/inline.js"(e,t){"use strict";t.exports=function(e){var t,r,n,a=e.tokens;for(r=0,n=a.length;r<n;r++)"inline"===(t=a[r]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}}}),M=u({"node_modules/markdown-it/lib/rules_core/linkify.js"(e,t){"use strict";var r=S().arrayReplaceAt;function n(e){return/^<\/a\s*>/i.test(e)}t.exports=function(e){var t,a,i,o,s,c,l,u,f,p,d,h,m,g,b,y,v,k,_=e.tokens;if(e.md.options.linkify)for(a=0,i=_.length;a<i;a++)if("inline"===_[a].type&&e.md.linkify.pretest(_[a].content))for(m=0,t=(o=_[a].children).length-1;t>=0;t--)if("link_close"!==(c=o[t]).type){if("html_inline"===c.type&&(k=c.content,/^<a[>\s]/i.test(k)&&m>0&&m--,n(c.content)&&m++),!(m>0)&&"text"===c.type&&e.md.linkify.test(c.content)){for(f=c.content,v=e.md.linkify.match(f),l=[],h=c.level,d=0,u=0;u<v.length;u++)g=v[u].url,b=e.md.normalizeLink(g),e.md.validateLink(b)&&(y=v[u].text,y=v[u].schema?"mailto:"!==v[u].schema||/^mailto:/i.test(y)?e.md.normalizeLinkText(y):e.md.normalizeLinkText("mailto:"+y).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+y).replace(/^http:\/\//,""),(p=v[u].index)>d&&((s=new e.Token("text","",0)).content=f.slice(d,p),s.level=h,l.push(s)),(s=new e.Token("link_open","a",1)).attrs=[["href",b]],s.level=h++,s.markup="linkify",s.info="auto",l.push(s),(s=new e.Token("text","",0)).content=y,s.level=h,l.push(s),(s=new e.Token("link_close","a",-1)).level=--h,s.markup="linkify",s.info="auto",l.push(s),d=v[u].lastIndex);d<f.length&&((s=new e.Token("text","",0)).content=f.slice(d),s.level=h,l.push(s)),_[a].children=o=r(o,t,l)}}else for(t--;o[t].level!==c.level&&"link_open"!==o[t].type;)t--}}}),T=u({"node_modules/markdown-it/lib/rules_core/replacements.js"(e,t){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,n=/\((c|tm|r|p)\)/i,a=/\((c|tm|r|p)\)/gi,i={c:"\xa9",r:"\xae",p:"\xa7",tm:"\u2122"};function o(e,t){return i[t.toLowerCase()]}function s(e){var t,r,n=0;for(t=e.length-1;t>=0;t--)"text"!==(r=e[t]).type||n||(r.content=r.content.replace(a,o)),"link_open"===r.type&&"auto"===r.info&&n--,"link_close"===r.type&&"auto"===r.info&&n++}function c(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"\xb1").replace(/\.{2,}/g,"\u2026").replace(/([?!])\u2026/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1\u2014").replace(/(^|\s)--(?=\s|$)/gm,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1\u2013")),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}t.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(n.test(e.tokens[t].content)&&s(e.tokens[t].children),r.test(e.tokens[t].content)&&c(e.tokens[t].children))}}}),P=u({"node_modules/markdown-it/lib/rules_core/smartquotes.js"(e,t){"use strict";var r=S().isWhiteSpace,n=S().isPunctChar,a=S().isMdAsciiPunct,i=/['"]/,o=/['"]/g;function s(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}function c(e,t){var i,c,l,u,f,p,d,h,m,g,b,y,v,k,_,w,x,A,C,E,S;for(C=[],i=0;i<e.length;i++){for(c=e[i],d=e[i].level,x=C.length-1;x>=0&&!(C[x].level<=d);x--);if(C.length=x+1,"text"===c.type){f=0,p=(l=c.content).length;e:for(;f<p&&(o.lastIndex=f,u=o.exec(l));){if(_=w=!0,f=u.index+1,A="'"===u[0],m=32,u.index-1>=0)m=l.charCodeAt(u.index-1);else for(x=i-1;x>=0&&("softbreak"!==e[x].type&&"hardbreak"!==e[x].type);x--)if(e[x].content){m=e[x].content.charCodeAt(e[x].content.length-1);break}if(g=32,f<p)g=l.charCodeAt(f);else for(x=i+1;x<e.length&&("softbreak"!==e[x].type&&"hardbreak"!==e[x].type);x++)if(e[x].content){g=e[x].content.charCodeAt(0);break}if(b=a(m)||n(String.fromCharCode(m)),y=a(g)||n(String.fromCharCode(g)),v=r(m),(k=r(g))?_=!1:y&&(v||b||(_=!1)),v?w=!1:b&&(k||y||(w=!1)),34===g&&'"'===u[0]&&m>=48&&m<=57&&(w=_=!1),_&&w&&(_=b,w=y),_||w){if(w)for(x=C.length-1;x>=0&&(h=C[x],!(C[x].level<d));x--)if(h.single===A&&C[x].level===d){h=C[x],A?(E=t.md.options.quotes[2],S=t.md.options.quotes[3]):(E=t.md.options.quotes[0],S=t.md.options.quotes[1]),c.content=s(c.content,u.index,S),e[h.token].content=s(e[h.token].content,h.pos,E),f+=S.length-1,h.token===i&&(f+=E.length-1),p=(l=c.content).length,C.length=x;continue e}_?C.push({token:i,pos:u.index,single:A,level:d}):w&&A&&(c.content=s(c.content,u.index,"\u2019"))}else A&&(c.content=s(c.content,u.index,"\u2019"))}}}}t.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&i.test(e.tokens[t].content)&&c(e.tokens[t].children,e)}}}),R=u({"node_modules/markdown-it/lib/token.js"(e,t){"use strict";function r(e,t,r){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=r,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}r.prototype.attrIndex=function(e){var t,r,n;if(!this.attrs)return-1;for(r=0,n=(t=this.attrs).length;r<n;r++)if(t[r][0]===e)return r;return-1},r.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},r.prototype.attrSet=function(e,t){var r=this.attrIndex(e),n=[e,t];r<0?this.attrPush(n):this.attrs[r]=n},r.prototype.attrGet=function(e){var t=this.attrIndex(e),r=null;return t>=0&&(r=this.attrs[t][1]),r},r.prototype.attrJoin=function(e,t){var r=this.attrIndex(e);r<0?this.attrPush([e,t]):this.attrs[r][1]=this.attrs[r][1]+" "+t},t.exports=r}}),$=u({"node_modules/markdown-it/lib/rules_core/state_core.js"(e,t){"use strict";var r=R();function n(e,t,r){this.src=e,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=t}n.prototype.Token=r,t.exports=n}}),B=u({"node_modules/markdown-it/lib/parser_core.js"(e,t){"use strict";var r=z(),n=[["normalize",L()],["block",I()],["inline",N()],["linkify",M()],["replacements",T()],["smartquotes",P()]];function a(){this.ruler=new r;for(var e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1])}a.prototype.process=function(e){var t,r,n;for(t=0,r=(n=this.ruler.getRules("")).length;t<r;t++)n[t](e)},a.prototype.State=$(),t.exports=a}}),U=u({"node_modules/markdown-it/lib/rules_block/table.js"(e,t){"use strict";var r=S().isSpace;function n(e,t){var r=e.bMarks[t]+e.tShift[t],n=e.eMarks[t];return e.src.substr(r,n-r)}function a(e){var t,r=[],n=0,a=e.length,i=!1,o=0,s="";for(t=e.charCodeAt(n);n<a;)124===t&&(i?(s+=e.substring(o,n-1),o=n):(r.push(s+e.substring(o,n)),s="",o=n+1)),i=92===t,n++,t=e.charCodeAt(n);return r.push(s+e.substring(o)),r}t.exports=function(e,t,i,o){var s,c,l,u,f,p,d,h,m,g,b,y,v,k,_,w,x,A;if(t+2>i)return!1;if(p=t+1,e.sCount[p]<e.blkIndent)return!1;if(!e.md.options.allowIndentation&&e.sCount[p]-e.blkIndent>=4)return!1;if((l=e.bMarks[p]+e.tShift[p])>=e.eMarks[p])return!1;if(124!==(x=e.src.charCodeAt(l++))&&45!==x&&58!==x)return!1;if(l>=e.eMarks[p])return!1;if(124!==(A=e.src.charCodeAt(l++))&&45!==A&&58!==A&&!r(A))return!1;if(45===x&&r(A))return!1;for(;l<e.eMarks[p];){if(124!==(s=e.src.charCodeAt(l))&&45!==s&&58!==s&&!r(s))return!1;l++}for(d=(c=n(e,t+1)).split("|"),g=[],u=0;u<d.length;u++){if(!(b=d[u].trim())){if(0===u||u===d.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?g.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?g.push("left"):g.push("")}if(-1===(c=n(e,t).trim()).indexOf("|"))return!1;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if((d=a(c)).length&&""===d[0]&&d.shift(),d.length&&""===d[d.length-1]&&d.pop(),0===(h=d.length)||h!==g.length)return!1;if(o)return!0;for(k=e.parentType,e.parentType="table",w=e.md.block.ruler.getRules("blockquote"),(m=e.push("table_open","table",1)).map=y=[t,0],(m=e.push("thead_open","thead",1)).map=[t,t+1],(m=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<d.length;u++)m=e.push("th_open","th",1),g[u]&&(m.attrs=[["style","text-align:"+g[u]]]),(m=e.push("inline","",0)).content=d[u].trim(),m.children=[],m=e.push("th_close","th",-1);for(m=e.push("tr_close","tr",-1),m=e.push("thead_close","thead",-1),p=t+2;p<i&&!(e.sCount[p]<e.blkIndent);p++){for(_=!1,u=0,f=w.length;u<f;u++)if(w[u](e,p,i,!0)){_=!0;break}if(_)break;if(!(c=n(e,p).trim()))break;if(!e.md.options.allowIndentation&&e.sCount[p]-e.blkIndent>=4)break;for((d=a(c)).length&&""===d[0]&&d.shift(),d.length&&""===d[d.length-1]&&d.pop(),p===t+2&&((m=e.push("tbody_open","tbody",1)).map=v=[t+2,0]),(m=e.push("tr_open","tr",1)).map=[p,p+1],u=0;u<h;u++)m=e.push("td_open","td",1),g[u]&&(m.attrs=[["style","text-align:"+g[u]]]),(m=e.push("inline","",0)).content=d[u]?d[u].trim():"",m.children=[],m=e.push("td_close","td",-1);m=e.push("tr_close","tr",-1)}return v&&(m=e.push("tbody_close","tbody",-1),v[1]=p),m=e.push("table_close","table",-1),y[1]=p,e.parentType=k,e.line=p,!0}}}),V=u({"node_modules/markdown-it/lib/rules_block/code.js"(e,t){"use strict";t.exports=function(e,t,r){if(e.md.options.allowIndentation)return!1;var n,a,i;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=n=t+1;n<r;)if(e.isEmpty(n))n++;else{if(!(e.sCount[n]-e.blkIndent>=4))break;a=++n}return e.line=a,(i=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!1)+"\n",i.map=[t,e.line],!0}}}),Z=u({"node_modules/markdown-it/lib/rules_block/fence.js"(e,t){"use strict";t.exports=function(e,t,r,n){var a,i,o,s,c,l,u,f=!1,p=e.bMarks[t]+e.tShift[t],d=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(p+3>d)return!1;if(126!==(a=e.src.charCodeAt(p))&&96!==a)return!1;if(c=p,(i=(p=e.skipChars(p,a))-c)<3)return!1;if(u=e.src.slice(c,p),o=e.src.slice(p,d),96===a&&o.indexOf(String.fromCharCode(a))>=0)return!1;if(n)return!0;for(s=t;!(++s>=r)&&!((p=c=e.bMarks[s]+e.tShift[s])<(d=e.eMarks[s])&&e.sCount[s]<e.blkIndent);)if(e.src.charCodeAt(p)===a&&(e.md.options.allowIndentation||!(e.sCount[s]-e.blkIndent>=4))&&!((p=e.skipChars(p,a))-c<i)&&!((p=e.skipSpaces(p))<d)){f=!0;break}return i=e.sCount[t],e.line=s+(f?1:0),(l=e.push("fence","code",0)).info=o,l.content=e.getLines(t+1,s,i,!0),l.markup=u,l.map=[t,e.line],!0}}}),H=u({"node_modules/markdown-it/lib/rules_block/blockquote.js"(e,t){"use strict";var r=S().isSpace;t.exports=function(e,t,n,a){var i,o,s,c,l,u,f,p,d,h,m,g,b,y,v,k,_,w,x,A,C=e.lineMax,E=e.bMarks[t]+e.tShift[t],S=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(E++))return!1;if(a)return!0;for(c=d=e.sCount[t]+1,32===e.src.charCodeAt(E)?(E++,c++,d++,i=!1,k=!0):9===e.src.charCodeAt(E)?(k=!0,(e.bsCount[t]+d)%4===3?(E++,c++,d++,i=!1):i=!0):k=!1,h=[e.bMarks[t]],e.bMarks[t]=E;E<S&&(o=e.src.charCodeAt(E),r(o));)9===o?d+=4-(d+e.bsCount[t]+(i?1:0))%4:d++,E++;for(m=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(k?1:0),u=E>=S,y=[e.sCount[t]],e.sCount[t]=d-c,v=[e.tShift[t]],e.tShift[t]=E-e.bMarks[t],w=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",p=t+1;p<n&&(A=e.sCount[p]<e.blkIndent,!((E=e.bMarks[p]+e.tShift[p])>=(S=e.eMarks[p])));p++)if(62!==e.src.charCodeAt(E++)||A){if(u)break;for(_=!1,s=0,l=w.length;s<l;s++)if(w[s](e,p,n,!0)){_=!0;break}if(_){e.lineMax=p,0!==e.blkIndent&&(h.push(e.bMarks[p]),m.push(e.bsCount[p]),v.push(e.tShift[p]),y.push(e.sCount[p]),e.sCount[p]-=e.blkIndent);break}h.push(e.bMarks[p]),m.push(e.bsCount[p]),v.push(e.tShift[p]),y.push(e.sCount[p]),e.sCount[p]=-1}else{for(c=d=e.sCount[p]+1,32===e.src.charCodeAt(E)?(E++,c++,d++,i=!1,k=!0):9===e.src.charCodeAt(E)?(k=!0,(e.bsCount[p]+d)%4===3?(E++,c++,d++,i=!1):i=!0):k=!1,h.push(e.bMarks[p]),e.bMarks[p]=E;E<S&&(o=e.src.charCodeAt(E),r(o));)9===o?d+=4-(d+e.bsCount[p]+(i?1:0))%4:d++,E++;u=E>=S,m.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(k?1:0),y.push(e.sCount[p]),e.sCount[p]=d-c,v.push(e.tShift[p]),e.tShift[p]=E-e.bMarks[p]}for(g=e.blkIndent,e.blkIndent=0,(x=e.push("blockquote_open","blockquote",1)).markup=">",x.map=f=[t,0],e.md.block.tokenize(e,t,p),(x=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=C,e.parentType=b,f[1]=e.line,s=0;s<v.length;s++)e.bMarks[s+t]=h[s],e.tShift[s+t]=v[s],e.sCount[s+t]=y[s],e.bsCount[s+t]=m[s];return e.blkIndent=g,!0}}}),Y=u({"node_modules/markdown-it/lib/rules_block/hr.js"(e,t){"use strict";var r=S().isSpace;t.exports=function(e,t,n,a){var i,o,s,c,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(i=e.src.charCodeAt(l++))&&45!==i&&95!==i)return!1;for(o=1;l<u;){if((s=e.src.charCodeAt(l++))!==i&&!r(s))return!1;s===i&&o++}return!(o<3)&&(a||(e.line=t+1,(c=e.push("hr","hr",0)).map=[t,e.line],c.markup=Array(o+1).join(String.fromCharCode(i))),!0)}}}),G=u({"node_modules/markdown-it/lib/rules_block/list.js"(e,t){"use strict";var r=S().isSpace;function n(e,t){var n,a,i,o;return a=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n||a<i&&(o=e.src.charCodeAt(a),!r(o))?-1:a}function a(e,t){var n,a=e.bMarks[t]+e.tShift[t],i=a,o=e.eMarks[t];if(i+1>=o)return-1;if((n=e.src.charCodeAt(i++))<48||n>57)return-1;for(;;){if(i>=o)return-1;if(!((n=e.src.charCodeAt(i++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(i-a>=10)return-1}return i<o&&(n=e.src.charCodeAt(i),!r(n))?-1:i}t.exports=function(e,t,r,i){var o,s,c,l,u,f,p,d,h,m,g,b,y,v,k,_,w,x,A,C,E,S,D,j,O,q,F,z,L=!1,I=!0;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.allowIndentation&&e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]<e.blkIndent)return!1;if(i&&"paragraph"===e.parentType&&e.sCount[t]>=e.blkIndent&&(L=!0),(D=a(e,t))>=0){if(p=!0,O=e.bMarks[t]+e.tShift[t],y=Number(e.src.slice(O,D-1)),L&&1!==y)return!1}else{if(!((D=n(e,t))>=0))return!1;p=!1}if(L&&e.skipSpaces(D)>=e.eMarks[t])return!1;if(b=e.src.charCodeAt(D-1),i)return!0;for(g=e.tokens.length,p?(z=e.push("ordered_list_open","ol",1),1!==y&&(z.attrs=[["start",y]])):z=e.push("bullet_list_open","ul",1),z.map=m=[t,0],z.markup=String.fromCharCode(b),k=t,j=!1,F=e.md.block.ruler.getRules("list"),x=e.parentType,e.parentType="list";k<r;){for(S=D,v=e.eMarks[k],f=_=e.sCount[k]+D-(e.bMarks[t]+e.tShift[t]);S<v;){if(9===(o=e.src.charCodeAt(S)))_+=4-(_+e.bsCount[k])%4;else{if(32!==o)break;_++}S++}if(u=(s=S)>=v?1:_-f,!e.md.options.allowIndentation&&u>4&&(u=1),l=f+u,(z=e.push("list_item_open","li",1)).markup=String.fromCharCode(b),z.map=d=[t,0],p&&(z.info=e.src.slice(O,D-1)),E=e.tight,C=e.tShift[t],A=e.sCount[t],w=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=l,e.tight=!0,e.tShift[t]=s-e.bMarks[t],e.sCount[t]=_,s>=v&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,r):e.md.block.tokenize(e,t,r,!0),e.tight&&!j||(I=!1),j=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[t]=C,e.sCount[t]=A,e.tight=E,(z=e.push("list_item_close","li",-1)).markup=String.fromCharCode(b),k=t=e.line,d[1]=k,s=e.bMarks[t],k>=r)break;if(e.sCount[k]<e.blkIndent)break;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)break;for(q=!1,c=0,h=F.length;c<h;c++)if(F[c](e,k,r,!0)){q=!0;break}if(q)break;if(p){if((D=a(e,k))<0)break;O=e.bMarks[k]+e.tShift[k]}else if((D=n(e,k))<0)break;if(b!==e.src.charCodeAt(D-1))break}return(z=p?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(b),m[1]=k,e.line=k,e.parentType=x,I&&function(e,t){var r,n,a=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===a&&"paragraph_open"===e.tokens[r].type&&(e.tokens[r+2].hidden=!0,e.tokens[r].hidden=!0,r+=2)}(e,g),!0}}}),W=u({"node_modules/markdown-it/lib/rules_block/reference.js"(e,t){"use strict";var r=S().normalizeReference,n=S().isSpace;t.exports=function(e,t,a,i){var o,s,c,l,u,f,p,d,h,m,g,b,y,v,k,_,w=0,x=e.bMarks[t]+e.tShift[t],A=e.eMarks[t],C=t+1;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(x))return!1;for(;++x<A;)if(93===e.src.charCodeAt(x)&&92!==e.src.charCodeAt(x-1)){if(x+1===A)return!1;if(58!==e.src.charCodeAt(x+1))return!1;break}for(l=e.lineMax,k=e.md.block.ruler.getRules("reference"),m=e.parentType,e.parentType="reference";C<l&&!e.isEmpty(C);C++)if((e.md.options.allowIndentation||!(e.sCount[C]-e.blkIndent>3))&&!(e.sCount[C]<0)){for(v=!1,f=0,p=k.length;f<p;f++)if(k[f](e,C,l,!0)){v=!0;break}if(v)break}for(A=(y=e.getLines(t,C,e.blkIndent,!1).trim()).length,x=1;x<A;x++){if(91===(o=y.charCodeAt(x)))return!1;if(93===o){h=x;break}(10===o||92===o&&++x<A&&10===y.charCodeAt(x))&&w++}if(h<0||58!==y.charCodeAt(h+1))return!1;for(x=h+2;x<A;x++)if(10===(o=y.charCodeAt(x)))w++;else if(!n(o))break;if(!(g=e.md.helpers.parseLinkDestination(y,x,A)).ok)return!1;if(u=e.md.normalizeLink(g.str),!e.md.validateLink(u))return!1;for(s=x=g.pos,c=w+=g.lines,b=x;x<A;x++)if(10===(o=y.charCodeAt(x)))w++;else if(!n(o))break;for(g=e.md.helpers.parseLinkTitle(y,x,A),x<A&&b!==x&&g.ok?(_=g.str,x=g.pos,w+=g.lines):(_="",x=s,w=c);x<A&&(o=y.charCodeAt(x),n(o));)x++;if(x<A&&10!==y.charCodeAt(x)&&_)for(_="",x=s,w=c;x<A&&(o=y.charCodeAt(x),n(o));)x++;return!(x<A&&10!==y.charCodeAt(x))&&(!!(d=r(y.slice(1,h)))&&(i||("undefined"===typeof e.env.references&&(e.env.references={}),"undefined"===typeof e.env.references[d]&&(e.env.references[d]={title:_,href:u}),e.parentType=m,e.line=t+w+1),!0))}}}),J=u({"node_modules/markdown-it/lib/common/html_blocks.js"(e,t){"use strict";t.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]}}),X=u({"node_modules/markdown-it/lib/common/html_re.js"(e,t){"use strict";var r="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",n="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",a=new RegExp("^(?:"+r+"|"+n+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),i=new RegExp("^(?:"+r+"|"+n+")");t.exports.HTML_TAG_RE=a,t.exports.HTML_OPEN_CLOSE_TAG_RE=i}}),K=u({"node_modules/markdown-it/lib/rules_block/html_block.js"(e,t){"use strict";var r=J(),n=X().HTML_OPEN_CLOSE_TAG_RE,a=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(n.source+"\\s*$"),/^$/,!1]];t.exports=function(e,t,r,n){var i,o,s,c,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(l))return!1;for(c=e.src.slice(l,u),i=0;i<a.length&&!a[i][0].test(c);i++);if(i===a.length)return!1;if(n)return a[i][2];if(o=t+1,!a[i][1].test(c))for(;o<r&&!(e.sCount[o]<e.blkIndent);o++)if(l=e.bMarks[o]+e.tShift[o],u=e.eMarks[o],c=e.src.slice(l,u),a[i][1].test(c)){0!==c.length&&o++;break}return e.line=o,(s=e.push("html_block","",0)).map=[t,o],s.content=e.getLines(t,o,e.blkIndent,!0),!0}}}),Q=u({"node_modules/markdown-it/lib/rules_block/heading.js"(e,t){"use strict";var r=S().isSpace;t.exports=function(e,t,n,a){var i,o,s,c,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(i=e.src.charCodeAt(l))||l>=u)return!1;for(o=1,i=e.src.charCodeAt(++l);35===i&&l<u&&o<=6;)o++,i=e.src.charCodeAt(++l);return!(o>6||l<u&&!r(i))&&(a||(u=e.skipSpacesBack(u,l),(s=e.skipCharsBack(u,35,l))>l&&r(e.src.charCodeAt(s-1))&&(u=s),e.line=t+1,(c=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),c.map=[t,e.line],(c=e.push("inline","",0)).content=e.src.slice(l,u).trim(),c.map=[t,e.line],c.children=[],(c=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o)),!0)}}}),ee=u({"node_modules/markdown-it/lib/rules_block/lheading.js"(e,t){"use strict";t.exports=function(e,t,r){var n,a,i,o,s,c,l,u,f,p,d=t+1,h=e.md.block.ruler.getRules("paragraph");if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;for(p=e.parentType,e.parentType="paragraph";d<r&&!e.isEmpty(d);d++)if(e.md.options.allowIndentation||!(e.sCount[d]-e.blkIndent>3)){if(e.sCount[d]>=e.blkIndent&&(c=e.bMarks[d]+e.tShift[d])<(l=e.eMarks[d])&&(45===(f=e.src.charCodeAt(c))||61===f)&&(c=e.skipChars(c,f),(c=e.skipSpaces(c))>=l)){u=61===f?1:2;break}if(!(e.sCount[d]<0)){for(a=!1,i=0,o=h.length;i<o;i++)if(h[i](e,d,r,!0)){a=!0;break}if(a)break}}return!!u&&(n=e.getLines(t,d,e.blkIndent,!1).trim(),e.line=d+1,(s=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(f),s.map=[t,e.line],(s=e.push("inline","",0)).content=n,s.map=[t,e.line-1],s.children=[],(s=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(f),e.parentType=p,!0)}}}),te=u({"node_modules/markdown-it/lib/rules_block/paragraph.js"(e,t){"use strict";t.exports=function(e,t){var r,n,a,i,o,s,c=t+1,l=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(s=e.parentType,e.parentType="paragraph";c<u&&!e.isEmpty(c);c++)if((e.md.options.allowIndentation||!(e.sCount[c]-e.blkIndent>3))&&!(e.sCount[c]<0)){for(n=!1,a=0,i=l.length;a<i;a++)if(l[a](e,c,u,!0)){n=!0;break}if(n)break}return r=e.getLines(t,c,e.blkIndent,!1).trim(),e.line=c,(o=e.push("paragraph_open","p",1)).map=[t,e.line],(o=e.push("inline","",0)).content=r,o.map=[t,e.line],o.children=[],o=e.push("paragraph_close","p",-1),e.parentType=s,!0}}}),re=u({"node_modules/markdown-it/lib/rules_block/state_block.js"(e,t){"use strict";var r=R(),n=S().isSpace;function a(e,t,r,a){var i,o,s,c,l,u,f,p;for(this.src=e,this.md=t,this.env=r,this.tokens=a,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",p=!1,s=c=u=f=0,l=(o=this.src).length;c<l;c++){if(i=o.charCodeAt(c),!p){if(n(i)){u++,9===i?f+=4-f%4:f++;continue}p=!0}10!==i&&c!==l-1||(10!==i&&c++,this.bMarks.push(s),this.eMarks.push(c),this.tShift.push(u),this.sCount.push(f),this.bsCount.push(0),p=!1,u=0,f=0,s=c+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}a.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},a.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},a.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},a.prototype.skipSpaces=function(e){for(var t,r=this.src.length;e<r&&(t=this.src.charCodeAt(e),n(t));e++);return e},a.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!n(this.src.charCodeAt(--e)))return e+1;return e},a.prototype.skipChars=function(e,t){for(var r=this.src.length;e<r&&this.src.charCodeAt(e)===t;e++);return e},a.prototype.skipCharsBack=function(e,t,r){if(e<=r)return e;for(;e>r;)if(t!==this.src.charCodeAt(--e))return e+1;return e},a.prototype.getLines=function(e,t,r,a){var i,o,s,c,l,u,f,p=e;if(e>=t)return"";for(u=new Array(t-e),i=0;p<t;p++,i++){for(o=0,f=c=this.bMarks[p],l=p+1<t||a?this.eMarks[p]+1:this.eMarks[p];c<l&&o<r;){if(s=this.src.charCodeAt(c),n(s))9===s?o+=4-(o+this.bsCount[p])%4:o++;else{if(!(c-f<this.tShift[p]))break;o++}c++}u[i]=o>r?new Array(o-r+1).join(" ")+this.src.slice(c,l):this.src.slice(c,l)}return u.join("")},a.prototype.Token=r,t.exports=a}}),ne=u({"node_modules/markdown-it/lib/parser_block.js"(e,t){"use strict";var r=z(),n=[["table",U(),["paragraph","reference"]],["code",V()],["fence",Z(),["paragraph","reference","blockquote","list"]],["blockquote",H(),["paragraph","reference","blockquote","list"]],["hr",Y(),["paragraph","reference","blockquote","list"]],["list",G(),["paragraph","reference","blockquote"]],["reference",W()],["html_block",K(),["paragraph","reference","blockquote"]],["heading",Q(),["paragraph","reference","blockquote"]],["lheading",ee()],["paragraph",te()]];function a(){this.ruler=new r;for(var e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1],{alt:(n[e][2]||[]).slice()})}a.prototype.tokenize=function(e,t,r){for(var n,a=this.ruler.getRules(""),i=a.length,o=t,s=!1,c=e.md.options.maxNesting;o<r&&(e.line=o=e.skipEmptyLines(o),!(o>=r))&&!(e.sCount[o]<e.blkIndent);){if(e.level>=c){e.line=r;break}for(n=0;n<i&&!a[n](e,o,r,!1);n++);e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),(o=e.line)<r&&e.isEmpty(o)&&(s=!0,o++,e.line=o)}},a.prototype.parse=function(e,t,r,n){var a;e&&(a=new this.State(e,t,r,n),this.tokenize(a,a.line,a.lineMax))},a.prototype.State=re(),t.exports=a}}),ae=u({"node_modules/markdown-it/lib/rules_inline/text.js"(e,t){"use strict";function r(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}t.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}}}),ie=u({"node_modules/markdown-it/lib/rules_inline/newline.js"(e,t){"use strict";var r=S().isSpace;t.exports=function(e,t){var n,a,i,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(n=e.pending.length-1,a=e.posMax,!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){for(i=n-1;i>=1&&32===e.pending.charCodeAt(i-1);)i--;e.pending=e.pending.slice(0,i),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o<a&&r(e.src.charCodeAt(o));)o++;return e.pos=o,!0}}}),oe=u({"node_modules/markdown-it/lib/rules_inline/escape.js"(e,t){"use strict";var r,n=S().isSpace,a=[];for(r=0;r<256;r++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),t.exports=function(e,t){var r,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(++i<o){if((r=e.src.charCodeAt(i))<256&&0!==a[r])return t||(e.pending+=e.src[i]),e.pos+=2,!0;if(10===r){for(t||e.push("hardbreak","br",0),i++;i<o&&(r=e.src.charCodeAt(i),n(r));)i++;return e.pos=i,!0}}return t||(e.pending+="\\"),e.pos++,!0}}}),se=u({"node_modules/markdown-it/lib/rules_inline/backticks.js"(e,t){"use strict";t.exports=function(e,t){var r,n,a,i,o,s,c,l,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(r=u,u++,n=e.posMax;u<n&&96===e.src.charCodeAt(u);)u++;if(c=(a=e.src.slice(r,u)).length,e.backticksScanned&&(e.backticks[c]||0)<=r)return t||(e.pending+=a),e.pos+=c,!0;for(o=s=u;-1!==(o=e.src.indexOf("`",s));){for(s=o+1;s<n&&96===e.src.charCodeAt(s);)s++;if((l=s-o)===c)return t||((i=e.push("code_inline","code",0)).markup=a,i.content=e.src.slice(u,o).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=s,!0;e.backticks[l]=o}return e.backticksScanned=!0,t||(e.pending+=a),e.pos+=c,!0}}}),ce=u({"node_modules/markdown-it/lib/rules_inline/strikethrough.js"(e,t){"use strict";function r(e,t){var r,n,a,i,o,s=[],c=t.length;for(r=0;r<c;r++)126===(a=t[r]).marker&&-1!==a.end&&(i=t[a.end],(o=e.tokens[a.token]).type="s_open",o.tag="s",o.nesting=1,o.markup="~~",o.content="",(o=e.tokens[i.token]).type="s_close",o.tag="s",o.nesting=-1,o.markup="~~",o.content="","text"===e.tokens[i.token-1].type&&"~"===e.tokens[i.token-1].content&&s.push(i.token-1));for(;s.length;){for(n=(r=s.pop())+1;n<e.tokens.length&&"s_close"===e.tokens[n].type;)n++;r!==--n&&(o=e.tokens[n],e.tokens[n]=e.tokens[r],e.tokens[r]=o)}}t.exports.tokenize=function(e,t){var r,n,a,i,o=e.pos,s=e.src.charCodeAt(o);if(t)return!1;if(126!==s)return!1;if(a=(n=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(s),a<2)return!1;for(a%2&&(e.push("text","",0).content=i,a--),r=0;r<a;r+=2)e.push("text","",0).content=i+i,e.delimiters.push({marker:s,length:0,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},t.exports.postProcess=function(e){var t,n=e.tokens_meta,a=e.tokens_meta.length;for(r(e,e.delimiters),t=0;t<a;t++)n[t]&&n[t].delimiters&&r(e,n[t].delimiters)}}}),le=u({"node_modules/markdown-it/lib/rules_inline/emphasis.js"(e,t){"use strict";function r(e,t){var r,n,a,i,o,s;for(r=t.length-1;r>=0;r--)95!==(n=t[r]).marker&&42!==n.marker||-1!==n.end&&(a=t[n.end],s=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===a.token+1,o=String.fromCharCode(n.marker),(i=e.tokens[n.token]).type=s?"strong_open":"em_open",i.tag=s?"strong":"em",i.nesting=1,i.markup=s?o+o:o,i.content="",(i=e.tokens[a.token]).type=s?"strong_close":"em_close",i.tag=s?"strong":"em",i.nesting=-1,i.markup=s?o+o:o,i.content="",s&&(e.tokens[t[r-1].token].content="",e.tokens[t[n.end+1].token].content="",r--))}t.exports.tokenize=function(e,t){var r,n,a=e.pos,i=e.src.charCodeAt(a);if(t)return!1;if(95!==i&&42!==i)return!1;for(n=e.scanDelims(e.pos,42===i),r=0;r<n.length;r++)e.push("text","",0).content=String.fromCharCode(i),e.delimiters.push({marker:i,length:n.length,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},t.exports.postProcess=function(e){var t,n=e.tokens_meta,a=e.tokens_meta.length;for(r(e,e.delimiters),t=0;t<a;t++)n[t]&&n[t].delimiters&&r(e,n[t].delimiters)}}}),ue=u({"node_modules/markdown-it/lib/rules_inline/link.js"(e,t){"use strict";var r=S().normalizeReference,n=S().isSpace;t.exports=function(e,t){var a,i,o,s,c,l,u,f,p="",d="",h=e.pos,m=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(c=e.pos+1,(s=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((l=s+1)<m&&40===e.src.charCodeAt(l)){for(b=!1,l++;l<m&&(i=e.src.charCodeAt(l),n(i)||10===i);l++);if(l>=m)return!1;if(g=l,(u=e.md.helpers.parseLinkDestination(e.src,l,e.posMax)).ok){for(p=e.md.normalizeLink(u.str),e.md.validateLink(p)?l=u.pos:p="",g=l;l<m&&(i=e.src.charCodeAt(l),n(i)||10===i);l++);if(u=e.md.helpers.parseLinkTitle(e.src,l,e.posMax),l<m&&g!==l&&u.ok)for(d=u.str,l=u.pos;l<m&&(i=e.src.charCodeAt(l),n(i)||10===i);l++);}(l>=m||41!==e.src.charCodeAt(l))&&(b=!0),l++}if(b){if("undefined"===typeof e.env.references)return!1;if(l<m&&91===e.src.charCodeAt(l)?(g=l+1,(l=e.md.helpers.parseLinkLabel(e,l))>=0?o=e.src.slice(g,l++):l=s+1):l=s+1,o||(o=e.src.slice(c,s)),!(f=e.env.references[r(o)]))return e.pos=h,!1;p=f.href,d=f.title}return t||(e.pos=c,e.posMax=s,e.push("link_open","a",1).attrs=a=[["href",p]],d&&a.push(["title",d]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=l,e.posMax=m,!0}}}),fe=u({"node_modules/markdown-it/lib/rules_inline/image.js"(e,t){"use strict";var r=S().normalizeReference,n=S().isSpace;t.exports=function(e,t){var a,i,o,s,c,l,u,f,p,d,h,m,g,b="",y=e.pos,v=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(l=e.pos+2,(c=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=c+1)<v&&40===e.src.charCodeAt(u)){for(u++;u<v&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);if(u>=v)return!1;for(g=u,(p=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(b=e.md.normalizeLink(p.str),e.md.validateLink(b)?u=p.pos:b=""),g=u;u<v&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);if(p=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<v&&g!==u&&p.ok)for(d=p.str,u=p.pos;u<v&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);else d="";if(u>=v||41!==e.src.charCodeAt(u))return e.pos=y,!1;u++}else{if("undefined"===typeof e.env.references)return!1;if(u<v&&91===e.src.charCodeAt(u)?(g=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?s=e.src.slice(g,u++):u=c+1):u=c+1,s||(s=e.src.slice(l,c)),!(f=e.env.references[r(s)]))return e.pos=y,!1;b=f.href,d=f.title}return t||(o=e.src.slice(l,c),e.md.inline.parse(o,e.md,e.env,m=[]),(h=e.push("image","img",0)).attrs=a=[["src",b],["alt",""]],h.children=m,h.content=o,d&&a.push(["title",d])),e.pos=u,e.posMax=v,!0}}}),pe=u({"node_modules/markdown-it/lib/rules_inline/autolink.js"(e,t){"use strict";var r=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,n=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;t.exports=function(e,t){var a,i,o,s,c,l,u=e.pos;if(60!==e.src.charCodeAt(u))return!1;for(c=e.pos,l=e.posMax;;){if(++u>=l)return!1;if(60===(s=e.src.charCodeAt(u)))return!1;if(62===s)break}return a=e.src.slice(c+1,u),n.test(a)?(i=e.md.normalizeLink(a),!!e.md.validateLink(i)&&(t||((o=e.push("link_open","a",1)).attrs=[["href",i]],o.markup="autolink",o.info="auto",(o=e.push("text","",0)).content=e.md.normalizeLinkText(a),(o=e.push("link_close","a",-1)).markup="autolink",o.info="auto"),e.pos+=a.length+2,!0)):!!r.test(a)&&(i=e.md.normalizeLink("mailto:"+a),!!e.md.validateLink(i)&&(t||((o=e.push("link_open","a",1)).attrs=[["href",i]],o.markup="autolink",o.info="auto",(o=e.push("text","",0)).content=e.md.normalizeLinkText(a),(o=e.push("link_close","a",-1)).markup="autolink",o.info="auto"),e.pos+=a.length+2,!0))}}}),de=u({"node_modules/markdown-it/lib/rules_inline/html_inline.js"(e,t){"use strict";var r=X().HTML_TAG_RE;t.exports=function(e,t){var n,a,i,o=e.pos;return!!e.md.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(o)||o+2>=i)&&(!(33!==(n=e.src.charCodeAt(o+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(o).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(o,o+a[0].length)),e.pos+=a[0].length,!0))))}}}),he=u({"node_modules/markdown-it/lib/rules_inline/entity.js"(e,t){"use strict";var r=m(),n=S().has,a=S().isValidEntityCode,i=S().fromCodePoint,o=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,s=/^&([a-z][a-z0-9]{1,31});/i;t.exports=function(e,t){var c,l,u=e.pos,f=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<f)if(35===e.src.charCodeAt(u+1)){if(l=e.src.slice(u).match(o))return t||(c="x"===l[1][0].toLowerCase()?parseInt(l[1].slice(1),16):parseInt(l[1],10),e.pending+=a(c)?i(c):i(65533)),e.pos+=l[0].length,!0}else if((l=e.src.slice(u).match(s))&&n(r,l[1]))return t||(e.pending+=r[l[1]]),e.pos+=l[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}}}),me=u({"node_modules/markdown-it/lib/rules_inline/balance_pairs.js"(e,t){"use strict";function r(e,t){var r,n,a,i,o,s,c,l,u={},f=t.length;if(f){var p=0,d=-2,h=[];for(r=0;r<f;r++)if(a=t[r],h.push(0),t[p].marker===a.marker&&d===a.token-1||(p=r),d=a.token,a.length=a.length||0,a.close){for(u.hasOwnProperty(a.marker)||(u[a.marker]=[-1,-1,-1,-1,-1,-1]),o=u[a.marker][(a.open?3:0)+a.length%3],s=n=p-h[p]-1;n>o;n-=h[n]+1)if((i=t[n]).marker===a.marker&&i.open&&i.end<0&&(c=!1,(i.close||a.open)&&(i.length+a.length)%3===0&&(i.length%3===0&&a.length%3===0||(c=!0)),!c)){l=n>0&&!t[n-1].open?h[n-1]+1:0,h[r]=r-n+l,h[n]=l,a.open=!1,i.end=r,i.close=!1,s=-1,d=-2;break}-1!==s&&(u[a.marker][(a.open?3:0)+(a.length||0)%3]=s)}}}t.exports=function(e){var t,n=e.tokens_meta,a=e.tokens_meta.length;for(r(0,e.delimiters),t=0;t<a;t++)n[t]&&n[t].delimiters&&r(0,n[t].delimiters)}}}),ge=u({"node_modules/markdown-it/lib/rules_inline/text_collapse.js"(e,t){"use strict";t.exports=function(e){var t,r,n=0,a=e.tokens,i=e.tokens.length;for(t=r=0;t<i;t++)a[t].nesting<0&&n--,a[t].level=n,a[t].nesting>0&&n++,"text"===a[t].type&&t+1<i&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==r&&(a[r]=a[t]),r++);t!==r&&(a.length=r)}}}),be=u({"node_modules/markdown-it/lib/rules_inline/state_inline.js"(e,t){"use strict";var r=R(),n=S().isWhiteSpace,a=S().isPunctChar,i=S().isMdAsciiPunct;function o(e,t,r,n){this.src=e,this.env=r,this.md=t,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}o.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},o.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n),i=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),a.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(a),this.tokens_meta.push(i),a},o.prototype.scanDelims=function(e,t){var r,o,s,c,l,u,f,p,d,h=e,m=!0,g=!0,b=this.posMax,y=this.src.charCodeAt(e);for(r=e>0?this.src.charCodeAt(e-1):32;h<b&&this.src.charCodeAt(h)===y;)h++;return s=h-e,o=h<b?this.src.charCodeAt(h):32,f=i(r)||a(String.fromCharCode(r)),d=i(o)||a(String.fromCharCode(o)),u=n(r),(p=n(o))?m=!1:d&&(u||f||(m=!1)),u?g=!1:f&&(p||d||(g=!1)),t?(c=m,l=g):(c=m&&(!g||f),l=g&&(!m||d)),{can_open:c,can_close:l,length:s}},o.prototype.Token=r,t.exports=o}}),ye=u({"node_modules/markdown-it/lib/parser_inline.js"(e,t){"use strict";var r=z(),n=[["text",ae()],["newline",ie()],["escape",oe()],["backticks",se()],["strikethrough",ce().tokenize],["emphasis",le().tokenize],["link",ue()],["image",fe()],["autolink",pe()],["html_inline",de()],["entity",he()]],a=[["balance_pairs",me()],["strikethrough",ce().postProcess],["emphasis",le().postProcess],["text_collapse",ge()]];function i(){var e;for(this.ruler=new r,e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1]);for(this.ruler2=new r,e=0;e<a.length;e++)this.ruler2.push(a[e][0],a[e][1])}i.prototype.skipToken=function(e){var t,r,n=e.pos,a=this.ruler.getRules(""),i=a.length,o=e.md.options.maxNesting,s=e.cache;if("undefined"===typeof s[n]){if(e.level<o)for(r=0;r<i&&(e.level++,t=a[r](e,!0),e.level--,!t);r++);else e.pos=e.posMax;t||e.pos++,s[n]=e.pos}else e.pos=s[n]},i.prototype.tokenize=function(e){for(var t,r,n=this.ruler.getRules(""),a=n.length,i=e.posMax,o=e.md.options.maxNesting;e.pos<i;){if(e.level<o)for(r=0;r<a&&!(t=n[r](e,!1));r++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},i.prototype.parse=function(e,t,r,n){var a,i,o,s=new this.State(e,t,r,n);for(this.tokenize(s),o=(i=this.ruler2.getRules("")).length,a=0;a<o;a++)i[a](s)},i.prototype.State=be(),t.exports=i}}),ve=u({"node_modules/linkify-it/lib/re.js"(e,t){"use strict";t.exports=function(e){var t={};t.src_Any=w().source,t.src_Cc=x().source,t.src_Z=C().source,t.src_P=g().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var r="[><\uff5c]";return t.src_pseudo_letter="(?:(?![><\uff5c]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><\uff5c]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+r+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><\uff5c]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}}}),ke=u({"node_modules/linkify-it/index.js"(e,t){"use strict";function r(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){t&&Object.keys(t).forEach((function(r){e[r]=t[r]}))})),e}function n(e){return Object.prototype.toString.call(e)}function a(e){return"[object Function]"===n(e)}function i(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var o={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var s={"http:":{validate:function(e,t,r){var n=e.slice(t);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(n)?n.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,r){var n=e.slice(t);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(n)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,r){var n=e.slice(t);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},c="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function l(e){var t=e.re=ve()(e.__opts__),r=e.__tlds__.slice();function o(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(o(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(o(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(o(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(o(t.tpl_host_fuzzy_test),"i");var s=[];function c(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var r=e.__schemas__[t];if(null!==r){var i={validate:null,link:null};if(e.__compiled__[t]=i,"[object Object]"===n(r))return!function(e){return"[object RegExp]"===n(e)}(r.validate)?a(r.validate)?i.validate=r.validate:c(t,r):i.validate=function(e){return function(t,r){var n=t.slice(r);return e.test(n)?n.match(e)[0].length:0}}(r.validate),void(a(r.normalize)?i.normalize=r.normalize:r.normalize?c(t,r):i.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===n(e)}(r)?c(t,r):s.push(t)}})),s.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var l=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(i).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+t.src_ZPCc+"))("+l+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+t.src_ZPCc+"))("+l+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function u(e,t){var r=e.__index__,n=e.__last_index__,a=e.__text_cache__.slice(r,n);this.schema=e.__schema__.toLowerCase(),this.index=r+t,this.lastIndex=n+t,this.raw=a,this.text=a,this.url=a}function f(e,t){var r=new u(e,t);return e.__compiled__[r.schema].normalize(r,e),r}function p(e,t){if(!(this instanceof p))return new p(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||o.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},o,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},s,e),this.__compiled__={},this.__tlds__=c,this.__tlds_replaced__=!1,this.re={},l(this)}p.prototype.add=function(e,t){return this.__schemas__[e]=t,l(this),this},p.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},p.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,r,n,a,i,o,s,c;if(this.re.schema_test.test(e))for((s=this.re.schema_search).lastIndex=0;null!==(t=s.exec(e));)if(a=this.testSchemaAt(e,t[2],s.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||c<this.__index__)&&null!==(r=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(i=r.index+r[1].length,(this.__index__<0||i<this.__index__)&&(this.__schema__="",this.__index__=i,this.__last_index__=r.index+r[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(n=e.match(this.re.email_fuzzy))&&(i=n.index+n[1].length,o=n.index+n[0].length,(this.__index__<0||i<this.__index__||i===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=o)),this.__index__>=0},p.prototype.pretest=function(e){return this.re.pretest.test(e)},p.prototype.testSchemaAt=function(e,t,r){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,r,this):0},p.prototype.match=function(e){var t=0,r=[];this.__index__>=0&&this.__text_cache__===e&&(r.push(f(this,t)),t=this.__last_index__);for(var n=t?e.slice(t):e;this.test(n);)r.push(f(this,t)),n=n.slice(this.__last_index__),t+=this.__last_index__;return r.length?r:null},p.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,r){return e!==r[t-1]})).reverse(),l(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,l(this),this)},p.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},p.prototype.onCompile=function(){},t.exports=p}}),_e=u({"node_modules/punycode/punycode.js"(e,t){"use strict";var r=2147483647,n=36,a=/^xn--/,i=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,s={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,l=String.fromCharCode;function u(e){throw new RangeError(s[e])}function f(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const a=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(o,".")).split("."),t).join(".");return n+a}function p(e){const t=[];let r=0;const n=e.length;for(;r<n;){const a=e.charCodeAt(r++);if(a>=55296&&a<=56319&&r<n){const n=e.charCodeAt(r++);56320==(64512&n)?t.push(((1023&a)<<10)+(1023&n)+65536):(t.push(a),r--)}else t.push(a)}return t}var d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},h=function(e,t,r){let a=0;for(e=r?c(e/700):e>>1,e+=c(e/t);e>455;a+=n)e=c(e/35);return c(a+36*e/(e+38))},m=function(e){const t=[],a=e.length;let i=0,o=128,s=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let r=0;r<l;++r)e.charCodeAt(r)>=128&&u("not-basic"),t.push(e.charCodeAt(r));for(let p=l>0?l+1:0;p<a;){let l=i;for(let t=1,o=n;;o+=n){p>=a&&u("invalid-input");const l=(f=e.charCodeAt(p++))-48<10?f-22:f-65<26?f-65:f-97<26?f-97:n;(l>=n||l>c((r-i)/t))&&u("overflow"),i+=l*t;const d=o<=s?1:o>=s+26?26:o-s;if(l<d)break;const h=n-d;t>c(r/h)&&u("overflow"),t*=h}const d=t.length+1;s=h(i-l,d,0==l),c(i/d)>r-o&&u("overflow"),o+=c(i/d),i%=d,t.splice(i++,0,o)}var f;return String.fromCodePoint(...t)},g=function(e){const t=[];let a=(e=p(e)).length,i=128,o=0,s=72;for(const r of e)r<128&&t.push(l(r));let f=t.length,m=f;for(f&&t.push("-");m<a;){let a=r;for(const t of e)t>=i&&t<a&&(a=t);const p=m+1;a-i>c((r-o)/p)&&u("overflow"),o+=(a-i)*p,i=a;for(const g of e)if(g<i&&++o>r&&u("overflow"),g==i){let e=o;for(let r=n;;r+=n){const a=r<=s?1:r>=s+26?26:r-s;if(e<a)break;const i=e-a,o=n-a;t.push(l(d(a+i%o,0))),e=c(i/o)}t.push(l(d(e,0))),s=h(o,p,m==f),o=0,++m}++o,++i}return t.join("")},b={version:"2.1.0",ucs2:{decode:p,encode:e=>String.fromCodePoint(...e)},decode:m,encode:g,toASCII:function(e){return f(e,(function(e){return i.test(e)?"xn--"+g(e):e}))},toUnicode:function(e){return f(e,(function(e){return a.test(e)?m(e.slice(4).toLowerCase()):e}))}};t.exports=b}}),we=u({"node_modules/markdown-it/lib/presets/default.js"(e,t){"use strict";t.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}}}),xe=u({"node_modules/markdown-it/lib/presets/zero.js"(e,t){"use strict";t.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}}}),Ae=u({"node_modules/markdown-it/lib/presets/commonmark.js"(e,t){"use strict";t.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}}}),Ce=u({"node_modules/markdown-it/lib/index.js"(e,t){"use strict";var r=S(),n=q(),a=F(),i=B(),o=ne(),s=ye(),c=ke(),l=_(),u=_e(),f={default:we(),zero:xe(),commonmark:Ae()},p=/^(vbscript|javascript|file|data):/,d=/^data:image\/(gif|png|jpeg|webp);/;function h(e){var t=e.trim().toLowerCase();return!p.test(t)||!!d.test(t)}var m=["http:","https:","mailto:"];function g(e){var t=l.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=u.toASCII(t.hostname)}catch(r){}return l.encode(l.format(t))}function b(e){var t=l.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=u.toUnicode(t.hostname)}catch(r){}return l.decode(l.format(t),l.decode.defaultChars+"%")}function y(e,t){if(!(this instanceof y))return new y(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new s,this.block=new o,this.core=new i,this.renderer=new a,this.linkify=new c,this.validateLink=h,this.normalizeLink=g,this.normalizeLinkText=b,this.utils=r,this.helpers=r.assign({},n),this.options={},this.configure(e),t&&this.set(t)}y.prototype.set=function(e){return r.assign(this.options,e),this},y.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=f[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},y.prototype.enable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){r=r.concat(this[t].ruler.enable(e,!0))}),this),r=r.concat(this.inline.ruler2.enable(e,!0));var n=e.filter((function(e){return r.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},y.prototype.disable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){r=r.concat(this[t].ruler.disable(e,!0))}),this),r=r.concat(this.inline.ruler2.disable(e,!0));var n=e.filter((function(e){return r.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},y.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},y.prototype.parse=function(e,t){if("string"!==typeof e)throw new Error("Input data should be a String");var r=new this.core.State(e,this,t);return this.core.process(r),r.tokens},y.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},y.prototype.parseInline=function(e,t){var r=new this.core.State(e,this,t);return r.inlineMode=!0,this.core.process(r),r.tokens},y.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},t.exports=y}}),Ee=u({"node_modules/markdown-it/index.js"(e,t){"use strict";t.exports=Ce()}}),Se={};function De(e){return!!e?.$$mdtype}function je(e){return!("Function"!==e?.$$mdtype)}function Oe(e){return!("Variable"!==e?.$$mdtype)}function*qe(e){if(null!=e&&"object"===typeof e){if(Array.isArray(e))for(const t of e)yield*qe(t);if(De(e)&&(yield e),Object.getPrototypeOf(e)===Object.prototype)for(const t of Object.values(e))yield*qe(t)}}function Fe(e,t={}){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map((e=>Fe(e,t)));if(De(e)&&e?.resolve instanceof Function)return e.resolve(t);if(Object.getPrototypeOf(e)!==Object.prototype)return e;const r={};for(const[n,a]of Object.entries(e))r[n]=Fe(a,t);return r}f(Se,{getAstValues:()=>qe,isAst:()=>De,isFunction:()=>je,isVariable:()=>Oe,resolve:()=>Fe});var ze=class{constructor(e="div",t={},r=[]){this.$$mdtype="Tag",this.name=e,this.attributes=t,this.children=r}};ze.isTag=e=>!("Tag"!==e?.$$mdtype);var Le,Ie,Ne=p(d()),Me=class{constructor(e=[]){this.$$mdtype="Variable",this.path=e}resolve({variables:e}={}){return e instanceof Function?e(this.path):this.path.reduce(((e={},t)=>e[t]),e)}},Te=class{constructor(e,t){this.$$mdtype="Function",this.name=e,this.parameters=t}resolve(e={}){const t=e?.functions?.[this.name];if(!t)return null;const r=Fe(this.parameters,e);return t.transform?.(r,e)}};(Ie=Le||(Le={}))[Ie.normal=0]="normal",Ie[Ie.string=1]="string",Ie[Ie.escape=2]="escape";var Pe="{%",Re="%}",$e=/^[a-zA-Z0-9_-]+$/;function Be(e){return"string"===typeof e&&$e.test(e)}function Ue(e){return e&&"object"===typeof e&&"function"===typeof e.then}function Ve(e,t=0){let r=0;for(let n=t;n<e.length;n++){const t=e[n];switch(r){case 1:switch(t){case'"':r=0;break;case"\\":r=2}break;case 2:r=1;break;case 0:if('"'===t)r=1;else if(e.startsWith(Re,n))return n}}return null}function Ze(e,t,r){try{return(0,Ne.parse)(e,{Variable:Me,Function:Te})}catch(n){if(!(n instanceof Ne.SyntaxError))throw n;const{message:e,location:{start:a,end:i}}=n;return{type:"error",meta:{error:{message:e,location:{start:{line:t,character:a.offset+r},end:{line:t+1,character:i.offset+r}}}}}}}function He(e,t=0){let r=t+1;const n=[];let a=0;for(let i=0;i<e.length;i++){if("\n"===e[i]){r++;continue}if(!e.startsWith(Pe,i))continue;const t=Ve(e,i);if(null==t){i+=Pe.length;continue}const o=e.slice(i,t+Re.length),s=e.slice(i+Pe.length,t),c=e.lastIndexOf("\n",i),l=e.indexOf("\n",t),u=e.slice(c,l),f=Ze(s.trim(),r,i-c),p=u.trim()===o?c:i,d=e.slice(a,p);n.push({type:"text",start:a,end:i-1,content:d}),n.push({map:[r,r+1],position:{start:i-c,end:i-c+o.length},start:i,end:i+o.length-1,info:o,...f}),a=t+Re.length,i=a-1}return n.push({type:"text",start:a,end:e.length-1,content:e.slice(a)}),n}var Ye={class:{type:class{validate(e,t,r){return"string"===typeof e||"object"===typeof e?[]:[{id:"attribute-type-invalid",level:"error",message:`Attribute '${r}' must be type 'string | object'`}]}transform(e){if(!e||"string"===typeof e)return e;const t=[];for(const[r,n]of Object.entries(e??{}))n&&t.push(r);return t.join(" ")}},render:!0},id:{type:class{validate(e){return"string"===typeof e&&e.match(/^[a-zA-Z]/)?[]:[{id:"attribute-value-invalid",level:"error",message:"The 'id' attribute must start with a letter"}]}},render:!0}},Ge={findSchema:(e,{nodes:t={},tags:r={}}={})=>e.tag?r[e.tag]:t[e.type],attributes(e,t={}){const r=this.findSchema(e,t)??{},n={},a={...Ye,...r.attributes};for(const[i,o]of Object.entries(a)){if(0==o.render)continue;const r="string"===typeof o.render?o.render:i;let a=e.attributes[i];if("function"===typeof o.type){const e=new o.type;e.transform&&(a=e.transform(a,t))}a=void 0===a?o.default:a,void 0!==a&&(n[r]=a)}if(r.slots)for(const[i,o]of Object.entries(r.slots)){if(!1===o.render)continue;const r="string"===typeof o.render?o.render:i;e.slots[i]&&(n[r]=this.node(e.slots[i],t))}return n},children(e,t={}){const r=e.children.flatMap((e=>this.node(e,t)));return r.some(Ue)?Promise.all(r):r},node(e,t={}){const r=this.findSchema(e,t)??{};if(r&&r.transform instanceof Function)return r.transform(e,t);const n=this.children(e,t);if(!r||!r.render)return n;const a=this.attributes(e,t);return Ue(a)||Ue(n)?Promise.all([a,n]).then((e=>new ze(r.render,...e))):new ze(r.render,a,n)}},We=class{constructor(e="node",t={},r=[],n){this.$$mdtype="Node",this.errors=[],this.lines=[],this.inline=!1,this.attributes=t,this.children=r,this.type=e,this.tag=n,this.annotations=[],this.slots={}}*walk(){for(const e of[...Object.values(this.slots),...this.children])yield e,yield*e.walk()}push(e){this.children.push(e)}resolve(e={}){return Object.assign(new We,this,{children:this.children.map((t=>t.resolve(e))),attributes:Fe(this.attributes,e),slots:Object.fromEntries(Object.entries(this.slots).map((([t,r])=>[t,r.resolve(e)])))})}findSchema(e={}){return Ge.findSchema(this,e)}transformAttributes(e={}){return Ge.attributes(this,e)}transformChildren(e){return Ge.children(this,e)}transform(e){return Ge.node(this,e)}},Je={Function:Te,Node:We,Variable:Me};function Xe(e,t){if(!t)return t;const r=Je[t.$$mdtype];return r?Object.assign(new r,t):t}var Ke={...Je,...Se,fromJSON:function(e){return JSON.parse(e,Xe)}},Qe=" ",et=", ",tt="\n",rt=".",nt="-",at=80,it=["strong","em","s"],ot=(e,t)=>Math.max(e,t),st=(e,t=2)=>({...e,indent:(e.indent||0)+t});function*ct(e,t){for(const r of e.children)yield*bt(r,t)}function*lt(e){yield[...e].join("").trim()}function*ut(e){yield`| ${e.join(" | ")} |`}function ft(e){if(void 0!==e)return Ke.isAst(e)?yt(e):null===e?"null":Array.isArray(e)?"["+e.map(ft).join(et)+"]":"object"===typeof e?"{"+Object.entries(e).map((([e,t])=>`${Be(e)?e:`"${e}"`}: ${ft(t)}`)).join(et)+"}":JSON.stringify(e)}function pt(e){const t=ft(e.value);if(void 0!==t)return"primary"===e.name?t:"id"===e.name&&"string"===typeof e.value&&Be(e.value)?"#"+e.value:"class"===e.type&&Be(e.name)?"."+e.name:`${e.name}=${t}`}function*dt(e){for(const[t,r]of Object.entries(e.attributes))if("class"!==t||"object"!==typeof r||Ke.isAst(r))yield pt({type:"attribute",name:t,value:r});else for(const e of Object.keys(r))yield pt({type:"class",name:e,value:r})}function*ht(e){e.annotations.length&&(yield Pe+Qe,yield e.annotations.map(pt).join(Qe),yield Qe+Re)}function*mt(e){let t;do{const{value:r,done:n}=e.next();if(n)return;t=r.trimStart()}while(!t.length);yield t,yield*e}function*gt(e,t){yield e.replace(t,"\\$&").replace(new RegExp("\xa0","g"),"&nbsp;")}function*bt(e,t={}){switch(typeof e){case"undefined":break;case"boolean":case"number":case"string":yield e.toString();break;case"object":if(null===e)break;if(Array.isArray(e)){for(const r of e)yield*bt(r,t);break}switch(e.$$mdtype){case"Function":yield*function*(e){yield e.name,yield"(",yield Object.values(e.parameters).map(ft).join(et),yield")"}(e);break;case"Node":yield*function*(e,t={}){const r={...t,parent:e},n=Qe.repeat(r.indent||0);switch(e.type){case"document":e.attributes.frontmatter&&e.attributes.frontmatter.length&&(yield"---"+tt+e.attributes.frontmatter+tt+"---"+tt+tt),yield*mt(ct(e,r));break;case"heading":yield tt,yield n,yield"#".repeat(e.attributes.level||1),yield Qe,yield*mt(ct(e,r)),yield*ht(e),yield tt;break;case"paragraph":yield tt,yield*ct(e,r),yield*ht(e),yield tt;break;case"inline":yield n,yield*ct(e,r);break;case"image":yield"!",yield"[",yield*bt(e.attributes.alt,r),yield"]",yield"(",yield*"string"===typeof e.attributes.src?gt(e.attributes.src,/[()]/):bt(e.attributes.src,r),e.attributes.title&&(yield Qe+`"${e.attributes.title}"`),yield")";break;case"link":yield"[",yield*ct(e,r),yield"]",yield"(",yield*"string"===typeof e.attributes.href?gt(e.attributes.href,/[()]/g):bt(e.attributes.href,r),e.attributes.title&&(yield Qe+`"${e.attributes.title}"`),yield")";break;case"text":{const{content:n}=e.attributes;Ke.isAst(n)?(yield Pe+Qe,yield*bt(n,r),yield Qe+Re):t.parent&&it.includes(t.parent.type)?yield*gt(n,/[*_~]/g):yield*gt(n,/^[*>#]/);break}case"blockquote":{const t=">"+Qe;yield e.children.map((e=>yt(e,r).trimStart())).map((e=>tt+n+t+e)).join(n+t);break}case"hr":yield tt,yield n,yield"---",yield tt;break;case"fence":{yield tt,yield n;const t=(e.attributes.content.match(/`{3,}/g)||[]).map((e=>e.length)).reduce(ot,0),r="`".repeat(t?t+1:3);yield r,e.attributes.language&&(yield e.attributes.language),e.annotations.length&&(yield Qe),yield*ht(e),yield tt,yield n,yield e.attributes.content.split(tt).join(tt+n),yield r,yield tt;break}case"tag":{e.inline||(yield tt,yield n);const a=Pe+Qe,i=[...dt(e)].filter((e=>void 0!==e)),o=[a+e.tag,...i],s=o.join(Qe),c=s.length+2*a.length>(t.maxTagOpeningWidth||at);yield(!e.inline&&c?o.join(tt+Qe.repeat(a.length)+n):s)+Qe+(e.children.length?"":"/")+Re,e.children.length&&(yield*ct(e,r.allowIndentation?st(r):r),e.inline||(yield n),yield Pe+Qe+"/"+e.tag+Qe+Re),e.inline||(yield tt);break}case"list":{const t=e.children.some((e=>e.children.some((e=>"paragraph"===e.type))));for(let a=0;a<e.children.length;a++){const i=e.attributes.ordered?`${0===a?e.attributes.start??"1":"1"}${e.attributes.marker??rt}`:e.attributes.marker??nt;let o=yt(e.children[a],st(r,i.length+1));t&&a!==e.children.length-1||(o=o.trim()),yield tt+n+i+" "+o}yield tt;break}case"item":for(let t=0;t<e.children.length;t++)yield*bt(e.children[t],r),0===t&&(yield*ht(e));break;case"strong":yield e.attributes.marker??"**",yield*lt(ct(e,r)),yield e.attributes.marker??"**";break;case"em":yield e.attributes.marker??"*",yield*lt(ct(e,r)),yield e.attributes.marker??"*";break;case"code":yield"`",yield*lt(bt(e.attributes.content,r)),yield"`";break;case"s":yield"~~",yield*lt(ct(e,r)),yield"~~";break;case"hardbreak":yield"\\"+tt,yield n;break;case"softbreak":yield tt,yield n;break;case"table":{const a=[...ct(e,st(r))];if(t.parent&&"tag"===t.parent.type&&"table"===t.parent.tag){for(let e=0;e<a.length;e++){const t=a[e];if("string"===typeof t)t.trim().length&&(yield tt,yield t);else{0!==e&&(yield tt,yield n+"---");for(const e of t)yield tt+n+nt+" "+e}}yield tt}else{yield tt;const[e,...t]=a,r=a.map((e=>e.map((e=>e.length)).reduce(ot))).reduce(ot);yield*ut(e.map((e=>e+Qe.repeat(r-e.length)))),yield tt,yield*ut(e.map((()=>"-".repeat(r)))),yield tt;for(const n of t)yield*ut(n.map((e=>e+Qe.repeat(r-e.length)))),yield tt}break}case"thead":{const[t]=[...ct(e,r)];yield t||[];break}case"tr":yield[...ct(e,r)];break;case"td":case"th":yield[...ct(e,r),...ht(e)].join("").trim();break;case"tbody":yield*ct(e,r);break;case"comment":yield"\x3c!-- "+e.attributes.content+" --\x3e\n"}}(e,t);break;case"Variable":yield*function*(e){yield"$",yield e.path.map(((e,t)=>0===t?e:Be(e)?"."+e:"number"===typeof e?`[${e}]`:`["${e}"]`)).join("")}(e);break;default:throw new Error(`Unimplemented: "${e.$$mdtype}"`)}}}function yt(e,t){let r="";for(const n of bt(e,t))r+=n;return r.trimStart()}function vt(e){return!1!==e&&void 0!==e&&null!==e}var kt={attributes:{primary:{type:Object,render:!1}},transform(e,t){const r=function(e){const t=[{condition:e.attributes.primary,children:[]}];for(const r of e.children)"tag"===r.type&&"else"===r.tag?t.push({condition:!("primary"in r.attributes)||r.attributes.primary,children:[]}):t[t.length-1].children.push(r);return t}(e);for(const{condition:n,children:a}of r)if(vt(n)){const e=a.flatMap((e=>e.transform(t)));return e.some(Ue)?Promise.all(e).then((e=>e.flat())):e}return[]}},_t={selfClosing:!0,attributes:{primary:{type:Object,render:!1}}},wt={and:{transform:e=>Object.values(e).every((e=>vt(e)))},or:{transform:e=>void 0!==Object.values(e).find((e=>vt(e)))},not:{parameters:{0:{required:!0}},transform:e=>!vt(e[0])},equals:{transform(e){const t=Object.values(e);return t.every((e=>e===t[0]))}},default:{transform:e=>void 0===e[0]?e[1]:e[0]},debug:{transform:e=>JSON.stringify(e[0],null,2)}};function xt(e,t="td"){e.type="tr",e.attributes={};for(const r of e.children)r.type=t;return e}var At=[function(e){for(const t of e.walk()){if("tag"!==t.type||"table"!==t.tag)continue;const[e,...r]=t.children;if(!e||"table"===e.type)continue;const n=new Ke.Node("table",t.attributes,[new Ke.Node("thead"),new Ke.Node("tbody")]),[a,i]=n.children;"list"===e.type&&a.push(xt(e,"th"));for(const t of r){if("list"===t.type)xt(t);else{if("tag"!==t.type||"if"!==t.tag)continue;{const e=[];for(const r of t.children)"hr"!==r.type&&("list"===r.type&&xt(r),e.push(r));t.children=e}}i.push(t)}t.children=[n]}}],Ct={ordered_list:"list",bullet_list:"list",code_inline:"code",list_item:"item",variable:"text"};function Et(e,t){for(const r of t){e.annotations.push(r);const{name:t,value:n,type:a}=r;"attribute"===a?(void 0!==e.attributes[t]&&e.errors.push({id:"duplicate-attribute",level:"warning",message:`Attribute '${t}' already set`}),e.attributes[t]=n):"class"===a&&(e.attributes.class?e.attributes.class[t]=n:e.attributes.class={[t]:n})}}function St(e,t,r,n,a,i){if("frontmatter"===e.type)return void(t[0].attributes.frontmatter=e.content);if(e.hidden||"text"===e.type&&""===e.content)return;const o=e.errors||[],s=t[t.length-1],{tag:c,attributes:l,error:u}=e.meta||{};if("annotation"===e.type)return i?Et(i,l):s.errors.push({id:"no-inline-annotations",level:"error",message:`Can't apply inline annotations to '${s.type}'`});let f=e.type.replace(/_(open|close)$/,"");if(Ct[f]&&(f=Ct[f]),"error"===f){const{message:e,location:t}=u;o.push({id:"parse-error",level:"critical",message:e,location:t})}if(e.nesting<0){if(s.type===f&&s.tag===c)return s.lines&&e.map&&s.lines.push(...e.map),t.pop();o.push({id:"missing-opening",level:"critical",message:`Node '${f}' is missing opening`})}const p=function(e,t){switch(t){case"heading":return{level:Number(e.tag.replace("h",""))};case"list":{const t=e.attrs?Object.fromEntries(e.attrs):void 0,r=e.type.startsWith("ordered");return r&&t?.start?{ordered:!0,start:t.start,marker:e.markup}:{ordered:r,marker:e.markup}}case"link":{const t=Object.fromEntries(e.attrs);return t.title?{href:t.href,title:t.title}:{href:t.href}}case"image":{const t=Object.fromEntries(e.attrs);return t.title?{alt:e.content,src:t.src,title:t.title}:{alt:e.content,src:t.src}}case"em":case"strong":return{marker:e.markup};case"text":case"code":case"comment":return{content:(e.meta||{}).variable||e.content};case"fence":{const[t]=e.info.split(" ",1);return""===t||t===Pe?{content:e.content}:{content:e.content,language:t}}case"td":case"th":if(e.attrs){const t=Object.fromEntries(e.attrs);let r;if(t.style&&(t.style.includes("left")?r="left":t.style.includes("center")?r="center":t.style.includes("right")&&(r="right")),r)return{align:r}}return{};default:return{}}}(e,f),d=new We(f,p,void 0,c||void 0),{position:h={}}=e;if(d.errors=o,!1!==a&&(d.lines=e.map||s.lines||[],d.location={file:r,start:{line:d.lines[0],character:h.start},end:{line:d.lines[1],character:h.end}}),i&&(d.inline=!0),l&&["tag","fence","image"].includes(f)&&Et(d,l),n&&"slot"===c&&"string"===typeof d.attributes.primary?s.slots[d.attributes.primary]=d:s.push(d),e.nesting>0&&t.push(d),!Array.isArray(e.children))return;"inline"===d.type&&(i=s),t.push(d);if(!("image"===f))for(const m of e.children)St(m,t,r,n,a,i);t.pop()}var Dt={};f(Dt,{blockquote:()=>Lt,code:()=>Wt,comment:()=>Qt,document:()=>jt,em:()=>Zt,error:()=>er,fence:()=>zt,hardbreak:()=>Xt,heading:()=>Ot,hr:()=>Mt,image:()=>Ft,inline:()=>Yt,item:()=>It,link:()=>Gt,list:()=>Nt,node:()=>tr,paragraph:()=>qt,s:()=>Ht,softbreak:()=>Kt,strong:()=>Vt,table:()=>Tt,tbody:()=>Bt,td:()=>Pt,text:()=>Jt,th:()=>Rt,thead:()=>Ut,tr:()=>$t});var jt={render:"article",children:["heading","paragraph","image","table","tag","fence","blockquote","comment","list","hr"],attributes:{frontmatter:{render:!1}}},Ot={children:["inline"],attributes:{level:{type:Number,render:!1,required:!0}},transform:(e,t)=>new ze(`h${e.attributes.level}`,e.transformAttributes(t),e.transformChildren(t))},qt={render:"p",children:["inline"]},Ft={render:"img",attributes:{src:{type:String,required:!0},alt:{type:String},title:{type:String}}},zt={render:"pre",attributes:{content:{type:String,render:!1,required:!0},language:{type:String,render:"data-language"},process:{type:Boolean,render:!1,default:!0}},transform(e,t){const r=e.transformAttributes(t),n=e.children.length?e.transformChildren(t):[e.attributes.content];return new ze("pre",r,n)}},Lt={render:"blockquote",children:["heading","paragraph","image","table","tag","fence","blockquote","list","hr"]},It={render:"li",children:["inline","heading","paragraph","image","table","tag","fence","blockquote","list","hr"]},Nt={children:["item"],attributes:{ordered:{type:Boolean,render:!1,required:!0},start:{type:Number},marker:{type:String,render:!1}},transform:(e,t)=>new ze(e.attributes.ordered?"ol":"ul",e.transformAttributes(t),e.transformChildren(t))},Mt={render:"hr"},Tt={render:"table"},Pt={render:"td",children:["inline","heading","paragraph","image","table","tag","fence","blockquote","list","hr"],attributes:{align:{type:String},colspan:{type:Number,render:"colSpan"},rowspan:{type:Number,render:"rowSpan"}}},Rt={render:"th",attributes:{width:{type:Number},align:{type:String},colspan:{type:Number,render:"colSpan"},rowspan:{type:Number,render:"rowSpan"}}},$t={render:"tr",children:["th","td"]},Bt={render:"tbody",children:["tr","tag"]},Ut={render:"thead",children:["tr"]},Vt={render:"strong",children:["em","s","link","code","text","tag"],attributes:{marker:{type:String,render:!1}}},Zt={render:"em",children:["strong","s","link","code","text","tag"],attributes:{marker:{type:String,render:!1}}},Ht={render:"s",children:["strong","em","link","code","text","tag"]},Yt={children:["strong","em","s","code","text","tag","link","image","hardbreak","softbreak","comment"]},Gt={render:"a",children:["strong","em","s","code","text","tag"],attributes:{href:{type:String,required:!0},title:{type:String}}},Wt={render:"code",attributes:{content:{type:String,render:!1,required:!0}},transform(e,t){const r=e.transformAttributes(t);return new ze("code",r,[e.attributes.content])}},Jt={attributes:{content:{type:String,required:!0}},transform:e=>e.attributes.content},Xt={render:"br"},Kt={transform:()=>" "},Qt={attributes:{content:{type:String,required:!0}}},er={},tr={},rr=p(Ee()),{escapeHtml:nr}=(0,rr.default)().utils,ar=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function ir(e,t){return"string"!==typeof e?"Fragment":e[0]!==e[0].toUpperCase()?e:t instanceof Function?t(e):t[e]}function or(e){return e.map(cr).join(", ")}function sr(e){if(null==e||"object"!==typeof e)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map((e=>sr(e))).join(", ")}]`;if("Tag"===e.$$mdtype)return cr(e);if("object"!==typeof e)return JSON.stringify(e);return`{${Object.entries(e).map((([e,t])=>[JSON.stringify(e),sr(t)].join(": "))).join(", ")}}`}function cr(e){if(Array.isArray(e))return`React.createElement(React.Fragment, null, ${or(e)})`;if(null===e||"object"!==typeof e||!ze.isTag(e))return JSON.stringify(e);const{name:t,attributes:{class:r,...n}={},children:a=[]}=e;return r&&(n.className=r),`React.createElement(\n tagName(${JSON.stringify(t)}, components),\n ${0==Object.keys(n).length?"null":sr(n)},\n ${or(a)})`}var lr={html:function e(t){if("string"===typeof t||"number"===typeof t)return nr(String(t));if(Array.isArray(t))return t.map(e).join("");if(null===t||"object"!==typeof t||!ze.isTag(t))return"";const{name:r,attributes:n,children:a=[]}=t;if(!r)return e(a);let i=`<${r}`;for(const[o,s]of Object.entries(n??{}))i+=` ${o.toLowerCase()}="${nr(String(s))}"`;return i+=">",ar.has(r)||(a.length&&(i+=e(a)),i+=`</${r}>`),i},react:function(e,t,{components:r={}}={}){function n(e){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map((e=>n(e)));if("Tag"===e.$$mdtype)return a(e);if("object"!==typeof e)return e;const t={};for(const[r,a]of Object.entries(e))t[r]=n(a);return t}function a(e){if(Array.isArray(e))return t.createElement(t.Fragment,null,...e.map(a));if(null===e||"object"!==typeof e||!ze.isTag(e))return e;const{name:i,attributes:{class:o,...s}={},children:c=[]}=e;return o&&(s.className=o),t.createElement(function(e,t){return"string"!==typeof e||e[0]!==e[0].toUpperCase()?e:t instanceof Function?t(e):t[e]}(i,r),0==Object.keys(s).length?null:n(s),...c.map(a))}return a(e)},reactStatic:function(e){return`\n (({components = {}} = {}) => {\n ${ir}\n return ${cr(e)};\n })\n`}},ur={else:_t,if:kt,partial:{inline:!1,selfClosing:!0,attributes:{file:{type:class{validate(e,t){const{partials:r={}}=t;return r[e]?[]:[{id:"attribute-value-invalid",level:"error",message:`Partial \`${e}\` not found. The 'file' attribute must be set in \`config.partials\``}]}},render:!1,required:!0},variables:{type:Object,render:!1}},transform(e,t){const{partials:r={}}=t,{file:n,variables:a}=e.attributes,i=r[n];if(!i)return null;const o={...t,variables:{...t.variables,...a,"$$partial:filename":n}},s=e=>e.resolve(o).transformChildren(o);return Array.isArray(i)?i.flatMap(s):s(i)}},slot:{attributes:{primary:{type:String,required:!0}}},table:{children:["table"],inline:!1}},fr=p(Ce()),pr=p(d());function dr(e,t,r){try{const{type:r,meta:n,nesting:a=0}=(0,pr.parse)(t,{Variable:Me,Function:Te}),i=e.push(r,"",a);return i.info=t,i.meta=n,e.delimiters||(e.delimiters=[]),i}catch(n){if(!(n instanceof pr.SyntaxError))throw n;const{message:t,location:{start:a,end:i}}=n,o=r?{start:{offset:a.offset+r},end:{offset:i.offset+r}}:null,s=e.push("error","",0);return s.meta={error:{message:t,location:o}},s}}function hr(e,t,r,n){const a=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(!e.src.startsWith(Pe,a))return!1;const o=Ve(e.src,a),s=e.src.slice(0,i).trim().length;if(!o||o<s-Re.length)return!1;const c=a+Pe.length,l=e.src.slice(c,o).trim(),u=e.src.slice(a,o+Re.length).split("\n").length;if("$"===l[0])return!1;if(n)return!0;return dr(e,l,c).map=[t,t+u],e.line+=u,!0}function mr(e,t){if(!e.src.startsWith(Pe,e.pos))return!1;const r=Ve(e.src,e.pos);if(!r)return!1;const n=e.src.slice(e.pos+Pe.length,r);return t||dr(e,n.trim()),e.pos=r+Re.length,!0}function gr(e){let t;for(t of e.tokens)if("fence"===t.type){if(t.info.includes(Pe)){const e=t.info.indexOf(Pe),n=Ve(t.info,e),a=t.info.slice(e+Pe.length,n);try{const{meta:e}=(0,pr.parse)(a.trim(),{Variable:Me,Function:Te});t.meta=e}catch(r){if(!(r instanceof pr.SyntaxError))throw r;t.errors||(t.errors=[]),t.errors.push({id:"fence-tag-error",level:"error",message:`Syntax error in fence tag: ${r.message}`})}}t?.meta?.attributes?.find((e=>"process"===e.name&&!e.value))||(t.children=He(t.content,t.map[0]))}}function br(e){e.block.ruler.before("paragraph","annotations",hr,{alt:["paragraph","blockquote"]}),e.inline.ruler.push("containers",mr),e.core.ruler.push("annotations",gr)}var yr="---";function vr(e,t){return e.src.slice(e.bMarks[t],e.eMarks[t]).trim()}function kr(e,t,r,n){if(0!=t||vr(e,0)!=yr)return!1;const a=function(e,t){for(let r=1;r<t;r++)if(vr(e,r)===yr)return r}(e,r);if(!a)return!1;if(n)return!0;const i=e.push("frontmatter","",0);return i.content=e.src.slice(e.eMarks[0],e.bMarks[a]).trim(),i.map=[0,a],i.hidden=!0,e.line=a+1,!0}function _r(e){e.block.ruler.before("hr","frontmatter",kr)}var wr="\x3c!--",xr="--\x3e";function Ar(e,t,r,n){const a=e.bMarks[t]+e.tShift[t];if(!e.src.startsWith(wr,a))return!1;const i=e.src.indexOf(xr,a);if(!i)return!1;if(n)return!0;const o=e.src.slice(a+wr.length,i),s=o.split("\n").length,c=e.push("comment","",0);return c.content=o.trim(),c.map=[t,t+s],e.line+=s,!0}function Cr(e,t){if(!e.src.startsWith(wr,e.pos))return!1;const r=e.src.indexOf(xr,e.pos);if(!r)return!1;if(t)return!0;const n=e.src.slice(e.pos+wr.length,r);return e.push("comment","",0).content=n.trim(),e.pos=r+xr.length,!0}function Er(e){e.block.ruler.before("table","comment",Ar,{alt:["paragraph"]}),e.inline.ruler.push("comment",Cr)}var Sr=class{constructor(e={}){this.parser=new fr.default(e),this.parser.use(br,"annotations",{}),this.parser.use(_r,"frontmatter",{}),this.parser.disable(["lheading","code"]),e.allowComments&&this.parser.use(Er,"comments",{})}tokenize(e){return this.parser.parse(e.toString(),{})}},Dr={String:String,Number:Number,Array:Array,Object:Object,Boolean:Boolean};function jr(e,t,r,n){if(!e)return!0;if(Ke.isFunction(t)&&r.validation?.validateFunctions){const n=r.functions?.[t.name];return!n?.returns||(Array.isArray(n.returns)?void 0!==n.returns.find((t=>t===e)):n.returns===e)}if(Ke.isAst(t))return!0;if(Array.isArray(e))return e.some((e=>jr(e,t,r,n)));if("string"===typeof e&&(e=Dr[e]),"function"===typeof e){const a=new e;if(a.validate)return a.validate(t,r,n)}return null!=t&&t.constructor===e}function Or(e){return"string"===typeof e?e:Array.isArray(e)?e.map(Or).join(" | "):e.name}function qr(e,t){const r=t.functions?.[e.name],n=[];if(!r)return[{id:"function-undefined",level:"critical",message:`Undefined function: '${e.name}'`}];if(r.validate&&n.push(...r.validate(e,t)),r.parameters)for(const[a,i]of Object.entries(e.parameters)){const o=r.parameters?.[a];if(o){if((!Ke.isAst(i)||Ke.isFunction(i))&&o.type){const r=jr(o.type,i,t,a);!1===r?n.push({id:"parameter-type-invalid",level:"error",message:`Parameter '${a}' of '${e.name}' must be type of '${Or(o.type)}'`}):Array.isArray(r)&&n.push(...r)}}else n.push({id:"parameter-undefined",level:"error",message:`Invalid parameter: '${a}'`})}for(const[a,{required:i}]of Object.entries(r.parameters??{}))i&&void 0===e.parameters[a]&&n.push({id:"parameter-missing-required",level:"error",message:`Missing required parameter: '${a}'`});return n}function Fr(e,t){if(e.length<=t)return JSON.stringify(e);return`[${e.slice(0,t).map((e=>JSON.stringify(e))).join(",")}, ... ${e.length-t} more]`}function zr(e,t){const r=e.findSchema(t),n=[...e.errors||[]];if(!r)return n.push({id:e.tag?"tag-undefined":"node-undefined",level:"critical",message:e.tag?`Undefined tag: '${e.tag}'`:`Undefined node: '${e.type}'`}),n;void 0!=r.inline&&e.inline!==r.inline&&n.push({id:"tag-placement-invalid",level:"critical",message:`'${e.tag}' tag should be ${r.inline?"inline":"block"}`}),r.selfClosing&&e.children.length>0&&n.push({id:"tag-selfclosing-has-children",level:"critical",message:`'${e.tag}' tag should be self-closing`});const a={...Ye,...r.attributes};for(const i of Object.keys(e.slots)){const e=r.slots?.[i];e||n.push({id:"slot-undefined",level:"error",message:`Invalid slot: '${i}'`})}for(let[i,o]of Object.entries(e.attributes)){const e=a[i];if(!e){n.push({id:"attribute-undefined",level:"error",message:`Invalid attribute: '${i}'`});continue}let{type:r,matches:s,errorLevel:c}=e;if(Ke.isAst(o))if(Ke.isFunction(o)&&t.validation?.validateFunctions)n.push(...qr(o,t));else{if(!Ke.isVariable(o)||!t.variables)continue;{let e=!1,r=t.variables;for(const t of o.path){if(!Object.prototype.hasOwnProperty.call(r,t)){e=!0;break}r=r[t]}e&&n.push({id:"variable-undefined",level:"error",message:`Undefined variable: '${o.path.join(".")}'`})}}if(r){const e=jr(r,o,t,i);!1===e&&n.push({id:"attribute-type-invalid",level:c||"error",message:`Attribute '${i}' must be type of '${Or(r)}'`}),Array.isArray(e)&&n.push(...e)}if("function"===typeof s&&(s=s(t)),Array.isArray(s)&&!s.includes(o)&&n.push({id:"attribute-value-invalid",level:c||"error",message:`Attribute '${i}' must match one of ${Fr(s,8)}. Got '${o}' instead.`}),s instanceof RegExp&&!s.test(o)&&n.push({id:"attribute-value-invalid",level:c||"error",message:`Attribute '${i}' must match ${s}. Got '${o}' instead.`}),"function"===typeof e.validate){const r=e.validate(o,t,i);Array.isArray(r)&&n.push(...r)}}for(const[i,{required:o}]of Object.entries(a))o&&void 0===e.attributes[i]&&n.push({id:"attribute-missing-required",level:"error",message:`Missing required attribute: '${i}'`});if(r.slots)for(const[i,{required:o}]of Object.entries(r.slots))o&&void 0===e.slots[i]&&n.push({id:"slot-missing-required",level:"error",message:`Missing required slot: '${i}'`});for(const{type:i}of e.children)r.children&&"error"!==i&&!r.children.includes(i)&&n.push({id:"child-invalid",level:"warning",message:`Can't nest '${i}' in '${e.tag||e.type}'`});if(r.validate){const a=r.validate(e,t);if(Ue(a))return a.then((e=>n.concat(e)));n.push(...a)}return n}function*Lr(e,t=[]){yield[e,t];for(const r of[...Object.values(e.slots),...e.children])yield*Lr(r,[...t,e])}var Ir=new Sr;function Nr(e={}){return{...e,tags:{...ur,...e.tags},nodes:{...Dt,...e.nodes},functions:{...wt,...e.functions}}}function Mr(e,t){return"string"===typeof e&&(e=Ir.tokenize(e)),function(e,t){const r=new We("document"),n=[r];"string"===typeof t&&(t={file:t});for(const a of e)St(a,n,t?.file,t?.slots,t?.location);if(n.length>1)for(const a of n.slice(1))a.errors.push({id:"missing-closing",level:"critical",message:`Node '${a.tag||a.type}' is missing closing`});for(const a of At)a(r);return r}(e,t)}function Tr(e,t){return Array.isArray(e)?e.flatMap((e=>e.resolve(t))):e.resolve(t)}function Pr(e,t){const r=Nr(t),n=Tr(e,r);return Array.isArray(n)?n.flatMap((e=>e.transform(r))):n.transform(r)}function Rr(e,t){return function(e,t){const r=[...Lr(e)].map((([e,r])=>{const{type:n,lines:a,location:i}=e,o=zr(e,{...t,validation:{...t.validation,parents:r}});return Ue(o)?o.then((e=>e.map((e=>({type:n,lines:a,location:i,error:e}))))):o.map((e=>({type:n,lines:a,location:i,error:e})))}));return r.some(Ue)?Promise.all(r).then((e=>e.flat())):r.flat()}(e,Nr(t))}var $r=class{constructor(e){this.parse=Mr,this.resolve=e=>Tr(e,this.config),this.transform=e=>Pr(e,this.config),this.validate=e=>Rr(e,this.config),this.config=e}};$r.nodes=Dt,$r.tags=ur,$r.functions=wt,$r.globalAttributes=Ye,$r.renderers=lr,$r.transforms=At,$r.Ast=Ke,$r.Tag=ze,$r.Tokenizer=Sr,$r.parseTags=He,$r.transformer=Ge,$r.validator=zr,$r.parse=Mr,$r.transform=Pr,$r.validate=Rr,$r.createElement=function(e,t={},...r){return{name:e,attributes:t,children:r}},$r.truthy=vt,$r.format=yt},33436:(e,t,r)=>{function n(e,{target:t=document.body}={}){if("string"!==typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const r=document.createElement("textarea"),n=document.activeElement;r.value=e,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const a=document.getSelection(),i=a.rangeCount>0&&a.getRangeAt(0);t.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;let o=!1;try{o=document.execCommand("copy")}catch{}return r.remove(),i&&(a.removeAllRanges(),a.addRange(i)),n&&n.focus(),o}r.d(t,{A:()=>n})}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7529.75d71f48d8d6ea454b6d.chunk.js b/src/web/gui/v2/7529.75d71f48d8d6ea454b6d.chunk.js
new file mode 100644
index 000000000..f071b3752
--- /dev/null
+++ b/src/web/gui/v2/7529.75d71f48d8d6ea454b6d.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e4da77d0-9cc4-43c1-b53b-b179de1f9b98",e._sentryDebugIdIdentifier="sentry-dbid-e4da77d0-9cc4-43c1-b53b-b179de1f9b98")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7529],{67529:(e,n,d)=>{d.r(n),d.d(n,{AuthTokenCallback:()=>f,default:()=>l});var o=d(96540),t=d(38819);const f=()=>{const e=(0,t.W6)("redirect_uri"),n=(0,t.W6)("token");return(0,o.useEffect)((()=>{e&&n&&(localStorage.setItem("netdataJWT",n),location.href=decodeURIComponent(e))}),[]),null},l=f}}]); \ No newline at end of file
diff --git a/web/gui/v2/6848.89070793921be1288bb5.css b/src/web/gui/v2/7789.89070793921be1288bb5.css
index e5d02668f..e5d02668f 100644
--- a/web/gui/v2/6848.89070793921be1288bb5.css
+++ b/src/web/gui/v2/7789.89070793921be1288bb5.css
diff --git a/src/web/gui/v2/7789.f00b7764a97a7dadff97.chunk.js b/src/web/gui/v2/7789.f00b7764a97a7dadff97.chunk.js
new file mode 100644
index 000000000..36e2c2ce9
--- /dev/null
+++ b/src/web/gui/v2/7789.f00b7764a97a7dadff97.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42ba2a8e-8b69-44b9-a594-330d2186c81c",e._sentryDebugIdIdentifier="sentry-dbid-42ba2a8e-8b69-44b9-a594-330d2186c81c")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7789],{93155:(e,t,n)=>{n.d(t,{Dm:()=>m,EM:()=>p,Mh:()=>d,bO:()=>u,tv:()=>g});const a="mobileAppNotifications",o="trialWarning",r="alertConfiguration",l="editAlertConfiguration",i="userCustomSettings",c=[o,r,a];function s(e){if(c.includes(e))return()=>!0;const t="true"===localStorage.getItem(e);return e=>e||t}const d=s(a)(),u=s(o)(),m=s(r)(),g=s(l)(),p=s(i)()},18682:(e,t,n)=>{n.d(t,{C:()=>l});var a=n(33436),o=n(78217),r=n(13871);const l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return()=>{(0,a.A)(e);const n=(0,r.UI)({header:"Copied",text:"Command copied to your clipboard! Please run it on your node's terminal.",icon:"gear",...t,success:!0});o.A.success(n,{context:"copy"})}}},87292:(e,t,n)=>{n.d(t,{Ay:()=>u,R0:()=>d});var a=n(96540),o=n(8711),r=n(10058),l=n(18682);const i=(0,o.default)(r.Box).attrs((e=>({color:"textDescription",background:"modalTabsBackground",border:{side:"all",color:"borderSecondary"},padding:[4,10,4,4],position:"relative",width:"100%",...e}))).withConfig({displayName:"command__StyledTerminalCommand",componentId:"sc-wnwmk3-0"})(["color:",";border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;font-family:Courier New,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;"],(0,r.getColor)("textDescription")),c=(0,o.default)(r.Icon).withConfig({displayName:"command__StyledIcon",componentId:"sc-wnwmk3-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),s=(0,o.default)(r.Box).attrs({color:"textDescription",border:{side:"all",color:"borderSecondary"},background:"modalTabsBackground",padding:[0,1]}).withConfig({displayName:"command__CodeText",componentId:"sc-wnwmk3-2"})(["display:inline-block;color:",";border-radius:2px;font-family:Courier New,monospace;letter-spacing:0.09px;line-height:16px;font-size:12px;font-weight:bold;word-break:break-word;"],(0,r.getColor)("textDescription")),d=e=>{let{children:t,...n}=e;return a.createElement(s,n,t)},u=e=>{let{children:t,confirmationText:n="Command copied to your clipboard.",commandText:o=t,...s}=e;return a.createElement(i,s,t,a.createElement(r.Box,{position:"absolute",bottom:"8px",right:"8px"},a.createElement(c,{name:"copy",size:"small",color:"primary",onClick:(0,l.C)(o||t,{text:n})})))}},18686:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(96540),o=n(10058),r=n(47731);const l=e=>{let{children:t}=e;return(0,r.J)()?a.createElement(o.Layer,{full:!0},a.createElement(o.Flex,{width:"100%",background:"mainBackground","data-testid":"alertView-mobileContainer"},t)):t}},29848:(e,t,n)=>{n.d(t,{Hs:()=>c,c0:()=>l,ly:()=>i,pp:()=>s});n(62953);var a=n(47444);const o=(0,a.eU)({key:"spaceKeyAtom",default:0}),r=(0,a.eU)({key:"roomViewLoading",default:!0}),l=()=>(0,a.vc)(o),i=()=>{const[e,t]=(0,a.L4)(o);return()=>t(e+1)},c=()=>(0,a.vc)(r),s=()=>(0,a.L4)(r)},7356:(e,t,n)=>{n.r(t),n.d(t,{default:()=>i});var a=n(96540),o=n(47767),r=n(41122),l=n(18686);const i=e=>{let{spaceId:t,roomId:n,nodeName:i}=e;const{alertId:c}=(0,o.g)();return a.createElement(l.A,null,a.createElement(r.A,{alertId:c,spaceId:t,roomId:n,nodeName:i,isWebview:!0}))}},41122:(e,t,n)=>{n.d(t,{A:()=>R});var a=n(96540),o=n(10058),r=n(64118),l=n(28738),i=n(47731),c=n(69765),s=n(11164),d=n(43407),u=n(5871),m=n(52768),g=n(47767),p=n(27467),f=n(47762),h=n(8711);const b=(0,h.default)(o.Flex).attrs({alignItems:"center"}).withConfig({displayName:"styled__StyledButtonContainer",componentId:"sc-1glv09p-0"})(["position:sticky;bottom:0;"]),v=e=>{let{disabled:t,nodeId:n,alertId:r,context:l,lastStatusChange:i,onClose:c,isLoading:s,small:d=!1,testid:u="alertDetailsModal"}=e;const m=(0,g.Zp)(),h=(0,f.Zl)(n),v=(0,a.useCallback)((()=>{c&&c(),m(h,r?{state:{alertId:r}}:{state:{contextToGo:l}})}),[h,r]),y=(0,p.rI)(),E=(0,a.useCallback)((()=>{const e=1e3*i;y({highlight:{after:e-6e4,before:e},correlation:!0}),v()}),[i,l,v,r]);return a.createElement(b,{justifyContent:"end",gap:2},a.createElement(o.Flex,{gap:2,justifyContent:"end"},a.createElement(o.Button,{small:d,label:"Run correlations",onClick:E,flavour:"hollow",isLoading:s,width:d?"112px":"170px","data-testid":"".concat(u,"-runCorrelations-button"),"data-ga":"alert-modal::click-run-correlations::alerts-view"}),a.createElement(o.Button,{small:d,label:"Go to chart",onClick:v,isLoading:s,disabled:s||t,width:d?"112px":"150px","data-testid":"".concat(u,"-goToNode-button"),"data-ga":"alert-modal::click-goto-chart::alerts-view"})))},y=(0,a.memo)(v);var E=n(7660),w=n(40267);const x=e=>{let{alertId:t,context:n,name:r,nodeId:l,status:c,lastStatusChange:s,fullyLoaded:d,isWebview:u}=e;const m=(0,i.J)(),g=m?o.H4:o.H0;return a.createElement(o.Flex,{column:!0,gap:4},a.createElement(o.Flex,{justifyContent:"between"},a.createElement(o.Flex,{alignItems:"center",gap:2},a.createElement(w.A,{margin:m?null:[.5,0,0],flavour:c,"data-testid":"alertView-statusPill"},c),a.createElement(g,{"data-testid":"alertView-alertName"},r)),!1),a.createElement(o.Flex,{justifyContent:"between",alignItems:"center"},a.createElement(E.A,{alertId:t}),!u&&d&&!m&&a.createElement(y,{lastStatusChange:s,alertId:t,context:n,name:r,nodeId:l,small:!0,testid:"alertView"})))};var C=n(68831),A=n(63314);const I=h.default.img.withConfig({displayName:"sc-404__Illustration",componentId:"sc-4w81fg-0"})(["height:35%;width:35%;"]),k=h.default.div.withConfig({displayName:"sc-404__ButtonContainer",componentId:"sc-4w81fg-1"})(["margin:",";"],(0,o.getSizeBy)(4)),N=()=>{const e="".concat(C.A.assetsBaseURL,"/img/no-nodes-room.svg");return a.createElement(A.DL,null,a.createElement(o.Flex,{column:!0,alignItems:"center",justifyItems:"center",justifyContent:"center",height:"100%",width:"100%",padding:[0,0,"10%"]},a.createElement(I,{src:e,alt:"Unreachable alert",title:"Unreachable alert"}),a.createElement(o.H3,null,"We couldn't find the alert"),a.createElement(o.Text,null,"This can be a temporary problem of that specific alert."),a.createElement(k,null,a.createElement(o.Button,{label:"Retry",icon:"reload"}))))};var S=n(4974),_=n(73865),L=n(85686);const D=e=>{let{children:t}=e;return a.createElement(o.Flex,{background:"modalHeaderBackground",height:12,flex:!1,gap:4,padding:[0,2,0,4],alignItems:"center"},a.createElement(o.Icon,{name:"logo_s",color:"success",width:"23px"}),t)},R=e=>{let{alertId:t,spaceId:n,roomId:g,isWebview:p,nodeName:f}=e;const h=(0,c.XA)("name"),{isNodeRestricted:b}=(0,_.A)(),{fullyLoaded:v=!1,fullyLoading:y=!0,info:E,units:w,lastStatusChangeValue:C,lastStatusChange:I,context:k,instance:R,name:T,nodeId:F,status:B,lastUpdated:P,value:V}=(0,r.JL)(t);(0,r.yk)(t,{spaceId:n,roomId:g});const M=(0,m.J4)(V,w),U=(0,m.J4)(C,w),J=(0,i.J)();return F&&b(F)?a.createElement(A.Ay,{feature:"AlertDetailsViewRestricted"},a.createElement(L.A,null)):a.createElement(A.Ay,{feature:"AlertDetailsView"},a.createElement(o.Flex,{column:!0,width:J?"100%":{max:280},padding:J?null:[0,0,10],background:J?"modalBackground":null},!p&&J&&a.createElement(D,null,a.createElement(o.Flex,{column:!0},a.createElement(o.H6,{color:"textLite"},"ROOM"),a.createElement(o.Text,{"data-testid":"alertView-mobile-roomName"},h))),a.createElement(o.Flex,{column:!0,padding:J?[3]:[0],overflow:J?"auto":"visible",gap:3},a.createElement(x,{alertId:t,context:k,status:B,name:T,nodeId:F,lastStatusChange:I,fullyLoaded:v,isWebview:p}),v?null:y?a.createElement(l.A,{title:"Loading alert..."}):a.createElement(N,null),v&&E&&a.createElement(a.Fragment,null,a.createElement(d.A,{iconName:"documentation"},"Alert Description"),a.createElement(o.Text,{"data-testid":"alertView-info"},E),a.createElement(S.A,{alertId:t})),v&&a.createElement(s.A,{id:t,context:k,instance:R,formattedLastValue:M,formattedLastStatusChangeValue:U,lastStatusChange:I,lastUpdated:P,isFormattedValueLoaded:v,nodeId:F,status:B,testid:"alertView",spaceId:n,roomId:g}),v&&a.createElement(u.A,{id:t,nodeName:f,testid:"alertView"})),J&&a.createElement(o.Box,{position:"sticky",padding:[4],background:"modalBackground",bottom:0,border:{side:"top",color:"border"}},a.createElement(o.TextSmall,null,"In order to ",a.createElement(o.TextSmall,{strong:!0},"Run Correlations")," or"," ",a.createElement(o.TextSmall,{strong:!0},"View the Chart")," you will have to visit this alert from its' dedicated page on a desktop device."))))}},36712:(e,t,n)=>{n.d(t,{$t:()=>E,FN:()=>y,MQ:()=>p,O0:()=>v,PE:()=>m,U2:()=>b,n$:()=>u,pZ:()=>h,td:()=>f,ue:()=>c});n(9920),n(14905),n(98992),n(3949),n(8872),n(62953);var a=n(26655),o=n(63950),r=n.n(o),l=n(49286),i=n(88116);const c={id:null,name:"",description:"",commitment:!1,pricing:[],enrolledAt:null,currentPeriodFrom:null,currentPeriodTo:null,committedNodes:0,billingEmail:"",balance:{amount:0,currency:"usd"}},s=e=>{var t;const n=i.Nw[e.class],a=(0,l.bn)(e),o=Array.isArray(a.pricing)?a.pricing.reduce(((e,t)=>({...e,[t.type]:t})),{}):{},r=null===(t=i.uC[n])||void 0===t?void 0:t[e.version];return{...c,...a,planLimitations:r,pricing:o,slug:n}},d=e=>(0,l.bn)(e),u=e=>a.A.get("/api/v2/spaces/".concat(e,"/billing/plans"),{transform:e=>{let{plans:t}=e;const n=t.reduce(((e,t)=>{const n=s(t),a=e[n.slug]||[];return"year"===n.interval?a.unshift(n):a.push(n),e[n.slug]=a,e}),{});return Object.entries(n).forEach((e=>{let[t,a]=e;const o=a.reduce(((e,t)=>{const{version:n}=t;return e[n]?e[n]=[...e[n],t]:e[n]=[t],e}),{});n[t]=o})),n}}),m=e=>a.A.get("/api/v2/spaces/".concat(e,"/billing/plan"),{allow401:!0,transform:s}),g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";return function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o="update"==e?a.A.put:a.A.post;return"function"!==typeof o?r():o("/api/v2/spaces/".concat(t,"/billing/plan"),(0,l.Jz)(n),{transform:e=>{let{url:t}=e;return t}})}},p=(e,t)=>g("checkout")(e,t),f=(e,t)=>g()(e,t),h=(e,t)=>a.A.get("/api/v2/spaces/".concat(e,"/billing/portal?redirect_url=").concat(encodeURIComponent(t)),{transform:e=>{let{url:t}=e;return t}}),b=(e,t)=>{let{after:n,before:o}=t;return a.A.get("/api/v2/spaces/".concat(e,"/billing/node-count?from=").concat(n,"&to=").concat(o))},v=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return a.A.put("/api/v2/spaces/".concat(e,"/billing/plan/preview"),(0,l.Jz)(t),{transform:d})},y=function(e){let{email:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return a.A.post("/api/v2/spaces/".concat(e,"/billing/trial"),{email:t})},E=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return a.A.post("api/v2/spaces/".concat(e,"/billing/promo-code/check"),(0,l.Jz)(t))}},19673:(e,t,n)=>{n.d(t,{og:()=>N,L_:()=>A,D:()=>_,JN:()=>w,Qh:()=>x,lU:()=>h,qW:()=>y,i5:()=>k,M4:()=>I});n(9391),n(62953);var a=n(96540),o=n(47444);const r=(0,o.eU)({key:"billingPlanCancelling",default:!1});var l=n(63950),i=n.n(l),c=n(3914),s=n(36712),d=n(88116),u=n(29848),m=n(46741),g=n(37618);const p=[],f=(0,o.K0)({key:"plans",get:e=>()=>(0,s.n$)(e)}),h=()=>{var e;const t=(0,c.vt)(),n=(0,o.xf)(f(t));return{loaded:"loading"!==n.state,value:(null===(e=n.contents)||void 0===e?void 0:e.data)||p,hasError:"hasError"===n.state}},b=(0,o.K0)({key:"previewPlan",get:e=>{let{spaceId:t,payload:n}=e;return()=>n?(0,s.O0)(t,n):Promise.resolve({data:{noRequest:!0}})},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),v=e=>{var t;return d.aT[null===e||void 0===e||null===(t=e.response)||void 0===t||null===(t=t.data)||void 0===t?void 0:t.errorMsgKey]},y=(e,t)=>{var n;const a=(0,c.vt)(),r=(0,o.xf)(b({spaceId:a,payload:e,forceFetch:t}));return{loading:"loading"===r.state,value:(null===(n=r.contents)||void 0===n?void 0:n.data)||{},promoCodeError:"hasError"===r.state?v(r.contents):void 0}},E=(0,o.K0)({key:"currentPlan",get:e=>{let{spaceId:t,canFetchPlan:n}=e;return()=>n&&t&&!(0,g.ES)(t)?(0,s.PE)(t):Promise.resolve()}}),w=()=>{var e;const t=(0,c.vt)(),n=(0,m.JT)("billing:ReadBasic"),a=(0,o.xf)(E({spaceId:t,canFetchPlan:n})),r=(0,o.RH)(E({spaceId:t,canFetchPlan:n}));return{loaded:"loading"!==a.state,value:(null===(e=a.contents)||void 0===e?void 0:e.data)||s.ue,hasError:"hasError"===a.state,refresh:r}},x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.href;const[t,n]=(0,a.useState)(!1),o=(0,c.vt)();return[(0,a.useCallback)((()=>{n(!0),(0,s.pZ)(o,e).then((e=>{let{data:t}=e;return location.href=t})).finally((()=>n(!1)))}),[o,e]),t]},C=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s.td;const t=(0,c.vt)(),n=w(),a=(0,u.ly)();return!n.loaded||n.hasError?i():o=>e(t,o).then((e=>{n.refresh(),a(),null!==e&&void 0!==e&&e.data&&(location.href=e.data)}))},A=()=>C(s.MQ),I=()=>C(),k=()=>{const e=(0,c.vt)();return t=>(0,s.FN)(e,t)},N=()=>{const[e,t]=(0,o.L4)(r);return{cancelling:e,startCancelling:(0,a.useCallback)((()=>t(!0)),[]),stopCancelling:(0,a.useCallback)((()=>t(!1)),[])}},S=(0,o.K0)({key:"couponCheck",get:e=>{let{spaceId:t,...n}=e;return()=>n.promotionCode?(0,s.$t)(t,n):Promise.resolve({})}}),_=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,c.vt)(),a=(0,o.xf)(S({spaceId:n,...t}));return{loading:"loading"===a.state,discount:(null===(e=a.contents)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.percent_off)||0,promoCodeError:"hasError"===a.state?v(a.contents):void 0}}},6586:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(58168),o=n(96540),r=n(84976),l=n(4659),i=n(3914);const c=e=>{let{children:t,...n}=e;const c=(0,i.bq)(),s="/spaces/".concat(c,"/settings/nodes");return o.createElement(l.A,(0,a.A)({as:r.N_,to:s},n),t)}},12602:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(58168),o=n(96540),r=n(84976),l=n(4659),i=n(27994);const c=e=>{let{children:t,...n}=e;const{url:c}=(0,i.A)("business");return o.createElement(l.A,(0,a.A)({as:r.N_,to:c,disabled:!c},n),t)}},73865:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(96540),o=n(47762),r=n(19673),l=n(93155);const i=()=>{const{loaded:e,nodes:t,hasError:n,refresh:i}=(0,o.Du)(),{loaded:c,value:s,hasError:d}=(0,r.JN)(),u=l.bO&&!(null===s||void 0===s||!s.planLimitations),{maxNodes:m=0,maxDashboards:g=0}=(null===s||void 0===s?void 0:s.planLimitations)||{},p=(0,a.useCallback)((e=>u&&!t.includes(e)),[t,u]);return{loaded:e&&c,hasError:n||d,currentPlan:s,hasLimitations:u,maxNodes:m,maxDashboards:g,preferredNodes:t,isNodeRestricted:p,refreshPreferredNodes:i}}},27994:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(96540),o=n(19673),r=n(3914);const l=e=>{const{loaded:t,value:n,hasError:l}=(0,o.JN)(),i=(0,r.bq)(),c=t&&n?n.billingEmail?"update":"checkout":"",s="/spaces/".concat(i,"/settings/billing/all-plans"),d=(0,a.useCallback)((e=>t&&n?"".concat(s,"#billingModalType=").concat(c,"&billingModalSlug=").concat(e):null),[e,i,c]),u=e?d(e):s;return{loaded:t,getUrl:d,url:u,hasError:l}}},57605:(e,t,n)=>{n.d(t,{A:()=>l});n(62953);var a=n(45467),o=n(87659),r=n(80925);const l=()=>{const[e,t]=(0,o.A)(!1),n=(0,r.e)();return(0,a.A)((()=>{if(n&&n.getRoot())return n.getRoot().updateAttribute("paused",!n.getRoot().getAttribute("autofetchOnWindowBlur")&&n.getRoot().getAttribute("blurred")||e),()=>n.getRoot().updateAttribute("paused",!n.getRoot().getAttribute("autofetchOnWindowBlur")&&n.getRoot().getAttribute("blurred"))}),[e]),t}},33436:(e,t,n)=>{function a(e,{target:t=document.body}={}){if("string"!==typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const n=document.createElement("textarea"),a=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";const o=document.getSelection(),r=o.rangeCount>0&&o.getRangeAt(0);t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}return n.remove(),r&&(o.removeAllRanges(),o.addRange(r)),a&&a.focus(),l}n.d(t,{A:()=>a})},14123:(e,t,n)=>{function a(e){return t=>{const n=(e?Math[e]:Math.trunc)(t);return 0===n?0:n}}n.d(t,{u:()=>a})},25733:(e,t,n)=>{n.d(t,{z:()=>o});var a=n(2642);function o(e,t){const n=(0,a.a)(e),o=(0,a.a)(t),r=n.getTime()-o.getTime();return r<0?-1:r>0?1:r}},31826:(e,t,n)=>{n.d(t,{k:()=>d});var a=n(96519),o=n(82695),r=n(14123),l=n(40215),i=n(25733),c=n(2940),s=n(2642);function d(e,t,n){const d=(0,o.q)(),u=n?.locale??d.locale??a.c,m=(0,i.z)(e,t);if(isNaN(m))throw new RangeError("Invalid time value");const g=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:m});let p,f;m>0?(p=(0,s.a)(t),f=(0,s.a)(e)):(p=(0,s.a)(e),f=(0,s.a)(t));const h=(0,r.u)(n?.roundingMethod??"round"),b=f.getTime()-p.getTime(),v=b/c.Cg,y=(b-((0,l.G)(f)-(0,l.G)(p)))/c.Cg,E=n?.unit;let w;if(w=E||(v<1?"second":v<60?"minute":v<c.F6?"hour":y<c.Nw?"day":y<c.Ks?"month":"year"),"second"===w){const e=h(b/1e3);return u.formatDistance("xSeconds",e,g)}if("minute"===w){const e=h(v);return u.formatDistance("xMinutes",e,g)}if("hour"===w){const e=h(v/60);return u.formatDistance("xHours",e,g)}if("day"===w){const e=h(y/c.F6);return u.formatDistance("xDays",e,g)}if("month"===w){const e=h(y/c.Nw);return 12===e&&"month"!==E?u.formatDistance("xYears",1,g):u.formatDistance("xMonths",e,g)}{const e=h(y/c.Ks);return u.formatDistance("xYears",e,g)}}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7840.e1af907905ff10afb069.chunk.js b/src/web/gui/v2/7840.e1af907905ff10afb069.chunk.js
new file mode 100644
index 000000000..5f9783a11
--- /dev/null
+++ b/src/web/gui/v2/7840.e1af907905ff10afb069.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="85593695-1235-409c-adb1-b5d032d31a51",e._sentryDebugIdIdentifier="sentry-dbid-85593695-1235-409c-adb1-b5d032d31a51")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7840],{17840:(e,t,r)=>{r.r(t),r.d(t,{default:()=>h});var n=r(96540),o=r(47767),a=(r(30067),r(93518),r(17333),r(41393),r(8159),r(98992),r(54520),r(81454),r(37550),r(62953),r(3296),r(48408),r(10058)),c=r(22292),i=r(79731),s=r(9224);const u=new URLSearchParams(window.location.search.substr(1)),d=()=>{location.assign("https://registry.my-netdata.io/goto-host-from-alarm.html".concat(location.search))},l=e=>fetch(e,{redirect:"follow"}).then((()=>e)),f=e=>{let t="top;nowelcome=1";for(let[n,o]of u.entries())n=decodeURIComponent(n),"agentID"!==n&&(t+=";".concat(encodeURIComponent(n)),o=decodeURIComponent(o),""!==o&&(t+="=".concat(encodeURIComponent(o))));const r=new URL(e);return"/"===r.pathname&&(r.pathname=""),r.hash=t,r.toString()},p=(e,t)=>{if(!u.has("agentID"))return void(document.body.innerHTML='<p>missing "agentID" query string parameter</p>');(async(e,t)=>{try{return(await(0,s.tz)(t,e)).data}catch(r){const{data:e}=r.response;document.body.innerHTML="".concat((0,i.o)(null===e||void 0===e?void 0:e.errorMsgKey),"</br></br>Getting you back to Netdata...");const t=new Error((0,i.o)(null===e||void 0===e?void 0:e.errorMsgKey)||"Redirect error");throw t.name="".concat((null===e||void 0===e?void 0:e.errorMsgKey)||"Server error"),t.stack="".concat((null===e||void 0===e?void 0:e.errorCode)||"Redirect error code"),t}})(decodeURIComponent(u.get("agentID")||"unknown_agent_id"),e).catch((e=>{if("ErrVisitedNodeNotFound"!==(null===e||void 0===e?void 0:e.name))throw document.body.innerHTML="<p>".concat(null===e||void 0===e?void 0:e.message,"</p>"),e;d()})).then((e=>{var r;const n=null===e||void 0===e||null===(r=e.urls)||void 0===r?void 0:r.map(f),o="https:"===location.protocol&&n.some((e=>!e.startsWith("https:"))),a=o?n.filter((e=>e.startsWith("https:"))):n;if(0!==a.length)return Promise.any(a.map(l)).then((()=>{location.assign("url".concat(t))}),(()=>{o?location.protocol="http:":document.body.innerHTML="\n <ul>\n ".concat(n.map((e=>'<li><a href="'.concat(encodeURIComponent(e),'" target="_blank" rel="noopener noreferrer">').concat(e,"</a></li>"))).join("\n"),"\n </ul>\n ")}));o?location.protocol="http:":d()}))},v=()=>{const e=(0,c.NJ)(),{search:t}=(0,o.zy)();return(0,n.useEffect)((()=>{e&&p(e,t||"")}),[e,t]),n.createElement(a.H4,null,"Redirecting...")},h=()=>n.createElement(o.BV,null,n.createElement(o.qh,{path:"/redirects/alerts",element:n.createElement(v,null)}),n.createElement(o.qh,{path:"/redirects/alarms",element:n.createElement(v,null)})," ")},84428:(e,t,r)=>{var n=r(78227)("iterator"),o=!1;try{var a=0,c={next:function(){return{done:!!a++}},return:function(){o=!0}};c[n]=function(){return this},Array.from(c,(function(){throw 2}))}catch(i){}e.exports=function(e,t){try{if(!t&&!o)return!1}catch(i){return!1}var r=!1;try{var a={};a[n]=function(){return{next:function(){return{done:r=!0}}}},e(a)}catch(i){}return r}},87290:(e,t,r)=>{var n=r(50516),o=r(19088);e.exports=!n&&!o&&"object"==typeof window&&"object"==typeof document},50516:e=>{e.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},19088:(e,t,r)=>{var n=r(24475),o=r(44576);e.exports="process"===o(n.process)},16193:(e,t,r)=>{var n=r(79504),o=Error,a=n("".replace),c=String(new o("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,s=i.test(c);e.exports=function(e,t){if(s&&"string"==typeof e&&!o.prepareStackTrace)for(;t--;)e=a(e,i,"");return e}},80747:(e,t,r)=>{var n=r(66699),o=r(16193),a=r(24659),c=Error.captureStackTrace;e.exports=function(e,t,r,i){a&&(c?c(e,t):n(e,"stack",o(r,i)))}},24659:(e,t,r)=>{var n=r(79039),o=r(6980);e.exports=!n((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},77584:(e,t,r)=>{var n=r(20034),o=r(66699);e.exports=function(e,t){n(t)&&"cause"in t&&o(e,"cause",t.cause)}},32603:(e,t,r)=>{var n=r(655);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:n(e)}},10916:(e,t,r)=>{var n=r(24475),o=r(80550),a=r(94901),c=r(92796),i=r(33706),s=r(78227),u=r(87290),d=r(50516),l=r(96395),f=r(77388),p=o&&o.prototype,v=s("species"),h=!1,g=a(n.PromiseRejectionEvent),m=c("Promise",(function(){var e=i(o),t=e!==String(o);if(!t&&66===f)return!0;if(l&&(!p.catch||!p.finally))return!0;if(!f||f<51||!/native code/.test(e)){var r=new o((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};if((r.constructor={})[v]=n,!(h=r.then((function(){}))instanceof n))return!0}return!t&&(u||d)&&!g}));e.exports={CONSTRUCTOR:m,REJECTION_EVENT:g,SUBCLASSING:h}},90537:(e,t,r)=>{var n=r(80550),o=r(84428),a=r(10916).CONSTRUCTOR;e.exports=a||!o((function(e){n.all(e).then(void 0,(function(){}))}))},17145:(e,t,r)=>{var n=r(46518),o=r(1625),a=r(42787),c=r(52967),i=r(77740),s=r(2360),u=r(66699),d=r(6980),l=r(77584),f=r(80747),p=r(72652),v=r(32603),h=r(78227)("toStringTag"),g=Error,m=[].push,y=function(e,t){var r,n=o(b,this);c?r=c(new g,n?a(this):b):(r=n?this:s(b),u(r,h,"Error")),void 0!==t&&u(r,"message",v(t)),f(r,y,r.stack,1),arguments.length>2&&l(r,arguments[2]);var i=[];return p(e,m,{that:i}),u(r,"errors",i),r};c?c(y,g):i(y,g,{name:!0});var b=y.prototype=s(g.prototype,{constructor:d(1,y),message:d(1,""),name:d(1,"AggregateError")});n({global:!0,constructor:!0,arity:2},{AggregateError:y})},30067:(e,t,r)=>{r(17145)},93518:(e,t,r)=>{var n=r(46518),o=r(69565),a=r(79306),c=r(97751),i=r(36043),s=r(1103),u=r(72652),d=r(90537),l="No one promise resolved";n({target:"Promise",stat:!0,forced:d},{any:function(e){var t=this,r=c("AggregateError"),n=i.f(t),d=n.resolve,f=n.reject,p=s((function(){var n=a(t.resolve),c=[],i=0,s=1,p=!1;u(e,(function(e){var a=i++,u=!1;s++,o(n,t,e).then((function(e){u||p||(p=!0,d(e))}),(function(e){u||p||(u=!0,c[a]=e,--s||f(new r(c,l)))}))})),--s||f(new r(c,l))}));return p.error&&f(p.value),n.promise}})}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/785.c45abbb1e2a4915d85df.chunk.js b/src/web/gui/v2/785.c45abbb1e2a4915d85df.chunk.js
new file mode 100644
index 000000000..a7fcb8363
--- /dev/null
+++ b/src/web/gui/v2/785.c45abbb1e2a4915d85df.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f01e752a-3a38-4f2b-a648-b3a1c0690e61",e._sentryDebugIdIdentifier="sentry-dbid-f01e752a-3a38-4f2b-a648-b3a1c0690e61")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[785],{52919:(e,t,a)=>{a.d(t,{D7:()=>r,Jp:()=>d,NT:()=>u,N_:()=>h,iS:()=>s,vE:()=>i,v_:()=>o,xI:()=>c,z6:()=>m});var n=a(8711),l=a(10058);const o=n.default.img.withConfig({displayName:"styled__Illustration",componentId:"sc-1yhntgl-0"})(["margin:0 auto;"]),r=(0,n.default)(l.Text).withConfig({displayName:"styled__StyledText",componentId:"sc-1yhntgl-1"})(["display:block;"]),d=n.default.div.withConfig({displayName:"styled__TextHeader",componentId:"sc-1yhntgl-2"})(["margin-bottom:",";font-weight:700;"],(0,l.getSizeBy)(2)),c=n.default.div.withConfig({displayName:"styled__StaticCheckmarks",componentId:"sc-1yhntgl-3"})(["margin-top:",";margin-bottom:",";"],(0,l.getSizeBy)(2),(0,l.getSizeBy)(5)),s=n.default.div.withConfig({displayName:"styled__CheckmarkLine",componentId:"sc-1yhntgl-4"})(["display:flex;align-items:center;"]),i=(0,n.default)(l.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1yhntgl-5"})(["margin-right:4px;height:18px;> use{fill:",";}"],(0,l.getColor)("primary")),u=(0,n.default)(i).withConfig({displayName:"styled__HelpIcon",componentId:"sc-1yhntgl-6"})(["vertical-align:middle;"]),m=n.default.div.withConfig({displayName:"styled__LearnMoreSection",componentId:"sc-1yhntgl-7"})(["margin-top:",";"],(0,l.getSizeBy)(4)),h=n.default.a.withConfig({displayName:"styled__Link",componentId:"sc-1yhntgl-8"})(["text-decoration:underline;color:",";&:visited{color:",";}"],(0,l.getColor)("success"),(0,l.getColor)("success"))},40785:(e,t,a)=>{a.r(t),a.d(t,{DashboardContent:()=>ze,default:()=>Fe});var n=a(96540),l=a(47767),o=a(43124);var r=a(56820),d=a(3914),c=a(69765),s=a(35304),i=a(21591),u=a(68980),m=a(54621),h=a(91517),b=a(28738);const g=()=>n.createElement(b.A,{title:"Loading charts...","data-testid":"dashboardLoading"});a(62953);var f=a(67602),p=a(3705),v=a(86652),E=a(58388),y=a(11128),C=a(47762),A=a(58168),x=a(10058),w=a(49667);const I=e=>{let{compact:t,...a}=e;const[,l]=(0,f.A)("addChartModal"),o=(0,C.TG)().length>0;return n.createElement(x.Flex,(0,A.A)({column:!0,alignItems:"center",justifyContent:"center",overflow:{vertical:"auto"},flex:!0,basis:0,"data-testid":"dashboardBlankSlate"},a),!t&&n.createElement(x.Flex,{as:"img",src:w.$,height:"35%"}),n.createElement(x.H3,{margin:[6,0,2]},"Empty Dashboard"),o?n.createElement(n.Fragment,null,n.createElement(x.Text,{textAlign:"center"},"Let\u2019s fill your dashboard."),n.createElement(x.Text,{textAlign:"center"},"Go to a node view or node list and add one chart to this Dashboard or just use")):n.createElement(n.Fragment,null,n.createElement(x.Text,{textAlign:"center"},"You don't have any available node to retrieve charts from."),n.createElement(x.Text,{textAlign:"center"},"Please verify your nodes' state and/or connect a new node to Netdata")),!t&&n.createElement(x.Button,{margin:[8,0,0,0],onClick:l,disabled:!o,label:"Add chart","data-testid":"dashboardBlankSlate-addChart"}))};a(3064),a(41393),a(98992),a(72577),a(81454);var k=a(15327),D=a(74618),N=a(45765),S=a(67990),_=a(69388),T=a(23931),z=a(57605),F=a(67544),M=(a(9920),a(3949),a(45387)),B=a(36196),L=a(80925),R=a(13752),j=a(92815),H=a(72582),G=a(64125),U=a(44644),K=a(29217);const O=()=>n.createElement(x.Flex,{column:!0,width:"300px",gap:1},n.createElement(x.TextSmall,{strong:!0},"Not finding a chart?"),n.createElement(x.TextSmall,null,"When selecting",n.createElement(x.TextSmall,{strong:!0,margin:[0,1]},"All Nodes"),"you search and add charts using their context. The outcome will be a composite chart over All Nodes, like on the Overview tab."),n.createElement(x.TextSmall,null,"When you select a",n.createElement(x.TextSmall,{strong:!0,margin:[0,1]},"specific Node"),"you search and add charts using their name. The result is a specific chart over the node selected, like on Single Node tab.")),Y=()=>n.createElement(K.A,{isBasic:!0,plain:!0,content:O,align:"bottom"},n.createElement(x.Icon,{name:"question",color:"textDescription",size:"small"})),J=e=>{let{spaceId:t,roomId:a,value:l,onChange:o,options:r,testid:c,selectedNodeIds:s}=e;const i=null===l||void 0===l?void 0:l.value,u=(0,L.e)(),m=(0,T.R7)(i&&a,i),h=(0,d.dg)(),b=(0,U.CS)({type:"chart",entity:i}),g=(0,n.useMemo)((()=>{u.getNodes({id:"newDashboardChart"}).forEach((e=>e.destroy()));const{info:e,valueRange:n,height:l,colors:o}=(0,M.Ay)(m),r=u.makeChart({attributes:{id:"newDashboardChart",contextScope:[i],host:h?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(t,"/rooms/").concat(a),roomId:a,info:e,valueRange:n,height:l+207,enabledNavigation:!1,selectedNodes:s,...o&&{colors:o},toolboxElements:[H.default,R.default,j.default,G.A]}});return u.getRoot().appendChild(r),r}),[u,i]);return(0,n.useLayoutEffect)((()=>{g&&b&&(g.updateAttributes(b),g.trigger("fetch"))}),[g,a,i,b]),(0,n.useLayoutEffect)((()=>()=>g.destroy()),[]),n.createElement(x.Flex,{gap:6,column:!0},n.createElement(x.Flex,{gap:2,column:!0,"data-testid":c},n.createElement(x.Flex,{gap:2},n.createElement(x.H5,null,"Context in room overview"),n.createElement(Y,null)),n.createElement(x.Select,{options:r,value:l,onChange:o,isClearable:!0,form:c})),l&&n.createElement(x.Flex,{height:{min:"320px"},column:!0},n.createElement(B.A,{chart:g,margin:[2,0,0]})))};var W=a(18202);const P={label:"All Nodes",value:"all-nodes"},X={label:"All Nodes (no reachable nodes)",value:"all-nodes",isDisabled:!0},q=e=>{let{id:t,isLive:a,nodeStatus:n,name:l}=e;return{label:a?l:"".concat(l," (").concat(n,")"),value:t,isDisabled:!a}},Q=e=>({value:e,label:e}),V=e=>{let{id:t,onClose:a}=e;const l=(0,d.vt)(),o=(0,c.ID)(),r=(0,u.fz)(t,"name"),s=(0,c.XA)("name"),i=(0,S.CK)(),m=(0,C.BU)().length>0,h=(0,S.nj)(),b=(0,C.Gt)(i),g=(0,F.nM)(t),f=m?P:X,[p,v]=(0,n.useState)(f.value),[E,y]=(0,n.useState)(null),A=(0,n.useMemo)((()=>[f,...b.map(q)]),[b]),w=(0,n.useMemo)((()=>A.find((e=>{let{value:t}=e;return t===p}))),[A,p]),I=(0,n.useCallback)((e=>{v((null===e||void 0===e?void 0:e.value)||f.value),y(null)}),[]),M=(0,n.useMemo)((()=>p===f.value?[]:[p]),[p]),B=(0,_.A)(o,M,{spaceId:l});if(B)throw B;const R=(0,T.R7)(o),j=(0,n.useMemo)((()=>Object.keys(R).sort(((e,t)=>e.localeCompare(t,void 0,{sensitivity:"accent",ignorePunctuation:!0}))).map(Q)),[R]);(0,n.useEffect)((()=>{j.length&&w&&y((e=>e||j[0].value))}),[E,j,w]);const H=(0,n.useMemo)((()=>E&&Q(E)),[E]),G=(0,n.useCallback)((e=>y(null===e||void 0===e?void 0:e.value)),[]),U=R[E],K=(0,L.e)(),O=(0,n.useCallback)((()=>{const e=K.getNode({id:"newDashboardChart"}),t=(0,W.A)(e.getAttributes());g(t.contextScope,t,(()=>setTimeout(a)))}),[p,U]),Y=!E,V=(0,z.A)();return(0,n.useEffect)((()=>(V(!0),()=>V(!1)))),n.createElement(k.GO,{onClose:a},n.createElement(D.z,{onClose:a,title:"Add Chart to Dashboard"},n.createElement(x.Button,{label:"Add chart",icon:"plus",onClick:O,disabled:Y,"data-testid":"addChartModal-addChart-button"})),n.createElement(N.U,null,"Add Charts to ",r),n.createElement(k.Yv,{overflow:"visible"},n.createElement(x.Flex,{gap:6,column:!0},n.createElement(x.Flex,{gap:2,column:!0,"data-testid":"addChartModal-selectNodes"},n.createElement(x.H5,null,"Nodes in ",s),n.createElement(x.Select,{options:A,value:w,onChange:I,isLoading:!h,isClearable:!0,form:"addChartModal-selectNodes"})),H&&n.createElement(J,{id:t,spaceId:l,roomId:o,value:H,onChange:G,options:j,testid:"addChartModal-selectChart",selectedNodeIds:M}))))};var Z=a(83084),$=a(76777),ee=a(27467),te=a(16579),ae=a(63314),ne=(a(14905),a(8872),a(79304)),le=a(44554);const oe=function(e,t){let{containerIds:a,containers:n,layout:l}=e,{extraKey:o}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r={},d=a.reduce(((e,a)=>{const d=(0,le.bj)(l[a],"vertical");return e[a]={...n[a],level:0,id:a,subMenuIds:d.reduce(((e,n)=>{let{id:l}=n;return"text"!==t(l).type&&e.push("".concat(a,"|").concat(l)),e}),[]),subMenuChartIds:[],link:"".concat((0,ne.A)("menu_".concat(a))),forceVisibility:!0,arFlavour:"anomaly",extraKey:o},d.forEach((e=>{const n="".concat(a,"|").concat(e.id),l=t(e.id);"text"!==l.type&&(r[n]={name:l.title,level:1,id:n,menuGroupId:a,chartIds:[],link:"".concat((0,ne.A)("menu_".concat(a,"_submenu_").concat(n))),arFlavour:"anomaly",showAR:!1,extraKey:o})})),e}),{});return{menuGroupIds:a,menuGroupById:d,subMenuById:r}};var re=a(75793);const de=e=>{let{id:t}=e;const a=(0,u.fz)(t,"name");return n.createElement(re.A,{TextComponent:x.H0,text:a})};var ce=a(46741);const se=()=>{const[,e]=(0,f.A)("addChartModal"),t=(0,ce.JT)("dashboard:Update");return(0,C.TG)().length>0?n.createElement(x.Button,{neutral:!0,flavour:"hollow",label:"Add chart",icon:"chart_added",onClick:e,"data-testid":"dashboardHeaderActionBar-addChart-button","data-ga":"action-bar::click-add-chart::cust-dashboard",disabled:!t}):null},ie=e=>{let{id:t}=e;const a=(0,F.Kv)(t),l=(0,ce.JT)("dashboard:Update");return n.createElement(x.Button,{neutral:!0,flavour:"hollow",label:"Add text",icon:"text_add",onClick:a,"data-testid":"dashboardHeaderActionBar-addText-button","data-ga":"action-bar::click-add-text::cust-dashboard",disabled:!l})};var ue=a(71835),me=a(2025),he=a(64754);const be=e=>{let{id:t}=e;const[,a]=(0,ue.A)(),l=(0,me.DH)(t,{onFail:a}),o=(0,u.fz)(t,"processing"),r=(0,u.fz)(t,"isOwner"),d=(0,u.zN)(t);return n.createElement(he.A,{permission:r?"dashboard:UpdateSelf":"dashboard:Update",flavour:"hollow",label:"Save",icon:"save",onClick:()=>l(),disabled:d,isLoading:o,"data-testid":"dashboardHeaderActionBar-save-button","data-ga":"action-bar::click-save::cust-dashboard"})},ge=e=>{let{id:t}=e;return n.createElement(x.Flex,{gap:2},n.createElement(se,null),n.createElement(ie,{id:t}),n.createElement(be,{id:t}))},fe=(0,n.memo)(ge);var pe=a(58384),ve=a(87659),Ee=a(78969),ye=a(92138),Ce=a(8018),Ae=a(52919);const xe=e=>{let{close:t}=e;const[a,o]=(0,n.useState)(!0),r=(0,u.zi)(),[d,s]=(0,u.TN)({id:r,key:"name"}),i=(0,u.oj)("slug"),h=(0,ye.A)(i),[b,g]=(0,n.useState)(d),f=(0,me.DH)(r),p=(0,m.DF)(),v=(0,l.Zp)(),E=(0,c.r9)(),y=b.length>0,C=a&&y&&b!==d,A=(0,n.useCallback)((()=>{s(b),f().then((e=>{let{data:a}=e;const{slug:n}=a;if(h===n)return void t();const l="".concat(E,"/dashboards/").concat(n);p({id:r,slug:n,path:l}),v(l,{replace:!0}),t()}))}),[t,b,r,E,h]);return n.createElement(k.GO,{onClose:t,"data-testid":"renameDashboard-modal"},n.createElement(D.z,{onClose:t,title:"Rename Dashboard"},n.createElement(x.Button,{label:"Save Changes",onClick:A,disabled:!C})),n.createElement(N.U,{"data-testid":"renameDashboard-title"},"Rename dashboard ",d),n.createElement(k.Yv,null,n.createElement(Ce.A,{value:b,label:"Name",onChange:e=>{g(e.target.value)},isValid:a,setIsValid:o,isDirty:y,instantFeedback:"all",onKeyDown:e=>e.keyCode===Ee.I7&&C&&A(),"data-testid":"renameDashboard-input"}),n.createElement(x.Flex,{column:!0,justifyContent:"between",height:"100%",margin:[8,0,16],"data-testid":"renameDashboard-learnMoreSection"},n.createElement(Ae.z6,null,n.createElement(Ae.NT,{name:"help"}),n.createElement(x.Text,null,"Learn more about Dashboards")," ",n.createElement(Ae.N_,{href:"https://learn.netdata.cloud/docs/cloud/visualize/dashboards",target:"_blank",rel:"noopener noreferrer"},"In our documentation")),n.createElement(Ae.v_,{src:w.$}))))},we=()=>{const e=(0,l.Zp)(),t=(0,d.bq)(),a=(0,c.QW)(),o=(0,u.zi)(),{name:r}=(0,u.fz)(o),s=(0,c.XA)("name"),[i,,m,h]=(0,ve.A)(),[b,,g,f]=(0,ve.A)(),p=(0,n.useCallback)((()=>{e("/spaces/".concat(t,"/rooms/").concat(a,"/dashboards"))}),[t,a]),v=(0,F.A_)(o,{onSuccess:p}),E=(0,ce.JT)("dashboard:Update"),y=(0,ce.JT)("dashboard:Delete");return n.createElement(n.Fragment,null,n.createElement(pe.A,{category:"dashboard",context:"title",testId:"dashboardDropdown"},(e=>{let{close:t}=e;return n.createElement(n.Fragment,null,n.createElement(pe.t,{icon:"pencilOutline",onClick:()=>{t(),g()},"data-testid":"renameDashboard-option","data-ga":"dropdown-item::click-rename-dashboard::cust-dashboard",disabled:!E},"Rename Dashboard"),n.createElement(pe.t,{icon:"trashcan",color:"errorText",onClick:()=>{t(),m()},"data-testid":"removeDashboard-option","data-ga":"dropdown-item::click-remove-dashboard::cust-dashboard",disabled:!y},"Delete Dashboard"))})),b&&n.createElement(xe,{close:f}),i&&n.createElement(x.ConfirmationDialog,{confirmLabel:"Yes, delete","data-ga":"delete-dashboard-dialog","data-testid":"deleteDashboardDialog",handleConfirm:v,handleDecline:h,message:n.createElement(n.Fragment,null,"You are about to delete ",n.createElement("strong",null,r)," from ",n.createElement("strong",null,s),".",n.createElement("br",null),"Are you sure you want to continue?"),title:"Delete ".concat(r)}))},Ie=e=>{let{id:t}=e;return n.createElement(x.Flex,{justifyContent:"between",padding:[3],"data-testid":"dashboardHeader"},n.createElement(x.Flex,{alignItems:"center"},n.createElement(we,null),n.createElement(de,{id:t})),n.createElement(fe,{id:t}))},ke=(0,n.memo)(Ie);var De=a(86008);const Ne=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{navigator:a}=(0,n.useContext)(l.jb),o=(0,l.zy)();(0,n.useEffect)((()=>{if(!t)return;const n=a.block((t=>{const a={...t,retry(){n(),t.retry()}};e(a)}));return n}),[a,e,t,o])}((0,n.useCallback)((t=>{"REPLACE"!==t.action?window.confirm(e)&&t.retry():t.retry()}),[e]),t)},Se=()=>((0,$.A)(),null),_e=(0,n.memo)((e=>{let{id:t}=e;const[a,,,l]=(0,f.A)("addChartModal"),{fullyLoaded:o,cardIds:r,name:d}=(0,u.fz)(t);(e=>{const t=(0,u.zN)(e);Ne("Are you sure you want to leave this dashboard?\nChanges will be lost.",!t)})(t);const[s,{width:i}]=(0,p.A)(),m=(0,c.ID)(),[h,b]=(0,ee.N9)("chartName",{key:m,extraKey:t,flavour:"val"}),g=(0,y.w7)({extraKey:"dashboard",merge:!1,scoped:!0}),A=((0,C.TG)(g),(0,v.Xc)(t)),x=(0,E.T6)(t);return n.createElement(ae.Ay,{feature:"custom-dashboard"},n.createElement(te.A,{getObject:x,ids:A,getMenu:oe,extraKey:t},n.createElement(Se,null),n.createElement(Z.A,{ref:s,overflow:"hidden"},n.createElement(ke,{id:t}),o&&r.length>0&&n.createElement(De.A,{id:t,containerWidth:i,initialChartName:h,onChartNameChange:b}),o&&0===r.length&&n.createElement(I,null),a&&n.createElement(V,{id:t,onClose:l}))))}));var Te=a(85686);const ze=e=>{let{id:t}=e;const a=(0,d.vt)(),l=(0,d.bq)(),o=(0,c.ID)(),r=(0,c.QW)(),s=(0,u.oj)("state");return(0,h.A)(t,{spaceId:a,spaceSlug:l,roomId:o,roomSlug:r})?n.createElement(g,null):n.createElement(ae.Ay,{feature:"Dashboard",dashboardId:t},"notAvailable"==s?n.createElement(Te.A,{flavour:"dashboard"}):n.createElement(_e,{id:t}))},Fe=(0,n.memo)((e=>{let{customDashboardId:t}=e;(0,s.A)(),(e=>{const{dashboardSlug:t=e}=(0,l.g)(),a=(0,o.Xv)(),r=(0,o.Tf)();(0,n.useEffect)((()=>{r!==t&&a(t)}),[r,t]),(0,n.useEffect)((()=>()=>a(null)),[])})(t),(0,r.z1)(t);const a=(0,u.zi)(t),d=(0,u.oj)("slug");(0,m.ZB)({title:d,id:a,destination:d,type:"dashboards",droppable:!0,droppableProps:{dashboardId:a,dropArea:!0}});const c=(0,i.RQ)();return n.createElement(ze,{id:c?a:null})}))}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7857.0d6fb5e4a2c2b8996e0f.chunk.js b/src/web/gui/v2/7857.0d6fb5e4a2c2b8996e0f.chunk.js
new file mode 100644
index 000000000..fb29f62ab
--- /dev/null
+++ b/src/web/gui/v2/7857.0d6fb5e4a2c2b8996e0f.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb6df1e5-6dbd-47a1-8cc2-c359da7f7e02",e._sentryDebugIdIdentifier="sentry-dbid-eb6df1e5-6dbd-47a1-8cc2-c359da7f7e02")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7857],{45413:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},41141:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var i=n(45413),a=n(36957);o(n(36957),t);var l={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},s=function(){function e(e,t,n){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof t&&(n=t,t=l),"object"===typeof e&&(t=e,e=void 0),this.callback=null!==e&&void 0!==e?e:null,this.options=null!==t&&void 0!==t?t:l,this.elementCB=null!==n&&void 0!==n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?i.ElementType.Tag:void 0,r=new a.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===i.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new a.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===i.ElementType.Comment)this.lastNode.data+=e;else{var t=new a.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new a.Text(""),t=new a.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new a.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"===typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=s,t.default=s},36957:function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=this&&this.__assign||function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.cloneNode=t.hasChildren=t.isDocument=t.isDirective=t.isComment=t.isText=t.isCDATA=t.isTag=t.Element=t.Document=t.CDATA=t.NodeWithChildren=t.ProcessingInstruction=t.Comment=t.Text=t.DataNode=t.Node=void 0;var i=n(45413),a=function(){function e(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent},set:function(e){this.parent=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev},set:function(e){this.prev=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next},set:function(e){this.next=e},enumerable:!1,configurable:!0}),e.prototype.cloneNode=function(e){return void 0===e&&(e=!1),k(this,e)},e}();t.Node=a;var l=function(e){function t(t){var n=e.call(this)||this;return n.data=t,n}return r(t,e),Object.defineProperty(t.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!1,configurable:!0}),t}(a);t.DataNode=l;var s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=i.ElementType.Text,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),t}(l);t.Text=s;var c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=i.ElementType.Comment,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),t}(l);t.Comment=c;var u=function(e){function t(t,n){var r=e.call(this,n)||this;return r.name=t,r.type=i.ElementType.Directive,r}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),t}(l);t.ProcessingInstruction=u;var p=function(e){function t(t){var n=e.call(this)||this;return n.children=t,n}return r(t,e),Object.defineProperty(t.prototype,"firstChild",{get:function(){var e;return null!==(e=this.children[0])&&void 0!==e?e:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(a);t.NodeWithChildren=p;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=i.ElementType.CDATA,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(p);t.CDATA=d;var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=i.ElementType.Root,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(p);t.Document=f;var h=function(e){function t(t,n,r,o){void 0===r&&(r=[]),void 0===o&&(o="script"===t?i.ElementType.Script:"style"===t?i.ElementType.Style:i.ElementType.Tag);var a=e.call(this,r)||this;return a.name=t,a.attribs=n,a.type=o,a}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(p);function m(e){return(0,i.isTag)(e)}function y(e){return e.type===i.ElementType.CDATA}function g(e){return e.type===i.ElementType.Text}function v(e){return e.type===i.ElementType.Comment}function b(e){return e.type===i.ElementType.Directive}function x(e){return e.type===i.ElementType.Root}function k(e,t){var n;if(void 0===t&&(t=!1),g(e))n=new s(e.data);else if(v(e))n=new c(e.data);else if(m(e)){var r=t?w(e.children):[],i=new h(e.name,o({},e.attribs),r);r.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=o({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=o({},e["x-attribsPrefix"])),n=i}else if(y(e)){r=t?w(e.children):[];var a=new d(r);r.forEach((function(e){return e.parent=a})),n=a}else if(x(e)){r=t?w(e.children):[];var l=new f(r);r.forEach((function(e){return e.parent=l})),e["x-mode"]&&(l["x-mode"]=e["x-mode"]),n=l}else{if(!b(e))throw new Error("Not implemented yet: ".concat(e.type));var p=new u(e.name,e.data);null!=e["x-name"]&&(p["x-name"]=e["x-name"],p["x-publicId"]=e["x-publicId"],p["x-systemId"]=e["x-systemId"]),n=p}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function w(e){for(var t=e.map((function(e){return k(e,!0)})),n=1;n<t.length;n++)t[n].prev=t[n-1],t[n-1].next=t[n];return t}t.Element=h,t.isTag=m,t.isCDATA=y,t.isText=g,t.isComment=v,t.isDirective=b,t.isDocument=x,t.hasChildren=function(e){return Object.prototype.hasOwnProperty.call(e,"children")},t.cloneNode=k},15270:(e,t)=>{t.CASE_SENSITIVE_TAG_NAMES=["animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","linearGradient","radialGradient","textPath"]},65496:e=>{var t="html",n="head",r="body",o=/<([a-zA-Z]+[0-9]?)/,i=/<head[^]*>/i,a=/<body[^]*>/i,l=function(){throw new Error("This browser does not support `document.implementation.createHTMLDocument`")},s=function(){throw new Error("This browser does not support `DOMParser.prototype.parseFromString`")},c="object"===typeof window&&window.DOMParser;if("function"===typeof c){var u=new c;l=s=function(e,t){return t&&(e="<"+t+">"+e+"</"+t+">"),u.parseFromString(e,"text/html")}}if("object"===typeof document&&document.implementation){var p=document.implementation.createHTMLDocument();l=function(e,t){return t?(p.documentElement.querySelector(t).innerHTML=e,p):(p.documentElement.innerHTML=e,p)}}var d,f="object"===typeof document?document.createElement("template"):{};f.content&&(d=function(e){return f.innerHTML=e,f.content.childNodes}),e.exports=function(e){var c,u,p,f,h=e.match(o);switch(h&&h[1]&&(c=h[1].toLowerCase()),c){case t:return u=s(e),i.test(e)||(p=u.querySelector(n))&&p.parentNode.removeChild(p),a.test(e)||(p=u.querySelector(r))&&p.parentNode.removeChild(p),u.querySelectorAll(t);case n:case r:return f=(u=l(e)).querySelectorAll(c),a.test(e)&&i.test(e)?f[0].parentNode.childNodes:f;default:return d?d(e):(p=l(e,r).querySelector(r)).childNodes}}},92471:(e,t,n)=>{var r=n(65496),o=n(67731).formatDOM,i=/<(![a-zA-Z\s]+)>/;e.exports=function(e){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(""===e)return[];var t,n=e.match(i);return n&&n[1]&&(t=n[1]),o(r(e),null,t)}},67731:(e,t,n)=>{for(var r,o=n(41141),i=n(15270).CASE_SENSITIVE_TAG_NAMES,a=o.Comment,l=o.Element,s=o.ProcessingInstruction,c=o.Text,u={},p=0,d=i.length;p<d;p++)r=i[p],u[r.toLowerCase()]=r;function f(e){for(var t,n={},r=0,o=e.length;r<o;r++)n[(t=e[r]).name]=t.value;return n}function h(e){var t=function(e){return u[e]}(e=e.toLowerCase());return t||e}t.formatAttributes=f,t.formatDOM=function e(t,n,r){n=n||null;for(var o,i=[],u=0,p=t.length;u<p;u++){var d,m=t[u];switch(m.nodeType){case 1:o=h(m.nodeName),(d=new l(o,f(m.attributes))).children=e("template"===o?m.content.childNodes:m.childNodes,d);break;case 3:d=new c(m.nodeValue);break;case 8:d=new a(m.nodeValue);break;default:continue}var y=i[u-1]||null;y&&(y.next=d),d.parent=n,d.prev=y,d.next=null,i.push(d)}return r&&((d=new s(r.substring(0,r.indexOf(" ")).toLowerCase(),r)).next=i[0]||null,d.parent=n,i.unshift(d),i[1]&&(i[1].prev=i[0])),i}},86614:(e,t,n)=>{var r=n(41141),o=n(92471),i=n(20840),a=n(10308);o="function"===typeof o.default?o.default:o;var l={lowerCaseAttributeNames:!1};function s(e,t){if("string"!==typeof e)throw new TypeError("First argument must be a string");return""===e?[]:a(o(e,(t=t||{}).htmlparser2||l),t)}s.domToReact=a,s.htmlToDOM=o,s.attributesToProps=i,s.Comment=r.Comment,s.Element=r.Element,s.ProcessingInstruction=r.ProcessingInstruction,s.Text=r.Text,e.exports=s,s.default=s},20840:(e,t,n)=>{var r=n(14210),o=n(74958),i=["checked","value"],a=["input","select","textarea"],l={reset:!0,submit:!0};function s(e){return r.possibleStandardNames[e]}e.exports=function(e,t){var n,c,u,p,d,f={},h=(e=e||{}).type&&l[e.type];for(n in e)if(u=e[n],r.isCustomAttribute(n))f[n]=u;else if(p=s(c=n.toLowerCase()))switch(d=r.getPropertyInfo(p),-1===i.indexOf(p)||-1===a.indexOf(t)||h||(p=s("default"+c)),f[p]=u,d&&d.type){case r.BOOLEAN:f[p]=!0;break;case r.OVERLOADED_BOOLEAN:""===u&&(f[p]=!0)}else o.PRESERVE_CUSTOM_ATTRIBUTES&&(f[n]=u);return o.setStyleProp(e.style,f),f}},10308:(e,t,n)=>{var r=n(96540),o=n(20840),i=n(74958),a=i.setStyleProp,l=i.canTextBeChildOfNode;function s(e){return i.PRESERVE_CUSTOM_ATTRIBUTES&&"tag"===e.type&&i.isCustomComponent(e.name,e.attribs)}e.exports=function e(t,n){for(var c,u,p,d,f,h=(n=n||{}).library||r,m=h.cloneElement,y=h.createElement,g=h.isValidElement,v=[],b="function"===typeof n.replace,x=n.transform||i.returnFirstArg,k=n.trim,w=0,T=t.length;w<T;w++)if(c=t[w],b&&g(p=n.replace(c)))T>1&&(p=m(p,{key:p.key||w})),v.push(x(p,c,w));else if("text"!==c.type){switch(d=c.attribs,s(c)?a(d.style,d):d&&(d=o(d,c.name)),f=null,c.type){case"script":case"style":c.children[0]&&(d.dangerouslySetInnerHTML={__html:c.children[0].data});break;case"tag":"textarea"===c.name&&c.children[0]?d.defaultValue=c.children[0].data:c.children&&c.children.length&&(f=e(c.children,n));break;default:continue}T>1&&(d.key=w),v.push(x(y(c.name,d,f),c,w))}else{if((u=!c.data.trim().length)&&c.parent&&!l(c.parent))continue;if(k&&u)continue;v.push(x(c.data,c,w))}return 1===v.length?v[0]:v}},74958:(e,t,n)=>{var r=n(96540),o=n(35229).default;var i=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]);var a={reactCompat:!0};var l=r.version.split(".")[0]>=16,s=new Set(["tr","tbody","thead","tfoot","colgroup","table","head","html","frameset"]);e.exports={PRESERVE_CUSTOM_ATTRIBUTES:l,ELEMENTS_WITH_NO_TEXT_CHILDREN:s,invertObject:function(e,t){if(!e||"object"!==typeof e)throw new TypeError("First argument must be an object");var n="function"===typeof t,r={},o={};for(var i in e){var a=e[i];n&&(r=t(i,a))&&2===r.length?o[r[0]]=r[1]:"string"===typeof a&&(o[a]=i)}return o},isCustomComponent:function(e,t){return-1===e.indexOf("-")?t&&"string"===typeof t.is:!i.has(e)},setStyleProp:function(e,t){if(null!==e&&void 0!==e)try{t.style=o(e,a)}catch(n){t.style={}}},canTextBeChildOfNode:function(e){return!s.has(e.name)},returnFirstArg:function(e){return e}}},19788:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,o=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,s=/^\s+|\s+$/g,c="";function u(e){return e?e.replace(s,c):c}e.exports=function(e,s){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];s=s||{};var p=1,d=1;function f(e){var t=e.match(n);t&&(p+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function h(){var e={line:p,column:d};return function(t){return t.position=new m(e),b(),t}}function m(e){this.start=e,this.end={line:p,column:d},this.source=s.source}m.prototype.content=e;var y=[];function g(t){var n=new Error(s.source+":"+p+":"+d+": "+t);if(n.reason=t,n.filename=s.source,n.line=p,n.column=d,n.source=e,!s.silent)throw n;y.push(n)}function v(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function b(){v(r)}function x(e){var t;for(e=e||[];t=k();)!1!==t&&e.push(t);return e}function k(){var t=h();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return g("End of comment missing");var r=e.slice(2,n-2);return d+=2,f(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}function w(){var e=h(),n=v(o);if(n){if(k(),!v(i))return g("property missing ':'");var r=v(a),s=e({type:"declaration",property:u(n[0].replace(t,c)),value:r?u(r[0].replace(t,c)):c});return v(l),s}}return b(),function(){var e,t=[];for(x(t);e=w();)!1!==e&&(t.push(e),x(t));return t}()}},14210:(e,t,n)=>{"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,l=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(s){l=!0,o=s}finally{try{a||null==n.return||n.return()}finally{if(l)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}Object.defineProperty(t,"__esModule",{value:!0});function i(e,t,n,r,o,i,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var a={};["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"].forEach((function(e){a[e]=new i(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=r(e,2),n=t[0],o=t[1];a[n]=new i(n,1,!1,o,null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){a[e]=new i(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){a[e]=new i(e,2,!1,e,null,!1,!1)})),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach((function(e){a[e]=new i(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){a[e]=new i(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){a[e]=new i(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){a[e]=new i(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){a[e]=new i(e,5,!1,e.toLowerCase(),null,!1,!1)}));var l=/[\-\:]([a-z])/g,s=function(e){return e[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach((function(e){var t=e.replace(l,s);a[t]=new i(t,1,!1,e,null,!1,!1)})),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach((function(e){var t=e.replace(l,s);a[t]=new i(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(l,s);a[t]=new i(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){a[e]=new i(e,1,!1,e.toLowerCase(),null,!1,!1)}));a.xlinkHref=new i("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){a[e]=new i(e,1,!1,e.toLowerCase(),null,!0,!0)}));var c=n(96811),u=c.CAMELCASE,p=c.SAME,d=c.possibleStandardNames,f=RegExp.prototype.test.bind(new RegExp("^(data|aria)-[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$")),h=Object.keys(d).reduce((function(e,t){var n=d[t];return n===p?e[t]=t:n===u?e[t.toLowerCase()]=t:e[t]=n,e}),{});t.BOOLEAN=3,t.BOOLEANISH_STRING=2,t.NUMERIC=5,t.OVERLOADED_BOOLEAN=4,t.POSITIVE_NUMERIC=6,t.RESERVED=0,t.STRING=1,t.getPropertyInfo=function(e){return a.hasOwnProperty(e)?a[e]:null},t.isCustomAttribute=f,t.possibleStandardNames=h},96811:(e,t)=>{t.SAME=0;t.CAMELCASE=1,t.possibleStandardNames={accept:0,acceptCharset:1,"accept-charset":"acceptCharset",accessKey:1,action:0,allowFullScreen:1,alt:0,as:0,async:0,autoCapitalize:1,autoComplete:1,autoCorrect:1,autoFocus:1,autoPlay:1,autoSave:1,capture:0,cellPadding:1,cellSpacing:1,challenge:0,charSet:1,checked:0,children:0,cite:0,class:"className",classID:1,className:1,cols:0,colSpan:1,content:0,contentEditable:1,contextMenu:1,controls:0,controlsList:1,coords:0,crossOrigin:1,dangerouslySetInnerHTML:1,data:0,dateTime:1,default:0,defaultChecked:1,defaultValue:1,defer:0,dir:0,disabled:0,disablePictureInPicture:1,disableRemotePlayback:1,download:0,draggable:0,encType:1,enterKeyHint:1,for:"htmlFor",form:0,formMethod:1,formAction:1,formEncType:1,formNoValidate:1,formTarget:1,frameBorder:1,headers:0,height:0,hidden:0,high:0,href:0,hrefLang:1,htmlFor:1,httpEquiv:1,"http-equiv":"httpEquiv",icon:0,id:0,innerHTML:1,inputMode:1,integrity:0,is:0,itemID:1,itemProp:1,itemRef:1,itemScope:1,itemType:1,keyParams:1,keyType:1,kind:0,label:0,lang:0,list:0,loop:0,low:0,manifest:0,marginWidth:1,marginHeight:1,max:0,maxLength:1,media:0,mediaGroup:1,method:0,min:0,minLength:1,multiple:0,muted:0,name:0,noModule:1,nonce:0,noValidate:1,open:0,optimum:0,pattern:0,placeholder:0,playsInline:1,poster:0,preload:0,profile:0,radioGroup:1,readOnly:1,referrerPolicy:1,rel:0,required:0,reversed:0,role:0,rows:0,rowSpan:1,sandbox:0,scope:0,scoped:0,scrolling:0,seamless:0,selected:0,shape:0,size:0,sizes:0,span:0,spellCheck:1,src:0,srcDoc:1,srcLang:1,srcSet:1,start:0,step:0,style:0,summary:0,tabIndex:1,target:0,title:0,type:0,useMap:1,value:0,width:0,wmode:0,wrap:0,about:0,accentHeight:1,"accent-height":"accentHeight",accumulate:0,additive:0,alignmentBaseline:1,"alignment-baseline":"alignmentBaseline",allowReorder:1,alphabetic:0,amplitude:0,arabicForm:1,"arabic-form":"arabicForm",ascent:0,attributeName:1,attributeType:1,autoReverse:1,azimuth:0,baseFrequency:1,baselineShift:1,"baseline-shift":"baselineShift",baseProfile:1,bbox:0,begin:0,bias:0,by:0,calcMode:1,capHeight:1,"cap-height":"capHeight",clip:0,clipPath:1,"clip-path":"clipPath",clipPathUnits:1,clipRule:1,"clip-rule":"clipRule",color:0,colorInterpolation:1,"color-interpolation":"colorInterpolation",colorInterpolationFilters:1,"color-interpolation-filters":"colorInterpolationFilters",colorProfile:1,"color-profile":"colorProfile",colorRendering:1,"color-rendering":"colorRendering",contentScriptType:1,contentStyleType:1,cursor:0,cx:0,cy:0,d:0,datatype:0,decelerate:0,descent:0,diffuseConstant:1,direction:0,display:0,divisor:0,dominantBaseline:1,"dominant-baseline":"dominantBaseline",dur:0,dx:0,dy:0,edgeMode:1,elevation:0,enableBackground:1,"enable-background":"enableBackground",end:0,exponent:0,externalResourcesRequired:1,fill:0,fillOpacity:1,"fill-opacity":"fillOpacity",fillRule:1,"fill-rule":"fillRule",filter:0,filterRes:1,filterUnits:1,floodOpacity:1,"flood-opacity":"floodOpacity",floodColor:1,"flood-color":"floodColor",focusable:0,fontFamily:1,"font-family":"fontFamily",fontSize:1,"font-size":"fontSize",fontSizeAdjust:1,"font-size-adjust":"fontSizeAdjust",fontStretch:1,"font-stretch":"fontStretch",fontStyle:1,"font-style":"fontStyle",fontVariant:1,"font-variant":"fontVariant",fontWeight:1,"font-weight":"fontWeight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:1,"glyph-name":"glyphName",glyphOrientationHorizontal:1,"glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphOrientationVertical:1,"glyph-orientation-vertical":"glyphOrientationVertical",glyphRef:1,gradientTransform:1,gradientUnits:1,hanging:0,horizAdvX:1,"horiz-adv-x":"horizAdvX",horizOriginX:1,"horiz-origin-x":"horizOriginX",ideographic:0,imageRendering:1,"image-rendering":"imageRendering",in2:0,in:0,inlist:0,intercept:0,k1:0,k2:0,k3:0,k4:0,k:0,kernelMatrix:1,kernelUnitLength:1,kerning:0,keyPoints:1,keySplines:1,keyTimes:1,lengthAdjust:1,letterSpacing:1,"letter-spacing":"letterSpacing",lightingColor:1,"lighting-color":"lightingColor",limitingConeAngle:1,local:0,markerEnd:1,"marker-end":"markerEnd",markerHeight:1,markerMid:1,"marker-mid":"markerMid",markerStart:1,"marker-start":"markerStart",markerUnits:1,markerWidth:1,mask:0,maskContentUnits:1,maskUnits:1,mathematical:0,mode:0,numOctaves:1,offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:1,"overline-position":"overlinePosition",overlineThickness:1,"overline-thickness":"overlineThickness",paintOrder:1,"paint-order":"paintOrder",panose1:0,"panose-1":"panose1",pathLength:1,patternContentUnits:1,patternTransform:1,patternUnits:1,pointerEvents:1,"pointer-events":"pointerEvents",points:0,pointsAtX:1,pointsAtY:1,pointsAtZ:1,prefix:0,preserveAlpha:1,preserveAspectRatio:1,primitiveUnits:1,property:0,r:0,radius:0,refX:1,refY:1,renderingIntent:1,"rendering-intent":"renderingIntent",repeatCount:1,repeatDur:1,requiredExtensions:1,requiredFeatures:1,resource:0,restart:0,result:0,results:0,rotate:0,rx:0,ry:0,scale:0,security:0,seed:0,shapeRendering:1,"shape-rendering":"shapeRendering",slope:0,spacing:0,specularConstant:1,specularExponent:1,speed:0,spreadMethod:1,startOffset:1,stdDeviation:1,stemh:0,stemv:0,stitchTiles:1,stopColor:1,"stop-color":"stopColor",stopOpacity:1,"stop-opacity":"stopOpacity",strikethroughPosition:1,"strikethrough-position":"strikethroughPosition",strikethroughThickness:1,"strikethrough-thickness":"strikethroughThickness",string:0,stroke:0,strokeDasharray:1,"stroke-dasharray":"strokeDasharray",strokeDashoffset:1,"stroke-dashoffset":"strokeDashoffset",strokeLinecap:1,"stroke-linecap":"strokeLinecap",strokeLinejoin:1,"stroke-linejoin":"strokeLinejoin",strokeMiterlimit:1,"stroke-miterlimit":"strokeMiterlimit",strokeWidth:1,"stroke-width":"strokeWidth",strokeOpacity:1,"stroke-opacity":"strokeOpacity",suppressContentEditableWarning:1,suppressHydrationWarning:1,surfaceScale:1,systemLanguage:1,tableValues:1,targetX:1,targetY:1,textAnchor:1,"text-anchor":"textAnchor",textDecoration:1,"text-decoration":"textDecoration",textLength:1,textRendering:1,"text-rendering":"textRendering",to:0,transform:0,typeof:0,u1:0,u2:0,underlinePosition:1,"underline-position":"underlinePosition",underlineThickness:1,"underline-thickness":"underlineThickness",unicode:0,unicodeBidi:1,"unicode-bidi":"unicodeBidi",unicodeRange:1,"unicode-range":"unicodeRange",unitsPerEm:1,"units-per-em":"unitsPerEm",unselectable:0,vAlphabetic:1,"v-alphabetic":"vAlphabetic",values:0,vectorEffect:1,"vector-effect":"vectorEffect",version:0,vertAdvY:1,"vert-adv-y":"vertAdvY",vertOriginX:1,"vert-origin-x":"vertOriginX",vertOriginY:1,"vert-origin-y":"vertOriginY",vHanging:1,"v-hanging":"vHanging",vIdeographic:1,"v-ideographic":"vIdeographic",viewBox:1,viewTarget:1,visibility:0,vMathematical:1,"v-mathematical":"vMathematical",vocab:0,widths:0,wordSpacing:1,"word-spacing":"wordSpacing",writingMode:1,"writing-mode":"writingMode",x1:0,x2:0,x:0,xChannelSelector:1,xHeight:1,"x-height":"xHeight",xlinkActuate:1,"xlink:actuate":"xlinkActuate",xlinkArcrole:1,"xlink:arcrole":"xlinkArcrole",xlinkHref:1,"xlink:href":"xlinkHref",xlinkRole:1,"xlink:role":"xlinkRole",xlinkShow:1,"xlink:show":"xlinkShow",xlinkTitle:1,"xlink:title":"xlinkTitle",xlinkType:1,"xlink:type":"xlinkType",xmlBase:1,"xml:base":"xmlBase",xmlLang:1,"xml:lang":"xmlLang",xmlns:0,"xml:space":"xmlSpace",xmlnsXlink:1,"xmlns:xlink":"xmlnsXlink",xmlSpace:1,y1:0,y2:0,y:0,yChannelSelector:1,z:0,zoomAndPan:1}},35229:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(9108)),i=n(98917);t.default=function(e,t){var n={};return e&&"string"===typeof e?((0,o.default)(e,(function(e,r){e&&r&&(n[(0,i.camelCase)(e,t)]=r)})),n):n}},98917:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.camelCase=void 0;var n=/^--[a-zA-Z0-9-]+$/,r=/-([a-z])/g,o=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,l=function(e,t){return t.toUpperCase()},s=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){return void 0===t&&(t={}),function(e){return!e||o.test(e)||n.test(e)}(e)?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(a,s):e.replace(i,s)).replace(r,l))}},9108:(e,t,n)=>{var r=n(19788);function o(e,t){var n,o=null;if(!e||"string"!==typeof e)return o;for(var i,a,l=r(e),s="function"===typeof t,c=0,u=l.length;c<u;c++)i=(n=l[c]).property,a=n.value,s?t(i,a,n):a&&(o||(o={}),o[i]=a);return o}e.exports=o,e.exports.default=o},87836:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2642),o=n(35840);function i(e,t){const n=+(0,r.a)(e);return(0,o.w)(e,n+t)}},93001:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(87836);function o(e,t){return(0,r.A)(e,1e3*t)}},29708:(e,t,n)=>{"use strict";n.d(t,{W:()=>o});var r=n(93001);function o(e,t){return(0,r.p)(e,-t)}},25232:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>o});var r=n(86614);r.domToReact,r.htmlToDOM,r.attributesToProps,r.Comment,r.Element,r.ProcessingInstruction,r.Text;const o=r}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/7959.3995671185f9720b5454.chunk.js b/src/web/gui/v2/7959.3995671185f9720b5454.chunk.js
new file mode 100644
index 000000000..74509e221
--- /dev/null
+++ b/src/web/gui/v2/7959.3995671185f9720b5454.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="62a368e9-1215-429f-be37-3a87400cad95",e._sentryDebugIdIdentifier="sentry-dbid-62a368e9-1215-429f-be37-3a87400cad95")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[7959],{7959:(e,n,t)=>{t.r(n),t.d(n,{default:()=>f});t(62953);var a=t(96540),o=t(10058),l=t(3914),s=t(87659),r=t(98496),c=t(39522),i=t(4659),m=t(84976);const d={noRoomPermission:{header:e=>"Your role doesn't give you permission to access any of the troubleshooting information on ".concat(e,".")},noSpacePermission:{header:e=>"Your role doesn't give you permission to access any information on ".concat(e,".")},noRooms:{header:e=>"You currently don't have permission to see any room on ".concat(e,".")}},u=e=>{let{onClick:n,spaceName:t}=e;return a.createElement(a.Fragment,null,a.createElement(o.Text,{margin:[2,0,0]},"You can also leave this Space if you wish. "),a.createElement(o.Button,{flavour:"borderless",icon:"switch_off",label:"Leave ".concat(t),margin:[0,0,0,7],onClick:n,strong:!0}))},f=e=>{let{reason:n}=e;const t=(0,l.ap)(),[f,,g,p]=(0,s.A)(),{header:b}=d[n],h=(0,l.bq)();return a.createElement(r.A,{title:b(t.name)},a.createElement(a.Fragment,null,"noSpacePermission"===n&&a.createElement(a.Fragment,null,a.createElement(o.Text,null,"Please contact the Space administrators if this is unexpected."),a.createElement(u,{onClick:g,spaceName:t.name})),"noRoomPermission"===n&&a.createElement(o.Text,null,"To manage Plan & Billing information please"," ",a.createElement(i.A,{as:m.N_,to:"/spaces/".concat(h,"/settings/billing")},"click here.")),"noRooms"===n&&a.createElement(a.Fragment,null,a.createElement(o.Text,null,"Please contact a Space administrator or manager if this is unexpected."),a.createElement(u,{onClick:g,spaceName:t.name})),f&&a.createElement(c.A,{id:t.id,name:t.name,onClose:p})))}},39522:(e,n,t)=>{t.d(n,{A:()=>v});var a=t(58168),o=t(96540),l=t(10058),s=t(47767),r=t(22292),c=t(55463),i=(t(17333),t(98992),t(54520),t(62953),t(47444)),m=t(71835),d=t(54702),u=t(55189),f=t(3914),g=t(48849),p=t(56639),b=t(14994);var h=t(57992);const y="leave-space-dialog",E="leaveSpaceDialog",v=e=>{let{id:n,name:t,onClose:v}=e;const w=(0,s.Zp)(),C=(0,r.uW)("id"),A=(0,c.Gi)(),S=(0,c.i3)(),k=(0,c.pB)(),P=(e=>{const[,n]=(0,m.A)();return(0,i.Zs)((t=>{let{snapshot:a,set:o,reset:l}=t;return async t=>{let{currentUserId:s,onSuccess:r,onError:i}=t;const m=await a.getPromise((0,f.nC)("ids")),h=m.filter((n=>e!==n)),[y]=h;if(!y)return void n({header:"Spaces",text:u.sh.leave});const{slug:E}=y&&await a.getPromise((0,p.Ay)(y));o((0,f.nC)("ids"),h),o(g.A,(n=>n.filter((n=>n!==e))));try{await(0,d.XY)(e,[s]),r&&r(E),(0,c.Z8)(l,e),(0,b.Is)(l,e),l((0,p.Ay)(e))}catch(v){o((0,f.nC)("ids"),m),i&&i()}}}),[e])})(n),_=(0,h.A)(n),L=(0,o.useCallback)((e=>w("/spaces/".concat(e))),[]),Y=1===A.length,I=1===S.length&&k,x=Y?{confirmLabel:"Yes, leave","data-ga":"".concat(y,"-last-member"),"data-testid":"".concat(E,"LastMember"),handleConfirm:()=>_({onSuccess:L}),message:o.createElement(o.Fragment,null,"If you leave, space ",o.createElement("strong",null,t)," will be deleted immediately.",o.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(t," space")}:I?{confirmLabel:"Give rights","data-ga":"".concat(y,"-last-admin"),"data-testid":"".concat(E,"LastAdmin"),handleConfirm:()=>w("users"),isConfirmPositive:!0,message:o.createElement(o.Fragment,null,"You are the last admin of ",o.createElement("strong",null,t)," space. Please give admin rights to another member so you can leave this space."),title:"Leave ".concat(t," space")}:{confirmLabel:"Yes, leave","data-ga":y,"data-testid":E,handleConfirm:()=>P({currentUserId:C,onSuccess:L}),message:o.createElement(o.Fragment,null,"You are about to leave ",o.createElement("strong",null,t)," space.",o.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(t," space")};return o.createElement(l.ConfirmationDialog,(0,a.A)({handleDecline:v},x))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/8011.3f8282bb427ea06e9408.chunk.js b/src/web/gui/v2/8011.3f8282bb427ea06e9408.chunk.js
new file mode 100644
index 000000000..3650e6f71
--- /dev/null
+++ b/src/web/gui/v2/8011.3f8282bb427ea06e9408.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="63d7e3d3-3447-403b-bc85-d272e4dea26d",e._sentryDebugIdIdentifier="sentry-dbid-63d7e3d3-3447-403b-bc85-d272e4dea26d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8011],{88011:(e,t,l)=>{l.r(t),l.d(t,{default:()=>se});l(41393),l(81454);var n=l(96540),a=l(10058),o=l(4659),s=l(63450),r=l(58168),i=(l(62953),l(63950)),c=l.n(i),d=l(29217),u=l(78940);const m=e=>{let{scope:t,setScope:l=c(),isDisabled:o,...s}=e;return n.createElement(a.Flex,(0,r.A)({gap:3},s),Object.entries(u.Wu).map((e=>{let[s,{text:r,tooltip:i}]=e;return n.createElement(a.RadioButton,{key:s,checked:s===t,onChange:()=>l(s),disabled:o},n.createElement(d.A,{content:i,align:"bottom"},n.createElement(a.TextSmall,{color:"textDescription"},r)))})))};var p=l(54518),b=l(87659);const g=e=>{let{selectedKey:t,selectedValue:l,onAddHostLabel:o=c(),onRemoveHostLabel:s=c(),isDefault:r=!1,showPlaceholder:i=c(),isDisabled:u}=e;const[m,b]=(0,n.useState)(t||""),[g,h]=(0,n.useState)(l||""),E=()=>{m&&g&&(o({[m]:g}),i())};return n.createElement(a.Flex,{gap:2},n.createElement(p.A,{component:"input",onChange:b,onBlur:E,placeholder:"Host key",value:m,disabled:u||!r}),n.createElement(p.A,{component:"input",onChange:h,onBlur:E,placeholder:"Host value",value:g,disabled:u||!r||!m}),r?n.createElement(d.A,{content:"Save label pair",align:"bottom"},n.createElement(a.Button,{flavour:"borderless",disabled:!m||!g},n.createElement(a.Icon,{name:"check",color:"primary",size:"small"}))):n.createElement(d.A,{content:"Remove label pair",align:"bottom"},n.createElement(a.Button,{flavour:"borderless",onClick:()=>s(t)},n.createElement(a.Icon,{name:"x",color:"primary",size:"small"}))))},h=e=>{let{hostLabels:t,onAddHostLabel:l,onRemoveHostLabel:a}=e;return Object.entries(t).map((e=>{let[t,o]=e;return n.createElement(g,{key:t,onAddHostLabel:l,selectedKey:t,selectedValue:o,onRemoveHostLabel:a})}))},E=e=>{let{hostLabels:t,onAddHostLabel:l=c(),onRemoveHostLabel:o=c(),isEdit:s,isDisabled:r}=e;const i=!!Object.entries(t||{}).length,[d,,u]=(0,b.A)(!1);return n.createElement(a.Flex,{column:!0,gap:1},n.createElement(a.TextSmall,{color:"textLite"},"Host labels"),i&&n.createElement(h,{hostLabels:t,onAddHostLabel:l,onRemoveHostLabel:o}),(!i||d)&&n.createElement(g,{key:JSON.stringify(t),onAddHostLabel:l,isDefault:!0,showPlaceholder:u,isDisabled:r}),s&&!d&&i&&n.createElement(a.Flex,{justifyContent:"end"},n.createElement(a.Button,{flavour:"borderless",onClick:u},"Add host label")))};var v=l(99851);function f(){const e=new Date,t=e.getFullYear(),l=e.getMonth(),n=e.getDate(),a=new Date(0);return a.setFullYear(t,l,n+1),a.setHours(0,0,0,0),a}var C=l(51730),A=l(82526),x=l(27467);const S=Object.entries(u.SB).map((e=>{let[t,l]=e;return{label:l,value:t}})),D=f(),k=(0,C.o)((0,A.W)(D,{years:1})),y=e=>{let{duration:t,setDuration:l,setDate:o,endDate:s,isDisabled:r}=e;const i=(0,x.rW)("offset");return n.createElement(a.Flex,{gap:2},n.createElement(p.A,{component:"select",title:"Duration",onChange:l,options:S,placeholder:"Select duration",value:t,isDisabled:r}),"custom"===t.value&&n.createElement(a.Flex,{alignSelf:"end"},n.createElement(v.A,{isSinglePicker:!0,values:{singleDate:s},minDate:D,maxDate:k,utc:i,onChange:o,isPlaying:!1,accessorProps:u.Iv,padding:[4,0],width:"auto",accessorTooltipContent:"Select end date"})))};function L(){return(0,C.o)(Date.now())}const R=L(),w=f(),O=e=>{let{start:t,end:l,onChange:o,isDisabled:s,isEdit:r}=e;const[i,c]=(0,n.useState)(r?"schedule":u.SX),[m,p]=(0,n.useState)(u.DK),[b,g]=(0,n.useState)(0),h=(0,x.rW)("offset"),[E,S]=(0,n.useState)(t?new Date(t):r?null:R),[D,k]=(0,n.useState)(l?new Date(l):r?null:w),[O,H]=(0,n.useState)((0,C.o)((0,A.W)(E,{days:1})));(0,n.useEffect)((()=>{const e=(0,A.W)(E,{days:1});H(e),!r&&E>=D&&k(e)}),[E]),(0,n.useEffect)((()=>{o({start:E,end:D,scheduleOption:i,duration:m})}),[E,D,i,m]);const I=f(),N=(0,C.o)((0,A.W)(I,{years:1}));return n.createElement(a.Flex,{column:!0,gap:3},!r&&n.createElement(a.Flex,{gap:3},Object.entries(u.Yo).map((e=>{let[t,{text:l,tooltip:o}]=e;return n.createElement(a.RadioButton,{key:t,checked:t===i,onChange:()=>c(t),disabled:s},n.createElement(d.A,{content:o,align:"bottom"},n.createElement(a.TextSmall,{color:"textDescription"},l)))}))),"now"===i?n.createElement(y,{duration:m,setDuration:p,setDate:e=>{S(Date.now()),k(e)},endDate:D,isDisabled:s}):n.createElement(a.Flex,{gap:2},n.createElement(a.Flex,{column:!0,gap:2,flex:{grow:1,shrink:1},basis:0},n.createElement(a.TextSmall,null,"Start date"),n.createElement(v.A,{isSinglePicker:!0,values:{singleDate:new Date(E)},minDate:L(),maxDate:N,utc:h,onChange:e=>{S(e),g((e=>e+1))},isPlaying:!1,accessorProps:u.Iv,padding:[4,0],width:"auto",accessorTooltipContent:"Select start date"})),n.createElement(a.Flex,{column:!0,gap:2,flex:{grow:1,shrink:1},basis:0},n.createElement(a.TextSmall,null,"End date"),n.createElement(v.A,{key:b,isSinglePicker:!0,values:{singleDate:D?new Date(D):D},minDate:O,maxDate:N,utc:h,onChange:k,isPlaying:!1,accessorProps:u.Iv,padding:[4,0],width:"auto",accessorTooltipContent:"Select end date"}))))},H=e=>{let{content:t="Loading alerts..."}=e;return n.createElement(a.Flex,{height:45,alignItems:"center",justifyContent:"center"},n.createElement(a.Text,null,t))};var I=l(54856);const N=e=>n.createElement(a.Flex,(0,r.A)({gap:2,alignItems:"center"},e),n.createElement(a.Icon,{size:"small",color:"warning",name:"warning_triangle"}),n.createElement(a.Text,null,"This feature is only available to paid plans"),n.createElement(I.A,null));l(9391),l(17333),l(3064),l(98992),l(54520),l(72577);var P=l(47767),F=l(38819),_=l(22292),T=l(46741),B=l(3914),j=l(67990),M=l(71856),U=l(88982),W=l(29848),z=l(36021),K=l(47444),V=l(45860);const J=(0,K.K0)({key:"spaceAlertMetas",get:e=>()=>(0,V.z5)(e)});var Y=l(10368),G=l(79394),Z=l(71835);const q={name:"",rooms:[],nodes:[],hostLabels:null,alertNames:[],alertContexts:[],alertRoles:[],startsAt:null,lastsUntil:null},X=e=>{let{id:t,name:l,...n}=e;return{label:l,value:t,...n}},$=e=>({label:e,value:e}),Q=e=>{var t;let{rooms:l,nodes:n,hostLabels:a,startsAt:o,lastsUntil:s,...r}=e;return{...r,scope:r.accountId?"personal":u._V,canSubmit:!(null===r||void 0===r||null===(t=r.name)||void 0===t||!t.length),rooms:null!==l&&void 0!==l&&l.length?l.map(X):[M.PT],...null!==n&&void 0!==n&&n.length?{nodes:n.map(X).filter((e=>{let{notAvailable:t}=e;return!t}))}:{},...a?{hostLabels:a}:{},...o?{startsAt:o}:{},...s?{lastsUntil:s}:{}}},ee=e=>{let{value:t}=e;return t},te=(e,t)=>{const{scope:l,rooms:n,nodes:a,hostLabels:o,startsAt:s,lastsUntil:r,scheduleOption:i,duration:c,...d}=e,m=n.filter((e=>{let{value:t}=e;return t!==u.jH.value})).map(ee),p=a.map(ee),b=!!Object.keys(o||{}).length,{start:g,end:h}=(e=>{let{startsAt:t,lastsUntil:l,scheduleOption:n,duration:a}=e;if("schedule"==n)return{start:t,end:l};let o,s=Date.now();switch(a){case"oneHour":o=(0,A.W)(s,{hours:1});break;case"sixHours":o=(0,A.W)(s,{hours:6});break;case"twelveHours":o=(0,A.W)(s,{hours:12});break;case"oneDay":o=(0,A.W)(s,{days:1});break;case"custom":o=l}return{start:s,...o?{end:o}:{}}})({startsAt:s,lastsUntil:r,scheduleOption:i,duration:c});return{...d,..."personal"==l?{account_id:t}:{},...m.length?{room_ids:m}:{},...p.length?{node_ids:p}:{},...b?{host_labels:o}:{},...g?{starts_at:new Date(g).toISOString()}:{},...h?{lasts_until:new Date(h).toISOString()}:{}}},le=[{label:"CRITICAL",value:"CRITICAL"},{label:"WARNING",value:"WARNING"},{label:"CLEAR",value:"CLEAR"}],ne=e=>{var t;let{rule:l,onClose:a,isEdit:o}=e;const s=(0,_.NJ)(),r=(0,P.Zp)(),i=(0,B.bq)(),[c,d]=(0,b.A)(),m=(0,U.A)({all:!0}),p=null===(t=m.find((e=>{let{label:t}=e;return"All nodes"==t})))||void 0===t?void 0:t.value,{loaded:g,value:h,hasError:E}=(()=>{var e;const t=(0,B.vt)(),l=(0,K.xf)(J(t));return{loaded:"loading"!==l.state,value:(null===(e=l.contents)||void 0===e?void 0:e.data)||V.rx,hasError:"hasError"===l.state}})(),v=(0,z._B)(),f=(0,z.FU)(),C=o?f:v,A=(0,W.ly)(),x=(0,z.Lz)(),[,,S]=(0,Z.A)(),[D,k]=(0,n.useState)({alertNameOptions:[],alertContextOptions:[],alertRoleOptions:[]}),{alertNameOptions:y,alertContextOptions:L,alertRoleOptions:R}=D,[w,O]=(0,n.useState)((()=>({...q,...Q(l)}))),H=(0,j.vv)(w.roomIds||[p]),I=(0,n.useCallback)((e=>O((t=>({...t,scope:e})))),[]),N=(0,n.useCallback)((e=>O((t=>({...t,name:e,canSubmit:!(null===e||void 0===e||!e.length)})))),[]),M=(0,n.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const l=(e=>e.length<=1?e:e[e.length-1].value==u.jH.value?[u.jH]:e.filter((e=>{let{value:t}=e;return!!t})))(e),n=l.map((e=>{let{value:t}=e;return t||p})),a=t.length<l.length?l.filter((e=>{let{value:l}=e;return!t.includes(l)}))[0]:null;O((e=>({...e,rooms:l,roomIds:n,lastRoomAdded:a||null})))}),[p]),X=(0,n.useCallback)((e=>O((t=>({...t,nodeIds:e.map((e=>{let{value:t}=e;return t})),nodes:e})))),[]),ee=(0,n.useCallback)((e=>O((t=>({...t,hostLabels:{...t.hostLabels,...e}})))),[]),ne=(0,n.useCallback)((e=>O((t=>{const l={...t.hostLabels};return delete l[e],{...t,hostLabels:l}}))),[]),ae=(0,n.useCallback)((e=>t=>O((l=>({...l,[e]:t.map((e=>{let{value:t}=e;return t}))})))),[]),oe=(0,n.useCallback)((e=>{let{start:t,end:l,scheduleOption:n,duration:a}=e;return O((e=>({...e,startsAt:t,lastsUntil:l,scheduleOption:n,duration:a.value})))}),[]),se=(0,n.useCallback)((()=>{d(),C(te(w,s)).then((()=>{a(),x(),A()})).catch((e=>S((0,Y.H)(e)))).finally(d)}),[w,s]),re=(0,G.A)();(0,n.useEffect)((()=>{var e;const t=(null===(e=w.lastRoomAdded)||void 0===e?void 0:e.value)||p;let l=null;return t&&(l=re(t)),()=>{var e;return!(null===(e=l)||void 0===e||!e.cancel)&&l.cancel()}}),[w.roomIds,re]),(0,n.useEffect)((()=>{if(g){const{contexts:e,names:t,roles:l}=h||{};k({alertNameOptions:t?t.map($):[],alertContextOptions:e?e.map($):[],alertRoleOptions:l?l.map($):[]})}}),[g]),(0,n.useEffect)((()=>{const e=(0,F.PP)(),t=(()=>{const{silencingRulePrefill:e}=(0,F.PP)();if(!e)return{};let t={};try{t=JSON.parse(e)}catch(l){}return t})(),{alertName:l,nodeId:n,instance:a,roomId:o}=t;if(o){const e=m.filter((e=>{let{value:t}=e;return t==o}));e&&M(e)}if(l&&O((e=>({...e,alertNames:[l]}))),a&&O((e=>({...e,alertContexts:[a]}))),n){const e=H.filter((e=>{let{value:t}=e;return t==n}));e&&X(e)}(0,F.Z8)({...e,silencingRulePrefill:""})}),[O,ae,X,H]);const ie=(0,T.JT)("space:CreatePersonalSilencingRule"),ce=(0,n.useCallback)((()=>r("/spaces/".concat(i,"/settings/billing"))),[i]);return{state:w,onScopeChange:I,onRuleNameChange:N,onRoomsSelectionChange:M,roomOptions:m,onNodesSelectionChange:X,nodesOptions:H,alertMetasLoaded:g,alertMetas:h,alertNameOptions:y,alertContextOptions:L,alertRoleOptions:R,alertStatusOptions:le,alertMetasError:E,onAlertValueChange:ae,onAddHostLabel:ee,onRemoveHostLabel:ne,onDatesChange:oe,loading:c,onSave:se,spaceCreatePersonalSilencingRule:ie,onUpdateButtonClick:ce}},ae=e=>null!==e&&void 0!==e&&e.length?e.map($):[],oe=()=>n.createElement(a.Box,{as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),se=e=>{let{rule:t={},onClose:l,isEdit:r}=e;const{state:i,onScopeChange:c,onRuleNameChange:u,onRoomsSelectionChange:b,roomOptions:g,onNodesSelectionChange:h,nodesOptions:v,alertMetasLoaded:f,alertNameOptions:C,alertContextOptions:A,alertRoleOptions:x,alertStatusOptions:S,onAlertValueChange:D,onAddHostLabel:k,onRemoveHostLabel:y,onDatesChange:L,loading:R,onSave:w,spaceCreatePersonalSilencingRule:I,onUpdateButtonClick:P}=ne({rule:t,onClose:l,isEdit:r});return n.createElement(a.Modal,{onEsc:l,backdropProps:{backdropBlur:!0}},n.createElement(s.$m,{style:{maxHeight:"800px"}},n.createElement(a.ModalHeader,{padding:[6,4,3]},n.createElement(a.Flex,{column:!0,gap:2},n.createElement(a.Flex,{flex:!0,alignItems:"center",justifyContent:"between"},n.createElement(a.H4,null,"Add silencing rule"),l&&n.createElement(s.Oj,{onClose:l})),n.createElement(a.Text,null,"Define an alert notification silencing rule that will apply to all users or just you."," ",n.createElement(o.A,{"data-ga":"alert-silencing::click-link-docs::rule-modal","data-testid":"silencing-rules-doc",href:"https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/netdata-cloud-notifications/manage-alert-notification-silencing-rules",rel:"noopener noreferrer",target:"_blank"},"Learn how to configure silencing rules.")),!I&&n.createElement(N,null))),n.createElement(a.ModalBody,{padding:[0]},n.createElement(s.fn,null,n.createElement(a.Flex,{column:!0,gap:3},n.createElement(m,{scope:i.scope,setScope:c,padding:[0,0,1,0],isDisabled:!I}),n.createElement(p.A,{component:"input",onChange:u,placeholder:"Add rule name",title:"Rule name*",value:i.name,disabled:!I}),n.createElement(p.A,{component:"select",isMulti:!0,onChange:e=>b(e,i.roomIds),options:g,placeholder:"Select rooms",title:"Rooms*",value:i.rooms,isDisabled:!I}),n.createElement(p.A,{component:"select",isMulti:!0,onChange:h,options:v,placeholder:"Select nodes",title:"Nodes",value:i.nodes,isDisabled:!I||!v.length}),n.createElement(E,{hostLabels:i.hostLabels,onAddHostLabel:k,onRemoveHostLabel:y,isEdit:r,isDisabled:!I}),f?n.createElement(n.Fragment,null,n.createElement(oe,null),n.createElement(p.A,{component:"select",isMulti:!0,onChange:D("alertNames"),options:C,placeholder:"Select alert name",title:"Alert name",value:ae(i.alertNames),isDisabled:!I}),n.createElement(p.A,{component:"select",isMulti:!0,onChange:D("alertContexts"),options:A,placeholder:"Select alert context",title:"Alert context",value:ae(i.alertContexts),isDisabled:!I}),n.createElement(p.A,{component:"select",isMulti:!0,onChange:D("severities"),options:S,placeholder:"Select alert status",title:"Alert status",value:ae(i.severities),isDisabled:!I}),n.createElement(p.A,{component:"select",isMulti:!0,onChange:D("alertRoles"),options:x,placeholder:"Select alert role",title:"Alert role",value:ae(i.alertRoles),isDisabled:!I})):n.createElement(H,null),n.createElement(oe,null),n.createElement(O,{start:i.startsAt,end:i.lastsUntil,onChange:L,isEdit:r,isDisabled:!I}))),n.createElement(s.fn,{alignItems:"end",justifyContent:"center"},n.createElement(a.Flex,{gap:4},n.createElement(a.Button,{flavour:"borderless",label:"Cancel",onClick:l,disabled:R}),I?n.createElement(d.A,{content:r?"Update the rule":"Create the rule",align:"bottom"},n.createElement(a.Button,{label:"OK",onClick:w,"data-ga":"alert-silencing::click-save-".concat(r?"edit":"new","-rule::rule-modal"),"data-testid":"saveRule-button",textTransform:"uppercase",isLoading:R,disabled:R||!i.canSubmit})):n.createElement(d.A,{content:"Update to a paid plan in order to be able to create silencing rules",align:"bottom"},n.createElement(a.Button,{label:"Upgrade!",onClick:P})))))))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/8059.c88ad65e1926faee2379.chunk.js b/src/web/gui/v2/8059.c88ad65e1926faee2379.chunk.js
new file mode 100644
index 000000000..ee584a8f8
--- /dev/null
+++ b/src/web/gui/v2/8059.c88ad65e1926faee2379.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c9704d9d-ca79-45da-9e3f-f952d471a9f2",e._sentryDebugIdIdentifier="sentry-dbid-c9704d9d-ca79-45da-9e3f-f952d471a9f2")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8059],{62232:(e,t,a)=>{a.d(t,{A:()=>g});var l=a(58168),n=(a(17333),a(41393),a(98992),a(54520),a(81454),a(8711)),r=a(68090),c=a.n(r),o=a(96540),i=a(10058);const s=(0,n.default)(i.Box).withConfig({displayName:"breadcrumbs__StyledItemContainer",componentId:"sc-3u39st-0"})([""]),d=(0,n.css)(["&:hover{color:",";}"],(e=>{let{withHover:t,theme:a}=e;return t&&(0,i.getColor)("success")({theme:a})})),u=(0,n.default)(i.Text).withConfig({displayName:"breadcrumbs__StyledText",componentId:"sc-3u39st-1"})(["",""],d),m=(0,n.default)(i.TextSmall).withConfig({displayName:"breadcrumbs__StyledTextSmall",componentId:"sc-3u39st-2"})(["",""],d),g=e=>{let{items:t,isBig:a,showBackButton:n=!0,testid:r="",...d}=e;const g=(0,o.useMemo)((()=>{if(null===t||void 0===t||!t.length||!n)return null;return c()(t.filter((e=>{let{onClick:t}=e;return!!t}))).onClick}),[t,n]);if(null===t||void 0===t||!t.length)return null;const h=a?u:m;return o.createElement(i.Flex,(0,l.A)({gap:4},d),n&&o.createElement(i.Button,{onClick:g,icon:"chevron_left",label:"Back",neutral:!0,flavour:"hollow",small:!0,padding:[0,2,0,1],textTransform:"uppercase","data-testid":"".concat(r,"-breadcrumbs-backButton")}),o.createElement(i.Flex,{gap:2,alignItems:"center"},t.map(((e,t)=>{let{isDisabled:a,name:n,onClick:c}=e;return o.createElement(s,(0,l.A)({key:t,alignItems:"center"},c&&{cursor:"pointer",onClick:c},{"data-testid":"".concat(r,"-breadcrumbs-level-").concat(t)}),o.createElement(h,{color:a&&"textLite","data-testid":"".concat(r,"-breadcrumbs-level-").concat(t),withHover:!!c},0!==t&&" / ",n))}))))}},88059:(e,t,a)=>{a.r(t),a.d(t,{default:()=>pe});var l=a(96540),n=a(47444),r=a(51074),c=a(83084),o=a(96935),i=a(99292),s=(a(62953),a(10058)),d=a(67990),u=a(99739),m=a(64118),g=a(23452),h=a(28738),f=(a(41393),a(81454),a(58168)),b=a(8711),C=a(40267),E=a(33195);const y=(0,b.default)(s.Text).attrs({whiteSpace:"normal",wordBreak:"break-word"}).withConfig({displayName:"tableSchema__TextCell",componentId:"sc-u3gyvm-0"})([""]),v=e=>t=>{let{getValue:a}=t;return l.createElement(y,e,a())},p=(0,b.default)(s.Icon).withConfig({displayName:"tableSchema__StyledIcon",componentId:"sc-u3gyvm-1"})(["vertical-align:middle;"]),A=e=>{let{flavour:t,value:a,...n}=e;return l.createElement(s.Flex,(0,f.A)({padding:[0,2]},n,{justifyContent:"center"}),0===a?l.createElement(y,{textAlign:"center"},"-"):l.createElement(C.A,{flavour:t,"data-testid":"alertView-alertPill-".concat(t)},a))},w={id:"chevron",header:"",cell:()=>l.createElement(p,{rotate:2,name:"chevron_left",color:"textDescription"})},I={displayName:!1},x=[{id:"summary",accessorKey:"summary",header:"Alert",cell:e=>{let{getValue:t}=e;return l.createElement(y,{"data-testid":"alertName"},t())},fullWidth:!0},{id:"nodesRunningAlert",accessorKey:"nodeCount",header:"Nodes Running Alert",cell:e=>{let{getValue:t}=e;return l.createElement(y,{textAlign:"center","data-testid":"nodesRunningAlert"},t())}},{id:"alertInstances",accessorKey:"instanceCount",header:"Alert Instances",cell:e=>{let{getValue:t}=e;return l.createElement(y,{textAlign:"center","data-testid":"alertInstances"},t())}},{id:"criticalNodes",accessorKey:"criticalCount",header:"Critical",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"critical",value:t(),"data-testid":"criticalNodes"})}},{id:"warningNodes",accessorKey:"warningCount",header:"Warning",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"warning",value:t(),"data-testid":"warningNodes"})}},{id:"clearNodes",accessorKey:"clearCount",header:"Clear",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"clear",value:t(),"data-testid":"clearNodes"})}},{id:"errorNodes",accessorKey:"errorCount",header:"Error",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"neutral",value:t(),"data-testid":"errorNodes"})}},{id:"uniqueConfigs",accessorKey:"configCount",header:"Configs",cell:e=>{let{getValue:t}=e;return l.createElement(y,{textAlign:"center","data-testid":"uniqueConfigs"},t())}},{id:"silencing",accessorKey:"silencing",header:"Silencing",cell:e=>{let{getValue:t}=e;return l.createElement(E.A,{silencing:t()})}},{id:"displayName",accessorKey:"displayName",header:"Name",cell:e=>{let{getValue:t}=e;return l.createElement(y,{"data-testid":"alertName"},t())}}];var N=a(45976),T=a(87815),k=a(47762);const S=(0,b.default)(s.TextSmall).withConfig({displayName:"styled__StyledLinkText",componentId:"sc-1y769u1-0"})(["",""],"\n cursor: pointer;\n overflow-wrap: break-word;\n max-width: 140px;\n &:hover {\n opacity: 0.7;\n }\n"),V=(0,b.default)(s.TextSmall).withConfig({displayName:"styled__StyledText",componentId:"sc-1y769u1-1"})(["&:hover{color:",";text-decoration:underline;}"],(0,s.getColor)("accent"));var K=a(75793),_=a(4659),D=a(29217),R=a(63119),F=a(69418),L=a(73865),B=a(93155);const M=e=>{let{row:t,value:a,openModal:n}=e;const{id:r,info:c}=t.original,o=(0,l.useCallback)((()=>{n({alertId:r})}),[r]);return l.createElement(_.A,{Component:s.TextSmall,flavour:"tableLink",cursor:"pointer",showToolTip:!0,content:c,onClick:o,"data-testid":"alertsTableSchema-alertName-".concat(a),"data-ga":"alerts-table::click-alert::alerts-view::".concat(a)},a)},P=e=>{let{row:t,nodeId:a}=e;const{id:n}=t.original,r=(0,k.xY)(a,"name"),c=(0,k.d3)(a,{alertId:n}),[,,o]=(0,F.A)(),{hasLimitations:i,maxNodes:d,preferredNodes:u}=(0,L.A)(),m=B.bO&&i&&o>d&&!u.includes(a);return l.createElement(s.Flex,{width:35,"data-testid":"alertsTableSchema-nodeName-".concat(r),"data-ga":"alerts-table::click-node::alerts-view::".concat(r)},m?l.createElement(D.A,{content:l.createElement(R.u,{name:r}),align:"bottom",isBasic:!0},l.createElement(s.Flex,{gap:1},l.createElement(s.Icon,{name:"padlock",size:"small",color:"text"}),l.createElement(s.Text,null,l.createElement(K.A,{text:r,TextComponent:s.Text})))):l.createElement(S,{onClick:c},l.createElement(K.A,{text:r,TextComponent:V})))},W=e=>{let{row:t,value:a}=e;const{id:n,nodeId:r,instanceName:c}=t.original,o=(0,k.d3)(r,{alertId:n});return l.createElement(s.Flex,{"data-testid":"alertsTableSchema-chart-id-".concat(a),"data-ga":"alerts-table::click-chartId::alerts-view::".concat(a)},l.createElement(S,{onClick:o},l.createElement(K.A,{TextComponent:V,text:c})))},z={displayName:!1},G=e=>{let{openModal:t}=e;return[{id:"status",accessorKey:"status",header:"Status",cell:e=>{let{getValue:t}=e;return l.createElement(C.A,{flavour:t(),"data-testid":"alertsTable-alertPill","data-ga":"alerts-table::click-status::alerts-view::".concat(t())},t())}},{id:"summary",accessorKey:"summary",header:"Alert",cell:e=>{let{row:a,getValue:n}=e;return l.createElement(M,{row:a,value:n(),openModal:t})},fullWidth:!0},{id:"instance",header:"Instance",accessorKey:"instance",cell:e=>{let{row:t,getValue:a}=e;return l.createElement(W,{row:t,value:a()})}},{id:"nodeName",header:"Node",accessorKey:"nodeId",cell:e=>{let{row:t,getValue:a}=e;return l.createElement(P,{row:t,nodeId:a()})}},{id:"value",header:"Latest value",accessorKey:"value",cell:e=>{let{row:t,getValue:a}=e;const{status:n,units:r}=t.original;return l.createElement(N.A,{loaded:!0,status:n,units:r,value:a(),"data-testid":"alertsTableSchema-alertValue","data-ga":"alerts-table::click-alert-value::alerts-view"})}},{id:"lastUpdated",header:"Updated at",accessorKey:"lastUpdated",cell:e=>{let{getValue:t}=e;return l.createElement(T.A,{rawTime:t(),secs:!0,"data-testid":"alertsTableSchema-latestUpdated"})}},{id:"lastStatusChangeValue",header:"Triggered value",accessorKey:"lastStatusChangeValue",cell:e=>{let{row:t,getValue:a}=e;const{status:n,units:r}=t.original;return l.createElement(N.A,{loaded:!0,status:n,units:r,value:a(),"data-testid":"alertsTableSchema-triggeredValue","data-ga":"alerts-table::click-triggered-value::alerts-view"})}},{id:"lastStatusChange",header:"Triggered at",accessorKey:"lastStatusChange",cell:e=>{let{getValue:t}=e;return l.createElement(T.A,{rawTime:t(),secs:!0,"data-testid":"alertsTableSchema-lastStatusChange"})}},{id:"displayName",accessorKey:"displayName",header:"Name",cell:e=>{let{row:a,getValue:n}=e;return l.createElement(M,{row:a,value:n(),openModal:t})}},{id:"silencing",accessorKey:"silencing",header:"Silencing",cell:e=>{let{getValue:t}=e;return l.createElement(E.A,{silencing:t()})}}]},j=[{id:"summary",accessorKey:"summary",header:"Alert",cell:v({"data-testid":"alertInstanceName"}),fullWidth:!0},{id:"instance",header:"Instance",accessorKey:"instance",cell:e=>{let{row:t,getValue:a}=e;return l.createElement(W,{row:t,value:a()})}},{id:"status",accessorKey:"status",header:"Status",cell:e=>{let{getValue:t}=e;return l.createElement(s.Flex,{padding:[0,2]},l.createElement(C.A,{flavour:t(),"data-testid":"alertView-alertPill-value",border:void 0},t()))},size:80},{id:"lastStatusChangeValue",accessorKey:"lastStatusChangeValue",header:"Triggered value",cell:e=>{let{getValue:t,row:a}=e;const{status:n,units:r}=a.original;return l.createElement(N.A,{loaded:!0,status:n,units:r,value:t(),"data-testid":"alertsTableSchema-alertValue"})}},{id:"lastStatusChange",accessorKey:"lastStatusChange",header:"Triggered at",cell:e=>{let{getValue:t}=e;return l.createElement(T.A,{rawTime:t(),secs:!0,nowrap:!0})}},{id:"displayName",accessorKey:"displayName",header:"Name",cell:v({"data-testid":"alertInstanceName"})}];var q=a(92136);const U={right:["actions"]},H=()=>{const[{alertName:e,nodeId:t}]=(0,m.DV)(),a=(0,m.q1)(e,t),[n,r,,c]=(0,q.A)(),o=(0,l.useCallback)((e=>r({alertId:e.data.id})),[e,t]);return l.createElement(l.Fragment,null,l.createElement(s.Table,{data:a,dataColumns:j,onClickRow:o,enableSorting:!0,enableColumnVisibility:!0,enableResizing:!0,columnPinning:U}),n&&c)};a(14905),a(98992),a(8872),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215);var J=a(54830);const O=[{id:"nodeName",accessorKey:"nodeId",header:"Node",cell:e=>{let{getValue:t,row:a}=e;const[,,n]=(0,F.A)(),{hasLimitations:r,maxNodes:c,preferredNodes:o}=(0,L.A)(),i=r&&n>c,s=(0,k.xY)(t(),"name");return l.createElement(J.A,{nodeId:a.original.nodeId,name:s,preferredNodes:o,showLockedNodes:i})}},{id:"nodes",accessorKey:"nodeCount",header:"Node Instances",cell:v({"data-testid":"nodes",textAlign:"center"})},{id:"instances",accessorKey:"instanceCount",header:"Alert Instances",cell:v({"data-testid":"instances",textAlign:"center"})},{id:"critical",accessorKey:"criticalCount",header:"Critical",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"critical",value:t()})}},{id:"warning",accessorKey:"warningCount",header:"Warning",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"warning",value:t()})}},{id:"clear",accessorKey:"clearCount",header:"Clear",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"clear",value:t()})}},{id:"error",accessorKey:"errorCount",header:"Error",cell:e=>{let{getValue:t}=e;return l.createElement(A,{flavour:"neutral",value:t(),"data-testid":"errors"})}},{id:"configs",accessorKey:"configCount",header:"Configs",cell:v({"data-testid":"configs",textAlign:"center"})},w],Y={right:["actions"]},Q=()=>{const[{alertName:e},t]=(0,m.DV)(),a=(0,m.q1)(e),n=(0,l.useCallback)((a=>{t({alertName:e,nodeId:a.data.nodeId})}),[e,t]),r=(0,l.useMemo)((()=>Object.values(a.reduce(((e,t)=>{switch(e[t.nodeId]||(e[t.nodeId]={nodeId:t.nodeId,nodeCount:1,instanceCount:0,criticalCount:0,warningCount:0,clearCount:0,errorCount:0,configCount:0,configs:new Set}),e[t.nodeId].instanceCount=e[t.nodeId].instanceCount+1,t.status){case"warning":e[t.nodeId].warningCount=e[t.nodeId].warningCount+1;break;case"critical":e[t.nodeId].criticalCount=e[t.nodeId].criticalCount+1;break;case"clear":e[t.nodeId].clearCount=e[t.nodeId].clearCount+1;break;default:t.value||(e[t.nodeId].errorCount=e[t.nodeId].errorCount+1)}return e[t.nodeId].configCount=e[t.nodeId].configs.add(t.aci).size,e}),{}))),[a]);return l.createElement(s.Table,{data:r,dataColumns:O,onClickRow:n,enableSorting:!0,enableColumnVisibility:!0,enableResizing:!0,columnPinning:Y})};var Z=a(62232);const $=()=>{var e;const[{alertName:t,nodeId:a},n]=(0,m.DV)(),r=(0,k.Gt)(a?[a]:[]),c=null===r||void 0===r||null===(e=r[0])||void 0===e?void 0:e.name,o=(0,l.useMemo)((()=>c?[{name:"All Alert Configs",onClick:()=>{n({alertName:null,nodeId:null})}},{name:t,onClick:()=>{n({alertName:t,nodeId:null})}},{name:c}]:t?[{name:"All Alert Configs",onClick:()=>{n({alertName:null,nodeId:null})}},{name:t}]:null),[t,c,n]);return l.createElement(Z.A,{padding:[2,0,0],items:o,testid:"alertConfigurations"})};var X=a(3914),ee=a(69765),te=a(51913);const ae=()=>l.createElement(s.Text,null,"Loading..."),le={right:["actions"]},ne=(0,l.memo)((()=>{const e=(0,m.oU)(),[{alertName:t,nodeId:a},n]=(0,m.DV)(),[,r]=(0,te.Ws)(),c=(0,l.useCallback)((e=>{n({alertName:e.data.name})}),[]),{rowActions:o}=(()=>{const e=(0,ee.ID)(),[,t]=(0,te.bg)(),[,a]=(0,m.DV)(),n=(0,X.dg)();return{rowActions:(0,l.useMemo)((()=>({goto:{handleAction:e=>{let{name:t}=e;return a({alertName:t})},icon:"chevron_right",tooltipText:"Show configuration"},...!n&&{info:{handleAction:a=>t({roomId:e,alert:a}),tooltipText:"Get some help from Netdata Assistant",icon:"netdataAssistant",iconColor:"primary",neutral:!1,dataGa:"alerts::click-assistant-icon::active-alerts-table"}}})),[n,t])}})();return(0,l.useEffect)((()=>{const t=e.map((e=>{let{name:t}=e;return{name:t}}));r(t)}),[e]),l.createElement(s.Flex,{column:!0,gap:4,height:"calc(100% - 100px)",overflow:"hidden"},l.createElement($,null),a&&l.createElement(l.Suspense,{fallback:l.createElement(ae,null)},l.createElement(H,null)),!a&&t&&l.createElement(l.Suspense,{fallback:l.createElement(ae,null)},l.createElement(Q,null)),!a&&!t&&l.createElement(s.Table,{data:e,dataColumns:x,enableSorting:!0,enableColumnVisibility:!0,columnPinning:le,enableColumnPinning:!0,enableResizing:!0,rowActions:o,onClickRow:c,columnVisibility:I}))})),re=ne;var ce=a(47767),oe=a(21875);const ie=[{id:"lastStatusChange",desc:!0}],se={right:["actions"]},de=()=>{const e=(0,g.QD)({extraKey:"alerts"}),[,t]=(0,te.Ws)(),[a,n,,r]=(0,q.A)(),{rowActions:c}=(()=>{const e=(0,ce.Zp)(),t=(0,X.bq)(),a=(0,ee.ID)(),[,n]=(0,te.bg)(),r=(0,X.dg)(),[,c]=(0,oe.v7)();return{rowActions:(0,l.useMemo)((()=>r?{}:{...B.tv?{alertConfiguration:{handleAction:e=>{let{id:t}=e;c({alertId:t})},icon:"alarm_bell",tooltipText:"Alert configuration",confirmation:!1}}:{},goto:{handleAction:a=>{const{name:l,nodeId:n,instance:r}=a,c={alertName:l,instance:r,nodeId:n};e("/spaces/".concat(t,"/settings/notifications#notificationsActiveTab=1&silencingRulePrefill=").concat(JSON.stringify(c)))},tooltipText:"Add new silencing rule",icon:"alarm_off",flavour:"hollow",neutral:!1,dataGa:"alerts-table::click-link-to-manager::active-alerts-table"},info:{handleAction:e=>n({roomId:a,alert:e}),tooltipText:"Get some help from Netdata Assistant",icon:"netdataAssistant",iconColor:"primary",neutral:!1,dataGa:"alerts::click-assistant-icon::active-alerts-table"}}),[r,n])}})();return(0,l.useEffect)((()=>{t(e)}),[e]),l.createElement(l.Fragment,null,l.createElement(s.Table,{enableSorting:!0,enableColumnVisibility:!0,columnVisibility:z,data:e,dataColumns:G({openModal:n}),rowActions:c,sortBy:ie,columnPinning:se,enableColumnPinning:!0,enableResizing:!0}),a&&r)};var ue=a(21290);const me=()=>{const e=(()=>{const{localeTimeString:e,localeDateString:t}=(0,ue.$j)(),a=(0,r.s)("updatedAt");return(0,l.useMemo)((()=>{if(!a)return;const l=new Date(a);return"".concat(t(l,{long:!0})," ").concat(e(l,{secs:!0}))}),[a,e,t])})();return l.createElement(s.Flex,{column:!0,justifyContent:"center",alignItems:"center",gap:4},l.createElement(s.Icon,{name:"checkmark",width:"168px",height:"168px",margin:[13,0,0]}),l.createElement(s.H3,{margin:[10,0,0]},"This room has no active alerts, you are all good!"),l.createElement(s.Text,{margin:[2,0,0,0]},"Visit later or check your notifications"),l.createElement(s.TextSmall,{color:"textLite"},"Last updated at: ",e))},ge=(0,l.memo)(me);var he=a(68831);const fe=()=>l.createElement(s.Flex,{column:!0,justifyContent:"center",alignItems:"center",margin:[12,0,0]},l.createElement("img",{src:"".concat(he.A.assetsBaseURL,"/img/no-filter-results.png"),alt:"No Filter Results",title:"No Filter Results"}),l.createElement(s.H3,null,"There are no results for these filtering criteria")),be=(0,l.memo)(fe);var Ce=a(63314);const Ee=e=>{let{count:t}=e;const a=(0,r.s)("ids"),n=(0,r.s)("loaded"),c=(0,m.Gq)(a).length;return n?c?t?l.createElement(Ce.Ay,{feature:"AlertsActive",mode:"AlertsTable"},l.createElement(de,null)):l.createElement(Ce.Ay,{feature:"AlertsActive",mode:"NoFilterResultsIndication"},l.createElement(be,null)):l.createElement(Ce.Ay,{feature:"AlertsActive",mode:"NoAlertsIndication"},l.createElement(ge,null)):l.createElement(h.A,{title:"Loading alerts..."})},ye=()=>{const[e,t]=(0,n.L4)(o.J7),a=(0,m.ud)(),r=(0,l.useCallback)((l=>{l===e&&a(),t(l)}),[e,t]),c=(0,g.QD)({extraKey:"alerts"}).length,i=(0,m.zu)();return(0,d.nj)()&&!i.length?l.createElement(Ce.Ay,{feature:"Alerts",mode:"NoNodesView"},l.createElement(u.A,null)):l.createElement(s.Tabs,{selected:e,onChange:r,height:"100%",padding:[4,4,0]},l.createElement(s.Tab,{label:l.createElement(s.Text,null,"Active (",c,")"),maxWidth:"100%","data-testid":"alertTabs-activeAlerts"},l.createElement(Ee,{count:c})),l.createElement(s.Tab,{label:l.createElement(s.Text,null,"Alert Configurations"),maxWidth:"100%","data-testid":"alertTabs-configurations"},l.createElement(l.Suspense,{fallback:l.createElement(h.A,{title:"Loading alert configurations..."})},l.createElement(Ce.Ay,{feature:"AlertsConfiguration"},l.createElement(re,null)))))},ve=["chartIndexing","alerts","info","config"],pe=()=>{const e=(0,r.s)("ids"),t=(0,n.vc)(o.J7),a=!!e.length&&1!==t;return l.createElement(c.A,{sidebar:a&&l.createElement(i.Ay,{title:"Alerts",flavour:"alerts",loaded:!0,hasSearch:!1,hiddenTabs:ve})},l.createElement(ye,null))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js b/src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js
new file mode 100644
index 000000000..06b863a45
--- /dev/null
+++ b/src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js
@@ -0,0 +1,2 @@
+/*! For license information please see 8323.61daef62d0036dd19dbf.chunk.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3221f27c-6469-405a-b26f-8d496fa08bc1",e._sentryDebugIdIdentifier="sentry-dbid-3221f27c-6469-405a-b26f-8d496fa08bc1")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8323],{20748:(e,t,r)=>{"use strict";var n,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o=r(96540),i=(n=o)&&n.__esModule?n:{default:n};t.A=function(e){var t=e.fill,r=void 0===t?"currentColor":t,n=e.width,o=void 0===n?24:n,s=e.height,l=void 0===s?24:s,u=e.style,c=void 0===u?{}:u,d=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["fill","width","height","style"]);return i.default.createElement("svg",a({viewBox:"0 0 24 24",style:a({fill:r,width:o,height:l},c)},d),i.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}},54657:(e,t,r)=>{"use strict";var n,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o=r(96540),i=(n=o)&&n.__esModule?n:{default:n};t.A=function(e){var t=e.fill,r=void 0===t?"currentColor":t,n=e.width,o=void 0===n?24:n,s=e.height,l=void 0===s?24:s,u=e.style,c=void 0===u?{}:u,d=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["fill","width","height","style"]);return i.default.createElement("svg",a({viewBox:"0 0 24 24",style:a({fill:r,width:o,height:l},c)},d),i.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))}},32485:(e,t)=>{var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)){if(r.length){var i=a.apply(null,r);i&&e.push(i)}}else if("object"===o){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){e.push(r.toString());continue}for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},80909:(e,t,r)=>{var n=r(30641),a=r(38329)(n);e.exports=a},30641:(e,t,r)=>{var n=r(86649),a=r(95950);e.exports=function(e,t){return e&&n(e,t,a)}},28077:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},41799:(e,t,r)=>{var n=r(37217),a=r(60270);e.exports=function(e,t,r,o){var i=r.length,s=i,l=!o;if(null==e)return!s;for(e=Object(e);i--;){var u=r[i];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){var c=(u=r[i])[0],d=e[c],p=u[1];if(l&&u[2]){if(void 0===d&&!(c in e))return!1}else{var f=new n;if(o)var h=o(d,p,c,e,t,f);if(!(void 0===h?a(p,d,3,o,f):h))return!1}}return!0}},15389:(e,t,r)=>{var n=r(93663),a=r(87978),o=r(83488),i=r(56449),s=r(50583);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?i(e)?a(e[0],e[1]):n(e):s(e)}},5128:(e,t,r)=>{var n=r(80909),a=r(64894);e.exports=function(e,t){var r=-1,o=a(e)?Array(e.length):[];return n(e,(function(e,n,a){o[++r]=t(e,n,a)})),o}},93663:(e,t,r)=>{var n=r(41799),a=r(10776),o=r(67197);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},87978:(e,t,r)=>{var n=r(60270),a=r(58156),o=r(80631),i=r(28586),s=r(30756),l=r(67197),u=r(77797);e.exports=function(e,t){return i(e)&&s(t)?l(u(e),t):function(r){var i=a(r,e);return void 0===i&&i===t?o(r,e):n(t,i,3)}}},47237:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},17255:(e,t,r)=>{var n=r(47422);e.exports=function(e){return function(t){return n(t,e)}}},24066:(e,t,r)=>{var n=r(83488);e.exports=function(e){return"function"==typeof e?e:n}},38329:(e,t,r)=>{var n=r(64894);e.exports=function(e,t){return function(r,a){if(null==r)return r;if(!n(r))return e(r,a);for(var o=r.length,i=t?o:-1,s=Object(r);(t?i--:++i<o)&&!1!==a(s[i],i,s););return r}}},10776:(e,t,r)=>{var n=r(30756),a=r(95950);e.exports=function(e){for(var t=a(e),r=t.length;r--;){var o=t[r],i=e[o];t[r]=[o,i,n(i)]}return t}},49326:(e,t,r)=>{var n=r(31769),a=r(72428),o=r(56449),i=r(30361),s=r(30294),l=r(77797);e.exports=function(e,t,r){for(var u=-1,c=(t=n(t,e)).length,d=!1;++u<c;){var p=l(t[u]);if(!(d=null!=e&&r(e,p)))break;e=e[p]}return d||++u!=c?d:!!(c=null==e?0:e.length)&&s(c)&&i(p,c)&&(o(e)||a(e))}},30756:(e,t,r)=>{var n=r(23805);e.exports=function(e){return e===e&&!n(e)}},67197:e=>{e.exports=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}},88055:(e,t,r)=>{var n=r(9999);e.exports=function(e){return n(e,5)}},33215:(e,t,r)=>{var n=r(30641),a=r(24066);e.exports=function(e,t){return e&&n(e,a(t))}},80631:(e,t,r)=>{var n=r(28077),a=r(49326);e.exports=function(e,t){return null!=e&&a(e,t,n)}},85015:(e,t,r)=>{var n=r(72552),a=r(56449),o=r(40346);e.exports=function(e){return"string"==typeof e||!a(e)&&o(e)&&"[object String]"==n(e)}},55378:(e,t,r)=>{var n=r(34932),a=r(15389),o=r(5128),i=r(56449);e.exports=function(e,t){return(i(e)?n:o)(e,a(t,3))}},50583:(e,t,r)=>{var n=r(47237),a=r(17255),o=r(28586),i=r(77797);e.exports=function(e){return o(e)?n(i(e)):a(e)}},30857:()=>{},17790:(e,t,r)=>{var n=r(19852);function a(e){this.mode=n.MODE_8BIT_BYTE,this.data=e}a.prototype={getLength:function(e){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}},e.exports=a},10046:e=>{function t(){this.buffer=new Array,this.length=0}t.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var r=0;r<t;r++)this.putBit(1==(e>>>t-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},e.exports=t},41537:e=>{e.exports={L:1,M:0,Q:3,H:2}},30501:(e,t,r)=>{var n=r(39341);function a(e,t){if(void 0==e.length)throw new Error(e.length+"/"+t);for(var r=0;r<e.length&&0==e[r];)r++;this.num=new Array(e.length-r+t);for(var n=0;n<e.length-r;n++)this.num[n]=e[n+r]}a.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<e.getLength();o++)t[r+o]^=n.gexp(n.glog(this.get(r))+n.glog(e.get(o)));return new a(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=n.glog(this.get(0))-n.glog(e.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(o=0;o<e.getLength();o++)r[o]^=n.gexp(n.glog(e.get(o))+t);return new a(r,0).mod(e)}},e.exports=a},46641:(e,t,r)=>{var n=r(17790),a=r(12835),o=r(10046),i=r(38759),s=r(30501);function l(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}var u=l.prototype;u.addData=function(e){var t=new n(e);this.dataList.push(t),this.dataCache=null},u.isDark=function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},u.getModuleCount=function(){return this.moduleCount},u.make=function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var t=a.getRSBlocks(e,this.errorCorrectLevel),r=new o,n=0,s=0;s<t.length;s++)n+=t[s].dataCount;for(s=0;s<this.dataList.length;s++){var l=this.dataList[s];r.put(l.mode,4),r.put(l.getLength(),i.getLengthInBits(l.mode,e)),l.write(r)}if(r.getLengthInBits()<=8*n)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},u.makeImpl=function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=new Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++)this.modules[r][n]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=l.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},u.setupPositionProbePattern=function(e,t){for(var r=-1;r<=7;r++)if(!(e+r<=-1||this.moduleCount<=e+r))for(var n=-1;n<=7;n++)t+n<=-1||this.moduleCount<=t+n||(this.modules[e+r][t+n]=0<=r&&r<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=n&&n<=4)},u.getBestMaskPattern=function(){for(var e=0,t=0,r=0;r<8;r++){this.makeImpl(!0,r);var n=i.getLostPoint(this);(0==r||e>n)&&(e=n,t=r)}return t},u.createMovieClip=function(e,t,r){var n=e.createEmptyMovieClip(t,r);this.make();for(var a=0;a<this.modules.length;a++)for(var o=1*a,i=0;i<this.modules[a].length;i++){var s=1*i;this.modules[a][i]&&(n.beginFill(0,100),n.moveTo(s,o),n.lineTo(s+1,o),n.lineTo(s+1,o+1),n.lineTo(s,o+1),n.endFill())}return n},u.setupTimingPattern=function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(var t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)},u.setupPositionAdjustPattern=function(){for(var e=i.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var r=0;r<e.length;r++){var n=e[t],a=e[r];if(null==this.modules[n][a])for(var o=-2;o<=2;o++)for(var s=-2;s<=2;s++)this.modules[n+o][a+s]=-2==o||2==o||-2==s||2==s||0==o&&0==s}},u.setupTypeNumber=function(e){for(var t=i.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var n=!e&&1==(t>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=n}for(r=0;r<18;r++){n=!e&&1==(t>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=n}},u.setupTypeInfo=function(e,t){for(var r=this.errorCorrectLevel<<3|t,n=i.getBCHTypeInfo(r),a=0;a<15;a++){var o=!e&&1==(n>>a&1);a<6?this.modules[a][8]=o:a<8?this.modules[a+1][8]=o:this.modules[this.moduleCount-15+a][8]=o}for(a=0;a<15;a++){o=!e&&1==(n>>a&1);a<8?this.modules[8][this.moduleCount-a-1]=o:a<9?this.modules[8][15-a-1+1]=o:this.modules[8][15-a-1]=o}this.modules[this.moduleCount-8][8]=!e},u.mapData=function(e,t){for(var r=-1,n=this.moduleCount-1,a=7,o=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var l=0;l<2;l++)if(null==this.modules[n][s-l]){var u=!1;o<e.length&&(u=1==(e[o]>>>a&1)),i.getMask(t,n,s-l)&&(u=!u),this.modules[n][s-l]=u,-1==--a&&(o++,a=7)}if((n+=r)<0||this.moduleCount<=n){n-=r,r=-r;break}}},l.PAD0=236,l.PAD1=17,l.createData=function(e,t,r){for(var n=a.getRSBlocks(e,t),s=new o,u=0;u<r.length;u++){var c=r[u];s.put(c.mode,4),s.put(c.getLength(),i.getLengthInBits(c.mode,e)),c.write(s)}var d=0;for(u=0;u<n.length;u++)d+=n[u].dataCount;if(s.getLengthInBits()>8*d)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*d+")");for(s.getLengthInBits()+4<=8*d&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(!1);for(;!(s.getLengthInBits()>=8*d)&&(s.put(l.PAD0,8),!(s.getLengthInBits()>=8*d));)s.put(l.PAD1,8);return l.createBytes(s,n)},l.createBytes=function(e,t){for(var r=0,n=0,a=0,o=new Array(t.length),l=new Array(t.length),u=0;u<t.length;u++){var c=t[u].dataCount,d=t[u].totalCount-c;n=Math.max(n,c),a=Math.max(a,d),o[u]=new Array(c);for(var p=0;p<o[u].length;p++)o[u][p]=255&e.buffer[p+r];r+=c;var f=i.getErrorCorrectPolynomial(d),h=new s(o[u],f.getLength()-1).mod(f);l[u]=new Array(f.getLength()-1);for(p=0;p<l[u].length;p++){var v=p+h.getLength()-l[u].length;l[u][p]=v>=0?h.get(v):0}}var g=0;for(p=0;p<t.length;p++)g+=t[p].totalCount;var m=new Array(g),b=0;for(p=0;p<n;p++)for(u=0;u<t.length;u++)p<o[u].length&&(m[b++]=o[u][p]);for(p=0;p<a;p++)for(u=0;u<t.length;u++)p<l[u].length&&(m[b++]=l[u][p]);return m},e.exports=l},12835:(e,t,r)=>{var n=r(41537);function a(e,t){this.totalCount=e,this.dataCount=t}a.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],a.getRSBlocks=function(e,t){var r=a.getRsBlockTable(e,t);if(void 0==r)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var n=r.length/3,o=new Array,i=0;i<n;i++)for(var s=r[3*i+0],l=r[3*i+1],u=r[3*i+2],c=0;c<s;c++)o.push(new a(l,u));return o},a.getRsBlockTable=function(e,t){switch(t){case n.L:return a.RS_BLOCK_TABLE[4*(e-1)+0];case n.M:return a.RS_BLOCK_TABLE[4*(e-1)+1];case n.Q:return a.RS_BLOCK_TABLE[4*(e-1)+2];case n.H:return a.RS_BLOCK_TABLE[4*(e-1)+3];default:return}},e.exports=a},39341:e=>{for(var t={glog:function(e){if(e<1)throw new Error("glog("+e+")");return t.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},r=0;r<8;r++)t.EXP_TABLE[r]=1<<r;for(r=8;r<256;r++)t.EXP_TABLE[r]=t.EXP_TABLE[r-4]^t.EXP_TABLE[r-5]^t.EXP_TABLE[r-6]^t.EXP_TABLE[r-8];for(r=0;r<255;r++)t.LOG_TABLE[t.EXP_TABLE[r]]=r;e.exports=t},19852:e=>{e.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}},38759:(e,t,r)=>{var n=r(19852),a=r(30501),o=r(39341),i=0,s=1,l=2,u=3,c=4,d=5,p=6,f=7,h={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;h.getBCHDigit(t)-h.getBCHDigit(h.G15)>=0;)t^=h.G15<<h.getBCHDigit(t)-h.getBCHDigit(h.G15);return(e<<10|t)^h.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;h.getBCHDigit(t)-h.getBCHDigit(h.G18)>=0;)t^=h.G18<<h.getBCHDigit(t)-h.getBCHDigit(h.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return h.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,r){switch(e){case i:return(t+r)%2==0;case s:return t%2==0;case l:return r%3==0;case u:return(t+r)%3==0;case c:return(Math.floor(t/2)+Math.floor(r/3))%2==0;case d:return t*r%2+t*r%3==0;case p:return(t*r%2+t*r%3)%2==0;case f:return(t*r%3+(t+r)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new a([1],0),r=0;r<e;r++)t=t.multiply(new a([1,o.gexp(r)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case n.MODE_NUMBER:return 10;case n.MODE_ALPHA_NUM:return 9;case n.MODE_8BIT_BYTE:case n.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case n.MODE_NUMBER:return 12;case n.MODE_ALPHA_NUM:return 11;case n.MODE_8BIT_BYTE:return 16;case n.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else{if(!(t<41))throw new Error("type:"+t);switch(e){case n.MODE_NUMBER:return 14;case n.MODE_ALPHA_NUM:return 13;case n.MODE_8BIT_BYTE:return 16;case n.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),r=0,n=0;n<t;n++)for(var a=0;a<t;a++){for(var o=0,i=e.isDark(n,a),s=-1;s<=1;s++)if(!(n+s<0||t<=n+s))for(var l=-1;l<=1;l++)a+l<0||t<=a+l||0==s&&0==l||i==e.isDark(n+s,a+l)&&o++;o>5&&(r+=3+o-5)}for(n=0;n<t-1;n++)for(a=0;a<t-1;a++){var u=0;e.isDark(n,a)&&u++,e.isDark(n+1,a)&&u++,e.isDark(n,a+1)&&u++,e.isDark(n+1,a+1)&&u++,0!=u&&4!=u||(r+=3)}for(n=0;n<t;n++)for(a=0;a<t-6;a++)e.isDark(n,a)&&!e.isDark(n,a+1)&&e.isDark(n,a+2)&&e.isDark(n,a+3)&&e.isDark(n,a+4)&&!e.isDark(n,a+5)&&e.isDark(n,a+6)&&(r+=40);for(a=0;a<t;a++)for(n=0;n<t-6;n++)e.isDark(n,a)&&!e.isDark(n+1,a)&&e.isDark(n+2,a)&&e.isDark(n+3,a)&&e.isDark(n+4,a)&&!e.isDark(n+5,a)&&e.isDark(n+6,a)&&(r+=40);var c=0;for(a=0;a<t;a++)for(n=0;n<t;n++)e.isDark(n,a)&&c++;return r+=10*(Math.abs(100*c/t/t-50)/5)}};e.exports=h},65189:(e,t,r)=>{"use strict";var n=r(96540),a=r(58527),o={},i=function(e,t,r,n){var a=e+"-"+t+"-"+r+(n?"-server":"");if(o[a])return o[a];var i=function(e,t,r,n){if("undefined"===typeof document&&!n)return null;var a=n?new n:document.createElement("canvas");a.width=2*r,a.height=2*r;var o=a.getContext("2d");return o?(o.fillStyle=e,o.fillRect(0,0,a.width,a.height),o.fillStyle=t,o.fillRect(0,0,r,r),o.translate(r,r),o.fillRect(0,0,r,r),a.toDataURL()):null}(e,t,r,n);return o[a]=i,i},s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l=function(e){var t=e.white,r=e.grey,o=e.size,l=e.renderers,u=e.borderRadius,c=e.boxShadow,d=e.children,p=(0,a.Ay)({default:{grid:{borderRadius:u,boxShadow:c,absolute:"0px 0px 0px 0px",background:"url("+i(t,r,o,l.canvas)+") center left"}}});return(0,n.isValidElement)(d)?n.cloneElement(d,s({},d.props,{style:s({},d.props.style,p.grid)})):n.createElement("div",{style:p.grid})};l.defaultProps={size:8,white:"transparent",grey:"rgba(0,0,0,.08)",renderers:{}};const u=l;var c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();function p(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}const f=function(e){function t(){var e,r,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var a=arguments.length,o=Array(a),i=0;i<a;i++)o[i]=arguments[i];return r=n=p(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(o))),n.handleChange=function(e){var t=function(e,t,r,n,a){var o=a.clientWidth,i=a.clientHeight,s="number"===typeof e.pageX?e.pageX:e.touches[0].pageX,l="number"===typeof e.pageY?e.pageY:e.touches[0].pageY,u=s-(a.getBoundingClientRect().left+window.pageXOffset),c=l-(a.getBoundingClientRect().top+window.pageYOffset);if("vertical"===r){var d=void 0;if(d=c<0?0:c>i?1:Math.round(100*c/i)/100,t.a!==d)return{h:t.h,s:t.s,l:t.l,a:d,source:"rgb"}}else{var p=void 0;if(n!==(p=u<0?0:u>o?1:Math.round(100*u/o)/100))return{h:t.h,s:t.s,l:t.l,a:p,source:"rgb"}}return null}(e,n.props.hsl,n.props.direction,n.props.a,n.container);t&&"function"===typeof n.props.onChange&&n.props.onChange(t,e)},n.handleMouseDown=function(e){n.handleChange(e),window.addEventListener("mousemove",n.handleChange),window.addEventListener("mouseup",n.handleMouseUp)},n.handleMouseUp=function(){n.unbindEventListeners()},n.unbindEventListeners=function(){window.removeEventListener("mousemove",n.handleChange),window.removeEventListener("mouseup",n.handleMouseUp)},p(n,r)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"render",value:function(){var e=this,t=this.props.rgb,r=(0,a.Ay)({default:{alpha:{absolute:"0px 0px 0px 0px",borderRadius:this.props.radius},checkboard:{absolute:"0px 0px 0px 0px",overflow:"hidden",borderRadius:this.props.radius},gradient:{absolute:"0px 0px 0px 0px",background:"linear-gradient(to right, rgba("+t.r+","+t.g+","+t.b+", 0) 0%,\n rgba("+t.r+","+t.g+","+t.b+", 1) 100%)",boxShadow:this.props.shadow,borderRadius:this.props.radius},container:{position:"relative",height:"100%",margin:"0 3px"},pointer:{position:"absolute",left:100*t.a+"%"},slider:{width:"4px",borderRadius:"1px",height:"8px",boxShadow:"0 0 2px rgba(0, 0, 0, .6)",background:"#fff",marginTop:"1px",transform:"translateX(-2px)"}},vertical:{gradient:{background:"linear-gradient(to bottom, rgba("+t.r+","+t.g+","+t.b+", 0) 0%,\n rgba("+t.r+","+t.g+","+t.b+", 1) 100%)"},pointer:{left:0,top:100*t.a+"%"}},overwrite:c({},this.props.style)},{vertical:"vertical"===this.props.direction,overwrite:!0});return n.createElement("div",{style:r.alpha},n.createElement("div",{style:r.checkboard},n.createElement(u,{renderers:this.props.renderers})),n.createElement("div",{style:r.gradient}),n.createElement("div",{style:r.container,ref:function(t){return e.container=t},onMouseDown:this.handleMouseDown,onTouchMove:this.handleChange,onTouchStart:this.handleChange},n.createElement("div",{style:r.pointer},this.props.pointer?n.createElement(this.props.pointer,this.props):n.createElement("div",{style:r.slider}))))}}]),t}(n.PureComponent||n.Component);var h=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var v=[38,40],g=1;const m=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.handleBlur=function(){r.state.blurValue&&r.setState({value:r.state.blurValue,blurValue:null})},r.handleChange=function(e){r.setUpdatedValue(e.target.value,e)},r.handleKeyDown=function(e){var t,n=function(e){return Number(String(e).replace(/%/g,""))}(e.target.value);if(!isNaN(n)&&(t=e.keyCode,v.indexOf(t)>-1)){var a=r.getArrowOffset(),o=38===e.keyCode?n+a:n-a;r.setUpdatedValue(o,e)}},r.handleDrag=function(e){if(r.props.dragLabel){var t=Math.round(r.props.value+e.movementX);t>=0&&t<=r.props.dragMax&&r.props.onChange&&r.props.onChange(r.getValueObjectWithLabel(t),e)}},r.handleMouseDown=function(e){r.props.dragLabel&&(e.preventDefault(),r.handleDrag(e),window.addEventListener("mousemove",r.handleDrag),window.addEventListener("mouseup",r.handleMouseUp))},r.handleMouseUp=function(){r.unbindEventListeners()},r.unbindEventListeners=function(){window.removeEventListener("mousemove",r.handleDrag),window.removeEventListener("mouseup",r.handleMouseUp)},r.state={value:String(e.value).toUpperCase(),blurValue:String(e.value).toUpperCase()},r.inputId="rc-editable-input-"+g++,r}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),h(t,[{key:"componentDidUpdate",value:function(e,t){this.props.value===this.state.value||e.value===this.props.value&&t.value===this.state.value||(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(e){return function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},this.props.label,e)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||1}},{key:"setUpdatedValue",value:function(e,t){var r=this.props.label?this.getValueObjectWithLabel(e):e;this.props.onChange&&this.props.onChange(r,t),this.setState({value:e})}},{key:"render",value:function(){var e=this,t=(0,a.Ay)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return n.createElement("div",{style:t.wrap},n.createElement("input",{id:this.inputId,style:t.input,ref:function(t){return e.input=t},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?n.createElement("label",{htmlFor:this.inputId,style:t.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),t}(n.PureComponent||n.Component);var b=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();function y(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}const w=function(e){function t(){var e,r,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var a=arguments.length,o=Array(a),i=0;i<a;i++)o[i]=arguments[i];return r=n=y(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(o))),n.handleChange=function(e){var t=function(e,t,r,n){var a=n.clientWidth,o=n.clientHeight,i="number"===typeof e.pageX?e.pageX:e.touches[0].pageX,s="number"===typeof e.pageY?e.pageY:e.touches[0].pageY,l=i-(n.getBoundingClientRect().left+window.pageXOffset),u=s-(n.getBoundingClientRect().top+window.pageYOffset);if("vertical"===t){var c=void 0;if(c=u<0?359:u>o?0:360*(-100*u/o+100)/100,r.h!==c)return{h:c,s:r.s,l:r.l,a:r.a,source:"hsl"}}else{var d=void 0;if(d=l<0?0:l>a?359:100*l/a*360/100,r.h!==d)return{h:d,s:r.s,l:r.l,a:r.a,source:"hsl"}}return null}(e,n.props.direction,n.props.hsl,n.container);t&&"function"===typeof n.props.onChange&&n.props.onChange(t,e)},n.handleMouseDown=function(e){n.handleChange(e),window.addEventListener("mousemove",n.handleChange),window.addEventListener("mouseup",n.handleMouseUp)},n.handleMouseUp=function(){n.unbindEventListeners()},y(n,r)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),b(t,[{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"unbindEventListeners",value:function(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}},{key:"render",value:function(){var e=this,t=this.props.direction,r=void 0===t?"horizontal":t,o=(0,a.Ay)({default:{hue:{absolute:"0px 0px 0px 0px",borderRadius:this.props.radius,boxShadow:this.props.shadow},container:{padding:"0 2px",position:"relative",height:"100%",borderRadius:this.props.radius},pointer:{position:"absolute",left:100*this.props.hsl.h/360+"%"},slider:{marginTop:"1px",width:"4px",borderRadius:"1px",height:"8px",boxShadow:"0 0 2px rgba(0, 0, 0, .6)",background:"#fff",transform:"translateX(-2px)"}},vertical:{pointer:{left:"0px",top:-100*this.props.hsl.h/360+100+"%"}}},{vertical:"vertical"===r});return n.createElement("div",{style:o.hue},n.createElement("div",{className:"hue-"+r,style:o.container,ref:function(t){return e.container=t},onMouseDown:this.handleMouseDown,onTouchMove:this.handleChange,onTouchStart:this.handleChange},n.createElement("style",null,"\n .hue-horizontal {\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n\n .hue-vertical {\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n "),n.createElement("div",{style:o.pointer},this.props.pointer?n.createElement(this.props.pointer,this.props):n.createElement("div",{style:o.slider}))))}}]),t}(n.PureComponent||n.Component);var x=r(5556),k=r.n(x);const D=function(){this.__data__=[],this.size=0};const C=function(e,t){return e===t||e!==e&&t!==t};const E=function(e,t){for(var r=e.length;r--;)if(C(e[r][0],t))return r;return-1};var A=Array.prototype.splice;const S=function(e){var t=this.__data__,r=E(t,e);return!(r<0)&&(r==t.length-1?t.pop():A.call(t,r,1),--this.size,!0)};const _=function(e){var t=this.__data__,r=E(t,e);return r<0?void 0:t[r][1]};const M=function(e){return E(this.__data__,e)>-1};const T=function(e,t){var r=this.__data__,n=E(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};function O(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}O.prototype.clear=D,O.prototype.delete=S,O.prototype.get=_,O.prototype.has=M,O.prototype.set=T;const P=O;const N=function(){this.__data__=new P,this.size=0};const R=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r};const L=function(e){return this.__data__.get(e)};const F=function(e){return this.__data__.has(e)};const Y="object"==typeof global&&global&&global.Object===Object&&global;var j="object"==typeof self&&self&&self.Object===Object&&self;const B=Y||j||Function("return this")();const I=B.Symbol;var H=Object.prototype,W=H.hasOwnProperty,U=H.toString,q=I?I.toStringTag:void 0;const z=function(e){var t=W.call(e,q),r=e[q];try{e[q]=void 0;var n=!0}catch(o){}var a=U.call(e);return n&&(t?e[q]=r:delete e[q]),a};var Q=Object.prototype.toString;const K=function(e){return Q.call(e)};var G=I?I.toStringTag:void 0;const X=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":G&&G in Object(e)?z(e):K(e)};const V=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)};const $=function(e){if(!V(e))return!1;var t=X(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t};const Z=B["__core-js_shared__"];var J=function(){var e=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();const ee=function(e){return!!J&&J in e};var te=Function.prototype.toString;const re=function(e){if(null!=e){try{return te.call(e)}catch(t){}try{return e+""}catch(t){}}return""};var ne=/^\[object .+?Constructor\]$/,ae=Function.prototype,oe=Object.prototype,ie=ae.toString,se=oe.hasOwnProperty,le=RegExp("^"+ie.call(se).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const ue=function(e){return!(!V(e)||ee(e))&&($(e)?le:ne).test(re(e))};const ce=function(e,t){return null==e?void 0:e[t]};const de=function(e,t){var r=ce(e,t);return ue(r)?r:void 0};const pe=de(B,"Map");const fe=de(Object,"create");const he=function(){this.__data__=fe?fe(null):{},this.size=0};const ve=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t};var ge=Object.prototype.hasOwnProperty;const me=function(e){var t=this.__data__;if(fe){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return ge.call(t,e)?t[e]:void 0};var be=Object.prototype.hasOwnProperty;const ye=function(e){var t=this.__data__;return fe?void 0!==t[e]:be.call(t,e)};const we=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=fe&&void 0===t?"__lodash_hash_undefined__":t,this};function xe(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}xe.prototype.clear=he,xe.prototype.delete=ve,xe.prototype.get=me,xe.prototype.has=ye,xe.prototype.set=we;const ke=xe;const De=function(){this.size=0,this.__data__={hash:new ke,map:new(pe||P),string:new ke}};const Ce=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};const Ee=function(e,t){var r=e.__data__;return Ce(t)?r["string"==typeof t?"string":"hash"]:r.map};const Ae=function(e){var t=Ee(this,e).delete(e);return this.size-=t?1:0,t};const Se=function(e){return Ee(this,e).get(e)};const _e=function(e){return Ee(this,e).has(e)};const Me=function(e,t){var r=Ee(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this};function Te(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Te.prototype.clear=De,Te.prototype.delete=Ae,Te.prototype.get=Se,Te.prototype.has=_e,Te.prototype.set=Me;const Oe=Te;const Pe=function(e,t){var r=this.__data__;if(r instanceof P){var n=r.__data__;if(!pe||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Oe(n)}return r.set(e,t),this.size=r.size,this};function Ne(e){var t=this.__data__=new P(e);this.size=t.size}Ne.prototype.clear=N,Ne.prototype.delete=R,Ne.prototype.get=L,Ne.prototype.has=F,Ne.prototype.set=Pe;const Re=Ne;const Le=function(){try{var e=de(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();const Fe=function(e,t,r){"__proto__"==t&&Le?Le(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r};const Ye=function(e,t,r){(void 0!==r&&!C(e[t],r)||void 0===r&&!(t in e))&&Fe(e,t,r)};const je=function(e){return function(t,r,n){for(var a=-1,o=Object(t),i=n(t),s=i.length;s--;){var l=i[e?s:++a];if(!1===r(o[l],l,o))break}return t}}();var Be="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ie=Be&&"object"==typeof module&&module&&!module.nodeType&&module,He=Ie&&Ie.exports===Be?B.Buffer:void 0,We=He?He.allocUnsafe:void 0;const Ue=function(e,t){if(t)return e.slice();var r=e.length,n=We?We(r):new e.constructor(r);return e.copy(n),n};const qe=B.Uint8Array;const ze=function(e){var t=new e.constructor(e.byteLength);return new qe(t).set(new qe(e)),t};const Qe=function(e,t){var r=t?ze(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)};const Ke=function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t};var Ge=Object.create;const Xe=function(){function e(){}return function(t){if(!V(t))return{};if(Ge)return Ge(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();const Ve=function(e,t){return function(r){return e(t(r))}};const $e=Ve(Object.getPrototypeOf,Object);var Ze=Object.prototype;const Je=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ze)};const et=function(e){return"function"!=typeof e.constructor||Je(e)?{}:Xe($e(e))};const tt=function(e){return null!=e&&"object"==typeof e};const rt=function(e){return tt(e)&&"[object Arguments]"==X(e)};var nt=Object.prototype,at=nt.hasOwnProperty,ot=nt.propertyIsEnumerable;const it=rt(function(){return arguments}())?rt:function(e){return tt(e)&&at.call(e,"callee")&&!ot.call(e,"callee")};const st=Array.isArray;const lt=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991};const ut=function(e){return null!=e&&lt(e.length)&&!$(e)};const ct=function(e){return tt(e)&&ut(e)};const dt=function(){return!1};var pt="object"==typeof exports&&exports&&!exports.nodeType&&exports,ft=pt&&"object"==typeof module&&module&&!module.nodeType&&module,ht=ft&&ft.exports===pt?B.Buffer:void 0;const vt=(ht?ht.isBuffer:void 0)||dt;var gt=Function.prototype,mt=Object.prototype,bt=gt.toString,yt=mt.hasOwnProperty,wt=bt.call(Object);const xt=function(e){if(!tt(e)||"[object Object]"!=X(e))return!1;var t=$e(e);if(null===t)return!0;var r=yt.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&bt.call(r)==wt};var kt={};kt["[object Float32Array]"]=kt["[object Float64Array]"]=kt["[object Int8Array]"]=kt["[object Int16Array]"]=kt["[object Int32Array]"]=kt["[object Uint8Array]"]=kt["[object Uint8ClampedArray]"]=kt["[object Uint16Array]"]=kt["[object Uint32Array]"]=!0,kt["[object Arguments]"]=kt["[object Array]"]=kt["[object ArrayBuffer]"]=kt["[object Boolean]"]=kt["[object DataView]"]=kt["[object Date]"]=kt["[object Error]"]=kt["[object Function]"]=kt["[object Map]"]=kt["[object Number]"]=kt["[object Object]"]=kt["[object RegExp]"]=kt["[object Set]"]=kt["[object String]"]=kt["[object WeakMap]"]=!1;const Dt=function(e){return tt(e)&&lt(e.length)&&!!kt[X(e)]};const Ct=function(e){return function(t){return e(t)}};var Et="object"==typeof exports&&exports&&!exports.nodeType&&exports,At=Et&&"object"==typeof module&&module&&!module.nodeType&&module,St=At&&At.exports===Et&&Y.process,_t=function(){try{var e=At&&At.require&&At.require("util").types;return e||St&&St.binding&&St.binding("util")}catch(t){}}();var Mt=_t&&_t.isTypedArray;const Tt=Mt?Ct(Mt):Dt;const Ot=function(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]};var Pt=Object.prototype.hasOwnProperty;const Nt=function(e,t,r){var n=e[t];Pt.call(e,t)&&C(n,r)&&(void 0!==r||t in e)||Fe(e,t,r)};const Rt=function(e,t,r,n){var a=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var s=t[o],l=n?n(r[s],e[s],s,r,e):void 0;void 0===l&&(l=e[s]),a?Fe(r,s,l):Nt(r,s,l)}return r};const Lt=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n};var Ft=/^(?:0|[1-9]\d*)$/;const Yt=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&Ft.test(e))&&e>-1&&e%1==0&&e<t};var jt=Object.prototype.hasOwnProperty;const Bt=function(e,t){var r=st(e),n=!r&&it(e),a=!r&&!n&&vt(e),o=!r&&!n&&!a&&Tt(e),i=r||n||a||o,s=i?Lt(e.length,String):[],l=s.length;for(var u in e)!t&&!jt.call(e,u)||i&&("length"==u||a&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Yt(u,l))||s.push(u);return s};const It=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t};var Ht=Object.prototype.hasOwnProperty;const Wt=function(e){if(!V(e))return It(e);var t=Je(e),r=[];for(var n in e)("constructor"!=n||!t&&Ht.call(e,n))&&r.push(n);return r};const Ut=function(e){return ut(e)?Bt(e,!0):Wt(e)};const qt=function(e){return Rt(e,Ut(e))};const zt=function(e,t,r,n,a,o,i){var s=Ot(e,r),l=Ot(t,r),u=i.get(l);if(u)Ye(e,r,u);else{var c=o?o(s,l,r+"",e,t,i):void 0,d=void 0===c;if(d){var p=st(l),f=!p&&vt(l),h=!p&&!f&&Tt(l);c=l,p||f||h?st(s)?c=s:ct(s)?c=Ke(s):f?(d=!1,c=Ue(l,!0)):h?(d=!1,c=Qe(l,!0)):c=[]:xt(l)||it(l)?(c=s,it(s)?c=qt(s):V(s)&&!$(s)||(c=et(l))):d=!1}d&&(i.set(l,c),a(c,l,n,o,i),i.delete(l)),Ye(e,r,c)}};const Qt=function e(t,r,n,a,o){t!==r&&je(r,(function(i,s){if(o||(o=new Re),V(i))zt(t,r,s,n,e,a,o);else{var l=a?a(Ot(t,s),i,s+"",t,r,o):void 0;void 0===l&&(l=i),Ye(t,s,l)}}),Ut)};const Kt=function(e){return e};const Gt=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)};var Xt=Math.max;const Vt=function(e,t,r){return t=Xt(void 0===t?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=Xt(n.length-t,0),i=Array(o);++a<o;)i[a]=n[t+a];a=-1;for(var s=Array(t+1);++a<t;)s[a]=n[a];return s[t]=r(i),Gt(e,this,s)}};const $t=function(e){return function(){return e}};const Zt=Le?function(e,t){return Le(e,"toString",{configurable:!0,enumerable:!1,value:$t(t),writable:!0})}:Kt;var Jt=Date.now;const er=function(e){var t=0,r=0;return function(){var n=Jt(),a=16-(n-r);if(r=n,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Zt);const tr=function(e,t){return er(Vt(e,t,Kt),e+"")};const rr=function(e,t,r){if(!V(r))return!1;var n=typeof t;return!!("number"==n?ut(r)&&Yt(t,r.length):"string"==n&&t in r)&&C(r[t],e)};const nr=function(e){return tr((function(t,r){var n=-1,a=r.length,o=a>1?r[a-1]:void 0,i=a>2?r[2]:void 0;for(o=e.length>3&&"function"==typeof o?(a--,o):void 0,i&&rr(r[0],r[1],i)&&(o=a<3?void 0:o,a=1),t=Object(t);++n<a;){var s=r[n];s&&e(t,s,n,o)}return t}))}((function(e,t,r){Qt(e,t,r)}));var ar=function(e){var t=e.zDepth,r=e.radius,o=e.background,i=e.children,s=e.styles,l=void 0===s?{}:s,u=(0,a.Ay)(nr({default:{wrap:{position:"relative",display:"inline-block"},content:{position:"relative"},bg:{absolute:"0px 0px 0px 0px",boxShadow:"0 "+t+"px "+4*t+"px rgba(0,0,0,.24)",borderRadius:r,background:o}},"zDepth-0":{bg:{boxShadow:"none"}},"zDepth-1":{bg:{boxShadow:"0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)"}},"zDepth-2":{bg:{boxShadow:"0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)"}},"zDepth-3":{bg:{boxShadow:"0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)"}},"zDepth-4":{bg:{boxShadow:"0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)"}},"zDepth-5":{bg:{boxShadow:"0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)"}},square:{bg:{borderRadius:"0"}},circle:{bg:{borderRadius:"50%"}}},l),{"zDepth-1":1===t});return n.createElement("div",{style:u.wrap},n.createElement("div",{style:u.bg}),n.createElement("div",{style:u.content},i))};ar.propTypes={background:k().string,zDepth:k().oneOf([0,1,2,3,4,5]),radius:k().number,styles:k().object},ar.defaultProps={background:"#fff",zDepth:1,radius:2,styles:{}};const or=ar;const ir=function(){return B.Date.now()};var sr=/\s/;const lr=function(e){for(var t=e.length;t--&&sr.test(e.charAt(t)););return t};var ur=/^\s+/;const cr=function(e){return e?e.slice(0,lr(e)+1).replace(ur,""):e};const dr=function(e){return"symbol"==typeof e||tt(e)&&"[object Symbol]"==X(e)};var pr=/^[-+]0x[0-9a-f]+$/i,fr=/^0b[01]+$/i,hr=/^0o[0-7]+$/i,vr=parseInt;const gr=function(e){if("number"==typeof e)return e;if(dr(e))return NaN;if(V(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=V(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=cr(e);var r=fr.test(e);return r||hr.test(e)?vr(e.slice(2),r?2:8):pr.test(e)?NaN:+e};var mr=Math.max,br=Math.min;const yr=function(e,t,r){var n,a,o,i,s,l,u=0,c=!1,d=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){var r=n,o=a;return n=a=void 0,u=t,i=e.apply(o,r)}function h(e){var r=e-l;return void 0===l||r>=t||r<0||d&&e-u>=o}function v(){var e=ir();if(h(e))return g(e);s=setTimeout(v,function(e){var r=t-(e-l);return d?br(r,o-(e-u)):r}(e))}function g(e){return s=void 0,p&&n?f(e):(n=a=void 0,i)}function m(){var e=ir(),r=h(e);if(n=arguments,a=this,l=e,r){if(void 0===s)return function(e){return u=e,s=setTimeout(v,t),c?f(e):i}(l);if(d)return clearTimeout(s),s=setTimeout(v,t),f(l)}return void 0===s&&(s=setTimeout(v,t)),i}return t=gr(t)||0,V(r)&&(c=!!r.leading,o=(d="maxWait"in r)?mr(gr(r.maxWait)||0,t):o,p="trailing"in r?!!r.trailing:p),m.cancel=function(){void 0!==s&&clearTimeout(s),u=0,n=l=a=s=void 0},m.flush=function(){return void 0===s?i:g(ir())},m};const wr=function(e,t,r){var n=!0,a=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return V(r)&&(n="leading"in r?!!r.leading:n,a="trailing"in r?!!r.trailing:a),yr(e,t,{leading:n,maxWait:t,trailing:a})};var xr=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var kr=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r.handleChange=function(e){"function"===typeof r.props.onChange&&r.throttle(r.props.onChange,function(e,t,r){var n=r.getBoundingClientRect(),a=n.width,o=n.height,i="number"===typeof e.pageX?e.pageX:e.touches[0].pageX,s="number"===typeof e.pageY?e.pageY:e.touches[0].pageY,l=i-(r.getBoundingClientRect().left+window.pageXOffset),u=s-(r.getBoundingClientRect().top+window.pageYOffset);l<0?l=0:l>a&&(l=a),u<0?u=0:u>o&&(u=o);var c=l/a,d=1-u/o;return{h:t.h,s:c,v:d,a:t.a,source:"hsv"}}(e,r.props.hsl,r.container),e)},r.handleMouseDown=function(e){r.handleChange(e);var t=r.getContainerRenderWindow();t.addEventListener("mousemove",r.handleChange),t.addEventListener("mouseup",r.handleMouseUp)},r.handleMouseUp=function(){r.unbindEventListeners()},r.throttle=wr((function(e,t,r){e(t,r)}),50),r}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),xr(t,[{key:"componentWillUnmount",value:function(){this.throttle.cancel(),this.unbindEventListeners()}},{key:"getContainerRenderWindow",value:function(){for(var e=this.container,t=window;!t.document.contains(e)&&t.parent!==t;)t=t.parent;return t}},{key:"unbindEventListeners",value:function(){var e=this.getContainerRenderWindow();e.removeEventListener("mousemove",this.handleChange),e.removeEventListener("mouseup",this.handleMouseUp)}},{key:"render",value:function(){var e=this,t=this.props.style||{},r=t.color,o=t.white,i=t.black,s=t.pointer,l=t.circle,u=(0,a.Ay)({default:{color:{absolute:"0px 0px 0px 0px",background:"hsl("+this.props.hsl.h+",100%, 50%)",borderRadius:this.props.radius},white:{absolute:"0px 0px 0px 0px",borderRadius:this.props.radius},black:{absolute:"0px 0px 0px 0px",boxShadow:this.props.shadow,borderRadius:this.props.radius},pointer:{position:"absolute",top:-100*this.props.hsv.v+100+"%",left:100*this.props.hsv.s+"%",cursor:"default"},circle:{width:"4px",height:"4px",boxShadow:"0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\n 0 0 1px 2px rgba(0,0,0,.4)",borderRadius:"50%",cursor:"hand",transform:"translate(-2px, -2px)"}},custom:{color:r,white:o,black:i,pointer:s,circle:l}},{custom:!!this.props.style});return n.createElement("div",{style:u.color,ref:function(t){return e.container=t},onMouseDown:this.handleMouseDown,onTouchMove:this.handleChange,onTouchStart:this.handleChange},n.createElement("style",null,"\n .saturation-white {\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\n }\n .saturation-black {\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\n }\n "),n.createElement("div",{style:u.white,className:"saturation-white"},n.createElement("div",{style:u.black,className:"saturation-black"}),n.createElement("div",{style:u.pointer},this.props.pointer?n.createElement(this.props.pointer,this.props):n.createElement("div",{style:u.circle}))))}}]),t}(n.PureComponent||n.Component);const Dr=kr;const Cr=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e};const Er=Ve(Object.keys,Object);var Ar=Object.prototype.hasOwnProperty;const Sr=function(e){if(!Je(e))return Er(e);var t=[];for(var r in Object(e))Ar.call(e,r)&&"constructor"!=r&&t.push(r);return t};const _r=function(e){return ut(e)?Bt(e):Sr(e)};const Mr=function(e,t){return function(r,n){if(null==r)return r;if(!ut(r))return e(r,n);for(var a=r.length,o=t?a:-1,i=Object(r);(t?o--:++o<a)&&!1!==n(i[o],o,i););return r}}((function(e,t){return e&&je(e,t,_r)}));const Tr=function(e){return"function"==typeof e?e:Kt};const Or=function(e,t){return(st(e)?Cr:Mr)(e,Tr(t))};function Pr(e){return Pr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pr(e)}var Nr=/^\s+/,Rr=/\s+$/;function Lr(e,t){if(t=t||{},(e=e||"")instanceof Lr)return e;if(!(this instanceof Lr))return new Lr(e,t);var r=function(e){var t={r:0,g:0,b:0},r=1,n=null,a=null,o=null,i=!1,s=!1;"string"==typeof e&&(e=function(e){e=e.replace(Nr,"").replace(Rr,"").toLowerCase();var t,r=!1;if(Zr[e])e=Zr[e],r=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=un.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=un.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=un.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=un.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=un.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=un.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=un.hex8.exec(e))return{r:nn(t[1]),g:nn(t[2]),b:nn(t[3]),a:ln(t[4]),format:r?"name":"hex8"};if(t=un.hex6.exec(e))return{r:nn(t[1]),g:nn(t[2]),b:nn(t[3]),format:r?"name":"hex"};if(t=un.hex4.exec(e))return{r:nn(t[1]+""+t[1]),g:nn(t[2]+""+t[2]),b:nn(t[3]+""+t[3]),a:ln(t[4]+""+t[4]),format:r?"name":"hex8"};if(t=un.hex3.exec(e))return{r:nn(t[1]+""+t[1]),g:nn(t[2]+""+t[2]),b:nn(t[3]+""+t[3]),format:r?"name":"hex"};return!1}(e));"object"==Pr(e)&&(cn(e.r)&&cn(e.g)&&cn(e.b)?(l=e.r,u=e.g,c=e.b,t={r:255*tn(l,255),g:255*tn(u,255),b:255*tn(c,255)},i=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):cn(e.h)&&cn(e.s)&&cn(e.v)?(n=on(e.s),a=on(e.v),t=function(e,t,r){e=6*tn(e,360),t=tn(t,100),r=tn(r,100);var n=Math.floor(e),a=e-n,o=r*(1-t),i=r*(1-a*t),s=r*(1-(1-a)*t),l=n%6,u=[r,i,o,o,s,r][l],c=[s,r,r,i,o,o][l],d=[o,o,s,r,r,i][l];return{r:255*u,g:255*c,b:255*d}}(e.h,n,a),i=!0,s="hsv"):cn(e.h)&&cn(e.s)&&cn(e.l)&&(n=on(e.s),o=on(e.l),t=function(e,t,r){var n,a,o;function i(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e}if(e=tn(e,360),t=tn(t,100),r=tn(r,100),0===t)n=a=o=r;else{var s=r<.5?r*(1+t):r+t-r*t,l=2*r-s;n=i(l,s,e+1/3),a=i(l,s,e),o=i(l,s,e-1/3)}return{r:255*n,g:255*a,b:255*o}}(e.h,n,o),i=!0,s="hsl"),e.hasOwnProperty("a")&&(r=e.a));var l,u,c;return r=en(r),{ok:i,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||r.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=r.ok}function Fr(e,t,r){e=tn(e,255),t=tn(t,255),r=tn(r,255);var n,a,o=Math.max(e,t,r),i=Math.min(e,t,r),s=(o+i)/2;if(o==i)n=a=0;else{var l=o-i;switch(a=s>.5?l/(2-o-i):l/(o+i),o){case e:n=(t-r)/l+(t<r?6:0);break;case t:n=(r-e)/l+2;break;case r:n=(e-t)/l+4}n/=6}return{h:n,s:a,l:s}}function Yr(e,t,r){e=tn(e,255),t=tn(t,255),r=tn(r,255);var n,a,o=Math.max(e,t,r),i=Math.min(e,t,r),s=o,l=o-i;if(a=0===o?0:l/o,o==i)n=0;else{switch(o){case e:n=(t-r)/l+(t<r?6:0);break;case t:n=(r-e)/l+2;break;case r:n=(e-t)/l+4}n/=6}return{h:n,s:a,v:s}}function jr(e,t,r,n){var a=[an(Math.round(e).toString(16)),an(Math.round(t).toString(16)),an(Math.round(r).toString(16))];return n&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function Br(e,t,r,n){return[an(sn(n)),an(Math.round(e).toString(16)),an(Math.round(t).toString(16)),an(Math.round(r).toString(16))].join("")}function Ir(e,t){t=0===t?0:t||10;var r=Lr(e).toHsl();return r.s-=t/100,r.s=rn(r.s),Lr(r)}function Hr(e,t){t=0===t?0:t||10;var r=Lr(e).toHsl();return r.s+=t/100,r.s=rn(r.s),Lr(r)}function Wr(e){return Lr(e).desaturate(100)}function Ur(e,t){t=0===t?0:t||10;var r=Lr(e).toHsl();return r.l+=t/100,r.l=rn(r.l),Lr(r)}function qr(e,t){t=0===t?0:t||10;var r=Lr(e).toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(-t/100*255))),r.g=Math.max(0,Math.min(255,r.g-Math.round(-t/100*255))),r.b=Math.max(0,Math.min(255,r.b-Math.round(-t/100*255))),Lr(r)}function zr(e,t){t=0===t?0:t||10;var r=Lr(e).toHsl();return r.l-=t/100,r.l=rn(r.l),Lr(r)}function Qr(e,t){var r=Lr(e).toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,Lr(r)}function Kr(e){var t=Lr(e).toHsl();return t.h=(t.h+180)%360,Lr(t)}function Gr(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var r=Lr(e).toHsl(),n=[Lr(e)],a=360/t,o=1;o<t;o++)n.push(Lr({h:(r.h+o*a)%360,s:r.s,l:r.l}));return n}function Xr(e){var t=Lr(e).toHsl(),r=t.h;return[Lr(e),Lr({h:(r+72)%360,s:t.s,l:t.l}),Lr({h:(r+216)%360,s:t.s,l:t.l})]}function Vr(e,t,r){t=t||6,r=r||30;var n=Lr(e).toHsl(),a=360/r,o=[Lr(e)];for(n.h=(n.h-(a*t>>1)+720)%360;--t;)n.h=(n.h+a)%360,o.push(Lr(n));return o}function $r(e,t){t=t||6;for(var r=Lr(e).toHsv(),n=r.h,a=r.s,o=r.v,i=[],s=1/t;t--;)i.push(Lr({h:n,s:a,v:o})),o=(o+s)%1;return i}Lr.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,r,n=this.toRgb();return e=n.r/255,t=n.g/255,r=n.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))},setAlpha:function(e){return this._a=en(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=Yr(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=Yr(this._r,this._g,this._b),t=Math.round(360*e.h),r=Math.round(100*e.s),n=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+r+"%, "+n+"%)":"hsva("+t+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var e=Fr(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=Fr(this._r,this._g,this._b),t=Math.round(360*e.h),r=Math.round(100*e.s),n=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+r+"%, "+n+"%)":"hsla("+t+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(e){return jr(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,r,n,a){var o=[an(Math.round(e).toString(16)),an(Math.round(t).toString(16)),an(Math.round(r).toString(16)),an(sn(n))];if(a&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*tn(this._r,255))+"%",g:Math.round(100*tn(this._g,255))+"%",b:Math.round(100*tn(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*tn(this._r,255))+"%, "+Math.round(100*tn(this._g,255))+"%, "+Math.round(100*tn(this._b,255))+"%)":"rgba("+Math.round(100*tn(this._r,255))+"%, "+Math.round(100*tn(this._g,255))+"%, "+Math.round(100*tn(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(Jr[jr(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+Br(this._r,this._g,this._b,this._a),r=t,n=this._gradientType?"GradientType = 1, ":"";if(e){var a=Lr(e);r="#"+Br(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+t+",endColorstr="+r+")"},toString:function(e){var t=!!e;e=e||this._format;var r=!1,n=this._a<1&&this._a>=0;return t||!n||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(r=this.toRgbString()),"prgb"===e&&(r=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(r=this.toHexString()),"hex3"===e&&(r=this.toHexString(!0)),"hex4"===e&&(r=this.toHex8String(!0)),"hex8"===e&&(r=this.toHex8String()),"name"===e&&(r=this.toName()),"hsl"===e&&(r=this.toHslString()),"hsv"===e&&(r=this.toHsvString()),r||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Lr(this.toString())},_applyModification:function(e,t){var r=e.apply(null,[this].concat([].slice.call(t)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(Ur,arguments)},brighten:function(){return this._applyModification(qr,arguments)},darken:function(){return this._applyModification(zr,arguments)},desaturate:function(){return this._applyModification(Ir,arguments)},saturate:function(){return this._applyModification(Hr,arguments)},greyscale:function(){return this._applyModification(Wr,arguments)},spin:function(){return this._applyModification(Qr,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(Vr,arguments)},complement:function(){return this._applyCombination(Kr,arguments)},monochromatic:function(){return this._applyCombination($r,arguments)},splitcomplement:function(){return this._applyCombination(Xr,arguments)},triad:function(){return this._applyCombination(Gr,[3])},tetrad:function(){return this._applyCombination(Gr,[4])}},Lr.fromRatio=function(e,t){if("object"==Pr(e)){var r={};for(var n in e)e.hasOwnProperty(n)&&(r[n]="a"===n?e[n]:on(e[n]));e=r}return Lr(e,t)},Lr.equals=function(e,t){return!(!e||!t)&&Lr(e).toRgbString()==Lr(t).toRgbString()},Lr.random=function(){return Lr.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Lr.mix=function(e,t,r){r=0===r?0:r||50;var n=Lr(e).toRgb(),a=Lr(t).toRgb(),o=r/100;return Lr({r:(a.r-n.r)*o+n.r,g:(a.g-n.g)*o+n.g,b:(a.b-n.b)*o+n.b,a:(a.a-n.a)*o+n.a})},Lr.readability=function(e,t){var r=Lr(e),n=Lr(t);return(Math.max(r.getLuminance(),n.getLuminance())+.05)/(Math.min(r.getLuminance(),n.getLuminance())+.05)},Lr.isReadable=function(e,t,r){var n,a,o=Lr.readability(e,t);switch(a=!1,(n=function(e){var t,r;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==r&&"large"!==r&&(r="small");return{level:t,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7}return a},Lr.mostReadable=function(e,t,r){var n,a,o,i,s=null,l=0;a=(r=r||{}).includeFallbackColors,o=r.level,i=r.size;for(var u=0;u<t.length;u++)(n=Lr.readability(e,t[u]))>l&&(l=n,s=Lr(t[u]));return Lr.isReadable(e,s,{level:o,size:i})||!a?s:(r.includeFallbackColors=!1,Lr.mostReadable(e,["#fff","#000"],r))};var Zr=Lr.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Jr=Lr.hexNames=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[e[r]]=r);return t}(Zr);function en(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function tn(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var r=function(e){return"string"===typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function rn(e){return Math.min(1,Math.max(0,e))}function nn(e){return parseInt(e,16)}function an(e){return 1==e.length?"0"+e:""+e}function on(e){return e<=1&&(e=100*e+"%"),e}function sn(e){return Math.round(255*parseFloat(e)).toString(16)}function ln(e){return nn(e)/255}var un=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",r="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function cn(e){return!!un.CSS_UNIT.exec(e)}var dn=function(e){var t=0,r=0;return Or(["r","g","b","a","h","s","l","v"],(function(n){if(e[n]&&(t+=1,isNaN(e[n])||(r+=1),"s"===n||"l"===n)){/^\d+%$/.test(e[n])&&(r+=1)}})),t===r&&e},pn=function(e,t){var r=e.hex?Lr(e.hex):Lr(e),n=r.toHsl(),a=r.toHsv(),o=r.toRgb(),i=r.toHex();return 0===n.s&&(n.h=t||0,a.h=t||0),{hsl:n,hex:"000000"===i&&0===o.a?"transparent":"#"+i,rgb:o,hsv:a,oldHue:e.h||t||n.h,source:e.source}},fn=function(e){if("transparent"===e)return!0;var t="#"===String(e).charAt(0)?1:0;return e.length!==4+t&&e.length<7+t&&Lr(e).isValid()},hn=function(e){if(!e)return"#fff";var t=pn(e);return"transparent"===t.hex?"rgba(0,0,0,0.4)":(299*t.rgb.r+587*t.rgb.g+114*t.rgb.b)/1e3>=128?"#000":"#fff"},vn=function(e,t){return Lr(t+" ("+e.replace("\xb0","")+")")._ok},gn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mn=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();const bn=function(e){var t=function(t){function r(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r);var t=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(r.__proto__||Object.getPrototypeOf(r)).call(this));return t.handleChange=function(e,r){if(dn(e)){var n=pn(e,e.h||t.state.oldHue);t.setState(n),t.props.onChangeComplete&&t.debounce(t.props.onChangeComplete,n,r),t.props.onChange&&t.props.onChange(n,r)}},t.handleSwatchHover=function(e,r){if(dn(e)){var n=pn(e,e.h||t.state.oldHue);t.props.onSwatchHover&&t.props.onSwatchHover(n,r)}},t.state=gn({},pn(e.color,0)),t.debounce=yr((function(e,t,r){e(t,r)}),100),t}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(r,t),mn(r,[{key:"render",value:function(){var t={};return this.props.onSwatchHover&&(t.onSwatchHover=this.handleSwatchHover),n.createElement(e,gn({},this.props,this.state,{onChange:this.handleChange},t))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return gn({},pn(e.color,t.oldHue))}}]),r}(n.PureComponent||n.Component);return t.propTypes=gn({},e.propTypes),t.defaultProps=gn({},e.defaultProps,{color:{h:250,s:.5,l:.2,a:1}}),t};var yn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wn=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();function xn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}var kn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};const Dn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function a(){var e,t,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a);for(var n=arguments.length,o=Array(n),i=0;i<n;i++)o[i]=arguments[i];return t=r=xn(this,(e=a.__proto__||Object.getPrototypeOf(a)).call.apply(e,[this].concat(o))),r.state={focus:!1},r.handleFocus=function(){return r.setState({focus:!0})},r.handleBlur=function(){return r.setState({focus:!1})},xn(r,t)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(a,r),wn(a,[{key:"render",value:function(){return n.createElement(t,{onFocus:this.handleFocus,onBlur:this.handleBlur},n.createElement(e,yn({},this.props,this.state)))}}]),a}(n.Component)}((function(e){var t=e.color,r=e.style,o=e.onClick,i=void 0===o?function(){}:o,s=e.onHover,l=e.title,c=void 0===l?t:l,d=e.children,p=e.focus,f=e.focusStyle,h=void 0===f?{}:f,v="transparent"===t,g=(0,a.Ay)({default:{swatch:kn({background:t,height:"100%",width:"100%",cursor:"pointer",position:"relative",outline:"none"},r,p?h:{})}}),m={};return s&&(m.onMouseOver=function(e){return s(t,e)}),n.createElement("div",kn({style:g.swatch,onClick:function(e){return i(t,e)},title:c,tabIndex:0,onKeyDown:function(e){return 13===e.keyCode&&i(t,e)}},m),d,v&&n.createElement(u,{borderRadius:g.swatch.borderRadius,boxShadow:"inset 0 0 0 1px rgba(0,0,0,0.1)"}))}));const Cn=function(e){var t=e.direction,r=(0,a.Ay)({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:"vertical"===t});return n.createElement("div",{style:r.picker})};var En=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},An=function(e){var t=e.rgb,r=e.hsl,o=e.width,i=e.height,s=e.onChange,l=e.direction,u=e.style,c=e.renderers,d=e.pointer,p=e.className,h=void 0===p?"":p,v=(0,a.Ay)({default:{picker:{position:"relative",width:o,height:i},alpha:{radius:"2px",style:u}}});return n.createElement("div",{style:v.picker,className:"alpha-picker "+h},n.createElement(f,En({},v.alpha,{rgb:t,hsl:r,pointer:d,renderers:c,onChange:s,direction:l})))};An.defaultProps={width:"316px",height:"16px",direction:"horizontal",pointer:Cn};bn(An);const Sn=function(e,t){for(var r=-1,n=null==e?0:e.length,a=Array(n);++r<n;)a[r]=t(e[r],r,e);return a};const _n=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this};const Mn=function(e){return this.__data__.has(e)};function Tn(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new Oe;++t<r;)this.add(e[t])}Tn.prototype.add=Tn.prototype.push=_n,Tn.prototype.has=Mn;const On=Tn;const Pn=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1};const Nn=function(e,t){return e.has(t)};const Rn=function(e,t,r,n,a,o){var i=1&r,s=e.length,l=t.length;if(s!=l&&!(i&&l>s))return!1;var u=o.get(e),c=o.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&r?new On:void 0;for(o.set(e,t),o.set(t,e);++d<s;){var h=e[d],v=t[d];if(n)var g=i?n(v,h,d,t,e,o):n(h,v,d,e,t,o);if(void 0!==g){if(g)continue;p=!1;break}if(f){if(!Pn(t,(function(e,t){if(!Nn(f,t)&&(h===e||a(h,e,r,n,o)))return f.push(t)}))){p=!1;break}}else if(h!==v&&!a(h,v,r,n,o)){p=!1;break}}return o.delete(e),o.delete(t),p};const Ln=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r};const Fn=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r};var Yn=I?I.prototype:void 0,jn=Yn?Yn.valueOf:void 0;const Bn=function(e,t,r,n,a,o,i){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!o(new qe(e),new qe(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return C(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var s=Ln;case"[object Set]":var l=1&n;if(s||(s=Fn),e.size!=t.size&&!l)return!1;var u=i.get(e);if(u)return u==t;n|=2,i.set(e,t);var c=Rn(s(e),s(t),n,a,o,i);return i.delete(e),c;case"[object Symbol]":if(jn)return jn.call(e)==jn.call(t)}return!1};const In=function(e,t){for(var r=-1,n=t.length,a=e.length;++r<n;)e[a+r]=t[r];return e};const Hn=function(e,t,r){var n=t(e);return st(e)?n:In(n,r(e))};const Wn=function(e,t){for(var r=-1,n=null==e?0:e.length,a=0,o=[];++r<n;){var i=e[r];t(i,r,e)&&(o[a++]=i)}return o};const Un=function(){return[]};var qn=Object.prototype.propertyIsEnumerable,zn=Object.getOwnPropertySymbols;const Qn=zn?function(e){return null==e?[]:(e=Object(e),Wn(zn(e),(function(t){return qn.call(e,t)})))}:Un;const Kn=function(e){return Hn(e,_r,Qn)};var Gn=Object.prototype.hasOwnProperty;const Xn=function(e,t,r,n,a,o){var i=1&r,s=Kn(e),l=s.length;if(l!=Kn(t).length&&!i)return!1;for(var u=l;u--;){var c=s[u];if(!(i?c in t:Gn.call(t,c)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var f=!0;o.set(e,t),o.set(t,e);for(var h=i;++u<l;){var v=e[c=s[u]],g=t[c];if(n)var m=i?n(g,v,c,t,e,o):n(v,g,c,e,t,o);if(!(void 0===m?v===g||a(v,g,r,n,o):m)){f=!1;break}h||(h="constructor"==c)}if(f&&!h){var b=e.constructor,y=t.constructor;b==y||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof y&&y instanceof y||(f=!1)}return o.delete(e),o.delete(t),f};const Vn=de(B,"DataView");const $n=de(B,"Promise");const Zn=de(B,"Set");const Jn=de(B,"WeakMap");var ea="[object Map]",ta="[object Promise]",ra="[object Set]",na="[object WeakMap]",aa="[object DataView]",oa=re(Vn),ia=re(pe),sa=re($n),la=re(Zn),ua=re(Jn),ca=X;(Vn&&ca(new Vn(new ArrayBuffer(1)))!=aa||pe&&ca(new pe)!=ea||$n&&ca($n.resolve())!=ta||Zn&&ca(new Zn)!=ra||Jn&&ca(new Jn)!=na)&&(ca=function(e){var t=X(e),r="[object Object]"==t?e.constructor:void 0,n=r?re(r):"";if(n)switch(n){case oa:return aa;case ia:return ea;case sa:return ta;case la:return ra;case ua:return na}return t});const da=ca;var pa="[object Arguments]",fa="[object Array]",ha="[object Object]",va=Object.prototype.hasOwnProperty;const ga=function(e,t,r,n,a,o){var i=st(e),s=st(t),l=i?fa:da(e),u=s?fa:da(t),c=(l=l==pa?ha:l)==ha,d=(u=u==pa?ha:u)==ha,p=l==u;if(p&&vt(e)){if(!vt(t))return!1;i=!0,c=!1}if(p&&!c)return o||(o=new Re),i||Tt(e)?Rn(e,t,r,n,a,o):Bn(e,t,l,r,n,a,o);if(!(1&r)){var f=c&&va.call(e,"__wrapped__"),h=d&&va.call(t,"__wrapped__");if(f||h){var v=f?e.value():e,g=h?t.value():t;return o||(o=new Re),a(v,g,r,n,o)}}return!!p&&(o||(o=new Re),Xn(e,t,r,n,a,o))};const ma=function e(t,r,n,a,o){return t===r||(null==t||null==r||!tt(t)&&!tt(r)?t!==t&&r!==r:ga(t,r,n,a,e,o))};const ba=function(e,t,r,n){var a=r.length,o=a,i=!n;if(null==e)return!o;for(e=Object(e);a--;){var s=r[a];if(i&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++a<o;){var l=(s=r[a])[0],u=e[l],c=s[1];if(i&&s[2]){if(void 0===u&&!(l in e))return!1}else{var d=new Re;if(n)var p=n(u,c,l,e,t,d);if(!(void 0===p?ma(c,u,3,n,d):p))return!1}}return!0};const ya=function(e){return e===e&&!V(e)};const wa=function(e){for(var t=_r(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,ya(a)]}return t};const xa=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}};const ka=function(e){var t=wa(e);return 1==t.length&&t[0][2]?xa(t[0][0],t[0][1]):function(r){return r===e||ba(r,e,t)}};var Da=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ca=/^\w*$/;const Ea=function(e,t){if(st(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!dr(e))||(Ca.test(e)||!Da.test(e)||null!=t&&e in Object(t))};function Aa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,a=t?t.apply(this,n):n[0],o=r.cache;if(o.has(a))return o.get(a);var i=e.apply(this,n);return r.cache=o.set(a,i)||o,i};return r.cache=new(Aa.Cache||Oe),r}Aa.Cache=Oe;const Sa=Aa;var _a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ma=/\\(\\)?/g;const Ta=function(e){var t=Sa(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(_a,(function(e,r,n,a){t.push(n?a.replace(Ma,"$1"):r||e)})),t}));var Oa=I?I.prototype:void 0,Pa=Oa?Oa.toString:void 0;const Na=function e(t){if("string"==typeof t)return t;if(st(t))return Sn(t,e)+"";if(dr(t))return Pa?Pa.call(t):"";var r=t+"";return"0"==r&&1/t==-Infinity?"-0":r};const Ra=function(e){return null==e?"":Na(e)};const La=function(e,t){return st(e)?e:Ea(e,t)?[e]:Ta(Ra(e))};const Fa=function(e){if("string"==typeof e||dr(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t};const Ya=function(e,t){for(var r=0,n=(t=La(t,e)).length;null!=e&&r<n;)e=e[Fa(t[r++])];return r&&r==n?e:void 0};const ja=function(e,t,r){var n=null==e?void 0:Ya(e,t);return void 0===n?r:n};const Ba=function(e,t){return null!=e&&t in Object(e)};const Ia=function(e,t,r){for(var n=-1,a=(t=La(t,e)).length,o=!1;++n<a;){var i=Fa(t[n]);if(!(o=null!=e&&r(e,i)))break;e=e[i]}return o||++n!=a?o:!!(a=null==e?0:e.length)&&lt(a)&&Yt(i,a)&&(st(e)||it(e))};const Ha=function(e,t){return null!=e&&Ia(e,t,Ba)};const Wa=function(e,t){return Ea(e)&&ya(t)?xa(Fa(e),t):function(r){var n=ja(r,e);return void 0===n&&n===t?Ha(r,e):ma(t,n,3)}};const Ua=function(e){return function(t){return null==t?void 0:t[e]}};const qa=function(e){return function(t){return Ya(t,e)}};const za=function(e){return Ea(e)?Ua(Fa(e)):qa(e)};const Qa=function(e){return"function"==typeof e?e:null==e?Kt:"object"==typeof e?st(e)?Wa(e[0],e[1]):ka(e):za(e)};const Ka=function(e,t){var r=-1,n=ut(e)?Array(e.length):[];return Mr(e,(function(e,a,o){n[++r]=t(e,a,o)})),n};const Ga=function(e,t){return(st(e)?Sn:Ka)(e,Qa(t,3))};const Xa=function(e){var t=e.colors,r=e.onClick,o=e.onSwatchHover,i=(0,a.Ay)({default:{swatches:{marginRight:"-10px"},swatch:{width:"22px",height:"22px",float:"left",marginRight:"10px",marginBottom:"10px",borderRadius:"4px"},clear:{clear:"both"}}});return n.createElement("div",{style:i.swatches},Ga(t,(function(e){return n.createElement(Dn,{key:e,color:e,style:i.swatch,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+e}})})),n.createElement("div",{style:i.clear}))};var Va=function(e){var t=e.onChange,r=e.onSwatchHover,o=e.hex,i=e.colors,s=e.width,l=e.triangle,c=e.styles,d=void 0===c?{}:c,p=e.className,f=void 0===p?"":p,h="transparent"===o,v=function(e,r){fn(e)&&t({hex:e,source:"hex"},r)},g=(0,a.Ay)(nr({default:{card:{width:s,background:"#fff",boxShadow:"0 1px rgba(0,0,0,.1)",borderRadius:"6px",position:"relative"},head:{height:"110px",background:o,borderRadius:"6px 6px 0 0",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},body:{padding:"10px"},label:{fontSize:"18px",color:hn(o),position:"relative"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 10px 10px 10px",borderColor:"transparent transparent "+o+" transparent",position:"absolute",top:"-10px",left:"50%",marginLeft:"-10px"},input:{width:"100%",fontSize:"12px",color:"#666",border:"0px",outline:"none",height:"22px",boxShadow:"inset 0 0 0 1px #ddd",borderRadius:"4px",padding:"0 7px",boxSizing:"border-box"}},"hide-triangle":{triangle:{display:"none"}}},d),{"hide-triangle":"hide"===l});return n.createElement("div",{style:g.card,className:"block-picker "+f},n.createElement("div",{style:g.triangle}),n.createElement("div",{style:g.head},h&&n.createElement(u,{borderRadius:"6px 6px 0 0"}),n.createElement("div",{style:g.label},o)),n.createElement("div",{style:g.body},n.createElement(Xa,{colors:i,onClick:v,onSwatchHover:r}),n.createElement(m,{style:{input:g.input},value:o,onChange:v})))};Va.propTypes={width:k().oneOfType([k().string,k().number]),colors:k().arrayOf(k().string),triangle:k().oneOf(["top","hide"]),styles:k().object},Va.defaultProps={width:170,colors:["#D9E3F0","#F47373","#697689","#37D67A","#2CCCE4","#555555","#dce775","#ff8a65","#ba68c8"],triangle:"top",styles:{}};bn(Va);var $a={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",a100:"#ff8a80",a200:"#ff5252",a400:"#ff1744",a700:"#d50000"},Za={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",a100:"#ff80ab",a200:"#ff4081",a400:"#f50057",a700:"#c51162"},Ja={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",a100:"#ea80fc",a200:"#e040fb",a400:"#d500f9",a700:"#aa00ff"},eo={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",a100:"#b388ff",a200:"#7c4dff",a400:"#651fff",a700:"#6200ea"},to={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",a100:"#8c9eff",a200:"#536dfe",a400:"#3d5afe",a700:"#304ffe"},ro={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",a100:"#82b1ff",a200:"#448aff",a400:"#2979ff",a700:"#2962ff"},no={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",a100:"#80d8ff",a200:"#40c4ff",a400:"#00b0ff",a700:"#0091ea"},ao={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",a100:"#84ffff",a200:"#18ffff",a400:"#00e5ff",a700:"#00b8d4"},oo={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",a100:"#a7ffeb",a200:"#64ffda",a400:"#1de9b6",a700:"#00bfa5"},io={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",a100:"#b9f6ca",a200:"#69f0ae",a400:"#00e676",a700:"#00c853"},so={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",a100:"#ccff90",a200:"#b2ff59",a400:"#76ff03",a700:"#64dd17"},lo={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",a100:"#f4ff81",a200:"#eeff41",a400:"#c6ff00",a700:"#aeea00"},uo={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",a100:"#ffff8d",a200:"#ffff00",a400:"#ffea00",a700:"#ffd600"},co={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",a100:"#ffe57f",a200:"#ffd740",a400:"#ffc400",a700:"#ffab00"},po={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",a100:"#ffd180",a200:"#ffab40",a400:"#ff9100",a700:"#ff6d00"},fo={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",a100:"#ff9e80",a200:"#ff6e40",a400:"#ff3d00",a700:"#dd2c00"},ho={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723"},vo={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238"};var go=function(e){var t=e.color,r=e.onClick,o=e.onSwatchHover,i=e.hover,s=e.active,l=e.circleSize,u=e.circleSpacing,c=(0,a.Ay)({default:{swatch:{width:l,height:l,marginRight:u,marginBottom:u,transform:"scale(1)",transition:"100ms transform ease"},Swatch:{borderRadius:"50%",background:"transparent",boxShadow:"inset 0 0 0 "+(l/2+1)+"px "+t,transition:"100ms box-shadow ease"}},hover:{swatch:{transform:"scale(1.2)"}},active:{Swatch:{boxShadow:"inset 0 0 0 3px "+t}}},{hover:i,active:s});return n.createElement("div",{style:c.swatch},n.createElement(Dn,{style:c.Swatch,color:t,onClick:r,onHover:o,focusStyle:{boxShadow:c.Swatch.boxShadow+", 0 0 5px "+t}}))};go.defaultProps={circleSize:28,circleSpacing:14};const mo=(0,a.H8)(go);var bo=function(e){var t=e.width,r=e.onChange,o=e.onSwatchHover,i=e.colors,s=e.hex,l=e.circleSize,u=e.styles,c=void 0===u?{}:u,d=e.circleSpacing,p=e.className,f=void 0===p?"":p,h=(0,a.Ay)(nr({default:{card:{width:t,display:"flex",flexWrap:"wrap",marginRight:-d,marginBottom:-d}}},c)),v=function(e,t){return r({hex:e,source:"hex"},t)};return n.createElement("div",{style:h.card,className:"circle-picker "+f},Ga(i,(function(e){return n.createElement(mo,{key:e,color:e,onClick:v,onSwatchHover:o,active:s===e.toLowerCase(),circleSize:l,circleSpacing:d})})))};bo.propTypes={width:k().oneOfType([k().string,k().number]),circleSize:k().number,circleSpacing:k().number,styles:k().object},bo.defaultProps={width:252,circleSize:28,circleSpacing:14,colors:[$a[500],Za[500],Ja[500],eo[500],to[500],ro[500],no[500],ao[500],oo[500],io[500],so[500],lo[500],uo[500],co[500],po[500],fo[500],ho[500],vo[500]],styles:{}};bn(bo);const yo=function(e){return void 0===e};var wo=r(54657),xo=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var ko=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.toggleViews=function(){"hex"===r.state.view?r.setState({view:"rgb"}):"rgb"===r.state.view?r.setState({view:"hsl"}):"hsl"===r.state.view&&(1===r.props.hsl.a?r.setState({view:"hex"}):r.setState({view:"rgb"}))},r.handleChange=function(e,t){e.hex?fn(e.hex)&&r.props.onChange({hex:e.hex,source:"hex"},t):e.r||e.g||e.b?r.props.onChange({r:e.r||r.props.rgb.r,g:e.g||r.props.rgb.g,b:e.b||r.props.rgb.b,source:"rgb"},t):e.a?(e.a<0?e.a=0:e.a>1&&(e.a=1),r.props.onChange({h:r.props.hsl.h,s:r.props.hsl.s,l:r.props.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},t)):(e.h||e.s||e.l)&&("string"===typeof e.s&&e.s.includes("%")&&(e.s=e.s.replace("%","")),"string"===typeof e.l&&e.l.includes("%")&&(e.l=e.l.replace("%","")),1==e.s?e.s=.01:1==e.l&&(e.l=.01),r.props.onChange({h:e.h||r.props.hsl.h,s:Number(yo(e.s)?r.props.hsl.s:e.s),l:Number(yo(e.l)?r.props.hsl.l:e.l),source:"hsl"},t))},r.showHighlight=function(e){e.currentTarget.style.background="#eee"},r.hideHighlight=function(e){e.currentTarget.style.background="transparent"},1!==e.hsl.a&&"hex"===e.view?r.state={view:"rgb"}:r.state={view:e.view},r}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),xo(t,[{key:"render",value:function(){var e=this,t=(0,a.Ay)({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),r=void 0;return"hex"===this.state.view?r=n.createElement("div",{style:t.fields,className:"flexbox-fix"},n.createElement("div",{style:t.field},n.createElement(m,{style:{input:t.input,label:t.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):"rgb"===this.state.view?r=n.createElement("div",{style:t.fields,className:"flexbox-fix"},n.createElement("div",{style:t.field},n.createElement(m,{style:{input:t.input,label:t.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),n.createElement("div",{style:t.field},n.createElement(m,{style:{input:t.input,label:t.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),n.createElement("div",{style:t.field},n.createElement(m,{style:{input:t.input,label:t.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),n.createElement("div",{style:t.alpha},n.createElement(m,{style:{input:t.input,label:t.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):"hsl"===this.state.view&&(r=n.createElement("div",{style:t.fields,className:"flexbox-fix"},n.createElement("div",{style:t.field},n.createElement(m,{style:{input:t.input,label:t.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),n.createElement("div",{style:t.field},n.createElement(m,{style:{input:t.input,label:t.label},label:"s",value:Math.round(100*this.props.hsl.s)+"%",onChange:this.handleChange})),n.createElement("div",{style:t.field},n.createElement(m,{style:{input:t.input,label:t.label},label:"l",value:Math.round(100*this.props.hsl.l)+"%",onChange:this.handleChange})),n.createElement("div",{style:t.alpha},n.createElement(m,{style:{input:t.input,label:t.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),n.createElement("div",{style:t.wrap,className:"flexbox-fix"},r,n.createElement("div",{style:t.toggle},n.createElement("div",{style:t.icon,onClick:this.toggleViews,ref:function(t){return e.icon=t}},n.createElement(wo.A,{style:t.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return 1!==e.hsl.a&&"hex"===t.view?{view:"rgb"}:null}}]),t}(n.Component);ko.defaultProps={view:"hex"};const Do=ko;const Co=function(){var e=(0,a.Ay)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return n.createElement("div",{style:e.picker})};const Eo=function(){var e=(0,a.Ay)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return n.createElement("div",{style:e.picker})};var Ao=function(e){var t=e.width,r=e.onChange,o=e.disableAlpha,i=e.rgb,s=e.hsl,l=e.hsv,c=e.hex,d=e.renderers,p=e.styles,h=void 0===p?{}:p,v=e.className,g=void 0===v?"":v,m=e.defaultView,b=(0,a.Ay)(nr({default:{picker:{width:t,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+i.r+", "+i.g+", "+i.b+", "+i.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},h),{disableAlpha:o});return n.createElement("div",{style:b.picker,className:"chrome-picker "+g},n.createElement("div",{style:b.saturation},n.createElement(Dr,{style:b.Saturation,hsl:s,hsv:l,pointer:Eo,onChange:r})),n.createElement("div",{style:b.body},n.createElement("div",{style:b.controls,className:"flexbox-fix"},n.createElement("div",{style:b.color},n.createElement("div",{style:b.swatch},n.createElement("div",{style:b.active}),n.createElement(u,{renderers:d}))),n.createElement("div",{style:b.toggles},n.createElement("div",{style:b.hue},n.createElement(w,{style:b.Hue,hsl:s,pointer:Co,onChange:r})),n.createElement("div",{style:b.alpha},n.createElement(f,{style:b.Alpha,rgb:i,hsl:s,pointer:Co,renderers:d,onChange:r})))),n.createElement(Do,{rgb:i,hsl:s,hex:c,view:m,onChange:r,disableAlpha:o})))};Ao.propTypes={width:k().oneOfType([k().string,k().number]),disableAlpha:k().bool,styles:k().object,defaultView:k().oneOf(["hex","rgb","hsl"])},Ao.defaultProps={width:225,disableAlpha:!1,styles:{}};bn(Ao);const So=function(e){var t=e.color,r=e.onClick,o=void 0===r?function(){}:r,i=e.onSwatchHover,s=e.active,l=(0,a.Ay)({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:hn(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:s,"color-#FFFFFF":"#FFFFFF"===t,transparent:"transparent"===t});return n.createElement(Dn,{style:l.color,color:t,onClick:o,onHover:i,focusStyle:{boxShadow:"0 0 4px "+t}},n.createElement("div",{style:l.dot}))};const _o=function(e){var t=e.hex,r=e.rgb,o=e.onChange,i=(0,a.Ay)({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),s=function(e,t){e.r||e.g||e.b?o({r:e.r||r.r,g:e.g||r.g,b:e.b||r.b,source:"rgb"},t):o({hex:e.hex,source:"hex"},t)};return n.createElement("div",{style:i.fields,className:"flexbox-fix"},n.createElement("div",{style:i.active}),n.createElement(m,{style:{wrap:i.HEXwrap,input:i.HEXinput,label:i.HEXlabel},label:"hex",value:t,onChange:s}),n.createElement(m,{style:{wrap:i.RGBwrap,input:i.RGBinput,label:i.RGBlabel},label:"r",value:r.r,onChange:s}),n.createElement(m,{style:{wrap:i.RGBwrap,input:i.RGBinput,label:i.RGBlabel},label:"g",value:r.g,onChange:s}),n.createElement(m,{style:{wrap:i.RGBwrap,input:i.RGBinput,label:i.RGBlabel},label:"b",value:r.b,onChange:s}))};var Mo=function(e){var t=e.onChange,r=e.onSwatchHover,o=e.colors,i=e.hex,s=e.rgb,l=e.styles,u=void 0===l?{}:l,c=e.className,d=void 0===c?"":c,p=(0,a.Ay)(nr({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},u)),f=function(e,r){e.hex?fn(e.hex)&&t({hex:e.hex,source:"hex"},r):t(e,r)};return n.createElement(or,{style:p.Compact,styles:u},n.createElement("div",{style:p.compact,className:"compact-picker "+d},n.createElement("div",null,Ga(o,(function(e){return n.createElement(So,{key:e,color:e,active:e.toLowerCase()===i,onClick:f,onSwatchHover:r})})),n.createElement("div",{style:p.clear})),n.createElement(_o,{hex:i,rgb:s,onChange:f})))};Mo.propTypes={colors:k().arrayOf(k().string),styles:k().object},Mo.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}};bn(Mo);const To=(0,a.H8)((function(e){var t=e.hover,r=e.color,o=e.onClick,i=e.onSwatchHover,s={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},l=(0,a.Ay)({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:s}},{hover:t});return n.createElement("div",{style:l.swatch},n.createElement(Dn,{color:r,onClick:o,onHover:i,focusStyle:s}))}));var Oo=function(e){var t=e.width,r=e.colors,o=e.onChange,i=e.onSwatchHover,s=e.triangle,l=e.styles,u=void 0===l?{}:l,c=e.className,d=void 0===c?"":c,p=(0,a.Ay)(nr({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},u),{"hide-triangle":"hide"===s,"top-left-triangle":"top-left"===s,"top-right-triangle":"top-right"===s,"bottom-left-triangle":"bottom-left"===s,"bottom-right-triangle":"bottom-right"===s}),f=function(e,t){return o({hex:e,source:"hex"},t)};return n.createElement("div",{style:p.card,className:"github-picker "+d},n.createElement("div",{style:p.triangleShadow}),n.createElement("div",{style:p.triangle}),Ga(r,(function(e){return n.createElement(To,{color:e,key:e,onClick:f,onSwatchHover:i})})))};Oo.propTypes={width:k().oneOfType([k().string,k().number]),colors:k().arrayOf(k().string),triangle:k().oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:k().object},Oo.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}};bn(Oo);const Po=function(e){var t=e.direction,r=(0,a.Ay)({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:"vertical"===t});return n.createElement("div",{style:r.picker})};var No=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ro=function(e){var t=e.width,r=e.height,o=e.onChange,i=e.hsl,s=e.direction,l=e.pointer,u=e.styles,c=void 0===u?{}:u,d=e.className,p=void 0===d?"":d,f=(0,a.Ay)(nr({default:{picker:{position:"relative",width:t,height:r},hue:{radius:"2px"}}},c));return n.createElement("div",{style:f.picker,className:"hue-picker "+p},n.createElement(w,No({},f.hue,{hsl:i,pointer:l,onChange:function(e){return o({a:1,h:e.h,l:.5,s:1})},direction:s})))};Ro.propTypes={styles:k().object},Ro.defaultProps={width:"316px",height:"16px",direction:"horizontal",pointer:Po,styles:{}};bn(Ro);bn((function(e){var t=e.onChange,r=e.hex,o=e.rgb,i=e.styles,s=void 0===i?{}:i,l=e.className,u=void 0===l?"":l,c=(0,a.Ay)(nr({default:{material:{width:"98px",height:"98px",padding:"16px",fontFamily:"Roboto"},HEXwrap:{position:"relative"},HEXinput:{width:"100%",marginTop:"12px",fontSize:"15px",color:"#333",padding:"0px",border:"0px",borderBottom:"2px solid "+r,outline:"none",height:"30px"},HEXlabel:{position:"absolute",top:"0px",left:"0px",fontSize:"11px",color:"#999999",textTransform:"capitalize"},Hex:{style:{}},RGBwrap:{position:"relative"},RGBinput:{width:"100%",marginTop:"12px",fontSize:"15px",color:"#333",padding:"0px",border:"0px",borderBottom:"1px solid #eee",outline:"none",height:"30px"},RGBlabel:{position:"absolute",top:"0px",left:"0px",fontSize:"11px",color:"#999999",textTransform:"capitalize"},split:{display:"flex",marginRight:"-10px",paddingTop:"11px"},third:{flex:"1",paddingRight:"10px"}}},s)),d=function(e,r){e.hex?fn(e.hex)&&t({hex:e.hex,source:"hex"},r):(e.r||e.g||e.b)&&t({r:e.r||o.r,g:e.g||o.g,b:e.b||o.b,source:"rgb"},r)};return n.createElement(or,{styles:s},n.createElement("div",{style:c.material,className:"material-picker "+u},n.createElement(m,{style:{wrap:c.HEXwrap,input:c.HEXinput,label:c.HEXlabel},label:"hex",value:r,onChange:d}),n.createElement("div",{style:c.split,className:"flexbox-fix"},n.createElement("div",{style:c.third},n.createElement(m,{style:{wrap:c.RGBwrap,input:c.RGBinput,label:c.RGBlabel},label:"r",value:o.r,onChange:d})),n.createElement("div",{style:c.third},n.createElement(m,{style:{wrap:c.RGBwrap,input:c.RGBinput,label:c.RGBlabel},label:"g",value:o.g,onChange:d})),n.createElement("div",{style:c.third},n.createElement(m,{style:{wrap:c.RGBwrap,input:c.RGBinput,label:c.RGBlabel},label:"b",value:o.b,onChange:d})))))}));const Lo=function(e){var t=e.onChange,r=e.rgb,o=e.hsv,i=e.hex,s=(0,a.Ay)({default:{fields:{paddingTop:"5px",paddingBottom:"9px",width:"80px",position:"relative"},divider:{height:"5px"},RGBwrap:{position:"relative"},RGBinput:{marginLeft:"40%",width:"40%",height:"18px",border:"1px solid #888888",boxShadow:"inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC",marginBottom:"5px",fontSize:"13px",paddingLeft:"3px",marginRight:"10px"},RGBlabel:{left:"0px",top:"0px",width:"34px",textTransform:"uppercase",fontSize:"13px",height:"18px",lineHeight:"22px",position:"absolute"},HEXwrap:{position:"relative"},HEXinput:{marginLeft:"20%",width:"80%",height:"18px",border:"1px solid #888888",boxShadow:"inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC",marginBottom:"6px",fontSize:"13px",paddingLeft:"3px"},HEXlabel:{position:"absolute",top:"0px",left:"0px",width:"14px",textTransform:"uppercase",fontSize:"13px",height:"18px",lineHeight:"22px"},fieldSymbols:{position:"absolute",top:"5px",right:"-7px",fontSize:"13px"},symbol:{height:"20px",lineHeight:"22px",paddingBottom:"7px"}}}),l=function(e,n){e["#"]?fn(e["#"])&&t({hex:e["#"],source:"hex"},n):e.r||e.g||e.b?t({r:e.r||r.r,g:e.g||r.g,b:e.b||r.b,source:"rgb"},n):(e.h||e.s||e.v)&&t({h:e.h||o.h,s:e.s||o.s,v:e.v||o.v,source:"hsv"},n)};return n.createElement("div",{style:s.fields},n.createElement(m,{style:{wrap:s.RGBwrap,input:s.RGBinput,label:s.RGBlabel},label:"h",value:Math.round(o.h),onChange:l}),n.createElement(m,{style:{wrap:s.RGBwrap,input:s.RGBinput,label:s.RGBlabel},label:"s",value:Math.round(100*o.s),onChange:l}),n.createElement(m,{style:{wrap:s.RGBwrap,input:s.RGBinput,label:s.RGBlabel},label:"v",value:Math.round(100*o.v),onChange:l}),n.createElement("div",{style:s.divider}),n.createElement(m,{style:{wrap:s.RGBwrap,input:s.RGBinput,label:s.RGBlabel},label:"r",value:r.r,onChange:l}),n.createElement(m,{style:{wrap:s.RGBwrap,input:s.RGBinput,label:s.RGBlabel},label:"g",value:r.g,onChange:l}),n.createElement(m,{style:{wrap:s.RGBwrap,input:s.RGBinput,label:s.RGBlabel},label:"b",value:r.b,onChange:l}),n.createElement("div",{style:s.divider}),n.createElement(m,{style:{wrap:s.HEXwrap,input:s.HEXinput,label:s.HEXlabel},label:"#",value:i.replace("#",""),onChange:l}),n.createElement("div",{style:s.fieldSymbols},n.createElement("div",{style:s.symbol},"\xb0"),n.createElement("div",{style:s.symbol},"%"),n.createElement("div",{style:s.symbol},"%")))};const Fo=function(e){var t=e.hsl,r=(0,a.Ay)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}},"black-outline":{picker:{boxShadow:"inset 0 0 0 1px #000"}}},{"black-outline":t.l>.5});return n.createElement("div",{style:r.picker})};const Yo=function(){var e=(0,a.Ay)({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return n.createElement("div",{style:e.pointer},n.createElement("div",{style:e.left},n.createElement("div",{style:e.leftInside})),n.createElement("div",{style:e.right},n.createElement("div",{style:e.rightInside})))};const jo=function(e){var t=e.onClick,r=e.label,o=e.children,i=e.active,s=(0,a.Ay)({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:i});return n.createElement("div",{style:s.button,onClick:t},r||o)};const Bo=function(e){var t=e.rgb,r=e.currentColor,o=(0,a.Ay)({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:r,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return n.createElement("div",null,n.createElement("div",{style:o.label},"new"),n.createElement("div",{style:o.swatches},n.createElement("div",{style:o.new}),n.createElement("div",{style:o.current})),n.createElement("div",{style:o.label},"current"))};var Io=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var Ho=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.state={currentColor:e.hex},r}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),Io(t,[{key:"render",value:function(){var e=this.props,t=e.styles,r=void 0===t?{}:t,o=e.className,i=void 0===o?"":o,s=(0,a.Ay)(nr({default:{picker:{background:"#DCDCDC",borderRadius:"4px",boxShadow:"0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)",boxSizing:"initial",width:"513px"},head:{backgroundImage:"linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)",borderBottom:"1px solid #B1B1B1",boxShadow:"inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)",height:"23px",lineHeight:"24px",borderRadius:"4px 4px 0 0",fontSize:"13px",color:"#4D4D4D",textAlign:"center"},body:{padding:"15px 15px 0",display:"flex"},saturation:{width:"256px",height:"256px",position:"relative",border:"2px solid #B3B3B3",borderBottom:"2px solid #F0F0F0",overflow:"hidden"},hue:{position:"relative",height:"256px",width:"19px",marginLeft:"10px",border:"2px solid #B3B3B3",borderBottom:"2px solid #F0F0F0"},controls:{width:"180px",marginLeft:"10px"},top:{display:"flex"},previews:{width:"60px"},actions:{flex:"1",marginLeft:"20px"}}},r));return n.createElement("div",{style:s.picker,className:"photoshop-picker "+i},n.createElement("div",{style:s.head},this.props.header),n.createElement("div",{style:s.body,className:"flexbox-fix"},n.createElement("div",{style:s.saturation},n.createElement(Dr,{hsl:this.props.hsl,hsv:this.props.hsv,pointer:Fo,onChange:this.props.onChange})),n.createElement("div",{style:s.hue},n.createElement(w,{direction:"vertical",hsl:this.props.hsl,pointer:Yo,onChange:this.props.onChange})),n.createElement("div",{style:s.controls},n.createElement("div",{style:s.top,className:"flexbox-fix"},n.createElement("div",{style:s.previews},n.createElement(Bo,{rgb:this.props.rgb,currentColor:this.state.currentColor})),n.createElement("div",{style:s.actions},n.createElement(jo,{label:"OK",onClick:this.props.onAccept,active:!0}),n.createElement(jo,{label:"Cancel",onClick:this.props.onCancel}),n.createElement(Lo,{onChange:this.props.onChange,rgb:this.props.rgb,hsv:this.props.hsv,hex:this.props.hex}))))))}}]),t}(n.Component);Ho.propTypes={header:k().string,styles:k().object},Ho.defaultProps={header:"Color Picker",styles:{}};bn(Ho);const Wo=function(e){var t=e.onChange,r=e.rgb,o=e.hsl,i=e.hex,s=e.disableAlpha,l=(0,a.Ay)({default:{fields:{display:"flex",paddingTop:"4px"},single:{flex:"1",paddingLeft:"6px"},alpha:{flex:"1",paddingLeft:"6px"},double:{flex:"2"},input:{width:"80%",padding:"4px 10% 3px",border:"none",boxShadow:"inset 0 0 0 1px #ccc",fontSize:"11px"},label:{display:"block",textAlign:"center",fontSize:"11px",color:"#222",paddingTop:"3px",paddingBottom:"4px",textTransform:"capitalize"}},disableAlpha:{alpha:{display:"none"}}},{disableAlpha:s}),u=function(e,n){e.hex?fn(e.hex)&&t({hex:e.hex,source:"hex"},n):e.r||e.g||e.b?t({r:e.r||r.r,g:e.g||r.g,b:e.b||r.b,a:r.a,source:"rgb"},n):e.a&&(e.a<0?e.a=0:e.a>100&&(e.a=100),e.a/=100,t({h:o.h,s:o.s,l:o.l,a:e.a,source:"rgb"},n))};return n.createElement("div",{style:l.fields,className:"flexbox-fix"},n.createElement("div",{style:l.double},n.createElement(m,{style:{input:l.input,label:l.label},label:"hex",value:i.replace("#",""),onChange:u})),n.createElement("div",{style:l.single},n.createElement(m,{style:{input:l.input,label:l.label},label:"r",value:r.r,onChange:u,dragLabel:"true",dragMax:"255"})),n.createElement("div",{style:l.single},n.createElement(m,{style:{input:l.input,label:l.label},label:"g",value:r.g,onChange:u,dragLabel:"true",dragMax:"255"})),n.createElement("div",{style:l.single},n.createElement(m,{style:{input:l.input,label:l.label},label:"b",value:r.b,onChange:u,dragLabel:"true",dragMax:"255"})),n.createElement("div",{style:l.alpha},n.createElement(m,{style:{input:l.input,label:l.label},label:"a",value:Math.round(100*r.a),onChange:u,dragLabel:"true",dragMax:"100"})))};var Uo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},qo=function(e){var t=e.colors,r=e.onClick,o=void 0===r?function(){}:r,i=e.onSwatchHover,s=(0,a.Ay)({default:{colors:{margin:"0 -10px",padding:"10px 0 0 10px",borderTop:"1px solid #eee",display:"flex",flexWrap:"wrap",position:"relative"},swatchWrap:{width:"16px",height:"16px",margin:"0 10px 10px 0"},swatch:{borderRadius:"3px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.15)"}},"no-presets":{colors:{display:"none"}}},{"no-presets":!t||!t.length}),l=function(e,t){o({hex:e,source:"hex"},t)};return n.createElement("div",{style:s.colors,className:"flexbox-fix"},t.map((function(e){var t="string"===typeof e?{color:e}:e,r=""+t.color+(t.title||"");return n.createElement("div",{key:r,style:s.swatchWrap},n.createElement(Dn,Uo({},t,{style:s.swatch,onClick:l,onHover:i,focusStyle:{boxShadow:"inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px "+t.color}})))})))};qo.propTypes={colors:k().arrayOf(k().oneOfType([k().string,k().shape({color:k().string,title:k().string})])).isRequired};const zo=qo;var Qo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ko=function(e){var t=e.width,r=e.rgb,o=e.hex,i=e.hsv,s=e.hsl,l=e.onChange,c=e.onSwatchHover,d=e.disableAlpha,p=e.presetColors,h=e.renderers,v=e.styles,g=void 0===v?{}:v,m=e.className,b=void 0===m?"":m,y=(0,a.Ay)(nr({default:Qo({picker:{width:t,padding:"10px 10px 0",boxSizing:"initial",background:"#fff",borderRadius:"4px",boxShadow:"0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)"},saturation:{width:"100%",paddingBottom:"75%",position:"relative",overflow:"hidden"},Saturation:{radius:"3px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},controls:{display:"flex"},sliders:{padding:"4px 0",flex:"1"},color:{width:"24px",height:"24px",position:"relative",marginTop:"4px",marginLeft:"4px",borderRadius:"3px"},activeColor:{absolute:"0px 0px 0px 0px",borderRadius:"2px",background:"rgba("+r.r+","+r.g+","+r.b+","+r.a+")",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},hue:{position:"relative",height:"10px",overflow:"hidden"},Hue:{radius:"2px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},alpha:{position:"relative",height:"10px",marginTop:"4px",overflow:"hidden"},Alpha:{radius:"2px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"}},g),disableAlpha:{color:{height:"10px"},hue:{height:"10px"},alpha:{display:"none"}}},g),{disableAlpha:d});return n.createElement("div",{style:y.picker,className:"sketch-picker "+b},n.createElement("div",{style:y.saturation},n.createElement(Dr,{style:y.Saturation,hsl:s,hsv:i,onChange:l})),n.createElement("div",{style:y.controls,className:"flexbox-fix"},n.createElement("div",{style:y.sliders},n.createElement("div",{style:y.hue},n.createElement(w,{style:y.Hue,hsl:s,onChange:l})),n.createElement("div",{style:y.alpha},n.createElement(f,{style:y.Alpha,rgb:r,hsl:s,renderers:h,onChange:l}))),n.createElement("div",{style:y.color},n.createElement(u,null),n.createElement("div",{style:y.activeColor}))),n.createElement(Wo,{rgb:r,hsl:s,hex:o,onChange:l,disableAlpha:d}),n.createElement(zo,{colors:p,onClick:l,onSwatchHover:c}))};Ko.propTypes={disableAlpha:k().bool,width:k().oneOfType([k().string,k().number]),styles:k().object},Ko.defaultProps={disableAlpha:!1,width:200,styles:{},presetColors:["#D0021B","#F5A623","#F8E71C","#8B572A","#7ED321","#417505","#BD10E0","#9013FE","#4A90E2","#50E3C2","#B8E986","#000000","#4A4A4A","#9B9B9B","#FFFFFF"]};bn(Ko);const Go=function(e){var t=e.hsl,r=e.offset,o=e.onClick,i=void 0===o?function(){}:o,s=e.active,l=e.first,u=e.last,c=(0,a.Ay)({default:{swatch:{height:"12px",background:"hsl("+t.h+", 50%, "+100*r+"%)",cursor:"pointer"}},first:{swatch:{borderRadius:"2px 0 0 2px"}},last:{swatch:{borderRadius:"0 2px 2px 0"}},active:{swatch:{transform:"scaleY(1.8)",borderRadius:"3.6px/2px"}}},{active:s,first:l,last:u});return n.createElement("div",{style:c.swatch,onClick:function(e){return i({h:t.h,s:.5,l:r,source:"hsl"},e)}})};const Xo=function(e){var t=e.onClick,r=e.hsl,o=(0,a.Ay)({default:{swatches:{marginTop:"20px"},swatch:{boxSizing:"border-box",width:"20%",paddingRight:"1px",float:"left"},clear:{clear:"both"}}}),i=.1;return n.createElement("div",{style:o.swatches},n.createElement("div",{style:o.swatch},n.createElement(Go,{hsl:r,offset:".80",active:Math.abs(r.l-.8)<i&&Math.abs(r.s-.5)<i,onClick:t,first:!0})),n.createElement("div",{style:o.swatch},n.createElement(Go,{hsl:r,offset:".65",active:Math.abs(r.l-.65)<i&&Math.abs(r.s-.5)<i,onClick:t})),n.createElement("div",{style:o.swatch},n.createElement(Go,{hsl:r,offset:".50",active:Math.abs(r.l-.5)<i&&Math.abs(r.s-.5)<i,onClick:t})),n.createElement("div",{style:o.swatch},n.createElement(Go,{hsl:r,offset:".35",active:Math.abs(r.l-.35)<i&&Math.abs(r.s-.5)<i,onClick:t})),n.createElement("div",{style:o.swatch},n.createElement(Go,{hsl:r,offset:".20",active:Math.abs(r.l-.2)<i&&Math.abs(r.s-.5)<i,onClick:t,last:!0})),n.createElement("div",{style:o.clear}))};const Vo=function(){var e=(0,a.Ay)({default:{picker:{width:"14px",height:"14px",borderRadius:"6px",transform:"translate(-7px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return n.createElement("div",{style:e.picker})};var $o=function(e){var t=e.hsl,r=e.onChange,o=e.pointer,i=e.styles,s=void 0===i?{}:i,l=e.className,u=void 0===l?"":l,c=(0,a.Ay)(nr({default:{hue:{height:"12px",position:"relative"},Hue:{radius:"2px"}}},s));return n.createElement("div",{style:c.wrap||{},className:"slider-picker "+u},n.createElement("div",{style:c.hue},n.createElement(w,{style:c.Hue,hsl:t,pointer:o,onChange:r})),n.createElement("div",{style:c.swatches},n.createElement(Xo,{hsl:t,onClick:r})))};$o.propTypes={styles:k().object},$o.defaultProps={pointer:Vo,styles:{}};bn($o);var Zo=r(20748);const Jo=function(e){var t=e.color,r=e.onClick,o=void 0===r?function(){}:r,i=e.onSwatchHover,s=e.first,l=e.last,u=e.active,c=(0,a.Ay)({default:{color:{width:"40px",height:"24px",cursor:"pointer",background:t,marginBottom:"1px"},check:{color:hn(t),marginLeft:"8px",display:"none"}},first:{color:{overflow:"hidden",borderRadius:"2px 2px 0 0"}},last:{color:{overflow:"hidden",borderRadius:"0 0 2px 2px"}},active:{check:{display:"block"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},check:{color:"#333"}},transparent:{check:{color:"#333"}}},{first:s,last:l,active:u,"color-#FFFFFF":"#FFFFFF"===t,transparent:"transparent"===t});return n.createElement(Dn,{color:t,style:c.color,onClick:o,onHover:i,focusStyle:{boxShadow:"0 0 4px "+t}},n.createElement("div",{style:c.check},n.createElement(Zo.A,null)))};const ei=function(e){var t=e.onClick,r=e.onSwatchHover,o=e.group,i=e.active,s=(0,a.Ay)({default:{group:{paddingBottom:"10px",width:"40px",float:"left",marginRight:"10px"}}});return n.createElement("div",{style:s.group},Ga(o,(function(e,a){return n.createElement(Jo,{key:e,color:e,active:e.toLowerCase()===i,first:0===a,last:a===o.length-1,onClick:t,onSwatchHover:r})})))};var ti=function(e){var t=e.width,r=e.height,o=e.onChange,i=e.onSwatchHover,s=e.colors,l=e.hex,u=e.styles,c=void 0===u?{}:u,d=e.className,p=void 0===d?"":d,f=(0,a.Ay)(nr({default:{picker:{width:t,height:r},overflow:{height:r,overflowY:"scroll"},body:{padding:"16px 0 6px 16px"},clear:{clear:"both"}}},c)),h=function(e,t){return o({hex:e,source:"hex"},t)};return n.createElement("div",{style:f.picker,className:"swatches-picker "+p},n.createElement(or,null,n.createElement("div",{style:f.overflow},n.createElement("div",{style:f.body},Ga(s,(function(e){return n.createElement(ei,{key:e.toString(),group:e,active:l,onClick:h,onSwatchHover:i})})),n.createElement("div",{style:f.clear})))))};ti.propTypes={width:k().oneOfType([k().string,k().number]),height:k().oneOfType([k().string,k().number]),colors:k().arrayOf(k().arrayOf(k().string)),styles:k().object},ti.defaultProps={width:320,height:240,colors:[[$a[900],$a[700],$a[500],$a[300],$a[100]],[Za[900],Za[700],Za[500],Za[300],Za[100]],[Ja[900],Ja[700],Ja[500],Ja[300],Ja[100]],[eo[900],eo[700],eo[500],eo[300],eo[100]],[to[900],to[700],to[500],to[300],to[100]],[ro[900],ro[700],ro[500],ro[300],ro[100]],[no[900],no[700],no[500],no[300],no[100]],[ao[900],ao[700],ao[500],ao[300],ao[100]],[oo[900],oo[700],oo[500],oo[300],oo[100]],["#194D33",io[700],io[500],io[300],io[100]],[so[900],so[700],so[500],so[300],so[100]],[lo[900],lo[700],lo[500],lo[300],lo[100]],[uo[900],uo[700],uo[500],uo[300],uo[100]],[co[900],co[700],co[500],co[300],co[100]],[po[900],po[700],po[500],po[300],po[100]],[fo[900],fo[700],fo[500],fo[300],fo[100]],[ho[900],ho[700],ho[500],ho[300],ho[100]],[vo[900],vo[700],vo[500],vo[300],vo[100]],["#000000","#525252","#969696","#D9D9D9","#FFFFFF"]],styles:{}};bn(ti);var ri=function(e){var t=e.onChange,r=e.onSwatchHover,o=e.hex,i=e.colors,s=e.width,l=e.triangle,u=e.styles,c=void 0===u?{}:u,d=e.className,p=void 0===d?"":d,f=(0,a.Ay)(nr({default:{card:{width:s,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},c),{"hide-triangle":"hide"===l,"top-left-triangle":"top-left"===l,"top-right-triangle":"top-right"===l}),h=function(e,r){fn(e)&&t({hex:e,source:"hex"},r)};return n.createElement("div",{style:f.card,className:"twitter-picker "+p},n.createElement("div",{style:f.triangleShadow}),n.createElement("div",{style:f.triangle}),n.createElement("div",{style:f.body},Ga(i,(function(e,t){return n.createElement(Dn,{key:t,color:e,hex:e,style:f.swatch,onClick:h,onHover:r,focusStyle:{boxShadow:"0 0 4px "+e}})})),n.createElement("div",{style:f.hash},"#"),n.createElement(m,{label:null,style:{input:f.input},value:o.replace("#",""),onChange:h}),n.createElement("div",{style:f.clear})))};ri.propTypes={width:k().oneOfType([k().string,k().number]),triangle:k().oneOf(["hide","top-left","top-right"]),colors:k().arrayOf(k().string),styles:k().object},ri.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}};bn(ri);var ni=function(e){var t=(0,a.Ay)({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",border:"2px #fff solid",transform:"translate(-12px, -13px)",background:"hsl("+Math.round(e.hsl.h)+", "+Math.round(100*e.hsl.s)+"%, "+Math.round(100*e.hsl.l)+"%)"}}});return n.createElement("div",{style:t.picker})};ni.propTypes={hsl:k().shape({h:k().number,s:k().number,l:k().number,a:k().number})},ni.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};const ai=ni;var oi=function(e){var t=(0,a.Ay)({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",transform:"translate(-10px, -7px)",background:"hsl("+Math.round(e.hsl.h)+", 100%, 50%)",border:"2px white solid"}}});return n.createElement("div",{style:t.picker})};oi.propTypes={hsl:k().shape({h:k().number,s:k().number,l:k().number,a:k().number})},oi.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};const ii=oi;const si=function(e){var t=e.onChange,r=e.rgb,o=e.hsl,i=e.hex,s=e.hsv,l=function(e,r){if(e.hex)fn(e.hex)&&t({hex:e.hex,source:"hex"},r);else if(e.rgb){var n=e.rgb.split(",");vn(e.rgb,"rgb")&&t({r:n[0],g:n[1],b:n[2],a:1,source:"rgb"},r)}else if(e.hsv){var a=e.hsv.split(",");vn(e.hsv,"hsv")&&(a[2]=a[2].replace("%",""),a[1]=a[1].replace("%",""),a[0]=a[0].replace("\xb0",""),1==a[1]?a[1]=.01:1==a[2]&&(a[2]=.01),t({h:Number(a[0]),s:Number(a[1]),v:Number(a[2]),source:"hsv"},r))}else if(e.hsl){var o=e.hsl.split(",");vn(e.hsl,"hsl")&&(o[2]=o[2].replace("%",""),o[1]=o[1].replace("%",""),o[0]=o[0].replace("\xb0",""),1==p[1]?p[1]=.01:1==p[2]&&(p[2]=.01),t({h:Number(o[0]),s:Number(o[1]),v:Number(o[2]),source:"hsl"},r))}},u=(0,a.Ay)({default:{wrap:{display:"flex",height:"100px",marginTop:"4px"},fields:{width:"100%"},column:{paddingTop:"10px",display:"flex",justifyContent:"space-between"},double:{padding:"0px 4.4px",boxSizing:"border-box"},input:{width:"100%",height:"38px",boxSizing:"border-box",padding:"4px 10% 3px",textAlign:"center",border:"1px solid #dadce0",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",fontFamily:"Roboto,Arial,sans-serif"},input2:{height:"38px",width:"100%",border:"1px solid #dadce0",boxSizing:"border-box",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",paddingLeft:"10px",fontFamily:"Roboto,Arial,sans-serif"},label:{textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"35px",top:"-6px",left:"0",right:"0",marginLeft:"auto",marginRight:"auto",fontFamily:"Roboto,Arial,sans-serif"},label2:{left:"10px",textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"32px",top:"-6px",fontFamily:"Roboto,Arial,sans-serif"},single:{flexGrow:"1",margin:"0px 4.4px"}}}),c=r.r+", "+r.g+", "+r.b,d=Math.round(o.h)+"\xb0, "+Math.round(100*o.s)+"%, "+Math.round(100*o.l)+"%",p=Math.round(s.h)+"\xb0, "+Math.round(100*s.s)+"%, "+Math.round(100*s.v)+"%";return n.createElement("div",{style:u.wrap,className:"flexbox-fix"},n.createElement("div",{style:u.fields},n.createElement("div",{style:u.double},n.createElement(m,{style:{input:u.input,label:u.label},label:"hex",value:i,onChange:l})),n.createElement("div",{style:u.column},n.createElement("div",{style:u.single},n.createElement(m,{style:{input:u.input2,label:u.label2},label:"rgb",value:c,onChange:l})),n.createElement("div",{style:u.single},n.createElement(m,{style:{input:u.input2,label:u.label2},label:"hsv",value:p,onChange:l})),n.createElement("div",{style:u.single},n.createElement(m,{style:{input:u.input2,label:u.label2},label:"hsl",value:d,onChange:l})))))};var li=function(e){var t=e.width,r=e.onChange,o=e.rgb,i=e.hsl,s=e.hsv,l=e.hex,u=e.header,c=e.styles,d=void 0===c?{}:c,p=e.className,f=void 0===p?"":p,h=(0,a.Ay)(nr({default:{picker:{width:t,background:"#fff",border:"1px solid #dfe1e5",boxSizing:"initial",display:"flex",flexWrap:"wrap",borderRadius:"8px 8px 0px 0px"},head:{height:"57px",width:"100%",paddingTop:"16px",paddingBottom:"16px",paddingLeft:"16px",fontSize:"20px",boxSizing:"border-box",fontFamily:"Roboto-Regular,HelveticaNeue,Arial,sans-serif"},saturation:{width:"70%",padding:"0px",position:"relative",overflow:"hidden"},swatch:{width:"30%",height:"228px",padding:"0px",background:"rgba("+o.r+", "+o.g+", "+o.b+", 1)",position:"relative",overflow:"hidden"},body:{margin:"auto",width:"95%"},controls:{display:"flex",boxSizing:"border-box",height:"52px",paddingTop:"22px"},color:{width:"32px"},hue:{height:"8px",position:"relative",margin:"0px 16px 0px 16px",width:"100%"},Hue:{radius:"2px"}}},d));return n.createElement("div",{style:h.picker,className:"google-picker "+f},n.createElement("div",{style:h.head},u),n.createElement("div",{style:h.swatch}),n.createElement("div",{style:h.saturation},n.createElement(Dr,{hsl:i,hsv:s,pointer:ai,onChange:r})),n.createElement("div",{style:h.body},n.createElement("div",{style:h.controls,className:"flexbox-fix"},n.createElement("div",{style:h.hue},n.createElement(w,{style:h.Hue,hsl:i,radius:"4px",pointer:ii,onChange:r}))),n.createElement(si,{rgb:o,hsl:i,hex:l,hsv:s,onChange:r})))};li.propTypes={width:k().oneOfType([k().string,k().number]),styles:k().object,header:k().string},li.defaultProps={width:652,styles:{},header:"Color picker"};bn(li)},59386:function(e,t,r){!function(e,t,r,n,a,o,i,s,l,u,c,d,p,f,h,v,g,m,b,y,w,x,k,D,C,E,A,S,_,M,T,O,P,N,R,L,F,Y,j,B,I,H,W,U,q,z,Q,K,G,X,V,$,Z,J,ee,te,re,ne,ae,oe,ie,se,le,ue){"use strict";function ce(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var de=ce(t),pe=ce(n),fe=ce(a),he=ce(o),ve=ce(i),ge=ce(s),me=ce(l),be=ce(u),ye=ce(c),we=ce(d),xe=ce(p),ke=ce(f),De=ce(h),Ce=ce(v),Ee=ce(g),Ae=ce(m),Se=ce(b),_e=ce(y),Me=ce(w),Te=ce(x),Oe=ce(k),Pe=ce(D),Ne=ce(C),Re=ce(E),Le=ce(A),Fe=ce(S),Ye=ce(_),je=ce(M),Be=ce(T),Ie=ce(O),He=ce(P),We=ce(N),Ue=ce(R),qe=ce(L),ze=ce(F),Qe=ce(Y),Ke=ce(j),Ge=ce(B),Xe=ce(I),Ve=ce(H),$e=ce(W),Ze=ce(U),Je=ce(q),et=ce(z),tt=ce(K),rt=ce(G),nt=ce(X),at=ce(V),ot=ce($),it=ce(Z),st=ce(J),lt=ce(ee),ut=ce(te),ct=ce(re),dt=ce(ne),pt=ce(ae),ft=ce(oe),ht=ce(ie),vt=ce(se),gt=ce(ue);function mt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function bt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(r),!0).forEach((function(t){Dt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function yt(e){return yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yt(e)}function wt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Pt(n.key),n)}}function kt(e,t,r){return t&&xt(e.prototype,t),r&&xt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Dt(e,t,r){return(t=Pt(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ct(){return Ct=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ct.apply(this,arguments)}function Et(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&St(e,t)}function At(e){return At=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},At(e)}function St(e,t){return St=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},St(e,t)}function _t(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Mt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=At(e);if(t){var a=At(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _t(e)}(this,r)}}function Tt(e){return function(e){if(Array.isArray(e))return Ot(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ot(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ot(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ot(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Pt(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var Nt=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Rt=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Lt={p:Rt,P:function(e,t){var r,n=e.match(/(P+)(p+)?/)||[],a=n[1],o=n[2];if(!o)return Nt(e,t);switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Nt(a,t)).replace("{{time}}",Rt(o,t))}},Ft=12,Yt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;function jt(e){var t=e?"string"==typeof e||e instanceof String?ft.default(e):dt.default(e):new Date;return Bt(t)?t:null}function Bt(e,t){return t=t||new Date("1/1/1000"),he.default(e)&&!ut.default(e,t)}function It(e,t,r){if("en"===r)return ve.default(e,t,{awareOfUnicodeTokens:!0});var n=tr(r);return r&&!n&&console.warn('A locale object was not found for the provided string ["'.concat(r,'"].')),!n&&er()&&tr(er())&&(n=tr(er())),ve.default(e,t,{locale:n||null,awareOfUnicodeTokens:!0})}function Ht(e,t){var r=t.dateFormat,n=t.locale;return e&&It(e,Array.isArray(r)?r[0]:r,n)||""}function Wt(e,t){var r=t.hour,n=void 0===r?0:r,a=t.minute,o=void 0===a?0:a,i=t.second,s=void 0===i?0:i;return Ie.default(Be.default(je.default(e,s),o),n)}function Ut(e,t,r){var n=tr(t||er());return Ve.default(e,{locale:n,weekStartsOn:r})}function qt(e){return $e.default(e)}function zt(e){return Je.default(e)}function Qt(e){return Ze.default(e)}function Kt(){return Xe.default(jt())}function Gt(e,t){return e&&t?it.default(e,t):!e&&!t}function Xt(e,t){return e&&t?ot.default(e,t):!e&&!t}function Vt(e,t){return e&&t?st.default(e,t):!e&&!t}function $t(e,t){return e&&t?at.default(e,t):!e&&!t}function Zt(e,t){return e&&t?nt.default(e,t):!e&&!t}function Jt(e,t,r){var n,a=Xe.default(t),o=et.default(r);try{n=ct.default(e,{start:a,end:o})}catch(e){n=!1}return n}function er(){return("undefined"!=typeof window?window:globalThis).__localeId__}function tr(e){if("string"==typeof e){var t="undefined"!=typeof window?window:globalThis;return t.__localeData__?t.__localeData__[e]:null}return e}function rr(e,t){return It(He.default(jt(),e),"LLLL",t)}function nr(e,t){return It(He.default(jt(),e),"LLL",t)}function ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.excludeDateIntervals,i=t.includeDates,s=t.includeDateIntervals,l=t.filterDate;return pr(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return $t(e,t)}))||o&&o.some((function(t){var r=t.start,n=t.end;return ct.default(e,{start:r,end:n})}))||i&&!i.some((function(t){return $t(e,t)}))||s&&!s.some((function(t){var r=t.start,n=t.end;return ct.default(e,{start:r,end:n})}))||l&&!l(jt(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,n=t.excludeDateIntervals;return n&&n.length>0?n.some((function(t){var r=t.start,n=t.end;return ct.default(e,{start:r,end:n})})):r&&r.some((function(t){return $t(e,t)}))||!1}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate;return pr(e,{minDate:$e.default(r),maxDate:tt.default(n)})||a&&a.some((function(t){return Xt(e,t)}))||o&&!o.some((function(t){return Xt(e,t)}))||i&&!i(jt(e))||!1}function sr(e,t,r,n){var a=Fe.default(e),o=Re.default(e),i=Fe.default(t),s=Re.default(t),l=Fe.default(n);return a===i&&a===l?o<=r&&r<=s:a<i?l===a&&o<=r||l===i&&s>=r||l<i&&l>a:void 0}function lr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate;return pr(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Vt(e,t)}))||o&&!o.some((function(t){return Vt(e,t)}))||i&&!i(jt(e))||!1}function ur(e,t,r){if(!he.default(t)||!he.default(r))return!1;var n=Fe.default(t),a=Fe.default(r);return n<=e&&a>=e}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate,s=new Date(e,0,1);return pr(s,{minDate:Je.default(r),maxDate:rt.default(n)})||a&&a.some((function(e){return Gt(s,e)}))||o&&!o.some((function(e){return Gt(s,e)}))||i&&!i(jt(s))||!1}function dr(e,t,r,n){var a=Fe.default(e),o=Le.default(e),i=Fe.default(t),s=Le.default(t),l=Fe.default(n);return a===i&&a===l?o<=r&&r<=s:a<i?l===a&&o<=r||l===i&&s>=r||l<i&&l>a:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate;return r&&Qe.default(e,r)<0||n&&Qe.default(e,n)>0}function fr(e,t){return t.some((function(t){return Te.default(t)===Te.default(e)&&Me.default(t)===Me.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,n=t.includeTimes,a=t.filterTime;return r&&fr(e,r)||n&&!fr(e,n)||a&&!a(e)||!1}function vr(e,t){var r=t.minTime,n=t.maxTime;if(!r||!n)throw new Error("Both minTime and maxTime props required");var a,o=jt(),i=Ie.default(Be.default(o,Me.default(e)),Te.default(e)),s=Ie.default(Be.default(o,Me.default(r)),Te.default(r)),l=Ie.default(Be.default(o,Me.default(n)),Te.default(n));try{a=!ct.default(i,{start:s,end:l})}catch(e){a=!1}return a}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=Ee.default(e,1);return r&&Ke.default(r,a)>0||n&&n.every((function(e){return Ke.default(e,a)>0}))||!1}function mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=we.default(e,1);return r&&Ke.default(a,r)>0||n&&n.every((function(e){return Ke.default(a,e)>0}))||!1}function br(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=Se.default(e,1);return r&&Ge.default(r,a)>0||n&&n.every((function(e){return Ge.default(e,a)>0}))||!1}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=ke.default(e,1);return r&&Ge.default(a,r)>0||n&&n.every((function(e){return Ge.default(a,e)>0}))||!1}function wr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return Qe.default(e,t)>=0}));return qe.default(n)}return r?qe.default(r):t}function xr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return Qe.default(e,t)<=0}));return ze.default(n)}return r?ze.default(r):t}function kr(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"react-datepicker__day--highlighted",r=new Map,n=0,a=e.length;n<a;n++){var o=e[n];if(fe.default(o)){var i=It(o,"MM.dd.yyyy"),s=r.get(i)||[];s.includes(t)||(s.push(t),r.set(i,s))}else if("object"===yt(o)){var l=Object.keys(o),u=l[0],c=o[l[0]];if("string"==typeof u&&c.constructor===Array)for(var d=0,p=c.length;d<p;d++){var f=It(c[d],"MM.dd.yyyy"),h=r.get(f)||[];h.includes(u)||(h.push(u),r.set(f,h))}}}return r}function Dr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"react-datepicker__day--holidays",r=new Map;return e.forEach((function(e){var n=e.date,a=e.holidayName;if(fe.default(n)){var o=It(n,"MM.dd.yyyy"),i=r.get(o)||{};if(!("className"in i)||i.className!==t||(s=i.holidayNames,l=[a],s.length!==l.length||!s.every((function(e,t){return e===l[t]})))){var s,l;i.className=t;var u=i.holidayNames;i.holidayNames=u?[].concat(Tt(u),[a]):[a],r.set(o,i)}}})),r}function Cr(e,t,r,n,a){for(var o=a.length,i=[],s=0;s<o;s++){var l=ge.default(me.default(e,Te.default(a[s])),Me.default(a[s])),u=ge.default(e,(r+1)*n);lt.default(l,t)&&ut.default(l,u)&&i.push(a[s])}return i}function Er(e){return e<10?"0".concat(e):"".concat(e)}function Ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ft,r=Math.ceil(Fe.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Sr(e){var t=e.getSeconds(),r=e.getMilliseconds();return dt.default(e.getTime()-1e3*t-r)}function _r(e,t,r,n){for(var a=[],o=0;o<2*t+1;o++){var i=e+t-o,s=!0;r&&(s=Fe.default(r)<=i),n&&s&&(s=Fe.default(n)>=i),s&&a.push(i)}return a}var Mr=function(e){Et(n,e);var r=Mt(n);function n(e){var a;wt(this,n),Dt(_t(a=r.call(this,e)),"renderOptions",(function(){var e=a.props.year,t=a.state.yearsList.map((function(t){return de.default.createElement("div",{className:e===t?"react-datepicker__year-option react-datepicker__year-option--selected_year":"react-datepicker__year-option",key:t,onClick:a.onChange.bind(_t(a),t),"aria-selected":e===t?"true":void 0},e===t?de.default.createElement("span",{className:"react-datepicker__year-option--selected"},"\u2713"):"",t)})),r=a.props.minDate?Fe.default(a.props.minDate):null,n=a.props.maxDate?Fe.default(a.props.maxDate):null;return n&&a.state.yearsList.find((function(e){return e===n}))||t.unshift(de.default.createElement("div",{className:"react-datepicker__year-option",key:"upcoming",onClick:a.incrementYears},de.default.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming"}))),r&&a.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement("div",{className:"react-datepicker__year-option",key:"previous",onClick:a.decrementYears},de.default.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous"}))),t})),Dt(_t(a),"onChange",(function(e){a.props.onChange(e)})),Dt(_t(a),"handleClickOutside",(function(){a.props.onCancel()})),Dt(_t(a),"shiftYears",(function(e){var t=a.state.yearsList.map((function(t){return t+e}));a.setState({yearsList:t})})),Dt(_t(a),"incrementYears",(function(){return a.shiftYears(1)})),Dt(_t(a),"decrementYears",(function(){return a.shiftYears(-1)}));var o=e.yearDropdownItemNumber,i=e.scrollableYearDropdown,s=o||(i?10:5);return a.state={yearsList:_r(a.props.year,s,a.props.minDate,a.props.maxDate)},a.dropdownRef=t.createRef(),a}return kt(n,[{key:"componentDidMount",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:"render",value:function(){var e=pe.default({"react-datepicker__year-dropdown":!0,"react-datepicker__year-dropdown--scrollable":this.props.scrollableYearDropdown});return de.default.createElement("div",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),n}(de.default.Component),Tr=ht.default(Mr),Or=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Dt(_t(e),"renderSelectOptions",(function(){for(var t=e.props.minDate?Fe.default(e.props.minDate):1900,r=e.props.maxDate?Fe.default(e.props.maxDate):2100,n=[],a=t;a<=r;a++)n.push(de.default.createElement("option",{key:a,value:a},a));return n})),Dt(_t(e),"onSelectChange",(function(t){e.onChange(t.target.value)})),Dt(_t(e),"renderSelectMode",(function(){return de.default.createElement("select",{value:e.props.year,className:"react-datepicker__year-select",onChange:e.onSelectChange},e.renderSelectOptions())})),Dt(_t(e),"renderReadView",(function(t){return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__year-read-view",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement("span",{className:"react-datepicker__year-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__year-read-view--selected-year"},e.props.year))})),Dt(_t(e),"renderDropdown",(function(){return de.default.createElement(Tr,{key:"dropdown",year:e.props.year,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableYearDropdown:e.props.scrollableYearDropdown,yearDropdownItemNumber:e.props.yearDropdownItemNumber})})),Dt(_t(e),"renderScrollMode",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),Dt(_t(e),"onChange",(function(t){e.toggleDropdown(),t!==e.props.year&&e.props.onChange(t)})),Dt(_t(e),"toggleDropdown",(function(t){e.setState({dropdownVisible:!e.state.dropdownVisible},(function(){e.props.adjustDateOnChange&&e.handleYearChange(e.props.date,t)}))})),Dt(_t(e),"handleYearChange",(function(t,r){e.onSelect(t,r),e.setOpen()})),Dt(_t(e),"onSelect",(function(t,r){e.props.onSelect&&e.props.onSelect(t,r)})),Dt(_t(e),"setOpen",(function(){e.props.setOpen&&e.props.setOpen(!0)})),e}return kt(r,[{key:"render",value:function(){var e;switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode();break;case"select":e=this.renderSelectMode()}return de.default.createElement("div",{className:"react-datepicker__year-dropdown-container react-datepicker__year-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),Pr=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"isSelectedMonth",(function(t){return e.props.month===t})),Dt(_t(e),"renderOptions",(function(){return e.props.monthNames.map((function(t,r){return de.default.createElement("div",{className:e.isSelectedMonth(r)?"react-datepicker__month-option react-datepicker__month-option--selected_month":"react-datepicker__month-option",key:t,onClick:e.onChange.bind(_t(e),r),"aria-selected":e.isSelectedMonth(r)?"true":void 0},e.isSelectedMonth(r)?de.default.createElement("span",{className:"react-datepicker__month-option--selected"},"\u2713"):"",t)}))})),Dt(_t(e),"onChange",(function(t){return e.props.onChange(t)})),Dt(_t(e),"handleClickOutside",(function(){return e.props.onCancel()})),e}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__month-dropdown"},this.renderOptions())}}]),r}(de.default.Component),Nr=ht.default(Pr),Rr=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Dt(_t(e),"renderSelectOptions",(function(e){return e.map((function(e,t){return de.default.createElement("option",{key:t,value:t},e)}))})),Dt(_t(e),"renderSelectMode",(function(t){return de.default.createElement("select",{value:e.props.month,className:"react-datepicker__month-select",onChange:function(t){return e.onChange(t.target.value)}},e.renderSelectOptions(t))})),Dt(_t(e),"renderReadView",(function(t,r){return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__month-read-view",onClick:e.toggleDropdown},de.default.createElement("span",{className:"react-datepicker__month-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__month-read-view--selected-month"},r[e.props.month]))})),Dt(_t(e),"renderDropdown",(function(t){return de.default.createElement(Nr,{key:"dropdown",month:e.props.month,monthNames:t,onChange:e.onChange,onCancel:e.toggleDropdown})})),Dt(_t(e),"renderScrollMode",(function(t){var r=e.state.dropdownVisible,n=[e.renderReadView(!r,t)];return r&&n.unshift(e.renderDropdown(t)),n})),Dt(_t(e),"onChange",(function(t){e.toggleDropdown(),t!==e.props.month&&e.props.onChange(t)})),Dt(_t(e),"toggleDropdown",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return kt(r,[{key:"render",value:function(){var e,t=this,r=[0,1,2,3,4,5,6,7,8,9,10,11].map(this.props.useShortMonthInDropdown?function(e){return nr(e,t.props.locale)}:function(e){return rr(e,t.props.locale)});switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode(r);break;case"select":e=this.renderSelectMode(r)}return de.default.createElement("div",{className:"react-datepicker__month-dropdown-container react-datepicker__month-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component);function Lr(e,t){for(var r=[],n=qt(e),a=qt(t);!lt.default(n,a);)r.push(jt(n)),n=we.default(n,1);return r}var Fr=function(e){Et(r,e);var t=Mt(r);function r(e){var n;return wt(this,r),Dt(_t(n=t.call(this,e)),"renderOptions",(function(){return n.state.monthYearsList.map((function(e){var t=Ye.default(e),r=Gt(n.props.date,e)&&Xt(n.props.date,e);return de.default.createElement("div",{className:r?"react-datepicker__month-year-option--selected_month-year":"react-datepicker__month-year-option",key:t,onClick:n.onChange.bind(_t(n),t),"aria-selected":r?"true":void 0},r?de.default.createElement("span",{className:"react-datepicker__month-year-option--selected"},"\u2713"):"",It(e,n.props.dateFormat,n.props.locale))}))})),Dt(_t(n),"onChange",(function(e){return n.props.onChange(e)})),Dt(_t(n),"handleClickOutside",(function(){n.props.onCancel()})),n.state={monthYearsList:Lr(n.props.minDate,n.props.maxDate)},n}return kt(r,[{key:"render",value:function(){var e=pe.default({"react-datepicker__month-year-dropdown":!0,"react-datepicker__month-year-dropdown--scrollable":this.props.scrollableMonthYearDropdown});return de.default.createElement("div",{className:e},this.renderOptions())}}]),r}(de.default.Component),Yr=ht.default(Fr),jr=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Dt(_t(e),"renderSelectOptions",(function(){for(var t=qt(e.props.minDate),r=qt(e.props.maxDate),n=[];!lt.default(t,r);){var a=Ye.default(t);n.push(de.default.createElement("option",{key:a,value:a},It(t,e.props.dateFormat,e.props.locale))),t=we.default(t,1)}return n})),Dt(_t(e),"onSelectChange",(function(t){e.onChange(t.target.value)})),Dt(_t(e),"renderSelectMode",(function(){return de.default.createElement("select",{value:Ye.default(qt(e.props.date)),className:"react-datepicker__month-year-select",onChange:e.onSelectChange},e.renderSelectOptions())})),Dt(_t(e),"renderReadView",(function(t){var r=It(e.props.date,e.props.dateFormat,e.props.locale);return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__month-year-read-view",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement("span",{className:"react-datepicker__month-year-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__month-year-read-view--selected-month-year"},r))})),Dt(_t(e),"renderDropdown",(function(){return de.default.createElement(Yr,{key:"dropdown",date:e.props.date,dateFormat:e.props.dateFormat,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableMonthYearDropdown:e.props.scrollableMonthYearDropdown,locale:e.props.locale})})),Dt(_t(e),"renderScrollMode",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),Dt(_t(e),"onChange",(function(t){e.toggleDropdown();var r=jt(parseInt(t));Gt(e.props.date,r)&&Xt(e.props.date,r)||e.props.onChange(r)})),Dt(_t(e),"toggleDropdown",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return kt(r,[{key:"render",value:function(){var e;switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode();break;case"select":e=this.renderSelectMode()}return de.default.createElement("div",{className:"react-datepicker__month-year-dropdown-container react-datepicker__month-year-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),Br=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"dayEl",de.default.createRef()),Dt(_t(e),"handleClick",(function(t){!e.isDisabled()&&e.props.onClick&&e.props.onClick(t)})),Dt(_t(e),"handleMouseEnter",(function(t){!e.isDisabled()&&e.props.onMouseEnter&&e.props.onMouseEnter(t)})),Dt(_t(e),"handleOnKeyDown",(function(t){" "===t.key&&(t.preventDefault(),t.key="Enter"),e.props.handleOnKeyDown(t)})),Dt(_t(e),"isSameDay",(function(t){return $t(e.props.day,t)})),Dt(_t(e),"isKeyboardSelected",(function(){return!e.props.disabledKeyboardNavigation&&!(e.isSameDay(e.props.selected)||e.isSameWeek(e.props.selected))&&(e.isSameDay(e.props.preSelection)||e.isSameWeek(e.props.preSelection))})),Dt(_t(e),"isDisabled",(function(){return ar(e.props.day,e.props)})),Dt(_t(e),"isExcluded",(function(){return or(e.props.day,e.props)})),Dt(_t(e),"isStartOfWeek",(function(){return $t(e.props.day,Ut(e.props.day,e.props.locale,e.props.calendarStartDay))})),Dt(_t(e),"isSameWeek",(function(t){return e.props.showWeekPicker&&$t(t,Ut(e.props.day,e.props.locale,e.props.calendarStartDay))})),Dt(_t(e),"getHighLightedClass",(function(){var t=e.props,r=t.day,n=t.highlightDates;if(!n)return!1;var a=It(r,"MM.dd.yyyy");return n.get(a)})),Dt(_t(e),"getHolidaysClass",(function(){var t=e.props,r=t.day,n=t.holidays;if(!n)return!1;var a=It(r,"MM.dd.yyyy");return n.has(a)?[n.get(a).className]:void 0})),Dt(_t(e),"isInRange",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&Jt(r,n,a)})),Dt(_t(e),"isInSelectingRange",(function(){var t,r=e.props,n=r.day,a=r.selectsStart,o=r.selectsEnd,i=r.selectsRange,s=r.selectsDisabledDaysInRange,l=r.startDate,u=r.endDate,c=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return!(!(a||o||i)||!c||!s&&e.isDisabled())&&(a&&u&&(ut.default(c,u)||Zt(c,u))?Jt(n,c,u):(o&&l&&(lt.default(c,l)||Zt(c,l))||!(!i||!l||u||!lt.default(c,l)&&!Zt(c,l)))&&Jt(n,l,c))})),Dt(_t(e),"isSelectingRangeStart",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,n=r.day,a=r.startDate,o=r.selectsStart,i=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return $t(n,o?i:a)})),Dt(_t(e),"isSelectingRangeEnd",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,n=r.day,a=r.endDate,o=r.selectsEnd,i=r.selectsRange,s=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return $t(n,o||i?s:a)})),Dt(_t(e),"isRangeStart",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&$t(n,r)})),Dt(_t(e),"isRangeEnd",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&$t(a,r)})),Dt(_t(e),"isWeekend",(function(){var t=Oe.default(e.props.day);return 0===t||6===t})),Dt(_t(e),"isAfterMonth",(function(){return void 0!==e.props.month&&(e.props.month+1)%12===Re.default(e.props.day)})),Dt(_t(e),"isBeforeMonth",(function(){return void 0!==e.props.month&&(Re.default(e.props.day)+1)%12===e.props.month})),Dt(_t(e),"isCurrentDay",(function(){return e.isSameDay(jt())})),Dt(_t(e),"isSelected",(function(){return e.isSameDay(e.props.selected)||e.isSameWeek(e.props.selected)})),Dt(_t(e),"getClassNames",(function(t){var r,n=e.props.dayClassName?e.props.dayClassName(t):void 0;return pe.default("react-datepicker__day",n,"react-datepicker__day--"+It(e.props.day,"ddd",r),{"react-datepicker__day--disabled":e.isDisabled(),"react-datepicker__day--excluded":e.isExcluded(),"react-datepicker__day--selected":e.isSelected(),"react-datepicker__day--keyboard-selected":e.isKeyboardSelected(),"react-datepicker__day--range-start":e.isRangeStart(),"react-datepicker__day--range-end":e.isRangeEnd(),"react-datepicker__day--in-range":e.isInRange(),"react-datepicker__day--in-selecting-range":e.isInSelectingRange(),"react-datepicker__day--selecting-range-start":e.isSelectingRangeStart(),"react-datepicker__day--selecting-range-end":e.isSelectingRangeEnd(),"react-datepicker__day--today":e.isCurrentDay(),"react-datepicker__day--weekend":e.isWeekend(),"react-datepicker__day--outside-month":e.isAfterMonth()||e.isBeforeMonth()},e.getHighLightedClass("react-datepicker__day--highlighted"),e.getHolidaysClass())})),Dt(_t(e),"getAriaLabel",(function(){var t=e.props,r=t.day,n=t.ariaLabelPrefixWhenEnabled,a=void 0===n?"Choose":n,o=t.ariaLabelPrefixWhenDisabled,i=void 0===o?"Not available":o,s=e.isDisabled()||e.isExcluded()?i:a;return"".concat(s," ").concat(It(r,"PPPP",e.props.locale))})),Dt(_t(e),"getTitle",(function(){var t=e.props,r=t.day,n=t.holidays,a=void 0===n?new Map:n,o=It(r,"MM.dd.yyyy");return a.has(o)&&a.get(o).holidayNames.length>0?a.get(o).holidayNames.join(", "):""})),Dt(_t(e),"getTabIndex",(function(t,r){var n=t||e.props.selected,a=r||e.props.preSelection;return(!e.props.showWeekPicker||!e.props.showWeekNumber&&e.isStartOfWeek())&&(e.isKeyboardSelected()||e.isSameDay(n)&&$t(a,n))?0:-1})),Dt(_t(e),"handleFocusDay",(function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=!1;0===e.getTabIndex()&&!r.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(n=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(n=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains("react-datepicker__day")&&(n=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(n=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(n=!1)),n&&(null===(t=e.dayEl.current)||void 0===t||t.focus({preventScroll:!0}))})),Dt(_t(e),"renderDayContents",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Pe.default(e.props.day),e.props.day):Pe.default(e.props.day)})),Dt(_t(e),"render",(function(){return de.default.createElement("div",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),"aria-label":e.getAriaLabel(),role:"option",title:e.getTitle(),"aria-disabled":e.isDisabled(),"aria-current":e.isCurrentDay()?"date":void 0,"aria-selected":e.isSelected()||e.isInRange()},e.renderDayContents(),""!==e.getTitle()&&de.default.createElement("span",{className:"holiday-overlay"},e.getTitle()))})),e}return kt(r,[{key:"componentDidMount",value:function(){this.handleFocusDay()}},{key:"componentDidUpdate",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),Ir=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"weekNumberEl",de.default.createRef()),Dt(_t(e),"handleClick",(function(t){e.props.onClick&&e.props.onClick(t)})),Dt(_t(e),"handleOnKeyDown",(function(t){" "===t.key&&(t.preventDefault(),t.key="Enter"),e.props.handleOnKeyDown(t)})),Dt(_t(e),"isKeyboardSelected",(function(){return!e.props.disabledKeyboardNavigation&&!$t(e.props.date,e.props.selected)&&$t(e.props.date,e.props.preSelection)})),Dt(_t(e),"getTabIndex",(function(){return e.props.showWeekPicker&&e.props.showWeekNumber&&(e.isKeyboardSelected()||$t(e.props.date,e.props.selected)&&$t(e.props.preSelection,e.props.selected))?0:-1})),Dt(_t(e),"handleFocusWeekNumber",(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&$t(e.props.date,e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement&&document.activeElement.classList.contains("react-datepicker__week-number")&&(r=!0)),r&&e.weekNumberEl.current&&e.weekNumberEl.current.focus({preventScroll:!0})})),e}return kt(r,[{key:"componentDidMount",value:function(){this.handleFocusWeekNumber()}},{key:"componentDidUpdate",value:function(e){this.handleFocusWeekNumber(e)}},{key:"render",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,n=void 0===r?"week ":r,a={"react-datepicker__week-number":!0,"react-datepicker__week-number--clickable":!!e.onClick,"react-datepicker__week-number--selected":$t(this.props.date,this.props.selected),"react-datepicker__week-number--keyboard-selected":this.isKeyboardSelected()};return de.default.createElement("div",{ref:this.weekNumberEl,className:pe.default(a),"aria-label":"".concat(n," ").concat(this.props.weekNumber),onClick:this.handleClick,onKeyDown:this.handleOnKeyDown,tabIndex:this.getTabIndex()},t)}}],[{key:"defaultProps",get:function(){return{ariaLabelPrefix:"week "}}}]),r}(de.default.Component),Hr=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"handleDayClick",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r)})),Dt(_t(e),"handleDayMouseEnter",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),Dt(_t(e),"handleWeekClick",(function(t,r,n){if("function"==typeof e.props.onWeekSelect&&e.props.onWeekSelect(t,r,n),e.props.showWeekPicker){var a=Ut(t,e.props.locale,e.props.calendarStartDay);e.handleDayClick(a,n)}e.props.shouldCloseOnSelect&&e.props.setOpen(!1)})),Dt(_t(e),"formatWeekNumber",(function(t){return e.props.formatWeekNumber?e.props.formatWeekNumber(t):function(e,t){var r=t&&tr(t)||er()&&tr(er());return Ne.default(e,r?{locale:r}:null)}(t)})),Dt(_t(e),"renderDays",(function(){var t=Ut(e.props.day,e.props.locale,e.props.calendarStartDay),r=[],n=e.formatWeekNumber(t);if(e.props.showWeekNumber){var a=e.props.onWeekSelect||e.props.showWeekPicker?e.handleWeekClick.bind(_t(e),t,n):void 0;r.push(de.default.createElement(Ir,{key:"W",weekNumber:n,date:t,onClick:a,selected:e.props.selected,preSelection:e.props.preSelection,ariaLabelPrefix:e.props.ariaLabelPrefix,showWeekPicker:e.props.showWeekPicker,showWeekNumber:e.props.showWeekNumber,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef}))}return r.concat([0,1,2,3,4,5,6].map((function(r){var n=be.default(t,r);return de.default.createElement(Br,{ariaLabelPrefixWhenEnabled:e.props.chooseDayAriaLabelPrefix,ariaLabelPrefixWhenDisabled:e.props.disabledDayAriaLabelPrefix,key:n.valueOf(),day:n,month:e.props.month,onClick:e.handleDayClick.bind(_t(e),n),onMouseEnter:e.handleDayMouseEnter.bind(_t(e),n),minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,highlightDates:e.props.highlightDates,holidays:e.props.holidays,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,showWeekPicker:e.props.showWeekPicker,showWeekNumber:e.props.showWeekNumber,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,renderDayContents:e.props.renderDayContents,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart,locale:e.props.locale})})))})),Dt(_t(e),"startOfWeek",(function(){return Ut(e.props.day,e.props.locale,e.props.calendarStartDay)})),Dt(_t(e),"isKeyboardSelected",(function(){return!e.props.disabledKeyboardNavigation&&!$t(e.startOfWeek(),e.props.selected)&&$t(e.startOfWeek(),e.props.preSelection)})),e}return kt(r,[{key:"render",value:function(){var e={"react-datepicker__week":!0,"react-datepicker__week--selected":$t(this.startOfWeek(),this.props.selected),"react-datepicker__week--keyboard-selected":this.isKeyboardSelected()};return de.default.createElement("div",{className:pe.default(e)},this.renderDays())}}],[{key:"defaultProps",get:function(){return{shouldCloseOnSelect:!0}}}]),r}(de.default.Component),Wr="two_columns",Ur="three_columns",qr="four_columns",zr=Dt(Dt(Dt({},Wr,{grid:[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]],verticalNavigationOffset:2}),Ur,{grid:[[0,1,2],[3,4,5],[6,7,8],[9,10,11]],verticalNavigationOffset:3}),qr,{grid:[[0,1,2,3],[4,5,6,7],[8,9,10,11]],verticalNavigationOffset:4});function Qr(e,t){return e?qr:t?Wr:Ur}var Kr=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"MONTH_REFS",Tt(Array(12)).map((function(){return de.default.createRef()}))),Dt(_t(e),"QUARTER_REFS",Tt(Array(4)).map((function(){return de.default.createRef()}))),Dt(_t(e),"isDisabled",(function(t){return ar(t,e.props)})),Dt(_t(e),"isExcluded",(function(t){return or(t,e.props)})),Dt(_t(e),"handleDayClick",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r,e.props.orderInDisplay)})),Dt(_t(e),"handleDayMouseEnter",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),Dt(_t(e),"handleMouseLeave",(function(){e.props.onMouseLeave&&e.props.onMouseLeave()})),Dt(_t(e),"isRangeStartMonth",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Xt(He.default(n,t),a)})),Dt(_t(e),"isRangeStartQuarter",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Vt(We.default(n,t),a)})),Dt(_t(e),"isRangeEndMonth",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Xt(He.default(n,t),o)})),Dt(_t(e),"isRangeEndQuarter",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Vt(We.default(n,t),o)})),Dt(_t(e),"isInSelectingRangeMonth",(function(t){var r,n=e.props,a=n.day,o=n.selectsStart,i=n.selectsEnd,s=n.selectsRange,l=n.startDate,u=n.endDate,c=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return!(!(o||i||s)||!c)&&(o&&u?sr(c,u,t,a):(i&&l||!(!s||!l||u))&&sr(l,c,t,a))})),Dt(_t(e),"isSelectingMonthRangeStart",(function(t){var r;if(!e.isInSelectingRangeMonth(t))return!1;var n=e.props,a=n.day,o=n.startDate,i=n.selectsStart,s=He.default(a,t),l=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return Xt(s,i?l:o)})),Dt(_t(e),"isSelectingMonthRangeEnd",(function(t){var r;if(!e.isInSelectingRangeMonth(t))return!1;var n=e.props,a=n.day,o=n.endDate,i=n.selectsEnd,s=n.selectsRange,l=He.default(a,t),u=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return Xt(l,i||s?u:o)})),Dt(_t(e),"isInSelectingRangeQuarter",(function(t){var r,n=e.props,a=n.day,o=n.selectsStart,i=n.selectsEnd,s=n.selectsRange,l=n.startDate,u=n.endDate,c=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return!(!(o||i||s)||!c)&&(o&&u?dr(c,u,t,a):(i&&l||!(!s||!l||u))&&dr(l,c,t,a))})),Dt(_t(e),"isWeekInMonth",(function(t){var r=e.props.day,n=be.default(t,6);return Xt(t,r)||Xt(n,r)})),Dt(_t(e),"isCurrentMonth",(function(e,t){return Fe.default(e)===Fe.default(jt())&&t===Re.default(jt())})),Dt(_t(e),"isCurrentQuarter",(function(e,t){return Fe.default(e)===Fe.default(jt())&&t===Le.default(jt())})),Dt(_t(e),"isSelectedMonth",(function(e,t,r){return Re.default(r)===t&&Fe.default(e)===Fe.default(r)})),Dt(_t(e),"isSelectedQuarter",(function(e,t,r){return Le.default(e)===t&&Fe.default(e)===Fe.default(r)})),Dt(_t(e),"renderWeeks",(function(){for(var t=[],r=e.props.fixedHeight,n=0,a=!1,o=Ut(qt(e.props.day),e.props.locale,e.props.calendarStartDay);t.push(de.default.createElement(Hr,{ariaLabelPrefix:e.props.weekAriaLabelPrefix,chooseDayAriaLabelPrefix:e.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:e.props.disabledDayAriaLabelPrefix,key:n,day:o,month:Re.default(e.props.day),onDayClick:e.handleDayClick,onDayMouseEnter:e.handleDayMouseEnter,onWeekSelect:e.props.onWeekSelect,formatWeekNumber:e.props.formatWeekNumber,locale:e.props.locale,minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,highlightDates:e.props.highlightDates,holidays:e.props.holidays,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,showWeekNumber:e.props.showWeekNumbers,showWeekPicker:e.props.showWeekPicker,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,setOpen:e.props.setOpen,shouldCloseOnSelect:e.props.shouldCloseOnSelect,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,renderDayContents:e.props.renderDayContents,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,calendarStartDay:e.props.calendarStartDay,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart})),!a;){n++,o=ye.default(o,1);var i=r&&n>=6,s=!r&&!e.isWeekInMonth(o);if(i||s){if(!e.props.peekNextMonth)break;a=!0}}return t})),Dt(_t(e),"onMonthClick",(function(t,r){e.handleDayClick(qt(He.default(e.props.day,r)),t)})),Dt(_t(e),"onMonthMouseEnter",(function(t){e.handleDayMouseEnter(qt(He.default(e.props.day,t)))})),Dt(_t(e),"handleMonthNavigation",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),Dt(_t(e),"onMonthKeyDown",(function(t,r){var n=e.props,a=n.selected,o=n.preSelection,i=n.disabledKeyboardNavigation,s=n.showTwoColumnMonthYearPicker,l=n.showFourColumnMonthYearPicker,u=n.setPreSelection,c=t.key;if("Tab"!==c&&t.preventDefault(),!i){var d=Qr(l,s),p=zr[d].verticalNavigationOffset,f=zr[d].grid;switch(c){case"Enter":e.onMonthClick(t,r),u(a);break;case"ArrowRight":e.handleMonthNavigation(11===r?0:r+1,we.default(o,1));break;case"ArrowLeft":e.handleMonthNavigation(0===r?11:r-1,Ee.default(o,1));break;case"ArrowUp":e.handleMonthNavigation(f[0].includes(r)?r+12-p:r-p,Ee.default(o,p));break;case"ArrowDown":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+p:r+p,we.default(o,p))}}})),Dt(_t(e),"onQuarterClick",(function(t,r){e.handleDayClick(Qt(We.default(e.props.day,r)),t)})),Dt(_t(e),"onQuarterMouseEnter",(function(t){e.handleDayMouseEnter(Qt(We.default(e.props.day,t)))})),Dt(_t(e),"handleQuarterNavigation",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),Dt(_t(e),"onQuarterKeyDown",(function(t,r){var n=t.key;if(!e.props.disabledKeyboardNavigation)switch(n){case"Enter":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case"ArrowRight":e.handleQuarterNavigation(4===r?1:r+1,xe.default(e.props.preSelection,1));break;case"ArrowLeft":e.handleQuarterNavigation(1===r?4:r-1,Ae.default(e.props.preSelection,1))}})),Dt(_t(e),"getMonthClassNames",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate,i=r.selected,s=r.minDate,l=r.maxDate,u=r.preSelection,c=r.monthClassName,d=r.excludeDates,p=r.includeDates,f=c?c(He.default(n,t)):void 0,h=He.default(n,t);return pe.default("react-datepicker__month-text","react-datepicker__month-".concat(t),f,{"react-datepicker__month-text--disabled":(s||l||d||p)&&ir(h,e.props),"react-datepicker__month-text--selected":e.isSelectedMonth(n,t,i),"react-datepicker__month-text--keyboard-selected":!e.props.disabledKeyboardNavigation&&Re.default(u)===t,"react-datepicker__month-text--in-selecting-range":e.isInSelectingRangeMonth(t),"react-datepicker__month-text--in-range":sr(a,o,t,n),"react-datepicker__month-text--range-start":e.isRangeStartMonth(t),"react-datepicker__month-text--range-end":e.isRangeEndMonth(t),"react-datepicker__month-text--selecting-range-start":e.isSelectingMonthRangeStart(t),"react-datepicker__month-text--selecting-range-end":e.isSelectingMonthRangeEnd(t),"react-datepicker__month-text--today":e.isCurrentMonth(n,t)})})),Dt(_t(e),"getTabIndex",(function(t){var r=Re.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?"-1":"0"})),Dt(_t(e),"getQuarterTabIndex",(function(t){var r=Le.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?"-1":"0"})),Dt(_t(e),"getAriaLabel",(function(t){var r=e.props,n=r.chooseDayAriaLabelPrefix,a=void 0===n?"Choose":n,o=r.disabledDayAriaLabelPrefix,i=void 0===o?"Not available":o,s=r.day,l=He.default(s,t),u=e.isDisabled(l)||e.isExcluded(l)?i:a;return"".concat(u," ").concat(It(l,"MMMM yyyy"))})),Dt(_t(e),"getQuarterClassNames",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate,i=r.selected,s=r.minDate,l=r.maxDate,u=r.preSelection,c=r.disabledKeyboardNavigation;return pe.default("react-datepicker__quarter-text","react-datepicker__quarter-".concat(t),{"react-datepicker__quarter-text--disabled":(s||l)&&lr(We.default(n,t),e.props),"react-datepicker__quarter-text--selected":e.isSelectedQuarter(n,t,i),"react-datepicker__quarter-text--keyboard-selected":!c&&Le.default(u)===t,"react-datepicker__quarter-text--in-selecting-range":e.isInSelectingRangeQuarter(t),"react-datepicker__quarter-text--in-range":dr(a,o,t,n),"react-datepicker__quarter-text--range-start":e.isRangeStartQuarter(t),"react-datepicker__quarter-text--range-end":e.isRangeEndQuarter(t)})})),Dt(_t(e),"getMonthContent",(function(t){var r=e.props,n=r.showFullMonthYearPicker,a=r.renderMonthContent,o=r.locale,i=nr(t,o),s=rr(t,o);return a?a(t,i,s):n?s:i})),Dt(_t(e),"getQuarterContent",(function(t){var r=e.props,n=r.renderQuarterContent,a=function(e,t){return It(We.default(jt(),e),"QQQ",t)}(t,r.locale);return n?n(t,a):a})),Dt(_t(e),"renderMonths",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,n=t.showFourColumnMonthYearPicker,a=t.day,o=t.selected;return zr[Qr(n,r)].grid.map((function(t,r){return de.default.createElement("div",{className:"react-datepicker__month-wrapper",key:r},t.map((function(t,r){return de.default.createElement("div",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:"option","aria-label":e.getAriaLabel(t),"aria-current":e.isCurrentMonth(a,t)?"date":void 0,"aria-selected":e.isSelectedMonth(a,t,o)},e.getMonthContent(t))})))}))})),Dt(_t(e),"renderQuarters",(function(){var t=e.props,r=t.day,n=t.selected;return de.default.createElement("div",{className:"react-datepicker__quarter-wrapper"},[1,2,3,4].map((function(t,a){return de.default.createElement("div",{key:a,ref:e.QUARTER_REFS[a],role:"option",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),"aria-selected":e.isSelectedQuarter(r,t,n),tabIndex:e.getQuarterTabIndex(t),"aria-current":e.isCurrentQuarter(r,t)?"date":void 0},e.getQuarterContent(t))})))})),Dt(_t(e),"getClassNames",(function(){var t=e.props,r=t.selectingDate,n=t.selectsStart,a=t.selectsEnd,o=t.showMonthYearPicker,i=t.showQuarterYearPicker,s=t.showWeekPicker;return pe.default("react-datepicker__month",{"react-datepicker__month--selecting-range":r&&(n||a)},{"react-datepicker__monthPicker":o},{"react-datepicker__quarterPicker":i},{"react-datepicker__weekPicker":s})})),e}return kt(r,[{key:"render",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,n=e.day,a=e.ariaLabelPrefix,o=void 0===a?"month ":a;return de.default.createElement("div",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,"aria-label":"".concat(o," ").concat(It(n,"yyyy-MM")),role:"listbox"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),Gr=function(e){Et(r,e);var t=Mt(r);function r(){var e;wt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Dt(_t(e=t.call.apply(t,[this].concat(a))),"state",{height:null}),Dt(_t(e),"scrollToTheSelectedTime",(function(){requestAnimationFrame((function(){e.list&&(e.list.scrollTop=e.centerLi&&r.calcCenterPosition(e.props.monthRef?e.props.monthRef.clientHeight-e.header.clientHeight:e.list.clientHeight,e.centerLi))}))})),Dt(_t(e),"handleClick",(function(t){(e.props.minTime||e.props.maxTime)&&vr(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&hr(t,e.props)||e.props.onChange(t)})),Dt(_t(e),"isSelectedTime",(function(t){return e.props.selected&&(r=t,Sr(e.props.selected).getTime()===Sr(r).getTime());var r})),Dt(_t(e),"isDisabledTime",(function(t){return(e.props.minTime||e.props.maxTime)&&vr(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&hr(t,e.props)})),Dt(_t(e),"liClasses",(function(t){var r=["react-datepicker__time-list-item",e.props.timeClassName?e.props.timeClassName(t):void 0];return e.isSelectedTime(t)&&r.push("react-datepicker__time-list-item--selected"),e.isDisabledTime(t)&&r.push("react-datepicker__time-list-item--disabled"),e.props.injectTimes&&(60*Te.default(t)+Me.default(t))%e.props.intervals!=0&&r.push("react-datepicker__time-list-item--injected"),r.join(" ")})),Dt(_t(e),"handleOnKeyDown",(function(t,r){" "===t.key&&(t.preventDefault(),t.key="Enter"),"ArrowUp"!==t.key&&"ArrowLeft"!==t.key||!t.target.previousSibling||(t.preventDefault(),t.target.previousSibling.focus()),"ArrowDown"!==t.key&&"ArrowRight"!==t.key||!t.target.nextSibling||(t.preventDefault(),t.target.nextSibling.focus()),"Enter"===t.key&&e.handleClick(r),e.props.handleOnKeyDown(t)})),Dt(_t(e),"renderTimes",(function(){for(var t,r=[],n=e.props.format?e.props.format:"p",a=e.props.intervals,o=e.props.selected||e.props.openToDate||jt(),i=(t=o,Xe.default(t)),s=e.props.injectTimes&&e.props.injectTimes.sort((function(e,t){return e-t})),l=60*function(e){var t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=new Date(e.getFullYear(),e.getMonth(),e.getDate(),24);return Math.round((+r-+t)/36e5)}(o),u=l/a,c=0;c<u;c++){var d=ge.default(i,c*a);if(r.push(d),s){var p=Cr(i,d,c,a,s);r=r.concat(p)}}var f=r.reduce((function(e,t){return t.getTime()<=o.getTime()?t:e}),r[0]);return r.map((function(t,r){return de.default.createElement("li",{key:r,onClick:e.handleClick.bind(_t(e),t),className:e.liClasses(t),ref:function(r){t===f&&(e.centerLi=r)},onKeyDown:function(r){e.handleOnKeyDown(r,t)},tabIndex:t===f?0:-1,role:"option","aria-selected":e.isSelectedTime(t)?"true":void 0,"aria-disabled":e.isDisabledTime(t)?"true":void 0},It(t,n,e.props.locale))}))})),e}return kt(r,[{key:"componentDidMount",value:function(){this.scrollToTheSelectedTime(),this.props.monthRef&&this.header&&this.setState({height:this.props.monthRef.clientHeight-this.header.clientHeight})}},{key:"render",value:function(){var e=this,t=this.state.height;return de.default.createElement("div",{className:"react-datepicker__time-container ".concat(this.props.todayButton?"react-datepicker__time-container--with-today-button":"")},de.default.createElement("div",{className:"react-datepicker__header react-datepicker__header--time ".concat(this.props.showTimeSelectOnly?"react-datepicker__header--time--only":""),ref:function(t){e.header=t}},de.default.createElement("div",{className:"react-datepicker-time__header"},this.props.timeCaption)),de.default.createElement("div",{className:"react-datepicker__time"},de.default.createElement("div",{className:"react-datepicker__time-box"},de.default.createElement("ul",{className:"react-datepicker__time-list",ref:function(t){e.list=t},style:t?{height:t}:{},role:"listbox","aria-label":this.props.timeCaption},this.renderTimes()))))}}],[{key:"defaultProps",get:function(){return{intervals:30,onTimeChange:function(){},todayButton:null,timeCaption:"Time"}}}]),r}(de.default.Component);Dt(Gr,"calcCenterPosition",(function(e,t){return t.offsetTop-(e/2-t.clientHeight/2)}));var Xr=function(e){Et(r,e);var t=Mt(r);function r(e){var n;return wt(this,r),Dt(_t(n=t.call(this,e)),"YEAR_REFS",Tt(Array(n.props.yearItemNumber)).map((function(){return de.default.createRef()}))),Dt(_t(n),"isDisabled",(function(e){return ar(e,n.props)})),Dt(_t(n),"isExcluded",(function(e){return or(e,n.props)})),Dt(_t(n),"selectingDate",(function(){var e;return null!==(e=n.props.selectingDate)&&void 0!==e?e:n.props.preSelection})),Dt(_t(n),"updateFocusOnPaginate",(function(e){var t=function(){this.YEAR_REFS[e].current.focus()}.bind(_t(n));window.requestAnimationFrame(t)})),Dt(_t(n),"handleYearClick",(function(e,t){n.props.onDayClick&&n.props.onDayClick(e,t)})),Dt(_t(n),"handleYearNavigation",(function(e,t){var r=n.props,a=r.date,o=r.yearItemNumber,i=Ar(a,o).startPeriod;n.isDisabled(t)||n.isExcluded(t)||(n.props.setPreSelection(t),e-i==-1?n.updateFocusOnPaginate(o-1):e-i===o?n.updateFocusOnPaginate(0):n.YEAR_REFS[e-i].current.focus())})),Dt(_t(n),"isSameDay",(function(e,t){return $t(e,t)})),Dt(_t(n),"isCurrentYear",(function(e){return e===Fe.default(jt())})),Dt(_t(n),"isRangeStart",(function(e){return n.props.startDate&&n.props.endDate&&Gt(Ue.default(jt(),e),n.props.startDate)})),Dt(_t(n),"isRangeEnd",(function(e){return n.props.startDate&&n.props.endDate&&Gt(Ue.default(jt(),e),n.props.endDate)})),Dt(_t(n),"isInRange",(function(e){return ur(e,n.props.startDate,n.props.endDate)})),Dt(_t(n),"isInSelectingRange",(function(e){var t=n.props,r=t.selectsStart,a=t.selectsEnd,o=t.selectsRange,i=t.startDate,s=t.endDate;return!(!(r||a||o)||!n.selectingDate())&&(r&&s?ur(e,n.selectingDate(),s):(a&&i||!(!o||!i||s))&&ur(e,i,n.selectingDate()))})),Dt(_t(n),"isSelectingRangeStart",(function(e){if(!n.isInSelectingRange(e))return!1;var t=n.props,r=t.startDate,a=t.selectsStart;return Gt(Ue.default(jt(),e),a?n.selectingDate():r)})),Dt(_t(n),"isSelectingRangeEnd",(function(e){if(!n.isInSelectingRange(e))return!1;var t=n.props,r=t.endDate,a=t.selectsEnd,o=t.selectsRange;return Gt(Ue.default(jt(),e),a||o?n.selectingDate():r)})),Dt(_t(n),"isKeyboardSelected",(function(e){var t=zt(Ue.default(n.props.date,e));return!n.props.disabledKeyboardNavigation&&!n.props.inline&&!$t(t,zt(n.props.selected))&&$t(t,zt(n.props.preSelection))})),Dt(_t(n),"onYearClick",(function(e,t){var r=n.props.date;n.handleYearClick(zt(Ue.default(r,t)),e)})),Dt(_t(n),"onYearKeyDown",(function(e,t){var r=e.key;if(!n.props.disabledKeyboardNavigation)switch(r){case"Enter":n.onYearClick(e,t),n.props.setPreSelection(n.props.selected);break;case"ArrowRight":n.handleYearNavigation(t+1,ke.default(n.props.preSelection,1));break;case"ArrowLeft":n.handleYearNavigation(t-1,Se.default(n.props.preSelection,1))}})),Dt(_t(n),"getYearClassNames",(function(e){var t=n.props,r=t.minDate,a=t.maxDate,o=t.selected,i=t.excludeDates,s=t.includeDates,l=t.filterDate;return pe.default("react-datepicker__year-text",{"react-datepicker__year-text--selected":e===Fe.default(o),"react-datepicker__year-text--disabled":(r||a||i||s||l)&&cr(e,n.props),"react-datepicker__year-text--keyboard-selected":n.isKeyboardSelected(e),"react-datepicker__year-text--range-start":n.isRangeStart(e),"react-datepicker__year-text--range-end":n.isRangeEnd(e),"react-datepicker__year-text--in-range":n.isInRange(e),"react-datepicker__year-text--in-selecting-range":n.isInSelectingRange(e),"react-datepicker__year-text--selecting-range-start":n.isSelectingRangeStart(e),"react-datepicker__year-text--selecting-range-end":n.isSelectingRangeEnd(e),"react-datepicker__year-text--today":n.isCurrentYear(e)})})),Dt(_t(n),"getYearTabIndex",(function(e){return n.props.disabledKeyboardNavigation?"-1":e===Fe.default(n.props.preSelection)?"0":"-1"})),Dt(_t(n),"getYearContainerClassNames",(function(){var e=n.props,t=e.selectingDate,r=e.selectsStart,a=e.selectsEnd,o=e.selectsRange;return pe.default("react-datepicker__year",{"react-datepicker__year--selecting-range":t&&(r||a||o)})})),Dt(_t(n),"getYearContent",(function(e){return n.props.renderYearContent?n.props.renderYearContent(e):e})),n}return kt(r,[{key:"render",value:function(){for(var e=this,t=[],r=this.props,n=r.date,a=r.yearItemNumber,o=r.onYearMouseEnter,i=r.onYearMouseLeave,s=Ar(n,a),l=s.startPeriod,u=s.endPeriod,c=function(r){t.push(de.default.createElement("div",{ref:e.YEAR_REFS[r-l],onClick:function(t){e.onYearClick(t,r)},onKeyDown:function(t){e.onYearKeyDown(t,r)},tabIndex:e.getYearTabIndex(r),className:e.getYearClassNames(r),onMouseEnter:function(e){return o(e,r)},onMouseLeave:function(e){return i(e,r)},key:r,"aria-current":e.isCurrentYear(r)?"date":void 0},e.getYearContent(r)))},d=l;d<=u;d++)c(d);return de.default.createElement("div",{className:this.getYearContainerClassNames()},de.default.createElement("div",{className:"react-datepicker__year-wrapper",onMouseLeave:this.props.clearSelectingDate},t))}}]),r}(de.default.Component),Vr=function(e){Et(r,e);var t=Mt(r);function r(e){var n;return wt(this,r),Dt(_t(n=t.call(this,e)),"onTimeChange",(function(e){n.setState({time:e});var t=n.props.date,r=t instanceof Date&&!isNaN(t)?t:new Date;r.setHours(e.split(":")[0]),r.setMinutes(e.split(":")[1]),n.props.onChange(r)})),Dt(_t(n),"renderTimeInput",(function(){var e=n.state.time,t=n.props,r=t.date,a=t.timeString,o=t.customTimeInput;return o?de.default.cloneElement(o,{date:r,value:e,onChange:n.onTimeChange}):de.default.createElement("input",{type:"time",className:"react-datepicker-time__input",placeholder:"Time",name:"time-input",required:!0,value:e,onChange:function(e){n.onTimeChange(e.target.value||a)}})})),n.state={time:n.props.timeString},n}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__input-time-container"},de.default.createElement("div",{className:"react-datepicker-time__caption"},this.props.timeInputLabel),de.default.createElement("div",{className:"react-datepicker-time__input-container"},de.default.createElement("div",{className:"react-datepicker-time__input"},this.renderTimeInput())))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.timeString!==t.time?{time:e.timeString}:null}}]),r}(de.default.Component);function $r(e){var t=e.className,r=e.children,n=e.showPopperArrow,a=e.arrowProps,o=void 0===a?{}:a;return de.default.createElement("div",{className:t},n&&de.default.createElement("div",Ct({className:"react-datepicker__triangle"},o)),r)}var Zr=["react-datepicker__year-select","react-datepicker__month-select","react-datepicker__month-year-select"],Jr=function(e){Et(r,e);var t=Mt(r);function r(e){var n;return wt(this,r),Dt(_t(n=t.call(this,e)),"handleClickOutside",(function(e){n.props.onClickOutside(e)})),Dt(_t(n),"setClickOutsideRef",(function(){return n.containerRef.current})),Dt(_t(n),"handleDropdownFocus",(function(e){(function(){var e=((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).className||"").split(/\s+/);return Zr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&n.props.onDropdownFocus()})),Dt(_t(n),"getDateInView",(function(){var e=n.props,t=e.preSelection,r=e.selected,a=e.openToDate,o=wr(n.props),i=xr(n.props),s=jt();return a||r||t||(o&&ut.default(s,o)?o:i&&lt.default(s,i)?i:s)})),Dt(_t(n),"increaseMonth",(function(){n.setState((function(e){var t=e.date;return{date:we.default(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Dt(_t(n),"decreaseMonth",(function(){n.setState((function(e){var t=e.date;return{date:Ee.default(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Dt(_t(n),"handleDayClick",(function(e,t,r){n.props.onSelect(e,t,r),n.props.setPreSelection&&n.props.setPreSelection(e)})),Dt(_t(n),"handleDayMouseEnter",(function(e){n.setState({selectingDate:e}),n.props.onDayMouseEnter&&n.props.onDayMouseEnter(e)})),Dt(_t(n),"handleMonthMouseLeave",(function(){n.setState({selectingDate:null}),n.props.onMonthMouseLeave&&n.props.onMonthMouseLeave()})),Dt(_t(n),"handleYearMouseEnter",(function(e,t){n.setState({selectingDate:Ue.default(jt(),t)}),n.props.onYearMouseEnter&&n.props.onYearMouseEnter(e,t)})),Dt(_t(n),"handleYearMouseLeave",(function(e,t){n.props.onYearMouseLeave&&n.props.onYearMouseLeave(e,t)})),Dt(_t(n),"handleYearChange",(function(e){n.props.onYearChange&&(n.props.onYearChange(e),n.setState({isRenderAriaLiveMessage:!0})),n.props.adjustDateOnChange&&(n.props.onSelect&&n.props.onSelect(e),n.props.setOpen&&n.props.setOpen(!0)),n.props.setPreSelection&&n.props.setPreSelection(e)})),Dt(_t(n),"handleMonthChange",(function(e){n.handleCustomMonthChange(e),n.props.adjustDateOnChange&&(n.props.onSelect&&n.props.onSelect(e),n.props.setOpen&&n.props.setOpen(!0)),n.props.setPreSelection&&n.props.setPreSelection(e)})),Dt(_t(n),"handleCustomMonthChange",(function(e){n.props.onMonthChange&&(n.props.onMonthChange(e),n.setState({isRenderAriaLiveMessage:!0}))})),Dt(_t(n),"handleMonthYearChange",(function(e){n.handleYearChange(e),n.handleMonthChange(e)})),Dt(_t(n),"changeYear",(function(e){n.setState((function(t){var r=t.date;return{date:Ue.default(r,e)}}),(function(){return n.handleYearChange(n.state.date)}))})),Dt(_t(n),"changeMonth",(function(e){n.setState((function(t){var r=t.date;return{date:He.default(r,e)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Dt(_t(n),"changeMonthYear",(function(e){n.setState((function(t){var r=t.date;return{date:Ue.default(He.default(r,Re.default(e)),Fe.default(e))}}),(function(){return n.handleMonthYearChange(n.state.date)}))})),Dt(_t(n),"header",(function(){var e=Ut(arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,n.props.locale,n.props.calendarStartDay),t=[];return n.props.showWeekNumbers&&t.push(de.default.createElement("div",{key:"W",className:"react-datepicker__day-name"},n.props.weekLabel||"#")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=be.default(e,t),a=n.formatWeekday(r,n.props.locale),o=n.props.weekDayClassName?n.props.weekDayClassName(r):void 0;return de.default.createElement("div",{key:t,className:pe.default("react-datepicker__day-name",o)},a)})))})),Dt(_t(n),"formatWeekday",(function(e,t){return n.props.formatWeekDay?function(e,t,r){return t(It(e,"EEEE",r))}(e,n.props.formatWeekDay,t):n.props.useWeekdaysShort?function(e,t){return It(e,"EEE",t)}(e,t):function(e,t){return It(e,"EEEEEE",t)}(e,t)})),Dt(_t(n),"decreaseYear",(function(){n.setState((function(e){var t=e.date;return{date:Se.default(t,n.props.showYearPicker?n.props.yearItemNumber:1)}}),(function(){return n.handleYearChange(n.state.date)}))})),Dt(_t(n),"clearSelectingDate",(function(){n.setState({selectingDate:null})})),Dt(_t(n),"renderPreviousButton",(function(){if(!n.props.renderCustomHeader){var e;switch(!0){case n.props.showMonthYearPicker:e=br(n.state.date,n.props);break;case n.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.yearItemNumber,a=void 0===n?Ft:n,o=Ar(zt(Se.default(e,a)),a).endPeriod,i=r&&Fe.default(r);return i&&i>o||!1}(n.state.date,n.props);break;default:e=gr(n.state.date,n.props)}if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var t=["react-datepicker__navigation","react-datepicker__navigation--previous"],r=n.decreaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker)&&(r=n.decreaseYear),e&&n.props.showDisabledMonthNavigation&&(t.push("react-datepicker__navigation--previous--disabled"),r=null);var a=n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker,o=n.props,i=o.previousMonthButtonLabel,s=o.previousYearButtonLabel,l=n.props,u=l.previousMonthAriaLabel,c=void 0===u?"string"==typeof i?i:"Previous Month":u,d=l.previousYearAriaLabel,p=void 0===d?"string"==typeof s?s:"Previous Year":d;return de.default.createElement("button",{type:"button",className:t.join(" "),onClick:r,onKeyDown:n.props.handleOnKeyDown,"aria-label":a?p:c},de.default.createElement("span",{className:["react-datepicker__navigation-icon","react-datepicker__navigation-icon--previous"].join(" ")},a?n.props.previousYearButtonLabel:n.props.previousMonthButtonLabel))}}})),Dt(_t(n),"increaseYear",(function(){n.setState((function(e){var t=e.date;return{date:ke.default(t,n.props.showYearPicker?n.props.yearItemNumber:1)}}),(function(){return n.handleYearChange(n.state.date)}))})),Dt(_t(n),"renderNextButton",(function(){if(!n.props.renderCustomHeader){var e;switch(!0){case n.props.showMonthYearPicker:e=yr(n.state.date,n.props);break;case n.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.yearItemNumber,a=void 0===n?Ft:n,o=Ar(ke.default(e,a),a).startPeriod,i=r&&Fe.default(r);return i&&i<o||!1}(n.state.date,n.props);break;default:e=mr(n.state.date,n.props)}if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var t=["react-datepicker__navigation","react-datepicker__navigation--next"];n.props.showTimeSelect&&t.push("react-datepicker__navigation--next--with-time"),n.props.todayButton&&t.push("react-datepicker__navigation--next--with-today-button");var r=n.increaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker)&&(r=n.increaseYear),e&&n.props.showDisabledMonthNavigation&&(t.push("react-datepicker__navigation--next--disabled"),r=null);var a=n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker,o=n.props,i=o.nextMonthButtonLabel,s=o.nextYearButtonLabel,l=n.props,u=l.nextMonthAriaLabel,c=void 0===u?"string"==typeof i?i:"Next Month":u,d=l.nextYearAriaLabel,p=void 0===d?"string"==typeof s?s:"Next Year":d;return de.default.createElement("button",{type:"button",className:t.join(" "),onClick:r,onKeyDown:n.props.handleOnKeyDown,"aria-label":a?p:c},de.default.createElement("span",{className:["react-datepicker__navigation-icon","react-datepicker__navigation-icon--next"].join(" ")},a?n.props.nextYearButtonLabel:n.props.nextMonthButtonLabel))}}})),Dt(_t(n),"renderCurrentMonth",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,t=["react-datepicker__current-month"];return n.props.showYearDropdown&&t.push("react-datepicker__current-month--hasYearDropdown"),n.props.showMonthDropdown&&t.push("react-datepicker__current-month--hasMonthDropdown"),n.props.showMonthYearDropdown&&t.push("react-datepicker__current-month--hasMonthYearDropdown"),de.default.createElement("div",{className:t.join(" ")},It(e,n.props.dateFormat,n.props.locale))})),Dt(_t(n),"renderYearDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showYearDropdown&&!e)return de.default.createElement(Or,{adjustDateOnChange:n.props.adjustDateOnChange,date:n.state.date,onSelect:n.props.onSelect,setOpen:n.props.setOpen,dropdownMode:n.props.dropdownMode,onChange:n.changeYear,minDate:n.props.minDate,maxDate:n.props.maxDate,year:Fe.default(n.state.date),scrollableYearDropdown:n.props.scrollableYearDropdown,yearDropdownItemNumber:n.props.yearDropdownItemNumber})})),Dt(_t(n),"renderMonthDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthDropdown&&!e)return de.default.createElement(Rr,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,onChange:n.changeMonth,month:Re.default(n.state.date),useShortMonthInDropdown:n.props.useShortMonthInDropdown})})),Dt(_t(n),"renderMonthYearDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthYearDropdown&&!e)return de.default.createElement(jr,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,dateFormat:n.props.dateFormat,onChange:n.changeMonthYear,minDate:n.props.minDate,maxDate:n.props.maxDate,date:n.state.date,scrollableMonthYearDropdown:n.props.scrollableMonthYearDropdown})})),Dt(_t(n),"handleTodayButtonClick",(function(e){n.props.onSelect(Kt(),e),n.props.setPreSelection&&n.props.setPreSelection(Kt())})),Dt(_t(n),"renderTodayButton",(function(){if(n.props.todayButton&&!n.props.showTimeSelectOnly)return de.default.createElement("div",{className:"react-datepicker__today-button",onClick:function(e){return n.handleTodayButtonClick(e)}},n.props.todayButton)})),Dt(_t(n),"renderDefaultHeader",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement("div",{className:"react-datepicker__header ".concat(n.props.showTimeSelect?"react-datepicker__header--has-time-select":"")},n.renderCurrentMonth(t),de.default.createElement("div",{className:"react-datepicker__header__dropdown react-datepicker__header__dropdown--".concat(n.props.dropdownMode),onFocus:n.handleDropdownFocus},n.renderMonthDropdown(0!==r),n.renderMonthYearDropdown(0!==r),n.renderYearDropdown(0!==r)),de.default.createElement("div",{className:"react-datepicker__day-names"},n.header(t)))})),Dt(_t(n),"renderCustomHeader",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(n.props.showTimeSelect&&!n.state.monthContainer||n.props.showTimeSelectOnly)return null;var a=gr(n.state.date,n.props),o=mr(n.state.date,n.props),i=br(n.state.date,n.props),s=yr(n.state.date,n.props),l=!n.props.showMonthYearPicker&&!n.props.showQuarterYearPicker&&!n.props.showYearPicker;return de.default.createElement("div",{className:"react-datepicker__header react-datepicker__header--custom",onFocus:n.props.onDropdownFocus},n.props.renderCustomHeader(bt(bt({},n.state),{},{customHeaderCount:r,monthDate:t,changeMonth:n.changeMonth,changeYear:n.changeYear,decreaseMonth:n.decreaseMonth,increaseMonth:n.increaseMonth,decreaseYear:n.decreaseYear,increaseYear:n.increaseYear,prevMonthButtonDisabled:a,nextMonthButtonDisabled:o,prevYearButtonDisabled:i,nextYearButtonDisabled:s})),l&&de.default.createElement("div",{className:"react-datepicker__day-names"},n.header(t)))})),Dt(_t(n),"renderYearHeader",(function(){var e=n.state.date,t=n.props,r=t.showYearPicker,a=Ar(e,t.yearItemNumber),o=a.startPeriod,i=a.endPeriod;return de.default.createElement("div",{className:"react-datepicker__header react-datepicker-year-header"},r?"".concat(o," - ").concat(i):Fe.default(e))})),Dt(_t(n),"renderHeader",(function(e){switch(!0){case void 0!==n.props.renderCustomHeader:return n.renderCustomHeader(e);case n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker:return n.renderYearHeader(e);default:return n.renderDefaultHeader(e)}})),Dt(_t(n),"renderMonths",(function(){var e;if(!n.props.showTimeSelectOnly&&!n.props.showYearPicker){for(var t=[],r=n.props.showPreviousMonths?n.props.monthsShown-1:0,a=Ee.default(n.state.date,r),o=null!==(e=n.props.monthSelectedIn)&&void 0!==e?e:r,i=0;i<n.props.monthsShown;++i){var s=i-o+r,l=we.default(a,s),u="month-".concat(i),c=i<n.props.monthsShown-1,d=i>0;t.push(de.default.createElement("div",{key:u,ref:function(e){n.monthContainer=e},className:"react-datepicker__month-container"},n.renderHeader({monthDate:l,i:i}),de.default.createElement(Kr,{chooseDayAriaLabelPrefix:n.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:n.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:n.props.weekAriaLabelPrefix,ariaLabelPrefix:n.props.monthAriaLabelPrefix,onChange:n.changeMonthYear,day:l,dayClassName:n.props.dayClassName,calendarStartDay:n.props.calendarStartDay,monthClassName:n.props.monthClassName,onDayClick:n.handleDayClick,handleOnKeyDown:n.props.handleOnDayKeyDown,onDayMouseEnter:n.handleDayMouseEnter,onMouseLeave:n.handleMonthMouseLeave,onWeekSelect:n.props.onWeekSelect,orderInDisplay:i,formatWeekNumber:n.props.formatWeekNumber,locale:n.props.locale,minDate:n.props.minDate,maxDate:n.props.maxDate,excludeDates:n.props.excludeDates,excludeDateIntervals:n.props.excludeDateIntervals,highlightDates:n.props.highlightDates,holidays:n.props.holidays,selectingDate:n.state.selectingDate,includeDates:n.props.includeDates,includeDateIntervals:n.props.includeDateIntervals,inline:n.props.inline,shouldFocusDayInline:n.props.shouldFocusDayInline,fixedHeight:n.props.fixedHeight,filterDate:n.props.filterDate,preSelection:n.props.preSelection,setPreSelection:n.props.setPreSelection,selected:n.props.selected,selectsStart:n.props.selectsStart,selectsEnd:n.props.selectsEnd,selectsRange:n.props.selectsRange,selectsDisabledDaysInRange:n.props.selectsDisabledDaysInRange,showWeekNumbers:n.props.showWeekNumbers,startDate:n.props.startDate,endDate:n.props.endDate,peekNextMonth:n.props.peekNextMonth,setOpen:n.props.setOpen,shouldCloseOnSelect:n.props.shouldCloseOnSelect,renderDayContents:n.props.renderDayContents,renderMonthContent:n.props.renderMonthContent,renderQuarterContent:n.props.renderQuarterContent,renderYearContent:n.props.renderYearContent,disabledKeyboardNavigation:n.props.disabledKeyboardNavigation,showMonthYearPicker:n.props.showMonthYearPicker,showFullMonthYearPicker:n.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:n.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:n.props.showFourColumnMonthYearPicker,showYearPicker:n.props.showYearPicker,showQuarterYearPicker:n.props.showQuarterYearPicker,showWeekPicker:n.props.showWeekPicker,isInputFocused:n.props.isInputFocused,containerRef:n.containerRef,monthShowsDuplicateDaysEnd:c,monthShowsDuplicateDaysStart:d})))}return t}})),Dt(_t(n),"renderYears",(function(){if(!n.props.showTimeSelectOnly)return n.props.showYearPicker?de.default.createElement("div",{className:"react-datepicker__year--container"},n.renderHeader(),de.default.createElement(Xr,Ct({onDayClick:n.handleDayClick,selectingDate:n.state.selectingDate,clearSelectingDate:n.clearSelectingDate,date:n.state.date},n.props,{onYearMouseEnter:n.handleYearMouseEnter,onYearMouseLeave:n.handleYearMouseLeave}))):void 0})),Dt(_t(n),"renderTimeSection",(function(){if(n.props.showTimeSelect&&(n.state.monthContainer||n.props.showTimeSelectOnly))return de.default.createElement(Gr,{selected:n.props.selected,openToDate:n.props.openToDate,onChange:n.props.onTimeChange,timeClassName:n.props.timeClassName,format:n.props.timeFormat,includeTimes:n.props.includeTimes,intervals:n.props.timeIntervals,minTime:n.props.minTime,maxTime:n.props.maxTime,excludeTimes:n.props.excludeTimes,filterTime:n.props.filterTime,timeCaption:n.props.timeCaption,todayButton:n.props.todayButton,showMonthDropdown:n.props.showMonthDropdown,showMonthYearDropdown:n.props.showMonthYearDropdown,showYearDropdown:n.props.showYearDropdown,withPortal:n.props.withPortal,monthRef:n.state.monthContainer,injectTimes:n.props.injectTimes,locale:n.props.locale,handleOnKeyDown:n.props.handleOnKeyDown,showTimeSelectOnly:n.props.showTimeSelectOnly})})),Dt(_t(n),"renderInputTimeSection",(function(){var e=new Date(n.props.selected),t=Bt(e)&&Boolean(n.props.selected)?"".concat(Er(e.getHours()),":").concat(Er(e.getMinutes())):"";if(n.props.showTimeInput)return de.default.createElement(Vr,{date:e,timeString:t,timeInputLabel:n.props.timeInputLabel,onChange:n.props.onTimeChange,customTimeInput:n.props.customTimeInput})})),Dt(_t(n),"renderAriaLiveRegion",(function(){var e,t=Ar(n.state.date,n.props.yearItemNumber),r=t.startPeriod,a=t.endPeriod;return e=n.props.showYearPicker?"".concat(r," - ").concat(a):n.props.showMonthYearPicker||n.props.showQuarterYearPicker?Fe.default(n.state.date):"".concat(rr(Re.default(n.state.date),n.props.locale)," ").concat(Fe.default(n.state.date)),de.default.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},n.state.isRenderAriaLiveMessage&&e)})),Dt(_t(n),"renderChildren",(function(){if(n.props.children)return de.default.createElement("div",{className:"react-datepicker__children-container"},n.props.children)})),n.containerRef=de.default.createRef(),n.state={date:n.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},n}return kt(r,[{key:"componentDidMount",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:"componentDidUpdate",value:function(e){var t=this;if(!this.props.preSelection||$t(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!$t(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!Xt(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:"render",value:function(){var e=this.props.container||$r;return de.default.createElement("div",{style:{display:"contents"},ref:this.containerRef},de.default.createElement(e,{className:pe.default("react-datepicker",this.props.className,{"react-datepicker--time-only":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:"defaultProps",get:function(){return{onDropdownFocus:function(){},monthsShown:1,forceShowMonthNavigation:!1,timeCaption:"Time",previousYearButtonLabel:"Previous Year",nextYearButtonLabel:"Next Year",previousMonthButtonLabel:"Previous Month",nextMonthButtonLabel:"Next Month",customTimeInput:null,yearItemNumber:Ft}}}]),r}(de.default.Component),en=function(e){var t=e.icon,r=e.className,n=void 0===r?"":r,a="react-datepicker__calendar-icon";return de.default.isValidElement(t)?de.default.cloneElement(t,{className:"".concat(t.props.className||""," ").concat(a," ").concat(n)}):"string"==typeof t?de.default.createElement("i",{className:"".concat(a," ").concat(t," ").concat(n),"aria-hidden":"true"}):de.default.createElement("svg",{className:"".concat(a," ").concat(n),xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},de.default.createElement("path",{d:"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z"}))},tn=function(e){Et(r,e);var t=Mt(r);function r(e){var n;return wt(this,r),(n=t.call(this,e)).el=document.createElement("div"),n}return kt(r,[{key:"componentDidMount",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement("div"),this.portalRoot.setAttribute("id",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:"componentWillUnmount",value:function(){this.portalRoot.removeChild(this.el)}},{key:"render",value:function(){return vt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),rn=function(e){return!e.disabled&&-1!==e.tabIndex},nn=function(e){Et(r,e);var t=Mt(r);function r(e){var n;return wt(this,r),Dt(_t(n=t.call(this,e)),"getTabChildren",(function(){return Array.prototype.slice.call(n.tabLoopRef.current.querySelectorAll("[tabindex], a, button, input, select, textarea"),1,-1).filter(rn)})),Dt(_t(n),"handleFocusStart",(function(){var e=n.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),Dt(_t(n),"handleFocusEnd",(function(){var e=n.getTabChildren();e&&e.length>1&&e[0].focus()})),n.tabLoopRef=de.default.createRef(),n}return kt(r,[{key:"render",value:function(){return this.props.enableTabLoop?de.default.createElement("div",{className:"react-datepicker__tab-loop",ref:this.tabLoopRef},de.default.createElement("div",{className:"react-datepicker__tab-loop__start",tabIndex:"0",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement("div",{className:"react-datepicker__tab-loop__end",tabIndex:"0",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:"defaultProps",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),an=function(e){Et(r,e);var t=Mt(r);function r(){return wt(this,r),t.apply(this,arguments)}return kt(r,[{key:"render",value:function(){var e,t=this.props,r=t.className,n=t.wrapperClassName,a=t.hidePopper,o=t.popperComponent,i=t.popperModifiers,s=t.popperPlacement,l=t.popperProps,u=t.targetComponent,c=t.enableTabLoop,d=t.popperOnKeyDown,p=t.portalId,f=t.portalHost;if(!a){var h=pe.default("react-datepicker-popper",r);e=de.default.createElement(le.Popper,Ct({modifiers:i,placement:s},l),(function(e){var t=e.ref,r=e.style,n=e.placement,a=e.arrowProps;return de.default.createElement(nn,{enableTabLoop:c},de.default.createElement("div",{ref:t,style:r,className:h,"data-placement":n,onKeyDown:d},de.default.cloneElement(o,{arrowProps:a})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),p&&!a&&(e=de.default.createElement(tn,{portalId:p,portalHost:f},e));var v=pe.default("react-datepicker-wrapper",n);return de.default.createElement(le.Manager,{className:"react-datepicker-manager"},de.default.createElement(le.Reference,null,(function(e){var t=e.ref;return de.default.createElement("div",{ref:t,className:v},u)})),e)}}],[{key:"defaultProps",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:"bottom-start"}}}]),r}(de.default.Component),on="react-datepicker-ignore-onclickoutside",sn=ht.default(Jr),ln="Date input not valid.",un=function(e){Et(r,e);var t=Mt(r);function r(e){var n;return wt(this,r),Dt(_t(n=t.call(this,e)),"getPreSelection",(function(){return n.props.openToDate?n.props.openToDate:n.props.selectsEnd&&n.props.startDate?n.props.startDate:n.props.selectsStart&&n.props.endDate?n.props.endDate:jt()})),Dt(_t(n),"modifyHolidays",(function(){var e;return null===(e=n.props.holidays)||void 0===e?void 0:e.reduce((function(e,t){var r=new Date(t.date);return he.default(r)?[].concat(Tt(e),[bt(bt({},t),{},{date:r})]):e}),[])})),Dt(_t(n),"calcInitialState",(function(){var e,t=n.getPreSelection(),r=wr(n.props),a=xr(n.props),o=r&&ut.default(t,Xe.default(r))?r:a&&lt.default(t,et.default(a))?a:t;return{open:n.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=n.props.selectsRange?n.props.startDate:n.props.selected)&&void 0!==e?e:o,highlightDates:kr(n.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),Dt(_t(n),"clearPreventFocusTimeout",(function(){n.preventFocusTimeout&&clearTimeout(n.preventFocusTimeout)})),Dt(_t(n),"setFocus",(function(){n.input&&n.input.focus&&n.input.focus({preventScroll:!0})})),Dt(_t(n),"setBlur",(function(){n.input&&n.input.blur&&n.input.blur(),n.cancelFocusInput()})),Dt(_t(n),"setOpen",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n.setState({open:e,preSelection:e&&n.state.open?n.state.preSelection:n.calcInitialState().preSelection,lastPreSelectChange:dn},(function(){e||n.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&n.setBlur(),n.setState({inputValue:null})}))}))})),Dt(_t(n),"inputOk",(function(){return fe.default(n.state.preSelection)})),Dt(_t(n),"isCalendarOpen",(function(){return void 0===n.props.open?n.state.open&&!n.props.disabled&&!n.props.readOnly:n.props.open})),Dt(_t(n),"handleFocus",(function(e){n.state.preventFocus||(n.props.onFocus(e),n.props.preventOpenOnFocus||n.props.readOnly||n.setOpen(!0)),n.setState({focused:!0})})),Dt(_t(n),"sendFocusBackToInput",(function(){n.preventFocusTimeout&&n.clearPreventFocusTimeout(),n.setState({preventFocus:!0},(function(){n.preventFocusTimeout=setTimeout((function(){n.setFocus(),n.setState({preventFocus:!1})}))}))})),Dt(_t(n),"cancelFocusInput",(function(){clearTimeout(n.inputFocusTimeout),n.inputFocusTimeout=null})),Dt(_t(n),"deferFocusInput",(function(){n.cancelFocusInput(),n.inputFocusTimeout=setTimeout((function(){return n.setFocus()}),1)})),Dt(_t(n),"handleDropdownFocus",(function(){n.cancelFocusInput()})),Dt(_t(n),"handleBlur",(function(e){(!n.state.open||n.props.withPortal||n.props.showTimeInput)&&n.props.onBlur(e),n.setState({focused:!1})})),Dt(_t(n),"handleCalendarClickOutside",(function(e){n.props.inline||n.setOpen(!1),n.props.onClickOutside(e),n.props.withPortal&&e.preventDefault()})),Dt(_t(n),"handleChange",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var a=t[0];if(!n.props.onChangeRaw||(n.props.onChangeRaw.apply(_t(n),t),"function"==typeof a.isDefaultPrevented&&!a.isDefaultPrevented())){n.setState({inputValue:a.target.value,lastPreSelectChange:cn});var o,i,s,l,u,c,d,p,f=(o=a.target.value,i=n.props.dateFormat,s=n.props.locale,l=n.props.strictParsing,u=n.props.minDate,c=null,d=tr(s)||tr(er()),p=!0,Array.isArray(i)?(i.forEach((function(e){var t=pt.default(o,e,new Date,{locale:d});l&&(p=Bt(t,u)&&o===It(t,e,s)),Bt(t,u)&&p&&(c=t)})),c):(c=pt.default(o,i,new Date,{locale:d}),l?p=Bt(c)&&o===It(c,i,s):Bt(c)||(i=i.match(Yt).map((function(e){var t=e[0];return"p"===t||"P"===t?d?(0,Lt[t])(e,d.formatLong):t:e})).join(""),o.length>0&&(c=pt.default(o,i.slice(0,o.length),new Date)),Bt(c)||(c=new Date(o))),Bt(c)&&p?c:null));n.props.showTimeSelectOnly&&n.props.selected&&f&&!$t(f,n.props.selected)&&(f=gt.default(n.props.selected,{hours:Te.default(f),minutes:Me.default(f),seconds:_e.default(f)})),!f&&a.target.value||(n.props.showWeekPicker&&(f=Ut(f,n.props.locale,n.props.calendarStartDay)),n.setSelected(f,a,!0))}})),Dt(_t(n),"handleSelect",(function(e,t,r){if(n.props.shouldCloseOnSelect&&!n.props.showTimeSelect&&n.sendFocusBackToInput(),n.props.onChangeRaw&&n.props.onChangeRaw(t),n.props.showWeekPicker&&(e=Ut(e,n.props.locale,n.props.calendarStartDay)),n.setSelected(e,t,!1,r),n.props.showDateSelect&&n.setState({isRenderAriaLiveMessage:!0}),!n.props.shouldCloseOnSelect||n.props.showTimeSelect)n.setPreSelection(e);else if(!n.props.inline){n.props.selectsRange||n.setOpen(!1);var a=n.props,o=a.startDate,i=a.endDate;!o||i||ut.default(e,o)||n.setOpen(!1)}})),Dt(_t(n),"setSelected",(function(e,t,r,a){var o=e;if(n.props.showYearPicker){if(null!==o&&cr(Fe.default(o),n.props))return}else if(n.props.showMonthYearPicker){if(null!==o&&ir(o,n.props))return}else if(null!==o&&ar(o,n.props))return;var i=n.props,s=i.onChange,l=i.selectsRange,u=i.startDate,c=i.endDate;if(!Zt(n.props.selected,o)||n.props.allowSameDay||l)if(null!==o&&(!n.props.selected||r&&(n.props.showTimeSelect||n.props.showTimeSelectOnly||n.props.showTimeInput)||(o=Wt(o,{hour:Te.default(n.props.selected),minute:Me.default(n.props.selected),second:_e.default(n.props.selected)})),n.props.inline||n.setState({preSelection:o}),n.props.focusSelectedMonth||n.setState({monthSelectedIn:a})),l){var d=u&&c;u||c?u&&!c&&(ut.default(o,u)?s([o,null],t):s([u,o],t)):s([o,null],t),d&&s([o,null],t)}else s(o,t);r||(n.props.onSelect(o,t),n.setState({inputValue:null}))})),Dt(_t(n),"setPreSelection",(function(e){var t=void 0!==n.props.minDate,r=void 0!==n.props.maxDate,a=!0;if(e){n.props.showWeekPicker&&(e=Ut(e,n.props.locale,n.props.calendarStartDay));var o=Xe.default(e);if(t&&r)a=Jt(e,n.props.minDate,n.props.maxDate);else if(t){var i=Xe.default(n.props.minDate);a=lt.default(e,i)||Zt(o,i)}else if(r){var s=et.default(n.props.maxDate);a=ut.default(e,s)||Zt(o,s)}}a&&n.setState({preSelection:e})})),Dt(_t(n),"handleTimeChange",(function(e){var t=n.props.selected?n.props.selected:n.getPreSelection(),r=n.props.selected?e:Wt(t,{hour:Te.default(e),minute:Me.default(e)});n.setState({preSelection:r}),n.props.onChange(r),n.props.shouldCloseOnSelect&&(n.sendFocusBackToInput(),n.setOpen(!1)),n.props.showTimeInput&&n.setOpen(!0),(n.props.showTimeSelectOnly||n.props.showTimeSelect)&&n.setState({isRenderAriaLiveMessage:!0}),n.setState({inputValue:null})})),Dt(_t(n),"onInputClick",(function(){n.props.disabled||n.props.readOnly||n.setOpen(!0),n.props.onInputClick()})),Dt(_t(n),"onInputKeyDown",(function(e){n.props.onKeyDown(e);var t=e.key;if(n.state.open||n.props.inline||n.props.preventOpenOnFocus){if(n.state.open){if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault();var r=n.props.showWeekPicker&&n.props.showWeekNumbers?'.react-datepicker__week-number[tabindex="0"]':'.react-datepicker__day[tabindex="0"]',a=n.calendar.componentNode&&n.calendar.componentNode.querySelector(r);return void(a&&a.focus({preventScroll:!0}))}var o=jt(n.state.preSelection);"Enter"===t?(e.preventDefault(),n.inputOk()&&n.state.lastPreSelectChange===dn?(n.handleSelect(o,e),!n.props.shouldCloseOnSelect&&n.setPreSelection(o)):n.setOpen(!1)):"Escape"===t?(e.preventDefault(),n.sendFocusBackToInput(),n.setOpen(!1)):"Tab"===t&&n.setOpen(!1),n.inputOk()||n.props.onInputError({code:1,msg:ln})}}else"ArrowDown"!==t&&"ArrowUp"!==t&&"Enter"!==t||n.onInputClick()})),Dt(_t(n),"onPortalKeyDown",(function(e){"Escape"===e.key&&(e.preventDefault(),n.setState({preventFocus:!0},(function(){n.setOpen(!1),setTimeout((function(){n.setFocus(),n.setState({preventFocus:!1})}))})))})),Dt(_t(n),"onDayKeyDown",(function(e){n.props.onKeyDown(e);var t=e.key,r=jt(n.state.preSelection);if("Enter"===t)e.preventDefault(),n.handleSelect(r,e),!n.props.shouldCloseOnSelect&&n.setPreSelection(r);else if("Escape"===t)e.preventDefault(),n.setOpen(!1),n.inputOk()||n.props.onInputError({code:1,msg:ln});else if(!n.props.disabledKeyboardNavigation){var a;switch(t){case"ArrowLeft":a=n.props.showWeekPicker?Ce.default(r,1):De.default(r,1);break;case"ArrowRight":a=n.props.showWeekPicker?ye.default(r,1):be.default(r,1);break;case"ArrowUp":a=Ce.default(r,1);break;case"ArrowDown":a=ye.default(r,1);break;case"PageUp":a=Ee.default(r,1);break;case"PageDown":a=we.default(r,1);break;case"Home":a=Se.default(r,1);break;case"End":a=ke.default(r,1);break;default:a=null}if(!a)return void(n.props.onInputError&&n.props.onInputError({code:1,msg:ln}));if(e.preventDefault(),n.setState({lastPreSelectChange:dn}),n.props.adjustDateOnChange&&n.setSelected(a),n.setPreSelection(a),n.props.inline){var o=Re.default(r),i=Re.default(a),s=Fe.default(r),l=Fe.default(a);o!==i||s!==l?n.setState({shouldFocusDayInline:!0}):n.setState({shouldFocusDayInline:!1})}}})),Dt(_t(n),"onPopperKeyDown",(function(e){"Escape"===e.key&&(e.preventDefault(),n.sendFocusBackToInput())})),Dt(_t(n),"onClearClick",(function(e){e&&e.preventDefault&&e.preventDefault(),n.sendFocusBackToInput(),n.props.selectsRange?n.props.onChange([null,null],e):n.props.onChange(null,e),n.setState({inputValue:null})})),Dt(_t(n),"clear",(function(){n.onClearClick()})),Dt(_t(n),"onScroll",(function(e){"boolean"==typeof n.props.closeOnScroll&&n.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||n.setOpen(!1):"function"==typeof n.props.closeOnScroll&&n.props.closeOnScroll(e)&&n.setOpen(!1)})),Dt(_t(n),"renderCalendar",(function(){return n.props.inline||n.isCalendarOpen()?de.default.createElement(sn,{ref:function(e){n.calendar=e},locale:n.props.locale,calendarStartDay:n.props.calendarStartDay,chooseDayAriaLabelPrefix:n.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:n.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:n.props.weekAriaLabelPrefix,monthAriaLabelPrefix:n.props.monthAriaLabelPrefix,adjustDateOnChange:n.props.adjustDateOnChange,setOpen:n.setOpen,shouldCloseOnSelect:n.props.shouldCloseOnSelect,dateFormat:n.props.dateFormatCalendar,useWeekdaysShort:n.props.useWeekdaysShort,formatWeekDay:n.props.formatWeekDay,dropdownMode:n.props.dropdownMode,selected:n.props.selected,preSelection:n.state.preSelection,onSelect:n.handleSelect,onWeekSelect:n.props.onWeekSelect,openToDate:n.props.openToDate,minDate:n.props.minDate,maxDate:n.props.maxDate,selectsStart:n.props.selectsStart,selectsEnd:n.props.selectsEnd,selectsRange:n.props.selectsRange,startDate:n.props.startDate,endDate:n.props.endDate,excludeDates:n.props.excludeDates,excludeDateIntervals:n.props.excludeDateIntervals,filterDate:n.props.filterDate,onClickOutside:n.handleCalendarClickOutside,formatWeekNumber:n.props.formatWeekNumber,highlightDates:n.state.highlightDates,holidays:Dr(n.modifyHolidays()),includeDates:n.props.includeDates,includeDateIntervals:n.props.includeDateIntervals,includeTimes:n.props.includeTimes,injectTimes:n.props.injectTimes,inline:n.props.inline,shouldFocusDayInline:n.state.shouldFocusDayInline,peekNextMonth:n.props.peekNextMonth,showMonthDropdown:n.props.showMonthDropdown,showPreviousMonths:n.props.showPreviousMonths,useShortMonthInDropdown:n.props.useShortMonthInDropdown,showMonthYearDropdown:n.props.showMonthYearDropdown,showWeekNumbers:n.props.showWeekNumbers,showYearDropdown:n.props.showYearDropdown,withPortal:n.props.withPortal,forceShowMonthNavigation:n.props.forceShowMonthNavigation,showDisabledMonthNavigation:n.props.showDisabledMonthNavigation,scrollableYearDropdown:n.props.scrollableYearDropdown,scrollableMonthYearDropdown:n.props.scrollableMonthYearDropdown,todayButton:n.props.todayButton,weekLabel:n.props.weekLabel,outsideClickIgnoreClass:on,fixedHeight:n.props.fixedHeight,monthsShown:n.props.monthsShown,monthSelectedIn:n.state.monthSelectedIn,onDropdownFocus:n.handleDropdownFocus,onMonthChange:n.props.onMonthChange,onYearChange:n.props.onYearChange,dayClassName:n.props.dayClassName,weekDayClassName:n.props.weekDayClassName,monthClassName:n.props.monthClassName,timeClassName:n.props.timeClassName,showDateSelect:n.props.showDateSelect,showTimeSelect:n.props.showTimeSelect,showTimeSelectOnly:n.props.showTimeSelectOnly,onTimeChange:n.handleTimeChange,timeFormat:n.props.timeFormat,timeIntervals:n.props.timeIntervals,minTime:n.props.minTime,maxTime:n.props.maxTime,excludeTimes:n.props.excludeTimes,filterTime:n.props.filterTime,timeCaption:n.props.timeCaption,className:n.props.calendarClassName,container:n.props.calendarContainer,yearItemNumber:n.props.yearItemNumber,yearDropdownItemNumber:n.props.yearDropdownItemNumber,previousMonthAriaLabel:n.props.previousMonthAriaLabel,previousMonthButtonLabel:n.props.previousMonthButtonLabel,nextMonthAriaLabel:n.props.nextMonthAriaLabel,nextMonthButtonLabel:n.props.nextMonthButtonLabel,previousYearAriaLabel:n.props.previousYearAriaLabel,previousYearButtonLabel:n.props.previousYearButtonLabel,nextYearAriaLabel:n.props.nextYearAriaLabel,nextYearButtonLabel:n.props.nextYearButtonLabel,timeInputLabel:n.props.timeInputLabel,disabledKeyboardNavigation:n.props.disabledKeyboardNavigation,renderCustomHeader:n.props.renderCustomHeader,popperProps:n.props.popperProps,renderDayContents:n.props.renderDayContents,renderMonthContent:n.props.renderMonthContent,renderQuarterContent:n.props.renderQuarterContent,renderYearContent:n.props.renderYearContent,onDayMouseEnter:n.props.onDayMouseEnter,onMonthMouseLeave:n.props.onMonthMouseLeave,onYearMouseEnter:n.props.onYearMouseEnter,onYearMouseLeave:n.props.onYearMouseLeave,selectsDisabledDaysInRange:n.props.selectsDisabledDaysInRange,showTimeInput:n.props.showTimeInput,showMonthYearPicker:n.props.showMonthYearPicker,showFullMonthYearPicker:n.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:n.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:n.props.showFourColumnMonthYearPicker,showYearPicker:n.props.showYearPicker,showQuarterYearPicker:n.props.showQuarterYearPicker,showWeekPicker:n.props.showWeekPicker,showPopperArrow:n.props.showPopperArrow,excludeScrollbar:n.props.excludeScrollbar,handleOnKeyDown:n.props.onKeyDown,handleOnDayKeyDown:n.onDayKeyDown,isInputFocused:n.state.focused,customTimeInput:n.props.customTimeInput,setPreSelection:n.setPreSelection},n.props.children):null})),Dt(_t(n),"renderAriaLiveRegion",(function(){var e,t=n.props,r=t.dateFormat,a=t.locale,o=n.props.showTimeInput||n.props.showTimeSelect?"PPPPp":"PPPP";return e=n.props.selectsRange?"Selected start date: ".concat(Ht(n.props.startDate,{dateFormat:o,locale:a}),". ").concat(n.props.endDate?"End date: "+Ht(n.props.endDate,{dateFormat:o,locale:a}):""):n.props.showTimeSelectOnly?"Selected time: ".concat(Ht(n.props.selected,{dateFormat:r,locale:a})):n.props.showYearPicker?"Selected year: ".concat(Ht(n.props.selected,{dateFormat:"yyyy",locale:a})):n.props.showMonthYearPicker?"Selected month: ".concat(Ht(n.props.selected,{dateFormat:"MMMM yyyy",locale:a})):n.props.showQuarterYearPicker?"Selected quarter: ".concat(Ht(n.props.selected,{dateFormat:"yyyy, QQQ",locale:a})):"Selected date: ".concat(Ht(n.props.selected,{dateFormat:o,locale:a})),de.default.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},e)})),Dt(_t(n),"renderDateInput",(function(){var e,t=pe.default(n.props.className,Dt({},on,n.state.open)),r=n.props.customInput||de.default.createElement("input",{type:"text"}),a=n.props.customInputRef||"ref",o="string"==typeof n.props.value?n.props.value:"string"==typeof n.state.inputValue?n.state.inputValue:n.props.selectsRange?function(e,t,r){if(!e)return"";var n=Ht(e,r),a=t?Ht(t,r):"";return"".concat(n," - ").concat(a)}(n.props.startDate,n.props.endDate,n.props):Ht(n.props.selected,n.props);return de.default.cloneElement(r,(Dt(Dt(Dt(Dt(Dt(Dt(Dt(Dt(Dt(Dt(e={},a,(function(e){n.input=e})),"value",o),"onBlur",n.handleBlur),"onChange",n.handleChange),"onClick",n.onInputClick),"onFocus",n.handleFocus),"onKeyDown",n.onInputKeyDown),"id",n.props.id),"name",n.props.name),"form",n.props.form),Dt(Dt(Dt(Dt(Dt(Dt(Dt(Dt(Dt(Dt(e,"autoFocus",n.props.autoFocus),"placeholder",n.props.placeholderText),"disabled",n.props.disabled),"autoComplete",n.props.autoComplete),"className",pe.default(r.props.className,t)),"title",n.props.title),"readOnly",n.props.readOnly),"required",n.props.required),"tabIndex",n.props.tabIndex),"aria-describedby",n.props.ariaDescribedBy),Dt(Dt(Dt(e,"aria-invalid",n.props.ariaInvalid),"aria-labelledby",n.props.ariaLabelledBy),"aria-required",n.props.ariaRequired)))})),Dt(_t(n),"renderClearButton",(function(){var e=n.props,t=e.isClearable,r=e.disabled,a=e.selected,o=e.startDate,i=e.endDate,s=e.clearButtonTitle,l=e.clearButtonClassName,u=void 0===l?"":l,c=e.ariaLabelClose,d=void 0===c?"Close":c;return!t||null==a&&null==o&&null==i?null:de.default.createElement("button",{type:"button",className:pe.default("react-datepicker__close-icon",u,{"react-datepicker__close-icon--disabled":r}),disabled:r,"aria-label":d,onClick:n.onClearClick,title:s,tabIndex:-1})})),n.state=n.calcInitialState(),n.preventFocusTimeout=null,n}return kt(r,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.onScroll,!0)}},{key:"componentDidUpdate",value:function(e,t){var r,n;e.inline&&(r=e.selected,n=this.props.selected,r&&n?Re.default(r)!==Re.default(n)||Fe.default(r)!==Fe.default(n):r!==n)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:kr(this.props.highlightDates)}),t.focused||Zt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:"componentWillUnmount",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener("scroll",this.onScroll,!0)}},{key:"renderInputContainer",value:function(){var e=this.props,t=e.showIcon,r=e.icon,n=e.calendarIconClassname;return de.default.createElement("div",{className:"react-datepicker__input-container".concat(t?" react-datepicker__view-calendar-icon":"")},t&&de.default.createElement(en,{icon:r,className:n}),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:"render",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(nn,{enableTabLoop:this.props.enableTabLoop},de.default.createElement("div",{className:"react-datepicker__portal",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement(tn,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement("div",null,this.renderInputContainer(),t)}return de.default.createElement(an,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:"defaultProps",get:function(){return{allowSameDay:!1,dateFormat:"MM/dd/yyyy",dateFormatCalendar:"LLLL yyyy",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:"scroll",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,showWeekPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:"Time",previousMonthAriaLabel:"Previous Month",previousMonthButtonLabel:"Previous Month",nextMonthAriaLabel:"Next Month",nextMonthButtonLabel:"Next Month",previousYearAriaLabel:"Previous Year",previousYearButtonLabel:"Previous Year",nextYearAriaLabel:"Next Year",nextYearButtonLabel:"Next Year",timeInputLabel:"Time",enableTabLoop:!0,yearItemNumber:Ft,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0}}}]),r}(de.default.Component),cn="input",dn="navigate";e.CalendarContainer=$r,e.default=un,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r="undefined"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){("undefined"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,"__esModule",{value:!0})}(t,r(96540),r(5556),r(32485),r(47586),r(92964),r(56658),r(62658),r(92908),r(7806),r(12454),r(83214),r(58980),r(38733),r(10443),r(5377),r(5231),r(63801),r(70486),r(80187),r(89691),r(30161),r(2928),r(24234),r(37066),r(98308),r(17286),r(63571),r(12335),r(78991),r(42231),r(63701),r(49864),r(5618),r(32455),r(38990),r(50136),r(53511),r(38195),r(88138),r(26876),r(15163),r(34631),r(63501),r(78918),r(65068),r(3494),r(49128),r(81191),r(15898),r(16010),r(13238),r(35269),r(68840),r(65104),r(15549),r(58559),r(99699),r(71082),r(85670),r(73908),r(40961),r(32430),r(2402))},98090:(e,t,r)=>{"use strict";r.d(t,{A:()=>d});var n={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};const a=function(e,t,r){var a,o=n[e];return a="string"===typeof o?o:1===t?o.one:o.other.replace("{{count}}",t.toString()),null!==r&&void 0!==r&&r.addSuffix?r.comparison&&r.comparison>0?"in "+a:a+" ago":a};function o(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var i={date:o({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:o({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:o({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};var s={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function l(e){return function(t,r){var n;if("formatting"===(null!==r&&void 0!==r&&r.context?String(r.context):"standalone")&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,o=null!==r&&void 0!==r&&r.width?String(r.width):a;n=e.formattingValues[o]||e.formattingValues[a]}else{var i=e.defaultWidth,s=null!==r&&void 0!==r&&r.width?String(r.width):e.defaultWidth;n=e.values[s]||e.values[i]}return n[e.argumentCallback?e.argumentCallback(t):t]}}function u(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.width,a=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;var i,s=o[0],l=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(l)?function(e,t){for(var r=0;r<e.length;r++)if(t(e[r]))return r;return}(l,(function(e){return e.test(s)})):function(e,t){for(var r in e)if(e.hasOwnProperty(r)&&t(e[r]))return r;return}(l,(function(e){return e.test(s)}));return i=e.valueCallback?e.valueCallback(u):u,{value:i=r.valueCallback?r.valueCallback(i):i,rest:t.slice(s.length)}}}var c;const d={code:"en-US",formatDistance:a,formatLong:i,formatRelative:function(e,t,r,n){return s[e]},localize:{ordinalNumber:function(e,t){var r=Number(e),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:l({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:l({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:l({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:l({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:l({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(c={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.match(c.matchPattern);if(!r)return null;var n=r[0],a=e.match(c.parsePattern);if(!a)return null;var o=c.valueCallback?c.valueCallback(a[0]):a[0];return{value:o=t.valueCallback?t.valueCallback(o):o,rest:e.slice(n.length)}}),era:u({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:u({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:u({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:u({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:u({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}}},28458:(e,t,r)=>{"use strict";r.d(t,{q:()=>a});var n={};function a(){return n}},49668:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},a=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}};const o={p:a,P:function(e,t){var r,o=e.match(/(P+)(p+)?/)||[],i=o[1],s=o[2];if(!s)return n(e,t);switch(i){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",n(i,t)).replace("{{time}}",a(s,t))}}},40460:(e,t,r)=>{"use strict";function n(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}r.d(t,{A:()=>n})},49717:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(99699),a=r(74715),o=r(76535),i=r(11151);var s=6048e5;function l(e){(0,i.A)(1,arguments);var t=(0,n.default)(e),r=(0,a.A)(t).getTime()-function(e){(0,i.A)(1,arguments);var t=(0,o.A)(e),r=new Date(0);return r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0),(0,a.A)(r)}(t).getTime();return Math.round(r/s)+1}},76535:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(99699),a=r(11151),o=r(74715);function i(e){(0,a.A)(1,arguments);var t=(0,n.default)(e),r=t.getUTCFullYear(),i=new Date(0);i.setUTCFullYear(r+1,0,4),i.setUTCHours(0,0,0,0);var s=(0,o.A)(i),l=new Date(0);l.setUTCFullYear(r,0,4),l.setUTCHours(0,0,0,0);var u=(0,o.A)(l);return t.getTime()>=s.getTime()?r+1:t.getTime()>=u.getTime()?r:r-1}},9478:(e,t,r)=>{"use strict";r.d(t,{A:()=>c});var n=r(99699),a=r(67350),o=r(38888),i=r(11151),s=r(67668),l=r(28458);var u=6048e5;function c(e,t){(0,i.A)(1,arguments);var r=(0,n.default)(e),c=(0,a.A)(r,t).getTime()-function(e,t){var r,n,u,c,d,p,f,h;(0,i.A)(1,arguments);var v=(0,l.q)(),g=(0,s.A)(null!==(r=null!==(n=null!==(u=null!==(c=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==c?c:null===t||void 0===t||null===(d=t.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==u?u:v.firstWeekContainsDate)&&void 0!==n?n:null===(f=v.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==r?r:1),m=(0,o.A)(e,t),b=new Date(0);return b.setUTCFullYear(m,0,g),b.setUTCHours(0,0,0,0),(0,a.A)(b,t)}(r,t).getTime();return Math.round(c/u)+1}},38888:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(99699),a=r(11151),o=r(67350),i=r(67668),s=r(28458);function l(e,t){var r,l,u,c,d,p,f,h;(0,a.A)(1,arguments);var v=(0,n.default)(e),g=v.getUTCFullYear(),m=(0,s.q)(),b=(0,i.A)(null!==(r=null!==(l=null!==(u=null!==(c=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==c?c:null===t||void 0===t||null===(d=t.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==u?u:m.firstWeekContainsDate)&&void 0!==l?l:null===(f=m.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==r?r:1);if(!(b>=1&&b<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var y=new Date(0);y.setUTCFullYear(g+1,0,b),y.setUTCHours(0,0,0,0);var w=(0,o.A)(y,t),x=new Date(0);x.setUTCFullYear(g,0,b),x.setUTCHours(0,0,0,0);var k=(0,o.A)(x,t);return v.getTime()>=w.getTime()?g+1:v.getTime()>=k.getTime()?g:g-1}},9581:(e,t,r)=>{"use strict";r.d(t,{ef:()=>o,lJ:()=>s,xM:()=>i});var n=["D","DD"],a=["YY","YYYY"];function o(e){return-1!==n.indexOf(e)}function i(e){return-1!==a.indexOf(e)}function s(e,t,r){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}},11151:(e,t,r)=>{"use strict";function n(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}r.d(t,{A:()=>n})},74715:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e),r=t.getUTCDay(),o=(r<1?7:0)+r-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}},67350:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(99699),a=r(11151),o=r(67668),i=r(28458);function s(e,t){var r,s,l,u,c,d,p,f;(0,a.A)(1,arguments);var h=(0,i.q)(),v=(0,o.A)(null!==(r=null!==(s=null!==(l=null!==(u=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==u?u:null===t||void 0===t||null===(c=t.locale)||void 0===c||null===(d=c.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==l?l:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=(0,n.default)(e),m=g.getUTCDay(),b=(m<v?7:0)+m-v;return g.setUTCDate(g.getUTCDate()-b),g.setUTCHours(0,0,0,0),g}},67668:(e,t,r)=>{"use strict";function n(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}r.d(t,{A:()=>n})},7806:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),i=(0,n.A)(t);return isNaN(i)?new Date(NaN):i?(r.setDate(r.getDate()+i),r):r}},92908:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(67668),a=r(77871),o=r(11151),i=36e5;function s(e,t){(0,o.A)(2,arguments);var r=(0,n.A)(t);return(0,a.A)(e,r*i)}},77871:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e).getTime(),i=(0,n.A)(t);return new Date(r+i)}},62658:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(67668),a=r(77871),o=r(11151),i=6e4;function s(e,t){(0,o.A)(2,arguments);var r=(0,n.A)(t);return(0,a.A)(e,r*i)}},83214:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),i=(0,n.A)(t);if(isNaN(i))return new Date(NaN);if(!i)return r;var s=r.getDate(),l=new Date(r.getTime());return l.setMonth(r.getMonth()+i+1,0),s>=l.getDate()?l:(r.setFullYear(l.getFullYear(),l.getMonth(),s),r)}},58980:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(83214),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=3*(0,n.A)(t);return(0,a.default)(e,r)}},12454:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(7806),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=7*(0,n.A)(t);return(0,a.default)(e,r)}},38733:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(83214),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,n.A)(t);return(0,a.default)(e,12*r)}},4019:(e,t,r)=>{"use strict";r.d(t,{Cg:()=>n,_m:()=>o,s0:()=>a});Math.pow(10,8);var n=6e4,a=36e5,o=1e3},53511:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(40460),a=r(26876),o=r(11151),i=864e5;function s(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),s=(0,a.default)(t),l=r.getTime()-(0,n.A)(r),u=s.getTime()-(0,n.A)(s);return Math.round((l-u)/i)}},38195:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return 12*(r.getFullYear()-o.getFullYear())+(r.getMonth()-o.getMonth())}},88138:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()-o.getFullYear()}},65068:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e);return t.setHours(23,59,59,999),t}},49128:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}},3494:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(28458),a=r(99699),o=r(67668),i=r(11151);function s(e,t){var r,s,l,u,c,d,p,f;(0,i.A)(1,arguments);var h=(0,n.q)(),v=(0,o.A)(null!==(r=null!==(s=null!==(l=null!==(u=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==u?u:null===t||void 0===t||null===(c=t.locale)||void 0===c||null===(d=c.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==l?l:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=(0,a.default)(e),m=g.getDay(),b=6+(m<v?-7:0)-(m-v);return g.setDate(g.getDate()+b),g.setHours(23,59,59,999),g}},81191:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e),r=t.getFullYear();return t.setFullYear(r+1,0,0),t.setHours(23,59,59,999),t}},56658:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>R});var n=r(92964),a=r(50670),o=r(99699),i=r(11151);var s=r(49717),l=r(76535),u=r(9478),c=r(38888);function d(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length<t;)n="0"+n;return r+n}const p={y:function(e,t){var r=e.getUTCFullYear(),n=r>0?r:1-r;return d("yy"===t?n%100:n,t.length)},M:function(e,t){var r=e.getUTCMonth();return"M"===t?String(r+1):d(r+1,2)},d:function(e,t){return d(e.getUTCDate(),t.length)},a:function(e,t){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:function(e,t){return d(e.getUTCHours()%12||12,t.length)},H:function(e,t){return d(e.getUTCHours(),t.length)},m:function(e,t){return d(e.getUTCMinutes(),t.length)},s:function(e,t){return d(e.getUTCSeconds(),t.length)},S:function(e,t){var r=t.length,n=e.getUTCMilliseconds();return d(Math.floor(n*Math.pow(10,r-3)),t.length)}};var f="midnight",h="noon",v="morning",g="afternoon",m="evening",b="night";function y(e,t){var r=e>0?"-":"+",n=Math.abs(e),a=Math.floor(n/60),o=n%60;if(0===o)return r+String(a);var i=t||"";return r+String(a)+i+d(o,2)}function w(e,t){return e%60===0?(e>0?"-":"+")+d(Math.abs(e)/60,2):x(e,t)}function x(e,t){var r=t||"",n=e>0?"-":"+",a=Math.abs(e);return n+d(Math.floor(a/60),2)+r+d(a%60,2)}const k={G:function(e,t,r){var n=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(e,t,r){if("yo"===t){var n=e.getUTCFullYear(),a=n>0?n:1-n;return r.ordinalNumber(a,{unit:"year"})}return p.y(e,t)},Y:function(e,t,r,n){var a=(0,c.A)(e,n),o=a>0?a:1-a;return"YY"===t?d(o%100,2):"Yo"===t?r.ordinalNumber(o,{unit:"year"}):d(o,t.length)},R:function(e,t){return d((0,l.A)(e),t.length)},u:function(e,t){return d(e.getUTCFullYear(),t.length)},Q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return d(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return d(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,r){var n=e.getUTCMonth();switch(t){case"M":case"MM":return p.M(e,t);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,r){var n=e.getUTCMonth();switch(t){case"L":return String(n+1);case"LL":return d(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,r,n){var a=(0,u.A)(e,n);return"wo"===t?r.ordinalNumber(a,{unit:"week"}):d(a,t.length)},I:function(e,t,r){var n=(0,s.A)(e);return"Io"===t?r.ordinalNumber(n,{unit:"week"}):d(n,t.length)},d:function(e,t,r){return"do"===t?r.ordinalNumber(e.getUTCDate(),{unit:"date"}):p.d(e,t)},D:function(e,t,r){var n=function(e){(0,i.A)(1,arguments);var t=(0,o.default)(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=r-t.getTime();return Math.floor(n/864e5)+1}(e);return"Do"===t?r.ordinalNumber(n,{unit:"dayOfYear"}):d(n,t.length)},E:function(e,t,r){var n=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,r,n){var a=e.getUTCDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return d(o,2);case"eo":return r.ordinalNumber(o,{unit:"day"});case"eee":return r.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(a,{width:"short",context:"formatting"});default:return r.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,r,n){var a=e.getUTCDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return d(o,t.length);case"co":return r.ordinalNumber(o,{unit:"day"});case"ccc":return r.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(a,{width:"narrow",context:"standalone"});case"cccccc":return r.day(a,{width:"short",context:"standalone"});default:return r.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,r){var n=e.getUTCDay(),a=0===n?7:n;switch(t){case"i":return String(a);case"ii":return d(a,t.length);case"io":return r.ordinalNumber(a,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,r){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(e,t,r){var n,a=e.getUTCHours();switch(n=12===a?h:0===a?f:a/12>=1?"pm":"am",t){case"b":case"bb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(e,t,r){var n,a=e.getUTCHours();switch(n=a>=17?m:a>=12?g:a>=4?v:b,t){case"B":case"BB":case"BBB":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(e,t,r){if("ho"===t){var n=e.getUTCHours()%12;return 0===n&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return p.h(e,t)},H:function(e,t,r){return"Ho"===t?r.ordinalNumber(e.getUTCHours(),{unit:"hour"}):p.H(e,t)},K:function(e,t,r){var n=e.getUTCHours()%12;return"Ko"===t?r.ordinalNumber(n,{unit:"hour"}):d(n,t.length)},k:function(e,t,r){var n=e.getUTCHours();return 0===n&&(n=24),"ko"===t?r.ordinalNumber(n,{unit:"hour"}):d(n,t.length)},m:function(e,t,r){return"mo"===t?r.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):p.m(e,t)},s:function(e,t,r){return"so"===t?r.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):p.s(e,t)},S:function(e,t){return p.S(e,t)},X:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return w(a);case"XXXX":case"XX":return x(a);default:return x(a,":")}},x:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"x":return w(a);case"xxxx":case"xx":return x(a);default:return x(a,":")}},O:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+y(a,":");default:return"GMT"+x(a,":")}},z:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+y(a,":");default:return"GMT"+x(a,":")}},t:function(e,t,r,n){var a=n._originalDate||e;return d(Math.floor(a.getTime()/1e3),t.length)},T:function(e,t,r,n){return d((n._originalDate||e).getTime(),t.length)}};var D=r(49668),C=r(40460),E=r(9581),A=r(67668),S=r(28458),_=r(98090),M=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,T=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,O=/^'([^]*?)'?$/,P=/''/g,N=/[a-zA-Z]/;function R(e,t,r){var s,l,u,c,d,p,f,h,v,g,m,b,y,w,x,R,L,F;(0,i.A)(2,arguments);var Y=String(t),j=(0,S.q)(),B=null!==(s=null!==(l=null===r||void 0===r?void 0:r.locale)&&void 0!==l?l:j.locale)&&void 0!==s?s:_.A,I=(0,A.A)(null!==(u=null!==(c=null!==(d=null!==(p=null===r||void 0===r?void 0:r.firstWeekContainsDate)&&void 0!==p?p:null===r||void 0===r||null===(f=r.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==d?d:j.firstWeekContainsDate)&&void 0!==c?c:null===(v=j.locale)||void 0===v||null===(g=v.options)||void 0===g?void 0:g.firstWeekContainsDate)&&void 0!==u?u:1);if(!(I>=1&&I<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var H=(0,A.A)(null!==(m=null!==(b=null!==(y=null!==(w=null===r||void 0===r?void 0:r.weekStartsOn)&&void 0!==w?w:null===r||void 0===r||null===(x=r.locale)||void 0===x||null===(R=x.options)||void 0===R?void 0:R.weekStartsOn)&&void 0!==y?y:j.weekStartsOn)&&void 0!==b?b:null===(L=j.locale)||void 0===L||null===(F=L.options)||void 0===F?void 0:F.weekStartsOn)&&void 0!==m?m:0);if(!(H>=0&&H<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!B.localize)throw new RangeError("locale must contain localize property");if(!B.formatLong)throw new RangeError("locale must contain formatLong property");var W=(0,o.default)(e);if(!(0,n.default)(W))throw new RangeError("Invalid time value");var U=(0,C.A)(W),q=(0,a.A)(W,U),z={firstWeekContainsDate:I,weekStartsOn:H,locale:B,_originalDate:W};return Y.match(T).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,D.A[t])(e,B.formatLong):e})).join("").match(M).map((function(n){if("''"===n)return"'";var a=n[0];if("'"===a)return function(e){var t=e.match(O);if(!t)return e;return t[1].replace(P,"'")}(n);var o=k[a];if(o)return null!==r&&void 0!==r&&r.useAdditionalWeekYearTokens||!(0,E.xM)(n)||(0,E.lJ)(n,t,String(e)),null!==r&&void 0!==r&&r.useAdditionalDayOfYearTokens||!(0,E.ef)(n)||(0,E.lJ)(n,t,String(e)),o(q,n,B.localize,z);if(a.match(N))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");return n})).join("")}},24234:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getDate()}},2928:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getDay()}},30161:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getHours()}},37066:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(99699),a=r(15163),o=r(11151);function i(e){return(0,o.A)(1,arguments),(0,a.default)(e,{weekStartsOn:1})}function s(e){(0,o.A)(1,arguments);var t=function(e){(0,o.A)(1,arguments);var t=(0,n.default)(e),r=t.getFullYear(),a=new Date(0);a.setFullYear(r+1,0,4),a.setHours(0,0,0,0);var s=i(a),l=new Date(0);l.setFullYear(r,0,4),l.setHours(0,0,0,0);var u=i(l);return t.getTime()>=s.getTime()?r+1:t.getTime()>=u.getTime()?r:r-1}(e),r=new Date(0);return r.setFullYear(t,0,4),r.setHours(0,0,0,0),i(r)}var l=6048e5;function u(e){(0,o.A)(1,arguments);var t=(0,n.default)(e),r=i(t).getTime()-s(t).getTime();return Math.round(r/l)+1}},89691:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getMinutes()}},98308:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getMonth()}},17286:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e);return Math.floor(t.getMonth()/3)+1}},80187:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getSeconds()}},12335:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getTime()}},63571:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){return(0,a.A)(1,arguments),(0,n.default)(e).getFullYear()}},65104:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()>o.getTime()}},15549:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()<o.getTime()}},47586:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(82284),a=r(11151);function o(e){return(0,a.A)(1,arguments),e instanceof Date||"object"===(0,n.A)(e)&&"[object Date]"===Object.prototype.toString.call(e)}},15898:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},16010:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(26876),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},13238:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()===o.getFullYear()&&r.getMonth()===o.getMonth()}},68840:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(63501),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},35269:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()===o.getFullYear()}},92964:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(47586),a=r(99699),o=r(11151);function i(e){if((0,o.A)(1,arguments),!(0,n.default)(e)&&"number"!==typeof e)return!1;var t=(0,a.default)(e);return!isNaN(Number(t))}},58559:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e,t){(0,a.A)(2,arguments);var r=(0,n.default)(e).getTime(),o=(0,n.default)(t.start).getTime(),i=(0,n.default)(t.end).getTime();if(!(o<=i))throw new RangeError("Invalid interval");return r>=o&&r<=i}},50136:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(82284),a=r(99699),o=r(11151);function i(e){var t,r;if((0,o.A)(1,arguments),e&&"function"===typeof e.forEach)t=e;else{if("object"!==(0,n.A)(e)||null===e)return new Date(NaN);t=Array.prototype.slice.call(e)}return t.forEach((function(e){var t=(0,a.default)(e);(void 0===r||r<t||isNaN(Number(t)))&&(r=t)})),r||new Date(NaN)}},38990:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(82284),a=r(99699),o=r(11151);function i(e){var t,r;if((0,o.A)(1,arguments),e&&"function"===typeof e.forEach)t=e;else{if("object"!==(0,n.A)(e)||null===e)return new Date(NaN);t=Array.prototype.slice.call(e)}return t.forEach((function(e){var t=(0,a.default)(e);(void 0===r||r>t||isNaN(t.getDate()))&&(r=t)})),r||new Date(NaN)}},71082:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>Ze});var n=r(82284),a=r(27800);function o(e,t){var r="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=(0,a.A)(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){l=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(l)throw i}}}}var i=r(98090),s=r(50670),l=r(99699);function u(e,t){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}var c=r(49668),d=r(40460),p=r(9581),f=r(67668),h=r(11151),v=r(9417),g=r(85501),m=r(49640),b=r(23029),y=r(92901),w=r(64467),x=function(){function e(){(0,b.A)(this,e),(0,w.A)(this,"priority",void 0),(0,w.A)(this,"subPriority",0)}return(0,y.A)(e,[{key:"validate",value:function(e,t){return!0}}]),e}(),k=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(e,n,a,o,i){var s;return(0,b.A)(this,r),(s=t.call(this)).value=e,s.validateValue=n,s.setValue=a,s.priority=o,i&&(s.subPriority=i),s}return(0,y.A)(r,[{key:"validate",value:function(e,t){return this.validateValue(e,this.value,t)}},{key:"set",value:function(e,t,r){return this.setValue(e,t,this.value,r)}}]),r}(x),D=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",10),(0,w.A)((0,v.A)(e),"subPriority",-1),e}return(0,y.A)(r,[{key:"set",value:function(e,t){if(t.timestampIsSet)return e;var r=new Date(0);return r.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),r.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),r}}]),r}(x),C=function(){function e(){(0,b.A)(this,e),(0,w.A)(this,"incompatibleTokens",void 0),(0,w.A)(this,"priority",void 0),(0,w.A)(this,"subPriority",void 0)}return(0,y.A)(e,[{key:"run",value:function(e,t,r,n){var a=this.parse(e,t,r,n);return a?{setter:new k(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}},{key:"validate",value:function(e,t,r){return!0}}]),e}(),E=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",140),(0,w.A)((0,v.A)(e),"incompatibleTokens",["R","u","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"G":case"GG":case"GGG":return r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"});case"GGGGG":return r.era(e,{width:"narrow"});default:return r.era(e,{width:"wide"})||r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"})}}},{key:"set",value:function(e,t,r){return t.era=r,e.setUTCFullYear(r,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(C),A=r(4019),S=/^(1[0-2]|0?\d)/,_=/^(3[0-1]|[0-2]?\d)/,M=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,T=/^(5[0-3]|[0-4]?\d)/,O=/^(2[0-3]|[0-1]?\d)/,P=/^(2[0-4]|[0-1]?\d)/,N=/^(1[0-1]|0?\d)/,R=/^(1[0-2]|0?\d)/,L=/^[0-5]?\d/,F=/^[0-5]?\d/,Y=/^\d/,j=/^\d{1,2}/,B=/^\d{1,3}/,I=/^\d{1,4}/,H=/^-?\d+/,W=/^-?\d/,U=/^-?\d{1,2}/,q=/^-?\d{1,3}/,z=/^-?\d{1,4}/,Q=/^([+-])(\d{2})(\d{2})?|Z/,K=/^([+-])(\d{2})(\d{2})|Z/,G=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,X=/^([+-])(\d{2}):(\d{2})|Z/,V=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function $(e,t){return e?{value:t(e.value),rest:e.rest}:e}function Z(e,t){var r=t.match(e);return r?{value:parseInt(r[0],10),rest:t.slice(r[0].length)}:null}function J(e,t){var r=t.match(e);if(!r)return null;if("Z"===r[0])return{value:0,rest:t.slice(1)};var n="+"===r[1]?1:-1,a=r[2]?parseInt(r[2],10):0,o=r[3]?parseInt(r[3],10):0,i=r[5]?parseInt(r[5],10):0;return{value:n*(a*A.s0+o*A.Cg+i*A._m),rest:t.slice(r[0].length)}}function ee(e){return Z(H,e)}function te(e,t){switch(e){case 1:return Z(Y,t);case 2:return Z(j,t);case 3:return Z(B,t);case 4:return Z(I,t);default:return Z(new RegExp("^\\d{1,"+e+"}"),t)}}function re(e,t){switch(e){case 1:return Z(W,t);case 2:return Z(U,t);case 3:return Z(q,t);case 4:return Z(z,t);default:return Z(new RegExp("^-?\\d{1,"+e+"}"),t)}}function ne(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function ae(e,t){var r,n=t>0,a=n?t:1-t;if(a<=50)r=e||100;else{var o=a+50;r=e+100*Math.floor(o/100)-(e>=o%100?100:0)}return n?r:1-r}function oe(e){return e%400===0||e%4===0&&e%100!==0}var ie=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",130),(0,w.A)((0,v.A)(e),"incompatibleTokens",["Y","R","u","w","I","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return{year:e,isTwoDigitYear:"yy"===t}};switch(t){case"y":return $(te(4,e),n);case"yo":return $(r.ordinalNumber(e,{unit:"year"}),n);default:return $(te(t.length,e),n)}}},{key:"validate",value:function(e,t){return t.isTwoDigitYear||t.year>0}},{key:"set",value:function(e,t,r){var n=e.getUTCFullYear();if(r.isTwoDigitYear){var a=ae(r.year,n);return e.setUTCFullYear(a,0,1),e.setUTCHours(0,0,0,0),e}var o="era"in t&&1!==t.era?1-r.year:r.year;return e.setUTCFullYear(o,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(C),se=r(38888),le=r(67350),ue=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",130),(0,w.A)((0,v.A)(e),"incompatibleTokens",["y","R","u","Q","q","M","L","I","d","D","i","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return{year:e,isTwoDigitYear:"YY"===t}};switch(t){case"Y":return $(te(4,e),n);case"Yo":return $(r.ordinalNumber(e,{unit:"year"}),n);default:return $(te(t.length,e),n)}}},{key:"validate",value:function(e,t){return t.isTwoDigitYear||t.year>0}},{key:"set",value:function(e,t,r,n){var a=(0,se.A)(e,n);if(r.isTwoDigitYear){var o=ae(r.year,a);return e.setUTCFullYear(o,0,n.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,le.A)(e,n)}var i="era"in t&&1!==t.era?1-r.year:r.year;return e.setUTCFullYear(i,0,n.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,le.A)(e,n)}}]),r}(C),ce=r(74715),de=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",130),(0,w.A)((0,v.A)(e),"incompatibleTokens",["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t){return re("R"===t?4:t.length,e)}},{key:"set",value:function(e,t,r){var n=new Date(0);return n.setUTCFullYear(r,0,4),n.setUTCHours(0,0,0,0),(0,ce.A)(n)}}]),r}(C),pe=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",130),(0,w.A)((0,v.A)(e),"incompatibleTokens",["G","y","Y","R","w","I","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t){return re("u"===t?4:t.length,e)}},{key:"set",value:function(e,t,r){return e.setUTCFullYear(r,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(C),fe=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",120),(0,w.A)((0,v.A)(e),"incompatibleTokens",["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"Q":case"QQ":return te(t.length,e);case"Qo":return r.ordinalNumber(e,{unit:"quarter"});case"QQQ":return r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(e,{width:"narrow",context:"formatting"});default:return r.quarter(e,{width:"wide",context:"formatting"})||r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=1&&t<=4}},{key:"set",value:function(e,t,r){return e.setUTCMonth(3*(r-1),1),e.setUTCHours(0,0,0,0),e}}]),r}(C),he=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",120),(0,w.A)((0,v.A)(e),"incompatibleTokens",["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"q":case"qq":return te(t.length,e);case"qo":return r.ordinalNumber(e,{unit:"quarter"});case"qqq":return r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(e,{width:"narrow",context:"standalone"});default:return r.quarter(e,{width:"wide",context:"standalone"})||r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=1&&t<=4}},{key:"set",value:function(e,t,r){return e.setUTCMonth(3*(r-1),1),e.setUTCHours(0,0,0,0),e}}]),r}(C),ve=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"incompatibleTokens",["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]),(0,w.A)((0,v.A)(e),"priority",110),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return e-1};switch(t){case"M":return $(Z(S,e),n);case"MM":return $(te(2,e),n);case"Mo":return $(r.ordinalNumber(e,{unit:"month"}),n);case"MMM":return r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(e,{width:"narrow",context:"formatting"});default:return r.month(e,{width:"wide",context:"formatting"})||r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.setUTCMonth(r,1),e.setUTCHours(0,0,0,0),e}}]),r}(C),ge=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",110),(0,w.A)((0,v.A)(e),"incompatibleTokens",["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return e-1};switch(t){case"L":return $(Z(S,e),n);case"LL":return $(te(2,e),n);case"Lo":return $(r.ordinalNumber(e,{unit:"month"}),n);case"LLL":return r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(e,{width:"narrow",context:"standalone"});default:return r.month(e,{width:"wide",context:"standalone"})||r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.setUTCMonth(r,1),e.setUTCHours(0,0,0,0),e}}]),r}(C),me=r(9478);var be=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",100),(0,w.A)((0,v.A)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","i","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"w":return Z(T,e);case"wo":return r.ordinalNumber(e,{unit:"week"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=53}},{key:"set",value:function(e,t,r,n){return(0,le.A)(function(e,t,r){(0,h.A)(2,arguments);var n=(0,l.default)(e),a=(0,f.A)(t),o=(0,me.A)(n,r)-a;return n.setUTCDate(n.getUTCDate()-7*o),n}(e,r,n),n)}}]),r}(C),ye=r(49717);var we=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",100),(0,w.A)((0,v.A)(e),"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"I":return Z(T,e);case"Io":return r.ordinalNumber(e,{unit:"week"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=53}},{key:"set",value:function(e,t,r){return(0,ce.A)(function(e,t){(0,h.A)(2,arguments);var r=(0,l.default)(e),n=(0,f.A)(t),a=(0,ye.A)(r)-n;return r.setUTCDate(r.getUTCDate()-7*a),r}(e,r))}}]),r}(C),xe=[31,28,31,30,31,30,31,31,30,31,30,31],ke=[31,29,31,30,31,30,31,31,30,31,30,31],De=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",90),(0,w.A)((0,v.A)(e),"subPriority",1),(0,w.A)((0,v.A)(e),"incompatibleTokens",["Y","R","q","Q","w","I","D","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"d":return Z(_,e);case"do":return r.ordinalNumber(e,{unit:"date"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){var r=oe(e.getUTCFullYear()),n=e.getUTCMonth();return r?t>=1&&t<=ke[n]:t>=1&&t<=xe[n]}},{key:"set",value:function(e,t,r){return e.setUTCDate(r),e.setUTCHours(0,0,0,0),e}}]),r}(C),Ce=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",90),(0,w.A)((0,v.A)(e),"subpriority",1),(0,w.A)((0,v.A)(e),"incompatibleTokens",["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"D":case"DD":return Z(M,e);case"Do":return r.ordinalNumber(e,{unit:"date"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return oe(e.getUTCFullYear())?t>=1&&t<=366:t>=1&&t<=365}},{key:"set",value:function(e,t,r){return e.setUTCMonth(0,r),e.setUTCHours(0,0,0,0),e}}]),r}(C),Ee=r(28458);function Ae(e,t,r){var n,a,o,i,s,u,c,d;(0,h.A)(2,arguments);var p=(0,Ee.q)(),v=(0,f.A)(null!==(n=null!==(a=null!==(o=null!==(i=null===r||void 0===r?void 0:r.weekStartsOn)&&void 0!==i?i:null===r||void 0===r||null===(s=r.locale)||void 0===s||null===(u=s.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==o?o:p.weekStartsOn)&&void 0!==a?a:null===(c=p.locale)||void 0===c||null===(d=c.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==n?n:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=(0,l.default)(e),m=(0,f.A)(t),b=((m%7+7)%7<v?7:0)+m-g.getUTCDay();return g.setUTCDate(g.getUTCDate()+b),g}var Se=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",90),(0,w.A)((0,v.A)(e),"incompatibleTokens",["D","i","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"E":case"EE":case"EEE":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=Ae(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(C),_e=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",90),(0,w.A)((0,v.A)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r,n){var a=function(e){var t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"e":case"ee":return $(te(t.length,e),a);case"eo":return $(r.ordinalNumber(e,{unit:"day"}),a);case"eee":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"eeeee":return r.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=Ae(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(C),Me=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",90),(0,w.A)((0,v.A)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r,n){var a=function(e){var t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"c":case"cc":return $(te(t.length,e),a);case"co":return $(r.ordinalNumber(e,{unit:"day"}),a);case"ccc":return r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});case"ccccc":return r.day(e,{width:"narrow",context:"standalone"});case"cccccc":return r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});default:return r.day(e,{width:"wide",context:"standalone"})||r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=Ae(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(C);var Te=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",90),(0,w.A)((0,v.A)(e),"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return 0===e?7:e};switch(t){case"i":case"ii":return te(t.length,e);case"io":return r.ordinalNumber(e,{unit:"day"});case"iii":return $(r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiii":return $(r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiiii":return $(r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);default:return $(r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n)}}},{key:"validate",value:function(e,t){return t>=1&&t<=7}},{key:"set",value:function(e,t,r){return e=function(e,t){(0,h.A)(2,arguments);var r=(0,f.A)(t);r%7===0&&(r-=7);var n=(0,l.default)(e),a=((r%7+7)%7<1?7:0)+r-n.getUTCDay();return n.setUTCDate(n.getUTCDate()+a),n}(e,r),e.setUTCHours(0,0,0,0),e}}]),r}(C),Oe=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",80),(0,w.A)((0,v.A)(e),"incompatibleTokens",["b","B","H","k","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"a":case"aa":case"aaa":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(ne(r),0,0,0),e}}]),r}(C),Pe=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",80),(0,w.A)((0,v.A)(e),"incompatibleTokens",["a","B","H","k","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"b":case"bb":case"bbb":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(ne(r),0,0,0),e}}]),r}(C),Ne=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",80),(0,w.A)((0,v.A)(e),"incompatibleTokens",["a","b","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"B":case"BB":case"BBB":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(ne(r),0,0,0),e}}]),r}(C),Re=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",70),(0,w.A)((0,v.A)(e),"incompatibleTokens",["H","K","k","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"h":return Z(R,e);case"ho":return r.ordinalNumber(e,{unit:"hour"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=12}},{key:"set",value:function(e,t,r){var n=e.getUTCHours()>=12;return n&&r<12?e.setUTCHours(r+12,0,0,0):n||12!==r?e.setUTCHours(r,0,0,0):e.setUTCHours(0,0,0,0),e}}]),r}(C),Le=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",70),(0,w.A)((0,v.A)(e),"incompatibleTokens",["a","b","h","K","k","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"H":return Z(O,e);case"Ho":return r.ordinalNumber(e,{unit:"hour"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=23}},{key:"set",value:function(e,t,r){return e.setUTCHours(r,0,0,0),e}}]),r}(C),Fe=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",70),(0,w.A)((0,v.A)(e),"incompatibleTokens",["h","H","k","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"K":return Z(N,e);case"Ko":return r.ordinalNumber(e,{unit:"hour"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.getUTCHours()>=12&&r<12?e.setUTCHours(r+12,0,0,0):e.setUTCHours(r,0,0,0),e}}]),r}(C),Ye=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",70),(0,w.A)((0,v.A)(e),"incompatibleTokens",["a","b","h","H","K","t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"k":return Z(P,e);case"ko":return r.ordinalNumber(e,{unit:"hour"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=24}},{key:"set",value:function(e,t,r){var n=r<=24?r%24:r;return e.setUTCHours(n,0,0,0),e}}]),r}(C),je=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",60),(0,w.A)((0,v.A)(e),"incompatibleTokens",["t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"m":return Z(L,e);case"mo":return r.ordinalNumber(e,{unit:"minute"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=59}},{key:"set",value:function(e,t,r){return e.setUTCMinutes(r,0,0),e}}]),r}(C),Be=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",50),(0,w.A)((0,v.A)(e),"incompatibleTokens",["t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t,r){switch(t){case"s":return Z(F,e);case"so":return r.ordinalNumber(e,{unit:"second"});default:return te(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=59}},{key:"set",value:function(e,t,r){return e.setUTCSeconds(r,0),e}}]),r}(C),Ie=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",30),(0,w.A)((0,v.A)(e),"incompatibleTokens",["t","T"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t){return $(te(t.length,e),(function(e){return Math.floor(e*Math.pow(10,3-t.length))}))}},{key:"set",value:function(e,t,r){return e.setUTCMilliseconds(r),e}}]),r}(C),He=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",10),(0,w.A)((0,v.A)(e),"incompatibleTokens",["t","T","x"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t){switch(t){case"X":return J(Q,e);case"XX":return J(K,e);case"XXXX":return J(G,e);case"XXXXX":return J(V,e);default:return J(X,e)}}},{key:"set",value:function(e,t,r){return t.timestampIsSet?e:new Date(e.getTime()-r)}}]),r}(C),We=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",10),(0,w.A)((0,v.A)(e),"incompatibleTokens",["t","T","X"]),e}return(0,y.A)(r,[{key:"parse",value:function(e,t){switch(t){case"x":return J(Q,e);case"xx":return J(K,e);case"xxxx":return J(G,e);case"xxxxx":return J(V,e);default:return J(X,e)}}},{key:"set",value:function(e,t,r){return t.timestampIsSet?e:new Date(e.getTime()-r)}}]),r}(C),Ue=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",40),(0,w.A)((0,v.A)(e),"incompatibleTokens","*"),e}return(0,y.A)(r,[{key:"parse",value:function(e){return ee(e)}},{key:"set",value:function(e,t,r){return[new Date(1e3*r),{timestampIsSet:!0}]}}]),r}(C),qe=function(e){(0,g.A)(r,e);var t=(0,m.A)(r);function r(){var e;(0,b.A)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,w.A)((0,v.A)(e),"priority",20),(0,w.A)((0,v.A)(e),"incompatibleTokens","*"),e}return(0,y.A)(r,[{key:"parse",value:function(e){return ee(e)}},{key:"set",value:function(e,t,r){return[new Date(r),{timestampIsSet:!0}]}}]),r}(C),ze={G:new E,y:new ie,Y:new ue,R:new de,u:new pe,Q:new fe,q:new he,M:new ve,L:new ge,w:new be,I:new we,d:new De,D:new Ce,E:new Se,e:new _e,c:new Me,i:new Te,a:new Oe,b:new Pe,B:new Ne,h:new Re,H:new Le,K:new Fe,k:new Ye,m:new je,s:new Be,S:new Ie,X:new He,x:new We,t:new Ue,T:new qe},Qe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ke=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ge=/^'([^]*?)'?$/,Xe=/''/g,Ve=/\S/,$e=/[a-zA-Z]/;function Ze(e,t,r,a){var v,g,m,b,y,w,x,k,C,E,A,S,_,M,T,O,P,N;(0,h.A)(3,arguments);var R=String(e),L=String(t),F=(0,Ee.q)(),Y=null!==(v=null!==(g=null===a||void 0===a?void 0:a.locale)&&void 0!==g?g:F.locale)&&void 0!==v?v:i.A;if(!Y.match)throw new RangeError("locale must contain match property");var j=(0,f.A)(null!==(m=null!==(b=null!==(y=null!==(w=null===a||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==w?w:null===a||void 0===a||null===(x=a.locale)||void 0===x||null===(k=x.options)||void 0===k?void 0:k.firstWeekContainsDate)&&void 0!==y?y:F.firstWeekContainsDate)&&void 0!==b?b:null===(C=F.locale)||void 0===C||null===(E=C.options)||void 0===E?void 0:E.firstWeekContainsDate)&&void 0!==m?m:1);if(!(j>=1&&j<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var B=(0,f.A)(null!==(A=null!==(S=null!==(_=null!==(M=null===a||void 0===a?void 0:a.weekStartsOn)&&void 0!==M?M:null===a||void 0===a||null===(T=a.locale)||void 0===T||null===(O=T.options)||void 0===O?void 0:O.weekStartsOn)&&void 0!==_?_:F.weekStartsOn)&&void 0!==S?S:null===(P=F.locale)||void 0===P||null===(N=P.options)||void 0===N?void 0:N.weekStartsOn)&&void 0!==A?A:0);if(!(B>=0&&B<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(""===L)return""===R?(0,l.default)(r):new Date(NaN);var I,H={firstWeekContainsDate:j,weekStartsOn:B,locale:Y},W=[new D],U=L.match(Ke).map((function(e){var t=e[0];return t in c.A?(0,c.A[t])(e,Y.formatLong):e})).join("").match(Qe),q=[],z=o(U);try{var Q=function(){var t=I.value;null!==a&&void 0!==a&&a.useAdditionalWeekYearTokens||!(0,p.xM)(t)||(0,p.lJ)(t,L,e),null!==a&&void 0!==a&&a.useAdditionalDayOfYearTokens||!(0,p.ef)(t)||(0,p.lJ)(t,L,e);var r=t[0],n=ze[r];if(n){var o=n.incompatibleTokens;if(Array.isArray(o)){var i=q.find((function(e){return o.includes(e.token)||e.token===r}));if(i)throw new RangeError("The format string mustn't contain `".concat(i.fullToken,"` and `").concat(t,"` at the same time"))}else if("*"===n.incompatibleTokens&&q.length>0)throw new RangeError("The format string mustn't contain `".concat(t,"` and any other token at the same time"));q.push({token:r,fullToken:t});var s=n.run(R,t,Y.match,H);if(!s)return{v:new Date(NaN)};W.push(s.setter),R=s.rest}else{if(r.match($e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+r+"`");if("''"===t?t="'":"'"===r&&(t=t.match(Ge)[1].replace(Xe,"'")),0!==R.indexOf(t))return{v:new Date(NaN)};R=R.slice(t.length)}};for(z.s();!(I=z.n()).done;){var K=Q();if("object"===(0,n.A)(K))return K.v}}catch(re){z.e(re)}finally{z.f()}if(R.length>0&&Ve.test(R))return new Date(NaN);var G=W.map((function(e){return e.priority})).sort((function(e,t){return t-e})).filter((function(e,t,r){return r.indexOf(e)===t})).map((function(e){return W.filter((function(t){return t.priority===e})).sort((function(e,t){return t.subPriority-e.subPriority}))})).map((function(e){return e[0]})),X=(0,l.default)(r);if(isNaN(X.getTime()))return new Date(NaN);var V,$=(0,s.A)(X,(0,d.A)(X)),Z={},J=o(G);try{for(J.s();!(V=J.n()).done;){var ee=V.value;if(!ee.validate($,H))return new Date(NaN);var te=ee.set($,Z,H);Array.isArray(te)?($=te[0],u(Z,te[1])):$=te}}catch(re){J.e(re)}finally{J.f()}return $}},85670:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(4019),a=r(11151),o=r(67668);function i(e,t){var r;(0,a.A)(1,arguments);var i=(0,o.A)(null!==(r=null===t||void 0===t?void 0:t.additionalDigits)&&void 0!==r?r:2);if(2!==i&&1!==i&&0!==i)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!==typeof e&&"[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);var v,g=function(e){var t,r={},n=e.split(s.dateTimeDelimiter);if(n.length>2)return r;/:/.test(n[0])?t=n[0]:(r.date=n[0],t=n[1],s.timeZoneDelimiter.test(r.date)&&(r.date=e.split(s.timeZoneDelimiter)[0],t=e.substr(r.date.length,e.length)));if(t){var a=s.timezone.exec(t);a?(r.time=t.replace(a[1],""),r.timezone=a[1]):r.time=t}return r}(e);if(g.date){var m=function(e,t){var r=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),n=e.match(r);if(!n)return{year:NaN,restDateString:""};var a=n[1]?parseInt(n[1]):null,o=n[2]?parseInt(n[2]):null;return{year:null===o?a:100*o,restDateString:e.slice((n[1]||n[2]).length)}}(g.date,i);v=function(e,t){if(null===t)return new Date(NaN);var r=e.match(l);if(!r)return new Date(NaN);var n=!!r[4],a=d(r[1]),o=d(r[2])-1,i=d(r[3]),s=d(r[4]),u=d(r[5])-1;if(n)return function(e,t,r){return t>=1&&t<=53&&r>=0&&r<=6}(0,s,u)?function(e,t,r){var n=new Date(0);n.setUTCFullYear(e,0,4);var a=n.getUTCDay()||7,o=7*(t-1)+r+1-a;return n.setUTCDate(n.getUTCDate()+o),n}(t,s,u):new Date(NaN);var c=new Date(0);return function(e,t,r){return t>=0&&t<=11&&r>=1&&r<=(f[t]||(h(e)?29:28))}(t,o,i)&&function(e,t){return t>=1&&t<=(h(e)?366:365)}(t,a)?(c.setUTCFullYear(t,o,Math.max(a,i)),c):new Date(NaN)}(m.restDateString,m.year)}if(!v||isNaN(v.getTime()))return new Date(NaN);var b,y=v.getTime(),w=0;if(g.time&&(w=function(e){var t=e.match(u);if(!t)return NaN;var r=p(t[1]),a=p(t[2]),o=p(t[3]);if(!function(e,t,r){if(24===e)return 0===t&&0===r;return r>=0&&r<60&&t>=0&&t<60&&e>=0&&e<25}(r,a,o))return NaN;return r*n.s0+a*n.Cg+1e3*o}(g.time),isNaN(w)))return new Date(NaN);if(!g.timezone){var x=new Date(y+w),k=new Date(0);return k.setFullYear(x.getUTCFullYear(),x.getUTCMonth(),x.getUTCDate()),k.setHours(x.getUTCHours(),x.getUTCMinutes(),x.getUTCSeconds(),x.getUTCMilliseconds()),k}return b=function(e){if("Z"===e)return 0;var t=e.match(c);if(!t)return 0;var r="+"===t[1]?-1:1,a=parseInt(t[2]),o=t[3]&&parseInt(t[3])||0;if(!function(e,t){return t>=0&&t<=59}(0,o))return NaN;return r*(a*n.s0+o*n.Cg)}(g.timezone),isNaN(b)?new Date(NaN):new Date(y+w+b)}var s={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},l=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,u=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,c=/^([+-])(\d{2})(?::?(\d{2}))?$/;function d(e){return e?parseInt(e):1}function p(e){return e&&parseFloat(e.replace(",","."))||0}var f=[31,null,31,30,31,30,31,31,30,31,30,31];function h(e){return e%400===0||e%4===0&&e%100!==0}},2402:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>l});var n=r(82284),a=r(99699),o=r(49864),i=r(67668),s=r(11151);function l(e,t){if((0,s.A)(2,arguments),"object"!==(0,n.A)(t)||null===t)throw new RangeError("values parameter must be an object");var r=(0,a.default)(e);return isNaN(r.getTime())?new Date(NaN):(null!=t.year&&r.setFullYear(t.year),null!=t.month&&(r=(0,o.default)(r,t.month)),null!=t.date&&r.setDate((0,i.A)(t.date)),null!=t.hours&&r.setHours((0,i.A)(t.hours)),null!=t.minutes&&r.setMinutes((0,i.A)(t.minutes)),null!=t.seconds&&r.setSeconds((0,i.A)(t.seconds)),null!=t.milliseconds&&r.setMilliseconds((0,i.A)(t.milliseconds)),r)}},63701:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),i=(0,n.A)(t);return r.setHours(i),r}},42231:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),i=(0,n.A)(t);return r.setMinutes(i),r}},49864:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),i=(0,n.A)(t),s=r.getFullYear(),l=r.getDate(),u=new Date(0);u.setFullYear(s,i,15),u.setHours(0,0,0,0);var c=function(e){(0,o.A)(1,arguments);var t=(0,a.default)(e),r=t.getFullYear(),n=t.getMonth(),i=new Date(0);return i.setFullYear(r,n+1,0),i.setHours(0,0,0,0),i.getDate()}(u);return r.setMonth(i,Math.min(l,c)),r}},5618:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(67668),a=r(99699),o=r(49864),i=r(11151);function s(e,t){(0,i.A)(2,arguments);var r=(0,a.default)(e),s=(0,n.A)(t)-(Math.floor(r.getMonth()/3)+1);return(0,o.default)(r,r.getMonth()+3*s)}},78991:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),i=(0,n.A)(t);return r.setSeconds(i),r}},32455:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(99699),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,a.default)(e),i=(0,n.A)(t);return isNaN(r.getTime())?new Date(NaN):(r.setFullYear(i),r)}},26876:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e);return t.setHours(0,0,0,0),t}},34631:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e);return t.setDate(1),t.setHours(0,0,0,0),t}},63501:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e),r=t.getMonth(),o=r-r%3;return t.setMonth(o,1),t.setHours(0,0,0,0),t}},15163:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(99699),a=r(67668),o=r(11151),i=r(28458);function s(e,t){var r,s,l,u,c,d,p,f;(0,o.A)(1,arguments);var h=(0,i.q)(),v=(0,a.A)(null!==(r=null!==(s=null!==(l=null!==(u=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==u?u:null===t||void 0===t||null===(c=t.locale)||void 0===c||null===(d=c.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==l?l:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=(0,n.default)(e),m=g.getDay(),b=(m<v?7:0)+m-v;return g.setDate(g.getDate()-b),g.setHours(0,0,0,0),g}},78918:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(99699),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=(0,n.default)(e),r=new Date(0);return r.setFullYear(t.getFullYear(),0,1),r.setHours(0,0,0,0),r}},10443:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(7806),a=r(11151),o=r(67668);function i(e,t){(0,a.A)(2,arguments);var r=(0,o.A)(t);return(0,n.default)(e,-r)}},50670:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(77871),a=r(11151),o=r(67668);function i(e,t){(0,a.A)(2,arguments);var r=(0,o.A)(t);return(0,n.A)(e,-r)}},5231:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(83214),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,n.A)(t);return(0,a.default)(e,-r)}},63801:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(58980),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,n.A)(t);return(0,a.default)(e,-r)}},5377:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(12454),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,n.A)(t);return(0,a.default)(e,-r)}},70486:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(67668),a=r(38733),o=r(11151);function i(e,t){(0,o.A)(2,arguments);var r=(0,n.A)(t);return(0,a.default)(e,-r)}},99699:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(82284),a=r(11151);function o(e){(0,a.A)(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===(0,n.A)(e)&&"[object Date]"===t?new Date(e.getTime()):"number"===typeof e||"[object Number]"===t?new Date(e):("string"!==typeof e&&"[object String]"!==t||"undefined"===typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}},30115:e=>{var t="undefined"!==typeof Element,r="function"===typeof Map,n="function"===typeof Set,a="function"===typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,u,c;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!==l--;)if(!o(e[l],i[l]))return!1;return!0}if(r&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!i.has(l.value[0]))return!1;for(c=e.entries();!(l=c.next()).done;)if(!o(l.value[1],i.get(l.value[0])))return!1;return!0}if(n&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!==l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((s=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!==l--;)if(!Object.prototype.hasOwnProperty.call(i,u[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!==l--;)if(("_owner"!==u[l]&&"__v"!==u[l]&&"__o"!==u[l]||!e.$$typeof)&&!o(e[u[l]],i[u[l]]))return!1;return!0}return e!==e&&i!==i}e.exports=function(e,t){try{return o(e,t)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}}},73908:(e,t,r)=>{"use strict";r.r(t),r.d(t,{IGNORE_CLASS_NAME:()=>h,default:()=>g});var n=r(96540),a=r(40961);function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e,t,r){return e===t||(e.correspondingElement?e.correspondingElement.classList.contains(r):e.classList.contains(r))}var l,u,c=(void 0===l&&(l=0),function(){return++l}),d={},p={},f=["touchstart","touchmove"],h="ignore-react-onclickoutside";function v(e,t){var r={};return-1!==f.indexOf(t)&&u&&(r.passive=!e.props.preventDefault),r}const g=function(e,t){var r,l,f=e.displayName||e.name||"Component";return l=r=function(r){var l,h;function g(e){var n;return(n=r.call(this,e)||this).__outsideClickHandler=function(e){if("function"!==typeof n.__clickOutsideHandlerProp){var t=n.getInstance();if("function"!==typeof t.props.handleClickOutside){if("function"!==typeof t.handleClickOutside)throw new Error("WrappedComponent: "+f+" lacks a handleClickOutside(event) function for processing outside click events.");t.handleClickOutside(e)}else t.props.handleClickOutside(e)}else n.__clickOutsideHandlerProp(e)},n.__getComponentNode=function(){var e=n.getInstance();return t&&"function"===typeof t.setClickOutsideRef?t.setClickOutsideRef()(e):"function"===typeof e.setClickOutsideRef?e.setClickOutsideRef():(0,a.findDOMNode)(e)},n.enableOnClickOutside=function(){if("undefined"!==typeof document&&!p[n._uid]){"undefined"===typeof u&&(u=function(){if("undefined"!==typeof window&&"function"===typeof window.addEventListener){var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),r=function(){};return window.addEventListener("testPassiveEventSupport",r,t),window.removeEventListener("testPassiveEventSupport",r,t),e}}()),p[n._uid]=!0;var e=n.props.eventTypes;e.forEach||(e=[e]),d[n._uid]=function(e){var t;null!==n.componentNode&&(n.props.preventDefault&&e.preventDefault(),n.props.stopPropagation&&e.stopPropagation(),n.props.excludeScrollbar&&(t=e,document.documentElement.clientWidth<=t.clientX||document.documentElement.clientHeight<=t.clientY)||function(e,t,r){if(e===t)return!0;for(;e.parentNode||e.host;){if(e.parentNode&&s(e,t,r))return!0;e=e.parentNode||e.host}return e}(e.composed&&e.composedPath&&e.composedPath().shift()||e.target,n.componentNode,n.props.outsideClickIgnoreClass)===document&&n.__outsideClickHandler(e))},e.forEach((function(e){document.addEventListener(e,d[n._uid],v(i(n),e))}))}},n.disableOnClickOutside=function(){delete p[n._uid];var e=d[n._uid];if(e&&"undefined"!==typeof document){var t=n.props.eventTypes;t.forEach||(t=[t]),t.forEach((function(t){return document.removeEventListener(t,e,v(i(n),t))})),delete d[n._uid]}},n.getRef=function(e){return n.instanceRef=e},n._uid=c(),n}h=r,(l=g).prototype=Object.create(h.prototype),l.prototype.constructor=l,o(l,h);var m=g.prototype;return m.getInstance=function(){if(e.prototype&&!e.prototype.isReactComponent)return this;var t=this.instanceRef;return t.getInstance?t.getInstance():t},m.componentDidMount=function(){if("undefined"!==typeof document&&document.createElement){var e=this.getInstance();if(t&&"function"===typeof t.handleClickOutside&&(this.__clickOutsideHandlerProp=t.handleClickOutside(e),"function"!==typeof this.__clickOutsideHandlerProp))throw new Error("WrappedComponent: "+f+" lacks a function for processing outside click events specified by the handleClickOutside config option.");this.componentNode=this.__getComponentNode(),this.props.disableOnClickOutside||this.enableOnClickOutside()}},m.componentDidUpdate=function(){this.componentNode=this.__getComponentNode()},m.componentWillUnmount=function(){this.disableOnClickOutside()},m.render=function(){var t=this.props;t.excludeScrollbar;var r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(t,["excludeScrollbar"]);return e.prototype&&e.prototype.isReactComponent?r.ref=this.getRef:r.wrappedRef=this.getRef,r.disableOnClickOutside=this.disableOnClickOutside,r.enableOnClickOutside=this.enableOnClickOutside,(0,n.createElement)(e,r)},g}(n.Component),r.displayName="OnClickOutside("+f+")",r.defaultProps={eventTypes:["mousedown","touchstart"],excludeScrollbar:t&&t.excludeScrollbar||!1,outsideClickIgnoreClass:h,preventDefault:!1,stopPropagation:!1},r.getClass=function(){return e.getClass?e.getClass():e},l}},32430:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Manager:()=>i,Popper:()=>Le,Reference:()=>je,usePopper:()=>Oe});var n=r(96540),a=n.createContext(),o=n.createContext();function i(e){var t=e.children,r=n.useState(null),i=r[0],s=r[1],l=n.useRef(!1);n.useEffect((function(){return function(){l.current=!0}}),[]);var u=n.useCallback((function(e){l.current||s(e)}),[]);return n.createElement(a.Provider,{value:i},n.createElement(o.Provider,{value:u},t))}var s=function(e){return Array.isArray(e)?e[0]:e},l=function(e){if("function"===typeof e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.apply(void 0,r)}},u=function(e,t){if("function"===typeof e)return l(e,t);null!=e&&(e.current=t)},c=function(e){return e.reduce((function(e,t){var r=t[0],n=t[1];return e[r]=n,e}),{})},d="undefined"!==typeof window&&window.document&&window.document.createElement?n.useLayoutEffect:n.useEffect,p=r(40961);function f(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function h(e){return e instanceof f(e).Element||e instanceof Element}function v(e){return e instanceof f(e).HTMLElement||e instanceof HTMLElement}function g(e){return"undefined"!==typeof ShadowRoot&&(e instanceof f(e).ShadowRoot||e instanceof ShadowRoot)}var m=Math.max,b=Math.min,y=Math.round;function w(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function x(){return!/^((?!chrome|android).)*safari/i.test(w())}function k(e,t,r){void 0===t&&(t=!1),void 0===r&&(r=!1);var n=e.getBoundingClientRect(),a=1,o=1;t&&v(e)&&(a=e.offsetWidth>0&&y(n.width)/e.offsetWidth||1,o=e.offsetHeight>0&&y(n.height)/e.offsetHeight||1);var i=(h(e)?f(e):window).visualViewport,s=!x()&&r,l=(n.left+(s&&i?i.offsetLeft:0))/a,u=(n.top+(s&&i?i.offsetTop:0))/o,c=n.width/a,d=n.height/o;return{width:c,height:d,top:u,right:l+c,bottom:u+d,left:l,x:l,y:u}}function D(e){var t=f(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(e){return e?(e.nodeName||"").toLowerCase():null}function E(e){return((h(e)?e.ownerDocument:e.document)||window.document).documentElement}function A(e){return k(E(e)).left+D(e).scrollLeft}function S(e){return f(e).getComputedStyle(e)}function _(e){var t=S(e),r=t.overflow,n=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+a+n)}function M(e,t,r){void 0===r&&(r=!1);var n=v(t),a=v(t)&&function(e){var t=e.getBoundingClientRect(),r=y(t.width)/e.offsetWidth||1,n=y(t.height)/e.offsetHeight||1;return 1!==r||1!==n}(t),o=E(t),i=k(e,a,r),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&(("body"!==C(t)||_(o))&&(s=function(e){return e!==f(e)&&v(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:D(e);var t}(t)),v(t)?((l=k(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=A(o))),{x:i.left+s.scrollLeft-l.x,y:i.top+s.scrollTop-l.y,width:i.width,height:i.height}}function T(e){var t=k(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function O(e){return"html"===C(e)?e:e.assignedSlot||e.parentNode||(g(e)?e.host:null)||E(e)}function P(e){return["html","body","#document"].indexOf(C(e))>=0?e.ownerDocument.body:v(e)&&_(e)?e:P(O(e))}function N(e,t){var r;void 0===t&&(t=[]);var n=P(e),a=n===(null==(r=e.ownerDocument)?void 0:r.body),o=f(n),i=a?[o].concat(o.visualViewport||[],_(n)?n:[]):n,s=t.concat(i);return a?s:s.concat(N(O(i)))}function R(e){return["table","td","th"].indexOf(C(e))>=0}function L(e){return v(e)&&"fixed"!==S(e).position?e.offsetParent:null}function F(e){for(var t=f(e),r=L(e);r&&R(r)&&"static"===S(r).position;)r=L(r);return r&&("html"===C(r)||"body"===C(r)&&"static"===S(r).position)?t:r||function(e){var t=/firefox/i.test(w());if(/Trident/i.test(w())&&v(e)&&"fixed"===S(e).position)return null;var r=O(e);for(g(r)&&(r=r.host);v(r)&&["html","body"].indexOf(C(r))<0;){var n=S(r);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return r;r=r.parentNode}return null}(e)||t}var Y="top",j="bottom",B="right",I="left",H="auto",W=[Y,j,B,I],U="start",q="end",z="clippingParents",Q="viewport",K="popper",G="reference",X=W.reduce((function(e,t){return e.concat([t+"-"+U,t+"-"+q])}),[]),V=[].concat(W,[H]).reduce((function(e,t){return e.concat([t,t+"-"+U,t+"-"+q])}),[]),$=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Z(e){var t=new Map,r=new Set,n=[];function a(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var n=t.get(e);n&&a(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||a(e)})),n}function J(e){var t;return function(){return t||(t=new Promise((function(r){Promise.resolve().then((function(){t=void 0,r(e())}))}))),t}}var ee={placement:"bottom",modifiers:[],strategy:"absolute"};function te(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return!t.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function re(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,n=void 0===r?[]:r,a=t.defaultOptions,o=void 0===a?ee:a;return function(e,t,r){void 0===r&&(r=o);var a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ee,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},i=[],s=!1,l={state:a,setOptions:function(r){var s="function"===typeof r?r(a.options):r;u(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:h(e)?N(e):e.contextElement?N(e.contextElement):[],popper:N(t)};var c=function(e){var t=Z(e);return $.reduce((function(e,r){return e.concat(t.filter((function(e){return e.phase===r})))}),[])}(function(e){var t=e.reduce((function(e,t){var r=e[t.name];return e[t.name]=r?Object.assign({},r,t,{options:Object.assign({},r.options,t.options),data:Object.assign({},r.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}([].concat(n,a.options.modifiers)));return a.orderedModifiers=c.filter((function(e){return e.enabled})),a.orderedModifiers.forEach((function(e){var t=e.name,r=e.options,n=void 0===r?{}:r,o=e.effect;if("function"===typeof o){var s=o({state:a,name:t,instance:l,options:n}),u=function(){};i.push(s||u)}})),l.update()},forceUpdate:function(){if(!s){var e=a.elements,t=e.reference,r=e.popper;if(te(t,r)){a.rects={reference:M(t,F(r),"fixed"===a.options.strategy),popper:T(r)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(e){return a.modifiersData[e.name]=Object.assign({},e.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var o=a.orderedModifiers[n],i=o.fn,u=o.options,c=void 0===u?{}:u,d=o.name;"function"===typeof i&&(a=i({state:a,options:c,name:d,instance:l})||a)}else a.reset=!1,n=-1}}},update:J((function(){return new Promise((function(e){l.forceUpdate(),e(a)}))})),destroy:function(){u(),s=!0}};if(!te(e,t))return l;function u(){i.forEach((function(e){return e()})),i=[]}return l.setOptions(r).then((function(e){!s&&r.onFirstUpdate&&r.onFirstUpdate(e)})),l}}var ne={passive:!0};function ae(e){return e.split("-")[0]}function oe(e){return e.split("-")[1]}function ie(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function se(e){var t,r=e.reference,n=e.element,a=e.placement,o=a?ae(a):null,i=a?oe(a):null,s=r.x+r.width/2-n.width/2,l=r.y+r.height/2-n.height/2;switch(o){case Y:t={x:s,y:r.y-n.height};break;case j:t={x:s,y:r.y+r.height};break;case B:t={x:r.x+r.width,y:l};break;case I:t={x:r.x-n.width,y:l};break;default:t={x:r.x,y:r.y}}var u=o?ie(o):null;if(null!=u){var c="y"===u?"height":"width";switch(i){case U:t[u]=t[u]-(r[c]/2-n[c]/2);break;case q:t[u]=t[u]+(r[c]/2-n[c]/2)}}return t}var le={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ue(e){var t,r=e.popper,n=e.popperRect,a=e.placement,o=e.variation,i=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=i.x,h=void 0===p?0:p,v=i.y,g=void 0===v?0:v,m="function"===typeof c?c({x:h,y:g}):{x:h,y:g};h=m.x,g=m.y;var b=i.hasOwnProperty("x"),w=i.hasOwnProperty("y"),x=I,k=Y,D=window;if(u){var C=F(r),A="clientHeight",_="clientWidth";if(C===f(r)&&"static"!==S(C=E(r)).position&&"absolute"===s&&(A="scrollHeight",_="scrollWidth"),a===Y||(a===I||a===B)&&o===q)k=j,g-=(d&&C===D&&D.visualViewport?D.visualViewport.height:C[A])-n.height,g*=l?1:-1;if(a===I||(a===Y||a===j)&&o===q)x=B,h-=(d&&C===D&&D.visualViewport?D.visualViewport.width:C[_])-n.width,h*=l?1:-1}var M,T=Object.assign({position:s},u&&le),O=!0===c?function(e,t){var r=e.x,n=e.y,a=t.devicePixelRatio||1;return{x:y(r*a)/a||0,y:y(n*a)/a||0}}({x:h,y:g},f(r)):{x:h,y:g};return h=O.x,g=O.y,l?Object.assign({},T,((M={})[k]=w?"0":"",M[x]=b?"0":"",M.transform=(D.devicePixelRatio||1)<=1?"translate("+h+"px, "+g+"px)":"translate3d("+h+"px, "+g+"px, 0)",M)):Object.assign({},T,((t={})[k]=w?g+"px":"",t[x]=b?h+"px":"",t.transform="",t))}const ce={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,n=e.name,a=r.offset,o=void 0===a?[0,0]:a,i=V.reduce((function(e,r){return e[r]=function(e,t,r){var n=ae(e),a=[I,Y].indexOf(n)>=0?-1:1,o="function"===typeof r?r(Object.assign({},t,{placement:e})):r,i=o[0],s=o[1];return i=i||0,s=(s||0)*a,[I,B].indexOf(n)>=0?{x:s,y:i}:{x:i,y:s}}(r,t.rects,o),e}),{}),s=i[t.placement],l=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=i}};var de={left:"right",right:"left",bottom:"top",top:"bottom"};function pe(e){return e.replace(/left|right|bottom|top/g,(function(e){return de[e]}))}var fe={start:"end",end:"start"};function he(e){return e.replace(/start|end/g,(function(e){return fe[e]}))}function ve(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&g(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function ge(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function me(e,t,r){return t===Q?ge(function(e,t){var r=f(e),n=E(e),a=r.visualViewport,o=n.clientWidth,i=n.clientHeight,s=0,l=0;if(a){o=a.width,i=a.height;var u=x();(u||!u&&"fixed"===t)&&(s=a.offsetLeft,l=a.offsetTop)}return{width:o,height:i,x:s+A(e),y:l}}(e,r)):h(t)?function(e,t){var r=k(e,!1,"fixed"===t);return r.top=r.top+e.clientTop,r.left=r.left+e.clientLeft,r.bottom=r.top+e.clientHeight,r.right=r.left+e.clientWidth,r.width=e.clientWidth,r.height=e.clientHeight,r.x=r.left,r.y=r.top,r}(t,r):ge(function(e){var t,r=E(e),n=D(e),a=null==(t=e.ownerDocument)?void 0:t.body,o=m(r.scrollWidth,r.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),i=m(r.scrollHeight,r.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),s=-n.scrollLeft+A(e),l=-n.scrollTop;return"rtl"===S(a||r).direction&&(s+=m(r.clientWidth,a?a.clientWidth:0)-o),{width:o,height:i,x:s,y:l}}(E(e)))}function be(e,t,r,n){var a="clippingParents"===t?function(e){var t=N(O(e)),r=["absolute","fixed"].indexOf(S(e).position)>=0&&v(e)?F(e):e;return h(r)?t.filter((function(e){return h(e)&&ve(e,r)&&"body"!==C(e)})):[]}(e):[].concat(t),o=[].concat(a,[r]),i=o[0],s=o.reduce((function(t,r){var a=me(e,r,n);return t.top=m(a.top,t.top),t.right=b(a.right,t.right),t.bottom=b(a.bottom,t.bottom),t.left=m(a.left,t.left),t}),me(e,i,n));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function ye(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function we(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}function xe(e,t){void 0===t&&(t={});var r=t,n=r.placement,a=void 0===n?e.placement:n,o=r.strategy,i=void 0===o?e.strategy:o,s=r.boundary,l=void 0===s?z:s,u=r.rootBoundary,c=void 0===u?Q:u,d=r.elementContext,p=void 0===d?K:d,f=r.altBoundary,v=void 0!==f&&f,g=r.padding,m=void 0===g?0:g,b=ye("number"!==typeof m?m:we(m,W)),y=p===K?G:K,w=e.rects.popper,x=e.elements[v?y:p],D=be(h(x)?x:x.contextElement||E(e.elements.popper),l,c,i),C=k(e.elements.reference),A=se({reference:C,element:w,strategy:"absolute",placement:a}),S=ge(Object.assign({},w,A)),_=p===K?S:C,M={top:D.top-_.top+b.top,bottom:_.bottom-D.bottom+b.bottom,left:D.left-_.left+b.left,right:_.right-D.right+b.right},T=e.modifiersData.offset;if(p===K&&T){var O=T[a];Object.keys(M).forEach((function(e){var t=[B,j].indexOf(e)>=0?1:-1,r=[Y,j].indexOf(e)>=0?"y":"x";M[e]+=O[r]*t}))}return M}function ke(e,t,r){return m(e,b(t,r))}const De={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name,a=r.mainAxis,o=void 0===a||a,i=r.altAxis,s=void 0!==i&&i,l=r.boundary,u=r.rootBoundary,c=r.altBoundary,d=r.padding,p=r.tether,f=void 0===p||p,h=r.tetherOffset,v=void 0===h?0:h,g=xe(t,{boundary:l,rootBoundary:u,padding:d,altBoundary:c}),y=ae(t.placement),w=oe(t.placement),x=!w,k=ie(y),D="x"===k?"y":"x",C=t.modifiersData.popperOffsets,E=t.rects.reference,A=t.rects.popper,S="function"===typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,_="number"===typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),M=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(C){if(o){var P,N="y"===k?Y:I,R="y"===k?j:B,L="y"===k?"height":"width",H=C[k],W=H+g[N],q=H-g[R],z=f?-A[L]/2:0,Q=w===U?E[L]:A[L],K=w===U?-A[L]:-E[L],G=t.elements.arrow,X=f&&G?T(G):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},$=V[N],Z=V[R],J=ke(0,E[L],X[L]),ee=x?E[L]/2-z-J-$-_.mainAxis:Q-J-$-_.mainAxis,te=x?-E[L]/2+z+J+Z+_.mainAxis:K+J+Z+_.mainAxis,re=t.elements.arrow&&F(t.elements.arrow),ne=re?"y"===k?re.clientTop||0:re.clientLeft||0:0,se=null!=(P=null==M?void 0:M[k])?P:0,le=H+te-se,ue=ke(f?b(W,H+ee-se-ne):W,H,f?m(q,le):q);C[k]=ue,O[k]=ue-H}if(s){var ce,de="x"===k?Y:I,pe="x"===k?j:B,fe=C[D],he="y"===D?"height":"width",ve=fe+g[de],ge=fe-g[pe],me=-1!==[Y,I].indexOf(y),be=null!=(ce=null==M?void 0:M[D])?ce:0,ye=me?ve:fe-E[he]-A[he]-be+_.altAxis,we=me?fe+E[he]+A[he]-be-_.altAxis:ge,De=f&&me?function(e,t,r){var n=ke(e,t,r);return n>r?r:n}(ye,fe,we):ke(f?ye:ve,fe,f?we:ge);C[D]=De,O[D]=De-fe}t.modifiersData[n]=O}},requiresIfExists:["offset"]};const Ce={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,n=e.name,a=e.options,o=r.elements.arrow,i=r.modifiersData.popperOffsets,s=ae(r.placement),l=ie(s),u=[I,B].indexOf(s)>=0?"height":"width";if(o&&i){var c=function(e,t){return ye("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:we(e,W))}(a.padding,r),d=T(o),p="y"===l?Y:I,f="y"===l?j:B,h=r.rects.reference[u]+r.rects.reference[l]-i[l]-r.rects.popper[u],v=i[l]-r.rects.reference[l],g=F(o),m=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=h/2-v/2,y=c[p],w=m-d[u]-c[f],x=m/2-d[u]/2+b,k=ke(y,x,w),D=l;r.modifiersData[n]=((t={})[D]=k,t.centerOffset=k-x,t)}},effect:function(e){var t=e.state,r=e.options.element,n=void 0===r?"[data-popper-arrow]":r;null!=n&&("string"!==typeof n||(n=t.elements.popper.querySelector(n)))&&ve(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ee(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Ae(e){return[Y,B,j,I].some((function(t){return e[t]>=0}))}var Se=re({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,r=e.instance,n=e.options,a=n.scroll,o=void 0===a||a,i=n.resize,s=void 0===i||i,l=f(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach((function(e){e.addEventListener("scroll",r.update,ne)})),s&&l.addEventListener("resize",r.update,ne),function(){o&&u.forEach((function(e){e.removeEventListener("scroll",r.update,ne)})),s&&l.removeEventListener("resize",r.update,ne)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,r=e.name;t.modifiersData[r]=se({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,r=e.options,n=r.gpuAcceleration,a=void 0===n||n,o=r.adaptive,i=void 0===o||o,s=r.roundOffsets,l=void 0===s||s,u={placement:ae(t.placement),variation:oe(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ue(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ue(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},n=t.attributes[e]||{},a=t.elements[e];v(a)&&C(a)&&(Object.assign(a.style,r),Object.keys(n).forEach((function(e){var t=n[e];!1===t?a.removeAttribute(e):a.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var n=t.elements[e],a=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});v(n)&&C(n)&&(Object.assign(n.style,o),Object.keys(a).forEach((function(e){n.removeAttribute(e)})))}))}},requires:["computeStyles"]},ce,{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var a=r.mainAxis,o=void 0===a||a,i=r.altAxis,s=void 0===i||i,l=r.fallbackPlacements,u=r.padding,c=r.boundary,d=r.rootBoundary,p=r.altBoundary,f=r.flipVariations,h=void 0===f||f,v=r.allowedAutoPlacements,g=t.options.placement,m=ae(g),b=l||(m===g||!h?[pe(g)]:function(e){if(ae(e)===H)return[];var t=pe(e);return[he(e),t,he(t)]}(g)),y=[g].concat(b).reduce((function(e,r){return e.concat(ae(r)===H?function(e,t){void 0===t&&(t={});var r=t,n=r.placement,a=r.boundary,o=r.rootBoundary,i=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=void 0===l?V:l,c=oe(n),d=c?s?X:X.filter((function(e){return oe(e)===c})):W,p=d.filter((function(e){return u.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,r){return t[r]=xe(e,{placement:r,boundary:a,rootBoundary:o,padding:i})[ae(r)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:r,boundary:c,rootBoundary:d,padding:u,flipVariations:h,allowedAutoPlacements:v}):r)}),[]),w=t.rects.reference,x=t.rects.popper,k=new Map,D=!0,C=y[0],E=0;E<y.length;E++){var A=y[E],S=ae(A),_=oe(A)===U,M=[Y,j].indexOf(S)>=0,T=M?"width":"height",O=xe(t,{placement:A,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),P=M?_?B:I:_?j:Y;w[T]>x[T]&&(P=pe(P));var N=pe(P),R=[];if(o&&R.push(O[S]<=0),s&&R.push(O[P]<=0,O[N]<=0),R.every((function(e){return e}))){C=A,D=!1;break}k.set(A,R)}if(D)for(var L=function(e){var t=y.find((function(t){var r=k.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return C=t,"break"},F=h?3:1;F>0;F--){if("break"===L(F))break}t.placement!==C&&(t.modifiersData[n]._skip=!0,t.placement=C,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},De,Ce,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,r=e.name,n=t.rects.reference,a=t.rects.popper,o=t.modifiersData.preventOverflow,i=xe(t,{elementContext:"reference"}),s=xe(t,{altBoundary:!0}),l=Ee(i,n),u=Ee(s,a,o),c=Ae(l),d=Ae(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}}]}),_e=r(30115),Me=r.n(_e),Te=[],Oe=function(e,t,r){void 0===r&&(r={});var a=n.useRef(null),o={onFirstUpdate:r.onFirstUpdate,placement:r.placement||"bottom",strategy:r.strategy||"absolute",modifiers:r.modifiers||Te},i=n.useState({styles:{popper:{position:o.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=i[0],l=i[1],u=n.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var t=e.state,r=Object.keys(t.elements);p.flushSync((function(){l({styles:c(r.map((function(e){return[e,t.styles[e]||{}]}))),attributes:c(r.map((function(e){return[e,t.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),f=n.useMemo((function(){var e={onFirstUpdate:o.onFirstUpdate,placement:o.placement,strategy:o.strategy,modifiers:[].concat(o.modifiers,[u,{name:"applyStyles",enabled:!1}])};return Me()(a.current,e)?a.current||e:(a.current=e,e)}),[o.onFirstUpdate,o.placement,o.strategy,o.modifiers,u]),h=n.useRef();return d((function(){h.current&&h.current.setOptions(f)}),[f]),d((function(){if(null!=e&&null!=t){var n=(r.createPopper||Se)(e,t,f);return h.current=n,function(){n.destroy(),h.current=null}}}),[e,t,r.createPopper]),{state:h.current?h.current.state:null,styles:s.styles,attributes:s.attributes,update:h.current?h.current.update:null,forceUpdate:h.current?h.current.forceUpdate:null}},Pe=function(){},Ne=function(){return Promise.resolve(null)},Re=[];function Le(e){var t=e.placement,r=void 0===t?"bottom":t,o=e.strategy,i=void 0===o?"absolute":o,l=e.modifiers,c=void 0===l?Re:l,d=e.referenceElement,p=e.onFirstUpdate,f=e.innerRef,h=e.children,v=n.useContext(a),g=n.useState(null),m=g[0],b=g[1],y=n.useState(null),w=y[0],x=y[1];n.useEffect((function(){u(f,m)}),[f,m]);var k=n.useMemo((function(){return{placement:r,strategy:i,onFirstUpdate:p,modifiers:[].concat(c,[{name:"arrow",enabled:null!=w,options:{element:w}}])}}),[r,i,p,c,w]),D=Oe(d||v,m,k),C=D.state,E=D.styles,A=D.forceUpdate,S=D.update,_=n.useMemo((function(){return{ref:b,style:E.popper,placement:C?C.placement:r,hasPopperEscaped:C&&C.modifiersData.hide?C.modifiersData.hide.hasPopperEscaped:null,isReferenceHidden:C&&C.modifiersData.hide?C.modifiersData.hide.isReferenceHidden:null,arrowProps:{style:E.arrow,ref:x},forceUpdate:A||Pe,update:S||Ne}}),[b,x,r,C,E,S,A]);return s(h)(_)}var Fe=r(9771),Ye=r.n(Fe);function je(e){var t=e.children,r=e.innerRef,a=n.useContext(o),i=n.useCallback((function(e){u(r,e),l(a,e)}),[r,a]);return n.useEffect((function(){return function(){return u(r,null)}}),[]),n.useEffect((function(){Ye()(Boolean(a),"`Reference` should not be used outside of a `Manager` component.")}),[a]),s(t)({ref:i})}},41853:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a=s(r(5556)),o=r(96540),i=s(o);function s(e){return e&&e.__esModule?e:{default:e}}var l={bgColor:a.default.oneOfType([a.default.object,a.default.string]).isRequired,bgD:a.default.string.isRequired,fgColor:a.default.oneOfType([a.default.object,a.default.string]).isRequired,fgD:a.default.string.isRequired,size:a.default.number.isRequired,title:a.default.string,viewBoxSize:a.default.number.isRequired,xmlns:a.default.string},u={title:void 0,xmlns:"http://www.w3.org/2000/svg"},c=(0,o.forwardRef)((function(e,t){var r=e.bgColor,a=e.bgD,o=e.fgD,s=e.fgColor,l=e.size,u=e.title,c=e.viewBoxSize,d=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["bgColor","bgD","fgD","fgColor","size","title","viewBoxSize"]);return i.default.createElement("svg",n({},d,{height:l,ref:t,viewBox:"0 0 "+c+" "+c,width:l}),u?i.default.createElement("title",null,u):null,i.default.createElement("path",{d:a,fill:r}),i.default.createElement("path",{d:o,fill:s}))}));c.displayName="QRCodeSvg",c.propTypes=l,c.defaultProps=u,t.default=c},194:(e,t,r)=>{"use strict";var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a=c(r(46641)),o=c(r(41537)),i=c(r(5556)),s=r(96540),l=c(s),u=c(r(41853));function c(e){return e&&e.__esModule?e:{default:e}}var d={bgColor:i.default.oneOfType([i.default.object,i.default.string]),fgColor:i.default.oneOfType([i.default.object,i.default.string]),level:i.default.string,size:i.default.number,value:i.default.string.isRequired},p=(0,s.forwardRef)((function(e,t){var r=e.bgColor,i=e.fgColor,s=e.level,c=e.size,d=e.value,p=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["bgColor","fgColor","level","size","value"]),f=new a.default(-1,o.default[s]);f.addData(d),f.make();var h=f.modules;return l.default.createElement(u.default,n({},p,{bgColor:r,bgD:h.map((function(e,t){return e.map((function(e,r){return e?"":"M "+r+" "+t+" l 1 0 0 1 -1 0 Z"})).join(" ")})).join(" "),fgColor:i,fgD:h.map((function(e,t){return e.map((function(e,r){return e?"M "+r+" "+t+" l 1 0 0 1 -1 0 Z":""})).join(" ")})).join(" "),ref:t,size:c,viewBoxSize:h.length}))}));p.displayName="QRCode",p.propTypes=d,p.defaultProps={bgColor:"#FFFFFF",fgColor:"#000000",level:"L",size:256},t.Ay=p},26892:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.autoprefix=void 0;var n,a=r(33215),o=(n=a)&&n.__esModule?n:{default:n},i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};var s={borderRadius:function(e){return{msBorderRadius:e,MozBorderRadius:e,OBorderRadius:e,WebkitBorderRadius:e,borderRadius:e}},boxShadow:function(e){return{msBoxShadow:e,MozBoxShadow:e,OBoxShadow:e,WebkitBoxShadow:e,boxShadow:e}},userSelect:function(e){return{WebkitTouchCallout:e,KhtmlUserSelect:e,MozUserSelect:e,msUserSelect:e,WebkitUserSelect:e,userSelect:e}},flex:function(e){return{WebkitBoxFlex:e,MozBoxFlex:e,WebkitFlex:e,msFlex:e,flex:e}},flexBasis:function(e){return{WebkitFlexBasis:e,flexBasis:e}},justifyContent:function(e){return{WebkitJustifyContent:e,justifyContent:e}},transition:function(e){return{msTransition:e,MozTransition:e,OTransition:e,WebkitTransition:e,transition:e}},transform:function(e){return{msTransform:e,MozTransform:e,OTransform:e,WebkitTransform:e,transform:e}},absolute:function(e){var t=e&&e.split(" ");return{position:"absolute",top:t&&t[0],right:t&&t[1],bottom:t&&t[2],left:t&&t[3]}},extend:function(e,t){var r=t[e];return r||{extend:e}}},l=t.autoprefix=function(e){var t={};return(0,o.default)(e,(function(e,r){var n={};(0,o.default)(e,(function(e,t){var r=s[t];r?n=i({},n,r(e)):n[t]=e})),t[r]=n})),t};t.default=l},75268:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.active=void 0;var n,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o=r(96540),i=(n=o)&&n.__esModule?n:{default:n};function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}var l=t.active=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,o,l;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);for(var u=arguments.length,c=Array(u),d=0;d<u;d++)c[d]=arguments[d];return o=l=s(this,(r=n.__proto__||Object.getPrototypeOf(n)).call.apply(r,[this].concat(c))),l.state={active:!1},l.handleMouseDown=function(){return l.setState({active:!0})},l.handleMouseUp=function(){return l.setState({active:!1})},l.render=function(){return i.default.createElement(t,{onMouseDown:l.handleMouseDown,onMouseUp:l.handleMouseUp},i.default.createElement(e,a({},l.props,l.state)))},s(l,o)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,r),n}(i.default.Component)};t.default=l},16686:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hover=void 0;var n,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o=r(96540),i=(n=o)&&n.__esModule?n:{default:n};function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}var l=t.hover=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"span";return function(r){function n(){var r,o,l;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);for(var u=arguments.length,c=Array(u),d=0;d<u;d++)c[d]=arguments[d];return o=l=s(this,(r=n.__proto__||Object.getPrototypeOf(n)).call.apply(r,[this].concat(c))),l.state={hover:!1},l.handleMouseOver=function(){return l.setState({hover:!0})},l.handleMouseOut=function(){return l.setState({hover:!1})},l.render=function(){return i.default.createElement(t,{onMouseOver:l.handleMouseOver,onMouseOut:l.handleMouseOut},i.default.createElement(e,a({},l.props,l.state)))},s(l,o)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,r),n}(i.default.Component)};t.default=l},99265:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flattenNames=void 0;var n=s(r(85015)),a=s(r(33215)),o=s(r(11331)),i=s(r(55378));function s(e){return e&&e.__esModule?e:{default:e}}var l=t.flattenNames=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=[];return(0,i.default)(t,(function(t){Array.isArray(t)?e(t).map((function(e){return r.push(e)})):(0,o.default)(t)?(0,a.default)(t,(function(e,t){!0===e&&r.push(t),r.push(t+"-"+e)})):(0,n.default)(t)&&r.push(t)})),r};t.default=l},58527:(e,t,r)=>{"use strict";t.H8=void 0;var n=u(r(99265)),a=u(r(76203)),o=u(r(26892)),i=u(r(16686)),s=u(r(75268)),l=u(r(62693));function u(e){return e&&e.__esModule?e:{default:e}}i.default,t.H8=i.default,s.default,l.default;var c=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];var s=(0,n.default)(r),l=(0,a.default)(e,s);return(0,o.default)(l)};t.Ay=c},62693:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=function(e,t){var r={},n=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r[e]=t};return 0===e&&n("first-child"),e===t-1&&n("last-child"),(0===e||e%2===0)&&n("even"),1===Math.abs(e%2)&&n("odd"),n("nth-child",e),r}},76203:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mergeClasses=void 0;var n=i(r(33215)),a=i(r(88055)),o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};function i(e){return e&&e.__esModule?e:{default:e}}var s=t.mergeClasses=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=e.default&&(0,a.default)(e.default)||{};return t.map((function(t){var a=e[t];return a&&(0,n.default)(a,(function(e,t){r[t]||(r[t]={}),r[t]=o({},r[t],a[t])})),t})),r};t.default=s},9771:e=>{"use strict";var t=function(){};e.exports=t},60788:(e,t,r)=>{"use strict";var n=r(20034),a=r(44576),o=r(78227)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[o])?!!t:"RegExp"===a(e))}},61034:(e,t,r)=>{"use strict";var n=r(69565),a=r(39297),o=r(1625),i=r(67979),s=RegExp.prototype;e.exports=function(e){var t=e.flags;return void 0!==t||"flags"in s||a(e,"flags")||!o(s,e)?t:n(i,e)}},93514:(e,t,r)=>{"use strict";r(6469)("flat")},79978:(e,t,r)=>{"use strict";var n=r(46518),a=r(69565),o=r(79504),i=r(67750),s=r(94901),l=r(64117),u=r(60788),c=r(655),d=r(55966),p=r(61034),f=r(2478),h=r(78227),v=r(96395),g=h("replace"),m=TypeError,b=o("".indexOf),y=o("".replace),w=o("".slice),x=Math.max;n({target:"String",proto:!0},{replaceAll:function(e,t){var r,n,o,h,k,D,C,E,A,S=i(this),_=0,M=0,T="";if(!l(e)){if((r=u(e))&&(n=c(i(p(e))),!~b(n,"g")))throw new m("`.replaceAll` does not allow non-global regexes");if(o=d(e,g))return a(o,e,S,t);if(v&&r)return y(c(S),e,t)}for(h=c(S),k=c(e),(D=s(t))||(t=c(t)),C=k.length,E=x(1,C),_=b(h,k);-1!==_;)A=D?c(t(k,_,h)):f(k,h,_,[],void 0,t),T+=w(h,M,_)+A,M=_+C,_=_+E>h.length?-1:b(h,k,_+E);return M<h.length&&(T+=w(h,M)),T}})},33811:(e,t,r)=>{"use strict";var n=r(46518),a=r(90679),o=r(42787),i=r(66699),s=r(39297),l=r(78227),u=r(53982),c=r(96395),d=l("toStringTag"),p=TypeError,f=function(){if(a(this,u),o(this)===u)throw new p("Abstract class AsyncIterator not directly constructable")};f.prototype=u,s(u,d)||i(u,d,"AsyncIterator"),!c&&s(u,"constructor")&&u.constructor!==Object||i(u,"constructor",f),n({global:!0,constructor:!0,forced:c},{AsyncIterator:f})},86994:(e,t,r)=>{"use strict";var n=r(46518),a=r(36639).toArray;n({target:"AsyncIterator",proto:!0,real:!0},{toArray:function(){return a(this,void 0,[])}})},41795:(e,t,r)=>{"use strict";var n=r(46518),a=r(28551),o=r(72652),i=r(1767),s=[].push;n({target:"Iterator",proto:!0,real:!0},{toArray:function(){var e=[];return o(i(a(this)),s,{that:e,IS_RECORD:!0}),e}})},14123:(e,t,r)=>{"use strict";function n(e){return t=>{const r=(e?Math[e]:Math.trunc)(t);return 0===r?0:r}}r.d(t,{u:()=>n})},82526:(e,t,r)=>{"use strict";r.d(t,{W:()=>s});var n=r(13999),a=r(4883),o=r(35840),i=r(2642);function s(e,t){const{years:r=0,months:s=0,weeks:l=0,days:u=0,hours:c=0,minutes:d=0,seconds:p=0}=t,f=(0,i.a)(e),h=s||r?(0,a.P)(f,s+12*r):f,v=u||l?(0,n.f)(h,u+7*l):h,g=1e3*(p+60*(d+60*c));return(0,o.w)(e,v.getTime()+g)}},13999:(e,t,r)=>{"use strict";r.d(t,{f:()=>o});var n=r(2642),a=r(35840);function o(e,t){const r=(0,n.a)(e);return isNaN(t)?(0,a.w)(e,NaN):t?(r.setDate(r.getDate()+t),r):r}},4883:(e,t,r)=>{"use strict";r.d(t,{P:()=>o});var n=r(2642),a=r(35840);function o(e,t){const r=(0,n.a)(e);if(isNaN(t))return(0,a.w)(e,NaN);if(!t)return r;const o=r.getDate(),i=(0,a.w)(e,r.getTime());i.setMonth(r.getMonth()+t+1,0);return o>=i.getDate()?i:(r.setFullYear(i.getFullYear(),i.getMonth(),o),r)}},25733:(e,t,r)=>{"use strict";r.d(t,{z:()=>a});var n=r(2642);function a(e,t){const r=(0,n.a)(e),a=(0,n.a)(t),o=r.getTime()-a.getTime();return o<0?-1:o>0?1:o}},17764:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(20514),a=r(2642);function o(e,t){const r=(0,a.a)(e),o=(0,a.a)(t),s=i(r,o),l=Math.abs((0,n.m)(r,o));r.setDate(r.getDate()-s*l);const u=s*(l-Number(i(r,o)===-s));return 0===u?0:u}function i(e,t){const r=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return r<0?-1:r>0?1:r}},50502:(e,t,r)=>{"use strict";r.d(t,{M:()=>i});var n=r(14123),a=r(2940),o=r(77275);function i(e,t,r){const i=(0,o.b)(e,t)/a.s0;return(0,n.u)(r?.roundingMethod)(i)}},77275:(e,t,r)=>{"use strict";r.d(t,{b:()=>a});var n=r(2642);function a(e,t){return+(0,n.a)(e)-+(0,n.a)(t)}},10648:(e,t,r)=>{"use strict";r.d(t,{o:()=>i});var n=r(14123),a=r(2940),o=r(77275);function i(e,t,r){const i=(0,o.b)(e,t)/a.Cg;return(0,n.u)(r?.roundingMethod)(i)}},49858:(e,t,r)=>{"use strict";r.d(t,{W:()=>u});var n=r(25733),a=r(2642);function o(e,t){const r=(0,a.a)(e),n=(0,a.a)(t);return 12*(r.getFullYear()-n.getFullYear())+(r.getMonth()-n.getMonth())}var i=r(37519),s=r(71359);function l(e){const t=(0,a.a)(e);return+(0,i.D)(t)===+(0,s.p)(t)}function u(e,t){const r=(0,a.a)(e),i=(0,a.a)(t),s=(0,n.z)(r,i),u=Math.abs(o(r,i));let c;if(u<1)c=0;else{1===r.getMonth()&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-s*u);let t=(0,n.z)(r,i)===-s;l((0,a.a)(e))&&1===u&&1===(0,n.z)(e,i)&&(t=!1),c=s*(u-Number(t))}return 0===c?0:c}},43924:(e,t,r)=>{"use strict";r.d(t,{O:()=>o});var n=r(14123),a=r(77275);function o(e,t,r){const o=(0,a.b)(e,t)/1e3;return(0,n.u)(r?.roundingMethod)(o)}},33607:(e,t,r)=>{"use strict";r.d(t,{V:()=>i});var n=r(25733),a=r(2642);function o(e,t){const r=(0,a.a)(e),n=(0,a.a)(t);return r.getFullYear()-n.getFullYear()}function i(e,t){const r=(0,a.a)(e),i=(0,a.a)(t),s=(0,n.z)(r,i),l=Math.abs(o(r,i));r.setFullYear(1584),i.setFullYear(1584);const u=s*(l-+((0,n.z)(r,i)===-s));return 0===u?0:u}},37519:(e,t,r)=>{"use strict";r.d(t,{D:()=>a});var n=r(2642);function a(e){const t=(0,n.a)(e);return t.setHours(23,59,59,999),t}},71359:(e,t,r)=>{"use strict";r.d(t,{p:()=>a});var n=r(2642);function a(e){const t=(0,n.a)(e),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}},31826:(e,t,r)=>{"use strict";r.d(t,{k:()=>c});var n=r(96519),a=r(82695),o=r(14123),i=r(40215),s=r(25733),l=r(2940),u=r(2642);function c(e,t,r){const c=(0,a.q)(),d=r?.locale??c.locale??n.c,p=(0,s.z)(e,t);if(isNaN(p))throw new RangeError("Invalid time value");const f=Object.assign({},r,{addSuffix:r?.addSuffix,comparison:p});let h,v;p>0?(h=(0,u.a)(t),v=(0,u.a)(e)):(h=(0,u.a)(e),v=(0,u.a)(t));const g=(0,o.u)(r?.roundingMethod??"round"),m=v.getTime()-h.getTime(),b=m/l.Cg,y=(m-((0,i.G)(v)-(0,i.G)(h)))/l.Cg,w=r?.unit;let x;if(x=w||(b<1?"second":b<60?"minute":b<l.F6?"hour":y<l.Nw?"day":y<l.Ks?"month":"year"),"second"===x){const e=g(m/1e3);return d.formatDistance("xSeconds",e,f)}if("minute"===x){const e=g(b);return d.formatDistance("xMinutes",e,f)}if("hour"===x){const e=g(b/60);return d.formatDistance("xHours",e,f)}if("day"===x){const e=g(y/l.F6);return d.formatDistance("xDays",e,f)}if("month"===x){const e=g(y/l.Nw);return 12===e&&"month"!==w?d.formatDistance("xYears",1,f):d.formatDistance("xMonths",e,f)}{const e=g(y/l.Ks);return d.formatDistance("xYears",e,f)}}},71600:(e,t,r)=>{"use strict";r.d(t,{W:()=>a});var n=r(2642);function a(e){return(0,n.a)(e).getTime()}},26010:(e,t,r)=>{"use strict";r.d(t,{_:()=>a});var n=r(2642);function a(e){return Math.trunc(+(0,n.a)(e)/1e3)}},6593:(e,t,r)=>{"use strict";r.d(t,{F:()=>d});var n=r(82526),a=r(17764),o=r(50502),i=r(10648),s=r(49858),l=r(43924),u=r(33607),c=r(2642);function d(e){const t=(0,c.a)(e.start),r=(0,c.a)(e.end),d={},p=(0,u.V)(r,t);p&&(d.years=p);const f=(0,n.W)(t,{years:d.years}),h=(0,s.W)(r,f);h&&(d.months=h);const v=(0,n.W)(f,{months:d.months}),g=(0,a.c)(r,v);g&&(d.days=g);const m=(0,n.W)(v,{days:d.days}),b=(0,o.M)(r,m);b&&(d.hours=b);const y=(0,n.W)(m,{hours:d.hours}),w=(0,i.o)(r,y);w&&(d.minutes=w);const x=(0,n.W)(y,{minutes:d.minutes}),k=(0,l.O)(r,x);return k&&(d.seconds=k),d}},72880:(e,t,r)=>{"use strict";r.d(t,{Y:()=>a});var n=r(2642);function a(e,t){return+(0,n.a)(e)<+(0,n.a)(t)}},84128:(e,t,r)=>{"use strict";r.d(t,{u:()=>o});var n=r(16074),a=r(58380);function o(e,t,r){return(0,n.f)((0,a.qg)(e,t,new Date,r))}},85551:(e,t,r)=>{"use strict";r.d(t,{r:()=>a});var n=r(51730);function a(e,t){return+(0,n.o)(e)===+(0,n.o)(t)}},58380:(e,t,r)=>{"use strict";r.d(t,{qg:()=>ge});var n=r(35840),a=r(82695);function o(){return Object.assign({},(0,a.q)())}var i=r(96519),s=r(2642),l=r(36847),u=r(76992);function c(e,t){const r=t instanceof Date?(0,n.w)(t,0):new t(0);return r.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),r.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),r}class d{subPriority=0;validate(e,t){return!0}}class p extends d{constructor(e,t,r,n,a){super(),this.value=e,this.validateValue=t,this.setValue=r,this.priority=n,a&&(this.subPriority=a)}validate(e,t){return this.validateValue(e,this.value,t)}set(e,t,r){return this.setValue(e,t,this.value,r)}}class f extends d{priority=10;subPriority=-1;set(e,t){return t.timestampIsSet?e:(0,n.w)(e,c(e,Date))}}class h{run(e,t,r,n){const a=this.parse(e,t,r,n);return a?{setter:new p(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(e,t,r){return!0}}var v=r(2940);const g=/^(1[0-2]|0?\d)/,m=/^(3[0-1]|[0-2]?\d)/,b=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,y=/^(5[0-3]|[0-4]?\d)/,w=/^(2[0-3]|[0-1]?\d)/,x=/^(2[0-4]|[0-1]?\d)/,k=/^(1[0-1]|0?\d)/,D=/^(1[0-2]|0?\d)/,C=/^[0-5]?\d/,E=/^[0-5]?\d/,A=/^\d/,S=/^\d{1,2}/,_=/^\d{1,3}/,M=/^\d{1,4}/,T=/^-?\d+/,O=/^-?\d/,P=/^-?\d{1,2}/,N=/^-?\d{1,3}/,R=/^-?\d{1,4}/,L=/^([+-])(\d{2})(\d{2})?|Z/,F=/^([+-])(\d{2})(\d{2})|Z/,Y=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,j=/^([+-])(\d{2}):(\d{2})|Z/,B=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function I(e,t){return e?{value:t(e.value),rest:e.rest}:e}function H(e,t){const r=t.match(e);return r?{value:parseInt(r[0],10),rest:t.slice(r[0].length)}:null}function W(e,t){const r=t.match(e);if(!r)return null;if("Z"===r[0])return{value:0,rest:t.slice(1)};const n="+"===r[1]?1:-1,a=r[2]?parseInt(r[2],10):0,o=r[3]?parseInt(r[3],10):0,i=r[5]?parseInt(r[5],10):0;return{value:n*(a*v.s0+o*v.Cg+i*v._m),rest:t.slice(r[0].length)}}function U(e){return H(T,e)}function q(e,t){switch(e){case 1:return H(A,t);case 2:return H(S,t);case 3:return H(_,t);case 4:return H(M,t);default:return H(new RegExp("^\\d{1,"+e+"}"),t)}}function z(e,t){switch(e){case 1:return H(O,t);case 2:return H(P,t);case 3:return H(N,t);case 4:return H(R,t);default:return H(new RegExp("^-?\\d{1,"+e+"}"),t)}}function Q(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function K(e,t){const r=t>0,n=r?t:1-t;let a;if(n<=50)a=e||100;else{const t=n+50;a=e+100*Math.trunc(t/100)-(e>=t%100?100:0)}return r?a:1-a}function G(e){return e%400===0||e%4===0&&e%100!==0}var X=r(29220),V=r(92528);var $=r(83787);var Z=r(50016);function J(e,t,r){const n=(0,s.a)(e),a=(0,Z.N)(n,r)-t;return n.setDate(n.getDate()-7*a),n}var ee=r(76974);function te(e,t){const r=(0,s.a)(e),n=(0,ee.s)(r)-t;return r.setDate(r.getDate()-7*n),r}const re=[31,28,31,30,31,30,31,31,30,31,30,31],ne=[31,29,31,30,31,30,31,31,30,31,30,31];var ae=r(13999);function oe(e,t,r){const n=(0,a.q)(),o=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=(0,s.a)(e),l=i.getDay(),u=7-o,c=t<0||t>6?t-(l+u)%7:((t%7+7)%7+u)%7-(l+u)%7;return(0,ae.f)(i,c)}function ie(e){let t=(0,s.a)(e).getDay();return 0===t&&(t=7),t}function se(e,t){const r=(0,s.a)(e),n=t-ie(r);return(0,ae.f)(r,n)}var le=r(40215);const ue={G:new class extends h{priority=140;parse(e,t,r){switch(t){case"G":case"GG":case"GGG":return r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"});case"GGGGG":return r.era(e,{width:"narrow"});default:return r.era(e,{width:"wide"})||r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"})}}set(e,t,r){return t.era=r,e.setFullYear(r,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=["R","u","t","T"]},y:new class extends h{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(e,t,r){const n=e=>({year:e,isTwoDigitYear:"yy"===t});switch(t){case"y":return I(q(4,e),n);case"yo":return I(r.ordinalNumber(e,{unit:"year"}),n);default:return I(q(t.length,e),n)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,r){const n=e.getFullYear();if(r.isTwoDigitYear){const t=K(r.year,n);return e.setFullYear(t,0,1),e.setHours(0,0,0,0),e}const a="era"in t&&1!==t.era?1-r.year:r.year;return e.setFullYear(a,0,1),e.setHours(0,0,0,0),e}},Y:new class extends h{priority=130;parse(e,t,r){const n=e=>({year:e,isTwoDigitYear:"YY"===t});switch(t){case"Y":return I(q(4,e),n);case"Yo":return I(r.ordinalNumber(e,{unit:"year"}),n);default:return I(q(t.length,e),n)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,r,n){const a=(0,X.h)(e,n);if(r.isTwoDigitYear){const t=K(r.year,a);return e.setFullYear(t,0,n.firstWeekContainsDate),e.setHours(0,0,0,0),(0,V.k)(e,n)}const o="era"in t&&1!==t.era?1-r.year:r.year;return e.setFullYear(o,0,n.firstWeekContainsDate),e.setHours(0,0,0,0),(0,V.k)(e,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends h{priority=130;parse(e,t){return z("R"===t?4:t.length,e)}set(e,t,r){const a=(0,n.w)(e,0);return a.setFullYear(r,0,4),a.setHours(0,0,0,0),(0,$.b)(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends h{priority=130;parse(e,t){return z("u"===t?4:t.length,e)}set(e,t,r){return e.setFullYear(r,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends h{priority=120;parse(e,t,r){switch(t){case"Q":case"QQ":return q(t.length,e);case"Qo":return r.ordinalNumber(e,{unit:"quarter"});case"QQQ":return r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(e,{width:"narrow",context:"formatting"});default:return r.quarter(e,{width:"wide",context:"formatting"})||r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"})}}validate(e,t){return t>=1&&t<=4}set(e,t,r){return e.setMonth(3*(r-1),1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends h{priority=120;parse(e,t,r){switch(t){case"q":case"qq":return q(t.length,e);case"qo":return r.ordinalNumber(e,{unit:"quarter"});case"qqq":return r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(e,{width:"narrow",context:"standalone"});default:return r.quarter(e,{width:"wide",context:"standalone"})||r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"})}}validate(e,t){return t>=1&&t<=4}set(e,t,r){return e.setMonth(3*(r-1),1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends h{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(e,t,r){const n=e=>e-1;switch(t){case"M":return I(H(g,e),n);case"MM":return I(q(2,e),n);case"Mo":return I(r.ordinalNumber(e,{unit:"month"}),n);case"MMM":return r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(e,{width:"narrow",context:"formatting"});default:return r.month(e,{width:"wide",context:"formatting"})||r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"})}}validate(e,t){return t>=0&&t<=11}set(e,t,r){return e.setMonth(r,1),e.setHours(0,0,0,0),e}},L:new class extends h{priority=110;parse(e,t,r){const n=e=>e-1;switch(t){case"L":return I(H(g,e),n);case"LL":return I(q(2,e),n);case"Lo":return I(r.ordinalNumber(e,{unit:"month"}),n);case"LLL":return r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(e,{width:"narrow",context:"standalone"});default:return r.month(e,{width:"wide",context:"standalone"})||r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"})}}validate(e,t){return t>=0&&t<=11}set(e,t,r){return e.setMonth(r,1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends h{priority=100;parse(e,t,r){switch(t){case"w":return H(y,e);case"wo":return r.ordinalNumber(e,{unit:"week"});default:return q(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,r,n){return(0,V.k)(J(e,r,n),n)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends h{priority=100;parse(e,t,r){switch(t){case"I":return H(y,e);case"Io":return r.ordinalNumber(e,{unit:"week"});default:return q(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,r){return(0,$.b)(te(e,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends h{priority=90;subPriority=1;parse(e,t,r){switch(t){case"d":return H(m,e);case"do":return r.ordinalNumber(e,{unit:"date"});default:return q(t.length,e)}}validate(e,t){const r=G(e.getFullYear()),n=e.getMonth();return r?t>=1&&t<=ne[n]:t>=1&&t<=re[n]}set(e,t,r){return e.setDate(r),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends h{priority=90;subpriority=1;parse(e,t,r){switch(t){case"D":case"DD":return H(b,e);case"Do":return r.ordinalNumber(e,{unit:"date"});default:return q(t.length,e)}}validate(e,t){return G(e.getFullYear())?t>=1&&t<=366:t>=1&&t<=365}set(e,t,r){return e.setMonth(0,r),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends h{priority=90;parse(e,t,r){switch(t){case"E":case"EE":case"EEE":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}validate(e,t){return t>=0&&t<=6}set(e,t,r,n){return(e=oe(e,r,n)).setHours(0,0,0,0),e}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends h{priority=90;parse(e,t,r,n){const a=e=>{const t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"e":case"ee":return I(q(t.length,e),a);case"eo":return I(r.ordinalNumber(e,{unit:"day"}),a);case"eee":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"eeeee":return r.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}validate(e,t){return t>=0&&t<=6}set(e,t,r,n){return(e=oe(e,r,n)).setHours(0,0,0,0),e}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends h{priority=90;parse(e,t,r,n){const a=e=>{const t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"c":case"cc":return I(q(t.length,e),a);case"co":return I(r.ordinalNumber(e,{unit:"day"}),a);case"ccc":return r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});case"ccccc":return r.day(e,{width:"narrow",context:"standalone"});case"cccccc":return r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});default:return r.day(e,{width:"wide",context:"standalone"})||r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"})}}validate(e,t){return t>=0&&t<=6}set(e,t,r,n){return(e=oe(e,r,n)).setHours(0,0,0,0),e}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends h{priority=90;parse(e,t,r){const n=e=>0===e?7:e;switch(t){case"i":case"ii":return q(t.length,e);case"io":return r.ordinalNumber(e,{unit:"day"});case"iii":return I(r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiii":return I(r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiiii":return I(r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);default:return I(r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n)}}validate(e,t){return t>=1&&t<=7}set(e,t,r){return(e=se(e,r)).setHours(0,0,0,0),e}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends h{priority=80;parse(e,t,r){switch(t){case"a":case"aa":case"aaa":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,t,r){return e.setHours(Q(r),0,0,0),e}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends h{priority=80;parse(e,t,r){switch(t){case"b":case"bb":case"bbb":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,t,r){return e.setHours(Q(r),0,0,0),e}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends h{priority=80;parse(e,t,r){switch(t){case"B":case"BB":case"BBB":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,t,r){return e.setHours(Q(r),0,0,0),e}incompatibleTokens=["a","b","t","T"]},h:new class extends h{priority=70;parse(e,t,r){switch(t){case"h":return H(D,e);case"ho":return r.ordinalNumber(e,{unit:"hour"});default:return q(t.length,e)}}validate(e,t){return t>=1&&t<=12}set(e,t,r){const n=e.getHours()>=12;return n&&r<12?e.setHours(r+12,0,0,0):n||12!==r?e.setHours(r,0,0,0):e.setHours(0,0,0,0),e}incompatibleTokens=["H","K","k","t","T"]},H:new class extends h{priority=70;parse(e,t,r){switch(t){case"H":return H(w,e);case"Ho":return r.ordinalNumber(e,{unit:"hour"});default:return q(t.length,e)}}validate(e,t){return t>=0&&t<=23}set(e,t,r){return e.setHours(r,0,0,0),e}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends h{priority=70;parse(e,t,r){switch(t){case"K":return H(k,e);case"Ko":return r.ordinalNumber(e,{unit:"hour"});default:return q(t.length,e)}}validate(e,t){return t>=0&&t<=11}set(e,t,r){return e.getHours()>=12&&r<12?e.setHours(r+12,0,0,0):e.setHours(r,0,0,0),e}incompatibleTokens=["h","H","k","t","T"]},k:new class extends h{priority=70;parse(e,t,r){switch(t){case"k":return H(x,e);case"ko":return r.ordinalNumber(e,{unit:"hour"});default:return q(t.length,e)}}validate(e,t){return t>=1&&t<=24}set(e,t,r){const n=r<=24?r%24:r;return e.setHours(n,0,0,0),e}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends h{priority=60;parse(e,t,r){switch(t){case"m":return H(C,e);case"mo":return r.ordinalNumber(e,{unit:"minute"});default:return q(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,r){return e.setMinutes(r,0,0),e}incompatibleTokens=["t","T"]},s:new class extends h{priority=50;parse(e,t,r){switch(t){case"s":return H(E,e);case"so":return r.ordinalNumber(e,{unit:"second"});default:return q(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,r){return e.setSeconds(r,0),e}incompatibleTokens=["t","T"]},S:new class extends h{priority=30;parse(e,t){return I(q(t.length,e),(e=>Math.trunc(e*Math.pow(10,3-t.length))))}set(e,t,r){return e.setMilliseconds(r),e}incompatibleTokens=["t","T"]},X:new class extends h{priority=10;parse(e,t){switch(t){case"X":return W(L,e);case"XX":return W(F,e);case"XXXX":return W(Y,e);case"XXXXX":return W(B,e);default:return W(j,e)}}set(e,t,r){return t.timestampIsSet?e:(0,n.w)(e,e.getTime()-(0,le.G)(e)-r)}incompatibleTokens=["t","T","x"]},x:new class extends h{priority=10;parse(e,t){switch(t){case"x":return W(L,e);case"xx":return W(F,e);case"xxxx":return W(Y,e);case"xxxxx":return W(B,e);default:return W(j,e)}}set(e,t,r){return t.timestampIsSet?e:(0,n.w)(e,e.getTime()-(0,le.G)(e)-r)}incompatibleTokens=["t","T","X"]},t:new class extends h{priority=40;parse(e){return U(e)}set(e,t,r){return[(0,n.w)(e,1e3*r),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends h{priority=20;parse(e){return U(e)}set(e,t,r){return[(0,n.w)(e,r),{timestampIsSet:!0}]}incompatibleTokens="*"}},ce=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,de=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,pe=/^'([^]*?)'?$/,fe=/''/g,he=/\S/,ve=/[a-zA-Z]/;function ge(e,t,r,a){const c=o(),d=a?.locale??c.locale??i.c,p=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??c.firstWeekContainsDate??c.locale?.options?.firstWeekContainsDate??1,h=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??c.weekStartsOn??c.locale?.options?.weekStartsOn??0;if(""===t)return""===e?(0,s.a)(r):(0,n.w)(r,NaN);const v={firstWeekContainsDate:p,weekStartsOn:h,locale:d},g=[new f],m=t.match(de).map((e=>{const t=e[0];if(t in l.m){return(0,l.m[t])(e,d.formatLong)}return e})).join("").match(ce),b=[];for(let o of m){!a?.useAdditionalWeekYearTokens&&(0,u.xM)(o)&&(0,u.Ss)(o,t,e),!a?.useAdditionalDayOfYearTokens&&(0,u.ef)(o)&&(0,u.Ss)(o,t,e);const i=o[0],s=ue[i];if(s){const{incompatibleTokens:t}=s;if(Array.isArray(t)){const e=b.find((e=>t.includes(e.token)||e.token===i));if(e)throw new RangeError(`The format string mustn't contain \`${e.fullToken}\` and \`${o}\` at the same time`)}else if("*"===s.incompatibleTokens&&b.length>0)throw new RangeError(`The format string mustn't contain \`${o}\` and any other token at the same time`);b.push({token:i,fullToken:o});const a=s.run(e,o,d.match,v);if(!a)return(0,n.w)(r,NaN);g.push(a.setter),e=a.rest}else{if(i.match(ve))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");if("''"===o?o="'":"'"===i&&(o=o.match(pe)[1].replace(fe,"'")),0!==e.indexOf(o))return(0,n.w)(r,NaN);e=e.slice(o.length)}}if(e.length>0&&he.test(e))return(0,n.w)(r,NaN);const y=g.map((e=>e.priority)).sort(((e,t)=>t-e)).filter(((e,t,r)=>r.indexOf(e)===t)).map((e=>g.filter((t=>t.priority===e)).sort(((e,t)=>t.subPriority-e.subPriority)))).map((e=>e[0]));let w=(0,s.a)(r);if(isNaN(w.getTime()))return(0,n.w)(r,NaN);const x={};for(const o of y){if(!o.validate(w,v))return(0,n.w)(r,NaN);const e=o.set(w,x,v);Array.isArray(e)?(w=e[0],Object.assign(x,e[1])):w=e}return(0,n.w)(r,w)}}}]); \ No newline at end of file
diff --git a/web/gui/v2/8459.add89d7bb0434b110cd3.chunk.js.LICENSE.txt b/src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js.LICENSE.txt
index 827f2732c..827f2732c 100644
--- a/web/gui/v2/8459.add89d7bb0434b110cd3.chunk.js.LICENSE.txt
+++ b/src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js.LICENSE.txt
diff --git a/src/web/gui/v2/8323.e22de33686bb2f34063c.css b/src/web/gui/v2/8323.e22de33686bb2f34063c.css
new file mode 100644
index 000000000..371f90fba
--- /dev/null
+++ b/src/web/gui/v2/8323.e22de33686bb2f34063c.css
@@ -0,0 +1,2 @@
+.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon::before{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{margin-left:-4px;position:absolute;width:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after{box-sizing:content-box;position:absolute;border:8px solid transparent;height:0;width:1px;content:"";z-index:-1;border-width:8px;left:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before{border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{top:0;margin-top:-8px}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after{border-top:none;border-bottom-color:#f0f0f0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after{top:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before{top:-1px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after{bottom:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before{bottom:-1px;border-top-color:#aeaeae}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:"Helvetica Neue", helvetica, arial, sans-serif;font-size:0.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:0.3rem;display:inline-block;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:0.3rem;border-bottom-right-radius:0.3rem}.react-datepicker__triangle{position:absolute;left:50px}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^=bottom]{padding-top:10px}.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle,.react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle{left:auto;right:50px}.react-datepicker-popper[data-placement^=top]{padding-bottom:10px}.react-datepicker-popper[data-placement^=right]{padding-left:8px}.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^=left]{padding-right:8px}.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:0.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:0.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:bold;font-size:0.944rem}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *::before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next::before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous::before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:0.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:0.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:0.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:white;border-bottom-right-radius:0.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:0.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + 1.7rem / 2);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:white;font-weight:bold}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:0.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected,.react-datepicker__week-number--keyboard-selected):hover{border-radius:0.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:0.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__week-number--keyboard-selected{border-radius:0.3rem;background-color:#2a87d0;color:#fff}.react-datepicker__week-number--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day-names{white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:0.166rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:hover,.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover,.react-datepicker__year-text:hover{border-radius:0.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:bold}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:0.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:hover,.react-datepicker__month-text--highlighted:hover,.react-datepicker__quarter-text--highlighted:hover,.react-datepicker__year-text--highlighted:hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:magenta}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:0.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .holiday-overlay,.react-datepicker__month-text--holidays .holiday-overlay,.react-datepicker__quarter-text--holidays .holiday-overlay,.react-datepicker__year-text--holidays .holiday-overlay{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s, opacity 0.3s ease-in-out}.react-datepicker__day--holidays:hover,.react-datepicker__month-text--holidays:hover,.react-datepicker__quarter-text--holidays:hover,.react-datepicker__year-text--holidays:hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .holiday-overlay,.react-datepicker__month-text--holidays:hover .holiday-overlay,.react-datepicker__quarter-text--holidays:hover .holiday-overlay,.react-datepicker__year-text--holidays:hover .holiday-overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:0.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--in-range:hover,.react-datepicker__month-text--selected:hover,.react-datepicker__month-text--in-selecting-range:hover,.react-datepicker__month-text--in-range:hover,.react-datepicker__quarter-text--selected:hover,.react-datepicker__quarter-text--in-selecting-range:hover,.react-datepicker__quarter-text--in-range:hover,.react-datepicker__year-text--selected:hover,.react-datepicker__year-text--in-selecting-range:hover,.react-datepicker__year-text--in-range:hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:0.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:hover,.react-datepicker__month-text--keyboard-selected:hover,.react-datepicker__quarter-text--keyboard-selected:hover,.react-datepicker__year-text--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:rgba(33,107,165,0.5)}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled:hover,.react-datepicker__month-text--disabled:hover,.react-datepicker__quarter-text--disabled:hover,.react-datepicker__year-text--disabled:hover{background-color:transparent}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:0.5rem;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:0.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:0.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:0.3rem;border-top-right-radius:0.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:0.3rem;border-bottom-right-radius:0.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon::after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled::after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:bold;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:rgba(0,0,0,0.8);left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-width: 400px), (max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:0.4rem;padding-right:0.2rem;padding-left:0.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-0.125em}
+
diff --git a/src/web/gui/v2/8473.757c1686b1578c6813c8.chunk.js b/src/web/gui/v2/8473.757c1686b1578c6813c8.chunk.js
new file mode 100644
index 000000000..93e43bf07
--- /dev/null
+++ b/src/web/gui/v2/8473.757c1686b1578c6813c8.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03715ef2-1cbc-46d4-9a21-8b5c74de58fe",e._sentryDebugIdIdentifier="sentry-dbid-03715ef2-1cbc-46d4-9a21-8b5c74de58fe")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8473],{28473:(e,t,n)=>{n.r(t),n.d(t,{default:()=>S});n(30067),n(93518),n(25440),n(3064),n(41393),n(98992),n(72577),n(81454),n(62953);var o=n(96540),r=n(47767),a=n(86663),s=n(26655),i=n(78969),c=n(22292),d=n(63129),u=n(71835),l=n(76201),f=n(3914),g=n(69418);const w=()=>{const e=(0,c.uW)("id"),t=(0,c.uW)("name"),n=(0,c.uW)("email"),r=(0,c.uW)("createdAt"),a=(0,c.uW)("verifiedEmail"),s=(0,c.uW)("avatarUrl"),i=(0,f.UV)("loaded"),d=(0,f.UV)("ids"),[,u,l]=(0,g.A)();(0,o.useEffect)((()=>{e&&i&&!u&&(e=>{let{avatar:t,createdAt:n,email:o,id:r,name:a,spacesCount:s,verifiedEmail:i,maxNodesCount:c}=e;if(!window.envSettings.tracking)return;if(o&&o.includes("@netdata.msdc.co"))return;if(r&&"00000000-0000-0000-0000-000000000000"===r)return;if(o&&o.includes("anonymous@netdata.cloud"))return;const d=new Date,u=d.toISOString(),l=new Date(n),f=Math.floor((d-l)/864e5);var g;window.dataLayer&&(window.dataLayer.push({event:"UserInfoAvailable",user_id:r,userIdentifier:r,userName:a,userEmail:o,userAccountCreatedAt:n,userAccountCreatedDaysAgo:f,userAvatarURL:t,userEmailVerified:i,spacesCount:s}),null!==(g=window.posthog)&&void 0!==g&&g.__loaded&&(window.posthog.identify(r),window.posthog.people.set({email:o||"unknown email",name:a,netdata_cloud_account_created_at:n,netdata_cloud_account_created_days_ago:f,spacesCount:s,maxNodesCount:c}),window.posthog.register({netdata_cloud_account_created_days_ago:f,...window.localNetdataRegistry?{...window.localNetdataRegistry.pg?{netdata_registry_person_guid:window.localNetdataRegistry.pg}:{},...window.localNetdataRegistry.mg?{netdata_registry_machine_guid:window.localNetdataRegistry.mg}:{}}:{}}),window.posthog.register_once({event_source:"cloud",netdata_cloud_account_created_at:n,netdata_cloud_account_email:o||"unknown email",netdata_cloud_account_id:r,netdata_cloud_signed_in_at:u})))})({avatar:s,createdAt:r,email:n,id:e,name:t,spacesCount:d.length,verifiedEmail:a,maxNodesCount:l})}),[e,i,u]),(0,o.useEffect)((()=>{var e;if(null!==(e=window.posthog)&&void 0!==e&&e.__loaded)try{window.posthog.onFeatureFlags((function(){window.posthog.isFeatureEnabled&&window.posthog.isFeatureEnabled("user-age-less-than-7d")&&window.posthog.startSessionRecording()}))}catch(t){}}),[])},p=()=>{var e;if(null===(e=window.posthog)||void 0===e||!e.__loaded)return;const t=(new Date).toISOString();window.posthog.register_once({event_source:"cloud",posthog_first_seen_at:t,posthog_first_distinct_id:"get_distinct_id"in window.posthog&&window.posthog.get_distinct_id()})},m=()=>(0,o.useEffect)(p,[]);var h=n(87337),y=n(9224),v=n(91069),_=n(48388),E=n(37618),b=n(33829),A=n(67276);const N=e=>{let{errorRetry:t,token:n,redirectUri:r}=e;const s=a.parseUrl(decodeURIComponent(t)),{url:i,query:c}=s,{redirect_uri:d}=c,u=(0,o.useRef)(!1);return u.current||(u.current=!0,window.location="".concat(i,"?token=").concat(n,"&redirect_uri=").concat(d||r)),null},S=()=>{const e=(0,c.uW)("isLoaded"),t=(0,c.uW)("isAnonymous");(0,l.A)(),m(),w(),(0,o.useEffect)((()=>{if(!E.Ay){const e=window.localStorage.getItem(A.lO.visitor);if(e)window.envSettings.visitor=e;else{const e=(0,b.A)();window.localStorage.setItem(A.lO.visitor,e),window.envSettings.visitor=e}}}),[]),(0,o.useEffect)((()=>{sessionStorage.getItem(A.yq.session)||sessionStorage.setItem(A.yq.session,(0,b.A)())}),[]);const n=(0,r.RQ)("/sign-in/mobile-app/*"),f=(0,r.RQ)("/sign-in/*"),g=(0,r.RQ)("/sign-up/*"),p=!!f||!!g,S=(()=>{const[,e]=(0,u.A)(),t=(0,h.KF)();return(0,o.useCallback)((function(){let{origin:n,id:o,name:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!n)return;const a=decodeURIComponent(o),c=decodeURIComponent(n);(0,y.ys)(o).then((n=>{let{data:o=[]}=n;return t(a,c,r),o.length?s.A.get(i._9).then((e=>{let{data:t}=e;return Promise.any(t.map((e=>s.A.get((0,v.t)({spaceId:e.id})).then((t=>{let{data:n}=t;return Promise.any(n.map((t=>(0,d.uQ)({roomId:t.id,spaceId:e.id}).then((n=>{let{nodes:r}=n;const a=r.find((e=>{let{id:t}=e;return o.includes(t)}));if(!a)throw new Error("can't find matching node");const{protocol:s,host:i}=window.location;return"".concat(s,"//").concat(i,"/spaces/").concat(e.slug,"/rooms/").concat(t.slug,"/nodes/").concat(a.id)})))))})))))})).catch((()=>{})):(0,y.iY)(a).then((t=>{let{data:n}=t;const{claimed:o}=n;throw e(o?{errorMsgKey:"ErrForbidden",errorMessage:"You tried to access this Node on Netdata and you don't have access to it. Please contact your Space admin to give you access to it."}:{errorMsgKey:"ErrForbidden",errorMessage:"This Node isn't connected to Netdata. Please connect it, if you have permission for it, or contact your Space admin."}),"no access"}))})).then((e=>{e&&setTimeout(location.assign(e))})).catch((()=>{}))}),[])})(),C=(0,_.A)();if(!e||C.isFetching||C.hasAccess&&!p||n)return null;const{pathname:k,search:I,hash:R}=window.location,{error_retry:U,token:D}=a.parse(R),{cloudRoute:x,redirect_uri:T,...P}=a.parse(I);if(!t&&U)return o.createElement(N,{errorRetry:U,token:D,redirectUri:T});if(!t&&p){if(x){const e=x.includes("join-callback")?decodeURI(x):x,t=Array.isArray(e)?e[0]:e;return o.createElement(r.C5,{replace:!0,to:t})}return T?(S(P),window.location.replace(decodeURIComponent(T)),null):o.createElement(r.C5,{replace:!0,to:"/spaces"})}if(E.Ay)return null;if(t&&!p){const e=R.includes("join-callback")?R:encodeURIComponent(R),t="".concat(I).concat(I?"&":"?","cloudRoute=").concat(k);return o.createElement(r.C5,{replace:!0,to:{pathname:"/sign-in",search:t,hash:e}})}return null}},87337:(e,t,n)=>{n.d(t,{xN:()=>p,vS:()=>f,YN:()=>m,KF:()=>w,iw:()=>l,rE:()=>g});n(17333),n(3064),n(41393),n(14905),n(98992),n(54520),n(72577),n(81454),n(8872),n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215),n(62953);var o=n(96540),r=n(47444),a=n(47767),s=n(22292);const i=(0,r.Iz)({key:"visitedNodes",default:()=>[]});var c=n(47762),d=n(9224);const u=(0,r.K0)({key:"visitedNodeIdsValue",get:e=>t=>{let{get:n}=t;return n(i(e)).map((e=>{let{id:t}=e;return t}))}}),l=()=>{const e=(0,s.NJ)(),t=(0,r.vc)(i(e)),n=(0,r.Zs)((e=>{let{set:t}=e;return e=>{t(c.gl,{values:e.reduce(((e,t)=>({...e,[t.id]:{...t,loaded:!0}})),{}),merge:!0})}}),[]);return(0,o.useEffect)((()=>{n(t)}),[t]),(0,r.vc)(u(e))},f=e=>{const t=(0,s.NJ)(),n=(0,r.vc)(i(t)),a=(0,o.useMemo)((()=>e?n.filter((t=>t.name.toUpperCase().includes(e.toUpperCase()))):n),[n,e]);return(0,o.useMemo)((()=>a.map((e=>e.id))),[a])},g=()=>(0,r.Zs)((e=>{let{snapshot:t,set:n}=e;return async(e,o)=>{const r=await t.getPromise((0,s.Dm)("id")),{urls:a,name:u}=await t.getPromise((0,c.GN)({id:e})),l=a.filter((e=>e!==o));n((0,c.GN)({id:e,key:"urls"}),l),l.length||n(i(r),(t=>t.filter((t=>t.id!==e))));try{await(l.length?(0,d.Bz)(r,e,u,l):(0,d.sm)(r,[e])),(0,d.UL)(r,e).catch((()=>{}))}catch(f){n((0,c.GN)({id:e,key:"urls"}),a)}}}),[]),w=()=>{const{pathname:e}=(0,a.zy)(),t=(0,s.NJ)(),n=p({autoFetch:!1});return(0,r.Zs)((e=>{let{snapshot:t,set:o}=e;return async(e,r,a)=>{if(await t.getPromise((0,s.Dm)("isAnonymous")))return;const u=await t.getPromise((0,s.Dm)("id")),{urls:l,name:f}=await t.getPromise((0,c.GN)({id:e}));let g=r?[r,...l]:l;g=[...new Set([window.location.href,...g])];const w=g.length!==l.length;try{o((0,c.GN)({id:e,key:"urls"}),g),o(i(u),(t=>{const n=t.find((t=>t.id===e)),o=t.filter((t=>t.id!==e));return n?[{...n,accessCount:n.accessCount+1,lastAccessTime:(new Date).toISOString()},...o]:[{accessCount:1,id:e,lastAccessTime:(new Date).toISOString(),urls:g,name:a},...o]})),w&&await(0,d.Bz)(u,e,a||f,g),n(),await(0,d.UL)(u,e)}catch(p){o((0,c.GN)({id:e,key:"urls"}),l)}}}),[n,e,t])},p=function(){let{autoFetch:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:t,isAnonymous:n}=(0,s.uW)(),[,a]=(0,r.L4)(i(t)),[c,u]=(0,o.useState)(0),l=(0,o.useCallback)((()=>{u((e=>e+1))}),[u]);return(0,o.useEffect)((()=>{if(t&&(e||c))if(n){const e=(window.visitedNodes||[]).sort(((e,t)=>new Date(t.lastAccessTime)-new Date(e.lastAccessTime)));a(e)}else(0,d.uQ)(t).then((e=>{if(!e)return;const{data:{results:t}}=e,n=t.sort(((e,t)=>new Date(t.lastAccessTime)-new Date(e.lastAccessTime)));a(n)}))}),[e,c,t,n]),l},m=()=>{const e=(0,s.NJ)(),t=i(e);return(0,r.Zs)((e=>{let{snapshot:n,set:o}=e;return async e=>{const r=(await n.getPromise((0,c.th)(e))).map((e=>e.machineGUID)),a=await n.getPromise(t),s=a.filter((e=>!r.includes(e.id)));s.length!==a.length&&o(t,s)}}),[e])}},84428:(e,t,n)=>{var o=n(78227)("iterator"),r=!1;try{var a=0,s={next:function(){return{done:!!a++}},return:function(){r=!0}};s[o]=function(){return this},Array.from(s,(function(){throw 2}))}catch(i){}e.exports=function(e,t){try{if(!t&&!r)return!1}catch(i){return!1}var n=!1;try{var a={};a[o]=function(){return{next:function(){return{done:n=!0}}}},e(a)}catch(i){}return n}},87290:(e,t,n)=>{var o=n(50516),r=n(19088);e.exports=!o&&!r&&"object"==typeof window&&"object"==typeof document},50516:e=>{e.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},19088:(e,t,n)=>{var o=n(24475),r=n(44576);e.exports="process"===r(o.process)},16193:(e,t,n)=>{var o=n(79504),r=Error,a=o("".replace),s=String(new r("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,c=i.test(s);e.exports=function(e,t){if(c&&"string"==typeof e&&!r.prepareStackTrace)for(;t--;)e=a(e,i,"");return e}},80747:(e,t,n)=>{var o=n(66699),r=n(16193),a=n(24659),s=Error.captureStackTrace;e.exports=function(e,t,n,i){a&&(s?s(e,t):o(e,"stack",r(n,i)))}},24659:(e,t,n)=>{var o=n(79039),r=n(6980);e.exports=!o((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",r(1,7)),7!==e.stack)}))},77584:(e,t,n)=>{var o=n(20034),r=n(66699);e.exports=function(e,t){o(t)&&"cause"in t&&r(e,"cause",t.cause)}},32603:(e,t,n)=>{var o=n(655);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:o(e)}},10916:(e,t,n)=>{var o=n(24475),r=n(80550),a=n(94901),s=n(92796),i=n(33706),c=n(78227),d=n(87290),u=n(50516),l=n(96395),f=n(77388),g=r&&r.prototype,w=c("species"),p=!1,m=a(o.PromiseRejectionEvent),h=s("Promise",(function(){var e=i(r),t=e!==String(r);if(!t&&66===f)return!0;if(l&&(!g.catch||!g.finally))return!0;if(!f||f<51||!/native code/.test(e)){var n=new r((function(e){e(1)})),o=function(e){e((function(){}),(function(){}))};if((n.constructor={})[w]=o,!(p=n.then((function(){}))instanceof o))return!0}return!t&&(d||u)&&!m}));e.exports={CONSTRUCTOR:h,REJECTION_EVENT:m,SUBCLASSING:p}},90537:(e,t,n)=>{var o=n(80550),r=n(84428),a=n(10916).CONSTRUCTOR;e.exports=a||!r((function(e){o.all(e).then(void 0,(function(){}))}))},17145:(e,t,n)=>{var o=n(46518),r=n(1625),a=n(42787),s=n(52967),i=n(77740),c=n(2360),d=n(66699),u=n(6980),l=n(77584),f=n(80747),g=n(72652),w=n(32603),p=n(78227)("toStringTag"),m=Error,h=[].push,y=function(e,t){var n,o=r(v,this);s?n=s(new m,o?a(this):v):(n=o?this:c(v),d(n,p,"Error")),void 0!==t&&d(n,"message",w(t)),f(n,y,n.stack,1),arguments.length>2&&l(n,arguments[2]);var i=[];return g(e,h,{that:i}),d(n,"errors",i),n};s?s(y,m):i(y,m,{name:!0});var v=y.prototype=c(m.prototype,{constructor:u(1,y),message:u(1,""),name:u(1,"AggregateError")});o({global:!0,constructor:!0,arity:2},{AggregateError:y})},30067:(e,t,n)=>{n(17145)},93518:(e,t,n)=>{var o=n(46518),r=n(69565),a=n(79306),s=n(97751),i=n(36043),c=n(1103),d=n(72652),u=n(90537),l="No one promise resolved";o({target:"Promise",stat:!0,forced:u},{any:function(e){var t=this,n=s("AggregateError"),o=i.f(t),u=o.resolve,f=o.reject,g=c((function(){var o=a(t.resolve),s=[],i=0,c=1,g=!1;d(e,(function(e){var a=i++,d=!1;c++,r(o,t,e).then((function(e){d||g||(g=!0,u(e))}),(function(e){d||g||(d=!0,s[a]=e,--c||f(new n(s,l)))}))})),--c||f(new n(s,l))}));return g.error&&f(g.value),o.promise}})}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/8505.b10bf3549c213fe15d55.chunk.js b/src/web/gui/v2/8505.b10bf3549c213fe15d55.chunk.js
new file mode 100644
index 000000000..ff2663285
--- /dev/null
+++ b/src/web/gui/v2/8505.b10bf3549c213fe15d55.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="368bde50-4a85-43ce-83bc-c6aa0712f1d0",e._sentryDebugIdIdentifier="sentry-dbid-368bde50-4a85-43ce-83bc-c6aa0712f1d0")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8505],{8505:(e,t,n)=>{n.r(t),n.d(t,{default:()=>y});n(62953);var a=n(96540),r=n(84929),o=n(16074),l=n(63933),i=n(82526),d=n(48168),c=n(87991),s=n(26655),u=n(47444),f=n(10058),p=n(5396),g=n(4659),b=n(87659);const m=(0,u.gD)({key:"fetchLicense",get:()=>s.A.get("/api/v1/license").then((e=>e.data)).catch((()=>null))}),w=(0,u.eU)({key:"licenseAtom",default:m}),y=()=>{if(!window.envSettings.onprem)return null;const e=(0,u.xf)(w),[t,n]=(0,b.A)(),[s,m]=(0,a.useState)(),[y,E]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{if("hasValue"!==e.state)return;const t=e.contents,a=(0,r.H)(t.exp);if(m(a),!(0,o.f)(a))return;const i=parseInt((a-new Date)/1e3/60/60/24);if(i>30)return;const d=localStorage.getItem("dismissLicenceWarning");d&&(0,o.f)((0,r.H)(d))&&!(0,l.R)((0,r.H)(d))&&i>0||(n(!0),i<0&&E(!0))}),[e]),t?y?a.createElement(f.Layer,{full:!0,backdropProps:{backdropBlur:"3px"}},a.createElement(p.A,{testId:"onprem-banner",width:"100%",background:"errorBackground",position:"absolute",top:"0",tooltipProps:{align:"top"},zIndex:20},a.createElement(f.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},a.createElement(f.Text,null,"Your Netdata Enterprise On-prem License has expired on ",(0,c.GP)(s,"PPPP"),". Please contact your admin /"," ",a.createElement(g.A,{"data-testid":"renew",href:"mailto:billing@netdata.cloud",as:"a",cursor:"pointer",textDecoration:"underline",color:"main"},"billing@netdata.cloud")," ","to renew your license.")))):a.createElement(p.A,{testId:"onprem-banner",width:"100%",background:"warningBackground",position:"absolute",top:"0",onClose:()=>{n(),localStorage.setItem("dismissLicenceWarning",(0,i.W)(new Date,{days:1}).toISOString())},tooltipProps:{align:"top"},zIndex:20},a.createElement(f.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},a.createElement(f.Text,null,"Your Netdata Enterprise On-prem License will expire in ",(0,d.m)(s),". Please contact your admin /"," ",a.createElement(g.A,{"data-testid":"renew",href:"mailto:billing@netdata.cloud",as:"a",cursor:"pointer",textDecoration:"underline",color:"main"},"billing@netdata.cloud")," ","to renew your license."))):null}}}]); \ No newline at end of file
diff --git a/web/gui/v2/9594.89070793921be1288bb5.css b/src/web/gui/v2/8507.89070793921be1288bb5.css
index e5d02668f..e5d02668f 100644
--- a/web/gui/v2/9594.89070793921be1288bb5.css
+++ b/src/web/gui/v2/8507.89070793921be1288bb5.css
diff --git a/src/web/gui/v2/8507.e30db778518756ef63fa.chunk.js b/src/web/gui/v2/8507.e30db778518756ef63fa.chunk.js
new file mode 100644
index 000000000..7d05427b7
--- /dev/null
+++ b/src/web/gui/v2/8507.e30db778518756ef63fa.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b20f3396-b7a0-466a-bb4c-65c26af3ac34",e._sentryDebugIdIdentifier="sentry-dbid-b20f3396-b7a0-466a-bb4c-65c26af3ac34")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8507],{62727:(e,t,n)=>{n.r(t),n.d(t,{default:()=>M});n(41393),n(81454),n(62953);var o=n(96540),r=n(45467),a=n(11128),l=n(47762),i=n(45123),c=n(87659),s=n(47731),d=n(82230),u=n(24398),f=n(57605),g=n(11261),h=n(38413),m=n(8711),p=n(10058),v=n(49389),b=n(63950),y=n.n(b),E=n(78062);const w=e=>{let{startAddingNodes:t=y(),startShowingIntegrations:n=y(),close:r=y(),children:a}=e;const l=(0,o.useCallback)((()=>{r(),t()}),[t]),i=(0,o.useCallback)((()=>{r(),n()}),[n]);return o.createElement(p.Flex,{column:!0,gap:1,padding:[2,2,1],zIndex:1,border:{side:"top",color:"border"}},o.createElement(p.Flex,{gap:2,justifyContent:"end"},o.createElement(E.A,{icon:"nodes_hollow",flavour:"hollow",onClick:l,small:!0,label:"Add Nodes"}),o.createElement(p.Button,{icon:"integrations",flavour:"hollow",onClick:i,small:!0,label:"Integrations"})),a)};var x=n(667),A=n(99292),k=n(94177),C=n(90535),I=n(22292),_=n(73865),T=n(6586),F=n(12602);const N=e=>{let{onAnchorClick:t}=e;const{loaded:n,hasLimitations:r,maxNodes:a}=(0,_.A)();return n&&r?o.createElement(p.Flex,{gap:2,padding:[3]},o.createElement(p.Icon,{name:"warning_triangle",size:"small",color:"warning"}),o.createElement(p.Text,null,"Your plan is limited to ",a," nodes."," ",o.createElement(F.A,{onClick:t},o.createElement(p.Text,{color:"primary"},"Upgrade for no limitations"))," ","or"," ",o.createElement(T.A,{onClick:t},o.createElement(p.Text,{color:"primary"},"review your Space active Nodes")),".")):null},S=e=>{let{onAnchorClick:t=y()}=e;return(0,I.uW)("isAnonymous")?null:o.createElement(N,{onAnchorClick:t})},B=["filters"],D=(0,m.default)(p.Drop).attrs({backdrop:!0,align:{top:"bottom",right:"right"},animation:!0,background:"modalBackground",column:!0,margin:[2,0,0],padding:[2,0],round:4,width:200}).withConfig({displayName:"dropdown__Dropdown",componentId:"sc-1birv08-0"})([""]),P=(0,o.memo)((e=>{let{target:t,onClose:n,onAddNodes:r}=e;const l=(0,a.w7)(),i=(0,f.A)();(0,o.useEffect)((()=>{i()}),[]);const{onIntegrationsClick:c}=(0,x.A)();return o.createElement(D,{target:t,onEsc:n,onClickOutside:n},o.createElement(p.Flex,{column:!0,height:{max:"60vh"}},o.createElement(p.Flex,{flex:"1",overflow:"hidden"},o.createElement(p.Flex,{column:!0,flex:!0},o.createElement(p.Flex,{alignItems:"center",padding:[3],border:{side:"bottom",color:"border"},height:12,flex:!1},o.createElement(p.Text,{strong:!0},"Visualizing data in space from ",l.length||"all"," ",(0,v.su)(l.length))),o.createElement(S,{onAnchorClick:n}),o.createElement(k.A,{testIdPrefix:"node-ids",param:"selectedNodeIds",groupProps:{collapsible:!1,background:"modalBackground",padding:[3],flex:"1",overflow:"hidden"},height:"auto",width:"100%"})),o.createElement(A.Ay,{basis:60,baseWidth:60,flex:!1,title:"Dynamic filters",includedTabs:B,loaded:!0,onClose:n,groupProps:{background:"modalBackground"},background:"modalBackground"})),o.createElement(w,{startAddingNodes:r,startShowingIntegrations:c,close:n},o.createElement(C.A,null))))})),M=(0,o.memo)((()=>{const e=(0,s.J)(),[t,n,,m]=(0,c.A)(!1),p=(0,o.useRef)(),v=(0,a.w7)(),b=(0,l.BU)().length,y=(0,l.Ig)().length,E=(0,l.GE)().length,w=(0,l.no)().length,x=(0,l.BU)(v.length?v:void 0).length,A=(0,l.Ig)(v.length?v:void 0).length,k=(0,l.GE)(v.length?v:void 0).length,C=(0,l.no)(v.length?v:void 0).length,I=(0,o.useMemo)((()=>({live:{selected:x,total:b,statusText:"Live"},stale:{selected:A,total:y,statusText:"Stale"},offline:{selected:k,total:E,statusText:"Offline"},unseen:{selected:C,total:w,statusText:"Unseen"}})),[b,y,E,w,x,A,k]),_=(0,f.A)();(0,r.A)((()=>{_(t)}),[t]);const[T,,F,N]=(0,c.A)();return o.createElement(o.Fragment,null,o.createElement(i.A,{ref:p,testid:"globalFilter-nodes",icon:"nodes",onClick:n,round:1,padding:e?[1]:[2],width:"auto",cursor:"pointer",selected:t},o.createElement(g.A,{"data-testid":"nodesIndicator",alignItems:"center",justifyContent:"end",gap:2},Object.keys(I).map((t=>o.createElement(d.A,{key:t,statusText:I[t].statusText,total:I[t].total,selected:I[t].selected,statusColor:u.P[t],isScreenSmall:e}))))),p.current&&t&&o.createElement(P,{target:p.current,onClose:m,onAddNodes:F}),T&&o.createElement(h.A,{onClose:N}))}))},24074:(e,t,n)=>{var o=n(69565),r=n(28551),a=n(2360),l=n(55966),i=n(56279),c=n(91181),s=n(97751),d=n(53982),u=n(62529),f=s("Promise"),g="AsyncFromSyncIterator",h=c.set,m=c.getterFor(g),p=function(e,t,n){var o=e.done;f.resolve(e.value).then((function(e){t(u(e,o))}),n)},v=function(e){e.type=g,h(this,e)};v.prototype=i(a(d),{next:function(){var e=m(this);return new f((function(t,n){var a=r(o(e.next,e.iterator));p(a,t,n)}))},return:function(){var e=m(this).iterator;return new f((function(t,n){var a=l(e,"return");if(void 0===a)return t(u(void 0,!0));var i=r(o(a,e));p(i,t,n)}))}}),e.exports=v},50133:(e,t,n)=>{var o=n(69565),r=n(94901),a=n(28551),l=n(1767),i=n(50851),c=n(55966),s=n(78227),d=n(24074),u=s("asyncIterator");e.exports=function(e){var t,n=a(e),s=!0,f=c(n,u);return r(f)||(f=i(n),s=!1),void 0!==f?t=o(f,n):(t=n,s=!0),a(t),l(s?t:new d(l(t)))}},48646:(e,t,n)=>{var o=n(69565),r=n(28551),a=n(1767),l=n(50851);e.exports=function(e,t){t&&"string"===typeof e||r(e);var n=l(e);return a(r(void 0!==n?o(n,e):e))}},30237:(e,t,n)=>{n(6469)("flatMap")},32679:(e,t,n)=>{var o=n(46518),r=n(69565),a=n(79306),l=n(28551),i=n(20034),c=n(1767),s=n(92059),d=n(62529),u=n(50133),f=n(20772),g=n(96395),h=s((function(e){var t=this,n=t.iterator,o=t.mapper;return new e((function(a,c){var s=function(e){t.done=!0,c(e)},g=function(e){f(n,s,e,s)},h=function(){try{e.resolve(l(r(t.next,n))).then((function(n){try{if(l(n).done)t.done=!0,a(d(void 0,!0));else{var r=n.value;try{var c=o(r,t.counter++),f=function(e){try{t.inner=u(e),m()}catch(n){g(n)}};i(c)?e.resolve(c).then(f,g):f(c)}catch(h){g(h)}}}catch(p){s(p)}}),s)}catch(c){s(c)}},m=function(){var n=t.inner;if(n)try{e.resolve(l(r(n.next,n.iterator))).then((function(e){try{l(e).done?(t.inner=null,h()):a(d(e.value,!1))}catch(n){g(n)}}),g)}catch(o){g(o)}else h()};m()}))}));o({target:"AsyncIterator",proto:!0,real:!0,forced:g},{flatMap:function(e){return l(this),a(e),new h(c(this),{mapper:e,inner:null})}})},30670:(e,t,n)=>{var o=n(46518),r=n(69565),a=n(79306),l=n(28551),i=n(1767),c=n(48646),s=n(19462),d=n(9539),u=n(96395),f=s((function(){for(var e,t,n=this.iterator,o=this.mapper;;){if(t=this.inner)try{if(!(e=l(r(t.next,t.iterator))).done)return e.value;this.inner=null}catch(a){d(n,"throw",a)}if(e=l(r(this.next,n)),this.done=!!e.done)return;try{this.inner=c(o(e.value,this.counter++),!1)}catch(a){d(n,"throw",a)}}}));o({target:"Iterator",proto:!0,real:!0,forced:u},{flatMap:function(e){return l(this),a(e),new f(i(this),{mapper:e,inner:null})}})}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/86.167efe55b22f02c3155a.chunk.js b/src/web/gui/v2/86.167efe55b22f02c3155a.chunk.js
new file mode 100644
index 000000000..5fc2d2534
--- /dev/null
+++ b/src/web/gui/v2/86.167efe55b22f02c3155a.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2c0bd877-5fd7-4c1b-b3a5-43bb228a9965",e._sentryDebugIdIdentifier="sentry-dbid-2c0bd877-5fd7-4c1b-b3a5-43bb228a9965")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[86],{60086:(e,n,t)=>{t.r(n),t.d(n,{default:()=>U});var a=t(58168),r=(t(62953),t(96540)),o=t(10058),l=t(16074),d=t(84929),i=t(63933),s=t(82526),c=t(48168),p=t(87991),b=t(5396),u=t(29217),f=t(87659),g=t(92155),m=t(25624),E=t(99904),w=t(35454),y=t(24864),x=t(93476),I=t(28061);const h=new Date("12/31/2023 23:59:59 +2"),A=new Date,S=(k=(0,g.A)(y.PL),e=>{let{canUpgrade:n,...t}=e;return n?r.createElement(k,t):r.createElement(u.A,{content:"You don't have permissions to upgrade the plan"},r.createElement(o.Flex,null,r.createElement(k,(0,a.A)({disabled:!0},t))))});var k;const U=e=>{let{flavour:n="banner"}=e;const{onTrial:t,sidebarWarningVisible:a,bannerVisible:u,dismissBanner:g,type:k,canUpgrade:U,planIsFreeOrEarlyBird:D}=(0,m.A)(),{coupon:_}=(0,E.A)(),v=parseFloat((h-A)/1e3/60/60/24),B=_||(v>0?"50SURPRISE":""),C=(0,I.A)(B),P=!t&&D,[R,T]=(0,f.A)();return(0,r.useEffect)((()=>{const e=localStorage.getItem("dismissSidebarBanner");e&&(0,l.f)((0,d.H)(e))&&!(0,i.R)((0,d.H)(e))||T(!0)}),[]),"sidebar"==n&&(a||P)?R?r.createElement(y.bg,{type:t?k:"default",column:!0,gap:2,margin:[2],padding:[2]},r.createElement(o.Box,{"data-testid":"close-button",as:o.Icon,color:"text",cursor:"pointer",name:"x",position:"absolute",right:"2px",top:"2px",width:"12px",height:"12px",onClick:()=>{T(),localStorage.setItem("dismissSidebarBanner",(0,s.W)(new Date,{days:3}).toISOString())}}),r.createElement(x.A,{flavour:t?n:"freePlanUpgrade",couponRemainingDays:v,expDate:h,onUpdateClick:C}),r.createElement(S,{feature:"UpgradeToBusiness",isStart:!0,small:!0,"data-testid":"upgradeToBusiness-sidebar",label:v>0?"Upgrade now!":"Upgrade",canUpgrade:U,onClick:C}),v>0&&(0,l.f)(h)&&r.createElement(o.TextNano,{strong:!0,textAlign:"center",lineHeight:.8},"Expires"," ",v<1?"".concat((0,c.m)(h,{addSuffix:!0})," ").concat((0,p.GP)(h,"'at' p")):"on ".concat((0,p.GP)(h,"do 'of' MMM', at' p")))):null:u?r.createElement(b.A,{testId:"trial-banner",width:"100%",background:w.ue[k],onClose:g,tooltipProps:{align:"top"},zIndex:20},r.createElement(x.A,{flavour:n,onUpdateClick:C})):null}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/8676.a3d687b3b339a72ab66e.chunk.js b/src/web/gui/v2/8676.a3d687b3b339a72ab66e.chunk.js
new file mode 100644
index 000000000..e9a709807
--- /dev/null
+++ b/src/web/gui/v2/8676.a3d687b3b339a72ab66e.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3dbf5f7b-ca21-4dfb-a27c-297cfd33b96e",e._sentryDebugIdIdentifier="sentry-dbid-3dbf5f7b-ca21-4dfb-a27c-297cfd33b96e")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8676],{62232:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var a=n(58168),l=(n(17333),n(41393),n(98992),n(54520),n(81454),n(8711)),r=n(68090),o=n.n(r),i=n(96540),c=n(10058);const s=(0,l.default)(c.Box).withConfig({displayName:"breadcrumbs__StyledItemContainer",componentId:"sc-3u39st-0"})([""]),m=(0,l.css)(["&:hover{color:",";}"],(e=>{let{withHover:t,theme:n}=e;return t&&(0,c.getColor)("success")({theme:n})})),d=(0,l.default)(c.Text).withConfig({displayName:"breadcrumbs__StyledText",componentId:"sc-3u39st-1"})(["",""],m),u=(0,l.default)(c.TextSmall).withConfig({displayName:"breadcrumbs__StyledTextSmall",componentId:"sc-3u39st-2"})(["",""],m),g=e=>{let{items:t,isBig:n,showBackButton:l=!0,testid:r="",...m}=e;const g=(0,i.useMemo)((()=>{if(null===t||void 0===t||!t.length||!l)return null;return o()(t.filter((e=>{let{onClick:t}=e;return!!t}))).onClick}),[t,l]);if(null===t||void 0===t||!t.length)return null;const p=n?d:u;return i.createElement(c.Flex,(0,a.A)({gap:4},m),l&&i.createElement(c.Button,{onClick:g,icon:"chevron_left",label:"Back",neutral:!0,flavour:"hollow",small:!0,padding:[0,2,0,1],textTransform:"uppercase","data-testid":"".concat(r,"-breadcrumbs-backButton")}),i.createElement(c.Flex,{gap:2,alignItems:"center"},t.map(((e,t)=>{let{isDisabled:n,name:l,onClick:o}=e;return i.createElement(s,(0,a.A)({key:t,alignItems:"center"},o&&{cursor:"pointer",onClick:o},{"data-testid":"".concat(r,"-breadcrumbs-level-").concat(t)}),i.createElement(p,{color:n&&"textLite","data-testid":"".concat(r,"-breadcrumbs-level-").concat(t),withHover:!!o},0!==t&&" / ",l))}))))}},26751:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var a=n(58168),l=n(96540),r=n(10058);const o=e=>{let{message:t,title:n,footer:o,...i}=e;const c=(null===i||void 0===i?void 0:i["data-testid"])||"functionError";return l.createElement(r.Flex,(0,a.A)({alignItems:"center",column:!0,"data-testid":c,flex:!0,gap:3,justifyContent:"center",padding:[0,20]},i),l.createElement(r.H3,{"data-testid":"".concat(c,"-title")},n),l.createElement(r.TextBig,{color:"textDescription","data-testid":"".concat(c,"-message")},t),o)}},54856:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var a=n(58168),l=n(96540),r=n(84976),o=n(10058),i=n(4659),c=n(46741),s=n(27994);const m=function(){let{containerProps:e={},...t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,c.JT)("billing:ReadAll"),{url:m}=(0,s.A)();return m?l.createElement(o.Flex,(0,a.A)({background:"sideBarMini",border:{side:"all",color:"border"},padding:[1,2],round:!0},e),l.createElement(i.A,(0,a.A)({align:"bottom",as:r.N_,boxProps:{as:o.Flex},color:"text",Component:o.TextMicro,content:n?"Upgrade your plan in order to use this feature":"You have no permissions to manage billing",disabled:!n,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:m},t),"Upgrade now!")):null}},54518:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var a=n(96540),l=n(58168),r=n(10058),o=n(29217);const i=e=>{let{description:t,isRequired:n,title:l,...i}=e;const c=i["data-testid"]?"".concat(i["data-testid"],"-label"):"fieldLabel";return a.createElement(r.Flex,{"data-testid":"".concat(c,"-container"),gap:1},a.createElement(r.TextSmall,{color:"textLite","data-testid":c},l,n&&" *"),t&&a.createElement(o.A,{align:"top",content:t,"data-testid":"".concat(c,"-info"),plain:!0},a.createElement(r.Icon,{color:"textLite",name:"information",size:"small"})))},c=e=>{let{"data-testid":t="input",description:n,isRequired:o,onChange:c,title:s,...m}=e;return a.createElement(r.Flex,{column:!0,"data-testid":t,flex:"grow",gap:1},a.createElement(i,{"data-testid":t,description:n,isRequired:o,title:s}),a.createElement(r.TextInput,(0,l.A)({"data-testid":"".concat(t,"-field"),size:"tiny",onChange:e=>{let{target:t}=e;return c(t.value)}},m)))};n(41393),n(81454);const s=e=>{var t;let{"data-testid":n="select",description:o,getDataGa:c,fields:s,id:m,isRequired:d,onChange:u,secrets:g,setSecrets:p,title:E,...h}=e;return a.createElement(r.Flex,{column:!0,"data-testid":n,flex:"grow",gap:1},a.createElement(i,{"data-testid":n,description:o,isRequired:d,title:E}),a.createElement(r.Select,(0,l.A)({"data-testid":"".concat(n,"-field"),menuPortalTarget:document.body,onChange:e=>u(e),styles:{size:"tiny"},menuPlacement:"auto"},h)),Object.values((null===s||void 0===s?void 0:s[null===(t=h.value)||void 0===t?void 0:t.value])||{}).map((e=>{let{getValue:t,id:r,onChange:o,...i}=e;return a.createElement(b,(0,l.A)({"data-ga":c("".concat(m,"-").concat(r,"-").concat(i.component)),"data-testid":"".concat(n,"-").concat(r),key:r,id:r,onChange:o({id:m,setSecrets:p,subsetId:r}),value:t({id:m,secrets:g,subsetId:r})},i))})))};n(14905),n(98992),n(8872),n(62953);var m=n(90179),d=n.n(m),u=n(97200),g=n.n(u),p=n(30960),E=n(63450);const h={default:()=>null,pairs:e=>{let{componentPairs:t,"data-testid":n="pairs",description:l,getDataGa:o,id:c,isRequired:s,placeholder:m,setSecrets:u,title:h}=e;const[b,v]=(0,a.useState)({});(0,a.useEffect)((()=>{const e=Object.values(b).reduce(((e,t)=>{let{key:n,value:a}=t;return n?{...e,[n]:a||""}:e}),{});u((t=>Object.keys(e).length?{...t,[c]:e}:d()(t,c)))}),[b]);return a.createElement(r.Flex,{column:!0,"data-testid":n,gap:1},a.createElement(r.Flex,{alignItems:"center",justifyContent:"between"},a.createElement(i,{"data-testid":n,description:l,isRequired:s,title:h}),t.map((e=>{const l=(0,p.$Q)(e);return a.createElement(E.ro,{"data-ga":o("".concat(c,"-").concat(l,"-add")),"data-testid":"".concat(n,"-").concat(l,"Add"),key:l,label:1===t.length?"Add":"Add ".concat(l),onClick:()=>(e=>v((t=>({...t,[g()("pair_")]:{key:"",components:e,value:""}}))))(e)})}))),Object.entries(b).map((e=>{let[t,{key:l,components:i,value:s}]=e;const[u,g]=i,E=(0,p.$Q)(i);return a.createElement(r.Flex,{alignItems:"end",key:"".concat(E,"-").concat(t),gap:2},a.createElement(f,{component:u,"data-ga":o("".concat(c,"-").concat(E,"-key")),"data-testid":"".concat(n,"-").concat(E,"Key"),onChange:e=>v((n=>({...n,[t]:{...n[t],key:e}}))),value:l,placeholder:m,title:"Key"}),a.createElement(f,{component:g,"data-ga":o("".concat(c,"-").concat(E,"-value")),"data-testid":"".concat(n,"-").concat(E,"Value"),onChange:e=>v((n=>({...n,[t]:{...n[t],value:e}}))),value:s,placeholder:m,title:"Value"}),a.createElement(r.Button,{flavour:"borderless",icon:"trashcan",margin:[0,0,1,0],neutral:!0,onClick:()=>{v((e=>d()(e,t)))}}))})))},input:c,select:s},b=e=>{let{component:t,...n}=e;const l=h[t]||h.default;return a.createElement(l,n)},f=b},63450:(e,t,n)=>{"use strict";n.d(t,{$m:()=>s,He:()=>r,Jg:()=>g,MU:()=>o,Oj:()=>m,W6:()=>c,fn:()=>d,id:()=>u,ro:()=>i});var a=n(8711),l=n(10058);const r=(0,a.default)(l.Flex).attrs({alignItems:"center",color:"text",gap:1,hoverColor:"text"}).withConfig({displayName:"styled__AnchorComponent",componentId:"sc-wc4x41-0"})(["&,&:hover{text-decoration:none;}"]),o=(0,a.default)(l.Icon).attrs({height:"130px",width:"130px"}).withConfig({displayName:"styled__BlurredIcon",componentId:"sc-wc4x41-1"})(["filter:blur(70px);position:absolute;left:0;top:0;opacity:0.5;"]),i=(0,a.default)(l.Button).attrs({height:"22px",icon:"plus",padding:[.5,2,.5,1],small:!0,width:"auto"}).withConfig({displayName:"styled__IntegrationAction",componentId:"sc-wc4x41-2"})(["&& > span{font-weight:bold;margin-left:4px;}"]),c=(0,a.default)(l.TextSmall).withConfig({displayName:"styled__LearnMoreTest",componentId:"sc-wc4x41-3"})(["position:relative;"]),s=(0,a.default)(l.ModalContent).attrs({height:{base:150,max:150,min:45},overflow:{vertical:"auto"},width:{base:121,max:140,min:70}}).withConfig({displayName:"styled__ModalContent",componentId:"sc-wc4x41-4"})(["box-shadow:0 18px 28px rgb(9 30 66 / 15%),0 0 1px rgb(9 30 66 / 31%);"]),m=(0,a.default)(l.ModalCloseButton).attrs({color:"text",height:"16px",width:"16px"}).withConfig({displayName:"styled__ModalClose",componentId:"sc-wc4x41-5"})(["&:hover{fill:",";}"],(0,l.getColor)("selected")),d=(0,a.default)(l.Flex).attrs((e=>{let{hasBorder:t,...n}=e;return{...t?{border:{side:"bottom",color:"disabled"}}:{},column:!0,padding:[3,4],...n}})).withConfig({displayName:"styled__ModalSection",componentId:"sc-wc4x41-6"})([""]),u=(0,a.default)(l.Icon).attrs({name:"warning_triangle",height:"18px",width:"18px",color:["yellow","amber"]}).withConfig({displayName:"styled__WarningIcon",componentId:"sc-wc4x41-7"})(["position:absolute;top:0;right:0;z-index:1;"]),g=(0,a.default)(l.Icon).attrs({height:"12px",width:"12px",color:"white"}).withConfig({displayName:"styled__SystemIcon",componentId:"sc-wc4x41-8"})(["position:relative;top:2px;"])},99904:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(62953);var a=n(96540),l=n(3914),r=n(25624);var o=n(87659);const i=e=>{const t=new Date(e||void 0).toDateString();return"Invalid Date"!==t?t:null},c=()=>{var e;const t=(0,l.ap)(),n=(0,a.useMemo)((()=>"".concat("dismissedBumpedWarningKey","_").concat(null===t||void 0===t?void 0:t.id)),[null===t||void 0===t?void 0:t.id]),[c,,,s]=(0,o.A)(!localStorage.getItem(n)),{trialEndsAtRaw:m}=(0,r.A)(),d="EarlybirdAndCommunitySunset"==(null===t||void 0===t||null===(e=t.metadata)||void 0===e?void 0:e.joinTrialCode),u=c&&m&&d,g=d?"EARLYB25":null,p=(0,a.useCallback)((()=>{localStorage.setItem(n,!0),s()}),[s,n]);return{isModalVisible:u,isEarlybirdAndCommunitySunset:d,coupon:g,trialEndsAt:i(m),onClose:p}}},34641:(e,t,n)=>{"use strict";n.d(t,{A:()=>E});n(9391),n(62953);var a=n(96540),l=n(63950),r=n.n(l),o=n(10058),i=n(19673),c=n(71835),s=n(92155),m=n(50876),d=n(63314),u=n(87659),g=n(97118);const p=(0,s.A)(o.Button),E=e=>{let{onConfirm:t,onDecline:n=r(),onCancellingEnd:l=r()}=e;const s=(0,i.M4)(),[E,h]=(0,c.A)(),{id:b}=(0,g.A)(),{sendLog:f,isReady:v}=(0,m.A)(),[x,,y,C]=(0,u.A)(),w=(0,a.useCallback)((()=>{y(),s({productId:b}).then((()=>{E({header:"Successfully canceled subscription",text:"You are now on Community plan"}),f({feature:"TrialOptOut",isSuccess:!0})})).catch((()=>{h({header:"Failed to cancel the subscription",text:"Remained on Business plan"}),f({feature:"TrialOptOut",isFailure:!0,error:"Failed to cancel the subscription"})})).finally((()=>{l(),C()}))}),[b,v]),A=(0,a.useCallback)((()=>{t?t():w()}),[t,w]);return a.createElement(o.Modal,{backdropProps:{backdropBlur:!0}},a.createElement(d.Ay,{feature:"TrialOptOut"},a.createElement(o.ModalContent,{width:{base:140}},a.createElement(o.ModalHeader,null,a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(o.H4,null,"Go to Community plan"))),a.createElement(o.ModalBody,null,x?a.createElement(o.Flex,{height:"100px"},a.createElement(o.TextBig,null,"Changing billing plan...")):a.createElement(o.Flex,{gap:2,column:!0},a.createElement(o.H3,null,"Are You Sure?"),a.createElement(o.TextBig,null,"It looks like you have chosen to opt-out of your free 30-day business trial. Are you sure you do not want to experience all the features Netdata has to offer?"),a.createElement(o.TextBig,null,"By opting out, you will switch to the community plan immediately."))),a.createElement(o.ModalFooter,null,a.createElement(o.Flex,{justifyContent:"end",gap:4,padding:[1,2]},a.createElement(p,{feature:"TrialOptOut",label:"Yes, I am sure!",flavour:"hollow",small:!0,onClick:A,disabled:!b||x,textTransform:""}),a.createElement(p,{feature:"TrialOptOut",label:"No, I want the trial!",small:!0,onClick:n,disabled:x,textTransform:""}))))))}},35454:(e,t,n)=>{"use strict";n.d(t,{$B:()=>o,TB:()=>i,W1:()=>l,ml:()=>r,ue:()=>a});const a={default:"successSemi",warning:"warningSemi",critical:"errorSemi"},l={default:{background:"successSemi",border:"success"},warning:{background:"warningSemi",border:"warning"},critical:{background:"errorSemi",border:"error"}},r=[30,15,3,2,1],o="dismissedTrialWelcome",i="dismissedTrialWarningDate"},93476:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var a=n(58168),l=n(96540),r=n(10058),o=n(63950),i=n.n(o),c=n(25624),s=n(99904),m=n(24864);const d={banner:{color:"main"},sidebar:{lineHeight:"1.6",color:"main"},freePlanUpgrade:{lineHeight:"1.6",color:"main"},billing:{color:"textLite"}},u=e=>{let{canUpgrade:t,onUpdateClick:n=i(),children:o,...c}=e;return t?l.createElement(r.Box,(0,a.A)({"data-testid":"upgrade-to-business-banner",onClick:n,as:r.Text,cursor:"pointer",textDecoration:"underline",color:"main"},c),o):null},g=e=>{let{flavour:t,couponRemainingDays:n,onUpdateClick:o=i()}=e;const{daysRemaining:g,canUpgrade:p,trialEndsAt:E}=(0,c.A)(),{isEarlybirdAndCommunitySunset:h}=(0,s.A)(),b=(0,l.useMemo)((()=>({isCoupon:n>0,isEarlybirdAndCommunitySunset:h,isBanner:"banner"==t,isSidebar:"sidebar"==t,isBilling:"billing"==t,isFreePlanUpgrade:"freePlanUpgrade"==t})),[t,n]);return l.createElement(r.Flex,{justifyContent:b.isBilling?"start":"center",alignItems:"center",width:"100%",gap:2},b.isCoupon?l.createElement(r.Flex,{column:!0},l.createElement(r.Text,(0,a.A)({},d[t],{fontSize:"10px",strong:!0}),"POST BLACK FRIDAY OFFER"),l.createElement(m.Te,(0,a.A)({},d[t],{fontSize:"38px",lineHeight:.8,strong:!0}),"50% off")):b.isEarlybirdAndCommunitySunset?l.createElement(r.Flex,{column:!0,gap:1,alignItems:"center"},l.createElement(r.Text,(0,a.A)({},d[t],{textAlign:"center",strong:!0},b.isBanner?{}:{fontSize:"10px"}),"Thank you for your support!"," ",b.isBanner?l.createElement(u,{canUpgrade:p,onUpdateClick:o},"Upgrade"):null),l.createElement(r.Text,(0,a.A)({},d[t],{color:"primary",fontSize:"22px",lineHeight:.8,strong:!0}),"25% Lifetime off")):b.isFreePlanUpgrade?l.createElement(r.Text,d[t],"Upgrade your plan for unlimited access and Business features."):l.createElement(r.Text,d[t],"You have ",l.createElement(r.Text,(0,a.A)({strong:!0},d[t]),"".concat(g," days"))," ","left to explore all the features of Netdata Business."," ",b.isBilling&&l.createElement(l.Fragment,null,"Trial ends at"," ",l.createElement(r.Text,(0,a.A)({strong:!0},d[t]),E),"."," "),b.isBanner?l.createElement(u,{canUpgrade:p,onUpdateClick:o},"Consider upgrading for unlimited access."):l.createElement(l.Fragment,null,"Consider upgrading for unlimited access.")))}},24864:(e,t,n)=>{"use strict";n.d(t,{PL:()=>i,Te:()=>c,bg:()=>o});var a=n(8711),l=n(10058),r=n(35454);const o=(0,a.default)(l.Flex).attrs({position:"relative"}).withConfig({displayName:"styled__TrialWarningSidebar",componentId:"sc-66x250-0"})(["background-color:",";border-width:1px;border-style:dashed;border-color:",";border-radius:2px;"],(e=>{var t;let{type:n}=e;return(0,l.getColor)(null===(t=r.W1[n])||void 0===t?void 0:t.background)}),(e=>{var t;let{type:n}=e;return(0,l.getColor)(null===(t=r.W1[n])||void 0===t?void 0:t.border)})),i=(0,a.default)(l.Button).withConfig({displayName:"styled__TrialUpgradeButton",componentId:"sc-66x250-1"})(["flex:auto;"]),c=(0,a.default)(l.Text).attrs({strong:!0,lineHeight:.8}).withConfig({displayName:"styled__PromoText",componentId:"sc-66x250-2"})(["background-color:",";background-image:linear-gradient( 43deg,"," 0%,"," 46%,"," 100% );-webkit-background-clip:text;-webkit-text-fill-color:transparent;"],(0,l.getColor)("primary"),(0,l.getColor)(["blue","aquamarine"]),(0,l.getColor)(["purple","mauve"]),(0,l.getColor)("primary"))},66732:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(96540),l=n(63950),r=n.n(l),o=n(10058),i=n(50876);const c={default:"Or you can opt to downgrade immediately",billing:"Or you can opt to downgrade immediately"},s=e=>{let{flavour:t="default",onOptOutClick:n=r(),...l}=e;const{sendLog:s,isReady:m}=(0,i.A)(),d=(0,a.useCallback)((()=>{n(),s({feature:"TrialOptOut",isStart:!0})}),[m]);return a.createElement(o.Text,l,"After the trial, you'll automatically switch to the free Community plan."," ",a.createElement(o.Box,{"data-testid":"upgrade-to-business-banner",onClick:d,as:o.Text,cursor:"pointer",textDecoration:"underline",color:"primary"},c[t]),".")}},25624:(e,t,n)=>{"use strict";n.d(t,{A:()=>E});n(62953);var a=n(96540),l=n(46741),r=n(5668),o=n(22292),i=(n(8159),n(98992),n(37550),n(16074)),c=n(6593);var s=n(19673),m=n(50503),d=n(35454),u=n(42728),g=n(93155);const p=e=>{const t=new Date(e||void 0).toLocaleDateString();return"Invalid Date"!==t?t:null},E=()=>{const{loaded:e,value:t,refresh:n}=(0,s.JN)(),{isFailure:E}=(0,m.A)(),{slug:h,trialEndsAt:b}=t||{},f=(0,a.useMemo)((()=>(e=>{if(!e)return null;const t=new Date(e)-new Date;return Math.ceil(t/864e5)})(b)),[b]),v=e&&!!b,x=(0,l.JT)("billing:Manage"),[y]=(0,r.ng)("trialModalDismissed"),C=g.bO&&x&&(v||E)&&!localStorage.getItem(d.$B)&&!y,[w,A]=(0,a.useState)(localStorage.getItem(d.TB)),T=(0,a.useMemo)((()=>g.bO&&v),[v]),[S,I]=(0,a.useState)(),k=(F=f)>15?"default":F>5?"warning":"critical";var F;const P=!(0,o.uW)("isAnonymous")&&x;return(0,a.useEffect)((()=>{const e=((e,t,n,a)=>{if(t<0)return!1;const l=new Date(e||void 0);if(!(0,i.f)(l))return!1;const r=new Date(a||void 0);if(!(0,i.f)(r))return!0;const{days:o}=(0,c.F)({start:r,end:l}),s=o;return n.some((e=>e>=t&&e<s))})(b,f,d.ml,w);I(g.bO&&e)}),[b,f,w]),{trialWelcomeVisible:C,sidebarWarningVisible:T,bannerVisible:S,dismissBanner:()=>{const e=(new Date).toISOString();A(e),localStorage.setItem(d.TB,e)},daysRemaining:f,trialEndsAt:p(b),trialEndsAtRaw:b,type:k,canUpgrade:P,onTrial:v,refreshPlan:n,planIsFreeOrEarlyBird:(0,u.Kj)(h)}}},97118:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});var a=n(19673),l=n(42728);const r=()=>{var e;const{value:t}=(0,a.lU)();if(null===t||void 0===t||!t.free)return{};const n=Object.keys(t.free).sort(l.M7)[0];return{id:t.free[n]?null===(e=t.free[n][0])||void 0===e?void 0:e.id:null,version:n}}},78676:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Gl});var a=n(96540),l=n(47767),r=n(58168),o=(n(62953),n(39225)),i=n(45588),c=n(8711),s=n(10058),m=n(57375),d=n(15327),u=n(74618),g=n(79412),p=(n(41393),n(81454),n(46741)),E=n(14994),h=n(3914),b=n(87659),f=n(46440),v=n(33195);const x=[{id:"name",accessor:"name",header:"Name",cell:e=>{let{getValue:t,row:{original:{isMember:n}}}=e;const l=t(),r=(0,p.JT)("room:ReadAll");return a.createElement(s.Flex,{alignItems:"center"},r&&n&&a.createElement(f.A,{margin:[0,1,0,0]}),a.createElement(s.Text,{margin:r&&!n&&[0,0,0,4]},l))}},{id:"nodeCount",accessor:"nodeCount",header:"Nodes",cell:e=>{let{getValue:t}=e;return"".concat(t()||0)}},{id:"memberCount",accessor:"memberCount",header:()=>"Users",cell:e=>{let{getValue:t}=e;return"".concat(t()||0)}},{id:"silencing",accessorKey:"silencingState",header:"Silencing",cell:e=>{let{getValue:t}=e;return a.createElement(v.A,{flavour:"room",silencing:t()})}}];n(17333),n(9920),n(98992),n(54520),n(3949);var y=n(47444),C=n(24198),w=n(63129),A=n(69765),T=n(54308),S=n(56820);const I=e=>(0,y.Zs)((t=>{let{snapshot:n,set:a,reset:l}=t;return async function(t){let{onSuccess:r,onFail:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=await n.getPromise((0,E.$e)({id:e,key:"ids"})),c=t.map((e=>{let{id:t}=e;return t})),s=i.filter((e=>!c.includes(e)));a((0,E.$e)({id:e,key:"ids"}),s);const m=await Promise.all(s.map((e=>n.getPromise((0,A.LS)({id:e})))));try{if(await(async(e,t)=>Promise.all(t.map((t=>(0,w.HN)(e,t)))))(e,c),a(T.yz,(0,S.Pb)(m)),c.forEach((t=>a((0,E.Oy)(e),t))),t.forEach((t=>{let{id:n,slug:a}=t;l((0,A.LS)({id:n})),l((0,T.x4)([e,a]))})),r&&r(),t.length>1)(0,C.r0)("Rooms were successfully deleted from Space!");else{const[e]=t;(0,C.r0)("Room ".concat(e.name," was successfully deleted!"))}}catch(d){a((0,E.$e)({id:e,key:"ids"}),i),o&&o(d)}}}),[e]);var k=n(74564);const F=e=>{let{spaceId:t,spaceName:n,startIsCreating:r}=e;const o=I(t),i=(0,p.JT)("space:Delete"),c=(0,p.JT)("room:Create"),s=(e,t)=>{if(!e)return;const n=Array.isArray(e)?e.map((e=>{let{id:t,name:n}=e;return{id:t,name:n}})):[{id:e.id,name:e.name}];o(n,{onSuccess:t.resetRowSelection})},m=(e,t)=>{const n=t.length;if(!n)return"";return 1===n?(0,k.kI)(t[0].name):(0,k.kI)(n)},d=(e,t)=>{const l=t.length;if(!l)return"";const r={...1===l?{name:t[0].name}:{roomsLength:l},spaceName:n};return a.createElement(k.rj,r)},{pathname:u}=(0,l.zy)(),g=(0,h.bq)(),E=(0,l.Zp)(),b=(0,a.useCallback)((e=>E("".concat(u,"/").concat(e))),[u,E]),f=(0,a.useMemo)((()=>({goto:{handleAction:e=>{let{slug:t}=e;return b(t)},icon:"chevron_right",tooltipText:"Room settings"},addRule:{handleAction:e=>{const t={roomId:e.id};E("/spaces/".concat(g,"/settings/notifications#notificationsActiveTab=1&silencingRulePrefill=").concat(JSON.stringify(t)))},icon:"alarm_off",flavour:"hollow",neutral:!1,tooltipText:"Add new silencing rule",confirmation:!1},delete:{confirmLabel:"Yes, delete",confirmationMessage:e=>a.createElement(k.rj,{name:e.name,spaceName:n}),confirmationTitle:e=>(0,k.TU)(e.name),dataGa:e=>{let{slug:t}=e;return"manage-rooms::click-delete::".concat(t)},declineLabel:"Cancel",handleAction:s,isDisabled:e=>{let{untouchable:t}=e;return t||!i},tooltipText:"Delete room"}})),[i,b]);return{bulkActions:(0,a.useMemo)((()=>({addEntry:{dataGa:"manage-rooms::click::add-room",handleAction:r,isDisabled:!c,tooltipText:"Create room"},delete:{confirmationMessage:d,confirmationTitle:m,confirmLabel:"Yes, delete",dataGa:"manage-rooms::delete-bulk",declineLabel:"Cancel",handleAction:s,isDisabled:!i,tooltipText:"Delete rooms"}})),[c,i,d,m]),rowActions:f,onClickRow:b}},P=()=>{const e=(0,E.DL)(),t=(0,p.JT)("room:Delete"),n=e.map((e=>({...e,disabled:e.untouchable||!t}))),[l,r]=(0,a.useState)(""),o=(0,h.ap)("name"),i=(0,h.ap)("id"),[c,,s,m]=(0,b.A)(),[,d]=(0,a.useState)([]),{bulkActions:u,rowActions:g}=F({startIsCreating:s,spaceId:i,spaceName:o});return{roomList:n,globalFilter:l,spaceName:o,spaceId:i,isCreating:c,rowActions:g,bulkActions:u,columns:x,startIsCreating:s,stopIsCreating:m,setGlobalFilter:r,onRowSelected:d,dataGa:"manage-rooms"}};var M=n(63314);const D=e=>{const{roomList:t,spaceName:n,isCreating:l,columns:o,setGlobalFilter:i,stopIsCreating:c,onRowSelected:m,rowActions:d,bulkActions:u,dataGa:p}=P();return a.createElement(M.Ay,{tab:"Rooms"},a.createElement(s.Flex,(0,r.A)({column:!0,height:"100%",overflow:"hidden",gap:3},e),a.createElement(s.H3,null,"Rooms of ",n),a.createElement(s.Table,{onSearch:i,onRowSelected:m,enableSorting:!0,dataColumns:o,enableSelection:!0,data:t,bulkActions:u,rowActions:d,dataGa:p,testPrefixCallback:e=>e.name})),l&&a.createElement(g.n,{onClose:c}))};var N=n(67031),B=n(87860),R=n(29662),L=n(84280),_=n(86663),U=n(67990),O=n(47762);const V=()=>{const e=(0,U.CK)();return{nodes:(0,O.Gt)(e).map((e=>({...e,disabled:e.hasAccessibleData})))||[],nodeIds:e}};var H=n(60383);const W=(0,a.memo)((e=>{let{roomUntouchable:t,...n}=e;const{nodes:l,nodeIds:o}=V({roomUntouchable:t});return a.createElement(M.Ay,{tab:"Room::Nodes"},a.createElement(s.Flex,(0,r.A)({column:!0,height:"100%",overflow:"hidden",gap:3},n),a.createElement(s.H3,null,"Nodes in this room (",o.length,") "),a.createElement(H.A,{showClaimNodeOnEmptySpace:!0,enableSelection:!0,customNodes:l,roomUntouchable:t})))}));var j=n(45765),Y=n(46902),q=n(83488),z=n.n(q),J=n(66245),G=n.n(J),K=n(55463),Z=n(70716),$=n(96083);const Q=[{id:"user",accessorKey:"user",header:"Name",cell:e=>{let{cell:t}=e;const{avatarURL:n,name:l}=t.row.original;return a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement($.A,{src:n,title:l}),a.createElement(s.TextSmall,null,l))}},{id:"email",accessorKey:"email",header:"Email",cell:e=>{let{getValue:t}=e;return a.createElement(s.TextSmall,null,t())}}],X=[{id:"user",desc:!1}],ee=e=>{let{setSelected:t}=e;const n=(0,K.Gi)(),l=(0,Y.lb)(),r=(0,a.useMemo)((()=>G()(n,l)),[n,l]),o=(0,a.useCallback)((e=>{t(e.map((e=>e.id)))}),[]),i=(0,Z.Uv)(r);return a.createElement(s.Flex,{alignItems:"start",padding:[1],overflow:{horizontal:"hidden",vertical:"auto"}},a.createElement(s.Table,{dataColumns:Q,data:i,autoResetSelectedRows:!0,sortableBy:X,onSearch:z(),onRowSelected:o,enableSelection:!0,enableSorting:!0}))};var te=n(92155);const ne=(0,te.A)(s.Button),ae=e=>{let{onAdd:t,onClose:n,selected:l,error:r,name:o}=e;return a.createElement(s.Flex,{alignItems:"center",justifyContent:"between"},r?a.createElement(s.Text,{color:"error"},"Select at least 1 user to add to ",o):a.createElement("div",null),a.createElement(s.Flex,{gap:2},a.createElement(s.Button,{neutral:!0,flavour:"hollow",onClick:n,label:"Cancel"}),a.createElement(ne,{disabled:!l.length,label:"Add ".concat(l.length," members"),onClick:t})))};var le=n(27287),re=n(84707),oe=n(49032),ie=n(77181),ce=n(13871),se=n(78217),me=n(71835),de=n(69756),ue=n(4659),ge=n(36850);const pe=e=>{let{email:t}=e;return(0,oe.B9)(t)},Ee={header:"Invitations",text:"Invitations successfully sent!"},he=e=>{const{id:t,slug:n}=(0,h.ap)(),l=(0,A.ID)(),o=(0,A.wz)(l,"name"),[i,c]=(0,a.useState)([]),[,,m,d]=(0,ie.g)(t),[,u]=(0,me.A)(),[g,E]=(0,a.useState)(),[b,f]=(0,a.useState)(),v=e=>{const{header:t,text:n}=e||Ee,a=(0,ce.UI)({header:t,text:n,success:!0});se.A.success(a,{context:"manageInvitations"}),c([]),E(Math.random())},x=(0,a.useCallback)((()=>{const e=i.filter(pe).map((e=>({email:e.email,name:e.name,role:b,roomIDs:[l]}))),t="".concat(window.location.origin,"/spaces/").concat(n,"/join-space");m(e,t,{onSuccess:v,onError:u})}),[i,l,b]),y=(0,p._s)();return a.createElement(s.Flex,(0,r.A)({column:!0},e),a.createElement(s.H4,null,"Send invitations to ",o," room"),a.createElement(le.BZ,null,"TIP: You can send more invitations at once, separate each with a comma."),a.createElement(re.y,{key:g,invitations:i,setInvitations:c}),a.createElement(s.H5,{margin:[4,0,0]},"Role"),a.createElement(le.BZ,null,"Choose a role for invited user."," ",a.createElement(ue.A,{href:ge.S,target:"_blank",rel:"noopener noreferrer",Component:s.TextSmall},"Learn more")),a.createElement(de.A,{availableRoles:y,dataGA:"invite-to-room",dataTestId:"invite-selectRole",onChange:e=>{f(e.target.value)},value:b}),a.createElement(s.Box,{alignSelf:"end",margin:[4,0,0]},a.createElement(s.Button,{label:"Send",onClick:x,disabled:0===i.length||!b,flavour:"hollow",isLoading:d})))},be=e=>{let{onClose:t,room:n}=e;const[l,r]=(0,a.useState)([]),[o,i]=(0,a.useState)(!1),c=(0,Y.n)(n.spaceId,n.id),m=(0,a.useCallback)((()=>{if(!l.length)return i(!0);i(!1),c(l),t()}),[l,c]);return a.createElement(d.GO,{onClose:t},a.createElement(u.z,{onClose:t,isSubmodal:!0,title:a.createElement(a.Fragment,null,"Manage room",a.createElement(s.TextBig,{color:"textLite"},"\xa0/ Add Users"))}),a.createElement(j.U,null,"Add users to room\xa0",n.name),a.createElement(d.Yv,null,a.createElement(he,{margin:[0,0,4]}),a.createElement(s.Flex,{column:!0,flex:!0,overflow:"hidden",padding:[0,0,2,0]},a.createElement(ee,{setSelected:r})),a.createElement(ae,{onClose:t,onAdd:m,selected:l,error:o,name:n.name})))};var fe=n(97245),ve=n(22292);const xe=e=>"Remove ".concat(e),ye=e=>{let{name:t,usersLength:n}=e;return n?1===n&&t?xe(t):"Remove ".concat(a=n," ").concat(1===a?"user":"users"):"";var a},Ce=e=>{let{name:t,roomName:n}=e;return a.createElement(a.Fragment,null,"You are about to remove ",a.createElement("strong",null,t)," from room ",a.createElement("strong",null,n),".",a.createElement("br",null),"Are you sure you want to continue?")},we=e=>{let{roomName:t,usersLength:n}=e;const l="".concat(n,1===n?" user":" users");return a.createElement(a.Fragment,null,"You are about to remove ",a.createElement("strong",null,l)," from room ",a.createElement("strong",null,t),".",a.createElement("br",null),"Are you sure you want to continue?")},Ae=e=>{let{name:t,roomName:n,usersLength:l}=e;return l?1===l&&t?a.createElement(Ce,{name:t,roomName:n}):a.createElement(we,{roomName:n,usersLength:l}):""};var Te=n(50876);const Se=e=>{let{spaceId:t,roomId:n,startIsInviting:l,canRemoveUser:r,untouchable:o}=e;const i=(0,Y.zC)(t,n),c=(0,A.XA)("name"),{sendButtonClickedLog:s,isReady:m}=(0,Te.A)(),d=e=>{if(!e)return;const t=Array.isArray(e)?e.map((e=>{let{user:t}=e;return t.id})):[null===e||void 0===e?void 0:e.user.id];i(t)},u=(0,a.useCallback)((()=>{l(),m&&s({label:"Invite users"},!0)}),[m,s]);return{rowActions:(0,a.useMemo)((()=>({remove:{confirmLabel:"Yes, remove",confirmationMessage:e=>a.createElement(Ce,{name:e.name,roomName:c}),confirmationTitle:e=>xe(e.name),declineLabel:"Cancel",disabledTooltipText:e=>o?"It's not allowed to remove users from this room. Try removing them from the space.":e.isSelf?"You cannot remove yourself. Click the leave button on the room tab.":r?"Remove is disabled":"You don't have the required permissions to remove users from this room",handleAction:d,isDisabled:e=>e.disabled,tooltipText:"Remove user from room"}})),[xe,d,Ce,c]),bulkActions:(0,a.useMemo)((()=>({addEntry:{handleAction:u,tooltipText:"Invite users"},remove:{confirmLabel:"Yes, remove",confirmationMessage:(e,t)=>a.createElement(Ae,{name:t[0].name,roomName:c,usersLength:t.length}),confirmationTitle:(e,t)=>ye({name:t[0].name,usersLength:t.length}),declineLabel:"Cancel",disabledTooltipText:e=>o?"It's not allowed to remove users from this room. Try removing them from the space.":e.length?r?"Remove is disabled":"You don't have the required permissions to remove users from this room":"You haven't selected any users",handleAction:d,tooltipText:"Remove users from room"}})),[d,Ae,c,l,ye])}},Ie=e=>{let{untouchable:t}=e;const n=(0,a.useMemo)((()=>[{id:"name",accessor:"name",header:"Name",cell:e=>{let{getValue:t}=e;return"".concat(t())}},{id:"user",accessor:"user",header:"Users",cell:e=>{let{getValue:t}=e;const{name:n,avatarURL:l,email:r}=t();return a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement($.A,{src:l,title:"".concat(n," - ").concat(r||"email not set")}),a.createElement(s.TextSmall,null,n))}},{id:"email",accessor:"email",header:"Email",width:300,align:"center",cell:e=>{let{getValue:t}=e;return a.createElement(s.TextSmall,null,t())}}]),[]),l=(0,Y.di)(),r=(0,ve.uW)("id"),o=(0,p.JT)("space:RemoveUser"),[i,c]=(0,a.useState)([]),[m,d]=(0,a.useState)(""),[u,,g,E]=(0,b.A)(),f=(0,h.ap)("id"),v=(0,A.ID)(),{rowActions:x,bulkActions:y}=Se({selectedRows:i,spaceId:f,roomId:v,startIsInviting:g,canRemoveUser:o,untouchable:t});return{columns:n,data:(0,a.useMemo)((()=>(0,fe.L)({data:l,currentUserId:r,canRemoveUser:o,untouchable:t})),[l]),columnVisibility:{name:!1},members:l,rowActions:x,bulkActions:y,isInviting:u,globalFilter:m,stopIsInviting:E,onRowSelected:c,setGlobalFilter:d,canRemoveUser:o}},ke=e=>{let{room:t,...n}=e;const{untouchable:l}=t,{columns:o,data:i,columnVisibility:c,members:m,rowActions:d,bulkActions:u,isInviting:g,stopIsInviting:p,onRowSelected:E,setGlobalFilter:h,canRemoveUser:b}=Ie({untouchable:l});return a.createElement(M.Ay,{tab:"Room::User"},a.createElement(s.Flex,(0,r.A)({column:!0,height:"100%",overflow:"hidden",gap:3},n),a.createElement(s.H3,null,"Users in this room (",m.length,")"),a.createElement(s.Table,{enableSelection:!0,enableSorting:!0,columnVisibility:c,data:i,dataColumns:o,rowActions:d,bulkActions:u,onRowSelected:E,onSearch:h,testPrefixCallback:e=>e.name}),g&&a.createElement(be,{onClose:p,room:t})))},Fe={room:0,nodes:1,users:2},Pe=(0,c.default)(s.Box).attrs({height:"100%",padding:[4,0],flex:"1",overflow:"hidden"}).withConfig({displayName:"manageRoomModal__TabContent",componentId:"sc-lrxs0y-0"})([""]),Me=()=>{const e=(0,l.Zp)(),t=(0,h.vt)(),{roomSlug:n,spaceSlug:r,settingsTab:o}=(0,l.g)(),c=(0,A.J_)(t,n);(0,B.A)({spaceId:t,id:c,polling:!1}),(0,R.A)(t,c);const m=(0,p.JT)("room:ReadUsers"),d=(0,A.wz)(c),[u,g]=(0,a.useState)(d.name),{search:E}=(0,l.zy)(),{tab:b="room"}=_.parse(E),f=Fe[b],[v,x]=(0,a.useState)(f),[y,C,w]=(0,s.useInputValue)({maxChars:255,value:d.description}),T=(0,a.useCallback)((()=>{e((0,i.tW)(L.bq,{spaceSlug:r,settingsTab:o}))}),[r,o]),S=(0,A.a8)(d.id,{shouldPersist:!0,onSuccess:T}),I=(0,a.useCallback)((()=>S({name:u,description:y})),[u,y,S]);return a.createElement(s.Flex,{column:!0,justifyContent:"between",overflow:"hidden","data-testid":"manageRoom",flex:"1",height:"100%"},a.createElement(s.Tabs,{"data-testid":"manageRoom-tabs",selected:v,onChange:x,TabContent:Pe,height:"100%",position:"relative",overflow:"hidden",width:"100%"},a.createElement(s.Tab,{"data-testid":"manageRoom-roomTab",label:a.createElement(s.H5,null,"Room")},a.createElement(N.U,{roomName:u,setRoomName:g,roomDescription:y,setRoomDescription:C,charsDescIndicator:w,"data-testid":"manageRoom-roomTabContent",id:d.id,navigateToParent:T,onSaveClick:I})),a.createElement(s.Tab,{"data-testid":"manageRoom-nodesTab",label:a.createElement(s.H5,null,"Nodes")},a.createElement(W,{roomUntouchable:d.untouchable,"data-testid":"manageRoom-nodesTabContent"})),m&&a.createElement(s.Tab,{"data-testid":"manageRoom-usersTab",label:a.createElement(s.H5,null,"Users")},a.createElement(ke,{"data-testid":"manageRoom-usersTabContent",room:d}))),v===Fe.room&&a.createElement(s.Flex,{justifyContent:"end"}))};var De=n(97054);const Ne=e=>{let{children:t}=e;return(0,De.TP)(),t},Be=e=>{let{children:t}=e;return(0,A.XA)().loaded?t:null},Re=()=>a.createElement(l.BV,null,a.createElement(l.qh,{path:"/",element:a.createElement(D,null)}),a.createElement(l.qh,{path:":roomSlug",element:a.createElement(Ne,null,a.createElement(Be,null,a.createElement(Me,null)))}));var Le=n(6323),_e=n(80158),Ue=n(29217);const Oe=[{id:"name",accessor:"name",header:"Name",cell:e=>{let{getValue:t}=e;return"".concat(t())}},{id:"user",accessor:"user",width:300,header:"Users",cell:e=>{let{getValue:t}=e;const{name:n,avatarURL:l,email:r}=t();return a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement($.A,{src:l,title:"".concat(n," - ").concat(r||"email not set")}),a.createElement(s.TextSmall,null,n))}},{id:"email",accessor:"email",header:"Email",width:300,align:"center",cell:e=>{let{getValue:t}=e;return a.createElement(s.TextSmall,null,t())}},{id:"type",accessor:"type",header:"Role",width:100,align:"center",cell:e=>{let{getValue:t,row:{original:{user:{deactivated:n}}}}=e;return a.createElement(s.Flex,{alignItems:"center",gap:1},a.createElement(s.TextSmall,{strong:!0},(0,_e.Zr)(t())),n&&a.createElement(Ue.A,{content:"This user's role doesn't have permission to access any information on the Space. Please review user's role or space's plan."},a.createElement(s.Icon,{name:"warning_triangle",height:"18px",width:"18px",color:["yellow","amber"]})))}}];n(14905),n(8872);var Ve=n(54702),He=n(12800),We=n(5169),je=n(66294);const Ye=e=>{const t=(0,We.t)();return(0,y.Zs)((n=>{let{snapshot:a,set:l}=n;return async function(n){let{onSuccess:r,onError:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=await a.getPromise((0,K.kd)({id:e,key:"ids"})),c=i.filter((e=>!e.includes(n)));l((0,K.kd)({id:e,key:"ids"}),c);try{await(0,Ve.XY)(e,n),(async e=>{let{cacheKeyPrefix:t,memberIds:n,spaceId:a}=e;const l="".concat(t).concat((0,je.$)(a));await(0,He.y)({key:l,handleResults:e=>e.results.filter((e=>!n.includes(e.id)))})})({cacheKeyPrefix:t,spaceId:e,memberIds:n}),r&&r()}catch(s){l((0,K.kd)({id:e,key:"ids"}),i),o&&o()}}}),[e])},qe=e=>(0,y.Zs)((t=>{let{snapshot:n,set:a}=t;return async function(t,l){let{onSuccess:r,onError:o}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=await n.getPromise((0,Z.Z6)(t)),c=await Promise.all(t.map((async t=>({mId:t,role:await n.getPromise((0,K.K2)({id:t,spaceId:e}))})))),{role:s,...m}=l;t.forEach((e=>{a((0,Z.m)({id:e}),(e=>({...e,...m})))})),s&&t.forEach((t=>{a((0,K.K2)({id:t,spaceId:e}),s)}));try{await(async(e,t,n)=>Promise.all(t.map((async t=>await(0,Ve.w5)(e,t,n)))))(e,t,l),r&&r()}catch(d){i.forEach((e=>{let{id:t,...n}=e;return a((0,Z.m)({id:t}),{id:t,...n})})),s&&c.forEach((t=>{let{mId:n,role:l}=t;return a((0,K.K2)({id:n,spaceId:e}),l)})),o&&o()}}}),[e]),ze="change-user-role",Je="changeUserRole",Ge=e=>{let{handleAction:t,ids:n,onClose:l}=e;const r=(0,K.$D)(n),o=1===r.length?r[0]:null,i=(0,p._s)(),[c,m]=(0,a.useState)(o);return a.createElement(s.ConfirmationDialog,{confirmLabel:"Save","data-ga":ze,"data-testid":Je,handleConfirm:()=>{t(c),l()},handleDecline:l,isConfirmDisabled:!c,isConfirmPositive:!0,message:a.createElement(s.Flex,{gap:2,column:!0},a.createElement(s.TextSmall,null,"Learn more about Netdata role-based access model on"," ",a.createElement(ue.A,{href:ge.S,target:"_blank",rel:"noopener noreferrer",Component:s.TextSmall},"our documentation")),a.createElement(de.A,{availableRoles:i,dataGA:ze,dataTestId:Je,onChange:e=>{m(e.target.value)},value:c})),title:"Change roles"})};var Ke=n(29848);const Ze=e=>{let{spaceId:t,startIsInviting:n}=e;const l=Ye(t),o=qe(t),i=(0,p.JT)("space:InviteUser"),c=(0,Ke.ly)(),s=(0,a.useCallback)((e=>{let{role:t,members:n}=e;o(n,{role:t},{onSuccess:c})}),[]),m=e=>t=>{if(!e)return;const n=Array.isArray(e)?e.map((e=>{let{user:t}=e;return t.id})):[null===e||void 0===e?void 0:e.user.id];s({role:t,members:n})},d=(e,t)=>{if(!e)return;const n=Array.isArray(e)?e.map((e=>{let{user:t}=e;return t.id})):[null===e||void 0===e?void 0:e.user.id];l(n,{onSuccess:t.resetRowSelection})},u=(0,a.useCallback)((e=>a.createElement(a.Fragment,null,"You are about to delete ",a.createElement("strong",null,e.name),".",a.createElement("br",null),"Are you sure you want to continue?")),[]),g=(0,a.useCallback)(((e,t)=>{const n=t.length;return n?1===n?"Delete User":"Delete Users":""}),[]),E=(0,a.useCallback)(((e,t)=>{const n=t.length;return n?a.createElement(a.Fragment,null,"You are about to delete"," ",a.createElement("strong",null,1===n?t[0].name:"".concat(t.length," users")),".",a.createElement("br",null),"Are you sure you want to continue?"):""}),[]);return{rowActions:(0,a.useMemo)((()=>({userSettings:{CustomUIAction:e=>{let{data:t,...n}=e;return a.createElement(Ge,(0,r.A)({ids:[t.user.id]},n))},handleAction:m,tooltipText:"Change Role",isDisabled:e=>e.disabled,disabledTooltipText:e=>e.isSelf?"You cannot change your role":"You don't have the required permissions to change roles for users"},delete:{handleAction:d,confirmationTitle:"Delete User",confirmationMessage:u,isDisabled:e=>e.disabled,disabledTooltipText:e=>e.isSelf?"You cannot delete yourself. Try the space info tab, to leave space.":"You don't have the required permissions to remove users from space"}})),[]),bulkActions:(0,a.useMemo)((()=>({addEntry:{handleAction:n,tooltipText:"Invite user",isDisabled:()=>!i,disabledTooltipText:"You don't have the required permissions to invite new users"},userSettings:{CustomUIAction:e=>{let{data:t,...n}=e;return a.createElement(Ge,(0,r.A)({ids:t.map((e=>{let{user:t}=e;return t.id}))},n))},handleAction:m,tooltipText:"Change Roles",disabledTooltipText:e=>null!==e&&void 0!==e&&e.length?"You don't have the required permissions to change roles for users":"You haven't selected any users"},delete:{handleAction:d,confirmationTitle:g,confirmationMessage:E,disabledTooltipText:e=>null!==e&&void 0!==e&&e.length?"You don't have the required permissions to remove users from space":"You haven't selected any users"}})),[i,g,E])}},$e=()=>{const e=(0,h.vt)(),t=(0,h.ns)(e,"name"),n=(0,K.bj)(),l=(0,ve.uW)("id"),[r,,o,i]=(0,b.A)(),[c,s]=(0,a.useState)(""),[m,d]=(0,a.useState)([]),{rowActions:u,bulkActions:g}=Ze({selectedRows:m,spaceId:e,startIsInviting:o}),E=(0,p.JT)("space:RemoveUser"),f=(0,p.JT)("user:ChangeRoles"),v=(0,p.Ge)(),x=E||f,y=(0,a.useMemo)((()=>(e=>{let{fromRolePermissions:t,userList:n,canModifyUser:a,currentUserId:l}=e;return n.reduce(((e,n)=>{const r=l===(null===n||void 0===n?void 0:n.id),o=t.includes(n.role);return e.push({name:n.name,email:n.email,user:{avatarURL:n.avatarURL,deactivated:n.deactivated,name:n.name,email:n.email,id:n.id},type:n.role,disabled:!o||!a||r,isSelf:r,canModifyUser:a,canSetRole:o}),e}),[])})({userList:n,currentUserId:l,canModifyUser:x,fromRolePermissions:v})),[n]);return{columns:Oe,spaceName:t,members:n,currentUserId:l,data:y,isInviting:r,globalFilter:c,rowActions:u,bulkActions:g,columnVisibility:{name:!1},onRowSelected:d,setGlobalFilter:s,startIsInviting:o,stopIsInviting:i,canModifyUser:x}},Qe=e=>{const{columns:t,spaceName:n,data:l,isInviting:o,rowActions:i,bulkActions:c,columnVisibility:m,stopIsInviting:d,setGlobalFilter:u,onRowSelected:g}=$e();return a.createElement(M.Ay,{tab:"Users"},a.createElement(s.Flex,(0,r.A)({column:!0,height:"100%",overflow:"hidden"},e),a.createElement(s.H3,null,"Members of ",n),a.createElement(s.TextSmall,{margin:[1,0,3]},"Learn more about Netdata role-based access model on"," ",a.createElement(ue.A,{href:ge.S,target:"_blank",rel:"noopener noreferrer",Component:s.TextSmall},"our documentation")),a.createElement(s.Table,{onSearch:u,data:l,dataColumns:t,enableSorting:!0,enableSelection:!0,onRowSelected:g,bulkActions:c,rowActions:i,columnVisibility:m,testPrefixCallback:e=>e.name})),o&&a.createElement(Le.d,{onClose:d,isSubmodal:!0}))};var Xe=n(63502),et=n(47193);const tt=(0,a.memo)((e=>{const t=(0,h.vt)(),n=(0,h.ap)("name"),{nodes:l}=(0,et.A)();(0,Xe.A)(t);const o="Connect Nodes to ".concat(n);return a.createElement(M.Ay,{tab:"Nodes"},a.createElement(s.Flex,(0,r.A)({column:!0,"data-testid":"manageClaimedNodes",height:"100%",overflow:"hidden",gap:3},e),a.createElement(s.H3,{"data-testid":"manageClaimedNodes-header"},o),a.createElement(H.A,{showClaimNodeOnEmptySpace:!0,showClaimModalWithRoomSelection:!0,enableSelection:!0,customNodes:l,isSpace:!0})))})),nt=tt;var at=n(54961),lt=n(26770),rt=n(71856);const ot=e=>{let{name:t,spaceName:n}=e;return a.createElement(a.Fragment,null,"You are about to delete ",a.createElement("strong",null,t)," channel from ",a.createElement("strong",null,n)," space.",a.createElement("br",null),"This cannot be undone. Are you sure you want to continue?")};var it=n(30960),ct=(n(8159),n(37550),n(63450));const st=e=>{let{integration:t={},testId:n,...l}=e;const o=l.checked?"disable":"enable";return a.createElement(s.Toggle,(0,r.A)({colored:!0,"data-testid":"".concat(n,"-toggle"),"data-ga":"manage-channels::toggle-".concat(t.slug,"-").concat(o,"::notifications-tab")},l))},mt=e=>{let{testId:t,tooltipContent:n="plan",...l}=e;return l.disabled?a.createElement(Ue.A,{align:"top",content:rt.r7[n],"data-testid":"".concat(t,"-warning"),plain:!0},a.createElement(s.Flex,{padding:[2,2,0,0],position:"relative"},a.createElement(ct.id,{"data-testid":"".concat(t,"-warningIcon")}),a.createElement(st,(0,r.A)({testId:t},l)))):a.createElement(st,(0,r.A)({testId:t},l))},dt=e=>{let{"data-testid":t="cellName",enabled:n,id:l,integration:o,isAvailable:i,name:c,spaceId:m,tooltipContent:d,...u}=e;const g=(0,lt.t5)(m,"channels"),p=(0,lt.vq)(m,"channels");return a.createElement(s.Flex,(0,r.A)({alignItems:"center","data-testid":t,gap:4},u),a.createElement(mt,{checked:n,disabled:!i,integration:o,onChange:e=>{let{target:t}=e;const n=t.checked;p(g.map((e=>e.id===l?{...e,enabled:n}:e))),(0,at.Jq)(m,l,n)},testId:t,tooltipContent:d}),a.createElement(s.Text,{"data-testid":"".concat(t,"-label")},c))},ut=e=>{var t;let{"data-testid":n="cellService",integration:l={},kindLabel:o,...i}=e;const c=rt.a$[l.slug]||{};return a.createElement(s.Flex,(0,r.A)({alignItems:"center","data-testid":n,gap:2,justifyContent:"between",width:"100%"},i),a.createElement(s.Flex,{alignItems:"center","data-testid":"".concat(n,"-integration"),gap:2},a.createElement(s.Icon,(0,r.A)({"data-testid":"".concat(n,"-icon")},c)),a.createElement(s.Text,{"data-testid":"".concat(n,"-label")},l.title)),a.createElement(Ue.A,{content:o,"data-testid":"".concat(n,"-kind"),plain:!0},a.createElement(s.Icon,{color:"textLite",height:"16px",name:null===(t=rt.HA[l.kind])||void 0===t?void 0:t.icon,width:"16px"})))},gt=e=>{let{canManageChannels:t,roomOptions:n,spaceId:l}=e;return[{accessor:"name",cell:e=>{let{getValue:n,row:r}=e;return a.createElement(dt,{enabled:r.original.enabled,id:r.original.id,integration:r.original.integration,isAvailable:t&&r.original.available,name:n(),spaceId:l,tooltipContent:t?"plan":"role"})},header:"Name",id:"name"},{accessor:"integration",cell:e=>{let{getValue:t,row:n}=e;return a.createElement(ut,{integration:t(),kindLabel:n.original.kindLabel})},enableColumnFilter:!0,filterFn:(e,t,n)=>{const a=e.original.integration;return n.length<1||n.some((e=>{let{value:t}=e;return""===t||t===(null===a||void 0===a?void 0:a.slug)}))},header:"Service",id:"integration",meta:{filter:{component:"select",isMulti:!0,options:Object.keys(rt.a$).map((e=>({label:e,value:e}))),tiny:!0,"data-ga":"manage-integrations::select-service::notification-integrations-tab"},tooltip:a.createElement(s.Flex,{column:!0,width:{max:"200px"},gap:2},a.createElement(s.TextMicro,null,"Services are distinguished in two categories."),a.createElement(s.TextMicro,null,a.createElement(ct.Jg,{name:rt.HA.PERSONAL.icon})," ",a.createElement(s.TextMicro,{strong:!0},"Personal:")," ",rt.HA.PERSONAL.tooltip),a.createElement(s.TextMicro,null,a.createElement(ct.Jg,{name:rt.HA.SYSTEM.icon})," ",a.createElement(s.TextMicro,{strong:!0},"System:")," ",rt.HA.SYSTEM.tooltip))}},{accessor:"notificationLabel",cell:e=>{let{getValue:t}=e;return a.createElement(s.Text,{"data-testid":"channelNotificationsCell"},t())},enableColumnFilter:!0,filterFn:(e,t,n)=>{const a=e.original.notificationLabel;return n.length<1||n.some((e=>{let{label:t}=e;return""===t||t===a}))},header:"Notifications",id:"notificationLabel",meta:{filter:{component:"select",isMulti:!0,options:Object.values(rt.w8),tiny:!0,"data-ga":"manage-integrations::select-notification::notification-integrations-tab"}}},{accessor:"rooms",cell:e=>{var t;let{getValue:l,row:r}=e;const o={"data-testid":"channelRoomsCell"};if(r.original.internal)return a.createElement(s.Text,o,rt.Oh.label);if(!(r.original.rooms||null!==(t=r.original.rooms)&&void 0!==t&&t.length))return a.createElement(s.Text,o,rt.PT.label);const i=(0,it.Pl)({roomIds:l(),roomOptions:n});return a.createElement(s.Text,{"data-testid":"channelRoomsCell"},i)},enableColumnFilter:!0,filterFn:(e,t,n)=>n.length<1||n.some((t=>{let{label:n,value:a}=t;if(e.original.internal)return n===rt.Oh.label;const l=e.original.rooms||[];return l.length?l.includes(a):n===rt.PT.label})),header:"Rooms",id:"rooms",meta:{filter:{component:"select",isMulti:!0,options:n,tiny:!0,"data-ga":"manage-integrations::select-room::notification-integrations-tab"}}}]};var pt=n(58159),Et=n(18061),ht=n(88982);const bt=(e,t)=>{const n=(0,lt.ef)(t),a=(0,ht.A)({all:!0});(0,Et.A)((()=>({enabled:!!t,fetch:()=>(0,at.t9)(e,t),onFail:e=>n({...pt.V,error:e.message}),onSettle:()=>n({loading:!1,loaded:!0}),onSuccess:e=>n({...pt.V,...e.rooms?{roomSelections:a.filter((t=>{let{value:n}=t;return e.rooms.includes(n)}))}:{},...e})})),[e,t])};var ft=n(79769);const vt=["MobileApp","Email"],xt=()=>{const e=(0,l.Zp)(),t=(0,p.JT)("channel:Manage"),n=(0,h.vt)(),r=(0,h.ap)("name"),o=(0,h.bq)(),[c,s]=(0,me.A)(),[m,d]=(0,a.useState)(""),u=(0,lt.bY)();(0,ft.A)(n);const g=(0,lt.t5)(n,"channels"),E=(0,lt.t5)(n,"currentChannelId"),b=(0,lt.vq)(n,"channels"),f=(0,lt.vq)(n,"currentChannelId"),v=(0,ht.A)({all:!0,internal:!0}),{alerts:x,name:y,rooms:C,secrets:w}=(0,lt.g4)(E);bt(n,E);const A=(0,a.useCallback)((e=>{f(e)}),[]),T=(0,a.useCallback)((async e=>{let{id:t}=e;try{await(0,at.Wb)(n,t),b(g.filter((e=>e.id!==t))),c({header:"Configuration deleted successfully!"})}catch(a){s(a)}}),[g,n]),S=(0,a.useCallback)((()=>{e((0,i.tW)(L.uX,{spaceSlug:o,settingsTab:L.A8,settingsSubTab:L.G0}))}),[o]),I=(0,a.useMemo)((()=>({addEntry:{dataGa:"manage-channels::click-add-channel::notifications-tab",flavour:"hollow",handleAction:S,iconColor:"success",label:t?"Add Configuration":"View configurations",small:!0,strong:!0,width:"auto",...t?{}:{icon:""}}})),[t,S]),k=(0,a.useCallback)((e=>{e&&u({id:e})}),[u]),F=(0,a.useMemo)((()=>({testNotification:{handleAction:e=>{let{id:t}=e;k(t)},icon:"notificationTrigger",confirmation:!1,tooltipText:"Test your notification settings",disabledTooltipText:"You cannot test this notification",isDisabled:e=>{let{slug:t}=e;return vt.includes(t)}},edit:{dataGa:e=>{let{integration:t={}}=e;return"manage-rooms::click-edit::".concat(t.slug)},disabledTooltipText:"Edit is disabled",handleAction:e=>{let{id:t}=e;A(t)},isDisabled:e=>{let{available:n,internal:a}=e;return!t||!n||a},TooltipComponent:Ue.A,tooltipText:"Edit setting"},delete:{confirmLabel:"Yes, delete",confirmationMessage:e=>{let{integration:t={}}=e;return a.createElement(ot,{name:t.name,spaceName:r})},confirmationTitle:e=>{let{name:t}=e;return(0,it.O5)(t)},dataGa:e=>{let{integration:t={}}=e;return"manage-rooms::click-delete::".concat(t.slug)},declineLabel:"Cancel",handleAction:T,isDisabled:e=>{let{integration:n={}}=e;return!t||n.internal},TooltipComponent:Ue.A,tooltipText:"Delete setting"}})),[t,T,S]);return{bulkActions:I,channelData:g,currentChannelId:E,columns:gt({canManageChannels:t,roomOptions:v,spaceId:n}),dataGa:"manage-channels",onFilter:(e,t,n)=>{const a=e.original,l=n.toLowerCase();if(a.name.toLowerCase().includes(l))return!0;if(a.integration.slug.toLowerCase().includes(l))return!0;if(a.notificationLabel.toLowerCase().includes(l))return!0;if(a.internal)return rt.Oh.label.toLowerCase().includes(l);const r=a.rooms||[];if(!r.length)return rt.PT.label.toLowerCase().includes(l);return(0,it.Pl)({roomIds:r,roomOptions:v}).toLowerCase().includes(l)},onModalClose:()=>{b(g.map((e=>e.id===E?{...e,alerts:x,name:y,rooms:C,secrets:w}:e))),f("")},rowActions:F,search:m,setSearch:d}};n(74648),n(23215);var yt=n(54518),Ct=n(47130);const wt=(0,te.A)((0,Ct.A)(s.Button)),At="modal",Tt=e=>{let{id:t="new",integrationId:n,onClose:r,isSubmitEnabled:o}=e;const{alarms:c,name:s,rooms:m,slug:d,integration:u,secrets:g}=(0,lt.g4)(t),p=(0,Ke.ly)(),E=(0,l.Zp)(),[b,f]=(0,me.A)(),v=(0,h.vt)(),x=(0,h.bq)(),y=(0,lt.bY)(),C=(0,a.useCallback)((()=>{(d||u)&&y({slug:d||u,secrets:g})}),[d,g,y]),w=(0,i.tW)(L.bq,{spaceSlug:x,settingsTab:L.A8});return a.createElement(ct.fn,{column:!1,gap:2,"data-testid":"".concat(At,"-footer"),justifyContent:"end"},a.createElement(wt,{feature:"IntegrationNotification",integrationId:n,label:"Test",flavour:"hollow",onClick:C,disabled:!o,tooltipProps:{content:"Test your notification settings",align:"bottom"}}),a.createElement(wt,{feature:"IntegrationNotification",integrationId:n,"data-testid":"".concat(At,"-confirmButton"),disabled:!o,label:"OK",onClick:async()=>{try{const e={alarms:c,integrationID:n,...s?{name:s}:{},...null!==m&&void 0!==m&&m.length?{Rooms:m}:{},secrets:g};"new"===t?await(0,at.Qb)(v,e):await(0,at.eQ)(v,t,e),b({header:"new"===t?"Configuration created successfully!":"Configuration updated successfully!"}),p(),r(),E(w)}catch(e){f(e)}},textTransform:"uppercase",tooltipProps:{content:"Save your settings",align:"bottom"}}))},St="modal",It=e=>{let{id:t="new",integrationId:n,onClose:l,...o}=e;const{alarms:i,title:c,description:m,docsLink:d,fields:u,integration:g,loaded:p,name:h,required:b,roomSelections:f,secrets:v}=(0,lt.g4)(t),x=e=>"manage-".concat(g,"-channel::").concat(e,"::notification-").concat(n?"integrations":"channels","-tab"),y=(0,ht.A)({all:!0}),C=(0,E.DL)(),w=(0,lt.ef)(t,"alarms"),A=(0,lt.ef)(t,"name"),T=(0,lt.ef)(t,"roomSelections"),S=(0,lt.ef)(t,"secrets"),I=(0,lt.ef)(t,"rooms"),[k,F]=(0,a.useState)({});if(!p)return null;const P=Object.keys(k),M=b.every((e=>(0,it.ct)(e,v[e],u[e]))),D=!P.length||P.every((e=>{const t=v[e].selection;return k[e].every((n=>(0,it.ct)(n,v[e][n],u[e].fields[t][n])))})),N=i&&M&&D;return a.createElement(s.Modal,{onEsc:l},a.createElement(ct.$m,{"data-testid":o["data-testid"]||St},a.createElement(s.ModalHeader,{border:{side:"bottom",color:"disabled"},column:!0,"data-testid":"".concat(St,"-header"),gap:.5,padding:[6,4,3]},a.createElement(s.Flex,{alignItems:"center","data-testid":"".concat(St,"-headerMain")},a.createElement(s.Flex,{"data-testid":"".concat(St,"-titleContainer"),gap:1},a.createElement(s.Icon,(0,r.A)({"data-testid":"".concat(St,"-titleIcon")},rt.a$[g]||{})),a.createElement(s.H3,{"data-testid":"".concat(St,"-title")},c)),l&&a.createElement(ct.Oj,{"data-ga":x("close-modal"),"data-testid":"".concat(St,"-close"),onClose:l})),a.createElement(s.TextSmall,{as:s.Box,"data-testid":"".concat(St,"-description")},m,"\xa0",a.createElement(ue.A,{Component:s.TextSmall,"data-ga":x("click-docs"),"data-testid":"".concat(St,"-docsLink"),href:d,target:"_blank",whiteSpace:"nowrap"},"Learn how to configure it."))),a.createElement(s.ModalBody,{"data-testid":"".concat(St,"-body"),overflow:{vertical:"auto"},padding:[0]},a.createElement(ct.fn,{gap:2,"data-testid":"".concat(St,"-standardFields"),hasBorder:!0},a.createElement(s.Text,{"data-testid":"".concat(St,"-standardFields-header")},"Notification settings"),a.createElement(s.Flex,{column:!0,"data-testid":"".concat(St,"-standardFields-body"),gap:3},a.createElement(yt.A,{component:"input","data-ga":x("configuration-name-input"),"data-testid":"".concat(St,"-configurationName"),onChange:A,placeholder:"i.e All alerts from All nodes",title:"Configuration name",value:h}),a.createElement(yt.A,{component:"select","data-ga":x("rooms-select"),"data-testid":"".concat(St,"-rooms"),isMulti:!0,onChange:e=>{var t;if(1===C.length)return;if(0===e.length)return I([]),void T([]);if(e.length===C.length||null===(t=e[e.length-1])||void 0===t||!t.value)return I([]),void T([rt.PT]);const n=e.map((e=>{let{value:t}=e;return t})).filter(Boolean),a=e.length>1?e.filter((e=>e.value)):e;I(n),T(a)},options:y,placeholder:"Select rooms",title:"Rooms",value:f}),a.createElement(yt.A,{component:"select","data-ga":x("notification-select"),"data-testid":"".concat(St,"-notifications"),isRequired:!0,onChange:e=>{let{value:t}=e;w(t)},options:Object.values(rt.N4),placeholder:"Select notifications",title:"Notifications",value:rt.N4[i]}))),a.createElement(ct.fn,{gap:2,"data-testid":"".concat(St,"-dynamicFields"),hasBorder:!0},a.createElement(s.Text,{"data-testid":"".concat(St,"-dynamicFields-header")},"Integration configuration"),a.createElement(s.Flex,{column:!0,"data-testid":"".concat(St,"-dynamicFields-body"),gap:3},Object.values(u).map((e=>{let{id:t,getValue:n,onChange:l,...o}=e;return a.createElement(yt.A,(0,r.A)({"data-ga":x("".concat(t,"-").concat(o.component)),"data-testid":"".concat(St,"-").concat(t),getDataGa:x,key:t,id:t,onChange:null===l||void 0===l?void 0:l({id:t,setRequiredSubsets:F,setSecrets:S}),secrets:v,setSecrets:S,value:null===n||void 0===n?void 0:n({id:t,secrets:v})},o))}))))),a.createElement(Tt,{id:t,integrationId:n,onClose:l,isSubmitEnabled:N})))},kt=e=>{let{"data-testid":t="channelList",...n}=e;const{bulkActions:l,channelData:o,currentChannelId:i,columns:c,dataGa:m,onFilter:d,onModalClose:u,rowActions:g,search:p,setSearch:E}=xt();return a.createElement(M.Ay,{tab:"Notifications::Channels"},a.createElement(s.Flex,(0,r.A)({column:!0,"data-testid":t,gap:4,height:"100%",width:"100%",margin:[3,0]},n),a.createElement(s.Table,{bulkActions:l,data:o,dataColumns:c,dataGa:m,globalFilter:p,globalFilterFn:d,onSearch:E,rowActions:g,testPrefix:"channelList",testPrefixCallback:e=>e.name}),!!i&&a.createElement(It,{"data-testid":"editChannelModal",id:i,onClose:u})))},Ft=0;var Pt=n(38819);const Mt=(0,o.A)((()=>n.e(5304).then(n.bind(n,25304))),"SilencingRules"),Dt={side:"top",type:"solid",size:"1px",color:"border"},Nt=()=>{const{notificationsActiveTab:e=Ft}=(0,Pt.PP)(),t=(0,a.useCallback)((e=>{const t=(0,Pt.PP)();(0,Pt.Z8)({...t,notificationsActiveTab:e})}),[]);return a.createElement(a.Fragment,null,a.createElement(s.Flex,{padding:[0,0,0,4]},a.createElement(s.H3,null,"Alerts & Notifications")),a.createElement(s.Tabs,{selected:parseInt(e,10),onChange:t,height:"calc(100% - 44px)",margin:[4,0,0,0]},a.createElement(s.Tab,{"data-testid":"spaceSettings-notifications-methods-tab","data-ga":"manage-space::click-tab::notifications-methods-tab",label:a.createElement(s.Text,null,"Notification Methods")},a.createElement(s.Flex,{padding:[2,4],border:Dt,flex:"grow"},a.createElement(kt,null))),a.createElement(s.Tab,{"data-testid":"spaceSettings-notifications-silencing-rules-tab","data-ga":"manage-space::click-tab::notifications-silencing-rules-tab",label:a.createElement(s.Text,null,"Notification Silencing Rules")},a.createElement(s.Flex,{border:Dt,flex:"grow"},a.createElement(a.Suspense,null,a.createElement(Mt,null))))))};var Bt=n(84976),Rt=n(28738),Lt=n(26751),_t=n(54856);const Ut=e=>{let{available:t,"data-testid":n="card",description:l,docsLink:o,fields:i,id:c,internal:m,kind:d,kindLabel:u,slug:g,required:E,title:h,...f}=e;const v=rt.a$[g]||{},x=(0,lt.Mw)("new"),y=(0,lt.ef)("new"),C=(0,p.JT)("channel:Manage"),[w,,A,T]=(0,b.A)(!1),S=(0,a.useCallback)((()=>{y({...pt.V,title:h,description:l,docsLink:o,fields:i,integration:g,loading:!1,loaded:!0,required:E,secrets:(0,it.s7)(i,E)}),A()}),[l,o,i,g,E]);return a.createElement(a.Fragment,null,a.createElement(s.Flex,(0,r.A)({background:"elementBackground",column:!0,"data-testid":n,justifyContent:"between",flex:!1,height:37,padding:[3,2,2,3],margin:[0,0,4,0],position:"relative",overflow:"hidden",round:.5,width:75},f),a.createElement(ct.MU,(0,r.A)({"data-testid":"".concat(n,"-blurredIcon")},v)),a.createElement(s.Flex,{column:!0,"data-testid":"".concat(n,"-details"),gap:3,margin:[0,0,3,0]},a.createElement(s.Flex,{"data-testid":"".concat(n,"-header"),justifyContent:"between"},a.createElement(s.Flex,{alignItems:"center","data-testid":"".concat(n,"-titleContainer"),gap:1},a.createElement(s.Icon,(0,r.A)({"data-testid":"".concat(n,"-icon")},v)),a.createElement(s.Text,{"data-testid":"".concat(n,"-title")},h)),!m&&t&&a.createElement(Ue.A,{align:"bottom",content:C?"":rt.WB,plain:!0},a.createElement(s.Box,null,a.createElement(ct.ro,{"data-ga":"manage-integration-".concat(g,"::click-add::notification-integrations-tab"),"data-testid":"".concat(n,"-button"),disabled:!C,label:"Add",onClick:S}))),!m&&!t&&a.createElement(_t.A,{"data-ga":"manage-integration-".concat(g,"::click-plan-badge::notification-integrations-tab")})),a.createElement(s.TextSmall,{color:"textDescription","data-testid":"".concat(n,"-description")},l," ",o&&a.createElement(ue.A,{Component:ct.W6,"data-ga":"manage-integration-".concat(g,"::click-docs::notification-integrations-tab"),"data-testid":"".concat(n,"-docsLink"),href:o,target:"_blank",whiteSpace:"nowrap"},"Learn more."))),a.createElement(Ue.A,{align:"top",content:rt.HA[d].tooltip,"data-testid":"".concat(n,"-kindContainer"),plain:!0},a.createElement(s.Flex,{alignItems:"end",alignSelf:"end","data-testid":"".concat(n,"-kindContainer"),gap:1},a.createElement(s.Icon,{color:"textLite","data-testid":"".concat(n,"-kindIcon"),height:"16px",name:rt.HA[d].icon,width:"16px"}),a.createElement(s.TextSmall,{color:"textLite","data-testid":"".concat(n,"-kind")},u)))),w&&a.createElement(It,{"data-testid":"createChannelModal",integrationId:c,onClose:()=>{T(),x()}}))},Ot=e=>{let{"data-testid":t="group",integrations:n,title:l,...o}=e;return n.length?a.createElement(s.Flex,(0,r.A)({column:!0,"data-testid":t,gap:2,position:"relative"},o),a.createElement(s.TextBig,{color:"textDescription","data-testid":"".concat(t,"-title")},l),a.createElement(s.Flex,{flexWrap:!0,"data-testid":"".concat(t,"-integrations"),gap:4},n.map((e=>a.createElement(Ut,(0,r.A)({"data-testid":"".concat(e.slug,"Card"),key:e.slug},e)))))):null};var Vt=n(73743);const Ht=e=>{const t=(0,lt.EE)(e);(0,Et.A)((()=>({enabled:!!e,fetch:()=>(0,at.b8)(e),onFail:e=>t({...Vt.u,error:e.message}),onSettle:()=>t({loading:!1,loaded:!0}),onSuccess:e=>{t({...Vt.u,...e})}})),[e])},Wt=e=>{let{"data-testid":t="integrations",...n}=e;const l=(0,h.vt)(),o=(0,h.bq)();Ht(l);const{available:c,error:m,loaded:d,unavailable:u}=(0,lt.m$)(l),[g,p]=(0,a.useState)([]),[E,b]=(0,a.useState)([]),[f,v]=(0,a.useState)("");if(!d)return a.createElement(Rt.A,{"data-testid":"".concat(t,"-loader"),title:"Loading services..."});if(m)return a.createElement(Lt.A,{"data-testid":"".concat(t,"-error"),message:m,title:"Services of ".concat(o," are currently unavailable")});const x=(0,i.tW)(L.bq,{spaceSlug:o,settingsTab:L.A8});return a.createElement(M.Ay,{tab:"Notifications::Integrations"},a.createElement(s.Flex,(0,r.A)({column:!0,"data-testid":t},n,{padding:[0,3,3],gap:3,overflow:"hidden"}),a.createElement(s.Flex,{border:{side:"bottom",color:"placeholder"},"data-testid":"".concat(t,"-header"),width:"100%"},a.createElement(ue.A,{as:Bt.N_,Component:ct.He,"data-ga":"manage-integrations::click-back::notification-integrations-tab","data-testid":"".concat(t,"-backLink"),to:x},a.createElement(s.Icon,{"data-testid":"".concat(t,"-backIcon"),name:"arrow_left"}),a.createElement(s.H3,{"data-testid":"".concat(t,"-title")},L.ys[L.G0]))),a.createElement(s.Flex,{column:!0,"data-testid":"".concat(t,"-content"),gap:2,height:"100%",overflow:"hidden"},a.createElement(s.Box,{as:s.SearchInput,"data-ga":"manage-integrations::search::notification-integrations-tab","data-testid":"".concat(t,"-search"),iconLeft:a.createElement(s.Icon,{name:"magnify",color:"textLite"}),onChange:e=>{v(e),p((0,it.Zv)(c,e)),b((0,it.Zv)(u,e))},placeholder:"Search service",size:"small",width:{max:49.5}}),a.createElement(s.Flex,{column:!0,"data-testid":"".concat(t,"-groups"),overflow:"auto",height:"100%"},a.createElement(Ot,{"data-testid":"integrationGroupAvailable",integrations:f?g:c,title:"Available"}),a.createElement(Ot,{"data-testid":"integrationGroupUnavailable",integrations:f?E:u,title:"Unavailable"})))))},jt=()=>a.createElement(l.BV,null,a.createElement(l.qh,{path:"/",element:a.createElement(Nt,null)}),a.createElement(l.qh,{path:"/".concat(L.G0),element:a.createElement(Wt,null)}));var Yt=n(55189),qt=n(37618);const zt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[(0,s.useInputValue)({maxChars:20,value:e.name||""})||{},(0,s.useInputValue)({maxChars:30,value:e.slug||""})||{},(0,s.useInputValue)({maxChars:50,value:e.description||""})||{}]};var Jt=n(39522),Gt=n(47373),Kt=n(53285),Zt=n(7484),$t=n(61360);const Qt={loading:!1,isAvailable:!1,isValid:!0,error:null},Xt=e=>{const t=(0,h.ap)(),[n,l]=(0,a.useState)(Qt);return(0,a.useEffect)((()=>{if(t.slug==e)l(Qt);else{const t=(0,Gt.ni)(e);l({...Qt,isValid:!1,error:t})}}),[t.slug,e]),(0,$t.A)((()=>{(0,Gt.ni)(e)||t.slug==e||(l((e=>({...e,loading:!0}))),(0,Zt.Q9)(e).then((e=>{let{data:t}=e;l((e=>({...e,loading:!1,error:t.isAvailable?e.error:"slugNotAvailable"})))})).catch((e=>{l((t=>{var n;return{...t,loading:!1,error:(null===(n=e.response)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.errorMessage)||"Error while validating slug"}}))})))}),500,[e]),n},en=e=>{let{nameInput:t,slugInput:n,descriptionInput:l,onStartSlugValidation:o,onStopSlugValidation:i,onSlugValidationError:c,...m}=e;const[d,u,g,p]=t,[E,h,b,f]=n,[v,x,y,C]=l,{loading:w,error:A}=Xt(E);(0,a.useEffect)((()=>{(w?o:i)()}),[w]),(0,a.useEffect)((()=>{c(A)}),[A]);const T=(0,a.useMemo)((()=>(0,Gt.fc)(d)),[d]),S=(0,a.useMemo)((()=>(0,Gt.e_)(v)),[v]);return a.createElement(s.Flex,(0,r.A)({column:!0,gap:4},m),a.createElement(Kt.A,{Component:s.TextInput,permission:"space:UpdateMeta",label:"Name",value:d,onChange:u,error:Gt.xc[T],isDirty:p,instantFeedback:"all",fieldIndicator:g,"data-testid":"textInputs-spaceName",containerStyles:{width:{base:150}}}),a.createElement(Kt.A,{Component:s.TextInput,permission:"space:UpdateMeta",label:"Slug",value:E,onChange:h,error:Gt.xc[A]||A,isDirty:f,instantFeedback:"all",fieldIndicator:b,"data-testid":"textInputs-spaceSlug",containerStyles:{width:{base:150}}}),a.createElement(Kt.A,{Component:s.TextInput,permission:"space:UpdateMeta",label:"Description",value:v,onChange:x,error:Gt.xc[S],isDirty:C,instantFeedback:"all",fieldIndicator:y,"data-testid":"textInputs-spaceDescription",containerStyles:{width:{base:150}}}))};var tn=n(87292);const nn=e=>{let{id:t,...n}=e;return a.createElement(s.Flex,(0,r.A)({column:!0,gap:1},n),a.createElement(s.Text,{strong:!0},"Space Id"),a.createElement(tn.Ay,{confirmationText:"Space ID copied to your clipboard."},t))};var an=n(83694);const ln=()=>a.createElement(s.Text,{lineHeight:1.5},"With the change of the Space Slug, previous ",a.createElement(s.Text,{strong:!0},"links will be broken"),". In case you have some bookmarks or previous references using the previous Space Slug you should update them where possible. Please confirm you want to proceed with the change."),rn=e=>{let{handleConfirm:t,handleDecline:n}=e;return a.createElement(s.ConfirmationDialog,{confirmLabel:"Continue","data-testid":"changeSpaceSlugDialog",handleConfirm:t,handleDecline:n,message:a.createElement(ln,null),title:"Space slug change"})};var on=n(98046);const cn=(0,te.A)(s.Button),sn=e=>{let{nameInput:t,slugInput:n,descriptionInput:l,onClose:o,isValidatingSlug:i,slugError:c,...s}=e;const m=(0,h.ap)(),d=(0,on.A)(m.id),[u,g]=(0,a.useState)(!1),[p]=t,[E]=n,[f]=l,v=(0,a.useMemo)((()=>m.slug!==E),[m.slug,E]),[x,,y,C]=(0,b.A)(),w=()=>{o(v?E:null),g(!1)},A=()=>g(!1),T=(0,a.useCallback)((e=>{!e&&v?y():(g(!0),d({name:p,description:f,...v?{slug:E}:{}},{onSuccess:w,onFail:A}))}),[p,E,f,m.slug]),S=(0,a.useCallback)((()=>T(!0)),[T]),I=(0,a.useMemo)((()=>{const e=(0,Gt.fc)(p),t=(0,Gt.e_)(f);return!!(u||i||e||c||t)||m.name===p&&m.slug===E&&(m.description===f||!m.description&&!f)}),[m,p,E,f,u,i]);return a.createElement(a.Fragment,null,a.createElement(cn,(0,r.A)({label:"SAVE",onClick:T,isLoading:u||i,disabled:I,"data-testid":"saveSpace-button",feature:"SpaceSettings"},s)),x?a.createElement(rn,{handleConfirm:S,handleDecline:C}):null)},mn=(0,a.memo)((e=>{let{onClose:t,...n}=e;const l=(0,h.ap)(),o=(0,h.UV)("ids"),[i,,c,m]=(0,b.A)(),[d,,u,g]=(0,b.A)(),[p,E]=(0,a.useState)(),[f,v,x]=zt({name:l.name,slug:l.slug,description:l.description});if(!l.id)return null;const y=1===o.filter((e=>!(0,qt.ES)(e))).length;return a.createElement(M.Ay,{tab:"Info"},a.createElement(s.Flex,(0,r.A)({column:!0,"data-testid":"manageSpace",flex:"grow",justifyContent:"between",padding:[0,0,6,0],width:{max:150}},n),a.createElement(s.Flex,{column:!0,"data-testid":"manageSpace-settings"},a.createElement(s.H3,{margin:[0,0,4,0]},"Info"),a.createElement(s.Flex,{column:!0,gap:4},a.createElement(en,{"data-testid":"manageSpace-nameInputs",nameInput:f,slugInput:v,descriptionInput:x,onStartSlugValidation:u,onStopSlugValidation:g,onSlugValidationError:E}),a.createElement(nn,{"data-testid":"manageSpace-spaceIdInput",id:l.id,width:{base:150}}),a.createElement(s.TextInput,{label:"Your role in space",value:(0,_e.Zr)(l.roleInSpace),disabled:!0,containerStyles:{width:{base:150}}}),a.createElement(s.TextInput,{label:"Plan",value:(0,_e.Vn)(l.planName),disabled:!0,containerStyles:{width:{base:150}}}))),a.createElement(s.Flex,{"data-testid":"manageSpace-actions",justifyContent:"between",alignItems:"center"},a.createElement(s.Flex,{"data-testid":"manageSpace-deleteLeaveActions",gap:4},a.createElement(Ue.A,{align:"top",content:y&&Yt.sh.leave,isBasic:!0,stretch:"align"},a.createElement(s.Flex,{alignItems:"center"},a.createElement(s.Button,{"data-ga":"manage-space-tab::click-leave-space::manage-space-modal","data-testid":"manageSpace-leave",disabled:y,icon:"switch_off",flavour:"borderless",label:"Leave space",neutral:!0,padding:[0],width:"fit-content",onClick:c}))),a.createElement(an.A,{"data-testid":"manageSpace-delete",id:l.id,isLastSpace:y,name:l.name,onClose:t})),a.createElement(sn,{"data-testid":"manageSpace-save",nameInput:f,slugInput:v,descriptionInput:x,onClose:t,isValidatingSlug:d,slugError:p}))),i&&a.createElement(Jt.A,{id:l.id,name:l.name,onClose:m}))}),(()=>!0));var dn=n(62232);const un=()=>{const e=(0,l.Zp)(),t=(0,h.vt)(),n=(0,l.RQ)(L.uX),r=(0,l.RQ)(L.bq),{params:o}=n||r||{},{spaceSlug:c="",settingsTab:s="",settingsSubTab:m=""}=o,d=(0,h.ap)("name"),u=(0,A.J_)(t,m),g=(0,A.wz)(u,"name"),p=L.ys[s],E=(0,a.useCallback)((()=>{e((0,i.tW)(L.bq,{spaceSlug:c,settingsTab:s}))}),[c,s]),b=(0,a.useMemo)((()=>{const e=[{name:"Manage Space",isDisabled:!0},{name:d,isDisabled:!0},{name:p,...!!m&&{onClick:E}}];return m&&e.push({name:p===L.ys[L.aj]?g:L.ys[m]||m}),e}),[E,g,d,p,m]);return a.createElement(dn.A,{isBig:!0,items:b,showBackButton:!1,testid:"manageSpace"})};var gn=n(47731),pn=n(19673),En=(n(9391),n(67742));const hn=e=>a.createElement(s.Box,(0,r.A)({as:"hr",height:"100%",sx:{borderWidth:"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}},e)),bn=()=>a.createElement(hn,{height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}});var fn=n(42728);const vn=e=>{let{currentPlan:t,billingEmail:n,paymentMethod:l,businessName:r,vatNo:o,billingAddress:i}=e;const[c,m]=(0,pn.Qh)(),d=!!t.billingEmail&&!m,u=n||"",g=u?"":"Email is required",p=null!==l&&void 0!==l&&l.id?"**** ".concat(null===l||void 0===l?void 0:l.id):"",E=p?"":"Payment method is required",h=i?"":"Billing address is required";return a.createElement(s.Flex,{column:!0,gap:3},a.createElement(s.Flex,{gap:4},a.createElement(s.TextInput,{value:u,label:"Billing email",placeholder:"Not specified",instantFeedback:"all",isDirty:!!g,error:g,disabled:!0}),a.createElement(s.TextInput,{value:p,label:"Default payment method",placeholder:"Not specified",instantFeedback:"all",isDirty:!!E,error:E,disabled:!0})),o&&a.createElement(s.Flex,{gap:4},a.createElement(s.TextInput,{value:r||"",label:"Business name",placeholder:"Not specified",disabled:!0}),a.createElement(s.TextInput,{value:o,label:"VAT number",placeholder:"Not specified",disabled:!0})),a.createElement(s.Flex,null,a.createElement(s.TextInput,{value:(0,fn.qN)(i)||"",label:"Billing address",placeholder:"Not specified",isDirty:!!h,error:h,disabled:!0})),a.createElement(ue.A,{Component:s.Flex,cursor:d?"pointer":"default",disabled:!d,onClick:c,alignItems:"center",gap:1,"data-ga":"billing-options::click::billing"},a.createElement("span",null,"Change billing information and payment method"),a.createElement(s.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"})))},xn=e=>{let{onReset:t}=e;return a.createElement(s.Box,{as:s.Icon,name:"close_circle",onClick:t,cursor:"pointer",width:3,height:3,color:"border",position:"absolute",left:"2px"})},yn=e=>{let{promotionCode:t,onReset:n}=e;return a.createElement(s.Flex,{width:"100%"},a.createElement(s.Pill,{padding:[0],flavour:"neutral",hollow:!0},a.createElement(s.Flex,{position:"relative",gap:2,alignItems:"center",padding:[1,2,1,5]},a.createElement(xn,{onReset:n}),a.createElement(s.Text,null,t))))},Cn=e=>{let{promotionCode:t,onApply:n,error:l}=e;const[r,o]=(0,a.useState)(t||""),i=()=>{o(""),n("")};return a.createElement(s.Flex,{column:!0,gap:1},a.createElement(s.Text,{strong:!0},"Promotion code"),t&&!l?a.createElement(yn,{promotionCode:t,onReset:i}):a.createElement(s.Flex,{column:!0,gap:1},a.createElement(s.Flex,{gap:2,alignItems:"baseline"},a.createElement(s.TextInput,{value:r,onChange:e=>o(e.target.value),placeholder:"Promotion code"}),!l&&a.createElement(s.Button,{label:"Apply",onClick:()=>n(r),padding:[3,4],disabled:!r}),!!r&&a.createElement(s.Button,{label:"Clear",flavour:"hollow",onClick:i,padding:[3,4],disabled:!r})),l&&a.createElement(s.Text,{color:"error"},l)))},wn=e=>{let{needsCommitment:t,commitment:n,handleCommitmentChange:l}=e;return t&&a.createElement(s.Flex,{column:!0,gap:2},a.createElement(s.Flex,{gap:4,alignItems:"baseline"},a.createElement(s.Text,{strong:!0,style:{whiteSpace:"nowrap"}},"Committed Nodes"),a.createElement(s.TextInput,{onChange:l,value:n,placeholder:"i.e. 14",type:"number",min:1})),a.createElement(s.TextSmall,null,"Nodes that you'll have a discount of 25% on the original cost per node of the plan. This amount will be part of your annual prepayment."))};var An=n(63950),Tn=n.n(An),Sn=n(27994);const In={earlyBird:()=>a.createElement(s.Text,null,"You are moving from ",a.createElement(s.Text,{strong:!0},"Early Bird")," plan to another plan, you won't be able to come back to this. The ",a.createElement(s.Text,{strong:!0},"Community")," free plan will be there if you wish to cancel but this doesn't allow you to invite or change users using the Member role."),communityV1:e=>{let{onCtaClick:t=Tn()}=e;const{url:n}=(0,Sn.A)();return a.createElement(s.Text,null,"You are moving from ",a.createElement(s.Text,{strong:!0},"Community (2023.02)")," plan to another plan, you won't be able to come back to this. The new ",a.createElement(s.Text,{strong:!0},"Community (2023.11)")," free plan will be there if you wish to cancel but this will have new limitation: max of 5 nodes active and max of 1 custom dashboard. See full details on the"," ",a.createElement(ue.A,{as:Bt.N_,onClick:t,to:n,disabled:!n},a.createElement(s.Text,{color:"primary"},"View plans page")),".")},pro:()=>a.createElement(s.Text,null,"You are moving from ",a.createElement(s.Text,{strong:!0},"Pro")," plan to another plan by yourself, if you proceed we won't be able to migrate you to the Business plan with your current pricing conditions as communicated.")},kn=e=>{let{currentPlan:t,...n}=e;const l=In[(e=>"earlyBird"==e.slug?"earlyBird":"free"==e.slug&&"2023.02"==e.version?"communityV1":"pro"==e.slug?"pro":null)(t)]||null;return l&&a.createElement(a.Fragment,null,a.createElement(hn,{height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),a.createElement(s.Flex,{gap:3},a.createElement(s.Icon,{size:"large",color:"warning",name:"warning_triangle"}),a.createElement(l,n)))},Fn=e=>"earlyBird"===(null===e||void 0===e?void 0:e.slug)?"earlyBird":e&&e.slug&&"free"!==e.slug?"".concat(e.slug,"-").concat(e.interval):"free",Pn=c.default.div.withConfig({displayName:"withTableWrapper__TableWrapper",componentId:"sc-drcfxi-0"})(["margin-top:30px;"]),Mn=e=>t=>a.createElement(Pn,null,a.createElement(e,t)),Dn=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}),Nn={size:50,minSize:50,maxSize:100},Bn=e=>()=>a.createElement(s.Flex,{width:"100%",justifyContent:"end"},e),Rn=e=>{let{getValue:t}=e;return a.createElement(s.Flex,{width:"100%",justifyContent:"end"},t())},Ln=[{id:"name",accessor:"name",header:"",...Nn,fullWidth:!0},{id:"price",accessor:"price",header:Bn("Price"),cell:Rn,...Nn},{id:"qty",accessor:"qty",header:Bn("Qty"),cell:Rn,...Nn},{id:"month",accessor:"month",header:Bn("Month"),cell:Rn,...Nn},{id:"total",accessor:"total",header:Bn("Total"),cell:Rn,...Nn}],_n=e=>a.createElement(s.Flex,(0,r.A)({gap:3},e),a.createElement(s.Icon,{size:"large",color:"warning",name:"warning_triangle"}),a.createElement(s.Text,null,"No immediate charges are applicable to this plan subscription. On-demand usage charges will be applied based on your node period count.")),Un=Mn(s.Table),On=e=>{let{needsCommitment:t,price:n,spaceTotal:l,commitment:r,currentCommitment:o,onlyCommitment:i,balance:c,nodesTotal:m,zeroSubscriptionTotal:d,checkoutIsDisabled:u,discount:g=0}=e;const p=parseFloat(m+l),E=parseFloat(p*g),h=parseFloat(p-E),b=(0,fn.S_)(r,n.pricing.primary.amountPerNode,i?0:n.pricing.primary.amountFlat,c.amount,o,E);return a.createElement(a.Fragment,null,d?u?null:a.createElement(_n,null):a.createElement(a.Fragment,null,t&&a.createElement(a.Fragment,null,a.createElement(s.Flex,{justifyContent:"between"},a.createElement(s.Text,null,"Subscription Total"),a.createElement(s.Text,null,Dn.format(p))),!!g&&a.createElement(s.Flex,{justifyContent:"between"},a.createElement(s.Text,{color:"primary"},"Promo discount (",100*g,"%)"),a.createElement(s.Text,{color:"primary"},"- ",Dn.format(E)))),a.createElement(s.Flex,{justifyContent:"between"},a.createElement(s.Text,null,"Total"),a.createElement(s.Text,null,Dn.format(h))),!!c.amount&&a.createElement(s.Flex,{justifyContent:"between"},a.createElement(s.Text,null,"Credit amount"),a.createElement(s.Text,null,"- ",Dn.format(b))),a.createElement(bn,null),a.createElement(s.Flex,null,a.createElement(s.TextMicro,null,"Additional taxes may be applicable"))),a.createElement(s.Flex,{justifyContent:"between"},a.createElement(s.H0,{strong:!0},"Total payable"),a.createElement(s.H0,{strong:!0,"data-testid":"totalPayableAmountCheckout"},Dn.format((0,fn.Lm)(o,r,n.pricing.primary.amountPerNode,i?0:n.pricing.primary.amountFlat,b,E)))))},Vn=e=>{let{price:t,needsCommitment:n,currentCommitment:l,onlyCommitment:r,balance:o,spaceTotal:i,amountPerNodePerMonth:c,amountPerSpacePerMonth:s,commitment:m,nodesTotal:d,months:u,checkoutIsDisabled:g,discount:p=0}=e;const E=(0,a.useMemo)((()=>0==parseFloat(d+i)),[d,i]),h=(0,a.useMemo)((()=>{const e=!isNaN(i)&&i>0?{id:"space",name:"Space",price:Dn.format(s),qty:1,month:u,total:Dn.format(i)}:null;if(!n)return[e];return[isNaN(d)?null:{id:"nodes",name:"Nodes",price:Dn.format(c),qty:m||0,month:u,total:Dn.format(d)},e].filter(Boolean)}),[n,s,i,d,u]);return a.createElement(a.Fragment,null,!E&&a.createElement(a.Fragment,null,a.createElement(Un,{dataColumns:Ln,data:h}),a.createElement(bn,null)),a.createElement(On,{needsCommitment:n,price:t,spaceTotal:i,commitment:m,currentCommitment:l,onlyCommitment:r,balance:o,nodesTotal:d,zeroSubscriptionTotal:E,checkoutIsDisabled:g,discount:p}))},Hn=Mn(s.Table),Wn=e=>{let{lineItems:t}=e;return a.createElement(a.Fragment,null,t.map((e=>{var t;const n=(l=e).description?l.description.startsWith("Discount")?{color:"primary"}:l.description.startsWith("VAT")?{color:"textLite"}:{}:{};var l;const r=e.isInfo?s.TextSmall:s.Text;return a.createElement(s.Flex,{key:e.description,justifyContent:"between"},a.createElement(r,n,e.description),a.createElement(r,n,Dn.format(null===(t=e.total)||void 0===t?void 0:t.amount)))})))},jn=(Yn=e=>{let{lineItems:t}=e;return a.createElement(s.Flex,{justifyContent:"between",margin:[4,0,0,0]},a.createElement(s.H0,{strong:!0},"Total payable"),a.createElement(s.H0,{strong:!0,"data-testid":"totalPayableAmountPreview"},Dn.format(t.totalPayable.total.amount)))},e=>{var t;return e.lineItems.totalPayable?null!==(t=e.lineItems.info)&&void 0!==t&&t.length?a.createElement(s.Flex,{column:!0,gap:1},a.createElement(Yn,e),a.createElement(Wn,{lineItems:e.lineItems.info})):a.createElement(Yn,e):null});var Yn;const qn=e=>{let{previewData:t,lineItems:n,agree:l,toggleAgree:r,zeroPreviewSubscriptionTotal:o}=e;const i=!(null===t||void 0===t||!t.paymentMethod)&&!(null===t||void 0===t||!t.billingAddress);return a.createElement(a.Fragment,null,a.createElement(bn,null),o&&a.createElement(_n,{padding:[0,0,2,0]}),a.createElement(s.Flex,{gap:3},a.createElement(s.Checkbox,{checked:l,onChange:r,disabled:!i}),a.createElement(s.Text,null,"I agree to Netdata Inc's"," ",a.createElement(ue.A,{href:"https://www.netdata.cloud/service-terms/",rel:"noopener noreferrer",target:"_blank"},"Terms of Service")," ","and"," ",a.createElement(ue.A,{href:"https://netdata.cloud/privacy",rel:"noopener noreferer",target:"_blank"},"Privacy Policy"))),a.createElement(jn,{lineItems:n}))},zn=e=>{let{lineItems:t}=e;return a.createElement(a.Fragment,null,a.createElement(Hn,{dataColumns:Ln,data:t.table}),a.createElement(bn,null),a.createElement(Wn,{lineItems:t.footer}))};var Jn=n(34641),Gn=n(25624);const Kn=e=>{let{title:t,onConfirm:n,onClose:l}=e;const{sendButtonClickedLog:r,isReady:o}=(0,Te.A)(),{onTrial:i}=(0,Gn.A)(),c=(0,a.useCallback)((()=>{n(),l(),r({description:"confirm-billing-plan-change"},!0)}),[r,o]),m=(0,a.useCallback)((()=>{l(),r({description:"close-billing-plan-change-confirmation-dialog"},!0)}),[r,o]),d="Community"==t,u=d?"Cancellation":"Downgrading";return i?a.createElement(Jn.A,{onDecline:m}):a.createElement(s.ConfirmationDialog,{confirmLabel:"Yes","data-ga":"downgrade-dialog","data-testid":"downgradeDialog",handleConfirm:c,handleDecline:m,message:a.createElement(s.Flex,{column:!0,gap:2},a.createElement(s.Text,null,"Are you sure you want to ",a.createElement(s.Text,{strong:!0},"move to the ",t," plan")," and cancel your current plan?"),d&&a.createElement(s.Text,null,"Upon cancellation,"," ",a.createElement(s.Text,{strong:!0},"a credit of the value related to the unused period will be credited to your Netdata account.")," ","The credit will be available for you to use on future plan subscriptions with us."),a.createElement(s.Text,null,"For the next 24 hours, you will be able to use all your current notification method configurations."," ",a.createElement(s.Text,{strong:!0},"After 24 hours, any of the notification method configurations that aren't available on your space's plan will be automatically disabled.")),a.createElement(s.Text,null,u," might affect your Space users. Please check what roles are available on the"," ",a.createElement(ue.A,{href:"https://learn.netdata.cloud/docs/nightly/concepts/netdata-plans#areas-impacted-by-plans",rel:"noopener noreferrer",strong:!0,target:"_blank"},t," plan"),"."," ",a.createElement(s.Text,{strong:!0},"Users with unavailable roles on the ",t," plan will immediately have restricted access to the Space.")),a.createElement(s.Text,null,"Do you wish to proceed?")),title:"Go to ".concat(t," plan?")})};var Zn=n(88116);const $n=e=>{let{currentPlan:t={},billingEmail:n,paymentMethod:l,...o}=e;const[i,c]=(0,pn.Qh)(),m=!!t.billingEmail&&!c;return n&&l?null:a.createElement(s.Flex,(0,r.A)({gap:3,alignItems:"center"},o),a.createElement(s.Icon,{size:"large",color:"warning",name:"warning_triangle"}),a.createElement(s.Flex,{column:!0,gap:1},a.createElement(s.Text,null,"You can't proceed to checkout without having provided a"," ",a.createElement(s.Text,{strong:!0},"payment method")," and a ",a.createElement(s.Text,{strong:!0},"billing address"),"."),a.createElement(ue.A,{cursor:m?"pointer":"default",disabled:!m,onClick:i,gap:1,"data-ga":"billing-options::click::billing"},"Please go to the billing portal and fill a payment method")))};var Qn=n(79731);const Xn=e=>e?"::commited-".concat(e):"",ea=(0,c.default)(s.Flex).withConfig({displayName:"checkoutTotals__CheckoutButtonWrapper",componentId:"sc-1q0h6ca-0"})(["background:",";padding:16px 0;position:sticky;bottom:0;z-index:20;"],(0,s.getColor)("mainBackground")),ta=(0,te.A)(s.Button),na=(e=>t=>{let{title:n,isDowngrade:l,showProrations:o,checkoutOrUpdate:i,...c}=t;const[s,,m,d]=(0,b.A)();return o&&l?a.createElement(a.Fragment,null,s&&a.createElement(Kn,{title:n,onConfirm:i,onClose:d}),a.createElement(e,(0,r.A)({onClick:m},c))):a.createElement(e,(0,r.A)({onClick:i},c))})((0,c.default)(ta).withConfig({displayName:"checkoutTotals__CheckoutButton",componentId:"sc-1q0h6ca-1"})(["flex:auto;"])),aa=e=>{let{title:t,slug:n,onClose:l,currentPlan:r,price:o,balance:i,commitment:c,currentCommitment:m=0,email:d,needsCommitment:u,onlyCommitment:g,previewData:p,loadingPreview:E,showProrations:h,promotionCode:f,discount:v=0}=e;const x=((e,t)=>{var n,a;return((null===(n=Zn.FJ[t])||void 0===n?void 0:n.level)||0)<((null===(a=Zn.FJ[e])||void 0===a?void 0:a.level)||0)})(r.slug,n),[y,C]=(0,b.A)(!1),w=h&&!y||!h&&!d||u&&(m===c||!c||c<1),[A,T]=(0,b.A)(),S=(0,pn.L_)(),I=(0,pn.M4)(),k=h||r.billingEmail,F=k?I:S,{sendLog:P,isReady:M}=(0,Te.A)(),[D,N]=(0,me.A)(),B=(0,a.useCallback)((()=>{T(),F({productId:o.id,email:(null===p||void 0===p?void 0:p.billingEmail)||d,...u&&{commitment:c},...f&&{promotionCode:f}}).then((()=>{l(),P({isSuccess:!0,details:F==k?"update-billing-plan":"checkout-billing-plan"},!0),D({header:"Success",text:"You have successfully updated your plan"})})).catch((e=>{var t;P({isFailure:!0,details:F==k?"update-billing-plan":"checkout-billing-plan"},!0);const n=(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||e;N({header:"Error",text:(0,Qn.o)(null===n||void 0===n?void 0:n.errorMsgKey)||(null===n||void 0===n?void 0:n.errorMessage)||"Something went wrong"})})).finally(T)}),[P,M]),{primary:R,secondary:L}=(null===o||void 0===o?void 0:o.pricing)||{},_="year"===o.interval?12:1,U=(0,fn.ji)(R,L),O=u?U*_*(c||0):0,V=(0,fn.bk)(R),H=V*_,W=(j=null===p||void 0===p?void 0:p.invoiceLineItems,(0,a.useMemo)((()=>{if(null===j||void 0===j||!j.length)return null;let e=!1;return j.reduce(((t,n)=>{return"Total payable"==n.description?(t.totalPayable=n,e=!0,t):(n.unitPrice?t.table=[...t.table,{id:n.description,name:n.description,price:Dn.format(n.unitPrice.amount),qty:n.quantity,month:n.month,total:Dn.format(null===(a=n.total)||void 0===a?void 0:a.amount)}]:e?t.info=[...t.info,{...n,isInfo:!0}]:t.footer=[...t.footer,n],t);var a}),{table:[],footer:[],info:[]})}),[j]));var j;const Y=((null===W||void 0===W?void 0:W.footer)||[]).some((e=>{let{description:t,total:n}=e;return"Subscription Total"==t&&0==(null===n||void 0===n?void 0:n.amount)}));return a.createElement(s.Flex,{column:!0,gap:3},h?E||!W||Y?null:a.createElement(zn,{lineItems:W}):a.createElement(Vn,{price:o,needsCommitment:u,currentCommitment:m,onlyCommitment:g,balance:i,spaceTotal:H,amountPerNodePerMonth:U,amountPerSpacePerMonth:V,commitment:c,nodesTotal:O,months:_,checkoutIsDisabled:w,discount:v}),a.createElement(ea,{column:!0,gap:2},h&&!E&&W&&a.createElement(qn,{previewData:p,lineItems:W,agree:y,toggleAgree:C,zeroPreviewSubscriptionTotal:Y}),h&&!E&&a.createElement($n,{currentPlan:r,billingEmail:null===p||void 0===p?void 0:p.billingEmail,paymentMethod:null===p||void 0===p?void 0:p.paymentMethod,padding:[0,0,4,0]}),a.createElement(na,{title:t,isDowngrade:x,label:h?"Checkout":"Proceed to checkout",disabled:!!w||A,checkoutOrUpdate:B,isLoading:A,"data-ga":"proceedTocheckoutButton::click-".concat(Fn(o)).concat(Xn(c),"::billing"),"data-testid":"billingCheckoutTotals-proceedToCheckoutButton",showProrations:h})))},la=e=>{let{prices:t,currentPlan:n}=e;const[l,r]=(0,a.useState)(0),o=t[l],i=null===o||void 0===o?void 0:o.commitment,c=(0,ht.n)("id"),s=(0,U.gr)(c,"ids"),m=(0,O.BU)(s),d=Math.max(5,m.length),[u,g]=(0,a.useState)(n.committedNodes||d);return{recurringIndex:l,setRecurringIndex:r,price:o,needsCommitment:i,commitment:u,handleCommitmentChange:e=>g(e.target.value?parseInt(e.target.value,10):"")}},ra=function(){let{title:e="Checkout"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=>n=>a.createElement(d.GO,{onClose:n.onClose},a.createElement(u.z,{onClose:n.onClose,title:e}),a.createElement(s.Flex,{column:!0,padding:[4,4,0,4],justifyContent:"between",height:"calc(100vh - 60px)",overflow:"auto"},a.createElement(t,n)))},oa=3e5,ia=ra({title:"Update plan"})((e=>{let{title:t,onClose:n,prices:o,currentPlan:i={},children:c}=e;const{recurringIndex:m,setRecurringIndex:d,price:u,needsCommitment:g,commitment:E,handleCommitmentChange:h}=la({prices:o,currentPlan:i}),{state:b}=(0,l.zy)(),[f,v]=(0,a.useState)((null===b||void 0===b?void 0:b.coupon)||""),[x,y]=(0,a.useState)(0),[C,w]=(0,a.useState)(oa),A=(0,p.JT)("billing:Manage"),T=(0,fn.di)({price:u,promotionCode:f,commitment:E}),{loading:S,value:I,promoCodeError:k}=(0,pn.qW)(T,x);return(0,En.A)((()=>{S||y((e=>e+1))}),C),(0,a.useEffect)((()=>{w(S?null:oa)}),[S]),a.createElement(M.Ay,{feature:"Billing::UpdateModal"},A?a.createElement(a.Fragment,null,a.createElement(s.Flex,{column:!0,gap:4},a.Children.map(c,(e=>(0,a.cloneElement)(e,{recurringIndex:m,setRecurringIndex:d}))),a.createElement(wn,{needsCommitment:g,commitment:E,handleCommitmentChange:h}),a.createElement(bn,null),S?a.createElement(Rt.A,{title:"Loading billing info...",height:"auto"}):I?a.createElement(a.Fragment,null,a.createElement(vn,(0,r.A)({currentPlan:i},I)),a.createElement(bn,null),a.createElement(Cn,{promotionCode:f,onApply:v,error:k})):a.createElement("div",null,"No data available"),a.createElement(kn,{currentPlan:i,onCtaClick:n})),a.createElement(aa,{title:t,slug:u.slug,currentPlan:i,onClose:n,price:u,balance:i.balance,commitment:E,needsCommitment:g,previewData:I,loadingPreview:S,showProrations:!0,promotionCode:f})):a.createElement(s.Flex,null,a.createElement(s.TextBigger,null,"You don't have permissions to change the plan.")))})),ca=ra()((e=>{let{onClose:t,prices:n,currentPlan:r={},children:o}=e;const{recurringIndex:i,setRecurringIndex:c,price:m,needsCommitment:d,commitment:u,handleCommitmentChange:g}=la({prices:n,currentPlan:r}),E=(0,ve.uW)("email"),[h,b]=(0,a.useState)(r.billingEmail||E||""),f=(0,p.JT)("billing:Manage"),{state:v}=(0,l.zy)(),[x,y]=(0,a.useState)((null===v||void 0===v?void 0:v.coupon)||""),{discount:C,promoCodeError:w}=(0,pn.D)({productId:m.id,promotionCode:x,...d&&u&&{commitment:u}});return a.createElement(M.Ay,{feature:"Billing::CheckoutModal"},f?a.createElement(a.Fragment,null,a.createElement(s.Flex,{column:!0,gap:4},a.Children.map(o,(e=>(0,a.cloneElement)(e,{recurringIndex:i,setRecurringIndex:c}))),a.createElement(wn,{needsCommitment:d,commitment:u,handleCommitmentChange:g}),a.createElement(bn,null),a.createElement(s.TextInput,{onChange:e=>b(e.target.value),value:h,label:"Billing email",placeholder:"jsmith@example.com"}),a.createElement(bn,null),a.createElement(Cn,{promotionCode:x,onApply:y,error:w}),a.createElement(kn,{currentPlan:r,onCtaClick:t})),a.createElement(aa,{currentPlan:r,onClose:t,price:m,balance:r.balance,commitment:u,email:h,needsCommitment:d,discount:C,promotionCode:x})):a.createElement(s.Flex,null,a.createElement(s.TextBigger,null,"You don't have permissions to change the plan.")))}));var sa=n(21290),ma=n(12602),da=n(49389);const ua=e=>{let{inModal:t,isActive:n,currentPlan:l,slug:r,primary:o,secondary:i,recurringIndex:c}=e;if(!o)return null;const m=(e=>{let{inModal:t,isActive:n,currentPlan:a,slug:l,recurringIndex:r}=e;const{showAnnualPrice:o}=Zn.FJ[l]||{};return t&&o?0==r:!t&&(n?"year"==a.interval&&o:o)})({inModal:t,isActive:n,currentPlan:l,slug:r,recurringIndex:c}),d=(e=>{let{inModal:t,slug:n,currentPlan:a,recurringIndex:l}=e;const{showAnnualPrice:r}=Zn.FJ[n]||{};return"year"==(t?0==l?"year":"month":a.interval)&&!r})({inModal:t,slug:r,currentPlan:l,recurringIndex:c}),u=!!o.amountFlat,g=u?"Price per month":o.amountPerNode?"Price per active node per month for committed usage of nodes for a year":"Price per node per month";return a.createElement(Ue.A,{align:"top",content:g,isBasic:!0,plain:!0,stretch:"align"},a.createElement(s.H0,null,Dn.format((0,fn.ji)(o,i,m)),a.createElement(s.TextSmall,{color:"textLite"},u?null:a.createElement(a.Fragment,null,"/",a.createElement(ue.A,{Component:s.TextSmall,href:"https://www.netdata.cloud/pricing/#do-i-have-to-pay-for-nodes-that-are-no-longer-online",rel:"noopener noreferrer",target:"_blank"},"Node")),m?"/year":"/month",d?a.createElement(a.Fragment,null," (billed yearly)"):null)))},ga=e=>{let{inModal:t,isActive:n,currentPlan:l,recurringIndex:r,slug:o,primary:i,secondary:c}=e;return a.createElement(s.Flex,{column:!0,gap:2},(0,fn.Kj)(o)?o==Zn.VH.free?a.createElement(s.H0,null,"Free, Forever"):null:a.createElement(ua,{inModal:t,isActive:n,currentPlan:l,slug:o,primary:i,secondary:c,recurringIndex:r}),(null===i||void 0===i?void 0:i.monthlyDiscountPercentagePerNode)&&a.createElement(s.Flex,null,a.createElement(s.Text,null,a.createElement(s.Text,{strong:!0},(0,fn.lb)(100*i.monthlyDiscountPercentagePerNode),"% discount")," ","is applied for annual billing.")))},pa=c.default.div.withConfig({displayName:"pricingDetails__OneLine",componentId:"sc-hbslp4-0"})(["white-space:nowrap white-space:nowrap;"]),Ea=e=>{let{nodesLastPeriod:t,committedNodes:n}=e;const l=t-n,r=l>0;return 0==l?a.createElement(s.TextSmall,null,"You are using all your committed nodes."):r?a.createElement(s.TextSmall,null,"You are using"," ",a.createElement(s.TextSmall,{strong:!0,color:"error"},l," ",(0,da.su)(l).toLowerCase()," more")," ","than your committed nodes."):a.createElement(s.TextSmall,null,"You are using"," ",a.createElement(s.TextSmall,{strong:!0,color:"success"},t," out of ",n)," ","committed ",(0,da.su)(n).toLowerCase(),".")},ha=e=>{let{interval:t,currentPeriodTo:n,committedNodes:l,nodesLastPeriod:r,showPromotion:o,cancelling:i,onCancelPlan:c,commitment:m}=e;const{localeDateString:d}=(0,sa.$j)();return a.createElement(s.Flex,{column:!0,gap:1},!!n&&a.createElement(s.TextSmall,null,a.createElement(s.TextSmall,{strong:!0,"data-testid":"billingPricingDetails-interval"},"Billing ".concat(Zn.rY[t]))," ","(renews ",d(new Date(n),{long:!1}),")"),o&&"month"===t&&a.createElement(ue.A,{onClick:c,disabled:i},a.createElement(pa,null,"Save 25% by changing your billing frequency to yearly")),m?a.createElement(a.Fragment,null,a.createElement(s.TextSmall,null,"Committed Nodes:"," ",a.createElement(s.Text,{strong:!0,"data-testid":"billingPricingDetails-committedNodesNumber"},l)),"number"===typeof r?a.createElement(Ea,{nodesLastPeriod:r,committedNodes:l}):null):null)},ba=e=>{let{features:t,showViewDetails:n}=e;return a.createElement(s.Flex,{column:!0,gap:1},t.map((e=>a.createElement(s.Flex,{gap:2,key:e},a.createElement(s.Box,{width:5},a.createElement(s.Icon,{name:"check",width:"20px",height:"20px",color:"primary"})),a.createElement(s.TextSmall,null,e)))),n&&a.createElement(s.Flex,{gap:2},a.createElement(s.Box,{width:5}),a.createElement(ue.A,{Component:s.Flex,as:Bt.N_,cursor:"pointer",alignItems:"center",gap:1,color:"text",hoverColor:"textFocus",to:"all-plans"},a.createElement(s.Text,{strong:!0},"View full details"),a.createElement(s.Icon,{name:"chevron_right",width:"16px",height:"16px"}))))},fa=(e=>t=>{let{inModal:n,recurringIndex:l,setRecurringIndex:r,...o}=t;return n?a.createElement(s.Flex,{width:"100%",justifyContent:"between",alignItems:"center"},a.createElement(e,o),a.createElement(s.Flex,{gap:3,padding:[0,10]},Zn.HR.map(((e,t)=>a.createElement(s.RadioButton,{key:e,checked:l===t,onChange:()=>r(t),"data-testid":"billingPaidPlans-".concat(e,"-radioButton")},a.createElement(s.Text,{color:"textDescription"},(0,_e.Zr)(Zn.rY[e]))))))):a.createElement(e,o)})((e=>{let{children:t}=e;return a.createElement(s.H3,{"data-testid":"billingPricingDetails-activePlanName"},t)})),va=e=>{var t;let{slug:n,version:l,prices:o,recurringIndex:i=0,setRecurringIndex:c,currentPlan:m={},isActive:d,showAllDetails:u,showTeaserDetails:g,cancelling:p,onCancelPlan:E,title:h,features:b,nodesLastPeriod:f,inModal:v}=e;const{onTrial:x}=(0,Gn.A)(),y=d?m.pricing:(null===(t=o[i])||void 0===t?void 0:t.pricing)||{},C=(0,fn.Kj)(n);return a.createElement(s.Flex,{column:!0,gap:2},a.createElement(s.Flex,{column:!0},a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement(fa,{inModal:v,recurringIndex:i,setRecurringIndex:c},h),d&&a.createElement(a.Fragment,null,a.createElement(s.Pill,{flavour:"success","data-testid":"active-plan",icon:"checkmark_s"},x?"Trial":"Active"),x&&!u&&a.createElement(ma.A,null,a.createElement(s.TextBig,{color:"primary"},"Upgrade Now!")))),l&&a.createElement(s.TextBig,null,"(",l,")")),u||!d||"free"===n?a.createElement(ga,(0,r.A)({inModal:v,isActive:d,currentPlan:m,recurringIndex:i,slug:n},y)):null,g&&null!==b&&void 0!==b&&b[l]?a.createElement(ba,{features:b[l],showViewDetails:!C}):null,d&&!(0,fn.Kj)(n)&&!x&&a.createElement(ha,(0,r.A)({},m,{showPromotion:!0,cancelling:p,onCancelPlan:E,nodesLastPeriod:f})))},xa=e=>{let{onConfirm:t}=e;const{sendButtonClickedLog:n}=(0,Te.A)(),[l,r]=(0,b.A)(),o=(0,a.useCallback)((()=>{n({feature:"HomelabAcceptTerms"}),t()}),[n]);return a.createElement(s.ConfirmationDialog,{title:"Terms of usage",confirmLabel:"I agree",handleConfirm:o,hideDecline:!0,isConfirmPositive:!0,isConfirmDisabled:!l,message:a.createElement(s.Flex,{column:!0,gap:2},a.createElement(s.Text,null,"You are subscribing the Netdata Homelab plan. By continuing, you acknowledge that you are using Netdata as a homelabber or a student and are not using it for professional or commercial usage."),a.createElement(s.Text,null,"For more details on conditions please check our"," ",a.createElement(ue.A,{href:"https://www.netdata.cloud/fair-usage-policy",rel:"noopener noreferrer",strong:!0,target:"_blank"},"Fair Usage Policy"),"."),a.createElement(s.Flex,null,a.createElement(s.Checkbox,{checked:l,onChange:r,label:"I will NOT use the Homelab plan for professional purposes.",labelPosition:"right",labelProps:{strong:!0,padding:[0,0,0,1]}})),a.createElement(s.Text,null))})};var ya=n(67276),Ca=n(47431),wa=n(93476),Aa=n(66732),Ta=n(97118);const Sa=(0,c.default)(s.Flex).attrs((e=>({padding:[0,2,4,2],background:"mainBackground",width:{min:"280px"},...e}))).withConfig({displayName:"styled__StyledWrapper",componentId:"sc-1gqbztm-0"})(["width:","};height:",";place-self:",";"],(e=>{let{showAllPlans:t,numberOfPlans:n}=e;return t?"calc(100% / ".concat(n+1,")"):"auto"}),(e=>{let{showAllPlans:t}=e;return t?"200px":"auto"}),(e=>{let{showAllPlans:t}=e;return t?"center":"auto"})),Ia=e=>{let{slug:t,version:n,prices:l=[],isSmall:o,isActive:i,currentPlan:c,showAllPlans:m,showTeaserDetails:d,allPlansView:u=!1,nodesLastPeriod:g,numberOfPlans:E,...f}=e;const v=(0,ve.NJ)(),x=(0,h.vt)(),{title:y,features:C}=Zn.FJ[t]||Zn.FJ.free,w=(0,p.JT)("billing:Manage"),{sendLog:A,sendButtonClickedLog:T,isReady:S}=(0,Te.A)(),{onTrial:I}=(0,Gn.A)(),{cancelling:k,startCancelling:F,stopCancelling:P}=(0,pn.og)(),M=(0,a.useCallback)((function(){let{label:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};T({label:e},!0)}),[T,S]),D=(0,fn.z_)({currentPlan:c,slug:t,version:n,onTrial:I}),N=k||i&&(0,fn.Kj)(t)||c.slug==Zn.VH.earlyBird&&t==Zn.VH.free||c.slug==Zn.VH.free&&"2023.02"==c.version&&t==Zn.VH.free&&"2023.11"==n,[B,R]=(0,a.useState)({}),[L,,_,U]=(0,b.A)(),[O,V]=(0,me.A)(),H=(0,pn.M4)(),W="cancel"===B.type&&!(0,fn.Kj)(c.slug)&&!L,j="cancel"===B.type&&t==Zn.VH.free&&"2023.11"==n,{id:Y}=(0,Ta.A)(),q=(0,Ke.ly)(),z=(0,a.useCallback)((()=>{_(),F(),H({productId:Y}).then((()=>{O({header:"Successfully canceled subscription",text:"You are now on Community plan"}),A({isSuccess:!0,description:"cancel-subscription"})})).catch((()=>{V({header:"Failed to cancel the subscription",text:"Remained on ".concat(y," plan")}),A({isFailure:!0,description:"cancel-subscription",error:"Failed to cancel the subscription"})})).finally((()=>{P(),q()}))}),[A,S]),J=(0,a.useMemo)((()=>"user-".concat(v,"-space-").concat(x,"-accept-homelab-terms")),[v,x]),G=(0,a.useCallback)((()=>{localStorage.setItem(J,!0)}),[J]),K=(0,a.useCallback)((()=>"true"==localStorage.getItem(J)),[J]),Z=(0,a.useCallback)((e=>{if(!k&&!N)if(t!=Zn.VH.homelab||c.slug==Zn.VH.homelab||K()){if((0,fn.Kj)(t))return R({type:"cancel"}),void A(e,!0);if((0,fn.Kj)(c.slug))return ae("checkout"),void A(e,!0);ae("update"),A(e,!0)}else R({type:"homelab"})}),[A,S,B,R]),$=(0,a.useCallback)((()=>{R({}),G(),setTimeout((()=>{Z({action:ya.o1.buttonClicked},!0)}),200)}),[R,G,Z]),Q=!!c.billingEmail,X=Q?ia:ca,{billingModalType:ee,billingModalSlug:te}=(0,Pt.PP)(),ne=["checkout","update"].includes(ee)&&t==te,ae=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const n=(0,Pt.PP)();(0,Pt.Z8)({...n,billingModalType:e,billingModalSlug:""==e?e:t})},[le,,re,oe]=(0,b.A)();return a.createElement(Sa,(0,r.A)({column:!0,flex:o,gap:2,justifyContent:"between",showAllPlans:m,numberOfPlans:E,isSmall:o},f),a.createElement(va,{slug:t,prices:l,isActive:i,currentPlan:c,cancelling:k,showAllDetails:m,showTeaserDetails:d,title:y,version:n,features:C,nodesLastPeriod:g,onCancelPlan:()=>Z({action:ya.o1.buttonClicked,label:y})}),!u&&a.createElement(Kt.A,{Component:s.Button,permission:"billing:Manage","data-ga":"upgrade-button::click-".concat(Fn({slug:t}),"::current-").concat(Fn(c),"::billing"),"data-testid":"billingPlan-".concat(t,"-").concat(i?"currentPlan":"upgradeButton"),label:D,flavour:(0,fn.Dy)(null===c||void 0===c?void 0:c.slug,t),disabled:N,width:"100%",onClick:()=>Z({action:ya.o1.buttonClicked,label:D,dataGa:"upgrade-button::click-".concat(Fn({slug:t}),"::current-").concat(Fn(c),"::billing")}),isLoading:k&&i,loadingLabel:"Cancelling"}),!m&&a.createElement(a.Fragment,null,I&&a.createElement(wa.A,{flavour:"billing"}),(I||!(0,fn.Kj)(c.slug))&&a.createElement(s.Flex,{column:!0,gap:4},a.createElement(s.Flex,{gap:6,alignItems:"baseline"},I&&a.createElement(Ca.A,null),!(0,fn.Kj)(c.slug)&&a.createElement(ue.A,{Component:s.Flex,as:Bt.N_,cursor:"pointer",alignItems:"center",gap:1,color:"text",hoverColor:"textFocus",to:"all-plans",padding:[4,0,0],disabled:k,onClick:()=>M({label:w?"Change plan":"View plans"}),"data-testid":"billingPlan-viewMorePlansLink","data-ga":"change-plan::click::billing"},a.createElement("span",null,w?"Change plan":"View plans"),a.createElement(s.Icon,{name:"chevron_right",width:"16px",height:"16px"}))),I&&a.createElement(a.Fragment,null,a.createElement(Aa.A,{flavour:"billing",color:"textLite",onOptOutClick:re}),le&&a.createElement(Jn.A,{onDecline:oe,onCancellingEnd:()=>{}})))),(W||j)&&a.createElement(Kn,{title:y,onConfirm:z,onClose:()=>{U(),R({})}}),"homelab"==B.type?a.createElement(xa,{onConfirm:$}):null,ne&&a.createElement(X,{title:y,onClose:()=>{U(),ae()},prices:l,currentPlan:c,showProrations:Q},a.createElement(va,{slug:t,prices:l,currentPlan:c,title:y,inModal:!0})))},ka=e=>{let{slug:t,isSmall:n,currentPlan:l,showAllPlans:o,allPlansView:i=!1,showTeaserDetails:c,numberOfPlans:m,...d}=e;const{sendButtonClickedLog:u}=(0,Te.A)(),{cancelling:g}=(0,pn.og)(),{features:p}=Zn.FJ.enterprise,E=(0,a.useCallback)((()=>{window.open("https://www.netdata.cloud/contact-us/?subject=on-prem","_blank","noopener,noreferrer"),u({feature:"OnPremContact"})}),[u]);return a.createElement(Sa,(0,r.A)({column:!0,flex:n,gap:2,justifyContent:"between",showAllPlans:o,numberOfPlans:m,isSmall:n},d),a.createElement(s.Flex,{column:!0,gap:2},a.createElement(s.Flex,{column:!0},a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement(s.H3,{"data-testid":"billingPricingDetails-activePlanName"},"Enterprise On-Premise"))),a.createElement(s.H0,null,Dn.format(3),a.createElement(s.TextSmall,{color:"textLite"},"/",a.createElement(ue.A,{Component:s.TextSmall,href:"https://www.netdata.cloud/pricing/#do-i-have-to-pay-for-nodes-that-are-no-longer-online",rel:"noopener noreferrer",target:"_blank"},"Node"),"/month (billed yearly)")),c&&a.createElement(ba,{features:p[2023.11]||[]})),!i&&a.createElement(Kt.A,{Component:s.Button,permission:"billing:Manage","data-ga":"upgrade-button::click-".concat(Fn({slug:t}),"::current-").concat(Fn(l),"::billing"),"data-testid":"billingPlan-".concat(t,"-upgradeButton"),label:"Contact us",flavour:"hollow",disabled:g,width:"100%",onClick:E}))},Fa=e=>{let{plans:t,isSmall:n,currentPlan:l,showAllPlans:r,showTeaserDetails:o,numberOfPlans:i}=e;return a.createElement(a.Fragment,null,Zn.tD.map((e=>(Object.entries(t[e]||{})||[]).map((t=>{let[c,s]=t;return a.createElement(Ia,{key:"".concat(e,"-").concat(c),slug:e,version:c,prices:s,isActive:l.slug==e&&l.version==c,isSmall:n,currentPlan:l,showAllPlans:r,showTeaserDetails:o,numberOfPlans:i})})))),a.createElement(ka,{slug:"enterprise",isSmall:n,currentPlan:l,showAllPlans:r,showTeaserDetails:o,numberOfPlans:i}))},Pa=c.default.div.withConfig({displayName:"styled__Container",componentId:"sc-1oa2kv1-0"})(["display:grid;background:",";"," ",""],(0,s.getColor)("mainBackground"),(e=>{let{sticky:t}=e;return t?"position:sticky;top:0;":""}),(e=>{let{numberOfPlans:t,showAllPlans:n}=e;const a=[n?"200px":"minmax(280px, 1fr)",...Array(t).fill("minmax(280px, 1.5fr)")];return"grid-template-columns: ".concat(a.join(" "),";")})),Ma=c.default.div.withConfig({displayName:"styled__Header",componentId:"sc-1oa2kv1-1"})(["display:contents;> *{background:",";border-bottom:1px solid ",";}"],(0,s.getColor)("panelBg"),(0,s.getColor)("placeholder")),Da=(0,c.default)(s.Collapsible).withConfig({displayName:"styled__Content",componentId:"sc-1oa2kv1-2"})(["display:contents;"]),Na=()=>{const{loaded:e,value:t}=(0,pn.lU)(),n=(0,fn.LJ)(t);return e?n:0},Ba=e=>{var t,n,l,r;let{isSmall:o,plans:i,currentPlan:c,showAllPlans:m=!1,showTeaserDetails:d=!1,showPricingColumn:u}=e;const g="earlyBird"===c.slug,p="pro"===c.slug,E=Na(),{version:h}=(0,Ta.A)(),b=null===(t=(null===(n=i.free)||void 0===n?void 0:n[null===c||void 0===c?void 0:c.version])||(null===(l=i.free)||void 0===l?void 0:l[h]))||void 0===t?void 0:t[0],f=i.earlyBird?null===(r=Object.values(i.earlyBird)[0])||void 0===r?void 0:r[0]:{};return a.createElement(Pa,{numberOfPlans:E,showAllPlans:m,sticky:!0},u?a.createElement(s.Flex,{column:!0,height:50,justifyContent:"center"},a.createElement(s.Text,{strong:!0},"Pricing")):null,g?a.createElement(Ia,{slug:"earlyBird",version:null===f||void 0===f?void 0:f.version,prices:null===f||void 0===f?void 0:f.prices,isSmall:o,isActive:"earlyBird"===c.slug,currentPlan:c,showAllPlans:m,numberOfPlans:E}):a.createElement(Ia,{slug:"free",version:null===b||void 0===b?void 0:b.version,prices:null===b||void 0===b?void 0:b.prices,isSmall:o,isActive:"free"===c.slug&&c.version==(null===b||void 0===b?void 0:b.version),currentPlan:c,showAllPlans:m,showTeaserDetails:d,numberOfPlans:E}),a.createElement(Fa,{plans:i,isSmall:o,currentPlan:c,showAllPlans:m,showTeaserDetails:d,isPro:p,numberOfPlans:E}))},Ra=e=>{let{children:t,...n}=e;return a.createElement(s.Flex,(0,r.A)({alignItems:"center",gap:2},n),t)},La=()=>a.createElement(s.Flex,{column:!0,gap:2,width:65},a.createElement(s.TextMicro,null,a.createElement(s.TextMicro,{strong:!0},"Available credit")," for you to use on any plan subscriptions with us."),a.createElement(s.TextMicro,null,"It is ok to change your mind, we will give you full flexibility! You can change the plan level, billing frequency or committed nodes, we won't hold you to any choice. When applicable, we'll credit you back on any unused amount.")),_a=e=>{let{currentPlan:t}=e;const[n,l]=(0,pn.Qh)(),r=!!t.billingEmail&&!l,o=(0,p.JT)("billing:ReadAll");return a.createElement(s.Flex,{column:!0,gap:2},a.createElement(s.H3,null,"Plan & Billing"),o&&a.createElement(a.Fragment,null,a.createElement(Ra,null,a.createElement(s.Flex,{gap:1,alignItems:"center"},a.createElement(s.Text,null,"Credit:"),a.createElement(s.Text,{"data-testid":"billingHeader-credits",strong:!0},Dn.format(t.balance.amount||0)),a.createElement(Ue.A,{content:La,align:"bottom",isBasic:!0},a.createElement(s.Icon,{name:"information",width:"16px",height:"16px",color:"textLite"}))),a.createElement(hn,null),a.createElement(s.Text,null,"Billing email:"," ",a.createElement(s.Text,{strong:!0,"data-testid":"billingHeader-email"},t.billingEmail||"-")),a.createElement(hn,null),a.createElement(ue.A,{Component:s.Flex,cursor:r?"pointer":"default",disabled:!r,onClick:n,alignItems:"center",gap:1,"data-ga":"billing-options::click::billing","data-testid":"billingHeader-goToPortal"},a.createElement("span",null,"Billing options and Invoices"),a.createElement(s.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"}))),a.createElement(hn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}})))};n(34504),n(78898);function Ua(){const e=new Date,t=e.getFullYear(),n=e.getMonth(),a=e.getDate(),l=new Date(0);return l.setFullYear(t,n,a-1),l.setHours(23,59,59,999),l}var Oa=n(51730),Va=n(13999);function Ha(e,t){return(0,Va.f)(e,-t)}var Wa=n(4883);function ja(e,t){return(0,Wa.P)(e,-t)}var Ya=n(35840);function qa(e,t){const{years:n=0,months:a=0,weeks:l=0,days:r=0,hours:o=0,minutes:i=0,seconds:c=0}=t,s=Ha(ja(e,a+12*n),r+7*l),m=1e3*(c+60*(i+60*o));return(0,Ya.w)(e,s.getTime()-m)}var za=n(71600),Ja=n(66118),Ga=n(51891),Ka=n(44731),Za=n(99851),$a=n(24266),Qa=n(27467),Xa=n(36712);const el={nodes:1,p90:2,committed_nodes:3},tl={"Daily count":"The weighted 90th percentile of the live node count during the day, taking time as the weight. If you have 30 live nodes throughout the day, except for a two hour peak of 44 live nodes, the daily value is 31.","Committed nodes":"The number of nodes committed to in the yearly plan. In case the period count is higher than the number of committed nodes, the difference is billed as overage.","Period count":"The 90th percentile of the daily counts for this period up to the date. The last value for the period is used as the number of nodes for the bill for that period."};Ja.t1.register(Ja.kc,Ja.PP,Ja.E8,Ja.FN,Ja.No,Ja.s$,Ja.m_,Ja.ZT,Ja.A6,Ga.A),Ja.m_.positioners.follow=function(e,t){return null===e||void 0===e||!e.length||t.y>360?(this._resolveAnimations().update(this,{opacity:0}),!1):(0===this.opacity&&this._resolveAnimations().update(this,{opacity:1}),{x:t.x,y:t.y})};const nl=e=>({nodes:{label:"Daily count",type:"bar",color:(0,s.getColor)("text")({theme:e}),backgroundColor:(0,s.getColor)("primary")({theme:e}),borderColor:(0,s.getColor)("primary")({theme:e}),borderWidth:2,pointStyle:"rectangle",usePointStyle:!0},p90:{label:"Period count",type:"line",color:(0,s.getColor)("text")({theme:e}),borderColor:(0,s.getColor)(["purple","lilac"])({theme:e}),borderWidth:2,fill:!1,stepped:!0},committed_nodes:{label:"Committed nodes",type:"line",color:(0,s.getColor)("text")({theme:e}),borderColor:(0,s.getColor)(["blue","aquamarine"])({theme:e}),borderWidth:2,fill:!1,borderDash:[1,2],borderDashOffset:1,pointStyle:!1}}),al={border:{side:"all",color:"inputBorder",padding:[3]},round:!0},ll=Ua(),rl=(0,Oa.o)(qa(ll,{months:1})),ol=e=>{let{onNodesLastPeriodFetch:t}=e;const n=(0,Qa.rW)("offset"),l=(0,h.vt)(),[r,o]=(0,a.useState)((()=>({start:rl,end:ll}))),[i,m,d]=(0,Et.A)((()=>({enabled:!!l&&!!r.start&&!!r.end,fetch:()=>(0,Xa.U2)(l,{after:Math.floor((0,za.W)((0,sa.ii)(r.start,n))/1e3),before:Math.floor((0,za.W)((0,sa.ii)(r.end,n))/1e3)}),initialValue:{labels:[],data:[]},onSuccess:e=>{let{data:n,labels:a}=e;if(!n.length)return;const l=n.at(-1),r=l[a.indexOf("nodes")],o=l[a.indexOf("timestamp")];t((e=>e.timestamp>o?e:{timestamp:o,value:r}))}})),[l,r,t]),u=(0,a.useContext)(c.ThemeContext),g=(0,a.useMemo)((()=>{const e=i.data.map((e=>{let[t]=e;return t})),t=i.labels.reduce(((t,n,a)=>a?[{...nl(u)[n],data:e.map(((e,t)=>i.data[t][a])),order:el[n]},...t]:t),[]);return{labels:e,datasets:t}}),[i]),[p,E]=function(e){let{data:t,annotations:n=[]}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{localeDateString:l}=(0,sa.$j)(),r=(0,a.useRef)(!1),o=(0,a.useRef)(),i=(0,a.useMemo)((()=>({interaction:{axis:"x"},plugins:{legend:{position:"bottom",align:"start",onClick:(e,t,n)=>{const a=n.legendItems.findIndex((e=>e.text===t.text));n.chart.isDatasetVisible(a)?n.chart.hide(a):n.chart.show(a)},labels:{generateLabels:e=>e.data.datasets.map(((t,n)=>({fontColor:t.color,text:t.label,fillStyle:t.backgroundColor,strokeStyle:t.borderColor,pointStyle:"Daily count"===t.label?"rect":"line",hidden:!e.isDatasetVisible(n),order:t.order}))).sort(((e,t)=>e.order-t.order)),usePointStyle:!0},onHover:function(e,t){!r.current&&o.current&&(r.current=!0,o.current.innerHTML=tl[t.text],o.current.style.left=e.x+"px",o.current.style.top=e.y+"px",o.current.style.visibility="visible",o.current.style.transform="translateY(-100%)")},onLeave:function(){o.current&&(r.current=!1,o.current.innerHTML="",o.current.style.visibility="hidden")}},tooltip:{enabled:!0,mode:"nearest",intersect:!1,yAlign:"bottom",usePointStyle:!0,position:"follow",backgroundColor:(0,s.getColor)("tooltip")({theme:e}),color:(0,s.getColor)("tooltipText")({theme:e}),callbacks:{title:e=>{const[t]=e;return t?l(1e3*t.label,{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0}):""},labelPointStyle:e=>({pointStyle:"Total Nodes"===e.dataset.label?"rect":"line"}),label:e=>" ".concat(e.formattedValue," ").concat(e.dataset.label||"")}},annotation:{annotations:n.reduce(((n,a,l)=>({...n,["annotation".concat(l)]:{type:"line",value:t.findIndex((e=>e[0]===a.timestamp)),borderColor:(0,s.getRgbColor)("attention",.3)({theme:e}),borderDashOffset:0,borderWidth:10,drawTime:"afterDatasetsDraw",label:{drawTime:"afterDatasetsDraw",display:!1,backgroundColor:(0,s.getRgbColor)("attention",.8)({theme:e}),borderWidth:0,color:"white",content:a.name,textAlign:"center"},scaleID:"x",enter(e,t){const n=e.chart,a=n.options.plugins.annotation.annotations["annotation".concat(l)];a.label.display=!0,a.label.position=t.y/e.chart.chartArea.height>.5?"start":"end",n.update()},leave(e){const t=e.chart;t.options.plugins.annotation.annotations["annotation".concat(l)].label.display=!1,t.update()}}})),{})}},responsive:!0,maintainAspectRatio:!1,scales:{x:{ticks:{callback:function(e){return l(1e3*this.getLabelForValue(e),{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0})},color:(0,s.getColor)("textLite")({theme:e})}},y:{beginAtZero:!0,ticks:{color:(0,s.getColor)("textLite")({theme:e})}}}})),[e,t]);return[i,o]}(u,i);return a.createElement(s.Flex,{column:!0,gap:4},a.createElement(s.Flex,{alignItems:"center",justifyContent:"between"},a.createElement(s.H3,null,"Usage"),a.createElement(Za.A,{values:r,utc:n,onChange:o,tagging:"billing-usage",isPlaying:!1,onlyDates:!0,accessorProps:al,padding:[4,0],width:"auto",maxDate:ll})),a.createElement(s.Flex,{position:"relative",height:90},m?a.createElement(Rt.A,{title:"Loading billing data..."}):d?a.createElement($a.H4,{title:"Chart couldn't be loaded"}):a.createElement(Ka.t1,{type:"bar",data:g,options:p}),a.createElement(s.Flex,{ref:E,background:"main",color:"generic",position:"absolute",round:!0,padding:[3],width:{max:75},sx:{visibility:"hidden"},onMouseOver:()=>E.current.style.visibility="hidden"})))},il=e=>{let{isSmall:t,currentPlan:n,loaded:l,currentLoaded:r,plans:o}=e;const[i,c]=(0,a.useState)({timestamp:null,value:null}),s=o[n.slug]?o[n.slug][n.version]:[];return a.createElement(a.Fragment,null,a.createElement(_a,{currentPlan:n}),l&&r?a.createElement(a.Fragment,null,(0,fn.Kj)(n.slug)?a.createElement(Ba,{isSmall:t,plans:o,currentPlan:n,showTeaserDetails:!0}):a.createElement(Ia,{slug:n.slug,version:n.version,prices:s,width:t?"auto":120,padding:[0],height:"auto",isSmall:t,isActive:!0,currentPlan:n,allPlansView:!0,nodesLastPeriod:i.value}),a.createElement(hn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),a.createElement(ol,{onNodesLastPeriodFetch:c})):a.createElement(Rt.A,{title:l?"Loading billing info...":"Loading Netdata plans..."}))};var cl=n(71847);const sl={year:"Yearly",month:"Monthly"},ml=e=>{var t;let{currentPlan:n}=e;const l=(0,h.bq)(),[r,o]=(0,pn.Qh)(),{cancelling:i,startCancelling:c,stopCancelling:m}=(0,pn.og)(),d=!!n.billingEmail&&!o,[u,g]=(0,b.A)(),[E,f]=(0,me.A)(),v=(0,pn.M4)(),{title:x}=Zn.FJ[n.slug]||Zn.FJ.free,{id:y}=(0,Ta.A)(),C=(0,p.JT)("billing:Manage"),w=(0,p.JT)("billing:ReadAll"),{title:A}=Zn.FJ[null===n||void 0===n?void 0:n.slug]||Zn.FJ.free,T=sl[null===n||void 0===n?void 0:n.interval];return a.createElement(s.Flex,{column:!0,gap:2},a.createElement(s.Flex,{gap:2,alignItems:"center"},a.createElement(ue.A,{as:Bt.N_,to:"/spaces/".concat(l,"/settings/billing"),disabled:i,color:"text",hoverColor:"textLite",showToolTip:!0,content:"Back to Plan & Billing",align:"bottom",isBasic:!0},a.createElement(s.Icon,{name:"arrow_left",width:"20px",height:"20px",margin:[1.5,0,0]})),a.createElement(s.H3,null,"All Plans")),a.createElement(Ra,null,a.createElement(s.Flex,{gap:1,alignItems:"center"},a.createElement(s.Text,null,"Active plan:"),a.createElement(s.Text,{strong:!0},A)),a.createElement(hn,null),T&&a.createElement(a.Fragment,null,a.createElement(s.Flex,{gap:1,alignItems:"center"},a.createElement(s.Text,null,"Billing frequency:"),a.createElement(s.Text,{strong:!0},T)),a.createElement(hn,null)),n.commitment?a.createElement(s.Flex,{gap:1,alignItems:"center"},a.createElement(s.Text,null,"Committed Nodes:"),a.createElement(s.Text,{strong:!0},(null===n||void 0===n?void 0:n.committedNodes)||0)):null,a.createElement(hn,null),w&&a.createElement(a.Fragment,null,a.createElement(s.Flex,{gap:1,alignItems:"center"},a.createElement(s.Text,null,"Credit:"),a.createElement(s.Text,{strong:!0},Dn.format((null===n||void 0===n||null===(t=n.balance)||void 0===t?void 0:t.amount)||0)),a.createElement(Ue.A,{content:La,align:"bottom",isBasic:!0},a.createElement(s.Icon,{name:"information",width:"16px",height:"16px",color:"textLite"}))),a.createElement(hn,null),a.createElement(s.Flex,{gap:1,alignItems:"center"},a.createElement(s.Text,null,"Billing email:"),a.createElement(s.Text,{strong:!0},(null===n||void 0===n?void 0:n.billingEmail)||"-")),a.createElement(hn,null)),a.createElement(ue.A,{Component:s.Flex,cursor:d?"pointer":"default",disabled:!d,onClick:r,alignItems:"center",gap:1},a.createElement("span",null,"Billing options and Invoices"),a.createElement(s.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"})),!(0,fn.Kj)(null===n||void 0===n?void 0:n.slug)&&a.createElement(a.Fragment,null,a.createElement(hn,null),a.createElement(ue.A,{Component:s.Flex,cursor:"pointer",onClick:g,alignItems:"center",gap:1,disabled:i||!C,"data-ga":"cancel-plan::click::billing"},a.createElement(s.Text,{textDecoration:"underline"},i?"Canceling plan...":"Cancel plan")))),a.createElement(hn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),u&&a.createElement(Kn,{title:"Community",onConfirm:()=>{c(),v({productId:y}).then((()=>((0,cl.H)("billing","cancel-plan","global-view",{slug:null===n||void 0===n?void 0:n.slug,interval:null===n||void 0===n?void 0:n.interval,success:!0}),E({header:"Successfully canceled subscription",text:"You are now on Community plan"})))).catch((()=>((0,cl.H)("billing","cancel-plan","global-view",{slug:null===n||void 0===n?void 0:n.slug,interval:null===n||void 0===n?void 0:n.interval,success:!1}),f({header:"Failed to cancel the subscription",text:"Remained on ".concat(x," plan")})))).finally((()=>{m()}))},onClose:g}))},dl=()=>a.createElement(s.Icon,{name:"check",color:"primary"}),ul=()=>a.createElement(s.Icon,{name:"checkmark_partial_s",color:"textLite"}),gl=()=>a.createElement(s.Icon,{name:"chevron_down_thin",color:"text"}),pl=()=>a.createElement(s.Icon,{name:"chevron_up_thin",color:"text"}),El=e=>{let{center:t,end:n,...l}=e;return a.createElement(s.Flex,{alignItems:"center",justifyContent:t?"center":n?"end":"start",padding:[2]},a.createElement(s.Text,(0,r.A)({},t?{textAlign:"center"}:{},l)))},hl=e=>{let{children:t,...n}=e;return a.createElement(El,(0,r.A)({center:!0},n),t?a.createElement(s.Flex,{alignItems:"center",gap:2},t,a.createElement(dl,null)):a.createElement(dl,null))},bl=e=>a.createElement(El,(0,r.A)({center:!0},e),"UNLIMITED"),fl=e=>a.createElement(El,(0,r.A)({center:!0},e),a.createElement(ul,null)),vl=e=>a.createElement(El,(0,r.A)({center:!0},e),"SOON"),xl=e=>t=>{const{index:n,title:l="",showAllPlans:r,onToggle:o,collapsed:i}=t,c=Na();return a.createElement(Pa,{numberOfPlans:c,showAllPlans:r},a.createElement(Ma,{onClick:()=>o(n)},a.createElement(El,{strong:!0},l),Array.from(Array(c-1).keys()).map((e=>a.createElement(El,{key:e}))),a.createElement(El,{end:!0},i[n]?a.createElement(pl,null):a.createElement(gl,null))),a.createElement(Da,{open:!i[n]},a.createElement(e,t)))},yl=(0,a.memo)(xl((e=>{let{isPro:t}=e;return a.createElement(a.Fragment,null,a.createElement(El,null,"Scalability"),a.createElement(El,{center:!0},"Vertical and Horizontal"),a.createElement(El,{center:!0},"Vertical and Horizontal"),t&&a.createElement(El,{center:!0},"Vertical and Horizontal"),a.createElement(El,{center:!0},"Vertical and Horizontal"),a.createElement(El,{center:!0},"Vertical and Horizontal"),a.createElement(El,null,"High Availability"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Data Retention"),a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"Data Privacy"),a.createElement(El,{center:!0},"Data stored On-Prem and visualized on Netdata Cloud"),a.createElement(El,{center:!0},"Data stored On-Prem and visualized on Netdata Cloud"),t&&a.createElement(El,{center:!0},"Data stored On-Prem and visualized on Netdata Cloud"),a.createElement(El,{center:!0},"Data stored On-Prem and visualized on Netdata Cloud"),a.createElement(El,{center:!0},"Data stored and visualized On-Prem"),a.createElement(El,null,"Configuration"),a.createElement(El,{center:!0},"Manual, IaC or in App(UI)"),a.createElement(El,{center:!0},"Manual, IaC or in App(UI)"),t&&a.createElement(El,{center:!0},"Manual, IaC or in App(UI)"),a.createElement(El,{center:!0},"Manual, IaC or in App(UI)"),a.createElement(El,{center:!0},"Manual, IaC or in App(UI)"))}))),Cl=(0,a.memo)(xl((e=>{let{isPro:t,freePlanLimitattions:n}=e;return a.createElement(a.Fragment,null,a.createElement(El,null,"Customizable charts"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Infrastructure wide Dashboards"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Centralized Alerts Management"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Infrastructure Organization (Rooms)"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Custom Dashboards"),a.createElement(hl,null,null!==n&&void 0!==n&&n.maxDashboards?a.createElement(s.Text,null,"(Limited to ",n.maxDashboards," per Room)"):null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Access dashboards from anywhere in the world"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Role Based Access Control (RBAC)"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Auditing"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Invite Team Members"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Functions"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Netdata Assistant"),a.createElement(hl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,"Mobile App"),a.createElement(fl,null),a.createElement(hl,null),t&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(fl,null),a.createElement(El,null,"Centralized Management of Integrations"),a.createElement(vl,null),a.createElement(vl,null),t&&a.createElement(vl,null),a.createElement(vl,null),a.createElement(vl,null))}))),wl=(0,a.memo)(xl((e=>{let{isPro:t,freePlanLimitattions:n}=e;return a.createElement(a.Fragment,null,a.createElement(El,null,"Active Connected Nodes"),null!==n&&void 0!==n&&n.maxNodes?a.createElement(El,{center:!0},"Max of ",n.maxNodes):a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"Active Custom Dashboards"),null!==n&&void 0!==n&&n.maxDashboards?a.createElement(El,{center:!0},"Max of ",n.maxDashboards," per Room"):a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"Infrastructure metrics"),a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"APM metrics"),a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"Custom metrics"),a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"Synthetic checks"),a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"Monitor system journal logs"),a.createElement(bl,null),a.createElement(bl,null),t&&a.createElement(bl,null),a.createElement(bl,null),a.createElement(bl,null),a.createElement(El,null,"Auditing Events"),a.createElement(El,{center:!0},"4 hours"),a.createElement(El,{center:!0},"90 days"),t&&a.createElement(El,{center:!0},"7 days"),a.createElement(El,{center:!0},"90 days"),a.createElement(El,{center:!0},"As required"),a.createElement(El,null,"Topology Events"),a.createElement(El,{center:!0},"4 hours"),a.createElement(El,{center:!0},"14 days"),t&&a.createElement(El,{center:!0},"7 days"),a.createElement(El,{center:!0},"14 days"),a.createElement(El,{center:!0},"As required"),a.createElement(El,null,"Alert Events"),a.createElement(El,{center:!0},"4 hours"),a.createElement(El,{center:!0},"60 days"),t&&a.createElement(El,{center:!0},"7 days"),a.createElement(El,{center:!0},"60 days"),a.createElement(El,{center:!0},"As required"),a.createElement(El,null,"Alert Notification Integrations"),a.createElement(El,{center:!0},"Email, Discord"),a.createElement(El,{center:!0},"Email, Discord, Webhook, Mattermost, Opsgenie, PagerDuty, RocketChat, Slack, and more"),t&&a.createElement(El,{center:!0},"Email, Discord, Webhook"),a.createElement(El,{center:!0},"Email, Discord, Webhook, Mattermost, Opsgenie, PagerDuty, RocketChat, Slack, and more"),a.createElement(El,{center:!0},a.createElement(s.Text,null,"Same as Business plan"),a.createElement("br",null),a.createElement(s.TextSmall,null,"(Custom requests can be handled)")),a.createElement(El,null,"User Administration"),a.createElement(El,{center:!0},"Basic"),a.createElement(El,{center:!0},"Advanced"),t&&a.createElement(El,{center:!0},"Intermediate"),a.createElement(El,{center:!0},"Advanced"),a.createElement(El,{center:!0},"Advanced"))}))),Al=(0,a.memo)(xl((e=>{let{isEarlyBird:t,isPro:n}=e;return a.createElement(a.Fragment,null,a.createElement(El,null,a.createElement(s.Text,{id:"administrators"},"Administrators"),a.createElement("br",null),a.createElement(s.TextSmall,{color:"textDescription",id:"same-as-managers-but-unable-to-manage-users-or-rooms"},"Users with this role can control Spaces, War Rooms, Nodes, Users and Billing. They can also access any Room in the Space.")),a.createElement(hl,null),a.createElement(hl,null),n&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,a.createElement(s.Text,{id:"troubleshooters"},"Troubleshooters"),a.createElement("br",null),a.createElement(s.TextSmall,{color:"textDescription"},"Users with this role can use Netdata to troubleshoot, not manage entities. They can access any Room in the Space.")),a.createElement(fl,null),a.createElement(hl,null),n&&a.createElement(hl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,a.createElement(s.Text,{id:"managers"},"Managers"),a.createElement("br",null),a.createElement(s.TextSmall,{color:"textDescription"},"Users with this role can manage Rooms and Users. They can access any Room in the Space.")),a.createElement(fl,null),a.createElement(hl,null),n&&a.createElement(fl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,a.createElement(s.Text,{id:"observers"},"Observers"),a.createElement("br",null),a.createElement(s.TextSmall,{color:"textDescription"},"Users with this role can only view data in specific Rooms.")),a.createElement(fl,null),a.createElement(hl,null),n&&a.createElement(fl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,a.createElement(s.Text,{id:"billing"},"Billing"),a.createElement("br",null),a.createElement(s.TextSmall,{color:"textDescription"},"Users with this role can handle billing options and invoices.")),a.createElement(fl,null),a.createElement(hl,null),n&&a.createElement(fl,null),a.createElement(hl,null),a.createElement(hl,null),a.createElement(El,null,a.createElement(s.Text,{id:"billing"},"Member"),a.createElement("br",null),a.createElement(s.TextSmall,{color:"textDescription"},"This role allows users to manage rooms and invite fellow Member teammates. These users cannot see all rooms in the Space but can see all Nodes since they are always on the All Nodes.")),t?a.createElement(hl,null):a.createElement(fl,null),a.createElement(fl,null),n&&a.createElement(fl,null),a.createElement(fl,null),a.createElement(fl,null))}))),Tl=(0,a.memo)(xl((e=>{let{isPro:t}=e;return a.createElement(a.Fragment,null,a.createElement(El,null,"Service Availability"),a.createElement(El,{center:!0},"Best Effort (99.5% in last 12 months)"),a.createElement(El,{center:!0},"Best Effort (99.5% in last 12 months)"),t&&a.createElement(El,{center:!0},"Best Effort (99.5% in last 12 months)"),a.createElement(El,{center:!0},"99.9% annually (excl. scheduled maintenance)"),a.createElement(El,{center:!0},"Same as Business plan"),a.createElement(El,null,"Technical Support"),a.createElement(El,{center:!0},"Public Forums, Tickets & Chat"),a.createElement(El,{center:!0},"Public Forums, Tickets & Chat"),t&&a.createElement(El,{center:!0},"Public Forums, Tickets & Chat"),a.createElement(El,{center:!0},a.createElement(s.Text,null,"Public Forums, Tickets & Chat"),a.createElement("br",null),a.createElement(s.Text,{color:"textDescription"},"Need Premium Support?"," ",a.createElement(ue.A,{Component:s.Text,href:"https://www.netdata.cloud/contact-us/?subject=custom-support-requirements",target:"_blank",rel:"noopener noreferrer"},"Reach out to us"))),a.createElement(El,{center:!0},"Custom Design to Meet Requirements"),a.createElement(El,null,"Initial Deployment Consulting Services"),a.createElement(El,{center:!0},"Public Forums, Tickets & Chat"),a.createElement(El,{center:!0},"Public Forums, Tickets & Chat"),t&&a.createElement(El,{center:!0},"Public Forums, Tickets & Chat"),a.createElement(El,{center:!0},"Public Forums, Tickets & Chat"),a.createElement(El,{center:!0},"Remote or On Site Consultation and Training During Deployment"))}))),Sl=e=>{var t;let{plans:n,currentPlan:l}=e;const o="free"==(null===l||void 0===l?void 0:l.slug)&&"2023.02"==(null===l||void 0===l?void 0:l.version),i="earlyBird"===(null===l||void 0===l?void 0:l.slug),c="pro"===(null===l||void 0===l?void 0:l.slug),m=null===(t=Object.values((null===n||void 0===n?void 0:n.free)||{}))||void 0===t||null===(t=t[0])||void 0===t||null===(t=t[0])||void 0===t?void 0:t.planLimitations,[d,u]=(0,a.useState)((()=>[!1,!0,!0,!0,!0])),g={isOldCommunity:o,isEarlyBird:i,isPro:c,freePlanLimitattions:m,showAllPlans:!0,onToggle:e=>u((t=>(t[e]=!t[e],[...t]))),collapsed:d};return a.createElement(s.Flex,{column:!0,gap:5,height:"100%"},a.createElement(yl,(0,r.A)({title:"General",index:0},g)),a.createElement(Cl,(0,r.A)({title:"Features",index:1},g)),a.createElement(wl,(0,r.A)({title:"Usage Allowances",index:2},g)),a.createElement(Al,(0,r.A)({title:"User Roles",index:3},g)),a.createElement(Tl,(0,r.A)({title:"Support",index:4},g)))},Il=e=>{let{plans:t,loaded:n,currentLoaded:l,currentPlan:r}=e;return a.createElement(s.Flex,{column:!0,height:"100%",gap:3},a.createElement(ml,{currentPlan:r}),n&&l?a.createElement(s.Flex,{overflow:"auto",column:!0,gap:5,height:"100%",padding:[0,0,20,0]},a.createElement(Ba,{plans:t,currentPlan:r,showAllPlans:!0,showPricingColumn:!0}),a.createElement(Sl,{plans:t,currentPlan:r})):a.createElement(Rt.A,{title:n?"Loading billing info...":"Loading Netdata plans..."}))},kl={Community:0,Pro:1,Business:2},Fl={month:"Monthly",year:"Yearly"},Pl=()=>{const[e,t]=(0,Bt.ok)(),[n,l]=(0,me.A)();(0,a.useEffect)((()=>{const a=e.get("from"),r=e.get("from_committed_nodes"),o=e.get("interval"),i=e.get("result"),c=e.get("to"),s=e.get("to_committed_nodes"),m=e.get("from_trial");if(i){const d="success"==i,u={from:a,fromNodes:r,interval:o,to:c,toNodes:s,fromTrial:m,success:d};(d?n:l)((e=>{let{from:t,to:n,fromNodes:a,toNodes:l,interval:r,fromTrial:o,success:i=!0}=e;if(o)return{header:i?"Successful upgrade":"Failed to upgrade",text:i?"You have successfully upgraded your plan":"Something went wrong"};const c=Fl[r]||r;if(t===n&&a===l)return{header:i?"Successful billing cycle change":"Failed to update billing cycle",text:i?"Subscription billing cycle changed to ".concat(c):"Subscription is still on ".concat(c," billing cycle")};if(t===n)return{header:i?"Successful change of commitment":"Failed to change the commitment",text:i?"Commitment ".concat(a<l?"increased":"decreased"," from ").concat(a," to ").concat(l," nodes"):"Commitment remained the same, ".concat(a," nodes")};const s=kl[t]>kl[n];return{header:i?"Successfully ".concat(s?"downgraded":"upgraded"," plan"):"Failed to ".concat(s?"downgrade":"upgrade"," plan"),text:i?"Subsrciprion ".concat(s?"downgraded":"upgraded"," from ").concat(t," to ").concat(n," plan (").concat(c,")"):"Remained on ".concat(t," plan")}})(u)),(0,cl.H)("billing","callback","global-view",u),e&&(e.delete("from"),e.delete("from_committed_nodes"),e.delete("interval"),e.delete("result"),e.delete("to"),e.delete("to_committed_nodes"),e.delete("from_trial"),t(e))}}),[e,n,l])},Ml=()=>{Pl();const{loaded:e,value:t}=(0,pn.lU)(),{loaded:n,value:r}=(0,pn.JN)(),o=(0,gn.J)();return a.createElement(M.Ay,{feature:"Billing"},a.createElement(s.Flex,{column:!0,height:"calc(100% - 30px)",gap:3},a.createElement(l.BV,null,a.createElement(l.qh,{path:"/all-plans",element:a.createElement(Il,{isSmall:o,currentPlan:r,loaded:e,currentLoaded:n,plans:t})}),a.createElement(l.qh,{path:"/",element:a.createElement(il,{isSmall:o,currentPlan:r,loaded:e,currentLoaded:n,plans:t})}))))};var Dl=n(58205);const Nl=(0,o.A)((()=>Promise.all([n.e(7208),n.e(2414)]).then(n.bind(n,72414)))),Bl=(0,o.A)((()=>Promise.all([n.e(749),n.e(9510),n.e(185)]).then(n.bind(n,70185)))),Rl=(0,c.default)(m.t).withConfig({displayName:"manage-workspace__ColumnHeader",componentId:"sc-j9n54n-0"})(["width:180px;padding:16px;"]),Ll=e=>t=>a.createElement(a.Suspense,{fallback:a.createElement(Rt.A,{title:"Loading settings tab..."})},a.createElement(e,t)),_l=e=>t=>a.createElement(d.Yv,{flex:"1",overflow:"hidden"},a.createElement(e,t)),Ul=e=>t=>{let{containerProps:n={},...l}=t;return a.createElement(d.Yv,(0,r.A)({flex:"1",overflow:"hidden",height:"100%",padding:[4,0,0]},n),a.createElement(e,l))},Ol=_l(mn),Vl=_l(Re),Hl=_l(nt),Wl=_l(Qe),jl=Ul(jt),Yl=_l(Ml),ql=Ul(Ll(Nl)),zl=_l(Ll(Bl)),Jl=(0,a.memo)((()=>{const e=(0,l.Zp)(),{state:t={},pathname:n}=(0,l.zy)(),{settingsTab:r,...o}=(0,l.g)(),[c]=(0,a.useState)((null===t||void 0===t?void 0:t.previousUrlPath)||null),m=(0,h.ap)("name"),g=(e=>{const t=L.IV.indexOf(e);return-1!==t?t:L.Wk})(r),E=(0,a.useCallback)((t=>{const a=((e,t)=>{const n=e.split("/"),a=n.indexOf("settings")+1-n.length;return"".concat(n.slice(0,a).join("/"),"/").concat(L.IV[t]||L.Wk)})(n,t);e(a)}),[r]);(0,a.useEffect)((()=>{L.ys[r]||e((0,i.tW)(n,{...o,settingsTab:L.Wk}))}),[]);const b=(0,p.JT)("billing:ReadBasic"),f=(0,p.JT)("room:ReadAll"),v=(0,p.JT)("user:ReadAll"),x=(0,p.JT)("channel:ReadAll"),y=(0,A.At)();(0,a.useEffect)((()=>{b||r===L.bO&&e((0,i.tW)(n,{...o,settingsTab:L.Wk}))}),[b,r]);const C=(0,h.bq)(),w=(0,a.useCallback)((t=>{const n=t?"/spaces/".concat(t):c||"/spaces/".concat(C);e(n)}),[c,C]);return m?a.createElement(Kt.A,{permission:"space:ReadSettings"},(e=>a.createElement(M.Ay,{feature:"SpaceSettings"},a.createElement(d.GO,{full:!0,"data-testid":"manageWorkspaceModal",closeOnClickOutside:!1,onClose:w,width:"100%"},a.createElement(u.z,{"data-testid":"manageWorkspaceModal-header",onClose:w,title:a.createElement(un,null)}),a.createElement(s.Tabs,{row:!0,column:!1,"data-testid":"manageWorkspaceModal-tabs",selected:g,onChange:E,TabsHeader:Rl,tabsProps:{column:!0},height:"100%",noDefaultBorder:!0,position:"relative",overflow:"hidden",width:"100%"},a.createElement(s.Tab,{basis:0,"data-testid":"manageWorkspaceModal-spaceTab",label:L.ys[L.mm],"data-ga":"manage-space::click-tab::space-tab",isMenuItem:!0},a.createElement(Ol,{"data-testid":"manageWorkspaceModal-spaceTabContent",onClose:w,small:!0})),a.createElement(s.Tab,{basis:0,"data-testid":"manageWorkspaceModal-warRoomsTab","data-ga":"manage-space::click-tab::rooms-tab",label:"Rooms",isMenuItem:!0},a.createElement(Vl,{"data-testid":"manageWorkspaceModal-warRoomsTabContent"})),(f||y)&&a.createElement(s.Tab,{basis:0,label:"Nodes","data-testid":"manageWorkspaceModal-nodesTab","data-ga":"manage-space::click-tab::nodes-tab",isMenuItem:!0},a.createElement(Hl,{"data-testid":"manageWorkspaceModal-nodesTabContent"})),v&&a.createElement(s.Tab,{basis:0,"data-testid":"manageWorkspaceModal-usersTab","data-ga":"manage-space::click-tab::users-tab",label:"Users",isMenuItem:!0},a.createElement(Wl,{"data-testid":"manageWorkspaceModal-usersTabContent"})),x&&a.createElement(s.Tab,{basis:0,label:"Alerts & Notifications","data-testid":"manageWorkspaceModal-notificationsTab","data-ga":"manage-space::click-tab::notifications-tab",isMenuItem:!0},a.createElement(jl,null)),b&&!window.envSettings.onprem&&a.createElement(s.Tab,{basis:0,"data-testid":"manageWorkspaceModal-billingTab","data-ga":"manage-space::click-tab::billing-tab",label:"Plan & Billing",isMenuItem:!0},a.createElement(Yl,{"data-testid":"manageWorkspaceModal-billingTabContent"})),a.createElement(s.Tab,{basis:0,"data-testid":"manageWorkspaceModal-integrationsTab","data-ga":"manage-space::click-tab::integrations-tab",label:"Integrations",isMenuItem:!0},a.createElement(ql,{flavour:Dl.D_.settingsPage,containerProps:{padding:[0]},"data-testid":"manageWorkspaceModal-integrationsTabContent"})),a.createElement(s.Tab,{basis:0,"data-testid":"manageWorkspaceModal-configurationsTab","data-ga":"manage-space::click-tab::configurations-tab",label:L.ys[L.$d],isMenuItem:!0},a.createElement(zl,null))))))):null})),Gl=()=>{const{pathname:e,state:t}=(0,l.zy)();return a.createElement(l.BV,null,a.createElement(l.qh,{path:"/",element:a.createElement(l.C5,{state:t,to:{pathname:"".concat(e,"/").concat(L.Wk)}})}),a.createElement(l.qh,{path:":settingsTab/*",element:a.createElement(Jl,null)}))}},39522:(e,t,n)=>{"use strict";n.d(t,{A:()=>x});var a=n(58168),l=n(96540),r=n(10058),o=n(47767),i=n(22292),c=n(55463),s=(n(17333),n(98992),n(54520),n(62953),n(47444)),m=n(71835),d=n(54702),u=n(55189),g=n(3914),p=n(48849),E=n(56639),h=n(14994);var b=n(57992);const f="leave-space-dialog",v="leaveSpaceDialog",x=e=>{let{id:t,name:n,onClose:x}=e;const y=(0,o.Zp)(),C=(0,i.uW)("id"),w=(0,c.Gi)(),A=(0,c.i3)(),T=(0,c.pB)(),S=(e=>{const[,t]=(0,m.A)();return(0,s.Zs)((n=>{let{snapshot:a,set:l,reset:r}=n;return async n=>{let{currentUserId:o,onSuccess:i,onError:s}=n;const m=await a.getPromise((0,g.nC)("ids")),b=m.filter((t=>e!==t)),[f]=b;if(!f)return void t({header:"Spaces",text:u.sh.leave});const{slug:v}=f&&await a.getPromise((0,E.Ay)(f));l((0,g.nC)("ids"),b),l(p.A,(t=>t.filter((t=>t!==e))));try{await(0,d.XY)(e,[o]),i&&i(v),(0,c.Z8)(r,e),(0,h.Is)(r,e),r((0,E.Ay)(e))}catch(x){l((0,g.nC)("ids"),m),s&&s()}}}),[e])})(t),I=(0,b.A)(t),k=(0,l.useCallback)((e=>y("/spaces/".concat(e))),[]),F=1===w.length,P=1===A.length&&T,M=F?{confirmLabel:"Yes, leave","data-ga":"".concat(f,"-last-member"),"data-testid":"".concat(v,"LastMember"),handleConfirm:()=>I({onSuccess:k}),message:l.createElement(l.Fragment,null,"If you leave, space ",l.createElement("strong",null,n)," will be deleted immediately.",l.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(n," space")}:P?{confirmLabel:"Give rights","data-ga":"".concat(f,"-last-admin"),"data-testid":"".concat(v,"LastAdmin"),handleConfirm:()=>y("users"),isConfirmPositive:!0,message:l.createElement(l.Fragment,null,"You are the last admin of ",l.createElement("strong",null,n)," space. Please give admin rights to another member so you can leave this space."),title:"Leave ".concat(n," space")}:{confirmLabel:"Yes, leave","data-ga":f,"data-testid":v,handleConfirm:()=>S({currentUserId:C,onSuccess:k}),message:l.createElement(l.Fragment,null,"You are about to leave ",l.createElement("strong",null,n)," space.",l.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(n," space")};return l.createElement(r.ConfirmationDialog,(0,a.A)({handleDecline:x},M))}},47193:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});n(62953);var a=n(69765),l=n(67990),r=n(87860),o=n(3914),i=n(47762),c=n(87659);const s=function(){let{polling:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:t=""}=(0,a.pr)(),n=(0,l.gr)(t,"ids"),s=(0,l.gr)(t,"loaded"),m=(0,i.Gt)(n),d=(0,o.vt)(),[u,,,g]=(0,c.A)();return(0,r.A)({id:t,spaceId:d,polling:e}),{areDefaultRoomNodesLoaded:s,nodes:m,isClaimNodeModalOpen:u,closeClaimNodeModal:g}}},97200:(e,t,n)=>{var a=n(13222),l=0;e.exports=function(e){var t=++l;return a(e)+t}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/8784.c51d36fede97c85313e9.chunk.js b/src/web/gui/v2/8784.c51d36fede97c85313e9.chunk.js
new file mode 100644
index 000000000..328a61054
--- /dev/null
+++ b/src/web/gui/v2/8784.c51d36fede97c85313e9.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e6bc7886-8819-495f-879e-fb60174ef870",e._sentryDebugIdIdentifier="sentry-dbid-e6bc7886-8819-495f-879e-fb60174ef870")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[8784],{92155:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(58168),o=n(96540),r=n(50876);const l=e=>(0,o.forwardRef)(((t,n)=>{let{callback:l,feature:s,isStart:i,isSuccess:d,isFailure:c,eventReason:u,payload:m={},...p}=t;const{sendLog:g,isReady:h}=(0,r.A)(),b=(0,o.useCallback)((()=>{const e=p[l],t={feature:s,isStart:i,isSuccess:d,isFailure:c,eventReason:u,...m,...p["data-ga"]?{dataGa:p["data-ga"]}:{},...p.dataGa?{dataGa:p.dataGa}:{},...p["data-track"]?{dataTrack:p["data-track"]}:{},...p.label?{label:p.label}:{}};"function"==typeof e&&e(),g(t,!0)}),[l,g,h,m,p]),f=(0,o.useMemo)((()=>({...p,[l]:b})),[p,l,b]);return o.createElement(e,(0,a.A)({ref:n},f))}));var s=n(67276);const i=e=>(0,o.forwardRef)(((t,n)=>{let{payload:r={},...i}=t;const d=l(e);return o.createElement(d,(0,a.A)({},i,{ref:n,callback:"onClick",payload:{...r,action:s.o1.buttonClicked}}))}))},96083:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(58168),o=n(68415),r=n(96540),l=n(20982),s=n(10058);const i=(0,r.forwardRef)(((e,t)=>{let{onClick:n,src:i,title:d="User avatar",width:c=8,height:u=8,...m}=e;return r.createElement(s.Flex,(0,a.A)({cursor:"pointer",round:"50%","data-testid":"userAvatar",title:d,alt:d,onClick:e=>n&&n(e),width:c,height:u},m,{ref:t,alignItems:"center",justifyContent:"center",background:"spaceIdle",color:"textLite",overflow:"hidden"}),i?r.createElement(s.Flex,{as:"img",src:i,alt:d,width:c,height:u}):r.createElement(l.g,{icon:o.yV,size:"lg",alt:d}))}))},18682:(e,t,n)=>{n.d(t,{C:()=>l});var a=n(33436),o=n(78217),r=n(13871);const l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return()=>{(0,a.A)(e);const n=(0,r.UI)({header:"Copied",text:"Command copied to your clipboard! Please run it on your node's terminal.",icon:"gear",...t,success:!0});o.A.success(n,{context:"copy"})}}},87292:(e,t,n)=>{n.d(t,{Ay:()=>u,R0:()=>c});var a=n(96540),o=n(8711),r=n(10058),l=n(18682);const s=(0,o.default)(r.Box).attrs((e=>({color:"textDescription",background:"modalTabsBackground",border:{side:"all",color:"borderSecondary"},padding:[4,10,4,4],position:"relative",width:"100%",...e}))).withConfig({displayName:"command__StyledTerminalCommand",componentId:"sc-wnwmk3-0"})(["color:",";border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;font-family:Courier New,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;"],(0,r.getColor)("textDescription")),i=(0,o.default)(r.Icon).withConfig({displayName:"command__StyledIcon",componentId:"sc-wnwmk3-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),d=(0,o.default)(r.Box).attrs({color:"textDescription",border:{side:"all",color:"borderSecondary"},background:"modalTabsBackground",padding:[0,1]}).withConfig({displayName:"command__CodeText",componentId:"sc-wnwmk3-2"})(["display:inline-block;color:",";border-radius:2px;font-family:Courier New,monospace;letter-spacing:0.09px;line-height:16px;font-size:12px;font-weight:bold;word-break:break-word;"],(0,r.getColor)("textDescription")),c=e=>{let{children:t,...n}=e;return a.createElement(d,n,t)},u=e=>{let{children:t,confirmationText:n="Command copied to your clipboard.",commandText:o=t,...d}=e;return a.createElement(s,d,t,a.createElement(r.Box,{position:"absolute",bottom:"8px",right:"8px"},a.createElement(i,{name:"copy",size:"small",color:"primary",onClick:(0,l.C)(o||t,{text:n})})))}},36091:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(58168),o=n(96540),r=n(13083),l=n(10058);const s=()=>o.createElement(l.Text,null,"Something went wrong during document parsing"),i=e=>t=>{let{transformConfiguration:n={},validationConfig:l={},validate:i,errorComponent:d,children:c,...u}=t;const{tree:m,errors:p}=(e=>{let{markdocContent:t,validate:n,validationConfig:a,transformConfiguration:l}=e;return(0,o.useMemo)((()=>{const e=r.Ay.parse("string"===typeof t?t:"");let o=[];return n&&(o=r.Ay.validate(e,a)),{tree:o.length?null:r.Ay.transform(e,l),errors:o}}),[t,n,a,l])})({markdocContent:c,validate:i,validationConfig:l,transformConfiguration:n}),g=d&&"function"==typeof d?d:s;return p.length?o.createElement(g,{errors:p}):o.createElement(e,(0,a.A)({tree:m},u))},d=(0,o.memo)(i((e=>{let{tree:t,renderConfiguration:n}=e;return r.Ay.renderers.react(t,o,n)}))),c=(i((e=>{let{tree:t}=e;return r.Ay.renderers.html(t)})),d)},40267:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(96540),o=n(10058);const r=e=>{let{flavour:t,icon:n,children:r}=e;return a.createElement(o.Pill,{icon:n,textProps:{textTransform:"capitalize"},flavour:t},r)}},32089:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(58168),o=n(96540),r=n(10058);const l=e=>{let{vertical:t,color:n="borderSecondary",...l}=e;return o.createElement(r.Box,(0,a.A)({as:"hr",height:t?"100%":"1px"},t?{}:{width:"100%"},{sx:{borderWidth:t?"0px 0px 0px 1px":"1px 0px 0px 0px",borderColor:n,borderStyle:"solid"}},l))}},38784:(e,t,n)=>{n.r(t),n.d(t,{AssistantAlerts:()=>K,AssistantChat:()=>fe});n(62953);var a=n(96540),o=n(69765),r=n(51913),l=n(58168),s=n(10058),i=n(73700),d=(n(3064),n(14905),n(98992),n(72577),n(8872),n(36091)),c=n(47762);const u=e=>{let{label:t,value:n}=e;return a.createElement(s.Flex,{gap:2},a.createElement(s.Text,{strong:!0},t,":"),a.createElement(s.Text,null,n))},m=e=>{let{name:t,nodeId:n,chartId:l,alertOptions:i}=e;const d=(0,o.ID)(),[,m]=(0,r.bg)(),p=(0,c.xY)(n,"name");return a.createElement(s.Flex,{column:!0},i.length>1&&a.createElement(s.Box,{margin:[0,0,2,0]},a.createElement(s.Select,{"data-testid":"".concat(t,"-assistant-modal-alerts-select"),onChange:e=>{let{value:t}=e;return m({roomId:d,alert:{name:t}})},styles:{size:"tiny"},menuPlacement:"auto",options:i,value:{value:t,label:t}})),1==i.length&&a.createElement(u,{label:"Alert",value:t}),p&&a.createElement(u,{label:"Node",value:p}),l&&a.createElement(u,{label:"Chart id",value:l}))};var p=n(32089),g=n(8711),h=n(4659),b=n(87292),f=n(68831);const x=g.default.ol.withConfig({displayName:"markdocSchema__OrderedList",componentId:"sc-1maymd4-0"})(["list-style:roman;padding-left:14px;"]),E=g.default.ul.withConfig({displayName:"markdocSchema__UnorderedList",componentId:"sc-1maymd4-1"})(['list-style-image:url("','/img/list-style-image.svg");padding-left:14px;'],f.A.assetsBaseURL),v={heading:{render:e=>{let{level:t=1,...n}=e,o=s.H1;switch(t){case 2:o=s.H2;break;case 3:o=s.H3;break;case 4:o=s.H4;break;case 5:o=s.H5;break;case 6:o=s.H6}return a.createElement(o,(0,l.A)({margin:[2,0]},n))},attributes:{id:{type:String},level:{type:Number}}},paragraph:{render:e=>{let{children:t,...n}=e;return a.createElement(s.Flex,(0,l.A)({padding:[2,0]},n),a.createElement(s.Text,null,t))}},link:{render:e=>{let{children:t,href:n,...o}=e;return a.createElement(h.A,(0,l.A)({href:n,rel:"noopener noreferrer",target:"_blank"},o),t)},attributes:{href:{type:String}}},code:{render:e=>{let{content:t,...n}=e;return a.createElement(b.R0,n,t)},attributes:{content:{type:String}}},fence:{render:e=>{let{content:t,...n}=e;return a.createElement(b.Ay,n,t)},attributes:{content:{type:String}}},list:{render:e=>{let{ordered:t,children:n,...o}=e;const r=t?x:E;return a.createElement(r,o,n)},attributes:{ordered:{type:Boolean}}}},w=e=>{let{selectedAlert:t}=e;const[n]=(0,r.Ws)(),{name:o,nodeId:l,chartId:i}=t,{loaded:c,value:u,hasError:g}=(0,r.vQ)({alert:o,node:l,chart:i}),h=(e=>e.reduce(((e,t)=>{const n={value:t.name,label:t.name};return e.find((e=>{let{label:t}=e;return t==n.label}))||e.push(n),e}),[]))(n);return c?g?a.createElement(s.Text,null,"Something went wrong"):null!==u&&void 0!==u&&u.result?a.createElement(s.Flex,{column:!0,gap:3},a.createElement(m,{name:o,nodeId:l,chartId:i,alertOptions:h}),a.createElement(p.A,null),a.createElement(d.A,{transformConfiguration:{nodes:v}},u.result)):a.createElement(s.Text,null,"No data"):a.createElement(s.Text,null,"Loading...")};var y=n(40267),C=n(29217);const k=(0,g.default)(s.Flex).withConfig({displayName:"styled__ElevatedContent",componentId:"sc-16kc0pw-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),A=(0,g.default)(s.Icon).withConfig({displayName:"styled__IconAbsolute",componentId:"sc-16kc0pw-1"})(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);"]),I=e=>{let{alert:t,...n}=e;return a.createElement(C.A,{content:"Show assistant"},a.createElement(k,(0,l.A)({position:"absolute",top:"0",right:"0",cursor:"pointer"},n),a.createElement(y.A,{flavour:(null===t||void 0===t?void 0:t.status)||"neutral"},null===t||void 0===t?void 0:t.name)))};var _=n(55794),M=n.n(_),S=n(87659);const B=g.default.ul.withConfig({displayName:"helpTooltipContent__List",componentId:"sc-uh9315-0"})(["width:350px;padding-left:16px;list-style:disc outside none;"]),F=function(){let{disableDrag:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return a.createElement(B,null,e?null:a.createElement("li",null,"You can drag around the assistant window and navigate to other tabs within the same room, and the assistant window won't go away."),a.createElement("li",null,"Use the buttons at the right to expand, or minimize the assistant window."),a.createElement("li",null,"Hold down the ",a.createElement(s.TextSmall,{strong:!0},"Shift")," button in order to select any text inside the assistant window."))};var N=n(63950),T=n.n(N);const z=e=>{let{onModalClose:t=T()}=e;return a.createElement(C.A,{content:"Close assistant"},a.createElement(k,{position:"absolute",bottom:"37px",right:"-10px",background:"mainBackground",sx:{borderRadius:"100%"},border:{side:"all",color:"primary",size:"1px",type:"solid"},width:"28px",height:"28px",onClick:t,cursor:"pointer"},a.createElement(A,{name:"x",color:"text",size:"sm"})))},R=e=>{let{onClick:t=T()}=e;return a.createElement(k,{position:"absolute",top:"0",right:"0",onClick:t,cursor:"pointer"},a.createElement(s.Pill,{flavour:"neutral"},"Show assistant"))},q=e=>{let{MaximizeComponent:t=R,isMinimized:n,maximize:o=T(),onModalClose:r=T()}=e;const[l,i]=(0,a.useState)(!1);return a.createElement(s.Flex,{position:"relative",width:"56px",height:n?"95px":"56px",onMouseEnter:()=>i(n),onMouseLeave:()=>i(!1)},a.createElement(k,{position:"absolute",bottom:"0",background:"primary",sx:{borderRadius:"100%"},width:"56px",height:"56px",cursor:"move"},a.createElement(A,{name:"netdataAssistant",size:"large"})),l&&a.createElement(a.Fragment,null,a.createElement(t,{onClick:()=>{n&&o()}}),a.createElement(z,{onModalClose:r})))};var D=n(47731);const H=e=>{let{expanded:t,isMobile:n}=e;return n?{base:"95vw"}:t?{base:"80vw"}:{base:150,max:150,min:70}},L=e=>{let{expanded:t,isMobile:n}=e;return n?{base:"80vh",max:"80vh",min:"10vh"}:t?{base:"80vh",min:"80vh"}:{base:150,max:150,min:150}},U=(0,g.default)(s.ModalContent).attrs((e=>{let{expanded:t,isMobile:n,getWidth:a,getHeight:o,...r}=e;return{width:a({expanded:t,isMobile:n}),height:o({expanded:t,isMobile:n}),padding:[0,0,4,0],...r}})).withConfig({displayName:"assistantModalBase__ModalContent",componentId:"sc-15vyjlc-0"})([""]),P=(0,g.default)(s.ModalBody).withConfig({displayName:"assistantModalBase__StyledModalBody",componentId:"sc-15vyjlc-1"})(["flex-direction:",";"],(e=>{let{columnReverse:t}=e;return t?"column-reverse":"column"})),W=function(){let{title:e,body:t,modalContentProps:n={},modalBodyProps:o={},onClose:r,MaximizeComponent:i,disableDrag:d,getWidth:c=H,getHeight:u=L}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[m,p]=(0,S.A)(),[g,h]=(0,a.useState)(!1),[b,f,,x]=(0,S.A)(),E=(0,D.J)();return a.createElement(s.Modal,{zIndex:80,backdrop:!1},a.createElement(M(),{disabled:d||g||E},a.createElement(s.Flex,{column:!0,alignItems:"end",gap:3},!b&&a.createElement(U,(0,l.A)({expanded:m,cursor:g?"text":"move",tabIndex:0,onKeyDown:e=>{let{key:t}=e;"Shift"==t&&h(!0)},onKeyUp:()=>h(!1),isMobile:E,getWidth:c,getHeight:u},n),a.createElement(s.ModalHeader,{justifyContent:"between"},a.createElement(s.Flex,{gap:2,alignItems:"center"},a.createElement(s.Icon,{name:"netdataAssistant",color:"text"}),e||a.createElement(s.H4,null,"Netdata Assistant"),a.createElement(C.A,{plain:!0,isBasic:!0,align:"top",content:a.createElement(F,{disableDrag:d})},a.createElement(s.Flex,null,a.createElement(s.Icon,{name:"question",color:"textLite",width:"16px",height:"16px"})))),a.createElement(s.Flex,{alignItems:"baseline"},E?null:a.createElement(a.Fragment,null,a.createElement(s.ModalButton,{iconName:"minimize_s",onClick:f,tooltip:"Minimize window",testId:"assistant-modal-minimize-button"}),a.createElement(s.ModalButton,{iconName:m?"reduceSize":"fullScreen",onClick:p,tooltip:m?"Reduce window size":"Expand window",testId:"assistant-modal-expand-collapse-button"})),a.createElement(s.ModalCloseButton,{onClose:r,position:"unset",tooltip:"Close window",testId:"assistant-modal-close-button"}))),a.createElement(P,(0,l.A)({overflow:{vertical:"auto"},cursor:g?"text":"default"},o),t)),a.createElement(q,{MaximizeComponent:i,isMinimized:b,maximize:x,onModalClose:r}))))},G=e=>{let{alertNameInHeader:t,selectedAlert:n}=e;return t?a.createElement(y.A,{flavour:(null===n||void 0===n?void 0:n.status)||"neutral"},null===n||void 0===n?void 0:n.name):a.createElement(s.H4,null,"Netdata Assistant")},j=(Q=W,e=>{const[t,n]=(0,a.useState)(!1),[o,s]=(0,r.bg)(),d=(null===o||void 0===o?void 0:o.alert)||{},c=(0,i.s)(300,(e=>{let{target:t}=e;return n(t.scrollTop>150&&!(null===d||void 0===d||!d.name))})),u=(0,a.useCallback)((()=>s(null)),[s]);return a.createElement(Q,(0,l.A)({title:a.createElement(G,{alertNameInHeader:t,selectedAlert:d}),body:a.createElement(w,{selectedAlert:d}),onClose:u,modalBodyProps:{onScroll:c},MaximizeComponent:e=>a.createElement(I,(0,l.A)({alert:d},e))},e))});var Q;const Y=j,K=()=>{const e=(0,o.ID)(),[t,n]=(0,r.bg)(),{roomId:l,alert:s}=t||{};return(0,a.useEffect)((()=>{l!=e&&n(null)}),[l,e]),s&&l==e?a.createElement(Y,null):null};var V=n(22292),O=n(96083);const Z=()=>a.createElement(s.Flex,{width:12},a.createElement(s.Icon,{name:"netdataAssistant",width:"48px",height:"48px",color:"primary"})),J=e=>{let{flavour:t="assistant",children:n,...o}=e;const r="assistant"==t,i=(0,V.uW)("avatarURL"),d={...r?{background:"modalBackground"}:{},border:{side:"top",color:"primary"}};return a.createElement(s.Flex,(0,l.A)({gap:2,padding:[4]},d,o),r?a.createElement(Z,null):a.createElement(O.A,{src:i||"",width:12,height:12}),a.createElement(s.Flex,{flex:{grow:1,shrink:1}},n))};var X=n(50876);const $=e=>{let{text:t}=e;const{sendButtonClickedLog:n}=(0,X.A)(),o=(0,r.ZV)(),l=(0,a.useCallback)((()=>{o(t),n({feature:"NetdataAssistantQuestion",question:t,kickstartQuestion:!0})}),[o,n]);return a.createElement(s.Flex,{alignItems:"center",justifyContent:"between",padding:[2],background:"inputBg",round:!0,cursor:"pointer",onClick:l},a.createElement(s.TextBig,null,t),a.createElement(s.Icon,{name:"chevron_right_s",color:"text",height:"12px",cursor:"pointer"}))},ee=()=>a.createElement(s.Flex,{column:!0,gap:4},a.createElement(s.TextBig,null,"Hello! Welcome to Netdata Assistant! Here are some options to help you kickstart our conversation:"),a.createElement(s.Flex,{column:!0,gap:2},a.createElement($,{text:"What is a node?"}),a.createElement($,{text:"What is a Netdata parent?"})),a.createElement(s.TextBig,null,"Just select the option you're interested in, or feel free to ask anything else!")),te=()=>a.createElement(J,{border:"none"},a.createElement(ee,null));n(41393),n(81454);const ne=(0,n(92155).A)(s.Button),ae=e=>{let{question:t,answer:n,feedback:o,setFeedback:r,flavour:l}=e;return a.createElement(ne,{feature:"AssistantAnswerFeedback",payload:{question:t,answer:n,feedback:l},flavour:o===l?"hollow":"borderless",icon:"thumbsUp"==l?"thumb_up":"thumb_down",onClick:()=>r(l),"data-testid":"assistant-chat-".concat(l),small:!0})},oe=function(){var e,t;let{id:n,questionId:o,additionalInfo:r,messages:i=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[d,c]=(0,a.useState)(),u=null===(e=i.find((e=>e.id==o)))||void 0===e?void 0:e.value,m=null===(t=i.find((e=>e.id==n)))||void 0===t?void 0:t.value,p=(0,a.useMemo)((()=>({feedback:d,setFeedback:c,question:u,answer:m})),[d,c]);return a.createElement(s.Flex,{alignItems:"center",justifyContent:"between"},a.createElement(s.Flex,null,a.createElement(ae,(0,l.A)({},p,{flavour:"thumbsUp"})),a.createElement(ae,(0,l.A)({},p,{flavour:"thumbsDown"}))),r?a.createElement(h.A,{Component:s.Text,href:r,target:"_blank",rel:"noopener noreferrer"},"Read more..."):null)};var re=n(63314);const le=()=>a.createElement(re.DL,{feature:"NetdataAssistantAnswer"},a.createElement(s.TextBig,null,"Something went wrong. Please try again.")),se=()=>{const{messages:e}=(0,r.Gp)();return e.map((t=>{let{id:n,questionId:o,type:r,pending:l,value:i,additionalInfo:c,error:u}=t;return a.createElement(J,{key:n,flavour:"answer"==r?"assistant":"user"},"answer"==r?l?"...":u?a.createElement(le,null):a.createElement(s.Flex,{column:!0,gap:1},a.createElement(d.A,{transformConfiguration:{nodes:v}},i),a.createElement(oe,{id:n,questionId:o,additionalInfo:c,messages:e})):i)}))},ie=(0,g.default)(s.Icon).withConfig({displayName:"input__StyledIcon",componentId:"sc-m4unkx-0"})(["opacity:",";"],(e=>{let{disabled:t}=e;return t?".5":"1"})),de=e=>a.createElement(C.A,{plain:!0,content:"Send your message"},a.createElement(s.Box,null,a.createElement(ie,(0,l.A)({name:"chevron_right_s",color:"text",size:"small",cursor:"pointer"},e)))),ce=(0,g.default)(s.Box).withConfig({displayName:"input__InputContainer",componentId:"sc-m4unkx-1"})(["box-shadow:0 0 8px rgba(0,0,0,0.5);"]),ue=()=>{const{sendButtonClickedLog:e}=(0,X.A)(),[t,n]=(0,a.useState)(""),{pending:o}=(0,r.Gp)(),l=(0,r.ZV)(),i=(0,a.useCallback)((()=>{!o&&t&&(l(t),n(""),e({feature:"NetdataAssistantQuestion",question:t}))}),[o,t,l,n,e]);return a.createElement(ce,{width:"100%",position:"fixed",bottom:"68px",padding:[4],background:"modalBackground"},a.createElement(s.TextInput,{value:t,placeholder:"Message assistant...",iconRight:o?null:a.createElement(de,{onClick:i,disabled:o||!t}),onChange:e=>{let{target:{value:t}}=e;return n(t)},onKeyDown:e=>{let{key:t}=e;"Enter"==t&&i()},autoFocus:"autofocus",disabled:o}))},me=()=>a.createElement(s.Flex,{column:!0},a.createElement(s.Flex,{column:!0,padding:[0,0,17,0]},a.createElement(te,null),a.createElement(se,null)),a.createElement(ue,null)),pe=e=>{let{expanded:t,isMobile:n}=e;return n?{base:"95vw"}:t?{base:"60vw"}:{base:125,max:150,min:60}},ge=e=>{let{expanded:t,isMobile:n}=e;return n?{base:"80vh",max:"80vh",min:"10vh"}:t?{base:"80vh",min:"80vh"}:{base:80,max:150,min:80}},he=(e=>t=>a.createElement(re.Ay,{feature:"NetdataAssistant"},a.createElement(e,(0,l.A)({body:a.createElement(me,null),modalContentProps:{padding:[0]},modalBodyProps:{height:"100%",padding:[0],columnReverse:!0},getWidth:pe,getHeight:ge},t))))(W),be=he,fe=()=>{const[e,,t]=(0,r.MY)(),{clear:n}=(0,r.Gp)(),o=(0,a.useCallback)((()=>{t(),n()}),[t,n]);return e?a.createElement(be,{onClose:o}):null}},51913:(e,t,n)=>{n.d(t,{ZV:()=>v,bg:()=>h,vQ:()=>g,Ws:()=>b,Gp:()=>E,MY:()=>x});n(17333),n(3064),n(41393),n(98992),n(54520),n(72577),n(81454),n(62953);var a=n(96540),o=n(47444),r=n(26655),l=n(49286);var s=n(3914),i=n(69765);const d=(0,o.eU)({key:"assistantAlert",default:null}),c=(0,o.eU)({key:"assistantAlertsAtom",default:[]}),u=(0,o.eU)({key:"assistantChatAtom",default:{open:!1,messages:[]}});var m=n(33829);const p=(0,o.K0)({key:"assistantAlertSelector",get:e=>{let{space:t,room:n,alert:a,node:o,chart:l}=e;return()=>(e=>{let{space:t,room:n,alert:a,node:o,chart:l}=e;return r.A.post("/api/v1/troubleshoot",{space:t,room:n,alarm:a,node:o,chart:l})})({space:t,room:n,alert:a,node:o||"dummy-node-id",chart:l||"dummy-chart-id"})},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),g=e=>{var t;let{alert:n,node:a,chart:r}=e;const l=(0,s.vt)(),d=(0,i.ID)(),c=(0,o.xf)(p({space:l,room:d,alert:n,node:a,chart:r}));return{loaded:"loading"!==c.state,value:null===(t=c.contents)||void 0===t?void 0:t.data,hasError:"hasError"===c.state}},h=()=>(0,o.L4)(d),b=()=>(0,o.L4)(c),f=()=>(0,o.L4)(u),x=()=>{const[e,t]=f(),n=(0,a.useCallback)((()=>t((e=>({...e,open:!0})))),[t]),o=(0,a.useCallback)((()=>t((e=>({...e,open:!1})))),[t]);return[null===e||void 0===e?void 0:e.open,n,o]},E=()=>{const[e,t]=f(),n=(0,a.useCallback)((e=>t((t=>({...t,messages:[...t.messages,e]})))),[t]),o=(0,a.useCallback)((()=>{t((e=>({...e,messages:[]})))}),[t]),r=(0,a.useMemo)((()=>e.open&&!!e.messages.find((e=>{let{pending:t}=e;return!!t}))),[e]);return{messages:null===e||void 0===e?void 0:e.messages,pending:r,addMessage:n,clear:o}},v=()=>{const e=(()=>{const{addMessage:e}=E();return(0,a.useCallback)((t=>{const n=(0,m.A)();return e({id:n,type:"question",value:t}),n}),[e])})(),t=(()=>{const{addMessage:e}=E();return(0,a.useCallback)((t=>{let{questionId:n,pending:a,answer:o}=t;return e({id:(0,m.A)(),questionId:n,type:"answer",value:o,pending:a})}),[e])})(),n=(()=>{const[,e]=f();return(0,a.useCallback)((t=>{let{questionId:n,value:a,additionalInfo:o,error:r}=t;e((e=>({...e,messages:e.messages.map((e=>e.questionId==n?{...e,pending:!1,value:a,additionalInfo:o,error:r}:e))})))}),[])})();return(0,a.useCallback)((a=>{const o=e(a);var s;t({questionId:o,pending:!0}),(s=a,r.A.post("/api/v1/chat",{messages:[{role:"user",content:s}]},{transform:e=>(0,l.bn)(e)})).then((function(){let{data:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{session:{messages:t},additionalInfo:a}=e,r=(t||[]).filter((e=>{let{role:t}=e;return"assistant"==t})),l=r.length?r[r.length-1]:null;null!==l&&void 0!==l&&l.content?n({questionId:o,value:l.content,additionalInfo:a}):n({questionId:o,error:"Something went wrong"})})).catch((e=>{n({questionId:o,error:e.message||"Something went wrong"})}))}),[e,n])}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/9297.394c9cbf0a1e402384a6.chunk.js b/src/web/gui/v2/9297.394c9cbf0a1e402384a6.chunk.js
new file mode 100644
index 000000000..1df6c3769
--- /dev/null
+++ b/src/web/gui/v2/9297.394c9cbf0a1e402384a6.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4c187f85-fd10-4fbd-9c5c-cdf3f184e916",e._sentryDebugIdIdentifier="sentry-dbid-4c187f85-fd10-4fbd-9c5c-cdf3f184e916")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9297],{82700:(e,t,n)=>{n.d(t,{Ay:()=>v,V$:()=>p,b1:()=>g});var a=n(58168),r=(n(17333),n(41393),n(14905),n(8159),n(98992),n(54520),n(81454),n(8872),n(37550),n(62953),n(96540)),l=n(63950),o=n.n(l),i=n(8711),s=n(27467),c=n(10058),d=n(54924),u=n(29217);const m=e=>e?e[0].toUpperCase()+e.slice(1):"Unknown",g=(0,i.default)(c.Flex).attrs((e=>({as:"li",role:"option",padding:[1,2],gap:1,justifyContent:"between",width:"100%",...e}))).withConfig({displayName:"checkboxes__ItemContainer",componentId:"sc-1vef46u-0"})(["cursor:",";opacity:",";align-items:",";"," ",""],(e=>{let{disabled:t}=e;return t?"default":"pointer"}),(e=>{let{stale:t,disabled:n,selected:a}=e;return!t&&!n||a?1:.6}),(e=>{let{alignItems:t}=e;return t||"center"}),(e=>{let{multi:t,selected:n,theme:a}=e;return!t&&n&&"\n background-color: ".concat((e=>{let{theme:t}=e;const{name:n}=t;return("Dark"===n?(0,c.getRgbColor)(["green","green20"]):(0,c.getRgbColor)(["green","green170"]))({theme:t})})({theme:a}),";\n ")}),(e=>{let{multi:t,selected:n,disabled:a,theme:r}=e;return!t&&!n&&!a&&"\n &:hover {\n background-color: ".concat((0,c.getColor)("secondaryHighlight")({theme:r}),";\n }\n ")})),p=(0,i.default)(c.MenuDropdown).attrs((e=>({background:"transparent",hideShadow:!0,height:{max:"300px"},width:{max:"600px"},overflow:"auto",...e}))).withConfig({displayName:"checkboxes__CheckboxesContainer",componentId:"sc-1vef46u-1"})([""]),h=(0,r.memo)((e=>{let{baseKey:t,extraKey:n,paramFlavour:l="arr",param:o,Item:i,testIdPrefix:c,collection:d,getValue:u,getLabel:m,itemsProps:g,itemProps:h,capitalized:f=!0,multi:v=!0,merge:y=!1,...x}=e;const[b,E]=(0,s.N9)(o,{defaultValue:[],key:t,extraKey:n,flavour:l,merge:y});(0,r.useEffect)((()=>{if(!d.length||!b.length)return;const e=b.filter((e=>d.some((t=>u(t)===e))));e.length!==b.length&&E(e)}),[d.length,E]);const I=(0,r.useCallback)((e=>{let{value:t,checked:n}=e;E(v?function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?t:[]:n?[...e,t]:e.filter((e=>e!==t))}:()=>n?[t]:[])}),[E]),C=(0,r.useMemo)((()=>(e=>{let{collection:t,selected:n,getValue:a,getLabel:r,itemsProps:l,multi:o}=e;if(!t.length)return[];const i=o&&t.length<=n.length,s=o&&!i&&!!n.length;return t.reduce(((e,t)=>{const o=n.includes(a(t));return[...e,{...l.row,...t,value:a(t),label:r(t),selected:o}]}),o?[{...l.head,label:"Select all",value:t.map(a),selected:i,indeterminate:s}]:[])})({collection:d,selected:b,getValue:u,getLabel:m,itemsProps:g,multi:v})),[b,d]);return r.createElement(p,(0,a.A)({"data-testid":"".concat(c,"-filter-selections"),items:C,Item:i,onItemClick:I,value:b,"data-value":b.join(",")||"all-selected",hasSearch:d.length>5,searchMargin:[0,0,1],itemProps:{...h,testIdPrefix:c,capitalized:f,multi:v}},x))}),((e,t)=>e.baseKey===t.baseKey&&e.extraKey===t.extraKey&&e.multi===t.multi&&e.collection===t.collection)),f=e=>e;h.defaultProps={itemProps:{padding:[1,.5],multi:!0},itemsProps:{head:{textColor:"textLite"},row:{textColor:"text"}},Item:e=>{let{item:t,onItemClick:n,itemProps:l,...i}=e;const{value:s,disabled:p,onClick:h,label:f,selected:v,excluded:y,indeterminate:x,textColor:b,iconName:E,count:I,countLabel:C="results",actualCount:A,actualCountLabel:k,pill:w,info:S,level:F=0,stale:P,...N}=t,{capitalized:_}=l,{multi:M}=l,K=p||!M&&v,L=e=>{p||(h&&h(e),n({value:s,label:f,checked:!v,item:t}))};return r.createElement(g,(0,a.A)({"aria-selected":v,selected:v,disabled:K,stale:0===I||"0"===I||P||y},N,i,l,{"data-testid":"".concat(l.testIdPrefix,"-filters-item")}),r.createElement(c.Flex,{gap:2,alignItems:"center",padding:[0,0,0,4*F],width:"100%",overflow:"hidden"},M?r.createElement(c.Checkbox,{"data-testid":"".concat(l.testIdPrefix,"-filters-checkbox-").concat(f),checked:v,disabled:K,indeterminate:x,onChange:L,label:r.createElement(c.Flex,{gap:1,alignItems:"center",width:"100%"},E&&r.createElement(c.Icon,{name:E,size:"small",color:"textLite"}),r.createElement(d.default,{Component:c.TextSmall,text:"string"===typeof f&&_?m(f):f.toString(),color:b}))}):r.createElement(c.Flex,{flex:!0,gap:1,padding:[0,1],alignItems:"center",onClick:v?o():L,"data-testid":"".concat(l.testIdPrefix,"-filters-item-").concat(f)},r.createElement(d.default,{Component:c.TextSmall,text:"string"===typeof f&&_?m(f):f.toString(),color:b}))),(!isNaN(I)||/%/.test(I||"")||w)&&r.createElement(u.A,{align:"top",content:S||(A?"".concat(A," ").concat(k," aggregated in ").concat(I," ").concat(C):"".concat(I," ").concat(C))},r.createElement(c.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(l.testIdPrefix,"-filters-").concat(f,"-count"),size:"small"},!!A&&r.createElement(c.TextSmall,null,A," \u2283\xa0"),(w||I).toString())))},getValue:f,getLabel:f};const v=h},59846:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(58168),r=(n(62953),n(96540)),l=n(10058),o=n(27467),i=n(87659),s=n(29217);const c=e=>{let{margin:t,title:n,testIdPrefix:c,baseKey:d,extraKey:u,param:m,paramFlavour:g="arr",children:p,multi:h=!0,defaultIsOpen:f=!0,border:v={side:"bottom",color:"borderSecondary"},required:y=!1,configElements:x,showCounter:b=!0,help:E,collapsible:I=!0,merge:C=!1,...A}=e;const[k,w]=(0,o.N9)(m,{key:d,extraKey:u,flavour:g,merge:C}),[S,F]=(0,i.A)(f||!(null===k||void 0===k||!k.length));return r.createElement(l.Flex,(0,a.A)({"data-testid":"".concat(c,"-filter"),column:!0,padding:[2,0,0],border:v},A),r.createElement(l.Flex,{justifyContent:"between",margin:!I||S?t:[0],gap:2,onClick:I?F:void 0,cursor:"pointer"},r.createElement(l.Flex,{alignItems:"center",gap:2,height:4.5},r.createElement(l.Flex,{gap:2},y&&!(null!==k&&void 0!==k&&k.length)&&r.createElement(l.Icon,{color:"error",name:"error",size:"small"}),r.createElement(l.Flex,{alignItems:"center",gap:.5},r.createElement(l.TextSmall,{strong:!0},n),!!E&&r.createElement(s.A,{align:"top",content:E},r.createElement(l.Flex,null,r.createElement(l.Icon,{name:"question",color:"textLite",width:"12px",height:"12px"})))),b&&!(null===k||void 0===k||!k.length)&&r.createElement(l.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(c,"-selected-count"),tiny:!0},null===k||void 0===k?void 0:k.length)),!y&&h&&!(null===k||void 0===k||!k.length)&&r.createElement(l.Button,{padding:[0],flavour:"borderless",onClick:e=>{e.stopPropagation(),w([])},"data-testid":"".concat(c,"-filter-resetAll"),label:"Reset",small:!0})),r.createElement(l.Flex,{gap:1,alignItems:"center"},"function"===typeof x?x({isOpen:S,collapsible:I}):x,I&&r.createElement(l.Icon,{name:"chevron_left",size:"small",color:"textLite",rotate:S?1:3}))),r.createElement(l.Collapsible,{open:!I||S,height:"100%"},p))}},42828:(e,t,n)=>{n.d(t,{A:()=>P});var a=n(58168),r=(n(17333),n(14905),n(8159),n(98992),n(54520),n(8872),n(37550),n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215),n(62953),n(96540)),l=n(10058),o=n(66245),i=n.n(o),s=n(89935),c=n.n(s),d=n(84976),u=n(47762),m=n(11128),g=n(69418),p=n(54924),h=n(4659),f=n(88494),v=n(37019),y=n(82700),x=n(73865);const b={Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasML:!0,hasAlerts:!0,hasFn:!0},node:{textColor:"textFocus",showAlerts:!0,showMl:!0,showFn:!0}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale"},node:{textColor:"textFocus"}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline"},node:{textColor:"textLite"}}},E=e=>{let{toggle:t,expanded:n}=e;return r.createElement(l.Flex,{cursor:"pointer",role:"button",padding:[.5],gap:.5,onClick:e=>{e.preventDefault(),e.stopPropagation(),t(),setTimeout((()=>e.target.scrollIntoView({behavior:"smooth",block:"nearest"})))}},r.createElement(l.TextNano,{color:"textLite"},n?"Collapse":"Expand"),r.createElement(l.Icon,{name:"chevron_down",width:"10px",height:"10px",color:"textLite",rotate:n?2:null}))},I=e=>{let{isParent:t,stale:n,selected:a,excluded:o,testIdPrefix:i,label:s}=e;return t?null:r.createElement(l.Pill,{hollow:!0,flavour:o?"error":n&&!a?"warning":"success","data-testid":"".concat(i,"-filters-").concat(s,"-stale"),size:"small"},o?"Excluded":n&&!a?"Filtered out":"Included")},C=(A=e=>{let{iconName:t,label:n,textColor:a,value:o,nodePath:i,nodeId:s,onAnchorClick:c,isStale:u,excluded:m,selected:g,isParent:f,itemProps:v,onToggleHidden:y,itemsHidden:x,status:b}=e;return r.createElement(l.Flex,{gap:2,alignItems:"center"},t&&r.createElement(l.Icon,{name:t,size:"small",color:"textLite"}),r.createElement(p.default,{Component:l.TextSmall,text:n,color:a,truncate:!0}),"Offline"!==b&&!Array.isArray(o)&&r.createElement(h.A,{as:d.N_,to:i,state:{nodeId:s},"data-testid":"filterNodes-item-gta",color:"textLite",hoverColor:"text",onClick:c},r.createElement(l.Icon,{name:"nav_arrow_goto",height:"10px",width:"10px"})),r.createElement(I,{stale:u,excluded:m,selected:g,isParent:f,label:n,testIdPrefix:v.testIdPrefix}),!!y&&r.createElement(E,{toggle:y,expanded:!x}))},e=>{let{limitationsApplied:t,...n}=e;return t&&Array.isArray(n.value)?r.createElement(A,n):r.createElement(l.Checkbox,{"data-testid":"filterNodes-checkbox-".concat(n.label),checked:n.selected,disabled:n.isDisabled,indeterminate:n.indeterminate,onChange:n.onSelect,label:r.createElement(A,n)})});var A;const k=e=>{let{item:{value:t,disabled:n,onClick:o,label:i,nodeId:s,selected:m,excluded:b,stale:I,status:A,indeterminate:k,textColor:w,iconName:S,hasAlerts:F,hasML:P,hasFn:N,showAlerts:_,showMl:M,showFn:K,requireML:L,requireFn:T,capabilities:D,count:B,multi:q=!0,checkIsDisabled:O=c(),onToggleHidden:V,itemsHidden:z,isParent:W,hasExtraInfo:R,...G},onItemClick:H,itemProps:j,close:U,...Q}=e;const[,,Y]=(0,g.A)(),Z=(0,u.Zl)(s),{hasLimitations:$,preferredNodes:J,maxNodes:X}=(0,x.A)(),ee=(0,r.useMemo)((()=>{var e;return!K||!D||(null===(e=D.funcs)||void 0===e?void 0:e.enabled)}),[K]),te=(0,r.useMemo)((()=>{var e;return!K||!D||(null===(e=D.ml)||void 0===e?void 0:e.enabled)}),[K]),ne=$&&!J.includes(s),ae=!Array.isArray(t)&&ne&&Y>X,re=n||ae||L&&!te||T&&!ee||!q&&m||O(s),le=e=>{re||(o&&o(e),H({value:t,checked:!m,status:A}))},oe=e=>{e.stopPropagation(),null===U||void 0===U||U()},ie=b||I,se={status:A,limitationsApplied:ne,iconName:S,isDisabled:re,indeterminate:k,label:i,textColor:w,value:t,nodePath:Z,nodeId:s,onAnchorClick:oe,onSelect:le,isStale:ie,excluded:b,selected:m,isParent:W,itemProps:j,onToggleHidden:V,itemsHidden:z};return r.createElement(y.b1,(0,a.A)({"aria-selected":m,selected:m,disabled:re,stale:ie||0===B||"0"===B},G,Q,j,{"data-testid":"filterNodes-item-".concat(i),multi:q}),r.createElement(l.Flex,{gap:2,alignItems:"center",flex:!0},q?r.createElement(C,(0,a.A)({},se,ae?{iconName:"padlock"}:{})):r.createElement(l.Flex,{gap:1,padding:[0,1],alignItems:"center",onClick:le,"data-testid":"filterNodes-item-".concat(i),flex:!0},r.createElement(p.default,{Component:l.TextSmall,text:i,color:w}),"Offline"!==A&&!Array.isArray(t)&&r.createElement(h.A,{as:d.N_,to:Z,state:{nodeId:s},"data-testid":"filterNodes-item-gta",color:"textLite",hoverColor:"text",onClick:oe},r.createElement(l.Icon,{name:"nav_arrow_goto",height:"10px",width:"10px"})),!!V&&r.createElement(E,{toggle:V,expanded:!z}))),R&&r.createElement(l.Flex,{gap:1},_&&r.createElement(l.Flex,{gap:1,justifyContent:"center",width:17},r.createElement(v.A,{id:t,isLive:!0,name:i})),M&&r.createElement(l.Flex,{gap:1,justifyContent:"center",width:10},r.createElement(f.A,{badge:"ml","data-testid":"nodes-indicator-machine-learning",enabled:te,name:i})),K&&r.createElement(l.Flex,{gap:1,justifyContent:"center",width:10},r.createElement(f.A,{badge:"fn","data-testid":"nodes-indicator-fn",enabled:ee,name:i})),F&&r.createElement(l.Flex,{gap:1,justifyContent:"center",width:17},r.createElement(l.Icon,{name:"alarm",size:"small",color:"textLite"}),r.createElement(l.TextSmall,{strong:!0,color:"textLite"},"Alerts")),P&&r.createElement(l.Flex,{gap:1,justifyContent:"center",width:10},r.createElement(l.Icon,{name:"anomaliesLens",size:"small",color:"textLite"}),r.createElement(l.TextSmall,{strong:!0,color:"textLite"},"ML")),N&&r.createElement(l.Flex,{gap:1,justifyContent:"center",width:10},r.createElement(l.Icon,{name:"functions",size:"small",color:"textLite"}),r.createElement(l.TextSmall,{strong:!0,color:"textLite"},"Fn")),!isNaN(B)&&r.createElement(l.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(j.testIdPrefix,"-filters-").concat(i,"-count"),size:"small"},B.toString())))},w=e=>{let{ids:t,status:n,selectedIds:a,excludedIds:r,filteredIds:l,nodesById:o,statusProps:i,multi:s=!0,nodeCounts:c,checkIsDisabled:d,setHidden:u,hidden:m,extraKey:g}=e;if(!t.length)return[];const p=s&&!t.some((e=>!a.includes(e))),h=s&&a.length&&!p&&t.some((e=>a.includes(e))),f=s&&!t.some((e=>!r.includes(e))),v=s&&r.length&&!f&&t.some((e=>r.includes(e)));return t.reduce(((e,t)=>{if(m[n])return e;const{name:u,capabilities:p}=o[t],h=a.includes(t),f=!!r.length&&r.includes(t),v=s&&!!l.length&&!l.includes(t);return[...e,{value:t,label:u,nodeId:t,selected:h,excluded:f,stale:v,status:n,capabilities:p,...i[n].node,multi:s,checkIsDisabled:d,count:c?c[t]||0:NaN,hasExtraInfo:!g}]}),[{value:t,selected:p,indeterminate:h,disabled:!s,status:n,...i[n].head,multi:s,onToggleHidden:()=>u((e=>({...e,[n]:!m[n]}))),itemsHidden:m[n],excluded:f,someExcluded:v,isParent:!0,hasExtraInfo:!g}])},S=e=>e,F=e=>{let{baseKey:t,extraKey:n,statusProps:l=b,multi:o=!0,useFilteredIds:s=S,nodeCounts:c,checkIsDisabled:d,...g}=e;const[p,h]=(0,r.useState)((()=>({Stale:!0,Offline:!0}))),f=(0,m.w7)({extraKey:n,omit:"selectedNodeIds",merge:!0,emptyIfAll:!1}),v=(0,m.w7)({extraKey:n,merge:!1}),[x,E]=(0,m.Oj)({key:t,extraKey:n,merge:!1}),[I,C]=(0,m.PF)({key:t,extraKey:n,merge:!1}),A=s(f),F=(0,u.BU)(n?A:void 0),P=(0,u.Ig)(n?A:void 0),N=(0,u.GE)(n?A:void 0),_=(0,r.useCallback)((e=>{let{value:t,checked:n,excluded:a}=e;if("undefined"!==typeof a){if(!o)return void C((()=>n?[t]:[]));C((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?[...new Set([...e,...t])]:i()(e,t):n?[...e,t]:e.filter((e=>e!==t))}))}E(o?function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?[...new Set([...e,...t])]:i()(e,t):n?[...e,t]:e.filter((e=>e!==t))}:()=>n?[t]:[])}),[x,E]),M=(0,u.ss)(),K=(0,r.useMemo)((()=>{const e=w({ids:F,status:"Live",selectedIds:x,excludedIds:I,filteredIds:v,nodesById:M,statusProps:l,multi:o,nodeCounts:c,checkIsDisabled:d,setHidden:h,hidden:p,extraKey:n}),t=w({ids:P,status:"Stale",selectedIds:x,excludedIds:I,filteredIds:v,nodesById:M,statusProps:l,multi:o,nodeCounts:c,checkIsDisabled:d,setHidden:h,hidden:p,extraKey:n}),a=w({ids:N,status:"Offline",selectedIds:x,excludedIds:I,filteredIds:v,nodesById:M,statusProps:l,multi:o,nodeCounts:c,checkIsDisabled:d,setHidden:h,hidden:p,extraKey:n});return e.concat(t,a)}),[x,I.length,A.length,v.length,c,d,p]);return r.createElement(y.V$,(0,a.A)({"data-testid":"filterNodes-drop",items:K,Item:k,onItemClick:_,value:x,"data-value":x.join(",")||"all-nodes",hasSearch:!0},g))},P=(0,r.memo)(F,((e,t)=>e.baseKey===t.baseKey&&e.extraKey===t.extraKey&&e.statusProps===t.statusProps&&e.multi===t.multi&&e.nodeCounts===t.nodeCounts&&e.useFilteredIds===t.useFilteredIds&&e.checkIsDisabled===t.checkIsDisabled))},93615:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(58168),r=n(96540),l=n(10058),o=n(64473);const i=e=>{let{onToggle:t,icon:n="node_hollow",isOpen:i,title:s,...c}=e;return r.createElement(o.A,(0,a.A)({dataTestId:"collapsed-header",iconClose:i?"arrow_w_line_right":"arrow_w_line_left",onClick:t},c),i&&r.createElement(l.Flex,{gap:2,alignItems:"center","data-testid":"sidebar-nodeName"},r.createElement(l.Icon,{name:n,color:"text",size:"small"}),r.createElement(l.TextSmall,{strong:!0},s)))},s=(0,r.memo)(i)},30577:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(58168),r=(n(41393),n(81454),n(96540)),l=n(10058);const o=e=>{let{iconName:t,label:n,onClick:o,containerStyles:i,textStyles:s}=e;return r.createElement(l.Flex,(0,a.A)({"data-testid":"sidebar-icon-item"},i,{column:!0,margin:[2,0],alignItems:"center"}),r.createElement(l.Flex,{"data-testid":"sidebar-icon-item-wrapper",margin:[0,0,.5,0],alignItems:"center",onClick:o,cursor:"pointer"},r.createElement(l.Icon,{name:t,color:"textLite",width:"18px",height:"18px"})),r.createElement(l.TextMicro,(0,a.A)({color:"text"},s),n))},i=e=>{let{onClickTab:t,availableTabs:n,tabsToShow:i,...s}=e;return r.createElement(l.Flex,(0,a.A)({"data-testid":"collapsed-sidebar",column:!0,justifyContent:"center"},s),i.map(((e,a)=>{const{iconName:l,label:i}=n[e];return r.createElement(o,{containerStyles:{border:{size:"2px",type:"solid",color:"mainBackground",side:"left"}},textStyles:{color:"textLite"},key:l,onClick:()=>t(a),iconName:l,label:i})})))},s=(0,r.memo)(i)},12352:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(58168),r=n(96540),l=n(10058);const o=e=>{let{children:t,iconName:n,name:o,size:i,testId:s="entry-line-text-container",...c}=e;const d="small"===i?l.TextSmall:l.Text,u="undefined"!==typeof t&&null!==t;return r.createElement(l.Flex,{alignItems:"start","data-testid":"entry-line"},n&&r.createElement(l.Flex,{"data-testid":"entry-line-icon-container",padding:[0,1,0,0]},r.createElement(l.Icon,{color:"textLite","data-testid":"entry-line-icon",name:n,width:"16px",height:"16px"})),r.createElement(l.Flex,(0,a.A)({column:!0,alignItems:"start","data-testid":s,gap:.5},c),r.createElement(d,{"data-testid":"entry-line-text-label",whiteSpace:"nowrap",color:"textDescription"},o,u&&": "),u&&r.createElement(l.TextSmall,{color:"textDescription","data-testid":"entry-line-text-value",strong:!0},t)))}},50065:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(58168),r=(n(62953),n(8711)),l=n(96540),o=n(10058),i=n(87659),s=n(29217);const c=(0,r.default)(o.Icon).withConfig({displayName:"group__IconLink",componentId:"sc-9459pv-0"})(["&:hover{fill:",";}"],(0,o.getColor)("textDescription")),d=e=>e.stopPropagation(),u=e=>{let{children:t,isEnabled:n,link:a,onClick:r,open:i}=e;return l.createElement(o.Flex,{alignItems:"center",justifyContent:"between",height:8,onClick:n?r:null,cursor:n?"pointer":"default"},l.createElement(o.Flex,{gap:2,alignItems:"center"},l.createElement(o.TextSmall,{strong:!0},t),a&&l.createElement(o.Flex,{as:"a",href:a,target:"_blank",onClick:d},l.createElement(c,{height:"13px",width:"13px",name:"documentation",size:"small",color:"placeholder"}))),n&&l.createElement(o.Icon,{name:"chevron_left",size:"small",color:"textLite",rotate:i?1:3}))},m=(0,r.default)(o.Flex).withConfig({displayName:"group__StyledFlex",componentId:"sc-9459pv-1"})(["&:last-child{border:none;}"]),g=e=>{let{children:t,isEnabled:n=!0,link:r,name:c,noDataLabel:d,...g}=e;const[p,h]=(0,i.A)(!0),f=n?null:d;return l.createElement(s.A,{content:f,isBasic:!0},l.createElement(m,(0,a.A)({column:!0,border:{side:"bottom",color:"borderSecondary"},padding:[1,0,p?2:1],isEnabled:n},g),l.createElement(u,{isEnabled:n,open:p,onClick:h,link:r},c),l.createElement(o.Collapsible,{column:!0,open:p,gap:1},t)))}},64473:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(58168),r=n(96540),l=n(10058);const o=e=>{let{children:t,onClick:n,iconClose:o="x",icon:i,dataTestId:s,title:c,...d}=e;return r.createElement(l.Flex,(0,a.A)({"data-testid":s,height:12,alignItems:"center",justifyContent:"between",border:{side:"bottom",color:"borderSecondary"},padding:[0,2],flex:!1},d),c?r.createElement(l.Flex,{gap:2,alignItems:"center","data-testid":"sidebar-nodeName"},r.createElement(l.Icon,{name:i,color:"text",size:"small"}),r.createElement(l.TextSmall,{strong:!0},c)):t,r.createElement(l.Icon,{"data-testid":"sidebarHeader-icon",name:o,color:"textLite",onClick:n,cursor:"pointer"}))}},81638:(e,t,n)=>{n.d(t,{Ay:()=>o});var a=n(58168),r=n(96540),l=n(10058);const o=(0,r.memo)((e=>{let{children:t,collapsedComponent:n,isOpen:o,header:i,width:s=90,...c}=e;const d=!!n;return r.createElement(l.Collapsible,(0,a.A)({open:o,column:!0,closedValue:d?48:0,persist:d,direction:"horizontal",border:{side:"left",color:"borderSecondary"},width:s,flex:!0,basis:s},c),(e=>r.createElement(r.Fragment,null,i,e?t:n)))}))},92136:(e,t,n)=>{n.d(t,{A:()=>F});var a=n(58168),r=(n(62953),n(96540)),l=n(67602),o=n(10058),i=n(64118),s=n(15327),c=n(74618),d=n(40267),u=n(5871),m=n(28738),g=n(11164),p=n(52768);const h=(0,r.memo)((e=>{let{id:t}=e;const{fullyLoaded:n,nodeId:a,instance:l,lastStatusChangeValue:o,lastStatusChange:s,units:c,context:d,value:u,lastUpdated:m,status:h}=(0,i.JL)(t),f=(0,p.J4)(u,c),v=(0,p.J4)(o,c);return r.createElement(g.A,{instance:l,context:d,formattedLastValue:f,formattedLastStatusChangeValue:v,lastStatusChange:s,lastUpdated:m,isFormattedValueLoaded:"clear"===h||n,nodeId:a,status:h,testid:"alertDetailsModal"})}));n(9391);var f=n(3914),v=n(69765),y=n(47767),x=n(50876);const b=e=>{let{alertId:t,testid:n}=e;const a=(0,f.bq)(),l=(0,v.QW)(),i="/spaces/".concat(a,"/rooms/").concat(l,"/alerts/").concat(t),s=(0,y.Zp)(),{sendButtonClickedLog:c,isReady:d}=(0,x.A)(),u=(0,r.useCallback)((e=>{e.preventDefault(),c({dataGa:"".concat(n,"::view-alert-button")}).finally((()=>{s(i)}))}),[s,i,d]);return r.createElement(o.Button,{as:"a","data-testid":"".concat(n,"-view-alert-button"),"data-ga":"".concat(n,"::view-alert-button"),href:i,onClick:u,label:"View alert page",width:"224px"})};var E=n(43407),I=n(7660),C=n(4974),A=n(85686),k=n(73865),w=n(63314);const S=e=>{let{alertId:t,onClose:n}=e;const{isNodeRestricted:a}=(0,k.A)(),{name:l="unknown alert",status:g,fullyLoaded:p,info:f,nodeId:v}=(0,i.JL)(t);(0,i.yk)(t);const y=v&&a(v);return r.createElement(w.Ay,{mode:"AlertDetailsModal"},r.createElement(s.GO,{onClose:n},r.createElement(c.z,{onClose:n,title:l,"data-testid":"alertDetailsModal-alertName"},r.createElement(d.A,{flavour:g,icon:"alarm_bell","data-testid":"alertDetailsModal-alertPill"},g)),p?y?r.createElement(A.A,{flavour:"alert"}):r.createElement(r.Fragment,null,r.createElement(s.Yv,{overflow:{vertical:"auto"},hasModalTitle:!1,gap:2,hasFooter:!0},r.createElement(E.A,{iconName:"monitoring",iconSize:"20px"},"Time Values"),r.createElement(I.A,{alertId:t}),r.createElement(E.A,{iconName:"documentation"},"Alert Description"),r.createElement(o.Text,{"data-testid":"alertDetailsModal-info"},f),r.createElement(C.A,{alertId:t}),r.createElement(h,{id:t}),r.createElement(u.A,{id:t})),r.createElement(s.CG,null,r.createElement(b,{alertId:t,testid:"alertDetailsModal"}))):r.createElement(m.A,{title:"Loading alert..."})))},F=()=>{const[e,,t,n,o]=(0,l.A)("alertDetailsModal"),i=(0,r.useCallback)((e=>{let{alertId:n}=e;t("",{alertId:n})}),[]),s=(0,r.useMemo)((()=>r.createElement(S,(0,a.A)({onClose:n},o))),[o]);return[e,i,n,s]}},23452:(e,t,n)=>{n.d(t,{QD:()=>p,hv:()=>u,qr:()=>g});n(17333),n(41393),n(8159),n(98992),n(54520),n(81454),n(37550),n(62953);var a=n(47444),r=n(27467),l=n(69765),o=n(11128),i=n(64118);const s=e=>(t,n)=>!Array.isArray(n)||!n.length||n.includes(t[e]),c={alertStatuses:s("status"),alertClasses:s("class"),alertRoles:s("recipient"),alertTypeComponents:(e,t)=>!Array.isArray(t)||!t.length||t.includes("".concat(e.type,"|").concat(e.component)),nodeIds:s("nodeId")},d=(0,a.K0)({key:"alertsFiltered",get:e=>{let{extraKey:t,roomId:n,omit:a,keepAll:l}=e;return e=>{let{get:s}=e;const d=s((0,r.GA)({key:n,extraKey:t,flavour:"arr"})),u=Object.keys(d).map((e=>[e,a&&a.split(":::").includes(e)?s((0,r.GA)({key:n,flavour:"arr",param:e})):d[e]]));if(!a||!a.includes("selectedNodeIds")){const e=s((0,o.QY)({key:n,extraKey:t,omit:a,keepAll:!1,merge:!1,scoped:!0}));null!==e&&void 0!==e&&e.length&&u.push(["nodeIds",e])}const m=s((0,i.Yo)(n)),g=(e=>t=>!e.some((e=>{let[n,a]=e;return!!c[n]&&!c[n](t,a)})))(u);return l?m.map((e=>g(e)?e:{...e,hidden:!0})):m.filter(g)}}}),u={alertStatuses:{critical:0,warning:0},alertClasses:{Errors:0,Latency:0,Utilization:0,Workload:0}},m={critical:0,warning:1},g={alertStatuses:(e,t)=>m[e.id]-m[t.id],default:(e,t)=>e.id.localeCompare(t.id,void 0,{sensitivity:"accent",ignorePunctuation:!0})},p=function(){let{extraKey:e,omit:t,keepAll:n=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=(0,l.ID)();return(0,a.vc)(d({extraKey:e,roomId:r,omit:t,keepAll:n}))}},81416:(e,t,n)=>{n.d(t,{Ay:()=>g,yD:()=>u,f_:()=>m});n(17333),n(41393),n(98992),n(54520),n(81454),n(62953);var a=n(96540),r=n(27467),l=n(61427);const o=function(e){let{after:t,before:n}=e,{offset:a,limit:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{offset:6e4,limit:Date.now()};const l=((e,t)=>{let{offset:n,limit:a}=t;const r=n/2;return e+r<=a?r:a<e?0:a-e})(n,{offset:a,limit:r});return[t-(a-l),n+l]};var i=n(50876),s=n(67276);const c=(e,t)=>e||t?o({after:parseInt(e),before:parseInt(t)},(e=>{const t=Date.now();return{limit:t,offset:t-e<6e4?3e4:15e3}})(t)):d,d=[null,null],u=()=>{const{after:e,before:t,highlight:n}=(0,r.rW)();if(!n.after||!n.before)return d;if(e<0){const t=Date.now();if(n.before<t+e)return d;if(n.after>t)return d}else{if(n.before<e)return d;if(n.after>t)return d}return[n.after,n.before]},m=(e,t,n)=>{const[o,d]=(0,a.useState)(),[m,g]=(0,a.useState)(!1),{sendLog:p}=(0,i.A)();let[h,f]=(()=>{const e=u();return(0,a.useMemo)((()=>c(...e)),[...e])})();const{after:v,before:y}=(0,r.rW)(),[x]=(0,l.er)({nodeIds:n,flavour:"rhs"},e,t);return[async()=>{const e=((e,t)=>{if(e<0){const n=Date.now();e=1e3*Math.floor(n/1e3+e),t=1e3*Math.floor(n/1e3)}return{after:e,before:t}})(v,y);g(!0);try{await x({flavour:"rhs",highlightAfter:h||e.after,highlightBefore:f||e.before,baselineAfter:h?e.after:null,baselineBefore:f?e.before:null,method:"anomaly-rate",aggregation:"avg",group:"average",nodeIds:n,options:["raw","null2zero"],groupBy:["context"]}),g(!1),p({action:s.o1.elementViewed,feature:"AnomalyRates-TOC",isSuccess:!0},!0)}catch(t){if(t.isCancel)return;d(t),g(!1),p({action:s.o1.elementViewed,feature:"AnomalyRates-TOC",isFailure:!0},!0)}},m,o]},g=(e,t,n)=>{const[o,s]=(()=>{const[e,t]=(0,a.useState)(0);return[e,(0,a.useCallback)((()=>t((e=>e+1))),[])]})(),[c,d]=(0,a.useState)(),[m,g]=u(),{after:p,before:h}=(0,r.rW)(),{contexts:f,metadata:v,getWeights:y,loading:x}=(0,l.Yy)({nodeIds:n,flavour:"anomaly"},e,t),{sendLog:b,isReady:E}=(0,i.A)();(0,a.useEffect)((()=>{if(m&&g&&g&&m)try{b({feature:"AnomalyAdvisor",isStart:!0}),y({highlightAfter:m,highlightBefore:g,baselineAfter:p,baselineBefore:h,method:"anomaly-rate",aggregation:"avg",group:"average",nodeIds:n,options:["null2zero","raw"],groupBy:["context","dimension"]})}catch(e){if(b({feature:"AnomalyAdvisor",isFailure:!0}),e.isCancel)return;d(e)}}),[n.length,g,m,o,E]);return[(0,a.useMemo)((()=>f.filter((e=>{var t;return((null===(t=v[e])||void 0===t?void 0:t.weight)||0)>0})).sort(((e,t)=>{const n=v[e].weight||0,a=v[t].weight||0;return n!=a?n>a?-1:1:0})).map((e=>{const t=e.split(",");return t.length>1?"".concat(t[1],"::").concat(t[0]):e}))),[f,v]),f,v,x,c,s]}},13271:(e,t,n)=>{n.d(t,{sK:()=>h,Um:()=>p,Ad:()=>m,rq:()=>f});n(17333),n(14905),n(8159),n(98992),n(54520),n(8872),n(37550),n(62953);var a=n(96540),r=n(47444),l=n(47767),o=n(23931),i=n(47762),s=n(69765),c=n(27467);const d=(0,r.Iz)({key:"chartsFilterValue",default:{filteredChartsIds:[],filteredChartsCount:0,chartsCount:0}}),u=()=>{const e=(0,s.ID)(),t=(0,i.nl)();return(0,a.useMemo)((()=>({roomId:e,nodeId:t})),[t,e])},m=()=>{const e=u();return(0,r.vc)(d(e))},g=()=>{const e=(0,s.ID)(),{nodeID:t}=(0,l.g)();return[e,t||"overview"]},p=()=>{const[e,t]=g();return(0,c.rW)("tocSearch",{key:e,extraKey:t,defaultValue:"",flavour:"val"})},h=()=>{const[e,t]=g();return(0,c.N9)("tocSearch",{key:e,extraKey:t,defaultValue:"",flavour:"val"})},f=function(e,t,n){let{shouldHide:l=(()=>!1),force:i=!1,cacheKey:s}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const m=(0,c.rW)("after"),g=(0,c.rW)("before"),h=(()=>{const e=p();return"string"!==typeof e?"":e.trim().toLowerCase()})(),f=(0,o.w1)(n),[v,y,x]=(0,a.useMemo)((()=>{let n=0,a=0;const r=Date.now()/1e3,o=h.split(/[\s,]+/).filter((e=>!!e));return[e.reduce(((e,t)=>{if(!e[t])return e;const{firstEntry:s,lastEntry:c,live:d}=e[t],u=!i&&e[t].visible||(m<0?d||r+m<c:!(m>1e3*c||g<1e3*s)),p=!u||!Object.keys(e[t]).some((n=>{const a=e[t][n];return null===o||void 0===o||!o.length||o.some((e=>"string"===typeof a&&a.includes(e)))})),h=!u||l(e[t]);return e[t]={...e[t],filteredOut:p,visible:u,hidden:h},p||!u||h||(n+=1),h||(a+=1),e}),{...t}),a,n]}),[h,e,m,g,i,s]),b=(()=>{const e=u();return(0,r.lZ)(d(e))})();return(0,a.useEffect)((()=>{f(v),b({filteredChartsCount:x,chartsCount:y})}),[v,y,x,n]),x}},82543:(e,t,n)=>{n.d(t,{A:()=>p,g:()=>g});n(62953);var a=n(96540),r=n(10058),l=n(29217),o=n(47762),i=n(11128),s=n(69765),c=n(3914),d=n(81416),u=n(94944),m=n(50876);const g=()=>{const e=(0,o.nl)(),t=(0,i.w7)();return e?[e]:t},p=e=>t=>{const n=(0,c.vt)(),o=(0,s.ID)(),i=g(),{pause:p}=(0,u.A)(),{sendButtonClickedLog:h}=(0,m.A)(),[f,v]=(0,d.f_)(n,o,i);return a.createElement(r.Flex,{alignItems:"center",justifyContent:"between",width:"100%"},a.createElement(l.A,{content:"Overlay the maximum chart anomaly rate on each menu section.",align:"bottom",activateOn:"hover",isBasic:!0},a.createElement(r.Button,{tiny:!0,label:v?null:"AR%",isLoading:v,flavour:"hollow",onClick:()=>{p(),f(),h({feature:"AnomalyRates-TOC",label:"AR%",isStart:!0},!0)},textTransform:"uppercase","data-track":"menu-anomaly-rates::click-ar-button"})),a.createElement(r.Flex,{column:!0},a.createElement(e,t)))}},18713:(e,t,n)=>{n.d(t,{C:()=>u,Ny:()=>c,Ud:()=>d,W7:()=>m});n(62953);var a=n(96540),r=n(39528),l=n(55483);const o=(0,r.q6)(""),i=(0,r.q6)(""),s=(0,r.q6)(""),c=e=>{let{menuGroupId:t="",subMenuId:n="",children:r}=e;const[l,c]=(0,a.useState)(t),[d,u]=(0,a.useState)(n),m=(0,a.useMemo)((()=>({setMenuGroupId:c,setSubMenuId:u})),[]);return a.createElement(o.Provider,{value:m},a.createElement(i.Provider,{value:l},a.createElement(s.Provider,{value:d},r)))},d=()=>(0,l.A)(o),u=e=>{return t=t=>e===t,(0,l.A)(i,t);var t},m=e=>(0,l.A)(s,e)},31438:(e,t,n)=>{n.d(t,{BK:()=>I,NF:()=>y,Tg:()=>b,aA:()=>f,dd:()=>v,i8:()=>u,qR:()=>x,uy:()=>E,vN:()=>p,yO:()=>C});var a=n(58168),r=(n(41393),n(81454),n(96540)),l=n(83488),o=n.n(l),i=n(39528),s=n(55483);const c=r.createContext({}),d=(0,i.q6)({}),u=(0,i.q6)({}),m=(0,i.q6)([]),g=(0,i.q6)({}),p=e=>{let{container:t,menuItemAttributesById:n,getObject:a,allElements:l,stickyIds:o,children:i}=e;return r.createElement(c.Provider,{value:t},r.createElement(d.Provider,{value:a},r.createElement(u.Provider,{value:n},r.createElement(m.Provider,{value:l},r.createElement(g.Provider,{value:o},i)))))},h={},f=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o();return(0,s.A)(u,(n=>t(n[e]||h)))},v=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o();return(0,s.A)(u,(n=>Array.isArray(e)?e.map((e=>t(n[e]||h,e))):[]))},y=()=>r.useContext(c),x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o();return(0,s.A)(m,e)},b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o();return(0,s.A)(g,e)},E=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:o())(C()(e))},I=e=>(0,r.forwardRef)(((t,n)=>{let{id:l,...o}=t;const i=f(l),{chartId:s}=i,c=E(s);return r.createElement(e,(0,a.A)({ref:n,id:l,chart:c,menuChartAttributes:i},o))})),C=()=>(0,s.A)(d)},8320:(e,t,n)=>{n.d(t,{Cs:()=>o,Gr:()=>s,UH:()=>i});n(62953);var a=n(96540);const r=(0,a.createContext)(),l=(0,a.createContext)(),o=e=>{let{children:t}=e;const[n,o]=(0,a.useState)();return a.createElement(r.Provider,{value:n},a.createElement(l.Provider,{value:o},t))},i=()=>(0,a.useContext)(r),s=()=>(0,a.useContext)(l)},55309:(e,t,n)=>{n.d(t,{$V:()=>f,Ee:()=>m,HB:()=>g,Ss:()=>h,ox:()=>c,re:()=>u,sF:()=>d});var a=n(58168),r=n(96540),l=n(83488),o=n.n(l),i=n(39528),s=n(55483);const c=(0,i.q6)({}),d=e=>{let{menuGroupById:t,children:n}=e;return r.createElement(c.Provider,{value:t},n)},u=e=>(0,s.A)(c,e),m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o();return u((n=>t((null===n||void 0===n?void 0:n[e])||{})))},g=(e,t)=>n=>{let{id:l,...o}=n;const i=m(l,t);return r.createElement(e,(0,a.A)({id:l},i,o))},p=(0,i.q6)([]),h=e=>{let{ids:t,children:n}=e;return r.createElement(p.Provider,{value:t},n)},f=e=>t=>{const n=(0,s.A)(p,l);var l;return r.createElement(e,(0,a.A)({menuGroupIds:n},t))}},59090:(e,t,n)=>{n.d(t,{A:()=>g,Ie:()=>u,jR:()=>m,xw:()=>c,zK:()=>d});var a=n(58168),r=n(96540),l=n(83488),o=n.n(l),i=n(39528),s=n(55483);const c=(0,i.q6)({}),d=e=>{let{subMenuById:t,children:n}=e;return r.createElement(c.Provider,{value:t},n)},u=e=>(0,s.A)(c,e),m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o();return u((n=>t(null===n||void 0===n?void 0:n[e])))},g=(e,t)=>n=>{let{id:l,...o}=n;const i=m(l,t);return r.createElement(e,(0,a.A)({id:l},i,o))}},79566:(e,t,n)=>{n.d(t,{A:()=>f});var a=n(96540),r=n(31438),l=n(8320),o=n(55309),i=n(59090),s=n(18713),c=n(47444),d=n(47762),u=n(69765);const m=(0,c.Iz)({key:"activeMenuGroupIdValue",default:""}),g=()=>{const e=(()=>{const e=(0,u.ID)(),t=(0,d.nl)();return(0,a.useMemo)((()=>({roomId:e,nodeId:t})),[t,e])})();return(0,c.lZ)(m(e))},p=e=>(t,n)=>{const a=t.querySelector(n);a&&e(a)},h="scrollIntoViewIfNeeded"in document.body?p((e=>e.scrollIntoViewIfNeeded())):p((e=>e.scrollIntoView())),f=e=>{let{onMenuGroupClick:t,onSubMenuClick:n,onChartNameChange:c,initialChartName:d,linkToGo:u,contextToGo:m,loaded:p=!0}=e;const f=(0,r.NF)(),v=(0,l.UH)(),y=(0,o.re)(),x=(0,i.Ie)(),{setMenuGroupId:b,setSubMenuId:E}=(0,s.Ud)(),I=g(),C=(0,a.useRef)(d);(0,a.useLayoutEffect)((()=>{p&&v&&u&&!C.current&&v.goToLink(u)}),[v,u]),(0,a.useLayoutEffect)((()=>{p&&v&&m&&!C.current&&v.goToElement(m)}),[v,m]);const A=(0,a.useCallback)((e=>{b(e),I(e),h(f,'[data-sidebar="true"] [data-sidebar-menugroupid="'.concat(e,'"]')),e&&y[e]&&c(y[e].link)}),[y]),k=(0,a.useCallback)((e=>{E(e),e in x&&(b(x[e].menuGroupId),h(f,'[data-sidebar="true"] [data-sidebar-submenuid="'.concat(e,'"]')),c(x[e].link))}),[x]);(0,a.useLayoutEffect)((()=>{p&&C.current&&v&&v.goToLink(d)&&(C.current=null)}),[v]);return{setActiveMenuGroupId:A,setActiveSubMenuId:k,onMenuGroupClick:(0,a.useCallback)(((e,n)=>{n&&n.preventDefault(),v&&(v.goToElement(e),t(e))}),[v]),onSubMenuClick:(0,a.useCallback)(((e,t,a)=>{a&&a.preventDefault(),v&&(v.goToElement(t),n(e,t))}),[v])}}},667:(e,t,n)=>{n.d(t,{A:()=>o});n(62953);var a=n(96540),r=n(27776),l=n(38819);const o=()=>{const e=(0,l.PP)(),[t,n]=(0,r.XL)(),{reset:o}=(0,r.b8)(),i=(0,a.useCallback)((()=>{o(),(0,l.Z8)({...e,integrationsModalOpen:"true"}),n("true")}),[o,e]);return{isIntegrationsVisible:t,hideIntegrations:(0,a.useCallback)((()=>{(0,l.Z8)({...e,integrationsModalOpen:""}),n("")}),[e]),onIntegrationsClick:i}}},11988:(e,t,n)=>{n.d(t,{l3:()=>o,Xt:()=>c,YS:()=>d});n(14905),n(98992),n(8872),n(62953);var a=n(47444);const r=(0,a.eU)({key:"alertIdsByNodeId",default:{}}),l=[],o=(0,a.gD)({key:"nodesAlertIdsState",get:e=>{let{get:t}=e;return t(r)},set:(e,t)=>{let{set:n}=e;return n(r,t)}}),i=(0,a.K0)({key:"nodeAlertIdsState",get:e=>t=>{let{get:n}=t;return n(r)[e]||l},set:e=>(t,n)=>{let{set:a}=t;a(r,(t=>({...t,[e]:[...n].sort(((e,t)=>e.id-t.id))})))}}),s=(0,a.K0)({key:"nodesAlertIdsState",get:e=>t=>{let{get:n}=t;const a=n(r);return(e=e.length?e:Object.keys(a)).reduce(((e,t)=>[...e,...a[t]||[]]),[])},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),c=e=>(0,a.vc)(i(e)),d=e=>(0,a.vc)(s(e))},28146:(e,t,n)=>{n.d(t,{A:()=>u});var a=n(58168),r=n(96540),l=n(29217),o=n(8711),i=n(10058);const s=(0,o.default)(i.Flex).attrs((()=>({width:{max:"315px"},overflow:"hidden"}))).withConfig({displayName:"styled__Container",componentId:"sc-t6teia-0"})([""]),c=e=>{let{children:t,...n}=e;return r.createElement(s,(0,a.A)({"data-testid":"nodeInfoContent"},n),t)};var d=n(82432);const u=e=>{let{align:t="bottom",badge:n,children:o,connectivityState:i,content:s,isBasic:u=!0,status:m,nodeName:g,nodeType:p,...h}=e;return r.createElement(l.A,(0,a.A)({align:t,content:()=>r.createElement(c,{"data-testid":"nodeInfoTooltip-tooltipContent"},s||(0,d.Bb)(n,i,m,g,p)),"data-testid":"nodeInfoTooltip",isBasic:u},h),o)}},60072:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(96540),r=n(12352),l=n(50065),o=n(82432);const i=e=>{let{node:t}=e;const{_cloud_instance_region:n,_cloud_instance_type:i,_cloud_provider_type:s}=t.labels||{};return(0,o.Po)(n)&&(0,o.Po)(i)&&(0,o.Po)(s)?null:a.createElement(l.A,{name:"Cloud Instance Info"},a.createElement(r.A,{iconName:"ipNetworking",name:"Cloud provider",size:"small",testId:"sidebar-nodeInfoContent-cloudProvider"},(0,o.ws)(s)),a.createElement(r.A,{iconName:"universe",name:"Cloud region",size:"small",testId:"sidebar-nodeInfoContent-cloudRegion"},(0,o.ws)(n)),a.createElement(r.A,{iconName:"disk",name:"Instance type",size:"small",testId:"sidebar-nodeInfoContent-instanceType"},(0,o.ws)(i)))}},25825:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(96540),r=n(50065),l=n(12352),o=n(82432),i=n(55905),s=n(33931);const c=e=>{let{node:t}=e;const n=(0,o.GM)(t.state);return a.createElement(r.A,{link:"https://learn.netdata.cloud/docs/agent/aclk",name:"Connection"},a.createElement(l.A,{size:"small",name:"Status",iconName:"integrations",testId:"sidebar-connectionGroup-connectionStatus"},a.createElement(s.A,{rawState:n})),a.createElement(l.A,{size:"small",name:"Netdata Agent",iconName:"netdata",testId:"sidebar-connectionGroup-agentVersion"},t.version),t.updateSeverity&&a.createElement(l.A,{size:"small",name:"Update Status",iconName:"update",testId:"sidebar-connectionGroup-agentVersion"},a.createElement(i.A,{name:t.name,os:t.os.id,container:t.hw.container,warningLevel:t.updateSeverity,labels:t.labels||{},version:t.version,text:t.updateSeverity})))}},17240:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(96540),r=n(50065),l=n(10058),o=n(18682);const i=e=>{let{node:t}=e;return a.createElement(r.A,{name:"Files"},a.createElement(l.Flex,{gap:1,padding:[0,1],alignItems:"center"},a.createElement(l.Box,{sx:{fontWeight:"500",letterSpacing:"1px"},as:l.Text,color:"textLite"},"{;}"),a.createElement(l.TextSmall,null,"View node info in"),a.createElement(l.Flex,{cursor:"pointer",gap:1,onClick:(0,o.C)(JSON.stringify(t),{text:"JSON copied to clipboard"})},a.createElement(l.TextSmall,{color:"primary"},"json"),a.createElement(l.Icon,{color:"primary",size:"small",name:"copy"}))))},s=(0,a.memo)(i)},58010:(e,t,n)=>{n.d(t,{A:()=>o});n(17333),n(41393),n(98992),n(54520),n(81454);var a=n(96540),r=n(50065),l=n(12352);const o=e=>{let{node:{labels:t={}}={}}=e;const n=Object.keys(t).filter((e=>!e.startsWith("_")));return a.createElement(r.A,{link:"https://learn.netdata.cloud/guides/using-host-labels",name:"Host labels",isEnabled:n.length>0,noDataLabel:"No Data"},n.length>0&&n.map((e=>a.createElement(l.A,{size:"small",key:e,name:e,testId:"sidebar-hostLabelsGroup-label"},t[e]))))}},80618:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(96540),r=n(10058),l=n(50065),o=n(12352),i=n(82432);const s={},c=e=>{let{node:t}=e;const n=t.hw||s,c=t.os||s,d=(0,i.Pg)(n.container,n.virtualization);return a.createElement(l.A,{name:"System info"},a.createElement(o.A,{size:"small",name:"Type",iconName:"virtualization",testId:"sidebar-nodeInfoContent-type"},a.createElement(r.Pill,{hollow:!0,icon:d.icon,flavour:"neutral"},d.label)),a.createElement(o.A,{size:"small",name:"O/S version",iconName:"database",testId:"sidebar-nodeInfoContent-osVersions"},(0,i.Ud)(c.nm,c.v,", ")),a.createElement(o.A,{iconName:"viewSingleNode",name:"Architecture",size:"small",testId:"sidebar-nodeInfoContent-architecture"},(0,i.ws)(n.architecture)),!!c.kernel&&a.createElement(o.A,{size:"small",name:"Kernel",iconName:"metrics_explorer",testId:"sidebar-nodeInfoContent-kernel"},(0,i.Ud)(c.kernel.nm,c.kernel.v,", ")),a.createElement(o.A,{size:"small",name:"CPU",iconName:"cpu",testId:"sidebar-nodeInfoContent-cpu"},(0,i.O)(n.cpuFrequency)," (",(0,i.ws)(n.cpus,1===n.cpus?"Core":"Cores"),")"),a.createElement(o.A,{size:"small",name:"Memory",iconName:"ram",testId:"sidebar-nodeInfoContent-ram"},(0,i.ws)((0,i.RI)(n.memory),"RAM")),a.createElement(o.A,{size:"small",name:"Hard disk size",iconName:"disk",testId:"sidebar-nodeInfoContent-disk"},(0,i.RI)(n.diskSpace)))}},37019:(e,t,n)=>{n.d(t,{A:()=>d});var a=n(58168),r=n(96540),l=n(10058),o=n(64118),i=n(11988),s=n(82432),c=n(28146);const d=e=>{let{id:t,isLive:n,name:d,onClick:u,...m}=e;const g=(0,i.Xt)(t),{critical:p,warning:h}=(0,o.AO)(g),f={...(null===m||void 0===m?void 0:m["data-testid"])&&{dataTestId:null===m||void 0===m?void 0:m["data-testid"]},isLive:n},v=(0,s.t3)({count:p,type:"critical",...f}),y=(0,s.t3)({count:h,type:"warning",...f});return r.createElement(c.A,(0,a.A)({badge:"alerts","data-testid":"node-alerts",nodeName:d},m),r.createElement(l.AlertMasterCard,{onClick:v.text||y.text?u:null,pillLeft:v,pillRight:y,size:"small"}))}},88494:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(58168),r=n(96540),l=n(10058),o=n(82432),i=n(28146);const s=e=>{let{children:t,badge:n,enabled:s,name:c,onClick:d,...u}=e;const m=(0,o.lw)(s);return r.createElement(i.A,(0,a.A)({badge:n,"data-testid":"node-".concat(n,"-status"),status:m.status,nodeName:c},u),r.createElement(l.Flex,{alignItems:"center",gap:1,onClick:s?d:void 0,cursor:s&&d?"pointer":"default","data-ga":"nodes-list::click-capability::".concat(m.label)},t,r.createElement(l.Pill,{flavour:m.flavour,size:"small"},m.label)))}},78062:(e,t,n)=>{n.d(t,{A:()=>u});var a=n(58168),r=n(96540),l=n(10058),o=n(28146),i=n(69765),s=n(3914),c=n(53285);var d;const u=(d=l.Button,e=>{const t=(0,i.XA)(),n=(0,s.dg)();return r.createElement(c.A,{permission:"node:Create"},(i=>{const s=r.createElement(d,(0,a.A)({disabled:!i},e));return i?s:r.createElement(o.A,{content:n?"You are viewing your local node, connect to cloud and connect multiple nodes to view at once":"Only admin users can add nodes to ".concat(t.name),"data-testid":"addNodeTooltipContainer"},r.createElement(l.Box,null,s))}))})},61427:(e,t,n)=>{n.d(t,{UG:()=>E,Ip:()=>b,er:()=>y,Yy:()=>I,G9:()=>x});n(9920),n(14905),n(98992),n(3949),n(8872),n(62953);var a=n(96540),r=n(47444),l=n(27467),o=n(9224);const i={byContext:{},loaded:!1,loading:!1,method:null,options:null,group:"average",totalDimensionsCount:0},s=(0,r.Iz)({key:"weights",default:i}),c=(0,r.K0)({key:"weightsState",get:e=>t=>{let{get:n}=t;return n(s(e))},set:e=>(t,n)=>{let{set:a}=t;return a(s(e),n)},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),d={ci:"context",ni:"node",ii:"instance",di:"dimension"},u=(e,t)=>n=>({[d[e.name]]:t[e.dictionary][n]}),m={ni:u,ii:(e,t)=>(n,a,r)=>({[d[e.name]]:t[e.dictionary][n]?"".concat(t[e.dictionary][n],"@").concat(t.nodes[a[r.ni]]):null}),ci:u,di:u,row_type:e=>t=>({type:e.value[t]}),weight:()=>e=>({weight:e}),timeframe:e=>t=>({highlight:e.labels.reduce(((e,n,a)=>({...e,[n]:t[a]})),{})}),"baseline timeframe":e=>t=>({baseline:e.labels.reduce(((e,n,a)=>({...e,[n]:t[a]})),{})})},g={contexts:"ci",nodes:"ni",instances:"ii",dimensions:"di"},p={contexts:"id",nodes:"nodeId",instances:"id",dimensions:"id"},h=(e,t)=>null===e||e>t?t:e,f=(e,t)=>null===e||e<t?t:e,v=e=>{let{flavour:t,data:n,aggregation:a,options:r}=e,l={},o=0;if(n.v_schema){var i;const e=(null===(i=n.v_schema)||void 0===i?void 0:i.items)||[];l=n.result.reduce(((t,n)=>{let{id:r,v:l}=n;return t[r]=e.reduce(((e,t,n)=>{let{name:r,labels:o}=t;const i=o.indexOf(a);return e[r]=l[n][i],e}),{}),t}),{})}else{const e=(e=>{const t=Object.keys(e.dictionaries).reduce(((t,n)=>{t[n]||(t[n]={});const a=p[n];return e.dictionaries[n].forEach((e=>t[n][e[g[n]]]="nodeId"===a?e.nd||e.mg:e[a])),t}),{}),n={},a=e.schema.items.reduce(((e,a,r)=>{const l=(m[a.name]||m.default)(a,t);return e.push(l),n[a.name]=r,e}),[]);return e=>e.reduce(((t,r,l)=>({...t,...a[l](r,e,n)})),{})})(n);l=n.result.reduce(((t,n)=>{const{dimension:a,node:l,context:i,instance:s,type:c,weight:d,highlight:u,baseline:m}=e(n);if("node"===c)return t;const g=(p=t,v=i,function(e,t,n,a,r){let l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h;n&&(n&&"undefined"===typeof p[v][t][n]&&(p[v][t][n]={}),"undefined"===typeof p[v][t][n][e]&&(p[v][t][n][e]=null),a&&(p[v][t][n][e]=l(p[v][t][n][e],r)))});var p,v;t[i]||(t[i]={dimensions:{},instances:{},nodes:{},weight:null});const y=!!r&&r.includes("anomaly-bit");g("weight","dimensions",a,"dimension"===c,d,y?f:h),g("weight","instances",s,"instance"===c,d,y?f:h),g("weight","nodes",l,"node"===c,d,y?f:h);const x=u?100*u.anomaly_count/u.count:0;g("arHighlight","dimensions",a,"dimension"===c,x,f),g("arHighlight","instances",s,"instance"===c,x,f),g("arHighlight","nodes",l,"node"===c,x,f);const b=m?100*(m.anomaly_count-u.anomaly_count)/(m.count-u.count)===0?1:m.count-u.count:0;g("arBaseline","dimensions",a,"dimension"===c,b,f),g("arBaseline","instances",s,"instance"===c,b,f),g("arBaseline","nodes",l,"node"===c,b,f);const E=b?x/b:0;return g("score","dimensions",a,"dimension"===c,E,f),g("score","instances",s,"instance"===c,E,f),g("score","nodes",l,"node"===c,E,f),"context"===c?t[i].weight=null===t[i].weight||t[i].weight>d?d:t[i].weight:"dimension"===c&&(o+=1),t}),{})}return{byContext:l,totalDimensionsCount:o}},y=(e,t,n)=>{const l=(0,a.useRef)();return[(0,r.Zs)((a=>{let{set:r}=a;return a=>{let{flavour:s,highlightAfter:d,highlightBefore:u,baselineAfter:m,baselineBefore:g,method:p,options:h,group:f,context:y,nodeIds:x,aggregation:b,groupBy:E}=a;return r(c(e),{...i,loading:!0}),l.current&&l.current.cancel(),l.current=(0,o.e0)(t,n,{highlightAfter:d,highlightBefore:u,baselineAfter:m,baselineBefore:g,method:p,options:h,group:f,context:y,nodeIds:x,aggregation:b,groupBy:E}),l.current.then((t=>{let{data:n}=t;const{byContext:a,totalDimensionsCount:l}=v({flavour:s,data:n,aggregation:b,options:h});r(c(e),{loading:!1,loaded:!0,byContext:a,options:h,totalDimensionsCount:l,method:p,group:f,groupBy:E,error:null})})).catch((t=>{var n;if(!t.isCancel)throw r(c(e),{...i,error:(null===t||void 0===t||null===(n=t.response)||void 0===n?void 0:n.data)||t}),t}))}}),[e]),(0,r.Zs)((t=>{let{reset:n}=t;return()=>{l.current&&l.current.cancel(),n(c(e))}}),[e])]},x=e=>(0,r.vc)(c(e)),b=e=>(0,r.E0)(c(e)),E=.01,I=(e,t,n)=>{const[r,o]=y(e,t,n),{loaded:i,loading:s,byContext:c,totalDimensionsCount:d,options:u,groupBy:m}=x(e),g=(()=>{const e=(0,l.rW)("threshold");return e?Number.parseFloat(e):E})(),[p,h,f]=(0,a.useMemo)((()=>{let e=0;const t=null===u||void 0===u?void 0:u.includes("raw"),n=(m||[]).length?c:Object.keys(c).reduce(((n,a)=>{const r=Object.keys(c[a].dimensions).reduce(((e,n)=>(!t&&c[a].dimensions[n].weight>g||(e[n]=c[a].dimensions[n]),e)),{}),l=Object.keys(r).length;return e+=l,l?(n[a]={...c[a],dimensions:r},n):n}),{});return[n,Object.keys(n),e]}),[i,g]);return{threshold:g,metadata:p,contexts:h,dimensionsCount:f,totalDimensionsCount:d,loaded:i,loading:s,getWeights:r,resetWeights:o}}},23931:(e,t,n)=>{n.d(t,{Zr:()=>c,b0:()=>b,YP:()=>x,Uo:()=>v,GR:()=>A,Bu:()=>k,yO:()=>C,bD:()=>w,OL:()=>h,aZ:()=>f,rx:()=>m,bo:()=>u,_0:()=>d,R7:()=>E,jI:()=>g,w1:()=>I,DQ:()=>p});n(14905),n(8159),n(98992),n(8872),n(37550),n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215),n(62953);var a=n(96540),r=n(47444);const l={loaded:!1,fullyLoaded:!1,loading:!1,id:"",name:"",chartType:"",context:"",family:"",firstEntry:0,lastEntry:0,module:"",plugin:"",priority:0,updateEvery:0,visible:!1,filteredOut:!1,hidden:!1,domain:"room"};var o=n(69765),i=n(65570);const s={ids:(0,r.Iz)({key:"roomChartIds",default:[]}),updatedAt:(0,r.Iz)({key:"roomChartsUpdatedAt",default:""}),loaded:(0,r.Iz)({key:"roomChartsLoaded",default:!1}),error:(0,r.Iz)({key:"roomChartsError",default:null}),versions:(0,r.Iz)({key:"versions",default:{}}),fetchedFor:(0,r.Iz)({key:"fetchedFor",default:[]})},c=(0,r.K0)({key:"roomChartState",get:e=>{let{id:t,key:n}=e;return e=>{let{get:a}=e;return a(s[n](t))}},set:e=>{let{id:t,key:n}=e;return(e,a)=>{let{set:r}=e;r(s[n](t),a)}}}),d=e=>!!(0,r.vc)(c({id:e,key:"loaded"})),u=e=>(0,r.vc)(c({id:e,key:"fetchedFor"})),m=e=>(0,r.vc)(c({id:e,key:"error"})),g=e=>(0,r.vc)(c({id:e,key:"versions"})),p=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=(0,r.lZ)(c({id:e,key:"versions"}));return(0,a.useCallback)((e=>n((n=>(e="function"===typeof e?e(n):e,t?e:(0,i.Ay)(n,e,{omit:["contextsSoftHash"]})?n:n.contextsHardHash&&"invalidating"!==n.contextsHardHash?e:n)))),[])},h=e=>(0,r.vc)(c({id:e,key:"ids"})),f=(e,t)=>(0,r.vc)(c({id:e,key:t})),v=(0,r.K0)({key:"roomChartsState/ids",get:e=>{let{roomId:t}=e;return e=>{let{get:n}=e;return n(s.ids(t))}},set:e=>{let{roomId:t,merge:n=!0}=e;return(e,a)=>{let{set:r}=e;r(s.ids(t),(e=>{const t=n?[...new Set([...a,...e])]:a;return n&&(0,i.Ay)(t,e)?e:t}))}}}),y=(0,r.Iz)({key:"roomsChartBatchState",default:{}}),x=(0,r.K0)({key:"roomChartsState",get:e=>{let{id:t,key:n}=e;return e=>{let{get:a}=e;const r=a(y(t))||l;return n?r[n]:r}},set:e=>{let{id:t,key:n}=e;return(e,a)=>{let{set:r}=e;"function"!==typeof a?Object.keys(a).length<1||r(y(t),(e=>({...e,[n]:a}))):r(y(t),(e=>({...e,[n]:a(e[n])})))}}}),b=(0,r.K0)({key:"roomChartsState/initialize",set:function(){let{id:e,merge:t=!0,nodeIds:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(a,r)=>{let{set:o}=a,{values:s,merge:d}=r;o(c({id:e,key:"fetchedFor"}),n),o(y(e),(e=>{const n=Object.keys(s).reduce(((n,a)=>{const{id:r}=s[a];return n[r]={...l,...(t||d)&&e[r],...s[a],loaded:!0},n}),t?{...e}:{});return t&&(0,i.Ay)(n,e,{omit:["lastEntry","firstEntry","family"]})?e:n}))}}}),E=(e,t)=>(0,r.vc)(x({id:e,key:t})),I=e=>(0,r.Zs)((t=>{let{set:n}=t;return t=>n(y(e),t)}),[]),C=(e,t)=>(0,r.Zs)((n=>{let{snapshot:a}=n;return n=>({...a.getLoadable(x({id:e,key:n})).contents,...(null===t||void 0===t?void 0:t[n])||{}})}),[e,t]),A=e=>{var t,n,a;const l=(0,o.ID)(),i=(0,r.vc)(y(l));return(null===(t=i[e])||void 0===t?void 0:t.visible)&&!(null!==(n=i[e])&&void 0!==n&&n.filteredOut)&&!(null!==(a=i[e])&&void 0!==a&&a.hidden)},k=e=>{const t=(0,o.ID)(),n=(0,r.vc)(y(t));return e.some((e=>{var t,a,r;return(null===(t=n[e])||void 0===t?void 0:t.visible)&&!(null!==(a=n[e])&&void 0!==a&&a.filteredOut)&&!(null!==(r=n[e])&&void 0!==r&&r.hidden)}))},w=()=>{const e=(0,o.ID)(),t=(0,r.vc)(y(e));return(0,a.useCallback)((e=>e.some((e=>{var n,a,r;return(null===(n=t[e])||void 0===n?void 0:n.visible)&&!(null!==(a=t[e])&&void 0!==a&&a.filteredOut)&&!(null!==(r=t[e])&&void 0!==r&&r.hidden)}))),[e,t])},S=(0,r.Iz)({key:"instancesByContextAtom",default:{}}),F=(0,r.K0)({key:"roomChartInstancesState",get:e=>{let{id:t,context:n}=e;return e=>{let{get:a}=e;const r=a(S(t));return n?r[n]:r}},set:e=>{let{id:t,context:n}=e;return(e,a)=>{let{set:r}=e;"function"!==typeof a?Object.keys(a).length<1||r(S(t),(e=>({...e,[n]:a}))):r(S(t),(e=>({...e,[n]:a(e[n])})))}}});(0,r.K0)({key:"roomChartInstances/initialize",set:e=>(t,n)=>{let{set:a}=t;a(S(e),(e=>({...e,...n})))}}),(0,r.K0)({key:"roomChartsInstancesState",get:e=>{let{id:t,contexts:n=[]}=e;return e=>{let{get:a}=e;const r=a(F({id:t}));return n.reduce(((e,t)=>(r[t]&&(e[t]=r[t]),e)),{})}}})},90535:(e,t,n)=>{n.d(t,{A:()=>f});n(41393),n(81454),n(62953);var a=n(96540),r=n(10058),l=n(47762),o=n(11128);const i=e=>{let{children:t}=e;return a.createElement(r.Flex,{"data-testid":"selected-nodes-container",alignItems:"center",width:"100%"},a.createElement(r.Flex,{alignItems:"center"},a.createElement(r.TextSmall,{whiteSpace:"nowrap","data-testid":"selected-nodes-container-message",color:"primary"},"Selected filters:")),a.createElement(r.Flex,{overflow:"hidden",padding:[1],gap:1,alignItems:"center",flexWrap:!0},t))},s=(0,a.memo)(i);var c=n(4659);const d=e=>{let{onRemove:t}=e;return a.createElement(r.Box,{"data-testid":"remove-button",as:r.Icon,name:"close_circle",onClick:t,cursor:"pointer",width:3,height:3,color:"textLite"})},u=(0,a.forwardRef)(((e,t)=>{let{removeFilter:n,group:l,id:o,value:i,isAnchorDisabled:s,onClick:u}=e;const[m,g]=i.split("|"),p=g?"".concat(m," > ").concat(g):m;return a.createElement(r.Flex,{width:"100%",ref:t,"data-testid":"selected-node-item-".concat(o)},a.createElement(r.Pill,{flavour:"neutral",hollow:!0},a.createElement(r.Flex,{position:"relative",gap:2,alignItems:"center"},u?a.createElement(c.A,{Component:r.TextSmall,disabled:s,onClick:u,cursor:"pointer",color:"text",hoverColor:"primary",visitedColor:"accent",disabledColor:"textLite"},p):a.createElement(r.TextSmall,null,p),a.createElement(d,{onRemove:()=>n({param:l,removedValue:o}),id:o}))))})),m=(0,a.memo)(u),g={selectedNodeIds:"Node",nodeStatuses:"Status",nodeLabels:"Host label",nodeCapabilities:"Capability",nodeVersions:"Version"},p=(0,a.forwardRef)(((e,t)=>{let{group:n,values:l,hasUnion:o,union:i="AND",removeFilter:s,Component:c=m}=e;const d=g[n];return null!==l&&void 0!==l&&l.length?a.createElement(a.Fragment,{key:"filter"},o&&a.createElement(r.TextSmall,{strong:!0},i),a.createElement(r.Pill,{flavour:"neutral",hollow:!0,gap:1,TextComponent:r.Flex,textProps:{alignItems:"center",gap:1},flexWrap:!0},a.createElement(r.TextNano,{strong:!0},d,":"),l.map(((e,t)=>a.createElement(a.Fragment,{key:e},t>0&&a.createElement(r.TextSmall,{strong:!0},"OR"),a.createElement(c,{removeFilter:s,id:e,value:e,group:n})))))):null})),h=(0,a.forwardRef)(((e,t)=>{let{removeFilter:n,value:r}=e;const o=(0,l.xY)(r,"name"),i=(0,l.xY)(r,"isOffline"),s=(0,l.d3)(r);return a.createElement(m,{ref:t,removeFilter:n,group:"selectedNodeIds",id:r,value:o,isAnchorDisabled:i,onClick:s})})),f=(0,a.memo)((e=>{let{flavour:t}=e;const[[n,l=[]],i]=(0,o._e)({extraKey:t,merge:!1});return n.length||l.length?a.createElement(r.Flex,{width:"100%",overflow:"hidden"},a.createElement(s,null,n.map(((e,t)=>{let[n,r]=e;return a.createElement(p,{key:n,group:n,values:r,hasUnion:t>0,removeFilter:i})})),a.createElement(p,{group:"selectedNodeIds",values:l,hasUnion:!!n.length&&!!l.length,union:"OR",removeFilter:i,Component:h}))):a.createElement("div",null)}))},20687:(e,t,n)=>{n.d(t,{A:()=>I});n(41393),n(81454),n(62953);var a=n(96540),r=n(10058),l=n(47762),o=n(11988),i=n(64118),s=n(27467),c=n(29217),d=n(4659),u=n(8711),m=n(47767),g=n(45588),p=n(21290),h=n(45976);const f=(0,u.default)(r.Flex).withConfig({displayName:"alert__AlertContainer",componentId:"sc-ndxwzg-0"})(["transition:opacity 0.3s ease-in-out;&:hover{& ","{opacity:0.7;}}"],r.Text),v={overview:"overview",k8s:"kubernetes",singleNode:"nodes/:nodeId"},y=e=>{let{alert:t,onAlertClick:n,flavour:o}=e;const{value:i,instance:s,lastStatusChange:u,id:y,status:x,units:b,name:E,summary:I,nodeId:C}=t,A=(0,l.xY)(C,"name"),{localeTimeString:k,localeDateString:w}=(0,p.$j)(),S=(0,a.useMemo)((()=>{const e=new Date(1e3*u);return isNaN(e.valueOf())?"":"".concat(w(e,{long:!1})," ").concat(k(e,{secs:!1}))}),[u,k,w]),F=(0,a.useCallback)((()=>{n({alertId:y})}),[]),P=(0,m.g)(),N=(0,m.Zp)();return a.createElement(f,{column:!0,padding:[4,0],gap:1,border:{color:"border",side:"bottom"},"data-testid":"alertItem","data-test-name":"alertItem-".concat(E)},a.createElement(r.Flex,{column:!0},a.createElement(c.A,{plain:!0,content:I,isBasic:!0},a.createElement(r.Text,{strong:!0,"data-testid":"alertItem-alertName"},E)),a.createElement(r.TextSmall,{wordBreak:"break-all","data-testid":"alertItem-chartId"},s," @ ",A)),a.createElement(r.Flex,{alignItems:"center",justifyContent:"between"},a.createElement(h.A,{loaded:!0,status:x,units:b,value:i,flex:!1,"data-testid":"alertItem-alertValuePill"}),a.createElement(r.TextMicro,{color:"textLite","data-testid":"alertItem-alertDate"},S)),a.createElement(r.Flex,{gap:1},!!v[o]&&a.createElement(a.Fragment,null,a.createElement(d.A,{Component:r.TextMicro,onClick:()=>{N((0,g.tW)("/spaces/:spaceSlug/rooms/:roomSlug/".concat(v[o]),P),{replace:!0,state:{alertId:y}})}},"Plot on chart"),a.createElement(r.TextMicro,{color:"textLite"},"\u2022")),a.createElement(d.A,{Component:r.TextMicro,onClick:F},"Show info")))};var x=n(92136);const b=(e,t)=>e.status===t.status?0:"critical"===e.status?-1:1,E={nodesView:!0},I=e=>{let{nodeIds:t,flavour:n}=e;const[u,m]=(0,s.r$)("sidebarNodeId",{flavour:"val",extraKey:n}),g=(0,l.xY)(u),p=(0,o.YS)(u?[u]:t),h=(0,i.Gq)(p),f=(0,a.useMemo)((()=>[...h].sort(b)),[h]),[v,I,,C]=(0,x.A)(),A=h.length?"(".concat(h.length,")"):"";return a.createElement(r.Flex,{width:"100%",column:!0,overflow:"hidden"},a.createElement(r.Flex,{column:!0,gap:5,padding:[2]},a.createElement(r.Flex,{column:!0},a.createElement(c.A,{content:"Currently Active alerts",align:"bottom"},a.createElement(r.TextBig,{strong:!0,"data-testid":"nodeAlertsView-activeAlerts-header"},"Alerts ",A)),!!E[n]&&a.createElement(r.TextMicro,null,"Showing ",g.id?a.createElement(r.TextMicro,{strong:!0},g.name):"room"," alerts"," ",!!g.id&&a.createElement(a.Fragment,null," ","-"," ",a.createElement(d.A,{Component:r.TextMicro,onClick:()=>m("")},"Show all")))),!h.length&&a.createElement(r.Flex,{column:!0,gap:8,padding:[0,5],"data-testid":"nodesAlertsView-blankSlate",alignItems:"center"},a.createElement(r.Icon,{name:"checkmark",width:"90px",height:"90px"}),a.createElement(r.H4,{textAlign:"center"},1!==t.length?"No":"This node has no"," active alerts, you are all good!"))),a.createElement(r.Flex,{column:!0,overflow:{vertical:"auto"},padding:[0,2]},f.map((e=>a.createElement(y,{key:e.id,alert:e,onAlertClick:I,flavour:n})))),v&&C)}},94177:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(58168),r=n(96540),l=n(42828),o=n(59846);const i=e=>{let{baseKey:t,extraKey:n,testIdPrefix:i,groupProps:s,...c}=e;return r.createElement(o.A,(0,a.A)({title:"Nodes",testIdPrefix:i,baseKey:t,extraKey:n,param:"selectedIds",defaultIsOpen:!1,help:"Select nodes individually. By selecting nodes in this filter, you bypass the rest of the filters."},s),r.createElement(l.A,(0,a.A)({baseKey:t,extraKey:n,itemProps:{padding:[1,1,1,.5]},searchMargin:[0,0,1],height:{max:"300px"},testIdPrefix:i},c)))}},99292:(e,t,n)=>{n.d(t,{kO:()=>Xe,Ay:()=>lt});var a=n(58168),r=(n(17333),n(41393),n(98992),n(54520),n(81454),n(62953),n(96540)),l=n(8711),o=n(10058),i=n(27467),s=n(81638),c=n(30577),d=n(93615),u=n(64473),m=n(47762),g=n(12352),p=n(60072),h=n(80618),f=n(25825),v=n(50065);const y=[{name:"MySQL",title:"MySQL",iconName:"serviceMySQL",logoFilename:"mysql.svg",category:"Databases",collectors:["python.d.plugin:mysql","go.d.plugin:mysql"],contexts:["mysql.queries","mysql.net","mysql.connections"],priority:1},{name:"MariaDB",title:"MariaDB",iconName:"serviceMariaDB",logoFilename:"mariadb.svg",category:"Databases",collectors:["python.d.plugin:mysql","go.d.plugin:mysql"],contexts:["mysql.queries","mysql.net","mysql.connections"],priority:2},{name:"Oracle Database",title:"Oracle Database",iconName:"osOracle",logoFilename:"oracle.svg",category:"Databases",collectors:["python.d.plugin:oracledb"],contexts:["oracledb.session_count","oracledb.physical_disk_read_writes","oracledb.tablespace_usage_in_percent"],priority:3},{name:"PostgreSQL",title:"PostgreSQL",iconName:"servicePostgreSQL",logoFilename:"postgresql.svg",category:"Databases",collectors:["python.d.plugin:postgres"],contexts:["postgres.checkpointer","postgres.archive_wal","postgres.db_size"],priority:4},{name:"MongoDB",title:"MongoDB",iconName:"serviceMongoDB",logoFilename:"mongodb.svg",category:"Databases",collectors:["python.d.plugin:mongodb"],contexts:["mongodb.active_clients","mongodb.read_operations","mongodb.write_operations"],priority:5},{name:"ElasticSearch",title:"ElasticSearch",iconName:"serviceElasticSearch",logoFilename:"elasticsearch.svg",category:"Databases",collectors:["python.d.plugin:elasticsearch"],contexts:["elastic.search_performance_total","elastic.index_performance_total","elastic.index_segments_memory"],priority:6},{name:"CouchDB",title:"CouchDB",iconName:"serviceCouchDB",logoFilename:"couchdb.svg",category:"Databases",collectors:["python.d.plugin:couchdb"],contexts:["couchdb.activity","couchdb.response_codes"],priority:7},{name:"Proxy SQL",title:"Proxy SQL",iconName:"serviceProxySQL",logoFilename:"proxysql.svg",category:"Databases",collectors:["python.d.plugin:proxysql"],contexts:["proxysql.questions","proxysql.pool_status","proxysql.pool_overall_net"],priority:8},{name:"Redis",title:"Redis",iconName:"serviceRedis",logoFilename:"redis.svg",category:"Databases",collectors:["python.d.plugin:redis"],contexts:["redis.operations","redis.net","redis.connections"],priority:9},{name:"MemCached",title:"MemCached",iconName:"serviceMemCached",logoFilename:"memcached.svg",category:"Databases",collectors:["python.d.plugin:memcached"],contexts:["memcached.cache","memcached.net","memcached.connections"],priority:10},{name:"RethinkDB",title:"RethinkDB",iconName:"serviceRethinkDB",logoFilename:"rethinkdb.svg",category:"Databases",collectors:["python.d.plugin:rethinkdbs"],contexts:["rethinkdb.cluster_queries","rethinkdb.cluster_clients_active","rethinkdb.cluster_connected_servers"],priority:11},{name:"Solr",title:"Solr",iconName:"serviceSolr",logoFilename:"solr.svg",category:"Databases",collectors:["go.d.plugin:solr"],contexts:["solr.search_requests","solr.update_requests"],priority:12},{name:"RabbitMQ",title:"RabbitMQ",iconName:"serviceRabbitMQ",logoFilename:"rabbitmq.svg",category:"Messaging",collectors:["python.d.plugin:rabbitmq","go.d.plugin:rabbitmq"],contexts:["rabbitmq.queued_messages","rabbitmq.erlang_run_queue"],priority:1},{name:"Beanstalkd",title:"Beanstalkd",iconName:"serviceBeanstalk",logoFilename:"beanstalkd.svg",category:"Messaging",collectors:["python.d.plugin:beanstalk"],contexts:["beanstalk.total_jobs_rate","beanstalk.connections_rate","beanstalk.current_tubes"],priority:2},{name:"Apache",title:"Apache",iconName:"serviceApache",logoFilename:"apache.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:apache","go.d.plugin:apache"],contexts:["apache.requests","apache.connections","apache.net"],priority:1},{name:"nginx",title:"nginx",iconName:"serviceNginx",logoFilename:"nginx.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:nginx","go.d.plugin:nginx"],contexts:["nginx.requests","nginx.connections"],priority:2},{name:"nginx+",title:"nginx+",iconName:"serviceNginxPlus",logoFilename:"nginx-plus.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:nginx_plus"],contexts:["nginx_plus.requests_total","nginx_plus.connections_statistics"],priority:3},{name:"lighthttpd",title:"lighthttpd",iconName:"serviceLighthttpd",logoFilename:"lighthttpd.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:lighttpd","go.d.plugin:lighttp"],contexts:["lighttpd.requests","lighttpd.net"],priority:4},{name:"lighthttpd2",title:"lighthttpd2",iconName:"serviceLighthttpd2",logoFilename:"lighthttpd.svg",category:"Web, Proxies, LBs, Streaming",collectors:["go.d.plugin:lighttpd2"],contexts:["lighttpd2.requests","lighttpd2.traffic"],priority:5},{name:"LiteSpeed",title:"LiteSpeed",iconName:"serviceLiteSpeed",logoFilename:"litespeed.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:litespeed"],contexts:["litespeed.requests","litespeed.requests_processing"],priority:6},{name:"Tomcat",title:"Tomcat",iconName:"serviceApacheTomcat",logoFilename:"tomcat.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:tomcat"],contexts:["tomcat.accesses","tomcat.processing_time","tomcat.bandwidth"],priority:7},{name:"PHP FPM",title:"PHP FPM",iconName:"servicePhpFpm",logoFilename:"php-fpm.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:phpfm"],contexts:["phpfpm.performance","phpfpm.requests","phpfpm.connections"],priority:8},{name:"HAproxy",title:"HAproxy",iconName:"serviceHAProxy",logoFilename:"haproxy.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:haproxy"],contexts:["haproxy_f.scur","haproxy_f.bin","haproxy_f.bout"],priority:9},{name:"Squid",title:"Squid",iconName:"serviceSquid",logoFilename:"squid.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:squid"],contexts:["squid.clients_requests","squid.clients_net"],priority:10},{name:"Traefik",title:"Traefik",iconName:"serviceTraefik",logoFilename:"traefik.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:traefik"],contexts:["traefik.response_codes"],priority:11},{name:"Varnish",title:"Varnish",iconName:"serviceVarnish",logoFilename:"varnish.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:varnish"],contexts:["varnish.session_connection","varnish.client_requests"],priority:12},{name:"IPVS",title:"IPVS",iconName:"serviceIPVS",logoFilename:"load-balancer.svg",category:"Web, Proxies, LBs, Streaming",collectors:["proc.plugin:/proc/net/ip_vs_stats"],contexts:["ipvs.sockets","ipvs.packets","ipvs.net"],priority:13},{name:"Web Log",title:"Web Log",iconName:"serviceWebLog",logoFilename:"log-file.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:web_log","go.d.plugin:web_log"],contexts:["web_log.response_codes","web_log.bandwidth"],priority:14},{name:"IPFS",title:"IPFS",iconName:"serviceIPFS",logoFilename:"ipfs.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:ipfs"],contexts:["ipfs.bandwidth","ipfs.peers"],priority:15},{name:"IceCast Media Streaming",title:"IceCast Media Streaming",iconName:"serviceIceCast",logoFilename:"icecast.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:icecast"],contexts:["icecast.listeners"],priority:16},{name:"RetroShare",title:"RetroShare",iconName:"serviceRetroShare",logoFilename:"retroshare.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:retroshare"],contexts:["retroshare.bandwidth","retroshare.peers"],priority:17},{name:"HTTP Check",title:"HTTP Check",iconName:"serviceHTTPCheck",logoFilename:"server-connection.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:httpcheck","go.d.plugin:httpcheck"],contexts:["httpcheck.responsetime","httpcheck.status"],priority:18},{name:"x509 Check",title:"x509 Check",iconName:"serviceX509Check",logoFilename:"data-encryption.svg",category:"Web, Proxies, LBs, Streaming",collectors:["go.d.plugin:x509check"],contexts:["x509check.time_until_expiration"],priority:19}].reduce(((e,t)=>({...e,[t.name]:t})),{}),x=e=>{var t;return(null===(t=y[e])||void 0===t?void 0:t.iconName)||"services"},b=e=>{var t;let{node:n}=e;return null!==(t=n.services)&&void 0!==t&&t.length?r.createElement(v.A,{link:"https://learn.netdata.cloud/docs/agent/collectors/collectors#service-and-application-collectors",name:"Services"},n.services.map((e=>r.createElement(g.A,{size:"small",key:e,iconName:x(e),name:e,testId:"sidebar-ServicesGroup-service-".concat(e)})))):null};var E=n(58010),I=n(17240);const C=e=>{let{nodeIds:t,flavour:n}=e;const a=(0,i.l6)("sidebarNodeId",{defaultValue:t[0],flavour:"val",extraKey:n}),l=(0,m.xY)(a);return l.id?r.createElement(o.Flex,{column:!0,gap:1,overflow:{horizontal:"hidden",vertical:"auto"},padding:[2],width:"100%"},r.createElement(o.TextBig,{strong:!0},"Info"),r.createElement(o.Flex,{column:!0,padding:[2,0,3],border:{side:"bottom",color:"borderSecondary"}},false,r.createElement(o.TextSmall,{"data-testid":"sidebar-nodeInfoContent-hostname",strong:!0},"Hostname: ",l.name)),r.createElement(f.A,{node:l}),r.createElement(p.A,{node:l}),r.createElement(h.A,{node:l}),r.createElement(E.A,{node:l}),r.createElement(b,{node:l}),r.createElement(I.A,{node:l})):r.createElement(o.Text,null,"Select a node to see its\u2019 info")};var A=n(29217),k=n(20687),w=(n(25440),n(55309)),S=n(20982),F=n(18713),P=n(59090);const N=e=>e&&"0"!==e?"".concat(parseFloat(e).toFixed(2),"%"):"-";n(14905),n(8872);var _=n(82543),M=n(61427);const K=e=>{let{chartIds:t,weightKey:n,flavour:l="rhs",...i}=e;const[s,c,d]=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{flavour:t,weightKey:n="weight"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=(0,_.g)(),{loaded:l,byContext:o}=(0,M.G9)({nodeIds:a,flavour:t});return(0,r.useMemo)((()=>{if(!l)return[!1,null,null];let t=null;const a=e.reduce(((e,a)=>{let r;if(/::/.test(a)){const e=a.split("::");a=e[0],r=e[1]}const[l,i]=r?((e,t,n,a)=>{var r,l;let{max:o,maxWeightContext:i,weightKey:s}=a;const c="".concat(n,",").concat(t);return e[c]&&((null===(r=e[c])||void 0===r?void 0:r[s])||0)>o?[(null===(l=e[c])||void 0===l?void 0:l[s])||0,t]:[o,i]})(o,a,r,{max:e,maxWeightContext:t,weightKey:n}):((e,t,n)=>{let{max:a,maxWeightContext:r,weightKey:l}=n;return e[t]&&(e[t][l]||0)>a?[e[t][l]||0,t]:[a,r]})(o,a,{max:e,maxWeightContext:t,weightKey:n});return t=i,l}),0);return[!0,a,t]}),[e,o])}(t,{flavour:l,weightKey:n});return s?r.createElement(A.A,{content:d,align:"top",enterDelay:200,activateOn:"hover"},r.createElement(o.Pill,(0,a.A)({hollow:!0,flavour:"neutral",tiny:!0,cursor:i.onClick?"pointer":"auto"},i),N(c))):null},L=(0,l.default)(o.IconButton).attrs((e=>({flavour:"borderless",cursor:"pointer",width:"12px",height:"12px",iconColor:"textLite",padding:[0],...e}))).withConfig({displayName:"config__ConfigButton",componentId:"sc-1q0bfbp-0"})([""]),T=(0,l.default)(o.Flex).withConfig({displayName:"menuSettings__SettingsContainer",componentId:"sc-1nq4zzt-0"})(["display:",";"],(e=>e.active&&!e.hasSubmenuActive?"flex":"none")),D=(0,l.css)(["","{display:flex;"," .button-icon__color{fill:"," !important;}}"],T,L,(0,o.getColor)("text")),B=e=>{let{id:t,chartIds:n,arFlavour:a,showAR:l=!0,showConfig:i,weightKey:s,active:c,hasSubmenuActive:d,extraKey:u}=e;return r.createElement(o.Flex,{gap:1,alignItems:"center"},!1,l&&r.createElement(K,{chartIds:n,flavour:a,weightKey:s}))},q=(0,l.default)(o.TextSmall).attrs((e=>{let{active:t,id:n,name:a,link:r,children:l,...o}=e;return{strong:t,children:a||l||n,href:"#".concat(r),"data-sidebar-submenuid":n,truncate:!0,whiteSpace:"normal",color:"textLite",wordWrap:"break-word",...o}})).withConfig({displayName:"menuItem__MenuLabelWrapper",componentId:"sc-18613h0-0"})(["&&&{text-decoration:none;}"]),O=(0,l.css)(["border-left:1px solid ",";","{color:",";}"],(0,o.getColor)("key"),q,(0,o.getColor)("key")),V=(0,l.default)(o.Flex).attrs((e=>{let{active:t,...n}=e;return{width:"98%",padding:[.5,1,.5,4],role:"listitem",as:"a","aria-current":t,active:t,...n}})).withConfig({displayName:"menuItem__Container",componentId:"sc-18613h0-1"})(["&&&{border-left:1px solid transparent;"," "," text-decoration:none;cursor:pointer;&:hover{"," ","}}"],(e=>e.active&&O),(e=>e.active&&"".concat(q," { font-weight: bold; }")),O,D),z=(0,P.A)(q,(e=>{let{name:t,id:n}=e;return{children:t||n}})),W=(0,r.forwardRef)(((e,t)=>{let{id:n,useItemsAreVisible:l,...o}=e;const i=l(o.chartIds);return o.forceVisibility||i?r.createElement(V,(0,a.A)({ref:t,as:"a",gap:2,alignItems:"center",justifyContent:"between","data-sidebar-menugroupid":n},o)):null})),R=(0,P.A)(W,(e=>{let{id:t,link:n,chartIds:a,forceVisibility:r}=e;return{id:t,href:"#".concat(n),chartIds:a,forceVisibility:r}})),G=(0,P.A)((e=>t=>{let{id:n,...l}=t;const o=(0,F.W7)((e=>n===e));return r.createElement(e,(0,a.A)({active:o,id:n},l))})((H=e=>{let{id:t,...n}=e;return r.createElement(R,(0,a.A)({id:t},n),r.createElement(z,{id:t}),r.createElement(B,(0,a.A)({},n,{id:t})))},e=>{let{id:t,onSubMenuClick:n,...l}=e;const o=(0,r.useMemo)((()=>n&&(e=>n(t,e))),[n,t]);return r.createElement(H,(0,a.A)({onClick:o,id:t},l))})));var H;const j=(0,l.default)(o.Text).attrs({color:"textLite"}).withConfig({displayName:"menuGroup__MenuGroupLabelWrapper",componentId:"sc-1q9pvct-0"})(["font-weight:500;"]),U=(0,l.default)(o.Flex).attrs({flex:!1,color:"textLite",width:6,alignItems:"center",justifyContent:"center"}).withConfig({displayName:"menuGroup__FaIcon",componentId:"sc-1q9pvct-1"})([""]),Q=(0,l.css)(["border-left:2px solid ",";","{color:",";}"],(0,o.getColor)("text"),j,(0,o.getColor)("text")),Y=(0,l.default)(o.Flex).attrs({width:"98%"}).withConfig({displayName:"menuGroup__Container",componentId:"sc-1q9pvct-2"})(["&&&{border-left:2px solid transparent;"," "," text-decoration:none;cursor:pointer;&:hover{"," ","}}"],(e=>e.active&&Q),(e=>e.active&&"".concat(j," { font-weight: bold; }")),Q,D),Z=(0,w.HB)(j,(e=>{let{name:t,id:n}=e;return{children:t||n}})),$=(0,w.HB)((e=>{let{icon:t}=e;return t?r.createElement(U,null,o.iconsList[t]?r.createElement(o.Icon,{name:t,size:"small",color:"text"}):r.createElement(S.g,{icon:t})):null}),(e=>{let{icon:t}=e;return{icon:t}})),J=(0,r.forwardRef)(((e,t)=>{let{id:n,subMenuChartIds:l,useItemsAreVisible:o,...i}=e;const s=o(l);return i.forceVisibility||s?r.createElement(Y,(0,a.A)({ref:t,as:"a",gap:2,padding:[1],alignItems:"center",justifyContent:"between","data-sidebar-menugroupid":n},i)):null})),X=(0,w.HB)(J,(e=>{let{id:t,link:n,subMenuChartIds:a,forceVisibility:r}=e;return{id:t,href:"#".concat(n),subMenuChartIds:a,forceVisibility:r}})),ee=e=>{let{id:t,...n}=e;return r.createElement(X,(0,a.A)({id:t},n),r.createElement(o.Flex,null,r.createElement($,{id:t}),r.createElement(Z,{id:t})),r.createElement(B,(0,a.A)({},n,{id:t})))},te=(0,w.HB)((e=>{let{subMenuIds:t,onSubMenuClick:n,useItemsAreVisible:l,...i}=e;return r.createElement(o.Flex,(0,a.A)({column:!0,role:"list",padding:[0,0,2,0]},i),t.map((e=>r.createElement(G,{key:e,id:e,onSubMenuClick:n,useItemsAreVisible:l}))))}),(e=>{let{subMenuIds:t}=e;return{subMenuIds:t}})),ne=(0,r.forwardRef)(((e,t)=>r.createElement(o.Flex,(0,a.A)({as:"li",column:!0,ref:t},e)))),ae=(e=>t=>{let{id:n,...l}=t;const o=(0,F.C)(n),i=(0,F.W7)((e=>!!e));return r.createElement(e,(0,a.A)({active:o,hasSubmenuActive:i,id:n},l))})((e=>t=>{let{id:n,onMenuGroupClick:l,onSubMenuClick:o,...i}=t;const s=(0,r.useMemo)((()=>l&&(e=>l(n,e))),[l,n]),c=(0,r.useMemo)((()=>o&&((e,t)=>o(n,e,t))),[o,n]);return r.createElement(e,(0,a.A)({id:n,onMenuGroupClick:s,onSubMenuClick:c},i))})((e=>{let{id:t,active:n,hasSubmenuActive:l,onMenuGroupClick:o,onSubMenuClick:i,showChildren:s=!0,useItemsAreVisible:c,...d}=e;const u=(0,w.Ee)(t);return u?r.createElement(ne,d,r.createElement(ee,(0,a.A)({},u,{id:t,onClick:o,active:n,hasSubmenuActive:l,chartIds:u.subMenuChartIds,useItemsAreVisible:c})),s&&n&&r.createElement(te,{id:t,onSubMenuClick:i,useItemsAreVisible:c})):null}))),re=(0,r.forwardRef)(((e,t)=>r.createElement(o.Flex,(0,a.A)({as:"ul",width:"100%",role:"complementary",column:!0,overflow:{vertical:"auto"},"data-sidebar":"true",ref:t},e)))),le=()=>!0,oe=(0,r.memo)((e=>{let{menuGroupIds:t,onMenuGroupClick:n,onSubMenuClick:l,menuGroupProps:o,useItemsAreVisible:i=le,extraKey:s,...c}=e;return r.createElement(re,c,t.map((e=>r.createElement(ae,(0,a.A)({key:e,id:e,onMenuGroupClick:n,onSubMenuClick:l,useItemsAreVisible:i,extraKey:s},o)))))})),ie=(0,w.$V)(oe),se=(0,r.memo)(ie);var ce=n(79566),de=n(71847),ue=n(73700),me=n(13271);const ge=()=>{const[e,t]=(0,me.sK)(),n=(0,r.useCallback)((0,ue.s)(300,(e=>{t(e.target.value),(0,de.H)("toc-search","search-automatic-trigger","charts-view",e.target.value)})),[]),[a,l,,,{resetValue:i}]=(0,o.useInputValue)({value:e,onChange:n}),s=(0,r.useCallback)((()=>{t(""),i(),(0,de.H)("toc-search","clear-search-button","charts-view")}),[]);return r.createElement(o.TextInput,{value:a,onChange:l,size:"small",iconRight:a&&r.createElement(o.Icon,{name:"x",color:"textLite",cursor:"pointer",size:"small",onClick:s,"data-testid":"filterChartsInput-clearButton"}),placeholder:"Search charts",name:"Search charts","data-testid":"filterChartsInput",containerStyles:{width:"100%"}})};var pe=n(4659);const he=(0,ue.s)(300,((e,t)=>(0,de.H)("toc-search","search-results","charts-view",e,"".concat(t," -- charts")))),fe=()=>{const e=(0,me.Um)(),{filteredChartsCount:t,chartsCount:n}=(0,me.Ad)();return(0,r.useEffect)((()=>{e&&he(e,t)}),[e,t]),r.createElement(r.Fragment,null,r.createElement(o.TextMicro,{alignSelf:"end",color:"textLite",margin:[1,0,0],"data-testid":"numberOfChartsIndication"},"Showing"," ",r.createElement(o.TextMicro,{strong:!0,color:"textDescription","data-testid":"numberOfChartsIndication-filteredChartsCount"},t)," ","of total"," ",r.createElement(o.TextMicro,{strong:!0,color:"textDescription","data-testid":"numberOfChartsIndication-chartsCount"},n)," ","charts"),r.createElement(pe.A,{Component:o.TextMicro,alignSelf:"end","data-ga":"toc-search::click-link-collectors::".concat(name),href:"https://learn.netdata.cloud/docs/agent/collectors/",target:"_blank",rel:"noopener noreferrer"},"Add more charts"))},ve=()=>{const{filteredChartsCount:e}=(0,me.Ad)();return e?null:r.createElement(o.Flex,{width:"100%",gap:1,margin:[4,0,0],padding:[2],round:1,background:"disabledBackground",alignItems:"center","data-testid":"noResultsWereFound"},r.createElement(o.Icon,{name:"information",color:"textDescription"}),r.createElement(o.TextMicro,{strong:!0,color:"textDescription"},"No results were found"))},ye=(0,_.A)(fe),xe=()=>r.createElement(o.Flex,{column:!0,alignItems:"center",height:{min:"65px"}},r.createElement(ge,null),r.createElement(ye,null),r.createElement(ve,null));var be=n(23931),Ee=n(8320),Ie=n(68831),Ce=n(87659),Ae=n(3914),ke=n(69765);const{demoSlug:we,demoFavourites:Se}=Ie.A,Fe=(0,l.default)(o.Icon).attrs({size:"small",name:"chevron_left",color:"textLite"}).withConfig({displayName:"favourites__StyledChevron",componentId:"sc-mwcyj8-0"})(["transition:transform 0.2s ease-in-out;"]),Pe={showChildren:!1},Ne=e=>{let{onMenuGroupClick:t,onSubMenuClick:n,initialChartName:a,flavour:l}=e;const i=(0,Ae.bq)(),s=(0,ke.QW)(),c=we===i&&Se[s]||[],d=(0,w.re)((u=c,e=>u.reduce(((t,n)=>e[n]?[...t,n]:t),[])));var u;const{onMenuGroupClick:m,onSubMenuClick:g}=(0,ce.A)({onMenuGroupClick:t,onSubMenuClick:n}),[p,h]=(0,Ce.A)(!0),f=(0,Ee.UH)();return(0,r.useEffect)((()=>{f&&!a&&d.length&&t(d[0])}),[f,a]),d.length?r.createElement(o.Flex,{column:!0,gap:1,border:{side:"bottom",color:"borderSecondary"},padding:[0,0,2]},r.createElement(o.Flex,{onClick:h,cursor:"pointer",alignItems:"center",justifyContent:"between"},r.createElement(o.Flex,{gap:1,alignItems:"center"},r.createElement("i",{className:"fa-regular fa-star"}),r.createElement(o.Text,{strong:!0,color:"textFocus"},"Favourites")),r.createElement(Fe,{rotate:p?1:3,alignSelf:"end"})),r.createElement(o.Collapsible,{open:p,padding:[0,0,0,2]},r.createElement(oe,{menuGroupIds:d,onMenuGroupClick:m,onSubMenuClick:g,menuGroupProps:Pe,extraKey:l}))):null},_e={nodesView:()=>!0,default:be.Bu},Me=e=>(0,de.H)("metric-sidebar","click-".concat(Le(e)),"mn-overview"),Ke=e=>{const t=Le(e);(0,de.H)("metric-sidebar","click-".concat(t),"mn-overview",t)},Le=e=>e.startsWith("Kubernetes")?"k8s":e.replace(/[^\w]/g,"-").toLowerCase(),Te=e=>{let{initialChartName:t,loaded:n,hasSearch:a=!0,flavour:l}=e;const{onMenuGroupClick:i,onSubMenuClick:s}=(0,ce.A)({onMenuGroupClick:Me,onSubMenuClick:Ke,loaded:n}),c=_e[l]||_e.default;return r.createElement(r.Fragment,null,a&&r.createElement(o.Flex,{column:!0,position:"sticky",top:"0",gap:1,padding:[0,2]},r.createElement(o.Text,{strong:!0},"Sections and Charts"),r.createElement(xe,null)),n&&r.createElement(r.Fragment,null,r.createElement(Ne,{onMenuGroupClick:i,onSubMenuClick:s,initialChartName:t,useItemsAreVisible:c,flavour:l}),r.createElement(se,{position:"relative",onMenuGroupClick:i,onSubMenuClick:s,width:"100%",useItemsAreVisible:c,extraKey:l})))};var De=n(23452),Be=n(59846),qe=n(82700);const Oe=e=>e.id,Ve=e=>{let{baseKey:t,param:n,paramKey:l,extraKey:o,testIdPrefix:s,title:c,groupProps:d}=e;const u=(e=>{let{extraKey:t,param:n,paramKey:a}=e;const l=(0,De.QD)({extraKey:t,omit:n,keepAll:!0}),o=(0,i.l6)(n,{extraKey:t,flavour:"arr"});return(0,r.useMemo)((()=>Object.entries(l.reduce(((e,t)=>(e[t[a]]=(e[t[a]]||0)+(t.hidden?0:1),e)),{...De.hv[n]||{}})).map((e=>{let[t,n]=e;return{id:t,count:n}})).sort(De.qr[n]||De.qr.default)),[l.filter((e=>e.hidden)).length,o])})({param:n,extraKey:o,paramKey:l});return u.length?r.createElement(Be.A,(0,a.A)({title:c,testIdPrefix:s,baseKey:t,extraKey:o,param:n,help:"Filter the alerts. Count next to each item refer to the number of alerts that will be selected."},d),r.createElement(qe.Ay,{param:n,baseKey:t,extraKey:o,testIdPrefix:s,collection:u,getValue:Oe,getLabel:Oe})):null};n(30237),n(32679),n(8159),n(30670),n(37550),n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215);var ze=n(66245),We=n.n(ze),Re=n(45467);const Ge=e=>{let{baseKey:t,extraKey:n,param:l,testIdPrefix:o,itemsProps:s,itemProps:c,groupProps:d,...u}=e;const m=(e=>{let{extraKey:t,param:n}=e;const a=(0,De.QD)({extraKey:t,omit:n,keepAll:!0}),l=(0,i.l6)(n,{extraKey:t,flavour:"arr"});return(0,r.useMemo)((()=>Object.entries(a.reduce(((e,t)=>{let{type:n,component:a,hidden:r}=t;return e[n]=e[n]||{count:0,children:{}},e[n].count=(e[n].count||0)+(r?0:1),e[n].children[a]=(e[n].children[a]||0)+(r?0:1),e}),{})).reduce(((e,t)=>{let[n,{count:a,children:r}]=t;return e.push({id:n,count:a,children:Object.entries(r).map((e=>{let[t,a]=e;return{value:"".concat(n,"|").concat(t),label:t,count:a,level:1}}))}),e}),[]).sort(De.qr[n]||De.qr.default)),[a.filter((e=>e.hidden)).length,l])})({param:l,extraKey:n}),[g,p]=(0,i.N9)(l,{defaultValue:[],key:t,extraKey:n,flavour:"arr"});(0,Re.A)((()=>{m.length&&g.length&&p((e=>e.filter((e=>m.some((t=>t.children.some((t=>t.value===e))))))))}),[m.length,p]);const h=(0,r.useCallback)((e=>{let{value:t,checked:n}=e;p((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?[...new Set([...e,...t])]:We()(e,t):n?[...e,t]:e.filter((e=>e!==t))}))}),[p]),f=(0,r.useMemo)((()=>(e=>{let{options:t,selected:n,itemsProps:a={}}=e;if(!t.length)return[];const r=t.flatMap((e=>e.children.map((e=>e.value)))),l=r.length===n.length,o=!l&&!!n.length;return[{...a.head,label:"Select all",value:r,selected:l,indeterminate:o},...t.flatMap((e=>{let{id:t,children:r,count:l}=e;const o=n.length&&!r.some((e=>!n.includes(e.value))),i=!o&&n.length&&r.some((e=>n.includes(e.value)));return r.reduce(((e,t)=>{const r=n.includes(t.value);return[...e,{...a.row,...t,selected:r}]}),[{...a.head,label:t,value:r.map((e=>e.value)),selected:o,indeterminate:i,count:l}])}))]})({options:m,selected:g,itemsProps:s})),[g,p,m]);return m.length?r.createElement(Be.A,(0,a.A)({title:"Alert type & component",testIdPrefix:o,baseKey:t,extraKey:n,param:l,help:"Filter the alerts. Count next to each item refer to the number of alerts that will be selected."},d),r.createElement(qe.V$,(0,a.A)({"data-testid":"".concat(o,'-filter-selections"'),searchMargin:[0,0,1],items:f,onItemClick:h,value:g,"data-value":g.join(",")||"all-selected",hasSearch:m.length>5,itemProps:{testIdPrefix:o,...c}},u))):null};Ge.defaultProps=qe.Ay.defaultProps;const He=Ge;var je=n(11128);const Ue=e=>e.id,Qe=e=>{let{baseKey:t,param:n,paramKey:l,extraKey:o,testIdPrefix:s,title:c,groupProps:d,...u}=e;const m=(e=>{let{extraKey:t,param:n,paramKey:a}=e;const l=(0,je.eO)({extraKey:t,omit:n,keepAll:!0,scoped:!!t}),o=(0,i.l6)(n,{extraKey:t,flavour:"arr"});return(0,r.useMemo)((()=>Object.entries(l.reduce(((e,t)=>(e[t[a]]=(e[t[a]]||0)+(t.hidden?0:1),e)),{})).map((e=>{let[t,n]=e;return{id:t,count:n}})).sort(je.qr[n]||je.qr.default)),[l.filter((e=>e.hidden)).length,o])})({param:n,extraKey:o,paramKey:l});return m.length?r.createElement(Be.A,(0,a.A)({title:c,testIdPrefix:s,baseKey:t,extraKey:o,param:n,help:"Filter your nodes for this page. Count next to each item refer to the number of nodes that will be selected and used across the page.",defaultIsOpen:!1},d),r.createElement(qe.Ay,(0,a.A)({param:n,baseKey:t,extraKey:o,testIdPrefix:s,collection:m,getValue:Ue,getLabel:Ue},u))):null};n(9920),n(3949);const Ye=e=>{let{baseKey:t,extraKey:n,param:l,testIdPrefix:o,itemsProps:s,itemProps:c,groupProps:d,...u}=e;const m=(e=>{let{extraKey:t,param:n}=e;const a=(0,je.eO)({extraKey:t,omit:n,keepAll:!0,merge:!0}),l=(0,i.l6)(n,{extraKey:t,flavour:"arr"});return(0,r.useMemo)((()=>Object.entries(a.reduce(((e,t)=>{let{labels:n,hidden:a}=t;return Object.keys(n).forEach((t=>{e[t]=e[t]||{count:0,children:{}},e[t].count=(e[t].count||0)+(a?0:1),e[t].children[n[t]]=(e[t].children[n[t]]||0)+(a?0:1)})),e}),{})).reduce(((e,t)=>{let[n,{count:a,children:r}]=t;return e.push({id:n,count:a,children:Object.entries(r).map((e=>{let[t,a]=e;return{value:"".concat(n,"|").concat(t),label:t,count:a,level:1}}))}),e}),[]).sort(je.qr[n]||je.qr.default)),[a.filter((e=>e.hidden)).length,l])})({param:l,extraKey:n}),[g,p]=(0,i.N9)(l,{defaultValue:[],key:t,extraKey:n,flavour:"arr",merge:!1});(0,Re.A)((()=>{m.length&&g.length&&p((e=>e.filter((e=>m.some((t=>t.children.some((t=>t.value===e))))))))}),[m.length,p]);const h=(0,r.useCallback)((e=>{let{value:t,checked:n}=e;p((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?[...new Set([...e,...t])]:We()(e,t):n?[...e,t]:e.filter((e=>e!==t))}))}),[p]),f=(0,r.useMemo)((()=>(e=>{let{options:t,selected:n,itemsProps:a={}}=e;if(!t.length)return[];const r=t.flatMap((e=>e.children.map((e=>e.value)))),l=r.length===n.length,o=!l&&!!n.length;return[{...a.head,label:"Select all",value:r,selected:l,indeterminate:o},...t.flatMap((e=>{let{id:t,children:r,count:l}=e;const o=n.length&&!r.some((e=>!n.includes(e.value))),i=!o&&n.length&&r.some((e=>n.includes(e.value)));return r.reduce(((e,t)=>{const r=n.includes(t.value);return[...e,{...a.row,...t,selected:r}]}),[{...a.head,label:t,value:r.map((e=>e.value)),selected:o,indeterminate:i,count:l}])}))]})({options:m,selected:g,itemsProps:s})),[g,p,m]);return m.length?r.createElement(Be.A,(0,a.A)({title:"Host labels",testIdPrefix:o,baseKey:t,extraKey:n,param:l,help:"Filter your nodes for this page. Count next to each item refer to the number of nodes that will be selected and used across the page."},d),r.createElement(qe.V$,(0,a.A)({"data-testid":"".concat(o,'-filter-selections"'),searchMargin:[0,0,1],items:f,onItemClick:h,value:g,"data-value":g.join(",")||"all-selected",hasSearch:m.length>3,itemProps:{testIdPrefix:o,...c}},u))):null};Ye.defaultProps=qe.Ay.defaultProps;const Ze=Ye;var $e=n(94177);const Je=(0,r.memo)((e=>{let{flavour:t,groupProps:n,...l}=e;const i=(0,ke.ID)();return r.createElement(o.Flex,(0,a.A)({column:!0,overflow:{vertical:"auto"},padding:[0,2,30]},l),"alerts"===t&&r.createElement(r.Fragment,null,r.createElement(Ve,{title:"Alert status",testIdPrefix:"alert-status",baseKey:i,extraKey:t,param:"alertStatuses",paramKey:"status",groupProps:n}),r.createElement(Ve,{title:"Alert class",testIdPrefix:"alert-class",baseKey:i,extraKey:t,param:"alertClasses",paramKey:"class",groupProps:n}),r.createElement(He,{testIdPrefix:"alert-type-component",baseKey:i,extraKey:t,param:"alertTypeComponents",groupProps:n}),r.createElement(Ve,{title:"Alert role",testIdPrefix:"alert-role",baseKey:i,extraKey:t,param:"alertRoles",paramKey:"recipient",groupProps:n})),"singleNode"!==t&&"anomalies"!==t&&r.createElement(r.Fragment,null,r.createElement(Ze,{testIdPrefix:"node-labels",baseKey:i,extraKey:t,param:"nodeLabels",groupProps:n}),r.createElement(Qe,{title:"Node status",testIdPrefix:"node-status",baseKey:i,extraKey:t,param:"nodeStatuses",paramKey:"nodeStatus",groupProps:n}),r.createElement(Qe,{title:"Netdata version",testIdPrefix:"node-version",baseKey:i,extraKey:t,param:"nodeVersions",paramKey:"version",groupProps:n})),!!t&&"singleNode"!==t&&r.createElement($e.A,{testIdPrefix:"node-ids",baseKey:i,extraKey:t,groupProps:{defaultIsOpen:"anomalies"===t,...n}}))})),Xe={color:{active:"success",notActive:"textLite"},minWidth:"auto"},et={chartIndexing:{...Xe,iconName:"charts_view",Content:Te,dataTestId:"nodeInfo-chartIndexing",label:"Charts"},filters:{...Xe,iconName:"filterList",Content:Je,dataTestId:"nodeInfo-filters",label:"Filters"},alerts:{...Xe,iconName:"alarm_bell",Content:k.A,dataTestId:"nodeInfo-alertsTab",label:"Alerts"},info:{...Xe,iconName:"information",dataTestId:"nodeInfo-alertsTab",Content:C,label:"Info"}},tt=[],nt=(0,l.default)(o.Tabs).withConfig({displayName:"sidebar__StyledTabs",componentId:"sc-1d5ify6-0"})(["overflow:hidden;height:100%;"]),at=e=>{let{flavour:t,children:n}=e;return r.createElement(r.Fragment,null,n)},rt=e=>{let{isActive:t,color:n,name:a,label:l}=e;return r.createElement(A.A,{plain:!0,content:l},r.createElement(o.Icon,{name:a,color:t?n.active:n.notActive,height:"18px",width:"18px"}))},lt=e=>{let{tabs:t=et,hiddenTabs:n=tt,includedTabs:l=tt,title:m,nodeIds:g=tt,onClose:p,baseWidth:h,...f}=e;const[v,y]=(0,i.r$)("sidebarTab",{defaultValue:"",flavour:"val",extraKey:f.flavour}),x=(0,r.useMemo)((()=>Object.keys(t).filter((e=>(!l.length||l.includes(e))&&!n.includes(e)))),[n]),b=(0,r.useMemo)((()=>{const e=x.findIndex((e=>e===v));return-1===e?0:e}),[v]),[E,I]=(0,i.r$)("sidebarOpen",{defaultValue:!0,flavour:"bool"}),C=(0,r.useCallback)((e=>{y(x[e]),I(!0)}),[x]);return r.createElement(s.Ay,{collapsedComponent:f.flavour&&r.createElement(c.A,{onClickTab:C,availableTabs:t,tabsToShow:x}),isOpen:E,header:f.flavour?r.createElement(d.A,{isOpen:E,onToggle:()=>I(!E),title:m}):r.createElement(u.A,{title:m,onClick:p}),width:h},r.createElement(o.Flex,{"data-testid":"sidebar-tabs",column:!0,overflow:"hidden",height:"100%"},r.createElement(nt,{selected:b,onChange:C,noDefaultBorder:!0,TabsHeader:(0,r.useMemo)((()=>e=>r.createElement(at,(0,a.A)({flavour:f.flavour},e))),[f.flavour])},x.map(((e,n)=>{const{iconName:l,Content:i,dataTestId:s,color:c,label:d,...u}=t[e];return r.createElement(o.Tab,(0,a.A)({style:{display:1===x.length?"none":"inherit"},"data-testid":s,maxWidth:"100%",key:l,small:!0,label:r.createElement(rt,{isActive:v===n,name:l,color:c,label:d})},u),r.createElement(o.Flex,{column:!0,overflow:"hidden",height:"100%",position:"relative",gap:3,padding:[1,0]},r.createElement(i,(0,a.A)({nodeIds:g},f))))})))))}},55483:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(96540),r=n(83488),l=n.n(r),o=n(2404),i=n.n(o),s=n(39528);const c=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l();const n=(0,a.useRef)();return(0,s.i7)(e,(e=>{const a=t(e);return i()(n.current,a)||(n.current=a),n.current}))}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/934.aadd4297c0cd646a1038.chunk.js b/src/web/gui/v2/934.aadd4297c0cd646a1038.chunk.js
new file mode 100644
index 000000000..c0de459be
--- /dev/null
+++ b/src/web/gui/v2/934.aadd4297c0cd646a1038.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1371efcc-d17f-493b-9efc-3b6847219957",e._sentryDebugIdIdentifier="sentry-dbid-1371efcc-d17f-493b-9efc-3b6847219957")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[934],{60934:(e,n,t)=>{t.r(n),t.d(n,{default:()=>E});t(62953);var l=t(96540),a=t(39225),o=t(8711),d=t(10058),r=t(29217),c=t(21875),i=t(64118),s=t(59303),f=t(28738),u=t(93155);const b=(0,a.A)((()=>Promise.all([t.e(7144),t.e(6331)]).then(t.bind(t,33590))),"Content"),m=(0,o.default)(d.ModalContent).attrs({width:{base:"90vw"},height:{base:"90vh",min:"90vh",max:"90vh"},padding:[0,0,4,0]}).withConfig({displayName:"configurationManagement__ModalContent",componentId:"sc-56l9v5-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),g=()=>l.createElement(f.A,{title:"Loading configuration manager"}),E=()=>{const[e,n]=(0,c.v7)(),[,t]=(0,c.$h)(),a=(0,c.Vj)(),[o,f]=(0,l.useState)(!1);(0,i.yk)(null===e||void 0===e?void 0:e.alertId);const E=(0,i.JL)(null===e||void 0===e?void 0:e.alertId);(0,l.useEffect)((()=>{e&&!e.alertId&&f(!0)}),[e]),(0,l.useEffect)((()=>{if(null!==E&&void 0!==E&&E.fullyLoaded){const e=(0,s.we)(E);t(e),f(!0)}}),[E]);const p=(0,l.useCallback)((()=>{n(null),a(),f(!1)}),[n,a,f]);return u.Dm&&e?l.createElement(d.Modal,{backdropProps:{backdropBlur:!0}},l.createElement(m,null,l.createElement(d.ModalHeader,{justifyContent:"between",padding:[4]},l.createElement(d.Flex,{gap:2,alignItems:"center"},l.createElement(d.Icon,{name:"alarm_bell",color:"text",size:"small"}),l.createElement(d.H4,null,"Generate Alert Configuration")),l.createElement(d.Flex,{gap:2,alignItems:"baseline"},l.createElement(r.A,{align:"bottom",content:"Close window",zIndex:7050},l.createElement(d.Flex,null,l.createElement(d.ModalCloseButton,{onClose:p,testId:"assistant-modal-close-button"}))))),l.createElement(d.ModalBody,{height:"100%",padding:[0,4],overflow:"hidden"},o?l.createElement(l.Suspense,{fallback:l.createElement(g,null)},l.createElement(b,null)):l.createElement(g,null)))):null}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/9473.3693c06a873280f11bd6.chunk.js b/src/web/gui/v2/9473.3693c06a873280f11bd6.chunk.js
new file mode 100644
index 000000000..1f2ccbd0a
--- /dev/null
+++ b/src/web/gui/v2/9473.3693c06a873280f11bd6.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9a39c2ea-6885-4e4d-a33c-b8b274ec8cf7",e._sentryDebugIdIdentifier="sentry-dbid-9a39c2ea-6885-4e4d-a33c-b8b274ec8cf7")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9473],{36196:(e,t,a)=>{a.d(t,{A:()=>y});var n=a(58168),o=a(96540),l=a(22332),r=a(10534),c=a(89380),s=a(25369),i=a(39360),d=a(95662),u=a(99891),m=a(49096),g=a(74487),p=a(64131);const h=(0,o.forwardRef)(((e,t)=>{let{width:a,height:l,...r}=e;return o.createElement(c.ChartWrapper,{width:a,height:l},o.createElement(p.N1,(0,n.A)({hasHeader:!1,hasFilters:!1,hasFooter:!1,width:a,height:l},r,{ref:t})))})),f=(0,r.default)(h,{tile:!0}),E={dygraph:p.Ay,easypiechart:u.Ay,gauge:i.Ay,number:m.Ay,groupBoxes:s.Ay,d3pie:d.Ay,bars:g.Ay},v=e=>{const t=(0,l.useChart)(),a=(0,l.useAttributeValue)("sparkline"),r=(0,l.useAttributeValue)("chartLibrary"),c=(0,o.useMemo)((()=>t?a?f:E[r]:null),[t,r,a]);return c?o.createElement(c,(0,n.A)({},e,{chart:t})):null},y=(0,l.withChartProvider)((0,o.memo)(v))},85686:(e,t,a)=>{a.d(t,{A:()=>d});var n=a(96540),o=a(8711),l=a(10058),r=a(6586),c=a(12602);const s=(0,o.default)(l.Flex).withConfig({displayName:"restrictedContentMessage__StyledBox",componentId:"sc-wbsw81-0"})(["transform:translate(-50%,-50%);"]),i={node:"This node is locked so you can't see the Single Node dashboard.",alert:"This node is locked so you can't see the full alert details. ",dashboard:"This dashboard is locked so you can't see it."},d=e=>{let{flavour:t="node"}=e;return n.createElement(s,{column:!0,width:"100%",gap:2,alignItems:"center",position:"absolute",top:"50%",left:"50%",padding:[4],round:2},n.createElement(l.TextBigger,null,i[t]||""),n.createElement(c.A,null,n.createElement(l.TextBig,{color:"primary"},"Upgrade for no limitations!")),n.createElement(l.TextBig,null,"or"),n.createElement(r.A,null,n.createElement(l.TextBig,{color:"primary"},"Change your active node selection to unlock it.")))}},40267:(e,t,a)=>{a.d(t,{A:()=>l});var n=a(96540),o=a(10058);const l=e=>{let{flavour:t,icon:a,children:l}=e;return n.createElement(o.Pill,{icon:a,textProps:{textTransform:"capitalize"},flavour:t},l)}},4974:(e,t,a)=>{a.d(t,{A:()=>d});a(62953);var n=a(96540),o=a(10058),l=a(64118),r=(a(25440),a(26655));var c=a(4659),s=a(69765),i=a(51913);const d=e=>{let{alertId:t}=e;const a=(0,l.JL)(t),{name:d="unknown alert"}=a,[u,m]=(e=>{const[t,a]=(0,n.useState)(!0),o="".concat("https://community.netdata.cloud/t","/").concat(null===e||void 0===e?void 0:e.replace(/[._]/g,"-"));return(0,n.useEffect)((()=>{e&&r.A.get(o).then((()=>a(!1))).catch((()=>a(!0)))}),[e]),[o,t]})(d),g=(0,s.ID)(),[,p]=(0,i.bg)(),h=(0,n.useMemo)((()=>({alignSelf:"start",onClick:()=>p({roomId:g,alert:a})})),[u,m,p]);return n.createElement(c.A,h,"Learn more about this alert",!m&&n.createElement(o.Icon,{name:"arrow_left",rotate:2,size:"small",margin:[0,0,-.75,1],color:"success"}))}},43407:(e,t,a)=>{a.d(t,{A:()=>r});var n=a(58168),o=a(96540),l=a(10058);const r=e=>{let{iconName:t,iconSize:a,children:r,...c}=e;return o.createElement(l.Flex,(0,n.A)({gap:2,alignItems:"center"},c),o.createElement(l.Icon,(0,n.A)({name:t,color:"textLite"},a&&{height:a,width:a})),o.createElement(l.Text,{strong:!0},r))}},7660:(e,t,a)=>{a.d(t,{A:()=>u});var n=a(58168),o=a(96540),l=a(10058),r=a(64118),c=a(21290),s=a(45976),i=a(52768);const d=e=>{let{label:t,testid:a,status:n,value:r,when:d,units:u}=e;const{localeTimeString:m,localeDateString:g}=(0,c.$j)(),p=(0,o.useMemo)((()=>{const e=new Date(1e3*d);return e&&"".concat(g(e,{long:!1})," ").concat(m(e,{secs:!0}))}),[d,g,m]),h=(0,i.J4)(r,u);return o.createElement(l.Flex,{gap:2,alignItems:"center"},o.createElement(l.Flex,{width:"100px"},o.createElement(l.TextSmall,null,t)),o.createElement(l.Flex,{gap:2,alignItems:"center"},o.createElement(l.TextSmall,{color:"text","data-testid":"".concat(a,"-dateTime")},p),o.createElement(s.A,{loaded:!0,status:n,valueWithUnit:h,"data-testid":"".concat(a,"-value")})))},u=e=>{let{alertId:t,...a}=e;const{fullyLoaded:c=!1,units:s,lastStatusChangeValue:i,lastStatusChange:u,status:m,lastUpdated:g,value:p,prevStatus:h,prevValue:f,prevDuration:E}=(0,r.JL)(t);return c?o.createElement(l.Flex,(0,n.A)({gap:2,column:!0,"data-testid":"alertValues"},a),g&&o.createElement(d,{label:"Latest",status:m,testid:"alertValues-latest",value:p,when:g,units:s}),u&&o.createElement(d,{label:"CLEAR"===m?"WARNING"===h||"CRITICAL"===h?"Cleared":"Initialized":"Triggered",status:m,testid:"alertValues-triggered",value:i,when:u,units:s})):null}},11164:(e,t,a)=>{a.d(t,{A:()=>E});var n=a(96540),o=a(36196),l=a(63950),r=a.n(l),c=a(10058),s=a(57605),i=a(28738),d=a(3914),u=a(69765),m=a(80925),g=a(47731),p=a(52768);const h=e=>t=>"alert-modal::".concat(e.getAttribute("id"),"::").concat(t),f={width:"108px",height:"77px"},E=e=>{let{instance:t,context:a,isFormattedValueLoaded:l,nodeId:E,status:v,lastStatusChange:y,formattedLastStatusChangeValue:x,lastUpdated:w,spaceId:b,roomId:A,setChartSelected:k=r()}=e;const I=(0,d.vt)();b=b||I;const C=(0,u.ID)();A=A||C;const S=(0,g.J)(),T=(0,m.e)(),N=(0,s.A)();(0,n.useEffect)((()=>(N(),N)),[]);const _=(0,d.dg)(),F=(0,n.useMemo)((()=>{if(!l)return;const e=T.makeChart({attributes:{nodeId:E,contextScope:[a],selectedInstances:t&&E?["".concat(t,"@").concat(E)]:[],id:t,roomId:A,enabledResetRange:!1,overlays:{proceeded:{type:"proceeded"},alarm:{type:"alarm",status:v,value:x,when:y}},host:_?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(b,"/rooms/").concat(A),nodesScope:[E],toolboxElements:[],sparkline:S,hasToolbox:!S},makeTrack:h});return T.getRoot().appendChild(e),e}),[t,l]);return(0,p.Vt)({lastUpdated:w,lastStatusChange:y},l),(0,n.useEffect)((()=>(k((e=>({...e,...F}))),()=>{F&&F.destroy(),k(null)})),[F]),n.createElement(c.Flex,{flex:!1,width:"100%",height:75},l&&F?n.createElement(o.A,{"data-chartid":t,chart:F,hasHeader:!S,hasFooter:!S}):n.createElement(i.A,{iconProps:f,title:"Loading chart..."}))}},87815:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(58168),o=(a(25440),a(96540)),l=a(8711),r=a(10058),c=a(52768);const s=l.default.div.withConfig({displayName:"timeCell__TimeBox",componentId:"sc-1k785pi-0"})(["display:flex;flex-direction:column;align-items:start;justify-content:center;"]),i=e=>{let{rawTime:t,secs:a,long:l,nowrap:i=!1,...d}=e;const{timeAgo:u,formattedDate:m=""}=(0,c.lT)({rawTime:t,secs:a,long:l});return o.createElement(s,d,o.createElement(r.TextSmall,null,u),o.createElement(r.TextMicro,(0,n.A)({color:"textLite"},i&&{whiteSpace:"nowrap"}),m?null===m||void 0===m?void 0:m.replace(/ /g," - "):""))}},5871:(e,t,a)=>{a.d(t,{A:()=>D});var n=a(96540),o=a(10058),l=a(64118),r=a(87292),c=a(8711);const s=c.default.div.withConfig({displayName:"styled__StyledAlertTypeIndicator",componentId:"sc-19nk935-0"})(["width:",";height:",";border-radius:",";background-color:",";"],(0,o.getSizeBy)(1),(0,o.getSizeBy)(1),(0,o.getSizeBy)(1),(e=>{let{critical:t,theme:a}=e;return(0,o.getColor)(t?"error":["yellow","sunglow"])({theme:a})})),i=c.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-19nk935-1"})(["padding:",";text-decoration:none;color:",";&:visited{color:",";}&:hover{text-decoration:none;}"],(e=>{let{padding:t}=e;return null!==t&&void 0!==t?t:"0"}),(0,o.getColor)("success"),(0,o.getColor)("success"));var d=a(29217);const u=e=>{let{title:t,value:a,testId:l,status:c}=e;return a?n.createElement(n.Fragment,null,n.createElement(o.Flex,{justifyContent:"between"},n.createElement(o.Flex,{gap:1,alignItems:"center"},n.createElement(s,{critical:"critical"===c}),n.createElement(o.H6,{color:"textDescription"},t)),n.createElement(o.Flex,{gap:1,alignItems:"center"},n.createElement(o.TextSmall,{color:"textDescription"},"More details about"," ",n.createElement(o.TextSmall,{strong:!0,color:"textDescription"},"$this")," ","command"),n.createElement(d.A,{content:"The $this value comes from the DB Lookup or the Calculation above",isBasic:!0,plain:!0},n.createElement(o.Flex,{margin:[-.5,0,0]},n.createElement(o.Icon,{name:"informationPress",color:"textLite",width:"16px",height:"16px"}))))),n.createElement(r.Ay,{"data-testid":l},a)):null};var m=a(31826),g=a(93001),p=a(29708);const h=e=>{if("string"===typeof e&&(e=parseInt(e,10)),0===e)return"now";const t=new Date;return e<0?(0,m.k)((0,g.p)(t,e),t,{addSuffix:!0}):(0,m.k)((0,p.W)(t,e),t,{addSuffix:!0})},f=e=>{const{instance:t,lookupAfter:a,lookupBefore:o,lookupDimensions:r,lookupMethod:c,lookupOptions:s}=(0,l.JL)(e);return(0,n.useMemo)((()=>a?(e=>{let{lookupOptions:t,lookupDimensions:a,lookupMethod:n,lookupAfter:o,lookupBefore:l,instance:r}=e,c="of all values";if(a){const e=a.split(","),t=e.length>1?"of the sum of dimensions":"of all values of dimension";c="".concat(t," ").concat(e.join(", "))}const s=t?", with options ".concat(t):"";return"".concat(n," ").concat(c," of chart ").concat(r,", starting ").concat(h(o+l)," and up to ").concat(h(l)).concat(s)})({lookupOptions:s,lookupDimensions:r,lookupMethod:c,lookupAfter:a,lookupBefore:o,instance:t}):""),[a,t])};var E=a(43407);const v=e=>{let{heading:t,value:a,testId:l}=e;return a&&a.length?n.createElement(o.Flex,{column:!0,gap:3},t&&n.createElement(o.H6,{textTransform:"uppercase",color:"textDescription"},t),n.createElement(r.Ay,{"data-testid":l},a)):null},y=(0,n.memo)(v);var x=a(25232),w=a(58168);const b=e=>{let{iconName:t,category:a,iconSize:l="16px",value:r,testid:c}=e;return r?n.createElement(o.Flex,{alignItems:"center",gap:1},n.createElement(o.Flex,{alignItems:"center",gap:1,basis:"100px"},n.createElement(o.Icon,(0,w.A)({name:t,color:"textLite"},l&&{height:l,width:l})),n.createElement(o.TextSmall,{whiteSpace:"nowrap",color:"textDescription"},a,":")),n.createElement(o.TextSmall,{strong:!0,"data-testid":c},r)):null},A=e=>{let{id:t,testid:a}=e;const{calculation:r,warning:c,critical:i,updateEvery:d}=(0,l.JL)(t),m=f(t),g=(0,n.useMemo)((()=>(0,x.Ay)(r)),[r]);return n.createElement(o.Flex,{column:!0,gap:4},n.createElement(E.A,{iconName:"code"},"Configuration"),n.createElement(y,{heading:"DB lookup",value:m,testId:"".concat(a,"-lookup")}),n.createElement(y,{heading:"Calculation",value:g,testId:"".concat(a,"-calculation")}),n.createElement(o.H6,{textTransform:"uppercase",color:"textDescription"},"Severity Conditions"),n.createElement(o.Flex,{column:!0,gap:2},n.createElement(u,{title:"Warning when",value:c,testId:"".concat(a,"-warningWhen"),status:"warning"},n.createElement(s,{critical:!1})),n.createElement(u,{title:"Critical when",value:i,testId:"".concat(a,"-criticalWhen"),status:"critical"},n.createElement(s,{critical:!0}))),n.createElement(o.H6,{textTransform:"uppercase",color:"textDescription"},"Check"),n.createElement(b,{iconName:"clock_hollow",category:"Check every",value:"".concat(d," seconds"),testid:"".concat(a,"-checkEvery")}))},k=(0,n.memo)(A);var I=a(47762),C=a(92861),S=a(40267),T=a(87815),N=a(45976);const _=e=>{let{isHighlighted:t,lastStatusChangeValue:a,lastStatusChange:l,units:r,status:c,nodeName:s,...i}=e;return n.createElement(o.Flex,(0,w.A)({background:t&&"modalTabsBackground",border:{side:"all",color:"borderSecondary"},color:"textDescription",justifyContent:"between",padding:[4],round:!0},i),n.createElement(o.Flex,{column:!0,justifyContent:"between",gap:2},s&&n.createElement(o.Text,{strong:!0},s),n.createElement(T.A,{rawTime:l,secs:!0,"data-testid":"nodeItem-lastStatusChange"})),n.createElement(o.Flex,{height:5,gap:2,alignItems:"center",alignSelf:"start"},n.createElement(d.A,{content:"CLEAR"===c?"Cleared value":"Triggered value",align:"bottom"},n.createElement(o.Box,null,n.createElement(N.A,{loaded:!0,status:c,units:r,value:a,"data-testid":"nodeItem-alertValue"}))),n.createElement(S.A,{flavour:c,icon:"alarm_bell","data-testid":"alertView-alertPill-value"},c)))},F=e=>{let{children:t}=e;return n.createElement(o.Flex,{gap:2,column:!0},t)},D=e=>{let{id:t,nodeName:a,testid:r="alertDetailsModal"}=e;const{class:c,instanceName:s,component:d,family:u,nodeId:m,type:g,lastStatusChangeValue:p,lastStatusChange:h,units:f,status:v,notificationType:y}=(0,l.JL)(t),x=(0,I.xY)(m,"name");return n.createElement(o.Flex,{column:!0,gap:4},n.createElement(E.A,{iconName:"information",margin:[0,0,0,-.5]},"Alert Info"),n.createElement(F,null,n.createElement(b,{iconName:"nodes_hollow",category:"Node",value:a||x,testid:"".concat(r,"-hostname")}),n.createElement(b,{iconName:"charts_view",category:"Instance",value:s,testid:"".concat(r,"-chartId")}),n.createElement(b,{iconName:"data_retention",category:"Type",value:g,testid:"".concat(r,"-type")}),n.createElement(b,{iconName:"last_week",category:"Hostname"}),n.createElement(b,{iconName:"metrics",category:"Component",value:d,testid:"".concat(r,"-component")}),n.createElement(b,{iconName:"applications_hollow",category:"Family",value:u,testid:"".concat(r,"-family")}),n.createElement(b,{iconName:"networkingStack",category:"Class",value:c,testid:"".concat(r,"-class")}),n.createElement(b,{iconName:"incident_manager",category:"Event ID",testid:"".concat(r,"-eventId")})),n.createElement(k,{id:t,testid:r}),n.createElement(E.A,{iconName:"nodes_hollow",iconSize:"20px"},"Instance Values - Node Instances"),n.createElement(o.Flex,{column:!0,gap:2},"agent"!==y&&n.createElement(o.Text,{color:"textDescription"},"A node may be claimed through multiple instances on the cloud (streaming through parent) and Netdata aggregates the alerts from all the instances and displays a single Active alert based on the highest severity, latest change."),n.createElement(_,{lastStatusChangeValue:p,lastStatusChange:h,units:f,status:v,nodeName:x,isHighlighted:!0})),n.createElement(E.A,{iconName:"gear",iconSize:"20px"},"Edit Alert"),n.createElement(o.Text,{"data-testid":"".concat(r,"-edit-info")},"If you wish to edit and configure this alert, please:"),n.createElement(i,{href:C.UW,target:"_blank",padding:"0 4px 0 0","data-testid":"".concat(r,"-editAlertConfig-link"),"data-ga":"alert-modal::click-edit::alerts-view"},"Visit the documentation",n.createElement(o.Icon,{name:"arrow_left",rotate:2,size:"small",margin:[0,0,-.75,1],color:"success"})))}},45976:(e,t,a)=>{a.d(t,{A:()=>s});var n=a(58168),o=a(96540),l=a(10058),r=a(20081);const c={critical:{background:"errorSemi",border:{side:"all",color:"error"},color:"error"},warning:{background:"warningSemi",border:{side:"all",color:"warning"},color:"warning"},cleared:{background:"successSemi",border:{side:"all",color:"success"},color:"success"},default:{background:"generic",border:{side:"all",color:"border"},color:"text"}},s=e=>{let{loaded:t,status:a,units:s,value:i,valueWithUnit:d,...u}=e;const{background:m,border:g,color:p}=c[a]||c.default,h=(0,o.useMemo)((()=>{if(d)return d;if(void 0===i)return"-";const e=(0,r.W)(i);return"".concat(e," ").concat(s||"-")}),[i,d,s]);return o.createElement(l.Flex,(0,n.A)({background:m,border:g,padding:[.5,2],round:9,width:{min:10},justifyContent:"center"},u),o.createElement(l.TextSmall,{color:p,strong:!0,whiteSpace:"nowrap",truncate:!0},t?h:"-"))}},51913:(e,t,a)=>{a.d(t,{ZV:()=>x,bg:()=>h,vQ:()=>p,Ws:()=>f,Gp:()=>y,MY:()=>v});a(17333),a(3064),a(41393),a(98992),a(54520),a(72577),a(81454),a(62953);var n=a(96540),o=a(47444),l=a(26655),r=a(49286);var c=a(3914),s=a(69765);const i=(0,o.eU)({key:"assistantAlert",default:null}),d=(0,o.eU)({key:"assistantAlertsAtom",default:[]}),u=(0,o.eU)({key:"assistantChatAtom",default:{open:!1,messages:[]}});var m=a(33829);const g=(0,o.K0)({key:"assistantAlertSelector",get:e=>{let{space:t,room:a,alert:n,node:o,chart:r}=e;return()=>(e=>{let{space:t,room:a,alert:n,node:o,chart:r}=e;return l.A.post("/api/v1/troubleshoot",{space:t,room:a,alarm:n,node:o,chart:r})})({space:t,room:a,alert:n,node:o||"dummy-node-id",chart:r||"dummy-chart-id"})},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),p=e=>{var t;let{alert:a,node:n,chart:l}=e;const r=(0,c.vt)(),i=(0,s.ID)(),d=(0,o.xf)(g({space:r,room:i,alert:a,node:n,chart:l}));return{loaded:"loading"!==d.state,value:null===(t=d.contents)||void 0===t?void 0:t.data,hasError:"hasError"===d.state}},h=()=>(0,o.L4)(i),f=()=>(0,o.L4)(d),E=()=>(0,o.L4)(u),v=()=>{const[e,t]=E(),a=(0,n.useCallback)((()=>t((e=>({...e,open:!0})))),[t]),o=(0,n.useCallback)((()=>t((e=>({...e,open:!1})))),[t]);return[null===e||void 0===e?void 0:e.open,a,o]},y=()=>{const[e,t]=E(),a=(0,n.useCallback)((e=>t((t=>({...t,messages:[...t.messages,e]})))),[t]),o=(0,n.useCallback)((()=>{t((e=>({...e,messages:[]})))}),[t]),l=(0,n.useMemo)((()=>e.open&&!!e.messages.find((e=>{let{pending:t}=e;return!!t}))),[e]);return{messages:null===e||void 0===e?void 0:e.messages,pending:l,addMessage:a,clear:o}},x=()=>{const e=(()=>{const{addMessage:e}=y();return(0,n.useCallback)((t=>{const a=(0,m.A)();return e({id:a,type:"question",value:t}),a}),[e])})(),t=(()=>{const{addMessage:e}=y();return(0,n.useCallback)((t=>{let{questionId:a,pending:n,answer:o}=t;return e({id:(0,m.A)(),questionId:a,type:"answer",value:o,pending:n})}),[e])})(),a=(()=>{const[,e]=E();return(0,n.useCallback)((t=>{let{questionId:a,value:n,additionalInfo:o,error:l}=t;e((e=>({...e,messages:e.messages.map((e=>e.questionId==a?{...e,pending:!1,value:n,additionalInfo:o,error:l}:e))})))}),[])})();return(0,n.useCallback)((n=>{const o=e(n);var c;t({questionId:o,pending:!0}),(c=n,l.A.post("/api/v1/chat",{messages:[{role:"user",content:c}]},{transform:e=>(0,r.bn)(e)})).then((function(){let{data:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{session:{messages:t},additionalInfo:n}=e,l=(t||[]).filter((e=>{let{role:t}=e;return"assistant"==t})),r=l.length?l[l.length-1]:null;null!==r&&void 0!==r&&r.content?a({questionId:o,value:r.content,additionalInfo:n}):a({questionId:o,error:"Something went wrong"})})).catch((e=>{a({questionId:o,error:e.message||"Something went wrong"})}))}),[e,a])}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/9510.58c95eb5f0290291b5a9.chunk.js b/src/web/gui/v2/9510.58c95eb5f0290291b5a9.chunk.js
new file mode 100644
index 000000000..3a5306585
--- /dev/null
+++ b/src/web/gui/v2/9510.58c95eb5f0290291b5a9.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cf309c5e-f774-4058-8f00-6d57c60b492c",e._sentryDebugIdIdentifier="sentry-dbid-cf309c5e-f774-4058-8f00-6d57c60b492c")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9510],{39510:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Tn});var l=n(58168),o=(n(62953),n(96540)),r=n(10058),a=n(11128),i=n(47193);n(14905),n(98992),n(8872);const s=function(){let{selectedNode:e,nodes:t=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,o.useMemo)((()=>t.reduce(((e,t)=>{let{id:n,name:l,isLive:o,isPreferred:r}=t;return o&&r?[...e,{label:l,value:n}]:e}),[])),[t]),l=(0,o.useMemo)((()=>(e=>e?null!==e&&void 0!==e&&e.id&&null!==e&&void 0!==e&&e.name?{label:e.name,value:e.id}:e:null)(e)||(n.length?n[0]:"")),[n]),[r,a]=(0,o.useState)();return(0,o.useEffect)((()=>{l&&a(l)}),[l,a]),{options:n,node:r,setNode:a}};n(41393),n(81454);var c=n(63950),d=n.n(c);const u=function(){let{node:e,setNode:t=d(),options:n=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o.createElement(r.Box,{width:"250px"},o.createElement(r.Flex,{column:!0,gap:1},o.createElement(r.TextBig,null,"Node"),o.createElement(r.Select,{placeholder:"Select a node",options:n,value:e,onChange:t})))};n(74648),n(17333),n(23215),n(54520);const m=(0,o.createContext)({}),p=()=>{const e=(0,o.useContext)(m),{searchItem:t,setSearchItem:n}=e||{},{term:l,props:r}=t||{},a=!!Object.keys(t.props||{}).length,i=(0,o.useCallback)((e=>n((t=>({...t,term:e})))),[n]),s=(0,o.useCallback)(((e,t)=>{n((n=>({...n,props:{...n.props||{},[e]:t}})))}),[n]),c=(0,o.useCallback)((e=>{n((t=>{var n;const l={...t};return null!==(n=l.props)&&void 0!==n&&n[e]&&delete l.props[e],l}))}),[n]),u=(0,o.useCallback)((e=>{try{return new RegExp(l).test(e)}catch(t){return d()}}),[l]),p=(0,o.useCallback)((e=>!r||!Object.entries(r).filter((e=>{let[,t]=e;return void 0!==t})).length||Object.entries(r).every((t=>{let[n,l]=t;return e[n]==l}))),[r]);if(!e)throw new Error("Attempt to use 'useSearch' outside of 'SearchContext.Provider'");return{searchItem:t,hasProps:a,searchForTerm:i,searchByProp:s,testString:u,testProps:p,removeSearchProp:c}},g=e=>{let{children:t}=e;const[n,l]=(0,o.useState)({});return o.createElement(m.Provider,{value:{searchItem:n,setSearchItem:l}},t)},h=()=>{const{searchItem:e,searchForTerm:t}=p(),{term:n}=e||{};return o.createElement(r.Box,{width:"250px"},o.createElement(r.Flex,{column:!0,gap:1},o.createElement(r.TextBig,null,"Search"),o.createElement(r.SearchInput,{value:n,placeholder:"Search",onChange:t,size:"large",height:"33px",padding:[2,3]})))};var f=n(29217),E=n(32089),v=n(8711);const b=(0,v.default)(r.Flex).withConfig({displayName:"styled__StyledSection",componentId:"sc-dutbst-0"})(["&:hover{background-color:",";}"],(0,r.getColor)("secondaryHighlight")),y=(0,v.default)(r.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-dutbst-1"})(["&:before{content:",";width:18px;height:18px;display:",";align-items:center;justify-content:center;font-size:11px;font-weight:bold;position:absolute;top:-6px;left:-10px;border-radius:50%;background-color:",";color:",";z-index:10;}"],(e=>{let{warningItems:t}=e;return'"'.concat(t,'"')}),(e=>{let{warningItems:t}=e;return t?"flex":"none"}),(0,r.getColor)("error"),(0,r.getColor)("bright"));var C=n(94390),x=n(49286);const k=e=>{let{title:t="",props:n={},config:l={}}=e;const{searchItem:a,searchByProp:i,removeSearchProp:s}=p(),{props:c}=a||{},d=(0,o.useCallback)(((e,t)=>{const{searchCondition:n}=l[e]||{},o=Object.entries(n||{});if(o.length){const[e,n]=o[0];t?s(e):i(e,n)}}),[i,s]);return o.createElement(r.Flex,{column:!0,gap:1},o.createElement(r.TextBig,{strong:!0},t),o.createElement(r.Flex,{column:!0},Object.entries(l).map((e=>{var t;let[a,{label:i,searchCondition:s}]=e;const u=(0,x.bn)(n||{})[a]||0,[m,p]=Object.entries(s)[0],g=!!c&&c[m]==p,h=C.zy.includes(a)&&u>0?{color:"error"}:{};return o.createElement(f.A,{key:a,content:null===(t=l[a])||void 0===t?void 0:t.tooltip,align:"bottom",isBasic:!0,base:{background:"main",padding:[2]}},o.createElement(b,{width:"100%",alignItems:"center",justifyContent:"between",gap:2,background:g?"menuItemSelected":"none",padding:[1,2],round:!0,cursor:"pointer",onClick:()=>d(a,g)},o.createElement(r.TextBig,h,i),o.createElement(r.TextBig,h,u)))}))))},w=e=>{let{attention:t,source_type:n,status:l}=e;return o.createElement(r.Flex,{column:!0,padding:[3],gap:2},o.createElement(k,{title:"Attention",props:t,config:C.lp}),o.createElement(E.A,{color:"border"}),o.createElement(k,{title:"Source type",props:n,config:C.V8}),o.createElement(E.A,{color:"border"}),o.createElement(k,{title:"Status",props:l,config:C.T_}))},S=(0,o.memo)(w),I=Object.keys(C.T_),A=Object.keys(C.V8),D=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const n=t.reduce(((e,t)=>({...e,[t]:0})),{});return function(){let l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n;for(let n=0;n<t.length;n++)if(t[n]==l[e]){var r;const t=l[e];o[e]||(o[e]={}),o[e][t]=((null===(r=o[e])||void 0===r?void 0:r[t])||0)+1}}},F=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var n,l;(t.attention||(t.attention={}),e.restart_required)&&(t.attention.restart_required=((null===(n=t.attention)||void 0===n?void 0:n.restart_required)||0)+1);e.plugin_rejected&&(t.attention.plugin_rejected=((null===(l=t.attention)||void 0===l?void 0:l.plugin_rejected)||0)+1)},T=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=Object.entries(e);if(n.length)for(let l=0;l<n.length;l++){const[e,o]=n[l];if(e.match(/\/[^/]+/g))return T(o,t);o.type&&"template"!=o.type&&(D("status",I)(o,t),D("source_type",A)(o,t),F(o,t))}return t},B=e=>{let{tree:t}=e;const{attention:n,source_type:l,status:r}=(0,o.useMemo)((()=>Object.keys(t)?T(t):{}),[t]);return{warningItems:((null===n||void 0===n?void 0:n.restart_required)||0)+((null===n||void 0===n?void 0:n.plugin_rejected)||0)+((null===r||void 0===r?void 0:r.failed)||0)+((null===r||void 0===r?void 0:r.incomplete)||0),menuItems:{attention:n,source_type:l,status:r}}};var P=n(87659);const _=e=>{let{tree:t={}}=e;const n=(0,o.useRef)(),[l,a,,i]=(0,P.A)(!1),{hasProps:s}=p(),{warningItems:c,menuItems:d}=B({tree:t});return o.createElement(o.Fragment,null,o.createElement(f.A,{align:"bottom",content:"Show filters"},o.createElement(r.Flex,{ref:n},o.createElement(y,{flavour:s?"default":"hollow",icon:"filterList",onClick:a,warningItems:c}))),l&&n.current?o.createElement(r.Drop,{width:60,target:n.current,align:{top:"bottom",right:"right"},animation:!0,background:"modalTabsBackground",margin:[2,0,0],round:1,close:i,onClickOutside:i,onEsc:i},o.createElement(S,d)):null)};var L=n(8239);const N=()=>{const e=(0,L.Hj)();return o.createElement(f.A,{align:"bottom",content:"Reload"},o.createElement(r.Flex,null,o.createElement(r.Button,{flavour:"hollow",icon:"refresh",onClick:e})))};var j=n(39225);n(8159),n(37550);const O=(0,o.createContext)(),M={name:""},R=()=>{const e=(0,o.useContext)(O),{id:t,open:n,isNewItem:l,formData:r,setFormData:a,isLoading:i,startLoading:s,stopLoading:c,fullPage:d,setFullPage:u,entityProps:m,isDirty:p,setIsDirty:g,error:h}=e||{},f=(0,o.useCallback)((e=>a((t=>({...t,name:e})))),[a]);if(!e)throw new Error("Attempt to use 'useConfigItemContext' outside of 'ConfigItemContext.Provider'");return{id:t,open:n,isNewItem:l,formData:r,setFormData:a,setName:f,isLoading:i,startLoading:s,stopLoading:c,fullPage:d,setFullPage:u,entityProps:m,isDirty:p,setIsDirty:g,error:h}},z=e=>{let{children:t,...n}=e;const[l,r]=(0,o.useState)(M);return o.createElement(O.Provider,{value:{...n,formData:l,setFormData:r}},t)};var H=n(81198);const V=(0,v.default)(r.TextBig).withConfig({displayName:"styled__StyledTitle",componentId:"sc-16w9sl7-0"})(["font-family:Courier New,monospace;"]),W=(0,v.default)(r.Icon).attrs((e=>({opacity:"1",cursor:"pointer",...e}))).withConfig({displayName:"styled__StyledTemplateArrow",componentId:"sc-16w9sl7-1"})(["opacity:",";cursor:",";"],(e=>{let{hasTemplateChildren:t}=e;return t?"1":"0"}),(e=>{let{hasTemplateChildren:t}=e;return t?"pointer":"default"})),q=(0,v.default)(r.Flex).withConfig({displayName:"styled__StyledHeader",componentId:"sc-16w9sl7-2"})(["height:","px;border-top:1px solid ",";border-left:1px solid ",";border-right:1px solid ",";border-bottom:1px solid ",";border-bottom-style:",";"],C.FL,(0,r.getColor)("border"),(0,r.getColor)("border"),(0,r.getColor)("border"),(0,r.getColor)("border"),(e=>{let{isOpenEntity:t}=e;return t?"none":"solid"})),U=(0,v.default)(r.Collapsible).withConfig({displayName:"styled__StyledCollapsible",componentId:"sc-16w9sl7-3"})(["height:",";max-height:",";overflow:auto;"],(e=>{let{open:t,fullPage:n}=e;return t&&n?"100%":"auto"}),(e=>{let{flavour:t,fullPage:n,isJob:l}=e;return"path"!=t?n?"calc(100% - 55px)":l?"500px":"unset":"unset"})),K=e=>{let{source:t="",sourceType:n}=e;const l=t.split(",");return o.createElement(r.Flex,{column:!0,gap:2},o.createElement(r.Flex,{alignItems:"center",gap:1},o.createElement(r.Text,{strong:!0},"Source type"),o.createElement(r.Pill,null,n)),o.createElement(r.Flex,{column:!0,gap:1},l.length?l.map((e=>o.createElement(r.TextSmall,{key:e},e))):null))},Y=e=>{let{source:t,sourceType:n,...a}=e;const i=C.V6[n];if(!i)return null;const{icon:s}=i;return o.createElement(f.A,{isBasic:!0,content:o.createElement(K,{source:t,sourceType:n})},o.createElement(r.Box,null,o.createElement(r.Icon,(0,l.A)({name:s},a))))},J=e=>{let{type:t,status:n}=e;const l=C.bM[n];if(!l)return null;const{label:a,color:i,icon:s}=l;return"template"!=t?o.createElement(r.Flex,{width:{min:28},gap:1,padding:[1,2],border:{side:"all",color:i},round:!0,alignItems:"center",justifyContent:"center"},o.createElement(r.Icon,{name:s,height:"12px",color:i}),o.createElement(r.Text,{color:i},a)):null},Q=function(){let{title:e,type:t,source:n,sourceType:l,status:a,templateChildren:i={},onCollapseExpand:s,userDisabled:c}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{color:d}=C.g7[t]||C.g7.default,u=c||"disabled"==a?"disabled":d,{open:m,isNewItem:p,formData:g,setName:h}=R(),{name:f}=g||{},E=!!Object.keys(i).length,v=(0,o.useCallback)((e=>h(e.target.value)),[h]);return o.createElement(r.Flex,{gap:2,alignItems:"center"},"template"==t?o.createElement(W,{name:"chevron_right",color:"textLite",rotate:m?3:1,onClick:s,hasTemplateChildren:E}):null,o.createElement(J,{type:t,status:a}),o.createElement(Y,{source:n,sourceType:l,color:u}),p?null:o.createElement(V,{strong:!0,color:u},(0,H.J3)(e)),p&&m?o.createElement(r.TextInput,{width:65,value:f,onChange:v,placeholder:"Add configuration name",error:p&&!(null!==g&&void 0!==g&&g.name),hideErrorMessage:!0}):null)},Z=()=>e=>{let{template:t,formData:n={},entityProps:l}=e;return{[C.D9]:!0,template:t,name:"",sourceType:"user",type:"job",formData:n,entityProps:l}},G=e=>t=>{let{tooltip:n,onClick:a,...i}=t;const s=(0,o.useRef)(),c=(0,o.useCallback)((e=>{var t,n;null===a||void 0===a||a(e),null===(t=s.current)||void 0===t||null===(n=t.blur)||void 0===n||n.call(t)}),[a,s.current]),d=(0,o.useMemo)((()=>({...i,...a?{onClick:c}:{}})),[c]);return o.createElement(f.A,{align:"bottom",content:n},o.createElement(r.Box,null,o.createElement(e,(0,l.A)({ref:s},d))))};var $=n(92155);const X=G((0,$.A)(r.Button)),ee=function(){let{title:e,buttonProps:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[,n]=(0,L.QH)(),r=Z(),{isLoading:a,entityProps:i}=R(),{cmds:s=[]}=i||{},c=(0,o.useCallback)((()=>{n(r({template:e,entityProps:i}))}),[r,n]);return s.includes("add")?o.createElement(X,(0,l.A)({feature:"DyncnfTemplate",payload:{id:e},tooltip:"Add a new configuration item",icon:"plus",iconWidth:18,iconHeight:18,onClick:c,disabled:a},t)):null};n(9391);const te=(0,o.createContext)({}),ne=()=>(0,o.useContext)(te),le=te;var oe=n(71835);const re=()=>{const[e,t,,n]=(0,oe.A)();return[(0,o.useCallback)((function(){let{successMessage:t="Successfully saved"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l=>{let{data:{message:o}}=l;(o?n:e)({header:o?"Warning":"Success",text:o||t})}}),[e,n]),(0,o.useCallback)((function(){let{errorMessage:e="Something went wrong"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return n=>{var l;const{message:o,error_message:r}=(null===n||void 0===n||null===(l=n.response)||void 0===l?void 0:l.data)||{};t({header:"Error",text:o||r||e})}}),[t])]};var ae=n(80158);const ie=G((0,$.A)(r.Button)),se=e=>{let{id:t,enable:n,open:l,onDecline:a,onConfirm:i}=e;const s=n?"enable":"disable";return l?o.createElement(r.ConfirmationDialog,{title:"".concat((0,ae.Zr)(s)," item?"),handleConfirm:i,handleDecline:a,confirmLabel:"Yes ".concat(s),declineLabel:"No",isConfirmPositive:!!n,message:o.createElement(r.Flex,{column:!0,gap:2},o.createElement(r.TextBig,null,"You are about to ",s," ",o.createElement(V,{strong:!0},t)," module and all its configurations."),o.createElement(r.TextBig,null,"Are you sure?"))}):null},ce=function(){let{id:e,userDisabled:t,buttonProps:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{isLoading:l,startLoading:r,stopLoading:a}=R(),{node:i}=ne(),s=(0,L.DP)({id:e,node:i}),c=(0,L.Hj)(),[d,u]=re(),[m,p]=(0,o.useState)(),[g,,h,f]=(0,P.A)(),E=(0,o.useCallback)((()=>{f(),r(),s(m).then((e=>{c(),d({successMessage:"Successfully ".concat(m?"enabled":"disabled"," module")})(e)})).catch((e=>{u()(e)})).finally((()=>{a()}))}),[s,r,a]),v=(0,o.useCallback)((e=>{l||(p(e),h())}),[l,h]),b=(0,o.useMemo)((()=>({feature:"DyncnfTemplate",payload:{id:e},isLoading:l,disabled:l,...n,...t?{tooltip:"Enable this module",icon:"switch_off",iconColor:"disabled",onClick:()=>v(!0)}:{tooltip:"Disable this module",icon:"switch_off",onClick:()=>v(!1),iconColor:"success",danger:!0}})),[e,t,l,n,v]);return o.createElement(o.Fragment,null,o.createElement(ie,b),o.createElement(se,{id:e,enable:m,open:g,onDecline:f,onConfirm:E}))},de="success",ue={iconColor:de,flavour:"borderless",color:de},me=e=>{let{title:t,userDisabled:n}=e;return o.createElement(o.Fragment,null,o.createElement(ee,{title:t,buttonProps:ue}),o.createElement(ce,{id:t,userDisabled:n,buttonProps:ue}))},pe=G(r.Button),ge=function(){let{buttonProps:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{open:t,fullPage:n,setFullPage:r,isNewItem:a}=R(),i=(0,o.useMemo)((()=>({...e,icon:n?"reduceSize":"fullScreen",tooltip:n?"Reduce window size":"Expand window size"})),[n]),s=(0,o.useCallback)((()=>{r(!n)}),[n,r]);return t&&!a?o.createElement(pe,(0,l.A)({onClick:s},i)):null},he=G(r.Button),fe=function(){let{onClick:e,buttonProps:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{open:n,isLoading:r,entityProps:a}=R(),{cmds:i=[]}=a||{},s=i.includes("update"),c=s?"Edit configuration":"View configuration";return o.createElement(he,(0,l.A)({tooltip:n?"Close":c,icon:n?"x":s?"pencilOutline":"search",onClick:e,disabled:r},t))},Ee=G(r.Button),ve=function(){let{title:e,onCollapseExpand:t=d(),buttonProps:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=(0,H.UE)(e),[,a]=(0,L.QH)(),{node:i,path:s}=ne(),c=(0,L.SD)({node:i,path:s}),{cmds:u,user_disabled:m}=c(e)||{},{isLoading:p,open:g,formData:h,entityProps:f}=R(),E=Z(),v=(0,o.useCallback)((()=>{p||(a(E({template:r,formData:h,entityProps:f})),t())}),[p,r,h,f,a,E]);return g&&null!==u&&void 0!==u&&u.includes("add")?o.createElement(Ee,(0,l.A)({icon:"copy",onClick:v,disabled:p||m},m?{}:{tooltip:"Copy this item"},n)):null};var be=n(50876);const ye=G((0,$.A)(r.Button)),Ce=e=>{let{id:t,open:n,onDecline:l,onConfirm:a}=e;return n?o.createElement(r.ConfirmationDialog,{title:"Delete item?",handleConfirm:a,handleDecline:l,confirmLabel:"Yes, delete",declineLabel:"No",message:o.createElement(r.Flex,{column:!0,gap:2},o.createElement(r.TextBig,null,"You are going to completely remove ",o.createElement(V,{strong:!0},t)," and this action cannot be reverted."),o.createElement(r.TextBig,null,"Are you sure that you want to delete this item?"))}):null},xe=function(){let{id:e,buttonProps:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{isLoading:n,entityProps:r,startLoading:a,stopLoading:i}=R(),{type:s,cmds:c=[]}=r||{},{node:d}=ne(),u=(0,L.OU)({id:e,node:d}),[m,p]=re(),g=(0,L.Hj)(),[h,,f,E]=(0,P.A)(),{sendButtonClickedLog:v}=(0,be.A)(),b=(0,o.useCallback)((()=>{E(),a(),u().then((t=>{m({successMessage:"Successfully removed configuration"})(t),v({feature:"DyncnfItem",description:"Confirm deletion",id:e}),g()})).catch((e=>{p()(e)})).finally((()=>{i()})),setTimeout((()=>{i()}),1e3)}),[u,E,a,i,g,v,m,p]),y=(0,o.useCallback)((()=>{n||f()}),[n,f]);return"job"==s&&c.includes("remove")?o.createElement(o.Fragment,null,o.createElement(ye,(0,l.A)({feature:"DyncnfItem",payload:{id:e},icon:"trashcan",onClick:y,disabled:n,tooltip:"Remove item"},t)),o.createElement(Ce,{id:e,open:h,onDecline:E,onConfirm:b})):null},ke=G((0,$.A)(r.Button)),we=function(){let{id:e,buttonProps:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{node:n,path:r}=ne(),a=(0,L.ZN)({id:e,node:n}),[i,s]=re(),{isLoading:c,entityProps:d,startLoading:u,stopLoading:m}=R(),p=(0,L.SD)({node:n,path:r}),{user_disabled:g}=p(e)||{},{cmds:h=[]}=d||{},f=(0,L.O_)({node:n,id:e}),E=(0,o.useCallback)((()=>{c||g||(u(),a().then((e=>{i({successMessage:"Successfully restarted configuration"})(e),f()})).catch((e=>{s()(e)})).finally((()=>{m()})))}),[c,g,a,u,f,m,i,s]);return h.includes("restart")?o.createElement(ke,(0,l.A)({feature:"DyncnfItem",payload:{id:e,label:"Restart"},icon:"refresh",onClick:E,disabled:c||g},g?{}:{tooltip:"Restart"},t)):null},Se=e=>{let{id:t}=e;const{isLoading:n,entityProps:l,startLoading:a,stopLoading:i}=R(),{cmds:s=[],userDisabled:c}=l||{},[d,u]=(0,o.useState)(!c),{node:m,path:p}=ne(),g=(0,L.SD)({node:m,path:p}),{user_disabled:h}=g(t)||{},E=(0,L.DP)({id:t,node:m}),v=(0,L.O_)({node:m,id:t}),[b,y]=re(),{sendButtonClickedLog:C}=(0,be.A)(),x=(0,o.useCallback)((e=>{if(!h){const n=e.currentTarget.checked;u(n),a(),E(n).then((e=>{C({feature:"DyncnfItem",description:n?"Enable item":"Disable item",id:t}),b({successMessage:"Successfully ".concat(n?"enabled":"disabled"," configuration")})(e),v()})).catch((e=>{C({feature:"DyncnfItem",description:"Failed to ".concat(n?"enable":"disable"," item"),id:t}),y()(e)})).finally((()=>{i()}))}}),[h,E,a,u,v,C,b,y]),k=s.includes("enable"),w=s.includes("disable");return k&&w?o.createElement(f.A,{align:"bottom",content:h?null:d?"Disable item":"Enable item"},o.createElement(r.Box,{padding:[1.5,2]},o.createElement(r.Toggle,{onChange:x,checked:d,colored:!0,disabled:n||h}))):null},Ie="text",Ae={iconColor:Ie,flavour:"borderless",color:Ie,type:"button"},De=(0,v.default)(r.Flex).attrs({alignItems:"center",border:{side:"all",color:"border"},round:!0}).withConfig({displayName:"itemActions__StyledContainer",componentId:"sc-1kpuq1a-0"})([""]),Fe=function(){let{title:e,isOpenEntity:t,onViewButtonClick:n,onCollapseExpand:l=d()}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o.createElement(o.Fragment,null,o.createElement(De,{gap:1},o.createElement(ve,{title:e,onCollapseExpand:l,buttonProps:Ae}),o.createElement(we,{id:e,buttonProps:Ae}),o.createElement(xe,{id:e,buttonProps:Ae}),t?null:o.createElement(Se,{id:e})),o.createElement(De,{gap:1},o.createElement(ge,{buttonProps:Ae}),o.createElement(fe,{onClick:n,buttonProps:Ae})))},Te=e=>{let{title:t,onViewButtonClick:n,onCollapseExpand:l,type:a,userDisabled:i,isOpenEntity:s}=e;return o.createElement(r.Flex,{gap:2,alignItems:"center"},"template"==a?o.createElement(me,{title:t,userDisabled:i}):o.createElement(Fe,{title:t,onViewButtonClick:n,onCollapseExpand:l,isOpenEntity:s}))},Be={vertical:2,horizontal:4},Pe=e=>{let{path:t,onClick:n,...a}=e;const{open:i}=R();return o.createElement(r.Flex,(0,l.A)({gap:2,onClick:n,cursor:"pointer"},a),o.createElement(r.Icon,{name:"chevron_right",color:"textLite",rotate:i?3:1}),o.createElement(V,{strong:!0},t))},_e=e=>{let{flavour:t,title:n,onViewButtonClick:r,onCollapseExpand:a,level:i,entityProps:s={},isOpenEntity:c}=e;const{vertical:d,horizontal:u}=Be,m=(0,o.useMemo)((()=>[d,u,d,u*i]),[i]),p="path"==t;return o.createElement(q,{alignItems:"center",justifyContent:"between",padding:m,isOpenEntity:c},p?o.createElement(Pe,{path:n,onClick:a}):o.createElement(o.Fragment,null,o.createElement(Q,(0,l.A)({title:n,onCollapseExpand:a},s)),o.createElement(Te,(0,l.A)({title:n,onViewButtonClick:r,onCollapseExpand:a,isOpenEntity:c},s))))},Le=e=>{let{open:t,onDecline:n,onConfirm:l}=e;return t?o.createElement(r.ConfirmationDialog,{title:"Discard changes?",handleConfirm:l,handleDecline:n,confirmLabel:"Yes, discard",declineLabel:"No, keep editing",message:o.createElement(r.Flex,{column:!0,gap:2},o.createElement(r.TextBig,null,"If you exit Edit mode before submit, your changes will be lost."),o.createElement(r.TextBig,null,"Are you sure?"))}):null},Ne=e=>(0,o.useEffect)((()=>{if(!e)return;const t=t=>{"Escape"==t.code&&e(t)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)}),[e]),je=e=>{let{title:t,open:n,isLoading:l,isDirty:r,setIsDirty:a,toggle:i,entityProps:s,error:c}=e;const d=s[C.D9],u=["single","job"].includes(null===s||void 0===s?void 0:s.type),[,m]=(0,L.QH)(),[p,,g,h]=(0,P.A)(),{toggle:f,close:E}=(0,L.IP)(),v=(0,o.useCallback)((()=>{r?(a(!1),i(),h()):m(null),E(t)}),[t,E,m,r,a,h]),b=(0,o.useCallback)((()=>{l||(d||r?c?v():g():i())}),[l,d,r,c,v,g]);return Ne((e=>{"Escape"==e.code&&n&&u&&(e.preventDefault(),b())})),(0,o.useEffect)((()=>{u&&f(t,n)}),[u,n]),{confirmationOpen:p,closeConfirmation:h,onConfirm:v,onClick:b}};var Oe=n(28738);const Me=e=>{let{virtualIndex:t,virtualRowStart:n,flavour:a="path",title:i="",level:s=1,entityProps:c={},children:d,isNewItem:u,isOpen:m,...p}=e;const[g,h]=(0,P.A)(u||m),{node:f,inModal:E}=ne(),v=(0,L._O)({node:f,id:i})||c,b="job"==(null===v||void 0===v?void 0:v.type),y=["single","job"].includes(null===v||void 0===v?void 0:v.type),[C,,x,k]=(0,P.A)(),[w,S]=(0,o.useState)(u),[I,A]=(0,o.useState)(),[D,F]=(0,o.useState)(),T="path"!=a&&g&&C,{confirmationOpen:B,closeConfirmation:_,onConfirm:N,onClick:j}=je({title:i,open:g,isLoading:C,isDirty:D,setIsDirty:F,toggle:h,entityProps:v,error:I}),O=(0,o.useCallback)((e=>{var t;u||S(null===e||void 0===e||null===(t=e.uiSchema)||void 0===t||null===(t=t.uiOptions)||void 0===t?void 0:t.fullPage)}),[S]);(0,o.useEffect)((()=>{if(void 0!==t&&void 0!==n){const e=document.querySelector(".dyncnf-virtual-row[data-index='".concat(t,"']"));e&&(e.style.transform=w&&g?"none":"translateY(".concat(n,"px)"))}}),[g,w]);const{containerProps:M,collapsibleProps:R,loaderProps:H}=(0,o.useMemo)((()=>({containerProps:{...g&&w?{position:"fixed",zIndex:"100",...E?{top:0,left:0,width:"100%",height:"100%"}:{top:"5vh",left:"5vw",width:"90vw",height:"90vh"}}:{position:"relative"},...g&&y?{border:{side:"all",color:"border"}}:{},...w?{}:{height:"100%"},background:y&&g?"modalBackground":"mainBackground",round:!0},collapsibleProps:{level:s,open:g,duration:0,flavour:a,fullPage:w,isJob:b,...g&&y?{padding:[2,2,2,4*s]}:{}},loaderProps:{position:"absolute",top:0,left:0,width:"100%",height:"100%",opacity:".9",zIndex:"100"}})),[g,w,E,y]);return o.createElement(o.Fragment,null,o.createElement(z,{id:i,open:g,isNewItem:u,isLoading:C,startLoading:x,stopLoading:k,fullPage:w,setFullPage:S,entityProps:v,isDirty:D,setIsDirty:F,error:I},o.createElement(r.Flex,(0,l.A)({column:!0},M,p),o.createElement(_e,{key:g,flavour:a,title:i,onViewButtonClick:j,onCollapseExpand:h,level:s,entityProps:v,isOpenEntity:g&&!!y}),o.createElement(U,R,o.Children.map(d,(e=>o.isValidElement(e)?o.cloneElement(e,{level:s+1,onSchemaFetch:O,setIsDirty:F,setError:A}):e))),T?o.createElement(Oe.A,(0,l.A)({title:"Loading..."},H)):null)),o.createElement(Le,{open:B,onDecline:_,onConfirm:N}))};var Re=n(73700),ze=n(51220);const He=e=>{let{virtualIndex:t,virtualRowStart:n,flavour:r="entity",entryKey:a,entityProps:i,configItemLevel:s=1,children:c,...d}=e;return o.createElement(o.Fragment,null,o.createElement(Me,(0,l.A)({virtualIndex:t,virtualRowStart:n,flavour:r,title:a,level:s,entityProps:i},d),c))};var Ve=n(74810),We=n(36091),qe=n(4659),Ue=n(87292),Ke=n(68831);const Ye=v.default.span.withConfig({displayName:"markdocSchema__Strong",componentId:"sc-1se2vza-0"})(["font-weight:bold;"]),Je=v.default.ol.withConfig({displayName:"markdocSchema__OrderedList",componentId:"sc-1se2vza-1"})(["list-style:roman;padding-left:14px;"]),Qe=v.default.ul.withConfig({displayName:"markdocSchema__UnorderedList",componentId:"sc-1se2vza-2"})(['list-style-image:url("','/img/list-style-image.svg");padding-left:14px;'],Ke.A.assetsBaseURL),Ze={heading:{render:e=>{let{level:t=1,...n}=e,a=r.H1;switch(t){case 2:a=r.H2;break;case 3:a=r.H3;break;case 4:a=r.H4;break;case 5:a=r.H5;break;case 6:a=r.H6}return o.createElement(a,(0,l.A)({margin:[2,0]},n))},attributes:{id:{type:String},level:{type:Number}}},paragraph:{render:e=>{let{children:t,...n}=e;return o.createElement(r.Flex,n,o.createElement(r.Text,null,t))}},strong:{render:Ye},link:{render:e=>{let{children:t,href:n,...r}=e;return o.createElement(qe.A,(0,l.A)({href:n,rel:"noopener noreferrer",target:"_blank"},r),t)},attributes:{href:{type:String}}},code:{render:e=>{let{content:t,...n}=e;return o.createElement(Ue.R0,n,t)},attributes:{content:{type:String}}},fence:{render:e=>{let{content:t,...n}=e;return o.createElement(Ue.Ay,n,t)},attributes:{content:{type:String}}},list:{render:e=>{let{ordered:t,children:n,...l}=e;const r=t?Je:Qe;return o.createElement(r,l,n)},attributes:{ordered:{type:Boolean}}}},Ge=e=>{let{children:t}=e;return o.createElement(We.A,{transformConfiguration:{nodes:Ze}},t)},$e=e=>{var t;let{description:n}=e;return("string"==typeof n&&n?n:"object"==typeof n?null===n||void 0===n||null===(t=n.props)||void 0===t?void 0:t.description:null)?o.createElement(f.A,{isBasic:!0,plain:!0,allowHoverOnTooltip:!0,content:o.createElement(r.Flex,{width:{max:70}},o.createElement(Ge,null,n))},o.createElement(r.Icon,{name:"information",color:"text",size:"small"})):null},Xe=e=>{var t;let{description:n}=e;if(!n)return null;const l="string"==typeof n?n:null===(t=n.props)||void 0===t?void 0:t.description;return o.createElement(Ge,null,l)},et=e=>{let{title:t,required:n,description:l,help:a}=e;return t?o.createElement(r.Flex,{column:!0,gap:.5},o.createElement(r.Flex,{alignItems:"center",gap:1},o.createElement(r.TextBig,{strong:!0},t,n?"*":null),a?o.createElement($e,{description:a}):null),o.createElement(Xe,{description:l})):null},tt=e=>{let{id:t,displayLabel:n,label:l,required:r,description:a,schema:i,uiSchema:s={}}=e;const c=s["ui:title"]||l,d=s["ui:help"],u=["array","boolean"].includes(i.type);return c&&(n||u)?o.createElement("label",{htmlFor:t},o.createElement(et,{title:c,required:r,description:a,help:d})):null},nt=e=>{let{id:t,label:n,required:l,description:a,errors:i,children:s,displayLabel:c,schema:d,classNames:u,hidden:m,uiSchema:p}=e;return m?null:o.createElement(r.Flex,{width:"100%",className:"".concat(u," dyncfg-field-container"),column:!0,gap:.5},o.createElement(tt,{id:t,displayLabel:c,label:n,required:l,description:a,schema:d,uiSchema:p}),o.createElement(r.Flex,{className:"dyncfg-field-content",column:!0},s,i?o.createElement(r.TextMicro,{color:"errorText"},i):null))},lt=(ot=e=>{let{onAddClick:t,schema:n,registry:a,properties:i,...s}=e;const{WrapIfAdditionalTemplate:c,ButtonTemplates:d}=a.templates,{AddButton:u}=d;return o.createElement(o.Fragment,null,o.createElement(r.Flex,(0,l.A)({className:"dyncfg-object-field-content",column:!0,gap:3,padding:[0,0,0,3],border:{side:"left",color:"border"}},s),i.map((e=>o.createElement(c,(0,l.A)({key:e.content.key,elemKey:e.content.key},e.content.props),e.content)))),n.additionalProperties?o.createElement(r.Flex,{padding:[2]},o.createElement(u,{onClick:t(n)})):null)},e=>{let{className:t,...n}=e;return null!==t&&void 0!==t&&t.includes("dyncfg-grid")?o.createElement("div",{className:t},o.createElement(ot,n)):o.createElement(ot,n)});var ot;const rt=(0,o.createContext)(),at=e=>{let{children:t}=e;const[n,l]=(0,o.useState)({});return o.createElement(rt.Provider,{value:{collapsibleItemsState:n,setCollapsibleItemsState:l}},t)},it=e=>{const{properties:t,uiSchema:n}=e,{tabs:a,rest:i}=n["ui:options"]||{},[s,c]=(0,o.useState)(0),d=(0,o.useMemo)((()=>(e=>{let{properties:t=[],tabs:n=[]}=e;return n.map((e=>({...e,properties:t.filter((t=>e.fields.includes(t.name)))})))})({properties:t,tabs:a})),[t,a]);return o.createElement(at,null,(i||[]).length?o.createElement(lt,(0,l.A)({},e,{properties:t.filter((e=>i.includes(e.name)))})):null,o.createElement(r.Tabs,{selected:s,onChange:c,height:"100%"},d.map((t=>{let{title:n,...a}=t;return o.createElement(r.Tab,{key:n,label:n},o.createElement(lt,(0,l.A)({},e,a,{border:{side:"top",color:"border"},padding:[2,0,0,3]})))}))))},st={tabs:{Component:it},default:{Component:lt}},ct=e=>{var t;const{title:n,description:l,required:a,uiSchema:i={},idSchema:s,formData:c}=e,u=s.$id,m=i["ui:flavour"],p=i["ui:help"],{Component:g}=st[m]||st.default,h=!(null===i||void 0===i||!i["ui:collapsible"])||!(null===i||void 0===i||null===(t=i["ui:options"])||void 0===t||!t.collapsible),{inContext:f,isItemDirty:E,isItemExpanded:v,setItemState:b}=(()=>{const e=(0,o.useContext)(rt),{collapsibleItemsState:t,setCollapsibleItemsState:n}=e||{},l=(0,o.useCallback)((e=>void 0!==t[e]),[t]),r=(0,o.useCallback)((e=>t[e]),[t]),a=(0,o.useCallback)(((e,t)=>{n((n=>({...n,[e]:t})))}),[n]);return{inContext:!!e,isItemDirty:e?l:d(),isItemExpanded:e?r:d(),setItemState:e?a:d()}})(),y=i["ui:initiallyExpanded"]||!!c,C=(0,o.useMemo)((()=>E(u)?v(u):y),[E,v]),[x,k]=(0,P.A)(C);return(0,o.useEffect)((()=>{f&&b(u,x)}),[f,x,b]),o.createElement(r.Flex,{className:"dyncfg-object-field-container",width:"100%",column:!0,gap:2},n?o.createElement(r.Flex,{gap:1,alignItems:"center"},o.createElement(et,{title:n,required:a,description:l,help:p}),h?o.createElement(r.Icon,{name:"chevron_down",color:"text",size:"small",onClick:k,cursor:"pointer",rotate:x?2:0}):null):null,o.createElement(r.Collapsible,{className:"dyncfg-object-field-collapsible",open:x||!h,duration:0},o.createElement(g,e)))},dt=(0,o.forwardRef)(((e,t)=>{let{title:n,active:a,index:i,setActiveTab:s,onDropIndexClick:c,onReorderClick:d,reordering:u,setReordering:m,hasRemove:p,hasMoveUp:g,hasMoveDown:h,...f}=e;const{onAddIndexClick:E,onCopyIndexClick:v,...b}=f,y=(0,o.useCallback)((e=>{p&&c(e)()}),[p,c]);return(0,o.useEffect)((()=>{if(2==(null===u||void 0===u?void 0:u.length)&&u[0]==i){const e=u[1];d(i,e)(),s(e),m()}}),[u]),o.createElement(r.NavigationTab,(0,l.A)({ref:t},b,{index:i,draggable:!!h&&!!g,active:a,icon:p?o.createElement(r.Icon,{name:"x",size:"small"}):null,onClick:()=>{s(i)},onRemove:y,fixed:!p}),o.createElement(r.TextBig,{whiteSpace:"nowrap"},n))})),ut=(0,v.default)(r.IconButton).attrs((e=>({small:!0,padding:[0,1],...e}))).withConfig({displayName:"styled__StyledIconButton",componentId:"sc-xc1c2v-0"})(["height:",";"],(e=>{let{inTabs:t}=e;return t?"auto":"24px"})),mt=e=>{let{icon:t,iconType:n,...r}=e;return o.createElement(ut,(0,l.A)({flavour:"default",icon:"plus",tooltip:"Add item",type:"button",neutral:!1},r))};var pt=n(3705);const gt=e=>{var t;let{items:n,onAddClick:l,canAdd:a}=e;const[i,{width:s}]=(0,pt.A)(),[c,d]=(0,o.useState)(0),[u,m]=(0,o.useState)();(0,o.useEffect)((()=>{c>=n.length&&d(0)}),[n.length]);const p=a?"calc(".concat(s,"px - 40px)"):"".concat(s,"px");return o.createElement(r.Flex,{ref:i,column:!0},o.createElement(r.Flex,{width:"".concat(s,"px"),margin:[0,0,2,0]},o.createElement(r.NavigationTabs,{width:p,overflow:{horizontal:"auto"}},o.createElement(r.DraggableTabs,{items:n.map(((e,t)=>({id:e.key,title:"Item ".concat(t),active:c==t,setActiveTab:d,reordering:u,setReordering:m,...e}))),Item:dt,onDragEnd:(e,t)=>{m([e,t])}})),a?o.createElement(mt,{onClick:l,padding:[1,3],inTabs:!0}):null),o.Children.map(null===(t=n[c])||void 0===t?void 0:t.children,(e=>o.isValidElement(e)?o.cloneElement(e,{title:""}):e)))},ht=(0,o.memo)(gt),ft=e=>{let{icon:t,iconType:n,...r}=e;return o.createElement(ut,(0,l.A)({flavour:"hollow",icon:"checkmark_partial_s",danger:!0,tooltip:"Remove item",type:"button"},r))},Et=e=>{let{icon:t,iconType:n,...r}=e;return o.createElement(ut,(0,l.A)({flavour:"hollow",icon:"sort_ascending",tooltip:"Move up",type:"button"},r))},vt=e=>{let{icon:t,iconType:n,...r}=e;return o.createElement(ut,(0,l.A)({flavour:"hollow",icon:"sort_descending",tooltip:"Move down",type:"button"},r))};var bt=n(47130);const yt=(0,v.default)(r.Flex).attrs((e=>({open:!0,...e}))).withConfig({displayName:"collapsible__ContentWrapper",componentId:"sc-6ate9-0"})(["display:",";"],(e=>{let{open:t}=e;return t?"flex":"none"})),Ct=(0,bt.A)(r.Icon),xt=e=>{let{title:t="",isCollapsible:n,isOpen:a,onChange:i,children:s,...c}=e;const[d,u]=(0,P.A)(a);return(0,o.useEffect)((()=>{i(d)}),[d]),n?o.createElement(r.Flex,{width:"100%",column:!0,padding:[3,0]},o.createElement(r.Flex,{gap:2},o.createElement(Ct,{name:"chevron_left",size:"small",color:"textLite",rotate:d?1:3,onClick:u,cursor:"pointer",tooltip:d?"Hide contents":"Show contents"}),t?o.createElement(r.Text,{strong:!0},t):null),o.createElement(yt,(0,l.A)({open:d},c),s)):s},kt=e=>{var t,n;let{hasMoveDown:l,hasMoveUp:a,hasRemove:i,index:s,totalItems:c,onAddIndexClick:d,onDropIndexClick:u,onReorderClick:m,canAdd:p,uiSchema:g={},children:h}=e;const[f,E]=(0,o.useState)(!0),v=a||l||i||p,b=m(s,s-1),y=m(s,s+1),C=u(s),x=d(s+1),k=!(null===g||void 0===g||!g["ui:collapsible"])||!(null===g||void 0===g||null===(t=g["ui:options"])||void 0===t||!t.collapsible),w=(0,o.useCallback)((e=>{E(e)}),[E]);return o.createElement(r.Flex,{width:"100%",gap:2,alignItems:f?"start":"center",justifyContent:"between",border:{side:"all",color:"border"},padding:[2,4]},o.createElement(xt,{isCollapsible:k,title:null===(n=h.props)||void 0===n?void 0:n.title,isOpen:f,onChange:w},h),v?o.createElement(r.Flex,{gap:2,padding:[2,0]},a?o.createElement(Et,{onClick:b}):null,l?o.createElement(vt,{onClick:y}):null,i?o.createElement(ft,{onClick:C}):null,p&&s==c-1?o.createElement(mt,{onClick:x}):null):null)},wt=e=>{let{items:t}=e;return t.map((e=>o.createElement(kt,(0,l.A)({key:e.key},e))))},St=(0,o.memo)(wt),It=e=>{let{canAdd:t,onAddClick:n}=e;return o.createElement(r.Flex,{gap:2,alignItems:"center"},o.createElement(r.TextBig,null,"No items"),t?o.createElement(mt,{onClick:n}):null)},At=(0,bt.A)(r.Toggle),Dt=e=>{var t;const{items:n,canAdd:l,onAddClick:a}=e,i="list"==(null===e||void 0===e||null===(t=e.uiSchema)||void 0===t?void 0:t["ui:listFlavour"]),[s,c]=(0,P.A)(i),d=s?St:ht;return o.createElement(r.Flex,{width:"100%",column:!0,gap:2},o.createElement(r.Flex,null,o.createElement(At,{labelRight:"List",labelLeft:"Tabs",onChange:c,checked:s,tooltip:"Switch between list and tabs layout"})),n.length?o.createElement(d,e):o.createElement(It,{canAdd:l,onAddClick:a}))};var Ft=n(45576);const Tt=e=>{var t;let{elemKey:n,onKeyChange:l,schema:a,onDropPropertyClick:i,registry:s,children:c}=e;const[d,u]=(0,o.useState)((null===c||void 0===c||null===(t=c.props)||void 0===t?void 0:t.name)||""),{RemoveButton:m}=s.templates.ButtonTemplates,p=Ft.Rr in a,g=(0,o.useCallback)((e=>{i(n)(e)}),[i,n]),h=(0,o.useCallback)((e=>u(e.target.value)),[u]);return p?o.createElement(r.Flex,{width:"100%",gap:2,alignItems:"center"},o.createElement(r.Flex,{column:!0,gap:1,flex:{grow:1,shrink:1}},o.createElement(r.TextBig,{strong:!0},"Key"),o.createElement(r.TextInput,{value:d,onInput:h,onBlur:e=>l(e.target.value),border:"inputBorder",size:"small"})),o.createElement(r.Flex,{flex:{grow:2,shrink:1}},c),o.createElement(r.Flex,{column:!0,gap:.5},o.createElement(r.TextBig,{opacity:"0"},"x"),o.createElement(m,{onClick:g}))):c},Bt={FieldTemplate:nt,ArrayFieldTemplate:Dt,ObjectFieldTemplate:ct,WrapIfAdditionalTemplate:Tt,ErrorListTemplate:()=>null,ButtonTemplates:{SubmitButton:()=>o.createElement(r.Button,{label:"Save"}),AddButton:mt,RemoveButton:ft,MoveUpButton:Et,MoveDownButton:vt}},Pt=e=>{let{value:t,type:n,disabled:l,onChange:a,onBlur:i,placeholder:s,schema:c,rawErrors:d}=e;const u=n||(e=>"integer"==e||Array.isArray(e)&&e.includes("integer")?"number":"text")(c.type),m="number"==u?null==t||void 0==t?0:t:t||"";return o.createElement(r.TextInput,{value:m,type:u,placeholder:s,onChange:e=>{var t;return a(null===(t=e.target)||void 0===t?void 0:t.value)},onBlur:i,disabled:l,error:!(null===d||void 0===d||!d.length),hideErrorMessage:!0,border:"inputBorder",size:"small"})},_t=e=>{let{value:t,disabled:n,onChange:l}=e;return o.createElement(r.Flex,null,o.createElement(r.Checkbox,{checked:t,onChange:l,disabled:n}))};n(3064),n(72577);const Lt=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e||0==t.length)return"";if(Array.isArray(e)){return[...t.filter((t=>e.map((e=>"string"==typeof e?e:e.value)).includes(t.value))),...e.filter((e=>"object"==typeof e&&e.__isNew__))]}return t.find((t=>t.value==e))},Nt=e=>{let{value:t,options:n,disabled:l,multiple:a,onChange:i,uiSchema:s}=e;const{enumOptions:c}=n||{},d=null===s||void 0===s?void 0:s["ui:creatable"],u=(0,o.useCallback)((e=>{var t;i((t=e)?Array.isArray(t)?t.map((e=>e.value)):t.value||"":"")}),[]);return c?o.createElement(r.Select,{value:Lt(t,c),isMulti:a,options:c,onChange:u,isDisabled:l,isCreatable:d,styles:{size:"tiny"}}):null},jt=e=>{let{value:t,disabled:n,onChange:l,uiSchema:a,options:i}=e;const s=a[Ft.ce],c=(null===s||void 0===s?void 0:s.enumOptions)||(null===i||void 0===i?void 0:i.enumOptions),d=null===s||void 0===s?void 0:s.inline,u="buttonGroup"==(null===s||void 0===s?void 0:s.flavour),m=(0,o.useMemo)((()=>({gap:2,...d?{alignItems:"center"}:{column:!0}})),[d]);if(u){const e=c.map((e=>{var t;return{...e,title:null===(t=e.schema)||void 0===t?void 0:t.description}}));return o.createElement(r.ButtonGroup,{items:e,checked:t,onChange:l,buttonProps:{type:"button",small:!0}})}return c?o.createElement(r.Flex,m,c.map((e=>{var a;return o.createElement(r.RadioButton,{key:e.value,checked:t==e.value,onChange:()=>l(e.value),disabled:n},o.createElement("label",{title:null===e||void 0===e||null===(a=e.schema)||void 0===a?void 0:a.description},e.label))}))):null},Ot=v.default.textarea.withConfig({displayName:"textareaWidget__Textarea",componentId:"sc-3aqoej-0"})(["background:",";border-width:1px;border-style:solid;border-color:",";border-radius:2px;color:",";padding:8px 12px;opacity:",';font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif;'],(0,r.getColor)("inputBg"),(e=>{let{hasValue:t,error:n}=e;return t?(0,r.getColor)("text"):n?(0,r.getColor)("error"):(0,r.getColor)("inputBorder")}),(e=>{let{disabled:t,hasValue:n}=e;return n?(0,r.getColor)("text"):t?(0,r.getColor)("placeholder"):(0,r.getColor)("textLite")}),(e=>{let{disabled:t}=e;return t?".4":"1"})),Mt={TextWidget:Pt,CheckboxWidget:_t,SelectWidget:Nt,RadioWidget:jt,TextareaWidget:e=>{let{value:t,placeholder:n,disabled:l,onChange:r,options:a,rawErrors:i}=e;const{rows:s=2}=a||{};return o.createElement(Ot,{placeholder:n,disabled:l,onChange:e=>r(e.target.value),rows:s,hasValue:!!t,error:!(null===i||void 0===i||!i.length)},t)},PasswordWidget:e=>o.createElement(Pt,(0,l.A)({type:"password"},e)),URLWidget:e=>o.createElement(Pt,(0,l.A)({type:"url"},e))};var Rt=n(22086);const zt=(0,v.default)(Rt.Ay).withConfig({displayName:"styled__StyledForm",componentId:"sc-epjsfn-0"})(["display:flex;flex-direction:column;justify-content:space-between;height:100%;overflow-y:auto;padding-right:8px;"]),Ht=()=>{const[e,t]=(0,o.useState)([]),n=(0,o.useCallback)((e=>t(e)),[t]);return{errors:e,onError:n,resetErrors:(0,o.useCallback)((()=>t([])),[t])}},Vt=e=>{let{id:t,node:n,data:l,submitMethod:r,onSchemaFetch:a,setIsDirty:i,setError:s}=e;const[c,d]=(0,oe.A)(),{isNewItem:u,setFormData:m,isLoading:p,startLoading:g,stopLoading:h}=R(),{sendLog:f}=(0,be.A)(),{loaded:E,value:v,hasError:b,error:y,refresh:C}=(0,L.t8)({id:t,node:n}),{loaded:x,value:k,hasError:w,refresh:S}=l,I=E&&x,A=y||w,[D,F]=(0,o.useState)(),T=(0,L.Hj)(),{errors:B,onError:P,resetErrors:_}=Ht();(0,o.useEffect)((()=>{E&&v&&!b&&a(v)}),[E,v]),(0,o.useEffect)((()=>{s(A)}),[A]);const N=(0,o.useCallback)((e=>{m(e.formData),u||i(!0)}),[m,u]),j=(0,o.useCallback)((e=>{var n;if(_(),u&&(null===(n=e.formData)||void 0===n||!n.name))return P([{message:"Please provide a name"}]),!1;g(),r(e.formData).then((e=>{let{data:n}=e;F(n),i(!1),u?T():(C(),S()),c({header:"Success",text:"Successfully submitted configuration"}),f({feature:"DyncnfForm",description:"Submit success",id:t})})).catch((n=>{var l,o,r;const a=(null===(l=n.response)||void 0===l?void 0:l.data)||n;F({...a,status:null===(o=n.response)||void 0===o?void 0:o.status,formData:e.formData}),d({header:"Error",text:(null===a||void 0===a?void 0:a.message)||"Something went wrong"}),f({feature:"DyncnfForm",description:"Submit error",id:t,error:JSON.stringify((null===(r=n.response)||void 0===r?void 0:r.data)||{})})})).finally((()=>{h()}))}),[g,h,F,C,S,P]);return{isLoading:p,loaded:I,formData:k,schema:v,response:D,resourcesError:A,errors:B,setResponse:F,onChange:N,onSubmit:j,onError:P}},Wt=e=>{let{title:t="Error",children:n,...a}=e;return o.createElement(r.Flex,(0,l.A)({column:!0,gap:2},a),o.createElement(r.Flex,{alignItems:"center",gap:2},o.createElement(r.Icon,{name:"warning_triangle",color:"errorText"}),o.createElement(r.TextBigger,{color:"errorText"},t)),n)};var qt=n(63314);const Ut=function(){let{remainingErrors:e=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[t,n]=(0,P.A)();return o.createElement(o.Fragment,null,o.createElement(r.Collapsible,{open:t,duration:0},e.map((e=>{let{message:t}=e;return o.createElement(r.Text,{key:t,color:"errorText"},t)}))),o.createElement(r.Flex,{padding:[2,0,0,0]},o.createElement(r.Button,{flavour:"hollow",neutral:!0,small:!0,label:t?"Hide":"Show ".concat(e.length," more"),onClick:n})))},Kt=function(){let{id:e,errors:t=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.length?o.createElement(qt.Ay,{feature:"DyncnfForm",id:e,validationErrors:!0},o.createElement(Wt,null,o.createElement(r.Flex,{alignItems:"start",column:!0},o.createElement(r.Text,{color:"errorText"},t[0].message),t.length>1?o.createElement(Ut,{remainingErrors:t.slice(1)}):null))):null},Yt=e=>{let{response:t}=e;const n=((null===t||void 0===t?void 0:t.status)||0)>=400,l=n?"error":"success",{message:a,error_message:i,errorMessage:s}=t,c=i||s||"Status: ".concat(t.status);return n?o.createElement(Wt,null,o.createElement(r.TextBig,{color:l},c)):a?o.createElement(r.TextBig,{color:l},a):o.createElement(r.Flex,null)};var Jt=n(53285);const Qt=G(r.Button),Zt=e=>{let{loading:t}=e;const{id:n,isNewItem:l,entityProps:r={}}=R(),{cmds:a=[]}=r,{node:i,path:s}=ne(),c=(0,L.SD)({node:i,path:s}),{user_disabled:d}=c(n)||{},u=l||a.includes("update");return o.createElement(Jt.A,{permission:"agent:EditDynCfg"},(e=>(!0,o.createElement(Qt,{label:"Submit",small:!0,disabled:!u||t||d,isLoading:t,tooltip:u?"Submit your changes":"You don't have permissions to save your changes"}))))},Gt=G(r.Button),$t=e=>{let{loading:t,setResponse:n}=e;const{node:l,path:r}=ne(),{id:a,formData:i,entityProps:s={}}=R(),{cmds:c=[]}=s,d=(0,L.SD)({node:l,path:r}),{user_disabled:u}=d(a)||{},m=c.includes("test"),p=(0,L.EZ)({id:a,node:l}),[g,h]=(0,oe.A)(),f=(0,o.useCallback)((()=>{p({payload:i}).then((()=>{g({header:"Success",text:"Successfully tested configuration"})})).catch((e=>{var t,l;const{message:o}=(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||{};h({header:"Error",text:o||"Something went wrong"}),n(null===e||void 0===e||null===(l=e.response)||void 0===l?void 0:l.data)}))}),[p,i,g,h,n]);return m?o.createElement(Gt,{label:"Test",small:!0,tooltip:"Test your configurations",flavour:"hollow",onClick:f,disabled:t||u,type:"button"}):null},Xt=e=>{let{id:t,loading:n,response:l={},setResponse:a,errors:i=[]}=e;return o.createElement(r.Flex,{position:"sticky",bottom:0,gap:2,padding:[4,0,0,0],alignItems:"baseline",justifyContent:"between",zIndex:10},i.length?o.createElement(Kt,{id:t,errors:i}):o.createElement(Yt,{response:l}),o.createElement(r.Flex,{gap:2},o.createElement($t,{loading:n,setResponse:a}),o.createElement(Zt,{loading:n})))},en=function(){let{id:e,error:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n="string"==typeof t?{error_message:t}:"object"==typeof t?t:{},{error_message:l,message:a}=n;return o.createElement(qt.DL,{feature:"DyncnfForm",id:e,error:JSON.stringify(t)},o.createElement(r.Flex,{column:!0,gap:2},o.createElement(r.Flex,{alignItems:"center",gap:2},o.createElement(r.Icon,{name:"warning_triangle",color:"text"}),o.createElement(r.H3,null,"Error")),o.createElement(r.TextBig,null,l||a||C.Fn)))},tn=function(){let{id:e,node:t,isNewItem:n,data:l=C.gh,submitMethod:r,onSchemaFetch:a=d(),setIsDirty:i=d(),setError:s=d()}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=(0,o.useRef)(0),{isLoading:u,loaded:m,formData:p,schema:g,response:h,resourcesError:f,errors:E,setResponse:v,onChange:b,onSubmit:y,onError:x}=Vt({id:e,node:t,data:l,submitMethod:r,onSchemaFetch:a,setIsDirty:i,setError:s}),{jsonSchema:k,uiSchema:w}=g||{};(0,o.useEffect)((()=>(c.current=Date.now(),()=>c.current=0)),[]);const S=(0,o.useCallback)((e=>{const t=Date.now()-c.current;!n&&(0==c.current||t<100)||b(e)}),[]),I=(null===h||void 0===h?void 0:h.formData)||p;return m?f?o.createElement(en,{id:e,error:f}):o.createElement(qt.Ay,{feature:"DyncnfForm",id:e,isNewItem:n},o.createElement(zt,{className:"dyncfg-form",disabled:u,schema:k,uiSchema:w,formData:I,templates:Bt,widgets:Mt,validator:Ve.Ay,onError:x,onChange:S,onSubmit:y},o.createElement(Xt,{id:e,loading:u,response:h,setResponse:v,errors:E}))):o.createElement(Oe.A,{title:"Loading form...",background:"modalBackground"})},nn=e=>{let{id:t,node:n,children:l}=e;const{setFormData:r}=R(),{loaded:a,value:i,hasError:s,error:c,refresh:d}=(0,L.SW)({id:t,node:n});return(0,o.useEffect)((()=>{a&&!s&&r(i)}),[a,s,r]),a?s?o.createElement(en,{id:t,error:c}):o.Children.map(l,(e=>o.isValidElement(e)?o.cloneElement(e,{id:t,node:n,data:{loaded:a,value:i,hasError:s,refresh:d}}):e)):null},ln=e=>{let{formData:t={},children:n}=e;const{formData:l}=R();return o.Children.map(n,(e=>o.isValidElement(e)?o.cloneElement(e,{data:{...C.gh,value:{...t,...l}}}):e))},on=e=>{let{id:t,formData:n,...r}=e;const{node:a}=ne(),{isNewItem:i}=R(),s=(0,L.Nj)({id:t,node:a}),c=(0,L.xS)({id:t,node:a});return i?o.createElement(ln,{formData:n},o.createElement(tn,(0,l.A)({id:t,node:a,isNewItem:i,submitMethod:s},r))):o.createElement(nn,{id:t,node:a},o.createElement(tn,(0,l.A)({submitMethod:c},r)))},rn=e=>{var t,n;let{entries:r=[],rowHeight:a=C.FL,level:i=1}=e;const s=(0,o.useRef)(),{node:c,path:d,containerRef:u}=ne(),[m,p]=(0,L._F)({node:c,path:d}),g=null===(t=u.current)||void 0===t||null===(t=t.getBoundingClientRect())||void 0===t?void 0:t.bottom,h=null===(n=s.current)||void 0===n||null===(n=n.getBoundingClientRect())||void 0===n?void 0:n.top,f=g&&h?g-h:500,E=Math.floor(f/a),v=r.length>E,b=(0,ze.Te)({count:r.length,getScrollElement:()=>s.current,enableSmoothScroll:!0,estimateSize:()=>a,overscan:5}),y=(0,o.useCallback)((0,Re.s)(300,(e=>{p(e.target.scrollTop)})),[p]);return(0,o.useEffect)((()=>{s.current&&(s.current.scrollTop=m)}),[]),v?o.createElement("div",{ref:s,style:{height:"".concat(f,"px"),overflow:"auto"},onScroll:y},o.createElement("div",{style:{minHeight:"".concat(b.getTotalSize(),"px"),width:"100%",position:"relative"}},b.getVirtualItems().map((e=>{const[t,n]=r[e.index];return o.createElement("div",{className:"dyncnf-virtual-row",key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),overflow:"hidden"},ref:b.measureElement,"data-index":e.index},o.createElement(He,{virtualIndex:e.index,virtualRowStart:e.start,entryKey:t,entityProps:(0,x.bn)(n),configItemLevel:i},o.createElement(on,(0,l.A)({id:t},n))))})))):r.map((e=>{let[t,n]=e;return o.createElement(He,{key:t,entryKey:t,entityProps:(0,x.bn)(n),configItemLevel:i},o.createElement(on,(0,l.A)({id:t},n)))}))},an=e=>{let{entries:t=[],level:n=0}=e;const{testString:r,testProps:a}=p();return t.map((e=>{let[t,i]=e;const{templateChildren:s}=i||{},c=(0,x.bn)(i);if(s){const e=Object.entries(s).filter((e=>{let[t,n]=e;return r(t)&&a(n)}));return o.createElement(He,{key:t,flavour:"template",entryKey:t,entityProps:c,configItemLevel:n,isOpen:!0},o.createElement(rn,{entries:e,level:n}))}return o.createElement(He,{key:t,entryKey:t,entityProps:c,configItemLevel:n},o.createElement(on,(0,l.A)({id:t},c)))}))},sn=(0,o.memo)(an),cn=function(){let{tree:e={},level:t=1,isVirtual:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{testString:l,testProps:r}=p();return n?o.createElement(sn,{entries:Object.entries(e),level:t}):Object.entries(e).map((e=>{let[n,a]=e;const i=n.match(/\/[^/]+/g),s=Object.keys(a).filter((e=>{const{templateChildren:t={}}=a[e],o=Object.values(t).some((e=>r(e)));return!(!r(a[e])&&!o)&&(l(n)||l(e)||Object.keys(t).some((e=>l(e))))})).reduce(((e,t)=>({...e,[t]:a[t]})),{});if(1==i.length)return o.createElement(Me,{key:n,title:i[0],level:t,isOpen:!0},o.createElement(cn,{tree:s,level:t+1,isVirtual:!0}));const c=i.slice(1).join("");return o.createElement(Me,{key:c,title:i[0],level:t,isOpen:!0},o.createElement(cn,{tree:{[c]:s},level:t+1}))}))},dn=(0,o.memo)(cn),un=()=>o.createElement(r.Flex,null,o.createElement(r.TextBigger,null,"No available configuration found.")),mn=()=>{const{node:e,path:t}=ne(),n=(0,L.sh)({node:e,path:t}),{entityProps:r,...a}=n||{};return n?o.createElement(Me,{flavour:"entity",title:"".concat(n.template,":placeholder"),entityProps:{...r,...a},isNewItem:!0},o.createElement(on,(0,l.A)({id:n.template,formData:n.formData},r))):null},pn=(0,j.A)((()=>n.e(4414).then(n.bind(n,74414))),"DyncfgStyles"),gn=e=>{let{node:t,path:n,tree:l,inModal:a}=e;const i=(0,o.useRef)();return o.createElement(le.Provider,{value:{node:t,path:n,inModal:a,containerRef:i}},o.createElement(pn,null),o.createElement(r.Flex,{ref:i,width:"100%",padding:[0,2],column:!0},o.createElement(r.Flex,{column:!0},Object.keys(l).length?o.createElement(dn,{tree:(0,H.m8)(l)}):o.createElement(un,null)),o.createElement(mn,null)))};n(25440);const hn=e=>{let{node:t}=e;const{loaded:n,value:l,hasError:o}=(0,L.wd)({node:t}),r=n&&l&&!o?Object.keys(l.tree||{}).reduce(((e,t)=>{t.startsWith("/")||(t="/".concat(t));const n=t.match(/\/[^/]+/g);if(n.length){const t=n[0],l=(0,ae.Zr)(t.replace(/^\/?/,""));e.find((e=>e.value==t))||e.push({value:t,label:l})}return e}),[]):[];return r},fn=e=>{var t;let{flavour:n,inModal:l,selectedNode:a,setNode:i,options:s}=e;const[c,d]=(0,o.useState)(0),m=hn({node:null===a||void 0===a?void 0:a.value}),{loaded:p,value:f,hasError:E}=(0,L.wd)({node:null===a||void 0===a?void 0:a.value,path:null===m||void 0===m||null===(t=m[c])||void 0===t?void 0:t.value}),{tree:v}=f||{},b=l?"60px":"110px",y=(0,o.useMemo)((()=>({height:"settings"==n?"calc(100% - ".concat(b,")"):"100%",padding:[4,0],border:{side:"top",color:"border"},overflow:{vertical:"auto"}})),[]);return s.length?o.createElement(g,null,o.createElement(r.Flex,{column:!0,height:"100%",gap:4},o.createElement(r.Flex,{alignItems:"center",justifyContent:"between"},o.createElement(r.Flex,{alignItems:"center",gap:4},o.createElement(u,{node:a,setNode:i,options:s}),o.createElement(h,null)),o.createElement(r.Flex,{alignItems:"center",gap:3},o.createElement(_,{tree:v}),o.createElement(N,null))),m.length?o.createElement(r.Tabs,{height:"100%",selected:c,onChange:d},m.map((e=>{let{label:t,value:n}=e;return o.createElement(r.Tab,{key:n,label:t},o.createElement(r.Flex,y,p?E?o.createElement(r.TextBigger,null,"Something went wrong"):v?o.createElement(gn,{key:n,node:null===a||void 0===a?void 0:a.value,path:n,tree:v,inModal:l}):o.createElement(un,null):o.createElement(Oe.A,{height:"calc(100% - ".concat(b,")"),title:"Loading..."})))}))):o.createElement(r.TextBigger,null,"There are no available configuration."))):o.createElement(r.TextBigger,null,"There are no available nodes.")};var En=n(3914),vn=n(20378),bn=n(78459),yn=n(15255),Cn=n(68741),xn=n(40982);const kn=e=>{let{message:t,title:n,footer:a,...i}=e;const s=(null===i||void 0===i?void 0:i["data-testid"])||"dyncnfError";return o.createElement(r.Flex,(0,l.A)({alignItems:"center",column:!0,"data-testid":s,flex:!0,gap:3,justifyContent:"center",padding:[0,20]},i),o.createElement(r.H3,{"data-testid":"".concat(s,"-title")},n),o.createElement(r.TextBig,{color:"textDescription","data-testid":"".concat(s,"-message")},t),a)},wn=e=>{const t=(0,a.eO)({extraKey:"nodesView",merge:!1,scoped:!0});return o.createElement(In,(0,l.A)({},e,{nodes:t}))},Sn=e=>{const{nodes:t}=(0,i.A)({polling:!1});return o.createElement(In,(0,l.A)({},e,{nodes:t}))},In=e=>{let{flavour:t,inModal:n,node:l,nodes:r}=e;const{options:a,node:i,setNode:c}=s({selectedNode:l,nodes:r});return null!==i&&void 0!==i&&i.value?o.createElement(fn,{flavour:t,inModal:n,selectedNode:i,setNode:c,options:a}):null},An=e=>{const t=(0,bn.OS)();return o.createElement(r.Button,(0,l.A)({label:"Get a fresh agent token",onClick:t},e))},Dn="Configurations expose sensitive information about your systems and applications. To protect your privacy, Netdata exposes this information only to logged-in users and claimed agents. When viewing Configurations directly on a Netdata Agent UI, this information is sent directly from the Netdata Agent to your web browser, without exposing it to any third parties.",Fn={notLoggedIn:{title:"Sign in to Netdata to use Configurations",description:Dn,footer:o.createElement(Cn.A,null)},notClaimed:{title:"Connect this agent to Netdata to use Configurations",description:Dn,footer:o.createElement(xn.A,null)},noAccess:{title:"This agent belongs to a Netdata Space you are not member of",description:Dn,footer:o.createElement(r.TextBig,{color:"textDescription"},"Ask for an invitation from the administrators of the Netdata Space of the agent to use configurations.")},bearerError:{title:"You are not authorized to use Configurations",description:Dn,footer:o.createElement(An,null)}},Tn=e=>{let{flavour:t="settings",node:n,inModal:l}=e;const r=(0,En.dg)(),a={flavour:t,node:n,inModal:l},[i]=(0,vn.Q8)(),[{bearerProtection:s,error:c}]=(0,bn.f7)(),[{canBeClaimed:d,cloudStatus:u}]=(0,yn.RJ)();if(r&&c&&s){const{title:e,description:t,footer:n}=(e=>{let{userStatus:t,userNodeStatus:n,accessError:l,canBeClaimed:o}=e;return Fn[t]?Fn[t]:l?Fn.notLoggedIn:o?Fn.notClaimed:Fn[n]?Fn[n]:Fn.bearerError})({...i,bearerError:c,canBeClaimed:d,cloudStatus:u});return o.createElement(kn,{title:e,message:t,footer:n})}return r?o.createElement(wn,a):o.createElement(Sn,a)}}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/966.89070793921be1288bb5.css b/src/web/gui/v2/966.89070793921be1288bb5.css
new file mode 100644
index 000000000..e5d02668f
--- /dev/null
+++ b/src/web/gui/v2/966.89070793921be1288bb5.css
@@ -0,0 +1,2 @@
+.default .dygraph-axis-label{color:#35414a}.dark .dygraph-axis-label{color:#fff}.dygraph-label-rotate-right{text-align:center;transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg)}.dygraph-annotation{position:absolute;z-index:10;overflow:hidden;border:1px solid}
+
diff --git a/src/web/gui/v2/966.8f0a484a79552c192bc1.chunk.js b/src/web/gui/v2/966.8f0a484a79552c192bc1.chunk.js
new file mode 100644
index 000000000..b5c85edb3
--- /dev/null
+++ b/src/web/gui/v2/966.8f0a484a79552c192bc1.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ff4e3167-3c34-4595-add4-2d6d84891cbc",e._sentryDebugIdIdentifier="sentry-dbid-ff4e3167-3c34-4595-add4-2d6d84891cbc")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[966,3705],{79304:(e,t,n)=>{n.d(t,{A:()=>s});n(25440);const s=e=>(e||"").replace(/[\s:()./]/g,"_")},61658:(e,t,n)=>{n.d(t,{O:()=>a});const s={ErrNoChartExist:"ErrNoChartExist"},a=function(e){return!!(arguments.length>1&&void 0!==arguments[1]?arguments[1]:s)[e]}},42629:(e,t,n)=>{n.d(t,{Oq:()=>c,sd:()=>o,tr:()=>d,zA:()=>l});var s=n(78659),a=n.n(s);const o=e=>Math.round(10*e)/10,r=e=>{const{gutter:t,containerWidth:n,gridTracks:s}=e;return(n-t*(s-1))/s};function i(e,t,n){return Number.isFinite(e)?o(t*e+Math.max(0,e-1)*n):e}function c(e,t,n,s,a,c){const{gutter:l,rowHeight:d}=e,h=r(e),u={};return c?(u.width=i(c.width,h,l),u.height=i(c.height,d,l),u.top=o((d+l)*c.top),u.left=o((h+l)*c.left)):(u.width=i(s,h,l),u.height=i(a,d,l),u.top=o((d+l)*n),u.left=o((h+l)*t)),u}function l(e,t,n,s){const{gutter:i,gridTracks:c,rowHeight:l,maxRows:d}=e,h=r(e);let u=o((n-i)/(h+i)),p=o((t-i)/(l+i));return u=a()(u,0,c-s.width),p=a()(p,0,d-s.height),{left:u,top:p}}const d=(e,t,n,s)=>{const{gutter:i,maxRows:c,gridTracks:l,rowHeight:d}=e,h=r(e);let u=o((t+i)/(h+i)),p=o((n+i)/(d+i));return u=a()(a()(u,s.minWidth||3,l-s.left),0,l),p=a()(a()(p,s.minHeight||2,c-s.top),0,c),{width:u,height:p}}},34604:(e,t,n)=>{n.d(t,{A:()=>c});var s=n(58168),a=n(96540),o=n(8711),r=n(10058);const i=o.default.div.withConfig({displayName:"container__Div",componentId:"sc-tikmd7-0"})(["position:relative;"]),c=(0,a.forwardRef)(((e,t)=>{let{onRemove:n,children:o,...c}=e;return a.createElement(i,(0,s.A)({},c,{ref:t}),a.createElement(r.Icon,{name:"x",size:"small",onClick:n}),o)}))},75233:(e,t,n)=>{n.d(t,{A:()=>p});var s=n(58168),a=(n(3064),n(41393),n(98992),n(72577),n(81454),n(62953),n(96540)),o=n(40961),r=n(43375),i=n(45467),c=n(34604),l=n(44554),d=n(42629),h=n(13692);const u={sideEffects(e){let{active:t}=e;t.node.animate([{opacity:0},{opacity:1}],{easing:"ease-in",duration:250})}},p=e=>{let{rootId:t,items:n,onRemove:p,Item:m,containerWidth:g=800,rowHeight:f=40,gridTracks:b=12,gutter:y=4,allowOverlap:v=!1,compactType:_="vertical",maxRows:w=3e5,Container:k=c.A,onDragEnd:T,containerId:S,itemProps:M,rearrangeable:x=!0}=e;const C=(0,a.useRef)(),[P,q]=(0,a.useState)((()=>(0,l.oE)((0,l.Su)(n),_,b)));(0,i.A)((()=>{q((0,l.oE)((0,l.Su)(n),_,b))}),[b]);const[I,B]=(0,a.useState)(null),[L,A]=(0,a.useState)(null),E=(0,a.useRef)(null),{active:D}=(0,r.fF)();(0,r.E5)((0,a.useMemo)((()=>({onDragStart:e=>{let{active:t}=e;const{itemContainerId:n}=t.data.current;n===S&&(B(P),A(P))},onDragMove:e=>{let{active:t,over:n}=e;A((e=>{const{isResizer:s,isContainer:a,itemId:o,itemContainerId:r}=t.data.current;if(a||r!==S)return e;const{initial:i,translated:c}=t.rect.current;let h=e;const u=(0,l.GN)(h,o);if(!u)return e;const p=null===n||void 0===n?void 0:n.id;if(s){if(!p)return e;const t=n.rect.width+(0,d.sd)(c.right-i.right),s=n.rect.height+(0,d.sd)(c.bottom-i.bottom);let{width:a,height:o}=(0,d.tr)({gutter:y,maxRows:w,gridTracks:b,rowHeight:f,containerWidth:g},t,s,u);return u.width===a&&u.height===o?e:(u.width=a,u.height=o,h=h.map((e=>e.id===u.id?{...u,width:a,height:o}:e)),h=(0,l.oE)(h,_,b),E.current=u,h)}if(!x)return e;const m=C.current.getBoundingClientRect();let{left:k,top:T}=(0,d.zA)({gutter:y,maxRows:w,gridTracks:b,rowHeight:f,containerWidth:g},c.top-m.top,c.left-m.left,u);return u.top===T&&u.left===k?e:(h=(0,l.Pe)(h,u,k,T,!0,!1,_,b,v),h=(0,l.oE)(h,_,b),E.current=u,h)}))},onDragEnd:e=>{let{active:t,over:n}=e;const{isResizer:s,isContainer:a,itemContainerId:o}=t.data.current;if(a||o!==S)return void A(null);const r=null===n||void 0===n?void 0:n.id;if(s)return L&&q(L),A(null),void T(L,E.current);null!==r?(L&&q(L),A(null),T(L,E.current)):A(null)},onDragCancel:()=>{I&&q(I),E.current=null,B(null),A(null)}})),[L]));const N=(0,l.Hp)(L||P),R=N*f+(N-1)*y+"px";return a.createElement(k,{ref:C,style:{width:g,height:R}},(L||P).map(((e,n)=>a.createElement(h.A,(0,s.A)({key:e.id},e,{index:n,containerId:S,Item:m,onRemove:p,draggable:!0,containerWidth:g,rowHeight:f,gridTracks:b,gutter:y,transformed:null!==L?L[n]:null,draggableProps:e,itemProps:M,rootId:t})))),(0,o.createPortal)(a.createElement(r.Hd,{adjustScale:!1,dropAnimation:u,zIndex:9999},D&&D.data.current.rootId===t&&D.data.current.isItem?(e=>{const n=L||P;if(!n)return null;const o=n.find((t=>t.id===e.itemId));return o?a.createElement(h.A,(0,s.A)({rootId:t},o,{containerId:e.itemContainerId,Item:m,onRemove:p,draggable:!0,containerWidth:g,rowHeight:f,gridTracks:b,gutter:y,dragOverlay:!0,itemProps:M})):null})(D.data.current):null),document.body))}},13692:(e,t,n)=>{n.d(t,{A:()=>d});var s=n(58168),a=n(96540),o=n(8711),r=n(10058),i=n(43375),c=n(42629);const l=(0,o.default)(r.IconButton).attrs({icon:"resize_handler",padding:[0],position:"absolute",bottom:0,right:0,hoverColor:"textDescription",width:"14px",height:"14px"}).withConfig({displayName:"item__ResizeButton",componentId:"sc-1g5beux-0"})(["&&{cursor:nwse-resize;}"]),d=e=>{let{draggable:t,id:n,containerId:o,index:d,onRemove:h,itemProps:u,Item:p,top:m,left:g,width:f,height:b,containerWidth:y,rowHeight:v,gridTracks:_,gutter:w,transformed:k,draggableProps:T,dragOverlay:S,containerDragOverlay:M,rootId:x,containerDndProps:C}=e;const{setNodeRef:P}=(0,i.zM)({id:S||M?"dragOverlay-".concat(x,"-").concat(n):"".concat(x,"-").concat(n),disabled:!t||S||M,data:{isItem:!0,itemId:n,itemContainerId:o,rootId:x,...C}}),{attributes:q,isDragging:I,listeners:B,setNodeRef:L,setActivatorNodeRef:A}=(0,i.PM)({id:S||M?"dragOverlay-".concat(x,"-").concat(n):"".concat(x,"-").concat(n),disabled:!t||S||M,data:{isItem:!0,itemId:n,itemContainerId:o,...T,itemProps:u,rootId:x}}),E=(0,i.PM)({id:S||M?"dragOverlay-".concat(x,"-").concat(n,"-resizeHandle"):"".concat(x,"-").concat(n,"-resizeHandle"),disabled:S||M,data:{isResizer:!0,itemId:n,itemContainerId:o,rootId:x}}),D=(0,c.Oq)({containerWidth:y,rowHeight:v,gridTracks:_,gutter:w},g,m,f,b,k),N=S?{width:"".concat(D.width,"px"),height:"".concat(D.height,"px"),boxShadow:"\n 0 0 0 1px rgba(63, 63, 68, 0.05),\n -1px 0 15px 0 rgba(34, 33, 81, 0.01),\n 0px 15px 15px 0 rgba(34, 33, 81, 0.25)\n "}:{transition:I||E.isDragging?"":"top 100ms ease, left 100ms ease, width 100ms ease, height 100ms ease",position:"absolute",width:"".concat(D.width/y*100,"%"),height:"".concat(D.height,"px"),left:"".concat(D.left/y*100,"%"),top:"".concat(D.top,"px")};return a.createElement(p,(0,s.A)({},u,{containerId:o,ref:(0,r.mergeRefs)(L,P),dragging:I,resizing:E.isDragging,handleProps:S||M||!t?void 0:{ref:A},index:d,style:N,onRemove:h,id:n,attributes:q,listeners:B,resizeHandle:a.createElement(l,(0,s.A)({ref:E.setNodeRef},E.attributes,E.listeners)),dragOverlay:S||M}))}},38257:(e,t,n)=>{n.d(t,{A:()=>r});n(62953);var s=n(96540),a=n(43375);const o={vertical:{start:"top",end:"bottom",mouse:"clientY",clientDimension:"clientHeight",scrollDimension:"scrollHeight",scrollStart:"scrollTop"},horizontal:{start:"left",end:"right",mouse:"clientX",clientDimension:"clientWidth",scrollDimension:"scrollWidth",scrollStart:"scrollLeft"}},r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"vertical";const{start:t,end:n,mouse:r,clientDimension:i,scrollDimension:c,scrollStart:l}=o[e]||o.vertical,{active:d}=(0,a.fF)(),h=(0,s.useRef)(null),[u,p]=(0,s.useState)(null);return(0,s.useEffect)((()=>{if(!u)return;const e=h.current;if(!e)return;const t=setInterval((()=>{e[l]+=5*u}),5);return()=>clearInterval(t)}),[u,h.current]),(0,s.useEffect)((()=>{const e=e=>{const s=h.current;if(!d||!s)return;if(!(s[c]>s[i]))return;const a=s.getBoundingClientRect(),o=e[r],l=o<a[t]+100?-1:o>a[n]-100?1:null;p((e=>l!==e?l:e))};return d?window.addEventListener("mousemove",e):(window.removeEventListener("mousemove",e),p(null)),()=>{window.removeEventListener("mousemove",e),p(null)}}),[d,h.current]),h}},18202:(e,t,n)=>{n.d(t,{A:()=>s});const s=e=>{let{contextScope:t,nodesScope:n,aggregationMethod:s,groupBy:a,groupByLabel:o,postAggregationMethod:r,postGroupBy:i,postGroupByLabel:c,groupingMethod:l,groupingTime:d,chartType:h,chartLibrary:u,selectedDimensions:p,selectedLabels:m,selectedNodes:g,selectedInstances:f,sparkline:b,selectedLegendDimensions:y,showingInfo:v,dimensionsSortBy:_,instancesSortBy:w,nodesSortBy:k,groupBySortBy:T,labelsSortBy:S,dimensionsSort:M,nodesExpanded:x,groupByExpanded:C,labelsExpanded:P,expanded:q,staticZones:I,overlays:B,title:L,description:A,showPostAggregations:E}=e;return{contextScope:t,nodesScope:n,aggregationMethod:s,groupBy:a,groupByLabel:o,postAggregationMethod:r,postGroupBy:i,postGroupByLabel:c,groupingMethod:l,groupingTime:d,chartType:h,chartLibrary:u,selectedDimensions:p,selectedLabels:m,selectedNodes:g,selectedInstances:f,sparkline:b,selectedLegendDimensions:y,showingInfo:v,dimensionsSortBy:_,instancesSortBy:w,nodesSortBy:k,groupBySortBy:T,labelsSortBy:S,dimensionsSort:M,nodesExpanded:x,groupByExpanded:C,labelsExpanded:P,expanded:q,staticZones:I,overlays:B,title:L,description:A,showPostAggregations:E}}},64125:(e,t,n)=>{n.d(t,{A:()=>M});var s=n(58168),a=(n(41393),n(81454),n(62953),n(96540)),o=n(10058),r=n(18202),i=n(87659),c=n(2386),l=n(6504),d=n(22332),h=n(18925),u=n(40933),p=n(44644),m=(n(3064),n(98992),n(72577),n(92155));const g={room:"space_new",space:"spaces_v2",personal:"user"},f=[{icon:g.personal,value:"personal",label:"Personal"},{icon:g.room,value:"room",label:"Room"},{icon:g.space,value:"space",label:"Space"}],b=(0,m.A)(o.Button),y=e=>{let{onSubmit:t,onClose:n}=e;const[s,r]=(0,a.useState)(""),[i,c]=(0,a.useState)("personal");return a.createElement(o.Modal,{onClickOutside:n,onEsc:n},a.createElement(o.ModalContent,{background:"dropdown"},a.createElement(o.ModalHeader,null,"Create a new settings snapshot",a.createElement(o.ModalCloseButton,{testId:"close-button",onClose:n})),a.createElement(o.ModalBody,null,a.createElement(o.Flex,{column:!0,width:80,gap:3},a.createElement(o.TextInput,{"data-testid":"name",label:"Name",onChange:e=>{let{target:t}=e;return r(t.value)},value:s}),a.createElement(o.Flex,{column:!0,gap:1},a.createElement(o.TextSmall,{strong:!0},"Scope"),a.createElement(o.Select,{options:f,value:f.find((e=>e.value===i)),onChange:e=>{let{value:t}=e;return c(t)},styles:{minWidth:"80px"}})))),a.createElement(o.ModalFooter,null,a.createElement(b,{disabled:""===s.trim(),label:"Create",onClick:()=>t({name:s,scope:i}),"data-testid":"btn-create",payload:{description:"Modal - Create Settings"}}))))},v={color:"textLite",margin:[0,1,0,0],width:"14px",height:"14px"},_=e=>{let{openForm:t,close:n}=e;return a.createElement(o.Flex,{padding:[2,1],border:{side:"top"},justifyContent:"center"},a.createElement(o.Button,{small:!0,icon:"save",onClick:()=>{t(),n()},"data-ga":"user-settings::click-create",title:"Create a new setting with your changes"},"Add new setting"))},w=e=>{let{id:t,close:n}=e;const s=(0,d.useChart)(),i=(0,h.xS)(t,{onSuccess:n});return a.createElement(o.IconButton,{icon:"save",iconColor:"textLite",onClick:e=>{e.stopPropagation(),i({value:(0,r.A)(s.getAttributes())})},"data-ga":"user-settings::click-update",neutral:!0,padding:[0],title:"Update this setting with your changes"})},k=e=>{let{id:t,close:n}=e;const s=(0,h.z2)(t,{onSuccess:n});return a.createElement(o.IconButton,{icon:"trashcan",iconColor:"textLite",onClick:e=>{e.stopPropagation(),s()},"data-ga":"user-settings::click-delete",neutral:!0,padding:[0],title:"Delete this setting"})},T=e=>{let{item:{value:t,label:n,icon:r,disabled:i,onClick:c,...l},value:d,onItemClick:h,index:u,style:p,close:m,...g}=e;const f=d===t;return a.createElement(o.MenuItemContainer,(0,s.A)({"data-index":u,"aria-selected":f,disabled:i,selected:f,onClick:e=>{c&&c(e),h(t)}},l,g,{style:p,alignItems:"center",justifyContent:"between",padding:[1],overflow:"hidden"}),a.createElement(o.Flex,{alignItems:"center"},r,a.createElement(o.TextSmall,{whiteSpace:"normal",wordBreak:"break-word"},n)),a.createElement(o.Flex,{alignItems:"center",gap:.5},a.createElement(w,{id:t,close:m}),a.createElement(k,{id:t,close:m})))},S=e=>{let{disabled:t}=e;const n=(0,d.useChart)(),m=(0,u._)({params:{type:["chart"],entity:n.getAttribute("contextScope")}}),[f,b]=(0,p.WY)({type:"chart",entity:n.getAttribute("contextScope")[0]}),w=(0,a.useCallback)((e=>(f===e&&n.resetPristine(),b(e))),[n,f,b]),k=((e,t)=>(0,a.useMemo)((()=>t.map((t=>({value:t.id,label:t.name,icon:a.createElement(o.Icon,(0,s.A)({name:g[t.scope]||g.personal},v)),"data-track":e.track("setting-".concat(t.scope))})))),[e,t]))(n,m),[S,,M,x]=(0,i.A)(),C=(0,h.yK)({onSuccess:()=>{x(),close()}});return a.createElement(a.Fragment,null,a.createElement(o.Menu,{value:f,items:k,dropProps:{align:{top:"bottom",right:"right"},"data-toolbox":n.getId()},dropdownProps:{width:"200px"},onChange:w,"data-track":n.track("user-settings"),Item:T,Footer:e=>a.createElement(_,(0,s.A)({},e,{openForm:M}))},a.createElement(l.Button,{icon:a.createElement(l.default,{svg:c.default,size:"16px"}),title:"User settings",disabled:t,"data-testid":"chartHeaderToolbox-addSettings"})),S&&a.createElement(y,{onSubmit:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return C({type:"chart",entity:n.getId(),path:"/",...e,value:(0,r.A)(n.getAttributes())})},onClose:x}))},M=(0,a.memo)(S)},83465:(e,t,n)=>{n.d(t,{Oq:()=>a,Q:()=>o,bP:()=>r,ml:()=>s});n(25440);const s=(e,t)=>e.on("sizeChanged",((e,n,s)=>{if(e.getParent()!==t)return;const a=e.getAttribute("id"),o=t.getAttribute("host"),r="chart_height.".concat(o,"/").concat(a);localStorage.setItem(r,n);const i="chart_width.".concat(o,"/").concat(a);localStorage.setItem(i,s)})),a=(e,t,n)=>{const s=e.getAttribute("host"),a="chart_height.".concat(s,"/").concat(t),o=localStorage.getItem(a);return o?/px/.test(o)?parseInt(o.replace("px",""),10):parseInt(o,10):n},o=e=>{null!==e&&void 0!==e&&e.id&&localStorage.setItem("chart_layout/".concat(e.id),JSON.stringify(e))},r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s=localStorage.getItem("chart_layout/".concat(e));try{let e=JSON.parse(s);return e?(e=(e=>{let{i:t,id:n=t,x:s,left:a=s,y:o,top:r=o,w:i,width:c=i,h:l,height:d=l}=e;return{id:n,width:c,height:d,left:a,top:r}})(e),{...n,...t,...e}):{...n,...t}}catch(a){return{...n,...t}}}},75793:(e,t,n)=>{n.d(t,{A:()=>c});var s=n(58168),a=(n(62953),n(96540)),o=n(10058),r=n(80158),i=n(29217);const c=e=>{let{text:t,TextComponent:n=o.Text,...c}=e;const[l,d]=(0,a.useState)(""),[h,u]=(0,a.useState)();return(0,a.useEffect)((()=>{if(!h)return;const e=h.offsetWidth;let n=0;for(;h.scrollWidth>e;)h.textContent=(0,r.P3)(h.textContent,n),n+=1;h.textContent!==t&&d(t)}),[t,h]),a.createElement(i.A,{content:l?t:"",align:"bottom",isBasic:!0},a.createElement(n,(0,s.A)({truncate:!0,ref:u},c),t))}},98496:(e,t,n)=>{n.d(t,{A:()=>u});var s=n(58168),a=n(96540),o=n(10058),r=n(12897),i=n.n(r),c=n(55042),l=n.n(c),d=new(i())({id:"partialFailureSvg",use:"partialFailureSvg-usage",viewBox:"0 0 348 348",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 348 348" id="partialFailureSvg"><path fill="#CCDDE8" d="M174 348c96.098 0 174-77.902 174-174C348 77.903 270.098 0 174 0 77.903 0 0 77.903 0 174c0 96.098 77.903 174 174 174" opacity=".3" /><path fill="#89B0C9" d="M174 290c73.178 0 132.5-1.119 132.5-2.5S247.178 285 174 285s-132.5 1.119-132.5 2.5S100.822 290 174 290" opacity=".3" /><path fill="#485D6B" d="M267 53H81v142h186z" /><path fill="#849FB2" d="M263 57H85v134h178z" /><path fill="#0A2437" d="M267 53h-96v142h96z" opacity=".1" /><path fill="#E6E7E8" d="M307.6 115h-267v67h267z" /><path fill="#485D6B" d="M169.619 173.99v-51h-83v51z" /><path fill="#33424D" d="M167.619 171.99v-47h-79v47z" /><path fill="#0A2437" d="M169.611 173.997v-51h-41.6v51z" opacity=".1" /><path fill="#D3D5D6" d="M307.6 182h-267v13h267z" /><path fill="#697784" d="M288.6 195h-229v48h229z" /><path fill="#0A2437" d="M288.6 195h-229v22h229z" opacity=".15" /><path fill="#E6E7E8" d="M59.6 195h-10v92h10z" /><path fill="#0A2437" d="M59.6 195h-10v10h10z" opacity=".15" /><path fill="#0A2437" d="M59.6 195h-5v92h5z" opacity=".05" /><path fill="#E6E7E8" d="M298.6 195h-10v92h10z" /><path fill="#0A2437" d="M298.6 195h-10v10h10z" opacity=".15" /><path fill="#0A2437" d="M298.6 195h-5v92h5z" opacity=".05" /><path fill="#485D6B" d="M261.619 173.99v-51h-83v51z" /><path fill="#33424D" d="M259.619 171.99v-47h-79v47z" /><path fill="#0A2437" d="M261.611 173.997v-51h-41.6v51z" opacity=".1" /><path fill="#93A6B9" d="M55.6 127v20c0 .5-.4 1-1 1h-5c-.5 0-1-.4-1-1v-20c0-.5.4-1 1-1h5c.6 0 1 .4 1 1" /><path fill="#677F8E" d="M50.6 143.5v-13c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v13c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5" /><path fill="#00AB44" d="M56.6 132.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3" /><path fill="#0A2437" d="M56.6 136.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3" opacity=".1" /><path fill="#0A2437" d="M56.6 132.6v1c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1c0 .1 0 .3.1.4.1.5.5.8.9.9.1 0 .3.1.4.1h6.2c.1 0 .3 0 .4-.1.5-.1.8-.5.9-.9.1-.1.1-.3.1-.4" opacity=".05" /><path fill="#24B75E" d="M56.6 132.4v1c0-.1 0-.3-.1-.4-.1-.5-.5-.8-.9-.9-.1 0-.3-.1-.4-.1H49c-.1 0-.3 0-.4.1-.5.1-.8.5-.9.9 0 .1-.1.3-.1.4v-1c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3" /><path fill="#0A2437" d="M56.6 132.4v1.2c0 .6-.4 1.2-1 1.3V147c0 .5-.4 1-1 1h-2v-22h2c.5 0 1 .4 1 1v4.1c.6.1 1 .7 1 1.3" opacity=".1" /><path fill="#93A6B9" d="M66.6 134v13c0 .5-.4 1-1 1h-5c-.5 0-1-.4-1-1v-20c0-.5.4-1 1-1h5.1c.6.1.9 1.2.9 8" /><path fill="#677F8E" d="M61.6 143.5v-13c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v13c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5" /><path fill="#00AB44" d="M67.6 139.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3" /><path fill="#0A2437" d="M67.6 143.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3" opacity=".1" /><path fill="#0A2437" d="M67.6 139.6v1c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1c0 .1 0 .3.1.4.1.5.5.8.9.9.1 0 .3.1.4.1h6.2c.1 0 .3 0 .4-.1.5-.1.8-.5.9-.9.1-.1.1-.3.1-.4" opacity=".05" /><path fill="#24B75E" d="M67.6 139.4v1c0-.1 0-.3-.1-.4-.1-.5-.5-.8-.9-.9-.1 0-.3-.1-.4-.1H60c-.1 0-.3 0-.4.1-.5.1-.8.5-.9.9 0 .1-.1.3-.1.4v-1c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3" /><path fill="#0A2437" d="M67.6 139.4v1.2c0 .6-.4 1.2-1 1.3v5.1c0 .5-.4 1-1 1h-2v-22h2.1c.5.1.8.5.8 1v11.1c.7.1 1.1.7 1.1 1.3" opacity=".1" /><path fill="#677F8E" d="M78.6 139.9v7.2c0 .5-.4.9-.9.9h-7.2c-.5 0-.9-.4-.9-.9v-7.2c0-.5.4-.9.9-.9h7.2c.5 0 .9.4.9.9" /><path fill="#485D6B" d="M74.1 147a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7" /><path fill="#FF4136" d="M74.1 146a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5" /><path fill="#0A2437" d="M78.6 139.9v7.2c0 .5-.4.9-.9.9h-3.1v-9h3.1c.5 0 .9.4.9.9" opacity=".1" /><path fill="#677F8E" d="M78.6 126.9v6.1c0 .5-.4.9-.9.9h-7.1c-.5 0-.9-.4-.9-.9v-6.1c0-.5.4-.9.9-.9h7.1c.5 0 .9.4.9.9" /><path fill="#00AB44" d="M71.6 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2" /><path fill="#FF4136" d="M74.1 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2" /><path fill="#00AB44" d="M76.6 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2" /><path fill="#0A2437" d="M78.6 126.9v6.1c0 .5-.4.9-.9.9h-3.1v-8h3.1c.5.1.9.5.9 1" opacity=".1" /><path fill="#485D6B" d="M78.6 156.6v11.8c0 .9-.7 1.6-1.6 1.6H50.2c-.9 0-1.6-.7-1.6-1.6v-11.8c0-.9.7-1.6 1.6-1.6H77c.9 0 1.6.7 1.6 1.6" /><path fill="#80A4BF" d="M54.6 166h-4v2h4zM57.6 166h-2v2h2zM68.6 166h-10v2h10zM71.6 166h-2v2h2zM76.6 166h-4v2h4zM52.6 163h-2v2h2zM55.6 163h-2v2h2zM58.6 163h-2v2h2zM61.6 163h-2v2h2zM64.6 163h-2v2h2zM67.6 163h-2v2h2zM70.6 163h-2v2h2zM73.6 163h-2v2h2zM76.6 163h-2v2h2zM53.6 160h-3v2h3zM56.6 160h-2v2h2zM59.6 160h-2v2h2zM62.6 160h-2v2h2zM65.6 160h-2v2h2zM68.6 160h-2v2h2zM71.6 160h-2v2h2zM76.6 160h-4v2h4zM52.6 157h-2v2h2zM55.6 157h-2v2h2zM58.6 157h-2v2h2zM61.6 157h-2v2h2zM64.6 157h-2v2h2zM67.6 157h-2v2h2zM70.6 157h-2v2h2zM73.6 157h-2v2h2zM76.6 157h-2v2h2z" /><path fill="#0A2437" d="M78.6 156.6v11.8c0 .9-.7 1.6-1.6 1.6H63.6v-15H77c.9 0 1.6.7 1.6 1.6" opacity=".1" /><path fill="#485D6B" d="M269.6 142.1v-16.2c0-1.6 1.3-2.9 2.9-2.9h24.2c1.6 0 2.9 1.3 2.9 2.9v16.2c0 1.6-1.3 2.9-2.9 2.9h-24.2c-1.6 0-2.9-1.3-2.9-2.9" /><path fill="#485D6B" d="M286.6 136h-17v6.1c0 1.6 1.3 2.9 2.9 2.9h14.1z" /><path fill="#93A6B9" d="M277.6 139a5 5 0 1 0-.001-10.001A5 5 0 0 0 277.6 139" /><path fill="#E6E7E8" d="m273.7 138.7-1.1-1.2c-.4-.5-.4-1.2.1-1.6l7.8-6c.4-.3 1.1-.3 1.5.1.4.4.4 1.1 0 1.5l-6.7 7.2c-.4.4-1.1.4-1.6 0" /><path fill="#485D6B" d="M299.6 136h-16v9h13.1c1.6 0 2.9-1.3 2.9-2.9z" /><path fill="#93A6B9" d="M291.6 139a5 5 0 1 0-.001-10.001A5 5 0 0 0 291.6 139" /><path fill="#E6E7E8" d="m287.7 138.7-1.1-1.2c-.4-.5-.4-1.2.1-1.6l7.8-6c.4-.3 1.1-.3 1.5.1.4.4.4 1.1 0 1.5l-6.7 7.2c-.4.4-1.1.4-1.6 0" /><path fill="#5AB948" d="M272.6 127a1 1 0 1 0 0-2 1 1 0 0 0 0 2M287.6 127a1 1 0 1 0 0-2 1 1 0 0 0 0 2" /><path fill="#0A2437" d="M284.6 145v-22h12.1c1.6 0 2.9 1.3 2.9 2.9v16.2c0 1.6-1.3 2.9-2.9 2.9z" opacity=".1" /><path fill="#485D6B" d="M299.619 173.99v-22h-30v22z" /><path fill="#385062" d="M275.6 157h-2v15h2z" /><path fill="#E6E7E8" d="M276.6 163h-4v3h4z" /><path fill="#0A2437" d="M276.6 166h-4v3h4zM276.6 165h-4v1h4z" opacity=".1" /><path fill="#5B788C" d="M278.6 171h-2v1h2zM278.6 169h-2v1h2zM278.6 167h-2v1h2zM278.6 165h-2v1h2zM278.6 163h-2v1h2zM278.6 161h-2v1h2zM278.6 159h-2v1h2zM278.6 157h-2v1h2z" /><path fill="#385062" d="M284.6 157h-2v15h2z" /><path fill="#E6E7E8" d="M285.6 159h-4v3h4z" /><path fill="#0A2437" d="M285.6 162h-4v3h4zM285.6 161h-4v1h4z" opacity=".1" /><path fill="#5B788C" d="M287.6 171h-2v1h2zM287.6 169h-2v1h2zM287.6 167h-2v1h2zM287.6 165h-2v1h2zM287.6 163h-2v1h2zM287.6 161h-2v1h2zM287.6 159h-2v1h2zM287.6 157h-2v1h2z" /><path fill="#385062" d="M293.6 157h-2v15h2z" /><path fill="#E6E7E8" d="M294.6 167h-4v3h4z" /><path fill="#0A2437" d="M294.6 170h-4v3h4zM294.6 169h-4v1h4z" opacity=".1" /><path fill="#5B788C" d="M296.6 171h-2v1h2zM296.6 169h-2v1h2zM296.6 167h-2v1h2zM296.6 165h-2v1h2zM296.6 163h-2v1h2zM296.6 161h-2v1h2zM296.6 159h-2v1h2zM296.6 157h-2v1h2z" /><path fill="#5AB948" d="M274.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2M283.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2" /><path fill="#FF4136" d="M292.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2" /><path fill="#0A2437" d="M299.619 173.99v-22h-16v22z" opacity=".1" /><path fill="#D3D5D6" d="M64.6 73h-2v42h2z" /><path fill="#D3D5D6" d="M74.6 74h-22v2h22z" /><path fill="#0A2437" d="M64.6 79v23.5l-1-.5-1 .5V79z" opacity=".15" /><path fill="#C7C8C9" d="M74.6 75h-22v1h22z" /><path fill="#00AB44" d="M73.6 76v28l-10-5-7.5 3.7-.9.5-1.6.8V76z" /><path fill="#fff" d="M64.6 92h-2l-4-8h6c2.2 0 4 1.8 4 4s-1.8 4-4 4" /><path fill="#D3D5D6" d="M71.6 112h-16v3h16z" /><path fill="#C7C8C9" d="M71.6 114h-16v1h16z" /><path fill="#0A2437" d="M63.6 115V73h1v1h10v2h-1v28l-9-4.5V112h7v3z" opacity=".15" /><path fill="#DADCDD" d="m136.7 206.6-12.6-10.1c-6-4.8-9.4-11.9-9.4-19.6V168h4v8.9c0 6.5 2.9 12.5 7.9 16.5l12.6 10.1z" /><path fill="#0A2437" d="m137.7 202.3-1 1.3-12.6-10.1c-6-4.8-9.4-11.9-9.4-19.6v3c0 7.7 3.4 14.8 9.4 19.6l12.6 10.1 2.5-3.1z" opacity=".05" /><path fill="#00AB44" d="M123.1 171h-13c-1.4 0-2.5-1.1-2.5-2.5v-1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5v1c0 1.4-1.1 2.5-2.5 2.5" /><path fill="#0A2437" d="M125.1 169h-17.4c.2 1.2 1.2 2 2.4 2h13c1.2 0 2.2-.9 2.4-2z" opacity=".2" /><path fill="#36BD6B" d="M123.1 165h-13c-1.4 0-2.5 1.1-2.5 2.5v1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5v-1c0-1.4-1.1-2.5-2.5-2.5" /><path fill="#DADCDD" d="M226.6 168v8.9c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7-1 .8-1.9 1.6-2.5-3.1 1.5-1.2 4.1-3.2 7.1-5.6c5-4 7.9-10 7.9-16.5v-9z" /><path fill="#0A2437" d="M226.6 173.9v3c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7-1 .8-1.9 1.6-2.5-3.1 1.5-1.2 1 1.3 3-2.4 9.5-7.6c6.2-4.9 9.6-12 9.6-19.7" opacity=".05" /><path fill="#00AB44" d="M233.6 167.5v1.5c0 .1-.1.2-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-13c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4v-1.5c0-1.4 1.1-2.5 2.5-2.5h13c1.2 0 2.3 1.1 2.3 2.5" /><path fill="#0A2437" d="M233.6 169c0 .2-.1.3-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-13c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4h17.5z" opacity=".2" /><path fill="#36BD6B" d="M233.6 167.5v1c0-1.4-1.1-2.5-2.5-2.5h-13c-1.4 0-2.5 1.1-2.5 2.5v-1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5" /><path fill="#485D6B" d="M174.6 218h-8v15h8zM176.6 235.6V250h-12v-14.4c0-1.4 1.2-2.6 2.6-2.6h6.7c1.5 0 2.7 1.2 2.7 2.6" /><path fill="#506C80" d="M183.6 211v1.6c0 .5 0 .9-.2 1.4 0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6-1.2 1.2-2.8 2-4.6 2H164c-1.8 0-3.5-.8-4.6-2-.2-.2-.4-.4-.5-.6-.1-.1-.2-.2-.2-.4-.2-.2-.3-.5-.4-.8-.1-.1-.1-.2-.1-.4-.1-.1-.1-.3-.1-.4 0-.1-.1-.3-.1-.4-.1-.5-.2-.9-.2-1.4V211z" /><path fill="#0A2437" d="M183.5 214c0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6h-22.5c-.2-.2-.4-.4-.5-.6-.1-.1-.2-.2-.2-.4-.2-.2-.3-.5-.4-.8-.1-.1-.1-.2-.1-.4-.1-.1-.1-.3-.1-.4 0-.1-.1-.3-.1-.4z" opacity=".2" /><path fill="#384A57" d="M187.6 204v6c0 .7-.2 1.3-.5 1.9-.7 1.2-2 2.1-3.5 2.1h-26.1c-1.5 0-2.8-.8-3.5-2.1-.3-.6-.5-1.2-.5-1.9v-6z" /><path fill="#00AB44" d="M207.6 199.3v3.6c0 .5 0 .9-.1 1.4 0 .3-.1.5-.2.8-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-1 0-2 .1-2.9.1H157c-1 0-2 0-2.9-.1-2.1-.1-4.3-.3-6.4-.6-3.1-.4-6.1-1.1-9.2-1.9-2.2-.6-3.9-2.3-4.6-4.4-.1-.2-.1-.5-.2-.8-.1-.4-.1-.9-.1-1.4V199c.1-1.8 1.5-3.2 3.2-3.4l4.2-.5 2.4-.3 17.7-1.9c.8-.1 1.6-.2 2.3-.2a81.93 81.93 0 0 1 14 0c.8.1 1.6.1 2.3.2l16.8 1.8 2.4.3 5.2.6c1.8.2 3.1 1.6 3.2 3.4.3.1.3.2.3.3" /><path fill="#B4BBC4" d="M207.3 205c-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-1 0-2 .1-2.9.1H157c-1 0-2 0-2.9-.1-2.1-.1-4.3-.3-6.4-.6-3.1-.4-6.1-1.1-9.2-1.9-2.2-.6-3.9-2.3-4.6-4.4z" /><path fill="#0A2437" d="M199.1 195.1c-1.5 4-4 7.4-7.2 9.9-1.3 1.1-2.8 2-4.4 2.8-3 1.5-6.4 2.2-9.9 2.2h-15.3c-3.1 0-6.1-.6-8.9-1.8-1.9-.8-3.8-1.9-5.4-3.2-3.1-2.5-5.6-5.9-7.1-9.8l2.4-.3L161 193c.8-.1 1.6-.2 2.3-.2a81.93 81.93 0 0 1 14 0c.8.1 1.6.1 2.3.2l16.8 1.8z" opacity=".2" /><path fill="#DADCDD" d="m170.6 255.5-3.6-.1h-3.5c-2.3 0-4.6.1-6.9.4-4.6.5-9.1 1.5-13.5 3-2.2.7-4.4 1.6-6.5 2.6-2.1 1-4.1 2.1-6.3 3.3l-12.6 7.1-2.1-3.4 12.3-7.8c2-1.3 4.2-2.6 6.4-3.8 2.2-1.2 4.5-2.2 6.9-3.2 4.7-1.9 9.6-3.2 14.6-4 2.5-.4 5-.7 7.6-.8l1.9-.1h1.8l3.6-.1v6.9z" /><path fill="#C6C7C8" d="m170.6 255.5-3.6-.1h-3.5c-2.3 0-4.6.1-6.9.4-4.6.5-9.1 1.5-13.5 3-2.2.7-4.4 1.6-6.5 2.6-2.1 1-4.1 2.1-6.3 3.3l-12.6 7.1-1-1.7 12.5-7.5c4.1-2.5 8.4-4.8 13-6.4 4.5-1.7 9.3-2.8 14.1-3.5 2.4-.3 4.8-.5 7.2-.6 2.4-.1 4.8 0 7.3 0v3.4z" /><path fill="#485D6B" d="M117.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273z" /><path fill="#0A2437" d="M119.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20h2.1c2.2 0 3.9 1.8 3.9 3.9" opacity=".2" /><path fill="#DADCDD" d="M119.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-6.9c0-2.2 1.8-3.9 3.9-3.9h3.1c2.3 0 4 1.8 4 3.9" /><path fill="#0A2437" d="M115.7 267h-2.1v13h4c1.1-.1 2-1.1 2-2.2v-6.9c0-2.1-1.7-3.9-3.9-3.9" opacity=".05" /><path fill="#DADCDD" d="m225.6 268.3-1 1.7-1 1.7-2-1.1-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3.5l-3.6.1v-7.1l3.6.1 1.8.1h2c2.5.1 5.1.4 7.6.8 5 .8 9.9 2.1 14.6 4 2.3.9 4.6 2 6.9 3.2 2.2 1.2 4.4 2.5 6.4 3.8l10.7 6.8z" /><path fill="#C6C7C8" d="m224.6 270-1 1.7-2-1.1-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3.5l-3.6.1V252H178c2.4.1 4.8.3 7.2.6 4.8.7 9.5 1.8 14.1 3.5 4.6 1.6 8.9 3.9 13 6.4l10.2 6.1z" /><path fill="#485D6B" d="M230.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273z" /><path fill="#0A2437" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20h2.1c2.2 0 3.9 1.8 3.9 3.9" opacity=".2" /><path fill="#DADCDD" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-7.2c0-.7.3-1.4.7-2 .4-.6 1-1.1 1.7-1.4.5-.2 1-.3 1.5-.3h3.1c2.3.1 4 1.9 4 4" /><path fill="#0A2437" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-4v-13h2.1c2.2 0 3.9 1.8 3.9 3.9" opacity=".05" /><path fill="#E2E3E4" d="M175.3 252v.2l-.5 3.2L173 267l-.3 2h-4l-.3-1.8-1.9-11.8-.5-3.2v-.2c-.1-1.1.8-2 1.9-2h5.5c1.1 0 1.9.9 1.9 2" /><path fill="#C6C7C8" d="M175.3 252v.2l-.5 3.2L173 267l-.3 2h-2v-19h2.8c1 0 1.8.9 1.8 2" /><path fill="#485D6B" d="M174.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273z" /><path fill="#0A2437" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20H172.9c2.1.1 3.7 1.9 3.7 3.9" opacity=".2" /><path fill="#DADCDD" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-6.9c0-1.8 1.1-3.2 2.7-3.7.4-.1.8-.2 1.2-.2H172.8c2.2.1 3.8 1.9 3.8 3.9" /><path fill="#0A2437" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-4v-13H172.9c2.1.1 3.7 1.9 3.7 3.9" opacity=".05" /><path fill="#435969" d="M210.6 125.7V131.5c-.1 16.1-2.8 32-7.8 47.3l-3.4 10.4c-.6 2-1.6 3.9-2.7 5.6-2.9 4.4-7.3 7.6-12.3 9.2-2.1.6-4.4 1-6.7 1h-15.3c-2.3 0-4.5-.4-6.7-1-5-1.5-9.3-4.7-12.2-9.1-1.2-1.7-2.1-3.6-2.8-5.7l-3.4-10.4c-5-15.3-7.6-31.2-7.8-47.3V125.7c0-3.3 2.4-6 5.6-6.5l11-1.6c8.1-1.2 16.2-1.8 24.4-1.8 7.8 0 15.6.6 23.4 1.8l11 1.6c3.3.5 5.7 3.2 5.7 6.5" /><path fill="#00AB44" d="M210.6 125.7V131.5c-.1-3.2-2.4-5.9-5.6-6.3l-11-1.6c-7.8-1.2-15.6-1.7-23.4-1.8-8.1 0-16.3.5-24.4 1.8l-11 1.6c-3.2.5-5.5 3.1-5.6 6.3V125.7c0-3.3 2.4-6 5.6-6.5l11-1.6c8.1-1.2 16.2-1.8 24.4-1.8 7.8 0 15.6.6 23.4 1.8l11 1.6c3.2.5 5.6 3.2 5.6 6.5" /><path fill="#384A57" d="M177.6 167h-14c-1.7 0-3-1.3-3-3s1.3-3 3-3h14c1.7 0 3 1.3 3 3s-1.3 3-3 3" /><path fill="#DADCDD" d="M175.2 164H166c-1.3 0-2.4 1.1-2.4 2.4v47.2c0 1.3 1.1 2.4 2.4 2.4h9.2c1.3 0 2.4-1.1 2.4-2.4v-47.2c0-1.3-1.1-2.4-2.4-2.4" /><path fill="#D0D1D3" d="M175.2 213H166c-1.3 0-2.4-1.1-2.4-2.4v3c0 1.3 1.1 2.4 2.4 2.4h9.2c1.3 0 2.4-1.1 2.4-2.4v-3c0 1.3-1.1 2.4-2.4 2.4" /><path fill="#E6E7E8" d="M175.2 164H166c-1.3 0-2.4 1.1-2.4 2.4v3c0-1.3 1.1-2.4 2.4-2.4h9.2c1.3 0 2.4 1.1 2.4 2.4v-3c0-1.3-1.1-2.4-2.4-2.4" /><path fill="#0A2437" d="M233.6 167.5v1.5c0 .1-.1.2-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-4.5v5.9c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7c0 .3-.1.5-.2.8-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-.7 1.2-2 2.1-3.5 2.1h-.2c0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6-1.2 1.2-2.8 2-4.6 2h-2.6v14h-.8c1.4 0 2.6 1.2 2.6 2.6v13h1.4c2.5.1 5.1.4 7.6.8 5 .8 9.9 2.1 14.6 4 2.3.9 4.6 2 6.9 3.2 2.2 1.2 4.4 2.5 6.4 3.8l10.7 6.8c.5-.2 1-.3 1.5-.3h3.1c2.2 0 3.9 1.8 3.9 3.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V280c-1.1-.1-2-1.1-2-2.2v-7.2l-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3l-1.8 11.6c2.1.1 3.7 1.8 3.7 3.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5V115.8c7.8 0 15.6.6 23.4 1.8l11 1.6c3.2.5 5.6 3.2 5.6 6.5V131.5c-.1 16.1-2.8 32-7.8 47.3l-3.4 10.4c-.6 2-1.6 3.9-2.7 5.6l2.4.3 5.2.6c1.8.2 3.1 1.6 3.2 3.4l7.1-5.6c5-4 7.9-10 7.9-16.5v-6h-4.5c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4v-1.5c0-1.4 1.1-2.5 2.5-2.5h13c1.1 0 2.2 1.1 2.2 2.5" opacity=".15" /></symbol>'});l().add(d);const h=d,u=e=>{let{title:t,children:n,...r}=e;return a.createElement(o.Flex,{alignItems:"center",justifyContent:"center",flex:!0,gap:8},a.createElement("svg",{id:"partial_failure",width:"288px",height:"234px"},a.createElement("use",{xlinkHref:"#".concat(h.id)})),a.createElement(o.Flex,(0,s.A)({column:!0,width:{max:125},gap:2},r),a.createElement(o.H3,null,t),n))}},9683:(e,t,n)=>{n.d(t,{A:()=>o});var s=n(96540),a=n(10058);const o=e=>{let{width:t=443,height:n=249,videoId:o,...r}=e;return s.createElement(a.Flex,r,s.createElement(a.Box,{className:"video-responsive"},s.createElement("iframe",{width:t,height:n,src:"https://www.youtube.com/embed/".concat(o),frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,title:"Embedded youtube"})))}},32089:(e,t,n)=>{n.d(t,{A:()=>r});var s=n(58168),a=n(96540),o=n(10058);const r=e=>{let{vertical:t,color:n="borderSecondary",...r}=e;return a.createElement(o.Box,(0,s.A)({as:"hr",height:t?"100%":"1px"},t?{}:{width:"100%"},{sx:{borderWidth:t?"0px 0px 0px 1px":"1px 0px 0px 0px",borderColor:n,borderStyle:"solid"}},r))}},25193:(e,t,n)=>{n.r(t),n.d(t,{SettingsContainer:()=>ur,default:()=>mr});n(62953),n(3296),n(48408);var s=n(96540),a=n(39225),o=n(47767),r=n(97054),i=n(56820),c=n(69765),l=n(47444),d=n(63129);var h=n(87860),u=(n(9920),n(41393),n(14905),n(98992),n(3949),n(81454),n(8872),n(99090)),p=n(64118),m=n(45860),g=n(11988),f=n(51074),b=n(94355);var y=n(29662),v=n(3914),_=n(87633),w=n(66294),k=n(56359),T=n(14994),S=n(46741);var M=n(28738),x=n(68831),C=n(58168),P=n(10058),q=n(38257),I=n(92138),B=n(54621),L=n(11128);const A=e=>{let{error:t,testPrefix:n,onClick:s,flavour:a,value:o}=e;return{"data-testid":n?"".concat(n,"-").concat(a):a,flavour:a,...s&&{onClick:s},text:t?"-":"".concat(o)}},E=e=>{let{critical:t,warning:n,error:a,testPrefix:o,...r}=e;const i=A({error:a,testPrefix:o,flavour:t?"error":"disabledError",value:t}),c=A({error:a,testPrefix:o,flavour:n?"warning":"disabledWarning",value:n});return s.createElement(P.Flex,r,s.createElement(P.MasterCard,{"data-testid":"alertsMastercard",pillLeft:i,pillRight:c,size:"small"}))},D=e=>{let{id:t,testPrefix:n,...a}=e;const o=(0,g.Xt)(t),{critical:r,warning:i}=(0,p.AO)(o);return s.createElement(E,(0,C.A)({"data-testid":"alerts",testPrefix:n,critical:r,warning:i},a))},N=e=>{let{critical:t,warning:n,error:a}=e;return s.createElement(D,{critical:t,"data-testid":"tabAlerts",error:a,testPrefix:"tabAlerts-alert",warning:n,margin:[0,0,0,1]})},R=e=>{let{nodeId:t}=e;const n=(0,g.Xt)(t),{critical:a,warning:o}=(0,p.AO)(n);return s.createElement(N,{critical:a,warning:o})},U=()=>{const e=(0,L.w7)({emptyIfAll:!1}),t=(0,g.YS)(e),n=(0,f.s)("error"),{critical:a,warning:o}=(0,p.AO)(t);return s.createElement(N,{critical:a,warning:o,error:n})},F={warning:"warning",critical:"error"},z=e=>{let{alertId:t}=e;const n=(0,p.JL)(t,"status");return F[n]?s.createElement(P.Flex,{alignSelf:"center",margin:[0,0,0,2],round:1,background:F[n],width:2,height:2}):null};n(17333),n(54520);var O=n(23630);const H=()=>{const e=(0,f.s)("error"),t=(0,f.s)("updatedAt");return s.createElement(O.A,{error:e,updatedAt:t,text:"Alerts and Notifications"})};var V=n(37618);const Q=()=>{const e=(0,c.r9)(),t=(0,S.JT)("dashboard:ReadAll"),n=(e=>(0,s.useMemo)((()=>({home:{id:"home",title:"Home",icon:"room_home",path:"".concat(e,"/home"),dataGa:"view-picker::click-view-home::global-view",testId:"viewPicker-home",tooltip:"A dashboard metrics from all your nodes"},overview:{id:"overview",title:"Metrics",icon:"room_overview",path:"".concat(e,"/overview"),dataGa:"view-picker::click-view-overview::global-view",testId:"viewPicker-overview",tooltip:"System, containers, VMs and application metrics"},nodes:{id:"nodes",title:"Nodes",icon:"nodes_hollow",path:"".concat(e,"/nodes"),dataGa:"view-picker::click-view-nodes::global-view",testId:"viewPicker-nodes",tooltip:"An index of your nodes with alert status and key metrics"},...!window.envSettings.isAgent&&!window.envSettings.onprem&&{k8s:{id:"k8s",title:"K8s",icon:"serviceKubernetes",path:"".concat(e,"/kubernetes"),dataGa:"view-picker::click-view-kubernetes::global-view",testId:"viewPicker-kubernetes",tooltip:"Kubernetes clusters and container metrics"}},top:{id:"top",title:"Top",icon:"top",path:"".concat(e,"/top"),dataGa:"view-picker::click-view-fn::global-overview",testId:"viewPicker-fn",tooltip:"Top processes, containers, VMs, services, queries and system components"},logs:{id:"logs",title:"Logs",icon:"logs",path:"".concat(e,"/logs"),dataGa:"view-picker::click-view-logs::global-overview",testId:"viewPicker-logs",tooltip:"System and application logs"},dashboards:{id:"dashboards",title:"Dashboards",icon:"dashboard",path:"".concat(e,"/dashboards"),dataGa:"view-picker::click-view-dashboard::global-view",testId:"viewPicker-customDashboards",tooltip:"Your custom dashboards",droppable:!0,droppableProps:{dropArea:!0,dropinDashboards:!0}},dashboard:{id:"dashboard",title:"Dashboard",icon:"dashboard",path:"".concat(e,"/dashboard"),dataGa:"view-picker::click-view-dashboard::global-view",testId:"viewPicker-customDashboard",tooltip:"Your local custom dashboard",droppable:!0,droppableProps:{dropArea:!0,dashboardId:V.LA}},alerts:{id:"alerts",title:"Alerts",icon:"alarm",path:"".concat(e,"/alerts"),dataGa:"view-picker::click-view-alerts::global-view",testId:"viewPicker-alerts",tooltip:s.createElement(H,null),children:s.createElement(U,null)},ar:{id:"ar",title:"AR%",icon:"anomaliesLens",path:"".concat(e,"/anomalies"),dataGa:"view-picker::click-view-anomalies::global-view",testId:"viewPicker-anomalies",tooltip:"Anomaly Advisor - ML powered anomaly detection"},events:{id:"events",title:"Events",icon:"feed",path:"".concat(e,"/events"),dataGa:"view-picker::click-view-feed::mn-overview",testId:"viewPicker-feed",tooltip:"Activity feed"}})),[e]))(e),a=(0,v.dg)();var o,r;return[(0,s.useMemo)((()=>[!a&&n.home,n.nodes,n.overview,n.top,n.logs,!window.envSettings.isAgent&&!window.envSettings.onprem&&n.k8s,!a&&t&&n.dashboards,a&&t&&n.dashboard,n.alerts,n.ar,n.events].filter(Boolean)),[e,a]),(o=e,r=!a,(0,s.useMemo)((()=>({["".concat(o,"/overview")]:!0,["".concat(o,"/home")]:!0,["".concat(o,"/nodes")]:!0,["".concat(o,"/dashboards")]:!0,["".concat(o,"/dashboard")]:!0,["".concat(o,"/alerts")]:!0,["".concat(o,"/anomalies")]:!0,["".concat(o,"/top")]:!0,["".concat(o,"/logs")]:!0,["".concat(o,"/events")]:!0})),[o,r]))]};var j=n(8711),G=n(43375),W=n(47731),K=n(29217);const Z=(0,j.keyframes)(["0%{transform:translateY(-5px) scale(1);}25%{transform:translateY(-10px) scale(0.7);}50%{transform:translateY(-5px) scale(1);}75%{transform:translateY(0) scale(1.3);}100%{transform:translateY(-5px) scale(1);}"]),Y=(0,j.default)(P.Icon).attrs({name:"long_arrow_up",color:"successText"}).withConfig({displayName:"tabLink__DropHereIcon",componentId:"sc-1h4dha1-0"})(["animation:"," 1s ease-in infinite;"],Z),J=e=>e?"text":"textDescription",X=(0,s.forwardRef)(((e,t)=>{let{id:n,to:a,params:r,exact:i,icon:c,title:l,fixed:d,dataGa:h,testId:u,children:p,type:m,tooltip:g,showBorderLeft:f,droppable:b,droppableProps:y={},...v}=e;const{setNodeRef:_,active:w}=(0,G.zM)({id:"droppable-tab-".concat(n),disabled:!b,data:y}),k=(0,o.RQ)({end:i,path:a}),T=(0,o.Zp)(),S=(0,W.J)(),M=!!k,x="nodes"!==m||M,q=(0,s.useCallback)((()=>{if(M)return;const e="".concat(a).concat(r?"/".concat(r):"");T(e)}),[a,M,r]),I=b&&w&&w.data.current.dashboardable,B=(0,s.useRef)();return s.createElement(P.NavigationTab,(0,C.A)({ref:(0,P.mergeRefs)(_,t,B),fixed:d,active:M,showBorderLeft:f,icon:s.createElement(P.Icon,{name:c,size:"small"}),onActivate:q,"data-ga":h,"data-testid":u,"aria-selected":M,tooltip:g||l},I&&{rootProps:{background:"successSemi",cursor:"alias"}},v),!S&&!!l&&s.createElement(K.A,{content:g||l,align:g?"bottom":"top",isBasic:!0},s.createElement(P.TextSmall,{alignSelf:"center",color:J(M),whiteSpace:"nowrap"},l)),B.current&&I&&s.createElement(P.Drop,{target:B.current,align:{top:"bottom"},stretch:!1,hideShadow:!0,zIndex:1},s.createElement(Y,null)),x&&p)})),$=X,ee=()=>{const{active:e}=(0,G.fF)(),t=(0,S.JT)("dashboard:Create"),n=(0,v.dg)();return t&&e&&!n?s.createElement($,{to:"",id:"plus",icon:"plus",fixed:!0,droppable:!0,droppableProps:{dropArea:!0,dashboardId:"new"},testid:"roomDropdownMenu-roomOptions",disabled:!t||n}):null},te=(0,s.forwardRef)(((e,t)=>{let{title:n,path:a,children:o,index:r,...i}=e;return s.createElement($,(0,C.A)({ref:t,showBorderLeft:0===r,exact:!0,to:a,title:n,"data-testid":"navigation-dynamicTab-".concat(n),index:r},i),o)})),ne=e=>{let{staticPaths:t}=e;const[n,a,r]=(e=>{const t=(0,o.Zp)(),n=(0,o.RQ)("/spaces/:spaceSlug/rooms/:roomSlug/:type/*"),a=(0,B._F)(),r=(0,B.xK)(),i=(0,B.NU)(),c=n?n.pathnameBase:"/spaces",{pathname:l}=(0,o.zy)(),d=(0,I.A)(e[l]&&l,!0),h=(0,s.useCallback)(((e,n)=>{if(!n)return r(e);const s=a[e-1],o=a[e+1],i=(n,s)=>{const a="".concat(n).concat(s?"/".concat(s):"");t(a),r(e)};return d?i(d):s?i(s.path,s.params):o?i(o.path,o.params):i(c)}),[a,r,c,d]);return[(0,s.useMemo)((()=>a.map((e=>({...e,children:e.id&&"nodes"===e.type?s.createElement(R,{nodeId:e.id}):"alerts"===e.type?s.createElement(z,{alertId:e.id}):null})))),[a]),(e,t)=>{-1===e&&-1===t||i({sourceIndex:e,destinationIndex:t})},h]})(t),i=(0,q.A)("horizontal");return s.createElement(P.BaseDraggableTabs,{onDragEnd:a,onTabClose:r,items:n,Item:te,ref:i})},se=(0,s.memo)((()=>{const[e,t]=Q();return s.createElement(P.NavigationTabs,null,e.map(((e,t)=>{let{id:n,icon:a,title:o,path:r,...i}=e;return s.createElement($,(0,C.A)({exact:!0,fixed:!0,to:r,icon:a,title:o,id:n,key:"".concat(n,"-").concat(t)},i))})),s.createElement(P.TabSeparator,null),s.createElement(ne,{staticPaths:t}),s.createElement(ee,null))})),ae=se;var oe=n(67990),re=n(99739),ie=n(63314),ce=n(3705),le=n(83084),de=n(47762),he=n(16579),ue=n(27467),pe=n(99292),me=n(71847),ge=n(87659),fe=n(78062),be=n(38413),ye=n(82265),ve=n(1522);const _e=(0,l.K0)({key:"roomSettings",get:e=>{let{id:t,key:n}=e;return e=>{let{get:s}=e;const a=s((0,ye.A)(t));return n?a[n]:a}},set:e=>{let{id:t,key:n}=e;return(e,s)=>{let{set:a}=e;a((0,ye.A)(t),(e=>n?{...e,[n]:s}:s))}}}),we=(e,t)=>(0,l.vc)(_e({id:e,key:t})),ke=(e,t)=>{const n=we(e,t),s=function(e){let{key:t,shouldPersist:n=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=(0,l.lZ)(_e({id:e,key:t})),a=(0,ve.DH)(e);return(0,l.Zs)((o=>{let{snapshot:r}=o;return async o=>{if(s(o),!n)return;const i=await r.getPromise(_e({id:e}));try{await a({settings:{...i,...t?{[t]:o}:o}})}catch(c){s(t?i[t]:i)}}}),[e,t,a])}(e,{key:t});return[n,s]};var Te=n(15327),Se=n(74618),Me=n(45765),xe=n(18061),Ce=n(21204),Pe=n(69388),qe=n(23931);const Ie=()=>{},Be=e=>{let{roomId:t,id:n,onRemove:a=Ie}=e;const o=(0,c.wz)(t,"name"),r=(0,Ce.e6)(t,n,"title"),i=(0,Ce.gV)(t),[l,,d,h]=(0,ge.A)();return s.createElement(s.Fragment,null,s.createElement(P.Button,{danger:!0,flavour:"hollow",onClick:d,label:"Delete metric","data-testid":"remove-metric"}),l&&s.createElement(P.ConfirmationDialog,{"data-ga":"remove-metric-dialog","data-testid":"removeMetricDialog",handleConfirm:async()=>{await i(n),a()},handleDecline:h,message:s.createElement(s.Fragment,null,"You are about to remove ",s.createElement("strong",null,r)," metric.",s.createElement("br",null),"Are you sure you want to continue?"),title:"Remove metric from ".concat(o)}))},Le=e=>{let{link:t,children:n}=e;return s.createElement(P.Flex,{as:"a",target:"_blank",href:t,gap:1,alignItems:"end"},s.createElement(P.TextNano,{textDecoration:"undeline"},n),s.createElement(P.Icon,{color:"text",name:"question",width:"16px",height:"16px"}))},Ae=e=>{let{title:t,help:n,link:a,disclaimer:o,children:r,...i}=e;return s.createElement(P.Flex,(0,C.A)({gap:1,column:!0},i),s.createElement(P.Flex,{justifyContent:"between",alignItems:"baseline"},s.createElement(P.Text,{as:"label",margin:[0]},t),n&&s.createElement(Le,{link:a},n)),r,o&&s.createElement(P.TextSmall,null,o))};var Ee=n(26655),De=n(78969);const Ne={value:"all",label:"All"},Re=e=>{let{dimensions:t,units:n}=e;return{dimensions:t?[Ne,...t.map((e=>{let{id:t,name:n}=e;return{value:t,label:n}}))]:[Ne],units:n}},Ue=e=>{let{isNew:t}=e;return s.createElement(P.Flex,{as:"span",gap:1},"Manage room",s.createElement(P.TextBig,{color:"textLite"},"/"),s.createElement(P.TextBig,{color:"textLite"},t?"Add":"Edit"," Metric"))},Fe=e=>{let{spaceId:t,roomId:n,id:a,onClose:o,...r}=e;const i="new"===a,c=(0,Ce.uB)(n,a),l=(0,Ce.XH)(n,{shouldPersist:!1}),d=(0,Ce.e6)(n,a),h=(0,s.useRef)(d),{title:u,context:p,dimensions:m=[]}=d,g=()=>{l(a,h.current),o()};(0,s.useEffect)((()=>{i&&c()}),[]);const f=(0,L.w7)({extraKey:"nodesView",merge:!1,scoped:!0}),b=(0,Pe.A)(n,f,{spaceId:t});if(b)throw b;const y=(0,qe.OL)(n),v=(0,s.useMemo)((()=>y.map((e=>({value:e,label:e})))),[y]),_=(0,qe._0)(n),w=(0,s.useMemo)((()=>p&&{value:p,label:p}),[p]),[{dimensions:k,units:T},S]=(0,xe.A)((()=>({enabled:!!p,fetch:()=>((e,t,n)=>Ee.A.get("".concat(De.P8,"/spaces/").concat(e,"/rooms/").concat(t,"/contexts/").concat(encodeURIComponent(n)),{transform:Re}))(t,n,p),initialValue:{dimensions:[],units:""}})),[t,n,p]),M=(0,s.useCallback)((e=>{let{value:t}=e;l(a,"context",t),l(a,"dimensions",[]),l(a,"title",t)}),[a]),x=(0,s.useMemo)((()=>k?1===k.length||m.length===k.length-1||0===m.length?[Ne]:m.map((e=>{let{id:t,name:n}=e;return{value:t,label:n}})):[Ne]),[m,k]),q=(0,s.useCallback)((e=>{const t=e.filter((e=>{let{value:t}=e;return t!==Ne.value})),n=(0===e.length||t.length!==e.length&&0!==m.length||t.length===k.length-1?[]:t).map((e=>{let{value:t,label:n}=e;return{id:t,name:n}}));l(a,"dimensions",n)}),[a,m,k]),I=(0,Ce.tQ)(n),B=(0,s.useCallback)((()=>I({...d,id:a,enableAllDimensions:0===m.length,unit:T}).then(o)),[d]),A=(0,s.useCallback)((e=>{let{target:{value:t}}=e;t.length<=30&&l(a,"title",t)}),[a]),E=!u||!p||S||!_;return s.createElement(Te.GO,(0,C.A)({onClose:g},r),s.createElement(Se.z,{onClose:g,title:s.createElement(Ue,{isNew:i})},s.createElement(P.Button,{label:"Save",onClick:B,disabled:E})),s.createElement(Me.U,null,i?"Add a new metric (column)":"Edit metric"),s.createElement(Te.Yv,null,s.createElement(P.Flex,{gap:6,column:!0},s.createElement(Ae,{title:"Context",help:"What is a context?",link:"https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#context","data-testid":"manageMetrics-context"},s.createElement(P.Select,{options:v,value:w,onChange:M,isLoading:!_,"data-testid":"manageMetrics-contextSelect"})),s.createElement(Ae,{title:"Metric Title","data-testid":"manageMetrics-title"},s.createElement(P.TextInput,{name:"title",placeholder:"Type name",value:u,onChange:A})),s.createElement(Ae,{title:"Dimensions",help:"What is a dimension?",link:"https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#dimension",disclaimer:x[0]===Ne&&"The returned value is the sum of all selected dimensions.","data-testid":"manageMetrics-dimensions"},s.createElement(P.Select,{isMulti:!0,options:k,value:x,onChange:q,isLoading:S,isDisabled:!w,"data-testid":"manageMetrics-dimensionSelect"})),!i&&s.createElement(P.Flex,{justifyContent:"end"},s.createElement(Be,{roomId:n,id:a,onRemove:o})))))},ze=e=>{let{isOpen:t,onClose:n,onEdit:a,roomId:o,targetRef:r}=e;const[i,c]=(0,Ce.tY)(o);if(!r.current||!t)return null;const l=e=>{a(e),n()};return s.createElement(P.Drop,{align:{top:"bottom",right:"right"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[3],round:!0,width:70,close:n,"data-testid":"metricsMenu",onClickOutside:n,onEsc:n,target:r.current},i.map((e=>s.createElement(P.Flex,{"data-testid":"metricsMenu-metric-".concat(e.title),key:e.id,justifyContent:"between",alignItems:"center",padding:[1,0]},s.createElement(P.Checkbox,{checked:!e.hidden,"data-testid":"metricsMenu-metricCheckbox",label:e.title,onChange:()=>c(e.id,"hidden",!e.hidden)}),s.createElement(P.IconButton,{"data-testid":"metricsMenu-editMetric",flavour:"borderless",icon:"pencilSolid",padding:[0],onClick:()=>l(e.id),width:"10px",height:"10px"})))),s.createElement(P.Button,{"data-testid":"metricsMenu-addMetricButton",label:"Add new metric",icon:"plus",onClick:()=>l("new"),small:!0,alignSelf:"end"}))},Oe=e=>{let{spaceId:t,roomId:n}=e;const[a,,o,r]=(0,ge.A)(),[i,c]=(0,s.useState)(null),l=(0,s.useRef)();return s.createElement(s.Fragment,null,s.createElement(P.Button,{"data-ga":"metric-setting::click-metric-setting::hm-nodes","data-testid":"metricSettings-button",flavour:"hollow",icon:"gear",neutral:!0,onClick:o,ref:l,label:"Metrics",small:!0}),s.createElement(ze,{isOpen:a,onClose:r,onEdit:c,roomId:n,targetRef:l}),i&&s.createElement(Fe,{"data-testid":"metricsManagement",spaceId:t,roomId:n,id:i,onClose:()=>c(null)}))};var He=n(667),Ve=n(92155);const Qe=()=>(0,me.H)("grouping","click-grouping","hm-nodes"),je=(0,Ve.A)(fe.A),Ge=[{icon:"node",label:"Node status",value:"nodeStatus","data-ga":"grouping::click-grouping-node-status::hm-nodes"},{icon:"alarm_bell",label:"Alert status",value:"alertStatus","data-ga":"grouping::click-grouping-status::hm-nodes"}],We=()=>{const e=(0,v.vt)(),t=(0,c.ID)(),[n,,a,o]=(0,ge.A)(),{onIntegrationsClick:r}=(0,He.A)(),[i,l]=ke(t,"groupMode"),d=(0,s.useMemo)((()=>Ge.find((e=>e.value===i))||Ge[0]),[i]),h=(0,s.useCallback)((e=>{let{value:t}=e;return l(t)}),[l]);return s.createElement(P.Flex,{alignItems:"center","data-testid":"agentsHead-actions",flexWrap:!1,gap:3},s.createElement(P.Select,{label:"Group by",onChange:h,onMenuOpen:Qe,options:Ge,styles:{size:"tiny"},value:d}),s.createElement(Oe,{roomId:t,spaceId:e}),s.createElement(P.Button,{icon:"integrations",flavour:"hollow",onClick:r,small:!0},"Integrations"),n&&s.createElement(be.A,{onClose:o}),s.createElement(je,{"data-ga":"add-nodes::click-add-nodes::hm-nodes","data-testid":"agentsHead-addNode",icon:"nodes_hollow",label:"Add Nodes",onClick:a,small:!0}))},Ke=()=>s.createElement(P.Flex,{width:"100%",justifyContent:"end",background:"mainBackground",padding:[2]},s.createElement(We,null));n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215);var Ze=n(79304),Ye=n(25950);const Je=function(e,t){let{getGrouping:n,extraKey:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a={};const{menuGroups:o}=((e,t)=>{let{getNode:n,getGrouping:s,nodeMenus:a}=t;const o={};return e.forEach((e=>{const t=n(e);if(!t)return;const{name:o,priority:r,icon:i}=s(t);a[e]={...t,groupId:o,subMenuId:e,priority:r,groupIcon:i}})),[...e].sort(((e,t)=>{var n,s,o,r;return(null===(n=a[e])||void 0===n?void 0:n.priority)-(null===(s=a[t])||void 0===s?void 0:s.priority)||((null===(o=a[e])||void 0===o?void 0:o.name)||"").localeCompare((null===(r=a[t])||void 0===r?void 0:r.name)||"",void 0,{sensitivity:"accent",ignorePunctuation:!0})})).forEach((e=>{const t=a[e];if(!t)return;const n="".concat(t.groupId,"|").concat(t.subMenuId);o[t.groupId]||(o[t.groupId]=new Set),n&&o[t.groupId].add(t.id)})),{menuGroups:o}})(e,{getNode:t,getGrouping:n,nodeMenus:a}),r={},i=Object.keys(o).reduce(((e,t)=>{const n=[...o[t]],i=a[n[0]];return e[t]={level:0,name:i.groupId,id:t,subMenuIds:n,link:"".concat((0,Ze.A)("menu_".concat(t))),size:24,forceVisibility:!0,icon:i.groupIcon,extraKey:s},n.forEach((e=>{var n,o,i,c;const l=a[e];r[e]={...l,level:1,id:e,menuGroupId:t,link:"".concat((0,Ze.A)("menu_".concat(t,"_submenu_").concat(e))),size:24,forceVisibility:!0,icon:(null===(n=Ye.u[null===(o=l.os)||void 0===o?void 0:o.nm])||void 0===n?void 0:n.iconName)||(null===(i=Ye.U[null===(c=l.os)||void 0===c?void 0:c.id])||void 0===i?void 0:i.iconName)||"os",extraKey:s}})),e}),{}),c=Object.keys(o);let l=-1;const d=c.reduce(((e,t)=>{l+=1;return[...e,{...i[t],sticky:!0},...i[t].subMenuIds.reduce(((e,t)=>{l+=1;return[...e,r[t]]}),[])]}),[]);return a=null,{stickyIds:{},allElements:d,menuGroupIds:c,menuGroupById:i,subMenuById:r}},Xe="clear",$e="warning",et="critical",tt="unreachable";var nt=n(82432);const st={alertStatus:{[et]:1,[$e]:2,[Xe]:3,[tt]:4},nodeStatus:{Live:1,Stale:2,Offline:3}},at={nodeStatus:e=>(0,nt.GM)(e.state),alertStatus:e=>(0,nt.vt)(e)};var ot=n(79566),rt=n(72253),it=n(44741),ct=n(10952),lt=n(12412);const dt=e=>{let{id:t,...n}=e;return s.createElement(it.k,(0,C.A)({id:t},n),s.createElement(ct._,{id:t}),s.createElement(lt.G,{id:t}))},ht=(0,s.memo)(dt);var ut=n(50466),pt=n(28146),mt=n(42402),gt=n(74379),ft=n(4959);const bt=e=>{let{connectivity:t,id:n,name:a,...o}=e;const r=(0,S.JT)("node:Delete"),i=!(0,c.XA)().untouchable,[l,,d,h]=(0,ge.A)(),[u,,p,m]=(0,ge.A)();return s.createElement(ft.SS,(0,C.A)({alignSelf:"end",gap:1,"data-testid":"node-actions"},o),i&&s.createElement(s.Fragment,null,s.createElement(pt.A,{badge:"actionRemove","data-testid":"remove-node-action"},s.createElement(ft.d0,{"data-ga":"nodes-table-row::click-remove-node::nodes-view",onClick:p})),u&&s.createElement(gt.Ay,{ids:[n],name:a,onClose:m})),r&&"Offline"===t&&s.createElement(s.Fragment,null,s.createElement(pt.A,{badge:"actionObsolete","data-testid":"obsolete-node-action"},s.createElement(ft.AS,{"data-ga":"nodes-table-row::click-obsolete-node::nodes-view",onClick:d})),l&&s.createElement(mt.Ay,{ids:[n],name:a,onClose:h})))};var yt=n(37019);const vt=e=>{let{instanceType:t,name:n,providerType:a,...o}=e;return s.createElement(pt.A,(0,C.A)({badge:"cloudInfo","data-testid":"node-cloud-info",nodeName:n},o),s.createElement(P.Flex,{alignItems:"center",gap:1},s.createElement(P.Icon,{color:"textDescription","data-testid":"node-cloud-info-icon",name:"ipNetworking",width:"18px",height:"18px"}),s.createElement(P.TextSmall,{color:"textDescription","data-testid":"node-cloud-info-text"},(0,nt.ws)(a)," \u2022 ",(0,nt.ws)(t))))},_t=e=>{let{connectivity:t,name:n,...a}=e;return s.createElement(pt.A,(0,C.A)({badge:"connectivity",connectivityState:t,"data-testid":"node-connectivity",nodeName:n},a),s.createElement(P.Icon,{name:"connectivityStatus".concat(t),width:"18px",height:"18px"}))},wt=e=>{let{onClick:t,...n}=e;return s.createElement(pt.A,(0,C.A)({badge:"info","data-testid":"node-info-cta"},n),s.createElement(P.Icon,{color:"textDescription",cursor:"pointer",height:"18px",width:"18px",name:"information",onClick:t}))},kt=e=>{let{name:t,...n}=e;return s.createElement(pt.A,(0,C.A)({badge:"k8s","data-testid":"node-kubernetes",nodeName:t},n),s.createElement(P.Flex,{alignItems:"center",gap:1},s.createElement(P.Icon,{color:"textDescription","data-testid":"node-kubernetes-icon",name:"serviceKubernetes",width:"18px",height:"18px"}),s.createElement(P.TextSmall,{color:"textDescription","data-testid":"node-kubernetes-text"},"k8s")))},Tt=e=>{let{kernelName:t,kernelVersion:n,name:a,...o}=e;return s.createElement(pt.A,(0,C.A)({badge:"kernel","data-testid":"node-kernel",nodeName:a},o),s.createElement(P.TextSmall,{color:"textDescription"},(0,nt.Ud)(t,n)))};var St=n(88494),Mt=n(63119);const xt=e=>{var t,n;let{architecture:a,cpuFrequency:o,cpus:r,diskSpace:i,memory:c,name:l,os:d,osName:h,...u}=e;return s.createElement(pt.A,(0,C.A)({badge:"systemInfo","data-testid":"node-system-info",nodeName:l},u),s.createElement(P.Flex,{alignItems:"center",gap:1},s.createElement(P.Icon,{color:"textDescription","data-testid":"node-system-info-icon",name:(null===(t=Ye.u[h])||void 0===t?void 0:t.iconName)||(null===(n=Ye.U[d])||void 0===n?void 0:n.iconName)||"os",width:"16px",height:"16px"}),s.createElement(P.TextSmall,{color:"textDescription","data-testid":"node-system-info-text"},(0,nt.ws)(h)," \u2022 ",(0,nt.O)(o)," \u2022"," ",(0,nt.ws)(r,1===r?"Core":"Cores")," \u2022 ",(0,nt.ws)(a)," ","\u2022 ",(0,nt.ws)((0,nt.RI)(c),"RAM")," \u2022"," ",(0,nt.ws)((0,nt.RI)(i),"HD"))))},Ct=e=>{let{container:t,name:n,virtualization:a,...o}=e;const r=(0,nt.Pg)(t,a);return s.createElement(pt.A,(0,C.A)({badge:"type","data-testid":"node-type",nodeName:n,nodeType:r.label},o),s.createElement(P.Flex,{alignItems:"center",gap:1},s.createElement(P.Icon,{color:"textDescription","data-testid":"node-type-icon",name:r.icon,height:r.iconSize,width:r.iconSize}),s.createElement(P.TextSmall,{color:"textDescription","data-testid":"node-type-text"},r.label)))};var Pt=n(33195);const qt=e=>{let{health:t={}}=e;const{silencingState:n}=t.alerts||{},{state:a}=n||{};return"NONE"!=a?s.createElement(s.Fragment,null,s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(P.Flex,null,s.createElement(Pt.A,{flavour:"node",silencing:n}))):null};var It=n(47130);const Bt=(0,It.A)((0,Ve.A)(P.Button)),Lt=e=>{let{id:t}=e;const n=(0,o.Zp)(),a=(0,v.bq)(),r=(0,s.useCallback)((()=>{const e={nodeId:t};n("/spaces/".concat(a,"/settings/notifications#notificationsActiveTab=1&silencingRulePrefill=").concat(JSON.stringify(e)))}),[]);return s.createElement(Bt,{feature:"SilencingNode",payload:{nodeId:""},tooltip:"Create a new silencing rule for this node",flavour:"hollow",icon:"alarm_off",iconWidth:"12px",tiny:!0,onClick:r})};var At=n(55905),Et=n(80925);n(3064),n(72577);const Dt=(e,t)=>e&&e.getRoot().getChildren().find((e=>e.match({id:"nodes-".concat(t)})));var Nt=n(36196);const Rt=e=>{let{id:t,roomId:n,nodeId:a,context:o,dimensions:r}=e;const i=(0,Et.e)(),c=(0,s.useMemo)((()=>{const e=Dt(i,n),s=[t,a,o].join("-");if(!e)return null;let c=e.getNode({id:s});return c?(c.updateAttribute("selectedDimensions",r.map((e=>e.name))),c):(c=i.makeChart({attributes:{id:s,nodesScope:[a],contextScope:[o],pixelsPerPoint:20,selectedDimensions:r.map((e=>e.name))}}),e.appendChild(c),c)}),[o,t,a,n,i]);return c?s.createElement(Nt.A,{chart:c,hasHeader:!1,hasFooter:!1,hasFilters:!1,height:100}):null},Ut=(0,s.memo)(Rt);var Ft=n(75793);const zt=e=>{let{id:t,context:n,nodeId:a,isLive:o,hidden:r,title:i,dimensions:l}=e;const d=(0,c.ID)();return r||!o?null:s.createElement(P.Flex,{column:!0,"data-testid":"metrics-chart-".concat(n),flex:"grow",basis:"174px"},s.createElement(Ft.A,{text:i||n,TextComponent:P.TextSmall,color:"textDescription",margin:[1,0,1,2],as:"div"}),s.createElement(Ut,{id:t,context:n,nodeId:a,roomId:d,dimensions:l}))};var Ot=n(8239),Ht=n(50876);const Vt=e=>{let{node:t}=e;const[,n]=(0,Ot.OD)(),{sendButtonClickedLog:a}=(0,Ht.A)(),o=(0,s.useCallback)((()=>{n({node:t}),a({feature:"DyncnfNode",description:"Configure node",nodeId:null===t||void 0===t?void 0:t.id,nodeName:null===t||void 0===t?void 0:t.name})}),[n,a]),r=(0,s.useMemo)((()=>({name:"gear",size:"small",color:"text",cursor:"pointer",onClick:o})),[o]);return t.isLive?s.createElement(s.Fragment,null,s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(pt.A,{content:"Configure this node"},s.createElement(P.Flex,null,s.createElement(P.Icon,r)))):null},Qt=e=>{var t,n;let{id:a,name:o,hw:r,os:i,capabilities:l,container:d,updateSeverity:h,labels:u,isLive:p,state:m,version:g,extraKey:f,isPreferred:b,health:y}=e;const _=(0,v.dg)(),w=(0,c.ID)(),k=null===(t=l.funcs)||void 0===t?void 0:t.enabled,T=null===(n=l.ml)||void 0===n?void 0:n.enabled,S=(0,nt.GM)(m),{_cloud_instance_type:M,_cloud_provider_type:x}=u||{},q="true"===(null===u||void 0===u?void 0:u._is_k8s_node),I=!(0,nt.Po)(M)||!(0,nt.Po)(x),B=(0,ue.Fw)("sidebarTab",{flavour:"val",extraKey:f}),L=(0,ue.Fw)("sidebarOpen",{flavour:"bool"}),A=(0,ue.Fw)("sidebarNodeId",{flavour:"val",extraKey:f}),E=(0,s.useCallback)((e=>{L(!0),B(e),A(a)}),[a]),D=(0,s.useCallback)((()=>E("alerts")),[E]),N=(0,s.useCallback)((()=>E("info")),[E]),R=(0,ut.Id)(),U=(0,Ce.Vw)(w);return s.createElement(P.Flex,{"data-testid":"nodeRow-".concat(o),"data-submenuid":a,padding:[1],column:!0,gap:1,round:!0},s.createElement(P.Flex,{alignItems:"center","data-testid":"nodeRow-basic-info",gap:2,height:{min:6}},s.createElement(_t,{connectivity:S,"data-testid":"nodeRow-connectivity-".concat(S.toLowerCase()),name:o}),s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(Mt.A,{"data-testid":"nodeRow-name",id:a,name:o,isLive:p,state:m,isPreferred:b}),s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(wt,{onClick:N,"data-testid":"nodeRow-more-info-cta"}),s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(yt.A,{id:a,isLive:p,"data-testid":"nodeRow-alerts",name:o,onClick:D}),s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(St.A,{badge:"ml","data-testid":"nodeRow-machine-learning-status",enabled:T,name:o},s.createElement(P.Icon,{name:"anomaliesLens",size:"small",color:"text"})),s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(St.A,{badge:"fn","data-testid":"nodeRow-fn-status",enabled:k,name:o,onClick:()=>R(a)},s.createElement(P.Icon,{name:"functions",size:"small",color:"text"})),h&&s.createElement(s.Fragment,null,s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(At.A,{name:o,os:i.id,container:d,warningLevel:h,labels:u,version:g,text:h,"data-testid":"nodeRow-needs-update"})),s.createElement(Vt,{node:{id:a,name:o,isLive:p}}),s.createElement(bt,{"data-testid":"nodeRow-node-actions",id:a,name:o,connectivity:S}),_?null:s.createElement(s.Fragment,null,s.createElement(qt,{health:y}),s.createElement(Lt,{id:a}))),s.createElement(P.Flex,{alignItems:"center","data-testid":"nodeRow-detailed-info",gap:2},s.createElement(xt,{architecture:r.architecture,cpuFrequency:r.cpuFrequency,cpus:r.cpus,"data-testid":"nodeRow-system-info",diskSpace:r.diskSpace,memory:r.memory,name:o,osName:i.nm,os:i.id}),s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),!(null===i||void 0===i||!i.kernel)&&s.createElement(Tt,{"data-testid":"nodeRow-kernel",kernelName:i.kernel.nm,kernelVersion:i.kernel.v,name:o}),s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),q&&s.createElement(s.Fragment,null,s.createElement(kt,{"data-testid":"nodeRow-kubernetes",name:o}),s.createElement(ft.K,{"data-testid":"nodeRow-separator"})),s.createElement(Ct,{container:r.container,"data-testid":"nodeRow-type",name:o,virtualization:r.virtualization}),I&&s.createElement(s.Fragment,null,s.createElement(ft.K,{"data-testid":"nodeRow-separator"}),s.createElement(vt,{"data-testid":"nodeRow-cloud-info",instanceType:M,name:o,providerType:x}))),b&&!(null===U||void 0===U||!U.length)&&s.createElement(P.Flex,{"data-testid":"nodeRow-charts",gap:1},U.map((e=>s.createElement(zt,(0,C.A)({key:e.id},e,{nodeId:a,isLive:p}))))))},jt=e=>{switch(e.level){case 0:return ht;case 1:return Qt;default:return null}},Gt=e=>{let{onChartNameChange:t,initialChartName:n,dashboardOptions:a,linkToGo:o,contextToGo:r,...i}=e;const{setActiveMenuGroupId:c,setActiveSubMenuId:l}=(0,ot.A)({onChartNameChange:t,initialChartName:n,linkToGo:o,contextToGo:r});return s.createElement(he.H,i,s.createElement(rt.A,{onActiveMenuGroupId:c,onActiveSubMenuId:l,getComponent:jt,dashboardOptions:a,initialChartName:n,checkVisibility:()=>!0}))},Wt=["config"],Kt=()=>{const e=(0,v.vt)(),t=(0,c.ID)(),n=(()=>{const e=(0,c.ID)();let t=we(e,"groupMode")||"nodeStatus";const n=at[t]||at.nodeStatus;return(0,s.useCallback)((e=>{var s;const a=n(e);return{name:a,priority:at[t]?null===st||void 0===st||null===(s=st[t])||void 0===s?void 0:s[a]:st.nodeStatus,icon:"nodeStatus"===t?"connectivityStatus".concat(a):null}}),[t])})(),a=(0,L.w7)({extraKey:"nodesView",merge:!1,scoped:!0}),o=(0,de.Y7)(),[r,{width:i}]=(0,ce.A)();!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],{host:n,width:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=(0,Et.e)(),r=(0,s.useRef)();(0,s.useMemo)((()=>{if(!o)return;let s=Dt(o,e);s&&s.destroy(),s=o.makeContainer({attributes:{host:n,enabledXAxis:!1,id:"nodes-".concat(e),hasToolbox:!1,height:"75px",groupingMethod:"average",groupBy:["dimension"],aggregationMethod:"avg",legend:!1,axisLabelFontSize:7,yAxisLabelWidth:20,hasYlabel:!1,nodesScope:t,containerWidth:a}}),r.current=s,o.appendChild(s)}),[e]),(0,s.useMemo)((()=>{r.current&&(r.current.setAttribute("containerWidth",a),r.current.getNodes().forEach((e=>e.updateAttribute("containerWidth",a))))}),[r.current,a]),(0,s.useLayoutEffect)((()=>()=>r.current&&r.current.destroy()),[])}(t,a,{host:(0,v.dg)()?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(e,"/rooms/").concat(t),width:i});const[l,d]=(0,ue.N9)("nodeIdToGo",{key:t,extraKey:"nodesView",flavour:"val"});return s.createElement(he.A,{getObject:o,ids:a,getMenu:Je,getGrouping:n,deps:[n],extraKey:"nodesView"},s.createElement(le.A,{ref:r,position:"relative",sidebar:s.createElement(pe.Ay,{hiddenTabs:Wt,nodeIds:a,title:"Nodes",initialChartName:l,flavour:"nodesView",loaded:!0,hasSearch:!1})},s.createElement(Ke,null),s.createElement(Gt,{initialChartName:l,onChartNameChange:d})))},Zt=()=>{const e=(0,c.ID)(),t=(0,oe.CK)();return(0,oe.gr)(e,"loaded")&&!t.length?s.createElement(ie.Ay,{feature:"NodesView",mode:"NoNodesView"},s.createElement(re.A,null)):s.createElement(ie.Ay,{feature:"NodesView"},s.createElement(Kt,null))};var Yt=n(76777),Jt=n(4659),Xt=n(32089),$t=n(6586),en=n(12602);const tn=()=>s.createElement(P.Flex,{padding:[6],round:1,width:"600px",background:"modalInfoBackground"},s.createElement(P.Box,{margin:[0,4,0,0]},s.createElement(P.Box,{as:P.Icon,width:10,height:10,name:"nodes_update"})),s.createElement(P.Flex,{column:!0,gap:2},s.createElement(P.Text,{strong:!0},"Couldn't find the chart you were looking for? "),s.createElement(P.Text,{color:"textDescription"},"Netdata has zero-configuration auto-detection for most applications and systems, this is achieved using collectors. If you miss some specific chart please check our"," ",s.createElement(Jt.A,{href:"https://learn.netdata.cloud/docs/agent/collectors",target:"_blank","data-ga":"chart-area::click-link-collectors::charts-view"},"list of collectors")," ","to see if any additional step is needed."))),nn=()=>s.createElement(P.Flex,{width:"100%",column:!0,gap:6,margin:[8,0,0,0]},s.createElement(Xt.A,null),s.createElement(P.Flex,{gap:1,alignItems:"center",justifyContent:"center",padding:[2],background:"successSemi"},s.createElement(en.A,null,s.createElement(P.Text,{color:"primary"},"Upgrade to Business for unlimited access")),s.createElement(P.Text,null,"or"),s.createElement($t.A,null,s.createElement(P.Text,{color:"primary"},"review your Space active Nodes")))),sn=e=>{let{noPreferredNodesError:t}=e;return s.createElement(P.Flex,{column:!0,justifyContent:"center",alignItems:"center",alignSelf:"center",margin:[30,0,0]},s.createElement(P.Flex,{column:!0,justifyContent:"center",alignItems:"center",width:"300px",margin:[0,0,6]},s.createElement(P.H3,{margin:[0,0,4]},"No charts to display"),s.createElement(P.Text,{color:"textDescription",textAlign:"center"},"Double-check your search or filters and dates and try again with different conditions.")),s.createElement(tn,null),t&&s.createElement(nn,null))};var an=n(9683),on=n(77173),rn=n(58205);const cn=()=>{const e=(0,c.ID)(),t=(0,S.JT)("node:Create");return s.createElement(le.A,{column:!1,"data-testid":"noNodesViewPage",gap:12,padding:[6]},s.createElement(P.Flex,{column:!0,gap:5,flex:{shrink:0,grow:0},"data-testid":"noKubernetesView-videoSection"},s.createElement(an.A,{"data-testid":"noNodesView-onboardingVideo",height:350,width:850,videoId:De.BX[0]}),s.createElement(an.A,{"data-testid":"noNodesView-onboardingVideo",height:350,width:850,videoId:De.BX[1]})),s.createElement(P.Flex,{column:!0,gap:4},s.createElement(P.Box,{border:{side:"bottom",color:"borderSecondary"}},s.createElement(P.Box,{margin:[0,0,2,0]},s.createElement(Jt.A,{href:"https://learn.netdata.cloud/guides/monitor/kubernetes-k8s-netdata",target:"_blank",rel:"noopener noreferrer","data-ga":"k8s-tab::click-link-guides::kubernetes-overview-and-visualizations"},s.createElement(P.TextBig,{color:"primary"},"Kubernetes monitoring with Netdata: Overview and visualizations"))),s.createElement(P.Box,{margin:[0,0,2,0]},s.createElement(Jt.A,{href:"https://learn.netdata.cloud/docs/cloud/visualize/kubernetes",target:"_blank",rel:"noopener noreferrer","data-ga":"k8s-tab::click-link-guides::kubernetes-visualizations"},s.createElement(P.TextBig,{color:"primary"},"Kubernetes visualizations")))),s.createElement(P.Flex,{column:!0,gap:4},t?s.createElement(on.A,{integrationId:rn.v2,rooms:[e]}):s.createElement(re.S,null))))};var ln=n(45467),dn=n(61427);const hn=j.default.div.withConfig({displayName:"selections__Separator",componentId:"sc-1cc7y18-0"})(["width:1px;height:",";background:",";"],(0,P.getSizeBy)(2.5),(0,P.getColor)("borderSecondary")),un=[{label:"Volume",value:"volume"},{label:"KS2",value:"ks2"}],pn=[{label:"Average",value:"average"},{label:"Median",value:"median"},{label:"Min",value:"min"},{label:"Max",value:"max"},{label:"Stddev",value:"stddev"}],mn=[{label:"Metrics",value:""},{label:"Anomaly Rate",value:"anomaly-bit"}],gn=()=>s.createElement(P.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},s.createElement(P.TextMicro,null,"Choose the algorithm you want to be used to identify correlations across metrics:"),s.createElement(P.TextMicro,null,s.createElement(P.TextMicro,{strong:!0},"KS2:")," A statistical test comparing the distribution of the highlighted window to the baseline."),s.createElement(P.TextMicro,null,s.createElement(P.TextMicro,{strong:!0},"Volume:")," Percentage change in averages between highlighted window and baseline.")),fn=()=>s.createElement(P.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},s.createElement(P.TextMicro,null,"What aggregation function do you want to apply when aggregating multiple datapoints for metric correlations.")),bn=()=>s.createElement(P.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},s.createElement(P.TextMicro,null,"Do you want to find correlations over the metric values or the anomaly rates of each metric.")),yn=e=>{let{runGetWeights:t,nodeIds:n,flavour:a}=e;const{method:o,options:r,group:i}=(0,dn.G9)({nodeIds:n,flavour:a}),c=null!==r&&void 0!==r&&r.includes(mn[1].value)?mn[1].value:"",l=(0,s.useCallback)((e=>n=>{let{value:s}=n;s="options"!==e?s:s?[s]:[];t({method:o,options:[r],group:i,[e]:s})}),[o,r,i]),d=(0,s.useMemo)((()=>({method:un.find((e=>e.value===o)),group:pn.find((e=>e.value===i)),option:mn.find((e=>e.value===c))})),[o,i,c]);return i?s.createElement(P.Flex,{gap:2},s.createElement(P.Flex,{gap:1,alignItems:"center"},s.createElement(P.TextSmall,{color:"textLite"},"Method:"),s.createElement(P.Select,{options:un,value:d.method,onChange:l("method")}),s.createElement(K.A,{isBasic:!0,plain:!0,content:gn,align:"bottom"},s.createElement(P.Icon,{name:"information",color:"textDescription",size:"small"}))),s.createElement(hn,null),s.createElement(P.Flex,{gap:1,alignItems:"center"},s.createElement(P.TextSmall,{color:"textLite"},"Aggregation:"),s.createElement(P.Select,{options:pn,value:d.group,onChange:l("group")}),s.createElement(K.A,{isBasic:!0,plain:!0,content:fn,align:"bottom"},s.createElement(P.Icon,{name:"information",color:"textDescription",size:"small"}))),s.createElement(hn,null),s.createElement(P.Flex,{gap:1,alignItems:"center"},s.createElement(P.TextSmall,{color:"textLite"},"Data:"),s.createElement(P.Select,{options:mn,value:d.option,onChange:l("options")}),s.createElement(K.A,{isBasic:!0,plain:!0,content:bn,align:"bottom"},s.createElement(P.Icon,{name:"information",color:"textDescription",size:"small"}))),s.createElement(hn,null)):null};var vn=n(21290);const _n=e=>{let{highlightAfter:t,highlightBefore:n,baseline:a}=e;const{localeDateString:o,localeTimeString:r}=(0,vn.$j)(),i=new Date(t),c=new Date(n),l=new Date(a),d=new Date(t),h=Math.round((n-t)/1e3),u=Math.round((t-a)/1e3),p=(0,ue.rI)("highlight");return s.createElement(P.Flex,{gap:4,alignItems:"center"},s.createElement(P.Flex,{gap:2},s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.TextSmall,{color:"textLite"},"Selected area:"),s.createElement(P.TextSmall,{color:"textLite"},"Reference baseline:")),s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.TextSmall,{"data-testid":"metricCorrelation-selectedArea"},o(i,{long:!1}),","," ",r(i),"\xa0->\xa0",o(c,{long:!1}),","," ",r(c)),s.createElement(P.TextSmall,{"data-testid":"metricCorrelation-referenceBaseline"},o(l,{long:!1}),","," ",r(l),"\xa0->\xa0",o(d,{long:!1}),","," ",r(d))),s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.TextSmall,{color:"textLite"},"Duration:"),s.createElement(P.TextSmall,{color:"textLite"},"Duration:")),s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.TextSmall,{"data-testid":"metricCorrelation-selecteArea-duration"},h,"\xa0secs"),s.createElement(P.TextSmall,{"data-testid":"metricCorrelation-referenceBaseline-duration"},u,"\xa0secs"))),s.createElement(K.A,{content:"Clear selection",align:"bottom",isBasic:!0},s.createElement(P.Button,{neutral:!0,flavour:"borderless",icon:"trashcan",onClick:()=>{p({after:null,before:null})},"data-ga":"metric-correlation::click-delete::charts-view","data-testid":"metricCorrelation-delete"})))},wn=(0,Ve.A)(P.Button),kn=(0,j.default)(P.Button).withConfig({displayName:"correlation__LogoButton",componentId:"sc-15d72m3-0"})(["&&{pointer-events:none;}"]),Tn=(0,j.default)(P.Button).withConfig({displayName:"correlation__CloseButton",componentId:"sc-15d72m3-1"})(["position:absolute !important;top:-3px;right:-3px;"]),Sn=(0,Ve.A)(Tn),Mn=(0,j.default)(P.Button).attrs({padding:[0],margin:[0,0,0,1.5],width:"auto"}).withConfig({displayName:"correlation__StyledButton",componentId:"sc-15d72m3-2"})(["height:16px !important;> span{margin:0 !important;}"]),xn=e=>{let{flavour:t}=e;const n=(0,v.vt)(),a=(0,c.ID)(),o=(0,de.nl)(),r=(0,s.useMemo)((()=>o?[o]:[]),[o]),i=(0,L.w7)({extraKey:"nodesView",merge:!1,scoped:!0}),l="singleNode"===t?r:i,[d,h]=(0,s.useState)(!1),[u,p]=(0,s.useState)(),{threshold:m,totalDimensionsCount:g,dimensionsCount:f,loaded:b,loading:y,getWeights:_,resetWeights:w}=(0,dn.Yy)({nodeIds:l,flavour:t},n,a),{method:k,options:T,group:S}=(0,dn.G9)({nodeIds:l,flavour:t}),{after:M,before:x}=(0,ue.rW)("highlight"),C=M-4*(x-M),q=!!M;(0,s.useEffect)((()=>{if(b){let e="default-result";if(S){const t=null!==T&&void 0!==T&&T.includes("anomaly-bit")?"anomaly-bit":"metrics";e="default-result-".concat(k,"-").concat(S,"-").concat(t)}return(0,me.H)("metrics-correlation",e,"charts-view",f.toString())}}),[b]),(0,ln.A)((()=>{M&&h(!0)}),[M]);const I=(0,ue.rI)("correlation"),B=(0,ue.rI)("threshold"),A=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(!1),p(),_({highlightAfter:M,highlightBefore:x,baselineAfter:C,baselineBefore:M,method:k,options:T,group:S,nodeIds:l,...e}).then((()=>B(dn.UG)))},E=!q||y;return(0,ln.A)((()=>{b&&d&&q&&A()}),[b,q,d]),s.createElement(P.Flex,{round:2,background:"elementBackground",padding:[2,6,2,2],alignItems:"center",justifyContent:"between",flex:!0,"data-testid":"correlation",position:"relative",height:{min:"64px"},gap:2},q?b?s.createElement(ie._0,{feature:"MetricCorrelations",totalDimensionsCount:g,dimensionsCount:f},s.createElement(P.Flex,{"data-testid":"metricCorrelation-resultsContainer",column:!0,width:"100%"},s.createElement(P.Flex,{justifyContent:"between",alignItems:"center",gap:1},s.createElement(P.Flex,{alignItems:"center",gap:1},s.createElement(P.Icon,{name:"correlation",color:"primary",width:"16px",height:"16px"}),s.createElement(P.TextSmall,null,"Analysed"," ",s.createElement(P.TextSmall,{color:"primary","data-testid":"metricCorrelation-resultsAnalyzed"},g)," ","and found"," ",s.createElement(P.TextSmall,{color:"primary","data-testid":"metricCorrelation-resultsFound"},f)," ","correlated metrics."),s.createElement(K.A,{content:"Clear results"},s.createElement(Mn,{flavour:"borderless",neutral:!0,disabled:y||!b&&!q,onClick:()=>{B(dn.UG),w(),(0,me.H)("metrics-correlation","click-delete","charts-view","".concat(b?"finish":"start"))},"data-testid":"metricCorrelation-clear",small:!0,icon:"reload"}))),s.createElement(yn,{runGetWeights:A,nodeIds:l,flavour:t})),s.createElement(P.Flex,{width:"100%"},s.createElement(P.Flex,{alignItems:"center",gap:3,margin:[0,2,0,5],width:"100%"},s.createElement(P.TextNano,{whiteSpace:"nowrap",color:"textDescription"},"Show less"),s.createElement(P.InputRange,{"data-testid":"metricCorrelation-resultsSlider",min:0,max:1,onChange:e=>B(e.target.value.toString()),onClick:()=>(0,me.H)("metric-correlation","click-slider","charts-view"),step:.01,value:m}),s.createElement(P.TextNano,{whiteSpace:"nowrap",color:"textDescription"},"Show more")),s.createElement(s.Fragment,null,s.createElement(K.A,{content:"Give us your feedback! Was it useful?",align:"bottom",enterDelay:200,showArrow:!0,activateOn:"hover"},s.createElement(P.Flex,null,s.createElement(P.Button,{flavour:"+"===u?"hollow":"borderless",disabled:u,icon:"thumb_up",onClick:()=>p("+"),"data-ga":"metric-correlation::click-thumbs-up::charts-view","data-testid":"metricCorrelation-thumbsUp",small:!0}),s.createElement(P.Button,{flavour:"-"===u?"hollow":"borderless",disabled:u,icon:"thumb_down",onClick:()=>p("-"),"data-ga":"metric-correlation::click-thumbs-down::charts-view","data-testid":"metricCorrelation-thumbsDown",small:!0}))))))):s.createElement(P.Flex,{alignItems:"center","data-testid":"correlationView-timePeriod-container",gap:4},s.createElement(kn,{icon:"logo_s",isLoading:y}),y?s.createElement(P.H5,{"data-testid":"metricCorrelation-loadingCalculation"},"Calculating metric correlations..."):s.createElement(_n,{highlightAfter:M,highlightBefore:x,baseline:C})):s.createElement(P.Flex,{alignItems:"center",gap:1},s.createElement(P.Icon,{name:"correlation",color:"primary"}),s.createElement(P.Text,null,"Select a timeframe on any chart and find correlated metrics. Visit documentation"),s.createElement("a",{href:"https://learn.netdata.cloud/docs/cloud/insights/metric-correlations",target:"_blank",rel:"noreferrer"},s.createElement(P.Icon,{name:"nav_arrow_goto",color:"primary",width:"12px",height:"12px"}))),s.createElement(P.Flex,{alignItems:"center"},(!b||y)&&s.createElement(K.A,{content:E?"Select an area of interest on any chart":"Click to find correlated metrics for the selected area",align:"bottom",enterDelay:200,showArrow:!0,activateOn:"hover"},s.createElement(wn,{label:y?"Loading...":"Find correlations",isLoading:!1,onClick:A,disabled:E,flavour:"hollow","data-ga":"metric-correlation::click-find-correlation::charts-view","data-testid":"metricCorrelation-find",small:!0,margin:[0,2,0,0],feature:"MetricCorrelations"})),s.createElement(K.A,{content:"Close",align:"bottom"},s.createElement(Sn,{neutral:!0,flavour:"borderless",onClick:()=>{I(!1),B(dn.UG),w(),(0,me.H)("metrics-correlation","click-close","charts-view","".concat(b?"finish":"start"))},"data-ga":"metric-correlation::click-close::charts-view","data-testid":"metricCorrelation-close",icon:"x",feature:"MetricCorrelations"}))))},Cn=(0,Ve.A)(P.Button),Pn=()=>{const e=(0,ue.rI)("correlation");return s.createElement(K.A,{content:()=>s.createElement(P.Box,null,s.createElement("strong",null,"Troubleshoot with Metric Correlations"),s.createElement("br",null),s.createElement("br",null),"Metric correlations will help you identify potential root causes for an observed issue.",s.createElement("br",null),"It will automatically analyse all available metrics for irregular behavior for the same timeframe."),align:"bottom",activateOn:"hover",isBasic:!0},s.createElement(Cn,{width:"118px",flavour:"hollow",label:"Metric Correlations",onClick:()=>{e(!0)},"data-ga":"metrics-correlation::click-metric-correlations::charts-view","data-testid":"run-correlation",small:!0,feature:"MetricCorrelations",isStart:!0}))};var qn=n(45463);const In=j.default.div.withConfig({displayName:"styled__Separator",componentId:"sc-1fhfk7c-0"})(["background:",";height:20px;width:1px;"],(0,P.getColor)("border")),Bn=e=>{var t,n;let{flavour:a}=e;const o=(0,de.nl)(),r=(0,g.Xt)(o),{critical:i,warning:c}=(0,p.AO)(r),l=(0,ue.Fw)("sidebarTab",{flavour:"val",extraKey:a}),d=(0,ue.Fw)("sidebarOpen",{flavour:"bool"}),h=(0,s.useCallback)((e=>{d(!0),l(e)}),[]),{hw:u={},cpus:m,isLive:f,name:b,os:y={},state:v,updateSeverity:_,labels:w,version:k,health:T}=(0,de.xY)(o),{silencingState:S}=(null===T||void 0===T?void 0:T.alerts)||{},M={dataTestId:"singleNode",isLive:f},x=(0,nt.t3)({count:i,type:"critical",...M}),C=(0,nt.t3)({count:c,type:"warning",...M}),q=(0,nt.GM)(v),I=(0,nt.Pg)(u.container,u.virtualization),B=(0,qn.A)("(min-width: 1760px)");return s.createElement(P.Flex,{alignItems:"center",background:"panelBg",border:{side:"all",color:"border"},"data-testid":"singleNode-badges-container",flex:!1,gap:1,padding:[1,2],round:1},s.createElement(P.TextSmall,{"data-testid":"singleNode-".concat(b),strong:!0},b),s.createElement(pt.A,{badge:"info","data-testid":"singleNode-nodeInfo-cta"},s.createElement(P.IconButton,{flavour:"borderless",cursor:"pointer",onClick:()=>h("info"),icon:"information",iconColor:"nodeBadgeColor",tiny:!0,width:"18px",height:"18px"})),s.createElement(In,{"data-testid":"singleNode-separator"}),s.createElement(pt.A,{badge:"alerts",nodeName:b},s.createElement(P.AlertMasterCard,{onClick:x.text||C.text?()=>h("alerts"):null,pillLeft:x,pillRight:C})),_&&s.createElement(At.A,{"data-testid":"singleNode-update-cta",name:b,os:y.id,container:u.container,warningLevel:_,labels:w,version:k,text:_}),s.createElement(In,{"data-testid":"singleNode-separator"}),s.createElement(pt.A,{badge:"connectivity",connectivityState:q,"data-testid":"singleNode-connectivityStateInfo",nodeName:b},s.createElement(P.Pill,{flavour:"neutral",hollow:!0},q)),s.createElement(pt.A,{badge:"type","data-testid":"singleNode-nodeTypeInfo",nodeName:b,nodeType:I.label},s.createElement(P.Pill,{flavour:"neutral",hollow:!0,icon:I.icon},I.label)),B&&s.createElement(pt.A,{badge:"systemInfo","data-testid":"singleNode-systemInfo",nodeName:b},s.createElement(P.Pill,{flavour:"neutral",hollow:!0,icon:(null===(t=Ye.u[y.nm])||void 0===t?void 0:t.iconName)||(null===(n=Ye.U[y.id])||void 0===n?void 0:n.iconName)||"os"},(0,nt.O)(u.cpuFrequency)," (",m," ",1===u.cpus?"Core":"Cores",") -"," ",(0,nt.RI)(u.memory)," RAM - ",(0,nt.RI)(u.diskSpace))),s.createElement(Pt.A,{flavour:"node",silencing:S}))},Ln=()=>{const{onIntegrationsClick:e}=(0,He.A)();return s.createElement(s.Fragment,null,s.createElement(P.Button,{icon:"integrations",flavour:"hollow",onClick:e,small:!0,label:"Integrations","data-ga":"integrations::click-integrations::charts-view","data-testid":"btn-show-integrations"}))};const An={singleNode:Bn,default:n(90535).A},En=(0,s.memo)((e=>{let{flavour:t,...n}=e;const a=(0,ue.rW)("correlation"),o=An[t]||An.default;return s.createElement(P.Flex,{alignItems:!a&&"center",background:"mainBackground",column:a,"data-testid":"overview-header",gap:2,justifyContent:a?"start":"between",padding:[2,2,2,4],width:"100%"},a?s.createElement(xn,{flavour:t}):s.createElement(s.Fragment,null,!!o&&s.createElement(o,(0,C.A)({},n,{flavour:t})),s.createElement(P.Flex,{gap:2},s.createElement(Ln,null),s.createElement(Pn,null))))})),Dn=En;var Nn=n(56489),Rn=n(67602),Un=n(83465),Fn=n(31438),zn=n(55309),On=n(59090),Hn=n(13271),Vn=n(35243),Qn=n(75233);const jn=e=>t=>"overview-page::".concat(e.getAttribute("id"),"::").concat(t),Gn=(0,s.forwardRef)(((e,t)=>{let{style:n,id:a,menuChartAttributes:o,resizeHandle:r,handleProps:i,listeners:l,dragging:d,dragOverlay:h,...u}=e;const p=(0,c.ID)(),m=(0,Et.e)(),g=(0,Vn.N)(),f=(0,s.useMemo)((()=>{let e=g.getChildren().find((e=>e.match({id:h?"dragOverlay-".concat(a):a})));if(!e){const t=(e=>{let{chartId:t,...n}=e;return{contextScope:[t],...n}})(o);e=m.makeChart({attributes:{...t,roomId:p,id:h?"dragOverlay-".concat(a):a},makeTrack:jn,toolboxProps:{drag:{...i,...l}}}),g.appendChild(e)}return e}),[p,a,g]);(0,s.useLayoutEffect)((()=>{f.updateAttributes({toolboxProps:{drag:{...i,...l,dragging:d}}})}),[f,d]);return(0,qe.GR)(o.chartId)?s.createElement("div",{key:g.getId(),ref:t,style:n},s.createElement(Nt.A,{chart:f,"data-track":f.track("container"),"data-chartid":h?"dragOverlay-".concat(a):a,height:n.height,width:"100%"})):null})),Wn=(0,Fn.BK)(Gn),Kn=(e,t)=>(e.layout||console.warn(t,"has no layout set, default values will be used."),(0,Un.bP)(t,e.layout,{left:0,top:0,width:3,height:5,id:e.id,chartId:e.chartId,minWidth:1,minHeight:1,static:!1,dashboardable:!0})),Zn=(0,s.memo)((e=>{let{id:t,ids:n,containerWidth:a,...o}=e;const r=(0,Fn.dd)(n,Kn),{filteredChartsCount:i}=(0,Hn.Ad)(),c=(0,Fn.yO)(t),[l,d]=(0,s.useState)((()=>r)),h=(0,s.useMemo)((()=>l.filter((e=>{if(!e)return!1;const t=c(e.chartId);return t.visible&&!t.filteredOut&&!t.hidden}))),[n,l,i]),u=(0,qn.A)("(max-width: 767px)");return n.length?s.createElement(Qn.A,(0,C.A)({compactType:"horizontal",rootId:t,containerId:t,onDragEnd:(e,t)=>{(0,Un.Q)(t),d(e)},items:h,containerWidth:a-(u?16:26),gridTracks:u?1:12},o,{Item:Wn,rearrangeable:!1})):null}),((e,t)=>e.ids===t.ids&&e.containerWidth===t.containerWidth)),Yn=(0,zn.HB)(Zn,(e=>({ids:(null===e||void 0===e?void 0:e.headIds)||[]}))),Jn=(0,On.A)(Zn,(e=>({ids:(null===e||void 0===e?void 0:e.headIds)||[]}))),Xn=e=>{let{id:t,isActiveSticky:n,containerWidth:a,...o}=e;return s.createElement(it.k,(0,C.A)({id:t},o),s.createElement(ct._,{id:t,tiny:n,hasTooltip:n}),!n&&s.createElement(lt.G,{id:t,isActiveSticky:n}),!n&&s.createElement(Yn,{id:t,tiny:n,containerWidth:a}))},$n=(0,s.memo)(Xn);var es=n(44644);const ts=[],ns=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{selectedDimensions:e.dimensions?Object.keys(e.dimensions):ts,selectedInstances:e.instances?Object.keys(e.instances):ts,selectedNodes:e.nodes?Object.keys(e.nodes):ts,weight:e.weight}},ss=(0,s.forwardRef)(((e,t)=>{let{style:n,handleProps:a,attributes:o,listeners:r,dragging:i,dragOverlay:l,id:d,resizeHandle:h,onRemove:u,...p}=e;const m=(0,c.ID)(),g=(0,Vn.N)(),f=(0,Fn.aA)(d),b=(0,Et.e)(),{sendLog:y,isReady:v}=(0,Ht.A)(),_=(0,es.CS)({type:"chart",entity:d}),w=(0,s.useMemo)((()=>{let e=g.getNode({id:l?"dragOverlay-".concat(d):d});return e||(e=b.makeChart({attributes:{contextScope:[d],id:l?"dragOverlay-".concat(d):d,roomId:m,expandable:!1,...f,toolboxProps:{drag:{...a,...r,...o}}},makeTrack:jn}),g.appendChild(e),e)}),[g,m,d,l]);(0,s.useLayoutEffect)((()=>{w&&v&&"function"===typeof y&&w.updateAttribute("logOptions",{sendLog:y,payload:{feature:"Overview"}})}),[w,y,v]);const{weight:k,selectedDimensions:T,selectedInstances:S,selectedNodes:M}=(0,Fn.uy)(d,ns);return(0,ln.A)((()=>{w&&k&&(w.updateAttributes({selectedDimensions:T,selectedInstances:S,selectedNodes:M}),w.trigger("fetch"))}),[w,m,d,k,T.length,S.length,M.length]),(0,ln.A)((()=>{w&&_&&(w.updateAttributes(_),w.trigger("fetch"))}),[w,m,d,_]),(0,s.useLayoutEffect)((()=>{w.updateAttributes({height:n.height,width:n.width}),w.trigger("resize")}),[w,n.height,n.width]),(0,ln.A)((()=>{w.updateAttributes({toolboxProps:{drag:{...a,...r,...o,dragging:i}}})}),[w,i]),s.createElement(P.Box,{key:g.getId(),ref:t,style:n},s.createElement(Nt.A,(0,C.A)({chart:w,"data-chartid":l?"dragOverlay-".concat(d):d,"data-track":w.track("container"),height:n.height,width:"100%"},p)),h)})),as=s.memo(ss,((e,t)=>e.id===t.id&&e.style===t.style)),os=function(){let{id:e,layout:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,Un.bP)(e,t,{left:0,top:0,width:12,height:9,id:e,chartId:e,...t,minWidth:12,maxWidth:12,minHeight:4,static:!1,dashboardable:!0})},rs=e=>{let{id:t,subMenuId:n,containerWidth:a,...o}=e;const r=(0,Fn.aA)(t,os),[i,c]=(0,s.useState)((()=>[r])),l=(0,qn.A)("(max-width: 767px)");return s.createElement(Qn.A,(0,C.A)({rootId:t,containerId:t,onDragEnd:(e,t)=>{(0,Un.Q)(t),c(e)},items:i,containerWidth:a-(l?16:26)},o,{Item:(0,s.forwardRef)(((e,t)=>{let{id:a,...o}=e;return s.createElement(as,(0,C.A)({key:a,id:a,role:"graphics-object","aria-roledescription":"chart","data-submenuid":n,ref:t},o))})),rearrangeable:!1}))},is=(0,s.memo)(rs);var cs=n(74258),ls=n(37031);const ds=e=>{let{id:t,isActiveSticky:n}=e;return s.createElement(cs.t,{gap:0,id:t},s.createElement(ls.t,{id:t,margin:[1,0,0],hasTooltip:n}),!n&&s.createElement(Jn,{id:t}))},hs=(0,s.memo)(ds),us=e=>{let{id:t}=e;const n=(0,c.ID)(),a=(0,Et.e)(),o=(0,Fn.yO)(),{subMenuChartIds:r}=(0,zn.Ee)(t),i=(0,Vn.N)(),l=(0,s.useMemo)((()=>{const[e]=r;let s=i.getChildren().find((e=>e.match({id:t})));if(s)return s;const c=r.map((e=>({value:e,label:o(e).context})));return s=a.makeChart({attributes:{id:"custom-k8s-map-".concat(t),contextScope:[e],roomId:n,composite:!0,chartLibrary:"groupBoxes",groupBy:["label"],groupByLabel:["k8s_namespace","k8s_pod_name"],aggregationMethod:"avg",eliminateZeroDimensions:!1,contextItems:c,toolboxElements:[]},makeTrack:jn}),i.appendChild(s),s}),[t,i]);return s.createElement(Nt.A,{key:i.getId(),margin:[0,0,2],chart:l,"data-chartid":t,"data-track":l.track("container")})},ps=e=>{let{id:t,...n}=e;return s.createElement(it.k,{id:t,padding:[6,0,0]},s.createElement(ct._,{id:t}),s.createElement(lt.G,{id:t,padding:[2,0,0]}),s.createElement(us,(0,C.A)({id:t},n)))},ms={k8s:(0,s.memo)(ps)},gs=e=>{if(ms[e.flavour])return ms[e.flavour];switch(e.level){case 0:return $n;case 1:return hs;case 2:return is;default:return null}},fs=e=>{let{onChartNameChange:t,initialChartName:n,dashboardOptions:a,linkToGo:o,contextToGo:r,containerWidth:i}=e;const[c,,,l]=(0,Rn.A)("addToDashboardModal"),{setActiveMenuGroupId:d,setActiveSubMenuId:h}=(0,ot.A)({onChartNameChange:t,initialChartName:n,linkToGo:o,contextToGo:r});return s.createElement(he.H,null,s.createElement(rt.A,{onActiveMenuGroupId:d,onActiveSubMenuId:h,getComponent:gs,dashboardOptions:a,initialChartName:n,containerWidth:i}),c&&s.createElement(Nn.A,{onClose:l}))},bs=(0,s.memo)((()=>{const[e,t]=(0,p.KB)(),n=(0,Et.e)(),a=!!e&&!!n&&n.getNode({id:e.context}),o=()=>{if(t(null),null===e||void 0===e||!e.context||!a)return;const n={...a.getAttribute("overlays")};delete n.alert,a.updateAttribute("overlays",n),history.replaceState({},"")};(0,s.useEffect)((()=>o),[]);const r=(0,c.ID)(),i=(0,qe.R7)((null===e||void 0===e?void 0:e.context)&&r,null===e||void 0===e?void 0:e.context);if(!e||null===i||void 0===i||!i.loaded)return null;const{firstEntry:l}=i;return s.createElement(P.Layer,{backdrop:!1,position:"top",margin:[26,0,0],padding:[26,0,0]},s.createElement(P.Flex,{background:"tooltip",padding:[1,2],gap:2},s.createElement(P.TextSmall,null,"Showing alert in ",s.createElement(P.TextSmall,{strong:!0},e.instance)," on"," ",s.createElement(P.TextSmall,{strong:!0},new Date(1e3*e.lastStatusChange).toLocaleString()),!l&&" doesn't exist on the node anymore",!!l&&l>e.lastStatusChange&&" exceeds agent data retention settings"),s.createElement(P.Flex,{flex:!1},s.createElement(P.Icon,{name:"x",color:"tooltipText",onClick:o,size:"small"}))))})),ys=bs,vs={NoChartsView:sn,NoNodesView:re.A,sidebar:{title:"Filters",hiddenTabs:["info"],Component:pe.Ay,props:{}},dashboardOptions:{},loadingMessage:"Loading charts...",Header:Dn},_s={overview:{...vs,sidebar:{...vs.sidebar,title:"Overview"},feature:"Overview"},k8s:{...vs,NoChartsView:cn,NoNodesView:cn,sidebar:{...vs.sidebar,title:"Kubernetes"},loadingMessage:"Loading k8s charts...",feature:"Kubernetes"},singleNode:{...vs,sidebar:{...vs.sidebar,title:"Single Node",hiddenTabs:["filters"],props:{showCollapsed:!0}},feature:"SingleNode"}},ws=()=>((0,Yt.A)(),null),ks=(0,s.memo)((e=>{let{flavour:t="overview",invalidationKey:n,nodeIds:a,loaded:r,getChart:i,chartIds:c,areChartsIdsEmpty:l,showNoChartsView:d,showNoNodesView:h,initializing:u,chartName:p,setChartName:m,chartsLoaded:g,widthRef:f,containerWidth:b,nodesKey:y,blurred:v,blurProps:_={},BlurredContent:w,noPreferredNodesError:k}=e;const{dashboardOptions:T,NoChartsView:S,NoNodesView:x,sidebar:P,loadingMessage:q,Header:I,feature:B="Overview"}=_s[t],{state:L}=(0,o.zy)();return h?s.createElement(ie.Ay,{feature:B,mode:"NoNodesView"},s.createElement(x,null)):u?s.createElement(M.A,{title:"Please wait while charts are being initialized.",body:"Thank you for your patience!"}):r?s.createElement(ie.Ay,{feature:B},s.createElement(he.A,{key:n,getObject:i,ids:c,linkToGo:null===L||void 0===L?void 0:L.chartName,extraKey:t,deps:[y]},s.createElement(ws,null),s.createElement(ys,null),s.createElement(le.A,{ref:f,sidebar:s.createElement(P.Component,(0,C.A)({nodeIds:a,title:P.title,initialChartName:p,hiddenTabs:P.hiddenTabs,flavour:t,loaded:g},P.props)),blurred:v,blurProps:_,BlurredContent:w},s.createElement(I,{flavour:t}),g||k?d||l?s.createElement(S,{noPreferredNodesError:k}):s.createElement(fs,{dashboardOptions:T,initialChartName:p,onChartNameChange:m,linkToGo:null===L||void 0===L?void 0:L.chartName,contextToGo:null===L||void 0===L?void 0:L.contextToGo,containerWidth:b}):s.createElement(M.A,{title:q})))):s.createElement(M.A,{title:q})})),Ts=ks;var Ss=n(87337),Ms=n(85686);const xs=e=>t=>{const n=(0,v.vt)(),a=(0,de.nl)(),o=(0,de.xY)(a,"isLive"),r=(0,de.xY)(a,"name"),i=(0,de.xY)(a,"isPreferred");(0,B.ZB)({title:r,id:a,destination:a});const c=(0,de.BQ)(a,n),l=(0,Ss.KF)();(0,s.useEffect)((()=>{if(!o)return;if("hasValue"!==c.state)return;const{contents:e}=c;null!==e&&void 0!==e&&e.uid&&r&&l(e.uid,null,r)}),[c,o,r]);const d=(0,s.useMemo)((()=>[a]),[a]);return s.createElement(e,(0,C.A)({flavour:"singleNode",nodeIds:d,blurred:!i,blurProps:{value:"12px"},BlurredContent:Ms.A},t))};var Cs=n(61658),Ps=n(52768);var qs=n(28973),Is=n(13752),Bs=n(92815),Ls=n(72582),As=n(60247),Es=n(64125),Ds=n(6504),Ns=n(62709),Rs=n(22332),Us=n(21875);const Fs=e=>{const t=(0,Rs.useChart)(),[,n]=(0,Us.v7)();return s.createElement(Ds.Button,(0,C.A)({icon:s.createElement(Ds.default,{svg:Ns.default,size:"16px"}),onClick:()=>n(t),title:"Add alert configuration","data-testid":"chartHeaderToolbox-addAlertConfiguration"},e))};var zs=n(93155);var Os=n(98496);const Hs={ErrAllNodesFailed:"You do not have permissions to request charts metadata.",default:"Something went wrong during the request of charts metadata."},Vs=function(){let{error:e=""}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return s.createElement(Os.A,{title:"Failed to request contexts"},s.createElement(P.TextBig,null,Hs[e]||Hs.default))},Qs={default:{shouldHide:()=>!1},k8s:{shouldHide:e=>{let{context:t}=e;return!t.includes("k8s")}}},js=[],Gs="ErrNoPreferredNodeRequested",Ws=e=>(0,s.memo)((t=>{let{flavour:n="overview",nodeIds:a=js,...r}=t;const i=(0,v.vt)(),l=(0,c.ID)();let d=(0,L.w7)({extraKey:n,merge:!1,scoped:!0});d=a.length?a:d;const h=(0,oe.nj)(),u=(0,qe._0)(l),{state:m}=(0,o.zy)(),g=(0,qe.R7)(l),f=(0,de.TG)(d),b=(0,Pe.A)(l,d,{spaceId:i}),{contexts:y,metadata:_,loaded:w,dimensionsCount:k}=(0,dn.Yy)({nodeIds:d,flavour:n},i,l),[,T]=(()=>{const{state:e={}}=(0,o.zy)(),{alertId:t=null}=e||{},[n,a]=(0,p.KB)(),r=t||(null===n||void 0===n?void 0:n.id),i=(0,p.JL)(r);(0,p.yk)(i.id),(0,s.useEffect)((()=>{(i.fullyLoaded||i.id)&&a({...i,formattedLastStatusChangeValue:(0,Ps.m3)(i.lastStatusChangeValue,i.units),linkToGo:"chart_".concat((0,Ze.A)(i.context))})}),[i.id,i.fullyLoaded]);const c=null!==n&&void 0!==n&&n.id?"chart_".concat((0,Ze.A)(n.context)):null;return[i.id,c]})(),S=a?a.join():n,M=(0,v.dg)(),[x,{width:P}]=(0,ce.A)();((e,t,n)=>{let{width:a,host:r}=n;if(!r)throw"No host provided";const i=(0,Et.e)(),c=(0,s.useRef)(),l=(0,qe.aZ)(e,"error"),[{correlation:d},h]=(0,ue.N9)(),{state:u,pathname:p}=(0,o.zy)(),m=(0,Vn.G)(),g=(0,qe.jI)(e),f=(0,qe.DQ)(e);(0,s.useLayoutEffect)((()=>{if(!e||!i||l)return;let n=i.getRoot().getChildren().find((e=>e.match({id:p})));if(!n)return n=i.makeContainer({attributes:{id:p,roomId:e,host:r,navigation:d?"highlight":"pan",overlays:{proceeded:{type:"proceeded"}},composite:!0,nodesScope:t,hasCorrelation:!0,versions:g,containerWidth:a,toolboxElements:[...zs.Dm?[Fs]:[],Ls.default,Is.default,Bs.default,Es.A,As.A]}}),i.appendChild(n),m(p),c.current=n,(0,qs.unregister)(i.on("correlation",((e,t)=>{t&&h({correlation:!0})})),n.onAttributeChange("versions",f));m(p)}),[e,l,p]),(0,s.useMemo)((()=>{c.current&&(c.current.setAttribute("containerWidth",a),c.current.getNodes().forEach((e=>e.updateAttribute("containerWidth",a))))}),[c.current,a]),(0,ln.A)((()=>{c.current&&c.current.getNodes().forEach((e=>{e.updateAttribute("nodesScope",t),e.getAttribute("active")&&"chart"===e.type&&e.fetch()}))}),[c.current,t]),(0,s.useEffect)((()=>{c.current&&c.current.getApplicableNodes({syncHighlight:!0}).forEach((e=>{e.updateAttribute("navigation",d?"highlight":"pan")}))}),[c.current,d]),(0,s.useEffect)((()=>()=>c.current&&c.current.destroy()),[]),(0,s.useEffect)((()=>{if(!c.current)return;if(!u||!u.context)return;const{context:e,chartId:t,nodeId:n}=u,s=c.current.getNode({id:e});s&&s.updateAttributes({selectedInstances:["".concat(t,"@").concat(n)],selectedNodes:[n]});const a=t&&n&&c.current.on("chartLoaded",(s=>{const o=s.getAttribute("id");e===o&&(s.updateAttributes({selectedInstances:["".concat(t,"@").concat(n)],selectedNodes:[n]}),a())}));return()=>u&&(0,qs.unregister)(a)}),[c.current,u])})(l,d,{host:M?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(i,"/rooms/").concat(l),width:P});const q=(0,qe.OL)(l),B=(0,qe.rx)(l),A=w?_:g,E=Qs[n]||Qs.default,D=(0,qe.bo)(l),N=(0,I.A)(D),R=(0,Hn.rq)(w?y:q,g,l,{...E,force:w||D!==N,cacheKey:"".concat(n,"-").concat(k,"-").concat(S)}),U=(0,qe.yO)(l,_),F=(0,I.A)(b,!0),z=R<1,[O,H]=(0,ue.N9)("chartName",{key:l,extraKey:S,flavour:"val"});(0,s.useEffect)((()=>{l&&H(T||(null===m||void 0===m?void 0:m.chartName)||O)}),[l,T]);const V=(0,Vn.N)(),Q=Object.keys(A).length<1&&u||d.length&&!f.length,j=(0,oe.CK)(),G=(null===B||void 0===B?void 0:B.errorMsgKey)==Gs;if(!Q&&!1!==F&&b&&"No data for this period"!==b&&b!==Gs&&!Object.keys(A).length)return s.createElement(Vs,{error:b});const W=!!l&&h&&(!!V||G);return s.createElement(e,(0,C.A)({nodeIds:f,loaded:W,getChart:U,areChartsIdsEmpty:z,showNoNodesView:h&&!j.length,showNoChartsView:Q,initializing:b&&(0,Cs.O)(b),chartName:O,setChartName:H,chartsLoaded:u&&!!P,invalidationKey:l,flavour:n,chartIds:w?y:q,widthRef:x,containerWidth:P,nodesKey:S,noPreferredNodesError:G},r))}));var Ks=n(45894);var Zs=n(31604);const Ys=(0,a.A)((()=>n.e(6760).then(n.bind(n,96760))),"Contents"),Js=()=>{const[e,t]=(0,Zs.A$)();return e?s.createElement(s.Suspense,{fallback:""},s.createElement(Ys,{id:e,onClose:()=>t(null)})):null},Xs=e=>{let{title:t,icon:n,iconColor:a,...o}=e;return s.createElement(P.Flex,(0,C.A)({alignItems:"center",gap:2},o),n&&s.createElement(P.Icon,(0,C.A)({name:n},a?{color:a}:{})),s.createElement(P.TextBig,null,t))},$s=e=>{let{titleProps:t,children:n,...a}=e;const o={padding:[4],gap:4,background:"panelBg",...t?{column:!0}:{}};return s.createElement(P.Flex,(0,C.A)({},o,a),t?s.createElement(Xs,t):null,n)},ea=e=>function(){let{title:t="",headerInfo:n,containerProps:a={},TitleComponent:o=P.TextBigger,...r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return s.createElement(P.Flex,(0,C.A)({column:!0,gap:2,alignItems:"center",justifyContent:"center"},a),t&&s.createElement(P.Flex,{gap:2,alignItems:"center"},s.createElement(o,null,t),n),s.createElement(e,r))},ta=ea((e=>{let{number:t=0,NumberComponent:n=P.TextHuge}=e;return s.createElement(n,{strong:!0},t)})),na=e=>{const t=e.reduce(((e,t)=>{let{value:n}=t;return e+n}),0);return e.map((e=>({...e,width:"".concat(Math.floor(e.value/t*100),"%")})))},sa=function(){let{data:e=[],testId:t="",numberIndicatorProps:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return s.createElement(P.Flex,{width:"100%",column:!0,gap:2},s.createElement(P.Flex,{justifyContent:"around"},e.map((e=>{let{label:t,value:a}=e;return s.createElement(ta,(0,C.A)({key:"".concat(t,"-").concat(a),title:t,number:a},n))}))),s.createElement(P.ProgressBar,{background:"borderSecondary",border:"none",containerWidth:"100%","data-testid":t,height:2,value:na(e.filter((e=>{let{omit:t}=e;return!t})))}))},aa=ea((e=>{let{total:t,count:n,live:a,offline:o,stale:r,unseen:i,...c}=e;const l=(0,s.useMemo)((()=>[...[{label:"Live",value:a,color:"success"},{label:"Offline",value:o,color:"offline"},{label:"Stale",value:r,color:"stale"}],...i?[{label:"Unseen",value:i,color:"unseen"}]:[]]),[a,o,r,i]);return s.createElement(P.Flex,{width:"100%",column:!0,alignItems:"center",gap:4},s.createElement(P.Flex,{gap:2,alignItems:"baseline"},s.createElement(P.TextHuge,(0,C.A)({strong:!0},c),n||"-"),"-"!=n&&t!=n&&s.createElement(P.Text,null,"of ",t)),s.createElement(sa,{data:l,numberIndicatorProps:{TitleComponent:P.TextBig,NumberComponent:P.TextBigger}}))})),oa=e=>{const t=(0,oe.CK)(),n=t.length,a=(0,L.eO)({keepAll:!1}),o=(0,s.useMemo)((()=>a.reduce(((e,t)=>{let{isLive:n,isOffline:s,isUnseen:a,state:o}=t;return{live:n?e.live+1:e.live,offline:s?e.offline+1:e.offline,stale:"stale"==o?e.stale+1:e.stale,unseen:a?e.unseen+1:e.unseen}}),{live:0,offline:0,stale:0,unseen:0})),[a]),r=(0,s.useMemo)((()=>{const e=(null===a||void 0===a?void 0:a.length)||"-";return{total:n,count:e,title:a&&n!=e?"Selected nodes":"Total nodes",...o}}),[t,a]);return s.createElement(aa,(0,C.A)({},r,e))};var ra=n(92677);const ia=(0,j.default)(P.TextSmall).withConfig({displayName:"pieChartLabels__StyledText",componentId:"sc-3919ls-0"})(["display:flex;align-items:center;cursor:",";&:hover{opacity:",";}"],(e=>{let{onClick:t}=e;return t?"pointer":"auto"}),(e=>{let{onClick:t}=e;return t?"0.7":"1"})),ca=(0,s.memo)((e=>{let{title:t,value:n,color:a,onClick:o=null}=e;return s.createElement(P.Flex,{alignItems:"center",justifyContent:"between",width:"100%",gap:4,flex:{grow:1,shrink:0}},s.createElement(P.Flex,{gap:1},s.createElement(P.Flex,{width:"4px",height:"16px",background:a}),s.createElement(ia,{whiteSpace:"nowrap",onClick:o},t,o&&s.createElement(P.Icon,{color:"textLite",margin:[0,0,0,1],name:"nav_arrow_goto",height:"10px",width:"10px"}))),s.createElement(P.Text,{strong:!0},null!==n&&void 0!==n?n:"-"))})),la=e=>{let{data:t}=e;return s.createElement(P.Flex,{column:!0,alignItems:"start",justifyContent:"center",gap:5},t.map(((e,t)=>{let{title:n,value:a,color:o,onClick:r}=e;return s.createElement(ca,{key:"".concat(n,"-").concat(a,"-").concat(t),title:n,value:a,color:o,onClick:r})})))},da=e=>{let{data:t,theme:n}=e;return t.map((e=>({...e,color:(0,P.getColor)(e.color)({theme:n})})))},ha=e=>{let{chartData:t=[],lineWidth:n=15,animate:a=!0,label:o,hasData:r}=e;const i=(0,s.useContext)(j.ThemeContext);return s.createElement(P.Flex,{gap:4,margin:[0,4],height:{min:"70px",max:"130px"},alignItems:"center"},s.createElement(P.Flex,{height:"70px",flex:{grow:1,shrink:1}},r?s.createElement(ra.PieChart,{label:()=>o,labelStyle:{fontSize:"34px",fontWeight:700,lineHeight:"38px",fill:(0,P.getColor)("textDescription")({theme:i})},labelPosition:0,data:da({data:t,theme:i}),lineWidth:n,animate:a}):s.createElement(P.Icon,{color:"border",name:"pie_chart_skeleton",width:"70px",height:"70px",alignSelf:"center"})),s.createElement(la,{data:t}))};var ua=n(23452);const pa=ea((e=>s.createElement(P.Flex,{gap:2,justifyContent:"between",padding:[2,0,0,0]},s.createElement(ha,e)))),ma=e=>{const t=(0,ua.QD)({extraKey:"alerts"}),{critical:n,warning:a}=(t||[]).reduce(((e,t)=>{let{status:n}=t;return{...e,[n]:e[n]+1}}),{critical:0,warning:0}),o=(0,Ps.x7)(),r=(0,s.useMemo)((()=>({chartData:[{title:"Critical",value:n,color:"errorText",onClick:()=>o("critical")},{title:"Warning",value:a,color:"warningText",onClick:()=>o("warning")}],hasData:!!t,label:null===t||void 0===t?void 0:t.length})),[n,a,o]);return s.createElement(pa,(0,C.A)({title:"Active alerts"},r,e))},ga=()=>s.createElement(P.Flex,{column:!0,gap:4,basis:"205px"},s.createElement(oa,null),s.createElement(Xt.A,null),s.createElement(ma,null));var fa=n(63950),ba=n.n(fa),ya=n(35119),va=n(80158);const _a=e=>{let{label:t,color:n}=e;return s.createElement(P.Flex,{height:"32px",gap:1,alignItems:"center"},s.createElement(P.Flex,{width:"12px",height:"12px",background:n}),s.createElement(P.Text,null,(0,va.Zr)(t)))},wa=e=>{let{colorBy:t}=e;const n=Object.entries(ya.Cc[null===t||void 0===t?void 0:t.value]||{}),a=ya.Ug[null===t||void 0===t?void 0:t.value]||{};return n.length?s.createElement(P.Flex,{gap:2},n.map((e=>{let[t,n]=e;return s.createElement(_a,{key:t,label:a[t]||t,color:n})}))):null},ka=e=>{let{groupBy:t,setGroupBy:n=ba(),colorBy:a,setColorBy:o=ba(),onAddNode:r}=e;return s.createElement(P.Flex,{alignItems:"end",justifyContent:"between"},s.createElement(P.Flex,{gap:3,alignItems:"end"},s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.Text,null,"Group by"),s.createElement(P.Select,{options:ya.XJ,value:t,onChange:n})),s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.Text,null,"Color by"),s.createElement(P.Select,{options:ya.Hn,value:a,onChange:o})),s.createElement(wa,{colorBy:a})),s.createElement(fe.A,{flavour:"borderless",icon:"add_node",iconColor:"text",onClick:r}))},Ta=(0,j.default)(P.Box).withConfig({displayName:"styled__PolygonContainer",componentId:"sc-9bx1cv-0"})(["width:22px;position:relative;aspect-ratio:1;background-color:",";cursor:",";opacity:",";clip-path:polygon( 93.56% 74.55%,50.52% 100%,6.96% 75.45%,6.44% 25.45%,49.48% 0%,93.04% 24.55%,93.56% 74.55% );"],(e=>{let{background:t}=e;return(0,P.getColor)(t||"offline")}),(e=>{let{onClick:t}=e;return t?"pointer":"default"}),(e=>{let{isDisabled:t}=e;return t?"0.5":"1"})),Sa=(0,j.default)(P.Box).withConfig({displayName:"styled__PolygonInner",componentId:"sc-9bx1cv-1"})(["width:18px;position:absolute;top:2px;left:2px;aspect-ratio:1;background-color:",";opacity:",";clip-path:polygon( 93.56% 74.55%,50.52% 100%,6.96% 75.45%,6.44% 25.45%,49.48% 0%,93.04% 24.55%,93.56% 74.55% );"],(e=>{let{background:t}=e;return(0,P.getColor)(t||"offline")}),(e=>{let{isDisabled:t}=e;return t?"0.5":"1"})),Ma=(0,j.default)(P.Icon).withConfig({displayName:"styled__AddNodeIcon",componentId:"sc-9bx1cv-2"})(["position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);"]),xa=(0,j.default)(P.Box).withConfig({displayName:"styled__Groups",componentId:"sc-9bx1cv-3"})(["width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;"]),Ca=(0,j.default)(P.Flex).withConfig({displayName:"styled__NodeContainer",componentId:"sc-9bx1cv-4"})(["opacity:",";"],(e=>{let{isActive:t}=e;return t?"1":".3"})),Pa=(0,It.A)((e=>{let{children:t,innerProps:n={},containerProps:a={},...o}=e;return s.createElement(Ca,(0,C.A)({margin:[0,0,.5,0]},o),s.createElement(Ta,a,s.createElement(Sa,n,t)))})),qa=e=>{let{type:t,onClick:n}=e;const a=(0,c.XA)(),o=(0,v.dg)(),r=(0,S.JT)("node:Create"),i=(0,s.useMemo)((()=>({background:"success",isDisabled:!r,...r?{onClick:()=>n({type:t})}:{}})),[r]),l=r?"Add node":o?"You are viewing your local node, connect to cloud and connect multiple nodes to view at once":"Only admin users can add nodes to ".concat(a.name);return s.createElement(s.Fragment,null,s.createElement(Pa,{containerProps:i,innerProps:{background:"panelBg"},tooltip:l,isActive:!0},s.createElement(Ma,{name:"plus",color:"success"})))},Ia=Pa;var Ba=n(33931);const La=e=>{var t,n;let{architecture:a,cpuFrequency:o,cpus:r,diskSpace:i,memory:c,os:l,osName:d}=e;const h=[(0,nt.O)(o),(0,nt.ws)(r,1===r?"Core":"Cores"),(0,nt.ws)(a),(0,nt.ws)((0,nt.RI)(c),"RAM"),(0,nt.ws)((0,nt.RI)(i),"HD")];return s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.Flex,{gap:1},s.createElement(P.Icon,{"data-testid":"node-system-info-icon",name:(null===(t=Ye.u[d])||void 0===t?void 0:t.iconName)||(null===(n=Ye.U[l])||void 0===n?void 0:n.iconName)||"os",width:"16px",height:"16px",color:"text"}),s.createElement(P.Flex,null,(0,nt.ws)(d))),h.map(((e,t)=>s.createElement(P.Text,{key:t},"\u2022 ",e))))};var Aa=n(89879);const Ea=e=>{let{isStable:t}=e;const n=t?{icon:"checkmark_s",color:"primary",borderColor:"primary"}:{icon:"warning_triangle",color:"stale",borderColor:"stale"};return s.createElement(P.Pill,(0,C.A)({hollow:!0},n),t?"Stable":"Unstable")},Da=function(){let{id:e,name:t,state:n,hw:a,os:o,isStable:r,setActiveNodes:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=(0,Zs.c8)(),{nodes:l}=c||{},d=null===l||void 0===l?void 0:l[e];return(0,s.useEffect)((()=>{if("function"==typeof i){const{children:t,parents:n}=d||{},s=d?[...[...n,...t].map((e=>{let{id:t}=e;return t}))||[],e]:[e];i({isHover:!0,nodes:s})}return()=>{"function"==typeof i&&i(ya.vd)}}),[e,d]),s.createElement(P.Flex,{column:!0,gap:3,width:{min:40},background:"mainBackground",padding:[2,4]},s.createElement(P.TextBig,{strong:!0},t),s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.Text,null,"Status"),s.createElement(P.Flex,null,s.createElement(Ba.A,{state:n}))),s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.Text,null,"Connection"),s.createElement(P.Flex,null,s.createElement(Ea,{isStable:r}))),s.createElement(P.Flex,{column:!0,gap:1},s.createElement(P.Text,null,"Alerts"),s.createElement(D,{id:e})),s.createElement(Xt.A,{color:"textLite"}),s.createElement(La,{architecture:a.architecture,cpuFrequency:a.cpuFrequency,cpus:a.cpus,"data-testid":"nodeRow-system-info",diskSpace:a.diskSpace,memory:a.memory,name:t,osName:o.nm,os:o.id}),s.createElement(Xt.A,{color:"textLite"}),s.createElement(Aa.A,{id:e}))};n(8159),n(37550);const Na=function(){var e;let{colorBy:t={},node:n={},isStable:a}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{value:o}=t,r=ya.AZ[o],i=(0,g.Xt)(n.id),{critical:c,warning:l}=(0,p.AO)(i),d=ya.Cc[o];let h=d[null===r||void 0===r||null===(e=r(n))||void 0===e||null===(e=e.group)||void 0===e?void 0:e.toLowerCase()];if(o==ya.w9.stability.value){h=d[a?"stable":"unstable"]}return{borderColor:(0,s.useMemo)((()=>(e=>{let{critical:t,warning:n}=e;return t?"error":n?"warning":null})({critical:c,warning:l})||h),[h,c,l]),background:h}},Ra=e=>{let{colorBy:t,stability:n={},setActiveNodes:a,...o}=e;const{isStable:r}=n[o.id]||{},{borderColor:i,background:c}=Na({colorBy:t,node:o,isStable:r}),[,l]=(0,Zs.A$)(),d=(0,s.useCallback)((()=>l(o.id)),[o.id,l]);return s.createElement(Ia,(0,C.A)({containerProps:{background:i,onClick:d},innerProps:{background:c},tooltip:s.createElement(Da,(0,C.A)({isStable:r,setActiveNodes:a},o))},o))};var Ua=n(49389);const Fa=(0,s.memo)((e=>{let{nodes:t=[],type:n,stability:a={},groupBy:o,colorBy:r,onAddNode:i,...c}=e;const[l,d]=(0,s.useState)(ya.vd),{isHover:h,nodes:u}=l,p=null===o||void 0===o?void 0:o.canAddNodes;return s.createElement(P.Flex,(0,C.A)({flexWrap:!0},c),t.map((e=>s.createElement(Ra,(0,C.A)({key:e.id,colorBy:r,stability:a,isActive:!h||u.includes(e.id),setActiveNodes:d},e)))),p?s.createElement(qa,{type:n,onClick:i}):null)})),za=(e=>t=>{var n;let{title:a,...o}=t;return a?s.createElement(P.Flex,{column:!0,gap:2},s.createElement(P.Flex,{justifyContent:"between",border:{side:"bottom",color:"border"}},s.createElement(P.TextBig,{strong:!0},a),null!==(n=o.nodes)&&void 0!==n&&n.length?s.createElement(P.TextBig,null,"".concat(o.nodes.length," ").concat((0,Ua.su)(o.nodes.length))):null),s.createElement(e,o)):s.createElement(e,o)})((Oa=Fa,e=>{const{stability:t}=(0,Zs.SW)();return s.createElement(Oa,(0,C.A)({stability:t},e))}));var Oa;const Ha=e=>t=>{const n=ya.AZ[e],s=(0,ya.Hl)(e);return t.reduce(((e,t)=>{const{group:a="unknown",type:o}=n(t);return e[a]?e[a].nodes=[...e[a].nodes,t]:e[a]={title:s(a),type:o,nodes:[t]},e}),{})},Va={os:Ha("os"),version:Ha("version"),status:Ha("status"),technology:Ha("technology"),replication:Ha("replication"),cloudProvider:Ha("cloudProvider"),cloudRegion:Ha("cloudRegion"),instanceType:Ha("instanceType"),none:e=>({none:{nodes:e}})},Qa=e=>{var t;let{value:n}=e;const s=(0,L.eO)({keepAll:!1});return null===(t=Va[n])||void 0===t?void 0:t.call(Va,s)},ja=()=>s.createElement(P.Flex,null,s.createElement(P.TextBig,null,"No nodes found")),Ga=e=>{let{groupBy:t,colorBy:n,onAddNode:a}=e;const o=Qa(t);if(!o)return s.createElement(ja,null);const r=Object.values(o);if(!r.length)return s.createElement(ja,null);if((null===t||void 0===t?void 0:t.value)==ya.nv.value){const{nodes:e}=r[0];return s.createElement(za,{nodes:e,groupBy:t,colorBy:n,onAddNode:a})}const i=1==r.length?P.Flex:xa;return s.createElement(i,null,r.map((e=>{let{title:o,type:r,nodes:i}=e;return s.createElement(za,{key:o,title:o,type:r,nodes:i,groupBy:t,colorBy:n,onAddNode:a,margin:[0,0,2,0]})})))},Wa=()=>{const[e,t]=(0,s.useState)(ya.nv),[n,a]=(0,s.useState)(ya.jZ),[o,r]=(0,s.useState)(),i=(0,s.useCallback)((e=>{r(e)}),[r]),c=(0,s.useCallback)((()=>r()),[r]);return s.createElement(P.Flex,{column:!0,gap:4,basis:"calc(100% - 410px)"},s.createElement(ka,{groupBy:e,setGroupBy:t,colorBy:n,setColorBy:a,onAddNode:i}),s.createElement(P.Flex,{height:{max:150},overflow:{vertical:"auto"}},s.createElement(Ga,{groupBy:e,colorBy:n,onAddNode:i})),o&&s.createElement(be.A,{nodeType:null===o||void 0===o?void 0:o.type,onClose:c}))},Ka=e=>s.createElement($s,(0,C.A)({width:"100%",alignItems:"center",justiFyContent:"center"},e)),Za=()=>{const{loaded:e,totalChildren:t,totalParents:n,totalStandalone:a}=(0,Zs.c8)(),o=(0,s.useMemo)((()=>[{label:"Parents",value:n,color:["blue","indigo"]},{label:"Children",value:t,color:["purple","lilac"]},{label:"Standalone",value:a,color:["yellow","yellow120"]}]),[t,n]);return e?s.createElement(sa,{numberIndicatorProps:{TitleComponent:P.Text},data:o}):s.createElement(Ka,{height:"58px"})},Ya=()=>s.createElement(P.Flex,{column:!0,gap:1,alignItems:"center",width:"220px","data-testid":"nodesByDataReplication-information-text",overflow:"hidden"},s.createElement(P.TextMicro,null,s.createElement(P.TextMicro,{strong:!0},"None:")," The node's data are only on the node itself. Lose the node, lose the data!"),s.createElement(P.TextMicro,null,s.createElement(P.TextMicro,{strong:!0},"Single:")," The node's metrics are replicated to one parent. The parent can trigger alerts for the child."),s.createElement(P.TextMicro,null,s.createElement(P.TextMicro,{strong:!0},"Multi:")," Same as dual replication, but with the metrics replicated to more than one parent. Each parent in the hierarchy can trigger alerts for its children."),s.createElement(P.TextMicro,{margin:[2,0]},"Aim to have most of your nodes with at least a dual replication and your critical ones with a multiple one.")),Ja=()=>s.createElement(K.A,{isBasic:!0,plain:!0,content:Ya,align:"bottom"},s.createElement(P.Icon,{name:"information",color:"textDescription",size:"small"})),Xa=ea((()=>{const e=(0,Zs.c8)(),{loaded:t,replicationFactor:n}=e||{},a=(0,s.useMemo)((()=>[{label:"None",value:(null===n||void 0===n?void 0:n.r_1)||0,color:ya.q5.r_1},{label:"Single",value:(null===n||void 0===n?void 0:n.r_2)||0,color:ya.q5.r_2},{label:"Multi",value:(null===n||void 0===n?void 0:n["r_*"])||0,color:ya.q5["r_*"]}]),[n]);return t?s.createElement(sa,{data:a}):s.createElement(Ka,{height:"74px"})})),$a=()=>s.createElement(Xa,{title:"Data Replication",headerInfo:s.createElement(Ja,null)}),eo=()=>s.createElement(P.Flex,{column:!0,gap:4,basis:"205px"},s.createElement(Za,null),s.createElement(Xt.A,null),s.createElement($a,null)),to=()=>s.createElement($s,null,s.createElement(ga,null),s.createElement(Xt.A,{vertical:!0}),s.createElement(Wa,null),s.createElement(Xt.A,{vertical:!0}),s.createElement(eo,null));var no=n(66118),so=n(44731);no.t1.register(no.PP,no.kc,no.A6,no.E8,no.m_,no.s$);const ao={borderWidth:0,maxBarThickness:15,minBarLength:0},oo=function(){let{alertsStats:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,s.useContext)(j.ThemeContext),{hosts:n}=(null===e||void 0===e?void 0:e.nodes)||{},a={animation:!1,maintainAspectRatio:!1,plugins:{legend:{display:!1}},responsive:!0,scales:{x:{stacked:!0,grid:{color:(0,P.getColor)("borderSecondary")({theme:t})},afterSetDimensions:e=>{e.maxHeight=50},ticks:{precision:0,callback:(e,t)=>{let n=o.labels[t];if(!n)return;let s=0;for(;(null===(a=n)||void 0===a?void 0:a.length)>20;){var a;n=(0,va.P3)(n,s),s+=1}return n}}},y:{stacked:!0,grid:{color:(0,P.getColor)("borderSecondary")({theme:t})},afterSetDimensions:e=>{e.maxWidth=50}}}},o=(0,s.useMemo)((()=>{if(!n)return{datasets:[],labels:[]};const[e,t]=Object.entries(n).reduce(((e,t)=>{let[n,{critical:s,warning:a}]=t;return e[0].push(n),e[1].critical?e[1].critical=[...e[1].critical,s]:e[1].critical=[s],e[1].warning?e[1].warning=[...e[1].warning,a]:e[1].warning=[a],e}),[[],{}]);return{datasets:Object.entries(t).map((e=>{let[t,n]=e;return{...ao,backgroundColor:"critical"==t?"#DB162F":"#FF9700",data:n,label:t}})),labels:e}}),[n]);return o.datasets?s.createElement(P.Flex,{width:"100%",height:40},s.createElement(so.yP,{data:o,options:a})):null},ro=e=>{let{alertsStats:t}=e;const{nodes:n}=t||{},{critical:a,warning:o,total:r}=n||{},i=(0,s.useMemo)((()=>[{label:"Warning",value:o,color:["yellow","yellow80"]},{label:"Critical",value:a,color:["red","red100"]},{label:"Total",value:r,color:["purple","lilacFocus"],omit:!0}]),[a,o,r]);return n?s.createElement(sa,{data:i}):null};var io=n(79897);const co=()=>{const e=(0,c.ID)(),t=(0,o.Zp)(),[n,a]=(0,r.Ay)(),[,i]=(0,p.kJ)(),[,l]=(0,p.DV)(),[,d]=(0,ue.N9)(),h=(0,s.useMemo)((()=>({defaultValue:[],key:e,extraKey:"feedFilters",flavour:"arr",merge:!1})),[e]),[,u]=(0,ue.N9)("alert_names",h),[,m]=(0,ue.N9)("chart_names",h),g=(0,s.useCallback)((e=>{let{name:s}=e;i(1),l({alertName:s,nodeId:null}),t("/spaces/".concat(n,"/rooms/").concat(a,"/alerts"),{replace:!0})}),[t,n,a,i,l]);return{goToEvents:(0,s.useCallback)((e=>{let{name:s,instance:o}=e;d({after:-io.d_,before:0}),s&&u([s]),o&&m([o]),t("/spaces/".concat(n,"/rooms/").concat(a,"/events"))}),[t,n,a,d,u,m]),goToAlertConfigurations:g}},lo=[{id:"name",accessorKey:"name",header:"Alert name",fullWidth:!0,cell:e=>{let{getValue:t,row:n}=e;const a=t(),{goToEvents:o}=co(),r=(0,s.useCallback)((e=>{var t;e.preventDefault(),o({name:a,instance:null===n||void 0===n||null===(t=n.original)||void 0===t?void 0:t.chart})}),[o]);return s.createElement(K.A,{content:"Go to events tab. Timeframe will be set to the last 24 hours.",isBasic:!0},s.createElement(P.Box,null,s.createElement(Jt.A,{onClick:r},a)))}},{id:"chart",name:"chart",fullWidth:!0,header:"Instance"},{id:"occurrences",name:"occurrences",header:"Occurrences"},{id:"duration",name:"duration",header:"Duration (seconds)"}],ho=function(){let{data:e=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.length?s.createElement(P.Flex,{height:{max:50},overflow:{vertical:"auto"}},s.createElement(P.Table,{data:e,dataColumns:lo,sortBy:[{id:"occurrences",desc:!0}],enableResizing:!0})):null},uo={title:"Nodes with the most alerts in the last 24h"},po=e=>{const t=(0,Zs.jg)();return t.loaded?s.createElement($s,(0,C.A)({titleProps:uo},e),s.createElement(oo,{alertsStats:t}),s.createElement(ro,{alertsStats:t}),s.createElement(P.Flex,{column:!0,gap:4},s.createElement(P.TextBig,null,"Top alerts in the last 24 h"),s.createElement(ho,{data:null===t||void 0===t?void 0:t.alerts}))):s.createElement(Ka,null)};var mo,go=n(51913);const fo=(null===(mo=window.envSettings)||void 0===mo?void 0:mo.onprem)||!1,bo={title:"Netdata Assistant",icon:"netdataAssistant",iconColor:"success"},yo=e=>{const[,t]=(0,go.MY)();return fo?null:s.createElement($s,(0,C.A)({titleProps:bo},e),s.createElement(P.Text,null,"Need help? Ask the Netdata Assistant!"),s.createElement(P.Button,{flavour:"hollow",onClick:t},"Start conversation"))},vo=["","k","m","B","T","P","E"],_o=e=>{if(!e)return 0;const t=Math.log10(Math.abs(e))/3|0;if(!t)return e;const n=vo[t];return(e/Math.pow(10,3*t)).toFixed(1)+n},wo={title:"Metrics collected",justifyContent:"center"},ko=e=>{const{metricsCollected:t=0}=(0,Zs.P9)();return s.createElement($s,(0,C.A)({titleProps:wo},e),s.createElement(P.Flex,{width:"100%",justifyContent:"center"},s.createElement(P.TextHuge,{strong:!0},_o(t))))},To={title:"Charts visualized",justifyContent:"center"},So=e=>{const t=(0,c.ID)(),n=(0,qe.R7)(t),a=Object.keys(n||{}).length;return s.createElement($s,(0,C.A)({titleProps:To},e),s.createElement(P.Flex,{width:"100%",justifyContent:"center"},s.createElement(P.TextHuge,{strong:!0},_o(a))))},Mo={title:"Alerts configured",justifyContent:"center"},xo=e=>{const t=(0,p.oU)();return s.createElement($s,(0,C.A)({titleProps:Mo},e),s.createElement(P.Flex,{width:"100%",justifyContent:"center"},s.createElement(P.TextHuge,{strong:!0},_o((null===t||void 0===t?void 0:t.length)||0))))};no.t1.register(no.PP,no.kc,no.A6,no.E8,no.m_,no.s$);const Co=function(){let{dataRetention:e=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,s.useContext)(j.ThemeContext),n={animation:!1,maintainAspectRatio:!1,plugins:{legend:{display:!1}},responsive:!0,scales:{x:{stacked:!0,grid:{color:(0,P.getColor)("borderSecondary")({theme:t})},afterSetDimensions:e=>{e.maxHeight=50},ticks:{precision:0,callback:(e,t)=>{let n=a.labels[t];if(!n)return;let s=0;for(;(null===(o=n)||void 0===o?void 0:o.length)>20;){var o;n=(0,va.P3)(n,s),s+=1}return n}}},y:{stacked:!0,grid:{color:(0,P.getColor)("borderSecondary")({theme:t})},afterSetDimensions:e=>{e.maxWidth=50}}}},a=(0,s.useMemo)((()=>{if(null===e||void 0===e||!e.length)return{datasets:[],labels:[]};const{values:t,labels:n}=e.reduce(((e,t)=>{let{label:n,value:s}=t;return e.labels.push(n),e.values.push(s),e}),{values:[],labels:[]});return{datasets:[{borderWidth:0,maxBarThickness:10,backgroundColor:"#0A81AB",minBarLength:0,data:t,label:"Nodes"}],labels:n}}),[e]);return a.datasets?s.createElement(P.Flex,{width:"100%",height:"100%"},s.createElement(so.yP,{data:a,options:n})):null},Po={title:"Data retention per Nodes"},qo=e=>{const{dataRetention:t}=(0,Zs.P9)();return s.createElement($s,(0,C.A)({titleProps:Po},e),s.createElement(Co,{dataRetention:t}))},Io=()=>{const e=(0,v.vt)(),t=(0,c.ID)(),n=(0,L.w7)({extraKey:"nodesView",merge:!1,scoped:!0});(0,Pe.A)(t,n,{spaceId:e})};var Bo=n(60177);const Lo=()=>{const e=(0,v.vt)(),t=(0,c.ID)(),n=(0,Zs.N3)();(0,u.A)((()=>({enabled:!(!e||!t),fetch:()=>(0,d.hn)(e,t),onReceive:e=>{let{data:t}=e;return n({...Bo.jf,loaded:!0,...t})},onFail:e=>n({...Bo.jf,loaded:!0,error:e}),pollingOptions:{pollingInterval:588e3}})),[e,t])},Ao=()=>{const e=(0,v.vt)(),t=(0,c.ID)(),n=(0,Zs.s6)();(0,u.A)((()=>({enabled:!(!e||!t),fetch:()=>(0,d.uP)(e,t),onReceive:e=>{let{data:t}=e;return n({...Bo.Ml,loaded:!0,...t})},onFail:e=>n({...Bo.Ml,loaded:!0,error:e}),pollingOptions:{pollingInterval:588e3}})),[e,t])},Eo=()=>{const e=(0,v.vt)(),t=(0,c.ID)(),n=(0,L.w7)({extraKey:"home",merge:!1,scoped:!0}),s=(0,Zs.kf)();(0,u.A)((()=>({enabled:!(!e||!t),fetch:()=>(0,d.TM)(e,t,n),onReceive:e=>{let{data:t}=e;return s({...Bo.ul,loaded:!0,...t})},onFail:e=>s({...Bo.ul,loaded:!0,error:e}),pollingOptions:{pollingInterval:588e3}})),[e,t])},Do=()=>{const e=(0,v.vt)(),t=(0,c.ID)(),n=(0,L.w7)({extraKey:"home",merge:!1,scoped:!0}),s=(0,Zs.xs)();(0,u.A)((()=>({enabled:!(!e||!t),fetch:()=>(0,d.jt)(e,t,n),onReceive:e=>{let{data:t}=e;return s({...Bo.ve,loaded:!0,...t})},onFail:e=>s({...Bo.ve,loaded:!0,error:e}),pollingOptions:{pollingInterval:588e3}})),[e,t])},No=()=>(Io(),Lo(),Ao(),Eo(),Do(),null),Ro=()=>{const e=(0,oe.CK)(),t=(0,oe.nj)();return t?t&&!e.length?s.createElement(ie.Ay,{feature:"Home",mode:"NoNodesView"},s.createElement(re.A,null)):s.createElement(ie.Ay,{feature:"Home"},s.createElement(No,null),s.createElement(le.A,{height:"calc(100% - 32px)",sidebar:s.createElement(Js,null),gap:4,padding:[4],overflow:"auto"},s.createElement(to,null),s.createElement(P.Flex,{gap:4},s.createElement(po,{width:"60%"}),s.createElement(P.Flex,{column:!0,gap:4,height:"100%",width:"calc(40% - 16px)"},s.createElement(yo,{column:!0}),s.createElement(P.Flex,{gap:4},s.createElement(ko,{flex:{grow:"1",shrink:"0"}}),s.createElement(So,{flex:{grow:"1",shrink:"0"}}),s.createElement(xo,{flex:{grow:"1",shrink:"0"}})),s.createElement(qo,{flex:"grow"}))))):s.createElement(M.A,{title:"Loading room stats..."})};var Uo=n(24266);const Fo=()=>{const e=(0,Et.e)(),t=(()=>{const e=(0,v.bq)(),t=(0,c.QW)();return"/spaces/".concat(e,"/rooms/").concat(t,"/overview")})(),n=(0,o.Zp)();(0,s.useEffect)((()=>{if(e)return(0,qs.unregister)(e.on("goToLink",((e,s)=>{var a;let o=location.pathname;return e&&e.getParent().getAttribute("roomId")&&(o=e.getParent().getId(),o=/^\/spaces/.test(o)?o:t),n(o,s?{state:{chartName:s},replace:!0}:{state:{contextToGo:null===e||void 0===e||null===(a=e.getAttribute("contextScope"))||void 0===a?void 0:a[0]},replace:!0})})))}),[e,t])},zo=()=>(Fo(),null);var Oo=n(53285),Ho=n(69418),Vo=n(29848);const Qo=(0,a.A)((()=>Promise.all([n.e(6121),n.e(6323),n.e(8676)]).then(n.bind(n,78676))),"ManageSpaceRoute"),jo=(0,a.A)((()=>n.e(7436).then(n.bind(n,57436))),"Trial"),Go=(0,a.A)((()=>n.e(9912).then(n.bind(n,9912))),"PreferredNodesModal"),Wo=(0,a.A)((()=>Promise.resolve().then(n.bind(n,57419))),"JoinSpace"),Ko=(0,a.A)((()=>n.e(7959).then(n.bind(n,7959))),"NoSpaceAccess"),Zo=(0,a.A)((()=>n.e(3968).then(n.bind(n,73968))),"AlertView"),Yo=(0,a.A)((()=>n.e(3104).then(n.bind(n,3104))),"Anomalies"),Jo=(0,a.A)((()=>n.e(8059).then(n.bind(n,88059))),"AlertsSmartboard"),Xo=(0,a.A)((()=>n.e(195).then(n.bind(n,10195))),"DashboardsOverview"),$o=(0,a.A)((()=>Promise.all([n.e(6008),n.e(785)]).then(n.bind(n,40785))),"DashboardView"),er=(0,a.A)((()=>Promise.all([n.e(6121),n.e(5709),n.e(7340)]).then(n.bind(n,97340))),"FunctionsView"),tr=(0,a.A)((()=>Promise.all([n.e(7208),n.e(6323),n.e(2414)]).then(n.bind(n,72414))),"Integrations"),nr=(0,a.A)((()=>Promise.all([n.e(6008),n.e(7332)]).then(n.bind(n,47332))),"DropInDashboard"),{demoSlug:sr,demoDefaultRoomViews:ar,defaultRoomView:or,integrationsView:rr}=x.A,ir=xs(Ws(Ts)),cr=Ws(Ts),lr=(0,s.memo)((()=>{const[e,t]=(0,r.Ay)(),n=sr===e?ar[t]||ar.default:V.Ay&&e===V.z0&&t===V.gB?V.kG:or;return s.createElement(s.Suspense,{fallback:s.createElement(M.A,{title:"Loading..."})},s.createElement(s.Suspense,{fallback:""},s.createElement(nr,null)),s.createElement(o.BV,null,s.createElement(o.qh,{path:"nodes/:nodeId",element:s.createElement(ir,null)}),s.createElement(o.qh,{path:"nodes",element:s.createElement(Zt,null)}),s.createElement(o.qh,{path:"home",element:s.createElement(Ro,null)}),s.createElement(o.qh,{path:"overview",element:s.createElement(cr,null)}),s.createElement(o.qh,{path:"alerts/:alertId",element:s.createElement(Zo,null)}),s.createElement(o.qh,{path:"alerts",element:s.createElement(Jo,null)}),s.createElement(o.qh,{path:"alarms/:alertId",element:s.createElement(Zo,null)}),s.createElement(o.qh,{path:"alarms",element:s.createElement(o.C5,{replace:!0,to:"/spaces/".concat(e,"/rooms/").concat(t,"/alerts")})}),s.createElement(o.qh,{path:"functions",element:s.createElement(o.C5,{replace:!0,to:"/spaces/".concat(e,"/rooms/").concat(t,"/top")})}),s.createElement(o.qh,{path:"dashboard",element:s.createElement($o,{customDashboardId:V.LA})}),s.createElement(o.qh,{path:"dashboards/:dashboardSlug",element:s.createElement($o,null)}),s.createElement(o.qh,{path:"dashboards",element:s.createElement(Xo,null)}),s.createElement(o.qh,{path:"kubernetes",element:s.createElement(cr,{flavour:"k8s"})}),s.createElement(o.qh,{path:"anomalies",element:s.createElement(Yo,null)}),s.createElement(o.qh,{path:"top",element:s.createElement(er,{key:"fn",flavour:"fn"})}),s.createElement(o.qh,{path:"logs",element:s.createElement(er,{key:"logs",flavour:"logs"})}),s.createElement(o.qh,{path:"events",element:s.createElement(er,{key:"feed",flavour:"feed"})}),s.createElement(o.qh,{path:"/",element:s.createElement(o.C5,{replace:!0,to:"/spaces/".concat(e,"/rooms/").concat(t,"/").concat(n)})})))})),dr=()=>{const e=(0,o.Zp)(),[t,n]=(0,r.Ay)(),[a,i]=(0,Ho.A)(),_=(0,v.vt)(),w=(0,c.ID)(),[k,T]=(0,s.useState)(!0),[S,x]=(0,Vo.pp)();return((e,t)=>{const n=(0,l.Zs)((n=>{let{snapshot:s,set:a}=n;return async()=>{await s.getPromise((0,c.LS)({id:t,key:"fullyLoaded"}))||(0,d.K8)(e,t).then((t=>{let{data:n}=t;return a((0,c.If)(n.id),{...n,spaceId:e,fullyLoaded:!0,loaded:!0})}))}}),[e,t]);(0,s.useEffect)((()=>{e&&t&&n()}),[e,t])})(_,w),(0,h.A)({spaceId:_,id:w,pollingInterval:63e3}),function(e,t){let{polling:n=!0}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s=(0,l.Zs)((e=>{let{set:n}=e;return function(){let{data:e=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n((0,f.t)({id:t,key:"ids"}),e.map((e=>e.id))),n((0,f.t)({id:t,key:"loaded"}),!0),n((0,f.t)({id:t,key:"updatedAt"}),(new Date).toISOString()),n((0,f.t)({id:t,key:"error"}),null),e.forEach((e=>{n((0,p.SB)({id:e.id}),(t=>({...t,loaded:!0,...e})))}));const s=e.reduce(((e,t)=>{let{id:n,nodeId:s}=t;return e[s]=[...e[s]||[],n],e}),{});n(g.l3,s)}}),[e,t]),a=(0,l.Zs)((e=>{let{set:n}=e;return e=>{n((0,f.t)({id:t,key:"error"}),(0,b.A)(e))}}));(0,u.A)((()=>({enabled:!!e&&!!t,polling:n,fetch:()=>(0,m.l1)(e,t),onFail:a,onReceive:s,force:!0})),[e,t])}(_,w),(0,y.A)(_,w),function(e,t){let{types:n,entities:a,paths:o,names:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=(0,l.Zs)((s=>{let{set:i}=s;return async()=>{(0,Ks.Uc)(e,t,{types:n,entities:a,paths:o,names:r}).then((n=>{let{data:s}=n;return i((0,es.Mg)({spaceId:e,roomId:t}),s)}))}}));(0,s.useEffect)((()=>{e&&t&&i()}),[e,t,n,a,o,r])}(_,w),(0,s.useEffect)((()=>{let s=!0,o=null;return o=setTimeout((()=>{s&&(a&&e("/spaces/".concat(t,"/rooms/").concat(n,"/").concat(rr),{replace:!0}),T(!1))}),1e3),()=>{s=!1,o&&(clearTimeout(o),o=null)}}),[a]),(0,s.useEffect)((()=>{x(k||!w||i)}),[k,w,i]),S?s.createElement(M.A,{title:"Loading room..."}):s.createElement(lr,null)},hr=(0,Uo.Xc)((0,s.memo)((()=>{const{isIntegrationsPath:e}=(0,Ho.Q)(),t=(0,Vo.Hs)();return s.createElement(Oo.A,{permission:"room:Read"},(n=>n?s.createElement(s.Fragment,null,!t&&!e&&s.createElement(ae,null),s.createElement(s.Suspense,{fallback:s.createElement(M.A,{title:"Loading your space..."})},s.createElement(o.BV,null,s.createElement(o.qh,{path:"spaces/:spaceSlug/join-space",element:s.createElement(Wo,null)}),s.createElement(o.qh,{path:"spaces/:spaceSlug/no-rooms",element:s.createElement(Ko,{reason:"noRooms"})}),s.createElement(o.qh,{path:"spaces/:spaceSlug/settings/*",element:s.createElement(ur,null)}),s.createElement(o.qh,{path:"spaces/:spaceSlug/rooms/:roomSlug/".concat(rr),element:s.createElement(tr,null)}),s.createElement(o.qh,{path:"spaces/:spaceSlug/rooms/:roomSlug/*",element:s.createElement(dr,null)})))):s.createElement(Ko,{reason:"noRoomPermission"})))}))),ur=()=>((0,r.KI)(),s.createElement(Qo,null)),pr=()=>{const e=(0,v.vt)();return(0,_.A)(e),(0,w.A)(e),(e=>{const t=(0,l.Zs)((t=>{let{set:n}=t;return function(){let{data:{results:t}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n((0,k.S)({id:e}),t)}})),n=(0,l.Zs)((t=>{let{set:n}=t;return t=>n((0,k.S)({id:e,key:"error"}),t)})),s=(0,T.sC)(e,"loaded"),a=(0,S.JT)("alert:ReadAll");(0,u.A)((()=>({enabled:a&&!!e&&s,fetch:()=>(0,m.C2)(e),onFail:n,onReceive:t,pollingOptions:{pollingInterval:15e4}})),[e,!!s])})(e),null},mr=(0,Uo.Xc)((()=>{const e=(0,v.vt)();return(0,i.Ay)(),(0,s.useEffect)((()=>{const e=new URL(window.location.href).searchParams.get("join_callback");e&&(window.location.href=e)}),[]),e?s.createElement(s.Fragment,null,s.createElement(pr,null),s.createElement(Oo.A,{permission:"space:Read"},(t=>t?s.createElement(s.Fragment,null,s.createElement(o.BV,null,s.createElement(o.qh,{path:"/*",element:s.createElement(zo,null)})),s.createElement(s.Suspense,{fallback:s.createElement(M.A,{title:"Loading your space..."})},s.createElement(hr,null)),s.createElement(s.Suspense,{fallback:""},s.createElement(jo,null)),s.createElement(s.Suspense,{fallback:""},s.createElement(Go,null))):s.createElement(Ko,{key:e,reason:"noSpacePermission"})))):null}))},33195:(e,t,n)=>{n.d(t,{A:()=>u});n(41393),n(81454),n(62953);var s=n(96540),a=n(47767),o=n(10058),r=n(29217),i=n(97054),c=n(37171);const l={SCHEDULED:{icon:"scheduled",tooltip:"scheduled to be silenced"},SILENCED:{icon:"alarm_off",tooltip:"silenced"}},d=(h=o.Pill,e=>{let{tooltip:t,...n}=e;return s.createElement(r.A,{align:"bottom",content:t},s.createElement(o.Box,null,s.createElement(h,n)))});var h;const u=e=>{let{silencing:t,flavour:n="alert"}=e;const[o]=(0,i.Ay)(),r=(0,a.Zp)(),{state:h,rules:u=[]}=t||{},p=u.map((e=>{let{id:t}=e;return t})),m=(0,c.z)(),g=(0,s.useMemo)((()=>{var e;return null===(e=l[h])||void 0===e?void 0:e.icon}),[h]),f=(0,s.useCallback)((()=>{m(p),r("/spaces/".concat(o,"/settings/notifications#notificationsActiveTab=1"))}),[r,m,p]),b=(0,s.useMemo)((()=>{var e,t,n;return{alert:{tooltip:"This alert is ".concat(null===(e=l[h])||void 0===e?void 0:e.tooltip)},node:{tooltip:"This node is ".concat(null===(t=l[h])||void 0===t?void 0:t.tooltip)},room:{tooltip:"This room is ".concat(null===(n=l[h])||void 0===n?void 0:n.tooltip)}}}),[g]),y=(0,s.useMemo)((()=>({icon:g,...u.length?{onClick:f}:{},flavour:"neutral",children:h,...b[n]||{}})),[g,h]);return h&&"NONE"!=h?s.createElement(d,y):"-"}},12412:(e,t,n)=>{n.d(t,{G:()=>r});var s=n(58168),a=n(96540),o=n(92230);const r=(0,n(55309).HB)((e=>e.children?a.createElement(o.A,(0,s.A)({as:"p",role:"document"},e)):null),(e=>{let{info:t}=e;return{children:t}}))},10952:(e,t,n)=>{n.d(t,{_:()=>d});var s=n(58168),a=n(96540),o=n(10058),r=n(29217),i=n(55309),c=n(12412);const l=(0,a.forwardRef)(((e,t)=>{let{name:n,tiny:r,...i}=e;const c=r?o.Text:o.H3;return"string"===typeof n?a.createElement(c,(0,s.A)({strong:!0},i,{ref:t}),n):n||null})),d=(0,i.HB)((e=>{let{hasTooltip:t,hasInfo:n,...s}=e;return t&&n?a.createElement(r.A,{content:a.createElement(c.G,{id:s.id}),isBasic:!0},a.createElement(l,s)):a.createElement(l,s)}),(e=>{let{name:t,info:n}=e;return{name:t,hasInfo:!!n}}))},44741:(e,t,n)=>{n.d(t,{k:()=>r});var s=n(58168),a=n(96540),o=n(10058);const r=(0,a.forwardRef)(((e,t)=>{let{id:n,...r}=e;return a.createElement(o.Flex,(0,s.A)({column:!0,"data-menuid":n,ref:t},r))}))},6551:(e,t,n)=>{n.d(t,{X:()=>i});var s=n(58168),a=n(96540),o=n(59090),r=n(92230);const i=(0,o.A)((e=>e.children?a.createElement(r.A,(0,s.A)({as:"p",role:"document"},e)):null),(e=>{let{info:t}=e;return{children:t}}))},37031:(e,t,n)=>{n.d(t,{t:()=>d});var s=n(58168),a=n(96540),o=n(10058),r=n(29217),i=n(59090),c=n(6551);const l=(0,a.forwardRef)(((e,t)=>{let{name:n,...r}=e;return"string"===typeof n?a.createElement(o.Text,(0,s.A)({strong:!0,ref:t},r),n):n||null})),d=(0,i.A)((e=>{let{hasTooltip:t,hasInfo:n,...s}=e;return t&&n?a.createElement(r.A,{content:a.createElement(c.X,{id:s.id}),isBasic:!0},a.createElement(l,s)):a.createElement(l,s)}),(e=>{let{name:t,info:n}=e;return{name:t,hasInfo:!!n}}))},74258:(e,t,n)=>{n.d(t,{t:()=>c});var s=n(58168),a=n(96540),o=n(10058),r=n(59090);const i=function(){let{link:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e},c=(0,a.forwardRef)(((e,t)=>{let{id:n,...c}=e;const l=(0,r.jR)(n,i);return a.createElement(o.Flex,(0,s.A)({column:!0,gap:2,id:l,"data-submenuid":n,ref:t},c))}))},4967:(e,t,n)=>{n.d(t,{A:()=>Oe});var s=n(81395);const a="The amount of traffic transferred by the network interface.",o='The number of packets transferred by the network interface. Received <a href="https://en.wikipedia.org/wiki/Multicast" target="_blank">multicast</a> counter is commonly calculated at the device level (unlike <b>received</b>) and therefore may include packets which did not reach the host.',r="<p>The number of errors encountered by the network interface.</p><p><b>Inbound</b> - bad packets received on this interface. It includes dropped packets due to invalid length, CRC, frame alignment, and other errors. <b>Outbound</b> - transmit problems. It includes frames transmission errors due to loss of carrier, FIFO underrun/underflow, heartbeat, late collisions, and other problems.</p>",i="<p>The number of FIFO errors encountered by the network interface.</p><p><b>Inbound</b> - packets dropped because they did not fit into buffers provided by the host, e.g. packets larger than MTU or next buffer in the ring was not available for a scatter transfer. <b>Outbound</b> - frame transmission errors due to device FIFO underrun/underflow. This condition occurs when the device begins transmission of a frame but is unable to deliver the entire frame to the transmitter in time for transmission.</p>",c='<p>The number of packets that have been dropped at the network interface level.</p><p><b>Inbound</b> - packets received but not processed, e.g. due to <a href="#menu_system_submenu_softnet_stat">softnet backlog</a> overflow, bad/unintended VLAN tags, unknown or unregistered protocols, IPv6 frames when the server is not configured for IPv6. <b>Outbound</b> - packets dropped on their way to transmission, e.g. due to lack of resources.</p>',l="The number of correctly transferred compressed packets by the network interface. These counters are only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP).",d='<p>The number of errors encountered by the network interface.</p><p><b>Frames</b> - aggregated counter for dropped packets due to invalid length, FIFO overflow, CRC, and frame alignment errors. <b>Collisions</b> - <a href="https://en.wikipedia.org/wiki/Collision_(telecommunications)" target="blank">collisions</a> during packet transmissions. <b>Carrier</b> - aggregated counter for frame transmission errors due to excessive collisions, loss of carrier, device FIFO underrun/underflow, Heartbeat/SQE Test errors, and late collisions.</p>',h='<p>The interface\'s latest or current <a href="https://en.wikipedia.org/wiki/Duplex_(telecommunications)" target="_blank">duplex</a> that the network adapter <a href="https://en.wikipedia.org/wiki/Autonegotiation" target="_blank">negotiated</a> with the device it is connected to.</p><p><b>Unknown</b> - the duplex mode can not be determined. <b>Half duplex</b> - the communication is one direction at a time. <b>Full duplex</b> - the interface is able to send and receive data simultaneously.</p>',u='<p>The current <a href="https://datatracker.ietf.org/doc/html/rfc2863" target="_blank">operational state</a> of the interface.</p><p><b>Unknown</b> - the state can not be determined. <b>NotPresent</b> - the interface has missing (typically, hardware) components. <b>Down</b> - the interface is unable to transfer data on L1, e.g. ethernet is not plugged or interface is administratively down. <b>LowerLayerDown</b> - the interface is down due to state of lower-layer interface(s). <b>Testing</b> - the interface is in testing mode, e.g. cable test. It can\u2019t be used for normal traffic until tests complete. <b>Dormant</b> - the interface is L1 up, but waiting for an external event, e.g. for a protocol to establish. <b>Up</b> - the interface is ready to pass packets and can be used.</p>',p="The current physical link state of the interface.",m='The interface\'s latest or current speed that the network adapter <a href="https://en.wikipedia.org/wiki/Autonegotiation" target="_blank">negotiated</a> with the device it is connected to. This does not give the max supported speed of the NIC.',g='The interface\'s currently configured <a href="https://en.wikipedia.org/wiki/Maximum_transmission_unit" target="_blank">Maximum transmission unit</a> (MTU) value. MTU is the size of the largest protocol data unit that can be communicated in a single network layer transaction.',f=' This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a>.',b='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_process_create">application</a>.'+f,y='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a thread is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_thread_create">application</a>.'+f,v='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that responsible for closing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_process_exit">application</a>.'+f,_='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that responsible for releasing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_task_release">application</a>.'+f,w='Number of errors to create a new <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#task-error" target="_blank">task</a>. Netdata gives a summary for this chart in <a href="#ebpf_system_task_error">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_task_error">application</a>.'+f,k='Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_open">application</a>.'+f,T='Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_error">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_open_error">application</a>.'+f,S='Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_closed">application</a>.'+f,M='Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_error">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_close_error">application</a>.'+f,x='Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_hit_ratio">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_hit">application</a>.'+f,C='Number of times a file is accessed inside <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_reference">application</a>.'+f,P='Number of times a file is accessed in the file system, because it is not present inside the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_not_cache">application</a>.'+f,q='Number of times a file was not found on the file system. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_not_found">application</a>.'+f,I='Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write">application</a>.'+f,B='Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read">application</a>.'+f,L='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write_error">application</a>.'+f,A='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read_error">application</a>.'+f,E='Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write_bytes">application</a>.'+f,D='Total of bytes successfully read using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read_bytes">application</a>.'+f,N='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_unlink">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_unlink">application</a>.'+f,R='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_sync">application</a>.'+f,U='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_sync_error">application</a>.'+f,F='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_open">application</a>.'+f,z='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_open_error">application</a>.'+f,O='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_create">application</a>.'+f,H='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_create_error">application</a>.'+f,V='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">swap reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows swap per <a href="#ebpf_apps_swap_read">application</a>.'+f,Q='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">swap writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows swap per <a href="#ebpf_apps_swap_write">application</a>.'+f,j='The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata gives a summary for this chart in <a href="#menu_mem_submenu_page_cache">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_ratio">application</a>.'+f,G='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_dirty">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_dirties">application</a>.'+f,W='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_hits">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_hits">application</a>.'+f,K='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_misses">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache misses per <a href="#ebpf_apps_cachestat_misses">application</a>.'+f,Z='Number of calls to <b>shmget</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_get">application</a>.'+f,Y='Number of calls to <b>shmat</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_at">application</a>.'+f,J='Number of calls to <b>shmctl</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_ctl">application</a>.'+f,X='Number of calls to <b>shmdt</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_dt">application</a>.'+f,$='Number of calls to IPV4 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_apps_outbound_conn_ipv4">application</a>.'+f,ee='Number of calls to IPV6 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_apps_outbound_conn_ipv6">application</a>.'+f,te='Total bytes sent with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_apps_bandwidth_sent">application</a>.'+f,ne='Total bytes received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_apps_bandwidth_received">application</a>.'+f,se='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_bandwidth_tcp_sent">application</a>.'+f,ae='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_bandwidth_tcp_received">application</a>.'+f,oe='Number of times a <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">TCP</a> packet was retransmitted. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_retransmit">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_tcp_retransmit">application</a>.'+f,re='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_apps_udp_sendmsg">application</a>.'+f,ie='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_apps_udp_recv">application</a>.'+f,ce="Total CPU utilization within the configured or system-wide (if not set) limits. When the CPU utilization of a cgroup exceeds the limit for the configured period, the tasks belonging to its hierarchy will be throttled and are not allowed to run again until the next period.",le='Total CPU utilization within the system-wide CPU resources (all cores). The amount of time spent by tasks of the cgroup in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel</a> modes.',de="The percentage of runnable periods when tasks in a cgroup have been throttled. The tasks have not been allowed to run because they have exhausted all of the available time as specified by their CPU quota.",he="The total time duration for which tasks in a cgroup have been throttled. When an application has used its allotted CPU quota for a given period, it gets throttled until the next period.",ue="<p>The weight of each group living in the same hierarchy, that translates into the amount of CPU it is expected to get. The percentage of CPU assigned to the cgroup is the value of shares divided by the sum of all shares in all cgroups in the same level.</p> <p>For example, tasks in two cgroups that have <b>cpu.shares</b> set to 100 will receive equal CPU time, but tasks in a cgroup that has <b>cpu.shares</b> set to 200 receive twice the CPU time of tasks in a cgroup where <b>cpu.shares</b> is set to 100.</p>",pe="Total CPU utilization per core within the system-wide CPU resources.",me='CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on CPU. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',ge="The amount of time some processes have been waiting for CPU time.",fe='CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on CPU resource simultaneously. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',be="The amount of time all non-idle processes have been stalled due to CPU congestion.",ye="RAM utilization within the configured or system-wide (if not set) limits. When the RAM utilization of a cgroup exceeds the limit, OOM killer will start killing the tasks belonging to the cgroup.",ve="RAM usage within the configured or system-wide (if not set) limits. When the RAM usage of a cgroup exceeds the limit, OOM killer will start killing the tasks belonging to the cgroup.",_e="The amount of used RAM and swap memory.",we='Memory usage statistics. The individual metrics are described in the memory.stat section for <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html#per-memory-cgroup-local-status" target="_blank">cgroup-v1</a> and <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory-interface-files" target="_blank">cgroup-v2</a>.',ke="The number of memory usage hits limits.",Te="<b>Dirty</b> is the amount of memory waiting to be written to disk. <b>Writeback</b> is how much memory is actively being written to disk.",Se="<p>Memory accounting statistics.</p><p><b>In</b> - a page is accounted as either mapped anon page (RSS) or cache page (Page Cache) to the cgroup. <b>Out</b> - a page is unaccounted from the cgroup.</p>",Me='<p>Memory <a href="https://en.wikipedia.org/wiki/Page_fault" target="_blank">page fault</a> statistics.</p><p><b>Pgfault</b> - all page faults. <b>Swap</b> - major page faults.</p>',xe='Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on memory. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Ce="The amount of time some processes have been waiting due to memory congestion.",Pe='Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on memory resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',qe="The amount of time all non-idle processes have been stalled due to memory congestion.",Ie="The amount of data transferred to and from specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",Be="The number of I/O operations performed on specific devices as seen by the CFQ scheduler.",Le="The number of requests queued for I/O operations.",Ae="The number of BIOS requests merged into requests for I/O operations.",Ee="The amount of data transferred to and from specific devices as seen by the throttling policy.",De="The number of processes currently in the cgroup.",Ne="The number of I/O operations performed on specific devices as seen by the throttling policy.",Re='I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on I/O. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Ue="The amount of time some processes have been waiting due to I/O congestion.",Fe='I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> line indicates the share of time in which <b>all non-idle tasks</b> are stalled on I/O resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',ze="The amount of time all non-idle processes have been stalled due to I/O congestion.",Oe={"system.cpu":{aggregationMethod:"avg",info:()=>'Total CPU utilization (all cores). 100% here means there is no CPU idle time at all. You can get per core usage at the <a href="#menu_cpu">CPUs</a> section and per application usage at the <a href="#menu_apps">Applications Monitoring</a> section.',valueRange:[0,100],en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",urlOptions:[],chartLibrary:"gauge",valueRange:[0,100],title:"Average CPU per Node",colors:s.default[0],layout:{left:3.4,top:0,width:2.6,height:5}},{groupBy:["node"],aggregationMethod:"sum",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by CPU",layout:{left:3.4,top:5,width:2.6,height:5}}]},"system.load":{mainheads:[{aggregationMethod:"avg",chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,selectedDimensions:["load1"],title:"Average System Load (1 min)",colors:s.default[0],layout:{left:10.3,top:5,width:1.7,height:5}}],aggregationMethod:"avg",info:'Current system load, i.e. the number of processes using CPU or waiting for system resources (usually CPU and disk). The 3 metrics refer to 1, 5 and 15 minute averages. The system calculates this once every 5 seconds. For more information check <a href="https://en.wikipedia.org/wiki/Load_(computing)" target="_blank">this wikipedia article</a>.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["load1"]},"system.cpu_some_pressure":{aggregationMethod:"avg",mainheads:[{aggregationMethod:"avg",selectedDimensions:["some 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average CPU Pressure (10 sec, some)",colors:s.default[0],layout:{left:1.7,top:5,width:1.7,height:5}}],info:'CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on CPU. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.cpu_some_pressure_stall_time":{info:"The amount of time some processes have been waiting for CPU time.",en:{instance:{one:"system",other:"systems"}}},"system.memory_some_pressure":{aggregationMethod:"avg",info:'Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on memory. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.memory_some_pressure_stall_time":{info:"The amount of time some processes have been waiting due to memory congestion.",en:{instance:{one:"system",other:"systems"}}},"system.memory_full_pressure":{aggregationMethod:"avg",mainheads:[{aggregationMethod:"avg",selectedDimensions:["full 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Memory Pressure (10 sec, full)",colors:s.default[0],layout:{left:8.6,top:5,width:1.7,height:5}}],info:'Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on memory resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.memory_full_pressure_stall_time":{info:"The amount of time all non-idle processes have been stalled due to memory congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io_some_pressure":{aggregationMethod:"avg",info:'I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on I/O. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.io_some_pressure_stall_time":{info:"The amount of time some processes have been waiting due to I/O congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io_full_pressure":{aggregationMethod:"avg",mainheads:[{aggregationMethod:"avg",selectedDimensions:["full 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk I/O Pressure (10 sec, full)",colors:s.default[0],layout:{left:0,top:5,width:1.7,height:5}}],info:'I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> line indicates the share of time in which <b>all non-idle tasks</b> are stalled on I/O resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.io_full_pressure_stall_time":{info:"The amount of time all non-idle processes have been stalled due to I/O congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io":{info:e=>{let{os:t}=e;var n='Total Disk I/O, for all physical disks. You can get detailed information about each disk at the <a href="#menu_disk">Disks</a> section and per application Disk usage at the <a href="#menu_apps">Applications Monitoring</a> section.';return"linux"===t?n+" Physical are all the disks that are listed in <b>/sys/block</b>, but do not exist in <b>/sys/devices/virtual/block</b>.":n},en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["in"],title:"Total Disk Reads",layout:{left:1.7,top:0,width:1.7,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["out"],title:"Total Disk Writes",layout:{left:0,top:0,width:1.7,height:5}}]},"system.pgpgio":{info:"Memory paged from/to disk. This is usually the total disk I/O of the system.",en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["in"],title:"Total Pages read from Disk",hiddenWhen:"system.io",layout:{left:1.6,top:0,width:1.6,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["out"],title:"Total Pages written to Disk",hiddenWhen:"system.io",layout:{left:1.6,top:0,width:1.6,height:5}}]},"system.swapio":{info:"<p>System swap I/O.</p><b>In</b> - pages the system has swapped in from disk to RAM. <b>Out</b> - pages the system has swapped out from RAM to disk.",en:{instance:{one:"system",other:"systems"}}},"system.pgfaults":{info:'Total page faults. <b>Major page faults</b> indicates that the system is using its swap. You can find which applications use the swap at the <a href="#menu_apps">Applications Monitoring</a> section.',en:{instance:{one:"system",other:"systems"}}},"system.entropy":{aggregationMethod:"min",colors:s.default[5],info:'<a href="https://en.wikipedia.org/wiki/Entropy_(computing)" target="_blank">Entropy</a>, is a pool of random numbers (<a href="https://en.wikipedia.org/wiki//dev/random" target="_blank">/dev/random</a>) that is mainly used in cryptography. If the pool of entropy gets empty, processes requiring random numbers may run a lot slower (it depends on the interface each program uses), waiting for the pool to be replenished. Ideally a system with high entropy demands should have a hardware device for that purpose (TPM is one such device). There are also several software-only options you may install, like <b>haveged</b>, although these are generally useful only in servers.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["entropy"]},"system.clock_sync_state":{info:'<p>The system clock synchronization state as provided by the <a href="https://man7.org/linux/man-pages/man2/adjtimex.2.html" target="_blank">ntp_adjtime()</a> system call. An unsynchronized clock may be the result of synchronization issues by the NTP daemon or a hardware clock fault. It can take several minutes (usually up to 17) before NTP daemon selects a server to synchronize with. <p><b>State map</b>: 0 - not synchronized, 1 - synchronized.</p>',en:{instance:{one:"system",other:"systems"}}},"system.clock_status":{info:'<p>The kernel code can operate in various modes and with various features enabled or disabled, as selected by the <a href="https://man7.org/linux/man-pages/man2/adjtimex.2.html" target="_blank">ntp_adjtime()</a> system call. The system clock status shows the value of the <b>time_status</b> variable in the kernel. The bits of the variable are used to control these functions and record error conditions as they exist.</p><p><b>UNSYNC</b> - set/cleared by the caller to indicate clock unsynchronized (e.g., when no peers are reachable). This flag is usually controlled by an application program, but the operating system may also set it. <b>CLOCKERR</b> - set/cleared by the external hardware clock driver to indicate hardware fault.</p><p><b>Status map</b>: 0 - bit unset, 1 - bit set.</p>',en:{instance:{one:"system",other:"systems"}}},"system.clock_sync_offset":{aggregationMethod:"avg",info:'A typical NTP client regularly polls one or more NTP servers. The client must compute its <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol#Clock_synchronization_algorithm" target="_blank">time offset</a> and round-trip delay. Time offset is the difference in absolute time between the two clocks.',en:{instance:{one:"system",other:"systems"}}},"system.forks":{colors:s.default[6],info:"The number of new processes created.",en:{instance:{one:"system",other:"systems"}}},"system.intr":{colors:s.default[1],info:'Total number of CPU interrupts. Check <b>system.interrupts</b> that gives more detail about each interrupt and also the <a href="#menu_cpu">CPUs</a> section where interrupts are analyzed <a href="#menu_cpu_submenu_interrupts">per CPU core</a>.',en:{instance:{one:"system",other:"systems"}}},"system.interrupts":{info:'CPU interrupts in detail. At the <a href="#menu_cpu">CPUs</a> section, interrupts are analyzed <a href="#menu_cpu_submenu_interrupts">per CPU core</a>. The last column in <b>/proc/interrupts</b> provides an interrupt description or the device name that registered the handler for that interrupt.',en:{instance:{one:"system",other:"systems"}}},"system.hardirq_latency":{aggregationMethod:"avg",info:'Total time spent servicing <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#hard-irq" target="_blank">hardware interrupts</a>. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/hardirqs_example.txt" target="_blank">hardirqs</a> from BCC tools.'+f+'<div id="ebpf_global_hard_irq"></div>',en:{instance:{one:"system",other:"systems"}}},"system.softirqs":{info:'<p>Total number of software interrupts in the system. At the <a href="#menu_cpu">CPUs</a> section, softirqs are analyzed <a href="#menu_cpu_submenu_softirqs">per CPU core</a>.</p><p><b>HI</b> - high priority tasklets. <b>TIMER</b> - tasklets related to timer interrupts. <b>NET_TX</b>, <b>NET_RX</b> - used for network transmit and receive processing. <b>BLOCK</b> - handles block I/O completion events. <b>IRQ_POLL</b> - used by the IO subsystem to increase performance (a NAPI like approach for block devices). <b>TASKLET</b> - handles regular tasklets. <b>SCHED</b> - used by the scheduler to perform load-balancing and other scheduling tasks. <b>HRTIMER</b> - used for high-resolution timers. <b>RCU</b> - performs read-copy-update (RCU) processing.</p>',en:{instance:{one:"system",other:"systems"}}},"system.softnet_stat":{en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["processed"]},"system.softirq_latency":{aggregationMethod:"avg",info:'Total time spent servicing <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#soft-irq" target="_blank">software interrupts</a>. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/softirqs_example.txt" target="_blank">softirqs</a> from BCC tools.'+f+'<div id="ebpf_global_soft_irq"></div>',en:{instance:{one:"system",other:"systems"}}},"system.processes":{info:"<p>System processes.</p><p><b>Running</b> - running or ready to run (runnable). <b>Blocked</b> - currently blocked, waiting for I/O to complete.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["blocked"]},"system.processes_state":{info:"<p>The number of processes in different states. </p> <p><b>Running</b> - Process using the CPU at a particular moment. <b>Sleeping (uninterruptible)</b> - Process will wake when a waited-upon resource becomes available or after a time-out occurs during that wait. Mostly used by device drivers waiting for disk or network I/O. <b>Sleeping (interruptible)</b> - Process is waiting either for a particular time slot or for a particular event to occur. <b>Zombie</b> - Process that has completed its execution, released the system resources, but its entry is not removed from the process table. Usually occurs in child processes when the parent process still needs to read its child\u2019s exit status. A process that stays a zombie for a long time is generally an error and causes system PID space leak. <b>Stopped</b> - Process is suspended from proceeding further due to STOP or TSTP signals. In this state, a process will not do anything (not even terminate) until it receives a CONT signal.</p>",en:{instance:{one:"system",other:"systems"}}},"system.active_processes":{info:"The total number of processes in the system.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["active"]},"system.ctxt":{info:'<a href="https://en.wikipedia.org/wiki/Context_switch" target="_blank">Context Switches</a>, is the switching of the CPU from one process, task or thread to another. If there are many processes or threads willing to execute and very few CPU cores available to handle them, the system is making more context switching to balance the CPU resources among them. The whole process is computationally intensive. The more the context switches, the slower the system gets.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["switches"]},"system.idlejitter":{aggregationMethod:"max",info:"Idle jitter is calculated by netdata. A thread is spawned that requests to sleep for a few microseconds. When the system wakes it up, it measures how many microseconds have passed. The difference between the requested and the actual duration of the sleep, is the <b>idle jitter</b>. This number is useful in real-time environments, where CPU jitter can affect the quality of the service (like VoIP media gateways).",en:{instance:{one:"system",other:"systems"}},heatmapType:"default"},"system.net":{info:e=>{let{os:t}=e;var n="Total bandwidth of all physical network interfaces. This does not include <b>lo</b>, VPNs, network bridges, IFB devices, bond interfaces, etc. Only the bandwidth of physical network interfaces is aggregated.";return"linux"===t?n+" Physical are all the network interfaces that are listed in <b>/proc/net/dev</b>, but do not exist in <b>/sys/devices/virtual/net</b>.":n},en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Network Inbound",layout:{left:8.6,top:0,width:1.7,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Network Outbound",layout:{left:10.3,top:0,width:1.7,height:5}}]},"system.ip":{info:"Total IP traffic in the system.",en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IP Traffic In",hiddenWhen:"system.net",layout:{left:7.2,top:0,width:1.6,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IP Traffic Out",hiddenWhen:"system.net",layout:{left:8.8,top:0,width:1.6,height:5}}]},"system.ipv4":{info:"Total IPv4 Traffic.",en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IPv4 Traffic In",hiddenWhen:["system.net","system.ip"],layout:{left:7.2,top:0,width:1.6,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IPv4 Traffic Out",hiddenWhen:["system.net","system.ip"],layout:{left:8.8,top:0,width:1.6,height:5}}]},"system.ipv6":{info:"Total IPv6 Traffic.",en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IPv6 Traffic In",hiddenWhen:["system.net","system.ip","system.ipv4"],layout:{left:7.2,top:0,width:1.6,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IPv6 Traffic Out",hiddenWhen:["system.net","system.ip","system.ipv4"],layout:{left:8.8,top:0,width:1.6,height:5}}]},"system.ram":{info:"System Random Access Memory (i.e. physical memory) usage.",en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["percentage-of-instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",selectedDimensions:["used","buffers","active","wired"],desiredUnits:"percentage",colors:s.default[10],title:"Average Used RAM per Node",valueRange:[0,100],layout:{left:6,top:0,width:2.6,height:5}},{groupBy:["percentage-of-instance"],showPostAggregations:!0,postGroupBy:["node"],urlOptions:["percentage"],selectedDimensions:["used","buffers","active","wired"],desiredUnits:"percentage",valueRange:[0,100],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by Used RAM",layout:{left:6,top:5,width:2.6,height:5}}]},"system.swap":{info:"System swap memory usage. Swap space is used when the amount of physical memory (RAM) is full. When the system needs more memory resources and the RAM is full, inactive pages in memory are moved to the swap space (usually a disk, a disk partition or a file).",en:{instance:{one:"system",other:"systems"}}},"system.swapcalls":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">functions</a> used to manipulate swap data. Netdata shows swap metrics per <a href="#ebpf_apps_swap_read">application</a> and <a href="#ebpf_services_swap_read">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_swap"></div>',en:{instance:{one:"system",other:"systems"}}},"system.ipc_semaphores":{info:"Number of allocated System V IPC semaphores. The system-wide limit on the number of semaphores in all semaphore sets is specified in <b>/proc/sys/kernel/sem</b> file (2nd field).",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["semaphores"]},"system.ipc_semaphore_arrays":{info:"Number of used System V IPC semaphore arrays (sets). Semaphores support semaphore sets where each one is a counting semaphore. So when an application requests semaphores, the kernel releases them in sets. The system-wide limit on the maximum number of semaphore sets is specified in <b>/proc/sys/kernel/sem</b> file (4th field).",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_segments":{info:"Number of allocated System V IPC memory segments. The system-wide maximum number of shared memory segments that can be created is specified in <b>/proc/sys/kernel/shmmni</b> file.",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_bytes":{info:"Amount of memory currently used by System V IPC memory segments. The run-time limit on the maximum shared memory segment size that can be created is specified in <b>/proc/sys/kernel/shmmax</b> file.",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_calls":{info:'Number of calls to syscalls responsible to manipulate <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ipc-shared-memory" target="_blank">shared memories</a>. Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_get">application</a> and <a href="#ebpf_services_shm_get">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_shm"></div>',en:{instance:{one:"system",other:"systems"}}},"system.message_queue_messages":{info:"Number of messages that are currently present in System V IPC message queues.",en:{instance:{one:"system",other:"systems"}}},"system.message_queue_bytes":{info:"Amount of memory currently used by messages in System V IPC message queues.",en:{instance:{one:"system",other:"systems"}}},"system.uptime":{aggregationMethod:"min",info:"The amount of time the system has been running, including time spent in suspend.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["uptime"]},"system.process_thread":{title:"Task creation",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process or thread is called. Netdata shows process metrics per <a href="#ebpf_apps_process_create">application</a> and <a href="#ebpf_services_process_create">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_system_process_thread"></div>',en:{instance:{one:"system",other:"systems"}}},"system.exit":{title:"Exit monitoring",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible to close a process or thread is called. Netdata shows process metrics per <a href="#ebpf_apps_process_exit">application</a> and <a href="#ebpf_services_process_exit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_system_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"system.task_error":{title:"Task error",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#task-error" target="_blank">a function</a> that starts a process or thread failed. Netdata shows process metrics per <a href="#ebpf_apps_task_error">application</a> and <a href="#ebpf_services_task_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_system_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"system.process_status":{title:"Task status",info:'Difference between the number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">functions</a> that close a task and release a task.'+f,en:{instance:{one:"system",other:"systems"}}},"cpu.cpu":{aggregationMethod:"avg",valueRange:[0,100],en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average CPU Core Utilization",valueRange:[0,100],layout:{left:0,top:5,width:3,height:5}},{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Core Utilisation Stats",layout:{left:0,top:0,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Utilisation",layout:{left:0,top:10,width:3,height:5}}]},"cpu.interrupts":{en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average CPU Core Interrupts",layout:{left:3,top:5,width:3,height:5}},{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",title:"Top CPU Core Interrupt Types",layout:{left:3,top:0,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Interrupts",layout:{left:3,top:10,width:3,height:5}}]},"cpu.softirqs":{en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average CPU Core Softirqs",layout:{left:6,top:5,width:3,height:5}},{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Core Softirq Types",layout:{left:6,top:0,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Softirqs",layout:{left:6,top:10,width:3,height:5}}]},"cpu.softnet_stat":{en:{instance:{one:"cpu core",other:"cpu cores"}},dimensionsOnNonDimensionGrouping:["processed"],mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average CPU Core Softnets",layout:{left:9,top:5,width:3,height:5}},{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",title:"Top CPU Core Softnet Stats",layout:{left:9,top:0,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Softnets",layout:{left:9,top:10,width:3,height:5}}]},"cpu.core_throttling":{en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Max CPU Core Throttling",layout:{left:0,top:5,width:3,height:5}}],info:"The number of adjustments made to the clock speed of the CPU based on it's core temperature."},"cpu.package_throttling":{info:"The number of adjustments made to the clock speed of the CPU based on it's package (chip) temperature.",en:{instance:{one:"system",other:"systems"}}},"cpufreq.cpufreq":{info:"The frequency measures the number of cycles your CPU executes per second.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"cpuidle.cpuidle":{info:"The percentage of time spent in C-states.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"cpuidle.cpu_cstate_residency_time":{aggregationMethod:"avg",en:{instance:{one:"cpu core",other:"cpu cores"}}},"mem.ksm":{info:"<p>Memory pages merging statistics. A high ratio of <b>Sharing</b> to <b>Shared</b> indicates good sharing, but a high ratio of <b>Unshared</b> to <b>Sharing</b> indicates wasted effort.</p><p><b>Shared</b> - used shared pages. <b>Unshared</b> - memory no longer shared (pages are unique but repeatedly checked for merging). <b>Sharing</b> - memory currently shared (how many more sites are sharing the pages, i.e. how much saved). <b>Volatile</b> - volatile pages (changing too fast to be placed in a tree).</p>",en:{instance:{one:"system",other:"systems"}}},"mem.ksm_savings":{heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Saved",selectedDimensions:["savings"],colors:s.default[0],layout:{left:0,top:5,width:3,height:5}}],info:"<p>The amount of memory saved by KSM.</p><p><b>Savings</b> - saved memory. <b>Offered</b> - memory marked as mergeable.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.ksm_ratios":{aggregationMethod:"avg",heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Savings",desiredUnits:"percentage",colors:s.default[0],valueRange:[0,100],layout:{left:3,top:5,width:3,height:5}}],info:"The effectiveness of KSM. This is the percentage of the mergeable pages that are currently merged.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_usage":{info:"ZRAM total RAM usage metrics. ZRAM uses some memory to store metadata about stored memory pages, thus introducing an overhead which is proportional to disk size. It excludes same-element-filled-pages since no memory is allocated for them.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_savings":{info:"Displays original and compressed memory data sizes.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_ratio":{heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Compression Ratio",selectedDimensions:["ratio"],colors:s.default[0],valueRange:[0,100],layout:{left:6,top:5,width:3,height:5}}],info:"Compression ratio, calculated as <b>100 * original_size / compressed_size</b>. More means better compression and more RAM savings.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_efficiency":{aggregationMethod:"avg",heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Efficiency",selectedDimensions:["percent"],colors:s.default[0],layout:{left:9,top:5,width:3,height:5}}],valueRange:[0,100],info:"Memory usage efficiency, calculated as <b>100 * compressed_size / total_mem_used</b>.",en:{instance:{one:"system",other:"systems"}}},"mem.pgfaults":{family:"page faults",info:'<p>A <a href="https://en.wikipedia.org/wiki/Page_fault" target="_blank">page fault</a> is a type of interrupt, called trap, raised by computer hardware when a running program accesses a memory page that is mapped into the virtual address space, but not actually loaded into main memory.</p></p><b>Minor</b> - the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory. <b>Major</b> - generated when the system needs to load the memory page from disk or swap memory.</p>',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["major"]},"mem.directmaps":{family:"overview"},"mem.committed":{family:"overview",colors:s.default[3],info:"Committed Memory, is the sum of all memory which has been allocated by processes.",en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Committed Memory",layout:{left:3,top:0,width:3,height:5},colors:s.default[2]},{groupBy:["node"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by Committed Memory",layout:{left:3,top:5,width:3,height:5}}]},"mem.real":{colors:s.default[3],info:"Total amount of real (physical) memory used.",en:{instance:{one:"system",other:"systems"}}},"mem.oom_kill":{family:"OOM kills",info:'The number of processes killed by <a href="https://en.wikipedia.org/wiki/Out_of_memory" target="_blank">Out of Memory</a> Killer. The kernel\'s OOM killer is summoned when the system runs short of free memory and is unable to proceed without killing one or more processes. It tries to pick the process whose demise will free the most memory while causing the least misery for users of the system. This counter also includes processes within containers that have exceeded the memory limit.',en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Out of Memory Kills",desiredUnits:"Kills/s",colors:s.default[1],layout:{left:9,top:5,width:3,height:5}}]},"mem.numa":{info:"<p>NUMA balancing statistics.</p><p><b>Local</b> - pages successfully allocated on this node, by a process on this node. <b>Foreign</b> - pages initially intended for this node that were allocated to another node instead. <b>Interleave</b> - interleave policy pages successfully allocated to this node. <b>Other</b> - pages allocated on this node, by a process on another node. <b>PteUpdates</b> - base pages that were marked for NUMA hinting faults. <b>HugePteUpdates</b> - transparent huge pages that were marked for NUMA hinting faults. In Combination with <b>pte_updates</b> the total address space that was marked can be calculated. <b>HintFaults</b> - NUMA hinting faults that were trapped. <b>HintFaultsLocal</b> - hinting faults that were to local nodes. In combination with <b>HintFaults</b>, the percentage of local versus remote faults can be calculated. A high percentage of local hinting faults indicates that the workload is closer to being converged. <b>PagesMigrated</b> - pages were migrated because they were misplaced. As migration is a copying operation, it contributes the largest part of the overhead created by NUMA balancing.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.numa_nodes":{en:{instance:{one:"system",other:"systems"}}},"mem.available":{family:"overview",mainheads:[{groupBy:["selected"],aggregationMethod:"sum",chartLibrary:"easypiechart",title:"Total Available Memory",layout:{left:0,top:0,width:3,height:5}},{groupBy:["node"],dimensionsSort:"valueAsc",chartLibrary:"bars",title:"Top Nodes by Least Available Memory",layout:{left:0,top:5,width:3,height:5}}],info:e=>{let{os:t}=e;return"freebsd"===t?"The amount of memory that can be used by user-space processes without causing swapping. Calculated as the sum of free, cached, and inactive memory.":"Available Memory is estimated by the kernel, as the amount of RAM that can be used by userspace processes, without causing swapping."},en:{instance:{one:"system",other:"systems"}}},"mem.writeback":{family:"writeback",info:"<b>Dirty</b> is the amount of memory waiting to be written to disk. <b>Writeback</b> is how much memory is actively being written to disk.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["Dirty"]},"mem.kernel":{info:"<p>The total amount of memory being used by the kernel.</p><p><b>Slab</b> - used by the kernel to cache data structures for its own use. <b>KernelStack</b> - allocated for each task done by the kernel. <b>PageTables</b> - dedicated to the lowest level of page tables (A page table is used to turn a virtual address into a physical memory address). <b>VmallocUsed</b> - being used as virtual address space. <b>Percpu</b> - allocated to the per-CPU allocator used to back per-CPU allocations (excludes the cost of metadata). When you create a per-CPU variable, each processor on the system gets its own copy of that variable.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.slab":{info:'<p><a href="https://en.wikipedia.org/wiki/Slab_allocation" target="_blank">Slab memory</a> statistics.<p><p><b>Reclaimable</b> - amount of memory which the kernel can reuse. <b>Unreclaimable</b> - can not be reused even when the kernel is lacking memory.</p>',en:{instance:{one:"system",other:"systems"}}},"mem.hugepages":{info:"Dedicated (or Direct) HugePages is memory reserved for applications configured to utilize huge pages. Hugepages are <b>used</b> memory, even if there are free hugepages available.",en:{instance:{one:"system",other:"systems"}}},"mem.transparent_hugepages":{info:"Transparent HugePages (THP) is backing virtual memory with huge pages, supporting automatic promotion and demotion of page sizes. It works for all applications for anonymous memory mappings and tmpfs/shmem.",en:{instance:{one:"system",other:"systems"}}},"mem.hwcorrupt":{info:'The amount of memory with physical corruption problems, identified by <a href="https://en.wikipedia.org/wiki/ECC_memory" target="_blank">ECC</a> and set aside by the kernel so it does not get used.',en:{instance:{one:"system",other:"systems"}}},"mem.edac_mc":{info:"The number of correctable (single-bit) ECC errors. These errors do not affect the normal operation of the system because they are still being corrected. Periodic correctable errors may indicate that one of the memory modules is slowly failing.",en:{instance:{one:"mem controller",other:"mem controllers"}}},"mem.edac_mc_errors":{info:"The number of correctable (single-bit) ECC errors. These errors do not affect the normal operation of the system because they are still being corrected. Periodic correctable errors may indicate that one of the memory modules is slowly failing.",en:{instance:{one:"mem controller",other:"mem controllers"}}},"mem.edac_mc_dimm":{info:"The number of uncorrectable (multi-bit) ECC errors. An uncorrectable error is a fatal issue that will typically lead to an OS crash.",en:{instance:{one:"mem module",other:"mem modules"}}},"mem.edac_mc_dimm_errors":{info:"The number of uncorrectable (multi-bit) ECC errors. An uncorrectable error is a fatal issue that will typically lead to an OS crash.",en:{instance:{one:"mem module",other:"mem modules"}}},"mem.pagetype_global":{info:"The amount of memory available in blocks of certain size.",en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_ratio":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Page Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0],valueRange:[0,100],layout:{left:6,top:0,width:3,height:5}},{groupBy:["node"],chartLibrary:"bars",dimensionsSort:"valueAsc",title:"Top Nodes by Least Cache Hit Ratio",layout:{left:6,top:5,width:3,height:5}}],info:'The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata shows the ratio per <a href="#ebpf_apps_cachestat_ratio">application</a> and <a href="#ebpf_services_cachestat_ratio">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f,en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_dirties":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Dirty Pages",desiredUnits:"Pages/s",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the dity page <a href="#ebpf_apps_cachestat_dirties">application</a> and <a href="#ebpf_services_cachestat_dirties">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_cachestat_dirty"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_hits":{aggregationMethod:"avg",info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the hits per <a href="#ebpf_apps_cachestat_hits">application</a> and <a href="#ebpf_services_cachestat_hits">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_misses":{aggregationMethod:"avg",info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data that was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the missed access per <a href="#ebpf_apps_cachestat_misses">application</a> and <a href="#ebpf_services_cachestat_misses">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.sync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-system-sync" target="_blank">syscalls</a> that sync filesystem metadata or cached. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+f,en:{instance:{one:"system",other:"systems"}}},"mem.file_sync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-sync" target="_blank">syscalls</a> responsible to transfer modified Linux page cache to disk. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+f,en:{instance:{one:"system",other:"systems"}}},"mem.memory_map":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#memory-map-sync" target="_blank">syscall</a> responsible to the in-core copy of a file that was mapped. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+f,en:{instance:{one:"system",other:"systems"}}},"mem.file_segment":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-range-sync" target="_blank">syscall</a> responsible to sync file segments. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+f,en:{instance:{one:"system",other:"systems"}}},"filesystem.dc_hit_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata shows directory cache metrics per <a href="#ebpf_apps_dc_hit">application</a> and <a href="#ebpf_services_dc_hit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_dc_hit_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.dc_reference":{info:'Counters of file accesses. <b>Reference</b> is when there is a file access and the file is not present in the directory cache. <b>Miss</b> is when there is file access and the file is not found in the filesystem. <b>Slow</b> is when there is a file access and the file is present in the filesystem but not in the directory cache. Netdata shows directory cache metrics per <a href="#ebpf_apps_dc_reference">application</a> and <a href="#ebpf_services_dc_reference">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"md.health":{family:"health",info:"Number of failed devices per MD array. Netdata retrieves this data from the <b>[n/m]</b> field of the md status line. It means that ideally the array would have <b>n</b> devices however, currently, <b>m</b> devices are in use. <b>failed disks</b> is <b>n-m</b>.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.disks":{family:"health",info:"Number of devices in use and in the down state. Netdata retrieves this data from the <b>[n/m]</b> field of the md status line. It means that ideally the array would have <b>n</b> devices however, currently, <b>m</b> devices are in use. <b>inuse</b> is <b>m</b>, <b>down</b> is <b>n-m</b>.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.status":{family:"activity",info:"Completion progress of the ongoing operation.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.expected_time_until_operation_finish":{family:"activity",info:"Estimated time to complete the ongoing operation. The time is only an approximation since the operation speed will vary according to other I/O demands.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.operation_speed":{family:"activity",info:"Speed of the ongoing operation. The system-wide rebuild speed limits are specified in <b>/proc/sys/dev/raid/{speed_limit_min,speed_limit_max}</b> files. These options are good for tweaking rebuilt process and may increase overall system load, cpu and memory usage.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.mismatch_cnt":{family:"errors",info:'When performing <b>check</b> and <b>repair</b>, and possibly when performing <b>resync</b>, md will count the number of errors that are found. A count of mismatches is recorded in the <b>sysfs</b> file <b>md/mismatch_cnt</b>. This value is the number of sectors that were re-written, or (for <b>check</b>) would have been re-written. It may be larger than the number of actual errors by a factor of the number of sectors in a page. Mismatches can not be interpreted very reliably on RAID1 or RAID10, especially when the device is used for swap. On a truly clean RAID5 or RAID6 array, any mismatches should indicate a hardware problem at some level - software issues should never cause such a mismatch. For details, see <a href="https://man7.org/linux/man-pages/man4/md.4.html" target="_blank">md(4)</a>.',en:{instance:{one:"MD array",other:"MD arrays"}}},"md.flush":{family:"flushes",info:'Number of flush counts per MD array. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/mdflush_example.txt" target="_blank">mdflush</a> from BCC tools.',en:{instance:{one:"MD array",other:"MD arrays"}}},"ip.inerrors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IP Inbound Errors",desiredUnits:"errors",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:"<p>The number of errors encountered during the reception of IP packets.</p></p><b>NoRoutes</b> - packets that were dropped because there was no route to send them. <b>Truncated</b> - packets which is being discarded because the datagram frame didn't carry enough data. <b>Checksum</b> - packets that were dropped because they had wrong checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.mcast":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Multicast Traffic Received",layout:{left:9,top:5,width:3,height:5},colors:s.default[2]},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Multicast Traffic Sent",layout:{left:6,top:5,width:3,height:5},colors:s.default[1]}],info:"Total multicast traffic in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.mcastpkts":{info:"Total transferred multicast packets in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.bcast":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Broadcast Traffic Received",layout:{left:3,top:5,width:3,height:5},colors:s.default[2]},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Broadcast Traffic Sent",layout:{left:0,top:5,width:3,height:5},colors:s.default[1]}],info:"Total broadcast traffic in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.bcastpkts":{info:"Total transferred broadcast packets in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.ecnpkts":{info:"<p>Total number of received IP packets with ECN bits set in the system.</p><p><b>CEP</b> - congestion encountered. <b>NoECTP</b> - non ECN-capable transport. <b>ECTP0</b> and <b>ECTP1</b> - ECN capable transport.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["NoECTP"]},"ip.inbound_conn":{info:'Number of calls to functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-inbound-connections" target="_blank">receiving connections</a>.'+f,en:{instance:{one:"system",other:"systems"}}},"ip.tcp_outbound_conn":{info:'Number of calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_outbound_conn_ipv4">application</a> and <a href="#ebpf_services_outbound_conn_ipv4">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_outbound_conn"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_functions":{info:'Number of calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth-functions" target="_blank">exchanging data</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_bandwidth_tcp_sent">application</a> and <a href="#ebpf_services_bandwidth_tcp_sent">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_tcp_bandwidth_call"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.total_tcp_bandwidth":{heads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total TCP Bandwidth",desiredUnits:"bps",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:'Total bytes sent and received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP internal functions</a>. Netdata shows TCP bandwidth metrics per <a href="#ebpf_apps_bandwidth_sent">application</a> and <a href="#ebpf_services_bandwidth_sent">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_bandwidth_tcp_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_error":{heads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"TCP Errors",desiredUnits:"errors",colors:s.default[2],layout:{left:3,top:0,width:3,height:5}}],info:'Number of failed calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP bandwidth</a>. Netdata shows TCP error per <a href="#ebpf_apps_tcp_sendmsg_error">application</a> and <a href="#ebpf_services_tcp_sendmsg_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_tcp_bandwidth_error"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_retransmit":{heads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"TCP Retransmits",desiredUnits:"retransmits",colors:s.default[3],layout:{left:6,top:0,width:3,height:5}}],info:'Number of times a TCP packet was <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">retransmitted</a>. Netdata shows TCP retransmit per <a href="#ebpf_apps_tcp_retransmit">application</a> and <a href="#ebpf_services_tcp_retransmit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.udp_functions":{info:'Number of calls to UDP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">exchanging data</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_udp_sendmsg">application</a> and <a href="#ebpf_services_udp_sendmsg">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_udp_bandwidth_call"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.total_udp_bandwidth":{heads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total UDP Bandwidth",desiredUnits:"bps",colors:s.default[4],layout:{left:9,top:0,width:3,height:5}}],info:'Total bytes sent and received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-bandwidth" target="_blank">UDP internal functions</a>. Netdata shows UDP bandwidth metrics per <a href="#ebpf_apps_bandwidth_udp_sendmsg">application</a> and <a href="#ebpf_services_bandwidth_udp_sendmsg">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_bandwidth_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.udp_error":{info:'Number of failed calls to UDP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-bandwidth" target="_blank">UDP bandwidth</a>. Netdata shows UDP error per <a href="#ebpf_apps_udp_sendmsg_error">application</a> and <a href="#ebpf_services_udp_sendmsg_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+'<div id="ebpf_global_udp_bandwidth_error"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcpreorders":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"TCP Reorders",layout:{left:9,top:0,width:3,height:5}}],info:"<p>TCP prevents out-of-order packets by either sequencing them in the correct order or by requesting the retransmission of out-of-order packets.</p><p><b>Timestamp</b> - detected re-ordering using the timestamp option. <b>SACK</b> - detected re-ordering using Selective Acknowledgment algorithm. <b>FACK</b> - detected re-ordering using Forward Acknowledgment algorithm. <b>Reno</b> - detected re-ordering using Fast Retransmit algorithm.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcpofo":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"TCP Out-Of-Order Queue",layout:{left:6,top:0,width:3,height:5}}],info:"<p>TCP maintains an out-of-order queue to keep the out-of-order packets in the TCP communication.</p><p><b>InQueue</b> - the TCP layer receives an out-of-order packet and has enough memory to queue it. <b>Dropped</b> - the TCP layer receives an out-of-order packet but does not have enough memory, so drops it. <b>Merged</b> - the received out-of-order packet has an overlay with the previous packet. The overlay part will be dropped. All these packets will also be counted into <b>InQueue</b>. <b>Pruned</b> - packets dropped from out-of-order queue because of socket buffer overrun.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcpsyncookies":{info:'<p><a href="https://en.wikipedia.org/wiki/SYN_cookies" target="_blank">SYN cookies</a> are used to mitigate SYN flood.</p><p><b>Received</b> - after sending a SYN cookie, it came back to us and passed the check. <b>Sent</b> - an application was not able to accept a connection fast enough, so the kernel could not store an entry in the queue for this connection. Instead of dropping it, it sent a SYN cookie to the client. <b>Failed</b> - the MSS decoded from the SYN cookie is invalid. When this counter is incremented, the received packet won\u2019t be treated as a SYN cookie.</p>',en:{instance:{one:"system",other:"systems"}}},"ip.tcpmemorypressures":{info:"The number of times a socket was put in memory pressure due to a non fatal memory allocation failure (the kernel attempts to work around this situation by reducing the send buffers, etc).",en:{instance:{one:"system",other:"systems"}}},"ip.tcpconnaborts":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"TCP Connection Aborts",desiredUnits:"errors",layout:{left:3,top:0,width:3,height:5}}],info:"<p>TCP connection aborts.</p><p><b>BadData</b> - happens while the connection is on FIN_WAIT1 and the kernel receives a packet with a sequence number beyond the last one for this connection - the kernel responds with RST (closes the connection). <b>UserClosed</b> - happens when the kernel receives data on an already closed connection and responds with RST. <b>NoMemory</b> - happens when there are too many orphaned sockets (not attached to an fd) and the kernel has to drop a connection - sometimes it will send an RST, sometimes it won't. <b>Timeout</b> - happens when a connection times out. <b>Linger</b> - happens when the kernel killed a socket that was already closed by the application and lingered around for long enough. <b>Failed</b> - happens when the kernel attempted to send an RST but failed because there was no memory available.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["timeouts"]},"ip.tcp_syn_queue":{info:"<p>The SYN queue of the kernel tracks TCP handshakes until connections get fully established. It overflows when too many incoming TCP connection requests hang in the half-open state and the server is not configured to fall back to SYN cookies. Overflows are usually caused by SYN flood DoS attacks.</p><p><b>Drops</b> - number of connections dropped because the SYN queue was full and SYN cookies were disabled. <b>Cookies</b> - number of SYN cookies sent because the SYN queue was full.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcp_accept_queue":{info:"<p>The accept queue of the kernel holds the fully established TCP connections, waiting to be handled by the listening application.</p><b>Overflows</b> - the number of established connections that could not be handled because the receive queue of the listening application was full. <b>Drops</b> - number of incoming connections that could not be handled, including SYN floods, overflows, out of memory, security issues, no route to destination, reception of related ICMP messages, socket is broadcast or multicast.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["overflows"]},"ipv4.packets":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],aggregationMethod:"sum",chartLibrary:"easypiechart",title:"Total IPv4 Packets",desiredUnits:"Kpps",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 Packets",layout:{left:0,top:5,width:3,height:5}}],info:'<p>IPv4 packets statistics for this host.</p><p><b>Received</b> - packets received by the IP layer. This counter will be increased even if the packet is dropped later. <b>Sent</b> - packets sent via IP layer, for both single cast and multicast packets. This counter does not include any packets counted in <b>Forwarded</b>. <b>Forwarded</b> - input packets for which this host was not their final IP destination, as a result of which an attempt was made to find a route to forward them to that final destination. In hosts which do not act as IP Gateways, this counter will include only those packets which were <a href="https://en.wikipedia.org/wiki/Source_routing" target="_blank">Source-Routed</a> and the Source-Route option processing was successful. <b>Delivered</b> - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.fragsout":{info:'<p><a href="https://en.wikipedia.org/wiki/IPv4#Fragmentation" target="_blank">IPv4 fragmentation</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully fragmented. <b>Failed</b> - packets that have been discarded because they needed to be fragmented but could not be, e.g. due to <i>Don\'t Fragment</i> (DF) flag was set. <b>Created</b> - fragments that have been generated as a result of fragmentation.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.fragsin":{info:'<p><a href="https://en.wikipedia.org/wiki/IPv4#Reassembly" target="_blank">IPv4 reassembly</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully reassembled. <b>Failed</b> - failures detected by the IP reassembly algorithm. This is not necessarily a count of discarded IP fragments since some algorithms can lose track of the number of fragments by combining them as they are received. <b>All</b> - received IP fragments which needed to be reassembled.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.errors":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total IPv4 Errors",desiredUnits:"packets per second",colors:s.default[1],layout:{left:3,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 Errors",layout:{left:3,top:5,width:3,height:5}}],info:"<p>The number of discarded IPv4 packets.</p><p><b>InDiscards</b>, <b>OutDiscards</b> - inbound and outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. <b>InHdrErrors</b> - input packets that have been discarded due to errors in their IP headers, including bad checksums, version number mismatch, other format errors, time-to-live exceeded, errors discovered in processing their IP options, etc. <b>OutNoRoutes</b> - packets that have been discarded because no route could be found to transmit them to their destination. This includes any packets which a host cannot route because all of its default gateways are down. <b>InAddrErrors</b> - input packets that have been discarded due to invalid IP address or the destination IP address is not a local address and IP forwarding is not enabled. <b>InUnknownProtos</b> - input packets which were discarded because of an unknown or unsupported protocol.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmp":{aggregationMethod:"sum",info:"<p>The number of transferred IPv4 ICMP messages.</p><p><b>Received</b>, <b>Sent</b> - ICMP messages which the host received and attempted to send. Both these counters include errors.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmp_errors":{info:"<p>The number of IPv4 ICMP errors.</p><p><b>InErrors</b> - received ICMP messages but determined as having ICMP-specific errors, e.g. bad ICMP checksums, bad length, etc. <b>OutErrors</b> - ICMP messages which this host did not send due to problems discovered within ICMP such as a lack of buffers. This counter does not include errors discovered outside the ICMP layer such as the inability of IP to route the resultant datagram. <b>InCsumErrors</b> - received ICMP messages with bad checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmpmsg":{info:'The number of transferred <a href="https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml" target="_blank">IPv4 ICMP control messages</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv4.udppackets":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total IPv4 UDP Packets",desiredUnits:"Kpps",colors:s.default[4],layout:{left:9,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 UDP Packets",layout:{left:9,top:5,width:3,height:5}}],info:"The number of transferred UDP packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udperrors":{info:"<p>The number of errors encountered during transferring UDP packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udplite":{info:"The number of transferred UDP-Lite packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udplite_errors":{info:"<p>The number of errors encountered during transferring UDP-Lite packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcppackets":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total IPv4 TCP Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{left:6,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 TCP Packets",layout:{left:6,top:5,width:3,height:5}}],info:"<p>The number of packets transferred by the TCP layer.</p></p><b>Received</b> - received packets, including those received in error, such as checksum error, invalid TCP header, and so on. <b>Sent</b> - sent packets, excluding the retransmitted packets. But it includes the SYN, ACK, and RST packets.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpsock":{info:"The number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT. This is a snapshot of the established connections at the time of measurement (i.e. a connection established and a connection disconnected within the same iteration will not affect this metric).",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["connections"]},"ipv4.tcpopens":{info:"<p>TCP connection statistics.</p><p><b>Active</b> - number of outgoing TCP connections attempted by this host. <b>Passive</b> - number of incoming TCP connections accepted by this host.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["active"]},"ipv4.tcperrors":{info:"<p>TCP errors.</p><p><b>InErrs</b> - TCP segments received in error (including header too small, checksum errors, sequence errors, bad packets - for both IPv4 and IPv6). <b>InCsumErrors</b> - TCP segments received with checksum errors (for both IPv4 and IPv6). <b>RetransSegs</b> - TCP segments retransmitted.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["all"]},"ipv4.tcphandshake":{info:"<p>TCP handshake statistics.</p><p><b>EstabResets</b> - established connections resets (i.e. connections that made a direct transition from ESTABLISHED or CLOSE_WAIT to CLOSED). <b>OutRsts</b> - TCP segments sent, with the RST flag set (for both IPv4 and IPv6). <b>AttemptFails</b> - number of times TCP connections made a direct transition from either SYN_SENT or SYN_RECV to CLOSED, plus the number of times TCP connections made a direct transition from the SYN_RECV to LISTEN. <b>SynRetrans</b> - shows retries for new outbound TCP connections, which can indicate general connectivity issues or backlog on the remote host.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_sockets":{info:'The total number of used sockets for all <a href="https://man7.org/linux/man-pages/man7/address_families.7.html" target="_blank">address families</a> in this system.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["used"]},"ipv4.sockstat_tcp_sockets":{info:'<p>The number of TCP sockets in the system in certain <a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Protocol_operation" target="_blank">states</a>.</p><p><b>Alloc</b> - in any TCP state. <b>Orphan</b> - no longer attached to a socket descriptor in any user processes, but for which the kernel is still required to maintain state in order to complete the transport protocol. <b>InUse</b> - in any TCP state, excluding TIME-WAIT and CLOSED. <b>TimeWait</b> - in the TIME-WAIT state.</p>',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["alloc"]},"ipv4.sockstat_tcp_mem":{info:"The amount of memory used by allocated TCP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_udp_sockets":{info:"The number of used UDP sockets.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv4.sockstat_udp_mem":{info:"The amount of memory used by allocated UDP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_udplite_sockets":{info:"The number of used UDP-Lite sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_raw_sockets":{info:'The number of used <a href="https://en.wikipedia.org/wiki/Network_socket#Types" target="_blank"> raw sockets</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_frag_sockets":{info:"The number of entries in hash tables that are used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_frag_mem":{info:"The amount of memory used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"ipv6.packets":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],aggregationMethod:"sum",chartLibrary:"easypiechart",title:"Total IPv6 Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{left:0,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 Packets",layout:{left:0,top:5,width:3,height:5}}],info:'<p>IPv6 packet statistics for this host.</p><p><b>Received</b> - packets received by the IP layer. This counter will be increased even if the packet is dropped later. <b>Sent</b> - packets sent via IP layer, for both single cast and multicast packets. This counter does not include any packets counted in <b>Forwarded</b>. <b>Forwarded</b> - input packets for which this host was not their final IP destination, as a result of which an attempt was made to find a route to forward them to that final destination. In hosts which do not act as IP Gateways, this counter will include only those packets which were <a href="https://en.wikipedia.org/wiki/Source_routing" target="_blank">Source-Routed</a> and the Source-Route option processing was successful. <b>Delivers</b> - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.fragsout":{info:'<p><a href="https://en.wikipedia.org/wiki/IP_fragmentation" target="_blank">IPv6 fragmentation</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully fragmented. <b>Failed</b> - packets that have been discarded because they needed to be fragmented but could not be, e.g. due to <i>Don\'t Fragment</i> (DF) flag was set. <b>All</b> - fragments that have been generated as a result of fragmentation.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.fragsin":{info:'<p><a href="https://en.wikipedia.org/wiki/IP_fragmentation" target="_blank">IPv6 reassembly</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully reassembled. <b>Failed</b> - failures detected by the IP reassembly algorithm. This is not necessarily a count of discarded IP fragments since some algorithms can lose track of the number of fragments by combining them as they are received. <b>Timeout</b> - reassembly timeouts detected. <b>All</b> - received IP fragments which needed to be reassembled.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.errors":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total IPv6 Errors",desiredUnits:"Kpps",colors:s.default[3],layout:{left:3,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 Errors",layout:{left:3,top:5,width:3,height:5}}],info:"<p>The number of discarded IPv6 packets.</p><p><b>InDiscards</b>, <b>OutDiscards</b> - packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. <b>InHdrErrors</b> - errors in IP headers, including bad checksums, version number mismatch, other format errors, time-to-live exceeded, etc. <b>InAddrErrors</b> - invalid IP address or the destination IP address is not a local address and IP forwarding is not enabled. <b>InUnknownProtos</b> - unknown or unsupported protocol. <b>InTooBigErrors</b> - the size exceeded the link MTU. <b>InTruncatedPkts</b> - packet frame did not carry enough data. <b>InNoRoutes</b> - no route could be found while forwarding. <b>OutNoRoutes</b> - no route could be found for packets generated by this host.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.udppackets":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total IPv6 UDP Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{left:6,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 UDP Packets",layout:{left:6,top:5,width:3,height:5}}],info:"The number of transferred UDP packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udperrors":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total IPv6 UDP Errors",desiredUnits:"Kpps",colors:s.default[3],layout:{left:9,top:0,width:3,height:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 UDP Errors",layout:{left:9,top:5,width:3,height:5}}],info:"<p>The number of errors encountered during transferring UDP packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udplitepackets":{info:"The number of transferred UDP-Lite packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udpliteerrors":{info:"<p>The number of errors encountered during transferring UDP-Lite packets.</p><p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.mcast":{info:"Total IPv6 multicast traffic.",en:{instance:{one:"system",other:"systems"}}},"ipv6.bcast":{info:"Total IPv6 broadcast traffic.",en:{instance:{one:"system",other:"systems"}}},"ipv6.mcastpkts":{info:"Total transferred IPv6 multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmp":{aggregationMethod:"sum",info:"<p>The number of transferred ICMPv6 messages.</p><p><b>Received</b>, <b>Sent</b> - ICMP messages which the host received and attempted to send. Both these counters include errors.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpredir":{info:"The number of transferred ICMPv6 Redirect messages. These messages inform a host to update its routing information (to send packets on an alternative route).",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpechos":{info:"The number of ICMPv6 Echo messages.",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmperrors":{info:'<p>The number of ICMPv6 errors and <a href="https://www.rfc-editor.org/rfc/rfc4443.html#section-3" target="_blank">error messages</a>.</p><p><b>InErrors</b>, <b>OutErrors</b> - bad ICMP messages (bad ICMP checksums, bad length, etc.). <b>InCsumErrors</b> - wrong checksum.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.groupmemb":{info:"<p>The number of transferred ICMPv6 Group Membership messages.</p><p> Multicast routers send Group Membership Query messages to learn which groups have members on each of their attached physical networks. Host computers respond by sending a Group Membership Report for each multicast group joined by the host. A host computer can also send a Group Membership Report when it joins a new multicast group. Group Membership Reduction messages are sent when a host computer leaves a multicast group.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmprouter":{info:'<p>The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" target="_blank">Router Discovery</a> messages.</p><p>Router <b>Solicitations</b> message is sent from a computer host to any routers on the local area network to request that they advertise their presence on the network. Router <b>Advertisement</b> message is sent by a router on the local area network to announce its IP address as available for routing.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpneighbor":{info:'<p>The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" target="_blank">Neighbour Discovery</a> messages.</p><p>Neighbor <b>Solicitations</b> are used by nodes to determine the link layer address of a neighbor, or to verify that a neighbor is still reachable via a cached link layer address. Neighbor <b>Advertisements</b> are used by nodes to respond to a Neighbor Solicitation message.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpmldv2":{info:'The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Multicast_Listener_Discovery" target="_blank">Multicast Listener Discovery</a> (MLD) messages.',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmptypes":{info:'The number of transferred ICMPv6 messages of <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6#Types" target="_blank">certain types</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv6.ect":{info:"<p>Total number of received IPv6 packets with ECN bits set in the system.</p><p><b>CEP</b> - congestion encountered. <b>NoECTP</b> - non ECN-capable transport. <b>ECTP0</b> and <b>ECTP1</b> - ECN capable transport.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_tcp_sockets":{info:'The number of TCP sockets in any <a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Protocol_operation" target="_blank">state</a>, excluding TIME-WAIT and CLOSED.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv6.sockstat6_udp_sockets":{info:"The number of used UDP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_udplite_sockets":{info:"The number of used UDP-Lite sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_raw_sockets":{info:'The number of used <a href="https://en.wikipedia.org/wiki/Network_socket#Types" target="_blank"> raw sockets</a>.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv6.sockstat6_frag_sockets":{info:"The number of entries in hash tables that are used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"sctp.established":{aggregationMethod:"sum",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"SCTP Associations States",desiredUnits:"connections",colors:s.default[0],layout:{left:4,top:0,width:4,height:5}}],info:"The number of associations for which the current state is either ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING.",en:{instance:{one:"system",other:"systems"}}},"sctp.transitions":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total SCTP Transitions",desiredUnits:"transitions",colors:s.default[1],layout:{left:0,top:0,width:2,height:5}}],info:"<p>The number of times that associations have made a direct transition between states.</p><p><b>Active</b> - from COOKIE-ECHOED to ESTABLISHED. The upper layer initiated the association attempt. <b>Passive</b> - from CLOSED to ESTABLISHED. The remote endpoint initiated the association attempt. <b>Aborted</b> - from any state to CLOSED using the primitive ABORT. Ungraceful termination of the association. <b>Shutdown</b> - from SHUTDOWN-SENT or SHUTDOWN-ACK-SENT to CLOSED. Graceful termination of the association.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.packets":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total SCTP Packets",desiredUnits:"packets",colors:s.default[2],layout:{left:2,top:0,width:2,height:5}}],info:"<p>The number of transferred SCTP packets.</p><p><b>Received</b> - includes duplicate packets. <b>Sent</b> - includes retransmitted DATA chunks.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.packet_errors":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total SCTP Packet Errors",desiredUnits:"errors",colors:s.default[3],layout:{left:8,top:0,width:2,height:5}}],info:"<p>The number of errors encountered during receiving SCTP packets.</p><p><b>Invalid</b> - packets for which the receiver was unable to identify an appropriate association. <b>Checksum</b> - packets with an invalid checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.fragmentation":{aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total SCTP Fragmentation",desiredUnits:"fragments",colors:s.default[4],layout:{left:10,top:0,width:2,height:5}}],info:"<p>The number of fragmented and reassembled SCTP messages.</p><p><b>Reassembled</b> - reassembled user messages, after conversion into DATA chunks. <b>Fragmented</b> - user messages that have to be fragmented because of the MTU.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.chunks":{aggregationMethod:"sum",info:"The number of transferred control, ordered, and unordered DATA chunks. Retransmissions and duplicates are not included.",en:{instance:{one:"system",other:"systems"}}},"netfilter.conntrack_sockets":{info:"The number of entries in the conntrack table.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_new":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Conntrack Connections Status",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:"<p>Packet tracking statistics. <b>New</b> (since v4.9) and <b>Ignore</b> (since v5.10) are hardcoded to zeros in the latest kernel.</p><p><b>New</b> - conntrack entries added which were not expected before. <b>Ignore</b> - packets seen which are already connected to a conntrack entry. <b>Invalid</b> - packets seen which can not be tracked.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_changes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Conntrack Changes",desiredUnits:"changes",colors:s.default[1],layout:{left:3,top:0,width:3,height:5}}],info:"<p>The number of changes in conntrack tables.</p><p><b>Inserted</b>, <b>Deleted</b> - conntrack entries which were inserted or removed. <b>Delete-list</b> - conntrack entries which were put to dying list.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_expect":{info:'<p>The number of events in the "expect" table. Connection tracking expectations are the mechanism used to "expect" RELATED connections to existing ones. An expectation is a connection that is expected to happen in a period of time.</p><p><b>Created</b>, <b>Deleted</b> - conntrack entries which were inserted or removed. <b>New</b> - conntrack entries added after an expectation for them was already present.</p>',en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_search":{info:"<p>Conntrack table lookup statistics.</p><p><b>Searched</b> - conntrack table lookups performed. <b>Restarted</b> - conntrack table lookups which had to be restarted due to hashtable resizes. <b>Found</b> - conntrack table lookups which were successful.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_errors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Conntrack Errors",desiredUnits:"errors",colors:s.default[2],layout:{left:6,top:0,width:3,height:5}}],info:"<p>Conntrack errors.</p><p><b>IcmpError</b> - packets which could not be tracked due to error situation. <b>InsertFailed</b> - entries for which list insertion was attempted but failed (happens if the same entry is already present). <b>Drop</b> - packets dropped due to conntrack failure. Either new conntrack entry allocation failed, or protocol helper dropped the packet. <b>EarlyDrop</b> - dropped conntrack entries to make room for new ones, if maximum table size was reached.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_syn_received":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total TCP SYN Received",desiredUnits:"SYNs",colors:s.default[3],layout:{left:9,top:0,width:3,height:5}}],info:"The number of initial TCP SYN packets received from clients.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_conn_reopened":{info:"The number of reopened connections by new TCP SYN packets directly from the TIME-WAIT state.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_cookies":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"SYN Proxy Cookie Stats",desiredUnits:"cookies",colors:s.default[4],layout:{left:0,top:5,width:3,height:5}}],info:"<p>SYNPROXY cookie statistics.</p><p><b>Valid</b>, <b>Invalid</b> - result of cookie validation in TCP ACK packets received from clients. <b>Retransmits</b> - TCP SYN packets retransmitted to the server. It happens when the client repeats TCP ACK and the connection to the server is not yet established.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"app.cpu_utilization":{info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel modes</a> (all cores).',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],mainheads:[{groupBy:["label"],groupByLabel:["app_group"],chartLibrary:"bars",title:"Top Apps by CPU",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],en:{instance:{one:"application",other:"applications"}}},"app.cpu_guest_utilization":{info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.cpu_context_switches":{info:"The number of CPU context switches. Voluntary context switches occur when a process yields control of the CPU to another process. Nonvoluntary context switches occur when the kernel preempts a process and gives control of the CPU to another process.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],en:{instance:{one:"application",other:"applications"}}},"app.mem_usage":{info:"Resident Set Size (RSS) is the amount of physical memory that is currently being used by the processes. This includes the process's code, data, stack, and shared libraries.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",mainheads:[{groupBy:["label"],groupByLabel:["app_group"],chartLibrary:"bars",title:"Top Apps by Memory",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"application",other:"applications"}}},"app.mem_private_usage":{info:"The amount of used memory, excluding shared memory.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.mem_page_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor</a> and <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major</a> page faults.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.vmem_usage":{info:'The amount of allocated virtual memory. Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more details.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.swap_usage":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.disk_physical_io":{info:"The amount of data that has been transferred to/from the storage layer. Actual physical disk I/O was required.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",mainheads:[{groupBy:["label"],groupByLabel:["app_group"],selectedDimensions:["reads"],chartLibrary:"bars",title:"Top Apps by Disk Reads",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}},{groupBy:["label"],groupByLabel:["app_group"],selectedDimensions:["writes"],chartLibrary:"bars",title:"Top Apps by Disk Writes",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],en:{instance:{one:"application",other:"applications"}}},"app.disk_logical_io":{info:"The amount of data that has been transferred to/from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read/write operation might have been satisfied from pagecache).",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],chartType:"stacked",en:{instance:{one:"application",other:"applications"}}},"app.fds_open_limit":{info:"Percentage of available file descriptors used.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["app_group"],en:{instance:{one:"application",other:"applications"}}},"app.fds_open":{info:"Number of file descriptors used.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],en:{instance:{one:"application",other:"applications"}}},"app.uptime":{info:"The period of time within which at least one process in the group has been running.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["app_group"],en:{instance:{one:"application",other:"applications"}}},"app.uptime_summary":{info:"The shorted, average and longest uptime among processes in the group.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["app_group"],en:{instance:{one:"application",other:"applications"}}},"usergroup.cpu_utilization":{info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel modes</a> (all cores).',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],mainheads:[{groupBy:["label"],groupByLabel:["user_group"],chartLibrary:"bars",title:"Top Groups by CPU",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],en:{instance:{one:"group",other:"groups"}}},"usergroup.cpu_guest_utilization":{info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.cpu_context_switches":{info:"The number of CPU context switches. Voluntary context switches occur when a process yields control of the CPU to another process. Nonvoluntary context switches occur when the kernel preempts a process and gives control of the CPU to another process.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],en:{instance:{one:"group",other:"groups"}}},"usergroup.mem_usage":{info:"Resident Set Size (RSS) is the amount of physical memory that is currently being used by the processes. This includes the process's code, data, stack, and shared libraries.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",mainheads:[{groupBy:["label"],groupByLabel:["user_group"],chartLibrary:"bars",title:"Top Groups by Memory",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"group",other:"groups"}}},"usergroup.mem_private_usage":{info:"The amount of used memory, excluding shared memory.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.mem_page_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor</a> and <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major</a> page faults.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.vmem_usage":{info:'The amount of allocated virtual memory. Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more details.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.swap_usage":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.disk_physical_io":{info:"The amount of data that has been transferred to/from the storage layer. Actual physical disk I/O was required.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",mainheads:[{groupBy:["label"],groupByLabel:["user_group"],selectedDimensions:["reads"],chartLibrary:"bars",title:"Top Groups by Disk Reads",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}},{groupBy:["label"],groupByLabel:["user_group"],selectedDimensions:["writes"],chartLibrary:"bars",title:"Top Groups by Disk Writes",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],en:{instance:{one:"group",other:"groups"}}},"usergroup.disk_logical_io":{info:"The amount of data that has been transferred to/from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read/write operation might have been satisfied from pagecache).",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],chartType:"stacked",en:{instance:{one:"group",other:"groups"}}},"usergroup.fds_open_limit":{info:"Percentage of available file descriptors used.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user_group"],en:{instance:{one:"group",other:"groups"}}},"usergroup.fds_open":{info:"Number of file descriptors used.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user_group"],en:{instance:{one:"group",other:"groups"}}},"usergroup.uptime":{info:"The period of time within which at least one process in the group has been running.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user_group"],en:{instance:{one:"group",other:"groups"}}},"usergroup.uptime_summary":{info:"The shorted, average and longest uptime among processes in the group.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user_group"],en:{instance:{one:"group",other:"groups"}}},"user.cpu_utilization":{info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel modes</a> (all cores).',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],mainheads:[{groupBy:["label"],groupByLabel:["user"],chartLibrary:"bars",title:"Top Users by CPU",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],en:{instance:{one:"user",other:"users"}}},"user.cpu_guest_utilization":{info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",en:{instance:{one:"user",other:"users"}}},"user.cpu_context_switches":{info:"The number of CPU context switches. Voluntary context switches occur when a process yields control of the CPU to another process. Nonvoluntary context switches occur when the kernel preempts a process and gives control of the CPU to another process.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],en:{instance:{one:"user",other:"users"}}},"user.mem_usage":{info:"Resident Set Size (RSS) is the amount of physical memory that is currently being used by the processes. This includes the process's code, data, stack, and shared libraries.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",mainheads:[{groupBy:["label"],groupByLabel:["user"],chartLibrary:"bars",title:"Top Users by Memory",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"user",other:"users"}}},"user.mem_private_usage":{info:"The amount of used memory, excluding shared memory.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",en:{instance:{one:"user",other:"users"}}},"user.mem_page_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor</a> and <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major</a> page faults.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],en:{instance:{one:"user",other:"users"}}},"user.vmem_usage":{info:'The amount of allocated virtual memory. Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more details.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",en:{instance:{one:"user",other:"users"}}},"user.swap_usage":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",en:{instance:{one:"user",other:"users"}}},"user.disk_physical_io":{info:"The amount of data that has been transferred to/from the storage layer. Actual physical disk I/O was required.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",mainheads:[{groupBy:["label"],groupByLabel:["user"],selectedDimensions:["reads"],chartLibrary:"bars",title:"Top Users by Disk Reads",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}},{groupBy:["label"],groupByLabel:["user"],selectedDimensions:["writes"],chartLibrary:"bars",title:"Top Users by Disk Writes",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],en:{instance:{one:"user",other:"users"}}},"user.disk_logical_io":{info:"The amount of data that has been transferred to/from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read/write operation might have been satisfied from pagecache).",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",en:{instance:{one:"user",other:"users"}}},"user.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",en:{instance:{one:"user",other:"users"}}},"user.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],chartType:"stacked",en:{instance:{one:"user",other:"users"}}},"user.fds_open_limit":{info:"Percentage of available file descriptors used.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user"],en:{instance:{one:"user",other:"users"}}},"user.fds_open":{info:"Number of file descriptors used.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["user"],en:{instance:{one:"user",other:"users"}}},"user.uptime":{info:"The period of time within which at least one process in the group has been running.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user"],en:{instance:{one:"user",other:"users"}}},"user.uptime_summary":{info:"The shorted, average and longest uptime among processes in the group.",aggregationMethod:"avg",groupBy:["label"],groupByLabel:["user"],en:{instance:{one:"user",other:"users"}}},"apps.cpu":{aggregationMethod:"avg",mainheads:[{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Application",layout:{left:0,top:0,width:2.4,height:5}}],info:"Total CPU utilization per application.",en:{instance:{one:"system",other:"systems"}}},"groups.cpu":{mainheads:[{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Group",layout:{left:0,top:0,width:2.4,height:5}}],info:"Total CPU utilization (all cores). It includes user, system and guest time.",en:{instance:{one:"system",other:"systems"}}},"users.cpu":{mainheads:[{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per User",layout:{left:0,top:0,width:2.4,height:5}}],info:"Total CPU utilization (all cores). It includes user, system and guest time.",en:{instance:{one:"system",other:"systems"}}},"apps.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"groups.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"users.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"apps.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"groups.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"users.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"apps.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"groups.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"users.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"apps.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk reads per Application",layout:{left:4.8,top:0,width:2.4,height:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Reads per Group",layout:{left:4.8,top:0,width:2.4,height:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Reads per User",layout:{left:4.8,top:0,width:2.4,height:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.pwrites":{mainheads:[{chartLibrary:"bars",title:"Total Disk Writes per Application",layout:{left:7.2,top:0,width:2.4,height:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.pwrites":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Writes per Group",layout:{left:7.2,top:0,width:2.4,height:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.pwrites":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Writes per User",layout:{left:7.2,top:0,width:2.4,height:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"groups.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"users.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"apps.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per Application",layout:{left:9.6,top:0,width:2.4,height:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"groups.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per Group",layout:{left:9.6,top:0,width:2.4,height:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"users.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per User",layout:{left:9.6,top:0,width:2.4,height:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"apps.mem":{info:"Real memory (RAM) used by applications. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"groups.mem":{info:"Real memory (RAM) used per user group. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"users.mem":{info:"Real memory (RAM) used per user. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"apps.rss":{info:"Applications Resident Set Size (RSS).",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Application",layout:{left:2.4,top:0,width:2.4,height:5}}]},"groups.rss":{info:"Applications Resident Set Size (RSS) per user group.",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Group",layout:{left:2.4,top:0,width:2.4,height:5}}]},"users.rss":{info:"Applications Resident Set Size (RSS) per user.",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per User",layout:{left:2.4,top:0,width:2.4,height:5}}]},"apps.vmem":{info:'Virtual memory allocated by applications. Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"groups.vmem":{info:'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"users.vmem":{info:'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"apps.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"groups.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"users.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"apps.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"groups.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"users.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"apps.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"groups.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"users.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"apps.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"users.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"groups.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"users.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"apps.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"groups.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"users.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"apps.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"groups.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"users.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"apps.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"groups.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"users.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"app.ebpf_file_open":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_open">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_file_open"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_file_open_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_open_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_file_open_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_file_closed":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_closed">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_file_closed"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_file_close_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_close_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_file_close_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_unlink":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_unlink">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_unlink">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_unlink"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_write":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_write"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_write_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_write_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_read":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_read"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_read_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_read_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_write_bytes":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write_bytes">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_write_bytes"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_read_bytes":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read_bytes">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_read_bytes"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_fsync":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_sync">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_sync"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_fsync_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_sync_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_sync_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_open":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_open">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_open"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_open_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_open_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_open_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_create":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_create">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_create"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_vfs_create_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_create_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_vfs_create_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_process_start":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_process_create">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_process_create"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_thread_start":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a thread is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_thread_create">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_thread_create"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_task_exit":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible for closing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_process_exit">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_process_exit"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_task_released":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible for releasing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_task_releease">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_task_release"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_task_error":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of errors to create a new <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">task</a>. Netdata gives a summary for this chart in <a href="#ebpf_system_task_error">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_task_error">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_task_error"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_tcp_v4_connection":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to IPV4 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_services_outbound_conn_ipv4">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_outbound_conn_ipv4"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_tcp_v6_connection":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to IPV6 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_services_outbound_conn_ipv6">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_outbound_conn_ipv6"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_sock_bytes_sent":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Total bytes sent with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_services_bandwidth_sent">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_bandwidth_sent"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_sock_bytes_received":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Total bytes received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_services_bandwidth_received">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_bandwidth_received"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_tcp_sendmsg":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_bandwidth_tcp_sent">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_bandwidth_tcp_sent"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_tcp_cleanup_rbuf":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_bandwidth_tcp_received">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_bandwidth_tcp_received"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_tcp_retransmit":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times a <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">TCP</a> packet was retransmitted. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_retransmit">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_tcp_retransmit">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_tcp_retransmit"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_udp_sendmsg":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_services_udp_sendmsg">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_udp_sendmsg"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_udp_recvmsg":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_services_udp_recv">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_udp_recv"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_cachestat_hit_ratio":{groupBy:["label"],groupByLabel:["app_group"],aggregationMethod:"avg",info:'The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata gives a summary for this chart in <a href="#menu_mem_submenu_page_cache">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_ratio">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_cachestat_ratio"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_cachestat_dirty_pages":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_dirty">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_dirties">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_cachestat_dirties"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_cachestat_access":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_hits">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_hits">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_cachestat_hits"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_cachestat_misses":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_misses">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache misses per <a href="#ebpf_services_cachestat_misses">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_cachestat_misses"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_dc_hit":{aggregationMethod:"avg",groupBy:["label"],groupByLabel:["app_group"],info:'Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_hit_ratio">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_hit">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_dc_hit"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_dc_reference":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times a file is accessed inside <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_reference">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_dc_reference"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_dc_not_cache":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times a file is accessed in the file system, because it is not present inside the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_not_cache">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_dc_not_cache"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_dc_not_found":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of times a file was not found on the file system. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_not_found">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_dc_not_found"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_swap_readpage":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap">swap reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows swap metrics per <a href="#ebpf_services_swap_read">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_swap_read"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_call_swap_writepage":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap">swap writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows swap metrics per <a href="#ebpf_services_swap_write">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_swap_write"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_shmget_call":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <b>shmget</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_get">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_shm_get"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_shmat_call":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <b>shmat</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_at">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_shm_at"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_shmdt_call":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <b>shmdt</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_dt">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_shm_dt"></div>',en:{instance:{one:"application",other:"applications"}}},"app.ebpf_shmctl_call":{aggregationMethod:"sum",groupBy:["label"],groupByLabel:["app_group"],info:'Number of calls to <b>shmctl</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_ctl">cgroup (systemd Services)</a>.'+f+'<div id="ebpf_apps_shm_ctl"></div>',en:{instance:{one:"application",other:"applications"}}},"tc.qos":{info:"Network Interface traffic per QoS class",family:"traffic",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Traffic per QoS Class",layout:{left:0,top:0,width:6,height:5}}]},"tc.qos_packets":{family:"packets",info:"Network Interface packets per QoS class",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum"},"tc.qos_dropped":{family:"drops",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Packets dropped per QoS Class",layout:{left:6,top:0,width:6,height:5}}],info:"Network Interface packets dropped per QoS class",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum"},"tc.qos_tokens":{family:"tokens",info:"Class Tokens.",en:{instance:{one:"interface",other:"interfaces"}}},"tc.qos_ctokens":{family:"tokens",info:"Class cTokens.",en:{instance:{one:"interface",other:"interfaces"}}},"net.net":{family:"traffic",aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],valueRange:[0,null],layout:{left:0,top:0,width:3,height:5}},{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],valueRange:[0,null],layout:{left:3,top:0,width:3,height:5}}],info:a,en:{instance:{one:"interface",other:"interfaces"}}},"net.packets":{family:"packets",aggregationMethod:"sum",info:o,en:{instance:{one:"interface",other:"interfaces"}}},"net.errors":{family:"errors",aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{left:6,top:0,width:3,height:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"net.fifo":{family:"errors",info:i,en:{instance:{one:"interface",other:"interfaces"}}},"net.drops":{family:"drops",aggregationMethod:"sum",mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{left:9,top:0,width:3,height:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"net.compressed":{family:"compression",info:l,en:{instance:{one:"interface",other:"interfaces"}}},"net.events":{family:"errors",info:d,en:{instance:{one:"interface",other:"interfaces"}}},"net.duplex":{family:"duplex",info:h,en:{instance:{one:"interface",other:"interfaces"}}},"net.operstate":{family:"state",info:u,en:{instance:{one:"interface",other:"interfaces"}}},"net.carrier":{family:"state",info:p,en:{instance:{one:"interface",other:"interfaces"}}},"net.speed":{family:"speed",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"gauge",title:"Maximum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{left:0,top:5,width:3,height:5}}],info:m,en:{instance:{one:"interface",other:"interfaces"}}},"net.mtu":{family:"mtu",aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{left:3,top:5,width:3,height:5}}],info:g,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_net":{mainheads:[{groupBy:["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],layout:{left:4,top:10,width:2,height:5}},{groupBy:["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],layout:{left:6,top:10,width:2,height:5}}],info:a,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_packets":{info:o,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_errors":{heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{left:15,top:0,width:3,height:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_fifo":{info:i,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_drops":{heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{left:9,top:0,width:3,height:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_compressed":{info:l,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_events":{info:d,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_duplex":{info:h,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_operstate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Interface Operational States",layout:{left:10,top:10,width:2,height:5}}],info:u,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_carrier":{info:p,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_speed":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"gauge",title:"Maxinum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{left:0,top:5,width:3,height:5}}],info:m,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_mtu":{mainheads:[{groupBy:["selected"],aggregationMethod:"min",groupingMethod:"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{left:8,top:10,width:2,height:5}}],info:g,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_net":{heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],layout:{left:0,top:0,width:2,height:5}},{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],layout:{left:2,top:0,width:3,height:5}}],info:a,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_packets":{info:o,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_errors":{heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{left:6,top:0,width:2,height:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_fifo":{info:i,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_drops":{heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{left:8,top:0,width:2,height:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_compressed":{info:l,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_events":{info:d,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_operstate":{info:u,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_duplex":{info:h,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_carrier":{info:p,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_speed":{heads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"gauge",title:"Maxinum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{left:10,top:5,width:2,height:5}}],info:m,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_mtu":{heads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{left:4,top:0,width:2,height:5}}],info:g,en:{instance:{one:"interface",other:"interfaces"}}},"docker.containers_state":{en:{instance:{one:"system",other:"systems"}}},"docker.container_state":{en:{instance:{one:"container",other:"containers"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Docker Container States",desiredUnits:"containers",layout:{left:0,top:0,width:3,height:5}}]},"docker.container_health_status":{en:{instance:{one:"container",other:"containers"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Docker Container Health Status",desiredUnits:"containers",layout:{left:3,top:0,width:3,height:5}}]},"docker.healthy_containers":{en:{instance:{one:"system",other:"systems"}}},"docker.unhealthy_containers":{en:{instance:{one:"system",other:"systems"}}},"docker.images":{en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,colors:s.default[6],title:"Total Docker Images",desiredUnits:"Images",layout:{left:6,top:0,width:3,height:5}}]},"docker.images_size":{en:{instance:{one:"system",other:"systems"}},mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"Total Images Size",layout:{left:9,top:0,width:3,height:5}}]},"wireless.link_quality":{family:"quality",aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Wireless Link Quality"}],info:"Overall quality of the link. May be based on the level of contention or interference, the bit or frame error rate, how good the received signal is, some timing synchronisation, or other hardware metric.",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.signal_level":{family:"signal",aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Signal Level"}],info:'Received signal strength (<a href="https://en.wikipedia.org/wiki/Received_signal_strength_indication" target="_blank">RSSI</a>).',en:{instance:{one:"interface",other:"interfaces"}}},"wireless.noise_level":{family:"noise",aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Noise Level"}],info:"Background noise level (when no packet is transmitted).",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.discarded_packets":{family:"errors",mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Discarded Packets"}],info:"<p>The number of discarded packets.</p></p><b>NWID</b> - received packets with a different NWID or ESSID. Used to detect configuration problems or adjacent network existence (on the same frequency). <b>Crypt</b> - received packets that the hardware was unable to code/encode. This can be used to detect invalid encryption settings. <b>Frag</b> - received packets for which the hardware was not able to properly re-assemble the link layer fragments (most likely one was missing). <b>Retry</b> - packets that the hardware failed to deliver. Most MAC protocols will retry the packet a number of times before giving up. <b>Misc</b> - other packets lost in relation with specific wireless operations.</p>",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.missed_beacons":{family:"errors",info:'The number of periodic <a href="https://en.wikipedia.org/wiki/Beacon_frame" target="_blank">beacons</a> from the Cell or the Access Point have been missed. Beacons are sent at regular intervals to maintain the cell coordination, failure to receive them usually indicates that the card is out of range.',en:{instance:{one:"interface",other:"interfaces"}}},"ib.bytes":{info:"The amount of traffic transferred by the port."},"ib.packets":{info:"The number of packets transferred by the port."},"ib.errors":{info:"The number of errors encountered by the port."},"ib.hwerrors":{info:"The number of hardware errors encountered by the port."},"ib.hwpackets":{info:"The number of hardware packets transferred by the port."},"netfilter.sockets":{en:{instance:{one:"firewall",other:"firewalls"}},colors:s.default[7],heads:[]},"netfilter.new":{en:{instance:{one:"firewall",other:"firewalls"}},heads:[{groupBy:["selected"],chartLibrary:"gauge",title:"New Connections",selectedDimensions:["new"],colors:s.default[19]}]},"ipvs.sockets":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Created Connections",layout:{left:6,top:0,width:4,height:5},colors:s.default[12]}],info:"Total created connections for all services and their servers. To see the IPVS connection table, run <b>ipvsadm -Lnc</b>.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"ipvs.packets":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Received Packets",layout:{left:9,top:0,width:2,height:5},colors:s.default[2]},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Sent Packets",layout:{left:12,top:0,width:2,height:5},colors:s.default[1]}],info:"Total transferred packets for all services and their servers.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"ipvs.net":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Received Bandwidth",layout:{left:0,top:0,width:2,height:5},colors:s.default[2]},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Sent Bandwidth",layout:{left:3,top:0,width:2,height:5},colors:s.default[1]}],info:"Total network traffic for all services and their servers.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"disk.util":{family:"utilization",aggregationMethod:"avg",colors:s.default[5],mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Utilization",colors:s.default[0],valueRange:[0,100],layout:{left:0,top:5,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",title:"Top Disks by Utilization",layout:{left:3,top:5,width:3,height:5}}],info:"Disk Utilization measures the amount of time the disk was busy with something. This is not related to its performance. 100% means that the system always had an outstanding operation on the disk. Keep in mind that depending on the underlying technology of the disk, 100% here may or may not be an indication of congestion.",en:{instance:{one:"disk",other:"disks"}}},"disk.busy":{family:"utilization",aggregationMethod:"avg",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Utilization",colors:s.default[0],valueRange:[0,100],layout:{left:6,top:10,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",title:"Top Disks by Busy Time",layout:{left:9,top:10,width:3,height:5}}],colors:s.default[4],info:"Disk Busy Time measures the amount of time the disk was busy with something.",en:{instance:{one:"disk",other:"disks"}}},"disk.backlog":{family:"utilization",aggregationMethod:"avg",mainheads:[{groupBy:["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk Backlog",colors:s.default[12],layout:{left:6,top:5,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",title:"Top Disks by Backlog",layout:{left:9,top:5,width:3,height:5}}],colors:s.default[8],info:"Backlog is an indication of the duration of pending disk operations. On every I/O event the system is multiplying the time spent doing I/O since the last update of this field with the number of pending operations. While not accurate, this metric can provide an indication of the expected completion time of the operations in progress.",en:{instance:{one:"disk",other:"disks"}}},"disk.io":{family:"io",info:"The amount of data transferred to and from disk.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.io":{family:"io",info:"The amount of discarded data that are no longer in use by a mounted file system.",en:{instance:{one:"disk",other:"disks"}}},"disk.ops":{family:"iops",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Read IOPS",selectedDimensions:["reads"],colors:s.default[2],layout:{left:0,top:0,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",selectedDimensions:["reads"],title:"Top Disks by Read IOPS",layout:{left:3,top:0,width:3,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Write IOPS",selectedDimensions:["writes"],colors:s.default[1],layout:{left:6,top:0,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",selectedDimensions:["writes"],title:"Top Disks by Write IOPS",layout:{left:9,top:0,width:3,height:5}}],info:"Completed disk I/O operations. Keep in mind the number of operations requested might be higher, since the system is able to merge adjacent to each other (see merged operations chart).",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.ops":{family:"iops",info:"<p>The number (after merges) of completed discard/flush requests.</p><p><b>Discard</b> commands inform disks which blocks of data are no longer considered to be in use and therefore can be erased internally. They are useful for solid-state drivers (SSDs) and thinly-provisioned storage. Discarding/trimming enables the SSD to handle garbage collection more efficiently, which would otherwise slow future write operations to the involved blocks down.</p><p><b>Flush</b> operations transfer all modified in-core data (i.e., modified buffer cache pages) to the disk device so that all changed information can be retrieved even if the system crashes or is rebooted. Flush requests are executed by disks. Flush requests are not tracked for partitions. Before being merged, flush operations are counted as writes.</p>",en:{instance:{one:"disk",other:"disks"}}},"disk.qops":{family:"utilization",mainheads:[{groupBy:["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk Current I/O Operations",colors:s.default[12],layout:{left:0,top:10,width:3,height:5}},{groupBy:["instance"],chartLibrary:"bars",title:"Top Disks by Current I/O Operations",layout:{left:3,top:10,width:3,height:5}}],info:"I/O operations currently in progress. This metric is a snapshot - it is not an average over the last interval.",en:{instance:{one:"disk",other:"disks"}}},"disk.iotime":{family:"iotime",aggregationMethod:"avg",info:"The sum of the duration of all completed I/O operations. This number can exceed the interval if the disk is able to execute I/O operations in parallel.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.iotime":{family:"iotime",aggregationMethod:"avg",info:"The sum of the duration of all completed discard/flush operations. This number can exceed the interval if the disk is able to execute discard/flush operations in parallel.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk.mops":{family:"iops",info:"The number of merged disk operations. The system is able to merge adjacent I/O operations, for example two 4KB reads can become one 8KB read before given to disk.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.mops":{family:"iops",info:"The number of merged discard disk operations. Discard operations which are adjacent to each other may be merged for efficiency.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk.svctm":{family:"iotime",aggregationMethod:"avg",info:"The average service time for completed I/O operations. This metric is calculated using the total busy time of the disk and the number of completed operations. If the disk is able to execute multiple parallel operations the reporting average service time will be misleading.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["svctm"]},"disk.latency_io":{family:"latency",aggregationMethod:"avg",info:'Disk I/O <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#disk-latency" target="_blank">latency</a> is the time it takes for an I/O request to be completed. Disk chart has a relationship with <a href="#filesystem">Filesystem</a> charts. This chart is based on the <a href="https://github.com/cloudflare/ebpf_exporter/blob/master/examples/bio-tracepoints.yaml" target="_blank">bio_tracepoints</a> tool of the ebpf_exporter.'+f,en:{instance:{one:"disk",other:"disks"}}},"disk.avgsz":{family:"size",info:"The average I/O operation size.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.avgsz":{family:"size",info:"The average discard operation size.",en:{instance:{one:"disk",other:"disks"}}},"disk.await":{family:"iotime",aggregationMethod:"avg",info:"The average time for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.await":{family:"iowait",aggregationMethod:"avg",info:"The average time for discard/flush requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.",en:{instance:{one:"disk",other:"disks"}}},"disk.space":{family:"utilization",mainheads:[{chartLibrary:"d3pie",title:"Disk Space Usage",layout:{left:0,top:0,width:3,height:5}}],info:"Disk space utilization. reserved for root is automatically reserved by the system to prevent the root user from getting out of space.",en:{instance:{one:"mount",other:"mounts"}}},"disk.inodes":{family:"inodes",mainheads:[{chartLibrary:"d3pie",title:"Disk Files Usage",layout:{left:3,top:0,width:3,height:5}}],info:"Inodes (or index nodes) are filesystem objects (e.g. files and directories). On many types of file system implementations, the maximum number of inodes is fixed at filesystem creation, limiting the maximum number of files the filesystem can hold. It is possible for a device to run out of inodes. When this happens, new files cannot be created on the device, even though there may be free space available.",en:{instance:{one:"mount",other:"mounts"}}},"disk.bcache_hit_ratio":{family:"cache",aggregationMethod:"avg",info:"<p><b>Bcache (block cache)</b> is a cache in the block layer of Linux kernel, which is used for accessing secondary storage devices. It allows one or more fast storage devices, such as flash-based solid-state drives (SSDs), to act as a cache for one or more slower storage devices, such as hard disk drives (HDDs).</p><p>Percentage of data requests that were fulfilled right from the block cache. Hits and misses are counted per individual IO as bcache sees them. A partial hit is counted as a miss.</p>",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_rates":{family:"cache",aggregationMethod:"avg",info:"Throttling rates. To avoid congestions bcache tracks latency to the cache device, and gradually throttles traffic if the latency exceeds a threshold. If the writeback percentage is nonzero, bcache tries to keep around this percentage of the cache dirty by throttling background writeback and using a PD controller to smoothly adjust the rate.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_size":{family:"cache",info:"The amount of dirty data for this backing device in the cache.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_usage":{family:"cache",aggregationMethod:"avg",info:"The percentage of cache device which does not contain dirty data, and could potentially be used for writeback.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_cache_read_races":{family:"cache",info:"<b>Read races</b> happen when a bucket was reused and invalidated while data was being read from the cache. When this occurs the data is reread from the backing device. <b>IO errors</b> are decayed by the half life. If the decaying count reaches the limit, dirty data is written out and the cache is disabled.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache":{family:"cache",info:"Hits and misses are counted per individual IO as bcache sees them; a partial hit is counted as a miss. Collisions happen when data was going to be inserted into the cache from a cache miss, but raced with a write and data was already present. Cache miss reads are rounded up to the readahead size, but without overlapping existing cache entries.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_bypass":{family:"cache",info:"Hits and misses for IO that is intended to skip the cache.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_cache_alloc":{family:"cache",aggregationMethod:"avg",info:"<p>Working set size.</p><p><b>Unused</b> is the percentage of the cache that does not contain any data. <b>Dirty</b> is the data that is modified in the cache but not yet written to the permanent storage. <b>Clean</b> data matches the data stored on the permanent storage. <b>Metadata</b> is bcache's metadata overhead.</p>",en:{instance:{one:"disk",other:"disks"}}},"nfs.net":{info:"The number of received UDP and TCP packets.",mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total received packets"}],en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.rpc":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"RPC Statistics"}],info:"<p>Remote Procedure Call (RPC) statistics.</p></p><b>Calls</b> - all RPC calls. <b>Retransmits</b> - retransmitted calls. <b>AuthRefresh</b> - authentication refresh calls (validating credentials with the server).</p>",en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc2":{info:'NFSv2 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1094#section-2.2" target="_blank">RFC1094</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc3":{info:'NFSv3 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1813#section-3" target="_blank">RFC1813</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc4":{info:'NFSv4 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfsd.readcache":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"NFS Reply Cache Statistics"}],info:"<p>Reply cache statistics. The reply cache keeps track of responses to recently performed non-idempotent transactions, and in case of a replay, the cached response is sent instead of attempting to perform the operation again.</p><b>Hits</b> - client did not receive a reply and re-transmitted its request. This event is undesirable. <b>Misses</b> - an operation that requires caching (idempotent). <b>Nocache</b> - an operation that does not require caching (non-idempotent).",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.filehandles":{info:"<p>File handle statistics. File handles are small pieces of memory that keep track of what file is opened.</p><p><b>Stale</b> - happen when a file handle references a location that has been recycled. This also occurs when the server loses connection and applications are still using files that are no longer accessible.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.io":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"NFS IO Statistics"}],info:"The amount of data transferred to and from disk.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.threads":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"NFS Daemon Threads"}],info:"The number of threads used by the NFS daemon.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.readahead":{info:"<p>Read-ahead cache statistics. NFS read-ahead predictively requests blocks from a file in advance of I/O requests by the application. It is designed to improve client sequential read throughput.</p><p><b>10%</b>-<b>100%</b> - histogram of depth the block was found. This means how far the cached block is from the original block that was first requested. <b>Misses</b> - not found in the read-ahead cache.</p>",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.net":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Network Packets received"}],info:"The number of received UDP and TCP packets.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.rpc":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"RPC Statistics"}],info:"<p>Remote Procedure Call (RPC) statistics.</p></p><b>Calls</b> - all RPC calls. <b>BadAuth</b> - bad authentication. It does not count if you try to mount from a machine that it's not in your exports file. <b>BadFormat</b> - other errors.</p>",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc2":{info:'NFSv2 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1094#section-2.2" target="_blank">RFC1094</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc3":{info:'NFSv3 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1813#section-3" target="_blank">RFC1813</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc4":{info:'NFSv4 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc4ops":{info:'NFSv4 RPC operations. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"zfs.arc_size":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average ZFS ARC Size"}],info:"<p>The size of the ARC.</p><p><b>Arcsz</b> - actual size. <b>Target</b> - target size that the ARC is attempting to maintain (adaptive). <b>Min</b> - minimum size limit. When the ARC is asked to shrink, it will stop shrinking at this value. <b>Max</b> - maximum size limit.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.l2_size":{info:"<p>The size of the L2ARC.</p><p><b>Actual</b> - size of compressed data. <b>Size</b> - size of uncompressed data.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.reads":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Read Requests"}],info:"<p>The number of read requests.</p><p><b>ARC</b> - all prefetch and demand requests. <b>Demand</b> - triggered by an application request. <b>Prefetch</b> - triggered by the prefetch mechanism, not directly from an application request. <b>Metadata</b> - metadata read requests. <b>L2</b> - L2ARC read requests.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.bytes":{info:"The amount of data transferred to and from the L2ARC cache devices.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hits":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Hit Rate of ARC Read Requests"}],info:"<p>Hit rate of the ARC read requests.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.dhits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data and metadata demand read requests. Demand requests are triggered by an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.phits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data and metadata prefetch read requests. Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.mhits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC metadata read requests.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.l2hits":{aggregationMethod:"avg",info:"<p>Hit rate of the L2ARC lookups.</p></p><b>Hits</b> - a data block was in the L2ARC cache and returned. <b>Misses</b> - a data block was not in the L2ARC cache. It will be read from the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.demand_data_hits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data demand read requests. Demand requests are triggered by an application request.</p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.prefetch_data_hits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data prefetch read requests. Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.list_hits":{info:"MRU (most recently used) and MFU (most frequently used) cache list hits. MRU and MFU lists contain metadata for requested blocks which are cached. Ghost lists contain metadata of the evicted pages on disk.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.arc_size_breakdown":{aggregationMethod:"avg",info:"The size of MRU (most recently used) and MFU (most frequently used) cache.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.memory_ops":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Memory Operation Statistics"}],info:"<p>Memory operation statistics.</p><p><b>Direct</b> - synchronous memory reclaim. Data is evicted from the ARC and free slabs reaped. <b>Throttled</b> - number of times that ZFS had to limit the ARC growth. A constant increasing of the this value can indicate excessive pressure to evict data from the ARC. <b>Indirect</b> - asynchronous memory reclaim. It reaps free slabs from the ARC cache.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.important_ops":{info:"<p>Eviction and insertion operation statistics.</p><p><b>EvictSkip</b> - skipped data eviction operations. <b>Deleted</b> - old data is evicted (deleted) from the cache. <b>MutexMiss</b> - an attempt to get hash or data block mutex when it is locked during eviction. <b>HashCollisions</b> - occurs when two distinct data block numbers have the same hash value.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.actual_hits":{aggregationMethod:"avg",info:"<p>MRU and MFU cache hit rate.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hash_elements":{info:"<p>Data Virtual Address (DVA) hash table element statistics.</p><p><b>Current</b> - current number of elements. <b>Max</b> - maximum number of elements seen.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hash_chains":{info:"<p>Data Virtual Address (DVA) hash table chain statistics. A chain is formed when two or more distinct data block numbers have the same hash value.</p><p><b>Current</b> - current number of chains. <b>Max</b> - longest length seen for a chain. If the value is high, performance may degrade as the hash locks are held longer while the chains are walked.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfspool.state":{info:'ZFS pool state. The overall health of a pool, as reported by <b>zpool status</b>, is determined by the aggregate state of all devices within the pool. For states description, see <a href="https://openzfs.github.io/openzfs-docs/man/7/zpoolconcepts.7.html#Device_Failure_and_Recovery" target="_blank"> ZFS documentation</a>.',en:{instance:{one:"ZFS pool",other:"ZFS pools"}}},"mysql.net":{info:"The amount of data sent to mysql clients (<strong>out</strong>) and received from mysql clients (<strong>in</strong>).",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.queries":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"No. of Slow Queries",selectedDimensions:["slow_queries"],desiredUnits:"queries",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:'The number of statements executed by the server.<ul><li><strong>queries</strong> counts the statements executed within stored SQL programs.</li><li><strong>questions</strong> counts the statements sent to the mysql server by mysql clients.</li><li><strong>slow queries</strong> counts the number of statements that took more than <a href="http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_long_query_time" target="_blank">long_query_time</a> seconds to be executed. For more information about slow queries check the mysql <a href="http://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html" target="_blank">slow query log</a>.</li></ul>',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.handlers":{info:'Usage of the internal handlers of mysql. This chart provides very good insights of what the mysql server is actually doing. (if the chart is not showing all these dimensions it is because they are zero - set <strong>Which dimensions to show?</strong> to <strong>All</strong> from the dashboard settings, to render even the zero values)<ul><li><strong>commit</strong>, the number of internal <a href="http://dev.mysql.com/doc/refman/5.7/en/commit.html" target="_blank">COMMIT</a> statements.</li><li><strong>delete</strong>, the number of times that rows have been deleted from tables.</li><li><strong>prepare</strong>, a counter for the prepare phase of two-phase commit operations.</li><li><strong>read first</strong>, the number of times the first entry in an index was read. A high value suggests that the server is doing a lot of full index scans; e.g. <strong>SELECT col1 FROM foo</strong>, with col1 indexed.</li><li><strong>read key</strong>, the number of requests to read a row based on a key. If this value is high, it is a good indication that your tables are properly indexed for your queries.</li><li><strong>read next</strong>, the number of requests to read the next row in key order. This value is incremented if you are querying an index column with a range constraint or if you are doing an index scan.</li><li><strong>read prev</strong>, the number of requests to read the previous row in key order. This read method is mainly used to optimize <strong>ORDER BY ... DESC</strong>.</li><li><strong>read rnd</strong>, the number of requests to read a row based on a fixed position. A high value indicates you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan entire tables or you have joins that do not use keys properly.</li><li><strong>read rnd next</strong>, the number of requests to read the next row in the data file. This value is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.</li><li><strong>rollback</strong>, the number of requests for a storage engine to perform a rollback operation.</li><li><strong>savepoint</strong>, the number of requests for a storage engine to place a savepoint.</li><li><strong>savepoint rollback</strong>, the number of requests for a storage engine to roll back to a savepoint.</li><li><strong>update</strong>, the number of requests to update a row in a table.</li><li><strong>write</strong>, the number of requests to insert a row in a table.</li></ul>',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.table_locks":{info:"MySQL table locks counters: <ul><li><strong>immediate</strong>, the number of times that a request for a table lock could be granted immediately.</li><li><strong>waited</strong>, the number of times that a request for a table lock could not be granted immediately and a wait was needed. If this is high and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.</li></ul>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_deadlocks":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"Total No. of Deadlocks",desiredUnits:"deadlocks",colors:s.default[1],layout:{left:3,top:0,width:3,height:5}}],info:'A deadlock happens when two or more transactions mutually hold and request for locks, creating a cycle of dependencies. For more information about <a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlocks-handling.html" target="_blank">how to minimize and handle deadlocks</a>.',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Galera Cluster Status",desiredUnits:"%",colors:s.default[2],layout:{left:6,top:0,width:3,height:5}}],info:"<p>Status of this cluster component.</p><p><b>Primary</b> - primary group configuration, quorum present. <b>Non-Primary</b> - non-primary group configuration, quorum lost. <b>Disconnected</b> - not connected to group, retrying.</p>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_state":{info:"<p>Membership state of this cluster component.</p><p><b>Undefined</b> - undefined state. <b>Joining</b> - the node is attempting to join the cluster. <b>Donor</b> - the node has blocked itself while it sends a State Snapshot Transfer (SST) to bring a new node up to date with the cluster. <b>Joined</b> - the node has successfully joined the cluster. <b>Synced</b> - the node has established a connection with the cluster and synchronized its local databases with those of the cluster. <b>Error</b> - the node is not part of the cluster and does not replicate transactions. This state is provider-specific, check <i>wsrep_local_state_comment</i> variable for a description.</p>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_weight":{info:"The value is counted as a sum of <b>pc.weight</b> of the nodes in the current Primary Component.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_connected":{info:"<b>0</b> means that the node has not yet connected to any of the cluster components. This may be due to misconfiguration.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.open_transactions":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Open Transactions",desiredUnits:"transactions",colors:s.default[3],layout:{left:9,top:0,width:3,height:5}}],info:"The number of locally running transactions which have been registered inside the wsrep provider. This means transactions which have made operations which have caused write set population to happen. Transactions which are read only are not counted.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.table_open_cache_overflows":{info:"The number of overflows in the table open cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the table open cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.join_issues":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"MySQL Join Operation Issues",desiredUnits:"issues",layout:{left:0,top:5,width:3,height:5}}],info:"The number of issues with joins on the MySQL server. Monitoring this metric can help identify potential performance issues related to joins.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.sort_issues":{info:"The number of issues with sorts on the MySQL server. Monitoring this metric can help identify potential performance issues related to sorting.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.tmp":{info:"The usage of temporary files on the MySQL server. Monitoring this metric can help identify potential performance issues related to temporary files.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.threads_created":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"Number of MySQL threads",desiredUnits:"threads",colors:s.default[4],layout:{left:0,top:5,width:3,height:5}}],info:"The number of threads that have been created on the MySQL server. Monitoring this metric can help identify potential performance issues related to thread creation.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.thread_cache_misses":{info:"The number of thread cache misses on the MySQL server. Monitoring this metric can help identify potential performance issues related to the thread cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io":{info:"The I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io_ops":{info:"The number of I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io_pending_ops":{info:"The number of pending I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_log":{info:"The usage of the InnoDB log on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_cur_row_lock":{info:"The number of current row locks on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to row locking on the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_rows":{info:"The number of rows on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify the usage patterns of the InnoDB storage engine and potential performance issues.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_pages":{info:"The number of pages in the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_pages_flushed":{info:"The number of pages flushed from the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_bytes":{info:"The amount of memory used by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_read_ahead":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"InnoDB Buffer Pool Read Ahead",desiredUnits:"pages/s",colors:s.default[6],layout:{left:6,top:5,width:3,height:5}}],info:"The amount of read ahead performed by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to read ahead on the InnoDB buffer.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_read_ahead_rnd":{info:"The amount of random read ahead performed by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to random read ahead on the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_ops":{info:"The number of operations on the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_os_log":{info:"The usage of the InnoDB OS log on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB OS log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.files":{info:"The number of files opened by the MySQL server. Monitoring this metric can help identify potential performance issues related to file opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.files_rate":{info:"The rate of file opening by the MySQL server. Monitoring this metric can help identify potential performance issues related to file opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.opened_tables":{info:"The number of tables opened by the MySQL server. Monitoring this metric can help identify potential performance issues related to table opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.process_list_fetch_query_duration":{info:"The duration of queries in the process list on the MySQL server. Monitoring this metric can help identify potential performance issues related to queries in the process list.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.process_list_longest_query_duration":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"number",title:"Longest Query Duration",colors:s.default[7],layout:{left:9,top:5,width:3,height:5}}],info:"The duration of the longest query in the process list on the MySQL server. Monitoring this metric can help identify potential performance issues related to long running queries in the process list.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_ops":{info:"The number of operations on the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache":{info:"The usage of the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_freemem":{info:"The amount of free memory in the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache memory usage.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_memblocks":{info:"The number of memory blocks in the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache memory usage.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_bytes":{info:"The number of bytes in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_queue":{info:"The length of the Galera queue on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_flow_control":{info:"The status of the flow control in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_size":{info:"The size of the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_ready":{info:"The status of the Galera cluster on the MySQL server, indicating whether it is ready for write sets. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_open_transactions":{info:"The number of open transactions in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.key_blocks":{info:"The number of blocks in the key cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the key cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.binlog_cache":{info:"The usage of the binary log cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.binlog_stmt_cache":{info:"The usage of the binary log statement cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log statement cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.slave_behind":{info:"The lag of the slave in the replication on the MySQL server. Monitoring this metric can help identify potential performance issues related to the replication process.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_cpu":{aggregationMethod:"avg",info:"The amount of CPU time used by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to CPU usage by users.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_rows":{info:"The number of rows accessed by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user access to rows.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_commands":{info:"The number of commands executed by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user commands.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_denied_commands":{info:"The number of denied commands for each user on the MySQL server. Monitoring this metric can help identify potential security issues related to user commands.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_binlog_written":{info:"The amount of data written to the binary log by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_connections":{info:"The number of connections for each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_lost_connections":{info:"The number of lost connections for each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_denied_connections":{info:"The number of denied connections for each user on the MySQL server. Monitoring this metric can help identify potential security issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"ping.host_rtt":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Host Latency",layout:{left:6,top:0,width:3,height:5}}],info:"Round-trip time (RTT) is the time it takes for a data packet to reach its destination and return back to its original source.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_std_dev_rtt":{aggregationMethod:"avg",info:"Round-trip time (RTT) standard deviation. The average value of how far each RTT of a ping differs from the average RTT.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_packet_loss":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"gauge",title:"Maximum Host Packet Loss",desiredUnits:"percentage",colors:s.default[1],valueRange:[0,100],layout:{left:9,top:0,width:3,height:5}}],info:"Packet loss occurs when one or more transmitted data packets do not reach their destination. Usually caused by data transfer errors, network congestion or firewall blocking. ICMP echo packets are often treated as lower priority by routers and target hosts, so ping test packet loss may not always translate to application packet loss.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_packets":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Ping Packets Received",colors:s.default[2],valueRange:[0,null],layout:{left:0,top:0,width:3,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Ping Packets Sent",colors:s.default[1],valueRange:[0,null],layout:{left:3,top:0,width:3,height:5}}],info:"Number of ICMP messages sent and received. These counters should be equal if there is no packet loss.",en:{instance:{one:"ping host",other:"ping hosts"}}},"nvme.device_estimated_endurance_perc":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"gauge",title:"Lowest Endurance on device",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[7],layout:{left:0,top:0,width:3,height:5}}],info:"NVM subsystem lifetime used based on the actual usage and the manufacturer's prediction of NVM life. A value of 100 indicates that the estimated endurance of the device has been consumed, but may not indicate a device failure. The value can be greater than 100 if you use the storage beyond its planned lifetime.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_available_spare_perc":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Available Spare Capacity",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[7],layout:{left:3,top:0,width:3,height:5}}],info:"Remaining spare capacity that is available. SSDs provide a set of internal spare capacity, called spare blocks, that can be used to replace blocks that have reached their write operation limit. After all of the spare blocks have been used, the next block that reaches its limit causes the disk to fail.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_composite_temperature":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"number",title:"Maximum device Temperature",desiredUnits:"celcius",colors:s.default[7],layout:{left:6,top:0,width:3,height:5}}],info:"The current composite temperature of the controller and namespace(s) associated with that controller. The manner in which this value is computed is implementation specific and may not represent the actual temperature of any physical point in the NVM subsystem.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_io_transferred_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total IO Transfer per device",desiredUnits:"seconds",colors:s.default[7],layout:{left:9,top:0,width:3,height:5}}],info:"The total amount of data read and written by the host.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_power_cycles_count":{info:"Power cycles reflect the number of times this host has been rebooted or the device has been woken up after sleep. A high number of power cycles does not affect the device's life expectancy.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_power_on_time":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"number",title:"Maximum Power On Time",desiredUnits:"seconds",colors:s.default[7],layout:{left:0,top:5,width:3,height:5}}],info:"<a href='https://en.wikipedia.org/wiki/Power-on_hours' target='_blank'>Power-on time</a> is the length of time the device is supplied with power.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_unsafe_shutdowns_count":{info:"The number of times a power outage occurred without a shutdown notification being sent. Depending on the NVMe device you are using, an unsafe shutdown can corrupt user data.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_critical_warnings_state":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"number",title:"Maximum No. of Critical / Warnings",desiredUnits:"seconds",colors:s.default[7],layout:{left:3,top:5,width:3,height:5}}],info:"<p>Critical warnings for the status of the controller. Status active if set to 1.</p><p><b>AvailableSpare</b> - the available spare capacity is below the threshold. <b>TempThreshold</b> - the composite temperature is greater than or equal to an over temperature threshold or less than or equal to an under temperature threshold. <b>NvmSubsystemReliability</b> - the NVM subsystem reliability is degraded due to excessive media or internal errors. <b>ReadOnly</b> - media is placed in read-only mode. <b>VolatileMemBackupFailed</b> - the volatile memory backup device has failed. <b>PersistentMemoryReadOnly</b> - the Persistent Memory Region has become read-only or unreliable.</p>",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_media_errors_rate":{info:"The number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this counter.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_error_log_entries_rate":{info:"The number of entries in the Error Information Log. By itself, an increase in the number of records is not an indicator of any failure condition.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_warning_composite_temperature_time":{info:"The time the device has been operating above the Warning Composite Temperature Threshold (WCTEMP) and below Critical Composite Temperature Threshold (CCTEMP).",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_critical_composite_temperature_time":{info:"The time the device has been operating above the Critical Composite Temperature Threshold (CCTEMP).",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp1_transitions_rate":{info:"The number of times the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>minimizing performance impact</b>, to attempt to lower the Composite Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp2_transitions_rate":{info:"The number of times the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>regardless of the impact on performance (e.g., heavy throttling)</b>, to attempt to lower the Combined Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp1_time":{info:"The amount of time the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>minimizing performance impact</b>, to attempt to lower the Composite Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp2_time":{info:"The amount of time the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>regardless of the impact on performance (e.g., heavy throttling)</b>, to attempt to lower the Combined Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"postfix.qemails":{info:"The <b>qemails</b> metric represents the number of emails currently in the queue in Postfix. This metric should be monitored to ensure that the queue is not growing too large, which can lead to delays in email delivery.",en:{instance:{one:"mail server",other:"mail servers"}}},"postfix.qsize":{info:"The <b>qsize</b> metric represents the total size of emails currently in the queue in Postfix. This metric should be monitored to ensure that the queue is not growing too large, which can lead to delays in email delivery.",en:{instance:{one:"mail server",other:"mail servers"}}},"postgres.connections_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",valueRange:[0,100],chartLibrary:"gauge",title:"Average Connections Utilization",desiredUnits:"percentage",colors:s.default[14],layout:{left:0,top:0,width:2.5,height:5}}],info:"<p>A connection is an established line of communication between a client and the PostgreSQL server. Each connection adds to the load on the PostgreSQL server. To guard against running out of memory or overloading the database the <i>max_connections</i> parameter (default = 100) defines the maximum number of concurrent connections to the database server. A separate parameter, <i>superuser_reserved_connections</i> (default = 3), defines the quota for superuser connections (so that superusers can connect even if all other connection slots are blocked).</p><p><br></p><p><b>Total connection utilization</b> across all databases. Utilization is measured as a percentage of (<i>max_connections</i> - <i>superuser_reserved_connections</i>). If the utilization is 100% no more new connections will be accepted (superuser connections will still be accepted if superuser quota is available).</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.connections_usage":{info:"<p><b>Connections usage</b> across all databases. The maximum number of concurrent connections to the database server is (<i>max_connections</i> - <i>superuser_reserved_connections</i>). As a general rule, if you need more than 200 connections it is advisable to use connection pooling.</p><p><b>Available</b> - new connections allowed. <b>Used</b> - connections currently in use.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.connections_state_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connection State Count",layout:{left:9,top:0,width:2.5,height:5}}],en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.transactions_duration":{aggregationMethod:"avg",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.queries_duration":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Queries by Duration",layout:{left:0,top:10,width:4.5,height:5}}],info:"Active queries duration histogram. The bins are specified as consecutive, non-overlapping intervals. The value is the number of observed active queries that fall into each interval.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.checkpoints_rate":{info:'<p>Number of checkpoints that have been performed. Checkpoints are periodic maintenance operations the database performs to make sure that everything it\'s been caching in memory has been synchronized with the disk. Ideally checkpoints should be time-driven (scheduled) as opposed to load-driven (requested).</p><p><b>Scheduled</b> - checkpoints triggered as per schedule when time elapsed from the previous checkpoint is greater than <a href="https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-CHECKPOINT-TIMEOUT" target="_blank"><i>checkpoint_timeout</i></a>. <b>Requested</b> - checkpoints triggered due to WAL updates reaching the <a href="https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-MAX-WAL-SIZE" target="_blank"><i>max_wal_size</i></a> before the <i>checkpoint_timeout</i> is reached.</p>',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.checkpoints_time":{info:"<p>Checkpoint timing information. An important indicator of how well checkpoint I/O is performing is the amount of time taken to sync files to disk.</p><p><b>Write</b> - amount of time spent writing files to disk during checkpoint processing. <b>Sync</b> - amount of time spent synchronizing files to disk during checkpoint processing.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_allocated_rate":{info:"Allocated and re-allocated buffers. If a backend process requests data it is either found in a block in shared buffer cache or the block has to be allocated (read from disk). The latter is counted as <b>Allocated</b>.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_io_rate":{info:"<p>Amount of data flushed from memory to disk.</p><p><b>Checkpoint</b> - buffers written during checkpoints. <b>Backend</b> - buffers written directly by a backend. It may happen that a dirty page is requested by a backend process. In this case the page is synced to disk before the page is returned to the client. <b>BgWriter</b> - buffers written by the background writer. PostgreSQL may clear pages with a low usage count in advance. The process scans for dirty pages with a low usage count so that they could be cleared if necessary. Buffers written by this process increment the counter.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.bgwriter_halts_rate":{info:'Number of times the background writer stopped a cleaning scan because it had written too many buffers (exceeding the value of <a href="https://www.postgresql.org/docs/current/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-BACKGROUND-WRITER" target="_blank"><i>bgwriter_lru_maxpages</i></a>).',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_backend_fsync_rate":{info:"Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write). Any values above zero can indicate problems with storage when fsync queue is completely filled.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_io_rate":{info:"Write-Ahead Logging (WAL) ensures data integrity by ensuring that changes to data files (where tables and indexes reside) are written only after log records describing the changes have been flushed to permanent storage.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_files_count":{info:"<p>Number of WAL logs stored in the directory <i>pg_wal</i> under the data directory.</p><p><b>Written</b> - generated log segments files. <b>Recycled</b> - old log segment files that are no longer needed. Renamed to become future segments in the numbered sequence to avoid the need to create new ones.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_archiving_files_count":{info:'<p>WAL archiving.</p><p><b>Ready</b> - WAL files waiting to be archived. A non-zero value can indicate <i>archive_command</i> is in error, see <a href="https://www.postgresql.org/docs/current/static/continuous-archiving.html" target="_blank">Continuous Archiving and Point-in-Time Recovery</a>. <b>Done</b> - WAL files successfully archived.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.autovacuum_workers_count":{info:'PostgreSQL databases require periodic maintenance known as vacuuming. For many installations, it is sufficient to let vacuuming be performed by the autovacuum daemon. For more information see <a href="https://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM" target="_blank">The Autovacuum Daemon</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_towards_autovacuum_perc":{aggregationMethod:"avg",info:'Percentage towards emergency autovacuum for one or more tables. A forced autovacuum will run once this value reaches 100%. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_perc":{aggregationMethod:"avg",info:'Percentage towards transaction wraparound. A transaction wraparound may occur when this value reaches 100%. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_oldest_txid_num":{info:'The oldest current transaction ID (XID). If for some reason autovacuum fails to clear old XIDs from a table, the system will begin to emit warning messages when the database\'s oldest XIDs reach eleven million transactions from the wraparound point. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"dHH:MM:ss",layout:{left:12,top:0,width:2.5,height:1.66}}],info:"The time elapsed since the Postgres process was started.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_app_wal_lag_size":{info:"<p>Replication WAL lag size.</p><p><b>SentLag</b> - sent over the network. <b>WriteLag</b> - written to disk. <b>FlushLag</b> - flushed to disk. <b>ReplayLag</b> - replayed into the database.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_app_wal_lag_time":{info:"<p>Replication WAL lag time.</p><p><b>WriteLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written it, but not yet flushed it or applied it. <b>FlushLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written and flushed it, but not yet applied it. <b>ReplayLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written, flushed and applied it.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_slot_files_count":{info:'<p>Replication slot files. For more information see <a href="https://www.postgresql.org/docs/current/static/warm-standby.html#STREAMING-REPLICATION-SLOTS" target="_blank">Replication Slots</a>.</p><p><b>WalKeep</b> - WAL files retained by the replication slot. <b>PgReplslotFiles</b> - files present in pg_replslot.</p>',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.db_transactions_ratio":{aggregationMethod:"avg",info:"Percentage of committed/rollback transactions.",en:{instance:{one:"database",other:"databases"}}},"postgres.db_transactions_rate":{info:"<p>Number of transactions that have been performed</p><p><b>Committed</b> - transactions that have been committed. All changes made by the committed transaction become visible to others and are guaranteed to be durable if a crash occurs. <b>Rollback</b> - transactions that have been rolled back. Rollback aborts the current transaction and causes all the updates made by the transaction to be discarded. Single queries that have failed outside the transactions are also accounted as rollbacks.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_connections_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connections Utilization per Database",layout:{left:0,top:5,width:2.5,height:5}}],info:"Connection utilization per database. Utilization is measured as a percentage of <i>CONNECTION LIMIT</i> per database (if set) or <i>max_connections</i> (if <i>CONNECTION LIMIT</i> is not set).",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_connections_count":{info:"Number of current connections per database.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_cache_io_ratio":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Cache Miss Ratio",colors:s.default[1],layout:{left:6,top:0,width:2.5,height:5}},{groupBy:["label"],groupByLabel:["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Cache Miss Ratio per DB",layout:{left:6,top:5,width:2.5,height:5}}],info:'PostgreSQL uses a <b>shared buffer cache</b> to store frequently accessed data in memory, and avoid slower disk reads. If you are seeing performance issues, consider increasing the <a href="https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-SHARED-BUFFERS" target="_blank"><i>shared_buffers</i></a> size or tuning <a href="https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE" target="_blank"><i>effective_cache_size</i></a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_io_rate":{info:"<p>Amount of data read from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_fetched_rows_ratio":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,desiredUnits:"percentage",title:"Avg Fetched Row Ratio",colors:s.default[10],layout:{left:3,top:0,width:2,height:5}},{groupBy:["label"],groupByLabel:["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Fetched Row Ratio per DB",layout:{left:3,top:5,width:2,height:5}}],info:"The percentage of rows that contain data needed to execute the query, out of the total number of rows scanned. A high value indicates that the database is executing queries efficiently, while a low value indicates that the database is performing extra work by scanning a large number of rows that aren't required to process the query. Low values may be caused by missing indexes or inefficient queries.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_read_rows_rate":{info:"<p>Read queries throughput.</p><p><b>Returned</b> - Total number of rows scanned by queries. This value indicates rows returned by the storage layer to be scanned, not rows returned to the client. <b>Fetched</b> - Subset of scanned rows (<b>Returned</b>) that contained data needed to execute the query.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_write_rows_rate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Rows Written per Database",layout:{left:9,top:5,width:2.5,height:5}}],info:"<p>Write queries throughput.</p><p><b>Inserted</b> - number of rows inserted by queries. <b>Deleted</b> - number of rows deleted by queries. <b>Updated</b> - number of rows updated by queries.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_conflicts_rate":{info:'Number of queries canceled due to conflict with recovery on standby servers. To minimize query cancels caused by cleanup records consider configuring <a href="https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-HOT-STANDBY-FEEDBACK" target="_blank"><i>hot_standby_feedback</i></a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_conflicts_reason_rate":{info:"<p>Statistics about queries canceled due to various types of conflicts on standby servers.</p><p><b>Tablespace</b> - queries that have been canceled due to dropped tablespaces. <b>Lock</b> - queries that have been canceled due to lock timeouts. <b>Snapshot</b> - queries that have been canceled due to old snapshots. <b>Bufferpin</b> - queries that have been canceled due to pinned buffers. <b>Deadlock</b> - queries that have been canceled due to deadlocks.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_deadlocks_rate":{info:"Number of detected deadlocks. When a transaction cannot acquire the requested lock within a certain amount of time (configured by <b>deadlock_timeout</b>), it begins deadlock detection.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_locks_held_count":{info:'Number of held locks. Some of these lock modes are acquired by PostgreSQL automatically before statement execution, while others are provided to be used by applications. All lock modes acquired in a transaction are held for the duration of the transaction. For lock modes details, see <a href="https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES" target="_blank">table-level locks</a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_locks_awaited_count":{info:'Number of awaited locks. It indicates that some transaction is currently waiting to acquire a lock, which implies that some other transaction is holding a conflicting lock mode on the same lockable object. For lock modes details, see <a href="https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES" target="_blank">table-level locks</a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_temp_files_created_rate":{info:"Number of temporary files created by queries. Complex queries may require more memory than is available (specified by <b>work_mem</b>). When this happens, Postgres reverts to using temporary files - they are actually stored on disk, but only exist for the duration of the request. After the request returns, the temporary files are deleted.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_temp_files_io_rate":{info:"Amount of data written temporarily to disk to execute queries.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_size":{mainheads:[{groupBy:["label"],groupByLabel:["database"],chartLibrary:"bars",title:"Database Sizes",dimensionsSort:"valueDesc",layout:{left:12,top:5,width:2.5,height:5}},{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Database Size",layout:{left:12,top:3.33,width:2.5,height:1.66}}],info:"Actual on-disk usage of the database's data directory and any associated tablespaces.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.databases_count":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"Total Database count",layout:{left:12,top:1.66,width:2.5,height:1.66}}],info:"Count of databases per PostgreSQL server.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"pgbouncer.client_connections_utilization":{aggregationMethod:"avg",info:"Client connections in use as percentage of <i>max_client_conn</i> (default 100)."},"pgbouncer.db_client_connections":{info:"<p>Client connections in different states.</p><p><b>Active</b> - linked to server connection and can process queries. <b>Waiting</b> - have sent queries but have not yet got a server connection. <b>CancelReq</b> - have not forwarded query cancellations to the server yet.</p>"},"pgbouncer.db_server_connections":{info:"<p>Server connections in different states.</p><p><b>Active</b> - linked to a client. <b>Idle</b> - unused and immediately usable for client queries. <b>Used</b> - have been idle for more than <i>server_check_delay</i>, so they need <i>server_check_query</i> to run on them before they can be used again. <b>Tested</b> - currently running either <i>server_reset_query</i> or <i>server_check_query</i>. <b>Login</b> - currently in the process of logging in.</p>"},"pgbouncer.db_server_connections_utilization":{aggregationMethod:"avg",info:"Server connections in use as percentage of <i>max_db_connections</i> (default 0 - unlimited). This considers the PgBouncer database that the client has connected to, not the PostgreSQL database of the outgoing connection."},"pgbouncer.db_clients_wait_time":{info:"Time spent by clients waiting for a server connection. This shows if the decrease in database performance from the client's point of view was due to exhaustion of the corresponding PgBouncer pool."},"pgbouncer.db_client_max_wait_time":{info:"Waiting time for the first (oldest) client in the queue. If this starts increasing, then the current pool of servers does not handle requests quickly enough."},"pgbouncer.db_transactions":{info:"SQL transactions pooled (proxied) by pgbouncer."},"pgbouncer.db_transactions_time":{info:"Time spent by pgbouncer when connected to PostgreSQL in a transaction, either idle in transaction or executing queries."},"pgbouncer.db_transaction_avg_time":{info:"Average transaction duration."},"pgbouncer.db_queries":{info:"SQL queries pooled (proxied) by pgbouncer."},"pgbouncer.db_queries_time":{info:"Time spent by pgbouncer when actively connected to PostgreSQL, executing queries."},"pgbouncer.db_query_avg_time":{info:"Average query duration."},"pgbouncer.db_network_io":{info:"<p>Network traffic received and sent by pgbouncer.</p><p><b>Received</b> - received from clients. <b>Sent</b> - sent to servers.</p>"},"postgres.table_rows_dead_ratio":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Dead Row Ratio",colors:s.default[10],layout:{left:12,top:10,width:2.5,height:5}}],info:"Percentage of dead rows. An increase in dead rows indicates a problem with VACUUM processes, which can slow down your queries.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_rows_count":{info:"<p>Number of rows. When you do an UPDATE or DELETE, the row is not actually physically deleted. For a DELETE, the database simply marks the row as unavailable for future transactions, and for UPDATE, under the hood it is a combined INSERT then DELETE, where the previous version of the row is marked unavailable.</p><p><b>Live</b> - rows that currently in use and can be queried. <b>Dead</b> - deleted rows that will later be reused for new rows from INSERT or UPDATE.</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_rate":{info:"Write queries throughput. If you see a large number of updated and deleted rows, keep an eye on the number of dead rows, as a high percentage of dead rows can slow down your queries.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_hot_ratio":{aggregationMethod:"avg",info:"Percentage of HOT (Heap Only Tuple) updated rows. HOT updates are much more efficient than ordinary updates: less write operations, less WAL writes, vacuum operation has less work to do, increased read efficiency (help to limit table and index bloat).",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_hot_rate":{info:"Number of HOT (Heap Only Tuple) updated rows.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_cache_io_ratio":{aggregationMethod:"avg",info:"Table cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_io_rate":{info:"<p>Amount of data read from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_index_cache_io_ratio":{aggregationMethod:"avg",info:"Table indexes cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_index_io_rate":{info:"<p>Amount of data read from all indexes from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_cache_io_ratio":{aggregationMethod:"avg",info:"Table TOAST cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_io_rate":{info:"<p>Amount of data read from TOAST table from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_index_cache_io_ratio":{aggregationMethod:"avg",info:"Table TOAST indexes cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_index_io_rate":{info:"<p>Amount of data read from this table's TOAST table indexes from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_scans_rate":{info:"<p>Number of scans initiated on this table. If you see that your database regularly performs more sequential scans over time, you can improve its performance by creating an index on data that is frequently accessed.</p><p><b>Index</b> - relying on an index to point to the location of specific rows. <b>Sequential</b> - have to scan through each row of a table sequentially. Typically, take longer than index scans.</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_scans_rows_rate":{info:"Number of live rows fetched by scans.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_autovacuum_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was vacuumed by the autovacuum daemon.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_vacuum_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was manually vacuumed (not counting VACUUM FULL).",en:{instance:{one:"table",other:"tables"}}},"postgres.table_autoanalyze_since_time":{aggregationMethod:"min",info:"Time elapsed this table was analyzed by the autovacuum daemon.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_analyze_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was manually analyzed.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_null_columns":{info:"Number of table columns that contain only NULLs.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_total_size":{info:"Actual on-disk size of the table.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_bloat_size_perc":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Table Bloat %",colors:s.default[1],layout:{left:9,top:10,width:2.5,height:5}}],info:"Estimated percentage of bloat in the table. It is normal for tables that are updated frequently to have a small to moderate amount of bloat.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_bloat_size":{info:'Disk space that was used by the table and is available for reuse by the database but has not been reclaimed. Bloated tables require more disk storage and additional I/O that can slow down query execution. Running <a href="https://www.postgresql.org/docs/current/sql-vacuum.html" target="_blank">VACUUM</a> regularly on a table that is updated frequently results in fast reuse of space occupied by expired rows, which prevents the table from growing too large.',en:{instance:{one:"table",other:"tables"}}},"postgres.index_size":{info:"Actual on-disk size of the index.",en:{instance:{one:"index",other:"indexes"}}},"postgres.index_bloat_size_perc":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Index Bloat %",colors:s.default[1],layout:{left:9,top:10,width:2.5,height:5}}],info:"Estimated percentage of bloat in the index.",en:{instance:{one:"index",other:"indexes"}}},"postgres.index_bloat_size":{info:'Disk space that was used by the index and is available for reuse by the database but has not been reclaimed. Bloat slows down your database and eats up more storage than needed. To recover the space from indexes, recreate them using the <a href="https://www.postgresql.org/docs/current/sql-reindex.html" target="_blank">REINDEX</a> command.',en:{instance:{one:"index",other:"indexes"}}},"postgres.index_usage_status":{info:"An index is considered unused if no scans have been initiated on that index.",en:{instance:{one:"index",other:"indexes"}}},"puppet.jvm_heap":{info:"The <b>jvm_heap</b> metric represents the size of the Java Virtual Machine's heap memory in Puppet. This metric should be monitored to ensure that sufficient memory is allocated for Puppet to operate correctly."},"puppet.jvm_nonheap":{info:"The <b>jvm_nonheap</b> metric represents the size of the Java Virtual Machine's non-heap memory in Puppet. This metric should be monitored to ensure that sufficient memory is allocated for Puppet to operate correctly."},"puppet.cpu":{aggregationMethod:"avg",info:"The <b>cpu</b> metric represents the amount of CPU resources being used by Puppet. This metric should be monitored to ensure that the CPU is not being overutilized and to detect any potential performance issues."},"puppet.fd_open":{info:"The <b>fd_open</b> metric represents the number of open file descriptors in Puppet. This metric should be monitored to ensure that the system is not running out of available file descriptors, which can lead to performance issues."},"redis.ping_latency":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Ping Latency",layout:{left:3,top:0,width:2,height:5}}],info:"The average time it takes from a client request to the server response. High latency could be caused slow commands, over utilized network links or a high backlog in the command queue.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.commands":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Commands",desiredUnits:"Commands",layout:{left:0,top:0,width:2,height:5}}],info:"The Total number of commands processed per second. A significant or unexpected shift in this metric could indicate a problem worth investigating.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.keyspace_lookup_hit_rate":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",valueRange:[0,100],chartLibrary:"gauge",title:"Average Lookup Hit Rate",desiredUnits:"percentage",colors:s.default[0],layout:{left:6,top:0,width:2,height:5}}],info:"Lookup Hitrate = (Keyspace hits / (Keyspace hits + Keyspace misses)) <br> Lower hitrates lead to higher latency, in normal conditions this value should be greater than 80%.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.mem_fragmentation_ratio":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",valueRange:[0,100],chartLibrary:"gauge",title:"Max Memory Fragmentation Ratio",desiredUnits:"percentage",colors:s.default[1],layout:{left:9,top:0,width:2,height:5}}],info:"The ratio of memory allocated by the operating system to memory requested by Redis (used_memory_rss/used_memory).",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Uptime",layout:{left:12,top:0,width:2,height:2.5}}],en:{instance:{one:"redis server",other:"redis servers"}}},"redis.clients":{mainheads:[{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Connected Clients",layout:{left:12,top:2.5,width:2,height:2.5}}],info:"The current state of clients connecting to or attempting to connect to Redis.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.commands_calls":{info:"Total commands processed per second, by command type. Use this chart to identify most common commands being processed.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.master_last_io_since_time":{aggregationMethod:"min",info:"Time in seconds since the last interaction between replica and primary. A long time interval without communication could indicate a problem on the primary Redis server or on the replica or in the link between them.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.master_link_down_since_time":{aggregationMethod:"min",info:"Time in seconds since the link between replica and primary went down. This metric is only available when the connection between a primary and its replica has been lost. Any non zero value for this metric is cause for alert.",en:{instance:{one:"redis server",other:"redis servers"}}},"cassandra.client_requests_rate":{info:"Client requests received per second. Consider whether your workload is read-heavy or write-heavy while choosing a compaction strategy."},"cassandra.client_request_read_latency_histogram":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Read latency (99th percentile)",selectedDimensions:["p99"],colors:s.default[12],layout:{left:7.5,top:0,width:2.25,height:5}}],info:"Histogram for read latency, with bins for 50th, 75th, 90th, 95th, 98th, 99th and 99.9th percentile latency values.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_request_write_latency_histogram":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Write latency (99th percentile)",selectedDimensions:["p99"],layout:{left:9.75,top:0,width:2.25,height:5}}],info:"Histogram for write latency, with bins for 50th, 75th, 90th, 95th, 98th, 99th and 99.9th percentile latency values.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_latency":{aggregationMethod:"avg",info:"Total response latency summed over all requests received per second. Latency could be impacted by disk access, network latency or replication configuration.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_hit_ratio":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Key Cache Hit Ratio",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[2],layout:{left:4.5,top:0,width:3,height:5}}],info:"Key cache hit ratio indicates the efficiency of the key cache. If ratio is consistently < 80% consider increasing cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_hit_rate":{aggregationMethod:"avg",info:"Key cache hit rate measures the cache hits and misses per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.storage_live_disk_space_used":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"Total Live Disk Space Used",layout:{left:2.25,top:0,width:2.25,height:5}}],info:"Amount of live disk space used. This does not include obsolete data waiting to be garbage collected.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_completed_tasks_rate":{info:"Compaction tasks completed per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_pending_tasks_count":{info:"Total compaction tasks in queue.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_active_tasks_count":{info:"Total tasks currently being processed.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_pending_tasks_count":{info:"Total tasks in queue awaiting a thread for processing.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_blocked_tasks_rate":{info:"Tasks that cannot be queued for processing yet.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_blocked_tasks_count":{info:"Total tasks that cannot yet be queued for processing.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_gc_rate":{info:"Rate of garbage collections.</p><p><b>ParNew</b> - young-generation. <b>cms (ConcurrentMarkSweep)</b> - old-generation.</p>",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_gc_time":{aggregationMethod:"min",info:"Elapsed time of garbage collection.</p><p><b>ParNew</b> - young-generation. <b>cms (ConcurrentMarkSweep)</b> - old-generation.</p>",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_timeouts_rate":{info:"Requests which were not acknowledged within the configurable timeout window.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_unavailables_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Unavailable exceptions",desiredUnits:"requests/s",colors:s.default[1],layout:{left:0,top:0,width:2.25,height:5}}],info:"Requests for which the required number of nodes was unavailable.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_hit_ratio":{aggregationMethod:"avg",info:"Row cache hit ratio indicates the efficiency of the row cache. If ratio is consistently < 80% consider increasing cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_hit_rate":{aggregationMethod:"avg",info:"Row cache hit rate measures the cache hits and misses per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_utilization":{aggregationMethod:"avg",info:"The percentage of row cache memory currently in use. High utilization may indicate the need to increase cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_size":{info:"The size of the row cache in bytes. Adjusting this value can impact system performance.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_utilization":{aggregationMethod:"avg",info:"The percentage of key cache memory currently in use. High utilization may indicate the need to increase cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_size":{info:"The size of the key cache in bytes. Adjusting this value can impact system performance.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_compacted_rate":{info:"The rate at which compactions are occurring in the system. If this rate is consistently high, it may indicate a need for more resources or a different compaction strategy.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_memory_used":{info:"The amount of memory used by the Cassandra JVM. High memory usage may indicate the need for additional resources or optimization.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.dropped_messages_rate":{info:"The rate at which messages are being dropped by the system. High rates may indicate a need for additional resources or a problem with the system.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_failures_rate":{info:"The rate at which client requests are failing. High rates may indicate a problem with the system or the need for additional resources.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"coredns.dns_request_count_total":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total DNS Requests",colors:s.default[12],layout:{left:0,top:0,width:2.5,height:5}}],info:"The total number of DNS requests handled by CoreDNS. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_responses_count_total":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total DNS Responses",colors:s.default[2],layout:{left:6,top:0,width:2.5,height:5}}],info:"The total number of DNS responses sent by CoreDNS. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_no_matching_zone_dropped_total":{info:"The total number of DNS requests dropped by CoreDNS because no matching zone was found. This can be useful for identifying potential configuration issues.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_panic_count_total":{info:"The total number of panics that occurred in CoreDNS. This can be useful for identifying potential issues or bugs in the system.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"activemq.messages":{info:"The total number of messages in the broker. This can be useful for understanding overall system throughput.",en:{instance:{one:"broker",other:"brokers"}}},"activemq.unprocessed_messages":{info:"The total number of messages that have not been processed. If this number consistently increases, it may indicate a problem with consumer performance or a bottleneck in the system.",en:{instance:{one:"broker",other:"brokers"}}},"activemq.consumers":{info:"The number of active consumers connected to the broker. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"broker",other:"brokers"}}},"apache.connections":{colors:s.default[4],mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",valueRange:[0,null],title:"Total Apache Connections",colors:s.default[4]}],info:"The total number of connections to the Apache web server. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.requests":{colors:s.default[0],mainheads:[{showPostAggregations:!0,postGroupBy:["selected"],chartLibrary:"easypiechart",valueRange:[0,null],title:"Total Apache Requests",colors:s.default[0]}],info:"The number of requests processed by the Apache web server. This can be useful for understanding overall system throughput and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.net":{colors:s.default[3],mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Apache Bandwidth",valueRange:[0,null],colors:s.default[3]}],info:"The number of bytes transferred over the network by the Apache web server. This can be useful for understanding overall network usage and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.workers":{mainheads:[{groupBy:["percentage-of-instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"max",selectedDimensions:["busy"],chartLibrary:"gauge",title:"Maximum Apache Workers Utilization",valueRange:[0,100],colors:s.default[5]}],info:"The number of worker processes used by the Apache web server. This can be useful for understanding overall system performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.bytesperreq":{colors:s.default[3],info:"The number of bytes transferred per second over the network by the Apache web server. This can be useful for understanding overall network performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.reqpersec":{colors:s.default[4],info:"The number of requests processed per second by the Apache web server. This can be useful for understanding overall system performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.bytespersec":{colors:s.default[6],info:"The number of bytes transferred per request by the Apache web server. This can be useful for understanding the efficiency of the server and identifying potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.uptime":{aggregationMethod:"min",info:"The amount of time that the Apache web server has been running. This can be useful for understanding the overall health and stability of the server.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.connections":{colors:s.default[4],mainheads:[{groupBy:["selected"],chartLibrary:"gauge",desiredUnits:"percentage",title:"Total Lighttpd Connections",colors:s.default[4]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.requests":{colors:s.default[0],mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Lighttpd Requests",colors:s.default[0]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.net":{colors:s.default[3],mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Lighttpd Bandwidth",colors:s.default[3]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.workers":{mainheads:[{groupBy:["percentage-of-instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"max",selectedDimensions:["busy"],chartLibrary:"gauge",title:"Maximum Lighttpd Workers Utilization",colors:s.default[5],desiredUnits:"percentage"}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.bytesperreq":{colors:s.default[3],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.reqpersec":{colors:s.default[4],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.bytespersec":{colors:s.default[6],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.uptime":{aggregationMethod:"min",info:"The uptime of the lighttpd server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.requests":{info:"The total number of requests received by the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.status_codes":{info:"The distribution of HTTP response codes returned by the lighttpd server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.traffic":{info:"The amount of traffic handled by the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.connections":{info:"The number of active connections to the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.connection_states":{info:"The distribution of connection states for the lighttpd server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.memory_usage":{info:"The memory usage of the lighttpd server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.uptime":{info:"The uptime of the lighttpd server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime.",en:{instance:{one:"web server",other:"web servers"}}},"logstash.jvm_threads":{info:"The number of threads currently being used by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing threading issues that may affect its performance."},"logstash.jvm_mem_heap_used":{aggregationMethod:"avg",info:"The amount of memory currently being used by the Logstash JVM's heap. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_eden":{info:"The amount of memory currently being used by the Logstash JVM's Eden memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_survivor":{info:"The amount of memory currently being used by the Logstash JVM's Survivor memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_old":{info:"The amount of memory currently being used by the Logstash JVM's Old memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_gc_collector_count":{info:"The number of garbage collection operations performed by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing performance issues related to garbage collection."},"logstash.jvm_gc_collector_time":{aggregationMethod:"min",info:"The total time spent on garbage collection operations by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing performance issues related to garbage collection."},"logstash.open_file_descriptors":{info:"The number of open file descriptors used by Logstash. Monitoring this metric can help identify if Logstash is experiencing file descriptor usage issues that may affect its performance."},"logstash.event":{info:"The number of events processed by Logstash. Monitoring this metric can help identify the usage patterns of Logstash and potential performance issues."},"logstash.event_duration":{info:"The latencies of events processed by Logstash. High latencies may indicate performance issues with Logstash or the components interacting with it."},"logstash.uptime":{aggregationMethod:"min",info:"The uptime of the Logstash server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime."},"logstash.pipeline_event":{info:"The number of events processed by the specified Logstash pipeline. Monitoring this metric can help identify the usage patterns of the pipeline and potential performance issues."},"mongodb.operations":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Operations",desiredUnits:"operations",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:"The total number of operations performed by the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.operations_latency":{aggregationMethod:"avg",info:"The latencies of operations performed by the MongoDB server. High latencies may indicate performance issues with the server or the components interacting with it.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Connections",desiredUnits:"connections",colors:s.default[0],layout:{left:3,top:0,width:3,height:5}}],info:"The total number of connections to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections_rate":{info:"The rate of connections to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections_state":{info:"The distribution of connection states for the MongoDB server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.network_io":{info:"The amount of network IO performed by the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.network_requests":{info:"The number of requests to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.page_faults":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Page Faults",desiredUnits:"faults",colors:s.default[0],layout:{left:9,top:0,width:3,height:5}}],info:"The number of page faults encountered by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.tcmalloc_generic":{info:"The usage of the TCMalloc generic allocator by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.tcmalloc":{info:"The usage of the TCMalloc allocator by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.asserts":{info:"The number of asserts encountered by the MongoDB server. Monitoring this metric can help identify if the server is encountering issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.current_transactions":{info:"The number of current transactions on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to transactions.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_commit_types":{info:"The distribution of commit types for sharded collections on the MongoDB server. Monitoring this metric can help identify if there are issues with sharding on the server.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.active_clients":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"Total Active Clients",desiredUnits:"clients",colors:s.default[0],layout:{left:0,top:5,width:3,height:5}}],info:"The number of active clients connected to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.queued_operations":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Queued Operations",desiredUnits:"operations",colors:s.default[0],layout:{left:3,top:5,width:3,height:5}}],info:"The number of operations that are currently queued on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to queued operations.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.locks":{info:"The distribution of locks held by the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.flow_control_timings":{info:"The timings of flow control events on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to flow control.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_blocks":{info:"The number of blocks currently held in the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_cache":{info:"The usage of the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_capacity":{info:"The capacity of the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_connection":{info:"The number of connections currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to connections.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_cursor":{info:"The number of cursors currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to cursors.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_lock":{info:"The number of locks currently held in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_lock_duration":{info:"The duration of locks held in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_log_ops":{info:"The number of operations written to the WiredTiger log on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to logging.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_transactions":{info:"The number of transactions currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to transactions.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_collections":{info:"The number of collections in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_indexes":{info:"The number of indexes in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_views":{info:"The number of views in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_documents":{info:"The number of documents in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_storage_size":{info:"The storage size of the specified database on the MongoDB server. Monitoring this metric can help identify if the database is using an appropriate amount of storage.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_lag":{info:"The amount of lag in replication on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_heartbeat_latency":{aggregationMethod:"avg",info:"The latencies of replication heartbeats on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_node_ping":{aggregationMethod:"avg",info:"The latencies of pings to replication nodes on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_nodes_count":{info:"The number of nodes in the specified shard on the MongoDB server. Monitoring this metric can help identify the usage patterns of the shard and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_databases_status":{info:"The status of the databases in the specified shard on the MongoDB server. Monitoring this metric can help identify if there are issues with the databases in the shard.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.chunks":{info:"The number of chunks in the specified shard on the MongoDB server. Monitoring this metric can help identify the usage patterns of the shard and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"nginx.connections":{colors:s.default[4],mainheads:[{groupBy:["selected"],valueRange:[0,null],chartLibrary:"gauge",title:"Total Connections",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],en:{instance:{one:"web server",other:"web servers"}}},"nginx.requests":{colors:s.default[0],mainheads:[{groupBy:["selected"],valueRange:[0,null],chartLibrary:"gauge",title:"Total Requests",colors:s.default[0],layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"web server",other:"web servers"}}},"nginx.connections_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connection Status",layout:{left:6,top:0,width:3,height:5}}],info:"The current status of connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginx.connections_accepted_handled":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connections Handled",layout:{left:9,top:0,width:3,height:5}}],info:"The number of accepted and handled connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.client_connections_rate":{mainheads:[{groupBy:["selected"],valueRange:[0,null],chartLibrary:"gauge",desiredUnits:"connections/s",title:"Total Client Connections Rate",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"Accepted and dropped (not handled) connections. A connection is considered <b>dropped</b> if the worker process is unable to get a connection for the request by establishing a new connection or reusing an open one.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.client_connections_count":{mainheads:[{valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Client Connections per State",layout:{left:3,top:0,width:3,height:2.5}}],info:"The current number of client connections. A connection is considered <b>idle</b> if there are currently no active requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_handshakes_rate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",desiredUnits:"handshakes/s",title:"Total SSL Handshake Rate",colors:s.default[4],layout:{left:3,top:2.5,width:3,height:2.5}}],info:"Successful and failed SSL handshakes.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_session_reuses_rate":{info:"The number of session reuses during SSL handshake.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_handshakes_failures_rate":{mainheads:[{groupBy:["selected"],valueRange:[0,null],chartLibrary:"easypiechart",desiredUnits:"failures/s",title:"SSL Handshake Failures",colors:s.default[4],layout:{left:6,top:0,width:3,height:5}}],info:"<p>SSL handshake failures.</p><p><b>NoCommonProtocol</b> - failed because of no common protocol. <b>NoCommonCipher</b> - failed because of no shared cipher. <b>Timeout</b> - failed because of a timeout. <b>PeerRejectedCert</b> - failed because a client rejected the certificate.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_verification_errors_rate":{info:'<p>SSL verification errors.</p><p><b>NoCert</b> - a client did not provide the required certificate. <b>ExpiredCert</b> - an expired or not yet valid certificate was presented by a client. <b>RevokedCert</b> - a revoked certificate was presented by a client. <b>HostnameMismatch</b> - server"s certificate does not match the hostname. <b>Other</b> - other SSL certificate verification errors.</p>',en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_requests_rate":{mainheads:[{groupBy:["selected"],valueRange:[0,null],chartLibrary:"gauge",desiredUnits:"req/s",title:"Total HTTP Requests Rate",colors:s.default[4],layout:{left:9,top:0,width:3,height:5}}],info:"The number of HTTP requests received from clients.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_requests_count":{mainheads:[{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Requests",layout:{left:0,top:5,width:3,height:2.5}}],info:"The current number of client requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"dHH:MM:ss",layout:{left:0,top:7.5,width:3,height:2.5}}],info:"The time elapsed since the NGINX process was started.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Requests Rate",desiredUnits:"requests/s",layout:{left:3,top:5,width:3,height:5}}],info:"The number of requests to the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_responses_per_code_class_rate":{info:"The number of responses from the HTTP Server Zone. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_traffic_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Traffic Rate",desiredUnits:"b/s",layout:{left:6,top:5,width:3,height:5}}],info:"The amount of data transferred to and from the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_processing_count":{info:"The number of client requests that are currently being processed by the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_discarded_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Discarded Requests Rate",desiredUnits:"requests/s",layout:{left:9,top:5,width:3,height:5}}],info:"The number of requests to the HTTP Server Zone completed without sending a response.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_requests_rate":{info:"The number of requests to the HTTP Location Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_responses_per_code_class_rate":{info:"The number of responses from the HTTP Location Zone. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_traffic_rate":{info:"The amount of data transferred to and from the HTTP Location Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_requests_discarded_rate":{info:"The number of requests to the HTTP Location Zone completed without sending a response.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_peers_count":{info:"The number of HTTP Upstream servers.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_zombies_count":{info:"The current number of HTTP Upstream servers removed from the group but still processing active client requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_keepalive_count":{info:"The current number of idle keepalive connections to the HTTP Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_requests_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total HTTP Upstream Request Rate",desiredUnits:"requests/s",layout:{left:0,top:10,width:3,height:5}}],info:"The number of client requests forwarded to the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_responses_per_code_class_rate":{info:"The number of responses received from the HTTP Upstream Server. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_response_time":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average HTTP Upstream Response Time",desiredUnits:"milliseconds",layout:{left:3,top:10,width:3,height:5}}],info:"The average time to get a complete response from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_response_header_time":{aggregationMethod:"avg",info:"The average time to get a response header from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_traffic_rate":{info:"The amount of traffic transferred to and from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Upstream Server State",layout:{left:6,top:10,width:3,height:5}}],info:"The current state of the HTTP Upstream Server. Status is active if set to 1.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_connections_count":{info:"The current number of active connections to the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_downtime":{info:"The time the HTTP Upstream Server has spent in the <b>unavail</b>, <b>checking</b>, and <b>unhealthy</b> states.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total HTTP Cache State",desiredUnits:"responses/s",layout:{left:9,top:10,width:3,height:5}}],info:"HTTP cache current state. <b>Cold</b> means that the cache loader process is still loading data from disk into the cache.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_iops":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total HTTP Cache IOPS",desiredUnits:"responses/s",layout:{left:9,top:15,width:3,height:5}}],info:"<p>HTTP cache IOPS.</p><p><b>Served</b> - valid, expired, and revalidated responses read from the cache. <b>Written</b> - miss, expired, and bypassed responses written to the cache. <b>Bypassed</b> - miss, expired, and bypass responses.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_io":{info:"<p>HTTP cache IO.</p><p><b>Served</b> - valid, expired, and revalidated responses read from the cache. <b>Written</b> - miss, expired, and bypassed responses written to the cache. <b>Bypassed</b> - miss, expired, and bypass responses.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_size":{info:"The current size of the cache.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Stream Server Zone Connections Rate",desiredUnits:"connections/s",layout:{left:0,top:15,width:3,height:5}}],info:"The number of accepted connections to the Stream Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_sessions_per_code_class_rate":{info:"The number of completed sessions for the Stream Server Zone. Sessions grouped by status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_traffic_rate":{info:"The amount of data transferred to and from the Stream Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_processing_count":{info:"The number of client connections to the Stream Server Zone that are currently being processed.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_discarded_rate":{info:"The number of connections to the Stream Server Zone completed without creating a session.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_peers_count":{info:"The number of Stream Upstream servers.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_zombies_count":{info:"The current number of HTTP Upstream servers removed from the group but still processing active client connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_connections_rate":{info:"The number of connections forwarded to the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_traffic_rate":{info:"The amount of traffic transferred to and from the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_state":{info:"The current state of the Stream Upstream Server. Status is active if set to 1.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_downtime":{info:"The time the Stream Upstream Server has spent in the <b>unavail</b>, <b>checking</b>, and <b>unhealthy</b> states.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_connections_count":{info:"The current number of connections to the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.resolver_zone_requests_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",desiredUnits:"requests/s",title:"Total Resolver Zone Request Rate",colors:s.default[4],layout:{left:3,top:15,width:3,height:5}}],info:"<p>Resolver zone DNS requests.</p><p><b>Name</b> - requests to resolve names to addresses. <b>Srv</b> - requests to resolve SRV records. <b>Addr</b> - requests to resolve addresses to names.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.resolver_zone_responses_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",desiredUnits:"responses/s",title:"Total Resolver Zone Responses Rate",colors:s.default[4],layout:{left:6,top:15,width:3,height:5}}],info:"<p>Resolver zone DNS responses.</p><p><b>NoError</b> - successful responses. <b>FormErr</b> - format error responses. <b>ServFail</b> - server failure responses. <b>NXDomain</b> - host not found responses. <b>NotImp</b> - unimplemented responses. <b>Refused</b> - operation refused responses. <b>TimedOut</b> - timed out requests. <b>Unknown</b> - requests completed with an unknown error.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.requests_total":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Requests",layout:{left:0,top:0,width:3,height:5}}],info:"The total number of requests on the nginx server. Monitoring this metric can help identify potential performance issues related to requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.active_connections":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Active Connections",layout:{left:6,top:0,width:3,height:5}}],info:"The number of active connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Uptime",layout:{left:9,top:0,width:3,height:5}}],info:"The uptime of the nginx server. Monitoring this metric can help identify potential performance issues related to server uptime.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.shm_usage":{info:"The usage of the shared memory on the nginx server. Monitoring this metric can help identify potential performance issues related to shared memory usage.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.server_requests_total":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Server Requests",layout:{left:3,top:0,width:3,height:5}}],info:"The total number of requests on the nginx server. Monitoring this metric can help identify potential performance issues related to server requests.",en:{instance:{one:"web server",other:"web servers"}}},"httpcheck.response_time":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Response Time",layout:{left:0,top:0,width:3,height:5}}],info:"The <b>response time</b> describes the time passed between request and response. Currently, the accuracy of the response time is low and should be used as reference only.",groupBy:["label"],groupByLabel:["_collect_job"]},"httpcheck.response_length":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Response Length",layout:{left:3,top:0,width:3,height:5}}],info:"The <b>response length</b> counts the number of characters in the response body. For static pages, this should be mostly constant.",groupBy:["label"],groupByLabel:["_collect_job"]},"httpcheck.status":{mainheads:[{groupBy:["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Server Check Status",layout:{left:6,top:0,width:3,height:5}}],info:"This chart verifies the response of the webserver. Each status dimension will have a value of <b>1</b> if triggered. Dimension <b>success</b> is <b>1</b> only if all constraints are satisfied. This chart is most useful for alerts or third-party apps.",groupBy:["label"],groupByLabel:["_collect_job"],dimensionsOnNonDimensionGrouping:["success"]},"netdata.response_time":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average API Response Time",layout:{left:6,top:0,width:3,height:5}}],info:"The netdata API response time measures the time netdata needed to serve requests. This time includes everything, from the reception of the first byte of a request, to the dispatch of the last byte of its reply, therefore it includes all network latencies involved (i.e. a client over a slow network will influence these metrics).",en:{instance:{one:"agent",other:"agents"}}},"netdata.server_cpu":{mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average CPU usage per Agent",colors:s.default[12]}],info:"The CPU time consumed by Netdata process in user and system space.",en:{instance:{one:"agent",other:"agents"}}},"netdata.memory":{mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average memory usage per Agent",colors:s.default[1]}],info:"The memory consumed by the Netdata agent.",en:{instance:{one:"agent",other:"agents"}}},"netdata.net":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total network traffic across all agents",layout:{left:9,top:0,width:3,height:5}}],info:"The network traffic generated by Netdata agent.",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_threads":{info:'Show total number of threads and number of active threads. For more details about the threads, see the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ebpf-programs-configuration-options" target="_blank">official documentation</a>.',en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_load_methods":{info:"Show number of threads loaded using legacy code (independent binary) or <b>CO-RE (Compile Once Run Everywhere)</b>.",en:{instance:{one:"agent",other:"agents"}}},"retroshare.bandwidth":{info:"RetroShare inbound and outbound traffic.",mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Inbound",selectedDimensions:["bandwidth_down_kb"],colors:s.default[0]},{groupBy:["selected"],chartLibrary:"gauge",title:"Total Outbound",selectedDimensions:["bandwidth_up_kb"],colors:s.default[1]}]},"retroshare.peers":{info:"Number of (connected) RetroShare friends.",mainheads:[{groupBy:["selected"],urlOptions:["friends"],selectedDimensions:["peers_connected"],chartLibrary:"easypiechart",title:"Total Connected Friends",desiredUnits:""}]},"retroshare.dht":{info:"Statistics about RetroShare's DHT. These values are estimated!"},"fping.quality":{family:"quality",colors:s.default[10]},"fping.packets":{family:"packets"},"cgroup.cpu_limit":{aggregationMethod:"avg",valueRange:[0,null],mainheads:[{groupBy:["selected"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,100],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum CPU Utilization (within limit)",units:"percentage",layout:{left:0,top:0,width:3,height:5}},{groupBy:["label"],groupByLabel:["cgroup_name"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,null],selectedDimensions:["used"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Utilization (within limit) per cgroup",units:"percentage",layout:{left:0,top:5,width:4,height:5}}],info:ce,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu":{aggregationMethod:"avg",mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,100],chartLibrary:"gauge",title:"Maximum CPU Utilization",units:"percentage",layout:{left:3,top:0,width:3,height:5}},{groupBy:["label"],groupByLabel:["cgroup_name"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Utilization per cgroup",units:"percentage",layout:{left:4,top:5,width:4,height:5}}],info:le,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttled":{aggregationMethod:"avg",info:de,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttled_duration":{aggregationMethod:"avg",info:he,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_shares":{info:ue,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_per_core":{aggregationMethod:"avg",info:pe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_some_pressure":{aggregationMethod:"avg",info:me,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_some_pressure_stall_time":{info:ge,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_full_pressure":{aggregationMethod:"avg",info:fe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_full_pressure_stall_time":{info:be,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.cpu_limit":{aggregationMethod:"avg",valueRange:[0,null],mainheads:[{groupBy:["selected"],aggregationMethod:"max",selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum CPU Utilization (within limit)",units:"percentage"}],info:ce,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu":{aggregationMethod:"avg",mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"max",chartLibrary:"gauge",title:"Maximum CPU Utilization",units:"percentage"}],info:le,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttled":{aggregationMethod:"avg",info:de,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttled_duration":{aggregationMethod:"avg",info:he,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_shares":{info:ue,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_per_core":{aggregationMethod:"avg",info:pe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_some_pressure":{aggregationMethod:"avg",info:me,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_some_pressure_stall_time":{info:ge,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_full_pressure":{aggregationMethod:"avg",info:fe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_full_pressure_stall_time":{info:be,en:{instance:{one:"container",other:"containers"}}},"cgroup.mem_utilization":{aggregationMethod:"avg",info:ye,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_usage_limit":{aggregationMethod:"avg",mainheads:[{groupBy:["percentage-of-instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,100],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum Memory Utilization (within limit)",layout:{left:6,top:0,width:3,height:5}},{groupBy:["label"],groupByLabel:["cgroup_name"],aggregationMethod:"max",groupingMethod:"max",selectedDimensions:["used"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum Memory Utilization (within limit) per cgroup",layout:{left:8,top:5,width:4,height:5}}],info:ve,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_usage":{mainheads:[{groupBy:["dimension"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,selectedDimensions:["ram"],title:"Total RAM Used",colors:s.default[11],layout:{left:9,top:0,width:3,height:5}}],info:_e,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem":{info:we,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_failcnt":{info:ke,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.writeback":{info:Te,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_activity":{info:Se,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.pgfaults":{info:Me,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_some_pressure":{aggregationMethod:"avg",info:xe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_some_pressure_stall_time":{info:Ce,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_full_pressure":{aggregationMethod:"avg",info:Pe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_full_pressure_stall_time":{info:qe,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.mem_utilization":{aggregationMethod:"avg",info:ye,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_usage_limit":{aggregationMethod:"avg",mainheads:[{groupBy:["percentage-of-instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"max",valueRange:[0,null],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum Memory Used (within limit)",units:"percentage"}],info:ve,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_usage":{mainheads:[{groupBy:["selected"],selectedDimensions:["ram"],chartLibrary:"gauge",title:"Total RAM Used",units:"MB"}],info:_e,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem":{info:we,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_failcnt":{info:ke,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.writeback":{info:Te,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_activity":{info:Se,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.pgfaults":{info:Me,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_some_pressure":{aggregationMethod:"avg",info:xe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_some_pressure_stall_time":{info:Ce,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_full_pressure":{aggregationMethod:"avg",info:Pe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_full_pressure_stall_time":{info:qe,en:{instance:{one:"container",other:"containers"}}},"cgroup.io":{mainheads:[{groupBy:["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Disk Read",selectedDimensions:["read"],colors:s.default[0],priority:5,layout:{left:0,top:10,width:2,height:5}},{groupBy:["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Disk Write",selectedDimensions:["write"],colors:s.default[1],priority:6,layout:{left:2,top:10,width:2,height:5}}],info:Ie,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.serviced_ops":{info:Be,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.queued_ops":{info:Le,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.merged_ops":{info:Ae,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttle_io":{info:Ee,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttle_serviced_ops":{info:Ne,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.pids_current":{info:De,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_some_pressure":{aggregationMethod:"avg",info:Re,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_some_pressure_stall_time":{info:Ue,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_full_pressure":{aggregationMethod:"avg",info:Fe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_full_pressure_stall_time":{info:ze,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.io":{info:Ie,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.serviced_ops":{info:Be,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.queued_ops":{info:Le,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.merged_ops":{info:Ae,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttle_io":{mainheads:[{groupBy:["selected"],selectedDimensions:["read"],chartLibrary:"gauge",title:"Total Read Disk I/O",desiredUnits:"KB/s"},{groupBy:["selected"],selectedDimensions:["write"],chartLibrary:"gauge",title:"Total Write Disk I/O",desiredUnits:"KB/s"}],info:Ee,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttle_serviced_ops":{info:Ne,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.pids_current":{info:De,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_some_pressure":{aggregationMethod:"avg",info:Re,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_some_pressure_stall_time":{info:Ue,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_full_pressure":{aggregationMethod:"avg",info:Fe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_full_pressure_stall_time":{info:ze,en:{instance:{one:"container",other:"containers"}}},"cgroup.swap_read":{info:V,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.swap_write":{info:Q,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_open":{info:k,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_open_error":{info:T,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_close":{info:S,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_close_error":{info:M,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_unlink":{info:N,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write":{info:I,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write_error":{info:L,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read":{info:B,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read_error":{info:A,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write_bytes":{info:E,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read_bytes":{info:D,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_fsync":{info:R,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_fsync_error":{info:U,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_open":{info:F,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_open_error":{info:z,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_create":{info:O,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_create_error":{info:H,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.process_create":{info:b,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.thread_create":{info:y,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_exit":{info:v,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_close":{info:_,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_error":{info:w,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the directory cache. 100% means that every file that was accessed was present in the directory cache. If files are not present in the directory cache 1) they are not present in the file system, 2) the files were not accessed before. Read more about <a href="https://www.kernel.org/doc/htmldocs/filesystems/the_directory_cache.html" target="_blank">directory cache</a>. Netdata also gives a summary for these charts in <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Filesystem submenu</a>.',en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmget":{info:Z,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmat":{info:Y,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmdt":{info:X,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmctl":{info:J,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.outbound_conn_v4":{info:$,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.outbound_conn_v6":{info:ee,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_send":{info:te,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_recv":{info:ne,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_tcp_send":{info:se,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_tcp_recv":{info:ae,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_retransmit":{info:oe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_udp_send":{info:re,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_udp_recv":{info:ie,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_hit_ratio":{aggregationMethod:"avg",info:x,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_reference":{info:C,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_not_cache":{info:P,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_not_found":{info:q,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_ratio":{aggregationMethod:"avg",info:j,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_dirties":{info:G,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_hits":{info:W,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_misses":{info:K,en:{instance:{one:"cgroup",other:"cgroups"}}},"systemd.service.cpu.utilization":{info:'Total CPU utilization within the system-wide CPU resources (all cores). The amount of time spent by tasks of the cgroup in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel</a> modes.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],mainheads:[{groupBy:["label"],groupByLabel:["service_name"],chartLibrary:"bars",title:"Top by CPU",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:0,top:0,width:4,height:5}}],en:{instance:{one:"service",other:"services"}}},"systemd.service.memory.usage":{info:"The amount of used RAM and swap memory.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],mainheads:[{groupBy:["label"],groupByLabel:["service_name"],selectedDimensions:["ram"],chartLibrary:"bars",title:"Top by RAM",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:4,top:0,width:4,height:5}},{groupBy:["label"],groupByLabel:["service_name"],selectedDimensions:["swap"],chartLibrary:"bars",title:"Top by Swap",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:8,top:0,width:4,height:5}}],en:{instance:{one:"service",other:"services"}}},"systemd.service.memory.failcnt":{info:"The number of memory usage hits limits.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.memory.ram.usage":{info:'Memory usage statistics. The individual metrics are described in the memory.stat section for <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html#per-memory-cgroup-local-status" target="_blank">cgroup-v1</a> and <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory-interface-files" target="_blank">cgroup-v2</a>.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],en:{instance:{one:"service",other:"services"}}},"systemd.service.memory.writeback":{info:"Dirty is the amount of memory waiting to be written to disk. Writeback is how much memory is actively being written to disk.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],en:{instance:{one:"service",other:"services"}}},"systemd.service.memory.paging.faults":{info:'Memory <a href="https://en.wikipedia.org/wiki/Page_fault" target="_blank">page fault</a> statistics.',aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],en:{instance:{one:"service",other:"services"}}},"systemd.service.memory.paging.io":{info:"Memory accounting statistics. In - a page is accounted as either mapped anon page (RSS) or cache page (Page Cache) to the cgroup. Out - a page is unaccounted from the cgroup.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.disk.io":{info:"The amount of data transferred to and from specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.disk.iops":{info:"The number of I/O operations performed on specific devices as seen by the CFQ scheduler.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.disk.throttle.io":{info:"The amount of data transferred to and from specific devices as seen by the throttling policy.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.disk.throttle.iops":{info:"The number of I/O operations performed on specific devices as seen by the throttling policy.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.disk.queued_iops":{info:"The number of requests queued for I/O operations.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.disk.merged_iops":{info:"The number of BIOS requests merged into requests for I/O operations.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"systemd.service.pids.current":{info:"The number of processes currently in the cgroup.",aggregationMethod:"sum",groupBy:["label"],groupByLabel:["service_name"],chartType:"stacked",en:{instance:{one:"service",other:"services"}}},"services.cpu":{aggregationMethod:"avg",info:'Total CPU utilization within the system-wide CPU resources (all cores). The amount of time spent by tasks of the cgroup in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel</a> modes.',en:{instance:{one:"system",other:"systems"}}},"services.mem_usage":{aggregationMethod:"avg",info:"The amount of used RAM.",en:{instance:{one:"system",other:"systems"}}},"services.mem_rss":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Resident_set_size" target="_blank">RSS</a> memory. It includes transparent hugepages.',en:{instance:{one:"system",other:"systems"}}},"services.mem_mapped":{info:'The size of <a href="https://en.wikipedia.org/wiki/Memory-mapped_file" target="_blank">memory-mapped</a> files.',en:{instance:{one:"system",other:"systems"}}},"services.mem_cache":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">page cache</a> memory.',en:{instance:{one:"system",other:"systems"}}},"services.mem_writeback":{info:'The amount of file/anon cache that is <a href="https://en.wikipedia.org/wiki/Cache_(computing)#Writing_policies" target="_blank">queued for syncing</a> to disk.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgfault":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Types" target="_blank">page faults</a>. It includes both minor and major page faults.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgmajfault":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major</a> page faults.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgpgin":{info:"The amount of memory charged to the cgroup. The charging event happens each time a page is accounted as either mapped anon page(RSS) or cache page(Page Cache) to the cgroup.",en:{instance:{one:"system",other:"systems"}}},"services.mem_pgpgout":{info:"The amount of memory uncharged from the cgroup. The uncharging event happens each time a page is unaccounted from the cgroup.",en:{instance:{one:"system",other:"systems"}}},"services.mem_failcnt":{info:"The number of memory usage hits limits.",en:{instance:{one:"system",other:"systems"}}},"services.swap_usage":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Memory_paging#Unix_and_Unix-like_systems" target="_blank">swap</a> memory.',en:{instance:{one:"system",other:"systems"}}},"services.io_read":{info:"The amount of data transferred from specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",en:{instance:{one:"system",other:"systems"}}},"services.io_write":{info:"The amount of data transferred to specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",en:{instance:{one:"system",other:"systems"}}},"services.io_ops_read":{info:"The number of read operations performed on specific devices as seen by the CFQ scheduler.",en:{instance:{one:"system",other:"systems"}}},"services.io_ops_write":{info:"The number write operations performed on specific devices as seen by the CFQ scheduler.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_read":{info:"The amount of data transferred from specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_write":{info:"The amount of data transferred to specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_ops_read":{info:"The number of read operations performed on specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_ops_write":{info:"The number of write operations performed on specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.queued_io_ops_read":{info:"The number of queued read requests.",en:{instance:{one:"system",other:"systems"}}},"services.queued_io_ops_write":{info:"The number of queued write requests.",en:{instance:{one:"system",other:"systems"}}},"services.merged_io_ops_read":{info:"The number of read requests merged.",en:{instance:{one:"system",other:"systems"}}},"services.merged_io_ops_write":{info:"The number of write requests merged.",en:{instance:{one:"system",other:"systems"}}},"services.swap_read":{info:V+'<div id="ebpf_services_swap_read"></div>',en:{instance:{one:"system",other:"systems"}}},"services.swap_write":{info:Q+'<div id="ebpf_services_swap_write"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_open":{info:k+'<div id="ebpf_services_file_open"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_open_error":{info:T+'<div id="ebpf_services_file_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_close":{info:S+'<div id="ebpf_services_file_closed"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_close_error":{info:M+'<div id="ebpf_services_file_close_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_unlink":{info:N+'<div id="ebpf_services_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write":{info:I+'<div id="ebpf_services_vfs_write"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write_error":{info:L+'<div id="ebpf_services_vfs_write_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read":{info:B+'<div id="ebpf_services_vfs_read"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read_error":{info:A+'<div id="ebpf_services_vfs_read_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write_bytes":{info:E+'<div id="ebpf_services_vfs_write_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read_bytes":{info:D+'<div id="ebpf_services_vfs_read_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_fsync":{info:R+'<div id="ebpf_services_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_fsync_error":{info:U+'<div id="ebpf_services_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_open":{info:F+'<div id="ebpf_services_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_open_error":{info:z+'<div id="ebpf_services_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_create":{info:O+'<div id="ebpf_services_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_create_error":{info:H+'<div id="ebpf_services_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.process_create":{info:b+'<div id="ebpf_services_process_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.thread_create":{info:y+'<div id="ebpf_services_thread_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_exit":{info:v+'<div id="ebpf_services_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_close":{info:_+'<div id="ebpf_services_task_release"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_error":{info:w+'<div id="ebpf_services_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_hit_ratio":{aggregationMethod:"avg",info:x+'<div id="ebpf_services_dc_hit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_reference":{info:C+'<div id="ebpf_services_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_not_cache":{info:P+'<div id="ebpf_services_dc_not_cache"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_not_found":{info:q+'<div id="ebpf_services_dc_not_found"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_ratio":{aggregationMethod:"avg",info:j+'<div id="ebpf_services_cachestat_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_dirties":{info:G+'<div id="ebpf_services_cachestat_dirties"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_hits":{info:W+'<div id="ebpf_services_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_misses":{info:K+'<div id="ebpf_services_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmget":{info:Z+'<div id="ebpf_services_shm_get"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmat":{info:Y+'<div id="ebpf_services_shm_at"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmdt":{info:X+'<div id="ebpf_services_shm_dt"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmctl":{info:J+'<div id="ebpf_services_shm_ctl"></div>',en:{instance:{one:"system",other:"systems"}}},"services.outbound_conn_v4":{info:$+'<div id="ebpf_services_outbound_conn_ipv4"></div>',en:{instance:{one:"system",other:"systems"}}},"services.outbound_conn_v6":{info:ee+'<div id="ebpf_services_outbound_conn_ipv6"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_bytes_send":{info:te+'<div id="ebpf_services_bandwidth_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_bytes_recv":{info:ne+'<div id="ebpf_services_bandwidth_received"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_tcp_send":{info:se+'<div id="ebpf_services_bandwidth_tcp_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_tcp_recv":{info:ae+'<div id="ebpf_services_bandwidth_tcp_received"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_retransmit":{info:oe+'<div id="ebpf_services_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_udp_send":{info:re+'<div id="ebpf_services_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_udp_recv":{info:ie+'<div id="ebpf_services_udp_recv"></div>',en:{instance:{one:"system",other:"systems"}}},"beanstalk.cpu_usage":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total CPU time consumed",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"Amount of CPU Time for user and system used by beanstalkd."},"beanstalk.jobs_rate":{info:"The rate of jobs processed by the beanstalkd served."},"beanstalk.connections_rate":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Connections Rate",colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],info:"The rate of connections opened to beanstalkd."},"beanstalk.commands_rate":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Commands Received Rate",colors:s.default[7],layout:{left:6,top:0,width:3,height:5}}],info:"The rate of commands received by beanstalkd."},"beanstalk.current_tubes":{info:"Total number of current tubes on the server including the default tube (which always exists)."},"beanstalk.current_jobs":{info:"Current number of jobs in all tubes grouped by status: urgent, ready, reserved, delayed and buried."},"beanstalk.current_connections":{info:"Current number of connections group by connection type: written, producers, workers, waiting."},"beanstalk.binlog":{info:"The rate of records <b>written</b> to binlog and <b>migrated</b> as part of compaction."},"beanstalk.uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Uptime",layout:{left:9,top:0,width:3,height:5}}],info:"Total time beanstalkd server has been up for."},"beanstalk.jobs":{info:"Number of jobs currently in the tube grouped by status: urgent, ready, reserved, delayed and buried."},"beanstalk.connections":{info:"The current number of connections to this tube grouped by connection type; using, waiting and watching."},"beanstalk.commands":{info:"The rate of <b>delete</b> and <b>pause</b> commands executed by beanstalkd."},"beanstalk.pause":{info:"Shows info on how long the tube has been paused for, and how long is left remaining on the pause."},"ceph.general_usage":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Usage",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"The usage and available space in all ceph cluster."},"ceph.general_objects":{mainheads:[{groupBy:["selected"],chartLibrary:"number",title:"Total Objects",colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],info:"Total number of objects storage on ceph cluster."},"ceph.general_bytes":{info:"Cluster read and write data per second."},"ceph.general_operations":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Operations",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"Number of read and write operations per second."},"ceph.general_latency":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Latency",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"Total of apply and commit latency in all OSDs. The apply latency is the total time taken to flush an update to disk. The commit latency is the total time taken to commit an operation to the journal."},"ceph.pool_usage":{info:"The usage space in each pool."},"ceph.pool_objects":{info:"Number of objects presents in each pool."},"ceph.pool_read_bytes":{info:"The rate of read data per second in each pool."},"ceph.pool_write_bytes":{info:"The rate of write data per second in each pool."},"ceph.pool_read_objects":{info:"Number of read objects per second in each pool."},"ceph.pool_write_objects":{info:"Number of write objects per second in each pool."},"ceph.osd_usage":{info:"The usage space in each OSD."},"ceph.osd_size":{info:"Each OSD's size"},"ceph.apply_latency":{aggregationMethod:"avg",info:"Time taken to flush an update in each OSD."},"ceph.commit_latency":{aggregationMethod:"avg",info:"Time taken to commit an operation to the journal in each OSD."},"web_log.squid_response_statuses":{info:"Squid responses by type. <b>success</b> includes <b>1xx</b>, <b>2xx</b>, <b>000</b>, <b>304</b>, <b>error</b> includes <b>5xx</b> and <b>6xx</b>, <b>redirect</b> includes <b>3xx</b> except <b>304</b>, <b>bad</b> includes <b>4xx</b>, <b>other</b> are all the other responses.",mainheads:[{groupBy:["selected"],selectedDimensions:["success"],chartLibrary:"gauge",title:"Total Successful Responses",desiredUnits:"requests/s"},{groupBy:["selected"],selectedDimensions:["redirect"],chartLibrary:"gauge",title:"Total Redirects",desiredUnits:"requests/s"},{groupBy:["selected"],selectedDimensions:["bad"],chartLibrary:"gauge",title:"Total Bad Requests",desiredUnits:"requests/s"},{groupBy:["selected"],selectedDimensions:["error"],chartLibrary:"gauge",title:"Total Server Errors",desiredUnits:"requests/s"}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_response_codes":{info:'Web server responses by code family. According to HTTP standards <b>1xx</b> are informational responses, <b>2xx</b> are successful responses, <b>3xx</b> are redirects (although they include <b>304</b> which is used as "<b>not modified</b>"), <b>4xx</b> are bad requests, <b>5xx</b> are internal server errors. Squid also defines <b>000</b> mostly for UDP requests, and <b>6xx</b> for broken upstream servers sending wrong headers. Finally, <b>other</b> are non-standard responses, and <b>unmatched</b> counts the lines in the log file that are not matched by the plugin (<a href="https://github.com/netdata/netdata/issues/new?title=web_log%20reports%20unmatched%20lines&body=web_log%20plugin%20reports%20unmatched%20lines.%0A%0AThis%20is%20my%20log:%0A%0A%60%60%60txt%0A%0Aplease%20paste%20your%20web%20server%20log%20here%0A%0A%60%60%60" target="_blank">let us know</a> if you have any unmatched).',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_duration":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",selectedDimensions:["avg"],chartLibrary:"gauge",title:"Average Response Time",desiredUnits:"milliseconds"}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_detailed_response_codes":{info:"Number of responses for each response code individually.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_clients":{info:"Unique client IPs accessing squid, within each data collection iteration. If data collection is <b>per second</b>, this chart shows <b>unique client IPs per second</b>.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_clients_all":{info:'Unique client IPs accessing squid since the last restart of netdata. This plugin keeps in memory all the unique IPs that have accessed the server. On very busy squid servers (several millions of unique IPs) you may want to disable this chart (check <a href="https://github.com/netdata/go.d.plugin/blob/master/config/go.d/web_log.conf" target="_blank"><b>/etc/netdata/go.d/web_log.conf</b></a>).',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_transport_methods":{info:"Break down per delivery method: <b>TCP</b> are requests on the HTTP port (usually 3128), <b>UDP</b> are requests on the ICP port (usually 3130), or HTCP port (usually 4128). If ICP logging was disabled using the log_icp_queries option, no ICP replies will be logged. <b>NONE</b> are used to state that squid delivered an unusual response or no response at all. Seen with cachemgr requests and errors, usually when the transaction fails before being classified into one of the above outcomes. Also seen with responses to <b>CONNECT</b> requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_code":{info:'These are combined squid result status codes. A break down per component is given in the following charts. Check the <a href="http://wiki.squid-cache.org/SquidFaq/SquidLogs" target="_blank">squid documentation about them</a>.',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_handling_opts":{info:"These tags are optional and describe why the particular handling was performed or where the request came from. <b>CLIENT</b> means that the client request placed limits affecting the response. Usually seen with client issued a <b>no-cache</b>, or analogous cache control command along with the request. Thus, the cache has to validate the object.<b>IMS</b> states that the client sent a revalidation (conditional) request. <b>ASYNC</b>, is used when the request was generated internally by Squid. Usually this is background fetches for cache information exchanges, background revalidation from stale-while-revalidate cache controls, or ESI sub-objects being loaded. <b>SWAPFAIL</b> is assigned when the object was believed to be in the cache, but could not be accessed. A new copy was requested from the server. <b>REFRESH</b> when a revalidation (conditional) request was sent to the server. <b>SHARED</b> when this request was combined with an existing transaction by collapsed forwarding. NOTE: the existing request is not marked as SHARED. <b>REPLY</b> when particular handling was requested in the HTTP reply from server or peer. Usually seen on DENIED due to http_reply_access ACLs preventing delivery of servers response object to the client.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_object_types":{info:"These tags are optional and describe what type of object was produced. <b>NEGATIVE</b> is only seen on HIT responses, indicating the response was a cached error response. e.g. <b>404 not found</b>. <b>STALE</b> means the object was cached and served stale. This is usually caused by stale-while-revalidate or stale-if-error cache controls. <b>OFFLINE</b> when the requested object was retrieved from the cache during offline_mode. The offline mode never validates any object. <b>INVALID</b> when an invalid request was received. An error response was delivered indicating what the problem was. <b>FAIL</b> is only seen on <b>REFRESH</b> to indicate the revalidation request failed. The response object may be the server provided network error or the stale object which was being revalidated depending on stale-if-error cache control. <b>MODIFIED</b> is only seen on <b>REFRESH</b> responses to indicate revalidation produced a new modified object. <b>UNMODIFIED</b> is only seen on <b>REFRESH</b> responses to indicate revalidation produced a <b>304</b> (Not Modified) status, which was relayed to the client. <b>REDIRECT</b> when squid generated an HTTP redirect response to this request.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_cache_events":{info:'These tags are optional and describe whether the response was loaded from cache, network, or otherwise. <b>HIT</b> when the response object delivered was the local cache object. <b>MEM</b> when the response object came from memory cache, avoiding disk accesses. Only seen on HIT responses. <b>MISS</b> when the response object delivered was the network response object. <b>DENIED</b> when the request was denied by access controls. <b>NOFETCH</b> an ICP specific type, indicating service is alive, but not to be used for this request (sent during "-Y" startup, or during frequent failures, a cache in hit only mode will return either UDP_HIT or UDP_MISS_NOFETCH. Neighbours will thus only fetch hits). <b>TUNNEL</b> when a binary tunnel was established for this transaction.',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_transport_errors":{info:"These tags are optional and describe some error conditions which occurred during response delivery (if any). <b>ABORTED</b> when the response was not completed due to the connection being aborted (usually by the client). <b>TIMEOUT</b>, when the response was not completed due to a connection timeout.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.type_requests":{info:"Web server responses by type. <b>success</b> includes <b>1xx</b>, <b>2xx</b>, <b>304</b> and <b>401</b>, <b>error</b> includes <b>5xx</b>, <b>redirect</b> includes <b>3xx</b> except <b>304</b>, <b>bad</b> includes <b>4xx</b> except <b>401</b>, <b>other</b> are all the other responses.",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Requests by Type",layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.request_processing_time":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",selectedDimensions:["avg"],chartLibrary:"gauge",title:"Average Response Time",desiredUnits:"milliseconds"}],en:{instance:{one:"web server",other:"web servers"}}},"portcheck.latency":{aggregationMethod:"avg",info:"The <b>latency</b> describes the time spent connecting to a TCP port. No data is sent or received. Currently, the accuracy of the latency is low and should be used as reference only.",en:{instance:{one:"service",other:"services"}}},"portcheck.status":{info:"The <b>status</b> chart verifies the availability of the service. Each status dimension will have a value of <b>1</b> if triggered. Dimension <b>success</b> is <b>1</b> only if connection could be established. This chart is most useful for alerts and third-party apps.",en:{instance:{one:"service",other:"services"}}},"chrony.stratum":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",valueRange:[0,null],title:"Maximum Stratum",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"The stratum indicates the distance (hops) to the computer with the reference clock. The higher the stratum number, the more the timing accuracy and stability degrades.",en:{instance:{one:"system",other:"systems"}}},"chrony.current_correction":{info:"Any error in the system clock is corrected by slightly speeding up or slowing down the system clock until the error has been removed, and then returning to the system clock\u2019s normal speed. A consequence of this is that there will be a period when the system clock (as read by other programs) will be different from chronyd's estimate of the current true time (which it reports to NTP clients when it is operating as a server). The reported value is the difference due to this effect.",en:{instance:{one:"system",other:"systems"}}},"chrony.root_delay":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Root Delay",valueRange:[0,null],colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],info:"The total of the network path delays to the stratum-1 computer from which the computer is ultimately synchronised.",en:{instance:{one:"system",other:"systems"}}},"chrony.root_dispersion":{aggregationMethod:"avg",info:"The total dispersion accumulated through all the computers back to the stratum-1 computer from which the computer is ultimately synchronised. Dispersion is due to system clock resolution, statistical measurement variations, etc.",en:{instance:{one:"system",other:"systems"}}},"chrony.last_offset":{aggregationMethod:"avg",info:"The estimated local offset on the last clock update. A positive value indicates the local time (as previously estimated true time) was ahead of the time sources.",en:{instance:{one:"system",other:"systems"}}},"chrony.frequency":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Max Frequency",colors:s.default[7],layout:{left:6,top:0,width:3,height:5}}],info:"The <b>frequency</b> is the rate by which the system\u2019s clock would be wrong if chronyd was not correcting it. It is expressed in ppm (parts per million). For example, a value of 1 ppm would mean that when the system\u2019s clock thinks it has advanced 1 second, it has actually advanced by 1.000001 seconds relative to true time.",en:{instance:{one:"system",other:"systems"}}},"chrony.residual_frequency":{aggregationMethod:"avg",info:"The <b>residual frequency</b> for the currently selected reference source. This reflects any difference between what the measurements from the reference source indicate the frequency should be and the frequency currently being used. The reason this is not always zero is that a smoothing procedure is applied to the frequency.",en:{instance:{one:"system",other:"systems"}}},"chrony.skew":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Skew",layout:{left:9,top:0,width:3,height:5}}],info:"The estimated error bound on the frequency.",en:{instance:{one:"system",other:"systems"}}},"chrony.ref_measurement_time":{aggregationMethod:"min",info:"The time elapsed since the last measurement from the reference source was processed.",en:{instance:{one:"system",other:"systems"}}},"chrony.leap_status":{info:"<p>The current leap status of the source.</p><p><b>Normal</b> - indicates the normal status (no leap second). <b>InsertSecond</b> - indicates that a leap second will be inserted at the end of the month. <b>DeleteSecond</b> - indicates that a leap second will be deleted at the end of the month. <b>Unsynchronised</b> - the server has not synchronized properly with the NTP server.</p>",en:{instance:{one:"system",other:"systems"}}},"chrony.activity":{info:"<p>The number of servers and peers that are online and offline.</p><p><b>Online</b> - the server or peer is currently online (i.e. assumed by chronyd to be reachable). <b>Offline</b> - the server or peer is currently offline (i.e. assumed by chronyd to be unreachable, and no measurements from it will be attempted). <b>BurstOnline</b> - a burst command has been initiated for the server or peer and is being performed. After the burst is complete, the server or peer will be returned to the online state. <b>BurstOffline</b> - a burst command has been initiated for the server or peer and is being performed. After the burst is complete, the server or peer will be returned to the offline state. <b>Unresolved</b> - the name of the server or peer was not resolved to an address yet.</p>",en:{instance:{one:"system",other:"systems"}}},"chrony.rms_offset":{aggregationMethod:"avg",info:"The root mean square (RMS) offset of the system clock from true time. Large offsets may indicate a problem with the clock or network synchronization.",en:{instance:{one:"system",other:"systems"}}},"chrony.update_interval":{aggregationMethod:"avg",info:"The interval between clock updates. Shorter intervals may improve accuracy but may also increase network load.",en:{instance:{one:"system",other:"systems"}}},"couchdb.active_tasks":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Active Tasks",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"Active tasks running on this CouchDB <b>cluster</b>. Four types of tasks currently exist: indexer (view building), replication, database compaction and view compaction.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.replicator_jobs":{info:'Detailed breakdown of any replication jobs in progress on this node. For more information, see the <a href="http://docs.couchdb.org/en/latest/replication/replicator.html" target="_blank">replicator documentation</a>.',en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.open_files":{info:'Count of all files held open by CouchDB. If this value seems pegged at 1024 or 4096, your server process is probably hitting the open file handle limit and <a href="http://docs.couchdb.org/en/latest/maintenance/performance.html#pam-and-ulimit" target="_blank">needs to be increased.</a>',en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.activity":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Activity",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"The activity of CouchDB nodes in the cluster. The number of requests being handled by the nodes per second. High values may indicate a high workload on the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.request_methods":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Request Methods",layout:{left:6,top:0,width:3,height:5}}],info:"The distribution of request methods being used on CouchDB nodes in the cluster. This can be useful for identifying the most common operations being performed on the nodes and potential performance bottlenecks.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.response_codes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Response Codes",layout:{left:9,top:0,width:3,height:5}}],info:"The distribution of response codes returned by CouchDB nodes in the cluster. This can be useful for identifying common error codes and potential issues with the nodes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.response_code_classes":{info:"The distribution of response code classes returned by CouchDB nodes in the cluster. This can be useful for identifying the general class of responses being returned by the nodes (e.g. success, error) and potential issues with the nodes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.erlang_vm_memory":{info:"The amount of memory used by the Erlang virtual machine (VM) running on CouchDB nodes in the cluster. This can be useful for monitoring the overall memory usage of the nodes and potential capacity issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.proccounts":{info:"The number of Erlang processes running on CouchDB nodes in the cluster. This can be useful for monitoring the overall workload of the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.peakmsgqueue":{info:"The maximum size of the message queue on CouchDB nodes in the cluster. This can be useful for monitoring the overall workload of the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.reductions":{info:"The number of reductions performed by the Erlang VM on CouchDB nodes in the cluster. Reductions are a measure of the computational work done by the VM and high values may indicate a high workload on the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_file":{info:"The size of CouchDB databases on disk, including data and metadata. This can be useful for monitoring the overall size of the databases and potential capacity issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_external":{info:"The total size of CouchDB databases in external storage in bytes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_active":{info:"The total size of CouchDB databases in active memory in bytes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_doc_count":{info:"The total number of documents stored in CouchDB databases.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_doc_del_count":{info:"The total number of deleted documents stored in CouchDB databases.",en:{instance:{one:"cluster",other:"clusters"}}},"freeradius.authentication":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Authentication Requests",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:"The number of authentication requests that have been processed by the FreeRADIUS server. FreeRADIUS is a RADIUS server, and authentication requests are requests from clients to authenticate themselves with the server. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.authentication_access_responses":{info:"The number of access responses that have been sent by the FreeRADIUS server in response to authentication requests. Access responses are messages sent by the server to either grant or deny access to a client based on the authentication request. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.bad_authentication":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Bad Authentication Requests",colors:s.default[1],layout:{left:3,top:0,width:3,height:5}}],info:"The number of bad authentication requests that have been received by the FreeRADIUS server. Bad authentication requests are requests that are improperly formatted or contain invalid data. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_authentication":{info:"The number of proxy authentication requests that have been processed by the FreeRADIUS server. Proxy authentication requests are requests from other RADIUS servers to authenticate a client on their behalf. Monitoring this metric can provide insight into the usage of the FreeRADIUS server as a proxy and can help identify any issues with proxy authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_authentication_access_responses":{info:"The number of access responses that have been sent by the FreeRADIUS server in response to proxy authentication requests. Access responses are messages sent by the server to either grant or deny access to a client based on the authentication request. Monitoring this metric can provide insight into the usage of the FreeRADIUS server as a proxy and can help identify any issues with proxy authentication requests.",en:{instance:{one:"server",other:"servers"}}},"geth.goroutines":{info:"The number of goroutines in the Geth process.",en:{instance:{one:"process",other:"processes"}}},"geth.chaindata_db_size":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total chain data size",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"The size of the chain data database.",en:{instance:{one:"database",other:"databases"}}},"geth.chainhead":{info:"The current head of the blockchain."},"geth.p2p_bandwidth":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],info:"The amount of bandwidth used by the P2P network.",en:{instance:{one:"network",other:"networks"}}},"geth.reorgs":{info:"The number of blockchain reorgs that have occurred."},"geth.reorgs_blocks":{info:"The number of blocks that have been reorganized in a blockchain reorg."},"geth.p2p_peers_calls":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total P2P peers calls",colors:s.default[7],layout:{left:6,top:0,width:3,height:5}}],info:"The number of P2P peer calls made by the node."},"haproxy.backend_current_sessions":{info:"The number of current sessions in the backend of the HAProxy server. A session is a connection between a client and the server. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with session management.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_sessions":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"No. of Backend Sessions per proxy",layout:{left:0,top:0,width:3,height:5}}],info:"The total number of sessions in the backend of the HAProxy server. A session is a connection between a client and the server. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with session management.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_response_time_average":{aggregationMethod:"avg",mainheads:[{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average Response Time per proxy",layout:{left:3,top:0,width:3,height:5}}],info:"The average response time of the backend of the HAProxy server. The response time is the time it takes for the server to respond to a client's request. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with slow response times.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_queue_time_average":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",title:"Average Queue Time per proxy",layout:{left:9,top:0,width:3,height:5}}],info:"The average queue time of the backend of the HAProxy server. The queue time is the time a client's request spends in the server's queue before being processed. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with long queue times.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_current_queue":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Queue Size per proxy",layout:{left:6,top:0,width:3,height:5}}],info:"The current number of requests in the queue of the backend of the HAProxy server. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with the server's ability to handle incoming requests.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_http_responses":{info:"The number of HTTP responses sent by the backend of the HAProxy server. HTTP responses are messages sent by the server in response to client requests. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with HTTP responses.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_network_io":{info:"The network IO of the backend of the HAProxy server. Network IO is the amount of data transferred over the network by the server. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with network performance.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"hdfs.heap_memory":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Heap Memory",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"The amount of heap memory used by the HDFS service. Heap memory is the memory allocated to the Java virtual machine for storing objects. Monitoring this metric can provide insight into the memory usage of the HDFS service and can help identify any issues with memory allocation.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_count_total":{info:"The total number of garbage collection (GC) events that have occurred in the HDFS service. GC events are processes that reclaim memory by removing unused objects. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_time_total":{info:"The total amount of time spent on garbage collection (GC) in the HDFS service. GC is a process that reclaims memory by removing unused objects. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_threshold":{info:"The GC threshold of the HDFS service. The GC threshold is the point at which the HDFS service triggers a GC event. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.rpc_bandwidth":{info:"The amount of bandwidth being used by HDFS Remote Procedure Calls (RPCs).",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.rpc_calls":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total RPC Calls",colors:s.default[7],layout:{left:3,top:0,width:3,height:5}}],info:"The number of HDFS Remote Procedure Calls (RPCs) being made.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.avg_queue_time":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Queue Time",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}}],info:"The average time spent in the queue for HDFS calls.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.avg_processing_time":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Processing Time",colors:s.default[0],layout:{left:9,top:0,width:3,height:5}}],info:"The average time spent processing HDFS calls.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.datanode_capacity":{info:"The capacity of the HDFS DataNode.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.datanode_bandwidth":{info:"The bandwidth used by the HDFS DataNode.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"isc_dhcps.active_leases_total":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Active Leases",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:"The total number of active leases in the ISC DHCP server. A lease is a contract that allows a client to use a particular IP address for a specified period of time. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with lease management.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"isc_dhcps.pool_active_leases":{info:"The number of active leases in a DHCP pool of the ISC DHCP server. A DHCP pool is a range of IP addresses that are available for allocation to clients. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with DHCP pool management.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"isc_dhcps.pool_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Pool Utilization",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}}],info:"The utilization of a DHCP pool in the ISC DHCP server. The utilization is the percentage of IP addresses in the pool that are currently leased to clients. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with DHCP pool utilization.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"btrfs.disk":{family:"utilization",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",selectedDimensions:["unallocated"],title:"Maximum Unallocated Physical Disk Space",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"Physical disk usage of BTRFS. The disk space reported here is the raw physical disk space assigned to the BTRFS volume (i.e. <b>before any RAID levels</b>). BTRFS uses a two-stage allocator, first allocating large regions of disk space for one type of block (data, metadata, or system), and then using a regular block allocator inside those regions. <b>unallocated</b> is the physical disk space that is not allocated yet and is available to become data, metadata or system on demand. When <b>unallocated</b> is zero, all available disk space has been allocated to a specific function. Healthy volumes should ideally have at least five percent of their total space <b>unallocated</b>. You can keep your volume healthy by running the <b>btrfs balance</b> command on it regularly (check <b>man btrfs-balance</b> for more info). Note that some of the space listed as <b>unallocated</b> may not actually be usable if the volume uses devices of different sizes.",en:{instance:{one:"device",other:"devices"}}},"btrfs.data":{family:"utilization",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (data)",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"Logical disk usage for BTRFS data. Data chunks are used to store the actual file data (file contents). The disk space reported here is the usable allocation (i.e. after any striping or replication). Healthy volumes should ideally have no more than a few GB of free space reported here persistently. Running <b>btrfs balance</b> can help here.",en:{instance:{one:"device",other:"devices"}}},"btrfs.metadata":{family:"utilization",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (metadata)",colors:s.default[7],layout:{left:6,top:0,width:3,height:5}}],info:"Logical disk usage for BTRFS metadata. Metadata chunks store most of the filesystem internal structures, as well as information like directory structure and file names. The disk space reported here is the usable allocation (i.e. after any striping or replication). Healthy volumes should ideally have no more than a few GB of free space reported here persistently. Running <b>btrfs balance</b> can help here.",en:{instance:{one:"device",other:"devices"}}},"btrfs.system":{family:"utilization",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (system)",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],info:"Logical disk usage for BTRFS system. System chunks store information about the allocation of other chunks. The disk space reported here is the usable allocation (i.e. after any striping or replication). The values reported here should be relatively small compared to Data and Metadata, and will scale with the volume size and overall space usage.",en:{instance:{one:"device",other:"devices"}}},"rabbitmq.queued_messages":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Queued Messages",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"Overall total of ready and unacknowledged queued messages. Messages that are delivered immediately are not counted here."},"rabbitmq.message_rates":{info:"Overall messaging rates including acknowledgements, deliveries, redeliveries, and publishes."},"rabbitmq.global_counts":{info:"Overall totals for channels, consumers, connections, queues and exchanges."},"rabbitmq.file_descriptors":{info:'Total number of used filed descriptors. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-file-handle-limit" target="_blank">Open File Limits</a></b> for further details.'},"rabbitmq.sockets":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Sockets Used",colors:s.default[7],layout:{left:9,top:0,width:3,height:5}}],info:'Total number of used socket descriptors. Each used socket also counts as a used file descriptor. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-file-handle-limit" target="_blank">Open File Limits</a></b> for further details.'},"rabbitmq.processes":{info:"Total number of processes running within the Erlang VM. This is not the same as the number of processes running on the host."},"rabbitmq.erlang_run_queue":{info:"Number of Erlang processes the Erlang schedulers have queued to run."},"rabbitmq.memory":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Memory Used",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:'Total amount of memory used by the RabbitMQ. This is a complex statistic that can be further analyzed in the management UI. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-ram" target="_blank">Memory</a></b> for further details.'},"rabbitmq.disk_space":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Disk Space Consumed",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}}],info:'Total amount of disk space consumed by the message store(s). See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-disk-space" target=_"blank">Disk Space Limits</a></b> for further details.'},"rabbitmq.queue_messages":{info:"Total amount of messages and their states in this queue."},"rabbitmq.queue_messages_stats":{info:"Overall messaging rates including acknowledgements, deliveries, redeliveries, and publishes."},"ntpd.sys_offset":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum System Offset",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"For hosts without any time critical services an offset of &lt; 100 ms should be acceptable even with high network latencies. For hosts with time critical services an offset of about 0.01 ms or less can be achieved by using peers with low delays and configuring optimal <b>poll exponent</b> values.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_jitter":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average System Jitter",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"The jitter statistics are exponentially-weighted RMS averages. The system jitter is defined in the NTPv4 specification; the clock jitter statistic is computed by the clock discipline module.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_frequency":{info:"The frequency offset is shown in ppm (parts per million) relative to the frequency of the system. The frequency correction needed for the clock can vary significantly between boots and also due to external influences like temperature or radiation.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_wander":{info:"The wander statistics are exponentially-weighted RMS averages.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_rootdelay":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average System Root Delay",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}}],info:"The rootdelay is the round-trip delay to the primary reference clock, similar to the delay shown by the <b>ping</b> command. A lower delay should result in a lower clock offset.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_stratum":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum System Stratum",colors:s.default[7],layout:{left:9,top:0,width:3,height:5}}],info:'The distance in "hops" to the primary reference clock',en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_tc":{info:'Time constants and poll intervals are expressed as exponents of 2. The default poll exponent of 6 corresponds to a poll interval of 64 s. For typical Internet paths, the optimum poll interval is about 64 s. For fast LANs with modern computers, a poll exponent of 4 (16 s) is appropriate. The <a href="http://doc.ntp.org/current-stable/poll.html" target="_blank">poll process</a> sends NTP packets at intervals determined by the clock discipline algorithm.',en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_precision":{colors:s.default[6],en:{instance:{one:"system",other:"systems"}}},"ntpd.peer_offset":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Peer Offset",colors:s.default[1],layout:{left:0,top:5,width:2,height:5}}],info:"The offset of the peer clock relative to the system clock in milliseconds. Smaller values here weight peers more heavily for selection after the initial synchronization of the local clock. For a system providing time service to other systems, these should be as low as possible.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_delay":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Peer Delay",colors:s.default[12],layout:{left:0,top:5,width:2,height:5}}],info:"The round-trip time (RTT) for communication with the peer, similar to the delay shown by the <b>ping</b> command. Not as critical as either the offset or jitter, but still factored into the selection algorithm (because as a general rule, lower delay means more accurate time). In most cases, it should be below 100ms.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_dispersion":{info:"This is a measure of the estimated error between the peer and the local system. Lower values here are better.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_jitter":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Peer Jitter",colors:s.default[4],layout:{left:0,top:5,width:2,height:5}}],info:"This is essentially a remote estimate of the peer's <b>system_jitter</b> value. Lower values here weight highly in favor of peer selection, and this is a good indicator of overall quality of a given time server (good servers will have values not exceeding single digit milliseconds here, with high quality stratum one servers regularly having sub-millisecond jitter).",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_xleave":{info:'This variable is used in interleaved mode (used only in NTP symmetric and broadcast modes). See <a href="http://doc.ntp.org/current-stable/xleave.html" target="_blank">NTP Interleaved Modes</a>.',en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_rootdelay":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Peer Root Delay",colors:s.default[7],layout:{left:0,top:5,width:2,height:5}}],info:"For a stratum 1 server, this is the access latency for the reference clock. For lower stratum servers, it is the sum of the <b>peer_delay</b> and <b>peer_rootdelay</b> for the system they are syncing off of. Similarly to <b>peer_delay</b>, lower values here are technically better, but have limited influence in peer selection.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_rootdisp":{info:"Is the same as <b>peer_rootdelay</b>, but measures accumulated <b>peer_dispersion</b> instead of accumulated <b>peer_delay</b>.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_hmode":{info:"The <b>peer_hmode</b> and <b>peer_pmode</b> variables give info about what mode the packets being sent to and received from a given peer are. Mode 1 is symmetric active (both the local system and the remote peer have each other declared as peers in <b>/etc/ntp.conf</b>), Mode 2 is symmetric passive (only one side has the other declared as a peer), Mode 3 is client, Mode 4 is server, and Mode 5 is broadcast (also used for multicast and manycast operation).",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_pmode":{en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_hpoll":{info:"The <b>peer_hpoll</b> and <b>peer_ppoll</b> variables are log2 representations of the polling interval in seconds.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_ppoll":{en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_precision":{en:{instance:{one:"peer",other:"peers"}}},"spigotmc.tps":{info:"The running 1, 5, and 15 minute average number of server ticks per second. An idealized server will show 20.0 for all values, but in practice this almost never happens. Typical servers should show approximately 19.98-20.0 here. Lower values indicate progressively more server-side lag (and thus that you need better hardware for your server or a lower user limit). For every 0.05 ticks below 20, redstone clocks will lag behind by approximately 0.25%. Values below approximately 19.50 may interfere with complex free-running redstone circuits and will noticeably slow down growth."},"spigotmc.users":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Users",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],info:"The number of currently connected users on the monitored Spigot server."},"boinc.tasks":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Tasks",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],info:"The total number of tasks and the number of active tasks. Active tasks are those which are either currently being processed, or are partially processed but suspended.",en:{instance:{one:"client",other:"clients"}}},"boinc.states":{mainheads:[{chartLibrary:"bars",title:"Task States",layout:{left:3,top:0,width:3,height:5}}],info:"Counts of tasks in each task state. The normal sequence of states is <b>New</b>, <b>Downloading</b>, <b>Ready to Run</b>, <b>Uploading</b>, <b>Uploaded</b>. Tasks which are marked <b>Ready to Run</b> may be actively running, or may be waiting to be scheduled. <b>Compute Errors</b> are tasks which failed for some reason during execution. <b>Aborted</b> tasks were manually cancelled, and will not be processed. <b>Failed Uploads</b> are otherwise finished tasks which failed to upload to the server, and usually indicate networking issues.",en:{instance:{one:"client",other:"clients"}}},"boinc.sched":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Task Scheduling States",layout:{left:6,top:0,width:3,height:5}}],info:"Counts of active tasks in each scheduling state. <b>Scheduled</b> tasks are the ones which will run if the system is permitted to process tasks. <b>Preempted</b> tasks are on standby, and will run if a <b>Scheduled</b> task stops running for some reason. <b>Uninitialized</b> tasks should never be present, and indicate tha the scheduler has not tried to schedule them yet.",en:{instance:{one:"client",other:"clients"}}},"boinc.process":{info:"Counts of active tasks in each process state. <b>Executing</b> tasks are running right now. <b>Suspended</b> tasks have an associated process, but are not currently running (either because the system isn't processing any tasks right now, or because they have been preempted by higher priority tasks). <b>Quit</b> tasks are exiting gracefully. <b>Aborted</b> tasks exceeded some resource limit, and are being shut down. <b>Copy Pending</b> tasks are waiting on a background file transfer to finish. <b>Uninitialized</b> tasks do not have an associated process yet.",en:{instance:{one:"client",other:"clients"}}},"w1sensor.temp":{aggregationMethod:"avg",info:"Temperature derived from 1-Wire temperature sensors.",en:{instance:{one:"sensor",other:"sensors"}}},"logind.sessions":{info:"Local and remote sessions.",en:{instance:{one:"system",other:"systems"}}},"logind.sessions_type":{mainheads:[{chartLibrary:"bars",title:"Session Types",layout:{left:0,top:0,width:3,height:5}}],info:"<p>Sessions of each session type.</p><p><b>Graphical</b> - sessions are running under one of X11, Mir, or Wayland. <b>Console</b> - sessions are usually regular text mode local logins, but depending on how the system is configured may have an associated GUI. <b>Other</b> - sessions are those that do not fall into the above categories (such as sessions for cron jobs or systemd timer units).</p>",en:{instance:{one:"system",other:"systems"}}},"logind.sessions_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Session States",layout:{left:3,top:0,width:3,height:5}}],info:"<p>Sessions of each session type.</p><p><b>Graphical</b> - sessions are running under one of X11, Mir, or Wayland. <b>Console</b> - sessions are usually regular text mode local logins, but depending on how the system is configured may have an associated GUI. <b>Other</b> - sessions are those that do not fall into the above categories (such as sessions for cron jobs or systemd timer units).</p>",en:{instance:{one:"system",other:"systems"}}},"logind.users_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"User States",layout:{left:6,top:0,width:3,height:5}}],info:"<p>Users in each user state.</p><p><b>Offline</b> - users are not logged in. <b>Closing</b> - users are in the process of logging out without lingering. <b>Online</b> - users are logged in, but have no active sessions. <b>Lingering</b> - users are not logged in, but have one or more services still running. <b>Active</b> - users are logged in, and have at least one active session.</p>",en:{instance:{one:"system",other:"systems"}}},"proxysql.pool_status":{info:"The status of the backend servers. <b>1=ONLINE</b> backend server is fully operational, <b>2=SHUNNED</b> backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold, <b>3=OFFLINE_SOFT</b> when a server is put into OFFLINE_SOFT mode, new incoming connections aren't accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend, <b>4=OFFLINE_HARD</b> when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren't accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work, <b>-1</b> Unknown status.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_net":{info:"The amount of data sent to/received from the backend (This does not include metadata (packets' headers, OK/ERR packets, fields' description, etc).",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_overall_net":{info:"The amount of data sent to/received from the all backends (This does not include metadata (packets' headers, OK/ERR packets, fields' description, etc).",en:{instance:{one:"server",other:"servers"}}},"proxysql.questions":{info:"<b>questions</b> total number of queries sent from frontends, <b>slow_queries</b> number of queries that ran for longer than the threshold in milliseconds defined in global variable <b>mysql-long_query_time</b>. ",en:{instance:{one:"server",other:"servers"}}},"proxysql.connections":{mainheads:[{groupBy:["selected"],selectedDimensions:["connected"],chartLibrary:"easypiechart",title:"Total Connected connections",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}},{groupBy:["selected"],selectedDimensions:["aborted"],chartLibrary:"easypiechart",title:"Total Aborted connections",colors:s.default[7],layout:{left:9,top:0,width:3,height:5}}],info:"<b>aborted</b> number of frontend connections aborted due to invalid credential or max_connections reached, <b>connected</b> number of frontend connections currently connected, <b>created</b> number of frontend connections created, <b>non_idle</b> number of frontend connections that are not currently idle. ",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_latency":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Max Pool Latency",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"The currently ping time in microseconds, as reported from Monitor.",en:{instance:{one:"server",other:"servers"}}},"proxysql.queries":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Queries",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"The number of queries routed towards this particular backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_used_connections":{info:"The number of connections are currently used by ProxySQL for sending queries to the backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_free_connections":{info:"The number of connections are currently free. They are kept open in order to minimize the time cost of sending a query to the backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_ok_connections":{info:"The number of connections were established successfully.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_error_connections":{info:"The number of connections weren't established successfully.",en:{instance:{one:"server",other:"servers"}}},"proxysql.commands_count":{info:"The total number of commands of that type executed",en:{instance:{one:"server",other:"servers"}}},"proxysql.commands_duration":{info:"The total time spent executing commands of that type, in ms",en:{instance:{one:"server",other:"servers"}}},"sensors.temperature":{groupBy:["node"],aggregationMethod:"max",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"The temperature of the system as reported by the sensors. High values can indicate cooling issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.fan":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Fan Speed",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"The speed of the system fans as reported by the sensors. Low values can indicate cooling issues while high values can indicate excessive noise.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.voltage":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"easypiechart",title:"Minimum Voltage",colors:s.default[7],layout:{left:6,top:0,width:3,height:5}}],info:"The voltage of the system as reported by the sensors. Low values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.current":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Current",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],info:"The current of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.power":{groupBy:["node"],aggregationMethod:"avg",info:"The power of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.energy":{groupBy:["node"],aggregationMethod:"avg",info:"The energy of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.humidity":{groupBy:["node"],aggregationMethod:"max",info:"The humidity of the system as reported by the sensors. High values can indicate cooling issues.",en:{instance:{one:"sensor",other:"sensors"}}},"tomcat.accesses":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"The number of requests made to the Tomcat server. It is important to monitor this metric to ensure that the server is not overloaded.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.bandwidth":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"The amount of network bandwidth used by the Tomcat server. It is important to monitor this metric to ensure that the server is not overloaded.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.threads":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Threads",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}}],info:"The number of threads running in the Tomcat application. It is important to monitor this metric to ensure that the application is running efficiently.",en:{instance:{one:"web server",other:"web servers"}}},"tor.traffic":{info:"This metric tracks Tor traffic statistics collected form the Tor control port. It is important to monitor this metric to ensure that the Tor network is not overloaded.",en:{instance:{one:"server",other:"servers"}}},"powersupply.capacity":{family:"charge",aggregationMethod:"avg",info:"The current battery charge.",en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.charge":{family:"charge",info:'<p>The battery charge in Amp-hours.</p><p><b>now</b> - actual charge value. <b>full</b>, <b>empty</b> - last remembered value of charge when battery became full/empty. It also could mean "value of charge when battery considered full/empty at given conditions (temperature, age)". I.e. these attributes represents real thresholds, not design values. <b>full_design</b>, <b>empty_design</b> - design charge values, when battery considered full/empty.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.energy":{family:"charge",info:'<p>The battery charge in Watt-hours.</p><p><b>now</b> - actual charge value. <b>full</b>, <b>empty</b> - last remembered value of charge when battery became full/empty. It also could mean "value of charge when battery considered full/empty at given conditions (temperature, age)". I.e. these attributes represents real thresholds, not design values. <b>full_design</b>, <b>empty_design</b> - design charge values, when battery considered full/empty.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.voltage":{family:"voltage",info:'<p>The power supply voltage.</p><p><b>now</b> - current voltage. <b>max</b>, <b>min</b> - voltage values that hardware could only guess (measure and retain) the thresholds of a given power supply. <b>max_design</b>, <b>min_design</b> - design values for maximal and minimal power supply voltages. Maximal/minimal means values of voltages when battery considered "full"/"empty" at normal conditions.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"vsphere.host_cpu_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["host"],chartLibrary:"bars",title:"Top Hosts by CPU Usage",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],info:"Summary CPU usage statistics across all CPUs/cores.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_mem_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["host"],chartLibrary:"bars",title:"Top Hosts by Memory Usage",dimensionsSort:"valueDesc",colors:s.default[1],layout:{left:3,top:0,width:3,height:5}}],info:"Percentage of used machine memory: <b>consumed</b> / <b>machine-memory-size</b>.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_mem_usage":{aggregationMethod:"sum",info:'<b>granted</b> is amount of machine memory that is mapped for a host, it equals sum of all granted metrics for all powered-on virtual machines, plus machine memory for vSphere services on the host. <b>consumed</b> is amount of machine memory used on the host, it includes memory used by the Service Console, the VMkernel, vSphere services, plus the total consumed metrics for all running virtual machines. <b>consumed</b> = <b>total host memory</b> - <b>free host memory</b>.<b>active</b> is sum of all active metrics for all powered-on virtual machines plus vSphere services (such as COS, vpxa) on the host.<b>shared</b> is sum of all shared metrics for all powered-on virtual machines, plus amount for vSphere services on the host. <b>sharedcommon</b> is amount of machine memory that is shared by all powered-on virtual machines and vSphere services on the host. <b>shared</b> - <b>sharedcommon</b> = machine memory (host memory) savings (KB). For details see <a href="https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-BFDC988B-F53D-4E97-9793-A002445AFAE1.html" target="_blank">Measuring and Differentiating Types of Memory Usage</a> and <a href="https://vdc-repo.vmware.com/vmwb-repository/dcr-public/fe08899f-1eec-4d8d-b3bc-a6664c168c2c/7fdf97a1-4c0d-4be0-9d43-2ceebbc174d9/doc/memory_counters.html" target="_blank">Memory Counters</a> articles.',en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_mem_swap_io":{aggregationMethod:"sum",info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>in</b> is sum of <b>swapinRate</b> values for all powered-on virtual machines on the host.<b>swapinRate</b> is rate at which VMKernel reads data into machine memory from the swap file. <b>out</b> is sum of <b>swapoutRate</b> values for all powered-on virtual machines on the host.<b>swapoutRate</b> is rate at which VMkernel writes to the virtual machine\u2019s swap file from machine memory.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_disk_io":{aggregationMethod:"sum",info:"Summary read/write statistics across all disks.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_disk_max_latency":{aggregationMethod:"max",info:"<b>latency</b> is highest latency value across all disks.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_traffic":{aggregationMethod:"sum",info:"Summary receive/transmit statistics across all network interfaces.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_packets":{aggregationMethod:"sum",info:"Summary receive/transmit statistics across all network interfaces.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_errors":{aggregationMethod:"sum",info:"Summary receive/transmit statistics across all network interfaces.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_drops":{aggregationMethod:"sum",info:"Summary receive/transmit statistics across all network interfaces.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_overall_status":{aggregationMethod:"sum",info:"<b>green</b> is OK, <b>yellow</b> is might have a problem, <b>red</b> is definitely has a problem, <b>gray</b> is unknown.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_system_uptime":{aggregationMethod:"min",en:{instance:{one:"host",other:"hosts"}}},"vsphere.vm_cpu_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["vm"],chartLibrary:"bars",title:"Top VMs by CPU Usage",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}}],info:"Summary CPU usage statistics across all CPUs/cores.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["vm"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top VMs by Memory Usage",colors:s.default[4],layout:{left:9,top:0,width:3,height:5}}],info:"Percentage of used virtual machine \u201cphysical\u201d memory: <b>active</b> / <b>virtual machine configured size</b>.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_usage":{aggregationMethod:"sum",info:'<b>granted</b> is amount of guest \u201cphysical\u201d memory that is mapped to machine memory, it includes <b>shared</b> memory amount. <b>consumed</b> is amount of guest \u201cphysical\u201d memory consumed by the virtual machine for guest memory, <b>consumed</b> = <b>granted</b> - <b>memory saved due to memory sharing</b>. <b>active</b> is amount of memory that is actively used, as estimated by VMkernel based on recently touched memory pages. <b>shared</b> is amount of guest \u201cphysical\u201d memory shared with other virtual machines (through the VMkernel\u2019s transparent page-sharing mechanism, a RAM de-duplication technique). For details see <a href="https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-BFDC988B-F53D-4E97-9793-A002445AFAE1.html" target="_blank">Measuring and Differentiating Types of Memory Usage</a> and <a href="https://vdc-repo.vmware.com/vmwb-repository/dcr-public/fe08899f-1eec-4d8d-b3bc-a6664c168c2c/7fdf97a1-4c0d-4be0-9d43-2ceebbc174d9/doc/memory_counters.html" target="_blank">Memory Counters</a> articles.',en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_swap_io":{aggregationMethod:"sum",info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>in</b> is rate at which VMKernel reads data into machine memory from the swap file. <b>out</b> is rate at which VMkernel writes to the virtual machine\u2019s swap file from machine memory.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_swap_usage":{aggregationMethod:"sum",info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>swapped</b> is amount of guest physical memory swapped out to the virtual machine's swap file by the VMkernel. Swapped memory stays on disk until the virtual machine needs it.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_disk_io":{aggregationMethod:"sum",info:"Summary read/write statistics across all disks.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_disk_max_latency":{aggregationMethod:"max",info:"<b>latency</b> is highest latency value across all disks.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_net_traffic":{aggregationMethod:"sum",info:"Summary receive/transmit statistics across all network interfaces.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_net_packets":{aggregationMethod:"sum",info:"Summary receive/transmit statistics across all network interfaces.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_net_drops":{aggregationMethod:"sum",info:"Summary receive/transmit statistics across all network interfaces.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_overall_status":{aggregationMethod:"sum",info:"<b>green</b> is OK, <b>yellow</b> is might have a problem, <b>red</b> is definitely has a problem, <b>gray</b> is unknown.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_system_uptime":{aggregationMethod:"min",en:{instance:{one:"vm",other:"vms"}}},"vcsa.system_health_status":{info:"<b>green</b>: all components are healthy; <b>yellow</b>: one or more components might become overloaded soon; <b>orange</b>: one or more components in the appliance might be degraded; <b>red</b>: one or more components might be in an unusable status and the appliance might become unresponsive soon; <b>gray</b>: no health data is available; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.applmgmt_health_status":{info:"<b>green</b>: the component is healthy; <b>yellow</b>: the component is healthy, but may have some problems; <b>orange</b>: the component is degraded, and may have serious problems; <b>red</b>: the component is unavailable, or will stop functioning soon; <b>gray</b>: no health data is available; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.load_health_status":{info:"<b>green</b>: the component is healthy; <b>yellow</b>: the component is healthy, but may have some problems; <b>orange</b>: the component is degraded, and may have serious problems; <b>red</b>: the component is unavailable, or will stop functioning soon; <b>gray</b>: no health data is available; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.mem_health_status":{info:"<b>green</b>: the component is healthy; <b>yellow</b>: the component is healthy, but may have some problems; <b>orange</b>: the component is degraded, and may have serious problems; <b>red</b>: the component is unavailable, or will stop functioning soon; <b>gray</b>: no health data is available; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.swap_health_status":{info:"<b>green</b>: the component is healthy; <b>yellow</b>: the component is healthy, but may have some problems; <b>orange</b>: the component is degraded, and may have serious problems; <b>red</b>: the component is unavailable, or will stop functioning soon; <b>gray</b>: no health data is available; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.database_storage_health_status":{info:"<b>green</b>: the component is healthy; <b>yellow</b>: the component is healthy, but may have some problems; <b>orange</b>: the component is degraded, and may have serious problems; <b>red</b>: the component is unavailable, or will stop functioning soon; <b>gray</b>: no health data is available; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.storage_health_status":{info:"<b>green</b>: the component is healthy; <b>yellow</b>: the component is healthy, but may have some problems; <b>orange</b>: the component is degraded, and may have serious problems; <b>red</b>: the component is unavailable, or will stop functioning soon; <b>gray</b>: no health data is available; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.software_packages_health_status":{info:"<b>softwarepackages</b> represents information on available software updates available in the remote vSphere Update Manager repository.<b>green</b>: no updates available; <b>orange</b>: non-security updates are available; <b>red</b>: security updates are available; <b>gray</b>: an error retrieving information on software updates; <b>unknown</b>: collector failed to decode the status.",en:{instance:{one:"server appliance",other:"server appliances"}}},"zookeeper.server_state":{info:"<b>0</b>: unknown, <b>1</b>: leader, <b>2</b>: follower, <b>3</b>: observer, <b>4</b>: standalone.",en:{instance:{one:"server",other:"servers"}}},"squidlog.requests":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[1],layout:{left:0,top:0,width:3,height:5}}],info:"Total number of requests (log lines read). It includes <b>unmatched</b>."},"squidlog.excluded_requests":{info:'<b>unmatched</b> counts the lines in the log file that are not matched by the plugin parser (<a href="https://github.com/netdata/netdata/issues/new?title=squidlog%20reports%20unmatched%20lines&body=squidlog%20plugin%20reports%20unmatched%20lines.%0A%0AThis%20is%20my%20log:%0A%0A%60%60%60txt%0A%0Aplease%20paste%20your%20squid%20server%20log%20here%0A%0A%60%60%60" target="_blank">let us know</a> if you have any unmatched).'},"squidlog.type_requests":{info:"Requests by response type:<br><ul> <li><b>success</b> includes 1xx, 2xx, 0, 304, 401.</li> <li><b>error</b> includes 5xx and 6xx.</li> <li><b>redirect</b> includes 3xx except 304.</li> <li><b>bad</b> includes 4xx except 401.</li> </ul>"},"squidlog.http_status_code_class_responses":{info:'The HTTP response status code classes. According to <a href="https://tools.ietf.org/html/rfc7231" target="_blank">rfc7231</a>:<br> <li><b>1xx</b> is informational responses.</li> <li><b>2xx</b> is successful responses.</li> <li><b>3xx</b> is redirects.</li> <li><b>4xx</b> is bad requests.</li> <li><b>5xx</b> is internal server errors.</li> </ul>Squid also uses <b>0</b> for a result code being unavailable, and <b>6xx</b> to signal an invalid header, a proxy error.'},"squidlog.http_status_code_responses":{info:"Number of responses for each http response status code individually."},"squidlog.uniq_clients":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Unique Clients",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"Unique clients (requesting instances), within each data collection iteration. If data collection is <b>per second</b>, this chart shows <b>unique clients per second</b>."},"squidlog.bandwidth":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[7],layout:{left:6,top:0,width:3,height:5}}],info:"The size is the amount of data delivered to the clients. Mind that this does not constitute the net object size, as headers are also counted. Also, failed requests may deliver an error page, the size of which is also logged here."},"squidlog.response_time":{aggregationMethod:"avg",info:"The elapsed time considers how many milliseconds the transaction busied the cache. It differs in interpretation between TCP and UDP:<ul> <li><b>TCP</b> this is basically the time from having received the request to when Squid finishes sending the last byte of the response.</li> <li><b>UDP</b> this is the time between scheduling a reply and actually sending it.</li> </ul>Please note that <b>the entries are logged after the reply finished being sent</b>, not during the lifetime of the transaction."},"squidlog.cache_result_code_requests":{info:'The Squid result code is composed of several tags (separated by underscore characters) which describe the response sent to the client. Check the <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Squid_result_codes" target="_blank">squid documentation</a> about them.'},"squidlog.cache_result_code_transport_tag_requests":{info:"These tags are always present and describe delivery method.<br><ul> <li><b>TCP</b> requests on the HTTP port (usually 3128).</li> <li><b>UDP</b> requests on the ICP port (usually 3130) or HTCP port (usually 4128).</li> <li><b>NONE</b> Squid delivered an unusual response or no response at all. Seen with cachemgr requests and errors, usually when the transaction fails before being classified into one of the above outcomes. Also seen with responses to CONNECT requests.</li> </ul>"},"squidlog.cache_result_code_handling_tag_requests":{info:'These tags are optional and describe why the particular handling was performed or where the request came from.<br><ul> <li><b>CF</b> at least one request in this transaction was collapsed. See <a href="http://www.squid-cache.org/Doc/config/collapsed_forwarding/" target="_blank">collapsed_forwarding</a> for more details about request collapsing.</li> <li><b>CLIENT</b> usually seen with client issued a "no-cache", or analogous cache control command along with the request. Thus, the cache has to validate the object.</li> <li><b>IMS</b> the client sent a revalidation (conditional) request.</li> <li><b>ASYNC</b> the request was generated internally by Squid. Usually this is background fetches for cache information exchanges, background revalidation from <i>stale-while-revalidate</i> cache controls, or ESI sub-objects being loaded.</li> <li><b>SWAPFAIL</b> the object was believed to be in the cache, but could not be accessed. A new copy was requested from the server.</li> <li><b>REFRESH</b> a revalidation (conditional) request was sent to the server.</li> <li><b>SHARED</b> this request was combined with an existing transaction by collapsed forwarding.</li> <li><b>REPLY</b> the HTTP reply from server or peer. Usually seen on <b>DENIED</b> due to <a href="http://www.squid-cache.org/Doc/config/http_reply_access/" target="_blank">http_reply_access</a> ACLs preventing delivery of servers response object to the client.</li> </ul>'},"squidlog.cache_code_object_tag_requests":{info:'These tags are optional and describe what type of object was produced.<br><ul> <li><b>NEGATIVE</b> only seen on HIT responses, indicating the response was a cached error response. e.g. <b>404 not found</b>.</li> <li><b>STALE</b> the object was cached and served stale. This is usually caused by <i>stale-while-revalidate</i> or <i>stale-if-error</i> cache controls.</li> <li><b>OFFLINE</b> the requested object was retrieved from the cache during <a href="http://www.squid-cache.org/Doc/config/offline_mode/" target="_blank">offline_mode</a>. The offline mode never validates any object.</li> <li><b>INVALID</b> an invalid request was received. An error response was delivered indicating what the problem was.</li> <li><b>FAILED</b> only seen on <b>REFRESH</b> to indicate the revalidation request failed. The response object may be the server provided network error or the stale object which was being revalidated depending on stale-if-error cache control.</li> <li><b>MODIFIED</b> only seen on <b>REFRESH</b> responses to indicate revalidation produced a new modified object.</li> <li><b>UNMODIFIED</b> only seen on <b>REFRESH</b> responses to indicate revalidation produced a 304 (Not Modified) status. The client gets either a full 200 (OK), a 304 (Not Modified), or (in theory) another response, depending on the client request and other details.</li> <li><b>REDIRECT</b> Squid generated an HTTP redirect response to this request.</li> </ul>'},"squidlog.cache_code_load_source_tag_requests":{info:"These tags are optional and describe whether the response was loaded from cache, network, or otherwise.<br><ul> <li><b>HIT</b> the response object delivered was the local cache object.</li> <li><b>MEM</b> the response object came from memory cache, avoiding disk accesses. Only seen on HIT responses.</li> <li><b>MISS</b> the response object delivered was the network response object.</li> <li><b>DENIED</b> the request was denied by access controls.</li> <li><b>NOFETCH</b> an ICP specific type, indicating service is alive, but not to be used for this request.</li> <li><b>TUNNEL</b> a binary tunnel was established for this transaction.</li> </ul>"},"squidlog.cache_code_error_tag_requests":{info:"These tags are optional and describe some error conditions which occurred during response delivery.<br><ul> <li><b>ABORTED</b> the response was not completed due to the connection being aborted (usually by the client).</li> <li><b>TIMEOUT</b> the response was not completed due to a connection timeout.</li> <li><b>IGNORED</b> while refreshing a previously cached response A, Squid got a response B that was older than A (as determined by the Date header field). Squid ignored response B (and attempted to use A instead).</li> </ul>"},"squidlog.http_method_requests":{info:'The request method to obtain an object. Please refer to section <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Request_methods" target="_blank">request-methods</a> for available methods and their description.'},"squidlog.hier_code_requests":{info:'A code that explains how the request was handled, e.g. by forwarding it to a peer, or going straight to the source. Any hierarchy tag may be prefixed with <b>TIMEOUT_</b>, if the timeout occurs waiting for all ICP replies to return from the neighbours. The timeout is either dynamic, if the <a href="http://www.squid-cache.org/Doc/config/icp_query_timeout/" target="_blank">icp_query_timeout</a> was not set, or the time configured there has run up. Refer to <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Hierarchy_Codes" target="_blank">Hierarchy Codes</a> for details on hierarchy codes.'},"squidlog.server_address_forwarded_requests":{info:"The IP address or hostname where the request (if a miss) was forwarded. For requests sent to origin servers, this is the origin server's IP address. For requests sent to a neighbor cache, this is the neighbor's hostname. NOTE: older versions of Squid would put the origin server hostname here."},"squidlog.mime_type_requests":{info:"The content type of the object as seen in the HTTP reply header. Please note that ICP exchanges usually don't have any content type."},"cockroachdb.process_cpu_time_combined_percentage":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average CPU Usage",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:"Current combined cpu utilization, calculated as <b>(user+system)/num of logical cpus</b>."},"cockroachdb.host_disk_bandwidth":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Disk Bandwidth",colors:s.default[1],layout:{left:3,top:0,width:3,height:5}}],info:"Summary disk bandwidth statistics across all system host disks."},"cockroachdb.host_disk_operations":{info:"Summary disk operations statistics across all system host disks."},"cockroachdb.host_disk_iops_in_progress":{info:"Summary disk iops in progress statistics across all system host disks."},"cockroachdb.host_network_bandwidth":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Network Bandwidth",colors:s.default[4],layout:{left:6,top:0,width:3,height:5}}],info:"Summary network bandwidth statistics across all system host network interfaces."},"cockroachdb.host_network_packets":{info:"Summary network packets statistics across all system host network interfaces."},"cockroachdb.live_nodes":{info:"Will be <b>0</b> if this node is not itself live."},"cockroachdb.total_storage_capacity":{info:"Entire disk capacity. It includes non-CR data, CR data, and empty space."},"cockroachdb.storage_capacity_usability":{info:"<b>usable</b> is sum of empty space and CR data, <b>unusable</b> is space used by non-CR data."},"cockroachdb.storage_usable_capacity":{info:"Breakdown of <b>usable</b> space."},"cockroachdb.storage_used_capacity_percentage":{aggregationMethod:"avg",info:"<b>total</b> is % of <b>total</b> space used, <b>usable</b> is % of <b>usable</b> space used."},"cockroachdb.sql_bandwidth":{info:"The total amount of SQL client network traffic."},"cockroachdb.sql_errors":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total SQL Errors",colors:s.default[7],layout:{left:9,top:0,width:3,height:5}}],info:"<b>statement</b> is statements resulting in a planning or runtime error, <b>transaction</b> is SQL transactions abort errors."},"cockroachdb.sql_started_ddl_statements":{info:"The amount of <b>started</b> DDL (Data Definition Language) statements. This type means database schema changes. It includes <b>CREATE</b>, <b>ALTER</b>, <b>DROP</b>, <b>RENAME</b>, <b>TRUNCATE</b> and <b>COMMENT</b> statements."},"cockroachdb.sql_executed_ddl_statements":{info:"The amount of <b>executed</b> DDL (Data Definition Language) statements. This type means database schema changes. It includes <b>CREATE</b>, <b>ALTER</b>, <b>DROP</b>, <b>RENAME</b>, <b>TRUNCATE</b> and <b>COMMENT</b> statements."},"cockroachdb.sql_started_dml_statements":{info:"The amount of <b>started</b> DML (Data Manipulation Language) statements."},"cockroachdb.sql_executed_dml_statements":{info:"The amount of <b>executed</b> DML (Data Manipulation Language) statements."},"cockroachdb.sql_started_tcl_statements":{info:"The amount of <b>started</b> TCL (Transaction Control Language) statements."},"cockroachdb.sql_executed_tcl_statements":{info:"The amount of <b>executed</b> TCL (Transaction Control Language) statements."},"cockroachdb.live_bytes":{info:"The amount of live data used by both applications and the CockroachDB system."},"cockroachdb.kv_transactions":{info:"KV transactions breakdown:<br><ul> <li><b>committed</b> committed KV transactions (including 1PC).</li> <li><b>fast-path_committed</b> KV transaction on-phase commit attempts.</li> <li><b>aborted</b> aborted KV transactions.</li> </ul>"},"cockroachdb.kv_transaction_restarts":{info:'KV transactions restarts breakdown:<br><ul> <li><b>write too old</b> restarts due to a concurrent writer committing first.</li> <li><b>write too old (multiple)</b> restarts due to multiple concurrent writers committing first.</li> <li><b>forwarded timestamp (iso=serializable)</b> restarts due to a forwarded commit timestamp and isolation=SERIALIZABLE".</li> <li><b>possible replay</b> restarts due to possible replays of command batches at the storage layer.</li> <li><b>async consensus failure</b> restarts due to async consensus writes that failed to leave intents.</li> <li><b>read within uncertainty interval</b> restarts due to reading a new value within the uncertainty interval.</li> <li><b>aborted</b> restarts due to an abort by a concurrent transaction (usually due to deadlock).</li> <li><b>push failure</b> restarts due to a transaction push failure.</li> <li><b>unknown</b> restarts due to a unknown reasons.</li> </ul>'},"cockroachdb.ranges":{info:'CockroachDB stores all user data (tables, indexes, etc.) and almost all system data in a giant sorted map of key-value pairs. This keyspace is divided into "ranges", contiguous chunks of the keyspace, so that every key can always be found in a single range.'},"cockroachdb.ranges_replication_problem":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Replication Problems",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],info:"Ranges with not optimal number of replicas:<br><ul> <li><b>unavailable</b> ranges with fewer live replicas than needed for quorum.</li> <li><b>under replicated</b> ranges with fewer live replicas than the replication target.</li> <li><b>over replicated</b> ranges with more live replicas than the replication target.</li> </ul>"},"cockroachdb.replicas":{info:"CockroachDB replicates each range (3 times by default) and stores each replica on a different node."},"cockroachdb.replicas_leaders":{info:"For each range, one of the replicas is the <b>leader</b> for write requests, <b>not leaseholders</b> is the number of Raft leaders whose range lease is held by another store."},"cockroachdb.replicas_leaseholders":{info:'For each range, one of the replicas holds the "range lease". This replica, referred to as the <b>leaseholder</b>, is the one that receives and coordinates all read and write requests for the range.'},"cockroachdb.queue_processing_failures":{info:"Failed replicas breakdown by queue:<br><ul> <li><b>gc</b> replicas which failed processing in the GC queue.</li> <li><b>replica gc</b> replicas which failed processing in the replica GC queue.</li> <li><b>replication</b> replicas which failed processing in the replicate queue.</li> <li><b>split</b> replicas which failed processing in the split queue.</li> <li><b>consistency</b> replicas which failed processing in the consistency checker queue.</li> <li><b>raft log</b> replicas which failed processing in the Raft log queue.</li> <li><b>raft snapshot</b> replicas which failed processing in the Raft repair queue.</li> <li><b>time series maintenance</b> replicas which failed processing in the time series maintenance queue.</li> </ul>"},"cockroachdb.rebalancing_queries":{info:"Number of kv-level requests received per second by the store, averaged over a large time period as used in rebalancing decisions."},"cockroachdb.rebalancing_writes":{info:"Number of keys written (i.e. applied by raft) per second to the store, averaged over a large time period as used in rebalancing decisions."},"cockroachdb.slow_requests":{info:"Requests that have been stuck for a long time."},"cockroachdb.timeseries_samples":{info:"The amount of metric samples written to disk."},"cockroachdb.timeseries_write_errors":{info:"The amount of errors encountered while attempting to write metrics to disk."},"cockroachdb.timeseries_write_bytes":{info:"Size of metric samples written to disk."},"cockroachdb.process_cpu_time_percentage":{aggregationMethod:"avg",info:"The percentage of CPU time used by the CockroachDB process. High usage may indicate the need for additional resources or optimization."},"cockroachdb.process_memory":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Memory Usage",colors:s.default[1],layout:{left:0,top:5,width:3,height:5}}],info:"The amount of memory used by the CockroachDB process. High memory usage may indicate the need for additional resources or optimization."},"cockroachdb.process_file_descriptors":{info:"The number of file descriptors used by the CockroachDB process. High usage may indicate the need for additional resources or optimization."},"cockroachdb.process_uptime":{aggregationMethod:"min",info:"The amount of time that the CockroachDB process has been running. This can be useful for understanding the overall health and stability of the system."},"cockroachdb.node_liveness_heartbeats":{info:"The number of liveness heartbeats sent by the CockroachDB node. This can be useful for understanding the overall health and stability of the cluster."},"cockroachdb.sql_statements_total":{info:"The total number of SQL statements executed in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.sql_active_distributed_queries":{info:"The number of active distributed SQL queries in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.sql_distributed_flows":{info:"'The number of active distributed flows in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.rocksdb_table_operations":{info:"The number of RocksDB table operations in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.rocksdb_cache_hit_rate":{aggregationMethod:"avg",info:"The RocksDB cache hit rate in the CockroachDB cluster. This can be useful for understanding the efficiency of the cache and identifying potential performance issues."},"cockroachdb.code_heap_memory_usage":{info:"The amount of memory used by the code heap in the CockroachDB cluster. High usage may indicate the need for additional resources or optimization."},"cockroachdb.goroutines":{info:"The number of goroutines in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.gc_count":{info:"The number of garbage collection cycles in the CockroachDB cluster. This can be useful for understanding overall system performance and potential bottlenecks."},"cockroachdb.gc_pause":{info:"The total time spent in garbage collection pauses in the CockroachDB cluster. High values may indicate the need for optimization or additional resources."},"cockroachdb.cgo_calls":{info:"The number of CGo calls in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"perf.instructions_per_cycle":{info:'An IPC < 1.0 likely means memory bound, and an IPC > 1.0 likely means instruction bound. For more details about the metric take a look at this <a href="https://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html" target="_blank">blog post</a>.'},"filesystem.vfs_deleted_objects":{title:"VFS remove",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_unlink">application</a> and <a href="#ebpf_services_vfs_unlink">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io":{title:"VFS IO",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write">application</a> and <a href="#ebpf_services_vfs_write">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io_bytes":{title:"VFS bytes written",info:'Total of bytes read or written with success using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write_bytes">application</a> and <a href="#ebpf_services_vfs_write_bytes">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io_error":{title:"VFS IO error",info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write_error">application</a> and <a href="#ebpf_services_vfs_write_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_fsync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. This chart may not show all file system events if it uses other functions to sync data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_sync">application</a> and <a href="#ebpf_services_vfs_sync">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_fsync_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function.</a>. This chart may not show all file system events if it uses other functions to sync data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_sync_error">application</a> and <a href="#ebpf_services_vfs_sync_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_open":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. This chart may not show all file system events if it uses other functions to open files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_open">application</a> and <a href="#ebpf_services_vfs_open">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_open_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. This chart may not show all file system events if it uses other functions to open files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_open_error">application</a> and <a href="#ebpf_services_vfs_open_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_create":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. This chart may not show all file system events if it uses other functions to create files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_create">application</a> and <a href="#ebpf_services_vfs_create">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_create_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. This chart may not show all file system events if it uses other functions to create files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_craete_error">application</a> and <a href="#ebpf_services_vfs_create_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring ext4 reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+f+'to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring ext4 writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring ext4 opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring ext4 syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring xfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring xfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring xfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring xfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring nfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring nfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring nfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_attribute_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each get attribute request monitoring nfs attribute <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring zfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring zfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring zfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring zfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring btrfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring btrfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring btrfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring btrfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"mount_points.call":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Syscalls to mount and unmount",layout:{left:6,top:0,width:3,height:5}}],info:'Monitor calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#mount-points" target="_blank">syscalls</a> that are responsible for attaching (<b>mount(2)</b>) or removing filesystems (<b>umount(2)</b>). This chart has relationship with <a href="#menu_filesystem">File systems</a>.'+f,en:{instance:{one:"system",other:"systems"}}},"mount_points.error":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Errors to mount and unmount",colors:s.default[1],layout:{left:9,top:0,width:3,height:5}}],info:'Monitor errors in calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#mount-points" target="_blank">syscalls</a> that are responsible for attaching (<b>mount(2)</b>) or removing filesystems (<b>umount(2)</b>). This chart has relationship with <a href="#menu_filesystem">File systems</a>.'+f,en:{instance:{one:"system",other:"systems"}}},"filesystem.file_descriptor":{info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open and closing files</a>. Netdata shows file access per <a href="#ebpf_apps_file_open">application</a> and <a href="#ebpf_services_file_open">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File systems</a>',en:{instance:{one:"system",other:"systems"}}},"filesystem.file_error":{info:'Number of failed calls to the kernel internal function responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open and closing files</a>. Netdata shows file error per <a href="#ebpf_apps_file_open_error">application</a> and <a href="#ebpf_services_file_open_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+f+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"netdata.aclk_status":{valueRange:[0,1],info:"This chart shows if ACLK was online during entirety of the sample duration.",en:{instance:{one:"agent",other:"agents"}}},"netdata.aclk_query_per_second":{info:"This chart shows how many queries were added for ACLK_query thread to process and how many it was actually able to process.",en:{instance:{one:"agent",other:"agents"}}},"netdata.aclk_latency_mqtt":{aggregationMethod:"avg",info:"Measures latency between MQTT publish of the message and it's PUB_ACK being received",en:{instance:{one:"agent",other:"agents"}}},"vernemq.sockets":{mainheads:[{groupBy:["selected"],selectedDimensions:["open_sockets"],chartLibrary:"gauge",title:"Total Connected Clients",desiredUnits:"clients"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_processes":{mainheads:[{groupBy:["selected"],selectedDimensions:["queue_processes"],chartLibrary:"gauge",title:"Total Queues Processes",desiredUnits:"processes"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_messages":{mainheads:[{groupBy:["selected"],selectedDimensions:["queue_message_in"],chartLibrary:"easypiechart",title:"Total MQTT Receive Rate",desiredUnits:"messages/s"},{groupBy:["selected"],selectedDimensions:["queue_message_out"],chartLibrary:"easypiechart",title:"Total MQTT Send Rate",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.average_scheduler_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",selectedDimensions:["system_utilization"],chartLibrary:"gauge",title:"Maximum Scheduler Utilization",colors:s.default[5],desiredUnits:"percentage"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_unsubscribe":{info:"This metric measures the number of MQTT unsubscribe attempts. Monitoring this metric can help identify any potential issues related to unsubscription.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish":{info:"This metric measures the number of MQTT publish attempts. Monitoring this metric can help identify any potential issues related to publishing.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish_errors":{info:"This metric measures the number of errors encountered during MQTT publish attempts. Monitoring this metric can help identify any potential issues related to publishing.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish_auth_errors":{info:"This metric measures the number of authentication errors encountered during MQTT publish attempts. Monitoring this metric can help identify any potential authentication issues.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback":{info:"This metric measures the number of MQTT puback requests. A PUBACK message is the response to a PUBLISH message with QoS level 1. A PUBACK message is sent by a server in response to a PUBLISH message from a publishing client, and by a subscriber in response to a PUBLISH message from the server. Monitoring this metric can help identify any potential issues related to acknowledgements.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_ping":{info:"This metric measures the number of MQTT ping requests. Monitoring this metric can help identify any potential issues related to communication.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.messages_rate":{mainheads:[{groupBy:["selected"],selectedDimensions:["pulsar_rate_in"],chartLibrary:"easypiechart",title:"Total Published",desiredUnits:"messages/s"},{groupBy:["selected"],selectedDimensions:["pulsar_rate_out"],chartLibrary:"easypiechart",title:"Total Dispatched",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_msg_rate_redeliver":{mainheads:[{groupBy:["selected"],selectedDimensions:["pulsar_subscription_msg_rate_redeliver"],chartLibrary:"gauge",title:"Total Redelivered",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_blocked_on_unacked_messages":{mainheads:[{groupBy:["selected"],selectedDimensions:["pulsar_subscription_blocked_on_unacked_messages"],chartLibrary:"gauge",title:"Total Blocked On Unacked",desiredUnits:"subscriptions"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.msg_backlog":{mainheads:[{groupBy:["selected"],selectedDimensions:["pulsar_msg_backlog"],chartLibrary:"gauge",title:"Total Messages Backlog",desiredUnits:"messages"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_messages_rate":{heads:[{groupBy:["selected"],selectedDimensions:["publish"],chartLibrary:"easypiechart",title:"Total Published",desiredUnits:"messages/s"},{groupBy:["selected"],selectedDimensions:["dispatch"],chartLibrary:"easypiechart",title:"Total Dispatched",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_subscription_msg_rate_redeliver":{mainheads:[{groupBy:["selected"],selectedDimensions:["redelivered"],chartLibrary:"gauge",title:"Total Redelivered",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_subscription_blocked_on_unacked_messages":{mainheads:[{groupBy:["selected"],selectedDimensions:["blocked"],chartLibrary:"gauge",title:"Total Blocked On Unacked",desiredUnits:"subscriptions"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_msg_backlog":{mainheads:[{groupBy:["selected"],selectedDimensions:["backlog"],chartLibrary:"gauge",title:"Total Messages Backlog",desiredUnits:"messages"}],en:{instance:{one:"broker",other:"brokers"}}},"amdgpu.gpu_utilization":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_utilization":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_clk_frequency":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_clk_frequency":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vram_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vram_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vis_vram_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vis_vram_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_gtt_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_gtt_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.fan_speed":{heads:[{groupBy:["selected"],aggregationMethod:"max",selectedDimensions:["speed"],chartLibrary:"easypiechart",title:"Maximum Fan Speed",desiredUnits:"percentage"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.temperature":{heads:[{groupBy:["selected"],aggregationMethod:"max",selectedDimensions:["temp"],chartLibrary:"easypiechart",title:"Maximum Temperature",desiredUnits:"celsius"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.memory_allocated":{heads:[{groupBy:["selected"],selectedDimensions:["used"],chartLibrary:"easypiechart",title:"Total Used Memory",desiredUnits:"MiB"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.power":{aggregationMethod:"avg",heads:[{groupBy:["selected"],selectedDimensions:["power"],chartLibrary:"easypiechart",title:"Total Power Utilization",colors:s.default[5],desiredUnits:"watts"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_pcie_bandwidth_usage":{info:"The amount of PCI Express (PCIe) bandwidth being used by the GPU. Monitoring this metric can help identify if the GPU is being bottlenecked by the PCIe bus and determine if a faster GPU is needed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_fan_speed_perc":{aggregationMethod:"avg",info:"The speed of the GPU's fan in percent. Monitoring this metric is important to ensure that the GPU is not overheating and that the fan is running at the optimal speed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's compute and graphics units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_memory_utilization":{aggregationMethod:"avg",info:"The amount of GPU memory being used. Monitoring this metric can help identify potential memory usage issues and help optimize memory usage for better performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_decoder_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's decoder units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_encoder_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's encoder units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_temperature":{info:"The temperature of the GPU in degrees Celsius. Monitoring this metric is important to ensure that the GPU is not overheating and that the fan is running at the optimal speed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_clock_freq":{info:"The clock frequency of the GPU in MHz. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_performance_state":{info:"The performance state of the GPU. Monitoring this metric can help identify potential performance issues and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"openvpn.active_clients":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Active Clients"}],info:"The active clients metric indicates the number of clients connected to the OpenVPN server. This metric should be monitored to keep track of the number of connected clients.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.total_traffic":{mainheads:[{groupBy:["selected"],selectedDimensions:["out"],chartLibrary:"easypiechart",title:"Total Traffic Sent"},{groupBy:["selected"],selectedDimensions:["in"],chartLibrary:"easypiechart",title:"Total Traffic received"}],info:"The total traffic metric indicates the total amount of data sent and received on the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.user_traffic":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Traffic per User"}],info:"The user traffic metric indicates the amount of data sent and received by each user connected to the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.user_connection_time":{aggregationMethod:"avg",info:"The user connection time metric indicates the time each user is connected to the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"phpdaemon.workers":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Workers",layout:{left:0,top:0,width:3,height:5}}],info:"The workers metric indicates the number of workers running in the phpdaemon. This metric should be monitored to ensure the proper number of workers is running for the best performance.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.alive_workers":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Active Workers",layout:{left:3,top:0,width:3,height:5}}],info:"The alive workers metric indicates the number of workers currently active in the phpdaemon. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.idle_workers":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Idle Workers",layout:{left:6,top:0,width:3,height:5}}],info:"The idle workers metric indicates the number of workers that are currently idle in the phpdaemon. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Uptime",layout:{left:9,top:0,width:3,height:5}}],info:"The uptime metric indicates the time since the phpdaemon was started. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpfpm.connections":{mainheads:[{groupBy:["selected"],selectedDimensions:["active"],chartLibrary:"easypiechart",title:"Active Connections",layout:{left:0,top:0,width:3,height:5}}],info:"This metric indicates the connections count across the following dimensions: active, max_active, idle.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.requests":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Requests",layout:{left:3,top:0,width:3,height:5}}],info:"The requests metric indicates the number of requests processed by the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.performance":{info:"The performance metric indicates the performance of the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_duration":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Request Duration",layout:{left:6,top:0,width:3,height:5}}],info:"The request duration metric indicates the time taken to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_cpu":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Request CPU",layout:{left:9,top:0,width:3,height:5}}],info:"The request CPU metric indicates the amount of CPU used to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_mem":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Request Memory",layout:{left:0,top:5,width:3,height:5}}],info:"The request memory metric indicates the amount of memory used to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"pihole.dns_queries_total":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Queries",layout:{left:0,top:0,width:3,height:5}}],info:"The DNS queries total metric indicates the total number of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries":{info:"The DNS queries metric indicates the number of DNS queries that have been made to the Pi-hole server in a given time period. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_percentage":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],selectedDimensions:["blocked"],chartLibrary:"gauge",title:"Blocked Queries %",layout:{left:3,top:0,width:3,height:5}}],info:"The DNS queries percentage metric indicates the percentage of DNS queries that have been made to the Pi-hole server in a given time period. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.unique_clients":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Clients",layout:{left:6,top:0,width:3,height:5}}],info:"The unique clients metric indicates the number of unique clients making DNS queries to the Pi-hole server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.blocklist_last_update":{info:"The blocklist last update metric indicates the last time the Pi-hole's blocklist was updated. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_types":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Query Types",layout:{left:9,top:0,width:3,height:5}}],info:"The DNS queries types metric indicates the types of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.domains_on_blocklist":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"number",title:"Domains on Blocklist",layout:{left:0,top:5,width:3,height:5}}],info:"The DNS queries types metric indicates the types of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_forwarded_destination":{aggregationMethod:"avg",info:"The DNS queries forwarded destination metric indicates the destination of the DNS queries that have been forwarded by the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"supervisord.process_state_code":{info:'<a href="http://supervisord.org/subprocess.html#process-states" target="_blank">Process states map</a>: <b>0</b> - stopped, <b>10</b> - starting, <b>20</b> - running, <b>30</b> - backoff,<b>40</b> - stopping, <b>100</b> - exited, <b>200</b> - fatal, <b>1000</b> - unknown.'},"systemd.service_unit_state":{info:'Service units start and control daemons and the processes they consist of. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.service.html#" target="_blank"> systemd.service(5)</a>',en:{instance:{one:"unit",other:"units"}}},"systemd.socket_unit_state":{info:'Socket units encapsulate local IPC or network sockets in the system, useful for socket-based activation. For details about socket units, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.socket.html#" target="_blank"> systemd.socket(5)</a>, for details on socket-based activation and other forms of activation, see <a href="https://www.freedesktop.org/software/systemd/man/daemon.html#" target="_blank"> daemon(7)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.target_unit_state":{info:'Target units are useful to group units, or provide well-known synchronization points during boot-up, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.target.html#" target="_blank"> systemd.target(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.path_unit_state":{info:'Path units may be used to activate other services when file system objects change or are modified. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.path.html#" target="_blank"> systemd.path(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.device_unit_state":{info:'Device units expose kernel devices in systemd and may be used to implement device-based activation. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.device.html#" target="_blank"> systemd.device(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.mount_unit_state":{info:'Mount units control mount points in the file system. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.mount.html#" target="_blank"> systemd.mount(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.automount_unit_state":{info:'Automount units provide automount capabilities, for on-demand mounting of file systems as well as parallelized boot-up. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.automount.html#" target="_blank"> systemd.automount(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.swap_unit_state":{info:'Swap units are very similar to mount units and encapsulate memory swap partitions or files of the operating system. They are described in <a href="https://www.freedesktop.org/software/systemd/man/systemd.swap.html#" target="_blank"> systemd.swap(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.timer_unit_state":{info:'Timer units are useful for triggering activation of other units based on timers. You may find details in <a href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html#" target="_blank"> systemd.timer(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.scope_unit_state":{info:'Slice units may be used to group units which manage system processes (such as service and scope units) in a hierarchical tree for resource management purposes. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.scope.html#" target="_blank"> systemd.scope(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"systemd.slice_unit_state":{info:'Scope units are similar to service units, but manage foreign processes instead of starting them as well. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.slice.html#" target="_blank"> systemd.slice(5)</a>.',en:{instance:{one:"unit",other:"units"}}},"anomaly_detection.dimensions":{mainheads:[{groupBy:["selected"],selectedDimensions:["anomalous"],chartLibrary:"number",desiredUnits:"dimensions",title:"Total Anomalous Dimensions",layout:{left:3,top:0,width:3,height:5}},{groupBy:["selected"],selectedDimensions:["normal"],chartLibrary:"number",desiredUnits:"dimensions",title:"Total Normal Dimensions",layout:{left:6,top:0,width:3,height:5}}],info:"Total count of dimensions considered anomalous or normal. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["anomalous"]},"anomaly_detection.anomaly_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",colors:s.default[12],title:"% of Anomalous Dimensions",layout:{left:0,top:0,width:3,height:5}}],info:"Percentage of anomalous dimensions. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["anomaly_rate"]},"anomaly_detection.detector_window":{info:"The length of the active window used by the detector. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["above_threshold"]},"anomaly_detection.detector_events":{info:"Flags (0 or 1) to show when an anomaly event has been triggered by the detector. ",en:{instance:{one:"system",other:"systems"}}},"anomaly_detection.prediction_stats":{info:"Diagnostic metrics relating to prediction time of anomaly detection. ",en:{instance:{one:"system",other:"systems"}}},"anomaly_detection.training_stats":{info:"Diagnostic metrics relating to training time of anomaly detection. ",en:{instance:{one:"system",other:"systems"}}},"fail2ban.failed_attempts":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Failed Attempts",layout:{left:0,top:0,width:3,height:5}}],info:"<p>The number of failed attempts.</p><p>This chart reflects the number of 'Found' lines. Found means a line in the service\u2019s log file matches the failregex in its filter.</p>",en:{instance:{one:"service",other:"services"}}},"fail2ban.bans":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Bans",layout:{left:3,top:0,width:3,height:5}}],info:"<p>The number of bans.</p><p>This chart reflects the number of 'Ban' and 'Restore Ban' lines. Ban action happens when the number of failed attempts (maxretry) occurred in the last configured interval (findtime).</p>",en:{instance:{one:"service",other:"services"}}},"fail2ban.banned_ips":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Banned IPs",layout:{left:6,top:0,width:3,height:5}}],info:"<p>The number of banned IP addresses.</p>",en:{instance:{one:"service",other:"services"}}},"consul.node_health_check_status":{info:'The current status of the <a href="https://developer.hashicorp.com/consul/tutorials/developer-discovery/service-registration-health-checks#monitor-a-node" target="_blank">node health check</a>. A node health check monitors the health of the entire node. If the node health check fails, Consul marks the node as unhealthy.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.service_health_check_status":{info:'The current status of the <a href="https://developer.hashicorp.com/consul/tutorials/developer-discovery/service-registration-health-checks#monitor-a-service" target="_blank">service health check</a>. A service check only affects the health of the service it is associated with. If the service health check fails, the DNS interface stops returning that service.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_rate":{mainheads:[{groupBy:["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"RPC Requests Rate Per Client",desiredUnits:"req/s"}],info:"The number of RPC requests to a Consul server.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_exceeded_rate":{info:'The number of rate-limited RPC requests to a Consul server. An Increase of this metric either indicates the load is getting high enough to limit the rate or a <a href="https://developer.hashicorp.com/consul/docs/agent/config/config-files#limits" target="_blank">incorrectly configured</a> Consul agent.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_failed_rate":{info:"The number of failed RPC requests to a Consul server.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.memory_allocated":{mainheads:[{groupBy:["label"],groupByLabel:["datacenter"],chartLibrary:"number",title:"Memory Allocated per Consul DC"}],info:"The amount of memory allocated by the Consul process.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.memory_sys":{info:"The amount of memory obtained from the OS.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.gc_pause_time":{aggregationMethod:"avg",info:"The amount of time spent in stop-the-world garbage collection (GC) pauses.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.kvs_apply_time":{aggregationMethod:"avg",info:"The time it takes to complete an update to the KV store.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.kvs_apply_operations_rate":{mainheads:[{groupBy:["label"],groupByLabel:["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Key Value Store Operations Rate per DC"}],info:"The number of KV store updates.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.txn_apply_time":{aggregationMethod:"avg",info:"The time spent applying a transaction operation.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.txn_apply_operations_rate":{info:"The number of applied transaction operations.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_commit_time":{aggregationMethod:"avg",info:"The time it takes to commit a new entry to the Raft log on the leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_commits_rate":{mainheads:[{groupBy:["label"],groupByLabel:["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Raft Commits Rate per DC"}],info:"The number of applied Raft transactions.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_health_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Health Status Overview",desiredUnits:"status"}],info:"The overall health of the local server cluster. The status is healthy if <b>all servers</b> are considered healthy by Autopilot.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_failure_tolerance":{info:"The number of voting servers that the cluster can lose while continuing to function.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_last_contact_time":{aggregationMethod:"avg",info:"The time since the leader was last able to contact the follower nodes when checking its leader lease.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_elections_rate":{info:"The number of leadership elections. Increments whenever a Consul server starts an election.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leadership_transitions_rate":{mainheads:[{groupBy:["label"],groupByLabel:["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Leadership Transitions Rate per DC",desiredUnits:"transitions/s"}],info:"The number of leadership elections. Increments whenever a Consul server becomes a leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.server_leadership_status":{info:"The Consul server leadership status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_thread_main_saturation_perc":{aggregationMethod:"avg",info:"An approximate measurement of the proportion of time the main Raft goroutine is busy and unavailable to accept new work.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_thread_fsm_saturation_perc":{aggregationMethod:"avg",info:"An approximate measurement of the proportion of time the Raft FSM goroutine is busy and unavailable to accept new work.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_fsm_last_restore_duration":{info:"The time taken to restore the FSM from a snapshot on an agent restart or from the leader calling <i>installSnapshot</i>.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_oldest_log_age":{info:"The time elapsed since the oldest journal was written to the leader's journal storage. This can be important for the health of replication when the write rate is high and the snapshot is large, because followers may not be able to recover from a restart if recovery takes longer than the minimum for the current leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_rpc_install_snapshot_time":{aggregationMethod:"avg",info:"The time it takes to process the <i>installSnapshot</i> RPC call.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_freelist_bytes":{info:'The number of bytes necessary to encode the freelist metadata. When <a href="https://developer.hashicorp.com/consul/docs/agent/config/config-files#NoFreelistSync" target="_blank">raft_boltdb.NoFreelistSync</a> is set to <i>false</i> these metadata bytes must also be written to disk for each committed log.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_logs_per_batch_rate":{info:"The number of logs written per batch to the database.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_store_logs_time":{aggregationMethod:"avg",info:"The amount of time spent writing logs to the database.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.license_expiration_time":{aggregationMethod:"min`",info:"The amount of time remaining before Consul Enterprise license expires. When the license expires, some Consul Enterprise features will stop working.",en:{instance:{one:"datacenter",other:"datacenters"}}},"envoy.server_state":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Envoy Server States",layout:{left:0,top:0,width:3,height:5}}],info:"Server current state",en:{instance:{one:"server",other:"servers"}}},"envoy.server_connections_count":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Server Connections Count",colors:s.default[1],layout:{left:3,top:0,width:3,height:5}}],info:"Server current connections",en:{instance:{one:"server",other:"servers"}}},"envoy.server_parent_connections_count":{info:"Server current parent connections",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_allocated_size":{mainheads:[{groupBy:["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top servers by Memory Allocated",layout:{left:6,top:0,width:3,height:5}}],info:"Server memory allocated size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_heap_size":{mainheads:[{groupBy:["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top servers by Heap Size",layout:{left:9,top:0,width:3,height:5}}],info:"Server memory heap size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_physical_size":{info:"Server memory physical size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Server Uptime",colors:s.default[4],layout:{left:0,top:5,width:3,height:5}}],info:"Envoy Server uptime",en:{instance:{one:"server",other:"servers"}}},"envoy.cluster_manager_cluster_count":{mainheads:[{groupBy:["dimension"],chartLibrary:"d3pie",title:"Active and Inactive Envoy Clusters ",layout:{left:3,top:5,width:3,height:5}}],info:"Cluster manager current clusters",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_changes_rate":{info:"Cluster manager cluster changes",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_updates_rate":{info:"Cluster manager updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_updated_via_merge_rate":{info:"Cluster manager updates applied as merged updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_update_merge_cancelled_rate":{info:"Cluster manager cancelled merged updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_update_out_of_merge_window_rate":{info:"Cluster manager out of a merge window updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_endpoints_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Clusters by Membership Endpoints",layout:{left:6,top:5,width:3,height:5}}],info:"Cluster membership current endpoints",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_changes_rate":{info:"Cluster membership changes",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_updates_rate":{info:"Cluster membership update rate",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_active_count":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Upstream Active Connections",desiredUnits:"connections",colors:s.default[7],layout:{left:9,top:5,width:3,height:5}}],info:"Cluster upstream current active connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_rate":{info:"Cluster upstream connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_http_rate":{info:"Cluster upstream connections by HTTP version",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_destroy_rate":{info:"Cluster upstream destroyed connections rate",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_connect_fail_rate":{info:"Cluster upstream failed connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_connect_timeout_rate":{info:"Cluster upstream timed out connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_bytes_rate":{info:"Cluster upstream connection traffic",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_bytes_buffered_size":{info:"Cluster upstream current connection buffered size",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_active_count":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Upstream Active Requests",desiredUnits:"connections",colors:s.default[7],layout:{left:0,top:10,width:3,height:5}}],info:"Cluster upstream current active requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_rate":{info:"Cluster upstream requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_failed_rate":{info:"Cluster upstream failed requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_active_count":{info:"Cluster upstream current active pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_rate":{info:"Cluster upstream pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_failed_rate":{info:"Cluster upstream failed pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_rate":{info:"Cluster upstream request retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_success_rate":{info:"Cluster upstream request successful retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_backoff_rate":{info:"Cluster upstream request backoff retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.listener_manager_listeners_count":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Listeners Count",desiredUnits:"listeners",colors:s.default[9],layout:{left:3,top:10,width:3,height:5}}],info:"Listener manager current listeners",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_manager_listener_changes_rate":{info:"Listener manager listener changes",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_manager_listener_object_events_rate":{info:"Listener manager listener object events",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_active_count":{info:"Listener admin downstream current active connections",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Downstream Active Connections",desiredUnits:"listeners",colors:s.default[9],layout:{left:6,top:10,width:3,height:5}}],en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_rate":{info:"Listener admin downstream connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_destroy_rate":{info:"Listener admin downstream destroyed connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_transport_socket_connect_timeout_rate":{info:"Listener admin downstream timed out connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_rejected_rate":{info:"Listener admin downstream rejected connections",mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Downstream Rejected Connections",desiredUnits:"listeners",colors:s.default[9],layout:{left:9,top:10,width:3,height:5}}],en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_listener_filter_remote_close_rate":{info:"Listener admin downstream connections closed by remote when peek data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_listener_filter_error_rate":{info:"Listener admin downstream read errors when peeking data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_pre_cx_active_count":{info:"Listener admin downstream current active sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_pre_cx_timeout_rate":{info:"Listener admin downstream timed out sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_active_count":{info:"Listener downstream current active connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_rate":{info:"Listener downstream connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_destroy_rate":{info:"Listener downstream destroyed connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_transport_socket_connect_timeout_rate":{info:"Listener downstream timed out connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_rejected_rate":{info:"Listener downstream rejected connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_listener_filter_remote_close_rate":{info:"Listener downstream connections closed by remote when peek data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_listener_filter_error_rate":{info:"Listener downstream read errors when peeking data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_pre_cx_active_count":{info:"Listener downstream current active sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_pre_cx_timeout_rate":{info:"Listener downstream timed out sockets",en:{instance:{one:"listener",other:"listeners"}}},"k8s_state.node_allocatable_cpu_requests_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average CPU Utilization",valueRange:[0,100],layout:{left:0,top:5,width:3,height:5}}],info:"The percentage of allocated CPU resources used by Pod requests. A Pod is scheduled to run on a Node only if the Node has enough CPU resources available to satisfy the Pod CPU request.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_requests_used":{info:'The amount of allocated CPU resources used by Pod requests. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_limits_utilization":{aggregationMethod:"avg",info:"The percentage of allocated CPU resources used by Pod limits. Total limits may be over 100 percent (overcommitted).",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_limits_used":{info:'The amount of allocated CPU resources used by Pod limits. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_requests_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Memory Utilization",colors:s.default[4],valueRange:[0,100],layout:{left:9,top:5,width:3,height:5}}],info:"The percentage of allocated memory resources used by Pod requests. A Pod is scheduled to run on a Node only if the Node has enough memory resources available to satisfy the Pod memory request.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_requests_used":{info:"The amount of allocated memory resources used by Pod requests.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_limits_utilization":{aggregationMethod:"avg",info:"The percentage of allocated memory resources used by Pod limits. Total limits may be over 100 percent (overcommitted).",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_limits_used":{info:"The amount of allocated memory resources used by Pod limits.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_pods_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Pods Utilization",colors:s.default[12],valueRange:[0,100],layout:{left:3,top:5,width:3,height:5}}],info:"Pods limit utilization.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_pods_usage":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Pods limit usage",layout:{left:8,top:0,width:4,height:2.5}}],info:"<p>Pods limit usage.</p><p><b>Available</b> - the number of Pods available for scheduling. <b>Allocated</b> - the number of Pods that have been scheduled.</p>",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_condition":{info:'Health status. If the status of the Ready condition remains False for longer than the <b>pod-eviction-timeout</b> (the default is 5 minutes), then the node controller triggers API-initiated eviction for all Pods assigned to that node. <a href="https://kubernetes.io/docs/concepts/architecture/nodes/#condition" target="_blank">More info.</a>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_readiness":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Pod Readiness",colors:s.default[0],valueRange:[0,100],layout:{left:0,top:5,width:3,height:5}}],info:"The percentage of Pods that are ready to serve requests.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_readiness_state":{info:"<p>Pods readiness state.</p><p><b>Ready</b> - the Pod has passed its readiness probe and ready to serve requests. <b>Unready</b> - the Pod has not passed its readiness probe yet.</p>",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_condition":{info:'<p>Pods state. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions" target="_blank">More info.</a></p><b>PodReady</b> - the Pod is able to serve requests and should be added to the load balancing pools of all matching Services. <b>PodScheduled</b> - the Pod has been scheduled to a node. <b>PodInitialized</b> - all init containers have completed successfully. <b>ContainersReady</b> - all containers in the Pod are ready.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_phase":{info:'<p>Pods phase. The phase of a Pod is a high-level summary of where the Pod is in its lifecycle. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase" target="_blank">More info.</a></p><p><b>Running</b> - the Pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. <b>Failed</b> - all containers in the Pod have terminated, and at least one container has terminated in failure. That is, the container either exited with non-zero status or was terminated by the system. <b>Succedeed</b> - all containers in the Pod have terminated in success, and will not be restarted. <b>Pending</b> - the Pod has been accepted by the Kubernetes cluster, but one or more of the containers has not been set up and made ready to run.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_containers":{info:"The total number of containers and init containers.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_containers_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Containers by State",layout:{left:0,top:20,width:4,height:2.5}}],info:'<p>The number of containers in different lifecycle states. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a></p><p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_init_containers_state":{info:'<p>The number of init containers in different lifecycle states. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a></p><p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_age":{mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Node Uptime",desiredUnits:"dHH:MM:ss",layout:{left:8,top:2.5,width:4,height:2.5}}],info:"The lifetime of the Node.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_schedulability":{info:"The schedulability of nodes in the Kubernetes cluster. Monitoring this metric can help identify if there are issues with the cluster's ability to schedule pods on nodes.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.pod_cpu_requests_used":{mainheads:[{groupBy:["selected"],aggregationMethod:"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod CPU Requests used",units:"percentage",colors:s.default[0],layout:{left:0,top:10,width:3,height:5}},{groupBy:["label"],groupByLabel:["k8s_pod_name"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Requests per Pod",units:"percentage",layout:{left:0,top:15,width:3,height:5}}],info:'The overall CPU resource requests for a Pod. This is the sum of the CPU requests for all the Containers in the Pod. Provided the system has CPU time free, a container is guaranteed to be allocated as much CPU as it requests. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_cpu_limits_used":{mainheads:[{groupBy:["selected"],aggregationMethod:"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod CPU limits used",units:"percentage",layout:{left:3,top:10,width:3,height:5}},{groupBy:["label"],groupByLabel:["k8s_pod_name"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU limits per Pod",units:"percentage",layout:{left:3,top:15,width:3,height:5}}],info:'The overall CPU resource limits for a Pod. This is the sum of the CPU limits for all the Containers in the Pod. If set, containers cannot use more CPU than the configured limit. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_mem_requests_used":{mainheads:[{groupBy:["selected"],aggregationMethod:"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod Memory Requests used",units:"percentage",colors:s.default[12],layout:{left:6,top:10,width:3,height:5}},{groupBy:["label"],groupByLabel:["k8s_pod_name"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Pod Memory Requests per Pod",units:"percentage",layout:{left:6,top:15,width:3,height:5}}],info:"The overall memory resource requests for a Pod. This is the sum of the memory requests for all the Containers in the Pod.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_mem_limits_used":{mainheads:[{groupBy:["selected"],aggregationMethod:"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod Memory limits used",units:"percentage",colors:s.default[4],layout:{left:9,top:10,width:3,height:5}},{groupBy:["label"],groupByLabel:["k8s_pod_name"],aggregationMethod:"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum Memory limits per Pod",units:"percentage",layout:{left:9,top:15,width:3,height:5}}],info:"The overall memory resource limits for a Pod. This is the sum of the memory limits for all the Containers in the Pod. If set, containers cannot use more RAM than the configured limit.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_condition":{info:'The current state of the Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions" target="_blank">More info.</a></p><p><b>PodReady</b> - the Pod is able to serve requests and should be added to the load balancing pools of all matching Services. <b>PodScheduled</b> - the Pod has been scheduled to a node. <b>PodInitialized</b> - all init containers have completed successfully. <b>ContainersReady</b> - all containers in the Pod are ready. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_phase":{mainheads:[{groupBy:["selected"],selectedDimensions:["running"],chartLibrary:"easypiechart",title:"Total Running Pods",desiredUnits:"state",colors:s.default[0],layout:{left:0,top:0,width:2,height:5}},{groupBy:["selected"],selectedDimensions:["failed"],chartLibrary:"easypiechart",title:"Total Failed Pods",desiredUnits:"state",layout:{left:2,top:0,width:2,height:5}},{groupBy:["selected"],selectedDimensions:["succeeded"],chartLibrary:"easypiechart",title:"Total Terminated Pods",desiredUnits:"state",colors:s.default[4],layout:{left:6,top:0,width:2,height:5}},{groupBy:["selected"],selectedDimensions:["pending"],chartLibrary:"easypiechart",title:"Total Pending Pods",desiredUnits:"state",colors:s.default[12],layout:{left:4,top:0,width:2,height:5}}],info:'High-level summary of where the Pod is in its lifecycle. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase" target="_blank">More info.</a></p><p><b>Running</b> - the Pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. <b>Failed</b> - all containers in the Pod have terminated, and at least one container has terminated in failure. That is, the container either exited with non-zero status or was terminated by the system. <b>Succedeed</b> - all containers in the Pod have terminated in success, and will not be restarted. <b>Pending</b> - the Pod has been accepted by the Kubernetes cluster, but one or more of the containers has not been set up and made ready to run. This includes time a Pod spends waiting to be scheduled as well as the time spent downloading container images over the network. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_age":{info:'The <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-lifetime" target="_blank">lifetime</a> of the Pod. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_containers":{info:"The number of containers and init containers belonging to the Pod.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_containers_state":{info:'The state of each container inside this Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_init_containers_state":{info:'The state of each init container inside this Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_container_readiness_state":{info:"Specifies whether the container has passed its readiness probe. Kubelet uses readiness probes to know when a container is ready to start accepting traffic.",en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_restarts":{mainheads:[{groupBy:["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Container restarts",layout:{left:0,top:22.5,width:4,height:2.5}}],info:"The number of times the container has been restarted.",en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_state":{info:'Current state of the container. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_waiting_state_reason":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Container waiting state reason",layout:{left:4,top:20,width:4,height:5}}],info:'Reason the container is not yet running. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-state-waiting" target="_blank">More info.</a> ',en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_terminated_state_reason":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Container terminated state reason",layout:{left:8,top:20,width:4,height:5}}],info:'Reason from the last termination of the container. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-state-terminated" target="_blank">More info.</a>',en:{instance:{one:"container",other:"containers"}}},"k8s_kubelet.apiserver_audit_requests_rejected":{info:"The number of audit requests to the Kubernetes API server that were rejected. Monitoring this metric can help identify if there are issues with the audit configuration or access control policies on the API server.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_failures":{info:"The number of failures when generating data keys for encrypting and decrypting secrets stored in the Kubernetes API server. If this metric is non-zero, it may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_latencies":{info:"The latencies of data key generation requests to the Kubernetes API server. High latencies may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent":{aggregationMethod:"avg",info:"The percentile latencies of data key generation requests to the Kubernetes API server. High latencies may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses":{info:"The number of cache misses when transforming encryption envelopes for secrets stored in the Kubernetes API server. If this metric is non-zero, it may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.kubelet_containers_running":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Running Containers",colors:s.default[2],layout:{left:3,top:0,width:3,height:5}}],info:"The number of containers running on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with container scheduling or resource allocation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pods_running":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Running Pods",colors:s.default[0],layout:{left:0,top:0,width:3,height:5}}],info:"The number of pods running on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with pod scheduling or resource allocation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pods_log_filesystem_used_bytes":{mainheads:[{chartLibrary:"bars",title:"Pod Logs Disk Usage",layout:{left:9,top:5,width:4,height:5}}],info:"The amount of disk space used by pod logs on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with disk usage or log rotation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_runtime_operations":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Runtime Operations by Type",layout:{left:6,top:0,width:3,height:5}}],info:"The total number of runtime operations performed by the kubelet on the node, such as starting and stopping containers. Monitoring this metric can help identify if there are issues with the runtime or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_runtime_operations_errors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Runtime Operations Errors by Type",layout:{left:9,top:0,width:3,height:5}}],info:"The number of runtime operation errors on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the runtime or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_docker_operations":{info:"The total number of Docker operations performed by the kubelet on the node, such as pulling images or creating containers. Monitoring this metric can help identify if there are issues with the Docker daemon or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_docker_operations_errors":{info:"The number of Docker operation errors on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the Docker daemon or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_node_config_error":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Node Congifuration Errors",layout:{left:7,top:5,width:2,height:5}}],info:"The number of errors in the node configuration on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the node's configuration or the kubelet's ability to read and apply it.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pleg_relist_interval_microseconds":{aggregationMethod:"avg",info:"The interval, in microseconds, between periodic relists performed by the kubelet's Pod Lifecycle Event Generator (PLEG). Monitoring this metric can help identify if the PLEG is not able to keep up with the rate of change in the pod lifecycle on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pleg_relist_latency_microseconds":{aggregationMethod:"avg",info:"The latency, in microseconds, of the periodic relists performed by the kubelet's Pod Lifecycle Event Generator (PLEG). High latencies may indicate issues with the PLEG or the pod lifecycle on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_token_requests":{mainheads:[{groupBy:["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total and Failed No. of Token Requests",colors:s.default[0],layout:{left:3,top:5,width:3,height:5}}],info:"The number of token requests to the kubelet. Monitoring this metric can help identify if there are issues with authentication or access control on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.rest_client_requests_by_code":{info:"The distribution of HTTP response codes for requests to the kubelet's REST API. Monitoring this metric can help identify if there are issues with the kubelet's API or the components interacting with it.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.rest_client_requests_by_method":{mainheads:[{groupBy:["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"HTTP Requests Rate to API",colors:s.default[0],layout:{left:0,top:5,width:3,height:2.5}}],info:"The distribution of HTTP request methods for requests to the kubelet's REST API. Monitoring this metric can help identify the usage patterns of the API and potential issues with specific request methods.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.volume_manager_total_volumes":{mainheads:[{groupBy:["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Volume Manager State",layout:{left:0,top:7.5,width:3,height:2.5}}],info:"The total number of volumes managed by the kubelet's volume manager. Monitoring this metric can help identify if there are issues with volume management on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Sync Proxy Rules",colors:s.default[4],layout:{left:0,top:0,width:3,height:5}}],info:"The total number of synced proxy rules in the Kubernetes proxy. Monitoring this metric can help identify if there are issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency_microsecond":{aggregationMethod:"avg",info:"The latencies of proxy rule sync operations in the Kubernetes proxy. High latencies may indicate issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency":{aggregationMethod:"avg",info:"The latencies of proxy rule sync operations in the Kubernetes proxy. High latencies may indicate issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.rest_client_requests_by_code":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Response Code Distribution",colors:s.default[4],layout:{left:3,top:0,width:3,height:5}}],info:"The distribution of HTTP response codes for requests to the Kubernetes proxy's REST API. Monitoring this metric can help identify if there are issues with the proxy's API or the components interacting with it.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.rest_client_requests_by_method":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Request Method Distribution",colors:s.default[4],layout:{left:6,top:0,width:3,height:5}}],info:"The distribution of HTTP request methods for requests to the Kubernetes proxy's REST API. Monitoring this metric can help identify the usage patterns of the API and potential issues with specific request methods.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.http_request_duration":{info:"The latencies of HTTP requests handled by the Kubernetes proxy. High latencies may indicate performance issues with the proxy or the components interacting with it.",en:{instance:{one:"proxy",other:"proxies"}}},"windows.logical_disk_bandwidth":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["read"],title:"Total Disk Read",layout:{left:0,top:0,width:2,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["write"],title:"Total Disk Write",layout:{left:3,top:0,width:2,height:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.cpu_utilization_total":{aggregationMethod:"avg",mainheads:[{groupBy:["instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average CPU Utilization",colors:s.default[12],layout:{left:6,top:0,width:2,height:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.net_nic_bandwidth":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Net Inbound",layout:{left:9,top:0,width:2,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Net Outbound",layout:{left:12,top:0,width:2,height:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.memory_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["percentage-of-instance"],showPostAggregations:!0,postGroupBy:["selected"],aggregationMethod:"max",chartLibrary:"gauge",selectedDimensions:["used"],desiredUnits:"percentage",colors:s.default[0],title:"Maximum RAM Used",valueRange:[0,100],layout:{left:15,top:0,width:2,height:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.processes_cpu_time":{aggregationMethod:"avg",info:'Total CPU utilization. The amount of time spent by the process in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and privileged</a> modes.',en:{instance:{one:"system",other:"systems"}}},"windows.processes_handles":{info:'Total number of <a href="https://learn.microsoft.com/en-us/windows/win32/sysinfo/handles-and-objects" target="_blank">handles</a> the process has open. This number is the sum of the handles currently open by each thread in the process.',en:{instance:{one:"system",other:"systems"}}},"windows.processes_io_operations":{info:"I/O operations issued in different modes (read, write, other). This property counts all I/O activity generated by the process to include file, network, and device I/Os. Read and write mode includes data operations; other mode includes those that do not involve data, such as control operations.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_pool_bytes":{info:"Pool Bytes is the last observed number of bytes in the paged or nonpaged pool. The nonpaged pool is an area of system memory (physical memory used by the operating system) for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated. The paged pool is an area of system memory (physical memory used by the operating system) for objects that can be written to disk when they are not being used.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_active":{info:"Number of times TCP connections have made a direct transition from the CLOSED state to the SYN-SENT state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_established":{info:"Number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_failures":{info:"Number of times TCP connections have made a direct transition to the CLOSED state from the SYN-SENT state or the SYN-RCVD state, plus the number of times TCP connections have made a direct transition from the SYN-RCVD state to the LISTEN state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_passive":{info:"Number of times TCP connections have made a direct transition from the LISTEN state to the SYN-RCVD state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_resets":{info:"Number of times TCP connections have made a direct transition from the LISTEN state to the SYN-RCVD state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_received":{info:"Rate at which segments are received, including those received in error. This count includes segments received on currently established connections.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_retransmitted":{info:"Rate at which segments are retransmitted, that is, segments transmitted that contain one or more previously transmitted bytes.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_sent":{info:"Rate at which segments are sent, including those on current connections, but excluding those containing only retransmitted bytes.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_cpu_utilization":{aggregationMethod:"avg",mainheads:[{groupBy:["dimension"],aggregationMethod:"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Process",layout:{left:6,top:5,width:2,height:5}}],info:"Total CPU utilization per process.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_memory_usage":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Process",layout:{left:9,top:5,width:2,height:5}}],dimensionsSort:"valueDesc",info:"Total Memory usage per process.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_io_bytes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total I/O per Process",layout:{left:0,top:5,width:4,height:5}}],info:"Bytes issued to I/O operations in different modes (read, write, other). This property counts all I/O activity generated by the process to include file, network, and device I/Os. Read and write mode includes data operations; other mode includes those that do not involve data, such as control operations.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_page_faults":{info:"Page faults by the threads executing in this process. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. This can cause the page not to be fetched from disk if it is on the standby list and hence already in main memory, or if it is in use by another process with which the page is shared.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_file_bytes":{info:"Current number of bytes this process has used in the paging file(s). Paging files are used to store pages of memory used by the process that are not contained in other files. Paging files are shared by all processes, and lack of space in paging files can prevent other processes from allocating memory.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_threads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Active Threads per Process",layout:{left:12,top:5,width:4,height:5}}],info:"Number of threads currently active in this process. An instruction is the basic unit of execution in a processor, and a thread is the object that executes instructions. Every running process has at least one thread.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"iis.website_traffic":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Traffic Received",layout:{left:3,top:0,width:3,height:5}},{groupBy:["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Traffic Sent",layout:{left:6,top:0,width:3,height:5}}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_active_connections_count":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Active Connections"}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_requests_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Request Rate",desiredUnits:"Requests/s",colors:s.default[0]}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_isapi_extension_requests_count":{info:'The number of <a href="https://learn.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525282(v=vs.90)" target="_blank">ISAPI extension</a> requests that are processed concurrently by the web service.',en:{instance:{one:"web server",other:"web servers"}}},"iis.website_errors_rate":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Errors Rate",desiredUnits:"Errors/s",colors:s.default[0]}],info:"<p>The number of requests that cannot be satisfied by the server.</p><p><b>DocumentLocked</b> - the requested document was locked. Usually reported as HTTP error 423. <b>DocumentNotFound</b> - the requested document was not found. Usually reported as HTTP error 404.</p>",en:{instance:{one:"web server",other:"web servers"}}},"iis.website_uptime":{aggregationMethod:"min",mainheads:[{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"Seconds"}],en:{instance:{one:"web server",other:"web servers"}}},"mssql.instance_user_connection":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Connections",layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.database_transactions":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Transactions",layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.database_data_files_size":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total DB Size",layout:{left:3,top:0,width:3,height:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_accessmethods_page_splits":{info:"Page split happens when the page does not have more space. This chart shows the number of page splits per second that occur as the result of overflowing index pages.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_cache_hit_ratio":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0]}],info:"Indicates the percentage of pages found in the buffer cache without having to read from disk. The ratio is the total number of cache hits divided by the total number of cache lookups over the last few thousand page accesses. After a long period of time, the ratio moves very little. Because reading from the cache is much less expensive than reading from disk, you want this ratio to be high.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_bufman_checkpoint_pages":{info:"Indicates the number of pages flushed to disk per second by a checkpoint or other operation that require all dirty pages to be flushed.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_bufman_page_life_expectancy":{info:"Indicates the number of seconds a page will stay in the buffer pool without references.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_memmgr_external_benefit_of_memory":{info:"It is used by the engine to balance memory usage between cache and is useful to support when troubleshooting cases with unexpected cache growth. The value is presented as an integer based on an internal calculation.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sql_errors":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total SQL Errors",desiredUnits:"Errors/s",colors:s.default[0]}],info:"Errors in Microsoft SQL Server.</p><p><b>Db_offline</b> - Tracks severe errors that cause SQL Server to take the current database offline. <b>Info</b> - Information related to error messages that provide information to users but do not cause errors. <b>Kill_connection</b> - Tracks severe errors that cause SQL Server to kill the current connection. <b>User</b> - User errors.</p>",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_auto_parameterization_attempts":{info:"Auto-parameterization occurs when an instance of SQL Server tries to parameterize a Transact-SQL request by replacing some literals with parameters so that reuse of the resulting cached execution plan across multiple similar-looking requests is possible. Note that auto-parameterizations are also known as simple parameterizations in newer versions of SQL Server. This counter does not include forced parameterizations.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_batch_requests":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Batch Requests",layout:{left:3,top:0,width:3,height:5}}],info:"This statistic is affected by all constraints (such as I/O, number of users, cache size, complexity of requests, and so on). High batch requests mean good throughput.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_safe_auto_parameterization_attempts":{info:"Note that auto-parameterizations are also known as simple parameterizations in later versions of SQL Server.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_sql_compilations":{info:"Indicates the number of times the compile code path is entered. Includes compiles caused by statement-level recompilations in SQL Server. After SQL Server user activity is stable, this value reaches a steady state.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"ad.binds":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Binds",desiredUnits:"Binds/s",colors:s.default[0]}],en:{instance:{one:"AD server",other:"AD servers"}}},"ad.ldap_searches":{mainheads:[{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"gauge",title:"Average Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0]}],en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_intersite_compressed_traffic":{info:"The compressed size, in bytes, of inbound and outbound compressed replication data (size after compression, from DSAs in other sites).",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_intrasite_compressed_traffic":{info:"The number of bytes replicated that were not compressed (that is., from DSAs in the same site).",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_properties_updated":{info:"The number of properties that are updated due to incoming property winning the reconciliation logic that determines the final value to be replicated.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_objects_filtered":{info:"The number of objects received from inbound replication partners that contained no updates that needed to be applied.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_pending_syncs":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Pending Syncs",layout:{left:3,top:0,width:3,height:5}}],info:"The number of directory synchronizations that are queued for this server but not yet processed.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_sync_requests":{mainheads:[{groupBy:["selected"],chartLibrary:"gauge",title:"Total Sync Requests",desiredUnits:"Requests/s",colors:s.default[0]}],info:"The number of directory synchronizations that are queued for this server but not yet processed.",en:{instance:{one:"AD server",other:"AD servers"}}},"netframework.clrexception_thrown":{info:"The exceptions include both .NET exceptions and unmanaged exceptions that are converted into .NET exceptions.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrexception_filters":{info:"An exception filter evaluates regardless of whether an exception is handled.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrexception_finallys":{info:"The metric counts only the finally blocks executed for an exception; finally blocks on normal code paths are not counted by this counter.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrinterop_com_callable_wrappers":{info:"A COM callable wrappers (CCW) is a proxy for a managed object being referenced from an unmanaged COM client.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrinterop_interop_stubs_created":{info:"The Stubs are responsible for marshaling arguments and return values from managed to unmanaged code, and vice versa, during a COM interop call or a platform invoke call.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_methods":{info:"The metric does not include pre-JIT-compiled methods.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_time":{aggregationMethod:"avg",info:"The metric is updated at the end of every JIT compilation phase. A JIT compilation phase occurs when a method and its dependencies are compiled.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_standard_failures":{info:"The failure can occur if the MSIL cannot be verified or if there is an internal error in the JIT compiler.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrloading_loader_heap_size":{info:"The memory committed by the class loader across all application domains is the physical space reserved in the disk paging file.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrloading_assemblies_loaded":{info:"If the assembly is loaded as domain-neutral from multiple application domains, the metric is incremented only once.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrlocksandthreads_recognized_threads":{info:"Displays the total number of threads that have been recognized by the runtime since the application started. These threads are associated with a corresponding managed thread object. The runtime does not create these threads, but they have run inside the runtime at least once.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_heap_size":{info:"The metric shows maximum bytes that can be allocated, but it does not indicate the current number of bytes allocated.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_promoted":{info:"Memory is promoted when it survives a garbage collection.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_number_gc_handles":{info:"Garbage collection handles are handles to resources external to the common language runtime and the managed environment.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_induced_gc":{info:"The metric is updated when an explicit call to GC.Collect happens.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_number_sink_blocks_in_use":{info:"Synchronization blocks are per-object data structures allocated for storing synchronization information. They hold weak references to managed objects and must be scanned by the garbage collector.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_committed":{info:"Committed memory is the physical memory for which space has been reserved in the disk paging file.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_reserved":{info:"Reserved memory is the virtual memory space reserved for the application when no disk or main memory pages have been used.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_gc_time":{aggregationMethod:"avg",info:"Displays the percentage of time that was spent performing a garbage collection in the last sample.",en:{instance:{one:".NET server",other:".NET servers"}}},"adaptec_raid.ld_status":{info:"Status of logical devices (1: Failed or Degraded).",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.pd_state":{info:"State of physical devices (1: not Online).",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.smart_warnings":{info:"S.M.A.R.T warnings.",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.temperature":{info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"alerts.status":{info:"Alert Values.",en:{instance:{one:"alert",other:"alerts"}}},"am2320.temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"am2320.humidity":{aggregationMethod:"avg",info:"Relative Humidity.",en:{instance:{one:"device",other:"devices"}}},"anomalies.probability":{info:"Anomaly Probability.",en:{instance:{one:"device",other:"devices"}}},"anomalies.anomaly":{info:"Anomaly.",en:{instance:{one:"device",other:"devices"}}},"ap.clients":{info:"Connected clients to ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.net":{info:"Bandwidth for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.packets":{info:"Packets for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.issues":{info:"Transmit Issues for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.signal":{info:"Average Signal for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.bitrate":{info:"Bitrate for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.charge":{aggregationMethod:"avg",info:"UPS Charge.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.battery.voltage":{aggregationMethod:"avg",info:"UPS Battery Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.input.voltage":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.output.voltage":{aggregationMethod:"avg",info:"UPS Output Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.input.frequency":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.load":{aggregationMethod:"avg",info:"UPS Load.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.load_usage":{info:"UPS Load Usage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.temperature":{aggregationMethod:"avg",info:"UPS Temperature.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.time":{aggregationMethod:"min",info:"UPS Time Remaining.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.online":{info:"UPS ONLINE flag.",en:{instance:{one:"device",other:"devices"}}},"netdata.apps_cpu":{info:"Apps Plugin CPU.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_sizes":{info:"Apps Plugin Files.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_fix":{aggregationMethod:"avg",info:"Apps Plugin Normalization Ratios.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_children_fix":{aggregationMethod:"avg",info:"Apps Plugin Exited Children Normalization Ratios.",en:{instance:{one:"agent",other:"agents"}}},"bind_rndc.name_server_statistics":{info:"Name Server Statistics.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.incoming_queries":{info:"Incoming queries.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.outgoing_queries":{info:"Outgoing queries.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.stats_size":{info:"Named Stats File Size.",en:{instance:{one:"server",other:"servers"}}},"cassandra.storage_exceptions_rate":{info:"Storage exceptions rate.",en:{instance:{one:"db server",other:"db servers"}}},"ceph.pool_read_operations":{info:"Ceph Read Pool Operations/s.",en:{instance:{one:"pool",other:"pools"}}},"ceph.pool_write_operations":{info:"Ceph Write Pool Operations/s.",en:{instance:{one:"pool",other:"pools"}}},"services.services.throttle_io_write":{info:"Systemd Services Throttle Disk Write Bandwidth.",en:{instance:{one:"system",other:"systems"}}},throttle_io_ops_write:{info:"Systemd Services Throttle Disk Write Operations.",en:{instance:{one:"system",other:"systems"}}},"changefinder.scores":{info:"ChangeFinder.",en:{instance:{one:"system",other:"systems"}}},"changefinder.flags":{info:"ChangeFinder.",en:{instance:{one:"system",other:"systems"}}},"cockroachdb.process_cpu_time":{aggregationMethod:"avg",info:"CPU Time.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.sql_connections":{info:"Active SQL Connections.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.logical_data":{info:"Logical Data.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.logical_data_count":{info:"Logical Data Count.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.range_events":{info:"Range Events.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.range_snapshot_events":{info:"Range Snapshot Events.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_read_amplification":{info:"RocksDB Read Amplification.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_cache_usage":{info:"RocksDB Block Cache Usage.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_cache_operations":{info:"RocksDB Block Cache Operations.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_sstables":{info:"RocksDB SSTables.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.replicas_quiescence":{info:"Replicas Quiescence.",en:{instance:{one:"db server",other:"db servers"}}},"consul.autopilot_server_health_status":{info:"Autopilot server health status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_stable_time":{aggregationMethod:"avg",info:"Autopilot server stable time.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_serf_status":{info:"Autopilot server Serf status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_voter_status":{info:"Autopilot server Raft voting membership.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.network_lan_rtt":{info:"Network lan RTT.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_follower_last_contact_leader_time":{aggregationMethod:"avg",info:"Raft follower last contact with the leader time.",en:{instance:{one:"datacenter",other:"datacenters"}}},"coredns.dns_request_count_total_per_status":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Dropped DNS Requests",selectedDimensions:["dropped"],colors:s.default[1],layout:{left:12,top:0,width:2,height:5}}],info:"Number Of Processed And Dropped DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_per_type":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Requests per Type",layout:{left:3,top:0,width:2.5,height:5}}],info:"Number Of DNS Requests Per Type.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_responses_count_total_per_rcode":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Responses per Rcode",layout:{left:9,top:0,width:2.5,height:5}}],info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_dns_request_count_total":{info:"Number Of DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_dns_responses_count_total":{info:"Number Of DNS Responses.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_request_count_total_per_status":{info:"Number Of Processed And Dropped DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_per_type":{info:"Number Of DNS Requests Per Type.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_responses_count_total_per_rcode":{info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"server",other:"servers"}}},"coredns.zone_dns_request_count_total":{info:"Number Of DNS Requests.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_dns_responses_count_total":{info:"Number Of DNS Responses.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_per_type":{info:"Number Of DNS Requests Per Type.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_responses_count_total_per_rcode":{info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"zone",other:"zones"}}},"couchbase.bucket_quota_percent_used":{aggregationMethod:"avg",info:"Quota Percent Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_ops_per_sec":{info:"Operations Per Second Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_disk_fetches":{info:"Disk Fetches Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_item_count":{info:"Item Count Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_disk_used_stats":{info:"Disk Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_data_used":{info:"Data Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_mem_used":{info:"Memory Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_vb_active_num_non_resident":{info:"Number Of Non-Resident Items Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"cups.dests_state":{family:"destination",info:"Destinations by state.",en:{instance:{one:"system",other:"systems"}}},"cups.dests_option":{family:"destination",info:"Destinations by option.",en:{instance:{one:"system",other:"systems"}}},"cups.job_num":{family:"jobs",info:"Active jobs.",en:{instance:{one:"system",other:"systems"}}},"cups.job_size":{family:"jobs",info:"Active jobs size.",en:{instance:{one:"system",other:"systems"}}},"cups.destination_job_num":{family:"jobs",info:"Active jobs of {destination}.",en:{instance:{one:"destination",other:"destinations"}}},"cups.destination_job_size":{family:"jobs",info:"Active jobs size of {destination}.",en:{instance:{one:"destination",other:"destinations"}}},"dnsdist.queries":{info:"Client queries received.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.queries_dropped":{info:"Client queries dropped.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.packets_dropped":{info:"Packets dropped.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.answers":{info:"Answers statistics.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_responses":{info:"Backend responses.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_commerrors":{info:"Backend communication errors.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_errors":{info:"Backend error responses.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.cache":{info:"Cache performance.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.servercpu":{info:"DNSdist server CPU utilization.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.servermem":{info:"DNSdist server memory utilization.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.query_latency":{aggregationMethod:"avg",info:"Query latency.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.query_latency_avg":{info:"Average latency for the last N queries.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_ranges":{info:"Number of DHCP Ranges.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_hosts":{info:"Number of DHCP Hosts.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_range_utilization":{aggregationMethod:"avg",info:"DHCP Range utilization.",en:{instance:{one:"dhcp range",other:"dhcp ranges"}}},"dnsmasq_dhcp.dhcp_range_allocated_leases":{info:"DHCP Range Allocated Leases.",en:{instance:{one:"dhcp range",other:"dhcp ranges"}}},"dnsmasq.servers_queries":{info:"Queries forwarded to the upstream servers.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_performance":{info:"Cache performance.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_operations":{info:"Cache operations.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_size":{aggregationMethod:"avg",info:"Cache size.",en:{instance:{one:"server",other:"servers"}}},"dns_query.query_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Query Status",layout:{left:0,top:0,width:4,height:5}}],info:"DNS Query Status.",en:{instance:{one:"server",other:"servers"}}},"dns_query.query_time":{aggregationMethod:"avg",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum DNS Query Response Time",valueRange:[0,null],colors:s.default[1],layout:{left:3,top:0,width:4,height:5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average DNS Query Response Time",valueRange:[0,null],colors:s.default[0],layout:{left:9,top:0,width:4,height:5}}],info:"DNS Query Time.",en:{instance:{one:"server",other:"servers"}}},"docker_engine.engine_daemon_container_actions":{info:"Container Actions.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.engine_daemon_container_states_containers":{info:"Containers In Various States.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.builder_builds_failed_total":{info:"Builder Builds Fails By Reason.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.engine_daemon_health_checks_failed_total":{info:"Health Checks.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_leader":{info:"Swarm Manager Leader.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_object_store":{info:"Swarm Manager Object Store.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_nodes_per_state":{info:"Swarm Manager Nodes Per State.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_tasks_per_state":{info:"Swarm Manager Tasks Per State.",en:{instance:{one:"system",other:"systems"}}},"docker.containers_health_status":{info:"Total number of Docker containers in various health states.",en:{instance:{one:"container",other:"containers"}}},"docker.container_writeable_layer_size":{info:"Docker container writable layer size.",en:{instance:{one:"container",other:"containers"}}},"dockerhub.pulls_sum":{info:"Pulls Summary.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.pulls":{info:"Pulls.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.pulls_rate":{info:"Pulls Rate.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.stars":{info:"Stars.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.status":{info:"Current Status.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.last_updated":{info:"Time Since Last Updated.",en:{instance:{one:"repository",other:"repositories"}}},"dovecot.sessions":{info:"Dovecot Active Sessions.",en:{instance:{one:"server",other:"servers"}}},"dovecot.logins":{info:"Dovecot Logins.",en:{instance:{one:"server",other:"servers"}}},"dovecot.commands":{info:"Dovecot Commands.",en:{instance:{one:"server",other:"servers"}}},"dovecot.faults":{info:"Dovecot Page Faults.",en:{instance:{one:"server",other:"servers"}}},"dovecot.context_switches":{info:"Dovecot Context Switches.",en:{instance:{one:"server",other:"servers"}}},"dovecot.io":{info:"Dovecot Disk I/O.",en:{instance:{one:"server",other:"servers"}}},"dovecot.net":{info:"Dovecot Network Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"dovecot.syscalls":{info:"Dovecot Number of SysCalls.",en:{instance:{one:"server",other:"servers"}}},"dovecot.lookup":{info:"Dovecot Lookups.",en:{instance:{one:"server",other:"servers"}}},"dovecot.cache":{info:"Dovecot Cache Hits.",en:{instance:{one:"server",other:"servers"}}},"dovecot.auth":{info:"Dovecot Authentications.",en:{instance:{one:"server",other:"servers"}}},"dovecot.auth_cache":{info:"Dovecot Authentication Cache.",en:{instance:{one:"server",other:"servers"}}},"cgroup.fd_closed":{info:"Files closed.",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.file_open":{info:"Number of open files.",en:{instance:{one:"service",other:"services"}}},"services.file_open_error":{info:"Fails to open files.",en:{instance:{one:"service",other:"services"}}},"services.file_closed":{info:"Files closed.",en:{instance:{one:"service",other:"services"}}},"services.file_close_error":{info:"Fails to close files.",en:{instance:{one:"service",other:"services"}}},"mem.meory_map":{info:"Monitor calls for <code>msync(2)</code>..",en:{instance:{one:"system",other:"systems"}}},"mdstat.mdstat_flush":{info:"MD flushes.",en:{instance:{one:"system",other:"systems"}}},"cgroup.oomkills":{info:"OOM kills. This chart is provided by eBPF plugin..",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.oomkills":{info:"OOM kills. This chart is provided by eBPF plugin..",en:{instance:{one:"service",other:"services"}}},"apps.oomkills":{info:"OOM kills.",en:{instance:{one:"app group",other:"app groups"}}},"cgroup.net_conn_ipv4":{info:"Calls to tcp_v4_connection.",en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_conn_ipv6":{info:"Calls to tcp_v6_connection.",en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_sent":{info:"Bytes sent.",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.net_conn_ipv4":{info:"Calls to tcp_v4_connection.",en:{instance:{one:"service",other:"services"}}},"services.net_conn_ipv6":{info:"Calls to tcp_v6_connection.",en:{instance:{one:"service",other:"services"}}},"services.net_bytes_sent":{info:"Bytes sent.",en:{instance:{one:"service",other:"services"}}},"services.net_tcp_retransmit":{info:"Calls to tcp_retransmit.",en:{instance:{one:"service",other:"services"}}},"apps.dc_ratio":{aggregationMethod:"avg",info:"Percentage of files inside directory cache.",en:{instance:{one:"app group",other:"app groups"}}},"services.dc_ratio":{aggregationMethod:"avg",info:"Percentage of files inside directory cache.",en:{instance:{one:"service",other:"services"}}},"filesystem.read_latency":{aggregationMethod:"avg",info:"ext4 latency for each read request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.write_latency":{aggregationMethod:"avg",info:"ext4 latency for each write request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.open_latency":{aggregationMethod:"avg",info:"ext4 latency for each open request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.sync_latency":{aggregationMethod:"avg",info:"ext4 latency for each sync request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.attributte_latency":{aggregationMethod:"avg",info:"nfs latency for each attribute request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"netdata.ebpf_aral_stat_size":{info:"Bytes allocated for ARAL..",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_aral_stat_alloc":{info:"Calls to allocate memory.",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_kernel_memory":{info:"Memory allocated for hash tables..",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_hash_tables_count":{info:"Number of hash tables loaded.",en:{instance:{one:"agent",other:"agents"}}},"elasticsearch.node_indices_indexing":{info:"Indexing Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_indexing_current":{info:"Indexing Operations Current.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_indexing_time":{aggregationMethod:"avg",info:"Time Spent On Indexing Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search":{info:"Search Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search_current":{info:"Search Operations Current.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search_time":{aggregationMethod:"avg",info:"node_indices_search_time.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_refresh":{info:"Refresh Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_refresh_time":{aggregationMethod:"avg",info:"Time Spent On Refresh Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_flush":{info:"Flush Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_flush_time":{aggregationMethod:"avg",info:"Time Spent On Flush Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_fielddata_memory_usage":{info:"Fielddata Cache Memory Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_fielddata_evictions":{info:"Fielddata Evictions.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_count":{info:"Segments Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_memory_usage_total":{info:"Segments Memory Usage Total.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_memory_usage":{info:"Segments Memory Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_translog_operations":{info:"Translog Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_translog_size":{info:"Translog Size.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_file_descriptors":{info:"Process File Descriptors.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_heap":{aggregationMethod:"avg",info:"JVM Heap Percentage Currently in Use.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_heap_bytes":{info:"JVM Heap Commit And Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pools_count":{info:"JVM Buffer Pools Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pool_direct_memory":{info:"JVM Buffer Pool Direct Memory.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pool_mapped_memory":{info:"JVM Buffer Pool Mapped Memory.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_gc_count":{info:"JVM Garbage Collections.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_gc_time":{aggregationMethod:"avg",info:"JVM Time Spent On Garbage Collections.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_thread_pool_queued":{info:"Thread Pool Queued Threads Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_thread_pool_rejected":{info:"Thread Pool Rejected Threads Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.cluster_communication_packets":{info:"Cluster Communication.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_communication":{info:"Cluster Communication Bandwidth.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.http_connections":{info:"HTTP Connections.",en:{instance:{one:"server",other:"servers"}}},"elasticsearch.breakers_trips":{info:"Circuit Breaker Trips Count.",en:{instance:{one:"server",other:"servers"}}},"elasticsearch.cluster_health_status":{info:"Cluster Status.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_number_of_nodes":{info:"Cluster Nodes Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_shards_count":{info:"Cluster Shards Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_pending_tasks":{info:"Cluster Pending Tasks.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_number_of_in_flight_fetch":{info:"Cluster Unfinished Fetches.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_count":{info:"Cluster Indices Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_shards_count":{info:"Cluster Indices Shards Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_docs_count":{info:"Cluster Indices Docs Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_store_size":{info:"Cluster Indices Store Size.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_query_cache":{info:"Cluster Indices Query Cache.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_nodes_by_role_count":{info:"Cluster Nodes By Role Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.node_index_health":{info:"Index Health.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_shards_count":{info:"Index Shards Count.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_docs_count":{info:"Index Docs Count.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_store_size":{info:"Index Store Size.",en:{instance:{one:"index",other:"indexes"}}},"energid.blockindex":{info:"Blockchain index.",en:{instance:{one:"server",other:"servers"}}},"energid.difficulty":{info:"Blockchain difficulty.",en:{instance:{one:"server",other:"servers"}}},"energid.mempool":{info:"Memory pool.",en:{instance:{one:"server",other:"servers"}}},"energid.secmem":{info:"Secure memory.",en:{instance:{one:"server",other:"servers"}}},"energid.network":{info:"Network.",en:{instance:{one:"server",other:"servers"}}},"energid.timeoffset":{info:"Network time offset.",en:{instance:{one:"server",other:"servers"}}},"energid.utxo_transactions":{info:"Transactions.",en:{instance:{one:"server",other:"servers"}}},"exim.qemails":{info:"Exim Queue Emails.",en:{instance:{one:"server",other:"servers"}}},"fail2ban.faile_attempts":{info:"Failed attempts.",en:{instance:{one:"system",other:"systems"}}},"filecheck.file_existence":{info:"File Existence (0: not exists, 1: exists).",en:{instance:{one:"file",other:"files"}}},"filecheck.file_mtime_ago":{info:"File Time Since the Last Modification.",en:{instance:{one:"file",other:"files"}}},"filecheck.file_size":{info:"File Size.",en:{instance:{one:"file",other:"files"}}},"filecheck.dir_existence":{info:"Dir Existence (0: not exists, 1: exists).",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_mtime_ago":{info:"Dir Time Since the Last Modification.",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_num_of_files":{info:"Dir Number of Files.",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_size":{info:"Dir Size.",en:{instance:{one:"directory",other:"directories"}}},"fluentd.retry_count":{info:"Plugin Retry Count.",en:{instance:{one:"plugin",other:"plugins"}}},"fluentd.buffer_queue_length":{info:"Plugin Buffer Queue Length.",en:{instance:{one:"plugin",other:"plugins"}}},"fluentd.buffer_total_queued_size":{info:"Plugin Buffer Total Size.",en:{instance:{one:"plugin",other:"plugins"}}},"cpu.temperature":{info:"Core temperature.",en:{instance:{one:"core",other:"cores"}}},"cpu.scaling_cur_freq":{info:"Current CPU Scaling Frequency.",en:{instance:{one:"system",other:"systems"}}},"system.dev_intr":{info:"Device Interrupts.",en:{instance:{one:"system",other:"systems"}}},"system.soft_intr":{info:"Software Interrupts.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_shared_mem_segs":{info:"IPC Shared Memory Segments.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_shared_mem_size":{info:"IPC Shared Memory Segments Size.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_queues":{info:"Number of IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_messages":{info:"Number of Messages in IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_size":{info:"Size of IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpconnaborts":{info:"TCP Connection Aborts.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpofo":{info:"TCP Out-Of-Order Queue.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpsyncookies":{info:"TCP SYN Cookies.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcplistenissues":{info:"TCP Listen Socket Issues.",en:{instance:{one:"system",other:"systems"}}},"ipv4.ecnpkts":{info:"IPv4 ECN Statistics.",en:{instance:{one:"system",other:"systems"}}},"ipfw.mem":{info:"Memory allocated by rules.",en:{instance:{one:"system",other:"systems"}}},"ipfw.packets":{info:"Packets.",en:{instance:{one:"system",other:"systems"}}},"ipfw.bytes":{info:"Bytes.",en:{instance:{one:"system",other:"systems"}}},"ipfw.active":{info:"Active rules.",en:{instance:{one:"system",other:"systems"}}},"ipfw.expired":{info:"Expired rules.",en:{instance:{one:"system",other:"systems"}}},"system.packets":{info:"Network Packets.",en:{instance:{one:"system",other:"systems"}}},"zfs.hits_rate":{info:"ZFS ARC Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.dhits_rate":{info:"ZFS Demand Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.phits_rate":{info:"ZFS Prefetch Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.mhits_rate":{info:"ZFS Metadata Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.l2hits_rate":{info:"ZFS L2 Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.actual_hits_rate":{info:"ZFS Actual Cache Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.demand_data_hits_rate":{info:"ZFS Data Demand Efficiency Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.prefetch_data_hits_rate":{info:"ZFS Data Prefetch Efficiency Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.trim_bytes":{info:"Successfully TRIMmed bytes.",en:{instance:{one:"system",other:"systems"}}},"zfs.trim_requests":{info:"TRIM requests.",en:{instance:{one:"system",other:"systems"}}},"ipmi.sel":{groupBy:["node"],info:"IPMI Events.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_state":{info:"IPMI Sensors State.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_temperature_c":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"max",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{left:0,top:0,width:2,height:5}},{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Temperature",layout:{left:2,top:0,width:2,height:2.5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"number",title:"Average Temperature",layout:{left:2,top:2.5,width:2,height:2.5}}],info:"IPMI Sensor Temperature Celsius.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_temperature_f":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"max",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{left:0,top:0,width:2,height:5}},{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Temperature",layout:{left:2,top:0,width:2,height:2.5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"number",title:"Average Temperature",layout:{left:2,top:2.5,width:2,height:2.5}}],info:"IPMI Sensor Temperature Fahrenheit.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_voltage":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Voltage",colors:s.default[12],layout:{left:8,top:0,width:2,height:5}},{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Voltage",layout:{left:10,top:0,width:2,height:2.5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"number",title:"Average Voltage",layout:{left:10,top:2.5,width:2,height:2.5}}],groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Voltage.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_ampere":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Current.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_fan_speed":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Fan Speed",layout:{left:4,top:0,width:2,height:5}},{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Fan Speed",layout:{left:6,top:0,width:2,height:2.5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"number",title:"Average Fan Speed",layout:{left:6,top:2.5,width:2,height:2.5}}],groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Fans speed.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_power":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Power.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_reading_percent":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Reading Percentage.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensors_states":{info:"IPMI Sensors State.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.temperatures_c":{groupBy:["node"],aggregationMethod:"max",mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{left:0,top:0,width:2,height:5}},{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Temperature",layout:{left:2,top:0,width:2,height:2.5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"number",title:"Average Temperature",layout:{left:2,top:2.5,width:2,height:2.5}}],info:"System Celsius Temperatures read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.temperatures_f":{groupBy:["node"],aggregationMethod:"max",info:"System Celsius Temperatures read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.voltages":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Voltage",colors:s.default[12],layout:{left:8,top:0,width:2,height:5}},{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Voltage",layout:{left:10,top:0,width:2,height:2.5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"number",title:"Average Voltage",layout:{left:10,top:2.5,width:2,height:2.5}}],groupBy:["node"],aggregationMethod:"avg",info:"System Voltages read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.amps":{groupBy:["node"],aggregationMethod:"avg",info:"System Current read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.rpm":{mainheads:[{groupBy:["selected"],aggregationMethod:"max",chartLibrary:"easypiechart",title:"Maximum Fan Speed",layout:{left:4,top:0,width:2,height:5}},{groupBy:["selected"],aggregationMethod:"min",chartLibrary:"number",title:"Minimum Fan Speed",layout:{left:6,top:0,width:2,height:2.5}},{groupBy:["selected"],aggregationMethod:"avg",chartLibrary:"number",title:"Average Fan Speed",layout:{left:6,top:2.5,width:2,height:2.5}}],groupBy:["node"],aggregationMethod:"avg",info:"System Fans read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.watts":{groupBy:["node"],aggregationMethod:"avg",info:"System Power read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.percent":{groupBy:["node"],aggregationMethod:"avg",info:"System Metrics read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"freeradius.proxy_bad_authentication":{info:"Bad Authentication Requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.accounting":{info:"Accounting.",en:{instance:{one:"server",other:"servers"}}},"freeradius.bad_accounting":{info:"Bad Accounting Requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_accounting":{info:"Accounting.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_bad_accounting":{info:"Bad Accounting Requests.",en:{instance:{one:"server",other:"servers"}}},"gearman.total_jobs":{info:"Total Jobs.",en:{instance:{one:"server",other:"servers"}}},"gearman.single_job":{info:"{job_name}.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_ancient_io_rate":{info:"Ancient Chaindata rate.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_ancient_io":{info:"Session ancient Chaindata.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_disk_io":{info:"Session chaindata on disk.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_disk_io_rate":{info:"On disk Chaindata rate.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_pending":{info:"Pending Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_current":{info:"Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_queued":{info:"Queued Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.p2p_peers":{info:"Number of Peers.",en:{instance:{one:"server",other:"servers"}}},"geth.rpc_calls":{info:"rpc calls.",en:{instance:{one:"server",other:"servers"}}},"expvar.memstats.heap":{info:"memory: size of heap memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.stack":{info:"memory: size of stack memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.mspan":{info:"memory: size of mspan memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.mcache":{info:"memory: size of mcache memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.live_objects":{info:"memory: number of live objects.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.sys":{info:"memory: size of reserved virtual address space.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.gc_pauses":{info:"memory: average duration of GC pauses.",en:{instance:{one:"system",other:"systems"}}},"hddtemp.temperatures":{aggregationMethod:"avg",info:"Disk Temperatures.",en:{instance:{one:"device",other:"devices"}}},"hdfs.threads":{info:"Number of Threads.",en:{instance:{one:"device",other:"devices"}}},"hdfs.logs_total":{info:"Number of Logs.",en:{instance:{one:"device",other:"devices"}}},"hdfs.open_connections":{info:"RPC Open Connections.",en:{instance:{one:"device",other:"devices"}}},"hdfs.call_queue_length":{info:"RPC Call Queue Length.",en:{instance:{one:"device",other:"devices"}}},"hdfs.capacity":{info:"Capacity Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.used_capacity":{info:"Used Capacity Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.load":{info:"Number of Concurrent File Accesses (read/write) Across All DataNodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.volume_failures_total":{info:"Number of Volume Failures Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.files_total":{info:"Number of Tracked Files.",en:{instance:{one:"device",other:"devices"}}},"hdfs.blocks_total":{info:"Number of Allocated Blocks in the System.",en:{instance:{one:"device",other:"devices"}}},"hdfs.blocks":{info:"Number of Problem Blocks (can point to an unhealthy cluster).",en:{instance:{one:"device",other:"devices"}}},"hdfs.data_nodes":{info:"Number of Data Nodes By Status.",en:{instance:{one:"device",other:"devices"}}},"hdfs.datanode_used_capacity":{info:"Used Capacity.",en:{instance:{one:"device",other:"devices"}}},"hdfs.datanode_failed_volumes":{info:"Number of Failed Volumes.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ctrl_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ctrl_temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ld_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.pd_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.pd_temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"httpcheck.in_state":{aggregationMethod:"avg",info:"HTTP Current State Duration.",en:{instance:{one:"server",other:"servers"}}},"icecast.listeners":{info:"Number Of Listeners.",en:{instance:{one:"server",other:"servers"}}},"ioping.latency":{info:"Read Latency.",en:{instance:{one:"disk",other:"disks"}}},"ipfs.bandwidth":{info:"IPFS Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"ipfs.peers":{info:"IPFS Peers.",en:{instance:{one:"server",other:"servers"}}},"ipfs.repo_size":{info:"IPFS Repo Size.",en:{instance:{one:"server",other:"servers"}}},"ipfs.repo_objects":{info:"IPFS Repo Objects.",en:{instance:{one:"server",other:"servers"}}},"isc_dhcpd.active_leases_total":{info:"Active Leases Total.",en:{instance:{one:"server",other:"servers"}}},"isc_dhcpd.pool_active_leases":{info:"Pool Active Leases.",en:{instance:{one:"pool",other:"pools"}}},"isc_dhcpd.pool_utilization":{aggregationMethod:"avg",info:"Pool Utilization.",en:{instance:{one:"pool",other:"pools"}}},"libreswan.net":{info:"LibreSWAN Tunnel ${name} Traffic.",en:{instance:{one:"tunnel",other:"tunnels"}}},"libreswan.uptime":{aggregationMethod:"min",info:"LibreSWAN Tunnel ${name} Uptime.",en:{instance:{one:"tunnel",other:"tunnels"}}},"lighttpd.scoreboard":{info:"ScoreBoard.",en:{instance:{one:"server",other:"servers"}}},"litespeed.net_throughput":{info:"Network Throughput HTTPS.",en:{instance:{one:"server",other:"servers"}}},"litespeed.connections":{info:"Connections HTTPS.",en:{instance:{one:"server",other:"servers"}}},"litespeed.requests":{info:"Requests.",en:{instance:{one:"server",other:"servers"}}},"litespeed.requests_processing":{info:"Requests In Processing.",en:{instance:{one:"server",other:"servers"}}},"litespeed.cache":{info:"Private Cache Hits.",en:{instance:{one:"server",other:"servers"}}},"litespeed.static":{info:"Static Hits.",en:{instance:{one:"server",other:"servers"}}},"logstash.jvm_mem_heap":{info:"JVM Heap Memory.",en:{instance:{one:"system",other:"systems"}}},"megacli.adapter_degraded":{info:"Adapter State.",en:{instance:{one:"device",other:"devices"}}},"megacli.pd_media_error":{info:"Physical Drives Media Errors.",en:{instance:{one:"device",other:"devices"}}},"megacli.pd_predictive_failure":{info:"Physical Drives Predictive Failures.",en:{instance:{one:"device",other:"devices"}}},"megacli.bbu_relative_charge":{aggregationMethod:"avg",info:"Relative State of Charge.",en:{instance:{one:"battery",other:"batteries"}}},"megacli.bbu_cycle_count":{info:"Cycle Count.",en:{instance:{one:"battery",other:"batteries"}}},"memcached.cache":{info:"Cache Size.",en:{instance:{one:"system",other:"systems"}}},"memcached.net":{info:"Network.",en:{instance:{one:"system",other:"systems"}}},"memcached.connections":{info:"Connections.",en:{instance:{one:"system",other:"systems"}}},"memcached.items":{info:"Items.",en:{instance:{one:"system",other:"systems"}}},"memcached.evicted_reclaimed":{info:"Evicted and Reclaimed Items.",en:{instance:{one:"system",other:"systems"}}},"memcached.get":{info:"Get Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.get_rate":{info:"Get Request Rate.",en:{instance:{one:"system",other:"systems"}}},"memcached.set_rate":{info:"Set Request Rate.",en:{instance:{one:"system",other:"systems"}}},"memcached.delete":{info:"Delete Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.cas":{info:"Check and Set Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.increment":{info:"Increment Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.decrement":{info:"Decrement Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.touch":{info:"Touch Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.touch_rate":{info:"Touch Request Rate.",en:{instance:{one:"system",other:"systems"}}},"mongodb.operations_rate":{info:"Operations rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.operations_latency_time":{aggregationMethod:"avg",info:"Operations Latency.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.operations_by_type_rate":{info:"Operations by type.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.document_operations_rate":{info:"Document operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.scanned_indexes_rate":{info:"Scanned indexes.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.scanned_documents_rate":{info:"Scanned documents.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.active_clients_count":{info:"Connected clients.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.queued_operations_count":{info:"Queued operations because of a lock.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.lock_acquisitions_rate":{info:"Lock acquisitions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_open_count":{info:"Open cursors.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_open_no_timeout_count":{info:"Open cursors with disabled timeout.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_opened_rate":{info:"Opened cursors rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_timed_out_rate":{info:"Timed-out cursors.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_by_lifespan_count":{info:"Cursors lifespan.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_count":{info:"Current transactions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_rate":{info:"Transactions rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_commits_rate":{info:"Transactions commits.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_commits_duration_time":{aggregationMethod:"avg",info:"Transactions successful commits duration.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.connections_usage":{info:"Connections usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.connections_by_state_count":{info:"Connections By State.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.asserts_rate":{info:"Raised assertions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_traffic_rate":{info:"Network traffic.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_requests_rate":{info:"Network Requests.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_slow_dns_resolutions_rate":{info:"Slow DNS resolution operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_slow_ssl_handshakes_rate":{info:"Slow SSL handshake operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_resident_size":{info:"Used resident memory.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_virtual_size":{info:"Used virtual memory.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_page_faults_rate":{info:"Memory page faults.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_tcmalloc_stats":{info:"TCMalloc statistics.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_concurrent_read_transactions_usage":{info:"Wired Tiger concurrent read transactions usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_concurrent_write_transactions_usage":{info:"Wired Tiger concurrent write transactions usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_usage":{info:"Wired Tiger cache usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_dirty_space_size":{info:"Wired Tiger cache dirty space size.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_io_rate":{info:"Wired Tiger IO activity.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_evictions_rate":{info:"Wired Tiger cache evictions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.database_collection_count":{info:"Database collections.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_indexes_count":{info:"Database indexes.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_views_count":{info:"Database views.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_documents_count":{info:"Database documents.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_data_size":{info:"Database data size.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_index_size":{info:"Database index size.",en:{instance:{one:"database",other:"databases"}}},"mongodb.repl_set_member_state":{info:"Replica Set member state.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_health_status":{info:"Replica Set member health status.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_replication_lag_time":{aggregationMethod:"max",info:"Replica Set member replication lag.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_heartbeat_latency_time":{aggregationMethod:"avg",info:"Replica Set member heartbeat latency.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_ping_rtt_time":{aggregationMethod:"avg",info:"Replica Set member ping RTT.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_uptime":{aggregationMethod:"min",info:"Replica Set member uptime.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.sharding_nodes_count":{info:"Sharding Nodes.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_sharded_databases_count":{info:"Sharded databases.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_sharded_collections_count":{info:"Sharded collections.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_shard_chunks_count":{info:"Shard chunks.",en:{instance:{one:"shard",other:"shards"}}},"monit.filesystems":{info:"Filesystems.",en:{instance:{one:"system",other:"systems"}}},"monit.directories":{info:"Directories.",en:{instance:{one:"system",other:"systems"}}},"monit.files":{info:"Files.",en:{instance:{one:"system",other:"systems"}}},"monit.fifos":{info:"Pipes (fifo).",en:{instance:{one:"system",other:"systems"}}},"monit.programs":{info:"Programs statuses.",en:{instance:{one:"system",other:"systems"}}},"monit.services":{info:"Processes statuses.",en:{instance:{one:"system",other:"systems"}}},"monit.process_uptime":{aggregationMethod:"min",info:"Processes uptime.",en:{instance:{one:"system",other:"systems"}}},"monit.process_threads":{info:"Processes threads.",en:{instance:{one:"system",other:"systems"}}},"monit.process_childrens":{info:"Child processes.",en:{instance:{one:"system",other:"systems"}}},"monit.hosts":{info:"Hosts.",en:{instance:{one:"system",other:"systems"}}},"monit.host_latency":{aggregationMethod:"avg",info:"Hosts latency.",en:{instance:{one:"system",other:"systems"}}},"monit.networks":{info:"Network interfaces and addresses.",en:{instance:{one:"system",other:"systems"}}},"mysql.queries_type":{info:"Queries By Type.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connections":{info:"Connections.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connections_active":{info:"Active Connections.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.threads":{info:"Threads.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.innodb_os_log_fsync_writes":{info:"InnoDB OS Log Operations.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.innodb_os_log_io":{info:"InnoDB OS Log Bandwidth.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connection_errors":{info:"Connection Errors.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.open_tables":{info:"Open Tables.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.process_list_queries_count":{info:"Queries Count.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_writesets":{info:"Replicated Writesets.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_conflicts":{info:"Replication Conflicts.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_thread_count":{info:"Total Number of WSRep (applier/rollbacker) Threads.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.key_requests":{info:"MyISAM Key Cache Requests.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.key_disk_ops":{info:"MyISAM Key Cache Disk Operations.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.slave_status":{info:"I/O / SQL Thread Running State.",en:{instance:{one:"connection",other:"connections"}}},"mysql.userstats_created_transactions":{info:"User Transactions.",en:{instance:{one:"user",other:"users"}}},"mysql.userstats_empty_queries":{info:"User Empty Queries.",en:{instance:{one:"user",other:"users"}}},"netfilter.netlink_new":{info:"Connection Tracker New Connections.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_changes":{info:"Connection Tracker Changes.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_search":{info:"Connection Tracker Searches.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_errors":{info:"Connection Tracker Errors.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_expect":{info:"Connection Tracker Expectations.",en:{instance:{one:"system",other:"systems"}}},"netfilter.nfacct_packets":{info:"Netfilter Accounting Packets.",en:{instance:{one:"system",other:"systems"}}},"netfilter.nfacct_bytes":{info:"Netfilter Accounting Bandwidth.",en:{instance:{one:"system",other:"systems"}}},"nginxvts.connections_total":{info:"Total connections.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.shm_used_node":{info:"Number of node using shared memory.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_responses_total":{info:"Total number of responses by code class.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_traffic_total":{info:"Total amount of data transferred to and from the server.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_cache_total":{info:"Total server cache.",en:{instance:{one:"server",other:"servers"}}},"nsd.queries":{info:"queries.",en:{instance:{one:"server",other:"servers"}}},"nsd.zones":{info:"zones.",en:{instance:{one:"server",other:"servers"}}},"nsd.protocols":{info:"protocol.",en:{instance:{one:"server",other:"servers"}}},"nsd.type":{info:"query type.",en:{instance:{one:"server",other:"servers"}}},"nsd.transfer":{info:"transfer.",en:{instance:{one:"server",other:"servers"}}},"nsd.rcode":{info:"return code.",en:{instance:{one:"server",other:"servers"}}},"ntpd.sys_rootdisp":{info:"Total root dispersion to the primary reference clock.",en:{instance:{one:"server",other:"servers"}}},"ntpd.peer_stratum":{info:"Peer stratum.",en:{instance:{one:"peer",other:"peers"}}},"nut.charge":{aggregationMethod:"avg",info:"UPS Charge.",en:{instance:{one:"device",other:"devices"}}},"nut.runtime":{info:"UPS Runtime.",en:{instance:{one:"device",other:"devices"}}},"nut.battery.voltage":{aggregationMethod:"avg",info:"UPS Battery Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.input.voltage":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.input.current":{aggregationMethod:"avg",info:"UPS Input Current.",en:{instance:{one:"device",other:"devices"}}},"nut.input.frequency":{aggregationMethod:"avg",info:"UPS Input Frequency.",en:{instance:{one:"device",other:"devices"}}},"nut.output.voltage":{aggregationMethod:"avg",info:"UPS Output Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.load":{aggregationMethod:"avg",info:"UPS Load.",en:{instance:{one:"device",other:"devices"}}},"nut.load_usage":{info:"UPS Load Usage.",en:{instance:{one:"device",other:"devices"}}},"nut.temperature":{aggregationMethod:"avg",info:"UPS Temperature.",en:{instance:{one:"device",other:"devices"}}},"nut.clients":{info:"UPS Connected Clients.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_load":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["ups_name"],chartLibrary:"bars",title:"Top by Load",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],info:"The current load on the UPS, expressed as a percentage of its rated capacity.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_load_usage":{aggregationMethod:"sum",mainheads:[{groupBy:["label"],groupByLabel:["ups_name"],chartLibrary:"bars",title:"Top by Power Output",dimensionsSort:"valueDesc",colors:s.default[12],layout:{left:3,top:0,width:3,height:5}}],info:"The amount of power that the UPS delivers to the equipment connected to it.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_status":{aggregationMethod:"sum",info:'The overall status of the UPS. For details, see <a href="https://networkupstools.org/docs/developer-guide.chunked/ar01s04.html#_status_data" target="_blank">NUT status data</a>.',en:{instance:{one:"device",other:"devices"}}},"upsd.ups_temperature":{aggregationMethod:"max",info:"The current temperature of the UPS.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_battery_charge":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["ups_name"],chartLibrary:"bars",title:"Top by Battery Charge (ascending)",dimensionsSort:"valueAsc",colors:s.default[12],layout:{left:6,top:0,width:3,height:5}}],info:"The current charge level of the UPS battery, expressed as a percentage.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_battery_estimated_runtime":{aggregationMethod:"avg",mainheads:[{groupBy:["label"],groupByLabel:["ups_name"],chartLibrary:"bars",title:"Top by Estimated Runtime (ascending)",dimensionsSort:"valueAsc",colors:s.default[12],layout:{left:9,top:0,width:3,height:5}}],info:"The estimated amount of time that the UPS can power its connected equipment during a power outage.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_battery_voltage":{aggregationMethod:"avg",info:"The current voltage of the UPS battery.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_battery_voltage_nominal":{aggregationMethod:"avg",info:"The nominal voltage of the UPS battery. The nominal voltage is the voltage that the battery is designed to operate at.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_input_voltage":{aggregationMethod:"avg",info:"The voltage of the power that is coming into the UPS from the utility.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_input_voltage_nominal":{aggregationMethod:"avg",info:"The nominal input voltage for the UPS. It is the voltage that the UPS is designed to operate at.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_input_current":{aggregationMethod:"avg",info:"The current amount of current that the UPS is drawing from the utility power.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_input_current_nominal":{aggregationMethod:"avg",info:"The nominal input current for the UPS. It is the current that the UPS is expected to draw from the utility power when it is fully loaded.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_input_frequency":{aggregationMethod:"avg",info:"The frequency of the utility power that the UPS is receiving.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_input_frequency_nominal":{aggregationMethod:"avg",info:"The nominal input frequency for the UPS. It is the frequency of the utility power that the UPS is designed to operate at.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_output_voltage":{aggregationMethod:"avg",info:"The voltage of the power that the UPS is providing to the connected equipment.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_output_voltage_nominal":{aggregationMethod:"avg",info:"The nominal output voltage for the UPS. It is the voltage that the UPS is designed to provide to the connected equipment.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_output_current":{aggregationMethod:"avg",info:"The current amount of current that the UPS is providing to the connected equipment.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_output_current_nominal":{aggregationMethod:"avg",info:"The nominal output current for the UPS. It is the amount of current that the UPS is designed to provide to the connected equipment under normal operating conditions.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_output_frequency":{aggregationMethod:"avg",info:"The frequency of the power that the UPS is providing to the connected equipment.",en:{instance:{one:"device",other:"devices"}}},"upsd.ups_output_frequency_nominal":{aggregationMethod:"avg",info:"The nominal output frequency for the UPS. It is the frequency of the power that the UPS is designed to provide to the connected equipment under normal operating conditions.",en:{instance:{one:"device",other:"devices"}}},"nvidia_smi.gpu_pcie_bandwidth_utilization":{aggregationMethod:"avg",info:"PCI Express Bandwidth Utilization.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_frame_buffer_memory_usage":{info:"Frame buffer memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_bar1_memory_usage":{info:"BAR1 memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_voltage":{aggregationMethod:"avg",info:"Voltage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_power_draw":{aggregationMethod:"avg",info:"Power draw.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_mode_current_status":{info:"MIG current mode.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_devices_count":{info:"MIG devices.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_frame_buffer_memory_usage":{info:"Frame buffer memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_bar1_memory_usage":{info:"BAR1 memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"openldap.total_connections":{info:"Total Connections.",en:{instance:{one:"server",other:"servers"}}},"openldap.traffic_stats":{info:"Traffic.",en:{instance:{one:"server",other:"servers"}}},"openldap.operations_status":{info:"Operations Status.",en:{instance:{one:"server",other:"servers"}}},"openldap.referrals":{info:"Referrals.",en:{instance:{one:"server",other:"servers"}}},"openldap.entries":{info:"Entries.",en:{instance:{one:"server",other:"servers"}}},"openldap.ldap_operations":{info:"Operations.",en:{instance:{one:"server",other:"servers"}}},"openldap.waiters":{info:"Waiters.",en:{instance:{one:"server",other:"servers"}}},"opensips.dialogs_active":{info:"OpenSIPS Active Dialogs.",en:{instance:{one:"system",other:"systems"}}},"opensips.users":{info:"OpenSIPS Users.",en:{instance:{one:"system",other:"systems"}}},"opensips.registrar":{info:"OpenSIPS Registrar.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions":{info:"OpenSIPS Transactions.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_rcv":{info:"OpenSIPS Core Receives.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_fwd":{info:"OpenSIPS Core Forwards.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_drop":{info:"OpenSIPS Core Drops.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_err":{info:"OpenSIPS Core Errors.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_bad":{info:"OpenSIPS Core Bad.",en:{instance:{one:"system",other:"systems"}}},"opensips.tm_replies":{info:"OpenSIPS TM Replies.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions_status":{info:"OpenSIPS Transactions Status.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions_inuse":{info:"OpenSIPS InUse Transactions.",en:{instance:{one:"system",other:"systems"}}},"opensips.sl_replies":{info:"OpenSIPS SL Replies.",en:{instance:{one:"system",other:"systems"}}},"opensips.dialogs":{info:"OpenSIPS Dialogs.",en:{instance:{one:"system",other:"systems"}}},"opensips.net_waiting":{info:"OpenSIPS Network Waiting.",en:{instance:{one:"system",other:"systems"}}},"opensips.uri_checks":{info:"OpenSIPS URI Checks.",en:{instance:{one:"system",other:"systems"}}},"opensips.traces":{info:"OpenSIPS Traces.",en:{instance:{one:"system",other:"systems"}}},"opensips.shmem":{info:"OpenSIPS Shared Memory.",en:{instance:{one:"system",other:"systems"}}},"opensips.shmem_fragment":{info:"OpenSIPS Shared Memory Fragmentation.",en:{instance:{one:"system",other:"systems"}}},"oracledb.session_count":{info:"Session Count.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.session_limit_usage":{info:"Session Limit Usage.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.logons":{info:"Logons.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.physical_disk_read_writes":{info:"Physical Disk Reads/Writes.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.sorts_on_disks":{info:"Sorts On Disk.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.full_table_scans":{info:"Full Table Scans.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.database_wait_time_ratio":{aggregationMethod:"avg",info:"Database Wait Time Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.shared_pool_free_memory":{info:"Shared Pool Free Memory.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.in_memory_sorts_ratio":{aggregationMethod:"avg",info:"In-Memory Sorts Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.sql_service_response_time":{aggregationMethod:"avg",info:"SQL Service Response Time.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.user_rollbacks":{info:"User Rollbacks.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.enqueue_timeouts":{info:"Enqueue Timeouts.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.cache_hit_ration":{aggregationMethod:"avg",info:"Cache Hit Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.global_cache_blocks":{info:"Global Cache Blocks Events.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.activity":{info:"Activities.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.wait_time":{aggregationMethod:"avg",info:"Wait Time.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.tablespace_size":{info:"Size.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.tablespace_usage":{info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.tablespace_usage_in_percent":{aggregationMethod:"avg",info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_size":{info:"Size.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_usage":{info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_usage_in_percent":{aggregationMethod:"avg",info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"perf.cpu_cycles":{info:"CPU cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.instructions":{info:"Instructions.",en:{instance:{one:"system",other:"systems"}}},"perf.branch_instructions":{info:"Branch instructions.",en:{instance:{one:"system",other:"systems"}}},"perf.cache":{info:"Cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.bus_cycles":{info:"Bus cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.stalled_cycles":{info:"Stalled frontend and backend cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.migrations":{info:"CPU migrations.",en:{instance:{one:"system",other:"systems"}}},"perf.alignment_faults":{info:"Alignment faults.",en:{instance:{one:"system",other:"systems"}}},"perf.emulation_faults":{info:"Emulation faults.",en:{instance:{one:"system",other:"systems"}}},"perf.l1d_cache":{info:"L1D cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.l1d_cache_prefetch":{info:"L1D prefetch cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.l1i_cache":{info:"L1I cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.ll_cache":{info:"LL cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.dtlb_cache":{info:"DTLB cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.itlb_cache":{info:"ITLB cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.pbu_cache":{info:"PBU cache operations.",en:{instance:{one:"system",other:"systems"}}},"pihole.unwanted_domains_blocking_status":{info:"Unwanted Domains Blocking Status.",en:{instance:{one:"server",other:"servers"}}},"pika.connections":{info:"Connections.",en:{instance:{one:"server",other:"servers"}}},"pika.clients":{info:"Clients.",en:{instance:{one:"server",other:"servers"}}},"pika.memory":{info:"Memory usage.",en:{instance:{one:"server",other:"servers"}}},"pika.connected_replicas":{info:"Connected replicas.",en:{instance:{one:"server",other:"servers"}}},"pika.commands":{info:"Processed commands.",en:{instance:{one:"server",other:"servers"}}},"pika.commands_calls":{info:"Calls per command.",en:{instance:{one:"server",other:"servers"}}},"pika.database_strings_keys":{info:"Strings type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_strings_expires_keys":{info:"Strings type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_strings_invalid_keys":{info:"Strings type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_keys":{info:"Hashes type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_expires_keys":{info:"Hashes type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_invalid_keys":{info:"Hashes type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_keys":{info:"Lists type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_expires_keys":{info:"Lists type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_invalid_keys":{info:"Lists type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_keys":{info:"Zsets type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_expires_keys":{info:"Zsets type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_invalid_keys":{info:"Zsets type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_keys":{info:"Sets type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_expires_keys":{info:"Sets type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_invalid_keys":{info:"Sets invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"portcheck.state_duration":{info:"Current State Duration.",en:{instance:{one:"server",other:"servers"}}},"postgres.locks_utilization":{aggregationMethod:"avg",info:"Acquired locks utilization.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.catalog_relations_count":{info:"Relation count.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.catalog_relations_size":{info:"Relation size.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.table_size":{info:"Table total size.",en:{instance:{one:"table",other:"tables"}}},"powerdns.questions_in":{info:"Incoming questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns.questions_out":{info:"Outgoing questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns.cache_usage":{info:"Cache Usage.",en:{instance:{one:"server",other:"servers"}}},"powerdns.cache_size":{info:"Cache Size.",en:{instance:{one:"server",other:"servers"}}},"powerdns.latency":{info:"Answer latency.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.questions_in":{info:"Incoming questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.questions_out":{info:"Outgoing questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.answer_time":{info:"Queries answered within a time range.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.timeouts":{info:"Timeouts on outgoing UDP queries.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.drops":{info:"Drops.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.cache_usage":{info:"Cache Usage.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.cache_size":{info:"Cache Size.",en:{instance:{one:"server",other:"servers"}}},"cpu.cpufreq":{info:"Current CPU Frequency.",en:{instance:{one:"system",other:"systems"}}},"mem.hugepage":{info:"Dedicated HugePages Memory.",en:{instance:{one:"system",other:"systems"}}},"mem.pagetype":{info:"pagetype_Node{node}_{zone}_{type}.",en:{instance:{one:"system",other:"systems"}}},"system.message_queue_message":{info:"IPC Message Queue Number of Messages.",en:{instance:{one:"system",other:"systems"}}},"md.nonredundant":{family:"redundancy",info:"Nonredundant Array Availability.",en:{instance:{one:"device",other:"devices"}}},"wireless.status":{family:"status",info:"Internal status reported by interface..",en:{instance:{one:"device",other:"devices"}}},"btrfs.commits":{family:"commits",info:"BTRFS Commits.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.commits_perc_time":{family:"commits",aggregationMethod:"avg",info:"BTRFS Commits Time Share.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.commit_timings":{family:"commits",info:"BTRFS Commit Timings.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.device_errors":{family:"errors",info:"BTRFS Device Errors.",en:{instance:{one:"device",other:"devices"}}},"proxysql.client_connections_count":{info:"Client connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_connections_rate":{info:"Client connections rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.server_connections_count":{info:"Server connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.server_connections_rate":{info:"Server connections rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backends_traffic":{info:"Backends traffic.",en:{instance:{one:"server",other:"servers"}}},"proxysql.clients_traffic":{info:"Clients traffic.",en:{instance:{one:"server",other:"servers"}}},"proxysql.active_transactions_count":{info:"Client connections that are currently processing a transaction.",en:{instance:{one:"server",other:"servers"}}},"proxysql.questions_rate":{info:"Client requests / statements executed.",en:{instance:{one:"server",other:"servers"}}},"proxysql.slow_queries_rate":{info:"Slow queries.",en:{instance:{one:"server",other:"servers"}}},"proxysql.queries_rate":{info:"Queries rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backend_statements_count":{info:"Statements available across all backend connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backend_statements_rate":{info:"Statements executed against the backends.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_statements_count":{info:"Statements that are in use by clients.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_statements_rate":{info:"Statements executed by clients.",en:{instance:{one:"server",other:"servers"}}},"proxysql.cached_statements_count":{info:"Global prepared statements.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_entries_count":{info:"Query Cache entries.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_memory_used":{info:"Query Cache memory used.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_io":{info:"Query Cache I/O.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_requests_rate":{info:"Query Cache requests.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_workers_count":{info:"MySQL monitor workers.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_workers_rate":{info:"MySQL monitor workers rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_connect_checks_rate":{info:"MySQL monitor connect checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_ping_checks_rate":{info:"MySQL monitor ping checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_read_only_checks_rate":{info:"MySQL monitor read only checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_replication_lag_checks_rate":{info:"MySQL monitor replication lag checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.jemalloc_memory_used":{info:"Jemalloc used memory.",en:{instance:{one:"server",other:"servers"}}},"proxysql.memory_used":{info:"Memory used.",en:{instance:{one:"server",other:"servers"}}},"proxysql.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_command_execution_rate":{info:"MySQL command execution.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_command_execution_time":{aggregationMethod:"avg",info:"MySQL command execution time.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_command_execution_duration":{info:"MySQL command execution duration histogram.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_user_connections_utilization":{aggregationMethod:"avg",info:"MySQL user connections utilization.",en:{instance:{one:"user",other:"users"}}},"proxysql.mysql_user_connections_count":{info:"MySQL user connections used.",en:{instance:{one:"user",other:"users"}}},"proxysql.backend_status":{info:"Backend status.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_connections_usage":{info:"Backend connections usage.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_connections_rate":{info:"Backend connections established.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_queries_rate":{info:"Backend queries.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_traffic":{info:"Backend traffic.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_latency":{aggregationMethod:"avg",info:"Backend latency.",en:{instance:{one:"sql backend",other:"sql backends"}}},"pulsar.broker_components":{info:"Broker Components.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.throughput_rate":{info:"Throughput Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_size":{info:"Storage Size.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_operations_rate":{info:"Storage Read/Write Operations Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_write_latency":{aggregationMethod:"avg",info:"Storage Write Latency.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.entry_size":{info:"Entry Size.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_delayed":{info:"Subscriptions Delayed for Dispatching.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_rate":{info:"Replication Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_throughput_rate":{info:"Replication Throughput Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_backlog":{info:"Replication Backlog.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_broker_components":{info:"Broker Components.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_throughput_rate":{info:"Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_size":{info:"Storage Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_operations_rate":{info:"Storage Read/Write Operations Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_write_latency":{aggregationMethod:"avg",info:"Storage Write Latency.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_entry_size":{info:"Entry Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_subscription_delayed":{info:"Subscriptions Delayed for Dispatching.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_rate":{info:"Replication Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_throughput_rate":{info:"Replication Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_backlog":{info:"Replication Backlog.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_producers":{info:"Topic Producers.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscriptions":{info:"Topic Subscriptions.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_consumers":{info:"Topic Consumers.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_messages_rate_in":{info:"Topic Publish Messages Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_messages_rate_out":{info:"Topic Dispatch Messages Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_throughput_rate_in":{info:"Topic Publish Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_throughput_rate_out":{info:"Topic Dispatch Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_size":{info:"Topic Storage Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_read_rate":{info:"Topic Storage Read Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_write_rate":{info:"Topic Storage Write Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_msg_backlog":{info:"Topic Messages Backlog Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_delayed":{info:"Topic Subscriptions Delayed for Dispatching.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_msg_rate_redeliver":{info:"Topic Subscriptions Redelivered Message Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_blocked_on_unacked_messages":{info:"Topic Subscriptions Blocked On Unacked Messages.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_rate_in":{info:"Topic Replication Rate From Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_rate_out":{info:"Topic Replication Rate To Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_throughput_rate_in":{info:"Topic Replication Throughput Rate From Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_throughput_rate_out":{info:"Topic Replication Throughput Rate To Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_backlog":{info:"Topic Replication Backlog.",en:{instance:{one:"namespace",other:"namespaces"}}},"puppet.jvm":{info:"JVM Non-Heap.",en:{instance:{one:"server",other:"servers"}}},"puppet.fdopen":{info:"File Descriptors.",en:{instance:{one:"server",other:"servers"}}},"rabbitmq.messages_count":{info:"Messages.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.messages_rate":{info:"Messages.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.objects_count":{info:"Objects.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.connection_churn_rate":{info:"Connection churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.channel_churn_rate":{info:"Channel churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.queue_churn_rate":{info:"Queue churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.file_descriptors_count":{info:"File descriptors.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.sockets_count":{info:"Used sockets.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.erlang_processes_count":{info:"Erlang processes.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.erlang_run_queue_processes_count":{info:"Erlang run queue.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.memory_usage":{info:"Memory.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.disk_space_free_size":{info:"Free disk space.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.vhost_messages_count":{info:"Vhost messages.",en:{instance:{one:"vhost",other:"vhosts"}}},"rabbitmq.vhost_messages_rate":{info:"Vhost messages rate.",en:{instance:{one:"vhost",other:"vhosts"}}},"rabbitmq.queue_messages_count":{info:"Queue messages.",en:{instance:{one:"queue",other:"queues"}}},"rabbitmq.queue_messages_rate":{info:"Queue messages rate.",en:{instance:{one:"queue",other:"queues"}}},"redis.connections":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Connections",layout:{left:14,top:0,width:1.999999999,height:5}}],info:"Accepted and rejected (maxclients limit) connections.",en:{instance:{one:"server",other:"servers"}}},"redis.memory":{info:"Memory usage.",en:{instance:{one:"server",other:"servers"}}},"redis.key_eviction_events":{info:"Evicted keys due to maxmemory limit.",en:{instance:{one:"server",other:"servers"}}},"redis.net":{info:"Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"redis.rdb_changes":{info:"TI,TLE.",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_now":{aggregationMethod:"max",info:"Duration of the on-going RDB save operation if any.",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_health":{info:"Status of the last RDB save operation (0: ok, 1: err).",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_last_rdb_save_since_time":{aggregationMethod:"min",info:"Time elapsed since the last successful RDB save.",en:{instance:{one:"server",other:"servers"}}},"redis.aof_file_size":{info:"AOF file size.",en:{instance:{one:"server",other:"servers"}}},"redis.commands_usec":{info:"Total CPU time consumed by the commands.",en:{instance:{one:"server",other:"servers"}}},"redis.commands_usec_per_sec":{info:"Average CPU consumed per command execution.",en:{instance:{one:"server",other:"servers"}}},"redis.key_expiration_events":{info:"Expired keys.",en:{instance:{one:"server",other:"servers"}}},"redis.database_keys":{info:"Keys per database.",en:{instance:{one:"server",other:"servers"}}},"redis.database_expires_keys":{info:"Keys with an expiration per database.",en:{instance:{one:"server",other:"servers"}}},"redis.connected_replicas":{info:"Connected replicas.",en:{instance:{one:"server",other:"servers"}}},"redis.master_link_status":{info:"Master link status.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_connected_servers":{info:"Connected Servers.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_clients_active":{info:"Active Clients.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_queries":{info:"Queries.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_documents":{info:"Documents.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.client_connections":{info:"Client Connections.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.clients_active":{info:"Active Clients.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.queries":{info:"Queries.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.documents":{info:"Documents.",en:{instance:{one:"database",other:"databases"}}},"riak.kv.throughput":{info:"Reads & writes coordinated by this node.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.vnode_updates":{info:"Update operations coordinated by local vnodes by data type.",en:{instance:{one:"server",other:"servers"}}},"riak.search":{info:"Search queries on the node.",en:{instance:{one:"server",other:"servers"}}},"riak.search.documents":{info:"Documents indexed by search.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.operations":{info:"Consistent node operations.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.latency.get":{info:"Time between reception of a client GET request and subsequent response to client.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.latency.put":{info:"Time between reception of a client PUT request and subsequent response to client.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.counter_merge":{info:"Time it takes to perform an Update Counter operation.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.set_merge":{info:"Time it takes to perform an Update Set operation.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.map_merge":{info:"Time it takes to perform an Update Map operation.",en:{instance:{one:"server",other:"servers"}}},"riak.search.latency.query":{info:"Search query latency.",en:{instance:{one:"server",other:"servers"}}},"riak.search.latency.index":{info:"Time it takes Search to index a new document.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.latency.get":{info:"Strongly consistent read latency.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.latency.put":{info:"Strongly consistent write latency.",en:{instance:{one:"server",other:"servers"}}},"riak.vm":{info:"Total processes running in the Erlang VM.",en:{instance:{one:"server",other:"servers"}}},"riak.vm.memory.processes":{info:"Memory allocated & used by Erlang processes.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.siblings_encountered.get":{info:"Number of siblings encountered during GET operations by this node during the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.objsize.get":{info:"Object size encountered by this node during the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.search.vnodeq_size":{info:"Number of unprocessed messages in the vnode message queues of Search on this node in the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.search.index":{info:"Number of writes to Search failed due to bad data format by reason.",en:{instance:{one:"server",other:"servers"}}},"riak.core.protobuf_connections":{info:"Protocol buffer connections by status.",en:{instance:{one:"server",other:"servers"}}},"riak.core.repairs":{info:"Number of repair operations this node has coordinated.",en:{instance:{one:"server",other:"servers"}}},"riak.core.fsm_active":{info:"Active finite state machines by kind.",en:{instance:{one:"server",other:"servers"}}},"riak.core.fsm_rejected":{info:"Finite state machines being rejected by Sidejobs overload protection.",en:{instance:{one:"server",other:"servers"}}},"syscall.rw":{info:"R/Ws.",en:{instance:{one:"server",other:"servers"}}},"smb2.rw":{info:"R/Ws.",en:{instance:{one:"server",other:"servers"}}},"smb2.create_close":{info:"Create/Close.",en:{instance:{one:"server",other:"servers"}}},"smb2.get_set_info":{info:"Info.",en:{instance:{one:"server",other:"servers"}}},"smb2.find":{info:"Find.",en:{instance:{one:"server",other:"servers"}}},"smb2.notify":{info:"Notify.",en:{instance:{one:"server",other:"servers"}}},"smb2.sm_counters":{info:"Lesser Ops.",en:{instance:{one:"server",other:"servers"}}},"scaleio.system_capacity_total":{info:"Total Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_in_use":{info:"Capacity In Use.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_usage":{info:"Capacity Usage.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_available_volume_allocation":{info:"Available For Volume Allocation.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_health_state":{info:"Capacity Health State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_bandwidth_total":{info:"Primary Backend Bandwidth Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_bandwidth":{info:"Primary Backend Bandwidth.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_iops_total":{info:"Primary Backend IOPS Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_iops":{info:"Primary Backend IOPS.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_io_size_total":{info:"Primary Backend I/O Size Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance":{info:"Rebalance.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance_left":{info:"Rebalance Pending Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance_time_until_finish":{aggregationMethod:"min",info:"Rebalance Approximate Time Until Finish.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebuild":{info:"Rebuild Bandwidth Total (Forward, Backward and Normal).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebuild_left":{info:"Rebuild Pending Capacity Total (Forward, Backward and Normal).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_defined_components":{info:"Components.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_components_volumes_by_type":{info:"Volumes By Type.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_components_volumes_by_mapping":{info:"Volumes By Mapping.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_total":{info:"Total Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_in_use":{info:"Capacity In Use.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_usage":{info:"Capacity Usage.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_utilization":{aggregationMethod:"avg",info:"Capacity Utilization.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_available_volume_allocation":{info:"Available For Volume Allocation.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_health_state":{info:"Capacity Health State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_components":{info:"Components.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_mdm_connection_state":{info:"MDM Connection State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_bandwidth":{info:"Bandwidth.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_iops":{info:"IOPS.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_io_size":{info:"IOPS Size.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_num_of_mapped_volumed":{info:"Mapped Volumes.",en:{instance:{one:"storage server",other:"storage servers"}}},"mem.slabmemory":{info:"Memory Usage.",en:{instance:{one:"system",other:"systems"}}},"mem.slabfilling":{info:"Object Filling.",en:{instance:{one:"system",other:"systems"}}},"mem.slabwaste":{info:"Memory waste.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_error_rate":{info:"Read Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.seek_error_rate":{info:"Seek Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.soft_read_error_rate":{info:"Soft Read Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_error_rate":{info:"Write Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_total_err_corrected":{info:"Read Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_total_unc_errors":{info:"Read Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_total_err_corrected":{info:"Write Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_total_unc_errors":{info:"Write Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.verify_total_err_corrected":{info:"Verify Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.verify_total_unc_errors":{info:"Verify Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.sata_interface_downshift":{info:"SATA Interface Downshift.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.udma_crc_error_count":{info:"UDMA CRC Error Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.throughput_performance":{info:"Throughput Performance.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.seek_time_performance":{info:"Seek Time Performance.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.start_stop_count":{info:"Start/Stop Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.power_on_hours_count":{info:"Power-On Hours Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.power_cycle_count":{info:"Power Cycle Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.unexpected_power_loss":{info:"Unexpected Power Loss.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.spin_up_time":{aggregationMethod:"avg",info:"Spin-Up Time.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.spin_up_retries":{info:"Spin-up Retries.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.calibration_retries":{info:"Calibration Retries.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.airflow_temperature_celsius":{aggregationMethod:"avg",info:"Airflow Temperature Celsius.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.temperature_celsius":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reallocated_sectors_count":{info:"Reallocated Sectors Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reserved_block_count":{aggregationMethod:"avg",info:"Reserved Block Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.program_fail_count":{info:"Program Fail Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.erase_fail_count":{info:"Erase Fail Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.wear_leveller_worst_case_erase_count":{info:"Wear Leveller Worst Case Erase Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.unused_reserved_nand_blocks":{info:"Unused Reserved NAND Blocks.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reallocation_event_count":{info:"Reallocation Event Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.current_pending_sector_count":{info:"Current Pending Sector Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.offline_uncorrectable_sector_count":{info:"Offline Uncorrectable Sector Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.percent_lifetime_used":{aggregationMethod:"avg",info:"Percent Lifetime Used.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.media_wearout_indicator":{aggregationMethod:"avg",info:"Media Wearout Indicator.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.nand_writes_1gib":{info:"NAND Writes.",en:{instance:{one:"system",other:"systems"}}},"solr.search_requests":{info:"Search Requests.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_errors":{info:"Search Errors.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_errors_by_type":{info:"Search Errors By Type.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_processing_time":{aggregationMethod:"avg",info:"Search Requests Processing Time.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_timings":{info:"Search Requests Timings.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_processing_time_percentile":{aggregationMethod:"avg",info:"Search Requests Processing Time Percentile.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests":{info:"Update Requests.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_errors":{info:"Update Errors.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_errors_by_type":{info:"Update Errors By Type.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_processing_time":{aggregationMethod:"avg",info:"Update Requests Processing Time.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_timings":{info:"Update Requests Timings.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_processing_time_percentile":{aggregationMethod:"avg",info:"Update Requests Processing Time Percentile.",en:{instance:{one:"solr server",other:"solr server"}}},"spigotmc.mem":{info:"Minecraft Memory Usage.",en:{instance:{one:"spigot server",other:"spigot servers"}}},"springboot2.response_codes":{info:"Response Codes.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.thread":{info:"Threads.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap":{info:"Overview.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_eden":{info:"Eden Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_survivor":{info:"Survivor Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_old":{info:"Old Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.uptime":{aggregationMethod:"min",info:"The uptime of the Java virtual machine.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"squid.clients_net":{info:"Squid Client Bandwidth.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.clients_requests":{info:"Squid Client Requests.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.servers_net":{info:"Squid Server Bandwidth.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.servers_requests":{info:"Squid Server Requests.",en:{instance:{one:"squid instance",other:"squid instances"}}},"supervisord.summary_processes":{info:"Processes.",en:{instance:{one:"client / server",other:"clients / servers"}}},"supervisord.processes":{info:"Processes.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_exit_status":{info:"Exit status.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_downtime":{info:"Downtime.",en:{instance:{one:"process group",other:"process groups"}}},"tengine.bandwidth_total":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.connections_total":{info:"Connections.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_total":{info:"Requests.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_per_response_code_family_total":{info:"Requests Per Response Code Family.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_per_response_code_detailed_total":{info:"Requests Per Response Code Detailed.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_upstream_total":{info:"Number Of Requests Calling For Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.tries_upstream_total":{info:"Number Of Times Calling For Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_upstream_per_response_code_family_total":{info:"Upstream Requests Per Response Code Family.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.processing_time":{aggregationMethod:"avg",info:"processing time.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm":{info:"JVM Memory Pool Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_eden":{info:"Eden Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_survivor":{info:"Survivor Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_tenured":{info:"Tenured Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"unbound.queries":{info:"Received Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.queries_ip_ratelimited":{info:"Rate Limited Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.dnscrypt_queries":{info:"DNSCrypt Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache":{info:"Cache Statistics.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_percentage":{aggregationMethod:"avg",info:"Cache Statistics Percentage.",en:{instance:{one:"server",other:"servers"}}},"unbound.prefetch":{info:"Cache Prefetches.",en:{instance:{one:"server",other:"servers"}}},"unbound.expired":{info:"Replies Served From Expired Cache.",en:{instance:{one:"server",other:"servers"}}},"unbound.zero_ttl_replies":{info:"Replies Served From Expired Cache.",en:{instance:{one:"server",other:"servers"}}},"unbound.recursive_replies":{info:"Replies That Needed Recursive Processing.",en:{instance:{one:"server",other:"servers"}}},"unbound.recursion_time":{aggregationMethod:"avg",info:"Time Spent On Recursive Processing.",en:{instance:{one:"server",other:"servers"}}},"unbound.request_list_usage":{info:"Request List Usage.",en:{instance:{one:"server",other:"servers"}}},"unbound.current_request_list_usage":{info:"Current Request List Usage.",en:{instance:{one:"server",other:"servers"}}},"unbound.request_list_jostle_list":{info:"Request List Jostle List Events.",en:{instance:{one:"server",other:"servers"}}},"unbound.tcpusage":{info:"TCP Handler Buffers.",en:{instance:{one:"server",other:"servers"}}},"unbound.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_memory":{info:"Cache Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.mod_memory":{info:"Module Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.mem_streamwait":{info:"TCP and TLS Stream Waif Buffer Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_count":{info:"Cache Items Count.",en:{instance:{one:"server",other:"servers"}}},"unbound.type_queries":{info:"Queries By Type.",en:{instance:{one:"server",other:"servers"}}},"unbound.class_queries":{info:"Queries By Class.",en:{instance:{one:"server",other:"servers"}}},"unbound.opcode_queries":{info:"Queries By OpCode.",en:{instance:{one:"server",other:"servers"}}},"unbound.flag_queries":{info:"Queries By Flag.",en:{instance:{one:"server",other:"servers"}}},"unbound.rcode_answers":{info:"Replies By RCode.",en:{instance:{one:"server",other:"servers"}}},"unbound.thread_queries":{info:"Thread Received Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_queries_ip_ratelimited":{info:"Thread Rate Limited Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_dnscrypt_queries":{info:"Thread DNSCrypt Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_cache":{info:"Cache Statistics.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_cache_percentage":{aggregationMethod:"avg",info:"Cache Statistics Percentage.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_prefetch":{info:"Cache Prefetches.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_expired":{info:"Replies Served From Expired Cache.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_zero_ttl_replies":{info:"Replies Served From Expired Cache.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_recursive_replies":{info:"Replies That Needed Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_recursion_time":{aggregationMethod:"avg",info:"Time Spent On Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_request_list_usage":{info:"Time Spent On Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_current_request_list_usage":{info:"Current Request List Usage.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_request_list_jostle_list":{info:"Request List Jostle List Events.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_tcpusage":{info:"TCP Handler Buffers.",en:{instance:{one:"thread",other:"threads"}}},"uwsgi.requests":{info:"Requests.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.tx":{info:"Transmitted data.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.avg_rt":{info:"Average request time.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.memory_rss":{info:"RSS (Resident Set Size).",en:{instance:{one:"server",other:"servers"}}},"uwsgi.memory_vsz":{info:"VSZ (Virtual Memory Size).",en:{instance:{one:"server",other:"servers"}}},"uwsgi.exceptions":{info:"Exceptions.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.harakiris":{info:"Harakiris.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.respawns":{info:"Respawns.",en:{instance:{one:"server",other:"servers"}}},"varnish.session_connection":{info:"Connections Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.client_requests":{info:"Client Requests.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.all_time_hit_rate":{aggregationMethod:"avg",info:"All History Hit Rate Ratio.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.current_poll_hit_rate":{aggregationMethod:"avg",info:"Current Poll Hit Rate Ratio.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.cached_objects_expired":{info:"Expired Objects.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.cached_objects_nuked":{info:"Least Recently Used Nuked Objects.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_total":{info:"Number Of Threads In All Pools.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_statistics":{info:"Threads Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_queue_len":{info:"Current Queue Length.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend_connections":{info:"Backend Connections Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend_requests":{info:"Requests To The Backend.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.esi_statistics":{info:"ESI Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.memory_usage":{info:"Memory Usage.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend":{info:"Backend {backend_name}.",en:{instance:{one:"backend",other:"backends"}}},"varnish.storage_usage":{info:"Storage {storage_name} Usage.",en:{instance:{one:"storage",other:"storages"}}},"varnish.storage_alloc_objs":{info:"Storage {storage_name} Allocated Objects.",en:{instance:{one:"storage",other:"storages"}}},"vernemq.socket_operations":{info:"Socket Open and Close Events.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.client_keepalive_expired":{info:"Closed Sockets due to Keepalive Time Expired.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.socket_close_timeout":{info:"Closed Sockets due to no CONNECT Frame On Time.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.socket_errors":{info:"Socket Errors.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_processes_operations":{info:"Queue Processes Setup and Teardown Events.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_process_init_from_storage":{info:"Queue Processes Initialized from Offline Storage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_undelivered_messages":{info:"Undelivered PUBLISH Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_subscriptions":{info:"Subscriptions in the Routing Table.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_matched_subscriptions":{info:"Matched Subscriptions.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_memory":{info:"Routing Table Memory Usage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_utilization_scheduler":{aggregationMethod:"avg",info:"Scheduler Utilization.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_processes":{info:"Erlang Processes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_reductions":{info:"Reductions.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_context_switches":{info:"Context Switches.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_io":{info:"Received and Sent Traffic through Ports.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_run_queue":{info:"Processes that are Ready to Run on All Run-Queues.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_gc_count":{info:"GC Count.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_gc_words_reclaimed":{info:"GC Words Reclaimed.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_allocated_memory":{info:"Memory Allocated by the Erlang Processes and by the Emulator.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.bandwidth":{info:"Bandwidth.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.retain_messages":{info:"Stored Retained Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.retain_memory":{info:"Stored Retained Messages Memory Usage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.cluster_bandwidth":{info:"Communication with Other Cluster Nodes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.cluster_dropped":{info:"Traffic Dropped During Communication with Other Cluster Nodes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.netsplit_unresolved":{info:"Unresolved Netsplits.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.netsplits":{info:"Netsplits.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth":{info:"v5 AUTH.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth_received_reason":{info:"v5 AUTH Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth_sent_reason":{info:"v5 AUTH Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_connect":{info:"v3/v5 CONNECT and CONNACK.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_connack_sent_reason":{info:"v3/v5 CONNACK Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect":{info:"v3/v5 DISCONNECT.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect_received_reason":{info:"v5 DISCONNECT Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect_sent_reason":{info:"v5 DISCONNECT Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe":{info:"v3/v5 SUBSCRIBE and SUBACK.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe_error":{info:"v3/v5 Failed SUBSCRIBE Operations due to a Netsplit.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe_auth_error":{info:"v3/v5 Unauthorized SUBSCRIBE Attempts.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_received_reason":{info:"v5 PUBACK QoS 1 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_sent_reason":{info:"v5 PUBACK QoS 1 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_invalid_error":{info:"v3/v5 PUBACK QoS 1 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec":{info:"v3/v5 PUBREC QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_received_reason":{info:"v5 PUBREC QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_sent_reason":{info:"v5 PUBREC QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_invalid_error":{info:"v3 PUBREC QoS 2 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel":{info:"v3/v5 PUBREL QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel_received_reason":{info:"v5 PUBREL QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel_sent_reason":{info:"v5 PUBREL QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcom":{info:"v3/v5 PUBCOMP QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_received_reason":{info:"v5 PUBCOMP QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_sent_reason":{info:"v5 PUBCOMP QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_invalid_error":{info:"v3/v5 PUBCOMP QoS 2 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.node_uptime":{aggregationMethod:"min",info:"Node Uptime.",en:{instance:{one:"broker",other:"brokers"}}},"web_log.requests":{mainheads:[{groupBy:["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[12],layout:{left:0,top:0,width:3,height:5}}],info:"Total Requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.excluded_requests":{info:"Excluded Requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_responses":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Responses by Status Code Class",layout:{left:9,top:0,width:3,height:5}}],info:"Responses By Status Code Class.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_1xx_responses":{info:"Informational Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_2xx_responses":{info:"Successful Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_3xx_responses":{info:"Redirects Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_4xx_responses":{info:"Client Errors Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_5xx_responses":{info:"Server Errors Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.bandwidth":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.requests_processing_time_histogram":{info:"Requests Processing Time Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.upstream_response_time":{aggregationMethod:"avg",info:"Upstream Response Time.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.upstream_responses_time_histogram":{info:"Upstream Responses Time Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.current_poll_uniq_clients":{info:"Current Poll Unique Clients.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.vhost_requests":{info:"Requests By Vhost.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.port_requests":{info:"Requests By Port.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.scheme_requests":{info:"Requests By Scheme.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.http_method_requests":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Requests by HTTP Method",layout:{left:6,top:0,width:3,height:5}}],info:"Requests By HTTP Method.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.http_version_requests":{info:"Requests By HTTP Version.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ip_proto_requests":{info:"Requests By IP Protocol.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ssl_proto_requests":{info:"Requests By SSL Connection Protocol.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ssl_cipher_suite_requests":{info:"Requests By SSL Connection Cipher Suite.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_requests":{info:"URL Field Requests By Pattern.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_field_pattern_requests":{info:"Custom Field Requests By Pattern.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_time_field_summary":{info:"Custom Time Field Summary.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_time_field_histogram":{info:"Custom Time Field Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_status_code_responses":{info:"Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_http_method_requests":{info:"Requests By HTTP Method.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_bandwidth":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_request_processing_time":{aggregationMethod:"avg",info:"Request Processing Time.",en:{instance:{one:"web server",other:"web servers"}}},"whoisquery.time_until_expiration":{info:"Time Until Domain Expiration.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_utilization":{aggregationMethod:"avg",info:"Core CPU Utilization.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_interrupts":{info:"Received and Serviced Hardware Interrupts.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_dpcs":{info:"Received and Serviced Deferred Procedure Calls (DPC).",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_cstate":{aggregationMethod:"avg",info:"Core Time Spent in Low-Power Idle State.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.memory_page_faults":{info:"Memory Page Faults.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_utilization":{aggregationMethod:"avg",info:"Swap Utilization.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_operations":{info:"Swap Operations.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_pages":{info:"Swap Pages.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_cached":{info:"Cached.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_cache_faults":{info:"Cache Faults.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_system_pool":{info:"System Memory Pool.",en:{instance:{one:"system",other:"systems"}}},"windows.logical_disk_utilization":{aggregationMethod:"avg",info:"Space usage.",en:{instance:{one:"disk",other:"disks"}}},"windows.logical_disk_operations":{info:"Operations.",en:{instance:{one:"disk",other:"disks"}}},"windows.logical_disk_latency":{aggregationMethod:"avg",info:"Average Read/Write Latency.",en:{instance:{one:"disk",other:"disks"}}},"windows.net_nic_packets":{info:"Packets.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.net_nic_errors":{info:"Errors.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.net_nic_discarded":{info:"Discards.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.os_processes":{info:"Processes.",en:{instance:{one:"system",other:"systems"}}},"windows.os_users":{info:"Number of Users.",en:{instance:{one:"system",other:"systems"}}},"windows.os_visible_memory_usage":{info:"Visible Memory Usage.",en:{instance:{one:"system",other:"systems"}}},"windows.os_paging_files_usage":{info:"Paging Files Usage.",en:{instance:{one:"system",other:"systems"}}},"windows.system_threads":{info:"Threads.",en:{instance:{one:"system",other:"systems"}}},"windows.system_uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"system",other:"systems"}}},"windows.logon_type_sessions":{info:"Active User Logon Sessions By Type.",en:{instance:{one:"system",other:"systems"}}},"windows.thermalzone_temperature":{aggregationMethod:"avg",info:"Thermal zone temperature.",en:{instance:{one:"zone",other:"zones"}}},"windows.processes_page_file_bytes":{info:"Bytes used in page file(s).",en:{instance:{one:"system",other:"systems"}}},"windows.service_state":{info:"Service state.",en:{instance:{one:"service",other:"services"}}},"windows.service_status":{info:"Service status.",en:{instance:{one:"service",other:"services"}}},"iis.website_users_count":{info:"Website users with pending requests.",en:{instance:{one:"website",other:"websites"}}},"iis.website_connection_attempts_rate":{info:"Website connections attempts.",en:{instance:{one:"website",other:"websites"}}},"iis.website_isapi_extension_requests_rate":{info:"Website extensions request.",en:{instance:{one:"website",other:"websites"}}},"iis.website_ftp_file_transfer_rate":{info:"Website FTP file transfer rate.",en:{instance:{one:"website",other:"websites"}}},"iis.website_logon_attempts_rate":{info:"Website logon attempts.",en:{instance:{one:"website",other:"websites"}}},"mssql.instance_bufman_iops":{info:"Number of pages input and output.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_blocked_processes":{info:"Blocked processes.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_locks_lock_wait":{info:"Lock requests that required the caller to wait.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_locks_deadlocks":{info:"Lock requests that resulted in deadlock.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_connection_memory_bytes":{info:"Amount of dynamic memory to maintain connections.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_pending_memory_grants":{info:"Process waiting for memory grant.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_server_memory":{info:"Memory committed.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_sqlstats_sql_recompilations":{info:"SQL re-compilations.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.database_active_transactions":{info:"Active transactions per database.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_backup_restore_operations":{info:"Backup IO per database.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_log_flushed":{info:"Log flushed.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_log_flushes":{info:"Log flushes.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_write_transactions":{info:"Write transactions.",en:{instance:{one:"database",other:"databases"}}},"ad.database_operations":{info:"AD database operations.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.directory_operations":{info:"AD directory operations.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.name_cache_lookups":{info:"Name cache lookups.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.name_cache_hits":{info:"Name cache hits.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.atq_average_request_latency":{aggregationMethod:"avg",info:"Average request processing time.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.atq_outstanding_requests":{info:"Outstanding requests.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.dra_replication_sync_objects_remaining":{info:"DRA replication full sync objects remaining.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.dra_replication_properties_filtered":{info:"DRA replication properties filtered.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.ds_threads":{info:"Directory Service threads.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.ldap_last_bind_time":{aggregationMethod:"min",info:"LDAP last successful bind time.",en:{instance:{one:"ad instance",other:"ad instances"}}},"adcs.cert_template_requests":{info:"Certificate requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_failed_requests":{info:"Certificate failed requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_issued_requests":{info:"Certificate issued requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_pending_requests":{info:"Certificate pending requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_processing_time":{aggregationMethod:"avg",info:"Certificate last request processing time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_retrievals":{info:"Total of certificate retrievals.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_retrieval_processing_time":{aggregationMethod:"avg",info:"Certificate last retrieval processing time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_cryptographic_signing_time":{aggregationMethod:"avg",info:"Certificate last signing operation request time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_policy_module_processing":{info:"Certificate last policy module processing request time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_challenge_responses":{info:"Certificate challenge responses.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_challenge_response_processing_time":{aggregationMethod:"avg",info:"Certificate last challenge response time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_signed_certificate_timestamp_lists":{info:"Certificate Signed Certificate Timestamp Lists processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_signed_certificate_timestamp_list_processing_time":{aggregationMethod:"avg",info:"Certificate last Signed Certificate Timestamp List process time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adfs.ad_login_connection_failures":{info:"Connection failures.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.certificate_authentications":{info:"User Certificate authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_artifact_failures":{info:"Connection failures to the artifact database.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_artifact_query_time_seconds":{aggregationMethod:"avg",info:"Time taken for an artifact database query.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_config_failures":{info:"Connection failures to the configuration database.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_config_query_time_seconds":{aggregationMethod:"avg",info:"Time taken for a configuration database query.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.device_authentications":{info:"Device authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.external_authentications":{info:"Authentications from external MFA providers.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.federated_authentications":{info:"Authentications from Federated Sources.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.federation_metadata_requests":{info:"Federation Metadata requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_authorization_requests":{info:"Incoming requests to the OAuth Authorization endpoint.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_authentications":{info:"OAuth client authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_credentials_requests":{info:"OAuth client credentials requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_privkey_jwt_authentications":{info:"OAuth client private key JWT authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_secret_basic_authentications":{info:"OAuth client secret basic authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_secret_post_authentications":{info:"OAuth client secret post authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_windows_authentications":{info:"OAuth client windows integrated authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_logon_certificate_requests":{info:"OAuth logon certificate requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_password_grant_requests":{info:"OAuth password grant requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_token_requests_success":{info:"Successful RP token requests over OAuth protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.passive_requests":{info:"Passive requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.passport_authentications":{info:"Microsoft Passport SSO authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.password_change_requests":{info:"Password change requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.samlp_token_requests_success":{info:"Successful RP token requests over SAML-P protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.sso_authentications":{info:"SSO authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.token_requests":{info:"Token access requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.userpassword_authentications":{info:"AD U/P authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.windows_integrated_authentications":{info:"Windows integrated authentications using Kerberos or NTLM.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.wsfed_token_requests_success":{info:"Successful RP token requests over WS-Fed protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.wstrust_token_requests_success":{info:"Successful RP token requests over WS-Trust protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"netframework.clrexception_throw_to_catch_depth":{info:"Traversed stack frames.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrinterop_interop_marshallings":{info:"Arguments and return values marshallings.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrjit_il_bytes":{info:"Compiled Microsoft intermediate language (MSIL) bytes.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_appdomains_loaded":{info:"Loaded application domains.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_appdomains_unloaded":{info:"Unloaded application domains.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_classes_loaded":{info:"Loaded classes in all assemblies.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_class_load_failures":{info:"Class load failures.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_queue_length":{info:"Threads waited to acquire a managed lock.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_current_logical_threads":{info:"Logical threads.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_current_physical_threads":{info:"Physical threads.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_contentions":{info:"Fails to acquire a managed lock.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_allocated_bytes":{info:"Memory allocated on the garbage collection heap.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_finalization_survivors":{info:"Objects that survived garbage-collection.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_collections":{info:"Garbage collections.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_number_pinned_objects":{info:"Pinned objects encountered.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_channels":{info:"Registered channels.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_bound_classes_loaded":{info:"Loaded context-bound classes.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_bound_objects":{info:"Allocated context-bound objects.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_proxies":{info:"Remoting proxy objects.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_contexts":{info:"Total of remoting contexts.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_remote_calls":{info:"Remote Procedure Calls (RPC) invoked.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_link_time_checks":{info:"Link-time code access security checks.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_checks_time":{aggregationMethod:"avg",info:"Time spent performing runtime code access security checks.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_stack_walk_depth":{info:"Depth of the stack.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_runtime_checks":{info:"Runtime code access security checks performed.",en:{instance:{one:".net process",other:".net processes"}}},"exchange.activesync_ping_cmds_pending":{info:"Ping commands pending in queue.",en:{instance:{one:"host",other:"hosts"}}},"exchange.activesync_requests":{info:"HTTP requests received from ASP.NET.",en:{instance:{one:"host",other:"hosts"}}},"exchange.activesync_sync_cmds":{info:"Sync commands processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.autodiscover_requests":{info:"Autodiscover service requests processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.avail_service_requests":{info:"Requests serviced.",en:{instance:{one:"host",other:"hosts"}}},"exchange.owa_current_unique_users":{mainheads:[{groupBy:["instance"],chartLibrary:"easypiechart",title:"OWA Unique Users",colors:s.default[12],layout:{left:0,top:0,width:2,height:5}}],info:"Unique users currently logged on to Outlook Web App.",en:{instance:{one:"host",other:"hosts"}}},"exchange.owa_requests_total":{mainheads:[{groupBy:["instance"],chartLibrary:"easypiechart",title:"OWA Total Requests",layout:{left:3,top:0,width:2,height:5}}],info:"Requests handled by Outlook Web App.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_active_user_count":{info:"Active unique users in the last 2 minutes.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_avg_latency":{aggregationMethod:"avg",mainheads:[{groupBy:["instance"],aggregationMethod:"avg",chartLibrary:"easypiechart",title:"Average Latency",colors:s.default[1],layout:{left:12,top:0,width:2,height:5}}],info:"Average latency.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_connection_count":{mainheads:[{groupBy:["instance"],chartLibrary:"easypiechart",title:"Total Client Connections",colors:s.default[2],layout:{left:15,top:0,width:2,height:5}}],info:"Client connections.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_operations":{info:"RPC operations.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_requests":{info:"Clients requests currently being processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_user_count":{info:"RPC users.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_active_mail_box_delivery":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Active Mailbox Delivery Queue",layout:{left:9,top:0,width:4,height:5}}],info:"Active Mailbox Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_external_active_remote_delivery":{info:"External Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_external_largest_delivery":{info:"External Largest Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_internal_active_remote_delivery":{info:"Internal Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_internal_largest_delivery":{info:"Internal Largest Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_retry_mailbox_delivery":{info:"Internal Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_poison":{info:"Poison Queue Length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.workload_active_tasks":{info:"Workload active tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_completed_tasks":{info:"Workload completed tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_queued_tasks":{info:"Workload queued tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_yielded_tasks":{info:"Workload yielded tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_activity_status":{info:"Workload activity status.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.ldap_long_running_ops_per_sec":{info:"Long Running LDAP operations.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_read_time":{aggregationMethod:"avg",info:"Time to send an LDAP read request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_search_time":{aggregationMethod:"avg",info:"Time to send an LDAP search request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_write_time":{aggregationMethod:"avg",info:"Time to send an LDAP search request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_timeout_errors":{info:"LDAP timeout errors.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.http_proxy_avg_auth_latency":{aggregationMethod:"avg",info:"Average time spent authenticating CAS.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_avg_cas_processing_latency_sec":{aggregationMethod:"avg",info:"Average time spent authenticating CAS.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_mailbox_proxy_failure_rate":{aggregationMethod:"avg",info:"Percentage of failures between this CAS and MBX servers.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_mailbox_server_locator_avg_latency_sec":{aggregationMethod:"avg",info:"Average latency of MailboxServerLocator web service calls.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_outstanding_proxy_requests":{info:"Concurrent outstanding proxy requests.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_requests":{info:"Number of proxy requests processed each second.",en:{instance:{one:"proxy",other:"proxies"}}},"wireguard.device_network_io":{info:"Device traffic.",en:{instance:{one:"device",other:"devices"}}},"wireguard.device_peers":{info:"Device peers.",en:{instance:{one:"device",other:"devices"}}},"wireguard.peer_network_io":{info:"Peer traffic.",en:{instance:{one:"peer",other:"peers"}}},"wireguard.peer_latest_handshake_ago":{info:"Peer time elapsed since the latest handshake.",en:{instance:{one:"peer",other:"peers"}}},"x509check.time_until_expiration":{info:"Time Until Certificate Expiration.",en:{instance:{one:"certificate",other:"certificates"}},groupBy:["label"],groupByLabel:["source"]},"x509check.revocation_status":{info:"Revocation Status.",en:{instance:{one:"certificate",other:"certificates"}},groupBy:["label"],groupByLabel:["source"]},"xenstat.mem":{info:"Memory Usage.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.domains":{info:"Number of Domains.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.cpus":{info:"Number of CPUs.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.cpu_freq":{info:"CPU Frequency.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xendomain.states":{info:"Domain States.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.cpu":{aggregationMethod:"avg",info:"CPU Usage (100% = 1 core).",en:{instance:{one:"domain",other:"domains"}}},"xendomain.mem":{info:"Memory Reservation.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.vcpu":{aggregationMethod:"avg",info:"CPU Usage per VCPU.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.oo_req_vbd":{info:"VBD{%u} Out Of Requests.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.requests_vbd":{info:"VBD{%u} Requests.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.sectors_vbd":{info:"VBD{%u} Read/Written Sectors.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.bytes_network":{info:"Network{%u} Received/Sent Bytes.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.packets_network":{info:"Network{%u} Received/Sent Packets.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.errors_network":{info:"Network{%u} Receive/Transmit Errors.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.drops_network":{info:"Network{%u} Receive/Transmit Drops.",en:{instance:{one:"domain",other:"domains"}}},"zookeeper.requests":{info:"Outstanding Requests.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.requests_latency":{aggregationMethod:"avg",info:"Requests Latency.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.connections":{info:"Alive Connections.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.packets":{info:"Packets.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.file_descriptor":{info:"Open File Descriptors.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.nodes":{info:"Number of Nodes.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.watches":{info:"Number of Watches.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.approximate_data_size":{info:"Approximate Data Tree Size.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zscores.z":{info:"Z Score.",en:{instance:{one:"chart",other:"charts"}}},"zscores.3stddev":{info:"Z Score >3.",en:{instance:{one:"chart",other:"charts"}}}}},92230:(e,t,n)=>{n.d(t,{A:()=>i});var s=n(58168),a=n(96540),o=n(10058),r=n(8320);const i=(0,a.forwardRef)(((e,t)=>{let{children:n,onClick:i,...c}=e;const l=(0,r.UH)(),d=(0,a.useCallback)((e=>{const{hash:t=""}=e.target;t.startsWith("#menu")&&(e.preventDefault(),l.goToLink(t.substr(1))),i&&i(e)}),[l]);return"string"===typeof n?a.createElement(o.TextSmall,(0,s.A)({color:"textDescription",dangerouslySetInnerHTML:{__html:n},onClick:d},c,{ref:t})):n||null}))},45387:(e,t,n)=>{n.d(t,{X_:()=>Z,Ay:()=>oe,_3:()=>se,ro:()=>X,yn:()=>$,e4:()=>Y,Wr:()=>te,KG:()=>ee});var s=n(86443),a=(n(25440),n(79304)),o=n(4967),r=n(18595),i=n(485),c=n(78613),l=n(64850),d=n(66248),h=n(13765),u=n(35532),p=n(22294),m=n(76229),g=n(38055),f=n(54399),b=n(78536),y=n(93847),v=n(93360),_=n(25436),w=n(22017),k=n(35074),T=n(54416),S=n(55345),M=n(13808),x=n(37048),C=n(900),P=n(59582),q=n(42469),I=n(82367),B=n(1705),L=n(1871),A=n(46943),E=n(80058),D=n(55573),N=n(62672),R=n(45386),U=n(49205),F=n(66600),z=n(39281),O=n(12333),H=n(84994),V=n(83697),Q=n(75904),j=n(54264),G=n(27064);const W={system:{title:"System Overview",icon:n(7521).G0,info:"Overview of the key system metrics."},services:{title:"systemd Services",icon:m.Ub,info:"Resources utilization of <b>systemd services</b>. Netdata monitors all systemd services via <a href='https://en.wikipedia.org/wiki/Cgroups' target='_blank'>cgroups</a> (the resources accounting used by containers). <br /><b>Tip:</b> <br />&#x2022 Default view of cgroup charts show <b>aggregate</b> information from all your VMs and containers <br />&#x2022 For instance level view of cgroups change the Group by to <b>instance</b> <br /><a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'><b>&#x2022; Checkout our docs for more details</b></a>"},ap:{title:"Access Points",icon:j.Bw,info:"Performance metrics for the access points (i.e. wireless interfaces in AP mode) found on the system."},tc:{title:"Quality of Service",icon:G.Bw,info:'Netdata collects and visualizes <b>tc</b> class utilization using its <a href="https://github.com/netdata/netdata/blob/master/collectors/tc.plugin/tc-qos-helper.sh.in" target="_blank">tc-helper plugin</a>. If you also use <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a> for setting up QoS, netdata automatically collects interface and class names. If your QoS configuration includes overheads calculation, the values shown here will include these overheads (the total bandwidth for the same interface as reported in the Network Interfaces section, will be lower than the total bandwidth reported here). QoS data collection may have a slight time difference compared to the interface (QoS data collection uses a BASH script, so a shift in data collection of a few milliseconds should be justified).'},net:{title:"Network Interfaces",icon:R.FF,info:'<p>Performance <a href="https://www.kernel.org/doc/html/latest/networking/statistics.html" target="_blank">metrics for network interfaces</a>.</p><p>Netdata retrieves this data reading the <b>/proc/net/dev</b> file and <b>/sys/class/net/</b> directory.</p>'},Infiniband:{title:"Infiniband ports",icon:R.FF,info:'<p>Performance and exception statistics for <a href="https://en.wikipedia.org/wiki/InfiniBand" target="_blank">Infiniband</a> ports. The individual port and hardware counter descriptions can be found in the <a href="https://community.mellanox.com/s/article/understanding-mlx5-linux-counters-and-status-parameters" target="_blank">Mellanox knowledge base</a>.'},wireless:{title:"Wireless Interfaces",icon:j.Bw,info:"Performance metrics for wireless interfaces."},ip:{title:"Networking Stack",icon:Q.jB,info:e=>{let{os:t}=e;return"linux"===t?"Metrics for the networking stack of the system. These metrics are collected from <b>/proc/net/netstat</b> or attaching <b>kprobes</b> to kernel functions, apply to both IPv4 and IPv6 traffic and are related to operation of the kernel networking stack.":"Metrics for the networking stack of the system."}},ipv4:{title:"IPv4 Networking",icon:Q.jB,info:'Metrics for the IPv4 stack of the system. <a href="https://en.wikipedia.org/wiki/IPv4" target="_blank">Internet Protocol version 4 (IPv4)</a> is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet. IPv4 is a connectionless protocol for use on packet-switched networks. It operates on a best effort delivery model, in that it does not guarantee delivery, nor does it assure proper sequencing or avoidance of duplicate delivery. These aspects, including data integrity, are addressed by an upper layer transport protocol, such as the Transmission Control Protocol (TCP).'},ipv6:{title:"IPv6 Networking",icon:Q.jB,info:'Metrics for the IPv6 stack of the system. <a href="https://en.wikipedia.org/wiki/IPv6" target="_blank">Internet Protocol version 6 (IPv6)</a> is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion. IPv6 is intended to replace IPv4.'},sctp:{title:"SCTP Networking",icon:Q.jB,info:'<p><a href="https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol" target="_blank">Stream Control Transmission Protocol (SCTP)</a> is a computer network protocol which operates at the transport layer and serves a role similar to the popular protocols TCP and UDP. SCTP provides some of the features of both UDP and TCP: it is message-oriented like UDP and ensures reliable, in-sequence transport of messages with congestion control like TCP. It differs from those protocols by providing multi-homing and redundant paths to increase resilience and reliability.</p><p>Netdata collects SCTP metrics reading the <b>/proc/net/sctp/snmp</b> file.</p>'},ipvs:{title:"IP Virtual Server",icon:"serviceIPVS",info:'<p><a href="http://www.linuxvirtualserver.org/software/ipvs.html" target="_blank">IPVS (IP Virtual Server)</a> implements transport-layer load balancing inside the Linux kernel, so called Layer-4 switching. IPVS running on a host acts as a load balancer at the front of a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.</p><p>Netdata collects summary statistics, reading <b>/proc/net/ip_vs_stats</b>. To display the statistics information of services and their servers, run <b>ipvsadm -Ln --stats</b> or <b>ipvsadm -Ln --rate</b> for the rate statistics. For details, see <a href="https://linux.die.net/man/8/ipvsadm" target="_blank">ipvsadm(8)</a>.</p>'},netfilter:{title:"Firewall (netfilter)",icon:V.im,info:"Performance metrics of the netfilter components."},ipfw:{title:"Firewall (ipfw)",icon:V.im,info:"Counters and memory usage for the ipfw rules."},cpu:{title:"CPUs",icon:H.zm,info:'Detailed information for each CPU of the system. A summary of the system for all CPUs can be found at the <a href="#menu_system">System Overview</a> section.'},mem:{title:"Memory",icon:I.YS,info:"Detailed information about the memory management of the system."},disk:{title:"Disks",icon:c.MB,info:"Charts with performance information for all the system disks. Special care has been given to present disk performance metrics in a way compatible with <b>iostat -x</b>. netdata by default prevents rendering performance charts for individual partitions and unmounted virtual disks. Disabled charts can still be enabled by configuring the relative settings in the netdata configuration file."},mount:{title:"Mount Points",icon:c.MB,info:""},mdstat:{title:"MD arrays",icon:c.MB,info:'<p>RAID devices are virtual devices created from two or more real block devices. <a href="https://man7.org/linux/man-pages/man4/md.4.html" target="_blank">Linux Software RAID</a> devices are implemented through the md (Multiple Devices) device driver.</p><p>Netdata monitors the current status of MD arrays reading <a href="https://raid.wiki.kernel.org/index.php/Mdstat" target="_blank">/proc/mdstat</a> and <b>/sys/block/%s/md/mismatch_cnt</b> files.</p>'},sensors:{title:"Sensors",icon:O.YH,info:"Readings of the configured system sensors."},ipmi:{title:"IPMI",icon:O.YH,info:"The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system's CPU, firmware (BIOS or UEFI) and operating system."},amdgpu:{title:"AMD GPUs",icon:I.YS,info:"Performance and usage metrics for each AMD GPU in the system."},samba:{title:"Samba",icon:w.Uj,info:"Performance metrics of the Samba file share operations of this system. Samba is a implementation of Windows services, including Windows SMB protocol file shares."},nfsd:{title:"NFS Server",icon:w.Uj,info:'Performance metrics of the Network File Server. <a href="https://en.wikipedia.org/wiki/Network_File_System" target="_blank">NFS</a> is a distributed file system protocol, allowing a user on a client computer to access files over a network, much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system.'},nfs:{title:"NFS Client",icon:w.Uj,info:'Performance metrics of the <a href="https://en.wikipedia.org/wiki/Network_File_System" target="_blank">NFS</a> operations of this system, acting as an NFS client.'},zfs:{title:"ZFS Cache",icon:w.Uj,info:'Performance metrics of the <a href="https://en.wikipedia.org/wiki/ZFS#Caching_mechanisms" target="_blank">ZFS ARC and L2ARC</a>. The following charts visualize all metrics reported by <a href="https://github.com/openzfs/zfs/blob/master/cmd/arcstat/arcstat.in" target="_blank">arcstat.py</a> and <a href="https://github.com/openzfs/zfs/blob/master/cmd/arc_summary/arc_summary3" target="_blank">arc_summary.py</a>.'},zfspool:{title:"ZFS pools",icon:"serviceDatabase",info:"State of ZFS pools."},btrfs:{title:"BTRFS filesystem",icon:w.Uj,info:"Disk space metrics for the BTRFS filesystem."},app:{title:"Applications",icon:"applicationsSolid",info:'Per application statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics for <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin#configuration" target="_blank">application groups</a>. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},usergroup:{title:"User Groups",icon:q.X4,info:'Per user group statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user group. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},user:{title:"Users",icon:z.gd,info:'Per user statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},apps:{title:"Applications (old)",icon:"applicationsSolid",info:'Per application statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics for <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin#configuration" target="_blank">application groups</a>. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},groups:{title:"User Groups (old)",icon:q.X4,info:'Per user group statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user group. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},users:{title:"Users (old)",icon:z.gd,info:'Per user statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},netdata:{title:"Netdata Monitoring",icon:F.$F,info:"Performance metrics for the operation of netdata itself and its plugins."},aclk_test:{title:"ACLK Test Generator",info:"For internal use to perform integration testing."},example:{title:"Example Charts",info:"Example charts, demonstrating the external plugin architecture."},cgroup:{title:"",icon:"serviceContainer",info:"Netdata collects Container and VM resource utilization metrics from <a href='https://man7.org/linux/man-pages/man7/cgroups.7.html' style='color: green' target='_blank'><b>cgroups</b></a>, a Linux kernel feature that enables the organization, management, and isolation of system resources among groups of processes. The charts show the aggregated view across all instances by default, to visualize the metrics per container or VM instance, <a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'>change the Group by to <b>instance</b></a>"},cgqemu:{title:"",icon:P.l9,info:"QEMU virtual machine resource utilization metrics. QEMU (short for Quick Emulator) is a free and open-source hosted hypervisor that performs hardware virtualization."},docker:{title:"Docker",icon:"serviceDockerHubPress",info:"Docker container and image metrics. Charts show aggregated view across all containers by default, to visualize the metrics per container, <a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'>change the Group by to <b>instance</b></a>"},dockerhub:{icon:"serviceDockerHubPress"},fping:{title:"fping",icon:U._q,info:"Network latency statistics, via <b>fping</b>. <b>fping</b> is a program to send ICMP echo probes to network hosts, similar to <b>ping</b>, but much better performing when pinging multiple hosts. fping versions after 3.15 can be directly used as netdata plugins."},gearman:{title:"Gearman",icon:g.Ag,info:"Gearman is a job server that allows you to do work in parallel, to load balance processing, and to call functions between languages."},ioping:{title:"ioping",icon:U._q,info:"Disk latency statistics, via <b>ioping</b>. <b>ioping</b> is a program to read/write data probes from/to a disk."},httpcheck:{title:"Http Check",icon:"serviceHTTPCheck",info:"Web Service availability and latency monitoring using HTTP checks. This plugin is a specialized version of the port check plugin."},cassandra:{title:"Cassandra",icon:"serviceDatabase",info:"Performance metrics for <b>Cassandra</b>, the open source distributed NoSQL database management system.<br>For more information: <br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/cassandra' style='color: green' target='_blank'><b>&#x2022; Netdata Cassandra collector docs</b></a><br><a href='https://www.netdata.cloud/blog/cassandra-monitoring-part1' style='color: green' target='_blank'><b>&#x2022; Cassandra monitoring guide - Part 1</b></a> and <a href='https://www.netdata.cloud/blog/cassandra-monitoring-part2' style='color: green' target='_blank'><b> Part 2</b></a>"},memcached:{title:"memcached",icon:"serviceMemCached",info:"Performance metrics for <b>memcached</b>. Memcached is a general-purpose distributed memory caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read."},monit:{title:"monit",icon:"serviceDatabase",info:"Statuses of checks in <b>monit</b>. Monit is a utility for managing and monitoring processes, programs, files, directories and filesystems on a Unix system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations."},mysql:{title:"MySQL",icon:"serviceMySQLPress",info:"Performance metrics for <b>mysql</b>, the open-source relational database management system (RDBMS)."},mongodb:{title:"MongoDB",icon:"serviceMongoDB",info:"Performance and health metrics of <b>MongoDB</b> deployments."},nvme:{title:"NVMe",icon:c.MB,info:"NVMe devices SMART and health metrics. Additional information on metrics can be found in the <a href='https://nvmexpress.org/developers/nvme-specification/' target='_blank'>NVM Express Base Specification</a>."},ping:{title:"Ping",icon:R.FF,info:"Measures round-trip time and packet loss by sending ping messages to network hosts."},postgres:{title:"PostgreSQL",icon:"servicePostgreSQL",info:"Performance metrics for <b>PostgreSQL</b>, the open source object-relational database management system (ORDBMS).<br>For more information:<br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/postgres' style='color: green' target='_blank'><b>&#x2022; Netdata PostgreSQL collector docs</b></a><br><a href='https://www.netdata.cloud/blog/postgresql-monitoring' style='color: green' target='_blank'><b>&#x2022; How to monitor PostgreSQL with Netdata</b></a>"},redis:{title:"Redis",icon:"serviceRedis",info:"Performance metrics for <b>Redis</b>, an in-memory data structure store, used as a distributed, in-memory key\u2013value database, cache and message broker, with optional durability.<br>For more information: <br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/redis' style='color: green' target='_blank'><b>&#x2022; Netdata Redis collector docs</b></a><br><a href='https://www.netdata.cloud/blog/redis-monitoring' style='color: green' target='_blank'><b>&#x2022; How to monitor Redis with Netdata</b></a>"},rethinkdbs:{title:"RethinkDB",icon:"serviceRethinkDB",info:"Performance metrics for <b>rethinkdb</b>. RethinkDB is the first open-source scalable database built for realtime applications"},retroshare:{title:"RetroShare",icon:"serviceRetroShare",info:"Performance metrics for <b>RetroShare</b>. RetroShare is open source software for encrypted filesharing, serverless email, instant messaging, online chat, and BBS, based on a friend-to-friend network built on GNU Privacy Guard (GPG)."},riakkv:{title:"Riak KV",icon:"serviceDatabase",info:"Metrics for <b>Riak KV</b>, the distributed key-value store."},ipfs:{title:"IPFS",icon:"serviceIPFS",info:"Performance metrics for the InterPlanetary File System (IPFS), a content-addressable, peer-to-peer hypermedia distribution protocol."},phpfpm:{title:"PHP-FPM",icon:"servicePhpFpm",info:"Performance metrics for <b>PHP-FPM</b>, an alternative FastCGI implementation for PHP."},pihole:{title:"Pi-hole",icon:N.Df,info:'Metrics for <a href="https://pi-hole.net/" target="_blank">Pi-hole</a>, a black hole for Internet advertisements. The metrics returned by Pi-Hole API is all from the last 24 hours.'},portcheck:{title:"Port Check",icon:D._g,info:"Service availability and latency monitoring using port checks."},postfix:{title:"postfix",icon:S.y_},dovecot:{title:"Dovecot",icon:S.y_},hddtemp:{title:"HDD Temp",icon:_.Ro},nginx:{title:"NGINX",icon:"serviceNginx"},nginxplus:{title:"NGINX Plus",icon:"serviceNginx"},apache:{title:"Apache",icon:"serviceApache"},lighttpd:{title:"Lighttpd",icon:"serviceLighthttpd"},web_log:{title:"Web Server Logs",icon:"serviceWebLog",info:"Key web server performance metrics extracted in real-time from web server log files. For web servers, an extended log file format may optionally be used offering timing information and bandwidth for both requests and responses."},squid:{title:"squid",icon:"serviceSquid"},nut:{title:"UPS",icon:i.W6},upsd:{title:"UPS",icon:i.W6},apcupsd:{title:"UPS",icon:i.W6},snmp:{title:"SNMP",icon:E.fK},go_expvar:{title:"Go - expvars",icon:C.pS,info:'Statistics about running Go applications exposed by the <a href="https://golang.org/pkg/expvar/" target="_blank">expvar package</a>.'},consul:{title:"Consul",icon:A.s4,info:'Consul performance and health metrics. For details, see <a href="https://developer.hashicorp.com/consul/docs/agent/telemetry#key-metrics" target="_blank">Key Metrics</a>.'},chrony:{title:"Chrony",icon:L.a$,info:"The system\u2019s clock performance and peers activity status."},couchdb:{icon:"serviceCouchDB",info:'Performance metrics for <b><a href="https://couchdb.apache.org/" target="_blank">CouchDB</a></b>, the open-source, JSON document-based database with an HTTP API and multi-master replication.'},beanstalk:{title:"Beanstalkd",icon:"serviceBeanstalk",info:'Provides statistics on the <b><a href="http://kr.github.io/beanstalkd/" target="_blank">beanstalkd</a></b> server and any tubes available on that server using data pulled from beanstalkc'},rabbitmq:{title:"RabbitMQ",icon:"serviceRabbitMQ",info:'Performance data for the <b><a href="https://www.rabbitmq.com/" target="_blank">RabbitMQ</a></b> open-source message broker.'},ceph:{title:"Ceph",icon:"serviceDatabase",info:'Provides statistics on the <b><a href="http://ceph.com/" target="_blank">ceph</a></b> cluster server, the open-source distributed storage system.'},ntpd:{title:"NTPd",icon:"serviceNtpdPress",info:'Provides statistics for the internal variables of the Network Time Protocol daemon <b><a href="http://www.ntp.org/" target="_blank">ntpd</a></b> and optional including the configured peers (if enabled in the module configuration). The module presents the performance metrics as shown by <b><a href="http://doc.ntp.org/current-stable/ntpq.html">ntpq</a></b> (the standard NTP query program) using NTP mode 6 UDP packets to communicate with the NTP server.'},spigotmc:{title:"Spigot MC",icon:C.pS,info:'Provides basic performance statistics for the <b><a href="https://www.spigotmc.org/" target="_blank">Spigot Minecraft</a></b> server.'},unbound:{title:"Unbound",icon:B._2},boinc:{title:"BOINC",icon:I.YS,info:'Provides task counts for <b><a href="http://boinc.berkeley.edu/" target="_blank">BOINC</a></b> distributed computing clients.'},w1sensor:{title:"1-Wire Sensors",icon:_.Ro,info:'Data derived from <a href="https://en.wikipedia.org/wiki/1-Wire" target="_blank">1-Wire</a> sensors. Currently temperature sensors are automatically detected.'},logind:{title:"Logind",icon:q.X4,info:'Keeps track of user logins and sessions by querying the <a href="https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html" target="_blank">systemd-logind API</a>.'},powersupply:{title:"Power Supply",icon:i.W6,info:'Statistics for the various system power supplies. Data collected from <a href="https://www.kernel.org/doc/Documentation/power/power_supply_class.txt" target="_blank">Linux power supply class</a>.'},xenstat:{title:"Xen Node",icon:k.D6,info:"General statistics for the Xen node. Data collected using <b>xenstat</b> library</a>."},xendomain:{title:"",icon:P.l9,info:"Xen domain resource utilization metrics. Netdata reads this information using <b>xenstat</b> library which gives access to the resource usage information (CPU, memory, disk I/O, network) for a virtual machine."},windows:{title:"Windows",icon:r.tQ},iis:{title:"IIS",icon:C.pS},mssql:{title:"SQL Server",icon:x.he},ad:{title:"Active Directory",icon:r.tQ},adcs:{title:"AD Certification Service",icon:r.tQ},adfs:{title:"AD Federation Service",icon:r.tQ},netframework:{title:".NET Framework",icon:M.fP},exchange:{title:"Exchange",icon:S.y_},perf:{title:"Perf Counters",icon:T.xi,info:"Performance Monitoring Counters (PMC). Data collected using <b>perf_event_open()</b> system call which utilises Hardware Performance Monitoring Units (PMU)."},vsphere:{title:"vSphere",icon:k.D6,info:'Performance statistics for ESXI hosts and virtual machines. Data collected from <a href="https://www.vmware.com/products/vcenter-server.html" target="_blank">VMware vCenter Server</a> using <b><a href="https://github.com/vmware/govmomi"> govmomi</a></b> library.'},vcsa:{title:"VCSA",icon:k.D6,info:'vCenter Server Appliance health statistics. Data collected from <a href="https://vmware.github.io/vsphere-automation-sdk-rest/vsphere/index.html#SVC_com.vmware.appliance.health" target="_blank">Health API</a>.'},zookeeper:{title:"Zookeeper",icon:"serviceDatabase",info:'Provides health statistics for <b><a href="https://zookeeper.apache.org/" target="_blank">Zookeeper</a></b> server. Data collected through the command port using <b><a href="https://zookeeper.apache.org/doc/r3.5.5/zookeeperAdmin.html#sc_zkCommands">mntr</a></b> command.'},hdfs:{title:"HDFS",icon:w.Uj,info:'Provides <b><a href="https://hadoop.apache.org/docs/r3.2.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html" target="_blank">Hadoop Distributed File System</a></b> performance statistics. Module collects metrics over <b>Java Management Extensions</b> through the web interface of an <b>HDFS</b> daemon.'},am2320:{title:"AM2320 Sensor",icon:_.Ro,info:"Readings from the external AM2320 Sensor."},scaleio:{title:"ScaleIO",icon:"serviceDatabase",info:"Performance and health statistics for various ScaleIO components. Data collected via VxFlex OS Gateway REST API."},squidlog:{title:"Squid log",icon:v.h8},cockroachdb:{title:"CockroachDB",icon:"serviceDatabase",info:"Performance and health statistics for various <b>CockroachDB</b> components."},ebpf:{title:"eBPF",icon:"serviceEBPF",info:"Monitor system calls, internal functions, bytes read, bytes written and errors using <b>eBPF</b>."},filesystem:{title:"Filesystem",icon:c.MB,info:'Number of filesystem events for <a href="#menu_filesystem_submenu_vfs">Virtual File System</a>, <a href="#menu_filesystem_submenu_file_access">File Access</a>, <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Directory cache</a>, and file system latency (<a href="#menu_filesystem_submenu_btrfs_latency">BTRFS</a>, <a href="#menu_filesystem_submenu_ext4_latency">EXT4</a>, <a href="#menu_filesystem_submenu_nfs_latency">NFS</a>, <a href="#menu_filesystem_submenu_xfs_latency">XFS</a>, and <a href="#menu_filesystem_submenu_xfs_latency">ZFS</a>) when your disk has the file system. Filesystem charts have relationship with <a href="#menu_system_submenu_swap">SWAP</a>, <a href="#menu_disk">Disk</a>, <a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, and <a href="#menu_mount">Mount Points</a>.'},vernemq:{title:"VerneMQ",icon:y.q9,info:'Performance data for the <b><a href="https://vernemq.com/" target="_blank">VerneMQ</a></b> open-source MQTT broker.'},pulsar:{title:"Pulsar",icon:y.q9,info:'Summary, namespaces and topics performance data for the <b><a href="http://pulsar.apache.org/" target="_blank">Apache Pulsar</a></b> pub-sub messaging system.'},anomalies:{title:"Anomalies",icon:p.rI,info:'Anomaly scores relating to key system metrics. A high anomaly probability indicates strange behaviour and may trigger an anomaly prediction from the trained models. Read the <a href="https://github.com/netdata/netdata/tree/master/collectors/python.d.plugin/anomalies" target="_blank">anomalies collector docs</a> for more details.'},alerts:{title:"Alerts",icon:b.z$,info:'Charts showing alert status over time. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alerts/README.md" target="_blank">here</a>.'},statsd:{title:"StatsD",icon:f.gK,info:'StatsD is an industry-standard technology stack for monitoring applications and instrumenting any piece of software to deliver custom metrics. Netdata allows the user to organize the metrics in different charts and visualize any application metric easily. Read more on <a href="https://learn.netdata.cloud/docs/agent/collectors/statsd.plugin" target="_blank">Netdata Learn</a>.'},supervisord:{title:"Supervisord",icon:g.Ag,info:'Detailed statistics for each group of processes controlled by <b><a href="http://supervisord.org/" target="_blank">Supervisor</a></b>. Netdata collects these metrics using <a href="http://supervisord.org/api.html#supervisor.rpcinterface.SupervisorNamespaceRPCInterface.getAllProcessInfo" target="_blank"><b>getAllProcessInfo</b></a> method.'},systemdunits:{title:"systemd units",icon:m.Ub,info:'<b>systemd</b> provides a dependency system between various entities called "units" of 11 different types. Units encapsulate various objects that are relevant for system boot-up and maintenance. Units may be <b>active</b> (meaning started, bound, plugged in, depending on the unit type), or <b>inactive</b> (meaning stopped, unbound, unplugged), as well as in the process of being activated or deactivated, i.e. between the two states (these states are called <b>activating</b>, <b>deactivating</b>). A special <b>failed</b> state is available as well, which is very similar to <b>inactive</b> and is entered when the service failed in some way (process returned error code on exit, or crashed, an operation timed out, or after too many restarts). For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.html" target="_blank"> systemd(1)</a>.'},changefinder:{title:"ChangeFinder",icon:p.rI,info:'Online changepoint detection using machine learning. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/changefinder/README.md" target="_blank">here</a>.'},zscores:{title:"Z-Scores",icon:u.bx,info:"Z scores scores relating to key system metrics."},anomaly_detection:{title:"Anomaly Detection",icon:h.GQ,info:'Charts relating to anomaly detection, increased <b>anomalous</b> dimensions or a higher than usual <b>anomaly_rate</b> could be signs of some abnormal behaviour. Read our <a href="https://learn.netdata.cloud/guides/monitor/anomaly-detection" target="_blank">anomaly detection guide</a> for more details.'},fail2ban:{title:"Fail2ban",icon:d.V2,info:"Netdata keeps track of the current jail status by reading the Fail2ban log file."},wireguard:{title:"WireGuard",icon:l.dX,info:"VPN network interfaces and peers traffic."},prometheus:{icon:"servicePrometheus"},"Kubernetes State":{title:"Kubernetes State",icon:"serviceKubernetes"},"Kubernetes Containers":{title:"Kubernetes Containers",icon:"serviceKubernetes"},"Kubernetes kubelet":{title:"Kubernetes Kubelet",icon:"serviceKubernetes"},"Kubernetes kubeproxy":{title:"Kubernetes Kubeproxy",icon:"serviceKubernetes"},coredns:{title:"CoreDNS",icon:"serviceCoreDns"},dns_query:{title:"DNS Query Response Time",icon:"serviceDns"},sendgrid:{title:"SendGrid",icon:"serviceSendgrid"},smartd_log:{icon:"servicesSmartdlog"},bind:{icon:"serviceBind"},systemd:{icon:"serviceSystemd",info:"Resources utilization of <b>systemd services</b>. Netdata monitors all systemd services via <a href='https://en.wikipedia.org/wiki/Cgroups' target='_blank'>cgroups</a> (the resources accounting used by containers)."},md:{title:"Linux Software RAID",icon:c.MB,info:"Metrics for monitoring Linux Software RAID"},cups:{title:"Printers (cups)",icon:i.W6,info:"Metrics for Printer (cups) monitoring"},named:{title:"ISC Bind (named)",icon:"serviceCoreDns",info:"Metrics for named monitoring"},isc_dhcpd:{title:"ISC DHCPd",icon:"serviceCoreDns",info:"Metrics for DHCPd monitoring"}},K={"web_log.squid_bandwidth":{title:"bandwidth",info:'Bandwidth of responses (<b>sent</b>) by squid. This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a>) for accurate accounting of the server bandwidth.'},"web_log.squid_responses":{title:"responses",info:"Information related to the responses sent by squid."},"web_log.squid_requests":{title:"requests",info:"Information related to the requests squid has received."},"web_log.squid_hierarchy":{title:"hierarchy",info:"Performance metrics for the squid hierarchy used to serve the requests."},"web_log.squid_squid_transport":{title:"transport"},"web_log.squid_squid_cache":{title:"cache",info:"Performance metrics for the performance of the squid cache."},"web_log.squid_timings":{title:"timings",info:"Duration of squid requests. Unrealistic spikes may be reported, since squid logs the total time of the requests, when they complete. Especially for HTTPS, the clients get a tunnel from the proxy and exchange requests directly with the upstream servers, so squid cannot evaluate the individual requests and reports the total time the tunnel was open."},"web_log.squid_clients":{title:"clients"},"web_log.bandwidth":{info:'Bandwidth of requests (<b>received</b>) and responses (<b>sent</b>). <b>received</b> requires an extended log format (without it, the web server log does not have this information). This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the web server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a>) for accurate accounting of the web server bandwidth.'},"web_log.urls":{info:'Number of requests for each <b>URL pattern</b> defined in <a href="https://github.com/netdata/go.d.plugin/blob/master/config/go.d/web_log.conf" target="_blank"><b>/etc/netdata/go.d/web_log.conf</b></a>. This chart counts all requests matching the URL patterns defined, independently of the web server response codes (i.e. both successful and unsuccessful).'},"web_log.clients":{info:"Charts showing the number of unique client IPs, accessing the web server."},"web_log.timings":{info:"Web server response timings - the time the web server needed to prepare and respond to requests. This requires an extended log format and its meaning is web server specific. For most web servers this accounts the time from the reception of a complete request, to the dispatch of the last byte of the response. So, it includes the network delays of responses, but it does not include the network delays of requests."},"mem.ksm":{title:"deduper (ksm)",info:'<a href="https://en.wikipedia.org/wiki/Kernel_same-page_merging" target="_blank">Kernel Same-page Merging</a> (KSM) performance monitoring, read from several files in <b>/sys/kernel/mm/ksm/</b>. KSM is a memory-saving de-duplication feature in the Linux kernel. The KSM daemon ksmd periodically scans those areas of user memory which have been registered with it, looking for pages of identical content which can be replaced by a single write-protected page.'},"mem.hugepages":{info:'Hugepages is a feature that allows the kernel to utilize the multiple page size capabilities of modern hardware architectures. The kernel creates multiple pages of virtual memory, mapped from both physical RAM and swap. There is a mechanism in the CPU architecture called "Translation Lookaside Buffers" (TLB) to manage the mapping of virtual memory pages to actual physical memory addresses. The TLB is a limited hardware resource, so utilizing a large amount of physical memory with the default page size consumes the TLB and adds processing overhead. By utilizing Huge Pages, the kernel is able to create pages of much larger sizes, each page consuming a single resource in the TLB. Huge Pages are pinned to physical RAM and cannot be swapped/paged out.'},"mem.numa":{info:'Non-Uniform Memory Access (NUMA) is a hierarchical memory design the memory access time is dependent on locality. Under NUMA, a processor can access its own local memory faster than non-local memory (memory local to another processor or memory shared between processors). The individual metrics are described in the <a href="https://www.kernel.org/doc/Documentation/numastat.txt" target="_blank">Linux kernel documentation</a>.'},"mem.ecc":{info:'<p><a href="https://en.wikipedia.org/wiki/ECC_memory" target="_blank">ECC memory</a> is a type of computer data storage that uses an error correction code (ECC) to detect and correct n-bit data corruption which occurs in memory. Typically, ECC memory maintains a memory system immune to single-bit errors: the data that is read from each word is always the same as the data that had been written to it, even if one of the bits actually stored has been flipped to the wrong state.</p><p>Memory errors can be classified into two types: <b>Soft errors</b>, which randomly corrupt bits but do not leave physical damage. Soft errors are transient in nature and are not repeatable, can be because of electrical or magnetic interference. <b>Hard errors</b>, which corrupt bits in a repeatable manner because of a physical/hardware defect or an environmental problem.'},"mem.pagetype":{info:'Statistics of free memory available from <a href="https://en.wikipedia.org/wiki/Buddy_memory_allocation" target="_blank">memory buddy allocator</a>. The buddy allocator is the system memory allocator. The whole memory space is split in physical pages, which are grouped by NUMA node, zone, <a href="https://lwn.net/Articles/224254/" target="_blank">migrate type</a>, and size of the block. By keeping pages grouped based on their ability to move, the kernel can reclaim pages within a page block to satisfy a high-order allocation. When the kernel or an application requests some memory, the buddy allocator provides a page that matches closest the request.'},"ip.ecn":{info:'<a href="https://en.wikipedia.org/wiki/Explicit_Congestion_Notification" target="_blank">Explicit Congestion Notification (ECN)</a> is an extension to the IP and to the TCP that allows end-to-end notification of network congestion without dropping packets. ECN is an optional feature that may be used between two ECN-enabled endpoints when the underlying network infrastructure also supports it.'},"ip.multicast":{info:'<a href="https://en.wikipedia.org/wiki/Multicast" target="_blank">IP multicast</a> is a technique for one-to-many communication over an IP network. Multicast uses network infrastructure efficiently by requiring the source to send a packet only once, even if it needs to be delivered to a large number of receivers. The nodes in the network take care of replicating the packet to reach multiple receivers only when necessary.'},"ip.broadcast":{info:'In computer networking, <a href="https://en.wikipedia.org/wiki/Broadcasting_(networking)" target="_blank">broadcasting</a> refers to transmitting a packet that will be received by every device on the network. In practice, the scope of the broadcast is limited to a broadcast domain.'},"netfilter.conntrack":{title:"connection tracker",info:"Netfilter Connection Tracker performance metrics. The connection tracker keeps track of all connections of the machine, inbound and outbound. It works by keeping a database with all open connections, tracking network and address translation and connection expectations."},"netfilter.nfacct":{title:"bandwidth accounting",info:"The following information is read using the <b>nfacct.plugin</b>."},"netfilter.synproxy":{title:"DDoS protection",info:'DDoS protection performance metrics. <a href="https://github.com/firehol/firehol/wiki/Working-with-SYNPROXY" target="_blank">SYNPROXY</a> is a TCP SYN packets proxy. It is used to protect any TCP server (like a web server) from SYN floods and similar DDoS attacks. SYNPROXY intercepts new TCP connections and handles the initial 3-way handshake using syncookies instead of conntrack to establish the connection. It is optimized to handle millions of packets per second utilizing all CPUs available without any concurrency locking between the connections. It can be used for any kind of TCP traffic (even encrypted), since it does not interfere with the content itself.'},"ipfw.dynamic_rules":{title:"dynamic rules",info:"Number of dynamic rules, created by correspondent stateful firewall rules."},"system.softnet_stat":{title:"softnet",info:e=>{let{os:t}=e;return"linux"===t?'<p>Statistics for CPUs SoftIRQs related to network receive work. Break down per CPU core can be found at <a href="#menu_cpu_submenu_softnet_stat">CPU / softnet statistics</a>. More information about identifying and troubleshooting network driver related issues can be found at <a href="https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf" target="_blank">Red Hat Enterprise Linux Network Performance Tuning Guide</a>.</p><p><b>Processed</b> - packets processed. <b>Dropped</b> - packets dropped because the network device backlog was full. <b>Squeezed</b> - number of times the network device budget was consumed or the time limit was reached, but more work was available. <b>ReceivedRPS</b> - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. <b>FlowLimitCount</b> - number of times the flow limit has been reached (flow limiting is an optional Receive Packet Steering feature).</p>':"Statistics for CPUs SoftIRQs related to network receive work."}},"system.clock synchronization":{info:'<a href="https://en.wikipedia.org/wiki/Network_Time_Protocol" target="_blank">NTP</a> lets you automatically sync your system time with a remote server. This keeps your machine\u2019s time accurate by syncing with servers that are known to have accurate times.'},"cpu.softnet_stat":{title:"softnet",info:e=>{let{os:t}=e;return"linux"===t?'<p>Statistics for CPUs SoftIRQs related to network receive work. Total for all CPU cores can be found at <a href="#menu_system_submenu_softnet_stat">System / softnet statistics</a>. More information about identifying and troubleshooting network driver related issues can be found at <a href="https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf" target="_blank">Red Hat Enterprise Linux Network Performance Tuning Guide</a>.</p><p><b>Processed</b> - packets processed. <b>Dropped</b> - packets dropped because the network device backlog was full. <b>Squeezed</b> - number of times the network device budget was consumed or the time limit was reached, but more work was available. <b>ReceivedRPS</b> - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. <b>FlowLimitCount</b> - number of times the flow limit has been reached (flow limiting is an optional Receive Packet Steering feature).</p>':'Statistics for per CPUs core SoftIRQs related to network receive work. Total for all CPU cores can be found at <a href="#menu_system_submenu_softnet_stat">System / softnet statistics</a>.'}},"go_expvar.memstats":{title:"memory statistics",info:'Go runtime memory statistics. See <a href="https://golang.org/pkg/runtime/#MemStats" target="_blank">runtime.MemStats</a> documentation for more info about each chart and the values.'},"couchdb.dbactivity":{title:"db activity",info:"Overall database reads and writes for the entire server. This includes any external HTTP traffic, as well as internal replication traffic performed in a cluster to ensure node consistency."},"couchdb.httptraffic":{title:"http traffic breakdown",info:"All HTTP traffic, broken down by type of request (<tt>GET</tt>, <tt>PUT</tt>, <tt>POST</tt>, etc.) and response status code (<tt>200</tt>, <tt>201</tt>, <tt>4xx</tt>, etc.)<br/><br/>Any <tt>5xx</tt> errors here indicate a likely CouchDB bug; check the logfile for further information."},"couchdb.ops":{title:"server operations"},"couchdb.perdbstats":{title:"per db statistics",info:'Statistics per database. This includes <a href="http://docs.couchdb.org/en/latest/api/database/common.html#get--db" target="_blank">3 size graphs per database</a>: active (the size of live data in the database), external (the uncompressed size of the database contents), and file (the size of the file on disk, exclusive of any views and indexes). It also includes the number of documents and number of deleted documents per database.'},"couchdb.erlang":{title:"erlang statistics",info:"Detailed information about the status of the Erlang VM that hosts CouchDB. These are intended for advanced users only. High values of the peak message queue (>10e6) generally indicate an overload condition."},"ntpd.system":{title:"system",info:'Statistics of the system variables as shown by the readlist billboard <b>ntpq -c rl</b>. System variables are assigned an association ID of zero and can also be shown in the readvar billboard <b>ntpq -c "rv 0"</b>. These variables are used in the <a href="http://doc.ntp.org/current-stable/discipline.html" target="_blank">Clock Discipline Algorithm</a>, to calculate the lowest and most stable offset.'},"ntpd.peers":{title:"peers",info:'Statistics of the peer variables for each peer configured in <b>/etc/ntp.conf</b> as shown by the readvar billboard <b>ntpq -c "rv &lt;association&gt;"</b>, while each peer is assigned a nonzero association ID as shown by <b>ntpq -c "apeers"</b>. The module periodically scans for new/changed peers (default: every 60s). <b>ntpd</b> selects the best possible peer from the available peers to synchronize the clock. A minimum of at least 3 peers is required to properly identify the best possible peer.'},"mem.page_cache":{title:"page cache (eBPF)",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#memory" target="_blank">functions</a> used to manipulate the <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. This chart has a relationship with <a href="#menu_filesystem">File Systems</a>, <a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, and <a href="#menu_disk">Hard Disk</a>.'},"apps.page_cache":{title:"page cache (eBPF)",info:'Netdata also gives a summary for these charts in <a href="#menu_mem_submenu_page_cache">Memory submenu</a>.'},"filesystem.vfs":{title:"vfs (eBPF)",info:'Number of calls to Virtual File System <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">functions</a> used to manipulate <a href="#menu_filesystem">File Systems</a>.'},"apps.vfs":{title:"vfs (eBPF)",info:'Netdata also gives a summary for these charts in <a href="#menu_filesystem_submenu_vfs">Filesystem submenu</a>.'},"filesystem.ext4_latency":{title:"ext4 latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="http://www.brendangregg.com/blog/2016-10-06/linux-bcc-ext4dist-ext4slower.html" target="_blank">eBPF ext4dist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.xfs_latency":{title:"xfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/xfsdist_example.txt" target="_blank">xfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.nfs_latency":{title:"nfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/nfsdist_example.txt" target="_blank">nfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.zfs_latency":{title:"zfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/zfsdist_example.txt" target="_blank">zfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.btrfs_latency":{title:"btrfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/btrfsdist_example.txt" target="_blank">btrfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.file_access":{title:"file access (eBPF)"},"apps.file_access":{title:"file access (eBPF)",info:'Netdata also gives a summary for this chart on <a href="#menu_filesystem_submenu_file_access">Filesystem submenu</a> (more details on <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">eBPF plugin file chart section</a>).'},"ip.kernel":{title:"kernel functions (eBPF)"},"apps.net":{title:"network",info:'Netdata also gives a summary for eBPF charts in <a href="#menu_ip_submenu_kernel">Networking Stack submenu</a>.'},"system.ipc semaphores":{info:'System V semaphores is an inter-process communication (IPC) mechanism. It allows processes or threads within a process to synchronize their actions. They are often used to monitor and control the availability of system resources such as shared memory segments. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC semaphore information, run <b>ipcs -us</b>. For limits, run <b>ipcs -ls</b>.'},"system.ipc shared memory":{info:'System V shared memory is an inter-process communication (IPC) mechanism. It allows processes to communicate information by sharing a region of memory. It is the fastest form of inter-process communication available since no kernel involvement occurs when data is passed between the processes (no copying). Typically, processes must synchronize their access to a shared memory object, using, for example, POSIX semaphores. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC shared memory information, run <b>ipcs -um</b>. For limits, run <b>ipcs -lm</b>.'},"system.ipc message queues":{info:'System V message queues is an inter-process communication (IPC) mechanism. It allow processes to exchange data in the form of messages. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC messages information, run <b>ipcs -uq</b>. For limits, run <b>ipcs -lq</b>.'},"system.interrupts":{info:'<a href="https://en.wikipedia.org/wiki/Interrupt" target="_blank"><b>Interrupts</b></a> are signals sent to the CPU by external devices (normally I/O devices) or programs (running processes). They tell the CPU to stop its current activities and execute the appropriate part of the operating system. Interrupt types are <b>hardware</b> (generated by hardware devices to signal that they need some attention from the OS), <b>software</b> (generated by programs when they want to request a system call to be performed by the operating system), and <b>traps</b> (generated by the CPU itself to indicate that some error or condition occurred for which assistance from the operating system is needed).'},"system.softirqs":{info:'Software interrupts (or "softirqs") are one of the oldest deferred-execution mechanisms in the kernel. Several tasks among those executed by the kernel are not critical: they can be deferred for a long period of time, if necessary. The deferrable tasks can execute with all interrupts enabled (softirqs are patterned after hardware interrupts). Taking them out of the interrupt handler helps keep kernel response time small.'},"cpu.softirqs":{info:'Total number of software interrupts per CPU. To see the total number for the system check the <a href="#menu_system_submenu_softirqs">softirqs</a> section.'},"cpu.interrupts":{info:'Total number of interrupts per CPU. To see the total number for the system check the <a href="#menu_system_submenu_interrupts">interrupts</a> section. The last column in <b>/proc/interrupts</b> provides an interrupt description or the device name that registered the handler for that interrupt.'},"cpu.throttling":{info:" CPU throttling is commonly used to automatically slow down the computer when possible to use less energy and conserve battery."},"cpu.cpuidle":{info:'<a href="https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Processor_states" target="_blank">Idle States (C-states)</a> are used to save power when the processor is idle.'},"services.net":{title:"network (eBPF)"},"services.page_cache":{title:"pache cache (eBPF)"},"netdata.ebpf":{title:"eBPF.plugin",info:'eBPF (extended Berkeley Packet Filter) is used to collect metrics from inside Linux kernel giving a zoom inside your <a href="#ebpf_system_process_thread">Process</a>, <a href="#menu_disk">Hard Disk</a>, <a href="#menu_filesystem">File systems</a> (<a href="#menu_filesystem_submenu_file_access">File Access</a>, and <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Directory Cache</a>), Memory (<a href="#ebpf_global_swap">Swap I/O</a>, <a href="#menu_mem_submenu_page_cache">Page Cache</a>), IRQ (<a href="#ebpf_global_hard_irq">Hard IRQ</a> and <a href="#ebpf_global_soft_irq">Soft IRQ</a> ), <a href="#ebpf_global_shm">Shared Memory</a>, Syscalls (<a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, <a href="#menu_mount_submenu_mount__eBPF_">Mount</a>), and <a href="#menu_ip_submenu_kernel">Network</a>.'}},Z=function(e,t,n,s){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if("undefined"===typeof e[n])return s;const o=e[n][t];return"undefined"===typeof o?s:"function"===typeof o?o(a):o},Y=(e,t)=>{if(e.sectionTitle)return e.sectionTitle;if("undefined"===typeof e.menuPattern)return Z(W,"title",e.id,e.id,t).toString().replace(/_/g," ");const n=e.type||e.id.split(".")[0],s=n===e.menuPattern?"":" ".concat(n.slice(-(n.length-e.menuPattern.length-1)));return"".concat(Z(W,"title",e.menuPattern,e.menuPattern,t).toString()," ").concat(s).replace(/_/g," ")},J=s._X,X=e=>Z(W,"icon",e.menuIcon||e.menuPattern||e.id,J),$=(e,t)=>Z(W,"info",e.menuPattern||e.id,null,t),ee=(e,t,n)=>{const s=t?"".concat(e,".").concat(t):e;return Z(K,"title",s,t||e,n).toString().replace(/_/g," ")},te=(e,t,n)=>Z(K,"info",t?"".concat(e,".").concat(t):e,null,n),ne=(e,t)=>{const n=Z(o.A,"info",e,null,t);return n?'<div class="shorten dashboard-context-info" role="document">'.concat(n,"</div>"):""},se=(e,t,n,s)=>Z(o.A,t,e,n,s),ae=e=>{var t;return(null===(t=o.A[e])||void 0===t?void 0:t.valueRange)||[null,null]},oe=function(e){let{menuId:t,subMenuId:n,sectionInfo:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{context:i,domain:c,id:l,visible:d,filteredOut:h,hidden:u}=e;return{...o.A[l],id:l,chartId:l,menuGroupId:t,subMenuId:n,link:"chart_".concat((0,a.A)(l)),chartLibrary:"dygraph",info:ne(i,r),sectionInfo:s,valueRange:ae(i),colors:"".concat(Z(i||l,"colors",i,"",r)),domain:c,visible:d,filteredOut:h,hidden:u}}},72253:(e,t,n)=>{n.d(t,{A:()=>T});var s=n(58168),a=(n(17333),n(41393),n(98992),n(54520),n(81454),n(62953),n(96540)),o=n(10058),r=n(73700),i=n(31438),c=n(51220),l=n(23931),d=(n(3064),n(72577),n(55309)),h=n(59090),u=n(8320),p=n(39528);const m=e=>{const t=(0,a.useRef)();return(0,p.i7)(e,(e=>(t.current=e,!1))),t},g=(e,t)=>{const n=(0,i.NF)(),s=m(d.ox),o=m(h.xw),r=m(i.i8),c=(0,u.Gr)(),l=(0,a.useMemo)((()=>({goToElement:n=>!!t.length&&(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;new Promise((n=>{const s=t=>{if(0===t)return n();e(),setTimeout((()=>s(--t)))};s(t)}))}((()=>{const s=t.findIndex((e=>e.id===n));if(-1!==s)return e.scrollToIndex(s,{align:"start"})}),5),!0),goToLink:e=>{const t=Object.values(s.current).find((t=>t.link===e));if(t)return l.goToElement(t.id);const n=Object.values(o.current).find((t=>t.link===e));if(n)return l.goToElement(n.id);if(r.current){const t=Object.values(r.current).find((t=>t.link===e));if(t)return l.goToElement(t.chartId)}}})),[n,t]);return(0,a.useLayoutEffect)((()=>{c(l)}),[l]),l};var f=n(62302);let b=null;n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215);var y=n(57530),v=n(43375);n(14905),n(8872);const _=(0,a.memo)((e=>{let{getComponent:t,element:n,index:o,...r}=e;const i=(0,a.useMemo)((()=>n&&t(n)),[null===n||void 0===n?void 0:n.id,o]);return i?a.createElement(i,(0,s.A)({key:n.id},n,{index:o},r,{isVisible:!0})):null})),w=(0,a.memo)((0,a.forwardRef)(((e,t)=>{let{elements:n,onScroll:i,dashboardOptions:l,getComponent:d,stickyBg:h="mainBackground",stickyRef:u,nextStickyRef:p,stickyIndexes:m,tmpStickyRef:f,containerWidth:w}=e;const k=(e=>{const t=(0,a.useRef)(),n=(0,a.useRef)(),s=(0,a.useRef)(0),o=(0,a.useRef)(0);return(0,a.useCallback)((a=>{if(t.current!==e.length&&(o.current=0),n.current&&(o.current<5||t.current!==e.length)){o.current=o.current+1,t.current=e.length;const r=e.findIndex((e=>e.id===n.current.id));if(-1===r)return;const{start:i}=a.getMeasurements()[r];return a.scrollToOffset(i+s.current),clearTimeout(b),void(b=setTimeout((()=>o.current=5),200))}t.current=e.length;const r=a.scrollOffset;let i=0;const c=a.getMeasurements().find((e=>(i+=e.size,i>r)));c&&(n.current=e[c.index],s.current=r-c.start)}),[e])})(n),T=(0,a.useRef)(),[S,M]=(0,a.useState)(0),x=((e,t,n)=>{let{stickyRef:s,nextStickyRef:o,tmpStickyRef:r}=n;const i=(0,a.useRef)(),{active:c}=(0,v.fF)(),l=(0,a.useRef)();return l.current=c,(0,a.useCallback)((e=>{if(l.current&&l.current.data.current.isResizer)return i.current;if(!t)return i.current=(0,y.vp)(e),i.current;o.current=Number(Object.keys(t).find((t=>e.startIndex<t))),s.current=Number(Object.keys(t).reverse().find((t=>e.startIndex>=t))),o.current-e.startIndex===1&&(s.current=NaN);let n=(0,y.vp)(e);return null!==r.current&&(n=[...n,r.current]),isNaN(s.current)?i.current=[...new Set(n)].sort(((e,t)=>e-t)):i.current=[...new Set([s.current,...n])].sort(((e,t)=>e-t)),i.current}),[e,t])})(n,m,{stickyRef:u,nextStickyRef:p,tmpStickyRef:f}),C=(0,c.Te)({count:n.length,getScrollElement:()=>t.current,overscan:1,enableSmoothScroll:!1,estimateSize:e=>n[e].size,onChange:k,rangeExtractor:x,scrollPaddingStart:20});T.current=C,g(C,n);const P=(0,a.useCallback)((0,r.n)(100,(function(){i(...arguments),t.current&&M(t.current.scrollTop)})),[i]);return a.createElement("div",{ref:t,style:{minHeight:"100%",width:"100%",overflow:"auto"},onScroll:P},a.createElement("div",{style:{minHeight:"".concat(C.getTotalSize(),"px"),width:"100%",position:"relative"}},S>0&&!isNaN(u.current)&&a.createElement(o.Box,{key:u.current,sx:{top:0,left:0,width:"100%",padding:1,position:"sticky",zIndex:10,boxShadow:"2px 6px 6px -7px rgba(0, 0, 0, 0.4)"},background:h},a.createElement(_,(0,s.A)({},l,{element:n[u.current],index:u.current,getComponent:d,isActiveSticky:!0}))),C.getVirtualItems().map((e=>a.createElement(o.Box,{key:e.key,ref:C.measureElement,sx:{top:0,left:0,width:"100%",padding:1,position:"absolute",transform:"translateY(".concat(e.start,"px)")},"data-index":e.index},a.createElement(_,(0,s.A)({},l,{element:n[e.index],index:e.index,getComponent:d,containerWidth:w})))))))})),((e,t)=>e.elements.length===t.elements.length&&e.containerWidth===t.containerWidth)),k=e=>{let{onActiveMenuGroupId:t,onActiveSubMenuId:n,getComponent:o,dashboardOptions:r,initialChartName:c,checkVisibility:d,...h}=e;const u=(0,l.bD)(),p=(0,i.qR)((e=>e.filter((e=>d?d(e.subMenuChartIds||e.chartIds||[e.id]):u(e.subMenuChartIds||e.chartIds||[e.id]))))),[{stickyRef:m,nextStickyRef:g,tmpStickyRef:b},y]=(e=>{const t=(0,i.Tg)(),n=(0,a.useRef)(null),s=(0,a.useMemo)((()=>e.reduce(((e,n,s)=>{let{id:a}=n;return t[a]&&(e[s]=!0),e}),{})),[e]),o=(0,a.useRef)(),r=(0,a.useRef)(),c=(0,a.useCallback)((e=>!!s[e]),[s]),l=(0,a.useCallback)((e=>o.current===e),[]);return[{stickyRef:o,nextStickyRef:r,isSticky:c,isActiveSticky:l,tmpStickyRef:n},s,t]})(p),v=(0,a.useRef)(),_=(0,a.useRef)(),k=(0,a.useMemo)((()=>(_.current&&_.current.cancel(),_.current=(0,f.A)(m),()=>_.current(v.current,n,t))),[p.length,n,t]);return(0,a.useLayoutEffect)((()=>{p.length&&k()}),[p.length,c]),a.createElement(w,(0,s.A)({elements:p,onScroll:k,dashboardOptions:r,getComponent:o,ref:v,stickyRef:m,nextStickyRef:g,stickyIndexes:y,tmpStickyRef:b},h))},T=(0,a.memo)(k)},62302:(e,t,n)=>{n.d(t,{A:()=>a});n(3064),n(98992),n(72577);var s=n(73700);const a=e=>(0,s.s)(100,((t,n,s)=>{var a;if(!t)return;const{top:o}=t.getBoundingClientRect(),r=Array.from(t.querySelectorAll("[data-submenuid], [data-menuid], [data-chartid]")).find(((t,n)=>!(!isNaN(null===e||void 0===e?void 0:e.current)&&0===n)&&t.getBoundingClientRect().top-o>0));if(!r)return;const i=r.getAttribute("data-menuid");if(i)return n(""),void s(i);n(r.getAttribute("data-submenuid")||(null===(a=r.closest("[data-submenuid]"))||void 0===a?void 0:a.getAttribute("data-submenuid")))}))},16579:(e,t,n)=>{n.d(t,{H:()=>w,A:()=>k});var s=n(58168),a=(n(62953),n(96540)),o=n(10058),r=(n(3064),n(9920),n(41393),n(14905),n(98992),n(72577),n(3949),n(81454),n(8872),n(25509),n(65223),n(60321),n(41927),n(11632),n(64377),n(66771),n(12516),n(68931),n(52514),n(35694),n(52774),n(49536),n(21926),n(94483),n(16215),n(79304));n(25440);n(8159),n(37550);var i=n(62193),c=n.n(i),l=n(4967),d=n(45387);const h=function(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a={},o=[];return t.forEach((t=>{const r=n(t);(0,d.X_)(l.A,e,r.context,[]).forEach(((i,l)=>{const d="function"===typeof i?i({...s,id:r.id}):i;if(!d)return;if(((e,t)=>!!e&&(Array.isArray(e)?e.some((e=>!c()(t(e)))):!c()(t(e))))(d.hiddenWhen,n))return;if(d.domain&&d.domain!==r.domain)return;const h="".concat(e,"|").concat(t,"|").concat(l),u={id:h,chartId:t,...s,...d};a[h]=u,o.push(h)}))})),[a,o.sort(((e,t)=>a[e].priority-a[t].priority))]},u=(e,t,n)=>{const s={},a={},o={},r={};e.forEach((e=>{const a=t(e);a.id&&(n[e]=((e,t)=>{let{id:n,name:s,family:a,context:o,priority:r,visible:i,filteredOut:c,hidden:l}=e;return function(e){var t;let{name:n="",context:s="",submenuNames:a={}}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[o,r,i]=(s||e.chartId).split("."),c=o.split("_"),[l,d]=c,h=t=>{let{menuPattern:n,menu:s=o,...a}=t;return{id:s,menuPattern:n,key:"".concat(s,"|").concat(e.subMenuId,"|").concat(e.chartId),...a,...e,part1:l}},u=e=>{const t=c.length>=2&&d===e?"".concat(l,"_").concat(d):l;return h({menuPattern:t})};switch(l){case"ap":case"net":case"powersupply":case"mount":return h({menu:l});case"cpufreq":case"cpuidle":return h({menu:"cpu"});case"smartd":case"web":return u("log");case"apache":return u("cache");case"bind":return u("rndc");case"go":return u("expvar");case"isc":return u("dhcpd");case"anomaly":return h({});case"disk":return/(inodes|space)/.test(r)||/(inodes|space)/.test(d)?h({menu:"mount"}):h({menu:l});case"k8s":return h("state"===d?{menu:"Kubernetes State"}:d&&"container"!==d?{menu:"Kubernetes ".concat(d)}:{menu:"Kubernetes Containers",flavour:"k8s"});case"cgroup":{const t=e.chartId.match(/.*[._/-:]qemu[._/-:]*/)||e.chartId.match(/.*[._/-:]kvm[._/-:]*/)?"cgqemu":"cgroup",n=1===c.length?"Containers & VMs":void 0;return h({menuPattern:t,sectionTitle:n})}case"ovpn":{const e=c.length>3&&"status"===c[1]&&"log"===c[2]?"".concat(l,"_").concat(d):l;return h({menuPattern:e})}case"prometheus":{if(i)return h({menu:"".concat(r.replace("-"," ")),menuIcon:"prometheus"});const t=e.subMenuId.split("_")[0];return h({menu:"".concat(t),menuIcon:"prometheus"})}case"tc":if("tc.qos"===s&&(!("family"in a)||(null===(t=a[l])||void 0===t?void 0:t[e.subMenuId])===e.subMenuId)){const[,t]=n.split(".");a[l]||(a[l]={}),a[l][e.subMenuId]=t.replace(/^(in_|out_)/,"").replace(/(_in|_out)$/,"")}return h({menu:l,priority:e.chartId.match(/.*-ifb$/)?e.priority-1:e.priority});case"dnsmasq":{if(2==c.length&&"dhcp"===c[1])return h({menu:"".concat(l,"_").concat(d)});if(c.length>=2&&"dhcp"===c[1])return h({menuPattern:"".concat(l,"_").concat(d)});const e=c.length>1?l:void 0;return h({menuPattern:e})}default:{const e=c.length>1?l:void 0;return h({menuPattern:e})}}}({chartId:n,subMenuId:a||"all",priority:r,visible:i,filteredOut:c,hidden:l},{name:s,context:o,submenuNames:t})})((e=>({...e,family:(0,d._3)(e.context,"family",e.family)}))(a),s))}));return[...e].sort(((e,t)=>{var s,a,o,r;return(null===(s=n[e])||void 0===s?void 0:s.priority)-(null===(a=n[t])||void 0===a?void 0:a.priority)||((null===(o=n[e])||void 0===o?void 0:o.key)||"").localeCompare((null===(r=n[t])||void 0===r?void 0:r.key)||"",void 0,{sensitivity:"accent",ignorePunctuation:!0})})).forEach((e=>{const t=n[e];if(!t)return;const s="".concat(t.id,"|").concat(t.subMenuId);r[s]||(r[s]=[]),a[t.id]||(a[t.id]=new Set),o[t.id]||(o[t.id]=[]),r[s].push(t.chartId),a[t.id].add(s),o[t.id].push(t.chartId)})),{chartMenus:n,menuGroups:a,menuGroupChartIds:o,subMenus:r,submenuNames:s}},p=function(e,t){let{os:n,extraKey:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a={};const{menuGroups:o,menuGroupChartIds:i,subMenus:c,submenuNames:l}=u(e,t,a),p={},m=Object.keys(o).reduce(((e,c)=>{const l=i[c],u=a[l[0]],m=l.find((e=>a[e].menuPattern)),g=m?a[m].menuPattern:"",f=[...o[c]],[b,y]=h("mainheads",l,t,{os:n});return Object.assign(p,b),e[c]={level:0,id:c,menuPattern:g,priority:u.priority,headIds:y,subMenuIds:f,subMenuChartIds:l,name:(0,d.e4)(u),icon:(0,d.ro)(u),info:(0,d.yn)(u),link:"".concat((0,r.A)("menu_".concat(c))),size:null!==y&&void 0!==y&&y.length?500:24,flavour:u.flavour,showConfig:!0,extraKey:s},e}),{}),g=Object.keys(c).reduce(((e,o)=>{var i;const u=c[o],g=a[u[0]],{id:f,menuPattern:b}=m[g.id],[y,v]=h("heads",u,t,{os:n});Object.assign(p,y);const _=b||f,w=g.subMenuId in(l[g.part1]||{})?"".concat(g.subMenuId," (").concat(null===(i=l[g.part1])||void 0===i?void 0:i[g.subMenuId],")"):(0,d.KG)(_,g.subMenuId);return e[o]={level:1,id:o,menuGroupId:f,priority:g.priority,chartIds:u,headIds:v,name:w,info:(0,d.Wr)(_,g.subMenuId),link:"".concat((0,r.A)("menu_".concat(g.id,"_submenu_").concat(g.subMenuId))),size:28,showConfig:!0,extraKey:s},e}),{}),f=Object.keys(o),b={},y=f.reduce(((e,s)=>{const a=m[s];return b[a.id]=!0,[...e,{...a,sticky:!0},...m[s].subMenuIds.reduce(((e,a)=>{const o=g[a];return b[o.id]=!0,[...e,{...o,sticky:!0},...g[a].chartIds.map((e=>{const o=t(e);if(o)return p[e]=(0,d.Ay)(o,{menuId:s,subMenuId:a,sectionInfo:g[a].info},{os:n}),{...p[e],level:2,size:365,menuKey:m[s].menuPattern||m[s].id}}))]}),[])]}),[]);return a=null,{stickyIds:b,allElements:y,menuGroupIds:f,menuGroupById:m,subMenuById:g,menuItemAttributesById:p}};var m=n(31438),g=n(55309),f=n(59090),b=n(18713),y=n(8320);const v=[],_=e=>{let{container:t,ids:n,getObject:s,children:o,getMenu:r=p,deps:i=v,...c}=e;const{allElements:l,menuGroupIds:d,menuGroupById:h,subMenuById:u,menuItemAttributesById:_,stickyIds:w}=(0,a.useMemo)((()=>r(n,s,c)),[s,n,...i]);return a.createElement(m.vN,{container:t,menuItemAttributesById:_,getObject:s,allElements:l,stickyIds:w},a.createElement(g.Ss,{ids:d},a.createElement(g.sF,{menuGroupById:h},a.createElement(f.zK,{subMenuById:u},a.createElement(b.Ny,null,a.createElement(y.Cs,null,o))))))},w=e=>a.createElement(o.Flex,(0,s.A)({column:!0,height:"100%",padding:[0,1],overflow:"hidden","data-testid":"dashboard-list"},e)),k=e=>{const t=(0,a.useRef)(),[n,r]=(0,a.useState)();return(0,a.useLayoutEffect)((()=>{r(t.current)}),[]),a.createElement(o.Flex,{ref:t,height:"100%",width:"100%",overflow:{vertical:"auto"}},n&&a.createElement(_,(0,s.A)({},e,{container:n})))}},56489:(e,t,n)=>{n.d(t,{A:()=>x});n(62953);var s=n(96540),a=n(10058),o=n(540),r=n(15327),i=n(74618),c=n(45765),l=n(78969),d=n(3914),h=n(80925),u=n(35304),p=n(69765),m=n(21591),g=n(67544),f=n(68980),b=n(28738),y=n(8018),v=n(87659),_=n(24198),w=n(91517),k=n(2025),T=n(18202);const S=(0,s.memo)((e=>{let{id:t,spaceId:n,roomId:o,chartId:r,name:i}=e;const[c,,l,u]=(0,v.A)(),{fullyLoaded:m,processing:b}=(0,f.fz)(t),y=(0,k.DH)(t,{onSuccess:()=>{(0,_.jE)("Chart added to ".concat(i)),u()}}),S=c&&m,M=(0,d.ns)(n,"slug"),x=(0,p.wz)(o,"slug"),C=(0,g.nM)(t),P=(0,w.A)(c&&t,{spaceId:n,spaceSlug:M,roomId:o,roomSlug:x}),q=(0,h.e)();(0,s.useEffect)((()=>{if(P||!S)return;const e=q.getNode({id:r}),t=(0,T.A)(e.getAttributes());C(t.contextScope,t,(()=>setTimeout(y,100)))}),[S,P]);const I=c&&(b||P);return s.createElement(a.Button,{icon:"plus",onClick:l,isLoading:I,disabled:I,alignSelf:"end"})})),M=e=>{let{spaceId:t,roomId:n,chartId:o}=e;return[{id:"name",accessorKey:"name",header:"Dashboards",cell:e=>{let{getValue:t}=e;return s.createElement(a.Flex,{alignItems:"center",gap:3},s.createElement(a.Icon,{name:"dashboards",size:"small",color:"text"}),s.createElement(a.Text,null,t()))}},{id:"plusButton",accessorKey:"id",header:"",cell:e=>{let{getValue:a,row:r}=e;return s.createElement(S,{id:a(),spaceId:t,roomId:n,chartId:o,name:r.original.name})}}]},x=e=>{let{onClose:t}=e;(0,u.A)();const n=(0,p.ID)(),v=(0,p.XA)("name"),_=(0,d.vt)(),{params:w={},params:{chartId:k}}=(0,o.A)("addToDashboardModal"),T=(0,m.q)(),S=(0,f.Sf)(T),[x,C]=(0,s.useState)(""),[P,q]=(0,s.useState)(!1),I=x.length>0,B=(0,g.W6)(_,n,{onSuccess:t}),L=(0,h.e)().getNode({id:k}),A=(0,s.useMemo)((()=>M({spaceId:_,roomId:n,chartId:k})),[_,n,k]),E=()=>{if(!L)return;const{aggregationMethod:e,selectedDimensions:t,groupBy:n,groupByLabel:s,groupingMethod:a,chartType:o,selectedLabels:r,nodesScope:i,selectedInstances:c,selectedNodes:l,contextScope:d}=L.getAttributes();B(x,d,{aggregationMethod:e,selectedDimensions:t,groupBy:n,groupByLabel:s,groupingMethod:a,chartType:o,selectedLabels:r,nodesScope:i,selectedInstances:c,selectedNodes:l})},D=(0,m.RQ)();return s.createElement(r.GO,{onClose:t},s.createElement(i.z,{onClose:t,title:"Add to Dashboard"}),s.createElement(c.U,null,"Select Dashboard"),s.createElement(r.Yv,{gap:3,overflow:"hidden",height:"100%"},s.createElement(a.H6,null,"Add chart to one or more dashboards from the ",v),D?s.createElement(a.Table,{dataColumns:A,data:S}):s.createElement(b.A,{title:"Loading dashboards..."}),s.createElement(a.Flex,{column:!0,padding:[3,0],gap:1},s.createElement(a.H6,null,"Create a new dashboard and add ",k," to it"),s.createElement(y.A,{value:x,label:"Name",onChange:e=>C(e.target.value),isValid:P,setIsValid:q,isDirty:I,instantFeedback:"all",onKeyDown:e=>e.keyCode===l.I7&&P&&E}),s.createElement(a.Button,{label:"Create & add",onClick:E,disabled:!L||!x}))))}},99739:(e,t,n)=>{n.d(t,{S:()=>L,A:()=>A});var s=n(58168),a=(n(62953),n(96540)),o=n(10058),r=n(87659),i=n(69765),c=n(31348),l=n(62329),d=(n(41393),n(81454),n(8711)),h=n(55463),u=n(96083),p=n(18682);const m=(0,d.default)(o.Flex).withConfig({displayName:"adminsList__RowFlex",componentId:"sc-1pb9ob2-0"})(["&:hover{background:",";}"],(0,o.getColor)("elementBackground")),g=(0,d.default)(o.Icon).withConfig({displayName:"adminsList__StyledIcon",componentId:"sc-1pb9ob2-1"})(["cursor:pointer;"]),f=e=>{let{...t}=e;const n=(0,h.i3)();return a.createElement(o.Flex,(0,s.A)({column:!0,border:{side:"top",color:"borderSecondary"},flex:"grow",padding:[1,0],height:{max:50},overflow:"auto"},t),n.map((e=>a.createElement(m,{flex:{grow:0,shrink:0},key:e.id,padding:[0,4],justifyContent:"between",height:10,alignItems:"center"},a.createElement(o.Flex,{key:e.id,gap:2,alignItems:"center"},a.createElement(u.A,{src:e.avatarURL,title:e.name}),a.createElement(o.Text,null,e.name),a.createElement(o.Text,{color:"textLite"},e.email)),a.createElement(g,{onClick:(0,p.C)(e.email,{text:"Admin email address copied to your clipboard."}),size:"small",name:"copy",color:"primary"})))))},b=(0,d.default)(o.Icon).withConfig({displayName:"styled__StyledWarningIcon",componentId:"sc-q96c2w-0"})(["border-radius:50%;overflow:hidden;background:",";"],(0,o.getColor)(["neutral","white"])),y=(0,d.default)(o.Icon).withConfig({displayName:"styled__StyledCheckmarkIcon",componentId:"sc-q96c2w-1"})(["border-radius:50%;overflow:hidden;background:",";padding:6px;width:24px;height:24px;"],(0,o.getColor)("elementBackground")),v=(0,d.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-q96c2w-2"})(["transform:",";"],(e=>{let{closed:t}=e;return t?"none":"rotate(180deg)"}));var _=n(4659);const w=e=>{let{gaPrefix:t="onboarding",...n}=e;return a.createElement(o.Flex,(0,s.A)({column:!0,gap:1,color:"textDescription"},n),a.createElement(o.Text,null,"Need help?"),a.createElement(o.Text,null,"Use our"," ",a.createElement(_.A,{href:"https://community.netdata.cloud/",target:"_blank","data-ga":"".concat(t,"::click-forums::allpages")},"forums")," ","or public"," ",a.createElement(_.A,{href:"https://discord.gg/mPZ6WZKKG2",target:"_blank","data-ga":"".concat(t,"::click-discord::allpages")},"discord channel")))};var k=n(9683),T=n(83084),S=n(46741),M=n(68831),x=n(47767),C=n(71847);const{demoSlug:P}=M.A,q=(0,d.default)(o.Button).withConfig({displayName:"headerButtons__StyledButton",componentId:"sc-11mwk9m-0"})(["&&{padding:2px 16px;font-size:12px;height:auto;width:auto;min-width:96px;}"]),I=()=>{const e=(0,x.Zp)();return a.createElement(o.Flex,{gap:4,alignItems:"center"},a.createElement(_.A,{href:"https://learn.netdata.cloud/docs/architecture/deployment-strategies",rel:"noopener noreferrer",target:"_blank"},"Possible Deployment Strategies"),!window.envSettings.onprem&&a.createElement(q,{"data-ga":"no-nodes-view::click-demo::no-nodes-header",flavour:"default",onClick:t=>{e("/spaces/".concat(P)),(0,C.H)("no-nodes-view","click-demo","no-nodes-header"),t.preventDefault()},label:"Live Demo"}))};var B=n(77173);const L=()=>a.createElement(a.Fragment,null,a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-memberSection",gap:1},a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-memberHeader",gap:4,height:10,padding:[0,3]},a.createElement(y,{"data-testid":"noNodesView-memberHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.Flex,{justifyContent:"between",flex:!0},a.createElement(o.H3,{color:"textDescription","data-testid":"noNodesView-memberHeaderText"},"You are a member and only space admins can connect new nodes"),a.createElement(I,null))),a.createElement(o.Flex,{"data-testid":"noNodesView-memberDescription",padding:[0,0,2,13]},a.createElement(o.Text,{color:"textDescription","data-testid":"noNodesView-memberDescriptionText"},"Contact an admin from the space in order to do so"))),a.createElement(o.Flex,{"data-testid":"noNodesView-memberAdminsListSection",padding:[0,0,0,12]},a.createElement(f,{"data-testid":"noNodesView-memberAdminsList"}))),A=e=>{let{videoId:t}=e;const n=(0,i.ID)(),[d,{onAddNodes:h,selectedNodes:u}]=(0,c.A)(n),{claimedNodeIds:p}=d,m=p.length>0,[g,f]=(0,r.A)(!0),_=(0,S.JT)("node:Create");return a.createElement(T.A,{column:!1,"data-testid":"noNodesViewPage",gap:12,padding:[6],margin:[0,0,8],overflow:"auto"},a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-cmdSection",flex:{grow:0,shrink:1},width:"100%",gap:2},a.createElement(o.Flex,{"data-testid":"noNodesView-warningBanner",alignItems:"center",background:"warningBackground",gap:4,height:{min:10},padding:[0,3],round:!0},a.createElement(b,{"data-testid":"noNodesView-warningBannerIcon",name:"exclamation",color:"warning"}),a.createElement(o.Text,{"data-testid":"noNodesView-warningBannerText"},"You have no nodes.")),_&&a.createElement(a.Fragment,null,a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-adminSection",justifyContent:"between",onClick:m?f:null,cursor:m?"pointer":null},a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-adminHeader",gap:4,height:10,padding:[0,3]},a.createElement(y,{"data-testid":"noNodesView-adminHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.H3,{"data-testid":"noNodesView-adminHeaderText",color:"textDescription"},"Connect new nodes")),a.createElement(o.Flex,{gap:4,alignItems:"center"},a.createElement(I,null),m&&a.createElement(v,{closed:!g,"data-testid":"noNodesView-adminClaimedNodesIcon",name:"chevron_down",color:"textLite"}))),a.createElement(o.Collapsible,{"data-testid":"noNodesView-adminClaimNodesContainer",open:g},a.createElement(o.Flex,{"data-testid":"noNodesView-adminClaimNodes",padding:[0,0,0,12]},a.createElement(B.A,{rooms:[n]})))),!_&&a.createElement(L,null),m&&a.createElement(a.Fragment,null,a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-availableNodesHeader",gap:4,height:10,padding:[0,3]},a.createElement(y,{"data-testid":"noNodesView-availableNodesHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.H3,{color:"textDescription","data-testid":"noNodesView-availableNodesHeaderText"},"Add already available nodes")),a.createElement(o.Flex,{height:"100%","data-testid":"noNodesView-availableNodesContainer",padding:[0,0,0,12]},a.createElement(l.A,(0,s.A)({"data-testid":"noNodesView-availableNodesList"},d,{onAddNodes:h,canAddNodes:!!u.length,padding:[2,0,8]}))))),t&&a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-videoSection",flex:{shrink:0,grow:0}},a.createElement(k.A,{"data-testid":"noNodesView-onboardingVideo",height:296,width:520,videoId:t}),a.createElement(w,{"data-testid":"noNodesView-needHelp",padding:[8,0]})))}},78940:(e,t,n)=>{n.d(t,{DK:()=>d,Iv:()=>h,SB:()=>l,SX:()=>c,Wu:()=>a,Yo:()=>i,_V:()=>o,jH:()=>r,qt:()=>s,xc:()=>u});const s="silencingRules",a={system:{text:"All users",tooltip:"Rule affects all users"},personal:{text:"Myself",tooltip:"Limit the silencing effect to your account only"}},o="system",r={label:"All rooms",value:""},i={now:{text:"Silence for a specific duration",tooltip:"Rule starts immediately and lasts until the specified duration"},schedule:{text:"Schedule silence",tooltip:"Schedule the rule to start taking effect at some point at the future"}},c="now",l={untilTurnedOff:"Until turned off",oneHour:"1 hour",sixHours:"6 hours",twelveHours:"12 hours",oneDay:"1 day",custom:"Custom"},d={label:"Until turned off",value:"untilTurnedOff"},h={border:{side:"all",color:"inputBorder"},padding:[1,2],margin:[0,0,.5,0],round:!0,justifyContent:"start"},u={ErrInvalidName:"No rule name provided",ErrCodeInvalidStartsAt:"Invalid or no start date provided",ErrCodeInvalidSLastUntil:"Invalid or no end date provided",ErrCodeInvalidScheduleDuration:"Invalid duration selected",ErrCodeInvalidSeverity:"Invalid severity",ErrCodeInvalidIntegration:"Invalid integration",ErrCodeNotOwnRule:"Not permitted to create system rules"}},35243:(e,t,n)=>{n.d(t,{G:()=>i,N:()=>r});n(3064),n(98992),n(72577);var s=n(47444),a=n(80925);const o=(0,s.eU)({key:"currentChartsContainerKey",default:null}),r=()=>{const e=(0,a.e)(),t=(0,s.vc)(o);return e&&e.getRoot().getChildren().find((e=>e.match({id:t})))},i=()=>(0,s.lZ)(o)},60177:(e,t,n)=>{n.d(t,{$n:()=>d,GK:()=>c,Ml:()=>o,R8:()=>r,_x:()=>u,jf:()=>i,nr:()=>a,ul:()=>l,ve:()=>h});var s=n(47444);const a=(0,s.Iz)({key:"homePageNodeDetailsId",default:null}),o={loaded:!1,error:!1,nodes:{},replicationFactor:{},totalChildren:0,totalParents:0},r=(0,s.Iz)({key:"replicationStats",default:o}),i={loaded:!1,error:!1,alerts:[],nodes:{critical:0,warning:0,total:0,hosts:{}}},c=(0,s.Iz)({key:"alertsStats",default:i}),l={loaded:!1,error:!1,stability:{}},d=(0,s.Iz)({key:"stability",default:l}),h={loaded:!1,error:!1,dataRetention:[],metricsCollected:0},u=(0,s.Iz)({key:"chartsStats",default:h})},89879:(e,t,n)=>{n.d(t,{A:()=>f});var s=n(58168),a=(n(3064),n(41393),n(98992),n(72577),n(81454),n(62953),n(96540)),o=n(47767),r=n(10058),i=n(31604),c=n(47762),l=n(81048),d=n(35119),h=n(50065),u=n(12352);const p=e=>{var t;const n=null===(t=Object.entries(l.j8).find((t=>{let[,n]=t;return n==e})))||void 0===t?void 0:t[0];return d.$S[n]||"offline"},m=e=>{let{id:t,hostname:n,status:s,flavour:i}=e;const l=(0,o.Zp)(),d=(0,c.Zl)(t),h="sidebar"==i,u=(0,a.useCallback)((()=>l(d)),[d]);return a.createElement(r.Flex,{key:t,gap:2,justifyContent:"between"},a.createElement(r.Flex,{gap:2},a.createElement(r.Icon,{name:"dot",width:"8px",color:p(s)}),a.createElement(r.Text,null,n)),h&&a.createElement(r.Icon,{name:"goToNode",color:"text",onClick:u,cursor:"pointer"}))},g=e=>{let{nodes:t,flavour:n,limit:o=10}=e;return t=t||[],t.length?"sidebar"==n||t.length<=o?t.map((e=>a.createElement(m,(0,s.A)({key:e.id,flavour:n},e)))):a.createElement(r.Flex,{column:!0,gap:2},t.slice(0,o).map((e=>a.createElement(m,(0,s.A)({key:e.id,flavour:n},e)))),a.createElement(r.Text,{color:"primary"},t.length-o," more items")):"-"},f=e=>{let{id:t,flavour:n="tooltip"}=e;const s=(0,i.c8)(),{loaded:o,nodes:c}=s||{},{children:l,parents:d}=(null===c||void 0===c?void 0:c[t])||{};return o?"sidebar"==n?a.createElement(h.A,{name:"Replication"},a.createElement(u.A,{size:"small",name:"Parents"},a.createElement(g,{nodes:d,flavour:n})),a.createElement(u.A,{size:"small",name:"Children"},a.createElement(g,{nodes:l,flavour:n}))):a.createElement(r.Flex,{column:!0,gap:2},a.createElement(r.Flex,{column:!0,gap:1},a.createElement(r.Text,null,"Parents"),a.createElement(g,{nodes:d,flavour:n})),a.createElement(r.Flex,{column:!0,gap:1},a.createElement(r.Text,null,"Children"),a.createElement(g,{nodes:l,flavour:n}))):null}},35119:(e,t,n)=>{n.d(t,{$S:()=>d,AZ:()=>p,Cc:()=>u,Hl:()=>g,Hn:()=>l,Ug:()=>o,XJ:()=>c,jZ:()=>i,nv:()=>r,q5:()=>h,vd:()=>f,w9:()=>s});const s={none:{label:"None",value:"none",canAddNodes:!0},status:{label:"Status",value:"status",canAddNodes:!1},os:{label:"OS",value:"os",canAddNodes:!0},version:{label:"Agent version",value:"version",canAddNodes:!1},technology:{label:"Technology",value:"technology",canAddNodes:!0},stability:{label:"Connection stability",value:"stability",canAddNodes:!1},replication:{label:"Replication factor",value:"replication",canAddNodes:!1},cloudProvider:{label:"Cloud provider",value:"cloudProvider",canAddNodes:!1},cloudRegion:{label:"Cloud region",value:"cloudRegion",canAddNodes:!1},instanceType:{label:"Instance type",value:"instanceType",canAddNodes:!1}},a={r_1:"None",r_2:"Single","r_*":"Multi"},o={replication:a},r=s.none,i=s.status,c=[r,s.status,s.os,s.technology,s.version,s.replication,s.cloudProvider,s.cloudRegion,s.instanceType],l=[i,s.stability,s.replication],d={live:"success",offline:"offline",stale:"stale",unseen:"unseen"},h={r_1:["blue","indigo"],r_2:["purple","lilac"],"r_*":["purple","lilacFocus"]},u={[s.status.value]:d,[s.stability.value]:{stable:"success",unstable:"error"},[s.replication.value]:h},p={[s.os.value]:e=>({group:e.os.nm,type:e.os.id}),[s.version.value]:e=>({group:e.version}),[s.status.value]:e=>({group:e.nodeStatus}),[s.technology.value]:e=>({group:e.technology,type:e.technology}),[s.replication.value]:e=>({group:e.replicationFactor}),[s.cloudProvider.value]:e=>{var t;return{group:null===(t=e.labels)||void 0===t?void 0:t.cloud_provider}},[s.cloudRegion.value]:e=>{var t;return{group:null===(t=e.labels)||void 0===t?void 0:t._cloud_instance_region}},[s.instanceType.value]:e=>{var t;return{group:null===(t=e.labels)||void 0===t?void 0:t._cloud_instance_type}}},m={[s.replication.value]:e=>a[e],default:e=>e},g=e=>{const t=m[e];return t||m.default},f={isHover:!1,nodes:[]}},31604:(e,t,n)=>{n.d(t,{A$:()=>i,N3:()=>p,P9:()=>y,SW:()=>g,c8:()=>l,jg:()=>u,kf:()=>f,s6:()=>d,xs:()=>v});var s=n(47444),a=n(60177),o=n(3914),r=n(69765);const i=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.L4)((0,a.nr)({spaceId:e,roomId:t}))},c=(0,s.K0)({key:"replicationStatsState",get:e=>{let{spaceId:t,roomId:n}=e;return()=>(0,a.R8)({spaceId:t,roomId:n})},set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{let{set:o}=e;o((0,a.R8)({spaceId:t,roomId:n}),s)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),l=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.vc)((0,a.R8)({spaceId:e,roomId:t}))},d=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.lZ)(c({spaceId:e,roomId:t}))},h=(0,s.K0)({key:"alertsStatsState",get:e=>{let{spaceId:t,roomId:n}=e;return()=>(0,a.GK)({spaceId:t,roomId:n})},set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{let{set:o}=e;o((0,a.GK)({spaceId:t,roomId:n}),s)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),u=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.vc)(h({spaceId:e,roomId:t}))},p=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.lZ)(h({spaceId:e,roomId:t}))},m=(0,s.K0)({key:"stabilityState",get:e=>{let{spaceId:t,roomId:n}=e;return()=>(0,a.$n)({spaceId:t,roomId:n})},set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{let{set:o}=e;o((0,a.$n)({spaceId:t,roomId:n}),s)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),g=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.vc)(m({spaceId:e,roomId:t}))},f=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.lZ)(m({spaceId:e,roomId:t}))},b=(0,s.K0)({key:"chartsStatsState",get:e=>{let{spaceId:t,roomId:n}=e;return()=>(0,a._x)({spaceId:t,roomId:n})},set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{let{set:o}=e;o((0,a._x)({spaceId:t,roomId:n}),s)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),y=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.vc)(b({spaceId:e,roomId:t}))},v=()=>{const e=(0,o.vt)(),t=(0,r.ID)();return(0,s.lZ)(b({spaceId:e,roomId:t}))}},69388:(e,t,n)=>{n.d(t,{A:()=>u});n(62953);var s=n(96540),a=n(92138),o=n(83957),r=n(45467),i=n(67742),c=n(23931),l=n(27467),d=n(63129),h=n(61658);const u=function(e,t){let{spaceId:n,autorun:u=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const[p,m]=(0,s.useState)(null),{after:g,before:f}=(0,l.rW)(),b=(0,s.useRef)();b.current={after:g<0?g:Math.floor(g/1e3),before:g<0?0:Math.ceil(f/1e3)};const y=(0,s.useRef)(!0),v=e=>{if(e&&null!==e&&void 0!==e&&e.response){const{data:t}=e.response,{errorMsgKey:n}=t;m(n)}else k((e=>({...e,contextsHardHash:"invalid"}))),m(e)},_=(0,s.useMemo)((()=>(0,h.O)(p)?5e3:65e3),[p]),w=(0,s.useRef)(),k=(0,c.DQ)(e,!0),T=e=>{let{results:t,versions:n}=e;k((e=>({...e,contextsHardHash:"invalid",...n}))),m((!t||!Object.keys(t).length)&&"No data for this period")},{contextsHardHash:S}=(0,c.jI)(e),M=(0,a.A)(S,!0);return(0,i.A)((()=>y.current=!0),5e3),(0,r.A)((()=>{k((e=>({...e,contextsHardHash:"invalidating"}))),y.current=!0}),[t]),(0,o.A)((()=>({cache:!1,key:"spaces.".concat(n,".rooms.").concat(e,".charts"),polling:!1,autorun:u||Boolean(n&&e),fetch:()=>(y.current=!1,(0,d.a9)(n,e,t,{...b.current})),association:{getIds:()=>(0,c.Uo)({roomId:e,merge:w.current===t}),getError:()=>(0,c.Zr)({id:e,key:"error"}),getLoaded:()=>(0,c.Zr)({id:e,key:"loaded"}),getUpdatedAt:()=>(0,c.Zr)({id:e,key:"updatedAt"})},getResource:t=>(0,c.YP)({id:e,key:t}),getResourcesInitializer:()=>{const n=(0,c.b0)({id:e,merge:w.current===t,nodeIds:t});return w.current=t,n},getResourceInitialState:e=>({fullyLoaded:!0,...e}),onFail:v,pollingOptions:{pollingInterval:_},onReceive:T,after:g,nodeIds:t,force:!0,skip:!y.current||!M&&!!S||"invalidating"===M&&!!S})),[n,e,_,S,g,f]),p}},35304:(e,t,n)=>{n.d(t,{A:()=>h});n(9920),n(41393),n(98992),n(3949),n(81454);var s=n(96540),a=n(47444),o=n(68980),r=n(99090),i=n(3914),c=n(69765),l=n(63129),d=n(21591);const h=()=>{const e=(0,i.vt)(),t=(0,c.ID)(),n=(0,a.Zs)((e=>{let{set:n}=e;return function(){let{data:{results:e}={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n((0,d.z_)({id:t,key:"loaded"}),!0),null!==e&&void 0!==e&&e.length){const s=e.sort(((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:"accent",ignorePunctuation:!0})));s.forEach((e=>n((0,o._d)(e.id),(t=>({...t,loaded:!0,...e})))));const a=s.map((e=>{let{id:t}=e;return t}));n((0,d.z_)({id:t,key:"ids"}),a)}}})),h=(0,s.useCallback)((()=>{(0,l.SJ)(e,t).then(n).catch((()=>{}))}),[e,t]);return(0,r.A)((()=>({polling:!1,enabled:!!e&&!!t,fetch:()=>(0,l.SJ)(e,t),onReceive:n})),[e,t]),h}},18925:(e,t,n)=>{n.d(t,{xS:()=>h,yK:()=>d,z2:()=>u});n(62953);var s=n(96540),a=n(3914),o=n(69765),r=n(71835),i=n(61649),c=n(45894),l=n(44644);const d=function(){let{spaceId:e,roomId:t,onSuccess:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=(0,a.vt)(),d=(0,o.ID)(),[,h]=(0,r.A)(),u=(0,l.A3)({spaceId:s,roomId:d});return(0,i.A)((function(){let{type:a,entity:o,scope:r="personal",name:i="default",path:l,value:p={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,c.xt)(e||s,{type:a,entity:o,scope:r,name:i,path:l,value:p,roomID:t||d}).then((e=>{let{data:t}=e;u(t),null===n||void 0===n||n(t)})).catch((e=>{var t;h((null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||(null===e||void 0===e?void 0:e.message)||e)}))}),[e,t,s,d])},h=function(e){let{spaceId:t,roomId:n,onSuccess:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const d=(0,l.ti)(e),h=(0,a.vt)(),u=(0,o.ID)(),[,p]=(0,r.A)(),m=(0,l.Vd)({spaceId:h,roomId:u});return(0,i.A)((function(){let{type:a,entity:o,scope:r,name:i,path:l,value:g}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,c.cD)(t||h,e,{type:a||d.type,entity:o||d.entity,scope:r||d.scope,name:i||d.name,path:l||d.path,value:g||d.value,version:d.version,roomID:n||u}).then((e=>{let{data:t}=e;m({...t,prevSetting:d}),null===s||void 0===s||s(t)})).catch((e=>{var t;p((null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||(null===e||void 0===e?void 0:e.message)||e)}))}),[t,n,h,u,d])},u=function(e){let{spaceId:t,onSuccess:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=(0,a.vt)(),[,i]=(0,r.A)(),d=(0,l.G4)(e,{spaceId:o});return(0,s.useCallback)((async()=>{try{const s=await(0,c.A8)(t||o,e);d(),null===n||void 0===n||n(s)}catch(a){var s;i((null===a||void 0===a||null===(s=a.response)||void 0===s?void 0:s.data)||(null===a||void 0===a?void 0:a.message)||a)}}),[])}},45894:(e,t,n)=>{n.d(t,{A8:()=>c,Uc:()=>o,cD:()=>i,xt:()=>r});var s=n(26655),a=n(49286);const o=function(e,t){let{types:n=[],entities:o=[],paths:r=[],names:i=[]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s.A.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/settings/search"),{types:n,entities:o,paths:r,names:i},{transform:e=>(0,a.bn)(e,{depth:0})})},r=(e,t)=>s.A.post("/api/v3/spaces/".concat(e,"/settings"),t,{transform:a.bn}),i=(e,t,n)=>s.A.put("/api/v3/spaces/".concat(e,"/settings/").concat(t),n,{transform:a.bn}),c=(e,t)=>s.A.delete("/api/v3/spaces/".concat(e,"/settings/").concat(t),{transform:a.bn})},15041:(e,t,n)=>{n.d(t,{CB:()=>o,FU:()=>r,gc:()=>i});var s=n(47444),a=n(38819);const o=(0,s.Iz)({key:"settingAtom",default:{}}),r=(0,s.Iz)({key:"settingAtom",default:[]}),i=(0,s.Iz)({key:"settingSelectionAtom",default:e=>{let{spaceId:t,roomId:n,type:s,entity:o}=e;const r=(0,a.W6)([t,n,s,o,"setting"].join("-"));return"undefined"!==r&&"null"!==r&&r?r:null},effects:e=>{let{spaceId:t,roomId:n,type:s,entity:o}=e;return[e=>{let{onSet:r}=e;r(((e,r)=>{if(e!==r){const r=[t,n,s,o,"setting"].join("-");if(!e)return void(0,a.Pg)([r]);(0,a.Z8)({[r]:e})}}))}]}})},40933:(e,t,n)=>{n.d(t,{_:()=>d});n(17333),n(41393),n(14905),n(8159),n(98992),n(54520),n(81454),n(8872),n(37550),n(62953);var s=n(47444),a=n(3914),o=n(69765),r=n(15041);const i={name:(e,t)=>{const n="string"===typeof t?t.toLowerCase():"";return Object.entries(e).some((e=>{let[t,s]=e;return null!==s&&"undefined"!==typeof s&&(Array.isArray(s)?s.some((e=>String(e).toLowerCase().includes(n))):("object"===typeof s&&Object.keys(s).some((e=>String(s[e]).toLowerCase().includes(n))),String(s).toLowerCase().includes(n)))}))}},c=e=>t=>!e.some((e=>{let[n,s]=e;return i[n]?!i[n](t,s):!(e=>(t,n)=>{if(!Array.isArray(n)||!n.length)return!0;let s=t[e];return"number"===typeof s?(s=parseFloat(s),n.some((e=>parseFloat(e)===s))):n.includes(s)})(n)(t,s)})),l=(0,s.K0)({key:"settingsFiltered",get:e=>{let{spaceId:t,roomId:n,omit:s,keepAll:a,params:o}=e;return e=>{let{get:i}=e;const l=i((0,r.FU)({spaceId:t,roomId:n}));if(!l)return l||[];const d=s?s.split(":::"):[],h=Object.keys(o).reduce(((e,t)=>(d.includes(t)||e.push([t,o[t]]),e)),[]);if(!h.length)return l;const u=c(h);return a?l.map((e=>u(e)?e:{...e,hidden:!0})):l.filter((e=>u(e)))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),d=function(){let{spaceId:e,roomId:t,omit:n,keepAll:r=!1,params:i={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=(0,a.vt)(),d=(0,o.ID)();return(0,s.vc)(l({spaceId:e||c,roomId:t||d,omit:n,keepAll:r,params:i}))}},44644:(e,t,n)=>{n.d(t,{A3:()=>g,CS:()=>w,G4:()=>v,Mg:()=>p,Vd:()=>b,WY:()=>T,ti:()=>u});n(17333),n(9920),n(14905),n(98992),n(54520),n(3949),n(8872);var s=n(96540),a=n(47444),o=n(21283),r=n.n(o),i=n(65570),c=n(3914),l=n(69765),d=n(15041);const h=(0,a.K0)({key:"settingSelector",get:e=>t=>{let{get:n}=t;return n((0,d.CB)(e))},set:e=>(t,n)=>{let{set:s}=t;s((0,d.CB)(e),(e=>({...e,...n})))}}),u=e=>(0,a.vc)(h(e)),p=(0,a.K0)({key:"settingsInitialize",get:()=>()=>null,set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{let{get:a,set:o}=e;o((0,d.FU)({spaceId:t,roomId:n}),(e=>r()(e,s,((e,t)=>(0,i.Ay)(e,t,{keep:["scope","type","entity","path","name"]}))))),s.forEach((e=>{o(h(e.id),e)}))}}}),m=(0,a.K0)({key:"settingCreate",get:()=>()=>null,set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{let{set:a}=e;a((0,d.FU)({spaceId:t,roomId:n}),(e=>r()(e,[s],((e,t)=>(0,i.Ay)(e,t,{keep:["scope","type","entity","path","name"]}))))),a(h(s.id),s),a((0,d.gc)({spaceId:t,roomId:n,type:s.type,entity:s.entity}),s.id)}}}),g=function(){let{spaceId:e,roomId:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,c.vt)(),o=(0,l.ID)(),r=(0,a.lZ)(m({spaceId:e||n,roomId:t||o}));return(0,s.useCallback)((e=>r(e)))},f=(0,a.K0)({key:"settingUpdate",get:()=>()=>null,set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{let{set:a}=e;const{prevSetting:o,...r}=s;a((0,d.FU)({spaceId:t,roomId:n}),(e=>e.reduce(((e,t)=>(t.scope===o.scope&&t.type===o.type&&t.entity===o.entity&&t.path===o.path&&t.name===o.name?e.push({...t,...r}):e.push(t),e)),[]))),a(h(r.id),r),a((0,d.gc)({spaceId:t,roomId:n,type:r.type,entity:r.entity}),r.id)}}}),b=function(){let{spaceId:e,roomId:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,c.vt)(),o=(0,l.ID)(),r=(0,a.lZ)(f({spaceId:e||n,roomId:t||o}));return(0,s.useCallback)((e=>r(e)))},y=(0,a.K0)({key:"settingRemove",get:()=>()=>null,set:e=>{let{spaceId:t,roomId:n}=e;return(e,s)=>{var a;let{get:o,set:r}=e;r((0,d.FU)({spaceId:t,roomId:n}),(e=>e.filter((e=>e.id!==s.id)))),o((0,d.gc)({spaceId:t,roomId:n,type:s.type,entity:s.entity}))===s.id&&r((0,d.gc)({spaceId:t,roomId:n,type:s.type,entity:s.entity}),(null===(a=o((0,d.FU)({spaceId:t,roomId:n}))[0])||void 0===a?void 0:a.id)||null)}}}),v=function(e){let{spaceId:t,roomId:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=u(e),r=(0,c.vt)(),i=(0,l.ID)(),d=(0,a.lZ)(y({spaceId:t||r,roomId:n||i}));return(0,s.useCallback)((()=>d(o)))},_={},w=e=>{var t;let{spaceId:n,roomId:s,type:o,entity:r}=e;const i=(0,c.vt)(),d=(0,l.ID)(),h=(0,a.vc)(k({spaceId:n||i,roomId:s||d,type:o,entity:r}));return(null===(t=u(h))||void 0===t?void 0:t.value)||_},k=(0,a.K0)({key:"settingSelectionSelector",get:e=>{let{spaceId:t,roomId:n,type:s,entity:a}=e;return e=>{let{get:o}=e;return o((0,d.gc)({spaceId:t,roomId:n,type:s,entity:a}))}},set:e=>{let{spaceId:t,roomId:n,type:s,entity:a}=e;return(e,o)=>{let{set:r}=e;r((0,d.gc)({spaceId:t,roomId:n,type:s,entity:a}),(e=>e===o?null:o))}}}),T=e=>{let{spaceId:t,roomId:n,type:s,entity:o}=e;const r=(0,c.vt)(),i=(0,l.ID)();return(0,a.L4)(k({spaceId:t||r,roomId:n||i,type:s,entity:o}))}},9415:(e,t,n)=>{n.d(t,{Uc:()=>l,X3:()=>i,XF:()=>c,cH:()=>r});n(41393),n(81454);var s=n(26655),a=n(49286);const o=e=>e.map((e=>(0,a.bn)(e))),r=e=>s.A.get("/api/v2/spaces/".concat(e,"/notifications/silencing/rules"),{transform:o}),i=(e,t)=>s.A.post("/api/v2/spaces/".concat(e,"/notifications/silencing/rules/delete"),t),c=(e,t)=>s.A.post("/api/v2/spaces/".concat(e,"/notifications/silencing/rule"),(0,a.Jz)(t)),l=(e,t)=>s.A.put("/api/v2/spaces/".concat(e,"/notifications/silencing/rule/").concat(t.id),(0,a.Jz)(t))},37171:(e,t,n)=>{n.d(t,{q:()=>p,z:()=>m});n(17333),n(41393),n(14905),n(8159),n(98992),n(54520),n(81454),n(8872),n(37550),n(62953);var s=n(47444),a=n(3914),o=n(27467),r=n(36021),i=n(88982),c=n(78940);const l=e=>(t,n)=>{const s=t[e];return!Array.isArray(n)||!n.length||(Array.isArray(s)?n.some((e=>s.includes(e))):n.includes(s))},d={ids:l("id"),roomIds:l("roomIds"),nodeIds:l("nodeIds"),hostLabels:(h="hostLabels",(e,t)=>{const n=e[h];if(!n)return!t.length;const s=Object.entries(n).map((e=>{let[t,n]=e;return"".concat(t,": ").concat(n)}));return l(h)({...e,[h]:s},t)}),alertNames:l("alertNames"),alertRoles:l("alertRoles"),alertContexts:l("alertContexts")};var h;const u=(0,s.K0)({key:"silencingRulesFiltered",get:e=>{let{extraKey:t,spaceId:n,omit:s=[],keepAll:a,allNodesRoomId:i}=e;return e=>{let{get:c}=e;const l=c((0,o.GA)({key:n,extraKey:t})),h=Object.keys(l).reduce(((e,t)=>(s.includes(t)||e.push([t,l[t]]),e)),[]),u=c((0,r.Pu)({id:n,allNodesRoomId:i})),{rules:p,...m}=u;if(!h.length)return u;const g=(e=>t=>!e.some((e=>{let[n,s]=e;return!!d[n]&&!d[n](t,s)})))(h);return a?u:{...m,rules:p.filter(g)}}}}),p=function(){let{extraKey:e,omit:t=[],keepAll:n=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=(0,a.vt)(),r=(0,i.n)("id");return(0,s.vc)(u({extraKey:e,spaceId:o,omit:t,keepAll:n,allNodesRoomId:r}))},m=()=>{const e=(0,a.vt)();return(0,o.rI)("ids",{key:e,extraKey:c.qt,flavour:"arr"})}},36021:(e,t,n)=>{n.d(t,{FU:()=>b,Lz:()=>g,Pu:()=>d,Qu:()=>m,UJ:()=>u,_B:()=>f,_S:()=>y,ys:()=>h});n(3064),n(41393),n(98992),n(72577),n(81454);var s=n(47444),a=n(3914),o=n(69765),r=n(9415),i=n(89821),c=n(67990),l=n(88982);const d=(0,s.K0)({key:"silencingRulesState",get:e=>{let{id:t,key:n,allNodesRoomId:s}=e;return e=>{let{get:a}=e;const o=a((0,i.A)(t)),{rules:r,...l}=o,d=a((0,c.$6)({id:s,key:"nodes"})),h={...l,rules:r.map((e=>({...e,...e.nodeIds?{nodes:e.nodeIds.map((e=>{const t=d.find((t=>t.value==e));return{id:e,name:(null===t||void 0===t?void 0:t.label)||"-",notAvailable:!t}}))}:{}})))};return n?h[n]:h}},set:e=>{let{id:t,key:n}=e;return(e,s)=>{let{get:a,set:r}=e;const{rules:c}=s;r((0,i.A)(t),(e=>{if(c){const e=c.map((e=>{let{roomIds:t,nodeIds:n,...s}=e;const r=t?t.map((e=>{const{id:t,name:n}=a((0,o.LS)({id:e}));return{id:t,name:n}})):void 0;return{...s,...t?{roomIds:t}:{},...r?{rooms:r}:{},...n?{nodeIds:n}:{}}}));s.rules=e}return n?{...e,[n]:s}:{...e,...s}}))}}}),h=e=>{let{id:t,key:n}=e;const a=(0,l.n)("id");return(0,s.vc)(d({id:t,key:n,allNodesRoomId:a}))},u=(e,t)=>(0,s.lZ)(d({id:e,key:t})),p=(0,s.eU)({key:"forceUpdateRulesSelector",default:0}),m=()=>(0,s.vc)(p),g=()=>{const e=(0,a.vt)(),t=u(e),n=(0,s.lZ)(p);return()=>{t((e=>({...e,initialLoad:!1}))),n((e=>e+1))}},f=()=>{const e=(0,a.vt)();return t=>(0,r.XF)(e,t)},b=()=>{const e=(0,a.vt)();return t=>(0,r.Uc)(e,t)},y=()=>{const e=(0,a.vt)();return t=>(0,r.X3)(e,t)}},89821:(e,t,n)=>{n.d(t,{$:()=>a,A:()=>o});var s=n(47444);const a={rules:[],error:"",id:null,loading:!0,loaded:!1,initialLoad:!1},o=(0,s.Iz)({key:"silencingRulesState",default:e=>(e=>({...a,id:e}))(e)})},66294:(e,t,n)=>{n.d(t,{$:()=>d,A:()=>h});var s=n(47444),a=n(83957),o=n(54702),r=n(70716),i=n(55463),c=n(46902),l=n(46741);const d=e=>"spaces.".concat(e,".members"),h=e=>{const t=(0,s.Zs)((t=>{let{set:n}=t;return t=>{let{results:s}=t;return n((0,i.jX)(e),s)}})),n=(0,l.JT)("user:ReadAll");(0,a.A)((()=>({key:d(e),autorun:!!e&&n,fetch:()=>(0,o.kE)(e),association:{getError:()=>(0,c.x2)({id:e,key:"error"}),getIds:()=>(0,i.kd)({id:e,key:"ids"}),getLoaded:()=>(0,i.kd)({id:e,key:"loaded"}),getUpdatedAt:()=>(0,i.kd)({id:e,key:"updatedAt"})},sort:(e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:"accent",ignorePunctuation:!0}),getResource:e=>(0,r.m)({id:e}),getResourcesInitializer:()=>r.WJ,onReceive:t,pollingOptions:{pollingInterval:315e3}})),[e])}},3705:(e,t,n)=>{n.d(t,{A:()=>o});n(62953);var s=n(96540);const a={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0},o=()=>{const[e,t]=(0,s.useState)(null),[n,o]=(0,s.useState)(a),r=(0,s.useMemo)((()=>new window.ResizeObserver((e=>{if(e[0]){const{x:t,y:n,width:s,height:a,top:r,left:i,bottom:c,right:l}=e[0].contentRect;o({x:t,y:n,width:s,height:a,top:r,left:i,bottom:c,right:l})}}))),[]);return(0,s.useLayoutEffect)((()=>{if(e)return r.observe(e),()=>{r.disconnect()}}),[e]),[t,n]}},99090:(e,t,n)=>{n.d(t,{A:()=>d});n(9391),n(62953);var s=n(96540),a=n(63950),o=n.n(a),r=n(80925),i=n(68831),c=n(18300),l=n(22292);const d=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const n=(0,r.e)(),a=(0,s.useMemo)((()=>n?n.getRoot():null),[n]),d=(0,s.useMemo)(e,t),h=(0,s.useRef)(!0),u=(0,s.useRef)({timeoutId:null,promise:null}),[,p]=(0,c.A)(),m=(0,s.useCallback)((e=>{h.current=!1;const{fetch:t,onStart:n=o(),onFail:s=o(),onPollingFail:r=o(),onReceive:c=o(),onSettle:l=o(),onBlurMode:m=o(),polling:g=!0,pollingOptions:f}=d;n(e),u.current={timeoutId:null,promise:null};const b=()=>(u.current.promise=t(e),u.current.promise.then(c).catch((e=>{if(!e.isCancel)throw e})),u.current.promise),y=()=>{u.current.timeoutId=setTimeout((()=>{if(null!==f&&void 0!==f&&f.shouldPause&&a&&(a.getAttribute("hovering")||a.getAttribute("paused"))||!p.current&&(!a||!a.getAttribute("autofetchOnWindowBlur")))return m(),y();b().then((()=>!h.current&&g&&y())).catch((e=>{e.isCancel||r(e),!h.current&&!e.isCancel&&g&&y()}))}),(null===f||void 0===f?void 0:f.pollingInterval)||i.A.pollingInterval)};return b().then((()=>!h.current&&g&&y())).catch((e=>{e.isCancel||s(e),h.current||!g||e.isCancel||y()})).finally(l),()=>{var e,t;h.current=!0,null===(e=u.current.promise)||void 0===e||null===(t=e.cancel)||void 0===t||t.call(e),clearTimeout(u.current.timeoutId)}}),t),g=(0,l.uW)("isAnonymous");return(0,s.useEffect)((()=>{const{enabled:e=!0,force:t=!1,skip:n=!1}=d;if((!g||t)&&!n)return e?m():void 0}),[g,m]),m.clearRef=u,m}},76777:(e,t,n)=>{n.d(t,{A:()=>c});n(62953);var s=n(96540),a=n(61427),o=n(82543),r=n(81416),i=n(27467);const c=()=>{const e=(0,o.g)(),t=(0,a.Ip)({nodeIds:e,flavour:"rhs"}),[n,c]=(0,r.yD)(),{after:l,before:d}=(0,i.rW)();(0,s.useEffect)((()=>{t()}),[n,c,l,d])}},97054:(e,t,n)=>{n.d(t,{Ay:()=>d,KI:()=>l,TP:()=>c});var s=n(96540),a=n(47767),o=n(69765),r=n(3914);const i=(e,t,n)=>{const a=t();(0,s.useLayoutEffect)((()=>{a!==e&&n(e)}),[a,e])},c=()=>{const{roomSlug:e}=(0,a.g)(),t=(0,o.A2)();return i(e,o.QW,t),e},l=()=>{const{spaceSlug:e}=(0,a.g)(),t=(0,r.hX)();return i(e,r.bq,t),e},d=()=>[l(),c()]}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/9818.ca4131b4d88d20e88f72.chunk.js b/src/web/gui/v2/9818.ca4131b4d88d20e88f72.chunk.js
new file mode 100644
index 000000000..332797ce8
--- /dev/null
+++ b/src/web/gui/v2/9818.ca4131b4d88d20e88f72.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},a=(new Error).stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="b8410d7d-c150-48a4-8516-71293fa09127",e._sentryDebugIdIdentifier="sentry-dbid-b8410d7d-c150-48a4-8516-71293fa09127")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9818],{92155:(e,a,t)=>{t.d(a,{A:()=>c});var n=t(58168),l=t(96540),o=t(50876);const d=e=>(0,l.forwardRef)(((a,t)=>{let{callback:d,feature:r,isStart:c,isSuccess:i,isFailure:s,eventReason:f,payload:u={},...b}=a;const{sendLog:p,isReady:g}=(0,o.A)(),y=(0,l.useCallback)((()=>{const e=b[d],a={feature:r,isStart:c,isSuccess:i,isFailure:s,eventReason:f,...u,...b["data-ga"]?{dataGa:b["data-ga"]}:{},...b.dataGa?{dataGa:b.dataGa}:{},...b["data-track"]?{dataTrack:b["data-track"]}:{},...b.label?{label:b.label}:{}};"function"==typeof e&&e(),p(a,!0)}),[d,p,g,u,b]),k=(0,l.useMemo)((()=>({...b,[d]:y})),[b,d,y]);return l.createElement(e,(0,n.A)({ref:t},k))}));var r=t(67276);const c=e=>(0,l.forwardRef)(((a,t)=>{let{payload:o={},...c}=a;const i=d(e);return l.createElement(i,(0,n.A)({},c,{ref:t,callback:"onClick",payload:{...o,action:r.o1.buttonClicked}}))}))},89818:(e,a,t)=>{t.r(a),t.d(a,{MobileApp:()=>i,default:()=>s});t(25440);var n=t(96540),l=t(10058),o=t(28738),d=t(92155),r=t(63314);const c=(0,d.A)(l.Button),i=()=>n.createElement(r.Ay,{feature:"MobileApp"},n.createElement(l.Layer,{full:!0},n.createElement(l.Flex,{alignItems:"center",justifyContent:"center",column:!0,width:"100%",height:"100%",background:"mainBackground",gap:4},n.createElement(o.m,null),n.createElement(l.TextBigger,{textAlign:"center"},"Please open this link using your mobile device."),n.createElement(l.Flex,{alignItems:"center"},n.createElement(c,{onClick:()=>window.location.replace("/"),feature:"MobileApp",payload:{label:"Go to app"}},"Go to app"))))),s=i}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/9843.75b313f97c4d363a4959.chunk.js b/src/web/gui/v2/9843.75b313f97c4d363a4959.chunk.js
new file mode 100644
index 000000000..9744da6f1
--- /dev/null
+++ b/src/web/gui/v2/9843.75b313f97c4d363a4959.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9440161d-8b19-4214-95e6-dd5bf3832b7e",e._sentryDebugIdIdentifier="sentry-dbid-9440161d-8b19-4214-95e6-dd5bf3832b7e")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9843],{19843:(e,t,l)=>{l.r(t),l.d(t,{default:()=>C});var n=l(58168),a=(l(62953),l(96540)),o=l(10058),r=l(22292),i=l(8711);i.default.ul.withConfig({displayName:"styled__StyledList",componentId:"sc-z791f1-0"})(["list-style:disc outside none;margin-left:16px;"]);const d=(0,i.default)(o.ModalContent).attrs((e=>{let{isMobile:t}=e;return{width:t?{base:"95vw"}:{}}})).withConfig({displayName:"styled__TrialWelcomeModalContent",componentId:"sc-z791f1-1"})([""]);var s=l(34641),c=l(66732);const u=e=>{let{onOptOutClick:t,isFailure:l}=e;return a.createElement(o.Flex,{column:!0,gap:4,width:{max:120},padding:[0,0,4,0]},l?a.createElement(a.Fragment,null,a.createElement(o.TextBigger,null,"Enrolment to 30-day free Business trial failed."),a.createElement(o.TextBigger,{lineHeight:1.5},"Something unexpected happened when trying to enrol you to the free Business trial.")):a.createElement(a.Fragment,null,a.createElement(o.TextBigger,{lineHeight:1.5},"We are happy to upgrade your account to Netdata Business, for free, for"," ",a.createElement(o.TextBigger,{strong:!0},"30 days"),"."),a.createElement(o.TextBigger,null,"Enjoy the best of Netdata!"),"function"===typeof t&&a.createElement(c.A,{onOptOutClick:t})))};var m=l(87659),f=l(92155),g=l(63314),p=l(47731),b=l(25624),E=l(35454),y=l(50503),h=l(19673),w=l(5668);const _=(0,f.A)(o.Button),C=(0,a.memo)((()=>{const{trialWelcomeVisible:e}=(0,b.A)(),t=(0,p.J)(),l=(0,r.uW)("email"),[i,,,c]=(0,m.A)(!0),[f,,C]=(0,m.A)(),{isFailure:x,reset:A}=(0,y.A)(),[B,,T,k]=(0,m.A)(),{refreshPlan:v}=(0,b.A)(),[,I]=(0,w.ng)("trialModalDismissed"),M=(0,h.i5)(),F=(0,a.useCallback)((()=>{T(),M({email:l}).then((()=>{setTimeout((()=>{v(),A(),k()}),2e3)})).catch((()=>{k()}))}),[l]),P=(0,a.useMemo)((()=>x?{feature:"CloseTrialEnrolmentErrorModal",label:"Close",flavour:"hollow"}:{feature:"TrialAccept",label:"OK",textTransform:"uppercase",flavour:"hollow",icon:"thumb_up"}),[x]);return e?f?a.createElement(s.A,{onDecline:C,onCancellingEnd:()=>{localStorage.setItem(E.$B,!0),C(),c()}}):i?a.createElement(o.Modal,{backdropProps:{backdropBlur:!0}},a.createElement(g.Ay,{feature:"TrialWelcome"},a.createElement(d,{isMobile:t},a.createElement(o.ModalHeader,null,a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(o.Icon,{name:"netdataPress",color:"text"}),a.createElement(o.H4,null,"Welcome to Netdata!"))),a.createElement(o.ModalBody,null,a.createElement(u,{isFailure:x})),a.createElement(o.ModalFooter,null,a.createElement(o.Flex,{gap:4,justifyContent:"end",padding:[1,2]},x&&a.createElement(_,{feature:"RetryTrialEnrolment",label:"Retry",onClick:F,disabled:B,isLoading:B}),a.createElement(_,(0,n.A)({onClick:()=>{var e,t;(c(),A(),localStorage.setItem(E.$B,!0),!x&&null!==(e=window.posthog)&&void 0!==e&&e.setPersonProperties)&&(null===(t=window.posthog)||void 0===t||t.setPersonProperties({netdata_cloud_trial_modal_seen:!0}));I(!0)},disabled:B},P))))))):null:null}))}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/9912.b952e26497a284ac37b2.chunk.js b/src/web/gui/v2/9912.b952e26497a284ac37b2.chunk.js
new file mode 100644
index 000000000..d6ded30a8
--- /dev/null
+++ b/src/web/gui/v2/9912.b952e26497a284ac37b2.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="007ae534-e19b-426d-ab5d-8b3d6a4d3153",e._sentryDebugIdIdentifier="sentry-dbid-007ae534-e19b-426d-ab5d-8b3d6a4d3153")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9912],{9912:(e,n,d)=>{d.r(n),d.d(n,{default:()=>i});var o=d(96540),t=d(22292),l=d(58168),a=(d(62953),d(39225)),r=d(69418),s=d(73865);const f=(0,a.A)((()=>d.e(3750).then(d.bind(d,63750))),"Modal"),b=e=>{const[,n,d]=(0,r.A)(),{loaded:t,hasLimitations:a,maxNodes:b,preferredNodes:u,refreshPreferredNodes:i}=(0,s.A)();return!(n||!t||!a)&&(d>b&&!u.length)?o.createElement(o.Suspense,{fallback:""},o.createElement(f,(0,l.A)({onSuccessfulSave:i},e))):null};var u=d(93155);const i=e=>{const n=(0,t.uW)("isAnonymous");return u.bO&&!n?o.createElement(b,e):null}}}]); \ No newline at end of file
diff --git a/web/gui/v2/LICENSE.md b/src/web/gui/v2/LICENSE.md
index 865d094f1..865d094f1 100644
--- a/web/gui/v2/LICENSE.md
+++ b/src/web/gui/v2/LICENSE.md
diff --git a/web/gui/v2/README.md b/src/web/gui/v2/README.md
index d434d0b42..d434d0b42 120000
--- a/web/gui/v2/README.md
+++ b/src/web/gui/v2/README.md
diff --git a/web/gui/v2/agent.html b/src/web/gui/v2/agent.html
index 5ffbdb750..73b040488 100644
--- a/web/gui/v2/agent.html
+++ b/src/web/gui/v2/agent.html
@@ -28,13 +28,15 @@
webpackPublicPath: "https://app.netdata.cloud",
agentApiUrl: searchParams.get("agent") || getBasename(),
posthogToken: "phc_hnhlqe6D2Q4IcQNrFItaqdXJAxQ8RcHkPAFAp74pubv",
- version: "6.66.1",
+ version: "6.104.1",
tracking: false,
cookieDomain: ".netdata.cloud",
onprem: false,
nodeEnv: "production"
}
+ window.visitedNodes = []
+
function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
rel = rel || 'stylesheet'
type = type || 'text/css'
@@ -219,6 +221,25 @@
}
window.envSettings.visitor = event.data.person_guid
+
+ try {
+ var visitedNodesByName = event.data.urls.reduce(function (vn, visitedUrl) {
+ vn[visitedUrl[4]] = vn[visitedUrl[4]] || {}
+ vn[visitedUrl[4]].id = visitedUrl[0]
+ vn[visitedUrl[4]].name = visitedUrl[4]
+ vn[visitedUrl[4]].lastAccessTime = visitedUrl[2]
+ vn[visitedUrl[4]].urls = vn[visitedUrl[4]].urls || []
+ vn[visitedUrl[4]].urls.push(visitedUrl[1])
+
+ return vn
+ }, {})
+
+ window.visitedNodes = Object.keys(visitedNodesByName).map(function(vn) {
+ return visitedNodesByName[vn]
+ })
+ } catch(e) {
+ // do nothing
+ }
}
});
}).catch(() => {})</script></body></html> \ No newline at end of file
diff --git a/src/web/gui/v2/allFiles.6.104.1.json b/src/web/gui/v2/allFiles.6.104.1.json
new file mode 100644
index 000000000..6ab603da1
--- /dev/null
+++ b/src/web/gui/v2/allFiles.6.104.1.json
@@ -0,0 +1,374 @@
+{
+ "bundlesManifest.json": "/bundlesManifest.6.json",
+ "app.css": "/app.cb2e9f9a81cf9533384e.css",
+ "app.js": "/app.7443b231e52789baa643.js",
+ "runtime.js": "/runtime.30ce76c6e7acf60ebf83.js",
+ "3624.chunk.js": "/3624.b8b5bc981ae890a8a5b8.chunk.js",
+ "7840.chunk.js": "/7840.e1af907905ff10afb069.chunk.js",
+ "5596.chunk.js": "/5596.8280cb325a103342aa30.chunk.js",
+ "3350.chunk.js": "/3350.24934ec57134cbef07bf.chunk.js",
+ "9818.chunk.js": "/9818.ca4131b4d88d20e88f72.chunk.js",
+ "7529.chunk.js": "/7529.75d71f48d8d6ea454b6d.chunk.js",
+ "1418.chunk.js": "/1418.a399f41ec9789d008612.chunk.js",
+ "1876.chunk.js": "/1876.ba66fdbcfb1b55334646.chunk.js",
+ "8473.chunk.js": "/8473.757c1686b1578c6813c8.chunk.js",
+ "7471.chunk.js": "/7471.d61aa69f317a13bd1b86.chunk.js",
+ "3736.chunk.js": "/3736.b247e40ccbdc039b9877.chunk.js",
+ "683.css": "/683.cc9fa5f3bdc0bf3ab2fc.css",
+ "683.chunk.js": "/683.95b7a3193b43fd5dbe51.chunk.js",
+ "8784.chunk.js": "/8784.c51d36fede97c85313e9.chunk.js",
+ "7146.chunk.js": "/7146.43b5125ff0b41138f0bc.chunk.js",
+ "5598.chunk.js": "/5598.99e492f7ae4d391df96f.chunk.js",
+ "7789.css": "/7789.89070793921be1288bb5.css",
+ "7789.chunk.js": "/7789.f00b7764a97a7dadff97.chunk.js",
+ "934.chunk.js": "/934.aadd4297c0cd646a1038.chunk.js",
+ "7436.chunk.js": "/7436.6d4c25c5ff7d2e65734c.chunk.js",
+ "8505.chunk.js": "/8505.b10bf3549c213fe15d55.chunk.js",
+ "5426.chunk.js": "/5426.1235a7a39c1b0923b071.chunk.js",
+ "4680.chunk.js": "/4680.0c75b44bbc80f4591fdd.chunk.js",
+ "5700.chunk.js": "/5700.313f7b9c7005d2022b03.chunk.js",
+ "5246.chunk.js": "/5246.a7c78643acccf04d7268.chunk.js",
+ "966.css": "/966.89070793921be1288bb5.css",
+ "966.chunk.js": "/966.8f0a484a79552c192bc1.chunk.js",
+ "4034.chunk.js": "/4034.9c82e72b081978919942.chunk.js",
+ "1782.chunk.js": "/1782.31d84c467a8446cb3c47.chunk.js",
+ "1726.chunk.js": "/1726.e4f235562d58cb4f4044.chunk.js",
+ "8507.css": "/8507.89070793921be1288bb5.css",
+ "8507.chunk.js": "/8507.e30db778518756ef63fa.chunk.js",
+ "3705.chunk.js": "/3705.38e023af816fb6ce8fc9.chunk.js",
+ "6331.css": "/6331.89070793921be1288bb5.css",
+ "6331.chunk.js": "/6331.ccfaab2b17a28e1b6aa2.chunk.js",
+ "9843.chunk.js": "/9843.75b313f97c4d363a4959.chunk.js",
+ "1839.chunk.js": "/1839.1dcd23c81c97fb79bfdb.chunk.js",
+ "86.chunk.js": "/86.167efe55b22f02c3155a.chunk.js",
+ "2007.chunk.js": "/2007.3c73c91371062be4c05e.chunk.js",
+ "8676.chunk.js": "/8676.a3d687b3b339a72ab66e.chunk.js",
+ "9912.chunk.js": "/9912.b952e26497a284ac37b2.chunk.js",
+ "7959.chunk.js": "/7959.3995671185f9720b5454.chunk.js",
+ "3968.chunk.js": "/3968.a5f7366160b7ac086dba.chunk.js",
+ "3104.chunk.js": "/3104.dfd9b1f79c9550ab8493.chunk.js",
+ "8059.chunk.js": "/8059.c88ad65e1926faee2379.chunk.js",
+ "195.chunk.js": "/195.3898e2d9ea61ff1d4a4f.chunk.js",
+ "785.chunk.js": "/785.c45abbb1e2a4915d85df.chunk.js",
+ "7340.chunk.js": "/7340.c563ddaad6c68dab9088.chunk.js",
+ "7332.chunk.js": "/7332.8f89f4887946c129ea01.chunk.js",
+ "6760.chunk.js": "/6760.fe4a9b58186542294e85.chunk.js",
+ "6218.chunk.js": "/6218.26fc25279f45fbcf29f7.chunk.js",
+ "185.chunk.js": "/185.7461f65d16b20fe83fc1.chunk.js",
+ "5304.chunk.js": "/5304.dcb81c99fcb90f8ee8cc.chunk.js",
+ "3750.chunk.js": "/3750.6f01a0becb7db332b4ce.chunk.js",
+ "4414.chunk.js": "/4414.60a74c3b7534b4a25469.chunk.js",
+ "8011.chunk.js": "/8011.3f8282bb427ea06e9408.chunk.js",
+ "npm.react.dom.js": "/npm.react.dom.b2a6a30db3d683abdb32.js",
+ "netdata.ui.js": "/netdata.ui.f50ab375c8daf7a2a547.js",
+ "netdata.charts.js": "/netdata.charts.f0b9e2b96837688d2aab.js",
+ "5171.js": "/5171.2a848991a41e02f24c8d.js",
+ "7144.chunk.js": "/7144.72da82bc4f112d1e6d31.chunk.js",
+ "7857.chunk.js": "/7857.0d6fb5e4a2c2b8996e0f.chunk.js",
+ "3296.chunk.js": "/3296.66994eada739315fc37e.chunk.js",
+ "1220.chunk.js": "/1220.866e5f8ef6dd53cc1146.chunk.js",
+ "749.chunk.js": "/749.8ce93b3d6d67d600e8c8.chunk.js",
+ "7519.chunk.js": "/7519.8a99c6b9370779196847.chunk.js",
+ "6121.chunk.js": "/6121.8c25bb62d82381e90df8.chunk.js",
+ "3584.chunk.js": "/3584.7b6df71f431fe58061ad.chunk.js",
+ "8323.css": "/8323.e22de33686bb2f34063c.css",
+ "8323.chunk.js": "/8323.61daef62d0036dd19dbf.chunk.js",
+ "5709.chunk.js": "/5709.6fc5fd48f639100fa6ad.chunk.js",
+ "3731.chunk.js": "/3731.40bfabd5c5a12309b1a9.chunk.js",
+ "1396.chunk.js": "/1396.3ea7b55a3bffeef95530.chunk.js",
+ "5794.chunk.js": "/5794.719f2daca8b8f3a118fe.chunk.js",
+ "7208.chunk.js": "/7208.3c255b9641ab4d451747.chunk.js",
+ "6323.chunk.js": "/6323.425683f5bf71a51caf65.chunk.js",
+ "2414.chunk.js": "/2414.38b580f70a86a4f94b83.chunk.js",
+ "9473.chunk.js": "/9473.3693c06a873280f11bd6.chunk.js",
+ "9297.chunk.js": "/9297.394c9cbf0a1e402384a6.chunk.js",
+ "9510.chunk.js": "/9510.58c95eb5f0290291b5a9.chunk.js",
+ "6008.chunk.js": "/6008.07f03fb5dba476a12f91.chunk.js",
+ "1875.chunk.js": "/1875.e736e046980cb8eb4cda.chunk.js",
+ "7410.chunk.js": "/7410.cb47519a7a5187208b28.chunk.js",
+ "3D_PARTY_LICENSES.txt": "/3D_PARTY_LICENSES.txt",
+ "static/site/pages/holding-page-503/holding-page-503.svg": "/static/site/pages/holding-page-503/holding-page-503.svg",
+ "favicon.ico": "/favicon.ico",
+ "static/img/logos/services/graphite.svg": "/static/img/logos/services/graphite.svg",
+ "sw.js": "/sw.js",
+ "static/img/no-filter-results.png": "/static/img/no-filter-results.png",
+ "static/img/logos/services/retroshare.svg": "/static/img/logos/services/retroshare.svg",
+ "static/img/logos/services/squid.svg": "/static/img/logos/services/squid.svg",
+ "static/img/no-nodes-room.svg": "/static/img/no-nodes-room.svg",
+ "static/img/logos/services/libvirt.svg": "/static/img/logos/services/libvirt.svg",
+ "static/img/logos/services/postfix.svg": "/static/img/logos/services/postfix.svg",
+ "static/img/logos/services/proxysql.svg": "/static/img/logos/services/proxysql.svg",
+ "static/img/logos/services/varnish.svg": "/static/img/logos/services/varnish.svg",
+ "static/img/logos/services/lxd.svg": "/static/img/logos/services/lxd.svg",
+ "static/img/logos/services/freeradius.svg": "/static/img/logos/services/freeradius.svg",
+ "static/img/logos/services/prowl.svg": "/static/img/logos/services/prowl.svg",
+ "static/img/logos/services/traefik.svg": "/static/img/logos/services/traefik.svg",
+ "static/img/logos/services/rethinkdb.svg": "/static/img/logos/services/rethinkdb.svg",
+ "static/img/logos/os/gentoo.svg": "/static/img/logos/os/gentoo.svg",
+ "static/img/logos/services/apc.svg": "/static/img/logos/services/apc.svg",
+ "static/img/logos/services/statsd.svg": "/static/img/logos/services/statsd.svg",
+ "static/img/logos/services/openldap.svg": "/static/img/logos/services/openldap.svg",
+ "static/img/logos/services/cups.svg": "/static/img/logos/services/cups.svg",
+ "static/img/logos/os/openwrt.svg": "/static/img/logos/os/openwrt.svg",
+ "static/img/logos/services/spigot.svg": "/static/img/logos/services/spigot.svg",
+ "static/img/logos/services/stiebel.svg": "/static/img/logos/services/stiebel.svg",
+ "agent.html": "/agent.html",
+ "local-agent.html": "/local-agent.html",
+ "static/img/logos/os/opensuse.svg": "/static/img/logos/os/opensuse.svg",
+ "static/img/logos/services/apache.svg": "/static/img/logos/services/apache.svg",
+ "static/img/logos/services/beanstalkd.svg": "/static/img/logos/services/beanstalkd.svg",
+ "static/img/logos/services/golang.svg": "/static/img/logos/services/golang.svg",
+ "static/img/new-dashboard.svg": "/static/img/new-dashboard.svg",
+ "static/img/logos/services/activemq.svg": "/static/img/logos/services/activemq.svg",
+ "static/img/logos/os/kubernetes.svg": "/static/img/logos/os/kubernetes.svg",
+ "static/img/logos/services/kubernetes.svg": "/static/img/logos/services/kubernetes.svg",
+ "static/img/logos/services/systemd.svg": "/static/img/logos/services/systemd.svg",
+ "static/img/logos/services/influxdb.svg": "/static/img/logos/services/influxdb.svg",
+ "static/img/rack.png": "/static/img/rack.png",
+ "static/email/img/isotype_600.png": "/static/email/img/isotype_600.png",
+ "static/img/logos/services/irc.svg": "/static/img/logos/services/irc.svg",
+ "static/img/logos/services/tomcat.svg": "/static/img/logos/services/tomcat.svg",
+ "registry-alert-redirect.html": "/registry-alert-redirect.html",
+ "static/img/logos/services/mariadb.svg": "/static/img/logos/services/mariadb.svg",
+ "static/img/logos/services/openzfs.svg": "/static/img/logos/services/openzfs.svg",
+ "static/img/logos/services/veritas.svg": "/static/img/logos/services/veritas.svg",
+ "static/img/logos/services/boinc.svg": "/static/img/logos/services/boinc.svg",
+ "static/img/logos/services/fail2ban.svg": "/static/img/logos/services/fail2ban.svg",
+ "static/img/logos/services/dns.svg": "/static/img/logos/services/dns.svg",
+ "static/img/logos/services/netfilter.svg": "/static/img/logos/services/netfilter.svg",
+ "static/img/logos/services/uwsgi.svg": "/static/img/logos/services/uwsgi.svg",
+ "static/img/logos/services/btrfs.svg": "/static/img/logos/services/btrfs.svg",
+ "static/img/logos/services/adaptec.svg": "/static/img/logos/services/adaptec.svg",
+ "static/img/logos/services/icecast.svg": "/static/img/logos/services/icecast.svg",
+ "static/img/logos/services/xen.svg": "/static/img/logos/services/xen.svg",
+ "static/img/logos/services/haproxy.svg": "/static/img/logos/services/haproxy.svg",
+ "static/img/logos/services/tor.svg": "/static/img/logos/services/tor.svg",
+ "static/img/logos/services/mysql.svg": "/static/img/logos/services/mysql.svg",
+ "static/img/logos/services/memcached.svg": "/static/img/logos/services/memcached.svg",
+ "static/img/logos/services/libreswan.svg": "/static/img/logos/services/libreswan.svg",
+ "static/img/logos/services/grafana.svg": "/static/img/logos/services/grafana.svg",
+ "static/img/logos/os/raspberry-pi.svg": "/static/img/logos/os/raspberry-pi.svg",
+ "static/img/logos/services/raspberry-pi.svg": "/static/img/logos/services/raspberry-pi.svg",
+ "static/img/logos/services/fluentd.svg": "/static/img/logos/services/fluentd.svg",
+ "static/img/logos/services/kairosdb.svg": "/static/img/logos/services/kairosdb.svg",
+ "static/img/logos/services/docker.svg": "/static/img/logos/services/docker.svg",
+ "static/img/logos/services/opentsdb.svg": "/static/img/logos/services/opentsdb.svg",
+ "static/img/logos/services/php-fpm.svg": "/static/img/logos/services/php-fpm.svg",
+ "static/img/logos/services/monit.svg": "/static/img/logos/services/monit.svg",
+ "static/img/logos/services/fping.svg": "/static/img/logos/services/fping.svg",
+ "static/img/logos/services/ntpd.svg": "/static/img/logos/services/ntpd.svg",
+ "static/email/img/header.png": "/static/email/img/header.png",
+ "static/img/logos/os/freenas.svg": "/static/img/logos/os/freenas.svg",
+ "static/img/logos/os/linux-small.svg": "/static/img/logos/os/linux-small.svg",
+ "static/img/logos/services/aws.svg": "/static/img/logos/services/aws.svg",
+ "static/img/logos/services/unbound.svg": "/static/img/logos/services/unbound.svg",
+ "static/img/logos/services/nsd.svg": "/static/img/logos/services/nsd.svg",
+ "static/img/logos/os/macos.svg": "/static/img/logos/os/macos.svg",
+ "static/img/logos/os/linux.svg": "/static/img/logos/os/linux.svg",
+ "static/img/logos/services/linux.svg": "/static/img/logos/services/linux.svg",
+ "static/img/logos/services/postgresql.svg": "/static/img/logos/services/postgresql.svg",
+ "static/img/logos/services/litespeed.svg": "/static/img/logos/services/litespeed.svg",
+ "registry-hello.html": "/registry-hello.html",
+ "static/img/logos/services/slack.svg": "/static/img/logos/services/slack.svg",
+ "static/img/logos/services/gnu-freeipmi.svg": "/static/img/logos/services/gnu-freeipmi.svg",
+ "static/img/logos/services/isc.svg": "/static/img/logos/services/isc.svg",
+ "static/img/logos/services/solr.svg": "/static/img/logos/services/solr.svg",
+ "static/img/logos/services/nut.svg": "/static/img/logos/services/nut.svg",
+ "static/img/logos/os/debian.svg": "/static/img/logos/os/debian.svg",
+ "static/img/logos/services/smstools3.svg": "/static/img/logos/services/smstools3.svg",
+ "static/email/img/reachability_siren.png": "/static/email/img/reachability_siren.png",
+ "static/splash.css": "/static/splash.css",
+ "registry-access.html": "/registry-access.html",
+ "static/img/logos/services/server-connection.svg": "/static/img/logos/services/server-connection.svg",
+ "LICENSE.md": "/LICENSE.md",
+ "static/email/img/crit_siren.png": "/static/email/img/crit_siren.png",
+ "static/img/logos/services/pushover.svg": "/static/img/logos/services/pushover.svg",
+ "static/img/logos/services/openvpn.svg": "/static/img/logos/services/openvpn.svg",
+ "static/img/logos/os/suse.svg": "/static/img/logos/os/suse.svg",
+ "static/img/logos/services/couchdb.svg": "/static/img/logos/services/couchdb.svg",
+ "static/img/logos/os/manjaro.svg": "/static/img/logos/os/manjaro.svg",
+ "static/img/logos/services/rabbitmq.svg": "/static/img/logos/services/rabbitmq.svg",
+ "static/img/logos/services/sma.svg": "/static/img/logos/services/sma.svg",
+ "static/email/img/warn_siren.png": "/static/email/img/warn_siren.png",
+ "static/img/logos/os/arch.svg": "/static/img/logos/os/arch.svg",
+ "static/img/logos/os/freebsd.svg": "/static/img/logos/os/freebsd.svg",
+ "static/img/logos/services/flock.svg": "/static/img/logos/services/flock.svg",
+ "static/img/logos/services/prometheus.svg": "/static/img/logos/services/prometheus.svg",
+ "static/img/logos/services/redis.svg": "/static/img/logos/services/redis.svg",
+ "static/img/logos/services/ipfs.svg": "/static/img/logos/services/ipfs.svg",
+ "static/img/logos/os/redhat.svg": "/static/img/logos/os/redhat.svg",
+ "static/img/logos/services/concul.svg": "/static/img/logos/services/concul.svg",
+ "static/img/mail/isotype.png": "/static/img/mail/isotype.png",
+ "static/img/logos/services/processor.svg": "/static/img/logos/services/processor.svg",
+ "static/img/logos/services/lm-sensors.svg": "/static/img/logos/services/lm-sensors.svg",
+ "static/img/logos/services/data-encryption.svg": "/static/img/logos/services/data-encryption.svg",
+ "static/site/pages/holding-page-503/multiple-logos-group.svg": "/static/site/pages/holding-page-503/multiple-logos-group.svg",
+ "static/email/img/crit_badge.png": "/static/email/img/crit_badge.png",
+ "static/img/logos/services/load-balancer.svg": "/static/img/logos/services/load-balancer.svg",
+ "index.html": "/index.html",
+ "static/img/logos/services/elasticsearch.svg": "/static/img/logos/services/elasticsearch.svg",
+ "static/img/logos/os/centos.svg": "/static/img/logos/os/centos.svg",
+ "static/email/img/clea_siren.png": "/static/email/img/clea_siren.png",
+ "static/img/logos/services/ceph.svg": "/static/img/logos/services/ceph.svg",
+ "static/img/logos/services/log-file.svg": "/static/img/logos/services/log-file.svg",
+ "static/img/logos/services/container.svg": "/static/img/logos/services/container.svg",
+ "static/img/logos/services/dovecot.svg": "/static/img/logos/services/dovecot.svg",
+ "static/img/logos/services/exim.svg": "/static/img/logos/services/exim.svg",
+ "static/img/logos/services/chrony.svg": "/static/img/logos/services/chrony.svg",
+ "static/email/img/warn_badge.png": "/static/email/img/warn_badge.png",
+ "static/img/logos/services/nfs.svg": "/static/img/logos/services/nfs.svg",
+ "static/img/logos/os/fedora.svg": "/static/img/logos/os/fedora.svg",
+ "static/img/logos/os/ubuntu.svg": "/static/img/logos/os/ubuntu.svg",
+ "static/img/logos/services/notification-bell.svg": "/static/img/logos/services/notification-bell.svg",
+ "static/email/img/flood_siren.png": "/static/email/img/flood_siren.png",
+ "static/img/logos/services/access-point.svg": "/static/img/logos/services/access-point.svg",
+ "static/email/img/label_recovered.png": "/static/email/img/label_recovered.png",
+ "static/img/logos/services/samba.svg": "/static/img/logos/services/samba.svg",
+ "static/img/logos/services/monitoring.svg": "/static/img/logos/services/monitoring.svg",
+ "static/img/logos/services/key-file.svg": "/static/img/logos/services/key-file.svg",
+ "static/img/logos/services/kafka.svg": "/static/img/logos/services/kafka.svg",
+ "static/email/img/label_warning.png": "/static/email/img/label_warning.png",
+ "static/img/logos/services/rocketchat.svg": "/static/img/logos/services/rocketchat.svg",
+ "static/img/mail/logotype.svg": "/static/img/mail/logotype.svg",
+ "static/img/logos/services/nginx-plus.svg": "/static/img/logos/services/nginx-plus.svg",
+ "static/email/img/label_critical.png": "/static/email/img/label_critical.png",
+ "static/img/logos/services/fronius.svg": "/static/img/logos/services/fronius.svg",
+ "static/img/logos/services/puppet.svg": "/static/img/logos/services/puppet.svg",
+ "static/img/logos/os/pfsense.svg": "/static/img/logos/os/pfsense.svg",
+ "static/img/logos/services/consul.svg": "/static/img/logos/services/consul.svg",
+ "static/img/logos/os/coreos.svg": "/static/img/logos/os/coreos.svg",
+ "static/site/pages/holding-page-503/index.html": "/static/site/pages/holding-page-503/index.html",
+ "static/site/pages/holding-page-503/holding-page-503.css": "/static/site/pages/holding-page-503/holding-page-503.css",
+ "static/img/logos/services/network.svg": "/static/img/logos/services/network.svg",
+ "static/img/logos/services/qos.svg": "/static/img/logos/services/qos.svg",
+ "static/img/logos/services/email.svg": "/static/img/logos/services/email.svg",
+ "static/img/logos/services/ddos.svg": "/static/img/logos/services/ddos.svg",
+ "static/img/logos/os/openstack.svg": "/static/img/logos/os/openstack.svg",
+ "static/img/mail/logotype.png": "/static/img/mail/logotype.png",
+ "static/email/img/full_logo.png": "/static/email/img/full_logo.png",
+ "static/email/img/community_icon.png": "/static/email/img/community_icon.png",
+ "static/email/img/configure_icon.png": "/static/email/img/configure_icon.png",
+ "static/img/logos/services/temperature.svg": "/static/img/logos/services/temperature.svg",
+ "static/img/logos/services/pushbullet.svg": "/static/img/logos/services/pushbullet.svg",
+ "static/img/logos/services/nginx.svg": "/static/img/logos/services/nginx.svg",
+ "static/img/logos/services/cloud.svg": "/static/img/logos/services/cloud.svg",
+ "static/img/logos/services/pagerduty.svg": "/static/img/logos/services/pagerduty.svg",
+ "static/img/logos/services/alerta.svg": "/static/img/logos/services/alerta.svg",
+ "static/img/logos/services/mongodb.svg": "/static/img/logos/services/mongodb.svg",
+ "static/email/img/clea_badge.png": "/static/email/img/clea_badge.png",
+ "static/img/logos/services/discord.svg": "/static/img/logos/services/discord.svg",
+ "static/img/logos/os/alpine.svg": "/static/img/logos/os/alpine.svg",
+ "static/img/logos/os/placeholder.svg": "/static/img/logos/os/placeholder.svg",
+ "static/img/logos/services/aws-sns.svg": "/static/img/logos/services/aws-sns.svg",
+ "static/img/logos/services/telegram.svg": "/static/img/logos/services/telegram.svg",
+ "static/img/logos/os/oracle.svg": "/static/img/logos/os/oracle.svg",
+ "static/img/logos/services/oracle.svg": "/static/img/logos/services/oracle.svg",
+ "static/img/logos/services/network-protocol.svg": "/static/img/logos/services/network-protocol.svg",
+ "static/img/logos/services/nvidia.svg": "/static/img/logos/services/nvidia.svg",
+ "static/img/logos/services/springboot.svg": "/static/img/logos/services/springboot.svg",
+ "static/img/logos/services/kavenegar.svg": "/static/img/logos/services/kavenegar.svg",
+ "static/img/logos/services/powerdns.svg": "/static/img/logos/services/powerdns.svg",
+ "static/img/logos/os/docker.svg": "/static/img/logos/os/docker.svg",
+ "static/img/logos/services/messagebird.svg": "/static/img/logos/services/messagebird.svg",
+ "static/img/logos/services/placeholder.svg": "/static/img/logos/services/placeholder.svg",
+ "static/site/pages/holding-page-503/reset.svg": "/static/site/pages/holding-page-503/reset.svg",
+ "static/img/logos/services/twilio.svg": "/static/img/logos/services/twilio.svg",
+ "static/img/logos/services/lighthttpd.svg": "/static/img/logos/services/lighthttpd.svg",
+ "static/img/logos/os/rocky.svg": "/static/img/logos/os/rocky.svg",
+ "static/img/list-style-image.svg": "/static/img/list-style-image.svg",
+ ".well-known/assetlinks.json": "/.well-known/assetlinks.json",
+ "static/.well-known/assetlinks.json": "/static/.well-known/assetlinks.json",
+ "static/img/logos/services/opensips.svg": "/static/img/logos/services/opensips.svg",
+ "static/img/logos/services/logstash.svg": "/static/img/logos/services/logstash.svg",
+ "static/img/mail/isotype.svg": "/static/img/mail/isotype.svg",
+ "static/site/pages/holding-page-503/netdata-logo-white.svg": "/static/site/pages/holding-page-503/netdata-logo-white.svg",
+ "static/img/logos/services/hub.svg": "/static/img/logos/services/hub.svg",
+ "apple-app-site-association": "/apple-app-site-association",
+ "static/apple-app-site-association": "/static/apple-app-site-association",
+ "app.css.map": "/app.cb2e9f9a81cf9533384e.css.map",
+ "app.js.map": "/app.7443b231e52789baa643.js.map",
+ "runtime.js.map": "/runtime.30ce76c6e7acf60ebf83.js.map",
+ "3624.chunk.js.map": "/3624.b8b5bc981ae890a8a5b8.chunk.js.map",
+ "7840.chunk.js.map": "/7840.e1af907905ff10afb069.chunk.js.map",
+ "5596.chunk.js.map": "/5596.8280cb325a103342aa30.chunk.js.map",
+ "3350.chunk.js.map": "/3350.24934ec57134cbef07bf.chunk.js.map",
+ "9818.chunk.js.map": "/9818.ca4131b4d88d20e88f72.chunk.js.map",
+ "7529.chunk.js.map": "/7529.75d71f48d8d6ea454b6d.chunk.js.map",
+ "1418.chunk.js.map": "/1418.a399f41ec9789d008612.chunk.js.map",
+ "1876.chunk.js.map": "/1876.ba66fdbcfb1b55334646.chunk.js.map",
+ "8473.chunk.js.map": "/8473.757c1686b1578c6813c8.chunk.js.map",
+ "7471.chunk.js.map": "/7471.d61aa69f317a13bd1b86.chunk.js.map",
+ "3736.chunk.js.map": "/3736.b247e40ccbdc039b9877.chunk.js.map",
+ "683.css.map": "/683.cc9fa5f3bdc0bf3ab2fc.css.map",
+ "683.chunk.js.map": "/683.95b7a3193b43fd5dbe51.chunk.js.map",
+ "8784.chunk.js.map": "/8784.c51d36fede97c85313e9.chunk.js.map",
+ "7146.chunk.js.map": "/7146.43b5125ff0b41138f0bc.chunk.js.map",
+ "5598.chunk.js.map": "/5598.99e492f7ae4d391df96f.chunk.js.map",
+ "7789.css.map": "/7789.89070793921be1288bb5.css.map",
+ "7789.chunk.js.map": "/7789.f00b7764a97a7dadff97.chunk.js.map",
+ "934.chunk.js.map": "/934.aadd4297c0cd646a1038.chunk.js.map",
+ "7436.chunk.js.map": "/7436.6d4c25c5ff7d2e65734c.chunk.js.map",
+ "8505.chunk.js.map": "/8505.b10bf3549c213fe15d55.chunk.js.map",
+ "5426.chunk.js.map": "/5426.1235a7a39c1b0923b071.chunk.js.map",
+ "4680.chunk.js.map": "/4680.0c75b44bbc80f4591fdd.chunk.js.map",
+ "5700.chunk.js.map": "/5700.313f7b9c7005d2022b03.chunk.js.map",
+ "5246.chunk.js.map": "/5246.a7c78643acccf04d7268.chunk.js.map",
+ "966.css.map": "/966.89070793921be1288bb5.css.map",
+ "966.chunk.js.map": "/966.8f0a484a79552c192bc1.chunk.js.map",
+ "4034.chunk.js.map": "/4034.9c82e72b081978919942.chunk.js.map",
+ "1782.chunk.js.map": "/1782.31d84c467a8446cb3c47.chunk.js.map",
+ "1726.chunk.js.map": "/1726.e4f235562d58cb4f4044.chunk.js.map",
+ "8507.css.map": "/8507.89070793921be1288bb5.css.map",
+ "8507.chunk.js.map": "/8507.e30db778518756ef63fa.chunk.js.map",
+ "3705.chunk.js.map": "/3705.38e023af816fb6ce8fc9.chunk.js.map",
+ "6331.css.map": "/6331.89070793921be1288bb5.css.map",
+ "6331.chunk.js.map": "/6331.ccfaab2b17a28e1b6aa2.chunk.js.map",
+ "9843.chunk.js.map": "/9843.75b313f97c4d363a4959.chunk.js.map",
+ "1839.chunk.js.map": "/1839.1dcd23c81c97fb79bfdb.chunk.js.map",
+ "86.chunk.js.map": "/86.167efe55b22f02c3155a.chunk.js.map",
+ "2007.chunk.js.map": "/2007.3c73c91371062be4c05e.chunk.js.map",
+ "8676.chunk.js.map": "/8676.a3d687b3b339a72ab66e.chunk.js.map",
+ "9912.chunk.js.map": "/9912.b952e26497a284ac37b2.chunk.js.map",
+ "7959.chunk.js.map": "/7959.3995671185f9720b5454.chunk.js.map",
+ "3968.chunk.js.map": "/3968.a5f7366160b7ac086dba.chunk.js.map",
+ "3104.chunk.js.map": "/3104.dfd9b1f79c9550ab8493.chunk.js.map",
+ "8059.chunk.js.map": "/8059.c88ad65e1926faee2379.chunk.js.map",
+ "195.chunk.js.map": "/195.3898e2d9ea61ff1d4a4f.chunk.js.map",
+ "785.chunk.js.map": "/785.c45abbb1e2a4915d85df.chunk.js.map",
+ "7340.chunk.js.map": "/7340.c563ddaad6c68dab9088.chunk.js.map",
+ "7332.chunk.js.map": "/7332.8f89f4887946c129ea01.chunk.js.map",
+ "6760.chunk.js.map": "/6760.fe4a9b58186542294e85.chunk.js.map",
+ "6218.chunk.js.map": "/6218.26fc25279f45fbcf29f7.chunk.js.map",
+ "185.chunk.js.map": "/185.7461f65d16b20fe83fc1.chunk.js.map",
+ "5304.chunk.js.map": "/5304.dcb81c99fcb90f8ee8cc.chunk.js.map",
+ "3750.chunk.js.map": "/3750.6f01a0becb7db332b4ce.chunk.js.map",
+ "4414.chunk.js.map": "/4414.60a74c3b7534b4a25469.chunk.js.map",
+ "8011.chunk.js.map": "/8011.3f8282bb427ea06e9408.chunk.js.map",
+ "npm.react.dom.js.map": "/npm.react.dom.b2a6a30db3d683abdb32.js.map",
+ "netdata.ui.js.map": "/netdata.ui.f50ab375c8daf7a2a547.js.map",
+ "netdata.charts.js.map": "/netdata.charts.f0b9e2b96837688d2aab.js.map",
+ "5171.js.map": "/5171.2a848991a41e02f24c8d.js.map",
+ "7144.chunk.js.map": "/7144.72da82bc4f112d1e6d31.chunk.js.map",
+ "7857.chunk.js.map": "/7857.0d6fb5e4a2c2b8996e0f.chunk.js.map",
+ "3296.chunk.js.map": "/3296.66994eada739315fc37e.chunk.js.map",
+ "1220.chunk.js.map": "/1220.866e5f8ef6dd53cc1146.chunk.js.map",
+ "749.chunk.js.map": "/749.8ce93b3d6d67d600e8c8.chunk.js.map",
+ "7519.chunk.js.map": "/7519.8a99c6b9370779196847.chunk.js.map",
+ "6121.chunk.js.map": "/6121.8c25bb62d82381e90df8.chunk.js.map",
+ "3584.chunk.js.map": "/3584.7b6df71f431fe58061ad.chunk.js.map",
+ "8323.css.map": "/8323.e22de33686bb2f34063c.css.map",
+ "8323.chunk.js.map": "/8323.61daef62d0036dd19dbf.chunk.js.map",
+ "5709.chunk.js.map": "/5709.6fc5fd48f639100fa6ad.chunk.js.map",
+ "3731.chunk.js.map": "/3731.40bfabd5c5a12309b1a9.chunk.js.map",
+ "1396.chunk.js.map": "/1396.3ea7b55a3bffeef95530.chunk.js.map",
+ "5794.chunk.js.map": "/5794.719f2daca8b8f3a118fe.chunk.js.map",
+ "7208.chunk.js.map": "/7208.3c255b9641ab4d451747.chunk.js.map",
+ "6323.chunk.js.map": "/6323.425683f5bf71a51caf65.chunk.js.map",
+ "2414.chunk.js.map": "/2414.38b580f70a86a4f94b83.chunk.js.map",
+ "9473.chunk.js.map": "/9473.3693c06a873280f11bd6.chunk.js.map",
+ "9297.chunk.js.map": "/9297.394c9cbf0a1e402384a6.chunk.js.map",
+ "9510.chunk.js.map": "/9510.58c95eb5f0290291b5a9.chunk.js.map",
+ "6008.chunk.js.map": "/6008.07f03fb5dba476a12f91.chunk.js.map",
+ "1875.chunk.js.map": "/1875.e736e046980cb8eb4cda.chunk.js.map",
+ "7410.chunk.js.map": "/7410.cb47519a7a5187208b28.chunk.js.map"
+} \ No newline at end of file
diff --git a/src/web/gui/v2/allFiles.6.json b/src/web/gui/v2/allFiles.6.json
new file mode 100644
index 000000000..6ab603da1
--- /dev/null
+++ b/src/web/gui/v2/allFiles.6.json
@@ -0,0 +1,374 @@
+{
+ "bundlesManifest.json": "/bundlesManifest.6.json",
+ "app.css": "/app.cb2e9f9a81cf9533384e.css",
+ "app.js": "/app.7443b231e52789baa643.js",
+ "runtime.js": "/runtime.30ce76c6e7acf60ebf83.js",
+ "3624.chunk.js": "/3624.b8b5bc981ae890a8a5b8.chunk.js",
+ "7840.chunk.js": "/7840.e1af907905ff10afb069.chunk.js",
+ "5596.chunk.js": "/5596.8280cb325a103342aa30.chunk.js",
+ "3350.chunk.js": "/3350.24934ec57134cbef07bf.chunk.js",
+ "9818.chunk.js": "/9818.ca4131b4d88d20e88f72.chunk.js",
+ "7529.chunk.js": "/7529.75d71f48d8d6ea454b6d.chunk.js",
+ "1418.chunk.js": "/1418.a399f41ec9789d008612.chunk.js",
+ "1876.chunk.js": "/1876.ba66fdbcfb1b55334646.chunk.js",
+ "8473.chunk.js": "/8473.757c1686b1578c6813c8.chunk.js",
+ "7471.chunk.js": "/7471.d61aa69f317a13bd1b86.chunk.js",
+ "3736.chunk.js": "/3736.b247e40ccbdc039b9877.chunk.js",
+ "683.css": "/683.cc9fa5f3bdc0bf3ab2fc.css",
+ "683.chunk.js": "/683.95b7a3193b43fd5dbe51.chunk.js",
+ "8784.chunk.js": "/8784.c51d36fede97c85313e9.chunk.js",
+ "7146.chunk.js": "/7146.43b5125ff0b41138f0bc.chunk.js",
+ "5598.chunk.js": "/5598.99e492f7ae4d391df96f.chunk.js",
+ "7789.css": "/7789.89070793921be1288bb5.css",
+ "7789.chunk.js": "/7789.f00b7764a97a7dadff97.chunk.js",
+ "934.chunk.js": "/934.aadd4297c0cd646a1038.chunk.js",
+ "7436.chunk.js": "/7436.6d4c25c5ff7d2e65734c.chunk.js",
+ "8505.chunk.js": "/8505.b10bf3549c213fe15d55.chunk.js",
+ "5426.chunk.js": "/5426.1235a7a39c1b0923b071.chunk.js",
+ "4680.chunk.js": "/4680.0c75b44bbc80f4591fdd.chunk.js",
+ "5700.chunk.js": "/5700.313f7b9c7005d2022b03.chunk.js",
+ "5246.chunk.js": "/5246.a7c78643acccf04d7268.chunk.js",
+ "966.css": "/966.89070793921be1288bb5.css",
+ "966.chunk.js": "/966.8f0a484a79552c192bc1.chunk.js",
+ "4034.chunk.js": "/4034.9c82e72b081978919942.chunk.js",
+ "1782.chunk.js": "/1782.31d84c467a8446cb3c47.chunk.js",
+ "1726.chunk.js": "/1726.e4f235562d58cb4f4044.chunk.js",
+ "8507.css": "/8507.89070793921be1288bb5.css",
+ "8507.chunk.js": "/8507.e30db778518756ef63fa.chunk.js",
+ "3705.chunk.js": "/3705.38e023af816fb6ce8fc9.chunk.js",
+ "6331.css": "/6331.89070793921be1288bb5.css",
+ "6331.chunk.js": "/6331.ccfaab2b17a28e1b6aa2.chunk.js",
+ "9843.chunk.js": "/9843.75b313f97c4d363a4959.chunk.js",
+ "1839.chunk.js": "/1839.1dcd23c81c97fb79bfdb.chunk.js",
+ "86.chunk.js": "/86.167efe55b22f02c3155a.chunk.js",
+ "2007.chunk.js": "/2007.3c73c91371062be4c05e.chunk.js",
+ "8676.chunk.js": "/8676.a3d687b3b339a72ab66e.chunk.js",
+ "9912.chunk.js": "/9912.b952e26497a284ac37b2.chunk.js",
+ "7959.chunk.js": "/7959.3995671185f9720b5454.chunk.js",
+ "3968.chunk.js": "/3968.a5f7366160b7ac086dba.chunk.js",
+ "3104.chunk.js": "/3104.dfd9b1f79c9550ab8493.chunk.js",
+ "8059.chunk.js": "/8059.c88ad65e1926faee2379.chunk.js",
+ "195.chunk.js": "/195.3898e2d9ea61ff1d4a4f.chunk.js",
+ "785.chunk.js": "/785.c45abbb1e2a4915d85df.chunk.js",
+ "7340.chunk.js": "/7340.c563ddaad6c68dab9088.chunk.js",
+ "7332.chunk.js": "/7332.8f89f4887946c129ea01.chunk.js",
+ "6760.chunk.js": "/6760.fe4a9b58186542294e85.chunk.js",
+ "6218.chunk.js": "/6218.26fc25279f45fbcf29f7.chunk.js",
+ "185.chunk.js": "/185.7461f65d16b20fe83fc1.chunk.js",
+ "5304.chunk.js": "/5304.dcb81c99fcb90f8ee8cc.chunk.js",
+ "3750.chunk.js": "/3750.6f01a0becb7db332b4ce.chunk.js",
+ "4414.chunk.js": "/4414.60a74c3b7534b4a25469.chunk.js",
+ "8011.chunk.js": "/8011.3f8282bb427ea06e9408.chunk.js",
+ "npm.react.dom.js": "/npm.react.dom.b2a6a30db3d683abdb32.js",
+ "netdata.ui.js": "/netdata.ui.f50ab375c8daf7a2a547.js",
+ "netdata.charts.js": "/netdata.charts.f0b9e2b96837688d2aab.js",
+ "5171.js": "/5171.2a848991a41e02f24c8d.js",
+ "7144.chunk.js": "/7144.72da82bc4f112d1e6d31.chunk.js",
+ "7857.chunk.js": "/7857.0d6fb5e4a2c2b8996e0f.chunk.js",
+ "3296.chunk.js": "/3296.66994eada739315fc37e.chunk.js",
+ "1220.chunk.js": "/1220.866e5f8ef6dd53cc1146.chunk.js",
+ "749.chunk.js": "/749.8ce93b3d6d67d600e8c8.chunk.js",
+ "7519.chunk.js": "/7519.8a99c6b9370779196847.chunk.js",
+ "6121.chunk.js": "/6121.8c25bb62d82381e90df8.chunk.js",
+ "3584.chunk.js": "/3584.7b6df71f431fe58061ad.chunk.js",
+ "8323.css": "/8323.e22de33686bb2f34063c.css",
+ "8323.chunk.js": "/8323.61daef62d0036dd19dbf.chunk.js",
+ "5709.chunk.js": "/5709.6fc5fd48f639100fa6ad.chunk.js",
+ "3731.chunk.js": "/3731.40bfabd5c5a12309b1a9.chunk.js",
+ "1396.chunk.js": "/1396.3ea7b55a3bffeef95530.chunk.js",
+ "5794.chunk.js": "/5794.719f2daca8b8f3a118fe.chunk.js",
+ "7208.chunk.js": "/7208.3c255b9641ab4d451747.chunk.js",
+ "6323.chunk.js": "/6323.425683f5bf71a51caf65.chunk.js",
+ "2414.chunk.js": "/2414.38b580f70a86a4f94b83.chunk.js",
+ "9473.chunk.js": "/9473.3693c06a873280f11bd6.chunk.js",
+ "9297.chunk.js": "/9297.394c9cbf0a1e402384a6.chunk.js",
+ "9510.chunk.js": "/9510.58c95eb5f0290291b5a9.chunk.js",
+ "6008.chunk.js": "/6008.07f03fb5dba476a12f91.chunk.js",
+ "1875.chunk.js": "/1875.e736e046980cb8eb4cda.chunk.js",
+ "7410.chunk.js": "/7410.cb47519a7a5187208b28.chunk.js",
+ "3D_PARTY_LICENSES.txt": "/3D_PARTY_LICENSES.txt",
+ "static/site/pages/holding-page-503/holding-page-503.svg": "/static/site/pages/holding-page-503/holding-page-503.svg",
+ "favicon.ico": "/favicon.ico",
+ "static/img/logos/services/graphite.svg": "/static/img/logos/services/graphite.svg",
+ "sw.js": "/sw.js",
+ "static/img/no-filter-results.png": "/static/img/no-filter-results.png",
+ "static/img/logos/services/retroshare.svg": "/static/img/logos/services/retroshare.svg",
+ "static/img/logos/services/squid.svg": "/static/img/logos/services/squid.svg",
+ "static/img/no-nodes-room.svg": "/static/img/no-nodes-room.svg",
+ "static/img/logos/services/libvirt.svg": "/static/img/logos/services/libvirt.svg",
+ "static/img/logos/services/postfix.svg": "/static/img/logos/services/postfix.svg",
+ "static/img/logos/services/proxysql.svg": "/static/img/logos/services/proxysql.svg",
+ "static/img/logos/services/varnish.svg": "/static/img/logos/services/varnish.svg",
+ "static/img/logos/services/lxd.svg": "/static/img/logos/services/lxd.svg",
+ "static/img/logos/services/freeradius.svg": "/static/img/logos/services/freeradius.svg",
+ "static/img/logos/services/prowl.svg": "/static/img/logos/services/prowl.svg",
+ "static/img/logos/services/traefik.svg": "/static/img/logos/services/traefik.svg",
+ "static/img/logos/services/rethinkdb.svg": "/static/img/logos/services/rethinkdb.svg",
+ "static/img/logos/os/gentoo.svg": "/static/img/logos/os/gentoo.svg",
+ "static/img/logos/services/apc.svg": "/static/img/logos/services/apc.svg",
+ "static/img/logos/services/statsd.svg": "/static/img/logos/services/statsd.svg",
+ "static/img/logos/services/openldap.svg": "/static/img/logos/services/openldap.svg",
+ "static/img/logos/services/cups.svg": "/static/img/logos/services/cups.svg",
+ "static/img/logos/os/openwrt.svg": "/static/img/logos/os/openwrt.svg",
+ "static/img/logos/services/spigot.svg": "/static/img/logos/services/spigot.svg",
+ "static/img/logos/services/stiebel.svg": "/static/img/logos/services/stiebel.svg",
+ "agent.html": "/agent.html",
+ "local-agent.html": "/local-agent.html",
+ "static/img/logos/os/opensuse.svg": "/static/img/logos/os/opensuse.svg",
+ "static/img/logos/services/apache.svg": "/static/img/logos/services/apache.svg",
+ "static/img/logos/services/beanstalkd.svg": "/static/img/logos/services/beanstalkd.svg",
+ "static/img/logos/services/golang.svg": "/static/img/logos/services/golang.svg",
+ "static/img/new-dashboard.svg": "/static/img/new-dashboard.svg",
+ "static/img/logos/services/activemq.svg": "/static/img/logos/services/activemq.svg",
+ "static/img/logos/os/kubernetes.svg": "/static/img/logos/os/kubernetes.svg",
+ "static/img/logos/services/kubernetes.svg": "/static/img/logos/services/kubernetes.svg",
+ "static/img/logos/services/systemd.svg": "/static/img/logos/services/systemd.svg",
+ "static/img/logos/services/influxdb.svg": "/static/img/logos/services/influxdb.svg",
+ "static/img/rack.png": "/static/img/rack.png",
+ "static/email/img/isotype_600.png": "/static/email/img/isotype_600.png",
+ "static/img/logos/services/irc.svg": "/static/img/logos/services/irc.svg",
+ "static/img/logos/services/tomcat.svg": "/static/img/logos/services/tomcat.svg",
+ "registry-alert-redirect.html": "/registry-alert-redirect.html",
+ "static/img/logos/services/mariadb.svg": "/static/img/logos/services/mariadb.svg",
+ "static/img/logos/services/openzfs.svg": "/static/img/logos/services/openzfs.svg",
+ "static/img/logos/services/veritas.svg": "/static/img/logos/services/veritas.svg",
+ "static/img/logos/services/boinc.svg": "/static/img/logos/services/boinc.svg",
+ "static/img/logos/services/fail2ban.svg": "/static/img/logos/services/fail2ban.svg",
+ "static/img/logos/services/dns.svg": "/static/img/logos/services/dns.svg",
+ "static/img/logos/services/netfilter.svg": "/static/img/logos/services/netfilter.svg",
+ "static/img/logos/services/uwsgi.svg": "/static/img/logos/services/uwsgi.svg",
+ "static/img/logos/services/btrfs.svg": "/static/img/logos/services/btrfs.svg",
+ "static/img/logos/services/adaptec.svg": "/static/img/logos/services/adaptec.svg",
+ "static/img/logos/services/icecast.svg": "/static/img/logos/services/icecast.svg",
+ "static/img/logos/services/xen.svg": "/static/img/logos/services/xen.svg",
+ "static/img/logos/services/haproxy.svg": "/static/img/logos/services/haproxy.svg",
+ "static/img/logos/services/tor.svg": "/static/img/logos/services/tor.svg",
+ "static/img/logos/services/mysql.svg": "/static/img/logos/services/mysql.svg",
+ "static/img/logos/services/memcached.svg": "/static/img/logos/services/memcached.svg",
+ "static/img/logos/services/libreswan.svg": "/static/img/logos/services/libreswan.svg",
+ "static/img/logos/services/grafana.svg": "/static/img/logos/services/grafana.svg",
+ "static/img/logos/os/raspberry-pi.svg": "/static/img/logos/os/raspberry-pi.svg",
+ "static/img/logos/services/raspberry-pi.svg": "/static/img/logos/services/raspberry-pi.svg",
+ "static/img/logos/services/fluentd.svg": "/static/img/logos/services/fluentd.svg",
+ "static/img/logos/services/kairosdb.svg": "/static/img/logos/services/kairosdb.svg",
+ "static/img/logos/services/docker.svg": "/static/img/logos/services/docker.svg",
+ "static/img/logos/services/opentsdb.svg": "/static/img/logos/services/opentsdb.svg",
+ "static/img/logos/services/php-fpm.svg": "/static/img/logos/services/php-fpm.svg",
+ "static/img/logos/services/monit.svg": "/static/img/logos/services/monit.svg",
+ "static/img/logos/services/fping.svg": "/static/img/logos/services/fping.svg",
+ "static/img/logos/services/ntpd.svg": "/static/img/logos/services/ntpd.svg",
+ "static/email/img/header.png": "/static/email/img/header.png",
+ "static/img/logos/os/freenas.svg": "/static/img/logos/os/freenas.svg",
+ "static/img/logos/os/linux-small.svg": "/static/img/logos/os/linux-small.svg",
+ "static/img/logos/services/aws.svg": "/static/img/logos/services/aws.svg",
+ "static/img/logos/services/unbound.svg": "/static/img/logos/services/unbound.svg",
+ "static/img/logos/services/nsd.svg": "/static/img/logos/services/nsd.svg",
+ "static/img/logos/os/macos.svg": "/static/img/logos/os/macos.svg",
+ "static/img/logos/os/linux.svg": "/static/img/logos/os/linux.svg",
+ "static/img/logos/services/linux.svg": "/static/img/logos/services/linux.svg",
+ "static/img/logos/services/postgresql.svg": "/static/img/logos/services/postgresql.svg",
+ "static/img/logos/services/litespeed.svg": "/static/img/logos/services/litespeed.svg",
+ "registry-hello.html": "/registry-hello.html",
+ "static/img/logos/services/slack.svg": "/static/img/logos/services/slack.svg",
+ "static/img/logos/services/gnu-freeipmi.svg": "/static/img/logos/services/gnu-freeipmi.svg",
+ "static/img/logos/services/isc.svg": "/static/img/logos/services/isc.svg",
+ "static/img/logos/services/solr.svg": "/static/img/logos/services/solr.svg",
+ "static/img/logos/services/nut.svg": "/static/img/logos/services/nut.svg",
+ "static/img/logos/os/debian.svg": "/static/img/logos/os/debian.svg",
+ "static/img/logos/services/smstools3.svg": "/static/img/logos/services/smstools3.svg",
+ "static/email/img/reachability_siren.png": "/static/email/img/reachability_siren.png",
+ "static/splash.css": "/static/splash.css",
+ "registry-access.html": "/registry-access.html",
+ "static/img/logos/services/server-connection.svg": "/static/img/logos/services/server-connection.svg",
+ "LICENSE.md": "/LICENSE.md",
+ "static/email/img/crit_siren.png": "/static/email/img/crit_siren.png",
+ "static/img/logos/services/pushover.svg": "/static/img/logos/services/pushover.svg",
+ "static/img/logos/services/openvpn.svg": "/static/img/logos/services/openvpn.svg",
+ "static/img/logos/os/suse.svg": "/static/img/logos/os/suse.svg",
+ "static/img/logos/services/couchdb.svg": "/static/img/logos/services/couchdb.svg",
+ "static/img/logos/os/manjaro.svg": "/static/img/logos/os/manjaro.svg",
+ "static/img/logos/services/rabbitmq.svg": "/static/img/logos/services/rabbitmq.svg",
+ "static/img/logos/services/sma.svg": "/static/img/logos/services/sma.svg",
+ "static/email/img/warn_siren.png": "/static/email/img/warn_siren.png",
+ "static/img/logos/os/arch.svg": "/static/img/logos/os/arch.svg",
+ "static/img/logos/os/freebsd.svg": "/static/img/logos/os/freebsd.svg",
+ "static/img/logos/services/flock.svg": "/static/img/logos/services/flock.svg",
+ "static/img/logos/services/prometheus.svg": "/static/img/logos/services/prometheus.svg",
+ "static/img/logos/services/redis.svg": "/static/img/logos/services/redis.svg",
+ "static/img/logos/services/ipfs.svg": "/static/img/logos/services/ipfs.svg",
+ "static/img/logos/os/redhat.svg": "/static/img/logos/os/redhat.svg",
+ "static/img/logos/services/concul.svg": "/static/img/logos/services/concul.svg",
+ "static/img/mail/isotype.png": "/static/img/mail/isotype.png",
+ "static/img/logos/services/processor.svg": "/static/img/logos/services/processor.svg",
+ "static/img/logos/services/lm-sensors.svg": "/static/img/logos/services/lm-sensors.svg",
+ "static/img/logos/services/data-encryption.svg": "/static/img/logos/services/data-encryption.svg",
+ "static/site/pages/holding-page-503/multiple-logos-group.svg": "/static/site/pages/holding-page-503/multiple-logos-group.svg",
+ "static/email/img/crit_badge.png": "/static/email/img/crit_badge.png",
+ "static/img/logos/services/load-balancer.svg": "/static/img/logos/services/load-balancer.svg",
+ "index.html": "/index.html",
+ "static/img/logos/services/elasticsearch.svg": "/static/img/logos/services/elasticsearch.svg",
+ "static/img/logos/os/centos.svg": "/static/img/logos/os/centos.svg",
+ "static/email/img/clea_siren.png": "/static/email/img/clea_siren.png",
+ "static/img/logos/services/ceph.svg": "/static/img/logos/services/ceph.svg",
+ "static/img/logos/services/log-file.svg": "/static/img/logos/services/log-file.svg",
+ "static/img/logos/services/container.svg": "/static/img/logos/services/container.svg",
+ "static/img/logos/services/dovecot.svg": "/static/img/logos/services/dovecot.svg",
+ "static/img/logos/services/exim.svg": "/static/img/logos/services/exim.svg",
+ "static/img/logos/services/chrony.svg": "/static/img/logos/services/chrony.svg",
+ "static/email/img/warn_badge.png": "/static/email/img/warn_badge.png",
+ "static/img/logos/services/nfs.svg": "/static/img/logos/services/nfs.svg",
+ "static/img/logos/os/fedora.svg": "/static/img/logos/os/fedora.svg",
+ "static/img/logos/os/ubuntu.svg": "/static/img/logos/os/ubuntu.svg",
+ "static/img/logos/services/notification-bell.svg": "/static/img/logos/services/notification-bell.svg",
+ "static/email/img/flood_siren.png": "/static/email/img/flood_siren.png",
+ "static/img/logos/services/access-point.svg": "/static/img/logos/services/access-point.svg",
+ "static/email/img/label_recovered.png": "/static/email/img/label_recovered.png",
+ "static/img/logos/services/samba.svg": "/static/img/logos/services/samba.svg",
+ "static/img/logos/services/monitoring.svg": "/static/img/logos/services/monitoring.svg",
+ "static/img/logos/services/key-file.svg": "/static/img/logos/services/key-file.svg",
+ "static/img/logos/services/kafka.svg": "/static/img/logos/services/kafka.svg",
+ "static/email/img/label_warning.png": "/static/email/img/label_warning.png",
+ "static/img/logos/services/rocketchat.svg": "/static/img/logos/services/rocketchat.svg",
+ "static/img/mail/logotype.svg": "/static/img/mail/logotype.svg",
+ "static/img/logos/services/nginx-plus.svg": "/static/img/logos/services/nginx-plus.svg",
+ "static/email/img/label_critical.png": "/static/email/img/label_critical.png",
+ "static/img/logos/services/fronius.svg": "/static/img/logos/services/fronius.svg",
+ "static/img/logos/services/puppet.svg": "/static/img/logos/services/puppet.svg",
+ "static/img/logos/os/pfsense.svg": "/static/img/logos/os/pfsense.svg",
+ "static/img/logos/services/consul.svg": "/static/img/logos/services/consul.svg",
+ "static/img/logos/os/coreos.svg": "/static/img/logos/os/coreos.svg",
+ "static/site/pages/holding-page-503/index.html": "/static/site/pages/holding-page-503/index.html",
+ "static/site/pages/holding-page-503/holding-page-503.css": "/static/site/pages/holding-page-503/holding-page-503.css",
+ "static/img/logos/services/network.svg": "/static/img/logos/services/network.svg",
+ "static/img/logos/services/qos.svg": "/static/img/logos/services/qos.svg",
+ "static/img/logos/services/email.svg": "/static/img/logos/services/email.svg",
+ "static/img/logos/services/ddos.svg": "/static/img/logos/services/ddos.svg",
+ "static/img/logos/os/openstack.svg": "/static/img/logos/os/openstack.svg",
+ "static/img/mail/logotype.png": "/static/img/mail/logotype.png",
+ "static/email/img/full_logo.png": "/static/email/img/full_logo.png",
+ "static/email/img/community_icon.png": "/static/email/img/community_icon.png",
+ "static/email/img/configure_icon.png": "/static/email/img/configure_icon.png",
+ "static/img/logos/services/temperature.svg": "/static/img/logos/services/temperature.svg",
+ "static/img/logos/services/pushbullet.svg": "/static/img/logos/services/pushbullet.svg",
+ "static/img/logos/services/nginx.svg": "/static/img/logos/services/nginx.svg",
+ "static/img/logos/services/cloud.svg": "/static/img/logos/services/cloud.svg",
+ "static/img/logos/services/pagerduty.svg": "/static/img/logos/services/pagerduty.svg",
+ "static/img/logos/services/alerta.svg": "/static/img/logos/services/alerta.svg",
+ "static/img/logos/services/mongodb.svg": "/static/img/logos/services/mongodb.svg",
+ "static/email/img/clea_badge.png": "/static/email/img/clea_badge.png",
+ "static/img/logos/services/discord.svg": "/static/img/logos/services/discord.svg",
+ "static/img/logos/os/alpine.svg": "/static/img/logos/os/alpine.svg",
+ "static/img/logos/os/placeholder.svg": "/static/img/logos/os/placeholder.svg",
+ "static/img/logos/services/aws-sns.svg": "/static/img/logos/services/aws-sns.svg",
+ "static/img/logos/services/telegram.svg": "/static/img/logos/services/telegram.svg",
+ "static/img/logos/os/oracle.svg": "/static/img/logos/os/oracle.svg",
+ "static/img/logos/services/oracle.svg": "/static/img/logos/services/oracle.svg",
+ "static/img/logos/services/network-protocol.svg": "/static/img/logos/services/network-protocol.svg",
+ "static/img/logos/services/nvidia.svg": "/static/img/logos/services/nvidia.svg",
+ "static/img/logos/services/springboot.svg": "/static/img/logos/services/springboot.svg",
+ "static/img/logos/services/kavenegar.svg": "/static/img/logos/services/kavenegar.svg",
+ "static/img/logos/services/powerdns.svg": "/static/img/logos/services/powerdns.svg",
+ "static/img/logos/os/docker.svg": "/static/img/logos/os/docker.svg",
+ "static/img/logos/services/messagebird.svg": "/static/img/logos/services/messagebird.svg",
+ "static/img/logos/services/placeholder.svg": "/static/img/logos/services/placeholder.svg",
+ "static/site/pages/holding-page-503/reset.svg": "/static/site/pages/holding-page-503/reset.svg",
+ "static/img/logos/services/twilio.svg": "/static/img/logos/services/twilio.svg",
+ "static/img/logos/services/lighthttpd.svg": "/static/img/logos/services/lighthttpd.svg",
+ "static/img/logos/os/rocky.svg": "/static/img/logos/os/rocky.svg",
+ "static/img/list-style-image.svg": "/static/img/list-style-image.svg",
+ ".well-known/assetlinks.json": "/.well-known/assetlinks.json",
+ "static/.well-known/assetlinks.json": "/static/.well-known/assetlinks.json",
+ "static/img/logos/services/opensips.svg": "/static/img/logos/services/opensips.svg",
+ "static/img/logos/services/logstash.svg": "/static/img/logos/services/logstash.svg",
+ "static/img/mail/isotype.svg": "/static/img/mail/isotype.svg",
+ "static/site/pages/holding-page-503/netdata-logo-white.svg": "/static/site/pages/holding-page-503/netdata-logo-white.svg",
+ "static/img/logos/services/hub.svg": "/static/img/logos/services/hub.svg",
+ "apple-app-site-association": "/apple-app-site-association",
+ "static/apple-app-site-association": "/static/apple-app-site-association",
+ "app.css.map": "/app.cb2e9f9a81cf9533384e.css.map",
+ "app.js.map": "/app.7443b231e52789baa643.js.map",
+ "runtime.js.map": "/runtime.30ce76c6e7acf60ebf83.js.map",
+ "3624.chunk.js.map": "/3624.b8b5bc981ae890a8a5b8.chunk.js.map",
+ "7840.chunk.js.map": "/7840.e1af907905ff10afb069.chunk.js.map",
+ "5596.chunk.js.map": "/5596.8280cb325a103342aa30.chunk.js.map",
+ "3350.chunk.js.map": "/3350.24934ec57134cbef07bf.chunk.js.map",
+ "9818.chunk.js.map": "/9818.ca4131b4d88d20e88f72.chunk.js.map",
+ "7529.chunk.js.map": "/7529.75d71f48d8d6ea454b6d.chunk.js.map",
+ "1418.chunk.js.map": "/1418.a399f41ec9789d008612.chunk.js.map",
+ "1876.chunk.js.map": "/1876.ba66fdbcfb1b55334646.chunk.js.map",
+ "8473.chunk.js.map": "/8473.757c1686b1578c6813c8.chunk.js.map",
+ "7471.chunk.js.map": "/7471.d61aa69f317a13bd1b86.chunk.js.map",
+ "3736.chunk.js.map": "/3736.b247e40ccbdc039b9877.chunk.js.map",
+ "683.css.map": "/683.cc9fa5f3bdc0bf3ab2fc.css.map",
+ "683.chunk.js.map": "/683.95b7a3193b43fd5dbe51.chunk.js.map",
+ "8784.chunk.js.map": "/8784.c51d36fede97c85313e9.chunk.js.map",
+ "7146.chunk.js.map": "/7146.43b5125ff0b41138f0bc.chunk.js.map",
+ "5598.chunk.js.map": "/5598.99e492f7ae4d391df96f.chunk.js.map",
+ "7789.css.map": "/7789.89070793921be1288bb5.css.map",
+ "7789.chunk.js.map": "/7789.f00b7764a97a7dadff97.chunk.js.map",
+ "934.chunk.js.map": "/934.aadd4297c0cd646a1038.chunk.js.map",
+ "7436.chunk.js.map": "/7436.6d4c25c5ff7d2e65734c.chunk.js.map",
+ "8505.chunk.js.map": "/8505.b10bf3549c213fe15d55.chunk.js.map",
+ "5426.chunk.js.map": "/5426.1235a7a39c1b0923b071.chunk.js.map",
+ "4680.chunk.js.map": "/4680.0c75b44bbc80f4591fdd.chunk.js.map",
+ "5700.chunk.js.map": "/5700.313f7b9c7005d2022b03.chunk.js.map",
+ "5246.chunk.js.map": "/5246.a7c78643acccf04d7268.chunk.js.map",
+ "966.css.map": "/966.89070793921be1288bb5.css.map",
+ "966.chunk.js.map": "/966.8f0a484a79552c192bc1.chunk.js.map",
+ "4034.chunk.js.map": "/4034.9c82e72b081978919942.chunk.js.map",
+ "1782.chunk.js.map": "/1782.31d84c467a8446cb3c47.chunk.js.map",
+ "1726.chunk.js.map": "/1726.e4f235562d58cb4f4044.chunk.js.map",
+ "8507.css.map": "/8507.89070793921be1288bb5.css.map",
+ "8507.chunk.js.map": "/8507.e30db778518756ef63fa.chunk.js.map",
+ "3705.chunk.js.map": "/3705.38e023af816fb6ce8fc9.chunk.js.map",
+ "6331.css.map": "/6331.89070793921be1288bb5.css.map",
+ "6331.chunk.js.map": "/6331.ccfaab2b17a28e1b6aa2.chunk.js.map",
+ "9843.chunk.js.map": "/9843.75b313f97c4d363a4959.chunk.js.map",
+ "1839.chunk.js.map": "/1839.1dcd23c81c97fb79bfdb.chunk.js.map",
+ "86.chunk.js.map": "/86.167efe55b22f02c3155a.chunk.js.map",
+ "2007.chunk.js.map": "/2007.3c73c91371062be4c05e.chunk.js.map",
+ "8676.chunk.js.map": "/8676.a3d687b3b339a72ab66e.chunk.js.map",
+ "9912.chunk.js.map": "/9912.b952e26497a284ac37b2.chunk.js.map",
+ "7959.chunk.js.map": "/7959.3995671185f9720b5454.chunk.js.map",
+ "3968.chunk.js.map": "/3968.a5f7366160b7ac086dba.chunk.js.map",
+ "3104.chunk.js.map": "/3104.dfd9b1f79c9550ab8493.chunk.js.map",
+ "8059.chunk.js.map": "/8059.c88ad65e1926faee2379.chunk.js.map",
+ "195.chunk.js.map": "/195.3898e2d9ea61ff1d4a4f.chunk.js.map",
+ "785.chunk.js.map": "/785.c45abbb1e2a4915d85df.chunk.js.map",
+ "7340.chunk.js.map": "/7340.c563ddaad6c68dab9088.chunk.js.map",
+ "7332.chunk.js.map": "/7332.8f89f4887946c129ea01.chunk.js.map",
+ "6760.chunk.js.map": "/6760.fe4a9b58186542294e85.chunk.js.map",
+ "6218.chunk.js.map": "/6218.26fc25279f45fbcf29f7.chunk.js.map",
+ "185.chunk.js.map": "/185.7461f65d16b20fe83fc1.chunk.js.map",
+ "5304.chunk.js.map": "/5304.dcb81c99fcb90f8ee8cc.chunk.js.map",
+ "3750.chunk.js.map": "/3750.6f01a0becb7db332b4ce.chunk.js.map",
+ "4414.chunk.js.map": "/4414.60a74c3b7534b4a25469.chunk.js.map",
+ "8011.chunk.js.map": "/8011.3f8282bb427ea06e9408.chunk.js.map",
+ "npm.react.dom.js.map": "/npm.react.dom.b2a6a30db3d683abdb32.js.map",
+ "netdata.ui.js.map": "/netdata.ui.f50ab375c8daf7a2a547.js.map",
+ "netdata.charts.js.map": "/netdata.charts.f0b9e2b96837688d2aab.js.map",
+ "5171.js.map": "/5171.2a848991a41e02f24c8d.js.map",
+ "7144.chunk.js.map": "/7144.72da82bc4f112d1e6d31.chunk.js.map",
+ "7857.chunk.js.map": "/7857.0d6fb5e4a2c2b8996e0f.chunk.js.map",
+ "3296.chunk.js.map": "/3296.66994eada739315fc37e.chunk.js.map",
+ "1220.chunk.js.map": "/1220.866e5f8ef6dd53cc1146.chunk.js.map",
+ "749.chunk.js.map": "/749.8ce93b3d6d67d600e8c8.chunk.js.map",
+ "7519.chunk.js.map": "/7519.8a99c6b9370779196847.chunk.js.map",
+ "6121.chunk.js.map": "/6121.8c25bb62d82381e90df8.chunk.js.map",
+ "3584.chunk.js.map": "/3584.7b6df71f431fe58061ad.chunk.js.map",
+ "8323.css.map": "/8323.e22de33686bb2f34063c.css.map",
+ "8323.chunk.js.map": "/8323.61daef62d0036dd19dbf.chunk.js.map",
+ "5709.chunk.js.map": "/5709.6fc5fd48f639100fa6ad.chunk.js.map",
+ "3731.chunk.js.map": "/3731.40bfabd5c5a12309b1a9.chunk.js.map",
+ "1396.chunk.js.map": "/1396.3ea7b55a3bffeef95530.chunk.js.map",
+ "5794.chunk.js.map": "/5794.719f2daca8b8f3a118fe.chunk.js.map",
+ "7208.chunk.js.map": "/7208.3c255b9641ab4d451747.chunk.js.map",
+ "6323.chunk.js.map": "/6323.425683f5bf71a51caf65.chunk.js.map",
+ "2414.chunk.js.map": "/2414.38b580f70a86a4f94b83.chunk.js.map",
+ "9473.chunk.js.map": "/9473.3693c06a873280f11bd6.chunk.js.map",
+ "9297.chunk.js.map": "/9297.394c9cbf0a1e402384a6.chunk.js.map",
+ "9510.chunk.js.map": "/9510.58c95eb5f0290291b5a9.chunk.js.map",
+ "6008.chunk.js.map": "/6008.07f03fb5dba476a12f91.chunk.js.map",
+ "1875.chunk.js.map": "/1875.e736e046980cb8eb4cda.chunk.js.map",
+ "7410.chunk.js.map": "/7410.cb47519a7a5187208b28.chunk.js.map"
+} \ No newline at end of file
diff --git a/src/web/gui/v2/app.7443b231e52789baa643.js b/src/web/gui/v2/app.7443b231e52789baa643.js
new file mode 100644
index 000000000..bddafbcc3
--- /dev/null
+++ b/src/web/gui/v2/app.7443b231e52789baa643.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af54ee50-c617-4bad-8dc6-577f359d06a0",e._sentryDebugIdIdentifier="sentry-dbid-af54ee50-c617-4bad-8dc6-577f359d06a0")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3524],{80158:(e,t,a)=>{"use strict";a.d(t,{P3:()=>r,QU:()=>s,Vn:()=>i,Yv:()=>c,Zr:()=>o});a(25440);var n=a(86263);const r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return(0,n.default)(e,t)},o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const t=arguments.length>1&&void 0!==arguments[1]&&arguments[1]?e.toLowerCase():e;return t.charAt(0).toUpperCase()+t.slice(1)},i=e=>e.replace(/([a-z])([A-Z])/g,"$1 $2"),s=e=>e.replace(/([^:]\/)\/+/g,"$1"),c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e=e.trim(),e=e.replace(/\s+/g,"-"),e=e.replace(/[^a-zA-Z0-9-]/g,""),e=e.toLowerCase(),e}},63314:(e,t,a)=>{"use strict";a.d(t,{K_:()=>s,DL:()=>m,_0:()=>d,Ay:()=>g});a(3064),a(98992),a(72577),a(62953);var n=a(96540),r=a(50876),o=a(58168);var i=a(67276);const s=(0,n.createContext)({}),c={allowLogInvisible:!0},l=e=>{let{children:t,logImpression:a=!0,options:o={},delay:l=750,...d}=e;const u={...c,...o},m=(0,n.useContext)(s),[g,p]=(0,n.useState)(),h=(0,n.useRef)(),v=(0,n.useRef)(),{sendLog:f,isReady:A}=(0,r.A)(),y=(0,n.useCallback)((e=>{const t=e[0];t&&g!==t.isIntersecting&&p(t.isIntersecting)}),[]),b=(0,n.useCallback)((()=>{var e;const t=new IntersectionObserver(y,{root:null,rootMargin:"0px",threshold:.5}),a=null===h||void 0===h||null===(e=h.current)||void 0===e?void 0:e.childNodes,n=Array.from(a||[]).find((e=>null!==e.offsetParent));n&&t.observe(n)}),[null===h||void 0===h?void 0:h.current]);return(0,n.useEffect)((()=>{u.allowLogInvisible||b()}),[u.allowLogInvisible]),(0,n.useEffect)((()=>{let e=!0,t=null;const n={action:i.o1.elementViewed,...m,...d};return A&&(null===v||void 0===v?void 0:v.current)!==JSON.stringify(n)&&a&&(u.allowLogInvisible||g)&&(t=setTimeout((()=>{e&&(f(n),v.current=JSON.stringify(n))}),l)),()=>{e=!1,t&&(clearTimeout(t),t=null)}}),[A,a,g,d]),n.createElement(s.Consumer,null,(e=>n.createElement(s.Provider,{value:{...e,...d}},n.createElement("div",{ref:h,style:{display:"contents"}},t))))},d=(u=l,e=>n.createElement(u,(0,o.A)({},e,{isSuccess:!0})));var u;const m=(e=>t=>n.createElement(e,(0,o.A)({},t,{isFailure:!0})))(l),g=l},67276:(e,t,a)=>{"use strict";a.d(t,{KI:()=>n,lO:()=>r,mu:()=>s,o1:()=>i,yq:()=>o});const n={success:"success",fail:"failure"},r={visitor:"visitor"},o={sequence:"telemetrySequence",session:"telemetrySessionId"},i={elementViewed:"element-viewed",buttonClicked:"button-clicked"},s={start:"start",end:"end"}},50876:(e,t,a)=>{"use strict";a.d(t,{A:()=>y});a(62953);var n=a(96540),r=a(63950),o=a.n(r),i=a(37618),s=a(26655);var c,l=a(3914),d=a(63314),u=a(35600),m=a(75542);const g="undefined"!==typeof process&&!(null===(c=process)||void 0===c||null===(c=c.env)||void 0===c||!c.JEST_WORKER_ID);var p=a(69418),h=a(67276),v=a(67990),f=a(88982),A=a(47762);const y=()=>{if(g)return{sendLog:o(),isReady:!0};const{isAnonymous:e,...t}=(0,m.A)(),a=(0,l.vt)(),r=(0,n.useContext)(d.K_),[,c,y]=(0,p.A)(),b=t.id&&(!c||e),S=(0,f.n)("id"),k=(0,v.gr)(S,"ids"),w=(0,A.BU)(k),I=(0,A.Ig)(k),E=(0,A.GE)(k),x=(0,A.no)(k),C=(0,n.useCallback)(((e,n)=>{var o,c;const l={...n?{...r}:{},...e},{feature:d,action:m,isStart:g,isSuccess:p,isFailure:v,eventReason:f,...A}=l;return(e=>s.A.post("/api/v1/telemetry/push",e))({"@timestamp":(new Date).toISOString(),labels:{...A,...window.localNetdataRegistry?{...window.localNetdataRegistry.mg?{machine:window.localNetdataRegistry.mg}:{},...window.localNetdataRegistry.nd?{nodeId:window.localNetdataRegistry.nd}:{}}:{}},event:{action:m,sequence:(0,u.Il)(),provider:i.Ay?"agent":"app",...p||v?{outcome:p?h.KI.success:h.KI.fail}:{},...g?{type:[h.mu.start]}:p||v?{type:[h.mu.end]}:{},...f?{reason:f}:{}},user:t,url:{full:null===(o=window)||void 0===o||null===(o=o.location)||void 0===o?void 0:o.href},Netdata:{...a?{space:{id:a}}:{},statistics:{nodes:{total:i.Ay?1:y,...i.Ay?{}:{live:(w||[]).length,stale:(I||[]).length,offline:(E||[]).length,created:(x||[]).length}}},telemetry:{feature:d,session:{id:(0,u.u0)()},visitor:{id:null===(c=window.envSettings)||void 0===c?void 0:c.visitor}}}}).catch((e=>{"production"!==window.envSettings.nodeEnv&&(console.groupCollapsed("[Netdata telemetry error]"),console.warn(e),console.groupEnd())}))}),[t,e,y,c,a,b]),T=(0,n.useCallback)(((e,t)=>C({action:h.o1.buttonClicked,...e},t)),[]);return{sendLog:C,sendButtonClickedLog:T,isReady:b}}},75542:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});a(25440);var n=a(96540),r=a(22292),o=a(37618);const i=()=>{const{id:e,email:t,isAnonymous:a}=(0,r.uW)();return(0,n.useMemo)((()=>{var n,r,i;return{id:a?(null===(n=window.localNetdataRegistry)||void 0===n?void 0:n.pg)||window.envSettings.visitor:e||"",email:a?void 0:t,domain:a?(null===(r=window.localNetdataRegistry)||void 0===r?void 0:r.registry)||"localhost":o.Ay?((null===(i=window.envSettings)||void 0===i?void 0:i.apiUrl)||"").replace(/^https:\/\//,""):location.host,isAnonymous:a}}),[e,t,a])}},35600:(e,t,a)=>{"use strict";a.d(t,{Il:()=>o,u0:()=>i,y:()=>s});a(9920),a(98992),a(3949);var n=a(67276),r=a(33829);const o=()=>{var e,t;const a=n.yq.sequence,r=parseInt((null===(e=window.sessionStorage)||void 0===e?void 0:e.getItem(a))||0,10);return null===(t=window.sessionStorage)||void 0===t||t.setItem(a,r+1),r},i=()=>(sessionStorage.getItem(n.yq.session)||sessionStorage.setItem(n.yq.session,(0,r.A)()),sessionStorage.getItem(n.yq.session)||""),s=()=>{Object.values(n.yq).forEach((e=>sessionStorage.removeItem(e)))}},21290:(e,t,a)=>{"use strict";a.d(t,{$j:()=>g,ii:()=>u});var n=a(96540),r=a(87991),o=a(38819),i=a(82838);const s=!!(Intl&&Intl.DateTimeFormat&&navigator.language),c=e=>"number"===typeof e?new Date(e):e,l=e=>(e=c(e))?(0,r.GP)(e,"MM/dd/yyyy"):"",d=e=>(e=c(e))?(0,r.GP)(e,"HH:mm"):"",u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new Date(new Date(e).getTime()+60*parseInt(t)*60*1e3)},m=(e,t)=>{let{locale:a,...n}=t;return new Intl.DateTimeFormat(null!==a&&void 0!==a?a:navigator.language,(e=>{let{long:t,isTime:a,secs:n,timezone:r,...o}=e;return{hourCycle:"h23",...a?{}:t?{weekday:"short",year:"numeric",month:"short",day:"2-digit"}:{dateStyle:"short"},...a&&{timeStyle:n?"medium":"short"},timeZone:r,...o}})(n)).format(e)},g=()=>{const{utc:e,offset:t}=(()=>{let{utc:e}=(0,o.PP)();return(0,i.M)("default",e)})();return{localeDateString:(0,n.useMemo)((()=>s?(t,a)=>m(t,{long:!0,timezone:e,...a}):l),[e]),localeTimeString:(0,n.useMemo)((()=>s?(t,a)=>m(t,{secs:!0,isTime:!0,timezone:e,...a}):d),[e]),utcOffset:t}}},65570:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>o,pb:()=>n});a(74648),a(17333),a(98992),a(23215),a(54520);const n=(e,t)=>{let{omit:a=[],keep:n=[]}=t;return a.length||n.length?e.filter((e=>n.length?n.includes(e):!a.includes(e))):e},r=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;const o=n(Object.keys(e),a),i=n(Object.keys(t),a);if(o.length!==i.length)return!1;const s=Object.prototype.hasOwnProperty.bind(t);return o.every((a=>!!s(a)&&r(e[a],t[a])))},o=r},64454:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});a(14905),a(98992),a(8872),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(65570);const r=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e===t||"object"!==typeof e||null===e||"object"!==typeof t||null===t?t:Array.isArray(t)?((e,t,a)=>{const o=(0,n.pb)(e,a);return o.reduce(((e,t,n)=>(e.push(r(t,o[n],a)),e)),[])})(e,0,a):((e,t,a)=>{const o=(0,n.pb)([...new Set([...Object.keys(e),...Object.keys(t)])],a),i=Object.prototype.hasOwnProperty.bind(t);return o.reduce(((n,o)=>(i(o)?n[o]=r(e[o],t[o],a):n[o]=e[o],n)),{})})(e,t,a)},o=r},38819:(e,t,a)=>{"use strict";a.d(t,{PP:()=>d,Pg:()=>h,W6:()=>p,Z8:()=>g,yq:()=>m});a(41393),a(14905),a(98992),a(81454),a(8872),a(62953);var n=a(49870),r=a.n(n),o=a(55364),i=a.n(o),s=a(90179),c=a.n(s);const l=/[&;]/,d=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:decodeURIComponent(window.location.hash.substr(1));if(0===e.length)return{};return e.split(l).reduce(((e,t)=>{const a=t.indexOf("=");if(-1!==a){e[t.substring(0,a)]=t.substring(a+1)}return e}),{})},u=e=>{const t=Object.entries(e);return 0===t.length?"":t.map((e=>{let[t,a]=e;return"".concat(t,"=").concat(encodeURIComponent(a))})).join("&")},m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1));const a=c()(d(t),e);return u(a)},g=(r()([d,u]),e=>{const t=d();i()(t,e);const a="#".concat(u(t)),n=history.state;location.hash=a,history.replaceState(n,"",a)}),p=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1));return d(t)[e]},h=e=>{history.replaceState(history.state,"","#".concat(m(e)))}},63457:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(77783),r=a(63950),o=a.n(r);const i=86400,s=e=>{if(!e)throw new Error("Please pass a name for the idb store");const t=(0,n.y$)(e,"".concat(e,"-cache")),a=(e,a)=>(0,n.hZ)(e,(e=>({value:e,timestamp:Date.now()}))(a),t).catch(o());return{store:t,set:a,get:function(e){let r,{fetch:s,maxAge:c=i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const l=(0,n.Jt)(e,t).then((t=>{const n=1e3*c;return t&&t.timestamp+n>Date.now()?t.value:s?(r=s(),r.then((t=>(a(e,t),t)))):null})).catch(o());return l.abort=()=>r&&r.abort(),l},clear:()=>(0,n.IU)(t).catch(o()),del:e=>(0,n.yH)(e,t).catch(o())}}},37618:(e,t,a)=>{"use strict";a.d(t,{mz:()=>S,LA:()=>b,hq:()=>v,gB:()=>h,yu:()=>p,Z2:()=>g,z0:()=>m,Ay:()=>k,kG:()=>f,I:()=>l,tB:()=>y,ES:()=>A,y7:()=>d,sA:()=>u});a(25440);var n=a(38280),r=a(80158);var o,i,s;const c=(null===(o=window.envSettings)||void 0===o?void 0:o.isAgent)||!1,l=()=>{var e,t,a;return c&&!(null!==(e=window.localNetdataAgent)&&void 0!==e&&e.cloudEnabled||"disabled"!==(null===(t=window.localNetdataRegistry)||void 0===t?void 0:t.cloudStatus)&&"unavailable"!==(null===(a=window.localNetdataRegistry)||void 0===a?void 0:a.cloudStatus)||localStorage.getItem("netdataJWT"))},d=/\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud)\/?.*/,u=c?window.location.pathname.replace(d,""):"/",m=(0,r.Yv)((null===(i=window.localNetdataRegistry)||void 0===i?void 0:i.hostname)||"agent"),g=(null===(s=window.localNetdataRegistry)||void 0===s?void 0:s.mg)||"agent",p={createdAt:"",description:"",iconURL:"",id:g,error:null,loaded:!0,name:m,slug:m,permissions:{"user:ChangeName":"user:ChangeName","user:ChangeTheme":"user:ChangeTheme","user:ChangeEmailSetting":"user:ChangeEmailSetting","user:ChangeSpaceRoomNotifications":!1,"user:AddAPIToken":"user:AddAPIToken","user:DeleteAPIToken":"user:DeleteAPIToken","user:ReplaceAPIToken":"user:ReplaceAPIToken","user:UpdateVisitedNodes":"user:UpdateVisitedNodes","space:Read":"space:Read","space:UpdateMeta":"space:UpdateMeta","room:ReadUsers":"room:ReadUsers","room:ReadAll":"room:ReadAll","room:Read":"room:Read","dashboard:ReadAll":"dashboard:ReadAll","dashboard:Update":"dashboard:Update","dashboard:UpdateSelf":"dashboard:UpdateSelf","dashboard:Create":"dashboard:Create","dashboard:Delete":"dashboard:Delete","dashboard:DeleteSelf":"dashboard:DeleteSelf","chart:AddToDashboard":"chart:AddToDashboard","alert:ReadAll":"alert:ReadAll","function:ReadAll":"function:ReadAll","function:ExecAll":"function:ExecAll","function:Exec":"function:Exec","function:ExecPrivileged":"function:ExecPrivileged","feed:ReadBasic":"feed:ReadBasic","feed:ReadManagement":"feed:ReadManagement","billing:ReadAll":"billing:ReadAll","billing:ReadBasic":"billing:ReadBasic","visitedNodes:Update":"visitedNodes:Update","visitedNodes:ReadAll":"visitedNodes:ReadAll","agent:ReadDynCfg":"agent:ReadDynCfg","agent:EditDynCfg":"agent:EditDynCfg","agent:EditNotificationsConfig":"agent:EditNotificationsConfig","agent:ViewNotificationsConfig":"agent:ViewNotificationsConfig"}},h="local",v={...n.A,id:h,slug:h,name:h,loaded:!0,fullyLoaded:!0,spaceId:g,untouchable:!1},f="overview",A=e=>c&&e===g,y=e=>c&&e===h,b="local-custom-dashboard",S={id:b,isOwner:!0,name:b,slug:b,snapshot:{cards:{},containerIds:[],containers:{},layout:{}},version:0},k=c},39225:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(96540);const r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const a="refreshed-after-lazy-import",r=t?"".concat(t,"-").concat(a):a;return(0,n.lazy)((async()=>{const t=JSON.parse(window.sessionStorage.getItem(r)||"false");try{const t=await e();return window.sessionStorage.setItem(r,"false"),t}catch(a){if(!t)return window.sessionStorage.setItem(r,"true"),window.location.reload();throw a}}))}},49286:(e,t,a)=>{"use strict";a.d(t,{Ds:()=>g,Jz:()=>u,bn:()=>m});a(25440),a(41393),a(14905),a(98992),a(81454),a(8872);const n=e=>e.replace(/([A-Z])/g,"_$1").toLowerCase(),r=e=>e.replace(/([_][a-z])/g,(e=>e[1].toUpperCase())),o=e=>e.replace(/([\s\-_][a-z])/g,(e=>e[1].toUpperCase())),i=[],s=(e,t,a)=>({...e,[n(t)]:a}),c=(e,t,a)=>({...e,[r(t)]:a}),l=(e,t,a)=>({...e,[o(t)]:a}),d=(e,t)=>{let{func:a,action:n,omit:r=i,depth:o=0}=t;return o-=1,o?Array.isArray(e)?e.map((e=>a(e,{omit:r}))):"object"===typeof e&&e?Object.keys(e).reduce(((t,o)=>{if(r.includes(o))return{...t,[o]:e[o]};const i=a(e[o],{omit:r});return n(t,o,i)}),{}):e:e},u=function(e){let{omit:t,depth:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return d(e,{func:u,action:s,omit:t,depth:a})},m=function(e){let{omit:t,depth:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return d(e,{func:m,action:c,omit:t,depth:a})},g=function(e){let{omit:t,depth:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return d(e,{func:g,action:l,omit:t,depth:a})}},26655:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});a(62953);var n=a(46266),r=a(68831),o=a(37618),i=(a(25440),a(80158));const s=(e,t,a)=>{const n=a.includes("join-callback")?a:encodeURIComponent(a);return"".concat(t).concat(t?"&":"?","cloudRoute=").concat(e).concat(n)},c=e=>(t,a)=>{try{if(/text\/plain/.test(a.getContentType()))throw{errorMessage:t};const n=JSON.parse(t||"{}");if(n.errorMsgKey)throw n;return e?e(n):n}catch(n){return n}},l=e=>e,d=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(e=>function(){for(var t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];const r=e(...a),c=r.catch((e=>{var t,n;if(401!==(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.status)||null!==e&&void 0!==e&&null!==(n=e.config)&&void 0!==n&&n.allow401)throw e;if(o.Ay){const t=window.location.origin+window.location.pathname.replace(o.y7,"");if(a[1].baseURL===window.envSettings.agentApiUrl)throw e;return void(window.location.href=(0,i.QU)("".concat(window.envSettings.cloudUrl,"/trust?redirect_uri=").concat(encodeURIComponent(window.location.href),"&agent_uri=").concat(encodeURIComponent(t||window.envSettings.agentApiUrl))))}const{pathname:r,search:c,hash:l}=window.location;if(!/(sign-(in|up)|join-space)/.test(r))return window.location.replace((0,i.QU)("".concat(o.Ay?window.envSettings.cloudUrl:"","/sign-in").concat(s(r,c,l))))}));return c.cancel=r.cancel,c})((function(a){for(var i,s,d,u=arguments.length,m=new Array(u>1?u-1:0),g=1;g<u;g++)m[g-1]=arguments[g];const[p,h={}]=t?m:[null,m[0]],v=n.A.CancelToken.source(),{transform:f=l,validateStatus:A=(e=>e<300||304===e)}=h,y=localStorage.getItem("netdataJWT"),b=null===(i=window.localNetdataRegistry)||void 0===i?void 0:i.mg,S=localStorage.getItem("agentJWT:".concat(b)),k=h.baseURL||r.A.apiBaseURL||"",w=((a,r)=>t?n.A[e](a,p,r):n.A[e](a,r))(a,{validateStatus:A,...h,baseURL:k,transformResponse:[c(f)],cancelToken:v.token,...(!!y||!!S)&&{headers:{...null===h||void 0===h?void 0:h.headers,.../netdata\.cloud/.test(k)&&{Authorization:"Bearer ".concat(y)},...k===window.envSettings.agentApiUrl&&S&&"undefined"!==S&&(null!==(s=window.localNetdataRegistry)&&void 0!==s&&s.xNetdataAuthHeader?{"X-Netdata-Auth":"Bearer ".concat(S)}:{Authorization:"Bearer ".concat(S)})}}}),I=w.catch((e=>{throw e.isCancel=n.A.isCancel(e),e}));I.cancel=()=>v.cancel();const E=null===(d=a.match(/\/spaces\/(.+?)\//))||void 0===d?void 0:d[1];return(0,o.ES)(E)&&I.cancel(),I}))},u={get:d("get"),post:d("post",!0),patch:d("patch",!0),put:d("put",!0),delete:d("delete")}},94355:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n=e=>{if(!e.response){const t=500,a=e.message||"Something went wrong";return{errorCode:t,errorMessage:a,errorMsgKey:t,status:t,statusText:a}}const{data:{errorCode:t,errorMessage:a,errorMsgKey:n},status:r,statusText:o}=e.response;return{errorCode:t,errorMessage:a,errorMsgKey:n,status:r,statusText:o}}},79731:(e,t,a)=>{"use strict";a.d(t,{o:()=>r});a(71517),a(11379),a(93777),a(14190),a(12359),a(86097),a(17273),a(27415),a(19929),a(37583),a(55122),a(20230),a(57268),a(79733),a(62953);const n=new Map([["ErrParsingRequestBody","Bad Request"],["ErrUntrustedRedirectURI","Untrusted Redirect URI"],["ErrInternalServerError","Internal Server Error"],["ErrUnauthenticated","User Not Authenticated"],["ErrInvalidLastUpdatedRange","Invalid Time Selection"],["ErrForbidden","Forbidden"],["ErrInvalidEmail","Invalid E-mail"],["ErrInvalidRedirectURI","Invalid Redirect URI"],["ErrMissingStateCookie","Missing Authentication Cookie"],["ErrIncorrectChallengeResponse","Incorrect Response"],["ErrAccountDeleted","Account Deleted!"],["ErrInvalidAccountID","Invalid Account ID"],["ErrVisitedNodeNotFound","Node Not Found"],["ErrAccountIsTheLastMemberOfAPaidSpace","Cannot delete account"],["ErrWworkspaceSlugTaken","Space Slug Unavailable"],["ErrInvalidWorkspaceName","Bad Space Name"],["ErrNotWorkspaceMember","User is not a Space member"],["ErrInvalidWorkspaceID","Invalid Space ID"],["ErrWorkspaceNotFound","No Space Found"],["ErrSpaceSlugTaken","Space Slug Unavailable"],["ErrInvalidSpaceName","Invalid Space Name"],["ErrNotSpaceMember","Not a Space Member"],["ErrForbiddenNotAdmin","Not a Space Admin"],["ErrLastSpaceAdmin","Last Admin In Space"],["ErrLastSpaceMember","Last Member In Space"],["ErrInvalidSpaceID","Bad Space ID"],["ErrInvalidMemberID","Bad Member ID"],["ErrForbiddenNotMember","Not a Member"],["ErrMissingMemberIDs","No Member IDs Given"],["ErrSpaceNotFound","Space Not Found"],["ErrSpaceMemberNotFound","Space Member Not Found"],["ErrMissingTokenIDs","Token ID Not Found"],["ErrCannotDeleteCurrentToken","You cannot delete the token in use for this session"],["ErrInvalidRole","Invalid Member Role"],["ErrCannotLeaveSpace","Cannot Leave Space"],["ErrInvalidSpaceDescription","Invalid Space Description"],["ErrInvalidEmailDomain","Invalid Email Domain"],["ErrCanNotDeletePaidSpace","Cannot delete paid space"],["ErrAgentCanceledBigResponse","Agent's response is too big"],["ErrAgentExpired","Agent is overloaded"],["ErrAgentTimeout","Timeout waiting agent response"],["ErrAlreadyClaimed","Node Already Claimed"],["ErrContextNotFound","Node doesn't have the requested context"],["ErrInternal","Internal server error"],["ErrInvalidNodeID","Invalid Node ID"],["ErrMissingNodeIDs","No Node IDs Given"],["ErrNoData","Node doesn't have data for the requested period"],["ErrNodeNotFound","Node Not Found"],["ErrNodeUnreachable","Unreachable Node"],["ErrUnreachable","Node is unreachable"],["ErrNodeInstanceNotFound","Node doesn't exist on Netdata"],["ErrRoomNameExist","Room Name Already Exists"],["ErrInvalidRoomName","Invalid Room Name"],["ErrRoomNotFound","Room Not Found"],["ErrInvalidRoomID","Invalid Room ID"],["ErrRoomNameTaken","Room Name Unavailable"],["ErrContextNotFound","Context Not Found"],["ErrNodeContextNotFound","Metric Context Not Found"],["ErrInvalidContextID","Invalid Metric Context ID"],["ErrForbiddenNotRoomMember","Not a Room Member"],["ErrUntouchableRoom","Room Cannot Be Changed"],["ErrRoomCannotBeDefault","Private Room Cannot Be Set As Default"],["ErrInvalidRoomDescription","Invalid Room Description"],["ErrRoomMemberAlreadyExists","Member Already Exists In Room"],["ErrAllowedMembersIncreased","Space member limit"],["ErrPendingInvitationsLimitReached","Pending invitations limit"],["ErrSpaceMembersLimitReached","Space member limit"],["ErrCardDeclined","Card declined"],["Network Error","No internet connection"],["Timeout","Timeout"],["default","Something went wrong"]]),r=e=>{if(!e)return;return n.has(e)?n.get(e):n.get("default")}},33222:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});const n=36e5,r=function(e){const t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date)-e;if(t<0)return"0 seconds ago";const a=Math.floor(t/864e5);if(a>1)return"".concat(a," days ago");const r=Math.floor(t/n);if(r>0)return"".concat(r," hours ago");const o=Math.floor(t/6e4);if(o>1)return"".concat(o," mins ago");const i=Math.floor(t/1e3);return"".concat(i," seconds ago")}},27229:(e,t,a)=>{"use strict";a.d(t,{W:()=>n});const n=e=>e.messages&&e.messages.length>0?e.messages[0]:void 0},80542:(e,t,a)=>{"use strict";a.d(t,{H:()=>n,k:()=>r});a(14905),a(98992),a(8872),a(62953);const n=(e,t)=>({isValid:e,message:t});function r(e){return Array.isArray(e)?t=>{return e.reduce((a=t,(e,t)=>{const{isValid:n,message:r}=t(a);if(n)return e;const{messages:o=[]}=e;return{isValid:n,messages:[...o,r]}}),{isValid:!0});var a}:(t=e,e=>{const{isValid:a,message:n}=t(e);return n?{isValid:a,messages:[n]}:{isValid:a}});var t}},44554:(e,t,a)=>{"use strict";a.d(t,{GN:()=>o,Hp:()=>r,Pe:()=>u,Su:()=>l,bj:()=>c,lc:()=>v,oE:()=>m});a(17333),a(3064),a(14905),a(98992),a(54520),a(72577),a(8872),a(62953);const n=!1,r=e=>e.reduce(((e,t)=>t.top+t.height>e?t.top+t.height:e),0),o=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!Array.isArray(e)){if(!a)return;return Object.keys(e||{}).reduce(((a,n)=>a||e[n].find((e=>e.id===t))),null)}return e.find((e=>e.id===t))},i=(e,t)=>e.id!==t.id&&(!(e.left+e.width<=t.left)&&(!(e.left>=t.left+t.width)&&(!(e.top+e.height<=t.top)&&!(e.top>=t.top+t.height)))),s=(e,t)=>e.find((e=>i(e,t))),c=(e,t)=>"horizontal"===t?(e=>e.slice(0).sort((function(e,t){return e.left>t.left||e.left===t.left&&e.top>t.top?1:-1})))(e):"vertical"===t?(e=>e.slice(0).sort((function(e,t){return e.top>t.top||e.top===t.top&&e.left>t.left?1:-1})))(e):e,l=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce(((e,t)=>[...e,{...t}]),[])},d=(e,t,a,n,r,o)=>{const i="horizontal"===r,c="vertical"===r,l=t.static;if(n){n=!1;const d={left:i?Math.max(t.left-a.width,0):a.left,top:c?Math.max(t.top-a.height,0):a.top,width:a.width,height:a.height,id:"-1"},m=s(e,d),g=m&&m.top+m.height>t.top,p=m&&t.left+t.width>m.left;if(!m)return u(e,a,i?d.left:void 0,c?d.top:void 0,n,l,r,o);if(g&&c)return u(e,a,void 0,t.top+1,n,l,r,o);if(g&&null==r)return t.top=a.top,a.top=a.top+a.height,e;if(p&&i)return u(e,t,a.left,void 0,n,l,r,o)}const d=i?a.left+1:void 0,m=c?a.top+1:void 0;return null==d&&null==m?e:u(e,a,i?a.left+1:void 0,c?a.top+1:void 0,n,l,r,o)},u=(e,t,a,r,o,s,u,m,g)=>{if(t.static)return e;if(t.top===r&&t.left===a)return e;const p=t.left,h=t.top;"number"===typeof a&&(t.left=a),"number"===typeof r&&(t.top=r),t.moved=!0;let v=c(e,u);("vertical"===u&&"number"===typeof r?h>=r:"horizontal"===u&&"number"===typeof a&&p>=a)&&(v=v.reverse());const f=((e,t)=>e.filter((e=>i(e,t))))(v,t),A=f.length>0;if(A&&g)return l(e);if(A&&s)return t.left=p,t.top=h,t.moved=!1,e;for(let i=0,c=f.length;i<c;i++){const a=f[i];n,a.moved||(e=a.static?d(e,a,t,o,u,m):d(e,t,a,o,u,m))}return e},m=(e,t,a,n)=>{const r=e.filter((e=>e.static)),o=c(e,t),i=Array(e.length);for(let s=0,c=o.length;s<c;s++){let c={...o[s]};c.static||(c=h(r,c,t,a,o,n),r.push(c)),i[e.indexOf(o[s])]=c,c.moved=!1}return i},g={left:"width",top:"height"},p=(e,t,a,n)=>{const r=g[n];t[n]+=1;for(let o=e.findIndex((e=>e.id===t.id))+1;o<e.length;o++){const s=e[o];if(!s.static){if(s.top>t.top+t.height)break;i(t,s)&&p(e,s,a+t[r],n)}}t[n]=a},h=(e,t,a,n,o,i)=>{const c="horizontal"===a;if("vertical"===a)for(t.top=Math.min(r(e),t.top);t.top>0&&!s(e,t);)t.top--;else if(c)for(;t.left>0&&!s(e,t);)t.left--;let l;for(;(l=s(e,t))&&(null!==a||!i)&&"undefined"!==typeof(null===(d=l)||void 0===d?void 0:d.width);){var d;if(c?p(o,t,l.left+l.width,"left"):p(o,t,l.top+l.height,"top"),c&&t.left+t.width>n)for(t.left=n-t.width,t.top++;t.left>0&&!s(e,t);)t.left--}return t.top=Math.max(t.top,0),t.left=Math.max(t.left,0),t.width=t.width>n?n:t.width,t},v=e=>{let{minWidth:t,minHeight:a,...n}=e;return n}},60247:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var n=a(58168),r=a(96540),o=a(62061),i=a(6504),s=a(22332),c=a(46741);const l=e=>{var t;let{iconWidth:a="14px",iconHeight:l="14px",...d}=e;const u=(0,c.JT)("dashboard:Update"),m=(0,s.useAttributeValue)("toolboxProps");return r.createElement(i.Button,(0,n.A)({icon:r.createElement(i.default,{svg:o.default,width:a,height:l}),title:"Drag & drop","data-testid":"chartHeaderToolbox-drag",disabled:!u,cursor:null!==(t=m.drag)&&void 0!==t&&t.dragging?"grabbing":"grab"},m.drag||{},d))},d=(0,r.memo)(l)},4659:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(58168),r=a(96540),o=a(84976),i=a(8711),s=a(10058),c=a(29217);const l={default:{initial:"primary",visited:"accent",hover:"primary"},tableLink:{initial:"text",visited:"text",hover:"primary"}},d=e=>(0,i.default)(e).withConfig({displayName:"anchor__withAnchor",componentId:"sc-oaxxs6-0"})(["",""],(e=>{let{disabled:t,color:a,hoverColor:n,disabledColor:r,visitedColor:o,theme:i,flavour:c="default"}=e;return t?(e=>{var t,a,n;let{disabledColor:r,color:o,theme:i,flavour:c,visitedColor:d}=e;return"\n color: ".concat((0,s.getColor)(r||o||(null===(t=l[c])||void 0===t?void 0:t.initial))({theme:i}),";\n ").concat(r?"":"opacity: 0.4;","\n pointer-events: none;\n\n & > svg > use {\n fill: ").concat((0,s.getColor)(r||o||(null===(a=l[c])||void 0===a?void 0:a.initial))({theme:i}),";\n }\n \n &:visited {\n color: ").concat((0,s.getColor)(d||r||o||(null===(n=l[c])||void 0===n?void 0:n.visited))({theme:i}),";\n }\n")})({disabledColor:r,color:a,theme:i,flavour:c}):(e=>{var t,a,n,r,o,i;let{color:c,theme:d,hoverColor:u,visitedColor:m,flavour:g}=e;return"\n color: ".concat((0,s.getColor)(c||(null===(t=l[g])||void 0===t?void 0:t.initial))({theme:d}),";\n & > svg > use {\n fill: ").concat((0,s.getColor)(c||(null===(a=l[g])||void 0===a?void 0:a.initial))({theme:d}),";\n }\n &:hover {\n color: ").concat((0,s.getColor)(u||(null===(n=l[g])||void 0===n?void 0:n.hover))({theme:d})," !important;\n & > svg > use {\n fill: ").concat((0,s.getColor)(u||(null===(r=l[g])||void 0===r?void 0:r.hover))({theme:d})," !important;\n }\n }\n &:visited {\n color: ").concat((0,s.getColor)(m||c||(null===(o=l[g])||void 0===o?void 0:o.visited))({theme:d}),";\n & > svg > use {\n fill: ").concat((0,s.getColor)(m||c||(null===(i=l[g])||void 0===i?void 0:i.visited))({theme:d}),";\n }\n }\n cursor:pointer\n")})({color:a,theme:i,hoverColor:n,visitedColor:o,flavour:c})})),u=d("a"),m=d((0,r.forwardRef)(((e,t)=>{let{alignItems:a,disabledColor:i,color:s,flavour:c,hoverColor:l,visitedColor:d,gap:u,strong:m,...g}=e;return r.createElement(o.N_,(0,n.A)({ref:t},g))}))),g=e=>e.preventDefault(),p=(h=e=>{let{Component:t=s.Text,as:a="a",disabled:o,onClick:i,to:c,href:l,isBasic:d,...p}=e;return r.createElement(t,(0,n.A)({as:"a"===a?u:m,disabled:o,onClick:o?g:i},c&&!o&&{to:c},l&&!o&&{href:l},p))},e=>{let{boxProps:t,showToolTip:a,content:n,align:o,isBasic:i,...l}=e;return a?r.createElement(c.A,{plain:!0,content:n,align:o,isBasic:i},r.createElement(s.Box,t,r.createElement(h,l))):r.createElement(h,l)});var h},24266:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>u,H4:()=>s,Xc:()=>d});var n=a(41358),r=a(96540),o=a(10058),i=a(4659);const s=e=>{let{title:t="Oops, something unexpected happened!",message:a=""}=e;return r.createElement(o.Flex,{alignItems:"center",justifyContent:"center","data-testid":"error-boundary",flex:!0},r.createElement(o.Flex,{flex:!0,column:!0,alignItems:"center",gap:4,width:{max:115}},r.createElement(o.H3,null,t),!!a&&r.createElement(o.Text,null,a),r.createElement(o.Text,null,"We track these errors automatically, but if the problem persists feel free to contact us with a"," ",r.createElement(i.A,{href:"https://github.com/netdata/netdata-cloud/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},"ticket"),", a"," ",r.createElement(i.A,{href:"https://community.netdata.cloud/",target:"_blank",rel:"noopener noreferrer"},"post in the forum")," ","or through"," ",r.createElement(i.A,{href:"https://discord.com/invite/mPZ6WZKKG2",target:"_blank",rel:"noopener noreferrer"},"Discord"),"."),r.createElement(o.Text,null,"In the meantime you can refresh this page"),r.createElement(o.Button,{label:"Refresh",icon:"refresh",onClick:()=>window.location.reload(),"data-ga":"error-boundary::click-reload::reload-on-error","data-testid":"error-boundary-reload"})))};class c extends r.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0}}componentDidCatch(e,t){console.log(e,t)}render(){return this.state.hasError?r.createElement(s,null):this.props.children}}class l extends n.tH{}l.defaultProps={fallback:s};const d=e=>{const t=window.envSettings.tracking?l:c;return a=>r.createElement(t,{fallback:s},r.createElement(e,a))},u=l},82838:(e,t,a)=>{"use strict";a.d(t,{M:()=>c,O:()=>i});a(25440),a(9920),a(14905),a(98992),a(3949),a(8872),a(62953);const n=[{value:"Dateline Standard Time",abbr:"DST",text:"International Date Line West",utc:["Etc/GMT+12"]},{value:"UTC-11",abbr:"U",text:"Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{value:"Hawaiian Standard Time",abbr:"HST",text:"Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{value:"Alaskan Standard Time",abbr:"AKDT",text:"Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{value:"Pacific Standard Time (Mexico)",abbr:"PDT",text:"Baja California",utc:["America/Santa_Isabel"]},{value:"Pacific Standard Time",abbr:"PST",text:"Pacific Time (US & Canada)",utc:["America/Los_Angeles","America/Dawson","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{value:"US Mountain Standard Time",abbr:"UMST",text:"Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{value:"Mountain Standard Time (Mexico)",abbr:"MDT",text:"Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{value:"Mountain Standard Time",abbr:"MDT",text:"Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{value:"Central America Standard Time",abbr:"CAST",text:"Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{value:"Central Standard Time",abbr:"CDT",text:"Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{value:"Central Standard Time (Mexico)",abbr:"CDT",text:"Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{value:"Canada Central Standard Time",abbr:"CCST",text:"Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{value:"SA Pacific Standard Time",abbr:"SPST",text:"Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{value:"Eastern Standard Time",abbr:"EDT",text:"Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{value:"US Eastern Standard Time",abbr:"UEDT",text:"Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{value:"Venezuela Standard Time",abbr:"VST",text:"Caracas",utc:["America/Caracas"]},{value:"Paraguay Standard Time",abbr:"PYT",text:"Asuncion",utc:["America/Asuncion"]},{value:"Atlantic Standard Time",abbr:"ADT",text:"Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{value:"Central Brazilian Standard Time",abbr:"CBST",text:"Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{value:"SA Western Standard Time",abbr:"SWST",text:"Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{value:"Pacific SA Standard Time",abbr:"PSST",text:"Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{value:"Newfoundland Standard Time",abbr:"NDT",text:"Newfoundland",utc:["America/St_Johns"]},{value:"E. South America Standard Time",abbr:"ESAST",text:"Brasilia",utc:["America/Sao_Paulo"]},{value:"Argentina Standard Time",abbr:"AST",text:"Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{value:"SA Eastern Standard Time",abbr:"SEST",text:"Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{value:"Greenland Standard Time",abbr:"GDT",text:"Greenland",utc:["America/Godthab"]},{value:"Montevideo Standard Time",abbr:"MST",text:"Montevideo",utc:["America/Montevideo"]},{value:"Bahia Standard Time",abbr:"BST",text:"Salvador",utc:["America/Bahia"]},{value:"UTC-02",abbr:"U",text:"Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{value:"Mid-Atlantic Standard Time",abbr:"MDT",text:"Mid-Atlantic - Old",utc:[]},{value:"Azores Standard Time",abbr:"ADT",text:"Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{value:"Cape Verde Standard Time",abbr:"CVST",text:"Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{value:"Morocco Standard Time",abbr:"MDT",text:"Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{value:"UTC",abbr:"UTC",text:"Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{value:"GMT Standard Time",abbr:"GMT",text:"Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"GMT Standard Time",abbr:"GDT",text:"Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{value:"Greenwich Standard Time",abbr:"GST",text:"Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{value:"W. Europe Standard Time",abbr:"WEDT",text:"Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{value:"Central Europe Standard Time",abbr:"CEDT",text:"Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{value:"Romance Standard Time",abbr:"RDT",text:"Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{value:"Central European Standard Time",abbr:"CEDT",text:"Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{value:"W. Central Africa Standard Time",abbr:"WCAST",text:"West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{value:"Namibia Standard Time",abbr:"NST",text:"Windhoek",utc:["Africa/Windhoek"]},{value:"GTB Standard Time",abbr:"GDT",text:"Athens, Bucharest",utc:["Europe/Athens","Asia/Nicosia","Europe/Bucharest","Europe/Chisinau"]},{value:"Middle East Standard Time",abbr:"MEDT",text:"Beirut",utc:["Asia/Beirut"]},{value:"Egypt Standard Time",abbr:"EST",text:"Cairo",utc:["Africa/Cairo"]},{value:"Syria Standard Time",abbr:"SDT",text:"Damascus",utc:["Asia/Damascus"]},{value:"E. Europe Standard Time",abbr:"EEDT",text:"E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"South Africa Standard Time",abbr:"SAST",text:"Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{value:"FLE Standard Time",abbr:"FDT",text:"Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"Turkey Standard Time",abbr:"TDT",text:"Istanbul",utc:["Europe/Istanbul"]},{value:"Israel Standard Time",abbr:"JDT",text:"Jerusalem",utc:["Asia/Jerusalem"]},{value:"Libya Standard Time",abbr:"LST",text:"Tripoli",utc:["Africa/Tripoli"]},{value:"Jordan Standard Time",abbr:"JST",text:"Amman",utc:["Asia/Amman"]},{value:"Arabic Standard Time",abbr:"AST",text:"Baghdad",utc:["Asia/Baghdad"]},{value:"Kaliningrad Standard Time",abbr:"KST",text:"Kaliningrad",utc:["Europe/Kaliningrad"]},{value:"Arab Standard Time",abbr:"AST",text:"Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{value:"E. Africa Standard Time",abbr:"EAST",text:"Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{value:"Moscow Standard Time",abbr:"MSK",text:"Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{value:"Samara Time",abbr:"SAMT",text:"Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{value:"Iran Standard Time",abbr:"IDT",text:"Tehran",utc:["Asia/Tehran"]},{value:"Arabian Standard Time",abbr:"AST",text:"Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{value:"Azerbaijan Standard Time",abbr:"ADT",text:"Baku",utc:["Asia/Baku"]},{value:"Mauritius Standard Time",abbr:"MST",text:"Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{value:"Georgian Standard Time",abbr:"GET",text:"Tbilisi",utc:["Asia/Tbilisi"]},{value:"Caucasus Standard Time",abbr:"CST",text:"Yerevan",utc:["Asia/Yerevan"]},{value:"Afghanistan Standard Time",abbr:"AST",text:"Kabul",utc:["Asia/Kabul"]},{value:"West Asia Standard Time",abbr:"WAST",text:"Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{value:"Yekaterinburg Time",abbr:"YEKT",text:"Yekaterinburg",utc:["Asia/Yekaterinburg"]},{value:"Pakistan Standard Time",abbr:"PKT",text:"Islamabad, Karachi",utc:["Asia/Karachi"]},{value:"India Standard Time",abbr:"IST",text:"Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata"]},{value:"India Standard Time",abbr:"IST",text:"Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{value:"Sri Lanka Standard Time",abbr:"SLST",text:"Sri Jayawardenepura",utc:["Asia/Colombo"]},{value:"Nepal Standard Time",abbr:"NST",text:"Kathmandu",utc:["Asia/Kathmandu"]},{value:"Central Asia Standard Time",abbr:"CAST",text:"Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{value:"Bangladesh Standard Time",abbr:"BST",text:"Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{value:"Myanmar Standard Time",abbr:"MST",text:"Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{value:"SE Asia Standard Time",abbr:"SAST",text:"Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{value:"N. Central Asia Standard Time",abbr:"NCAST",text:"Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{value:"China Standard Time",abbr:"CST",text:"Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{value:"North Asia Standard Time",abbr:"NAST",text:"Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{value:"Singapore Standard Time",abbr:"MPST",text:"Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{value:"W. Australia Standard Time",abbr:"WAST",text:"Perth",utc:["Australia/Perth","Antarctica/Casey"]},{value:"Taipei Standard Time",abbr:"TST",text:"Taipei",utc:["Asia/Taipei"]},{value:"Ulaanbaatar Standard Time",abbr:"UST",text:"Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{value:"North Asia East Standard Time",abbr:"NAEST",text:"Irkutsk",utc:["Asia/Irkutsk"]},{value:"Japan Standard Time",abbr:"JST",text:"Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{value:"Korea Standard Time",abbr:"KST",text:"Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{value:"Cen. Australia Standard Time",abbr:"CAST",text:"Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{value:"AUS Central Standard Time",abbr:"ACST",text:"Darwin",utc:["Australia/Darwin"]},{value:"E. Australia Standard Time",abbr:"EAST",text:"Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{value:"AUS Eastern Standard Time",abbr:"AEST",text:"Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{value:"West Pacific Standard Time",abbr:"WPST",text:"Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{value:"Tasmania Standard Time",abbr:"TST",text:"Hobart",utc:["Australia/Currie","Australia/Hobart"]},{value:"Yakutsk Standard Time",abbr:"YST",text:"Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{value:"Central Pacific Standard Time",abbr:"CPST",text:"Solomon Is., New Caledonia",utc:["Etc/GMT-11"]},{value:"Vladivostok Standard Time",abbr:"VST",text:"Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{value:"New Zealand Standard Time",abbr:"NZST",text:"Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{value:"UTC+12",abbr:"U",text:"Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{value:"Fiji Standard Time",abbr:"FST",text:"Fiji",utc:["Pacific/Fiji"]},{value:"Magadan Standard Time",abbr:"MST",text:"Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{value:"Kamchatka Standard Time",abbr:"KDT",text:"Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{value:"Tonga Standard Time",abbr:"TST",text:"Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{value:"Samoa Standard Time",abbr:"SST",text:"Samoa",utc:["Pacific/Apia"]}],r=new Date,o=()=>{try{const e=new Intl.DateTimeFormat("default",{});return e.resolvedOptions().timeZone||"Etc/GMT"}catch(e){return"Etc/GMT"}},i=(()=>{const e={};return n.reduce(((t,a)=>{const{utc:n}=a;try{const o=new Intl.DateTimeFormat("fr",{timeZone:n[0],timeZoneName:"short"}).format(r),[i]=o.match(/[\u2212+].+/)||[],s=(e=>e?e.replace("\u2212","-"):"")(i);if(e[s])return t.concat({...a,offset:e[s]});const c=(e=>{if(!e)return"+0";const t=e.split(":");return t.length>1?"".concat(t[0]).concat((t[1]/60).toString().substr(1)):t[0]})(s);return e[s]=c,t.concat({...a,offset:c})}catch(o){return t}}),[])})().sort(((e,t)=>e.offset-t.offset)),s=(e=>e.reduce(((e,t)=>{let{utc:a,...n}=t;return a.forEach((t=>e[t]={...n,utc:t})),e}),{}))(i),c=(e,t)=>{const a=t||("default"===e?o():e);return s[a in s?a:o()]||{}}},57419:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>u,isTryingToJoinWorkspace:()=>l});a(62953),a(48408);var n=a(96540),r=a(47767),o=a(78969),i=a(28738),s=a(22292),c=a(24198);const l=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").includes("/join-space")},d="Successfully joined space!",u=()=>{const e=(0,s.uW)("isAnonymous"),t=(0,r.Zp)(),a=new URLSearchParams(window.location.hash.substr(1));return(0,n.useEffect)((()=>{if(e)return;const n=a.has("error_msg_key")?decodeURIComponent(a.get("error_msg_key")||""):null;if(n){const e=a.has("error_message")?decodeURIComponent(a.get("error_message")||""):null;n===o.vK?(0,c.Fw)(d):(0,c.Fw)(e||"Error joining space",!0),t("/spaces",{replace:!0})}else(0,c.Fw)(d)}),[e]),n.createElement(i.A,{title:"Adding you to the space..."})}},28738:(e,t,a)=>{"use strict";a.d(t,{A:()=>d,m:()=>l});var n=a(58168),r=a(96540),o=a(8711),i=a(10058);const s=(0,o.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),c=(0,o.default)(i.Icon).withConfig({displayName:"loader__StyledIcon",componentId:"sc-a76ek6-0"})(["width:",";height:",";animation:",";"],(e=>e.width),(e=>e.height),(e=>{let{animate:t}=e;return t?(0,o.css)([""," 1.6s ease-in infinite"],s):""})),l=e=>{let{title:t="Loading",width:a="208px",height:o="177px",...i}=e;return r.createElement(c,(0,n.A)({name:"netdata",color:"primary",title:t,"data-testid":"loading-logo",width:a,height:o},i))},d=e=>{let{title:t,body:a,iconProps:o,animate:s=!0,...c}=e;return r.createElement(i.Flex,(0,n.A)({column:!0,height:"100vh",background:"mainBackground",width:"100%",justifyContent:"center",alignItems:"center"},c),r.createElement(l,(0,n.A)({},o,{animate:s})),t&&r.createElement(i.H3,{color:"text",margin:[1,0,0]},t),a&&r.createElement(i.Text,{color:"text",margin:[4.5,0,0]},a))}},13871:(e,t,a)=>{"use strict";a.d(t,{Eg:()=>c,UI:()=>d,gi:()=>l});var n=a(58168),r=a(96540),o=a(10058),i=a(79731);const s={success:"success",error:"error",warning:"warning",default:"border"},c=e=>{const{header:t,text:a,icon:n,renderContent:i,success:c,error:l,warning:d,closeToast:u}=e,m=(c?"success":l&&"error")||d&&"warning"||"default";return r.createElement(o.Flex,{padding:[2],alignItems:"center",justifyContent:"between"},r.createElement(o.Flex,{alignItems:"center",gap:3},n&&r.createElement(o.Flex,{flex:!1},r.createElement(o.Icon,{color:s[m],name:n,size:"large"})),r.createElement(o.Flex,{column:!0,gap:1},t&&r.createElement(o.H5,{color:s[m]},t),a&&r.createElement(o.TextSmall,{color:s[m]},a),i&&i(e))),r.createElement(o.Flex,null,r.createElement(o.Icon,{name:"x",size:"large",color:s[m],onClick:u})))},l=e=>{let{errorCode:t,errorMessage:a,errorMsgKey:o,...s}=e;return r.createElement(c,(0,n.A)({error:!0,icon:"error",text:a,header:(0,i.o)(o)},s))},d=e=>r.createElement(c,e)},24198:(e,t,a)=>{"use strict";a.d(t,{$j:()=>p,AM:()=>o,Fw:()=>d,R9:()=>s,X7:()=>u,ZM:()=>m,jE:()=>g,mw:()=>l,r0:()=>i,sb:()=>c});var n=a(78217),r=a(13871);const o=e=>{const t={header:"Nodes",text:e},a=(0,r.UI)({...t,success:!0,icon:"node"});n.A.success(a,{context:"showNodesNotification"})},i=e=>{const t={header:"Rooms",text:e},a=(0,r.UI)({...t,success:!0,icon:"space"});n.A.success(a,{context:"showRoomsNotification"})},s=function(e){const t={header:"Room users",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Users left the room!":"Users were added to room!")},a=(0,r.UI)({...t,success:!0,icon:"space"});n.A.success(a,{context:"showUsersInRoomNotification"})},c=function(e){const t={header:"Space users",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Users left the space!":"Users were added to space!")},a=(0,r.UI)({...t,success:!0,icon:"space"});n.A.success(a,{context:"showUsersInSpaceNotification"})},l=function(e){const t={header:"Rooms",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Rooms removed from Space!":"Rooms were added to Space!")},a=(0,r.UI)({...t,success:!0,icon:"space"});n.A.success(a,{context:"showRoomsInSpaceNotification"})},d=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const a={header:t?"Error joining space":"Welcome!",text:e},o=(0,r.UI)({...a,success:!t,icon:"gear"});t?n.A.error(o,{context:"showJoiningSpaceNotification"}):n.A.success(o,{context:"showJoiningSpaceNotification"})},u=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const a={header:t?"Space removed":"Space added",text:e},o=(0,r.UI)({...a,success:!t,icon:"gear"});n.A.success(o,{context:"showSpaceNotification"})},m=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const a={header:t?"Error creating room":"Rooms",text:e},o=(0,r.UI)({...a,success:!t,icon:"gear"});t?n.A.error(o,{context:"showRoomCreationNotification"}):n.A.success(o,{context:"showRoomCreationNotification"})},g=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const a={text:e},o=(0,r.UI)({...a,text:e,success:!t,icon:"chart_added"});t?n.A.error(o,{context:"showDashboardCreatedNotification"}):n.A.success(o,{context:"showDashboardCreatedNotification"})},p=()=>{const e=(0,r.UI)({header:"Dashboard",text:"Invalid dashboard link. Please double-check the dashboard you are trying to access.",success:!1});n.A.error(e,{context:"showInvalidDashboardSlugNotification"})}},78217:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(99571);const r={position:n.oR.POSITION.BOTTOM_RIGHT,autoClose:1e4,pauseOnFocusLoss:!1,closeOnClick:!1},o={},i={success:function(e){let{context:t,...a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&o[t]&&(n.oR.dismiss(o[t]),delete o[t]),o[t]=n.oR.success(e,{...r,...a})},warning:function(e){let{context:t,...a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&o[t]&&(n.oR.dismiss(o[t]),delete o[t]),o[t]=n.oR.warn(e,{...r,...a})},error:function(e){let{context:t,...a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&o[t]&&(n.oR.dismiss(o[t]),delete o[t]),o[t]=n.oR.error(e,{...r,...a})},dismiss:e=>n.oR.dismiss(e)}},80925:(e,t,a)=>{"use strict";a.d(t,{A:()=>v,e:()=>h});a(9920),a(98992),a(3949),a(62953);var n=a(96540),r=a(5668),o=a(45467),i=a(24830),s=a(28973),c=a(27467),l=a(3914),d=a(64118),u=a(52768),m=a(38819),g=a(82838);const p=(0,n.createContext)(null),h=()=>(0,n.useContext)(p),v=e=>{var t;let{children:a}=e,h=(0,r.xd)("theme");h=h&&"unspecified"!==h?h:"dark";const[{after:v,before:f,utc:A,highlight:y,forcePlay:b},S]=(0,c.N9)(),k=function(){let{after:e,before:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,n.useMemo)((()=>{if(e=+e,t=+t,!isNaN(e)&&!isNaN(t)&&e&&t)return{type:"highlight",range:[Math.floor(e/1e3),Math.ceil(t/1e3)]}}),[e,t])}(y),[w]=(0,d.KB)(),I=(0,n.useMemo)((()=>({after:v<0?v:Math.floor(v/1e3),before:v<0?0:Math.ceil(f/1e3)})),[v,f]),E=(0,l.dg)(),x=(0,n.useMemo)((()=>{const e=(()=>{let{utc:e}=(0,m.PP)();return(0,g.M)("default",e).utc})(),t=(0,i.A)({attributes:{theme:h,timezone:e,overlays:{...k&&{highlight:k}},autofetchOnWindowBlur:b,...I,agent:E,containerWidth:.8*window.innerWidth,expandable:!1}});return window.netdataSDK=t,t}),[]);(0,o.A)((()=>{x.getNodes().forEach((e=>e.updateAttribute("theme",h)))}),[h]),(0,o.A)((()=>{const e=x.getRoot().getAttribute("timezone");A!==e&&x.getRoot().getApplicableNodes({syncTimezone:!0}).forEach((e=>e.updateAttributes({timezone:A})))}),[A]),(0,o.A)((()=>{const e=x.getRoot().getAttribute("overlays");if(k)x.getRoot().updateAttribute("overlays",{...e,highlight:k}),x.getRoot().getApplicableNodes({syncHighlight:!0}).forEach((e=>e.updateAttribute("overlays",{...e.getAttribute("overlays"),highlight:k})));else{const t={...e};delete t.highlight,x.getRoot().updateAttribute("overlays",t),x.getRoot().getApplicableNodes({syncHighlight:!0}).forEach((e=>{const t={...e.getAttribute("overlays")};delete t.highlight,e.updateAttribute("overlays",t)}))}}),[k]),(0,n.useEffect)((()=>{if(!w)return;x.trigger("goToLink",null,w.linkToGo);const e=x.getRoot().getNode({id:w.context});if(e){const t=e.getAttribute("overlays");e.updateAttribute("overlays",{...t,alarm:{type:"alarm",status:w.status,value:w.formattedLastStatusChangeValue,when:w.lastStatusChange}}),e.updateAttributes({selectedInstances:["".concat(w.instance,"@").concat(w.nodeId)],selectedNodes:[w.nodeId]})}const t=!!w&&x.getRoot().on("chartLoaded",(e=>{const a=e.getAttribute("id");if(w.context!==a)return;const n=e.getAttribute("overlays");e.updateAttribute("overlays",{...n,alarm:{type:"alarm",status:w.status,value:w.formattedLastStatusChangeValue,when:w.lastStatusChange}}),e.updateAttributes({selectedInstances:["".concat(w.instance,"@").concat(w.nodeId)],selectedNodes:[w.nodeId]}),t()}));return(0,s.unregister)(t)}),[w]),(0,n.useEffect)((()=>{const{after:e,before:t}=I;x.getRoot().moveX(e,t)}),[I]),(0,u.Vt)(w);const C=localStorage.getItem("netdataJWT"),T=null===(t=window.localNetdataRegistry)||void 0===t?void 0:t.mg,N=localStorage.getItem("agentJWT:".concat(T)),R=E?N:C;return(0,n.useEffect)((()=>{x.getNodes().forEach((e=>{var t;return e.updateAttributes({...E&&null!==(t=window.localNetdataRegistry)&&void 0!==t&&t.xNetdataAuthHeader?{xNetdataBearer:R,bearer:null}:{xNetdataBearer:null,bearer:R},agent:E})}))}),[E,R]),(0,n.useEffect)((()=>(0,s.unregister)(x.getRoot().onAttributeChange("after",(()=>{const{after:e,before:t}=x.getRoot().getAttributes();S({after:e<0?e:1e3*e,before:e<0?0:1e3*t})})),x.getRoot().onAttributeChange("overlays",((e,t)=>{const{highlight:a}=e;if(a===t.highlight)return;const n=null===a||void 0===a?void 0:a.range;if(n){const[e,t]=n;S({highlight:{after:1e3*e,before:1e3*t}})}else S({highlight:{after:null,before:null}})})))),[x]),x?n.createElement(p.Provider,{value:x},a):a}},74618:(e,t,a)=>{"use strict";a.d(t,{z:()=>i});var n=a(58168),r=a(96540),o=a(10058);const i=e=>{let{children:t,isSubmodal:a,onClose:i,title:s,...c}=e;return r.createElement(o.Flex,{justifyContent:"between",background:"modalHeaderBackground",alignItems:"center",padding:[3]},r.createElement(o.Flex,{alignItems:"center"},!!i&&r.createElement(o.Button,{neutral:!0,flavour:"borderless",icon:a?"chevron_left":"x",onClick:()=>i(),"data-testid":"sidebarModalHeader_".concat(a?"chevron_left":"close_button")}),r.createElement(o.H4,(0,n.A)({color:"text"},c),s)),t)}},15327:(e,t,a)=>{"use strict";a.d(t,{CG:()=>u,GO:()=>l,Yv:()=>d});var n=a(58168),r=(a(62953),a(96540)),o=a(8711),i=a(87659),s=a(10058);const c=(0,r.forwardRef)(((e,t)=>{let{toggle:a,isOpen:o=!0,closeOnClickOutside:i=!0,closeOnEsc:c=!0,full:l="vertical",backdrop:d=!0,position:u="right",...m}=e;return o?r.createElement(s.Layer,{position:u,full:l,backdrop:d,shadow:!0,onClickOutside:i?a:void 0,onEsc:c?a:void 0},r.createElement(s.Flex,(0,n.A)({column:!0,background:"mainBackground",width:{max:"50vw",base:150}},m,{ref:t}))):null})),l=e=>{let{onClose:t,defaultIsOpen:a=!0,...o}=e;const[s,l]=(0,i.A)(a);return(0,r.useEffect)((()=>{s||t&&t()}),[s]),r.createElement(c,(0,n.A)({isOpen:s,toggle:l},o))},d=(0,o.default)(s.Flex).attrs((e=>({column:!0,background:"mainBackground",padding:[3,3,0],flex:"1",gap:3,...e}))).withConfig({displayName:"sidebar__SidebarContent",componentId:"sc-tmwerm-0"})([""]),u=(0,o.default)(s.Flex).attrs({justifyContent:"end",alignItems:"center",padding:[3],background:"mainBackground",border:{side:"top",color:"borderSecondary"}}).withConfig({displayName:"sidebar__SidebarFooter",componentId:"sc-tmwerm-1"})([""])},45765:(e,t,a)=>{"use strict";a.d(t,{U:()=>i});var n=a(58168),r=a(96540),o=a(10058);const i=e=>{let{children:t,...a}=e;return r.createElement(o.Flex,(0,n.A)({justifyContent:"between",background:"mainBackground",alignItems:"center",padding:[3,3,0]},a),r.createElement(o.H3,null,t))}},55337:(e,t,a)=>{"use strict";a.d(t,{A:()=>d,g:()=>l});var n=a(58168),r=a(96540),o=a(8711),i=a(10058),s=a(5668);const c={light:i.DefaultTheme,dark:i.DarkTheme,unspecified:i.DarkTheme},l=(e,t)=>a=>{let{...n}=a;return r.createElement(o.ThemeProvider,{theme:c[t]||c.unspecified},r.createElement(e,n))},d=e=>{const t=(0,s.xd)("theme"),a=(0,s.xd)("customTheme"),i=(0,r.useMemo)((()=>"blue"===t?{...c.dark,colors:{...c.dark.colors,...a||{}}}:e.theme?c[e.theme]||c.unspecified:c[t]||c.unspecified),[t,e.theme,a]);return r.createElement(o.ThemeProvider,(0,n.A)({},e,{theme:i}))}},29217:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(58168),r=a(96540),o=a(10058);const i=e=>{let{children:t,background:a,isBasic:i,padding:s}=e;return t?r.createElement(o.Flex,(0,n.A)({padding:s||[1.5,2],margin:[2],background:a||"tooltip",round:1,alignSelf:"start"},!i&&{width:{max:"300px"}}),r.createElement(o.TextSmall,{color:"tooltipText"},t)):null},s=(e,t)=>{let{background:a,isBasic:n,padding:o}=t;const s="function"===typeof e?e():e;return"string"===typeof e||null!==e&&void 0!==e&&n?r.createElement(i,{background:a,isBasic:n,padding:o},s):s},c=e=>{let{children:t,content:a,isBasic:i,...c}=e;const l=(0,r.useCallback)((()=>s(a,{isBasic:i})),[a]);return a?r.createElement(o.Tooltip,(0,n.A)({plain:!0,animation:!0,content:l,zIndex:1e3},c),t):t}},68831:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={assetsBaseURL:"".concat(window.envSettings.cloudUrl,"/static"),apiBaseURL:window.envSettings.apiUrl,demoUrl:"".concat(window.envSettings.cloudUrl,"/spaces/netdata-demo"),demoSlug:window.envSettings.demoSlug,demoFavourites:window.envSettings.demoFavourites,demoDefaultRoomViews:{default:"overview"},pollingInterval:3e4,defaultRoomView:"home",integrationsView:"integrate-anything"}},78969:(e,t,a)=>{"use strict";a.d(t,{BX:()=>l,I7:()=>c,J4:()=>d,P8:()=>r,Q$:()=>u,Qy:()=>p,Wd:()=>m,_9:()=>o,eC:()=>i,fx:()=>h,ux:()=>s,vK:()=>v,x7:()=>g});var n=a(62805);const r="/api/v2",o="/api/v3/spaces",i=n.A,s=20,c=13,l=["J2kdSTRJzV4","KCFFZ_qfKXk"],d={live:{flavour:"success",statusTextColor:"primary",indicatorWrapperColor:"primary",counterColor:"primary"},stale:{flavour:"stale",statusTextColor:["green","vista"],indicatorWrapperColor:["green","vista"],counterColor:["green","vista"]},offline:{flavour:"neutral",statusTextColor:"textLite",indicatorWrapperColor:"textLite",counterColor:"textLite"},unseen:{statusTextColor:"textLite",indicatorWrapperColor:"textLite",counterColor:"textLite"}},u={completed:{icon:"check",indicatorWrapperColor:"primary",textColor:"primary",text:"Completed",tooltip:"has been claimed and has successfully connected to Netdata at least once"},pending:{icon:"clock_hollow",indicatorWrapperColor:"textLite",textColor:"textLite",text:"Pending...",tooltip:"has been claimed but never connected to the Netdata."}},m=[1,43,0],g=[1,44,3],p="v1.43.0",h="v1.44.3",v="ErrSpaceMemberAlreadyExists"},97674:(e,t,a)=>{"use strict";a.d(t,{L_:()=>n,pj:()=>r,zl:()=>o});a(17333),a(98992),a(54520);const n=e=>["admin","manager","troubleshooter","observer","billing"].concat("EarlyBird"===e?"member":[]),r=e=>[e["user:SetAdmin"]&&"admin",e["user:SetManager"]&&"manager",e["user:SetMember"]&&"member",e["user:SetTroubleshooter"]&&"troubleshooter",e["user:SetObserver"]&&"observer",e["user:SetBilling"]&&"billing"].filter(Boolean),o=e=>[e["user:SetFromAdmin"]&&"admin",e["user:SetFromManager"]&&"manager",e["user:SetFromMember"]&&"member",e["user:SetFromTroubleshooter"]&&"troubleshooter",e["user:SetFromObserver"]&&"observer",e["user:SetFromBilling"]&&"billing"].filter(Boolean)},45860:(e,t,a)=>{"use strict";a.d(t,{C2:()=>c,PY:()=>p,l1:()=>m,qM:()=>v,rn:()=>f,rx:()=>d,z5:()=>l});a(69479),a(25440),a(41393),a(81454);var n=a(26655),r=a(49286),o=a(37618);const i=e=>{let{roomID:t,alarmCounter:a,unreachableCount:n,state:r}=e;return{id:t,alertCounter:a,unreachableCount:n,state:r}},s=e=>{let{results:t}=e;return{results:(t||[]).map(i)}},c=e=>(0,o.ES)(e)?Promise.resolve({data:{results:[]}}):n.A.get("/api/v2/spaces/".concat(e,"/alarms"),{transform:s}),l=e=>(0,o.ES)(e)?Promise.resolve({data:null}):n.A.get("/api/v2/spaces/".concat(e,"/alarms/metas")),d={contexts:null,names:null,roles:null},u=e=>{let{alerts:t=[],nodes:a=[],alert_instances:n=[]}=e;return(0,r.bn)(n.map((e=>{let{ni:n,ati:r,tr_i:o,tr_v:i,tr_t:s,cfg:c,info:l,fami:d,ch:u,ch_n:m=u,ctx:g,v:p,t:h,flags:v,st:f,src:A,units:y,to:b,cl:S,cm:k,tp:w,sum:I}=e;const E=a[n],{nm:x,cr:C,wr:T,cl:N,er:R,in:M,nd:D,cfg:_,slc:U}=t[r],P=(x||"unknown_alert").replace(/_/g," ");return{mg:E.mg,nd:E.nd,nodeId:E.nd||E.mg,id:o,context:g,value:p,status:f.toLowerCase(),summary:I||P,name:x,displayName:P,alert:alert,criticalCount:C,warningCount:T,clearCount:N,errorCount:R,instanceCount:M,nodeCount:D,configCount:_,lastStatusChangeValue:i,lastStatusChange:s,configHash:c,info:l,family:d,instance:u,instanceName:m,lastUpdated:h,flags:v,units:y,source:A,recipient:b,class:S,component:k,type:w,silencing:U}})))},m=(e,t)=>(0,o.ES)(e)?n.A.get("/api/v2/alerts?options=summary,instances,values,minify&status=raised",{baseURL:window.envSettings.agentApiUrl,transform:u}):n.A.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[],contexts:[]},selectors:{status:["raised"]},options:["summary","values","instances"]},{transform:u}),g=e=>{let{transitions:t=[]}=e;if(!t[0])return{};const{config_hash_id:a,context:n,machine_guid:r,info:o,transition_id:i,node_id:s,alert:c,new:{status:l,value:d},when:u,old:{status:m,value:g,duration:p},instance:h,instance_n:v=h,units:f}=t[0];return{configHash:a,context:n,name:c,id:i,mg:r,nodeId:s||r,nd:s,alert:c,info:o,displayName:(c||"unknown_alert").replace(/_/g," "),status:l.toLowerCase(),lastStatusChange:u,lastStatusChangeValue:d,prevStatus:m.toLowerCase(),prevValue:g,prevDuration:p,instance:h,instanceName:v,units:f}},p=(e,t,a)=>(0,o.ES)(e)?n.A.get("/api/v2/alert_transitions?options=minify&transition=".concat(a),{baseURL:window.envSettings.agentApiUrl,transform:g}).then((a=>{let{data:n}=a;return y(e,t,n.configHash,n)})):n.A.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alert_transitions"),{transition:a},{transform:g}).then((a=>{let{data:n}=a;return y(e,t,n.configHash,n)})),h=e=>{let{alerts:t=[]}=e;return t.map((e=>{let{nm:t,cr:a,wr:n,cl:r,er:o,in:i,nd:s,cfg:c,sum:l,slc:d}=e;return{name:t,displayName:(t||"unknown_alert").replace(/_/g," "),criticalCount:a,warningCount:n,clearCount:r,errorCount:o,instanceCount:i,nodeCount:s,configCount:c,summary:l||t,silencing:d}}))},v=(e,t)=>(0,o.ES)(e)?n.A.get("/api/v2/alerts?options=minify",{baseURL:window.envSettings.agentApiUrl,transform:h}).then((e=>{let{data:t}=e;return t})):n.A.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[]}},{transform:h}).then((e=>{let{data:t}=e;return t})),f=(e,t,a)=>(0,o.ES)(e)?n.A.get("/api/v2/alerts?options=summary,values,instances,minify&alert=".concat(a),{baseURL:window.envSettings.agentApiUrl,transform:u}).then((e=>{let{data:t}=e;return t})):n.A.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[]},selectors:{alert:[a]},options:["summary","instances","values"]},{transform:u}).then((e=>{let{data:t}=e;return t})),A=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=>{let{class:a,component:n,type:r,info:o,value:{calc:i="",update_every:s,units:c,db:l},status:d,notification:u}=t;const{type:m,exec:g,to:p,delay:h,repeat:v}=u||{},{warn:f,crit:A}=v||{},{warn:y,crit:b,green:S,red:k}=d||{},{dimensions:w,method:I,after:E,before:x,options:C}=l||{};return{info:o,...e,configInfo:o,class:a,component:n,type:r,calculation:i,updateEvery:s,units:c,warning:y,critical:b,lookupDimensions:w,lookupMethod:I,lookupAfter:E,lookupBefore:x,lookupOptions:C,notificationType:m,exec:g,recipient:p,delay:h,warnRepeatEvery:f,critRepeatEvery:A,green:S,red:k}}},y=function(e,t,a){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,o.ES)(e)?n.A.get("/api/v2/alert_config?options=minify&config=".concat(a),{baseURL:window.envSettings.agentApiUrl,transform:A(r)}):n.A.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alert_config"),{config:a},{transform:A(r)})}},96935:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>s,J7:()=>l,Qk:()=>c,So:()=>m,_v:()=>u,ue:()=>i,xz:()=>d});var n=a(47444),r=a(92861),o=a(45860);const i={id:null,loaded:!1,nodeId:null,instance:null,instanceName:null,name:"",calculation:"",lookupAfter:0,lookupBefore:0,status:"unknown",date:"",fullyLoaded:!1,fullyLoading:!1,info:"",configInfo:"",warning:"",critical:"",updateEvery:0,source:"",recipient:"Unknown",units:"",delayUpDuration:null,delayDownDuration:null,delayMaxDuration:null,multiplier:null,delayUpToTimestamp:null,lookupDimensions:"",lookupMethod:"",lookupOptions:"",class:"Unknown",type:"Unknown",component:"Unknown"},s=(0,n.eU)({key:"alert",default:{}}),c=(0,n.eU)({key:"selectedAlert",default:null}),l=(0,n.eU)({key:"alertsTabsAtom",default:r.Sy}),d=(0,n.Iz)({key:"alertConfigurations",default:e=>{let{spaceId:t,roomId:a}=e;return(0,o.qM)(t,a)}}),u=(0,n.Iz)({key:"alertInstances",default:e=>{let{spaceId:t,roomId:a,name:n}=e;return(0,o.rn)(t,a,n)}}),m=(0,n.Iz)({key:"selectedAlertConfiguration",default:r.Vh})},92861:(e,t,a)=>{"use strict";a.d(t,{Sy:()=>r,UW:()=>i,Vh:()=>o,kc:()=>n});const n={alertStatus:"alertStatus",os:"os"},r=0,o={alertName:null,nodeId:null},i="https://learn.netdata.cloud/docs/alerting/health-configuration-reference#edit-health-configuration-files"},52768:(e,t,a)=>{"use strict";a.d(t,{J4:()=>g,Vt:()=>v,lT:()=>p,m3:()=>m,x7:()=>u});a(62953);var n=a(96540),r=a(47767),o=a(69765),i=a(27467),s=a(11128),c=a(20081),l=a(33222),d=a(21290);const u=e=>{const t=(0,r.Zp)(),a=(0,o.r9)(),c=(0,s.u7)({extraKey:"alerts"}),l=(0,i.Fw)("alertStatuses",{extraKey:"alerts"});return(0,n.useCallback)((n=>{e&&c([e]),n&&"string"===typeof n&&l([n]),t("".concat(a,"/alerts"))}),[e,a,c])},m=(e,t)=>{if(void 0===e)return"-";const a=(0,c.W)(e);return t?"".concat(a," ").concat(t):a},g=(e,t)=>(0,n.useMemo)((()=>m(e,t)),[e,t]),p=e=>{let{rawTime:t,secs:a=!1,long:r=!1}=e;const{localeTimeString:o,localeDateString:i}=(0,d.$j)();return(0,n.useMemo)((()=>{const e=new Date(1e3*t);return isNaN(e.valueOf())?{}:{timeAgo:(0,l.A)(e,new Date),formattedDate:"".concat(i(e,{long:r})," ").concat(o(e,{secs:a}))}}),[t,o,i])},h=()=>Math.floor((new Date).getTime()/1e3),v=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{lastUpdated:a,lastStatusChange:r}=e||{},o=(0,i.rI)(),[s,c]=(e=>{const{lastUpdated:t,lastStatusChange:a}=e||{};return(0,n.useMemo)((()=>{if(!t||!a)return[];const e=t||h(),n=e-a,r=Math.round(a-n),o=Math.round(e+n);return[r,o>h()?h():o]}),[t,a])})({lastUpdated:a,lastStatusChange:r});(0,n.useEffect)((()=>{t&&(s||c)&&o({after:1e3*s,before:1e3*c})}),[t,s,c])}},64118:(e,t,a)=>{"use strict";a.d(t,{AO:()=>I,DV:()=>T,Gq:()=>A,JL:()=>h,KB:()=>v,SB:()=>p,Yo:()=>S,kJ:()=>C,oU:()=>E,q1:()=>x,ud:()=>N,x:()=>k,yk:()=>y,zu:()=>b});a(17333),a(41393),a(14905),a(98992),a(54520),a(81454),a(8872);var n=a(96540),r=a(47444),o=a(69765),i=a(67990),s=a(51074),c=a(47762),l=a(92861),d=a(3914),u=a(96935),m=a(45860),g=a(20081);const p=(0,r.K0)({key:"alertState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const r=n(u.Ay)[t]||u.ue;return a?r[a]:r}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r(u.Ay,a?"function"!==typeof n?e=>({...e,[t]:{...e[t],[a]:n}}):e=>({...e,[t]:{...e[t],[a]:n(e[t][a])}}):e=>({...e,[t]:{...u.ue,...e[t],...n}}))}}}),h=(e,t)=>(0,r.vc)(p({id:e,key:t})),v=()=>(0,r.L4)(u.Qk),f=(0,r.K0)({key:"alertsState",get:e=>t=>{let{get:a}=t;return e.map((e=>a(p({id:e}))))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),A=e=>(0,r.vc)(f(e)),y=function(e){let{spaceId:t,roomId:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=(0,d.vt)();t=t||i;const s=(0,o.ID)();a=a||s;const c=(0,r.Zs)((n=>{let{set:r}=n;return()=>{r(p({id:e,key:"fullyLoading"}),!0);const n=(0,m.PY)(t,a,e);return n.then((t=>{let{data:a}=t;return r(p({id:e}),{...a,fullyLoaded:!0,fullyLoading:!1,loaded:!0})})).catch((()=>r(p({id:e,key:"fullyLoading"}),!1))),()=>n.cancel()}}),[a,t,e]);(0,n.useEffect)((()=>{e&&c()}),[e,c])},b=()=>{const e=(()=>{const e=(0,o.ID)();return(0,r.vc)(S(e))})(),t=(0,i.CK)(),a=(0,c.Gt)(t);return(0,n.useMemo)((()=>a.map((t=>{const a=e.filter((e=>e.nodeId===t.id));if(!a.length)return t;const n=a.map((e=>e.status));return{...t,[l.kc.alertStatus]:(0,g.h)(n)}}))),[e,a])},S=(0,r.K0)({key:"roomAlerts",get:e=>t=>{let{get:a}=t;const n=a((0,s.t)({id:e,key:"ids"}));return a(f(n))}}),k=()=>{const e=(0,o.ID)();return(0,r.vc)((0,s.t)({id:e,key:"loaded"}))},w={warning:0,critical:0,clear:0},I=e=>{const t=A(e);return(0,n.useMemo)((()=>t.reduce(((e,t)=>{let{status:a}=t;return e[a]=e[a]+1,e}),{...w})),[e])},E=()=>{const e=(0,d.vt)(),t=(0,o.ID)();return(0,r.vc)((0,u.xz)({spaceId:e,roomId:t}))},x=(e,t)=>{const a=(0,d.vt)(),i=(0,o.ID)(),s=(0,r.vc)((0,u._v)({spaceId:a,roomId:i,name:e}));return(0,n.useMemo)((()=>t?s.filter((e=>e.nodeId===t)):s),[s,t])},C=()=>(0,r.L4)(u.J7),T=()=>{const e=(0,o.ID)();return(0,r.L4)((0,u.So)(e))},N=()=>{const e=(0,o.ID)();return(0,r.E0)((0,u.So)(e))}},20081:(e,t,a)=>{"use strict";a.d(t,{W:()=>n,h:()=>r});const n=e=>{const t=e<1?Number(e).toPrecision(3):Number(e).toFixed(2),a=Number.parseFloat(t);return Math.abs(a)>=1e9||Math.abs(a)<=1e-5&&0!==a?a.toExponential(3):a},r=e=>e.includes("critical")?"critical":e.includes("warning")?"warning":e.includes("clear")?"clear":e[0]},58384:(e,t,a)=>{"use strict";a.d(t,{t:()=>d,A:()=>m});var n=a(58168),r=(a(62953),a(96540)),o=a(10058),i=a(87659),s=a(8711);const c=(0,s.default)(o.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1}).withConfig({displayName:"styled__Drop",componentId:"sc-1x9syns-0"})(["box-sizing:content-box;"]),l=(0,s.default)(o.TextSmall).withConfig({displayName:"styled__DropdownItemClickable",componentId:"sc-1x9syns-1"})(["cursor:pointer;pointer-events:",";"," &:hover{background-color:",";}"],(e=>{let{isDisabled:t}=e;return t?"none":"auto"}),(e=>e.isDisabled&&"opacity: 0.6;"),(0,o.getColor)("selected")),d=e=>{let{children:t,color:a="text",disabled:i,icon:s,...c}=e;return r.createElement(l,(0,n.A)({as:o.Flex,"data-testid":"dropdownItem",gap:2,isDisabled:i,padding:[2,4]},c),r.createElement(o.Icon,{color:i?"textLite":a,"data-testid":"dropdownItem-icon",height:"16px",name:s,width:"16px"}),r.createElement(o.Text,{color:a,"data-testid":"dropdownItem-text",whiteSpace:"nowrap"},t))},u=(0,r.forwardRef)(((e,t)=>{let{Component:a,category:o,context:i,...s}=e;return r.createElement(a,(0,n.A)({"data-ga":"".concat(o,"::").concat(i,"::options"),"data-testid":"chartOptions",icon:"nav_dots",iconWidth:"12px",iconHeight:"12px",flavour:"borderless",neutral:!0,small:!0,padding:[0],ref:t,title:"Options"},s))})),m=e=>{let{Component:t=o.IconButton,category:a,context:s,children:l,testId:d,...m}=e;const[g,p,,h]=(0,i.A)(),v=(0,r.useRef)(),f=d||"chartsDropdown";return r.createElement(r.Fragment,null,r.createElement(u,(0,n.A)({},m,{"data-testid":"".concat(f,"-button"),category:a,context:s,onClick:p,ref:v,Component:t})),v.current&&g&&r.createElement(c,{close:h,"data-testid":f,onClickOutside:h,onEsc:h,target:v.current},l({close:h})))}},11604:(e,t,a)=>{"use strict";a.d(t,{Yr:()=>E,z2:()=>N,DH:()=>k,Js:()=>w,tN:()=>T,So:()=>C,LC:()=>x});a(25440),a(41393),a(81454),a(62953);var n=a(96540),r=a(47767),o=a(79731),i=a(3914),s=a(86663),c=a(26655),l=a(18061),d=a(71835),u=a(61649),m=a(76201),g=a(37618),p=a(22292),h=a(11368),v=a(57419);const f=e=>{let{cloudRoute:t,redirectUri:a}=e;try{if(!(0,v.isTryingToJoinWorkspace)(t))return"";const{inviteToken:e,spaceId:n}=(e=>{const t=s.parse(e);let{error_retry:a,token:n}=t.error_retry||t.token?{...t,token:decodeURIComponent(t.token)}:s.parse(decodeURIComponent(e));return n||(n=s.parse(a).token),{inviteToken:n,spaceId:/spaces\/(.*)\/join-callback/.exec(a)[1]}})(a);return"?".concat(s.stringify({token:e,space:n}))}catch(n){return console.warn("error parsing join-callback url",n),""}};var A=a(35600),y=a(50503),b=a(50876);const S=function(e){let{path:t="/sign-up"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(window.envSettings.tracking)try{var a;const n="".concat(t,"/thank-you");window.dataLayer.push({event:"pageview",virtualPage:"".concat(n).concat(e)}),window.posthog.setPersonPropertiesForFlags({netdata_cloud_account_created_days_ago:0}),(0,m.F)("".concat(null===(a=window)||void 0===a||null===(a=a.location)||void 0===a?void 0:a.origin).concat(n).concat(e))}catch(n){}},k=e=>(0,u.A)((function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c.A.patch("/api/v1/accounts/".concat(e),t)}),[e]),w=()=>{const{search:e,hash:t}=(0,r.zy)(),a=(0,r.RQ)("/sign-up"),i=(0,r.RQ)("/sign-in"),s=a?a.pathname:i?i.pathname:"",l=(0,r.Zp)(),[u,m]=(0,d.A)(),{sendLog:g,isReady:p}=(0,b.A)();return(0,n.useCallback)((a=>{let{email:n,redirectURI:r,registerURI:i,isUnverifiedRegistration:d,resend:p}=a;return c.A.post("/api/v2/auth/account/magic-link",{email:n,redirectURI:r,registerURI:i,isUnverifiedRegistration:d}).then((()=>{u({header:"Sign in email sent"}),p||(S(e,{path:s}),"/sign-up"==s&&g({feature:"SignUpThankYou"}),l("/sign-in/magic-link-sent".concat(e).concat(t),{state:{email:n}}))})).catch((e=>{var t,a;const n=(0,o.o)((null===e||void 0===e||null===(t=e.response)||void 0===t||null===(t=t.data)||void 0===t?void 0:t.errorMsgKey)||(null===e||void 0===e||null===(a=e.response)||void 0===a||null===(a=a.data)||void 0===a?void 0:a.errorMessage)||"Something went wrong");throw m({header:"Sign in",text:n}),n}))}),[s,e,t,g,p])},I=e=>{let{authorized_origins:t=[]}=e;return t.map((e=>{let{id:t,url:a,last_accessed_at:n}=e;return{id:t,url:a,lastAccessedAt:n}}),[])},E=function(){let{onSuccess:e,onFail:t,...a}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(0,l.A)((()=>({fetch:()=>c.A.get("/api/v1/auth/account/origins",{transform:I}),initialValue:[],isDefaultLoading:!0,onSuccess:t=>{null===e||void 0===e||e(t)},onFail:e=>{null===t||void 0===t||t(e)},...a})),n)},x=()=>{const[e,t]=(0,n.useState)(""),[a,r]=(0,n.useState)(!1),[,o]=(0,d.A)();return[e,(0,n.useCallback)((async e=>{r(!0);try{const a=await c.A.post("/api/v1/auth/account/origins",{origin_url:e});t(a.authorized_origin_url),r(!1)}catch(a){o({header:"Trust URL",text:"We couldn't trust the URL"}),r(!1)}}),[]),a]},C=e=>{e&&e.preventDefault();const[,t]=(0,d.A)(),{search:a}=(0,r.zy)(),{cloudRoute:o,oauth:i,token:l,username:u,redirect_uri:m}=s.parse(a),g=(0,h.hn)(),{setFailure:p}=(0,y.A)(),v=f({cloudRoute:o,redirectUri:m}),{sendLog:A,isReady:k}=(0,b.A)();return(0,n.useCallback)((async()=>{const e="/api/v2/auth/account/".concat(i||"magic-link","/register");try{const{data:t}=await c.A.post("".concat(e).concat(v),{token:l,username:u}),{errorMsgKey:n}=t||{};"ErrTrialUpdateFailed"==n&&p(),g(),S(a)}catch(n){t(n)}}),[i,l,u,A,k])},T=()=>{const e=(0,i.dg)();return(0,n.useCallback)((async()=>{var e;await c.A.post("/api/v1/auth/account/logout"),"function"==typeof(null===(e=window.posthog)||void 0===e?void 0:e.reset)&&window.posthog.reset();const t=localStorage.getItem("lastSignInMethod");return localStorage.clear(),localStorage.setItem("lastSignInMethod",t),(0,A.y)(),g.Ay?window.location.reload():window.location.replace("/sign-in")}),[e])},N=()=>{const e=(0,p.NJ)(),t=T(),[,a]=(0,d.A)();return(0,n.useCallback)((async()=>{try{await c.A.delete("/api/v1/accounts/".concat(e)),t()}catch(n){a(n)}}),[])}},11368:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>f,hn:()=>h});a(14905),a(98992),a(8872);var n=a(96540),r=a(47444),o=a(26655),i=a(78969),s=a(37618),c=a(92861);const l={auth_type:"",avatarURL:null,createdAt:"",email:"",id:null,name:"",termsAccepted:!0,isAnonymous:!1,authorizedOrigins:[]},d={theme:"unspecified",spacePanelCollapsed:!0,alertsGrouping:c.kc.alertStatus},u=e=>{let{permissions:t,settings:a,...n}=e;const r=n.id===i.eC;return{permissions:t,settings:a,user:{...n,isAnonymous:r,termsAccepted:r||n.termsAccepted}}},m=()=>{var e;const t=JSON.parse(localStorage.getItem("userSettings"))||{},a={user:{...l,id:(null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.pg)||null,isLoaded:!0,isAnonymous:!0},permissions:{},settings:{...d,...t,isLoaded:!0}};if((0,s.I)())return Promise.resolve(a);let n;return(()=>{var e,r;return null===(e=n)||void 0===e||null===(r=e.cancel)||void 0===r||r.call(e),n=o.A.get("/api/v2/accounts/me",{transform:u,allow401:!0}),n.then((e=>{let{data:{user:n,permissions:r=[],settings:o}}=e;return s.Ay&&n.isAnonymous?a:{user:{...l,...n,isLoaded:!0},permissions:r.reduce(((e,t)=>({...e,[t]:t})),{}),settings:{...d,...t,...o,isLoaded:!0}}})).catch((()=>s.Ay?a:{user:{...l,isLoaded:!0},permissions:{},settings:{...d,...t,isLoaded:!0}}))})()},g=(0,r.eU)({key:"currentUserFetcher",default:null}),p=(0,r.eU)({key:"checkAuthAtom",default:1}),h=()=>{const e=(0,r.lZ)(p),t=(0,r.lZ)(g);return(0,n.useCallback)((async()=>{const a=await m();t(a),e((e=>e+1))}),[])},v=(0,r.gD)({key:"fullStateFetcher",get:async e=>{let{get:t}=e;return t(g)||await m()}}),f=(0,r.K0)({key:"currentUserFullState",get:e=>t=>{let{get:a}=t;return a(v)[e]}})},46741:(e,t,a)=>{"use strict";a.d(t,{Dk:()=>p,_s:()=>f,Ge:()=>A,JT:()=>v});a(14905),a(98992),a(8872);var n=a(96540),r=a(47444),o=a(65570),i=a(3914),s=a(37618);const c=(0,r.Iz)({key:"permissionsBySpaceId",default:{},effects:e=>(0,s.ES)(e)?[e=>{let{setSelf:t,trigger:a}=e;"get"===a&&t(s.yu.permissions)}]:[]});var l=a(97674),d=a(11368);const u=(0,r.eU)({key:"userPermissions",default:(0,d.Ay)("permissions")}),m=["space:Leave","room:Create","space:InviteUser","space:RemoveUser","space:UpdateMeta","space:Delete","room:Delete","room:AddNode","node:Delete","user:ChangeRoles","room:UpdateMeta","room:Leave","room:RemoveNode","billing:Manage"],g={"space:ReadSettings":e=>!m.some((t=>!e[t]))},p=(0,r.K0)({key:"permissionsSelector",get:e=>t=>{let{get:a}=t;return a(c(e))},set:e=>function(t){let{set:a}=t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a(c(e),(e=>(0,o.Ay)(e,n)?e:n))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),h=e=>{const t=(0,i.vt)(),a=(0,r.vc)(p(e||t)),o=(0,r.xf)(u);return(0,n.useMemo)((()=>{let e={...a};return"hasValue"===o.state&&(e={...e,...o.contents}),t=e,{...t,...Object.keys(g).reduce(((e,a)=>g[a](t)?{...e,[a]:a}:e),{})};var t}),[a,o.state])},v=(e,t)=>!!h(t)[e],f=()=>{const e=h();return(0,n.useMemo)((()=>(0,l.pj)(e)),[e])},A=()=>{const e=h();return(0,n.useMemo)((()=>(0,l.zl)(e)),[e])}},5668:(e,t,a)=>{"use strict";a.d(t,{ng:()=>h,tF:()=>g,xd:()=>m});a(62953);var n=a(47444),r=a(86723),o=a(11368);const i=(0,n.eU)({key:"currentUserSettings",default:(0,o.Ay)("settings")});var s=a(11604),c=a(22292),l=a(3914);const d=(0,n.K0)({key:"userSettings",get:e=>t=>{let{get:a}=t;const n=a(i);return e?n[e]:n},set:e=>(t,a)=>{let{set:n}=t;return n(i,(t=>e?{...t,[e]:"function"===typeof a?a(t[e]):a}:"function"===typeof a?a(t):a))}}),u=e=>{const t=(0,c.uW)("isAnonymous"),a=(0,n.lZ)(d(e)),o=(0,c.NJ)(),i=(0,s.DH)(o),[,l]=(0,r.A)("userSettings",{});return(0,n.Zs)((n=>{let{snapshot:r}=n;return async n=>{a(n);const o=r.retain();try{const a={...await r.getPromise(d()),...e?{[e]:n}:n};if(t)return void l(a);await i({settings:a})}catch(s){const t=await r.getPromise(d());a(e?t[e]:t)}finally{o()}}}),[e])},m=e=>(0,n.vc)(d(e)),g=e=>[m(e),u(e)],p="spaceSettings",h=e=>{var t;const a=(0,l.vt)(),n=m(p),r=u(p);return[null===n||void 0===n||null===(t=n[a])||void 0===t?void 0:t[e],t=>{r({...n||{},[a]:{...(null===n||void 0===n?void 0:n[a])||{},[e]:t}})}]}},76689:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(47444),r=a(11368);const o=(0,n.eU)({key:"currentUser",default:(0,r.Ay)("user")})},22292:(e,t,a)=>{"use strict";a.d(t,{Dm:()=>i,Ir:()=>d,NJ:()=>c,qO:()=>l,uW:()=>s});var n=a(47444),r=a(76689),o=a(11604);const i=(0,n.K0)({key:"userState",get:e=>t=>{let{get:a}=t;const n=a(r.A);return e?n[e]:n},set:e=>(t,a)=>{let{set:n}=t;n(r.A,(t=>e?{...t,[e]:a}:{...t,...a}))}}),s=e=>(0,n.vc)(i(e)),c=()=>(0,n.vc)(i("id")),l=function(e){let{shouldPersist:t,onSuccess:a,onFail:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=(0,n.lZ)(i(e)),l=c(),d=(0,o.DH)(l);return(0,n.Zs)((n=>{let{snapshot:r}=n;return async n=>{if(s(n),!t)return;const o=r.retain();try{await d({...e?{[e]:n}:n}),a&&a()}catch(c){const t=await r.getPromise(i());s(e?t[e]:t)}finally{o()}}}),[e,t,a,r])},d=(e,t)=>[s(e),l(e,t)]},2025:(e,t,a)=>{"use strict";a.d(t,{DH:()=>y,jA:()=>f,yK:()=>v,z2:()=>A});a(9920),a(41393),a(98992),a(3949),a(81454),a(62953);var n=a(47444),r=a(61649),o=a(71835),i=a(69765),s=a(3914),c=a(72802),l=a(68980),d=a(86652),u=a(58388),m=a(80925),g=a(27078),p=a(91517),h=a(43124);const v=(e,t)=>{const[a,n]=(0,o.A)();return(0,r.A)((function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=(0,c.k9)(e,t,r);return o.then((e=>(a({header:"Dashboards",text:"Dashboard successfully created!"}),e))).catch((e=>!e.isCancel&&n(e))),o}),[e,t])},f=()=>{const[e,t]=(0,o.A)();return(0,r.A)((a=>{let{dashboards:n}=a;const r=n.map((e=>{let{id:t}=e;return t})).toString(),o=n[0].roomId,i=n[0].spaceId;return(0,c.A_)(i,o,r).then((()=>e({header:"Dashboards",text:"Dashboards successfully deleted!"}))).catch((e=>!e.isCancel&&t))}),[])},A=e=>{const t=(0,l.fz)(e,"spaceId"),a=(0,l.fz)(e,"roomId"),[n,i]=(0,o.A)();return(0,r.A)((()=>{const r=(0,c.A_)(t,a,e);return r.then((()=>n({header:"Dashboards",text:"Dashboard successfully deleted!"}))).catch((e=>!e.isCancel&&i(e))),r}),[e,t,a])},y=function(e){let{onSuccess:t,onFail:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(0,m.e)(),o=(0,s.vt)(),v=(0,i.ID)();return(0,n.Zs)((n=>{let{snapshot:i,set:s}=n;return function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e;s((0,l.Qx)({id:n,key:"processing"}),!0);const m=i.getLoadable((0,l.Qx)({id:n})).contents,{layout:f,containerIds:A,containers:y}=i.getLoadable((0,d.kY)({id:n})).contents,b=i.getLoadable((0,u.nG)({id:n})).contents,S=(0,g.My)(r,n),k={version:m.version+1,name:m.name,snapshot:{uiState:{layout:f,containerIds:A,containers:y,cards:b}}},w=(0,c.mQ)(o,v,n,k);return w.then((e=>{let{data:a}=e;const{createdAt:n,id:r,name:i,roomID:c=v,slug:m,spaceID:g=o,updatedAt:f,version:A}=a,{cards:y}=(0,p.S)(a);s((0,u.nG)({id:r}),y),s((0,l.Qx)({id:r}),(e=>({...e,createdAt:n,id:r,name:i,roomId:c,slug:m,spaceId:g,updatedAt:f,version:A,processing:!1}))),s(h.H9,m),s((0,h.yC)([g,c,m]),r),s((0,d.Ie)(r)),S&&Object.keys(y).forEach((e=>{var t,a;"text"!==y[e].type&&(null===(t=S.getNode({cardId:e}))||void 0===t||null===(a=t.removePristine)||void 0===a||a.call(t))})),t&&t(a)})).catch((e=>{throw s((0,l.Qx)({id:n,key:"processing"},!1)),a&&a(e),e})),w}}))}},67544:(e,t,a)=>{"use strict";a.d(t,{A_:()=>x,Dn:()=>w,Kv:()=>b,Ts:()=>E,W6:()=>I,c6:()=>k,nM:()=>S});a(17333),a(9920),a(14905),a(98992),a(54520),a(3949),a(8872),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(96540),r=a(47444),o=a(33829),i=a(54621),s=a(21591),c=a(30673),l=a(8196),d=a(86652),u=a(68980),m=a(58388),g=a(72802),p=a(2025);const h=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...c.kG,...c.Pk,id:(0,o.A)(),contextScope:e,...t}},v="A",f=e=>function(t,a){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;return n=n||{},r=r||Object.keys(t)[0]||v,{...t,[r]:[...t[r]||[],{...e,...n,id:a}]}},A=f(l.u6),y=f(l.BC),b=e=>(0,r.Zs)((t=>{let{set:a,snapshot:n}=t;return async function(){let{dashboardId:t,containerId:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const i=(0,o.A)(),s={...c.kG,...c.cY,id:i,editing:!0};e=e||t;const l=await n.getPromise((0,d.kY)({id:e,key:"containerIds"}));r=r||l[0]||v,a((0,u.Qx)({id:e,key:"cardIds"}),(e=>[...e,i])),a((0,d.xB)(e),(e=>y(e,i,null,r))),a((0,d.MX)(e),(e=>e.includes(r)?e:[...new Set([...e,r])])),a((0,m.nG)({id:e,resourceId:i}),s)}})),S=e=>(0,r.Zs)((t=>{let{set:a,snapshot:n}=t;return async function(t){let{itemLayout:r,containerId:o,...i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>{};const c=h(t,i),{id:l,dashboardId:g}=c;e=e||g;const p=await n.getPromise((0,d.kY)({id:e,key:"containerIds"}));o=o||p[0]||v,a((0,u.Qx)({id:e,key:"cardIds"}),(e=>[...e,l])),a((0,d.xB)(e),(e=>A(e,l,r,o))),a((0,d.MX)(e),(e=>e.includes(o)?e:[...new Set([...e,o])])),a((0,m.nG)({id:e,resourceId:l}),c),s(c)}})),k=(e,t,a)=>(0,r.Zs)((n=>{let{set:r}=n;return()=>{r((0,u.Qx)({id:e,key:"cardIds"}),(e=>e.filter((e=>e!==t)))),r((0,d.xB)(e),(e=>{if(!t){const t={...e};return delete t[a],t}return a?{...e,[a]:e[a].filter((e=>{let{id:a}=e;return a!==t}))}:Object.keys(e).reduce(((a,n)=>({[n]:e[n].filter((e=>{let{id:a}=e;return a!==t}))})),{})})),a&&r((0,d.MX)(e),(e=>e.filter((e=>e!==a)))),t&&r((0,m.nG)({id:e}),(e=>{const a={...e};return delete a[t],a}))}})),w=function(e,t){let{onSuccess:a,onFail:n}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=(0,p.yK)(e,t);return(0,r.Zs)((r=>{let{set:i}=r;return async function(r){let c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a;try{const{data:a}=await o(r),n={...r,spaceId:e,roomId:t,...a,loaded:!0};i((0,u._d)(a.id),n),i((0,s.hZ)(t),n),c&&c(n)}catch(l){n?n(r):console.warn("failed",l)}}}),[o,e,a,n])},I=(e,t,a)=>{const r=w(e,t,a);return(0,n.useCallback)(((n,o,i)=>{const s=h(o,i);return r({name:n},(n=>{var r;(0,g.mQ)(e,t,n.id,{version:n.version+1||2,snapshot:{uiState:A({},s.id,i.itemLayout),items:[{...s,cardAttributes:{...i,id:s.id}}]}}),null===a||void 0===a||null===(r=a.onSuccess)||void 0===r||r.call(a,n)}))}),[r])},E=()=>(e=>{const t=(0,i.nT)();return(0,r.Zs)((a=>{let{snapshot:n,set:r}=a;return async function(a){let{ids:o}=a,{onSuccess:i,onFail:c}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const l=await n.getPromise((0,u.dE)(o));e({dashboards:l}).then((()=>{l.forEach((e=>{let{id:a,roomId:n}=e;r((0,u.kg)(a)),r((0,s.wt)(n),[a]),t(a)})),i&&i(l)})).catch((e=>{c?c(l):console.warn("failed",e)}))}}),[e])})((0,p.jA)()),x=(e,t)=>function(e,t){let{onSuccess:a,onFail:n}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=(0,u.fz)(e,"spaceId"),c=(0,u.fz)(e,"roomId"),l=(0,i.nT)();return(0,r.Zs)((r=>{let{snapshot:o,set:i}=r;return async()=>{const r=await o.getPromise((0,u.Qx)({id:e}));try{await t(),i((0,u.kg)(e)),i((0,s.wt)(c),[e]),l(e),a&&a(r)}catch(d){n?n(r):console.warn("failed",d)}}}),[t,o,c,e,a,n])}(e,(0,p.z2)(e),t)},72802:(e,t,a)=>{"use strict";a.d(t,{A_:()=>c,f7:()=>l,k9:()=>s,mQ:()=>i});var n=a(26655),r=a(37618);const o=(0,a(63457).A)("netdata"),i=(e,t,a,i)=>(0,r.ES)(e)&&(0,r.tB)(t)&&a===r.LA?o.get(r.LA).then((e=>e||r.mz)).then((e=>{const t={...e,...i};return o.set(r.LA,t),{data:t}})):n.A.patch("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards/").concat(a),i),s=(e,t,a)=>n.A.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards"),a),c=(e,t,a)=>n.A.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards?dashboard_ids=").concat(a)),l=(e,t,a)=>(0,r.ES)(e)&&(0,r.tB)(t)&&a===r.LA?o.get(r.LA).then((e=>({data:e||r.mz}))):n.A.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards/").concat(a))},30673:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>s,Pk:()=>r,cY:()=>o,kG:()=>i});var n=a(47444);const r={pristine:{},id:null,type:"chart"},o={pristine:{},id:null,text:"",editing:!1,type:"text",textType:"text"},i={id:null,type:""},s=(0,n.Iz)({key:"dashboardCards",default:{}})},58388:(e,t,a)=>{"use strict";a.d(t,{T6:()=>c,bE:()=>s,nG:()=>o,r:()=>d,v_:()=>l});var n=a(47444),r=a(30673);const o=(0,n.K0)({key:"dashboardCardsState",get:e=>{let{id:t,resourceId:a}=e;return e=>{let{get:n}=e;const o=n((0,r.Ay)(t));return a?o[a]||r.kG:o}},set:e=>{let{id:t,resourceId:a}=e;return(e,n)=>{let{set:o}=e;return a?"function"===typeof n?o((0,r.Ay)(t),(e=>({...e,[a]:n(e[a])}))):void o((0,r.Ay)(t),(e=>({...e,[a]:{...e[a],...n}}))):o((0,r.Ay)(t),n)}}}),i=(0,n.K0)({key:"dashboardCardState",get:e=>{let{id:t,resourceId:a,key:n}=e;return e=>{let{get:r}=e;const i=r(o({id:t,resourceId:a}));return n?i[n]:i}},set:e=>{let{id:t,resourceId:a,key:n}=e;return(e,r)=>{let{set:i}=e;return i(o({id:t,resourceId:a}),n?{[n]:r}:r)}}}),s=(e,t,a)=>(0,n.vc)(i({id:e,resourceId:t,key:a})),c=e=>{const t=(0,n.vc)(i({id:e}));return e=>t[e]||r.kG},l=(e,t,a)=>(0,n.lZ)(i({id:e,resourceId:t,key:a})),d=(e,t,a)=>(0,n.L4)(i({id:e,resourceId:t,key:a}))},8018:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(58168),r=(a(62953),a(96540)),o=a(10058),i=a(80542),s=a(27229),c=a(49667);const l="Cannot exceed ".concat(c.q," characters"),d=e=>{const t=e.length<=c.q;return(0,i.H)(t,l)},u=e=>{let{value:t,isValid:a,setIsValid:c,onChange:l,label:u,validators:m=[],hint:g,placeholder:p="Enter dashboard name",...h}=e;const v=(0,i.k)([d,...m]),[f,A]=(0,r.useState)("");return(0,r.useEffect)((()=>{const e=v(t),n=e.isValid,r=(0,s.W)(e);!a&&n?c(!0):a&&!n&&c(!1),A(r||"")}),[a,c,v,t]),r.createElement(o.TextInput,(0,n.A)({label:u||" ",name:"name",placeholder:p,value:t,onChange:l,hint:g,error:!a&&f},h))}},49667:(e,t,a)=>{"use strict";a.d(t,{$:()=>o,q:()=>r});var n=a(68831);const r=50,o="".concat(n.A.assetsBaseURL,"/img/new-dashboard.svg")},8196:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>s,BC:()=>r,u6:()=>o,ue:()=>i});var n=a(47444);const r={id:null,left:0,top:0,width:12,height:2,minWidth:1,minHeight:.5},o={id:null,left:0,top:0,width:10,height:9,minWidth:1,minHeight:3},i={layout:{},containerIds:[],containers:{},pristine:{}},s=(0,n.Iz)({key:"dashboardLayout",default:i})},86652:(e,t,a)=>{"use strict";a.d(t,{kY:()=>s,Ie:()=>d,MX:()=>m,xB:()=>l,Ix:()=>g,QZ:()=>p,B1:()=>u,Xc:()=>c});var n=a(47444),r=a(65570);var o=a(8196);const{updatePristine:i}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"pristine";return{updatePristine:(t,a,n)=>{if(!(a in(t[e]||{}))&&!(0,r.Ay)(t[a],n))return{...t,[e]:{...t[e],[a]:t[a]}};if((0,r.Ay)(t[e][a],n)){const n={...t[e]};return delete n[a],{...t,[e]:n}}return t},resetPristine:t=>({...t,...t[e],[e]:{}})}}(),s=(0,n.K0)({key:"dashboardLayoutState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const r=n((0,o.Ay)(t));return a?r[a]:r}},set:e=>(t,a)=>{let{set:n}=t;n((0,o.Ay)(e),{...o.ue,...a})}}),c=(e,t)=>(0,n.vc)(s({id:e,key:t})),l=(0,n.K0)({key:"updateDashboardLayoutState",get:e=>t=>{let{get:a}=t;return a(s({id:e,key:"layout"}))},set:e=>(t,a)=>{let{set:n}=t;n((0,o.Ay)(e),(e=>({...e,...i(e,"layout",a),layout:a})))}}),d=(0,n.K0)({key:"removePristineDashboardLayoutState",set:e=>t=>{let{set:a}=t;a((0,o.Ay)(e),(e=>({...e,pristine:{}})))}}),u=e=>{const t=c(e,"layout"),a=(e=>(0,n.lZ)(l(e)))(e);return[t,a]},m=(0,n.K0)({key:"updateDashboardContainerIdsState",get:e=>t=>{let{get:a}=t;return a(s({id:e,key:"containerIds"}))},set:e=>(t,a)=>{let{set:n}=t;n((0,o.Ay)(e),(e=>({...e,...i(e,"containerIds",a),containerIds:a})))}}),g=e=>{const t=c(e,"containerIds"),a=(e=>(0,n.lZ)(m(e)))(e);return[t,a]},p=((0,n.K0)({key:"updateDashboardContainersState",get:e=>t=>{let{get:a}=t;return a(s({id:e,key:"containers"}))},set:e=>(t,a)=>{let{set:n}=t;n((0,o.Ay)(e),(e=>({...e,...i(e,"containers",a),containers:a})))}}),(e,t)=>{var a;return null===(a=c(e,"containers"))||void 0===a?void 0:a[t]})},68980:(e,t,a)=>{"use strict";a.d(t,{_u:()=>S,_d:()=>b,yl:()=>w,kg:()=>k,Qx:()=>h,dE:()=>A,zi:()=>T,oj:()=>N,zN:()=>C,TN:()=>v,fz:()=>f,Sf:()=>y});a(41393),a(8159),a(98992),a(81454),a(37550),a(62953);var n=a(96540),r=a(47444),o=a(3914),i=a(69765),s=a(80925),c=a(86652),l=a(58388),d=a(43124),u=a(37618);const m={id:null,loaded:!1,fullyLoaded:!1,loading:!1,processing:!1,isOwner:!1,spaceSlug:"",roomSlug:"",spaceId:"",roomId:"",name:"",slug:"",version:0,createdAt:"",updatedAt:"",cardIds:[]},g=(0,r.Iz)({key:"dashboard",default:m,effects:e=>u.LA===e?[e=>{let{setSelf:t,trigger:a}=e;"get"===a&&t(u.mz)}]:[]});var p=a(27078);const h=(0,r.K0)({key:"dashboardState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const r=n(g(t));return a?r[a]:r}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;return a?"function"===typeof n?r(g(t),(e=>({...e,[a]:n(e[a])}))):void r(g(t),(e=>({...e,[a]:n}))):r(g(t),{...m,...n})}}}),v=e=>{let{id:t,key:a}=e;return(0,r.L4)(h({id:t,key:a}))},f=(e,t)=>(0,r.vc)(h({id:e,key:t})),A=(0,r.K0)({key:"dashboardsState",get:e=>t=>{let{get:a}=t;return e.map((e=>a(h({id:e}))))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),y=e=>(0,r.vc)(A(e)),b=(0,r.K0)({key:"dashboardInitializeState",get:e=>t=>{let{get:a}=t;return a(g(e))},set:e=>(t,a)=>{let{set:n}=t;n(h({id:e}),{...a,loaded:!0});const{spaceId:r,roomId:o,slug:i}=a;n((0,d.yC)([r,o,i]),e)}}),S=(0,r.K0)({key:"dashboardFullyInitializeState",set:e=>(t,a)=>{let{set:n}=t,{layout:r={},containerIds:o=[],containers:i={},dashboard:s={},cards:u={}}=a;n(h({id:e}),{...s,loaded:!0,fullyLoaded:!0,loading:!1}),n((0,c.kY)(e),{layout:r,containerIds:o,containers:i}),n((0,l.nG)({id:e}),u);const{spaceId:m,roomId:g,slug:p}=s;n((0,d.yC)([m,g,p]),e)}}),k=(0,r.K0)({key:"dashboardReset",set:e=>t=>{let{get:a,set:n,reset:r}=t;const{spaceId:o,roomId:i,slug:s}=a(g(e));r(g(e)),n(d.H9,null),r((0,d.yC)([o,i,s]))}}),w=(0,r.K0)({key:"dashboardLoadingState",set:e=>(t,a)=>{let{set:n}=t;n(h({id:e,key:"loading"}),a)}}),I=e=>{let{pristine:t={}}=e;return 0===Object.keys(t).length},E=(0,r.K0)({key:"dashboardIsPristineState",get:e=>t=>{let{get:a}=t;const n=a((0,l.nG)({id:e}));return!Object.keys(n).length||Object.keys(n).some((e=>I(n[e])))}}),x=(0,r.K0)({key:"dashboardLayoutIsPristineState",get:e=>t=>{let{get:a}=t;return I(a((0,c.kY)({id:e})))}}),C=e=>{const t=(0,s.e)(),a=()=>{const a=(0,p.My)(t,e);return!a||!a.getChildren().some((e=>{return t=e.getAttribute("pristine"),!(0===Object.keys(t).length);var t}))},[o,i]=(0,n.useState)(a);(0,n.useEffect)((()=>null===t||void 0===t?void 0:t.on("pristineChanged",(()=>i(a)))),[t]);const c=(0,r.vc)(E(e)),l=(0,r.vc)(x(e));return o&&c&&l},T=e=>{const t=(0,o.vt)(),a=(0,i.ID)(),n=(0,d.Tf)();return(0,d.mS)(t,a,e||n)},N=e=>{const t=T();return f(t,e)}},43124:(e,t,a)=>{"use strict";a.d(t,{H9:()=>o,Tf:()=>s,Xv:()=>c,mS:()=>l,yC:()=>i});a(62953);var n=a(47444),r=a(37618);const o=(0,n.eU)({key:"currentDashboardSlug",default:null}),i=(0,n.Iz)({key:"dashboardIdBySlug",default:"",effects:e=>{let[t,a,n]=e;return(0,r.ES)(t)&&(0,r.tB)(a)&&n===r.LA?[e=>{let{setSelf:t,trigger:a}=e;"get"===a&&t(r.LA)}]:[]}}),s=()=>(0,n.vc)(o),c=e=>(0,n.lZ)(o,e),l=(e,t,a)=>(0,n.vc)(i([e,t,a]))},27078:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>F,My:()=>B,qh:()=>z});a(3064),a(9920),a(98992),a(72577),a(3949);var n=a(96540),r=a(17323),o=a(3914),i=a(80925),s=a(11128),c=a(45467),l=a(68980),d=(a(62953),a(47767)),u=a(22332),m=a(58388);a(25440);var g=a(58384),p=a(58168),h=a(46741);const v=e=>{let{category:t,closeParent:a,context:r,openDialog:o,...i}=e;const s=(0,h.JT)("dashboard:Update");return n.createElement(g.t,(0,p.A)({icon:"trashcan",onClick:()=>{o(),a()},"data-ga":"".concat(t,"::click-remove::").concat(r),"data-testid":"removeChart-option",disabled:!s},i),"Remove")},f=e=>{let{category:t,closeParent:a,context:r,openModal:o}=e;const i=(0,h.JT)("dashboard:Update");return n.createElement(g.t,{icon:"pencilOutline",onClick:()=>{a(),o()},"data-testid":"renameChart-option","data-ga":"".concat(t,"::click-rename-chart::").concat(r),disabled:!i},"Rename chart")};var A=a(10058),y=a(67544),b=a(47762);const S=e=>{let{cardId:t,close:a,id:r}=e;const{nodeId:o,chartId:i}=(0,m.bE)(r,t),s=(0,b.xY)(o,"name"),c=(0,y.c6)(r,t);return n.createElement(A.ConfirmationDialog,{"data-ga":"remove-chart-dialog","data-testid":"removeChartDialog",handleConfirm:c,handleDecline:a,message:n.createElement(n.Fragment,null,"You are about to remove ",n.createElement("strong",null,i),s&&n.createElement(n.Fragment,null," ","of node ",n.createElement("strong",null,s)),".",n.createElement("br",null),"Are you sure you want to continue?"),title:"Remove chart"})};var k=a(15327),w=a(74618),I=a(45765),E=a(78969),x=a(8018),C=a(2025);const T=e=>{let{id:t,cardId:a,close:r}=e;const[o,i]=(0,n.useState)(!0),[s,c]=(0,m.r)(t,a,"title"),[l,d]=(0,n.useState)(s||""),u=l!==s,g=o&&u,p=(0,C.DH)(t),h=(0,n.useCallback)((()=>{c(l),p().then((()=>r()))}),[r,l]);return n.createElement(k.GO,{onClose:r,"data-testid":"renameChart-modal"},n.createElement(w.z,{onClose:r,title:"Rename Chart"},n.createElement(A.Button,{label:"Save Changes",onClick:h,disabled:!g})),n.createElement(I.U,{"data-testid":"renameChart-title"},"Rename chart ",s),n.createElement(k.Yv,null,n.createElement(x.A,{value:l,label:"Name",onChange:e=>{d(e.target.value)},isValid:o,setIsValid:i,isDirty:u,instantFeedback:"all",onKeyDown:e=>e.keyCode===E.I7&&g&&h(),"data-testid":"renameChart-input",placeholder:"Chart name"})))};var N=a(87659);const R="chart-options",M="custom-dashboard",D=e=>{let{id:t,cardId:a,onClick:r}=e;const o=(0,d.Zp)(),i=(0,m.bE)(t,a,"chartId"),{spaceSlug:s,roomSlug:c}=(0,l.fz)(t);return n.createElement(g.t,{icon:"line_chart",onClick:()=>{r();const e=(e=>{return"".concat("chart_").concat("string"===typeof(t=e)?t.replace(/ /g,"_").replace(/:/g,"_").replace(/\(/g,"_").replace(/\)/g,"_").replace(/\./g,"_").replace(/\//g,"_"):"");var t})(i);o("/spaces/".concat(s,"/rooms/").concat(c,"/overview#chartName=").concat(e))},"data-ga":"".concat(R,"::click-go-to-chart::").concat(M),"data-testid":"chart-goToChart"},"Go to Chart")},_=()=>{const[e,,t,a]=(0,N.A)(),[r,,o,i]=(0,N.A)(),s=(0,u.useAttributeValue)("cardId"),c=(0,u.useAttributeValue)("dashboardId");return n.createElement(n.Fragment,null,n.createElement(g.A,{category:R,context:M,testId:"chartDropdown"},(e=>{let{close:a}=e;return n.createElement(n.Fragment,null,n.createElement(D,{id:c,cardId:s,onClick:a}),n.createElement(f,{id:c,cardId:s,closeParent:a,openModal:o,category:R,context:M}),n.createElement(v,{cardId:s,category:R,closeParent:a,context:M,id:c,openDialog:t}))})),e&&n.createElement(S,{cardId:s,close:a,id:c}),r&&n.createElement(T,{cardId:s,close:i,id:c}))};var U=a(60247),P=a(13752),L=a(92815),K=a(72582);const B=(e,t)=>e&&e.getRoot().getChildren().find((e=>e.match({id:t}))),z=e=>t=>"dashboard-page::".concat(e.getAttribute("id"),"::").concat(t),F=e=>{const{spaceId:t,roomId:a}=(0,l.fz)(e),d=(0,i.e)(),u=(0,s.w7)({extraKey:"dashboard-".concat(e),merge:!1,scoped:!0}),m=(0,o.dg)();(0,n.useMemo)((()=>{if(!d)return;let n=B(d,e);n||(n=d.makeContainer({attributes:{...d.getRoot().getAttributes(),id:e,navigation:"pan",nodesScope:u,overlays:{proceeded:{type:"proceeded"}},host:m?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(t,"/rooms/").concat(a),leftHeaderElements:[_,r.default],toolboxElements:[K.default,P.default,L.default,U.A]}}),d.appendChild(n))}),[d,e]),(0,c.A)((()=>{if(!d)return;const t=B(d,e);t&&t.getNodes().forEach((e=>e.updateAttribute("nodesScope",u)))}),[d,a,u]),(0,n.useEffect)((()=>()=>{const t=B(d,e);t&&t.destroy()}),[d,a])}},91517:(e,t,a)=>{"use strict";a.d(t,{A:()=>f,S:()=>v});a(41393),a(14905),a(98992),a(81454),a(8872),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(96540),r=a(47444),o=a(44554),i=a(8196),s=a(30673),c=a(72802),l=a(68980);const d={TextCard:"text",ChartCard:"chart",compositeChart:"chart",chart:"chart",text:"text"},u=new Set(["text","chart"]),m=(e,t)=>{var a,n;return{...null!==(a=e[(t=(e=>{let{i:t,id:a=t,x:n,left:r=n,y:o,top:i=o,w:s,width:c=s,h:l,height:d=l}=e;return{id:a,width:c,height:d,left:r,top:i}})(t)).id])&&void 0!==a&&a.type&&"text"!==(null===(n=e[t.id])||void 0===n?void 0:n.type)?i.u6:i.BC,...t}},g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.trim().startsWith("<p>")?e:"<p>".concat(e,"</p>")},p="A",h=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const a=Array.isArray(e),n=[],r=t.reduce(((e,t)=>{let{type:a,cardID:r,id:o=r,chartID:i,chartId:c=i,nodeID:l,nodeId:m=l,chartMetadata:p,context:h,attributes:v,cardAttributes:f=v,contextScope:A,text:y,...b}=t;if(A=A||[h||(null===p||void 0===p?void 0:p.context)||c],a=d[a]||a,e[o]={id:o,type:a,nodeId:m,contextScope:A},u.has(a)){if(n.push(o),"text"===a)return e[o]={...s.cY,...f,text:g(y||f.text),...e[o]},e;e[o]=(e=>{let{aggregationMethod:t,chartType:a,dimensions:n=[],selectedDimensions:r=n||[],filteredLabels:o=[],selectedLabels:i=o||[],selectedNodeIds:c=[],selectedNodes:l=c||[],selectedInstances:d=[],chartId:u,groupBy:m,groupingMethod:g,id:p,host:h,...v}=e;return{...s.Pk,aggregationMethod:t||"avg",chartType:a||"line",selectedDimensions:Array.isArray(r)?r:[],selectedLabels:Array.isArray(i)?i:i&&"object"===typeof i?Object.keys(i):[],selectedNodes:Array.isArray(l)?l:[],selectedInstances:Array.isArray(d)?d:u?[u]:[],groupBy:Array.isArray(m)?m:m?[m]:["dimension"],groupingMethod:g||"average",id:p,...v}})({...b,...f,chartId:c,...e[o]})}return e}),{});return{layout:a?e?{[p]:e.map((e=>m(r,e)))}:{[p]:t.map((e=>{let{layout:t}=e;return m(r,t)}))}:e||{[p]:[]},containerIds:[p],containers:{[p]:{name:p}},cards:r}},v=e=>{var t;let{id:a,name:n,slug:r,version:i,createdAt:s,updatedAt:c,snapshot:l}=e;const d=Array.isArray(l.uiState)||!(null!==(t=l.uiState)&&void 0!==t&&t.layout),{layout:u,containerIds:g,containers:p,cards:v}=d?h(l.uiState,l.items||[]):l.uiState,f={id:a,name:n,slug:r,version:i,createdAt:s,updatedAt:c,cardIds:Object.keys(v)};return{layout:Object.keys(u).reduce(((e,t)=>({...e,[t]:(0,o.bj)(u[t].map((e=>m(v,e))),"vertical")})),{}),containerIds:g,containers:p,dashboard:f,cards:v}},f=(e,t)=>{let{spaceId:a,spaceSlug:o,roomId:i,roomSlug:s}=t;const[d,u]=(0,n.useState)(!0),m=(0,r.Zs)((t=>{let{set:n}=t;return async()=>{u(!0),n((0,l.yl)(e),!0);const{data:t}=await(0,c.f7)(a,i,e),{layout:r,containerIds:d,containers:m,dashboard:g,cards:p}=v(t);n((0,l._u)(e),{layout:r,containerIds:d,containers:m,dashboard:{...g,spaceSlug:o,roomSlug:s,spaceId:a,roomId:i},cards:p}),u(!1),n((0,l.yl)(e),!1)}}));return(0,n.useEffect)((()=>{e&&m(e)}),[e]),d}},54702:(e,t,a)=>{"use strict";a.d(t,{D4:()=>i,XY:()=>c,kE:()=>o,w5:()=>l});a(41393),a(81454);var n=a(26655);const r=e=>e.map((e=>{let{accountID:t,...a}=e;return{id:t,...a}})),o=e=>n.A.get("/api/v2/spaces/".concat(e,"/members"),{allow401:!0,transform:r}),i=(e,t)=>n.A.get("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/members"),{allow401:!0,transform:r}),s=e=>{let{account_ids:t}=e;return"account_ids=".concat(t.join(","))},c=(e,t)=>n.A.delete("/api/v1/spaces/".concat(e,"/members"),{paramsSerializer:s,params:{account_ids:t}}),l=(e,t,a)=>n.A.patch("/api/v1/spaces/".concat(e,"/members/").concat(t),a)},35273:(e,t,a)=>{"use strict";a.d(t,{A:()=>o,u:()=>r});var n=a(47444);const r={id:null,avatarURL:null,deactivated:!1,email:"",joinedAt:null,name:"",role:""},o=(0,n.eU)({key:"member",default:{}})},70716:(e,t,a)=>{"use strict";a.d(t,{Uv:()=>l,WJ:()=>d,Z6:()=>c,m:()=>s});a(9920),a(41393),a(98992),a(3949),a(81454),a(62953);var n=a(47444),r=a(64454),o=a(65570),i=a(35273);const s=(0,n.K0)({key:"memberState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const r=n(i.A)[t]||i.u;return a?r[a]:r}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r(i.A,a?"function"!==typeof n?e=>({...e,[t]:{...e[t],[a]:n}}):e=>({...e,[t]:{...e[t],[a]:n(e[t][a])}}):e=>({...e,[t]:{...i.u,...e[t],...n}}))}}}),c=(0,n.K0)({key:"membersState",get:e=>t=>{let{get:a}=t;return e.map((e=>a(s({id:e}))))},set:()=>(e,t)=>{let{set:a,get:n}=e;const r=n(i.A);t.forEach((e=>{r[e.id]=e})),a(i.A,r)},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),l=e=>(0,n.vc)(c(e)),d=(0,n.gD)({key:"membersInitialize",get:e=>{let{get:t}=e;return t(i.A)},set:(e,t)=>{let{set:a}=e,{values:n,merge:s}=t;return a(i.A,(e=>{const t=s?(0,r.A)(e,n):n;return(0,o.Ay)(t,e)?e:t}))}})},54621:(e,t,a)=>{"use strict";a.d(t,{DF:()=>S,_F:()=>h,ZB:()=>v,xK:()=>A,nT:()=>y,NU:()=>b,tV:()=>f});a(17333),a(3064),a(41393),a(98992),a(54520),a(72577),a(81454),a(62953);var n=a(96540),r=a(47444),o=a(3914),i=a(69765);const s=e=>{let{spaceSlug:t,roomSlug:a}=e;return"".concat(t,"-").concat(a,"-tabs")},c=(e,t)=>{let{spaceSlug:a,roomSlug:n}=e;const r=s({spaceSlug:a,roomSlug:n});Promise.resolve().then((()=>{try{localStorage.setItem(r,JSON.stringify(t))}catch(e){}}))},l=(0,r.Iz)({key:"navigation",default:function(e){let{spaceSlug:t,roomSlug:a}=e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{const e=s({spaceSlug:t,roomSlug:a}),r=localStorage.getItem(e);return r?JSON.parse(r):n}catch(r){return n}}}),d=(0,r.K0)({key:"navigationTabsState",get:e=>{let{spaceSlug:t,roomSlug:a}=e;return e=>{let{get:n}=e;return n(l({spaceSlug:t,roomSlug:a}))}},set:e=>{let{spaceSlug:t,roomSlug:a}=e;return(e,n)=>{let{set:r}=e;n&&t&&a&&r(l({spaceSlug:t,roomSlug:a}),(e=>{if(e.find((e=>{let{id:t}=e;return n.id===t})))return e;const r=[...e,n];return c({spaceSlug:t,roomSlug:a},r),r}))}}}),u=(0,r.K0)({key:"navigationTabsState/remove",get:()=>()=>null,set:e=>{let{spaceSlug:t,roomSlug:a}=e;return(e,n)=>{let{set:r}=e;r(l({spaceSlug:t,roomSlug:a}),(e=>{const r=e.filter(((e,t)=>t!==n));return c({spaceSlug:t,roomSlug:a},r),r}))}}}),m=(0,r.K0)({key:"navigationTabsState/removeById",get:()=>()=>null,set:e=>{let{spaceSlug:t,roomSlug:a}=e;return(e,n)=>{let{set:r}=e;r(l({spaceSlug:t,roomSlug:a}),(e=>{const r=e.filter((e=>e.id!==n));return c({spaceSlug:t,roomSlug:a},r),r}))}}}),g=(0,r.K0)({key:"navigationTabsState/reorder",get:()=>()=>null,set:e=>{let{spaceSlug:t,roomSlug:a}=e;return(e,n)=>{let{set:r}=e,{sourceIndex:o,destinationIndex:i}=n;r(l({spaceSlug:t,roomSlug:a}),(e=>{const n=[...e],[r]=n.splice(o,1);return n.splice(i,0,r),c({spaceSlug:t,roomSlug:a},n),n}))}}}),p=(0,r.K0)({key:"navigationTabsState/removeById",get:()=>()=>null,set:e=>{let{spaceSlug:t,roomSlug:a}=e;return(e,n)=>{let{set:r}=e,{id:o,slug:i,path:s}=n;r(l({spaceSlug:t,roomSlug:a}),(e=>{const n=e.map((e=>e.id!==o?e:{...e,title:i,path:s}));return c({spaceSlug:t,roomSlug:a},n),n}))}}}),h=()=>{const e=(0,o.bq)(),t=(0,i.QW)();return(0,r.vc)(d({spaceSlug:e,roomSlug:t}))},v=e=>{let{title:t,path:a,id:s,destination:c,type:l="nodes",params:u,isReady:m=!0,...g}=e;const p=(0,i.r9)(),h=(0,o.bq)(),v=(0,i.QW)(),f=(0,r.lZ)(d({spaceSlug:h,roomSlug:v}));(0,n.useEffect)((()=>{if(!m)return;if(!s||!t)return;f({id:s,title:t,type:l,icon:"alerts"===l?"alarm":"node_hollow",params:u,path:"".concat(a||p,"/").concat(l,"/").concat(c),...g})}),[p,t,a,s,c,l,f,m])},f=()=>{const e=(0,i.r9)(),t=(0,o.bq)(),a=(0,i.QW)(),s=(0,r.lZ)(d({spaceSlug:t,roomSlug:a}));return(0,n.useCallback)((t=>{let{title:a,path:n,id:r,destination:o,type:i="nodes",params:c,...l}=t;if(!r||!a)return;s({id:r,title:a,type:i,icon:"alerts"===i?"alarm":"node_hollow",params:c,path:"".concat(n||e,"/").concat(i,"/").concat(o),...l})}),[e,s])},A=()=>{const e=(0,o.bq)(),t=(0,i.QW)();return(0,r.lZ)(u({spaceSlug:e,roomSlug:t}))},y=()=>{const e=(0,o.bq)(),t=(0,i.QW)();return(0,r.lZ)(m({spaceSlug:e,roomSlug:t}))},b=()=>{const e=(0,o.bq)(),t=(0,i.QW)();return(0,r.lZ)(g({spaceSlug:e,roomSlug:t}))},S=()=>{const e=(0,o.bq)(),t=(0,i.QW)();return(0,r.lZ)(p({spaceSlug:e,roomSlug:t}))}},9224:(e,t,a)=>{"use strict";a.d(t,{Bz:()=>h,F:()=>y,UL:()=>l,VP:()=>u,az:()=>i,e0:()=>A,iY:()=>m,ih:()=>b,q5:()=>s,sm:()=>p,tz:()=>d,uQ:()=>c,ys:()=>g});var n=a(26655),r=a(37618),o=a(49286);const i=e=>n.A.get("/api/v1/agents/".concat(e,"/user_agent_node_access"),{transform:o.bn}),s=(e,t,a)=>n.A.get("/api/v2/bearer_get_token?node_id=".concat(e,"&claim_id=").concat(a,"&machine_guid=").concat(t),{transform:function(){let{token:e,expiration:t,bearer_protection:a}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{token:e,expiration:t,bearerProtection:a}}}),c=e=>n.A.get("/api/v1/accounts/".concat(e,"/nodes")),l=(e,t)=>n.A.post("/api/v1/accounts/".concat(e,"/nodes/").concat(t,"/touch")),d=(e,t)=>n.A.get("/api/v1/accounts/".concat(e,"/nodes/").concat(encodeURIComponent(t))),u=(e,t)=>{const a=(0,r.ES)(t);return n.A.get(a?"/api/v1/info":"/api/v1/nodes/".concat(e,"/info"),{transform:t=>({...t,nodeId:e}),baseURL:a?window.envSettings.agentApiUrl:""})},m=e=>n.A.get("/api/v1/agents/".concat(e,"/info")),g=e=>n.A.get("/api/v1/agents/".concat(e,"/user_access"),{transform:e=>e.authorizedNodeIDs}).catch((()=>({data:[]}))),p=(e,t)=>n.A.delete("/api/v1/accounts/".concat(e,"/nodes"),{params:{node_ids:t.join(",")}}),h=(e,t,a,r)=>n.A.put("/api/v1/accounts/".concat(e,"/nodes/").concat(t),{name:a,urls:r}),v="*",f=[v],A=(e,t,a)=>{let{baselineAfter:o,baselineBefore:i,highlightAfter:s,highlightBefore:c,method:l,options:d,group:u,nodeIds:m,points:g,context:p,aggregation:h="avg",groupBy:A=[]}=a;return(0,r.ES)(e)?n.A.get("".concat(window.envSettings.agentApiUrl,"/api/v2/weights"),{params:{format:"json",options:"".concat(Array.isArray(d)?d.join("|"):d,"|minify|nonzero|unaligned"),contexts:v,scope_contexts:p||v,scope_nodes:m.join("|")||v,nodes:v,instances:v,dimensions:v,labels:v,group_by:A.join("|"),aggregation:h,method:l||"ks2",time_group:u||"average",time_group_options:"",time_resampling:0,after:Math.floor(s/1e3),before:Math.floor(c/1e3),points:g,baseline_after:Math.floor(o/1e3),baseline_before:Math.floor(i/1e3),timeout:18e4}}):n.A.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/weights"),{selectors:{nodes:f,contexts:f,dimensions:f,labels:f,alerts:f},aggregations:{time:{time_group:u||"average",time_group_options:"",time_resampling:0},metrics:[{group_by:A,aggregation:h}]},window:{after:Math.floor(s/1e3),before:Math.floor(c/1e3),points:g,baseline:{after:Math.floor(o/1e3),before:Math.floor(i/1e3)}},scope:{nodes:m,contexts:p?[p]:f},method:l||"ks2",options:d?Array.isArray(d)?d:[d]:[],timeout:18e4})},y=e=>n.A.get("/api/v3/spaces/".concat(e,"/settings/preferred_nodes")),b=(e,t)=>n.A.post("/api/v3/spaces/".concat(e,"/settings/preferred_nodes"),{preferred_node_ids:t})},41739:(e,t,a)=>{"use strict";a.d(t,{A:()=>o,q:()=>r});var n=a(47444);const r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{fullyLoaded:!1,loaded:!1,id:(null===e||void 0===e?void 0:e.nd)||(null===e||void 0===e?void 0:e.mg)||null,mg:null,nd:null,isDeleted:!1,name:"",version:"",ni:null,labels:{},labelKeys:[],hw:{architecture:"",cpuFrequency:"",cpus:"",memory:"",diskSpace:"",virtualization:"",container:""},os:{id:"",nm:"",v:"",kernel:{nm:"",v:""}},capabilities:{},state:"",isProtobufCapable:!0,urls:[],accessCount:0,lastAccessTime:"",updateSeverity:"",hasAccessibleData:!1,isLive:!1,nodeStatus:null,isPreferred:!0}},o=(0,n.eU)({key:"nodes",default:{}})},11128:(e,t,a)=>{"use strict";a.d(t,{Oj:()=>b,PF:()=>S,QY:()=>p,_e:()=>k,eO:()=>f,qr:()=>v,u7:()=>y,w7:()=>A});a(17333),a(9920),a(41393),a(14905),a(8159),a(98992),a(54520),a(3949),a(81454),a(8872),a(37550),a(62953);var n=a(47444),r=a(27467),o=a(67990),i=a(69765),s=a(47762);const c=e=>(t,a)=>!Array.isArray(a)||!a.length||"".concat(a).includes(t[e]),l={nodeStatuses:c("nodeStatus"),nodeLabels:(e,t)=>!((!Array.isArray(t)||t.length)&&t)||Object.keys(e.labels).some((a=>!Array.isArray(t)||!t.length||t.includes("".concat(a,"|").concat(e.labels[a])))),nodeCapabilities:c("capabilityKeys"),nodeVersions:c("version")},d={excludedNodeIds:c("id")},u=[],m=(0,n.K0)({key:"nodesFilters",get:e=>{let{extraKey:t,key:a,omit:n,merge:o}=e;return e=>{let{get:i}=e;const s=n&&n.split(":::"),c=t?i(p({key:a,merge:!1})):[],u=!t&&!!s&&!s.includes("selectedNodeIds"),m=s&&s.includes("selectedNodeIds")||t&&o?c:i((0,r.GA)({key:a,extraKey:t,flavour:"arr",param:"selectedNodeIds"}))||[];let g=[];const h=i((0,r.GA)({key:a,extraKey:t,flavour:"arr",merge:o}));return Object.keys(h).forEach((e=>{var n;const c=!!s&&s.includes(e);(l[e]||d[e])&&null!==(n=h[e])&&void 0!==n&&n.length&&(c||g.push([e,c?[]:h[e]]),o&&t&&g.push([e,i((0,r.GA)({key:a,flavour:"arr",param:e}))||[]]))})),[g,m,c,u]}},set:e=>{let{extraKey:t,key:a}=e;return(e,n)=>{let{get:o,set:i}=e,{param:s,removedValue:c}=n;const l=o((0,r.GA)({key:a,extraKey:t,param:s,flavour:"arr"}));i((0,r.GA)({key:a,extraKey:t,param:s,flavour:"arr"}),Array.isArray(c)?c:l.filter((e=>e!==c)))}}}),g=(0,n.K0)({key:"nodesFiltered",get:e=>{let{key:t,extraKey:a,omit:n,keepAll:o=!1,merge:i}=e;return e=>{let{get:c}=e;const[u,g,p,h]=c(m({key:t,extraKey:a,omit:n,merge:i})),v=c((0,s.kr)(t));if(!u.length&&(null===g||void 0===g||!g.length))return v;const f=((e,t)=>{let{selectedNodeIds:a,excludedNodeIds:n,globalNodeIds:r,omittedNonNodeFilter:o}=t;const i=a.reduce(((e,t)=>(e[t]=!n||n.includes(t),e)),{}),s=r.reduce(((e,t)=>(e[t]=!n||n.includes(t),e)),{});return t=>!(r.length&&!s[t.id])&&(!(!a.length||!i[t.id])||!(!o&&!e.length&&a&&a.length)&&!e.some((e=>{let[a,n]=e;return d[a]?d[a](t,n):!!l[a]&&!l[a](t,n)})))})(u,{selectedNodeIds:g,excludedNodeIds:c((0,r.GA)({key:t,extraKey:a,flavour:"arr",param:"excludedNodeIds"})),globalNodeIds:p,omittedNonNodeFilter:h});return o?v.map((e=>f(e)?e:{...e,hidden:!0})):v.filter(f)}}}),p=(0,n.K0)({key:"nodeIdsFiltered",get:e=>{let{key:t,extraKey:a,omit:n,keepAll:r,emptyIfAll:i=!0,merge:s,scoped:c}=e;return e=>{let{get:l}=e;const d=l(g({key:t,extraKey:a,omit:n,keepAll:r,merge:s}));return i&&l((0,o.dT)({id:t,key:"ids"})).length===d.length?c?l(p({key:t,extraKey:a,omit:n,keepAll:r,emptyIfAll:!1,merge:!0})):u:d.map((e=>{let{id:t,hidden:a}=e;return r?[t,!a]:t}))}}}),h={Live:0,Stale:1,Offline:2},v={nodeStatuses:(e,t)=>h[e.id]-h[t.id],selectedNodeIds:(e,t)=>h[e.id]-h[t.id],nodeVersions:(e,t)=>t.id.localeCompare(e.id,void 0,{sensitivity:"accent",ignorePunctuation:!0}),default:(e,t)=>e.id.localeCompare(t.id,void 0,{sensitivity:"accent",ignorePunctuation:!0})},f=function(){let{key:e,extraKey:t,omit:a,keepAll:r=!1,merge:o=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=(0,i.ID)();return(0,n.vc)(g({extraKey:t,key:e||s,omit:a,keepAll:r,merge:o}))},A=function(){let{key:e,extraKey:t,omit:a,keepAll:r=!1,emptyIfAll:o=!0,merge:s=!1,scoped:c=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const l=(0,i.ID)();return(0,n.vc)(p({extraKey:t,key:e||l,omit:a,keepAll:r,emptyIfAll:o,merge:s,scoped:c}))},y=function(){let{key:e,extraKey:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=(0,i.ID)();return(0,r.rI)("selectedNodeIds",{key:e||a,extraKey:t,flavour:"arr"})},b=function(){let{key:e,extraKey:t,merge:a=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=function(){let{key:e,extraKey:t,merge:a=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=(0,i.ID)();return(0,r.rW)("selectedNodeIds",{key:e||n,extraKey:t,flavour:"arr",merge:a,defaultValue:u})}({key:e,extraKey:t,merge:a});return[n,y({key:e,extraKey:t})]},S=function(){let{key:e,extraKey:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=function(){let{key:e,extraKey:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=(0,i.ID)();return(0,r.rW)("excludedNodeIds",{key:e||a,extraKey:t,flavour:"arr",defaultValue:u})}({key:e,extraKey:t}),n=function(){let{key:e,extraKey:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=(0,i.ID)();return(0,r.rI)("excludedNodeIds",{key:e||a,extraKey:t,flavour:"arr"})}({key:e,extraKey:t});return[a,n]},k=function(){let{key:e,extraKey:t,omit:a,merge:r=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=(0,i.ID)();return(0,n.L4)(m({key:e||o,extraKey:t,omit:a,merge:r}))}},47762:(e,t,a)=>{"use strict";a.d(t,{BQ:()=>y,BU:()=>M,Du:()=>f,GE:()=>P,GN:()=>b,Gn:()=>z,Gt:()=>E,Ig:()=>_,TG:()=>N,Ux:()=>Z,Y7:()=>k,Zl:()=>V,d3:()=>H,dN:()=>j,gl:()=>O,je:()=>A,kr:()=>I,nl:()=>J,no:()=>K,ss:()=>G,th:()=>w,xY:()=>S,yN:()=>C});a(17333),a(41393),a(14905),a(98992),a(54520),a(81454),a(8872),a(62953);var n=a(96540),r=a(47444),o=a(47767),i=a(64454),s=a(65570),c=a(3914),l=a(56639),d=a(54308),u=a(67990),m=a(69765),g=a(41739),p=a(9224);const h=(0,r.K0)({key:"nodeInfoState",get:e=>{let{nodeId:t,spaceId:a}=e;return async()=>{try{return(await(0,p.VP)(t,a)).data}catch(e){}}}}),v=(0,r.K0)({key:"preferredNodes",get:e=>()=>e?(0,p.F)(e):Promise.resolve()}),f=()=>{var e;const t=(0,c.vt)(),a=(0,r.xf)(v(t)),n=(0,r.RH)(v(t));return{loaded:"loading"!==a.state,nodes:(null===(e=a.contents)||void 0===e?void 0:e.data)||[],hasError:"hasError"===a.state,refresh:n}},A=()=>{const e=(0,c.vt)();return t=>(0,p.ih)(e,t)},y=(e,t)=>(0,r.xf)(h({nodeId:e,spaceId:t})),b=(0,r.K0)({key:"nodeState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const r=n(g.A)[t]||(0,g.q)();return a?r[a]:r}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;return a?"function"===typeof n?r(g.A,(e=>{const r=e[t]||(0,g.q)();return{...e,[t]:{...r,[a]:n(r[a])}}})):void r(g.A,(e=>{const r=e[t]||(0,g.q)();return{...e,[t]:{...r,[a]:n}}})):r(g.A,(e=>({...e,[t]:{...(0,g.q)(),...n}})))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),S=(e,t)=>(0,r.vc)(b({id:e,key:t})),k=()=>(0,r.Zs)((e=>{let{snapshot:t}=e;return e=>t.getLoadable(b({id:e})).contents}),[]),w=(0,r.K0)({key:"nodesState",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.map((e=>n[e]||(0,g.q)()))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),I=(0,r.K0)({key:"nodesState",get:e=>t=>{let{get:a}=t;if(!e){const t=a(l.Li),n=a((0,l.aR)(t)),r=a(d.yz);e=a((0,d.x4)([n,r]))}const n=a((0,u.dT)({id:e,key:"ids"}));return a(w(n))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),E=e=>{const t=(0,u.CK)();return(0,r.vc)(w(e||t))},x=(0,r.K0)({key:"cloudNodeIdsSelector",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.reduce(((e,t)=>{var a;return null!==(a=n[t])&&void 0!==a&&a.nd?[...e,n[t].nd]:e}),[])},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),C=e=>(0,r.vc)(x(e||[])),T=(0,r.K0)({key:"queryableNodeIdsState",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.filter((e=>{var t,a;return(null===(t=n[e])||void 0===t?void 0:t.isLive)||"stale"===(null===(a=n[e])||void 0===a?void 0:a.state)}))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),N=e=>{const t=(0,u.CK)();return(0,r.vc)(T(e||t))},R=(0,r.K0)({key:"liveNodeIdsState",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.filter((e=>{var t;return null===(t=n[e])||void 0===t?void 0:t.isLive}))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),M=e=>{const t=(0,u.CK)();return(0,r.vc)(R(e||t))},D=(0,r.K0)({key:"staleNodeIdsState",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.filter((e=>{var t;return"stale"===(null===(t=n[e])||void 0===t?void 0:t.state)}))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),_=e=>{const t=(0,u.CK)();return(0,r.vc)(D(e||t))},U=(0,r.K0)({key:"offlineNodeIdsState",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.filter((e=>{var t;return null===(t=n[e])||void 0===t?void 0:t.isOffline}))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),P=e=>{const t=(0,u.CK)();return(0,r.vc)(U(e||t))},L=(0,r.K0)({key:"unseenNodeIdsState",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.filter((e=>{var t;return null===(t=n[e])||void 0===t?void 0:t.isUnseen}))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),K=e=>{const t=(0,u.CK)();return(0,r.vc)(L(e||t))},B=(0,r.K0)({key:"needUpdateNodeIdsState",get:e=>{let{ids:t,severities:a=["warning","critical"]}=e;return e=>{let{get:n}=e;const r=n(g.A);return t.filter((e=>{var t;return a.includes(null===(t=r[e])||void 0===t?void 0:t.updateSeverity)}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),z=function(){let{ids:e,severity:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=M();return(0,r.vc)(B({ids:e||a,...t&&{severities:[t]}}))},F=(0,r.K0)({key:"fnNodeIdsState",get:e=>t=>{let{get:a}=t;const n=a(g.A);return e.filter((e=>{var t;return null===(t=n[e])||void 0===t||null===(t=t.capabilities.funcs)||void 0===t?void 0:t.enabled}))},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),j=e=>{const t=(0,u.CK)();return(0,r.vc)(F(e||t))},O=(0,r.gD)({key:"nodesState/initialize",get:e=>{let{get:t}=e;return t(g.A)},set:(e,t)=>{let{set:a}=e,{values:n,merge:r}=t;return a(g.A,(e=>{const t=r?(0,i.A)(e,n):n;return(0,s.Ay)(t,e)?e:t}))}}),G=()=>(0,r.vc)(O),W=()=>{const e=(0,m.r9)();return e&&"".concat(e,"/nodes")},V=e=>{const t=W();return"".concat(t,"/").concat(e)},Z=()=>{const e=W();return t=>"".concat(e,"/").concat(t)},H=function(e){let{alertId:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=(()=>{const e=(0,o.Zp)(),t=W();return(0,n.useCallback)(((a,n)=>{e("".concat(t,"/").concat(a),n?{state:n}:"")}),[t,e])})();return(0,n.useCallback)((()=>a(e,{alertId:t})),[a])},J=()=>{var e;return null===(e=(0,o.RQ)("/spaces/:spaceSlug/rooms/:roomSlug/nodes/:nodeId"))||void 0===e||null===(e=e.params)||void 0===e?void 0:e.nodeId}},49389:(e,t,a)=>{"use strict";a.d(t,{ID:()=>i,fe:()=>c,sH:()=>s,su:()=>r});a(25440),a(41393),a(81454),a(62953);var n=a(78969);const r=e=>1===e?"Node":"Nodes",o=[1,26],i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;if(!e||"unknown"===e)return!1;const[a,n,r]=(e=>e.replace(/^v/,"").split("."))(e).map((e=>Number(e)));return!(a&&!isNaN(a)&&!isNaN(n))||(a<t[0]||!(a>t[0])&&(n<t[1]||!(n>t[1])&&r<t[2]))},s={docker:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#docker",mac:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#macos",binpkg:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#issues-with-older-binpkg-installs",default:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#updates-for-most-systems"},c=e=>{let{container:t,os:a,_install_type:r,version:o}=e;const c=i(o,n.x7);if(!t&&!a&&!r)return s.default;return s["docker"===t?"docker":"mac"===a?"mac":"binpkg"===r&&c?"binpkg":"default"]}},71856:(e,t,a)=>{"use strict";a.d(t,{C4:()=>m,D_:()=>h,HA:()=>s,N4:()=>c,Oh:()=>l,PT:()=>n,WB:()=>o,a$:()=>i,dZ:()=>g,fF:()=>u,r7:()=>r,rx:()=>p,w8:()=>d});const n={label:"All rooms",value:""},r={plan:"Your plan does not support this configuration.",role:"You do not have permission to change Global Notification configurations."},o="You do not have permission to add configurations. Contact a space administrator to add this configuration.",i={Discord:{name:"integrationDiscordColored"},Webhook:{name:"integrationWebhookColored"},Email:{name:"integrationEmailColored"},MobilePush:{color:"successLite",name:"mobilePushNotifications"},PagerDuty:{name:"integrationPagerdutyColored"},Slack:{name:"integrationSlackColored"},Splunk:{name:"integrationSplunk"},Opsgenie:{name:"integrationOpsgenieColored"},Mattermost:{name:"integrationMattermostColored"},RocketChat:{name:"integrationRocketChatColored"},MobileApp:{name:"integrationMobileAppColored"},AwsSns:{name:"integrationAWSSNSColored"},MicrosoftTeams:{name:"integrationTeamsColored"},Telegram:{name:"integrationTelegramColored"}},s={PERSONAL:{icon:"userPress",tooltip:"Notification methods whose destination will be a user-specific attribute, e.g. user's e-mail."},SYSTEM:{icon:"systemOverviewPress",tooltip:"Notification methods that the destination will be a target that usually isn't specific to a single user, e.g. Slack channel."}},c={ALARMS_SETTING_ALL:{value:"ALARMS_SETTING_ALL",label:"All Alerts and unreachable"},ALARMS_SETTING_ALL_BUT_UNREACHABLE:{value:"ALARMS_SETTING_ALL_BUT_UNREACHABLE",label:"All Alerts"},ALARMS_SETTING_CRITICAL:{value:"ALARMS_SETTING_CRITICAL",label:"Critical only"},ALARMS_SETTING_UNREACHABLE:{value:"ALARMS_SETTING_UNREACHABLE",label:"Unreachable only"}},l={label:"User defined",value:"USER_DEFINED"},d={...c,USER_DEFINED:l},u={...c,ALARMS_SETTING_NONE:{value:"ALARMS_SETTING_NONE",label:"No notifications"}},m={"^.*$":"input"},g={string:"input"},p=/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)/g,h="607bfd3c-02c1-4da2-b67a-0d01b518ce5d"},88982:(e,t,a)=>{"use strict";a.d(t,{A:()=>i,n:()=>o});a(3064),a(41393),a(98992),a(72577),a(81454),a(62953);var n=a(71856),r=a(14994);const o=e=>{const t=(0,r.DL)().find((e=>{let{name:t}=e;return"All nodes"==t}));return t?e?t[e]:t:null},i=function(){let{all:e,internal:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=(0,r.DL)().map((e=>{let{id:t,name:a}=e;return{label:a,value:t}})),o=[];return t&&o.push(n.Oh),e&&o.push(n.PT),o.push(...a),o}},27467:(e,t,a)=>{"use strict";a.d(t,{GA:()=>b,r$:()=>x,l6:()=>I,N9:()=>w,rW:()=>S,Fw:()=>E,rI:()=>k});var n={};a.r(n),a.d(n,{global:()=>d,specific:()=>v});var r={};a.r(r),a.d(r,{global:()=>f,specific:()=>m});a(14905),a(98992),a(8872),a(62953);var o=a(47444),i=a(69765);const s={arr:"arr",bool:"bool",int:"int",val:"val",obj:"obj",dec:"dec"};a(41393),a(81454);var c=a(38819),l=a(82838);const d=()=>[e=>{let{onSet:t}=e;t(((e,t)=>{let{after:a,before:n,correlation:r,utc:o,forcePlay:i,...s}=e,{correlation:d,forcePlay:u,...m}=t;n=a<0?0:n;const{offset:g=""}=(0,l.M)("default",o||m.utc),p=(h=s.modalParams||m.modalParams)?Object.keys(h).map((e=>"".concat(e,"=").concat(h[e]))).join(","):"";var h;const{highlight:v,...f}={...m,...s,after:a,before:n,offset:g,metrics_correlation:"undefined"===typeof r?d:r,force_play:"undefined"===typeof i?u:i,utc:o,modalParams:p};v.after?(0,c.Z8)({highlight_after:v.after,highlight_before:v.before,...f}):((0,c.Z8)(f),(0,c.Pg)(["highlight_after","highlight_before"]))}))}];a(25440);const u={default:e=>e?e.split(","):[],[s.arr]:e=>e?e.split(","):[],[s.bool]:e=>"true"===e,[s.int]:e=>e?parseInt(e,10):0,[s.val]:e=>e,[s.dec]:e=>e?parseFloat(e):0,[s.obj]:e=>{try{return JSON.parse(decodeURIComponent(e))}catch(t){return{}}}},m=e=>{let{key:t,extraKey:a=""}=e;if(!t&&!a)return{};const n="".concat(t,"-").concat(a,"-"),r=(0,c.PP)();let o=[];const i=Object.keys(r).reduce(((e,t)=>{if(!t.startsWith(n))return e;if(t.startsWith(n+n))return o.push(t),e;const a=t.replace(n,""),[i]=a.split("-").reverse(),c=s[i]?u[i]:u[a]||u.default;return e[a]=c(r[t]),e}),{});return(0,c.Pg)(o),i},g=e=>e.toString(),p={default:e=>Array.isArray(e)?e.join(","):(e||"").toString(),[s.arr]:e=>Array.isArray(e)?e.join(","):(e||"").toString(),[s.bool]:g,[s.int]:g,[s.val]:g,[s.dec]:g,[s.obj]:e=>encodeURIComponent(JSON.stringify(e||{}))},h=e=>Array.isArray(e)?s.arr:"boolean"===typeof e?s.bool:"number"===typeof e?e%1===0?s.int:s.dec:e&&"object"===typeof e?s.obj:s.val,v=e=>{let{key:t,extraKey:a=""}=e;const n="".concat(t,"-").concat(a,"-");return[e=>{let{setSelf:n,trigger:r,node:o,getLoadable:i}=e;if("get"===r){if(Object.keys(i(o).contents).length)return;const e=(0,c.PP)();if(Object.keys(e).length)return;setTimeout((()=>n(m({key:t,extraKey:a}))))}},e=>{let{onSet:t}=e;t((function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=[],r=Object.keys(e).reduce(((r,o)=>{const i=o.split("-").reverse()[0];let c=i;if(s[c]||(s[c]||(c=h(e[o])),s[c]||(c=h(t[o]))),"undefined"===typeof e[o])return a.push(n+o),delete r[o],r;const l=p[c]||p[o]||p.default,d="".concat(n).concat(o).concat(s[i]?"":"-".concat(c));return r[d]=l(e[o]),r[d]||a.push(d),r}),{});(0,c.Z8)(r),(0,c.Pg)(a)}))}]},f=()=>{const{after:e=-900,before:t=0,utc:a="default",highlight_after:n,highlight_before:r,metrics_correlation:o=!1,timezoneName:i,modal:s="",modalTab:d="",modalParams:u,force_play:m}=(0,c.PP)(),{offset:g=0,utc:p,text:h=""}=(0,l.M)("default",a),v=i&&"undefined"!==i?i:h,f={after:isNaN(Number(n))?null:Number(n),before:isNaN(Number(r))?null:Number(r)},A=isNaN(Number(e))?-900:Number(e),y={after:A,before:A<0?0:isNaN(Number(t))?A+900:Number(t),utc:p,offset:g,timezoneName:v,modal:s,modalTab:d};return f.after?(0,c.Z8)({highlight_after:f.after,highlight_before:f.before,metrics_correlation:o,...y}):(0,c.Z8)({metrics_correlation:o,...y}),{highlight:f,correlation:"true"===o,forcePlay:"true"===m,...y,modalParams:(b=u,b&&b.split(",").reduce(((e,t)=>{const[a,n]=t.split("=");return e[a]=n,e}),{}))};var b},A=(0,o.Iz)({key:"paramsAtom",default:e=>(r[e.key||"global"]||m)(e),effects:e=>(n[e.key||"global"]||v)(e)}),y=(e,t,a)=>{if("global"===e)return t;const[n]=t.split("-").reverse();return s[n]?t:s[a]?"".concat(t,"-").concat(a):t},b=(0,o.K0)({key:"paramsState",get:e=>{let{key:t="global",extraKey:a,param:n,flavour:r,merge:o}=e;return e=>{let{get:i}=e,c=i(A({key:t,extraKey:a}));if(a&&o&&(c=Object.keys(c).reduce(((e,t)=>("undefined"===typeof c[t]||Array.isArray(c[t])&&!c[t].length||null===c[t]||(e[t]=c[t]),e)),{...i(A({key:t,extraKey:void 0}))})),n){const e=y(t,n,r);return r||"global"===t?e in c?c[e]:c[n]:(console.warn("Will use val as flavour for",n),c[y(t,n,"val")])}return Object.keys(c).reduce(((e,a)=>(e[((e,t,a)=>{if("global"===e)return t;const[n,...r]=t.split("-").reverse();return s[a||n]&&s[n]?r.reverse().join("-"):t})(t,a,r)]=c[a],e)),{})}},set:e=>{let{key:t="global",extraKey:a,param:n,flavour:r}=e;return(e,o)=>{let{set:i}=e;n&&(n=y(t,n,r)),i(A({key:t,extraKey:a}),(e=>"function"===typeof o?n?{...e,[n]:o(e[n])}:{...e,...o(e)}:n?{...e,[n]:o}:{...e,...o}))}}}),S=function(e){let{key:t,extraKey:a,flavour:n,defaultValue:r,merge:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=(0,o.vc)(b({key:t,param:e,extraKey:a,flavour:n,merge:i}));return"undefined"===typeof s?r:s},k=function(e){let{key:t,extraKey:a,flavour:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.lZ)(b({key:t,param:e,extraKey:a,flavour:n}))},w=function(e){let{key:t,extraKey:a,flavour:n,defaultValue:r,merge:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return[S(e,{key:t,extraKey:a,flavour:n,defaultValue:r,merge:o}),k(e,{key:t,extraKey:a,flavour:n})]},I=(e,t)=>{let{extraKey:a,defaultValue:n,flavour:r,merge:o}=t;const s=(0,i.ID)();return S(e,{key:s,extraKey:a,defaultValue:n,flavour:r,merge:o})},E=(e,t)=>{let{extraKey:a,flavour:n}=t;const r=(0,i.ID)();return k(e,{key:r,extraKey:a,flavour:n})},x=(e,t)=>{let{extraKey:a,defaultValue:n,flavour:r,merge:o}=t;return[I(e,{extraKey:a,defaultValue:n,flavour:r,merge:o}),E(e,{extraKey:a,flavour:r})]}},1522:(e,t,a)=>{"use strict";a.d(t,{DH:()=>g,e8:()=>b,eY:()=>S,j_:()=>y,n2:()=>h,rp:()=>k,th:()=>A,y5:()=>f,yK:()=>v,z2:()=>p});a(17333),a(98992),a(54520),a(62953);var n=a(71835),r=a(61649),o=a(22292),i=a(3914),s=a(69765),c=a(12800),l=a(5169),d=a(29662),u=a(63129),m=a(46902);const g=function(e){let{silent:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=(0,s.wz)(e,"spaceId"),[c,l]=(0,n.A)(),d=(0,o.uW)("isAnonymous"),m=(0,i.dg)();return(0,r.A)((function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(d||m)return Promise.resolve().then((()=>!t&&c({header:"Rooms",text:"Connect to cloud to be able to save your settings!"})));const r=(0,u.xX)(a,e,n);return r.then((()=>!t&&c({header:"Rooms",text:"Room successfully updated!"}))).catch((e=>!e.isCancel&&l(e))),r}),[e,d,m,a])},p=(e,t)=>{const[a,o]=(0,n.A)(),i=(0,s.wz)(t,"name");return(0,r.A)((()=>{const n=(0,u.HN)(e,t);return n.then((()=>a({header:"Rooms",text:"Room ".concat(i," was successfully deleted!")}))).catch((e=>!e.isCancel&&o(e))),n}),[t,e])},h=(e,t)=>{const[,a]=(0,n.A)(),i=(0,o.NJ)(),c=(0,r.A)((()=>{const n=(0,u.cx)(e,t,i);return n.catch((e=>!e.isCancel&&a(e))),n}),[e,t,i]),[l,...d]=(0,m.ES)(t,"ids"),g=p(e,t),h=(0,s.wz)(t,"untouchable");return d.length||l!==i||h?c:g},v=e=>{const[t,a]=(0,n.A)();return(0,r.A)((function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=(0,u.ab)(e,n);return r.then((()=>t({header:"Rooms",text:"Room ".concat(n.name," was successfully created!")}))).catch((e=>!e.isCancel&&a(e))),r}),[e])},f=(e,t)=>{const[a,o]=(0,n.A)();return(0,r.A)((n=>{const r=(0,u.pD)(e,t,n);return r.then((()=>a({header:"Rooms",text:"Member".concat(n.length>1?"s":""," successfully added!")}))).catch((e=>!e.isCancel&&o(e))),r}),[e])},A=function(e,t){let{onSuccess:a,onFail:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const c=(0,o.NJ)(),[l,d]=(0,n.A)(),m=(0,s.a8)(t);return(0,r.A)((()=>{const n=(0,u.pD)(e,t,[c]);return n.then((()=>{m({isMember:!0}),l({header:"Rooms",text:"Successfully joined the room"}),null===a||void 0===a||a()})).catch((e=>{!e.isCancel&&d(e),null===i||void 0===i||i()})),n}),[t,m,e])},y=(e,t)=>{const a=(0,l.t)(),[o,i]=(0,n.A)();return(0,r.A)((n=>{const r=(0,u.cx)(e,t,n);return r.then((()=>{(async e=>{let{cacheKeyPrefix:t,memberIds:a,spaceId:n,roomId:r}=e;const o="".concat(t).concat((0,d.E)(n,r));await(0,c.y)({key:o,handleResults:e=>e.results.filter((e=>!a.includes(e.id)))})})({cacheKeyPrefix:a,memberIds:n,spaceId:e,roomId:t}),o({header:"Rooms",text:"Member".concat(n.length>1?"s":""," successfully removed!")})})).catch((e=>!e.isCancel&&i(e))),r}),[t,e])},b=(e,t)=>{const[a,o]=(0,n.A)();return(0,r.A)((function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=(0,u.lW)(e,t,n);return r.then((()=>a({header:"Rooms",text:"Nodes successfully added!"}))).catch((e=>!e.isCancel&&o(e))),r}),[t,e])},S=e=>{const[t,a]=(0,n.A)();return(0,r.A)((function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const r=(0,u.Xm)(e,n);return r.then((()=>t({header:"Rooms",text:"Node successfully deleted!"}))).catch((e=>!e.isCancel&&a(e))),r}),[e])},k=(e,t)=>{const[a,o]=(0,n.A)();return(0,r.A)((n=>{const r=(0,u.if)(e,t,n);return r.then((()=>a({header:"Rooms",text:"Nodes successfully removed!"}))).catch((e=>!e.isCancel&&o(e))),r}),[t,e])}},51074:(e,t,a)=>{"use strict";a.d(t,{t:()=>i,s:()=>s});var n=a(47444),r=a(69765);const o={ids:(0,n.Iz)({key:"roomAlertIds",default:[]}),error:(0,n.Iz)({key:"roomAlertError",default:null}),updatedAt:(0,n.Iz)({key:"roomAlertsUpdatedAt",default:""}),loaded:(0,n.Iz)({key:"roomAlertsLoaded",default:!1})},i=(0,n.K0)({key:"roomAlertState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;return n(o[a](t))}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r(o[a](t),n)}}}),s=e=>((e,t)=>(0,n.vc)(i({id:e,key:t})))((0,r.ID)(),e)},63129:(e,t,a)=>{"use strict";a.d(t,{HN:()=>y,K8:()=>f,SJ:()=>h,TM:()=>T,Xm:()=>w,a9:()=>g,ab:()=>v,cx:()=>S,hn:()=>R,if:()=>I,jt:()=>D,lW:()=>k,pD:()=>b,uP:()=>x,uQ:()=>u,xX:()=>A});a(41393),a(14905),a(98992),a(81454),a(8872);var n=a(26655),r=a(49286),o=a(81048),i=a(78969),s=a(49389),c=a(37618);const l=function(){let{container:e,virtualization:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e&&"unknown"!=e?"Container":t&&"unknown"!=t?"VM":"Bare metal"},d=e=>t=>{let{nodes:a=[]}=t;return a.map((t=>{let{nm:a,capabilities:n,v:c,...d}=t;return{name:a,version:c,hasAccessibleData:o.iy[d.state],isOffline:d.state===o.j8.offline,isUnseen:d.state===o.j8.unseen,isLive:o.c1[d.state],updateSeverity:(m=c,(0,s.ID)(m,i.Wd)?"critical":(0,s.ID)(m,i.x7)?"warning":null),capabilities:n.reduce(((e,t)=>(e[t.name]=t,e)),{}),capabilityKeys:n.map((e=>e.name)),...(0,r.bn)(d),labels:d.labels||{},labelKeys:Object.keys(d.labels||{}),id:d.nd||d.mg,nodeStatus:(u=d.state,u===o.j8.offline?"Offline":u===o.j8.unseen?"Unseen":u===o.j8.stale?"Stale":o.c1[u]?"Live":"Unknown"),isPreferred:!!e||d.isPreferred,technology:l(d.hw)};var u,m}))},u=e=>{let{roomId:t,spaceId:a}=e;return(0,c.ES)(a)?n.A.get("/api/v2/nodes",{baseURL:window.envSettings.agentApiUrl,transform:d(!0)}):n.A.post("/api/v3/spaces/".concat(a,"/rooms/").concat(t,"/nodes"),{scope:{nodes:[]}},{transform:d()})},m=e=>{let{context:t,chartType:a="",...n}=e;return{id:t,name:t,context:t,chartType:a,...n}},g=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],{after:o,before:i}=arguments.length>3?arguments[3]:void 0;return(0,c.ES)(e)?n.A.get("/api/v2/contexts?scope_nodes=".concat(a.join("|")||"*"),{baseURL:window.envSettings.agentApiUrl,transform:e=>{let{contexts:t={},versions:a={}}=e;return{results:Object.keys(t).map((e=>m({...(0,r.bn)(t[e]),id:e,context:e}))),versions:(0,r.bn)(a)}}}):n.A.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/contexts"),{scope:{contexts:["*"],nodes:a},selectors:{contexts:[],nodes:[]},window:{after:o,before:i}},{transform:e=>{let{contexts:t={},versions:a={}}=e;return{results:Object.keys(t).map((e=>m({...(0,r.bn)(t[e]),id:e,context:e}))),versions:(0,r.bn)(a)}}})},p=(e,t)=>a=>{let{results:n}=a;return{results:n.map((a=>({...a,spaceId:e,roomId:t})))}},h=(e,t)=>n.A.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards"),{transform:p(e,t)}),v=(e,t)=>n.A.post("/api/v1/spaces/".concat(e,"/rooms"),t),f=(e,t)=>n.A.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t)),A=(e,t,a)=>n.A.patch("/api/v1/spaces/".concat(e,"/rooms/").concat(t),a),y=(e,t)=>n.A.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t)),b=(e,t,a)=>n.A.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/members"),a),S=(e,t,a)=>n.A.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/members?account_ids=").concat(a)),k=(e,t,a)=>n.A.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/claimed-nodes"),a),w=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return n.A.delete("/api/v1/spaces/".concat(e,"/nodes"),{data:{node_ids:t}})},I=(e,t,a)=>n.A.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/claimed-nodes?node_ids=").concat(a)),E=e=>(0,r.bn)(e,{depth:3}),x=(e,t)=>n.A.get("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/parent-child-stats"),{transform:E}),C=e=>{var t;const a=(0,r.bn)(e);return a.stability=null===(t=a.stability)||void 0===t?void 0:t.reduce(((e,t)=>{let{nodeId:a,isStable:n}=t;return{...e,[a]:{isStable:n}}}),{}),a},T=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return n.A.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/nodes/stability"),{scope:{nodes:a}},{transform:C})},N=e=>(0,r.bn)(e,{depth:3}),R=function(e,t){let{sort:a="",start:r="",end:o=""}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.A.get("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts_stats?sort=").concat(a,"&start=").concat(r,"&end=").concat(o),{transform:N})},M=e=>(0,r.bn)(e),D=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return n.A.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/charts/stats"),{scope:{nodes:a}},{transform:M})}},54308:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>c,x4:()=>s,yz:()=>i});a(62953);var n=a(47444),r=a(37618),o=a(38280);const i=(0,n.eU)({key:"currentRoomSlug",default:null}),s=(0,n.Iz)({key:"roomIdBySlug",default:"",effects:e=>{let[t,a]=e;return(0,r.ES)(t)&&a===r.gB?[e=>{let{setSelf:t,trigger:a}=e;"get"===a&&t(r.gB)}]:[]}}),c=(0,n.Iz)({key:"room",default:o.A,effects:e=>(0,r.tB)(e)?[e=>{let{setSelf:t,trigger:a}=e;"get"===a&&t(r.hq)}]:[]})},81048:(e,t,a)=>{"use strict";a.d(t,{Q8:()=>n,c1:()=>i,iy:()=>o,j8:()=>s,mL:()=>r});const n="All nodes",r="all-nodes",o={created:!1,reachable:!0,stale:!0,unreachable:!1},i={created:!0,reachable:!0,stale:!1,unreachable:!1},s={offline:"unreachable",unseen:"created",stale:"stale",live:"reachable"}},21591:(e,t,a)=>{"use strict";a.d(t,{z_:()=>d,hZ:()=>p,wt:()=>h,q:()=>m,RQ:()=>g});a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(47444),r=a(66245),o=a.n(r),i=a(68980),s=a(69765),c=a(37618);const l={ids:(0,n.Iz)({key:"roomDashboardIds",default:[],effects:e=>c.gB===e?[e=>{let{onSet:t,trigger:a,setSelf:n}=e;"get"===a&&n([c.LA]),t((e=>{n([c.LA,...e])}))}]:[]}),loaded:(0,n.Iz)({key:"roomDashboardsLoaded",default:!1,effects:e=>c.gB===e?[e=>{let{trigger:t,setSelf:a}=e;"get"===t&&a(!0)}]:[]})},d=(0,n.K0)({key:"roomDashboardState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;return n(l[a](t))}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;return r(l[a](t),n)}}}),u=(e,t)=>(0,n.vc)(d({id:e,key:t})),m=()=>{const e=(0,s.ID)();return u(e,"ids")},g=()=>{const e=(0,s.ID)();return u(e,"loaded")},p=(0,n.K0)({key:"roomDashboardsState/add",set:e=>(t,a)=>{let{set:n,get:r}=t;const o=e=>r((0,i.Qx)({id:e,key:"name"}));n(l.ids(e),(e=>[...new Set([...e,a.id])].sort(((e,t)=>o(e).localeCompare(o(t),void 0,{sensitivity:"accent",ignorePunctuation:!0})))))}}),h=(0,n.K0)({key:"roomDashboardsState/remove",set:e=>(t,a)=>{let{set:n}=t;n(l.ids(e),(e=>o()(e,a)))}})},38280:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={loaded:!1,fullyLoaded:!1,id:null,isMember:!1,name:"",memberCount:null,nodeCount:null,description:"",private:!1,slug:"",spaceId:null,createdAt:"",untouchable:!0}},46902:(e,t,a)=>{"use strict";a.d(t,{x2:()=>d,n:()=>h,lb:()=>m,di:()=>g,zC:()=>f,ES:()=>u});a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(47444),r=a(66245),o=a.n(r),i=a(70716),s=a(69765);const c={ids:(0,n.Iz)({key:"roomMemberIds",default:[]}),error:(0,n.Iz)({key:"roomMembersError",default:null}),updatedAt:(0,n.Iz)({key:"roomMembersUpdatedAt",default:""}),loaded:(0,n.Iz)({key:"roomMembersLoaded",default:!1})};var l=a(1522);const d=(0,n.K0)({key:"roomMemberState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;return n(c[a](t))}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r(c[a](t),n)}}}),u=(e,t)=>(0,n.vc)(d({id:e,key:t})),m=()=>{const e=(0,s.ID)();return u(e,"ids")},g=()=>{const e=m();return(0,i.Uv)(e)},p=(0,n.K0)({key:"roomMembersState/add",set:e=>(t,a)=>{let{set:n,get:r}=t;const o=e=>r((0,i.m)({id:e,key:"name"}));n(c.ids(e),(e=>[...new Set([...e,...a])].sort(((e,t)=>o(e).localeCompare(o(t),void 0,{sensitivity:"accent",ignorePunctuation:!0})))))}}),h=function(e,t){let{onSuccess:a,onFail:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=(0,l.y5)(e,t);return(0,n.Zs)((e=>{let{set:n}=e;return e=>{try{o(e),n(p(t),e),a&&a(e)}catch(i){r&&r(e)}}}),[o,e,a,r])},v=(0,n.K0)({key:"roomMembersState/remove",set:e=>(t,a)=>{let{set:n}=t;return n(c.ids(e),(e=>o()(e,a)))}}),f=function(e,t){let{onSuccess:a,onFail:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=(0,l.j_)(e,t);return(0,n.Zs)((e=>{let{set:n}=e;return e=>{try{o(e),n(v(t),e),a&&a(e)}catch(i){r&&r(e)}}}),[o,e,t,a,r])}},21204:(e,t,a)=>{"use strict";a.d(t,{lM:()=>g,gV:()=>y,uB:()=>m,e6:()=>u,tY:()=>f,Vw:()=>h,tQ:()=>A,XH:()=>v});a(17333),a(9920),a(41393),a(98992),a(54520),a(3949),a(81454),a(62953);var n=a(47444),r=a(33829),o=a(1522);const i=[{id:"system.cpu",context:"system.cpu",dimensions:[],enableAllDimensions:!0,hidden:!1,title:"Total CPU",unit:"percentage"},{id:"system.load",context:"system.load",dimensions:[{id:"load15",name:"load15"}],enableAllDimensions:!1,hidden:!1,title:"Load 15",unit:"load"},{id:"mem.available",context:"mem.available",dimensions:[],enableAllDimensions:!0,hidden:!1,title:"Mem Available",unit:"MiB"},{id:"mem.swap",context:"mem.swap",dimensions:[{id:"free",name:"free"}],enableAllDimensions:!1,hidden:!1,title:"Swap Free",unit:"MiB"},{id:"system.io-in",context:"system.io",dimensions:[{id:"in",name:"in"}],enableAllDimensions:!1,hidden:!1,title:"Disk Reads",unit:"KiB/s"},{id:"system.io-out",context:"system.io",dimensions:[{id:"out",name:"out"}],enableAllDimensions:!1,hidden:!1,title:"Disk Writes",unit:"KiB/s"},{id:"system.net-received",context:"system.net",dimensions:[{id:"InOctets",name:"received"}],enableAllDimensions:!1,hidden:!1,title:"Network In",unit:"kilobits/s"},{id:"system.net-sent",context:"system.net",dimensions:[{id:"OutOctets",name:"sent"}],enableAllDimensions:!1,hidden:!1,title:"Network Out",unit:"kilobits/s"}].reduce(((e,t)=>({...e,[t.id]:t})),{}),s={id:null,title:"",context:"",unit:"",dimensions:[],enableAllDimensions:!1,hidden:!1},c=(0,n.Iz)({key:"roomMetricIds",default:Object.keys(i)}),l=(0,n.Iz)({key:"roomMetrics",default:e=>{let{id:t}=e;return i[t]||{}}}),d=(0,n.K0)({key:"roomMetricState",get:e=>{let{id:t,roomId:a,key:n}=e;return e=>{let{get:r}=e;const o=r(l({id:t,roomId:a}));return n?o[n]:o}},set:e=>{let{id:t,roomId:a,key:n}=e;return(e,r)=>{let{set:o}=e;return n?"function"===typeof r?o(l({id:t,roomId:a}),(e=>({...e,[n]:r(e[n])}))):void o(l({id:t,roomId:a}),(e=>({...e,[n]:r}))):o(l({id:t,roomId:a}),"function"===typeof r?r:{...s,...r})}}}),u=(e,t,a)=>(0,n.vc)(d({id:t,roomId:e,key:a})),m=(e,t)=>(0,n.E0)(l({id:t,roomId:e})),g=(0,n.K0)({key:"roomMetricIdsState",get:e=>t=>{let{get:a}=t;return a(c(e))},set:e=>(t,a)=>{let{set:n}=t;n(c(e),a.map((e=>e.id))),a.forEach((t=>n(l({roomId:e,id:t.id}),t)))}}),p=(0,n.K0)({key:"roomMetricsState",get:e=>t=>{let{get:a}=t;return a(g(e)).map((t=>a(l({id:t,roomId:e}))))}}),h=e=>(0,n.vc)(p(e)),v=function(e){let{shouldPersist:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=(0,o.DH)(e,{silent:!0});return(0,n.Zs)((n=>{let{set:r,snapshot:o}=n;return async function(n){for(var i=arguments.length,s=new Array(i>1?i-1:0),c=1;c<i;c++)s[c-1]=arguments[c];const[l,u]=1===s.length?[s[0]]:s;if(r(d({roomId:e,id:n,key:l}),u),t)try{const t=await o.map((t=>{let{set:a}=t;return a(d({roomId:e,id:n,key:l}),u)})).getPromise(p(e));await a({metrics:t})}catch(m){r(d({roomId:e,id:n,key:l}),await o.getPromise(d({roomId:e,id:n,key:l})))}}}),[e])},f=e=>[h(e),v(e)],A=e=>{const t=(0,o.DH)(e);return(0,n.Zs)((a=>{let{set:n,snapshot:o}=a;return async a=>{const i="new"===a.id,s=(await o.getPromise(p(e))).filter((e=>e.id!==a.id)),l=i?{...a,id:(0,r.A)()}:a,u=[...s,l];await t({metrics:u}),n(d({roomId:e,id:l.id}),l),i&&n(c(e),(e=>[...e,l.id]))}}),[e])},y=e=>{const t=(0,o.DH)(e,{silent:!0});return(0,n.Zs)((a=>{let{set:n,reset:r,snapshot:o}=a;return async a=>{const i=(await o.getPromise(p(e))).filter((e=>e.id!==a));await t({metrics:i}),n(c(e),(e=>e.filter((e=>e!==a)))),r(l({roomId:e,id:a}))}}),[e])}},67990:(e,t,a)=>{"use strict";a.d(t,{dT:()=>u,$6:()=>g,Hx:()=>y,CK:()=>v,nj:()=>f,nl:()=>k,vV:()=>w,gr:()=>m,vv:()=>h});a(9920),a(41393),a(14905),a(98992),a(3949),a(81454),a(8872),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(47444),r=a(66245),o=a.n(r),i=a(47762),s=a(69765),c=a(1522);const l={ids:(0,n.Iz)({key:"roomNodeIds",default:[]}),error:(0,n.Iz)({key:"roomNodesError",default:null}),updatedAt:(0,n.Iz)({key:"roomNodesUpdatedAt",default:""}),loaded:(0,n.Iz)({key:"roomNodesLoaded",default:!1})},d={nodes:(0,n.Iz)({key:"roomNodesOptions",default:[]}),error:(0,n.Iz)({key:"roomNodesOptionsError",default:null}),loaded:(0,n.Iz)({key:"roomNodesOptionsLoaded",default:!1})},u=(0,n.K0)({key:"roomNodeState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;return n(l[a](t))}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;return r(l[a](t),n)}}}),m=(e,t)=>(0,n.vc)(u({id:e,key:t})),g=(0,n.K0)({key:"roomNodesOptions",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;return n(d[a](t))}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r(d[a](t),n)}}}),p=(0,n.K0)({key:"roomsNodesOptions",get:e=>t=>{let{get:a}=t;return null!==e&&void 0!==e&&e.length?e.reduce(((e,t)=>{const n=e.map((e=>{let{value:t}=e;return t}));return a(g({id:t,key:"nodes"})).forEach((t=>{n.includes(t.value)||e.push(t)})),e}),[]):[]}}),h=e=>(0,n.vc)(p(e)),v=()=>{const e=(0,s.ID)();return m(e,"ids")},f=()=>{const e=(0,s.ID)();return m(e,"loaded")},A=(0,n.K0)({key:"roomNodesState/add",get:()=>()=>null,set:e=>(t,a)=>{let{set:n,get:r}=t;const o=e=>r((0,i.GN)({id:e,key:"name"}));n(l.ids(e),(e=>[...new Set([...e,...a])].sort(((e,t)=>o(e).localeCompare(o(t),void 0,{sensitivity:"accent",ignorePunctuation:!0}))))),n(l.updatedAt(e),"")}}),y=function(e,t){let{onSuccess:a,onFail:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=(0,c.e8)(e,t);return(0,n.Zs)((e=>{let{set:n}=e;return async function(e){let{makeCallback:i=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{const r=await o(e);r&&e.reduce(((e,t,a)=>{var n;return null!==(n=r[a])&&void 0!==n&&n.errorCode?e:[...e,t]}),[]),n(A(t),e),i&&a&&a(e)}catch(s){i&&r&&r(e)}}}),[o,e,a,r])},b=(0,n.K0)({key:"roomNodesState/obsolete",get:()=>()=>null,set:e=>{let{roomId:t,nodeIds:a}=e;return e=>{let{set:n}=e;n(l.ids(t),(e=>o()(e,a))),n(l.updatedAt(t),"")}}}),S=(0,n.K0)({key:"roomNodesState/remove",get:()=>()=>null,set:e=>(t,a)=>{let{set:n}=t;n(l.ids(e),(e=>o()(e,a))),n(l.updatedAt(e),"")}}),k=(e,t)=>{const a=(0,c.eY)(e);return(0,n.Zs)((e=>{let{set:n}=e;return async function(e){let{onSuccess:r,onFail:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{await a(e),e.map((e=>{n((0,i.GN)({id:e,key:"state"}),"deleted")})),t.map((t=>{n(b({roomId:t,nodeIds:e}))})),r&&r(e)}catch(s){o&&o()}}}),[a,e])},w=function(e,t){let{onSuccess:a,onFail:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=(0,c.rp)(e,t);return(0,n.Zs)((e=>{let{set:n}=e;return async function(e){let{onSuccess:i,onFail:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{await o(e),n(S(t),e),a&&a(e),i&&i()}catch(c){r&&r(e),s&&s()}}}),[o,e,t,a,r])}},69765:(e,t,a)=>{"use strict";a.d(t,{If:()=>A,LS:()=>y,NG:()=>k,At:()=>_,ID:()=>N,r9:()=>M,QW:()=>x,XA:()=>R,pr:()=>D,HX:()=>E,NQ:()=>I,J_:()=>T,wz:()=>b,A2:()=>C,a8:()=>S});a(17333),a(98992),a(54520);var n=a(47444),r=a(14994),o=a(3914),i=a(81048),s=a(56820),c=a(54308),l=a(38280),d=a(1522),u=a(82265),m=a(21204),g=a(96540),p=a(5169),h=a(87633),v=a(12800);const f=e=>{const t="".concat((0,p.t)()).concat((0,h.e)(e));return(0,g.useCallback)((e=>(0,v.y)({key:t,handleResults:t=>t.results.concat(e)})),[t])},A=(0,n.K0)({key:"roomInitialize",get:e=>t=>{let{get:a}=t;return a((0,c.Ay)(e))},set:e=>(t,a)=>{let{set:n}=t;const{settings:r,metrics:o,...i}=a;n((0,c.Ay)(e),(e=>({...l.A,...e,...i}))),n((0,c.x4)([i.spaceId,i.slug]),e),r&&n((0,u.A)(e),(e=>({...e,...r}))),o&&n((0,m.lM)(e),o)}}),y=(0,n.K0)({key:"roomState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const r=n((0,c.Ay)(t));return a?r[a]:r}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r((0,c.Ay)(t),a?"function"!==typeof n?e=>({...e,[a]:n}):e=>({...e,[a]:n(e[a])}):{...l.A,...n})}},reset:e=>{let{id:t,key:a}=e;return(e,n)=>{let{reset:r,set:o}=e;a?o((0,c.Ay)(t),"function"!==typeof n?e=>({...e,[a]:n}):e=>({...e,[a]:n(e[a])})):r((0,c.Ay)(t))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),b=(e,t)=>(0,n.vc)(y({id:e,key:t})),S=function(e){let{key:t,shouldPersist:a,onSuccess:r,onFail:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=(0,n.lZ)(y({id:e,key:t})),s=(0,d.DH)(e);return(0,n.Zs)((n=>{let{snapshot:c}=n;return async n=>{const l=t?{[t]:n}:n;if(i((e=>({...e,...l}))),!a)return;const d=await c.getPromise(y({id:e}));try{await s(l),r&&r(n)}catch(u){i(t?d[t]:d),o&&o(n)}}}),[e,t,a,r,o])},k=function(e){let{onSuccess:t,onFail:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=(0,d.yK)(e),i=f(e);return(0,n.Zs)((n=>{let{set:s}=n;return async n=>{try{const{data:a}=await o(n),c={...n,spaceId:e,...a,loaded:!0};await i(c),s(A(c.id),c),s((0,r.Jz)(e),c),t&&t(c)}catch(c){a&&a(n)}}}),[o,e,t,a,i])},w=function(e,t){let{onSuccess:a,onFail:o}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=(0,n.E0)(y({id:e})),l=b(e,"spaceId");return(0,n.Zs)((n=>{let{snapshot:d,set:u,reset:m}=n;return async()=>{const n=await d.getPromise(y({id:e})),g=await d.getPromise((0,r.YB)({id:n.spaceId})),p=(0,s.Pb)(g.filter((t=>t.id!==e)));try{await t(),m((0,c.x4)([l,n.slug])),u(c.yz,p),u((0,r.Oy)(l),n.id),i(),a&&a(n)}catch(h){o&&o(n)}}}),[t,l,e,a,o])},I=(e,t)=>{const a=b(e,"spaceId"),n=(0,d.n2)(a,e);return w(e,n,t)},E=(e,t)=>{const a=b(e,"spaceId"),n=(0,d.z2)(a,e);return w(e,n,t)},x=()=>(0,n.vc)(c.yz),C=e=>(0,n.lZ)(c.yz,e),T=(e,t)=>(0,n.vc)((0,c.x4)([e,t])),N=e=>{const t=(0,o.vt)(),a=x();return T(t,e||a)},R=e=>{const t=N();return b(t,e)},M=()=>{const e=(0,o.bq)(),t=x();return e&&t&&"/spaces/".concat(e,"/rooms/").concat(t)},D=()=>(0,r.DL)().filter((e=>{let{slug:t}=e;return t===i.mL}))[0]||{id:""},_=()=>{const{id:e=""}=D();return"member"===(0,o.ap)("roleInSpace")&&!!e}},82265:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n=(0,a(47444).Iz)({key:"roomSettings",default:{groupMode:""}})},29662:(e,t,a)=>{"use strict";a.d(t,{A:()=>d,E:()=>l});var n=a(83957),r=a(54702),o=a(70716),i=a(35273),s=a(46902),c=a(46741);const l=(e,t)=>"spaces.".concat(e,".rooms.").concat(t,".members"),d=function(e,t){let{polling:a=!0}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const d=(0,c.JT)("room:ReadUsers");(0,n.A)((()=>({key:l(e,t),autorun:!!e&&!!t&&d,fetch:()=>(0,r.D4)(e,t),polling:a,association:{getError:()=>(0,s.x2)({id:t,key:"error"}),getIds:()=>(0,s.x2)({id:t,key:"ids"}),getLoaded:()=>(0,s.x2)({id:t,key:"loaded"}),getUpdatedAt:()=>(0,s.x2)({id:t,key:"updatedAt"})},sort:(e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:"accent",ignorePunctuation:!0}),getResource:e=>(0,o.m)({id:e}),getResourcesInitializer:()=>o.WJ,getResourceInitialState:()=>i.u,pollingOptions:{pollingInterval:18e4}})),[e,t])}},82428:(e,t,a)=>{"use strict";a.d(t,{p:()=>n});const n=(e,t)=>t.untouchable?1:e.untouchable?-1:e.name.localeCompare(t.name,void 0,{sensitivity:"accent",ignorePunctuation:!0})},7484:(e,t,a)=>{"use strict";a.d(t,{EL:()=>s,Q9:()=>g,RM:()=>h,XD:()=>c,Yk:()=>m,bz:()=>d,cN:()=>l,qi:()=>u});a(41393),a(14905),a(98992),a(81454),a(8872);var n=a(26655),r=a(49286),o=a(78969),i=a(91069);const s=()=>n.A.get(o._9,{transform:e=>e.map((e=>{let{permissions:t,...a}=e;return{...a,permissions:t.reduce(((e,t)=>({...e,[t]:t})),{})}}))}),c=e=>n.A.get("/api/v3/spaces/slug/".concat(e)),l=e=>n.A.delete("/api/v1/spaces/".concat(e)),d=e=>n.A.post("/api/v1/spaces",{name:e}),u=(e,t)=>n.A.post("/api/v1/spaces/default",{email:t},{headers:{"Netdata-Account-Id":e}}),m=(e,t)=>n.A.patch("/api/v1/spaces/".concat(e),t),g=e=>n.A.get("/api/v3/spaces/slug?slug=".concat(e),{transform:e=>(0,r.bn)(e)}),p=e=>t=>t.map((t=>({...(0,r.bn)(t),spaceId:e}))),h=function(e){let{defaultParam:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n.A.get((0,i.t)({spaceId:e}),{params:{default:t},transform:p(e)})}},56639:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>c,Li:()=>i,aR:()=>s,ue:()=>o});var n=a(47444),r=a(37618);const o={createdAt:"",description:"",iconURL:"",id:"",error:null,loaded:!1,name:"",slug:""},i=(0,n.eU)({key:"currentSpaceSlug",default:null}),s=(0,n.Iz)({key:"spaceIdBySlug",default:"",effects:e=>r.Ay&&e===r.z0?[e=>{let{setSelf:t,trigger:a}=e;"get"===a&&t(r.Z2)}]:[]}),c=(0,n.Iz)({key:"space",default:o,effects:e=>(0,r.ES)(e)?[e=>{let{setSelf:t,trigger:a}=e;"get"===a&&t(r.yu)}]:[]})},88116:(e,t,a)=>{"use strict";a.d(t,{FJ:()=>i,HR:()=>s,Nw:()=>r,VH:()=>n,aT:()=>l,jS:()=>d,rY:()=>c,tD:()=>o,uC:()=>u});const n={pro:"pro",free:"free",earlyBird:"earlyBird",business:"business",homelab:"homelab"},r={Pro:n.pro,Professional:n.pro,Community:n.free,EarlyBird:n.earlyBird,Business:n.business,Homelab:n.homelab},o=[n.homelab,n.pro,n.business],i={free:{level:0,title:"Community",features:{2023.11:["Max 5 Active Connected Nodes","Max 1 Active Custom Dashboards (per Room)"]},showAnnualPrice:!1},earlyBird:{level:0,title:"Early Bird",features:{2023.02:['"Member" role available with existing permissions.','"Member" role with access to _All Nodes_ room.']},showAnnualPrice:!1},pro:{level:10,title:"Pro",features:{2023.02:["7 days of alert history and auditing events.",'Unlock the "Troubleshooter" role and add members to the space without providing management permission.',"Enable webhook alert notification integration."]},showAnnualPrice:!1},business:{level:20,title:"Business",features:{2023.02:["Up-to 90 days of alert history and topology events. Never miss an important event while troubleshooting.",'Unlock all user roles including "Manager", "Observer" and "Billing". Empower your teams to excel.',"Enable alert notification integrations (Slack, PagerDuty and more)."]},showAnnualPrice:!1},homelab:{level:20,title:"Homelab",features:{2024.02:["Targeted for homelab users or students, for non-commercial use","No limits! Unlimited Connected Nodes or Custom Dashboards","Full business level features","Fair and flat pricing","Regulated by the Fair Usage Policy"]},showAnnualPrice:!0},enterprise:{features:{2023.11:["Host Netdata Cloud and all its components completely on your premises","Ideal for monitoring air gapped facilities and critical infrastructure","Enable the customization that your organization requires"]},showAnnualPrice:!1}},s=["year","month"],c={year:"yearly",month:"monthly"},l={ErrInvalidPromotionCode:"Promotion code is invalid",ErrInactivePromotionCode:"Promotion code is inactive",ErrInvalidPromotionCodePlan:"Promotion code cannot be applied to this plan"},d="planEnrolmentError",u={free:{2023.11:{maxNodes:5,maxDashboards:1}}}},50503:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});a(62953);var n=a(96540),r=a(88116);const o=()=>{const[e,t]=(0,n.useState)(localStorage.getItem(r.jS));return{isFailure:e,setFailure:(0,n.useCallback)((()=>{t(!0),localStorage.setItem(r.jS,!0)}),[]),reset:(0,n.useCallback)((()=>{t(!1),localStorage.removeItem(r.jS)}),[])}}},55189:(e,t,a)=>{"use strict";a.d(t,{dy:()=>i,eA:()=>r,pz:()=>o,sh:()=>s});var n=a(96540);const r="SPACE_NOT_FOUND",o=5,i=20,s={delete:n.createElement(n.Fragment,null,"Cannot delete last space of account.",n.createElement("br",null),"You can delete your account instead."),leave:n.createElement(n.Fragment,null,"Cannot leave last space of account.",n.createElement("br",null),"You can delete your account instead.")}},48849:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n=(0,a(47444).eU)({key:"publicSpacesAtom",default:[]})},14994:(e,t,a)=>{"use strict";a.d(t,{Is:()=>d,YB:()=>v,$e:()=>l,Jz:()=>p,Oy:()=>h,DL:()=>A,WW:()=>g,Y7:()=>m,CB:()=>f,sC:()=>u});a(17333),a(9920),a(41393),a(98992),a(54520),a(3949),a(81454),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(47444),r=a(69765),o=a(3914),i=a(37618);const s={ids:(0,n.Iz)({key:"spaceRoomIds",default:[],effects:e=>(0,i.ES)(e)?[e=>{let{onSet:t,trigger:a,setSelf:n}=e;"get"===a&&n([i.gB]),t((e=>{n([i.gB,...e])}))}]:[]}),updatedAt:(0,n.Iz)({key:"spaceRoomsUpdatedAt",default:""}),loaded:(0,n.Iz)({key:"spaceRoomsLoaded",default:!1,effects:e=>(0,i.ES)(e)?[e=>{let{trigger:t,setSelf:a}=e;"get"===t&&a(!0)}]:[]})};var c=a(82428);const l=(0,n.K0)({key:"spaceRoomState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;return n(s[a](t))}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r(s[a](t),n)}}}),d=(e,t)=>{Object.values(s).forEach((a=>e(a(t))))},u=(e,t)=>(0,n.vc)(l({id:e,key:t})),m=e=>{const t=(0,o.vt)();return u(t,e)},g=()=>{const e=(0,o.vt)();return u(e,"ids")},p=(0,n.K0)({key:"spaceRoomsState/add",get:()=>()=>null,set:e=>(t,a)=>{let{set:n,get:o}=t;const i=e=>o((0,r.LS)({id:e}));n(l({id:e,key:"ids"}),(e=>[...new Set([...e,a.id])].sort(((e,t)=>(0,c.p)(i(e),i(t)))))),n(l({id:e,key:"loaded"}),!0),n(l({id:e,key:"updatedAt"}),"")}}),h=(0,n.K0)({key:"spaceRoomsState/remove",get:()=>()=>null,set:e=>(t,a)=>{let{set:n}=t;n(l({id:e,key:"ids"}),(e=>e.filter((e=>e!==a)))),n(l({id:e,key:"loaded"}),!0),n(l({id:e,key:"updatedAt"}),"")}}),v=(0,n.K0)({key:"spaceFullRooms",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;return n(l({id:t,key:"ids"})).map((e=>n((0,r.LS)({id:e,key:a}))))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),f=(e,t)=>(0,n.vc)(v({id:e,key:t})),A=e=>{const t=(0,o.vt)();return f(t,e)}},3914:(e,t,a)=>{"use strict";a.d(t,{EG:()=>g,Jn:()=>m,U2:()=>u,nC:()=>l,Pk:()=>f,vt:()=>b,bq:()=>A,ap:()=>k,jw:()=>w,hX:()=>y,Ak:()=>v,dg:()=>S,ns:()=>p,UV:()=>h});a(9920),a(41393),a(98992),a(3949),a(81454),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(47444),r=a(37618),o=a(76689);const i={ids:(0,n.eU)({key:"spaceIds",default:[],effects:r.Ay?[e=>{let{onSet:t,trigger:a,setSelf:n}=e;"get"===a&&n([r.Z2]),t((e=>{n([r.Z2,...e])}))}]:[]}),error:(0,n.eU)({key:"spacesError",default:null}),updatedAt:(0,n.eU)({key:"spacesUpdatedAt",default:""}),loaded:(0,n.eU)({key:"spacesLoaded",default:!1,effects:[e=>{var t;let{trigger:a,setSelf:n,getLoadable:r}=e;null!==(t=r(o.A).contents)&&void 0!==t&&t.isAnonymous&&"get"===a&&n(!0)}]})};var s=a(56639),c=a(48849);const l=(0,n.K0)({key:"spacesState",get:e=>t=>{let{get:a}=t;return a(i[e])},set:e=>(t,a)=>{let{set:n}=t;n(i[e],a)}}),d=(0,n.gD)({key:"availableSpaceIds",get:e=>{let{get:t}=e;const a=t(l("ids")),n=t(c.A);return[...new Set([...a,...n])]}}),u=(0,n.K0)({key:"spaceState",get:e=>{let{id:t,key:a}=e;return e=>{let{get:n}=e;const r=n((0,s.Ay)(t));return a?r[a]:r}},set:e=>{let{id:t,key:a}=e;return(e,n)=>{let{set:r}=e;r((0,s.Ay)(t),a?"function"!==typeof n?e=>({...e,[a]:n}):e=>({...e,[a]:n(e[a])}):{...s.ue,...n})}}}),m=(0,n.K0)({key:"spaceIdBySlugState",get:e=>t=>{let{get:a}=t;return a((0,s.aR)(e))},set:()=>(e,t)=>{let{set:a}=e;t.forEach((e=>{a((0,s.aR)(e.slug),e.id)}))}}),g=(0,n.gD)({key:"currentSpaceIdState",get:e=>{let{get:t}=e;const a=t(s.Li);return t(m(a))}}),p=(e,t)=>(0,n.vc)(u({id:e,key:t})),h=e=>(0,n.vc)(l(e)),v=e=>(0,n.vc)(m(e)),f=()=>(0,n.vc)(d),A=()=>(0,n.vc)(s.Li),y=e=>(0,n.lZ)(s.Li,e),b=()=>(0,n.vc)(g),S=()=>(0,r.ES)(b()),k=e=>{const t=b();return p(t,e)},w=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,n.Zs)((t=>{let{snapshot:a}=t;return()=>e.map((e=>a.getLoadable(u({id:e})).contents))}))()}},48388:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(3914),r=a(90709),o=a(55189),i=a(37618);const s=()=>{const e=(0,r.U)(),t=(0,n.Ak)(e),a=(0,n.ns)(t||o.eA),s=(0,n.UV)("error");return(0,i.ES)(t)?{isFetching:!1,hasAccess:!0}:{isFetching:!!e&&!a.loaded&&!s&&!a.error,hasAccess:a.loaded&&!s&&!a.error}}},90709:(e,t,a)=>{"use strict";a.d(t,{A:()=>v,U:()=>h});a(14905),a(98992),a(8872),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(47444),r=a(47767),o=a(7484),i=a(96540),s=a(3914);const c="/spaces/:spaceSlug/*";var l=a(22292),d=a(46741),u=a(48849),m=a(55189),g=a(94355),p=a(37618);const h=()=>{var e;return null===(e=(0,r.RQ)(c))||void 0===e||null===(e=e.params)||void 0===e?void 0:e.spaceSlug},v=()=>{const e=(()=>{const e=(0,r.RQ)(c),{spaceSlug:t}=(null===e||void 0===e?void 0:e.params)||{},a=(0,s.hX)(),n=(0,s.bq)();return(0,i.useEffect)((()=>{n!==t&&a(t)}),[n,t]),t})(),[t,a]=(0,i.useState)(null),h=(0,l.uW)("isAnonymous"),v=(0,n.Zs)((n=>{let{set:r}=n;return async()=>{try{const{data:t}=await(0,o.XD)(e),{id:a,permissions:n,...i}=t;r((0,d.Dk)(a),n.reduce(((e,t)=>({...e,[t]:t})),{})),r((0,s.U2)({id:a}),(e=>({...e,...i,loaded:!0}))),r((0,s.Jn)(),[{id:a,slug:e}]),r(u.A,(e=>[...new Set([...e,a])])),h&&r((0,s.nC)("loaded"),!0)}catch(t){r((0,s.U2)({id:m.eA}),(a=>({...a,error:(0,g.A)(t)}))),a(t)}}}),[h,e]);return(0,i.useEffect)((()=>{p.Ay&&e===p.z0||e&&v()}),[v,e]),t}},87633:(e,t,a)=>{"use strict";a.d(t,{A:()=>d,e:()=>l});var n=a(83957),r=a(69765),o=a(7484),i=a(14994),s=a(82428),c=a(37618);const l=e=>"spaces.".concat(e,".rooms"),d=function(e){let{autorun:t=!0,polling:a=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,n.A)((()=>({key:l(e),autorun:t&&!!e,polling:a,fetch:()=>(0,o.RM)(e),association:{getIds:()=>(0,i.$e)({id:e,key:"ids"}),getLoaded:()=>(0,i.$e)({id:e,key:"loaded"}),getUpdatedAt:()=>(0,i.$e)({id:e,key:"updatedAt"})},sort:s.p,getResource:r.If,pollingOptions:{pollingInterval:69e3},force:!c.Ay})),[e])}},47731:(e,t,a)=>{"use strict";a.d(t,{J:()=>r});var n=a(45463);const r=()=>(0,n.A)("(max-width: 767px)")},18061:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});a(9391),a(62953);var n=a(96540);const r=()=>{},o=(e,t)=>{const{fetch:a,enabled:o=!0,initialValue:i,onFail:s=r,onSettle:c=r,onSuccess:l=r,isDefaultLoading:d=!1}=(0,n.useMemo)(e,t),[u,m]=(0,n.useState)(i),[g,p]=(0,n.useState)(d),[h,v]=(0,n.useState)(null),f=(0,n.useRef)(!0);return(0,n.useEffect)((()=>{if(!o)return;m(i),p(!0),v(null);const e=a();return e.then((e=>{let{data:t}=e;f.current&&(m(t),l(t))})).catch((e=>{f.current&&(e.isCancel||(v(e),s(e)))})).finally((()=>{f.current&&(p(!1),c())})),()=>{var t;return null===e||void 0===e||null===(t=e.cancel)||void 0===t?void 0:t.call(e)}}),t),(0,n.useEffect)((()=>()=>f.current=!1),[]),[u,g,h]}},69418:(e,t,a)=>{"use strict";a.d(t,{A:()=>c,Q:()=>s});a(14905),a(98992),a(8872);var n=a(47767),r=a(3914),o=a(14994),i=a(37618);const s=()=>{const{pathname:e}=(0,n.zy)();return{isIntegrationsPath:/integrate-anything$/.test(e)}},c=()=>{const e=(0,r.vt)(),t=(0,o.CB)(e,"nodeCount").reduce(((e,t)=>t>e?t:e),0),a=(0,o.Y7)("loaded"),n=(0,i.ES)(e);return[!n&&a&&0===t,!n&&e&&!a,t]}},61649:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});a(62953);var n=a(96540);const r=(e,t)=>{const a=(0,n.useRef)();return(0,n.useCallback)((function(){var t,n;return a.current&&(null===(t=(n=a.current).cancel)||void 0===t||t.call(n)),a.current=e(...arguments),a.current}),t)}},86723:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});a(62953);var n=a(96540);const r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const a=localStorage.getItem(e);return a?JSON.parse(a):t},o=(e,t)=>{const[a,o]=(0,n.useState)((()=>r(e,t)));return(0,n.useEffect)((()=>localStorage.setItem(e,JSON.stringify(a))),[a]),[a,o]}},45463:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});a(62953);var n=a(96540);const r=e=>{var t;return"function"===typeof(null===(t=window)||void 0===t?void 0:t.matchMedia)&&window.matchMedia(e).matches},o=e=>{const[t,a]=(0,n.useState)((()=>r(e)));function o(){a(r(e))}return(0,n.useEffect)((()=>{if("function"!==typeof window.matchMedia)return;const t=window.matchMedia(e);return o(),t.addListener?t.addListener(o):t.addEventListener("change",o),()=>{t.removeListener?t.removeListener(o):t.removeEventListener("change",o)}}),[e]),t}},80862:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(96540);const r=()=>{const e=(0,n.useRef)(!1);return(0,n.useEffect)((()=>(e.current=!0,()=>e.current=!1)),[]),e}},71835:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});a(9920),a(98992),a(3949);var n=a(96540),r=a(78217),o=a(13871);const i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";const t=(0,n.useRef)({}),a=(0,n.useCallback)((a=>{const n=(0,o.UI)({...a,success:!0});t.current[e]&&r.A.dismiss(t.current[e]),t.current[e]=r.A.success(n)}),[]),i=(0,n.useCallback)((a=>{var n;const i=null===a||void 0===a||null===(n=a.response)||void 0===n?void 0:n.data,s=(0,o.gi)(null!==i&&void 0!==i&&i.errorMessage?i:{errorMessage:a.message,errorMsgKey:a.message,...a});t.current[e]&&r.A.dismiss(t.current[e]),t.current[e]=r.A.error(s)}),[]),s=(0,n.useCallback)((e=>e.forEach(i)),[]),c=(0,n.useCallback)((a=>{const n=(0,o.UI)({...a,warning:!0});t.current[e]&&r.A.dismiss(t.current[e]),t.current[e]=r.A.warning(n)}),[]);return[a,i,s,c]}},76201:(e,t,a)=>{"use strict";a.d(t,{A:()=>i,F:()=>o});var n=a(96540),r=a(47767);const o=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;null!==(e=window.posthog)&&void 0!==e&&e.__loaded&&window.posthog.capture("$pageview",{$current_url:t})},i=()=>{const{pathname:e}=(0,r.zy)();(0,n.useEffect)((()=>{o()}),[e])}},66627:(e,t,a)=>{"use strict";a.d(t,{A:()=>o,h:()=>r});const n=(0,a(63457).A)("netdata"),r=86400,o=function(e,t){let a,{maxAge:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=()=>{if(!a)return;const e=new Error("rejected");throw e.isCancel=!0,e},i=n.get(e,{maxAge:r}).then((e=>{if(o(),e)return t(e)})).then((()=>(o(),t=>n.set(e,t))));return i.abort=()=>{a=!0},i}},12800:(e,t,a)=>{"use strict";a.d(t,{y:()=>r});var n=a(66627);const r=async e=>{let t,{key:a,handleResults:r}=e;return(await(0,n.A)(a,(e=>(t={updatedAt:"",results:r(e)},t))))(t)}},5169:(e,t,a)=>{"use strict";a.d(t,{t:()=>r});var n=a(22292);const r=()=>{const e=(0,n.NJ)();return"user.".concat(e,".")}},83957:(e,t,a)=>{"use strict";a.d(t,{A:()=>y});a(17333),a(9920),a(41393),a(14905),a(98992),a(54520),a(3949),a(81454),a(8872),a(25509),a(65223),a(60321),a(41927),a(11632),a(64377),a(66771),a(12516),a(68931),a(52514),a(35694),a(52774),a(49536),a(21926),a(94483),a(16215),a(62953);var n=a(96540),r=a(47444),o=a(65570),i=a(83488),s=a.n(i),c=a(18300),l=a(80925),d=a(94355),u=a(68831),m=a(22292),g=a(66627),p=a(5169),h=a(71835);const v=(0,r.eU)({key:"subscriptionsLatestError",default:0}),f=(0,r.K0)({key:"useSubscribe/updateState",get:()=>()=>null,set:()=>(e,t)=>{let{get:a,set:n}=e,{results:r,wasDiff:i,updatedAt:c,getResource:l,getResourcesInitializer:d,getResourceInitialState:u,getUpdatedAt:m,getLoaded:g,getIds:p,getError:h,sort:v,saveToCache:f,restored:A=!1,polling:y=!0}=t;r=r||[],h&&n(h(),null);const b=()=>{n(m(),c),n(g(),!A||"restored")};if(0===r.length&&i)return void b();const{effected:S,deleted:k,byId:w}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s();return e.reduce(((e,a)=>(a.loaded=!0,"deleted"===a.state||a.isDeleted?e.deleted.push(a.id):(e.byId[a.id]={...t(a),...a},e.effected.push(a.id)),e)),{deleted:[],effected:[],byId:{}})}(r,u),I=e=>e in w?w[e]:a(l(e));let E=[];n(p(),(e=>!i&&y||!y?(E=S.length?S:E,v&&E.sort(((e,t)=>v(I(e),I(t)))),E):(k.length&&(E=e.filter((e=>!k.includes(e)))),i&&S.length&&(E=[...new Set([...e,...S])],v&&E.sort(((e,t)=>v(I(e),I(t))))),(0,o.Ay)(E,e)?e:E))),d?n(d(),{values:w,merge:!0}):S.forEach((e=>n(l(e),(t=>({...t,loaded:!0,...w[e]}))))),b(),f&&f({results:E.map(I),updatedAt:c})}}),A=e=>{const t=(0,l.e)(),a=(0,n.useMemo)((()=>t?t.getRoot():null),[t]),[,o]=(0,c.A)(),[,i]=(0,h.A)(e.key),s=(0,r.Zs)((e=>{let{snapshot:t,set:a}=e;return async(e,n)=>{let{getError:r,onFail:o}=n;const s=Date.now(),c=await t.getPromise(v);if(e.isCancel||c+1e4>s)throw e;throw r&&a(r(),(0,d.A)(e)),a(v,s),o?o(e):i(e),e}}),[e]),m=(0,r.Zs)((e=>{let{snapshot:t,set:a}=e;return async(e,n)=>{let{fetchResources:r,onReceive:o,getUpdatedAt:i,getError:c,clearRef:l,onFail:d,...u}=n;const g=await t.getPromise(i());return(l.promise=r(g),l.promise.catch((async e=>s(e,{onFail:d,getError:c})))).then((function(){let{data:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(e=>{const t=Array.isArray(e),n=t?e:e.results,s=t?"":e.updatedAt;return null===o||void 0===o||o({...t?{results:n}:{results:[],...e},lastUpdated:g}),a(f(),{fetchResources:r,results:n,wasDiff:!!g,updatedAt:s,getUpdatedAt:i,getError:c,clearRef:l,onFail:d,...u}),new Promise((e=>setTimeout(e,0)))})(e)})).catch((t=>{if(t.isCancel||1===e)throw t;return m(--e,{fetchResources:r,onReceive:o,getUpdatedAt:i,getError:c,clearRef:l,onFail:d,...u})}))}}),[e]);return(0,n.useCallback)((t=>{const{polling:n=!0,fetch:r,association:i,pollingOptions:s,keepPolling:c,...l}=e,d={timeoutId:null,animationFrameId:null,promise:null,killed:!1},g=()=>m(2,{fetchResources:r,saveToCache:t,polling:n,clearRef:d,...i,...l}),p=()=>{d.killed||(d.timeoutId=setTimeout((()=>{d.animationFrameId=requestAnimationFrame((()=>!c&&a&&(a.getAttribute("hovering")||a.getAttribute("paused"))?p():c||o.current||a&&a.getAttribute("autofetchOnWindowBlur")?void g().then(p).catch((e=>!e.isCancel&&p())):p()))}),(null===s||void 0===s?void 0:s.pollingInterval)||u.A.pollingInterval))};return g().then(n?p:null).catch((e=>n&&!e.isCancel&&p())),()=>{var e,t;d.killed=!0,null===(e=d.promise)||void 0===e||null===(t=e.cancel)||void 0===t||t.call(e),cancelAnimationFrame(d.animationFrameId),clearTimeout(d.timeoutId)}}),[e])},y=(e,t)=>{const a=(0,p.t)(),o=(0,m.uW)("isAnonymous"),i=(0,n.useMemo)((()=>{const{key:t,...n}=e();return{key:"".concat(a).concat(t),...n}}),[e,...t,o]),s=A(i),c=(0,r.Zs)((e=>{let{set:t}=e;return e=>{var a;let{results:n=[],updatedAt:r=""}=e;const o=(Array.isArray(n)&&n.length)>0;return null===(a=i.onReceive)||void 0===a||a.call(i,{results:n,lastUpdated:""}),t(f(),{results:n,updatedAt:o?r:"",...i,...i.association,restored:o}),new Promise((e=>setTimeout(e,0)))}}),t),l=(0,r.Zs)((e=>{let{snapshot:t}=e;return()=>{const{association:{getLoaded:e},key:a,cache:n=!0,maxCacheAge:r,skip:o}=i,l=t.getLoadable(e()).contents;if(!o&&(l||!n))return s();const d=(0,g.A)(a,c,{maxAge:r||g.h});let u;return d.then((e=>{u=s(e)})).catch((()=>{})),()=>{var e;o||(d.abort(),null===(e=u)||void 0===e||e())}}}),t);return(0,n.useEffect)((()=>{const{autorun:e=!0,force:t=!1,skip:a=!1}=i;if((!o||t)&&!a&&e)return l()}),[o,l]),s}},87659:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});a(62953);var n=a(96540);const r=function(e){let{on:t,off:a,toggle:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[o,i]=(0,n.useState)(!!e);return[o,(0,n.useCallback)((e=>i((n=>{const o="boolean"===typeof e?e:!n;return r&&r(o),t&&o&&t(),a&&!o&&a(),o}))),[r,t,a]),(0,n.useCallback)((()=>{i(!0),t&&t()}),[t]),(0,n.useCallback)((()=>{i(!1),a&&a()}),[a])]}},45467:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(96540),r=a(80862);const o=(e,t)=>{const a=(0,r.A)();(0,n.useEffect)((()=>{if(a.current)return e()}),t)}},56820:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>S,Pb:()=>b,z1:()=>v});a(8159),a(98992),a(37550),a(62953);var n=a(96540),r=a(47767),o=a(45588),i=a(3914),s=a(14994),c=a(48388),l=a(81048),d=a(21591),u=a(69765),m=a(68980),g=a(68831),p=a(24198),h=a(37618);const v=e=>{const t=(0,r.Zp)(),a=(0,r.g)(),o=(0,u.r9)(),i=(0,m.zi)(e||a.dashboardSlug),s=(0,d.RQ)(),c=(0,n.useRef)(!1);(0,n.useEffect)((()=>{!0===s&&(i?c.current=!0:(t("".concat(o,"/dashboards")),c.current||(0,p.$j)()))}),[s,i])},{demoSlug:f,demoDefaultRoomViews:A,defaultRoomView:y}=g.A,b=e=>{var t;return e.length?e.some((e=>{let{slug:t}=e;return t===l.mL}))?l.mL:null===(t=e[0])||void 0===t?void 0:t.slug:null},S=()=>{(0,r.zy)();const e=(0,r.Zp)(),t=(0,r.RQ)({path:"/spaces/:spaceSlug/*"}),a=(0,r.RQ)({path:"/spaces/:spaceSlug/rooms/:roomSlug/*"}),l=(0,r.RQ)({path:"/*"}),d=(null===a||void 0===a?void 0:a.params)||(null===t||void 0===t?void 0:t.params)||(null===l||void 0===l?void 0:l.params),m=!!(0,r.RQ)({path:"/spaces/:spaceSlug/settings/*"}),g=(0,i.Ak)(d.spaceSlug),p=(0,i.UV)("loaded"),v=(0,u.J_)(g,d.roomSlug),S=(0,s.Y7)("loaded"),[k]=(0,i.Pk)(),w=(0,i.ns)(k,"slug"),{isFetching:I}=(0,c.A)(),E=(0,s.DL)(),x=(0,i.hX)(),C=(0,i.bq)();(0,n.useEffect)((()=>{if(I)return;if(!h.Ay&&(!p||"restored"===p))return;if(m&&g)return;if(g&&C!==d.spaceSlug)return void x(d.spaceSlug);if(g&&!S)return;if(g&&v)return;const t=g?d.spaceSlug:w,a=v?null===d||void 0===d?void 0:d.roomSlug:b(E);e(g&&S&&!a?(0,o.tW)("/spaces/:spaceSlug/no-rooms",{spaceSlug:t}):((e,t)=>{if(!t)return(0,o.tW)("/spaces/:spaceSlug/",{spaceSlug:e});const a=f===e?A[t]||A.default:h.Ay&&e===h.z0&&t===h.gB?h.kG:y;return(0,o.tW)("/spaces/:spaceSlug/rooms/:roomSlug/".concat(a),{spaceSlug:e,roomSlug:t})})(t,a),{replace:!0})}),[m,I,d.roomSlug,d.spaceSlug,v,S,!!E.length,p,g,w,C])}},18300:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});a(62953);var n=a(96540);const r=function(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const[t,a]=(0,n.useState)(e),r=(0,n.useRef)(t);return(0,n.useEffect)((()=>{const e=()=>{r.current=!1,a(!1)};window.addEventListener("blur",e);const t=()=>{r.current=!0,a(!0)};return window.addEventListener("focus",t),()=>{window.removeEventListener("blur",e),window.removeEventListener("focus",t)}}),[]),[t,r]}},85919:(e,t,a)=>{"use strict";a(17333),a(98992),a(54520),a(62953);var n=a(96540),r=a(39225),o=a(5338),i=a(47444),s=a(84976),c=a(47767),l=a(12968),d=a(86641),u=a(80925),m=a(55337),g=a(24266),p=a(47731),h=a(28738),v=a(37618);const f=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function A(e,t){navigator.serviceWorker.register(e).then((e=>{a.g.registration=e,e.onupdatefound=()=>{const a=e.installing;null!=a&&(a.onstatechange=()=>{"installed"===a.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See http://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((e=>{console.error("Error during service worker registration:",e)}))}a(25440);var y=a(57971);const b=(e,t)=>(t.search=t.pathname===e.location.pathname?t.search:t.search||e.location.search,t.hash=t.hash||e.location.hash,t);function S(e){if(v.sA&&"/"!==v.sA&&e.startsWith(v.sA)){const t=v.sA+e.slice(v.sA.length).replace(new RegExp("^".concat(v.sA),"g"),"/");e=t}return e=e.replace(/\/+/g,"/")}const k=e=>"string"===typeof e?{pathname:S(e)}:{...e,pathname:S(e.pathname)},w=(0,y.zR)({window:window}),I=w.push,E=w.replace;w.push=(e,t)=>I.apply(w,[b(w,k(e)),t]),w.replace=(e,t)=>{E.apply(w,[b(w,k(e)),t])};const x=w,C=JSON.parse('{"UU":"cloud-frontend","rE":"6.104.1"}'),T=(0,r.A)((()=>Promise.all([a.e(3296),a.e(7840)]).then(a.bind(a,17840))),"Redirects"),N=(0,r.A)((()=>Promise.all([a.e(3296),a.e(7208),a.e(5596)]).then(a.bind(a,75596))),"SignIn"),R=(0,r.A)((()=>a.e(3350).then(a.bind(a,73350))),"Trust"),M=(0,r.A)((()=>a.e(9818).then(a.bind(a,89818))),"MobileApp"),D=(0,r.A)((()=>a.e(7529).then(a.bind(a,67529))),"AuthTokenCallback"),_=(0,r.A)((()=>Promise.all([a.e(7208),a.e(1418)]).then(a.bind(a,11418))),"MagicLinkSent"),U=(0,r.A)((()=>a.e(1876).then(a.bind(a,41876))),"SignUpVerification"),P=(0,r.A)((()=>a.e(8473).then(a.bind(a,28473))),"CheckAuth"),L=(0,r.A)((()=>Promise.all([a.e(1396),a.e(7471)]).then(a.bind(a,86147))),"App"),K=(0,r.A)((()=>a.e(3736).then(a.bind(a,63736))),"GlobalStyles"),B=(0,r.A)((()=>a.e(683).then(a.bind(a,683))),"Notifications"),z=(0,r.A)((()=>Promise.all([a.e(7519),a.e(5794),a.e(8784)]).then(a.bind(a,38784)).then((e=>({default:e.AssistantAlerts})))),"AssistantAlerts"),F=(0,r.A)((()=>Promise.all([a.e(7519),a.e(5794),a.e(8784)]).then(a.bind(a,38784)).then((e=>({default:e.AssistantChat})))),"AssistantChat"),j=(0,r.A)((()=>a.e(7146).then(a.bind(a,57146))),"Webviews");window.envSettings.tracking?setTimeout((()=>{var e;const t=[!(null===(e=window)||void 0===e||null===(e=e.posthog)||void 0===e||!e.SentryIntegration)&&new window.posthog.SentryIntegration(window.posthog,"netdata-inc",5210883)].filter(Boolean);l.T({dsn:"https://43a4669badb04eee941ec8b242991df7@o382276.ingest.sentry.io/5210883",maxBreadcrumbs:100,release:"".concat(C.UU,"@").concat(C.rE),debug:!1,integrations:t,tracesSampleRate:.2,environment:window.envSettings.isAgent?"agent":window.envSettings.nodeEnv||"agent",denyUrls:[],autoSessionTracking:!1,beforeSend(e,t){var a;let{originalException:n={}}=t;if(!/netdata\.cloud/.test(null===e||void 0===e||null===(a=e.request)||void 0===a||null===(a=a.headers)||void 0===a?void 0:a.Referer))return null;if(!n)return e;const{response:r={},isCancel:o=!1}=n;if(o)return null;const{status:i}=r;return 400===i||422===i?e:i>=400&&i<=599?null:e},ignoreErrors:["Non-Error exception captured","Non-Error promise rejection captured","Request aborted",/ResizeObserver/,"timeout exceeded","this.get_config is not a function",/IndexSizeError/,"Invalid time value","not_found",/A mutation operation was attempted on a database that did not allow mutations/,/No data for this period/,/Network Error/]}),window.addEventListener("beforeunload",(function(){try{d.BF().getClient().getOptions().enabled=!1}catch(e){}}))}),500):console.log("Running in development mode version:",C.UU,C.rE);const O=(0,m.g)(g.H4,"light"),G=()=>null,W=()=>{const e=(0,p.J)();return n.createElement(i.bi,null,n.createElement(n.Suspense,{fallback:""},n.createElement(m.A,null,n.createElement(u.A,null,n.createElement(g.Ay,{fallback:O},n.createElement(n.Suspense,{fallback:""},n.createElement(K,{isScreenSmall:e}),n.createElement(B,null),n.createElement(z,null),n.createElement(F,null),n.createElement(s.rI,{className:"router",history:x,basename:v.Ay?v.sA:"/"},n.createElement(c.BV,null,n.createElement(c.qh,{path:"/webviews/*",element:n.createElement(G,null)}),n.createElement(c.qh,{path:"*",element:n.createElement(P,null)})),n.createElement(n.Suspense,{fallback:n.createElement(h.A,null)},n.createElement(c.BV,null,!v.Ay&&n.createElement(n.Fragment,null,n.createElement(c.qh,{path:"/sign-in",element:n.createElement(N,null)}),n.createElement(c.qh,{path:"/trust",element:n.createElement(R,null)}),n.createElement(c.qh,{path:"/sign-up",element:n.createElement(c.C5,{to:"/sign-in",replace:!0})}),n.createElement(c.qh,{path:"/sign-up/verify",element:n.createElement(U,null)}),n.createElement(c.qh,{path:"/sign-in/magic-link-sent",element:n.createElement(_,null)}),n.createElement(c.qh,{path:"/sign-in/mobile-app",element:n.createElement(M,null)}),n.createElement(c.qh,{path:"/webviews/*",element:n.createElement(j,null)})),n.createElement(c.qh,{path:"/cloud/origin/callback",element:n.createElement(D,null)}),n.createElement(c.qh,{path:"/redirects",element:n.createElement(T,null)}),n.createElement(c.qh,{path:"*",element:n.createElement(L,null)}))))))))))};var V;(0,o.H)(document.getElementById("app")).render(n.createElement(W,null)),"serviceWorker"in navigator&&window.addEventListener("load",(()=>{const e="".concat(window.envSettings.webpackPublicPath,"/sw.js");f?(function(e,t){fetch(e).then((a=>{const n=a.headers.get("content-type");404===a.status||null!=n&&-1===n.indexOf("javascript")?navigator.serviceWorker.ready.then((e=>{e.unregister().then((()=>{window.location.reload()}))})):A(e,t)})).catch((()=>{console.log("No internet connection found. App is running in offline mode.")}))}(e,V),navigator.serviceWorker.ready.then((()=>{console.log("This web app is being served cache-first by a service worker. To learn more, visit http://bit.ly/CRA-PWA")}))):A(e,V)}))},27752:(e,t,a)=>{"use strict";a(25440);a.p=window.envSettings.isAgent&&!window.envSettings.webpackPublicPath?window.envSettings.agentApiUrl+"/v2/":"".concat(window.envSettings.webpackPublicPath||"","/").replace(/([^:]\/)\/+/g,"$1")},98439:(e,t,a)=>{"use strict";a(62953);window.envSettings.tracking&&(window.posthog={},a.e(3624).then(a.bind(a,83624)).then((e=>{window.posthog=e.default,window.posthog.init(window.envSettings.posthogToken,{api_host:"https://app.posthog.com"})})),function(e,t,a,n,r){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var o=t.getElementsByTagName(a)[0],i=t.createElement(a);i.async=!0,i.src="https://www.googletagmanager.com/gtm.js?id=GTM-N6CBMJD",o.parentNode.insertBefore(i,o)}(window,document,"script","dataLayer"))},91069:(e,t,a)=>{"use strict";a.d(t,{t:()=>r});var n=a(78969);const r=e=>{let{spaceId:t}=e;return"".concat(n.P8,"/spaces/").concat(t,"/rooms?show_all=true")}},42634:()=>{}},e=>{e.O(0,[3524],(()=>{[8473,1396,7471].map(e.E)}),5);var t=t=>e(e.s=t);e.O(0,[3975,4292,2981,5171],(()=>(t(27752),t(98439),t(85919))));e.O()}]); \ No newline at end of file
diff --git a/web/gui/v2/app.cb2e9f9a81cf9533384e.css b/src/web/gui/v2/app.cb2e9f9a81cf9533384e.css
index 1dd170178..1dd170178 100644
--- a/web/gui/v2/app.cb2e9f9a81cf9533384e.css
+++ b/src/web/gui/v2/app.cb2e9f9a81cf9533384e.css
diff --git a/web/gui/v2/apple-app-site-association b/src/web/gui/v2/apple-app-site-association
index c4593e0c7..c4593e0c7 100644
--- a/web/gui/v2/apple-app-site-association
+++ b/src/web/gui/v2/apple-app-site-association
diff --git a/src/web/gui/v2/bundlesManifest.6.json b/src/web/gui/v2/bundlesManifest.6.json
new file mode 100644
index 000000000..f95ad46cd
--- /dev/null
+++ b/src/web/gui/v2/bundlesManifest.6.json
@@ -0,0 +1,9 @@
+{
+ "app.css": "/app.cb2e9f9a81cf9533384e.css",
+ "app.js": "/app.7443b231e52789baa643.js",
+ "runtime.js": "/runtime.30ce76c6e7acf60ebf83.js",
+ "npm.react.dom.js": "/npm.react.dom.b2a6a30db3d683abdb32.js",
+ "netdata.ui.js": "/netdata.ui.f50ab375c8daf7a2a547.js",
+ "netdata.charts.js": "/netdata.charts.f0b9e2b96837688d2aab.js",
+ "5171.js": "/5171.2a848991a41e02f24c8d.js"
+} \ No newline at end of file
diff --git a/src/web/gui/v2/dashboard_v2.cmake b/src/web/gui/v2/dashboard_v2.cmake
new file mode 100644
index 000000000..ed9189514
--- /dev/null
+++ b/src/web/gui/v2/dashboard_v2.cmake
@@ -0,0 +1,297 @@
+
+ install(FILES src/web/gui/v2/1220.866e5f8ef6dd53cc1146.chunk.js
+src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js
+src/web/gui/v2/1396.3ea7b55a3bffeef95530.chunk.js.LICENSE.txt
+src/web/gui/v2/1418.a399f41ec9789d008612.chunk.js
+src/web/gui/v2/1726.e4f235562d58cb4f4044.chunk.js
+src/web/gui/v2/1782.31d84c467a8446cb3c47.chunk.js
+src/web/gui/v2/1839.1dcd23c81c97fb79bfdb.chunk.js
+src/web/gui/v2/185.7461f65d16b20fe83fc1.chunk.js
+src/web/gui/v2/1875.e736e046980cb8eb4cda.chunk.js
+src/web/gui/v2/1876.ba66fdbcfb1b55334646.chunk.js
+src/web/gui/v2/195.3898e2d9ea61ff1d4a4f.chunk.js
+src/web/gui/v2/2007.3c73c91371062be4c05e.chunk.js
+src/web/gui/v2/2414.38b580f70a86a4f94b83.chunk.js
+src/web/gui/v2/3104.dfd9b1f79c9550ab8493.chunk.js
+src/web/gui/v2/3296.66994eada739315fc37e.chunk.js
+src/web/gui/v2/3350.24934ec57134cbef07bf.chunk.js
+src/web/gui/v2/3584.7b6df71f431fe58061ad.chunk.js
+src/web/gui/v2/3624.b8b5bc981ae890a8a5b8.chunk.js
+src/web/gui/v2/3705.38e023af816fb6ce8fc9.chunk.js
+src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js
+src/web/gui/v2/3731.40bfabd5c5a12309b1a9.chunk.js.LICENSE.txt
+src/web/gui/v2/3736.b247e40ccbdc039b9877.chunk.js
+src/web/gui/v2/3750.6f01a0becb7db332b4ce.chunk.js
+src/web/gui/v2/3968.a5f7366160b7ac086dba.chunk.js
+src/web/gui/v2/3D_PARTY_LICENSES.txt
+src/web/gui/v2/4034.9c82e72b081978919942.chunk.js
+src/web/gui/v2/4414.60a74c3b7534b4a25469.chunk.js
+src/web/gui/v2/4680.0c75b44bbc80f4591fdd.chunk.js
+src/web/gui/v2/5171.2a848991a41e02f24c8d.js
+src/web/gui/v2/5171.2a848991a41e02f24c8d.js.LICENSE.txt
+src/web/gui/v2/5246.a7c78643acccf04d7268.chunk.js
+src/web/gui/v2/5304.dcb81c99fcb90f8ee8cc.chunk.js
+src/web/gui/v2/5426.1235a7a39c1b0923b071.chunk.js
+src/web/gui/v2/5596.8280cb325a103342aa30.chunk.js
+src/web/gui/v2/5598.99e492f7ae4d391df96f.chunk.js
+src/web/gui/v2/5700.313f7b9c7005d2022b03.chunk.js
+src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js
+src/web/gui/v2/5709.6fc5fd48f639100fa6ad.chunk.js.LICENSE.txt
+src/web/gui/v2/5794.719f2daca8b8f3a118fe.chunk.js
+src/web/gui/v2/6008.07f03fb5dba476a12f91.chunk.js
+src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js
+src/web/gui/v2/6121.8c25bb62d82381e90df8.chunk.js.LICENSE.txt
+src/web/gui/v2/6218.26fc25279f45fbcf29f7.chunk.js
+src/web/gui/v2/6323.425683f5bf71a51caf65.chunk.js
+src/web/gui/v2/6331.89070793921be1288bb5.css
+src/web/gui/v2/6331.ccfaab2b17a28e1b6aa2.chunk.js
+src/web/gui/v2/6760.fe4a9b58186542294e85.chunk.js
+src/web/gui/v2/683.95b7a3193b43fd5dbe51.chunk.js
+src/web/gui/v2/683.cc9fa5f3bdc0bf3ab2fc.css
+src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js
+src/web/gui/v2/7144.72da82bc4f112d1e6d31.chunk.js.LICENSE.txt
+src/web/gui/v2/7146.43b5125ff0b41138f0bc.chunk.js
+src/web/gui/v2/7208.3c255b9641ab4d451747.chunk.js
+src/web/gui/v2/7332.8f89f4887946c129ea01.chunk.js
+src/web/gui/v2/7340.c563ddaad6c68dab9088.chunk.js
+src/web/gui/v2/7410.cb47519a7a5187208b28.chunk.js
+src/web/gui/v2/7436.6d4c25c5ff7d2e65734c.chunk.js
+src/web/gui/v2/7471.d61aa69f317a13bd1b86.chunk.js
+src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js
+src/web/gui/v2/749.8ce93b3d6d67d600e8c8.chunk.js.LICENSE.txt
+src/web/gui/v2/7519.8a99c6b9370779196847.chunk.js
+src/web/gui/v2/7529.75d71f48d8d6ea454b6d.chunk.js
+src/web/gui/v2/7789.89070793921be1288bb5.css
+src/web/gui/v2/7789.f00b7764a97a7dadff97.chunk.js
+src/web/gui/v2/7840.e1af907905ff10afb069.chunk.js
+src/web/gui/v2/785.c45abbb1e2a4915d85df.chunk.js
+src/web/gui/v2/7857.0d6fb5e4a2c2b8996e0f.chunk.js
+src/web/gui/v2/7959.3995671185f9720b5454.chunk.js
+src/web/gui/v2/8011.3f8282bb427ea06e9408.chunk.js
+src/web/gui/v2/8059.c88ad65e1926faee2379.chunk.js
+src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js
+src/web/gui/v2/8323.61daef62d0036dd19dbf.chunk.js.LICENSE.txt
+src/web/gui/v2/8323.e22de33686bb2f34063c.css
+src/web/gui/v2/8473.757c1686b1578c6813c8.chunk.js
+src/web/gui/v2/8505.b10bf3549c213fe15d55.chunk.js
+src/web/gui/v2/8507.89070793921be1288bb5.css
+src/web/gui/v2/8507.e30db778518756ef63fa.chunk.js
+src/web/gui/v2/86.167efe55b22f02c3155a.chunk.js
+src/web/gui/v2/8676.a3d687b3b339a72ab66e.chunk.js
+src/web/gui/v2/8784.c51d36fede97c85313e9.chunk.js
+src/web/gui/v2/9297.394c9cbf0a1e402384a6.chunk.js
+src/web/gui/v2/934.aadd4297c0cd646a1038.chunk.js
+src/web/gui/v2/9473.3693c06a873280f11bd6.chunk.js
+src/web/gui/v2/9510.58c95eb5f0290291b5a9.chunk.js
+src/web/gui/v2/966.89070793921be1288bb5.css
+src/web/gui/v2/966.8f0a484a79552c192bc1.chunk.js
+src/web/gui/v2/9818.ca4131b4d88d20e88f72.chunk.js
+src/web/gui/v2/9843.75b313f97c4d363a4959.chunk.js
+src/web/gui/v2/9912.b952e26497a284ac37b2.chunk.js
+src/web/gui/v2/LICENSE.md
+src/web/gui/v2/agent.html
+src/web/gui/v2/allFiles.6.104.1.json
+src/web/gui/v2/allFiles.6.json
+src/web/gui/v2/app.7443b231e52789baa643.js
+src/web/gui/v2/app.cb2e9f9a81cf9533384e.css
+src/web/gui/v2/apple-app-site-association
+src/web/gui/v2/bundlesManifest.6.json
+src/web/gui/v2/favicon.ico
+src/web/gui/v2/index.html
+src/web/gui/v2/local-agent.html
+src/web/gui/v2/netdata.charts.f0b9e2b96837688d2aab.js
+src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js
+src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js.LICENSE.txt
+src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js
+src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js.LICENSE.txt
+src/web/gui/v2/registry-access.html
+src/web/gui/v2/registry-alert-redirect.html
+src/web/gui/v2/registry-hello.html
+src/web/gui/v2/runtime.30ce76c6e7acf60ebf83.js
+src/web/gui/v2/sw.js DESTINATION ${WEB_DEST}/v2)
+ install(FILES src/web/gui/v2/static/apple-app-site-association
+src/web/gui/v2/static/splash.css DESTINATION ${WEB_DEST}/v2/static)
+ install(FILES src/web/gui/v2/static/email/img/clea_badge.png
+src/web/gui/v2/static/email/img/clea_siren.png
+src/web/gui/v2/static/email/img/community_icon.png
+src/web/gui/v2/static/email/img/configure_icon.png
+src/web/gui/v2/static/email/img/crit_badge.png
+src/web/gui/v2/static/email/img/crit_siren.png
+src/web/gui/v2/static/email/img/flood_siren.png
+src/web/gui/v2/static/email/img/full_logo.png
+src/web/gui/v2/static/email/img/header.png
+src/web/gui/v2/static/email/img/isotype_600.png
+src/web/gui/v2/static/email/img/label_critical.png
+src/web/gui/v2/static/email/img/label_recovered.png
+src/web/gui/v2/static/email/img/label_warning.png
+src/web/gui/v2/static/email/img/reachability_siren.png
+src/web/gui/v2/static/email/img/warn_badge.png
+src/web/gui/v2/static/email/img/warn_siren.png DESTINATION ${WEB_DEST}/v2/static/email/img)
+ install(FILES src/web/gui/v2/static/img/list-style-image.svg
+src/web/gui/v2/static/img/new-dashboard.svg
+src/web/gui/v2/static/img/no-filter-results.png
+src/web/gui/v2/static/img/no-nodes-room.svg
+src/web/gui/v2/static/img/rack.png DESTINATION ${WEB_DEST}/v2/static/img)
+ install(FILES src/web/gui/v2/static/img/logos/os/alpine.svg
+src/web/gui/v2/static/img/logos/os/arch.svg
+src/web/gui/v2/static/img/logos/os/centos.svg
+src/web/gui/v2/static/img/logos/os/coreos.svg
+src/web/gui/v2/static/img/logos/os/debian.svg
+src/web/gui/v2/static/img/logos/os/docker.svg
+src/web/gui/v2/static/img/logos/os/fedora.svg
+src/web/gui/v2/static/img/logos/os/freebsd.svg
+src/web/gui/v2/static/img/logos/os/freenas.svg
+src/web/gui/v2/static/img/logos/os/gentoo.svg
+src/web/gui/v2/static/img/logos/os/kubernetes.svg
+src/web/gui/v2/static/img/logos/os/linux-small.svg
+src/web/gui/v2/static/img/logos/os/linux.svg
+src/web/gui/v2/static/img/logos/os/macos.svg
+src/web/gui/v2/static/img/logos/os/manjaro.svg
+src/web/gui/v2/static/img/logos/os/openstack.svg
+src/web/gui/v2/static/img/logos/os/opensuse.svg
+src/web/gui/v2/static/img/logos/os/openwrt.svg
+src/web/gui/v2/static/img/logos/os/oracle.svg
+src/web/gui/v2/static/img/logos/os/pfsense.svg
+src/web/gui/v2/static/img/logos/os/placeholder.svg
+src/web/gui/v2/static/img/logos/os/raspberry-pi.svg
+src/web/gui/v2/static/img/logos/os/redhat.svg
+src/web/gui/v2/static/img/logos/os/rocky.svg
+src/web/gui/v2/static/img/logos/os/suse.svg
+src/web/gui/v2/static/img/logos/os/ubuntu.svg DESTINATION ${WEB_DEST}/v2/static/img/logos/os)
+ install(FILES src/web/gui/v2/static/img/logos/services/access-point.svg
+src/web/gui/v2/static/img/logos/services/activemq.svg
+src/web/gui/v2/static/img/logos/services/adaptec.svg
+src/web/gui/v2/static/img/logos/services/alerta.svg
+src/web/gui/v2/static/img/logos/services/apache.svg
+src/web/gui/v2/static/img/logos/services/apc.svg
+src/web/gui/v2/static/img/logos/services/aws-sns.svg
+src/web/gui/v2/static/img/logos/services/aws.svg
+src/web/gui/v2/static/img/logos/services/beanstalkd.svg
+src/web/gui/v2/static/img/logos/services/boinc.svg
+src/web/gui/v2/static/img/logos/services/btrfs.svg
+src/web/gui/v2/static/img/logos/services/ceph.svg
+src/web/gui/v2/static/img/logos/services/chrony.svg
+src/web/gui/v2/static/img/logos/services/cloud.svg
+src/web/gui/v2/static/img/logos/services/concul.svg
+src/web/gui/v2/static/img/logos/services/consul.svg
+src/web/gui/v2/static/img/logos/services/container.svg
+src/web/gui/v2/static/img/logos/services/couchdb.svg
+src/web/gui/v2/static/img/logos/services/cups.svg
+src/web/gui/v2/static/img/logos/services/data-encryption.svg
+src/web/gui/v2/static/img/logos/services/ddos.svg
+src/web/gui/v2/static/img/logos/services/discord.svg
+src/web/gui/v2/static/img/logos/services/dns.svg
+src/web/gui/v2/static/img/logos/services/docker.svg
+src/web/gui/v2/static/img/logos/services/dovecot.svg
+src/web/gui/v2/static/img/logos/services/elasticsearch.svg
+src/web/gui/v2/static/img/logos/services/email.svg
+src/web/gui/v2/static/img/logos/services/exim.svg
+src/web/gui/v2/static/img/logos/services/fail2ban.svg
+src/web/gui/v2/static/img/logos/services/flock.svg
+src/web/gui/v2/static/img/logos/services/fluentd.svg
+src/web/gui/v2/static/img/logos/services/fping.svg
+src/web/gui/v2/static/img/logos/services/freeradius.svg
+src/web/gui/v2/static/img/logos/services/fronius.svg
+src/web/gui/v2/static/img/logos/services/gnu-freeipmi.svg
+src/web/gui/v2/static/img/logos/services/golang.svg
+src/web/gui/v2/static/img/logos/services/grafana.svg
+src/web/gui/v2/static/img/logos/services/graphite.svg
+src/web/gui/v2/static/img/logos/services/haproxy.svg
+src/web/gui/v2/static/img/logos/services/hub.svg
+src/web/gui/v2/static/img/logos/services/icecast.svg
+src/web/gui/v2/static/img/logos/services/influxdb.svg
+src/web/gui/v2/static/img/logos/services/ipfs.svg
+src/web/gui/v2/static/img/logos/services/irc.svg
+src/web/gui/v2/static/img/logos/services/isc.svg
+src/web/gui/v2/static/img/logos/services/kafka.svg
+src/web/gui/v2/static/img/logos/services/kairosdb.svg
+src/web/gui/v2/static/img/logos/services/kavenegar.svg
+src/web/gui/v2/static/img/logos/services/key-file.svg
+src/web/gui/v2/static/img/logos/services/kubernetes.svg
+src/web/gui/v2/static/img/logos/services/libreswan.svg
+src/web/gui/v2/static/img/logos/services/libvirt.svg
+src/web/gui/v2/static/img/logos/services/lighthttpd.svg
+src/web/gui/v2/static/img/logos/services/linux.svg
+src/web/gui/v2/static/img/logos/services/litespeed.svg
+src/web/gui/v2/static/img/logos/services/lm-sensors.svg
+src/web/gui/v2/static/img/logos/services/load-balancer.svg
+src/web/gui/v2/static/img/logos/services/log-file.svg
+src/web/gui/v2/static/img/logos/services/logstash.svg
+src/web/gui/v2/static/img/logos/services/lxd.svg
+src/web/gui/v2/static/img/logos/services/mariadb.svg
+src/web/gui/v2/static/img/logos/services/memcached.svg
+src/web/gui/v2/static/img/logos/services/messagebird.svg
+src/web/gui/v2/static/img/logos/services/mongodb.svg
+src/web/gui/v2/static/img/logos/services/monit.svg
+src/web/gui/v2/static/img/logos/services/monitoring.svg
+src/web/gui/v2/static/img/logos/services/mysql.svg
+src/web/gui/v2/static/img/logos/services/netfilter.svg
+src/web/gui/v2/static/img/logos/services/network-protocol.svg
+src/web/gui/v2/static/img/logos/services/network.svg
+src/web/gui/v2/static/img/logos/services/nfs.svg
+src/web/gui/v2/static/img/logos/services/nginx-plus.svg
+src/web/gui/v2/static/img/logos/services/nginx.svg
+src/web/gui/v2/static/img/logos/services/notification-bell.svg
+src/web/gui/v2/static/img/logos/services/nsd.svg
+src/web/gui/v2/static/img/logos/services/ntpd.svg
+src/web/gui/v2/static/img/logos/services/nut.svg
+src/web/gui/v2/static/img/logos/services/nvidia.svg
+src/web/gui/v2/static/img/logos/services/openldap.svg
+src/web/gui/v2/static/img/logos/services/opensips.svg
+src/web/gui/v2/static/img/logos/services/opentsdb.svg
+src/web/gui/v2/static/img/logos/services/openvpn.svg
+src/web/gui/v2/static/img/logos/services/openzfs.svg
+src/web/gui/v2/static/img/logos/services/oracle.svg
+src/web/gui/v2/static/img/logos/services/pagerduty.svg
+src/web/gui/v2/static/img/logos/services/php-fpm.svg
+src/web/gui/v2/static/img/logos/services/placeholder.svg
+src/web/gui/v2/static/img/logos/services/postfix.svg
+src/web/gui/v2/static/img/logos/services/postgresql.svg
+src/web/gui/v2/static/img/logos/services/powerdns.svg
+src/web/gui/v2/static/img/logos/services/processor.svg
+src/web/gui/v2/static/img/logos/services/prometheus.svg
+src/web/gui/v2/static/img/logos/services/prowl.svg
+src/web/gui/v2/static/img/logos/services/proxysql.svg
+src/web/gui/v2/static/img/logos/services/puppet.svg
+src/web/gui/v2/static/img/logos/services/pushbullet.svg
+src/web/gui/v2/static/img/logos/services/pushover.svg
+src/web/gui/v2/static/img/logos/services/qos.svg
+src/web/gui/v2/static/img/logos/services/rabbitmq.svg
+src/web/gui/v2/static/img/logos/services/raspberry-pi.svg
+src/web/gui/v2/static/img/logos/services/redis.svg
+src/web/gui/v2/static/img/logos/services/rethinkdb.svg
+src/web/gui/v2/static/img/logos/services/retroshare.svg
+src/web/gui/v2/static/img/logos/services/rocketchat.svg
+src/web/gui/v2/static/img/logos/services/samba.svg
+src/web/gui/v2/static/img/logos/services/server-connection.svg
+src/web/gui/v2/static/img/logos/services/slack.svg
+src/web/gui/v2/static/img/logos/services/sma.svg
+src/web/gui/v2/static/img/logos/services/smstools3.svg
+src/web/gui/v2/static/img/logos/services/solr.svg
+src/web/gui/v2/static/img/logos/services/spigot.svg
+src/web/gui/v2/static/img/logos/services/springboot.svg
+src/web/gui/v2/static/img/logos/services/squid.svg
+src/web/gui/v2/static/img/logos/services/statsd.svg
+src/web/gui/v2/static/img/logos/services/stiebel.svg
+src/web/gui/v2/static/img/logos/services/systemd.svg
+src/web/gui/v2/static/img/logos/services/telegram.svg
+src/web/gui/v2/static/img/logos/services/temperature.svg
+src/web/gui/v2/static/img/logos/services/tomcat.svg
+src/web/gui/v2/static/img/logos/services/tor.svg
+src/web/gui/v2/static/img/logos/services/traefik.svg
+src/web/gui/v2/static/img/logos/services/twilio.svg
+src/web/gui/v2/static/img/logos/services/unbound.svg
+src/web/gui/v2/static/img/logos/services/uwsgi.svg
+src/web/gui/v2/static/img/logos/services/varnish.svg
+src/web/gui/v2/static/img/logos/services/veritas.svg
+src/web/gui/v2/static/img/logos/services/xen.svg DESTINATION ${WEB_DEST}/v2/static/img/logos/services)
+ install(FILES src/web/gui/v2/static/img/mail/isotype.png
+src/web/gui/v2/static/img/mail/isotype.svg
+src/web/gui/v2/static/img/mail/logotype.png
+src/web/gui/v2/static/img/mail/logotype.svg DESTINATION ${WEB_DEST}/v2/static/img/mail)
+ install(FILES src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.css
+src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.svg
+src/web/gui/v2/static/site/pages/holding-page-503/index.html
+src/web/gui/v2/static/site/pages/holding-page-503/multiple-logos-group.svg
+src/web/gui/v2/static/site/pages/holding-page-503/netdata-logo-white.svg
+src/web/gui/v2/static/site/pages/holding-page-503/reset.svg DESTINATION ${WEB_DEST}/v2/static/site/pages/holding-page-503)
diff --git a/web/gui/v2/favicon.ico b/src/web/gui/v2/favicon.ico
index 59db5011b..59db5011b 100644
--- a/web/gui/v2/favicon.ico
+++ b/src/web/gui/v2/favicon.ico
Binary files differ
diff --git a/src/web/gui/v2/index.html b/src/web/gui/v2/index.html
new file mode 100644
index 000000000..255d32784
--- /dev/null
+++ b/src/web/gui/v2/index.html
@@ -0,0 +1,245 @@
+<!doctype html><html><head><title>Netdata Agent Console</title><script>let pathsRegex = /\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud|v2)\/?.*/
+ let getBasename = function() {
+ return window.location.origin + window.location.pathname.replace(pathsRegex, "")
+ }
+ let goToOld = function(path) {
+ let goToUrl = getBasename() + path;
+ if (path === "/v2") {
+ let pathsRegex = /(\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud)\/?.*)/
+ if (pathsRegex.test(window.location.origin + window.location.pathname)) {
+ goToUrl = (window.location.origin + window.location.pathname).replace(pathsRegex, "/v2$1")
+ }
+ }
+ window.location.replace(ensureOneSlash(goToUrl + window.location.search))
+ }
+ let getAssetFile = function(path) {
+ window.location.replace(__webpack_public_path__ + path)
+ }
+ let ensureOneSlash = function(urlStr) {
+ return urlStr.replace(/([^:]\/)\/+/g, "$1")
+ }
+ let searchParams = new URLSearchParams(location.search)
+ window.envSettings = {
+ isAgent: true,
+ apiUrl: "https://app.netdata.cloud",
+ cloudUrl: "https://app.netdata.cloud",
+ demoSlug: "netdata-demo",
+ demoFavourites: {"postgresql":["postgres"],"redis":["redis"],"dns-query":["dns_query"],"http-endpoints":["httpcheck"],"nginx":["web_log","nginx"],"apache":["apache"],"host-reachability":["ping"],"cassandra":["cassandra"],"coredns":["coredns"],"logind":["logind"],"iis":["iis"],"active-directory":["ad"],"windows":["windows","ad","iis","mssql","exchange","netframework"],"docker":["cgroup","docker"],"ups":["upsd"]},
+ webpackPublicPath: "",
+ agentApiUrl: searchParams.get("agent") || getBasename(),
+ posthogToken: "phc_hnhlqe6D2Q4IcQNrFItaqdXJAxQ8RcHkPAFAp74pubv",
+ version: "6.104.1",
+ tracking: false,
+ cookieDomain: ".netdata.cloud",
+ onprem: false,
+ nodeEnv: "production"
+ }
+
+ window.visitedNodes = []
+
+ function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
+ rel = rel || 'stylesheet'
+ type = type || 'text/css'
+ return new Promise(function(resolve, reject) {
+ let link = document.createElement('link');
+ link.type = type;
+ link.rel = rel;
+ link.href = url;
+ link.media = media || 'all';
+
+ link.onerror = function(err) {
+ reject(new URIError(`loadStyle: the stylesheet ${err.target.src} is not accessible.`));
+ };
+
+ link.onload = function() {
+ resolve();
+ };
+
+ if (aref) {
+ aref.parentNode.insertBefore(link, aref.nextSibling);
+ return;
+ }
+
+ if (bref) {
+ bref.parentNode.insertBefore(link, bref);
+ return;
+ }
+
+ document.head.appendChild(link);
+ });
+ }
+
+ loadStyle(window.envSettings.agentApiUrl + "/v2/static/splash.css")
+ loadStyle(window.envSettings.agentApiUrl + "/v2/favicon.ico", {rel: "icon", type: "image/x-icon"})</script><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6CBMJD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="app"><div id="agent-splash-screen" class="loading"><div class="hero"><div class="logo-container"><svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo-blur"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="rgba(0,171,68,0.1)"/></svg> <svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="#DDFFEB"/></svg></div><div class="headings"><h1 class="title">Welcome to Netdata</h1><div class="loading-message"><p class="subtitle">Loading latest Netdata UI...</p><div class="flex-center">We couldn't load the latest Netdata UI. <a class="button ghost" href="javascript:location.reload();">You can try again <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.364 8.05001L17.657 7.34301C16.318 6.00369 14.5472 5.18285 12.6598 5.02654C10.7724 4.87022 8.89077 5.38856 7.34966 6.48934C5.80855 7.59011 4.70794 9.20193 4.24365 11.038C3.77936 12.8741 3.98151 14.8153 4.81412 16.5164C5.64674 18.2174 7.05583 19.5678 8.79067 20.3275C10.5255 21.0871 12.4736 21.2067 14.2883 20.6648C16.103 20.123 17.6666 18.955 18.701 17.3685C19.7353 15.782 20.1733 13.8801 19.937 12.001M18.364 8.05001L14.121 8.05101M18.364 8.05001V3.80701" stroke="#00ab44" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a></div></div></div></div><div class="flex-center">Or you can load the <a class="button ghost" href="javascript:goToOld('/v1');">old single node dashboard</a> or a <a class="button ghost" href="javascript:goToOld('/v2');">local copy</a> of Netdata UI</div><div class="flex-center terms"><a href="javascript:getAssetFile('/LICENSE.md');">Netdata UI license</a></div></div></div><script>let status = {
+ TIMEOUT: 'timeout',
+ SUCCESS: 'success',
+ SKIPPED: 'skipped'
+ };
+ function loadScript(
+ url,
+ { async = true, defer = false, insertAfter: aref, insertBefore: bref, timeout = 5000, attrs, skipIf } = {}
+ ) {
+ return new Promise(function(resolve, reject) {
+ if (typeof skipIf === 'function' && skipIf()) {
+ resolve(status.SKIPPED);
+ return;
+ }
+
+ let rejectWithTimeout = setTimeout(function() { reject(status.TIMEOUT) }, timeout);
+
+ let script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = url;
+ script.async = async;
+ script.defer = defer;
+
+ if (attrs) {
+ for (let attr in attrs) {
+ script.setAttribute(attr, attrs[attr]);
+ }
+ }
+
+ script.onerror = function(err) {
+ reject(new URIError(`loadScript: the script ${err.target.src} is not accessible.`));
+ };
+
+ script.onload = function() {
+ clearTimeout(rejectWithTimeout);
+ resolve(status.SUCCESS);
+ };
+
+ if (aref) {
+ aref.parentNode.insertBefore(script, aref.nextSibling);
+ return;
+ }
+
+ if (bref) {
+ bref.parentNode.insertBefore(script, bref);
+ return;
+ }
+
+ document.body.appendChild(script);
+ });
+ }
+
+ fetch(window.envSettings.agentApiUrl + "/api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
+ .then(function(response) { return response.json() })
+ .then(function(data) {
+ let to = data.cloud_base_url.lastIndexOf('/');
+ to = (to == -1 || to < data.cloud_base_url.length -2) ? data.cloud_base_url.length : to;
+ let cloudUrl = data.cloud_base_url.substring(0, to);
+ window.envSettings.apiUrl = cloudUrl
+
+ cloudUrl = /api\.netdata\.cloud/.test(cloudUrl) ? "https://app.netdata.cloud" : cloudUrl
+ window.envSettings.cloudUrl = cloudUrl
+ window.envSettings.webpackPublicPath = window.envSettings.webpackPublicPath ? cloudUrl : window.envSettings.webpackPublicPath
+ __webpack_public_path__ = ensureOneSlash(window.envSettings.webpackPublicPath ? (window.envSettings.webpackPublicPath + "/") : (window.envSettings.agentApiUrl + "/v2/"))
+
+ window.localNetdataRegistry = {
+ anonymousStatistics: data.anonymous_statistics,
+ registry: data.registry,
+ isNetdataRegistry: data.registry === "https://registry.my-netdata.io",
+ hostname: data.hostname,
+ mg: data.agent.machine_guid,
+ nd: data.agent.node_id,
+ claimId: data.agent.claim_id,
+ cloudStatus: data.cloud_status,
+ xNetdataAuthHeader: data["X-Netdata-Auth"] || false
+ }
+
+
+
+ if ((window.localNetdataRegistry.cloudStatus === "disabled" || window.localNetdataRegistry.cloudStatus === "unavailable") && !/\/v2/.test(location.pathname)) {
+ goToOld("/v2")
+ return
+ }
+
+ fetch(__webpack_public_path__ + "bundlesManifest."+ window.envSettings.version.toString().replace(/(\d+)\..+/, "$1") +".json")
+ .then(function(response) { return response.json() })
+ .then(function(data) {
+ Object.keys(data).forEach(function(k) {
+ if (/\.(map|ico|html)$/.test(data[k])) return
+ if (/static\//.test(data[k])) return
+
+ if (/\.css.*$/.test(data[k])) {
+ loadStyle(ensureOneSlash(__webpack_public_path__ + data[k]))
+ return
+ }
+
+ if (/\.js.*$/.test(data[k])) {
+ loadScript(ensureOneSlash(__webpack_public_path__ + data[k]), {
+ async: false,
+ });
+ }
+ let el = document.getElementById('agent-splash-screen');
+ el.classList.remove("loading");
+ })
+ }).catch(function() {
+ let el = document.getElementById('agent-splash-screen');
+ el.classList.remove("loading");
+ el.classList.add("error");
+ });
+
+ envSettings.tracking = window.localNetdataRegistry.anonymousStatistics !== false
+
+ let withoutNodes = btoa(JSON.stringify({
+ registry: data.registry,
+ machine_guid: data.machine_guid,
+ hostname: data.hostname,
+ agent: data.agent,
+ nodes: []
+ }))
+ let iframe = document.createElement('iframe');
+ iframe.src = data.registry + "/registry-access.html?x=" + withoutNodes + "&originUrl=" + window.envSettings.agentApiUrl;
+ iframe.style = { position: "absolute", left: "-99999999px" };
+ iframe.width = 0 ;
+ iframe.height = 0;
+ iframe.tabindex = -1;
+ iframe.title = "empty";
+ iframe.classList.add("hidden");
+ document.body.appendChild(iframe);
+
+ setTimeout(function () {
+ document.title = data.hostname + ': Netdata Agent Console';
+ iframe.contentWindow.postMessage(["netdata-registry", window.envSettings.agentApiUrl, data], "*")
+ }, 300);
+
+ window.addEventListener('message', function(event) {
+ if (event.source !== iframe.contentWindow) return;
+
+ if (event.data.status === "disabled") console.error("Your netdata registry is disabled! Check your configuration.")
+
+ if (event.data) {
+ if (!window.localNetdataRegistry) {
+ window.localNetdataRegistry = {}
+ }
+
+ window.localNetdataRegistry.pg = event.data.person_guid
+
+ if (!window.envSettings) {
+ window.envSettings = {}
+ }
+
+ window.envSettings.visitor = event.data.person_guid
+
+ try {
+ var visitedNodesByName = event.data.urls.reduce(function (vn, visitedUrl) {
+ vn[visitedUrl[4]] = vn[visitedUrl[4]] || {}
+ vn[visitedUrl[4]].id = visitedUrl[0]
+ vn[visitedUrl[4]].name = visitedUrl[4]
+ vn[visitedUrl[4]].lastAccessTime = visitedUrl[2]
+ vn[visitedUrl[4]].urls = vn[visitedUrl[4]].urls || []
+ vn[visitedUrl[4]].urls.push(visitedUrl[1])
+
+ return vn
+ }, {})
+
+ window.visitedNodes = Object.keys(visitedNodesByName).map(function(vn) {
+ return visitedNodesByName[vn]
+ })
+ } catch(e) {
+ // do nothing
+ }
+ }
+ });
+ }).catch(() => {})</script></body></html> \ No newline at end of file
diff --git a/web/gui/v2/local-agent.html b/src/web/gui/v2/local-agent.html
index f607322c1..255d32784 100644
--- a/web/gui/v2/local-agent.html
+++ b/src/web/gui/v2/local-agent.html
@@ -28,13 +28,15 @@
webpackPublicPath: "",
agentApiUrl: searchParams.get("agent") || getBasename(),
posthogToken: "phc_hnhlqe6D2Q4IcQNrFItaqdXJAxQ8RcHkPAFAp74pubv",
- version: "6.66.1",
+ version: "6.104.1",
tracking: false,
cookieDomain: ".netdata.cloud",
onprem: false,
nodeEnv: "production"
}
+ window.visitedNodes = []
+
function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
rel = rel || 'stylesheet'
type = type || 'text/css'
@@ -219,6 +221,25 @@
}
window.envSettings.visitor = event.data.person_guid
+
+ try {
+ var visitedNodesByName = event.data.urls.reduce(function (vn, visitedUrl) {
+ vn[visitedUrl[4]] = vn[visitedUrl[4]] || {}
+ vn[visitedUrl[4]].id = visitedUrl[0]
+ vn[visitedUrl[4]].name = visitedUrl[4]
+ vn[visitedUrl[4]].lastAccessTime = visitedUrl[2]
+ vn[visitedUrl[4]].urls = vn[visitedUrl[4]].urls || []
+ vn[visitedUrl[4]].urls.push(visitedUrl[1])
+
+ return vn
+ }, {})
+
+ window.visitedNodes = Object.keys(visitedNodesByName).map(function(vn) {
+ return visitedNodesByName[vn]
+ })
+ } catch(e) {
+ // do nothing
+ }
}
});
}).catch(() => {})</script></body></html> \ No newline at end of file
diff --git a/src/web/gui/v2/netdata.charts.f0b9e2b96837688d2aab.js b/src/web/gui/v2/netdata.charts.f0b9e2b96837688d2aab.js
new file mode 100644
index 000000000..48e44cef5
--- /dev/null
+++ b/src/web/gui/v2/netdata.charts.f0b9e2b96837688d2aab.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="94c7261a-859c-44f7-9489-76821560bf14",e._sentryDebugIdIdentifier="sentry-dbid-94c7261a-859c-44f7-9489-76821560bf14")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[2981],{19318:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=o(r(68652)),n=r(28973),s=o(r(58370));function o(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){u(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e,t){var r,o,a,u,c=(0,i.default)(e,t),d=function(){c.render();var e=t.getAttributes(),r=e.hoverX;if(e.loaded){var i=t.getPayload().data,n=i[r?t.getClosestRow(r[0]):i.length-1];if(Array.isArray(n)){c.render();var s=t.getAttribute("getValueRange")(t),o=s[0],l=s[1];o===a&&l===u||c.sdk.trigger("yAxisChange",t,o,l),a=o,u=l,c.trigger("rendered")}}};return l(l({},c),{},{mount:function(e){c.mount(e),o=(0,s.default)(e,(function(){return c.trigger("resize")}),(function(){return c.trigger("resize")}));var i=t.getAttributes().loaded;r=(0,n.unregister)(t.onAttributeChange("hoverX",d),!i&&t.onceAttributeChange("loaded",d)),d()},unmount:function(){r&&r(),o&&o(),c.unmount(),a=null,u=null},render:d})}},19543:(e,t)=>{function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function i(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function n(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.__esModule=!0,t.default=void 0;t.default=function(e,t){void 0===t&&(t={});var r=e.getElement(),n=r.clientWidth,s=r.clientHeight;return{header:{title:{text:"",color:"",fontSize:"",fontWeight:""},subtitle:{text:"",color:"",fontSize:"",fontWeight:""},titleSubtitlePadding:1},footer:{text:"",color:"",fontSize:"",fontWeight:"",location:""},data:i({sortOrder:"label-asc",smallSegmentGrouping:{enabled:!0,value:5,valueType:"count",label:"smaller",caption:"rest of dimensions",color:e.chart.getThemeAttribute("themeD3pieSmallColor")},content:[]},t),labels:{outer:{format:"label-value2",hideWhenLessThanPercentage:null,pieDistance:10},inner:{format:"percentage",hideWhenLessThanPercentage:101},mainLabel:{color:"segment",fontSize:"0.9em",fontWeight:"normal",font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},percentage:{color:e.chart.getThemeAttribute("themeInnerLabelColor"),fontSize:"1em",fontWeight:"strong",decimalPlaces:0,font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},value:{color:e.chart.getThemeAttribute("themeD3pieSmallColor"),fontSize:"1.2em",fontWeight:"strong",font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},lines:{enabled:!0,style:"curved",color:"segment"},truncation:{enabled:!1,truncateLength:30},formatter:function(t){return"value"===t.part?("No data"===t.realLabel?"-":e.chart.getConvertedValue(t.value))+" "+e.chart.getUnitSign():"percentage"===t.part?t.label+"%":t.label}},effects:{load:{effect:"none",speed:0},pullOutSegmentOnClick:{effect:"bounce",speed:400,size:5},highlightSegmentOnMouseover:!0,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"caption",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:"#000000",backgroundOpacity:.5,color:"#ffffff",borderRadius:2,fontSize:"11px",padding:4}},misc:{colors:{background:"transparent",segments:[],segmentStroke:e.chart.getThemeAttribute("themeD3pieStroke")},gradient:{enabled:!1},canvasPadding:{top:0,right:0,bottom:0,left:0},pieCenterOffset:{x:0,y:0},cssPrefix:null},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null},size:{canvasHeight:Math.floor(s),canvasWidth:Math.floor(n),pieInnerRadius:"50%",pieOuterRadius:"75%"}}}},68637:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=c(r(68652)),n=r(28973),s=c(r(58370)),o=c(r(85872)),a=r(86263),l=c(r(99906)),u=c(r(19543));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e,t){var r,c,d,p,m=(0,i.default)(e,t),g=null,b=(0,o.default)(),h=function(){g&&(g.destroy(),g.recreate())},y=function(){m.render();var e=t.getAttributes(),r=e.hoverX,i=e.loaded;if(g&&i){var n=t.getPayload().data,s=r?t.getClosestRow(r[0]):-1;s=-1===s?n.length-1:s;var o=t.getVisibleDimensionIds().map((function(e){return{label:(0,a.shortForLength)(e,30),value:t.getDimensionValue(e,s),color:t.selectDimensionColor(e),caption:e}})).filter((function(e){return!!e.value})),l=t.getAttribute("getValueRange")(t),c=l[0],f=l[1];c===d&&f===p||m.sdk.trigger("yAxisChange",t,c,f),d=c,p=f,m.render(),g.options.data.content=o.length?o:[{label:"No data",value:1,color:m.chart.getThemeAttribute("themeD3pieSmallColor")}],g.options.labels=(0,u.default)(m).labels,window.requestAnimationFrame((function(){h()})),m.trigger("rendered")}};return f(f({},m),{},{mount:function(e){if(!g){m.mount(e);var i=t.getAttribute("theme");e.classList.add(i);var o=t.getAttributes().loaded;g=new l.default(e,(0,u.default)(m)),c=(0,s.default)(e.parentNode,(function(){g.options=f(f({},g.options),{},{size:(0,u.default)(m).size}),h(),m.trigger("resize")}),(function(){return m.trigger("resize")}));var a=b.add(y);r=(0,n.unregister)(t.onAttributeChange("hoverX",a),!o&&t.onceAttributeChange("loaded",a),t.onAttributeChange("theme",a),t.on("visibleDimensionsChanged",a)),y()}},unmount:function(){r&&r(),c&&c(),g&&(g.destroy(),g=null),d=null,p=null,m.unmount()},render:y})}},99906:(e,t,r)=>{var i,n,s,o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(89638));function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}n=[],void 0===(s="function"===typeof(i=function(){var e="d3pie",t="0.2.1",r=0,i={header:{title:{text:"",color:"#333333",fontSize:"18px",fontWeight:"bold",font:"arial"},subtitle:{text:"",color:"#666666",fontSize:"14px",fontWeight:"bold",font:"arial"},location:"top-center",titleSubtitlePadding:8},footer:{text:"",color:"#666666",fontSize:"14px",fontWeight:"bold",font:"arial",location:"left"},size:{canvasHeight:500,canvasWidth:500,pieInnerRadius:"0%",pieOuterRadius:null},data:{sortOrder:"none",ignoreSmallSegments:{enabled:!1,valueType:"percentage",value:null},smallSegmentGrouping:{enabled:!1,value:1,valueType:"percentage",label:"Other",color:"#cccccc"},content:[]},labels:{outer:{format:"label",hideWhenLessThanPercentage:null,pieDistance:30},inner:{format:"percentage",hideWhenLessThanPercentage:null},mainLabel:{color:"#333333",font:"arial",fontWeight:"normal",fontSize:"10px"},percentage:{color:"#dddddd",font:"arial",fontWeight:"bold",fontSize:"10px",decimalPlaces:0},value:{color:"#cccc44",fontWeight:"bold",font:"arial",fontSize:"10px"},lines:{enabled:!0,style:"curved",color:"segment"},truncation:{enabled:!1,truncateLength:30},formatter:null},effects:{load:{effect:"none",speed:1e3},pullOutSegmentOnClick:{effect:"none",speed:300,size:10},highlightSegmentOnMouseover:!1,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"placeholder",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:"#000000",backgroundOpacity:.5,color:"#efefef",borderRadius:2,font:"arial",fontWeight:"bold",fontSize:"10px",padding:4}},misc:{colors:{background:null,segments:["#2484c1","#65a620","#7b6888","#a05d56","#961a1a","#d8d23a","#e98125","#d0743c","#635222","#6ada6a","#0c6197","#7d9058","#207f33","#44b9b0","#bca44a","#e4a14b","#a3acb2","#8cc3e9","#69a6f9","#5b388f","#546e91","#8bde95","#d2ab58","#273c71","#98bf6e","#4daa4b","#98abc5","#cc1010","#31383b","#006391","#c2643f","#b0a474","#a5a39c","#a9c2bc","#22af8c","#7fcecf","#987ac6","#3d3b87","#b77b1c","#c9c2b6","#807ece","#8db27c","#be66a2","#9ed3c6","#00644b","#005064","#77979f","#77e079","#9c73ab","#1f79a7"],segmentStroke:"#ffffff"},gradient:{enabled:!1,percentage:95,color:"#000000"},canvasPadding:{top:5,right:5,bottom:5,left:5},pieCenterOffset:{x:0,y:0},cssPrefix:null},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null}},n={initialCheck:function(e){var t=e.cssPrefix,r=e.element,i=e.options;if(!(r instanceof HTMLElement||r instanceof SVGElement))return!1;if(!/[a-zA-Z][a-zA-Z0-9_-]*$/.test(t))return!1;if(!s.isArray(i.data.content))return!1;for(var n=[],o=0;o<i.data.content.length;o++)"number"!==typeof i.data.content[o].value||isNaN(i.data.content[o].value)||i.data.content[o].value<=0||n.push(i.data.content[o]);return e.options.data.content=n,!0}},s={addSVGSpace:function(e){var t=e.element,r=e.options.size.canvasWidth,i=e.options.size.canvasHeight,n=e.options.misc.colors.background,s=o.select(t).append("svg:svg").attr("width",r).attr("height",i);return"transparent"!==n&&s.style("background-color",(function(){return n})),s},shuffleArray:function(e){for(var t,r,i=e.length;0!==i;)r=Math.floor(Math.random()*i),t=e[i-=1],e[i]=e[r],e[r]=t;return e},processObj:function(e,t,r){return"string"===typeof t?s.processObj(e,t.split("."),r):1===t.length&&void 0!==r?(e[t[0]]=r,e[t[0]]):0===t.length?e:s.processObj(e[t[0]],t.slice(1),r)},getDimensions:function(e){"string"===typeof e&&(e=document.getElementById(e));var t=0,r=0;if(e){var i=e.getBBox();t=i.width,r=i.height}return{w:t,h:r}},rectIntersect:function(e,t){return!(t.x>e.x+e.w||t.x+t.w<e.x||t.y+t.h<e.y||t.y>e.y+e.h)},getColorShade:function(e,t){(e=String(e).replace(/[^0-9a-f]/gi,"")).length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;for(var r="#",i=0;i<3;i++){var n=parseInt(e.substr(2*i,2),16);r+=("00"+(n=Math.round(Math.min(Math.max(0,n+n*t),255)).toString(16))).substr(n.length)}return r},initSegmentColors:function(e){for(var t=e.options.data.content,r=e.options.misc.colors.segments,i=[],n=0;n<t.length;n++)t[n].hasOwnProperty("color")?i.push(t[n].color):i.push(r[n]);return i},applySmallSegmentGrouping:function(e,t){var r=[],i=[],n=0,s=0;if("count"===t.valueType){for(var o=[],a=0,c=0;c<e.length;c++)o[a++]={idx:c,value:e[c].value};for(o.sort((function(e,t){return e.value<t.value?1:-1})),a=0;a<o.length;a++)e[o[a].idx].smallSegmentPriority=a;for(c=0;c<e.length;c++)e[c].smallSegmentPriority>=t.value?(i.push(e[c]),n+=e[c].value,s++):(e[c].isGrouped=!1,r.push(e[c]))}else if("percentage"===t.valueType){var d=l.getTotalPieSize(e);for(c=0;c<e.length;c++)if("percentage"===t.valueType){if(e[c].value/d*100<=t.value){i.push(e[c]),n+=e[c].value,s++;continue}e[c].isGrouped=!1,r.push(e[c])}}else for(c=0;c<e.length;c++)e[c].value<=t.value?(i.push(e[c]),n+=e[c].value,s++):(e[c].isGrouped=!1,r.push(e[c]));return i.length&&r.push(u(u({},t),{},{color:t.color,label:"["+t.label+" "+s+"]",value:n,isGrouped:!0,groupedData:i})),r},showPoint:function(e,t,r){e.append("circle").attr("cx",t).attr("cy",r).attr("r",2).style("fill","black")},isFunction:function(e){return e&&"[object Function]"==={}.toString.call(e)},isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)}},a=function e(){var t,r,i,n,s,o,a=arguments[0]||{},l=1,u=arguments.length,c=!1,d=Object.prototype.toString,f=Object.prototype.hasOwnProperty,p={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object"},m={isFunction:function(e){return"function"===m.type(e)},isArray:Array.isArray||function(e){return"array"===m.type(e)},isWindow:function(e){return null!==e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null===e?String(e):p[d.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==m.type(e)||e.nodeType)return!1;try{if(e.constructor&&!f.call(e,"constructor")&&!f.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}var t;for(t in e);return void 0===t||f.call(e,t)}};for("boolean"===typeof a&&(c=a,a=arguments[1]||{},l=2),"object"===typeof a||m.isFunction(a)||(a={}),u===l&&(a=this,--l);l<u;l++)if(null!==(t=arguments[l]))for(r in t)i=a[r],a!==(n=t[r])&&(c&&n&&(m.isPlainObject(n)||(s=m.isArray(n)))?(s?(s=!1,o=i&&m.isArray(i)?i:[]):o=i&&m.isPlainObject(i)?i:{},a[r]=e(c,o,n)):void 0!==n&&(a[r]=n));return a},l={toRadians:function(e){return e*(Math.PI/180)},toDegrees:function(e){return e*(180/Math.PI)},computePieRadius:function(e){var t=e.options.size,r=e.options.misc.canvasPadding,i=t.canvasWidth-r.left-r.right,n=t.canvasHeight-r.top-r.bottom;"pie-center"!==e.options.header.location&&(n-=e.textComponents.headerHeight),e.textComponents.footer.exists&&(n-=e.textComponents.footer.h);var s,o,a=(i<(n=n<0?0:n)?i:n)/3;if(null!==t.pieOuterRadius)if(/%/.test(t.pieOuterRadius)){o=(o=(o=parseInt(t.pieOuterRadius.replace(/[\D]/,""),10))>99?99:o)<0?0:o;var l=i<n?i:n;if("none"!==e.options.labels.outer.format){var u=2*parseInt(e.options.labels.outer.pieDistance,10);l-u>0&&(l-=u)}a=Math.floor(l/100*o)/2}else a=parseInt(t.pieOuterRadius,10);/%/.test(t.pieInnerRadius)?(o=(o=(o=parseInt(t.pieInnerRadius.replace(/[\D]/,""),10))>99?99:o)<0?0:o,s=Math.floor(a/100*o)):s=parseInt(t.pieInnerRadius,10),e.innerRadius=s,e.outerRadius=a},getTotalPieSize:function(e){for(var t=0,r=0;r<e.length;r++)t+=e[r].value;return t},sortPieData:function(e){var t=e.options.data.content;switch(e.options.data.sortOrder){case"none":break;case"random":t=s.shuffleArray(t);break;case"value-asc":t.sort((function(e,t){return e.value<t.value?-1:1}));break;case"value-desc":t.sort((function(e,t){return e.value<t.value?1:-1}));break;case"label-asc":t.sort((function(e,t){return e.label.toLowerCase()>t.label.toLowerCase()?1:-1}));break;case"label-desc":t.sort((function(e,t){return e.label.toLowerCase()<t.label.toLowerCase()?1:-1}))}return t},getPieTranslateCenter:function(e){return"translate("+e.x+","+e.y+")"},calculatePieCenter:function(e){var t=e.options.misc.pieCenterOffset,r=e.textComponents.title.exists&&"pie-center"!==e.options.header.location,i=e.textComponents.subtitle.exists&&"pie-center"!==e.options.header.location,n=e.options.misc.canvasPadding.top;r&&i?n+=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h:r?n+=e.textComponents.title.h:i&&(n+=e.textComponents.subtitle.h);var s=0;e.textComponents.footer.exists&&(s=e.textComponents.footer.h+e.options.misc.canvasPadding.bottom);var o=(e.options.size.canvasWidth-e.options.misc.canvasPadding.left-e.options.misc.canvasPadding.right)/2+e.options.misc.canvasPadding.left,a=(e.options.size.canvasHeight-s-n)/2+n;o+=t.x,a+=t.y,e.pieCenter={x:o,y:a}},rotate:function(e,t,r,i,n){n=n*Math.PI/180;var s=Math.cos,o=Math.sin;return{x:(e-r)*s(n)-(t-i)*o(n)+r,y:(e-r)*o(n)+(t-i)*s(n)+i}},translate:function(e,t,r,i){var n=l.toRadians(i);return{x:e+r*Math.sin(n),y:t-r*Math.cos(n)}},pointIsInArc:function(e,t,r){var i=r.innerRadius()(t),n=r.outerRadius()(t),s=r.startAngle()(t),o=r.endAngle()(t),a=e.x*e.x+e.y*e.y,l=Math.atan2(e.x,-e.y);return l=l<0?l+2*Math.PI:l,i*i<=a&&a<=n*n&&s<=l&&l<=o}},c={add:function(e,t,r){var i=c.getIncludes(r),n=e.options.labels,s=e.svg.insert("g","."+e.cssPrefix+"labels-"+t).attr("class",e.cssPrefix+"labels-"+t),o=e.__labels[t]=s.selectAll("."+e.cssPrefix+"labelGroup-"+t).data(e.options.data.content).enter().append("g").attr("id",(function(r,i){return e.cssPrefix+"labelGroup"+i+"-"+t})).attr("data-index",(function(e,t){return t})).attr("class",e.cssPrefix+"labelGroup-"+t).style("opacity",0),a={section:t,sectionDisplayType:r};i.mainLabel&&o.append("text").attr("id",(function(r,i){return e.cssPrefix+"segmentMainLabel"+i+"-"+t})).attr("class",e.cssPrefix+"segmentMainLabel-"+t).text((function(e,t){var r=e.label;return n.formatter?(a.index=t,a.part="mainLabel",a.value=e.value,a.label=r,r=n.formatter(a)):n.truncation.enabled&&e.label.length>n.truncation.truncateLength&&(r=e.label.substring(0,n.truncation.truncateLength)+"..."),r})).style("font-size",n.mainLabel.fontSize).style("font-family",n.mainLabel.font).style("font-weight",n.mainLabel.fontWeight).style("fill",(function(t,r){return"segment"===n.mainLabel.color?e.options.colors[r]:n.mainLabel.color})),i.percentage&&o.append("text").attr("id",(function(r,i){return e.cssPrefix+"segmentPercentage"+i+"-"+t})).attr("class",e.cssPrefix+"segmentPercentage-"+t).text((function(e,t){var r=e.percentage;return n.formatter?(a.index=t,a.part="percentage",a.value=e.value,a.label=e.percentage,r=n.formatter(a)):r+="%",r})).style("font-size",n.percentage.fontSize).style("font-family",n.percentage.font).style("font-weight",n.percentage.fontWeight).style("fill",n.percentage.color),i.value&&o.append("text").attr("id",(function(r,i){return e.cssPrefix+"segmentValue"+i+"-"+t})).attr("class",e.cssPrefix+"segmentValue-"+t).text((function(e,t){return a.index=t,a.part="value",a.value=e.value,a.label=e.value,a.realLabel=e.label,n.formatter?n.formatter(a,e.value):e.value})).style("font-size",n.value.fontSize).style("font-family",n.value.font).style("font-weight",n.value.fontWeight).style("fill",n.value.color)},positionLabelElements:function(e,t,r){c["dimensions-"+t]=[],e.__labels[t].each((function(r,i){var n=o.select(this).selectAll("."+e.cssPrefix+"segmentMainLabel-"+t),s=o.select(this).selectAll("."+e.cssPrefix+"segmentPercentage-"+t),a=o.select(this).selectAll("."+e.cssPrefix+"segmentValue-"+t);c["dimensions-"+t].push({mainLabel:null!==n.node()?n.node().getBBox():null,percentage:null!==s.node()?s.node().getBBox():null,value:null!==a.node()?a.node().getBBox():null})}));var i=5,n=c["dimensions-"+t];switch(r){case"label-value1":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dx",(function(e,t){return n[t].mainLabel.width+i}));break;case"label-value2":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dy",(function(e,t){return n[t].mainLabel.height}));break;case"label-percentage1":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return n[t].mainLabel.width+i}));break;case"label-percentage2":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return n[t].mainLabel.width/2-n[t].percentage.width/2})).attr("dy",(function(e,t){return n[t].mainLabel.height}))}},computeLabelLinePositions:function(e){e.lineCoordGroups=[],e.__labels.outer.each((function(t,r){return c.computeLinePosition(e,r)}))},computeLinePosition:function(e,t){var r,i,n,s,o=f.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),a=l.rotate(e.pieCenter.x,e.pieCenter.y-e.outerRadius,e.pieCenter.x,e.pieCenter.y,o),u=e.outerLabelGroupData[t].h/5,c=6,d=Math.floor(o/90),p=4;switch(2===d&&180===o&&(d=1),d){case 0:r=e.outerLabelGroupData[t].x-c-(e.outerLabelGroupData[t].x-c-a.x)/2,i=e.outerLabelGroupData[t].y+(a.y-e.outerLabelGroupData[t].y)/p,n=e.outerLabelGroupData[t].x-c,s=e.outerLabelGroupData[t].y-u;break;case 1:r=a.x+(e.outerLabelGroupData[t].x-a.x)/p,i=a.y+(e.outerLabelGroupData[t].y-a.y)/p,n=e.outerLabelGroupData[t].x-c,s=e.outerLabelGroupData[t].y-u;break;case 2:var m=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c;r=a.x-(a.x-m)/p,i=a.y+(e.outerLabelGroupData[t].y-a.y)/p,n=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c,s=e.outerLabelGroupData[t].y-u;break;case 3:var g=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c;r=g+(a.x-g)/p,i=e.outerLabelGroupData[t].y+(a.y-e.outerLabelGroupData[t].y)/p,n=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c,s=e.outerLabelGroupData[t].y-u}"straight"===e.options.labels.lines.style?e.lineCoordGroups[t]=[{x:a.x,y:a.y},{x:n,y:s}]:e.lineCoordGroups[t]=[{x:a.x,y:a.y},{x:r,y:i},{x:n,y:s}]},addLabelLines:function(e){var t=e.svg.insert("g","."+e.cssPrefix+"pieChart").attr("class",e.cssPrefix+"lineGroups").style("opacity",1).selectAll("."+e.cssPrefix+"lineGroup").data(e.lineCoordGroups).enter().append("g").attr("class",e.cssPrefix+"lineGroup"),r=o.line().curve(o.curveBasis).x((function(e){return e.x})).y((function(e){return e.y}));t.append("path").attr("d",r).attr("stroke",(function(t,r){return"segment"===e.options.labels.lines.color?e.options.colors[r]:e.options.labels.lines.color})).attr("stroke-width",1).attr("fill","none").style("opacity",(function(t,r){var i=e.options.labels.outer.hideWhenLessThanPercentage;return null!==i&&t.percentage<i||""===e.options.data.content[r].label?0:1}))},positionLabelGroups:function(e,t){"none"!==e.options.labels[t].format&&e.__labels[t].style("opacity",(function(r,i){var n=e.options.labels[t].hideWhenLessThanPercentage;return null!==n&&r.percentage<n?0:1})).attr("transform",(function(r,i){var n,o;if("outer"===t)n=e.outerLabelGroupData[i].x,o=e.outerLabelGroupData[i].y;else{var u=a(!0,{},e.pieCenter);if(e.innerRadius>0){var c=f.getSegmentAngle(i,e.options.data.content,e.totalSize,{midpoint:!0}),d=l.translate(e.pieCenter.x,e.pieCenter.y,e.innerRadius,c);u.x=d.x,u.y=d.y}var p=s.getDimensions(e.cssPrefix+"labelGroup"+i+"-inner"),m=p.w/2,g=p.h/4;n=u.x+(e.lineCoordGroups[i][0].x-u.x)/1.8,o=u.y+(e.lineCoordGroups[i][0].y-u.y)/1.8,n-=m,o+=g}return"translate("+n+","+o+")"}))},getIncludes:function(e){var t=!1,r=!1,i=!1;switch(e){case"label":t=!0;break;case"value":r=!0;break;case"percentage":i=!0;break;case"label-value1":case"label-value2":t=!0,r=!0;break;case"label-percentage1":case"label-percentage2":t=!0,i=!0}return{mainLabel:t,value:r,percentage:i}},computeOuterLabelCoords:function(e){e.__labels.outer.each((function(t,r){return c.getIdealOuterLabelPositions(e,r)})),c.resolveOuterLabelCollisions(e)},resolveOuterLabelCollisions:function(e){if("none"!==e.options.labels.outer.format){var t=e.options.data.content.length;c.checkConflict(e,0,"clockwise",t),c.checkConflict(e,t-1,"anticlockwise",t)}},checkConflict:function(e,t,r,i){var n,o;if(!(i<=1)){var a=e.outerLabelGroupData[t].hs;if(("clockwise"!==r||"right"===a)&&("anticlockwise"!==r||"left"===a)){var l="clockwise"===r?t+1:t-1,u=e.outerLabelGroupData[t],d=e.outerLabelGroupData[l],f={labelHeights:e.outerLabelGroupData[0].h,center:e.pieCenter,lineLength:e.outerRadius+e.options.labels.outer.pieDistance,heightChange:e.outerLabelGroupData[0].h+1};if("clockwise"===r){for(n=0;n<=t;n++)if(o=e.outerLabelGroupData[n],!c.isLabelHidden(e,n)&&s.rectIntersect(o,d)){c.adjustLabelPos(e,l,u,f);break}}else for(n=i-1;n>=t;n--)if(o=e.outerLabelGroupData[n],!c.isLabelHidden(e,n)&&s.rectIntersect(o,d)){c.adjustLabelPos(e,l,u,f);break}c.checkConflict(e,l,r,i)}}},isLabelHidden:function(e,t){var r=e.options.labels.outer.hideWhenLessThanPercentage;return null!==r&&d.percentage<r||""===e.options.data.content[t].label},adjustLabelPos:function(e,t,r,i){var n,s,o,a;a=r.y+i.heightChange,s=i.center.y-a,n=Math.abs(i.lineLength)>Math.abs(s)?Math.sqrt(i.lineLength*i.lineLength-s*s):Math.sqrt(s*s-i.lineLength*i.lineLength),o="right"===r.hs?i.center.x+n:i.center.x-n-e.outerLabelGroupData[t].w,e.outerLabelGroupData[t].x=o,e.outerLabelGroupData[t].y=a},getIdealOuterLabelPositions:function(e,t){var r=e.svg.select("#"+e.cssPrefix+"labelGroup"+t+"-outer").node();if(r){var i=r.getBBox(),n=f.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),s=e.pieCenter.x,o=e.pieCenter.y-(e.outerRadius+e.options.labels.outer.pieDistance),a=l.rotate(s,o,e.pieCenter.x,e.pieCenter.y,n),u="right";n>180?(a.x-=i.width+8,u="left"):a.x+=8,e.outerLabelGroupData[t]={x:a.x,y:a.y,w:i.width,h:i.height,hs:u}}}},f={effectMap:{none:o.easeLinear,bounce:o.easeBounce,linear:o.easeLinear,sin:o.easeSin,elastic:o.easeElastic,back:o.easeBack,quad:o.easeQuad,circle:o.easeCircle,exp:o.easeExp},create:function(e){var t=e.pieCenter,r=e.options.colors,i=(e.options.effects.load,e.options.misc.colors.segmentStroke),n=e.svg.insert("g","#"+e.cssPrefix+"title").attr("transform",(function(){return l.getPieTranslateCenter(t)})).attr("class",e.cssPrefix+"pieChart"),s=o.arc().innerRadius(e.innerRadius).outerRadius(e.outerRadius).startAngle(0).endAngle((function(t){return t.value/e.totalSize*2*Math.PI}));n.selectAll("."+e.cssPrefix+"arc").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"arc").append("path").attr("id",(function(t,r){return e.cssPrefix+"segment"+r})).attr("fill",(function(t,i){var n=r[i];return e.options.misc.gradient.enabled&&(n="url(#"+e.cssPrefix+"grad"+i+")"),n})).style("stroke",i).style("stroke-width",1).attr("data-index",(function(e,t){return t})).attr("d",s),e.svg.selectAll("g."+e.cssPrefix+"arc").attr("transform",(function(t,r){var i=0;return r>0&&(i=f.getSegmentAngle(r-1,e.options.data.content,e.totalSize)),"rotate("+i+")"})),e.arc=s},addGradients:function(e){var t=e.svg.append("defs").selectAll("radialGradient").data(e.options.data.content).enter().append("radialGradient").attr("gradientUnits","userSpaceOnUse").attr("cx",0).attr("cy",0).attr("r","120%").attr("id",(function(t,r){return e.cssPrefix+"grad"+r}));t.append("stop").attr("offset","0%").style("stop-color",(function(t,r){return e.options.colors[r]})),t.append("stop").attr("offset",e.options.misc.gradient.percentage+"%").style("stop-color",e.options.misc.gradient.color)},addSegmentEventHandlers:function(e){var t=e.svg.selectAll("."+e.cssPrefix+"arc");(t=t.merge(e.__labels.inner.merge(e.__labels.outer))).on("click",(function(){var t,r=o.select(this);if(r.attr("class")===e.cssPrefix+"arc")t=r.select("path");else{var i=r.attr("data-index");t=o.select("#"+e.cssPrefix+"segment"+i)}var n=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onClickSegment,t,n),"none"!==e.options.effects.pullOutSegmentOnClick.effect&&(n?f.closeSegment(e,t.node()):f.openSegment(e,t.node()))})),t.on("mouseover",(function(){var t,r,i=o.select(this);if(i.attr("class")===e.cssPrefix+"arc"?t=i.select("path"):(r=i.attr("data-index"),t=o.select("#"+e.cssPrefix+"segment"+r)),e.options.effects.highlightSegmentOnMouseover){r=t.attr("data-index");var n=e.options.colors[r];t.style("fill",s.getColorShade(n,e.options.effects.highlightLuminosity))}e.options.tooltips.enabled&&(r=t.attr("data-index"),m.showTooltip(e,r));var a=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onMouseoverSegment,t,a)})),t.on("mousemove",(function(){m.moveTooltip(e)})),t.on("mouseout",(function(){var t,r,i=o.select(this);if(i.attr("class")===e.cssPrefix+"arc"?t=i.select("path"):(r=i.attr("data-index"),t=o.select("#"+e.cssPrefix+"segment"+r)),e.options.effects.highlightSegmentOnMouseover){r=t.attr("data-index");var n=e.options.colors[r];e.options.misc.gradient.enabled&&(n="url(#"+e.cssPrefix+"grad"+r+")"),t.style("fill",n)}e.options.tooltips.enabled&&(r=t.attr("data-index"),m.hideTooltip(e,r));var s=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onMouseoutSegment,t,s)}))},onSegmentEvent:function(e,t,r,i){if(s.isFunction(t)){var n=parseInt(r.attr("data-index"),10);t({segment:r.node(),index:n,expanded:i,data:e.options.data.content[n]})}},openSegment:function(e,t){e.isOpeningSegment||(e.isOpeningSegment=!0,f.maybeCloseOpenSegment(e),o.select(t).transition().ease(f.effectMap[e.options.effects.pullOutSegmentOnClick.effect]).duration(e.options.effects.pullOutSegmentOnClick.speed).attr("transform",(function(t,r){var i=e.arc.centroid(t),n=i[0],s=i[1],o=Math.sqrt(n*n+s*s),a=parseInt(e.options.effects.pullOutSegmentOnClick.size,10);return"translate("+n/o*a+","+s/o*a+")"})).on("end",(function(r,i){e.currentlyOpenSegment=t,e.isOpeningSegment=!1,o.select(t).attr("class",e.cssPrefix+"expanded")})))},maybeCloseOpenSegment:function(e){"undefined"!==typeof e&&e.svg.selectAll("."+e.cssPrefix+"expanded").size()>0&&f.closeSegment(e,e.svg.select("."+e.cssPrefix+"expanded").node())},closeSegment:function(e,t){o.select(t).transition().duration(400).attr("transform","translate(0,0)").on("end",(function(r,i){o.select(t).attr("class",""),e.currentlyOpenSegment=null}))},getCentroid:function(e){var t=e.getBBox();return{x:t.x+t.width/2,y:t.y+t.height/2}},getSegmentAngle:function(e,t,r,i){var n,s=a({compounded:!0,midpoint:!1},i),o=t[e].value;if(s.compounded){n=0;for(var l=0;l<=e;l++)n+=t[l].value}"undefined"===typeof n&&(n=o);var u=n/r*360;return s.midpoint&&(u-=o/r*360/2),u}},p={offscreenCoord:-1e4,addTitle:function(e){e.__title=e.svg.selectAll("."+e.cssPrefix+"title").data([e.options.header.title]).enter().append("text").text((function(e){return e.text})).attr("id",e.cssPrefix+"title").attr("class",e.cssPrefix+"title").attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("text-anchor",(function(){return"top-center"===e.options.header.location||"pie-center"===e.options.header.location?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionTitle:function(e){var t,r=e.textComponents,i=e.options.header.location,n=e.options.misc.canvasPadding,s=e.options.size.canvasWidth,o=e.options.header.titleSubtitlePadding;t="top-left"===i?n.left:(s-n.right)/2+n.left,t+=e.options.misc.pieCenterOffset.x;var a=n.top+r.title.h;"pie-center"===i&&(a=e.pieCenter.y,r.subtitle.exists?a=a-(r.title.h+o+r.subtitle.h)/2+r.title.h:a+=r.title.h/4),e.__title.attr("x",t).attr("y",a)},addSubtitle:function(e){var t=e.options.header.location;e.__subtitle=e.svg.selectAll("."+e.cssPrefix+"subtitle").data([e.options.header.subtitle]).enter().append("text").text((function(e){return e.text})).attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("id",e.cssPrefix+"subtitle").attr("class",e.cssPrefix+"subtitle").attr("text-anchor",(function(){return"top-center"===t||"pie-center"===t?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionSubtitle:function(e){var t,r=e.options.misc.canvasPadding,i=e.options.size.canvasWidth;t="top-left"===e.options.header.location?r.left:(i-r.right)/2+r.left,t+=e.options.misc.pieCenterOffset.x;var n=p.getHeaderHeight(e);e.__subtitle.attr("x",t).attr("y",n)},addFooter:function(e){e.__footer=e.svg.selectAll("."+e.cssPrefix+"footer").data([e.options.footer]).enter().append("text").text((function(e){return e.text})).attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("id",e.cssPrefix+"footer").attr("class",e.cssPrefix+"footer").attr("text-anchor",(function(){var t="left";return"bottom-center"===e.options.footer.location?t="middle":"bottom-right"===e.options.footer.location&&(t="left"),t})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionFooter:function(e){var t,r=e.options.footer.location,i=e.textComponents.footer.w,n=e.options.size.canvasWidth,s=e.options.size.canvasHeight,o=e.options.misc.canvasPadding;t="bottom-left"===r?o.left:"bottom-right"===r?n-i-o.right:n/2,e.__footer.attr("x",t).attr("y",s-o.bottom)},getHeaderHeight:function(e){var t;if(e.textComponents.title.exists){var r=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h;t="pie-center"===e.options.header.location?e.pieCenter.y-r/2+r:r+e.options.misc.canvasPadding.top}else if("pie-center"===e.options.header.location){var i=e.options.misc.canvasPadding.bottom+e.textComponents.footer.h;t=(e.options.size.canvasHeight-i)/2+e.options.misc.canvasPadding.top+e.textComponents.subtitle.h/2}else t=e.options.misc.canvasPadding.top+e.textComponents.subtitle.h;return t}},m={addTooltips:function(e){var t=e.svg.insert("g").attr("class",e.cssPrefix+"tooltips");t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"tooltip").attr("id",(function(t,r){return e.cssPrefix+"tooltip"+r})).style("opacity",0).append("rect").attr("rx",e.options.tooltips.styles.borderRadius).attr("ry",e.options.tooltips.styles.borderRadius).attr("x",-e.options.tooltips.styles.padding).attr("opacity",e.options.tooltips.styles.backgroundOpacity).style("fill",e.options.tooltips.styles.backgroundColor),t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).append("text").attr("fill",(function(t){return e.options.tooltips.styles.color})).style("font-size",(function(t){return e.options.tooltips.styles.fontSize})).style("font-weight",(function(t){return e.options.tooltips.styles.fontWeight})).style("font-family",(function(t){return e.options.tooltips.styles.font})).text((function(t,r){var i=e.options.tooltips.string;return"caption"===e.options.tooltips.type&&(i=t.caption),m.replacePlaceholders(e,i,r,{label:t.label,value:t.value,percentage:t.percentage})})),t.selectAll("."+e.cssPrefix+"tooltip rect").attr("width",(function(t,r){return s.getDimensions(e.cssPrefix+"tooltip"+r).w+2*e.options.tooltips.styles.padding})).attr("height",(function(t,r){return s.getDimensions(e.cssPrefix+"tooltip"+r).h+2*e.options.tooltips.styles.padding})).attr("y",(function(t,r){return-s.getDimensions(e.cssPrefix+"tooltip"+r).h/2+1}))},showTooltip:function(e,t){var r=e.options.tooltips.styles.fadeInSpeed;m.currentTooltip===t&&(r=1),m.currentTooltip=t,o.select("#"+e.cssPrefix+"tooltip"+t).transition().duration(r).style("opacity",(function(){return 1})),m.moveTooltip(e)},moveTooltip:function(e){o.selectAll("#"+e.cssPrefix+"tooltip"+m.currentTooltip).attr("transform",(function(t){var r=o.pointer(this.parentNode);return"translate("+(r[0]+e.options.tooltips.styles.padding+2)+","+(r[1]-2*e.options.tooltips.styles.padding-2)+")"}))},hideTooltip:function(e,t){o.select("#"+e.cssPrefix+"tooltip"+t).style("opacity",(function(){return 0})),o.select("#"+e.cssPrefix+"tooltip"+m.currentTooltip).attr("transform",(function(t,r){return"translate("+(e.options.size.canvasWidth+1e3)+","+(e.options.size.canvasHeight+1e3)+")"}))},replacePlaceholders:function(e,t,r,i){s.isFunction(e.options.tooltips.placeholderParser)&&e.options.tooltips.placeholderParser(r,i);var n=function(){return function(e){var t=arguments[1];return i.hasOwnProperty(t)?i[arguments[1]]:arguments[0]}};return t.replace(/\{(\w+)\}/g,n(i))}},g=function(s,l){if(this.element=s,"string"===typeof s){var u=s.replace(/^#/,"");this.element=document.getElementById(u)}var c={};a(!0,c,i,l),this.options=c,null!==this.options.misc.cssPrefix?this.cssPrefix=this.options.misc.cssPrefix:(this.cssPrefix="p"+r+"_",r++),n.initialCheck(this)&&(o.select(this.element).attr(e,t),b.call(this),h.call(this))};g.prototype.recreate=function(){n.initialCheck(this)&&(b.call(this),h.call(this))},g.prototype.redraw=function(){this.element.innerHTML="",h.call(this)},g.prototype.destroy=function(){this.element.innerHTML="",o.select(this.element).attr(e,null)},g.prototype.getOpenSegment=function(){var e=this.currentlyOpenSegment;if(null!==e&&"undefined"!==typeof e){var t=parseInt(o.select(e).attr("data-index"),10);return{element:e,index:t,data:this.options.data.content[t]}}return null},g.prototype.openSegment=function(e){(e=parseInt(e,10))<0||e>this.options.data.content.length-1||f.openSegment(this,o.select("#"+this.cssPrefix+"segment"+e).node())},g.prototype.closeSegment=function(){f.maybeCloseOpenSegment(this)},g.prototype.updateProp=function(e,t){switch(e){case"header.title.text":var r=s.processObj(this.options,e);s.processObj(this.options,e,t),o.select("#"+this.cssPrefix+"title").html(t),(""===r&&""!==t||""!==r&&""===t)&&this.redraw();break;case"header.subtitle.text":var i=s.processObj(this.options,e);s.processObj(this.options,e,t),o.select("#"+this.cssPrefix+"subtitle").html(t),(""===i&&""!==t||""!==i&&""===t)&&this.redraw();break;case"callbacks.onload":case"callbacks.onMouseoverSegment":case"callbacks.onMouseoutSegment":case"callbacks.onClickSegment":case"effects.pullOutSegmentOnClick.effect":case"effects.pullOutSegmentOnClick.speed":case"effects.pullOutSegmentOnClick.size":case"effects.highlightSegmentOnMouseover":case"effects.highlightLuminosity":s.processObj(this.options,e,t);break;default:s.processObj(this.options,e,t),this.destroy(),this.recreate()}};var b=function(){this.options.data.content=l.sortPieData(this),this.options.data.smallSegmentGrouping.enabled&&(this.options.data.content=s.applySmallSegmentGrouping(this.options.data.content,this.options.data.smallSegmentGrouping)),this.options.colors=s.initSegmentColors(this),this.totalSize=l.getTotalPieSize(this.options.data.content);for(var e=this.options.labels.percentage.decimalPlaces,t=0;t<this.options.data.content.length;t++)this.options.data.content[t].percentage=y(this.options.data.content[t].value,this.totalSize,e);for(var r=0,i=0;i<this.options.data.content.length;i++)i===this.options.data.content.length-1&&(this.options.data.content[i].percentage=(100-r).toFixed(e)),r+=parseFloat(this.options.data.content[i].percentage)},h=function(){this.svg=s.addSVGSpace(this),this.textComponents={headerHeight:0,title:{exists:""!==this.options.header.title.text,h:0,w:0},subtitle:{exists:""!==this.options.header.subtitle.text,h:0,w:0},footer:{exists:""!==this.options.footer.text,h:0,w:0}},this.outerLabelGroupData=[],p.addTitle(this),p.addSubtitle(this),p.addFooter(this);var e=this;p.positionFooter(e);var t=s.getDimensions(e.__footer.node());if(e.textComponents.footer.h=t.h,e.textComponents.footer.w=t.w,e.textComponents.title.exists){var r=s.getDimensions(e.__title.node());e.textComponents.title.h=r.h,e.textComponents.title.w=r.w}if(e.textComponents.subtitle.exists){var i=s.getDimensions(e.__subtitle.node());e.textComponents.subtitle.h=i.h,e.textComponents.subtitle.w=i.w}if(e.textComponents.title.exists||e.textComponents.subtitle.exists){var n=0;e.textComponents.title.exists&&(n+=e.textComponents.title.h,e.textComponents.subtitle.exists&&(n+=e.options.header.titleSubtitlePadding)),e.textComponents.subtitle.exists&&(n+=e.textComponents.subtitle.h),e.textComponents.headerHeight=n}if(l.computePieRadius(e),l.calculatePieCenter(e),p.positionTitle(e),p.positionSubtitle(e),e.options.misc.gradient.enabled&&f.addGradients(e),f.create(e),e.__labels={},c.add(e,"inner",e.options.labels.inner.format),c.add(e,"outer",e.options.labels.outer.format),c.positionLabelElements(e,"inner",e.options.labels.inner.format),c.positionLabelElements(e,"outer",e.options.labels.outer.format),c.computeOuterLabelCoords(e),c.positionLabelGroups(e,"outer"),c.computeLabelLinePositions(e),e.options.labels.lines.enabled&&"none"!==e.options.labels.outer.format&&c.addLabelLines(e),c.positionLabelGroups(e,"inner"),s.isFunction(e.options.callbacks.onload))try{e.options.callbacks.onload()}catch(o){}e.options.tooltips.enabled&&m.addTooltips(e),f.addSegmentEventHandlers(e)},y=function(e,t,r){var i=e/t;return r<=0?Math.round(100*i):(100*i).toFixed(r)};return g})?i.apply(t,n):i)||(e.exports=s)},34297:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={hover:"themeCrosshair",click:"themeNetdata",default:"themeCrosshair"},i={hover:[5,5],click:[2,2],default:[5,5]};t.default=function(e,t,n){void 0===n&&(n="hover");var s=e.getDygraph(),o=s.getArea().h,a=s.canvas_ctx_,l=e.chart.getPayload().data[t];if(Array.isArray(l)){var u=s.toDomXCoord(l[0]);s.setSelection(t),a.save(),a.beginPath(),a.setLineDash(i[n]),a.strokeStyle=e.chart.getThemeAttribute(r[n]),a.moveTo(u,0),a.lineTo(u,o),a.stroke(),a.closePath(),a.restore()}}},99447:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t,r,i,n,s=function(t,r){var i=function(t,r){if(!Array.isArray(r))return{};var i=t.offsetY;return i>e.getDygraph().getArea().h-10?{seriesName:"ANNOTATIONS"}:i<15?{seriesName:"ANOMALY_RATE"}:e.chart.getAttribute("chartType")?e.getDygraph().findStackedPoint(t.offsetX,t.offsetY):e.getDygraph().findClosestPoint(t.offsetX,t.offsetY)}(t,r),n=i.seriesName;if(n){var s=e.getDygraph().getPropertiesForSeries(n);if(s){var o=e.chart.getPayloadDimensionIds();if(null!=o&&o.length)return o[s.column-1]||s.name}}},o=function(o,a,l){if(n!==a){i=l,n=a,t=o.offsetX,r=o.offsetY;var u=s(o,l);u&&(e.sdk.trigger("highlightHover",e.chart,a,u),e.chart.trigger("highlightHover",a,u))}},a=function(o,a,l){if(n!==a){i=l,n=a,t=o.offsetX,r=o.offsetY;var u=s(o,l);e.sdk.trigger("highlightClick",e.chart,a,u),e.chart.trigger("highlightClick",a,u)}},l=function(o){if(!(Math.abs(o.offsetX-t)<5&&Math.abs(o.offsetY-r)<5)){t=o.offsetX,r=o.offsetY;var a=s(o,i);a&&(e.sdk.trigger("highlightHover",e.chart,n,a),e.chart.trigger("highlightHover",n,a))}},u=function(){e.sdk.trigger("highlightBlur",e.chart),e.chart.trigger("highlightBlur")},c=function(){r=null,i=null,n=null,e.off("highlightCallback",o),e.off("mousemove",l),e.off("mouseout",u),e.off("click",a)};return{toggle:function(t){return t?e.on("highlightCallback",o).on("mousemove",l).on("mouseout",u).on("click",a):c()},destroy:c}}},80509:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=m(r(62523)),n=m(r(68652)),s=m(r(85872)),o=m(r(58370)),a=r(22753),l=r(97005),u=r(21945),c=m(r(6076)),d=m(r(99447)),f=m(r(19243)),p=m(r(34297));function m(e){return e&&e.__esModule?e:{default:e}}function g(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return b(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return b(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function v(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e,t){var r,m,b,h=(0,n.default)(e,t),v=null,_=[],O=null,A=null,w=null,P=null,k={line:(0,l.makeLinePlotter)(h),stackedBar:(0,l.makeStackedBarPlotter)(h),multiBar:(0,l.makeMultiColumnBarPlotter)(h),heatmap:(0,l.makeHeatmapPlotter)(h),default:null},j={yRangePad:30,strokeWidth:.7,fillAlpha:.2,fillGraph:!1,stackedGraph:!1,forceIncludeZero:!1,errorBars:!1,makeYAxisLabelFormatter:function(){return function(e,r,i,n){var s=n.axes_[0].extremeRange,o=n.axes_[0].valueRange||[null,null],a=o[0],l=o[1];return a=null===a?s[0]:a,l=null===l?s[1]:l,a===m&&l===b||(m=a,b=l,h.sdk.trigger("yAxisChange",t,a,l)),t.getConvertedValue(e)}},makeYTicker:function(){return u.numericTicker},highlightCircleSize:4},x={line:y(y({},j),{},{strokeWidth:1.5,fillAlpha:.2}),stacked:y(y({},j),{},{strokeWidth:.1,fillAlpha:.8,fillGraph:!0,stackedGraph:!0,forceIncludeZero:!0}),area:y(y({},j),{},{fillGraph:!0,forceIncludeZero:!0}),stackedBar:y(y({},j),{},{stackedGraph:!0,forceIncludeZero:!0}),heatmap:y(y({},j),{},{makeYAxisLabelFormatter:function(){return function(e){var r=t.getAttribute("min"),i=t.getAttribute("max");r===m&&i===b||(m=r,b=i,h.sdk.trigger("yAxisChange",t,r,i));var n=parseFloat(parseFloat(e).toFixed(5));return isNaN(n)?e:n}},makeYTicker:function(e){return function(t,r,i,n,s){return(0,u.heatmapTicker)(t,r,i,n,s,e)}},highlightCircleSize:0}),default:y({},j)},C=function(){var e=t.getPayload().labels,r=t.getAttributes(),n=r.chartType,s=r.includeZero,o=r.enabledXAxis,l=r.enabledYAxis,u=r.yAxisLabelWidth,c=k[n]||k.default,d=x[n]||x.default,f=d.strokeWidth,p=d.fillAlpha,m=d.fillGraph,g=d.stackedGraph,b=d.forceIncludeZero,h=d.makeYAxisLabelFormatter,v=d.errorBars,_=d.makeYTicker,O=d.highlightCircleSize,A=d.yRangePad,w=h(e),P=_?_(t.getVisibleDimensionIds()):null,j=t.getAttributes().selectedLegendDimensions,C=t.getPayloadDimensionIds();return{yRangePad:A,stackedGraph:g,fillGraph:m,fillAlpha:p,highlightCircleSize:O,strokeWidth:f,includeZero:s||b&&C.length>1&&j.length>1,stackedGraphNaNFill:"none",plotter:c,errorBars:v,axes:{x:o?{ticker:i.default.dateTicker,axisLabelFormatter:t.formatXAxis,axisLabelWidth:60}:{drawAxis:!1},y:l?y(y(y({},P&&{ticker:P}),{},{axisLabelFormatter:w},u&&{axisLabelWidth:u}),{},{pixelsPerLabel:15}):{drawAxis:!1}},ylabel:t.getAttribute("hasYlabel")&&t.getUnitSign({long:!0,withoutConversion:(0,a.isHeatmap)(n)})}},S=function(){var e=h.chart.getThemeAttribute("themeGridColor");return{axisLineColor:e,gridLineColor:e}},M=function(){var e=t.getPayloadDimensionIds(),r=t.getPayload().labels;if(null==e||!e.length||null==r||!r.length)return{visibility:!1};var i=r.length-e.length,n=Array(i>0?i:0).fill(!0),s=t.getAttribute("selectedLegendDimensions");return{visibility:[].concat(g(e.map(s.length?t.isDimensionVisible:function(){return!0})),g(n))}},D=function(){var e=t.getAttributes(),r=e.outOfLimits,i=e.getValueRange,n=e.staticValueRange,s=e.chartType,o=t.getPayload(),l=o.data,u=o.labels,c=t.getDateWindow(),d=r||0===l.length;return{file:d?[[0]]:l,labels:d?["X"]:u,dateWindow:c,valueRange:n||((0,a.isHeatmap)(s)?[0,t.getVisibleDimensionIds().length]:i(t,{dygraph:!0}))}},B=function(){return t.isSparkline()?{drawGrid:!1,drawAxis:!1,ylabel:void 0,yLabelWidth:0,highlightCircleSize:3,fillAlpha:1,strokeWidth:0}:null},E=function(){var e=t.getPayloadDimensionIds();return e.length?{colors:e.map(t.selectDimensionColor)}:{}},T=y(y({},h),{},{getChartWidth:function(){return v?v.getArea().w:h.getChartWidth()},getChartHeight:function(){return v?v.getArea().h:100},getPreceded:function(){if(!v)return-1;if(1e3*t.getFirstEntry()<v.xAxisRange()[0])return-1;var e=v.xAxisExtremes()[0];return v.toDomXCoord(e)},mount:function(e){if(!v){h.mount(e);var n=t.getAttribute("theme");e.classList.add(n);var u=t.getAttributes(),c=t.getPayload(),d=c.data,f=c.labels;r=(0,s.default)();var m=u.outOfLimits||0===d.length;v=new i.default(e,m?[[0]]:d,y(y(y(y(y(y({legend:"never",showLabelsOnHighlight:!1,labels:m?["X"]:f,dateWindow:t.getDateWindow(),clickCallback:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["click"].concat(t))})),highlightCallback:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["highlightCallback"].concat(t))})),unhighlightCallback:r.add((function(){return h.trigger("unhighlightCallback")})),drawCallback:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["drawCallback"].concat(t))},underlayCallback:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["underlayCallback"].concat(t))})),interactionModel:{willDestroyContextMyself:!0,mouseout:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["mouseout"].concat(t))})),mousedown:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["mousedown"].concat(t))})),mousemove:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["mousemove"].concat(t))})),mouseover:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["mouseover"].concat(t))})),mouseup:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["mouseup"].concat(t))})),touchstart:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["touchstart"].concat(t))})),touchmove:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["touchmove"].concat(t))})),touchend:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["touchend"].concat(t))})),dblclick:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["dblclick"].concat(t))})),wheel:r.add((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.trigger.apply(h,["wheel"].concat(t))}))},series:{ANOMALY_RATE:{plotter:(0,l.makeAnomalyPlotter)(h),drawPoints:!1,pointSize:0,highlightCircleSize:0},ANNOTATIONS:{plotter:(0,l.makeAnnotationsPlotter)(h),drawPoints:!1,pointSize:0,highlightCircleSize:0}},strokeBorderWidth:0,axisLabelFontSize:u.axisLabelFontSize,axisLineWidth:1,gridLineWidth:1,maxNumberWidth:8,highlightSeriesBackgroundAlpha:1,drawGapEdgePoints:!0,ylabel:t.getAttribute("hasYlabel")&&t.getUnitSign({long:!0}),digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits"),yLabelWidth:12,yRangePad:30,labelsSeparateLines:!0,rightGap:-5},C()),S()),M()),D()),B()),E())),w=(0,o.default)(e,(function(){return h.trigger("resize")}),(function(){return h.trigger("resize")})),A.toggle(u.enabledHover),O.toggle(u.enabledNavigation,u.navigation),_=[h.on("resize",r.add((function(){return v.resize()}))),t.onAttributeChange("hoverX",r.add((function(e){var r=Array.isArray(e)?t.getClosestRow(e[0]):-1;if(-1===r)return v.setSelection();(0,p.default)(T,r)}))),t.onAttributeChange("clickX",r.add((function(e){var r=Array.isArray(e)?t.getClosestRow(e[0]):-1;if(-1===r)return v.setSelection();(0,p.default)(T,r,"click")}))),t.onAttributeChange("enabledHover",A.toggle),t.onAttributeChange("enabledNavigation",O.toggle),t.onAttributeChange("navigation",O.set),t.onAttributeChange("overlays",P.toggle),t.onAttributeChange("theme",(function(t,r){e.classList.remove(r),e.classList.add(t),v.updateOptions(S())})),t.onAttributeChange("chartType",(function(){t.getAttribute("processing")||v.updateOptions(C())})),t.onAttributeChange("selectedLegendDimensions",(function(){t.getAttribute("processing")||v.updateOptions(y(y(y(y({},M()),E()),C()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")}))})),t.onAttributeChange("unitsConversion",(function(){return v.updateOptions(y(y({},C()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")}))})),t.onAttributeChange("staticValueRange",(function(e){var r=e[0],i=e[1];v.updateOptions({valueRange:(0,a.isHeatmap)(u.chartType)?[Math.ceil(r),Math.ceil(i)]:u.getValueRange(t,{dygraph:!0})})})),t.onAttributeChange("timezone",(function(){return v.updateOptions({})}))].filter(Boolean),P.toggle(),h.render()}},unmount:function(){v&&(w(),r&&r.clear(),_.forEach((function(e){return e()})),_=[],h.unmount(),A.destroy(),O.destroy(),v.destroy(),v=null,P.destroy())},getDygraph:function(){return v},getXAxisRange:function(){var e;return null==(e=v)?void 0:e.xAxisRange()},render:function(){if(v){var e=t.getAttributes(),r=e.highlighting,i=e.panning,n=e.processing;r||i||n||(h.render(),v.updateOptions(y(y(y(y(y({},D()),M()),E()),C()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")},B())),h.trigger("rendered"))}}});return O=(0,c.default)(T),A=(0,d.default)(T),P=(0,f.default)(T),T}},79513:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=r(81431),s=(i=r(10238))&&i.__esModule?i:{default:i};t.default=function(e){var t=function(t,r){return void 0===r&&(r=e.chart.getAttribute("navigation")),e.chart.updateAttributes({navigation:t,prevNavigation:r})},r=(0,n.debounce)(500,(function(e,t,r){e.moveX(t,r)})),i=e.on("mousedown",(function(e){e.shiftKey&&e.altKey?t("selectVertical"):e.altKey?t("highlight"):e.shiftKey&&t("select")})).on("mouseup",(function(){setTimeout((function(){var r=e.chart.getAttribute("prevNavigation");r&&t(r,null)}))})).on("wheel",(function(t,i){if(t.shiftKey||t.altKey){t.preventDefault(),t.stopPropagation();var n="number"!==typeof t.wheelDelta||Number.isNaN(t.wheelDelta)?-1.2*t.deltaY:t.wheelDelta/40,o=(t.detail?-1*t.detail:n)/50,a=t.offsetX||t.layerX-t.target.offsetLeft,l=function(e,t){var r=e.toDomCoords(e.xAxisRange()[0],null)[0],i=t-r,n=e.toDomCoords(e.xAxisRange()[1],null)[0]-r;return 0===n?0:i/n}(i,a);!function(t,n,o){o=o||.5;var a=t.xAxisRange(),l=a[0],u=a[1],c=(u-l)*n,d=c*o,f=c*(1-o),p=Math.round((l+d)/1e3),m=Math.round((u-f)/1e3),g=(0,s.default)({after:p,before:m}),b=g.fixedAfter,h=g.fixedBefore;b===l&&h===u||(r(e.chart,b,h),i.updateOptions({dateWindow:[1e3*b,1e3*h]}))}(i,o,l)}})).on("dblclick",e.chart.resetNavigation);return function(){return i()}}},6076:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=a(r(79513)),n=a(r(51434)),s=a(r(44047)),o=a(r(31412));function a(e){return e&&e.__esModule?e:{default:e}}var l={highlight:n.default,select:n.default,selectVertical:o.default,pan:s.default};t.default=function(e){var t,r,n=function(){null==t||t(),t=null},s=function(){n(),null==r||r(),r=null},o=function(i){var s;r&&(n(),t=null==(s=l[i])?void 0:s.call(l,e))};return{toggle:function(t,n){if(!t)return s();r=(0,i.default)(e),n&&o(n)},set:o,destroy:s}}},44047:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(62523))&&i.__esModule?i:{default:i};t.default=function(e){var t=function(t,s,o){e.sdk.trigger("panStart",e.chart),o.initializeMouseDown(t,s,o),n.default.startPan(t,s,o),o.is2DPan=!1,e.on("mousemove",r).on("mouseout",i).on("mouseup",i).on("touchmove",r).on("touchend",i)},r=function(e,t,r){r.isPanning&&n.default.movePan(e,t,r)},i=function t(i,s,o){o.isPanning&&(n.default.endPan(i,s,o),o.destroy(),e.sdk.trigger("panEnd",e.chart,s.dateWindow_)),e.off("mousemove",r),e.off("mouseup",t),e.off("mouseout",t),e.off("touchmove",r),e.off("touchend",t)};return e.on("mousedown",t).on("touchstart",t)}},51434:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(62523))&&i.__esModule?i:{default:i},s=r(43015);t.default=function(e){var t,r,i=function(e,t,i){if(i.isZooming){var n=t.canvas_ctx_,o=t.canvas_,a=t.getArea(),l=o.getBoundingClientRect(),u=l.left+a.x,c=(l.top,a.y,a.w);a.h;if(!(e.pageX<u||e.pageX>u+c)){i.zoomMoved=!0,i.dragEndX=(0,s.dragGetX_)(e,i);var d=i.dragStartX,f=i.dragEndX;n.clearRect(0,0,o.width,o.height),n.fillStyle="rgba(128,128,128,0.3)",n.fillRect(Math.min(d,f),a.y,Math.abs(f-d),a.h),i.prevEndX=f,r=f}}},o=function n(s,o,a){if(a.isZooming){o.clearZoomRect_(),a.destroy();var l=function(e){return-1===r||Math.abs(t-r)<5?null:[Math.round(e.toDataXCoord(t)/1e3),Math.round(e.toDataXCoord(r)/1e3)].sort((function(e,t){return e-t}))}(o);e.sdk.trigger("highlightEnd",e.chart,l),e.chart.trigger("highlightEnd",l)}e.off("mousemove",i),e.off("mouseup",n)};return e.on("mousedown",(function(s,a,l){e.sdk.trigger("highlightStart",e.chart),l.initializeMouseDown(s,a,l),n.default.startZoom(s,a,l),t=l.dragStartX,r=-1,e.on("mousemove",i).on("mouseup",o)}))}},31412:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(62523))&&i.__esModule?i:{default:i},s=r(43015);t.default=function(e){var t,r,i=function(e,t,i){if(i.isZooming){var n=t.canvas_ctx_,o=t.canvas_,a=o.getBoundingClientRect();if(!(e.pageY<a.top||e.pageY>a.bottom)){i.zoomMoved=!0,i.dragEndY=(0,s.dragGetY_)(e,i);var l=i.dragStartY,u=i.dragEndY,c=t.getArea();n.clearRect(0,0,o.width,o.height),n.fillStyle="rgba(128,128,128,0.3)",n.fillRect(c.x,Math.min(l,u),c.w,Math.abs(u-l)),i.prevEndY=u,r=u}}},o=function n(s,o,a){if(a.isZooming){o.clearZoomRect_(),a.destroy();var l=-1===r||Math.abs(t-r)<5?null:[o.toDataYCoord(t),o.toDataYCoord(r)].sort((function(e,t){return e-t}));e.sdk.trigger("highlightVerticalEnd",e.chart,l)}e.off("mousemove",i),e.off("mouseup",n)};return e.on("mousedown",(function(s,a,l){e.sdk.trigger("highlightVerticalStart",e.chart),l.initializeMouseDown(s,a,l),n.default.startZoom(s,a,l),t=l.dragStartY,r=-1,e.on("mousemove",i).on("mouseup",o)}))}},72222:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48090),n={warning:"#F9A825",critical:"#FF4136",clear:"#00AB44"};t.default=function(e,t){var r=e.chart.getAttribute("overlays")[t],s=r.when,o=r.status,a=e.getDygraph(),l=a.getArea().h,u=a.hidden_ctx_,c=(0,i.getArea)(a,[s,s]);if(!c)return(0,i.trigger)(e,t);var d=c.from;(0,i.trigger)(e,t,c),u.save(),u.beginPath(),u.moveTo(d-1,0),u.lineTo(d-1,l),u.globalAlpha=1,u.lineWidth=2,u.setLineDash([4,4]),u.strokeStyle=n[o],u.stroke(),u.closePath(),u.restore()}},69789:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48090),n={warning:"#FFF8E1",critical:"#FFEBEF",clear:"#E5F5E8"},s={warning:"#FFC300",critical:"#F59B9B",clear:"#68C47D"},o={warning:"#F9A825",critical:"#FF4136",clear:"#00AB44"};t.default=function(e,t){var r=e.chart.getAttribute("overlays")[t],a=r.whenTriggered,l=r.whenLast,u=void 0===l?Math.floor((new Date).getTime()/1e3):l,c=r.status,d=e.getDygraph(),f=d.getArea().h,p=d.hidden_ctx_,m=(0,i.getArea)(d,[a,u]);if(!m)return(0,i.trigger)(e,t);var g=m.from,b=m.width,h=m.to;(0,i.trigger)(e,t,m),p.save(),p.beginPath(),p.rect(g,0,b,f-1),p.fillStyle=s[c],p.globalAlpha=.1,p.fill();p.beginPath(),p.moveTo(g,0),p.lineTo(g,f),p.globalAlpha=1,p.lineWidth=2,p.setLineDash([4,4]),p.strokeStyle=n[c],p.stroke(),p.beginPath(),p.moveTo(h-2,0),p.lineTo(h-2,f),p.strokeStyle=o[c],p.stroke(),p.closePath(),p.restore()}},48090:(e,t)=>{t.__esModule=!0,t.trigger=t.getArea=void 0;t.getArea=function(e,t){var r=e.xAxisRange(),i=r[0],n=r[1],s=1e3*t[0],o=1e3*t[1];if(o<i||s>n)return null;var a=Math.max(i,s),l=Math.min(n,o),u=e.toDomXCoord(a),c=e.toDomXCoord(l);return{from:u,to:c,width:c-u}},t.trigger=function(e,t,r){return requestAnimationFrame((function(){return e.trigger("overlayedAreaChanged:"+t,r)}))}},26559:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48090);t.default=function(e,t){var r=e.chart.getAttribute("overlays")[t].range;if(r){var n=e.getDygraph(),s=n.getArea().h,o=n.hidden_ctx_,a=(0,i.getArea)(n,r);if(!a)return(0,i.trigger)(e,t);var l=a.from,u=a.width;(0,i.trigger)(e,t,a),o.save(),o.beginPath(),o.rect(l,0,u,s-1),o.fillStyle="rgba(207, 213, 218, 0.12)",o.fill(),o.beginPath(),o.rect(l,0,0,s-1),o.rect(l+u,0,0,s-1),o.fill(),o.setLineDash([2,7]),o.lineWidth=1,o.strokeStyle="#CFD5DA",o.stroke(),o.stroke(),o.closePath(),o.restore()}}},19243:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(93226))&&i.__esModule?i:{default:i};t.default=function(e){var t=null,r=function(t){var r=e.chart.getAttribute("overlays")[t].type,i=n.default[r];i&&i(e,t)},i=function(){var t=e.chart.getAttribute("overlays");Object.keys(t).forEach(r)},s=function(){var t=e.getDygraph();t&&t.renderGraph_(!1)},o=function(){t&&(s(),t(),t=null)};return{toggle:function(){var r=e.chart.getAttribute("overlays");if(!Object.keys(r).length)return o();t?s():t=e.on("underlayCallback",i)},destroy:o}}},42980:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48090);t.default=function(e,t){var r=e.getDygraph(),n=r.xAxisRange()[1],s=n/1e3,o=e.chart.getFirstEntry(),a=e.chart.getAttributes(),l=a.outOfLimits,u=a.error;if(l||o&&!(o>s)||u){var c=l||u?[n,n]:[o,o],d=(0,i.getArea)(r,c);(0,i.trigger)(e,t,d)}}},93226:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=a(r(72222)),n=a(r(69789)),s=a(r(26559)),o=a(r(42980));function a(e){return e&&e.__esModule?e:{default:e}}t.default={alarm:i.default,alarmRange:n.default,highlight:s.default,proceeded:o.default}},78051:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(96380);function n(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}t.default=function(e){return function(t){if(e&&"ANNOTATIONS"===t.setName){var r=t.drawingContext,s=t.points;if(!s.length||!s[1])return;var o=s[1].canvasx-s[0].canvasx+1,a=Math.floor(o),l=e.chart.getPayloadDimensionIds(),u=e.chart.getAttribute("selectedLegendDimensions"),c=l.reduce((function(t,r,i){return u.length?e.chart.isDimensionVisible(r)&&t.add(i):t.add(i),t}),new Set),d=e.chart.getPayload().all;s.forEach((function(s){var o=s.canvasx,l=e.chart.getClosestRow(s.xval),u=n(d[l].slice(1).reduce((function(e,t,r){var n=t.pa;return c.has(r)&&n&&i.parts.forEach((function(t){return(0,i.check)(n,i.enums[t])&&e.add(t)})),e}),new Set)).sort((function(e,t){return i.priorities[e]<i.priorities[t]})),f=t.dygraph.getArea().h;r.strokeStyle=r.fillStyle="transparent",r.fillRect(o-a/2,f-4,a,f),r.strokeRect(o-a/2,f-4,a,f),u.forEach((function(e){r.strokeStyle=r.fillStyle=i.colors[e]||"transparent",r.fillRect(o-a/2,f-4,a,f),r.strokeRect(o-a/2,f-4,a,f)}))}))}}}},54296:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(16199);t.default=function(e){return function(t){if(e&&"ANOMALY_RATE"===t.setName){var r=t.drawingContext,n=t.points;if(!n.length||!n[1])return;var s=n[1].canvasx-n[0].canvasx+1,o=Math.floor(s),a=(0,i.scaleLinear)().domain([0,100]).range(["transparent",e.chart.getThemeAttribute("themeAnomalyScaleColor")]),l=e.chart.getPayloadDimensionIds(),u=e.chart.getAttribute("selectedLegendDimensions"),c=l.reduce((function(t,r,i){return u.length?e.chart.isDimensionVisible(r)&&t.add(i):t.add(i),t}),new Set),d=e.chart.getPayload().all;n.forEach((function(t){var i=t.canvasx,n=e.chart.getClosestRow(t.xval),s=d[n].slice(1).reduce((function(e,t,r){var i=t.arp;return c.has(r)?e>(i||0)?e:i||0:e}),0);r.strokeStyle=r.fillStyle=a(s),r.fillRect(i-o/2,0,o,15),r.strokeRect(i-o/2,0,o,15)}))}}}},19281:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(22753);t.default=function(e){return function(t){if(e&&0===t.seriesIndex){var r=e.chart.getVisibleDimensionIds(),n=t.dygraph,s=t.drawingContext,o=t.allSeriesPoints,a=n.layout_.setNames,l=1/0;o.forEach((function(e){var t=e[1].canvasx-e[0].canvasx;t<l&&(l=t)}));var u=Math.floor(l),c=(0,i.makeGetColor)(e.chart);a.forEach((function(t,i){var a=e.chart.getDimensionIndex(t);if(-1!==a){var l=Math.abs(0===a?n.toDomYCoord(a+1)-n.toDomYCoord(a):n.toDomYCoord(a)-n.toDomYCoord(a-1));o[i].forEach((function(t,i){var o=e.chart.getDimensionValue(r[a],i)||0;s.fillStyle=c(o),s.fillRect(t.canvasx-u/2,n.toDomYCoord(a)-l/2,u,l),s.strokeStyle="transparent",s.strokeRect(t.canvasx-u/2,n.toDomYCoord(a)-l/2,u,l)}))}}))}}}},32360:(e,t,r)=>{t.__esModule=!0,t.darkenColor=void 0;var i,n=(i=r(62523))&&i.__esModule?i:{default:i};t.darkenColor=function(e){var t=n.default.toRGB_(e);return t.r=Math.floor((255+t.r)/2),t.g=Math.floor((255+t.g)/2),t.b=Math.floor((255+t.b)/2),"rgb("+t.r+","+t.g+","+t.b+")"}},97005:(e,t,r)=>{t.__esModule=!0,t.makeStackedBarPlotter=t.makeMultiColumnBarPlotter=t.makeLinePlotter=t.makeHeatmapPlotter=t.makeAnomalyPlotter=t.makeAnnotationsPlotter=void 0;var i=u(r(5433));t.makeLinePlotter=i.default;var n=u(r(21471));t.makeStackedBarPlotter=n.default;var s=u(r(79645));t.makeMultiColumnBarPlotter=s.default;var o=u(r(19281));t.makeHeatmapPlotter=o.default;var a=u(r(54296));t.makeAnomalyPlotter=a.default;var l=u(r(78051));function u(e){return e&&e.__esModule?e:{default:e}}t.makeAnnotationsPlotter=l.default},5433:(e,t,r)=>{t.__esModule=!0,t.default=void 0,r(63303);t.default=function(){return function(e){window.smoothPlotter(e)}}},79645:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(32360);t.default=function(){return function(e){if(0===e.seriesIndex){var t=e.dygraph,r=e.drawingContext,n=e.allSeriesPoints,s=t.toDomYCoord(0),o=1/0;n.forEach((function(e){var t=e[1].canvasx-e[0].canvasx;t<o&&(o=t)}));var a=Math.floor(2/3*o),l=t.getColors(),u=t.getColors().map((function(e){return(0,i.darkenColor)(e)}));n.forEach((function(e,t){r.fillStyle=l[t],r.strokeStyle=u[t],e.forEach((function(e){var i=e.canvasx-a/2*(1-t/(n.length>1?n.length-1:1));r.fillRect(i,e.canvasy,a/n.length,s-e.canvasy),r.strokeRect(i,e.canvasy,a/n.length,s-e.canvasy)}))}))}}}},21471:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(){return function(e){var t=e.drawingContext,r=e.points,i=e.dygraph.toDomYCoord(0);t.fillStyle=e.color;var n=r[1].canvasx-r[0].canvasx,s=Math.floor(2/3*n);r.forEach((function(e){var r=e.canvasx;t.fillRect(r-s/2,e.canvasy,s,i-e.canvasy),t.strokeRect(r-s/2,e.canvasy,s,i-e.canvasy)}))}}},86893:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(22753);function n(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}t.default=function(e,t,r,s,o,a){var l=a.map(i.withoutPrefix),u=s("pixelsPerLabel"),c=Math.floor(r/u),d=s("axisLabelFormatter"),f=Math.ceil(a.length/(c-1)),p=l.map((function(e,t){return{v:t,label:t%f===0?d(l[t],0,s,o):null}})),m=o.yAxisRange(0),g=m[0],b=m[1],h=(b-g)/15/o.getArea().h;return[{label_v:b-h}].concat(n(p),[{label_v:g+h}])}},21945:(e,t,r)=>{t.__esModule=!0,t.numericTicker=t.heatmapTicker=void 0;var i=s(r(22190));t.numericTicker=i.default;var n=s(r(86893));function s(e){return e&&e.__esModule?e:{default:e}}t.heatmapTicker=n.default},22190:(e,t)=>{function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}t.__esModule=!0,t.default=void 0;t.default=function(e,t,i,n,s,o){var a,l,u,c,d=n("pixelsPerLabel"),f=[];if(o)for(a=0;a<o.length;a++)f.push({v:o[a]});else if(0===f.length){var p,m,g,b=[1,2,5,10,20,50,100],h=Math.ceil(i/d),y=Math.abs(t-e)/h,v=Math.floor(Math.log(y)/Math.log(10)),_=Math.pow(10,v);for(l=0;l<b.length&&(p=_*b[l],m=Math.floor(e/p)*p,g=Math.ceil(t/p)*p,!(i/(c=Math.abs(g-m)/p)>d));l++);for(m>g&&(p*=-1),a=0;a<=c;a++)u=m+a*p,f.push({v:u})}var O=n("axisLabelFormatter");for(a=0;a<f.length;a++)void 0===f[a].label&&(f[a].label=O(f[a].v,0,n,s));var A=s.yAxisRange(0),w=A[0],P=A[1],k=(P-w)/15/s.getArea().h;return[{label_v:P-k,label:"AR"}].concat(r(f.filter((function(e){return s.toPercentYCoord(e.v,0)<.92&&s.toPercentYCoord(e.v,0)>.08}))),[{label_v:w+k,label:"i"}])}},10732:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=a(r(88208)),n=a(r(68652)),s=r(28973),o=a(r(58370));function a(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e,t){var r,a,l,c,d=(0,n.default)(e,t),f=null,p=function(){return{trackColor:t.getThemeAttribute("themeEasyPieTrackColor"),scaleColor:t.getThemeAttribute("themeEasyPieScaleColor")}},m=function(){var e=d.getElement(),t=e.clientWidth,r=e.clientHeight,i=t<r?t:r,n=i/22;return{lineWidth:n<4?2:Math.floor(n),size:i<20?20:i,scaleLength:n<4?2:Math.floor(n)}},g=function(){d.render();var e=t.getAttributes(),r=e.hoverX,i=e.loaded;if(f&&i){var n=t.getPayload().data;if(void 0!==(null==n?void 0:n.length)){var s=n[r?t.getClosestRow(r[0]):n.length-1];if(Array.isArray(s)){var o=s.slice(1).reduce((function(e,t){return void 0===t&&(t=0),e+t}),0),a=t.getAttribute("getValueRange")(t),u=a[0],p=a[1];d.render();var m=(o-u)/(p-u)*100;f.update(m),u===l&&p===c||d.sdk.trigger("yAxisChange",t,u,p),l=u,c=p,d.trigger("rendered")}}}};return u(u({},d),{},{mount:function(e){if(!f){d.mount(e);var n=t.getAttribute("theme");e.classList.add(n);var l=t.getAttributes().loaded,c=function(){f=new i.default(e,u(u({barColor:t.selectDimensionColor(),animate:!1},p()),m()))};c();var b=function(){var t=f.renderer.getCanvas();f.renderer.clear(),e.removeChild(t),c()};a=(0,o.default)(e,(function(){b(),d.trigger("resize")}),(function(){return d.trigger("resize")})),r=(0,s.unregister)(t.onAttributeChange("hoverX",(function(e,t){Boolean(t)!==Boolean(e)&&(e?f.disableAnimation():f.enableAnimation()),g()})),!l&&t.onceAttributeChange("loaded",g),t.onAttributeChange("theme",b)),g()}},unmount:function(){r&&r(),a&&a(),f&&(f.renderer.clear(),f=null),l=null,c=null,d.unmount()},render:g})}},87903:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=a(r(52076)),n=a(r(68652)),s=r(28973),o=a(r(58370));function a(e){return e&&e.__esModule?e:{default:e}}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e,t){var r,a,u,c,f=(0,n.default)(e,t),p=null,m=function(){return{color:f.chart.getThemeAttribute("themeGaugePointer"),strokeColor:f.chart.getThemeAttribute("themeGaugeStroke")}},g=function(){return t.getAttribute("getValueRange")(t)},b=function(){f.render();var e=t.getAttributes(),r=e.hoverX,i=e.loaded;if(p&&i){var n=t.getPayload().data;if(void 0!==(null==n?void 0:n.length)){var s=n[r?t.getClosestRow(r[0]):n.length-1];if(Array.isArray(s)){var o=s.slice(1).reduce((function(e,t){return void 0===t&&(t=0),e+t}),0),l=g(),c=l[0],d=l[1];c===a&&d===u||f.sdk.trigger("yAxisChange",t,c,d),a=c,u=d,f.render();var m=Math.max(Math.min((o-c)/(d-c)*100,99.999),.001);p.set(m),f.trigger("rendered")}}}};return d(d({},f),{},{mount:function(e){if(!p){f.mount(e);var n=m(),a=n.color,u=n.strokeColor,g=t.getAttributes().staticZones;(p=new i.default(e.firstChild).setOptions(d({angle:-.2,lineWidth:.2,radiusScale:1,pointer:{length:.6,strokeWidth:.035,color:a},strokeColor:u,limitMax:!1,limitMin:!1,colorStart:t.selectDimensionColor(),generateGradient:!0,highDpiSupport:!0},g&&{staticZones:[{strokeStyle:u,min:0,max:100,height:1}].concat(l(g))}))).maxValue=100,p.animationSpeed=Number.MAX_VALUE,p.setMinValue(0),c=(0,o.default)(e,(function(){var t=e.clientWidth,r=.9*(e.clientHeight>t?t:e.clientHeight);e.firstChild.G__height=r,e.firstChild.style.height=r+"px";var i=t;e.firstChild.G__width=i,e.firstChild.style.width=i+"px",p.setOptions({}),p.update(!0),f.trigger("resize")}),(function(){return f.trigger("resize")}));var h=t.getAttributes().loaded;r=(0,s.unregister)(t.onAttributeChange("hoverX",b),!h&&t.onceAttributeChange("loaded",b),t.onAttributeChange("theme",(function(){var e=m(),t=e.color,r=e.strokeColor;p.setOptions({strokeColor:r,pointer:{color:t}})})));var y=e.clientWidth,v=.9*(e.clientHeight>y?y:e.clientHeight);e.firstChild.G__height=v,e.firstChild.style.height=v+"px";var _=y;e.firstChild.G__width=_,e.firstChild.style.width=_+"px",p.setOptions({}),b()}},unmount:function(){r&&r(),c&&c(),p=null,a=null,u=null,f.unmount()},render:b,getMinMax:g})}},52076:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=function(e,t){for(var r in t.prototype)t.hasOwnProperty(r)&&(e[r]=t[r]);function i(){this.constructor=e}return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},i=function(e,t){var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=e[i]);for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);return r},n=function(e){return"#"===e.charAt(0)?e.substring(1,7):e};function s(e,t){null==e&&(e=!0),this.clear=null==t||t,e&&u.add(this)}function o(){return o.__super__.constructor.apply(this,arguments)}function a(e){if(this.gauge=e,void 0===this.gauge)throw new Error("The element isn't defined.");this.ctx=this.gauge.ctx,this.canvas=this.gauge.canvas,a.__super__.constructor.call(this,!1,!1),this.setOptions()}function l(e){var t,r;this.canvas=e,l.__super__.constructor.call(this),this.percentColors=null,"undefined"!==typeof G_vmlCanvasManager&&(this.canvas=window.G_vmlCanvasManager.initElement(this.canvas)),this.ctx=this.canvas.getContext("2d"),t=this.canvas.clientHeight,r=this.canvas.clientWidth,this.canvas.height=t,this.canvas.width=r,this.gp=[new a(this)],this.setOptions()}s.prototype.animationSpeed=32,s.prototype.update=function(e){var t;return null==e&&(e=!1),!(!e&&this.displayedValue===this.value)&&(this.ctx&&this.clear&&this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),t=this.value-this.displayedValue,Math.abs(t/this.animationSpeed)<=.001?this.displayedValue=this.value:this.displayedValue=this.displayedValue+t/this.animationSpeed,this.render(),!0)},r(o,s),o.prototype.displayScale=1,o.prototype.forceUpdate=!0,o.prototype.setMinValue=function(e,t){var r,i,n,s,o;if(this.minValue=e,null==t&&(t=!0),t){for(this.displayedValue=this.minValue,o=[],i=0,n=(s=this.gp||[]).length;i<n;i++)r=s[i],o.push(r.displayedValue=this.minValue);return o}},o.prototype.setOptions=function(e){return null==e&&(e=null),this.options=i(this.options,e),this.options.angle>.5&&(this.options.angle=.5),this.configDisplayScale(),this},o.prototype.configDisplayScale=function(){var e,t,r,i;return!1===this.options.highDpiSupport?delete this.displayScale:(t=window.devicePixelRatio||1,e=this.ctx.webkitBackingStorePixelRatio||this.ctx.mozBackingStorePixelRatio||this.ctx.msBackingStorePixelRatio||this.ctx.oBackingStorePixelRatio||this.ctx.backingStorePixelRatio||1,this.displayScale=t/e),i=this.canvas.G__width||this.canvas.width,r=this.canvas.G__height||this.canvas.height,this.canvas.width=i*this.displayScale,this.canvas.height=r*this.displayScale,this.canvas.style.width=i+"px",this.canvas.style.height=r+"px",this.canvas.G__width=i,this.canvas.G__height=r,this},o.prototype.parseValue=function(e){return e=parseFloat(e)||Number(e),isFinite(e)?e:0},r(a,s),a.prototype.displayedValue=0,a.prototype.value=0,a.prototype.options={strokeWidth:.035,length:.1,color:"#000000",iconPath:null,iconScale:1,iconAngle:0},a.prototype.img=null,a.prototype.setOptions=function(e){if(null==e&&(e=null),this.options=i(this.options,e),this.length=2*this.gauge.radius*this.gauge.options.radiusScale*this.options.length,this.strokeWidth=this.canvas.height*this.options.strokeWidth,this.maxValue=this.gauge.maxValue,this.minValue=this.gauge.minValue,this.animationSpeed=this.gauge.animationSpeed,this.options.angle=this.gauge.options.angle,this.options.iconPath)return this.img=new Image,this.img.src=this.options.iconPath},a.prototype.render=function(){var e,t,r,i,n,s,o,a,l;if(e=this.gauge.getAngle.call(this,this.displayedValue),a=Math.round(this.length*Math.cos(e)),l=Math.round(this.length*Math.sin(e)),s=Math.round(this.strokeWidth*Math.cos(e-Math.PI/2)),o=Math.round(this.strokeWidth*Math.sin(e-Math.PI/2)),t=Math.round(this.strokeWidth*Math.cos(e+Math.PI/2)),r=Math.round(this.strokeWidth*Math.sin(e+Math.PI/2)),this.ctx.beginPath(),this.ctx.fillStyle=this.options.color,this.ctx.arc(0,0,this.strokeWidth,0,2*Math.PI,!1),this.ctx.fill(),this.ctx.beginPath(),this.ctx.moveTo(s,o),this.ctx.lineTo(a,l),this.ctx.lineTo(t,r),this.ctx.fill(),this.img)return i=Math.round(this.img.width*this.options.iconScale),n=Math.round(this.img.height*this.options.iconScale),this.ctx.save(),this.ctx.translate(a,l),this.ctx.rotate(e+Math.PI/180*(90+this.options.iconAngle)),this.ctx.drawImage(this.img,-i/2,-n/2,i,n),this.ctx.restore()},r(l,o),l.prototype.elem=null,l.prototype.value=[20],l.prototype.maxValue=80,l.prototype.minValue=0,l.prototype.displayedAngle=0,l.prototype.displayedValue=0,l.prototype.lineWidth=40,l.prototype.paddingTop=.1,l.prototype.paddingBottom=.1,l.prototype.percentColors=null,l.prototype.options={colorStart:"#6fadcf",colorStop:void 0,gradientType:0,strokeColor:"#e0e0e0",pointer:{length:.8,strokeWidth:.035,iconScale:1},angle:.15,lineWidth:.44,radiusScale:1,limitMax:!1,limitMin:!1},l.prototype.setOptions=function(e){var t,r,i,n,s;for(null==e&&(e=null),l.__super__.setOptions.call(this,e),this.configPercentColors(),this.extraPadding=0,this.options.angle<0&&(n=Math.PI*(1+this.options.angle),this.extraPadding=Math.sin(n)),this.availableHeight=this.canvas.height*(1-this.paddingTop-this.paddingBottom),this.lineWidth=this.availableHeight*this.options.lineWidth,this.radius=(this.availableHeight-this.lineWidth/2)/(1+this.extraPadding),this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),r=0,i=(s=this.gp).length;r<i;r++)(t=s[r]).setOptions(this.options.pointer),t.render();return this.render(),this},l.prototype.configPercentColors=function(){var e,t,r,i,s,o,a;if(this.percentColors=null,void 0!==this.options.percentColors){for(this.percentColors=new Array,o=[],r=i=0,s=this.options.percentColors.length-1;0<=s?i<=s:i>=s;r=0<=s?++i:--i)a=parseInt(n(this.options.percentColors[r][1]).substring(0,2),16),t=parseInt(n(this.options.percentColors[r][1]).substring(2,4),16),e=parseInt(n(this.options.percentColors[r][1]).substring(4,6),16),o.push(this.percentColors[r]={pct:this.options.percentColors[r][0],color:{r:a,g:t,b:e}});return o}},l.prototype.set=function(e){var t,r,i,n,s,o,l,c,d;for(e instanceof Array||(e=[e]),r=i=0,l=e.length-1;0<=l?i<=l:i>=l;r=0<=l?++i:--i)e[r]=this.parseValue(e[r]);if(e.length>this.gp.length)for(r=n=0,c=e.length-this.gp.length;0<=c?n<c:n>c;r=0<=c?++n:--n)(t=new a(this)).setOptions(this.options.pointer),this.gp.push(t);else e.length<this.gp.length&&(this.gp=this.gp.slice(this.gp.length-e.length));for(r=0,o=0,s=e.length;o<s;o++)(d=e[o])>this.maxValue?this.options.limitMax?d=this.maxValue:this.maxValue=d+1:d<this.minValue&&(this.options.limitMin?d=this.minValue:this.minValue=d-1),this.gp[r].value=d,this.gp[r++].setOptions({minValue:this.minValue,maxValue:this.maxValue,angle:this.options.angle});return this.value=Math.max(Math.min(e[e.length-1],this.maxValue),this.minValue),u.add(this),u.run(this.forceUpdate),this.forceUpdate=!1},l.prototype.getAngle=function(e){return(1+this.options.angle)*Math.PI+(e-this.minValue)/(this.maxValue-this.minValue)*(1-2*this.options.angle)*Math.PI},l.prototype.getColorForPercentage=function(e,t){var r,i,n,s,o,a,l;if(0===e)r=this.percentColors[0].color;else for(r=this.percentColors[this.percentColors.length-1].color,n=s=0,a=this.percentColors.length-1;0<=a?s<=a:s>=a;n=0<=a?++s:--s)if(e<=this.percentColors[n].pct){!0===t?(l=this.percentColors[n-1]||this.percentColors[0],i=this.percentColors[n],o=(e-l.pct)/(i.pct-l.pct),r={r:Math.floor(l.color.r*(1-o)+i.color.r*o),g:Math.floor(l.color.g*(1-o)+i.color.g*o),b:Math.floor(l.color.b*(1-o)+i.color.b*o)}):r=this.percentColors[n].color;break}return"rgb("+[r.r,r.g,r.b].join(",")+")"},l.prototype.getColorForValue=function(e,t){var r;return r=(e-this.minValue)/(this.maxValue-this.minValue),this.getColorForPercentage(r,t)},l.prototype.renderTicks=function(e,t,r,i){var n,s,o,a,l,u,c,d,f,p,m,g,b,h,y,v,_,O,A,w;if(e!=={}){for(u=e.divisions||0,O=e.subDivisions||0,o=e.divColor||"#fff",h=e.subColor||"#fff",a=e.divLength||.7,v=e.subLength||.2,f=parseFloat(this.maxValue)-parseFloat(this.minValue),p=parseFloat(f)/parseFloat(e.divisions),y=parseFloat(p)/parseFloat(e.subDivisions),n=parseFloat(this.minValue),s=0+y,l=(d=f/400)*(e.divWidth||1),_=d*(e.subWidth||1),g=[],A=c=0,m=u+1;c<m;A=c+=1)this.ctx.lineWidth=this.lineWidth*a,b=this.lineWidth/2*(1-a),w=this.radius*this.options.radiusScale+b,this.ctx.strokeStyle=o,this.ctx.beginPath(),this.ctx.arc(0,0,w,this.getAngle(n-l),this.getAngle(n+l),!1),this.ctx.stroke(),s=n+y,n+=p,A!==e.divisions&&O>0?g.push(function(){var e,t,r;for(r=[],e=0,t=O-1;e<t;e+=1)this.ctx.lineWidth=this.lineWidth*v,b=this.lineWidth/2*(1-v),w=this.radius*this.options.radiusScale+b,this.ctx.strokeStyle=h,this.ctx.beginPath(),this.ctx.arc(0,0,w,this.getAngle(s-_),this.getAngle(s+_),!1),this.ctx.stroke(),r.push(s+=y);return r}.call(this)):g.push(void 0);return g}},l.prototype.render=function(){var e,t,r,i,n,s,o,a,l,u,c,d,f,p,m,g;if(m=this.canvas.width/2,r=this.canvas.height*this.paddingTop+this.availableHeight-(this.radius+this.lineWidth/2)*this.extraPadding,e=this.getAngle(this.displayedValue),this.ctx.lineCap="butt",u=this.radius*this.options.radiusScale,this.options.staticZones)for(this.ctx.save(),this.ctx.translate(m,r),this.ctx.lineWidth=this.lineWidth,i=0,s=(c=this.options.staticZones).length;i<s;i++)l=(g=c[i]).min,this.options.limitMin&&l<this.minValue&&(l=this.minValue),a=g.max,this.options.limitMax&&a>this.maxValue&&(a=this.maxValue),p=this.radius*this.options.radiusScale,g.height&&(this.ctx.lineWidth=this.lineWidth*g.height,f=this.lineWidth/2*(g.offset||1-g.height),p=this.radius*this.options.radiusScale+f),this.ctx.strokeStyle=g.strokeStyle,this.ctx.beginPath(),this.ctx.arc(0,0,p,this.getAngle(l),this.getAngle(a),!1),this.ctx.stroke();else void 0!==this.options.customFillStyle?t=this.options.customFillStyle(this):null!==this.percentColors?t=this.getColorForValue(this.displayedValue,this.options.generateGradient):void 0!==this.options.colorStop?((t=0===this.options.gradientType?this.ctx.createRadialGradient(m,r,9,m,r,70):this.ctx.createLinearGradient(0,0,m,0)).addColorStop(0,this.options.colorStart),t.addColorStop(1,this.options.colorStop)):t=this.options.colorStart,this.ctx.strokeStyle=t,this.ctx.beginPath(),this.ctx.arc(m,r,u,(1+this.options.angle)*Math.PI,e,!1),this.ctx.lineWidth=this.lineWidth,this.ctx.stroke(),this.ctx.strokeStyle=this.options.strokeColor,this.ctx.beginPath(),this.ctx.arc(m,r,u,e,(2-this.options.angle)*Math.PI,!1),this.ctx.stroke(),this.ctx.save(),this.ctx.translate(m,r);for(this.options.renderTicks&&this.renderTicks(this.options.renderTicks,m,r,u),this.ctx.restore(),this.ctx.translate(m,r),n=0,o=(d=this.gp).length;n<o;n++)d[n].update(!0);return this.ctx.translate(-m,-r)};var u={elements:[],animId:null,addAll:function(e){var t,r,i,n;for(n=[],r=0,i=e.length;r<i;r++)t=e[r],n.push(u.elements.push(t));return n},add:function(e){if(u.elements.indexOf(e)<0)return u.elements.push(e)},run:function(e){var t,r,i,n,s,o,a;if(null==e&&(e=!1),isFinite(parseFloat(e))||!0===e){for(t=!0,a=[],i=r=0,s=(o=u.elements).length;r<s;i=++r)o[i].update(!0===e)?t=!1:a.push(i);for(n=a.length-1;n>=0;n+=-1)i=a[n],u.elements.splice(i,1);return u.animId=t?null:requestAnimationFrame(u.run)}if(!1===e)return!0===u.animId&&cancelAnimationFrame(u.animId),u.animId=requestAnimationFrame(u.run)}};t.default=l},42872:(e,t,r)=>{t.__esModule=!0,t.initialValue=t.default=void 0;var i,n=r(28973),s=(i=r(68652))&&i.__esModule?i:{default:i};function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var u=t.initialValue={labels:[],data:[],values:{},tree:{}};t.default=function(e,t){var r,i=(0,s.default)(e,t),o=u,l=null,c=!1,d=function(e){var r=(void 0===e?{}:e).force;if(!c||void 0!==r&&r||t.consumePayload()){var n=t.getPayload();n.data.length&&(o=n,f(),c=!0,i.trigger("groupBoxChanged",o))}},f=function(){var e=t.getPayload().all;if(0!==e.length){var r=t.getAttribute("hoverX"),n=r?t.getClosestRow(r[0]):-1;o&&(l=-1===n?e[e.length-1]:e[n],-1===n||Array.isArray(l)?i.trigger("groupBoxRowDataChanged",l):l=null)}};return a(a({},i),{},{mount:function(){d(),i.trigger("resize"),r=(0,n.unregister)(t.onAttributeChange("hoverX",f),t.on("finishFetch",(function(){return d({force:!0})})),t.on("visibleDimensionsChanged",(function(){return d({force:!0})})),t.onAttributeChange("theme",(function(){return d({force:!0})})))},unmount:function(){r&&r(),r=null},render:function(){i.render(),i.trigger("rendered")},getGroupBox:function(){return o},getGroupBoxRowData:function(){return l}})}},67137:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=o(r(68652)),n=r(28973),s=o(r(58370));function o(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){u(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e,t){var r,o,a,u,c=(0,i.default)(e,t),d=function(){c.render();var e=t.getAttributes(),r=e.hoverX;if(e.loaded){var i=t.getPayload().data,n=i[r?t.getClosestRow(r[0]):i.length-1];if(Array.isArray(n)){c.render();var s=t.getAttribute("getValueRange")(t),o=s[0],l=s[1];o===a&&l===u||c.sdk.trigger("yAxisChange",t,o,l),a=o,u=l,c.trigger("rendered")}}};return l(l({},c),{},{mount:function(e){c.mount(e),o=(0,s.default)(e,(function(){return c.trigger("resize")}),(function(){return c.trigger("resize")}));var i=t.getAttributes().loaded;r=(0,n.unregister)(t.onAttributeChange("hoverX",d),!i&&t.onceAttributeChange("loaded",d)),d()},unmount:function(){r&&r(),o&&o(),c.unmount(),a=null,u=null},render:d})}},71612:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default={"fping.latency":"FPing Latency","fping.packets":"FPing Packets","fping.quality":"FPing Quality"}},92810:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(8711))&&i.__esModule?i:{default:i},s=r(10058),o=r(33640),a=["icon","hoverIndicator","padding"];function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var d=function(e){var t=e.active,r=e.disabled,i=e.defaultColor;return t?"text":r?"disabled":void 0===i?"textLite":i},f=n.default.button.attrs((function(e){var t=e.icon,r=e.hoverIndicator,i=void 0===r||r,n=e.padding,s=void 0===n?0:n,o=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,a);return u(u({cursor:"pointer"},o),{},{children:t||o.children,active:o.active||o["aria-expanded"],hoverIndicator:i,padding:s})})).withConfig({displayName:"button__Button",componentId:"sc-oqiqxn-0"})(["border:initial;padding:",";height:auto;line-height:0;background:",";"," color:",";svg{fill:",";stroke:",";}"," &:hover{",";color:",";svg{fill:",";stroke:",";}}"],(function(e){return e.padding}),(function(e){var t=e.theme;return e.active?(0,s.getColor)("borderSecondary")({theme:t}):"initial"}),s.cursor,(function(e){var t=e.active,r=e.disabled,i=e.theme;return(0,s.getColor)(d({active:t,disabled:r}))({theme:i})}),(function(e){var t=e.active,r=e.disabled,i=e.theme;return e.stroked?"none":(0,s.getColor)(d({active:t,disabled:r}))({theme:i})}),(function(e){var t=e.active,r=e.disabled,i=e.theme;return e.stroked?(0,s.getColor)(d({active:t,disabled:r}))({theme:i}):"none"}),(function(e){var t=e.active,r=e.hoverIndicator;return(t||r)&&"\n border-radius: 4px;\n "}),(function(e){var t=e.theme,r=e.hoverIndicator,i=e.disabled;return r&&!i&&"background: "+(0,s.getColor)("mainChartTboxHover")({theme:t})+";"}),(function(e){var t=e.active,r=e.disabled,i=e.theme;return(0,s.getColor)(d({active:t,disabled:r}))({theme:i})}),(function(e){var t=e.theme,r=e.stroked,i=e.disabled;return r?"none":(0,s.getColor)(d({defaultColor:"text",disabled:i}))({theme:t})}),(function(e){var t=e.theme,r=e.stroked,i=e.disabled;return r?(0,s.getColor)(d({defaultColor:"text",disabled:i}))({theme:t}):"none"}));t.default=(0,o.withTooltip)(f)},6504:(e,t,r)=>{t.__esModule=!0,t.default=t.Button=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(96540)),n=l(r(83503)),s=r(81900),o=l(r(92810));t.Button=o.default;var a=["svg","size","width","height"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},c.apply(this,arguments)}var d="netdata-sdk-svg",f='<svg\n id="'+d+'"\n aria-hidden="true"\n style="position: absolute; width: 0; height: 0; overflow: hidden;"\n >\n <defs />\n </svg>',p=(0,i.forwardRef)((function(e,t){var r=e.svg,o=e.size,l=void 0===o?"24px":o,u=e.width,p=void 0===u?l:u,m=e.height,g=void 0===m?l:m,b=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,a),h=(null==r?void 0:r.content)||r,y=(0,i.useMemo)((function(){return(0,n.default)(h)}),[h]);return(0,i.useEffect)((function(){if(!document.getElementById(y)){!function(){if(!document.querySelector("#"+d)){var e=document.createElement("div");e.innerHTML=f,document.body.insertBefore(e.firstChild.cloneNode(!0),document.body.firstChild)}}();var e=document.querySelector("#"+d+" defs"),t=function(e,t){var r=document.createElement("div");if(!(e=e.trim().replace(/^<symbol /i,"<svg ").replace(/<\/symbol>$/i,"</svg>")))return console.error("Couldn't find SVG: "+t+" - "+e),"";if(r.innerHTML=e,!r.firstChild)return"";var i=r.firstChild.getAttribute("viewBox"),n=r.firstChild.getAttribute("xmlns"),s=r.firstChild.getAttribute("preserveAspectRatio")||"";return r.innerHTML='<svg viewbox="'+i+'" id="'+t+'" xmlns="'+n+'" preserveAspectRatio="'+s+'">'+r.firstChild.innerHTML+"</svg>",r.firstChild}(h,y);e.appendChild(t)}}),[h]),i.default.createElement(s.StyledIcon,c({ref:t,width:p,height:g},b),i.default.createElement("use",{xlinkHref:"#"+y}))}));t.default=p},32464:(e,t,r)=>{t.__esModule=!0,t.getColors=t.default=void 0;var i,n=(i=r(96540))&&i.__esModule?i:{default:i},s=r(10058),o=["type","children","noBorder","title"];function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},a.apply(this,arguments)}var l={error:{background:"errorBackground",color:"errorText"},warning:{background:"warningBackground",color:"warningText"},success:{background:["green","frostee"],color:"success"},neutral:{background:"elementBackground",color:"textLite"}},u=t.getColors=function(e){var t;return null!=(t=l[e])?t:l.error};t.default=function(e){var t=e.type,r=e.children,i=e.noBorder,l=(e.title,function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,o)),c=u(t),d=c.background,f=c.color;return n.default.createElement(s.Flex,a({padding:[.2,1],background:d,round:3,border:i?void 0:{color:f,size:"1px",side:"all"},alignItems:"center","data-testid":"badge"},l),"object"===typeof r?r:n.default.createElement(s.TextMicro,{color:f,whiteSpace:"nowrap"},r))}},23775:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(96540);t.default=(0,i.createContext)(null)},22332:(e,t,r)=>{t.__esModule=!0;var i={withChartProvider:!0};t.withChartProvider=t.default=void 0;var n=l(r(96540)),s=l(r(23775)),o=r(65562);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===o[e]||(t[e]=o[e]))}));var a=["chart"];function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e){var t=e.chart,r=e.children;return n.default.createElement(s.default.Provider,{value:t},r)};t.withChartProvider=function(e){return function(t){var r=t.chart,i=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(t,a);return n.default.createElement(u,{chart:r},n.default.createElement(e,i))}},t.default=u},65562:(e,t,r)=>{t.__esModule=!0,t.useVisibleDimensionId=t.useValue=t.useUnits=t.useUnitSign=t.useTitle=t.usePayload=t.useOnResize=t.useName=t.useLoadingColor=t.useLatestValue=t.useLatestRowValue=t.useLatestConvertedValue=t.useIsFetching=t.useInitialLoading=t.useImmediateListener=t.useFormatTime=t.useFormatDate=t.useForceUpdate=t.useEmpty=t.useDimensionIds=t.useConvertedValue=t.useConverted=t.useColor=t.useChartError=t.useChart=t.useAttributeValue=t.useAttribute=void 0;var i=r(96540),n=r(16199),s=r(28973),o=r(96380),a=c(r(71612)),l=c(r(23775)),u=["chart","id"];function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var m=t.useChart=function(){return(0,i.useContext)(l.default)},g=function(e){return e+1},b=t.useForceUpdate=function(){return(0,i.useReducer)(g,0)[1]},h=t.useImmediateListener=function(e,t){var r=(0,i.useMemo)(e,t);(0,i.useLayoutEffect)((function(){return r}),[r])},y=t.useAttributeValue=function(e){var t=m(),r=b();return h((function(){return t.onAttributeChange(e,r)}),[t]),t.getAttribute(e)},v=(t.useInitialLoading=function(){var e=m(),t=b();return h((function(){return e.onAttributeChange("loaded",t)}),[e]),!e.getAttribute("loaded")},t.useLoadingColor=function(e){void 0===e&&(e="themeNeutralBackground");var t=m(),r=(0,i.useState)(e),s=r[0],o=r[1],a=y("fetchStartedAt"),l=y("loading");return(0,i.useLayoutEffect)((function(){if(l){var r=(0,n.scaleLinear)().domain([0,1e3,2e3,3e3,1e5]).range([t.getThemeAttribute(e),t.getThemeAttribute(e),t.getThemeAttribute("themeLoadingStart"),t.getThemeAttribute("themeNetdata"),t.getThemeAttribute("themeNetdata")]),i=setInterval((function(){o(r(Date.now()-a))}),500);return function(){return clearInterval(i)}}o(e)}),[l,a,t]),s},t.useColor=function(e){var t=m(),r=b();return h((function(){return t.onAttributeChange("theme",r)}),[t]),t.getThemeAttribute(e)},t.useIsFetching=function(){var e=m(),t=b();return h((function(){return e.onAttributeChange("loading",t)}),[e]),e.getAttribute("loading")},t.useEmpty=function(){var e=m(),t=b();return h((function(){return e.on("finishFetch",t)}),[e]),0===e.getPayload().data.length},t.useAttribute=function(e){var t=m(),r=b(),n=function(){return t.getAttribute(e)};h((function(){return t.onAttributeChange(e,r)}),[t]);var s=(0,i.useCallback)((function(r){return t.updateAttribute(e,"function"===typeof r?r(n()):r)}),[t]);return[n(),s]},t.useTitle=function(){var e=y("title"),t=y("contextScope"),r=1===t.length&&a.default[t[0]];return r||e},t.useName=function(){var e=y("name"),t=y("contextScope");return e||t.join(", ")},t.useVisibleDimensionId=function(e){var t=m(),r=b();return h((function(){t.onAttributeChange("selectedDimensions",r),t.on("visibleDimensionsChanged",r)}),[t]),t.isDimensionVisible(e)},t.usePayload=function(){var e=m(),t=b();return h((function(){return e.on("payloadChanged",t)}),[e]),e.getPayload()},t.useChartError=function(){var e=(0,i.useState)(null),t=e[0],r=e[1],n=m(),s=b();return h((function(){var e=function(e){r(e),s()};return n.on("successFetch",(function(){return e(n.getAttribute("error"))})).on("failFetch",(function(){return e(n.getAttribute("error"))}))}),[n]),t},t.useFormatTime=function(e){var t=m(),r=b();return h((function(){return t.onAttributeChange("timezone",r)}),[t]),(0,i.useMemo)((function(){return t.formatTime(e)}),[e,t.getAttribute("timezone")])},t.useFormatDate=function(e){var t=m(),r=b();return h((function(){return t.onAttributeChange("timezone",r)}),[t]),(0,i.useMemo)((function(){return t.formatDate(e)}),[e,t.getAttribute("timezone")])},t.useOnResize=function(e){var t=m(),r=(0,i.useState)(1),n=r[0],s=r[1],o=b();return h((function(){t.on("mountChartUI",(function(){setTimeout((function(){s((function(e){return e+1})),o()}),300)})),t.getUI(e).on("rendered",o).on("resize",o)}),[e,t,n]),{width:t.getUI(e).getChartWidth(),height:t.getUI(e).getChartHeight(),parentWidth:t.getAttribute("containerWidth")}},t.useDimensionIds=function(){var e=m(),t=b();return h((function(){return e.on("dimensionChanged",t)}),[e]),e.getDimensionIds()},t.useUnitSign=function(e){var t=void 0===e?{}:e,r=t.long,i=t.key,n=void 0===i?"units":i,s=m(),o=b();return h((function(){return s.onAttributeChange(n+"Conversion",o)}),[s,n]),s.getUnitSign({long:r,key:n})},t.useUnits=function(e){void 0===e&&(e="units");var t=m(),r=b();return h((function(){return t.onAttributeChange(e+"Conversion",r)}),[t,e]),t.getUnits(e)},t.useConverted=function(e,t){var r=void 0===t?{}:t,n=r.valueKey,s=r.fractionDigits,a=r.unitsKey,l=void 0===a?"units":a,u=m(),c=y(l+"Conversion");return(0,i.useMemo)((function(){return null===e||"-"===e?"-":"arp"===n||"percent"===n?0===e?"-":(Math.round(100*(e+Number.EPSILON))/100).toFixed(s||2):"pa"===n?o.parts.reduce((function(t,r){var i;return(0,o.check)(e,o.enums[r])?f(f({},t),{},((i={})[r]=o.colors[r],i)):t}),{}):u.getConvertedValue(e,{fractionDigits:s,key:l})}),[u,e,n,c])}),_=(t.useLatestRowValue=function(e){void 0===e&&(e={});var t=m(),r=(0,i.useState)(null),n=r[0],o=r[1];return(0,i.useLayoutEffect)((function(){var r=function(){var r=t.getAttribute("hoverX"),i=t.getPayload().all;if(0===i.length)return"";var n=r?t.getClosestRow(r[0]):-1;return n=-1===n?i.length-1:n,t.getVisibleDimensionIds().map((function(r){return{label:r,value:t.getDimensionValue(r,n,e),color:t.selectDimensionColor(r)}}))};return(0,s.unregister)(t.onAttributeChange("hoverX",(function(){return o(r())})),t.on("dimensionChanged",(function(){return o(r())})),t.on("render",(function(){return o(r())})))}),[t]),n},{latest:function(e){var t=e.chart,r=e.id,i=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,u),n=t.getAttribute("hoverX"),s=t.getPayload().all;if(!s.length)return null;var o=n?t.getClosestRow(n[0]):-1;return o=-1===o?s.length-1:o,(r=t.isDimensionVisible(r)?r:t.getVisibleDimensionIds()[0])?t.getDimensionValue(r,o,i):null},window:function(e){var t=e.chart,r=e.id,i=e.valueKey,n=e.objKey,s=t.getAttribute(n).sts[i];return null!=s&&s.length&&(r=t.isDimensionVisible(r)?r:t.getVisibleDimensionIds()[0])?s[t.getDimensionIndex(r)]:null},highlight:function(e){var t,r=e.chart,i=(e.id,e.valueKey,e.objKey,r.getAttribute("overlays").highlight);if(null==i||!i.range)return null;null==i||i.range;var n=null!=(t=null==i?void 0:i.moveX)?t:{};n.after,n.before}}),O=t.useValue=function(e,t,r){void 0===t&&(t="latest");var n=void 0===r?{}:r,o=n.valueKey,a=void 0===o?"value":o,l=n.objKey,u=void 0===l?"viewDimensions":l,c=n.abs,d=n.unitsKey,f=void 0===d?"units":d,p=n.allowNull,g=m(),b=(0,i.useState)(null),h=b[0],y=b[1];return(0,i.useLayoutEffect)((function(){var r=function(){return(_[t]||_.latest)({chart:g,id:e,valueKey:a,objKey:u,abs:c,allowNull:p})};return y(r()),(0,s.unregister)(g.onAttributeChange("hoverX",(function(){return y(r())})),g.on("dimensionChanged",(function(){return y(r())})),g.onAttributeChange(f+"Conversion",(function(){return y(r())})),g.on("render",(function(){return y(r())})))}),[g,e,a,t,u,f]),h},A=(t.useLatestValue=function(e,t){return void 0===t&&(t={}),O(e,"latest",t)},t.useConvertedValue=function(e,t,r){void 0===t&&(t="latest"),void 0===r&&(r={});var i=O(e,t,r);return v(i,r)});t.useLatestConvertedValue=function(e,t){return void 0===t&&(t={}),A(e,"latest",f({allowNull:!0},t))}},17323:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(96540)),n=r(10058),s=r(22332),o=f(r(32464)),a=r(18121),l=f(r(27660)),u=f(r(45406)),c=["type","status"],d=["plain"];function f(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},m.apply(this,arguments)}function g(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function y(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var v=function(){var e=(0,a.useHovered)(),t=e[0],r=e[1];return i.default.createElement(n.Flex,{ref:t},r?i.default.createElement(u.default,null):i.default.createElement(l.default,null))},_={type:"error",children:"Error",status:"error"},O={type:"neutral",children:"Loading",status:"loading"},A=function(e){var t=e.type,r=e.status,n=g(e,c);return t?i.default.createElement(o.default,m({type:t,"data-testid":"chartHeaderStatus-"+r},n)):null};t.default=function(e){var t=e.plain,r=g(e,d),o=(0,s.useInitialLoading)(),a=(0,s.useEmpty)(),l=function(e){var t=e.initialLoading,r=e.error;return(0,i.useMemo)((function(){return r?h(h({},_),{},{children:_.children+": "+r}):t?O:null}),[t,r])}({initialLoading:o,error:(0,s.useChartError)()});return i.default.createElement(n.Flex,m({gap:2,"data-testid":"chartHeaderStatus",basis:"0"},r),i.default.createElement(v,null),!t&&i.default.createElement(A,l),!t&&!o&&a&&!l&&i.default.createElement(A,{type:"neutral",status:"empty"},"No data"))}},27660:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=c(r(96540)),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(8711)),s=r(10058),o=c(r(96104)),a=r(22332),l=c(r(6504));function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(e){return e&&e.__esModule?e:{default:e}}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},d.apply(this,arguments)}var f=(0,n.keyframes)(["0%{stroke-dashoffset:100;}100%{stroke-dashoffset:0;}"]),p=(0,n.css)(["stroke-dasharray:100;stroke-dashoffset:100;animation:"," 1000ms linear forwards;animation-delay:0s;animation-iteration-count:infinite;-webkit-backface-visibility:hidden;opacity:1;visibility:visible;"],f),m=(0,n.default)(l.default).withConfig({displayName:"logo__StyledIcon",componentId:"sc-1pruasp-0"})(["stroke:",";stroke-width:2;",""],(function(e){var t=e.strokeColor,r=e.theme;return(0,s.getColor)(t)({theme:r})}),(function(e){return e.isFetching&&p}));t.default=function(e){var t=(0,a.useIsFetching)(),r=(0,a.useLoadingColor)("border");return i.default.createElement(m,d({svg:o.default,color:"mainBackground",strokeColor:r,isFetching:t,title:t?"Playing":"Paused","data-testid":"chartHeaderStatus-logo",size:"16px"},e))}},45406:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=c(r(96540)),s=c(r(8711)),o=(i=r(61603))&&i.__esModule?i:{default:i},a=c(r(6504)),l=r(22332);function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},d.apply(this,arguments)}var f=(0,s.keyframes)(["from{transform:rotate(360deg);}to{transform:rotate(0);}"]),p=(0,s.css)(["animation:"," 1.6s ease-in infinite;"],f),m=(0,s.default)(a.default).withConfig({displayName:"reload__StyledIcon",componentId:"sc-hdwdmt-0"})(["",""],(function(e){return e.isLoading&&p}));t.default=function(e){var t=(0,l.useChart)(),r=(0,n.useState)(!1),i=r[0],s=r[1];return n.default.createElement(a.Button,d({icon:n.default.createElement(m,{svg:o.default,isLoading:i,size:"16px"}),disabled:i,onClick:function(){s(!0),t.fetch().finally((function(){return s(!1)}))},title:"Refresh","data-testid":"chartHeaderStatus-reload",tooltipProps:{open:!0},"data-track":t.track("refresh"),small:!0},e))}},13752:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=O(r(96540)),n=r(10058),s=v(r(57815)),o=v(r(49134)),a=v(r(19654)),l=v(r(36194)),u=v(r(17600)),c=v(r(63001)),d=v(r(74389)),f=v(r(43071)),p=v(r(15588)),m=v(r(22203)),g=v(r(54991)),b=v(r(38001)),h=O(r(6504)),y=r(22332);function v(e){return e&&e.__esModule?e:{default:e}}function _(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_=function(e){return e?r:t})(e)}function O(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=_(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},A.apply(this,arguments)}var w={color:"textLite",margin:[0,2,0,0],size:"14px"},P=function(e){var t=e.disabled,r=(0,y.useChart)(),v=(0,y.useAttributeValue)("chartLibrary")||"dygraph",_=(0,y.useAttributeValue)("chartType")||"line",O="dygraph"===v?_:v,P=function(e){return(0,i.useMemo)((function(){return[{justDesc:!0,label:"Timeseries"},{value:"line",label:"Line",icon:i.default.createElement(h.default,A({svg:s.default},w)),svg:s.default,"data-track":e.track("chartType-line")},{value:"stacked",label:"Stacked",icon:i.default.createElement(h.default,A({svg:o.default},w)),svg:o.default,"data-track":e.track("chartType-stacked")},{value:"area",label:"Area",icon:i.default.createElement(h.default,A({svg:a.default},w)),svg:a.default,"data-track":e.track("chartType-area")},{value:"stackedBar",label:"Stacked Bar",icon:i.default.createElement(h.default,A({svg:u.default},w)),svg:u.default,"data-track":e.track("chartType-stackedBar")},{value:"multiBar",label:"Multi Column",icon:i.default.createElement(h.default,A({svg:l.default},w)),svg:l.default,"data-track":e.track("chartType-multiBar")},{value:"heatmap",label:"Heatmap",icon:i.default.createElement(h.default,A({svg:c.default},w)),svg:c.default,"data-track":e.track("chartType-heatmap"),disabled:"disabled"===e.getHeatmapType()},{justDesc:!0,label:"Graphs"},"bars"in e.sdk.ui&&{value:"bars",label:"Bar",icon:i.default.createElement(h.default,A({svg:d.default},w)),svg:d.default,"data-track":e.track("chartType-bars")},"easypiechart"in e.sdk.ui&&{value:"easypiechart",label:"Circle",icon:i.default.createElement(h.default,A({svg:f.default},w)),svg:f.default,"data-track":e.track("chartType-pie")},"gauge"in e.sdk.ui&&{value:"gauge",label:"Gauge",icon:i.default.createElement(h.default,A({svg:p.default},w)),svg:p.default,"data-track":e.track("chartType-gauge")},"d3pie"in e.sdk.ui&&{value:"d3pie",label:"Pie",icon:i.default.createElement(h.default,A({svg:m.default},w)),svg:m.default,"data-track":e.track("chartType-d3pie")},"number"in e.sdk.ui&&{value:"number",label:"Value",icon:i.default.createElement(h.default,A({svg:g.default},w)),svg:g.default,"data-track":e.track("chartType-value")},"groupBoxes"in e.sdk.ui&&{value:"groupBoxes",label:"Group boxes",icon:i.default.createElement(h.default,A({svg:b.default},w)),svg:b.default,"data-track":e.track("chartType-groupBoxes")}].filter(Boolean)}),[e,e.getHeatmapType()])}(r),k=P.find((function(e){return e.value===O})),j=k.label,x=k.svg;return i.default.createElement(n.Menu,{value:O,items:P,dropProps:{align:{top:"bottom",right:"right"},"data-toolbox":r.getId()},dropdownProps:{width:"130px"},onChange:r.updateChartTypeAttribute,"data-track":r.track("chartType")},i.default.createElement(h.Button,{icon:i.default.createElement(h.default,{svg:x,size:"16px"}),title:j,disabled:t,"data-testid":"chartHeaderToolbox-chartType"}))};t.default=(0,i.memo)(P)},92815:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=u(r(96540)),n=u(r(79644)),s=u(r(85809)),o=r(22332),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(6504));function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},c.apply(this,arguments)}t.default=function(e){var t=(0,o.useChart)(),r=(0,o.useAttributeValue)("fullscreen");return i.default.createElement(a.Button,c({icon:i.default.createElement(a.default,{svg:r?s.default:n.default,size:"16px"}),onClick:t.toggleFullscreen,title:r?"Minimize":"Full screen","data-testid":"chartHeaderToolbox-fullscreen","data-track":t.track("fullscreen")},e))}},72582:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=l(r(96540)),n=l(r(73862)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(6504)),o=r(22332);function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}function l(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},u.apply(this,arguments)}t.default=function(e){var t=(0,o.useChart)(),r=(0,o.useAttribute)("showingInfo"),a=r[0],l=r[1];return i.default.createElement(s.Button,u({icon:i.default.createElement(s.default,{svg:n.default,size:"16px"}),title:"Information","data-testid":"chartHeaderToolbox-information",active:a,onClick:function(){return l((function(e){return!e}))},"data-track":t.track("information")},e))}},33640:(e,t,r)=>{t.__esModule=!0,t.withTooltip=t.tooltipStyleProps=t.default=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(96540)),n=r(10058),s=r(22332),o=["children"],a=["content","Content"],l=["title"];function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},c.apply(this,arguments)}function d(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}var f=t.tooltipStyleProps={padding:[1,2],margin:[2],round:1,width:{max:"300px",base:"fit-content"},background:"tooltip"},p=function(e){var t=e.children,r=d(e,o);return i.default.createElement(n.Flex,c({},f,r),i.default.createElement(n.TextSmall,{color:"tooltipText",wordBreak:"break-word"},t))},m=(0,i.forwardRef)((function(e,t){var r=e.content,s=e.Content,o=void 0===s?p:s,l=d(e,a);return r?i.default.createElement(n.Tooltip,c({ref:t,plain:!0,content:i.default.createElement(o,l,r)},l,{dropProps:{"data-toolbox":l["data-toolbox"]}})):l.children}));m.defaultProps={align:"bottom"};t.withTooltip=function(e,t){return void 0===t&&(t={}),(0,i.forwardRef)((function(r,n){var o=r.title,a=d(r,l),u=(0,s.useAttributeValue)("id");return o?i.default.createElement(m,c({content:o,disabled:a.open,"data-toolbox":u},t,a.tooltipProps),i.default.createElement(e,c({ref:n},a))):i.default.createElement(e,c({ref:n},a))}))},t.default=m},18121:(e,t,r)=>{t.__esModule=!0,t.useHovered=t.default=void 0;var i=r(96540),n=function(){return!0},s=function(e,t){var r=e.onHover,s=e.onBlur,o=e.isOut,a=void 0===o?n:o,l=(0,i.useRef)();return(0,i.useLayoutEffect)((function(){if(l.current){var e=function(e){for(var t=e.relatedTarget;t&&t!==l.current&&a(t);)t=t.parentElement;t!==l.current&&a(t)&&s()};return l.current.addEventListener("mouseover",r),l.current.addEventListener("mouseout",e),function(){l.current&&(l.current.removeEventListener("mouseover",r),l.current.removeEventListener("mouseout",e))}}}),t),l};t.useHovered=function(e,t){var r=(void 0===e?{}:e).isOut;void 0===t&&(t=[]);var n=(0,i.useState)(!1),o=n[0],a=n[1];return[s({onHover:function(){return a(!0)},onBlur:function(){return a(!1)},isOut:r},t),o]},t.default=s},96380:(e,t)=>{t.__esModule=!0,t.priorities=t.parts=t.labels=t.enums=t.colors=t.check=void 0;var r=t.enums={E:1,O:2,P:4};t.parts=Object.keys(r),t.check=function(e,t){return e&t},t.colors={P:"RGB(126, 189, 194)",O:"RGB(243, 223, 162)",E:"RGB(232, 185, 219)"},t.priorities={E:0,P:1,O:2},t.labels={E:"Empty data",P:"Partial data",O:"Overflow"}},25772:(e,t)=>{t.__esModule=!0,t.setsAreEqual=t.filter=t.default=void 0;t.setsAreEqual=function(e,t){return e.size===t.size&&Array.from(e).every((function(e){return t.has(e)}))};var r=t.filter=function(e,t){var r=t.omit,i=void 0===r?[]:r,n=t.keep,s=void 0===n?[]:n;return i.length&&s.length?e.filter((function(e){return s.length?s.includes(e):!i.includes(e)})):e};t.default=function e(t,i,n){if(void 0===n&&(n={}),t===i)return!0;if("object"!==typeof t||null===t||"object"!==typeof i||null===i)return!1;var s=r(Object.keys(t),n),o=r(Object.keys(i),n);if(s.length!==o.length)return!1;var a=Object.prototype.hasOwnProperty.bind(i);return!s.some((function(r){return!a(r)||t[r]!==i[r]&&!e(t[r],i[r],n)}))}},22753:(e,t,r)=>{t.__esModule=!0,t.withoutPrefix=t.useIsHeatmap=t.useGetColor=t.makeGetColor=t.isIncremental=t.isHeatmap=t.heatmapTypes=t.heatmapOrChartType=void 0;var i=r(96540),n=r(16199),s=r(22332),o=t.heatmapTypes={default:"default",disabled:"disabled",incremental:"incremental"},a=t.isHeatmap=function(e){return"heatmap"===(e&&"string"!==typeof e?e.getAttribute("chartType"):e)},l=(t.useIsHeatmap=function(){return"heatmap"===(0,s.useAttributeValue)("chartType")},t.isIncremental=function(e){return a(e)&&e.getAttribute("heatmapType")===o.incremental},/(.+)_(\d+?\.?(\d+)?|\+[Ii]nf)$/),u=(t.heatmapOrChartType=function(e,t){return Array.isArray(e)&&e.length&&e.every((function(e){return e.match(l)}))?"heatmap":t},t.makeGetColor=function(e,t){void 0===t&&(t=1);var r=e.getAttribute("max"),i=function(e){return["rgba(62, 73, 137, "+e+")","rgba(49, 104, 142, "+e+")","rgba(38, 130, 142, "+e+")","rgba(31, 158, 137, "+e+")","rgba(53, 183, 121, "+e+")","rgba(110, 206, 88, "+e+")","rgba(181, 222, 43, "+e+")","rgba(253, 231, 37, "+e+")"]}(t),s=r/(i.length-1),o=(0,n.scaleLinear)().domain(Array.from({length:i.length-1},(function(e,t){return t*s}))).range(i);return function(e){return e?o(e):"transparent"}});t.useGetColor=function(e){void 0===e&&(e=1);var t=(0,s.useChart)();return(0,i.useMemo)((function(){return u(t,e)}),[e])},t.withoutPrefix=function(e){return e?e.replace(/.+_(\d+?\.?(\d+)?|\+[Ii]nf)$/,"$1"):e}},10238:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.after,r=e.before,i=void 0===r?0:r,n=i-t;if(n<=60){var s=60-n,o=s/2;return{fixedAfter:t-o-s%2,fixedBefore:i+o}}return{fixedAfter:t,fixedBefore:i}}},85872:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(){var e=new Set;return{add:function(t){var r;return function(){for(var i=arguments.length,n=new Array(i),s=0;s<i;s++)n[s]=arguments[s];e.delete(r),clearTimeout(r),r=setTimeout((function(){return t.apply(void 0,n)})),e.add(r)}},clear:function(){return Array.from(e).forEach((function(e){return clearTimeout(e)}))}}}},39701:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=s?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(i,o,a):i[o]=e[o]}return i.default=e,r&&r.set(e,i),i}(r(75949));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function s(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var a="keydown",l="keyup",u={default:function(e,t){return e.size===t.size&&s(t).every((function(t){return e.has(t)||e.has(i.aliasByCode[t])}))?"all":"none"},intersection:function(e,t){if(0===t.size)return"none";var r=s(t).filter((function(t){return e.has(t)||e.has(i.aliasByCode[t])}));return e.size<=t.size&&r.length===e.size?"all":r}};t.default=function(){var e=[],t=new Set,r=function(r){var n=r.code||i.default[r.keyCode||r.which],s=r.type;if(s===a){if(t.has(n))return;t.add(n)}e.some((function(e){return e(s)})),s===l&&t.has(n)&&t.delete(n)};return{onKeyChange:function(r,i,n){var s=void 0===n?{}:n,o=s.fireOn,l=void 0===o?a:o,c=s.policy,d=s.allPressed,f=void 0===d||d,p=new Set(Array.isArray(r)?r:[r]),m=u[c]||u.intersection;e.push((function(e){if(e!==l)return!1;var r=m(p,t);return!(f&&"all"!==r||"none"===r)&&(i(),!0)}));var g=e.length-1;return function(){return e.splice(g,1)}},initKeyboardListener:function(){window.addEventListener("keydown",r),window.addEventListener("keyup",r)},clearKeyboardListener:function(){window.removeEventListener("keydown",r),window.removeEventListener("keyup",r),t=new Set},eventListener:r}}},75949:(e,t)=>{t.__esModule=!0,t.default=t.codesByAlias=t.aliasByCode=void 0;t.aliasByCode={ShiftLeft:"Shift",ShiftRight:"Shift",ControlLeft:"Control",ControlRight:"Control",AltLeft:"Alt",AltRight:"Alt",MetaLeft:"Meta",MetaRight:"Meta"},t.codesByAlias={Shift:["ShiftLeft","ShiftRight"],Alt:["AltLeft","AltRight"],Control:["ControlLeft","ControlRight"],Meta:["MetaLeft","MetaRight"]},t.default={8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",48:"Digit0",49:"Digit1",50:"Digit2",51:"Digit3",52:"Digit4",53:"Digit5",54:"Digit6",55:"Digit7",56:"Digit8",57:"Digit9",65:"KeyA",66:"KeyB",67:"KeyC",68:"KeyD",69:"KeyE",70:"KeyF",71:"KeyG",72:"KeyH",73:"KeyI",74:"KeyJ",75:"KeyK",76:"KeyL",77:"KeyM",78:"KeyN",79:"KeyO",80:"KeyP",81:"KeyQ",82:"KeyR",83:"KeyS",84:"KeyT",85:"KeyU",86:"KeyV",87:"KeyW",88:"KeyX",89:"KeyY",90:"KeyZ",91:"Meta",92:"Meta",93:"ContextMenu",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",106:"NumpadMultiply",107:"NumpadAdd",109:"NumpadSubtract",110:"NumpadDecimal",111:"NumpadDivide",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",181:"VolumeMute",182:"VolumeDown",183:"VolumeUp",186:"Semicolon",187:"Equal",188:"Comma",190:"Period",191:"Slash",192:"Backquote",219:"BracketLeft",220:"Backslash",221:"BracketRight",222:"Quote"}},28973:(e,t)=>{t.__esModule=!0,t.unregister=t.default=void 0;t.unregister=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(){return t.forEach((function(e){return e&&e()}))}},t.default=function(){var e={},t={},r=function(r,i){var n,s;null==(n=t[r])||n.delete(i),null==(s=e[r])||s.delete(i)},i=function e(i,n,s){void 0===s&&(s=[]),t[i]=t[i]||new Set,t[i].add(n),s.unshift((function(){return r(i,n)}));var o=function(){return s.forEach((function(e){return e()}))};return o.on=function(t,r){return e(t,r,s)},o};return{off:r,on:i,once:function(t,n){return i(t,n),e[t]=e[t]||new Set,e[t].add(n),function(){return r(t,n)}},trigger:function(r){for(var i=arguments.length,n=new Array(i>1?i-1:0),s=1;s<i;s++)n[s-1]=arguments[s];var o=t[r];null==o||o.forEach((function(e){return e.apply(void 0,n.concat([r]))}));var a=e[r];null!=a&&a.size&&(t[r]=a.forEach((function(e){a.delete(e),o.delete(e)})))},offAll:function(){t={},e={}}}}},22716:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(25772))&&i.__esModule?i:{default:i};function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var l=function(e,t){return Object.assign(t,e)};t.default=function(e,t,r){void 0===r&&(r=l);var i=new Set(t);return{updatePristine:function(t,s,a){if(i.has(s)){if(!(s in t[e])&&!(0,n.default)(t[s],a)){var l,u,c=t[e];return r(((u={})[e]=o(o({},t[e]),{},((l={})[s]=t[s],l)),u),t),c}if((0,n.default)(t[e][s],a)){var d,f=t[e],p=o({},t[e]);return delete p[s],r(((d={})[e]=p,d),t),f}}},resetPristine:function(t){var i;r(o(o({},t[e]),{},((i={})[e]={},i)),t)}}}},58370:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e,t,r){var i,n=!0,s=new ResizeObserver((function(){if(n)return n=!1,void(i=setTimeout((function(){return null==r?void 0:r()}),200));clearTimeout(i),i=setTimeout(t,200)}));return s.observe(e),function(){clearTimeout(i),s&&s.disconnect(),s=null}}},86263:(e,t)=>{t.__esModule=!0,t.shortForLength=t.default=void 0;var r=function(e){if(/\d/.test(e)||e.length<4)return e;var t=e.substring(1,e.length-1);return[e.charAt(0),t.replace(/([aeiou])/gi,""),e.charAt(e.length-1)].join("")},i=function(e){return e.replace(/(\w)\1+/g,"$1")},n=function e(t,r){for(var i=arguments.length,n=new Array(i>2?i-2:0),s=2;s<i;s++)n[s-2]=arguments[s];return t?t.replace(/([\w\d].+?)([\s-_@])([\w\d].+)+?/,(function(t,i,s,o){return""+r.apply(void 0,[i].concat(n))+s+e.apply(void 0,[o,r].concat(n))})):""},s=function(e,t){if(void 0===t&&(t=0),!e||"string"!==typeof e)return e;switch(t){case 0:return e.trim();case 1:return n(e,i);case 2:return n(e,r);default:return function(e,t){var r=Math.floor((e.length-t)/2);return e.substring(0,r)+"..."+e.substring(e.length-r)}(e,t)}};t.shortForLength=function(e,t){if(void 0===t&&(t=30),!e||"string"!==typeof e)return e;for(var r=0;e.length>t;)e=s(e,r),r+=1;return e},t.default=s},91665:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){return e>-10&&e<10?"0"+e:""+e}},24830:(e,t,r)=>{t.A=void 0;var i=_(r(80509)),n=_(r(10732)),s=_(r(87903)),o=_(r(67137)),a=_(r(68637)),l=_(r(19318)),u=_(r(42872)),c=_(r(82256)),d=_(r(78894)),f=_(r(61201)),p=_(r(59184)),m=_(r(28778)),g=_(r(55675)),b=_(r(66739)),h=_(r(5617)),y=_(r(97761)),v=["attributes"];function _(e){return e&&e.__esModule?e:{default:e}}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?O(Object(r),!0).forEach((function(t){w(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function w(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.A=function(e){void 0===e&&(e={});var t=e,r=t.attributes,_=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(t,v);return(0,c.default)(A({ui:{dygraph:i.default,easypiechart:n.default,gauge:s.default,groupBoxes:u.default,number:o.default,d3pie:a.default,bars:l.default},plugins:{move:m.default,unitConversion:d.default,hover:f.default,pan:p.default,highlight:g.default,select:b.default,selectVertical:h.default,play:y.default},attributes:A({_v:"v3",chartLibrary:"dygraph",navigation:"pan",after:-900,overlays:{proceeded:{type:"proceeded"}}},r)},_))}},82256:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=a(r(28973)),n=a(r(21341)),s=a(r(1729)),o=a(r(72385));function a(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e){var t,r=e.ui,a=e.plugins,l=void 0===a?{}:a,c=e.attributes,d=e.on,f=void 0===d?{}:d,p=(0,i.default)(),m={ui:r},g={},b=function(e,t){g[e]=t(_)},h=function(e){return(0,s.default)(u({sdk:_},e))},y=function(e){var t=e.getAttribute("chartLibrary")||c.chartLibrary;return t in m.ui||console.error('Chart library "'+t+'" does not exist in '+Object.keys(m.ui).join(", ")),(0,m.ui[t])(_,e)},v=function(e){return(0,n.default)(u({sdk:_},e))},_=u(u({},p),{},{getRoot:function(){return t},register:b,unregister:function(e){g[e](),delete g[e]},addUI:function(e,t){m.ui[e]=t},makeChartCore:h,makeChartUI:y,makeChart:function(e){void 0===e&&(e={});var t=h(e),r=y(t);return t.setUI(u(u({},r),e.ui),"default"),t},makeContainer:v,getNode:function(e,r){return t.getNode(e,r)},getNodes:function(e,r){return t.getNodes(e,r)},appendChild:function(e,r){var i=(void 0===r?{}:r).inherit,n=void 0===i||i;return t.appendChild(e,{inherit:n})},removeChild:function(e){return t.removeChild(e)},version:function(){return m._v},ui:r});return t=v({attributes:u(u({id:"root"},o.default),c)}),Object.keys(f).forEach((function(e){return p.on(e,f[e])})),Object.keys(l).forEach((function(e){return b(e,l[e])})),_}},72385:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=a(r(13752)),n=a(r(92815)),s=a(r(72582)),o=a(r(17323));function a(e){return e&&e.__esModule?e:{default:e}}t.default={id:"",name:"",chartLibrary:"",theme:"default",host:"",description:null,before:0,after:0,title:null,min:0,max:0,pristineStaticValueRange:void 0,valueRange:null,staticValueRange:null,getValueRange:function(e,t){var r=(void 0===t?{}:t).dygraph,i=void 0!==r&&r;if(!e)return[null,null];var n=e.getAttributes(),s=n.min,o=void 0===s?null:s,a=n.max,l=void 0===a?null:a,u=n.valueRange,c=void 0===u?[null,null]:u,d=n.staticValueRange;if(d)return d;if(!c||null===c[0]&&null===c[1])return i?[null,null]:[o,l];var f=c[0],p=c[1];if(i){var m=e.getAttributes(),g=m.groupBy,b=m.aggregationMethod;if(g.length>1||"dimension"!==g[0]||"avg"!==b)return[null,null]}return[null===f||f>o?o:f,null===p||p<l?l:p]},loaded:!1,loading:!1,processing:!1,updatedAt:0,fetchStartedAt:0,focused:!1,active:!1,sparkline:!1,chartType:"",selectedLegendDimensions:[],contextItems:[],contextScope:[],nodesScope:[],selectedContexts:[],selectedDimensions:[],selectedLabels:[],selectedNodes:[],selectedInstances:[],dimensionIds:[],versions:{},enabledHover:!0,syncHover:!0,hoverX:null,navigation:"",enabledNavigation:!0,enabledResetRange:!0,syncPanning:!0,panning:!1,hovering:!1,syncHighlight:!0,highlighting:!1,desiredUnits:"auto",syncUnits:!1,unitsConversionMethod:"",unitsConversionDivider:-1,unitsConversionFractionDigits:0,unitsConversion:"",dbUnitsConversionMethod:"",dbUnitsConversionDivider:-1,dbUnitsConversionFractionDigits:0,dbUnitsConversion:"",temperature:"celsius",secondsAsTime:!0,timezone:void 0,syncTimezone:!0,dimensionsSort:"default",autofetch:!1,autofetchOnWindowBlur:!1,paused:!1,pixelsPerPoint:3,legend:!0,groupingMethod:"average",groupingTime:0,urlOptions:[],eliminateZeroDimensions:!0,fullscreen:!1,overlays:{},showingInfo:!1,colors:[],height:"",enabledYAxis:!0,width:"",enabledXAxis:!0,hasToolbox:!0,expandable:!1,hasYlabel:!0,yAxisLabelWidth:60,axisLabelFontSize:10,outOfLimits:!1,aggregationMethod:"sum",postAggregationMethod:"avg",groupBy:["dimension"],groupByLabel:[],postGroupBy:["selected"],postGroupByLabel:[],dimensionsSortBy:[{id:"contribution",desc:!0}],instancesSortBy:[{id:"contribution",desc:!0}],nodesSortBy:[{id:"contribution",desc:!0}],groupBySortBy:[],labelsSortBy:[{id:"contribution",desc:!0}],nodesExpanded:{},groupByExpanded:{},labelsExpanded:{},pristine:{},themeGridColor:["#E4E8E8","#212727"],themeCrosshair:["#536775","#536775"],themeTrackColor:["#DBE1E1","#353F3F"],themeScaleColor:["#F7F8F8","#2B3136"],themeEasyPieTrackColor:["#DBE1E1","#353F3F"],themeEasyPieScaleColor:["#B7C2C2","#424E4E"],themeGaugePointer:["#8F9EAA","#536775"],themeGaugeStroke:["#DBE1E1","#353F3F"],themeD3pieSmallColor:["#536775","#CFD5DA"],themeD3pieStroke:["#DBE1E1","#353F3F"],themeInnerLabelColor:["#F7F8F8","#282827"],themeLabelColor:["#35414a","#ffffff"],themeBackground:["#ffffff","#282C34"],themeNeutralBackground:["#DBE1E1","#353F3F"],themeWarningBackground:["#FFCC26","#FFCC26"],themeErrorBackground:["#F95251","#F95251"],themeAnomalyScaleColor:["#9F75F9","#9F75F9"],themeGroupBoxesMin:["#E4F1FF","#000C18"],themeGroupBoxesMax:["#0075F2","#0075F2"],themeLoadingStart:["#BFE5C6","#2f5446"],themeNetdata:["#00AB44","#00AB44"],themeShadow:["rgba(9, 30, 66, 0.15)","rgba(0, 0, 0, 0.4)"],legendScroll:0,initializedFilters:!1,error:null,agent:!0,toolboxElements:[s.default,i.default,n.default],toolboxProps:{},leftHeaderElements:[o.default],expanded:!1,expandedHeight:300,viewDimensions:{ids:[],names:[],count:0,priorities:[],grouped:[],algorithm:"absolute"},units:"",viewUpdateEvery:0,updateEvery:0,firstEntry:0,lastEntry:0,dimensions:[],labels:[],nodes:[],instances:[],alerts:[],weightsAction:"values",weightsTab:"window",renderedAt:null,fetchAt:null,dimensionsOnNonDimensionGrouping:null,en:{instance:{one:"instance",other:"instances"}},bearer:null,xNetdataBearer:null,showPostAggregations:!1}},12289:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48323);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a="*";t.default=function(e,t){var r=e.getAttributes().host,n=function(e){var t=e.getAttributes(),r=t.selectedContexts,n=t.context,o=t.nodesScope,l=t.contextScope,u=t.selectedNodes,c=t.selectedInstances,d=t.selectedDimensions,f=t.selectedLabels,p=t.aggregationMethod,m=t.groupBy,g=t.groupByLabel,b=t.postGroupBy,h=t.postGroupByLabel,y=t.postAggregationMethod,v=t.showPostAggregations,_=(0,i.getChartURLOptions)(e);return s(s({},(0,i.getChartPayload)(e)),{},{options:_.join("|"),contexts:(Array.isArray(r)?r.join("|"):"")||n||a,scope_contexts:(Array.isArray(l)?l.join("|"):"")||a,scope_nodes:(Array.isArray(o)?o.join("|"):"")||a,nodes:(Array.isArray(u)?u.join("|"):"")||a,instances:(Array.isArray(c)?c.join("|"):"")||a,dimensions:(Array.isArray(d)?d.join("|"):"")||a,labels:(Array.isArray(f)?f.join("|"):"")||a,"group_by[0]":m.join("|"),"group_by_label[0]":g.join("|"),"aggregation[0]":p},v&&!!b.length&&{"group_by[1]":b.join("|"),"group_by_label[1]":h.join("|"),"aggregation[1]":y})}(e),o=new URLSearchParams(n).toString();return fetch(r+"/data?"+o,t).then((function(e){return e.json()}))}},1820:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48323);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a="*";t.default=function(e,t){var r=e.getAttributes().host,n=function(e){var t=e.getAttributes(),r=t.selectedContexts,n=t.context,o=t.nodesScope,l=t.contextScope,u=t.selectedNodes,c=t.selectedInstances,d=t.selectedDimensions,f=t.selectedLabels,p=t.aggregationMethod,m=(0,i.getChartURLOptions)(e),g=e.getAttribute("groupByLabel").join("|");return s(s({format:"json",options:m.join("|"),contexts:r.join("|")||n||a,scope_contexts:l.join("|")||a,scope_nodes:o.join("|")||a,nodes:u.join("|")||a,instances:c.join("|")||a,dimensions:d.join("|")||a,labels:f.join("|")||a,group_by:e.getAttribute("groupBy").join("|")},!!g&&{group_by_label:g}),{},{aggregation:p},(0,i.getChartPayload)(e))}(e),o=new URLSearchParams(n).toString();return fetch(r+"/weights?"+o,t).then((function(e){return e.json()}))}},75849:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48323);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=["*"];t.default=function(e,t){var r=e.getAttributes().host,n=function(e){var t=e.getAttributes(),r=t.selectedContexts,n=t.context,o=t.nodesScope,l=t.contextScope,u=t.selectedNodes,c=t.selectedInstances,d=t.selectedDimensions,f=t.selectedLabels,p=t.aggregationMethod,m=t.groupBy,g=t.groupByLabel,b=t.postGroupBy,h=t.postGroupByLabel,y=t.postAggregationMethod,v=t.showPostAggregations,_=(0,i.getChartURLOptions)(e),O=(0,i.getChartPayload)(e),A=O.after,w=O.before,P=O.points,k=O.time_group,j=O.time_resampling;return{format:O.format,options:_,scope:{contexts:Array.isArray(l)&&l.length?l:a,nodes:Array.isArray(o)&&o.length?o:[]},selectors:{contexts:Array.isArray(r)&&r.length?r:n?[n]:a,nodes:Array.isArray(u)&&u.length?u:a,instances:Array.isArray(c)&&c.length?c:a,dimensions:Array.isArray(d)&&d.length?d:a,labels:Array.isArray(f)&&f.length?f:a},aggregations:{metrics:[{group_by:m,group_by_label:g,aggregation:p},v&&!!b.length&&{group_by:b,group_by_label:h,aggregation:y}].filter(Boolean),time:{time_group:k,time_resampling:j}},window:s(s({after:A},A>0&&{before:w}),{},{points:P})}}(e);return fetch(r+"/data",s({method:"POST",body:JSON.stringify(n)},t)).then((function(e){return e.json()}))}},12084:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(48323);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a="*";t.default=function(e,t){var r=e.getAttributes().host,n=function(e){var t=e.getAttributes(),r=t.selectedContexts,n=t.context,o=t.nodesScope,l=t.contextScope,u=t.selectedNodes,c=t.selectedInstances,d=t.selectedDimensions,f=t.selectedLabels,p=t.aggregationMethod,m=(0,i.getChartURLOptions)(e),g=e.getAttribute("groupByLabel").join("|");return s(s({format:"json",options:m.join("|"),contexts:r.join("|")||n||a,scope_contexts:l.join("|")||a,scope_nodes:o.join("|")||a,nodes:u.join("|")||a,instances:c.join("|")||a,dimensions:d.join("|")||a,labels:f.join("|")||a,group_by:e.getAttribute("groupBy").join("|")},!!g&&{group_by_label:g}),{},{aggregation:p},(0,i.getChartPayload)(e))}(e),o=new URLSearchParams(n).toString();return fetch(r+"/weights?"+o,t).then((function(e){return e.json()}))}},48323:(e,t)=>{function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function i(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}t.__esModule=!0,t.pointMultiplierByChartType=t.getChartURLOptions=t.getChartPayload=t.errorCodesToMessage=void 0;var o={groupBoxes:["group-by-labels"],default:[]},a=(t.getChartURLOptions=function(e){var t=e.getAttributes(),r=t.eliminateZeroDimensions,i=t.urlOptions,s=void 0===i?[]:i,a=t.chartLibrary,l=o[a]||o.default;return[].concat(n(s),["jsonwrap",r&&"nonzero","flip","ms","jw-anomaly-rates","minify"],n(l)).filter(Boolean)},t.pointMultiplierByChartType={multiBar:.1,stackedBar:.1,heatmap:.7,default:.7});t.getChartPayload=function(e){var t=e.getUI(),n=e.getAttribute("containerWidth")||t.getChartWidth(),s=e.getAttributes(),o=s.after,l=s.before,u=s.groupingMethod,c=s.groupingTime,d=s.renderedAt,f=s.hovering,p=s.fetchStartedAt,m=s.chartType,g=s.pixelsPerPoint,b=a[m]||a.default,h=f&&d?Math.ceil(d/1e3):Math.ceil(p/1e3),y=o>0?{after:o,before:l}:{after:h+o,before:h},v=Math.round(n/g*b);return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({points:isNaN(v)?300:v,format:"json2",time_group:u,time_resampling:c},y)},t.errorCodesToMessage={ErrAllNodesFailed:"All agents failed to return data"}},21666:(e,t,r)=>{t.__esModule=!0;var i={fetchChartData:!0,fetchChartWeights:!0};t.fetchChartWeights=t.fetchChartData=void 0;var n=u(r(12289)),s=u(r(1820)),o=u(r(75849)),a=u(r(12084)),l=r(48323);function u(e){return e&&e.__esModule?e:{default:e}}Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===l[e]||(t[e]=l[e]))}));t.fetchChartData=function(e,t){return e.getAttributes().agent?(0,n.default)(e,t):(0,o.default)(e,t)},t.fetchChartWeights=function(e,t){return e.getAttributes().agent?(0,s.default)(e,t):(0,a.default)(e,t)}},17399:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=r(22753),s=((i=r(43411))&&i.__esModule,["summary","functions","details","totals","db","view","result"]);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var d=function e(t,r,i){var n=r[0],s=r.slice(1);return t[n]||s.length?(t[n]||(t[n]={}),t[n]=e(t[n],s,i),t):(t[n]=i,t)},f=function(e){var t=e.data.reduce((function(t,r){var i=function(e,t){return e.reduce((function(r,i,n){return r.values.push(0===n?i:i[t.value]),r.all.push(0===n?{value:i}:Object.keys(t).reduce((function(e,r){return e[r]=i[t[r]],e}),{})),n===e.length-1&&(r.values=[].concat(u(r.values),[null,null]),r.all=[].concat(u(r.all),[{},{}])),r}),{values:[],all:[]})}(r,e.point);return t.data.push(i.values),t.all.push(i.all),t}),{data:[],all:[]}),r=e.labels.reduce((function(e,t,r){if(0===r)return e;var i=t.split(",");return d(e,i,t)}),{});return a(a({labels:[].concat(u(e.labels),["ANOMALY_RATE","ANNOTATIONS"])},t),{},{tree:r})};t.default=function(e){var t=e.summary,r=t.nodes,i=void 0===r?[]:r,o=t.instances,l=void 0===o?[]:o,u=t.dimensions,c=void 0===u?[]:u,d=t.labels,p=void 0===d?[]:d,m=t.alerts,g=void 0===m?[]:m,b=e.functions,h=void 0===b?[]:b,y=e.details,v=void 0===y?{}:y,_=e.totals,O=_.contexts,A=void 0===O?{}:O,w=_.dimensions,P=void 0===w?{}:w,k=_.instances,j=void 0===k?{}:k,x=_.label_key_values,C=void 0===x?{}:x,S=_.nodes,M=void 0===S?{}:S,D=e.db,B=D.update_every,E=D.first_entry,T=D.last_entry,L=D.tiers,I=D.per_tier,R=D.dimensions,F=D.units,N=e.view,W=N.title,G=N.update_every,z=N.units,V=N.dimensions,H=N.chart_type,K=N.min,U=N.max,q=e.result,X=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,s),Y={},Z={};i.forEach((function(e){Y[e.nd||e.mg]=e,Z[e.ni]=e.nd||e.mg}));var $=[],J={};c.forEach((function(e){J[e.id]=e,$.push(e.id)}));var Q=null,ee=l.reduce((function(e,t){return void 0===t&&(t={}),e[Q=t.id+"@"+(Y[Z[t.ni]].nd||Y[Z[t.ni]].mg)]=a({},t),e[Q].nm=(t.nm||t.id)+"@"+Y[Z[t.ni]].nm,e}),{});return a(a({},X),{},{result:f(q),updateEvery:B,viewUpdateEvery:G,firstEntry:E,lastEntry:T,units:z,chartType:(0,n.heatmapOrChartType)(V.ids,H),title:W,tiers:L,perTier:I,nodes:Y,nodesIndexes:Z,instances:ee,dimensions:J,dimensionIds:$,labels:p.reduce((function(e,t){return e[t.id]=t,e}),{}),alerts:g.reduce((function(e,t){return e[t.name]=t,e}),{}),viewDimensions:V,dbDimensions:R,dbUnits:F,details:v,functions:h,contextsTotals:A,dimensionsTotals:P,instancesTotals:j,labelsTotals:C,nodesTotals:M,min:K,max:U})}},19443:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=new Set(["%","percentage","percent","rotations/min","ratio","seconds","seconds ago","milliseconds","millisec","c[CPU]","{rotation}/min","1","s","ms","log2 s","minutes","hours","interval","ticks","celsius","c","mhz","hz","volts","kwh","ampere","amps","dbm","value","stratum","units","watt","temperature","random number","rpm","quadro","adv/item","multiplier","geforce","min","h","{tick}","Cel","Hz","MHz","V","A","W","dB[mW]","1","{stratum}","Cel","[degF]","{rotation}/min"]),i=/(%|\/operation|\/run| run|\/request)/;t.default=function(e){var t=e.getUnits();if(!t)return"avg";var n=t.toLowerCase();if(r.has(t)||i.test(n))return"avg";var s=e.getUnitSign();return n=s.toLowerCase(),r.has(s)||i.test(n)?"avg":"sum"}},90872:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.getAttributes(),r=t.selectedDimensions,i=t.groupBy,n=t.dimensionsOnNonDimensionGrouping;return r.length||i.includes("dimension")?r:n||r}},73760:(e,t,r)=>{t.__esModule=!0,t.stackedAggregations=t.default=void 0;var i=s(r(19443)),n=s(r(90872));function s(e){return e&&e.__esModule?e:{default:e}}t.stackedAggregations={avg:!0,sum:!0},t.default=function(e){var t=e.getAttribute("dimensionIds");return{aggregationMethod:e.getAttribute("aggregationMethod")||(0,i.default)(e),selectedDimensions:(0,n.default)(e),initializedFilters:!!t.length}}},36358:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=d(r(25772)),n=c(r(87306)),s=c(r(73760)),o=r(22753),a=d(r(49628)),l=["value"];function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}function d(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){m(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function m(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e){var t=e.getAttribute("chartType"),r=t,u=function(t){var r=t.value,i=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(t,l);return(0,a.default)(e)(p(p({},i),{},{value:r&&"string"!==typeof r?JSON.stringify(r):r}))},c={node:!0,instance:!0,dimension:!0,"percentage-of-instance":!0,selected:!0},d=function(n){var o=n.filter((function(e){return e.isLabel})),a=o.map((function(e){return e.value})),l=n.reduce((function(e,t){return c[t.value]?(e.push(t.value),e):e}),[]);o.length&&l.push("label"),l.length||(l=["dimension"]),(0,i.default)(l,e.getAttribute("groupBy"))&&(0,i.default)(a,e.getAttribute("groupByLabel"))||(e.updateAttributes({groupByLabel:a,groupBy:l,processing:!0}),e.updateAttributes((0,s.default)(e)),e.fetch({processing:!0}).then((function(){return function(i){if(e.updateAttribute("selectedLegendDimensions",[]),!e.getAttribute("selectedChartType")){if(i.length>1||"dimension"!==i[0]){r=r||e.getAttribute("chartType");var n=e.getAttribute("aggregationMethod");return e.updateAttribute("chartType",s.stackedAggregations[n]?"stacked":t)}e.updateAttributes({chartType:r,processing:!0}),r=t}}(e.getAttribute("groupBy"))})),u({chartAction:"chart-groupby-change",value:n}))},f={dygraph:!0,easypiechart:!0,gauge:!0,number:!0,d3pie:!0,bars:!0,groupBoxes:!0};return{updateGroupByAttribute:d,updatePostGroupByAttribute:function(t){var r=t.filter((function(e){return e.isLabel})),n=r.map((function(e){return e.value})),o=t.reduce((function(e,t){return c[t.value]?(e.push(t.value),e):e}),[]);r.length&&o.push("label"),(0,i.default)(o,e.getAttribute("postGroupBy"))&&(0,i.default)(n,e.getAttribute("postGroupByLabel"))||(e.updateAttributes({postGroupByLabel:n,postGroupBy:o,processing:!0}),e.updateAttributes((0,s.default)(e)),e.fetch({processing:!0}),u({chartAction:"chart-postgroupby-change",value:t}))},updateChartTypeAttribute:function(t){var r=e.getAttribute("chartLibrary"),n=e.getAttribute("groupBy");f[t]?(e.updateAttributes({chartLibrary:t,processing:!0}),e.getUI().unmount(),e.setUI(p(p({},e.sdk.makeChartUI(e)),e.ui||{}),"default")):(e.updateAttributes({chartLibrary:"dygraph",selectedChartType:t,chartType:t,processing:!0}),"dygraph"!==r&&(e.getUI().unmount(),e.setUI(p(p({},e.sdk.makeChartUI(e)),e.ui||{}),"default"))),(0,o.isHeatmap)(t)&&(d(["dimension"]),!(0,i.default)(n,e.getAttribute("groupBy")))||(e.trigger("fetch",{processing:!0}),u({chartAction:"chart-type-change",value:t}))},updateNodesAttribute:function(t){var r=t.reduce((function(e,t){return t.isInstance?e.selectedInstances.push(t.value):e.selectedNodes.push(t.value),e}),{selectedNodes:[],selectedInstances:[]}),n=r.selectedNodes,s=r.selectedInstances,o=!(0,i.default)(n,e.getAttribute("selectedNodes"));o&&e.updateAttributes({selectedNodes:n,processing:!0});var a=!(0,i.default)(s,e.getAttribute("selectedInstances"));a&&e.updateAttributes({selectedInstances:s,processing:!0}),(a||o)&&e.trigger("fetch",{processing:!0}),u({chartAction:"chart-node-change",value:t})},updateInstancesAttribute:function(t){var r=t.map((function(e){return e.value}));(0,i.default)(r,e.getAttribute("selectedInstances"))||(e.updateAttributes({selectedInstances:r,processing:!0}),e.trigger("fetch",{processing:!0}),u({chartAction:"chart-instance-change",value:t}))},updateDimensionsAttribute:function(t){var r=t.map((function(e){return e.value}));(0,i.default)(r,e.getAttribute("selectedDimensions"))||(e.updateAttributes({selectedDimensions:r,processing:!0}),e.trigger("fetch",{processing:!0}),u({chartAction:"chart-dimensions-change",value:t}))},updateLabelsAttribute:function(t){var r=t.map((function(e){return e.value}));(0,i.default)(r,e.getAttribute("selectedLabels"))||(e.updateAttributes({selectedLabels:r,processing:!0}),e.trigger("fetch",{processing:!0}),u({chartAction:"chart-labels-change",value:t}))},updateAggregationMethodAttribute:function(t){e.getAttribute("aggregationMethod")!==t&&(e.updateAttributes({aggregationMethod:t,processing:!0}),e.trigger("fetch",{processing:!0}),u({chartAction:"chart-aggregation-method-change",value:t}))},updatePostAggregationMethodAttribute:function(t){e.getAttribute("postAggregationMethod")!==t&&(e.updateAttributes({postAggregationMethod:t,processing:!0}),e.trigger("fetch",{processing:!0}),u({chartAction:"chart-aggregation-method-change",value:t}))},updateTimeAggregationMethodAttribute:function(t){var r=t.alias,i=t.method,n=r?""+i+r:i;e.getAttribute("groupingMethod")!==n&&(e.updateAttributes({groupingMethod:n,processing:!0}),e.trigger("fetch",{processing:!0}),u({chartAction:"chart-time-aggregation-method-change",value:n}))},updateContextScopeAttribute:function(t){e.getAttribute("contextScope")[0]!==t&&(e.updateAttributes({contextScope:[t],processing:!0}),e.updateAttributes((0,s.default)(e)),e.trigger("fetch",{processing:!0}),u({chartAction:"chart-context-scope-change",value:t}))},resetPristine:function(){var t=e.getAttributes(),r=p({},t[n.pristineKey]),i="chartLibrary"in r&&t.chartLibrary!==r.chartLibrary;n.default.reset(t),e.attributeListeners.trigger(n.pristineKey,t[n.pristineKey],r),e.sdk.trigger("pristineChanged",e,n.pristineKey,t[n.pristineKey],r),Object.keys(r).forEach((function(i){return e.attributeListeners.trigger(i,t[i],r[i])})),i&&(e.getUI().unmount(),e.setUI(p(p({},e.sdk.makeChartUI(e)),e.ui||{}),"default")),e.trigger("fetch",{processing:!0})},removePristine:function(){var t=e.getAttribute(n.pristineKey),r={};e.updateAttribute(n.pristineKey,r),e.sdk.trigger("pristineChanged",e,n.pristineKey,r,t)},toggleFullscreen:function(){var t=e.getAttribute("fullscreen");e.updateAttribute("fullscreen",!t)}}}},1729:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=p(r(39701)),n=p(r(85872)),s=p(r(93724)),o=p(r(55043)),a=r(21666),l=p(r(83334)),u=p(r(36358)),c=p(r(86279)),d=p(r(21452)),f=p(r(74210));function p(e){return e&&e.__esModule?e:{default:e}}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function b(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var h={default:0,dark:1},y=function(){return function(e){return e}};t.default=function(e){var t=void 0===e?{}:e,r=t.sdk,p=t.parent,m=t.getChart,b=void 0===m?a.fetchChartData:m,v=t.attributes,_=t.makeTrack,O=void 0===_?y:_,A=(0,n.default)(),w=(0,s.default)({sdk:r,parent:p,attributes:v});w.getChart=b;var P=null;w.getRoot=function(){return r.getRoot()},w.backoffMs=null,w.backoff=function(e){if(w)if(e)w.backoffMs=e;else{var t=w.backoffMs?2*w.backoffMs:w.getUpdateEvery();w.backoffMs=t>3e4?3e4:t}};var k={};w.getUpdateEvery=function(){if(w){var e=w.getAttributes(),t=e.loaded,r=e.viewUpdateEvery,i=e.updateEvery;return r?1e3*r:t?1e3*i||1e3:0}};var j=null,x=null,C=null,S=null;w.getDateWindow=function(){var e=w.getAttributes(),t=e.after,i=e.before,n=e.renderedAt,s=r.getRoot().getAttribute("fetchAt")||Date.now();return x===t&&C===n&&S===s?j:(x=t,C=n,S=s,j=t>0?[1e3*t,1e3*i]:[(n||s)+1e3*t,n||s])},w.startAutofetch=function(){if(w){var e=w.getAttributes(),t=e.fetchStartedAt,r=e.loading,i=e.autofetch,n=e.active;if(i&&!r&&n&&!w.getRoot().getAttribute("paused"))if(0!==t){var s=Date.now()-t,o=w.getUpdateEvery(),a=s/o;if(Math.floor(a)>=1)return w.lastFetch=w.getDateWindow(),void w.trigger("fetch");var l=w.backoffMs||o-Math.round((a-Math.floor(a))*o);clearTimeout(P),P=setTimeout((function(){w.startAutofetch()}),l)}else w.trigger("fetch")}},w.getUI=function(e){return void 0===e&&(e="default"),k[e]},w.setUI=function(e,t){void 0===t&&(t="default"),k[t]=e};var M=A.add((function(){return Object.keys(k).forEach((function(e){return k[e].render()}))}));w.on("render",M),w.on("hoverChart",M),w.on("blurChart",M),w.getConvertedValue=function(e,t){var r=void 0===t?{}:t,i=r.fractionDigits,n=r.key,s=void 0===n?"units":n;if(w){if(null===e)return"-";var a=w.getAttribute(s+"ConversionMethod"),l=w.getAttribute(s+"ConversionDivider"),u=w.getAttribute(s+"ConversionFractionDigits"),c=(0,o.default)(w,a,e,l);return-1===u?c:Intl.NumberFormat(void 0,{useGrouping:!0,minimumFractionDigits:isNaN(i)?u:i,maximumFractionDigits:isNaN(i)?u:i}).format(c)}},w.focus=function(e){w&&(w.getAttribute("focused")&&w.getAttribute("hovering")||(w.updateAttributes({focused:!0}),r.trigger("hoverChart",w,e),w.trigger("hoverChart",e)))},w.blur=function(e){w&&(w.getAttribute("focused")||w.getAttribute("hovering"))&&(w.updateAttributes({focused:!1}),r.trigger("blurChart",w,e),w.trigger("blurChart",e))},w.activate=function(){w&&(w.updateAttribute("active",!0),r.trigger("active",w,!0))},w.deactivate=function(){w&&(w.updateAttribute("active",!1),r.trigger("active",w,!1))},w.getFirstEntry=function(){return w.getAttribute("firstEntry")},w.getUnits=function(){if(w)return w.getAttributes().units},w.getApplicableNodes=function(e,t){if(!w)return[];if(!w.match(e))return[w];var r=w.getAncestor(e);return r?r.getNodes(e,t):[w]},w.stopAutofetch=function(e){void 0===e&&(e=!0),clearTimeout(P),w&&e&&!w.getAttribute("active")&&w.getAttribute("loaded")&&w.getAttribute("loading")&&w.cancelFetch()},(0,l.default)(w,r),(0,c.default)(w,r),(0,f.default)(w,r),w.type="chart",(0,d.default)(w),w.track=O(w);var D=(0,i.default)(),B=D.onKeyChange,E=D.initKeyboardListener,T=D.clearKeyboardListener;B(["Alt","Shift","KeyF"],(function(){w&&w.updateAttribute("fullscreen",!w.getAttribute("fullscreen"))})),B(["Alt","Shift","KeyR"],(function(){w&&w.resetNavigation()})),w.onAttributeChange("autofetch",(function(e){w&&(e?w.startAutofetch():w.stopAutofetch(!1))})),w.onAttributeChange("active",(function(e){if(w)return e?w.getAttribute("autofetch")?w.startAutofetch():void 0:w.stopAutofetch()})),w.onAttributeChange("focused",(function(e){w&&(e?E():T(),w.invalidateClosestRowCache())})),w.makeChartUI=function(e,t){void 0===t&&(t=w.getAttribute("chartLibrary")),t in r.ui||console.error('Chart library "'+t+'" does not exist in '+Object.keys(r.ui).join(", "));var i=(0,r.ui[t])(r,w);w.setUI(i,e)},w.makeSubChart=function(e){void 0===e&&(e={});var t=r.makeChartCore(e),i=r.makeChartUI(t);return t.setUI(i,"default"),t},w.getThemeIndex=function(){if(w)return h[w.getAttribute("theme")]||h.default},w.getThemeAttribute=function(e){var t;if(w){var r=w.getAttributes(),i=w.getThemeIndex();return(null==(t=r[e])?void 0:t[i])||e}};return w.intl=function(e,t){var r,i;if(void 0===t&&(t=1),!w)return e;var n=w.getAttribute("en");return null!=n&&n[e]?1===t?(null==(r=n[e])?void 0:r.one)||e:(null==(i=n[e])?void 0:i.other)||e+"s":1===t?e:e+"s"},g(g(g({},w),(0,u.default)(w)),{},{destroy:function(){w&&(A&&A.clear(),w.destroy(),w.stopAutofetch(),T(),Object.keys(k).forEach((function(e){return k[e].unmount()})),setTimeout((function(){k=null,w=null}),2e3),w.destroy())},onKeyChange:B,sdk:r})}},86279:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(21666),n=l(r(98702)),s=l(r(73760)),o=l(r(17399)),a=["result","chartType","versions","title"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?u(Object(r),!0).forEach((function(t){d(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f={labels:[],data:[],all:[],tree:{}};t.default=function(e){var t=null,r=f,l=null;e.lastFetch=[null,null],e.getPayload=function(){return r},(0,n.default)(e),e.cancelFetch=function(){return t&&t.abort()};var u=function(){e&&(e.startAutofetch(),e.trigger("finishFetch"),e.trigger("render"))};e.doneFetch=function(t){e.backoffMs=0,setTimeout((function(){var r=(0,o.default)(t),i=r.result,n=r.chartType,p=r.versions,m=r.title,g=function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}(r,a),b=l,h=function(e){var t=(e||f).data;return(null==t?void 0:t.length)||0}(l=i);e.consumePayload(),e.invalidateClosestRowCache(),!e.getAttribute("loaded")&&e.getParent()&&e.getParent().trigger("chartLoaded",e);var y=e.getAttributes();e.setAttributes({chartType:y.selectedChartType||y.chartType||n,title:null===y.title?m:y.title}),e.updateAttributes(c(c({loaded:!0,loading:!1,processing:!1,updatedAt:Date.now(),outOfLimits:!h},g),{},{versions:p,error:null})),e.updateDimensions(),e.getAttribute("initializedFilters")||e.setAttributes((0,s.default)(e)),e.trigger("successFetch",l,b),d(p),u()}))};var d=function(t){if(t&&"object"===typeof t&&e){var r=e.getParent();if(r){var i=t.alerts_hard_hash,n=t.alerts_soft_hash,s=t.contexts_hard_hash,o=t.contexts_soft_hash,a=t.nodes_hard_hash;r.updateAttribute("versions",{alertsHardHash:i,alertsSoftHash:n,contextsHardHash:s,contextsSoftHash:o,nodesHardHash:a})}}},p=function(t){e&&("AbortError"!==(null==t?void 0:t.name)?(e.backoff(),e.trigger("failFetch",t),!e.getAttribute("loaded")&&e.getParent()&&e.getParent().trigger("chartLoaded",e),e.updateAttributes({loaded:!0,loading:!1,processing:!1,updatedAt:Date.now(),error:i.errorCodesToMessage[null==t?void 0:t.errorMessage]||(null==t?void 0:t.errorMessage)||(null==t?void 0:t.message)||"Something went wrong"}),u()):e.updateAttribute("loading",!1))};e.fetch=function(r){var i=(void 0===r?{}:r).processing,n=void 0!==i&&i;if(e){if(e.cancelFetch(),e.updateAttributes({processing:n,loading:!0,fetchStartedAt:Date.now()}),e.trigger("startFetch"),!function(){if(!e)return!1;var t=e.getAttributes(),r=t.firstEntry,i=t.after,n=t.before;return!r||r<=(i>=0?n:Date.now()/1e3)}())return Promise.resolve().then((function(){return p({message:"Exceeds data retention"})}));var s=c({signal:(t=new AbortController).signal},(e.getAttribute("bearer")||e.getAttribute("xNetdataBearer"))&&{headers:c({},e.getAttribute("bearer")?{Authorization:"Bearer "+e.getAttribute("bearer")}:{"X-Netdata-Auth":"Bearer "+e.getAttribute("xNetdataBearer")})});return e.getChart(e,s).then((function(t){var r;return null!=t&&t.errorMsgKey?p(t):Array.isArray(null==t?void 0:t.result)||Array.isArray(null==t||null==(r=t.result)?void 0:r.data)?e.doneFetch(t):p()})).catch(p)}},e.consumePayload=function(){if(r===l||null===l)return!1;var t=r;return r=l,e&&e.trigger("payloadChanged",l,t),!0},e.on("fetch",e.fetch)}},83334:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(81395))&&i.__esModule?i:{default:i},s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(25772)),o=r(22753);function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var c=function(){};t.default=function(e,t){var r=[],i={},a=[],u=[],d=new Set,f=0,p=["sum"];e.isSparkline=function(){return e.getAttribute("sparkline")},e.getHeatmapType=function(){return e.getAttribute("heatmapType")},e.getPayloadDimensionIds=function(){if(e.isSparkline())return p;var t=e.getAttribute("viewDimensions");return l((null==t?void 0:t.ids)||[])};var m=function(t){return void 0===t&&(t=c),function(r,i){return t(r,i)||e.getDimensionName(r).localeCompare(e.getDimensionName(i),void 0,{sensitivity:"accent",ignorePunctuation:!0})}},g={default:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort(m((function(t,r){return e.getDimensionPriority(t)-e.getDimensionPriority(r)})))},nameAsc:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort(m())},nameDesc:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort((function(t,r){return e.getDimensionName(r).localeCompare(e.getDimensionName(t))}))},valueDesc:function(t,r){void 0===t&&(t=e.getPayloadDimensionIds);var i=e.getPayload().data;return r=r||i.length-1,t().sort(m((function(t,i){return e.getDimensionValue(i,r)-e.getDimensionValue(t,r)})))},valueAsc:function(t,r){void 0===t&&(t=e.getPayloadDimensionIds);var i=e.getPayload().data;return r=r||i.length-1,t().sort(m((function(t,i){return e.getDimensionValue(t,r)-e.getDimensionValue(i,r)})))},anomalyDesc:function(t,r){void 0===t&&(t=e.getPayloadDimensionIds);var i=e.getPayload().all;return r=r||i.length-1,t().sort(m((function(t,i){return e.getDimensionValue(i,r,{valueKey:"arp"})-e.getDimensionValue(t,r,{valueKey:"arp"})})))},anomalyAsc:function(t,r){void 0===t&&(t=e.getPayloadDimensionIds);var i=e.getPayload().all;return r=r||i.length-1,t().sort(m((function(t,i){return e.getDimensionValue(t,r,{valueKey:"arp"})-e.getDimensionValue(i,r,{valueKey:"arp"})})))},annotationsDesc:function(t,r){void 0===t&&(t=e.getPayloadDimensionIds);var i=e.getPayload().all;return r=r||i.length-1,t().sort(m((function(t,i){return e.getDimensionValue(i,r,{valueKey:"pa"})-e.getDimensionValue(t,r,{valueKey:"pa"})})))},annotationsAsc:function(t,r){void 0===t&&(t=e.getPayloadDimensionIds);var i=e.getPayload().all;return r=r||i.length-1,t().sort(m((function(t,i){return e.getDimensionValue(t,r,{valueKey:"pa"})-e.getDimensionValue(i,r,{valueKey:"pa"})})))}},b=function(){var t=e.getAttribute("selectedLegendDimensions");u=t.length?a.filter((function(r){return t.includes(r)||t.includes(e.getDimensionName(r))})):a;var r=d;d=new Set(u),(0,s.setsAreEqual)(d,r)||e.trigger("visibleDimensionsChanged")};e.sortDimensions=function(){var t=e.getAttribute("dimensionsSort");a=(g[t]||g.default)(),b(),a&&e.trigger("dimensionChanged")},e.onHoverSortDimensions=function(t,r){return void 0===r&&(r=e.getAttribute("dimensionsSort")),((0,o.isHeatmap)(e)?g.default:g[r]||g.default)((function(){return l(e.getVisibleDimensionIds())}),t)};var h=function(){var t=e.getAttribute("colors"),r=f++%(t.length+n.default.length);return r<t.length?"number"===typeof t[r]?n.default[t[r]]:t[r]:n.default[r-t.length]};e.updateDimensions=function(){var t=e.getPayloadDimensionIds();if(!(0,s.default)(r,t)){r=t;var n=1===e.getAttribute("groupBy").length&&"dimension"===e.getAttribute("groupBy")[0],a=null;i=t.reduce((function(t,r,i){if(n&&!e.getHeatmapType()){var s,l=null==(s=r.match(/(.+)_(\d+?\.?(\d+)?|\+[Ii]nf)$/))?void 0:s[1];e.setAttribute("heatmapType",a&&l!==a||!l?o.heatmapTypes.disabled:null),a===l&&e.setAttribute("heatmapType",o.heatmapTypes[a]||o.heatmapTypes.incremental),a=l}return t[r]=i,t}),{}),n?/latency/.test(e.getAttribute("context"))&&e.setAttribute("heatmapType",o.heatmapTypes.default):e.setAttribute("heatmapType",null),e.sortDimensions(),e.updateColors()}},e.getDimensionIndex=function(e){return i[e]},e.getDimensionIds=function(){return a},e.getVisibleDimensionIds=function(){return u},e.isDimensionVisible=function(e){return d.has(e)};var y=null;e.selectDimensionColor=function(r){void 0===r&&(r="selected");var i=function(){if(y)return y;var t=e.getAttributes(),r=t.colors,i=t.contextScope,n=t.id;return y=r.length?e.getAttribute("id"):(i[0]||n).split(".")[0]}(),n=e.getAttribute("colors");if(e.isSparkline()&&n&&1===n.length)return n[0];var s="selected"===r;r=!r||s?e.getAttribute("selectedDimensions")[0]:r;var o=s&&null!=n&&n.length?n[0]:t.getRoot().getNextColor(h,i,r),a=e.getThemeIndex();return"string"===typeof o?o:o[a]},e.getDimensionName=function(t){var r=e.getAttribute("viewDimensions");return null!=r&&r.names?(0,o.isHeatmap)(e)?(0,o.withoutPrefix)(r.names[i[t]]):r.names[i[t]]:""},e.getDimensionPriority=function(t){var r=e.getAttribute("viewDimensions");return null!=r&&r.priorities?r.priorities[i[t]]:0},e.getRowDimensionValue=function(t,r,n){var s=void 0===n?{}:n,a=s.valueKey,l=void 0===a?"value":a,u=s.abs,c=void 0===u||u,d=s.incrementable,f=void 0===d||d,p=s.allowNull,m=void 0!==p&&p,g=null==r?void 0:r[i[t]+1];if("undefined"===typeof g)return null;if(g=null!==g&&"object"===typeof g?g[l]:g,g=m&&null===g?g:c?Math.abs(g):g,f&&(0,o.isIncremental)(e)){var b=e.getDimensionIndex(t),h=e.getVisibleDimensionIds()[b-1];g-=e.getRowDimensionValue(h,r,{valueKey:l,abs:c,incrementable:!1,allowNull:m})||0}return g},e.getDimensionValue=function(t,r,i){void 0===i&&(i={});var n=e.getPayload().all[r];return e.getRowDimensionValue(t,n,i)},e.toggleDimensionId=function(t,r){var i=(void 0===r?{}:r).merge,n=void 0!==i&&i,s=e.getAttribute("selectedLegendDimensions");if(s.length)if(e.isDimensionVisible(t)){var o=s.filter((function(e){return e!==t}));e.updateAttribute("selectedLegendDimensions",o.length?n?o:[t]:[])}else{var a=n?[].concat(l(s),[t]):[t];e.updateAttribute("selectedLegendDimensions",a)}else e.updateAttribute("selectedLegendDimensions",n?e.getDimensionIds().filter((function(e){return e!==t})):[t])},e.onAttributeChange("dimensionsSort",e.sortDimensions),e.onAttributeChange("selectedLegendDimensions",b),e.updateColors=function(){var t=e.getAttribute("dimensionIds");t.length&&(e.isSparkline()?p:t).forEach(e.selectDimensionColor)}}},98702:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=-1,r=-1;e.invalidateClosestRowCache=function(){t=-1,r=-1};e.getClosestRow=function(i){return t===i||(t=i,r=function(t){var r=e.getPayload().data;if(0===r.length)return-1;if(t<r[0][0])return 0;if(t>r[r.length-1][0])return r.length-1;for(var i=0,n=r.length-1,s=0;i<=n;){var o=Math.floor((i+n)/2);if(Math.abs(r[o][0]-t)<Math.abs(r[s][0]-t)&&(s=o),r[o][0]===t)return o;r[o][0]<t?i=o+1:n=o-1}return s}(i)),r}}},21452:(e,t,r)=>{t.__esModule=!0,t.unitMap=t.default=void 0;var i;(i=r(43411))&&i.__esModule;var n=t.unitMap={"active connections":"a-con",arrays:"arrays","calls/s":"c/s",Celsius:"cels",charts:"charts","connected clients":"con-c","connections/s":"c/s",containers:"cont","context switches/s":"co-sw",dBm:"dBm",descriptors:"descr",difference:"dif","drops/s":"d/s",entropy:"entr","errors/s":"err/s",events:"events","events/s":"e/s","faults/s":"f/s","files/s":"f/s","frames/s":"f/s",GiB:"GiB","gigabits/s":"gb/s",inodes:"inodes","interrupts/s":"i/s",KiB:"KiB","KiB/operation":"Kib/op","KiB/s":"KiB/s","kilobits/s":"kb/s",load:"load","merged operations/s":"m-o/s","messages/s":"m/s",metrics:"metrics",MHz:"MHz",MiB:"MiB","MiB/s":"MiB/s","megabits/s":"mb/s","microseconds lost/s":"\xb5s l/s","milliseconds/operation":"ms/o","milliseconds/request":"ms/r","milliseconds/run":"ms/run","milliseconds/s":"ms/s",nanoseconds:"ns",microseconds:"\xb5s",milliseconds:"ms",ms:"ms","% of time working":"%time","open files":"o-f","open pipes":"o-p","open sockets":"o-s","operations/s":"ops/s","packets/s":"p/s","page faults/s":"p-f/s",pages:"pages",percentage:"%",pcent:"%",percent:"%",processes:"prc","processes/s":"prc/s","reads/s":"read/s","reports/s":"rep/s","requests/s":"req/s","Rotations/min":"rot/min",seconds:"secs",minutes:"mins",hours:"hrs",days:"d","duration (minutes, seconds)":"mins:secs","duration (hours, minutes)":"hrs:mins","duration (days, hours)":"d:hrs","duration (months, days)":"m-d","duration (years, months)":"Y-m",segments:"segm",semaphores:"semph",sockets:"socket","softirqs/s":"s-irq/s",state:"state",status:"status",threads:"thr",value:"value",Volts:"V",Watt:"W",bits:"b",bytes:"B",kilobytes:"KB",megabytes:"MB",gigabytes:"GB",terabytes:"TB",petabytes:"PB",exabytes:"EB",zettabytes:"ZB",yottabytes:"YB","bits/s":"b/s","bytes/s":"B/s","kilobytes/s":"KB/s","megabytes/s":"MB/s","gigabytes/s":"GB/s","terabytes/s":"TB/s","petabytes/s":"PB/s","exabytes/s":"EB/s","zettabytes/s":"ZB/s","yottabytes/s":"YB/s"},s=/num\s\(([fpn\u03bcmcAhkMGTPE])\)?\s(.+)?/;t.default=function(e){return e.getUnitSign=function(t){var r=void 0===t?{}:t,i=r.long,o=void 0!==i&&i,a=r.key,l=void 0===a?"units":a,u=r.withoutConversion,c=void 0!==u&&u;if(c)return e.getAttribute("units");var d=c?e.getAttribute(l):e.getAttribute(l+"Conversion"),f="";if(s.test(d)){var p=d.match(s);f=p[1]&&"A"!==p[1]?p[1]:"",d=p[2]}return d&&"undefined"!==d&&"null"!==d?f+(f?" ":"")+(o?d:n[d]||d):f}}},74210:(e,t,r)=>{t.__esModule=!0,t.default=void 0;(i=r(81395))&&i.__esModule,function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=o(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var a=n?Object.getOwnPropertyDescriptor(e,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=e[s]}i.default=e,r&&r.set(e,i)}(r(25772));var i,n=r(21666),s=["result"];function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}var a=function(e){var t=e.nodes;e.point;return Object.keys(t).reduce((function(e,t){var r=transformDataRow(t,result.point,stats);return e.push(r),e}),{})};t.default=function(e,t){var r=null,i=function(t){var r=a(t);r.result,function(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r])}(r,s);e.updateAttributes({weightsLoading:!1,error:null}),e.trigger("weights:finishFetch")},o=function(t){e&&("AbortError"!==(null==t?void 0:t.name)?(e.updateAttributes({weightsLoading:!1,weightsError:(null==t?void 0:t.errorMessage)||(null==t?void 0:t.message)||"Something went wrong"}),e.trigger("weights:finishFetch")):e.updateAttribute("weightsLoading",!1))};return{weights:{},fetchWeights:function(){if(e){return r&&r.abort(),e.trigger("weights:startFetch"),e.updateAttributes({weightsLoading:!0}),function(){var t={signal:(r=new AbortController).signal};return(0,n.fetchChartWeights)(e,t).then((function(e){return i(e)})).catch(o)}()}}}}},81395:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=[["#3366CC","#66AA00"],["#DC3912","#FE3912"],["#109618","#3366CC"],["#FF9900","#D66300"],["#990099","#0099C6"],["#DD4477","#DDDD00"],["#3B3EAC","#5054e6"],["#66AA00","#EE9911"],["#0099C6","#BB44CC"],["#B82E2E","#e45757"],["#AAAA11","#ef0aef"],["#5574A6","#CC7700"],["#994499","#22AA99"],["#22AA99","#109618"],["#6633CC","#905bfd"],["#E67300","#f54882"],["#316395","#4381bf"],["#8B0707","#ff3737"],["#329262","#329262"],["#3B3EAC","#3B3EFF"]]},68652:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=s(r(28973)),n=s(r(85872));function s(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e,t){var r=(0,i.default)(),s=(0,n.default)(),o=null,l=t.getDateWindow()[1],u=function(){return l=t.getDateWindow()[1]};t.on("visibleDimensionsChanged",s.add(u));return a(a({},r),{},{sdk:e,chart:t,mount:function(r){o=r,e.trigger("mountChartUI",t),t.trigger("mountChartUI")},unmount:function(){e.trigger("unmountChartUI",t),t.trigger("unmountChartUI"),r.offAll(),o=null,s&&s.clear()},render:u,getRenderedAt:function(){return l},getElement:function(){return o},getChartWidth:function(){return o?o.offsetWidth:300},getChartHeight:function(){return o?o.offsetHeight:300}})}},21341:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(93724))&&i.__esModule?i:{default:i};function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e){var t=void 0===e?{}:e,r=t.sdk,i=t.parent,s=t.attributes,a=(0,n.default)({sdk:r,parent:i,attributes:s}),l=[],u=function(e,t,r){void 0===r&&(r=null);var i=r?l:[d];return r=r||[],i.forEach((function(i){var n=i.match(e);!n&&null!=t&&t.inherit||(n&&r.push(i),"container"===i.type&&i.getNodes(e,t,r))})),r},c={};a.type="container",a.getApplicableNodes=function(e,t){if(!a.match(e))return[d];var r=a.getAncestor(e);return r?r.getNodes(e,t):u(e,t)};var d=o(o({},a),{},{destroy:function(){a&&(a.destroy(),l.forEach((function(e){return e.destroy()})),l=[],c={},setTimeout((function(){return a=null}),2e3))},appendChild:function(e,t){var i=(void 0===t?{}:t).inherit,n=void 0===i||i;e.setParent(d,{inherit:n}),l.push(e),d.trigger("nodeAdded",e),r.trigger("nodeAdded",d,e),d.trigger(e.type+"Added",e),r.trigger(e.type+"Added",d,e)},removeChild:function(e){l=l.filter((function(t){return t.getId()!==e})),d.trigger("nodeRemoved",a),r.trigger("nodeRemoved",d,a),d.trigger(a.type+"Removed",a),r.trigger(a.type+"Removed",d,a)},getNode:function(e,t,r){var i;return void 0===r&&(r=[d]),r.some((function(r){var n=r.match(e);if(n||null==t||!t.inherit)return n?(i=r,!0):!("container"!==r.type||!(i=r.getNode(e,t,l)))||void 0})),i},getNodes:u,getChildren:function(){return l},getNextColor:function(e,t,r){t in c||(c[t]={});var i=c[t];if(r in i)return i[r];var n=e();return i[r]=n,n},getRoot:function(){return r.getRoot()}});return d}},3126:(e,t)=>{function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function i(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function n(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.__esModule=!0,t.default=void 0;var s={hourCycle:"h23",weekday:"short",year:"numeric",month:"short",day:"2-digit"},o={hourCycle:"h23",month:"2-digit",day:"2-digit"},a={hourCycle:"h23",timeStyle:"medium"},l=function(e){return e>-10&&e<10?"0"+e.toString():e.toString()};t.default=function(){var e,t,r,n=function(t){return e.format(t)};return{update:function(n){try{!function(n){e=new Intl.DateTimeFormat(navigator.language,i(i({},a),{},{timeZone:n})),r=new Intl.DateTimeFormat(navigator.language,i(i({},s),{},{timeZone:n})),t=new Intl.DateTimeFormat(navigator.language,i(i({},o),{},{timeZone:n}))}(n)}catch(u){r={format:function(e){return new Date(e).toLocaleDateString()}},e={format:function(e){return new Date(e).toLocaleTimeString()}},t={format:function(e){var t=new Date(e);return[t.getHours(),t.getMinutes(),t.getSeconds()].map(l).join(":")}}}},formatTime:n,formatDate:function(e){return r.format(e)},formatXAxis:function(e){return 0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()?t.format(e):n(e)},destroy:function(){e=null,t=null,r=null}}}},49628:(e,t)=>{function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function i(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function n(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.__esModule=!0,t.default=void 0;var s={payload:{}};t.default=function(e){return function(t){var r;if(void 0===t&&(t={}),!e)return function(){};var n=e.getAttribute("logOptions")||s,o=n.sendLog,a=n.payload,l=i(i({},null!=(r=t)&&r.data?i({},t.data):{}),null!=a&&a.data?i({},a.data):{});"function"===typeof o&&o(i(i(i(i({},t),a),l),{},{chartId:e.getAttribute("id")}))}}},93724:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=r(22831),n=u(r(28973)),s=u(r(10238)),o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(87306)),a=u(r(3126));function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function u(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.default=function(e){var t=e.sdk,r=e.parent,l=void 0===r?null:r,u=e.attributes,c=(0,n.default)(),f=(0,n.default)(),p=d({id:(null==u?void 0:u.id)||(0,i.v4)()},u),m=function(e,t){p[e]=t},g=function(e){return p[e]},b=function(){return p.id},h=function(e,t,r){return f.trigger(e,t,r)},y=function(e,r){if(p){var i=p[e];if(i!==r){var n=o.default.update(p,e,r);m(e,r),h(e,r,i),n&&(h(o.pristineKey,p[o.pristineKey],n),t.trigger("pristineChanged",o.pristineKey,B,r,i))}}},v=function(){return p},_=function(e,t){return f.on(e,t)},O=function(e,t){var r=(void 0===t?{}:t).inherit;l=e,(void 0===r||r)&&e&&C()},A=(0,a.default)(),w=A.update,P=A.formatTime,k=A.formatDate,j=A.formatXAxis,x=A.destroy,C=function(){var e=l.getAttributes();p=d(d(d({},e),p),{},{overlays:d(d({},e.overlays),p.overlays)}),w(p.timezone)},S=function(e,r){void 0===r&&(r=0);var i=(0,s.default)({after:e,before:r}),n=i.fixedAfter,o=i.fixedBefore;t.trigger("moveX",B,Math.floor(n),Math.floor(o))},M=function(e){var t=v(),r=t.after,i=t.before;if(r<0){var n=Date.now()/1e3;r=n+r,i=n}var s=e*Math.round((i-r)/4);S(r+s,i-s)},D=function(){var e=g("pristineStaticValueRange");void 0!==e&&(y("pristineStaticValueRange",void 0),y("staticValueRange",e))};w(g("timezone")),_("timezone",w);O(l);var B=d(d({attributeListeners:f},c),{},{sdk:t,setAttribute:m,getAttribute:g,updateAttribute:y,setAttributes:function(e){return Object.keys(e).forEach((function(t){return m(t,e[t])}))},getAttributes:v,updateAttributes:function(e){var r=null,i=Object.keys(e).reduce((function(t,i){var n=e[i],s=p[i];if(s===n)return t;var a=o.default.update(p,i,n);return a&&!r&&(r=a),m(i,n),t[i]=s,t}),{});Object.keys(i).forEach((function(t){return h(t,e[t],i[t])})),r&&(h(o.pristineKey,p[o.pristineKey],r),t.trigger("pristineChanged",o.pristineKey,B,p[o.pristineKey],r))},onAttributeChange:_,onAttributesChange:function(e,t){return e.reduce((function(e,r){return e?e.on(r,t):f.on(r,t)}),null)},onceAttributeChange:function(e,t){return f.once(e,t)},match:function(e){return"function"===typeof e?e(B,p):!e||!p||!Object.keys(e).some((function(t){return e[t]!==p[t]}))},setParent:O,getParent:function(){return l},getId:b,getAncestor:function(e){for(var t=B,r=null;null!=(i=t.getParent())&&i.match(e);){var i;r=t.getParent(),t=r}return r},inherit:C,updateStaticValueRange:function(e){if(void 0===g("pristineStaticValueRange")){var t=g("staticValueRange");y("pristineStaticValueRange",t)}y("staticValueRange",e)},resetStaticValueRange:D,moveY:function(e,r){t.trigger("moveY",B,e,r)},moveX:S,zoomIn:function(){return M(1)},zoomOut:function(){return M(-1)},resetNavigation:function(){var e=g("pristineStaticValueRange");if(g("enabledResetRange"))return void 0!==e?D():void S(-900)},destroy:function(){l&&l.removeChild(b()),c.offAll(),f.offAll(),setTimeout((function(){return l=null}),2e3),x()},formatTime:P,formatDate:k,formatXAxis:j});return B}},55675:(e,t)=>{function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function i(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function n(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightStart",(function(e){"highlight"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),r=e.on("highlightEnd",(function(e,t){if("highlight"===e.getAttribute("navigation")){var r=function(e){var t=(e.getAncestor({syncHighlight:!0})||e).getAttribute("after");if(t>0)return null;var r=Math.floor(Date.now()/1e3);return{after:r+t,before:r}}(e);e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){var n=function(e,t){var r=e.getAttributes(),n=r.overlays,s=r.after,o=r.before;if(t)return i(i({},n),{},{highlight:{range:t,type:"highlight",moveX:{after:s,before:o}}});var a=i({},n);return delete a.highlight,a}(e,t);e.updateAttributes(i({enabledHover:!0,highlighting:!1,overlays:n},r))}))}}));return function(){t(),r()}}},61201:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){return e.on("highlightHover",(function(e,t,r){e.getApplicableNodes({syncHover:!0}).forEach((function(e){return e.updateAttribute("hoverX",[t,r])}))})).on("highlightBlur",(function(e){e.getApplicableNodes({syncHover:!0}).forEach((function(e){return e.updateAttribute("hoverX",null)}))})).on("hoverChart",(function(t){t.getApplicableNodes({syncHover:!0}).forEach((function(e){e.getAttribute("hovering")||t.getRoot().getAttribute("paused")||e.updateAttributes({hovering:!0,renderedAt:t.getAttribute("after")<0?t.getUI().getRenderedAt():t.getAttribute("before")})})),e.trigger("play:hoverChart",t)})).on("blurChart",(function(t){t.getApplicableNodes({syncHover:!0}).forEach((function(e){t.getRoot().getAttribute("paused")||e.updateAttributes({hovering:!1,renderedAt:null})})),e.trigger("play:blurChart",t)}))}},28778:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t;return e.on("moveX",(function(e,t,r){var i=function(e,t,r){return void 0===t&&(t=0),void 0===r&&(r=!0),e<0?{after:e,before:t}:r&&t>Math.ceil(Date.now()/1e3)?{after:Math.floor(e-t+1),before:0}:{after:Math.floor(e),before:Math.ceil(t)}}(t,r,e.getAttribute("autoPlay"));e.getApplicableNodes({syncPanning:!0}).forEach((function(e){e.updateAttributes(i),e.getAttribute("active")||e.updateAttribute("loaded",!1)}))})).on("moveY",(function(e,r,i){e.updateStaticValueRange([r,i]);var n=e.getAttribute("after");if(n<0){var s=Date.now()/1e3-1;e.moveX(s+n,s)}t&&t(),t=e.onAttributeChange("after",(function(r){r>0||(e.resetStaticValueRange(),t())}))}))}},59184:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("panStart",(function(e){e.getApplicableNodes({syncPanning:!0}).forEach((function(e){return e.updateAttributes({enabledHover:!1,panning:!0})}))})),r=e.on("panEnd",(function(e,t){var r=t[0],i=t[1];e.moveX(r/1e3,i/1e3),e.getApplicableNodes({syncPanning:!0}).forEach((function(e){return e.updateAttributes({enabledHover:!0,panning:!1})}))}));return function(){t(),r()}}},97761:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t,r=function r(){!e.getRoot().getAttribute("paused")&&e.getRoot().getAttribute("after")<0&&e.getRoot().setAttribute("fetchAt",Date.now()),e.getNodes((function(t,r){var i=r.loaded,n=r.active;return"chart"===t.type&&i&&n&&!e.getRoot().getAttribute("paused")})).forEach((function(e){return e.trigger("render")})),t=setTimeout(r,1e3)},i=function(e){clearTimeout(t),t=null,e&&r()},n=function(e,t){var r=void 0===t?{}:t,i=r.now,n=void 0===i?new Date:i,s=r.force,o=void 0!==s&&s,a=e.getAttributes(),l=a.after,u=a.hovering,c=a.active,d=a.loaded,f=a.fetchStartedAt,p=l<0&&!u&&!e.getRoot().getAttribute("paused");if("container"===e.type)return e.updateAttribute("autofetch",p);p=p&&c,e.updateAttribute("autofetch",p);var m=e.lastFetch,g=m[0],b=m[1],h=e.getDateWindow(),y=h[0],v=h[1];if(c&&!p&&(o||d&&(g!==y||b!==v))){if(f&&n-e.getUpdateEvery()<=f)return;e.lastFetch=[y,v],e.trigger("fetch")}},s=function(){e.getRoot().updateAttributes({paused:!e.getRoot().getAttribute("autofetchOnWindowBlur"),blurred:!0}),i(e.getRoot().getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),e.getNodes().forEach((function(e){return n(e)}))},o=function(){e.getRoot().updateAttributes({paused:!1,blurred:!1}),i(e.getRoot().getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),e.getNodes().forEach((function(e){return n(e)}))};window.addEventListener("blur",s),window.addEventListener("focus",o);var a=e.on("active",(function(t){i(t.getAttribute("after")<0&&!t.getAttribute("hovering")&&!e.getRoot().getAttribute("paused")),n(t,{force:!0})})).on("play:hoverChart",(function(t){i(!1),e.getRoot().getAttribute("paused")||t.getApplicableNodes({syncHover:!0}).forEach((function(e){return n(e,{now:t.getAttribute("renderedAt")})}))})).on("play:blurChart",(function(t){t.getRoot().getAttribute("paused")||(i(t.getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),t.getApplicableNodes({syncHover:!0}).forEach((function(e){return n(e)})))})).on("moveX",(function(t){i(t.getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),t.getApplicableNodes({syncPanning:!0}).forEach((function(e){e.setAttributes({viewUpdateEvery:0,updateEvery:0}),n(e)}))}));return e.getRoot().onAttributeChange("paused",(function(){return e.getNodes().forEach((function(e){return n(e)}))})),function(){a(),window.removeEventListener("blur",s),window.removeEventListener("focus",o)}}},66739:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightStart",(function(e){"select"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),r=e.on("highlightEnd",(function(e,t){if("select"===e.getAttribute("navigation")&&(e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!0,highlighting:!1})})),null!==t)){var r=t[0],i=t[1];e.moveX(r,i)}}));return function(){t(),r()}}},5617:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightVerticalStart",(function(e){"selectVertical"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),r=e.on("highlightVerticalEnd",(function(e,t){if("selectVertical"===e.getAttribute("navigation")&&(e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!0,highlighting:!1})})),null!==t)){var r=t[0],i=t[1];e.moveY(r,i)}}));return function(){t(),r()}}},22791:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=n?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i}(r(53734)),n=o(r(84373)),s=o(r(55043));o(r(43411));function o(e){return e&&e.__esModule?e:{default:e}}function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}var l=function(e,t,r,i){var s=n.default[e];if("auto"!==i&&i in s)return["divide",s[i],i];var o=Math.abs(t),a=Math.abs(r),l=o>a?o:a,u=Object.keys(s).reverse().find((function(e){return l>=s[e]}));return u?["divide",s[u],"num"===e?u+" "+i:u]:["original"]},u=function(e,t,r,s){var o=e.getAttributes().desiredUnits;return"original"===o?["original"]:i.default[t]?function(e,t,r,n){var s=i.default[t];if("auto"!==n)return n in s?[(0,i.makeConversableKey)(t,n),void 0,n]:["original"];var o=Object.keys(s),a=o.findIndex((function(t){return s[t].check(e,r)}));if(-1===a)return["original"];var l=o[a];return[(0,i.makeConversableKey)(t,l),void 0,l]}(e,t,s,o):n.default[t]?l(t,r,s,o):"percentage"===t||"percent"===t||"pcent"===t||/%/.test(t||"")?["original"]:l("num",r,s,t)},c=[1e3,100,10,1,.1,.01,.001];t.default=function(e,t,r,i,n){void 0===n&&(n=5);var o=e.getAttribute(t),a=u(e,o,r,i),l=a[0],d=a[1],f=a[2],p=void 0===f?o:f,m=(0,s.default)(e,l,r,d),g=(0,s.default)(e,l,i,d),b=Math.abs(m===g?m:g-m),h="original"===l||"divide"===l?function(e){var t=c.findIndex((function(t){return e>t})),r=-1===t?c.length-1:t;return 3===r?4:r}(b):-1;return{method:l,divider:d,units:p,fractionDigits:h>n?n:h}}},78894:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i,n=(i=r(22791))&&i.__esModule?i:{default:i};var s=function(e,t,r,i){void 0===t&&(t="units");var s,o=(0,n.default)(e,t,r,i),a=o.method,l=o.divider,u=o.units,c=o.fractionDigits,d=e.getAncestor({syncUnits:!0});if(!d||"original"===a)return e.updateAttributes(((s={})[t+"ConversionMethod"]=a,s[t+"ConversionDivider"]=l,s[t+"Conversion"]=u,s[t+"ConversionFractionDigits"]=c,s));var f=d.getAttribute(t+"ConversionDivider"),p=function(){var r;e.updateAttributes(((r={})[t+"ConversionMethod"]=a,r[t+"ConversionDivider"]=l,r[t+"Conversion"]=u,r[t+"ConversionFractionDigits"]=c,r))};if(l>f)return e.getApplicableNodes({syncUnits:!0}).forEach((function(r){var i;if(r===e)return p();r.updateAttributes(((i={})[t+"ConversionMethod"]=a,i[t+"ConversionDivider"]=l,i[t+"Conversion"]=u,i))}));p()};t.default=function(e){return e.on("yAxisChange",(function(e,t,r){s(e,"units",t,r),s(e,"dbUnits",t,r),e.updateAttributes({min:t,max:r})}))}},87306:(e,t,r)=>{t.__esModule=!0,t.pristineKey=t.default=void 0;var i,n=(i=r(22716))&&i.__esModule?i:{default:i};var s=t.pristineKey="pristine",o=(0,n.default)(s,["aggregationMethod","groupBy","groupByLabel","postAggregationMethod","postGroupBy","postGroupByLabel","groupingMethod","groupingTime","chartType","chartLibrary","selectedDimensions","selectedLabels","selectedNodes","selectedInstances","sparkline","selectedLegendDimensions","showingInfo","dimensionsSortBy","instancesSortBy","nodesSortBy","groupBySortBy","labelsSortBy","dimensionsSort","nodesExpanded","groupByExpanded","labelsExpanded","expanded","staticZones","showPostAggregations"]),a=o.updatePristine,l=o.resetPristine;t.default={update:a,reset:l}},53734:(e,t,r)=>{t.__esModule=!0,t.makeConversableKey=t.default=void 0;var i,n=(i=r(91665))&&i.__esModule?i:{default:i};t.makeConversableKey=function(e,t){return e+"-"+t};var s={check:function(e){return"fahrenheit"===e.getAttribute("temperature")},convert:function(e){return 9*e/5+32}},o=function(e,t,r){void 0===r&&(r="MS");var i=Math.abs(e),s=Math.floor(i/86400),o="DAYS"===t?s+"d":"";i-=86400*s;var a=Math.floor(i/3600),l=(0,n.default)(a);if("DAYS"===t)return o+":"+l;i-=3600*a;var u=Math.floor(i/60),c=(0,n.default)(u);return"HOURS"===t?l+":"+c:(i-=60*u,c+":"+(0,n.default)("MS"===r?i.toFixed(2):Math.round(i)))},a=function(e){return void 0===e&&(e=1),function(t){return(t*e).toFixed(2)}};t.default={Celsius:{Fahrenheit:s},celsius:{fahrenheit:s},milliseconds:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1},convert:a(1e3)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<1e3},convert:a()},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<6e4},convert:a(.001)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=6e4&&t<36e5},convert:function(e){return o(e/1e3,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=36e5&&t<864e5},convert:function(e){return o(e/1e3,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=864e5},convert:function(e){return o(e/1e3,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e6},convert:function(e){return o(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e6},convert:function(e){return o(e,"DAYS")}}},ms:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1},convert:a(1e3)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<1e3},convert:a()},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<6e4},convert:a(.001)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=6e4&&t<36e5},convert:function(e){return o(e/1e3,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=36e5&&t<864e5},convert:function(e){return o(e/1e3,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=864e5},convert:function(e){return o(e/1e3,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e6},convert:function(e){return o(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e6},convert:function(e){return o(e,"DAYS")}}},seconds:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<.001},convert:a(1e6)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=.001&&t<1},convert:a(1e3)},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<60},convert:a(1)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=60&&t<3600},convert:function(e){return o(e,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=3600&&t<86400},convert:function(e){return o(e,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=86400},convert:function(e){return o(e,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e3},convert:function(e){return o(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e3},convert:function(e){return o(e,"DAYS")}},"dHH:MM:ss":{check:function(){return!1},convert:function(e){return o(e,"DAYS","SECONDS")}}},nanoseconds:{nanoseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1e3},convert:function(e){var t=Math.round(10*e);return t-=10*(e=Math.floor(t/10)),e+"."+(0,n.default)(t)}},microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<1e6},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3);return e-=1e3*t,e=Math.round(e/10),t+"."+(0,n.default)(e)}},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e6&&t<1e9},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3/1e3);return e-=1e3*t*1e3,e=Math.round(e/1e3/10),t+"."+(0,n.default)(e)}},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e9},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3/1e3/1e3);return e-=1e3*t*1e3*1e3,e=Math.round(e/1e3/1e3/10),t+"."+(0,n.default)(e)}}}}},55043:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var i={__proto__:null},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=s?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(i,o,a):i[o]=e[o]}return i.default=e,r&&r.set(e,i),i}(r(53734));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var l=o(o({},Object.keys(i.default).reduce((function(e,t){return Object.keys(i.default[t]).forEach((function(r){e[(0,i.makeConversableKey)(t,r)]=function(e,n){return i.default[t][r].convert(n,e)}})),e}),{})),{},{original:function(e,t){return t},divide:function(e,t,r){return t/r}});t.default=function(e,t,r,i){return(l[t]||l.original)(e,r,i)}},84373:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default={"packets/s":{pps:1,Kpps:1e3,Mpps:1e6,Gpps:1e9,Tpps:1e12,Ppps:1e15,Epps:1e18},pps:{pps:1,Kpps:1e3,Mpps:1e6,Gpps:1e9,Tpps:1e12,Ppps:1e15,Epps:1e18},"kilobits/s":{"bits/s":.001,"kilobits/s":1,"megabits/s":1e3,"gigabits/s":1e6,"terabits/s":1e9,"petabits/s":1e12,"exabits/s":1e12},"bytes/s":{"bytes/s":1,"kilobytes/s":1024,"megabytes/s":1048576,"gigabytes/s":1073741824,"terabytes/s":1099511627776,"petabits/s":0x4000000000000,"exabits/s":0x1000000000000000},"kilobytes/s":{"bytes/s":1/1024,"kilobytes/s":1,"megabytes/s":1024,"gigabytes/s":1048576,"terabytes/s":1073741824,"petabits/s":1099511627776,"exabits/s":0x4000000000000},"B/s":{"B/s":1,"KiB/s":1024,"MiB/s":1048576,"GiB/s":1073741824,"TiB/s":1099511627776,"PiB/s":0x4000000000000,"EiB/s":0x1000000000000000},"KB/s":{"B/s":1/1024,"KB/s":1,"MB/s":1024,"GB/s":1048576,"TB/s":1073741824,"PB/s":1099511627776,"EB/s":0x4000000000000},"KiB/s":{"B/s":1/1024,"KiB/s":1,"MiB/s":1024,"GiB/s":1048576,"TiB/s":1073741824,"PiB/s":1099511627776,"EiB/s":0x4000000000000},bytes:{bytes:1,kilobytes:1024,megabytes:1048576,gigabytes:1073741824,terabytes:1099511627776,petabytes:0x4000000000000,exabytes:0x1000000000000000},B:{B:1,KiB:1024,MiB:1048576,GiB:1073741824,TiB:1099511627776,PiB:0x4000000000000,EiB:0x1000000000000000},KB:{B:1/1024,KB:1,MB:1024,GB:1048576,TB:1073741824,PB:1099511627776,EB:0x4000000000000},KiB:{B:1/1024,KiB:1,MiB:1024,GiB:1048576,TiB:1073741824,PiB:1099511627776,EiB:0x4000000000000},MB:{B:1/1048576,KB:1/1024,MB:1,GB:1024,TB:1048576,PB:1073741824,EB:1099511627776},MiB:{B:1/1048576,KiB:1/1024,MiB:1,GiB:1024,TiB:1048576,PiB:1073741824,EiB:1099511627776},GB:{B:1/1073741824,KB:1/1048576,MB:1/1024,GB:1},GiB:{B:1/1073741824,KiB:1/1048576,MiB:1/1024,GiB:1,TiB:1024,PiB:1048576,EiB:1073741824},"[CPU]":{"m[CPU]":.001,"c[CPU]":.01,"[CPU]":1},"c[CPU]":{"m[CPU]":.1,"c[CPU]":1,"[CPU]":100},"m[CPU]":{"m[CPU]":1,"c[CPU]":10,"[CPU]":1e3},HZ:{HZ:1,MHz:1e3,GHz:1e6},MHz:{HZ:.001,MHz:1,GHz:1e3},GHz:{HZ:1e-6,MHz:.001,GHz:1},"By/s":{"By/s":1,"KiBy/s":1024,"MiBy/s":1048576,"GiBy/s":1073741824},"KiBy/s":{"By/s":1/1024,"KiBy/s":1,"MiBy/s":1024,"GiBy/s":1048576},By:{By:1,KiBy:1024,MiBy:1048576,GiBy:1073741824},KiBy:{By:1/1024,KiBy:1,MiBy:1024,GiBy:1048576},MiBy:{By:1/1048576,KiBy:1/1024,MiBy:1,GiBy:1024},GiBy:{By:1/1073741824,KiBy:1/1048576,MiBy:1/1024,GiBy:1,TB:1024,PB:1048576,EB:1073741824},num:{"num (f)":1e-15,"num (p)":1e-12,"num (n)":1e-9,"num (\u03bc)":1e-6,"num (m)":.001,"num (A)":1,"num (k)":1e3,"num (M)":1e6,"num (G)":1e9,"num (T)":1e12,"num (P)":1e15,"num (E)":1e18,"num (Z)":1e21,"num (Y)":1e24}}},43411:e=>{e.exports=JSON.parse('{"units":{"1":{"symbol":"1","name":"","print_symbol":"","is_metric":false,"is_special":false,"is_additive":true},"%":{"symbol":"%","name":"percent","print_symbol":"%","is_metric":false,"is_special":false,"is_additive":false},"A":{"symbol":"A","name":"amp\xe8re","print_symbol":"A","is_metric":true,"is_special":false,"is_additive":true},"A.h":{"symbol":"A.h","name":"amp\xe8re-hour","print_symbol":"Ah","is_metric":true,"is_special":false,"is_additive":true},"Bit":{"symbol":"Bit","name":"Bit","print_symbol":"Bit","is_metric":true,"is_special":false,"is_additive":true},"Bit/s":{"symbol":"Bit/s","name":"Bit per second","print_symbol":"Bit/s","is_metric":true,"is_special":false,"is_additive":true},"By":{"symbol":"By","name":"byte","print_symbol":"B","is_metric":true,"is_special":false,"is_additive":true},"By/s":{"symbol":"By/s","name":"byte per second","print_symbol":"B/s","is_metric":true,"is_special":false,"is_additive":true},"Cel":{"symbol":"Cel","name":"degree Celsius","print_symbol":"\xb0C","is_metric":true,"is_special":true,"is_additive":false},"GiBy":{"symbol":"GiBy","name":"gibibyte","print_symbol":"GiB","is_metric":true,"is_special":false,"is_additive":true},"GiBy/s":{"symbol":"GiBy/s","name":"gibibyte per second","print_symbol":"GiB/s","is_metric":true,"is_special":false,"is_additive":true},"Hz":{"symbol":"Hz","name":"hertz","print_symbol":"Hz","is_metric":true,"is_special":false,"is_additive":true},"J":{"symbol":"J","name":"joule","print_symbol":"J","is_metric":true,"is_special":false,"is_additive":true},"KiBy":{"symbol":"KiBy","name":"kibibyte","print_symbol":"KiB","is_metric":true,"is_special":false,"is_additive":true},"KiBy/s":{"symbol":"KiBy/s","name":"kibibyte per second","print_symbol":"KiB/s","is_metric":true,"is_special":false,"is_additive":true},"KiBy/{operation}":{"symbol":"KiBy/{operation}","name":"kibibyte per operation","print_symbol":"KiB/operation","is_metric":true,"is_special":false,"is_additive":true},"Kibit":{"symbol":"Kibit","name":"kibibit","print_symbol":"Kibit","is_metric":true,"is_special":false,"is_additive":true},"Kibit/s":{"symbol":"Kibit/s","name":"kibibit per second","print_symbol":"Kibit/s","is_metric":true,"is_special":false,"is_additive":true},"MHz":{"symbol":"MHz","name":"megahertz","print_symbol":"MHz","is_metric":true,"is_special":false,"is_additive":true},"GHz":{"symbol":"GHz","name":"gigahertz","print_symbol":"GHz","is_metric":true,"is_special":false,"is_additive":true},"MiBy":{"symbol":"MiBy","name":"mebibyte","print_symbol":"MiB","is_metric":true,"is_special":false,"is_additive":true},"MiBy/s":{"symbol":"MiBy/s","name":"mebibyte per second","print_symbol":"MiB/s","is_metric":true,"is_special":false,"is_additive":true},"Mibit/s":{"symbol":"Mibit/s","name":"mebibit per second","print_symbol":"Mibit/s","is_metric":true,"is_special":false,"is_additive":true},"V":{"symbol":"V","name":"volt","print_symbol":"V","is_metric":true,"is_special":false,"is_additive":true},"W":{"symbol":"W","name":"watt","print_symbol":"W","is_metric":true,"is_special":false,"is_additive":true},"W.h":{"symbol":"W.h","name":"watt-hour","print_symbol":"Wh","is_metric":true,"is_special":false,"is_additive":true},"[CPU]":{"symbol":"[CPU]","name":"CPU","print_symbol":"CPU","is_metric":true,"is_special":false,"is_additive":true},"[degF]":{"symbol":"[degF]","name":"degree Fahrenheit","print_symbol":"\xb0F","is_metric":false,"is_special":true,"is_additive":false},"[ppm]":{"symbol":"[ppm]","name":"parts per million","print_symbol":"ppm","is_metric":false,"is_special":false,"is_additive":true},"c[CPU]":{"symbol":"c[CPU]","name":"centiCPU","print_symbol":"cCPU","is_metric":true,"is_special":false,"is_additive":true},"dB[mW]":{"symbol":"dB[mW]","name":"decibel milliwatt","print_symbol":"dB(mW)","is_metric":true,"is_special":true,"is_additive":false},"h":{"symbol":"h","name":"hour","print_symbol":"h","is_metric":false,"is_special":false,"is_additive":true},"m[CPU]":{"symbol":"m[CPU]","name":"milliCPU","print_symbol":"mCPU","is_metric":true,"is_special":false,"is_additive":true},"min":{"symbol":"min","name":"minute","print_symbol":"min","is_metric":false,"is_special":false,"is_additive":true},"ms":{"symbol":"ms","name":"millisecond","print_symbol":"ms","is_metric":true,"is_special":false,"is_additive":true},"ms/s":{"symbol":"ms/s","name":"millisecond per second","print_symbol":"ms/s","is_metric":true,"is_special":false,"is_additive":true},"ms/{operation}":{"symbol":"ms/{operation}","name":"millisecond per operation","print_symbol":"ms/operation","is_metric":true,"is_special":false,"is_additive":true},"ns":{"symbol":"ns","name":"nanosecond","print_symbol":"ns","is_metric":true,"is_special":false,"is_additive":true},"s":{"symbol":"s","name":"second","print_symbol":"s","is_metric":true,"is_special":false,"is_additive":true},"s/s":{"symbol":"s/s","name":"second per second","print_symbol":"s/s","is_metric":true,"is_special":false,"is_additive":true},"us":{"symbol":"us","name":"microsecond","print_symbol":"\u03bcs","is_metric":true,"is_special":false,"is_additive":true},"us/s":{"symbol":"us/s","name":"microsecond per second","print_symbol":"\u03bcs/s","is_metric":true,"is_special":false,"is_additive":true},"{acquisition}/s":{"symbol":"{acquisition}/s","name":"acquisitions per second","print_symbol":"acquisitions/s","is_metric":true,"is_special":false,"is_additive":true},"{action}/s":{"symbol":"{action}/s","name":"actions per second","print_symbol":"actions/s","is_metric":true,"is_special":false,"is_additive":true},"{address space}":{"symbol":"{address space}","name":"address spaces","print_symbol":"address spaces","is_metric":false,"is_special":false,"is_additive":true},"{answer}/s":{"symbol":"{answer}/s","name":"answers per second","print_symbol":"answers/s","is_metric":true,"is_special":false,"is_additive":true},"{array}":{"symbol":"{array}","name":"arrays","print_symbol":"arrays","is_metric":false,"is_special":false,"is_additive":true},"{assembly}/s":{"symbol":"{assembly}/s","name":"assemblies per second","print_symbol":"assemblies/s","is_metric":true,"is_special":false,"is_additive":true},"{assert}/s":{"symbol":"{assert}/s","name":"asserts per second","print_symbol":"asserts/s","is_metric":true,"is_special":false,"is_additive":true},"{association}":{"symbol":"{association}","name":"associations","print_symbol":"associations","is_metric":false,"is_special":false,"is_additive":true},"{attempt}":{"symbol":"{attempt}","name":"attempts","print_symbol":"attempts","is_metric":false,"is_special":false,"is_additive":true},"{attempt}/s":{"symbol":"{attempt}/s","name":"attempts per second","print_symbol":"attempts/s","is_metric":true,"is_special":false,"is_additive":true},"{authentication}/s":{"symbol":"{authentication}/s","name":"authentications per second","print_symbol":"authentications/s","is_metric":true,"is_special":false,"is_additive":true},"{ban}/s":{"symbol":"{ban}/s","name":"bans per second","print_symbol":"bans/s","is_metric":true,"is_special":false,"is_additive":true},"{batch}":{"symbol":"{batch}","name":"batches","print_symbol":"batches","is_metric":false,"is_special":false,"is_additive":true},"{batch}/s":{"symbol":"{batch}/s","name":"batches per second","print_symbol":"batches/s","is_metric":true,"is_special":false,"is_additive":true},"{bind}/s":{"symbol":"{bind}/s","name":"binds per second","print_symbol":"binds/s","is_metric":true,"is_special":false,"is_additive":true},"{blocked subscription}":{"symbol":"{blocked subscription}","name":"blocked subscriptions","print_symbol":"blocked subscriptions","is_metric":false,"is_special":false,"is_additive":true},"{block}":{"symbol":"{block}","name":"blocks","print_symbol":"blocks","is_metric":false,"is_special":false,"is_additive":true},"{boolean}":{"symbol":"{boolean}","name":"boolean","print_symbol":"","is_metric":false,"is_special":false,"is_additive":true},"{buffer}":{"symbol":"{buffer}","name":"buffers","print_symbol":"buffers","is_metric":false,"is_special":false,"is_additive":true},"{call}":{"symbol":"{call}","name":"calls","print_symbol":"calls","is_metric":false,"is_special":false,"is_additive":true},"{call}/s":{"symbol":"{call}/s","name":"calls per second","print_symbol":"calls/s","is_metric":true,"is_special":false,"is_additive":true},"{ccw}/s":{"symbol":"{ccw}/s","name":"ccws per second","print_symbol":"ccws/s","is_metric":true,"is_special":false,"is_additive":true},"{chain}":{"symbol":"{chain}","name":"chains","print_symbol":"chains","is_metric":false,"is_special":false,"is_additive":true},"{change}/s":{"symbol":"{change}/s","name":"changes per second","print_symbol":"changes/s","is_metric":true,"is_special":false,"is_additive":true},"{channel}/s":{"symbol":"{channel}/s","name":"channels per second","print_symbol":"channels/s","is_metric":true,"is_special":false,"is_additive":true},"{character}":{"symbol":"{character}","name":"characters","print_symbol":"characters","is_metric":false,"is_special":false,"is_additive":true},"{checkpoint}/s":{"symbol":"{checkpoint}/s","name":"checkpoints per second","print_symbol":"checkpoints/s","is_metric":true,"is_special":false,"is_additive":true},"{check}/s":{"symbol":"{check}/s","name":"checks per second","print_symbol":"checks/s","is_metric":true,"is_special":false,"is_additive":true},"{child}":{"symbol":"{child}","name":"children","print_symbol":"children","is_metric":false,"is_special":false,"is_additive":true},"{chunk}":{"symbol":"{chunk}","name":"chunks","print_symbol":"chunks","is_metric":false,"is_special":false,"is_additive":true},"{class}":{"symbol":"{class}","name":"classes","print_symbol":"classes","is_metric":false,"is_special":false,"is_additive":true},"{class}/s":{"symbol":"{class}/s","name":"classes per second","print_symbol":"classes/s","is_metric":true,"is_special":false,"is_additive":true},"{client}":{"symbol":"{client}","name":"clients","print_symbol":"clients","is_metric":false,"is_special":false,"is_additive":true},"{cluster}":{"symbol":"{cluster}","name":"clusters","print_symbol":"clusters","is_metric":false,"is_special":false,"is_additive":true},"{cluster}/s":{"symbol":"{cluster}/s","name":"clusters per second","print_symbol":"clusters/s","is_metric":true,"is_special":false,"is_additive":true},"{code}":{"symbol":"{code}","name":"codes","print_symbol":"codes","is_metric":false,"is_special":false,"is_additive":true},"{collection}":{"symbol":"{collection}","name":"collections","print_symbol":"collections","is_metric":false,"is_special":false,"is_additive":true},"{column}":{"symbol":"{column}","name":"columns","print_symbol":"columns","is_metric":false,"is_special":false,"is_additive":true},"{command}":{"symbol":"{command}","name":"commands","print_symbol":"commands","is_metric":false,"is_special":false,"is_additive":true},"{command}/s":{"symbol":"{command}/s","name":"commands per second","print_symbol":"commands/s","is_metric":true,"is_special":false,"is_additive":true},"{commit}":{"symbol":"{commit}","name":"commits","print_symbol":"commits","is_metric":false,"is_special":false,"is_additive":true},"{commit}/s":{"symbol":"{commit}/s","name":"commits per second","print_symbol":"commits/s","is_metric":true,"is_special":false,"is_additive":true},"{compilation}/s":{"symbol":"{compilation}/s","name":"compilations per second","print_symbol":"compilations/s","is_metric":true,"is_special":false,"is_additive":true},"{component}":{"symbol":"{component}","name":"components","print_symbol":"components","is_metric":false,"is_special":false,"is_additive":true},"{concurrent file accesses}":{"symbol":"{concurrent file accesses}","name":"concurrent file accesseses","print_symbol":"concurrent file accesseses","is_metric":false,"is_special":false,"is_additive":true},"{connection}":{"symbol":"{connection}","name":"connections","print_symbol":"connections","is_metric":false,"is_special":false,"is_additive":true},"{connection}/s":{"symbol":"{connection}/s","name":"connections per second","print_symbol":"connections/s","is_metric":true,"is_special":false,"is_additive":true},"{consumer}":{"symbol":"{consumer}","name":"consumers","print_symbol":"consumers","is_metric":false,"is_special":false,"is_additive":true},"{container}":{"symbol":"{container}","name":"containers","print_symbol":"containers","is_metric":false,"is_special":false,"is_additive":true},"{contention}/s":{"symbol":"{contention}/s","name":"contentions per second","print_symbol":"contentions/s","is_metric":true,"is_special":false,"is_additive":true},"{context switch}/s":{"symbol":"{context switch}/s","name":"context switches per second","print_symbol":"context switches/s","is_metric":true,"is_special":false,"is_additive":true},"{context}":{"symbol":"{context}","name":"contexts","print_symbol":"contexts","is_metric":false,"is_special":false,"is_additive":true},"{cookie}/s":{"symbol":"{cookie}/s","name":"cookies per second","print_symbol":"cookies/s","is_metric":true,"is_special":false,"is_additive":true},"{count}/s":{"symbol":"{count}/s","name":"counts per second","print_symbol":"counts/s","is_metric":true,"is_special":false,"is_additive":true},"{ctoken}":{"symbol":"{ctoken}","name":"ctokens","print_symbol":"ctokens","is_metric":false,"is_special":false,"is_additive":true},"{cursor}":{"symbol":"{cursor}","name":"cursors","print_symbol":"cursors","is_metric":false,"is_special":false,"is_additive":true},"{cursor}/s":{"symbol":"{cursor}/s","name":"cursors per second","print_symbol":"cursors/s","is_metric":true,"is_special":false,"is_additive":true},"{cycle}":{"symbol":"{cycle}","name":"cycles","print_symbol":"cycles","is_metric":false,"is_special":false,"is_additive":true},"{cycle}/s":{"symbol":"{cycle}/s","name":"cycles per second","print_symbol":"cycles/s","is_metric":true,"is_special":false,"is_additive":true},"{database}":{"symbol":"{database}","name":"databases","print_symbol":"databases","is_metric":false,"is_special":false,"is_additive":true},"{deadlock}/s":{"symbol":"{deadlock}/s","name":"deadlocks per second","print_symbol":"deadlocks/s","is_metric":true,"is_special":false,"is_additive":true},"{depth}":{"symbol":"{depth}","name":"depths","print_symbol":"depths","is_metric":false,"is_special":false,"is_additive":true},"{descriptor}":{"symbol":"{descriptor}","name":"descriptors","print_symbol":"descriptors","is_metric":false,"is_special":false,"is_additive":true},"{destination}":{"symbol":"{destination}","name":"destinations","print_symbol":"destinations","is_metric":false,"is_special":false,"is_additive":true},"{device}":{"symbol":"{device}","name":"devices","print_symbol":"devices","is_metric":false,"is_special":false,"is_additive":true},"{dialog}":{"symbol":"{dialog}","name":"dialogs","print_symbol":"dialogs","is_metric":false,"is_special":false,"is_additive":true},"{dialog}/s":{"symbol":"{dialog}/s","name":"dialogs per second","print_symbol":"dialogs/s","is_metric":true,"is_special":false,"is_additive":true},"{difficulty}":{"symbol":"{difficulty}","name":"difficulty","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{directory}":{"symbol":"{directory}","name":"directories","print_symbol":"directories","is_metric":false,"is_special":false,"is_additive":true},"{discard}/s":{"symbol":"{discard}/s","name":"discards per second","print_symbol":"discards/s","is_metric":true,"is_special":false,"is_additive":true},"{disk}":{"symbol":"{disk}","name":"disks","print_symbol":"disks","is_metric":false,"is_special":false,"is_additive":true},"{dispatch}/s":{"symbol":"{dispatch}/s","name":"dispatches per second","print_symbol":"dispatches/s","is_metric":true,"is_special":false,"is_additive":true},"{document}":{"symbol":"{document}","name":"documents","print_symbol":"documents","is_metric":false,"is_special":false,"is_additive":true},"{document}/s":{"symbol":"{document}/s","name":"documents per second","print_symbol":"documents/s","is_metric":true,"is_special":false,"is_additive":true},"{doc}":{"symbol":"{doc}","name":"docs","print_symbol":"docs","is_metric":false,"is_special":false,"is_additive":true},"{domain}":{"symbol":"{domain}","name":"domains","print_symbol":"domains","is_metric":false,"is_special":false,"is_additive":true},"{domain}/s":{"symbol":"{domain}/s","name":"domains per second","print_symbol":"domains/s","is_metric":true,"is_special":false,"is_additive":true},"{dpc}/s":{"symbol":"{dpc}/s","name":"dpcs per second","print_symbol":"dpcs/s","is_metric":true,"is_special":false,"is_additive":true},"{drop}/s":{"symbol":"{drop}/s","name":"drops per second","print_symbol":"drops/s","is_metric":true,"is_special":false,"is_additive":true},"{election}/s":{"symbol":"{election}/s","name":"elections per second","print_symbol":"elections/s","is_metric":true,"is_special":false,"is_additive":true},"{element}":{"symbol":"{element}","name":"elements","print_symbol":"elements","is_metric":false,"is_special":false,"is_additive":true},"{email}":{"symbol":"{email}","name":"emails","print_symbol":"emails","is_metric":false,"is_special":false,"is_additive":true},"{endpoint}":{"symbol":"{endpoint}","name":"endpoints","print_symbol":"endpoints","is_metric":false,"is_special":false,"is_additive":true},"{entropy}":{"symbol":"{entropy}","name":"entropies","print_symbol":"entropies","is_metric":false,"is_special":false,"is_additive":true},"{entry}":{"symbol":"{entry}","name":"entries","print_symbol":"entries","is_metric":false,"is_special":false,"is_additive":true},"{entry}/s":{"symbol":"{entry}/s","name":"entries per second","print_symbol":"entries/s","is_metric":true,"is_special":false,"is_additive":true},"{erase}":{"symbol":"{erase}","name":"erases","print_symbol":"erases","is_metric":false,"is_special":false,"is_additive":true},"{error}":{"symbol":"{error}","name":"errors","print_symbol":"errors","is_metric":false,"is_special":false,"is_additive":true},"{error}/s":{"symbol":"{error}/s","name":"errors per second","print_symbol":"errors/s","is_metric":true,"is_special":false,"is_additive":true},"{event}":{"symbol":"{event}","name":"events","print_symbol":"events","is_metric":false,"is_special":false,"is_additive":true},"{event}/s":{"symbol":"{event}/s","name":"events per second","print_symbol":"events/s","is_metric":true,"is_special":false,"is_additive":true},"{exception}":{"symbol":"{exception}","name":"exceptions","print_symbol":"exceptions","is_metric":false,"is_special":false,"is_additive":true},"{exception}/s":{"symbol":"{exception}/s","name":"exceptions per second","print_symbol":"exceptions/s","is_metric":true,"is_special":false,"is_additive":true},"{expectation}/s":{"symbol":"{expectation}/s","name":"expectations per second","print_symbol":"expectations/s","is_metric":true,"is_special":false,"is_additive":true},"{failure}":{"symbol":"{failure}","name":"failures","print_symbol":"failures","is_metric":false,"is_special":false,"is_additive":true},"{failure}/s":{"symbol":"{failure}/s","name":"failures per second","print_symbol":"failures/s","is_metric":true,"is_special":false,"is_additive":true},"{fail}/s":{"symbol":"{fail}/s","name":"fails per second","print_symbol":"fails/s","is_metric":true,"is_special":false,"is_additive":true},"{fault}":{"symbol":"{fault}","name":"faults","print_symbol":"faults","is_metric":false,"is_special":false,"is_additive":true},"{fd}":{"symbol":"{fd}","name":"fds","print_symbol":"fds","is_metric":false,"is_special":false,"is_additive":true},"{fetch}":{"symbol":"{fetch}","name":"fetches","print_symbol":"fetches","is_metric":false,"is_special":false,"is_additive":true},"{file descriptor}":{"symbol":"{file descriptor}","name":"file descriptors","print_symbol":"file descriptors","is_metric":false,"is_special":false,"is_additive":true},"{filesystem}":{"symbol":"{filesystem}","name":"filesystems","print_symbol":"filesystems","is_metric":false,"is_special":false,"is_additive":true},"{file}":{"symbol":"{file}","name":"files","print_symbol":"files","is_metric":false,"is_special":false,"is_additive":true},"{file}/s":{"symbol":"{file}/s","name":"files per second","print_symbol":"files/s","is_metric":true,"is_special":false,"is_additive":true},"{filter}/s":{"symbol":"{filter}/s","name":"filters per second","print_symbol":"filters/s","is_metric":true,"is_special":false,"is_additive":true},"{finally}/s":{"symbol":"{finally}/s","name":"finallies per second","print_symbol":"finallies/s","is_metric":true,"is_special":false,"is_additive":true},"{flag}":{"symbol":"{flag}","name":"flags","print_symbol":"flags","is_metric":false,"is_special":false,"is_additive":true},"{flow}":{"symbol":"{flow}","name":"flows","print_symbol":"flows","is_metric":false,"is_special":false,"is_additive":true},"{flush}":{"symbol":"{flush}","name":"flushes","print_symbol":"flushes","is_metric":false,"is_special":false,"is_additive":true},"{flush}/s":{"symbol":"{flush}/s","name":"flushes per second","print_symbol":"flushes/s","is_metric":true,"is_special":false,"is_additive":true},"{fragment}":{"symbol":"{fragment}","name":"fragments","print_symbol":"fragments","is_metric":false,"is_special":false,"is_additive":true},"{frame}/s":{"symbol":"{frame}/s","name":"frames per second","print_symbol":"frames/s","is_metric":true,"is_special":false,"is_additive":true},"{fsm}":{"symbol":"{fsm}","name":"fsms","print_symbol":"fsms","is_metric":false,"is_special":false,"is_additive":true},"{gc}/s":{"symbol":"{gc}/s","name":"gcs per second","print_symbol":"gcs/s","is_metric":true,"is_special":false,"is_additive":true},"{goroutine}":{"symbol":"{goroutine}","name":"goroutines","print_symbol":"goroutines","is_metric":false,"is_special":false,"is_additive":true},"{handler}/s":{"symbol":"{handler}/s","name":"handlers per second","print_symbol":"handlers/s","is_metric":true,"is_special":false,"is_additive":true},"{handle}":{"symbol":"{handle}","name":"handles","print_symbol":"handles","is_metric":false,"is_special":false,"is_additive":true},"{handle}/s":{"symbol":"{handle}/s","name":"handles per second","print_symbol":"handles/s","is_metric":true,"is_special":false,"is_additive":true},"{handshake}/s":{"symbol":"{handshake}/s","name":"handshakes per second","print_symbol":"handshakes/s","is_metric":true,"is_special":false,"is_additive":true},"{harakiri}":{"symbol":"{harakiri}","name":"harakiris","print_symbol":"harakiris","is_metric":false,"is_special":false,"is_additive":true},"{hash table}":{"symbol":"{hash table}","name":"hash tables","print_symbol":"hash tables","is_metric":false,"is_special":false,"is_additive":true},"{heartbeat}":{"symbol":"{heartbeat}","name":"heartbeats","print_symbol":"heartbeats","is_metric":false,"is_special":false,"is_additive":true},"{hit}/s":{"symbol":"{hit}/s","name":"hits per second","print_symbol":"hits/s","is_metric":true,"is_special":false,"is_additive":true},"{host}":{"symbol":"{host}","name":"hosts","print_symbol":"hosts","is_metric":false,"is_special":false,"is_additive":true},"{image}":{"symbol":"{image}","name":"images","print_symbol":"images","is_metric":false,"is_special":false,"is_additive":true},"{index}":{"symbol":"{index}","name":"indices","print_symbol":"indices","is_metric":false,"is_special":false,"is_additive":true},"{index}/s":{"symbol":"{index}/s","name":"indices per second","print_symbol":"indices/s","is_metric":true,"is_special":false,"is_additive":true},"{indice}":{"symbol":"{indice}","name":"indices","print_symbol":"indices","is_metric":false,"is_special":false,"is_additive":true},"{inode}":{"symbol":"{inode}","name":"inodes","print_symbol":"inodes","is_metric":false,"is_special":false,"is_additive":true},"{instruction}/s":{"symbol":"{instruction}/s","name":"instructions per second","print_symbol":"instructions/s","is_metric":true,"is_special":false,"is_additive":true},"{instruction}/{cycle}":{"symbol":"{instruction}/{cycle}","name":"instructions per cycle","print_symbol":"instructions/cycle","is_metric":false,"is_special":false,"is_additive":true},"{interface}":{"symbol":"{interface}","name":"interfaces","print_symbol":"interfaces","is_metric":false,"is_special":false,"is_additive":true},"{interrupt}":{"symbol":"{interrupt}","name":"interrupts","print_symbol":"interrupts","is_metric":false,"is_special":false,"is_additive":true},"{interrupt}/s":{"symbol":"{interrupt}/s","name":"interrupts per second","print_symbol":"interrupts/s","is_metric":true,"is_special":false,"is_additive":true},"{invoke}":{"symbol":"{invoke}","name":"invokes","print_symbol":"invokes","is_metric":false,"is_special":false,"is_additive":true},"{iop}":{"symbol":"{iop}","name":"iops","print_symbol":"iops","is_metric":false,"is_special":false,"is_additive":true},"{iop}/s":{"symbol":"{iop}/s","name":"iops per second","print_symbol":"iops/s","is_metric":true,"is_special":false,"is_additive":true},"{ip}":{"symbol":"{ip}","name":"ips","print_symbol":"ips","is_metric":false,"is_special":false,"is_additive":true},"{issue}/s":{"symbol":"{issue}/s","name":"issues per second","print_symbol":"issues/s","is_metric":true,"is_special":false,"is_additive":true},"{item}":{"symbol":"{item}","name":"items","print_symbol":"items","is_metric":false,"is_special":false,"is_additive":true},"{job}":{"symbol":"{job}","name":"jobs","print_symbol":"jobs","is_metric":false,"is_special":false,"is_additive":true},"{job}/s":{"symbol":"{job}/s","name":"jobs per second","print_symbol":"jobs/s","is_metric":true,"is_special":false,"is_additive":true},"{join}/s":{"symbol":"{join}/s","name":"joins per second","print_symbol":"joins/s","is_metric":true,"is_special":false,"is_additive":true},"{key}":{"symbol":"{key}","name":"keys","print_symbol":"keys","is_metric":false,"is_special":false,"is_additive":true},"{key}/s":{"symbol":"{key}/s","name":"keys per second","print_symbol":"keys/s","is_metric":true,"is_special":false,"is_additive":true},"{kill}":{"symbol":"{kill}","name":"kills","print_symbol":"kills","is_metric":false,"is_special":false,"is_additive":true},"{kill}/s":{"symbol":"{kill}/s","name":"kills per second","print_symbol":"kills/s","is_metric":true,"is_special":false,"is_additive":true},"{leaseholder}":{"symbol":"{leaseholder}","name":"leaseholders","print_symbol":"leaseholders","is_metric":false,"is_special":false,"is_additive":true},"{lease}":{"symbol":"{lease}","name":"leases","print_symbol":"leases","is_metric":false,"is_special":false,"is_additive":true},"{listener}":{"symbol":"{listener}","name":"listeners","print_symbol":"listeners","is_metric":false,"is_special":false,"is_additive":true},"{listener}/s":{"symbol":"{listener}/s","name":"listeners per second","print_symbol":"listeners/s","is_metric":true,"is_special":false,"is_additive":true},"{list}/s":{"symbol":"{list}/s","name":"lists per second","print_symbol":"lists/s","is_metric":true,"is_special":false,"is_additive":true},"{load}":{"symbol":"{load}","name":"loads","print_symbol":"loads","is_metric":false,"is_special":false,"is_additive":true},"{lock}":{"symbol":"{lock}","name":"locks","print_symbol":"locks","is_metric":false,"is_special":false,"is_additive":true},"{lock}/s":{"symbol":"{lock}/s","name":"locks per second","print_symbol":"locks/s","is_metric":true,"is_special":false,"is_additive":true},"{log2}":{"symbol":"{log2}","name":"base 2 log","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{login}":{"symbol":"{login}","name":"logins","print_symbol":"logins","is_metric":false,"is_special":false,"is_additive":true},"{log}/s":{"symbol":"{log}/s","name":"logs per second","print_symbol":"logs/s","is_metric":true,"is_special":false,"is_additive":true},"{lookup}/s":{"symbol":"{lookup}/s","name":"lookups per second","print_symbol":"lookups/s","is_metric":true,"is_special":false,"is_additive":true},"{mac address}/s":{"symbol":"{mac address}/s","name":"mac addresses per second","print_symbol":"mac addresses/s","is_metric":true,"is_special":false,"is_additive":true},"{marshalling}/s":{"symbol":"{marshalling}/s","name":"marshallings per second","print_symbol":"marshallings/s","is_metric":true,"is_special":false,"is_additive":true},"{message}":{"symbol":"{message}","name":"messages","print_symbol":"messages","is_metric":false,"is_special":false,"is_additive":true},"{message}/s":{"symbol":"{message}/s","name":"messages per second","print_symbol":"messages/s","is_metric":true,"is_special":false,"is_additive":true},"{method}":{"symbol":"{method}","name":"methods","print_symbol":"methods","is_metric":false,"is_special":false,"is_additive":true},"{method}/s":{"symbol":"{method}/s","name":"methods per second","print_symbol":"methods/s","is_metric":true,"is_special":false,"is_additive":true},"{migration}":{"symbol":"{migration}","name":"migrations","print_symbol":"migrations","is_metric":false,"is_special":false,"is_additive":true},"{miss}/s":{"symbol":"{miss}/s","name":"misses per second","print_symbol":"misses/s","is_metric":true,"is_special":false,"is_additive":true},"{modification}/s":{"symbol":"{modification}/s","name":"modifications per second","print_symbol":"modifications/s","is_metric":true,"is_special":false,"is_additive":true},"{netsplit}":{"symbol":"{netsplit}","name":"netsplits","print_symbol":"netsplits","is_metric":false,"is_special":false,"is_additive":true},"{netsplit}/s":{"symbol":"{netsplit}/s","name":"netsplits per second","print_symbol":"netsplits/s","is_metric":true,"is_special":false,"is_additive":true},"{node}":{"symbol":"{node}","name":"nodes","print_symbol":"nodes","is_metric":false,"is_special":false,"is_additive":true},"{ntp mode}":{"symbol":"{ntp mode}","name":"mode","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{object}":{"symbol":"{object}","name":"objects","print_symbol":"objects","is_metric":false,"is_special":false,"is_additive":true},"{object}/s":{"symbol":"{object}/s","name":"objects per second","print_symbol":"objects/s","is_metric":true,"is_special":false,"is_additive":true},"{observation}":{"symbol":"{observation}","name":"observations","print_symbol":"observations","is_metric":false,"is_special":false,"is_additive":true},"{observe}/s":{"symbol":"{observe}/s","name":"observes per second","print_symbol":"observes/s","is_metric":true,"is_special":false,"is_additive":true},"{octet}":{"symbol":"{octet}","name":"octets","print_symbol":"octets","is_metric":false,"is_special":false,"is_additive":true},"{open socket}":{"symbol":"{open socket}","name":"open sockets","print_symbol":"open sockets","is_metric":false,"is_special":false,"is_additive":true},"{operation}":{"symbol":"{operation}","name":"operations","print_symbol":"operations","is_metric":false,"is_special":false,"is_additive":true},"{operation}/s":{"symbol":"{operation}/s","name":"operations per second","print_symbol":"operations/s","is_metric":true,"is_special":false,"is_additive":true},"{overflow}/s":{"symbol":"{overflow}/s","name":"overflows per second","print_symbol":"overflows/s","is_metric":true,"is_special":false,"is_additive":true},"{packet}":{"symbol":"{packet}","name":"packets","print_symbol":"packets","is_metric":false,"is_special":false,"is_additive":true},"{packet}/s":{"symbol":"{packet}/s","name":"packets per second","print_symbol":"packets/s","is_metric":true,"is_special":false,"is_additive":true},"{page fault}":{"symbol":"{page fault}","name":"page faults","print_symbol":"page faults","is_metric":false,"is_special":false,"is_additive":true},"{page fault}/s":{"symbol":"{page fault}/s","name":"page faults per second","print_symbol":"page faults/s","is_metric":true,"is_special":false,"is_additive":true},"{page}":{"symbol":"{page}","name":"pages","print_symbol":"pages","is_metric":false,"is_special":false,"is_additive":true},"{page}/s":{"symbol":"{page}/s","name":"pages per second","print_symbol":"pages/s","is_metric":true,"is_special":false,"is_additive":true},"{panic}/s":{"symbol":"{panic}/s","name":"panics per second","print_symbol":"panics/s","is_metric":true,"is_special":false,"is_additive":true},"{peer}":{"symbol":"{peer}","name":"peers","print_symbol":"peers","is_metric":false,"is_special":false,"is_additive":true},"{pipe}":{"symbol":"{pipe}","name":"pipes","print_symbol":"pipes","is_metric":false,"is_special":false,"is_additive":true},"{pod}":{"symbol":"{pod}","name":"pods","print_symbol":"pods","is_metric":false,"is_special":false,"is_additive":true},"{pool}":{"symbol":"{pool}","name":"pools","print_symbol":"pools","is_metric":false,"is_special":false,"is_additive":true},"{prefetch}":{"symbol":"{prefetch}","name":"prefetches","print_symbol":"prefetches","is_metric":false,"is_special":false,"is_additive":true},"{prefetch}/s":{"symbol":"{prefetch}/s","name":"prefetches per second","print_symbol":"prefetches/s","is_metric":true,"is_special":false,"is_additive":true},"{probability}":{"symbol":"{probability}","name":"probabilities","print_symbol":"probabilities","is_metric":false,"is_special":false,"is_additive":true},"{problem}/s":{"symbol":"{problem}/s","name":"problems per second","print_symbol":"problems/s","is_metric":true,"is_special":false,"is_additive":true},"{process}":{"symbol":"{process}","name":"processes","print_symbol":"processes","is_metric":false,"is_special":false,"is_additive":true},"{process}/s":{"symbol":"{process}/s","name":"processes per second","print_symbol":"processes/s","is_metric":true,"is_special":false,"is_additive":true},"{producer}":{"symbol":"{producer}","name":"producers","print_symbol":"producers","is_metric":false,"is_special":false,"is_additive":true},"{program}":{"symbol":"{program}","name":"programs","print_symbol":"programs","is_metric":false,"is_special":false,"is_additive":true},"{propertie}/s":{"symbol":"{propertie}/s","name":"properties per second","print_symbol":"properties/s","is_metric":true,"is_special":false,"is_additive":true},"{publish}/s":{"symbol":"{publish}/s","name":"publishes per second","print_symbol":"publishes/s","is_metric":true,"is_special":false,"is_additive":true},"{pull}":{"symbol":"{pull}","name":"pulls","print_symbol":"pulls","is_metric":false,"is_special":false,"is_additive":true},"{pull}/s":{"symbol":"{pull}/s","name":"pulls per second","print_symbol":"pulls/s","is_metric":true,"is_special":false,"is_additive":true},"{query}":{"symbol":"{query}","name":"queries","print_symbol":"queries","is_metric":false,"is_special":false,"is_additive":true},"{query}/s":{"symbol":"{query}/s","name":"queries per second","print_symbol":"queries/s","is_metric":true,"is_special":false,"is_additive":true},"{question}/s":{"symbol":"{question}/s","name":"questions per second","print_symbol":"questions/s","is_metric":true,"is_special":false,"is_additive":true},"{queue processe}":{"symbol":"{queue processe}","name":"queue processes","print_symbol":"queue processes","is_metric":false,"is_special":false,"is_additive":true},"{queue processe}/s":{"symbol":"{queue processe}/s","name":"queue processes per second","print_symbol":"queue processes/s","is_metric":true,"is_special":false,"is_additive":true},"{queue}":{"symbol":"{queue}","name":"queues","print_symbol":"queues","is_metric":false,"is_special":false,"is_additive":true},"{range}":{"symbol":"{range}","name":"ranges","print_symbol":"ranges","is_metric":false,"is_special":false,"is_additive":true},"{read}/s":{"symbol":"{read}/s","name":"reads per second","print_symbol":"reads/s","is_metric":true,"is_special":false,"is_additive":true},"{read}/{query}":{"symbol":"{read}/{query}","name":"reads per query","print_symbol":"reads/query","is_metric":false,"is_special":false,"is_additive":true},"{recompile}/s":{"symbol":"{recompile}/s","name":"recompiles per second","print_symbol":"recompiles/s","is_metric":true,"is_special":false,"is_additive":true},"{record}/s":{"symbol":"{record}/s","name":"records per second","print_symbol":"records/s","is_metric":true,"is_special":false,"is_additive":true},"{redirect}/s":{"symbol":"{redirect}/s","name":"redirects per second","print_symbol":"redirects/s","is_metric":true,"is_special":false,"is_additive":true},"{reduction}":{"symbol":"{reduction}","name":"reductions","print_symbol":"reductions","is_metric":false,"is_special":false,"is_additive":true},"{referral}/s":{"symbol":"{referral}/s","name":"referrals per second","print_symbol":"referrals/s","is_metric":true,"is_special":false,"is_additive":true},"{registration}/s":{"symbol":"{registration}/s","name":"registrations per second","print_symbol":"registrations/s","is_metric":true,"is_special":false,"is_additive":true},"{rejection}/s":{"symbol":"{rejection}/s","name":"rejections per second","print_symbol":"rejections/s","is_metric":true,"is_special":false,"is_additive":true},"{relation}":{"symbol":"{relation}","name":"relations","print_symbol":"relations","is_metric":false,"is_special":false,"is_additive":true},"{reorg}":{"symbol":"{reorg}","name":"reorgs","print_symbol":"reorgs","is_metric":false,"is_special":false,"is_additive":true},"{repair}":{"symbol":"{repair}","name":"repairs","print_symbol":"repairs","is_metric":false,"is_special":false,"is_additive":true},"{replica}":{"symbol":"{replica}","name":"replicas","print_symbol":"replicas","is_metric":false,"is_special":false,"is_additive":true},"{reply}":{"symbol":"{reply}","name":"replies","print_symbol":"replies","is_metric":false,"is_special":false,"is_additive":true},"{reply}/s":{"symbol":"{reply}/s","name":"replies per second","print_symbol":"replies/s","is_metric":true,"is_special":false,"is_additive":true},"{report}/s":{"symbol":"{report}/s","name":"reports per second","print_symbol":"reports/s","is_metric":true,"is_special":false,"is_additive":true},"{request}":{"symbol":"{request}","name":"requests","print_symbol":"requests","is_metric":false,"is_special":false,"is_additive":true},"{request}/s":{"symbol":"{request}/s","name":"requests per second","print_symbol":"requests/s","is_metric":true,"is_special":false,"is_additive":true},"{reset}/s":{"symbol":"{reset}/s","name":"resets per second","print_symbol":"resets/s","is_metric":true,"is_special":false,"is_additive":true},"{resolution}/s":{"symbol":"{resolution}/s","name":"resolutions per second","print_symbol":"resolutions/s","is_metric":true,"is_special":false,"is_additive":true},"{respawn}":{"symbol":"{respawn}","name":"respawns","print_symbol":"respawns","is_metric":false,"is_special":false,"is_additive":true},"{response}":{"symbol":"{response}","name":"responses","print_symbol":"responses","is_metric":false,"is_special":false,"is_additive":true},"{response}/s":{"symbol":"{response}/s","name":"responses per second","print_symbol":"responses/s","is_metric":true,"is_special":false,"is_additive":true},"{restart}":{"symbol":"{restart}","name":"restarts","print_symbol":"restarts","is_metric":false,"is_special":false,"is_additive":true},"{retrieval}/s":{"symbol":"{retrieval}/s","name":"retrievals per second","print_symbol":"retrievals/s","is_metric":true,"is_special":false,"is_additive":true},"{retry}":{"symbol":"{retry}","name":"retries","print_symbol":"retries","is_metric":false,"is_special":false,"is_additive":true},"{retry}/s":{"symbol":"{retry}/s","name":"retries per second","print_symbol":"retries/s","is_metric":true,"is_special":false,"is_additive":true},"{reuse}/s":{"symbol":"{reuse}/s","name":"reuses per second","print_symbol":"reuses/s","is_metric":true,"is_special":false,"is_additive":true},"{rotation}/min":{"symbol":"{rotation}/min","name":"rotations per minute","print_symbol":"rotations/min","is_metric":false,"is_special":false,"is_additive":true},"{row}":{"symbol":"{row}","name":"rows","print_symbol":"rows","is_metric":false,"is_special":false,"is_additive":true},"{row}/s":{"symbol":"{row}/s","name":"rows per second","print_symbol":"rows/s","is_metric":true,"is_special":false,"is_additive":true},"{rule}":{"symbol":"{rule}","name":"rules","print_symbol":"rules","is_metric":false,"is_special":false,"is_additive":true},"{sample}":{"symbol":"{sample}","name":"samples","print_symbol":"samples","is_metric":false,"is_special":false,"is_additive":true},"{scan}/s":{"symbol":"{scan}/s","name":"scans per second","print_symbol":"scans/s","is_metric":true,"is_special":false,"is_additive":true},"{score}":{"symbol":"{score}","name":"scores","print_symbol":"scores","is_metric":false,"is_special":false,"is_additive":true},"{search}/s":{"symbol":"{search}/s","name":"searches per second","print_symbol":"searches/s","is_metric":true,"is_special":false,"is_additive":true},"{sector}":{"symbol":"{sector}","name":"sectors","print_symbol":"sectors","is_metric":false,"is_special":false,"is_additive":true},"{sector}/s":{"symbol":"{sector}/s","name":"sectors per second","print_symbol":"sectors/s","is_metric":true,"is_special":false,"is_additive":true},"{segment}":{"symbol":"{segment}","name":"segments","print_symbol":"segments","is_metric":false,"is_special":false,"is_additive":true},"{segment}/s":{"symbol":"{segment}/s","name":"segments per second","print_symbol":"segments/s","is_metric":true,"is_special":false,"is_additive":true},"{semaphore}":{"symbol":"{semaphore}","name":"semaphores","print_symbol":"semaphores","is_metric":false,"is_special":false,"is_additive":true},"{sensor}":{"symbol":"{sensor}","name":"sensors","print_symbol":"sensors","is_metric":false,"is_special":false,"is_additive":true},"{server}":{"symbol":"{server}","name":"servers","print_symbol":"servers","is_metric":false,"is_special":false,"is_additive":true},"{session}":{"symbol":"{session}","name":"sessions","print_symbol":"sessions","is_metric":false,"is_special":false,"is_additive":true},"{session}/s":{"symbol":"{session}/s","name":"sessions per second","print_symbol":"sessions/s","is_metric":true,"is_special":false,"is_additive":true},"{shard}":{"symbol":"{shard}","name":"shards","print_symbol":"shards","is_metric":false,"is_special":false,"is_additive":true},"{share}":{"symbol":"{share}","name":"shares","print_symbol":"shares","is_metric":false,"is_special":false,"is_additive":true},"{shutdown}":{"symbol":"{shutdown}","name":"shutdowns","print_symbol":"shutdowns","is_metric":false,"is_special":false,"is_additive":true},"{sibling}":{"symbol":"{sibling}","name":"siblings","print_symbol":"siblings","is_metric":false,"is_special":false,"is_additive":true},"{socket}":{"symbol":"{socket}","name":"sockets","print_symbol":"sockets","is_metric":false,"is_special":false,"is_additive":true},"{socket}/s":{"symbol":"{socket}/s","name":"sockets per second","print_symbol":"sockets/s","is_metric":true,"is_special":false,"is_additive":true},"{softirq}/s":{"symbol":"{softirq}/s","name":"softirqs per second","print_symbol":"softirqs/s","is_metric":true,"is_special":false,"is_additive":true},"{source}":{"symbol":"{source}","name":"sources","print_symbol":"sources","is_metric":false,"is_special":false,"is_additive":true},"{split}/s":{"symbol":"{split}/s","name":"splits per second","print_symbol":"splits/s","is_metric":true,"is_special":false,"is_additive":true},"{sstable}":{"symbol":"{sstable}","name":"sstables","print_symbol":"sstables","is_metric":false,"is_special":false,"is_additive":true},"{stack_frame}/s":{"symbol":"{stack_frame}/s","name":"stack_frames per second","print_symbol":"stack_frames/s","is_metric":true,"is_special":false,"is_additive":true},"{star}":{"symbol":"{star}","name":"stars","print_symbol":"stars","is_metric":false,"is_special":false,"is_additive":true},"{statement}":{"symbol":"{statement}","name":"statements","print_symbol":"statements","is_metric":false,"is_special":false,"is_additive":true},"{statement}/s":{"symbol":"{statement}/s","name":"statements per second","print_symbol":"statements/s","is_metric":true,"is_special":false,"is_additive":true},"{status}":{"symbol":"{status}","name":"status","print_symbol":"","is_metric":false,"is_special":false,"is_additive":true},"{stat}":{"symbol":"{stat}","name":"stats","print_symbol":"stats","is_metric":false,"is_special":false,"is_additive":true},"{stratum}":{"symbol":"{stratum}","name":"stratum","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{stub}/s":{"symbol":"{stub}/s","name":"stubs per second","print_symbol":"stubs/s","is_metric":true,"is_special":false,"is_additive":true},"{subscription}":{"symbol":"{subscription}","name":"subscriptions","print_symbol":"subscriptions","is_metric":false,"is_special":false,"is_additive":true},"{subscription}/s":{"symbol":"{subscription}/s","name":"subscriptions per second","print_symbol":"subscriptions/s","is_metric":true,"is_special":false,"is_additive":true},"{switch}":{"symbol":"{switch}","name":"switches","print_symbol":"switches","is_metric":false,"is_special":false,"is_additive":true},"{sync}":{"symbol":"{sync}","name":"syncs","print_symbol":"syncs","is_metric":false,"is_special":false,"is_additive":true},"{syscall}/s":{"symbol":"{syscall}/s","name":"syscalls per second","print_symbol":"syscalls/s","is_metric":true,"is_special":false,"is_additive":true},"{table}":{"symbol":"{table}","name":"tables","print_symbol":"tables","is_metric":false,"is_special":false,"is_additive":true},"{table}/s":{"symbol":"{table}/s","name":"tables per second","print_symbol":"tables/s","is_metric":true,"is_special":false,"is_additive":true},"{task}":{"symbol":"{task}","name":"tasks","print_symbol":"tasks","is_metric":false,"is_special":false,"is_additive":true},"{task}/s":{"symbol":"{task}/s","name":"tasks per second","print_symbol":"tasks/s","is_metric":true,"is_special":false,"is_additive":true},"{thread}":{"symbol":"{thread}","name":"threads","print_symbol":"threads","is_metric":false,"is_special":false,"is_additive":true},"{thread}/s":{"symbol":"{thread}/s","name":"threads per second","print_symbol":"threads/s","is_metric":true,"is_special":false,"is_additive":true},"{tick}":{"symbol":"{tick}","name":"ticks","print_symbol":"ticks","is_metric":false,"is_special":false,"is_additive":true},"{timeout}/s":{"symbol":"{timeout}/s","name":"timeouts per second","print_symbol":"timeouts/s","is_metric":true,"is_special":false,"is_additive":true},"{token}":{"symbol":"{token}","name":"tokens","print_symbol":"tokens","is_metric":false,"is_special":false,"is_additive":true},"{trace}/s":{"symbol":"{trace}/s","name":"traces per second","print_symbol":"traces/s","is_metric":true,"is_special":false,"is_additive":true},"{transaction}":{"symbol":"{transaction}","name":"transactions","print_symbol":"transactions","is_metric":false,"is_special":false,"is_additive":true},"{transaction}/s":{"symbol":"{transaction}/s","name":"transactions per second","print_symbol":"transactions/s","is_metric":true,"is_special":false,"is_additive":true},"{transition}/s":{"symbol":"{transition}/s","name":"transitions per second","print_symbol":"transitions/s","is_metric":true,"is_special":false,"is_additive":true},"{trip}/s":{"symbol":"{trip}/s","name":"trips per second","print_symbol":"trips/s","is_metric":true,"is_special":false,"is_additive":true},"{tube}":{"symbol":"{tube}","name":"tubes","print_symbol":"tubes","is_metric":false,"is_special":false,"is_additive":true},"{unsynchronized block}":{"symbol":"{unsynchronized block}","name":"unsynchronized blocks","print_symbol":"unsynchronized blocks","is_metric":false,"is_special":false,"is_additive":true},"{update}/s":{"symbol":"{update}/s","name":"updates per second","print_symbol":"updates/s","is_metric":true,"is_special":false,"is_additive":true},"{user}":{"symbol":"{user}","name":"users","print_symbol":"users","is_metric":false,"is_special":false,"is_additive":true},"{view}":{"symbol":"{view}","name":"views","print_symbol":"views","is_metric":false,"is_special":false,"is_additive":true},"{vm}":{"symbol":"{vm}","name":"vms","print_symbol":"vms","is_metric":false,"is_special":false,"is_additive":true},"{volume}":{"symbol":"{volume}","name":"volumes","print_symbol":"volumes","is_metric":false,"is_special":false,"is_additive":true},"{waiter}/s":{"symbol":"{waiter}/s","name":"waiters per second","print_symbol":"waiters/s","is_metric":true,"is_special":false,"is_additive":true},"{watch}":{"symbol":"{watch}","name":"watches","print_symbol":"watches","is_metric":false,"is_special":false,"is_additive":true},"{worker}":{"symbol":"{worker}","name":"workers","print_symbol":"workers","is_metric":false,"is_special":false,"is_additive":true},"{worker}/s":{"symbol":"{worker}/s","name":"workers per second","print_symbol":"workers/s","is_metric":true,"is_special":false,"is_additive":true},"{writeset}":{"symbol":"{writeset}","name":"writesets","print_symbol":"writesets","is_metric":false,"is_special":false,"is_additive":true},"{writeset}/s":{"symbol":"{writeset}/s","name":"writesets per second","print_symbol":"writesets/s","is_metric":true,"is_special":false,"is_additive":true},"{write}":{"symbol":"{write}","name":"writes","print_symbol":"writes","is_metric":false,"is_special":false,"is_additive":true},"{write}/s":{"symbol":"{write}/s","name":"writes per second","print_symbol":"writes/s","is_metric":true,"is_special":false,"is_additive":true},"{xid}":{"symbol":"{xid}","name":"transaction ID","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{zone}":{"symbol":"{zone}","name":"zones","print_symbol":"zones","is_metric":false,"is_special":false,"is_additive":true},"{z}":{"symbol":"{z}","name":"z-score","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false}},"aliases":{"% of time working":"%","Ah":"A.h","Ampere":"A","Amps":"A","B":"By","B/s":"By/s","Celsius":"Cel","Fahrenheit":"[degF]","GiB":"GiBy","Jobs":"{job}","Joule":"J","KB":"KiBy","KiB":"KiBy","KiB/operation":"KiBy/{operation}","KiB/s":"KiBy/s","MB":"MiBy","Mbps":"Mibit/s","MiB":"MiBy","MiB/s":"MiBy/s","minutes":"min","percent":"%","RPM":"{rotation}/min","rpm":"{rotation}/min","Rotations / Minute":"{rotation}/min","Rotations/min":"{rotation}/min","Status":"{status}","Volts":"V","Watt":"W","Watts":"W","Wh":"W.h","acquisitions/s":"{acquisition}/s","actions/s":"{action}/s","active connections":"{connection}","address spaces":"{address space}","answers/s":"{answer}/s","arrays":"{array}","assemblies/s":"{assembly}/s","asserts/s":"{assert}/s","associations":"{association}","attempts":"{attempt}","attempts/s":"{attempt}/s","authentications/s":"{authentication}/s","bans/s":"{ban}/s","binds/s":"{bind}/s","block":"{block}","blocked subscriptions":"{blocked subscription}","blocks":"{block}","bool":"{boolean}","boolean":"{boolean}","buffers":"{buffer}","bytes":"By","bytes/s":"By/s","calls":"{call}","calls/s":"{call}/s","ccw/s":"{ccw}/s","celsius":"Cel","chains":"{chain}","changes/s":"{change}/s","channels/s":"{channel}/s","characters":"{character}","checkpoints/s":"{checkpoint}/s","checks / sec":"{check}/s","checks/s":"{check}/s","children":"{child}","chunks":"{chunk}","classes":"{class}","classes/s":"{class}/s","clients":"{client}","clusters":"{cluster}","clusters/s":"{cluster}/s","code":"{code}","collections":"{collection}","columns":"{column}","commands":"{command}","commands/s":"{command}/s","commits":"{commit}","commits/s":"{commit}/s","compilations/s":"{compilation}/s","components":"{component}","connections":"{connection}","connections/s":"{connection}/s","conns":"{connection}","consumers":"{consumer}","containers":"{container}","contentions/s":"{contention}/s","context switches/s":"{context switch}/s","contexts":"{context}","cookies/s":"{cookie}/s","count":"1","counts/s":"{count}/s","cpu time":"1","cpus":"[CPU]","ctokens":"{ctoken}","current threads":"{thread}","cursors":"{cursor}","cursors/s":"{cursor}/s","cycle count":"{cycle}","cycles":"{cycle}","cycles/s":"{cycle}/s","dBm":"dB[mW]","databases":"{database}","deadlocks/s":"{deadlock}/s","depth":"{depth}","descriptors":"{descriptor}","dests":"{destination}","devices":"{device}","dialogs":"{dialog}","dialogs/s":"{dialog}/s","difference":"{process}","difficulty":"{difficulty}","directories":"{directory}","discards/s":"{discard}/s","disks":"{disk}","dispatches/s":"{dispatch}/s","docs":"{doc}","documents":"{document}","documents/s":"{document}/s","domain/s":"{domain}/s","domains":"{domain}","dpcs/s":"{dpc}/s","drops/s":"{drop}/s","elections/s":"{election}/s","elements":"{element}","emails":"{email}","endpoints":"{endpoint}","entries":"{entry}","entries/s":"{entry}/s","entropy":"{entropy}","erases":"{erase}","errors":"{error}","errors/s":"{error}/s","events":"{event}","events/s":"{event}/s","exceptions":"{exception}","exceptions/s":"{exception}/s","exit status":"{status}","expectations/s":"{expectation}/s","expired/s":"{object}/s","failed disks":"{disk}","failed servers":"{server}","fails/s":"{fail}/s","failures":"{failure}","failures/s":"{failure}/s","faults":"{fault}","faults/s":"{page fault}/s","fd":"{fd}","fetches":"{fetch}","file descriptors":"{file descriptor}","files":"{file}","files/s":"{file}/s","filesystems":"{filesystem}","filters/s":"{filter}/s","finallys/s":"{finally}/s","flag":"{flag}","flows":"{flow}","flushes":"{flush}","flushes/s":"{flush}/s","fragments":"{fragment}","frames/s":"{frame}/s","fsms":"{fsm}","gc/s":"{gc}/s","goroutines":"{goroutine}","handlers/s":"{handler}/s","handles":"{handle}","handles/s":"{handle}/s","handshakes/s":"{handshake}/s","harakiris":"{harakiri}","hash tables":"{hash table}","health servers":"{server}","heartbeats":"{heartbeat}","hits/s":"{hit}/s","hmode":"{ntp mode}","hosts":"{host}","hours":"h","images":"{image}","index":"{index}","indexes":"{index}","indexes/s":"{index}/s","indices":"{indice}","inodes":"{inode}","instructions/cycle":"{instruction}/{cycle}","instructions/s":"{instruction}/s","interfaces":"{interface}","interrupts":"{interrupt}","interrupts/s":"{interrupt}/s","invokes":"{invoke}","iops":"{iop}","iops/s":"{iop}/s","ips":"{ip}","is degraded":"{boolean}","issues/s":"{issue}/s","items":"{item}","jobs":"{job}","jobs/s":"{job}/s","joins/s":"{join}/s","keys":"{key}","keys/s":"{key}/s","kills":"{kill}","kills/s":"{kill}/s","kilobit/s":"Kibit/s","kilobits":"Kibit","kilobits/s":"Kibit/s","kilobytes":"KiBy","kilobytes/s":"KiBy/s","leaseholders":"{leaseholder}","leases":"{lease}","level":"{stratum}","listeners":"{listener}","listeners/s":"{listener}/s","lists/s":"{list}/s","load":"{load}","locks":"{lock}","locks/s":"{lock}/s","log2":"{log2}","logs/s":"{log}/s","lookups/s":"{lookup}/s","mac addresses/s":"{mac address}/s","marshallings/s":"{marshalling}/s","merged operations/s":"{operation}/s","message batches":"{batch}","message batches/s":"{batch}/s","messages":"{message}","messages/s":"{message}/s","methods":"{method}","methods/s":"{method}/s","microseconds":"us","microseconds lost/s":"us/s","microseconds/s":"us/s","migrations":"{migration}","milisecondds":"ms","miliseconds":"ms","millicpu":"m[CPU]","milliseconds":"ms","milliseconds/operation":"ms/{operation}","milliseconds/s":"ms/s","misses":"{thread}","misses/s":"{miss}/s","modifications/s":"{modification}/s","netsplits":"{netsplit}","netsplits/s":"{netsplit}/s","nodes":"{node}","nuked/s":"{object}/s","num":"1","number":"{thread}","number/s":"{lookup}/s","objects":"{object}","objects/s":"{object}/s","observations":"{observation}","observes/s":"{observe}/s","octets":"{octet}","open files":"{file}","open pipes":"{pipe}","open sockets":"{open socket}","operations":"{operation}","operations/s":"{operation}/s","ops/s":"{operation}/s","overflows/s":"{overflow}/s","packets":"{packet}","packets/s":"{packet}/s","page faults/s":"{page fault}/s","page/s":"{page}/s","pages":"{page}","pages/s":"{page}/s","panics/s":"{panic}/s","peers":"{peer}","percentage":"%","pgfaults/s":"{page fault}/s","pipes":"{pipe}","pmode":"{ntp mode}","pods":"{pod}","pools":"{pool}","ppm":"[ppm]","pps":"{packet}/s","prefetches":"{prefetch}","prefetches/s":"{prefetch}/s","probability":"{probability}","problems/s":"{problem}/s","processes":"{process}","processes/s":"{process}/s","producers":"{producer}","programs":"{program}","properties/s":"{propertie}/s","publishes/s":"{publish}/s","pulls":"{pull}","pulls/s":"{pull}/s","queries":"{query}","queries/s":"{query}/s","questions/s":"{question}/s","queue processes":"{queue processe}","queue processes/s":"{queue processe}/s","queue_length":"1","queued_size":"1","queues":"{queue}","ranges":"{range}","ratio":"1","reads/query":"{read}/{query}","reads/s":"{read}/s","recompiles/s":"{recompile}/s","records/s":"{record}/s","redirects/s":"{redirect}/s","reductions":"{reduction}","referrals/s":"{referral}/s","registrations/s":"{registration}/s","rejections/s":"{rejection}/s","relations":"{relation}","reorgs":"{reorg}","repairs":"{repair}","replicas":"{replica}","replies":"{reply}","replies/s":"{reply}/s","reports/s":"{report}/s","requests":"{request}","requests/s":"{request}/s","resets/s":"{reset}/s","resolutions/s":"{resolution}/s","respawns":"{respawn}","responses":"{response}","responses/s":"{response}/s","restarts":"{restart}","retries":"{retry}","retries/s":"{retry}/s","retrievals/s":"{retrieval}/s","reuses/s":"{reuse}/s","rows":"{row}","rows/s":"{row}/s","rules":"{rule}","running_containers":"{container}","running_pods":"{pod}","samples":"{sample}","scans/s":"{scan}/s","score":"{score}","searches/s":"{search}/s","seconds":"s","seconds/s":"s/s","sectors":"{sector}","sectors/s":"{sector}/s","segments":"{segment}","segments/s":"{segment}/s","semaphores":"{semaphore}","sensors":"{sensor}","servers":"{server}","sessions":"{session}","sessions/s":"{session}/s","shards":"{shard}","shares":"{share}","shutdowns":"{shutdown}","siblings":"{sibling}","size":"By","sockets":"{socket}","sockets/s":"{socket}/s","softirqs/s":"{softirq}/s","sources":"{source}","splits/s":"{split}/s","sstables":"{sstable}","stack_frames/s":"{stack_frame}/s","stars":"{star}","state":"{status}","statements":"{statement}","statements/s":"{statement}/s","stats":"{stat}","status":"{status}","stratum":"{stratum}","stubs/s":"{stub}/s","subscriptions":"{subscription}","subscriptions/s":"{subscription}/s","switches":"{switch}","syncs":"{sync}","syscalls/s":"{syscall}/s","tables":"{table}","tables/s":"{table}/s","tasks":"{task}","tasks/s":"{task}/s","temperature":"Cel","threads":"{thread}","threads/s":"{thread}/s","ticks":"{tick}","timeout/s":"{timeout}/s","timeouts/s":"{timeout}/s","token_requests/s":"{request}/s","tokens":"{token}","total":"1","traces / sec":"{trace}/s","transactions":"{transaction}","transactions/s":"{transaction}/s","transitions/s":"{transition}/s","trips/s":"{trip}/s","tubes":"{tube}","unsynchronized blocks":"{unsynchronized block}","updates/s":"{update}/s","users":"{user}","value":"1","views":"{view}","vms":"{vm}","volumes":"{volume}","waiters/s":"{waiter}/s","watches":"{watch}","weight":"1","workers":"{worker}","workers/s":"{worker}/s","writes":"{write}","writes/s":"{write}/s","writesets":"{writeset}","writesets/s":"{writeset}/s","xid":"{xid}","z":"{z}","zones":"{zone}"}}')}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js b/src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js
new file mode 100644
index 000000000..40697736c
--- /dev/null
+++ b/src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js
@@ -0,0 +1,2 @@
+/*! For license information please see netdata.ui.f50ab375c8daf7a2a547.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b0f2700-1666-43e4-938d-bd17b7cb5982",e._sentryDebugIdIdentifier="sentry-dbid-8b0f2700-1666-43e4-938d-bd17b7cb5982")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[4292],{81900:(e,t,n)=>{t.__esModule=!0,t.StyledIcon=void 0;var r=c(n(8711)),o=n(41234),a=c(n(32305)),i=c(n(27988)),l=c(n(88725));function c(e){return e&&e.__esModule?e:{default:e}}var s={small:"14px",medium:"16px",large:"24px"};t.StyledIcon=r.default.svg.withConfig({displayName:"styled__StyledIcon",componentId:"sc-1wxz4b1-0"})(["height:",";width:",";opacity:",";pointer-events:",";"," "," "," "," "," ",""],(function(e){var t=e.size;return e.height||s[t]}),(function(e){var t=e.size;return e.width||s[t]}),(function(e){return e.disabled?.4:1}),(function(e){return e.disabled?"none":"unset"}),(function(e){var t=e.rotate;return!isNaN(t)&&"transform: rotate("+90*t+"deg);"}),(function(e){var t=e.theme,n=e.color;return n&&"fill: "+(0,o.getColor)(n)({theme:t})+";"}),(function(e){var t=e.theme,n=e.hoverColor;return n&&"&:hover { fill: "+(0,o.getColor)(n)({theme:t})+"; }"}),a.default,i.default,l.default)},10058:(e,t,n)=>{n.r(t),n.d(t,{AlertMasterCard:()=>l_,Animation:()=>yy,BaseDraggableTabs:()=>hC,Box:()=>Zg,Button:()=>Qg,ButtonGroup:()=>xp,Checkbox:()=>Tp,Collapsible:()=>Sy,ConfirmationDialog:()=>R_,DarkTheme:()=>S,DefaultTheme:()=>y,Documentation:()=>wB,DraggableTabs:()=>vC,Drop:()=>Cf,DropContainer:()=>np,Flex:()=>qg,GlobalStyles:()=>lS,H0:()=>Df,H1:()=>Ff,H2:()=>If,H3:()=>Tf,H4:()=>Rf,H5:()=>Nf,H6:()=>Uf,Icon:()=>Rm,IconButton:()=>gp,IconComponents:()=>o,InputRange:()=>ow,Intersection:()=>CC,Layer:()=>fy,List:()=>Af,ListItem:()=>Lf,MasterCard:()=>g_,Menu:()=>Yb,MenuButton:()=>ab,MenuDropdown:()=>Db,MenuDropdownItem:()=>Wb,MenuItemContainer:()=>Gb,Modal:()=>j_,ModalBody:()=>M_,ModalButton:()=>S_,ModalCloseButton:()=>k_,ModalContent:()=>__,ModalFooter:()=>E_,ModalHeader:()=>z_,MultiRangeInput:()=>uw,NavigationTab:()=>RB,NavigationTabs:()=>jB,News:()=>EB,Pill:()=>qC,Popover:()=>tb,PortalSidebar:()=>jp,ProgressBar:()=>$C,RadioButton:()=>Pw,SearchInput:()=>zb,Select:()=>Gz,Sidebar:()=>Mp,Tab:()=>Uw,TabSeparator:()=>NB,Table:()=>iS,Tabs:()=>Kw,Text:()=>Jf,TextBig:()=>Qf,TextBigger:()=>$f,TextFemto:()=>Gf,TextHuge:()=>Yf,TextInput:()=>Xp,TextMicro:()=>qf,TextNano:()=>Wf,TextSmall:()=>Kf,Toggle:()=>_w,Tooltip:()=>up,alignSelf:()=>X,breakpoints:()=>Pp,capitalizeFirstLetter:()=>cS,controlFocused:()=>mw,controlReset:()=>gw,cursor:()=>Lm,devices:()=>Hp,getColor:()=>D,getOrElse:()=>A,getRgbColor:()=>F,getSizeBy:()=>I,getSizeUnit:()=>L,iconsList:()=>Am,isArray:()=>Eb,isEmptyObject:()=>kb,isFunction:()=>Mb,isObject:()=>Sb,makeBig:()=>Tg,makeBigger:()=>Rg,makeBox:()=>Yg,makeFemto:()=>Ag,makeFlex:()=>Wg,makeH0:()=>Eg,makeH1:()=>Sg,makeH2:()=>kg,makeH3:()=>jg,makeH4:()=>Hg,makeH5:()=>Pg,makeH6:()=>Vg,makeHuge:()=>Ng,makeMicro:()=>Dg,makeNano:()=>Lg,makeSmall:()=>Fg,makeText:()=>Ig,makeTypography:()=>Mg,margin:()=>U,mergeRefs:()=>jb,opacity:()=>Um,padding:()=>G,position:()=>re,propOrElse:()=>V,round:()=>Y,textTransform:()=>te,useCheckboxesList:()=>Rp,useFocusedState:()=>hw,useInputValue:()=>vw,useIntersection:()=>yC,useNavigationArrows:()=>qB,useTouchedState:()=>dw,webkitVisibleScrollbar:()=>fw,zIndex:()=>Gm});var r={};n.r(r),n.d(r,{GUTTER_HEIGHT:()=>f,SIZE_SUB_UNIT:()=>m,SIZE_UNIT:()=>g});var o={};n.r(o),n.d(o,{LoaderIcon:()=>Be});var a={};n.r(a),n.d(a,{hasBrowserEnv:()=>qx,hasStandardBrowserEnv:()=>Kx,hasStandardBrowserWebWorkerEnv:()=>Qx});var i=n(96540),l=n(8711),c=n(13759);const s={transparent:{full:"rgba(255,255,255,0.0)",semi:"rgba(255, 255, 255, 0.5)",popover:"rgba(18, 36, 50, 0.9)"},green:{poker:"#2f5446",chateau:"#42B861",netdata:"#00AB44",deyork:"#68C47D",vista:"#96D4A2",fringyFlower:"#BFE5C6",frostee:"#E5F5E8",limeGreen:"#48E499",green10:"#001107",green20:"#00220E",green30:"#003314",green40:"#00441B",green50:"#005622",green60:"#006729",green70:"#00783",green80:"#008936",green90:"#009A3D",green100:"#00AB44",green110:"#00CD51",green120:"#00EF5F",green130:"#12FF70",green140:"#34FF84",green150:"#56FF99",green160:"#77FFAD",green170:"#99FFC2",green180:"#BBFFD6",green190:"#DDFFEB",green195:"#EEFFF5",green196:"#F1FFF7",green197:"#F5FFF9",green198:"#F8FFFB",green199:"#FCFFFD",green200:"#09AB49",green300:"#13A94F",green400:"#1DA754",green500:"#29A45A",green600:"#35A060",green700:"#439B66",green800:"#51966C",green900:"#608F73",green1000:"#6F8879"},red:{pomegranate:"#FF4136",carnation:"#F95251",apricot:"#ED7374",wewak:"#F59B9B",pastelpink:"#FFCED3",lavender:"#FFEBEF",red10:"#160205",red20:"#2C0409",red30:"#42070E",red40:"#580913",red50:"#6E0B18",red60:"#830D1C",red70:"#990F21",red80:"#AF1226",red90:"#C5142A",red100:"#DB162F",red110:"#E9233C",red120:"#EB3B52",red130:"#EE5467",red140:"#F06C7D",red150:"#F38593",red160:"#F59DA8",red170:"#F8B6BE",red180:"#FACED4",red190:"#FDE7E9",red200:"#D22037",red300:"#CA2A3E",red400:"#C13546",red500:"#B83F4E",red600:"#AF4956",red700:"#A6545F",red800:"#9D5F67",red900:"#936A6F",red1000:"#8A7577"},yellow:{amber:"#FFC300",sunglow:"#FFCC26",seaBuckthorn:"#F9A825",mustard:"#FFD74F",salomie:"#FFE182",buttermilk:"#FFEDB3",ginfizz:"#FFF8E1",yellow10:"#201300",yellow20:"#402600",yellow30:"#603900",yellow40:"#804B00",yellow50:"#A05E00",yellow60:"#BF7100",yellow70:"#DF8400",yellow80:"#FF9700",yellow90:"#FFA420",yellow100:"#FFB140",yellow110:"#FFB953",yellow120:"#FFC166",yellow130:"#FFC879",yellow140:"#FFD08C",yellow150:"#FFD8A0",yellow160:"#FFE0B3",yellow170:"#FFE8C6",yellow180:"#FFEFD9",yellow190:"#FFF7EC",yellow200:"#F5AD44",yellow300:"#EBA848",yellow400:"#E0A44D",yellow500:"#D49F52",yellow600:"#C79A58",yellow700:"#BA955F",yellow800:"#AD9066",yellow900:"#9E8B6E",yellow1000:"#908577"},neutral:{white:"#FFFFFF",black:"#000000",limedSpruce:"#35414A",regentgrey:"#8F9EAA",blackhaze:"#F7F8F8",brightGrey:"#E9ECEC",chineseWhite:"#DEE3E3",iron:"#CFD5DA",porcelain:"#ECEEEF",bluebayoux:"#536775",shark:"#1C1E22",tuna:"#383B40",outerSpace:"#2B3136",ratsbane:"#3E4551",arsenic:"#353B45",gunmetal:"#282C34",darkGunmetal:"#21252B",eerieBlack:"#181c20",grey05:"#040505",grey10:"#080A0A",grey15:"#0C0F0F",grey20:"#101313",grey25:"#151818",grey30:"#191D1D",grey35:"#1D2222",grey40:"#212727",grey45:"#252C2C",grey50:"#293030",grey55:"#2D3535",grey60:"#313A3A",grey65:"#353F3F",grey70:"#394444",grey75:"#3D4949",grey80:"#424E4E",grey85:"#465252",grey90:"#4A5757",grey95:"#4E5C5C",grey100:"#526161",grey105:"#5A6A6A",grey110:"#617373",grey115:"#697C7C",grey120:"#708585",grey125:"#788D8D",grey130:"#819595",grey135:"#8A9C9C",grey140:"#93A4A4",grey145:"#9CACAC",grey150:"#A5B3B3",grey155:"#AEBBBB",grey160:"#B7C2C2",grey165:"#C0CACA",grey170:"#C9D2D2",grey175:"#D2D9D9",grey180:"#DBE1E1",grey185:"#E4E8E8",grey190:"#EDF0F0",grey195:"#F6F7F7"},purple:{mauve:"#DB94F4",mauveDark:"#CB66EF",mauveFocus:"#EBC2F9",daisy:"#563D7C",lilac:"#B596F8",lilacLite:"#C6AEFA",lilacFocus:"#824EF3"},blue:{aquamarine:"#19C89E",indigo:"#5790FF",cyan:"#00BAE2"},shadows:{dropdownLight:"rgba(9, 30, 66, 0.15)",dropdownDark:"rgba(0, 0, 0, 0.4)"}};function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const v=d(d({},{primary:s.green.green100,accent:s.green.chateau,main:s.neutral.limedSpruce,border:s.neutral.grey185,borderSecondary:s.neutral.grey180,disabled:s.neutral.grey160,disabledBackground:s.neutral.grey160,dropdown:s.neutral.white,dropdownShadow:s.shadows.dropdownLight,elementBackground:s.neutral.blackhaze,elementBackgroundHover:s.neutral.white,mainBackground:s.neutral.grey195,mainBackgroundDisabled:s.neutral.blackhaze,modalHeaderBackground:s.neutral.grey185,modalTabsBackground:s.neutral.grey190,modalBackground:s.neutral.grey195,modalInfoBackground:s.neutral.blackhaze,menuItemSelected:s.green.green196,menuItemHover:s.green.green190,link:s.green.green100,linkHover:s.green.green110,secondaryColor:s.green.green100,primaryHighlight:s.green.green110,secondaryHighlight:s.green.green190,neutralHighlight:s.neutral.grey180,success:s.green.green100,successLite:s.green.green190,successSemi:s.green.green190,successBackground:s.green.green50,successText:s.green.green100,warning:s.yellow.yellow80,warningLite:s.yellow.yellow190,warningSemi:s.yellow.yellow190,warningBackground:s.yellow.yellow160,warningBannerBg:s.yellow.yellow160,warningText:s.yellow.seaBuckthorn,error:s.red.red100,errorLite:s.red.red190,errorSemi:s.red.red190,errorBackground:s.red.red150,errorBannerBg:s.red.red170,errorText:s.red.pomegranate,generic:s.neutral.grey165,live:s.green.green100,stale:s.green.green1000,staleSemi:s.green.green900,unseen:s.yellow.yellow900,offline:s.neutral.grey145,attention:s.purple.mauve,attentionSecondary:s.purple.daisy,separator:s.neutral.grey185,controlFocused:s.neutral.limedSpruce,selected:s.neutral.grey180,highlight:s.neutral.grey180,tooltip:s.neutral.grey180,tooltipText:s.neutral.grey100,bright:s.neutral.white,text:s.neutral.grey100,textLite:s.neutral.grey120,textNoFocus:s.neutral.grey140,textFocus:s.neutral.grey90,textDescription:s.neutral.grey120,sectionHeaderBackground:s.neutral.limedSpruce,sectionTitle:s.neutral.grey100,sectionDescription:s.neutral.grey120,placeholder:s.neutral.grey140,key:s.neutral.regentgrey,panel:s.neutral.limedSpruce,panelBg:s.neutral.grey190,mainChartBg:s.neutral.blackhaze,mainChartHeaderBg:s.neutral.grey190,mainChartBorder:s.neutral.grey185,mainChartTboxHover:s.neutral.grey180,sideBar:s.neutral.grey190,sideBarMini:s.neutral.grey185,spaceSelected:s.neutral.grey175,spaceIdle:s.neutral.grey195,spaceHovered:s.neutral.grey180,menuItem:s.neutral.grey120,topBarBg:s.neutral.grey190,elevationLevelOne:s.neutral.grey185,inputBg:s.neutral.grey190,inputBorder:s.neutral.grey185,inputBorderHover:s.neutral.grey165,inputBorderFocus:s.neutral.grey165,nodeBadgeBackground:s.neutral.grey155,nodeBadgeBorder:s.neutral.iron,nodeBadgeColor:s.neutral.bluebayoux,neutralPillBg:s.neutral.grey155,neutralPillBorder:s.neutral.grey155,neutralPillColor:s.neutral.grey100,alertIcon:s.neutral.grey180,idleError:s.red.red170,idleWarning:s.yellow.yellow170,idleClear:s.green.green190,dropdownTable:s.neutral.white,tableRowBg:s.neutral.grey195,tableRowBgHover:s.neutral.grey180,tableRowBg2:s.neutral.grey190,tableRowBg2Hover:s.neutral.grey180,columnHighlight:s.green.green190,iconColor:s.neutral.limedSpruce,progressBg:s.neutral.chineseWhite,resizerLine:s.green.vista,anomalyText:s.purple.lilac,anomalyTextLite:s.purple.lilacLite,anomalyTextFocus:s.purple.lilacFocus,terminalGreen:s.green.green197,terminalGreenBorder:s.green.green,darkBackground:s.neutral.grey195,integrationMenuItemHover:s.neutral.grey180}),s);var m=4,g=8,f=8;function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=w(w({},{name:"Default",version:"0.0.1"}),{},{constants:r,colors:v});function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){B(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function B(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var C={primary:s.green.green100,accent:s.green.chateau,main:s.neutral.white,border:s.neutral.grey45,borderSecondary:s.neutral.grey35,disabled:s.neutral.grey100,disabledBackground:s.neutral.grey100,dropdown:s.neutral.grey40,dropdownShadow:s.shadows.dropdownDark,elementBackground:s.neutral.grey35,elementBackgroundHover:s.neutral.tuna,mainBackground:s.neutral.grey15,mainBackgroundDisabled:s.neutral.outerSpace,modalHeaderBackground:s.neutral.grey10,modalTabsBackground:s.neutral.grey20,modalBackground:s.neutral.grey30,modalInfoBackground:s.neutral.grey50,menuItemSelected:s.green.green30,menuItemHover:s.green.green10,link:s.green.green110,linkHover:s.green.green120,primaryHighlight:s.green.green100,secondaryColor:s.green.green110,secondaryHighlight:s.green.green40,neutralHighlight:s.neutral.grey50,success:s.green.green100,successLite:s.green.green190,successSemi:s.green.green20,successBackground:s.green.green50,successText:s.green.green100,warning:s.yellow.yellow80,warningLite:s.yellow.yellow190,warningSemi:s.yellow.yellow20,warningBackground:s.yellow.yellow60,warningBannerBg:s.yellow.yellow60,warningText:s.yellow.seaBuckthorn,error:s.red.red100,errorLite:s.red.red190,errorSemi:s.red.red20,errorBackground:s.red.red50,errorBannerBg:s.red.red50,errorText:s.red.pomegranate,generic:s.neutral.grey60,live:s.green.green100,stale:s.green.green1000,staleSemi:s.green.green900,unseen:s.yellow.yellow900,offline:s.neutral.grey90,attention:s.purple.mauve,attentionSecondary:s.purple.daisy,separator:s.neutral.grey35,controlFocused:s.neutral.white,selected:s.neutral.grey55,highlight:s.neutral.grey55,tooltip:s.neutral.outerSpace,tooltipText:s.neutral.white,bright:s.neutral.white,text:s.neutral.grey155,textLite:s.neutral.grey120,textNoFocus:s.neutral.grey105,textFocus:s.neutral.grey160,textDescription:s.neutral.grey120,sectionHeaderBackground:s.neutral.white,sectionTitle:s.neutral.grey155,sectionDescription:s.neutral.grey150,menuItem:s.neutral.grey140,placeholder:s.neutral.grey110,key:s.neutral.iron,panel:s.neutral.limedSpruce,panelBg:s.neutral.grey25,mainChartBg:s.neutral.grey25,mainChartHeaderBg:s.neutral.grey35,mainChartBorder:s.neutral.grey25,mainChartTboxHover:s.neutral.grey50,sideBar:s.neutral.grey25,sideBarMini:s.neutral.grey05,spaceSelected:s.neutral.grey85,spaceIdle:s.neutral.grey50,spaceHovered:s.neutral.grey65,topBarBg:s.neutral.grey35,elevationLevelOne:s.neutral.grey60,inputBg:s.neutral.grey55,inputBorder:s.neutral.grey65,inputBorderHover:s.neutral.grey85,inputBorderFocus:s.neutral.grey85,nodeBadgeBackground:s.neutral.grey90,nodeBadgeBorder:s.neutral.bluebayoux,nodeBadgeColor:s.neutral.white,neutralPillBg:s.neutral.grey90,neutralPillBorder:s.neutral.grey90,neutralPillColor:s.neutral.grey120,alertIcon:s.neutral.grey50,idleError:s.red.red20,idleWarning:s.yellow.yellow20,idleClear:s.green.green20,dropdownTable:s.neutral.eerieBlack,tableRowBgHover:s.neutral.grey35,tableRowBg:s.neutral.grey10,tableRowBg2:s.neutral.grey20,tableRowBg2Hover:s.neutral.grey35,columnHighlight:s.green.green30,progressBg:s.neutral.bluebayoux,iconColor:s.neutral.grey160,resizerLine:s.green.vista,anomalyText:s.purple.mauve,anomalyTextLite:s.purple.mauveDark,anomalyTextFocus:s.purple.mauveFocus,terminalGreen:s.green.green20,terminalGreenBorder:s.green.green60,darkBackground:s.neutral.grey05,integrationMenuItemHover:s.green.green20};const _=O(O({},s),C);function z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?z(Object(n),!0).forEach((function(t){E(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function E(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=M(M({},{name:"Dark",version:"0.0.1"}),{},{constants:r,colors:_}),k=n(58156),j=n.n(k);function H(e){return function(e){if(Array.isArray(e))return P(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return P(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var V=function(e,t){return function(n){return j()(n,e,t)}},A=function(e,t){return function(n){var r=n.theme;return j()(r,e,t)}},L=A(["constants","SIZE_UNIT"],8),D=function(e){var t=Array.isArray(e)?e:[e];return A(["colors"].concat(H(t)),e||"#fff")},F=function(e,t){return void 0===t&&(t=1),function(n){var r=n.theme,o=D(e)({theme:r}),a=parseInt(o.substring(1),16);return"rgba("+(a>>16&255)+", "+(a>>8&255)+", "+(255&a)+", "+t+")"}},I=function(e){return void 0===e&&(e=1),function(t){return isNaN(e)?e:(L(t)||0)*e+"px"}},T=function(e,t){return void 0===e&&(e="border"),void 0===t&&(t="disabled"),function(n){var r=n.theme,o=n.success,a=n.error,i=n.disabled;return o?D(["success"])({theme:r}):a?D(["error"])({theme:r}):i?D([t])({theme:r}):D([e])({theme:r})}},R=function(e,t){return"number"===typeof t?function(e){return 0===e?"0":e+"px"}(e.constants.SIZE_SUB_UNIT*t):"auto"},N=function(e,t){return t.map((function(t){return R(e,t)})).join(" ")};const U=function(e){var t=e.theme,n=e.margin;return n?Array.isArray(n)&&n.length>=1&&n.length<=4?"margin: "+N(t,n)+";":(console.error("Please provide an array (max 4 elements) for `margin` style helper."),""):""},G=function(e){var t=e.theme,n=e.padding;return n?Array.isArray(n)&&n.length>=1&&n.length<=4?"padding: "+N(t,n)+";":(console.error("Please provide an array (max 4 elements) for `padding` style helper."),""):""};var W=function(e,t){return!0===t?e+"px":"number"===typeof t?e*t+"px":"string"===typeof t?t:""},q=function(e,t){return"border-top-left-radius: "+W(e,t)+";"},K=function(e,t){return"border-top-right-radius: "+W(e,t)+";"},J=function(e,t){return"border-bottom-left-radius: "+W(e,t)+";"},Q=function(e,t){return"border-bottom-right-radius: "+W(e,t)+";"},$={top:function(e,t){return"\n "+q(e,t)+"\n "+K(e,t)+"\n "},left:function(e,t){return"\n "+q(e,t)+"\n "+J(e,t)+"\n "},bottom:function(e,t){return"\n "+J(e,t)+"\n "+Q(e,t)+"\n "},right:function(e,t){return"\n "+K(e,t)+"\n "+Q(e,t)+"\n "},"top-left":q,"top-right":K,"bottom-left":J,"bottom-right":Q};const Y=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.round;if(!n)return"";var r=W(t,n);if(r)return"border-radius: "+r+";";var o=n.side,a=n.size,i=void 0===a?1:a;return o in $?""+$[o](t,i):""};var Z={end:"flex-end",start:"flex-start",center:"center",stretch:"stretch"};const X=function(e){var t=e.alignSelf;return t in Z&&"align-self: "+Z[t]+";"};var ee={none:"none",capitalize:"capitalize",uppercase:"uppercase",lowercase:"lowercase",firstLetter:"firstLetter",fullWidth:"full-width"};const te=function(e){var t=(void 0===e?{}:e).textTransform,n=void 0===t?ee.none:t;return n===ee.firstLetter?"text-transform: lowercase;\n &::first-letter {\n text-transform: uppercase;\n }\n":n in ee?"text-transform: "+ee[n]+";":"text-transform: "+ee.none+";"};var ne={static:"static",absolute:"absolute",fixed:"fixed",relative:"relative",sticky:"sticky",initial:"initial",inherit:"inherit"};const re=function(e){var t=e.position;return t in ne?"position: "+t+";":""};var oe=n(50677),ae="default",ie="hollow",le="borderless",ce=["groupFirst","groupLast","groupMiddle"];function se(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ue(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?se(Object(n),!0).forEach((function(t){de(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):se(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function de(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var he={light:y,dark:S},ve=(0,l.css)(["border-color:",";background-color:",";color:",";box-shadow:inset 0 4px 4px rgba(0,0,0,0.25);"],(function(e){return e.colors.borderActive(e)}),(function(e){return e.colors.bgActive(e)}),(function(e){return e.colors.colorActive(e)})),me=function(e){return e.neutral?D(e.flavour===ie?"textFocus":"text")(e):D("primary")(e)},ge=function(e){return e.neutral?D("generic")(e):D("primary")(e)},fe=function(e){return e.neutral?D(e.flavour===ie?"text":"mainBackground")(e):D(e.flavour===ie?"secondaryColor":"mainBackground")(e)},pe=function(e){return e.neutral?D("generic")(e):D("accent")(e)},we=function(e){return e.neutral?D(e.flavour===le?"textFocus":"neutralHighlight")(e):D(e.flavour===ie?"secondaryHighlight":"primaryHighlight")(e)},be=D(["transparent","full"]),ye=function(e){var t,n=e.flavour,r=void 0===n?ae:n,o=e.danger,a=e.warning,i=e.iconColor,l=o?D("error"):void 0,s=a?D("warning"):void 0,u=l||s,d=u?function(e){return(0,c.lighten)(.2,u(e))}:void 0,h=u?function(e){return(0,c.darken)(.2,u(e))}:void 0,v=i?D(i):void 0,m=((t={})[ae]={color:fe,colorHover:fe,colorActive:fe,bg:u||me,bgHover:d||pe,bgActive:h||we,border:u||me,borderHover:d||pe,borderActive:h||we,iconColor:v||fe},t[ie]={color:u||fe,colorHover:d||fe,colorActive:h||fe,bg:be,bgHover:we,bgActive:we,border:u||ge,borderHover:d||me,borderActive:h||me,iconColor:v||u||me},t[le]={color:u||me,colorHover:d||we,colorActive:h||we,bg:be,bgHover:be,bgActive:be,border:be,borderHover:be,borderActive:be,iconColor:v||u||me},t);return m[r]||m[ae]},xe=l.default.button.attrs((function(e){var t=e.groupFirst,n=e.groupLast,r=e.groupMiddle,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,ce);return ue({padding:o.padding||o.tiny?[.5,1]:o.small?[1,3]:[2],colors:ye(o),round:t?{side:"left"}:n?{side:"right"}:!r},function(e){return e.themeType?ue(ue({},e),{},{theme:he[e.themeType]}):ue(ue({},e),{},{theme:e.theme})}(o))})).withConfig({displayName:"styled__StyledButton",componentId:"sc-14wh25s-0"})(["&&{display:flex;justify-content:center;align-items:center;position:relative;",";font-weight:",";font-size:",";white-space:nowrap;word-break:keep-all;cursor:pointer;"," pointer-events:",";"," "," transition:all 150ms;background-color:",";color:",";border-width:1px;border-style:solid;border-color:",";"," box-sizing:border-box;"," "," text-decoration:none;& > span{",";margin-left:",";}&:hover{border-color:",";background-color:",";color:",";text-decoration:none;.button-icon{fill:",";}}&:active{","}"," &:focus{outline:none;}.button-icon{height:",";width:",";fill:",";}.ntd-spinner{fill:none;stroke-width:17px;stroke-dasharray:100;stroke-dashoffset:100;animation:ntd-draw 1s linear infinite;stroke:",";width:24px;}.path{stroke:",";}@keyframes ntd-draw{to{stroke-dashoffset:0;}}}"],X,(function(e){return e.strong?700:500}),(function(e){var t=e.small;return e.tiny?"10px":t?"12px":"14px"}),(function(e){return e.disabled&&"opacity: 0.4;"}),(function(e){return e.disabled?"none":"auto"}),U,G,(function(e){return e.colors.bg(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.border(e)}),Y,re,oe.position,te,(function(e){return e.hasIcon?"4px":"0px"}),(function(e){return e.colors.borderHover(e)}),(function(e){return e.colors.bgHover(e)}),(function(e){return e.colors.colorHover(e)}),(function(e){return e.colors.colorHover(e)}),ve,(function(e){return e.active&&"\n "+ve+"\n "}),(function(e){return e.iconWidth?"string"===typeof e.iconWidth?e.iconWidth:e.iconWidth+"px":I(2)(e)}),(function(e){return e.iconHeight?"string"===typeof e.iconHeight?e.iconHeight:e.iconHeight+"px":I(2)(e)}),(function(e){return e.colors.iconColor(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.color(e)})),Oe=l.default.svg.withConfig({displayName:"loader__StyledSvg",componentId:"sc-fxhmqg-0"})(["fill:none;stroke-width:17px;stroke-dasharray:100;stroke-dashoffset:100;animation:ntd-draw 1s linear infinite;stroke:",";width:24px;.path{stroke:",";}@keyframes ntd-draw{to{stroke-dashoffset:0;}}"],D("bright"),D("bright")),Be=function(e){var t=e.className;return i.createElement(Oe,{className:t,viewBox:"0 0 21 17",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},i.createElement("g",{className:"path",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd"},i.createElement("path",{d:"M2,1 C8.25086152,1 11.9367136,1 13.0575562,1 C14.73882,1 19.6834591,2 19.9614325,7.72050108 C20.239406,13.4410022 15.7459591,15.1224845 13.6463763,15.1224845 C12.2466545,15.1224845 10.0279195,15.1224845 6.9901715,15.1224845 L2,1 Z",id:"Path-2",strokeWidth:"2"})))},Ce=n(12897),_e=n.n(Ce),ze=n(55042),Me=n.n(ze),Ee=new(_e())({id:"add_node",use:"add_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="add_node"><path d="M4.25 6.25h1v-1h-1zM3.375 8.5h11c.759 0 1.375-.616 1.375-1.375v-3.75c0-.759-.616-1.375-1.375-1.375h-11C2.616 2 2 2.616 2 3.375v3.75C2 7.884 2.616 8.5 3.375 8.5m.125-5h10.75V7H3.5zm1.75 10v-1h-1v1zM3.5 10.75h12.25v-.125c0-.759-.616-1.375-1.375-1.375h-11C2.616 9.25 2 9.866 2 10.625v3.75c0 .759.616 1.375 1.375 1.375H10.5v-1.5h-7zm12.25 3.5V12h-1.5v2.25H12v1.5h2.25V18h1.5v-2.25H18v-1.5z" /></symbol>'});Me().add(Ee);const Se=Ee;var ke=new(_e())({id:"add_user",use:"add_user-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="add_user"><path d="M11.5 5C11.5 2.519 9.481.5 7 .5A4.505 4.505 0 0 0 2.5 5c0 1.217.49 2.32 1.278 3.13C1.902 8.584.5 10.266.5 12.279V15.5H2v-3.221A2.779 2.779 0 0 1 4.779 9.5H7c2.481 0 4.5-2.019 4.5-4.5M7 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6m5.75 4.25V10h-1.5v2.25H9v1.5h2.25V16h1.5v-2.25H15v-1.5z" /></symbol>'});Me().add(ke);const je=ke;var He=new(_e())({id:"aggregation_avg",use:"aggregation_avg-usage",viewBox:"0 0 16 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12" id="aggregation_avg"><path d="M15.75 4c0-.41-.34-.75-.75-.75H3.81l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L.19 4.75H15c.41 0 .75-.34.75-.75M1 7.25c-.41 0-.75.34-.75.75s.34.75.75.75h11.19l-1.72 1.72c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l4.28-4.28z" /></symbol>'});Me().add(He);const Pe=He;var Ve=new(_e())({id:"aggregation_max",use:"aggregation_max-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_max"><path d="M10.03.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06L10.94 4H4.71C2.11 4 0 6.11 0 8.71V16h1.5V8.71c0-1.77 1.44-3.21 3.21-3.21h6.73L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 5z" /></symbol>'});Me().add(Ve);const Ae=Ve;var Le=new(_e())({id:"aggregation_med",use:"aggregation_med-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_med"><path d="M.75 0H0v1.5h.75zM0 14h.75v-1.5H0zM3.53 0H2.14v1.5h1.39zM2.14 14h1.39v-1.5H2.14zM6.31 0H4.92v1.5h1.39zm5.55 0h-1.39v1.5h1.39zM9.08 0H7.69v1.5h1.39zM0 5.75h14v-1.5H0zM4.92 14h1.39v-1.5H4.92zm8.33-14v1.5H14V0zM0 9.75h14v-1.5H0zM7.69 14h1.39v-1.5H7.69zm5.56 0H14v-1.5h-.75zm-2.78 0h1.39v-1.5h-1.39z" /></symbol>'});Me().add(Le);const De=Le;var Fe=new(_e())({id:"aggregation_min",use:"aggregation_min-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_min"><path d="M10.03 6.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.47 2.47H4.71c-1.77 0-3.21-1.44-3.21-3.21V0H0v7.29C0 9.89 2.11 12 4.71 12h6.23l-1.97 1.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 11z" /></symbol>'});Me().add(Fe);const Ie=Fe;var Te=new(_e())({id:"aggregation_sum",use:"aggregation_sum-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="aggregation_sum"><path d="M12 3V0H0v3l5 4-5 4v3h12v-3h-1.5v1.5h-9v-.78l4.44-3.55L7.4 7 5.94 5.83 1.5 2.28V1.5h9V3z" /></symbol>'});Me().add(Te);const Re=Te;var Ne=new(_e())({id:"aggregation_sum_abs",use:"aggregation_sum_abs-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_sum_abs"><path d="M0 0v6h14V0zm12.5 4.5h-11v-3h11zM0 14h14V8H0zm1.5-4.5h11v3h-11z" /></symbol>'});Me().add(Ne);const Ue=Ne;var Ge=new(_e())({id:"alarm",use:"alarm-usage",viewBox:"0 0 18 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 21" id="alarm"><path d="M17 13.6c-.6-.6-1-1.5-1-2.4V8c0-3.5-2.6-6.4-6-6.9V1c0-.6-.4-1-1-1S8 .4 8 1v.1C4.6 1.6 2 4.5 2 8v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C0 18.9 1.1 20 2.5 20h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H8a2 2 0 0 0 2-2H3.7c.2-.6.3-1.2.3-1.8V8c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4z" /></symbol>'});Me().add(Ge);const We=Ge;var qe=new(_e())({id:"alarm_c",use:"alarm_c-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_c"><circle cx="21.5" cy="2.5" r="2.5" fill="#FF4136" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4z" clip-rule="evenodd" /></symbol>'});Me().add(qe);const Ke=qe;var Je=new(_e())({id:"alarm_cw",use:"alarm_cw-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_cw"><circle cx="15.5" cy="2.5" r="2.5" fill="#FF4136" /><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path d="M12.317 1.042A3.487 3.487 0 0 0 12 2.5c0 .541.123 1.054.342 1.511A5.29 5.29 0 0 0 12 4C9.2 4 7 6.2 7 9v3.2c0 .6-.1 1.2-.3 1.8H13a2 2 0 0 1-2 2H5.4l-.4.4v2.1c0 .3.2.5.5.5h13c.3 0 .5-.2.5-.5v-2.1l-.4-.4c-1-1-1.6-2.4-1.6-3.8V9c0-1.134-.36-2.17-.976-3h2.294c.437.909.682 1.926.682 3v3.2c0 .9.4 1.8 1 2.4l1 1v2.9c0 1.4-1.1 2.5-2.5 2.5h-4.8c-.3.6-1 1-1.7 1s-1.4-.4-1.7-1H5.5C4.1 21 3 19.9 3 18.5v-2.9l1-1c.7-.7 1-1.5 1-2.4V9c0-3.5 2.6-6.4 6-6.9V2c0-.6.4-1 1-1 .113 0 .22.014.317.042" /></symbol>'});Me().add(Je);const Qe=Je;var $e=new(_e())({id:"alarmFilled",use:"alarmFilled-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alarmFilled"><path d="M15.22 9.84A1.988 1.988 0 0 1 14 8V7c0-1.73-.87-3.25-2.2-4.15a5.17 5.17 0 0 0-1.82-.76c0-.03.02-.06.02-.1 0-.55-.45-1-1-1s-1 .45-1 1c0 .04.02.06.02.1-.66.13-1.28.39-1.82.76C4.87 3.75 4 5.27 4 7v1a1.988 1.988 0 0 1-1.22 1.84c-.24.1-.02.16-.02.16H11c0 .83-.67 1.5-1.5 1.5H2v2.35c0 .15.02.29.04.43A2.154 2.154 0 0 0 4.15 16H8c0 .55.45 1 1 1s1-.45 1-1h3.85a2.154 2.154 0 0 0 2.11-1.72c.03-.14.04-.29.04-.43V10c-.28 0-.54-.06-.78-.16" /></symbol>'});Me().add($e);const Ye=$e;var Ze=new(_e())({id:"alarm_w",use:"alarm_w-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_w"><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4z" clip-rule="evenodd" /></symbol>'});Me().add(Ze);const Xe=Ze;var et=new(_e())({id:"alarm_bell",use:"alarm_bell-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="alarm_bell"><path d="M11.45 8.11A2.61 2.61 0 0 1 10 5.77V5c0-1.97-1.44-3.6-3.31-3.93 0-.02.01-.04.01-.07 0-.39-.31-.7-.7-.7-.39 0-.7.31-.7.7 0 .02.01.05.01.07C3.44 1.4 2 3.03 2 5v.76c0 1-.55 1.9-1.45 2.34L0 8.38v2.82c0 .99.81 1.8 1.8 1.8H5c0 .55.45 1 1 1s1-.45 1-1h3.2c.99 0 1.8-.81 1.8-1.8V8.38zM11 11.2c0 .44-.36.8-.8.8H1.8c-.44 0-.8-.36-.8-.8V10h5.5c.55 0 1-.45 1-1H1c1.23-.61 2-1.87 2-3.24V5c0-1.66 1.34-3 3-3s3 1.34 3 3v.76c0 1.37.77 2.62 2 3.24z" /></symbol>'});Me().add(et);const tt=et;var nt=new(_e())({id:"alarms_new",use:"alarms_new-usage",viewBox:"0 0 22 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 20" id="alarms_new"><path d="m17.5 12 4.4-5-4.4-5H11V0H9v2H0v10h9v6H5v2h10v-2h-4v-6zM2 10V4h14.5l2.6 3-2.6 3z" /></symbol>'});Me().add(nt);const rt=nt;var ot=new(_e())({id:"alarm_off",use:"alarm_off-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="alarm_off"><path d="M12.2 7V6c0-.272-.029-.537-.07-.797l-1.412 2.046a3.504 3.504 0 0 0 1.982 2.914v2.688c0 .358-.292.65-.65.65H6.407l-1.035 1.5H6.2a1 1 0 0 0 2 0h3.85a2.15 2.15 0 0 0 2.15-2.15V9a2 2 0 0 1-2-2m.426-6.867a.75.75 0 0 0-1.043.191L10.34 2.128A4.913 4.913 0 0 0 8.18 1.099c.004-.034.02-.063.02-.099a1 1 0 0 0-2 0c0 .035.016.064.02.099A4.999 4.999 0 0 0 2.2 6v1a2 2 0 0 1-2 2v3.85c0 .912.57 1.687 1.372 2a.746.746 0 0 0 1.245.827l10-14.5a.75.75 0 0 0-.19-1.044M2.496 13.5H2.35a.65.65 0 0 1-.65-.65V10.5h2.865zM5.6 9H3.063A3.472 3.472 0 0 0 3.7 7V6c0-1.93 1.57-3.5 3.5-3.5.877 0 1.672.331 2.284.867z" /></symbol>'});Me().add(ot);const at=ot;var it=new(_e())({id:"anomalies_brain",use:"anomalies_brain-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_brain"><path d="M17 8.99c0-1.008-.31-1.915-.929-2.621v-.101a4.44 4.44 0 0 0-4.439-4.436h-.103a3.97 3.97 0 0 0-1.755-.706c-.826-.202-1.548-.1-1.548-.1-.723.2-1.342.503-1.858.907-2.374 0-4.439 2.016-4.439 4.436v.1A3.818 3.818 0 0 0 1 8.99c0 1.008.31 1.916.929 2.622v.1c0 2.42 1.961 4.437 4.336 4.437h.103a4.352 4.352 0 0 0 1.858.806s.722.101 1.548 0a3.868 3.868 0 0 0 1.858-.806c2.375 0 4.439-2.017 4.439-4.437v-.1c.62-.706.929-1.614.929-2.622m-8.774 1.815c-.207-.1-.413-.202-.62-.303l-.825 1.311a6.06 6.06 0 0 0 1.445.504v3.126a2.479 2.479 0 0 1-1.136-.605c-.619-.605-.929-1.31-.929-2.218H4.613c0 .605.103 1.109.31 1.613-.93-.504-1.446-1.412-1.446-2.52v-.303c0-.605.413-1.31.93-1.815.206-.202.412-.302.722-.403.206.403.62.907 1.239 1.21L7.09 9.09c-1.032-.504-.722-1.411-.516-1.714L5.13 6.671c-.103.303-.206.605-.31 1.008-.516.101-1.032.404-1.445.807-.31.303-.516.605-.826.907V8.99c0-.706.31-1.411.723-1.915.516-.605 1.342-.908 2.064-.908V4.655c-.516 0-1.135.1-1.548.302.516-.907 1.445-1.512 2.478-1.512h.206l.413.1.31-.302c.206-.302.619-.504 1.032-.605zm6.503.1c-.516.606-1.342.908-2.064.908v1.513c.516 0 1.135-.101 1.548-.303-.516.908-1.445 1.512-2.477 1.512h-.207l-.413-.1-.31.302c-.31.303-.722.504-1.135.605V7.276c.206.101.413.101.62.303l.825-1.311c-.31-.302-.826-.504-1.342-.504V2.638c.413.101.826.303 1.136.605.619.504.929 1.311.929 2.118h1.548c0-.605-.103-1.11-.31-1.614.93.505 1.446 1.412 1.446 2.521v.302c-.104.706-.413 1.412-.93 1.916-.206.202-.412.303-.722.403-.207-.504-.62-.907-1.239-1.21L10.91 8.99c1.032.504.722 1.412.516 1.714l1.445.605c.103-.302.206-.605.31-1.008a6.624 6.624 0 0 0 1.445-.807c.31-.302.62-.605.826-1.008v.403a3.2 3.2 0 0 1-.723 2.017" /></symbol>'});Me().add(it);const lt=it;var ct=new(_e())({id:"anomalies_lens",use:"anomalies_lens-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_lens"><path fill-rule="evenodd" d="m12.74 11.68 2.79 2.79c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22l-2.79-2.79A5.976 5.976 0 0 1 8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6c0 1.39-.47 2.66-1.26 3.68M3.814 9.65A4.51 4.51 0 0 0 8 12.5a4.51 4.51 0 0 0 4.186-2.85h-.456l-.19-.19-.54-.54-.54.54-.561.56-.44-.66L8 7.173 6.54 9.36l-.192.289H4zm-.3-1.3A4.507 4.507 0 0 1 8 3.5a4.507 4.507 0 0 1 4.486 4.85h-.217l-.81-.81L11 7.08l-.46.46-.439.44-1.56-2.34L8 4.827l-.54.811L5.651 8.35H4z" clip-rule="evenodd" /></symbol>'});Me().add(ct);const st=ct;var ut=new(_e())({id:"anomaly_badge",use:"anomaly_badge-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="anomaly_badge"><path fill-rule="evenodd" d="M13.228 3.296 8.522.579a2.292 2.292 0 0 0-2.294 0L1.522 3.296A2.294 2.294 0 0 0 .375 5.283v5.435c0 .819.437 1.577 1.147 1.986l4.706 2.717a2.292 2.292 0 0 0 2.294 0l4.706-2.717a2.293 2.293 0 0 0 1.147-1.986V5.283c0-.82-.437-1.577-1.147-1.987M7.979 4.761l-.604-1.528-.604 1.528-1.838 4.646H1.375v1.3h4.442l.162-.411 1.396-3.529 1.396 3.529.495 1.253.672-1.168.437-.758.437.758.187.326h2.376v-1.3h-1.624l-.813-1.412-.563-.978-.563.978-.328.57z" clip-rule="evenodd" /></symbol>'});Me().add(ut);const dt=ut;var ht=new(_e())({id:"applications_hollow",use:"applications_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="applications_hollow"><path d="M13.75 3.75h-1.99c-.37 0-.72.09-1.04.23a2.578 2.578 0 0 0-2.55-2.23H4.34a2.59 2.59 0 0 0-2.59 2.59v3.83c0 1.13.74 2.09 1.76 2.44-.16.32-.26.68-.26 1.07v1.16c0 1.33 1.08 2.42 2.42 2.42h1.16c.4 0 .77-.11 1.1-.28a2.14 2.14 0 0 0 1.96 1.28h2.71c1.18 0 2.15-.96 2.15-2.15V11.4c0-.28-.06-.55-.16-.8.96-.35 1.66-1.26 1.66-2.35v-2a2.5 2.5 0 0 0-2.5-2.5m-6 9.08c0 .51-.41.92-.92.92H5.67c-.51 0-.92-.41-.92-.92v-1.16c0-.51.41-.92.92-.92h1.16c.51 0 .92.41.92.92zm.41-3.58H4.34c-.6 0-1.09-.49-1.09-1.09V4.34c0-.6.49-1.09 1.09-1.09h3.83c.6 0 1.09.49 1.09 1.09v3.83c-.01.59-.5 1.08-1.1 1.08m5.09 4.85c0 .36-.29.65-.65.65H9.9c-.36 0-.65-.29-.65-.65v-2.7c0-.36.29-.65.65-.65h2.7c.36 0 .65.29.65.65zm1.5-5.85c0 .55-.45 1-1 1h-1.99c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h1.99c.55 0 1 .45 1 1z" /></symbol>'});Me().add(ht);const vt=ht;var mt=new(_e())({id:"around_clock",use:"around_clock-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="around_clock"><path d="M8 3.25c-.41 0-.75.34-.75.75v4c0 .2.08.39.22.53l2 2c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L8.75 7.69V4c0-.41-.34-.75-.75-.75" /><path d="M8 0C3.58 0 0 3.58 0 8c0 .17.01.33.03.5h1.5c-.01-.17-.03-.33-.03-.5 0-3.58 2.92-6.5 6.5-6.5s6.5 2.92 6.5 6.5-2.92 6.5-6.5 6.5c-2.29 0-4.29-1.2-5.45-3h2.7c.41 0 .75-.34.75-.75S5.66 10 5.25 10H0v5.25c0 .41.34.75.75.75s.75-.34.75-.75v-2.61C2.95 14.67 5.31 16 8 16c4.42 0 8-3.58 8-8s-3.58-8-8-8" /></symbol>'});Me().add(mt);const gt=mt;var ft=new(_e())({id:"arrow_down",use:"arrow_down-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="arrow_down"><path d="M9 3v5h2l-3 4-3-4h2V3z" /></symbol>'});Me().add(ft);const pt=ft;var wt=new(_e())({id:"arrow_w_line_left",use:"arrow_w_line_left-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_w_line_left"><path d="M20.314 19.334V5H22v14.334zM8.488 7.36c-.31-.336-.773-.336-1.082 0L3 12.168l4.406 4.806a.801.801 0 0 0 .54.253.801.801 0 0 0 .542-.253.867.867 0 0 0 0-1.18l-2.55-2.783h12.057c.464 0 .773-.337.773-.843s-.31-.843-.773-.843H5.937l2.55-2.783a.867.867 0 0 0 0-1.18" /></symbol>'});Me().add(wt);const bt=wt;var yt=new(_e())({id:"arrow_w_line_right",use:"arrow_w_line_right-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_w_line_right"><path d="M4.686 5v14.334H3V5zM16.512 16.973c.31.338.773.338 1.082 0L22 12.167l-4.406-4.806a.801.801 0 0 0-.54-.253.801.801 0 0 0-.542.253.867.867 0 0 0 0 1.18l2.55 2.783H7.006c-.464 0-.773.337-.773.843s.31.843.773.843h12.058l-2.55 2.783a.867.867 0 0 0 0 1.18" /></symbol>'});Me().add(yt);const xt=yt;var Ot=new(_e())({id:"arrow_left",use:"arrow_left-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_left"><path d="M7.3 17.7c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L5.4 13H21c.6 0 1-.4 1-1s-.4-1-1-1H5.4l3.3-3.3c.4-.4.4-1 0-1.4-.2-.2-.5-.3-.7-.3-.2 0-.5.1-.7.3L1.6 12z" /></symbol>'});Me().add(Ot);const Bt=Ot;var Ct=new(_e())({id:"arrow-s_down",use:"arrow-s_down-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_down"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4" /></symbol>'});Me().add(Ct);const _t=Ct;var zt=new(_e())({id:"arrow-s_left",use:"arrow-s_left-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_left"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4" /></symbol>'});Me().add(zt);const Mt=zt;var Et=new(_e())({id:"arrows_vertical",use:"arrows_vertical-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="arrows_vertical"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0m1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0" /></symbol>'});Me().add(Et);const St=Et;var kt=new(_e())({id:"bookmark",use:"bookmark-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="bookmark"><path d="M9.77 1.5c.4 0 .73.33.73.73V12.5L6.9 9.8 6 9.13l-.9.67-3.6 2.7V2.23c0-.4.33-.73.73-.73zm0-1.5H2.23C1 0 0 1 0 2.23V12.5a1.498 1.498 0 0 0 2.4 1.2L6 11l3.6 2.7a1.498 1.498 0 0 0 2.4-1.2V2.23C12 1 11 0 9.77 0" /></symbol>'});Me().add(kt);const jt=kt;var Ht=new(_e())({id:"bullet_one",use:"bullet_one-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_one"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m1.5 7.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1v-3H4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5v3.5h1c.28 0 .5.22.5.5s-.22.5-.5.5" /></symbol>'});Me().add(Ht);const Pt=Ht;var Vt=new(_e())({id:"bullet_three",use:"bullet_three-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_three"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m2 6c0 .83-.67 1.5-1.5 1.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4c0 .39-.15.73-.39 1 .24.27.39.61.39 1" /></symbol>'});Me().add(Vt);const At=Vt;var Lt=new(_e())({id:"bullet_two",use:"bullet_two-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_two"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m1.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5v-.99c0-.83.67-1.5 1.49-1.51H5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4s-.67 1.5-1.5 1.5h-.99c-.28 0-.51.23-.51.51v.49z" /></symbol>'});Me().add(Lt);const Dt=Lt;var Ft=new(_e())({id:"calendar_full",use:"calendar_full-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full"><path d="M13.747 3.518c0-.006.003-.011.003-.018v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1c0 .006.003.011.003.018A2.922 2.922 0 0 0 1.5 6.428v6.644A2.931 2.931 0 0 0 4.428 16h9.144a2.931 2.931 0 0 0 2.928-2.928V6.428a2.922 2.922 0 0 0-2.753-2.91M15 13.072c0 .789-.639 1.428-1.428 1.428H4.428A1.428 1.428 0 0 1 3 13.072V8.75h8.5a1.5 1.5 0 0 0 1.5-1.5H3v-.822C3 5.639 3.639 5 4.428 5h9.144C14.361 5 15 5.639 15 6.428z" /></symbol>'});Me().add(Ft);const It=Ft;var Tt=new(_e())({id:"calendar_full_press",use:"calendar_full_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full_press"><path d="M14.07 3h-.32V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-.32C2.86 3 2 3.86 2 4.93V6h11c0 .83-.67 1.5-1.5 1.5H2v6.57C2 15.13 2.86 16 3.93 16h10.15c1.06 0 1.93-.86 1.93-1.93V4.93A1.94 1.94 0 0 0 14.07 3" /></symbol>'});Me().add(Tt);const Rt=Tt;var Nt=new(_e())({id:"chart_added",use:"chart_added-usage",viewBox:"0 0 17 17",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" id="chart_added"><path d="M15.5 10.56V4.38L12 .88l-6 6-2-2-3.5 3.5v3.06c0 2.24 1.82 4.06 4.06 4.06h4.7c-.3-.46-.53-.96-.65-1.5H4.56C3.15 14 2 12.85 2 11.44V9l2-2 2 2 6-6 2 2v4.66c-.32-.1-.65-.16-1-.16-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5c0-.95-.38-1.81-1-2.44m-.5 3.19h-1.25V15h-1.5v-1.25H11v-1.5h1.25V11h1.5v1.25H15z" /></symbol>'});Me().add(Nt);const Ut=Nt;var Gt=new(_e())({id:"chart_bars",use:"chart_bars-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="chart_bars"><path d="M.75 0H0v1.5h.75zM0 14h.75v-1.5H0zM3.53 0H2.14v1.5h1.39zM2.14 14h1.39v-1.5H2.14zM6.31 0H4.92v1.5h1.39zm5.55 0h-1.39v1.5h1.39zM9.08 0H7.69v1.5h1.39zM0 5.75h14v-1.5H0zM4.92 14h1.39v-1.5H4.92zm8.33-14v1.5H14V0zM0 9.75h14v-1.5H0zM7.69 14h1.39v-1.5H7.69zm5.56 0H14v-1.5h-.75zm-2.78 0h1.39v-1.5h-1.39z" /></symbol>'});Me().add(Gt);const Wt=Gt;var qt=new(_e())({id:"chart_circle",use:"chart_circle-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="chart_circle"><path d="M7.541 8.127a.75.75 0 0 0 .65 1.351 2.766 2.766 0 0 0 1.56-2.479A2.752 2.752 0 0 0 7 4.249a.75.75 0 0 0 0 1.5 1.252 1.252 0 0 1 .54 2.378M7.001 0a.75.75 0 0 0 0 1.5c3.031 0 5.5 2.467 5.5 5.5s-2.469 5.5-5.5 5.5a5.518 5.518 0 0 1-5.39-4.391.75.75 0 1 0-1.469.301C.806 11.649 3.69 14 7 14c3.86 0 7-3.14 7-7s-3.14-7-7-7m0 11.875a4.874 4.874 0 1 0 0-9.75.75.75 0 0 0 0 1.5A3.379 3.379 0 0 1 10.374 7 3.378 3.378 0 0 1 7 10.375a3.379 3.379 0 0 1-3.22-4.39.75.75 0 0 0-1.43-.45A4.88 4.88 0 0 0 7 11.875" /></symbol>'});Me().add(qt);const Kt=qt;var Jt=new(_e())({id:"chart_gauge",use:"chart_gauge-usage",viewBox:"0 0 14 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 16" id="chart_gauge"><path d="M6 2.25h2c.41 0 .75-.34.75-.75S8.41.75 8 .75H6c-.41 0-.75.34-.75.75s.34.75.75.75m6.09 3.22.69-.69c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.69.69a6.412 6.412 0 0 0-3.35-1.37.877.877 0 0 0-.8-.54h-.64v.55c-1.23.14-2.36.63-3.28 1.36l-.69-.69a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l.69.69A6.521 6.521 0 0 0 .5 9.5C.5 13.08 3.42 16 7 16s6.5-2.92 6.5-6.5c0-1.52-.53-2.92-1.41-4.03M7 14.5c-2.76 0-5-2.24-5-5 0-1.11.38-2.13.99-2.97.29-.4.64-.75 1.04-1.04.84-.61 1.86-.99 2.97-.99s2.13.38 2.97.99c.4.29.75.64 1.04 1.04.62.83.99 1.85.99 2.97 0 2.76-2.24 5-5 5M7 6v3.5l2.77 2.14c.47-.61.73-1.37.73-2.14C10.5 7.58 8.92 6 7 6" /></symbol>'});Me().add(Jt);const Qt=Jt;var $t=new(_e())({id:"chart_pie",use:"chart_pie-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="chart_pie"><path d="M7 0a7 7 0 1 0 0 14A7 7 0 0 0 7 0M1.5 7c0-2.778 2.072-5.075 4.75-5.443v5.266l-2.363 4.706A5.495 5.495 0 0 1 1.5 7M7 12.5a5.452 5.452 0 0 1-1.773-.299L7.4 7.874l4.7 1.176A5.507 5.507 0 0 1 7 12.5m.75-6.085V1.557C10.428 1.925 12.5 4.222 12.5 7c0 .201-.013.399-.034.595z" /></symbol>'});Me().add($t);const Yt=$t;var Zt=new(_e())({id:"charts",use:"charts-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="charts"><path d="m15 12.59-6-6-3 3-1.5-1.5-4.5 4.5v2.58C0 17.84 2.17 20 4.83 20h10.33c2.67 0 4.83-2.17 4.83-4.83V7.59zm3 2.58c0 1.56-1.27 2.83-2.83 2.83H4.83C3.27 18 2 16.73 2 15.17v-1.75l2.5-2.5 1.5 1.5 3-3 6 6 3-3zM2 6.41l2-2 2 2 3.5-3.5 5.5 5.5 2-2 .67.67 1.41-1.41L17 3.59l-2 2L9.5.09 6 3.59l-2-2-4 4v4.17l2-2z" /></symbol>'});Me().add(Zt);const Xt=Zt;var en=new(_e())({id:"check",use:"check-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="check"><path fill-rule="evenodd" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z" clip-rule="evenodd" /></symbol>'});Me().add(en);const tn=en;var nn=new(_e())({id:"checkmark_partial_s",use:"checkmark_partial_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_partial_s"><path d="M1 7h14v3H1z" /></symbol>'});Me().add(nn);const rn=nn;var on=new(_e())({id:"checkmark_s",use:"checkmark_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_s"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154" clip-rule="evenodd" /><mask id="checkmark_s_a" width="10" height="10" x="3" y="3" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154" clip-rule="evenodd" /></mask></symbol>'});Me().add(on);const an=on;var ln=new(_e())({id:"checkmark",use:"checkmark-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="checkmark"><circle cx="8" cy="8" r="8" fill="#42B861" /><path fill="#fff" d="M6.913 11.728 3.718 8.532a.747.747 0 1 1 1.057-1.057L6.83 9.53l4.35-5.018a.749.749 0 1 1 1.133.983z" /></symbol>'});Me().add(ln);const cn=ln;var sn=new(_e())({id:"chevron_double",use:"chevron_double-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="chevron_double"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0m1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0" /></symbol>'});Me().add(sn);const un=sn;var dn=new(_e())({id:"chevron_down",use:"chevron_down-usage",viewBox:"0 0 12 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" id="chevron_down"><path d="M3 5c0-.3.1-.5.3-.7.4-.4 1-.4 1.4 0L6 5.6l1.3-1.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4L6 8.4 3.3 5.7C3.1 5.5 3 5.3 3 5" /></symbol>'});Me().add(dn);const hn=dn;var vn=new(_e())({id:"chevron_down_thin",use:"chevron_down_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_down_thin"><path d="M6.979 13.813 10.792 10l.541.542-4.083 4.083h-.542l-4.083-4.083.541-.542z" /></symbol>'});Me().add(vn);const mn=vn;var gn=new(_e())({id:"chevron_expand",use:"chevron_expand-usage",viewBox:"0 0 8 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 6" id="chevron_expand"><path d="M.632 1.577 4 3.264l3.368-1.687A.593.593 0 0 0 7.632.79a.59.59 0 0 0-.785-.264L4 1.957 1.146.535A.586.586 0 0 0 .36.8a.578.578 0 0 0 .272.778m6.222 1.29L4 4.292 1.146 2.868a.586.586 0 0 0-.786.264.58.58 0 0 0 .264.786L4 5.598 7.368 3.91a.593.593 0 0 0 .264-.786.572.572 0 0 0-.778-.256" /></symbol>'});Me().add(gn);const fn=gn;var pn=new(_e())({id:"chevron_left",use:"chevron_left-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left"><path d="m4.59 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L7.41 9l4.29 4.29a.996.996 0 1 1-1.41 1.41z" /></symbol>'});Me().add(pn);const wn=pn;var bn=new(_e())({id:"chevron_left_start",use:"chevron_left_start-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left_start"><path d="m8 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L10.82 9l4.29 4.29a.996.996 0 1 1-1.41 1.41z" /><path fill-rule="evenodd" d="M4 3a1 1 0 0 1 1 1v10a1 1 0 1 1-2 0V4a1 1 0 0 1 1-1" clip-rule="evenodd" /></symbol>'});Me().add(bn);const yn=bn;var xn=new(_e())({id:"chevron_left_small",use:"chevron_left_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_left_small"><path d="M4 0c.3 0 .5.1.7.3.4.4.4 1 0 1.4L3.4 3l1.3 1.3c.4.4.4 1 0 1.4-.4.4-1 .4-1.4 0L.6 3 3.3.3c.2-.2.4-.3.7-.3" /></symbol>'});Me().add(xn);const On=xn;var Bn=new(_e())({id:"chevron_right",use:"chevron_right-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right"><path d="M13.41 9 7.7 14.71a.996.996 0 1 1-1.41-1.41l4.29-4.29-4.29-4.3A.996.996 0 1 1 7.7 3.3z" /></symbol>'});Me().add(Bn);const Cn=Bn;var _n=new(_e())({id:"chevron_right_s",use:"chevron_right_s-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_s"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3" /></symbol>'});Me().add(_n);const zn=_n;var Mn=new(_e())({id:"chevron_right_end",use:"chevron_right_end-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right_end"><path d="m10 9-5.71 5.71a.996.996 0 1 1-1.41-1.41L7.18 9 2.89 4.71A.996.996 0 1 1 4.3 3.3z" /><path fill-rule="evenodd" d="M14 15a1 1 0 0 1-1-1V4a1 1 0 1 1 2 0v10a1 1 0 0 1-1 1" clip-rule="evenodd" /></symbol>'});Me().add(Mn);const En=Mn;var Sn=new(_e())({id:"chevron_right_small",use:"chevron_right_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_small"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3" /></symbol>'});Me().add(Sn);const kn=Sn;var jn=new(_e())({id:"chevron_up_thin",use:"chevron_up_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_up_thin"><path d="m7 9.427 3.33 3.331a.58.58 0 1 1-.822.823L7 11.073l-2.503 2.502a.58.58 0 1 1-.822-.822z" /></symbol>'});Me().add(jn);const Hn=jn;var Pn=new(_e())({id:"class_error",use:"class_error-usage",viewBox:"0 0 21 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 22" id="class_error"><path d="M10.358 12.95a1.7 1.7 0 1 0 0 3.4 1.7 1.7 0 0 0 0-3.4M9.88 5.728a1.83 1.83 0 0 0-1.24 2.272l.88 3a.913.913 0 0 0 1.752 0l.88-3A1.828 1.828 0 0 0 9.88 5.727m8.172-1.855L12.741.806a4.7 4.7 0 0 0-4.689 0L2.74 3.872a4.702 4.702 0 0 0-2.344 4.06v6.134c0 1.67.898 3.226 2.344 4.06l5.312 3.067a4.682 4.682 0 0 0 2.345.626c.81 0 1.62-.208 2.344-.626l5.311-3.066a4.702 4.702 0 0 0 2.345-4.061V7.933c0-1.67-.898-3.226-2.344-4.061m.345 10.193c0 .958-.515 1.85-1.344 2.329L11.74 19.46a2.694 2.694 0 0 1-2.689 0L3.74 16.394a2.697 2.697 0 0 1-1.344-2.33V7.934c0-.958.515-1.85 1.344-2.33l5.312-3.066a2.69 2.69 0 0 1 1.345-.358c.464 0 .93.119 1.344.358l5.311 3.067a2.697 2.697 0 0 1 1.345 2.329z" /></symbol>'});Me().add(Pn);const Vn=Pn;var An=new(_e())({id:"class_latency",use:"class_latency-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="class_latency"><path d="M7.736.36c-.36.1-.72.22-1.06.36l.75 1.85c.27-.11.55-.2.84-.28zm-2.58 3.59-1.31-1.5c-.28.24-.54.5-.79.77l1.46 1.35c-.1.11-.2.22-.29.34.33-.4.69-.76 1.09-1.08-.05.03-.11.08-.16.12m-3.92 2.04c-.15.33-.28.68-.39 1.04l1.91.59c.09-.28.2-.56.31-.83zM2.396 10v.25l-1.99.07c.01.38.04.74.1 1.1l1.97-.28c-.05-.37-.08-.75-.08-1.14m.89 3.66-1.78.92c.17.33.36.65.57.96l1.66-1.11c.08.12.16.24.25.35-.26-.35-.49-.73-.7-1.12m17.09-4.29c-.02-.38-.07-.74-.13-1.1-.01-.04-.01-.08-.02-.12l-.06-.29c-.02-.12-.05-.24-.09-.36-.02-.11-.05-.21-.09-.32-.1-.36-.22-.7-.37-1.04 0-.01 0-.02-.01-.03-.11-.28-.24-.55-.38-.81-.03-.06-.06-.11-.09-.16-.18-.32-.38-.63-.6-.93-.02-.03-.04-.07-.06-.1-.02-.03-.04-.06-.07-.09-.06-.09-.13-.18-.2-.26-.09-.11-.17-.22-.27-.32-.03-.04-.06-.07-.09-.11-.25-.27-.51-.53-.78-.78-.04-.03-.07-.06-.11-.09-.1-.1-.21-.18-.32-.27-.14-.11-.29-.23-.44-.33-.3-.22-.62-.42-.94-.6-.05-.03-.1-.06-.16-.09-.27-.14-.55-.27-.83-.39-.34-.15-.69-.271-1.05-.37-.11-.04-.21-.07-.32-.09-.2-.06-.4-.1-.61-.14-.05-.01-.1-.02-.15-.02-.36-.07-.73-.12-1.11-.14-.2-.01-.42-.02-.63-.02-.16 0-.32 0-.47.01-.38.021-.75.06-1.11.12l.32 1.97c.29-.05.58-.08.88-.09.12-.01.25-.01.38-.01.17 0 .34.01.51.02a7.71 7.71 0 0 1 1.74.3c.29.09.57.19.84.3.01 0 .01.01.02.01.24.09.47.21.7.34.03.01.05.021.08.04.31.18.61.37.89.58.1.08.2.15.3.24.32.26.61.53.88.84.16.18.31.36.45.55.21.28.4.58.58.89.15.26.28.53.39.8.11.27.21.55.3.84.04.14.08.28.11.43.03.13.06.26.08.39.01.01.01.03.01.04.05.29.08.58.1.88.01.17.02.34.02.51a8.714 8.714 0 0 1-.19 1.76c-.02.08-.04.16-.06.23-.03.13-.07.26-.11.38-.15.48-.35.95-.59 1.39 0 .01 0 .01-.01.021 0 0 0 .01-.01.02-.02.03-.04.07-.06.11-.24.41-.51.81-.8 1.17-.07.1-.16.2-.25.29a7.786 7.786 0 0 1-1.6 1.36c-.24.15-.5.3-.77.44-.03.01-.06.03-.09.04-.11.06-.23.11-.35.16-.46.19-.93.34-1.42.45-.22.05-.45.09-.68.12-.29.03-.58.05-.88.06h-.13c-.26 0-.51-.01-.76-.04-.3-.02-.59-.07-.88-.13-.29-.06-.58-.14-.86-.23-.28-.1-.56-.2-.82-.32-.05-.021-.1-.04-.14-.07-.12-.05-.24-.11-.35-.18-.1-.05-.2-.11-.3-.17-.45-.28-.87-.59-1.26-.94.16.16.34.31.52.45l-1.2 1.58c.29.23.59.44.91.63.26.16.54.3.81.43.05.03.11.06.17.08.33.16.68.3 1.04.41.35.12.71.21 1.07.29.36.07.72.13 1.1.17.31.02.63.04.95.04h.16c.37-.01.74-.03 1.1-.08.09-.01.18-.02.26-.04.15-.02.31-.05.45-.07l.39-.09v-.01c.36-.08.71-.18 1.06-.31.01 0 .01-.01.02-.01.3-.11.6-.24.89-.38.04-.01.07-.03.11-.05.34-.17.66-.35.97-.55.07-.05.14-.09.21-.14.12-.08.24-.17.36-.26.11-.07.22-.16.33-.25.28-.24.56-.49.81-.75.1-.09.19-.19.28-.29l.24-.27c.07-.09.15-.18.22-.27.23-.29.44-.59.63-.91.1-.15.2-.31.29-.47.08-.16.16-.31.23-.47.01-.01.01-.02.01-.03h.01a9.82 9.82 0 0 0 .65-1.8c.03-.1.05-.2.07-.3.09-.35.15-.72.19-1.09 0-.03.01-.06.01-.09.03-.34.05-.68.05-1.02 0-.211-.01-.421-.02-.631m-16.11 5.77-1.53 1.29c.24.28.5.55.76.8l1.38-1.44c.05.05.1.09.15.13-.29-.26-.56-.54-.8-.84.01.02.02.04.04.06m-1.62-3.13-1.93.5c.09.36.2.71.34 1.06l1.86-.72c.03.09.07.18.11.26-.15-.36-.27-.72-.38-1.1m-.11-3.53-1.96-.37c-.07.36-.12.72-.15 1.1l1.99.15c0 .06-.01.11-.01.17.02-.36.07-.71.13-1.05m1.42-3.22-1.61-1.19c-.22.3-.42.61-.61.93l1.73 1c-.04.06-.07.13-.1.19.18-.32.38-.63.59-.93m2.66-2.31-.94-1.77c-.33.18-.65.37-.95.58l1.13 1.65c-.06.04-.12.09-.18.14.3-.22.61-.42.94-.6" /></symbol>'});Me().add(An);const Ln=An;var Dn=new(_e())({id:"class_utilization",use:"class_utilization-usage",viewBox:"0 0 25 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 19" id="class_utilization"><path d="m5.357 7.55-2.12-2.12c2.22-1.94 5.05-3.17 8.16-3.39v3.01c.33-.03.663-.05 1-.05.337 0 .67.021 1 .05V2.04c3.11.22 5.94 1.45 8.16 3.39l-2.12 2.12c.51.43.98.9 1.41 1.41l2.12-2.12 1.42-1.41c-.44-.51-.91-.98-1.42-1.42A15.925 15.925 0 0 0 12.397 0c-4.05 0-7.75 1.52-10.57 4.01-.51.44-.98.91-1.42 1.42l1.42 1.41 2.12 2.12c.43-.51.9-.98 1.41-1.41m9.56 8.57 2.394-9.714a1.017 1.017 0 0 0-1.827-.812L9.878 13.88a2.8 2.8 0 1 0 5.039 2.24" /></symbol>'});Me().add(Dn);const Fn=Dn;var In=new(_e())({id:"class_workload",use:"class_workload-usage",viewBox:"0 0 22 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21" id="class_workload"><path d="M2.336 21h1v-2h-1zm-1.94 0h.94v-2h-.94zm3.94 0h1v-2h-1zM21.104 5.293 16.397.586 11.69 5.293a.999.999 0 1 0 1.414 1.414l2.293-2.293v9.626c0 .13-.01.26-.02.38-.01.16-.03.32-.06.47-.01.1-.03.2-.06.3 0 .02-.01.03-.01.05a4.894 4.894 0 0 1-.45 1.16c-.06.12-.14.24-.21.36-.16.23-.33.45-.52.65a.8.8 0 0 1-.13.13c-.11.11-.23.22-.35.32-.26.21-.54.4-.83.56-.24.13-.5.24-.76.33-.26.08-.53.15-.81.19l-.25.03c-.17.02-.36.03-.6.03h-2v2h2.1c.23 0 .46-.01.68-.04.03 0 .06 0 .08-.01.06 0 .12-.01.17-.01l.12-.03c.39-.05.77-.14 1.14-.26a6.764 6.764 0 0 0 2.05-1.1.55.55 0 0 0 .09-.07c.08-.06.16-.12.24-.2.19-.15.37-.33.53-.51.26-.28.5-.58.72-.91.1-.16.2-.33.3-.5.05-.11.11-.21.15-.31.04-.07.07-.15.1-.22.16-.35.29-.72.38-1.1.01-.03.01-.05.02-.08.03-.12.05-.24.07-.35.04-.17.06-.35.08-.53v-.03c.01-.03.01-.07.01-.11v-.05c.02-.18.03-.36.03-.54V4.414l2.293 2.293a.997.997 0 0 0 1.413 0 .999.999 0 0 0 0-1.414M6.336 21h1v-2h-1zm6.82-20h-5.8C3.516 1 .396 4.12.396 7.96V17h2V7.96c0-2.73 2.23-4.96 4.96-4.96h3.8z" /></symbol>'});Me().add(In);const Tn=In;var Rn=new(_e())({id:"clock_hollow",use:"clock_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="clock_hollow"><path d="M12 4c-4.96 0-9 4.04-9 9 0 2.07.71 3.97 1.89 5.5l-1.64 1.84a.998.998 0 0 0 .08 1.41c.19.17.43.25.66.25.28 0 .55-.11.75-.34l1.53-1.72A8.965 8.965 0 0 0 12 22c4.96 0 9-4.04 9-9s-4.04-9-9-9m0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7M4.17 6.79C4.06 6.55 4 6.28 4 6c0-1.1.9-2 2-2 .39 0 .75.12 1.06.31.63-.36 1.29-.65 1.99-.87A3.978 3.978 0 0 0 6 2C3.79 2 2 3.79 2 6c0 1.01.39 1.93 1.01 2.63.32-.65.71-1.27 1.16-1.84M18 4c1.1 0 2 .9 2 2 0 .28-.06.55-.17.79.45.57.83 1.18 1.15 1.84C21.61 7.93 22 7.01 22 6c0-2.21-1.79-4-4-4-1.23 0-2.32.57-3.05 1.44.7.22 1.36.51 1.99.87.31-.19.67-.31 1.06-.31m1.79 15.26c-.42.52-.89 1-1.4 1.43l.86.97c.2.22.47.34.75.34.24 0 .47-.08.66-.25.41-.37.45-1 .08-1.41zM13 12.46V9c0-.55-.45-1-1-1s-1 .45-1 1v4.54l3.45 2.3c.17.11.36.17.55.17.32 0 .64-.16.83-.45.31-.46.18-1.08-.28-1.39z" /></symbol>'});Me().add(Rn);const Nn=Rn;var Un=new(_e())({id:"clock_5_min",use:"clock_5_min-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2M2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76M9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7m0 12.5A5.51 5.51 0 0 1 3.5 9c0-3.03 2.47-5.5 5.5-5.5s5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5m5.24-.14c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06zM9 5v4l1.8-3.57A3.959 3.959 0 0 0 9 5" /></symbol>'});Me().add(Un);const Gn=Un;var Wn=new(_e())({id:"clock_5_min_press",use:"clock_5_min_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min_press"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2M2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76M9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7m0 7V5c.31 0 .62.04.92.11.3.07.6.18.87.32zm5.24 5.36c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06z" /></symbol>'});Me().add(Wn);const qn=Wn;var Kn=new(_e())({id:"close_circle",use:"close_circle-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="close_circle"><path d="M5 0a5 5 0 1 0 .001 10.001A5 5 0 0 0 5 0m2.03 5.97a.75.75 0 0 1-1.06 1.061L5 6.061l-.97.97a.748.748 0 0 1-1.06 0 .75.75 0 0 1 0-1.061L3.94 5l-.97-.97a.75.75 0 1 1 1.061-1.061l.97.97.97-.97A.75.75 0 1 1 7.032 4.03l-.97.97z" /></symbol>'});Me().add(Kn);const Jn=Kn;var Qn=new(_e())({id:"cluster",use:"cluster-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster"><path d="M11 3.494 4.5 7.247v7.506l6.5 3.753 6.5-3.753V7.247zm0 1.732 4.227 2.44-1.99 1.161L11 7.537 8.736 8.842l-2.01-1.148zm-.75 11.115L6 13.887v-4.88l2 1.143v2.582l2.25 1.3zm-.75-4.475v-1.732l1.5-.866 1.5.866v1.731l-1.5.866zm6.5 2.021-4.227 2.44-.01-2.304-.013.008L14 12.732V10.12l2-1.167z" /></symbol>'});Me().add(Qn);const $n=Qn;var Yn=new(_e())({id:"cluster_spaces",use:"cluster_spaces-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster_spaces"><path d="M12 4v6h6V4zm4.5 4.5h-3v-3h3zM4 18h6v-6H4zm1.5-4.5h3v3h-3zM4 10h6V4H4zm8 8h6v-6h-6zm1.5-4.5h3v3h-3z" /></symbol>'});Me().add(Yn);const Zn=Yn;var Xn=new(_e())({id:"code",use:"code-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="code"><path d="M9.24 4.29a.753.753 0 0 0-.95.47l-2 6a.753.753 0 0 0 .71.99c.31 0 .61-.2.71-.51l2-6c.13-.4-.08-.82-.47-.95M5.32 5c-.3 0-.56.17-.69.45L3.5 8l1.14 2.55c.12.27.39.45.69.45.54 0 .91-.56.69-1.05L5.14 8 6 6.05C6.23 5.56 5.86 5 5.32 5m5.36 0c-.54 0-.91.56-.69 1.05L10.85 8l-.86 1.95c-.22.5.14 1.05.69 1.05.3 0 .56-.17.69-.45L12.5 8l-1.14-2.55a.728.728 0 0 0-.68-.45m1.67-3h-8.7C2.19 2 1 3.19 1 4.65v6.69c0 1.47 1.19 2.65 2.65 2.65h8.69c1.47 0 2.65-1.19 2.65-2.65V4.65A2.64 2.64 0 0 0 12.35 2m1.15 9.35c0 .64-.52 1.15-1.15 1.15h-8.7c-.64 0-1.15-.52-1.15-1.15v-6.7c0-.63.52-1.15 1.15-1.15h8.69c.64 0 1.15.52 1.15 1.15v6.7z" /></symbol>'});Me().add(Xn);const er=Xn;var tr=new(_e())({id:"collapse",use:"collapse-usage",viewBox:"0 0 16 2",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 2" id="collapse"><rect width="16" height="2" rx="1" /></symbol>'});Me().add(tr);const nr=tr;var rr=new(_e())({id:"collect",use:"collect-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="collect"><path d="M7.79 11.79a.996.996 0 0 0 0 1.41L12 17.41l4.21-4.21a.996.996 0 1 0-1.41-1.41l-1.8 1.8V2h-2v11.59L9.21 11.8a.999.999 0 0 0-1.42-.01M19.64 8H14v3.17l.09-.09a1.983 1.983 0 0 1 2.82 0 1.983 1.983 0 0 1 0 2.82L12 18.83l-4.91-4.91a1.983 1.983 0 0 1 0-2.82 1.983 1.983 0 0 1 2.82 0l.09.09V8H4V6.36c0-.2.16-.36.36-.36H10V4H4.36C3.06 4 2 5.06 2 6.36v12.09A3.55 3.55 0 0 0 5.55 22h12.89a3.55 3.55 0 0 0 3.55-3.55v-8.09A2.35 2.35 0 0 0 19.64 8" /></symbol>'});Me().add(rr);const or=rr;var ar=new(_e())({id:"community",use:"community-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="community"><path d="M10 5.25H6v1.5h4zm-1.5 3H6v1.5h2.5zm6.48-1.09c.01.11.02.22.02.34 0 .94-.19 1.84-.53 2.66.01.11.03.22.03.34V15H10c-1.33 0-2.5-.59-3.32-1.5H8c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6v6h2.83c1.04 1.79 2.96 3 5.17 3h6v-6c0-1.23-.38-2.38-1.02-3.34M3.5 12V7.5C3.5 5.01 5.51 3 8 3c1.42 0 2.67.67 3.49 1.7.08.1.17.2.25.3.48.72.76 1.57.76 2.5 0 2.49-2.01 4.5-4.5 4.5z" /></symbol>'});Me().add(ar);const ir=ar;var lr=new(_e())({id:"connection_to_cloud",use:"connection_to_cloud-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="connection_to_cloud"><path d="M15.05 5.07A4.956 4.956 0 0 1 17 9c0 2.58-1.96 4.68-4.47 4.95l.21-.21c.33-.33.51-.77.51-1.24 0-.072-.008-.136-.017-.206a5.176 5.176 0 0 1-.003-.024c1.32-.5 2.27-1.77 2.27-3.27 0-.9-.35-1.71-.9-2.32-.31-.35-.69-.63-1.11-.83l-.025-.015-.025-.015c-.18-.09-.38-.15-.58-.2l-.037-.014c-.023-.01-.048-.02-.073-.026-.24-.05-.49-.08-.74-.08a.506.506 0 0 1-.065.01c-.023.003-.045.005-.065.01l-.22.03-.41.04c-.72.16-1.36.55-1.84 1.08l-1.11-1c.42-.48.94-.87 1.51-1.15A4.43 4.43 0 0 0 7 3.5C4.52 3.5 2.5 5.52 2.5 8c0 1.7.96 3.16 2.35 3.92a1.739 1.739 0 0 0 .41 1.81l.01.01A5.994 5.994 0 0 1 1 8c0-3.31 2.69-6 6-6 1.79 0 3.39.79 4.48 2.04a4.731 4.731 0 0 1 1.44.06c.02.005.04.008.06.01a3.832 3.832 0 0 1 .81.24 4.322 4.322 0 0 1 1.158.644z" /><path d="m7.119 13.09 1.22-1.22v3.19h1.5v-3.19l1.22 1.22c.29.29 1.06 0 1.06 0s.29-.77 0-1.06L9.089 9l-3.03 3.03c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0" /></symbol>'});Me().add(lr);const cr=lr;var sr=new(_e())({id:"connectivity_status_live",use:"connectivity_status_live-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_live"><circle cx="9" cy="9" r="9" fill="#BFE5C6" /><path fill="#00AB44" d="M6.903 7.351c0-.538.2-1.024.51-1.396l-.73-.645a3.169 3.169 0 0 0-.748 2.041A3.2 3.2 0 0 0 6.684 9.4l.729-.652a2.18 2.18 0 0 1-.51-1.396m-.961-2.7L5.206 4A5.246 5.246 0 0 0 4 7.351c0 1.277.458 2.447 1.206 3.351l.736-.652a4.196 4.196 0 0 1-.974-2.699c0-1.03.367-1.975.974-2.7M9 8.516c.62 0 1.129-.526 1.129-1.164 0-.638-.51-1.163-1.129-1.163-.62 0-1.129.525-1.129 1.163S8.381 8.515 9 8.515m0-1.33c.09 0 .161.073.161.166 0 .186-.322.186-.322 0 0-.093.07-.166.161-.166M12.794 4c-.2.173-.413.366-.736.652.607.724.974 1.668.974 2.7 0 1.03-.367 1.974-.974 2.698.323.286.536.473.736.652A5.233 5.233 0 0 0 14 7.352 5.233 5.233 0 0 0 12.793 4m-1.478 1.303-.729.645c.316.38.51.864.51 1.396 0 .532-.2 1.024-.51 1.397.336.292.368.325.73.645a3.2 3.2 0 0 0 .748-2.048c0-.785-.29-1.483-.749-2.035m-1.348 7.7h-.484V9.844A.495.495 0 0 0 9 9.346a.495.495 0 0 0-.484.498v3.159h-.484c-.535 0-.967.445-.967.997h3.87c0-.552-.432-.997-.967-.997" /></symbol>'});Me().add(sr);const ur=sr;var dr=new(_e())({id:"connectivity_status_offline",use:"connectivity_status_offline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_offline"><circle cx="9" cy="9" r="9" fill="#FFEBEF" /><path fill="#ED7374" d="M9 2.778A6.218 6.218 0 0 0 2.778 9 6.218 6.218 0 0 0 9 15.222 6.218 6.218 0 0 0 15.222 9 6.218 6.218 0 0 0 9 2.778M4.111 9A4.898 4.898 0 0 1 9 4.111c1.111 0 2.124.373 2.951.996l-6.835 6.835A4.784 4.784 0 0 1 4.11 9M9 13.89a4.878 4.878 0 0 1-2.951-.996l6.835-6.835c.623.818.996 1.84.996 2.95.009 2.685-2.187 4.88-4.88 4.88" /></symbol>'});Me().add(dr);const hr=dr;var vr=new(_e())({id:"connectivity_status_stale",use:"connectivity_status_stale-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_stale"><circle cx="9" cy="9" r="9" fill="#ECEEEF" /><path fill="#8F9EAA" d="M7.03 4H5.47C4.66 4 4 4.66 4 5.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C8.5 4.66 7.84 4 7.03 4M5.5 12.53 5.47 5.5H7l.03 7zM12.53 4h-1.56c-.81 0-1.47.66-1.47 1.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C14 4.66 13.34 4 12.53 4M11 12.53l-.03-7.03h1.53l.03 7z" /></symbol>'});Me().add(vr);const mr=vr;var gr=new(_e())({id:"container",use:"container-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="container"><path d="M15.613 5H6.387A2.386 2.386 0 0 0 4 7.387v7.227A2.386 2.386 0 0 0 6.387 17h9.227a2.387 2.387 0 0 0 2.387-2.387V7.387A2.388 2.388 0 0 0 15.613 5m.887 9.613a.888.888 0 0 1-.887.887H6.387a.888.888 0 0 1-.887-.887V7.387c0-.489.398-.887.887-.887h9.227c.489 0 .887.398.887.887v7.226zM10.249 14h1.5V8.002h-1.5zm-3 0h1.5V8.002h-1.5zm6 0h1.5V8.002h-1.5z" /></symbol>'});Me().add(gr);const fr=gr;var pr=new(_e())({id:"controller_kind",use:"controller_kind-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_kind"><path d="M10.25 15h1.5v-1.5h-1.5zm3.189-11H8.561A4.561 4.561 0 0 0 4 8.561v4.879A4.56 4.56 0 0 0 8.561 18h4.879a4.561 4.561 0 0 0 4.561-4.561V8.561A4.562 4.562 0 0 0 13.439 4m3.061 9.439a3.064 3.064 0 0 1-3.061 3.061H8.561A3.064 3.064 0 0 1 5.5 13.439V8.561A3.064 3.064 0 0 1 8.561 5.5h4.879a3.064 3.064 0 0 1 3.06 3.061zM13 9.25h-1.25V7h-1.5v2.25H9c-.965 0-1.75.785-1.75 1.75s.785 1.75 1.75 1.75h4c.965 0 1.75-.785 1.75-1.75S13.965 9.25 13 9.25m0 2H9a.25.25 0 0 1 0-.5h4a.25.25 0 0 1 0 .5" /></symbol>'});Me().add(pr);const wr=pr;var br=new(_e())({id:"controller_name",use:"controller_name-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_name"><path d="m12.227 8.228-3.354 3.21a1.622 1.622 0 1 0 2.667 1.666l1.415-4.422a.443.443 0 0 0-.728-.454m2.482-3.166A6.996 6.996 0 0 0 5.063 7.29 7.001 7.001 0 0 0 10.993 18 7 7 0 0 0 14.71 5.062m.956 8.852a5.473 5.473 0 0 1-4.67 2.586 5.496 5.496 0 0 1-2.909-.836 5.507 5.507 0 0 1-1.75-7.579A5.477 5.477 0 0 1 11.008 5.5c1.026 0 2.031.29 2.907.836a5.508 5.508 0 0 1 1.75 7.579" /></symbol>'});Me().add(br);const yr=br;var xr=new(_e())({id:"copy",use:"copy-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="copy"><path d="M10.146 14h1.412v-1.5h-1.412zm-2.352 0h1.412v-1.5H7.794zM11 0H0v11h3v.559h1.5V11H11V4.5h.559V3H11zM9.5 9.5h-8v-8h8zM3 14h1.5v-1.5H3zm2.441 0h1.411v-1.5H5.441zm7.059 0H14v-1.5h-1.5zm0-11v1.5H14V3zm0 3.853H14V5.441h-1.5zm0 2.353H14V7.794h-1.5zm0 2.353H14v-1.412h-1.5z" /></symbol>'});Me().add(xr);const Or=xr;var Br=new(_e())({id:"correlation",use:"correlation-usage",viewBox:"0 0 28 28",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 28 28" id="correlation"><path fill="#00AB44" d="M21.56 2.333H6.79A4.456 4.456 0 0 0 2.333 6.79v14.77a4.113 4.113 0 0 0 4.107 4.107h15.12a4.113 4.113 0 0 0 4.107-4.107V6.44a4.113 4.113 0 0 0-4.107-4.107M19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21zm1.995-9.672a1.146 1.146 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645" /><path fill="#fff" d="M21.828 11.328a1.145 1.145 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645" /><path fill="#fff" d="M19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21z" /></symbol>'});Me().add(Br);const Cr=Br;var _r=new(_e())({id:"correlation_inv",use:"correlation_inv-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="correlation_inv"><path d="M12.99 15.24 17 17.58V22h2v-5.57l-4.02-2.35zm9.22-9.45L18 1.59 13.79 5.8a.996.996 0 1 0 1.41 1.41l1.8-1.8v4.01l-5 2.92-5-2.91V5.41L8.79 7.2c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L6 1.59l-4.21 4.2A.996.996 0 1 0 3.2 7.2L5 5.41v5.16l5.02 2.93L5 16.43V22h2v-4.43l12-7V5.41l1.79 1.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41" /></symbol>'});Me().add(_r);const zr=_r;var Mr=new(_e())({id:"cpu",use:"cpu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="cpu"><path d="M11 2 9.22 8H14l-7 8 1.78-6H4zm0-1.5c-.42 0-.84.18-1.13.51l-7 8c-.39.44-.48 1.07-.24 1.61s.78.88 1.37.88h2.77l-1.21 4.07a1.505 1.505 0 0 0 1.43 1.93c.42 0 .84-.18 1.13-.51l6.96-7.96a1.498 1.498 0 0 0-1.09-2.53H14h-2.77l1.21-4.07A1.505 1.505 0 0 0 11 .5" /></symbol>'});Me().add(Mr);const Er=Mr;var Sr=new(_e())({id:"cross_s",use:"cross_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="cross_s"><path fill-rule="evenodd" d="M13 4.538 11.461 3 8 6.462 4.538 3 3 4.538 6.462 8 3 11.461 4.538 13 8 9.538 11.461 13 13 11.461 9.538 8z" clip-rule="evenodd" /></symbol>'});Me().add(Sr);const kr=Sr;var jr=new(_e())({id:"data_retention",use:"data_retention-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="data_retention"><path d="m13.78 4.83-.93-3.46a.75.75 0 1 0-1.45.39l.2.76C10.8 2.2 9.93 2 9 2a6.98 6.98 0 0 0-6.04 3.48l1.11 1.11A5.477 5.477 0 0 1 9 3.5c.78 0 1.52.18 2.2.48l-1.26.34c-.2.05-.36.18-.46.35-.1.17-.13.37-.07.57.11.4.52.64.92.53zM3.53 9.59l.94.94c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L3 6.94.47 9.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.55-.55c.48 3.39 3.38 6 6.9 6.02l.41-1.52c-.13.01-.25.02-.38.02-2.84 0-5.18-2.15-5.48-4.91m10.53 5.11-.75-.2A6.992 6.992 0 0 0 16 9c0-1.27-.34-2.45-.93-3.48l-1.51.4c.59.88.94 1.93.94 3.07 0 1.81-.89 3.41-2.24 4.41l.33-1.25c.05-.2.02-.4-.07-.57-.1-.17-.26-.3-.46-.35a.75.75 0 0 0-.92.53l-.93 3.46 3.46.93a.75.75 0 1 0 .39-1.45" /></symbol>'});Me().add(jr);const Hr=jr;var Pr=new(_e())({id:"database",use:"database-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="database"><path d="M12 14c5.607 0 10-2.636 10-6s-4.393-6-10-6S2 4.636 2 8s4.393 6 10 6m0-10c4.714 0 8 2.108 8 4s-3.286 4-8 4-8-2.108-8-4 3.286-4 8-4m7.627 13.126C18.644 18.641 15.785 20 12 20c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 16c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98m0-4C18.644 14.641 15.785 16 12 16c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 12c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98" /></symbol>'});Me().add(Pr);const Vr=Pr;var Ar=new(_e())({id:"dashboard",use:"dashboard-usage",viewBox:"0 0 22 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 18" id="dashboard"><path d="M11.98 11.29 4.27 8.53a.551.551 0 0 0-.54.94l6.29 5.24a1.994 1.994 0 0 0 3.16-.86 2 2 0 0 0-1.2-2.56M11 0C4.93 0 0 4.93 0 11c0 2.39.77 4.68 2.22 6.6l.3.4h16.96l.3-.4C21.23 15.67 22 13.39 22 11c0-6.07-4.93-11-11-11m7.47 16H3.53C2.53 14.51 2 12.79 2 11c0-4.62 3.51-8.44 8-8.94V3c0 .55.45 1 1 1s1-.45 1-1v-.94c3.21.36 5.9 2.4 7.19 5.23l-.89.29c-.53.17-.81.73-.64 1.26.14.42.53.69.95.69.1 0 .21-.02.31-.05l.9-.29c.12.59.18 1.19.18 1.81 0 1.79-.53 3.51-1.53 5" /></symbol>'});Me().add(Ar);const Lr=Ar;var Dr=new(_e())({id:"dashboard_add",use:"dashboard_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dashboard_add"><path fill-rule="evenodd" d="M8.594 9.357 3.921 7.721a.342.342 0 0 0-.37.101.322.322 0 0 0 .043.456l3.812 3.106a1.233 1.233 0 0 0 1.268.174 3.318 3.318 0 0 1 .423-1.865 1.19 1.19 0 0 0-.503-.336m-5.121 2.791h5.294c.11.436.304.837.566 1.185H2.861l-.182-.237a6.36 6.36 0 0 1-1.346-3.91c0-3.598 2.988-6.52 6.667-6.52s6.667 2.922 6.667 6.52c0 .048 0 .096-.002.145a3.347 3.347 0 0 0-1.284-1.033 5.11 5.11 0 0 0-.036-.185l-.239.075A3.325 3.325 0 0 0 12.08 8a.586.586 0 0 1 .346-.842l.539-.172a5.454 5.454 0 0 0-4.358-3.1v.557A.601.601 0 0 1 8 5.037a.601.601 0 0 1-.606-.593v-.557c-2.721.297-4.849 2.56-4.849 5.298 0 1.06.322 2.08.928 2.963m5.86-.815a2.666 2.666 0 1 1 5.334 0 2.666 2.666 0 1 1-5.334 0m3.334 2V12H14v-1.333h-1.333V9.333h-1.334v1.334H10V12h1.333v1.333z" clip-rule="evenodd" /></symbol>'});Me().add(Dr);const Fr=Dr;var Ir=new(_e())({id:"dashboards",use:"dashboards-usage",viewBox:"0 0 16 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 10" id="dashboards"><path d="M6.27 5.18 3.13 4.6a.436.436 0 0 0-.46.23c-.1.21-.02.47.19.57l2.86 1.42c.07.03.15.06.23.08.47.09.93-.22 1.02-.7a.868.868 0 0 0-.7-1.02M10 0c-.7 0-1.37.13-1.99.35C7.38.13 6.71 0 6 0 2.69 0 0 2.69 0 6c0 1.3.42 2.54 1.22 3.6l.3.4h8.95l.3-.4c.8-1.06 1.22-2.31 1.22-3.6 0-1.51-.57-2.89-1.49-3.95C12.47 2.3 14 3.97 14 6c0 .7-.19 1.39-.55 2h-.76c-.21.71-.54 1.38-.98 2h2.77l.3-.4C15.58 8.54 16 7.29 16 6c0-3.31-2.69-6-6-6m-.55 8h-6.9C2.19 7.39 2 6.7 2 6c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .7-.19 1.39-.55 2" /></symbol>'});Me().add(Ir);const Tr=Ir;var Rr=new(_e())({id:"disk",use:"disk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="disk"><path d="M4 13.5h2V12H4zm12.44-3.91-1.82-6.37a2.376 2.376 0 0 0-2.27-1.72h-6.7c-1.05 0-1.98.71-2.27 1.72L1.56 9.59l-.06.2v3.58C1.5 14.82 2.68 16 4.13 16h9.74c1.45 0 2.63-1.18 2.63-2.63V9.79zM15 13.37c0 .62-.51 1.13-1.13 1.13H4.13c-.62 0-1.13-.51-1.13-1.13v-2.62h8.5c.83 0 1.5-.67 1.5-1.5H3.21l1.61-5.62c.11-.37.45-.63.83-.63h6.69c.39 0 .73.26.83.63L15 10z" /></symbol>'});Me().add(Rr);const Nr=Rr;var Ur=new(_e())({id:"discovered_config",use:"discovered_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="discovered_config"><path fill-rule="evenodd" d="M1 2.933C1 2.418 1.348 2 1.778 2h2.889a1 1 0 0 1 1 1v.633H14a1 1 0 0 1 1 1v7.634c0 .515-.348.933-.778.933H1.778c-.43 0-.778-.418-.778-.933zm8.959 6.334a2.54 2.54 0 0 0 .581-1.616c0-1.445-1.222-2.618-2.728-2.618-1.507 0-2.729 1.173-2.729 2.618 0 1.446 1.222 2.619 2.729 2.619a2.79 2.79 0 0 0 1.684-.558l1.44 1.382a.337.337 0 0 0 .463 0 .305.305 0 0 0 0-.444zm-2.147.165c-1.025 0-1.856-.797-1.856-1.78 0-.984.83-1.781 1.856-1.781 1.024 0 1.855.797 1.855 1.78 0 .984-.83 1.781-1.855 1.781m.144-3.135a1.473 1.473 0 0 0-.703.103 1.413 1.413 0 0 0-.563.418 1.31 1.31 0 0 0-.209 1.307l.426-.152a.89.89 0 0 1 .142-.889.96.96 0 0 1 .383-.284c.15-.062.315-.086.478-.07z" clip-rule="evenodd" /></symbol>'});Me().add(Ur);const Gr=Ur;var Wr=new(_e())({id:"documentation",use:"documentation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="documentation"><path d="M19.5 16h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5m0 2h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5m2.5-5.7V5.63c0-2-1.63-3.63-3.63-3.63H7C4.24 2 2 4.24 2 7v11c0 .15.03.3.1.43A4.503 4.503 0 0 0 6.5 22H21c.55 0 1-.45 1-1s-.45-1-1-1H6.5a2.5 2.5 0 0 1 0-5h12.8c1.49 0 2.7-1.21 2.7-2.7m-2 0c0 .39-.31.7-.7.7H6.5c-.92 0-1.78.28-2.5.76V7c0-1.65 1.35-3 3-3h11.37c.9 0 1.63.73 1.63 1.63z" /></symbol>'});Me().add(Wr);const qr=Wr;var Kr=new(_e())({id:"dot",use:"dot-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="dot"><rect width="10" height="10" rx="5" /></symbol>'});Me().add(Kr);const Jr=Kr;var Qr=new(_e())({id:"dots_2x3",use:"dots_2x3-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="dots_2x3"><path d="M1 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m0-4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m4-2c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1m0 6c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1M1 0C.4 0 0 .4 0 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m4 4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1" /></symbol>'});Me().add(Qr);const $r=Qr;var Yr=new(_e())({id:"download",use:"download-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="download"><path d="M18 13v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 16.1V13H0v3.1C0 18.25 1.75 20 3.9 20h12.2c2.15 0 3.9-1.75 3.9-3.9V13zm-8 1.41 5.21-5.21a.996.996 0 1 0-1.41-1.41l-2.8 2.8V1c0-.55-.45-1-1-1S9 .45 9 1v9.59l-2.79-2.8A.996.996 0 1 0 4.8 9.2z" /></symbol>'});Me().add(Yr);const Zr=Yr;var Xr=new(_e())({id:"drag_horizontal",use:"drag_horizontal-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="drag_horizontal"><path d="M9 3v8.25H4.373l1.935-1.943L5.25 8.25 1.5 12l3.75 3.75 1.058-1.057-1.936-1.943H9V21h1.5V3zM18.75 8.25l-1.058 1.057 1.936 1.943H15V3h-1.5v18H15v-8.25h4.628l-1.936 1.943 1.058 1.057L22.5 12z" /></symbol>'});Me().add(Xr);const eo=Xr;var to=new(_e())({id:"dynamic_config",use:"dynamic_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dynamic_config"><path fill-rule="evenodd" d="m14.853 6.35.09.689c.043.333.057.625.057.903s-.021.57-.063.904l-.091.688-.603.34-.315.18c-.07.188-.147.376-.231.557l.098.347.182.667-.42.55c-.21.27-.4.486-.603.687a6.88 6.88 0 0 1-.687.591l-.553.417-.673-.18-.35-.098c-.183.083-.372.16-.56.23l-.183.312-.343.598-.694.09a7.35 7.35 0 0 1-.911.063c-.28 0-.575-.021-.91-.063l-.695-.09-.343-.598-.182-.313a7.882 7.882 0 0 1-.56-.23l-.207.058-.247.43c-.127.218-.28.428-.433.636-.07.095-.14.19-.206.285l-.176-.081c.1-.354.198-.707.292-1.062l-.047.013-.553-.417a6.891 6.891 0 0 1-.694-.598 6.85 6.85 0 0 1-.596-.68l-.42-.55.182-.667.098-.347a7.737 7.737 0 0 1-.23-.556l-.316-.18-.603-.341-.09-.688A7.172 7.172 0 0 1 1 7.942c0-.278.021-.57.063-.903l.091-.688.603-.34.315-.181c.07-.188.147-.376.231-.556l-.098-.348-.182-.667.42-.549c.21-.27.4-.486.603-.688a6.87 6.87 0 0 1 .687-.59l.553-.417.68.18.35.098c.183-.084.372-.16.56-.23l.183-.312.343-.598.694-.09A7.35 7.35 0 0 1 8.007 1c.28 0 .575.02.91.063l.695.09.343.598.182.312c.19.07.378.146.56.23l.351-.098.673-.18.227.17.157-.227.07-.102c.137-.175.287-.342.45-.5.203.08.146.2.098.3-.01.023-.021.045-.028.066l-.041.123-.236.698c.208.166.384.321.55.486.196.195.385.41.596.681l.42.55-.182.666-.098.348c.084.18.16.368.23.556l.316.18zm-2.941-2.4.054.052c.175.174.33.354.476.549l-.238.89c.252.416.435.861.554 1.327l.799.452c.028.236.056.479.056.722s-.028.487-.063.723l-.8.452a5.09 5.09 0 0 1-.553 1.327l.245.882a5.964 5.964 0 0 1-.476.55 5.084 5.084 0 0 1-.554.472l-.89-.236c-.42.25-.868.43-1.338.549l-.455.792a6.307 6.307 0 0 1-.729.056c-.245 0-.49-.021-.729-.056l-.455-.792a5.194 5.194 0 0 1-.953-.345l.685-1.208c.313-.553.626-1.107.94-1.659.09-.164.19-.323.304-.476a.597.597 0 0 1 .322-.223.61.61 0 0 1 .395.016c.066.023.124.059.182.094.046.029.093.058.144.08.092.04.182.081.272.122.31.143.622.286 1.014.345.452-1.868 1.103-3.665 1.79-5.456m-.974-.29a164.6 164.6 0 0 0-1.262 1.874c-.229.347-.46.672-.878.895-.488-.013-.917-.182-1.351-.354-.488-.192-.983-.388-1.577-.367a56.578 56.578 0 0 1-1.153 6.611l-.13.036a5.983 5.983 0 0 1-.553-.473 5.067 5.067 0 0 1-.476-.548l.238-.89a4.896 4.896 0 0 1-.554-1.327l-.799-.452A4.946 4.946 0 0 1 2.45 7.22l.8-.452c.118-.459.3-.904.553-1.327l-.245-.883c.147-.195.308-.375.476-.549.175-.174.357-.327.554-.473l.89.237c.42-.25.868-.431 1.338-.55l.455-.791A6.31 6.31 0 0 1 8 2.376c.245 0 .49.02.729.056l.455.792c.463.118.911.299 1.339.549z" clip-rule="evenodd" /></symbol>'});Me().add(to);const no=to;var ro=new(_e())({id:"edit",use:"edit-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="edit"><circle cx="8" cy="8" r="8" fill="#536775" /><path fill="#fff" d="M12.23 3.765a2.638 2.638 0 0 0-2.555-.67c-.455.12-.86.38-1.19.715L7.295 5 9.19 6.895c.39.39 1.025.39 1.415 0L8.705 5l.525-.525c.605-.605 1.68-.605 2.29 0 .305.31.475.72.475 1.15 0 .425-.175.845-.475 1.145l-4.76 4.76-.91.13a2.492 2.492 0 0 0-1.505-1.505l.13-.915L7.65 6.065l-.71-.71-3.41 3.41-.47 3.285c-.04.245.04.495.215.67.145.145.345.23.545.23a.82.82 0 0 0 .115-.01l3.295-.47 4.965-4.965c.33-.33.59-.735.71-1.19.25-.935-.01-1.88-.675-2.55M4.09 11.91l.105-.735c.27.14.49.36.63.63z" /></symbol>'});Me().add(ro);const oo=ro;var ao=new(_e())({id:"error",use:"error-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="error"><path fill-rule="evenodd" d="M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z" clip-rule="evenodd" /><mask id="error_a" width="22" height="19" x="1" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z" clip-rule="evenodd" /></mask></symbol>'});Me().add(ao);const io=ao;var lo=new(_e())({id:"exclamation",use:"exclamation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="exclamation"><path d="m11.865 14.354-.656-4.656V6.546h2.176v3.152l-.624 4.656zm.432 3.552c-.459 0-.79-.106-.992-.32-.203-.213-.304-.485-.304-.816v-.32c0-.33.101-.602.304-.816.203-.213.533-.32.992-.32.448 0 .773.107.976.32.203.214.304.486.304.816v.32c0 .331-.101.603-.304.816-.203.214-.528.32-.976.32" /></symbol>'});Me().add(lo);const co=lo;var so=new(_e())({id:"expand",use:"expand-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="expand"><path fill-rule="evenodd" d="M5.3 6.7 3 9V3h6L6.7 5.3l2.89 2.87-1.42 1.42zm12-1.4L15 3h6v6l-2.3-2.3-2.87 2.89-1.42-1.42zM9 21l-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6zm9.7-3.7L21 15v6h-6l2.3-2.3-2.89-2.87 1.42-1.42z" clip-rule="evenodd" /></symbol>'});Me().add(so);const uo=so;var ho=new(_e())({id:"favorites",use:"favorites-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="favorites"><path d="M3 2v11.5l6 3 6-3V2zm7.4 8.43L9 9.69l-1.4.74.27-1.56-1.14-1.11 1.57-.22.7-1.42.7 1.42 1.57.23-1.13 1.11z" /></symbol>'});Me().add(ho);const vo=ho;var mo=new(_e())({id:"feed",use:"feed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="feed"><g clip-path="url(#feed_a)"><path d="M12.12 8C13.16 8 14 7.16 14 6.12V2.88C14 1.84 13.16 1 12.12 1H3.88C2.84 1 2 1.84 2 2.88V10l2-2zM3.5 2.88c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.25c0 .21-.17.38-.38.38H3.5zm1.79.93a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38m2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38M14.12 9H5.88C4.84 9 4 9.84 4 10.88v3.25c0 1.04.84 1.88 1.88 1.88H14l2 2v-7.12C16 9.84 15.16 9 14.12 9m.38 5.5H5.88a.38.38 0 0 1-.38-.38v-3.25c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.63zm-3.21-2.69a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38m2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38" /></g><defs><clipPath id="feed_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'});Me().add(mo);const go=mo;var fo=new(_e())({id:"filter",use:"filter-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="filter"><path d="M18.467 4.222H5.533c-.722 0-1.31.59-1.31 1.311v3.134l4.444 4.444v6.667h2.222l4.444-3.334v-3.333l4.445-4.444V5.533c0-.722-.59-1.31-1.311-1.31m-.356 3.756-3.956 3.955-.488.49v3.188l-3.334 2.5v-5.689l-.489-.489-3.266-3.266h6.533c.611 0 1.111-.5 1.111-1.111H5.89V5.889H18.11z" /></symbol>'});Me().add(fo);const po=fo;var wo=new(_e())({id:"filterList",use:"filterList-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="filterList"><path d="m3 5 .5 2h11l.5-2zm4.5 8h3l.5-2H7zm-2-3h7l.5-2H5z" /></symbol>'});Me().add(wo);const bo=wo;var yo=new(_e())({id:"force_play",use:"force_play-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play"><path d="M15.55 7.95 7.5 2.09a.942.942 0 0 0-1.5.77v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .77.88 1.22 1.5.77l8.05-5.85a1.3 1.3 0 0 0 0-2.11" /></symbol>'});Me().add(yo);const xo=yo;var Oo=new(_e())({id:"force_play_outline",use:"force_play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play_outline"><path d="M15.55 7.95 7.5 2.09a.904.904 0 0 0-.55-.18.95.95 0 0 0-.95.95v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .56.46.95.95.95.19 0 .38-.06.55-.18l8.05-5.85a1.3 1.3 0 0 0 0-2.11m-8.05 6.1V3.95L14.45 9z" /></symbol>'});Me().add(Oo);const Bo=Oo;var Co=new(_e())({id:"functions",use:"functions-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="functions"><path d="m7.381 2.268.008-.046-.627-.16c-.623-.16-1.274-.005-1.798.43-.539.445-.893 1.144-.976 1.92l-.079.735h-.473l-.414 1.292h.75L3.497 9l-.412 3.649c-.041.368-.15.72-.316 1.033a2.418 2.418 0 0 1-.604.745L2 15.929l.032.071.474-.309a3.545 3.545 0 0 0 1.176-1.315c.25-.47.412-1 .474-1.554L4.57 9.17l.291-2.73h.95l.385-1.204v-.088H4.998l.061-.57c.044-.414.233-.786.52-1.023a1.07 1.07 0 0 1 .957-.23l.34.088zM9.186 8.598l1.276 2.144-1.276 2.145.88.75 1.058-1.78 1.06 1.78.88-.75-1.277-2.145 1.276-2.144-.88-.75-1.059 1.78-1.059-1.78zM6.234 9.733c.258-1.79 1.133-3.25 1.863-4.062l.153.198v1.53a6.684 6.684 0 0 0-.952 2.554c-.171 1.187-.004 2.576.952 4.01v1.5l-.16.2c-1.724-1.989-2.121-4.095-1.856-5.93M14.062 15.665c.73-.81 1.605-2.272 1.863-4.061.265-1.835-.132-3.941-1.856-5.93l-.16.2v1.5c.955 1.433 1.123 2.823.952 4.01a6.685 6.685 0 0 1-.953 2.554v1.53z" /></symbol>'});Me().add(Co);const _o=Co;var zo=new(_e())({id:"full_screen",use:"full_screen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="full_screen"><path d="m11.53 7.53 2.97-2.97v2.19a.75.75 0 0 0 1.5 0V3.06l.03-.03L16 3V2h-1l-.03-.03-.03.03h-3.69a.75.75 0 0 0 0 1.5h2.189l-2.97 2.97zm-5.06 2.94L3.5 13.439v-2.19a.75.75 0 0 0-1.5 0v3.69l-.03.03.03.03v1h1l.03.03.03-.03h3.69a.75.75 0 0 0 0-1.5H4.561l2.97-2.97zm.28-6.97a.75.75 0 0 0 0-1.5H3.061l-.03-.03L3 2H2v1l-.03.03.03.03v3.69a.75.75 0 0 0 1.5 0V4.56l2.97 2.97 1.06-1.06L4.561 3.5zM16 11.25a.75.75 0 0 0-1.5 0v2.189l-2.97-2.97-1.06 1.06 2.97 2.97h-2.19a.75.75 0 0 0 0 1.5h3.689l.03.03.03-.03h1v-1l.03-.03-.03-.03z" /></symbol>'});Me().add(zo);const Mo=zo;var Eo=new(_e())({id:"gear",use:"gear-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="gear"><path d="M7.17 7.17a4.004 4.004 0 0 0 0 5.66C7.95 13.61 8.97 14 10 14s2.05-.39 2.83-1.17C13.59 12.07 14 11.07 14 10s-.42-2.07-1.17-2.83a4.008 4.008 0 0 0-5.66 0m4.24 4.24c-.78.78-2.05.78-2.83 0a1.983 1.983 0 0 1 0-2.82c.39-.39.9-.58 1.41-.58.51 0 1.02.19 1.41.58.38.38.59.88.59 1.41 0 .53-.2 1.04-.58 1.41m8.5-2.71-.13-.99-.86-.49-.45-.26c-.1-.27-.21-.54-.33-.8l.14-.5.26-.96-.6-.79c-.3-.39-.57-.7-.85-.98-.29-.29-.6-.56-.99-.86l-.79-.6-.96.26-.5.14c-.26-.12-.53-.23-.8-.33l-.26-.45-.49-.86-.99-.13c-.48-.06-.9-.09-1.3-.09s-.82.03-1.3.09l-.99.13-.49.86-.26.45c-.27.1-.54.21-.8.33l-.5-.14-.97-.26-.79.6c-.39.3-.7.57-.98.85-.29.29-.56.6-.86.99l-.6.79.26.96.14.5c-.12.26-.23.53-.33.8l-.45.26-.86.49-.13.99c-.06.48-.09.9-.09 1.3s.03.82.09 1.3l.13.99.86.49.45.26c.1.27.21.54.33.8l-.14.5-.26.96.6.79c.3.39.57.7.85.98.29.29.6.56.99.86l.79.6.96-.26.5-.14c.26.12.53.23.8.33l.26.45.49.86.99.13c.48.06.9.09 1.3.09s.82-.03 1.3-.09l.99-.13.49-.86.26-.45c.27-.1.54-.21.8-.33l.5.14.96.26.79-.6c.39-.3.7-.57.98-.85.29-.29.56-.6.86-.99l.6-.79-.26-.96-.14-.5c.12-.26.23-.53.33-.8l.45-.26.86-.49.13-.99c.06-.48.09-.9.09-1.3s-.02-.82-.08-1.3m-1.99 2.34-1.14.65c-.17.66-.43 1.3-.79 1.91l.35 1.27c-.21.28-.44.54-.68.79-.25.25-.51.47-.79.68L13.6 16c-.6.36-1.24.62-1.91.79l-.65 1.14c-.34.04-.69.08-1.04.08-.35 0-.7-.03-1.04-.08l-.65-1.14A7.35 7.35 0 0 1 6.4 16l-1.27.35c-.28-.21-.54-.44-.79-.68-.25-.25-.47-.51-.68-.79L4 13.6c-.36-.6-.62-1.24-.79-1.91l-1.14-.65C2.03 10.7 2 10.35 2 10c0-.35.03-.7.08-1.04l1.14-.65c.17-.66.43-1.3.79-1.91l-.35-1.27c.21-.28.44-.54.68-.79.25-.25.51-.47.79-.68L6.4 4c.6-.36 1.24-.62 1.91-.79l.65-1.14c.34-.04.69-.08 1.04-.08.35 0 .7.03 1.04.08l.65 1.14c.66.17 1.3.43 1.91.79l1.27-.35c.28.21.54.44.79.68.25.25.47.51.68.79L16 6.4c.36.6.62 1.24.79 1.91l1.14.65c.04.34.08.69.08 1.04 0 .35-.04.7-.09 1.04" /></symbol>'});Me().add(Eo);const So=Eo;var ko=new(_e())({id:"github",use:"github-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="github"><path fill-rule="evenodd" d="M12 3a9 9 0 0 0-2.845 17.54c.45.083.614-.195.614-.434 0-.213-.007-.78-.012-1.53-2.503.543-3.031-1.207-3.031-1.207-.41-1.04-1-1.317-1-1.317-.817-.558.062-.547.062-.547.903.064 1.378.928 1.378.928.803 1.375 2.107.978 2.62.747.082-.58.314-.977.571-1.202-1.998-.227-4.1-1-4.1-4.448 0-.983.351-1.787.927-2.415-.093-.228-.402-1.144.089-2.382 0 0 .755-.242 2.474.922.718-.2 1.488-.3 2.253-.303a8.63 8.63 0 0 1 2.253.303c1.719-1.164 2.473-.922 2.473-.922.491 1.238.182 2.154.09 2.382.577.628.925 1.432.925 2.415 0 3.457-2.105 4.218-4.11 4.44.323.278.611.828.611 1.667 0 1.203-.01 2.174-.01 2.47 0 .24.162.52.618.432A9 9 0 0 0 12 3" clip-rule="evenodd" /></symbol>'});Me().add(ko);const jo=ko;var Ho=new(_e())({id:"go_to_node",use:"go_to_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="go_to_node"><path d="M13.5 11.57c0 1.07-.86 1.93-1.93 1.93H6.43c-1.07 0-1.93-.86-1.93-1.93V6.43c0-1.07.86-1.93 1.93-1.93h.07C7.33 4.5 8 3.83 8 3H6.43C4.54 3 3 4.54 3 6.43v5.14C3 13.47 4.54 15 6.43 15h5.14c1.9 0 3.43-1.54 3.43-3.43V10c-.83 0-1.5.67-1.5 1.5zM10 3c-.41 0-.75.34-.75.75s.34.75.75.75h2.44L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l3.47-3.47V8c0 .41.34.75.75.75S15 8.41 15 8V3z" /></symbol>'});Me().add(Ho);const Po=Ho;var Vo=new(_e())({id:"google",use:"google-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="google"><path fill-rule="evenodd" d="M20.64 12.205c0-.639-.057-1.252-.164-1.841H12v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 21c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H3.957v2.332A8.997 8.997 0 0 0 12 21" clip-rule="evenodd" /><path fill-rule="evenodd" d="M6.964 13.71A5.41 5.41 0 0 1 6.682 12c0-.593.102-1.17.282-1.71V7.958H3.957A8.997 8.997 0 0 0 3 12c0 1.452.348 2.827.957 4.042z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 6.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C16.463 3.891 14.426 3 12 3a8.997 8.997 0 0 0-8.043 4.958l3.007 2.332C7.672 8.163 9.656 6.58 12 6.58" clip-rule="evenodd" /></symbol>'});Me().add(Vo);const Ao=Vo;var Lo=new(_e())({id:"group_by",use:"group_by-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="group_by"><path d="M3.5 12H2v4h4v-1.5H3.5zM6 12h2v-2H6zM3.5 3.5H6V2H2v4h1.5zM12 6h-2v2h2zm2.5 8.5H12V16h4v-4h-1.5zM12 2v1.5h2.5V6H16V2zm0 8h-2v2h2zM6 8h2V6H6z" /></symbol>'});Me().add(Lo);const Do=Lo;var Fo=new(_e())({id:"h1",use:"h1-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="h1"><path d="M6.25 1.5h1v3.75h-4.5V1.5h1V0H.25v1.5h1v9h-1V12h3.5v-1.5h-1V6.75h4.5v3.75h-1V12h3.5v-1.5h-1v-9h1V0h-3.5zM13 11V6h-1.5v1h.5v4h-1v1h3v-1z" /></symbol>'});Me().add(Fo);const Io=Fo;var To=new(_e())({id:"h2",use:"h2-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="h2"><path d="M6.25 1.5h1v3.75h-4.5V1.5h1V0H.25v1.5h1v9h-1V12h3.5v-1.5h-1V6.75h4.5v3.75h-1V12h3.5v-1.5h-1v-9h1V0h-3.5zm5.9 9.06 1.41-1.41c.28-.28.44-.66.44-1.06V7.5c0-.83-.67-1.5-1.5-1.5S11 6.67 11 7.5V8h1v-.5c0-.28.22-.5.5-.5s.5.22.5.5v.59c0 .13-.05.26-.15.35l-1.41 1.41c-.28.28-.44.66-.44 1.06V12h3v-1h-2v-.09c0-.13.05-.26.15-.35" /></symbol>'});Me().add(To);const Ro=To;var No=new(_e())({id:"hamburger",use:"hamburger-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="hamburger"><path d="M3 13h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2M3 7h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2M3 19h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2" /></symbol>'});Me().add(No);const Uo=No;var Go=new(_e())({id:"help",use:"help-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="help"><path d="M10 12.2c-.72 0-1.3.58-1.3 1.3 0 .72.58 1.3 1.3 1.3.72 0 1.3-.58 1.3-1.3 0-.72-.58-1.3-1.3-1.3M13 0c-1.2 0-2.27.54-3 1.38C9.27.54 8.2 0 7 0H0v19h7c1.1 0 2 .9 2 2h2c0-1.1.9-2 2-2h7V0zm5 17h-5c-1.2 0-2.27.54-3 1.38C9.27 17.54 8.2 17 7 17H2V2h5a2 2 0 0 1 1.72 1h2.56A2 2 0 0 1 13 2h5zM10.88 5.13C8.85 4.54 7 6.06 7 8h2c0-.55.45-1 1-1s1 .45 1 1c0 .37-.21.71-.54.89-.9.47-1.46 1.45-1.46 2.55h2c0-.34.16-.65.39-.77 1.3-.68 1.96-2.21 1.43-3.72a2.915 2.915 0 0 0-1.94-1.82" /></symbol>'});Me().add(Go);const Wo=Go;var qo=new(_e())({id:"hide",use:"hide-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="hide"><path d="M12 11c1.1 0 2-.9 2-2 0-.86-.54-1.58-1.3-1.87l-1.4 3.73c.22.09.45.14.7.14m-.47-8.73a.94.94 0 1 0-1.76-.66L9.25 3H6C2.69 3 0 5.69 0 9c0 2.9 2.06 5.32 4.8 5.88l-.32.86a.94.94 0 1 0 1.76.66L11.25 3zM7.49 7.68A1.98 1.98 0 0 0 6 7c-1.1 0-2 .9-2 2s.9 2 2 2c.09 0 .17-.01.26-.03l-.92 2.46C3.17 13.11 1.5 11.25 1.5 9c0-2.48 2.02-4.5 4.5-4.5h2.69zm6.61-4.29-.52 1.41A4.49 4.49 0 0 1 16.5 9c0 2.48-2.02 4.5-4.5 4.5h-1.69L9.75 15H12c3.31 0 6-2.69 6-6 0-2.57-1.62-4.76-3.9-5.61" /></symbol>'});Me().add(qo);const Ko=qo;var Jo=new(_e())({id:"highlight_area",use:"highlight_area-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="highlight_area"><g clip-path="url(#highlight_area_a)"><path d="M10 13h2v2h1v-2h2v-1h-2v-2h-1v2h-2zM6 13h2v-1H6zM4 13v-1H2v-2H1v2a1 1 0 0 0 1 1zM12 8h1V6h-1zM12 2v2h1V2a1 1 0 0 0-1-1h-2v1zM1 8h1V6H1zM6 2h2V1H6zM2 4V2h2V1H2a1 1 0 0 0-1 1v2z" /></g><defs><clipPath id="highlight_area_a"><path d="M0 0h16v16H0z" /></clipPath></defs></symbol>'});Me().add(Jo);const Qo=Jo;var $o=new(_e())({id:"holder",use:"holder-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="holder"><path d="m12 10 3 4H9z" /></symbol>'});Me().add($o);const Yo=$o;var Zo=new(_e())({id:"importExport",use:"importExport-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="importExport"><path d="m10.5 7.06 2.03-2.03c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.22.22V2h-1.5v2.19l-.22-.22a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06zM4.53 5.03l.22-.22V7h1.5V4.81l.22.22c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L5.5 1.94 3.47 3.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0M12.65 8h-9.3C2.6 8 2 8.6 2 9.35v3.3C2 13.4 2.6 14 3.35 14h9.3c.75 0 1.35-.6 1.35-1.35v-3.3C14 8.6 13.4 8 12.65 8M5.5 12H4v-1.5h1.5z" /></symbol>'});Me().add(Zo);const Xo=Zo;var ea=new(_e())({id:"incident_manager",use:"incident_manager-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="incident_manager"><path d="M9 10.3c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2m-.13-.68c.41.07.81-.2.88-.62l.36-2c.02-.12.02-.26 0-.39C10 6 9.41 5.59 8.8 5.7c-.61.11-1.02.69-.91 1.3l.36 2c.05.31.29.56.62.62m5.95-5.48L10.3 1.53A2.56 2.56 0 0 0 9 1.18c-.46 0-.91.12-1.3.35L3.18 4.14c-.8.46-1.3 1.33-1.3 2.25v5.22c0 .93.5 1.79 1.3 2.25l4.52 2.61c.39.23.84.35 1.3.35.46 0 .91-.12 1.3-.35l4.52-2.61c.8-.46 1.3-1.33 1.3-2.25V6.39c0-.92-.5-1.79-1.3-2.25m-.2 7.47c0 .39-.21.76-.55.95l-4.52 2.61a1.084 1.084 0 0 1-1.1 0l-4.52-2.61c-.34-.2-.55-.56-.55-.95V6.39c0-.39.21-.76.55-.95l4.52-2.61a1.084 1.084 0 0 1 1.1 0l4.52 2.61c.34.2.55.56.55.95z" /></symbol>'});Me().add(ea);const ta=ea;var na=new(_e())({id:"information",use:"information-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information"><path d="M9 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2m.75 1H8.5A1.5 1.5 0 0 0 7 9.5h1.25v1.758A1.284 1.284 0 0 0 7 12.538v.212h2.753c.688 0 1.247-.558 1.247-1.247v-.253H9.75zM9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714M9 15A6 6 0 1 1 9 3a6 6 0 1 1 0 12" /></symbol>'});Me().add(na);const ra=na;var oa=new(_e())({id:"information_press",use:"information_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information_press"><path d="M9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714M9 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m2 6.503c0 .688-.558 1.247-1.247 1.247H7v-.211c0-.698.557-1.26 1.25-1.281V9.5H7A1.5 1.5 0 0 1 8.5 8h1.25v3.25H11z" /></symbol>'});Me().add(oa);const aa=oa;var ia=new(_e())({id:"insights",use:"insights-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="insights"><path d="M.5 6.25h1.559a7.037 7.037 0 0 0-.011 1.5H2a1.5 1.5 0 0 1-1.5-1.5M1.541 11.145zl1.293-.875c.235.443.511.862.836 1.246l-.046.031a1.5 1.5 0 0 1-2.082-.401M2.382 1.614l1.284.869a7.025 7.025 0 0 0-.85 1.236l-.033-.022a1.5 1.5 0 0 1-.401-2.083M14.337 2.481l1.281-.867a1.5 1.5 0 0 1-.401 2.083l-.036.025a7.03 7.03 0 0 0-.844-1.241M6.119 6.163C5.893 6.969 5 7 5 7a4 4 0 0 1 4-4v1a2.99 2.99 0 0 0-2.881 2.163" /><path d="M7.615.645A6.508 6.508 0 0 1 15.5 7c0 2.236-1.15 4.29-3 5.472v1.122A2.91 2.91 0 0 1 9.594 16.5H8.406A2.91 2.91 0 0 1 5.5 13.594v-1.121a6.521 6.521 0 0 1-2.902-6.611c.444-2.586 2.46-4.683 5.017-5.217M11 13.594v-2.016A4.998 4.998 0 0 0 9 2c-.353 0-.713.036-1.079.113-1.955.408-3.507 2.033-3.845 4.002-.405 2.358.85 4.463 2.779 5.385H10A1.5 1.5 0 0 1 8.5 13H7v.594C7 14.371 7.63 15 8.406 15h1.188C10.37 15 11 14.371 11 13.594M14.377 11.546l-.042-.029a7.01 7.01 0 0 0 .846-1.239l1.279.866-.001.001a1.499 1.499 0 0 1-2.082.401M16 7c0-.253-.016-.503-.042-.75H17.5a1.5 1.5 0 0 1-1.5 1.5h-.046A6.91 6.91 0 0 0 16 7" /></symbol>'});Me().add(ia);const la=ia;var ca=new(_e())({id:"aws_sns",use:"aws_sns-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="aws_sns"><g clip-path="url(#aws_sns_a)"><g clip-path="url(#aws_sns_b)"><path fill="#737373" d="m9.27 21.754-2.478-.694-2.344-2.673 2.931-.08zm-5.73-1.762-1.395-.39-1.318-1.504 1.601-.263z" /><path fill="#565656" d="m0 17.91 1.425.289.207-.364V5.485l-.207-.24L0 6.059z" /><path fill="#fff" stroke="#565656" d="m2.662 17.839-.166-.242-.292.027-.278.026V5.877L6.43 6.933v10.299l-1.944.18-.283.027-.122.256-.622 1.301z" /><path fill="#565656" d="m3.184 18.576 2.443.492.16-.379V3.511l-.16-.343-2.443 1.238z" /><path fill="#fff" stroke="#565656" d="m7.65 18.574-.173-.247-.3.038-1.05.135V3.853l12.942 4.155v8.827l-8.258 1.063-.27.034-.117.246-1.237 2.588z" /><path fill="#737373" d="m17.047 24.047-3.522-.986-3.329-3.797 4.316-.044z" /><path fill="#565656" d="m8.399 19.59 3.593.696.28-.24V.386l-.28-.386L8.4 1.797z" /><path fill="#fff" stroke="#565656" d="m19.47 18.278.017.451-.37-.176-2.152 4.506-2.444-3.485-.187-.267-.32.064-1.52.305V.81L23.5 6.313V17.47z" /></g></g><defs><clipPath id="aws_sns_a"><path fill="#fff" d="M0 0h24v24H0z" /></clipPath><clipPath id="aws_sns_b"><path fill="#fff" d="M0 0h24v24.096H0z" /></clipPath></defs></symbol>'});Me().add(ca);const sa=ca;var ua=new(_e())({id:"aws_sns_colored",use:"aws_sns_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="aws_sns_colored"><g clip-path="url(#aws_sns_colored_a)"><g clip-path="url(#aws_sns_colored_b)"><path fill="#995B80" d="m9.27 21.754-2.478-.694-2.344-2.673 2.931-.08zm-5.73-1.762-1.395-.39-1.318-1.504 1.601-.263z" /><path fill="#7B3F65" d="m0 17.91 1.425.289.207-.364V5.485l-.207-.24L0 6.059z" /><path fill="#C17B9D" d="m6.931 6.536-5.505-1.29v12.953l.825-.077 1.288 1.87.994-2.082 2.398-.223z" /><path fill="#7B3F65" d="m3.184 18.576 2.443.492.16-.379V3.511l-.16-.343-2.443 1.238z" /><path fill="#C17B9D" d="M19.569 7.643 5.627 3.168v15.9l1.614-.207 2.029 2.893 1.605-3.36 8.694-1.12z" /><path fill="#995B80" d="m17.047 24.047-3.522-.986-3.329-3.797 4.316-.044z" /><path fill="#7B3F65" d="m8.399 19.59 3.593.696.28-.24V.386l-.28-.386L8.4 1.797z" /><path fill="#C17B9D" d="M24 6.004 11.993.001v20.285l2.119-.425 2.935 4.186 2.522-5.279h-.002L24 17.88z" /></g></g><defs><clipPath id="aws_sns_colored_a"><path fill="#fff" d="M0 0h24v24H0z" /></clipPath><clipPath id="aws_sns_colored_b"><path fill="#fff" d="M0 0h24v24.096H0z" /></clipPath></defs></symbol>'});Me().add(ua);const da=ua;var ha=new(_e())({id:"discord",use:"discord-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="discord"><path d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22M8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22" /><path fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2m10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31" clip-rule="evenodd" /></symbol>'});Me().add(ha);const va=ha;var ma=new(_e())({id:"discord_colored",use:"discord_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="discord_colored"><path fill="#7289DA" d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22M8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22" /><path fill="#7289DA" fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2m10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31" clip-rule="evenodd" /></symbol>'});Me().add(ma);const ga=ma;var fa=new(_e())({id:"email",use:"email-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="email"><path d="M18.177 9.974c-1.233.83-2.487 1.624-3.748 2.407L18.5 16.5l-5.341-3.335c-.258.158-.514.32-.773.478l-.385.235-.386-.235c-.259-.157-.515-.319-.774-.478L5.5 16.5l4.07-4.119a119.756 119.756 0 0 1-3.748-2.406l-1.421-.962A3.167 3.167 0 0 1 4 8.699v7.12A2.18 2.18 0 0 0 6.181 18H17.82A2.18 2.18 0 0 0 20 15.82V8.696a3.03 3.03 0 0 1-.402.315zM4.907 8.171l1.517.801c1.889 1.003 3.737 2.074 5.576 3.161 1.84-1.085 3.688-2.156 5.577-3.159l1.517-.801c.4-.17.636-.43.749-.794A2.177 2.177 0 0 0 17.819 6H6.18c-.919 0-1.702.57-2.023 1.375.113.366.349.625.75.796M17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3M21.5 15.82a3.684 3.684 0 0 1-3.68 3.68H6.181A3.685 3.685 0 0 1 2.5 15.819V8.18A3.684 3.684 0 0 1 6.18 4.5h11.639A3.685 3.685 0 0 1 21.5 8.181z" /></symbol>'});Me().add(fa);const pa=fa;var wa=new(_e())({id:"email_colored",use:"email_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="email_colored"><path fill="#49B5E6" d="M17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3" /><path fill="#fff" d="M17.819 4.5H6.18A3.684 3.684 0 0 0 2.5 8.18v7.639A3.685 3.685 0 0 0 6.181 19.5H17.82a3.684 3.684 0 0 0 3.68-3.68V8.181A3.685 3.685 0 0 0 17.819 4.5M6.18 6h11.639c.92 0 1.704.572 2.024 1.378-.113.365-.349.624-.749.794l-1.517.801C15.688 9.976 13.84 11.047 12 12.132c-1.839-1.087-3.687-2.158-5.576-3.161L4.907 8.17c-.4-.17-.637-.43-.749-.796A2.177 2.177 0 0 1 6.18 6M20 15.82A2.18 2.18 0 0 1 17.82 18H6.181A2.18 2.18 0 0 1 4 15.819v-7.12c.138.129.284.238.401.314l1.421.962c1.233.83 2.487 1.623 3.748 2.406L5.5 16.5l5.341-3.335c.259.158.515.32.774.478l.386.235.385-.235c.259-.158.515-.319.773-.478L18.5 16.5l-4.071-4.119a122.86 122.86 0 0 0 3.748-2.407l1.421-.962c.118-.077.264-.187.402-.315z" /></symbol>'});Me().add(wa);const ba=wa;var ya=new(_e())({id:"mattermost",use:"mattermost-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 700" id="mattermost"><path fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419" clip-rule="evenodd" /><path fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292" clip-rule="evenodd" /></symbol>'});Me().add(ya);const xa=ya;var Oa=new(_e())({id:"mattermost_colored",use:"mattermost_colored-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 700 700" id="mattermost_colored"><path fill="#0058CC" fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419" clip-rule="evenodd" /><path fill="#0058CC" fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292" clip-rule="evenodd" /></symbol>'});Me().add(Oa);const Ba=Oa;var Ca=new(_e())({id:"mobile_app_colored",use:"mobile_app_colored-usage",viewBox:"0 0 25 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24" id="mobile_app_colored"><path fill="#00CD51" d="m22.84 7.67-.09-.09V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H6.68a3.93 3.93 0 0 0-3.93 3.93v14.14A3.93 3.93 0 0 0 6.68 23h7.14a3.93 3.93 0 0 0 3.93-3.93V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22M12.25 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09h2.58c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06 1.92-.37 3.6 1.09 3.6 2.94v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});Me().add(Ca);const _a=Ca;var za=new(_e())({id:"opsgenie",use:"opsgenie-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="opsgenie"><path d="M7.97 7.825a3.12 3.12 0 1 0 0-6.242 3.12 3.12 0 0 0 0 6.242" /><path d="M10.858 12.258a14.347 14.347 0 0 0 2.48-3.266.174.174 0 0 0-.021-.22.175.175 0 0 0-.067-.043l-2.567-1.341c-.116-.059-.233-.03-.262.058a10.441 10.441 0 0 1-2.45 2.887A10.88 10.88 0 0 1 5.55 7.446a.204.204 0 0 0-.262-.058L2.72 8.729a.175.175 0 0 0-.088.263 15.167 15.167 0 0 0 2.45 3.266h.059a13.04 13.04 0 0 0 2.829 2.159 12.482 12.482 0 0 0 2.858-2.13h.03z" /></symbol>'});Me().add(za);const Ma=za;var Ea=new(_e())({id:"opsgenie_colored",use:"opsgenie_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="opsgenie_colored"><path fill="url(#opsgenie_colored_a)" d="M8 7.982A3.491 3.491 0 1 0 8 1a3.491 3.491 0 0 0 0 6.982" /><path fill="url(#opsgenie_colored_b)" d="M7.702 14.906a16.84 16.84 0 0 1-5.528-5.779.391.391 0 0 1 .17-.542l2.644-1.297a.391.391 0 0 1 .51.156 13.07 13.07 0 0 0 5.676 5.137 16.925 16.925 0 0 1-2.877 2.325.561.561 0 0 1-.595 0" /><path fill="#2684FF" d="M8.297 14.906a16.83 16.83 0 0 0 5.529-5.779.391.391 0 0 0-.169-.542l-2.645-1.297a.391.391 0 0 0-.511.156 13.064 13.064 0 0 1-5.675 5.137c.87.879 1.835 1.658 2.876 2.325a.561.561 0 0 0 .595 0" /><defs><linearGradient id="opsgenie_colored_a" x1="589.669" x2="589.669" y1="233.534" y2="1669.91" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".82" stop-color="#0052CC" /></linearGradient><linearGradient id="opsgenie_colored_b" x1="486.022" x2="888.127" y1="436.972" y2="1041.77" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".62" stop-color="#0052CC" /></linearGradient></defs></symbol>'});Me().add(Ea);const Sa=Ea;var ka=new(_e())({id:"pagerduty",use:"pagerduty-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pagerduty"><path d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2M9.821 18.667H7.897v-3.59H9.82zm3.269-5.257H7.897V5.333h5.192a4.038 4.038 0 0 1 .001 8.077M12.577 7H9.821v4.744h2.756a2.372 2.372 0 0 0 0-4.744" /></symbol>'});Me().add(ka);const ja=ka;var Ha=new(_e())({id:"pagerduty_colored",use:"pagerduty_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="pagerduty_colored"><path fill="#04AC38" d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2" /><path fill="#fff" d="M13.09 5.333H7.897v8.077h5.192a4.038 4.038 0 0 0 .001-8.077m-.513 6.41H9.821V7h2.756a2.372 2.372 0 0 1 0 4.744m-4.68 6.924H9.82v-3.59H7.897z" /></symbol>'});Me().add(Ha);const Pa=Ha;var Va=new(_e())({id:"rocketChat",use:"rocketChat-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="rocketChat"><path d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817m-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81m9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667M12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68m-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799" /></symbol>'});Me().add(Va);const Aa=Va;var La=new(_e())({id:"rocketChat_colored",use:"rocketChat_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="rocketChat_colored"><path fill="#fff" d="M1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.432.375.822.2 1.293-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.073-.975 1.617-2.184 1.35-3.668-.248-1.367-1.093-2.312-2.224-3.02C10.935 3.218 8.98 2.94 6.938 3.17c-.372.041-.64 0-.946-.255C4.566 1.718 2.535 1.498 1 2.338" /><path fill="#DC2928" d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817m-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81m9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667M12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68m-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799" /></symbol>'});Me().add(La);const Da=La;var Fa=new(_e())({id:"integrations",use:"integrations-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="integrations"><path d="M15.03 3.97a.754.754 0 0 0-1.06 0l-1.94 1.94-1.94-1.94 1.94-1.94c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L9.03 2.91 7.5 1.38 4.75 4.13c-.81.8-1.25 1.88-1.25 3.02v.23l-.27.27C2.04 8.83 1.96 10.7 2.94 12l-1.47 1.47c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L4 13.06c.57.44 1.27.68 2 .68.89 0 1.72-.35 2.35-.97l.27-.27h.23c1.14 0 2.21-.44 3.02-1.25l2.75-2.75-1.53-1.53 1.94-1.94c.29-.29.29-.77 0-1.06m-4.22 6.22c-.52.52-1.22.81-1.96.81H8l-.71.71a1.8 1.8 0 0 1-1.29.53c-.47 0-.93-.18-1.29-.53l-.42-.42c-.71-.71-.71-1.87 0-2.58l.18-.18.94.94c.59.59 1.54.59 2.12 0L5.02 6.96c.05-.66.32-1.29.79-1.77L7.5 3.5l5 5z" /></symbol>'});Me().add(Fa);const Ia=Fa;var Ta=new(_e())({id:"internal_config",use:"internal_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="internal_config"><path d="m7.222 1.002-.126.015-.694.091-.343.605-.182.316c-.19.07-.378.148-.56.232l-.351-.098-.68-.183-.553.422c-.274.21-.49.4-.687.597a6.93 6.93 0 0 0-.603.696l-.42.556.182.675.098.351a7.887 7.887 0 0 0-.23.562l-.316.183-.603.345-.09.696A7.339 7.339 0 0 0 1 7.977c0 .28.021.576.063.914l.091.696.603.344.315.183c.07.19.147.38.231.562l-.098.352-.182.675.42.555c.21.274.4.492.596.69.203.203.42.393.694.604l.553.422.673-.183.35-.099c.182.085.372.162.56.232l.183.317.343.604.694.092c.336.042.63.063.911.063.28 0 .575-.021.91-.063l.695-.092.343-.604.182-.317c.19-.07.378-.147.56-.232l.351.099.673.183.553-.422c.274-.211.49-.401.687-.598.203-.204.392-.422.603-.696l.42-.555-.182-.675-.098-.352c.084-.183.16-.372.23-.562l.316-.183.603-.344.09-.696c.043-.338.064-.633.064-.914 0-.282-.014-.577-.056-.914l-.091-.696-.603-.345-.315-.183c-.07-.19-.147-.38-.231-.562l.098-.351.182-.675-.42-.556c-.21-.274-.4-.492-.596-.689a6.929 6.929 0 0 0-.694-.604l-.553-.422-.673.183-.35.098a7.834 7.834 0 0 0-.56-.232l-.183-.316-.343-.605-.694-.091A10.28 10.28 0 0 0 8.778 1v4.274c.441.127.858.365 1.205.713.362.363.61.805.733 1.287h.006l-.004.006a2.857 2.857 0 0 1-.001.002l-2.461 3.495L8 11.14l-.256-.363-2.466-3.503h1.944v-2z" /><path d="M10.715 7.274a2.813 2.813 0 0 0-1.937-2v2z" /></symbol>'});Me().add(Ta);const Ra=Ta;var Na=new(_e())({id:"slack",use:"slack-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="slack"><path d="M22.483 9.243a2.203 2.203 0 0 0-2.205-2.205 2.203 2.203 0 0 0-2.205 2.205v2.206h2.205c1.22 0 2.205-.986 2.205-2.206m-20.966 5.53c0 1.219.986 2.205 2.205 2.205a2.203 2.203 0 0 0 2.205-2.205v-2.206H3.722a2.204 2.204 0 0 0-2.205 2.206m7.718-2.205a2.204 2.204 0 0 0-2.205 2.206v5.513c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206v-5.513c0-1.22-.985-2.206-2.205-2.206m5.53-1.12a2.204 2.204 0 0 0 2.205-2.205v-5.53c0-1.22-.986-2.205-2.205-2.205a2.204 2.204 0 0 0-2.205 2.206v5.529c0 1.22.985 2.206 2.205 2.206m-5.53-4.41h-5.53A2.203 2.203 0 0 0 1.5 9.243c0 1.22.986 2.206 2.205 2.206h5.53a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205m11.06 5.53h-5.53a2.204 2.204 0 0 0-2.205 2.206c0 1.219.986 2.205 2.205 2.205h5.53a2.203 2.203 0 0 0 2.205-2.205c0-1.22-.986-2.206-2.205-2.206m-5.53 5.513H12.56v2.205c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205M9.235 1.508A2.204 2.204 0 0 0 7.03 3.714c0 1.219.986 2.205 2.205 2.205h2.205V3.714c0-1.22-.985-2.206-2.205-2.206" /></symbol>'});Me().add(Na);const Ua=Na;var Ga=new(_e())({id:"slack_colored",use:"slack_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="slack_colored"><path fill="#E0225B" d="M5.927 14.773c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h2.205zm1.103 0c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205v5.513c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205z" /><path fill="#39C5EF" d="M9.235 5.919A2.203 2.203 0 0 1 7.03 3.714c0-1.22.986-2.205 2.205-2.205s2.205.986 2.205 2.205v2.205zm0 1.119c1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-5.53A2.203 2.203 0 0 1 1.5 9.243c0-1.22.986-2.205 2.205-2.205z" /><path fill="#2FB77E" d="M18.073 9.243c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-2.205zm-1.103 0c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205v-5.53c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205z" /><path fill="#EBB22D" d="M14.765 18.08c1.22 0 2.205.987 2.205 2.206 0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205V18.08zm0-1.101a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h5.53c1.22 0 2.205.986 2.205 2.205 0 1.22-.986 2.205-2.205 2.205z" /></symbol>'});Me().add(Ga);const Wa=Ga;var qa=new(_e())({id:"splunk-black",use:"splunk-black-usage",viewBox:"0 0 122 36",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 122 36" id="splunk-black"><desc>An information technology company based in California, United States</desc><path fill="#0C1724" d="M12.93 21.8c0 .802-.17 1.547-.509 2.236-.339.68-.82 1.264-1.423 1.736-.612.481-1.338.849-2.177 1.113-.838.264-1.762.396-2.76.396-1.198 0-2.272-.16-3.214-.49-.942-.321-1.894-.868-2.846-1.623l1.574-2.557c.754.632 1.432 1.094 2.045 1.387a4.223 4.223 0 0 0 1.866.434c.782 0 1.404-.198 1.885-.604.48-.406.707-.943.707-1.632 0-.292-.047-.566-.132-.82-.085-.256-.245-.52-.471-.793a6.406 6.406 0 0 0-.952-.878 46.597 46.597 0 0 0-1.555-1.17c-.48-.34-.96-.698-1.423-1.057a11.538 11.538 0 0 1-1.263-1.17 5.337 5.337 0 0 1-.914-1.396 4.318 4.318 0 0 1-.348-1.755c0-.754.16-1.453.47-2.076s.745-1.15 1.292-1.594c.546-.443 1.197-.783 1.969-1.028a8.105 8.105 0 0 1 2.497-.367c.951 0 1.866.122 2.75.377a9.265 9.265 0 0 1 2.47 1.113l-1.423 2.302c-.97-.68-1.998-1.028-3.072-1.028-.65 0-1.197.17-1.621.51s-.641.764-.641 1.282c0 .49.188.934.565 1.321.377.397 1.027.934 1.951 1.651.933.68 1.706 1.283 2.31 1.792.612.51 1.092 1 1.45 1.453.358.453.594.906.735 1.377.142.481.208.99.208 1.557zm16.16-4.311c0 .708-.075 1.472-.226 2.292a7.877 7.877 0 0 1-.754 2.274c-.358.698-.82 1.274-1.395 1.717-.575.453-1.31.68-2.186.68-1.47 0-2.629-.586-3.477-1.765-.848-1.17-1.272-2.783-1.272-4.83 0-2.104.424-3.764 1.291-5 .858-1.236 2.026-1.849 3.496-1.849 1.395 0 2.497.585 3.307 1.736.81 1.16 1.216 2.745 1.216 4.745zm5.107-.18c0-1.367-.198-2.612-.584-3.725-.396-1.123-.942-2.085-1.668-2.896-.726-.812-1.574-1.434-2.563-1.887s-2.082-.68-3.28-.68c-1.318 0-2.477.255-3.476.746-.999.5-1.932 1.283-2.78 2.358l-.028-2.67h-4.702v27.44h4.693v-11.59c.461.537.904.99 1.338 1.358.424.368.857.67 1.3.896.442.226.904.396 1.394.49.49.095 1.018.142 1.574.142a8.317 8.317 0 0 0 3.486-.745c1.074-.5 2.007-1.198 2.789-2.104s1.395-1.962 1.838-3.16c.452-1.208.669-2.538.669-3.972zm2.092 9.539h4.824V-.002h-4.824zm25.4.01V8.537h-4.824v9.857c0 .877-.038 1.557-.113 2.038a5.384 5.384 0 0 1-.368 1.302c-.678 1.51-1.932 2.274-3.75 2.274-1.423 0-2.412-.51-2.978-1.538a3.92 3.92 0 0 1-.461-1.32c-.085-.491-.132-1.199-.132-2.133V8.538h-4.824v10.41c0 .708.01 1.311.019 1.792a12.567 12.567 0 0 0 .264 2.312c.056.292.15.575.273.84.443 1.123 1.15 1.972 2.139 2.547.99.575 2.205.858 3.637.858 1.29 0 2.43-.226 3.41-.68s1.933-1.188 2.856-2.216l.01 2.453 4.842.01zm20.79-.01v-10.39c0-.708-.01-1.311-.019-1.811-.01-.5-.037-.934-.094-1.302a8.874 8.874 0 0 0-.18-.963c-.075-.283-.16-.556-.254-.82-.442-1.094-1.15-1.943-2.139-2.538s-2.205-.897-3.647-.897c-1.29 0-2.43.227-3.41.68s-1.933 1.198-2.856 2.217l-.009-2.453h-4.853v18.28h4.862v-9.868c0-.85.028-1.52.094-1.991.057-.472.18-.916.349-1.34.31-.736.8-1.283 1.451-1.66s1.423-.566 2.327-.566c1.423 0 2.412.509 2.978 1.538.217.386.367.83.452 1.31.085.482.132 1.199.132 2.124v10.43l4.815.01zm19.96-1.208-7.349-9.142 6.209-6.66-3.656-1.575-6.464 7.5h-.509V.003h-4.862v26.85h4.862v-9.726l7.274 10.09zm18.79-6.566v-2.991l-14.62-7.34v3.292l11.33 5.519-11.33 5.594v3.217l14.62-7.292zm-13.2-15.08c-.895 0-1.621.736-1.621 1.642 0 .924.726 1.65 1.621 1.65.905 0 1.621-.726 1.621-1.65a1.62 1.62 0 0 0-1.621-1.642m.01.254c.725 0 1.309.623 1.309 1.396 0 .774-.584 1.396-1.309 1.387-.735 0-1.32-.613-1.32-1.396 0-.764.585-1.387 1.32-1.387m-.311 1.557h.197c.236 0 .349.085.396.321.038.246.085.406.123.463h.311c-.029-.057-.076-.17-.113-.453-.038-.274-.142-.415-.311-.444v-.019c.198-.056.358-.207.358-.443 0-.17-.057-.302-.17-.377-.113-.085-.292-.142-.565-.142-.217 0-.368.019-.518.047v1.83h.292zm0-.849c.047-.01.113-.019.207-.019.33 0 .443.16.443.321 0 .227-.208.312-.443.312h-.207z" /></symbol>'});Me().add(qa);const Ka=qa;var Ja=new(_e())({id:"teams",use:"teams-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="teams"><path d="M10.246 6.112c.154.001.306-.03.447-.09.277-.118.496-.338.614-.614a1.156 1.156 0 0 0-1.063-1.6 1.109 1.109 0 0 0-.444.09c-.105.045-.138.103-.282.173v1.778c.145.071.177.128.282.174.141.06.293.09.446.089m1.873 1.454v3.469h.578c.199-.001.397-.019.592-.056.196-.034.385-.1.56-.195.165-.09.308-.216.418-.368a.957.957 0 0 0 .165-.575V7.566zm-2.602 4.387c.145.031.197.056.299.07.113.016.226.024.339.025.175-.001.35-.019.521-.056.175-.035.342-.1.494-.193.149-.092.275-.217.368-.366.103-.173.153-.373.145-.575V6.844H9.517zm2.939-5.455a1.158 1.158 0 0 0 1.263.247 1.16 1.16 0 0 0 .614-.614 1.16 1.16 0 0 0 0-.896 1.16 1.16 0 0 0-.614-.614 1.157 1.157 0 0 0-1.51 1.51c.059.137.143.261.247.367M1.567 13.059l7.516 1.301V1.64L1.567 2.941zm2.024-7.305 3.469-.211v.867l-1.301.058v3.794l-.867-.051v-3.71l-1.301.052z" /></symbol>'});Me().add(Ja);const Qa=Ja;var $a=new(_e())({id:"teams_colored",use:"teams_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="teams_colored"><path fill="#5558AF" d="M12.457 6.498a1.158 1.158 0 0 0 1.263.247 1.16 1.16 0 0 0 .614-.614 1.16 1.16 0 0 0 0-.896 1.16 1.16 0 0 0-.614-.614 1.16 1.16 0 0 0-.896 0 1.16 1.16 0 0 0-.614.614 1.16 1.16 0 0 0 .247 1.263m-.337 1.068v3.469h.578c.199-.001.397-.019.592-.056.196-.035.385-.1.56-.196.165-.09.308-.216.418-.368a.957.957 0 0 0 .165-.575V7.566zm-1.874-1.454c.153.001.306-.03.447-.09.277-.118.496-.338.614-.614a1.156 1.156 0 0 0-1.063-1.6 1.117 1.117 0 0 0-.445.09c-.105.045-.138.103-.282.173v1.777c.145.071.177.129.282.173.142.062.294.092.447.091m-.728 5.841c.145.031.197.056.299.07.112.016.226.024.339.025.175-.001.35-.019.521-.056.175-.035.342-.1.494-.193a1.12 1.12 0 0 0 .368-.366c.103-.173.153-.373.145-.575V6.844H9.518zm-7.951 1.106 7.516 1.301V1.64L1.567 2.941z" /><path fill="#fff" fill-rule="evenodd" d="m7.06 5.543-3.469.21v.8l1.301-.051v3.71l.867.05V6.468L7.06 6.41z" clip-rule="evenodd" /></symbol>'});Me().add($a);const Ya=$a;var Za=new(_e())({id:"telegram",use:"telegram-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="telegram"><path d="M12 1.4C6.146 1.4 1.4 6.146 1.4 12c0 5.854 4.746 10.6 10.6 10.6 5.854 0 10.6-4.746 10.6-10.6 0-5.854-4.746-10.6-10.6-10.6M9.892 16.394c-.031.029-.053.042-.058.049a.282.282 0 0 1-.047-.064 1.067 1.067 0 0 1-.07-.159l-.106-.324c-.054-.185-.108-.37-.167-.553l-.112-.356a40.337 40.337 0 0 0-.19-.589c-.107-.32-.201-.645-.296-.969l-.062-.213c.207-.122.408-.253.609-.384l4.47-2.85-2.861 2.571c-.242.216-.482.434-.722.652l-.135.126c-.068.064-.136.129-.207.189-.105.089-.156.19-.153.303.003.112.06.211.17.294l1.305.995zm6.54-4.969c-.007.033-.01.067-.014.1l-.29 1.405c-.21 1.01-.42 2.021-.655 3.026-.06.258-.11.519-.164.779-.192.484-.676.632-1.067.331-.833-.641-1.668-1.279-2.502-1.92-.03-.023-.06-.047-.098-.053-.01-.016-.014-.036-.027-.046a89.258 89.258 0 0 0-.61-.466c-.295-.226-.591-.452-.888-.676-.082-.062-.09-.112-.006-.183.12-.102.232-.215.349-.321.239-.217.479-.435.72-.651.4-.358.804-.713 1.205-1.072.27-.244.538-.493.809-.738.433-.39.868-.778 1.302-1.167.176-.158.352-.317.532-.471.098-.084.142-.189.095-.261-.053-.08-.138-.081-.27-.004a.088.088 0 0 1-.01.006c-.681.435-1.363.871-2.045 1.305l-3.238 2.06c-.361.23-.714.473-1.09.682-.311-.126-.635-.217-.953-.326-.541-.183-1.083-.363-1.624-.544a1.28 1.28 0 0 1-.263-.128c-.16-.1-.254-.231-.217-.43.006-.016.01-.031.017-.046l.06-.111a1.04 1.04 0 0 1 .342-.214c.616-.266 1.227-.541 1.845-.802a138.131 138.131 0 0 1 3.716-1.497c.404-.156.813-.301 1.218-.458.783-.302 1.57-.591 2.359-.878.279-.101.56-.199.838-.303.27-.101.542-.201.826-.271.293-.071.579.058.52.473-.19 1.301-.476 2.582-.722 3.87" /></symbol>'});Me().add(Za);const Xa=Za;var ei=new(_e())({id:"telegram_colored",use:"telegram_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="telegram_colored"><path fill="#33A7DC" d="M22.6 12c0 5.854-4.746 10.6-10.6 10.6-5.854 0-10.6-4.746-10.6-10.6C1.4 6.146 6.146 1.4 12 1.4c5.854 0 10.6 4.746 10.6 10.6" /><path fill="#fff" fill-rule="evenodd" d="m5.429 11.617.059-.11a1.04 1.04 0 0 1 .342-.215c.616-.265 1.227-.54 1.845-.802a126.34 126.34 0 0 1 3.716-1.495c.404-.156.813-.302 1.218-.458.783-.302 1.57-.59 2.359-.878.279-.1.56-.199.838-.303.272-.1.543-.2.826-.27.293-.073.579.057.52.472-.187 1.3-.474 2.58-.72 3.87-.007.032-.01.066-.014.1l-.29 1.403c-.21 1.011-.42 2.021-.655 3.026-.06.258-.11.52-.164.78-.192.483-.676.631-1.067.33l-2.502-1.919c-.03-.023-.06-.047-.098-.053-.01-.016-.014-.036-.027-.046-.202-.157-.406-.312-.61-.467-.295-.226-.591-.452-.888-.676-.082-.062-.09-.112-.006-.182.12-.102.232-.215.349-.32.239-.219.479-.436.72-.652.4-.358.804-.713 1.205-1.073.27-.244.538-.493.809-.738.433-.39.868-.778 1.302-1.167.176-.158.352-.317.532-.47.098-.085.142-.19.095-.262-.053-.08-.138-.08-.27-.004l-.01.006-2.045 1.305-3.238 2.06c-.361.23-.714.473-1.09.682-.311-.127-.635-.218-.953-.325-.541-.183-1.083-.363-1.624-.545a1.23 1.23 0 0 1-.263-.128c-.16-.1-.254-.23-.217-.43z" clip-rule="evenodd" /><path fill="#CADFED" fill-rule="evenodd" d="M8.47 13.091c.376-.209.728-.452 1.09-.682l3.238-2.06 2.046-1.305.01-.006c.13-.077.216-.076.269.004.047.071.003.177-.095.261-.18.154-.356.313-.532.471-.434.388-.87.777-1.302 1.167-.271.245-.538.494-.81.738-.4.36-.803.714-1.204 1.073-.241.216-.48.433-.72.651-.117.106-.228.22-.35.321-.083.071-.075.12.007.182.298.224.593.451.889.676.203.155.406.31.609.467.013.01.018.031.027.046-.007.046-.047.067-.076.094a245.895 245.895 0 0 1-1.493 1.4c-.202.187-.38.16-.515-.078-.055-.095-.086-.2-.131-.299-.078-.263-.151-.527-.235-.788-.101-.314-.196-.629-.301-.942-.154-.459-.281-.927-.42-1.39" clip-rule="evenodd" /></symbol>'});Me().add(ei);const ti=ei;var ni=new(_e())({id:"webhook",use:"webhook-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="webhook"><path d="M4.34 17.025c.247 1.325 1.453 2.139 2.69 1.815 1.314-.344 2.012-1.611 1.517-2.912-.18-.472-.068-.773.156-1.144.874-1.444 1.73-2.9 2.624-4.401-2.082-1.044-2.843-2.43-2.34-4.124.443-1.494 1.938-2.472 3.46-2.242.759.114 1.427.426 1.947 1.018.788.898.965 1.947.725 3.115.639.173 1.22.33 1.798.488.766-2.101-.133-4.555-2.094-5.814a5.148 5.148 0 0 0-6.422.674C7.495 4.39 7 5.478 6.885 6.738c-.163 1.782.573 3.22 1.81 4.45l-1.966 3.3c-.182.013-.293.015-.401.03-1.294.184-2.204 1.334-1.987 2.507m17.924-2.384c-.866-1.898-3.281-3.67-6.483-2.68l-1.902-3.355c.098-.246.189-.447.259-.655.252-.745.1-1.424-.378-2.028a2.185 2.185 0 0 0-2.474-.675 2.195 2.195 0 0 0-1.401 2.15c.039.964.685 1.824 1.687 1.998.6.104.894.388 1.16.879.789 1.456 1.619 2.89 2.434 4.337 1.965-1.31 3.59-1.268 4.804.096a3.21 3.21 0 0 1 .052 4.19c-1.198 1.415-2.813 1.47-4.658.276L13.898 20.4c1.868 1.865 4.536 2.113 6.645.66 2.052-1.412 2.767-4.127 1.72-6.42M15.85 18.3a2.18 2.18 0 0 0 3.068.106c.904-.84.945-2.25.09-3.127-.835-.858-2.265-.94-3.041-.031-.472.552-.955.617-1.581.607-1.603-.025-3.208-.008-4.811-.008.104 2.256-.748 3.662-2.44 3.995-1.656.327-3.181-.518-3.718-2.06-.61-1.752.144-3.153 2.324-4.265l-.494-1.791c-2.375.518-4.157 2.822-3.973 5.415.163 2.289 2.009 4.32 4.267 4.686a5.146 5.146 0 0 0 3.448-.614c1.375-.78 2.173-2.007 2.543-3.527h3.855c.163.22.295.435.463.614" /></symbol>'});Me().add(ni);const ri=ni;var oi=new(_e())({id:"webhook_colored",use:"webhook_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="webhook_colored"><path fill="#C73A63" d="M11.327 10.383c-.894 1.502-1.75 2.957-2.624 4.4-.224.372-.336.674-.156 1.145.495 1.302-.203 2.568-1.516 2.912-1.238.324-2.444-.49-2.69-1.814-.217-1.173.694-2.323 1.987-2.506.108-.015.219-.017.4-.031l1.968-3.3C7.458 9.96 6.722 8.52 6.885 6.739 7 5.478 7.495 4.39 8.4 3.498a5.148 5.148 0 0 1 6.422-.674c1.96 1.26 2.859 3.714 2.094 5.814l-1.798-.488c.24-1.168.063-2.216-.725-3.115-.52-.593-1.188-.904-1.947-1.02-1.522-.23-3.017.749-3.46 2.243-.504 1.696.258 3.08 2.34 4.125" /><path fill="#4B4B4B" d="m13.879 8.606 1.902 3.355c3.202-.991 5.617.782 6.483 2.68 1.046 2.293.33 5.008-1.724 6.422-2.11 1.452-4.776 1.204-6.645-.661l1.466-1.227c1.846 1.195 3.46 1.139 4.658-.276a3.21 3.21 0 0 0-.052-4.19c-1.214-1.364-2.84-1.406-4.804-.096-.815-1.446-1.644-2.88-2.434-4.337-.266-.491-.56-.776-1.16-.88-1.002-.174-1.648-1.034-1.687-1.998a2.194 2.194 0 0 1 1.4-2.15 2.184 2.184 0 0 1 2.475.675c.478.604.63 1.284.378 2.028-.068.208-.158.409-.256.655" /><path fill="#4A4A4A" d="M15.383 17.686h-3.855c-.37 1.52-1.168 2.747-2.543 3.527a5.144 5.144 0 0 1-3.448.614c-2.258-.364-4.104-2.397-4.267-4.685-.184-2.593 1.598-4.897 3.974-5.415l.494 1.79c-2.18 1.113-2.934 2.514-2.324 4.266.537 1.542 2.062 2.387 3.718 2.06 1.69-.334 2.544-1.74 2.44-3.995 1.603 0 3.208-.017 4.81.008.627.01 1.11-.055 1.582-.607.777-.908 2.206-.826 3.042.032a2.183 2.183 0 0 1-.091 3.127 2.181 2.181 0 0 1-3.068-.106c-.165-.181-.298-.395-.464-.616" /></symbol>'});Me().add(oi);const ai=oi;var ii=new(_e())({id:"ipNetworking",use:"ipNetworking-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworking"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.3-.6-.4h-.1c-.2-.1-.4-.2-.6-.2h-.1c-.2-.1-.4-.1-.7-.1h-.3C9.4 3.8 8 3 6.5 3 4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3M10.5 11h-4C4.6 11 3 9.4 3 7.5S4.6 4 6.5 4c1.1 0 2 .5 2.7 1.3-.7.2-1.3.8-1.7 1.4l.9.5c.3-.5.8-.9 1.4-1.1.1 0 .2 0 .2-.1h.5c.2 0 .4 0 .5.1h.1c.1 0 .3.1.4.1h.1c.1.1.3.2.4.3.1.1.3.2.4.4.4.4.6 1 .6 1.6 0 1.4-1.1 2.5-2.5 2.5" /></symbol>'});Me().add(ii);const li=ii;var ci=new(_e())({id:"ipNetworkingPress",use:"ipNetworkingPress-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworkingPress"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.2-.5-.3 0 0-.1 0-.1-.1-.2-.1-.4-.1-.6-.2h-.1c-.3-.1-.5-.1-.8-.1h-.2c-1.2.1-2.2.7-2.7 1.7l-.9-.5c.6-1 1.6-1.8 2.8-2.1-.8-.7-1.8-1.1-3-1.1C4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3" /></symbol>'});Me().add(ci);const si=ci;var ui=new(_e())({id:"last_week",use:"last_week-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="last_week"><path d="M10.75 11.083 9 8.75l-1.75 2.333V5.5h-1.5v7.25h2.125L9 11.25l1.125 1.5h2.125V5.5h-1.5zM11.562 2H6.438A4.438 4.438 0 0 0 2 6.438v5.124A4.438 4.438 0 0 0 6.438 16h5.124A4.438 4.438 0 0 0 16 11.562V6.438A4.438 4.438 0 0 0 11.562 2m2.938 9.562a2.941 2.941 0 0 1-2.938 2.938H6.438A2.941 2.941 0 0 1 3.5 11.562V6.438A2.941 2.941 0 0 1 6.438 3.5h5.124A2.941 2.941 0 0 1 14.5 6.438z" /></symbol>'});Me().add(ui);const di=ui;var hi=new(_e())({id:"line_chart",use:"line_chart-usage",viewBox:"0 0 15 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" id="line_chart"><path d="M14 3.24A3.24 3.24 0 0 0 10.76 0H3.24A3.24 3.24 0 0 0 0 3.24v7.53a3.24 3.24 0 0 0 3.24 3.24h7.53a3.24 3.24 0 0 0 3.24-3.24V6.48c-.42.32-.94.52-1.5.52v3.76c0 .96-.78 1.74-1.74 1.74H3.24c-.96 0-1.74-.78-1.74-1.74V10C2.33 10 3 9.33 3 8.5c0-.23-.06-.45-.15-.64l1.01-1.01c.2.09.41.15.64.15.36 0 .69-.13.95-.35L8.03 8.2A1.498 1.498 0 0 0 9.5 10a1.498 1.498 0 0 0 1.25-2.33l1.31-1.74c.14.04.29.07.44.07.83 0 1.5-.67 1.5-1.5v-.01zm-2.75 2.09L9.94 7.07C9.8 7.03 9.65 7 9.5 7c-.36 0-.69.13-.95.35L5.97 5.8A1.498 1.498 0 0 0 4.5 4C3.67 4 3 4.67 3 5.5c0 .23.06.45.15.64L2.14 7.15C1.94 7.06 1.73 7 1.5 7V3.24c0-.96.78-1.74 1.74-1.74h7.53c.88 0 1.6.66 1.71 1.5a1.5 1.5 0 0 0-1.23 2.33" /></symbol>'});Me().add(hi);const vi=hi;var mi=new(_e())({id:"logs",use:"logs-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="logs"><path d="M2 9.601c0-.276.252-.5.563-.5h10.875c.31 0 .562.224.562.5s-.252.5-.562.5H2.563c-.311 0-.563-.224-.563-.5M2 11.601c0-.276.252-.5.563-.5h7.874c.311 0 .563.224.563.5s-.252.5-.562.5H2.561c-.31 0-.562-.224-.562-.5M2 13.601c0-.276.252-.5.563-.5h4.874c.311 0 .563.224.563.5s-.252.5-.562.5H2.563c-.311 0-.563-.224-.563-.5M5.33 3.153a.527.527 0 0 0-.73-.013L2.37 5.225a.49.49 0 0 0-.153.423.487.487 0 0 0 .213.562l2.626 1.616a.522.522 0 0 0 .706-.158.488.488 0 0 0-.154-.686l-2.19-1.348L5.318 3.86a.49.49 0 0 0 .013-.707M8.7 3.254a.527.527 0 0 1 .728-.013l2.23 2.085a.49.49 0 0 1 .154.423.488.488 0 0 1-.212.562L8.974 7.927a.522.522 0 0 1-.706-.158.488.488 0 0 1 .153-.686l2.19-1.348-1.898-1.774a.49.49 0 0 1-.013-.707" /></symbol>'});Me().add(mi);const gi=mi;var fi=new(_e())({id:"logo_s",use:"logo_s-usage",viewBox:"0 0 14 13",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 13" id="logo_s"><path fill-rule="evenodd" d="M8.393 12.804H5.64L0 .882h8.007c3.113.007 5.636 2.77 5.637 6.177-.005 3.176-2.353 5.745-5.251 5.745" clip-rule="evenodd" /></symbol>'});Me().add(fi);const pi=fi;var wi=new(_e())({id:"loading",use:"loading-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="loading"><path d="M14.303 18.728h-3.436L3.67 5.272h10.066c4.043.008 7.262 3.172 7.265 7.007-.007 3.536-2.972 6.448-6.697 6.448" /></symbol>'});Me().add(wi);const bi=wi;var yi=new(_e())({id:"long_arrow_up",use:"long_arrow_up-usage",viewBox:"0 0 10 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 14" id="long_arrow_up"><path d="M.97 4.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l2.22-2.22V13c0 .41.34.75.75.75s.75-.34.75-.75V3.31l2.22 2.22c.29.29.77.29 1.06 0 .15-.15.22-.34.22-.53s-.07-.38-.22-.53L5 .44z" /></symbol>'});Me().add(yi);const xi=yi;var Oi=new(_e())({id:"magnify",use:"magnify-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="magnify"><path fill-rule="evenodd" d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14" clip-rule="evenodd" /></symbol>'});Me().add(Oi);const Bi=Oi;var Ci=new(_e())({id:"metrics",use:"metrics-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="metrics"><path d="M21.83 5.64C21.29 3.55 19.41 2 17.16 2H6.84C4.17 2 2 4.17 2 6.84v6.94c-.61.55-1 1.34-1 2.22 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.46-.11-.89-.3-1.29l1.01-1.01c.39.19.82.3 1.29.3.87 0 1.65-.38 2.2-.97l1.82.78c0 .06-.02.12-.02.19 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.67-.23-1.29-.61-1.79l.88-1.31c.24.06.48.1.73.1 1.65 0 3-1.35 3-3 0-.96-.46-1.81-1.17-2.36M4 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m5-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m7 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m1-7c0 .67.23 1.29.61 1.79l-.87 1.31c-.24-.06-.48-.1-.73-.1-.87 0-1.65.38-2.2.97l-1.82-.78c0-.06.02-.12.02-.19 0-1.65-1.35-3-3-3s-3 1.35-3 3c0 .46.11.89.3 1.29L5.29 13.3C4.9 13.11 4.47 13 4 13V6.84C4 5.27 5.28 4 6.84 4h10.31c.89 0 1.68.42 2.2 1.07C18.01 5.37 17 6.57 17 8m3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m0 8.16c0 1.57-1.28 2.84-2.84 2.84H6.84c-.46 0-.89-.12-1.28-.32-.48.2-1.01.32-1.56.32-.42 0-.83-.08-1.21-.21A4.84 4.84 0 0 0 6.84 22h10.31c2.67 0 4.84-2.17 4.84-4.84v-5.72c-.59.35-1.27.56-2 .56v5.16z" /></symbol>'});Me().add(Ci);const _i=Ci;var zi=new(_e())({id:"metrics_explorer",use:"metrics_explorer-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="metrics_explorer"><path d="M11.5 7.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88m.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H4.38c-.48 0-.88-.39-.88-.88V8.14l1.67 1.11 1.02.68 1.5-1.5c.99.96 2.32 1.57 3.81 1.57 2.7 0 4.93-1.94 5.4-4.5A5.497 5.497 0 0 0 11.5 1C8.81 1 6.57 2.94 6.1 5.5c.12.63.34 1.22.65 1.75L6 8 3 6H2v7.62A2.38 2.38 0 0 0 4.38 16h9.24A2.38 2.38 0 0 0 16 13.62V11l-1.17-.73c-.87.24-1.81.27-2.74.06M11.5 2.5c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3" /></symbol>'});Me().add(zi);const Mi=zi;var Ei=new(_e())({id:"minimize_s",use:"minimize_s-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="minimize_s"><path d="M14 14H4c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1" /></symbol>'});Me().add(Ei);const Si=Ei;var ki=new(_e())({id:"mobile_push_notifications",use:"mobile_push_notifications-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications"><path d="M22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22M11.5 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});Me().add(ki);const ji=ki;var Hi=new(_e())({id:"mobile_push_notifications_hollow",use:"mobile_push_notifications_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications_hollow"><path d="M11.5 19h-4c-.28 0-.5.22-.5.5s.22.5.5.5h4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5M22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2v5.07c0 1.06-.87 1.93-1.93 1.93H5.93C4.87 21 4 20.13 4 19.07V4.93C4 3.87 4.87 3 5.93 3h7.09c-.63.84-1.03 1.87-1.03 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12.01-.84-.31-1.63-.9-2.22M19.88 11h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});Me().add(Hi);const Pi=Hi;var Vi=new(_e())({id:"monitoring",use:"monitoring-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="monitoring"><path d="m13.5 9.38-2 4-.69-1.38H4v1h6.19l1.31 2.62 2-4 .69 1.38H16v-1h-1.19zM15.87 0H4.13C1.85 0 0 1.85 0 4.13v11.74C0 18.15 1.85 20 4.13 20h11.74c2.28 0 4.13-1.85 4.13-4.13V4.13C20 1.85 18.15 0 15.87 0M18 15.87c0 1.17-.96 2.13-2.13 2.13H4.13C2.96 18 2 17.04 2 15.87V4.13C2 2.96 2.96 2 4.13 2h11.74C17.04 2 18 2.96 18 4.13zM9.5 4.38l-2 4L6.81 7H4v1h2.19l1.31 2.62 2-4L10.19 8H16V7h-5.19z" /></symbol>'});Me().add(Vi);const Ai=Vi;var Li=new(_e())({id:"more",use:"more-usage",viewBox:"0 0 18 4",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 4" id="more"><path d="M14 2a2 2 0 1 0 4.001-.001A2 2 0 0 0 14 2m-3 0a2 2 0 1 0-4.001.001A2 2 0 0 0 11 2M4 2a2 2 0 1 0-4.001.001A2 2 0 0 0 4 2" /></symbol>'});Me().add(Li);const Di=Li;var Fi=new(_e())({id:"nav_left",use:"nav_left-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_left"><path d="M4.17 8.67 2.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .745.745 0 0 0-1.01.34L.66 5l2.17 4.33c.19.37.64.52 1.01.34s.52-.63.33-1m1.66-8L3.66 5l2.17 4.33c.19.37.64.52 1.01.34.37-.19.52-.64.34-1.01L5.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .74.74 0 0 0-1.01.34" /></symbol>'});Me().add(Fi);const Ii=Fi;var Ti=new(_e())({id:"nav_right",use:"nav_right-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_right"><path d="M3.83 1.33 5.66 5 3.83 8.67a.742.742 0 0 0 .33 1c.37.19.82.04 1.01-.34L7.34 5 5.17.67A.763.763 0 0 0 4.16.33c-.37.18-.52.63-.33 1m-1.66 8L4.34 5 2.17.67A.763.763 0 0 0 1.16.33C.79.52.64.97.82 1.34L2.66 5 .83 8.67a.742.742 0 0 0 .33 1c.38.19.83.04 1.01-.34" /></symbol>'});Me().add(Ti);const Ri=Ti;var Ni=new(_e())({id:"nav_arrow_goto",use:"nav_arrow_goto-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="nav_arrow_goto"><path d="M8.5 7.6c0 .5-.4.9-.9.9H2.4c-.5 0-.9-.4-.9-.9V2.4c0-.5.4-.9.9-.9h.1C3.33 1.5 4 .83 4 0H2.4A2.4 2.4 0 0 0 0 2.4v5.2A2.4 2.4 0 0 0 2.4 10h5.2A2.4 2.4 0 0 0 10 7.6V6c-.83 0-1.5.67-1.5 1.5zM5.75 0C5.34 0 5 .34 5 .75s.34.75.75.75h1.69L3.97 4.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L8.5 2.56v1.69c0 .41.34.75.75.75s.75-.34.75-.75V0z" /></symbol>'});Me().add(Ni);const Ui=Ni;var Gi=new(_e())({id:"nav_dots",use:"nav_dots-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="nav_dots"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2" /></symbol>'});Me().add(Gi);const Wi=Gi;var qi=new(_e())({id:"netdata",use:"netdata-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="netdata"><g clip-path="url(#netdata_a)"><path d="M13.645 4.5H2.526l7.833 15h3.822c4.025 0 7.286-3.232 7.293-7.228-.002-4.288-3.505-7.764-7.83-7.772m.536 13.125h-2.685L5.62 6.375h8.021c3.283.006 5.956 2.652 5.957 5.894-.004 2.954-2.435 5.356-5.417 5.356" /></g><defs><clipPath id="netdata_a"><path d="M2 5.2c0-1.12 0-1.68.218-2.108a2 2 0 0 1 .874-.874C3.52 2 4.08 2 5.2 2h13.6c1.12 0 1.68 0 2.108.218a2 2 0 0 1 .874.874C22 3.52 22 4.08 22 5.2v13.6c0 1.12 0 1.68-.218 2.108a2 2 0 0 1-.874.874C20.48 22 19.92 22 18.8 22H5.2c-1.12 0-1.68 0-2.108-.218a2 2 0 0 1-.874-.874C2 20.48 2 19.92 2 18.8z" /></clipPath></defs></symbol>'});Me().add(qi);const Ki=qi;var Ji=new(_e())({id:"netdataAssistant",use:"netdataAssistant-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="netdataAssistant"><path fill-rule="evenodd" d="M8.302 2.5H1l5.788 11.1h2.8L6.2 6.3h2.102zm1.902 11.068L9.45 8.85h1.85L9.06 2.5h.155c3.195.006 5.783 2.578 5.785 5.751-.005 2.758-2.101 5.024-4.796 5.317" clip-rule="evenodd" /></symbol>'});Me().add(Ji);const Qi=Ji;var $i=new(_e())({id:"netdata-press",use:"netdata-press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="netdata-press"><path fill-rule="evenodd" d="M10.535 2H.158l7.311 14h3.567c3.756 0 6.8-3.017 6.806-6.746C17.84 5.251 14.571 2.007 10.535 2" clip-rule="evenodd" /></symbol>'});Me().add($i);const Yi=$i;var Zi=new(_e())({id:"node",use:"node-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node"><path fill-rule="evenodd" d="M19.111 9H4.89A.885.885 0 0 0 4 9.875v5.25c0 .481.4.875.889.875H19.11a.885.885 0 0 0 .889-.875v-5.25c0-.481-.4-.875-.889-.875M7.556 14.25c-.978 0-1.778-.787-1.778-1.75 0-.962.8-1.75 1.778-1.75.977 0 1.777.788 1.777 1.75 0 .963-.8 1.75-1.777 1.75" clip-rule="evenodd" /></symbol>'});Me().add(Zi);const Xi=Zi;var el=new(_e())({id:"node_child",use:"node_child-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_child"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35M5 13.5H3.5V12H5z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9m-.01 5.49 12.99.01v-3.99l-.01-.01H2.51z" /></symbol>'});Me().add(el);const tl=el;var nl=new(_e())({id:"node_default_l",use:"node_default_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_default_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#979797" rx="7.5" /><path fill="#35414A" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088m1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549m-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09m10.766 2.254c.369 0 .716.09 1.022.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034m-.177 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088" clip-rule="evenodd" /></symbol>'});Me().add(nl);const rl=nl;var ol=new(_e())({id:"node_hollow",use:"node_hollow-usage",viewBox:"0 0 22 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 12" id="node_hollow"><path d="M5 7H3v2h2zm14.97-7H2.03C.91 0 0 .91 0 2.03v7.94C0 11.09.91 12 2.03 12h17.94c1.12 0 2.03-.91 2.03-2.03V2.03C22 .91 21.09 0 19.97 0M20 9.97c0 .02-.01.03-.03.03L2 9.97 2.03 2 20 2.03z" /></symbol>'});Me().add(ol);const al=ol;var il=new(_e())({id:"node_import_export",use:"node_import_export-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node_import_export"><path d="m7 11.41 3.71-3.71A.996.996 0 1 0 9.3 6.29L8 7.59V2H6v5.59l-1.29-1.3A.996.996 0 1 0 3.3 7.7zm7.71-4.7L16 5.41V11h2V5.41l1.29 1.29c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L17 1.59 13.29 5.3a.996.996 0 0 0 0 1.41c.39.39 1.03.39 1.42 0M7 17H5v2h2zm13.61-4H3.39C2.62 13 2 13.62 2 14.39v6.22c0 .77.62 1.39 1.39 1.39h17.22c.77 0 1.39-.62 1.39-1.39v-6.22c0-.77-.62-1.39-1.39-1.39M20 20H4v-5h16z" /></symbol>'});Me().add(il);const ll=il;var cl=new(_e())({id:"node_notification_l",use:"node_notification_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_notification_l"><rect width="39" height="39" x=".5" y=".5" fill="#00AB44" stroke="#00AB4E" rx="7.5" /><path fill="#fff" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088m1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549m-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09m10.766 2.254c.369 0 .716.09 1.022.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034m-.177 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088" clip-rule="evenodd" /></symbol>'});Me().add(cl);const sl=cl;var ul=new(_e())({id:"node_parent",use:"node_parent-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_parent"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35M5 13.5H3.5V12H5z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9m-.01 5.49 12.99.01v-3.99l-.01-.01H2.51z" /></symbol>'});Me().add(ul);const dl=ul;var hl=new(_e())({id:"node_selected_l",use:"node_selected_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_selected_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#00AB4E" rx="7.5" /><path fill="#00AB44" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088m1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549m-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09m10.766 2.254c.369 0 .716.09 1.022.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034m-.177 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088" clip-rule="evenodd" /></symbol>'});Me().add(hl);const vl=hl;var ml=new(_e())({id:"nodes",use:"nodes-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="nodes"><path d="M15.111 8.889H.89c-.489 0-.889.4-.889.889v5.333C0 15.6.4 16 .889 16H15.11c.489 0 .889-.4.889-.889V9.778c0-.49-.4-.89-.889-.89M3.556 14.222c-.978 0-1.778-.8-1.778-1.778 0-.977.8-1.777 1.778-1.777.977 0 1.777.8 1.777 1.777 0 .978-.8 1.778-1.777 1.778M15.11 0H.89C.4 0 0 .4 0 .889v5.333c0 .49.4.89.889.89H15.11c.489 0 .889-.4.889-.89V.89C16 .4 15.6 0 15.111 0M3.556 5.333c-.978 0-1.778-.8-1.778-1.777 0-.978.8-1.778 1.778-1.778.977 0 1.777.8 1.777 1.778 0 .977-.8 1.777-1.777 1.777" /></symbol>'});Me().add(ml);const gl=ml;var fl=new(_e())({id:"nodes_hollow",use:"nodes_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nodes_hollow"><path d="M2.5 15.5H4V14H2.5zM15.88 0H2.12C.95 0 0 .95 0 2.12v4.26C0 7.55.95 8.5 2.12 8.5h13.76c1.17 0 2.12-.95 2.12-2.12V2.12C18 .95 17.05 0 15.88 0m.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62V2.12c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62zM2.5 6H4V4.5H2.5zm13.38 3.5H2.12C.95 9.5 0 10.45 0 11.62v4.26C0 17.05.95 18 2.12 18h13.76c1.17 0 2.12-.95 2.12-2.12v-4.26c0-1.17-.95-2.12-2.12-2.12m.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62v-4.26c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62z" /></symbol>'});Me().add(fl);const pl=fl;var wl=new(_e())({id:"none_selected",use:"none_selected-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="none_selected"><path d="M8 .5C3.86.5.5 3.86.5 8c0 4.14 3.36 7.5 7.5 7.5 4.14 0 7.5-3.36 7.5-7.5C15.5 3.86 12.14.5 8 .5M2 8c0-3.31 2.69-6 6-6 1.39 0 2.66.47 3.67 1.26l-8.41 8.41A5.926 5.926 0 0 1 2 8m6 6c-1.39 0-2.66-.47-3.67-1.26l8.41-8.41A5.926 5.926 0 0 1 14 8c0 3.31-2.69 6-6 6" /></symbol>'});Me().add(wl);const bl=wl;var yl=new(_e())({id:"notification_shortcut_enabled",use:"notification_shortcut_enabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_enabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78M5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7" /><path fill="#96D4A2" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5z" /></symbol>'});Me().add(yl);const xl=yl;var Ol=new(_e())({id:"notification_shortcut_disabled",use:"notification_shortcut_disabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_disabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78M5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7" /><path fill="#F59B9B" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5z" /></symbol>'});Me().add(Ol);const Bl=Ol;var Cl=new(_e())({id:"notification_trigger",use:"notification_trigger-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="notification_trigger"><path d="M10 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1M6.89 3.92l-.58-1.39A7.03 7.03 0 0 0 2.54 6.3l1.39.58c.55-1.33 1.62-2.4 2.96-2.96M6.5 9c0-.17.02-.33.05-.49l-1.47-.29C5.03 8.47 5 8.73 5 9c0 2.21 1.79 4 4 4 .27 0 .53-.03.78-.08l-.29-1.47A2.5 2.5 0 0 1 6.5 9m4.61 5.08.58 1.39a7.03 7.03 0 0 0 3.77-3.77l-1.39-.58a5.502 5.502 0 0 1-2.96 2.96M9 14.5A5.51 5.51 0 0 1 3.5 9c0-.37.04-.73.11-1.08l-1.47-.29C2.05 8.07 2 8.53 2 9c0 3.87 3.13 7 7 7 .47 0 .93-.05 1.37-.14l-.29-1.47c-.35.07-.71.11-1.08.11M9 2c-.47 0-.93.05-1.37.14l.29 1.47c.35-.07.71-.11 1.08-.11 3.03 0 5.5 2.47 5.5 5.5 0 .37-.04.73-.11 1.08l1.47.29c.09-.44.14-.9.14-1.37 0-3.87-3.13-7-7-7m2.45 7.49 1.47.29c.05-.25.08-.52.08-.78 0-2.21-1.79-4-4-4-.27 0-.53.03-.78.08l.29 1.47a2.5 2.5 0 0 1 2.94 2.94" /></symbol>'});Me().add(Cl);const _l=Cl;var zl=new(_e())({id:"os",use:"os-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os"><path d="M6.75 6C5.78 6 5 6.78 5 7.75v2.5c0 .97.78 1.75 1.75 1.75s1.75-.78 1.75-1.75v-2.5C8.5 6.78 7.72 6 6.75 6M7 10.25c0 .14-.11.25-.25.25s-.25-.11-.25-.25v-2.5c0-.14.11-.25.25-.25s.25.11.25.25zM11.25 6c-.96 0-1.75.79-1.75 1.75v.03c0 .57.28 1.11.75 1.43l1.15.8c.07.05.11.12.11.21v.03c0 .14-.11.25-.25.25s-.25-.11-.25-.25V9.9H9.5v.35c0 .96.79 1.75 1.75 1.75S13 11.21 13 10.25v-.03c0-.57-.28-1.11-.75-1.43l-1.15-.8a.248.248 0 0 1-.11-.21v-.03c0-.14.11-.25.25-.25s.25.11.25.25v.35h1.5v-.35C13 6.79 12.21 6 11.25 6m.52-4H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2m2.73 9.77c0 1.5-1.22 2.73-2.73 2.73H6.23c-1.5 0-2.73-1.22-2.73-2.73V6.23c0-1.51 1.22-2.73 2.73-2.73h5.54c1.5 0 2.73 1.22 2.73 2.73z" /></symbol>'});Me().add(zl);const Ml=zl;var El=new(_e())({id:"alpine_linux",use:"alpine_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alpine_linux"><path d="M13.04 2H4.96L.92 9l4.04 7h8.08l4.04-7zm-6.41 8.78c-.44-.02-.84-.21-1.13-.5l1.13-1.1zm3.32-.49L7.52 7.93l-2.44 2.36c-.62.6-1.61.6-2.23 0l4.67-4.52 4.67 4.52c-.62.6-1.61.6-2.24 0m2.85.04-2.02-1.96-.17.17-1.13-1.08 1.29-1.25 4.26 4.12c-.62.61-1.61.61-2.23 0" /></symbol>'});Me().add(El);const Sl=El;var kl=new(_e())({id:"amazon_linux",use:"amazon_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="amazon_linux"><path d="m15.95 11.99-.01.01c-.23.19-.53.34-.83.46-.31.12-.63.21-.95.3-.65.16-1.33.28-2 .36-1.35.17-2.72.22-4.08.16-1.36-.06-2.71-.24-4.02-.6-1.3-.35-2.55-.89-3.65-1.71a.242.242 0 0 0-.31.01c-.1.09-.12.25-.03.35.48.56 1.06 1.03 1.68 1.42.62.4 1.29.71 1.98.96 1.38.5 2.83.76 4.28.84 1.45.08 2.91-.01 4.34-.31.71-.15 1.42-.35 2.1-.64.34-.14.67-.31.99-.51.16-.1.31-.22.46-.34.14-.13.28-.27.4-.45.05-.08.05-.19-.02-.27-.09-.11-.24-.12-.33-.04m-.84-4.81c.68.15 1.28.33 1.28.85 0 .45-.39.75-1.14.75-.63 0-1.24-.28-1.63-.62a.162.162 0 0 0-.25.04l-.28.43c-.05.07-.03.16.03.22.53.48 1.26.72 2.09.72 1.39 0 2.13-.71 2.13-1.62 0-1.21-1.09-1.46-2.01-1.67-.66-.15-1.22-.31-1.22-.76 0-.43.41-.69 1.08-.69.58 0 1.09.2 1.42.5.08.07.2.05.26-.04l.24-.38c.05-.07.03-.17-.03-.22-.44-.38-1.06-.65-1.9-.65-1.29 0-2.01.72-2.01 1.56 0 1.13 1.05 1.37 1.94 1.58M6.93 9.32c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.1-3.43c.05-.16.27-.16.32 0l1.1 3.43c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.55-4.93c.03-.11-.05-.22-.16-.22h-.67c-.08 0-.14.05-.16.12l-1.01 3.38c-.05.16-.27.16-.32 0L9.74 4.28a.171.171 0 0 0-.16-.12h-.61c-.07 0-.14.05-.16.12L7.7 7.67c-.05.16-.28.16-.32 0L6.37 4.28a.171.171 0 0 0-.16-.12h-.67c-.11 0-.2.11-.16.22zm11.03 1.65-.01-.04a.35.35 0 0 0-.3-.23c-.14-.01-.26-.02-.38-.02h-.37c-.25.01-.49.02-.74.06-.25.04-.49.08-.73.16s-.47.18-.68.33c-.06.04-.08.11-.05.18.03.07.12.11.19.08h.01c.2-.09.41-.14.63-.17.22-.03.44-.03.66-.02.22.01.45.04.67.07l.33.06c.02 0 .04.01.06.01v.03c.01.1.01.2.01.31-.01.21-.04.44-.1.65-.11.44-.29.86-.55 1.25-.04.07-.04.15.02.21.07.06.17.06.23-.01.35-.37.63-.8.83-1.27a3.651 3.651 0 0 0 .3-1.16c.01-.15.01-.3-.03-.48M3.83 6.54c-.39-.3-.89-.44-1.45-.44-.88 0-1.83.52-1.83 1.73 0 1.16.96 1.75 1.83 1.75.57 0 1.06-.16 1.45-.46.11-.09.27-.01.27.13v.02c0 .09.08.17.17.17h.64c.09 0 .17-.08.17-.17V5.88c0-1.34-.97-1.85-2.12-1.85-.8 0-1.49.25-2.06.76-.06.06-.08.15-.03.22l.24.38c.06.09.18.11.26.04.43-.38.9-.56 1.44-.56.75 0 1.29.39 1.29 1.05v.48c0 .14-.16.22-.27.14m.27 1.68c0 .04-.01.08-.04.11-.3.36-.79.55-1.32.55-.71 0-1.21-.43-1.21-1.05 0-.62.5-1.05 1.21-1.05.52 0 1.02.19 1.32.55.02.03.04.07.04.11z" /></symbol>'});Me().add(kl);const jl=kl;var Hl=new(_e())({id:"arch_linux",use:"arch_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="arch_linux"><path d="M15.46 14.32c-.21-.19-.43-.38-.66-.56-.53-.42-1.08-.81-1.69-1.1-.03-.02-.05-.06-.03-.09.01-.03.05-.04.08-.04.57.13 1.12.36 1.65.61C12.57 9.09 10.6 5.04 9 1c-.6 1.5-1.25 3.01-1.94 4.52.07.08.14.16.22.24.26.27.53.53.82.78.29.24.6.47.93.67.03.02.04.06.02.09s-.05.04-.08.03c-.37-.13-.73-.29-1.08-.47-.35-.19-.69-.39-1.02-.62-.04-.02-.07-.05-.11-.08C5.08 9.76 3.13 13.38 1 17h.1c1.43-1.31 3.6-2.25 6.1-2.56-.04-.27-.06-.55-.06-.84 0-1.8.84-3.27 1.87-3.27 1.03 0 1.87 1.46 1.87 3.27 0 .29-.02.57-.06.84 2.5.31 4.67 1.25 6.1 2.56h.1c-.55-.89-1.06-1.79-1.56-2.68" /></symbol>'});Me().add(Hl);const Pl=Hl;var Vl=new(_e())({id:"celarOS",use:"celarOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="celarOS"><path d="M9 2.02c-3.87 0-7 3.13-7 7 0 2.44 1.25 4.59 3.15 5.85v-2.54l-2.21-2.21a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.69 2.69v3.99c.46.15.94.26 1.43.32V10.9L4.97 7.67a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.9 2.9 2.9-2.9c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14L9.81 10.9v5.08c.5-.06.98-.16 1.43-.32v-3.99l2.69-2.69c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14l-2.21 2.21v2.54c1.9-1.25 3.15-3.4 3.15-5.85-.01-3.86-3.14-7-7.01-7m0 5.46c-.66 0-1.19-.53-1.19-1.19 0-.66.53-1.19 1.19-1.19.66 0 1.19.53 1.19 1.19 0 .66-.53 1.19-1.19 1.19" /></symbol>'});Me().add(Vl);const Al=Vl;var Ll=new(_e())({id:"centos",use:"centos-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos"><path d="M7.76 8.27h.51v-.52L5.14 4.62l1.08-1.08H3.54v2.68l1.08-1.08zm.21.73-.36-.36H3.17V7.1L1.27 9l1.9 1.9V9.36H7.6zm.67-1.39.36.36.36-.36V3.17h1.54L9 1.27l-1.9 1.9h1.53v4.44zM4.62 5.65 3.54 6.74v1.53h3.7zm3.65 1.59v-3.7H6.74L5.65 4.62zm1.46 0 2.62-2.62-1.08-1.08H9.73zm0 .52v.52h.51l3.13-3.13 1.08 1.08V3.54h-2.68l1.08 1.08zm1.03.51h3.7V6.74l-1.08-1.08zm2.62 4.08 1.08-1.08V9.73h-3.7zm-8.76 0 2.62-2.62h-3.7v1.53zm5.62-2.62h-.51v.52l3.13 3.13-1.08 1.08h2.69v-2.68l-1.08 1.08zM16.73 9l-1.9-1.9v1.53H10.4l-.36.36.36.36h4.43v1.55zm-7 1.76v3.7h1.53l1.08-1.08zm-.37-.37L9 10.03l-.36.36v4.43H7.1l1.9 1.9 1.9-1.9H9.36zm-1.09-.15v-.51h-.51l-3.13 3.13-1.08-1.09v2.69h2.68l-1.08-1.08zm0 .52-2.62 2.62 1.08 1.08h1.53v-3.7z" /></symbol>'});Me().add(Ll);const Dl=Ll;var Fl=new(_e())({id:"centos_colored",use:"centos_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos_colored"><path fill="#942579" d="m7.7 8.4.6.59-.6.59H3.5v1.97L.95 8.99l2.56-2.52V8.4z" /><path fill="#EEA724" d="m9.6 7.7-.59.6-.59-.6V3.5H6.44L9.01.95l2.52 2.56H9.6z" /><path fill="#2E2C74" d="m10.3 9.6-.6-.59.6-.59h4.2V6.44l2.56 2.57-2.56 2.52V9.6z" /><path fill="#9DCB3B" d="m8.4 10.3.59-.6.59.6v4.2h1.97l-2.57 2.56-2.52-2.56H8.4zM3.36 3.36h5.1v5.1h-5.1z" /><path fill="#fff" d="M3.17 3.17h5.46v5.46H3.17zm.37 5.1h4.73V3.54H3.54z" /><path fill="#942579" d="M9.55 3.36h5.1v5.1h-5.1z" /><path fill="#fff" d="M9.36 3.17h5.46v5.46H9.36zm.37 5.1h4.73V3.54H9.73z" /><path fill="#EEA724" d="M9.55 9.55h5.1v5.1h-5.1z" /><path fill="#fff" d="M9.36 9.36h5.46v5.46H9.36zm.37 5.1h4.73V9.73H9.73z" /><path fill="#2E2C74" d="M3.36 9.55h5.1v5.1h-5.1z" /><path fill="#fff" d="M3.17 9.36h5.46v5.46H3.17zm.37 5.1h4.73V9.73H3.54z" /><path fill="#fff" d="M4.62 12.86.76 9l3.86-3.86L8.49 9zM1.28 9l3.35 3.35L7.97 9 4.62 5.65zM9 8.49 5.14 4.62 9 .76l3.86 3.86zM5.65 4.62 9 7.97l3.35-3.35L9 1.28zm7.73 8.24L9.52 9l3.86-3.86L17.24 9zM10.03 9l3.35 3.35L16.72 9l-3.35-3.35zM9 17.24l-3.86-3.86L9 9.52l3.86 3.86zm-3.35-3.86L9 16.72l3.35-3.35L9 10.03z" /></symbol>'});Me().add(Fl);const Il=Fl;var Tl=new(_e())({id:"coreOS",use:"coreOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="coreOS"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7m-2.1 9.1c0-4.9.7-7 2.1-8.4A6.3 6.3 0 0 1 15.3 9c-1.4 1.4-3.5 2.1-8.4 2.1m1.96-5.42c-.28.92-.48 2.18-.54 4 1.82-.06 3.08-.25 4-.54a4.88 4.88 0 0 0-3.46-3.46" /></symbol>'});Me().add(Tl);const Rl=Tl;var Nl=new(_e())({id:"debian",use:"debian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian"><path d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15M7.56 7.56c.01 0 .01 0 0 0m6.97-2.63-.03.12zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16m1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01m-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18" /></symbol>'});Me().add(Nl);const Ul=Nl;var Gl=new(_e())({id:"debian_colored",use:"debian_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian_colored"><path fill="#D61C53" d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15M7.56 7.56c.01 0 .01 0 0 0m6.97-2.63-.03.12zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16m1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01m-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18" /></symbol>'});Me().add(Gl);const Wl=Gl;var ql=new(_e())({id:"fedora",use:"fedora-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="fedora"><path d="M8.98 2C5.11 2 2 5.15 2 8.98v5.45c0 .85.68 1.57 1.57 1.57h5.4c3.87 0 7.02-3.15 7.02-7.02C16 5.15 12.85 2 8.98 2M4.19 14.69a3.261 3.261 0 0 1-1.47-2.73c0-1.6 1.15-2.91 2.63-3.21-.14.2-.24.44-.24.7 0 .34.14.64.35.86-.69.24-1.21.9-1.21 1.65 0 .53.24 1 .61 1.31-.44.19-.73.59-.73 1.11.01.11.04.21.06.31m6.49-4.48H9.32v1.74c0 1.83-1.49 3.28-3.32 3.28-.26 0-.47 0-.72-.08-.34-.08-.64-.38-.64-.77 0-.43.3-.72.77-.72.21 0 .3.04.6.04.98 0 1.74-.77 1.74-1.74v-1.49c0-.13-.08-.26-.26-.26H6.38c-.43 0-.77-.34-.77-.77s.34-.77.77-.77h1.36V6.94c0-1.79 1.49-3.28 3.28-3.28.3 0 .47.04.72.08.38.13.68.43.68.77 0 .43-.3.72-.77.72-.21 0-.3-.04-.64-.04-.94 0-1.7.81-1.7 1.74v1.49c0 .17.09.25.21.25h1.15c.43 0 .77.34.77.77s-.33.77-.76.77m1.03-.06c.14-.2.24-.44.24-.7 0-.33-.14-.63-.35-.86a1.739 1.739 0 0 0 .58-2.95c.45-.18.75-.6.75-1.13 0-.1-.03-.2-.06-.29.88.59 1.47 1.6 1.47 2.72 0 1.6-1.15 2.91-2.63 3.21" /></symbol>'});Me().add(ql);const Kl=ql;var Jl=new(_e())({id:"freeBSD",use:"freeBSD-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeBSD"><path d="M3.1 5.51c.59-.98 1.42-1.81 2.4-2.4-.3-.2-.59-.38-.77-.46-.42-.21-1.96-.98-2.59-.49-.49.63.28 2.17.49 2.59.1.17.27.46.47.76m11 1.19c.35-.35 1.05-1.4 1.26-1.82.21-.42.98-1.96.49-2.59-.63-.49-2.17.28-2.59.49-.42.21-1.46.92-1.81 1.27-.28.98 1.25 2.93 2.65 2.65m.64-.21c.18.55.06.93-.39.96-.7.04-1.94-.81-2.77-1.91-.83-1.1-.93-2.02-.22-2.07.1-.01.2.01.31.03l.52-.43a6.822 6.822 0 0 0-9.83 6.12c0 3.77 3.05 6.81 6.81 6.81a6.822 6.822 0 0 0 5.95-10.16z" /></symbol>'});Me().add(Jl);const Ql=Jl;var $l=new(_e())({id:"gentoo",use:"gentoo-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="gentoo"><path d="M8.77 5.34c-.1-.02-.2-.04-.29-.04-.4 0-.71.23-.71.53 0 .19.1.42.26.63a.537.537 0 0 1-.05-.21c0-.2.19-.34.44-.34.06 0 .12.01.18.02.4.1.7.49.7.77 0 .16-.12.29-.31.33.06.01.12.02.18.02.4 0 .71-.23.71-.53.01-.42-.47-1.02-1.11-1.18M16 8.06c0-.18-.03-.38-.11-.6-.17-.45-.5-.89-.8-1.27-.62-.79-3.19-2.67-3.5-2.89C11.46 3.2 9.81 2 7.78 2h-.17c-2.33.01-4.14 1.36-4.98 2.52-.32.45-.47.9-.48 1.31-.01.18-.01.93.01 1.13.04.49.27.9.57 1.18.31.29 1.37.8 2.26 1.19-.72.57-1.84 1.48-2.31 2.01-.57.64-.78 1.33-.63 2.03-.11.5-.03 1.02.25 1.53.39.72 1.18 1.09 2.33 1.09.39 0 .83-.04 1.37-.12 1.47-.23 4.06-1.64 5.35-2.47 1.26-.82 3.5-2.81 4.19-3.44.19-.18.45-.5.47-.97-.01-.16-.01-.78-.01-.93m-.73.79c-.68.63-2.9 2.6-4.14 3.41-1.26.82-3.78 2.2-5.19 2.42-.51.08-.94.12-1.31.12-1.02 0-1.68-.3-2.01-.91-.43-.79-.31-1.59.34-2.32.66-.75 2.74-2.35 2.89-2.47.18-.15.37-.34.47-.46-.12-.06-.31-.13-.48-.18-.02 0-.03-.01-.05-.02-.4-.17-2.42-1.05-2.81-1.41-.5-.46-.72-1.38-.05-2.31.79-1.09 2.49-2.37 4.68-2.37h.16c1.94 0 3.52 1.17 3.59 1.22.11.08 2.82 2.06 3.43 2.83.5.61 1.33 1.66.48 2.45m-4.13-5.03S9.53 2.61 7.63 2.67c-2.27 0-3.8 1.42-4.39 2.22-.59.8-.37 1.55 0 1.89.37.34 2.7 1.35 2.7 1.35s.73.2.8.4c.07.2-.66.81-.66.81s-2.18 1.69-2.84 2.44c-.66.74-.58 1.42-.29 1.95.44.81 1.61.81 2.92.61 1.31-.2 3.8-1.55 5.04-2.36 1.24-.81 3.51-2.83 4.09-3.37.58-.54.07-1.28-.51-2.02-.58-.75-3.35-2.77-3.35-2.77M8.98 7.49c-1.07-.15-1.93-.86-1.9-1.59.02-.73.91-1.19 1.99-1.04 1.07.15 1.93.86 1.9 1.59-.03.72-.92 1.19-1.99 1.04" /></symbol>'});Me().add($l);const Yl=$l;var Zl=new(_e())({id:"linux",use:"linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux"><path d="M6.71 15.07c-.13-.17-.27-.32-.4-.49-.19-.25-.34-.54-.49-.81-.2-.37-.42-.73-.64-1.09-.09-.15-.19-.3-.32-.4a.696.696 0 0 0-.23-.11.39.39 0 0 0-.26.02.41.41 0 0 0-.21.18c-.05.08-.09.16-.12.25s-.07.17-.11.26a.52.52 0 0 1-.18.21c-.08.06-.19.08-.29.09-.1.01-.21-.01-.31-.01-.1-.01-.21-.02-.31 0a.6.6 0 0 0-.28.13c-.07.07-.11.16-.13.25-.02.09-.02.19-.01.28.01.21.05.42.06.63.01.21 0 .43-.07.63-.05.13-.13.25-.18.38-.02.07-.04.13-.05.2 0 .07.01.14.05.2.05.08.13.14.22.18.09.04.18.06.27.08.21.05.41.13.61.18.57.16 1.18.19 1.74.39.29.11.58.26.89.27.19.01.39-.04.56-.14.17-.1.31-.24.4-.42.13-.24.16-.53.08-.79-.04-.2-.16-.38-.29-.55m9.05-.49a.4.4 0 0 0-.14-.15c-.05-.04-.11-.08-.17-.12-.12-.08-.23-.17-.34-.27-.11-.09-.22-.19-.32-.3a.93.93 0 0 1-.2-.38c-.02-.09-.02-.18-.02-.26-.01-.1-.03-.2-.06-.29a.585.585 0 0 0-.1-.17.576.576 0 0 0-.23-.13h-.02c.11-.19.2-.4.24-.61.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.11-.15-.21-.3-.32-.45-.06-.12-.12-.23-.17-.35-.15-.32-.28-.65-.46-.95-.03-.04-.05-.09-.08-.13-.02-.3-.05-.6-.07-.89-.03-.59.01-1.19-.15-1.76-.08-.28-.2-.54-.35-.79-.18-.29-.41-.54-.68-.74C9.93.94 9.39.78 8.85.78c-.4-.01-.8.07-1.15.26-.37.2-.68.52-.87.9-.19.37-.26.8-.27 1.23-.01.41.02.83.04 1.24.01.43.01.87.04 1.29.01.14.03.28.03.42 0 .07 0 .14-.01.21v-.02c0 .01-.01.01-.01.02-.06.14-.13.28-.21.41-.14.17-.27.34-.41.51l-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.02.07.05.12.07.19.04-.07.09-.14.14-.2.06-.07.14-.13.22-.16.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.08.11.14.23.2.36.06.11.11.22.14.33.06.23.04.47-.04.7l.12-.03c.25-.05.5-.1.76-.1.05 0 .1-.01.15-.01.18.02.37.03.56.02.03 0 .06-.01.09-.01.04 0 .07.01.1.02.31.02.61.05.91.09.27.04.53.09.79.16.1.02.2.05.3.08a1.87 1.87 0 0 1-.03-.34c.01-.34.09-.67.16-1 .02-.1.04-.19.05-.29.04-.21.07-.41.09-.62-.03.28-.08.56-.13.83-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.07-.08.12-.17.16-.26.09-.1.07-.2.03-.28M8.78 3.65c.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.12.04.26.03.39-.01.15-.04.29-.1.43-.04.09-.11.17-.19.24l-.09-.03c-.13-.03-.24-.09-.36-.13.08 0 .16-.02.23-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25.297.297 0 0 0-.16-.02c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.03.26.03.07.07.14.13.19-.08-.04-.16-.08-.23-.12a.3.3 0 0 1-.08-.04c-.05-.06-.08-.14-.11-.21-.02-.04-.05-.07-.08-.11a.75.75 0 0 1 .01-.49m.12 2.22c.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.01-.01c.05 0 .09-.01.14-.01-.05.02-.1.05-.15.08-.08.05-.15.12-.23.19-.17.14-.36.26-.56.33-.13.05-.27.08-.41.11-.18.04-.36.08-.54.07-.18-.01-.37-.05-.51-.16-.05-.04-.1-.09-.15-.14a.585.585 0 0 0-.17-.1c-.01-.01-.02-.01-.04-.01s-.03-.01-.04-.02c-.01-.01-.01-.01-.01-.02.08.01.15.05.21.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.15-.03.29-.06.42-.11M6.96 3.6c.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.1.11.18.25.23.4.05.13.07.27.07.41-.07.09-.13.19-.2.28-.03.02-.07.03-.1.05 0-.01.01-.01.01-.02.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.03.05-.04.11-.05.16-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.02.01.05.01.08.01-.05.05-.11.09-.16.14-.04.03-.08.07-.12.11-.02-.02-.05-.03-.06-.05-.07-.06-.11-.14-.15-.22-.07-.17-.08-.35-.09-.53-.01-.19-.02-.39.04-.57m7.05 9.22c-.19.27-.48.48-.8.59-.19.07-.4.07-.6.01a.622.622 0 0 1-.3-.18c-.1-.11-.13-.26-.14-.41-.01-.15.01-.31.05-.45-.13-.03-.26-.05-.39-.07-.08-.01-.16-.02-.24-.02a.35.35 0 0 0-.22.08c-.06.06-.1.14-.11.22-.01.08-.01.17 0 .26.02.33.02.65.01.98a1.06 1.06 0 0 0-.43-.05c-.26.03-.51.12-.74.24-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.07.08-.16.13-.24.2-.07.01-.15.03-.22.03-.06-.08-.12-.15-.18-.23-.15-.2-.22-.45-.35-.67-.17-.3-.45-.52-.75-.69a.95.95 0 0 0-.09-.21c-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07l-.12-.12c-.01-.23-.01-.47.01-.7.06-.6.23-1.19.47-1.74.07-.16.15-.32.23-.47.12-.12.24-.24.38-.35.24-.17.55-.31.9-.43.23-.05.46-.08.46-.08-1.31.19-1.22-.11-1.28-.19a.342.342 0 0 1-.04-.18c.1-.32.29-.6.49-.87.05-.07.1-.14.14-.21.04.03.08.07.12.1.15.08.31.12.47.14.03 0 .06 0 .08.01-.2-.18-.38-.39-.46-.64-.07-.2-.09-.42-.16-.61-.02-.05-.05-.11-.06-.16-.01-.03-.01-.06-.01-.09.01.02.03.04.06.06.02.02.05.03.07.05.13.08.24.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.04-.18 0-.03.01-.05.02-.08l.01.01c.03.06.04.14.03.21 0 .07-.01.15.02.22.03.08.08.14.12.21.02.04.03.08.03.12 0 .04-.01.08-.04.11-.02.02-.06.04-.09.04-.03.01-.07 0-.1-.01-.07-.01-.13-.04-.19-.05a.375.375 0 0 0-.25.08c-.07.05-.13.12-.2.18-.14.13-.31.24-.48.33-.14.08-.29.15-.42.23-.02.01-.04.03-.06.04.21.01.42 0 .62-.03.35-.06.67-.18 1.01-.21.24-.02.48 0 .71-.04-.09.01-.18.02-.27.02.02.05.05.09.07.14.18.4.31.82.37 1.25.24.25.44.53.59.84.43.9.43 1.94.31 2.93l-.03.24.2.03.03-.12c.04-.1.11-.2.19-.27.09-.07.18-.13.29-.15.12-.03.26-.01.38 0 .12.02.24.05.36.07.13.02.26.04.38.1.06.02.12.06.17.1.04.04.09.1.11.16.03.07.03.16.01.25.01.1-.05.2-.11.3M11.04 8.3c-.09-.28-.13-.84-.13-.84s-.06.45-.32.64c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78M7.72 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.03-.35.03-.69 0-1.04m.53-1.4a.472.472 0 0 1-.18-.49c-.01.08-.02.16-.04.24L8 8.06c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.631.631 0 0 1-.38-.12" /></symbol>'});Me().add(Zl);const Xl=Zl;var ec=new(_e())({id:"linux_colored",use:"linux_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux_colored"><path fill="#050507" d="M12.29 6.52c.18.39.38.78.56 1.17.34.76.61 1.56.72 2.38.11.82.06 1.68-.2 2.47-.29.89-.85 1.69-1.52 2.34-.8.77-1.83 1.36-2.94 1.41-.72.03-1.45-.18-2.09-.52a4.58 4.58 0 0 1-1.42-1.13c-.39-.47-.68-1.02-.82-1.61-.17-.73-.09-1.51.16-2.21.18-.51.45-.98.64-1.48.21-.55.32-1.13.6-1.65.25-.47.62-.87.82-1.36.12-.29.17-.61.25-.92.08-.31.18-.62.39-.86.25-.29.63-.44 1.01-.49.38-.04.76.02 1.14.1.3.07.59.15.88.25.24.09.49.19.7.34.29.21.51.49.68.8.16.32.29.65.44.97" /><path fill="#050507" d="M9.1 16.3c.31.02.61.05.91.09.27.04.53.09.79.16.41.1.82.23 1.24.24.11 0 .22 0 .33-.03a.69.69 0 0 0 .3-.14c.13-.1.21-.26.24-.42.03-.16.01-.33-.04-.49-.1-.32-.3-.59-.47-.87-.1-.16-.18-.33-.29-.49-.1-.16-.23-.31-.39-.41-.22-.14-.49-.19-.75-.16s-.51.12-.74.24c-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.1.1-.23.17-.33.27-.05.05-.1.11-.12.17-.03.07-.03.14-.01.21.02.05.05.09.08.12.04.03.08.05.13.07.09.04.19.04.29.05" /><path fill="#050507" d="M8.19 16.28c-.25.01-.51.05-.76.1-.24.05-.48.1-.71.17-.4.1-.79.23-1.2.24-.11 0-.22 0-.32-.03a.606.606 0 0 1-.29-.14.69.69 0 0 1-.24-.42c-.03-.16-.01-.33.04-.49.09-.32.3-.59.46-.87.09-.16.18-.33.28-.49.1-.16.22-.31.38-.41.21-.14.48-.19.73-.16s.5.12.72.24c.32.17.61.41.79.72.13.22.2.47.35.67.08.11.18.2.25.32.03.06.06.12.06.19a.25.25 0 0 1-.05.19c-.03.04-.06.07-.1.09-.04.02-.08.04-.13.05-.08.03-.17.03-.26.03M6.77 5.69c-.04-.43-.03-.86-.04-1.29-.02-.41-.05-.83-.04-1.24.01-.42.08-.85.27-1.23s.49-.7.86-.9c.35-.19.75-.27 1.15-.26.54.01 1.08.17 1.52.49.27.2.5.45.69.74.15.24.28.51.35.79.15.57.12 1.17.15 1.76.03.56.12 1.12.09 1.68-.01.12-.02.25-.07.35a.55.55 0 0 1-.25.25.97.97 0 0 1-.34.11c-.23.04-.47.01-.71.03-.34.03-.67.16-1.01.21-.41.06-.82.02-1.23 0-.16-.01-.33-.01-.49-.03a1.28 1.28 0 0 1-.47-.14.876.876 0 0 1-.24-.19.604.604 0 0 1-.14-.26c-.04-.15-.02-.3-.02-.45 0-.14-.02-.28-.03-.42" /><path fill="#FDFEFC" d="M7.42 5.52c-.06.07-.1.16-.12.25-.02.09-.03.18-.03.28-.01.19 0 .38-.04.56-.05.19-.17.36-.29.52-.2.28-.4.57-.5.9-.06.2-.08.41-.06.62-.22.33-.42.68-.58 1.04-.24.55-.41 1.14-.47 1.74-.07.73.02 1.49.31 2.17.21.49.52.94.93 1.29.21.18.43.33.68.45.84.41 1.89.42 2.72-.03.43-.23.8-.57 1.15-.91.21-.21.42-.42.59-.66.31-.48.42-1.06.49-1.62.12-.99.12-2.03-.31-2.93-.15-.31-.35-.59-.59-.84-.06-.43-.19-.85-.37-1.25-.13-.29-.29-.56-.41-.85-.05-.12-.09-.24-.15-.36s-.12-.23-.22-.32a.9.9 0 0 0-.34-.2c-.13-.04-.26-.06-.39-.07-.26-.01-.53.02-.79.01-.21-.01-.42-.05-.63-.03-.11.01-.21.02-.31.06-.12.04-.21.1-.27.18" /><path fill="#010101" fill-opacity=".259" d="M7.29 6.51c.09.27.28.51.51.69.07.06.15.12.24.16.09.04.18.06.28.05.09-.01.18-.04.27-.09l.24-.15c.14-.09.28-.16.42-.23.17-.09.34-.2.48-.33.07-.06.13-.13.2-.18.07-.05.16-.09.25-.08.07 0 .13.03.19.05.03.01.07.01.1.01.03-.01.07-.02.09-.04a.15.15 0 0 0 .04-.11c0-.04-.02-.08-.03-.12-.04-.07-.1-.14-.12-.21-.02-.07-.02-.14-.02-.22 0-.07 0-.15-.03-.21a.254.254 0 0 0-.12-.11.293.293 0 0 0-.16-.04c-.11-.01-.22.01-.33.02-.15.01-.3-.01-.44 0-.18.01-.36.06-.55.06-.21 0-.42-.07-.63-.04-.09.01-.17.05-.26.08s-.17.05-.26.05c-.1 0-.2-.04-.3-.04-.05 0-.1 0-.15.02-.05.02-.09.05-.11.1a.31.31 0 0 0-.02.08c0 .03 0 .06.01.09.01.06.04.11.06.16.06.16.08.38.15.58" /><path fill="#010101" d="M7.02 5.73c.18.11.35.25.49.41.13.15.24.31.4.42.12.08.26.12.4.13.17.02.34-.01.5-.05.15-.04.3-.1.43-.17.26-.14.47-.36.75-.45.06-.02.13-.04.18-.06.06-.03.11-.06.14-.12.03-.05.03-.11.03-.17.01-.06.03-.12.04-.18.01-.06.01-.13-.02-.18-.02-.05-.07-.08-.12-.11-.05-.02-.11-.03-.16-.04-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.04-.55.05-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.01-.18.04-.25.09-.07.04-.13.11-.2.16-.03.03-.07.05-.11.07-.04.02-.08.03-.13.03H7.1c-.04.01-.07.03-.09.05.01.04.01.08.01.11" opacity=".3" /><path fill="url(#linux_colored_a)" d="M8.2 4.25c0 .12-.01.25-.04.37-.04.12-.1.23-.18.32-.06.06-.13.1-.21.12-.08.03-.17.03-.25.01a.512.512 0 0 1-.23-.14.636.636 0 0 1-.14-.22c-.07-.17-.08-.35-.1-.53-.01-.2-.03-.4.04-.59.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.21.04.07.03.12.08.18.13.11.11.18.25.24.4.04.15.06.3.07.46" /><path fill="url(#linux_colored_b)" d="M10.41 4.25c-.01.15-.04.29-.1.43-.06.13-.16.25-.29.32-.1.06-.23.08-.35.07a.74.74 0 0 1-.33-.13c-.2-.14-.33-.35-.41-.58-.07-.23-.11-.48-.03-.7.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.13.04.27.03.4" /><path fill="#010101" fill-opacity=".259" d="M7.47 4.82c-.1.08-.19.17-.28.26-.05.05-.1.1-.12.17-.02.06-.02.12-.03.19 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33a2.11 2.11 0 0 0 .3-.26c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.09-.48.25-.65.45" /><path fill="#050507" d="M7.96 4.53c.1-.11.17-.24.26-.36.05-.06.1-.11.17-.15.06-.04.14-.06.21-.05.08.01.16.05.22.1.06.06.1.13.14.2.03.07.06.15.11.21.05.07.13.11.19.16.03.03.06.05.09.09.03.03.05.07.05.11.01.04 0 .09-.01.13-.01.04-.04.08-.07.11-.06.06-.14.09-.23.1-.17.02-.34-.03-.51-.02-.17 0-.34.07-.51.06-.09 0-.17-.02-.24-.07a.258.258 0 0 1-.09-.09.284.284 0 0 1-.04-.12c0-.04.01-.08.02-.12a.36.36 0 0 1 .07-.1c.06-.08.12-.13.17-.19M9.6 3.69c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.04.26.03.08.08.16.14.21.07.06.16.09.25.1.09 0 .18-.02.25-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25c-.06-.01-.11-.02-.17-.02" /><path fill="#161615" d="M9.74 4.07c-.05.02-.12.01-.15.05-.01.03.01.07.03.09.06.02.15-.02.17-.08.01-.02-.01-.06-.03-.07 0 0-.01.01-.02.01" /><path fill="#fff" d="M9.96 4.2c.06-.06-.05-.24-.13-.31-.06-.05-.24-.1-.24-.05.01.06.09.13.14.18.08.07.2.21.23.18" opacity=".5" /><path fill="gray" d="M10.38 3.86c-.08-.07-.16-.13-.25-.19-.29-.19-.68-.23-1.01-.13-.07.02-.14.05-.21.08.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.02.07.04.12.04.18M9.78 2.77c-.03.03-.05.07-.07.11.12.03.23.07.33.14.2.13.35.32.45.53.02-.03.05-.06.07-.09-.11-.22-.26-.42-.46-.56a.831.831 0 0 0-.32-.13M7.49 2.88h-.07c.08.01.16.03.23.06.1.04.18.11.26.18.14.13.24.29.31.46-.02-.13-.06-.26-.11-.37l-.09-.09a1 1 0 0 0-.26-.18.626.626 0 0 0-.27-.06" /><path fill="#050507" d="M7.26 4.04c-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.05.02.11.03.16.02a.2.2 0 0 0 .12-.08c.03-.04.05-.09.07-.13.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.01.05-.03.11-.04.16" /><path fill="#fff" d="M7.53 3.95c.01.04.06.05.08.08.02.03.05.06.06.09.03.07-.02.16.03.21.02.01.05.01.07 0 .06-.06.05-.17.02-.26a.298.298 0 0 0-.15-.18c-.03-.02-.08-.03-.11-.01-.01.02-.01.05 0 .07" opacity=".5" /><path fill="#BA9319" d="M7.03 5.59c0 .02.01.03.02.05.01.02.04.04.06.06.02.02.05.03.07.05.13.08.23.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.03-.18.01-.07.03-.13.04-.2.01-.07.01-.14-.02-.2a.278.278 0 0 0-.12-.12.317.317 0 0 0-.16-.04c-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.05-.55.06-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.02-.18.05-.25.1s-.13.12-.2.18c-.03.03-.07.06-.11.07-.04.02-.08.03-.13.03H7.1c-.01 0-.03.01-.04.02l-.03.03c.03.03.01.06 0 .09" /><path fill="#5F461B" d="M7.49 5.13c-.07.04-.15.09-.22.14-.04.03-.07.05-.09.09-.01.03-.02.06-.02.09v.09c0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.02.02.04.02.01 0 .03.01.04.01.07.02.12.06.17.1.05.04.09.1.15.14.14.11.33.16.51.16s.36-.03.54-.07c.14-.03.28-.06.41-.11.21-.08.4-.19.56-.33.07-.07.15-.14.23-.19.07-.05.16-.08.23-.12.01 0 .01-.01.02-.01.01-.01.01-.01.01-.02a.03.03 0 0 0 0-.04c0-.01-.01-.02-.02-.04l-.03-.03a.508.508 0 0 0-.29-.1c-.1-.01-.21 0-.31-.02s-.19-.05-.28-.08c-.1-.03-.2-.06-.3-.07a1.94 1.94 0 0 0-.72.02c-.22.05-.44.13-.64.25" /><path fill="#F4C021" d="M7.47 4.88c-.11.07-.2.16-.28.26-.05.06-.09.12-.11.19-.02.06-.02.11-.04.17 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.06.04.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.07-.07c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.08-.48.24-.65.45" /><path fill="#F6DA4A" d="M9.11 4.93a.055.055 0 0 0-.05-.03c-.02 0-.04-.01-.06 0a.37.37 0 0 0-.11.05c-.09.07-.18.15-.25.23a.8.8 0 0 0-.2.4c0 .03-.01.05 0 .08s.01.05.03.07c.02.02.04.03.06.03.02 0 .05 0 .07-.01.04-.01.08-.04.11-.07.19-.17.35-.36.42-.6.01-.02.01-.05.01-.07-.01-.04-.01-.06-.03-.08" /><path fill="#5F461B" d="M8.67 4.59c.01.04.08.03.12.05.03.02.06.06.1.06.04 0 .09-.01.1-.05.01-.05-.06-.08-.11-.09-.06-.02-.13-.03-.18 0-.02 0-.04.01-.03.03M8.03 4.56c-.05-.02-.13.07-.1.12.01.01.03.03.04.02.02-.01.04-.06.07-.07.02-.02.01-.06-.01-.07" /><path fill="#F4C021" d="M10.39 5.21c-.01.11-.09.2-.18.2s-.15-.09-.14-.2c.01-.11.09-.2.18-.2.09.01.15.09.14.2" /><path fill="gray" d="M8.02 3.57c-.08-.01-.15-.03-.23-.04a.902.902 0 0 0-.51.1c-.1.06-.17.14-.24.23 0-.09.01-.18.04-.26.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.05.06.09.11.13.17" /><path fill="#050507" d="M12.54 8.94c.34.27.55.68.62 1.11.05.33.02.68-.06 1.01-.08.33-.19.65-.31.97-.05.13-.09.25-.11.39a.59.59 0 0 0 .06.39c.07.14.21.23.36.27.15.04.3.04.45.01.15-.04.29-.11.41-.2.31-.24.49-.61.56-.99.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.16-.21-.28-.45-.47-.64a.955.955 0 0 0-.33-.22.654.654 0 0 0-.39-.03c-.17.05-.3.18-.38.34-.07.16-.09.34-.06.51.04.22.14.43.25.62.13.22.28.43.47.59.23.18.48.29.68.45" /><path fill="#838385" d="M13.23 11.05c-.12.4-.27.79-.41 1.19-.05.14-.1.28-.12.42-.01-.07-.01-.16-.01-.24.02-.14.07-.26.11-.39.23-.64.47-1.31.37-1.98-.07-.43-.28-.84-.62-1.11-.18-.15-.4-.26-.59-.4.21.12.43.21.62.36.36.26.62.67.69 1.11.05.34.07.64-.04 1.04" /><path fill="#010101" fill-opacity=".259" d="M6.48 8.17c.06.08-.04.38 1.28.19 0 0-.23.03-.46.08-.35.12-.66.25-.9.43-.24.17-.41.4-.62.59 0 0 .35-.64.44-.83.09-.19-.01-.18.05-.47.07-.28.24-.56.24-.56s-.14.41-.03.57M10.71 8.1c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78c-.09-.28-.13-.84-.13-.84s-.05.45-.32.64" /><path fill="#010101" fill-opacity=".259" d="M8.19 7.7c-.01.08-.02.16-.04.24l-.03.12c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.63.63 0 0 1-.4-.12.428.428 0 0 1-.14-.16.613.613 0 0 1-.02-.33M7.85 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.02-.35.02-.69 0-1.04" /><path fill="#050507" d="M15.88 14.83c-.03-.06-.08-.11-.13-.16-.05-.04-.11-.08-.16-.12-.12-.09-.22-.18-.33-.28-.11-.1-.22-.2-.3-.31a.868.868 0 0 1-.18-.39c-.01-.04 0-.07-.01-.11-.01-.03-.03-.07-.04-.1-.02-.09-.02-.18-.02-.26 0-.05-.02-.09-.03-.13-.02-.04-.04-.09-.07-.13a.636.636 0 0 0-.22-.14.742.742 0 0 0-.25-.05c-.21-.01-.42.06-.63.07-.2.02-.39-.02-.58-.07-.11-.03-.22-.08-.33-.11-.18-.05-.36-.08-.54-.12-.08-.01-.16-.03-.23-.03a.34.34 0 0 0-.22.07c-.07.05-.1.14-.12.22-.02.08-.01.17-.01.26.02.51 0 1.02-.07 1.52-.03.18-.07.36-.1.54l-.03.21c-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.06-.07.1-.14.13-.22-.02-.02-.02-.04-.03-.06" /><path fill="#F4C021" d="M15.75 14.67c-.03.09-.08.17-.14.24-.13.16-.32.26-.5.35-.31.16-.64.29-.93.48-.2.13-.38.28-.55.44-.15.14-.28.28-.45.4-.17.12-.36.2-.56.23-.24.04-.5-.01-.72-.11-.16-.07-.31-.16-.4-.31-.09-.15-.11-.32-.11-.49 0-.3.06-.6.11-.9.04-.25.09-.5.11-.75.05-.46.05-.92.02-1.37a.885.885 0 0 1 0-.23.288.288 0 0 1 .3-.27c.07 0 .14.01.21.02.17.02.34.04.5.09.1.03.2.06.31.09.17.05.35.07.53.05.19-.02.38-.09.57-.09.08 0 .16.02.23.04.08.02.15.06.21.11.04.04.07.1.1.15.03.08.06.17.06.26s-.02.19-.01.28c.01.08.04.15.08.21s.09.12.14.18c.1.11.19.23.31.31.14.1.3.16.44.25.04.03.08.06.11.1.04.07.06.16.03.24" /><path fill="#7D7D7D" d="M12.37 9.21c.07-.01.47.34.42.46-.06.13-.16.05-.23.05s-.28.09-.31.04c-.03-.05.09-.2.16-.31.04-.09-.11-.23-.04-.24" opacity=".75" /><path fill="#7D7D7D" d="M6.63 7.03c-.01-.08-.12-.09-.17-.05-.04.03-.08.15-.05.19.07.08.23-.03.22-.14" opacity=".25" /><path fill="#BA9319" d="M14.01 12.84a.273.273 0 0 0-.15-.13c-.06-.03-.13-.03-.2-.03-.14 0-.27.04-.41.02-.12-.01-.23-.05-.34-.08a.732.732 0 0 0-.36-.01c-.12.03-.23.12-.3.22-.06.1-.09.21-.1.32-.01.11 0 .23.01.34.01.08.02.16.04.24a.561.561 0 0 0 .38.42c.18.07.38.06.56-.01.31-.14.58-.38.74-.68.06-.11.1-.22.13-.34.01-.05.02-.1.02-.14.01-.05 0-.1-.02-.14" /><path fill="#BA9319" d="M14.01 12.77a.33.33 0 0 0-.15-.1c-.06-.02-.13-.03-.2-.02-.14 0-.27.03-.41.02-.12-.01-.23-.04-.34-.06-.12-.02-.24-.03-.36-.01-.12.02-.23.08-.3.16a.43.43 0 0 0-.1.23c-.01.08 0 .16.01.24.01.06.02.12.04.17.02.06.05.11.1.16.07.07.17.12.28.15.18.05.38.05.56-.01.31-.1.58-.28.74-.49.06-.08.1-.16.13-.25.01-.03.02-.07.02-.1.01-.02 0-.06-.02-.09" /><path fill="#050507" d="M14.26 12.27c.03.07.03.16.01.25-.03.1-.08.21-.15.29-.19.28-.47.49-.79.6-.19.07-.4.07-.6.01a.71.71 0 0 1-.3-.18c-.1-.11-.13-.26-.15-.41-.01-.19.01-.4.1-.57a.736.736 0 0 1 .48-.43c.12-.02.26-.01.38.01s.24.05.36.07c.12.02.26.04.38.1.06.02.12.06.16.1.07.04.1.09.12.16" /><path fill="#838385" d="M12.94 11.77c-.03 0-.06.01-.09.01-.19.03-.37.16-.47.32-.07.12-.1.26-.09.4 0-.1.03-.19.08-.28.08-.14.22-.25.38-.28.1-.02.2-.01.3.01.1.01.19.02.29.05.15.03.29.08.41.17.03.02.06.04.08.07.02.03.04.06.05.09.01.05 0 .1-.03.15a1.06 1.06 0 0 1-.19.2c.14-.03.29-.07.4-.15a.3.3 0 0 0 .12-.13c.03-.05.04-.12.03-.18a.238.238 0 0 0-.06-.11c-.03-.03-.06-.06-.09-.08-.15-.1-.32-.17-.5-.19-.12-.02-.23-.04-.35-.05-.09-.01-.18-.02-.27-.02" /><path fill="#050507" d="m6.63 6.67-.46.58-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.04.16.11.31.18.45.31.61.79 1.14 1.34 1.55.25.18.53.34.81.47.15.07.32.13.49.14.08 0 .17-.01.25-.05.08-.03.15-.09.19-.16.06-.09.08-.2.06-.3-.01-.1-.05-.2-.11-.29-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07-.11-.11-.23-.22-.31-.35-.08-.13-.12-.28-.15-.43-.08-.41-.06-.84.08-1.23.05-.15.13-.3.2-.45.12-.25.23-.51.39-.75.2-.29.46-.54.62-.85.14-.26.19-.56.24-.85.05-.22.09-.44.13-.67" /><path fill="#838385" d="M5.06 10.24c-.14.39-.16.82-.08 1.23.03.15.07.3.15.43.08.13.19.24.31.35.01.01.04.03.05.04h-.02a.523.523 0 0 1-.23-.1.58.58 0 0 1-.16-.19c-.06-.09-.1-.18-.16-.26a.548.548 0 0 0-.29-.21c.09-.04.16-.1.21-.18a.6.6 0 0 0 .07-.32c-.01-.11-.02-.22-.01-.33.01-.21.1-.41.18-.61.1-.27.19-.55.34-.79.1-.15.21-.29.33-.41a.12.12 0 0 1 .07-.07c.02-.01.04-.03.07-.03-.07.09-.15.18-.21.28-.16.23-.27.49-.39.74-.11.13-.18.28-.23.43" /><path fill="#050507" d="M4.46 11.86c.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.13.19.25.4.3.63.07.3.03.62-.12.88a1.146 1.146 0 0 1-1.07.59c-.34-.03-.64-.21-.95-.34-.63-.28-1.33-.39-1.98-.61-.2-.07-.4-.15-.6-.21-.09-.03-.18-.05-.27-.1a.478.478 0 0 1-.21-.19.378.378 0 0 1-.04-.21c.01-.07.02-.14.05-.21.05-.14.14-.26.2-.39.1-.22.12-.46.12-.7 0-.24-.03-.48-.04-.71 0-.11 0-.21.02-.32.02-.1.07-.2.15-.28.07-.07.17-.1.27-.12.1-.02.2-.01.29-.01.1.01.2.01.29.01.1 0 .2-.02.28-.07.08-.04.15-.11.21-.18.06-.07.1-.15.15-.23.05-.08.1-.16.16-.23s.16-.13.25-.16" /><path fill="#F4C021" d="M4.5 12.18c.08-.03.17-.04.26-.02.08.02.16.06.23.11.14.11.23.26.32.4.22.36.44.72.64 1.09.15.28.3.56.49.81.13.17.27.32.4.49.13.17.24.35.3.55.07.26.04.55-.08.79-.09.17-.23.32-.4.42-.17.1-.36.15-.56.14-.31-.01-.59-.17-.89-.27-.56-.2-1.17-.23-1.74-.39-.21-.06-.41-.13-.61-.18-.09-.02-.18-.04-.27-.08a.433.433 0 0 1-.22-.18.351.351 0 0 1-.05-.2c0-.07.02-.14.04-.2.05-.13.13-.25.18-.38.08-.2.09-.42.07-.63-.01-.21-.05-.42-.06-.63a.878.878 0 0 1 .01-.28c.02-.09.06-.18.13-.25s.17-.11.28-.13c.1-.02.21-.01.31 0s.21.02.31.01.21-.03.29-.09a.52.52 0 0 0 .18-.21c.04-.08.08-.17.11-.26s.07-.17.12-.25a.41.41 0 0 1 .21-.18" /><defs><radialGradient id="linux_colored_a" cx="0" cy="0" r="1" gradientTransform="matrix(.65895 -.02773 .04242 1.00798 7.632 4.069)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient><radialGradient id="linux_colored_b" cx="0" cy="0" r="1" gradientTransform="translate(9.662 4.1)scale(.95439)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient></defs></symbol>'});Me().add(ec);const tc=ec;var nc=new(_e())({id:"linux_manjaro",use:"linux_manjaro-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="linux_manjaro"><path d="M9.049 0H0v14h4.084V4.097h4.965zM14 0H9.903v14H14z" /><path d="M9.049 4.951H4.95V14H9.05z" /></symbol>'});Me().add(nc);const rc=nc;var oc=new(_e())({id:"macOSX",use:"macOSX-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="macOSX"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7m3.55 11.48h-.85L9 9.61l-2.7 3.87h-.85L8.57 9 5.45 4.52h.85L9 8.39l2.7-3.87h.85L9.43 9z" /></symbol>'});Me().add(oc);const ac=oc;var ic=new(_e())({id:"oracle",use:"oracle-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle"><path d="M12 14H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h6c2.76 0 5 2.24 5 5s-2.24 5-5 5M6 6C4.35 6 3 7.35 3 9s1.35 3 3 3h6c1.65 0 3-1.35 3-3s-1.35-3-3-3z" /></symbol>'});Me().add(ic);const lc=ic;var cc=new(_e())({id:"oracle_colored",use:"oracle_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle_colored"><path fill="#ED1C24" d="M12 4H6C3.24 4 1 6.24 1 9s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5" /></symbol>'});Me().add(cc);const sc=cc;var uc=new(_e())({id:"os_press",use:"os_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os_press"><path d="M6.75 7.5c-.14 0-.25.11-.25.25v2.5c0 .14.11.25.25.25s.25-.11.25-.25v-2.5c0-.14-.11-.25-.25-.25M11.77 2H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2M8.5 10.25c0 .97-.78 1.75-1.75 1.75S5 11.22 5 10.25v-2.5C5 6.78 5.78 6 6.75 6s1.75.78 1.75 1.75zM13 8.1h-1.5v-.35c0-.14-.11-.25-.25-.25s-.25.11-.25.25v.03c0 .08.04.16.11.21l1.15.8c.47.33.75.86.75 1.43v.03c0 .96-.79 1.75-1.75 1.75s-1.76-.79-1.76-1.75V9.9H11v.35c0 .14.11.25.25.25s.25-.11.25-.25v-.03a.26.26 0 0 0-.11-.21l-1.15-.8c-.47-.33-.75-.86-.75-1.43v-.03c0-.96.79-1.75 1.75-1.75S13 6.79 13 7.75z" /></symbol>'});Me().add(uc);const dc=uc;var hc=new(_e())({id:"raspbian",use:"raspbian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="raspbian"><path d="M13.96 8.09c.32-1.85-1.36-2.49-1.36-2.49 1.36-.32 2.4-2.57 2-3.86 0 0 .16-.24-1.76-.64S9 1.58 9 2.86C9 1.58 7.08.7 5.16 1.1c-1.92.4-1.76.64-1.76.64-.4 1.29.64 3.53 2 3.86 0 0-1.68.64-1.36 2.49 0 0-2.24 1.45-.64 3.86 0 0 .08.8.4 1.2 0 0 .24 1.69 1.68 2.01 0 0 .48.8 1.44.88 0 0 .72.96 2.08.96s2.08-.96 2.08-.96c.96-.08 1.44-.88 1.44-.88 1.44-.32 1.68-2.01 1.68-2.01.32-.4.4-1.2.4-1.2 1.6-2.42-.64-3.86-.64-3.86m-1.1-1.77c.59.53.84 1.25.66 1.77-.45-.17-.94-.47-1.41-.89a4.49 4.49 0 0 1-1.06-1.33c.49-.24 1.23-.07 1.81.45M9.72 2.3c.64-.64 1.44-.8 2.16-.72.72.08 1.92.48 2.4.4-.24.4-.4.88-.4 1.37 0 .49-.8 1.69-1.76 1.93-.84.21-1.67-.01-2.03-.71 0-.01.01-.01.01-.02.1-.12.21-.23.32-.34.23-.22.48-.43.74-.62.52-.39 1.09-.72 1.69-1l-.03-.07c-.63.21-1.24.49-1.82.83-.29.17-.57.35-.84.56-.11.09-.21.17-.32.27-.48-.34-.71-1.28-.12-1.88m.93 4.14c-.13.57-.82 1-1.65 1s-1.52-.43-1.65-1c.13-.57.82-1 1.65-1s1.52.43 1.65 1m.03 6.22c0 .93-.75 1.69-1.68 1.69-.93 0-1.68-.76-1.68-1.69 0-.93.75-1.69 1.68-1.69.93 0 1.68.76 1.68 1.69M4.12 3.35c0-.48-.16-.96-.4-1.37.48.08 1.68-.32 2.4-.4.72-.08 1.52.08 2.16.72.59.6.36 1.54-.12 1.86-.1-.09-.21-.18-.32-.27-.27-.21-.55-.39-.84-.56-.58-.33-1.2-.61-1.83-.82l-.03.07c.6.28 1.16.61 1.69 1 .26.19.51.4.74.62.12.11.22.23.32.34 0 .01.01.01.01.02-.36.7-1.2.92-2.03.71-.95-.24-1.75-1.44-1.75-1.92m1.02 2.97c.59-.52 1.33-.69 1.81-.45-.22.43-.58.9-1.06 1.33-.47.41-.96.72-1.41.89-.19-.52.06-1.24.66-1.77m-1.12 5.36h-.05c-.44-.04-.73-.78-.64-1.64.09-.86.51-1.52.95-1.48.06.01.12.03.18.06.19.33.28.88.22 1.5-.07.73-.34 1.34-.66 1.56m2.44 3.15c-.57.11-1.43-.47-1.92-1.29-.49-.83-.43-1.58.13-1.7.57-.11 1.43.47 1.92 1.29.49.83.43 1.59-.13 1.7m.08-3.59c-.91-.04-1.48-.9-1.26-1.92.22-1.02 1.13-1.81 2.04-1.76.91.04 1.48.9 1.26 1.92-.22 1.01-1.13 1.8-2.04 1.76M9 16.52c-.83 0-1.53-.5-1.76-1.19.45-.31 1.07-.5 1.76-.5s1.31.19 1.76.5c-.23.69-.93 1.19-1.76 1.19m.42-7.05c-.22-1.01.35-1.87 1.26-1.91.91-.04 1.83.75 2.04 1.76.22 1.02-.35 1.88-1.26 1.92-.91.04-1.82-.75-2.04-1.77m4.04 4.07c-.49.83-1.35 1.4-1.92 1.29-.57-.11-.63-.87-.13-1.7.49-.83 1.35-1.4 1.92-1.29.57.11.63.87.13 1.7m.57-1.86h-.05c-.32-.23-.59-.83-.66-1.56-.06-.61.03-1.17.22-1.5.06-.03.12-.05.18-.06.44-.04.87.62.95 1.48.09.87-.2 1.6-.64 1.64" /></symbol>'});Me().add(hc);const vc=hc;var mc=new(_e())({id:"red_hat",use:"red_hat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="red_hat"><path d="m14.41 8.96-.19-.8a1.153 1.153 0 0 1 0 .01l-.63-2.72c-.14-.6-.27-.87-1.32-1.4-.81-.42-2.59-1.11-3.12-1.11-.49 0-.63.63-1.21.63-.56 0-.98-.47-1.5-.47-.5 0-.83.34-1.09 1.05 0 0-.71 1.99-.8 2.28v.01l-.31.76C2.83 7.28 1 7.53 1 9.14c0 2.65 6.27 5.91 11.23 5.91 3.81 0 4.77-1.72 4.77-3.08 0-1.07-.92-2.28-2.59-3.01M4.54 6.54v.08-.02a.064.064 0 0 1 0-.06m6.95 5.11c-3.93 0-7.37-2.3-7.37-3.82v-.04c.13-.31.3-.71.45-1.03v-.02c0 .01.01.02.01.03l.03.06c0 .01.01.02.01.03.01.02.02.04.04.07.01.01.01.02.02.03.01.02.03.05.05.07.01.01.02.03.03.04.02.02.03.05.05.07.01.01.02.03.03.04.02.02.03.04.05.06.02.02.04.04.05.06.02.02.03.04.05.05.02.02.04.05.07.07l.05.05.07.07.06.06c.02.02.05.04.08.07.02.02.05.04.07.06.02.02.04.04.06.05.03.03.07.05.1.08.02.02.04.04.07.05l.11.08c.02.02.05.03.07.05.04.03.08.06.12.08.02.02.05.03.07.05.04.03.08.05.12.08.03.02.06.04.08.05.04.02.08.05.11.07.03.02.06.04.1.06.04.02.08.05.12.07.03.02.06.04.1.06.04.03.09.05.13.08.03.01.05.03.08.04.05.03.11.06.16.08.02.01.05.02.07.04l.18.09c.02.01.05.02.07.03.06.03.13.06.19.09.02.01.05.02.07.03.07.03.13.06.2.09.02.01.05.02.07.03.07.03.14.06.22.08.02.01.04.02.06.02.08.03.15.06.23.08.02.01.04.01.05.02.08.03.16.05.24.08.01 0 .03.01.04.01.08.03.17.05.25.07.01 0 .02.01.04.01.09.02.18.05.27.07.02 0 .03.01.05.01l.27.06c.02 0 .03.01.05.01.09.02.18.04.28.05.02 0 .04.01.05.01.09.02.19.03.28.04.02 0 .03 0 .05.01.1.01.19.03.29.04h.05l.3.03h.04c.11.01.21.01.32.02h.02c.11 0 .23.01.34.01.98 0 2.37-.19 2.55-1.23.1.44.22.94.3 1.41-.15 1.03-1.4 1.58-2.99 1.58" /></symbol>'});Me().add(mc);const gc=mc;var fc=new(_e())({id:"suse_linux",use:"suse_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="suse_linux"><path d="M16.83 8.24c.01 0 .02-.01.03-.01.13-.04.77-.2.68-.45l-.47-1.26s-.16-.55-.87-.79-2.52-.79-3.07-.79v.63s-1.89-.79-4.88-.79-5.59 1.5-6.85 3.07c-1.26 1.57-1.01 3-.7 3.63.31.63 1.1 1.73 2.6 1.73s2.28-1.02 2.28-1.65c0-.7-.23-1.51-.84-1.92-.65-.42-1.58-.46-2.15.11-.68.68-.3 2.01.76 1.98.28-.01.73-.14.73-.48 0-.31-.16-.39-.39-.31-.24.08-.31.08-.47 0-.25-.13-.3-.5-.1-.69.26-.24.69-.2.96-.01.42.28.74.66.57 1.18-.16.49-.53.88-1.08.89-.56.01-1.17-.08-1.52-.57-.43-.61-.69-1.46-.26-2.13.55-.87 1.26-1.02 2.05-.94.79.08 2.2.87 2.44 1.57.24.71.31.87.31 1.1l1.1.55s-.47-1.26.24-1.89c.71-.63 1.65-.31 1.97-.08.32.23 1.34 1.18 1.5 1.5l1.5.71s-.47-.71-.71-1.34c-.24-.63 0-1.26.39-1.26s1.5.16 2.05.16c.55 0 2.52-.08 2.83-1.34-.02.08-.41.22-.49.25-.19.08-.39.15-.6.18-.38.07-.74.02-1.1-.11-.49-.16-.97-.39-1.43-.64l-.31-.71c.57.32 1.11.71 1.73.93.5.17 1.05.13 1.57-.01m-2.12-1.29c0-.59.48-1.06 1.06-1.06.58 0 1.06.48 1.06 1.06a1.06 1.06 0 0 1-2.12 0m1.81 0c0-.41-.33-.75-.75-.75s-.75.33-.75.75c0 .41.33.75.75.75s.75-.33.75-.75m-.93-.25c.03-.1.19-.14.36-.09.17.05.27.18.24.28-.03.1-.19.14-.36.09-.17-.05-.27-.18-.24-.28" /></symbol>'});Me().add(fc);const pc=fc;var wc=new(_e())({id:"ubuntu",use:"ubuntu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu"><path d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46m6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26m3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46M6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9m3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1m3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46" /></symbol>'});Me().add(wc);const bc=wc;var yc=new(_e())({id:"ubuntu_colored",use:"ubuntu_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu_colored"><path fill="#F26422" d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46m6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26m3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46M6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9m3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1m3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46" /></symbol>'});Me().add(yc);const xc=yc;var Oc=new(_e())({id:"notification",use:"notification-usage",viewBox:"0 0 40 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 24" id="notification"><path fill-rule="evenodd" d="M28 24c6.627 0 12-5.373 12-12S34.627 0 28 0 16 5.373 16 12s5.373 12 12 12" clip-rule="evenodd" /><path stroke="#fff" d="M23.5 12c0 6.351-5.149 11.5-11.5 11.5S.5 18.351.5 12 5.649.5 12 .5 23.5 5.649 23.5 12Z" /><path d="M14.718 15H9.459v-.897l2.606-2.841c.375-.42.642-.768.8-1.048.16-.283.241-.565.241-.848 0-.373-.105-.673-.316-.903-.208-.229-.49-.343-.844-.343-.422 0-.75.129-.983.386-.232.258-.349.61-.349 1.058H9.31c0-.476.107-.904.322-1.283.219-.383.528-.68.93-.892.404-.211.87-.317 1.396-.317.76 0 1.357.192 1.794.575.44.38.66.906.66 1.58 0 .39-.11.8-.332 1.23-.219.425-.579.91-1.08 1.455l-1.912 2.046h3.63zM26.969 10.494h.795c.4-.004.718-.108.95-.312.237-.204.355-.5.355-.886 0-.372-.099-.66-.296-.865-.193-.208-.49-.311-.891-.311-.351 0-.64.102-.865.306-.226.2-.338.463-.338.79h-1.305c0-.402.105-.767.316-1.096.215-.33.512-.586.892-.768.383-.187.811-.28 1.284-.28.78 0 1.393.197 1.837.591.447.39.671.935.671 1.633 0 .35-.113.682-.338.994-.222.308-.51.54-.865.698.43.147.755.378.977.693.226.315.339.69.339 1.128 0 .701-.242 1.26-.725 1.675-.48.416-1.112.623-1.896.623-.752 0-1.368-.2-1.848-.601-.48-.401-.72-.935-.72-1.6h1.306c0 .343.114.622.343.837.233.215.544.322.935.322.404 0 .723-.107.956-.322.233-.215.349-.526.349-.934 0-.412-.122-.73-.365-.951-.244-.222-.605-.333-1.085-.333h-.768z" /></symbol>'});Me().add(Oc);const Bc=Oc;var Cc=new(_e())({id:"padlock",use:"padlock-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="padlock"><path d="M13 7.5v-2c0-2.21-1.79-4-4-4s-4 1.79-4 4v2H3.5V11c0 3.03 2.47 5.5 5.5 5.5s5.5-2.47 5.5-5.5V7.5zm-6.5-2a2.5 2.5 0 0 1 5 0v2h-5zM13 11c0 2.21-1.79 4-4 4s-4-1.79-4-4V9h8zm-4.75 1.75c0 .41.34.75.75.75s.75-.34.75-.75v-.95A1.097 1.097 0 0 0 9 9.9a1.097 1.097 0 0 0-.75 1.9z" /></symbol>'});Me().add(Cc);const _c=Cc;var zc=new(_e())({id:"pan_tool",use:"pan_tool-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pan_tool"><path d="m9.893 3.579.42.157.202-.399a1.497 1.497 0 0 1 1.329-.837c.574 0 1.073.337 1.327.85l.202.406.424-.162c.141-.054.303-.083.48-.083a1.48 1.48 0 0 1 1.471 1.35l.05.572.561-.13a1.576 1.576 0 0 1 1.4.38c.284.296.428.653.428 1.044v8.256c0 3.6-2.851 6.517-6.343 6.517-1.69 0-3.283-.67-4.474-1.91l-.005-.006C6.155 18.36 5.5 16.724 5.5 14.983v-4.706c0-.806.65-1.461 1.477-1.461.112 0 .232.012.347.038l.61.137V4.972c0-.81.655-1.481 1.476-1.481.164 0 .327.029.483.088m1.035.418v7.415c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-6.42c0-.522-.442-.933-.956-.933-.515 0-.957.411-.957.934v9.804c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-4.5c0-.22-.09-.459-.265-.638l-.352.343.352-.343a.966.966 0 0 0-.692-.275c-.504 0-.956.382-.956.913v4.706c0 1.584.613 3.082 1.712 4.21 1.1 1.127 2.561 1.76 4.11 1.76 3.129 0 5.667-2.538 5.817-5.676h.047v-8.57a.894.894 0 0 0-.265-.619.966.966 0 0 0-.691-.274c-.495 0-.957.372-.957.872v4.706c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-6.42c0-.522-.443-.933-.957-.933s-.956.411-.956.934v6.419c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-7.43c0-.523-.442-.934-.956-.934-.508 0-.967.41-.916.949" /></symbol>'});Me().add(zc);const Mc=zc;var Ec=new(_e())({id:"pause_outline",use:"pause_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pause_outline"><path d="M6.43 3H5.07C3.93 3 3 3.93 3 5.07v7.86C3 14.07 3.93 15 5.07 15h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C8.5 3.93 7.57 3 6.43 3M7 12.93c0 .31-.26.57-.57.57H5.07a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57zM12.93 3h-1.36c-1.14 0-2.07.93-2.07 2.07v7.86c0 1.14.93 2.07 2.07 2.07h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C15 3.93 14.07 3 12.93 3m.57 9.93c0 .31-.26.57-.57.57h-1.36a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57z" /></symbol>'});Me().add(Ec);const Sc=Ec;var kc=new(_e())({id:"pause_solid",use:"pause_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pause_solid"><path d="M9.1 5H6.8c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9C11 5.8 10.2 5 9.1 5m8 0h-2.3c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9c0-1.1-.8-1.9-1.9-1.9" /></symbol>'});Me().add(kc);const jc=kc;var Hc=new(_e())({id:"pencil_outline",use:"pencil_outline-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pencil_outline"><path d="M9.76 0c-1.13 0-2.2.45-3 1.24L6 2 4.94 3.06.5 7.5 0 14l6.5-.5 6.26-6.26a4.242 4.242 0 0 0-3-7.24m1.94 6.18-5.86 5.86-2.26.17c-.21-.43-.49-.82-.84-1.15-.28-.26-.6-.48-.95-.65l.17-2.25L6 4.12 8.38 6.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44L7.06 3.06l.76-.76a2.744 2.744 0 0 1 3.88 3.88" /></symbol>'});Me().add(Hc);const Pc=Hc;var Vc=new(_e())({id:"pencil_solid",use:"pencil_solid-usage",viewBox:"0 0 19 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 19" id="pencil_solid"><path d="M17.71 4.043c.39-.39.39-1.04 0-1.41L15.37.293c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75zM0 14.253v3.75h3.75l11.06-11.07-3.75-3.75z" /></symbol>'});Me().add(Vc);const Ac=Vc;var Lc=new(_e())({id:"pie_chart_skeleton",use:"pie_chart_skeleton-usage",viewBox:"0 0 100 100",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" id="pie_chart_skeleton"><path fill-rule="evenodd" d="m68.254 96.563-1.544-8.756A41.654 41.654 0 0 1 50 91.282c-23.083 0-41.795-18.712-41.795-41.795C8.205 26.404 26.917 7.692 50 7.692c.872 0 1.739.027 2.598.08L51.23.015A50.96 50.96 0 0 0 50 0C22.386 0 0 22.386 0 50s22.386 50 50 50c6.442 0 12.6-1.219 18.254-3.437m31.092-54.669a50.02 50.02 0 0 0-.224-1.27z" clip-rule="evenodd" /><path fill-rule="evenodd" d="m95.04 28.262 1.687 4.637-7.31 2.66a41.73 41.73 0 0 1 2.377 13.928c0 23.083-18.712 41.795-41.794 41.795-.225 0-.45-.002-.674-.005l3.153 8.662C78.941 98.648 100 76.784 100 50a49.8 49.8 0 0 0-4.96-21.738" clip-rule="evenodd" /><path fill-rule="evenodd" d="M99.514 57c.32-2.287.486-4.624.486-7 0-27.614-22.385-50-50-50h-.256v7.693H50c23.083 0 41.795 18.711 41.795 41.794 0 2.565-.23 5.076-.673 7.513z" clip-rule="evenodd" /></symbol>'});Me().add(Lc);const Dc=Lc;var Fc=new(_e())({id:"pin_element",use:"pin_element-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pin_element"><path d="M3.75 0h6.5A3.75 3.75 0 0 1 14 3.75C14 4.44 13.44 5 12.75 5h-.25V3.75a2.25 2.25 0 0 0-2.25-2.25h-6.5A2.25 2.25 0 0 0 1.5 3.75v6.5a2.25 2.25 0 0 0 2.25 2.25H5v.25C5 13.44 4.44 14 3.75 14A3.75 3.75 0 0 1 0 10.25v-6.5A3.75 3.75 0 0 1 3.75 0" /><path d="M12.5 7.25a.75.75 0 0 1 1.5 0V14H7.25a.75.75 0 0 1 0-1.5h4.19L6.47 7.53l1.06-1.06 4.97 4.969z" /></symbol>'});Me().add(Fc);const Ic=Fc;var Tc=new(_e())({id:"play_outline",use:"play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="play_outline"><path d="M13.73 7.24 5.94 3.05c-.2-.11-.42-.16-.62-.16C4.63 2.89 4 3.44 4 4.2v9.6c0 .77.63 1.32 1.32 1.32.21 0 .42-.05.62-.16l7.79-4.19c1.4-.76 1.4-2.78 0-3.53m-.71 2.2L5.5 13.49V4.51l7.52 4.05c.23.12.26.33.26.44 0 .11-.03.32-.26.44" /></symbol>'});Me().add(Tc);const Rc=Tc;var Nc=new(_e())({id:"play_solid",use:"play_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="play_solid"><path d="M21.728 10.702 5.619 1.5a1.738 1.738 0 0 0-.868-.234c-.917 0-1.759.734-1.759 1.759v17.95a1.76 1.76 0 0 0 1.759 1.759c.29 0 .587-.073.868-.234l16.109-9.201a1.496 1.496 0 0 0 0-2.597" /></symbol>'});Me().add(Nc);const Uc=Nc;var Gc=new(_e())({id:"plus",use:"plus-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus"><path fill-rule="evenodd" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z" clip-rule="evenodd" /></symbol>'});Me().add(Gc);const Wc=Gc;var qc=new(_e())({id:"plus_mini_s",use:"plus_mini_s-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus_mini_s"><path fill-rule="evenodd" d="M15.889 7H8.11C7.5 7 7 7.5 7 8.111v7.778C7 16.5 7.5 17 8.111 17h7.778C16.5 17 17 16.5 17 15.889V8.11C17 7.5 16.5 7 15.889 7M15 12.6h-2.4V15h-1.2v-2.4H9v-1.2h2.4V9h1.2v2.4H15z" clip-rule="evenodd" /></symbol>'});Me().add(qc);const Kc=qc;var Jc=new(_e())({id:"pod",use:"pod-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="pod"><path d="M7 15h3v-3H7zm4-11-7 6v8h7l7-6V4zm5.5 7.31-6.055 5.19H5.5v-5.81l6.055-5.19H16.5zM15 7h-3v3h3z" /></symbol>'});Me().add(Jc);const Qc=Jc;var $c=new(_e())({id:"pricing",use:"pricing-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="pricing"><path d="M9.75 5.751 7.556 7.947l-.862-.862a.67.67 0 0 0-.942 0 .67.67 0 0 0 0 .942L7.555 9.83l3.138-3.138a.67.67 0 0 0 0-.942.67.67 0 0 0-.942 0M8 1.778c-2.596.026-4.64.649-6.222 1.778V7.11C1.75 9.618 4.426 12.97 8 14.222c3.573-1.253 6.249-4.604 6.222-7.11V3.555C12.64 2.426 10.595 1.805 8 1.778M8 12.79c-2.845-1.182-4.907-3.893-4.89-5.68V4.285C4.419 3.529 6.054 3.138 8 3.11c1.946.018 3.582.418 4.889 1.165V7.12c.017 1.778-2.045 4.489-4.89 5.671" /></symbol>'});Me().add($c);const Yc=$c;var Zc=new(_e())({id:"print",use:"print-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="print"><path d="M18 8.2v6.4l-1 1v2.3c0 .1-.1.2-.2.2H3.2c-.1-.1-.2-.2-.2-.3V16h10c1.1 0 2-.9 2-2H2v-3c0-.6.5-1 1-1h13V0H4v8H3c-1.7 0-3 1.4-3 3v4.4l1 1v1.4C1 19 2 20 3.2 20h13.7c1.2 0 2.2-1 2.2-2.2v-1.4l1-1V11c-.1-1.3-.9-2.4-2.1-2.8M6 2h8v6H6z" /></symbol>'});Me().add(Zc);const Xc=Zc;var es=new(_e())({id:"privacy",use:"privacy-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="privacy"><path d="M11.556 6.667V4.889A3.555 3.555 0 0 0 8 1.333 3.555 3.555 0 0 0 4.445 4.89v1.778H3.11v3.11a4.897 4.897 0 0 0 4.89 4.89 4.897 4.897 0 0 0 4.888-4.89v-3.11zM5.778 4.889a2.223 2.223 0 0 1 4.444 0v1.778H5.778zm5.778 4.889A3.555 3.555 0 0 1 8 13.333a3.555 3.555 0 0 1-3.555-3.555V8h7.11zm-4.222 1.555c0 .365.302.667.666.667a.671.671 0 0 0 .667-.667v-.844A.975.975 0 0 0 8 8.8a.975.975 0 0 0-.666 1.689z" /></symbol>'});Me().add(es);const ts=es;var ns=new(_e())({id:"push_notifications",use:"push_notifications-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="push_notifications"><path d="M20.09 6.67 20 6.58V5c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48C12.35.19 11.73 0 11.07 0H3.93A3.93 3.93 0 0 0 0 3.93v14.14A3.93 3.93 0 0 0 3.93 22h7.14A3.93 3.93 0 0 0 15 18.07V13h-2.69C10.06 13 8.08 11.28 8 9.03c-.04-1.05.32-2.05 1-2.84V5c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22M9.5 18c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H14c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C16.32 1.69 18 3.15 18 5v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13" /></symbol>'});Me().add(ns);const rs=ns;var os=new(_e())({id:"qr_code",use:"qr_code-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="qr_code"><path d="M11.323 16.226c0-.428.346-.774.774-.774a3.355 3.355 0 0 0 3.355-3.355v-1.032a.774.774 0 0 1 1.548 0v1.032A4.903 4.903 0 0 1 12.097 17a.774.774 0 0 1-.774-.774M6.677 16.226a.774.774 0 0 1-.774.774A4.903 4.903 0 0 1 1 12.097v-1.032a.774.774 0 0 1 1.548 0v1.032a3.355 3.355 0 0 0 3.355 3.355c.428 0 .774.346.774.774M6.677 1.774a.774.774 0 0 1-.774.774 3.355 3.355 0 0 0-3.355 3.355v1.032a.774.774 0 0 1-1.548 0V5.903A4.903 4.903 0 0 1 5.903 1c.428 0 .774.347.774.774M11.323 1.774c0-.427.346-.774.774-.774A4.903 4.903 0 0 1 17 5.903v1.032a.774.774 0 1 1-1.548 0V5.903a3.355 3.355 0 0 0-3.355-3.355.774.774 0 0 1-.774-.774M3.684 8.071a.774.774 0 0 0 0 1.548h10.323a.774.774 0 0 0 0-1.548z" /></symbol>'});Me().add(os);const as=os;var is=new(_e())({id:"question",use:"question-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="question"><path d="M10 12.6c-.77 0-1.4.63-1.4 1.4 0 .77.63 1.4 1.4 1.4.77 0 1.4-.63 1.4-1.4 0-.77-.63-1.4-1.4-1.4M10 0C4.49 0 0 4.49 0 10s4.49 10 10 10 10-4.49 10-10S15.51 0 10 0m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m.06-13h-.11C8.32 5 7 6.32 7 7.94V8l2-.06c0-.52.42-.94.94-.94h.11c.52 0 .94.42.94.94 0 .25-.15.49-.38.6l-.12.05a2.87 2.87 0 0 0-1.65 2.59v.61h2v-.61c0-.33.19-.64.49-.78l.12-.05c.93-.44 1.53-1.38 1.53-2.41C13 6.32 11.68 5 10.06 5" /></symbol>'});Me().add(is);const ls=is;var cs=new(_e())({id:"questionFilled",use:"questionFilled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="questionFilled"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2m0 15.4c-.77 0-1.4-.63-1.4-1.4 0-.77.63-1.4 1.4-1.4.77 0 1.4.63 1.4 1.4 0 .77-.63 1.4-1.4 1.4m1.55-5.06c-.48.22-.55.47-.55.76v.65h-2v-.96c0-.87.48-1.65 1.26-2.04l.4-.2c.21-.11.34-.32.34-.55 0-.55-.45-1-1-1s-1 .45-1 1H9c0-1.65 1.35-3 3-3s3 1.35 3 3c0 1-.55 1.9-1.45 2.34" /></symbol>'});Me().add(cs);const ss=cs;var us=new(_e())({id:"ram",use:"ram-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ram"><path d="m7.5 8.5 2 2 1-1-2-2zM5 11l2 2 1-1-2-2zm5-5 2 2 1-1-2-2zm7 1-6-6L1 11l6 6 1-1 1 1 8-8-1-1zm-2.12 2L9 14.88l-1-1-1 1L3.12 11 11 3.12 14.88 7l-1 1z" /></symbol>'});Me().add(us);const ds=us;var hs=new(_e())({id:"rearrange",use:"rearrange-usage",viewBox:"0 0 8 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 14" id="rearrange"><path d="M1.5 3.5C2.3 3.5 3 2.8 3 2S2.3.5 1.5.5 0 1.2 0 2s.7 1.5 1.5 1.5m0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S3 12.8 3 12s-.7-1.5-1.5-1.5m0-5C.7 5.5 0 6.2 0 7s.7 1.5 1.5 1.5S3 7.8 3 7s-.7-1.5-1.5-1.5M6.5 3.5C7.3 3.5 8 2.8 8 2S7.3.5 6.5.5 5 1.2 5 2s.7 1.5 1.5 1.5m0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S8 12.8 8 12s-.7-1.5-1.5-1.5m0-5C5.7 5.5 5 6.2 5 7s.7 1.5 1.5 1.5S8 7.8 8 7s-.7-1.5-1.5-1.5" /></symbol>'});Me().add(hs);const vs=hs;var ms=new(_e())({id:"reduce_size",use:"reduce_size-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="reduce_size"><path d="M2 6.75A.75.75 0 0 1 2.75 6h2.189L1.97 3.03l1.06-1.061L6 4.939v-2.19a.75.75 0 0 1 1.5 0v3.69l.03.03-.03.03v1h-1l-.031.03-.03-.03H2.75A.75.75 0 0 1 2 6.75M11.31 2a.75.75 0 0 1 .75.75v2.189l2.97-2.97 1.061 1.06L13.121 6h2.189a.75.75 0 0 1 0 1.5h-3.69l-.03.03-.03-.03h-1v-1l-.03-.03.03-.03v-3.69a.75.75 0 0 1 .75-.75M2 11.31c0 .414.336.75.75.75h2.189L1.97 15.03l1.06 1.06L6 13.12v2.19a.75.75 0 0 0 1.5 0v-3.69l.03-.03-.03-.03v-1h-1l-.031-.03-.03.03H2.75a.75.75 0 0 0-.75.75M11.31 16.06a.75.75 0 0 0 .75-.75v-2.19l2.97 2.97 1.061-1.06-2.97-2.97h2.189a.75.75 0 0 0 0-1.5h-3.69l-.03-.03-.03.03h-1v1l-.03.03.03.03v3.69c0 .414.336.75.75.75" /></symbol>'});Me().add(ms);const gs=ms;var fs=new(_e())({id:"refresh",use:"refresh-usage",viewBox:"0 0 18 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 19" id="refresh"><path d="M9 14.524c-1.867 0-3.487-1.023-4.365-2.531h2.948a.85.85 0 0 0 .843-.844.85.85 0 0 0-.844-.843H2.25v5.343a.85.85 0 0 0 .844.844.85.85 0 0 0 .844-.844v-1.755C5.175 15.312 6.975 16.212 9 16.212a6.741 6.741 0 0 0 6.716-6.188h-1.721c-.27 2.52-2.396 4.5-4.995 4.5m5.906-12.093a.85.85 0 0 0-.844.843V5.03C12.826 3.612 11.026 2.712 9 2.712a6.741 6.741 0 0 0-6.716 6.187h1.721C4.275 6.38 6.401 4.4 9 4.4c1.867 0 3.488 1.024 4.365 2.532h-2.959a.85.85 0 0 0-.844.843.85.85 0 0 0 .844.844h5.344V3.274a.85.85 0 0 0-.844-.843" /></symbol>'});Me().add(fs);const ps=fs;var ws=new(_e())({id:"reload",use:"reload-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="reload"><path fill-rule="evenodd" d="M12.77 20.047c3.228-.362 5.814-2.942 6.183-6.17.483-4.221-2.798-7.814-6.91-7.86V4.124c0-.106-.131-.161-.22-.096L7.924 6.891a.12.12 0 0 0 0 .194l3.899 2.863c.088.066.22.007.22-.095v-1.89c2.89.046 5.204 2.505 5.006 5.444-.167 2.527-2.228 4.579-4.756 4.74a5.105 5.105 0 0 1-5.365-4.274.971.971 0 0 0-.96-.812.963.963 0 0 0-.956 1.105 7.048 7.048 0 0 0 7.758 5.88" clip-rule="evenodd" /></symbol>'});Me().add(ws);const bs=ws;var ys=new(_e())({id:"remove_node",use:"remove_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="remove_node"><path d="M3.5 6.55c0-1.68 1.37-3.05 3.05-3.05H8V2H6.55C4.04 2 2 4.04 2 6.55V8h1.5zm7.71-5.27c-.4-.12-.81.12-.93.52l-.06.21-.22.77-1.21 4.24C7.78 7.13 7 7.97 7 9c0 .64.31 1.2.77 1.56L6.65 14.5h-.1c-1.68 0-3.05-1.37-3.05-3.05V10H2v1.45c0 2.41 1.89 4.37 4.27 4.52a.742.742 0 0 0 .74.78c.33 0 .63-.21.72-.54l4-14c.1-.4-.13-.82-.52-.93m2.6 1.39-.44 1.53c.68.56 1.13 1.4 1.13 2.35V8H16V6.55c0-1.65-.88-3.08-2.19-3.88m.69 8.78c0 1.68-1.37 3.05-3.05 3.05h-1.03L9.99 16h1.45c2.51 0 4.55-2.04 4.55-4.55V10h-1.5v1.45z" /></symbol>'});Me().add(ys);const xs=ys;var Os=new(_e())({id:"resize_handler",use:"resize_handler-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="resize_handler"><path d="M4 11c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m8-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1m-4 6c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1m0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1" /></symbol>'});Me().add(Os);const Bs=Os;var Cs=new(_e())({id:"rocket",use:"rocket-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rocket"><path d="m15.788 11.25-2.862-1.717c-.038.94-.172 1.807-.326 2.53H16v-.438a.437.437 0 0 0-.212-.375M12.26 13.375h3.303a.438.438 0 0 0 .437-.437V12.5h-3.5a15.72 15.72 0 0 1-.24.875M5.074 9.533 2.212 11.25a.436.436 0 0 0-.212.375v.438h3.4a15.12 15.12 0 0 1-.326-2.53M2 12.5v.438c0 .241.196.437.438.437H5.74a15.496 15.496 0 0 1-.24-.875zM9 16c.45 0 .927-.512 1.058-1.312H7.942C8.073 15.488 8.55 16 9 16M9.243 2.074a.437.437 0 0 0-.486 0C7.183 3.124 5.5 5.494 5.5 9c0 .962.113 1.861.258 2.625h6.484A14.14 14.14 0 0 0 12.5 9c0-3.506-1.683-5.877-3.257-6.926M9 8.563a1.313 1.313 0 1 1 0-2.626 1.313 1.313 0 0 1 0 2.625" /><path d="M9 8.125a.875.875 0 1 0 0-1.75.875.875 0 0 0 0 1.75M6.406 13.975a.438.438 0 0 0 .407.275h4.375c.178 0 .34-.109.406-.275.02-.053.312-.792.558-1.912H5.848c.246 1.12.537 1.86.558 1.912" /></symbol>'});Me().add(Cs);const _s=Cs;var zs=new(_e())({id:"room",use:"room-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="room"><path fill-rule="evenodd" d="M9 6a1 1 0 0 0-1 1v1H7a1 1 0 1 0 0 2h1v4H7a1 1 0 1 0 0 2h1v1a1 1 0 1 0 2 0v-1h4v1a1 1 0 1 0 2 0v-1h1a1 1 0 1 0 0-2h-1v-4h1a1 1 0 1 0 0-2h-1V7a1 1 0 1 0-2 0v1h-4V7a1 1 0 0 0-1-1m5 8v-4h-4v4z" clip-rule="evenodd" /></symbol>'});Me().add(zs);const Ms=zs;var Es=new(_e())({id:"room_home",use:"room_home-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="room_home"><path d="M11.93 0H2.07C.93 0 0 .93 0 2.07v5.85c0 1.14.93 2.07 2.07 2.07H6.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.14 0 2.07-.93 2.07-2.07V2.07C14 .93 13.07 0 11.93 0m0 9H2.07c-.57 0-1.02-.44-1.06-1h11.97c-.03.56-.49 1-1.05 1M13 7H1V2.07C1 1.48 1.48 1 2.07 1h9.85c.59 0 1.07.48 1.07 1.07V7z" /></symbol>'});Me().add(Es);const Ss=Es;var ks=new(_e())({id:"room_new",use:"room_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="room_new"><path d="M2.567 10h6.866A2.57 2.57 0 0 0 12 7.433V2.567A2.57 2.57 0 0 0 9.433 0H2.567A2.57 2.57 0 0 0 0 2.567v4.866A2.57 2.57 0 0 0 2.567 10M2 2.567C2 2.255 2.254 2 2.567 2h6.866c.312 0 .567.254.567.567v4.866A.568.568 0 0 1 9.433 8H2.567A.568.568 0 0 1 2 7.433zM15.14 0h-1.933c.398.583.644 1.267.736 2h1.197A2.863 2.863 0 0 1 18 4.86v10.28A2.863 2.863 0 0 1 15.14 18H4.86A2.863 2.863 0 0 1 2 15.14v-3.197a4.541 4.541 0 0 1-2-.736v3.933C0 17.82 2.18 20 4.86 20h10.28c2.68 0 4.86-2.18 4.86-4.86V4.86C20 2.18 17.82 0 15.14 0" /></symbol>'});Me().add(ks);const js=ks;var Hs=new(_e())({id:"room_overview",use:"room_overview-usage",viewBox:"0 0 24 25",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" id="room_overview"><path d="m16 8.5 2.667-2.666L21.334 8.5v.16l-2 1.507v-.84l-.667-.667L16 11.327l-5.333-5.333L8 8.66 6.667 7.327l-2 2v1.013l-2 2V8.5l4-4L8 5.834l2.667-2.667z" /><path fill-rule="evenodd" d="m8 12.5 2.667-2.666L16 15.167l5.334-4v6.107c0 2.52-2.04 4.56-4.56 4.56H7.227c-2.52 0-4.56-2.04-4.56-4.56v-2.107l4-4zm11.334 4.774v-2.107l-3.52 2.64-5.147-5.147L8 15.327l-1.333-1.333-2 2v1.28a2.56 2.56 0 0 0 2.56 2.56h9.547a2.56 2.56 0 0 0 2.56-2.56" clip-rule="evenodd" /></symbol>'});Me().add(Hs);const Ps=Hs;var Vs=new(_e())({id:"sad",use:"sad-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="sad"><path fill-rule="evenodd" d="M17.93 20.666A10.453 10.453 0 0 1 12 22.5C6.201 22.5 1.5 17.799 1.5 12S6.201 1.5 12 1.5 22.5 6.201 22.5 12c0 1.483-.308 2.922-.895 4.248l1.34 2.476a1.5 1.5 0 0 1 .165.934 1.506 1.506 0 0 1-1.56 1.278l-.144-.014-3.174-.47zM8.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m7.514 5.833c-2.81-1.775-5.406-1.775-7.889-.015a.5.5 0 1 1-.578-.816c2.822-2 5.856-2 9-.015a.5.5 0 1 1-.533.845M15.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m-13 1a9.5 9.5 0 1 1 19 0 9.461 9.461 0 0 1-.905 4.053l-.108.229 1.578 2.918a.5.5 0 0 1-.454.738l-.087-.009-3.563-.529-.168.13A9.455 9.455 0 0 1 12 21.5 9.5 9.5 0 0 1 2.5 12" clip-rule="evenodd" /></symbol>'});Me().add(Vs);const As=Vs;var Ls=new(_e())({id:"save",use:"save-usage",viewBox:"0 0 12 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" id="save"><path d="M10 0H2v.01C.89.04 0 .94 0 2.06v7.9c0 1.13.92 2.05 2.05 2.05h7.9c1.13 0 2.05-.92 2.05-2.05V2zM3.5 1.5h5v3h-5zm4 9h-3v-2h3zm3-.55c0 .3-.25.55-.55.55H9V7H3v3.5h-.95c-.3 0-.55-.25-.55-.55v-7.9c0-.29.22-.51.5-.54V6h8V2.12l.5.5z" /></symbol>'});Me().add(Ls);const Ds=Ls;var Fs=new(_e())({id:"save2",use:"save2-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="save2"><path d="m7 11.061 4.03-4.03A.75.75 0 1 0 9.969 5.97l-2.22 2.22V0h-1.5v8.189L4.03 5.97a.75.75 0 1 0-1.061 1.061zM0 12.5V14h14v-1.5z" /></symbol>'});Me().add(Fs);const Is=Fs;var Ts=new(_e())({id:"scheduled",use:"scheduled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="scheduled"><path d="M19.79 19.26c-.42.52-.89 1-1.4 1.43l.86.97c.2.22.47.34.75.34.24 0 .47-.08.66-.25.41-.37.45-1 .08-1.41zM18 4c1.1 0 2 .9 2 2 0 .28-.06.55-.17.79.45.57.83 1.18 1.15 1.84C21.61 7.93 22 7.01 22 6c0-2.21-1.79-4-4-4-1.23 0-2.32.57-3.05 1.44.7.22 1.36.51 1.99.87.31-.19.67-.31 1.06-.31M4.17 6.79C4.06 6.55 4 6.28 4 6c0-1.1.9-2 2-2 .39 0 .75.12 1.06.31.63-.36 1.29-.65 1.99-.87A3.978 3.978 0 0 0 6 2C3.79 2 2 3.79 2 6c0 1.01.39 1.93 1.01 2.63.32-.65.71-1.27 1.16-1.84M12 4c-4.96 0-9 4.04-9 9 0 2.07.71 3.97 1.89 5.5l-1.64 1.84a.998.998 0 0 0 .08 1.41c.19.17.43.25.66.25.28 0 .55-.11.75-.34l1.53-1.72A8.965 8.965 0 0 0 12 22c4.96 0 9-4.04 9-9s-4.04-9-9-9m0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7m0-12v5H7c0 2.74 2.26 5 5 5s5-2.26 5-5-2.26-5-5-5" /></symbol>'});Me().add(Ts);const Rs=Ts;var Ns=new(_e())({id:"search",use:"search-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search"><path d="M5 8h1c0-1.1.9-2 2-2V5C6.34 5 5 6.34 5 8m10.53 6.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06M8 12.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 3.5 8 3.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5" /></symbol>'});Me().add(Ns);const Us=Ns;var Gs=new(_e())({id:"search_s",use:"search_s-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="search_s"><path fill-rule="evenodd" d="m10.122 9.143 3.673 3.66A.701.701 0 0 1 13.296 14a.703.703 0 0 1-.497-.204L9.12 10.128a5.648 5.648 0 0 1-3.45 1.178C2.543 11.306 0 8.77 0 5.653 0 2.536 2.544 0 5.67 0c3.127 0 5.67 2.536 5.67 5.653a5.61 5.61 0 0 1-1.218 3.49m-4.45-7.74c-2.351 0-4.265 1.906-4.265 4.25 0 2.343 1.914 4.25 4.264 4.25 2.351 0 4.264-1.907 4.264-4.25 0-2.344-1.913-4.25-4.264-4.25" clip-rule="evenodd" /></symbol>'});Me().add(Gs);const Ws=Gs;var qs=new(_e())({id:"search_press",use:"search_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search_press"><path d="m15.53 14.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06M8 6c-1.1 0-2 .9-2 2H5c0-1.66 1.34-3 3-3z" /></symbol>'});Me().add(qs);const Ks=qs;var Js=new(_e())({id:"apache",use:"apache-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache"><path d="M4.91 16.7c.18-.5.35-1 .54-1.5.21.07.42.14.64.22-.16.53-.31 1.06-.48 1.59zm8.95-10.95c-.3.3-.8.48-1.37.42 0 0 .53.22 1.16.38-.14.47-.29.96-.46 1.47-.39.17-.79.29-1.13.26.35.15.65.25.93.33-.03.1-.07.19-.11.29-.42.06-.96.09-1.64.02.39.27.86.47 1.32.62-1.43 2.55-4.21 3.39-4.21 3.39 1.21.84 2.02.21 2.02.21-.62 1.37-1.83.53-1.83.53.19.74 1.21.84 1.21.84-.82.63-3.04-.31-3.04-.31 1.21.84.39 1.48.39 1.48-.13-.49-.6-.69-.92-.77.1-.34.2-.68.3-1.03.16-.55.33-1.1.5-1.64.17-.55.34-1.09.52-1.64.43-1.29.87-2.58 1.36-3.84.52-1.26 1.02-2.53 1.84-3.65-.87 1.09-1.43 2.34-2 3.57-.55 1.24-1.05 2.51-1.54 3.78-.09.24-.18.48-.27.71-.2.54-.39 1.07-.59 1.61l-.57 1.62c-.03.09-.06.19-.09.28-.4-.21-1.18-.52-1.77-.06-.19-.74.82-.63.82-.63-1.21-.84-.19-.74-.19-.74.19.74 1.21.84 1.21.84-.19-.74-1.59-2.32-1.59-2.32 1.01.1 1.21.84 1.21.84-.97-3.69 1.91-7.71 2.54-9.08.62-1.37 2.85-2.95 4.28-2.43 2.16.78 2.27 2.4 1.71 4.65" /></symbol>'});Me().add(Js);const Qs=Js;var $s=new(_e())({id:"asterisk",use:"asterisk-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="asterisk"><path d="M7.417 1v.583h1.166V1zM7.417 2.75v1.167h1.166V2.75zM7.417 5.083V6.25h1.166V5.083zM7.417 9.75v1.167h1.166V9.75zM7.417 12.083v1.167h1.166v-1.167zM7.417 14.417V15h1.166v-.583zM1 8.583h.583V7.417H1zM2.75 8.583h1.167V7.417H2.75zM5.083 8.583H6.25V7.417H5.083zM8 8.802l-.011.012-.23-.23h-.342v-.342l-.23-.23.01-.012-.01-.011.23-.23v-.342h.341l.23-.23.012.01.011-.01.23.23h.342v.341l.23.23-.01.012.01.011-.23.23v.342h-.341l-.23.23zM9.75 8.583h1.167V7.417H9.75zM12.083 8.583h1.167V7.417h-1.167zM14.417 8.583H15V7.417h-.583zM14.83 1.996l-.402.4-.825-.824.401-.401zM13.626 3.199 12.824 4l-.825-.825.802-.802zM12.022 4.803l-.802.802-.825-.825.802-.802zM10.418 6.407l-.802.802-.825-.825.802-.802zM7.21 9.616l-.803.802-.825-.825.802-.802zM5.605 11.22l-.802.802-.825-.825.802-.802zM4.001 12.824l-.802.802-.825-.825.802-.802zM2.397 14.428l-.401.401-.825-.825.4-.4zM1.17 1.996l.402.4.825-.824-.401-.401zM2.374 3.199 3.176 4l.825-.825-.802-.802zM3.978 4.803l.802.802.825-.825-.802-.802zM5.582 6.407l.802.802.825-.825-.802-.802zM8.79 9.616l.803.802.825-.825-.802-.802zM10.395 11.22l.802.802.825-.825-.802-.802zM11.999 12.824l.802.802.825-.825-.802-.802zM13.603 14.428l.401.401.825-.825-.4-.4z" /></symbol>'});Me().add($s);const Ys=$s;var Zs=new(_e())({id:"apache_tomcat",use:"apache_tomcat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache_tomcat"><path d="M16.58 9.12v-.23h-.92c-.04.08-.09.15-.13.23zm0-.54v-.23h-.64c-.04.08-.07.15-.11.23zm1.15 6.04c-.34-.38-1.01-.57-1.57-.55-.36-.43-2.26-2.43-2.63-2.83.79-.55 1.47-1.27 2-2.13h-.77v-.23h.9c.06-.1.11-.21.17-.31h-1.07v-.23h1.18c.47-1.02.74-2.19.71-3.47 0-.35-.11-1.84-.31-2.24-.54.21-1.54.88-1.76 1.57-1.07-.16-2.29-.14-3.35.04-.18-.74-1.07-1.31-1.74-1.62-.29.48-.41 1.59-.38 2.37H9.1c.03.71.12 1.37.28 1.97-2.32.58-4.84 2.1-6.26 3.56-.66-.89-.93-1.63-1-2.18-.1-.7.07-1.34.49-1.86.65-.81 1.58-.86 2.53-.71-.02.15 0 .29.06.38.25.37 1.6.5 2.41.14-.59-.84-1.8-1.24-2.14-1.08-.11.06-.19.15-.25.27-.33-.06-.66-.1-.89-.1-.84.01-1.48.3-1.96.89-.47.59-.66 1.31-.55 2.1.11.75.47 1.54 1.1 2.37l-.3.33C1.1 12.77 0 14.58 0 14.88v.16h1.99l-.03-.19c-.11-.59.11-1.34.57-1.89.29-.35.77-.75 1.52-.93.67.66 1.52 1.34 2.47 2.02H8v-.16c0-.18-.08-.33-.24-.44-.23-.15-.59-.18-.93-.06-.32-.35-.49-.82-.53-1.41 3.21.28 6.29 1.58 9.76 3.4h1.91l.02-.12c.03-.18-.06-.42-.26-.64m-1.4-8.06-.14.41-.62-.1zm-.31.92-.11.34-.47-.17zm-1.16-3.23c-.01 0-.02-.01-.02-.01s.01.01.02.01m-1.43.06-.38 1.3-.58-1.28zm-2.99 2.38-.84.05-.09-.55zm-.13.73-.47.13-.09-.36zM4.67 9.51l.53-.4.26.94zm1.17-.77.6-.36.54.94zm1.06-.55 1.03-.47.51 1.51zm4.13.93H9.21v-.23h1.82zm0-.54H9.21v-.23h1.82zm1.2.77-.11-.17.65-.43-1.15-.72.05-.08c.15-.26.28-.59.37-.92h-.88v-.2h.92c.11-.49.14-.95 0-1.19-.06-.1-.14-.15-.25-.15-.53 0-.75.56-.75.58L10.89 6c.01-.03.28-.71.94-.71.19 0 .33.08.43.25.17.29.15.78.03 1.29h1.61c.21-.63.66-.93 1.41-.93v.2c-.81 0-1.04.34-1.2.73h.88v.2l-.88-.01h-.08c-.1.34-.02.64.21 1-.06.03-1.14.74-1.13.74l.72.45-.11.17-.79-.51zm1.39 2.29.37.36-.86.4zm-.02 1.46.79-.6.31.32zm-1.51-5.01.85.54.81-.54zm1.74-1.07h-1.59c-.08.32-.2.62-.33.87h2.06c-.18-.3-.21-.64-.14-.87" /></symbol>'});Me().add(Zs);const Xs=Zs;var eu=new(_e())({id:"beanstalk",use:"beanstalk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="beanstalk"><path d="M8.37 8.56c-.29 0-.54.11-.76.32-.22.21-.33.57-.33 1.06 0 .36.04.65.13.87.17.42.48.63.94.63.34 0 .6-.14.77-.41.17-.27.26-.64.26-1.08 0-.4-.09-.73-.26-.99-.16-.27-.41-.4-.75-.4M6.99 5.64c-1.61-.73-4.05-.68-4.56-.71-.52-.03-1.27-.15-1.41-.57.08 1.24.58 4 1.57 5.94.99 1.94 3.11 2.79 4.15 3.08 1.04.29 2.7.28 3.11.3.41.02.55.43.65.9.11.53.05 1.72-.27 2.42h.72c.13-2.14-.14-4.86-.58-7.23-.44-2.36-1.77-3.4-3.38-4.13m2.61 5.77c-.29.4-.69.59-1.21.59-.29 0-.53-.07-.73-.21-.12-.08-.24-.21-.38-.4v.49H6.7V6.66h.62v1.89c.14-.18.31-.32.5-.42.19-.1.4-.14.63-.14.47 0 .86.16 1.15.49.29.32.44.8.44 1.44 0 .6-.15 1.09-.44 1.49M16.98 1c-.3.29-1.48.42-1.92.44-.44.02-2.03.07-3.47 1.17-1.44 1.1-1.55 4.67-1.2 6.37-.13-.92.28-1.36.51-1.47.34-.16.68-.08 1.45-.13 1.25-.08 2.46-.92 3.3-2C16.49 4.29 17 1.71 16.98 1" /></symbol>'});Me().add(eu);const tu=eu;var nu=new(_e())({id:"bind",use:"bind-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="bind"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14m.02-1.128a5.892 5.892 0 1 0-5.206-3.131c.123.206.25.394.38.581.215.312.456.604.762.866.355.305.759.597 1.223.657.185.024.334.024.334.024h.314l.815-.084.188-.02c.15-.018.453-.091.585-.126.773-.23 1.525-.982 1.63-1.087.083-.083.3-.369.397-.501.054-.07.03-.17.006-.27l-.005-.021a3.113 3.113 0 1 1 1.65-3.131c.122.655.227 1.762-.084 2.586-.48 1.275-.773 1.65-1.484 2.382-.535.551-1.248.886-1.591 1.004a.087.087 0 0 0-.06.083.194.194 0 0 1-.12.182c.09.004.178.006.267.006m-1.368-.16a8.949 8.949 0 0 1-1.012-.341c.323.143.661.257 1.012.34M10.069 8A2.069 2.069 0 1 1 5.93 8a2.069 2.069 0 0 1 4.138 0" clip-rule="evenodd" /></symbol>'});Me().add(nu);const ru=nu;var ou=new(_e())({id:"containerTech",use:"containerTech-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="containerTech"><path d="M10.42 1.81c-.46-.34-1.02-.53-1.59-.53-.41 0-.82.1-1.19.28L2.61 4.08l4.45 3.34 6.5-3.25zm-1.79.5c.07-.01.13-.02.2-.02.02 0 .04.01.06.01a.758.758 0 0 0-.26.01M2 9.47c0 .65.31 1.26.83 1.65L6.4 13.8l.1.08V8.25L2 4.88zm5.5-1.16v5.56l1.5-.75V9.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l1-.5V8.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l.86-.43c.7-.35 1.14-1.06 1.14-1.85V5.06z" /></symbol>'});Me().add(ou);const au=ou;var iu=new(_e())({id:"coreDNS",use:"coreDNS-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="coreDNS"><path d="m7.508 7.097-.074-.074L5.48 8.977l-.013.014a.661.661 0 0 0-.11.15l-.003.004-.029.06a.697.697 0 0 0 .151.753l.394.394 1.635-1.636a1.142 1.142 0 0 0 .003-1.62" /><path d="m14.405 5.14-.84-.841a1.143 1.143 0 0 0-1.536-.074c-.03.022-.055.048-.084.074l-.64.64 2.005 2.007c.05.051.098.106.142.164l.003.005c.03.173.052.35.068.526l-.003.003a5.812 5.812 0 0 0-.071-.528 1.365 1.365 0 0 0-.142-.164l-2.003-2.01L9.112 2.75a1.632 1.632 0 0 0-2.3 0l-4.53 4.527a1.63 1.63 0 0 0-.24 1.987l.002.004-.434.427a1.145 1.145 0 0 0 0 1.62l.84.84a1.148 1.148 0 0 0 1.62 0l.394-.394 2.014 2.014a1.632 1.632 0 0 0 2.299 0l4.533-4.527a1.623 1.623 0 0 0 .358-1.752l-.073.073.076-.076-.002-.005.733-.732a1.144 1.144 0 0 0 .003-1.617m-3.493 2.55a1.25 1.25 0 0 1 0 0M7.624 11.12a1.304 1.304 0 0 1-1.841 0l-.342-.34-.977.976-1.091-1.091 1.09 1.09.978-.979-.39-.39a1.316 1.316 0 0 1-.232-1.526c.061-.116.14-.223.233-.315l1.952-1.953.002.002 1.046-1.047a1.302 1.302 0 0 1 1.842 0l.4.4-.429.428.002.001-.002.002-.402-.403a.68.68 0 0 0-.622-.193.693.693 0 0 0-.357.19L7.437 7.02l.075.074a1.145 1.145 0 0 1 0 1.62l-1.64 1.638.342.341a.691.691 0 0 0 .753.152l.062-.03c.003 0 .003-.003.006-.003a.72.72 0 0 0 .161-.119l1.32-1.32-.013-.013a1.145 1.145 0 0 1 0-1.62l.003-.002a1.144 1.144 0 0 0 0 1.62l.012.01-.002.002.428.428 1.681-1.68a.867.867 0 0 0 0 .003z" /></symbol>'});Me().add(iu);const lu=iu;var cu=new(_e())({id:"couchDB",use:"couchDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="couchDB"><path d="M14 10.75c0 .66-.35.99-1 1H5c-.65-.01-1-.34-1-1 0-.66.35-.99 1-1h8c.65.01 1 .34 1 1m-1 1.5H5c-.65.01-1 .34-1 1 0 .66.35.99 1 1h8c.65-.01 1-.34 1-1 0-.66-.35-.99-1-1m2.5-5.5c-.65.01-1 .34-1 1v5.5c0 .66.35.99 1 1 .98-.03 1.5-1.01 1.5-3v-2.5c0-1.33-.52-1.98-1.5-2m-13 0c-.98.02-1.5.67-1.5 2v2.5c0 1.99.52 2.96 1.5 3 .65-.01 1-.34 1-1v-5.5c0-.66-.35-.99-1-1m13-.5c0-1.66-.87-2.47-2.5-2.5H5c-1.63.03-2.5.84-2.5 2.5.98.02 1.5.5 1.5 1.5 0 .99.52 1.48 1.5 1.5h7c.98-.02 1.5-.5 1.5-1.5 0-.99.52-1.48 1.5-1.5" /></symbol>'});Me().add(cu);const su=cu;var uu=new(_e())({id:"database",use:"database-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="database"><path d="M9 10c5.153 0 7.5-2.073 7.5-4S14.153 2 9 2C3.847 2 1.5 4.073 1.5 6s2.347 4 7.5 4m0-6.5c3.313 0 6 1.119 6 2.5s-2.687 2.5-6 2.5S3 7.381 3 6s2.687-2.5 6-2.5m5.566 9.431C13.68 13.85 11.523 14.5 9 14.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 12c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369m0-3C13.68 10.85 11.523 11.5 9 11.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 9c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369" /></symbol>'});Me().add(uu);const du=uu;var hu=new(_e())({id:"dns",use:"dns-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dns"><path d="M12.233 9.344c-.564 0-1.174-.151-1.19-.745l-.552.002c0 .907.865 1.172 1.7 1.172.743 0 1.588-.246 1.588-1.084 0-.68-.822-.796-1.112-.848l-.906-.14c-.456-.07-.604-.232-.604-.435 0-.389.46-.54.858-.54.885 0 1.058.354 1.099.61h.549c-.056-.796-.828-1.037-1.575-1.037-.947 0-1.48.398-1.48 1.005 0 .643.658.805 1.098.865l.84.124c.428.07.687.19.687.49-.002.357-.42.561-1 .561M3.154 3.801a6.836 6.836 0 0 1 1.888-1.216c-.512.616-.933 1.385-1.24 2.264h1.112c.176-.449.388-.86.631-1.234.355-.535.775-.967 1.212-1.247.234-.148.47-.256.713-.319v2.8h1.053v-2.8c.242.063.479.17.713.32.438.277.856.71 1.21 1.246.245.372.457.785.634 1.232h1.109c-.306-.878-.729-1.648-1.24-2.264a6.82 6.82 0 0 1 1.89 1.217c.355.319.664.672.931 1.047h1.213c-1.325-2.274-3.954-3.825-6.986-3.825-3.032 0-5.662 1.551-6.988 3.825H2.22c.268-.375.579-.727.934-1.046M9.446 9.012h-.012L7.059 6.38H6.42v3.306h.549V7.055h.01l2.377 2.632h.638V6.381h-.55zM4.155 6.38H2.28v3.306h1.907c1.133 0 1.584-.778 1.584-1.699.001-.959-.507-1.607-1.616-1.607m.007 2.88-1.33-.002V6.806h1.227c.952 0 1.166.61 1.166 1.189-.002.589-.162 1.266-1.063 1.266M12.84 12.22a6.859 6.859 0 0 1-1.89 1.216c.514-.615.935-1.386 1.24-2.264h-1.11c-.176.448-.389.86-.635 1.233-.353.536-.774.968-1.211 1.249a2.542 2.542 0 0 1-.711.317V11.17H7.472v2.8c-.24-.064-.48-.171-.714-.318-.438-.28-.854-.711-1.21-1.249a6.986 6.986 0 0 1-.635-1.233H3.802c.305.879.728 1.648 1.24 2.264a6.836 6.836 0 0 1-1.888-1.217 6.42 6.42 0 0 1-.934-1.047H1.01c1.327 2.276 3.956 3.827 6.988 3.827 3.032 0 5.663-1.551 6.988-3.827h-1.213c-.268.377-.577.73-.931 1.05" /></symbol>'});Me().add(hu);const vu=hu;var mu=new(_e())({id:"dnsmasq",use:"dnsmasq-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dnsmasq"><path fill-rule="evenodd" d="M8 4c-1.91 0-3.648.475-4.915 1.253C1.822 6.028 1 7.125 1 8.37c0 1.245.822 2.342 2.085 3.117.36.221.748.248 1.141.178.388-.07.794-.236 1.2-.417l.269-.12c.747-.338 1.51-.683 2.305-.683.794 0 1.558.345 2.305.682l.268.12c.407.182.813.348 1.201.418.393.07.781.043 1.14-.178C14.179 10.713 15 9.616 15 8.371c0-1.246-.822-2.343-2.085-3.118C11.648 4.475 9.909 4 8 4M4.259 7.949c0-.006.002-.029.04-.067a.644.644 0 0 1 .202-.124c.193-.081.473-.136.792-.136.32 0 .6.055.792.136.097.041.163.085.202.124.039.038.04.06.04.067 0 .006-.001.028-.04.066a.644.644 0 0 1-.202.124 2.116 2.116 0 0 1-.792.136c-.319 0-.599-.055-.792-.136a.644.644 0 0 1-.202-.124c-.038-.038-.04-.06-.04-.066m5.397.085zv-.001c0-.001 0-.004.003-.008a.152.152 0 0 1 .032-.038.652.652 0 0 1 .2-.115c.194-.076.474-.127.793-.127.319 0 .6.051.793.127.097.039.163.08.201.115a.15.15 0 0 1 .032.038.03.03 0 0 1 .003.008v.002a.035.035 0 0 1-.003.008.153.153 0 0 1-.032.038.652.652 0 0 1-.201.115 2.255 2.255 0 0 1-.793.127c-.319 0-.599-.05-.792-.127a.651.651 0 0 1-.201-.115.152.152 0 0 1-.032-.038.036.036 0 0 1-.003-.007z" clip-rule="evenodd" /></symbol>'});Me().add(mu);const gu=mu;var fu=new(_e())({id:"docker_hub_press",use:"docker_hub_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub_press"><path d="M7.9 3.77H6.42v1.47H7.9zm2.21 2.21H8.63v1.47h1.47V5.98zm0-2.21H8.63v1.47h1.47V3.77zm4.87 3.49c-.13-.02.16-2.05-1.5-1.99 0 0-.84 1.12-.5 1.99.41 1.04-1.5 1-1.5 1h-9.6C.81 8.26.16 9.45.75 10.34c1.15 1.73 2.76 3.9 5.75 3.9h1c1.34 0 2.46-.34 3.35-.79 1.35-.68 2.33-1.89 2.96-3.26.25-.53.67-1.08 1.34-1.14 1.33-.11 2.33-.66 2.32-1.8 0 .01-1.35-.52-2.49.01M5.69 5.98H4.21v1.47h1.47V5.98zm2.21 0H6.42v1.47H7.9z" /></symbol>'});Me().add(fu);const pu=fu;var wu=new(_e())({id:"docker_hub",use:"docker_hub-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub"><g clip-path="url(#docker_hub_a)"><path d="M9.98 4.37v1.3h-1.3v-1.3zm-1.96 0v1.3h-1.3v-1.3zm5.01 1.32c1.4 0 1.15 1.75 1.26 1.77.34-.15.7-.21 1.02-.21.65 0 1.18.21 1.18.21.01 1-.87 1.49-2.05 1.59-.6.05-.97.53-1.19 1.01-.56 1.21-1.43 2.28-2.62 2.89-.79.4-1.77.7-2.96.7h-.88c-2.65 0-4.07-1.92-5.09-3.45-.52-.79.05-1.84 1-1.84h8.53c.21 0 1.63-.03 1.3-.88-.3-.77.44-1.77.44-1.77.02-.02.04-.02.06-.02m-3.05.63v1.3h-1.3v-1.3zm-1.96 0v1.3h-1.3v-1.3zm-1.95 0v1.3h-1.3v-1.3zm5.41-3.45H5.22v1.96H3.26v2.02H2.7c-1 0-1.91.55-2.38 1.42-.47.87-.42 1.93.13 2.75.89 1.34 2.74 4.12 6.34 4.12h.88c1.29 0 2.51-.29 3.64-.86 1.4-.71 2.55-1.95 3.31-3.59.03-.07.06-.12.09-.16 2.44-.25 3.3-1.75 3.29-3.08l-.01-1.02-.95-.37c-.13-.05-.78-.29-1.61-.31-.59-1.38-1.81-1.56-2.4-1.56h-.11l-.72.03-.43.58c-.06.07-.17.23-.29.45v-.88z" /></g><defs><clipPath id="docker_hub_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'});Me().add(wu);const bu=wu;var yu=new(_e())({id:"dotnet",use:"dotnet-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dotnet"><path d="M2.389 9.991c0 .127-.054.24-.14.32a.488.488 0 0 1-.672 0 .44.44 0 0 1 .001-.64.49.49 0 0 1 .672 0c.085.08.139.194.139.32zm4.758.379h-.852L4.053 6.83c-.052-.08-.1-.171-.138-.268l-.003-.01h-.02a4.874 4.874 0 0 1 .026.668v-.007 3.156h-.753V5.556h.907L6.24 9.011c.091.143.15.242.177.296h.013a4.205 4.205 0 0 1-.033-.653v.005-3.103h.75zm3.667 0H8.178V5.556h2.532v.678H8.958v1.364h1.614v.675H8.958v1.423h1.856zm3.747-4.136h-1.35v4.136h-.779V6.234h-1.346v-.678h3.474z" /></symbol>'});Me().add(yu);const xu=yu;var Ou=new(_e())({id:"eBPF",use:"eBPF-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="eBPF"><path d="M16.291 4.293a.445.445 0 0 0-.629.029c-.315.345-1.152.89-2.217 1.093a3.968 3.968 0 0 0-1.848-1.306c-.132-1.01.002-1.838.419-2.663a.444.444 0 1 0-.795-.4c-.455.901-.63 1.822-.538 2.885-.901-.052-1.749.269-2.279.953a2.373 2.373 0 0 0-.278.458C7.3 5.05 6.365 4.913 5.47 4.913c-1.586 0-3.049.426-3.574 1.161-1.119 1.564.86 3.292 2.061 3.802a3.694 3.694 0 0 0-.344 1.501c-.007.745.227 1.493.677 2.163.131.195.28.38.443.553l-.384 1.778 1.75-.79c.41.19.843.312 1.275.356.12.012.248.02.385.02.699 0 1.593-.197 2.489-.935.713 1.02 1.738 1.678 2.751 1.678h.074c1.467-.048 3.18-1.955.372-6.939a2.32 2.32 0 0 0 .249-.273c.597-.77.648-1.816.235-2.767 1.068-.267 1.948-.812 2.392-1.298a.449.449 0 0 0-.03-.63M9.735 9.41a5.275 5.275 0 0 0-.431 2.292c-.68 0-1.291-.232-1.719-.664-.316-.319-.497-.718-.495-1.072a4.242 4.242 0 0 0 1.946-1.087 4.05 4.05 0 0 0 .699.531m-4.049-.079a5.11 5.11 0 0 1-.246-.006c-.003-.71.155-1.312.951-1.952.95.03 1.868.167 2.588.307a3.323 3.323 0 0 1-.404.518c-.698.752-1.67 1.133-2.889 1.133m-.217-3.614c.963 0 1.904.172 2.653.485.829.413 1.002.739 1.031.897a.511.511 0 0 1-.009.204c-1.687-.337-3.169-.426-4.404-.263-.03.004-.059.01-.088.013-.376-.13-.803-.427-1.049-1.091.534-.158 1.193-.245 1.866-.245M2.453 7.453c-.138-.345-.108-.626.096-.911.139-.195.43-.347.675-.447.137.366.374.783.787 1.08a5.139 5.139 0 0 0-1.422.546 1.991 1.991 0 0 1-.136-.268m.98 1.173a4.029 4.029 0 0 1-.608-.58c.519-.297 1.126-.478 1.769-.578.008 0 .116-.017.116-.017.356-.05.721-.075 1.087-.082-.616.63-.755 1.26-.757 1.926a6.278 6.278 0 0 1-.52-.078c-.175-.033-.608-.218-1.087-.591m4.024 6.011c-.967-.1-1.925-.692-2.499-1.546-.644-.957-.71-2.037-.202-3.019.145.02.303.037.469.048.041.797.406 1.601 1.032 2.233.783.791 1.866 1.218 3.043 1.218.137 0 .275-.007.414-.018.038.09.078.178.12.265-.713.623-1.53.906-2.377.82m2.658-2.827a4.486 4.486 0 0 1 .482-2.348c.064-.118.176-.253.317-.373.464.883.81 1.666 1.05 2.384-.331.79-.891 1.311-1.608 1.51a4.542 4.542 0 0 1-.241-1.173m2.177 3.434a2.554 2.554 0 0 1-.445-.24 3.76 3.76 0 0 1-1.078-1.152 4.387 4.387 0 0 1-.262-.493c.686-.199 1.244-.652 1.627-1.323.079.294.14.577.182.852.141.903.072 1.623-.024 2.356m1.619-.404c-.273.484-.695.55-.864.554l-.048.001c-.104 0-.209-.01-.316-.032.065-.495.122-.988.116-1.535.368.241.887.41 1.304.454-.039.212-.103.4-.192.558m.183-1.71c.041.27.057.523.049.755a2.794 2.794 0 0 1-.619-.149c-.362-.13-.652-.31-.755-.469-.101-1.099-.486-2.446-1.515-4.398a.98.98 0 0 1 .414-.1c.158 0 .308.049.458.151.217.147.425.394.617.736.748 1.328 1.203 2.496 1.351 3.473" /></symbol>'});Me().add(Ou);const Bu=Ou;var Cu=new(_e())({id:"elasticSearch",use:"elasticSearch-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="elasticSearch"><path d="m6.21 6.83-2.52-.59c-1.03.33-1.73 1.32-1.73 2.39 0 1.05.65 1.99 1.62 2.36L6.8 8.08zm4.49 2.63 3.37-2.96c.05-.25.07-.5.07-.75 0-2.08-1.69-3.76-3.76-3.76-1.25 0-2.41.61-3.1 1.64l-.56 2.91.65 1.39zM6.17 6.23l.51-2.6c-.32-.24-.7-.37-1.1-.37-.99 0-1.81.81-1.81 1.81 0 .21.04.43.11.62zm8.25.75-3.3 2.88.67 1.28 2.52.59a2.535 2.535 0 0 0 1.73-2.39c0-1.05-.64-1.98-1.62-2.36m-2.59 4.77-.5 2.59c.32.24.7.38 1.09.38.99 0 1.81-.81 1.81-1.81 0-.22-.04-.43-.11-.62zM7.2 8.5l-3.29 2.97c-.05.24-.07.5-.07.76 0 2.08 1.7 3.77 3.77 3.77 1.26 0 2.42-.62 3.13-1.65l.55-2.91-.75-1.42z" /></symbol>'});Me().add(Cu);const _u=Cu;var zu=new(_e())({id:"example",use:"example-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="example"><path d="M12.134 2.662c.363.346.681.736.948 1.163l.818-.667-.948-1.163zm-8.259.008-.827-.674L2.1 3.159l.833.68a6.19 6.19 0 0 1 .942-1.169m-1.774 8.172.948 1.163.824-.672a5.966 5.966 0 0 1-.947-1.164zM1 6.25v1.5h1.051a5.978 5.978 0 0 1 .005-1.5zm12.948 0c.031.246.052.496.052.75 0 .253-.017.503-.048.75H15v-1.5zm-1.822 5.082.825.673.948-1.163-.822-.67a5.897 5.897 0 0 1-.951 1.16M8 1.5a5.74 5.74 0 0 0-.679.041c-2.399.29-4.4 2.232-4.759 4.62A5.485 5.485 0 0 0 3.78 10.5H9a1 1 0 0 1-1 1H4.886c.04.027.074.06.114.086v.26A2.656 2.656 0 0 0 7.654 14.5h.692A2.656 2.656 0 0 0 11 11.846v-.259A5.447 5.447 0 0 0 13.5 7c0-3.033-2.467-5.5-5.5-5.5M8 5a2 2 0 0 0-2 2H5c0-1.654 1.346-3 3-3z" /></symbol>'});Me().add(zu);const Mu=zu;var Eu=new(_e())({id:"freeNAS",use:"freeNAS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeNAS"><path d="M17.33 7.17c-.43.86-2.22 1.51-2.94 1.43l-.43.79-.43-.72c-1.08.22-2.44.07-2.58-.14-.14-.22-.14-.43-.14-.43l.93-1.15-2.37-.5 3.01-.57c.43-.86 1.08-2.51 1-3.37-.65 0-5.45.57-6.88 1.86-1.79-1.43-4.01-1.64-4.94-1.64.79.72.79 1.22.79 1.79v1.29s-.72 1.29-.93 2.44c-.21 1.15.14 2.72.72 3.66.18.29.44.76.84 1.25-.45.76-1.07 1.83-.98 1.83.09 0 .97-.7 1.58-1.18.94.88 2.4 1.69 4.73 1.69 4.23 0 6.31-3.44 6.38-4.66 2.28-.66 2.78-2.74 2.64-3.67m-5.23 5.59c-.57.29-1.72.5-2.51 0-.73-.46-.72-1.51-.57-2.01.15-.5.93-1.65.93-1.65.36 1 1.79 1.86 3.08 1.86 0 .8-.36 1.52-.93 1.8" /></symbol>'});Me().add(Eu);const Su=Eu;var ku=new(_e())({id:"haProxy",use:"haProxy-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="haProxy"><path d="m15.93 8.98.53-.52v.01h.48V8h-.48v.2l-1.29-.26v-.31l1.06-.72V7h.48v-.47h-.48v.06l-.71-.4.26-.61h.31v-.47h-.48v.24l-.95.07v-.38h-.17l.4-.72h.37v-.47h-.48v.16l-.69-.11-.07-.65h.18v-.47h-.48v.29l-.75.38v-.2h-.38l.07-.83h.26v-.47h-.48v.27l-.67.18-.37-.62h.08v-.47H11v.47h.05l-.51.62h-.45l-.26-.93h.16V1h-.48v.43l-.55.44-.5-.39V1h-.47v.48h.15l-.26.92h-.45l-.49-.6h.03v-.47h-.48v.47h.07l-.36.6-.65-.18v-.29h-.47v.48h.25l.06.87H5v.19l-.73-.34v-.34h-.48v.47H4l-.08.7-.68.13v-.24h-.48v.47h.31l.42.73h-.18v.39l-.92-.07v-.24h-.48v.47h.32l.27.6-.69.4v-.07h-.48V7h.48v-.08l.99.68v.35l-1.27.24v-.17h-.48v.47h.46l.54.51-.54.51h-.46v.47h.48v-.17l1.28.22v.33l-1.01.69v-.02h-.48v.47h.48v-.07l.69.38-.26.62H1.9v.47h.48v-.24l.94-.09v.37h.19l-.44.79h-.32v.47h.48v-.21l.69.1.07.68h-.18v.47h.48v-.3l.73-.4v.18h.39l-.07.95h-.22v.47h.48v-.31l.66-.2.36.6h-.11v.47h.48v-.47h-.02l.51-.66h.42l.26.97h-.12v.47h.48v-.46l.5-.4.55.45v.41h.47v-.48h-.17l.27-.94h.45l.51.65h-.07v.47h.48v-.47h-.09l.38-.64.65.19v.32h.47v-.48h-.25l-.06-.91h.4v-.21l.74.37v.35h.48v-.47h-.21l.08-.69.7-.1v.23h.48v-.47h-.34l-.42-.78h.16v-.39l.95.1v.28h.48v-.47h-.32l-.29-.66.74-.42v.13h.48v-.47h-.48v.07l-1.07-.71v-.33l1.3-.24v.17h.48v-.47h-.46zm.54-.75v.2l-.55.53-.74-.72v-.27zm-.24-1.61v.26l-1.06.72v-.15h-.19l.53-1.24zm-.62-1.24v.2h.14l-.25.59-.83-.47v-.25zm-.94.53v-.18l.82.47-.54 1.25h-.65v.3l-.67-.18.01-.83h-.25l.56-.82zm-1.25 4.11.6-.93.38.58h-.1v.6l-.69.23v-.49zm-2.68 2.27.11-1.34 1.43-.12v.49h.57l-.15 1.34-1.4.16v-.54zm-2.79 0 .23-.26 1.64.01.21.24h-.06l-.01 1.14-.98.75-1.01-.77.01-1.11zM4.6 8.03l-.63.95-.43-.67h.13v-.52l.72-.2v.44zm2.63-2.34-.14 1.44-1.38.16v-.56h-.57l.14-1.4 1.39-.17v.53zm2.8 0-.25.29-1.6-.01-.25-.27H8l.01-1.14.97-.75 1.02.78-.01 1.1zm2.81 1.04-.52-.01-.01.56-1.47-.17-.12-1.43h.59v-.55l1.38.17zm-.12-1.41 1.07.13v.46h.12l-.56.82-.48-.01zm-1.79 2.73-.07-.86 1.46.17-.01.52-.29.25v-.06zm-2.89 2.09-.01.81-.89-.09-.09-.89.81.01.01-1.9-.82-.01.09-.88.88-.1-.01.78 1.9.01.01-.8.85.1.07.87-.75-.01-.01 1.9.77.01-.08.94-.85.07.01-.81zM5.98 8.25l-.01 1.58-.25.22v-.01l-1.07-.01-.67-1.02.65-.98 1.07.01v-.03zm-.27-.33v-.57l1.37-.16-.09.88-1.01-.01v.1zm.01 2.22.25-.22v.04l1.02.01.09.88-1.37-.14zm5.22-.19 1.04.01.32.28v.54l-1.43.12zm-.16-2.84-.85-.1.01-1.03h-.08l.25-.29h.54zM8.09 5.97h-.05l-.01 1.05-.88.1.15-1.43h.55zm-2.98.75H4.6l-.55-.8h.11v-.46l1.08-.13zm-.5 3.32h-.22v.43l-.71-.22v-.58h-.12l.41-.62zm.5 1.32.14 1.31-1.06-.12v-.5h-.08l.5-.71zm.03 0 .57.01.01-.59 1.38.14.14 1.37h-.56v.55l-1.39-.15zm2.02-.44.88.09-.01 1.03h.06l-.23.26H7.3zm2.75 1.13h.02l.01-1.02.85-.07-.11 1.33h-.55zm2.97-.72h.46l.54.73h-.09v.47l-1.06.12zm-.59-1.32v.14L12 9.9l.01-1.69.29-.25v.09l1.04.01.65 1-.62.96zm1.73-.99-.63-.96h.24V7.6l.67.18v.53h.17zm.76-4.98v.29h.08l-.4.72h-.25l-.12-1.11zm-1.06-.94v.15h.27l.07.65-1.09-.17v-.26zm-.74 1.02v-.35l1.09.17.12 1.12h-.39v.37l-1.08-.14-.13-1.17zm-.29 1.16-1.37-.17v-.53l.79-.56v.1h.45zm-.24-3.04v.17h.19l-.07.84h-.27l-.5-.84zm-1.36-.46h.29l.37.62-1.12.3v-.31h-.05zm-.45 1.49v-.53l1.13-.31.5.83h-.16v.73l-.79.55v-.16l-.81-.01-.21-1.1zm-.38 0 .21 1.1h-.48v.18L9 3.8l.77-.59v.07zm-.75-1.81v.01h.3l.26.93h-.31v.08l-.78-.6zm-.55.44.8.61v.65l-.79.61-.78-.6V2.5zm-.79-.41h.26l.52.4-.75.59v-.07h-.3zm.03 1.78v-.06l.76.58-.94.72v-.14h-.54l.21-1.1zM6.59 1.8h.31l.49.6h-.06v.3l-1.11-.3zm-.37.62 1.12.31v.54h.32l-.21 1.1-.75-.01v.22L5.87 4v-.72H5.7zm-.86-.01h.2v-.16l.63.17-.52.86h-.25zm.05 1.74h.46v-.11l.82.58v.5l-1.39.17zm-1.38-.9h.24v-.1L5 3.5v.26l-1.05.19zm-.08.72L5 3.78v.36h.37l-.12 1.15-1.08.13v-.38h-.36zm-.85.34h.14V4.1l.68-.12-.12 1.06h-.28zm.92 1.61.55.8h-.18l-.01.85-.72.2v-.31h-.59l-.55-1.23.78-.46v.15zm-1.77-.34h.14v-.2l.92.07v.27l-.79.46zM1.8 6.9v-.27l.7-.41.54 1.22H2.8v.13zm-.27 1.58v-.26l1.27-.24v.32l-.73.69zm0 1.31v-.25l.54-.51.73.69v.3zm1.28-.12v.01l-.71-.67.73-.7h.67l.45.7-.43.65zM1.8 11.4v-.32l1.01-.68v.13h.23l-.54 1.26zm.57 1.23v-.2h-.12l.26-.6.8.45v.27zm.94-.56v.18l-.79-.44.55-1.27h.61v-.25l.71.22-.01.86h.17l-.5.71zm-.09 1.89v-.24h-.13l.44-.79h.25l.12 1.12zm1.06.94v-.14h-.27l-.07-.68 1.07.15v.27zM5 13.84v.36l-1.07-.15-.12-1.13h.37v-.34l1.06.12.12 1.13zm.28-1.13 1.39.15v.52l-.79.57v-.12H5.4zm.29 3.08v-.14h-.23l.07-.95h.26l.53.89zm1.33.43h-.29l-.36-.61 1.07-.33v.28h.09zm.42-1.53v.56l-1.09.34-.53-.88h.17V14l.79-.57v.18l.79.01.21 1.08zm.37 0-.21-1.08h.5v-.17l.98.75-.77.59v-.1zm.77 1.84h-.31l-.26-.97h.3v-.07l.77.63zm-.27-1.07v-.62l.8-.61.8.61v.63l-.8.64zm1.62 1.06h-.27v.04l-.53-.44.78-.63v.08h.3zm-.02-1.81v.09l-.77-.59.95-.73v.14h.53l-.21 1.1zm1.58 1.53h-.26l-.51-.66h.05v-.31l1.1.33zm.39-.67-1.11-.33v-.53h-.34l.21-1.1.76.01v-.21l.83.6v.71h.15zm.86.06h-.2v.13l-.64-.19.51-.86h.26zm-.05-1.78h-.44v.12l-.83-.6v-.5l1.39-.16zm1.4.91h-.24v.1l-.74-.37v-.26l1.06-.16zm.08-.72-1.06.16v-.34h-.39l.13-1.16 1.07-.12v.36h.39zm.83-.32h-.11v.22l-.7.1.13-1.1h.26zm-.95-1.65-.54-.73h.22l.01-.8.69-.23v.23h.61l.54 1.25-.79.45v-.16zm1.82.38h-.13v.17l-.95-.1v-.26l.8-.46zm.48-1.32v.21l-.75.43-.54-1.23h.23v-.12zm-1.78-1.47-.4-.61.47-.74h.66v-.03l.72.7-.73.71v-.02zm2.02.13-1.3.24v-.31l.74-.72.55.54z" /></symbol>'});Me().add(ku);const ju=ku;var Hu=new(_e())({id:"httpCheck",use:"httpCheck-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="httpCheck"><path d="M7.16 7.35c0 .47.16.76.79.76.16 0 .42-.02.56-.06v-.59H8.4c-.18 0-.22-.05-.22-.18v-.93h.39V5.7h-.39v-.6h-1v.6h-.33v.65h.32v1zM12.6 6.3c-.22 0-.28.16-.28.6 0 .39.06.58.27.58.21 0 .29-.16.29-.61.01-.46-.1-.57-.28-.57M9 2c-3.08.26-4.98.86-6.39 1.6v5.11c0 3.26 2.62 6.78 6.39 7.29 3.77-.51 6.39-4.03 6.39-7.29V3.6C13.98 2.86 12.08 2.26 9 2m.31 3.69h.33v-.6h1v.6h.39v.65h-.39v.93c0 .13.04.18.22.18h.11v.59c-.14.04-.4.06-.56.06-.62 0-.79-.29-.79-.76v-1H9.3v-.65zM9 13.52v1.84c-1.58-.24-3.04-1.08-4.12-2.38-1.04-1.24-1.63-2.8-1.63-4.27V3.99C4.73 3.28 6.58 2.85 9 2.64v9.07l2.36-2.36.9.9zm3.88-5.39c-.27 0-.43-.09-.53-.21v.99h-1.02V5.7h.99c.01.06.02.19.02.25.09-.13.27-.31.66-.31.48 0 .92.39.92 1.19.01.91-.51 1.3-1.04 1.3M7.69 10.4l-.9.9L9 13.52v-1.81zM5.86 5.63c-.34 0-.54.15-.67.29v-1.1H4.17v3.24h1.02V6.75c0-.25.03-.41.23-.41.14 0 .2.09.2.29v1.44h1.02V6.52c-.01-.55-.26-.89-.78-.89" /></symbol>'});Me().add(Hu);const Pu=Hu;var Vu=new(_e())({id:"iceCast",use:"iceCast-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="iceCast"><path d="m14.94 12.17-.22-.39c-.01-.02-.02-.03-.04-.03l-.31-.12L16.3 9.7l-5.34-5.34-1.65 1.77a.09.09 0 0 1-.07.03c-.02 0-.05-.01-.06-.02-.04-.03-.04-.09 0-.13l1.65-1.77L9 2.41 6.66 4.75l1.28 1.31c.04.04.04.1 0 .13-.02.02-.04.03-.06.03-.02 0-.05-.01-.07-.03L6.53 4.88 1.7 9.7l1.73 1.73-.03.1a.79.79 0 0 0-.23.14c-.18.17-.28.76-.26 1.19.01.28.07.46.17.54.09.07.15.1.23.04.02-.02.04-.03.14-.02.16.03.2.08.2.1 0 .04.03.08.07.08l1.18.07c.25-.01.46-.05.65-.12L9 17l3.48-3.48.32-.21.03.06c.01.02.03.03.04.04.27.09.55.12.81.12.21 0 .42-.02.61-.04.01 0 .02 0 .03-.01l.48-.27c.01-.01.03-.02.03-.04.1-.24.14-.56.13-.97-.01-.01-.01-.02-.02-.03m-1.61-2.03c.24-.04.44-.02.55.08.09.08.14.19.13.35 0 .02 0 .03.01.04.17.25.19.41.07.69-.08.05-.23.1-.7.1h-.01l-.34.06h-.52l-.18-.26c-.01-.09-.03-.19-.08-.32 0-.12 0-.29-.05-.44l.05-.25c.06 0 .12-.01.17-.02l.5-.04h.38c.01.01.02.01.02.01m-.56-1 .28.2.12.48c-.28.12-.51.21-.63.18h-.04c-.02.01-.04.01-.07.02l-.22.02H10.8c-.3-.04-.52-.13-.63-.27l-.01-.01c-.14-.11-.21-.27-.2-.49 0-.01 0-.03-.01-.04-.02-.03-.06-.11.1-.24l.67-.06h1.81zm-.59 2.2c-.01.02-.04.03-.07.03h-.05c-.06-.03-.13-.05-.2-.08s-.14-.05-.21-.08c-.2-.08-.4-.18-.54-.3a.489.489 0 0 1-.14-.18c-.01-.01-.01-.02-.02-.03-.03-.02-.06-.04-.08-.07-.18-.16-.14-.25-.04-.39l1.02.02c.23.08.28.31.27.64v.03c.11.29.08.38.06.41m-.72-3.51c.02-.01.12-.08.69.02.21.15.28.31.24.48v.03c.01.09-.05.2-.17.33H10.84c-.28.09-.52.12-.72.09h-.01a.868.868 0 0 1-.46-.1c-.01 0-.02-.01-.03-.02l-.07-.19.04-.27.03-.24 1.11-.08.7-.02c0-.01.02-.02.03-.03m-2.08.67.04.12c-.06.03-.12.05-.19.06-.06-.01-.11-.02-.17-.04h-.03l-.47.09-.83.02H7.7c-.18.07-.48.02-.86-.05l.02-.7.12-.06c.13-.06.24-.09.33-.08h.01c.37-.06.78-.11 1.05-.05h.03c.28-.04.51 0 .72.04h.01c.11.1.2.22.26.36l-.03.25c.01.01.01.03.02.04m-1.34.48.53-.1.47-.09c.07.01.13.03.19.04.33.08.5.16.5.32v.42c-.06.1-.43.13-.57.14l-.66.1a.57.57 0 0 0-.26 0c-.2-.05-.32-.13-.38-.27-.08-.24-.02-.42.18-.56m1.41-2.25c.26-.1.68-.01.98.06l.09.02h.03c.2-.04.35.01.46.15l.01.01c.12.11.26.38.18.47-.01.02-.02.04-.02.06.01.13-.02.18-.03.19-.01 0-.02.02-.07.01h-.77l-.84.06c-.25-.04-.38-.17-.4-.4 0-.01 0-.02-.01-.03-.08-.16-.14-.29-.18-.48.16-.05.34-.09.55-.11.01-.01.01-.01.02-.01m-1.41-.51c.01 0 .01 0 .02-.01.29-.17.94-.21 1.1-.07l.15.22c-.01.08-.03.14-.07.17-.04.03-.1.04-.19.02h-.03l-1 .12c-.12.02-.2.01-.24-.03-.04-.04-.07-.11-.07-.22.06-.11.17-.16.33-.2M5.99 7.49l.54-.26.61-.36h1.29c.19.05.29.21.29.5 0 .01 0 .02.01.03.03.07.05.12.03.15-.02.03-.08.06-.16.07l-.21.03c-.26-.06-.61-.02-1.07.05-.11 0-.23.03-.36.08h-.55c-.19.05-.31.05-.37 0-.07-.05-.07-.18-.05-.29m-.28.76.64-.16c.06 0 .14 0 .17.05.04.04.03.12.02.18v.04c.06.15.03.25-.09.33l-.81.13c-.13.02-.24-.03-.33-.15-.01-.07 0-.22.4-.42M4.68 9.43c.1-.13.2-.21.32-.24.01 0 .02-.01.03-.01.18-.14.37-.16.62-.16h.65l.6-.05.43.15.22.2-.03.64-.29.08c-.13-.05-.28-.02-.47.09l-1.45-.05H5.3c-.22.04-.42-.01-.63-.14-.06-.2-.06-.36.01-.51m2.38 1.73a.24.24 0 0 1-.15.06c-.07 0-.14-.03-.21-.09-.15-.59-.06-.72-.01-.75.04-.03.08-.06.12-.08h.11l.29-.08c.07.06.12.19.14.39l-.31.49s0 .03.02.06m-3.43.16v-.01c.04-.44.13-.77.24-.91.32-.17.61-.21.85-.11.01 0 .01 0 .02.01l.76.06h.74c.06 0 .11.01.14.04.05.05.08.16.08.31l-.05.7c-.04.03-.08.06-.11.1-.06.06-.1.13-.14.2-.1 0-.23 0-.42.06-.55.17-1.17.07-1.77-.03-.15-.02-.29-.05-.43-.06zm2.32 1.34v.25l-.07.31c-.25.19-.56.29-.97.31l-1.12-.07c-.03-.06-.11-.14-.31-.18-.15-.03-.21.01-.26.04-.01-.01-.02-.01-.04-.03-.05-.04-.1-.17-.11-.42-.02-.43.09-.95.22-1.08.02-.02.04-.04.07-.05 0 .02 0 .04.01.05.01.02.03.03.05.03.16.02.33.05.51.07.36.06.74.12 1.12.12.24 0 .48-.03.7-.09.1.07.19.16.28.31zm1.26-.4-.03.08-.26.78c-.21.28-.36.41-.47.41-.1 0-.21-.1-.34-.3v-.55l.11-.56v-.02c-.01-.07.01-.16.04-.24.12-.01.2-.06.29-.24 0-.01.01-.02.01-.03l.01-.09c.06-.03.12-.05.19-.04h.01l.41-.04.18.09c.06.21-.03.44-.15.75m1.58-1.84-.23.26c-.52.48-.88.73-1.05.73l-.23-.25c.02-.02.03-.04.05-.05 0-.01.01-.01.01-.02l.18-.43c0-.01.01-.02.01-.03l.06-.09c.11-.1.24-.2.35-.29.14-.11.26-.2.32-.27.03.01.05.01.08.01h.02l.13-.02c.1.03.19.08.27.15.01.01.02.03.04.04v.26zm1.4.61-.71-.36c-.18-.1-.36-.16-.53-.17V10l.54-.12.68.2.3.22.03.47c-.19.1-.29.18-.31.26m.66.54-.43-.43.22-.26c.06-.02.12-.05.2-.08l.01.01c.18.32.61.49.97.62.07.03.14.05.2.08.01 0 .01 0 .02.01.09.14.05.25 0 .33l-.01.01c-.08.02-.16.07-.22.15l-.18.14-.13.1zm1.5 1.85c-.23 0-.31-.12-.4-.26-.01-.02-.03-.04-.04-.06-.02-.03-.05-.06-.07-.09-.13-.16-.3-.37-.31-.58l.18-.14.38-.28c.06 0 .12.02.19.06 0 .03.01.07.02.1l.22.61v.01l.12.23.04.18zm2.34-.33-.44.25c-.4.04-.86.07-1.31-.06l-.28-.55-.21-.6c-.02-.09-.04-.22.02-.28.05-.05.15-.06.3-.04h.02l.86-.12.59.04.36.14.19.35c.02.37-.02.66-.1.87M3.02 1.03c-.04-.04-.09-.04-.13 0-.04.04-.04.09 0 .13l3.64 3.72.13-.13zm10.88.19c.03-.04.03-.1 0-.13-.04-.03-.1-.03-.13 0l-2.94 3.15.13.13z" /></symbol>'});Me().add(Vu);const Au=Vu;var Lu=new(_e())({id:"influxDB",use:"influxDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="influxDB"><path d="M16.68 10.76 14.9 3.78a.76.76 0 0 0-.53-.54L7.43 1.28a.78.78 0 0 0-.74.19L1.53 6.5a.79.79 0 0 0-.21.73l1.78 6.99c.07.26.27.47.53.54l6.94 1.95a.75.75 0 0 0 .74-.19l5.16-5.03c.19-.18.27-.46.21-.73m-4.02-6.42-2.39.8-1.46-1.89zm-1.54 6.71-4.79-1.8 3.6-3zM7.44 2.87l.14.04 2.04 2.62L5.56 8.9 3.1 7.1zM3.1 8.04l2.03 1.49-.94 2.81zm7.48 7.07-.02.02-5.94-1.67 1.2-3.59 5.41 2.03zm.97-.94.44-2.18 2.17-.36zm.4-2.94-1.35-5.4 3-1 1.5 5.88z" /></symbol>'});Me().add(Lu);const Du=Lu;var Fu=new(_e())({id:"ipfs",use:"ipfs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipfs"><path d="M2.05 13.09 8.81 17V9.19L2.05 5.28zm.47-6.74c.08-.04.16-.08.23-.13l4.91 2.83c-.06.51.22 1 .7 1.21v5.67c-.08.04-.16.08-.23.13l-4.91-2.83c.06-.51-.22-1-.7-1.21zm1.07 6.66 4.39 2.53v-5.06c-.42-.27-.68-.72-.7-1.22L2.89 6.73v5.07c.41.27.67.72.7 1.21M9 2.54c-.25 0-.49-.06-.7-.17L3.91 4.91 8.3 7.44c.22-.11.45-.17.7-.17.25 0 .49.06.7.17l4.39-2.53L9.7 2.37c-.22.11-.46.17-.7.17m1.02 7.94v5.03l4.39-2.53c.02-.5.28-.95.7-1.22V6.7l-4.39 2.56c-.02.5-.28.95-.7 1.22M9 1 2.23 4.91 9 8.81l6.77-3.91zm-.7 6.87L3.39 5.04c.01-.09.01-.18 0-.26L8.3 1.94c.41.31.98.31 1.39 0l4.91 2.83c-.01.09-.01.18 0 .26L9.69 7.87c-.41-.31-.97-.31-1.39 0m.89 1.32V17l6.77-3.91V5.28zm6.29 2.8c-.47.21-.75.69-.7 1.21l-4.91 2.83c-.07-.05-.15-.1-.23-.13l-.01-5.63c.47-.21.75-.69.7-1.21l4.91-2.86c.07.05.15.1.23.13v5.66z" /></symbol>'});Me().add(Fu);const Iu=Fu;var Tu=new(_e())({id:"ipvs",use:"ipvs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipvs"><path d="M1.63 13.18 8.24 17V9.41L1.63 5.59zm2.3-5 .6 2.6c.18.8.31 1.39.41 2l.02.01c.09-.45.23-.91.42-1.51L6 9.37l1.17.68-1.57 4.17-1.36-.78L2.7 7.47zM9.02 1 2.45 4.8l6.61 3.82 6.57-3.8zM5.05 4.47 8.46 2.5l1.17.68-3.41 1.97zm7.15 1.48c-.77.45-1.74.31-2.5-.13l-.53-.31L8 6.18l-1.14-.66 3.41-1.97 1.71.99c.8.46.9 1.02.22 1.41M9.76 9.41V17l6.61-3.82V5.59zm3.32 4.5c-1.17.67-1.8.4-1.9-.5l1.14-.66c.09.42.38.44.84.18.44-.25.63-.55.63-.87 0-.37-.21-.39-.92-.17-1.27.39-1.54.01-1.54-.67 0-.89.58-1.87 1.71-2.52 1.24-.71 1.73-.26 1.79.48l-1.13.66c-.04-.26-.16-.49-.68-.2-.33.19-.53.46-.53.76s.17.33.86.12c1.32-.4 1.61-.01 1.61.72-.01.94-.64 1.95-1.88 2.67m-2.1-9.08-.32-.18-.74.42.33.19c.26.15.55.18.8.04.25-.15.2-.32-.07-.47" /></symbol>'});Me().add(Tu);const Ru=Tu;var Nu=new(_e())({id:"kubernetes",use:"kubernetes-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="kubernetes"><path d="M8.18 8.14c.15 0 .28-.12.28-.27l.08-1.66-.33.07c-.58.13-1.11.43-1.54.84l1.37.98c.06.03.09.04.14.04m1.31-.11c.08.12.25.13.36.07l1.36-.96c-.5-.5-1.14-.81-1.87-.89l.1 1.67c0 .04.02.08.05.11M7.46 9.22a.27.27 0 0 0-.03-.38L6.2 7.75a3.52 3.52 0 0 0-.48 2.02l1.6-.47c.07-.01.1-.03.14-.08m1.06.58.45.22.45-.22.12-.48-.31-.4h-.5l-.31.4zm1.68.48c-.12.05-.18.18-.15.31l.65 1.56c.4-.25.75-.6.99-.99.13-.18.23-.4.31-.63l-1.66-.28c-.04 0-.09.01-.14.03m-2.65-.02-1.64.28c.23.66.7 1.24 1.28 1.62l.63-1.52c.03-.05.03-.12.02-.17-.02-.12-.15-.21-.29-.21m7.42-5.15a1.03 1.03 0 0 0-.53-.61L9.39 2.08A.859.859 0 0 0 8.98 2c-.13 0-.28 0-.41.03L3.51 4.47c-.25.12-.43.33-.5.61l-1.24 5.45c-.05.28.02.56.18.79l3.49 4.32c.2.2.48.33.76.35h5.56c.3.03.58-.1.76-.35l3.49-4.32c.17-.23.23-.51.2-.79zm-.81 5.78c-.03 0-.05 0-.08-.02-.02-.02-.02-.02-.03-.02-.03 0-.05-.02-.07-.02-.07-.02-.12-.05-.18-.08-.03 0-.07-.02-.1-.03h-.02c-.17-.07-.35-.12-.53-.15h-.02c-.05 0-.1.02-.13.05 0 0 0 .02-.02.02l-.13-.02c-.3.94-.94 1.74-1.79 2.25l.05.13s-.02 0-.02.02c-.03.05-.03.12-.02.17.07.17.15.33.26.48v.03c.03.03.05.05.07.08.05.05.08.1.12.17.02.02.03.03.03.05 0 0 .02 0 .02.02.03.08.03.17.02.25-.01.08-.08.15-.15.18-.05.02-.08.03-.13.03-.13 0-.25-.08-.31-.2-.02 0-.02-.02-.02-.02-.02-.02-.02-.03-.03-.05-.03-.05-.05-.12-.07-.18l-.03-.1v-.02c-.05-.18-.13-.35-.22-.51a.256.256 0 0 0-.13-.1c0-.02 0-.02-.02-.02l-.07-.12c-.17.05-.35.12-.53.15-.3.08-.6.12-.89.12-.5 0-.98-.08-1.44-.26l-.07.13c0 .02 0 .02-.02.02-.05.02-.1.05-.13.1-.08.17-.17.33-.22.51l-.03.1c-.02.07-.05.12-.07.18-.02.02-.03.03-.03.05-.02 0-.02.02-.02.02-.07.12-.18.2-.31.2-.03 0-.08-.02-.12-.03A.334.334 0 0 1 6.4 14c.02 0 .02-.02.02-.02.02-.02.02-.03.03-.05.05-.07.08-.13.12-.17a.5.5 0 0 0 .07-.08v-.02c.1-.15.2-.31.26-.48.02-.05.02-.12-.02-.17 0 0-.02 0-.02-.02l.08-.12c-.17-.08-.3-.18-.45-.3-.65-.5-1.11-1.18-1.36-1.94l-.15.02s0-.02-.02-.02a.19.19 0 0 0-.13-.05h-.02c-.2.03-.36.08-.55.15h-.02c-.03 0-.07.02-.1.03-.05.02-.12.05-.18.07-.02 0-.07-.02-.07 0s0 .02-.02.02c-.03.02-.05.02-.08.02-.15.02-.3-.08-.33-.23-.03-.18.08-.35.26-.38.02-.02.02-.02.03-.02.03 0 .05-.02.07-.02.07 0 .13-.02.2-.02.03-.02.07-.02.1-.02.2-.02.38-.05.56-.1.05-.03.1-.07.12-.12 0 0 .02 0 .02-.02l.13-.03c-.15-.94.07-1.9.58-2.72.02-.03.03-.05.05-.08l-.1-.1v.02c.02-.05-.02-.12-.05-.15-.13-.13-.3-.23-.46-.33-.03-.02-.07-.03-.1-.05-.07-.03-.13-.07-.18-.1-.02 0-.05-.03-.05-.03s0-.02-.02-.02c-.13-.12-.17-.31-.07-.46.05-.08.13-.12.23-.12.08 0 .17.03.23.08l.02.02c.02.02.03.02.05.03.05.05.08.1.13.15.02.02.05.03.07.07.12.13.27.26.41.38.03.02.07.03.1.03s.05-.02.07-.02h.02l.1.07c.55-.58 1.26-.99 2.04-1.16.2-.03.38-.07.56-.08l.02-.13v-.03c.05-.03.07-.08.08-.13 0-.2 0-.38-.03-.56v.01c0-.03 0-.07-.02-.1a.693.693 0 0 1-.03-.2v-.08c0-.08.03-.17.1-.23.08-.08.18-.13.28-.12.17.02.3.18.28.35v.1c-.02.07-.02.13-.03.2 0 .03-.02.07-.02.1v.02c-.03.2-.03.38-.03.56.02.05.03.1.08.13v-.02l.02.13c.78.08 1.54.38 2.15.86.13.13.28.26.41.4l.13-.08h.02c.02.02.05.02.07.02.03 0 .07-.02.1-.03.15-.1.3-.23.41-.36.02-.02.05-.03.07-.07.03-.05.08-.1.13-.15.02 0 .03-.02.05-.03l.02-.02a.4.4 0 0 1 .23-.08c.08 0 .18.05.23.12.12.15.08.35-.07.46 0 .02.02.02 0 .03-.02.02-.03.02-.05.03-.07.03-.12.07-.18.1-.03.02-.07.03-.1.05-.17.1-.31.2-.46.33-.03.03-.05.1-.05.15v.02l-.1.1c.26.41.46.88.58 1.36.1.48.13.98.07 1.46l.13.03c.02.05.07.1.12.12.18.05.38.08.56.1h.02c.03.02.07.02.1.02.07 0 .13 0 .2.02.03 0 .07 0 .07.02s.02.02.03.02c.15.03.28.17.3.35-.03.1-.16.2-.31.2m-2.45-3.14-1.24 1.13c-.03.03-.05.07-.07.12-.03.15.05.3.2.33l1.57.45c.03-.35.02-.7-.07-1.04-.07-.36-.21-.7-.39-.99m-2.65 3.23c-.12-.07-.25-.03-.33.07l-.81 1.47c.33.1.7.17 1.04.17.25 0 .48-.03.71-.08.12-.03.22-.05.31-.07l-.79-1.44a.474.474 0 0 0-.13-.12" /></symbol>'});Me().add(Nu);const Uu=Nu;var Gu=new(_e())({id:"lighthttpd",use:"lighthttpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd"><path d="M3.67 14.86v.01l1.02-.92-.48-.32zM17.49 2 .51 10.14l1.89 1.65 14.92-9.67-14.63 9.92.98 2.83.36-1.82zL4.38 13.25l-.01.03L8.43 16z" /></symbol>'});Me().add(Gu);const Wu=Gu;var qu=new(_e())({id:"lighthttpd2",use:"lighthttpd2-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd2"><path d="M16.97 2 1.03 6.92l3.5 3.76L16.8 2.11 4.82 10.93l.97 2.81.36-1.81zL6.5 12.13l-.01.03 6.8 3.84zm-4.03 10.71v.71h-2.43v-.8c0-.7.57-1.27 1.27-1.27h.2c.18 0 .32-.14.32-.32s-.14-.32-.32-.32h-.61c-.08 0-.14.06-.14.14v.07h-.71v-.07c0-.47.39-.86.86-.86h.61a1.04 1.04 0 1 1 0 2.08h-.2c-.31 0-.55.25-.55.55v.09zM5.8 13.73v.01l1.01-.92-.47-.32z" /></symbol>'});Me().add(qu);const Ku=qu;var Ju=new(_e())({id:"liteSpeed",use:"liteSpeed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="liteSpeed"><path d="M8.2 10.92 6.5 9.23a.398.398 0 0 1 0-.57l.49-.49-.33-.47a.532.532 0 0 1 .11-.72l3.84-2.95V1L2.95 8.67c-.16.16-.16.41 0 .57l3.68 3.68zm2.78-.51L9.13 7.75c-.08-.11-.07-.29.01-.4l3.37-4.28c.05-.06.06-.1.05-.1-.01 0-.04.02-.09.05L7.05 7.19c-.11.08-.13.24-.06.36l1.88 2.7c.08.11.07.29-.01.4l-3.37 4.27c-.05.06-.06.1-.04.1.01 0 .04-.02.09-.05l5.42-4.16c.1-.08.06-.33.02-.4m4.07-1.64-3.68-3.68L9.8 7.08l1.69 1.69c.16.16.16.41 0 .57l-.49.49s.33.49.34.52c.08.15.09.51-.12.67l-3.84 2.95V17l7.67-7.66c.16-.16.16-.41 0-.57" /></symbol>'});Me().add(Ju);const Qu=Ju;var $u=new(_e())({id:"lxc",use:"lxc-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lxc"><path d="M8.69 6.35 4.96 4.26l-3.58 2 3.74 2.09zM5.26 9.59l3.59-2.01V6.6L5.26 8.61zm7.48 0v-.98l-3.59-2v.98zm-7.78.17V8.61L1.22 6.52v1.19l3.7 2.07zm11.66-3.5L9 2 5.26 4.09l7.62 4.26zm-3.58 5.21h-.07l-3.84 2.15V16l7.65-4.28V9.34l-3.74 2.09zm-.3-.22v-.94l-3.61 2.02v.94zm.3-2.64v2.47l3.74-2.09V6.52zM1.22 11.72 8.87 16v-2.39L1.22 9.34zm11.52-1.79L9 7.84 5.26 9.93v.04L9 12.06l3.74-2.09zM1.22 8.99l7.65 4.28v-.94L1.22 8.06z" /></symbol>'});Me().add($u);const Yu=$u;var Zu=new(_e())({id:"mariaDB",use:"mariaDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mariaDB"><path d="M16.82 3.09c-.9.3-1.21-.3-2.41 0-1.21.3-1.51 2.98-3.02 3.87-1.51.89-3.92.6-5.43 1.79-1.51 1.19-1.81 3.28-2.41 3.28-.6 0-1.21-.3-2.11-.3-.9 0-.9 0-.9.3s1.21.89 1.21 1.19c0 .3-.91.89-.91 1.49s1.51 0 2.11-.3c.6-.3 1.81-1.49 2.71-1.49.9 0 2.41.6 3.32.6.41 0 .57-.06.63-.13.07-.08.88-.77.88-1.36 0 0 0 1.19-.6 1.79-.6.6-1.21 1.19-.9 1.19.3 0 3.02 0 3.32-2.98.15-1.51.3 0 .3 0l-.3.6s2.41-1.49 2.71-2.68c.3-1.19-.3-2.68.6-3.28.9-.6 1.81-1.49 1.81-1.79-.01-.3.29-1.2-.61-1.79M15.39 4.3c-.04.07-.11.13-.17.17-.13.08-.25.1-.4.07-.05-.02-.06-.05-.06-.07 0-.02 0-.04.01-.06.02-.07.03-.11.06-.15.03-.03.07-.06.13-.08.11-.04.24-.04.35-.03.05 0 .09-.01.1.05.01.02-.01.07-.02.1" /></symbol>'});Me().add(Zu);const Xu=Zu;var ed=new(_e())({id:"memCached",use:"memCached-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="memCached"><path d="M11.46 2H6.54C2.57 2 2 2.57 2 6.54v4.92C2 15.43 2.57 16 6.54 16h4.93c3.97 0 4.54-.57 4.54-4.54V6.54C16 2.57 15.43 2 11.46 2M8.07 13.08c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51m1.86 0c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51m3.38 0h-2.15c.2-1.09.94-6.06.33-6.08-.33.05-1.82 4.22-1.82 4.22s-.33-.04-.66-.04-.66.04-.66.04S6.84 7.06 6.52 7c-.61.02.12 4.99.33 6.08H4.69S4.33 9 5.02 4.64h1.99c.38 0 1.82 2.53 1.99 2.53.17 0 1.61-2.53 1.99-2.53h1.99c.69 4.36.33 8.44.33 8.44" /></symbol>'});Me().add(ed);const td=ed;var nd=new(_e())({id:"mongoDB",use:"mongoDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mongoDB"><g clip-path="url(#mongoDB_a)"><path d="M8.9.07c-.04.27-.12.47-.38.7-.64.57-3.35 2.78-3.58 7.57-.2 4.29 3.01 7 3.67 7.45.22-.63.34-1.3.42-2.33.11-4.19.11-10.81-.13-13.39m.16 14.6c-.07.45-.17.82-.29 1.18l-.06.17c.05.35.15 1.15.23 1.99h.36c.08-.76.21-1.51.38-2.25l-.02-.01c-.27-.14-.48-.52-.6-1.08m3.86-7.58C11.97 2.88 9.97 1.76 9.47.96 9.28.65 9.12.33 8.97 0c0 .04.01.09.01.13.04.29.07.79.09 1.4.09 2.02.12 4.96.1 7.74.02.88.01 1.75-.03 2.63-.01.64-.02 1.26-.04 1.82.05 1.05.29 1.71.62 1.87l.04.02c1.69-1.2 3.9-4.24 3.16-8.52" /></g><defs><clipPath id="mongoDB_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'});Me().add(nd);const rd=nd;var od=new(_e())({id:"mySQL",use:"mySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL"><path d="M16.06 14.8c-.14-.14-.3-.27-.46-.39-.05-.04-.08-.06-.12-.09.13-.02.26-.05.39-.07.17-.02.36-.03.5-.04l1.27-.02-.6-1.08c-.5-.9-1.21-1.46-1.92-1.94-.36-.24-.72-.45-1.1-.64-.31-.16-.61-.3-.93-.43-.51-.67-.79-1.54-1.2-2.53a10.57 10.57 0 0 0-1.79-2.89c-.75-.85-1.58-1.6-2.53-2.23-.47-.31-1.01-.61-1.59-.79-.5-.16-.97-.26-1.54-.28-.41-.32-.85-.61-1.38-.81C2.72.47 2.38.39 1.98.4 1.62.41 1.19.51.81.82c-.27.18-.46.49-.52.76-.07.28-.05.53-.01.75.09.44.28.8.6 1.12.2.19.25.21.36.31.09.08.16.15.21.21.09.11.12.2.15.4.09.68.3 1.24.52 1.8.12.29.23.55.44.89.05.06.07.1.14.18.04.04.09.09.14.12-.26.65-.29 1.25-.32 1.83-.01.36 0 .71.04 1.06.04.37.06.67.2 1.14.16.44.36.76.64 1.09.14.16.3.32.52.46.22.14.52.28.92.26.4-.04.7-.19.96-.51.18.22.37.44.56.65.64.62 1.33 1.17 2.06 1.65 1.46.95 3.02 1.67 4.67 2.15l.22-.62c-1.46-.71-2.85-1.61-4.09-2.61-.62-.51-1.18-1.07-1.69-1.65-.52-.58-.93-1.21-1.37-1.83l-.93-1.29-.44 1.38-.02.05c-.14.44-.13.8-.15 1.03-.03-.03-.07-.06-.09-.1-.15-.16-.29-.41-.35-.58-.05-.16-.1-.51-.13-.79-.03-.3-.04-.6-.03-.9.01-.58.1-1.2.3-1.52l.2-.33-.15-.34c-.09-.21-.17-.35-.31-.54-.07-.09-.15-.19-.27-.28-.08-.13-.2-.38-.29-.61-.19-.48-.37-.99-.43-1.44-.04-.36-.2-.82-.48-1.15-.25-.31-.57-.54-.67-.63a.801.801 0 0 1-.19-.35c0-.02-.01-.04-.01-.06l.04-.03s.08-.05.23-.05c.15 0 .34.03.53.1.39.14.77.39 1.13.7l.23.2.33-.01a4 4 0 0 1 1.26.21c.43.14.83.35 1.24.63.81.54 1.58 1.21 2.22 1.96.65.74 1.15 1.57 1.54 2.5.39.89.71 2.05 1.51 3.01l.13.15.19.07c.32.12.68.29 1 .46.33.17.65.35.96.56.22.15.43.31.63.48-.4.1-.81.23-1.21.46l-.61.35.31.64.01.01c.17.32.3.44.47.6.16.15.33.27.51.37.17.1.38.2.52.25.14.05.27.11.4.18.26.14.51.31.72.5.22.23.5.49.75.72l.42-.29c-.14-.33-.26-.63-.43-.96-.16-.37-.4-.68-.69-.95M.73.89C.76.86.79.85.82.82L.84.8zM5.2 5.51c.47-.39.16-1.1-.63-1.02.4.24.63.87.63 1.02" /></symbol>'});Me().add(od);const ad=od;var id=new(_e())({id:"mySQL_press",use:"mySQL_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL_press"><path d="M16.45 16.06s-.39-.63-1.26-1.1c-.87-.47-1.1-.94-1.1-.94.94-.55 2.28-.55 2.28-.55-.87-1.65-3.78-2.75-3.78-2.75-1.02-1.26-1.02-2.44-2.13-4.25C9.36 4.65 7.48 3.15 6.3 2.6c-1.18-.55-2.13-.47-2.13-.47-1.26-1.1-2.44-1.18-2.91-.71-.47.32-.24 1.18.23 1.58.47.4.79.63.87 1.34.08.71.71 2.28.94 2.44.24.16.39.55.39.55-.63 1.02-.39 3.23-.24 3.78.16.55.87 1.57 1.5 1.34.63-.24.31-1.02.55-1.65 2.13 4.09 7.71 6.06 7.71 6.06H17zM4.8 4.81c0-.16-.24-.79-.63-1.02.79-.08 1.1.62.63 1.02" /></symbol>'});Me().add(id);const ld=id;var cd=new(_e())({id:"nginx",use:"nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx"><path d="M10.75 6c-.41 0-.75.34-.75.75v2.31L7.84 6.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V8.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75m4.19-1.78-4.77-2.76c-.35-.2-.76-.31-1.16-.31-.4 0-.81.11-1.16.31L3.06 4.23c-.72.41-1.16 1.19-1.16 2.02v5.51c0 .83.45 1.6 1.17 2.02l4.77 2.76c.35.2.76.31 1.16.31.41 0 .81-.11 1.16-.31l4.78-2.76c.72-.41 1.16-1.19 1.16-2.02V6.24c.01-.83-.44-1.6-1.16-2.02m-.33 7.54c0 .3-.16.57-.41.72l-4.78 2.76c-.13.07-.27.11-.41.11-.14 0-.29-.04-.41-.11l-4.78-2.76a.819.819 0 0 1-.41-.72V6.24c0-.3.16-.57.41-.72L8.6 2.76c.13-.07.27-.11.41-.11.14 0 .29.04.41.11l4.78 2.76c.26.15.41.42.41.72z" /></symbol>'});Me().add(cd);const sd=cd;var ud=new(_e())({id:"nginx_local",use:"nginx_local-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_local"><path d="m9 17 2-2H7zm1.75-12c-.41 0-.75.34-.75.75v2.31L7.84 5.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V7.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75m2.77-1.21-3.13-1.81c-.42-.24-.9-.37-1.39-.37-.49 0-.97.13-1.39.37L4.48 3.79c-.86.49-1.39 1.41-1.39 2.4V9.8c0 .99.53 1.91 1.39 2.41l3.13 1.81c.42.24.9.37 1.39.37.49 0 .97-.13 1.39-.37l3.13-1.81a2.78 2.78 0 0 0 1.39-2.41V6.19c0-.99-.53-1.91-1.39-2.4m-.11 6.02c0 .46-.24.88-.64 1.11l-3.13 1.81c-.2.11-.42.17-.64.17-.22 0-.44-.06-.64-.17l-3.13-1.81c-.4-.23-.64-.65-.64-1.11V6.19c0-.46.24-.88.64-1.11l3.13-1.81c.2-.11.42-.17.64-.17.22 0 .44.06.64.17l3.13 1.81c.4.23.64.65.64 1.11z" /></symbol>'});Me().add(ud);const dd=ud;var hd=new(_e())({id:"nginx_plus",use:"nginx_plus-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_plus"><path d="M15.55 4.62 9.52 1.14a1.02 1.02 0 0 0-1.04 0L2.45 4.62c-.32.19-.52.53-.52.9v6.96c0 .37.2.71.52.9l6.03 3.48c.32.19.72.19 1.04 0l6.03-3.48c.32-.19.52-.53.52-.9V5.52c0-.37-.2-.71-.52-.9m-6.43 6.49c0 .24-.14.46-.37.55-.07.03-.15.05-.23.05-.15 0-.31-.06-.42-.17L4.6 8.03v3.09a.591.591 0 0 1-1.18 0V6.6c0-.24.14-.46.37-.55.22-.09.48-.04.65.13l3.51 3.51V6.6a.591.591 0 0 1 1.18 0v4.51zm5.23-1.75h-1.53v1.53a.56.56 0 1 1-1.12 0V9.36h-1.53a.56.56 0 1 1 0-1.12h1.53V6.7a.56.56 0 1 1 1.12 0v1.53h1.53c.31 0 .56.25.56.56 0 .31-.25.57-.56.57" /></symbol>'});Me().add(hd);const vd=hd;var md=new(_e())({id:"ntpd",use:"ntpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76M4.5 7c0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5S4.5 9.48 4.5 7m5.25-.31V4.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v2.81l1.24 1.24c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06z" /></symbol>'});Me().add(md);const gd=md;var fd=new(_e())({id:"nvidia",use:"nvidia-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nvidia"><path d="M2.635 8.558S4.08 6.423 6.97 6.203v-.775C3.77 5.685 1 8.395 1 8.395s1.57 4.536 5.97 4.951v-.823c-3.23-.406-4.335-3.965-4.335-3.965m4.335 2.328v.754c-2.44-.435-3.118-2.972-3.118-2.972S5.023 7.37 6.97 7.159v.827h-.004c-1.021-.123-1.82.831-1.82.831s.448 1.607 1.824 2.07M6.97 4v1.428c.094-.007.188-.013.282-.016 3.637-.123 6.007 2.983 6.007 2.983s-2.722 3.31-5.557 3.31c-.26 0-.504-.024-.732-.065v.883c.195.025.398.04.61.04 2.638 0 4.547-1.348 6.394-2.943.307.245 1.561.842 1.819 1.104-1.757 1.47-5.852 2.656-8.173 2.656-.224 0-.439-.013-.65-.034v1.241H17V4zm0 3.16v-.957c.093-.007.186-.012.282-.015 2.616-.082 4.332 2.248 4.332 2.248S9.73 11.01 7.743 11.01c-.286 0-.542-.046-.773-.124v-2.9c1.018.123 1.223.573 1.835 1.594l1.362-1.149s-.994-1.303-2.67-1.303c-.182 0-.356.013-.527.031" /></symbol>'});Me().add(fd);const pd=fd;var wd=new(_e())({id:"ntpd_press",use:"ntpd_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd_press"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76m-7-7.19V4.5c0-.41.34-.75.75-.75s.75.34.75.75v2.19l.8.8c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22z" /></symbol>'});Me().add(wd);const bd=wd;var yd=new(_e())({id:"openStack",use:"openStack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openStack"><path d="M12.5 12.01c0 .27-.22.49-.49.49H5.99a.49.49 0 0 1-.49-.49v-.21H2v3.38c0 .45.37.82.82.82h12.36c.45 0 .82-.37.82-.82V11.8h-3.5zm-7-4.41H2v2.8h3.5zM15.18 2H2.82c-.45 0-.82.37-.82.82V6.2h3.5v-.21c0-.27.22-.49.49-.49h6.03c.27 0 .49.22.49.49v.21h3.5V2.82a.839.839 0 0 0-.83-.82m-2.68 8.4H16V7.6h-3.5z" /></symbol>'});Me().add(yd);const xd=yd;var Od=new(_e())({id:"openWrt",use:"openWrt-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openWrt"><path d="M3.69 8.36c-.12 0-.22.04-.29.13-.07.08-.11.22-.11.42 0 .19.04.33.11.41.07.08.17.13.29.13.13 0 .23-.04.3-.12.07-.08.1-.23.1-.44 0-.18-.04-.31-.11-.39-.07-.1-.16-.14-.29-.14M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7M4.58 9.43c-.08.14-.18.25-.33.33-.14.08-.32.12-.53.12-.22 0-.4-.03-.54-.1a.773.773 0 0 1-.34-.33c-.1-.14-.14-.33-.14-.55 0-.31.09-.55.26-.73.17-.17.42-.26.73-.26.32 0 .57.09.74.26.17.17.26.41.26.72 0 .22-.04.4-.11.54m1.76.27c-.11.12-.25.18-.42.18-.08 0-.16-.01-.22-.04a.567.567 0 0 1-.18-.12v.66h-.54V8.47h.5v.2c.07-.09.13-.14.19-.17.08-.04.16-.06.26-.06.19 0 .33.07.43.21.1.14.15.32.15.53 0 .23-.06.4-.17.52m1.97-.41H7.24c.01.08.03.15.07.19.05.06.12.09.2.09.05 0 .1-.01.15-.04.03-.02.06-.05.09-.09l.53.05c-.08.14-.18.24-.29.3-.11.06-.28.09-.49.09-.18 0-.33-.03-.44-.08a.568.568 0 0 1-.26-.25.744.744 0 0 1-.1-.4c0-.22.07-.39.21-.52.14-.13.33-.2.58-.2.2 0 .36.03.47.09.12.06.2.15.26.26.06.11.09.26.09.44zm1.71.56h-.54v-.76c0-.09-.02-.15-.05-.18-.03-.04-.08-.05-.14-.05-.06 0-.12.02-.16.07-.04.05-.06.14-.06.26v.66h-.53V8.47h.5v.23c.07-.09.15-.16.22-.2.08-.04.17-.06.28-.06.15 0 .26.04.35.13.08.09.12.22.12.4v.88zm2.42 0h-.58l-.34-1.2-.33 1.2h-.59l-.43-1.91h.56l.2 1.06.3-1.06h.56l.3 1.07.2-1.07h.56zm1.52-.96a.336.336 0 0 0-.15-.04.18.18 0 0 0-.16.09c-.06.08-.08.23-.08.45v.46h-.54V8.47h.5v.23c.05-.1.1-.17.15-.2.05-.04.11-.06.19-.06s.17.02.26.07zm.68.94a.339.339 0 0 1-.14-.15.875.875 0 0 1-.05-.33v-.49h-.2v-.39h.2v-.25l.53-.27v.52h.29v.39h-.29v.49c0 .06.01.1.02.12.02.03.05.04.09.04.04 0 .09-.01.17-.03l.04.37c-.13.03-.25.04-.37.04-.13 0-.23-.02-.29-.06M7.5 8.75c-.08 0-.15.03-.2.1-.03.04-.05.1-.06.19h.53c-.01-.1-.04-.18-.08-.22a.294.294 0 0 0-.19-.07m-1.75.08c-.07 0-.12.03-.17.08-.05.05-.07.14-.07.26 0 .11.02.19.07.24.05.05.1.08.18.08.06 0 .11-.02.16-.08.04-.05.06-.14.06-.26 0-.11-.02-.2-.07-.25a.213.213 0 0 0-.16-.07" /></symbol>'});Me().add(Od);const Bd=Od;var Cd=new(_e())({id:"pan",use:"pan-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pan"><path d="M9 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2m6.624-2.416a.75.75 0 1 0-1.248.832l1.223 1.834h-1.674C13.56 5.847 11.504 4 9 4S4.44 5.847 4.076 8.25H2.401l1.223-1.834a.75.75 0 0 0-1.248-.832L.099 9l2.277 3.416a.75.75 0 0 0 1.248-.832L2.401 9.75h1.674C4.44 12.153 6.496 14 9 14s4.56-1.847 4.924-4.25h1.674l-1.223 1.834a.75.75 0 0 0 1.248.832L17.901 9zM9 12.5c-1.93 0-3.5-1.57-3.5-3.5S7.07 5.5 9 5.5s3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5" /></symbol>'});Me().add(Cd);const _d=Cd;var zd=new(_e())({id:"pandas",use:"pandas-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pandas"><path d="M6.81 1.946h1.748v3.63H6.81zm0 7.458h1.748v3.631H6.81zm0-2.768h1.748V8.35H6.81zM4 4.931H5.75V17H4zM9.56 12.4h1.75v3.63H9.56zm0-7.465h1.75v3.63H9.56zm0 4.691h1.75v1.713H9.56zM12.311 1h1.749v12.07H12.31z" /></symbol>'});Me().add(zd);const Md=zd;var Ed=new(_e())({id:"percona",use:"percona-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="percona"><path d="M9 2C5.13 2 2 5.13 2 9c0 2.38 1.19 4.48 3 5.74V9c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4c-.95 0-1.81-.35-2.5-.9v3.44c.78.3 1.62.47 2.5.47 3.87 0 7-3.13 7-7S12.87 2 9 2m2.5 7a2.5 2.5 0 0 0-5 0 2.5 2.5 0 0 0 5 0" /></symbol>'});Me().add(Ed);const Sd=Ed;var kd=new(_e())({id:"pfSense",use:"pfSense-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pfSense"><path d="m11.86 6.83.53-1.8c.38-1.3 1.57-2.19 2.92-2.19H16c0-.46-.38-.84-.84-.84H2.84c-.46 0-.84.38-.84.84V13.5l1.68-6.67h2.1l-.21.85c.86-.76 1.9-1.19 2.87-1.1 1.7.17 2.5 1.92 1.78 3.92s-2.68 3.48-4.38 3.31c-.69-.07-1.23-.4-1.58-.9L3.47 16h11.69c.46 0 .84-.38.84-.84V4.8h-.69c-.48 0-.91.32-1.04.78l-.37 1.25h1.26l.35.84-.84.84h-1.26l-1.5 5.11H9.87l1.5-5.11h-.75l.49-1.68zm-3.75 3.56c.36-1.02-.05-1.92-.93-2.01-.82-.09-1.76.57-2.17 1.5l-.19.77c-.05.75.36 1.34 1.05 1.41.87.1 1.87-.65 2.24-1.67" /></symbol>'});Me().add(kd);const jd=kd;var Hd=new(_e())({id:"php_fpm",use:"php_fpm-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="php_fpm"><path d="M2.32 8.49h-.37l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12m10.11.04h-.38l-.21 1.19h.34c.22 0 .39-.05.51-.14.11-.09.18-.24.22-.47.02-.07.02-.14.02-.2 0-.11-.02-.18-.07-.24-.07-.1-.22-.14-.43-.14M.82 6.67 0 11.33h8.32l.82-4.65H.82zm2.53 2.42c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.13.05-.3.07-.52.07h-.47l-.13.72H.98l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49 0 .08-.02.17-.03.27m2.27-.31-.23 1.26h-.55l.22-1.2c.01-.06.02-.11.02-.14 0-.06-.01-.11-.04-.13-.05-.05-.14-.07-.27-.07h-.44l-.29 1.55H3.5L4 7.33h.54l-.13.72h.48c.3 0 .51.06.63.17.09.08.12.2.12.35 0 .07 0 .14-.02.21m2.48.31c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.14.04-.3.07-.52.07H6.4l-.13.72h-.54l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49-.01.08-.02.17-.03.27m1.47-2.42-.82 4.65h8.43L18 6.67zm.83 3.49h-.58l.3-1.67h-.39l.07-.41h.39l.04-.21c.04-.21.11-.36.2-.43.09-.07.25-.11.47-.11h.52l-.07.4h-.26c-.09 0-.16.02-.21.04-.05.03-.07.08-.09.14l-.03.17h.52l-.07.41h-.51zm3.06-1.01c-.03.14-.07.27-.13.38-.06.11-.13.21-.22.3-.11.12-.23.2-.37.24-.14.05-.31.07-.52.07h-.47l-.13.75h-.55l.52-2.82h1.06c.32 0 .55.1.7.28.11.13.15.3.15.51-.01.1-.02.19-.04.29m3.41-.31-.24 1.32h-.56l.22-1.25c.01-.03.01-.05.02-.07 0-.02.01-.05.01-.08 0-.06-.01-.11-.03-.15-.05-.05-.14-.07-.28-.07h-.31l-.3 1.62h-.57l.29-1.62h-.64l-.3 1.62h-.56L14 8.09h2.12c.3 0 .52.06.64.18.08.09.12.21.12.37.01.06 0 .13-.01.2m-9.8-.35H6.7l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12" /></symbol>'});Me().add(Hd);const Pd=Hd;var Vd=new(_e())({id:"postgreSQL",use:"postgreSQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="postgreSQL"><path d="M6.05 10.28c-.55-.58-.8-1.37-.69-2.19.12-.88.08-1.65.05-2.07-.01-.1-.01-.19-.01-.24 0-.12-.05-2.62 1.4-4.07.01-.01.03-.02.04-.04-.87-.28-3.05-.85-4.37.09-.81.58-1.19 1.65-1.11 3.19.02.49.33 2.22.86 3.95.61 1.99 1.3 3.25 1.89 3.45.09.03.37.12.77-.36.57-.68 1.1-1.27 1.35-1.53-.07-.06-.12-.12-.18-.18m8.17-5.06c-.59-.07-1.27-.06-1.54.33-.52.75.5 2.58.93 3.36.11.2.19.35.23.44.04.1.09.19.13.27.3-.64.22-1.28.15-1.91-.04-.31-.08-.63-.07-.94.01-.32.05-.58.09-.83.04-.25.07-.47.08-.72m-.58.56c-.05.05-.15.14-.29.16h-.05c-.21 0-.38-.17-.4-.26-.02-.13.19-.22.4-.25.21-.03.43.01.45.13.01.06-.03.14-.11.22m-.14-3.17c.8.93 1.19 1.96 1.22 2.3.01.05 0 .1-.01.13.01.36-.03.66-.08.96-.04.24-.07.49-.08.77-.01.27.03.56.06.87.09.74.19 1.59-.32 2.43l.03.03c.02.03.04.05.06.08 1.99-3.13 2.68-6.76 2.05-7.56C14.94.71 12.65.91 11.55 1.14c.87.39 1.51.96 1.95 1.47m-5 8.54c-.14-.06-.21-.09-.38.1-.11.12-.19.22-.26.31-.31.39-.45.52-1.36.71-.19.04-.3.08-.36.11.07.05.2.11.34.14.67.17 1.6.18 2.24-.72.08-.11.05-.24.03-.31-.04-.16-.14-.29-.25-.34m5.91-.06c-.03-.02-.05-.04-.07-.05-.04.02-.08.03-.1.03-.23.07-.45.13-.42.72.19.18 1.4.16 2.07-.15.34-.16.58-.33.71-.46h-.01c-1.04.21-1.77.18-2.18-.09m-8-1.15c.35.36.81.57 1.28.57.05-.22.14-.46.24-.71l.04-.1c.05-.13.1-.25.16-.39.29-.64.65-1.44.23-3.35-.08-.37-.27-.58-.59-.66-.69-.16-1.66.36-1.87.55 0 .04.01.1.01.16.03.43.07 1.24-.06 2.17-.09.65.12 1.29.56 1.76m.79-4.22c0-.03.02-.07.07-.11.08-.06.25-.09.43-.06.11.02.22.05.29.09.14.08.15.16.14.21-.02.13-.22.3-.44.3h-.06a.578.578 0 0 1-.36-.22c-.02-.05-.08-.13-.07-.21m6.86 4.88c-.04-.05-.08-.11-.13-.17-.16-.2-.38-.48-.55-.89-.03-.06-.11-.21-.2-.38-.52-.94-1.61-2.89-.91-3.89.32-.46.96-.65 1.9-.55-.3-.87-1.64-3.46-4.72-3.51-.94-.02-1.71.27-2.29.86C6.24 3 6 4.46 5.93 5.24c.04-.02.09-.05.14-.07.23-.12.7-.32 1.21-.38.85-.09 1.41.29 1.58 1.07.45 2.08.04 3-.27 3.67-.06.12-.11.24-.15.35l-.04.1c-.09.24-.17.46-.22.65.22-.06.41.02.51.06.25.11.47.36.55.66l.03.15c.01.03.01.05.01.08-.06 2.08.02 3.97.19 4.39.26.65.65 1.22 1.76.98 1.07-.23 1.45-.62 1.63-1.65.14-.79.4-3.02.44-3.48-.03-.95.48-1.14.76-1.22" /></symbol>'});Me().add(Vd);const Ad=Vd;var Ld=new(_e())({id:"prometheus",use:"prometheus-usage",viewBox:"0 0 256 257",content:'<symbol xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" viewBox="0 0 256 257" id="prometheus"><path d="M128.001.667C57.311.667 0 57.971 0 128.664c0 70.69 57.311 127.998 128.001 127.998S256 199.354 256 128.664C256 57.97 198.689.667 128.001.667m0 239.56c-20.112 0-36.419-13.435-36.419-30.004h72.838c0 16.566-16.306 30.004-36.419 30.004m60.153-39.94H67.842V178.47h120.314v21.816h-.002zm-.432-33.045H68.185c-.398-.458-.804-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.716-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722-7.673-8.994-12.23-20.428-12.23-32.116 0-25.658 19.68-48.079 12.58-66.201 6.91.562 14.3 14.583 14.8 36.505 7.346-10.152 10.42-28.69 10.42-40.056 0-11.769 7.755-25.44 15.512-25.907-6.915 11.396 1.79 21.165 9.53 45.4 2.902 9.103 2.532 24.423 4.772 34.138.744-20.178 4.213-49.62 17.014-59.784-5.647 12.8.836 28.818 5.27 36.518 7.154 12.424 11.49 21.836 11.49 39.638 0 11.936-4.407 23.173-11.84 31.958 8.452-1.586 14.289-3.016 14.289-3.016l27.45-5.355c.002-.002-3.987 16.401-19.314 32.197" /></symbol>'});Me().add(Ld);const Dd=Ld;var Fd=new(_e())({id:"proxySQL",use:"proxySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="proxySQL"><path d="m3.26 8.13-.89-.75-.37.53.18.62zm-1.27-.21L2 7.91v-.02zm1.97 4.15H2.8l.05.64.54.36zm2.64 3.77-.01-.01h-.02zm-3.75-3.12v-.02l-.01-.01zm10.72-9.05.01.01h.02zM7.03 14.63l-.89.74.45.46.64-.07zm5.72-9.96 1.09-.39-.26-.59-.63-.16zM9 3.29l.58-1L9 2.01l-.58.28zM8.99 2l.01.01.01-.01zM4.41 3.69h.02l.01-.01zm.84.98-.2-1.14-.63.16-.26.59zm-2.39 5.49a.09.09 0 0 0-.07-.03l-.09.02c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.26-.05-.02-.12c0-.03-.02-.06-.04-.08m11.88-2.03 1.09.4.18-.62-.38-.52zM3.82 6.23c.03-.01.05-.03.07-.07.02-.03.03-.06.03-.09A.09.09 0 0 0 3.89 6l-.22-.14a.085.085 0 0 0-.07 0c-.03.01-.05.03-.07.07-.02.03-.03.06-.03.09s.01.05.03.07l.22.14c.02.01.04.01.07 0m10.79 1.93 1.02-.86a6.962 6.962 0 0 0-1.72-2.98l-1.24.45.23-1.3A6.85 6.85 0 0 0 9.66 2.3L9 3.42 8.35 2.3c-1.2.12-2.3.54-3.24 1.19l.22 1.28-1.22-.44c-.81.82-1.41 1.84-1.72 2.98l1 .84-1.22.45a6.911 6.911 0 0 0 .6 3.4h1.31l-.65 1.13c.68.94 1.59 1.71 2.65 2.21l1-.84.23 1.28c.55.14 1.12.21 1.71.21.58 0 1.14-.07 1.68-.21l.23-1.29 1.01.85c1.06-.5 1.97-1.26 2.65-2.2l-.66-1.15h1.33a6.843 6.843 0 0 0 .6-3.39zm-3.57-5.05.12-.23.24.12-.12.23c-.01.02-.01.05.01.07.01.03.04.05.07.07.03.02.06.02.09.02s.05-.02.06-.04l.12-.23.23.12-.12.23c-.05.09-.15.1-.32.03l-.16.31-.23-.12.16-.31c-.15-.08-.2-.17-.15-.27m-4.48-.06.1.24c.01.02.03.04.06.04.03.01.06 0 .1-.01.03-.01.06-.03.08-.06.02-.03.02-.05.01-.07l-.1-.24.24-.1.09.2c.04.1-.02.18-.17.27.17-.06.27-.04.31.06l.09.2-.24.1-.1-.24a.068.068 0 0 0-.06-.04c-.03-.01-.06 0-.1.01-.03.01-.06.03-.08.06-.02.03-.02.05-.01.07l.1.24-.24.1-.09-.2c-.04-.1.02-.18.17-.27-.17.06-.27.04-.31-.06l-.09-.2zM3.38 6.31c-.04-.03-.06-.07-.06-.13s.02-.12.05-.18l.14-.22c.04-.06.09-.1.14-.13.06-.03.11-.03.15 0l.22.14c.04.03.06.07.06.13s-.02.12-.05.19l-.13.21c-.04.06-.09.1-.14.13-.06.03-.11.03-.15 0zm-.75 4.38-.1-.5a.306.306 0 0 1 .02-.19.14.14 0 0 1 .11-.1l.05-.01c.04-.01.08 0 .12.04.04.03.07.09.09.18l-.02-.12c-.01-.03 0-.07.01-.09.01-.03.03-.04.05-.05l.31-.06.05.25-.26.05c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.35-.07.05.25zm2.34 3.62-.38-.37a.335.335 0 0 1-.1-.17c-.01-.06 0-.11.03-.14l.06-.06c.03-.03.08-.05.14-.04.06.01.12.04.17.09l.19.18.24-.26.19.18zm8.26-.03-.45-.54-.3.25-.06-.07.51-.42.51.61zm-4.22.34c-3.03 0-5.49-2.46-5.49-5.49 0-3.03 2.46-5.49 5.49-5.49 3.03 0 5.49 2.46 5.49 5.49 0 3.03-2.45 5.49-5.49 5.49M14.56 6c-.02.01-.03.03-.03.06l-.04.35c-.01.06-.03.11-.07.13l-.04.02c-.04.02-.09.02-.15 0a.348.348 0 0 1-.14-.13l-.07-.11a.45.45 0 0 1-.06-.19c0-.05.03-.09.08-.12l.07.11c-.01 0-.01 0-.01.01-.02.01-.03.03-.03.06s.01.06.03.09c.02.04.05.07.07.08.02.01.05.01.07-.01.02-.01.03-.03.03-.06l.04-.35c.01-.06.03-.11.07-.13l.04-.02c.04-.02.09-.02.15 0 .06.03.1.07.14.13l.07.11c.08.14.08.25-.02.32l-.07-.11c.05-.04.05-.09.01-.15a.19.19 0 0 0-.07-.08c-.02-.01-.05-.02-.07-.01m1.05 4.28-.06.26c-.02.07-.05.13-.09.17-.05.04-.09.06-.14.05l-.43-.1c-.1-.02-.14-.12-.11-.3l-.06.26-.09-.02.05-.19c.02-.08.06-.11.12-.11l.05-.19c.02-.07.05-.13.09-.17.05-.04.09-.06.14-.05l.43.1c.05.01.08.05.1.1.02.05.02.12 0 .19M4.84 13.73c-.03-.01-.05 0-.07.02l-.06.06c-.02.02-.02.04-.01.07.01.03.02.06.05.08l.1.09.18-.19-.1-.09c-.03-.02-.06-.03-.09-.04m10.6-3.49-.43-.1c-.02-.01-.05 0-.07.02-.02.02-.04.05-.05.09a.17.17 0 0 0 0 .1c.01.03.03.05.05.05l.43.1c.02.01.05 0 .07-.02.02-.02.04-.05.05-.08a.17.17 0 0 0 0-.1c-.01-.04-.02-.06-.05-.06m-1.4 1.83.58 1 .54-.36.05-.64zm1.12.63-.01.01v.02zm-4.19 1.93-.2 1.14.64.07.45-.46zm.45 1.2h-.02l-.01.01zm4.59-7.94v.02l.01.01zm-7-3.88c-2.83 0-5.12 2.29-5.12 5.12s2.29 5.12 5.12 5.12 5.12-2.29 5.12-5.12-2.29-5.12-5.12-5.12m-1.7 3.61c.6-.86 1.43-1.32 2.47-1.37h.09c.32 0 .64.08.88.15-.29-.07-.56-.1-.83-.1-.67 0-1.12.22-1.45.42-.54.32-.43.78-.4.87 0 0-.01 0-.01.01-.42.27-.78.84-.66 1.41.11.53.58 1.14 1.36 1.25-.04.07-.16.23-.39.23-.08 0-.16-.02-.25-.05-.31-.12-.79-.7-.99-1.34-.12-.37-.18-.95.18-1.48m1.24 3.91c-.67 0-1.36-.28-1.86-.75-.49-.45-.79-1.12-.88-1.84.27 1.6 1.77 2.15 1.79 2.16.16.06.32.09.49.09.32 0 .6-.11.77-.32 1.05-.23 1.66-.93 1.63-1.89.18.18.65.78 0 1.57-.53.64-1.2.98-1.94.98m2.35-1.99c0-.15-.18-.58-.43-.68l-.05-.02v.05c.03 1.28-1.03 1.71-1.15 1.76l-.02.01c-.12.04-.36.14-.68.14-.44 0-.87-.16-1.3-.49-.48-.36-.68-.83-.73-1.29.03.18.09.35.18.51.3.57.88.94 1.29 1.04.09.02.17.03.25.03.44 0 .58-.34.58-.34l.02-.04-.04-.01c-.6-.08-1.08-.59-1.27-1.04-.09-.2-.06-.52.06-.81.15-.35.41-.65.75-.85.34-.19.73-.3 1.13-.3.16 0 .31.02.46.05-.1-.01-.21-.02-.32-.02-.16 0-.3.01-.43.02-.03 0-.07.01-.1.01-.35.03-.88.39-.91.62-.03.23.07.27.08.27l.02.01.01-.01c.1-.08.41-.26 1.07-.26.64 0 1.24.38 1.56.98.32.61.01 1.46-.32 1.87-.17.21-.36.36-.51.46.73-.57.8-1.4.8-1.67m-.47 2.72c.78-.62 1.21-1.29 1.26-1.97.07-.92-.56-1.55-.57-1.56l-.07-.07.01.09c.01.09.01.18 0 .25-.18-.62-1.06-1.18-1.92-1.18-.34 0-.64.09-.87.26-.02-.12.02-.24.1-.34.2-.26.67-.42 1.23-.42.77 0 2.13.43 2.29 2.02.12 1.19-.42 2.26-1.46 2.92" /></symbol>'});Me().add(Fd);const Id=Fd;var Td=new(_e())({id:"rabbitMQ",use:"rabbitMQ-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rabbitMQ"><path d="M10.26 6.96V2.71c0-.39-.32-.71-.71-.71H8.17c-.39 0-.71.32-.71.71v4.25c0 .39-.32.71-.71.71h-.82c-.39 0-.71-.32-.71-.71V2.71c0-.39-.32-.71-.71-.71H3.2c-.39 0-.71.32-.71.71v12.58c0 .39.32.71.71.71h11.6c.39 0 .71-.32.71-.71V8.38c0-.39-.32-.71-.71-.71h-3.83c-.39 0-.71-.32-.71-.71m2.66 5.54c0 .38-.31.7-.7.7h-1.27c-.38 0-.7-.31-.7-.7v-1.27c0-.38.31-.7.7-.7h1.27c.38 0 .7.31.7.7z" /></symbol>'});Me().add(Td);const Rd=Td;var Nd=new(_e())({id:"random",use:"random-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="random"><path d="M7.628 9.192h.026a2.178 2.178 0 0 0-.239-.427L1.332 5.292C1.13 5.363 1 5.576 1 5.899v5.385c0 .566.397 1.254.887 1.537l5.018 2.898c.298.172.562.154.723-.013zm-3.08 3.789-1.002-.579v-1.05l1.002.579zm.851-2.322c-.072.11-.195.202-.368.277l-.178.066c-.126.049-.208.1-.247.152a.333.333 0 0 0-.058.208v.132l-1.001-.578v-.144c0-.161.03-.287.091-.375.06-.09.19-.176.386-.255l.177-.069a.527.527 0 0 0 .23-.156.351.351 0 0 0 .076-.228.691.691 0 0 0-.133-.398 1.12 1.12 0 0 0-.372-.333 1.548 1.548 0 0 0-.485-.18 1.746 1.746 0 0 0-.544-.022V7.83c.223.047.428.104.613.172.185.067.363.15.535.25.451.26.795.558 1.032.89.237.331.355.685.355 1.06 0 .193-.036.345-.108.457zm8.487-6.428L8.67 1.213c-.49-.284-1.284-.284-1.774 0L1.679 4.23c-.417.242-.479.61-.184.89l5.79 3.306c.319.08.684.08 1.003-.001l5.795-3.317c.28-.278.215-.64-.197-.878M7.972 5.418l-.126-.07c-.14-.08-.23-.168-.27-.267-.04-.1-.033-.26.02-.479l.053-.196a.52.52 0 0 0 .009-.288.302.302 0 0 0-.152-.18.704.704 0 0 0-.431-.072c-.17.018-.344.077-.525.178a2.188 2.188 0 0 0-.825.846l-.807-.453c.181-.182.36-.342.535-.479.175-.137.36-.26.556-.369.51-.287.986-.457 1.426-.511.438-.055.821.009 1.149.193.168.094.278.201.33.322.05.12.053.277.009.473l-.055.195c-.036.14-.044.24-.023.301.02.06.068.112.145.156l.116.064zm1.296.727-.915-.513 1.135-.636.916.513zm4.966-.86L8.181 8.75c-.1.137-.186.289-.251.445v6.48c.157.197.434.227.75.045l5.017-2.898c.49-.283.888-.97.888-1.537V5.9c0-.333-.137-.55-.35-.614m-2.517 7.393-1.002.577v-1.05l1.002-.578zm.851-3.305a4.058 4.058 0 0 1-.369.703l-.177.27c-.126.195-.208.34-.247.438a.727.727 0 0 0-.058.275v.133l-1.001.578v-.145c0-.161.03-.321.091-.48.06-.162.19-.395.386-.7l.177-.274c.106-.163.182-.304.23-.422a.835.835 0 0 0 .076-.315c0-.137-.045-.219-.133-.245-.09-.027-.213.005-.372.097-.15.087-.311.214-.486.38a5.808 5.808 0 0 0-.544.607v-.927c.224-.211.428-.39.613-.536.185-.147.364-.27.536-.369.451-.26.795-.36 1.032-.3.237.057.355.274.355.65 0 .192-.036.386-.108.58z" /></symbol>'});Me().add(Nd);const Ud=Nd;var Gd=new(_e())({id:"redis",use:"redis-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="redis"><path d="M1.49 5.89c.87.41 5.67 2.35 6.43 2.71.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.42-.22.63-.39.64-.55.01-.17-.21-.31-.65-.47-.85-.31-5.34-2.1-6.2-2.41-.86-.32-1.21-.3-2.22.06-1.01.36-5.78 2.23-6.63 2.57-.43.17-.63.32-.63.49.01.16.23.33.66.54m7.85 1.92L6.55 6.66l4-.61zm5.81-2.65-2.33.92-.26.1-2.34-.92 2.58-1.02zM8.04 2.79l1.22.48 1.14-.37-.31.74 1.06.4-.01.07-1.39.14-.34.81-.54-.9-1.62-.14-.01-.07 1.18-.43zM5.66 4.46c1.16 0 2.06.36 2.06.82 0 .46-.9.82-2.06.82-1.16 0-2.06-.36-2.06-.82 0-.46.91-.82 2.06-.82m10.87 6.68c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57v-1.63c-.01.16-.22.33-.64.55M1.49 7.54c.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V5.31c-.01.02-.02.03-.04.05v.01c-.03.03-.06.06-.11.1l-.01.01c-.02.01-.04.03-.06.04l-.01.01c-.05.03-.1.07-.16.1-.01 0-.01.01-.02.01-.02.01-.05.03-.07.04-.01 0-.02.01-.03.01-.03.02-.07.04-.1.05-.01.01-.03.01-.04.02-.24.12-.7.33-1.26.57-.08.04-.17.07-.26.11-.02.01-.04.02-.07.03-.43.19-.91.39-1.4.6-.34.14-.68.29-1 .43l-.06.03-.15.06c-.58.25-1.12.49-1.53.67-.25.11-.44.21-.57.27-.4.21-.73.33-1.02.38-.1.02-.2.02-.29.02h-.12c-.05 0-.09-.01-.14-.02-.23-.03-.47-.11-.75-.25-.35-.17-1.58-.68-2.9-1.23a.694.694 0 0 0-.13-.05c-.82-.34-1.65-.68-2.3-.96-.14-.06-.28-.12-.41-.17-.31-.13-.56-.24-.7-.31-.04-.02-.07-.03-.1-.05-.01 0-.02-.01-.03-.01-.03-.01-.05-.03-.07-.04-.01 0-.01-.01-.02-.01-.03-.02-.06-.03-.09-.05h-.01c-.03-.02-.05-.03-.07-.05-.01 0-.01-.01-.02-.01-.02-.01-.04-.03-.06-.04 0 0-.01 0-.01-.01-.02-.02-.04-.03-.06-.05-.02-.01-.03-.03-.05-.04l-.01-.01c-.01-.02-.03-.03-.04-.05v1.46c.02.18.25.35.68.56m15.04.91c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.36 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V7.9c-.01.16-.22.33-.64.55" /></symbol>'});Me().add(Gd);const Wd=Gd;var qd=new(_e())({id:"rethinkDB",use:"rethinkDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rethinkDB"><path d="M4.08 8.83c-.13 0-.22.04-.27.12-.05.08-.08.17-.08.27h.67c0-.26-.11-.39-.32-.39M2.1 8.27h-.12v.74h.07c.17 0 .31-.03.4-.1.1-.07.14-.16.14-.3.02-.22-.15-.34-.49-.34M0 4.91v8.18h18V4.91zm8.2 3.1c.04-.04.1-.06.17-.06s.12.02.17.06c.04.04.06.1.06.16s-.02.12-.06.16c-.04.04-.1.06-.17.06s-.12-.02-.16-.06a.211.211 0 0 1-.06-.16c0-.07.01-.11.05-.16m-4.99 2.08c0 .03-.02.05-.05.05h-.42c-.03 0-.06-.01-.07-.04l-.44-.83h-.06c-.07 0-.13 0-.18-.01v.64h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.28h-.17c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05.27-.01.5-.02.68-.02.56 0 .83.19.83.57a.635.635 0 0 1-.39.58l.37.71h.2c.03 0 .05.02.05.05v.17zm1.51-.66c-.01.01-.02.01-.05.01h-.94c.01.15.05.26.11.34.07.08.18.12.34.12.12 0 .24-.03.36-.08.03-.01.05-.01.06.02l.06.14c.01.02 0 .05-.03.06-.14.07-.32.11-.53.11-.25 0-.44-.07-.56-.21-.12-.14-.18-.33-.18-.57 0-.24.06-.43.19-.59.13-.16.31-.23.54-.23.12 0 .22.02.3.06.08.04.15.1.19.17.09.14.13.3.13.48.02.12.01.16.01.17m1.21.67c-.1.05-.22.07-.36.07-.19 0-.31-.05-.37-.14a.34.34 0 0 1-.07-.18c-.02-.08-.03-.17-.03-.25v-.74h-.18c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.18v-.42c0-.03.02-.05.05-.05h.26c.03 0 .05.02.05.05v.42h.32c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.32v.78c0 .1.01.17.04.21.03.04.07.06.14.06s.14-.01.2-.04c.02-.01.04 0 .05.02l.06.14v.03c.01.01 0 .02-.02.04m1.95-.01c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.49c.03 0 .05.02.05.05v.95c.12-.17.29-.26.5-.26.33 0 .5.17.5.52v.79h.19c.03 0 .05.02.05.05v.17zm.95 0c0 .03-.02.05-.05.05h-.76c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.2V8.86h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05v1.24h.2c.03 0 .05.02.05.05zm1.92 0c0 .03-.02.05-.05.05H10c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05H9c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.86H9c-.03 0-.05-.01-.05-.04v-.16c0-.03.02-.05.05-.05h.44c.03 0 .04.02.05.05l.03.18c.11-.16.27-.25.48-.26h.07c.31.01.46.19.46.52v.79h.19c.03 0 .05.02.05.05v.15zm1.83 0c0 .03-.02.05-.05.05h-.41c-.03 0-.05-.01-.07-.04l-.48-.75h-.11v.54h.17c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05V9.1h.16l.5-.47c.02-.02.05-.03.08-.03h.25c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.2l-.35.33.44.7h.19c.03 0 .05.02.05.05zm1.75-.23c-.21.18-.5.27-.87.27h-.67c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.27-.01.48-.02.61-.02s.23 0 .3.01l.22.03c.08.02.16.04.22.07.07.03.13.07.2.12.07.05.12.11.17.18.1.16.15.36.15.61-.01.38-.12.66-.33.84m2.05.08c-.13.11-.31.17-.53.18-.09.01-.24.01-.44.01h-.45c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.26-.01.5-.02.73-.02.23 0 .41.04.55.13.14.09.21.21.21.37 0 .12-.04.22-.11.3-.07.09-.16.15-.26.19.16.02.29.08.38.18.09.09.13.21.13.34 0 .18-.07.32-.21.43m-2.86-1.67h-.2v1.62h.21c.23 0 .42-.07.55-.22.13-.15.19-.35.19-.61s-.06-.45-.18-.59c-.13-.13-.32-.2-.57-.2m2.2.89h-.23v.74h.14c.19 0 .33-.03.44-.09.1-.06.16-.16.16-.3-.01-.23-.17-.35-.51-.35m.36-.57c0-.12-.04-.2-.12-.25a.623.623 0 0 0-.33-.07h-.15v.63h.12c.33 0 .48-.1.48-.31" /></symbol>'});Me().add(qd);const Kd=qd;var Jd=new(_e())({id:"retroShare",use:"retroShare-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="retroShare"><path d="M15.31 5.69a2.428 2.428 0 0 0-2.99-2.99c-.89-.45-1.9-.7-2.96-.7-2.31 0-4.34 1.18-5.53 2.96-.22.05-.43.14-.62.25-.56.32-.96.84-1.13 1.47-.17.62-.08 1.28.24 1.84.11.19.25.37.41.52.2 3.34 2.87 6.01 6.2 6.22.15.16.33.3.53.41.37.21.79.32 1.21.32a2.427 2.427 0 0 0 2.35-1.82A6.64 6.64 0 0 0 16 8.63c0-1.05-.25-2.05-.69-2.94M5.34 9.35c-1.03.46-2.27.08-2.85-.92-.62-1.07-.25-2.44.82-3.05 1.07-.62 2.44-.25 3.05.82.38.65.39 1.42.09 2.06l3.02 3.06-.12.06c-.44.25-.78.62-1 1.04zm6.65 2.42c.92.66 1.2 1.93.63 2.93a2.23 2.23 0 0 1-3.05.82 2.23 2.23 0 0 1-.82-3.05c.38-.65 1.04-1.05 1.74-1.11l1.14-4.14c.04.02.08.05.11.07.44.25.92.36 1.39.35zm.99-4.51c-.76 0-1.42-.38-1.83-.95L7 7.4v-.13c0-.51-.15-.98-.4-1.38l4.16-1.09a2.235 2.235 0 0 1 4.46.23c0 1.23-1 2.23-2.24 2.23" /></symbol>'});Me().add(Jd);const Qd=Jd;var $d=new(_e())({id:"selected_area",use:"selected_area-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="selected_area"><path d="M3.5 5.85H2v2.1h1.5zm0-2.35h.25V2H2v1.75h1.5zM7.949 2h-2.1v1.5h2.1zM2 16h6.75V9.25H2zm1.5-5.25h3.75v3.75H3.5zM14.25 2v1.5h.25v.25H16V2zm.25 5.95H16v-2.1h-1.5zm0 4.2H16v-2.1h-1.5zM10.051 16h2.1v-1.5h-2.1zm4.449-1.5h-.25V16H16v-1.75h-1.5zM12.149 2h-2.1v1.5h2.1z" /></symbol>'});Me().add($d);const Yd=$d;var Zd=new(_e())({id:"sendgrid",use:"sendgrid-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="sendgrid"><path d="M2 10.16h3.84V14H2zm7.92 0H6.08V14h3.84zM2 9.92h3.84V6.08H2zm4.08 0h3.84V6.08H6.08zm4.08-4.08H14V2h-3.84zm3.84.24h-3.84v3.84H14zm-7.92-.24h3.84V2H6.08z" /></symbol>'});Me().add(Zd);const Xd=Zd;var eh=new(_e())({id:"services",use:"services-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="services"><path d="M14.5 6c-1.39 0-2.57.96-2.9 2.25H9.52c.47-.53.84-1.12 1.11-1.78.12.02.24.03.37.03 1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3c0 1 .49 1.88 1.24 2.43a5.11 5.11 0 0 1-1.97 2.32H6.4A3.003 3.003 0 0 0 3.5 6c-1.65 0-3 1.35-3 3s1.35 3 3 3c1.39 0 2.57-.96 2.9-2.25h.87c.9.58 1.55 1.35 1.97 2.32C8.49 12.62 8 13.5 8 14.5c0 1.65 1.35 3 3 3s3-1.35 3-3-1.35-3-3-3c-.13 0-.25.01-.37.03-.27-.66-.64-1.25-1.11-1.78h2.08A3.003 3.003 0 0 0 14.5 12c1.65 0 3-1.35 3-3s-1.35-3-3-3m-4.97 8.22c.01-.08.04-.16.07-.23.02-.07.06-.14.1-.21v-.01c.02-.04.05-.09.08-.13a.53.53 0 0 1 .1-.12c.01-.02.03-.04.05-.06.02-.03.04-.05.07-.06a.7.7 0 0 1 .16-.14c.08-.05.16-.1.25-.14.1-.04.2-.07.31-.09.09-.02.19-.03.28-.03.03 0 .07 0 .1.01.1 0 .19.02.28.05.08.02.16.04.23.08.07.03.14.06.21.11.01 0 .01.01.02.01.06.04.13.09.18.15.06.05.11.11.15.17.21.25.33.56.33.92 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5c0-.1.01-.19.03-.28M9.5 3.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .8-.62 1.44-1.4 1.49-.03.01-.07.01-.1.01-.56 0-1.06-.31-1.3-.77-.13-.22-.2-.46-.2-.73m5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5S16 8.17 16 9s-.67 1.5-1.5 1.5" /></symbol>'});Me().add(eh);const th=eh;var nh=new(_e())({id:"smartdlog",use:"smartdlog-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="smartdlog"><path d="M15 14.022H1V2h14zm-13.48-.52h12.96V2.52H1.52z" /><path d="M15 2.52H1v.99h14zM9.848 4.602h-4.25v.52h4.25zM12.103 5.947H5.597v.52h6.506zM11.123 7.335H5.597v.52h5.526zM12.97 8.809H5.597v.52h7.373zM10.715 10.327H5.597v.52h5.118zM12.016 11.671H5.684v.52h6.332zM4.816 4.602H2.561v.52h2.255zM4.816 5.947H2.561v.52h2.255z" /><path d="M4.816 5.947H2.561v.52h2.255zM4.816 7.291H2.561v.52h2.255zM4.816 8.636H2.561v.52h2.255zM4.816 10.327H2.561v.52h2.255zM4.816 11.671H2.561v.52h2.255z" /></symbol>'});Me().add(nh);const rh=nh;var oh=new(_e())({id:"solr",use:"solr-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="solr"><path d="M8.99 2c-.95 0-1.86.19-2.69.54l-.92 7.79L10 2.07A8.57 8.57 0 0 0 8.99 2M3.21 5.03l1.02 5.12 1.45-7.32c-.99.52-1.83 1.28-2.47 2.2m7.2-2.88-4.02 8.71 7.45-6.89a6.857 6.857 0 0 0-3.43-1.82M2 8.38l1.09 1.95-.5-4.2c-.31.7-.52 1.46-.59 2.25m13.94-.28-8.21 4.59 7.7-.91c.37-.85.57-1.78.57-2.77 0-.31-.02-.61-.06-.91m-3.03 6.73c.92-.62 1.68-1.45 2.22-2.43l-7.22 1.43zM9.57 16c.78-.06 1.52-.25 2.2-.55l-4.04-.48zM14.1 4.22l-6.89 7.45 8.66-4a6.965 6.965 0 0 0-1.77-3.45" /></symbol>'});Me().add(oh);const ah=oh;var ih=new(_e())({id:"squid",use:"squid-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="squid"><path d="M17 3.1c-.03-.43-.36-.65-.54-.81-.18-.16-.41-.47.03-.7-1.9-.15-5.12-.31-8.95 1.79C4.36 5.13 3.3 7.43 3.03 8.15c-.79.2-1.37.92-1.37 1.77 0 .16.02.32.06.48-.85.67-.88 2.89-.5 3.52.4.66 1.15 1.35 2.59 1.24 1.44-.11 2.27.58 2.39 1.33 0 0 .19-.72.04-1.29-.15-.16-.4-.34-.75-.48.04.03.07.08.07.14 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.02c-.09-.03-.18-.06-.28-.09-.13-.04-.27-.08-.41-.13.05.03.09.08.09.15 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.03c-.44-.16-.9-.4-1.19-.75-.39-.33-.44-.8-.32-1 .02.18.23.56.47.88.2.24.64.58 1.56.84.11.03.41.12.71.29.14.08.26.16.36.24.11.03.29.06.55.06.5-.01 2.03.03 2.57.95-.18-1.26-.9-1.8-1.69-2.06-.11.04-.23.07-.35.09.05.04.09.11.09.18 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.06 0-.12.01-.18.01-.12 0-.25-.01-.39-.02.01.03.02.06.02.1 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.02 0-.04-.01-.06-.01a2.17 2.17 0 0 1-.42-.11c-.02.13-.13.23-.26.23-.15 0-.26-.12-.26-.26 0-.07.03-.14.08-.19-.17-.11-.34-.25-.49-.4a.32.32 0 0 1-.29.19c-.18 0-.32-.14-.32-.32 0-.16.11-.29.26-.32-.13-.2-.24-.42-.33-.65a.29.29 0 0 1-.24.14.28.28 0 1 1 0-.56c.05 0 .11.02.15.04l.14-.03c.1.41.27.78.5 1.1.08.04.14.11.16.2.19.22.42.41.66.55.09 0 .17.04.22.11.16.07.32.12.49.14.89.14 1.4.09 1.96-.19.14-.12.25-.25.34-.36.17-.22.91-1.02 1.49-.99-.09-.31-.41-.52-.77-.55-.36-.03-.7.17-.95.38s-.82.61-1.31.41c-.49-.2-1.08-.69-1.14-1.4-.06-.71.56-1.19.56-1.19.68.31 1.88.24 2.89-.08 1.01-.32 2.93-1.31 3.54-1.9.61-.59 1.03-1.23 1.2-1.87.16-.64.48-.72.56-.67.09.05.28.31.52.31s.91-.27.88-1.12c-.03-.59-.14-.67.14-.83.19-.11.42-.09.58-.07.11-.01.49-.18.46-.61M6.03 15.39c.08 0 .15.07.15.15 0 .08-.07.15-.15.15-.08 0-.15-.07-.15-.15 0-.08.07-.15.15-.15m-2.29-1.2c.13 0 .24.11.24.24s-.11.24-.24.24-.24-.11-.24-.24.1-.24.24-.24m4.88.48c.1 0 .18.08.18.18 0 .1-.08.18-.18.18a.18.18 0 0 1-.18-.18c0-.1.08-.18.18-.18m-.6-.44c.11 0 .2.09.2.2a.2.2 0 0 1-.2.2.2.2 0 0 1-.2-.2c0-.11.09-.2.2-.2m1.2-2.25c.07 0 .12.05.12.12 0 .07-.05.12-.12.12-.07 0-.12-.05-.12-.12 0-.07.05-.12.12-.12m-.46.08c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16c0-.08.08-.16.16-.16m-.61.29c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16.07-.16.16-.16m-.81.32c.12 0 .21.1.21.21 0 .12-.1.21-.21.21-.12 0-.21-.1-.21-.21-.01-.11.09-.21.21-.21m-.85 0a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58m6.53-10.88c.18 0 .33.15.33.33 0 .18-.15.33-.33.33-.18 0-.33-.15-.33-.33 0-.18.14-.33.33-.33m-2.65.57c.25 0 .46.21.46.46s-.21.46-.46.46-.46-.21-.46-.46.21-.46.46-.46m-1.63.7a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12m-1.48.86a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12m-2.4 2.05c.17 0 .31.14.31.31 0 .17-.14.32-.31.32-.17 0-.31-.14-.31-.31 0-.17.13-.32.31-.32m-2.53 7.28c-.17 0-.3-.13-.3-.3 0-.17.13-.3.3-.3.17 0 .3.13.3.3a.3.3 0 0 1-.3.3m-.3-1.34c0-.18.14-.32.32-.32s.32.14.32.32-.14.32-.32.32a.329.329 0 0 1-.32-.32m1.12 1.99c0 .15-.12.27-.27.27-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27m.35-2.43c-.86 0-1.55-.69-1.55-1.55 0-.86.69-1.55 1.55-1.55.86 0 1.55.69 1.55 1.55 0 .86-.7 1.55-1.55 1.55m1.56.25c-.17 0-.31-.14-.31-.31 0-.17.14-.31.31-.31.17 0 .31.14.31.31 0 .17-.14.31-.31.31m.57.34a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58m.15-3.61c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27m.14-2.55c-.25 0-.46-.21-.46-.46s.21-.46.46-.46.46.21.46.46-.21.46-.46.46m.61 3.82c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27m.38-1.81c-.23 0-.42-.19-.42-.42 0-.23.19-.42.42-.42.23 0 .42.19.42.42 0 .23-.19.42-.42.42m.78 1.9c-.22 0-.41-.18-.41-.41 0-.22.18-.41.41-.41.22 0 .41.18.41.41 0 .23-.18.41-.41.41m.2-3.17a.58.58 0 1 1 1.16.001.58.58 0 0 1-1.16 0M9.2 9.4a.49.49 0 1 1 .002-.981.49.49 0 0 1-.002.981m.4-3.77c0-.36.29-.65.65-.65.36 0 .65.29.65.65 0 .36-.29.65-.65.65-.36 0-.65-.29-.65-.65m1.1 3.14c-.31 0-.55-.25-.55-.55 0-.3.25-.55.55-.55.31 0 .55.25.55.55 0 .3-.25.55-.55.55m.63-6.32a.37.37 0 1 1 .738-.002.37.37 0 0 1-.738.002m.7 1.76c.3 0 .53.24.53.53 0 .3-.24.53-.53.53-.3 0-.53-.24-.53-.53 0-.29.24-.53.53-.53m.1 3.49c-.29 0-.52-.23-.52-.52 0-.29.23-.52.52-.52.29 0 .52.23.52.52 0 .29-.23.52-.52.52m1.02-1.1a.47.47 0 1 1-.001-.939.47.47 0 0 1 .001.94m.28-2.25a.39.39 0 1 1 .39-.39c0 .22-.17.39-.39.39m.59 1.06c-.13 0-.23-.1-.23-.23s.1-.23.23-.23.23.1.23.23-.1.23-.23.23m.39-1.75c-.14 0-.26-.11-.26-.26 0-.14.11-.26.26-.26.15 0 .26.11.26.26 0 .14-.12.26-.26.26M3.66 8.68c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1" /></symbol>'});Me().add(ih);const lh=ih;var ch=new(_e())({id:"summary_statistic",use:"summary_statistic-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="summary_statistic"><path d="M3.5 11.666V6.334A2.837 2.837 0 0 1 6.334 3.5h5.332A2.837 2.837 0 0 1 14.5 6.334V11H16V6.334A4.333 4.333 0 0 0 11.666 2H6.334A4.333 4.333 0 0 0 2 6.334v5.332A4.333 4.333 0 0 0 6.334 16H11v-1.5H6.334A2.837 2.837 0 0 1 3.5 11.666M9.75 12V8h-1.5v4zM16 14.5V12h-1.5v2.5H12V16h2.5v2H16v-2h2v-1.5zM5.25 12h1.5V9h-1.5zm7.5-6h-1.5v6h1.5z" /></symbol>'});Me().add(ch);const sh=ch;var uh=new(_e())({id:"systemd",use:"systemd-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="systemd"><path d="M2 6v3.628h1.395V9.07h-.837V6.558h.837V6zm10.605 0v.558h.837V9.07h-.837v.558H14V6zM8.28 7.814l2.511-1.396V9.21zM6.187 9.07a1.256 1.256 0 1 0 0-2.512 1.256 1.256 0 0 0 0 2.512" /></symbol>'});Me().add(uh);const dh=uh;var hh=new(_e())({id:"traefik",use:"traefik-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="traefik"><path d="M4.93 5.87c-.07.12-.21.2-.35.2-.07 0-.14-.02-.21-.05-.03.39-.03.78-.01 1.18l4.38 1.07.02.1c.01.03.11.64.16 1.41.05-.77.16-1.38.16-1.41l.02-.1 4.17-1.07c-.01-.39-.04-.78-.08-1.16-.06.03-.12.04-.19.04-.15 0-.28-.07-.35-.19-.01-.02-.16-.21-.35-.52-.06.46-.24.88-.57 1.03l-1.76-.2c.09.14.11.29-.04.45-.13.14-.25.14-.39.11.01.19.04.38 0 .6-.06.11-.17.12-.27.16a.388.388 0 0 1-.3-.24c-.03-.24 0-.47.02-.7h-.02c-.01.25-.05.5-.02.75-.46.61-.74-.15-.6-.6-.17.04-.34.03-.44-.16a.425.425 0 0 1-.04-.31l-1.95.12c-.36-.06-.58-.47-.66-.97-.17.26-.29.41-.33.46m.67-.98c.39 1.51 2.81 1.13 2.72-.39-.03-.43-.21-.74-.48-.93H9.4c-.26.25-.43.6-.41 1.04.28 1.63 2.81 1.32 2.77-.18-.21-.41-.41-.88-.57-1.39-.03-.1-.03-.2-.01-.29-.73-.31-1.59-.38-2.48-.38-.79.06-1.55.18-2.22.44.02.08.01.17-.02.26-.24.71-.57 1.34-.86 1.82m4.09-.79c.22 0 .4.2.4.44s-.18.44-.4.44c-.22 0-.4-.2-.4-.44s.18-.44.4-.44m-3.02.55c0 .24-.18.44-.41.44-.23 0-.41-.2-.41-.44s.18-.44.41-.44c.23 0 .41.2.41.44m3.2.1c.05 0 .09-.05.09-.11s-.04-.11-.09-.11c-.05 0-.1.05-.1.11.01.06.05.11.1.11m-3.42.11c.05 0 .1-.05.1-.11s-.04-.11-.1-.11c-.05 0-.1.05-.1.11s.05.11.1.11m-2.27.81h.01c.02.05.06.09.11.12l.14.08c.13.07.28.03.35-.09 0 0 .98-1.22 1.51-2.74.05-.14.02-.27-.11-.34l-.14-.08a.25.25 0 0 0-.17-.03h-.01c-.5-.27-1.11-.16-1.59.22.2-.31.47-.64.8-.96.99-.94 6.99-.7 7.6 0 .23.26.45.62.63.95-.47-.37-1.06-.48-1.55-.23h-.01a.27.27 0 0 0-.17.03l-.15.08c-.13.07-.16.19-.12.34.48 1.54 1.43 2.79 1.43 2.79.06.12.22.17.35.1l.15-.08c.05-.03.09-.07.12-.12h.01c.58-.3.83-1.02.67-1.74.1-.06.07-.3-.05-.54-.11-.21-.26-.36-.36-.36-.19-.45-.51-1.09-.97-1.51-.76-.7-6.68-.73-7.59 0-.53.43-.9 1.04-1.12 1.48-.1.03-.24.16-.34.35-.13.24-.16.48-.07.54-.17.7.07 1.42.64 1.74m4.48-.39c-.02.02-.05.07-.1.14.2-.1.47-.11.67-.03a.63.63 0 0 0-.08-.11c-.11-.08-.4-.07-.49 0m5.2 6.79c-.01-.12-.03-.25-.04-.37-.05.01-2.53.66-4.68.42.02.19.04.37.05.53v-.06s2.42.17 4.67-.52m-4.45 1.37c-.01-.02-.02-.03-.03-.05.1.17.25.35.35.41.13.09.66.24 1.4.27.74.03 1.59-.13 2.12-.43s.7-.63.7-.63v-.02c-.09.03-2.41.69-4.54.45m-.07-.1c-.03-.06-.06-.13-.08-.21.01.05.02.09.03.11.02.03.04.06.05.1m6.6-7.15-.08-.04c-.1-.05-.23.01-.3.14l-1.47 2.78-.05.09v.01l-.25.46c-.17-.05-.35-.07-.52-.06l.02.5c.01.19.05.18.15.22l-.11.2c-.08-.11-.14-.27-.13-.61.03-.77.32-.46.31-.95l.01-1.63-4.3 1.1s-.17.92-.18 1.91c0 .3.01.66.03 1.03 0-.02 0-.04.01-.06 0 0 2.27.22 4.53-.47.06 0 .12-.02.14-.07l.12-.24c.16.04.31 0 .32-.25.17-.08.1-.24 0-.36l.26-.5v-.01l1.52-2.86c.09-.14.07-.28-.03-.33M4.29 10.86l.07-.03c2.2.65 4.38.44 4.38.44v.02c.02-.35.03-.7.03-.99-.01-1-.17-1.91-.17-1.91l-4.51-1.1.1 1.63c-.01.49.46.18.49.95.01.45-.08.59-.2.7l-.11-.23c.1-.04.14-.02.15-.22l.02-.5c-.16-.01-.33 0-.49.05l-.21-.44s0-.01-.01-.01L2.44 6.28c-.06-.13-.19-.2-.29-.15l-.08.04c-.1.05-.13.19-.07.32l1.39 2.93c0 .01.01.02.02.03l.22.46c-.11.12-.2.3-.02.39.01.25.16.29.32.25l.12.26c.03.07.14.1.24.05m8.94 2.97c-.5.25-1.22.41-1.92.41h-.19c-.71-.03-1.29-.18-1.48-.3-.17-.11-.4-.42-.49-.64-.08-.2-.19-1.26-.23-2.18-.04.92-.15 1.98-.23 2.18-.09.23-.32.53-.49.64-.18.12-.76.27-1.46.3h-.19c-.73 0-1.49-.18-1.99-.46-.05-.03-.09-.06-.14-.08.07.51.21 1 .48 1.42.15.24.34.45.55.63-.02 0-.04 0-.06.01-.3.22-.89.55-.6 1 .07.07.07.03.12.05.03.05.15.29.45.11.33-.18.55-.53.94-.59-.02-.02-.04-.05-.06-.07.69.33 1.5.47 2.21.49 1.02.04 2.17-.1 3.09-.6.42.14.69 1.05 1.17.61.5-.3-.1-.92-.44-1.13.24-.22.44-.49.59-.8.17-.31.28-.65.37-1m-4.55-1.71c-2.13.23-4.6-.42-4.62-.42-.01.12-.03.25-.04.37 2.22.69 4.6.52 4.61.52.02-.14.04-.3.05-.47m-.13 1.07c-.01.02-.02.05-.02.07 0-.01.01-.02.01-.02 0-.02 0-.03.01-.05m-1.82.89c.73-.03 1.25-.19 1.38-.27.09-.06.22-.21.32-.36-2.14.24-4.46-.44-4.48-.45v.02s.17.33.69.63c.52.3 1.36.46 2.09.43" /></symbol>'});Me().add(hh);const vh=hh;var mh=new(_e())({id:"varnish",use:"varnish-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="varnish"><path d="M13.165 8.533a3.766 3.766 0 1 0 0-7.531 3.766 3.766 0 0 0 0 7.531M7.197 17.001a2.72 2.72 0 1 0 0-5.44 2.72 2.72 0 0 0 0 5.44M2.638 9.656a1.564 1.564 0 1 0 0-3.127 1.564 1.564 0 0 0 0 3.127" /></symbol>'});Me().add(mh);const gh=mh;var fh=new(_e())({id:"webLog",use:"webLog-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog"><path d="M8.26 15.96c.24.03.49.04.74.04s.5-.01.74-.04l1.34-1.36H6.92zM6.22 13.9h5.55l1.38-1.4H4.84zm-2.07-2.1h9.71l1.38-1.4H2.76zM16 8.82v-.18c0-.03 0-.06-.01-.09 0-.03 0-.06-.01-.09 0-.06-.01-.11-.01-.17a7.03 7.03 0 0 0-2.16-4.39A7.046 7.046 0 0 0 9 2c-1.79 0-3.5.68-4.8 1.91A6.93 6.93 0 0 0 2.04 8.3c-.01.06-.01.11-.01.17 0 .03 0 .06-.01.08 0 .03 0 .06-.01.09V9c0 .24.01.47.04.7h13.93c.02-.23.04-.46.04-.7-.02-.06-.02-.12-.02-.18M8.3 8.3H3.44c.13-1.05.54-2.02 1.21-2.84a7.19 7.19 0 0 0 3.64 1.4V8.3zm0-2.84c-.94-.11-1.83-.45-2.61-.97.77-.56 1.66-.92 2.61-1.04zm1.4-2.02c.95.12 1.84.47 2.61 1.04-.78.53-1.67.86-2.61.97zm0 4.86V6.87a7.28 7.28 0 0 0 3.64-1.4c.67.82 1.08 1.79 1.21 2.84H9.7z" /></symbol>'});Me().add(fh);const ph=fh;var wh=new(_e())({id:"webLog_nginx",use:"webLog_nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog_nginx"><path d="m11.06 1.94-.44-.44H3.5v15h11V5.38zm-.31 1.81 1.5 1.5h-1.5zM13 15H5V3h4.25v3.75H13zM6.97 7.93c-.29.11-.47.39-.47.7v3.75c0 .41.34.75.75.75s.75-.34.75-.75v-1.85l2.2 2.36c.14.16.34.24.55.24.09 0 .19-.02.28-.05.29-.11.47-.39.47-.7V8.62c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.85L7.8 8.11a.754.754 0 0 0-.83-.18" /></symbol>'});Me().add(wh);const bh=wh;var yh=new(_e())({id:"x509_check",use:"x509_check-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="x509_check"><path d="M12.79 9.42c-.02.46-.07.85-.16 1.18h1.23c.04.22.13.45.45.45.5 0 .53-.88.54-1.49-.21.27-.56.36-.91.36-.48 0-.88-.17-1.15-.5m1.45 2.64c-1.2 0-1.59-.65-1.71-1.15-.31.81-.88 1.15-1.71 1.15-.77 0-1.33-.31-1.65-1.06-.27.67-.86 1.06-1.82 1.06-1.29 0-1.82-.71-1.87-1.67h1.38c.03.41.16.66.51.66.42 0 .53-.34.53-.97 0-.63-.13-.93-.55-.93-.32 0-.46.19-.54.51l-1.25-.13c.1-.66.29-2.5.35-3.22h3.27L9 7.44H7.06c-.02.25-.08.74-.1.95.18-.16.47-.27.9-.27.45 0 .79.15 1.04.4.13-1.72.89-2.31 1.96-2.31.77 0 1.37.3 1.69 1.12.26-.7.88-1.12 1.77-1.12.72 0 1.22.24 1.54.71C14.96 4.07 12.3 2 9.16 2 5.83 2 3.04 4.33 2.33 7.45h.81c.23.56.39 1.09.47 1.35h.03c.11-.33.3-.88.5-1.35h1.51L4.49 9.57l1.16 2.4H4.08c-.24-.63-.39-1.13-.48-1.4h-.03c-.08.25-.3.92-.49 1.4h-.27A7.013 7.013 0 0 0 9.16 16a7 7 0 0 0 6.56-4.56c-.32.41-.79.62-1.48.62M2.16 9c0 .5.05.98.15 1.45l.36-.72-.5-1.04c-.01.1-.01.21-.01.31m12.18-.11c.31 0 .5-.2.5-.77 0-.59-.11-.91-.51-.91-.34 0-.5.27-.5.84 0 .59.18.84.51.84m-3.85.6-.63-.63-.49.49 1.12 1.12 1.68-1.68-.49-.49z" /></symbol>'});Me().add(yh);const xh=yh;var Oh=new(_e())({id:"xen",use:"xen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="xen"><path d="M10.22 6.47H7.17L5.4 7.82 4.37 6.47H1.92l1.94 2.54L0 11.97h3.06l1.93-1.48 1.13 1.48h2.45L6.53 9.3zm-5.24 5.94a3.3 3.3 0 0 1-1.65-.43l-.21.16H1.58c.85.91 2.05 1.49 3.4 1.49s2.55-.57 3.4-1.49H6.29c-.4.17-.84.27-1.31.27m5.72-4.84c-1.78 0-2.57.97-2.57 1.85 0 .73.52 1.42 2.06 1.42 1.42 0 2.1-.51 2.36-1.05h-1.56c-.12.16-.29.26-.66.26-.43 0-.61-.2-.61-.48 0-.03 0-.07.01-.1h2.96c.07-.18.1-.34.1-.56-.01-.74-.63-1.34-2.09-1.34m.56 1.25H9.91c.09-.3.35-.5.77-.5.39 0 .59.14.59.4.01.02 0 .06-.01.1m-9.42 1.51a3.406 3.406 0 0 1 .32-3.25l-.6-.79H2.9a3.419 3.419 0 0 1 4.17.02l.03-.02h1.63a4.634 4.634 0 0 0-3.76-1.92C2.42 4.37.35 6.44.35 9c0 .75.18 1.47.5 2.1zm6.49-1.97c.24-.31.59-.58 1.07-.76-.02-.08-.05-.15-.08-.23l-1.03.79c.01.08.03.14.04.2m8.44-.79c-.71 0-1.11.22-1.36.42.02-.09.05-.28.06-.34h-1.58c-.05.21-.11.45-.22.85l-.61 2.25h1.62l.43-1.6c.13-.5.4-.72.81-.72.42 0 .46.22.38.52l-.49 1.8h1.62l.51-1.89c.23-.85-.24-1.29-1.17-1.29m-8.6 2.62c-.08.21-.18.41-.29.59l.78 1.02c.21-.28.4-.59.54-.91-.29-.08-.53-.2-.72-.36a1.26 1.26 0 0 1-.31-.34" /></symbol>'});Me().add(Oh);const Bh=Oh;var Ch=new(_e())({id:"settings",use:"settings-usage",viewBox:"0 0 17 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 15" id="settings"><path d="M14.514 7.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v5.86c-1.29.34-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89m-.17 4.27c-.18.08-.38.12-.58.12-.2 0-.4-.04-.58-.12-.54-.23-.92-.76-.92-1.38a1.36 1.36 0 0 1 .08-.45c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36-.02.62-.4 1.15-.94 1.38M4.014 5.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v3.86c-1.29.33-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89m.7 3.25-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52-.22.13-.48.21-.75.21s-.53-.08-.75-.21c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.03-.12-.05-.24-.05-.36s.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.02.25-.05.36m4.52-7.26a.739.739 0 0 0-.72-.6c-.36 0-.65.26-.72.6a2.982 2.982 0 0 0-2.28 2.9c0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.41-.97-2.58-2.28-2.9m.73 3.26-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52a1.42 1.42 0 0 1-1.49 0c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.02-.11-.04-.23-.04-.36 0-.13.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.04.25-.07.36m-7.45 7.05v2.34c0 .41.34.75.75.75s.75-.34.75-.75v-2.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09m5.25-4v6.34c0 .41.34.75.75.75s.75-.34.75-.75V7.71c-.24.05-.49.09-.75.09s-.51-.04-.75-.09m5.25 6v.34c0 .41.34.75.75.75s.75-.34.75-.75v-.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09" /></symbol>'});Me().add(Ch);const _h=Ch;var zh=new(_e())({id:"settings_h",use:"settings_h-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="settings_h"><path d="M.75 4.5h5.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3C8.11.75 6.94 1.71 6.61 3H.75C.34 3 0 3.34 0 3.75s.34.75.75.75M8.21 3c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.15-.92 1.38-.18.08-.38.12-.58.12a1.361 1.361 0 0 1-.45-.08c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53C8.08 4.26 8 4 8 3.73s.08-.51.21-.73m5.04 1.5c.41 0 .75-.34.75-.75S13.66 3 13.25 3h-.34c.05.24.09.49.09.75s-.04.51-.09.75zM4.5 7.25c-1.39 0-2.56.96-2.89 2.25H.75c-.41 0-.75.34-.75.75s.34.75.75.75h.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3m.58 4.38c-.18.08-.38.12-.58.12-.13 0-.25-.02-.36-.05l-.09-.03c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53-.13-.22-.21-.48-.21-.75s.08-.53.21-.75c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.17-.92 1.4m8.17-2.13H7.91c.05.24.09.49.09.75s-.04.51-.09.75h5.34c.41 0 .75-.34.75-.75s-.34-.75-.75-.75" /></symbol>'});Me().add(zh);const Mh=zh;var Eh=new(_e())({id:"sign_in",use:"sign_in-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sign_in"><g clip-path="url(#sign_in_a)"><path d="M6.76 4.231c.38-.308.994-.308 1.374 0L14 9.001l-5.867 4.768c-.19.154-.438.231-.687.231-.248 0-.497-.078-.686-.232-.38-.308-.38-.808 0-1.116l3.523-2.863H.97C.435 9.79 0 9.436 0 9c0-.435.435-.788.971-.788h9.312L6.76 5.348c-.38-.308-.38-.808 0-1.117" /><path d="M2.6 3.88a.759.759 0 0 1-.07-1.12A8.944 8.944 0 0 1 9 0c4.97 0 8.99 4.03 8.99 9S13.97 18 9 18c-2.54 0-4.84-1.06-6.47-2.76a.759.759 0 0 1 .07-1.12c.3-.23.73-.22.99.05 1.69 1.78 4.25 2.73 7 2.16 2.89-.59 5.2-2.93 5.77-5.82.1-.51.14-1.02.14-1.51s-.04-1-.14-1.51c-.57-2.89-2.89-5.22-5.77-5.82-2.74-.57-5.3.38-7 2.16-.26.28-.7.29-.99.05" /></g><defs><clipPath id="sign_in_a"><path d="M0 18V0h18v18z" /></clipPath></defs></symbol>'});Me().add(Eh);const Sh=Eh;var kh=new(_e())({id:"sorting_vertical",use:"sorting_vertical-usage",viewBox:"0 0 19 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" id="sorting_vertical"><path d="M16.736 0H2.908C1.822 0 .933.9.933 2v14c0 1.1.889 2 1.975 2h13.828c1.086 0 1.975-.9 1.975-2V2c0-1.1-.889-2-1.975-2M6.859 14H4.883V7H6.86zm3.95 0H8.835V4h1.976zm3.951 0h-1.975v-4h1.975z" /></symbol>'});Me().add(kh);const jh=kh;var Hh=new(_e())({id:"sorting_asc",use:"sorting_asc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_asc"><path d="M.8 5.2c.4.4 1 .4 1.4 0l.8-.8V8c0 .6.4 1 1 1s1-.4 1-1V4.4l.8.8c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L4 .6.8 3.8c-.4.4-.4 1 0 1.4" /></symbol>'});Me().add(Hh);const Ph=Hh;var Vh=new(_e())({id:"sort_ascending",use:"sort_ascending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_ascending"><path d="M4.97 6.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l2.22-2.22V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l2.22 2.22c.29.29.77.29 1.06 0 .15-.15.22-.34.22-.53s-.07-.38-.22-.53L9 2.44z" /></symbol>'});Me().add(Vh);const Ah=Vh;var Lh=new(_e())({id:"sorting_desc",use:"sorting_desc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_desc"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4" /></symbol>'});Me().add(Lh);const Dh=Lh;var Fh=new(_e())({id:"sort_descending",use:"sort_descending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_descending"><path d="M13.03 11.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.22 2.22V3c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-2.22-2.22a.754.754 0 0 0-1.06 0c-.15.15-.22.34-.22.53s.07.38.22.53L9 15.56z" /></symbol>'});Me().add(Fh);const Ih=Fh;var Th=new(_e())({id:"sort_indicator",use:"sort_indicator-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_indicator"><path d="M6 2.44 3.47 4.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.72-.72V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l.72.72c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06zM12 15.75l2.53-2.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.72.72V3.19c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-.72-.72a.742.742 0 0 0-.53-.22c-.19 0-.38.07-.53.22-.29.29-.29.77 0 1.06z" /></symbol>'});Me().add(Th);const Rh=Th;var Nh=new(_e())({id:"space",use:"space-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="space"><path fill-rule="evenodd" d="M11.985 2a9.92 9.92 0 0 1 7.06 2.925 9.92 9.92 0 0 1 2.925 7.06 9.92 9.92 0 0 1-2.924 7.06 9.92 9.92 0 0 1-7.06 2.925 9.92 9.92 0 0 1-7.061-2.924A9.92 9.92 0 0 1 2 11.986c0-1.346.263-2.652.782-3.881a.58.58 0 0 1 1.068.45 8.771 8.771 0 0 0-.691 3.43c0 4.867 3.96 8.827 8.826 8.827 4.867 0 8.827-3.96 8.827-8.827s-3.96-8.826-8.827-8.826a8.788 8.788 0 0 0-3.179.59.58.58 0 0 1-.417-1.082A9.942 9.942 0 0 1 11.985 2m.195 13.963c.895 0 1.623.727 1.623 1.622 0 .894-.728 1.622-1.623 1.622a1.624 1.624 0 0 1-1.622-1.622c0-.895.728-1.622 1.622-1.622m0 1.158a.464.464 0 1 0 .002.928.464.464 0 0 0-.002-.928m-.195-11.315a6.186 6.186 0 0 1 6.18 6.18 6.176 6.176 0 0 1-2.725 5.122.58.58 0 0 1-.648-.96 5.02 5.02 0 1 0-5.332.177.58.58 0 0 1-.584 1 6.175 6.175 0 0 1-3.07-5.34 6.186 6.186 0 0 1 6.18-6.179m0 2.698c1.92 0 3.481 1.562 3.481 3.481 0 1.92-1.561 3.481-3.48 3.481a3.485 3.485 0 0 1-3.482-3.48c0-1.92 1.562-3.482 3.481-3.482m0 1.16a2.325 2.325 0 0 0-2.322 2.321 2.325 2.325 0 0 0 2.322 2.322 2.325 2.325 0 0 0 2.322-2.322 2.325 2.325 0 0 0-2.322-2.322M5.228 2.946A2.284 2.284 0 0 1 7.51 5.228 2.284 2.284 0 0 1 5.23 7.51a2.284 2.284 0 0 1-2.282-2.28 2.284 2.284 0 0 1 2.281-2.282m0 1.16c-.618 0-1.122.503-1.122 1.121 0 .619.504 1.122 1.122 1.122.62 0 1.122-.503 1.122-1.122 0-.618-.503-1.122-1.122-1.122" clip-rule="evenodd" /></symbol>'});Me().add(Nh);const Uh=Nh;var Gh=new(_e())({id:"space_new",use:"space_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="space_new"><path d="M2 13.77V11H0v2.77C0 17.2 2.79 20 6.23 20H9v-2H6.23C3.9 18 2 16.1 2 13.77m0-7.54C2 3.9 3.9 2 6.23 2H9V0H6.23A6.23 6.23 0 0 0 0 6.23V9h2zM12 10c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2m6 3.77C18 16.1 16.1 18 13.77 18H11v2h2.77C17.2 20 20 17.21 20 13.77V11h-2zM13.77 0H11v2h2.77C16.1 2 18 3.9 18 6.23V9h2V6.23A6.23 6.23 0 0 0 13.77 0" /></symbol>'});Me().add(Gh);const Wh=Gh;var qh=new(_e())({id:"spaces_v2",use:"spaces_v2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="spaces_v2"><path d="M22.27 4.22c-.17-.85-.65-1.49-1.38-1.85-.89-.45-2.11-.43-3.58.02.82.46 1.58 1.02 2.25 1.66.18.02.32.05.43.11.12.06.25.16.31.47.08.4.01.94-.19 1.56A9.926 9.926 0 0 0 12 2C6.49 2 2 6.49 2 12c0 1.25.25 2.43.67 3.54-.85 1.7-1.17 3.13-.94 4.25.2.96.8 1.67 1.7 1.99.36.13.76.19 1.2.19 2.25 0 5.54-1.59 8.98-4.4 4.73-3.87 9.37-9.86 8.66-13.35M4.1 19.89c-.2-.07-.34-.18-.41-.51-.08-.39 0-.94.2-1.58.54.75 1.17 1.41 1.89 1.99-.72.19-1.3.23-1.68.1m3.91-.99C5.62 17.52 4 14.95 4 12c0-4.41 3.59-8 8-8 3.1 0 5.79 1.78 7.11 4.36-1.33 2.31-3.69 5.14-6.77 7.65-1.58 1.3-3.05 2.24-4.33 2.89m12.56-5.35c-.34.4-.69.78-1.06 1.16-1.04 2.89-3.69 5-6.87 5.26 0 0-.01 0-.01.01-1.07.6-2.15 1.18-3.32 1.65.85.24 1.75.37 2.67.37 5.51 0 10-4.49 10-10 0-.1-.01-.2-.01-.29-.42.65-.89 1.26-1.4 1.84" /></symbol>'});Me().add(qh);const Kh=qh;var Jh=new(_e())({id:"stock_config",use:"stock_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="stock_config"><path fill-rule="evenodd" d="M1 2.933C1 2.418 1.348 2 1.778 2h3.189a.7.7 0 0 1 .7.7v.933H14.3a.7.7 0 0 1 .7.7v7.934c0 .515-.348.933-.778.933H1.778c-.43 0-.778-.418-.778-.933zM7.012 6.38l-.098.84-.86.217-1.359-1.392a2.21 2.21 0 0 0-.195.918c0 1.195.958 2.173 2.14 2.173.234 0 .45-.05.664-.119l2.375 2.42c.45.454 1.143.484 1.543.079.401-.405.362-1.096-.078-1.55l-2.432-2.45c.039-.178.068-.375.068-.553A2.145 2.145 0 0 0 6.64 4.8c-.342 0-.664.089-.948.227z" clip-rule="evenodd" /></symbol>'});Me().add(Jh);const Qh=Jh;var $h=new(_e())({id:"switch_off",use:"switch_off-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="switch_off"><path d="M11.58 2.712a.75.75 0 0 0-.981 1.136A5.479 5.479 0 0 1 12.499 8c0 3.033-2.468 5.5-5.5 5.5a5.506 5.506 0 0 1-5.5-5.5 5.48 5.48 0 0 1 1.9-4.152.75.75 0 1 0-.981-1.136A6.985 6.985 0 0 0 0 8c0 3.86 3.141 7 7 7s7-3.14 7-7a6.98 6.98 0 0 0-2.42-5.288M7 8.75A.75.75 0 0 0 7.75 8V1a.75.75 0 0 0-1.5 0v7c0 .414.336.75.75.75" /></symbol>'});Me().add($h);const Yh=$h;var Zh=new(_e())({id:"system_overview",use:"system_overview-usage",viewBox:"0 0 32 32",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="system_overview"><path d="M16 14c.51 0 .98.2 1.33.52l2.68-2.98A5.99 5.99 0 0 0 16 10.01c-3.29 0-6 2.71-6 6s2.71 6 6 6 6-2.71 6-6a6 6 0 0 0-.48-2.36l-3.68 1.57A2.006 2.006 0 0 1 16 18.01c-1.1 0-2-.9-2-2S14.9 14 16 14M3.47 16C4.84 10.25 10.06 6.11 16 6.11c2.41 0 4.69.69 6.65 1.89H21.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5H28V4.5c0-.83-.67-1.5-1.5-1.5S25 3.67 25 4.5v1.19c-2.6-1.76-5.7-2.8-9-2.8C8.43 2.89 1.8 8.26.24 15.67L.17 16l.07.33c.19.92.47 1.81.81 2.67H4.6c-.5-.94-.88-1.94-1.13-3m28.29-.33c-.19-.92-.47-1.81-.81-2.67H27.4c.5.94.88 1.94 1.13 3-1.37 5.75-6.59 9.89-12.53 9.89-2.41 0-4.69-.69-6.65-1.89h1.15c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H4v6.5c0 .83.67 1.5 1.5 1.5S7 28.33 7 27.5v-1.19c2.6 1.76 5.7 2.8 9 2.8 7.57 0 14.2-5.37 15.76-12.78l.07-.33z" /></symbol>'});Me().add(Zh);const Xh=Zh;var ev=new(_e())({id:"system_overview_press",use:"system_overview_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="system_overview_press"><path d="M3.07 12H7.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.12 0 2.03-.89 2.07-2H1.01c.04 1.11.94 2 2.06 2m9.86-10H3.07C1.93 2 1 2.93 1 4.07V9h14V4.07C15 2.93 14.07 2 12.93 2" /></symbol>'});Me().add(ev);const tv=ev;var nv=new(_e())({id:"text_add",use:"text_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="text_add"><path d="M12 8.5c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5m2 4.25h-1.25V14h-1.5v-1.25H10v-1.5h1.25V10h1.5v1.25H14zM12.5 1.54V5H14V1.54C14 .69 13.31 0 12.46 0H1.54C.69 0 0 .69 0 1.54V5h1.5V1.54c0-.02.02-.04.04-.04h4.71v11H3V14h4.75V1.5h4.71c.02 0 .04.02.04.04" /></symbol>'});Me().add(nv);const rv=nv;var ov=new(_e())({id:"thumb_down",use:"thumb_down-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_down"><path d="M20.4 4h-3l-2-2H5.6L2 5.6v8.8L4.6 17H9v3.4l1.6 1.6h3.8l1.6-1.6v-3l1.4-1.4H22V5.6zM16 14.6l-2 2v3l-.4.4h-2.2l-.4-.4V15H5.4L4 13.6V12h5v-1H4V8h5V7H4v-.6L6.4 4h8.2L16 5.4zm4-.6h-2V6h1.6l.4.4z" /></symbol>'});Me().add(ov);const av=ov;var iv=new(_e())({id:"thumb_up",use:"thumb_up-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_up"><path d="M19.4 7H15V3.6L13.4 2H9.6L8 3.6v3L6.6 8H2v10.4L3.6 20h3l2 2h9.8l3.6-3.6V9.6zM6 18H4.4l-.4-.4V10h2zm14-6h-5v1h5v3h-5v1h5v.6L17.6 20H9.4L8 18.6V9.4l2-2v-3l.4-.4h2.2l.4.4V9h5.6l1.4 1.4z" /></symbol>'});Me().add(iv);const lv=iv;var cv=new(_e())({id:"tiny_buttons",use:"tiny_buttons-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="tiny_buttons"><path d="M14.525 18.5h1.65V17h-1.65zm.225-15H3.5v11.25h3.75v1.425h1.5V14.75h6v-6h1.425v-1.5H14.75zm-1.5 9.75H5V5h8.25zm-1.2 5.25h1.65V17h-1.65zm-2.475 0h1.65V17h-1.65zm-2.325 0h1.5V17h-1.5zM17 7.25v1.5h1.5v-1.5zm0 3.975h1.5v-1.65H17zm0 7.275h1.5V17H17zm0-2.325h1.5v-1.65H17zm0-2.475h1.5v-1.65H17zM4 1h14v-2H4zm17 3v14h2V4zm-3 17H4v2h14zM1 18V4h-2v14zm3 3a3 3 0 0 1-3-3h-2a5 5 0 0 0 5 5zm17-3a3 3 0 0 1-3 3v2a5 5 0 0 0 5-5zM18 1a3 3 0 0 1 3 3h2a5 5 0 0 0-5-5zM4-1a5 5 0 0 0-5 5h2a3 3 0 0 1 3-3z" /></symbol>'});Me().add(cv);const sv=cv;var uv=new(_e())({id:"training",use:"training-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="training"><path fill="#8F9EAA" fill-rule="evenodd" d="M1.3 6.661 3.507 7.8v2.976c.016.276.1.544.243.777.142.23.337.42.568.552.87.6 2.314.896 3.681.896s2.81-.296 3.68-.896a1.6 1.6 0 0 0 .569-.552c.143-.233.227-.5.243-.777V7.796l.337-.183v3.35l.01.031a.589.589 0 0 0 .208.294.554.554 0 0 0 .662 0 .59.59 0 0 0 .208-.294l.01-.03V7.058l.772-.397h.002a.558.558 0 0 0 .225-.222.588.588 0 0 0-.031-.623.552.552 0 0 0-.246-.195l-.033-.013h-.037l-6.4-2.57a.508.508 0 0 0-.395 0L1.35 5.623a.552.552 0 0 0-.246.196.584.584 0 0 0 .194.843m10.07 1.701-.013 1.246v1.17c0 .048-.034.146-.181.279-.141.127-.36.262-.658.385-.592.245-1.464.43-2.556.43s-1.963-.19-2.555-.438a2.324 2.324 0 0 1-.658-.39c-.147-.134-.182-.233-.182-.281V8.357l1.454.751 1.101.573.577.298a.514.514 0 0 0 .495.001l.605-.298 1.119-.57zm-3.917.234L2.866 6.22l5.096-2.045 5.096 2.042-4.586 2.378-.51.245z" clip-rule="evenodd" /></symbol>'});Me().add(uv);const dv=uv;var hv=new(_e())({id:"trashcan",use:"trashcan-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="trashcan"><path d="M4.75 5.188v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.562v-6.75a.557.557 0 0 0-.562-.563.557.557 0 0 0-.563.563m3.375 0v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.562v-6.75a.557.557 0 0 0-.562-.563.557.557 0 0 0-.563.563m4.669.73-.259.26.09-1.474v-.068H11.5l-.495 7.92a1.147 1.147 0 0 1-1.147 1.08H4.143a1.147 1.147 0 0 1-1.148-1.08L2.568 5.75 2.433 3.5h10.755a.557.557 0 0 0 .562-.562.557.557 0 0 0-.562-.563H9.25A2.257 2.257 0 0 0 7 .125a2.257 2.257 0 0 0-2.25 2.25H.813a.557.557 0 0 0-.563.563c0 .314.248.562.563.562h.495l.067 1.193.09 1.473-.259-.259a.557.557 0 0 0-.798 0 .557.557 0 0 0 0 .8L1.533 7.83c.01.011.022.011.033.023l.293 4.759A2.286 2.286 0 0 0 4.13 14.75h5.704a2.27 2.27 0 0 0 2.272-2.137l.293-4.748c.011-.011.022-.011.034-.022l1.125-1.125a.557.557 0 0 0 0-.8c-.225-.224-.551-.224-.765 0M7 1.25c.619 0 1.125.506 1.125 1.125h-2.25c0-.619.506-1.125 1.125-1.125" /></symbol>'});Me().add(hv);const vv=hv;var mv=new(_e())({id:"triangle",use:"triangle-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="triangle"><path d="M24 0 12 16 0 0z" /></symbol>'});Me().add(mv);const gv=mv;var fv=new(_e())({id:"triangle_down",use:"triangle_down-usage",viewBox:"0 0 10 5",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 5" id="triangle_down"><path d="m0 0 5 5 5-5z" /></symbol>'});Me().add(fv);const pv=fv;var wv=new(_e())({id:"top",use:"top-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="top"><path d="M7.293 2.707a1 1 0 0 1 1.414 0l3.586 3.586c.63.63.184 1.707-.707 1.707H4.414c-.89 0-1.337-1.077-.707-1.707z" /><path d="M6 6h4v8H6z" /></symbol>'});Me().add(wv);const bv=wv;var yv=new(_e())({id:"unknownError",use:"unknownError-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="unknownError"><path d="M11.17 2H4.83C2.26 2 .68 4.8 2 7l3.35 5.59c.6 1 1.62 1.5 2.65 1.5 1.03 0 2.05-.5 2.65-1.5L14 7c1.32-2.2-.26-5-2.83-5m1.55 4.23-3.35 5.59c-.42.7-1.09.77-1.36.77s-.94-.07-1.36-.77L3.28 6.23c-.49-.81-.18-1.54-.02-1.81s.62-.92 1.57-.92h6.34c.95 0 1.41.64 1.57.91.16.27.46 1-.02 1.82M8 8.35c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75m-.18-3.31c-.43.1-.71.53-.61.96l.36 1.6a.434.434 0 0 0 .85 0L8.78 6c.02-.11.03-.24 0-.35a.79.79 0 0 0-.96-.61" /></symbol>'});Me().add(yv);const xv=yv;var Ov=new(_e())({id:"universe",use:"universe-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="universe"><path d="M9 13.35c.75 0 1.35-.6 1.35-1.35 0-.75-.6-1.35-1.35-1.35-.75 0-1.35.6-1.35 1.35 0 .75.6 1.35 1.35 1.35m2.23-2.12c.35.35.93.26 1.19-.16.37-.6.58-1.31.58-2.07 0-2.21-1.79-3.97-4-3.98a3.982 3.982 0 0 0-3.42 6.05c.26.43.84.51 1.19.16.25-.25.28-.63.1-.93-.23-.37-.37-.82-.37-1.3 0-1.38 1.12-2.49 2.5-2.49S11.5 7.63 11.5 9c0 .48-.14.93-.37 1.31-.18.29-.15.67.1.92M5.71 5.71c.53-.53.53-1.38 0-1.91s-1.38-.53-1.91 0-.53 1.38 0 1.91 1.38.53 1.91 0M9 10c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1m.42-7.99c-.81-.05-1.58.04-2.31.25-.43.12-.66.59-.49 1.01l.01.01c.14.34.51.53.86.43.89-.26 1.87-.3 2.88-.05 1.98.48 3.57 2.11 4.01 4.1a5.514 5.514 0 0 1-6.6 6.6c-1.99-.44-3.62-2.02-4.1-4-.25-1.01-.21-2 .05-2.89.1-.35-.1-.72-.43-.86 0 0-.01 0-.01-.01a.759.759 0 0 0-1.01.49c-.2.73-.3 1.5-.25 2.3.2 3.59 3.24 6.52 6.84 6.6 3.98.08 7.22-3.15 7.15-7.12-.08-3.59-3.01-6.65-6.6-6.86" /></symbol>'});Me().add(Ov);const Bv=Ov;var Cv=new(_e())({id:"unreachable",use:"unreachable-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="unreachable"><path d="M10 8.5H8V10H5.62l-1.38 1.5h.96v2h1.62v-2H9.5V10h2V3.62L10 5.24zM11.5.45a.746.746 0 0 0-1.06.05l-.46.5H.5v9h1.3L.44 11.5c-.28.31-.26.78.05 1.06.14.13.32.2.5.2.2 0 .41-.08.55-.25l10-11c.29-.31.27-.79-.04-1.06M3.17 8.5H2v-6h1.25V4h1.5V2.5h3.87z" /></symbol>'});Me().add(Cv);const _v=Cv;var zv=new(_e())({id:"unreachableNode",use:"unreachableNode-usage",viewBox:"0 0 231 230",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 231 230" id="unreachableNode"><path fill="#EDF2F6" d="M115.5 226c61.304 0 111-49.696 111-111S176.804 4 115.5 4 4.5 53.696 4.5 115s49.696 111 111 111" /><path fill="#E2E6EC" d="M212.149 115a96.657 96.657 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432 96.653 96.653 0 0 1-60.974-64.43 96.65 96.65 0 0 1 17.25-87.015l3.303-4.037A96.649 96.649 0 0 1 212.149 115" /><mask id="unreachableNode_a" width="206" height="194" x="6" y="18" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#E2E6EC" d="M211.798 114.743a96.645 96.645 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432C68.697 200.905 26.108 203.209 15.5 192c-10.608-11.209.281-35.172-4-50-4.281-14.828-6-31.361-3-46.5 3.001-15.139-.614-35.927 9-48H40c13.017-14.675 33.037-22.027 52.086-26.708a96.648 96.648 0 0 1 119.712 93.951" /></mask><g mask="url(#unreachableNode_a)"><g clip-path="url(#unreachableNode_b)"><path fill="#45535C" d="M217.255 50H19.142a2.641 2.641 0 0 0-2.642 2.642v134.716A2.642 2.642 0 0 0 19.142 190h198.113a2.641 2.641 0 0 0 2.641-2.642V52.642A2.641 2.641 0 0 0 217.255 50" /><path fill="#546C82" d="M19.142 50h198.113a2.644 2.644 0 0 1 2.641 2.642v3.962H16.5v-3.962A2.641 2.641 0 0 1 19.142 50" /><path fill="#0F0" d="M21.123 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963" opacity=".5" /><path fill="#FF0" d="M27.727 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963" opacity=".5" /><path fill="red" d="M34.33 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963" opacity=".5" /><path stroke="#fff" stroke-miterlimit="10" stroke-width="2" d="m34.33 88.962 6.604-6.603-6.604-6.604M44.236 88.302h11.887" /></g><path fill="#7698B0" d="M145.374 81.989a2.328 2.328 0 0 0-4.656 0v19.552a2.327 2.327 0 0 0 4.656 0z" /><path fill="#6D8CA3" d="M145.373 83.386h7.821a2.421 2.421 0 0 1 2.421 2.42v11.918a2.42 2.42 0 0 1-2.421 2.421h-7.821z" /><path fill="#658196" d="M155.615 88.972h2.979a2.607 2.607 0 0 1 2.607 2.607v.372a2.61 2.61 0 0 1-2.607 2.607h-2.979z" /><path fill="#7698B0" d="M219.897 143.904v1.862h-36.35a9.31 9.31 0 0 1-9.311-9.31v-36.312c0-4.096-2.7-7.448-6.052-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.19 7.914 9.31v36.312a7.447 7.447 0 0 0 7.449 7.448z" /><path fill="#80A4BF" d="M124.89 85.247h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724M124.89 94.558h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724" /><path fill="#6D8CA3" d="M127.777 81.523h12.941v20.484h-12.941a3.818 3.818 0 0 1-3.818-3.818V85.341a3.815 3.815 0 0 1 2.357-3.527c.463-.192.959-.29 1.461-.29" /><path fill="#19B357" d="M106.269 107.127a2.327 2.327 0 0 0-4.655 0v19.553a2.327 2.327 0 0 0 4.655 0z" /><path fill="#00AB44" d="M106.269 108.523h7.821a2.419 2.419 0 0 1 2.42 2.421v11.918a2.419 2.419 0 0 1-2.42 2.42h-7.821z" /><path fill="#00993D" d="M116.51 114.11h2.98a2.607 2.607 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.98z" /><path fill="#00AB44" d="M219.896 132.732c-.016.624 0 1.136 0 1.862h-75.454a9.312 9.312 0 0 1-9.311-9.311c0-4.096-2.7-7.448-6.051-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.189 7.914 9.31a7.447 7.447 0 0 0 7.448 7.449z" /><path fill="#00CB51" d="M85.786 110.386h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724M85.786 119.696h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724" /><path fill="#00AB44" d="M88.672 106.662h12.942v20.483H88.672a3.817 3.817 0 0 1-3.817-3.817v-12.849a3.818 3.818 0 0 1 3.817-3.817" /><path fill="#7698B0" d="M124.89 149.025a2.328 2.328 0 1 0-4.655 0v19.552a2.328 2.328 0 0 0 4.655 0z" /><path fill="#6D8CA3" d="M124.89 150.421h7.821a2.421 2.421 0 0 1 2.421 2.421v11.824a2.421 2.421 0 0 1-2.421 2.421h-7.821z" /><path fill="#658196" d="M135.131 156.008h2.98a2.606 2.606 0 0 1 2.607 2.607v.372a2.608 2.608 0 0 1-2.607 2.607h-2.98z" /><path fill="#7698B0" d="M219.896 122.49h-56.833a7.447 7.447 0 0 0-7.448 7.448v20.484c0 5.12-3.538 9.31-7.914 9.31h-6.983v-1.862h6.983c3.352 0 6.052-3.352 6.052-7.448v-20.484a9.31 9.31 0 0 1 9.31-9.31h56.833z" /><path fill="#80A4BF" d="M104.407 152.283h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724M104.407 161.594h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724" /><path fill="#6D8CA3" d="M107.293 148.559h12.942v20.483h-12.942a3.817 3.817 0 0 1-3.817-3.818v-12.848a3.815 3.815 0 0 1 3.817-3.817" /></g><defs><clipPath id="unreachableNode_b"><path fill="#fff" d="M16.5 50h203.396v140H16.5z" /></clipPath></defs></symbol>'});Me().add(zv);const Mv=zv;var Ev=new(_e())({id:"update",use:"update-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update"><path d="M12.29 7.29 9 10.59 7.71 9.3a.996.996 0 1 0-1.41 1.41l2.71 2.71 4.71-4.71a.996.996 0 0 0 0-1.41 1.02 1.02 0 0 0-1.43-.01M2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1m17.95-1h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1" /></symbol>'});Me().add(Ev);const Sv=Ev;var kv=new(_e())({id:"update_pending",use:"update_pending-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update_pending"><path d="M2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1m9.5-3.21a1.54 1.54 0 0 0-1.86-1.14A1.53 1.53 0 0 0 8.5 7.5l.59 2.5a.93.93 0 0 0 1.81 0l.59-2.5c.06-.23.07-.47.01-.71M10 11.24c-.7 0-1.26.56-1.26 1.26s.56 1.26 1.26 1.26 1.26-.56 1.26-1.26-.56-1.26-1.26-1.26M19.95 9h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1" /></symbol>'});Me().add(kv);const jv=kv;var Hv=new(_e())({id:"upload",use:"upload-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="upload"><path d="M6.21 7.21 9 4.41V14c0 .55.45 1 1 1s1-.45 1-1V4.41l2.79 2.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L10 .59l-5.21 5.2a.996.996 0 0 0 0 1.41c.39.39 1.03.4 1.42.01M18 14v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 17.1V14H0v3.1C0 19.25 1.75 21 3.9 21h12.2c2.15 0 3.9-1.75 3.9-3.9V14z" /></symbol>'});Me().add(Hv);const Pv=Hv;var Vv=new(_e())({id:"user_config",use:"user_config-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="user_config"><path d="M8 1.333c2.206 0 4 1.794 4 4s-1.794 4-4 4H6.167a2.837 2.837 0 0 0-2.834 2.834v2.5H2v-2.5a4.171 4.171 0 0 1 3.147-4.036A3.986 3.986 0 0 1 4 5.333c0-2.206 1.794-4 4-4M11.292 12.333c0-.206.168-.375.375-.375.206 0 .375.169.375.375a.376.376 0 0 1-.375.375.376.376 0 0 1-.375-.375" /><path fill-rule="evenodd" d="m13.703 12.015.064.037.333.188-.04.37c-.023.184-.06.357-.117.518l-.124.353-.371.026-.083.004c-.052.075-.112.15-.176.217l.015.083.06.367-.315.199c-.142.09-.3.161-.476.225l-.353.124-.25-.274-.053-.056c-.05.007-.098.007-.143.007-.045 0-.094-.004-.142-.007l-.053.056-.251.274-.353-.124a2.233 2.233 0 0 1-.476-.225l-.315-.199.06-.367.015-.083a1.935 1.935 0 0 1-.176-.217l-.083-.004-.37-.026-.125-.353a2.359 2.359 0 0 1-.116-.517l-.041-.372.322-.183.064-.038a2.3 2.3 0 0 1 .068-.277l-.05-.068-.213-.307.199-.315c.101-.162.206-.296.322-.413l.263-.266.345.139.082.034c.083-.046.17-.09.255-.124l.02-.075.108-.356.371-.042.045-.007.015-.002c.054-.008.124-.017.203-.017.073 0 .136.008.19.015l.027.004.045.007.371.042.11.356.022.071c.086.034.172.075.255.124l.082-.034.345-.139.263.266c.116.12.22.255.322.413l.199.315-.214.307-.049.068c.03.09.053.184.068.277m-2.974.318a.938.938 0 1 0 1.876 0 .938.938 0 0 0-1.876 0" clip-rule="evenodd" /></symbol>'});Me().add(Vv);const Av=Vv;var Lv=new(_e())({id:"user",use:"user-usage",viewBox:"0 0 16 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 18" id="user"><path d="M13.72 11.59c-.02.02-.04.05-.06.07-.35.35-.74.66-1.14.94 1.18.71 1.98 2 1.98 3.48V18H16v-1.92c0-1.85-.9-3.48-2.28-4.49M8 0C4.69 0 2 2.69 2 6c0 1.89.87 3.57 2.24 4.67-2.43.6-4.24 2.79-4.24 5.41V18h1.5v-1.92C1.5 13.83 3.33 12 5.58 12H8c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 1.5 8 1.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5" /></symbol>'});Me().add(Lv);const Dv=Lv;var Fv=new(_e())({id:"user_press",use:"user_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="user_press"><path d="M10 7.2c.6-.5 1-1.3 1-2.2 0-1.7-1.3-3-3-3S5 3.3 5 5c0 .9.4 1.7 1 2.2-1.7.5-3 2.1-3 4V14h10v-2.8c0-1.9-1.3-3.5-3-4" /></symbol>'});Me().add(Fv);const Iv=Fv;var Tv=new(_e())({id:"users",use:"users-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="users"><path d="M11.71 6.92C12.5 6.19 13 5.16 13 4c0-2.21-1.79-4-4-4-1.11 0-2.1.46-2.82 1.2C5.81 1.08 5.42 1 5 1 2.79 1 1 2.79 1 5c0 1.16.5 2.19 1.29 2.92A4.059 4.059 0 0 0 0 11.56V14h1.5v-2.44C1.5 10.15 2.65 9 4.06 9h1.88c1.41 0 2.56 1.15 2.56 2.56V14H10v-2.44c0-1.6-.94-2.98-2.29-3.64C8.5 7.19 9 6.16 9 5c0-1.22-.56-2.3-1.42-3.03.41-.29.89-.47 1.42-.47a2.494 2.494 0 0 1 .8 4.86c-.09.32-.23.63-.38.92l.24.72h.27c1.41 0 2.56 1.15 2.56 2.56V14h1.5v-3.44c.01-1.6-.93-2.98-2.28-3.64M5 7.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5" /></symbol>'});Me().add(Tv);const Rv=Tv;var Nv=new(_e())({id:"value",use:"value-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="value"><path d="M9.682 1.5A2.821 2.821 0 0 1 12.5 4.318v5.365a2.821 2.821 0 0 1-2.818 2.818H4.318A2.822 2.822 0 0 1 1.5 9.682V4.318A2.821 2.821 0 0 1 4.318 1.5zm0-1.5H4.318A4.318 4.318 0 0 0 0 4.318v5.365A4.317 4.317 0 0 0 4.318 14h5.365a4.318 4.318 0 0 0 4.318-4.318V4.318A4.32 4.32 0 0 0 9.682 0" /><path d="M10.5 6.25v-1.5h-.963l.156-1.25H8.181l-.156 1.25H6.537l.156-1.25H5.182l-.156 1.25H3.5v1.5h1.338l-.188 1.5H3.5v1.5h.963l-.156 1.25h1.512l.156-1.25h1.488l-.156 1.25h1.512l.156-1.25H10.5v-1.5H9.162l.188-1.5zm-2.85 1.5H6.162l.188-1.5h1.488z" /></symbol>'});Me().add(Nv);const Uv=Nv;var Gv=new(_e())({id:"view_list",use:"view_list-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="view_list"><path d="M10 17h6c1.1 0 2-.9 2-2h-8zm0-8h6c1.1 0 2-.9 2-2h-8zm8.48-7H5.52C3.58 2 2 3.58 2 5.52v12.97c0 1.94 1.58 3.52 3.52 3.52h12.97c1.94 0 3.52-1.58 3.52-3.52V5.52A3.54 3.54 0 0 0 18.48 2M6 20h-.48C4.68 20 4 19.32 4 18.48V5.52C4 4.68 4.68 4 5.52 4H6zm14-1.52c0 .84-.68 1.52-1.52 1.52H8V4h10.48c.84 0 1.52.68 1.52 1.52zM10 13h6c1.1 0 2-.9 2-2h-8z" /></symbol>'});Me().add(Gv);const Wv=Gv;var qv=new(_e())({id:"single_node_view",use:"single_node_view-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view"><path d="m7.22 2.75-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58m2.53-.2V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05M4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05m-1.06 9.12-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06M12.75 1.9l-1.39-.57-.59 1.43c.49.14.95.33 1.39.57zm1.34 3.07 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06m-1.06 9.12 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06M5 8.5H3.5V10H5zm10.5-3h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5m0 5.5h-13V7h13zm-7.25 4.45V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05m2.53-.2.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57m-5.53.85 1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57z" /></symbol>'});Me().add(qv);const Kv=qv;var Jv=new(_e())({id:"single_node_view_press",use:"single_node_view_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view_press"><path d="M9.75 2.55V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05m-2.53.2-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58m5.53-.85-1.39-.57-.59 1.43c.49.14.95.33 1.39.57zM4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05m9.12 1.06 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06M5.25 16.1l1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57zm7.78-2.01 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06M15.5 5.5h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5M5 10H3.5V8.5H5zm-1.09 3.03-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06m6.87 2.22.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57m-2.53.2V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05" /></symbol>'});Me().add(Jv);const Qv=Jv;var $v=new(_e())({id:"virtualization",use:"virtualization-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="virtualization"><path d="M11.69 3H6.31C5.59 3 5 3.59 5 4.31V5h-.69C3.59 5 3 5.59 3 6.31v5.38c0 .72.59 1.31 1.31 1.31h5.38c.72 0 1.31-.59 1.31-1.31V11h.69c.72 0 1.31-.59 1.31-1.31V4.31C13 3.59 12.41 3 11.69 3M10 11.69c0 .17-.14.31-.31.31H4.31c-.17 0-.31-.14-.31-.31V6.31c0-.17.14-.31.31-.31H5v3.69c0 .72.59 1.31 1.31 1.31H10zM10 10H6.31C6.14 10 6 9.86 6 9.69V6h3.69c.17 0 .31.14.31.31zm2-.31c0 .17-.14.31-.31.31H11V6.31C11 5.59 10.41 5 9.69 5H6v-.69c0-.17.14-.31.31-.31h5.38c.17 0 .31.14.31.31z" /></symbol>'});Me().add($v);const Yv=$v;var Zv=new(_e())({id:"warning",use:"warning-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.064C22.129 6.509 17.62 2 12.065 2m1.006 15.097h-2.013v-2.013h2.013zm0-4.026h-2.013V7.032h2.013z" clip-rule="evenodd" /><mask id="warning_a" width="21" height="21" x="2" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.064C22.129 6.509 17.62 2 12.065 2m1.006 15.097h-2.013v-2.013h2.013zm0-4.026h-2.013V7.032h2.013z" clip-rule="evenodd" /></mask></symbol>'});Me().add(Zv);const Xv=Zv;var em=new(_e())({id:"warning_triangle",use:"warning_triangle-usage",viewBox:"0 0 12 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 10" id="warning_triangle"><path d="M11.027 7.94 6.84.493a.887.887 0 0 0-.153-.2C6.68.287 6.68.28 6.674.28A.932.932 0 0 0 6 0a.953.953 0 0 0-.673.273C5.32.28 5.32.287 5.314.287c-.054.06-.107.12-.154.2L.974 7.94a1.23 1.23 0 0 0-.154.593c.014.394.227.767.567.967.173.1.373.16.593.16h8.04a1.158 1.158 0 0 0 1.16-1.127c.007-.193-.04-.4-.153-.593M6 7.667A.669.669 0 0 1 5.334 7c0-.367.3-.667.666-.667.367 0 .667.3.667.667 0 .367-.3.667-.667.667m.667-3.334-.32 1.334a.365.365 0 0 1-.433.266.372.372 0 0 1-.267-.266l-.313-1.334a.688.688 0 0 1 .506-.826.688.688 0 0 1 .827.826" /></symbol>'});Me().add(em);const tm=em;var nm=new(_e())({id:"warning_triangle_hollow",use:"warning_triangle_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning_triangle_hollow"><path d="M12 15.8c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2m-.37-6.69c-.84.2-1.36 1.05-1.15 1.89l.73 3c.07.29.29.53.6.6.44.11.88-.16.99-.6l.73-3c.06-.23.06-.49 0-.74a1.58 1.58 0 0 0-1.9-1.15m10.96 9.19L13.86 3.22A2.137 2.137 0 0 0 12 2.15c-.77 0-1.47.4-1.86 1.07L1.41 18.3c-.45.77-.45 1.69 0 2.47.45.77 1.24 1.23 2.14 1.23h16.91a2.456 2.456 0 0 0 2.13-3.7m-1.73 1.47c-.05.09-.17.23-.4.23H3.54c-.23 0-.35-.15-.4-.23a.451.451 0 0 1 0-.47l8.73-15.08c.01-.02.04-.08.13-.08s.12.06.13.08l8.73 15.08c.12.2.05.38 0 .47" /></symbol>'});Me().add(nm);const rm=nm;var om=new(_e())({id:"weights_compare",use:"weights_compare-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="weights_compare"><path d="M2.111 11.778v-.89H.778v.89zM13.222 10v-.889H11.89V10zM.778 9.111V10H2.11v-.889zm12.444 2.667v-.89H11.89v.89zm0-8.89V2H11.89v.889zm-3.529-.47-.942.942 1.974 1.973H3.277L5.25 3.36l-.943-.942L2.11 4.612v-.834H.778v.889h1.279L.724 6l1.333 1.333H.777v.89h1.334v-.835l2.196 2.194.942-.942-1.973-1.973h7.448L8.75 8.64l.943.942 2.196-2.195v.835h1.333v-.889h-1.279L13.277 6l-1.334-1.333h1.28v-.89h-1.334v.835zm3.53-1.307V.222h-1.334v.89zm-12.445 0H2.11V.222H.778zM2.11 2.89V2H.778v.889z" /></symbol>'});Me().add(om);const am=om;var im=new(_e())({id:"weights_drill_down",use:"weights_drill_down-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="weights_drill_down"><path d="M13.222 8.333V3.89H7.89v1.555H4.11v-.666h2V.333H.778v4.445h2v7.333h5.11v1.556h5.334V9.222H7.89v1.556H4.11v-4H7.89v1.555zm-4-3.11h2.667V7H9.222zm0 5.333h2.667v1.777H9.222zm-7.11-7.112V1.667h2.666v1.777z" /></symbol>'});Me().add(im);const lm=im;var cm=new(_e())({id:"x",use:"x-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="x"><path d="m13.4 12 5.3-5.3c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4.2.2.4.3.7.3.3 0 .5-.1.7-.3l5.3-5.3 5.3 5.3c.2.2.5.3.7.3.2 0 .5-.1.7-.3.4-.4.4-1 0-1.4z" /></symbol>'});Me().add(cm);const sm=cm;var um=new(_e())({id:"firewall_solid",use:"firewall_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="firewall_solid"><path d="M20 3c-3.71 0-7.52-1.88-7.55-1.89L12 .88l-.45.22C11.52 1.12 7.72 3 4 3H3v7.03c0 5.29 2.94 10.05 7.68 12.42l1.32.66 1-.5V3.51c1.39.55 3.62 1.27 6 1.44v5.07c0 4.3-2.27 8.19-5.97 10.3.12.72.64 1.31 1.32 1.54C18.48 19.35 21 14.91 21 10.01V3z" /></symbol>'});Me().add(um);const dm=um;var hm=new(_e())({id:"qualityOfService_solid",use:"qualityOfService_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="qualityOfService_solid"><path d="m22.28 8.88-1.99-1.67-.45-2.56c-.17-.96-1-1.65-1.97-1.65h-2.6l-1.99-1.67c-.37-.31-.83-.47-1.29-.47-.46 0-.91.16-1.29.47L8.72 3h-2.6c-.97 0-1.8.7-1.97 1.65L3.7 7.21 1.72 8.88c-.74.62-.93 1.69-.45 2.53l1.3 2.25-.45 2.56a2 2 0 0 0 1.29 2.23l2.44.89 1.3 2.25c.37.63 1.03 1 1.73 1 .23 0 .46-.04.68-.12l2.44-.89 2.44.89a1.994 1.994 0 0 0 2.41-.88l1.3-2.25 2.44-.89c.91-.33 1.45-1.27 1.29-2.23l-.45-2.56 1.3-2.25c.49-.84.3-1.91-.45-2.53m-5.57 1.83L11 16.41 7.29 12.7a.996.996 0 1 1 1.41-1.41l2.29 2.29 4.29-4.29a.996.996 0 0 1 1.41 0c.39.39.41 1.03.02 1.42" /></symbol>'});Me().add(hm);const vm=hm;var mm=new(_e())({id:"applications_solid",use:"applications_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="applications_solid"><path d="M15.87 16c-1.19 0-2.24-.55-2.95-1.39C14.15 14 15 12.75 15 11.3V5.71C15 3.67 13.34 2 11.29 2H5.71C3.66 2 2 3.66 2 5.71v5.59c0 2.04 1.66 3.71 3.71 3.71h.4c-.06.23-.11.47-.11.72v1.57c0 1.5 1.22 2.72 2.72 2.72h1.37a3.68 3.68 0 0 1-.09-.82V18H8.72c-.4 0-.72-.32-.72-.72v-1.57c0-.4.32-.72.72-.72h2.42c-.08.26-.13.53-.13.82v3.37c0 1.55 1.26 2.82 2.82 2.82h3.37c1.55 0 2.82-1.26 2.82-2.82V15.9c-.28.07-.57.1-.87.1zm3.26-10H16v2h3.13c.48 0 .87.39.87.87v3.27c0 .48-.39.87-.87.87h-3.27c-.06 0-.12-.02-.18-.04-.25.65-.64 1.23-1.14 1.7.4.21.84.34 1.32.34h3.27c1.58 0 2.87-1.29 2.87-2.87V8.87C22 7.29 20.71 6 19.13 6" /></symbol>'});Me().add(mm);const gm=mm;var fm=new(_e())({id:"networking_stack",use:"networking_stack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="networking_stack"><path d="m2.94 9.26 3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.82-.47 1.31-1.32 1.31-2.27s-.49-1.8-1.31-2.27l-3.73-2.15c-.71-.41-1.53-.63-2.35-.63-.82 0-1.64.22-2.35.63L2.94 4.72c-.82.47-1.31 1.32-1.31 2.27s.49 1.79 1.31 2.27m.75-3.24 3.69-2.13c.5-.29 1.05-.43 1.6-.43s1.11.14 1.6.43l3.73 2.15c.75.43.75 1.51 0 1.94l-3.69 2.13c-.5.29-1.05.43-1.6.43s-1.11-.14-1.6-.43L3.69 7.96c-.75-.43-.75-1.51 0-1.94m3.46 1.8c.72.41 1.88.42 2.59 0 .27-.15 1.06-.61 1.29-.75.48-.27.47-.72-.01-1s-1.25-.28-1.73 0c-.42.24-.45.62-.12.89-.11-.04-.21-.09-.31-.14-.38-.22-.56-.51-.53-.8-.44.01-.87.11-1.2.3-.7.41-.7 1.08.02 1.5m8.26 4.07-3.69 2.13a5.43 5.43 0 0 1-5.4 0l-3.73-2.15c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.33-.56.61-.94.83m0-2-3.69 2.13a5.43 5.43 0 0 1-5.4 0L2.59 9.86c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.34-.56.62-.94.84" /></symbol>'});Me().add(fm);const pm=fm;var wm=new(_e())({id:"charts_view",use:"charts_view-usage",viewBox:"0 0 16 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 15" id="charts_view"><path d="M10.25 6.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88m.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H3.13c-.48 0-.88-.39-.88-.88V7.14l1.67 1.11 1.02.68 1.5-1.5C7.43 8.39 8.76 9 10.25 9c2.7 0 4.93-1.94 5.4-4.5a5.497 5.497 0 0 0-5.4-4.5c-2.69 0-4.93 1.94-5.4 4.5.12.63.34 1.22.65 1.75L4.75 7l-3-2h-1v7.62A2.38 2.38 0 0 0 3.13 15h9.24a2.38 2.38 0 0 0 2.38-2.38V10l-1.17-.73c-.87.24-1.81.27-2.74.06m-.59-7.83c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3" /></symbol>'});Me().add(wm);const bm=wm;var ym=new(_e())({id:"nodes_update",use:"nodes_update-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="nodes_update"><rect width="40" height="40" fill="#F9A825" rx="20" /><path fill="#FFF8E1" d="M20 10.285c-5.356 0-9.715 4.358-9.715 9.715s4.359 9.715 9.715 9.715 9.715-4.358 9.715-9.715-4.36-9.715-9.715-9.715m0 4.382a1.334 1.334 0 1 1-.001 2.668 1.334 1.334 0 0 1 0-2.668m2.666 8.67c0 .918-.744 1.663-1.662 1.663h-3.67v-.281c0-.93.742-1.679 1.666-1.708v-2.344h-1.667a2 2 0 0 1 2-2H21V23h1.666z" /></symbol>'});Me().add(ym);const xm=ym;var Om=new(_e())({id:"zoom_in",use:"zoom_in-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_in"><path d="M13.5 9h-3V6H9v3H6v1.5h3v3h1.5v-3h3z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06zM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75" /></symbol>'});Me().add(Om);const Bm=Om;var Cm=new(_e())({id:"zoom_out",use:"zoom_out-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_out"><path d="M13.5 9H6v1.5h7.5z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06zM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75" /></symbol>'});Me().add(Cm);const _m=Cm;var zm=new(_e())({id:"zoom_reset",use:"zoom_reset-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_reset"><path d="M16.836 15.75a8.141 8.141 0 0 0 1.914-5.25A8.242 8.242 0 0 0 4.5 4.85V1.5H3v6h6V6H5.499a6.733 6.733 0 1 1-1.575 6h-1.53a8.259 8.259 0 0 0 8.106 6.75 8.141 8.141 0 0 0 5.25-1.914l5.69 5.664 1.06-1.06z" /></symbol>'});Me().add(zm);const Mm=zm;var Em=new(_e())({id:"N",use:"N-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="N"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M6.494 6.666v3.633h.434c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H5.352c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.56.56 0 0 1 .181-.427c.122-.114.31-.17.563-.17v-4.7h-.188c-.289 0-.496-.054-.62-.163a.574.574 0 0 1-.182-.44c0-.18.06-.324.181-.434.125-.113.332-.17.621-.17l1.39.006 3.07 4.817V5.6H9.13c-.29 0-.496-.055-.621-.164a.574.574 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l1.577.006c.29 0 .494.055.615.165.125.109.188.253.188.433 0 .176-.06.32-.182.434-.121.113-.306.17-.556.17v5.9h-1.19z" /></symbol>'});Me().add(Em);const Sm=Em;var km=new(_e())({id:"I",use:"I-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="I"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M8.598 5.6v4.699H9.81c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H6.184c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.55.55 0 0 1 .181-.427c.125-.114.333-.17.622-.17h1.212v-4.7H6.184c-.29 0-.497-.054-.622-.163a.575.575 0 0 1-.181-.44c0-.18.06-.324.181-.434.125-.113.333-.17.622-.17l3.627.006c.289 0 .494.055.615.165.125.109.187.253.187.433s-.062.326-.187.44c-.121.109-.326.164-.615.164z" /></symbol>'});Me().add(km);const jm=km;var Hm=new(_e())({id:"D",use:"D-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="D"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M5.81 10.299v-4.7c-.253-.003-.44-.06-.562-.17a.568.568 0 0 1-.182-.433c0-.18.061-.324.182-.434.125-.113.332-.17.621-.17l2.514.006c.39 0 .771.073 1.142.217.375.145.676.328.903.551.172.168.35.398.533.691.187.293.328.584.422.873.094.29.14.643.14 1.061v.574c0 .508-.085.96-.257 1.354-.172.39-.399.71-.68.96a3.45 3.45 0 0 1-.785.546c-.39.183-.897.275-1.518.275H5.87c-.289 0-.496-.055-.62-.164a.574.574 0 0 1-.183-.44c0-.175.061-.32.182-.433.125-.113.313-.168.563-.164m1.202 0h1.277c.477 0 .836-.069 1.078-.205.317-.18.555-.408.715-.686.16-.277.24-.637.24-1.078v-.568c0-.38-.072-.711-.216-.996-.227-.446-.483-.75-.768-.914-.281-.168-.635-.252-1.06-.252H7.011z" /></symbol>'});Me().add(Hm);const Pm=Hm;var Vm=new(_e())({id:"L",use:"L-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="L"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6m2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6z" /><path d="M7.496 5.6v4.699h2.59V9.162c0-.289.055-.494.164-.615a.566.566 0 0 1 .44-.188c.175 0 .318.063.427.188.113.121.17.326.17.615V11.5h-5.69c-.288 0-.495-.055-.62-.164a.574.574 0 0 1-.182-.44.55.55 0 0 1 .182-.427c.125-.114.332-.17.62-.17h.698v-4.7h-.697c-.29 0-.496-.054-.621-.163a.575.575 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l2.602.006c.29 0 .494.055.615.165.125.109.188.253.188.433s-.063.326-.188.44c-.12.109-.326.164-.615.164z" /></symbol>'});Me().add(Vm);var Am={add_node:Se,add_user:je,aggregation_avg:Pe,aggregation_max:Ae,aggregation_med:De,aggregation_min:Ie,aggregation_sum:Re,aggregation_sum_abs:Ue,alarm:We,alarmCritical:Ke,alarmCriticalWarning:Qe,alarmFilled:Ye,alarmWarning:Xe,alarm_bell:tt,alarms_new:rt,alarm_off:at,anomaliesBrain:lt,anomaliesLens:st,anomalyBadge:dt,applications_hollow:vt,applicationsSolid:gm,around_clock:gt,arrow_down:pt,arrow_w_line_left:bt,arrow_w_line_right:xt,arrow_left:Bt,arrow_s_down:_t,arrow_s_left:Mt,arrows_vertical:St,bookmark:jt,bullet_one:Pt,bullet_three:At,bullet_two:Dt,calendarFull:It,calendarFullPress:Rt,chart_added:Ut,chart_bars:Wt,chart_circle:Kt,chart_gauge:Qt,chart_pie:Yt,charts:Xt,charts_view:bm,check:tn,checkmark_partial_s:rn,checkmark_s:an,checkmark:cn,chevron_double:un,chevron_down:hn,chevron_down_thin:mn,chevron_expand:fn,chevron_left:wn,chevron_left_small:On,chevron_left_start:yn,chevron_right:Cn,chevron_right_end:En,chevron_right_s:zn,chevron_right_small:kn,chevron_up_thin:Hn,classError:Vn,classLatency:Ln,classUtilization:Fn,classWorkload:Tn,clock_hollow:Nn,clock5Min:Gn,clock5MinPress:qn,close_circle:Jn,cluster:$n,cluster_spaces:Zn,code:er,collapse:nr,collect:or,community:ir,connection_to_cloud:cr,connectivityStatusLive:ur,connectivityStatusOffline:hr,connectivityStatusStale:mr,container:fr,controller_kind:wr,controller_name:yr,copy:Or,correlation:Cr,correlation_inv:zr,cpu:Er,cross_s:kr,data_retention:Hr,database:Vr,dashboard:Lr,dashboard_add:Fr,dashboards:Tr,disk:Nr,discoveredConfig:Gr,documentation:qr,dot:Jr,dots_2x3:$r,download:Zr,dragHorizontal:eo,dynamicConfig:no,edit:oo,error:io,exclamation:co,expand:uo,favorites:vo,feed:go,filter:po,filterList:bo,firewallSolid:dm,forcePlay:xo,forcePlayOutline:Bo,functions:_o,fullScreen:Mo,gear:So,github:jo,google:Ao,goToNode:Po,group_by:Do,h1:Io,h2:Ro,hamburger:Uo,help:Wo,hide:Ko,highlightArea:Qo,holder:Yo,importExport:Xo,incident_manager:ta,information:ra,informationPress:aa,insights:la,integrationAWSSNS:sa,integrationAWSSNSColored:da,integrationDiscord:va,integrationDiscordColored:ga,integrationEmail:pa,integrationEmailColored:ba,integrationMattermost:xa,integrationMattermostColored:Ba,integrationMobileAppColored:_a,integrationOpsgenie:Ma,integrationOpsgenieColored:Sa,integrationPagerduty:ja,integrationPagerdutyColored:Pa,integrationRocketChat:Aa,integrationRocketChatColored:Da,integrations:Ia,internalConfig:Ra,integrationSlack:Ua,integrationSlackColored:Wa,integrationSplunk:Ka,integrationTeams:Qa,integrationTeamsColored:Ya,integrationTelegram:Xa,integrationTelegramColored:ti,integrationWebhook:ri,integrationWebhookColored:ai,ipNetworking:li,ipNetworkingPress:si,last_week:di,line_chart:vi,logo_s:pi,logs:gi,loading:bi,long_arrow_up:xi,magnify:Bi,metrics:_i,metrics_explorer:Mi,minimize_s:Si,mobilePushNotifications:ji,mobilePushNotificationsHollow:Pi,monitoring:Ai,more:Di,navLeft:Ii,navRight:Ri,nav_arrow_goto:Ui,nav_dots:Wi,networkingStack:pm,netdata:Ki,netdataAssistant:Qi,netdataPress:Yi,node:Xi,node_child:tl,node_default_l:rl,node_hollow:al,node_import_export:ll,node_notification_l:sl,node_parent:dl,node_selected_l:vl,nodes:gl,nodes_hollow:pl,none_selected:bl,nodes_update:xm,notification:Bc,notification_shortcut_enabled:xl,notification_shortcut_disabled:Bl,notificationTrigger:_l,os:Ml,osAlpineLinux:Sl,osAmazonLinux:jl,osArchLinux:Pl,osCelarOS:Al,osCentos:Dl,osCentosColored:Il,osCoreOS:Rl,osDebian:Ul,osDebianColored:Wl,osFedora:Kl,osFreeBSD:Ql,osGentoo:Yl,osLinux:Xl,osLinuxColored:tc,osLinuxManjaro:rc,osMacOSX:ac,osOracle:lc,osOracleColored:sc,osPress:dc,osRaspbian:vc,osRedHat:gc,osSuseLinux:pc,osUbuntu:bc,osUbuntuColored:xc,padlock:_c,panTool:Mc,pauseOutline:Sc,pauseSolid:jc,pencilSolid:Ac,pencilOutline:Pc,pie_chart_skeleton:Dc,pin_element:Ic,playOutline:Rc,playSolid:Uc,plus:Wc,plus_mini_s:Kc,pod:Qc,pricing:Yc,print:Xc,privacy:ts,pushNotifications:rs,qrCode:as,ram:ds,qualityOfServiceSolid:vm,question:ls,questionFilled:ss,rearrange:vs,reduceSize:gs,refresh:ps,reload:bs,removeNode:xs,resize_handler:Bs,rocket:_s,room:Ms,room_home:Ss,room_new:js,room_overview:Ps,sad:As,save:Ds,save2:Is,scheduled:Rs,search:Us,search_s:Ws,searchPress:Ks,serviceAlarm:We,serviceApache:Qs,serviceAsterisk:Ys,serviceApacheTomcat:Xs,serviceBeanstalk:tu,serviceBind:ru,serviceContainer:au,serviceCoreDns:lu,serviceCouchDB:su,serviceDatabase:du,serviceDNS:vu,serviceDNSmasq:gu,serviceDockerHubPress:pu,serviceDockerHub:bu,serviceDotNet:xu,serviceEBPF:Bu,serviceElasticSearch:_u,serviceExample:Mu,serviceFreeNAS:Su,serviceHAProxy:ju,serviceHTTPCheck:Pu,serviceIceCast:Au,serviceInfluxDB:Du,serviceIPFS:Iu,serviceIPVS:Ru,serviceKubernetes:Uu,serviceLighthttpd:Wu,serviceLighthttpd2:Ku,serviceLiteSpeed:Qu,serviceLxc:Yu,serviceMariaDB:Xu,serviceMemCached:td,serviceMongoDB:rd,serviceMySQL:ad,serviceMySQLPress:ld,serviceNginx:sd,serviceNginxLocal:dd,serviceNginxPlus:vd,serviceNtpd:gd,serviceNvidia:pd,serviceNtpdPress:bd,serviceOpenStack:xd,serviceOpenWrt:Bd,servicePan:_d,servicePandas:Md,servicePercona:Sd,servicePfSense:jd,servicePhpFpm:Pd,servicePostgreSQL:Ad,servicePrometheus:Dd,serviceProxySQL:Id,serviceRabbitMQ:Rd,serviceRandom:Ud,serviceRedis:Wd,serviceRethinkDB:Kd,serviceRetroShare:Qd,serviceSelectedArea:Yd,serviceSendgrid:Xd,services:th,servicesSmartdlog:rh,serviceSolr:ah,serviceSquid:lh,serviceSummaryStatistic:sh,serviceSystemd:dh,serviceTraefik:vh,serviceVarnish:gh,serviceWebLog:ph,serviceWebLogNginx:bh,serviceX509Check:xh,serviceXen:Bh,settings:_h,settings_h:Mh,sign_in:Sh,sorting_vertical:jh,sort_ascending:Ah,sorting_asc:Ph,sort_descending:Ih,sorting_desc:Dh,sort_indicator:Rh,space:Uh,space_new:Wh,spaces_v2:Kh,stockConfig:Qh,switch_off:Yh,system_overview:Xh,systemOverviewPress:tv,text_add:rv,thumb_down:av,thumb_up:lv,tiny_buttons:sv,training:dv,trashcan:vv,triangle:gv,triangle_down:pv,top:bv,unknownError:xv,universe:Bv,unreachable:_v,unreachableNode:Mv,update:Sv,update_pending:jv,upload:Pv,userConfig:Av,user:Dv,userPress:Iv,users:Rv,value:Uv,view_list:Wv,viewSingleNode:Kv,viewSingleNodePress:Qv,virtualization:Yv,warning:Xv,warning_triangle:tm,warning_triangle_hollow:rm,weights_compare:am,weights_drill_down:lm,x:sm,zoomIn:Bm,zoomOut:_m,zoomReset:Mm,N:Sm,I:jm,D:Pm,L:Vm};const Lm=function(e){var t=e.cursor;return t?"cursor: "+t+";":""};var Dm={small:"14px",medium:"16px",large:"24px"},Fm=l.default.svg.withConfig({displayName:"styled__StyledIcon",componentId:"sc-1wxz4b1-0"})(["height:",";width:",";opacity:",";pointer-events:",";"," "," "," "," "," ",""],(function(e){var t=e.size;return e.height||Dm[t]}),(function(e){var t=e.size;return e.width||Dm[t]}),(function(e){return e.disabled?.4:1}),(function(e){return e.disabled?"none":"unset"}),(function(e){var t=e.rotate;return!isNaN(t)&&"transform: rotate("+90*t+"deg);"}),(function(e){var t=e.theme,n=e.color;return n&&"fill: "+D(n)({theme:t})+";"}),(function(e){var t=e.theme,n=e.hoverColor;return n&&"&:hover { fill: "+D(n)({theme:t})+"; }"}),U,X,Lm),Im=["name","size"];function Tm(){return Tm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Tm.apply(this,arguments)}var Rm=(0,i.forwardRef)((function(e,t){var n=e.name,r=e.size,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Im),a=Am[n];if(!a)return null;var l,c=r||((l=n).endsWith("_s")?"small":l.endsWith("_l")?"large":"medium");return i.createElement(Fm,Tm({viewBox:a.viewBox},o,{size:c,ref:t}),i.createElement("use",{xlinkHref:"#"+a.id}))})),Nm={weak:.3,medium:.4,strong:.8,none:1};const Um=function(e){var t=e.opacity,n=t&&Nm[t]||t;return n?"opacity: "+n+";":""},Gm=function(e){var t=e.zIndex;if(t&&"number"===typeof t)return"z-index: "+t+";"},Wm=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.height;if("object"===typeof n){var r=n.min,o=void 0===r?"":r,a=n.max,i=void 0===a?"":a;return"\n "+(o&&"min-height: "+("number"===typeof o?t*o+"px":o)+";")+"\n "+(i&&"max-height: "+("number"===typeof i?t*i+"px":i)+";")+"\n "}return n&&"height: "+("number"===typeof n?t*n+"px":n)+";"},qm=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.width;if("object"===typeof n){var r=n.min,o=void 0===r?"":r,a=n.max,i=void 0===a?"":a,l=n.base,c=void 0===l?"":l;return"\n "+(o&&"min-width: "+("number"===typeof o?t*o+"px":o)+";")+"\n "+(i&&"max-width: "+("number"===typeof i?t*i+"px":i)+";")+"\n "+(c&&"width: "+("number"===typeof c?t*c+"px":c)+";")+"\n "}return n&&"width: "+("number"===typeof n?t*n+"px":n)+";"},Km=function(e){var t=e.overflow;if(!t)return"";if("string"===typeof t)return"overflow: "+t+";";var n=t.vertical,r=void 0===n?"":n,o=t.horizontal,a=void 0===o?"":o;return"\n "+(r&&"overflow-y: "+r+";")+"\n "+(a&&"overflow-x: "+a+";")+"\n "},Jm=function(e){var t=e.theme,n=e.background,r=e.backgroundOpacity;if(!n)return"";var o=r?F(n,r)({theme:t}):D(n)({theme:t});return o&&"background-color: "+o+";"};const Qm=function(e){var t=e.flex,n=e.basis;if(void 0===t&&void 0===n)return"";if(n&&void 0===t)return"flex-basis: "+n+";";var r=function(e,t){return void 0===t&&(t="auto"),!0===e?"1 1 "+t:!1===e?"0 0 "+t:"grow"===e?"1 0 "+t:"shrink"===e?"0 1 "+t:"number"===typeof e?e+" 0 "+t:"object"!==typeof e?e:e.grow+" "+e.shrink+" "+t}(t,n);return r?"flex: "+r+";":""};const $m=function(e){var t=function(e){return!0===e?"wrap":!1===e?"nowrap":"reverse"===e?e:""}(e.flexWrap);return t&&"flex-wrap: "+t+";"};var Ym={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"};const Zm=function(e){var t=e.alignItems;return t in Ym?"align-items: "+Ym[t]+";":""};var Xm={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",stretch:"stretch"};const eg=function(e){var t=e.alignContent;return t in Xm?"align-content: "+Xm[t]+";":""};var tg={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly",stretch:"stretch"};const ng=function(e){var t=e.justifyContent;return t in tg?"justify-content: "+tg[t]+";":""};const rg=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.gap,r=e.column,o=e.columnReverse,a=e.rowReverse;if("number"!==typeof n)return"";var i=function(e){var t=e.column,n=e.columnReverse,r=e.rowReverse;return t||n?"bottom":r?"left":"right"}({column:r,columnReverse:o,rowReverse:a});return"\n &> *:not(:last-child) {\n margin-"+i+": "+t*n+"px;\n }\n "};const og=function(e){var t=function(e,t,n){return e?"column":t?"column-reverse":n?"row-reverse":"row"}(e.column,e.columnReverse,e.rowReverse);return"flex-direction: "+t+";"};function ag(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ig(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ag(Object(n),!0).forEach((function(t){lg(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ag(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function lg(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cg={all:function(e){return"\n border: "+e.size+" "+e.type+" "+e.color+";\n "},horizontal:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-top: "+t+" "+n+" "+r+";\n border-bottom: "+t+" "+n+" "+r+";\n "},vertical:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-left: "+t+" "+n+" "+r+";\n border-right: "+t+" "+n+" "+r+";\n "},top:function(e){return"\n border-top: "+e.size+" "+e.type+" "+e.color+";\n "},right:function(e){return"\n border-right: "+e.size+" "+e.type+" "+e.color+";\n "},bottom:function(e){return"\n border-bottom: "+e.size+" "+e.type+" "+e.color+";\n "},left:function(e){return"\n border-left: "+e.size+" "+e.type+" "+e.color+";\n "}},sg=function(e){return{color:D("border")({theme:e}),size:"1px",side:"all",type:"solid"}};const ug=function(e){var t=e.theme,n=e.border;if(void 0===n)return"";if(!0===n)return cg.all(sg(t));if(n in cg)return cg[n](sg(t));if("string"===typeof n)return cg.all(ig(ig({},sg(t)),{},{color:D(n||"border")({theme:t})}));if("object"!==typeof n)return"";var r=n.side,o=n.color;return r in cg&&cg[r](ig(ig(ig({},sg(t)),n),{},{color:D(o||"border")({theme:t})}))};var dg=["theme"],hg=["theme"];function vg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vg(Object(n),!0).forEach((function(t){gg(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function gg(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fg(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var pg={border:ug,background:Jm,color:function(e){var t=e.theme,n=e.color;return n?"color: "+D(n)({theme:t})+";":""},alignItems:Zm},wg=function(e){var t=e.theme,n=fg(e,dg),r="";for(var o in n)if(void 0===pg[o]){r=r+(o+":")+n[o]+";"}else{var a=pg[o];r+=a&&"function"===typeof a?a(mg({theme:t},n)):""}return r},bg={_before:"&::before",_after:"&::after",_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_focusWithin:"&:focus-within",_visited:"&:visited",_empty:"&:empty",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_disabled:"&[disabled], &[aria-disabled=true], &[data-disabled]",_checked:"&[aria-checked=true]",_mixed:"&[aria-checked=mixed]",_selected:"&[aria-selected=true], [data-selected] > &",_invalid:"&[aria-invalid=true]",_pressed:"&[aria-pressed=true]",_readOnly:"&[aria-readonly=true], &[readonly]",_first:"&:first-of-type",_last:"&:last-of-type",_expanded:"&[aria-expanded=true]",_grabbed:"&[aria-grabbed=true]",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_groupHover:"[role=group]:hover &",_autofill:"&:-webkit-autofill",_placeholder:"&::placeholder"};const yg=function(e){var t=e.theme,n=fg(e,hg),r="";for(var o in n)if(o in bg){var a=o,i=n[a],l=wg(mg({theme:t},i));r=r+"\n "+bg[a]+"{ \n "+l+" \n }"}return r.replace(/^(?=\n)$|^\s*|\s*$|\n\n+/gm,"")};var xg=new Set(["left","center","right"]);var Og=new Set(["underline","none","line-through"]);var Bg=new Set(["normal","nowrap","pre-line","pre-wrap"]);var Cg=new Set(["normal","break-all","keep-all","break-word"]);var _g=function(e){var t=e.theme,n=e.color;return"color: "+D(void 0===n?"text":n)({theme:t})+";"},zg=(0,l.css)([""," "," "," "," "," "," "," "," "," "," "," "," "," "," ",""],_g,(function(e){var t=e.background,n=void 0===t?"text":t,r=e.code,o=e.color,a=void 0===o?"elementBackground":o,i=e.theme;return r&&"\n background-color: "+D(n)({theme:i})+";\n border-radius: 4px;\n color: "+D(a)({theme:i})+";\n padding: 0 6px;\n "}),X,(function(e){var t=e.textAlign;return xg.has(t)&&"text-align: "+t+";"}),(function(e){var t=e.textDecoration;return Og.has(t)&&"text-decoration: "+t+";"}),te,(function(e){return e.truncate&&"\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"}),(function(e){var t=e.whiteSpace;return Bg.has(t)&&"white-space: "+t+";"}),(function(e){var t=e.wordBreak;return Cg.has(t)&&"word-break: "+t+";"}),U,G,Um,Lm,(function(e){var t=e.fontSize;return t&&"\n font-size: "+t+";\n line-height: "+t+";\n "}),(function(e){var t=e.lineHeight;return t&&"\n line-height: "+t+";\n "})),Mg=function(e,t){var n,r,o=t.fontSize,a=t.lineHeight,i=t.strong;return(0,l.default)(e).withConfig({displayName:"typography",componentId:"sc-1lwqv72-0"})(['font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif;font-style:normal;'," "," "," ",""],(r=o,function(){return"font-size: "+r+";"}),function(e){return function(){return"line-height: "+e+";"}}(a),(n=i,function(e){var t=e.strong;return"font-weight: "+((void 0===t?n:t)?"bold":"normal")+";"}),zg)},Eg=function(e){return Mg(e,{fontSize:"26px",lineHeight:"32px",strong:!0})},Sg=function(e){return Mg(e,{fontSize:"24px",lineHeight:"28px",strong:!0})},kg=function(e){return Mg(e,{fontSize:"22px",lineHeight:"24px",strong:!0})},jg=function(e){return Mg(e,{fontSize:"20px",lineHeight:"24px",strong:!0})},Hg=function(e){return Mg(e,{fontSize:"16px",lineHeight:"21px",strong:!0})},Pg=function(e){return Mg(e,{fontSize:"14px",lineHeight:"18px",strong:!0})},Vg=function(e){return Mg(e,{fontSize:"12px",lineHeight:"14px",strong:!0})},Ag=function(e){return Mg(e,{fontSize:"7px",lineHeight:"8px"})},Lg=function(e){return Mg(e,{fontSize:"8px",lineHeight:"10px"})},Dg=function(e){return Mg(e,{fontSize:"10px",lineHeight:"13px"})},Fg=function(e){return Mg(e,{fontSize:"11px",lineHeight:"14px"})},Ig=function(e){return Mg(e,{fontSize:"12px",lineHeight:"16px"})},Tg=function(e){return Mg(e,{fontSize:"14px",lineHeight:"20px"})},Rg=function(e){return Mg(e,{fontSize:"16px",lineHeight:"18px"})},Ng=function(e){return Mg(e,{fontSize:"24px",lineHeight:"32px"})},Ug=n(50402),Gg=function(e){return(0,Ug.default)(e.sx)(e)};const Wg=function(e){return(0,l.default)(e).withConfig({displayName:"flex",componentId:"sc-1gtk8kg-0"})(["display:flex;"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",""],Qm,og,$m,Zm,eg,ng,X,re,U,G,rg,qm,Wm,_g,Jm,Um,ug,Y,Km,Gm,Lm,yg,oe.position,Gg)};const qg=Wg("div");var Kg=["label","icon","flavour","isLoading","loadingLabel","onClick","textTransform","iconColor","iconSize","iconWidth","iconHeight","children"];function Jg(){return Jg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jg.apply(this,arguments)}var Qg=(0,i.forwardRef)((function(e,t){var n=e.label,r=e.icon,o=e.flavour,a=e.isLoading,l=e.loadingLabel,c=e.onClick,s=e.textTransform,u=void 0===s?"firstLetter":s,d=e.iconColor,h=e.iconSize,v=e.iconWidth,m=e.iconHeight,g=e.children,f=void 0===g?n:g,p=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Kg);return i.createElement(xe,Jg({flavour:o,textTransform:u,hasIcon:!!r||a,onClick:a?void 0:c,ref:t,iconColor:d,iconWidth:v,iconHeight:m},p),a&&i.createElement(Be,{className:"button-icon"}),r&&!a&&i.createElement(qg,{justifyContent:"center",alignItems:"center",width:"auto",height:"100%"},i.createElement(Rm,{size:h,className:"button-icon",title:r,name:r,width:v,height:m})),!!f&&i.createElement("span",null,a&&l||f))}));Qg.defaultProps={onClick:function(){},icon:null};var $g=function(e){return(0,Ug.default)(e.sx)(e)};const Yg=function(e){return(0,l.default)(e).withConfig({displayName:"box",componentId:"sc-12jmtj1-0"})(["box-sizing:border-box;"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",""],eg,X,re,U,G,rg,qm,Wm,Jm,Um,ug,Y,Km,Gm,Lm,yg,oe.position,$g)};const Zg=Yg("div");var Xg=n(40961);const ef=function(){var e=(0,i.useMemo)((function(){var e=document.createElement("div");return document.body.append(e),e}),[]);return(0,i.useLayoutEffect)((function(){return function(){return document.body.removeChild(e)}}),[]),e};const tf=function(e){return(0,i.useEffect)((function(){if(e){var t=function(t){27===t.keyCode&&e(t)};return document.addEventListener("keydown",t),function(){return document.removeEventListener("keydown",t)}}}),[e])},nf=function(e){var t=[];for(e=e.parentNode;e;)t.push(e),e=e.parentNode;return t},rf=function(e,t){return nf(t).some((function(t){return t===e}))},of=function(e,t,n,r){(0,i.useEffect)((function(){if(t&&!r){var o=function(r){r.target===e.current||rf(e.current,r.target)||rf(n,r.target)||t(r)};return document.addEventListener("mousedown",o),function(){return document.removeEventListener("mousedown",o)}}}),[t])},af=function(e,t){"function"===typeof e?e(t):e&&(e.current=t)},lf=function(e){var t=(0,i.useRef)(),n=(0,i.useCallback)((function(n){t.current=n,af(e,n)}),[]);return[t,n]};var cf=function e(t,n,r,o){void 0===o&&(o=!0);var a=function(e,t,n){return"left"===e.left?t.left:"right"===e.left?t.right:"right"===e.right?t.right-n.width:"left"===e.right?t.left-n.width:t.left+t.width/2-n.width/2}(t,n,r),i=Math.max(0,a);return a=Math.min(window.innerWidth-r.width,i),o||i===a?a:e(function(e){return"left"===e.left?{right:"right"}:"right"===e.left?{right:"left"}:"right"===e.right?{left:"left"}:"left"===e.right?{left:"right"}:void 0}(t),n,r)},sf=function e(t,n,r,o){void 0===o&&(o=!0);var a=function(e,t,n){if("top"===e.top)return t.top;if("bottom"===e.top)return t.bottom;if("bottom"===e.bottom)return t.bottom-n.height;if("top"===e.bottom){var r=t.top-n.height;return r<0&&t.bottom+n.height<window.innerHeight?t.bottom:r}return t.top+t.height/2-n.height/2}(t,n,r),i=Math.max(0,a);return a=Math.min(window.innerHeight-r.height,i),o||i===a?a:e(function(e){return"top"===e.top?{bottom:"bottom"}:"bottom"===e.top?{bottom:"top"}:"bottom"===e.bottom?{top:"top"}:"top"===e.bottom?{top:"bottom"}:void 0}(t),n,r)},uf=["top","right","bottom","right","width"];const df=function(e,t,n,r,o,a){return(0,i.useCallback)((function(){if(t.current){uf.forEach((function(e){return t.current.style[e]=""}));var i=e.getBoundingClientRect(),l=t.current.getBoundingClientRect(),c=function(e,t,n){return"align"===e?Math.min(t.width,n.width):"width"===e?Math.max(t.width,n.width):Math.min(n.width,window.innerWidth)}(r,i,l);l.width=c;requestAnimationFrame((function(){var e=cf(n,i,l,o),s=sf(n,i,l,o);t.current&&(a&&t.current.style.left||(t.current.style.left=e+"px"),t.current.style.top=s+"px",r&&(t.current.style.width=c+"px"))}))}}),[e,n,r])};var hf=["zIndex"];function vf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mf(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var gf=(0,l.keyframes)(["0%{opacity:0.5;transform:scale(0.8);}100%{opacity:1;transform:scale(1);}"]),ff=(0,l.css)(["opacity:0;animation:"," 0.1s forwards;animation-delay:0.01s;"],gf);const pf=(0,l.default)(qg).attrs((function(e){var t=e.zIndex;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vf(Object(n),!0).forEach((function(t){mf(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({zIndex:void 0===t?70:t,position:"fixed"},function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,hf))})).withConfig({displayName:"container__Container",componentId:"sc-l6u9ms-0"})(["left:-99999px;"," "," "," backface-visibility:hidden;perspective:1000;transform:translate3d(0,0,0);will-change:left,top,transform;"],(function(e){return e.animation&&ff}),(function(e){return!e.hideShadow&&"box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);"}),(function(e){return!!e.noEvents&&"pointer-events: none;"})),wf=function(e){var t=e.backdropBlur;return t?"boolean"===typeof t?"backdrop-filter: blur(10px);":"number"===typeof t?"backdrop-filter: blur("+t+"px);":"backdrop-filter: blur("+t+");":""};var bf=["backdrop","target","align","stretch","onClickOutside","onEsc","children","canHideTarget","keepHorizontal"];function yf(){return yf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yf.apply(this,arguments)}var xf=l.default.div.withConfig({displayName:"drop__Backdrop",componentId:"sc-1lp2o35-0"})(["position:absolute;inset:0;pointer-events:all;background-color:rgba(0,0,0,0.3);z-index:60;",";}"],wf),Of={top:"bottom",left:"left"},Bf=(0,i.forwardRef)((function(e,t){var n=e.backdrop,r=void 0!==n&&n,o=e.target,a=e.align,l=void 0===a?Of:a,c=e.stretch,s=void 0===c?"width":c,u=e.onClickOutside,d=e.onEsc,h=e.children,v=e.canHideTarget,m=void 0===v||v,g=e.keepHorizontal,f=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,bf),p=lf(t),w=p[0],b=p[1],y=df(o,w,l,s,m,g);(0,i.useLayoutEffect)((function(){y()}),[y]),function(e,t){(0,i.useEffect)((function(){var n,r=function(){var n=nf(e).filter((function(e){return e.scrollHeight>e.clientHeight}));return n.forEach((function(e){return e.addEventListener("scroll",t,{capture:!1,passive:!0})})),function(){return n.forEach((function(e){return e.removeEventListener("scroll",t)}))}};n=r();var o=function(){n(),n=r(),t()};return window.addEventListener("resize",o),function(){n(),window.removeEventListener("resize",o)}}),[e,t])}(o,y),of(w,u,o),tf(d);var x=ef();return Xg.createPortal(r?i.createElement(i.Fragment,null,i.createElement(pf,yf({ref:b,width:{max:"100%"},column:!0,"data-testid":"drop"},f),h),i.createElement(xf,null)):i.createElement(pf,yf({ref:b,width:{max:"100%"},column:!0,"data-testid":"drop"},f),h),x)}));const Cf=Bf,_f=function(e,t){var n=void 0===t?{}:t,r=n.on,o=n.off,a=n.toggle,l=(0,i.useState)(!!e),c=l[0],s=l[1];return[c,(0,i.useCallback)((function(e){return s((function(t){var n="boolean"===typeof e?e:!t;return a&&a(n),r&&n&&r(),o&&!n&&o(),n}))}),[a,r,o]),(0,i.useCallback)((function(){s(!0),r&&r()}),[r]),(0,i.useCallback)((function(){s(!1),o&&o()}),[o])]};function zf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zf(Object(n),!0).forEach((function(t){Ef(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ef(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Sf=function(e,t,n){return(0,i.useMemo)((function(){if(void 0===e||null===e)return e;if("function"===typeof e)return e(Mf({ref:function(e){return af(t,e)}},n));var r=function(e){return 1!==i.Children.count(e)?i.Children.only(e):(0,i.isValidElement)(e)?e:i.createElement("span",null,e)}(e);return(0,i.cloneElement)(r,Mf(Mf({},n),{},{ref:function(e){af(t,e),af(r.ref,e)}}))}),[e,n.open])};var kf=0;const jf=function(){return--kf},Hf=function(e){return(0,i.useMemo)((function(){return e||jf()}),[])},Pf={top:{bottom:"top"},left:{right:"left"},right:{left:"right"},bottom:{top:"bottom"}};var Vf=(0,l.css)([""," "," ",""],X,U,G),Af=l.default.ul.withConfig({displayName:"list__List",componentId:"sc-ln4euz-0"})(["list-style-type:disc;list-style-position:outside;padding-left:28px;",""],Vf),Lf=l.default.li.withConfig({displayName:"list__ListItem",componentId:"sc-ln4euz-1"})(["line-height:22px;padding-left:9px;",""],Vf),Df=Eg("h1"),Ff=Sg("h1"),If=kg("h2"),Tf=jg("h3"),Rf=Hg("h4"),Nf=Pg("h5"),Uf=Vg("h6"),Gf=Ag("span"),Wf=Lg("span"),qf=Dg("span"),Kf=Fg("span"),Jf=Ig("span"),Qf=Tg("span"),$f=Rg("span"),Yf=Ng("span"),Zf=["children","align","margin","background"];function Xf(){return Xf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xf.apply(this,arguments)}var ep={right:1,bottom:2,left:3},tp=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.align,o=e.margin,a=void 0===o?[1]:o,l=e.background,c=void 0===l?"tooltip":l,s=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Zf);return i.createElement(qg,{ref:t,column:"top"===r,columnReverse:"bottom"===r,rowReverse:"right"===r,margin:a},i.createElement(qg,Xf({background:c,padding:[1,2],round:!0,column:!0},s),"string"===typeof n?i.createElement(Jf,{color:"tooltipText"},n):n),r&&i.createElement(Rm,{name:"triangle",alignSelf:"center",color:c,rotate:ep[r],height:"8px",width:"8px","data-testid":"drop-arrow"}))}));const np=tp;var rp=["plain","open","align","dropProps","content","animation","disabled","zIndex","children","allowHoverOnTooltip"];function op(){return op=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},op.apply(this,arguments)}function ap(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ip(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ap(Object(n),!0).forEach((function(t){lp(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ap(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function lp(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cp=function(e){return"function"===typeof e?e():e},sp=(0,i.forwardRef)((function(e,t){var n=e.plain,r=e.open,o=void 0!==r&&r,a=e.align,l=void 0===a?"top":a,c=e.dropProps,s=e.content,u=e.animation,d=e.disabled,h=e.zIndex,v=void 0===h?80:h,m=e.children,g=e.allowHoverOnTooltip,f=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,rp),p=Hf(f["aria-describedby"]),w=_f(!1),b=w[0],y=w[2],x=w[3],O=lf(t),B=O[0],C=O[1],_=Sf(m,C,ip(ip({onMouseEnter:y,onMouseLeave:g?function(){return setTimeout((function(){z.current||x()}),300)}:x,onFocus:y,onBlur:x},b&&{"aria-describedby":p}),f)),z=(0,i.useRef)(!1);return(0,i.useLayoutEffect)((function(){B.current&&o&&y()}),[]),s?i.createElement(i.Fragment,null,_,b&&B.current&&!d&&i.createElement(Cf,op({noEvents:!g,align:(null==c?void 0:c.align)||Pf[l],hideShadow:!0,id:p,onClickOutside:x,onMouseEnter:function(){return z.current=!0},onMouseLeave:function(){z.current=!1,x()},target:B.current},c,{animation:u,onEsc:x,zIndex:v}),n?cp(s):i.createElement(np,{align:l},cp(s)))):m}));const up=sp;var dp=["width","height","tooltip"];function hp(){return hp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hp.apply(this,arguments)}var vp=function(e){var t=e.content;return i.createElement(qg,{padding:[1.5,2],margin:[2],background:"tooltip",round:1,alignSelf:"start"},i.createElement(Kf,{color:"tooltipText"},t))},mp=(0,i.forwardRef)((function(e,t){var n=e.width,r=void 0===n?"14px":n,o=e.height,a=void 0===o?"14px":o,l=e.tooltip,c=void 0===l?"":l,s=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,dp);return i.createElement(up,{plain:!0,animation:!0,content:c&&i.createElement(vp,{content:c})},i.createElement(Zg,hp({as:Qg,iconWidth:r,iconHeight:a,ref:t,flavour:"borderless",neutral:!0},s)))}));const gp=mp;var fp=["items","checked","onChange","children","buttonProps"];function pp(){return pp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},pp.apply(this,arguments)}var wp=function(e,t){var n=0==e,r=e==t-1;return{groupFirst:n,groupLast:r,groupMiddle:!n&&!r}},bp=function(e){var t=e.children,n=i.Children.toArray(t).length;return i.createElement(i.Fragment,null,i.Children.map(t,(function(e,t){if((0,i.isValidElement)(e)){var r=wp(t,n);return(0,i.cloneElement)(e,r)}return e})))},yp=function(e){var t=e.items,n=e.checked,r=e.buttonProps,o=void 0===r?{}:r,a=e.onChange;return i.createElement(i.Fragment,null,t.map((function(e,r){var l=e.label,c=e.value,s=e.title,u=wp(r,t.length);return i.createElement(Qg,pp({key:c,label:l,onClick:function(){return a(c)}},s?{title:s}:{},n!=c?{flavour:"hollow"}:{},u,o))})))},xp=function(e){var t=e.items,n=e.checked,r=e.onChange,o=e.children,a=e.buttonProps,l=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,fp);return i.createElement(qg,pp({alignItems:"center"},l),null!=t&&t.length?i.createElement(yp,{items:t,checked:n,onChange:r,buttonProps:a}):i.createElement(bp,null,o))},Op=l.default.div.withConfig({displayName:"styled__ComponentBox",componentId:"sc-gh7act-0"})(["display:flex;flex-direction:",";top:0;bottom:0;height:100vh;width:100vw;"],(function(e){return e.isRight?"row-reverse":"row"})),Bp=l.default.aside.withConfig({displayName:"styled__SidebarBox",componentId:"sc-gh7act-1"})(["overflow:hidden;top:0;bottom:0;height:100%;width:50%;"]),Cp=l.default.aside.withConfig({displayName:"styled__DisabledOverlay",componentId:"sc-gh7act-2"})(["position:fixed;top:0;bottom:0;left:0;height:100vh;width:100vw;min-width:100vw;max-width:100vw;background-color:black;opacity:0.3;z-index:15;"]),_p=l.default.aside.withConfig({displayName:"styled__PortalSidebox",componentId:"sc-gh7act-3"})(["position:fixed;overflow:hidden;top:0;",":0;bottom:0;height:100vh;width:50vw;box-shadow:0px ","px 68px rgba(0,0,0,0.288);"],V(["side"],"left"),V(["shadowSide"],!0)?2:-2),zp=l.default.div.withConfig({displayName:"styled__InfoBox",componentId:"sc-gh7act-4"})(["display:flex;width:50%;background-color:",";box-shadow:inset 0px ","px 68px rgba(0,0,0,0.288);"],D("primary"),V(["shadowSide"],!0)?2:-2),Mp=function(e){var t=e.info,n=e.children,r=e.className,o=e.right,a=void 0!==o&&o;return i.createElement(Op,{isRight:a},i.createElement(Bp,{className:r,shadowSide:a},n),i.createElement(zp,null,t))},Ep=n(30708),Sp=["children","className","closeOnEsc","closeOnOverlayClick","onClose","right","Wrapper"];function kp(){return kp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},kp.apply(this,arguments)}var jp=function(e){var t=e.children,n=e.className,r=e.closeOnEsc,o=void 0!==r&&r,a=e.closeOnOverlayClick,l=void 0!==a&&a,c=e.onClose,s=void 0===c?function(){}:c,u=e.right,d=void 0!==u&&u,h=e.Wrapper,v=void 0===h?i.Fragment:h,m=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Sp);(0,i.useEffect)((function(){var e=function(e){27===e.keyCode&&o&&s()};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[o,s]);return i.createElement(Ep.A,null,i.createElement(Cp,{onClick:function(){l&&s()}}),i.createElement(v,null,i.createElement(_p,kp({className:n,shadowSide:d,side:d?"right":"left"},m),t)))},Hp={mobileSmall:"320px",mobile:"425px",tablet:"768px",laptop:"1024px",laptopLarge:"1200px",desktop:"1440px",desktopLarge:"2560px"},Pp={mobileSmall:"(min-width: "+Hp.mobileSmall+")",mobile:"(min-width: "+Hp.mobile+")",tablet:"(min-width: "+Hp.tablet+")",laptop:"(min-width: "+Hp.laptop+")",laptopLarge:"(min-width: "+Hp.laptopLarge+")",desktop:"(min-width: "+Hp.desktop+")",desktopLarge:"(min-width: "+Hp.desktopLarge+")"};function Vp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ap(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Lp=l.default.input.attrs({type:"checkbox"}).withConfig({displayName:"styled__HiddenCheckboxInput",componentId:"sc-1qof7za-0"})(["border:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;"]),Dp=(0,l.default)(qg).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vp(Object(n),!0).forEach((function(t){Ap(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vp(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({width:"16px",height:"16px",round:.5,background:"inputBg",backgroundOpacity:e.disabled?.4:1,alignItems:"center",border:e.error?"error":"inputBorder",_hover:{border:e.disabled?"inputBorder":e.error?"errorText":"inputBorderHover"},_focus:{border:e.disabled?"inputBorder":e.error?"errorText":"inputBorderFocus"}},e)})).withConfig({displayName:"styled__Checkbox",componentId:"sc-1qof7za-1"})([""]),Fp=["checked","disabled","iconProps","indeterminate","Label","label","labelProps","labelPosition","onChange"];function Ip(){return Ip=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ip.apply(this,arguments)}var Tp=(0,i.forwardRef)((function(e,t){var n=e.checked,r=e.disabled,o=e.iconProps,a=e.indeterminate,l=e.Label,c=e.label,s=e.labelProps,u=e.labelPosition,d=void 0===u?"left":u,h=e.onChange,v=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Fp);return i.createElement(qg,Ip({as:"label",position:"relative",alignItems:"center",gap:1,cursor:r?"auto":"pointer",rowReverse:"right"===d,"data-testid":"checkbox",disabled:r},v,{onClick:function(e){e.preventDefault(),r||null==h||h(!n,e)}}),c&&i.createElement(Jf,Ip({as:l,opacity:r?.4:1},s),c),i.createElement(Zg,{width:"16px",height:"16px"},i.createElement(Lp,Ip({"data-testid":"checkbox-input",ref:t,disabled:r},a&&{"data-indeterminate":!0},{"data-checked":n})),i.createElement(Dp,{"data-testid":"styled-checkbox",disabled:r},(!!n||!!a)&&i.createElement(Rm,Ip({disabled:r,name:a?"checkmark_partial_s":"checkmark_s",width:"16px",height:"16px",color:"accent",hoverColor:"primary"},o)))))}));Tp.defaultProps={Label:Jf,labelPosition:"right"};var Rp=function(e,t){var n=e.every((function(e){return e})),r=!n&&e.includes(!1)&&e.includes(!0),o=(0,i.useCallback)((function(){n?t.forEach((function(e){return e(!1)})):t.forEach((function(e){return e(!0)}))}),[n,t]);return[n,r,o]};function Np(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Up(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Np(Object(n),!0).forEach((function(t){Gp(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Np(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Gp(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Wp=(0,l.css)(["cursor:",";pointer-events:",";"],(function(e){return e.disabled?"not-allowed":""}),(function(e){return e.disabled?"none":"auto"})),qp=(0,l.default)(qg).attrs((function(e){return Up({round:.5,as:"input",background:"inputBg",backgroundOpacity:e.disabled?.4:1,width:"100%",border:e.hasValue?"text":e.error?"error":"inputBorder",_hover:{border:e.error?"errorText":"inputBorderHover"},_focus:{border:e.error?"errorText":"inputBorderFocus"},padding:"tiny"===e.size?[.5,1]:"small"===e.size?[1,2]:[2,3],height:"tiny"===e.size?6:"small"===e.size?7:9},e)})).withConfig({displayName:"styled__Input",componentId:"sc-1iygz87-0"})(["font-size:",";color:",";"," "," &::placeholder{font-size:",";color:",";opacity:",";font-weight:normal;}",";"],(function(e){var t=e.size;return"tiny"===t?"11px":"small"===t?"12px":"14px"}),(function(e){var t=e.disabled,n=e.hasValue;return D(n?"text":t?"placeholder":"textLite")}),(function(e){return e.hasIconLeft&&"padding-left: 24px;"}),(function(e){var t=e.hasIconRight,n=e.hasIndicator;return(t||n)&&"padding-right: "+(t&&n?48:24)+"px;"}),(function(e){var t=e.size;return"tiny"===t?"11px":"small"===t?"12px":"14px"}),D("placeholder"),(function(e){return e.disabled?.4:1}),Wp),Kp=(l.default.label.withConfig({displayName:"styled__StyledLabel",componentId:"sc-1iygz87-1"})(["width:100%;display:block;",";"],Wp),(0,l.default)(qg).attrs((function(e){return Up({as:"tiny"===e.size?qf:Kf,strong:!0,alignItems:"center",flex:!1,width:"100%"},e)})).withConfig({displayName:"styled__LabelText",componentId:"sc-1iygz87-2"})([""])),Jp=(0,l.default)(Rm).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1iygz87-3"})(["flex-grow:0;flex-shrink:0;"]),Qp=((0,l.default)(Jp).withConfig({displayName:"styled__ErrorIcon",componentId:"sc-1iygz87-4"})(["fill:",";"],D("error")),(0,l.default)(Jp).withConfig({displayName:"styled__SuccessIcon",componentId:"sc-1iygz87-5"})(["fill:",";"],D("success")),(0,l.default)(qg).withConfig({displayName:"styled__IconContainer",componentId:"sc-1iygz87-6"})([""]),(0,l.default)(qg).withConfig({displayName:"styled__MetaContainer",componentId:"sc-1iygz87-7"})(["flex-flow:row nowrap;"]),l.default.span.withConfig({displayName:"styled__MetaInfo",componentId:"sc-1iygz87-8"})(["font-size:12px;line-height:16px;overflow:hidden;flex-grow:0;flex-shrink:0;color:",";"],D("placeholder"))),$p=((0,l.default)(Qp).withConfig({displayName:"styled__FieldInfo",componentId:"sc-1iygz87-9"})(["color:",";flex-shrink:1;"],T("text")),["error","disabled","iconLeft","iconRight","name","onFocus","onBlur","className","hint","fieldIndicator","placeholder","label","value","inputRef","size","containerStyles","inputContainerStyles","hideErrorMessage"]);function Yp(){return Yp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yp.apply(this,arguments)}var Zp=function(e){var t=e.error,n=!0===t?"invalid":t;return"string"===typeof n?i.createElement(qf,{color:"errorText"},n):!!n&&n},Xp=function(e){var t=e.error,n=e.disabled,r=e.iconLeft,o=e.iconRight,a=e.name,l=e.onFocus,c=e.onBlur,s=e.className,u=e.hint,d=e.fieldIndicator,h=e.placeholder,v=void 0===h?"":h,m=e.label,g=e.value,f=e.inputRef,p=e.size,w=void 0===p?"large":p,b=e.containerStyles,y=e.inputContainerStyles,x=e.hideErrorMessage,O=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,$p);return i.createElement(qg,Yp({gap:.5,column:!0,className:s},b,{as:"label"}),"string"===typeof m?i.createElement(Kp,{size:w},m):m,i.createElement(qg,Yp({position:"relative"},y),r&&i.createElement(qg,{position:"absolute",left:1,top:0,bottom:0,alignItems:"center"},r),i.createElement(qp,Yp({disabled:n,placeholder:v,onBlur:c,onFocus:l,name:a,"aria-label":a,hasIconLeft:!!r,hasIconRight:!!o,hasIndicator:!!d,type:"text",value:g,size:w,ref:f,error:t,hasValue:!!g},O)),(!!o||!!d)&&i.createElement(qg,{position:"absolute",right:1,top:0,bottom:0,alignItems:"center",gap:1},!!d&&i.createElement(qf,{color:"textLite"},d),!!o&&o)),"string"===typeof u?i.createElement(qf,{color:"textLite"},u):!!u&&u,x?null:i.createElement(Zp,{error:t}))},ew=l.default.input.attrs({type:"range"}).withConfig({displayName:"styled__InputRange",componentId:"sc-17kts71-0"})(["-webkit-appearance:none;height:2px;background-color:","40;background-image:linear-gradient(",",",");background-repeat:no-repeat;background-size:",";cursor:pointer;width:100%;&::-webkit-slider-thumb{-webkit-appearance:none;height:10px;width:10px;border-radius:50%;background:",";transition:all 0.3s ease-in-out;&:active{height:16px;width:16px;}}"],D("primary"),D("primary"),D("primary"),(function(e){var t=e.max;return 100*e.value/t+"% 100%"}),D("primary")),tw=["max","min","step","value"];function nw(){return nw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},nw.apply(this,arguments)}var rw=(0,i.forwardRef)((function(e,t){var n=e.max,r=void 0===n?100:n,o=e.min,a=void 0===o?0:o,l=e.step,c=void 0===l?1:l,s=e.value,u=void 0===s?0:s,d=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,tw);return i.createElement(ew,nw({"data-testid":"rangeInput",max:r,min:a,step:c,type:"range",value:u,ref:t},d))}));const ow=rw;var aw=(0,l.default)(Zg).withConfig({displayName:"styled__Slider",componentId:"sc-y2g216-0"})([""]),iw=(0,l.default)(Zg).withConfig({displayName:"styled__SliderTrack",componentId:"sc-y2g216-1"})(["background-position:",";background-color:","40;background-image:linear-gradient( ",","," );background-repeat:no-repeat;background-size:",";height:2px;width:",";"],(function(e){var t=e.max,n=e.min,r=e.minValue;return e.width*((r-n)/(t-n))*100/100+"px 100%"}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){var t=e.max,n=e.maxValue,r=e.min;return 100*(n-e.minValue)/(t-r)+"% 100%"}),(function(e){return e.width+"px"||0})),lw=(0,l.default)(ow).withConfig({displayName:"styled__Range",componentId:"sc-y2g216-2"})(["pointer-events:none;position:absolute;height:0;outline:none;width:100%;&::-webkit-slider-thumb{pointer-events:all;}"]),cw=["initMax","initMin","max","min","onChange","onInput","step","TextComponent"];function sw(){return sw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sw.apply(this,arguments)}const uw=function(e){var t=e.initMax,n=e.initMin,r=e.max,o=void 0===r?100:r,a=e.min,l=void 0===a?0:a,c=e.onChange,s=e.onInput,u=e.step,d=void 0===u?1:u,h=e.TextComponent,v=void 0===h?Kf:h,m=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,cw),g=(0,i.useState)(t||o),f=g[0],p=g[1],w=(0,i.useState)(n||l),b=w[0],y=w[1],x=(0,i.useState)(0),O=x[0],B=x[1],C=(0,i.useRef)(null),_=(0,i.useRef)(null);(0,i.useEffect)((function(){C.current&&B(C.current.getBoundingClientRect().width)}),[b]),(0,i.useEffect)((function(){p(t||o),y(n||l)}),[o,l]);return i.createElement(qg,{column:!0,gap:1,flex:!0},i.createElement(qg,{alignItems:"center","data-testid":"multiRangeInput",justifyContent:"center",position:"relative",width:"100%"},i.createElement(lw,sw({"data-testid":"minRangeInput",max:o,min:l,onChange:function(e){c&&c({max:f,min:e.target.value})},onInput:function(e){var t=Math.min(+e.target.value,f-d);y(t),e.target.value=t.toString(),s&&s({max:f,min:e.target.value})},position:"relative",ref:_,step:d,value:b,zIndex:3},m)),i.createElement(lw,sw({"data-testid":"maxRangeInput",max:o,min:l,onChange:function(e){c&&c({max:e.target.value,min:b})},onInput:function(e){var t=Math.max(+e.target.value,b+d);p(t),e.target.value=t.toString(),s&&s({max:e.target.value,min:b})},ref:C,step:d,value:f,zIndex:5},m)),i.createElement(aw,{"data-testid":"multiRange-slider"},i.createElement(iw,{"data-testid":"multiRange-sliderTrack",max:o,maxValue:f,min:l,minValue:b,width:O}))),i.createElement(qg,{"data-testid":"multiRange-values",justifyContent:"between"},i.createElement(v,{"data-testid":"multiRange-minValue"},b),i.createElement(v,{"data-testid":"multiRange-maxValue"},f)))};var dw=function(e){var t=e.onBlur,n=e.defaultState,r=void 0!==n&&n,o=(0,i.useState)(r),a=o[0],l=o[1],c=(0,i.useCallback)((function(e){a||l(!0),t&&t(e)}),[t,a]);return[a,c,l]},hw=function(e){var t=e.defaultState,n=void 0!==t&&t,r=e.onBlur,o=e.onFocus,a=(0,i.useState)(n),l=a[0],c=a[1],s=(0,i.useCallback)((function(e){l||c(!0),o&&o(e)}),[o,l]),u=(0,i.useCallback)((function(e){c(!1),r&&r(e)}),[r]);return[l,s,u]},vw=function(e){var t=e.value,n=void 0===t?"":t,r=e.onChange,o=e.maxChars,a=(0,i.useState)(n),l=a[0],c=a[1],s=(0,i.useState)(!1),u=s[0],d=s[1],h=(0,i.useCallback)((function(e){var t=e.target.value;if(o&&t.length>o)return e.preventDefault(),void e.stopPropagation();c(t),u||d(!0),r&&r(e)}),[u,o,r]),v=o?l.length+"/"+o:"",m=(0,i.useCallback)((function(e){void 0===e&&(e=""),c(e),d(!1)}),[]);return[l,h,v,u,{setIsDirty:d,setValue:c,resetValue:m}]};const mw=(0,l.css)(["border-color:",";box-shadow:0 0 0 1px ",";"],T("controlFocused"),T("controlFocused")),gw="\n font-family: inherit;\n border: none;\n outline: none;\n padding: 0;\n margin: 0;\n",fw=(0,l.css)(["scrollbar-width:",";scrollbar-color:"," ",";&::-webkit-scrollbar{width:",";}&::-webkit-scrollbar-track{border-radius:",";background-color:",";}&::-webkit-scrollbar-thumb{border-radius:",";background-color:",";}&::-webkit-scrollbar-thumb:hover{background-color:",";}&::-webkit-scrollbar-track-piece{background-color:",";}&::-webkit-scrollbar-corner{background-color:",";}"],I(1),F("border",.3),F("border",.1),I(1),I(.5),F("border",.1),I(1),F("border",.3),F("border",.5),F("border",.3),F("border",.3));var pw=["right"];var ww=l.default.div.withConfig({displayName:"styled__ToggleContainer",componentId:"sc-dtjehx-0"})(["display:block;box-sizing:border-box;width:40px;height:20px;"]),bw=l.default.input.attrs({type:"checkbox"}).withConfig({displayName:"styled__HiddenToggleInput",componentId:"sc-dtjehx-1"})(["display:none;"]),yw=l.default.div.withConfig({displayName:"styled__StyledToggle",componentId:"sc-dtjehx-2"})(["box-sizing:border-box;width:40px;height:20px;background:",";border:1px solid ",";border-radius:100px;transition:",";display:block;position:relative;-webkit-tap-highlight-color:transparent;flex-shrink:0;align-self:flex-start;cursor:pointer;pointer-events:",';&:after{display:block;position:absolute;content:"";width:16px;height:16px;border-radius:50%;left:5%;top:50%;transform:translateY(-50%);transition:',";opacity:",";background-color:",";}"," ",":focus + &{","}"],(function(e){return e.disabled?D("mainBackgroundDisabled"):D("mainBackground")}),D("border"),(function(e){return e.withTransition?"all 150ms":"unset"}),(function(e){return e.disabled?"none":"auto"}),(function(e){return e.withTransition?"left 0.2s ease":"unset"}),(function(e){return e.disabled?"0.4":"1"}),(function(e){var t=e.colored,n=e.checked;return D(t?n?"primary":"error":"controlFocused")}),(function(e){return e.checked&&"\n &:after {\n left: 55%;\n }\n "}),bw,mw),xw=l.default.label.withConfig({displayName:"styled__StyledLabel",componentId:"sc-dtjehx-3"})([""," "," position:relative;cursor:pointer;display:flex;flex-flow:row nowrap;align-items:center;"],U,X),Ow=l.default.span.withConfig({displayName:"styled__LabelText",componentId:"sc-dtjehx-4"})(["",""],(function(e){var t=e.right,n=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,pw);return t?"margin-left: "+L(n)+"px;":"margin-right: "+L(n)+"px;"})),Bw=["checked","disabled","className","labelLeft","labelRight","Label","colored","margin","alignSelf","toggleProps"];function Cw(){return Cw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Cw.apply(this,arguments)}var _w=function(e){var t=e.checked,n=e.disabled,r=e.className,o=e.labelLeft,a=e.labelRight,l=e.Label,c=e.colored,s=e.margin,u=e.alignSelf,d=e.toggleProps,h=void 0===d?{}:d,v=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Bw);return i.createElement(xw,{className:r,margin:s,alignSelf:u},o&&i.createElement(Ow,{as:l,left:!0},o),i.createElement(ww,null,i.createElement(bw,Cw({disabled:n,checked:t},v)),i.createElement(yw,Cw({checked:t,disabled:n,colored:c,role:"switch"},h))),a&&i.createElement(Ow,{as:l,right:!0},a))};_w.defaultProps={colored:!1,Label:Jf};var zw=l.default.input.withConfig({displayName:"styled__Input",componentId:"sc-11vyiac-0"})(["&&{height:0;width:0;opacity:0;-moz-appearance:none;margin:0;border:none;}"]),Mw=l.default.label.withConfig({displayName:"styled__Container",componentId:"sc-11vyiac-1"})(["display:flex;flex-direction:row;align-items:center;"," "," "," ",""],Zm,X,U,(function(e){var t=e.disabled;return"\n pointer-events: "+(t?"none":"auto")+";\n cursor: "+(t?"default":"pointer")+";\n"})),Ew=l.default.div.withConfig({displayName:"styled__IconContainer",componentId:"sc-11vyiac-2"})(["display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto;height:16px;width:16px;box-sizing:border-box;border:1px solid ",";border-radius:100%;background:",";",""],(function(e){return D(e.borderColor)(e)}),(function(e){return D(e.background)(e)}),U),Sw=(0,l.default)(Rm).withConfig({displayName:"styled__StyledIcon",componentId:"sc-11vyiac-3"})(["fill:",";height:8px;width:8px;"],(function(e){return D(e.color)(e)})),kw=["alignItems","alignSelf","checked","children","disabled","iconProps","label","margin"];function jw(){return jw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jw.apply(this,arguments)}var Hw={disabled:{containerColor:"disabledBackground",dotColor:"disabledBackground",borderColor:"disabledBackground"},checked:{containerColor:"inputBg",dotColor:"primary",borderColor:"inputBorder"},checkedDisabled:{containerColor:"inputBg",dotColor:"disabled",borderColor:"inputBorder"},default:{containerColor:"inputBg",dotColor:"bright",borderColor:"inputBorder"}};const Pw=function(e){var t=e.alignItems,n=void 0===t?"center":t,r=e.alignSelf,o=e.checked,a=e.children,l=e.disabled,c=e.iconProps,s=e.label,u=e.margin,d=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,kw),h=l&&!o?"disabled":o&&l?"checkedDisabled":o?"checked":"default",v=i.useMemo((function(){return Hw[h]}),[h]),m="checkedDisabled"===h||"checked"===h;return i.createElement(Mw,{alignItems:n,alignSelf:r,disabled:l,margin:u},i.createElement(zw,jw({type:"radio",disabled:l,checked:o},d)),i.createElement(Ew,{background:v.containerColor,borderColor:v.borderColor,margin:a||s?[.5,2,0,0]:null},m&&i.createElement(Sw,jw({name:"dot",color:v.dotColor},c))),a,s&&!a&&i.createElement(Jf,null,s))};function Vw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Aw(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vw(Object(n),!0).forEach((function(t){Lw(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vw(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Lw(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Dw=(0,l.default)(qg).attrs((function(e){return Aw({column:!0,flexWrap:!1},e)})).withConfig({displayName:"styled__StyledTabsWrapper",componentId:"sc-1n790ui-0"})([""]),Fw=(0,l.default)(qg).attrs((function(e){return Aw({as:"nav",row:!0,flexWrap:!1,justifyContent:"start",alignItems:"center",padding:[0,.5],flex:!1,border:e.noDefaultBorder&&{side:"bottom",size:"1px",type:"solid",color:"borderSecondary"}},e)})).withConfig({displayName:"styled__StyledTabs",componentId:"sc-1n790ui-1"})([""]),Iw=(0,l.default)(qg).attrs((function(e){return Aw({flex:"grow"},e)})).withConfig({displayName:"styled__StyledTab",componentId:"sc-1n790ui-2"})(["white-space:nowrap;border-bottom:"," solid ",";box-sizing:border-box;min-width:",";max-width:",";height:",";color:",";font-weight:",";cursor:pointer;opacity:",";pointer-events:",";&:hover{border-bottom:"," solid ",";}& > span{font-weight:",";}"],(function(e){return e.small?"2px":"4px"}),(function(e){var t=e.active;return D(t?"accent":["transparent","full"])}),(function(e){var t=e.minWidth;return null!=t?t:I(10)}),(function(e){var t=e.maxWidth;return null!=t?t:I(26)}),(function(e){var t=e.small;return I(t?4:6)}),D("text"),(function(e){return e.active?"bold":"normal"}),(function(e){return e.disabled?.4:1}),(function(e){return e.disabled?"none":"auto"}),(function(e){return e.small?"2px":"4px"}),D("primary"),(function(e){return e.active?"bold":"normal"})),Tw=(0,l.default)(qg).withConfig({displayName:"styled__StyledTabMenu",componentId:"sc-1n790ui-3"})(["white-space:nowrap;color:",";padding:4px 8px;background:",";width:100%;border-radius:4px;cursor:pointer;justify-content:flex-start;&:hover{background:",";}"],D("text"),(function(e){var t=e.active;return D(t?"menuItemSelected":["transparent","full"])}),D("menuItemHover")),Rw=["index","isMenuItem","onChange"];function Nw(){return Nw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Nw.apply(this,arguments)}var Uw=function(e){var t=e.index,n=e.isMenuItem,r=e.onChange,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Rw),a=(0,i.useCallback)((function(){return r&&r(t||0)}),[t,r]),l=n?Tw:Iw;return i.createElement(l,Nw({justifyContent:"center",alignItems:"center",onClick:o.disabled?void 0:a},o),o.label)};function Gw(){return Gw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Gw.apply(this,arguments)}var Ww=["className","onChange","selected","children","TabsHeader","TabContent","noDefaultBorder","tabsProps","tabContentProps"];function qw(){return qw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qw.apply(this,arguments)}var Kw=(0,i.forwardRef)((function(e,t){var n=e.className,r=e.onChange,o=e.selected,a=e.children,l=e.TabsHeader,c=void 0===l?i.Fragment:l,s=e.TabContent,u=void 0===s?i.Fragment:s,d=e.noDefaultBorder,h=e.tabsProps,v=e.tabContentProps,m=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Ww),g=function(e,t){void 0===e&&(e=0);var n=(0,i.useState)(t?e:0),r=n[0],o=n[1],a=(0,i.useCallback)((function(e){t?t(e):o(e)}),[t]);return(0,i.useEffect)((function(){o(e||0)}),[e]),[r,a]}(o,r),f=g[0],p=g[1],w=function(e,t,n){return(0,i.useMemo)((function(){var r=[],o=[],a=null,l=-1,c=!1;return i.Children.forEach(e,(function(e,s){var u=(null==e?void 0:e.props)||{};l<0&&!u.disabled&&(l=s);var d=t===r.length,h=s+"-"+u.label;e&&o.push(i.createElement(Uw,Gw({key:h},u,{onChange:n,index:s,active:d}))),d&&(c=!!u.disabled,a=u.children),r.push(s)})),[o,a,l,c]}),[e,t,n])}(a,f,p),b=w[0],y=w[1],x=w[2],O=w[3];return(0,i.useEffect)((function(){O&&f!==x&&p(x)}),[f,x,O,p]),i.createElement(Dw,qw({className:n},m,{ref:t}),i.createElement(c,null,i.createElement(Fw,qw({className:"tabs",noDefaultBorder:d},h),b)),i.createElement(u,v,y))})),Jw=["plain","open","align","dropProps","content","animation","children","zIndex"];function Qw(){return Qw=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Qw.apply(this,arguments)}function $w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yw(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$w(Object(n),!0).forEach((function(t){Zw(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Zw(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Xw=function(e){return"function"===typeof e?e():e},eb=(0,i.forwardRef)((function(e,t){var n=e.plain,r=e.open,o=void 0!==r&&r,a=e.align,l=void 0===a?"top":a,c=e.dropProps,s=e.content,u=e.animation,d=e.children,h=e.zIndex,v=void 0===h?70:h,m=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Jw),g=Hf(m["aria-describedby"]),f=_f(o),p=f[0],w=f[2],b=f[3],y=(0,i.useRef)(!1),x=(0,i.useRef)(!1),O=(0,i.useCallback)((function(){return requestAnimationFrame((function(){return!y.current&&!x.current&&b()}))}),[]),B=lf(t),C=B[0],_=B[1],z=Sf(d,_,Yw(Yw({isOpen:p,onMouseOver:w,onMouseLeave:O,onFocus:w,onBlur:O},p&&{"aria-describedby":g}),m)),M=(0,i.useCallback)((function(){y.current=!0}),[]),E=(0,i.useCallback)((function(){y.current=!1,O()}),[]);return i.createElement(i.Fragment,null,z,p&&C.current&&i.createElement(Cf,Qw({id:g,hideShadow:!0},c,{align:(null==c?void 0:c.align)||Pf[l],animation:u,onEsc:b,onMouseEnter:M,onMouseLeave:E,target:C.current,zIndex:v}),n?Xw(s):i.createElement(np,{align:l,background:"tooltip",backgroundOpacity:.9,padding:[2,4]},Xw(s))))}));const tb=eb;var nb=["open","icon","label","caret"];function rb(){return rb=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rb.apply(this,arguments)}var ob=(0,l.default)(qg).withConfig({displayName:"menuButton__MenuContainer",componentId:"sc-aj99z3-0"})(["cursor:pointer;"]);const ab=(0,i.forwardRef)((function(e,t){var n=e.open,r=e.icon,o=e.label,a=e.caret,l=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,nb);return i.createElement(ob,rb({gap:2,padding:[2,4],justifyContent:"between",alignItems:"center",role:"button",tabindex:"0","aria-haspopup":"listbox","aria-expanded":n,ref:t},l),i.createElement(qg,{alignItems:"center",gap:2},r,"string"===typeof o?i.createElement(Jf,null,o):o),!0===a?i.createElement(Rm,{name:"chevron_down",color:"text",width:"12px",height:"12px",rotate:n?2:null}):a)}));function ib(e,t,n){let r,o=[];return()=>{let a;n.key&&null!=n.debug&&n.debug()&&(a=Date.now());const i=e();if(!(i.length!==o.length||i.some(((e,t)=>o[t]!==e))))return r;let l;if(o=i,n.key&&null!=n.debug&&n.debug()&&(l=Date.now()),r=t(...i),null==n||null==n.onChange||n.onChange(r),n.key&&null!=n.debug&&n.debug()){const e=Math.round(100*(Date.now()-a))/100,t=Math.round(100*(Date.now()-l))/100,r=t/16,o=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${o(t,5)} /${o(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,null==n?void 0:n.key)}return r}}const lb=e=>e,cb=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let o=t;o<=n;o++)r.push(o);return r},sb=(e,t)=>{const n=new ResizeObserver((e=>{var n,r;t({width:null==(n=e[0])?void 0:n.contentRect.width,height:null==(r=e[0])?void 0:r.contentRect.height})}));if(e.scrollElement)return t(e.scrollElement.getBoundingClientRect()),n.observe(e.scrollElement),()=>{n.unobserve(e.scrollElement)}},ub={element:["scrollLeft","scrollTop"],window:["scrollX","scrollY"]},db=e=>(t,n)=>{if(!t.scrollElement)return;const r=ub[e][0],o=ub[e][1];let a=t.scrollElement[r],i=t.scrollElement[o];const l=()=>{const e=t.scrollElement[t.options.horizontal?r:o];n(Math.max(0,e-t.options.scrollMargin))};l();const c=e=>{const n=e.currentTarget,c=n[r],s=n[o];(t.options.horizontal?a-c:i-s)&&l(),a=c,i=s};return t.scrollElement.addEventListener("scroll",c,{capture:!1,passive:!0}),()=>{t.scrollElement.removeEventListener("scroll",c)}},hb=db("element"),vb=(db("window"),(e,t)=>Math.round(e.getBoundingClientRect()[t.options.horizontal?"width":"height"])),mb=(e,t,n)=>{var r;let{adjustments:o,behavior:a,sync:i}=t;const l=(i?e:e+n.options.scrollMargin)+(o??0);null==(r=n.scrollElement)||null==r.scrollTo||r.scrollTo({[n.options.horizontal?"left":"top"]:l,behavior:a})};class gb{constructor(e){var t=this;this.unsubs=[],this.scrollElement=null,this.isScrolling=!1,this.isScrollingTimeoutId=null,this.measurementsCache=[],this.itemMeasurementsCache={},this.pendingMeasuredCacheIndexes=[],this.scrollAdjustments=0,this.measureElementCache={},this.pendingScrollToIndexCallback=null,this.getResizeObserver=(()=>{let e=null;return()=>e||("undefined"!==typeof ResizeObserver?e=new ResizeObserver((e=>{e.forEach((e=>{this._measureElement(e.target,!1)}))})):null)})(),this.range={startIndex:0,endIndex:0},this.setOptions=e=>{Object.entries(e).forEach((t=>{let[n,r]=t;"undefined"===typeof r&&delete e[n]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:lb,rangeExtractor:cb,onChange:()=>{},measureElement:vb,initialRect:{width:0,height:0},scrollMargin:0,scrollingDelay:150,indexAttribute:"data-index",...e}},this.notify=()=>{var e,t;null==(e=(t=this.options).onChange)||e.call(t,this)},this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((e=>e())),this.unsubs=[],this.scrollElement=null},this._didMount=()=>{const e=this.getResizeObserver();return Object.values(this.measureElementCache).forEach((t=>null==e?void 0:e.observe(t))),()=>{null==e||e.disconnect(),this.cleanup()}},this._willUpdate=()=>{var e;null==(e=this.pendingScrollToIndexCallback)||e.call(this);const t=this.options.getScrollElement();this.scrollElement!==t?(this.cleanup(),this.scrollElement=t,this._scrollToOffset(this.scrollOffset,{adjustments:void 0,behavior:void 0,sync:!0}),this.unsubs.push(this.options.observeElementRect(this,(e=>{this.scrollRect=e,this.calculateRange()}))),this.unsubs.push(this.options.observeElementOffset(this,(e=>{null!==this.isScrollingTimeoutId&&(clearTimeout(this.isScrollingTimeoutId),this.isScrollingTimeoutId=null),this.scrollOffset!==e?(this.scrollOffset=e,this.isScrolling=!0,this.scrollAdjustments=0,this.isScrollingTimeoutId=setTimeout((()=>{this.isScrollingTimeoutId=null,this.isScrolling=!1,this.notify()}),this.options.scrollingDelay)):(this.isScrolling=!1,this.scrollAdjustments=0),this.calculateRange()})))):this.isScrolling||this.calculateRange()},this.getSize=()=>this.scrollRect[this.options.horizontal?"width":"height"],this.getMeasurements=ib((()=>[this.options.count,this.options.paddingStart,this.options.getItemKey,this.itemMeasurementsCache]),((e,t,n,r)=>{const o=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const a=this.measurementsCache.slice(0,o);for(let i=o;i<e;i++){const e=n(i),o=r[e],l=a[i-1]?a[i-1].end:t,c="number"===typeof o?o:this.options.estimateSize(i),s=l+c;a[i]={index:i,start:l,size:c,end:s,key:e}}return this.measurementsCache=a,a}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=ib((()=>[this.getMeasurements(),this.getSize(),this.scrollOffset]),((e,t,n)=>{const r=function(e){let{measurements:t,outerSize:n,scrollOffset:r}=e;const o=t.length-1,a=e=>t[e].start,i=fb(0,o,a,r);let l=i;for(;l<o&&t[l].end<r+n;)l++;return{startIndex:i,endIndex:l}}({measurements:e,outerSize:t,scrollOffset:n});return r.startIndex===this.range.startIndex&&r.endIndex===this.range.endIndex||(this.range=r,this.notify()),this.range}),{key:!1,debug:()=>this.options.debug}),this.getIndexes=ib((()=>[this.options.rangeExtractor,this.range,this.options.overscan,this.options.count]),((e,t,n,r)=>e({...t,overscan:n,count:r})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;const o=this.measureElementCache[r.key],a=this.getResizeObserver();if(!e.isConnected)return void(o&&(null==a||a.unobserve(o),delete this.measureElementCache[r.key]));o&&o===e||(o&&(null==a||a.unobserve(o)),this.measureElementCache[r.key]=e,null==a||a.observe(e));const i=this.options.measureElement(e,this),l=i-(this.itemMeasurementsCache[r.key]??r.size);0!==l&&(r.start<this.scrollOffset&&this.isScrolling&&this._scrollToOffset(this.scrollOffset,{adjustments:this.scrollAdjustments+=l,behavior:void 0,sync:!1}),this.pendingMeasuredCacheIndexes.push(n),this.itemMeasurementsCache={...this.itemMeasurementsCache,[r.key]:i},this.notify())},this.measureElement=e=>{e&&this._measureElement(e,!0)},this.getVirtualItems=ib((()=>[this.getIndexes(),this.getMeasurements()]),((e,t)=>{const n=[];for(let r=0,o=e.length;r<o;r++){const o=t[e[r]];n.push(o)}return n}),{key:!1,debug:()=>this.options.debug}),this.scrollToOffset=function(e,n){let{align:r="start",behavior:o}=void 0===n?{}:n;const a=t.scrollOffset,i=t.getSize();"auto"===r&&(r=e<=a?"start":e>=a+i?"end":"start");const l={adjustments:void 0,behavior:o,sync:!1};"start"===r?t._scrollToOffset(e,l):"end"===r?t._scrollToOffset(e-i,l):"center"===r&&t._scrollToOffset(e-i/2,l)},this.scrollToIndex=function(e,n){let{align:r="auto",...o}=void 0===n?{}:n;t.pendingScrollToIndexCallback=null;const a=t.getMeasurements(),i=t.scrollOffset,l=t.getSize(),{count:c}=t.options,s=a[Math.max(0,Math.min(e,c-1))];if(!s)return;if("auto"===r)if(s.end>=i+l-t.options.scrollPaddingEnd)r="end";else{if(!(s.start<=i+t.options.scrollPaddingStart))return;r="start"}const u="end"===r?s.end+t.options.scrollPaddingEnd:s.start-t.options.scrollPaddingStart;t.scrollToOffset(u,{align:r,...o});if(Object.keys(t.measureElementCache).length>0){const n=()=>"number"===typeof t.itemMeasurementsCache[t.options.getItemKey(e)];n()||(t.pendingScrollToIndexCallback=()=>{n()&&(t.pendingScrollToIndexCallback=null,t.scrollToIndex(e,{align:r,...o}))})}},this.getTotalSize=()=>{var e;return((null==(e=this.getMeasurements()[this.options.count-1])?void 0:e.end)||this.options.paddingStart)+this.options.paddingEnd},this._scrollToOffset=(e,t)=>{let{adjustments:n,behavior:r,sync:o}=t;this.options.scrollToFn(e,{behavior:r,sync:o,adjustments:n},this)},this.measure=()=>{this.itemMeasurementsCache={},this.notify()},this.setOptions(e),this.scrollRect=this.options.initialRect,this.scrollOffset=this.options.initialOffset,this.calculateRange()}}const fb=(e,t,n,r)=>{for(;e<=t;){const o=(e+t)/2|0,a=n(o);if(a<r)e=o+1;else{if(!(a>r))return o;t=o-1}}return e>0?e-1:0};const pb="undefined"!==typeof window?i.useLayoutEffect:i.useEffect;function wb(e){const t=i.useReducer((()=>({})),{})[1],n={...e,onChange:n=>{t(),null==e.onChange||e.onChange(n)}},[r]=i.useState((()=>new gb(n)));return r.setOptions(n),i.useEffect((()=>r._didMount()),[]),pb((()=>r._willUpdate())),r}function bb(e){return wb({observeElementRect:sb,observeElementOffset:hb,scrollToFn:mb,...e})}function yb(e){return function(e){if(Array.isArray(e))return xb(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return xb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return xb(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const Ob=function(e,t,n){void 0===n&&(n=[]);var r=(0,i.useRef)(e);(0,i.useLayoutEffect)((function(){r.current=e}),n),(0,i.useEffect)((function(){var e=setTimeout((function(){return r.current()}),t);return function(){return clearTimeout(e)}}),[t].concat(yb(n)))};var Bb=["value","onChange","onReset","placeholder"];function Cb(){return Cb=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Cb.apply(this,arguments)}var _b=(0,i.forwardRef)((function(e,t){var n=e.value,r=void 0===n?"":n,o=e.onChange,a=e.onReset,l=e.placeholder,c=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Bb),s=(0,i.useState)(r),u=s[0],d=s[1];return Ob((function(){return o(u)}),300,[u]),i.createElement(Xp,Cb({iconLeft:i.createElement(Rm,{name:"search",color:u?"textFocus":"textLite",width:"14px",height:"14px"}),iconRight:(!!u||!!r)&&i.createElement(gp,{icon:"x",iconColor:u?"textFocus":"textLite",width:"14px",height:"14px",onClick:function(){return a?a():d("")},padding:[0],neutral:!0}),inputRef:t,value:u,onChange:function(e){return d(e.target.value)},placeholder:l,size:"small"},c))}));const zb=_b;function Mb(e){return"function"===typeof e}function Eb(e){return Array.isArray(e)}function Sb(e){var t=typeof e;return null!=e&&("object"===t||"function"===t)&&!Eb(e)}function kb(e){return Sb(e)&&0===Object.keys(e).length}function jb(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){return function(e,t){if(null!=e)if(Mb(e))e(t);else try{e.current=t}catch(io){throw new Error("Cannot assign value '"+t+"' to ref '"+e+"'")}}(t,e)}))}}var Hb=["hideShadow","itemProps","items","onItemClick","dropTitle","dropTitlePadding","Item","Footer","value","hasSearch","searchMargin","gap","estimateSize","close"];function Pb(){return Pb=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pb.apply(this,arguments)}var Vb=(0,l.default)(qg).withConfig({displayName:"dropdown__Container",componentId:"sc-1nyt35p-0"})([""," list-style-type:none;"],(function(e){return!e.hideShadow&&"box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);"})),Ab=function(){return 28},Lb=(0,i.forwardRef)((function(e,t){var n=e.hideShadow,r=e.itemProps,o=e.items,a=e.onItemClick,l=e.dropTitle,c=e.dropTitlePadding,s=void 0===c?[3,3,0]:c,u=e.Item,d=e.Footer,h=e.value,v=e.hasSearch,m=e.searchMargin,g=void 0===m?[4]:m,f=e.gap,p=void 0===f?0:f,w=e.estimateSize,b=void 0===w?Ab:w,y=e.close,x=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Hb),O=(0,i.useState)(""),B=O[0],C=O[1],_=(0,i.useMemo)((function(){if(!B)return o;var e=B.toLowerCase();return o.filter((function(t){var n=t.label,r=t.value;return!("string"!==typeof n||!n.toLowerCase().includes(e))||!("string"!==typeof r||!r.toLowerCase().includes(e))}))}),[o,B]),z=(0,i.useRef)(),M=bb({count:_.length,getScrollElement:function(){return z.current},scrollOffsetFn:function(e){return e?e.target.scrollTop-z.current.offsetTop:0},overscan:3,enableSmoothScroll:!1,estimateSize:b});return i.createElement(Vb,Pb({as:"ul",role:"listbox",background:"dropdown",hideShadow:n,padding:[0],margin:[1,0],column:!0,tabindex:"-1",width:"auto"},x),l&&i.createElement(qg,{padding:s},l),v&&i.createElement(Zg,{margin:g},i.createElement(zb,{"data-testid":"dropdown-search",placeholder:"Search",onChange:C})),i.createElement("div",{ref:jb(z,t),style:{height:"100%",overflow:"auto"}},i.createElement("div",{style:{minHeight:M.getTotalSize()+"px",width:"100%",position:"relative"}},M.getVirtualItems().map((function(e){return i.createElement("div",{key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY("+e.start+"px)",padding:2*p,overflow:"hidden"},"data-index":e.index,ref:M.measureElement},i.createElement(u,{item:_[e.index],index:e.index,itemProps:r,value:h,onItemClick:a,close:y}))})))),d&&i.createElement(d,{close:y}))}));const Db=Lb;var Fb=["value","label","icon","reverse","disabled","onClick"],Ib=["item","value","onItemClick","index","style"];function Tb(){return Tb=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Tb.apply(this,arguments)}function Rb(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function Nb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ub(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Gb=(0,l.default)(qg).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nb(Object(n),!0).forEach((function(t){Ub(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nb(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({as:"li",role:"option",padding:[1,4]},e)})).withConfig({displayName:"dropdownItem__ItemContainer",componentId:"sc-vjov6x-0"})(["cursor:",";opacity:",";pointer-events:",";&:hover{background-color:",";}"," ",""],(function(e){var t=e.cursor;return null!=t?t:"pointer"}),(function(e){var t=e.disabled;return e.selected?.9:t?.4:1}),(function(e){return e.disabled?"none":"auto"}),(function(e){return D("borderSecondary")(e)}),(function(e){var t=e.justDesc,n=e.theme;return t&&"\n pointer-events: none;\n border-top: 1px solid "+D("borderSecondary")({theme:n})+";\n & > * {\n color: "+D("textLite")({theme:n})+"\n }\n "}),(function(e){var t=e.selected,n=e.theme;return t&&"\n background-color: "+("Dark"===n.name?F(["green","netdata"],.3)({theme:n}):F(["green","frostee"])({theme:n}))+"\n "}));const Wb=function(e){var t=e.item,n=t.value,r=t.label,o=t.icon,a=t.reverse,l=t.disabled,c=t.onClick,s=Rb(t,Fb),u=e.value,d=e.onItemClick,h=e.index,v=e.style,m=Rb(e,Ib),g=u===n;return i.createElement(Gb,Tb({"data-index":h,"aria-selected":g,disabled:l,selected:g,onClick:function(e){c&&c(e),d(n)}},s,m,{style:v}),a&&i.createElement(Kf,null,r),o,!a&&i.createElement(Kf,null,r))};var qb=["value","onChange","onOpen","onClose","closeOnClick","open","icon","label","caret","children","dropProps","dropdownProps","itemProps","items","Item","Footer","Dropdown","animation","dropTitle","dropTitlePadding","hasSearch"];function Kb(){return Kb=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Kb.apply(this,arguments)}function Jb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Qb(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $b=(0,i.forwardRef)((function(e,t){var n=e.value,r=e.onChange,o=e.onOpen,a=e.onClose,l=e.closeOnClick,c=void 0===l||l,s=e.open,u=void 0!==s&&s,d=e.icon,h=void 0===d?null:d,v=e.label,m=e.caret,g=void 0===m||m,f=e.children,p=e.dropProps,w=e.dropdownProps,b=e.itemProps,y=e.items,x=e.Item,O=void 0===x?Wb:x,B=e.Footer,C=e.Dropdown,_=void 0===C?Db:C,z=e.animation,M=e.dropTitle,E=e.dropTitlePadding,S=e.hasSearch,k=void 0!==S&&S,j=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,qb),H=_f(u,{on:o,off:a}),P=H[0],V=H[1],A=H[3],L=lf(t),D=L[0],F=L[1],I=(0,i.useCallback)((function(e){r&&r(e),c&&A()}),[r]),T=(0,i.useCallback)((function(e){D.current===e.target||nf(e.target).some((function(e){return e===D.current}))||A()}),[A]),R=Sf(f,F,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jb(Object(n),!0).forEach((function(t){Qb(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jb(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({onClick:V,"aria-haspopup":"listbox","aria-expanded":P,open:P},j)),N=(0,i.useMemo)((function(){if(v)return v;if(R)return R;var e=y.find((function(e){return e.value===n}));return null==e?void 0:e.label}),[v,R,y,n]);return i.createElement(i.Fragment,null,R||i.createElement(ab,Kb({ref:F,icon:h,label:N,caret:g,onClick:V,open:P},j)),P&&D.current&&i.createElement(Cf,Kb({animation:z,onEsc:A,onClickOutside:T,hideShadow:!0,target:D.current},p),i.createElement(_,Kb({dropTitle:M,dropTitlePadding:E,value:n,onItemClick:I,items:y,itemProps:b,Item:O,Footer:B,hasSearch:k,close:A},w))))}));const Yb=$b;var Zb={top:"0",right:"0",bottom:"0",left:"0"};const Xb=function(e,t){if(!Array.isArray(t)||t.length<1||t.length>4)return Zb;var n=t.map((function(t){return R(e,t)}));return 1===n.length?{top:n[0],right:n[0],bottom:n[0],left:n[0]}:2===n.length?{top:n[0],right:n[1],bottom:n[0],left:n[1]}:3===n.length?{top:n[0],right:n[1],bottom:n[2],left:n[1]}:{top:n[0],right:n[1],bottom:n[2],left:n[3]}};var ey=function(e,t){return"0"!==e&&"0"!==t?"calc((100% - "+e+") - "+t+")":"0"===e&&"0"===t?"100%":"calc(100% - "+("0"===e?t:e)+")"},ty=new Set(["top","center","bottom"]),ny=new Set(["bottom-left","left","top-left"]),ry=new Set(["right","center","left"]),oy=new Set(["top-left","top","top-right"]),ay=new Set(["top-right","right","bottom-right"]),iy=new Set(["bottom-right","bottom","bottom-left"]),ly=l.default.div.attrs((function(e){var t=e.theme,n=e.margin;return{marginDimensions:Xb(t,n)}})).withConfig({displayName:"container__Container",componentId:"sc-k2hlzf-0"})(["position:",";display:flex;outline:none;pointer-events:all;"," "," "," "," "," "," "," "," "," "," "," ",""],(function(e){return e.isAbsolute?"absolute":"fixed"}),Zm,eg,ng,(function(e){var t=e.marginDimensions,n=t.top,r=t.bottom;return"max-height: "+ey(n,r)+";"}),(function(e){var t=e.marginDimensions,n=t.right,r=t.left;return"max-width: "+ey(r,n)+";"}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"vertical"===n||!0===n||oy.has(t)?"top: "+r.top+";":ry.has(t)?"top: 50%;":""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"horizontal"===n||!0===n||ay.has(t)?"right: "+r.right+";":""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"vertical"===n||!0===n||iy.has(t)?"bottom: "+r.bottom+";":""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"horizontal"===n||!0===n||ny.has(t)?"left: "+r.left+";":ty.has(t)?"left: 50%;":""}),(function(e){var t=e.full,n=e.position,r=function(){var e=!0!==t&&"horizontal"!==t&&ty.has(n),r=!0!==t&&"vertical"!==t&&ry.has(n);return e||r?e&&!r?"translateX(-50%)":!e&&r?"translateY(-50%)":"translate(-50%, -50%)":""}();return r&&"transform: "+r+";"}),(function(e){return e.borderShadow&&"box-shadow: 0px 2px 68px rgba(0, 0, 0, 0.288);"}),(function(e){var t=e.zIndex,n=void 0===t?35:t;return"z-index: "+n+";"}));const cy=ly;function sy(){return sy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sy.apply(this,arguments)}var uy=l.default.div.withConfig({displayName:"backdropContainer__Container",componentId:"sc-8f2v2j-0"})(["position:fixed;inset:0;z-index:35;pointer-events:none;outline:none;"]),dy=l.default.div.withConfig({displayName:"backdropContainer__Backdrop",componentId:"sc-8f2v2j-1"})(["position:absolute;inset:0;pointer-events:all;background-color:rgba(0,0,0,0.3);",";}"],wf);const hy=function(e){var t=e.children,n=e.backdropProps,r=e.onClick;return i.createElement(uy,{"data-testid":"layer-backdropContainer"},i.createElement(dy,sy({"data-testid":"layer-backdrop"},n,{onClick:r})),t)};var vy=["position","full","backdrop","margin","onClickOutside","onEsc","borderShadow","children","backdropProps"];function my(){return my=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},my.apply(this,arguments)}var gy=[];const fy=function(e){var t=e.position,n=void 0===t?"center":t,r=e.full,o=void 0!==r&&r,a=e.backdrop,l=void 0===a||a,c=e.margin,s=void 0===c?gy:c,u=e.onClickOutside,d=e.onEsc,h=e.borderShadow,v=e.children,m=e.backdropProps,g=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,vy),f=(0,i.useRef)();of(f,u,null,l),tf(d);var p=ef(),w=i.createElement(cy,my({isAbsolute:l,ref:f,full:o,position:n,margin:s,borderShadow:h,"data-testid":"layer-container"},g),v);return Xg.createPortal(l?i.createElement(hy,my({backdropProps:m},g,{onClick:u}),w):w,p)};var py=n(13674);var wy=["in","as","toggle","speed","timing","transformOrigin","mount","children"];function by(){return by=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},by.apply(this,arguments)}const yy=function(e){var t=e.in,n=e.as,r=e.toggle,o=e.speed,a=void 0===o?200:o,c=e.timing,s=void 0===c?"":c,u=e.transformOrigin,d=e.mount,h=e.children,v=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,wy),m=(0,i.useMemo)((function(){return function(e){var t=e.toggle,n=e.timing,r=void 0===n?"":n,o=e.speed,a=void 0===o?200:o,i=e.transformOrigin,c=function(e){return(0,l.css)([""," animation:"," ","ms ",";"],i&&"transform-origin: "+i+";",e,a,r)};return{entering:c((0,l.keyframes)(["from{","}"],t)),exiting:c((0,l.keyframes)(["to{","}"],t))}}({toggle:r,timing:s,speed:a,transformOrigin:u})}),[]),g=(0,i.useMemo)((function(){return n&&(0,l.default)(n).withConfig({displayName:"animation",componentId:"sc-6srjcx-0"})(["",""],(function(e){return e.transitionStyling}))}),[]);return i.createElement(py.Ay,{in:t,timeout:a,mountOnEnter:!d,unmountOnExit:!d},(function(e){var t=m[e];return g?i.createElement(g,by({transitionStyling:t},v),h({transition:e,transitionStyling:t})):h({transition:e,transitionStyling:t})}))},xy=function(e,t){var n=function(){var e=(0,i.useRef)(!1);return(0,i.useEffect)((function(){return e.current=!0,function(){return e.current=!1}}),[]),e}();(0,i.useEffect)((function(){if(n.current)return e()}),t)};var Oy=["open","duration","children","direction","persist","closedValue","overflow"];function By(){return By=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},By.apply(this,arguments)}function Cy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _y(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var zy={vertical:"height",horizontal:"width"},My=(0,l.default)(qg).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cy(Object(n),!0).forEach((function(t){_y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cy(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({column:!0},e)})).withConfig({displayName:"collapsible__Animated",componentId:"sc-1yto4nf-0"})(["transition:",";",";"],(function(e){var t=e.duration;return"max-"+e.measurement+" "+t+"ms ease-in-out"}),(function(e){return"max-"+e.measurement+": "+e.maxDimension})),Ey=(0,i.forwardRef)((function(e,t){var n=e.open,r=void 0!==n&&n,o=e.duration,a=void 0===o?150:o,l=e.children,c=e.direction,s=e.persist,u=void 0!==s&&s,d=e.closedValue,h=void 0===d?0:d,v=e.overflow,m=void 0===v?"visible":v,g=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Oy),f=zy[c]||zy.vertical,p=(0,i.useState)(r?"initial":h+"px"),w=p[0],b=p[1],y=(0,i.useState)(r),x=y[0],O=y[1],B=lf(t),C=B[0],_=B[1];xy((function(){if(C.current){b(r?h+"px":C.current.scrollHeight+"px");var e=requestAnimationFrame((function(){C.current&&b(r?C.current.scrollHeight+"px":h+"px")}));r&&O(r);var t=setTimeout((function(){cancelAnimationFrame(e),r?b("initial"):(b(h+"px"),O(!1))}),a);return function(){cancelAnimationFrame(e),clearTimeout(t)}}}),[r]);var z=(0,i.useMemo)((function(){return(x||u)&&("function"===typeof l?l(x):l)}),[x,u,l]);return i.createElement(My,By({open:r,maxDimension:w,measurement:f,duration:a,ref:_,"data-testid":"collapsible",overflow:"initial"===w?m:"hidden"},g),z)}));const Sy=(0,i.memo)(Ey);function ky(){return ky=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ky.apply(this,arguments)}var jy=(0,l.default)(Jf).attrs({as:"a",target:"_blank"}).withConfig({displayName:"general__Anchor",componentId:"sc-rybr76-0"})(["&&&{text-decoration:none;color:",";&:hover{color:",";text-decoration:none;}}"],D("primary"),D("accent")),Hy=function(e){var t=e.icon,n=e.title,r=e.content,o=e.url,a=e.children,l=e.testid,c=e.label,s=e.labelTransform,u=e.onClick;return i.createElement(qg,{width:"100%",column:!0,gap:2},i.createElement(qg,{gap:2,alignItems:"center"},i.createElement(Rm,{color:"text",name:t,width:"18px",height:"18px"}),i.createElement(Nf,{margin:[0]},n)),i.createElement(qg,{column:!0,gap:4,padding:[0,2]},i.createElement(Jf,null,r),i.createElement(Qg,ky({width:"100%",onClick:u,label:c,"data-testid":l},s&&{textTransform:s},o&&{as:"a",target:"_blank",href:o})),a))},Py={cloud:{documentationUrl:"https://learn.netdata.cloud/",issuesUrl:"https://github.com/netdata/netdata-cloud/issues/new?labels=bug&template=submig-a-bug-for-netdata-cloud.md&title=%5BBUG%5D",issuesLabel:"Let us know about any bugs you\u2019ve encountered in Netdata Cloud.",otherIssuesUrl:"https://github.com/netdata/netdata/issues/new?assignees=&labels=bug%2Cneeds+triage&template=BUG_REPORT.yml&title=%5BBug%5D%3A+",otherIssuesLabel:"Agent",communitySupportUrl:"https://www.netdata.cloud/community/"},agent:{documentationUrl:"https://learn.netdata.cloud/",issuesUrl:"https://github.com/netdata/netdata/issues/new?assignees=&labels=bug%2Cneeds+triage&template=BUG_REPORT.yml&title=%5BBug%5D%3A+",issuesLabel:"Let us know about any bugs you\u2019ve encountered in Netdata Agent.",otherIssuesUrl:"https://github.com/netdata/netdata-cloud/issues/new?labels=bug&template=submig-a-bug-for-netdata-cloud.md&title=%5BBUG%5D",otherIssuesLabel:"Cloud",communitySupportUrl:"https://www.netdata.cloud/community/"}};const Vy=function(e){var t=e.app,n=e.onDashboardClick,r=e.onVisitDocumentClick,o=e.onOpenIssueClick,a=e.onOpenBugClick,l=e.onSupportClick,c=e.onGoToDemoClick,s=e.demoUrl,u=void 0===s?"https://app.netdata.cloud/spaces/netdata-demor":s,d=Py[t]||Py.cloud,h=d.documentationUrl,v=d.issuesUrl,m=d.issuesLabel,g=d.communitySupportUrl,f=d.otherIssuesUrl,p=d.otherIssuesLabel;return i.createElement(i.Fragment,null,"agent"===t&&i.createElement(i.Fragment,null,i.createElement(Hy,{icon:"dashboard",title:"Dashboard",content:"Learn how to interact with graphs using your mouse or touch interface.",testid:"dashboard-info",label:"Learn to use the Dashboard",onClick:n}),i.createElement(qg,{width:"100%",height:{min:"1px"},background:"disabled"})),i.createElement(Hy,{icon:"documentation",title:"Documentation",content:"View how-tos, reference docs, and tutorials to help you get the most out of Netdata Cloud. ",url:h,testid:"documentation-link",label:"Visit the docs",onClick:r}),i.createElement(Hy,{icon:"unknownError",title:"Report a Bug",content:m,url:v,testid:"documentation-report-bug-link",label:"Open a new Issue in GitHub",labelTransform:"none",onClick:o},i.createElement(Jf,null,"Found a bug with the Netdata ",p,"?",i.createElement(jy,{href:f,onClick:a},"Open an issue")," ","on GitHub")),i.createElement(Hy,{icon:"community",title:"Community",content:"If you need help or would like to contribute to Netdata, join our Community and ask questions, discuss topics, or propose feature requests.",url:g,testid:"documentation-community-support-link",label:"Join the Community",onClick:l}),i.createElement(Hy,{icon:"spaces_v2",title:"Public demo space",content:"Netdata has a public demo space where you can explore different monitoring use-cases. Jump into any that might interest you and put your hands-on our monitoring solution!",url:u,testid:"demo-link",label:"Go to demo",onClick:c}))};var Ay=["title","children","topBorder"];function Ly(){return Ly=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ly.apply(this,arguments)}var Dy={border:{side:"top",color:"disabled"},padding:[6,0,0]},Fy=function(e){return i.createElement(qg,Ly({overflow:{vertical:"auto"},padding:[6,4],gap:6,column:!0},e))};const Iy=function(e){var t=e.title,n=e.children,r=e.topBorder,o=void 0===r||r,a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Ay);return i.createElement(qg,Ly({column:!0},o&&Dy,a),i.createElement(qg,{margin:[0,0,2],gap:2},i.createElement(Rm,{name:"insights",color:"text",width:"18px",height:"18px"}),i.createElement(Jf,{strong:!0},t)),"string"===typeof n?i.createElement(Jf,null,n):n)};const Ty=function(){return i.createElement(Fy,null,i.createElement(Iy,{title:"Mouse Over / Hover",topBorder:!1},i.createElement(Jf,null,"Mouse over on a chart to show, at its legend, the values for the timestamp under the mouse (the chart will also highlight the point at the chart)."),i.createElement(Jf,null,"All the other visible charts will also show and highlight their values for the same timestamp.")),i.createElement(Iy,{title:"Drag Chart Contents"},i.createElement(Jf,null,"Drag the contents of a chart, by pressing the left mouse button and moving the mouse,"),i.createElement(Jf,null,"All the charts will follow soon after you let the chart alone (this little delay is by design: it speeds up your browser and lets you focus on what you are exploring)."),i.createElement(Jf,null,"Once a chart is panned, auto refreshing stops for all charts. To enable it again, double click a panned chart.")),i.createElement(Iy,{title:"Double Click"},"Double Click a chart to reset all the charts to their default auto-refreshing state."),i.createElement(Iy,{title:"SHIFT + Drag"},i.createElement(Jf,null,"While pressing the ",i.createElement("b",null,"SHIFT")," key, press the left mouse button on the contents of a chart and move the mouse to select an area, to zoom in. The other charts will follow too. Zooming is performed in two phases:"),i.createElement(Jf,{margin:[4,0,0]},"- The already loaded chart contents are zoomed (low resolution)"),i.createElement(Jf,null,"- New data are transferred from the netdata server, to refresh the chart with possibly more detail."),i.createElement(Jf,{margin:[4,0,0]},"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Iy,{title:"Highlight Timeframe"},i.createElement(Jf,null,"While pressing the ",i.createElement("b",null,"ALT")," key, press the left mouse button on the contents of a chart and move the mouse to select an area. The selected are will be highlighted on all charts.")),i.createElement(Iy,{title:"SHIFT + Mouse Wheel"},i.createElement(Jf,null,"While pressing the ",i.createElement("b",null,"SHIFT")," key and the mouse pointer is over the contents of a chart, scroll the mouse wheel to zoom in or out. This kind of zooming is aligned to center below the mouse pointer. The other charts will follow too."),i.createElement(Jf,null,"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Iy,{title:"Legend Operations"},i.createElement(Jf,null,"Click on the label or value of a dimension, will select / un-select this dimension."),i.createElement(Jf,null,"You can press any of the ",i.createElement("b",null,"SHIFT")," or ",i.createElement("b",null,"CONTROL")," keys and then click on legend labels or values, to select / un-select multiple dimensions.")))};const Ry=function(){return i.createElement(Fy,null,i.createElement(Iy,{title:"Single tap",topBorder:!1},i.createElement(Jf,null,"Single Tap on the contents of a chart to show, at its legend, the values for the timestamp tapped (the chart will also highlight the point at the chart)."),i.createElement(Jf,null,"All the other visible charts will also show and highlight their values for the same timestamp.")),i.createElement(Iy,{title:"Drag Chart Contents"},i.createElement(Jf,null,"Touch and Drag the contents of a chart to pan it horizontally."),i.createElement(Jf,null,"All the charts will follow soon after you let the chart alone (this little delay is by design: it speeds up your browser and lets you focus on what you are exploring)."),i.createElement(Jf,null,"Once a chart is panned, auto refreshing stops for all charts. To enable it again, double tap a panned chart.")),i.createElement(Iy,{title:i.createElement(i.Fragment,null,i.createElement(Jf,{strong:!0},"Zoom"),i.createElement(Jf,{margin:[0,0,0,1]},"(does not work on firefox and IE/Edge)"))},i.createElement(Jf,null,"With two fingers, zoom in or out."),i.createElement(Jf,null,"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Iy,{title:"Double Tap"},"Tap on the label or value of a dimension, will select / un-select this dimension."))};var Ny=(0,l.default)(Kw).withConfig({displayName:"dashboard__StyledTabs",componentId:"sc-8t9551-0"})(["width:100%;.tabs > *{min-width:initial;max-width:initial;}"]);const Uy=function(){return i.createElement(qg,{overflow:{vertical:"auto"},"data-testid":"dashboard"},i.createElement(Ny,null,i.createElement(Uw,{label:"Using a Mouse"},i.createElement(Ty,null)),i.createElement(Uw,{label:"Using Touch"},i.createElement(Ry,null))))};var Gy=n(81703),Wy=n(70659),qy=n(46963);function Ky(e,t){return function(){return e.apply(t,arguments)}}const{toString:Jy}=Object.prototype,{getPrototypeOf:Qy}=Object,$y=(Yy=Object.create(null),e=>{const t=Jy.call(e);return Yy[t]||(Yy[t]=t.slice(8,-1).toLowerCase())});var Yy;const Zy=e=>(e=e.toLowerCase(),t=>$y(t)===e),Xy=e=>t=>typeof t===e,{isArray:ex}=Array,tx=Xy("undefined");const nx=Zy("ArrayBuffer");const rx=Xy("string"),ox=Xy("function"),ax=Xy("number"),ix=e=>null!==e&&"object"===typeof e,lx=e=>{if("object"!==$y(e))return!1;const t=Qy(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},cx=Zy("Date"),sx=Zy("File"),ux=Zy("Blob"),dx=Zy("FileList"),hx=Zy("URLSearchParams");function vx(e,t,{allOwnKeys:n=!1}={}){if(null===e||"undefined"===typeof e)return;let r,o;if("object"!==typeof e&&(e=[e]),ex(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),a=o.length;let i;for(r=0;r<a;r++)i=o[r],t.call(null,e[i],i,e)}}function mx(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,o=n.length;for(;o-- >0;)if(r=n[o],t===r.toLowerCase())return r;return null}const gx="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global,fx=e=>!tx(e)&&e!==gx;const px=(wx="undefined"!==typeof Uint8Array&&Qy(Uint8Array),e=>wx&&e instanceof wx);var wx;const bx=Zy("HTMLFormElement"),yx=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),xx=Zy("RegExp"),Ox=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};vx(n,((n,o)=>{let a;!1!==(a=t(n,o,e))&&(r[o]=a||n)})),Object.defineProperties(e,r)},Bx="abcdefghijklmnopqrstuvwxyz",Cx="0123456789",_x={DIGIT:Cx,ALPHA:Bx,ALPHA_DIGIT:Bx+Bx.toUpperCase()+Cx};const zx=Zy("AsyncFunction"),Mx={isArray:ex,isArrayBuffer:nx,isBuffer:function(e){return null!==e&&!tx(e)&&null!==e.constructor&&!tx(e.constructor)&&ox(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||ox(e.append)&&("formdata"===(t=$y(e))||"object"===t&&ox(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&nx(e.buffer),t},isString:rx,isNumber:ax,isBoolean:e=>!0===e||!1===e,isObject:ix,isPlainObject:lx,isUndefined:tx,isDate:cx,isFile:sx,isBlob:ux,isRegExp:xx,isFunction:ox,isStream:e=>ix(e)&&ox(e.pipe),isURLSearchParams:hx,isTypedArray:px,isFileList:dx,forEach:vx,merge:function e(){const{caseless:t}=fx(this)&&this||{},n={},r=(r,o)=>{const a=t&&mx(n,o)||o;lx(n[a])&&lx(r)?n[a]=e(n[a],r):lx(r)?n[a]=e({},r):ex(r)?n[a]=r.slice():n[a]=r};for(let o=0,a=arguments.length;o<a;o++)arguments[o]&&vx(arguments[o],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(vx(t,((t,r)=>{n&&ox(t)?e[r]=Ky(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,a,i;const l={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)i=o[a],r&&!r(i,e,t)||l[i]||(t[i]=e[i],l[i]=!0);e=!1!==n&&Qy(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:$y,kindOfTest:Zy,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(ex(e))return e;let t=e.length;if(!ax(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:bx,hasOwnProperty:yx,hasOwnProp:yx,reduceDescriptors:Ox,freezeMethods:e=>{Ox(e,((t,n)=>{if(ox(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];ox(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return ex(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:mx,global:gx,isContextDefined:fx,ALPHABET:_x,generateString:(e=16,t=_x.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&ox(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(ix(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=ex(e)?[]:{};return vx(e,((e,t)=>{const a=n(e,r+1);!tx(a)&&(o[t]=a)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:zx,isThenable:e=>e&&(ix(e)||ox(e))&&ox(e.then)&&ox(e.catch)};function Ex(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}Mx.inherits(Ex,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Mx.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Sx=Ex.prototype,kx={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{kx[e]={value:e}})),Object.defineProperties(Ex,kx),Object.defineProperty(Sx,"isAxiosError",{value:!0}),Ex.from=(e,t,n,r,o,a)=>{const i=Object.create(Sx);return Mx.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),Ex.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,a&&Object.assign(i,a),i};const jx=Ex;function Hx(e){return Mx.isPlainObject(e)||Mx.isArray(e)}function Px(e){return Mx.endsWith(e,"[]")?e.slice(0,-2):e}function Vx(e,t,n){return e?e.concat(t).map((function(e,t){return e=Px(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const Ax=Mx.toFlatObject(Mx,{},null,(function(e){return/^is[A-Z]/.test(e)}));const Lx=function(e,t,n){if(!Mx.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=Mx.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!Mx.isUndefined(t[e])}))).metaTokens,o=n.visitor||s,a=n.dots,i=n.indexes,l=(n.Blob||"undefined"!==typeof Blob&&Blob)&&Mx.isSpecCompliantForm(t);if(!Mx.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(Mx.isDate(e))return e.toISOString();if(!l&&Mx.isBlob(e))throw new jx("Blob is not supported. Use a Buffer instead.");return Mx.isArrayBuffer(e)||Mx.isTypedArray(e)?l&&"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}function s(e,n,o){let l=e;if(e&&!o&&"object"===typeof e)if(Mx.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Mx.isArray(e)&&function(e){return Mx.isArray(e)&&!e.some(Hx)}(e)||(Mx.isFileList(e)||Mx.endsWith(n,"[]"))&&(l=Mx.toArray(e)))return n=Px(n),l.forEach((function(e,r){!Mx.isUndefined(e)&&null!==e&&t.append(!0===i?Vx([n],r,a):null===i?n:n+"[]",c(e))})),!1;return!!Hx(e)||(t.append(Vx(o,n,a),c(e)),!1)}const u=[],d=Object.assign(Ax,{defaultVisitor:s,convertValue:c,isVisitable:Hx});if(!Mx.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!Mx.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),Mx.forEach(n,(function(n,a){!0===(!(Mx.isUndefined(n)||null===n)&&o.call(t,n,Mx.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),u.pop()}}(e),t};function Dx(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Fx(e,t){this._pairs=[],e&&Lx(e,this,t)}const Ix=Fx.prototype;Ix.append=function(e,t){this._pairs.push([e,t])},Ix.toString=function(e){const t=e?function(t){return e.call(this,t,Dx)}:Dx;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const Tx=Fx;function Rx(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Nx(e,t,n){if(!t)return e;const r=n&&n.encode||Rx,o=n&&n.serialize;let a;if(a=o?o(t,n):Mx.isURLSearchParams(t)?t.toString():new Tx(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}const Ux=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Mx.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Gx={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Wx={isBrowser:!0,classes:{URLSearchParams:"undefined"!==typeof URLSearchParams?URLSearchParams:Tx,FormData:"undefined"!==typeof FormData?FormData:null,Blob:"undefined"!==typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},qx="undefined"!==typeof window&&"undefined"!==typeof document,Kx=(Jx="undefined"!==typeof navigator&&navigator.product,qx&&["ReactNative","NativeScript","NS"].indexOf(Jx)<0);var Jx;const Qx="undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts,$x={...a,...Wx};const Yx=function(e){function t(e,n,r,o){let a=e[o++];const i=Number.isFinite(+a),l=o>=e.length;if(a=!a&&Mx.isArray(r)?r.length:a,l)return Mx.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!i;r[a]&&Mx.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],o)&&Mx.isArray(r[a])&&(r[a]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let a;for(r=0;r<o;r++)a=n[r],t[a]=e[a];return t}(r[a])),!i}if(Mx.isFormData(e)&&Mx.isFunction(e.entries)){const n={};return Mx.forEachEntry(e,((e,r)=>{t(function(e){return Mx.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null};const Zx={transitional:Gx,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=Mx.isObject(e);o&&Mx.isHTMLForm(e)&&(e=new FormData(e));if(Mx.isFormData(e))return r&&r?JSON.stringify(Yx(e)):e;if(Mx.isArrayBuffer(e)||Mx.isBuffer(e)||Mx.isStream(e)||Mx.isFile(e)||Mx.isBlob(e))return e;if(Mx.isArrayBufferView(e))return e.buffer;if(Mx.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Lx(e,new $x.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return $x.isNode&&Mx.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=Mx.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Lx(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(Mx.isString(e))try{return(t||JSON.parse)(e),Mx.trim(e)}catch(r){if("SyntaxError"!==r.name)throw r}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Zx.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&Mx.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(o){if(n){if("SyntaxError"===o.name)throw jx.from(o,jx.ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:$x.classes.FormData,Blob:$x.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Mx.forEach(["delete","get","head","post","put","patch"],(e=>{Zx.headers[e]={}}));const Xx=Zx,eO=Mx.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),tO=Symbol("internals");function nO(e){return e&&String(e).trim().toLowerCase()}function rO(e){return!1===e||null==e?e:Mx.isArray(e)?e.map(rO):String(e)}function oO(e,t,n,r,o){return Mx.isFunction(r)?r.call(this,t,n):(o&&(t=n),Mx.isString(t)?Mx.isString(r)?-1!==t.indexOf(r):Mx.isRegExp(r)?r.test(t):void 0:void 0)}class aO{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=nO(t);if(!o)throw new Error("header name must be a non-empty string");const a=Mx.findKey(r,o);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=rO(e))}const a=(e,t)=>Mx.forEach(e,((e,n)=>o(e,n,t)));return Mx.isPlainObject(e)||e instanceof this.constructor?a(e,t):Mx.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?a((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&eO[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&o(t,e,n),this}get(e,t){if(e=nO(e)){const n=Mx.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(Mx.isFunction(t))return t.call(this,e,n);if(Mx.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=nO(e)){const n=Mx.findKey(this,e);return!(!n||void 0===this[n]||t&&!oO(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=nO(e)){const o=Mx.findKey(n,e);!o||t&&!oO(0,n[o],o,t)||(delete n[o],r=!0)}}return Mx.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!oO(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return Mx.forEach(this,((r,o)=>{const a=Mx.findKey(n,o);if(a)return t[a]=rO(r),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();i!==o&&delete t[o],t[i]=rO(r),n[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return Mx.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&Mx.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[tO]=this[tO]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=nO(e);t[r]||(!function(e,t){const n=Mx.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return Mx.isArray(e)?e.forEach(r):r(e),this}}aO.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Mx.reduceDescriptors(aO.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),Mx.freezeMethods(aO);const iO=aO;function lO(e,t){const n=this||Xx,r=t||n,o=iO.from(r.headers);let a=r.data;return Mx.forEach(e,(function(e){a=e.call(n,a,o.normalize(),t?t.status:void 0)})),o.normalize(),a}function cO(e){return!(!e||!e.__CANCEL__)}function sO(e,t,n){jx.call(this,null==e?"canceled":e,jx.ERR_CANCELED,t,n),this.name="CanceledError"}Mx.inherits(sO,jx,{__CANCEL__:!0});const uO=sO;const dO=$x.hasStandardBrowserEnv?{write(e,t,n,r,o,a){const i=[e+"="+encodeURIComponent(t)];Mx.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),Mx.isString(r)&&i.push("path="+r),Mx.isString(o)&&i.push("domain="+o),!0===a&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function hO(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const vO=$x.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=Mx.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};const mO=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,a=0,i=0;return t=void 0!==t?t:1e3,function(l){const c=Date.now(),s=r[i];o||(o=c),n[a]=l,r[a]=c;let u=i,d=0;for(;u!==a;)d+=n[u++],u%=e;if(a=(a+1)%e,a===i&&(i=(i+1)%e),c-o<t)return;const h=s&&c-s;return h?Math.round(1e3*d/h):void 0}};function gO(e,t){let n=0;const r=mO(50,250);return o=>{const a=o.loaded,i=o.lengthComputable?o.total:void 0,l=a-n,c=r(l);n=a;const s={loaded:a,total:i,progress:i?a/i:void 0,bytes:l,rate:c||void 0,estimated:c&&i&&a<=i?(i-a)/c:void 0,event:o};s[t?"download":"upload"]=!0,e(s)}}const fO="undefined"!==typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const o=iO.from(e.headers).normalize();let a,i,{responseType:l,withXSRFToken:c}=e;function s(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}if(Mx.isFormData(r))if($x.hasStandardBrowserEnv||$x.hasStandardBrowserWebWorkerEnv)o.setContentType(!1);else if(!1!==(i=o.getContentType())){const[e,...t]=i?i.split(";").map((e=>e.trim())).filter(Boolean):[];o.setContentType([e||"multipart/form-data",...t].join("; "))}let u=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+n))}const d=hO(e.baseURL,e.url);function h(){if(!u)return;const r=iO.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new jx("Request failed with status code "+n.status,[jx.ERR_BAD_REQUEST,jx.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),s()}),(function(e){n(e),s()}),{data:l&&"text"!==l&&"json"!==l?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:r,config:e,request:u}),u=null}if(u.open(e.method.toUpperCase(),Nx(d,e.params,e.paramsSerializer),!0),u.timeout=e.timeout,"onloadend"in u?u.onloadend=h:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(h)},u.onabort=function(){u&&(n(new jx("Request aborted",jx.ECONNABORTED,e,u)),u=null)},u.onerror=function(){n(new jx("Network Error",jx.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Gx;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new jx(t,r.clarifyTimeoutError?jx.ETIMEDOUT:jx.ECONNABORTED,e,u)),u=null},$x.hasStandardBrowserEnv&&(c&&Mx.isFunction(c)&&(c=c(e)),c||!1!==c&&vO(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&dO.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===r&&o.setContentType(null),"setRequestHeader"in u&&Mx.forEach(o.toJSON(),(function(e,t){u.setRequestHeader(t,e)})),Mx.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),l&&"json"!==l&&(u.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&u.addEventListener("progress",gO(e.onDownloadProgress,!0)),"function"===typeof e.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",gO(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{u&&(n(!t||t.type?new uO(null,e,u):t),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const v=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(d);v&&-1===$x.protocols.indexOf(v)?n(new jx("Unsupported protocol "+v+":",jx.ERR_BAD_REQUEST,e)):u.send(r||null)}))},pO={http:null,xhr:fO};Mx.forEach(pO,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(n){}Object.defineProperty(e,"adapterName",{value:t})}}));const wO=e=>`- ${e}`,bO=e=>Mx.isFunction(e)||null===e||!1===e,yO=e=>{e=Mx.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let a=0;a<t;a++){let t;if(n=e[a],r=n,!bO(n)&&(r=pO[(t=String(n)).toLowerCase()],void 0===r))throw new jx(`Unknown adapter '${t}'`);if(r)break;o[t||"#"+a]=r}if(!r){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let n=t?e.length>1?"since :\n"+e.map(wO).join("\n"):" "+wO(e[0]):"as no adapter specified";throw new jx("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return r};function xO(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new uO(null,e)}function OO(e){xO(e),e.headers=iO.from(e.headers),e.data=lO.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return yO(e.adapter||Xx.adapter)(e).then((function(t){return xO(e),t.data=lO.call(e,e.transformResponse,t),t.headers=iO.from(t.headers),t}),(function(t){return cO(t)||(xO(e),t&&t.response&&(t.response.data=lO.call(e,e.transformResponse,t.response),t.response.headers=iO.from(t.response.headers))),Promise.reject(t)}))}const BO=e=>e instanceof iO?e.toJSON():e;function CO(e,t){t=t||{};const n={};function r(e,t,n){return Mx.isPlainObject(e)&&Mx.isPlainObject(t)?Mx.merge.call({caseless:n},e,t):Mx.isPlainObject(t)?Mx.merge({},t):Mx.isArray(t)?t.slice():t}function o(e,t,n){return Mx.isUndefined(t)?Mx.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!Mx.isUndefined(t))return r(void 0,t)}function i(e,t){return Mx.isUndefined(t)?Mx.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function l(n,o,a){return a in t?r(n,o):a in e?r(void 0,n):void 0}const c={url:a,method:a,data:a,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:l,headers:(e,t)=>o(BO(e),BO(t),!0)};return Mx.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=c[r]||o,i=a(e[r],t[r],r);Mx.isUndefined(i)&&a!==l||(n[r]=i)})),n}const _O="1.6.2",zO={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{zO[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const MO={};zO.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.2] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,a)=>{if(!1===e)throw new jx(r(o," has been removed"+(t?" in "+t:"")),jx.ERR_DEPRECATED);return t&&!MO[o]&&(MO[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,a)}};const EO={assertOptions:function(e,t,n){if("object"!==typeof e)throw new jx("options must be an object",jx.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const a=r[o],i=t[a];if(i){const t=e[a],n=void 0===t||i(t,a,e);if(!0!==n)throw new jx("option "+a+" must be "+n,jx.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new jx("Unknown option "+a,jx.ERR_BAD_OPTION)}},validators:zO},SO=EO.validators;class kO{constructor(e){this.defaults=e,this.interceptors={request:new Ux,response:new Ux}}request(e,t){"string"===typeof e?(t=t||{}).url=e:t=e||{},t=CO(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&EO.assertOptions(n,{silentJSONParsing:SO.transitional(SO.boolean),forcedJSONParsing:SO.transitional(SO.boolean),clarifyTimeoutError:SO.transitional(SO.boolean)},!1),null!=r&&(Mx.isFunction(r)?t.paramsSerializer={serialize:r}:EO.assertOptions(r,{encode:SO.function,serialize:SO.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=o&&Mx.merge(o.common,o[t.method]);o&&Mx.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=iO.concat(a,o);const i=[];let l=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(l=l&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let s;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let u,d=0;if(!l){const e=[OO.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),u=e.length,s=Promise.resolve(t);d<u;)s=s.then(e[d++],e[d++]);return s}u=i.length;let h=t;for(d=0;d<u;){const e=i[d++],t=i[d++];try{h=e(h)}catch(io){t.call(this,io);break}}try{s=OO.call(this,h)}catch(io){return Promise.reject(io)}for(d=0,u=c.length;d<u;)s=s.then(c[d++],c[d++]);return s}getUri(e){return Nx(hO((e=CO(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}Mx.forEach(["delete","get","head","options"],(function(e){kO.prototype[e]=function(t,n){return this.request(CO(n||{},{method:e,url:t,data:(n||{}).data}))}})),Mx.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(CO(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}kO.prototype[e]=t(),kO.prototype[e+"Form"]=t(!0)}));const jO=kO;class HO{constructor(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new uO(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new HO((function(t){e=t})),cancel:e}}}const PO=HO;const VO={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(VO).forEach((([e,t])=>{VO[t]=e}));const AO=VO;const LO=function e(t){const n=new jO(t),r=Ky(jO.prototype.request,n);return Mx.extend(r,jO.prototype,n,{allOwnKeys:!0}),Mx.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(CO(t,n))},r}(Xx);LO.Axios=jO,LO.CanceledError=uO,LO.CancelToken=PO,LO.isCancel=cO,LO.VERSION=_O,LO.toFormData=Lx,LO.AxiosError=jx,LO.Cancel=LO.CanceledError,LO.all=function(e){return Promise.all(e)},LO.spread=function(e){return function(t){return e.apply(null,t)}},LO.isAxiosError=function(e){return Mx.isObject(e)&&!0===e.isAxiosError},LO.mergeConfig=CO,LO.AxiosHeaders=iO,LO.formToJSON=e=>Yx(Mx.isHTMLForm(e)?new FormData(e):e),LO.getAdapter=yO,LO.HttpStatusCode=AO,LO.default=LO;const DO=LO;function FO(){"use strict";FO=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof p?t:p,i=Object.create(a.prototype),l=new k(r||[]);return o(i,"_invoke",{value:z(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var h="suspendedStart",v="suspendedYield",m="executing",g="completed",f={};function p(){}function w(){}function b(){}var y={};s(y,i,(function(){return this}));var x=Object.getPrototypeOf,O=x&&x(x(j([])));O&&O!==n&&r.call(O,i)&&(y=O);var B=b.prototype=p.prototype=Object.create(y);function C(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function n(o,a,i,l){var c=d(e[o],e,a);if("throw"!==c.type){var s=c.arg,u=s.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(function(e){return n("throw",e,i,l)}))}l(c.arg)}var a;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return a=a?a.then(o,o):o()}})}function z(t,n,r){var o=h;return function(a,i){if(o===m)throw new Error("Generator is already running");if(o===g){if("throw"===a)throw i;return{value:e,done:!0}}for(r.method=a,r.arg=i;;){var l=r.delegate;if(l){var c=M(l,r);if(c){if(c===f)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===h)throw o=g,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=m;var s=d(t,n,r);if("normal"===s.type){if(o=r.done?g:v,s.arg===f)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(o=g,r.method="throw",r.arg=s.arg)}}}function M(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),f;var a=d(o,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,f;var i=a.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,f):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function j(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return w.prototype=b,o(B,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:w,configurable:!0}),w.displayName=s(b,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,s(e,c,"GeneratorFunction")),e.prototype=Object.create(B),e},t.awrap=function(e){return{__await:e}},C(_.prototype),s(_.prototype,l,(function(){return this})),t.AsyncIterator=_,t.async=function(e,n,r,o,a){void 0===a&&(a=Promise);var i=new _(u(e,n,r,o),a);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},C(B),s(B,c,"Generator"),s(B,i,(function(){return this})),s(B,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=j,k.prototype={constructor:k,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(S),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return l.type="throw",l.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],l=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;S(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:j(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),f}},t}function IO(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(io){return void n(io)}l.done?t(c):Promise.resolve(c).then(r,o)}var TO={headers:{"Content-Type":"application/json"},transformResponse:function(e){try{var t=JSON.parse(e).topics;return(void 0===t?[]:t).map((function(e){return{id:{raw:e.id},title:{raw:e.title},description:{raw:e.fancy_title},url:{raw:"https://community.netdata.cloud/t/"+e.slug}}}))}catch(io){return io}}},RO=function(){var e,t=(e=FO().mark((function e(t,n){var r;return FO().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,DO("https://community.netdata.cloud/search.json?q="+t,TO);case 3:if((r=e.sent).data){e.next=6;break}return e.abrupt("return");case 6:n&&n(r),e.next=12;break;case 9:return e.prev=9,e.t0=e.catch(0),e.abrupt("return");case 12:case"end":return e.stop()}}),e,null,[[0,9]])})),function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){IO(a,r,o,i,l,"next",e)}function l(e){IO(a,r,o,i,l,"throw",e)}i(void 0)}))});return function(e,n){return t.apply(this,arguments)}}();const NO=RO;var UO=["children"];function GO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function WO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?GO(Object(n),!0).forEach((function(t){qO(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):GO(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function qO(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const KO=function(e){var t=e.children,n=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,UO),r=(0,i.useState)([]),o=r[0],a=r[1],l=n.searchTerm,c=n.results;return(0,i.useEffect)((function(){if(l){var e=!0;return NO(l,(function(t){var n=t.data;return e&&a(n)})),function(){return e=!1}}}),[l]),t(WO(WO({},n),{},{results:WO(WO({},c),{},{discourse:o})}))};var JO=/^https:\/\/((learn.netdata).cloud|www.(netdata.cloud)|github.com\/netdata\/(netdata-cloud)|github.com\/netdata\/(netdata))/,QO=function(e){return e.reduce((function(e,t){var n=t.url.raw.match(JO).find((function(e,t){return t>1&&e}));return e[n]=e[n]||[],e[n].push(t),e}),{})};function $O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function YO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$O(Object(n),!0).forEach((function(t){ZO(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ZO(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var XO={apiConnector:new Gy.A({engineKey:"BZL_aEiLAebVKkcm3eFr",documentType:"page"}),initialState:{resultsPerPage:100},searchQuery:{result_fields:{title:{snippet:{size:100,fallback:!0}},url:{raw:{}},description:{snippet:{size:100,fallback:!0}}}},alwaysSearchOnInitialLoad:!1},eB=function(e){var t=e.searchTerm,n=e.setSearchTerm,r=e.results,o=e.reset;return{searchTerm:t,setSearchTerm:n,results:YO(YO({},QO(r)),{},{discourse:[]}),reset:o}};const tB=function(e){var t=e.children;return i.createElement(Wy.A,{config:XO},i.createElement(qy.A,{mapContextToProps:eB},(function(e){return i.createElement(KO,e,t)})))};const nB=function(e){var t=e.value,n=e.setSearchTerm,r=e.setSearchView,o=(0,i.useState)(t),a=o[0],l=o[1];Ob((function(){n(a),a.length<3||r()}),300,[a]);var c=(0,i.useCallback)((function(e){return l(e.target.value)}),[]);return i.createElement(Xp,{value:a,onChange:c,placeholder:"Search Netdata\u2019s docs & community",autoFocus:!0,iconLeft:i.createElement(Rm,{name:"search_s",size:"small",color:a?"text":"border"})})};function rB(){return rB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rB.apply(this,arguments)}var oB=l.default.a.withConfig({displayName:"results__Link",componentId:"sc-3ulv4x-0"})(["text-decoration:none;&:hover,&:visited{color:",";}"],D("primary")),aB=function(e){var t=e.title,n=e.description,r=e.url;return i.createElement(qg,{gap:2,column:!0},i.createElement(Jf,{strong:!0,dangerouslySetInnerHTML:{__html:(null==t?void 0:t.snippet)||(null==t?void 0:t.raw)||"Untitled"}}),!!n&&i.createElement(Jf,{dangerouslySetInnerHTML:{__html:((null==n?void 0:n.snippet)||(null==n?void 0:n.raw)||"No description")+"&hellip;"}}),i.createElement(qg,{alignSelf:"end"},i.createElement(Jf,{as:oB,color:"primary",href:r,target:"_blank"},"Read \u2192")))},iB=function(e){return i.createElement(qg,rB({overflow:{vertical:"auto"},padding:[6,4],gap:6,column:!0},e))},lB=(0,l.default)(Kw).withConfig({displayName:"results__StyledTabs",componentId:"sc-3ulv4x-1"})(["width:100%;.tabs > *{min-width:160px;max-width:100%;}"]),cB=["learn","community"],sB={learn:"learn.netdata",community:"discourse","github-cloud":"netdata-cloud","github-agent":"netdata"},uB={learn:"Documentation",community:"Community","github-cloud":"Github / Cloud","github-agent":"Github / Agent"};const dB=function(e){var t=e.results;return i.createElement(qg,{overflow:{vertical:"auto"},"data-testid":"searchResults",flex:!0,width:"1000px",height:"60vh"},i.createElement(lB,null,cB.map((function(e){var n=t[sB[e]],r=null==n?void 0:n.length;return i.createElement(Uw,{key:e,label:uB[e]+(r?" ("+r+")":"")},i.createElement(iB,null,r?n.map((function(e){var t=e.id,n=e.url,r=e.title,o=e.description;return i.createElement(aB,{key:t.raw,url:n.raw,title:r,description:o})})):i.createElement(qg,{padding:[4]},i.createElement(Jf,{strong:!0},"No results"))))}))))};var hB=(0,l.default)(qg).attrs({padding:[6],background:"dropdown",gap:6,column:!0,round:!0,overflow:{vertical:"auto"}}).withConfig({displayName:"documentation__Container",componentId:"sc-13yq5u1-0"})(["box-shadow:0px 4px 4px rgba(0,0,0,0.25);"]),vB=function(e){var t=e.children,n=e.onClose;return i.createElement(qg,{width:"100%",alignItems:"center",justifyContent:"between",padding:[0,0,4],border:{side:"bottom",color:"disabled"}},i.createElement(qg,{gap:2,alignItems:"center"},t),i.createElement(Qg,{icon:"x",neutral:!0,small:!0,onClick:n,flavour:"borderless","data-testid":"documentation-help-close"}))},mB="general",gB="dashboard",fB="search",pB={general:"Need help?",dashboard:"Need help?"};const wB=function(e){var t=e.app,n=void 0===t?"cloud":t,r=e.onCloseClick,o=e.onVisitDocumentClick,a=e.onOpenIssueClick,l=e.onOpenBugClick,c=e.onContributeClick,s=e.onSupportClick,u=e.onGoToDemoClick,d=e.children,h=e.demoUrl,v=_f(),m=v[0],g=v[1],f=(0,i.useState)(mB),p=f[0],w=f[1],b=p===mB,y=(0,i.useCallback)((function(){return w(gB)}),[]),x=(0,i.useCallback)((function(){return w(mB)}),[]),O=(0,i.useCallback)((function(){return w(fB)}),[]),B=(0,i.useCallback)((function(){g(),r&&r()}),[]);return i.createElement(i.Fragment,null,d(g,m),m&&i.createElement(fy,{position:"bottom-left",backdrop:!0,margin:[5,17],onClickOutside:g,onEsc:g},i.createElement(tB,null,(function(e){var t=e.searchTerm,r=e.setSearchTerm,d=e.results,v=e.reset;return i.createElement(i.Fragment,null,i.createElement(hB,{width:{max:b?"325px":p===gB?"600px":"100%"},"data-testid":"documentation-layer"},i.createElement(vB,{onClose:B},b&&i.createElement(Rm,{color:"text",name:"questionFilled",width:"18px",height:"18px"}),!b&&i.createElement(Qg,{icon:"arrow_left",neutral:!0,small:!0,onClick:function(){x(),v()},flavour:"borderless","data-testid":"dashboard-back"}),i.createElement(Nf,{margin:[0]},pB[p]||pB.general)),p!==gB&&i.createElement(nB,{value:t,setSearchTerm:r,setSearchView:O}),b&&i.createElement(qg,{gap:6,overflow:{vertical:"auto"},column:!0,padding:[1]},i.createElement(Vy,{app:n,onDashboardClick:y,onVisitDocumentClick:o,onOpenIssueClick:a,onOpenBugClick:l,onContributeClick:c,onSupportClick:s,onGoToDemoClick:u,demoUrl:h})),p===gB&&i.createElement(Uy,null),p===fB&&i.createElement(dB,{results:d})))}))))};const bB=(0,l.default)(qg).attrs({overflow:{vertical:"auto"},padding:[0,4,0,0]}).withConfig({displayName:"container__Container",componentId:"sc-x7a9ga-0"})(["",""],fw);const yB=function(e){var t=e.onClose;return i.createElement(qg,{border:{side:"bottom",color:"selected"},justifyContent:"between",alignItems:"center",padding:[0,0,4,0]},i.createElement(qg,{gap:2},i.createElement(Rm,{color:"text",name:"insights"}),i.createElement(Qf,{strong:!0},"Netdata News")),i.createElement(Qg,{flavour:"borderless",neutral:!0,icon:"x",title:"close news",onClick:t}))};const xB=(0,l.default)(qg).attrs({as:"img"}).withConfig({displayName:"image__Image",componentId:"sc-1aijjz1-0"})(["object-fit:cover;"]);const OB=(0,l.default)(qg).attrs({as:"a"}).withConfig({displayName:"anchor__Anchor",componentId:"sc-1r3u0zv-0"})(["text-decoration:none;& :hover{text-decoration:none;}"]);const BB=function(e){var t=e.item,n=t.last_publication_date,r=t.data,o=r.title,a=r.description,l=r.url,c=r.image,s=r.label,u=c&&c.url,d=new Date(n);return i.createElement(qg,{column:!0,gap:2},i.createElement(qg,{gap:4},u&&i.createElement(xB,{src:u,width:"160px"}),i.createElement(qg,{column:!0,gap:2},i.createElement(Jf,{strong:!0},o),i.createElement(Jf,null,a))),i.createElement(qg,{justifyContent:"between",alignItems:"center"},i.createElement(Kf,null,d.toLocaleDateString()),i.createElement(OB,{href:l,target:"_blank",rel:"noopener noreferrer",gap:1,alignItems:"center"},i.createElement(Jf,{color:"success",strong:!0},s),i.createElement(Rm,{color:"success",rotate:2,name:"arrow_left"}))))};var CB=n(64849),_B=n(20894),zB=function(){return CB.UU("https://netdata-news.cdn.prismic.io/api/v2")};var MB=[];const EB=function(e){var t=e.app,n=void 0===t?"cloud":t,r=e.onCloseClick,o=e.children,a=localStorage.getItem("news_last_seen"),l=(0,i.useState)(MB),c=l[0],s=l[1],u=(0,i.useState)(),d=u[0],h=u[1],v=_f(),m=v[0],g=v[1],f=function(){var e=(0,i.useState)(zB)[0];return function(t,n,r){return e.get({filters:[_B.p.any("document.tags",Array.isArray(t)?t:[t])],pageSize:100,orderings:[{field:"document.last_publication_date",direction:"desc"}]}).then(n).catch(r)}}();(0,i.useEffect)((function(){f(n,(function(e){var t=e.results;return s(t)}),(function(){return h(!0)}))}),[]);var p=(0,i.useMemo)((function(){if(!c.length)return!0;var e=c[0].last_publication_date;return new Date(a)>=new Date(e)}),[a,c]),w=(0,i.useCallback)((function(){g(),localStorage.setItem("news_last_seen",new Date),r&&r()}),[r]);return i.createElement(i.Fragment,null,o({toggle:g,isOpen:m,upToDate:p}),m&&i.createElement(fy,{backdrop:!0,onClickOutside:w,onEsc:w},i.createElement(qg,{background:"dropdown",round:!0,padding:[6],width:"640px",height:{max:"640px"},gap:4,column:!0},i.createElement(yB,{onClose:w}),i.createElement(bB,{column:!0,gap:6},d&&i.createElement(Kf,{textAlign:"center"},"Something went wrong \ud83d\ude14"),!d&&!c.length&&i.createElement(Kf,{textAlign:"center"},"There are no latest news"),!d&&c.length>0&&c.map((function(e){return i.createElement(BB,{key:e.id,item:e})}))))))};var SB=["children"];function kB(){return kB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},kB.apply(this,arguments)}const jB=function(e){var t=e.children,n=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,SB),r=(0,i.useState)(!1),o=r[0],a=r[1],l=(0,i.useRef)();return i.createElement(qg,{column:!0,width:"100%",position:"relative"},i.createElement(qg,{height:"1px",background:"border",width:"100%",position:"absolute",top:0,zIndex:4}),i.createElement(qg,kB({justifyContent:"start",alignSelf:"start",alignItems:"end",width:"100%",height:"100%",overflow:"auto",background:"topBarBg",ref:l,zIndex:1},n),i.Children.map(t,(function(e){return i.cloneElement(e,{collapsed:o,onResize:a,parentRef:l})}))),i.createElement(qg,{height:"1px",background:"border",width:"100%",position:"absolute",bottom:0,zIndex:0}))};const HB=function(){var e=(0,i.useContext)(l.ThemeContext);return function(t){return D(t)({theme:e})}};function PB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function VB(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?PB(Object(n),!0).forEach((function(t){AB(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):PB(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function AB(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var LB=function(e){var t=e.borderSideColor;return VB({borderRight:"1px solid "+t,borderTop:"2px solid "+e.borderTopColor},e.showBorderLeft?{borderLeft:"1px solid "+t}:{})};const DB=function(e){var t=e.active,n=void 0!==t&&t,r=e.showBorderLeft,o=void 0!==r&&r,a=e.isDragOverlay,l=HB(),c=l("border"),s=n?l("primary"):"transparent";return{rootStyles:(0,i.useMemo)((function(){return{cursor:"pointer",gap:1,alignItems:"center",justifyContent:"start",position:"relative",padding:[1,2],background:n?"mainBackground":"topBarBg",height:8,sx:VB(VB({},LB({borderSideColor:c,borderTopColor:s,showBorderLeft:o})),a&&{boxShadow:"0 2px 6px rgba(0, 0, 0, 0.15)"})}}),[s,c,n])}};var FB=["active","onActivate","index","onMouseOver","onMouseOut","onRemove","fixed","icon","children","showBorderLeft","isDragOverlay","draggable","handleProps","listeners","attributes","id","style","dragging","sorting","collapsed","rootProps"];function IB(){return IB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},IB.apply(this,arguments)}var TB=(0,i.forwardRef)((function(e,t){var n=e.active,r=e.onActivate,o=e.index,a=e.onMouseOver,l=e.onMouseOut,c=e.onRemove,s=e.fixed,u=e.icon,d=e.children,h=e.showBorderLeft,v=e.isDragOverlay,m=e.draggable,g=e.handleProps,f=e.listeners,p=e.attributes,w=e.id,b=e.style,y=e.dragging,x=e.sorting,O=e.collapsed,B=e.rootProps,C=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,FB),_=(0,i.useState)(),z=_[0],M=_[1],E=DB({active:n,showBorderLeft:h,isDragOverlay:v}).rootStyles,S=(0,i.useCallback)((function(e){e&&e.preventDefault(),r&&r()}),[r]),k=(0,i.useCallback)((function(e){M(!0),a&&a(e)}),[a]),j=(0,i.useCallback)((function(e){M(!1),l&&l(e)}),[l]),H=(0,i.useCallback)((function(e){e.preventDefault(),e.stopPropagation(),c&&c(o,n)}),[c,o,n]),P=(0,i.useCallback)((function(e){return i.cloneElement(e,{color:n?"text":"textLite"})}),[n]),V=z&&!s;return i.createElement(qg,IB({},E,{ref:t},!v&&{onClick:S,onMouseOver:k,onMouseLeave:j},{tabIndex:"0","data-index":o,"data-id":w,style:b},p,B),i.createElement(qg,null,V&&!v&&i.createElement(Rm,{name:"x",size:"small",color:n?"text":"textLite",onClick:H}),!V&&u&&P(u)),!O&&i.createElement(qg,C,d),(m||v)&&i.createElement(Rm,IB({name:"rearrange",width:"10px",height:"10px",color:z?n?"text":"textLite":"textNoFocus"},g,f,{cursor:x||y?"grabbing":"grab"})))}));TB.displayName="Tab";const RB=TB,NB=function(){return i.createElement(qg,{padding:[1,2],height:"100%"},i.createElement(qg,{width:"1px",background:"selected",height:"100%"}))};var UB=n(43375),GB=n(43627),WB=n(73700);const qB=function(e,t,n,r){var o=(0,i.useState)(!1),a=o[0],l=o[1],c=(0,i.useState)(!1),s=c[0],u=c[1];return[a,s,(0,i.useCallback)((function(){if(e.current&&t.current&&r){var n=e.current.scrollLeft,o=e.current.getBoundingClientRect().right,a=t.current.getBoundingClientRect().right;u(a>o+20),l(n>20)}}),[r,n])]};function KB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function JB(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?KB(Object(n),!0).forEach((function(t){QB(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KB(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function QB(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $B={width:-1,tabRight:-1};const YB=function(e,t,n,r,o){var a=(0,i.useRef)($B);return(0,i.useCallback)((function(){if(t.current&&n.current&&e&&e.current){var o=document.body.clientWidth,i=t.current.getBoundingClientRect().left,l=e.current.getBoundingClientRect(),c=l.right,s=l.left;a.current.expandedStaticWidth||(a.current.expandedStaticWidth=i-s);var u=n.current.getBoundingClientRect(),d=u.right,h=u.width;if(function(e,t){return e.width===$B.width||e.width===t.width&&e.tabRight!==t.tabRight||e.width!==t.width}(a.current,{width:o,tabRight:d})){var v=o-c;if(!(d<o-v&&s+a.current.expandedStaticWidth+(d-i)+v>o))return a.current=JB(JB({},a.current),{},{width:o,tabRight:d,containerRight:c}),d>=c&&!a.current.collapse?(a.current.collapse=!0,r(!0)):d+h<c&&(a.current.collapse||"undefined"===typeof a.current.collapse)?(a.current.collapse=!1,r(!1)):void 0}}}),o)};var ZB=n(74979);function XB(){return XB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},XB.apply(this,arguments)}const eC=function(e){var t=e.animateLayoutChanges,n=e.draggable,r=e.id,o=e.index,a=e.onRemove,l=e.itemProps,c=e.Item,s=e.lastTabRef,u=(0,GB.gl)({id:r,animateLayoutChanges:t,disabled:!n,data:{sortable:!0,navigationTab:!0}}),d=u.attributes,h=u.isDragging,v=u.isSorting,m=u.listeners,g=u.setNodeRef,f=u.setActivatorNodeRef,p=u.transform,w=u.transition,b={transform:ZB.Ks.Transform.toString(p),transition:w};return i.createElement(c,XB({},l,{ref:function(e){g(e),s&&(s.current=e)},dragging:h,sorting:v,draggable:n,handleProps:n?{ref:f}:void 0,index:o,style:b,onRemove:a,id:r,attributes:d,listeners:m}))};const tC=(0,l.default)(qg).attrs({width:"100%",height:"100%",flex:!0,basis:"0%",position:"relative",overflow:{vertical:"hidden",horizontal:"auto"},alignItems:"center"}).withConfig({displayName:"container__Container",componentId:"sc-1epg1he-0"})(["-ms-overflow-style:none;overflow:-moz-scrollbars-none;&::-webkit-scrollbar{height:0px;}::-webkit-scrollbar-thumb{background:",";}"],D("selected"));function nC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rC(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var oC=(0,l.default)(qg).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nC(Object(n),!0).forEach((function(t){rC(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nC(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({height:"100%",alignItems:"center",padding:[2],background:"topBarBg",position:"absolute",cursor:"pointer",sx:e.right?{right:0}:{left:0},zIndex:3},e)})).withConfig({displayName:"arrow__IconWrapper",componentId:"sc-8pr3nr-0"})([""]);const aC=function(e){var t=e.onClick,n=e.name,r=e.right;return i.createElement(oC,{onClick:t,right:r},i.createElement(Rm,{name:n,color:"text",width:8,height:8}))};var iC=["activationConstraint","collisionDetection","measuring","modifiers"];function lC(){return lC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},lC.apply(this,arguments)}function cC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?cC(Object(n),!0).forEach((function(t){uC(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cC(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function uC(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var dC={sideEffects:(0,UB.WB)({styles:{active:{opacity:"0.5"}}})},hC=(0,i.forwardRef)((function(e,t){var n=e.animateLayoutChanges,r=void 0===n?function(e){return(0,GB.uU)(sC(sC({},e),{},{wasDragging:!0}))}:n,o=e.adjustScale,a=void 0!==o&&o,l=e.Container,c=void 0===l?tC:l,s=e.dropAnimation,u=void 0===s?dC:s,d=e.strategy,h=void 0===d?GB.m$:d,v=e.onDragEnd,m=e.onTabClose,g=e.onResize,f=e.items,p=e.Item,w=e.parentRef,b=e.collapsed,y=(0,i.useState)(null),x=y[0],O=y[1],B=function(e){return f.findIndex((function(t){return t.id===e}))},C=null!==x?B(x):-1,_=(0,i.useRef)();!function(e){var t=(0,i.useCallback)((function(t){var n=e.current;n.scrollLeft=n.scrollLeft+.1*t.deltaY}));(0,i.useEffect)((function(){if(e.current){var n=e.current;return n.addEventListener("wheel",t),function(){return n.remove("wheel",t)}}}),[])}(_);var z=(0,i.useRef)(),M=YB(w,_,z,g,[f.length]),E=qB(_,z,f.length,b),S=E[0],k=E[1],j=E[2];(0,i.useEffect)((function(){if(_.current){M();var e=_.current,t=(0,WB.s)(300,(function(){M(),j()}));return t(),e.addEventListener("scroll",j),window.addEventListener("resize",t),function(){e.removeEventListener("scroll",j),window.removeEventListener("resize",t)}}}),[f.length,b]);return(0,UB.E5)({onDragStart:function(e){var t=e.active;t&&t.data.current.navigationTab&&O(t.id)},onDragEnd:function(e){var t=e.active,n=e.over;if(t&&t.data.current.navigationTab&&(O(null),n&&n.data.current.navigationTab)){var r=B(n.id);C!==r&&v(C,r)}},onDragCancel:function(){return O(null)}}),i.createElement(i.Fragment,null,i.createElement(qg,{overflow:"hidden",position:"relative"},S&&i.createElement(aC,{onClick:function(e){e.preventDefault(),_.current.scrollTo({left:_.current.scrollLeft-100,behavior:"smooth"})},name:"navLeft"}),i.createElement(c,{ref:jb(_,t)},i.createElement(GB.gB,{items:f,strategy:h},f.map((function(e,t){return i.createElement(eC,lC({key:e.id+"-"+t,itemProps:e,id:e.id,draggable:!e.fixed,index:t,onRemove:m,animateLayoutChanges:r,Item:p},t===f.length-1&&{lastTabRef:z},{collapsed:b}))})))),k&&i.createElement(aC,{onClick:function(e){e.preventDefault(),_.current.scrollTo({left:_.current.scrollLeft+100,behavior:"smooth"})},name:"navRight",right:!0})),(0,Xg.createPortal)(i.createElement(UB.Hd,{adjustScale:a,dropAnimation:u},null!==x?i.createElement(p,lC({},f[C],{backgroundOpacity:.8,isDragOverlay:!0,grabbing:!0,sorting:!0})):null),document.body))}));const vC=function(e){var t=e.activationConstraint,n=e.collisionDetection,r=void 0===n?UB.fp:n,o=e.measuring,a=void 0===o?{droppable:{strategy:UB.Pf.Always}}:o,l=e.modifiers,c=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,iC),s=(0,UB.FR)((0,UB.MS)(UB.cA,{activationConstraint:t}),(0,UB.MS)(UB.IG,{activationConstraint:t}));return i.createElement(UB.Mp,{sensors:s,collisionDetection:r,measuring:a,modifiers:l},i.createElement(hC,c))};var mC=new Map,gC={},fC={},pC=new Map,wC=function(e){var t=e.root,n=e.rootMargin,r=e.threshold;return function(e){if(mC.has(e))return mC.get(e);var t=jf();return mC.set(e,t),t}(t)+"|"+n+"|"+r},bC=function(e){e.forEach((function(e){var t=e.target,n=e.isIntersecting,r=pC.get(t);null==r||r(n)}))};const yC=function(e){var t=e.root,n=e.rootMargin,r=e.threshold,o=e.onVisibility,a=e.defaultVisible,l=void 0!==a&&a,c=(0,i.useRef)(),s=(0,i.useRef)(),u=(0,i.useState)(l),d=u[0],h=u[1],v=(0,i.useCallback)((function(e){if(c.current=e,null==s.current||s.current(),s.current=null,e){var a={root:t,rootMargin:n,threshold:r};s.current=function(e,t,n){var r=wC(n);r in gC||(gC[r]=new IntersectionObserver(bC,n),fC[r]=0);var o=gC[r];return o.observe(t),pC.set(t,e),fC[r]=fC[r]+1,function(){pC.delete(t),o.unobserve(t),fC[r]=fC[r]-1,fC[r]>0||(o.disconnect(),pC.delete(e),delete gC[r],delete fC[r])}}((function(e){o&&o(e),h(e)}),e,a)}}),[t,n,r,o]);return(0,i.useEffect)((function(){return function(){null==s.current||s.current(),s.current=null}}),[]),[v,c,d]};var xC=["height","width","fallback","root","rootMargin","threshold","onVisibility","children"];function OC(){return OC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},OC.apply(this,arguments)}var BC=(0,i.forwardRef)((function(e,t){var n=e.height,r=void 0===n?"100%":n,o=e.width,a=void 0===o?"100%":o,l=e.fallback,c=void 0===l?null:l,s=e.root,u=e.rootMargin,d=void 0===u?"0px":u,h=e.threshold,v=void 0===h?0:h,m=e.onVisibility,g=e.children,f=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,xC),p=yC({root:s,rootMargin:d,threshold:v,onVisibility:m}),w=p[0],b=p[1],y=p[2],x=function(e,t){void 0===t&&(t=!1);var n=(0,i.useRef)();return(0,i.useEffect)((function(){n.current=e}),[t?e:""]),n.current}(y),O=(0,i.useRef)(r);return y!==x&&!y&&b.current&&(O.current=b.current.clientHeight+"px"),i.createElement(qg,OC({ref:function(e){w(e),af(t,e)},width:a,height:y?r:{min:O.current}},f),function(e){return"function"===typeof e?e():e}(y?g:c))}));const CC=BC;var _C={background:{neutral:"nodeBadgeBackground",success:"success",clear:"success",warning:"warning",error:"error",critical:"error",stale:"stale",idleClear:"idleClear",idleError:"idleError",idleWarning:"idleWarning"},border:{neutral:"nodeBadgeBackground",success:"success",clear:"success",warning:"warning",error:"error",critical:"error",stale:"stale",idleClear:"idleClear",idleError:"idleError",idleWarning:"idleWarning"},hollow:{neutral:"neutralPillBorder",success:"successSemi",clear:"successSemi",warning:"warningSemi",error:"errorSemi",critical:"errorSemi",stale:"staleSemi"},color:{neutral:"neutralPillColor",success:"success",clear:"success",warning:"warning",error:"error",critical:"error",stale:"stale",idleClear:"idleClear",idleError:"idleError",idleWarning:"idleWarning"}},zC={alert:"alertIcon",disabledClear:"idleClear",disabledError:"errorSemi",disabledWarning:"idleWarning",clear:"success",error:"error",warning:"warning"},MC=function(e,t){return _C[e][t]},EC=["icon","color","hollow","flavour","size"];function SC(){return SC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},SC.apply(this,arguments)}var kC={default:"14px",large:"16px"};const jC=function(e){var t=e.icon,n=e.color,r=e.hollow,o=e.flavour,a=e.size,l=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,EC);return t?"string"!==typeof t?t:i.createElement(Rm,SC({color:n||(r?MC("color",o):"bright"),"data-testid":"pill-icon",height:kC[a]||kC.default,width:kC[a]||kC.default,name:t},l)):null};var HC=function(e,t){return e||function(e){return zC[e]}(t)};const PC=function(e){var t=e.background,n=e.flavour,r=void 0===n?"neutral":n,o=e.hollow,a=e.semi;return t||(o?a?MC("hollow",r):"transparent":MC("background",r))};var VC={default:[.5,2],large:[1,2.5]};const AC=function(e,t,n){return e||(n?[.25,.5]:VC[t]||VC.default)};var LC=["round","hollow","flavour","borderColor","onClick","padding","size","tiny","position","zIndex","justifyContent","alignItems","background","semi"];function DC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function FC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?DC(Object(n),!0).forEach((function(t){IC(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):DC(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function IC(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var TC=(0,l.default)(qg).attrs((function(e){var t=e.background,n=(e.height,e.onClick),r=e.round,o=void 0===r?999:r,a=e.size;return FC(FC({background:t},n&&{cursor:"pointer"}),{},{position:"relative",round:o,size:a})})).withConfig({displayName:"styled__MasterCardContainer",componentId:"sc-1pihee3-0"})(["*{cursor:",";}"],(function(e){return e.onClick?"pointer":"inherit"})),RC=(0,l.default)(qg).attrs((function(e){var t=e.round,n=void 0===t||t,r=e.hollow,o=e.flavour,a=e.borderColor,i=e.onClick,l=e.padding,c=e.size,s=e.tiny,u=e.position,d=e.zIndex,h=e.justifyContent,v=void 0===h?"center":h,m=e.alignItems,g=void 0===m?"center":m,f=e.background,p=e.semi,w=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,LC);return FC(FC({padding:AC(l,c,s),round:!1===n?1:!0===n?7.5:n,border:{side:"all",color:a||MC(p?"hollow":"border",o),size:"1px"}},i&&{cursor:"pointer"}),{},{justifyContent:v,alignItems:g,position:u,zIndex:d,background:PC({background:f,flavour:o,hollow:r,semi:p})},w)})).withConfig({displayName:"styled__PillContainer",componentId:"sc-1pihee3-1"})([""]),NC=["children","background","color","data-testid","flavour","hollow","icon","iconSize","normal","reverse","size","textSize","tiny","textProps","semi"];function UC(){return UC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},UC.apply(this,arguments)}var GC={default:Jf,large:Qf,normal:Jf,small:Kf,tiny:Wf},WC=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.background,o=e.color,a=e["data-testid"],l=void 0===a?"pill":a,c=e.flavour,s=e.hollow,u=e.icon,d=e.iconSize,h=e.normal,v=void 0===h||h,m=e.reverse,g=e.size,f=e.textSize,p=e.tiny,w=e.textProps,b=e.semi,y=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,NC),x={color:o,flavour:c,hollow:s,icon:u,size:d},O=p?GC.tiny:f?GC[f]:GC[g]||GC.default;return i.createElement(RC,UC({background:r,"data-testid":l,flavour:c,gap:1,hollow:s,ref:t,size:g,tiny:p,semi:b},y),!m&&i.createElement(jC,UC({"data-testid":l+"-icon-left"},x)),n&&i.createElement(qg,UC({as:O,color:o||(s?MC("color",c):"bright"),"data-testid":l+"-text",strong:!v,whiteSpace:"nowrap"},w),n),m&&i.createElement(jC,UC({"data-testid":l+"-icon-right"},x)))}));const qC=WC;var KC=["background","className","color","containerWidth","height","value","width"];function JC(){return JC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},JC.apply(this,arguments)}var QC=(0,i.forwardRef)((function(e,t){var n=e.background,r=void 0===n?"nodeBadgeBackground":n,o=e.className,a=e.color,l=void 0===a?"text":a,c=e.containerWidth,s=void 0===c?"100%":c,u=e.height,d=void 0===u?2:u,h=e.value,v=e.width,m=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,KC);return h=Array.isArray(h)?h:[h||{width:v,color:l}],i.createElement(qg,JC({background:r,border:{side:"all",color:r},className:o,"data-testid":"progressBar",height:d,ref:t,round:"2px",width:s},m),h.map((function(e,t){var n=e.color,r=e.width;return"0%"===r?null:i.createElement(Zg,{background:n,border:{side:"all",color:n},"data-testid":"progressBar-progress"+r,height:"100%",key:r+"-"+t,position:"relative",round:"2px",width:r})})))}));const $C=QC;var YC=["background","icon","text"];function ZC(){return ZC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ZC.apply(this,arguments)}var XC=(0,i.forwardRef)((function(e,t){var n=e.background,r=e.icon,o=e.text,a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,YC);return i.createElement(qC,ZC({background:n,borderColor:n,"data-testid":"mastercard-pill",icon:r,ref:t},a),!r&&(o||"-"))}));const e_=XC;var t_=["data-testid","height","normal","onClick","labelProps","pillLeft","pillRight","pillEnd","round","size"];function n_(){return n_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n_.apply(this,arguments)}function r_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o_(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r_(Object(n),!0).forEach((function(t){a_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r_(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a_(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i_=(0,i.forwardRef)((function(e,t){var n=e["data-testid"],r=void 0===n?"alert-mastercard":n,o=e.height,a=e.normal,l=e.onClick,c=e.labelProps,s=void 0===c?{}:c,u=e.pillLeft,d=void 0===u?{}:u,h=e.pillRight,v=void 0===h?{}:h,m=e.pillEnd,g=e.round,f=e.size,p=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t_),w={height:o,round:g,size:f},b=o_(o_({background:zC.alert,color:"text",icon:"alarm_bell",zIndex:4},s),w),y=o_(o_({normal:a},w),p),x=HC(d.background,d.flavour||"disabledError"),O=HC(v.background,v.flavour||"disabledWarning"),B=m&&HC(m.background,m.flavour||"disabledClear"),C=o_(o_(o_({background:x,position:"relative",margin:[0,0,0,"large"===f?-4.5:-3.5],padding:[0,2,0,"large"===f?5:4],zIndex:3},y),d),{},{round:s.hidden}),_=o_(o_({background:O,margin:[0,0,0,"large"===f?-4.5:-3.5],padding:[0,2,0,"large"===f?5:4],zIndex:2},y),v),z=m&&o_(o_({background:B,margin:[0,0,0,"large"===f?-4.5:-3.5],padding:[0,2,0,"large"===f?5:4],zIndex:1},y),m);return i.createElement(TC,n_({"data-testid":r,onClick:l,ref:t},w),!s.hidden&&i.createElement(e_,n_({"data-testid":r+"-icon-pill"},b)),i.createElement(e_,n_({"data-testid":r+"-left-pill"},C)),i.createElement(e_,n_({"data-testid":r+"-right-pill"},_)),z&&i.createElement(e_,n_({"data-testid":r+"-end-pill"},z)))}));const l_=i_;var c_=["children","data-testid","height","normal","onClick","pillLeft","pillRight","pillEnd","round","size","zIndex"];function s_(){return s_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s_.apply(this,arguments)}function u_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d_(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u_(Object(n),!0).forEach((function(t){h_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u_(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h_(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v_={default:"22px",large:"37px"},m_=(0,i.forwardRef)((function(e,t){var n=e.children,r=e["data-testid"],o=void 0===r?"mastercard":r,a=e.height,l=e.normal,c=e.onClick,s=e.pillLeft,u=void 0===s?{}:s,d=e.pillRight,h=void 0===d?{}:d,v=e.pillEnd,m=e.round,g=e.size,f=(e.zIndex,function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,c_)),p={height:a,round:m,size:g},w=d_(d_({normal:l},p),f),b=HC(h.background,h.flavour||"disabledWarning"),y=v&&HC(v.background,v.flavour||"disabledClear"),x=d_(d_(d_({background:HC(u.background,u.flavour||"disabledError"),position:"relative",width:{min:v_[f.size]||v_.default}},w),u),{},{zIndex:3}),O=d_(d_(d_({background:b,margin:[0,0,0,"large"===g?-4.5:-3.5],padding:[0,2,0,"large"===g?5:4],width:{min:v_[f.size]||v_.default}},w),h),{},{zIndex:2}),B=v&&d_(d_(d_({background:y,margin:[0,0,0,"large"===g?-4.5:-3.5],padding:[0,2,0,"large"===g?5:4],width:{min:v_[f.size]||v_.default}},w),v),{},{zIndex:1});return i.createElement(TC,s_({"data-testid":o,onClick:c,ref:t},p),n||i.createElement(i.Fragment,null,i.createElement(e_,s_({"data-testid":o+"-left-pill"},x)),i.createElement(e_,s_({"data-testid":o+"-right-pill"},O)),B&&i.createElement(e_,s_({"data-testid":o+"-end-pill"},B))))}));const g_=m_;var f_=["background","children","testId"],p_=["children","testId"],w_=["children","testId"],b_=["children","hasBorder","parentPadding","testId"],y_=["iconName","onClick","testId"],x_=["onClose","testId"],O_=["children"];function B_(){return B_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},B_.apply(this,arguments)}function C_(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var __=function(e){var t=e.background,n=void 0===t?"mainBackground":t,r=e.children,o=e.testId,a=C_(e,f_);return i.createElement(qg,B_({background:n,column:!0,"data-testid":o,round:!0},a),r)},z_=function(e){var t=e.children,n=e.testId,r=C_(e,p_);return i.createElement(qg,B_({background:"modalHeaderBackground","data-testid":n,padding:[2,4]},r),t)},M_=function(e){var t=e.children,n=e.testId,r=C_(e,w_);return i.createElement(qg,B_({"data-testid":n,padding:[2,4],column:!0},r),t)},E_=function(e){var t=e.children,n=e.hasBorder,r=void 0===n||n,o=e.parentPadding,a=e.testId,l=C_(e,b_);return i.createElement(qg,{column:!0,padding:o||[0,4],flex:1},i.createElement(qg,B_({"data-testid":a,flex:1,padding:[2,0],alignItems:"center",justifyContent:"end",border:r?{size:"1px",type:"solid",side:"top",color:"borderSecondary"}:{}},l),t))},S_=function(e){var t=e.iconName,n=e.onClick,r=e.testId,o=C_(e,y_);return i.createElement(gp,B_({"data-testid":r,icon:t,neutral:!0,onClick:n,cursor:"pointer",flavour:"borderless"},o))},k_=function(e){var t=e.onClose,n=e.testId,r=C_(e,x_);return i.createElement(S_,B_({iconName:"x",onClick:t,testId:n,position:"absolute",height:"14px",width:"14px",top:2,right:2},r))};const j_=function(e){var t=e.children,n=C_(e,O_);return i.createElement(fy,n,t)};var H_=(0,l.default)(E_).attrs({gap:3,hasBorder:!1,parentPadding:[0],padding:[0]}).withConfig({displayName:"styled__Actions",componentId:"sc-bc708g-0"})([""]),P_=(0,l.default)(Jf).attrs({as:__,background:"dropdown",gap:4,height:{max:"calc(100vh - 32px)"},padding:[4],width:{base:128,max:140,min:70}}).withConfig({displayName:"styled__Content",componentId:"sc-bc708g-1"})([""]),V_=(0,l.default)(M_).attrs({column:!1,padding:[0]}).withConfig({displayName:"styled__Body",componentId:"sc-bc708g-2"})(["display:block;strong{font-weight:bold;}"]),A_=(0,l.default)(j_).attrs({backdropProps:{backdropBlur:8}}).withConfig({displayName:"styled__Dialog",componentId:"sc-bc708g-3"})(["box-shadow:0 11px 15px -7px rgb(0 0 0 / 20%),0px 24px 38px 3px rgb(0 0 0 / 14%),0px 9px 46px 8px rgb(0 0 0 / 12%);"]),L_=(0,l.default)(z_).attrs({alignItems:"center",padding:[0],background:""}).withConfig({displayName:"styled__Header",componentId:"sc-bc708g-4"})([""]),D_=(0,l.default)(Tf).attrs({margin:[0]}).withConfig({displayName:"styled__Title",componentId:"sc-bc708g-5"})([""]),F_=(0,l.default)(Rm).attrs({color:"main",height:"24px",width:"24px"}).withConfig({displayName:"styled__TitleIcon",componentId:"sc-bc708g-6"})([""]),I_=["children"];var T_=function(e){var t=e.children,n=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,I_);return"object"===typeof t?t:i.createElement(Jf,n,t)};const R_=function(e){var t=e.confirmLabel,n=void 0===t?"Yes, remove":t,r=e.confirmWidth,o=void 0===r?"128px":r,a=e["data-ga"],l=void 0===a?"confirmation-dialog":a,c=e["data-testid"],s=void 0===c?"confirmationDialog":c,u=e.declineLabel,d=void 0===u?"Cancel":u,h=e.declineWidth,v=void 0===h?"128px":h,m=e.handleConfirm,g=e.handleDecline,f=e.hideIcon,p=e.iconName,w=void 0===p?"warning_triangle_hollow":p,b=e.isConfirmDisabled,y=e.isConfirmLoading,x=e.isDeclineDisabled,O=e.isConfirmPositive,B=e.message,C=e.title;return i.createElement(A_,{onEsc:g},i.createElement(P_,{"data-testid":s},i.createElement(L_,{"data-testid":s+"-headerContainer"},i.createElement(qg,{"data-testid":s+"-header",gap:2},!f&&i.createElement(F_,{"data-testid":s+"-headerIcon",name:w}),i.createElement(D_,{"data-testid":s+"-headerText"},C)),g&&i.createElement(k_,{"data-testid":s+"-headerClose",onClose:g})),i.createElement(V_,{"data-testid":s+"-body"},i.createElement(T_,{"data-testid":s+"-bodyMessage"},B)),i.createElement(H_,{"data-testid":s+"-actions"},g&&i.createElement(Qg,{"data-ga":l+"-::click-cancel::global-view","data-testid":s+"-cancelAction",flavour:"hollow",disabled:x,label:d,onClick:g,width:v}),i.createElement(Qg,{"data-ga":l+"-::click-confirm::global-view","data-testid":s+"-confirmAction",danger:!O&&!0,disabled:b,label:n,onClick:m,width:o,isLoading:y}))))};var N_=n(1530),U_=n(33888),G_=n(2404),W_=n.n(G_),q_=n(83488),K_=n.n(q_),J_={gt:function(e,t){return e>t},eq:function(e,t){return e===t},lt:function(e,t){return e<t},all:function(){return!0}},Q_=function(e,t,n){var r=e.getValue(t);return n.length<1||n.some((function(e){var t=e.value;return"all"===t||(null==t||null==t.toLowerCase?void 0:t.toLowerCase())===(null==r||null==r.toLowerCase?void 0:r.toLowerCase())}))},$_=function(e,t,n){var r=e.getValue(t),o=n.value;return"all"===o||(null==o||null==o.toLowerCase?void 0:o.toLowerCase())===(null==r||null==r.toLowerCase?void 0:r.toLowerCase())},Y_=function e(t,n,r){var o,a=null==(o=t.getValue(n))||null==o.toString?void 0:o.toString();if("string"!==typeof a)return!1;var i=r?r.toLowerCase():"",l=a.toLowerCase().includes(i);return!l&&t.subRows.length?t.subRows.some((function(t){return e(t,n,r)})):l};var Z_=["id","icon","background","handleAction","tooltipText","confirmation","confirmationTitle","confirmationMessage","handleDecline","confirmLabel","declineLabel","actionButtonDirection","testPrefix","dataGa","disabled","visible","currentRow","selectedRows","disabledTooltipText","iconColor","flavour","CustomUIAction","label","TooltipComponent"];function X_(){return X_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},X_.apply(this,arguments)}var ez=(0,i.forwardRef)((function(e,t){var n=e.id,r=e.icon,o=e.background,a=e.handleAction,l=e.tooltipText,c=e.confirmation,s=e.confirmationTitle,u=e.confirmationMessage,d=e.handleDecline,h=e.confirmLabel,v=e.declineLabel,m=e.actionButtonDirection,g=e.testPrefix,f=e.dataGa,p=e.disabled,w=e.visible,b=e.currentRow,y=e.selectedRows,x=e.disabledTooltipText,O=e.iconColor,B=e.flavour,C=void 0===B?"borderless":B,_=e.CustomUIAction,z=e.label,M=e.TooltipComponent,E=void 0===M?up:M,S=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Z_),k=(0,i.useState)(!1),j=k[0],H=k[1];if(!1===w)return null;var P=z?Qg:gp;return i.createElement(i.Fragment,null,j&&_&&i.createElement(_,{handleAction:a(),onClose:function(){return H(!1)},data:(null==b?void 0:b.original)||y}),j&&!_&&i.createElement(R_,{actionButtonDirection:m,declineLabel:v,confirmLabel:h,title:"function"===typeof s?s(null==b?void 0:b.original,y):s,message:"function"===typeof u?u(null==b?void 0:b.original,y):u,handleDecline:function(){H(!1),null==d||d()},handleConfirm:function(){H(!1),null==a||a()}}),i.createElement(E,{content:p?x:l},i.createElement(qg,{ref:t,alignItems:"center",justifyContent:"center",_hover:{background:p||z?null:"borderSecondary"},cursor:p?"auto":"pointer",key:n,round:!0,background:z?null:o},i.createElement(P,X_({iconSize:"small","data-testid":"netdata-table-action-"+n+g,"data-ga":f,disabled:p,onClick:function(e){e.stopPropagation(),c||_?H(!0):a()},icon:r,flavour:C,iconColor:O,label:z,padding:[.5]},S)))))}));const tz=ez;var nz=["id","handleAction","isDisabled","isVisible","dataGa","disabledTooltipText"];function rz(){return rz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rz.apply(this,arguments)}function oz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function az(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oz(Object(n),!0).forEach((function(t){iz(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oz(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function iz(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var lz={delete:{icon:"trashcan",confirmation:!0,tooltipText:"Delete",confirmationTitle:"Delete Row",confirmationMessage:"You are about to delete a row, are you sure?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse",disabledTooltipText:"Delete is disabled"},edit:{icon:"pencilOutline",confirmation:!1,tooltipText:"Edit"},replace:{icon:"refresh",confirmation:!0,tooltipText:"Replace",confirmationTitle:"Replace Row",confirmationMessage:"You are about to replace a row, are you sure you want to continue?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse"},info:{icon:"information",confirmation:!1,tooltipText:"Information"},toggleAlarm:{icon:"alarm_off",confirmation:!1,tooltipText:"Turn of Alarms"},userSettings:{icon:"user",confirmation:!1,tooltipText:"User Settings"},remove:{icon:"removeNode",confirmation:!0,actionButtonDirection:"reverse",confirmLabel:"Yes",declineLabel:"No"},goto:{icon:"nav_arrow_goto",confirmation:!1,tooltipText:"Go to"}};const cz=function(e,t){var n=void 0===t?{}:t,r=n.testPrefix,o=n.tableMeta,a=(0,i.useMemo)((function(){return Object.keys(e).reduce((function(t,n){var r=lz[n]||lz.delete,o=e[n];return t.push(az(az({id:n},r),o)),t}),[])}),[e]);return a.length<1?null:(0,i.useMemo)((function(){return{id:"actions",enableHiding:!1,enableResizing:!1,header:"Actions",cell:function(e){var t=e.row,n=e.table;return i.createElement(qg,{"data-testid":"action-cell",height:"100%",gap:2,justifyContent:"end"},a.map((function(e){var o=e.id,a=e.handleAction,l=e.isDisabled,c=e.isVisible,s=void 0===c||c,u=e.dataGa,d=e.disabledTooltipText,h=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,nz);return i.createElement(tz,rz({},h,{disabled:"function"===typeof l?l(t.original):l,visible:"function"===typeof s?s(t.original):s,dataGa:"function"===typeof u?u(t.original):u,disabledTooltipText:"function"===typeof d?d(t.original):d,key:o,id:o,handleAction:function(){return a(t.original,n)},testPrefix:r,currentRow:t}))})))},enableColumnFilter:!1,enableSorting:!1,tableMeta:o,size:35*a.length<60?60:35*a.length,meta:{cellStyles:{justifyContent:"end"}},notFlex:!0}}),[a])};function sz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uz(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sz(Object(n),!0).forEach((function(t){dz(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sz(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function dz(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const hz=function(e,t){var n=t.rowActions,r=t.enableSelection,o=t.enableResizing,a=t.enableSorting,l=t.testPrefix,c=t.tableMeta,s=cz(n,{testPrefix:l,tableMeta:c}),u=function(e,t){var n=t.testPrefix,r=t.tableMeta;return(0,i.useMemo)((function(){return e?{id:"checkbox",enableHiding:!1,enableResizing:!1,header:function(e){var t=e.table;return i.createElement(qg,{width:4},i.createElement(Tp,{"data-testid":"netdata-table-header-checkbox"+n,checked:t.getIsAllRowsSelected(),indeterminate:t.getIsSomeRowsSelected(),onChange:function(e){t.getToggleAllRowsSelectedHandler()({target:{checked:e}})}}))},cell:function(e){var t,r,o,a=e.row;return"hidden"!==(null==(t=a.original)?void 0:t.disabled)&&i.createElement(Tp,{"data-testid":"netdata-table-cell-checkbox"+n,checked:!(null!=(r=a.original)&&r.disabled)&&a.getIsSelected(),indeterminate:a.getIsSomeSelected(),onChange:function(e){a.getToggleSelectedHandler()({target:{checked:e}})},disabled:(null==(o=a.original)?void 0:o.disabled)||!1})},enableColumnFilter:!1,enableSorting:!1,size:32,maxSize:32,minSize:32,notFlex:!0,tableMeta:r}:null}),[e])}(r,{testPrefix:l,tableMeta:c});return(0,i.useMemo)((function(){if(!e||e.length<1)return[];var t=!1;return e=e.map((function(e,n){if(Array.isArray(e.columns))return t=!0,uz(uz({id:n},e),{},{columns:e.columns.map((function(e,t){if(!e.id)throw new Error("Please provide id at "+t);return uz(uz(uz({enableColumnFilter:!1,enableGlobalFilter:!0,enableSorting:a},o?{size:120,maxSize:5e3,minSize:60}:{}),{},{enableHiding:!0,enableResizing:o,footer:function(e){return e.column.id},tableMeta:c},e),{},{accessorKey:e.accessorKey||e.id})}))});if(!e.id)throw new Error("Please provide id at "+n);return uz(uz(uz({enableColumnFilter:!1,enableGlobalFilter:!0,enableSorting:a},o?{size:120,maxSize:5e3,minSize:60}:{}),{},{enableHiding:!0,enableResizing:o,footer:function(e){return e.column.id},tableMeta:c},e),{},{accessorKey:e.accessorKey||e.id})})),u&&e.unshift(t?{id:"selectionColumn",columns:u}:u),s&&e.push(t?{id:"rowActionsColumn",columns:s}:s),e}),[e,s,u])};var vz=n(39528);const mz=function(e,t){void 0===t&&(t=K_());var n=(0,i.useRef)();return(0,vz.i7)(e,(function(e){var r=t(e);return W_()(n.current,r)||(n.current=r),n.current}))};var gz=(0,vz.q6)([]),fz=function(e){return mz(gz,(function(t){return e(t.state)}))},pz={};const wz=function(e){var t=e.children,n=(0,i.useState)(pz),r=n[0],o=n[1],a=(0,i.useMemo)((function(){return{state:r,setState:o}}),[r]);return i.createElement(gz.Provider,{value:a},(0,i.useMemo)((function(){return t}),[t]))};var bz=function(e){var t=e.table,n=t.nextPage,r=t.previousPage,o=t.getCanPreviousPage,a=t.getCanNextPage,l=t.getPageCount,c=t.setPageIndex,s=t.resetPageIndex,u=t.getState().pagination.pageIndex;return i.createElement(qg,{alignItems:"center",justifyContent:"end",height:"45px",background:"mainBackground",border:{side:"top",color:"borderSecondary"}},i.createElement(gp,{title:"First","data-testid":"pagination-go-to-first",cursor:"pointer",onClick:s,icon:"chevron_left_start",iconSize:"small",tooltip:"test",disabled:!o()}),i.createElement(gp,{title:"Previous","data-testid":"pagination-go-to-previous",cursor:"pointer",onClick:r,icon:"chevron_left",iconSize:"small",tooltip:"Previous",disabled:!o()}),i.createElement(Jf,{"data-testid":"pagination-counter"},"Page ",0===l()?0:u," of ",l()),i.createElement(gp,{title:"Next","data-testid":"pagination-go-to-next",cursor:"pointer",onClick:n,icon:"chevron_right",iconSize:"small",disabled:!a()}),i.createElement(gp,{title:"Last","data-testid":"pagination-go-to-last",cursor:"pointer",onClick:function(){return c(l()-1)},icon:"chevron_right_end",iconSize:"small",disabled:!a()}))};const yz=(0,i.memo)(bz);var xz=n(53921),Oz=n(46005),Bz=n(12689),Cz=["innerProps"],_z=["minWidth","size"],zz=["isCreatable"];function Mz(){return Mz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mz.apply(this,arguments)}function Ez(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Sz(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ez(Object(n),!0).forEach((function(t){kz(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ez(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function kz(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jz(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var Hz,Pz,Vz=function(e,t){var n=e.selectProps,r=n["data-ga"],o=n["data-testid"];return{"data-ga":(0,i.useMemo)((function(){if(!r)return r;var e=r.split("::");return e[1]?(e[1]=e[1]+"-"+t,e.join("::")):r}),[r]),"data-testid":""+(o||"")+t}},Az=function(e,t){return function(n){var r=n.innerProps,o=jz(n,Cz),a=Vz(o,t),l=r?Sz(Sz({},o),{},{innerProps:Sz(Sz({},r),a)}):Sz(Sz({},o),a);return i.createElement(e,l)}},Lz=xz.c.Option,Dz=Sz(Sz({},xz.c),{},{ClearIndicator:Az(xz.c.ClearIndicator,"ClearIndicator"),Control:Az(xz.c.Control,"Control"),DropdownIndicator:Az(xz.c.DropdownIndicator,"DropdownIndicator"),DownChevron:Az(xz.c.DownChevron,"DownChevron"),CrossIcon:Az(xz.c.CrossIcon,"CrossIcon"),Group:Az(xz.c.Group,"Group"),GroupHeading:Az(xz.c.GroupHeading,"GroupHeading"),IndicatorsContainer:Az(xz.c.IndicatorsContainer,"IndicatorsContainer"),IndicatorSeparator:Az(xz.c.IndicatorSeparator,"IndicatorSeparator"),Input:(Hz=xz.c.Input,Pz="Input",function(e){var t=Vz(e,Pz);return i.createElement(Hz,Mz({},e,t))}),LoadingIndicator:Az(xz.c.LoadingIndicator,"LoadingIndicator"),Menu:Az(xz.c.Menu,"Menu"),MenuList:Az(xz.c.MenuList,"MenuList"),MenuPortal:Az(xz.c.MenuPortal,"MenuPortal"),LoadingMessage:Az(xz.c.LoadingMessage,"LoadingMessage"),MultiValue:Az(xz.c.MultiValue,"MultiValue"),MultiValueContainer:Az(xz.c.MultiValueContainer,"MultiValueContainer"),MultiValueLabel:Az(xz.c.MultiValueLabel,"MultiValueLabel"),MultiValueRemove:Az(xz.c.MultiValueRemove,"MultiValueRemove"),NoOptionsMessage:Az(xz.c.NoOptionsMessage,"NoOptionsMessage"),Option:Az((function(e){return e.data.icon?i.createElement(Lz,e,i.createElement(Rm,{name:e.data.icon,color:"textLite",margin:[0,1,0,0]}),i.createElement("span",null,e.data.label)):i.createElement(Lz,e)}),"Option"),Placeholder:Az(xz.c.Placeholder,"Placeholder"),SelectContainer:Az(xz.c.SelectContainer,"SelectContainer"),SingleValue:Az(xz.c.SingleValue,"SingleValue"),ValueContainer:Az(xz.c.ValueContainer,"ValueContainer")}),Fz=function(e,t){return t.isDisabled?e.colors.placeholder:e.colors.text},Iz=function(e,t){return t.isSelected?e.colors.menuItemSelected:null},Tz=function(e,t){void 0===t&&(t={});var n=t,r=n.minWidth,o=n.size,a=jz(n,_z);return Sz(Sz({control:function(t,n){return Sz(Sz({},t),{},{borderColor:n.isFocused?e.colors.inputBorderFocus:e.colors.inputBorder,boxShadow:"none",minHeight:18,minWidth:r||160,":hover":{borderColor:e.colors.inputBorderHover}})},input:function(t,n){return Sz(Sz({},t),{},{color:n.isDisabled?e.colors.placeholder:e.colors.grey140},"tiny"===o?{lineHeight:"18px",paddingBottom:0,paddingTop:0}:{})},menu:function(e){return Sz(Sz({},e),{},{zIndex:100})},menuPortal:function(e){return Sz(Sz({},e),{},{zIndex:9999})},multiValue:function(e){return Sz(Sz({},e),{},{fontSize:"tiny"===o?"12px":"14px",flexDirection:"row-reverse"},"tiny"===o?{minHeight:18}:{})},multiValueLabel:function(t,n){return Sz(Sz(Sz({},t),{},{backgroundColor:e.colors.grey40,borderRadius:"0 2px 2px 0",color:n.isDisabled?e.colors.placeholder:e.colors.grey140},"tiny"===o?{padding:"1px"}:{}),{},{paddingRight:n.data.isDisabled?"8px":""})},multiValueRemove:function(t,n){return Sz({color:n.isDisabled?e.colors.placeholder:e.colors.grey140},n.data.isDisabled?Sz(Sz({},t),{},{display:"none"}):Sz(Sz({},t),{},{borderRadius:"2px 0 0 2px",background:e.colors.grey40,":hover":{background:e.colors.tabsBorder}}))},option:function(t,n){return Sz(Sz({},t),{},{display:"flex",alignItems:"center",color:Fz(e,n),backgroundColor:Iz(e,n),":hover":{backgroundColor:e.colors.secondaryHighlight,color:e.colors.text}},"tiny"===o?{fontSize:"12px",minHeight:28,padding:"4px 8px"}:{})},placeholder:function(t){return Sz(Sz({},t),{},{color:e.colors.placeholder},"tiny"===o?{fontSize:"12px",lineHeight:"18px"}:{})},singleValue:function(t,n){return Sz(Sz({},t),{},{color:n.isDisabled?e.colors.placeholder:e.colors.grey140,fontSize:"tiny"===o?"12px":"14px"})}},"tiny"===o?{dropdownIndicator:function(e){return Sz(Sz({},e),{},{padding:"3px"})},clearIndicator:function(e){return Sz(Sz({},e),{},{padding:"3px"})},indicatorsContainer:function(e){return Sz(Sz({},e),{},{minHeight:18})},valueContainer:function(e){return Sz(Sz({},e),{},{minHeight:18,padding:"1px 6px"})}}:{dropdownIndicator:function(e){return Sz(Sz({},e),{},{padding:"3px"})},clearIndicator:function(e){return Sz(Sz({},e),{},{padding:"3px"})},indicatorsContainer:function(e){return Sz(Sz({},e),{},{minHeight:28})},valueContainer:function(e){return Sz(Sz({},e),{},{minHeight:28,padding:"1px 6px"})}}),a)},Rz=function(e){return Sz(Sz({},e),{},{components:Sz(Sz({},Dz),e.components),theme:(t=e.theme,function(e){return Sz(Sz({},e),{},{borderRadius:4,colors:Sz(Sz({},e.colors),{},{primary:t.colors.border,primary25:t.colors.selected,primary50:t.colors.border,primary75:t.colors.tooltip,danger:t.colors.text,dangerLight:t.colors.border,neutral0:t.colors.inputBg,neutral5:t.colors.mainBackgroundDisabled,neutral30:t.colors.controlFocused,neutral60:t.colors.placeholder,neutral80:t.colors.text,neutral10:t.colors.border,neutral20:t.colors.placeholder})})}),styles:Tz(e.theme,e.styles)});var t},Nz=(0,l.default)(Oz.Ay).attrs(Rz).withConfig({displayName:"select__SelectComponent",componentId:"sc-4oqdin-0"})([""]),Uz=(0,l.default)(Bz.A).attrs(Rz).withConfig({displayName:"select__CreatableComponent",componentId:"sc-4oqdin-1"})([""]);const Gz=function(e){var t=e.isCreatable,n=jz(e,zz),r=t?Uz:Nz;return i.createElement(r,n)};function Wz(){return Wz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wz.apply(this,arguments)}function qz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Kz(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qz(Object(n),!0).forEach((function(t){Jz(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qz(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Jz(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qz=function(e){var t=e.grouping,n=e.groupByColumns,r=e.onGroupBy,o=e.tableMeta,a=e.dataGa,l=e.dataColumns,c=(0,i.useMemo)((function(){return n?Kz({default:{label:"None",value:""}},Object.keys(n).reduce((function(e,t){var r,o=l.find((function(e){return e.id===t}));return Kz(Kz({},e),{},((r={})[t]={label:n[t].name||(null==o?void 0:o.name)||o.id,value:t},r))}),{})):null}),[n]);if(c)return i.createElement(qg,Wz({alignItems:"center","data-testid":"tableGroupBy",gap:2,flex:"grow"},o.groupByContainerStyles),i.createElement(Kf,{"data-testid":"tableGroupByLabel",color:"textLite",whiteSpace:"nowrap"},"Group by"),i.createElement(Gz,{"data-ga":a+"::group-by-filter::table-filter","data-testid":"tableGroupByFilter",menuPortalTarget:document.body,onChange:function(e){var t=e.value;return r(t)},options:Object.values(c),styles:{size:"tiny",minWidth:120},value:c[t]||c.default}))};const $z=(0,i.memo)(Qz);function Yz(){return Yz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yz.apply(this,arguments)}var Zz=function(e){var t=e.q,n=e.hasSearch,r=e.onSearch,o=e.groupByColumns,a=e.grouping,l=e.onGroupBy,c=e.tableMeta,s=e.title,u=e.dataGa,d=e.searchPlaceholder,h=void 0===d?"Search":d,v=e.dataColumns,m=e.children,g=e.bulkActions,f=e.enableColumnVisibility;return c=(0,i.useMemo)((function(){return"function"===typeof c?c({},{},null):c}),[]),s||o||n||g||f?i.createElement(qg,Yz({width:"100%",zIndex:10,background:"mainBackground",gap:1,alignItems:"center",padding:[1]},c.bulkActionsStyles),"string"===typeof s?i.createElement(Qf,{strong:!0},s):s,n&&i.createElement(qg,Yz({flex:"grow"},c.searchContainerStyles),i.createElement(zb,Yz({"data-testid":"table-global-search-filter","data-ga":u+"::search-words::table-filter",value:t,iconLeft:i.createElement(Rm,{color:"textLite",name:"magnify",height:"18px",width:"18px"}),onChange:r,placeholder:h},c.searchStyles))),i.createElement($z,{groupByColumns:o,tableMeta:c,dataColumns:v,grouping:a,onGroupBy:l,dataGa:u}),m):null};const Xz=(0,i.memo)(Zz);function eM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tM(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?eM(Object(n),!0).forEach((function(t){nM(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eM(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function nM(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rM={delete:{icon:"trashcan",confirmation:!0,tooltipText:"Delete",confirmationTitle:"Delete Row",confirmationMessage:"You are about to delete a row, are you sure you want to continue?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse"},download:{icon:"download",confirmation:!1,tooltipText:"Download"},toggleAlarm:{icon:"alarm_off",confirmation:!1,tooltipText:"Turn of Alarms"},userSettings:{icon:"user",confirmation:!1,tooltipText:"User Settings"},addEntry:{icon:"plus",alwaysEnabled:!0,flavour:"default",iconColor:"white"},remove:{icon:"removeNode",confirmation:!0,confirmLabel:"Yes",declineLabel:"No"},columnVisibility:{icon:"gear",alwaysEnabled:!0}};var oM=["isDisabled","isVisible","testPrefix","id","icon","handleAction","selectedRows","table","tooltipText","alwaysEnabled","disabledTooltipText"];function aM(){return aM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},aM.apply(this,arguments)}var iM=(0,i.forwardRef)((function(e,t){var n=e.isDisabled,r=e.isVisible,o=e.testPrefix,a=e.id,l=e.icon,c=e.handleAction,s=e.selectedRows,u=e.table,d=e.tooltipText,h=e.alwaysEnabled,v=e.disabledTooltipText,m=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,oM),g=(0,i.useRef)(),f="function"===typeof n?n():n,p="function"===typeof r?r():r;return i.createElement(tz,aM({ref:jb(g,t),testPrefix:o+"-bulk",key:a,visible:p,id:a,icon:l,handleAction:function(){return c(s,u)},tooltipText:d,disabled:!h&&(null==s?void 0:s.length)<1||f,background:"elementBackground",selectedRows:s,disabledTooltipText:"function"===typeof v?v(s):v},m))}));const lM=iM;var cM=function(e){var t=e.column,n=e.dataGa,r=e.disabled,o=t.getIsVisible();return i.createElement(qg,{alignItems:"center",as:Lf,justifyContent:"between",padding:[1]},i.createElement(Tp,{checked:o,disabled:r,label:t.columnDef.name||t.id,onChange:function(e){return t.getToggleVisibilityHandler()({target:{checked:e}})},"data-ga":"columns-menu::click-"+(o?"disable":"enable")+"-"+t.id+"-::"+n}))};const sM=function(e){var t=e.dataGa,n=e.parentRef,r=e.isOpen,o=e.columns,a=e.onClose,l=e.pinnedColumns;return n.current&&r?i.createElement(Cf,{background:"dropdown",height:{max:"400px"},onClickOutside:a,overflow:{vertical:"auto"},round:1,target:n.current,width:50,align:{top:"bottom",right:"right"}},i.createElement(qg,{border:{size:"1px",type:"solid",side:"bottom",color:"borderSecondary"},padding:[3,3,1]},i.createElement(Jf,{color:"textLite"},"Edit columns")),i.createElement(qg,{column:!0,padding:[1,3]},l.length?i.createElement(qg,{border:{size:"1px",type:"solid",side:"bottom",color:"borderSecondary"},column:!0},l.map((function(e){return i.createElement(cM,{column:e,dataGa:t,key:e.id})}))):null,o.map((function(e){return i.createElement(cM,{column:e,dataGa:t,key:e.id})})))):null};var uM=["alwaysEnabled","columnPinning","dataGa","enableColumnPinning","handleAction","id","icon","isDisabled","isOpen","isVisible","onClose","selectedRows","table","testPrefix","tooltipText"],dM=["isVisible"];function hM(){return hM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hM.apply(this,arguments)}function vM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mM(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vM(Object(n),!0).forEach((function(t){gM(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vM(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function gM(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fM(e){return function(e){if(Array.isArray(e))return pM(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return pM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pM(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function wM(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var bM=function(e){return e.columnVisibility},yM=function(e){var t=e.alwaysEnabled,n=e.columnPinning,r=void 0===n?{}:n,o=e.dataGa,a=e.enableColumnPinning,l=e.handleAction,c=e.id,s=e.icon,u=e.isDisabled,d=e.isOpen,h=e.isVisible,v=e.onClose,m=e.selectedRows,g=e.table,f=e.testPrefix,p=e.tooltipText,w=wM(e,uM);fz(bM);var b=(0,i.useRef)(),y="function"===typeof u?u():u,x="function"===typeof h?h():h,O=(0,i.useMemo)((function(){return fM(g.getAllLeafColumns()).sort((function(e,t){return e.id.localeCompare(t.id,void 0,{sensitivity:"accent",ignorePunctuation:!0})}))}),[g.getAllLeafColumns()]),B=a?[].concat(fM((null==r?void 0:r.left)||[]),fM((null==r?void 0:r.right)||[])):[],C=a?O.reduce((function(e,t){var n;if(!t.getCanHide())return e;var r="columns";return B.includes(t.id)&&(r="pinnedColumns"),mM(mM({},e),{},((n={})[r]=[].concat(fM(e[r]),[t]),n))}),{columns:[],pinnedColumns:[]}):{columns:O,pinnedColumns:[]},_=C.columns,z=C.pinnedColumns;return i.createElement(i.Fragment,null,i.createElement(lM,hM({ref:b,testPrefix:"-bulk"+f,visible:x,id:c,icon:s,handleAction:function(){return l(m,g)},tooltipText:p,disabled:!t&&(null==m?void 0:m.length)<1||y,background:"elementBackground",selectedRows:m,dataGa:o},w)),i.createElement(sM,{columns:_,dataGa:o,isOpen:d,onClose:v,parentRef:b,pinnedColumns:z}))};const xM=function(e){var t=e.isVisible,n=wM(e,dM),r=_f(!1),o=r[0],a=r[1],l=r[3];return i.createElement(yM,hM({key:"columnVisibility"},rM.columnVisibility,{handleAction:a,isOpen:o,isVisible:t,id:"columnVisibility",onClose:l},n))};function OM(){return OM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},OM.apply(this,arguments)}var BM=function(){},CM=function(e){return e.selectedRows},_M=function(e){var t=e.bulkActions,n=e.columnPinning,r=e.dataGa,o=e.enableColumnVisibility,a=e.enableColumnPinning,l=e.table,c=e.testPrefix,s=e.onRowSelected,u=e.rowSelection,d=function(e,t){var n=t.onRowSelected,r=void 0===n?BM:n,o=t.rowSelection;fz(CM);var a=(0,i.useState)([]),l=a[0],c=a[1];return(0,i.useEffect)((function(){var t=e.getSelectedRowModel().flatRows;if(t){var n=t.reduce((function(e,t){var n=t.original;return null!=n&&n.disabled||e.push(n),e}),[]);c(n),r(n)}}),[o,e]),l}(l,{onRowSelected:s,rowSelection:u}),h=function(e){return(0,i.useMemo)((function(){return e?Object.keys(e).map((function(t){return tM(tM(tM({},rM[t]||rM.delete),e[t]),{},{id:t})})):[]}),[e])}(t);return h.length||o?i.createElement(qg,{gap:.5,"data-testid":"bulk-actions",width:"100%",justifyContent:"end"},h.map((function(e){return i.createElement(lM,OM({key:e.id},e,{columnPinning:n,dataGa:r,enableColumnPinning:a,selectedRows:d,table:l,testPrefix:c}))})),i.createElement(xM,{isVisible:o,table:l,testPrefix:c,columnPinning:n,dataGa:r,enableColumnPinning:a})):null};const zM=(0,i.memo)(_M);var MM=["disableClickRow","onClickRow","row","table","testPrefix","testPrefixCallback","index","zIndex","onHoverCell"];function EM(){return EM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},EM.apply(this,arguments)}function SM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kM(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?SM(Object(n),!0).forEach((function(t){jM(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SM(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jM(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var HM=function(e){var t=e.cell,n=e.row,r=e.header,o=e.testPrefix,a=e.coloredSortedColumn,l=t.column,c="function"===typeof l.columnDef.tableMeta?l.columnDef.tableMeta({},l,n.index):l.columnDef.tableMeta,s="function"===typeof l.columnDef.meta?l.columnDef.meta({},l,n.index):l.columnDef.meta,u=kM(kM(kM(kM({},(null==c?void 0:c.styles)||{}),(null==s?void 0:s.styles)||{}),(null==c?void 0:c.cellStyles)||{}),(null==s?void 0:s.cellStyles)||{});return i.createElement(qg,EM({flex:!(!l.columnDef.fullWidth&&(l.columnDef.notFlex||l.getCanResize()))&&r.colSpan,width:l.getSize()+"px",position:"relative","data-testid":"netdata-table-cell-"+t.column.columnDef.id+o,overflow:"hidden"},t.column.getCanSort()&&a&&!!t.column.getIsSorted()&&{background:"columnHighlight",backgroundOpacity:n.index%2===0?"0.2":"0.4"},{padding:[1.5,2]},u),i.createElement(qg,{flex:!0,width:"100%",alignItems:t.column.columnDef.align||"start"},i.createElement(t.column.columnDef.cell,t.getContext()),t.getIsGrouped()&&n.getCanExpand()&&i.createElement(qg,{cursor:"pointer",role:"button",padding:[.5],gap:.5,onClick:function(e){e.stopPropagation(),n.getToggleExpandedHandler()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},position:"absolute",right:0,bottom:"-2px"},i.createElement(qf,{color:"textLite",fontSize:"9px"},"Expand"),i.createElement(Rm,{name:"chevron_down",width:"10px",height:"10px",color:"textLite",rotate:n.getIsExpanded()?2:null}))))},PM=function(e){return{sizing:e.columnSizing,expanded:e.expanded,columnVisibility:e.columnVisibility,selectedRows:e.selectedRows}};const VM=(0,i.memo)((function(e){var t=e.disableClickRow,n=e.onClickRow,r=e.row,o=e.table,a=e.testPrefix,l=e.testPrefixCallback,c=e.index,s=e.zIndex,u=e.onHoverCell,d=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,MM);fz(PM);var h=(0,i.useMemo)((function(){return"function"===typeof n&&(!t||!t({data:r.original,table:o,fullRow:r}))}),[r,n]);return i.createElement(qg,{"data-testid":"netdata-table-row"+a+(l?"-"+l(r.original):""),onClick:(0,i.useCallback)(h?function(){return n({data:r.original,table:o,fullRow:r})}:void 0,[h,r,n]),cursor:h?"pointer":"default",onMouseEnter:function(){return null==u?void 0:u({row:r.index})},onMouseLeave:function(){return null==u?void 0:u({row:null})},flex:!0},!!r.getLeftVisibleCells().length&&i.createElement(qg,{position:"sticky",left:0,border:{side:"right"},zIndex:s||1,basis:o.getLeftTotalSize()+"px",flex:"grow",background:c%2===0?"tableRowBg2":"tableRowBg",_hover:{background:c%2===0?"tableRowBg2Hover":"tableRowBgHover"}},r.getLeftVisibleCells().map((function(e,t){return i.createElement(HM,EM({cell:e,row:r,key:e.id,testPrefix:a,header:o.getLeftLeafHeaders()[t]},d))}))),i.createElement(qg,{width:o.getCenterTotalSize()+"px",flex:"grow",background:c%2===0?"tableRowBg2":"tableRowBg",_hover:{background:c%2===0?"tableRowBg2Hover":"tableRowBgHover"}},i.createElement(qg,{flex:!0},r.getCenterVisibleCells().map((function(e,t){return i.createElement(HM,EM({cell:e,row:r,key:e.id,testPrefix:a,header:o.getCenterLeafHeaders()[t]},d))})))),!!r.getRightVisibleCells().length&&i.createElement(qg,{position:"sticky",right:0,border:{side:"left"},zIndex:s||1,basis:o.getRightTotalSize()+"px",flex:"grow",background:c%2===0?"tableRowBg2":"tableRowBg",_hover:{background:c%2===0?"tableRowBg2Hover":"tableRowBgHover"}},r.getRightVisibleCells().map((function(e,t){return i.createElement(HM,EM({cell:e,row:r,key:e.id,testPrefix:a,header:o.getRightLeafHeaders()[t]},d))}))))}));function AM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function LM(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?AM(Object(n),!0).forEach((function(t){DM(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):AM(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function DM(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var FM=function(e){var t;return null==(t=e.columnSizingInfo)?void 0:t.deltaPercentage};const IM=function(e){var t=e.header,n=e.table;if(fz(FM),!t.column.getCanResize())return null;var r=t.column.getIsResizing()?{transform:"translateX("+n.getState().columnSizingInfo.deltaOffset+"px)"}:{};return i.createElement(qg,{border:{side:"right",size:"1px",color:"borderSecondary"},_hover:{border:{side:"right",size:"3px",color:"resizerLine"}},_active:{border:{side:"right",size:"3px",color:"resizerLine"}},width:"8px",sx:LM({userSelect:"none",touchAction:"none",cursor:"col-resize"},r),onMouseDown:t.getResizeHandler(),onTouchStart:t.getResizeHandler(),position:"absolute",top:"2px",right:0,bottom:"2px"})};var TM=["sortable","sorting"];function RM(){return RM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},RM.apply(this,arguments)}function NM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function UM(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var GM={asc:"sort_ascending",desc:"sort_descending",indicator:"sort_indicator"},WM=(0,l.default)(qg).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?NM(Object(n),!0).forEach((function(t){UM(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):NM(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({flex:0},e)})).withConfig({displayName:"sorting__SortIconContainer",componentId:"sc-41slpt-0"})(["transition:opacity 200ms ease;opacity:",";position:absolute;"],(function(e){return e.sorting?1:0}));const qM=function(e){var t,n=e.sortable,r=e.sorting,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,TM);return n?i.createElement(WM,{sorting:r},i.createElement(Rm,RM({height:"12px",width:"12px",color:r?"text":"textLite",name:null!=(t=GM[r||"indicator"])?t:null},o))):null};const KM=function(e){var t=e.meta,n=t&&null!=t&&t.tooltip?null==t?void 0:t.tooltip:"";return n?i.createElement(qg,{position:"absolute",top:"1px",right:"1px",width:3,height:3},i.createElement(up,{align:"bottom",content:n},i.createElement(Rm,{color:"nodeBadgeColor",size:"small",name:"information"}))):null};function JM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QM(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?JM(Object(n),!0).forEach((function(t){$M(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):JM(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function $M(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const YM=function(e){var t=e["data-ga"],n=e["data-testid"],r=e.onChange,o=e.value,a=e.options,l=e.isMulti,c=e.styles;return i.createElement(Gz,{"data-testid":n,"data-ga":t,isMulti:l,options:a,value:o,onChange:function(e){r(e)},styles:QM({size:"tiny"},c||{})})};var ZM=[{value:"all",label:"All"},{value:"gt",label:"Greater than"},{value:"eq",label:"Equal"},{value:"lt",label:"Less than"}];const XM=function(e){var t=e.column,n=t.setFilterValue,r=(0,t.getFilterValue)();return(0,i.useEffect)((function(){n((function(e){return[ZM[0],null==e?void 0:e[1]]}))}),[]),i.createElement(qg,{gap:2},i.createElement(YM,{value:r?r[0]:ZM[0],options:ZM,onChange:function(e){return n((function(t){return[e,null==t?void 0:t[1]]}))}}),i.createElement(Zg,{as:Xp,width:{max:50},value:r?r[1]:null,onChange:(0,WB.s)(300,(function(e){e.persist(),n((function(t){return[null==t?void 0:t[0],e.target.value]}))})),pattern:"[0-9]*(.[0-9]+)?",inputMode:"decimal",size:"tiny"}))};var eE=["column","isMulti","options","tiny"];function tE(){return tE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tE.apply(this,arguments)}function nE(e){return function(e){if(Array.isArray(e))return rE(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return rE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rE(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var oE={value:"all",label:"All"};const aE=function(e){var t=e.column,n=e.isMulti,r=void 0!==n&&n,o=e.options,a=void 0===o?[]:o,l=e.tiny,c=void 0===l||l,s=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,eE),u=t.setFilterValue,d=(0,t.getFilterValue)(),h=r?a:[oE].concat(nE(a)),v=r?d:h[0];return i.createElement(YM,tE({value:d||v,isMulti:r,options:h,onChange:function(e){return u(e)},styles:c&&{size:"tiny"}},s))};function iE(){return iE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},iE.apply(this,arguments)}var lE={comparison:XM,select:aE,default:function(e){var t=e.column,n=e.testPrefix,r=t.id,o=void 0===r?"":r;return i.createElement(Zg,{"data-testid":"netdata-table-filter-"+o+n,as:zb,value:t.getFilterValue(),width:{max:50},placeholder:"Search...",iconRight:i.createElement(Rm,{color:"textLite",name:"magnify",height:"18px",width:"18px"}),onChange:t.setFilterValue})}};const cE=function(e){var t,n,r=e.column,o=e.testPrefix,a=e.index;if(!r.getCanFilter())return null;var l="function"===typeof r.columnDef.meta?r.columnDef.meta({},r,a):r.columnDef.meta,c=l&&null!=l&&null!=(t=l.filter)&&t.component?null==l||null==(n=l.filter)?void 0:n.component:"default",s=l&&null!=l&&l.filter?null==l?void 0:l.filter:{},u=lE[c];return i.createElement(u,iE({column:r,testPrefix:o},s))};function sE(){return sE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sE.apply(this,arguments)}function uE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function dE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?uE(Object(n),!0).forEach((function(t){hE(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uE(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function hE(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var vE=(0,l.default)(Jf).withConfig({displayName:"cell__Label",componentId:"sc-z651qs-0"})(["width:100%;transition:transform 200ms ease;*{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}"," ",""],(function(e){return e.sorting&&"transform: translateX(12px);"}),(function(e){return e.sortable&&"\n &:hover {\n transform: translateX(12px);\n }\n "})),mE=(0,l.default)(qg).withConfig({displayName:"cell__LabelContainer",componentId:"sc-z651qs-1"})(["&:hover ","{opacity:1;}"],WM),gE=function(e){return{sorting:e.sorting,sizing:e.columnSizing,selecting:e.selectedRows}};const fE=function(e){var t=e.header,n=e.table,r=e.testPrefix,o=e.coloredSortedColumn,a=e.index;fz(gE);var l=t.column,c="function"===typeof l.columnDef.tableMeta?l.columnDef.tableMeta({},l,a):l.columnDef.tableMeta,s="function"===typeof l.columnDef.meta?l.columnDef.meta({},l,a):l.columnDef.meta,u=dE(dE(dE(dE({},(null==c?void 0:c.styles)||{}),(null==s?void 0:s.styles)||{}),(null==c?void 0:c.headStyles)||{}),(null==s?void 0:s.headStyles)||{});return i.createElement(qg,sE({flex:!(!l.columnDef.fullWidth&&(l.columnDef.notFlex||l.getCanResize()))&&t.colSpan,width:l.getSize()+"px",position:"relative"},l.getCanSort()&&o&&!!l.getIsSorted()&&{background:"columnHighlight",backgroundOpacity:"0.2"},{padding:[1,2]},u,{column:!0}),i.createElement(qg,{flex:!0,column:!0,width:"100%",alignItems:l.columnDef.align||"start"},i.createElement(mE,{alignItems:"center",cursor:l.getCanSort()?"pointer":"default",onClick:l.getCanSort()?l.getToggleSortingHandler():void 0,padding:[0,2,0,0],overflow:"hidden",width:"100%"},i.createElement(qM,{sortable:l.getCanSort(),sorting:l.getIsSorted()}),l.isPlaceholder?null:i.createElement(vE,{sorting:l.getIsSorted(),sortable:l.getCanSort()},(0,N_.Kv)(l.columnDef.header,t.getContext()))),i.createElement(cE,{column:l,testPrefix:r,index:a})),i.createElement(KM,{meta:s}),i.createElement(IM,{header:t,table:n}))};var pE=["headerGroup","testPrefix"],wE=["groups","size","side"],bE=["table","testPrefix"];function yE(){return yE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yE.apply(this,arguments)}function xE(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var OE=function(e){return{sizing:e.columnSizing,expanded:e.expanded,columnVisibility:e.columnVisibility,selectedRows:e.selectedRows,grouping:e.grouping}},BE=function(e){var t=e.headerGroup,n=e.testPrefix,r=xE(e,pE);return i.createElement(qg,{id:t.id,"data-testid":"netdata-table-headRow"+n,flex:!0,background:"tableRowBg2"},t.headers.map((function(e,t){return i.createElement(fE,yE({key:e.id,index:t},r,{header:e,testPrefix:n}))})))},CE=function(e){var t=e.groups,n=e.size,r=e.side,o=xE(e,wE);return t[0].headers.length?i.createElement(qg,yE({position:r?"sticky":"relative"},"right"===r?{right:0,border:{side:"left"}}:{left:0,border:{side:"right"}},{zIndex:r?11:void 0,width:n+"px",flex:"grow"}),t.map((function(e){return i.createElement(BE,yE({headerGroup:e,key:e.id},o))}))):null},_E=(0,i.memo)((function(e){var t=e.table,n=e.testPrefix,r=xE(e,bE);return fz(OE),i.createElement(qg,{"data-testid":"netdata-table-head"+n,flex:!0,border:{size:"1px",type:"solid",side:"bottom",color:"border"}},i.createElement(CE,yE({groups:t.getLeftHeaderGroups(),side:"left",size:t.getLeftTotalSize(),testPrefix:n},r,{table:t})),i.createElement(CE,yE({groups:t.getCenterHeaderGroups(),size:t.getCenterTotalSize(),testPrefix:n},r,{table:t})),i.createElement(CE,yE({groups:t.getRightHeaderGroups(),side:"right",size:t.getRightTotalSize(),testPrefix:n},r,{table:t})))}));const zE=_E;var ME=["dataGa","table","testPrefix","testPrefixCallback","coloredSortedColumn","meta","overscan","getHasNextPage","getHasPrevPage","getItemKey","loading","loadMore","onVirtualChange","virtualRef","initialOffset"];function EE(){return EE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},EE.apply(this,arguments)}function SE(e){return function(e){if(Array.isArray(e))return kE(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return kE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return kE(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function kE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var jE=function(){},HE=function(e){return{sorting:e.sorting,sizing:e.columnSizing,rowsById:e.rowsById,expanded:e.expanded,grouping:e.grouping}},PE=(0,i.memo)((function(e){var t=e.dataGa,n=e.table,r=e.testPrefix,o=e.testPrefixCallback,a=e.coloredSortedColumn,l=e.meta,c=e.overscan,s=e.getHasNextPage,u=void 0===s?jE:s,d=e.getHasPrevPage,h=void 0===d?jE:d,v=e.getItemKey,m=void 0===v?K_():v,g=e.loading,f=e.loadMore,p=void 0===f?jE:f,w=e.onVirtualChange,b=e.virtualRef,y=e.initialOffset,x=void 0===y?0:y,O=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,ME);fz(HE);var B=(0,i.useRef)(),C=n.getRowModel().rows,_=bb({count:C.length?C.length+1:1,getScrollElement:function(){return B.current},enableSmoothScroll:!1,estimateSize:function(){var e,t;return!(null==(e=l.styles)||!e.height)&&parseInt(l.styles.height)||!(null==(t=l.cellStyles)||!t.height)&&parseInt(l.cellStyles.height)||35},overscan:c||15,onChange:w,initialOffset:x,getItemKey:function(e){return 0===e?"header":m(e-1)},rangeExtractor:(0,i.useCallback)((function(e){if(e.count&&e.startIndex>=0){var t=new Set([0].concat(SE(cb(e))));return SE(t).sort((function(e,t){return e-t}))}return cb(e)}),[])});b&&(b.current=_);var z=_.getVirtualItems();return(0,i.useEffect)((function(){if(p){var e=z[z.length-1];e&&e.index>=C.length&&u()&&!g&&p("backward")}}),[z,g]),(0,i.useEffect)((function(){if(p){var e=z[1];e&&e.index<=1&&h()&&!g&&p("forward")}}),[z,h(),g]),i.createElement("div",{ref:B,style:{display:"flex",height:"100%",overflow:"auto",flex:"1"},"data-testid":"netdata-table"+r},i.createElement("div",{style:{height:_.getTotalSize()+"px",position:"relative",display:"flex",flex:"1 0 auto"}},z.map((function(e){return i.createElement("div",{key:e.key,style:{transform:"translateY("+e.start+"px)",top:0,left:0,position:"header"===e.key?"sticky":"absolute",zIndex:"header"===e.key?1:0,minWidth:"100%",alignSelf:"start",flex:"1 1 auto",display:"flex"},"data-index":e.index,ref:_.measureElement},0===e.index?i.createElement(zE,EE({dataGa:t,table:n,testPrefix:r,coloredSortedColumn:a,index:e.index},O)):i.createElement(VM,EE({dataGa:t,table:n,testPrefix:r,testPrefixCallback:o,coloredSortedColumn:a,meta:l,row:C[e.index-1],index:e.index},O)))}))))}));const VE=PE;var AE=function(){},LE={};var DE=function(){},FE={};var IE=function(){},TE={};var RE=function(){},NE={};var UE=function(){},GE={pageIndex:0,pageSize:0};var WE=function(){};var qE=function(){},KE={};var JE=function(){},QE=[];var $E=function(){};var YE=["bulkActions","headerChildren","data","dataColumns","dataGa","enableColumnPinning","columnPinning","onColumnPinningChange","enableColumnVisibility","columnVisibility","onColumnVisibilityChange","enableColumnSizing","columnSizing","onColumnSizingChange","enablePagination","enableResizing","enableSelection","enableSubRowSelection","rowSelection","onRowSelectionChange","expanded","onExpandedChange","enableSorting","sortBy","onSortingChange","globalFilter","onSearch","globalFilterFn","enableCustomSearch","grouping","onGroupByChange","groupByColumns","onRowSelected","paginationOptions","onPaginationChange","rowActions","testPrefix","meta","title","virtualizeOptions","tableRef","className"];function ZE(){return ZE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ZE.apply(this,arguments)}function XE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function eS(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?XE(Object(n),!0).forEach((function(t){tS(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):XE(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function tS(e,t,n){return t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var nS=function(){},rS={},oS={comparison:function e(t,n,r){var o=r[0],a=r[1],i=o.value,l=t.getValue(n);if(isNaN(a)||""===a)return!0;var c=J_[i](Number(l),Number(a));return!c&&t.subRows.length?t.subRows.some((function(t){return e(t,n,r)})):c},select:function(e,t,n){var r=Array.isArray(n),o=r?Q_(e,t,n):$_(e,t,n);return!o&&e.subRows.length?e.subRows.some((function(e){return r?Q_(e,t,n):$_(e,t,n)})):o}},aS=(0,i.memo)((0,i.forwardRef)((function(e,t){var n=e.bulkActions,r=e.headerChildren,o=e.data,a=e.dataColumns,l=e.dataGa,c=e.enableColumnPinning,s=e.columnPinning,u=e.onColumnPinningChange,d=e.enableColumnVisibility,h=e.columnVisibility,v=e.onColumnVisibilityChange,m=(e.enableColumnSizing,e.columnSizing),g=e.onColumnSizingChange,f=e.enablePagination,p=e.enableResizing,w=e.enableSelection,b=e.enableSubRowSelection,y=e.rowSelection,x=e.onRowSelectionChange,O=e.expanded,B=e.onExpandedChange,C=e.enableSorting,_=e.sortBy,z=e.onSortingChange,M=e.globalFilter,E=e.onSearch,S=e.globalFilterFn,k=void 0===S?Y_:S,j=e.enableCustomSearch,H=e.grouping,P=e.onGroupByChange,V=e.groupByColumns,A=e.onRowSelected,L=e.paginationOptions,D=e.onPaginationChange,F=e.rowActions,I=e.testPrefix,T=e.meta,R=e.title,N=e.virtualizeOptions,U=e.tableRef,G=e.className,W=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,YE),q=function(e,t){void 0===e&&(e=FE),void 0===t&&(t=DE);var n=(0,i.useState)((function(){return e})),r=n[0],o=n[1],a=(0,i.useRef)(!1);(0,i.useEffect)((function(){r!==e&&(a.current=!0,o(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e(r)),o(e(r))}),[r]);return[r,l]}(h,v),K=q[0],J=q[1],Q=function(e,t){void 0===e&&(e=TE),void 0===t&&(t=IE);var n=(0,i.useState)((function(){return e})),r=n[0],o=n[1],a=(0,i.useRef)(!1);(0,i.useEffect)((function(){r!==e&&(a.current=!0,o(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e(r)),o(e(r))}),[r]);return[r,l]}(m,g),$=Q[0],Y=Q[1],Z=function(e,t){void 0===e&&(e=LE),void 0===t&&(t=AE);var n=(0,i.useState)((function(){return e})),r=n[0],o=n[1],a=(0,i.useRef)(!1);(0,i.useEffect)((function(){e&&r!==e&&(a.current=!0,o(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e),o(e)}),[]);return[r,l]}(s,u),X=Z[0],ee=Z[1],te=function(e,t){void 0===e&&(e=NE),void 0===t&&(t=RE);var n=(0,i.useRef)(!1),r=(0,i.useState)((function(){return e})),o=r[0],a=r[1];(0,i.useEffect)((function(){e&&o!==e&&(n.current=!0,a(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e),a(e)}),[]);return[o,l]}(O,B),ne=te[0],re=te[1],oe=function(e,t){void 0===e&&(e=KE),void 0===t&&(t=qE);var n=(0,i.useState)((function(){return e})),r=n[0],o=n[1];(0,i.useRef)(!1),(0,i.useEffect)((function(){r!==e&&o(e)}),[e]);var a=(0,i.useCallback)((function(e){t(e(r)),o(e(r))}),[r]);return[r,a]}(y,x),ae=oe[0],ie=oe[1],le=function(e,t){void 0===e&&(e=QE),void 0===t&&(t=JE);var n=(0,i.useState)((function(){return e})),r=n[0],o=n[1],a=(0,i.useRef)(!1);(0,i.useEffect)((function(){r!==e&&(a.current=!0,o(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e(r)),o(e(r))}),[r]);return[r,l]}(_,z),ce=le[0],se=le[1],ue=function(e,t){void 0===e&&(e=GE),void 0===t&&(t=UE);var n=(0,i.useState)((function(){return e})),r=n[0],o=n[1],a=(0,i.useRef)(!1);(0,i.useEffect)((function(){r!==e&&(a.current=!0,o(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e),o(e)}),[]);return[r,l]}(L,D),de=ue[0],he=ue[1],ve=function(e,t){void 0===e&&(e=""),void 0===t&&(t=$E);var n=(0,i.useState)(e),r=n[0],o=n[1],a=(0,i.useRef)(!1);(0,i.useEffect)((function(){r!==e&&(a.current=!0,o(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e),o(e)}),[]);return[r,l]}(H,P),me=ve[0],ge=ve[1],fe=function(e,t){void 0===e&&(e=""),void 0===t&&(t=WE);var n=(0,i.useState)(e),r=n[0],o=n[1],a=(0,i.useRef)(!1);(0,i.useEffect)((function(){r!==e&&(a.current=!0,o(e))}),[e]);var l=(0,i.useCallback)((function(e){t(e),o(e)}),[]);return[r,l]}(M,E),pe=fe[0],we=fe[1],be=hz(a,{testPrefix:I,enableSelection:w,enableResizing:p,enableSorting:C,rowActions:F,tableMeta:T}),ye=(0,N_.N4)(eS(eS({columns:be,data:o,manualPagination:!f,columnResizeMode:"onEnd",filterFns:oS,state:{columnVisibility:K,columnSizing:$,rowSelection:ae,globalFilter:j?"":pe,sorting:ce,pagination:de,columnPinning:X,expanded:ne,grouping:(0,i.useMemo)((function(){var e;return Array.isArray(me)?[me].filter(Boolean):(null==V||null==(e=V[me])?void 0:e.columns)||[]}),[me]),columnOrder:[]},onExpandedChange:re},!j&&k?{globalFilterFn:k}:{}),{},{getCoreRowModel:(0,U_.HT)(),getFilteredRowModel:(0,U_.hM)(),onRowSelectionChange:ie,onGlobalFilterChange:j?void 0:we,onSortingChange:se,getSortedRowModel:(0,U_.h5)(),getPaginationRowModel:(0,U_.kW)(),getExpandedRowModel:(0,U_.D0)(),getGroupedRowModel:(0,U_.cU)(),getSubRows:(0,i.useCallback)((function(e){return e.children}),[]),onPaginationChange:he,onColumnVisibilityChange:J,onColumnSizingChange:Y,onColumnPinningChange:ee,enableSubRowSelection:b,columnGroupingMode:"reorder"})),xe=(0,i.useRef)(ye.getState());ye.isEqual=function(e){if(void 0===e&&(e=K_()),!xe.current)return xe.current=ye.getState(),!1;var t=W_()(e(xe.current),e(ye.getState()));return xe.current=ye.getState(),t};var Oe=mz(gz,(function(e){return e.setState})),Be=(0,i.useCallback)((0,WB.n)(10,Oe),[]);(0,i.useLayoutEffect)((function(){Be(eS(eS({},ye.getState()),{},{rowsById:ye.getRowModel().rowsById,table:ye,selectedRows:ye.getSelectedRowModel().rows}))}),[ye.getState()]),U&&(U.current=ye);var Ce=N.getHasNextPage,_e=N.loading,ze=N.warning;return i.createElement(qg,{height:{max:"100%"},overflow:"hidden",column:!0,flex:"1",ref:t,className:G},i.createElement(Xz,{q:pe,hasSearch:!!E,onSearch:we,groupByColumns:V,onGroupBy:ge,grouping:me,tableMeta:T,title:R,dataColumns:a,enableColumnVisibility:d,bulkActions:n},r||null,i.createElement(zM,{rowSelection:ae,bulkActions:n,columnPinning:X,dataGa:l,enableColumnVisibility:d,enableColumnPinning:c,table:ye,testPrefix:I,onRowSelected:A})),i.createElement(VE,ZE({table:ye,dataGa:l,testPrefix:I,meta:T},W,N)),!(null!=Ce&&Ce())&&!_e&&!!ze&&i.createElement(qg,{alignItems:"center",justifyContent:"center",gap:2,padding:[4],width:"100%"},i.createElement(Rm,{name:"warning_triangle_hollow",color:"warning"})," ",i.createElement(Jf,{color:"warningText"},ze)),_e&&i.createElement(fy,{backdrop:!1,position:"bottom",margin:[0,0,10],padding:[0,0,10],zIndex:20},i.createElement(qg,{background:"tooltip",padding:[1,2],gap:2},i.createElement(Jf,{strong:!0},"Loading more..."))),f&&i.createElement(yz,{table:ye}))})));aS.defaultProps={coloredSortedColumn:!0,enableColumnPinning:!1,enableColumnVisibility:!1,enableResizing:!1,onColumnVisibilityChange:nS,onSortingChange:nS,onExpandedChange:nS,paginationOptions:{pageIndex:0,pageSize:100},expanded:rS,rowSelection:rS,rowActions:rS,meta:rS,globalFilter:"",testPrefix:"",virtualizeOptions:{}};const iS=function(e){return(0,i.forwardRef)((function(t,n){return i.createElement(wz,null,i.createElement(e,ZE({},t,{ref:n})))}))}(aS);var lS=(0,l.createGlobalStyle)(['body{font-family:"IBM Plex Sans",sans-serif;background-color:',";}*{box-sizing:border-box;}"],(function(e){return e.theme.colors.mainBackground}));const cS=function(e,t){var n=t?e.toLowerCase():e;return n.charAt(0).toUpperCase()+n.slice(1)}},27988:(e,t)=>{t.__esModule=!0,t.default=void 0;var n={end:"flex-end",start:"flex-start",center:"center",stretch:"stretch"};t.default=function(e){var t=e.alignSelf;return t in n&&"align-self: "+n[t]+";"}},88725:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.cursor;return t?"cursor: "+t+";":""}},32305:(e,t,n)=>{t.__esModule=!0,t.default=void 0;var r=n(48558);t.default=function(e){var t=e.theme,n=e.margin;return n?Array.isArray(n)&&n.length>=1&&n.length<=4?"margin: "+(0,r.getDimensions)(t,n)+";":(console.error("Please provide an array (max 4 elements) for `margin` style helper."),""):""}},48558:(e,t)=>{t.__esModule=!0,t.getDimensions=t.getDimension=void 0;var n=t.getDimension=function(e,t){return"number"===typeof t?0===(n=e.constants.SIZE_SUB_UNIT*t)?"0":n+"px":"auto";var n};t.getDimensions=function(e,t){return t.map((function(t){return n(e,t)})).join(" ")}},80711:(e,t,n)=>{t.__esModule=!0,t.default=void 0;var r,o=(r=n(45856))&&r.__esModule?r:{default:r};function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c={primary:o.default.green.green100,accent:o.default.green.chateau,main:o.default.neutral.white,border:o.default.neutral.grey45,borderSecondary:o.default.neutral.grey35,disabled:o.default.neutral.grey100,disabledBackground:o.default.neutral.grey100,dropdown:o.default.neutral.grey40,dropdownShadow:o.default.shadows.dropdownDark,elementBackground:o.default.neutral.grey35,elementBackgroundHover:o.default.neutral.tuna,mainBackground:o.default.neutral.grey15,mainBackgroundDisabled:o.default.neutral.outerSpace,modalHeaderBackground:o.default.neutral.grey10,modalTabsBackground:o.default.neutral.grey20,modalBackground:o.default.neutral.grey30,modalInfoBackground:o.default.neutral.grey50,menuItemSelected:o.default.green.green30,menuItemHover:o.default.green.green10,link:o.default.green.green110,linkHover:o.default.green.green120,primaryHighlight:o.default.green.green100,secondaryColor:o.default.green.green110,secondaryHighlight:o.default.green.green40,neutralHighlight:o.default.neutral.grey50,success:o.default.green.green100,successLite:o.default.green.green190,successSemi:o.default.green.green20,successBackground:o.default.green.green50,successText:o.default.green.green100,warning:o.default.yellow.yellow80,warningLite:o.default.yellow.yellow190,warningSemi:o.default.yellow.yellow20,warningBackground:o.default.yellow.yellow60,warningBannerBg:o.default.yellow.yellow60,warningText:o.default.yellow.seaBuckthorn,error:o.default.red.red100,errorLite:o.default.red.red190,errorSemi:o.default.red.red20,errorBackground:o.default.red.red50,errorBannerBg:o.default.red.red50,errorText:o.default.red.pomegranate,generic:o.default.neutral.grey60,live:o.default.green.green100,stale:o.default.green.green1000,staleSemi:o.default.green.green900,unseen:o.default.yellow.yellow900,offline:o.default.neutral.grey90,attention:o.default.purple.mauve,attentionSecondary:o.default.purple.daisy,separator:o.default.neutral.grey35,controlFocused:o.default.neutral.white,selected:o.default.neutral.grey55,highlight:o.default.neutral.grey55,tooltip:o.default.neutral.outerSpace,tooltipText:o.default.neutral.white,bright:o.default.neutral.white,text:o.default.neutral.grey155,textLite:o.default.neutral.grey120,textNoFocus:o.default.neutral.grey105,textFocus:o.default.neutral.grey160,textDescription:o.default.neutral.grey120,sectionHeaderBackground:o.default.neutral.white,sectionTitle:o.default.neutral.grey155,sectionDescription:o.default.neutral.grey150,menuItem:o.default.neutral.grey140,placeholder:o.default.neutral.grey110,key:o.default.neutral.iron,panel:o.default.neutral.limedSpruce,panelBg:o.default.neutral.grey25,mainChartBg:o.default.neutral.grey25,mainChartHeaderBg:o.default.neutral.grey35,mainChartBorder:o.default.neutral.grey25,mainChartTboxHover:o.default.neutral.grey50,sideBar:o.default.neutral.grey25,sideBarMini:o.default.neutral.grey05,spaceSelected:o.default.neutral.grey85,spaceIdle:o.default.neutral.grey50,spaceHovered:o.default.neutral.grey65,topBarBg:o.default.neutral.grey35,elevationLevelOne:o.default.neutral.grey60,inputBg:o.default.neutral.grey55,inputBorder:o.default.neutral.grey65,inputBorderHover:o.default.neutral.grey85,inputBorderFocus:o.default.neutral.grey85,nodeBadgeBackground:o.default.neutral.grey90,nodeBadgeBorder:o.default.neutral.bluebayoux,nodeBadgeColor:o.default.neutral.white,neutralPillBg:o.default.neutral.grey90,neutralPillBorder:o.default.neutral.grey90,neutralPillColor:o.default.neutral.grey120,alertIcon:o.default.neutral.grey50,idleError:o.default.red.red20,idleWarning:o.default.yellow.yellow20,idleClear:o.default.green.green20,dropdownTable:o.default.neutral.eerieBlack,tableRowBgHover:o.default.neutral.grey35,tableRowBg:o.default.neutral.grey10,tableRowBg2:o.default.neutral.grey20,tableRowBg2Hover:o.default.neutral.grey35,columnHighlight:o.default.green.green30,progressBg:o.default.neutral.bluebayoux,iconColor:o.default.neutral.grey160,resizerLine:o.default.green.vista,anomalyText:o.default.purple.mauve,anomalyTextLite:o.default.purple.mauveDark,anomalyTextFocus:o.default.purple.mauveFocus,terminalGreen:o.default.green.green20,terminalGreenBorder:o.default.green.green60,darkBackground:o.default.neutral.grey05,integrationMenuItemHover:o.default.green.green20};t.default=i(i({},o.default),c)},4199:(e,t,n)=>{t.__esModule=!0,t.DarkTheme=void 0;var r,o=(r=n(80711))&&r.__esModule?r:{default:r},a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var l=o?Object.getOwnPropertyDescriptor(e,a):null;l&&(l.get||l.set)?Object.defineProperty(r,a,l):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}(n(19121));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.DarkTheme=c(c({},{name:"Dark",version:"0.0.1"}),{},{constants:a,colors:o.default})},662:(e,t,n)=>{t.__esModule=!0,t.default=void 0;var r,o=(r=n(45856))&&r.__esModule?r:{default:r};function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c={primary:o.default.green.green100,accent:o.default.green.chateau,main:o.default.neutral.limedSpruce,border:o.default.neutral.grey185,borderSecondary:o.default.neutral.grey180,disabled:o.default.neutral.grey160,disabledBackground:o.default.neutral.grey160,dropdown:o.default.neutral.white,dropdownShadow:o.default.shadows.dropdownLight,elementBackground:o.default.neutral.blackhaze,elementBackgroundHover:o.default.neutral.white,mainBackground:o.default.neutral.grey195,mainBackgroundDisabled:o.default.neutral.blackhaze,modalHeaderBackground:o.default.neutral.grey185,modalTabsBackground:o.default.neutral.grey190,modalBackground:o.default.neutral.grey195,modalInfoBackground:o.default.neutral.blackhaze,menuItemSelected:o.default.green.green196,menuItemHover:o.default.green.green190,link:o.default.green.green100,linkHover:o.default.green.green110,secondaryColor:o.default.green.green100,primaryHighlight:o.default.green.green110,secondaryHighlight:o.default.green.green190,neutralHighlight:o.default.neutral.grey180,success:o.default.green.green100,successLite:o.default.green.green190,successSemi:o.default.green.green190,successBackground:o.default.green.green50,successText:o.default.green.green100,warning:o.default.yellow.yellow80,warningLite:o.default.yellow.yellow190,warningSemi:o.default.yellow.yellow190,warningBackground:o.default.yellow.yellow160,warningBannerBg:o.default.yellow.yellow160,warningText:o.default.yellow.seaBuckthorn,error:o.default.red.red100,errorLite:o.default.red.red190,errorSemi:o.default.red.red190,errorBackground:o.default.red.red150,errorBannerBg:o.default.red.red170,errorText:o.default.red.pomegranate,generic:o.default.neutral.grey165,live:o.default.green.green100,stale:o.default.green.green1000,staleSemi:o.default.green.green900,unseen:o.default.yellow.yellow900,offline:o.default.neutral.grey145,attention:o.default.purple.mauve,attentionSecondary:o.default.purple.daisy,separator:o.default.neutral.grey185,controlFocused:o.default.neutral.limedSpruce,selected:o.default.neutral.grey180,highlight:o.default.neutral.grey180,tooltip:o.default.neutral.grey180,tooltipText:o.default.neutral.grey100,bright:o.default.neutral.white,text:o.default.neutral.grey100,textLite:o.default.neutral.grey120,textNoFocus:o.default.neutral.grey140,textFocus:o.default.neutral.grey90,textDescription:o.default.neutral.grey120,sectionHeaderBackground:o.default.neutral.limedSpruce,sectionTitle:o.default.neutral.grey100,sectionDescription:o.default.neutral.grey120,placeholder:o.default.neutral.grey140,key:o.default.neutral.regentgrey,panel:o.default.neutral.limedSpruce,panelBg:o.default.neutral.grey190,mainChartBg:o.default.neutral.blackhaze,mainChartHeaderBg:o.default.neutral.grey190,mainChartBorder:o.default.neutral.grey185,mainChartTboxHover:o.default.neutral.grey180,sideBar:o.default.neutral.grey190,sideBarMini:o.default.neutral.grey185,spaceSelected:o.default.neutral.grey175,spaceIdle:o.default.neutral.grey195,spaceHovered:o.default.neutral.grey180,menuItem:o.default.neutral.grey120,topBarBg:o.default.neutral.grey190,elevationLevelOne:o.default.neutral.grey185,inputBg:o.default.neutral.grey190,inputBorder:o.default.neutral.grey185,inputBorderHover:o.default.neutral.grey165,inputBorderFocus:o.default.neutral.grey165,nodeBadgeBackground:o.default.neutral.grey155,nodeBadgeBorder:o.default.neutral.iron,nodeBadgeColor:o.default.neutral.bluebayoux,neutralPillBg:o.default.neutral.grey155,neutralPillBorder:o.default.neutral.grey155,neutralPillColor:o.default.neutral.grey100,alertIcon:o.default.neutral.grey180,idleError:o.default.red.red170,idleWarning:o.default.yellow.yellow170,idleClear:o.default.green.green190,dropdownTable:o.default.neutral.white,tableRowBg:o.default.neutral.grey195,tableRowBgHover:o.default.neutral.grey180,tableRowBg2:o.default.neutral.grey190,tableRowBg2Hover:o.default.neutral.grey180,columnHighlight:o.default.green.green190,iconColor:o.default.neutral.limedSpruce,progressBg:o.default.neutral.chineseWhite,resizerLine:o.default.green.vista,anomalyText:o.default.purple.lilac,anomalyTextLite:o.default.purple.lilacLite,anomalyTextFocus:o.default.purple.lilacFocus,terminalGreen:o.default.green.green197,terminalGreenBorder:o.default.green.green,darkBackground:o.default.neutral.grey195,integrationMenuItemHover:o.default.neutral.grey180};t.default=i(i({},c),o.default)},19121:(e,t)=>{t.__esModule=!0,t.SIZE_UNIT=t.SIZE_SUB_UNIT=t.GUTTER_HEIGHT=void 0;t.SIZE_SUB_UNIT=4,t.SIZE_UNIT=8,t.GUTTER_HEIGHT=8},39820:(e,t,n)=>{t.__esModule=!0,t.DefaultTheme=void 0;var r,o=(r=n(662))&&r.__esModule?r:{default:r},a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var l=o?Object.getOwnPropertyDescriptor(e,a):null;l&&(l.get||l.set)?Object.defineProperty(r,a,l):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}(n(19121));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.DefaultTheme=c(c({},{name:"Default",version:"0.0.1"}),{},{constants:a,colors:o.default})},41234:(e,t,n)=>{t.__esModule=!0;var r=n(39820);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||(t[e]=r[e]))}));var o=n(4199);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||(t[e]=o[e]))}));var a=n(34867);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||(t[e]=a[e]))}))},45856:(e,t)=>{t.__esModule=!0,t.default=void 0;t.default={transparent:{full:"rgba(255,255,255,0.0)",semi:"rgba(255, 255, 255, 0.5)",popover:"rgba(18, 36, 50, 0.9)"},green:{poker:"#2f5446",chateau:"#42B861",netdata:"#00AB44",deyork:"#68C47D",vista:"#96D4A2",fringyFlower:"#BFE5C6",frostee:"#E5F5E8",limeGreen:"#48E499",green10:"#001107",green20:"#00220E",green30:"#003314",green40:"#00441B",green50:"#005622",green60:"#006729",green70:"#00783",green80:"#008936",green90:"#009A3D",green100:"#00AB44",green110:"#00CD51",green120:"#00EF5F",green130:"#12FF70",green140:"#34FF84",green150:"#56FF99",green160:"#77FFAD",green170:"#99FFC2",green180:"#BBFFD6",green190:"#DDFFEB",green195:"#EEFFF5",green196:"#F1FFF7",green197:"#F5FFF9",green198:"#F8FFFB",green199:"#FCFFFD",green200:"#09AB49",green300:"#13A94F",green400:"#1DA754",green500:"#29A45A",green600:"#35A060",green700:"#439B66",green800:"#51966C",green900:"#608F73",green1000:"#6F8879"},red:{pomegranate:"#FF4136",carnation:"#F95251",apricot:"#ED7374",wewak:"#F59B9B",pastelpink:"#FFCED3",lavender:"#FFEBEF",red10:"#160205",red20:"#2C0409",red30:"#42070E",red40:"#580913",red50:"#6E0B18",red60:"#830D1C",red70:"#990F21",red80:"#AF1226",red90:"#C5142A",red100:"#DB162F",red110:"#E9233C",red120:"#EB3B52",red130:"#EE5467",red140:"#F06C7D",red150:"#F38593",red160:"#F59DA8",red170:"#F8B6BE",red180:"#FACED4",red190:"#FDE7E9",red200:"#D22037",red300:"#CA2A3E",red400:"#C13546",red500:"#B83F4E",red600:"#AF4956",red700:"#A6545F",red800:"#9D5F67",red900:"#936A6F",red1000:"#8A7577"},yellow:{amber:"#FFC300",sunglow:"#FFCC26",seaBuckthorn:"#F9A825",mustard:"#FFD74F",salomie:"#FFE182",buttermilk:"#FFEDB3",ginfizz:"#FFF8E1",yellow10:"#201300",yellow20:"#402600",yellow30:"#603900",yellow40:"#804B00",yellow50:"#A05E00",yellow60:"#BF7100",yellow70:"#DF8400",yellow80:"#FF9700",yellow90:"#FFA420",yellow100:"#FFB140",yellow110:"#FFB953",yellow120:"#FFC166",yellow130:"#FFC879",yellow140:"#FFD08C",yellow150:"#FFD8A0",yellow160:"#FFE0B3",yellow170:"#FFE8C6",yellow180:"#FFEFD9",yellow190:"#FFF7EC",yellow200:"#F5AD44",yellow300:"#EBA848",yellow400:"#E0A44D",yellow500:"#D49F52",yellow600:"#C79A58",yellow700:"#BA955F",yellow800:"#AD9066",yellow900:"#9E8B6E",yellow1000:"#908577"},neutral:{white:"#FFFFFF",black:"#000000",limedSpruce:"#35414A",regentgrey:"#8F9EAA",blackhaze:"#F7F8F8",brightGrey:"#E9ECEC",chineseWhite:"#DEE3E3",iron:"#CFD5DA",porcelain:"#ECEEEF",bluebayoux:"#536775",shark:"#1C1E22",tuna:"#383B40",outerSpace:"#2B3136",ratsbane:"#3E4551",arsenic:"#353B45",gunmetal:"#282C34",darkGunmetal:"#21252B",eerieBlack:"#181c20",grey05:"#040505",grey10:"#080A0A",grey15:"#0C0F0F",grey20:"#101313",grey25:"#151818",grey30:"#191D1D",grey35:"#1D2222",grey40:"#212727",grey45:"#252C2C",grey50:"#293030",grey55:"#2D3535",grey60:"#313A3A",grey65:"#353F3F",grey70:"#394444",grey75:"#3D4949",grey80:"#424E4E",grey85:"#465252",grey90:"#4A5757",grey95:"#4E5C5C",grey100:"#526161",grey105:"#5A6A6A",grey110:"#617373",grey115:"#697C7C",grey120:"#708585",grey125:"#788D8D",grey130:"#819595",grey135:"#8A9C9C",grey140:"#93A4A4",grey145:"#9CACAC",grey150:"#A5B3B3",grey155:"#AEBBBB",grey160:"#B7C2C2",grey165:"#C0CACA",grey170:"#C9D2D2",grey175:"#D2D9D9",grey180:"#DBE1E1",grey185:"#E4E8E8",grey190:"#EDF0F0",grey195:"#F6F7F7"},purple:{mauve:"#DB94F4",mauveDark:"#CB66EF",mauveFocus:"#EBC2F9",daisy:"#563D7C",lilac:"#B596F8",lilacLite:"#C6AEFA",lilacFocus:"#824EF3"},blue:{aquamarine:"#19C89E",indigo:"#5790FF",cyan:"#00BAE2"},shadows:{dropdownLight:"rgba(9, 30, 66, 0.15)",dropdownDark:"rgba(0, 0, 0, 0.4)"}}},34867:(e,t,n)=>{t.__esModule=!0,t.propOrElse=t.getValidatedControlColor=t.getSizeUnit=t.getSizeBy=t.getRgbColor=t.getOrElse=t.getColor=void 0;var r,o=(r=n(58156))&&r.__esModule?r:{default:r};function a(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.propOrElse=function(e,t){return function(n){return(0,o.default)(n,e,t)}};var l=t.getOrElse=function(e,t){return function(n){var r=n.theme;return(0,o.default)(r,e,t)}},c=t.getSizeUnit=l(["constants","SIZE_UNIT"],8),s=t.getColor=function(e){var t=Array.isArray(e)?e:[e];return l(["colors"].concat(a(t)),e||"#fff")};t.getRgbColor=function(e,t){return void 0===t&&(t=1),function(n){var r=n.theme,o=s(e)({theme:r}),a=parseInt(o.substring(1),16);return"rgba("+(a>>16&255)+", "+(a>>8&255)+", "+(255&a)+", "+t+")"}},t.getSizeBy=function(e){return void 0===e&&(e=1),function(t){return isNaN(e)?e:(c(t)||0)*e+"px"}},t.getValidatedControlColor=function(e,t){return void 0===e&&(e="border"),void 0===t&&(t="disabled"),function(n){var r=n.theme,o=n.success,a=n.error,i=n.disabled;return o?s(["success"])({theme:r}):a?s(["error"])({theme:r}):i?s([t])({theme:r}):s([e])({theme:r})}}},19654:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"area_chart",use:"area_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="area_chart"><path d="M19.1 22H4.9C3.3 22 2 20.7 2 19.1v-5.5l5-5 2.5 2.5 9-9L22 5.6v13.5c0 1.6-1.3 2.9-2.9 2.9M4 14.4V19c0 .6.4 1 .9 1H19c.5 0 .9-.4.9-.9V6.4l-1.5-1.5-9 9L7 11.4z" /></symbol>'});i().add(l);const c=l},36194:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"bar_chart",use:"bar_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="bar_chart"><path d="M12 5V2H6v5H2v6.619A2.381 2.381 0 0 0 4.381 16h9.238A2.381 2.381 0 0 0 16 13.619V5zm-6 9.5H4.381a.882.882 0 0 1-.881-.881V8.5H6zm4.5 0h-3v-11h3zm4-.881a.882.882 0 0 1-.881.881H12v-8h2.5z" /></symbol>'});i().add(l);const c=l},74389:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"chart_bars",use:"chart_bars-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="chart_bars"><path d="M.75 0H0v1.5h.75zM0 14h.75v-1.5H0zM3.53 0H2.14v1.5h1.39zM2.14 14h1.39v-1.5H2.14zM6.31 0H4.92v1.5h1.39zm5.55 0h-1.39v1.5h1.39zM9.08 0H7.69v1.5h1.39zM0 5.75h14v-1.5H0zM4.92 14h1.39v-1.5H4.92zm8.33-14v1.5H14V0zM0 9.75h14v-1.5H0zM7.69 14h1.39v-1.5H7.69zm5.56 0H14v-1.5h-.75zm-2.78 0h1.39v-1.5h-1.39z" /></symbol>'});i().add(l);const c=l},43071:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"chart_circle",use:"chart_circle-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="chart_circle"><path d="M7.541 8.127a.75.75 0 0 0 .65 1.351 2.766 2.766 0 0 0 1.56-2.479A2.752 2.752 0 0 0 7 4.249a.75.75 0 0 0 0 1.5 1.252 1.252 0 0 1 .54 2.378M7.001 0a.75.75 0 0 0 0 1.5c3.031 0 5.5 2.467 5.5 5.5s-2.469 5.5-5.5 5.5a5.518 5.518 0 0 1-5.39-4.391.75.75 0 1 0-1.469.301C.806 11.649 3.69 14 7 14c3.86 0 7-3.14 7-7s-3.14-7-7-7m0 11.875a4.874 4.874 0 1 0 0-9.75.75.75 0 0 0 0 1.5A3.379 3.379 0 0 1 10.374 7 3.378 3.378 0 0 1 7 10.375a3.379 3.379 0 0 1-3.22-4.39.75.75 0 0 0-1.43-.45A4.88 4.88 0 0 0 7 11.875" /></symbol>'});i().add(l);const c=l},15588:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"chart_gauge",use:"chart_gauge-usage",viewBox:"0 0 14 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 16" id="chart_gauge"><path d="M6 2.25h2c.41 0 .75-.34.75-.75S8.41.75 8 .75H6c-.41 0-.75.34-.75.75s.34.75.75.75m6.09 3.22.69-.69c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.69.69a6.412 6.412 0 0 0-3.35-1.37.877.877 0 0 0-.8-.54h-.64v.55c-1.23.14-2.36.63-3.28 1.36l-.69-.69a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l.69.69A6.521 6.521 0 0 0 .5 9.5C.5 13.08 3.42 16 7 16s6.5-2.92 6.5-6.5c0-1.52-.53-2.92-1.41-4.03M7 14.5c-2.76 0-5-2.24-5-5 0-1.11.38-2.13.99-2.97.29-.4.64-.75 1.04-1.04.84-.61 1.86-.99 2.97-.99s2.13.38 2.97.99c.4.29.75.64 1.04 1.04.62.83.99 1.85.99 2.97 0 2.76-2.24 5-5 5M7 6v3.5l2.77 2.14c.47-.61.73-1.37.73-2.14C10.5 7.58 8.92 6 7 6" /></symbol>'});i().add(l);const c=l},22203:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"chart_pie",use:"chart_pie-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="chart_pie"><path d="M7 0a7 7 0 1 0 0 14A7 7 0 0 0 7 0M1.5 7c0-2.778 2.072-5.075 4.75-5.443v5.266l-2.363 4.706A5.495 5.495 0 0 1 1.5 7M7 12.5a5.452 5.452 0 0 1-1.773-.299L7.4 7.874l4.7 1.176A5.507 5.507 0 0 1 7 12.5m.75-6.085V1.557C10.428 1.925 12.5 4.222 12.5 7c0 .201-.013.399-.034.595z" /></symbol>'});i().add(l);const c=l},85809:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"collapse",use:"collapse-usage",viewBox:"0 0 16 2",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 2" id="collapse"><rect width="16" height="2" rx="1" /></symbol>'});i().add(l);const c=l},38001:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"container",use:"container-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="container"><path d="M15.613 5H6.387A2.386 2.386 0 0 0 4 7.387v7.227A2.386 2.386 0 0 0 6.387 17h9.227a2.387 2.387 0 0 0 2.387-2.387V7.387A2.388 2.388 0 0 0 15.613 5m.887 9.613a.888.888 0 0 1-.887.887H6.387a.888.888 0 0 1-.887-.887V7.387c0-.489.398-.887.887-.887h9.227c.489 0 .887.398.887.887v7.226zM10.249 14h1.5V8.002h-1.5zm-3 0h1.5V8.002h-1.5zm6 0h1.5V8.002h-1.5z" /></symbol>'});i().add(l);const c=l},79644:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"expand",use:"expand-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="expand"><path fill-rule="evenodd" d="M5.3 6.7 3 9V3h6L6.7 5.3l2.89 2.87-1.42 1.42zm12-1.4L15 3h6v6l-2.3-2.3-2.87 2.89-1.42-1.42zM9 21l-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6zm9.7-3.7L21 15v6h-6l2.3-2.3-2.89-2.87 1.42-1.42z" clip-rule="evenodd" /></symbol>'});i().add(l);const c=l},63001:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"heatmap_chart",use:"heatmap_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="heatmap_chart"><path d="M6 16h2v-2H6zm0-8h2V6H6zM2 4h2V2H2zm4 0h2V2H6zM2 16h2v-2H2zm0-4h2v-2H2zm0-4h2V6H2zm4 4h2v-2H6zm4 4h2v-2h-2zm4-8h2V6h-2zm0 8h2v-2h-2zm0-14v2h2V2zm0 10h2v-2h-2zm-4 0h2v-2h-2zm0-8h2V2h-2zm0 4h2V6h-2z" /></symbol>'});i().add(l);const c=l},73862:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"information",use:"information-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information"><path d="M9 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2m.75 1H8.5A1.5 1.5 0 0 0 7 9.5h1.25v1.758A1.284 1.284 0 0 0 7 12.538v.212h2.753c.688 0 1.247-.558 1.247-1.247v-.253H9.75zM9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714M9 15A6 6 0 1 1 9 3a6 6 0 1 1 0 12" /></symbol>'});i().add(l);const c=l},57815:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"line_chart2",use:"line_chart2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="line_chart2"><path d="M17.413 2.667 10.747 8 8.08 5.333l-5.413 4.32v2.56L7.92 8l2.667 2.667 6.666-5.334 4.08 4.08V6.587zm-2.68 15.986L9.44 13.36 2.667 18.2v2.467l6.56-4.694 5.373 5.374.013-.014 6.72-5.586v-2.614z" /><path d="m14.587 21.333.013.014.014-.014z" /></symbol>'});i().add(l);const c=l},96104:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"loading",use:"loading-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="loading"><path d="M14.303 18.728h-3.436L3.67 5.272h10.066c4.043.008 7.262 3.172 7.265 7.007-.007 3.536-2.972 6.448-6.697 6.448" /></symbol>'});i().add(l);const c=l},62061:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"rearrange",use:"rearrange-usage",viewBox:"0 0 8 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 14" id="rearrange"><path d="M1.5 3.5C2.3 3.5 3 2.8 3 2S2.3.5 1.5.5 0 1.2 0 2s.7 1.5 1.5 1.5m0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S3 12.8 3 12s-.7-1.5-1.5-1.5m0-5C.7 5.5 0 6.2 0 7s.7 1.5 1.5 1.5S3 7.8 3 7s-.7-1.5-1.5-1.5M6.5 3.5C7.3 3.5 8 2.8 8 2S7.3.5 6.5.5 5 1.2 5 2s.7 1.5 1.5 1.5m0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S8 12.8 8 12s-.7-1.5-1.5-1.5m0-5C5.7 5.5 5 6.2 5 7s.7 1.5 1.5 1.5S8 7.8 8 7s-.7-1.5-1.5-1.5" /></symbol>'});i().add(l);const c=l},61603:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"reload2",use:"reload2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="reload2"><path d="M16.795 5.889h2.15a.834.834 0 0 0 0-1.667H13.11v5.834a.834.834 0 0 0 1.666 0V6.584C16.75 7.6 18.112 9.634 18.112 12A6.118 6.118 0 0 1 12 18.11 6.118 6.118 0 0 1 5.889 12c0-2.99 2.16-5.48 5-6.004V4.31C7.12 4.851 4.222 8.082 4.222 12a7.778 7.778 0 1 0 15.555 0 7.741 7.741 0 0 0-2.982-6.111" /></symbol>'});i().add(l);const c=l},17600:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"stacked_bar_chart",use:"stacked_bar_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="stacked_bar_chart"><path d="M6.75 3a1 1 0 0 1 1-1h2.5a1 1 0 0 1 1 1v7.75h-4.5zm1.125.5a.5.5 0 0 1 .5-.5h1.25a.5.5 0 0 1 .5.5v6h-2.25zM2 6a1 1 0 0 1 1-1h3.5v4.75H2zm1.125.688a.5.5 0 0 1 .5-.5h1.75v2.638h-2.25zM2 10h4.5v6H4.3A2.3 2.3 0 0 1 2 13.7zm1.125 1h2.25v4h-.75a1.5 1.5 0 0 1-1.5-1.5zm8.125 0h-4.5v5h4.5zm-1.125 1h-2.25v3h2.25zM16 9h-4.5v7h2.2a2.3 2.3 0 0 0 2.3-2.3zm-1.125 1h-2.25v5h.75a1.5 1.5 0 0 0 1.5-1.5zM11.5 4H15a1 1 0 0 1 1 1v3.75h-4.5zm1.125 1.125h2.25v2.5h-2.25z" clip-rule="evenodd" /></symbol>'});i().add(l);const c=l},49134:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"stacked_chart",use:"stacked_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="stacked_chart"><path d="m18.116 6.783-4.735-4.06-4.8 3.53-2.936-.698-2.978 3.402v8.45a3.928 3.928 0 0 0 3.924 3.926h10.817a3.928 3.928 0 0 0 3.924-3.924V4.944zm1.217 10.626a1.926 1.926 0 0 1-1.924 1.924H6.591a1.926 1.926 0 0 1-1.924-1.924v-2.938l1.91 1.358 2.686-1.343 4.042 2.697 6.028-3.618zm0-6.176-5.972 3.584-3.956-2.637-2.648 1.324-2.09-1.487V9.71l1.689-1.93 2.663.636 4.266-3.138 4.599 3.942 1.45-.83z" /></symbol>'});i().add(l);const c=l},54991:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(12897),o=n.n(r),a=n(55042),i=n.n(a),l=new(o())({id:"value",use:"value-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="value"><path d="M9.682 1.5A2.821 2.821 0 0 1 12.5 4.318v5.365a2.821 2.821 0 0 1-2.818 2.818H4.318A2.822 2.822 0 0 1 1.5 9.682V4.318A2.821 2.821 0 0 1 4.318 1.5zm0-1.5H4.318A4.318 4.318 0 0 0 0 4.318v5.365A4.317 4.317 0 0 0 4.318 14h5.365a4.318 4.318 0 0 0 4.318-4.318V4.318A4.32 4.32 0 0 0 9.682 0" /><path d="M10.5 6.25v-1.5h-.963l.156-1.25H8.181l-.156 1.25H6.537l.156-1.25H5.182l-.156 1.25H3.5v1.5h1.338l-.188 1.5H3.5v1.5h.963l-.156 1.25h1.512l.156-1.25h1.488l-.156 1.25h1.512l.156-1.25H10.5v-1.5H9.162l.188-1.5zm-2.85 1.5H6.162l.188-1.5h1.488z" /></symbol>'});i().add(l);const c=l}}]); \ No newline at end of file
diff --git a/src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js.LICENSE.txt b/src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js.LICENSE.txt
new file mode 100644
index 000000000..a12b28f88
--- /dev/null
+++ b/src/web/gui/v2/netdata.ui.f50ab375c8daf7a2a547.js.LICENSE.txt
@@ -0,0 +1,23 @@
+/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
+
+/**
+ * react-virtual
+ *
+ * Copyright (c) TanStack
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * virtual-core
+ *
+ * Copyright (c) TanStack
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
diff --git a/src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js b/src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js
new file mode 100644
index 000000000..34d2901bc
--- /dev/null
+++ b/src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js
@@ -0,0 +1,2 @@
+/*! For license information please see npm.react.dom.b2a6a30db3d683abdb32.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cd8d646c-4a61-46f7-882e-65cf968a139d",e._sentryDebugIdIdentifier="sentry-dbid-cd8d646c-4a61-46f7-882e-65cf968a139d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[3975],{22551:(e,n,t)=>{var r=t(96540),l=t(69982);function a(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t<arguments.length;t++)n+="&args[]="+encodeURIComponent(arguments[t]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,u={};function i(e,n){s(e,n),s(e+"Capture",n)}function s(e,n){for(u[e]=n,e=0;e<n.length;e++)o.add(n[e])}var c=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),f=Object.prototype.hasOwnProperty,d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e,n,t,r,l,a,o){this.acceptsBooleans=2===n||3===n||4===n,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=a,this.removeEmptyString=o}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var n=e[0];g[n]=new h(n,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,n,t,r){var l=g.hasOwnProperty(n)?g[n]:null;(null!==l?0!==l.type:r||!(2<n.length)||"o"!==n[0]&&"O"!==n[0]||"n"!==n[1]&&"N"!==n[1])&&(function(e,n,t,r){if(null===n||"undefined"===typeof n||function(e,n,t,r){if(null!==t&&0===t.type)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==t?!t.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,n,t,r))return!0;if(r)return!1;if(null!==t)switch(t.type){case 3:return!n;case 4:return!1===n;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}(n,t,l,r)&&(t=null),r||null===l?function(e){return!!f.call(m,e)||!f.call(p,e)&&(d.test(e)?m[e]=!0:(p[e]=!0,!1))}(n)&&(null===t?e.removeAttribute(n):e.setAttribute(n,""+t)):l.mustUseProperty?e[l.propertyName]=null===t?3!==l.type&&"":t:(n=l.attributeName,r=l.attributeNamespace,null===t?e.removeAttribute(n):(t=3===(l=l.type)||4===l&&!0===t?"":""+t,r?e.setAttributeNS(r,n,t):e.setAttribute(n,t))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),S=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),z=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),P=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),T=Symbol.for("react.memo"),M=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var F=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var D=Symbol.iterator;function R(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=D&&e[D]||e["@@iterator"])?e:null}var O,I=Object.assign;function U(e){if(void 0===O)try{throw Error()}catch(t){var n=t.stack.trim().match(/\n( *(at )?)/);O=n&&n[1]||""}return"\n"+O+e}var V=!1;function A(e,n){if(!e||V)return"";V=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(s){var r=s}Reflect.construct(e,[],n)}else{try{n.call()}catch(s){r=s}e.call(n.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"===typeof s.stack){for(var l=s.stack.split("\n"),a=r.stack.split("\n"),o=l.length-1,u=a.length-1;1<=o&&0<=u&&l[o]!==a[u];)u--;for(;1<=o&&0<=u;o--,u--)if(l[o]!==a[u]){if(1!==o||1!==u)do{if(o--,0>--u||l[o]!==a[u]){var i="\n"+l[o].replace(" at new "," at ");return e.displayName&&i.includes("<anonymous>")&&(i=i.replace("<anonymous>",e.displayName)),i}}while(1<=o&&0<=u);break}}}finally{V=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?U(e):""}function H(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=A(e.type,!1);case 11:return e=A(e.type.render,!1);case 1:return e=A(e.type,!0);default:return""}}function B(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case E:return"StrictMode";case P:return"Suspense";case L:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case z:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case N:var n=e.render;return(e=e.displayName)||(e=""!==(e=n.displayName||n.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case T:return null!==(n=e.displayName||null)?n:B(e.type)||"Memo";case M:n=e._payload,e=e._init;try{return B(e(n))}catch(t){}}return null}function Q(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=n.render).displayName||e.name||"",n.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return B(n);case 8:return n===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof n)return n.displayName||n.name||null;if("string"===typeof n)return n}return null}function W(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function j(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function $(e){e._valueTracker||(e._valueTracker=function(e){var n=j(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&"undefined"!==typeof t&&"function"===typeof t.get&&"function"===typeof t.set){var l=t.get,a=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e))}function K(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=j(e)?e.checked?"true":"false":e.value),(e=r)!==t&&(n.setValue(e),!0)}function q(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}function Y(e,n){var t=n.checked;return I({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=t?t:e._wrapperState.initialChecked})}function X(e,n){var t=null==n.defaultValue?"":n.defaultValue,r=null!=n.checked?n.checked:n.defaultChecked;t=W(null!=n.value?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:"checkbox"===n.type||"radio"===n.type?null!=n.checked:null!=n.value}}function G(e,n){null!=(n=n.checked)&&b(e,"checked",n,!1)}function Z(e,n){G(e,n);var t=W(n.value),r=n.type;if(null!=t)"number"===r?(0===t&&""===e.value||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");n.hasOwnProperty("value")?ee(e,n.type,t):n.hasOwnProperty("defaultValue")&&ee(e,n.type,W(n.defaultValue)),null==n.checked&&null!=n.defaultChecked&&(e.defaultChecked=!!n.defaultChecked)}function J(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!("submit"!==r&&"reset"!==r||void 0!==n.value&&null!==n.value))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}""!==(t=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==t&&(e.name=t)}function ee(e,n,t){"number"===n&&q(e.ownerDocument)===e||(null==t?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var ne=Array.isArray;function te(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l<t.length;l++)n["$"+t[l]]=!0;for(t=0;t<e.length;t++)l=n.hasOwnProperty("$"+e[t].value),e[t].selected!==l&&(e[t].selected=l),l&&r&&(e[t].defaultSelected=!0)}else{for(t=""+W(t),n=null,l=0;l<e.length;l++){if(e[l].value===t)return e[l].selected=!0,void(r&&(e[l].defaultSelected=!0));null!==n||e[l].disabled||(n=e[l])}null!==n&&(n.selected=!0)}}function re(e,n){if(null!=n.dangerouslySetInnerHTML)throw Error(a(91));return I({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,n){var t=n.value;if(null==t){if(t=n.children,n=n.defaultValue,null!=t){if(null!=n)throw Error(a(92));if(ne(t)){if(1<t.length)throw Error(a(93));t=t[0]}n=t}null==n&&(n=""),t=n}e._wrapperState={initialValue:W(t)}}function ae(e,n){var t=W(n.value),r=W(n.defaultValue);null!=t&&((t=""+t)!==e.value&&(e.value=t),null==n.defaultValue&&e.defaultValue!==t&&(e.defaultValue=t)),null!=r&&(e.defaultValue=""+r)}function oe(e){var n=e.textContent;n===e._wrapperState.initialValue&&""!==n&&null!==n&&(e.value=n)}function ue(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ie(e,n){return null==e||"http://www.w3.org/1999/xhtml"===e?ue(n):"http://www.w3.org/2000/svg"===e&&"foreignObject"===n?"http://www.w3.org/1999/xhtml":e}var se,ce,fe=(ce=function(e,n){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=n;else{for((se=se||document.createElement("div")).innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=se.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,n,t,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,n)}))}:ce);function de(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType)return void(t.nodeValue=n)}e.textContent=n}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,n,t){return null==n||"boolean"===typeof n||""===n?"":t||"number"!==typeof n||0===n||pe.hasOwnProperty(e)&&pe[e]?(""+n).trim():n+"px"}function ge(e,n){for(var t in e=e.style,n)if(n.hasOwnProperty(t)){var r=0===t.indexOf("--"),l=he(t,n[t],r);"float"===t&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}Object.keys(pe).forEach((function(e){me.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),pe[n]=pe[e]}))}));var ve=I({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,n){if(n){if(ve[e]&&(null!=n.children||null!=n.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=n.dangerouslySetInnerHTML){if(null!=n.children)throw Error(a(60));if("object"!==typeof n.dangerouslySetInnerHTML||!("__html"in n.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=n.style&&"object"!==typeof n.style)throw Error(a(62))}}function be(e,n){if(-1===e.indexOf("-"))return"string"===typeof n.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ke=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Se=null,xe=null,Ee=null;function Ce(e){if(e=bl(e)){if("function"!==typeof Se)throw Error(a(280));var n=e.stateNode;n&&(n=wl(n),Se(e.stateNode,e.type,n))}}function _e(e){xe?Ee?Ee.push(e):Ee=[e]:xe=e}function ze(){if(xe){var e=xe,n=Ee;if(Ee=xe=null,Ce(e),n)for(e=0;e<n.length;e++)Ce(n[e])}}function Ne(e,n){return e(n)}function Pe(){}var Le=!1;function Te(e,n,t){if(Le)return e(n,t);Le=!0;try{return Ne(e,n,t)}finally{Le=!1,(null!==xe||null!==Ee)&&(Pe(),ze())}}function Me(e,n){var t=e.stateNode;if(null===t)return null;var r=wl(t);if(null===r)return null;t=r[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(t&&"function"!==typeof t)throw Error(a(231,n,typeof t));return t}var Fe=!1;if(c)try{var De={};Object.defineProperty(De,"passive",{get:function(){Fe=!0}}),window.addEventListener("test",De,De),window.removeEventListener("test",De,De)}catch(ce){Fe=!1}function Re(e,n,t,r,l,a,o,u,i){var s=Array.prototype.slice.call(arguments,3);try{n.apply(t,s)}catch(c){this.onError(c)}}var Oe=!1,Ie=null,Ue=!1,Ve=null,Ae={onError:function(e){Oe=!0,Ie=e}};function He(e,n,t,r,l,a,o,u,i){Oe=!1,Ie=null,Re.apply(Ae,arguments)}function Be(e){var n=e,t=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do{0!==(4098&(n=e).flags)&&(t=n.return),e=n.return}while(e)}return 3===n.tag?t:null}function Qe(e){if(13===e.tag){var n=e.memoizedState;if(null===n&&(null!==(e=e.alternate)&&(n=e.memoizedState)),null!==n)return n.dehydrated}return null}function We(e){if(Be(e)!==e)throw Error(a(188))}function je(e){return null!==(e=function(e){var n=e.alternate;if(!n){if(null===(n=Be(e)))throw Error(a(188));return n!==e?null:e}for(var t=e,r=n;;){var l=t.return;if(null===l)break;var o=l.alternate;if(null===o){if(null!==(r=l.return)){t=r;continue}break}if(l.child===o.child){for(o=l.child;o;){if(o===t)return We(l),e;if(o===r)return We(l),n;o=o.sibling}throw Error(a(188))}if(t.return!==r.return)t=l,r=o;else{for(var u=!1,i=l.child;i;){if(i===t){u=!0,t=l,r=o;break}if(i===r){u=!0,r=l,t=o;break}i=i.sibling}if(!u){for(i=o.child;i;){if(i===t){u=!0,t=o,r=l;break}if(i===r){u=!0,r=o,t=l;break}i=i.sibling}if(!u)throw Error(a(189))}}if(t.alternate!==r)throw Error(a(190))}if(3!==t.tag)throw Error(a(188));return t.stateNode.current===t?e:n}(e))?$e(e):null}function $e(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var n=$e(e);if(null!==n)return n;e=e.sibling}return null}var Ke=l.unstable_scheduleCallback,qe=l.unstable_cancelCallback,Ye=l.unstable_shouldYield,Xe=l.unstable_requestPaint,Ge=l.unstable_now,Ze=l.unstable_getCurrentPriorityLevel,Je=l.unstable_ImmediatePriority,en=l.unstable_UserBlockingPriority,nn=l.unstable_NormalPriority,tn=l.unstable_LowPriority,rn=l.unstable_IdlePriority,ln=null,an=null;var on=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(un(e)/sn|0)|0},un=Math.log,sn=Math.LN2;var cn=64,fn=4194304;function dn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,o=268435455&t;if(0!==o){var u=o&~l;0!==u?r=dn(u):0!==(a&=o)&&(r=dn(a))}else 0!==(o=t&~l)?r=dn(o):0!==a&&(r=dn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&((l=r&-r)>=(a=n&-n)||16===l&&0!==(4194240&a)))return n;if(0!==(4&r)&&(r|=16&t),0!==(n=e.entangledLanes))for(e=e.entanglements,n&=r;0<n;)l=1<<(t=31-on(n)),r|=e[t],n&=~l;return r}function mn(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return-1}}function hn(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function gn(){var e=cn;return 0===(4194240&(cn<<=1))&&(cn=64),e}function vn(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function yn(e,n,t){e.pendingLanes|=n,536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[n=31-on(n)]=t}function bn(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-on(t),l=1<<r;l&n|e[r]&n&&(e[r]|=n),t&=~l}}var kn=0;function wn(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var Sn,xn,En,Cn,_n,zn=!1,Nn=[],Pn=null,Ln=null,Tn=null,Mn=new Map,Fn=new Map,Dn=[],Rn="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function On(e,n){switch(e){case"focusin":case"focusout":Pn=null;break;case"dragenter":case"dragleave":Ln=null;break;case"mouseover":case"mouseout":Tn=null;break;case"pointerover":case"pointerout":Mn.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Fn.delete(n.pointerId)}}function In(e,n,t,r,l,a){return null===e||e.nativeEvent!==a?(e={blockedOn:n,domEventName:t,eventSystemFlags:r,nativeEvent:a,targetContainers:[l]},null!==n&&(null!==(n=bl(n))&&xn(n)),e):(e.eventSystemFlags|=r,n=e.targetContainers,null!==l&&-1===n.indexOf(l)&&n.push(l),e)}function Un(e){var n=yl(e.target);if(null!==n){var t=Be(n);if(null!==t)if(13===(n=t.tag)){if(null!==(n=Qe(t)))return e.blockedOn=n,void _n(e.priority,(function(){En(t)}))}else if(3===n&&t.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===t.tag?t.stateNode.containerInfo:null)}e.blockedOn=null}function Vn(e){if(null!==e.blockedOn)return!1;for(var n=e.targetContainers;0<n.length;){var t=Xn(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(null!==t)return null!==(n=bl(t))&&xn(n),e.blockedOn=t,!1;var r=new(t=e.nativeEvent).constructor(t.type,t);ke=r,t.target.dispatchEvent(r),ke=null,n.shift()}return!0}function An(e,n,t){Vn(e)&&t.delete(n)}function Hn(){zn=!1,null!==Pn&&Vn(Pn)&&(Pn=null),null!==Ln&&Vn(Ln)&&(Ln=null),null!==Tn&&Vn(Tn)&&(Tn=null),Mn.forEach(An),Fn.forEach(An)}function Bn(e,n){e.blockedOn===n&&(e.blockedOn=null,zn||(zn=!0,l.unstable_scheduleCallback(l.unstable_NormalPriority,Hn)))}function Qn(e){function n(n){return Bn(n,e)}if(0<Nn.length){Bn(Nn[0],e);for(var t=1;t<Nn.length;t++){var r=Nn[t];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Pn&&Bn(Pn,e),null!==Ln&&Bn(Ln,e),null!==Tn&&Bn(Tn,e),Mn.forEach(n),Fn.forEach(n),t=0;t<Dn.length;t++)(r=Dn[t]).blockedOn===e&&(r.blockedOn=null);for(;0<Dn.length&&null===(t=Dn[0]).blockedOn;)Un(t),null===t.blockedOn&&Dn.shift()}var Wn=k.ReactCurrentBatchConfig,jn=!0;function $n(e,n,t,r){var l=kn,a=Wn.transition;Wn.transition=null;try{kn=1,qn(e,n,t,r)}finally{kn=l,Wn.transition=a}}function Kn(e,n,t,r){var l=kn,a=Wn.transition;Wn.transition=null;try{kn=4,qn(e,n,t,r)}finally{kn=l,Wn.transition=a}}function qn(e,n,t,r){if(jn){var l=Xn(e,n,t,r);if(null===l)Wr(e,n,r,Yn,t),On(e,r);else if(function(e,n,t,r,l){switch(n){case"focusin":return Pn=In(Pn,e,n,t,r,l),!0;case"dragenter":return Ln=In(Ln,e,n,t,r,l),!0;case"mouseover":return Tn=In(Tn,e,n,t,r,l),!0;case"pointerover":var a=l.pointerId;return Mn.set(a,In(Mn.get(a)||null,e,n,t,r,l)),!0;case"gotpointercapture":return a=l.pointerId,Fn.set(a,In(Fn.get(a)||null,e,n,t,r,l)),!0}return!1}(l,e,n,t,r))r.stopPropagation();else if(On(e,r),4&n&&-1<Rn.indexOf(e)){for(;null!==l;){var a=bl(l);if(null!==a&&Sn(a),null===(a=Xn(e,n,t,r))&&Wr(e,n,r,Yn,t),a===l)break;l=a}null!==l&&r.stopPropagation()}else Wr(e,n,r,null,t)}}var Yn=null;function Xn(e,n,t,r){if(Yn=null,null!==(e=yl(e=we(r))))if(null===(n=Be(e)))e=null;else if(13===(t=n.tag)){if(null!==(e=Qe(n)))return e;e=null}else if(3===t){if(n.stateNode.current.memoizedState.isDehydrated)return 3===n.tag?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Yn=e,null}function Gn(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ze()){case Je:return 1;case en:return 4;case nn:case tn:return 16;case rn:return 536870912;default:return 16}default:return 16}}var Zn=null,Jn=null,et=null;function nt(){if(et)return et;var e,n,t=Jn,r=t.length,l="value"in Zn?Zn.value:Zn.textContent,a=l.length;for(e=0;e<r&&t[e]===l[e];e++);var o=r-e;for(n=1;n<=o&&t[r-n]===l[a-n];n++);return et=l.slice(e,1<n?1-n:void 0)}function tt(e){var n=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===n&&(e=13):e=n,10===e&&(e=13),32<=e||13===e?e:0}function rt(){return!0}function lt(){return!1}function at(e){function n(n,t,r,l,a){for(var o in this._reactName=n,this._targetInst=r,this.type=t,this.nativeEvent=l,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(l):l[o]);return this.isDefaultPrevented=(null!=l.defaultPrevented?l.defaultPrevented:!1===l.returnValue)?rt:lt,this.isPropagationStopped=lt,this}return I(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=rt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=rt)},persist:function(){},isPersistent:rt}),n}var ot,ut,it,st={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ct=at(st),ft=I({},st,{view:0,detail:0}),dt=at(ft),pt=I({},ft,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ct,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==it&&(it&&"mousemove"===e.type?(ot=e.screenX-it.screenX,ut=e.screenY-it.screenY):ut=ot=0,it=e),ot)},movementY:function(e){return"movementY"in e?e.movementY:ut}}),mt=at(pt),ht=at(I({},pt,{dataTransfer:0})),gt=at(I({},ft,{relatedTarget:0})),vt=at(I({},st,{animationName:0,elapsedTime:0,pseudoElement:0})),yt=I({},st,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bt=at(yt),kt=at(I({},st,{data:0})),wt={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},St={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xt={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Et(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):!!(e=xt[e])&&!!n[e]}function Ct(){return Et}var _t=I({},ft,{key:function(e){if(e.key){var n=wt[e.key]||e.key;if("Unidentified"!==n)return n}return"keypress"===e.type?13===(e=tt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?St[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ct,charCode:function(e){return"keypress"===e.type?tt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),zt=at(_t),Nt=at(I({},pt,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pt=at(I({},ft,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ct})),Lt=at(I({},st,{propertyName:0,elapsedTime:0,pseudoElement:0})),Tt=I({},pt,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Mt=at(Tt),Ft=[9,13,27,32],Dt=c&&"CompositionEvent"in window,Rt=null;c&&"documentMode"in document&&(Rt=document.documentMode);var Ot=c&&"TextEvent"in window&&!Rt,It=c&&(!Dt||Rt&&8<Rt&&11>=Rt),Ut=String.fromCharCode(32),Vt=!1;function At(e,n){switch(e){case"keyup":return-1!==Ft.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ht(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Bt=!1;var Qt={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wt(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===n?!!Qt[e.type]:"textarea"===n}function jt(e,n,t,r){_e(r),0<(n=$r(n,"onChange")).length&&(t=new ct("onChange","change",null,t,r),e.push({event:t,listeners:n}))}var $t=null,Kt=null;function qt(e){Ur(e,0)}function Yt(e){if(K(kl(e)))return e}function Xt(e,n){if("change"===e)return n}var Gt=!1;if(c){var Zt;if(c){var Jt="oninput"in document;if(!Jt){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jt="function"===typeof er.oninput}Zt=Jt}else Zt=!1;Gt=Zt&&(!document.documentMode||9<document.documentMode)}function nr(){$t&&($t.detachEvent("onpropertychange",tr),Kt=$t=null)}function tr(e){if("value"===e.propertyName&&Yt(Kt)){var n=[];jt(n,Kt,e,we(e)),Te(qt,n)}}function rr(e,n,t){"focusin"===e?(nr(),Kt=t,($t=n).attachEvent("onpropertychange",tr)):"focusout"===e&&nr()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yt(Kt)}function ar(e,n){if("click"===e)return Yt(n)}function or(e,n){if("input"===e||"change"===e)return Yt(n)}var ur="function"===typeof Object.is?Object.is:function(e,n){return e===n&&(0!==e||1/e===1/n)||e!==e&&n!==n};function ir(e,n){if(ur(e,n))return!0;if("object"!==typeof e||null===e||"object"!==typeof n||null===n)return!1;var t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(r=0;r<t.length;r++){var l=t[r];if(!f.call(n,l)||!ur(e[l],n[l]))return!1}return!0}function sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,n){var t,r=sr(e);for(e=0;r;){if(3===r.nodeType){if(t=e+r.textContent.length,e<=n&&t>=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(e,n){return!(!e||!n)&&(e===n||(!e||3!==e.nodeType)&&(n&&3===n.nodeType?fr(e,n.parentNode):"contains"in e?e.contains(n):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(n))))}function dr(){for(var e=window,n=q();n instanceof e.HTMLIFrameElement;){try{var t="string"===typeof n.contentWindow.location.href}catch(r){t=!1}if(!t)break;n=q((e=n.contentWindow).document)}return n}function pr(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}function mr(e){var n=dr(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&fr(t.ownerDocument.documentElement,t)){if(null!==r&&pr(t))if(n=r.start,void 0===(e=r.end)&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if((e=(n=t.ownerDocument||document)&&n.defaultView||window).getSelection){e=e.getSelection();var l=t.textContent.length,a=Math.min(r.start,l);r=void 0===r.end?a:Math.min(r.end,l),!e.extend&&a>r&&(l=r,r=a,a=l),l=cr(t,a);var o=cr(t,r);l&&o&&(1!==e.rangeCount||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((n=n.createRange()).setStart(l.node,l.offset),e.removeAllRanges(),a>r?(e.addRange(n),e.extend(o.node,o.offset)):(n.setEnd(o.node,o.offset),e.addRange(n)))}for(n=[],e=t;e=e.parentNode;)1===e.nodeType&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof t.focus&&t.focus(),t=0;t<n.length;t++)(e=n[t]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=c&&"documentMode"in document&&11>=document.documentMode,gr=null,vr=null,yr=null,br=!1;function kr(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;br||null==gr||gr!==q(r)||("selectionStart"in(r=gr)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&ir(yr,r)||(yr=r,0<(r=$r(vr,"onSelect")).length&&(n=new ct("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=gr)))}function wr(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var Sr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},xr={},Er={};function Cr(e){if(xr[e])return xr[e];if(!Sr[e])return e;var n,t=Sr[e];for(n in t)if(t.hasOwnProperty(n)&&n in Er)return xr[e]=t[n];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete Sr.animationend.animation,delete Sr.animationiteration.animation,delete Sr.animationstart.animation),"TransitionEvent"in window||delete Sr.transitionend.transition);var _r=Cr("animationend"),zr=Cr("animationiteration"),Nr=Cr("animationstart"),Pr=Cr("transitionend"),Lr=new Map,Tr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Mr(e,n){Lr.set(e,n),i(n,[e])}for(var Fr=0;Fr<Tr.length;Fr++){var Dr=Tr[Fr];Mr(Dr.toLowerCase(),"on"+(Dr[0].toUpperCase()+Dr.slice(1)))}Mr(_r,"onAnimationEnd"),Mr(zr,"onAnimationIteration"),Mr(Nr,"onAnimationStart"),Mr("dblclick","onDoubleClick"),Mr("focusin","onFocus"),Mr("focusout","onBlur"),Mr(Pr,"onTransitionEnd"),s("onMouseEnter",["mouseout","mouseover"]),s("onMouseLeave",["mouseout","mouseover"]),s("onPointerEnter",["pointerout","pointerover"]),s("onPointerLeave",["pointerout","pointerover"]),i("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),i("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),i("onBeforeInput",["compositionend","keypress","textInput","paste"]),i("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Or=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Ir(e,n,t){var r=e.type||"unknown-event";e.currentTarget=t,function(e,n,t,r,l,o,u,i,s){if(He.apply(this,arguments),Oe){if(!Oe)throw Error(a(198));var c=Ie;Oe=!1,Ie=null,Ue||(Ue=!0,Ve=c)}}(r,n,void 0,e),e.currentTarget=null}function Ur(e,n){n=0!==(4&n);for(var t=0;t<e.length;t++){var r=e[t],l=r.event;r=r.listeners;e:{var a=void 0;if(n)for(var o=r.length-1;0<=o;o--){var u=r[o],i=u.instance,s=u.currentTarget;if(u=u.listener,i!==a&&l.isPropagationStopped())break e;Ir(l,u,s),a=i}else for(o=0;o<r.length;o++){if(i=(u=r[o]).instance,s=u.currentTarget,u=u.listener,i!==a&&l.isPropagationStopped())break e;Ir(l,u,s),a=i}}}if(Ue)throw e=Ve,Ue=!1,Ve=null,e}function Vr(e,n){var t=n[hl];void 0===t&&(t=n[hl]=new Set);var r=e+"__bubble";t.has(r)||(Qr(n,e,2,!1),t.add(r))}function Ar(e,n,t){var r=0;n&&(r|=4),Qr(t,e,r,n)}var Hr="_reactListening"+Math.random().toString(36).slice(2);function Br(e){if(!e[Hr]){e[Hr]=!0,o.forEach((function(n){"selectionchange"!==n&&(Or.has(n)||Ar(n,!1,e),Ar(n,!0,e))}));var n=9===e.nodeType?e:e.ownerDocument;null===n||n[Hr]||(n[Hr]=!0,Ar("selectionchange",!1,n))}}function Qr(e,n,t,r){switch(Gn(n)){case 1:var l=$n;break;case 4:l=Kn;break;default:l=qn}t=l.bind(null,n,t,e),l=void 0,!Fe||"touchstart"!==n&&"touchmove"!==n&&"wheel"!==n||(l=!0),r?void 0!==l?e.addEventListener(n,t,{capture:!0,passive:l}):e.addEventListener(n,t,!0):void 0!==l?e.addEventListener(n,t,{passive:l}):e.addEventListener(n,t,!1)}function Wr(e,n,t,r,l){var a=r;if(0===(1&n)&&0===(2&n)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var u=r.stateNode.containerInfo;if(u===l||8===u.nodeType&&u.parentNode===l)break;if(4===o)for(o=r.return;null!==o;){var i=o.tag;if((3===i||4===i)&&((i=o.stateNode.containerInfo)===l||8===i.nodeType&&i.parentNode===l))return;o=o.return}for(;null!==u;){if(null===(o=yl(u)))return;if(5===(i=o.tag)||6===i){r=a=o;continue e}u=u.parentNode}}r=r.return}Te((function(){var r=a,l=we(t),o=[];e:{var u=Lr.get(e);if(void 0!==u){var i=ct,s=e;switch(e){case"keypress":if(0===tt(t))break e;case"keydown":case"keyup":i=zt;break;case"focusin":s="focus",i=gt;break;case"focusout":s="blur",i=gt;break;case"beforeblur":case"afterblur":i=gt;break;case"click":if(2===t.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":i=mt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":i=ht;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":i=Pt;break;case _r:case zr:case Nr:i=vt;break;case Pr:i=Lt;break;case"scroll":i=dt;break;case"wheel":i=Mt;break;case"copy":case"cut":case"paste":i=bt;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":i=Nt}var c=0!==(4&n),f=!c&&"scroll"===e,d=c?null!==u?u+"Capture":null:u;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==d&&(null!=(h=Me(m,d))&&c.push(jr(m,h,p)))),f)break;m=m.return}0<c.length&&(u=new i(u,s,null,t,l),o.push({event:u,listeners:c}))}}if(0===(7&n)){if(i="mouseout"===e||"pointerout"===e,(!(u="mouseover"===e||"pointerover"===e)||t===ke||!(s=t.relatedTarget||t.fromElement)||!yl(s)&&!s[ml])&&(i||u)&&(u=l.window===l?l:(u=l.ownerDocument)?u.defaultView||u.parentWindow:window,i?(i=r,null!==(s=(s=t.relatedTarget||t.toElement)?yl(s):null)&&(s!==(f=Be(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(i=null,s=r),i!==s)){if(c=mt,h="onMouseLeave",d="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Nt,h="onPointerLeave",d="onPointerEnter",m="pointer"),f=null==i?u:kl(i),p=null==s?u:kl(s),(u=new c(h,m+"leave",i,t,l)).target=f,u.relatedTarget=p,h=null,yl(l)===r&&((c=new c(d,m+"enter",s,t,l)).target=p,c.relatedTarget=f,h=c),f=h,i&&s)e:{for(d=s,m=0,p=c=i;p;p=Kr(p))m++;for(p=0,h=d;h;h=Kr(h))p++;for(;0<m-p;)c=Kr(c),m--;for(;0<p-m;)d=Kr(d),p--;for(;m--;){if(c===d||null!==d&&c===d.alternate)break e;c=Kr(c),d=Kr(d)}c=null}else c=null;null!==i&&qr(o,u,i,c,!1),null!==s&&null!==f&&qr(o,f,s,c,!0)}if("select"===(i=(u=r?kl(r):window).nodeName&&u.nodeName.toLowerCase())||"input"===i&&"file"===u.type)var g=Xt;else if(Wt(u))if(Gt)g=or;else{g=lr;var v=rr}else(i=u.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===u.type||"radio"===u.type)&&(g=ar);switch(g&&(g=g(e,r))?jt(o,g,t,l):(v&&v(e,u,r),"focusout"===e&&(v=u._wrapperState)&&v.controlled&&"number"===u.type&&ee(u,"number",u.value)),v=r?kl(r):window,e){case"focusin":(Wt(v)||"true"===v.contentEditable)&&(gr=v,vr=r,yr=null);break;case"focusout":yr=vr=gr=null;break;case"mousedown":br=!0;break;case"contextmenu":case"mouseup":case"dragend":br=!1,kr(o,t,l);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":kr(o,t,l)}var y;if(Dt)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Bt?At(e,t)&&(b="onCompositionEnd"):"keydown"===e&&229===t.keyCode&&(b="onCompositionStart");b&&(It&&"ko"!==t.locale&&(Bt||"onCompositionStart"!==b?"onCompositionEnd"===b&&Bt&&(y=nt()):(Jn="value"in(Zn=l)?Zn.value:Zn.textContent,Bt=!0)),0<(v=$r(r,b)).length&&(b=new kt(b,e,null,t,l),o.push({event:b,listeners:v}),y?b.data=y:null!==(y=Ht(t))&&(b.data=y))),(y=Ot?function(e,n){switch(e){case"compositionend":return Ht(n);case"keypress":return 32!==n.which?null:(Vt=!0,Ut);case"textInput":return(e=n.data)===Ut&&Vt?null:e;default:return null}}(e,t):function(e,n){if(Bt)return"compositionend"===e||!Dt&&At(e,n)?(e=nt(),et=Jn=Zn=null,Bt=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return It&&"ko"!==n.locale?null:n.data}}(e,t))&&(0<(r=$r(r,"onBeforeInput")).length&&(l=new kt("onBeforeInput","beforeinput",null,t,l),o.push({event:l,listeners:r}),l.data=y))}Ur(o,n)}))}function jr(e,n,t){return{instance:e,listener:n,currentTarget:t}}function $r(e,n){for(var t=n+"Capture",r=[];null!==e;){var l=e,a=l.stateNode;5===l.tag&&null!==a&&(l=a,null!=(a=Me(e,t))&&r.unshift(jr(e,a,l)),null!=(a=Me(e,n))&&r.push(jr(e,a,l))),e=e.return}return r}function Kr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function qr(e,n,t,r,l){for(var a=n._reactName,o=[];null!==t&&t!==r;){var u=t,i=u.alternate,s=u.stateNode;if(null!==i&&i===r)break;5===u.tag&&null!==s&&(u=s,l?null!=(i=Me(t,a))&&o.unshift(jr(t,i,u)):l||null!=(i=Me(t,a))&&o.push(jr(t,i,u))),t=t.return}0!==o.length&&e.push({event:n,listeners:o})}var Yr=/\r\n?/g,Xr=/\u0000|\uFFFD/g;function Gr(e){return("string"===typeof e?e:""+e).replace(Yr,"\n").replace(Xr,"")}function Zr(e,n,t){if(n=Gr(n),Gr(e)!==n&&t)throw Error(a(425))}function Jr(){}var el=null,nl=null;function tl(e,n){return"textarea"===e||"noscript"===e||"string"===typeof n.children||"number"===typeof n.children||"object"===typeof n.dangerouslySetInnerHTML&&null!==n.dangerouslySetInnerHTML&&null!=n.dangerouslySetInnerHTML.__html}var rl="function"===typeof setTimeout?setTimeout:void 0,ll="function"===typeof clearTimeout?clearTimeout:void 0,al="function"===typeof Promise?Promise:void 0,ol="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof al?function(e){return al.resolve(null).then(e).catch(ul)}:rl;function ul(e){setTimeout((function(){throw e}))}function il(e,n){var t=n,r=0;do{var l=t.nextSibling;if(e.removeChild(t),l&&8===l.nodeType)if("/$"===(t=l.data)){if(0===r)return e.removeChild(l),void Qn(n);r--}else"$"!==t&&"$?"!==t&&"$!"!==t||r++;t=l}while(t);Qn(n)}function sl(e){for(;null!=e;e=e.nextSibling){var n=e.nodeType;if(1===n||3===n)break;if(8===n){if("$"===(n=e.data)||"$!"===n||"$?"===n)break;if("/$"===n)return null}}return e}function cl(e){e=e.previousSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if("$"===t||"$!"===t||"$?"===t){if(0===n)return e;n--}else"/$"===t&&n++}e=e.previousSibling}return null}var fl=Math.random().toString(36).slice(2),dl="__reactFiber$"+fl,pl="__reactProps$"+fl,ml="__reactContainer$"+fl,hl="__reactEvents$"+fl,gl="__reactListeners$"+fl,vl="__reactHandles$"+fl;function yl(e){var n=e[dl];if(n)return n;for(var t=e.parentNode;t;){if(n=t[ml]||t[dl]){if(t=n.alternate,null!==n.child||null!==t&&null!==t.child)for(e=cl(e);null!==e;){if(t=e[dl])return t;e=cl(e)}return n}t=(e=t).parentNode}return null}function bl(e){return!(e=e[dl]||e[ml])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function kl(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function wl(e){return e[pl]||null}var Sl=[],xl=-1;function El(e){return{current:e}}function Cl(e){0>xl||(e.current=Sl[xl],Sl[xl]=null,xl--)}function _l(e,n){xl++,Sl[xl]=e.current,e.current=n}var zl={},Nl=El(zl),Pl=El(!1),Ll=zl;function Tl(e,n){var t=e.type.contextTypes;if(!t)return zl;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in t)a[l]=n[l];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ml(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Fl(){Cl(Pl),Cl(Nl)}function Dl(e,n,t){if(Nl.current!==zl)throw Error(a(168));_l(Nl,n),_l(Pl,t)}function Rl(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,"function"!==typeof r.getChildContext)return t;for(var l in r=r.getChildContext())if(!(l in n))throw Error(a(108,Q(e)||"Unknown",l));return I({},t,r)}function Ol(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||zl,Ll=Nl.current,_l(Nl,e),_l(Pl,Pl.current),!0}function Il(e,n,t){var r=e.stateNode;if(!r)throw Error(a(169));t?(e=Rl(e,n,Ll),r.__reactInternalMemoizedMergedChildContext=e,Cl(Pl),Cl(Nl),_l(Nl,e)):Cl(Pl),_l(Pl,t)}var Ul=null,Vl=!1,Al=!1;function Hl(e){null===Ul?Ul=[e]:Ul.push(e)}function Bl(){if(!Al&&null!==Ul){Al=!0;var e=0,n=kn;try{var t=Ul;for(kn=1;e<t.length;e++){var r=t[e];do{r=r(!0)}while(null!==r)}Ul=null,Vl=!1}catch(l){throw null!==Ul&&(Ul=Ul.slice(e+1)),Ke(Je,Bl),l}finally{kn=n,Al=!1}}return null}var Ql=[],Wl=0,jl=null,$l=0,Kl=[],ql=0,Yl=null,Xl=1,Gl="";function Zl(e,n){Ql[Wl++]=$l,Ql[Wl++]=jl,jl=e,$l=n}function Jl(e,n,t){Kl[ql++]=Xl,Kl[ql++]=Gl,Kl[ql++]=Yl,Yl=e;var r=Xl;e=Gl;var l=32-on(r)-1;r&=~(1<<l),t+=1;var a=32-on(n)+l;if(30<a){var o=l-l%5;a=(r&(1<<o)-1).toString(32),r>>=o,l-=o,Xl=1<<32-on(n)+l|t<<l|r,Gl=a+e}else Xl=1<<a|t<<l|r,Gl=e}function ea(e){null!==e.return&&(Zl(e,1),Jl(e,1,0))}function na(e){for(;e===jl;)jl=Ql[--Wl],Ql[Wl]=null,$l=Ql[--Wl],Ql[Wl]=null;for(;e===Yl;)Yl=Kl[--ql],Kl[ql]=null,Gl=Kl[--ql],Kl[ql]=null,Xl=Kl[--ql],Kl[ql]=null}var ta=null,ra=null,la=!1,aa=null;function oa(e,n){var t=Ms(5,null,null,0);t.elementType="DELETED",t.stateNode=n,t.return=e,null===(n=e.deletions)?(e.deletions=[t],e.flags|=16):n.push(t)}function ua(e,n){switch(e.tag){case 5:var t=e.type;return null!==(n=1!==n.nodeType||t.toLowerCase()!==n.nodeName.toLowerCase()?null:n)&&(e.stateNode=n,ta=e,ra=sl(n.firstChild),!0);case 6:return null!==(n=""===e.pendingProps||3!==n.nodeType?null:n)&&(e.stateNode=n,ta=e,ra=null,!0);case 13:return null!==(n=8!==n.nodeType?null:n)&&(t=null!==Yl?{id:Xl,overflow:Gl}:null,e.memoizedState={dehydrated:n,treeContext:t,retryLane:1073741824},(t=Ms(18,null,null,0)).stateNode=n,t.return=e,e.child=t,ta=e,ra=null,!0);default:return!1}}function ia(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function sa(e){if(la){var n=ra;if(n){var t=n;if(!ua(e,n)){if(ia(e))throw Error(a(418));n=sl(t.nextSibling);var r=ta;n&&ua(e,n)?oa(r,t):(e.flags=-4097&e.flags|2,la=!1,ta=e)}}else{if(ia(e))throw Error(a(418));e.flags=-4097&e.flags|2,la=!1,ta=e}}}function ca(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ta=e}function fa(e){if(e!==ta)return!1;if(!la)return ca(e),la=!0,!1;var n;if((n=3!==e.tag)&&!(n=5!==e.tag)&&(n="head"!==(n=e.type)&&"body"!==n&&!tl(e.type,e.memoizedProps)),n&&(n=ra)){if(ia(e))throw da(),Error(a(418));for(;n;)oa(e,n),n=sl(n.nextSibling)}if(ca(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,n=0;e;){if(8===e.nodeType){var t=e.data;if("/$"===t){if(0===n){ra=sl(e.nextSibling);break e}n--}else"$"!==t&&"$!"!==t&&"$?"!==t||n++}e=e.nextSibling}ra=null}}else ra=ta?sl(e.stateNode.nextSibling):null;return!0}function da(){for(var e=ra;e;)e=sl(e.nextSibling)}function pa(){ra=ta=null,la=!1}function ma(e){null===aa?aa=[e]:aa.push(e)}var ha=k.ReactCurrentBatchConfig;function ga(e,n){if(e&&e.defaultProps){for(var t in n=I({},n),e=e.defaultProps)void 0===n[t]&&(n[t]=e[t]);return n}return n}var va=El(null),ya=null,ba=null,ka=null;function wa(){ka=ba=ya=null}function Sa(e){var n=va.current;Cl(va),e._currentValue=n}function xa(e,n,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,null!==r&&(r.childLanes|=n)):null!==r&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function Ea(e,n){ya=e,ka=ba=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&n)&&(ku=!0),e.firstContext=null)}function Ca(e){var n=e._currentValue;if(ka!==e)if(e={context:e,memoizedValue:n,next:null},null===ba){if(null===ya)throw Error(a(308));ba=e,ya.dependencies={lanes:0,firstContext:e}}else ba=ba.next=e;return n}var _a=null;function za(e){null===_a?_a=[e]:_a.push(e)}function Na(e,n,t,r){var l=n.interleaved;return null===l?(t.next=t,za(n)):(t.next=l.next,l.next=t),n.interleaved=t,Pa(e,r)}function Pa(e,n){e.lanes|=n;var t=e.alternate;for(null!==t&&(t.lanes|=n),t=e,e=e.return;null!==e;)e.childLanes|=n,null!==(t=e.alternate)&&(t.childLanes|=n),t=e,e=e.return;return 3===t.tag?t.stateNode:null}var La=!1;function Ta(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ma(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Fa(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Da(e,n,t){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&Pi)){var l=r.pending;return null===l?n.next=n:(n.next=l.next,l.next=n),r.pending=n,Pa(e,t)}return null===(l=r.interleaved)?(n.next=n,za(r)):(n.next=l.next,l.next=n),r.interleaved=n,Pa(e,t)}function Ra(e,n,t){if(null!==(n=n.updateQueue)&&(n=n.shared,0!==(4194240&t))){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,bn(e,t)}}function Oa(e,n){var t=e.updateQueue,r=e.alternate;if(null!==r&&t===(r=r.updateQueue)){var l=null,a=null;if(null!==(t=t.firstBaseUpdate)){do{var o={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};null===a?l=a=o:a=a.next=o,t=t.next}while(null!==t);null===a?l=a=n:a=a.next=n}else l=a=n;return t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=t)}null===(e=t.lastBaseUpdate)?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function Ia(e,n,t,r){var l=e.updateQueue;La=!1;var a=l.firstBaseUpdate,o=l.lastBaseUpdate,u=l.shared.pending;if(null!==u){l.shared.pending=null;var i=u,s=i.next;i.next=null,null===o?a=s:o.next=s,o=i;var c=e.alternate;null!==c&&((u=(c=c.updateQueue).lastBaseUpdate)!==o&&(null===u?c.firstBaseUpdate=s:u.next=s,c.lastBaseUpdate=i))}if(null!==a){var f=l.baseState;for(o=0,c=s=i=null,u=a;;){var d=u.lane,p=u.eventTime;if((r&d)===d){null!==c&&(c=c.next={eventTime:p,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var m=e,h=u;switch(d=n,p=t,h.tag){case 1:if("function"===typeof(m=h.payload)){f=m.call(p,f,d);break e}f=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null===(d="function"===typeof(m=h.payload)?m.call(p,f,d):m)||void 0===d)break e;f=I({},f,d);break e;case 2:La=!0}}null!==u.callback&&0!==u.lane&&(e.flags|=64,null===(d=l.effects)?l.effects=[u]:d.push(u))}else p={eventTime:p,lane:d,tag:u.tag,payload:u.payload,callback:u.callback,next:null},null===c?(s=c=p,i=f):c=c.next=p,o|=d;if(null===(u=u.next)){if(null===(u=l.shared.pending))break;u=(d=u).next,d.next=null,l.lastBaseUpdate=d,l.shared.pending=null}}if(null===c&&(i=f),l.baseState=i,l.firstBaseUpdate=s,l.lastBaseUpdate=c,null!==(n=l.shared.interleaved)){l=n;do{o|=l.lane,l=l.next}while(l!==n)}else null===a&&(l.shared.lanes=0);Ii|=o,e.lanes=o,e.memoizedState=f}}function Ua(e,n,t){if(e=n.effects,n.effects=null,null!==e)for(n=0;n<e.length;n++){var r=e[n],l=r.callback;if(null!==l){if(r.callback=null,r=t,"function"!==typeof l)throw Error(a(191,l));l.call(r)}}}var Va=(new r.Component).refs;function Aa(e,n,t,r){t=null===(t=t(r,n=e.memoizedState))||void 0===t?n:I({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var Ha={isMounted:function(e){return!!(e=e._reactInternals)&&Be(e)===e},enqueueSetState:function(e,n,t){e=e._reactInternals;var r=ns(),l=ts(e),a=Fa(r,l);a.payload=n,void 0!==t&&null!==t&&(a.callback=t),null!==(n=Da(e,a,l))&&(rs(n,e,l,r),Ra(n,e,l))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=ns(),l=ts(e),a=Fa(r,l);a.tag=1,a.payload=n,void 0!==t&&null!==t&&(a.callback=t),null!==(n=Da(e,a,l))&&(rs(n,e,l,r),Ra(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=ns(),r=ts(e),l=Fa(t,r);l.tag=2,void 0!==n&&null!==n&&(l.callback=n),null!==(n=Da(e,l,r))&&(rs(n,e,r,t),Ra(n,e,r))}};function Ba(e,n,t,r,l,a,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,o):!n.prototype||!n.prototype.isPureReactComponent||(!ir(t,r)||!ir(l,a))}function Qa(e,n,t){var r=!1,l=zl,a=n.contextType;return"object"===typeof a&&null!==a?a=Ca(a):(l=Ml(n)?Ll:Nl.current,a=(r=null!==(r=n.contextTypes)&&void 0!==r)?Tl(e,l):zl),n=new n(t,a),e.memoizedState=null!==n.state&&void 0!==n.state?n.state:null,n.updater=Ha,e.stateNode=n,n._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=a),n}function Wa(e,n,t,r){e=n.state,"function"===typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),"function"===typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&Ha.enqueueReplaceState(n,n.state,null)}function ja(e,n,t,r){var l=e.stateNode;l.props=t,l.state=e.memoizedState,l.refs=Va,Ta(e);var a=n.contextType;"object"===typeof a&&null!==a?l.context=Ca(a):(a=Ml(n)?Ll:Nl.current,l.context=Tl(e,a)),l.state=e.memoizedState,"function"===typeof(a=n.getDerivedStateFromProps)&&(Aa(e,n,a,t),l.state=e.memoizedState),"function"===typeof n.getDerivedStateFromProps||"function"===typeof l.getSnapshotBeforeUpdate||"function"!==typeof l.UNSAFE_componentWillMount&&"function"!==typeof l.componentWillMount||(n=l.state,"function"===typeof l.componentWillMount&&l.componentWillMount(),"function"===typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount(),n!==l.state&&Ha.enqueueReplaceState(l,l.state,null),Ia(e,t,l,r),l.state=e.memoizedState),"function"===typeof l.componentDidMount&&(e.flags|=4194308)}function $a(e,n,t){if(null!==(e=t.ref)&&"function"!==typeof e&&"object"!==typeof e){if(t._owner){if(t=t._owner){if(1!==t.tag)throw Error(a(309));var r=t.stateNode}if(!r)throw Error(a(147,e));var l=r,o=""+e;return null!==n&&null!==n.ref&&"function"===typeof n.ref&&n.ref._stringRef===o?n.ref:(n=function(e){var n=l.refs;n===Va&&(n=l.refs={}),null===e?delete n[o]:n[o]=e},n._stringRef=o,n)}if("string"!==typeof e)throw Error(a(284));if(!t._owner)throw Error(a(290,e))}return e}function Ka(e,n){throw e=Object.prototype.toString.call(n),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function qa(e){return(0,e._init)(e._payload)}function Ya(e){function n(n,t){if(e){var r=n.deletions;null===r?(n.deletions=[t],n.flags|=16):r.push(t)}}function t(t,r){if(!e)return null;for(;null!==r;)n(t,r),r=r.sibling;return null}function r(e,n){for(e=new Map;null!==n;)null!==n.key?e.set(n.key,n):e.set(n.index,n),n=n.sibling;return e}function l(e,n){return(e=Ds(e,n)).index=0,e.sibling=null,e}function o(n,t,r){return n.index=r,e?null!==(r=n.alternate)?(r=r.index)<t?(n.flags|=2,t):r:(n.flags|=2,t):(n.flags|=1048576,t)}function u(n){return e&&null===n.alternate&&(n.flags|=2),n}function i(e,n,t,r){return null===n||6!==n.tag?((n=Us(t,e.mode,r)).return=e,n):((n=l(n,t)).return=e,n)}function s(e,n,t,r){var a=t.type;return a===x?f(e,n,t.props.children,r,t.key):null!==n&&(n.elementType===a||"object"===typeof a&&null!==a&&a.$$typeof===M&&qa(a)===n.type)?((r=l(n,t.props)).ref=$a(e,n,t),r.return=e,r):((r=Rs(t.type,t.key,t.props,null,e.mode,r)).ref=$a(e,n,t),r.return=e,r)}function c(e,n,t,r){return null===n||4!==n.tag||n.stateNode.containerInfo!==t.containerInfo||n.stateNode.implementation!==t.implementation?((n=Vs(t,e.mode,r)).return=e,n):((n=l(n,t.children||[])).return=e,n)}function f(e,n,t,r,a){return null===n||7!==n.tag?((n=Os(t,e.mode,r,a)).return=e,n):((n=l(n,t)).return=e,n)}function d(e,n,t){if("string"===typeof n&&""!==n||"number"===typeof n)return(n=Us(""+n,e.mode,t)).return=e,n;if("object"===typeof n&&null!==n){switch(n.$$typeof){case w:return(t=Rs(n.type,n.key,n.props,null,e.mode,t)).ref=$a(e,null,n),t.return=e,t;case S:return(n=Vs(n,e.mode,t)).return=e,n;case M:return d(e,(0,n._init)(n._payload),t)}if(ne(n)||R(n))return(n=Os(n,e.mode,t,null)).return=e,n;Ka(e,n)}return null}function p(e,n,t,r){var l=null!==n?n.key:null;if("string"===typeof t&&""!==t||"number"===typeof t)return null!==l?null:i(e,n,""+t,r);if("object"===typeof t&&null!==t){switch(t.$$typeof){case w:return t.key===l?s(e,n,t,r):null;case S:return t.key===l?c(e,n,t,r):null;case M:return p(e,n,(l=t._init)(t._payload),r)}if(ne(t)||R(t))return null!==l?null:f(e,n,t,r,null);Ka(e,t)}return null}function m(e,n,t,r,l){if("string"===typeof r&&""!==r||"number"===typeof r)return i(n,e=e.get(t)||null,""+r,l);if("object"===typeof r&&null!==r){switch(r.$$typeof){case w:return s(n,e=e.get(null===r.key?t:r.key)||null,r,l);case S:return c(n,e=e.get(null===r.key?t:r.key)||null,r,l);case M:return m(e,n,t,(0,r._init)(r._payload),l)}if(ne(r)||R(r))return f(n,e=e.get(t)||null,r,l,null);Ka(n,r)}return null}function h(l,a,u,i){for(var s=null,c=null,f=a,h=a=0,g=null;null!==f&&h<u.length;h++){f.index>h?(g=f,f=null):g=f.sibling;var v=p(l,f,u[h],i);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&n(l,f),a=o(v,a,h),null===c?s=v:c.sibling=v,c=v,f=g}if(h===u.length)return t(l,f),la&&Zl(l,h),s;if(null===f){for(;h<u.length;h++)null!==(f=d(l,u[h],i))&&(a=o(f,a,h),null===c?s=f:c.sibling=f,c=f);return la&&Zl(l,h),s}for(f=r(l,f);h<u.length;h++)null!==(g=m(f,l,h,u[h],i))&&(e&&null!==g.alternate&&f.delete(null===g.key?h:g.key),a=o(g,a,h),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return n(l,e)})),la&&Zl(l,h),s}function g(l,u,i,s){var c=R(i);if("function"!==typeof c)throw Error(a(150));if(null==(i=c.call(i)))throw Error(a(151));for(var f=c=null,h=u,g=u=0,v=null,y=i.next();null!==h&&!y.done;g++,y=i.next()){h.index>g?(v=h,h=null):v=h.sibling;var b=p(l,h,y.value,s);if(null===b){null===h&&(h=v);break}e&&h&&null===b.alternate&&n(l,h),u=o(b,u,g),null===f?c=b:f.sibling=b,f=b,h=v}if(y.done)return t(l,h),la&&Zl(l,g),c;if(null===h){for(;!y.done;g++,y=i.next())null!==(y=d(l,y.value,s))&&(u=o(y,u,g),null===f?c=y:f.sibling=y,f=y);return la&&Zl(l,g),c}for(h=r(l,h);!y.done;g++,y=i.next())null!==(y=m(h,l,g,y.value,s))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),u=o(y,u,g),null===f?c=y:f.sibling=y,f=y);return e&&h.forEach((function(e){return n(l,e)})),la&&Zl(l,g),c}return function e(r,a,o,i){if("object"===typeof o&&null!==o&&o.type===x&&null===o.key&&(o=o.props.children),"object"===typeof o&&null!==o){switch(o.$$typeof){case w:e:{for(var s=o.key,c=a;null!==c;){if(c.key===s){if((s=o.type)===x){if(7===c.tag){t(r,c.sibling),(a=l(c,o.props.children)).return=r,r=a;break e}}else if(c.elementType===s||"object"===typeof s&&null!==s&&s.$$typeof===M&&qa(s)===c.type){t(r,c.sibling),(a=l(c,o.props)).ref=$a(r,c,o),a.return=r,r=a;break e}t(r,c);break}n(r,c),c=c.sibling}o.type===x?((a=Os(o.props.children,r.mode,i,o.key)).return=r,r=a):((i=Rs(o.type,o.key,o.props,null,r.mode,i)).ref=$a(r,a,o),i.return=r,r=i)}return u(r);case S:e:{for(c=o.key;null!==a;){if(a.key===c){if(4===a.tag&&a.stateNode.containerInfo===o.containerInfo&&a.stateNode.implementation===o.implementation){t(r,a.sibling),(a=l(a,o.children||[])).return=r,r=a;break e}t(r,a);break}n(r,a),a=a.sibling}(a=Vs(o,r.mode,i)).return=r,r=a}return u(r);case M:return e(r,a,(c=o._init)(o._payload),i)}if(ne(o))return h(r,a,o,i);if(R(o))return g(r,a,o,i);Ka(r,o)}return"string"===typeof o&&""!==o||"number"===typeof o?(o=""+o,null!==a&&6===a.tag?(t(r,a.sibling),(a=l(a,o)).return=r,r=a):(t(r,a),(a=Us(o,r.mode,i)).return=r,r=a),u(r)):t(r,a)}}var Xa=Ya(!0),Ga=Ya(!1),Za={},Ja=El(Za),eo=El(Za),no=El(Za);function to(e){if(e===Za)throw Error(a(174));return e}function ro(e,n){switch(_l(no,n),_l(eo,e),_l(Ja,Za),e=n.nodeType){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:ie(null,"");break;default:n=ie(n=(e=8===e?n.parentNode:n).namespaceURI||null,e=e.tagName)}Cl(Ja),_l(Ja,n)}function lo(){Cl(Ja),Cl(eo),Cl(no)}function ao(e){to(no.current);var n=to(Ja.current),t=ie(n,e.type);n!==t&&(_l(eo,e),_l(Ja,t))}function oo(e){eo.current===e&&(Cl(Ja),Cl(eo))}var uo=El(0);function io(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||"$?"===t.data||"$!"===t.data))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var so=[];function co(){for(var e=0;e<so.length;e++)so[e]._workInProgressVersionPrimary=null;so.length=0}var fo=k.ReactCurrentDispatcher,po=k.ReactCurrentBatchConfig,mo=0,ho=null,go=null,vo=null,yo=!1,bo=!1,ko=0,wo=0;function So(){throw Error(a(321))}function xo(e,n){if(null===n)return!1;for(var t=0;t<n.length&&t<e.length;t++)if(!ur(e[t],n[t]))return!1;return!0}function Eo(e,n,t,r,l,o){if(mo=o,ho=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,fo.current=null===e||null===e.memoizedState?uu:iu,e=t(r,l),bo){o=0;do{if(bo=!1,ko=0,25<=o)throw Error(a(301));o+=1,vo=go=null,n.updateQueue=null,fo.current=su,e=t(r,l)}while(bo)}if(fo.current=ou,n=null!==go&&null!==go.next,mo=0,vo=go=ho=null,yo=!1,n)throw Error(a(300));return e}function Co(){var e=0!==ko;return ko=0,e}function _o(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===vo?ho.memoizedState=vo=e:vo=vo.next=e,vo}function zo(){if(null===go){var e=ho.alternate;e=null!==e?e.memoizedState:null}else e=go.next;var n=null===vo?ho.memoizedState:vo.next;if(null!==n)vo=n,go=e;else{if(null===e)throw Error(a(310));e={memoizedState:(go=e).memoizedState,baseState:go.baseState,baseQueue:go.baseQueue,queue:go.queue,next:null},null===vo?ho.memoizedState=vo=e:vo=vo.next=e}return vo}function No(e,n){return"function"===typeof n?n(e):n}function Po(e){var n=zo(),t=n.queue;if(null===t)throw Error(a(311));t.lastRenderedReducer=e;var r=go,l=r.baseQueue,o=t.pending;if(null!==o){if(null!==l){var u=l.next;l.next=o.next,o.next=u}r.baseQueue=l=o,t.pending=null}if(null!==l){o=l.next,r=r.baseState;var i=u=null,s=null,c=o;do{var f=c.lane;if((mo&f)===f)null!==s&&(s=s.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var d={lane:f,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===s?(i=s=d,u=r):s=s.next=d,ho.lanes|=f,Ii|=f}c=c.next}while(null!==c&&c!==o);null===s?u=r:s.next=i,ur(r,n.memoizedState)||(ku=!0),n.memoizedState=r,n.baseState=u,n.baseQueue=s,t.lastRenderedState=r}if(null!==(e=t.interleaved)){l=e;do{o=l.lane,ho.lanes|=o,Ii|=o,l=l.next}while(l!==e)}else null===l&&(t.lanes=0);return[n.memoizedState,t.dispatch]}function Lo(e){var n=zo(),t=n.queue;if(null===t)throw Error(a(311));t.lastRenderedReducer=e;var r=t.dispatch,l=t.pending,o=n.memoizedState;if(null!==l){t.pending=null;var u=l=l.next;do{o=e(o,u.action),u=u.next}while(u!==l);ur(o,n.memoizedState)||(ku=!0),n.memoizedState=o,null===n.baseQueue&&(n.baseState=o),t.lastRenderedState=o}return[o,r]}function To(){}function Mo(e,n){var t=ho,r=zo(),l=n(),o=!ur(r.memoizedState,l);if(o&&(r.memoizedState=l,ku=!0),r=r.queue,Wo(Ro.bind(null,t,r,e),[e]),r.getSnapshot!==n||o||null!==vo&&1&vo.memoizedState.tag){if(t.flags|=2048,Vo(9,Do.bind(null,t,r,l,n),void 0,null),null===Li)throw Error(a(349));0!==(30&mo)||Fo(t,n,l)}return l}function Fo(e,n,t){e.flags|=16384,e={getSnapshot:n,value:t},null===(n=ho.updateQueue)?(n={lastEffect:null,stores:null},ho.updateQueue=n,n.stores=[e]):null===(t=n.stores)?n.stores=[e]:t.push(e)}function Do(e,n,t,r){n.value=t,n.getSnapshot=r,Oo(n)&&Io(e)}function Ro(e,n,t){return t((function(){Oo(n)&&Io(e)}))}function Oo(e){var n=e.getSnapshot;e=e.value;try{var t=n();return!ur(e,t)}catch(r){return!0}}function Io(e){var n=Pa(e,1);null!==n&&rs(n,e,1,-1)}function Uo(e){var n=_o();return"function"===typeof e&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:e},n.queue=e,e=e.dispatch=tu.bind(null,ho,e),[n.memoizedState,e]}function Vo(e,n,t,r){return e={tag:e,create:n,destroy:t,deps:r,next:null},null===(n=ho.updateQueue)?(n={lastEffect:null,stores:null},ho.updateQueue=n,n.lastEffect=e.next=e):null===(t=n.lastEffect)?n.lastEffect=e.next=e:(r=t.next,t.next=e,e.next=r,n.lastEffect=e),e}function Ao(){return zo().memoizedState}function Ho(e,n,t,r){var l=_o();ho.flags|=e,l.memoizedState=Vo(1|n,t,void 0,void 0===r?null:r)}function Bo(e,n,t,r){var l=zo();r=void 0===r?null:r;var a=void 0;if(null!==go){var o=go.memoizedState;if(a=o.destroy,null!==r&&xo(r,o.deps))return void(l.memoizedState=Vo(n,t,a,r))}ho.flags|=e,l.memoizedState=Vo(1|n,t,a,r)}function Qo(e,n){return Ho(8390656,8,e,n)}function Wo(e,n){return Bo(2048,8,e,n)}function jo(e,n){return Bo(4,2,e,n)}function $o(e,n){return Bo(4,4,e,n)}function Ko(e,n){return"function"===typeof n?(e=e(),n(e),function(){n(null)}):null!==n&&void 0!==n?(e=e(),n.current=e,function(){n.current=null}):void 0}function qo(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,Bo(4,4,Ko.bind(null,n,e),t)}function Yo(){}function Xo(e,n){var t=zo();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&xo(n,r[1])?r[0]:(t.memoizedState=[e,n],e)}function Go(e,n){var t=zo();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&xo(n,r[1])?r[0]:(e=e(),t.memoizedState=[e,n],e)}function Zo(e,n,t){return 0===(21&mo)?(e.baseState&&(e.baseState=!1,ku=!0),e.memoizedState=t):(ur(t,n)||(t=gn(),ho.lanes|=t,Ii|=t,e.baseState=!0),n)}function Jo(e,n){var t=kn;kn=0!==t&&4>t?t:4,e(!0);var r=po.transition;po.transition={};try{e(!1),n()}finally{kn=t,po.transition=r}}function eu(){return zo().memoizedState}function nu(e,n,t){var r=ts(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},ru(e))lu(n,t);else if(null!==(t=Na(e,n,t,r))){rs(t,e,r,ns()),au(t,n,r)}}function tu(e,n,t){var r=ts(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(ru(e))lu(n,l);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=n.lastRenderedReducer))try{var o=n.lastRenderedState,u=a(o,t);if(l.hasEagerState=!0,l.eagerState=u,ur(u,o)){var i=n.interleaved;return null===i?(l.next=l,za(n)):(l.next=i.next,i.next=l),void(n.interleaved=l)}}catch(s){}null!==(t=Na(e,n,l,r))&&(rs(t,e,r,l=ns()),au(t,n,r))}}function ru(e){var n=e.alternate;return e===ho||null!==n&&n===ho}function lu(e,n){bo=yo=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function au(e,n,t){if(0!==(4194240&t)){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,bn(e,t)}}var ou={readContext:Ca,useCallback:So,useContext:So,useEffect:So,useImperativeHandle:So,useInsertionEffect:So,useLayoutEffect:So,useMemo:So,useReducer:So,useRef:So,useState:So,useDebugValue:So,useDeferredValue:So,useTransition:So,useMutableSource:So,useSyncExternalStore:So,useId:So,unstable_isNewReconciler:!1},uu={readContext:Ca,useCallback:function(e,n){return _o().memoizedState=[e,void 0===n?null:n],e},useContext:Ca,useEffect:Qo,useImperativeHandle:function(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,Ho(4194308,4,Ko.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Ho(4194308,4,e,n)},useInsertionEffect:function(e,n){return Ho(4,2,e,n)},useMemo:function(e,n){var t=_o();return n=void 0===n?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=_o();return n=void 0!==t?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=nu.bind(null,ho,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},_o().memoizedState=e},useState:Uo,useDebugValue:Yo,useDeferredValue:function(e){return _o().memoizedState=e},useTransition:function(){var e=Uo(!1),n=e[0];return e=Jo.bind(null,e[1]),_o().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=ho,l=_o();if(la){if(void 0===t)throw Error(a(407));t=t()}else{if(t=n(),null===Li)throw Error(a(349));0!==(30&mo)||Fo(r,n,t)}l.memoizedState=t;var o={value:t,getSnapshot:n};return l.queue=o,Qo(Ro.bind(null,r,o,e),[e]),r.flags|=2048,Vo(9,Do.bind(null,r,o,t,n),void 0,null),t},useId:function(){var e=_o(),n=Li.identifierPrefix;if(la){var t=Gl;n=":"+n+"R"+(t=(Xl&~(1<<32-on(Xl)-1)).toString(32)+t),0<(t=ko++)&&(n+="H"+t.toString(32)),n+=":"}else n=":"+n+"r"+(t=wo++).toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},iu={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Wo,useImperativeHandle:qo,useInsertionEffect:jo,useLayoutEffect:$o,useMemo:Go,useReducer:Po,useRef:Ao,useState:function(){return Po(No)},useDebugValue:Yo,useDeferredValue:function(e){return Zo(zo(),go.memoizedState,e)},useTransition:function(){return[Po(No)[0],zo().memoizedState]},useMutableSource:To,useSyncExternalStore:Mo,useId:eu,unstable_isNewReconciler:!1},su={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Wo,useImperativeHandle:qo,useInsertionEffect:jo,useLayoutEffect:$o,useMemo:Go,useReducer:Lo,useRef:Ao,useState:function(){return Lo(No)},useDebugValue:Yo,useDeferredValue:function(e){var n=zo();return null===go?n.memoizedState=e:Zo(n,go.memoizedState,e)},useTransition:function(){return[Lo(No)[0],zo().memoizedState]},useMutableSource:To,useSyncExternalStore:Mo,useId:eu,unstable_isNewReconciler:!1};function cu(e,n){try{var t="",r=n;do{t+=H(r),r=r.return}while(r);var l=t}catch(a){l="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:n,stack:l,digest:null}}function fu(e,n,t){return{value:e,source:null,stack:null!=t?t:null,digest:null!=n?n:null}}function du(e,n){try{console.error(n.value)}catch(t){setTimeout((function(){throw t}))}}var pu="function"===typeof WeakMap?WeakMap:Map;function mu(e,n,t){(t=Fa(-1,t)).tag=3,t.payload={element:null};var r=n.value;return t.callback=function(){ji||(ji=!0,$i=r),du(0,n)},t}function hu(e,n,t){(t=Fa(-1,t)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var l=n.value;t.payload=function(){return r(l)},t.callback=function(){du(0,n)}}var a=e.stateNode;return null!==a&&"function"===typeof a.componentDidCatch&&(t.callback=function(){du(0,n),"function"!==typeof r&&(null===Ki?Ki=new Set([this]):Ki.add(this));var e=n.stack;this.componentDidCatch(n.value,{componentStack:null!==e?e:""})}),t}function gu(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new pu;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(l.add(t),e=_s.bind(null,e,n,t),n.then(e,e))}function vu(e){do{var n;if((n=13===e.tag)&&(n=null===(n=e.memoizedState)||null!==n.dehydrated),n)return e;e=e.return}while(null!==e);return null}function yu(e,n,t,r,l){return 0===(1&e.mode)?(e===n?e.flags|=65536:(e.flags|=128,t.flags|=131072,t.flags&=-52805,1===t.tag&&(null===t.alternate?t.tag=17:((n=Fa(-1,1)).tag=2,Da(t,n,1))),t.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var bu=k.ReactCurrentOwner,ku=!1;function wu(e,n,t,r){n.child=null===e?Ga(n,null,t,r):Xa(n,e.child,t,r)}function Su(e,n,t,r,l){t=t.render;var a=n.ref;return Ea(n,l),r=Eo(e,n,t,r,a,l),t=Co(),null===e||ku?(la&&t&&ea(n),n.flags|=1,wu(e,n,r,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ju(e,n,l))}function xu(e,n,t,r,l){if(null===e){var a=t.type;return"function"!==typeof a||Fs(a)||void 0!==a.defaultProps||null!==t.compare||void 0!==t.defaultProps?((e=Rs(t.type,null,r,n,n.mode,l)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,Eu(e,n,a,r,l))}if(a=e.child,0===(e.lanes&l)){var o=a.memoizedProps;if((t=null!==(t=t.compare)?t:ir)(o,r)&&e.ref===n.ref)return ju(e,n,l)}return n.flags|=1,(e=Ds(a,r)).ref=n.ref,e.return=n,n.child=e}function Eu(e,n,t,r,l){if(null!==e){var a=e.memoizedProps;if(ir(a,r)&&e.ref===n.ref){if(ku=!1,n.pendingProps=r=a,0===(e.lanes&l))return n.lanes=e.lanes,ju(e,n,l);0!==(131072&e.flags)&&(ku=!0)}}return zu(e,n,t,r,l)}function Cu(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&n.mode))n.memoizedState={baseLanes:0,cachePool:null,transitions:null},_l(Di,Fi),Fi|=t;else{if(0===(1073741824&t))return e=null!==a?a.baseLanes|t:t,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,_l(Di,Fi),Fi|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:t,_l(Di,Fi),Fi|=r}else null!==a?(r=a.baseLanes|t,n.memoizedState=null):r=t,_l(Di,Fi),Fi|=r;return wu(e,n,l,t),n.child}function _u(e,n){var t=n.ref;(null===e&&null!==t||null!==e&&e.ref!==t)&&(n.flags|=512,n.flags|=2097152)}function zu(e,n,t,r,l){var a=Ml(t)?Ll:Nl.current;return a=Tl(n,a),Ea(n,l),t=Eo(e,n,t,r,a,l),r=Co(),null===e||ku?(la&&r&&ea(n),n.flags|=1,wu(e,n,t,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ju(e,n,l))}function Nu(e,n,t,r,l){if(Ml(t)){var a=!0;Ol(n)}else a=!1;if(Ea(n,l),null===n.stateNode)Wu(e,n),Qa(n,t,r),ja(n,t,r,l),r=!0;else if(null===e){var o=n.stateNode,u=n.memoizedProps;o.props=u;var i=o.context,s=t.contextType;"object"===typeof s&&null!==s?s=Ca(s):s=Tl(n,s=Ml(t)?Ll:Nl.current);var c=t.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof o.getSnapshotBeforeUpdate;f||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==r||i!==s)&&Wa(n,o,r,s),La=!1;var d=n.memoizedState;o.state=d,Ia(n,r,o,l),i=n.memoizedState,u!==r||d!==i||Pl.current||La?("function"===typeof c&&(Aa(n,t,c,r),i=n.memoizedState),(u=La||Ba(n,t,u,r,d,i,s))?(f||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(n.flags|=4194308)):("function"===typeof o.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=i),o.props=r,o.state=i,o.context=s,r=u):("function"===typeof o.componentDidMount&&(n.flags|=4194308),r=!1)}else{o=n.stateNode,Ma(e,n),u=n.memoizedProps,s=n.type===n.elementType?u:ga(n.type,u),o.props=s,f=n.pendingProps,d=o.context,"object"===typeof(i=t.contextType)&&null!==i?i=Ca(i):i=Tl(n,i=Ml(t)?Ll:Nl.current);var p=t.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==f||d!==i)&&Wa(n,o,r,i),La=!1,d=n.memoizedState,o.state=d,Ia(n,r,o,l);var m=n.memoizedState;u!==f||d!==m||Pl.current||La?("function"===typeof p&&(Aa(n,t,p,r),m=n.memoizedState),(s=La||Ba(n,t,s,r,d,m,i)||!1)?(c||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,m,i),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,m,i)),"function"===typeof o.componentDidUpdate&&(n.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=m),o.props=r,o.state=m,o.context=i,r=s):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return Pu(e,n,t,r,a,l)}function Pu(e,n,t,r,l,a){_u(e,n);var o=0!==(128&n.flags);if(!r&&!o)return l&&Il(n,t,!1),ju(e,n,a);r=n.stateNode,bu.current=n;var u=o&&"function"!==typeof t.getDerivedStateFromError?null:r.render();return n.flags|=1,null!==e&&o?(n.child=Xa(n,e.child,null,a),n.child=Xa(n,null,u,a)):wu(e,n,u,a),n.memoizedState=r.state,l&&Il(n,t,!0),n.child}function Lu(e){var n=e.stateNode;n.pendingContext?Dl(0,n.pendingContext,n.pendingContext!==n.context):n.context&&Dl(0,n.context,!1),ro(e,n.containerInfo)}function Tu(e,n,t,r,l){return pa(),ma(l),n.flags|=256,wu(e,n,t,r),n.child}var Mu,Fu,Du,Ru,Ou={dehydrated:null,treeContext:null,retryLane:0};function Iu(e){return{baseLanes:e,cachePool:null,transitions:null}}function Uu(e,n,t){var r,l=n.pendingProps,o=uo.current,u=!1,i=0!==(128&n.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!==(2&o)),r?(u=!0,n.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),_l(uo,1&o),null===e)return sa(n),null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&n.mode)?n.lanes=1:"$!"===e.data?n.lanes=8:n.lanes=1073741824,null):(i=l.children,e=l.fallback,u?(l=n.mode,u=n.child,i={mode:"hidden",children:i},0===(1&l)&&null!==u?(u.childLanes=0,u.pendingProps=i):u=Is(i,l,0,null),e=Os(e,l,t,null),u.return=n,e.return=n,u.sibling=e,n.child=u,n.child.memoizedState=Iu(t),n.memoizedState=Ou,e):Vu(n,i));if(null!==(o=e.memoizedState)&&null!==(r=o.dehydrated))return function(e,n,t,r,l,o,u){if(t)return 256&n.flags?(n.flags&=-257,Au(e,n,u,r=fu(Error(a(422))))):null!==n.memoizedState?(n.child=e.child,n.flags|=128,null):(o=r.fallback,l=n.mode,r=Is({mode:"visible",children:r.children},l,0,null),(o=Os(o,l,u,null)).flags|=2,r.return=n,o.return=n,r.sibling=o,n.child=r,0!==(1&n.mode)&&Xa(n,e.child,null,u),n.child.memoizedState=Iu(u),n.memoizedState=Ou,o);if(0===(1&n.mode))return Au(e,n,u,null);if("$!"===l.data){if(r=l.nextSibling&&l.nextSibling.dataset)var i=r.dgst;return r=i,Au(e,n,u,r=fu(o=Error(a(419)),r,void 0))}if(i=0!==(u&e.childLanes),ku||i){if(null!==(r=Li)){switch(u&-u){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}0!==(l=0!==(l&(r.suspendedLanes|u))?0:l)&&l!==o.retryLane&&(o.retryLane=l,Pa(e,l),rs(r,e,l,-1))}return gs(),Au(e,n,u,r=fu(Error(a(421))))}return"$?"===l.data?(n.flags|=128,n.child=e.child,n=Ns.bind(null,e),l._reactRetry=n,null):(e=o.treeContext,ra=sl(l.nextSibling),ta=n,la=!0,aa=null,null!==e&&(Kl[ql++]=Xl,Kl[ql++]=Gl,Kl[ql++]=Yl,Xl=e.id,Gl=e.overflow,Yl=n),n=Vu(n,r.children),n.flags|=4096,n)}(e,n,i,l,r,o,t);if(u){u=l.fallback,i=n.mode,r=(o=e.child).sibling;var s={mode:"hidden",children:l.children};return 0===(1&i)&&n.child!==o?((l=n.child).childLanes=0,l.pendingProps=s,n.deletions=null):(l=Ds(o,s)).subtreeFlags=14680064&o.subtreeFlags,null!==r?u=Ds(r,u):(u=Os(u,i,t,null)).flags|=2,u.return=n,l.return=n,l.sibling=u,n.child=l,l=u,u=n.child,i=null===(i=e.child.memoizedState)?Iu(t):{baseLanes:i.baseLanes|t,cachePool:null,transitions:i.transitions},u.memoizedState=i,u.childLanes=e.childLanes&~t,n.memoizedState=Ou,l}return e=(u=e.child).sibling,l=Ds(u,{mode:"visible",children:l.children}),0===(1&n.mode)&&(l.lanes=t),l.return=n,l.sibling=null,null!==e&&(null===(t=n.deletions)?(n.deletions=[e],n.flags|=16):t.push(e)),n.child=l,n.memoizedState=null,l}function Vu(e,n){return(n=Is({mode:"visible",children:n},e.mode,0,null)).return=e,e.child=n}function Au(e,n,t,r){return null!==r&&ma(r),Xa(n,e.child,null,t),(e=Vu(n,n.pendingProps.children)).flags|=2,n.memoizedState=null,e}function Hu(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),xa(e.return,n,t)}function Bu(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function Qu(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(wu(e,n,r.children,t),0!==(2&(r=uo.current)))r=1&r|2,n.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Hu(e,t,n);else if(19===e.tag)Hu(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(_l(uo,r),0===(1&n.mode))n.memoizedState=null;else switch(l){case"forwards":for(t=n.child,l=null;null!==t;)null!==(e=t.alternate)&&null===io(e)&&(l=t),t=t.sibling;null===(t=l)?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),Bu(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(null!==(e=l.alternate)&&null===io(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}Bu(n,!0,t,null,a);break;case"together":Bu(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Wu(e,n){0===(1&n.mode)&&null!==e&&(e.alternate=null,n.alternate=null,n.flags|=2)}function ju(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),Ii|=n.lanes,0===(t&n.childLanes))return null;if(null!==e&&n.child!==e.child)throw Error(a(153));if(null!==n.child){for(t=Ds(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=Ds(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function $u(e,n){if(!la)switch(e.tailMode){case"hidden":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case"collapsed":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ku(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=14680064&l.subtreeFlags,r|=14680064&l.flags,l.return=e,l=l.sibling;else for(l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function qu(e,n,t){var r=n.pendingProps;switch(na(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ku(n),null;case 1:case 17:return Ml(n.type)&&Fl(),Ku(n),null;case 3:return r=n.stateNode,lo(),Cl(Pl),Cl(Nl),co(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fa(n)?n.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&n.flags)||(n.flags|=1024,null!==aa&&(us(aa),aa=null))),Fu(e,n),Ku(n),null;case 5:oo(n);var l=to(no.current);if(t=n.type,null!==e&&null!=n.stateNode)Du(e,n,t,r,l),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!r){if(null===n.stateNode)throw Error(a(166));return Ku(n),null}if(e=to(Ja.current),fa(n)){r=n.stateNode,t=n.type;var o=n.memoizedProps;switch(r[dl]=n,r[pl]=o,e=0!==(1&n.mode),t){case"dialog":Vr("cancel",r),Vr("close",r);break;case"iframe":case"object":case"embed":Vr("load",r);break;case"video":case"audio":for(l=0;l<Rr.length;l++)Vr(Rr[l],r);break;case"source":Vr("error",r);break;case"img":case"image":case"link":Vr("error",r),Vr("load",r);break;case"details":Vr("toggle",r);break;case"input":X(r,o),Vr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},Vr("invalid",r);break;case"textarea":le(r,o),Vr("invalid",r)}for(var i in ye(t,o),l=null,o)if(o.hasOwnProperty(i)){var s=o[i];"children"===i?"string"===typeof s?r.textContent!==s&&(!0!==o.suppressHydrationWarning&&Zr(r.textContent,s,e),l=["children",s]):"number"===typeof s&&r.textContent!==""+s&&(!0!==o.suppressHydrationWarning&&Zr(r.textContent,s,e),l=["children",""+s]):u.hasOwnProperty(i)&&null!=s&&"onScroll"===i&&Vr("scroll",r)}switch(t){case"input":$(r),J(r,o,!0);break;case"textarea":$(r),oe(r);break;case"select":case"option":break;default:"function"===typeof o.onClick&&(r.onclick=Jr)}r=l,n.updateQueue=r,null!==r&&(n.flags|=4)}else{i=9===l.nodeType?l:l.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=ue(t)),"http://www.w3.org/1999/xhtml"===e?"script"===t?((e=i.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=i.createElement(t,{is:r.is}):(e=i.createElement(t),"select"===t&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,t),e[dl]=n,e[pl]=r,Mu(e,n,!1,!1),n.stateNode=e;e:{switch(i=be(t,r),t){case"dialog":Vr("cancel",e),Vr("close",e),l=r;break;case"iframe":case"object":case"embed":Vr("load",e),l=r;break;case"video":case"audio":for(l=0;l<Rr.length;l++)Vr(Rr[l],e);l=r;break;case"source":Vr("error",e),l=r;break;case"img":case"image":case"link":Vr("error",e),Vr("load",e),l=r;break;case"details":Vr("toggle",e),l=r;break;case"input":X(e,r),l=Y(e,r),Vr("invalid",e);break;case"option":default:l=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},l=I({},r,{value:void 0}),Vr("invalid",e);break;case"textarea":le(e,r),l=re(e,r),Vr("invalid",e)}for(o in ye(t,l),s=l)if(s.hasOwnProperty(o)){var c=s[o];"style"===o?ge(e,c):"dangerouslySetInnerHTML"===o?null!=(c=c?c.__html:void 0)&&fe(e,c):"children"===o?"string"===typeof c?("textarea"!==t||""!==c)&&de(e,c):"number"===typeof c&&de(e,""+c):"suppressContentEditableWarning"!==o&&"suppressHydrationWarning"!==o&&"autoFocus"!==o&&(u.hasOwnProperty(o)?null!=c&&"onScroll"===o&&Vr("scroll",e):null!=c&&b(e,o,c,i))}switch(t){case"input":$(e),J(e,r,!1);break;case"textarea":$(e),oe(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(o=r.value)?te(e,!!r.multiple,o,!1):null!=r.defaultValue&&te(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof l.onClick&&(e.onclick=Jr)}switch(t){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(n.flags|=4)}null!==n.ref&&(n.flags|=512,n.flags|=2097152)}return Ku(n),null;case 6:if(e&&null!=n.stateNode)Ru(e,n,e.memoizedProps,r);else{if("string"!==typeof r&&null===n.stateNode)throw Error(a(166));if(t=to(no.current),to(Ja.current),fa(n)){if(r=n.stateNode,t=n.memoizedProps,r[dl]=n,(o=r.nodeValue!==t)&&null!==(e=ta))switch(e.tag){case 3:Zr(r.nodeValue,t,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Zr(r.nodeValue,t,0!==(1&e.mode))}o&&(n.flags|=4)}else(r=(9===t.nodeType?t:t.ownerDocument).createTextNode(r))[dl]=n,n.stateNode=r}return Ku(n),null;case 13:if(Cl(uo),r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(la&&null!==ra&&0!==(1&n.mode)&&0===(128&n.flags))da(),pa(),n.flags|=98560,o=!1;else if(o=fa(n),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(a(318));if(!(o=null!==(o=n.memoizedState)?o.dehydrated:null))throw Error(a(317));o[dl]=n}else pa(),0===(128&n.flags)&&(n.memoizedState=null),n.flags|=4;Ku(n),o=!1}else null!==aa&&(us(aa),aa=null),o=!0;if(!o)return 65536&n.flags?n:null}return 0!==(128&n.flags)?(n.lanes=t,n):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(n.child.flags|=8192,0!==(1&n.mode)&&(null===e||0!==(1&uo.current)?0===Ri&&(Ri=3):gs())),null!==n.updateQueue&&(n.flags|=4),Ku(n),null);case 4:return lo(),Fu(e,n),null===e&&Br(n.stateNode.containerInfo),Ku(n),null;case 10:return Sa(n.type._context),Ku(n),null;case 19:if(Cl(uo),null===(o=n.memoizedState))return Ku(n),null;if(r=0!==(128&n.flags),null===(i=o.rendering))if(r)$u(o,!1);else{if(0!==Ri||null!==e&&0!==(128&e.flags))for(e=n.child;null!==e;){if(null!==(i=io(e))){for(n.flags|=128,$u(o,!1),null!==(r=i.updateQueue)&&(n.updateQueue=r,n.flags|=4),n.subtreeFlags=0,r=t,t=n.child;null!==t;)e=r,(o=t).flags&=14680066,null===(i=o.alternate)?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,o.type=i.type,e=i.dependencies,o.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),t=t.sibling;return _l(uo,1&uo.current|2),n.child}e=e.sibling}null!==o.tail&&Ge()>Qi&&(n.flags|=128,r=!0,$u(o,!1),n.lanes=4194304)}else{if(!r)if(null!==(e=io(i))){if(n.flags|=128,r=!0,null!==(t=e.updateQueue)&&(n.updateQueue=t,n.flags|=4),$u(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate&&!la)return Ku(n),null}else 2*Ge()-o.renderingStartTime>Qi&&1073741824!==t&&(n.flags|=128,r=!0,$u(o,!1),n.lanes=4194304);o.isBackwards?(i.sibling=n.child,n.child=i):(null!==(t=o.last)?t.sibling=i:n.child=i,o.last=i)}return null!==o.tail?(n=o.tail,o.rendering=n,o.tail=n.sibling,o.renderingStartTime=Ge(),n.sibling=null,t=uo.current,_l(uo,r?1&t|2:1&t),n):(Ku(n),null);case 22:case 23:return ds(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(1&n.mode)?0!==(1073741824&Fi)&&(Ku(n),6&n.subtreeFlags&&(n.flags|=8192)):Ku(n),null;case 24:case 25:return null}throw Error(a(156,n.tag))}function Yu(e,n){switch(na(n),n.tag){case 1:return Ml(n.type)&&Fl(),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return lo(),Cl(Pl),Cl(Nl),co(),0!==(65536&(e=n.flags))&&0===(128&e)?(n.flags=-65537&e|128,n):null;case 5:return oo(n),null;case 13:if(Cl(uo),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(a(340));pa()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return Cl(uo),null;case 4:return lo(),null;case 10:return Sa(n.type._context),null;case 22:case 23:return ds(),null;default:return null}}Mu=function(e,n){for(var t=n.child;null!==t;){if(5===t.tag||6===t.tag)e.appendChild(t.stateNode);else if(4!==t.tag&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===n)break;for(;null===t.sibling;){if(null===t.return||t.return===n)return;t=t.return}t.sibling.return=t.return,t=t.sibling}},Fu=function(){},Du=function(e,n,t,r){var l=e.memoizedProps;if(l!==r){e=n.stateNode,to(Ja.current);var a,o=null;switch(t){case"input":l=Y(e,l),r=Y(e,r),o=[];break;case"select":l=I({},l,{value:void 0}),r=I({},r,{value:void 0}),o=[];break;case"textarea":l=re(e,l),r=re(e,r),o=[];break;default:"function"!==typeof l.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(c in ye(t,r),t=null,l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&null!=l[c])if("style"===c){var i=l[c];for(a in i)i.hasOwnProperty(a)&&(t||(t={}),t[a]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(u.hasOwnProperty(c)?o||(o=[]):(o=o||[]).push(c,null));for(c in r){var s=r[c];if(i=null!=l?l[c]:void 0,r.hasOwnProperty(c)&&s!==i&&(null!=s||null!=i))if("style"===c)if(i){for(a in i)!i.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(t||(t={}),t[a]="");for(a in s)s.hasOwnProperty(a)&&i[a]!==s[a]&&(t||(t={}),t[a]=s[a])}else t||(o||(o=[]),o.push(c,t)),t=s;else"dangerouslySetInnerHTML"===c?(s=s?s.__html:void 0,i=i?i.__html:void 0,null!=s&&i!==s&&(o=o||[]).push(c,s)):"children"===c?"string"!==typeof s&&"number"!==typeof s||(o=o||[]).push(c,""+s):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(u.hasOwnProperty(c)?(null!=s&&"onScroll"===c&&Vr("scroll",e),o||i===s||(o=[])):(o=o||[]).push(c,s))}t&&(o=o||[]).push("style",t);var c=o;(n.updateQueue=c)&&(n.flags|=4)}},Ru=function(e,n,t,r){t!==r&&(n.flags|=4)};var Xu=!1,Gu=!1,Zu="function"===typeof WeakSet?WeakSet:Set,Ju=null;function ei(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(r){Cs(e,n,r)}else t.current=null}function ni(e,n,t){try{t()}catch(r){Cs(e,n,r)}}var ti=!1;function ri(e,n,t){var r=n.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,void 0!==a&&ni(n,t,a)}l=l.next}while(l!==r)}}function li(e,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function ai(e){var n=e.ref;if(null!==n){var t=e.stateNode;e.tag,e=t,"function"===typeof n?n(e):n.current=e}}function oi(e){var n=e.alternate;null!==n&&(e.alternate=null,oi(n)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(n=e.stateNode)&&(delete n[dl],delete n[pl],delete n[hl],delete n[gl],delete n[vl])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ui(e){return 5===e.tag||3===e.tag||4===e.tag}function ii(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ui(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function si(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?8===t.nodeType?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(8===t.nodeType?(n=t.parentNode).insertBefore(e,t):(n=t).appendChild(e),null!==(t=t._reactRootContainer)&&void 0!==t||null!==n.onclick||(n.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(si(e,n,t),e=e.sibling;null!==e;)si(e,n,t),e=e.sibling}function ci(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ci(e,n,t),e=e.sibling;null!==e;)ci(e,n,t),e=e.sibling}var fi=null,di=!1;function pi(e,n,t){for(t=t.child;null!==t;)mi(e,n,t),t=t.sibling}function mi(e,n,t){if(an&&"function"===typeof an.onCommitFiberUnmount)try{an.onCommitFiberUnmount(ln,t)}catch(u){}switch(t.tag){case 5:Gu||ei(t,n);case 6:var r=fi,l=di;fi=null,pi(e,n,t),di=l,null!==(fi=r)&&(di?(e=fi,t=t.stateNode,8===e.nodeType?e.parentNode.removeChild(t):e.removeChild(t)):fi.removeChild(t.stateNode));break;case 18:null!==fi&&(di?(e=fi,t=t.stateNode,8===e.nodeType?il(e.parentNode,t):1===e.nodeType&&il(e,t),Qn(e)):il(fi,t.stateNode));break;case 4:r=fi,l=di,fi=t.stateNode.containerInfo,di=!0,pi(e,n,t),fi=r,di=l;break;case 0:case 11:case 14:case 15:if(!Gu&&(null!==(r=t.updateQueue)&&null!==(r=r.lastEffect))){l=r=r.next;do{var a=l,o=a.destroy;a=a.tag,void 0!==o&&(0!==(2&a)||0!==(4&a))&&ni(t,n,o),l=l.next}while(l!==r)}pi(e,n,t);break;case 1:if(!Gu&&(ei(t,n),"function"===typeof(r=t.stateNode).componentWillUnmount))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(u){Cs(t,n,u)}pi(e,n,t);break;case 21:pi(e,n,t);break;case 22:1&t.mode?(Gu=(r=Gu)||null!==t.memoizedState,pi(e,n,t),Gu=r):pi(e,n,t);break;default:pi(e,n,t)}}function hi(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new Zu),n.forEach((function(n){var r=Ps.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))}))}}function gi(e,n){var t=n.deletions;if(null!==t)for(var r=0;r<t.length;r++){var l=t[r];try{var o=e,u=n,i=u;e:for(;null!==i;){switch(i.tag){case 5:fi=i.stateNode,di=!1;break e;case 3:case 4:fi=i.stateNode.containerInfo,di=!0;break e}i=i.return}if(null===fi)throw Error(a(160));mi(o,u,l),fi=null,di=!1;var s=l.alternate;null!==s&&(s.return=null),l.return=null}catch(c){Cs(l,n,c)}}if(12854&n.subtreeFlags)for(n=n.child;null!==n;)vi(n,e),n=n.sibling}function vi(e,n){var t=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gi(n,e),yi(e),4&r){try{ri(3,e,e.return),li(3,e)}catch(g){Cs(e,e.return,g)}try{ri(5,e,e.return)}catch(g){Cs(e,e.return,g)}}break;case 1:gi(n,e),yi(e),512&r&&null!==t&&ei(t,t.return);break;case 5:if(gi(n,e),yi(e),512&r&&null!==t&&ei(t,t.return),32&e.flags){var l=e.stateNode;try{de(l,"")}catch(g){Cs(e,e.return,g)}}if(4&r&&null!=(l=e.stateNode)){var o=e.memoizedProps,u=null!==t?t.memoizedProps:o,i=e.type,s=e.updateQueue;if(e.updateQueue=null,null!==s)try{"input"===i&&"radio"===o.type&&null!=o.name&&G(l,o),be(i,u);var c=be(i,o);for(u=0;u<s.length;u+=2){var f=s[u],d=s[u+1];"style"===f?ge(l,d):"dangerouslySetInnerHTML"===f?fe(l,d):"children"===f?de(l,d):b(l,f,d,c)}switch(i){case"input":Z(l,o);break;case"textarea":ae(l,o);break;case"select":var p=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!o.multiple;var m=o.value;null!=m?te(l,!!o.multiple,m,!1):p!==!!o.multiple&&(null!=o.defaultValue?te(l,!!o.multiple,o.defaultValue,!0):te(l,!!o.multiple,o.multiple?[]:"",!1))}l[pl]=o}catch(g){Cs(e,e.return,g)}}break;case 6:if(gi(n,e),yi(e),4&r){if(null===e.stateNode)throw Error(a(162));l=e.stateNode,o=e.memoizedProps;try{l.nodeValue=o}catch(g){Cs(e,e.return,g)}}break;case 3:if(gi(n,e),yi(e),4&r&&null!==t&&t.memoizedState.isDehydrated)try{Qn(n.containerInfo)}catch(g){Cs(e,e.return,g)}break;case 4:default:gi(n,e),yi(e);break;case 13:gi(n,e),yi(e),8192&(l=e.child).flags&&(o=null!==l.memoizedState,l.stateNode.isHidden=o,!o||null!==l.alternate&&null!==l.alternate.memoizedState||(Bi=Ge())),4&r&&hi(e);break;case 22:if(f=null!==t&&null!==t.memoizedState,1&e.mode?(Gu=(c=Gu)||f,gi(n,e),Gu=c):gi(n,e),yi(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!f&&0!==(1&e.mode))for(Ju=e,f=e.child;null!==f;){for(d=Ju=f;null!==Ju;){switch(m=(p=Ju).child,p.tag){case 0:case 11:case 14:case 15:ri(4,p,p.return);break;case 1:ei(p,p.return);var h=p.stateNode;if("function"===typeof h.componentWillUnmount){r=p,t=p.return;try{n=r,h.props=n.memoizedProps,h.state=n.memoizedState,h.componentWillUnmount()}catch(g){Cs(r,t,g)}}break;case 5:ei(p,p.return);break;case 22:if(null!==p.memoizedState){Si(d);continue}}null!==m?(m.return=p,Ju=m):Si(d)}f=f.sibling}e:for(f=null,d=e;;){if(5===d.tag){if(null===f){f=d;try{l=d.stateNode,c?"function"===typeof(o=l.style).setProperty?o.setProperty("display","none","important"):o.display="none":(i=d.stateNode,u=void 0!==(s=d.memoizedProps.style)&&null!==s&&s.hasOwnProperty("display")?s.display:null,i.style.display=he("display",u))}catch(g){Cs(e,e.return,g)}}}else if(6===d.tag){if(null===f)try{d.stateNode.nodeValue=c?"":d.memoizedProps}catch(g){Cs(e,e.return,g)}}else if((22!==d.tag&&23!==d.tag||null===d.memoizedState||d===e)&&null!==d.child){d.child.return=d,d=d.child;continue}if(d===e)break e;for(;null===d.sibling;){if(null===d.return||d.return===e)break e;f===d&&(f=null),d=d.return}f===d&&(f=null),d.sibling.return=d.return,d=d.sibling}}break;case 19:gi(n,e),yi(e),4&r&&hi(e);case 21:}}function yi(e){var n=e.flags;if(2&n){try{e:{for(var t=e.return;null!==t;){if(ui(t)){var r=t;break e}t=t.return}throw Error(a(160))}switch(r.tag){case 5:var l=r.stateNode;32&r.flags&&(de(l,""),r.flags&=-33),ci(e,ii(e),l);break;case 3:case 4:var o=r.stateNode.containerInfo;si(e,ii(e),o);break;default:throw Error(a(161))}}catch(u){Cs(e,e.return,u)}e.flags&=-3}4096&n&&(e.flags&=-4097)}function bi(e,n,t){Ju=e,ki(e,n,t)}function ki(e,n,t){for(var r=0!==(1&e.mode);null!==Ju;){var l=Ju,a=l.child;if(22===l.tag&&r){var o=null!==l.memoizedState||Xu;if(!o){var u=l.alternate,i=null!==u&&null!==u.memoizedState||Gu;u=Xu;var s=Gu;if(Xu=o,(Gu=i)&&!s)for(Ju=l;null!==Ju;)i=(o=Ju).child,22===o.tag&&null!==o.memoizedState?xi(l):null!==i?(i.return=o,Ju=i):xi(l);for(;null!==a;)Ju=a,ki(a,n,t),a=a.sibling;Ju=l,Xu=u,Gu=s}wi(e)}else 0!==(8772&l.subtreeFlags)&&null!==a?(a.return=l,Ju=a):wi(e)}}function wi(e){for(;null!==Ju;){var n=Ju;if(0!==(8772&n.flags)){var t=n.alternate;try{if(0!==(8772&n.flags))switch(n.tag){case 0:case 11:case 15:Gu||li(5,n);break;case 1:var r=n.stateNode;if(4&n.flags&&!Gu)if(null===t)r.componentDidMount();else{var l=n.elementType===n.type?t.memoizedProps:ga(n.type,t.memoizedProps);r.componentDidUpdate(l,t.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=n.updateQueue;null!==o&&Ua(n,o,r);break;case 3:var u=n.updateQueue;if(null!==u){if(t=null,null!==n.child)switch(n.child.tag){case 5:case 1:t=n.child.stateNode}Ua(n,u,t)}break;case 5:var i=n.stateNode;if(null===t&&4&n.flags){t=i;var s=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":s.autoFocus&&t.focus();break;case"img":s.src&&(t.src=s.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===n.memoizedState){var c=n.alternate;if(null!==c){var f=c.memoizedState;if(null!==f){var d=f.dehydrated;null!==d&&Qn(d)}}}break;default:throw Error(a(163))}Gu||512&n.flags&&ai(n)}catch(p){Cs(n,n.return,p)}}if(n===e){Ju=null;break}if(null!==(t=n.sibling)){t.return=n.return,Ju=t;break}Ju=n.return}}function Si(e){for(;null!==Ju;){var n=Ju;if(n===e){Ju=null;break}var t=n.sibling;if(null!==t){t.return=n.return,Ju=t;break}Ju=n.return}}function xi(e){for(;null!==Ju;){var n=Ju;try{switch(n.tag){case 0:case 11:case 15:var t=n.return;try{li(4,n)}catch(i){Cs(n,t,i)}break;case 1:var r=n.stateNode;if("function"===typeof r.componentDidMount){var l=n.return;try{r.componentDidMount()}catch(i){Cs(n,l,i)}}var a=n.return;try{ai(n)}catch(i){Cs(n,a,i)}break;case 5:var o=n.return;try{ai(n)}catch(i){Cs(n,o,i)}}}catch(i){Cs(n,n.return,i)}if(n===e){Ju=null;break}var u=n.sibling;if(null!==u){u.return=n.return,Ju=u;break}Ju=n.return}}var Ei,Ci=Math.ceil,_i=k.ReactCurrentDispatcher,zi=k.ReactCurrentOwner,Ni=k.ReactCurrentBatchConfig,Pi=0,Li=null,Ti=null,Mi=0,Fi=0,Di=El(0),Ri=0,Oi=null,Ii=0,Ui=0,Vi=0,Ai=null,Hi=null,Bi=0,Qi=1/0,Wi=null,ji=!1,$i=null,Ki=null,qi=!1,Yi=null,Xi=0,Gi=0,Zi=null,Ji=-1,es=0;function ns(){return 0!==(6&Pi)?Ge():-1!==Ji?Ji:Ji=Ge()}function ts(e){return 0===(1&e.mode)?1:0!==(2&Pi)&&0!==Mi?Mi&-Mi:null!==ha.transition?(0===es&&(es=gn()),es):0!==(e=kn)?e:e=void 0===(e=window.event)?16:Gn(e.type)}function rs(e,n,t,r){if(50<Gi)throw Gi=0,Zi=null,Error(a(185));yn(e,t,r),0!==(2&Pi)&&e===Li||(e===Li&&(0===(2&Pi)&&(Ui|=t),4===Ri&&is(e,Mi)),ls(e,r),1===t&&0===Pi&&0===(1&n.mode)&&(Qi=Ge()+500,Vl&&Bl()))}function ls(e,n){var t=e.callbackNode;!function(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=e.pendingLanes;0<a;){var o=31-on(a),u=1<<o,i=l[o];-1===i?0!==(u&t)&&0===(u&r)||(l[o]=mn(u,n)):i<=n&&(e.expiredLanes|=u),a&=~u}}(e,n);var r=pn(e,e===Li?Mi:0);if(0===r)null!==t&&qe(t),e.callbackNode=null,e.callbackPriority=0;else if(n=r&-r,e.callbackPriority!==n){if(null!=t&&qe(t),1===n)0===e.tag?function(e){Vl=!0,Hl(e)}(ss.bind(null,e)):Hl(ss.bind(null,e)),ol((function(){0===(6&Pi)&&Bl()})),t=null;else{switch(wn(r)){case 1:t=Je;break;case 4:t=en;break;case 16:default:t=nn;break;case 536870912:t=rn}t=Ls(t,as.bind(null,e))}e.callbackPriority=n,e.callbackNode=t}}function as(e,n){if(Ji=-1,es=0,0!==(6&Pi))throw Error(a(327));var t=e.callbackNode;if(xs()&&e.callbackNode!==t)return null;var r=pn(e,e===Li?Mi:0);if(0===r)return null;if(0!==(30&r)||0!==(r&e.expiredLanes)||n)n=vs(e,r);else{n=r;var l=Pi;Pi|=2;var o=hs();for(Li===e&&Mi===n||(Wi=null,Qi=Ge()+500,ps(e,n));;)try{bs();break}catch(i){ms(e,i)}wa(),_i.current=o,Pi=l,null!==Ti?n=0:(Li=null,Mi=0,n=Ri)}if(0!==n){if(2===n&&(0!==(l=hn(e))&&(r=l,n=os(e,l))),1===n)throw t=Oi,ps(e,0),is(e,r),ls(e,Ge()),t;if(6===n)is(e,r);else{if(l=e.current.alternate,0===(30&r)&&!function(e){for(var n=e;;){if(16384&n.flags){var t=n.updateQueue;if(null!==t&&null!==(t=t.stores))for(var r=0;r<t.length;r++){var l=t[r],a=l.getSnapshot;l=l.value;try{if(!ur(a(),l))return!1}catch(u){return!1}}}if(t=n.child,16384&n.subtreeFlags&&null!==t)t.return=n,n=t;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}(l)&&(2===(n=vs(e,r))&&(0!==(o=hn(e))&&(r=o,n=os(e,o))),1===n))throw t=Oi,ps(e,0),is(e,r),ls(e,Ge()),t;switch(e.finishedWork=l,e.finishedLanes=r,n){case 0:case 1:throw Error(a(345));case 2:case 5:Ss(e,Hi,Wi);break;case 3:if(is(e,r),(130023424&r)===r&&10<(n=Bi+500-Ge())){if(0!==pn(e,0))break;if(((l=e.suspendedLanes)&r)!==r){ns(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=rl(Ss.bind(null,e,Hi,Wi),n);break}Ss(e,Hi,Wi);break;case 4:if(is(e,r),(4194240&r)===r)break;for(n=e.eventTimes,l=-1;0<r;){var u=31-on(r);o=1<<u,(u=n[u])>l&&(l=u),r&=~o}if(r=l,10<(r=(120>(r=Ge()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ci(r/1960))-r)){e.timeoutHandle=rl(Ss.bind(null,e,Hi,Wi),r);break}Ss(e,Hi,Wi);break;default:throw Error(a(329))}}}return ls(e,Ge()),e.callbackNode===t?as.bind(null,e):null}function os(e,n){var t=Ai;return e.current.memoizedState.isDehydrated&&(ps(e,n).flags|=256),2!==(e=vs(e,n))&&(n=Hi,Hi=t,null!==n&&us(n)),e}function us(e){null===Hi?Hi=e:Hi.push.apply(Hi,e)}function is(e,n){for(n&=~Vi,n&=~Ui,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var t=31-on(n),r=1<<t;e[t]=-1,n&=~r}}function ss(e){if(0!==(6&Pi))throw Error(a(327));xs();var n=pn(e,0);if(0===(1&n))return ls(e,Ge()),null;var t=vs(e,n);if(0!==e.tag&&2===t){var r=hn(e);0!==r&&(n=r,t=os(e,r))}if(1===t)throw t=Oi,ps(e,0),is(e,n),ls(e,Ge()),t;if(6===t)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,Ss(e,Hi,Wi),ls(e,Ge()),null}function cs(e,n){var t=Pi;Pi|=1;try{return e(n)}finally{0===(Pi=t)&&(Qi=Ge()+500,Vl&&Bl())}}function fs(e){null!==Yi&&0===Yi.tag&&0===(6&Pi)&&xs();var n=Pi;Pi|=1;var t=Ni.transition,r=kn;try{if(Ni.transition=null,kn=1,e)return e()}finally{kn=r,Ni.transition=t,0===(6&(Pi=n))&&Bl()}}function ds(){Fi=Di.current,Cl(Di)}function ps(e,n){e.finishedWork=null,e.finishedLanes=0;var t=e.timeoutHandle;if(-1!==t&&(e.timeoutHandle=-1,ll(t)),null!==Ti)for(t=Ti.return;null!==t;){var r=t;switch(na(r),r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&Fl();break;case 3:lo(),Cl(Pl),Cl(Nl),co();break;case 5:oo(r);break;case 4:lo();break;case 13:case 19:Cl(uo);break;case 10:Sa(r.type._context);break;case 22:case 23:ds()}t=t.return}if(Li=e,Ti=e=Ds(e.current,null),Mi=Fi=n,Ri=0,Oi=null,Vi=Ui=Ii=0,Hi=Ai=null,null!==_a){for(n=0;n<_a.length;n++)if(null!==(r=(t=_a[n]).interleaved)){t.interleaved=null;var l=r.next,a=t.pending;if(null!==a){var o=a.next;a.next=l,r.next=o}t.pending=r}_a=null}return e}function ms(e,n){for(;;){var t=Ti;try{if(wa(),fo.current=ou,yo){for(var r=ho.memoizedState;null!==r;){var l=r.queue;null!==l&&(l.pending=null),r=r.next}yo=!1}if(mo=0,vo=go=ho=null,bo=!1,ko=0,zi.current=null,null===t||null===t.return){Ri=1,Oi=n,Ti=null;break}e:{var o=e,u=t.return,i=t,s=n;if(n=Mi,i.flags|=32768,null!==s&&"object"===typeof s&&"function"===typeof s.then){var c=s,f=i,d=f.tag;if(0===(1&f.mode)&&(0===d||11===d||15===d)){var p=f.alternate;p?(f.updateQueue=p.updateQueue,f.memoizedState=p.memoizedState,f.lanes=p.lanes):(f.updateQueue=null,f.memoizedState=null)}var m=vu(u);if(null!==m){m.flags&=-257,yu(m,u,i,0,n),1&m.mode&&gu(o,c,n),s=c;var h=(n=m).updateQueue;if(null===h){var g=new Set;g.add(s),n.updateQueue=g}else h.add(s);break e}if(0===(1&n)){gu(o,c,n),gs();break e}s=Error(a(426))}else if(la&&1&i.mode){var v=vu(u);if(null!==v){0===(65536&v.flags)&&(v.flags|=256),yu(v,u,i,0,n),ma(cu(s,i));break e}}o=s=cu(s,i),4!==Ri&&(Ri=2),null===Ai?Ai=[o]:Ai.push(o),o=u;do{switch(o.tag){case 3:o.flags|=65536,n&=-n,o.lanes|=n,Oa(o,mu(0,s,n));break e;case 1:i=s;var y=o.type,b=o.stateNode;if(0===(128&o.flags)&&("function"===typeof y.getDerivedStateFromError||null!==b&&"function"===typeof b.componentDidCatch&&(null===Ki||!Ki.has(b)))){o.flags|=65536,n&=-n,o.lanes|=n,Oa(o,hu(o,i,n));break e}}o=o.return}while(null!==o)}ws(t)}catch(k){n=k,Ti===t&&null!==t&&(Ti=t=t.return);continue}break}}function hs(){var e=_i.current;return _i.current=ou,null===e?ou:e}function gs(){0!==Ri&&3!==Ri&&2!==Ri||(Ri=4),null===Li||0===(268435455&Ii)&&0===(268435455&Ui)||is(Li,Mi)}function vs(e,n){var t=Pi;Pi|=2;var r=hs();for(Li===e&&Mi===n||(Wi=null,ps(e,n));;)try{ys();break}catch(l){ms(e,l)}if(wa(),Pi=t,_i.current=r,null!==Ti)throw Error(a(261));return Li=null,Mi=0,Ri}function ys(){for(;null!==Ti;)ks(Ti)}function bs(){for(;null!==Ti&&!Ye();)ks(Ti)}function ks(e){var n=Ei(e.alternate,e,Fi);e.memoizedProps=e.pendingProps,null===n?ws(e):Ti=n,zi.current=null}function ws(e){var n=e;do{var t=n.alternate;if(e=n.return,0===(32768&n.flags)){if(null!==(t=qu(t,n,Fi)))return void(Ti=t)}else{if(null!==(t=Yu(t,n)))return t.flags&=32767,void(Ti=t);if(null===e)return Ri=6,void(Ti=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(n=n.sibling))return void(Ti=n);Ti=n=e}while(null!==n);0===Ri&&(Ri=5)}function Ss(e,n,t){var r=kn,l=Ni.transition;try{Ni.transition=null,kn=1,function(e,n,t,r){do{xs()}while(null!==Yi);if(0!==(6&Pi))throw Error(a(327));t=e.finishedWork;var l=e.finishedLanes;if(null===t)return null;if(e.finishedWork=null,e.finishedLanes=0,t===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var o=t.lanes|t.childLanes;if(function(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<t;){var l=31-on(t),a=1<<l;n[l]=0,r[l]=-1,e[l]=-1,t&=~a}}(e,o),e===Li&&(Ti=Li=null,Mi=0),0===(2064&t.subtreeFlags)&&0===(2064&t.flags)||qi||(qi=!0,Ls(nn,(function(){return xs(),null}))),o=0!==(15990&t.flags),0!==(15990&t.subtreeFlags)||o){o=Ni.transition,Ni.transition=null;var u=kn;kn=1;var i=Pi;Pi|=4,zi.current=null,function(e,n){if(el=jn,pr(e=dr())){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{t.nodeType,o.nodeType}catch(w){t=null;break e}var u=0,i=-1,s=-1,c=0,f=0,d=e,p=null;n:for(;;){for(var m;d!==t||0!==l&&3!==d.nodeType||(i=u+l),d!==o||0!==r&&3!==d.nodeType||(s=u+r),3===d.nodeType&&(u+=d.nodeValue.length),null!==(m=d.firstChild);)p=d,d=m;for(;;){if(d===e)break n;if(p===t&&++c===l&&(i=u),p===o&&++f===r&&(s=u),null!==(m=d.nextSibling))break;p=(d=p).parentNode}d=m}t=-1===i||-1===s?null:{start:i,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(nl={focusedElem:e,selectionRange:t},jn=!1,Ju=n;null!==Ju;)if(e=(n=Ju).child,0!==(1028&n.subtreeFlags)&&null!==e)e.return=n,Ju=e;else for(;null!==Ju;){n=Ju;try{var h=n.alternate;if(0!==(1024&n.flags))switch(n.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,v=h.memoizedState,y=n.stateNode,b=y.getSnapshotBeforeUpdate(n.elementType===n.type?g:ga(n.type,g),v);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var k=n.stateNode.containerInfo;1===k.nodeType?k.textContent="":9===k.nodeType&&k.documentElement&&k.removeChild(k.documentElement);break;default:throw Error(a(163))}}catch(w){Cs(n,n.return,w)}if(null!==(e=n.sibling)){e.return=n.return,Ju=e;break}Ju=n.return}h=ti,ti=!1}(e,t),vi(t,e),mr(nl),jn=!!el,nl=el=null,e.current=t,bi(t,e,l),Xe(),Pi=i,kn=u,Ni.transition=o}else e.current=t;if(qi&&(qi=!1,Yi=e,Xi=l),o=e.pendingLanes,0===o&&(Ki=null),function(e){if(an&&"function"===typeof an.onCommitFiberRoot)try{an.onCommitFiberRoot(ln,e,void 0,128===(128&e.current.flags))}catch(n){}}(t.stateNode),ls(e,Ge()),null!==n)for(r=e.onRecoverableError,t=0;t<n.length;t++)l=n[t],r(l.value,{componentStack:l.stack,digest:l.digest});if(ji)throw ji=!1,e=$i,$i=null,e;0!==(1&Xi)&&0!==e.tag&&xs(),o=e.pendingLanes,0!==(1&o)?e===Zi?Gi++:(Gi=0,Zi=e):Gi=0,Bl()}(e,n,t,r)}finally{Ni.transition=l,kn=r}return null}function xs(){if(null!==Yi){var e=wn(Xi),n=Ni.transition,t=kn;try{if(Ni.transition=null,kn=16>e?16:e,null===Yi)var r=!1;else{if(e=Yi,Yi=null,Xi=0,0!==(6&Pi))throw Error(a(331));var l=Pi;for(Pi|=4,Ju=e.current;null!==Ju;){var o=Ju,u=o.child;if(0!==(16&Ju.flags)){var i=o.deletions;if(null!==i){for(var s=0;s<i.length;s++){var c=i[s];for(Ju=c;null!==Ju;){var f=Ju;switch(f.tag){case 0:case 11:case 15:ri(8,f,o)}var d=f.child;if(null!==d)d.return=f,Ju=d;else for(;null!==Ju;){var p=(f=Ju).sibling,m=f.return;if(oi(f),f===c){Ju=null;break}if(null!==p){p.return=m,Ju=p;break}Ju=m}}}var h=o.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var v=g.sibling;g.sibling=null,g=v}while(null!==g)}}Ju=o}}if(0!==(2064&o.subtreeFlags)&&null!==u)u.return=o,Ju=u;else e:for(;null!==Ju;){if(0!==(2048&(o=Ju).flags))switch(o.tag){case 0:case 11:case 15:ri(9,o,o.return)}var y=o.sibling;if(null!==y){y.return=o.return,Ju=y;break e}Ju=o.return}}var b=e.current;for(Ju=b;null!==Ju;){var k=(u=Ju).child;if(0!==(2064&u.subtreeFlags)&&null!==k)k.return=u,Ju=k;else e:for(u=b;null!==Ju;){if(0!==(2048&(i=Ju).flags))try{switch(i.tag){case 0:case 11:case 15:li(9,i)}}catch(S){Cs(i,i.return,S)}if(i===u){Ju=null;break e}var w=i.sibling;if(null!==w){w.return=i.return,Ju=w;break e}Ju=i.return}}if(Pi=l,Bl(),an&&"function"===typeof an.onPostCommitFiberRoot)try{an.onPostCommitFiberRoot(ln,e)}catch(S){}r=!0}return r}finally{kn=t,Ni.transition=n}}return!1}function Es(e,n,t){e=Da(e,n=mu(0,n=cu(t,n),1),1),n=ns(),null!==e&&(yn(e,1,n),ls(e,n))}function Cs(e,n,t){if(3===e.tag)Es(e,e,t);else for(;null!==n;){if(3===n.tag){Es(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"===typeof n.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Ki||!Ki.has(r))){n=Da(n,e=hu(n,e=cu(t,e),1),1),e=ns(),null!==n&&(yn(n,1,e),ls(n,e));break}}n=n.return}}function _s(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),n=ns(),e.pingedLanes|=e.suspendedLanes&t,Li===e&&(Mi&t)===t&&(4===Ri||3===Ri&&(130023424&Mi)===Mi&&500>Ge()-Bi?ps(e,0):Vi|=t),ls(e,n)}function zs(e,n){0===n&&(0===(1&e.mode)?n=1:(n=fn,0===(130023424&(fn<<=1))&&(fn=4194304)));var t=ns();null!==(e=Pa(e,n))&&(yn(e,n,t),ls(e,t))}function Ns(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),zs(e,t)}function Ps(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(n),zs(e,t)}function Ls(e,n){return Ke(e,n)}function Ts(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ms(e,n,t,r){return new Ts(e,n,t,r)}function Fs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ds(e,n){var t=e.alternate;return null===t?((t=Ms(e.tag,n,e.key,e.mode)).elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=14680064&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Rs(e,n,t,r,l,o){var u=2;if(r=e,"function"===typeof e)Fs(e)&&(u=1);else if("string"===typeof e)u=5;else e:switch(e){case x:return Os(t.children,l,o,n);case E:u=8,l|=8;break;case C:return(e=Ms(12,t,n,2|l)).elementType=C,e.lanes=o,e;case P:return(e=Ms(13,t,n,l)).elementType=P,e.lanes=o,e;case L:return(e=Ms(19,t,n,l)).elementType=L,e.lanes=o,e;case F:return Is(t,l,o,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case _:u=10;break e;case z:u=9;break e;case N:u=11;break e;case T:u=14;break e;case M:u=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(n=Ms(u,t,n,l)).elementType=e,n.type=r,n.lanes=o,n}function Os(e,n,t,r){return(e=Ms(7,e,r,n)).lanes=t,e}function Is(e,n,t,r){return(e=Ms(22,e,r,n)).elementType=F,e.lanes=t,e.stateNode={isHidden:!1},e}function Us(e,n,t){return(e=Ms(6,e,null,n)).lanes=t,e}function Vs(e,n,t){return(n=Ms(4,null!==e.children?e.children:[],e.key,n)).lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function As(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=vn(0),this.expirationTimes=vn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=vn(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Hs(e,n,t,r,l,a,o,u,i){return e=new As(e,n,t,u,i),1===n?(n=1,!0===a&&(n|=8)):n=0,a=Ms(3,null,null,n),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ta(a),e}function Bs(e){if(!e)return zl;e:{if(Be(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(Ml(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(null!==n);throw Error(a(171))}if(1===e.tag){var t=e.type;if(Ml(t))return Rl(e,t,n)}return n}function Qs(e,n,t,r,l,a,o,u,i){return(e=Hs(t,r,!0,e,0,a,0,u,i)).context=Bs(null),t=e.current,(a=Fa(r=ns(),l=ts(t))).callback=void 0!==n&&null!==n?n:null,Da(t,a,l),e.current.lanes=l,yn(e,l,r),ls(e,r),e}function Ws(e,n,t,r){var l=n.current,a=ns(),o=ts(l);return t=Bs(t),null===n.context?n.context=t:n.pendingContext=t,(n=Fa(a,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(n.callback=r),null!==(e=Da(l,n,o))&&(rs(e,l,o,a),Ra(e,l,o)),o}function js(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function $s(e,n){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t<n?t:n}}function Ks(e,n){$s(e,n),(e=e.alternate)&&$s(e,n)}Ei=function(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps||Pl.current)ku=!0;else{if(0===(e.lanes&t)&&0===(128&n.flags))return ku=!1,function(e,n,t){switch(n.tag){case 3:Lu(n),pa();break;case 5:ao(n);break;case 1:Ml(n.type)&&Ol(n);break;case 4:ro(n,n.stateNode.containerInfo);break;case 10:var r=n.type._context,l=n.memoizedProps.value;_l(va,r._currentValue),r._currentValue=l;break;case 13:if(null!==(r=n.memoizedState))return null!==r.dehydrated?(_l(uo,1&uo.current),n.flags|=128,null):0!==(t&n.child.childLanes)?Uu(e,n,t):(_l(uo,1&uo.current),null!==(e=ju(e,n,t))?e.sibling:null);_l(uo,1&uo.current);break;case 19:if(r=0!==(t&n.childLanes),0!==(128&e.flags)){if(r)return Qu(e,n,t);n.flags|=128}if(null!==(l=n.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),_l(uo,uo.current),r)break;return null;case 22:case 23:return n.lanes=0,Cu(e,n,t)}return ju(e,n,t)}(e,n,t);ku=0!==(131072&e.flags)}else ku=!1,la&&0!==(1048576&n.flags)&&Jl(n,$l,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;Wu(e,n),e=n.pendingProps;var l=Tl(n,Nl.current);Ea(n,t),l=Eo(null,n,r,e,l,t);var o=Co();return n.flags|=1,"object"===typeof l&&null!==l&&"function"===typeof l.render&&void 0===l.$$typeof?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Ml(r)?(o=!0,Ol(n)):o=!1,n.memoizedState=null!==l.state&&void 0!==l.state?l.state:null,Ta(n),l.updater=Ha,n.stateNode=l,l._reactInternals=n,ja(n,r,e,t),n=Pu(null,n,r,!0,o,t)):(n.tag=0,la&&o&&ea(n),wu(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(Wu(e,n),e=n.pendingProps,r=(l=r._init)(r._payload),n.type=r,l=n.tag=function(e){if("function"===typeof e)return Fs(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===N)return 11;if(e===T)return 14}return 2}(r),e=ga(r,e),l){case 0:n=zu(null,n,r,e,t);break e;case 1:n=Nu(null,n,r,e,t);break e;case 11:n=Su(null,n,r,e,t);break e;case 14:n=xu(null,n,r,ga(r.type,e),t);break e}throw Error(a(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,zu(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 1:return r=n.type,l=n.pendingProps,Nu(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 3:e:{if(Lu(n),null===e)throw Error(a(387));r=n.pendingProps,l=(o=n.memoizedState).element,Ma(e,n),Ia(n,r,null,t);var u=n.memoizedState;if(r=u.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},n.updateQueue.baseState=o,n.memoizedState=o,256&n.flags){n=Tu(e,n,r,t,l=cu(Error(a(423)),n));break e}if(r!==l){n=Tu(e,n,r,t,l=cu(Error(a(424)),n));break e}for(ra=sl(n.stateNode.containerInfo.firstChild),ta=n,la=!0,aa=null,t=Ga(n,null,r,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling}else{if(pa(),r===l){n=ju(e,n,t);break e}wu(e,n,r,t)}n=n.child}return n;case 5:return ao(n),null===e&&sa(n),r=n.type,l=n.pendingProps,o=null!==e?e.memoizedProps:null,u=l.children,tl(r,l)?u=null:null!==o&&tl(r,o)&&(n.flags|=32),_u(e,n),wu(e,n,u,t),n.child;case 6:return null===e&&sa(n),null;case 13:return Uu(e,n,t);case 4:return ro(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=Xa(n,null,r,t):wu(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,Su(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 7:return wu(e,n,n.pendingProps,t),n.child;case 8:case 12:return wu(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,o=n.memoizedProps,u=l.value,_l(va,r._currentValue),r._currentValue=u,null!==o)if(ur(o.value,u)){if(o.children===l.children&&!Pl.current){n=ju(e,n,t);break e}}else for(null!==(o=n.child)&&(o.return=n);null!==o;){var i=o.dependencies;if(null!==i){u=o.child;for(var s=i.firstContext;null!==s;){if(s.context===r){if(1===o.tag){(s=Fa(-1,t&-t)).tag=2;var c=o.updateQueue;if(null!==c){var f=(c=c.shared).pending;null===f?s.next=s:(s.next=f.next,f.next=s),c.pending=s}}o.lanes|=t,null!==(s=o.alternate)&&(s.lanes|=t),xa(o.return,t,n),i.lanes|=t;break}s=s.next}}else if(10===o.tag)u=o.type===n.type?null:o.child;else if(18===o.tag){if(null===(u=o.return))throw Error(a(341));u.lanes|=t,null!==(i=u.alternate)&&(i.lanes|=t),xa(u,t,n),u=o.sibling}else u=o.child;if(null!==u)u.return=o;else for(u=o;null!==u;){if(u===n){u=null;break}if(null!==(o=u.sibling)){o.return=u.return,u=o;break}u=u.return}o=u}wu(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Ea(n,t),r=r(l=Ca(l)),n.flags|=1,wu(e,n,r,t),n.child;case 14:return l=ga(r=n.type,n.pendingProps),xu(e,n,r,l=ga(r.type,l),t);case 15:return Eu(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:ga(r,l),Wu(e,n),n.tag=1,Ml(r)?(e=!0,Ol(n)):e=!1,Ea(n,t),Qa(n,r,l),ja(n,r,l,t),Pu(null,n,r,!0,e,t);case 19:return Qu(e,n,t);case 22:return Cu(e,n,t)}throw Error(a(156,n.tag))};var qs="function"===typeof reportError?reportError:function(e){console.error(e)};function Ys(e){this._internalRoot=e}function Xs(e){this._internalRoot=e}function Gs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Js(){}function ec(e,n,t,r,l){var a=t._reactRootContainer;if(a){var o=a;if("function"===typeof l){var u=l;l=function(){var e=js(o);u.call(e)}}Ws(n,o,e,l)}else o=function(e,n,t,r,l){if(l){if("function"===typeof r){var a=r;r=function(){var e=js(o);a.call(e)}}var o=Qs(n,r,e,0,null,!1,0,"",Js);return e._reactRootContainer=o,e[ml]=o.current,Br(8===e.nodeType?e.parentNode:e),fs(),o}for(;l=e.lastChild;)e.removeChild(l);if("function"===typeof r){var u=r;r=function(){var e=js(i);u.call(e)}}var i=Hs(e,0,!1,null,0,!1,0,"",Js);return e._reactRootContainer=i,e[ml]=i.current,Br(8===e.nodeType?e.parentNode:e),fs((function(){Ws(n,i,t,r)})),i}(t,n,e,l,r);return js(o)}Xs.prototype.render=Ys.prototype.render=function(e){var n=this._internalRoot;if(null===n)throw Error(a(409));Ws(e,n,null,null)},Xs.prototype.unmount=Ys.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var n=e.containerInfo;fs((function(){Ws(null,e,null,null)})),n[ml]=null}},Xs.prototype.unstable_scheduleHydration=function(e){if(e){var n=Cn();e={blockedOn:null,target:e,priority:n};for(var t=0;t<Dn.length&&0!==n&&n<Dn[t].priority;t++);Dn.splice(t,0,e),0===t&&Un(e)}},Sn=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var t=dn(n.pendingLanes);0!==t&&(bn(n,1|t),ls(n,Ge()),0===(6&Pi)&&(Qi=Ge()+500,Bl()))}break;case 13:fs((function(){var n=Pa(e,1);if(null!==n){var t=ns();rs(n,e,1,t)}})),Ks(e,1)}},xn=function(e){if(13===e.tag){var n=Pa(e,134217728);if(null!==n)rs(n,e,134217728,ns());Ks(e,134217728)}},En=function(e){if(13===e.tag){var n=ts(e),t=Pa(e,n);if(null!==t)rs(t,e,n,ns());Ks(e,n)}},Cn=function(){return kn},_n=function(e,n){var t=kn;try{return kn=e,n()}finally{kn=t}},Se=function(e,n,t){switch(n){case"input":if(Z(e,t),n=t.name,"radio"===t.type&&null!=n){for(t=e;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<t.length;n++){var r=t[n];if(r!==e&&r.form===e.form){var l=wl(r);if(!l)throw Error(a(90));K(r),Z(r,l)}}}break;case"textarea":ae(e,t);break;case"select":null!=(n=t.value)&&te(e,!!t.multiple,n,!1)}},Ne=cs,Pe=fs;var nc={usingClientEntryPoint:!1,Events:[bl,kl,wl,_e,ze,cs]},tc={findFiberByHostInstance:yl,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},rc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=je(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var lc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!lc.isDisabled&&lc.supportsFiber)try{ln=lc.inject(rc),an=lc}catch(ce){}}n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=nc,n.createPortal=function(e,n){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Gs(n))throw Error(a(200));return function(e,n,t){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:n,implementation:t}}(e,n,null,t)},n.createRoot=function(e,n){if(!Gs(e))throw Error(a(299));var t=!1,r="",l=qs;return null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(t=!0),void 0!==n.identifierPrefix&&(r=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),n=Hs(e,1,!1,null,0,t,0,r,l),e[ml]=n.current,Br(8===e.nodeType?e.parentNode:e),new Ys(n)},n.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var n=e._reactInternals;if(void 0===n){if("function"===typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=je(n))?null:e.stateNode},n.flushSync=function(e){return fs(e)},n.hydrate=function(e,n,t){if(!Zs(n))throw Error(a(200));return ec(null,e,n,!0,t)},n.hydrateRoot=function(e,n,t){if(!Gs(e))throw Error(a(405));var r=null!=t&&t.hydratedSources||null,l=!1,o="",u=qs;if(null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(l=!0),void 0!==t.identifierPrefix&&(o=t.identifierPrefix),void 0!==t.onRecoverableError&&(u=t.onRecoverableError)),n=Qs(n,null,e,1,null!=t?t:null,l,0,o,u),e[ml]=n.current,Br(e),r)for(e=0;e<r.length;e++)l=(l=(t=r[e])._getVersion)(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,l]:n.mutableSourceEagerHydrationData.push(t,l);return new Xs(n)},n.render=function(e,n,t){if(!Zs(n))throw Error(a(200));return ec(null,e,n,!1,t)},n.unmountComponentAtNode=function(e){if(!Zs(e))throw Error(a(40));return!!e._reactRootContainer&&(fs((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[ml]=null}))})),!0)},n.unstable_batchedUpdates=cs,n.unstable_renderSubtreeIntoContainer=function(e,n,t,r){if(!Zs(t))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return ec(e,n,t,!1,r)},n.version="18.2.0-next-9e3b772b8-20220608"},5338:(e,n,t)=>{var r=t(40961);n.H=r.createRoot,r.hydrateRoot},40961:(e,n,t)=>{!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}(),e.exports=t(22551)}}]); \ No newline at end of file
diff --git a/web/gui/v2/npm.react.dom.443419261632ac7d4e78.js.LICENSE.txt b/src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js.LICENSE.txt
index eef3c563e..eef3c563e 100644
--- a/web/gui/v2/npm.react.dom.443419261632ac7d4e78.js.LICENSE.txt
+++ b/src/web/gui/v2/npm.react.dom.b2a6a30db3d683abdb32.js.LICENSE.txt
diff --git a/web/gui/v2/registry-access.html b/src/web/gui/v2/registry-access.html
index 75a403034..75a403034 100644
--- a/web/gui/v2/registry-access.html
+++ b/src/web/gui/v2/registry-access.html
diff --git a/src/web/gui/v2/registry-alert-redirect.html b/src/web/gui/v2/registry-alert-redirect.html
new file mode 100644
index 000000000..0bb20a9eb
--- /dev/null
+++ b/src/web/gui/v2/registry-alert-redirect.html
@@ -0,0 +1,152 @@
+<!doctype html><html><head><title>Netdata Agent Alert Redirect</title><meta name="application-name" content="netdata"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><script>function loadStyle(url, { media, insertAfter: aref, insertBefore: bref, rel, type } = {}) {
+ rel = rel || 'stylesheet'
+ type = type || 'text/css'
+ return new Promise(function(resolve, reject) {
+ let link = document.createElement('link');
+ link.type = type;
+ link.rel = rel;
+ link.href = url;
+ link.media = media || 'all';
+
+ link.onerror = function(err) {
+ reject(new URIError(`loadStyle: the stylesheet ${err.target.src} is not accessible.`));
+ };
+
+ link.onload = function() {
+ resolve();
+ };
+
+ if (aref) {
+ aref.parentNode.insertBefore(link, aref.nextSibling);
+ return;
+ }
+
+ if (bref) {
+ bref.parentNode.insertBefore(link, bref);
+ return;
+ }
+
+ document.head.appendChild(link);
+ });
+ }
+
+ loadStyle("v2/static/splash.css")
+ loadStyle("v2/favicon.ico", {rel: "icon", type: "image/x-icon"})</script></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6CBMJD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="agent-splash-screen" class="loading"><div class="hero"><div class="logo-container"><svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo-blur"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="rgba(0,171,68,0.1)"/></svg> <svg width="133" height="105" viewBox="0 0 133 105" fill="none" xmlns="http://www.w3.org/2000/svg" class="logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M81.697 105H55.0693L0.5 0.5H77.9598C108.079 0.554913 132.484 24.7711 132.5 54.6451C132.452 82.485 109.73 105 81.697 105Z" fill="#DDFFEB"/></svg></div><div class="headings"><h1 class="title">Netdata Alert Notifications</h1><div class="flex-center flex-column" id="main-message">Trying to find a Netdata Agent for this alert...</div><table id="mynodes"></table></div></div></div><script>let searchParams = new URLSearchParams(location.search)
+ let mg = searchParams.get("agent_machine_guid")
+ let tr_i = searchParams.get("transition_id")
+ let token = location.hash.substring(1)
+
+ function buildIframe(url) {
+ let iframe = document.createElement('iframe');
+ iframe.src = url + "/registry-hello.html" + location.search + "&url=" + url;
+ iframe.style = { position: "absolute", left: "-99999999px" };
+ iframe.width = 0 ;
+ iframe.height = 0;
+ iframe.tabindex = -1;
+ iframe.title = "empty";
+ iframe.classList.add("hidden");
+ document.body.appendChild(iframe);
+ return iframe
+ }
+
+ function urlToId(s) {
+ s = s.trim();
+ s = s.replace(/^https?:\/\//i, '');
+ s = s.replace(/\W/g, '_');
+ return s;
+ }
+
+ fetch("api/v1/registry?action=hello", { cache: "no-cache", credentials: "include" })
+ .then(function(response) { return response.json() })
+ .then(function(helloData) {
+ if (helloData.anonymous_statistics !== false) {
+ (function (w, d, s, l, i) {
+ w[l] = w[l] || []
+ w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" })
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != "dataLayer" ? "&l=" + l : ""
+ j.async = true
+ j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl
+ f.parentNode.insertBefore(j, f)
+ })(window, document, "script", "dataLayer", "GTM-N6CBMJD")
+ }
+ fetch("api/v1/registry?action=search&for=" + mg, { cache: "no-cache", credentials: "include", headers: { ["X-Netdata-Auth"]: 'Bearer ' + (token || localStorage.getItem("registry-netdata-token")) } })
+ .then(function(response) { return response.json() })
+ .then(function(data) {
+ let table = document.getElementById("mynodes");
+
+ if (data.status === "ok") {
+ if (!token) {
+ if (location.protocol === "https:" && data.urls.some(function(u) {
+ return (/http:/).test(u)
+ })) {
+ return location.replace('http://' + location.href.substring(8) + "#" + localStorage.getItem("registry-netdata-token"))
+ }
+ }
+
+ data.urls.sort(function(a, b) {
+ return b[2] - a[2];
+ }).forEach(function(urlData) {
+ let urlMg = urlData[0]
+ let url = urlData[1]
+ let urlHostname = urlData[4]
+
+ let rowIframe = buildIframe(url)
+
+ let row = document.createElement("tr");
+ let cell1 = document.createElement("td");
+ let link = document.createElement("a");
+
+ link.href = (urlHostname ? (url + "/spaces/" + urlHostname + "/rooms/local/alerts/" + (tr_i || "") + location.search) : url + location.search).replace(/\/+/g, "/");
+ link.textContent = url;
+ link.target = "_blank";
+ link.classList.add("button", "ghost");
+
+ cell1.appendChild(link);
+ row.appendChild(cell1);
+
+ let cell2 = document.createElement("td");
+ cell2.id = urlToId("_" + url + urlMg);
+ cell2.textContent = "checking...";
+ row.appendChild(cell2);
+
+ table.appendChild(row);
+
+ window.addEventListener('message', function(event) {
+ if (event.source !== rowIframe.contentWindow) return;
+ if (event.data.url !== url || event.data.mg !== urlMg) return;
+ link.href = event.data.hostname ? (url + "/spaces/" + event.data.hostname + "/rooms/local/alerts/" + (tr_i || "") + location.search) : url + location.search;
+
+ let cellStatus = document.getElementById(urlToId("_" + url + urlMg));
+ if (event.data.isSame) {
+ cell2.textContent = "OK";
+ } else if (event.data.hasError) {
+ cell2.textContent = "can't connect";
+ } else {
+ cell2.textContent = "wrong node";
+ }
+ });
+
+ setTimeout(function() {
+ let cellStatus = document.getElementById(urlToId("_" + url + urlMg));
+ document.getElementById('agent-splash-screen').classList.remove("loading");
+ if (cell2.textContent !== "checking...") {
+ return;
+ }
+ cell2.textContent = "can't connect";
+ }, 5000)
+ })
+ let el = document.getElementById('agent-splash-screen');
+ el.classList.add("table");
+ document.getElementById('main-message').textContent = "Select a URL to see details about this alert:"
+ } else {
+ let el = document.getElementById('main-message');
+ el.innerHTML = "<p>Can't find any Netdata Agent for this alert.</p><small>Netdata learns Agent URLs when you view them and associates them with web browsers.<br/>Probably, you have never viewed the dashboard of the Netdata Agent that sent this notification, with the browser you use now.</small>"
+ }
+ }).catch(function(e) {
+ let el = document.getElementById('main-message');
+ el.textContent = "Oops! Something went wrong."
+ })
+
+ })</script></body></html> \ No newline at end of file
diff --git a/web/gui/v2/registry-hello.html b/src/web/gui/v2/registry-hello.html
index 7fba5662c..7fba5662c 100644
--- a/web/gui/v2/registry-hello.html
+++ b/src/web/gui/v2/registry-hello.html
diff --git a/src/web/gui/v2/runtime.30ce76c6e7acf60ebf83.js b/src/web/gui/v2/runtime.30ce76c6e7acf60ebf83.js
new file mode 100644
index 000000000..9bc9724bf
--- /dev/null
+++ b/src/web/gui/v2/runtime.30ce76c6e7acf60ebf83.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},a=(new Error).stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="7660cd3e-b979-43b6-8e61-44914b4def01",e._sentryDebugIdIdentifier="sentry-dbid-7660cd3e-b979-43b6-8e61-44914b4def01")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(()=>{"use strict";var e={},a={};function t(d){var r=a[d];if(void 0!==r)return r.exports;var c=a[d]={id:d,loaded:!1,exports:{}};return e[d].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}t.m=e,(()=>{var e=[];t.O=(a,d,r,c)=>{if(!d){var n=1/0;for(i=0;i<e.length;i++){d=e[i][0],r=e[i][1],c=e[i][2];for(var f=!0,o=0;o<d.length;o++)(!1&c||n>=c)&&Object.keys(t.O).every((e=>t.O[e](d[o])))?d.splice(o--,1):(f=!1,c<n&&(n=c));if(f){e.splice(i--,1);var b=r();void 0!==b&&(a=b)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,r,c]}})(),t.F={},t.E=e=>{Object.keys(t.F).map((a=>{t.F[a](e)}))},t.H={},t.G=e=>{Object.keys(t.H).map((a=>{t.H[a](e)}))},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},(()=>{var e,a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;t.t=function(d,r){if(1&r&&(d=this(d)),8&r)return d;if("object"===typeof d&&d){if(4&r&&d.__esModule)return d;if(16&r&&"function"===typeof d.then)return d}var c=Object.create(null);t.r(c);var n={};e=e||[null,a({}),a([]),a(a)];for(var f=2&r&&d;"object"==typeof f&&!~e.indexOf(f);f=a(f))Object.getOwnPropertyNames(f).forEach((e=>n[e]=()=>d[e]));return n.default=()=>d,t.d(c,n),c}})(),t.d=(e,a)=>{for(var d in a)t.o(a,d)&&!t.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,d)=>(t.f[d](e,a),a)),[])),t.u=e=>e+"."+{86:"167efe55b22f02c3155a",185:"7461f65d16b20fe83fc1",195:"3898e2d9ea61ff1d4a4f",683:"95b7a3193b43fd5dbe51",749:"8ce93b3d6d67d600e8c8",785:"c45abbb1e2a4915d85df",934:"aadd4297c0cd646a1038",966:"8f0a484a79552c192bc1",1220:"866e5f8ef6dd53cc1146",1396:"3ea7b55a3bffeef95530",1418:"a399f41ec9789d008612",1726:"e4f235562d58cb4f4044",1782:"31d84c467a8446cb3c47",1839:"1dcd23c81c97fb79bfdb",1875:"e736e046980cb8eb4cda",1876:"ba66fdbcfb1b55334646",2007:"3c73c91371062be4c05e",2414:"38b580f70a86a4f94b83",3104:"dfd9b1f79c9550ab8493",3296:"66994eada739315fc37e",3350:"24934ec57134cbef07bf",3584:"7b6df71f431fe58061ad",3624:"b8b5bc981ae890a8a5b8",3705:"38e023af816fb6ce8fc9",3731:"40bfabd5c5a12309b1a9",3736:"b247e40ccbdc039b9877",3750:"6f01a0becb7db332b4ce",3968:"a5f7366160b7ac086dba",4034:"9c82e72b081978919942",4414:"60a74c3b7534b4a25469",4680:"0c75b44bbc80f4591fdd",5246:"a7c78643acccf04d7268",5304:"dcb81c99fcb90f8ee8cc",5426:"1235a7a39c1b0923b071",5596:"8280cb325a103342aa30",5598:"99e492f7ae4d391df96f",5700:"313f7b9c7005d2022b03",5709:"6fc5fd48f639100fa6ad",5794:"719f2daca8b8f3a118fe",6008:"07f03fb5dba476a12f91",6121:"8c25bb62d82381e90df8",6218:"26fc25279f45fbcf29f7",6323:"425683f5bf71a51caf65",6331:"ccfaab2b17a28e1b6aa2",6760:"fe4a9b58186542294e85",7144:"72da82bc4f112d1e6d31",7146:"43b5125ff0b41138f0bc",7208:"3c255b9641ab4d451747",7332:"8f89f4887946c129ea01",7340:"c563ddaad6c68dab9088",7410:"cb47519a7a5187208b28",7436:"6d4c25c5ff7d2e65734c",7471:"d61aa69f317a13bd1b86",7519:"8a99c6b9370779196847",7529:"75d71f48d8d6ea454b6d",7789:"f00b7764a97a7dadff97",7840:"e1af907905ff10afb069",7857:"0d6fb5e4a2c2b8996e0f",7959:"3995671185f9720b5454",8011:"3f8282bb427ea06e9408",8059:"c88ad65e1926faee2379",8323:"61daef62d0036dd19dbf",8473:"757c1686b1578c6813c8",8505:"b10bf3549c213fe15d55",8507:"e30db778518756ef63fa",8676:"a3d687b3b339a72ab66e",8784:"c51d36fede97c85313e9",9297:"394c9cbf0a1e402384a6",9473:"3693c06a873280f11bd6",9510:"58c95eb5f0290291b5a9",9818:"ca4131b4d88d20e88f72",9843:"75b313f97c4d363a4959",9912:"b952e26497a284ac37b2"}[e]+".chunk.js",t.miniCssF=e=>e+"."+{683:"cc9fa5f3bdc0bf3ab2fc",966:"89070793921be1288bb5",6331:"89070793921be1288bb5",7789:"89070793921be1288bb5",8323:"e22de33686bb2f34063c",8507:"89070793921be1288bb5"}[e]+".css",t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={},a="cloud-frontend:";t.l=(d,r,c,n)=>{if(e[d])e[d].push(r);else{var f,o;if(void 0!==c)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var l=b[i];if(l.getAttribute("src")==d||l.getAttribute("data-webpack")==a+c){f=l;break}}f||(o=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,t.nc&&f.setAttribute("nonce",t.nc),f.setAttribute("data-webpack",a+c),f.src=d),e[d]=[r];var u=(a,t)=>{f.onerror=f.onload=null,clearTimeout(s);var r=e[d];if(delete e[d],f.parentNode&&f.parentNode.removeChild(f),r&&r.forEach((e=>e(t))),a)return a(t)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),o&&document.head.appendChild(f)}}})(),t.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.p="/",(()=>{if("undefined"!==typeof document){var e=e=>new Promise(((a,d)=>{var r=t.miniCssF(e),c=t.p+r;if(((e,a)=>{for(var t=document.getElementsByTagName("link"),d=0;d<t.length;d++){var r=(n=t[d]).getAttribute("data-href")||n.getAttribute("href");if("stylesheet"===n.rel&&(r===e||r===a))return n}var c=document.getElementsByTagName("style");for(d=0;d<c.length;d++){var n;if((r=(n=c[d]).getAttribute("data-href"))===e||r===a)return n}})(r,c))return a();((e,a,d,r,c)=>{var n=document.createElement("link");n.rel="stylesheet",n.type="text/css",t.nc&&(n.nonce=t.nc),n.onerror=n.onload=t=>{if(n.onerror=n.onload=null,"load"===t.type)r();else{var d=t&&t.type,f=t&&t.target&&t.target.href||a,o=new Error("Loading CSS chunk "+e+" failed.\n("+d+": "+f+")");o.name="ChunkLoadError",o.code="CSS_CHUNK_LOAD_FAILED",o.type=d,o.request=f,n.parentNode&&n.parentNode.removeChild(n),c(o)}},n.href=a,d?d.parentNode.insertBefore(n,d.nextSibling):document.head.appendChild(n)})(e,c,null,a,d)})),a={9121:0};t.f.miniCss=(t,d)=>{a[t]?d.push(a[t]):0!==a[t]&&{683:1,966:1,6331:1,7789:1,8323:1,8507:1}[t]&&d.push(a[t]=e(t).then((()=>{a[t]=0}),(e=>{throw delete a[t],e})))}}})(),(()=>{var e={9121:0};t.f.j=(a,d)=>{var r=t.o(e,a)?e[a]:void 0;if(0!==r)if(r)d.push(r[2]);else if(9121!=a){var c=new Promise(((t,d)=>r=e[a]=[t,d]));d.push(r[2]=c);var n=t.p+t.u(a),f=new Error;t.l(n,(d=>{if(t.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var c=d&&("load"===d.type?"missing":d.type),n=d&&d.target&&d.target.src;f.message="Loading chunk "+a+" failed.\n("+c+": "+n+")",f.name="ChunkLoadError",f.type=c,f.request=n,r[1](f)}}),"chunk-"+a,a)}else e[a]=0},t.F.j=a=>{if((!t.o(e,a)||void 0===e[a])&&9121!=a){e[a]=null;var d=document.createElement("link");t.nc&&d.setAttribute("nonce",t.nc),d.rel="prefetch",d.as="script",d.href=t.p+t.u(a),document.head.appendChild(d)}},t.H.j=a=>{if((!t.o(e,a)||void 0===e[a])&&9121!=a){e[a]=null;var d=document.createElement("link");d.charset="utf-8",t.nc&&d.setAttribute("nonce",t.nc),d.rel="preload",d.as="script",d.href=t.p+t.u(a),document.head.appendChild(d)}},t.O.j=a=>0===e[a];var a=(a,d)=>{var r,c,n=d[0],f=d[1],o=d[2],b=0;if(n.some((a=>0!==e[a]))){for(r in f)t.o(f,r)&&(t.m[r]=f[r]);if(o)var i=o(t)}for(a&&a(d);b<n.length;b++)c=n[b],t.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return t.O(i)},d=self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})(),t.nc=void 0,(()=>{var e={934:[7144,6331],1726:[1220,749,9510,6218],5304:[8011],5598:[7410,1726,4680],7471:[7519,8323,5598],8676:[5304]};t.f.prefetch=(a,d)=>Promise.all(d).then((()=>{var d=e[a];Array.isArray(d)&&d.map(t.E)}))})(),(()=>{var e={185:[4414],6218:[4414]};t.f.preload=a=>{var d=e[a];Array.isArray(d)&&d.map(t.G)}})()})(); \ No newline at end of file
diff --git a/src/web/gui/v2/static/.well-known/assetlinks.json b/src/web/gui/v2/static/.well-known/assetlinks.json
new file mode 100644
index 000000000..270af6689
--- /dev/null
+++ b/src/web/gui/v2/static/.well-known/assetlinks.json
@@ -0,0 +1,11 @@
+[
+ {
+ "relation": ["delegate_permission/common.handle_all_urls"],
+ "target": {
+ "namespace": "android_app",
+ "package_name": "cloud.netdata.android",
+ "sha256_cert_fingerprints":
+ ["67:F4:89:2B:8D:A9:2D:CB:91:ED:A1:BD:42:04:90:28:05:4F:3E:81:04:7B:76:B6:0A:20:30:6C:90:38:08:90","1F:B8:9A:45:AD:83:76:DD:7E:A5:9A:07:82:4A:2F:99:3E:0D:EB:64:FA:50:76:59:65:3F:CC:38:7F:32:28:AA"]
+ }
+ }
+]
diff --git a/web/gui/v2/static/apple-app-site-association b/src/web/gui/v2/static/apple-app-site-association
index c4593e0c7..c4593e0c7 100644
--- a/web/gui/v2/static/apple-app-site-association
+++ b/src/web/gui/v2/static/apple-app-site-association
diff --git a/web/gui/v2/static/email/img/clea_badge.png b/src/web/gui/v2/static/email/img/clea_badge.png
index b558560b9..b558560b9 100644
--- a/web/gui/v2/static/email/img/clea_badge.png
+++ b/src/web/gui/v2/static/email/img/clea_badge.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/clea_siren.png b/src/web/gui/v2/static/email/img/clea_siren.png
index 28243dcff..28243dcff 100644
--- a/web/gui/v2/static/email/img/clea_siren.png
+++ b/src/web/gui/v2/static/email/img/clea_siren.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/community_icon.png b/src/web/gui/v2/static/email/img/community_icon.png
index d8ee4c918..d8ee4c918 100644
--- a/web/gui/v2/static/email/img/community_icon.png
+++ b/src/web/gui/v2/static/email/img/community_icon.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/configure_icon.png b/src/web/gui/v2/static/email/img/configure_icon.png
index 5e8698aa8..5e8698aa8 100644
--- a/web/gui/v2/static/email/img/configure_icon.png
+++ b/src/web/gui/v2/static/email/img/configure_icon.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/crit_badge.png b/src/web/gui/v2/static/email/img/crit_badge.png
index 76b84a11a..76b84a11a 100644
--- a/web/gui/v2/static/email/img/crit_badge.png
+++ b/src/web/gui/v2/static/email/img/crit_badge.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/crit_siren.png b/src/web/gui/v2/static/email/img/crit_siren.png
index 5b0f6534a..5b0f6534a 100644
--- a/web/gui/v2/static/email/img/crit_siren.png
+++ b/src/web/gui/v2/static/email/img/crit_siren.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/flood_siren.png b/src/web/gui/v2/static/email/img/flood_siren.png
index e4d88acb9..e4d88acb9 100644
--- a/web/gui/v2/static/email/img/flood_siren.png
+++ b/src/web/gui/v2/static/email/img/flood_siren.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/full_logo.png b/src/web/gui/v2/static/email/img/full_logo.png
index de29829db..de29829db 100644
--- a/web/gui/v2/static/email/img/full_logo.png
+++ b/src/web/gui/v2/static/email/img/full_logo.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/header.png b/src/web/gui/v2/static/email/img/header.png
index cf845a035..cf845a035 100644
--- a/web/gui/v2/static/email/img/header.png
+++ b/src/web/gui/v2/static/email/img/header.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/isotype_600.png b/src/web/gui/v2/static/email/img/isotype_600.png
index 11762d6b0..11762d6b0 100644
--- a/web/gui/v2/static/email/img/isotype_600.png
+++ b/src/web/gui/v2/static/email/img/isotype_600.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/label_critical.png b/src/web/gui/v2/static/email/img/label_critical.png
index 9e168a8ea..9e168a8ea 100644
--- a/web/gui/v2/static/email/img/label_critical.png
+++ b/src/web/gui/v2/static/email/img/label_critical.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/label_recovered.png b/src/web/gui/v2/static/email/img/label_recovered.png
index 5960455a1..5960455a1 100644
--- a/web/gui/v2/static/email/img/label_recovered.png
+++ b/src/web/gui/v2/static/email/img/label_recovered.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/label_warning.png b/src/web/gui/v2/static/email/img/label_warning.png
index 02fc40fde..02fc40fde 100644
--- a/web/gui/v2/static/email/img/label_warning.png
+++ b/src/web/gui/v2/static/email/img/label_warning.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/reachability_siren.png b/src/web/gui/v2/static/email/img/reachability_siren.png
index fd3f0e0c2..fd3f0e0c2 100644
--- a/web/gui/v2/static/email/img/reachability_siren.png
+++ b/src/web/gui/v2/static/email/img/reachability_siren.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/warn_badge.png b/src/web/gui/v2/static/email/img/warn_badge.png
index 4cf158f2b..4cf158f2b 100644
--- a/web/gui/v2/static/email/img/warn_badge.png
+++ b/src/web/gui/v2/static/email/img/warn_badge.png
Binary files differ
diff --git a/web/gui/v2/static/email/img/warn_siren.png b/src/web/gui/v2/static/email/img/warn_siren.png
index cae2ef72d..cae2ef72d 100644
--- a/web/gui/v2/static/email/img/warn_siren.png
+++ b/src/web/gui/v2/static/email/img/warn_siren.png
Binary files differ
diff --git a/web/gui/v2/static/img/list-style-image.svg b/src/web/gui/v2/static/img/list-style-image.svg
index 3945237ac..3945237ac 100644
--- a/web/gui/v2/static/img/list-style-image.svg
+++ b/src/web/gui/v2/static/img/list-style-image.svg
diff --git a/web/gui/v2/static/img/logos/os/alpine.svg b/src/web/gui/v2/static/img/logos/os/alpine.svg
index 9414b3d04..9414b3d04 100644
--- a/web/gui/v2/static/img/logos/os/alpine.svg
+++ b/src/web/gui/v2/static/img/logos/os/alpine.svg
diff --git a/web/gui/v2/static/img/logos/os/arch.svg b/src/web/gui/v2/static/img/logos/os/arch.svg
index 3cee35be3..3cee35be3 100644
--- a/web/gui/v2/static/img/logos/os/arch.svg
+++ b/src/web/gui/v2/static/img/logos/os/arch.svg
diff --git a/web/gui/v2/static/img/logos/os/centos.svg b/src/web/gui/v2/static/img/logos/os/centos.svg
index aa66775d1..aa66775d1 100644
--- a/web/gui/v2/static/img/logos/os/centos.svg
+++ b/src/web/gui/v2/static/img/logos/os/centos.svg
diff --git a/web/gui/v2/static/img/logos/os/coreos.svg b/src/web/gui/v2/static/img/logos/os/coreos.svg
index f93869fb6..f93869fb6 100644
--- a/web/gui/v2/static/img/logos/os/coreos.svg
+++ b/src/web/gui/v2/static/img/logos/os/coreos.svg
diff --git a/web/gui/v2/static/img/logos/os/debian.svg b/src/web/gui/v2/static/img/logos/os/debian.svg
index 083f60571..083f60571 100644
--- a/web/gui/v2/static/img/logos/os/debian.svg
+++ b/src/web/gui/v2/static/img/logos/os/debian.svg
diff --git a/web/gui/v2/static/img/logos/os/docker.svg b/src/web/gui/v2/static/img/logos/os/docker.svg
index c13c890be..c13c890be 100644
--- a/web/gui/v2/static/img/logos/os/docker.svg
+++ b/src/web/gui/v2/static/img/logos/os/docker.svg
diff --git a/web/gui/v2/static/img/logos/os/fedora.svg b/src/web/gui/v2/static/img/logos/os/fedora.svg
index 4867c0831..4867c0831 100644
--- a/web/gui/v2/static/img/logos/os/fedora.svg
+++ b/src/web/gui/v2/static/img/logos/os/fedora.svg
diff --git a/web/gui/v2/static/img/logos/os/freebsd.svg b/src/web/gui/v2/static/img/logos/os/freebsd.svg
index d78ca7fd4..d78ca7fd4 100644
--- a/web/gui/v2/static/img/logos/os/freebsd.svg
+++ b/src/web/gui/v2/static/img/logos/os/freebsd.svg
diff --git a/web/gui/v2/static/img/logos/os/freenas.svg b/src/web/gui/v2/static/img/logos/os/freenas.svg
index 0772cef55..0772cef55 100644
--- a/web/gui/v2/static/img/logos/os/freenas.svg
+++ b/src/web/gui/v2/static/img/logos/os/freenas.svg
diff --git a/web/gui/v2/static/img/logos/os/gentoo.svg b/src/web/gui/v2/static/img/logos/os/gentoo.svg
index c49fa2199..c49fa2199 100644
--- a/web/gui/v2/static/img/logos/os/gentoo.svg
+++ b/src/web/gui/v2/static/img/logos/os/gentoo.svg
diff --git a/web/gui/v2/static/img/logos/os/kubernetes.svg b/src/web/gui/v2/static/img/logos/os/kubernetes.svg
index bedd3b88e..bedd3b88e 100644
--- a/web/gui/v2/static/img/logos/os/kubernetes.svg
+++ b/src/web/gui/v2/static/img/logos/os/kubernetes.svg
diff --git a/web/gui/v2/static/img/logos/os/linux-small.svg b/src/web/gui/v2/static/img/logos/os/linux-small.svg
index 7350c0c64..7350c0c64 100644
--- a/web/gui/v2/static/img/logos/os/linux-small.svg
+++ b/src/web/gui/v2/static/img/logos/os/linux-small.svg
diff --git a/web/gui/v2/static/img/logos/os/linux.svg b/src/web/gui/v2/static/img/logos/os/linux.svg
index e2fb3b4e7..e2fb3b4e7 100644
--- a/web/gui/v2/static/img/logos/os/linux.svg
+++ b/src/web/gui/v2/static/img/logos/os/linux.svg
diff --git a/web/gui/v2/static/img/logos/os/macos.svg b/src/web/gui/v2/static/img/logos/os/macos.svg
index d40abdd54..d40abdd54 100644
--- a/web/gui/v2/static/img/logos/os/macos.svg
+++ b/src/web/gui/v2/static/img/logos/os/macos.svg
diff --git a/web/gui/v2/static/img/logos/os/manjaro.svg b/src/web/gui/v2/static/img/logos/os/manjaro.svg
index 86658a22b..86658a22b 100644
--- a/web/gui/v2/static/img/logos/os/manjaro.svg
+++ b/src/web/gui/v2/static/img/logos/os/manjaro.svg
diff --git a/web/gui/v2/static/img/logos/os/openstack.svg b/src/web/gui/v2/static/img/logos/os/openstack.svg
index dd4de008b..dd4de008b 100644
--- a/web/gui/v2/static/img/logos/os/openstack.svg
+++ b/src/web/gui/v2/static/img/logos/os/openstack.svg
diff --git a/web/gui/v2/static/img/logos/os/opensuse.svg b/src/web/gui/v2/static/img/logos/os/opensuse.svg
index a0710f172..a0710f172 100644
--- a/web/gui/v2/static/img/logos/os/opensuse.svg
+++ b/src/web/gui/v2/static/img/logos/os/opensuse.svg
diff --git a/web/gui/v2/static/img/logos/os/openwrt.svg b/src/web/gui/v2/static/img/logos/os/openwrt.svg
index 312db0a74..312db0a74 100644
--- a/web/gui/v2/static/img/logos/os/openwrt.svg
+++ b/src/web/gui/v2/static/img/logos/os/openwrt.svg
diff --git a/web/gui/v2/static/img/logos/os/oracle.svg b/src/web/gui/v2/static/img/logos/os/oracle.svg
index 0d2ab76d1..0d2ab76d1 100644
--- a/web/gui/v2/static/img/logos/os/oracle.svg
+++ b/src/web/gui/v2/static/img/logos/os/oracle.svg
diff --git a/web/gui/v2/static/img/logos/os/pfsense.svg b/src/web/gui/v2/static/img/logos/os/pfsense.svg
index 9fede7bee..9fede7bee 100644
--- a/web/gui/v2/static/img/logos/os/pfsense.svg
+++ b/src/web/gui/v2/static/img/logos/os/pfsense.svg
diff --git a/web/gui/v2/static/img/logos/os/placeholder.svg b/src/web/gui/v2/static/img/logos/os/placeholder.svg
index 51c04b229..51c04b229 100644
--- a/web/gui/v2/static/img/logos/os/placeholder.svg
+++ b/src/web/gui/v2/static/img/logos/os/placeholder.svg
diff --git a/web/gui/v2/static/img/logos/os/raspberry-pi.svg b/src/web/gui/v2/static/img/logos/os/raspberry-pi.svg
index cad803341..cad803341 100644
--- a/web/gui/v2/static/img/logos/os/raspberry-pi.svg
+++ b/src/web/gui/v2/static/img/logos/os/raspberry-pi.svg
diff --git a/web/gui/v2/static/img/logos/os/redhat.svg b/src/web/gui/v2/static/img/logos/os/redhat.svg
index 86e77c32e..86e77c32e 100644
--- a/web/gui/v2/static/img/logos/os/redhat.svg
+++ b/src/web/gui/v2/static/img/logos/os/redhat.svg
diff --git a/web/gui/v2/static/img/logos/os/rocky.svg b/src/web/gui/v2/static/img/logos/os/rocky.svg
index 58f22104e..58f22104e 100644
--- a/web/gui/v2/static/img/logos/os/rocky.svg
+++ b/src/web/gui/v2/static/img/logos/os/rocky.svg
diff --git a/web/gui/v2/static/img/logos/os/suse.svg b/src/web/gui/v2/static/img/logos/os/suse.svg
index 6b90da7be..6b90da7be 100644
--- a/web/gui/v2/static/img/logos/os/suse.svg
+++ b/src/web/gui/v2/static/img/logos/os/suse.svg
diff --git a/web/gui/v2/static/img/logos/os/ubuntu.svg b/src/web/gui/v2/static/img/logos/os/ubuntu.svg
index d1bfeab5c..d1bfeab5c 100644
--- a/web/gui/v2/static/img/logos/os/ubuntu.svg
+++ b/src/web/gui/v2/static/img/logos/os/ubuntu.svg
diff --git a/web/gui/v2/static/img/logos/services/access-point.svg b/src/web/gui/v2/static/img/logos/services/access-point.svg
index 12a916a72..12a916a72 100644
--- a/web/gui/v2/static/img/logos/services/access-point.svg
+++ b/src/web/gui/v2/static/img/logos/services/access-point.svg
diff --git a/web/gui/v2/static/img/logos/services/activemq.svg b/src/web/gui/v2/static/img/logos/services/activemq.svg
index c180c6d58..c180c6d58 100644
--- a/web/gui/v2/static/img/logos/services/activemq.svg
+++ b/src/web/gui/v2/static/img/logos/services/activemq.svg
diff --git a/web/gui/v2/static/img/logos/services/adaptec.svg b/src/web/gui/v2/static/img/logos/services/adaptec.svg
index e0dc16a90..e0dc16a90 100644
--- a/web/gui/v2/static/img/logos/services/adaptec.svg
+++ b/src/web/gui/v2/static/img/logos/services/adaptec.svg
diff --git a/web/gui/v2/static/img/logos/services/alerta.svg b/src/web/gui/v2/static/img/logos/services/alerta.svg
index 8ed603b08..8ed603b08 100644
--- a/web/gui/v2/static/img/logos/services/alerta.svg
+++ b/src/web/gui/v2/static/img/logos/services/alerta.svg
diff --git a/web/gui/v2/static/img/logos/services/apache.svg b/src/web/gui/v2/static/img/logos/services/apache.svg
index 2c4e2740d..2c4e2740d 100644
--- a/web/gui/v2/static/img/logos/services/apache.svg
+++ b/src/web/gui/v2/static/img/logos/services/apache.svg
diff --git a/web/gui/v2/static/img/logos/services/apc.svg b/src/web/gui/v2/static/img/logos/services/apc.svg
index 124ce8435..124ce8435 100644
--- a/web/gui/v2/static/img/logos/services/apc.svg
+++ b/src/web/gui/v2/static/img/logos/services/apc.svg
diff --git a/web/gui/v2/static/img/logos/services/aws-sns.svg b/src/web/gui/v2/static/img/logos/services/aws-sns.svg
index 468f74543..468f74543 100644
--- a/web/gui/v2/static/img/logos/services/aws-sns.svg
+++ b/src/web/gui/v2/static/img/logos/services/aws-sns.svg
diff --git a/web/gui/v2/static/img/logos/services/aws.svg b/src/web/gui/v2/static/img/logos/services/aws.svg
index 379ec8e6a..379ec8e6a 100644
--- a/web/gui/v2/static/img/logos/services/aws.svg
+++ b/src/web/gui/v2/static/img/logos/services/aws.svg
diff --git a/web/gui/v2/static/img/logos/services/beanstalkd.svg b/src/web/gui/v2/static/img/logos/services/beanstalkd.svg
index 652824844..652824844 100644
--- a/web/gui/v2/static/img/logos/services/beanstalkd.svg
+++ b/src/web/gui/v2/static/img/logos/services/beanstalkd.svg
diff --git a/web/gui/v2/static/img/logos/services/boinc.svg b/src/web/gui/v2/static/img/logos/services/boinc.svg
index d13d48ed5..d13d48ed5 100644
--- a/web/gui/v2/static/img/logos/services/boinc.svg
+++ b/src/web/gui/v2/static/img/logos/services/boinc.svg
diff --git a/web/gui/v2/static/img/logos/services/btrfs.svg b/src/web/gui/v2/static/img/logos/services/btrfs.svg
index d262c8087..d262c8087 100644
--- a/web/gui/v2/static/img/logos/services/btrfs.svg
+++ b/src/web/gui/v2/static/img/logos/services/btrfs.svg
diff --git a/web/gui/v2/static/img/logos/services/ceph.svg b/src/web/gui/v2/static/img/logos/services/ceph.svg
index bd78c7477..bd78c7477 100644
--- a/web/gui/v2/static/img/logos/services/ceph.svg
+++ b/src/web/gui/v2/static/img/logos/services/ceph.svg
diff --git a/web/gui/v2/static/img/logos/services/chrony.svg b/src/web/gui/v2/static/img/logos/services/chrony.svg
index 4528c4df0..4528c4df0 100644
--- a/web/gui/v2/static/img/logos/services/chrony.svg
+++ b/src/web/gui/v2/static/img/logos/services/chrony.svg
diff --git a/web/gui/v2/static/img/logos/services/cloud.svg b/src/web/gui/v2/static/img/logos/services/cloud.svg
index 7cad10ef3..7cad10ef3 100644
--- a/web/gui/v2/static/img/logos/services/cloud.svg
+++ b/src/web/gui/v2/static/img/logos/services/cloud.svg
diff --git a/web/gui/v2/static/img/logos/services/concul.svg b/src/web/gui/v2/static/img/logos/services/concul.svg
index 2876d2f90..2876d2f90 100644
--- a/web/gui/v2/static/img/logos/services/concul.svg
+++ b/src/web/gui/v2/static/img/logos/services/concul.svg
diff --git a/web/gui/v2/static/img/logos/services/consul.svg b/src/web/gui/v2/static/img/logos/services/consul.svg
index 3396a7af7..3396a7af7 100644
--- a/web/gui/v2/static/img/logos/services/consul.svg
+++ b/src/web/gui/v2/static/img/logos/services/consul.svg
diff --git a/web/gui/v2/static/img/logos/services/container.svg b/src/web/gui/v2/static/img/logos/services/container.svg
index b196a1b38..b196a1b38 100644
--- a/web/gui/v2/static/img/logos/services/container.svg
+++ b/src/web/gui/v2/static/img/logos/services/container.svg
diff --git a/web/gui/v2/static/img/logos/services/couchdb.svg b/src/web/gui/v2/static/img/logos/services/couchdb.svg
index 035103ed1..035103ed1 100644
--- a/web/gui/v2/static/img/logos/services/couchdb.svg
+++ b/src/web/gui/v2/static/img/logos/services/couchdb.svg
diff --git a/web/gui/v2/static/img/logos/services/cups.svg b/src/web/gui/v2/static/img/logos/services/cups.svg
index bf2502ae8..bf2502ae8 100644
--- a/web/gui/v2/static/img/logos/services/cups.svg
+++ b/src/web/gui/v2/static/img/logos/services/cups.svg
diff --git a/web/gui/v2/static/img/logos/services/data-encryption.svg b/src/web/gui/v2/static/img/logos/services/data-encryption.svg
index 8ba5f7298..8ba5f7298 100644
--- a/web/gui/v2/static/img/logos/services/data-encryption.svg
+++ b/src/web/gui/v2/static/img/logos/services/data-encryption.svg
diff --git a/web/gui/v2/static/img/logos/services/ddos.svg b/src/web/gui/v2/static/img/logos/services/ddos.svg
index 40f1ea2a9..40f1ea2a9 100644
--- a/web/gui/v2/static/img/logos/services/ddos.svg
+++ b/src/web/gui/v2/static/img/logos/services/ddos.svg
diff --git a/web/gui/v2/static/img/logos/services/discord.svg b/src/web/gui/v2/static/img/logos/services/discord.svg
index 65c9fccff..65c9fccff 100644
--- a/web/gui/v2/static/img/logos/services/discord.svg
+++ b/src/web/gui/v2/static/img/logos/services/discord.svg
diff --git a/web/gui/v2/static/img/logos/services/dns.svg b/src/web/gui/v2/static/img/logos/services/dns.svg
index 50a0642cc..50a0642cc 100644
--- a/web/gui/v2/static/img/logos/services/dns.svg
+++ b/src/web/gui/v2/static/img/logos/services/dns.svg
diff --git a/web/gui/v2/static/img/logos/services/docker.svg b/src/web/gui/v2/static/img/logos/services/docker.svg
index 08f2aef4d..08f2aef4d 100644
--- a/web/gui/v2/static/img/logos/services/docker.svg
+++ b/src/web/gui/v2/static/img/logos/services/docker.svg
diff --git a/web/gui/v2/static/img/logos/services/dovecot.svg b/src/web/gui/v2/static/img/logos/services/dovecot.svg
index 5b85a4e9f..5b85a4e9f 100644
--- a/web/gui/v2/static/img/logos/services/dovecot.svg
+++ b/src/web/gui/v2/static/img/logos/services/dovecot.svg
diff --git a/web/gui/v2/static/img/logos/services/elasticsearch.svg b/src/web/gui/v2/static/img/logos/services/elasticsearch.svg
index 50a1f1eeb..50a1f1eeb 100644
--- a/web/gui/v2/static/img/logos/services/elasticsearch.svg
+++ b/src/web/gui/v2/static/img/logos/services/elasticsearch.svg
diff --git a/web/gui/v2/static/img/logos/services/email.svg b/src/web/gui/v2/static/img/logos/services/email.svg
index 081c72d28..081c72d28 100644
--- a/web/gui/v2/static/img/logos/services/email.svg
+++ b/src/web/gui/v2/static/img/logos/services/email.svg
diff --git a/web/gui/v2/static/img/logos/services/exim.svg b/src/web/gui/v2/static/img/logos/services/exim.svg
index 34de12b3c..34de12b3c 100644
--- a/web/gui/v2/static/img/logos/services/exim.svg
+++ b/src/web/gui/v2/static/img/logos/services/exim.svg
diff --git a/web/gui/v2/static/img/logos/services/fail2ban.svg b/src/web/gui/v2/static/img/logos/services/fail2ban.svg
index 296262b58..296262b58 100644
--- a/web/gui/v2/static/img/logos/services/fail2ban.svg
+++ b/src/web/gui/v2/static/img/logos/services/fail2ban.svg
diff --git a/web/gui/v2/static/img/logos/services/flock.svg b/src/web/gui/v2/static/img/logos/services/flock.svg
index a54b35d9e..a54b35d9e 100644
--- a/web/gui/v2/static/img/logos/services/flock.svg
+++ b/src/web/gui/v2/static/img/logos/services/flock.svg
diff --git a/web/gui/v2/static/img/logos/services/fluentd.svg b/src/web/gui/v2/static/img/logos/services/fluentd.svg
index 05ccd0020..05ccd0020 100644
--- a/web/gui/v2/static/img/logos/services/fluentd.svg
+++ b/src/web/gui/v2/static/img/logos/services/fluentd.svg
diff --git a/web/gui/v2/static/img/logos/services/fping.svg b/src/web/gui/v2/static/img/logos/services/fping.svg
index 1b684c250..1b684c250 100644
--- a/web/gui/v2/static/img/logos/services/fping.svg
+++ b/src/web/gui/v2/static/img/logos/services/fping.svg
diff --git a/web/gui/v2/static/img/logos/services/freeradius.svg b/src/web/gui/v2/static/img/logos/services/freeradius.svg
index 74569aca1..74569aca1 100644
--- a/web/gui/v2/static/img/logos/services/freeradius.svg
+++ b/src/web/gui/v2/static/img/logos/services/freeradius.svg
diff --git a/web/gui/v2/static/img/logos/services/fronius.svg b/src/web/gui/v2/static/img/logos/services/fronius.svg
index 5f1d197b3..5f1d197b3 100644
--- a/web/gui/v2/static/img/logos/services/fronius.svg
+++ b/src/web/gui/v2/static/img/logos/services/fronius.svg
diff --git a/web/gui/v2/static/img/logos/services/gnu-freeipmi.svg b/src/web/gui/v2/static/img/logos/services/gnu-freeipmi.svg
index be4467a76..be4467a76 100644
--- a/web/gui/v2/static/img/logos/services/gnu-freeipmi.svg
+++ b/src/web/gui/v2/static/img/logos/services/gnu-freeipmi.svg
diff --git a/web/gui/v2/static/img/logos/services/golang.svg b/src/web/gui/v2/static/img/logos/services/golang.svg
index 61ed94214..61ed94214 100644
--- a/web/gui/v2/static/img/logos/services/golang.svg
+++ b/src/web/gui/v2/static/img/logos/services/golang.svg
diff --git a/web/gui/v2/static/img/logos/services/grafana.svg b/src/web/gui/v2/static/img/logos/services/grafana.svg
index 72702223d..72702223d 100644
--- a/web/gui/v2/static/img/logos/services/grafana.svg
+++ b/src/web/gui/v2/static/img/logos/services/grafana.svg
diff --git a/web/gui/v2/static/img/logos/services/graphite.svg b/src/web/gui/v2/static/img/logos/services/graphite.svg
index 9619eb6ba..9619eb6ba 100644
--- a/web/gui/v2/static/img/logos/services/graphite.svg
+++ b/src/web/gui/v2/static/img/logos/services/graphite.svg
diff --git a/web/gui/v2/static/img/logos/services/haproxy.svg b/src/web/gui/v2/static/img/logos/services/haproxy.svg
index bb414822b..bb414822b 100644
--- a/web/gui/v2/static/img/logos/services/haproxy.svg
+++ b/src/web/gui/v2/static/img/logos/services/haproxy.svg
diff --git a/web/gui/v2/static/img/logos/services/hub.svg b/src/web/gui/v2/static/img/logos/services/hub.svg
index f1c8e737d..f1c8e737d 100644
--- a/web/gui/v2/static/img/logos/services/hub.svg
+++ b/src/web/gui/v2/static/img/logos/services/hub.svg
diff --git a/web/gui/v2/static/img/logos/services/icecast.svg b/src/web/gui/v2/static/img/logos/services/icecast.svg
index 0899a7481..0899a7481 100644
--- a/web/gui/v2/static/img/logos/services/icecast.svg
+++ b/src/web/gui/v2/static/img/logos/services/icecast.svg
diff --git a/web/gui/v2/static/img/logos/services/influxdb.svg b/src/web/gui/v2/static/img/logos/services/influxdb.svg
index 3fb9f2bf5..3fb9f2bf5 100644
--- a/web/gui/v2/static/img/logos/services/influxdb.svg
+++ b/src/web/gui/v2/static/img/logos/services/influxdb.svg
diff --git a/web/gui/v2/static/img/logos/services/ipfs.svg b/src/web/gui/v2/static/img/logos/services/ipfs.svg
index 0b9b67de7..0b9b67de7 100644
--- a/web/gui/v2/static/img/logos/services/ipfs.svg
+++ b/src/web/gui/v2/static/img/logos/services/ipfs.svg
diff --git a/web/gui/v2/static/img/logos/services/irc.svg b/src/web/gui/v2/static/img/logos/services/irc.svg
index 563e33f4c..563e33f4c 100644
--- a/web/gui/v2/static/img/logos/services/irc.svg
+++ b/src/web/gui/v2/static/img/logos/services/irc.svg
diff --git a/web/gui/v2/static/img/logos/services/isc.svg b/src/web/gui/v2/static/img/logos/services/isc.svg
index b4168df06..b4168df06 100644
--- a/web/gui/v2/static/img/logos/services/isc.svg
+++ b/src/web/gui/v2/static/img/logos/services/isc.svg
diff --git a/web/gui/v2/static/img/logos/services/kafka.svg b/src/web/gui/v2/static/img/logos/services/kafka.svg
index 75c2ea3cc..75c2ea3cc 100644
--- a/web/gui/v2/static/img/logos/services/kafka.svg
+++ b/src/web/gui/v2/static/img/logos/services/kafka.svg
diff --git a/web/gui/v2/static/img/logos/services/kairosdb.svg b/src/web/gui/v2/static/img/logos/services/kairosdb.svg
index ab7f1bf81..ab7f1bf81 100644
--- a/web/gui/v2/static/img/logos/services/kairosdb.svg
+++ b/src/web/gui/v2/static/img/logos/services/kairosdb.svg
diff --git a/web/gui/v2/static/img/logos/services/kavenegar.svg b/src/web/gui/v2/static/img/logos/services/kavenegar.svg
index ae9d187d3..ae9d187d3 100644
--- a/web/gui/v2/static/img/logos/services/kavenegar.svg
+++ b/src/web/gui/v2/static/img/logos/services/kavenegar.svg
diff --git a/web/gui/v2/static/img/logos/services/key-file.svg b/src/web/gui/v2/static/img/logos/services/key-file.svg
index 865897da1..865897da1 100644
--- a/web/gui/v2/static/img/logos/services/key-file.svg
+++ b/src/web/gui/v2/static/img/logos/services/key-file.svg
diff --git a/web/gui/v2/static/img/logos/services/kubernetes.svg b/src/web/gui/v2/static/img/logos/services/kubernetes.svg
index bedd3b88e..bedd3b88e 100644
--- a/web/gui/v2/static/img/logos/services/kubernetes.svg
+++ b/src/web/gui/v2/static/img/logos/services/kubernetes.svg
diff --git a/web/gui/v2/static/img/logos/services/libreswan.svg b/src/web/gui/v2/static/img/logos/services/libreswan.svg
index 15ee84635..15ee84635 100644
--- a/web/gui/v2/static/img/logos/services/libreswan.svg
+++ b/src/web/gui/v2/static/img/logos/services/libreswan.svg
diff --git a/web/gui/v2/static/img/logos/services/libvirt.svg b/src/web/gui/v2/static/img/logos/services/libvirt.svg
index 4d43d96db..4d43d96db 100644
--- a/web/gui/v2/static/img/logos/services/libvirt.svg
+++ b/src/web/gui/v2/static/img/logos/services/libvirt.svg
diff --git a/web/gui/v2/static/img/logos/services/lighthttpd.svg b/src/web/gui/v2/static/img/logos/services/lighthttpd.svg
index d38685c46..d38685c46 100644
--- a/web/gui/v2/static/img/logos/services/lighthttpd.svg
+++ b/src/web/gui/v2/static/img/logos/services/lighthttpd.svg
diff --git a/web/gui/v2/static/img/logos/services/linux.svg b/src/web/gui/v2/static/img/logos/services/linux.svg
index e2fb3b4e7..e2fb3b4e7 100644
--- a/web/gui/v2/static/img/logos/services/linux.svg
+++ b/src/web/gui/v2/static/img/logos/services/linux.svg
diff --git a/web/gui/v2/static/img/logos/services/litespeed.svg b/src/web/gui/v2/static/img/logos/services/litespeed.svg
index 9f429f0dc..9f429f0dc 100644
--- a/web/gui/v2/static/img/logos/services/litespeed.svg
+++ b/src/web/gui/v2/static/img/logos/services/litespeed.svg
diff --git a/web/gui/v2/static/img/logos/services/lm-sensors.svg b/src/web/gui/v2/static/img/logos/services/lm-sensors.svg
index 7b9b93434..7b9b93434 100644
--- a/web/gui/v2/static/img/logos/services/lm-sensors.svg
+++ b/src/web/gui/v2/static/img/logos/services/lm-sensors.svg
diff --git a/web/gui/v2/static/img/logos/services/load-balancer.svg b/src/web/gui/v2/static/img/logos/services/load-balancer.svg
index 7c6b61ac4..7c6b61ac4 100644
--- a/web/gui/v2/static/img/logos/services/load-balancer.svg
+++ b/src/web/gui/v2/static/img/logos/services/load-balancer.svg
diff --git a/web/gui/v2/static/img/logos/services/log-file.svg b/src/web/gui/v2/static/img/logos/services/log-file.svg
index fdaa9b570..fdaa9b570 100644
--- a/web/gui/v2/static/img/logos/services/log-file.svg
+++ b/src/web/gui/v2/static/img/logos/services/log-file.svg
diff --git a/web/gui/v2/static/img/logos/services/logstash.svg b/src/web/gui/v2/static/img/logos/services/logstash.svg
index 5871eee2c..5871eee2c 100644
--- a/web/gui/v2/static/img/logos/services/logstash.svg
+++ b/src/web/gui/v2/static/img/logos/services/logstash.svg
diff --git a/web/gui/v2/static/img/logos/services/lxd.svg b/src/web/gui/v2/static/img/logos/services/lxd.svg
index 09338c744..09338c744 100644
--- a/web/gui/v2/static/img/logos/services/lxd.svg
+++ b/src/web/gui/v2/static/img/logos/services/lxd.svg
diff --git a/web/gui/v2/static/img/logos/services/mariadb.svg b/src/web/gui/v2/static/img/logos/services/mariadb.svg
index c6e6171f7..c6e6171f7 100644
--- a/web/gui/v2/static/img/logos/services/mariadb.svg
+++ b/src/web/gui/v2/static/img/logos/services/mariadb.svg
diff --git a/web/gui/v2/static/img/logos/services/memcached.svg b/src/web/gui/v2/static/img/logos/services/memcached.svg
index f3848d878..f3848d878 100644
--- a/web/gui/v2/static/img/logos/services/memcached.svg
+++ b/src/web/gui/v2/static/img/logos/services/memcached.svg
diff --git a/web/gui/v2/static/img/logos/services/messagebird.svg b/src/web/gui/v2/static/img/logos/services/messagebird.svg
index 9058653b6..9058653b6 100644
--- a/web/gui/v2/static/img/logos/services/messagebird.svg
+++ b/src/web/gui/v2/static/img/logos/services/messagebird.svg
diff --git a/web/gui/v2/static/img/logos/services/mongodb.svg b/src/web/gui/v2/static/img/logos/services/mongodb.svg
index 80d3a99ac..80d3a99ac 100644
--- a/web/gui/v2/static/img/logos/services/mongodb.svg
+++ b/src/web/gui/v2/static/img/logos/services/mongodb.svg
diff --git a/web/gui/v2/static/img/logos/services/monit.svg b/src/web/gui/v2/static/img/logos/services/monit.svg
index f990abc48..f990abc48 100644
--- a/web/gui/v2/static/img/logos/services/monit.svg
+++ b/src/web/gui/v2/static/img/logos/services/monit.svg
diff --git a/web/gui/v2/static/img/logos/services/monitoring.svg b/src/web/gui/v2/static/img/logos/services/monitoring.svg
index 58b0e04f2..58b0e04f2 100644
--- a/web/gui/v2/static/img/logos/services/monitoring.svg
+++ b/src/web/gui/v2/static/img/logos/services/monitoring.svg
diff --git a/web/gui/v2/static/img/logos/services/mysql.svg b/src/web/gui/v2/static/img/logos/services/mysql.svg
index 41e700609..41e700609 100644
--- a/web/gui/v2/static/img/logos/services/mysql.svg
+++ b/src/web/gui/v2/static/img/logos/services/mysql.svg
diff --git a/web/gui/v2/static/img/logos/services/netfilter.svg b/src/web/gui/v2/static/img/logos/services/netfilter.svg
index 850b3d69b..850b3d69b 100644
--- a/web/gui/v2/static/img/logos/services/netfilter.svg
+++ b/src/web/gui/v2/static/img/logos/services/netfilter.svg
diff --git a/web/gui/v2/static/img/logos/services/network-protocol.svg b/src/web/gui/v2/static/img/logos/services/network-protocol.svg
index f91d02c48..f91d02c48 100644
--- a/web/gui/v2/static/img/logos/services/network-protocol.svg
+++ b/src/web/gui/v2/static/img/logos/services/network-protocol.svg
diff --git a/web/gui/v2/static/img/logos/services/network.svg b/src/web/gui/v2/static/img/logos/services/network.svg
index 469c8432b..469c8432b 100644
--- a/web/gui/v2/static/img/logos/services/network.svg
+++ b/src/web/gui/v2/static/img/logos/services/network.svg
diff --git a/web/gui/v2/static/img/logos/services/nfs.svg b/src/web/gui/v2/static/img/logos/services/nfs.svg
index 0792fbc8e..0792fbc8e 100644
--- a/web/gui/v2/static/img/logos/services/nfs.svg
+++ b/src/web/gui/v2/static/img/logos/services/nfs.svg
diff --git a/web/gui/v2/static/img/logos/services/nginx-plus.svg b/src/web/gui/v2/static/img/logos/services/nginx-plus.svg
index b78ca79ef..b78ca79ef 100644
--- a/web/gui/v2/static/img/logos/services/nginx-plus.svg
+++ b/src/web/gui/v2/static/img/logos/services/nginx-plus.svg
diff --git a/web/gui/v2/static/img/logos/services/nginx.svg b/src/web/gui/v2/static/img/logos/services/nginx.svg
index 07790feac..07790feac 100644
--- a/web/gui/v2/static/img/logos/services/nginx.svg
+++ b/src/web/gui/v2/static/img/logos/services/nginx.svg
diff --git a/web/gui/v2/static/img/logos/services/notification-bell.svg b/src/web/gui/v2/static/img/logos/services/notification-bell.svg
index 8c9249c5c..8c9249c5c 100644
--- a/web/gui/v2/static/img/logos/services/notification-bell.svg
+++ b/src/web/gui/v2/static/img/logos/services/notification-bell.svg
diff --git a/web/gui/v2/static/img/logos/services/nsd.svg b/src/web/gui/v2/static/img/logos/services/nsd.svg
index 9bcf3aa62..9bcf3aa62 100644
--- a/web/gui/v2/static/img/logos/services/nsd.svg
+++ b/src/web/gui/v2/static/img/logos/services/nsd.svg
diff --git a/web/gui/v2/static/img/logos/services/ntpd.svg b/src/web/gui/v2/static/img/logos/services/ntpd.svg
index e95133810..e95133810 100644
--- a/web/gui/v2/static/img/logos/services/ntpd.svg
+++ b/src/web/gui/v2/static/img/logos/services/ntpd.svg
diff --git a/web/gui/v2/static/img/logos/services/nut.svg b/src/web/gui/v2/static/img/logos/services/nut.svg
index bd1071ad2..bd1071ad2 100644
--- a/web/gui/v2/static/img/logos/services/nut.svg
+++ b/src/web/gui/v2/static/img/logos/services/nut.svg
diff --git a/web/gui/v2/static/img/logos/services/nvidia.svg b/src/web/gui/v2/static/img/logos/services/nvidia.svg
index 2b25de27e..2b25de27e 100644
--- a/web/gui/v2/static/img/logos/services/nvidia.svg
+++ b/src/web/gui/v2/static/img/logos/services/nvidia.svg
diff --git a/web/gui/v2/static/img/logos/services/openldap.svg b/src/web/gui/v2/static/img/logos/services/openldap.svg
index 268d0b6f0..268d0b6f0 100644
--- a/web/gui/v2/static/img/logos/services/openldap.svg
+++ b/src/web/gui/v2/static/img/logos/services/openldap.svg
diff --git a/web/gui/v2/static/img/logos/services/opensips.svg b/src/web/gui/v2/static/img/logos/services/opensips.svg
index e350be62b..e350be62b 100644
--- a/web/gui/v2/static/img/logos/services/opensips.svg
+++ b/src/web/gui/v2/static/img/logos/services/opensips.svg
diff --git a/web/gui/v2/static/img/logos/services/opentsdb.svg b/src/web/gui/v2/static/img/logos/services/opentsdb.svg
index 84412a30a..84412a30a 100644
--- a/web/gui/v2/static/img/logos/services/opentsdb.svg
+++ b/src/web/gui/v2/static/img/logos/services/opentsdb.svg
diff --git a/web/gui/v2/static/img/logos/services/openvpn.svg b/src/web/gui/v2/static/img/logos/services/openvpn.svg
index 1d1ed4b79..1d1ed4b79 100644
--- a/web/gui/v2/static/img/logos/services/openvpn.svg
+++ b/src/web/gui/v2/static/img/logos/services/openvpn.svg
diff --git a/web/gui/v2/static/img/logos/services/openzfs.svg b/src/web/gui/v2/static/img/logos/services/openzfs.svg
index 6034b5d48..6034b5d48 100644
--- a/web/gui/v2/static/img/logos/services/openzfs.svg
+++ b/src/web/gui/v2/static/img/logos/services/openzfs.svg
diff --git a/web/gui/v2/static/img/logos/services/oracle.svg b/src/web/gui/v2/static/img/logos/services/oracle.svg
index 0d2ab76d1..0d2ab76d1 100644
--- a/web/gui/v2/static/img/logos/services/oracle.svg
+++ b/src/web/gui/v2/static/img/logos/services/oracle.svg
diff --git a/web/gui/v2/static/img/logos/services/pagerduty.svg b/src/web/gui/v2/static/img/logos/services/pagerduty.svg
index 73419c903..73419c903 100644
--- a/web/gui/v2/static/img/logos/services/pagerduty.svg
+++ b/src/web/gui/v2/static/img/logos/services/pagerduty.svg
diff --git a/web/gui/v2/static/img/logos/services/php-fpm.svg b/src/web/gui/v2/static/img/logos/services/php-fpm.svg
index e56e2a872..e56e2a872 100644
--- a/web/gui/v2/static/img/logos/services/php-fpm.svg
+++ b/src/web/gui/v2/static/img/logos/services/php-fpm.svg
diff --git a/web/gui/v2/static/img/logos/services/placeholder.svg b/src/web/gui/v2/static/img/logos/services/placeholder.svg
index e1dc37ce0..e1dc37ce0 100644
--- a/web/gui/v2/static/img/logos/services/placeholder.svg
+++ b/src/web/gui/v2/static/img/logos/services/placeholder.svg
diff --git a/web/gui/v2/static/img/logos/services/postfix.svg b/src/web/gui/v2/static/img/logos/services/postfix.svg
index 5c8d31928..5c8d31928 100644
--- a/web/gui/v2/static/img/logos/services/postfix.svg
+++ b/src/web/gui/v2/static/img/logos/services/postfix.svg
diff --git a/web/gui/v2/static/img/logos/services/postgresql.svg b/src/web/gui/v2/static/img/logos/services/postgresql.svg
index 6b65997a9..6b65997a9 100644
--- a/web/gui/v2/static/img/logos/services/postgresql.svg
+++ b/src/web/gui/v2/static/img/logos/services/postgresql.svg
diff --git a/web/gui/v2/static/img/logos/services/powerdns.svg b/src/web/gui/v2/static/img/logos/services/powerdns.svg
index 39a111e70..39a111e70 100644
--- a/web/gui/v2/static/img/logos/services/powerdns.svg
+++ b/src/web/gui/v2/static/img/logos/services/powerdns.svg
diff --git a/web/gui/v2/static/img/logos/services/processor.svg b/src/web/gui/v2/static/img/logos/services/processor.svg
index 05eb57848..05eb57848 100644
--- a/web/gui/v2/static/img/logos/services/processor.svg
+++ b/src/web/gui/v2/static/img/logos/services/processor.svg
diff --git a/web/gui/v2/static/img/logos/services/prometheus.svg b/src/web/gui/v2/static/img/logos/services/prometheus.svg
index 5c51f66d9..5c51f66d9 100644
--- a/web/gui/v2/static/img/logos/services/prometheus.svg
+++ b/src/web/gui/v2/static/img/logos/services/prometheus.svg
diff --git a/web/gui/v2/static/img/logos/services/prowl.svg b/src/web/gui/v2/static/img/logos/services/prowl.svg
index bd5699a6c..bd5699a6c 100644
--- a/web/gui/v2/static/img/logos/services/prowl.svg
+++ b/src/web/gui/v2/static/img/logos/services/prowl.svg
diff --git a/web/gui/v2/static/img/logos/services/proxysql.svg b/src/web/gui/v2/static/img/logos/services/proxysql.svg
index 9a2296a30..9a2296a30 100644
--- a/web/gui/v2/static/img/logos/services/proxysql.svg
+++ b/src/web/gui/v2/static/img/logos/services/proxysql.svg
diff --git a/web/gui/v2/static/img/logos/services/puppet.svg b/src/web/gui/v2/static/img/logos/services/puppet.svg
index 1b70c2d81..1b70c2d81 100644
--- a/web/gui/v2/static/img/logos/services/puppet.svg
+++ b/src/web/gui/v2/static/img/logos/services/puppet.svg
diff --git a/web/gui/v2/static/img/logos/services/pushbullet.svg b/src/web/gui/v2/static/img/logos/services/pushbullet.svg
index 067a05a96..067a05a96 100644
--- a/web/gui/v2/static/img/logos/services/pushbullet.svg
+++ b/src/web/gui/v2/static/img/logos/services/pushbullet.svg
diff --git a/web/gui/v2/static/img/logos/services/pushover.svg b/src/web/gui/v2/static/img/logos/services/pushover.svg
index 08956d819..08956d819 100644
--- a/web/gui/v2/static/img/logos/services/pushover.svg
+++ b/src/web/gui/v2/static/img/logos/services/pushover.svg
diff --git a/web/gui/v2/static/img/logos/services/qos.svg b/src/web/gui/v2/static/img/logos/services/qos.svg
index 1cd1839d0..1cd1839d0 100644
--- a/web/gui/v2/static/img/logos/services/qos.svg
+++ b/src/web/gui/v2/static/img/logos/services/qos.svg
diff --git a/web/gui/v2/static/img/logos/services/rabbitmq.svg b/src/web/gui/v2/static/img/logos/services/rabbitmq.svg
index b99d2781b..b99d2781b 100644
--- a/web/gui/v2/static/img/logos/services/rabbitmq.svg
+++ b/src/web/gui/v2/static/img/logos/services/rabbitmq.svg
diff --git a/web/gui/v2/static/img/logos/services/raspberry-pi.svg b/src/web/gui/v2/static/img/logos/services/raspberry-pi.svg
index cad803341..cad803341 100644
--- a/web/gui/v2/static/img/logos/services/raspberry-pi.svg
+++ b/src/web/gui/v2/static/img/logos/services/raspberry-pi.svg
diff --git a/web/gui/v2/static/img/logos/services/redis.svg b/src/web/gui/v2/static/img/logos/services/redis.svg
index 313e8bc7f..313e8bc7f 100644
--- a/web/gui/v2/static/img/logos/services/redis.svg
+++ b/src/web/gui/v2/static/img/logos/services/redis.svg
diff --git a/web/gui/v2/static/img/logos/services/rethinkdb.svg b/src/web/gui/v2/static/img/logos/services/rethinkdb.svg
index 596f9c709..596f9c709 100644
--- a/web/gui/v2/static/img/logos/services/rethinkdb.svg
+++ b/src/web/gui/v2/static/img/logos/services/rethinkdb.svg
diff --git a/web/gui/v2/static/img/logos/services/retroshare.svg b/src/web/gui/v2/static/img/logos/services/retroshare.svg
index 403f4fb52..403f4fb52 100644
--- a/web/gui/v2/static/img/logos/services/retroshare.svg
+++ b/src/web/gui/v2/static/img/logos/services/retroshare.svg
diff --git a/web/gui/v2/static/img/logos/services/rocketchat.svg b/src/web/gui/v2/static/img/logos/services/rocketchat.svg
index 97f4e0a5f..97f4e0a5f 100644
--- a/web/gui/v2/static/img/logos/services/rocketchat.svg
+++ b/src/web/gui/v2/static/img/logos/services/rocketchat.svg
diff --git a/web/gui/v2/static/img/logos/services/samba.svg b/src/web/gui/v2/static/img/logos/services/samba.svg
index 25b626652..25b626652 100644
--- a/web/gui/v2/static/img/logos/services/samba.svg
+++ b/src/web/gui/v2/static/img/logos/services/samba.svg
diff --git a/web/gui/v2/static/img/logos/services/server-connection.svg b/src/web/gui/v2/static/img/logos/services/server-connection.svg
index ab7c4c141..ab7c4c141 100644
--- a/web/gui/v2/static/img/logos/services/server-connection.svg
+++ b/src/web/gui/v2/static/img/logos/services/server-connection.svg
diff --git a/web/gui/v2/static/img/logos/services/slack.svg b/src/web/gui/v2/static/img/logos/services/slack.svg
index baf4e71d3..baf4e71d3 100644
--- a/web/gui/v2/static/img/logos/services/slack.svg
+++ b/src/web/gui/v2/static/img/logos/services/slack.svg
diff --git a/web/gui/v2/static/img/logos/services/sma.svg b/src/web/gui/v2/static/img/logos/services/sma.svg
index 382c20703..382c20703 100644
--- a/web/gui/v2/static/img/logos/services/sma.svg
+++ b/src/web/gui/v2/static/img/logos/services/sma.svg
diff --git a/web/gui/v2/static/img/logos/services/smstools3.svg b/src/web/gui/v2/static/img/logos/services/smstools3.svg
index 1f49ca9a0..1f49ca9a0 100644
--- a/web/gui/v2/static/img/logos/services/smstools3.svg
+++ b/src/web/gui/v2/static/img/logos/services/smstools3.svg
diff --git a/web/gui/v2/static/img/logos/services/solr.svg b/src/web/gui/v2/static/img/logos/services/solr.svg
index c87f3e6fc..c87f3e6fc 100644
--- a/web/gui/v2/static/img/logos/services/solr.svg
+++ b/src/web/gui/v2/static/img/logos/services/solr.svg
diff --git a/web/gui/v2/static/img/logos/services/spigot.svg b/src/web/gui/v2/static/img/logos/services/spigot.svg
index 7e3d8f667..7e3d8f667 100644
--- a/web/gui/v2/static/img/logos/services/spigot.svg
+++ b/src/web/gui/v2/static/img/logos/services/spigot.svg
diff --git a/web/gui/v2/static/img/logos/services/springboot.svg b/src/web/gui/v2/static/img/logos/services/springboot.svg
index 57dda1067..57dda1067 100644
--- a/web/gui/v2/static/img/logos/services/springboot.svg
+++ b/src/web/gui/v2/static/img/logos/services/springboot.svg
diff --git a/web/gui/v2/static/img/logos/services/squid.svg b/src/web/gui/v2/static/img/logos/services/squid.svg
index 5289b5f9b..5289b5f9b 100644
--- a/web/gui/v2/static/img/logos/services/squid.svg
+++ b/src/web/gui/v2/static/img/logos/services/squid.svg
diff --git a/web/gui/v2/static/img/logos/services/statsd.svg b/src/web/gui/v2/static/img/logos/services/statsd.svg
index 9a885ff67..9a885ff67 100644
--- a/web/gui/v2/static/img/logos/services/statsd.svg
+++ b/src/web/gui/v2/static/img/logos/services/statsd.svg
diff --git a/web/gui/v2/static/img/logos/services/stiebel.svg b/src/web/gui/v2/static/img/logos/services/stiebel.svg
index c8fee83eb..c8fee83eb 100644
--- a/web/gui/v2/static/img/logos/services/stiebel.svg
+++ b/src/web/gui/v2/static/img/logos/services/stiebel.svg
diff --git a/web/gui/v2/static/img/logos/services/systemd.svg b/src/web/gui/v2/static/img/logos/services/systemd.svg
index dcf8f570f..dcf8f570f 100644
--- a/web/gui/v2/static/img/logos/services/systemd.svg
+++ b/src/web/gui/v2/static/img/logos/services/systemd.svg
diff --git a/web/gui/v2/static/img/logos/services/telegram.svg b/src/web/gui/v2/static/img/logos/services/telegram.svg
index 1edff1373..1edff1373 100644
--- a/web/gui/v2/static/img/logos/services/telegram.svg
+++ b/src/web/gui/v2/static/img/logos/services/telegram.svg
diff --git a/web/gui/v2/static/img/logos/services/temperature.svg b/src/web/gui/v2/static/img/logos/services/temperature.svg
index f875fe3d5..f875fe3d5 100644
--- a/web/gui/v2/static/img/logos/services/temperature.svg
+++ b/src/web/gui/v2/static/img/logos/services/temperature.svg
diff --git a/web/gui/v2/static/img/logos/services/tomcat.svg b/src/web/gui/v2/static/img/logos/services/tomcat.svg
index 26ad7b6d3..26ad7b6d3 100644
--- a/web/gui/v2/static/img/logos/services/tomcat.svg
+++ b/src/web/gui/v2/static/img/logos/services/tomcat.svg
diff --git a/web/gui/v2/static/img/logos/services/tor.svg b/src/web/gui/v2/static/img/logos/services/tor.svg
index f0940800d..f0940800d 100644
--- a/web/gui/v2/static/img/logos/services/tor.svg
+++ b/src/web/gui/v2/static/img/logos/services/tor.svg
diff --git a/web/gui/v2/static/img/logos/services/traefik.svg b/src/web/gui/v2/static/img/logos/services/traefik.svg
index 05617f664..05617f664 100644
--- a/web/gui/v2/static/img/logos/services/traefik.svg
+++ b/src/web/gui/v2/static/img/logos/services/traefik.svg
diff --git a/web/gui/v2/static/img/logos/services/twilio.svg b/src/web/gui/v2/static/img/logos/services/twilio.svg
index 76d12c716..76d12c716 100644
--- a/web/gui/v2/static/img/logos/services/twilio.svg
+++ b/src/web/gui/v2/static/img/logos/services/twilio.svg
diff --git a/web/gui/v2/static/img/logos/services/unbound.svg b/src/web/gui/v2/static/img/logos/services/unbound.svg
index df2043842..df2043842 100644
--- a/web/gui/v2/static/img/logos/services/unbound.svg
+++ b/src/web/gui/v2/static/img/logos/services/unbound.svg
diff --git a/web/gui/v2/static/img/logos/services/uwsgi.svg b/src/web/gui/v2/static/img/logos/services/uwsgi.svg
index 25c17fb1c..25c17fb1c 100644
--- a/web/gui/v2/static/img/logos/services/uwsgi.svg
+++ b/src/web/gui/v2/static/img/logos/services/uwsgi.svg
diff --git a/web/gui/v2/static/img/logos/services/varnish.svg b/src/web/gui/v2/static/img/logos/services/varnish.svg
index b552df61f..b552df61f 100644
--- a/web/gui/v2/static/img/logos/services/varnish.svg
+++ b/src/web/gui/v2/static/img/logos/services/varnish.svg
diff --git a/web/gui/v2/static/img/logos/services/veritas.svg b/src/web/gui/v2/static/img/logos/services/veritas.svg
index 082997b27..082997b27 100644
--- a/web/gui/v2/static/img/logos/services/veritas.svg
+++ b/src/web/gui/v2/static/img/logos/services/veritas.svg
diff --git a/web/gui/v2/static/img/logos/services/xen.svg b/src/web/gui/v2/static/img/logos/services/xen.svg
index 8d96f29d1..8d96f29d1 100644
--- a/web/gui/v2/static/img/logos/services/xen.svg
+++ b/src/web/gui/v2/static/img/logos/services/xen.svg
diff --git a/web/gui/v2/static/img/mail/isotype.png b/src/web/gui/v2/static/img/mail/isotype.png
index bdbaa8eaf..bdbaa8eaf 100644
--- a/web/gui/v2/static/img/mail/isotype.png
+++ b/src/web/gui/v2/static/img/mail/isotype.png
Binary files differ
diff --git a/web/gui/v2/static/img/mail/isotype.svg b/src/web/gui/v2/static/img/mail/isotype.svg
index c01be2edb..c01be2edb 100644
--- a/web/gui/v2/static/img/mail/isotype.svg
+++ b/src/web/gui/v2/static/img/mail/isotype.svg
diff --git a/web/gui/v2/static/img/mail/logotype.png b/src/web/gui/v2/static/img/mail/logotype.png
index 5c52113fa..5c52113fa 100644
--- a/web/gui/v2/static/img/mail/logotype.png
+++ b/src/web/gui/v2/static/img/mail/logotype.png
Binary files differ
diff --git a/web/gui/v2/static/img/mail/logotype.svg b/src/web/gui/v2/static/img/mail/logotype.svg
index 297301b59..297301b59 100644
--- a/web/gui/v2/static/img/mail/logotype.svg
+++ b/src/web/gui/v2/static/img/mail/logotype.svg
diff --git a/web/gui/v2/static/img/new-dashboard.svg b/src/web/gui/v2/static/img/new-dashboard.svg
index 192f4d7cd..71c1f0c14 100644
--- a/web/gui/v2/static/img/new-dashboard.svg
+++ b/src/web/gui/v2/static/img/new-dashboard.svg
@@ -1,52 +1,52 @@
-<svg width="338" height="338" viewBox="0 0 338 338" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M169 338C262.336 338 338 262.336 338 169C338 75.6639 262.336 0 169 0C75.6639 0 0 75.6639 0 169C0 262.336 75.6639 338 169 338Z" fill="#BFD3DE" fill-opacity="0.3"/>
-<path d="M169 319C251.843 319 319 251.843 319 169C319 86.1573 251.843 19 169 19C86.1573 19 19 86.1573 19 169C19 251.843 86.1573 319 169 319Z" fill="#BFD3DE"/>
-<path d="M319 169C319.009 202.127 308.053 234.324 287.839 260.569C267.626 286.814 239.294 305.63 207.263 314.08C175.232 322.53 141.305 320.139 110.776 307.281C80.2471 294.423 54.8331 271.82 38.5 243C36.9 240.2 35.4 237.4 34 234.5C24.1272 214.076 18.9991 191.685 18.9991 169C18.9991 146.315 24.1272 123.924 34 103.5C41.7738 87.6585 52.2277 73.2801 64.9 61C86.091 40.5736 112.823 26.8328 141.767 21.4891C170.711 16.1455 200.587 19.435 227.675 30.9481C254.762 42.4612 277.864 61.689 294.103 86.2367C310.342 110.784 319.001 139.567 319 169Z" fill="#BFD3DE"/>
-<path opacity="0.2" d="M319 169C319.039 194.942 312.319 220.446 299.5 243H34V61H273.1C287.635 74.9788 299.194 91.752 307.082 110.312C314.969 128.871 319.023 148.834 319 169Z" fill="#2E6699"/>
-<path d="M319 169C319.026 190.388 314.456 211.532 305.6 231C305.2 232 304.7 233 304.2 234H16V52H262.9L266.5 55C283.123 69.2146 296.435 86.8948 305.5 106.8L306 107.7C307.6 111.4 309.1 115.2 310.5 119L310.8 119.9C313.068 126.466 314.872 133.182 316.2 140C316.6 142 316.9 144 317.2 146C318.407 153.607 319.009 161.298 319 169Z" fill="#F2F5F7"/>
-<path d="M169 55H19V140H169V55Z" fill="white"/>
-<path d="M163 134V61L25 61V134H163Z" fill="white"/>
-<path d="M72.5 68C74.433 68 76 66.433 76 64.5C76 62.567 74.433 61 72.5 61H28.5C26.567 61 25 62.567 25 64.5C25 66.433 26.567 68 28.5 68H72.5Z" fill="#F1F2F3"/>
-<path d="M229.5 68C231.433 68 233 66.433 233 64.5C233 62.567 231.433 61 229.5 61H185.5C183.567 61 182 62.567 182 64.5C182 66.433 183.567 68 185.5 68H229.5Z" fill="#F1F2F3"/>
-<path d="M117 146H19V231H117V146Z" fill="white"/>
-<path d="M111 225V152H25V225H111Z" fill="white"/>
-<path d="M30 225V215H25V225H30Z" fill="#42B0A8"/>
-<path d="M35 225V216H30V225H35Z" fill="#52D9CF"/>
-<path d="M49 225V187H44V225H49Z" fill="#42B0A8"/>
-<path d="M54 225V191H49V225H54Z" fill="#52D9CF"/>
-<path d="M68 225V165H63V225H68Z" fill="#42B0A8"/>
-<path d="M73 225V178H68V225H73Z" fill="#52D9CF"/>
-<path d="M87 225V176H82V225H87Z" fill="#42B0A8"/>
-<path d="M92 225V205H87V225H92Z" fill="#52D9CF"/>
-<path d="M106 225V210H101V225H106Z" fill="#42B0A8"/>
-<path d="M111 225V211H106V225H111Z" fill="#52D9CF"/>
-<path d="M221 146H123V231H221V146Z" fill="white"/>
-<path d="M215 225V152H129V225H215Z" fill="white"/>
-<path d="M168.5 159C170.433 159 172 157.433 172 155.5C172 153.567 170.433 152 168.5 152H132.5C130.567 152 129 153.567 129 155.5C129 157.433 130.567 159 132.5 159H168.5Z" fill="#F1F2F3"/>
-<path d="M64.5 159C66.433 159 68 157.433 68 155.5C68 153.567 66.433 152 64.5 152H28.5C26.567 152 25 153.567 25 155.5C25 157.433 26.567 159 28.5 159H64.5Z" fill="#F1F2F3"/>
-<path d="M316.2 140H175V55H266.5C283.123 69.2146 296.435 86.8948 305.5 106.8L306 107.7C307.6 111.4 309.1 115.2 310.5 119L310.8 119.9C313.068 126.466 314.872 133.182 316.2 140Z" fill="white"/>
-<path d="M319 169C319.026 190.388 314.456 211.532 305.6 231H227V146H317.2C318.407 153.607 319.009 161.298 319 169Z" fill="white"/>
-<path d="M162 71L158 69L155 70C154.569 71.6456 154.235 73.3151 154 75C154 76 151 80 151 80C151 80 148 86 148 88C147.95 88.6291 147.74 89.235 147.39 89.7601C147.04 90.2852 146.562 90.712 146 91L137 96L129 100L124 103H119L115 99L110 95L98 91H94L91 96L85 100L81 103L75 105L65 101L60 100L57 103H52L50 109L46 114L40 122L33 127L27 122L25 124.5V134H163V71.3L162 71Z" fill="#FFC300"/>
-<path d="M162 72L158 70L155 71C154.569 72.6456 154.235 74.3151 154 76C154 77 151 81 151 81C151 81 148 87 148 89C147.95 89.6291 147.74 90.235 147.39 90.7601C147.04 91.2852 146.562 91.712 146 92L137 97L129 101L124 104H119L115 100L110 96L98 92H94L91 97L85 101L81 104L75 106L65 102L60 101L57 104H52L50 110L46 115L40 123L33 128L27 123L25 125.5V134H163V72.3L162 72Z" fill="#FFF3CC"/>
-<path d="M213 184L210 186L207 184L205 183L202 178L200 182L198 184L196 183L194 186C193.546 187.3 193.211 188.639 193 190C192.765 191.685 192.431 193.354 192 195L190 198L185 199H182L178 203L176 204H173L168 203H165L162 205L158 209H155L153 208L147 214L145 217L141 218H138L135 221L133 222L131 220L129 218.7V224H215V176L213 184Z" fill="#DCDDDE"/>
-<path d="M213 185L210 187L207 185L205 184L202 179L200 183L198 185L196 184L194 187C193.546 188.3 193.211 189.639 193 191C192.765 192.685 192.431 194.354 192 196L190 199L185 200H182L178 204L176 205H173L168 204H165L162 206L158 210H155L153 209L147 215L145 218L141 219H138L135 222L133 223L131 221L129 219.7V225H215V177L213 185Z" fill="#F1F2F3"/>
-<path d="M276 222C291.464 222 304 209.464 304 194C304 178.536 291.464 166 276 166C260.536 166 248 178.536 248 194C248 209.464 260.536 222 276 222Z" fill="#526573"/>
-<path d="M276 194V166C270.462 166 265.049 167.642 260.444 170.719C255.839 173.796 252.251 178.169 250.131 183.285C248.012 188.401 247.458 194.031 248.538 199.463C249.618 204.894 252.285 209.883 256.201 213.799C260.117 217.715 265.106 220.382 270.537 221.462C275.969 222.542 281.599 221.988 286.715 219.869C291.831 217.749 296.204 214.161 299.281 209.556C302.358 204.951 304 199.538 304 194V192.4L276 194Z" fill="#52D9CF"/>
-<path d="M276 194V166C271.186 166.004 266.455 167.248 262.263 169.614C258.07 171.979 254.558 175.386 252.066 179.504C249.574 183.622 248.186 188.314 248.035 193.125C247.885 197.936 248.977 202.705 251.207 206.971C253.437 211.237 256.73 214.856 260.766 217.479C264.802 220.102 269.447 221.639 274.251 221.944C279.055 222.248 283.856 221.309 288.191 219.217C292.527 217.125 296.249 213.95 299 210L276 194Z" fill="#F26565"/>
-<path d="M276 194V166C269.764 166.019 263.713 168.12 258.807 171.969C253.9 175.817 250.418 181.194 248.914 187.245C247.41 193.297 247.969 199.678 250.502 205.376C253.036 211.074 257.399 215.763 262.9 218.7L276 194Z" fill="#FAE26B"/>
-<path d="M276 194V166C268.582 166.026 261.475 168.985 256.23 174.23C250.985 179.475 248.026 186.582 248 194C247.977 197.714 248.726 201.391 250.2 204.8L276 194Z" fill="#F1F2F3"/>
-<path d="M276 213C286.493 213 295 204.493 295 194C295 183.507 286.493 175 276 175C265.507 175 257 183.507 257 194C257 204.493 265.507 213 276 213Z" fill="white"/>
-<path d="M284.5 159C286.433 159 288 157.433 288 155.5C288 153.567 286.433 152 284.5 152H236.5C234.567 152 233 153.567 233 155.5C233 157.433 234.567 159 236.5 159H284.5Z" fill="#F1F2F3"/>
-<path d="M306 107.7L304.1 109.5L295.7 107.4L289.8 97.6L287 98.5L285.8 98.9L280.8 100.6L278.2 96.5L277.6 95.5L275.6 92.3L269 86.6L260.3 92.4L253.4 101.3L247.2 108.5L238.8 109.5L232.6 102.3L232.1 101.9L230.9 100.9L226.9 97.6L221.4 100.4L219.9 101.1L219.2 101.5L213 105.6L208.1 101.4L206.5 100.1L205.7 99.4L200 93.7L195.3 97.2L193.6 98.5L192.1 99.5L183.1 97.5L181 99.4V98.1L182.9 96.5L191.9 98.5L194.5 96.5L196.2 95.2L200 92.3L205.7 98L206.4 98.6L207.4 99.5L213 104.4L218.7 100.6L220.6 99.6L222.1 98.9L227.1 96.4L230.5 99.3L231.8 100.3L233.3 101.6L239.2 108.5L246.8 107.5L252.6 100.7L259.7 91.6L269 85.4L276.4 91.7L278.8 95.5L279.4 96.5L281.2 99.4L284.7 98.3L285.9 97.8L290.2 96.4L296.3 106.6L303.9 108.5L305.5 106.8L306 107.7Z" fill="#526573"/>
-<path d="M310.8 119.9L304.9 121.5L296.6 115.3L289.6 101.4L285.8 98.9L284.7 98.3L281.9 96.5H275.9L269 92.6L263.4 97.3L257.4 116.3L248.1 126.7L239.6 120.3L232.5 108.1L230.9 100.9L230.5 99.3L227.8 87.5L212.9 117.3L206.5 100.1L205.7 98L201 85.3L196.2 95.2L195.3 97.2L191.2 105.7L183.2 100.7L181 104.5V102.5L182.8 99.3L190.8 104.3L193.6 98.5L194.5 96.5L201 82.7L207.4 99.5L208.1 101.4L213.1 114.8L219.9 101.1L220.6 99.6L228.2 84.5L231.8 100.3L232.1 101.9L233.5 107.8L240.4 119.7L247.9 125.3L256.6 115.8L262.6 96.7L269 91.4L276.1 95.5H282.1L285.9 97.8L287 98.5L290.4 100.6L297.4 114.7L305.1 120.5L310.5 119L310.8 119.9Z" fill="#52D9CF"/>
-<path d="M229.5 68C231.433 68 233 66.433 233 64.5C233 62.567 231.433 61 229.5 61H185.5C183.567 61 182 62.567 182 64.5C182 66.433 183.567 68 185.5 68H229.5Z" fill="#F1F2F3"/>
-<path opacity="0.05" d="M317.2 146C316.9 144 316.6 142 316.2 140C314.872 133.182 313.068 126.466 310.8 119.9L310.5 119C309.1 115.2 307.6 111.4 306 107.7L305.5 106.8C296.435 86.8948 283.123 69.2146 266.5 55L262.9 52H207C221.19 56.5688 234.412 63.7224 246 73.1L248.9 75.5C262.568 87.1589 273.524 101.664 281 118L281.3 118.8C282.7 121.8 283.9 124.9 285 128L285.3 128.8C287.129 134.163 288.599 139.642 289.7 145.2L290.6 150.1C291.521 156.358 291.989 162.675 292 169C292.038 186.528 288.285 203.857 281 219.8C280.694 220.659 280.326 221.494 279.9 222.3C277.93 226.306 275.761 230.211 273.4 234H304.2C304.7 233 305.2 232 305.6 231C314.456 211.532 319.026 190.388 319 169C319.009 161.298 318.407 153.607 317.2 146Z" fill="#304659"/>
-<path opacity="0.02" d="M317.2 146C316.9 144 316.6 142 316.2 140C314.872 133.182 313.068 126.466 310.8 119.9L310.5 119C309.1 115.2 307.6 111.4 306 107.7L305.5 106.8C296.435 86.8948 283.123 69.2146 266.5 55L262.9 52H172V234H304.2C304.7 233 305.2 232 305.6 231C314.456 211.532 319.026 190.388 319 169C319.009 161.298 318.407 153.607 317.2 146Z" fill="#304659"/>
-<path d="M233 184C217.144 184.006 201.558 188.109 187.756 195.913C173.953 203.716 162.401 214.955 154.221 228.538C146.041 242.121 141.51 257.588 141.068 273.437C140.627 289.287 144.289 304.982 151.7 319H314.3C321.711 304.982 325.373 289.287 324.932 273.437C324.49 257.588 319.959 242.121 311.779 228.538C303.599 214.955 292.047 203.716 278.245 195.913C264.442 188.109 248.856 184.006 233 184Z" fill="#697784"/>
-<path opacity="0.5" d="M233 184V319H314.3C321.711 304.982 325.373 289.287 324.932 273.437C324.49 257.588 319.959 242.121 311.779 228.538C303.599 214.955 292.047 203.716 278.245 195.913C264.442 188.109 248.856 184.006 233 184Z" fill="#304659"/>
-<path d="M233 193C219.146 193.003 205.513 196.473 193.344 203.096C181.174 209.718 170.857 219.281 163.331 230.913C155.805 242.544 151.31 255.875 150.257 269.689C149.203 283.503 151.625 297.362 157.3 310H308.7C314.375 297.362 316.797 283.503 315.743 269.689C314.69 255.875 310.195 242.544 302.669 230.913C295.143 219.281 284.826 209.718 272.656 203.096C260.487 196.473 246.854 193.003 233 193Z" fill="white"/>
-<path d="M233 207C215.39 206.996 198.444 213.725 185.635 225.81C172.825 237.894 165.121 254.419 164.1 272H164.2L185 274.7C185 261.97 190.057 249.761 199.059 240.759C208.061 231.757 220.27 226.7 233 226.7C245.73 226.7 257.939 231.757 266.941 240.759C275.943 249.761 281 261.97 281 274.7L301.8 272H301.9C300.879 254.419 293.175 237.894 280.365 225.81C267.556 213.725 250.61 206.996 233 207Z" fill="#F1F2F3"/>
-<path d="M167.2 255.3C165.497 260.721 164.457 266.329 164.1 272H164.2L185 274.7C185.092 271.121 185.595 267.564 186.5 264.1L167.2 255.3Z" fill="#00AB44"/>
-<path d="M229.9 291.8L161.6 253.9C161.479 253.837 161.372 253.751 161.285 253.645C161.199 253.54 161.135 253.418 161.098 253.286C161.06 253.155 161.05 253.018 161.068 252.883C161.085 252.747 161.13 252.617 161.2 252.5C161.323 252.305 161.51 252.159 161.729 252.086C161.947 252.013 162.185 252.018 162.4 252.1L236.1 278.2C237.835 278.961 239.217 280.351 239.97 282.09C240.722 283.829 240.788 285.789 240.155 287.574C239.521 289.36 238.236 290.84 236.556 291.717C234.876 292.593 232.927 292.802 231.1 292.3L229.9 291.8Z" fill="#708899"/>
-<path opacity="0.05" d="M233 193V310H308.7C314.375 297.362 316.797 283.503 315.743 269.689C314.69 255.875 310.195 242.544 302.669 230.913C295.143 219.281 284.826 209.718 272.656 203.096C260.487 196.473 246.854 193.003 233 193Z" fill="#304659"/>
-</svg>
+<svg width="338" height="338" viewBox="0 0 338 338" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M169 338C262.336 338 338 262.336 338 169C338 75.6639 262.336 0 169 0C75.6639 0 0 75.6639 0 169C0 262.336 75.6639 338 169 338Z" fill="#BFD3DE" fill-opacity="0.3"/>
+<path d="M169 319C251.843 319 319 251.843 319 169C319 86.1573 251.843 19 169 19C86.1573 19 19 86.1573 19 169C19 251.843 86.1573 319 169 319Z" fill="#BFD3DE"/>
+<path d="M319 169C319.009 202.127 308.053 234.324 287.839 260.569C267.626 286.814 239.294 305.63 207.263 314.08C175.232 322.53 141.305 320.139 110.776 307.281C80.2471 294.423 54.8331 271.82 38.5 243C36.9 240.2 35.4 237.4 34 234.5C24.1272 214.076 18.9991 191.685 18.9991 169C18.9991 146.315 24.1272 123.924 34 103.5C41.7738 87.6585 52.2277 73.2801 64.9 61C86.091 40.5736 112.823 26.8328 141.767 21.4891C170.711 16.1455 200.587 19.435 227.675 30.9481C254.762 42.4612 277.864 61.689 294.103 86.2367C310.342 110.784 319.001 139.567 319 169Z" fill="#BFD3DE"/>
+<path opacity="0.2" d="M319 169C319.039 194.942 312.319 220.446 299.5 243H34V61H273.1C287.635 74.9788 299.194 91.752 307.082 110.312C314.969 128.871 319.023 148.834 319 169Z" fill="#2E6699"/>
+<path d="M319 169C319.026 190.388 314.456 211.532 305.6 231C305.2 232 304.7 233 304.2 234H16V52H262.9L266.5 55C283.123 69.2146 296.435 86.8948 305.5 106.8L306 107.7C307.6 111.4 309.1 115.2 310.5 119L310.8 119.9C313.068 126.466 314.872 133.182 316.2 140C316.6 142 316.9 144 317.2 146C318.407 153.607 319.009 161.298 319 169Z" fill="#F2F5F7"/>
+<path d="M169 55H19V140H169V55Z" fill="white"/>
+<path d="M163 134V61L25 61V134H163Z" fill="white"/>
+<path d="M72.5 68C74.433 68 76 66.433 76 64.5C76 62.567 74.433 61 72.5 61H28.5C26.567 61 25 62.567 25 64.5C25 66.433 26.567 68 28.5 68H72.5Z" fill="#F1F2F3"/>
+<path d="M229.5 68C231.433 68 233 66.433 233 64.5C233 62.567 231.433 61 229.5 61H185.5C183.567 61 182 62.567 182 64.5C182 66.433 183.567 68 185.5 68H229.5Z" fill="#F1F2F3"/>
+<path d="M117 146H19V231H117V146Z" fill="white"/>
+<path d="M111 225V152H25V225H111Z" fill="white"/>
+<path d="M30 225V215H25V225H30Z" fill="#42B0A8"/>
+<path d="M35 225V216H30V225H35Z" fill="#52D9CF"/>
+<path d="M49 225V187H44V225H49Z" fill="#42B0A8"/>
+<path d="M54 225V191H49V225H54Z" fill="#52D9CF"/>
+<path d="M68 225V165H63V225H68Z" fill="#42B0A8"/>
+<path d="M73 225V178H68V225H73Z" fill="#52D9CF"/>
+<path d="M87 225V176H82V225H87Z" fill="#42B0A8"/>
+<path d="M92 225V205H87V225H92Z" fill="#52D9CF"/>
+<path d="M106 225V210H101V225H106Z" fill="#42B0A8"/>
+<path d="M111 225V211H106V225H111Z" fill="#52D9CF"/>
+<path d="M221 146H123V231H221V146Z" fill="white"/>
+<path d="M215 225V152H129V225H215Z" fill="white"/>
+<path d="M168.5 159C170.433 159 172 157.433 172 155.5C172 153.567 170.433 152 168.5 152H132.5C130.567 152 129 153.567 129 155.5C129 157.433 130.567 159 132.5 159H168.5Z" fill="#F1F2F3"/>
+<path d="M64.5 159C66.433 159 68 157.433 68 155.5C68 153.567 66.433 152 64.5 152H28.5C26.567 152 25 153.567 25 155.5C25 157.433 26.567 159 28.5 159H64.5Z" fill="#F1F2F3"/>
+<path d="M316.2 140H175V55H266.5C283.123 69.2146 296.435 86.8948 305.5 106.8L306 107.7C307.6 111.4 309.1 115.2 310.5 119L310.8 119.9C313.068 126.466 314.872 133.182 316.2 140Z" fill="white"/>
+<path d="M319 169C319.026 190.388 314.456 211.532 305.6 231H227V146H317.2C318.407 153.607 319.009 161.298 319 169Z" fill="white"/>
+<path d="M162 71L158 69L155 70C154.569 71.6456 154.235 73.3151 154 75C154 76 151 80 151 80C151 80 148 86 148 88C147.95 88.6291 147.74 89.235 147.39 89.7601C147.04 90.2852 146.562 90.712 146 91L137 96L129 100L124 103H119L115 99L110 95L98 91H94L91 96L85 100L81 103L75 105L65 101L60 100L57 103H52L50 109L46 114L40 122L33 127L27 122L25 124.5V134H163V71.3L162 71Z" fill="#FFC300"/>
+<path d="M162 72L158 70L155 71C154.569 72.6456 154.235 74.3151 154 76C154 77 151 81 151 81C151 81 148 87 148 89C147.95 89.6291 147.74 90.235 147.39 90.7601C147.04 91.2852 146.562 91.712 146 92L137 97L129 101L124 104H119L115 100L110 96L98 92H94L91 97L85 101L81 104L75 106L65 102L60 101L57 104H52L50 110L46 115L40 123L33 128L27 123L25 125.5V134H163V72.3L162 72Z" fill="#FFF3CC"/>
+<path d="M213 184L210 186L207 184L205 183L202 178L200 182L198 184L196 183L194 186C193.546 187.3 193.211 188.639 193 190C192.765 191.685 192.431 193.354 192 195L190 198L185 199H182L178 203L176 204H173L168 203H165L162 205L158 209H155L153 208L147 214L145 217L141 218H138L135 221L133 222L131 220L129 218.7V224H215V176L213 184Z" fill="#DCDDDE"/>
+<path d="M213 185L210 187L207 185L205 184L202 179L200 183L198 185L196 184L194 187C193.546 188.3 193.211 189.639 193 191C192.765 192.685 192.431 194.354 192 196L190 199L185 200H182L178 204L176 205H173L168 204H165L162 206L158 210H155L153 209L147 215L145 218L141 219H138L135 222L133 223L131 221L129 219.7V225H215V177L213 185Z" fill="#F1F2F3"/>
+<path d="M276 222C291.464 222 304 209.464 304 194C304 178.536 291.464 166 276 166C260.536 166 248 178.536 248 194C248 209.464 260.536 222 276 222Z" fill="#526573"/>
+<path d="M276 194V166C270.462 166 265.049 167.642 260.444 170.719C255.839 173.796 252.251 178.169 250.131 183.285C248.012 188.401 247.458 194.031 248.538 199.463C249.618 204.894 252.285 209.883 256.201 213.799C260.117 217.715 265.106 220.382 270.537 221.462C275.969 222.542 281.599 221.988 286.715 219.869C291.831 217.749 296.204 214.161 299.281 209.556C302.358 204.951 304 199.538 304 194V192.4L276 194Z" fill="#52D9CF"/>
+<path d="M276 194V166C271.186 166.004 266.455 167.248 262.263 169.614C258.07 171.979 254.558 175.386 252.066 179.504C249.574 183.622 248.186 188.314 248.035 193.125C247.885 197.936 248.977 202.705 251.207 206.971C253.437 211.237 256.73 214.856 260.766 217.479C264.802 220.102 269.447 221.639 274.251 221.944C279.055 222.248 283.856 221.309 288.191 219.217C292.527 217.125 296.249 213.95 299 210L276 194Z" fill="#F26565"/>
+<path d="M276 194V166C269.764 166.019 263.713 168.12 258.807 171.969C253.9 175.817 250.418 181.194 248.914 187.245C247.41 193.297 247.969 199.678 250.502 205.376C253.036 211.074 257.399 215.763 262.9 218.7L276 194Z" fill="#FAE26B"/>
+<path d="M276 194V166C268.582 166.026 261.475 168.985 256.23 174.23C250.985 179.475 248.026 186.582 248 194C247.977 197.714 248.726 201.391 250.2 204.8L276 194Z" fill="#F1F2F3"/>
+<path d="M276 213C286.493 213 295 204.493 295 194C295 183.507 286.493 175 276 175C265.507 175 257 183.507 257 194C257 204.493 265.507 213 276 213Z" fill="white"/>
+<path d="M284.5 159C286.433 159 288 157.433 288 155.5C288 153.567 286.433 152 284.5 152H236.5C234.567 152 233 153.567 233 155.5C233 157.433 234.567 159 236.5 159H284.5Z" fill="#F1F2F3"/>
+<path d="M306 107.7L304.1 109.5L295.7 107.4L289.8 97.6L287 98.5L285.8 98.9L280.8 100.6L278.2 96.5L277.6 95.5L275.6 92.3L269 86.6L260.3 92.4L253.4 101.3L247.2 108.5L238.8 109.5L232.6 102.3L232.1 101.9L230.9 100.9L226.9 97.6L221.4 100.4L219.9 101.1L219.2 101.5L213 105.6L208.1 101.4L206.5 100.1L205.7 99.4L200 93.7L195.3 97.2L193.6 98.5L192.1 99.5L183.1 97.5L181 99.4V98.1L182.9 96.5L191.9 98.5L194.5 96.5L196.2 95.2L200 92.3L205.7 98L206.4 98.6L207.4 99.5L213 104.4L218.7 100.6L220.6 99.6L222.1 98.9L227.1 96.4L230.5 99.3L231.8 100.3L233.3 101.6L239.2 108.5L246.8 107.5L252.6 100.7L259.7 91.6L269 85.4L276.4 91.7L278.8 95.5L279.4 96.5L281.2 99.4L284.7 98.3L285.9 97.8L290.2 96.4L296.3 106.6L303.9 108.5L305.5 106.8L306 107.7Z" fill="#526573"/>
+<path d="M310.8 119.9L304.9 121.5L296.6 115.3L289.6 101.4L285.8 98.9L284.7 98.3L281.9 96.5H275.9L269 92.6L263.4 97.3L257.4 116.3L248.1 126.7L239.6 120.3L232.5 108.1L230.9 100.9L230.5 99.3L227.8 87.5L212.9 117.3L206.5 100.1L205.7 98L201 85.3L196.2 95.2L195.3 97.2L191.2 105.7L183.2 100.7L181 104.5V102.5L182.8 99.3L190.8 104.3L193.6 98.5L194.5 96.5L201 82.7L207.4 99.5L208.1 101.4L213.1 114.8L219.9 101.1L220.6 99.6L228.2 84.5L231.8 100.3L232.1 101.9L233.5 107.8L240.4 119.7L247.9 125.3L256.6 115.8L262.6 96.7L269 91.4L276.1 95.5H282.1L285.9 97.8L287 98.5L290.4 100.6L297.4 114.7L305.1 120.5L310.5 119L310.8 119.9Z" fill="#52D9CF"/>
+<path d="M229.5 68C231.433 68 233 66.433 233 64.5C233 62.567 231.433 61 229.5 61H185.5C183.567 61 182 62.567 182 64.5C182 66.433 183.567 68 185.5 68H229.5Z" fill="#F1F2F3"/>
+<path opacity="0.05" d="M317.2 146C316.9 144 316.6 142 316.2 140C314.872 133.182 313.068 126.466 310.8 119.9L310.5 119C309.1 115.2 307.6 111.4 306 107.7L305.5 106.8C296.435 86.8948 283.123 69.2146 266.5 55L262.9 52H207C221.19 56.5688 234.412 63.7224 246 73.1L248.9 75.5C262.568 87.1589 273.524 101.664 281 118L281.3 118.8C282.7 121.8 283.9 124.9 285 128L285.3 128.8C287.129 134.163 288.599 139.642 289.7 145.2L290.6 150.1C291.521 156.358 291.989 162.675 292 169C292.038 186.528 288.285 203.857 281 219.8C280.694 220.659 280.326 221.494 279.9 222.3C277.93 226.306 275.761 230.211 273.4 234H304.2C304.7 233 305.2 232 305.6 231C314.456 211.532 319.026 190.388 319 169C319.009 161.298 318.407 153.607 317.2 146Z" fill="#304659"/>
+<path opacity="0.02" d="M317.2 146C316.9 144 316.6 142 316.2 140C314.872 133.182 313.068 126.466 310.8 119.9L310.5 119C309.1 115.2 307.6 111.4 306 107.7L305.5 106.8C296.435 86.8948 283.123 69.2146 266.5 55L262.9 52H172V234H304.2C304.7 233 305.2 232 305.6 231C314.456 211.532 319.026 190.388 319 169C319.009 161.298 318.407 153.607 317.2 146Z" fill="#304659"/>
+<path d="M233 184C217.144 184.006 201.558 188.109 187.756 195.913C173.953 203.716 162.401 214.955 154.221 228.538C146.041 242.121 141.51 257.588 141.068 273.437C140.627 289.287 144.289 304.982 151.7 319H314.3C321.711 304.982 325.373 289.287 324.932 273.437C324.49 257.588 319.959 242.121 311.779 228.538C303.599 214.955 292.047 203.716 278.245 195.913C264.442 188.109 248.856 184.006 233 184Z" fill="#697784"/>
+<path opacity="0.5" d="M233 184V319H314.3C321.711 304.982 325.373 289.287 324.932 273.437C324.49 257.588 319.959 242.121 311.779 228.538C303.599 214.955 292.047 203.716 278.245 195.913C264.442 188.109 248.856 184.006 233 184Z" fill="#304659"/>
+<path d="M233 193C219.146 193.003 205.513 196.473 193.344 203.096C181.174 209.718 170.857 219.281 163.331 230.913C155.805 242.544 151.31 255.875 150.257 269.689C149.203 283.503 151.625 297.362 157.3 310H308.7C314.375 297.362 316.797 283.503 315.743 269.689C314.69 255.875 310.195 242.544 302.669 230.913C295.143 219.281 284.826 209.718 272.656 203.096C260.487 196.473 246.854 193.003 233 193Z" fill="white"/>
+<path d="M233 207C215.39 206.996 198.444 213.725 185.635 225.81C172.825 237.894 165.121 254.419 164.1 272H164.2L185 274.7C185 261.97 190.057 249.761 199.059 240.759C208.061 231.757 220.27 226.7 233 226.7C245.73 226.7 257.939 231.757 266.941 240.759C275.943 249.761 281 261.97 281 274.7L301.8 272H301.9C300.879 254.419 293.175 237.894 280.365 225.81C267.556 213.725 250.61 206.996 233 207Z" fill="#F1F2F3"/>
+<path d="M167.2 255.3C165.497 260.721 164.457 266.329 164.1 272H164.2L185 274.7C185.092 271.121 185.595 267.564 186.5 264.1L167.2 255.3Z" fill="#00AB44"/>
+<path d="M229.9 291.8L161.6 253.9C161.479 253.837 161.372 253.751 161.285 253.645C161.199 253.54 161.135 253.418 161.098 253.286C161.06 253.155 161.05 253.018 161.068 252.883C161.085 252.747 161.13 252.617 161.2 252.5C161.323 252.305 161.51 252.159 161.729 252.086C161.947 252.013 162.185 252.018 162.4 252.1L236.1 278.2C237.835 278.961 239.217 280.351 239.97 282.09C240.722 283.829 240.788 285.789 240.155 287.574C239.521 289.36 238.236 290.84 236.556 291.717C234.876 292.593 232.927 292.802 231.1 292.3L229.9 291.8Z" fill="#708899"/>
+<path opacity="0.05" d="M233 193V310H308.7C314.375 297.362 316.797 283.503 315.743 269.689C314.69 255.875 310.195 242.544 302.669 230.913C295.143 219.281 284.826 209.718 272.656 203.096C260.487 196.473 246.854 193.003 233 193Z" fill="#304659"/>
+</svg>
diff --git a/web/gui/v2/static/img/no-filter-results.png b/src/web/gui/v2/static/img/no-filter-results.png
index 2b667da93..2b667da93 100644
--- a/web/gui/v2/static/img/no-filter-results.png
+++ b/src/web/gui/v2/static/img/no-filter-results.png
Binary files differ
diff --git a/web/gui/v2/static/img/no-nodes-room.svg b/src/web/gui/v2/static/img/no-nodes-room.svg
index 4660e1052..4660e1052 100644
--- a/web/gui/v2/static/img/no-nodes-room.svg
+++ b/src/web/gui/v2/static/img/no-nodes-room.svg
diff --git a/web/gui/v2/static/img/rack.png b/src/web/gui/v2/static/img/rack.png
index 75a088e8c..75a088e8c 100644
--- a/web/gui/v2/static/img/rack.png
+++ b/src/web/gui/v2/static/img/rack.png
Binary files differ
diff --git a/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.css b/src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.css
index d331473fb..d331473fb 100644
--- a/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.css
+++ b/src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.css
diff --git a/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.svg b/src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.svg
index 348ad4e70..348ad4e70 100644
--- a/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.svg
+++ b/src/web/gui/v2/static/site/pages/holding-page-503/holding-page-503.svg
diff --git a/web/gui/v2/static/site/pages/holding-page-503/index.html b/src/web/gui/v2/static/site/pages/holding-page-503/index.html
index c0b2136bc..c0b2136bc 100644
--- a/web/gui/v2/static/site/pages/holding-page-503/index.html
+++ b/src/web/gui/v2/static/site/pages/holding-page-503/index.html
diff --git a/web/gui/v2/static/site/pages/holding-page-503/multiple-logos-group.svg b/src/web/gui/v2/static/site/pages/holding-page-503/multiple-logos-group.svg
index e08356c43..e08356c43 100644
--- a/web/gui/v2/static/site/pages/holding-page-503/multiple-logos-group.svg
+++ b/src/web/gui/v2/static/site/pages/holding-page-503/multiple-logos-group.svg
diff --git a/web/gui/v2/static/site/pages/holding-page-503/netdata-logo-white.svg b/src/web/gui/v2/static/site/pages/holding-page-503/netdata-logo-white.svg
index 0c6e05122..0c6e05122 100644
--- a/web/gui/v2/static/site/pages/holding-page-503/netdata-logo-white.svg
+++ b/src/web/gui/v2/static/site/pages/holding-page-503/netdata-logo-white.svg
diff --git a/web/gui/v2/static/site/pages/holding-page-503/reset.svg b/src/web/gui/v2/static/site/pages/holding-page-503/reset.svg
index 66a66acdd..66a66acdd 100644
--- a/web/gui/v2/static/site/pages/holding-page-503/reset.svg
+++ b/src/web/gui/v2/static/site/pages/holding-page-503/reset.svg
diff --git a/web/gui/v2/static/splash.css b/src/web/gui/v2/static/splash.css
index f20b6ac41..f20b6ac41 100644
--- a/web/gui/v2/static/splash.css
+++ b/src/web/gui/v2/static/splash.css
diff --git a/src/web/gui/v2/sw.js b/src/web/gui/v2/sw.js
new file mode 100644
index 000000000..8321b3126
--- /dev/null
+++ b/src/web/gui/v2/sw.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="85bf46e7-14b1-4aad-b3ca-230d4eb7fadd",e._sentryDebugIdIdentifier="sentry-dbid-85bf46e7-14b1-4aad-b3ca-230d4eb7fadd")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"08864407160b3973b9b88c5ae92687282b21e2f4"},(()=>{"use strict";var e={3973:()=>{try{self["workbox:background-sync:7.0.0"]&&_()}catch(e){}},535:()=>{try{self["workbox:cacheable-response:7.0.0"]&&_()}catch(e){}},136:()=>{try{self["workbox:core:7.0.0"]&&_()}catch(e){}},8626:()=>{try{self["workbox:expiration:7.0.0"]&&_()}catch(e){}},4447:()=>{try{self["workbox:precaching:7.0.0"]&&_()}catch(e){}},9152:()=>{try{self["workbox:recipes:7.0.0"]&&_()}catch(e){}},1227:()=>{try{self["workbox:routing:7.0.0"]&&_()}catch(e){}},7390:()=>{try{self["workbox:strategies:7.0.0"]&&_()}catch(e){}},9306:(e,t,r)=>{var n=r(4901),s=r(6823),a=TypeError;e.exports=function(e){if(n(e))return e;throw new a(s(e)+" is not a function")}},3506:(e,t,r)=>{var n=r(3925),s=String,a=TypeError;e.exports=function(e){if(n(e))return e;throw new a("Can't set "+s(e)+" as a prototype")}},6469:(e,t,r)=>{var n=r(8227),s=r(2360),a=r(4913).f,o=n("unscopables"),i=Array.prototype;void 0===i[o]&&a(i,o,{configurable:!0,value:s(null)}),e.exports=function(e){i[o][e]=!0}},679:(e,t,r)=>{var n=r(1625),s=TypeError;e.exports=function(e,t){if(n(t,e))return e;throw new s("Incorrect invocation")}},8551:(e,t,r)=>{var n=r(34),s=String,a=TypeError;e.exports=function(e){if(n(e))return e;throw new a(s(e)+" is not an object")}},9617:(e,t,r)=>{var n=r(5397),s=r(5610),a=r(6198),o=function(e){return function(t,r,o){var i=n(t),c=a(i);if(0===c)return!e&&-1;var u,h=s(o,c);if(e&&r!==r){for(;c>h;)if((u=i[h++])!==u)return!0}else for(;c>h;h++)if((e||h in i)&&i[h]===r)return e||h||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},772:(e,t,r)=>{var n=r(9565),s=r(7751),a=r(5966);e.exports=function(e,t,r,o){try{var i=a(e,"return");if(i)return s("Promise").resolve(n(i,e)).then((function(){t(r)}),(function(e){o(e)}))}catch(c){return o(c)}t(r)}},2059:(e,t,r)=>{var n=r(9565),s=r(1103),a=r(8551),o=r(2360),i=r(6699),c=r(6279),u=r(8227),h=r(1181),l=r(7751),f=r(5966),d=r(3982),p=r(2529),y=r(9539),g=l("Promise"),m=u("toStringTag"),w="AsyncIteratorHelper",v="WrapForValidAsyncIterator",b=h.set,_=function(e){var t=!e,r=h.getterFor(e?v:w),i=function(e){var n=s((function(){return r(e)})),a=n.error,o=n.value;return a||t&&o.done?{exit:!0,value:a?g.reject(o):g.resolve(p(void 0,!0))}:{exit:!1,value:o}};return c(o(d),{next:function(){var e=i(this),t=e.value;if(e.exit)return t;var r=s((function(){return a(t.nextHandler(g))})),n=r.error,o=r.value;return n&&(t.done=!0),n?g.reject(o):g.resolve(o)},return:function(){var t=i(this),r=t.value;if(t.exit)return r;r.done=!0;var o,c,u=r.iterator,h=s((function(){if(r.inner)try{y(r.inner.iterator,"normal")}catch(e){return y(u,"throw",e)}return f(u,"return")}));return o=c=h.value,h.error?g.reject(c):void 0===o?g.resolve(p(void 0,!0)):(c=(h=s((function(){return n(o,u)}))).value,h.error?g.reject(c):e?g.resolve(c):g.resolve(c).then((function(e){return a(e),p(void 0,!0)})))}})},x=_(!0),R=_(!1);i(R,m,"Async Iterator Helper"),e.exports=function(e,t){var r=function(r,n){n?(n.iterator=r.iterator,n.next=r.next):n=r,n.type=t?v:w,n.nextHandler=e,n.counter=0,n.done=!1,b(this,n)};return r.prototype=t?x:R,r}},1750:(e,t,r)=>{var n=r(9565),s=r(9306),a=r(8551),o=r(34),i=r(1767),c=r(2059),u=r(2529),h=r(772),l=c((function(e){var t=this,r=t.iterator,s=t.mapper;return new e((function(i,c){var l=function(e){t.done=!0,c(e)},f=function(e){h(r,l,e,l)};e.resolve(a(n(t.next,r))).then((function(r){try{if(a(r).done)t.done=!0,i(u(void 0,!0));else{var n=r.value;try{var c=s(n,t.counter++),h=function(e){i(u(e,!1))};o(c)?e.resolve(c).then(h,f):h(c)}catch(d){f(d)}}}catch(p){l(p)}}),l)}))}));e.exports=function(e){return a(this),s(e),new l(i(this),{mapper:e})}},3982:(e,t,r)=>{var n,s,a=r(4475),o=r(7629),i=r(4901),c=r(2360),u=r(2787),h=r(6840),l=r(8227),f=r(6395),d="USE_FUNCTION_CONSTRUCTOR",p=l("asyncIterator"),y=a.AsyncIterator,g=o.AsyncIteratorPrototype;if(g)n=g;else if(i(y))n=y.prototype;else if(o[d]||a[d])try{s=u(u(u(Function("return async function*(){}()")()))),u(s)===Object.prototype&&(n=s)}catch(m){}n?f&&(n=c(n)):n={},i(n[p])||h(n,p,(function(){return this})),e.exports=n},6319:(e,t,r)=>{var n=r(8551),s=r(9539);e.exports=function(e,t,r,a){try{return a?t(n(r)[0],r[1]):t(r)}catch(o){s(e,"throw",o)}}},4576:(e,t,r)=>{var n=r(9504),s=n({}.toString),a=n("".slice);e.exports=function(e){return a(s(e),8,-1)}},7740:(e,t,r)=>{var n=r(9297),s=r(5031),a=r(7347),o=r(4913);e.exports=function(e,t,r){for(var i=s(t),c=o.f,u=a.f,h=0;h<i.length;h++){var l=i[h];n(e,l)||r&&n(r,l)||c(e,l,u(t,l))}}},2211:(e,t,r)=>{var n=r(9039);e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},2529:e=>{e.exports=function(e,t){return{value:e,done:t}}},6699:(e,t,r)=>{var n=r(3724),s=r(4913),a=r(6980);e.exports=n?function(e,t,r){return s.f(e,t,a(1,r))}:function(e,t,r){return e[t]=r,e}},6980:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},4659:(e,t,r)=>{var n=r(3724),s=r(4913),a=r(6980);e.exports=function(e,t,r){n?s.f(e,t,a(0,r)):e[t]=r}},2106:(e,t,r)=>{var n=r(283),s=r(4913);e.exports=function(e,t,r){return r.get&&n(r.get,t,{getter:!0}),r.set&&n(r.set,t,{setter:!0}),s.f(e,t,r)}},6840:(e,t,r)=>{var n=r(4901),s=r(4913),a=r(283),o=r(9433);e.exports=function(e,t,r,i){i||(i={});var c=i.enumerable,u=void 0!==i.name?i.name:t;if(n(r)&&a(r,u,i),i.global)c?e[t]=r:o(t,r);else{try{i.unsafe?e[t]&&(c=!0):delete e[t]}catch(h){}c?e[t]=r:s.f(e,t,{value:r,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return e}},6279:(e,t,r)=>{var n=r(6840);e.exports=function(e,t,r){for(var s in t)n(e,s,t[s],r);return e}},9433:(e,t,r)=>{var n=r(4475),s=Object.defineProperty;e.exports=function(e,t){try{s(n,e,{value:t,configurable:!0,writable:!0})}catch(r){n[e]=t}return t}},3724:(e,t,r)=>{var n=r(9039);e.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4055:(e,t,r)=>{var n=r(4475),s=r(34),a=n.document,o=s(a)&&s(a.createElement);e.exports=function(e){return o?a.createElement(e):{}}},7400:e=>{e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},9296:(e,t,r)=>{var n=r(4055)("span").classList,s=n&&n.constructor&&n.constructor.prototype;e.exports=s===Object.prototype?void 0:s},9392:e=>{e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},7388:(e,t,r)=>{var n,s,a=r(4475),o=r(9392),i=a.process,c=a.Deno,u=i&&i.versions||c&&c.version,h=u&&u.v8;h&&(s=(n=h.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!s&&o&&(!(n=o.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=o.match(/Chrome\/(\d+)/))&&(s=+n[1]),e.exports=s},8727:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},6518:(e,t,r)=>{var n=r(4475),s=r(7347).f,a=r(6699),o=r(6840),i=r(9433),c=r(7740),u=r(2796);e.exports=function(e,t){var r,h,l,f,d,p=e.target,y=e.global,g=e.stat;if(r=y?n:g?n[p]||i(p,{}):n[p]&&n[p].prototype)for(h in t){if(f=t[h],l=e.dontCallGetSet?(d=s(r,h))&&d.value:r[h],!u(y?h:p+(g?".":"#")+h,e.forced)&&void 0!==l){if(typeof f==typeof l)continue;c(f,l)}(e.sham||l&&l.sham)&&a(f,"sham",!0),o(r,h,f,e)}}},9039:e=>{e.exports=function(e){try{return!!e()}catch(t){return!0}}},616:(e,t,r)=>{var n=r(9039);e.exports=!n((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},9565:(e,t,r)=>{var n=r(616),s=Function.prototype.call;e.exports=n?s.bind(s):function(){return s.apply(s,arguments)}},350:(e,t,r)=>{var n=r(3724),s=r(9297),a=Function.prototype,o=n&&Object.getOwnPropertyDescriptor,i=s(a,"name"),c=i&&"something"===function(){}.name,u=i&&(!n||n&&o(a,"name").configurable);e.exports={EXISTS:i,PROPER:c,CONFIGURABLE:u}},6706:(e,t,r)=>{var n=r(9504),s=r(9306);e.exports=function(e,t,r){try{return n(s(Object.getOwnPropertyDescriptor(e,t)[r]))}catch(a){}}},9504:(e,t,r)=>{var n=r(616),s=Function.prototype,a=s.call,o=n&&s.bind.bind(a,a);e.exports=n?o:function(e){return function(){return a.apply(e,arguments)}}},7751:(e,t,r)=>{var n=r(4475),s=r(4901);e.exports=function(e,t){return arguments.length<2?(r=n[e],s(r)?r:void 0):n[e]&&n[e][t];var r}},1767:e=>{e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},5966:(e,t,r)=>{var n=r(9306),s=r(4117);e.exports=function(e,t){var r=e[t];return s(r)?void 0:n(r)}},4475:function(e,t,r){var n=function(e){return e&&e.Math===Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},9297:(e,t,r)=>{var n=r(9504),s=r(8981),a=n({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return a(s(e),t)}},421:e=>{e.exports={}},397:(e,t,r)=>{var n=r(7751);e.exports=n("document","documentElement")},5917:(e,t,r)=>{var n=r(3724),s=r(9039),a=r(4055);e.exports=!n&&!s((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},7055:(e,t,r)=>{var n=r(9504),s=r(9039),a=r(4576),o=Object,i=n("".split);e.exports=s((function(){return!o("z").propertyIsEnumerable(0)}))?function(e){return"String"===a(e)?i(e,""):o(e)}:o},3706:(e,t,r)=>{var n=r(9504),s=r(4901),a=r(7629),o=n(Function.toString);s(a.inspectSource)||(a.inspectSource=function(e){return o(e)}),e.exports=a.inspectSource},1181:(e,t,r)=>{var n,s,a,o=r(8622),i=r(4475),c=r(34),u=r(6699),h=r(9297),l=r(7629),f=r(6119),d=r(421),p="Object already initialized",y=i.TypeError,g=i.WeakMap;if(o||l.state){var m=l.state||(l.state=new g);m.get=m.get,m.has=m.has,m.set=m.set,n=function(e,t){if(m.has(e))throw new y(p);return t.facade=e,m.set(e,t),t},s=function(e){return m.get(e)||{}},a=function(e){return m.has(e)}}else{var w=f("state");d[w]=!0,n=function(e,t){if(h(e,w))throw new y(p);return t.facade=e,u(e,w,t),t},s=function(e){return h(e,w)?e[w]:{}},a=function(e){return h(e,w)}}e.exports={set:n,get:s,has:a,enforce:function(e){return a(e)?s(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!c(t)||(r=s(t)).type!==e)throw new y("Incompatible receiver, "+e+" required");return r}}}},4901:e=>{var t="object"==typeof document&&document.all;e.exports="undefined"==typeof t&&void 0!==t?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},2796:(e,t,r)=>{var n=r(9039),s=r(4901),a=/#|\.prototype\./,o=function(e,t){var r=c[i(e)];return r===h||r!==u&&(s(t)?n(t):!!t)},i=o.normalize=function(e){return String(e).replace(a,".").toLowerCase()},c=o.data={},u=o.NATIVE="N",h=o.POLYFILL="P";e.exports=o},4117:e=>{e.exports=function(e){return null===e||void 0===e}},34:(e,t,r)=>{var n=r(4901);e.exports=function(e){return"object"==typeof e?null!==e:n(e)}},3925:(e,t,r)=>{var n=r(34);e.exports=function(e){return n(e)||null===e}},6395:e=>{e.exports=!1},757:(e,t,r)=>{var n=r(7751),s=r(4901),a=r(1625),o=r(7040),i=Object;e.exports=o?function(e){return"symbol"==typeof e}:function(e){var t=n("Symbol");return s(t)&&a(t.prototype,i(e))}},9539:(e,t,r)=>{var n=r(9565),s=r(8551),a=r(5966);e.exports=function(e,t,r){var o,i;s(e);try{if(!(o=a(e,"return"))){if("throw"===t)throw r;return r}o=n(o,e)}catch(c){i=!0,o=c}if("throw"===t)throw r;if(i)throw o;return s(o),r}},3994:(e,t,r)=>{var n=r(7657).IteratorPrototype,s=r(2360),a=r(6980),o=r(687),i=r(6269),c=function(){return this};e.exports=function(e,t,r,u){var h=t+" Iterator";return e.prototype=s(n,{next:a(+!u,r)}),o(e,h,!1,!0),i[h]=c,e}},9462:(e,t,r)=>{var n=r(9565),s=r(2360),a=r(6699),o=r(6279),i=r(8227),c=r(1181),u=r(5966),h=r(7657).IteratorPrototype,l=r(2529),f=r(9539),d=i("toStringTag"),p="IteratorHelper",y="WrapForValidIterator",g=c.set,m=function(e){var t=c.getterFor(e?y:p);return o(s(h),{next:function(){var r=t(this);if(e)return r.nextHandler();try{var n=r.done?void 0:r.nextHandler();return l(n,r.done)}catch(s){throw r.done=!0,s}},return:function(){var r=t(this),s=r.iterator;if(r.done=!0,e){var a=u(s,"return");return a?n(a,s):l(void 0,!0)}if(r.inner)try{f(r.inner.iterator,"normal")}catch(o){return f(s,"throw",o)}return f(s,"normal"),l(void 0,!0)}})},w=m(!0),v=m(!1);a(v,d,"Iterator Helper"),e.exports=function(e,t){var r=function(r,n){n?(n.iterator=r.iterator,n.next=r.next):n=r,n.type=t?y:p,n.nextHandler=e,n.counter=0,n.done=!1,g(this,n)};return r.prototype=t?w:v,r}},1088:(e,t,r)=>{var n=r(6518),s=r(9565),a=r(6395),o=r(350),i=r(4901),c=r(3994),u=r(2787),h=r(2967),l=r(687),f=r(6699),d=r(6840),p=r(8227),y=r(6269),g=r(7657),m=o.PROPER,w=o.CONFIGURABLE,v=g.IteratorPrototype,b=g.BUGGY_SAFARI_ITERATORS,_=p("iterator"),x="keys",R="values",q="entries",S=function(){return this};e.exports=function(e,t,r,o,p,g,E){c(r,t,o);var O,C,D,T=function(e){if(e===p&&N)return N;if(!b&&e&&e in k)return k[e];switch(e){case x:case R:case q:return function(){return new r(this,e)}}return function(){return new r(this)}},L=t+" Iterator",I=!1,k=e.prototype,P=k[_]||k["@@iterator"]||p&&k[p],N=!b&&P||T(p),j="Array"===t&&k.entries||P;if(j&&(O=u(j.call(new e)))!==Object.prototype&&O.next&&(a||u(O)===v||(h?h(O,v):i(O[_])||d(O,_,S)),l(O,L,!0,!0),a&&(y[L]=S)),m&&p===R&&P&&P.name!==R&&(!a&&w?f(k,"name",R):(I=!0,N=function(){return s(P,this)})),p)if(C={values:T(R),keys:g?N:T(x),entries:T(q)},E)for(D in C)(b||I||!(D in k))&&d(k,D,C[D]);else n({target:t,proto:!0,forced:b||I},C);return a&&!E||k[_]===N||d(k,_,N,{name:p}),y[t]=N,C}},713:(e,t,r)=>{var n=r(9565),s=r(9306),a=r(8551),o=r(1767),i=r(9462),c=r(6319),u=i((function(){var e=this.iterator,t=a(n(this.next,e));if(!(this.done=!!t.done))return c(e,this.mapper,[t.value,this.counter++],!0)}));e.exports=function(e){return a(this),s(e),new u(o(this),{mapper:e})}},7657:(e,t,r)=>{var n,s,a,o=r(9039),i=r(4901),c=r(34),u=r(2360),h=r(2787),l=r(6840),f=r(8227),d=r(6395),p=f("iterator"),y=!1;[].keys&&("next"in(a=[].keys())?(s=h(h(a)))!==Object.prototype&&(n=s):y=!0),!c(n)||o((function(){var e={};return n[p].call(e)!==e}))?n={}:d&&(n=u(n)),i(n[p])||l(n,p,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:y}},6269:e=>{e.exports={}},6198:(e,t,r)=>{var n=r(8014);e.exports=function(e){return n(e.length)}},283:(e,t,r)=>{var n=r(9504),s=r(9039),a=r(4901),o=r(9297),i=r(3724),c=r(350).CONFIGURABLE,u=r(3706),h=r(1181),l=h.enforce,f=h.get,d=String,p=Object.defineProperty,y=n("".slice),g=n("".replace),m=n([].join),w=i&&!s((function(){return 8!==p((function(){}),"length",{value:8}).length})),v=String(String).split("String"),b=e.exports=function(e,t,r){"Symbol("===y(d(t),0,7)&&(t="["+g(d(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!o(e,"name")||c&&e.name!==t)&&(i?p(e,"name",{value:t,configurable:!0}):e.name=t),w&&r&&o(r,"arity")&&e.length!==r.arity&&p(e,"length",{value:r.arity});try{r&&o(r,"constructor")&&r.constructor?i&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(s){}var n=l(e);return o(n,"source")||(n.source=m(v,"string"==typeof t?t:"")),e};Function.prototype.toString=b((function(){return a(this)&&f(this).source||u(this)}),"toString")},741:e=>{var t=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var n=+e;return(n>0?r:t)(n)}},2360:(e,t,r)=>{var n,s=r(8551),a=r(6801),o=r(8727),i=r(421),c=r(397),u=r(4055),h=r(6119),l="prototype",f="script",d=h("IE_PROTO"),p=function(){},y=function(e){return"<"+f+">"+e+"</"+f+">"},g=function(e){e.write(y("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{n=new ActiveXObject("htmlfile")}catch(t){}m="undefined"!=typeof document?document.domain&&n?g(n):function(){var e,t=u("iframe"),r="java"+f+":";return t.style.display="none",c.appendChild(t),t.src=String(r),(e=t.contentWindow.document).open(),e.write(y("document.F=Object")),e.close(),e.F}():g(n);for(var e=o.length;e--;)delete m[l][o[e]];return m()};i[d]=!0,e.exports=Object.create||function(e,t){var r;return null!==e?(p[l]=s(e),r=new p,p[l]=null,r[d]=e):r=m(),void 0===t?r:a.f(r,t)}},6801:(e,t,r)=>{var n=r(3724),s=r(8686),a=r(4913),o=r(8551),i=r(5397),c=r(1072);t.f=n&&!s?Object.defineProperties:function(e,t){o(e);for(var r,n=i(t),s=c(t),u=s.length,h=0;u>h;)a.f(e,r=s[h++],n[r]);return e}},4913:(e,t,r)=>{var n=r(3724),s=r(5917),a=r(8686),o=r(8551),i=r(6969),c=TypeError,u=Object.defineProperty,h=Object.getOwnPropertyDescriptor,l="enumerable",f="configurable",d="writable";t.f=n?a?function(e,t,r){if(o(e),t=i(t),o(r),"function"===typeof e&&"prototype"===t&&"value"in r&&d in r&&!r[d]){var n=h(e,t);n&&n[d]&&(e[t]=r.value,r={configurable:f in r?r[f]:n[f],enumerable:l in r?r[l]:n[l],writable:!1})}return u(e,t,r)}:u:function(e,t,r){if(o(e),t=i(t),o(r),s)try{return u(e,t,r)}catch(n){}if("get"in r||"set"in r)throw new c("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},7347:(e,t,r)=>{var n=r(3724),s=r(9565),a=r(8773),o=r(6980),i=r(5397),c=r(6969),u=r(9297),h=r(5917),l=Object.getOwnPropertyDescriptor;t.f=n?l:function(e,t){if(e=i(e),t=c(t),h)try{return l(e,t)}catch(r){}if(u(e,t))return o(!s(a.f,e,t),e[t])}},8480:(e,t,r)=>{var n=r(1828),s=r(8727).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,s)}},3717:(e,t)=>{t.f=Object.getOwnPropertySymbols},2787:(e,t,r)=>{var n=r(9297),s=r(4901),a=r(8981),o=r(6119),i=r(2211),c=o("IE_PROTO"),u=Object,h=u.prototype;e.exports=i?u.getPrototypeOf:function(e){var t=a(e);if(n(t,c))return t[c];var r=t.constructor;return s(r)&&t instanceof r?r.prototype:t instanceof u?h:null}},1625:(e,t,r)=>{var n=r(9504);e.exports=n({}.isPrototypeOf)},1828:(e,t,r)=>{var n=r(9504),s=r(9297),a=r(5397),o=r(9617).indexOf,i=r(421),c=n([].push);e.exports=function(e,t){var r,n=a(e),u=0,h=[];for(r in n)!s(i,r)&&s(n,r)&&c(h,r);for(;t.length>u;)s(n,r=t[u++])&&(~o(h,r)||c(h,r));return h}},1072:(e,t,r)=>{var n=r(1828),s=r(8727);e.exports=Object.keys||function(e){return n(e,s)}},8773:(e,t)=>{var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,s=n&&!r.call({1:2},1);t.f=s?function(e){var t=n(this,e);return!!t&&t.enumerable}:r},2967:(e,t,r)=>{var n=r(6706),s=r(8551),a=r(3506);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=n(Object.prototype,"__proto__","set"))(r,[]),t=r instanceof Array}catch(o){}return function(r,n){return s(r),a(n),t?e(r,n):r.__proto__=n,r}}():void 0)},4270:(e,t,r)=>{var n=r(9565),s=r(4901),a=r(34),o=TypeError;e.exports=function(e,t){var r,i;if("string"===t&&s(r=e.toString)&&!a(i=n(r,e)))return i;if(s(r=e.valueOf)&&!a(i=n(r,e)))return i;if("string"!==t&&s(r=e.toString)&&!a(i=n(r,e)))return i;throw new o("Can't convert object to primitive value")}},5031:(e,t,r)=>{var n=r(7751),s=r(9504),a=r(8480),o=r(3717),i=r(8551),c=s([].concat);e.exports=n("Reflect","ownKeys")||function(e){var t=a.f(i(e)),r=o.f;return r?c(t,r(e)):t}},1103:e=>{e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},7750:(e,t,r)=>{var n=r(4117),s=TypeError;e.exports=function(e){if(n(e))throw new s("Can't call method on "+e);return e}},687:(e,t,r)=>{var n=r(4913).f,s=r(9297),a=r(8227)("toStringTag");e.exports=function(e,t,r){e&&!r&&(e=e.prototype),e&&!s(e,a)&&n(e,a,{configurable:!0,value:t})}},6119:(e,t,r)=>{var n=r(5745),s=r(3392),a=n("keys");e.exports=function(e){return a[e]||(a[e]=s(e))}},7629:(e,t,r)=>{var n=r(6395),s=r(4475),a=r(9433),o="__core-js_shared__",i=e.exports=s[o]||a(o,{});(i.versions||(i.versions=[])).push({version:"3.36.0",mode:n?"pure":"global",copyright:"\xa9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE",source:"https://github.com/zloirock/core-js"})},5745:(e,t,r)=>{var n=r(7629);e.exports=function(e,t){return n[e]||(n[e]=t||{})}},4495:(e,t,r)=>{var n=r(7388),s=r(9039),a=r(4475).String;e.exports=!!Object.getOwnPropertySymbols&&!s((function(){var e=Symbol("symbol detection");return!a(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},5610:(e,t,r)=>{var n=r(1291),s=Math.max,a=Math.min;e.exports=function(e,t){var r=n(e);return r<0?s(r+t,0):a(r,t)}},5397:(e,t,r)=>{var n=r(7055),s=r(7750);e.exports=function(e){return n(s(e))}},1291:(e,t,r)=>{var n=r(741);e.exports=function(e){var t=+e;return t!==t||0===t?0:n(t)}},8014:(e,t,r)=>{var n=r(1291),s=Math.min;e.exports=function(e){var t=n(e);return t>0?s(t,9007199254740991):0}},8981:(e,t,r)=>{var n=r(7750),s=Object;e.exports=function(e){return s(n(e))}},2777:(e,t,r)=>{var n=r(9565),s=r(34),a=r(757),o=r(5966),i=r(4270),c=r(8227),u=TypeError,h=c("toPrimitive");e.exports=function(e,t){if(!s(e)||a(e))return e;var r,c=o(e,h);if(c){if(void 0===t&&(t="default"),r=n(c,e,t),!s(r)||a(r))return r;throw new u("Can't convert object to primitive value")}return void 0===t&&(t="number"),i(e,t)}},6969:(e,t,r)=>{var n=r(2777),s=r(757);e.exports=function(e){var t=n(e,"string");return s(t)?t:t+""}},6823:e=>{var t=String;e.exports=function(e){try{return t(e)}catch(r){return"Object"}}},3392:(e,t,r)=>{var n=r(9504),s=0,a=Math.random(),o=n(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+o(++s+a,36)}},7040:(e,t,r)=>{var n=r(4495);e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8686:(e,t,r)=>{var n=r(3724),s=r(9039);e.exports=n&&s((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},8622:(e,t,r)=>{var n=r(4475),s=r(4901),a=n.WeakMap;e.exports=s(a)&&/native code/.test(String(a))},8227:(e,t,r)=>{var n=r(4475),s=r(5745),a=r(9297),o=r(3392),i=r(4495),c=r(7040),u=n.Symbol,h=s("wks"),l=c?u.for||u:u&&u.withoutSetter||o;e.exports=function(e){return a(h,e)||(h[e]=i&&a(u,e)?u[e]:l("Symbol."+e)),h[e]}},3792:(e,t,r)=>{var n=r(5397),s=r(6469),a=r(6269),o=r(1181),i=r(4913).f,c=r(1088),u=r(2529),h=r(6395),l=r(3724),f="Array Iterator",d=o.set,p=o.getterFor(f);e.exports=c(Array,"Array",(function(e,t){d(this,{type:f,target:n(e),index:0,kind:t})}),(function(){var e=p(this),t=e.target,r=e.index++;if(!t||r>=t.length)return e.target=void 0,u(void 0,!0);switch(e.kind){case"keys":return u(r,!1);case"values":return u(t[r],!1)}return u([r,t[r]],!1)}),"values");var y=a.Arguments=a.Array;if(s("keys"),s("values"),s("entries"),!h&&l&&"values"!==y.name)try{i(y,"name",{value:"values"})}catch(g){}},7333:(e,t,r)=>{var n=r(6518),s=r(9565),a=r(9306),o=r(8551),i=r(34),c=r(1767),u=r(2059),h=r(2529),l=r(772),f=r(6395),d=u((function(e){var t=this,r=t.iterator,n=t.predicate;return new e((function(a,c){var u=function(e){t.done=!0,c(e)},f=function(e){l(r,u,e,u)},d=function(){try{e.resolve(o(s(t.next,r))).then((function(r){try{if(o(r).done)t.done=!0,a(h(void 0,!0));else{var s=r.value;try{var c=n(s,t.counter++),l=function(e){e?a(h(s,!1)):d()};i(c)?e.resolve(c).then(l,f):l(c)}catch(p){f(p)}}}catch(y){u(y)}}),u)}catch(c){u(c)}};d()}))}));n({target:"AsyncIterator",proto:!0,real:!0,forced:f},{filter:function(e){return o(this),a(e),new d(c(this),{predicate:e})}})},1393:(e,t,r)=>{var n=r(6518),s=r(1750);n({target:"AsyncIterator",proto:!0,real:!0,forced:r(6395)},{map:s})},8992:(e,t,r)=>{var n=r(6518),s=r(4475),a=r(679),o=r(8551),i=r(4901),c=r(2787),u=r(2106),h=r(4659),l=r(9039),f=r(9297),d=r(8227),p=r(7657).IteratorPrototype,y=r(3724),g=r(6395),m="constructor",w="Iterator",v=d("toStringTag"),b=TypeError,_=s[w],x=g||!i(_)||_.prototype!==p||!l((function(){_({})})),R=function(){if(a(this,p),c(this)===p)throw new b("Abstract class Iterator not directly constructable")},q=function(e,t){y?u(p,e,{configurable:!0,get:function(){return t},set:function(t){if(o(this),this===p)throw new b("You can't redefine this property");f(this,e)?this[e]=t:h(this,e,t)}}):p[e]=t};f(p,v)||q(v,w),!x&&f(p,m)&&p[m]!==Object||q(m,R),R.prototype=p,n({global:!0,constructor:!0,forced:x},{Iterator:R})},4520:(e,t,r)=>{var n=r(6518),s=r(9565),a=r(9306),o=r(8551),i=r(1767),c=r(9462),u=r(6319),h=r(6395),l=c((function(){for(var e,t,r=this.iterator,n=this.predicate,a=this.next;;){if(e=o(s(a,r)),this.done=!!e.done)return;if(t=e.value,u(r,n,[t,this.counter++],!0))return t}}));n({target:"Iterator",proto:!0,real:!0,forced:h},{filter:function(e){return o(this),a(e),new l(i(this),{predicate:e})}})},1454:(e,t,r)=>{var n=r(6518),s=r(713);n({target:"Iterator",proto:!0,real:!0,forced:r(6395)},{map:s})},2953:(e,t,r)=>{var n=r(4475),s=r(7400),a=r(9296),o=r(3792),i=r(6699),c=r(687),u=r(8227)("iterator"),h=o.values,l=function(e,t){if(e){if(e[u]!==h)try{i(e,u,h)}catch(n){e[u]=h}if(c(e,t,!0),s[t])for(var r in o)if(e[r]!==o[r])try{i(e,r,o[r])}catch(n){e[r]=o[r]}}};for(var f in s)l(n[f]&&n[f].prototype,f);l(a,"DOMTokenList")}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),(()=>{r(7333),r(1393),r(8992),r(4520),r(1454),r(2953),r(136);const e=(e,...t)=>{let r=e;return t.length>0&&(r+=` :: ${JSON.stringify(t)}`),r};class t extends Error{constructor(t,r){super(e(t,r)),this.name=t,this.details=r}}const n=new Set;const s={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!==typeof registration?registration.scope:""},a=e=>[s.prefix,e,s.suffix].filter((e=>e&&e.length>0)).join("-"),o=e=>e||a(s.precache),i=e=>e||a(s.runtime);function c(e,t){const r=new URL(e);for(const n of t)r.searchParams.delete(n);return r.href}let u;function h(e){e.then((()=>{}))}class l{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}const f=e=>new URL(String(e),location.href).href.replace(new RegExp(`^${location.origin}`),"");function d(e){return new Promise((t=>setTimeout(t,e)))}function p(e,t){const r=t();return e.waitUntil(r),r}async function y(e,r){let n=null;if(e.url){n=new URL(e.url).origin}if(n!==self.location.origin)throw new t("cross-origin-copy-response",{origin:n});const s=e.clone(),a={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},o=r?r(a):a,i=function(){if(void 0===u){const t=new Response("");if("body"in t)try{new Response(t.body),u=!0}catch(e){u=!1}u=!1}return u}()?s.body:await s.blob();return new Response(i,o)}r(1227);const g=e=>e&&"object"===typeof e?e:{handle:e};class m{constructor(e,t,r="GET"){this.handler=g(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=g(e)}}class w extends m{constructor(e,t,r){super((({url:t})=>{const r=e.exec(t.href);if(r&&(t.origin===location.origin||0===r.index))return r.slice(1)}),t,r)}}class v{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e});r&&e.respondWith(r)}))}addCacheListener(){self.addEventListener("message",(e=>{if(e.data&&"CACHE_URLS"===e.data.type){const{payload:t}=e.data;0;const r=Promise.all(t.urlsToCache.map((t=>{"string"===typeof t&&(t=[t]);const r=new Request(...t);return this.handleRequest({request:r,event:e})})));e.waitUntil(r),e.ports&&e.ports[0]&&r.then((()=>e.ports[0].postMessage(!0)))}}))}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href);if(!r.protocol.startsWith("http"))return void 0;const n=r.origin===location.origin,{params:s,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:n,url:r});let o=a&&a.handler;const i=e.method;if(!o&&this._defaultHandlerMap.has(i)&&(o=this._defaultHandlerMap.get(i)),!o)return void 0;let c;try{c=o.handle({url:r,request:e,event:t,params:s})}catch(h){c=Promise.reject(h)}const u=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||u)&&(c=c.catch((async n=>{if(u){0;try{return await u.handle({url:r,request:e,event:t,params:s})}catch(a){a instanceof Error&&(n=a)}}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t});throw n}))),c}findMatchingRoute({url:e,sameOrigin:t,request:r,event:n}){const s=this._routes.get(r.method)||[];for(const a of s){let s;const o=a.match({url:e,sameOrigin:t,request:r,event:n});if(o)return s=o,(Array.isArray(s)&&0===s.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"===typeof o)&&(s=void 0),{route:a,params:s}}return{}}setDefaultHandler(e,t="GET"){this._defaultHandlerMap.set(t,g(e))}setCatchHandler(e){this._catchHandler=g(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new t("unregister-route-but-not-found-with-method",{method:e.method});const r=this._routes.get(e.method).indexOf(e);if(!(r>-1))throw new t("unregister-route-route-not-registered");this._routes.get(e.method).splice(r,1)}}let b;const _=()=>(b||(b=new v,b.addFetchListener(),b.addCacheListener()),b);function x(e,r,n){let s;if("string"===typeof e){const t=new URL(e,location.href);0;s=new m((({url:e})=>e.href===t.href),r,n)}else if(e instanceof RegExp)s=new w(e,r,n);else if("function"===typeof e)s=new m(e,r,n);else{if(!(e instanceof m))throw new t("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});s=e}return _().registerRoute(s),s}r(7390);const R={cacheWillUpdate:async({response:e})=>200===e.status||0===e.status?e:null};function q(e){return"string"===typeof e?new Request(e):e}class S{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new l,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const r of this._plugins)this._pluginStateMap.set(r,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:r}=this;let n=q(e);if("navigate"===n.mode&&r instanceof FetchEvent&&r.preloadResponse){const e=await r.preloadResponse;if(e)return e}const s=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const e of this.iterateCallbacks("requestWillFetch"))n=await e({request:n.clone(),event:r})}catch(o){if(o instanceof Error)throw new t("plugin-error-request-will-fetch",{thrownErrorMessage:o.message})}const a=n.clone();try{let e;e=await fetch(n,"navigate"===n.mode?void 0:this._strategy.fetchOptions);for(const t of this.iterateCallbacks("fetchDidSucceed"))e=await t({event:r,request:a,response:e});return e}catch(i){throw s&&await this.runCallbacks("fetchDidFail",{error:i,event:r,originalRequest:s.clone(),request:a.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone();return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=q(e);let r;const{cacheName:n,matchOptions:s}=this._strategy,a=await this.getCacheKey(t,"read"),o=Object.assign(Object.assign({},s),{cacheName:n});r=await caches.match(a,o);for(const i of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await i({cacheName:n,matchOptions:s,cachedResponse:r,request:a,event:this.event})||void 0;return r}async cachePut(e,r){const s=q(e);await d(0);const a=await this.getCacheKey(s,"write");if(!r)throw new t("cache-put-with-no-response",{url:f(a.url)});const o=await this._ensureResponseSafeToCache(r);if(!o)return!1;const{cacheName:i,matchOptions:u}=this._strategy,h=await self.caches.open(i),l=this.hasCallback("cacheDidUpdate"),p=l?await async function(e,t,r,n){const s=c(t.url,r);if(t.url===s)return e.match(t,n);const a=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await e.keys(t,a);for(const i of o)if(s===c(i.url,r))return e.match(i,n)}(h,a.clone(),["__WB_REVISION__"],u):null;try{await h.put(a,l?o.clone():o)}catch(y){if(y instanceof Error)throw"QuotaExceededError"===y.name&&await async function(){for(const e of n)await e()}(),y}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:i,oldResponse:p,newResponse:o.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const r=`${e.url} | ${t}`;if(!this._cacheKeys[r]){let n=e;for(const e of this.iterateCallbacks("cacheKeyWillBeUsed"))n=q(await e({mode:t,request:n,event:this.event,params:this.params}));this._cacheKeys[r]=n}return this._cacheKeys[r]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if("function"===typeof t[e]){const r=this._pluginStateMap.get(t),n=n=>{const s=Object.assign(Object.assign({},n),{state:r});return t[e](s)};yield n}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1;for(const n of this.iterateCallbacks("cacheWillUpdate"))if(t=await n({request:this.request,response:t,event:this.event})||void 0,r=!0,!t)break;return r||t&&200!==t.status&&(t=void 0),t}}class E{constructor(e={}){this.cacheName=i(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,r="string"===typeof e.request?new Request(e.request):e.request,n="params"in e?e.params:void 0,s=new S(this,{event:t,request:r,params:n}),a=this._getResponse(s,r,t);return[a,this._awaitComplete(a,s,r,t)]}async _getResponse(e,r,n){let s;await e.runCallbacks("handlerWillStart",{event:n,request:r});try{if(s=await this._handle(r,e),!s||"error"===s.type)throw new t("no-response",{url:r.url})}catch(a){if(a instanceof Error)for(const t of e.iterateCallbacks("handlerDidError"))if(s=await t({error:a,event:n,request:r}),s)break;if(!s)throw a}for(const t of e.iterateCallbacks("handlerWillRespond"))s=await t({event:n,request:r,response:s});return s}async _awaitComplete(e,t,r,n){let s,a;try{s=await e}catch(a){}try{await t.runCallbacks("handlerDidRespond",{event:n,request:r,response:s}),await t.doneWaiting()}catch(o){o instanceof Error&&(a=o)}if(await t.runCallbacks("handlerDidComplete",{event:n,request:r,response:s,error:a}),t.destroy(),a)throw a}}r(535);class O{constructor(e={}){this._statuses=e.statuses,this._headers=e.headers}isResponseCacheable(e){let t=!0;return this._statuses&&(t=this._statuses.includes(e.status)),this._headers&&t&&(t=Object.keys(this._headers).some((t=>e.headers.get(t)===this._headers[t]))),t}}class C{constructor(e){this.cacheWillUpdate=async({response:e})=>this._cacheableResponse.isResponseCacheable(e)?e:null,this._cacheableResponse=new O(e)}}const D=(e,t)=>t.some((t=>e instanceof t));let T,L;const I=new WeakMap,k=new WeakMap,P=new WeakMap,N=new WeakMap,j=new WeakMap;let A={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return k.get(e);if("objectStoreNames"===t)return e.objectStoreNames||P.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return F(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function U(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(L||(L=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(B(this),t),F(I.get(this))}:function(...t){return F(e.apply(B(this),t))}:function(t,...r){const n=e.call(B(this),t,...r);return P.set(n,t.sort?t.sort():[t]),F(n)}}function M(e){return"function"===typeof e?U(e):(e instanceof IDBTransaction&&function(e){if(k.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",s),e.removeEventListener("error",a),e.removeEventListener("abort",a)},s=()=>{t(),n()},a=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",s),e.addEventListener("error",a),e.addEventListener("abort",a)}));k.set(e,t)}(e),D(e,T||(T=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,A):e)}function F(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",s),e.removeEventListener("error",a)},s=()=>{t(F(e.result)),n()},a=()=>{r(e.error),n()};e.addEventListener("success",s),e.addEventListener("error",a)}));return t.then((t=>{t instanceof IDBCursor&&I.set(t,e)})).catch((()=>{})),j.set(t,e),t}(e);if(N.has(e))return N.get(e);const t=M(e);return t!==e&&(N.set(e,t),j.set(t,e)),t}const B=e=>j.get(e);function K(e,t,{blocked:r,upgrade:n,blocking:s,terminated:a}={}){const o=indexedDB.open(e,t),i=F(o);return n&&o.addEventListener("upgradeneeded",(e=>{n(F(o.result),e.oldVersion,e.newVersion,F(o.transaction),e)})),r&&o.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),i.then((e=>{a&&e.addEventListener("close",(()=>a())),s&&e.addEventListener("versionchange",(e=>s(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),i}const W=["get","getKey","getAll","getAllKeys","count"],H=["put","add","delete","clear"],V=new Map;function G(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!==typeof t)return;if(V.get(t))return V.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,s=H.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!s&&!W.includes(r))return;const a=async function(e,...t){const a=this.transaction(e,s?"readwrite":"readonly");let o=a.store;return n&&(o=o.index(t.shift())),(await Promise.all([o[r](...t),s&&a.done]))[0]};return V.set(t,a),a}A=(e=>({...e,get:(t,r,n)=>G(t,r)||e.get(t,r,n),has:(t,r)=>!!G(t,r)||e.has(t,r)}))(A);r(8626);const $="cache-entries",Q=e=>{const t=new URL(e,location.href);return t.hash="",t.href};class z{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore($,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&function(e,{blocked:t}={}){const r=indexedDB.deleteDatabase(e);t&&r.addEventListener("blocked",(e=>t(e.oldVersion,e))),F(r).then((()=>{}))}(this._cacheName)}async setTimestamp(e,t){const r={url:e=Q(e),timestamp:t,cacheName:this._cacheName,id:this._getId(e)},n=(await this.getDb()).transaction($,"readwrite",{durability:"relaxed"});await n.store.put(r),await n.done}async getTimestamp(e){const t=await this.getDb(),r=await t.get($,this._getId(e));return null===r||void 0===r?void 0:r.timestamp}async expireEntries(e,t){const r=await this.getDb();let n=await r.transaction($).store.index("timestamp").openCursor(null,"prev");const s=[];let a=0;for(;n;){const r=n.value;r.cacheName===this._cacheName&&(e&&r.timestamp<e||t&&a>=t?s.push(n.value):a++),n=await n.continue()}const o=[];for(const i of s)await r.delete($,i.id),o.push(i.url);return o}_getId(e){return this._cacheName+"|"+Q(e)}async getDb(){return this._db||(this._db=await K("workbox-expiration",1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class Y{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new z(e)}async expireEntries(){if(this._isRunning)return void(this._rerunRequested=!0);this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-1e3*this._maxAgeSeconds:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),r=await self.caches.open(this._cacheName);for(const n of t)await r.delete(n,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,h(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),r=Date.now()-1e3*this._maxAgeSeconds;return void 0===t||t<r}return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}r(9152);r(4447);function J(e){if(!e)throw new t("add-to-cache-list-unexpected-type",{entry:e});if("string"===typeof e){const t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}const{revision:r,url:n}=e;if(!n)throw new t("add-to-cache-list-unexpected-type",{entry:e});if(!r){const e=new URL(n,location.href);return{cacheKey:e.href,url:e.href}}const s=new URL(n,location.href),a=new URL(n,location.href);return s.searchParams.set("__WB_REVISION__",r),{cacheKey:s.href,url:a.href}}class X{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:r})=>{if("install"===e.type&&t&&t.originalRequest&&t.originalRequest instanceof Request){const e=t.originalRequest.url;r?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return r}}}class Z{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{const r=(null===t||void 0===t?void 0:t.cacheKey)||this._precacheController.getCacheKeyForURL(e.url);return r?new Request(r,{headers:e.headers}):e},this._precacheController=e}}class ee extends E{constructor(e={}){e.cacheName=o(e.cacheName),super(e),this._fallbackToNetwork=!1!==e.fallbackToNetwork,this.plugins.push(ee.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const r=await t.cacheMatch(e);return r||(t.event&&"install"===t.event.type?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,r){let n;const s=r.params||{};if(!this._fallbackToNetwork)throw new t("missing-precache-entry",{cacheName:this.cacheName,url:e.url});{0;const t=s.integrity,a=e.integrity,o=!a||a===t;if(n=await r.fetch(new Request(e,{integrity:"no-cors"!==e.mode?a||t:void 0})),t&&o&&"no-cors"!==e.mode){this._useDefaultCacheabilityPluginIfNeeded();await r.cachePut(e,n.clone());0}}return n}async _handleInstall(e,r){this._useDefaultCacheabilityPluginIfNeeded();const n=await r.fetch(e);if(!await r.cachePut(e,n.clone()))throw new t("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[r,n]of this.plugins.entries())n!==ee.copyRedirectedCacheableResponsesPlugin&&(n===ee.defaultPrecacheCacheabilityPlugin&&(e=r),n.cacheWillUpdate&&t++);0===t?this.plugins.push(ee.defaultPrecacheCacheabilityPlugin):t>1&&null!==e&&this.plugins.splice(e,1)}}ee.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:e})=>!e||e.status>=400?null:e},ee.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:e})=>e.redirected?await y(e):e};class te{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:r=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new ee({cacheName:o(e),plugins:[...t,new Z({precacheController:this})],fallbackToNetwork:r}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const r=[];for(const n of e){"string"===typeof n?r.push(n):n&&void 0===n.revision&&r.push(n.url);const{cacheKey:e,url:s}=J(n),a="string"!==typeof n&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(s)&&this._urlsToCacheKeys.get(s)!==e)throw new t("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(s),secondEntry:e});if("string"!==typeof n&&n.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==n.integrity)throw new t("add-to-cache-list-conflicting-integrities",{url:s});this._cacheKeysToIntegrities.set(e,n.integrity)}if(this._urlsToCacheKeys.set(s,e),this._urlsToCacheModes.set(s,a),r.length>0){const e=`Workbox is precaching URLs without revision info: ${r.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return p(e,(async()=>{const t=new X;this.strategy.plugins.push(t);for(const[s,a]of this._urlsToCacheKeys){const t=this._cacheKeysToIntegrities.get(a),r=this._urlsToCacheModes.get(s),n=new Request(s,{integrity:t,cache:r,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:a},request:n,event:e}))}const{updatedURLs:r,notUpdatedURLs:n}=t;return{updatedURLs:r,notUpdatedURLs:n}}))}activate(e){return p(e,(async()=>{const e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),r=new Set(this._urlsToCacheKeys.values()),n=[];for(const s of t)r.has(s.url)||(await e.delete(s),n.push(s.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,r=this.getCacheKeyForURL(t);if(r){return(await self.caches.open(this.strategy.cacheName)).match(r)}}createHandlerBoundToURL(e){const r=this.getCacheKeyForURL(e);if(!r)throw new t("non-precached-url",{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:r},t.params),this.strategy.handle(t))}}let re;const ne=()=>(re||(re=new te),re);function se(e){return ne().matchPrecache(e)}class ae extends m{constructor(e,t){super((({request:r})=>{const n=e.getURLsToCacheKeys();for(const s of function*(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:r="index.html",cleanURLs:n=!0,urlManipulation:s}={}){const a=new URL(e,location.href);a.hash="",yield a.href;const o=function(e,t=[]){for(const r of[...e.searchParams.keys()])t.some((e=>e.test(r)))&&e.searchParams.delete(r);return e}(a,t);if(yield o.href,r&&o.pathname.endsWith("/")){const e=new URL(o.href);e.pathname+=r,yield e.href}if(n){const e=new URL(o.href);e.pathname+=".html",yield e.href}if(s){const e=s({url:a});for(const t of e)yield t.href}}(r.url,t)){const t=n.get(s);if(t){return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}}}),e.strategy)}}r(3973);const oe="requests",ie="queueName";class ce{constructor(){this._db=null}async addEntry(e){const t=(await this.getDb()).transaction(oe,"readwrite",{durability:"relaxed"});await t.store.add(e),await t.done}async getFirstEntryId(){const e=await this.getDb(),t=await e.transaction(oe).store.openCursor();return null===t||void 0===t?void 0:t.value.id}async getAllEntriesByQueueName(e){const t=await this.getDb(),r=await t.getAllFromIndex(oe,ie,IDBKeyRange.only(e));return r||new Array}async getEntryCountByQueueName(e){return(await this.getDb()).countFromIndex(oe,ie,IDBKeyRange.only(e))}async deleteEntry(e){const t=await this.getDb();await t.delete(oe,e)}async getFirstEntryByQueueName(e){return await this.getEndEntryFromIndex(IDBKeyRange.only(e),"next")}async getLastEntryByQueueName(e){return await this.getEndEntryFromIndex(IDBKeyRange.only(e),"prev")}async getEndEntryFromIndex(e,t){const r=await this.getDb(),n=await r.transaction(oe).store.index(ie).openCursor(e,t);return null===n||void 0===n?void 0:n.value}async getDb(){return this._db||(this._db=await K("workbox-background-sync",3,{upgrade:this._upgradeDb})),this._db}_upgradeDb(e,t){t>0&&t<3&&e.objectStoreNames.contains(oe)&&e.deleteObjectStore(oe);e.createObjectStore(oe,{autoIncrement:!0,keyPath:"id"}).createIndex(ie,ie,{unique:!1})}}class ue{constructor(e){this._queueName=e,this._queueDb=new ce}async pushEntry(e){delete e.id,e.queueName=this._queueName,await this._queueDb.addEntry(e)}async unshiftEntry(e){const t=await this._queueDb.getFirstEntryId();t?e.id=t-1:delete e.id,e.queueName=this._queueName,await this._queueDb.addEntry(e)}async popEntry(){return this._removeEntry(await this._queueDb.getLastEntryByQueueName(this._queueName))}async shiftEntry(){return this._removeEntry(await this._queueDb.getFirstEntryByQueueName(this._queueName))}async getAll(){return await this._queueDb.getAllEntriesByQueueName(this._queueName)}async size(){return await this._queueDb.getEntryCountByQueueName(this._queueName)}async deleteEntry(e){await this._queueDb.deleteEntry(e)}async _removeEntry(e){return e&&await this.deleteEntry(e.id),e}}const he=["method","referrer","referrerPolicy","mode","credentials","cache","redirect","integrity","keepalive"];class le{static async fromRequest(e){const t={url:e.url,headers:{}};"GET"!==e.method&&(t.body=await e.clone().arrayBuffer());for(const[r,n]of e.headers.entries())t.headers[r]=n;for(const r of he)void 0!==e[r]&&(t[r]=e[r]);return new le(t)}constructor(e){"navigate"===e.mode&&(e.mode="same-origin"),this._requestData=e}toObject(){const e=Object.assign({},this._requestData);return e.headers=Object.assign({},this._requestData.headers),e.body&&(e.body=e.body.slice(0)),e}toRequest(){return new Request(this._requestData.url,this._requestData)}clone(){return new le(this.toObject())}}const fe="workbox-background-sync",de=new Set,pe=e=>{const t={request:new le(e.requestData).toRequest(),timestamp:e.timestamp};return e.metadata&&(t.metadata=e.metadata),t};self.skipWaiting(),self.addEventListener("activate",(()=>self.clients.claim())),x((e=>{let{request:t}=e;return"navigate"===t.mode}),new class extends E{constructor(e={}){super(e),this.plugins.some((e=>"cacheWillUpdate"in e))||this.plugins.unshift(R),this._networkTimeoutSeconds=e.networkTimeoutSeconds||0}async _handle(e,r){const n=[];const s=[];let a;if(this._networkTimeoutSeconds){const{id:t,promise:o}=this._getTimeoutPromise({request:e,logs:n,handler:r});a=t,s.push(o)}const o=this._getNetworkPromise({timeoutId:a,request:e,logs:n,handler:r});s.push(o);const i=await r.waitUntil((async()=>await r.waitUntil(Promise.race(s))||await o)());if(!i)throw new t("no-response",{url:e.url});return i}_getTimeoutPromise({request:e,logs:t,handler:r}){let n;return{promise:new Promise((t=>{n=setTimeout((async()=>{t(await r.cacheMatch(e))}),1e3*this._networkTimeoutSeconds)})),id:n}}async _getNetworkPromise({timeoutId:e,request:t,logs:r,handler:n}){let s,a;try{a=await n.fetchAndCachePut(t)}catch(o){o instanceof Error&&(s=o)}return e&&clearTimeout(e),!s&&a||(a=await n.cacheMatch(t)),a}}({cacheName:"pages",plugins:[new C({statuses:[200]})]})),x((e=>{let{request:t}=e;return"style"===t.destination||"script"===t.destination||"worker"===t.destination}),new class extends E{constructor(e={}){super(e),this.plugins.some((e=>"cacheWillUpdate"in e))||this.plugins.unshift(R)}async _handle(e,r){const n=r.fetchAndCachePut(e).catch((()=>{}));r.waitUntil(n);let s,a=await r.cacheMatch(e);if(a)0;else{0;try{a=await n}catch(o){o instanceof Error&&(s=o)}}if(!a)throw new t("no-response",{url:e.url,error:s});return a}}({cacheName:"assets",plugins:[new C({statuses:[200]})]})),x((e=>{let{request:t}=e;return"image"===t.destination}),new class extends E{async _handle(e,r){let n,s=await r.cacheMatch(e);if(s)0;else{0;try{s=await r.fetchAndCachePut(e)}catch(a){a instanceof Error&&(n=a)}0}if(!s)throw new t("no-response",{url:e.url,error:n});return s}}({cacheName:"images",plugins:[new C({statuses:[200]}),new class{constructor(e={}){this.cachedResponseWillBeUsed=async({event:e,request:t,cacheName:r,cachedResponse:n})=>{if(!n)return null;const s=this._isResponseDateFresh(n),a=this._getCacheExpiration(r);h(a.expireEntries());const o=a.updateTimestamp(t.url);if(e)try{e.waitUntil(o)}catch(i){0}return s?n:null},this.cacheDidUpdate=async({cacheName:e,request:t})=>{const r=this._getCacheExpiration(e);await r.updateTimestamp(t.url),await r.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&function(e){n.add(e)}((()=>this.deleteCacheAndMetadata()))}_getCacheExpiration(e){if(e===i())throw new t("expire-custom-caches-only");let r=this._cacheExpirations.get(e);return r||(r=new Y(e,this._config),this._cacheExpirations.set(e,r)),r}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(null===t)return!0;return t>=Date.now()-1e3*this._maxAgeSeconds}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),r=new Date(t).getTime();return isNaN(r)?null:r}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}({maxEntries:500,maxAgeSeconds:2592e3})]})),function(e={}){const t=e.pageFallback||"offline.html",r=e.imageFallback||!1,n=e.fontFallback||!1;self.addEventListener("install",(e=>{const s=[t];r&&s.push(r),n&&s.push(n),e.waitUntil(self.caches.open("workbox-offline-fallbacks").then((e=>e.addAll(s))))})),function(e){_().setCatchHandler(e)}((async e=>{const s=e.request.destination,a=await self.caches.open("workbox-offline-fallbacks");if("document"===s){return await se(t)||await a.match(t)||Response.error()}if("image"===s&&!1!==r){return await se(r)||await a.match(r)||Response.error()}if("font"===s&&!1!==n){return await se(n)||await a.match(n)||Response.error()}return Response.error()}))}({pageFallback:"index.html"});const ye=new class{constructor(e,{forceSyncFallback:r,onSync:n,maxRetentionTime:s}={}){if(this._syncInProgress=!1,this._requestsAddedDuringSync=!1,de.has(e))throw new t("duplicate-queue-name",{name:e});de.add(e),this._name=e,this._onSync=n||this.replayRequests,this._maxRetentionTime=s||10080,this._forceSyncFallback=Boolean(r),this._queueStore=new ue(this._name),this._addSyncListener()}get name(){return this._name}async pushRequest(e){await this._addRequest(e,"push")}async unshiftRequest(e){await this._addRequest(e,"unshift")}async popRequest(){return this._removeRequest("pop")}async shiftRequest(){return this._removeRequest("shift")}async getAll(){const e=await this._queueStore.getAll(),t=Date.now(),r=[];for(const n of e){const e=60*this._maxRetentionTime*1e3;t-n.timestamp>e?await this._queueStore.deleteEntry(n.id):r.push(pe(n))}return r}async size(){return await this._queueStore.size()}async _addRequest({request:e,metadata:t,timestamp:r=Date.now()},n){const s={requestData:(await le.fromRequest(e.clone())).toObject(),timestamp:r};switch(t&&(s.metadata=t),n){case"push":await this._queueStore.pushEntry(s);break;case"unshift":await this._queueStore.unshiftEntry(s)}this._syncInProgress?this._requestsAddedDuringSync=!0:await this.registerSync()}async _removeRequest(e){const t=Date.now();let r;switch(e){case"pop":r=await this._queueStore.popEntry();break;case"shift":r=await this._queueStore.shiftEntry()}if(r){const n=60*this._maxRetentionTime*1e3;return t-r.timestamp>n?this._removeRequest(e):pe(r)}}async replayRequests(){let e;for(;e=await this.shiftRequest();)try{await fetch(e.request.clone())}catch(r){throw await this.unshiftRequest(e),new t("queue-replay-failed",{name:this._name})}}async registerSync(){if("sync"in self.registration&&!this._forceSyncFallback)try{await self.registration.sync.register(`${fe}:${this._name}`)}catch(e){0}}_addSyncListener(){"sync"in self.registration&&!this._forceSyncFallback?self.addEventListener("sync",(e=>{if(e.tag===`${fe}:${this._name}`){0;const t=async()=>{let t;this._syncInProgress=!0;try{await this._onSync({queue:this})}catch(r){if(r instanceof Error)throw t=r,t}finally{!this._requestsAddedDuringSync||t&&!e.lastChance||await this.registerSync(),this._syncInProgress=!1,this._requestsAddedDuringSync=!1}};e.waitUntil(t())}})):this._onSync({queue:this})}static get _queueNames(){return de}}("netdata"),ge=(e,t)=>ye._queueStore.getAll().then((r=>r.filter((r=>{let{requestData:n}=r;return n.method===t&&n.url.endsWith(e)})))).then((e=>Promise.all(e.map((e=>{let{id:t}=e;return ye._queueStore.deleteEntry(t)})))));self.addEventListener("message",(e=>{if("removeBgSynced"===e.data.type){const{url:t,method:r}=e.data;return ge(t,r)}}));const me=(e,t)=>new Response(JSON.stringify({statusText:t,error:e}),{headers:{"Content-Type":"application/json"}});var we;self.addEventListener("fetch",(e=>{if("POST"===e.request.method){const t=e.request.headers.get("bgSync");if(t){const{url:t,method:r}=e.request;ge(t,r)}e.respondWith(fetch(e.request.clone()).catch((()=>t?ye.pushRequest({request:e.request}).then((()=>me("Request pushed for background sync","bgSynced"))):me("This action is disabled while app is offline","offline"))))}})),function(e){ne().precache(e)}([{'revision':'095ea8d8fcde6626d33ba7e2d83547fd','url':'/.well-known/assetlinks.json'},{'revision':null,'url':'/1220.866e5f8ef6dd53cc1146.chunk.js'},{'revision':null,'url':'/1396.3ea7b55a3bffeef95530.chunk.js'},{'revision':null,'url':'/1418.a399f41ec9789d008612.chunk.js'},{'revision':null,'url':'/1726.e4f235562d58cb4f4044.chunk.js'},{'revision':null,'url':'/1782.31d84c467a8446cb3c47.chunk.js'},{'revision':null,'url':'/1839.1dcd23c81c97fb79bfdb.chunk.js'},{'revision':null,'url':'/185.7461f65d16b20fe83fc1.chunk.js'},{'revision':null,'url':'/1875.e736e046980cb8eb4cda.chunk.js'},{'revision':null,'url':'/1876.ba66fdbcfb1b55334646.chunk.js'},{'revision':null,'url':'/195.3898e2d9ea61ff1d4a4f.chunk.js'},{'revision':null,'url':'/2007.3c73c91371062be4c05e.chunk.js'},{'revision':null,'url':'/2414.38b580f70a86a4f94b83.chunk.js'},{'revision':null,'url':'/3104.dfd9b1f79c9550ab8493.chunk.js'},{'revision':null,'url':'/3296.66994eada739315fc37e.chunk.js'},{'revision':null,'url':'/3350.24934ec57134cbef07bf.chunk.js'},{'revision':null,'url':'/3584.7b6df71f431fe58061ad.chunk.js'},{'revision':null,'url':'/3624.b8b5bc981ae890a8a5b8.chunk.js'},{'revision':null,'url':'/3705.38e023af816fb6ce8fc9.chunk.js'},{'revision':null,'url':'/3731.40bfabd5c5a12309b1a9.chunk.js'},{'revision':null,'url':'/3736.b247e40ccbdc039b9877.chunk.js'},{'revision':null,'url':'/3750.6f01a0becb7db332b4ce.chunk.js'},{'revision':null,'url':'/3968.a5f7366160b7ac086dba.chunk.js'},{'revision':null,'url':'/4034.9c82e72b081978919942.chunk.js'},{'revision':null,'url':'/4414.60a74c3b7534b4a25469.chunk.js'},{'revision':null,'url':'/4680.0c75b44bbc80f4591fdd.chunk.js'},{'revision':null,'url':'/5171.2a848991a41e02f24c8d.js'},{'revision':null,'url':'/5246.a7c78643acccf04d7268.chunk.js'},{'revision':null,'url':'/5304.dcb81c99fcb90f8ee8cc.chunk.js'},{'revision':null,'url':'/5426.1235a7a39c1b0923b071.chunk.js'},{'revision':null,'url':'/5596.8280cb325a103342aa30.chunk.js'},{'revision':null,'url':'/5700.313f7b9c7005d2022b03.chunk.js'},{'revision':null,'url':'/5709.6fc5fd48f639100fa6ad.chunk.js'},{'revision':null,'url':'/5794.719f2daca8b8f3a118fe.chunk.js'},{'revision':null,'url':'/6008.07f03fb5dba476a12f91.chunk.js'},{'revision':null,'url':'/6121.8c25bb62d82381e90df8.chunk.js'},{'revision':null,'url':'/6218.26fc25279f45fbcf29f7.chunk.js'},{'revision':null,'url':'/6323.425683f5bf71a51caf65.chunk.js'},{'revision':null,'url':'/6331.89070793921be1288bb5.css'},{'revision':null,'url':'/6331.ccfaab2b17a28e1b6aa2.chunk.js'},{'revision':null,'url':'/6760.fe4a9b58186542294e85.chunk.js'},{'revision':null,'url':'/683.95b7a3193b43fd5dbe51.chunk.js'},{'revision':null,'url':'/683.cc9fa5f3bdc0bf3ab2fc.css'},{'revision':null,'url':'/7144.72da82bc4f112d1e6d31.chunk.js'},{'revision':null,'url':'/7146.43b5125ff0b41138f0bc.chunk.js'},{'revision':null,'url':'/7208.3c255b9641ab4d451747.chunk.js'},{'revision':null,'url':'/7332.8f89f4887946c129ea01.chunk.js'},{'revision':null,'url':'/7340.c563ddaad6c68dab9088.chunk.js'},{'revision':null,'url':'/7410.cb47519a7a5187208b28.chunk.js'},{'revision':null,'url':'/7436.6d4c25c5ff7d2e65734c.chunk.js'},{'revision':null,'url':'/7471.d61aa69f317a13bd1b86.chunk.js'},{'revision':null,'url':'/749.8ce93b3d6d67d600e8c8.chunk.js'},{'revision':null,'url':'/7519.8a99c6b9370779196847.chunk.js'},{'revision':null,'url':'/7529.75d71f48d8d6ea454b6d.chunk.js'},{'revision':null,'url':'/7789.89070793921be1288bb5.css'},{'revision':null,'url':'/7789.f00b7764a97a7dadff97.chunk.js'},{'revision':null,'url':'/7840.e1af907905ff10afb069.chunk.js'},{'revision':null,'url':'/785.c45abbb1e2a4915d85df.chunk.js'},{'revision':null,'url':'/7857.0d6fb5e4a2c2b8996e0f.chunk.js'},{'revision':null,'url':'/7959.3995671185f9720b5454.chunk.js'},{'revision':null,'url':'/8011.3f8282bb427ea06e9408.chunk.js'},{'revision':null,'url':'/8059.c88ad65e1926faee2379.chunk.js'},{'revision':null,'url':'/8323.61daef62d0036dd19dbf.chunk.js'},{'revision':null,'url':'/8323.e22de33686bb2f34063c.css'},{'revision':null,'url':'/8473.757c1686b1578c6813c8.chunk.js'},{'revision':null,'url':'/8505.b10bf3549c213fe15d55.chunk.js'},{'revision':null,'url':'/8507.89070793921be1288bb5.css'},{'revision':null,'url':'/8507.e30db778518756ef63fa.chunk.js'},{'revision':null,'url':'/86.167efe55b22f02c3155a.chunk.js'},{'revision':null,'url':'/8676.a3d687b3b339a72ab66e.chunk.js'},{'revision':null,'url':'/8784.c51d36fede97c85313e9.chunk.js'},{'revision':null,'url':'/9297.394c9cbf0a1e402384a6.chunk.js'},{'revision':null,'url':'/934.aadd4297c0cd646a1038.chunk.js'},{'revision':null,'url':'/9473.3693c06a873280f11bd6.chunk.js'},{'revision':null,'url':'/9510.58c95eb5f0290291b5a9.chunk.js'},{'revision':null,'url':'/966.89070793921be1288bb5.css'},{'revision':null,'url':'/966.8f0a484a79552c192bc1.chunk.js'},{'revision':null,'url':'/9818.ca4131b4d88d20e88f72.chunk.js'},{'revision':null,'url':'/9843.75b313f97c4d363a4959.chunk.js'},{'revision':null,'url':'/9912.b952e26497a284ac37b2.chunk.js'},{'revision':'226467a12f3cfdb97e69dea63a7e1fd5','url':'/agent.html'},{'revision':null,'url':'/app.7443b231e52789baa643.js'},{'revision':null,'url':'/app.cb2e9f9a81cf9533384e.css'},{'revision':'2024c92ce07d3975652e9729d27e6d75','url':'/apple-app-site-association'},{'revision':'e08379c90f9e3b1fbb4258a6b5bae56c','url':'/favicon.ico'},{'revision':'8298cb1893286f07b0c7c7dcdcc33ee6','url':'/index.html'},{'revision':'d82bb0af73c21117a1af6098202f7cb0','url':'/local-agent.html'},{'revision':null,'url':'/netdata.charts.f0b9e2b96837688d2aab.js'},{'revision':null,'url':'/netdata.ui.f50ab375c8daf7a2a547.js'},{'revision':null,'url':'/npm.react.dom.b2a6a30db3d683abdb32.js'},{'revision':'78061a933d9890b41a52cd9cad2ec3b7','url':'/registry-access.html'},{'revision':'817810defae12d79421f62fd46ef20dd','url':'/registry-alert-redirect.html'},{'revision':'c7d77da01236c1ecf00c8682233db697','url':'/registry-hello.html'},{'revision':null,'url':'/runtime.30ce76c6e7acf60ebf83.js'},{'revision':'095ea8d8fcde6626d33ba7e2d83547fd','url':'/static/.well-known/assetlinks.json'},{'revision':'2024c92ce07d3975652e9729d27e6d75','url':'/static/apple-app-site-association'},{'revision':'5dd984c78c1a70f4ca75372381c3f167','url':'/static/email/img/clea_badge.png'},{'revision':'f5e2223e3717188e5c00970e92299ce4','url':'/static/email/img/clea_siren.png'},{'revision':'22f52d199eb809360c56bf0b700b6b36','url':'/static/email/img/community_icon.png'},{'revision':'878dc9b7f75cec8d25b00296035fea03','url':'/static/email/img/configure_icon.png'},{'revision':'b9c0ff9e2f2315782a21c22052610bab','url':'/static/email/img/crit_badge.png'},{'revision':'72217b81d53177a1bafeb6874c8b7a3e','url':'/static/email/img/crit_siren.png'},{'revision':'97baf0add3259a28ef85eeef80b9df24','url':'/static/email/img/flood_siren.png'},{'revision':'f3773d6a68f16eb900899d4d77e7f000','url':'/static/email/img/full_logo.png'},{'revision':'1c2161a8ada89f2840bb49c7436ad814','url':'/static/email/img/header.png'},{'revision':'5069c93255c7e1ed005a14720d3373c2','url':'/static/email/img/isotype_600.png'},{'revision':'78f1e90b91baf6c7bc368aeb63c70815','url':'/static/email/img/label_critical.png'},{'revision':'d13f63a3d7041323a2c62620bb4bafbe','url':'/static/email/img/label_recovered.png'},{'revision':'6c7196c720144a76316f57e74e413613','url':'/static/email/img/label_warning.png'},{'revision':'0e52319aad8575d826c1de7b995c1c3d','url':'/static/email/img/reachability_siren.png'},{'revision':'d5264fe0e464ca63c47339de49573fce','url':'/static/email/img/warn_badge.png'},{'revision':'9ada8f1a03e8e337bc4d962ebb9c4feb','url':'/static/email/img/warn_siren.png'},{'revision':'7b0e67fc51980fa64b924a3faaebf8cd','url':'/static/img/list-style-image.svg'},{'revision':'d83d3c90a4263c8d600115238947cb8b','url':'/static/img/logos/os/alpine.svg'},{'revision':'ea2783c91526825a87d91cfb67b3880a','url':'/static/img/logos/os/arch.svg'},{'revision':'721e109311dcc775f1fc4548dab1c8ee','url':'/static/img/logos/os/centos.svg'},{'revision':'91335d2e37a1ba13cf2e72e27019a75f','url':'/static/img/logos/os/coreos.svg'},{'revision':'681aceb3743f4b8e655eeefa90eca437','url':'/static/img/logos/os/debian.svg'},{'revision':'9e7e2a8b1f48d4ab5b1900c097369c3a','url':'/static/img/logos/os/docker.svg'},{'revision':'d8dbc0537e6f97cec246e4f28b601ebf','url':'/static/img/logos/os/fedora.svg'},{'revision':'8b792ad3a91245301764356558799e30','url':'/static/img/logos/os/freebsd.svg'},{'revision':'0a6fc28cf7759f84e1d93c2d63b77f47','url':'/static/img/logos/os/freenas.svg'},{'revision':'511628407431ba05e6c5e8a832de06d7','url':'/static/img/logos/os/gentoo.svg'},{'revision':'3a15213ddffc497c558cabac9f1e2c2b','url':'/static/img/logos/os/kubernetes.svg'},{'revision':'ba7fb927e9783914045d7afd9e6882ad','url':'/static/img/logos/os/linux-small.svg'},{'revision':'0a4343315317f2ff0b790b7866edce88','url':'/static/img/logos/os/linux.svg'},{'revision':'f88a55fc3eb331ca7a6963e9eb6c1a98','url':'/static/img/logos/os/macos.svg'},{'revision':'ef9272e7450b383179627d5f0314fa60','url':'/static/img/logos/os/manjaro.svg'},{'revision':'9b072ec8e40c84a9131027a78bf235b6','url':'/static/img/logos/os/openstack.svg'},{'revision':'acf55d0ad532af1516d1737f7f9713ef','url':'/static/img/logos/os/opensuse.svg'},{'revision':'285b0145e5a52bf6eabc58ddb38ecb3d','url':'/static/img/logos/os/openwrt.svg'},{'revision':'4e134a6123ca0d8362e17f33044ba57c','url':'/static/img/logos/os/oracle.svg'},{'revision':'c04f55b3e9ec5d22c85645d27e1ed18b','url':'/static/img/logos/os/pfsense.svg'},{'revision':'309f0c6b9a270f8bd8801925fb9db0f5','url':'/static/img/logos/os/placeholder.svg'},{'revision':'3da67b7657fedcdded70bdf08bc9d08a','url':'/static/img/logos/os/raspberry-pi.svg'},{'revision':'e38b0ed9b6920282b6cf5a3625215916','url':'/static/img/logos/os/redhat.svg'},{'revision':'2ae0e427833a14c8d23b8d54bf1115da','url':'/static/img/logos/os/rocky.svg'},{'revision':'bc5e56c6fb341824f80daa604bad88d9','url':'/static/img/logos/os/suse.svg'},{'revision':'6b0c8d4e8e727fee4856daa3ba92ee81','url':'/static/img/logos/os/ubuntu.svg'},{'revision':'c52ffc08f2b2ea56e46cd884495d2148','url':'/static/img/logos/services/access-point.svg'},{'revision':'88d7dacdf13278537ad4e9d0aff23ed3','url':'/static/img/logos/services/activemq.svg'},{'revision':'37f2e886c72fbcd47b5ffb60733b77d8','url':'/static/img/logos/services/adaptec.svg'},{'revision':'b658355ba2fea4b5d6cbada0d0339306','url':'/static/img/logos/services/alerta.svg'},{'revision':'b39016f9bee1ce8648f67791a98817dc','url':'/static/img/logos/services/apache.svg'},{'revision':'3b5ade779f8d749d48db9b82aa943b61','url':'/static/img/logos/services/apc.svg'},{'revision':'e9433c11ec53f07466dbd9ed4d6fd751','url':'/static/img/logos/services/aws-sns.svg'},{'revision':'ecebea115e1ab4bead943b8962317022','url':'/static/img/logos/services/aws.svg'},{'revision':'55df8093275489f75fe20fa6c222216d','url':'/static/img/logos/services/beanstalkd.svg'},{'revision':'ed0a1dd09b109d2610baa566e3d402d0','url':'/static/img/logos/services/boinc.svg'},{'revision':'1312c86e65d32bc28d278d961887a628','url':'/static/img/logos/services/btrfs.svg'},{'revision':'146643d089f1e17457a5c8fdf1013b4c','url':'/static/img/logos/services/ceph.svg'},{'revision':'627837dc14e607ad41b6c4b5cef8b561','url':'/static/img/logos/services/chrony.svg'},{'revision':'19b1e40e32bb21d3d6273b4aae4a88b4','url':'/static/img/logos/services/cloud.svg'},{'revision':'df2ea1496b38af73fd91511b3688e15d','url':'/static/img/logos/services/concul.svg'},{'revision':'87876ce57a48c3f9e3a870cd78860c12','url':'/static/img/logos/services/consul.svg'},{'revision':'89588c4cdc6110051867c4b332e03e2c','url':'/static/img/logos/services/container.svg'},{'revision':'42d91a75181a1e0054df5cbef8b19742','url':'/static/img/logos/services/couchdb.svg'},{'revision':'264bc7ec295e4f9ad8fae82c3e86ded9','url':'/static/img/logos/services/cups.svg'},{'revision':'21e5c11a69d6efac921261f84f9f6df8','url':'/static/img/logos/services/data-encryption.svg'},{'revision':'cec1f9696feaadad408bfa8ca3927748','url':'/static/img/logos/services/ddos.svg'},{'revision':'f8389ca1a741a115313bede9ac02e2c0','url':'/static/img/logos/services/discord.svg'},{'revision':'1f5925ba222bad29609c3ca13ace2a99','url':'/static/img/logos/services/dns.svg'},{'revision':'d36e442f9a9c2697a460aa9f20a6f2bc','url':'/static/img/logos/services/docker.svg'},{'revision':'0f3ae584bfe2858b76bf3d118bebbf97','url':'/static/img/logos/services/dovecot.svg'},{'revision':'616f3fbc10d44774dac9269fd9295d07','url':'/static/img/logos/services/elasticsearch.svg'},{'revision':'feef131e8226cab9c345db605ed9a353','url':'/static/img/logos/services/email.svg'},{'revision':'28250741b5ea758b05bc551c66f0034f','url':'/static/img/logos/services/exim.svg'},{'revision':'4f454fc8b9fb38a613d711d83e2b1de1','url':'/static/img/logos/services/fail2ban.svg'},{'revision':'8cd2efa3851a165fbdfe766b2fef5294','url':'/static/img/logos/services/flock.svg'},{'revision':'eb6a015ece746762e9daa21bab1fe352','url':'/static/img/logos/services/fluentd.svg'},{'revision':'a33e398da7592844b73596a119954d16','url':'/static/img/logos/services/fping.svg'},{'revision':'e2580c9d7c50d69452101a884bac1552','url':'/static/img/logos/services/freeradius.svg'},{'revision':'ed4decb646a1338a4de9d7d30046ca50','url':'/static/img/logos/services/fronius.svg'},{'revision':'8d2f6602566650a7320a84996cf85d64','url':'/static/img/logos/services/gnu-freeipmi.svg'},{'revision':'48a303cfacef14ec35c336700bc333b8','url':'/static/img/logos/services/golang.svg'},{'revision':'24119b2c7bc0ca689b3acff70add2dfb','url':'/static/img/logos/services/grafana.svg'},{'revision':'3222dddb4457a92b49aa0d181d15be75','url':'/static/img/logos/services/graphite.svg'},{'revision':'515578af549c0541e1a175401d0b1487','url':'/static/img/logos/services/haproxy.svg'},{'revision':'caa9e97043c09e7f41d8140cd12a588d','url':'/static/img/logos/services/hub.svg'},{'revision':'23380102fadd7b7fb5f5eb4867484cff','url':'/static/img/logos/services/icecast.svg'},{'revision':'e0d3a56bbd7c3f009bdfafd6f867c0a0','url':'/static/img/logos/services/influxdb.svg'},{'revision':'e4987ef9ecf165d37a1599bd34f7a32c','url':'/static/img/logos/services/ipfs.svg'},{'revision':'514198d5f8bfa868543c56dfda56c5da','url':'/static/img/logos/services/irc.svg'},{'revision':'ce975a0ba008f30d0c14939f7e0f827d','url':'/static/img/logos/services/isc.svg'},{'revision':'07140ef847fe0bc0e911ade34c55b184','url':'/static/img/logos/services/kafka.svg'},{'revision':'b87b04cbf08cf172f165038f1c0e46ae','url':'/static/img/logos/services/kairosdb.svg'},{'revision':'4fd5b032dcf53217880e08898d0b6b6a','url':'/static/img/logos/services/kavenegar.svg'},{'revision':'63eb0a355174ebdee113dfc29ff5deb9','url':'/static/img/logos/services/key-file.svg'},{'revision':'3a15213ddffc497c558cabac9f1e2c2b','url':'/static/img/logos/services/kubernetes.svg'},{'revision':'db604bbefea8679c6e92de00e90fff2d','url':'/static/img/logos/services/libreswan.svg'},{'revision':'1f5e6a545bf2334ef55f0e5fd9b91813','url':'/static/img/logos/services/libvirt.svg'},{'revision':'0ed40155ecbac111c5a7fae1d5daeebf','url':'/static/img/logos/services/lighthttpd.svg'},{'revision':'0a4343315317f2ff0b790b7866edce88','url':'/static/img/logos/services/linux.svg'},{'revision':'9718b33406088daa4454cba53a056daa','url':'/static/img/logos/services/litespeed.svg'},{'revision':'cb6a3538307e259541f9534ec860b1c2','url':'/static/img/logos/services/lm-sensors.svg'},{'revision':'1fdd6d0222b695e7b7c12a331201ff32','url':'/static/img/logos/services/load-balancer.svg'},{'revision':'aa4fa3f5f9a6008f133eed5f84593f9c','url':'/static/img/logos/services/log-file.svg'},{'revision':'13b57ad683334e6ad6966d6056b588b0','url':'/static/img/logos/services/logstash.svg'},{'revision':'ff0c16aebe4bb98cf9e7a5298c3fde18','url':'/static/img/logos/services/lxd.svg'},{'revision':'1b8e06489889edfb34285fe46c7b5292','url':'/static/img/logos/services/mariadb.svg'},{'revision':'2bcccabfb9f9a61687d297d69dca3ecf','url':'/static/img/logos/services/memcached.svg'},{'revision':'ee9729556cc02b21cb86fb832d9912b4','url':'/static/img/logos/services/messagebird.svg'},{'revision':'554c7d4bfd63a3da33773978fd291c06','url':'/static/img/logos/services/mongodb.svg'},{'revision':'9a9f461839a56d2ff17154a9a6e7af94','url':'/static/img/logos/services/monit.svg'},{'revision':'0650308601e047a9d10849bfb5b14b9e','url':'/static/img/logos/services/monitoring.svg'},{'revision':'cb6f4722f30229d118df97232dfd1bb5','url':'/static/img/logos/services/mysql.svg'},{'revision':'88a4b79f7a62e579744305c60b043192','url':'/static/img/logos/services/netfilter.svg'},{'revision':'bff32cb5a58a4094689e21779eb7c339','url':'/static/img/logos/services/network-protocol.svg'},{'revision':'4f067ece273f0d3b7463431243c32acd','url':'/static/img/logos/services/network.svg'},{'revision':'4df305d04c05a610efb748f0b40389f4','url':'/static/img/logos/services/nfs.svg'},{'revision':'005f7d382db87e26219f39df46d6821c','url':'/static/img/logos/services/nginx-plus.svg'},{'revision':'88fa37ab9246ae06ed55393cac16d284','url':'/static/img/logos/services/nginx.svg'},{'revision':'ced49ab6b19cc20a8a79986040723b3e','url':'/static/img/logos/services/notification-bell.svg'},{'revision':'544013e6e5ca11faca9dc5168646c6f6','url':'/static/img/logos/services/nsd.svg'},{'revision':'6625b96ed3de57f8d650f4b2f74f2646','url':'/static/img/logos/services/ntpd.svg'},{'revision':'2e3fa402d78b86a353bebfac81e83cda','url':'/static/img/logos/services/nut.svg'},{'revision':'0e32d0a7061b73cb22a6c89ac1076203','url':'/static/img/logos/services/nvidia.svg'},{'revision':'6cb3393e07eef198cee8bf3d4aba85e6','url':'/static/img/logos/services/openldap.svg'},{'revision':'48ec69a3e8ccac0a39623a33c121df6e','url':'/static/img/logos/services/opensips.svg'},{'revision':'3a6a3ba2db69e1d00073f0fd119fe7a9','url':'/static/img/logos/services/opentsdb.svg'},{'revision':'cb690dd03f447f755bd65bfb5eab31d6','url':'/static/img/logos/services/openvpn.svg'},{'revision':'3ffc09fdda22563262e755b751048948','url':'/static/img/logos/services/openzfs.svg'},{'revision':'4e134a6123ca0d8362e17f33044ba57c','url':'/static/img/logos/services/oracle.svg'},{'revision':'ec7d7bd17fcd96e0e397c7afbe9b0b86','url':'/static/img/logos/services/pagerduty.svg'},{'revision':'e58a44749755f5b3fc6121128f565d52','url':'/static/img/logos/services/php-fpm.svg'},{'revision':'ad7c4cbd376944596a970a12cf9a4b0f','url':'/static/img/logos/services/placeholder.svg'},{'revision':'fc6874e19ea3b14f186713711a6a807a','url':'/static/img/logos/services/postfix.svg'},{'revision':'9318272b34b560d9180cc7b3a05c469b','url':'/static/img/logos/services/postgresql.svg'},{'revision':'d825c708929a70d1fe6afeb04026c52a','url':'/static/img/logos/services/powerdns.svg'},{'revision':'f22e171bc3012a1cb6aec8383d2dacba','url':'/static/img/logos/services/processor.svg'},{'revision':'074db273ef932a67d91b58e7ba1f49d3','url':'/static/img/logos/services/prometheus.svg'},{'revision':'fc96e1058c107b8a706f2400d2eebd18','url':'/static/img/logos/services/prowl.svg'},{'revision':'f76d643a46b74c411a26abb9df6dc13e','url':'/static/img/logos/services/proxysql.svg'},{'revision':'e824c97149c47467e3a892c7f049ea47','url':'/static/img/logos/services/puppet.svg'},{'revision':'96d29544af13d15bf087628e61d00a01','url':'/static/img/logos/services/pushbullet.svg'},{'revision':'f3406eb327f651cbb68f8e2e607f2ade','url':'/static/img/logos/services/pushover.svg'},{'revision':'ce86ca8f0b89ced3af53b8e153fb834e','url':'/static/img/logos/services/qos.svg'},{'revision':'e5b7e2321d339b19425bba6a81807c55','url':'/static/img/logos/services/rabbitmq.svg'},{'revision':'3da67b7657fedcdded70bdf08bc9d08a','url':'/static/img/logos/services/raspberry-pi.svg'},{'revision':'4aaff929af8a78f0a5e3c1b27a0b6725','url':'/static/img/logos/services/redis.svg'},{'revision':'62a26d4b8ba048586ea156c370232f4e','url':'/static/img/logos/services/rethinkdb.svg'},{'revision':'bc32d1e8b2f2041ee9c4f17ffe7fc5e9','url':'/static/img/logos/services/retroshare.svg'},{'revision':'4754e936fdc04775f41e97e8ecf43476','url':'/static/img/logos/services/rocketchat.svg'},{'revision':'7b3d7a3d2568050ffc6b66a63a840675','url':'/static/img/logos/services/samba.svg'},{'revision':'67a062ebdfeda9b78b4f7891bff232f2','url':'/static/img/logos/services/server-connection.svg'},{'revision':'838e94185a05b5a7e49342e15a7f7bab','url':'/static/img/logos/services/slack.svg'},{'revision':'da52172208b4aec912606dee840b13fc','url':'/static/img/logos/services/sma.svg'},{'revision':'b0082760ed739c2590d402cac899bbfd','url':'/static/img/logos/services/smstools3.svg'},{'revision':'54e21eda70fe847d4f78407a6db25309','url':'/static/img/logos/services/solr.svg'},{'revision':'0c5fb25f01e875d092de9e438d2ea102','url':'/static/img/logos/services/spigot.svg'},{'revision':'449e8efbf3e642eecc4d8e0b1fe7cb1d','url':'/static/img/logos/services/springboot.svg'},{'revision':'80b8939c121fe88cafaa77c9ebe6a42a','url':'/static/img/logos/services/squid.svg'},{'revision':'e0eb22ed4bda376d3507b6419821f4cf','url':'/static/img/logos/services/statsd.svg'},{'revision':'633d9a54c151ebbf900072edfb0c4b1d','url':'/static/img/logos/services/stiebel.svg'},{'revision':'6b3ea1af797d26f2e6edfb09bc625974','url':'/static/img/logos/services/systemd.svg'},{'revision':'74ac39199f7cd7e51317c7dcec8ffa38','url':'/static/img/logos/services/telegram.svg'},{'revision':'fd469d8c5263d5779aeb2438bcc522d1','url':'/static/img/logos/services/temperature.svg'},{'revision':'600debbf4e6330d59f7766a6745ad7e9','url':'/static/img/logos/services/tomcat.svg'},{'revision':'5f2ce630abe1c94babea5c580beae308','url':'/static/img/logos/services/tor.svg'},{'revision':'21ada136fb2dce8fe83adef6b0a5b480','url':'/static/img/logos/services/traefik.svg'},{'revision':'6a4543f55f5e77426d62ea8a70b8d4b3','url':'/static/img/logos/services/twilio.svg'},{'revision':'5bbb626cf4089b75bca96b79a902ea3c','url':'/static/img/logos/services/unbound.svg'},{'revision':'fb38f4938299ffc15a7f2f7d03c0b892','url':'/static/img/logos/services/uwsgi.svg'},{'revision':'b4ed2bd8f11af926ff3cb36c09b4c685','url':'/static/img/logos/services/varnish.svg'},{'revision':'808ea0cb2c5ca2c326e01db195886a3b','url':'/static/img/logos/services/veritas.svg'},{'revision':'6b5671ca02ac46b24a4855c213a9aa8b','url':'/static/img/logos/services/xen.svg'},{'revision':'2979340c1e70ef3704e49b02636adb38','url':'/static/img/mail/isotype.png'},{'revision':'fe6f76b747c61fa79f928c7f6065b2d6','url':'/static/img/mail/isotype.svg'},{'revision':'b3b7f9062d7a7e513bd5b2fc2b70b6ca','url':'/static/img/mail/logotype.png'},{'revision':'3f248bee4fd9e28b502a9a7b5bbb6a67','url':'/static/img/mail/logotype.svg'},{'revision':'a52e0de9e8bb6724c8e7b9cfd29837a6','url':'/static/img/new-dashboard.svg'},{'revision':'e29b616a92eedb81e384399aff80c4f0','url':'/static/img/no-filter-results.png'},{'revision':'7153f80147c2569abe9ab1c0a8eb1662','url':'/static/img/no-nodes-room.svg'},{'revision':'6e19f3a1d042f942197670d18981ee75','url':'/static/img/rack.png'},{'revision':'7ec80a5bbf8954caa7923824f2d328f9','url':'/static/site/pages/holding-page-503/holding-page-503.css'},{'revision':'7989e3f7e500355800fc92b4d52d8987','url':'/static/site/pages/holding-page-503/holding-page-503.svg'},{'revision':'18209f4fb770a5449a944bdfc04eb1cb','url':'/static/site/pages/holding-page-503/index.html'},{'revision':'2e0c62f8ec8a99a9c75c3097f3090b9a','url':'/static/site/pages/holding-page-503/multiple-logos-group.svg'},{'revision':'c447e6faaa6d064c23f19305e614dd6c','url':'/static/site/pages/holding-page-503/netdata-logo-white.svg'},{'revision':'348e5a20b0cee6622c9f2219ff05a19c','url':'/static/site/pages/holding-page-503/reset.svg'},{'revision':'2dc864bf27446c99badebaee5832aeae','url':'/static/splash.css'}]),function(e){const t=ne();x(new ae(t,e))}(we)})()})(); \ No newline at end of file
diff --git a/web/gui/v2live.html b/src/web/gui/v2live.html
index 36050c0f2..36050c0f2 100644
--- a/web/gui/v2live.html
+++ b/src/web/gui/v2live.html
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/test/readable b/src/web/rtc/README.md
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/test/readable
+++ b/src/web/rtc/README.md
diff --git a/web/rtc/webrtc.c b/src/web/rtc/webrtc.c
index 80fff7e94..027b168b3 100644
--- a/web/rtc/webrtc.c
+++ b/src/web/rtc/webrtc.c
@@ -248,7 +248,7 @@ static size_t webrtc_send_in_chunks(WEBRTC_DC *chan, const char *data, size_t si
message_size,
chunk,
total_chunks,
- web_content_type_to_string(content_type)
+ content_type_id2string(content_type)
);
internal_fatal((size_t)len != strlen(send_buffer), "WEBRTC compressed header line mismatch");
@@ -292,16 +292,18 @@ static void webrtc_execute_api_request(WEBRTC_DC *chan, const char *request, siz
w->statistics.received_bytes = size;
w->interrupt.callback = web_client_stop_callback;
w->interrupt.callback_data = chan;
+ web_client_set_conn_webrtc(w);
- w->acl = WEB_CLIENT_ACL_WEBRTC;
+ w->port_acl = HTTP_ACL_WEBRTC | HTTP_ACL_ALL_FEATURES;
+ w->acl = w->port_acl;
char *path = (char *)request;
if(strncmp(request, "POST ", 5) == 0) {
- w->mode = WEB_CLIENT_MODE_POST;
+ w->mode = HTTP_REQUEST_MODE_POST;
path += 10;
}
else if(strncmp(request, "GET ", 4) == 0) {
- w->mode = WEB_CLIENT_MODE_GET;
+ w->mode = HTTP_REQUEST_MODE_GET;
path += 4;
}
@@ -503,7 +505,7 @@ static void cleanupConnections() {
spinlock_unlock(&webrtc_base.unsafe.spinlock);
}
-static WEBRTC_CONN *webrtc_create_connection(void) {
+static WEBRTC_CONN * webrtc_create_connection(void) {
WEBRTC_CONN *conn = callocz(1, sizeof(WEBRTC_CONN));
spinlock_init(&conn->response.spinlock);
diff --git a/web/rtc/webrtc.h b/src/web/rtc/webrtc.h
index 871fa4695..ccbae38d1 100644
--- a/web/rtc/webrtc.h
+++ b/src/web/rtc/webrtc.h
@@ -3,7 +3,7 @@
#ifndef NETDATA_WEBRTC_H
#define NETDATA_WEBRTC_H
-#include "../../libnetdata/libnetdata.h"
+#include "libnetdata/libnetdata.h"
int webrtc_new_connection(const char *sdp, BUFFER *wb);
void webrtc_close_all_connections();
diff --git a/src/web/server/README.md b/src/web/server/README.md
new file mode 100644
index 000000000..188fb781b
--- /dev/null
+++ b/src/web/server/README.md
@@ -0,0 +1,271 @@
+# Web server
+
+The Netdata web server is `static-threaded`, with a fixed, configurable number of threads.
+
+All the threads are concurrently listening for web requests on the same sockets, and the kernel distributes the incoming
+requests to them. Each thread uses non-blocking I/O so it can serve any number of web requests in parallel.
+
+This web server respects the `keep-alive` HTTP header to serve multiple HTTP requests via the same connection.
+
+## Configuration
+
+From within your Netdata config directory (typically `/etc/netdata`), [use `edit-config`](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md) to
+open `netdata.conf`.
+
+```
+sudo ./edit-config netdata.conf
+```
+
+Scroll down to the `[web]` section to find the following settings.
+
+## Settings
+
+| Setting | Default | Description |
+|:-------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `ssl key` | `/etc/netdata/ssl/key.pem` | Declare the location of an SSL key to [enable HTTPS](#enable-httpstls-support). |
+| `ssl certificate` | `/etc/netdata/ssl/cert.pem` | Declare the location of an SSL certificate to [enable HTTPS](#enable-httpstls-support). |
+| `tls version` | `1.3` | Choose which TLS version to use. While all versions are allowed (`1` or `1.0`, `1.1`, `1.2` and `1.3`), we recommend `1.3` for the most secure encryption. If left blank, Netdata uses the highest available protocol version on your system. |
+| `tls ciphers` | `none` | Choose which TLS cipher to use. Options include `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`, and `TLS_AES_128_GCM_SHA256`. If left blank, Netdata uses the default cipher list for that protocol provided by your TLS implementation. |
+| `ses max window` | `15` | See [single exponential smoothing](https://github.com/netdata/netdata/blob/master/src/web/api/queries/ses/README.md). |
+| `des max window` | `15` | See [double exponential smoothing](https://github.com/netdata/netdata/blob/master/src/web/api/queries/des/README.md). |
+| `mode` | `static-threaded` | Turns on (`static-threaded` or off (`none`) the static-threaded web server. See the [example](#disable-the-web-server) to turn off the web server and disable the dashboard. |
+| `listen backlog` | `4096` | The port backlog. Check `man 2 listen`. |
+| `default port` | `19999` | The listen port for the static web server. |
+| `web files owner` | `netdata` | The user that owns the web static files. Netdata will refuse to serve a file that is not owned by this user, even if it has read access to that file. If the user given is not found, Netdata will only serve files owned by user given in `run as user`. |
+| `web files group` | `netdata` | If this is set, Netdata will check if the file is owned by this group and refuse to serve the file if it's not. |
+| `disconnect idle clients after seconds` | `60` | The time in seconds to disconnect web clients after being totally idle. |
+| `timeout for first request` | `60` | How long to wait for a client to send a request before closing the socket. Prevents slow request attacks. |
+| `accept a streaming request every seconds` | `0` | Can be used to set a limit on how often a parent node will accept streaming requests from child nodes in a [streaming and replication setup](https://github.com/netdata/netdata/blob/master/src/streaming/README.md). |
+| `respect do not track policy` | `no` | If set to `yes`, Netdata will respect the user's browser preferences for [Do Not Track](https://www.eff.org/issues/do-not-track) (DNT) and storing cookies. If DNT is _enabled_ in the browser, and this option is set to `yes`, nodes will not connect to any [registry](https://github.com/netdata/netdata/blob/master/src/registry/README.md). For certain browsers, users must disable DNT and change this option to `yes` for full functionality. |
+| `x-frame-options response header` | ` ` | Avoid [clickjacking attacks](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options), by ensuring that the content is not embedded into other sites. |
+| `allow connections from` | `localhost *` | Declare which IP addresses or full-qualified domain names (FQDNs) are allowed to connect to the web server, including the [dashboard](https://github.com/netdata/netdata/blob/master/docs/category-overview-pages/accessing-netdata-dashboards.md) or [HTTP API](https://github.com/netdata/netdata/blob/master/src/web/api/README.md). This is a global setting with higher priority to any of the ones below. |
+| `allow connections by dns` | `heuristic` | See the [access list examples](#access-lists) for details on using `allow` settings. |
+| `allow dashboard from` | `localhost *` | |
+| `allow dashboard by dns` | `heuristic` | |
+| `allow badges from` | `*` | |
+| `allow badges by dns` | `heuristic` | |
+| `allow streaming from` | `*` | |
+| `allow streaming by dns` | `heuristic` | |
+| `allow netdata.conf` | `localhost fd* 10.* 192.168.* 172.16.* 172.17.* 172.18.* 172.19.* 172.20.* 172.21.* 172.22.* 172.23.* 172.24.* 172.25.* 172.26.* 172.27.* 172.28.* 172.29.* 172.30.* 172.31.* UNKNOWN` | |
+| `allow netdata.conf by dns` | `no` | |
+| `allow management from` | `localhost` | |
+| `allow management by dns` | `heuristic` | |
+| `enable gzip compression` | `yes` | When set to `yes`, Netdata web responses will be GZIP compressed, if the web client accepts such responses. |
+| `gzip compression strategy` | `default` | Valid settings are `default`, `filtered`, `huffman only`, `rle` and `fixed`. |
+| `gzip compression level` | `3` | Valid settings are 1 (fastest) to 9 (best ratio). |
+| `web server threads` | ` ` | How many processor threads the web server is allowed. The default is system-specific, the minimum of `6` or the number of CPU cores. |
+| `web server max sockets` | ` ` | Available sockets. The default is system-specific, automatically adjusted to 50% of the max number of open files Netdata is allowed to use (via `/etc/security/limits.conf` or systemd), to allow enough file descriptors to be available for data collection. |
+| `custom dashboard_info.js` | ` ` | Specifies the location of a custom `dashboard.js` file. See [customizing the standard dashboard](https://github.com/netdata/netdata/blob/master/docs/dashboard/customize.md#customize-the-standard-dashboard) for details. |
+
+## Examples
+
+### Disable the web server
+
+Disable the web server by editing `netdata.conf` and setting:
+
+```
+[web]
+ mode = none
+```
+
+### Change the number of threads
+
+Control the number of threads and sockets with the following settings:
+
+```
+[web]
+ web server threads = 4
+ web server max sockets = 512
+```
+
+### Binding Netdata to multiple ports
+
+Netdata can bind to multiple IPs and ports, offering access to different services on each. Up to 100 sockets can be used (increase it at compile time with `CFLAGS="-DMAX_LISTEN_FDS=200" ./netdata-installer.sh ...`).
+
+The ports to bind are controlled via `[web].bind to`, like this:
+
+```
+[web]
+ default port = 19999
+ bind to = 127.0.0.1=dashboard^SSL=optional 10.1.1.1:19998=management|netdata.conf hostname:19997=badges [::]:19996=streaming^SSL=force localhost:19995=registry *:http=dashboard unix:/run/netdata/netdata.sock
+```
+
+Using the above, Netdata will bind to:
+
+- IPv4 127.0.0.1 at port 19999 (port was used from `default port`). Only the UI (dashboard) and the read API will be accessible on this port. Both HTTP and HTTPS requests will be accepted.
+- IPv4 10.1.1.1 at port 19998. The management API and `netdata.conf` will be accessible on this port.
+- All the IPs `hostname` resolves to (both IPv4 and IPv6 depending on the resolved IPs) at port 19997. Only badges will be accessible on this port.
+- All IPv6 IPs at port 19996. Only metric streaming requests from other Netdata agents will be accepted on this port. Only encrypted streams will be allowed (i.e. child nodes also need to be [configured for TLS](https://github.com/netdata/netdata/blob/master/src/streaming/README.md).
+- All the IPs `localhost` resolves to (both IPv4 and IPv6 depending the resolved IPs) at port 19996. This port will only accept registry API requests.
+- All IPv4 and IPv6 IPs at port `http` as set in `/etc/services`. Only the UI (dashboard) and the read API will be accessible on this port.
+- Unix domain socket `/run/netdata/netdata.sock`. All requests are serviceable on this socket. Note that in some OSs like Fedora, every service sees a different `/tmp`, so don't create a Unix socket under `/tmp`. `/run` or `/var/run` is suggested.
+
+The option `[web].default port` is used when an entries in `[web].bind to` do not specify a port.
+
+Note that the access permissions specified with the `=request type|request type|...` format are available from version 1.12 onwards.
+As shown in the example above, these permissions are optional, with the default being to permit all request types on the specified port.
+The request types are strings identical to the `allow X from` directives of the access lists, i.e. `dashboard`, `streaming`, `registry`, `netdata.conf`, `badges` and `management`.
+The access lists themselves and the general setting `allow connections from` in the next section are applied regardless of the ports that are configured to provide these services.
+The API requests are serviced as follows:
+
+- `dashboard` gives access to the UI, the read API and badges API calls.
+- `badges` gives access only to the badges API calls.
+- `management` gives access only to the management API calls.
+
+### Enable HTTPS/TLS support
+
+Since v1.16.0, Netdata supports encrypted HTTP connections to the web server, plus encryption of streaming data to a
+parent from its child nodes, via the TLS protocol.
+
+Inbound unix socket connections are unaffected, regardless of the TLS settings.
+
+> While Netdata uses Transport Layer Security (TLS) 1.2 to encrypt communications rather than the obsolete SSL protocol,
+> it's still common practice to refer to encrypted web connections as `SSL`. Many vendors, like Nginx and even Netdata
+> itself, use `SSL` in configuration files, whereas documentation will always refer to encrypted communications as `TLS`
+> or `TLS/SSL`.
+
+To enable TLS, provide the path to your certificate and private key in the `[web]` section of `netdata.conf`:
+
+```conf
+[web]
+ ssl key = /etc/netdata/ssl/key.pem
+ ssl certificate = /etc/netdata/ssl/cert.pem
+```
+
+Both files must be readable by the `netdata` user. If either of these files do not exist or are unreadable, Netdata will fall back to HTTP. For a parent-child connection, only the parent needs these settings.
+
+For test purposes, generate self-signed certificates with the following command:
+
+```bash
+openssl req -newkey rsa:2048 -nodes -sha512 -x509 -days 365 -keyout key.pem -out cert.pem
+```
+
+> If you use 4096 bits for your key and the certificate, Netdata will need more CPU to process the communication.
+> `rsa4096` can be up to 4 times slower than `rsa2048`, so we recommend using 2048 bits. Verify the difference
+> by running:
+>
+> ```sh
+> openssl speed rsa2048 rsa4096
+> ```
+
+### Select TLS version
+
+Beginning with version `v1.21.0`, specify the TLS version and the ciphers that you want to use:
+
+```conf
+[web]
+ tls version = 1.3
+ tls ciphers = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
+```
+
+If you do not specify these options, Netdata will use the highest available protocol version on your system and the default cipher list for that protocol provided by your TLS implementation.
+
+#### TLS/SSL enforcement
+
+When the certificates are defined and unless any other options are provided, a Netdata server will:
+
+- Redirect all incoming HTTP web server requests to HTTPS. Applies to the dashboard, the API, `netdata.conf` and badges.
+- Allow incoming child connections to use both unencrypted and encrypted communications for streaming.
+
+To change this behavior, you need to modify the `bind to` setting in the `[web]` section of `netdata.conf`. At the end of each port definition, append `^SSL=force` or `^SSL=optional`. What happens with these settings differs, depending on whether the port is used for HTTP/S requests, or for streaming.
+
+| SSL setting | HTTP requests|HTTPS requests|Unencrypted Streams|Encrypted Streams|
+|:---------:|:-----------:|:------------:|:-----------------:|:----------------|
+| none | Redirected to HTTPS|Accepted|Accepted|Accepted|
+| `force`| Redirected to HTTPS|Accepted|Denied|Accepted|
+| `optional`| Accepted|Accepted|Accepted|Accepted|
+
+Example:
+
+```
+[web]
+ bind to = *=dashboard|registry|badges|management|streaming|netdata.conf^SSL=force
+```
+
+For information how to configure the child to use TLS, check [securing the communication](https://github.com/netdata/netdata/blob/master/src/streaming/README.md#securing-streaming-communications) in the streaming documentation. There you will find additional details on the expected behavior for client and server nodes, when their respective TLS options are enabled.
+
+When we define the use of SSL in a Netdata agent for different ports, Netdata will apply the behavior specified on each port. For example, using the configuration line below:
+
+```
+[web]
+ bind to = *=dashboard|registry|badges|management|streaming|netdata.conf^SSL=force *:20000=netdata.conf^SSL=optional *:20001=dashboard|registry
+```
+
+Netdata will:
+
+- Force all HTTP requests to the default port to be redirected to HTTPS (same port).
+- Refuse unencrypted streaming connections from child nodes on the default port.
+- Allow both HTTP and HTTPS requests to port 20000 for `netdata.conf`
+- Force HTTP requests to port 20001 to be redirected to HTTPS (same port). Only allow requests for the dashboard, the read API and the registry on port 20001.
+
+#### TLS/SSL errors
+
+When you start using Netdata with TLS, you may find errors in the Netdata log, which is stored at `/var/log/netdata/error.log` by default.
+
+Most of the time, these errors are due to incompatibilities between your browser's options related to TLS/SSL protocols and Netdata's internal configuration. The most common error is `error:00000006:lib(0):func(0):EVP lib`.
+
+In the near future, Netdata will allow our users to change the internal configuration to avoid similar errors. Until then, we're recommending only the most common and safe encryption protocols listed above.
+
+### Access lists
+
+Netdata supports access lists in `netdata.conf`:
+
+```
+[web]
+ allow connections from = localhost *
+ allow dashboard from = localhost *
+ allow badges from = *
+ allow streaming from = *
+ allow netdata.conf from = localhost fd* 10.* 192.168.* 172.16.* 172.17.* 172.18.* 172.19.* 172.20.* 172.21.* 172.22.* 172.23.* 172.24.* 172.25.* 172.26.* 172.27.* 172.28.* 172.29.* 172.30.* 172.31.*
+ allow management from = localhost
+```
+
+`*` does string matches on the IPs or FQDNs of the clients.
+
+- `allow connections from` matches anyone that connects on the Netdata port(s).
+ So, if someone is not allowed, it will be connected and disconnected immediately, without reading even
+ a single byte from its connection. This is a global setting with higher priority to any of the ones below.
+
+- `allow dashboard from` receives the request and examines if it is a static dashboard file or an API call the
+ dashboards do.
+
+- `allow badges from` checks if the API request is for a badge. Badges are not matched by `allow dashboard from`.
+
+- `allow streaming from` checks if the child willing to stream metrics to this Netdata is allowed.
+ This can be controlled per API KEY and MACHINE GUID in `stream.conf`.
+ The setting in `netdata.conf` is checked before the ones in `stream.conf`.
+
+- `allow netdata.conf from` checks the IP to allow `http://netdata.host:19999/netdata.conf`.
+ The IPs listed are all the private IPv4 addresses, including link local IPv6 addresses. Keep in mind that connections to Netdata API ports are filtered by `allow connections from`. So, IPs allowed by `allow netdata.conf from` should also be allowed by `allow connections from`.
+
+- `allow management from` checks the IPs to allow API management calls. Management via the API is currently supported for [health](https://github.com/netdata/netdata/blob/master/src/web/api/health/README.md#health-management-api)
+
+In order to check the FQDN of the connection without opening the Netdata agent to DNS-spoofing, a reverse-dns record
+must be setup for the connecting host. At connection time the reverse-dns of the peer IP address is resolved, and
+a forward DNS resolution is made to validate the IP address against the name-pattern.
+
+Please note that this process can be expensive on a machine that is serving many connections. Each access list has an
+associated configuration option to turn off DNS-based patterns completely to avoid incurring this cost at run-time:
+
+```
+ allow connections by dns = heuristic
+ allow dashboard by dns = heuristic
+ allow badges by dns = heuristic
+ allow streaming by dns = heuristic
+ allow netdata.conf by dns = no
+ allow management by dns = heuristic
+```
+
+The three possible values for each of these options are `yes`, `no` and `heuristic`. The `heuristic` option disables
+the check when the pattern only contains IPv4/IPv6 addresses or `localhost`, and enables it when wildcards are
+present that may match DNS FQDNs.
+
+## DDoS protection
+
+If you publish your Netdata web server to the internet, you may want to apply some protection against DDoS:
+
+1. Use the `static-threaded` web server (it is the default)
+2. Use reasonable `[web].web server max sockets` (the default is)
+3. Don't use all your CPU cores for Netdata (lower `[web].web server threads`)
+4. Run the `netdata` process with a low process scheduling priority (the default is the lowest)
+5. If possible, proxy Netdata via a full featured web server (Nginx, Apache, etc)
diff --git a/web/server/h2o/connlist.c b/src/web/server/h2o/connlist.c
index 272e65cac..5df12b86b 100644
--- a/web/server/h2o/connlist.c
+++ b/src/web/server/h2o/connlist.c
@@ -1,3 +1,4 @@
+#include "libnetdata/libnetdata.h"
#include "connlist.h"
conn_list_t conn_list = { NULL, NULL, 0, 0, PTHREAD_MUTEX_INITIALIZER };
diff --git a/web/server/h2o/connlist.h b/src/web/server/h2o/connlist.h
index 8848b85be..8848b85be 100644
--- a/web/server/h2o/connlist.h
+++ b/src/web/server/h2o/connlist.h
diff --git a/web/server/h2o/h2o_utils.c b/src/web/server/h2o/h2o_utils.c
index 943216f59..3038b6156 100644
--- a/web/server/h2o/h2o_utils.c
+++ b/src/web/server/h2o/h2o_utils.c
@@ -25,7 +25,7 @@ h2o_iovec_pair_vector_t *parse_URL_params(h2o_mem_pool_t *pool, h2o_iovec_t para
if (params_vec->capacity == params_vec->size)
h2o_vector_reserve(pool, params_vec, params_vec->capacity + KEY_VAL_BUFFER_GROWTH_STEP);
- params_vec->entries[params_vec->size++] = param;
+ params_vec->entries[params_vec->size++] = param;
}
return params_vec;
diff --git a/web/server/h2o/h2o_utils.h b/src/web/server/h2o/h2o_utils.h
index 6760ed9a9..6760ed9a9 100644
--- a/web/server/h2o/h2o_utils.h
+++ b/src/web/server/h2o/h2o_utils.h
diff --git a/web/server/h2o/http_server.c b/src/web/server/h2o/http_server.c
index 08ad120b1..96bc91192 100644
--- a/web/server/h2o/http_server.c
+++ b/src/web/server/h2o/http_server.c
@@ -1,10 +1,16 @@
// SPDX-License-Identifier: GPL-3.0-or-later
+#include "daemon/common.h"
#include "streaming/common.h"
#include "http_server.h"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#pragma GCC diagnostic ignored "-Wtype-limits"
#include "h2o.h"
#include "h2o/http1.h"
+#pragma GCC diagnostic pop
#include "streaming.h"
#include "h2o_utils.h"
@@ -198,6 +204,7 @@ static inline int _netdata_uberhandler(h2o_req_t *req, RRDHOST **host)
if (!api_command.len)
return 1;
+ // TODO - get a web_client from the cache
// this (emulating struct web_client) is a hack and will be removed
// in future PRs but needs bigger changes in old http_api_v1
// we need to make the web_client_api_request_v1 to be web server
@@ -210,7 +217,8 @@ static inline int _netdata_uberhandler(h2o_req_t *req, RRDHOST **host)
w.response.header = buffer_create(NBUF_INITIAL_SIZE_RESP, NULL);
w.url_query_string_decoded = buffer_create(NBUF_INITIAL_SIZE_RESP, NULL);
w.url_as_received = buffer_create(NBUF_INITIAL_SIZE_RESP, NULL);
- w.acl = WEB_CLIENT_ACL_DASHBOARD;
+ w.port_acl = HTTP_ACL_H2O | HTTP_ACL_ALL_FEATURES;
+ w.acl = w.port_acl; // TODO - web_client_update_acl_matches(w) to restrict this based on user configuration
char *path_c_str = iovec_to_cstr(&api_command);
char *path_unescaped = url_unescape(path_c_str);
@@ -233,14 +241,19 @@ static inline int _netdata_uberhandler(h2o_req_t *req, RRDHOST **host)
web_client_api_request_v1(*host, &w, path_unescaped);
freez(path_unescaped);
- h2o_iovec_t body = buffer_to_h2o_iovec(w.response.data);
-
// we move msg body to req->pool managed memory as it has to
// live until whole response has been encrypted and sent
// when req is finished memory will be freed with the pool
- void *managed = h2o_mem_alloc_shared(&req->pool, body.len, NULL);
- memcpy(managed, body.base, body.len);
- body.base = managed;
+ h2o_iovec_t body;
+ {
+ BUFFER *wb = w.response.data;
+ body.base = wb->buffer;
+ body.len = wb->len;
+
+ void *managed = h2o_mem_alloc_shared(&req->pool, body.len, NULL);
+ memcpy(managed, body.base, body.len);
+ body.base = managed;
+ }
req->res.status = HTTP_RESP_OK;
req->res.reason = "OK";
diff --git a/web/server/h2o/http_server.h b/src/web/server/h2o/http_server.h
index 79e45e13b..28d1c560a 100644
--- a/web/server/h2o/http_server.h
+++ b/src/web/server/h2o/http_server.h
@@ -3,7 +3,7 @@
#ifndef HTTP_SERVER_H
#define HTTP_SERVER_H
-#include "libnetdata/libnetdata.h"
+#include <stddef.h>
void *h2o_main(void * ptr);
diff --git a/web/server/h2o/libh2o/.clang-format b/src/web/server/h2o/libh2o/.clang-format
index 9640123c7..9640123c7 100644
--- a/web/server/h2o/libh2o/.clang-format
+++ b/src/web/server/h2o/libh2o/.clang-format
diff --git a/web/server/h2o/libh2o/.gitignore b/src/web/server/h2o/libh2o/.gitignore
index 743ee1934..743ee1934 100644
--- a/web/server/h2o/libh2o/.gitignore
+++ b/src/web/server/h2o/libh2o/.gitignore
diff --git a/web/server/h2o/libh2o/.gitmodules b/src/web/server/h2o/libh2o/.gitmodules
index 606ac21c0..606ac21c0 100644
--- a/web/server/h2o/libh2o/.gitmodules
+++ b/src/web/server/h2o/libh2o/.gitmodules
diff --git a/web/server/h2o/libh2o/.travis.yml b/src/web/server/h2o/libh2o/.travis.yml
index bfd7aa801..bfd7aa801 100644
--- a/web/server/h2o/libh2o/.travis.yml
+++ b/src/web/server/h2o/libh2o/.travis.yml
diff --git a/web/server/h2o/libh2o/CMakeLists.txt b/src/web/server/h2o/libh2o/CMakeLists.txt
index 436d90c86..436d90c86 100644
--- a/web/server/h2o/libh2o/CMakeLists.txt
+++ b/src/web/server/h2o/libh2o/CMakeLists.txt
diff --git a/web/server/h2o/libh2o/Changes b/src/web/server/h2o/libh2o/Changes
index 10df46e4d..10df46e4d 100644
--- a/web/server/h2o/libh2o/Changes
+++ b/src/web/server/h2o/libh2o/Changes
diff --git a/web/server/h2o/libh2o/LICENSE b/src/web/server/h2o/libh2o/LICENSE
index f7433303f..f7433303f 100644
--- a/web/server/h2o/libh2o/LICENSE
+++ b/src/web/server/h2o/libh2o/LICENSE
diff --git a/web/server/h2o/libh2o/README.md b/src/web/server/h2o/libh2o/README.md
index 95660134d..95660134d 100644
--- a/web/server/h2o/libh2o/README.md
+++ b/src/web/server/h2o/libh2o/README.md
diff --git a/web/server/h2o/libh2o/cmake/FindLibUV.cmake b/src/web/server/h2o/libh2o/cmake/FindLibUV.cmake
index 253a5e7e9..253a5e7e9 100644
--- a/web/server/h2o/libh2o/cmake/FindLibUV.cmake
+++ b/src/web/server/h2o/libh2o/cmake/FindLibUV.cmake
diff --git a/web/server/h2o/libh2o/cmake/FindLibYAML.cmake b/src/web/server/h2o/libh2o/cmake/FindLibYAML.cmake
index 0249fd797..0249fd797 100644
--- a/web/server/h2o/libh2o/cmake/FindLibYAML.cmake
+++ b/src/web/server/h2o/libh2o/cmake/FindLibYAML.cmake
diff --git a/web/server/h2o/libh2o/cmake/FindMruby.cmake b/src/web/server/h2o/libh2o/cmake/FindMruby.cmake
index dddddb87b..dddddb87b 100644
--- a/web/server/h2o/libh2o/cmake/FindMruby.cmake
+++ b/src/web/server/h2o/libh2o/cmake/FindMruby.cmake
diff --git a/web/server/h2o/libh2o/cmake/FindWslay.cmake b/src/web/server/h2o/libh2o/cmake/FindWslay.cmake
index 4726551c5..4726551c5 100644
--- a/web/server/h2o/libh2o/cmake/FindWslay.cmake
+++ b/src/web/server/h2o/libh2o/cmake/FindWslay.cmake
diff --git a/web/server/h2o/libh2o/deps/brotli/.gitignore b/src/web/server/h2o/libh2o/deps/brotli/.gitignore
index 162f0365b..162f0365b 100644
--- a/web/server/h2o/libh2o/deps/brotli/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/brotli/.gitignore
diff --git a/web/server/h2o/libh2o/deps/brotli/.gitmodules b/src/web/server/h2o/libh2o/deps/brotli/.gitmodules
index 3d602550a..3d602550a 100644
--- a/web/server/h2o/libh2o/deps/brotli/.gitmodules
+++ b/src/web/server/h2o/libh2o/deps/brotli/.gitmodules
diff --git a/web/server/h2o/libh2o/deps/brotli/.travis.yml b/src/web/server/h2o/libh2o/deps/brotli/.travis.yml
index c6fd74d7b..c6fd74d7b 100644
--- a/web/server/h2o/libh2o/deps/brotli/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/brotli/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/brotli/CONTRIBUTING.md b/src/web/server/h2o/libh2o/deps/brotli/CONTRIBUTING.md
index a00e37d17..a00e37d17 100644
--- a/web/server/h2o/libh2o/deps/brotli/CONTRIBUTING.md
+++ b/src/web/server/h2o/libh2o/deps/brotli/CONTRIBUTING.md
diff --git a/web/server/h2o/libh2o/deps/brotli/LICENSE b/src/web/server/h2o/libh2o/deps/brotli/LICENSE
index 6298a5dc9..6298a5dc9 100644
--- a/web/server/h2o/libh2o/deps/brotli/LICENSE
+++ b/src/web/server/h2o/libh2o/deps/brotli/LICENSE
diff --git a/web/server/h2o/libh2o/deps/brotli/README.md b/src/web/server/h2o/libh2o/deps/brotli/README.md
index 520a06571..520a06571 100644
--- a/web/server/h2o/libh2o/deps/brotli/README.md
+++ b/src/web/server/h2o/libh2o/deps/brotli/README.md
diff --git a/web/server/h2o/libh2o/deps/brotli/appveyor.yml b/src/web/server/h2o/libh2o/deps/brotli/appveyor.yml
index d41442524..d41442524 100644
--- a/web/server/h2o/libh2o/deps/brotli/appveyor.yml
+++ b/src/web/server/h2o/libh2o/deps/brotli/appveyor.yml
diff --git a/web/server/h2o/libh2o/deps/brotli/appveyor/install.ps1 b/src/web/server/h2o/libh2o/deps/brotli/appveyor/install.ps1
index bdd0cd372..bdd0cd372 100644
--- a/web/server/h2o/libh2o/deps/brotli/appveyor/install.ps1
+++ b/src/web/server/h2o/libh2o/deps/brotli/appveyor/install.ps1
diff --git a/web/server/h2o/libh2o/deps/brotli/appveyor/run_with_compiler.cmd b/src/web/server/h2o/libh2o/deps/brotli/appveyor/run_with_compiler.cmd
index ad125ec54..ad125ec54 100644
--- a/web/server/h2o/libh2o/deps/brotli/appveyor/run_with_compiler.cmd
+++ b/src/web/server/h2o/libh2o/deps/brotli/appveyor/run_with_compiler.cmd
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/Makefile b/src/web/server/h2o/libh2o/deps/brotli/dec/Makefile
index 4d11ed195..4d11ed195 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/Makefile
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/Makefile
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.c b/src/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.c
index cde90af56..cde90af56 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.c
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.c
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.h b/src/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.h
index e77d11433..e77d11433 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/bit_reader.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/context.h b/src/web/server/h2o/libh2o/deps/brotli/dec/context.h
index 37ebe6aeb..37ebe6aeb 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/context.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/context.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/decode.c b/src/web/server/h2o/libh2o/deps/brotli/dec/decode.c
index a81706b04..a81706b04 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/decode.c
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/decode.c
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/decode.h b/src/web/server/h2o/libh2o/deps/brotli/dec/decode.h
index 074b2f58b..074b2f58b 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/decode.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/decode.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/dictionary.c b/src/web/server/h2o/libh2o/deps/brotli/dec/dictionary.c
index f8f58575c..f8f58575c 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/dictionary.c
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/dictionary.c
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/dictionary.h b/src/web/server/h2o/libh2o/deps/brotli/dec/dictionary.h
index ae250c2d7..ae250c2d7 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/dictionary.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/dictionary.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/huffman.c b/src/web/server/h2o/libh2o/deps/brotli/dec/huffman.c
index 159ac1c7c..159ac1c7c 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/huffman.c
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/huffman.c
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/huffman.h b/src/web/server/h2o/libh2o/deps/brotli/dec/huffman.h
index 7cbec80d4..7cbec80d4 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/huffman.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/huffman.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/port.h b/src/web/server/h2o/libh2o/deps/brotli/dec/port.h
index 6cbe49854..6cbe49854 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/port.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/port.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/prefix.h b/src/web/server/h2o/libh2o/deps/brotli/dec/prefix.h
index eaae37f02..eaae37f02 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/prefix.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/prefix.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/state.c b/src/web/server/h2o/libh2o/deps/brotli/dec/state.c
index 52c0e6c8f..52c0e6c8f 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/state.c
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/state.c
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/state.h b/src/web/server/h2o/libh2o/deps/brotli/dec/state.h
index 925fa149c..925fa149c 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/state.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/state.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/transform.h b/src/web/server/h2o/libh2o/deps/brotli/dec/transform.h
index 8c08f3fc0..8c08f3fc0 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/transform.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/transform.h
diff --git a/web/server/h2o/libh2o/deps/brotli/dec/types.h b/src/web/server/h2o/libh2o/deps/brotli/dec/types.h
index 0f7a0216a..0f7a0216a 100644
--- a/web/server/h2o/libh2o/deps/brotli/dec/types.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/dec/types.h
diff --git a/web/server/h2o/libh2o/deps/brotli/docs/brotli-comparison-study-2015-09-22.pdf b/src/web/server/h2o/libh2o/deps/brotli/docs/brotli-comparison-study-2015-09-22.pdf
index 040f179e2..040f179e2 100644
--- a/web/server/h2o/libh2o/deps/brotli/docs/brotli-comparison-study-2015-09-22.pdf
+++ b/src/web/server/h2o/libh2o/deps/brotli/docs/brotli-comparison-study-2015-09-22.pdf
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.nroff b/src/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.nroff
index 5bbf37394..5bbf37394 100644
--- a/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.nroff
+++ b/src/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.nroff
diff --git a/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.txt b/src/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.txt
index e11913613..e11913613 100644
--- a/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.txt
+++ b/src/web/server/h2o/libh2o/deps/brotli/docs/draft-alakuijala-brotli-08.txt
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/Makefile b/src/web/server/h2o/libh2o/deps/brotli/enc/Makefile
index a43d4c217..a43d4c217 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/Makefile
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/Makefile
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/backward_references.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/backward_references.cc
index 02d956ddc..02d956ddc 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/backward_references.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/backward_references.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/backward_references.h b/src/web/server/h2o/libh2o/deps/brotli/enc/backward_references.h
index d3519efe5..d3519efe5 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/backward_references.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/backward_references.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/bit_cost.h b/src/web/server/h2o/libh2o/deps/brotli/enc/bit_cost.h
index 32ad52e89..32ad52e89 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/bit_cost.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/bit_cost.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.cc
index 8eaf9535d..8eaf9535d 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.h b/src/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.h
index bbbfda902..bbbfda902 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/block_splitter.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.cc
index 69a73fc01..69a73fc01 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.h b/src/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.h
index b05f1e2b3..b05f1e2b3 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/brotli_bit_stream.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/cluster.h b/src/web/server/h2o/libh2o/deps/brotli/enc/cluster.h
index 4f6c06ee5..4f6c06ee5 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/cluster.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/cluster.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/command.h b/src/web/server/h2o/libh2o/deps/brotli/enc/command.h
index afb014be8..afb014be8 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/command.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/command.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.cc
index 047d7fe97..047d7fe97 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.h b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.h
index 7ce05fdfb..7ce05fdfb 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.cc
index 847760310..847760310 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.h b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.h
index 690ed081e..690ed081e 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/compress_fragment_two_pass.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/context.h b/src/web/server/h2o/libh2o/deps/brotli/enc/context.h
index 00c065bcc..00c065bcc 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/context.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/context.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/dictionary.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/dictionary.cc
index 0564bab6a..0564bab6a 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/dictionary.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/dictionary.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/dictionary.h b/src/web/server/h2o/libh2o/deps/brotli/enc/dictionary.h
index c9c6362da..c9c6362da 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/dictionary.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/dictionary.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/dictionary_hash.h b/src/web/server/h2o/libh2o/deps/brotli/enc/dictionary_hash.h
index afbb1f1e6..afbb1f1e6 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/dictionary_hash.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/dictionary_hash.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/encode.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/encode.cc
index ffd31e403..ffd31e403 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/encode.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/encode.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/encode.h b/src/web/server/h2o/libh2o/deps/brotli/enc/encode.h
index 167235c92..167235c92 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/encode.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/encode.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.cc
index 12ea83f52..12ea83f52 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.h b/src/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.h
index 8d637b7c0..8d637b7c0 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/encode_parallel.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.cc
index ff5484f66..ff5484f66 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.h b/src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.h
index 4b674a138..4b674a138 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode_static.h b/src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode_static.h
index b137a8ef3..b137a8ef3 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode_static.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/entropy_encode_static.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/fast_log.h b/src/web/server/h2o/libh2o/deps/brotli/enc/fast_log.h
index f9450ed58..f9450ed58 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/fast_log.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/fast_log.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/find_match_length.h b/src/web/server/h2o/libh2o/deps/brotli/enc/find_match_length.h
index 1337ec368..1337ec368 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/find_match_length.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/find_match_length.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/hash.h b/src/web/server/h2o/libh2o/deps/brotli/enc/hash.h
index 1f5f168c6..1f5f168c6 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/hash.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/hash.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/histogram.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/histogram.cc
index 75235902f..75235902f 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/histogram.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/histogram.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/histogram.h b/src/web/server/h2o/libh2o/deps/brotli/enc/histogram.h
index 298d31621..298d31621 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/histogram.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/histogram.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.cc
index e13eedc9d..e13eedc9d 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.h b/src/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.h
index 291aa8a1d..291aa8a1d 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/literal_cost.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/metablock.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/metablock.cc
index d6ea8426f..d6ea8426f 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/metablock.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/metablock.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/metablock.h b/src/web/server/h2o/libh2o/deps/brotli/enc/metablock.h
index 00c739b0d..00c739b0d 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/metablock.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/metablock.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/port.h b/src/web/server/h2o/libh2o/deps/brotli/enc/port.h
index e73df63a8..e73df63a8 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/port.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/port.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/prefix.h b/src/web/server/h2o/libh2o/deps/brotli/enc/prefix.h
index 0d11cdacc..0d11cdacc 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/prefix.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/prefix.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/ringbuffer.h b/src/web/server/h2o/libh2o/deps/brotli/enc/ringbuffer.h
index d523792a5..d523792a5 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/ringbuffer.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/ringbuffer.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/static_dict.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/static_dict.cc
index 27177b1b6..27177b1b6 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/static_dict.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/static_dict.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/static_dict.h b/src/web/server/h2o/libh2o/deps/brotli/enc/static_dict.h
index d293934df..d293934df 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/static_dict.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/static_dict.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/static_dict_lut.h b/src/web/server/h2o/libh2o/deps/brotli/enc/static_dict_lut.h
index 489c03a1b..489c03a1b 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/static_dict_lut.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/static_dict_lut.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/streams.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/streams.cc
index 2ea766f22..2ea766f22 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/streams.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/streams.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/streams.h b/src/web/server/h2o/libh2o/deps/brotli/enc/streams.h
index 68fc23ccb..68fc23ccb 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/streams.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/streams.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/transform.h b/src/web/server/h2o/libh2o/deps/brotli/enc/transform.h
index ffd7f4c04..ffd7f4c04 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/transform.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/transform.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/types.h b/src/web/server/h2o/libh2o/deps/brotli/enc/types.h
index 851749cbd..851749cbd 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/types.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/types.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.cc b/src/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.cc
index a2b5c3a67..a2b5c3a67 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.h b/src/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.h
index 74f22b6a7..74f22b6a7 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/utf8_util.h
diff --git a/web/server/h2o/libh2o/deps/brotli/enc/write_bits.h b/src/web/server/h2o/libh2o/deps/brotli/enc/write_bits.h
index b605203a3..b605203a3 100644
--- a/web/server/h2o/libh2o/deps/brotli/enc/write_bits.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/enc/write_bits.h
diff --git a/web/server/h2o/libh2o/deps/brotli/python/README.md b/src/web/server/h2o/libh2o/deps/brotli/python/README.md
index e78722864..e78722864 100644
--- a/web/server/h2o/libh2o/deps/brotli/python/README.md
+++ b/src/web/server/h2o/libh2o/deps/brotli/python/README.md
diff --git a/web/server/h2o/libh2o/deps/brotli/python/bro.py b/src/web/server/h2o/libh2o/deps/brotli/python/bro.py
index c6f74ce94..c6f74ce94 100755
--- a/web/server/h2o/libh2o/deps/brotli/python/bro.py
+++ b/src/web/server/h2o/libh2o/deps/brotli/python/bro.py
diff --git a/web/server/h2o/libh2o/deps/brotli/python/brotlimodule.cc b/src/web/server/h2o/libh2o/deps/brotli/python/brotlimodule.cc
index 936d1a485..936d1a485 100644
--- a/web/server/h2o/libh2o/deps/brotli/python/brotlimodule.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/python/brotlimodule.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/python/tests/compatibility_test.py b/src/web/server/h2o/libh2o/deps/brotli/python/tests/compatibility_test.py
index 668c9ecee..668c9ecee 100755
--- a/web/server/h2o/libh2o/deps/brotli/python/tests/compatibility_test.py
+++ b/src/web/server/h2o/libh2o/deps/brotli/python/tests/compatibility_test.py
diff --git a/web/server/h2o/libh2o/deps/brotli/python/tests/custom_dictionary_test.py b/src/web/server/h2o/libh2o/deps/brotli/python/tests/custom_dictionary_test.py
index afbf07a84..afbf07a84 100644
--- a/web/server/h2o/libh2o/deps/brotli/python/tests/custom_dictionary_test.py
+++ b/src/web/server/h2o/libh2o/deps/brotli/python/tests/custom_dictionary_test.py
diff --git a/web/server/h2o/libh2o/deps/brotli/python/tests/roundtrip_test.py b/src/web/server/h2o/libh2o/deps/brotli/python/tests/roundtrip_test.py
index 719a7b778..719a7b778 100755
--- a/web/server/h2o/libh2o/deps/brotli/python/tests/roundtrip_test.py
+++ b/src/web/server/h2o/libh2o/deps/brotli/python/tests/roundtrip_test.py
diff --git a/web/server/h2o/libh2o/deps/brotli/python/tests/test_utils.py b/src/web/server/h2o/libh2o/deps/brotli/python/tests/test_utils.py
index 381b64e96..381b64e96 100644
--- a/web/server/h2o/libh2o/deps/brotli/python/tests/test_utils.py
+++ b/src/web/server/h2o/libh2o/deps/brotli/python/tests/test_utils.py
diff --git a/web/server/h2o/libh2o/deps/brotli/setup.py b/src/web/server/h2o/libh2o/deps/brotli/setup.py
index 454034875..454034875 100644
--- a/web/server/h2o/libh2o/deps/brotli/setup.py
+++ b/src/web/server/h2o/libh2o/deps/brotli/setup.py
diff --git a/web/server/h2o/libh2o/deps/brotli/shared.mk b/src/web/server/h2o/libh2o/deps/brotli/shared.mk
index 2a0e7d1f5..2a0e7d1f5 100644
--- a/web/server/h2o/libh2o/deps/brotli/shared.mk
+++ b/src/web/server/h2o/libh2o/deps/brotli/shared.mk
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/Makefile b/src/web/server/h2o/libh2o/deps/brotli/tests/Makefile
index 8b2eedbfa..8b2eedbfa 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/Makefile
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/Makefile
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/compatibility_test.sh b/src/web/server/h2o/libh2o/deps/brotli/tests/compatibility_test.sh
index e907485e1..e907485e1 100755
--- a/web/server/h2o/libh2o/deps/brotli/tests/compatibility_test.sh
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/compatibility_test.sh
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/roundtrip_test.sh b/src/web/server/h2o/libh2o/deps/brotli/tests/roundtrip_test.sh
index 9b05fce46..9b05fce46 100755
--- a/web/server/h2o/libh2o/deps/brotli/tests/roundtrip_test.sh
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/roundtrip_test.sh
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y
index 3f9cf8651..3f9cf8651 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y.compressed
index 3769516d9..3769516d9 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/10x10y.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x
index caa41718c..caa41718c 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x.compressed
index 74d0be10a..74d0be10a 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/64x.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt
index 703365523..703365523 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt.compressed
index 37d86e253..37d86e253 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/alice29.txt.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt
index 88dc7b60f..88dc7b60f 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt.compressed
index 3a7621100..3a7621100 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/asyoulik.txt.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536
index 40efb3c11..40efb3c11 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536.compressed
index 07152197d..07152197d 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/backward65536.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/bb.binast b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/bb.binast
index 9b7f07399..9b7f07399 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/bb.binast
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/bb.binast
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file
index 37d86e253..37d86e253 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file.compressed
index 8834f3275..8834f3275 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_file.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated
index 9870b5fdc..9870b5fdc 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated.compressed
index 092754589..092754589 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/compressed_repeated.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/test/writable b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/test/writable
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed
index f8fa5a235..f8fa5a235 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.00 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.00
index f8fa5a235..f8fa5a235 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.00
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.00
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.01 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.01
index 17bb34721..17bb34721 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.01
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.01
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.02 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.02
index c183df6a3..c183df6a3 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.02
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.02
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.03 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.03
index ae60db8f3..ae60db8f3 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.03
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.03
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.04 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.04
index 8fac0345c..8fac0345c 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.04
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.04
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.05 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.05
index 98c9dcca2..98c9dcca2 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.05
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.05
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.06 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.06
index 84f606f03..84f606f03 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.06
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.06
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.07 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.07
index 0941d5368..0941d5368 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.07
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.07
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.08 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.08
index e440e5c84..e440e5c84 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.08
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.08
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.09 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.09
index 7813681f5..7813681f5 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.09
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.09
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.10 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.10
index c7930257d..c7930257d 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.10
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.10
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.11 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.11
index f11c82a4c..f11c82a4c 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.11
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.11
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.12 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.12
index 1c8a0e797..1c8a0e797 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.12
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.12
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.13 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.13
index 851c75cc5..851c75cc5 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.13
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.13
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.14 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.14
index 0d758c9c7..0d758c9c7 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.14
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.14
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.15 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.15
index 152f9ed5a..152f9ed5a 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.15
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.15
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.16 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.16
index e136a792a..e136a792a 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.16
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.16
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.17 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.17
index 81f0388bf..81f0388bf 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.17
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.17
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.18 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.18
index 524e34198..524e34198 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.18
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/empty.compressed.18
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt
index 25dda6b3f..25dda6b3f 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt.compressed
index b7d0f633c..b7d0f633c 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/lcet10.txt.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh
index 037118364..037118364 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh.compressed
index 77bfa4717..77bfa4717 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/mapsdatazrh.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey
index 47408cd68..47408cd68 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey.compressed
index bbcf13440..bbcf13440 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/monkey.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt
index 34088b82c..34088b82c 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt.compressed
index 1750fa5c7..1750fa5c7 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/plrabn12.txt.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox
index ff3bb6394..ff3bb6394 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox.compressed
index b5deebc42..b5deebc42 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox.compressed
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated
index 2ed134ebc..2ed134ebc 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated.compressed
index f9d797678..f9d797678 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/quickfox_repeated.compressed
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_chunks b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_chunks
index c014f0b3a..c014f0b3a 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_chunks
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_chunks
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin
index faf8a3a7b..faf8a3a7b 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin.compressed
index 5ffbaa049..5ffbaa049 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/random_org_10k.bin.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa
index 1072b69b4..1072b69b4 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa.compressed
index f39f068d7..f39f068d7 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/ukkonooa.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x
index 500c0709c..500c0709c 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed
index 2a44b5def..2a44b5def 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.00 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.00
index 33e3a98e0..33e3a98e0 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.00
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.00
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.01 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.01
index 9c8249b16..9c8249b16 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.01
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.01
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.02 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.02
index 3a5890db7..3a5890db7 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.02
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.02
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.03 b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.03
index 842e7995c..842e7995c 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.03
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/x.compressed.03
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy
index fbfb23d1e..fbfb23d1e 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy.compressed
index e6982cef4..e6982cef4 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/xyzzy.compressed
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros
index 6d23118f0..6d23118f0 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros.compressed b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros.compressed
index bf05b53c1..bf05b53c1 100644
--- a/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros.compressed
+++ b/src/web/server/h2o/libh2o/deps/brotli/tests/testdata/zeros.compressed
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/brotli/tools/Makefile b/src/web/server/h2o/libh2o/deps/brotli/tools/Makefile
index 6b46ad880..6b46ad880 100644
--- a/web/server/h2o/libh2o/deps/brotli/tools/Makefile
+++ b/src/web/server/h2o/libh2o/deps/brotli/tools/Makefile
diff --git a/web/server/h2o/libh2o/deps/brotli/tools/bro.cc b/src/web/server/h2o/libh2o/deps/brotli/tools/bro.cc
index 635751c80..635751c80 100644
--- a/web/server/h2o/libh2o/deps/brotli/tools/bro.cc
+++ b/src/web/server/h2o/libh2o/deps/brotli/tools/bro.cc
diff --git a/web/server/h2o/libh2o/deps/brotli/tools/rfc-format.py b/src/web/server/h2o/libh2o/deps/brotli/tools/rfc-format.py
index 61696a0cd..61696a0cd 100755
--- a/web/server/h2o/libh2o/deps/brotli/tools/rfc-format.py
+++ b/src/web/server/h2o/libh2o/deps/brotli/tools/rfc-format.py
diff --git a/web/server/h2o/libh2o/deps/brotli/tools/version.h b/src/web/server/h2o/libh2o/deps/brotli/tools/version.h
index 6125a73e9..6125a73e9 100644
--- a/web/server/h2o/libh2o/deps/brotli/tools/version.h
+++ b/src/web/server/h2o/libh2o/deps/brotli/tools/version.h
diff --git a/web/server/h2o/libh2o/deps/cloexec/cloexec.c b/src/web/server/h2o/libh2o/deps/cloexec/cloexec.c
index bc67c3957..bc67c3957 100644
--- a/web/server/h2o/libh2o/deps/cloexec/cloexec.c
+++ b/src/web/server/h2o/libh2o/deps/cloexec/cloexec.c
diff --git a/web/server/h2o/libh2o/deps/cloexec/cloexec.h b/src/web/server/h2o/libh2o/deps/cloexec/cloexec.h
index 53987ed66..53987ed66 100644
--- a/web/server/h2o/libh2o/deps/cloexec/cloexec.h
+++ b/src/web/server/h2o/libh2o/deps/cloexec/cloexec.h
diff --git a/web/server/h2o/libh2o/deps/golombset/README.md b/src/web/server/h2o/libh2o/deps/golombset/README.md
index 5bebfb774..5bebfb774 100644
--- a/web/server/h2o/libh2o/deps/golombset/README.md
+++ b/src/web/server/h2o/libh2o/deps/golombset/README.md
diff --git a/web/server/h2o/libh2o/deps/golombset/golombset.h b/src/web/server/h2o/libh2o/deps/golombset/golombset.h
index 207f0d61c..207f0d61c 100644
--- a/web/server/h2o/libh2o/deps/golombset/golombset.h
+++ b/src/web/server/h2o/libh2o/deps/golombset/golombset.h
diff --git a/web/server/h2o/libh2o/deps/golombset/test.c b/src/web/server/h2o/libh2o/deps/golombset/test.c
index 42a8ac8f4..42a8ac8f4 100644
--- a/web/server/h2o/libh2o/deps/golombset/test.c
+++ b/src/web/server/h2o/libh2o/deps/golombset/test.c
diff --git a/web/server/h2o/libh2o/deps/klib/.gitignore b/src/web/server/h2o/libh2o/deps/klib/.gitignore
index 010a8ebe6..010a8ebe6 100644
--- a/web/server/h2o/libh2o/deps/klib/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/klib/.gitignore
diff --git a/web/server/h2o/libh2o/deps/klib/README.md b/src/web/server/h2o/libh2o/deps/klib/README.md
index ddd74f470..ddd74f470 100644
--- a/web/server/h2o/libh2o/deps/klib/README.md
+++ b/src/web/server/h2o/libh2o/deps/klib/README.md
diff --git a/web/server/h2o/libh2o/deps/klib/bgzf.c b/src/web/server/h2o/libh2o/deps/klib/bgzf.c
index 9833414f9..9833414f9 100644
--- a/web/server/h2o/libh2o/deps/klib/bgzf.c
+++ b/src/web/server/h2o/libh2o/deps/klib/bgzf.c
diff --git a/web/server/h2o/libh2o/deps/klib/bgzf.h b/src/web/server/h2o/libh2o/deps/klib/bgzf.h
index 29fe0e5da..29fe0e5da 100644
--- a/web/server/h2o/libh2o/deps/klib/bgzf.h
+++ b/src/web/server/h2o/libh2o/deps/klib/bgzf.h
diff --git a/web/server/h2o/libh2o/deps/klib/kbit.h b/src/web/server/h2o/libh2o/deps/klib/kbit.h
index 3793cf837..3793cf837 100644
--- a/web/server/h2o/libh2o/deps/klib/kbit.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kbit.h
diff --git a/web/server/h2o/libh2o/deps/klib/kbtree.h b/src/web/server/h2o/libh2o/deps/klib/kbtree.h
index 5ed5330b9..5ed5330b9 100644
--- a/web/server/h2o/libh2o/deps/klib/kbtree.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kbtree.h
diff --git a/web/server/h2o/libh2o/deps/klib/kgraph.h b/src/web/server/h2o/libh2o/deps/klib/kgraph.h
index af008ef7e..af008ef7e 100644
--- a/web/server/h2o/libh2o/deps/klib/kgraph.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kgraph.h
diff --git a/web/server/h2o/libh2o/deps/klib/khash.h b/src/web/server/h2o/libh2o/deps/klib/khash.h
index 5e55088b2..5e55088b2 100644
--- a/web/server/h2o/libh2o/deps/klib/khash.h
+++ b/src/web/server/h2o/libh2o/deps/klib/khash.h
diff --git a/web/server/h2o/libh2o/deps/klib/khmm.c b/src/web/server/h2o/libh2o/deps/klib/khmm.c
index 711ade5a2..711ade5a2 100644
--- a/web/server/h2o/libh2o/deps/klib/khmm.c
+++ b/src/web/server/h2o/libh2o/deps/klib/khmm.c
diff --git a/web/server/h2o/libh2o/deps/klib/khmm.h b/src/web/server/h2o/libh2o/deps/klib/khmm.h
index d87673b93..d87673b93 100644
--- a/web/server/h2o/libh2o/deps/klib/khmm.h
+++ b/src/web/server/h2o/libh2o/deps/klib/khmm.h
diff --git a/web/server/h2o/libh2o/deps/klib/klist.h b/src/web/server/h2o/libh2o/deps/klib/klist.h
index 8b33f271e..8b33f271e 100644
--- a/web/server/h2o/libh2o/deps/klib/klist.h
+++ b/src/web/server/h2o/libh2o/deps/klib/klist.h
diff --git a/web/server/h2o/libh2o/deps/klib/kmath.c b/src/web/server/h2o/libh2o/deps/klib/kmath.c
index 9807b00ee..9807b00ee 100644
--- a/web/server/h2o/libh2o/deps/klib/kmath.c
+++ b/src/web/server/h2o/libh2o/deps/klib/kmath.c
diff --git a/web/server/h2o/libh2o/deps/klib/kmath.h b/src/web/server/h2o/libh2o/deps/klib/kmath.h
index 2c3e77969..2c3e77969 100644
--- a/web/server/h2o/libh2o/deps/klib/kmath.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kmath.h
diff --git a/web/server/h2o/libh2o/deps/klib/knetfile.c b/src/web/server/h2o/libh2o/deps/klib/knetfile.c
index 158add911..158add911 100644
--- a/web/server/h2o/libh2o/deps/klib/knetfile.c
+++ b/src/web/server/h2o/libh2o/deps/klib/knetfile.c
diff --git a/web/server/h2o/libh2o/deps/klib/knetfile.h b/src/web/server/h2o/libh2o/deps/klib/knetfile.h
index 0a0e66f7a..0a0e66f7a 100644
--- a/web/server/h2o/libh2o/deps/klib/knetfile.h
+++ b/src/web/server/h2o/libh2o/deps/klib/knetfile.h
diff --git a/web/server/h2o/libh2o/deps/klib/knhx.c b/src/web/server/h2o/libh2o/deps/klib/knhx.c
index 8dbd3b6e3..8dbd3b6e3 100644
--- a/web/server/h2o/libh2o/deps/klib/knhx.c
+++ b/src/web/server/h2o/libh2o/deps/klib/knhx.c
diff --git a/web/server/h2o/libh2o/deps/klib/knhx.h b/src/web/server/h2o/libh2o/deps/klib/knhx.h
index dbad7dd94..dbad7dd94 100644
--- a/web/server/h2o/libh2o/deps/klib/knhx.h
+++ b/src/web/server/h2o/libh2o/deps/klib/knhx.h
diff --git a/web/server/h2o/libh2o/deps/klib/kopen.c b/src/web/server/h2o/libh2o/deps/klib/kopen.c
index f72735c42..f72735c42 100644
--- a/web/server/h2o/libh2o/deps/klib/kopen.c
+++ b/src/web/server/h2o/libh2o/deps/klib/kopen.c
diff --git a/web/server/h2o/libh2o/deps/klib/ksa.c b/src/web/server/h2o/libh2o/deps/klib/ksa.c
index 18f686d11..18f686d11 100644
--- a/web/server/h2o/libh2o/deps/klib/ksa.c
+++ b/src/web/server/h2o/libh2o/deps/klib/ksa.c
diff --git a/web/server/h2o/libh2o/deps/klib/kseq.h b/src/web/server/h2o/libh2o/deps/klib/kseq.h
index b2238d1d3..b2238d1d3 100644
--- a/web/server/h2o/libh2o/deps/klib/kseq.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kseq.h
diff --git a/web/server/h2o/libh2o/deps/klib/kson.c b/src/web/server/h2o/libh2o/deps/klib/kson.c
index a8bf1601f..a8bf1601f 100644
--- a/web/server/h2o/libh2o/deps/klib/kson.c
+++ b/src/web/server/h2o/libh2o/deps/klib/kson.c
diff --git a/web/server/h2o/libh2o/deps/klib/kson.h b/src/web/server/h2o/libh2o/deps/klib/kson.h
index a03eb52f5..a03eb52f5 100644
--- a/web/server/h2o/libh2o/deps/klib/kson.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kson.h
diff --git a/web/server/h2o/libh2o/deps/klib/ksort.h b/src/web/server/h2o/libh2o/deps/klib/ksort.h
index 4da7a13ef..4da7a13ef 100644
--- a/web/server/h2o/libh2o/deps/klib/ksort.h
+++ b/src/web/server/h2o/libh2o/deps/klib/ksort.h
diff --git a/web/server/h2o/libh2o/deps/klib/kstring.c b/src/web/server/h2o/libh2o/deps/klib/kstring.c
index f0293172a..f0293172a 100644
--- a/web/server/h2o/libh2o/deps/klib/kstring.c
+++ b/src/web/server/h2o/libh2o/deps/klib/kstring.c
diff --git a/web/server/h2o/libh2o/deps/klib/kstring.h b/src/web/server/h2o/libh2o/deps/klib/kstring.h
index 0e654cb82..0e654cb82 100644
--- a/web/server/h2o/libh2o/deps/klib/kstring.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kstring.h
diff --git a/web/server/h2o/libh2o/deps/klib/ksw.c b/src/web/server/h2o/libh2o/deps/klib/ksw.c
index 742fec90b..742fec90b 100644
--- a/web/server/h2o/libh2o/deps/klib/ksw.c
+++ b/src/web/server/h2o/libh2o/deps/klib/ksw.c
diff --git a/web/server/h2o/libh2o/deps/klib/ksw.h b/src/web/server/h2o/libh2o/deps/klib/ksw.h
index 5162dc03d..5162dc03d 100644
--- a/web/server/h2o/libh2o/deps/klib/ksw.h
+++ b/src/web/server/h2o/libh2o/deps/klib/ksw.h
diff --git a/web/server/h2o/libh2o/deps/klib/kthread.c b/src/web/server/h2o/libh2o/deps/klib/kthread.c
index 80f84cb35..80f84cb35 100644
--- a/web/server/h2o/libh2o/deps/klib/kthread.c
+++ b/src/web/server/h2o/libh2o/deps/klib/kthread.c
diff --git a/web/server/h2o/libh2o/deps/klib/kurl.c b/src/web/server/h2o/libh2o/deps/klib/kurl.c
index 3bf92901c..3bf92901c 100644
--- a/web/server/h2o/libh2o/deps/klib/kurl.c
+++ b/src/web/server/h2o/libh2o/deps/klib/kurl.c
diff --git a/web/server/h2o/libh2o/deps/klib/kurl.h b/src/web/server/h2o/libh2o/deps/klib/kurl.h
index f07f64118..f07f64118 100644
--- a/web/server/h2o/libh2o/deps/klib/kurl.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kurl.h
diff --git a/web/server/h2o/libh2o/deps/klib/kvec.h b/src/web/server/h2o/libh2o/deps/klib/kvec.h
index 676be8b80..676be8b80 100644
--- a/web/server/h2o/libh2o/deps/klib/kvec.h
+++ b/src/web/server/h2o/libh2o/deps/klib/kvec.h
diff --git a/web/server/h2o/libh2o/deps/klib/lua/bio.lua b/src/web/server/h2o/libh2o/deps/klib/lua/bio.lua
index c9f220059..c9f220059 100644
--- a/web/server/h2o/libh2o/deps/klib/lua/bio.lua
+++ b/src/web/server/h2o/libh2o/deps/klib/lua/bio.lua
diff --git a/web/server/h2o/libh2o/deps/klib/lua/klib.lua b/src/web/server/h2o/libh2o/deps/klib/lua/klib.lua
index bfe52f7f7..bfe52f7f7 100644
--- a/web/server/h2o/libh2o/deps/klib/lua/klib.lua
+++ b/src/web/server/h2o/libh2o/deps/klib/lua/klib.lua
diff --git a/web/server/h2o/libh2o/deps/klib/test/Makefile b/src/web/server/h2o/libh2o/deps/klib/test/Makefile
index a392c8ed4..a392c8ed4 100644
--- a/web/server/h2o/libh2o/deps/klib/test/Makefile
+++ b/src/web/server/h2o/libh2o/deps/klib/test/Makefile
diff --git a/web/server/h2o/libh2o/deps/klib/test/kbit_test.c b/src/web/server/h2o/libh2o/deps/klib/test/kbit_test.c
index 3ae3bd309..3ae3bd309 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kbit_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kbit_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kbtree_test.c b/src/web/server/h2o/libh2o/deps/klib/test/kbtree_test.c
index 8e1068767..8e1068767 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kbtree_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kbtree_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kgraph_test.c b/src/web/server/h2o/libh2o/deps/klib/test/kgraph_test.c
index 3da1cd71b..3da1cd71b 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kgraph_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kgraph_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/khash_keith.c b/src/web/server/h2o/libh2o/deps/klib/test/khash_keith.c
index ddd755ac7..ddd755ac7 100644
--- a/web/server/h2o/libh2o/deps/klib/test/khash_keith.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/khash_keith.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/khash_keith2.c b/src/web/server/h2o/libh2o/deps/klib/test/khash_keith2.c
index b9df9b7c1..b9df9b7c1 100644
--- a/web/server/h2o/libh2o/deps/klib/test/khash_keith2.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/khash_keith2.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/khash_test.c b/src/web/server/h2o/libh2o/deps/klib/test/khash_test.c
index 8d6687ff4..8d6687ff4 100644
--- a/web/server/h2o/libh2o/deps/klib/test/khash_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/khash_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/klist_test.c b/src/web/server/h2o/libh2o/deps/klib/test/klist_test.c
index cd13813df..cd13813df 100644
--- a/web/server/h2o/libh2o/deps/klib/test/klist_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/klist_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kmin_test.c b/src/web/server/h2o/libh2o/deps/klib/test/kmin_test.c
index 33ccd1cbc..33ccd1cbc 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kmin_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kmin_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kseq_bench.c b/src/web/server/h2o/libh2o/deps/klib/test/kseq_bench.c
index eeda13f71..eeda13f71 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kseq_bench.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kseq_bench.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kseq_bench2.c b/src/web/server/h2o/libh2o/deps/klib/test/kseq_bench2.c
index b4154583b..b4154583b 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kseq_bench2.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kseq_bench2.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kseq_test.c b/src/web/server/h2o/libh2o/deps/klib/test/kseq_test.c
index 0304dea35..0304dea35 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kseq_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kseq_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kseq_test.dat b/src/web/server/h2o/libh2o/deps/klib/test/kseq_test.dat
index b774ae289..b774ae289 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kseq_test.dat
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kseq_test.dat
diff --git a/web/server/h2o/libh2o/deps/klib/test/ksort_test.c b/src/web/server/h2o/libh2o/deps/klib/test/ksort_test.c
index 92c7d3d16..92c7d3d16 100644
--- a/web/server/h2o/libh2o/deps/klib/test/ksort_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/ksort_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/ksort_test.cc b/src/web/server/h2o/libh2o/deps/klib/test/ksort_test.cc
index 8950d8064..8950d8064 100644
--- a/web/server/h2o/libh2o/deps/klib/test/ksort_test.cc
+++ b/src/web/server/h2o/libh2o/deps/klib/test/ksort_test.cc
diff --git a/web/server/h2o/libh2o/deps/klib/test/kstring_bench.c b/src/web/server/h2o/libh2o/deps/klib/test/kstring_bench.c
index 82598e88c..82598e88c 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kstring_bench.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kstring_bench.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kstring_bench2.c b/src/web/server/h2o/libh2o/deps/klib/test/kstring_bench2.c
index b7707a8ec..b7707a8ec 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kstring_bench2.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kstring_bench2.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kstring_test.c b/src/web/server/h2o/libh2o/deps/klib/test/kstring_test.c
index 76f9532e7..76f9532e7 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kstring_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kstring_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kthread_test.c b/src/web/server/h2o/libh2o/deps/klib/test/kthread_test.c
index 1b67ed4ea..1b67ed4ea 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kthread_test.c
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kthread_test.c
diff --git a/web/server/h2o/libh2o/deps/klib/test/kvec_test.cc b/src/web/server/h2o/libh2o/deps/klib/test/kvec_test.cc
index 1015574e4..1015574e4 100644
--- a/web/server/h2o/libh2o/deps/klib/test/kvec_test.cc
+++ b/src/web/server/h2o/libh2o/deps/klib/test/kvec_test.cc
diff --git a/web/server/h2o/libh2o/deps/libgkc/gkc.c b/src/web/server/h2o/libh2o/deps/libgkc/gkc.c
index 2d4b61737..2d4b61737 100644
--- a/web/server/h2o/libh2o/deps/libgkc/gkc.c
+++ b/src/web/server/h2o/libh2o/deps/libgkc/gkc.c
diff --git a/web/server/h2o/libh2o/deps/libgkc/gkc.h b/src/web/server/h2o/libh2o/deps/libgkc/gkc.h
index cbf0878f3..cbf0878f3 100644
--- a/web/server/h2o/libh2o/deps/libgkc/gkc.h
+++ b/src/web/server/h2o/libh2o/deps/libgkc/gkc.h
diff --git a/web/server/h2o/libh2o/deps/libgkc/test.c b/src/web/server/h2o/libh2o/deps/libgkc/test.c
index d0cc251bd..d0cc251bd 100644
--- a/web/server/h2o/libh2o/deps/libgkc/test.c
+++ b/src/web/server/h2o/libh2o/deps/libgkc/test.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/.gitignore b/src/web/server/h2o/libh2o/deps/libyrmcds/.gitignore
index 12c3d2512..12c3d2512 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/.gitignore
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/.travis.yml b/src/web/server/h2o/libh2o/deps/libyrmcds/.travis.yml
index a1fa4fac6..a1fa4fac6 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/COPYING b/src/web/server/h2o/libh2o/deps/libyrmcds/COPYING
index c3869aaae..c3869aaae 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/COPYING
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/COPYING
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/Doxyfile b/src/web/server/h2o/libh2o/deps/libyrmcds/Doxyfile
index 4c8617ccf..4c8617ccf 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/Doxyfile
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/Doxyfile
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/Makefile b/src/web/server/h2o/libh2o/deps/libyrmcds/Makefile
index d8614c047..d8614c047 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/Makefile
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/Makefile
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/README.md b/src/web/server/h2o/libh2o/deps/libyrmcds/README.md
index c6683fdfa..c6683fdfa 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/README.md
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/README.md
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/USAGE.md b/src/web/server/h2o/libh2o/deps/libyrmcds/USAGE.md
index 408711937..408711937 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/USAGE.md
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/USAGE.md
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/close.c b/src/web/server/h2o/libh2o/deps/libyrmcds/close.c
index d19ae7659..d19ae7659 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/close.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/close.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/connect.c b/src/web/server/h2o/libh2o/deps/libyrmcds/connect.c
index 8ddf770c6..8ddf770c6 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/connect.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/connect.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/counter.c b/src/web/server/h2o/libh2o/deps/libyrmcds/counter.c
index 748a23108..748a23108 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/counter.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/counter.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/example/counter.c b/src/web/server/h2o/libh2o/deps/libyrmcds/example/counter.c
index f08a1b128..f08a1b128 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/example/counter.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/example/counter.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/example/memcache.c b/src/web/server/h2o/libh2o/deps/libyrmcds/example/memcache.c
index eb8792867..eb8792867 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/example/memcache.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/example/memcache.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/recv.c b/src/web/server/h2o/libh2o/deps/libyrmcds/recv.c
index fe6cf94bc..fe6cf94bc 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/recv.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/recv.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/send.c b/src/web/server/h2o/libh2o/deps/libyrmcds/send.c
index b1eb48f7a..b1eb48f7a 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/send.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/send.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/send_text.c b/src/web/server/h2o/libh2o/deps/libyrmcds/send_text.c
index b84fdce0d..b84fdce0d 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/send_text.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/send_text.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/set_compression.c b/src/web/server/h2o/libh2o/deps/libyrmcds/set_compression.c
index f3d393707..f3d393707 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/set_compression.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/set_compression.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/socket.c b/src/web/server/h2o/libh2o/deps/libyrmcds/socket.c
index 6d30ee16c..6d30ee16c 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/socket.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/socket.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/strerror.c b/src/web/server/h2o/libh2o/deps/libyrmcds/strerror.c
index e9359b596..e9359b596 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/strerror.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/strerror.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/t/t.h b/src/web/server/h2o/libh2o/deps/libyrmcds/t/t.h
index fd79d59cd..fd79d59cd 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/t/t.h
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/t/t.h
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/t/text.c b/src/web/server/h2o/libh2o/deps/libyrmcds/t/text.c
index 9419cb410..9419cb410 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/t/text.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/t/text.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/text_mode.c b/src/web/server/h2o/libh2o/deps/libyrmcds/text_mode.c
index 77f950863..77f950863 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/text_mode.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/text_mode.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/yc-cnt.c b/src/web/server/h2o/libh2o/deps/libyrmcds/yc-cnt.c
index f25178c2b..f25178c2b 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/yc-cnt.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/yc-cnt.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/yc.c b/src/web/server/h2o/libh2o/deps/libyrmcds/yc.c
index 78d3df45d..78d3df45d 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/yc.c
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/yc.c
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/yrmcds.h b/src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds.h
index 758f1bdc9..758f1bdc9 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/yrmcds.h
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds.h
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_portability.h b/src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_portability.h
index c9fd4d91a..c9fd4d91a 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_portability.h
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_portability.h
diff --git a/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_text.h b/src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_text.h
index d1cb69aa2..d1cb69aa2 100644
--- a/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_text.h
+++ b/src/web/server/h2o/libh2o/deps/libyrmcds/yrmcds_text.h
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-digest/.gitignore
index 55ef3162f..55ef3162f 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-digest/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/Makefile b/src/web/server/h2o/libh2o/deps/mruby-digest/Makefile
index 21f8afe00..21f8afe00 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/Makefile
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/Makefile
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/README.md b/src/web/server/h2o/libh2o/deps/mruby-digest/README.md
index 2ae6552c8..2ae6552c8 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-digest/mrbgem.rake
index 9324f169b..9324f169b 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb b/src/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb
index 7779f54b9..7779f54b9 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-digest/run_test.rb
index 3401ed86c..3401ed86c 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/src/digest.c b/src/web/server/h2o/libh2o/deps/mruby-digest/src/digest.c
index 634376d96..634376d96 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/src/digest.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/src/digest.c
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/src/picohash.h b/src/web/server/h2o/libh2o/deps/mruby-digest/src/picohash.h
index 4c0206d95..4c0206d95 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/src/picohash.h
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/src/picohash.h
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/test/digest.rb b/src/web/server/h2o/libh2o/deps/mruby-digest/test/digest.rb
index fd13fa43a..fd13fa43a 100644
--- a/web/server/h2o/libh2o/deps/mruby-digest/test/digest.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-digest/test/digest.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-dir/.gitignore
index 55ef3162f..55ef3162f 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-dir/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/README.md b/src/web/server/h2o/libh2o/deps/mruby-dir/README.md
index d7953036d..d7953036d 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-dir/mrbgem.rake
index 10864c81c..10864c81c 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/mrblib/dir.rb b/src/web/server/h2o/libh2o/deps/mruby-dir/mrblib/dir.rb
index 065ca1c22..065ca1c22 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/mrblib/dir.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/mrblib/dir.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-dir/run_test.rb
index d9566a2a6..d9566a2a6 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/src/Win/dirent.c b/src/web/server/h2o/libh2o/deps/mruby-dir/src/Win/dirent.c
index 98728bcf7..98728bcf7 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/src/Win/dirent.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/src/Win/dirent.c
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/src/dir.c b/src/web/server/h2o/libh2o/deps/mruby-dir/src/dir.c
index 0f55ed93d..0f55ed93d 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/src/dir.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/src/dir.c
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/test/dir.rb b/src/web/server/h2o/libh2o/deps/mruby-dir/test/dir.rb
index cb1f1e31b..cb1f1e31b 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/test/dir.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/test/dir.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-dir/test/dirtest.c b/src/web/server/h2o/libh2o/deps/mruby-dir/test/dirtest.c
index 070f23a82..070f23a82 100644
--- a/web/server/h2o/libh2o/deps/mruby-dir/test/dirtest.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-dir/test/dirtest.c
diff --git a/web/server/h2o/libh2o/deps/mruby-env/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-env/.gitignore
index ceeb05b41..ceeb05b41 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-env/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-env/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-env/README.md b/src/web/server/h2o/libh2o/deps/mruby-env/README.md
index b6db22484..b6db22484 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-env/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-env/mrbgem.rake
index 03249be28..03249be28 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-env/mrblib/env.rb b/src/web/server/h2o/libh2o/deps/mruby-env/mrblib/env.rb
index 67f9811a1..67f9811a1 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/mrblib/env.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/mrblib/env.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-env/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-env/run_test.rb
index eefc91434..eefc91434 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-env/src/env.c b/src/web/server/h2o/libh2o/deps/mruby-env/src/env.c
index 0395e1bc1..0395e1bc1 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/src/env.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/src/env.c
diff --git a/web/server/h2o/libh2o/deps/mruby-env/test/env_test.rb b/src/web/server/h2o/libh2o/deps/mruby-env/test/env_test.rb
index 2aa3dab2c..2aa3dab2c 100644
--- a/web/server/h2o/libh2o/deps/mruby-env/test/env_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-env/test/env_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-errno/.gitignore
index ceeb05b41..ceeb05b41 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-errno/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/README.md b/src/web/server/h2o/libh2o/deps/mruby-errno/README.md
index e3c594cb5..e3c594cb5 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-errno/mrbgem.rake
index ba3d60dae..ba3d60dae 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-errno/run_test.rb
index d9566a2a6..d9566a2a6 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/src/errno.c b/src/web/server/h2o/libh2o/deps/mruby-errno/src/errno.c
index 3617efd45..3617efd45 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/src/errno.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/src/errno.c
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/src/gen.rb b/src/web/server/h2o/libh2o/deps/mruby-errno/src/gen.rb
index 12e6b302e..12e6b302e 100755
--- a/web/server/h2o/libh2o/deps/mruby-errno/src/gen.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/src/gen.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors.def b/src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors.def
index 3cebe90a8..3cebe90a8 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors.def
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors.def
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_def.cstub b/src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_def.cstub
index 83d8670ba..83d8670ba 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_def.cstub
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_def.cstub
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_e2c.cstub b/src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_e2c.cstub
index f203c3362..f203c3362 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_e2c.cstub
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/src/known_errors_e2c.cstub
diff --git a/web/server/h2o/libh2o/deps/mruby-errno/test/errno.rb b/src/web/server/h2o/libh2o/deps/mruby-errno/test/errno.rb
index 790311566..790311566 100644
--- a/web/server/h2o/libh2o/deps/mruby-errno/test/errno.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-errno/test/errno.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-file-stat/.gitignore
index 415be3546..415be3546 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-file-stat/.travis.yml
index e630dcb18..e630dcb18 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/.travis_build_config.rb b/src/web/server/h2o/libh2o/deps/mruby-file-stat/.travis_build_config.rb
index 623303eb4..623303eb4 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/.travis_build_config.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/.travis_build_config.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/README.md b/src/web/server/h2o/libh2o/deps/mruby-file-stat/README.md
index ebf7cec37..ebf7cec37 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/appveyor.yml b/src/web/server/h2o/libh2o/deps/mruby-file-stat/appveyor.yml
index f47afa996..f47afa996 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/appveyor.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/appveyor.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/config.h.in b/src/web/server/h2o/libh2o/deps/mruby-file-stat/config.h.in
index 27cc7e6fa..27cc7e6fa 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/config.h.in
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/config.h.in
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/configure b/src/web/server/h2o/libh2o/deps/mruby-file-stat/configure
index 517c66c49..517c66c49 100755
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/configure
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/configure
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/configure.ac b/src/web/server/h2o/libh2o/deps/mruby-file-stat/configure.ac
index ce6be3fad..ce6be3fad 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/configure.ac
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/configure.ac
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-file-stat/mrbgem.rake
index ff7d076b8..ff7d076b8 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/ext.rb b/src/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/ext.rb
index 1fda18697..1fda18697 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/ext.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/ext.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/file-stat.rb b/src/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/file-stat.rb
index 23ded179e..23ded179e 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/file-stat.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/mrblib/file-stat.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/src/file-stat.c b/src/web/server/h2o/libh2o/deps/mruby-file-stat/src/file-stat.c
index f36ed197f..f36ed197f 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/src/file-stat.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/src/file-stat.c
diff --git a/web/server/h2o/libh2o/deps/mruby/bin/.gitkeep b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/executable
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/deps/mruby/bin/.gitkeep
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/executable
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.c b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.c
index 4e596648d..4e596648d 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.c
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.rb b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.rb
index 63906d015..63906d015 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/file-stat.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-file-stat/test/io.rb b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/io.rb
index 47e63089a..47e63089a 100644
--- a/web/server/h2o/libh2o/deps/mruby-file-stat/test/io.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/io.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/src/ext/.gitkeep b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/readable
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/ext/.gitkeep
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/readable
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/searchbox.html b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/writable
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/searchbox.html
+++ b/src/web/server/h2o/libh2o/deps/mruby-file-stat/test/writable
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-iijson/.gitignore
index ceeb05b41..ceeb05b41 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-iijson/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/README.md b/src/web/server/h2o/libh2o/deps/mruby-iijson/README.md
index bbbfeba6d..bbbfeba6d 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-iijson/mrbgem.rake
index fef1c3dd8..fef1c3dd8 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/json.rb b/src/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/json.rb
index 87b5a6bda..87b5a6bda 100755
--- a/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/json.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/json.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/to_json.rb b/src/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/to_json.rb
index ee97ac2c6..ee97ac2c6 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/to_json.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/mrblib/to_json.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-iijson/run_test.rb
index dece5070a..dece5070a 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/src/json.c b/src/web/server/h2o/libh2o/deps/mruby-iijson/src/json.c
index 6836e0907..6836e0907 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/src/json.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/src/json.c
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/test/json.rb b/src/web/server/h2o/libh2o/deps/mruby-iijson/test/json.rb
index 5b1e759c8..5b1e759c8 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/test/json.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/test/json.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-iijson/test/testjson.c b/src/web/server/h2o/libh2o/deps/mruby-iijson/test/testjson.c
index f254e8bb9..f254e8bb9 100644
--- a/web/server/h2o/libh2o/deps/mruby-iijson/test/testjson.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-iijson/test/testjson.c
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-input-stream/.travis.yml
index fc81cadad..fc81cadad 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/LICENSE b/src/web/server/h2o/libh2o/deps/mruby-input-stream/LICENSE
index 6e817bb59..6e817bb59 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/LICENSE
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/LICENSE
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/README.md b/src/web/server/h2o/libh2o/deps/mruby-input-stream/README.md
index a9efe87fa..a9efe87fa 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/Rakefile b/src/web/server/h2o/libh2o/deps/mruby-input-stream/Rakefile
index 0c0c78ea1..0c0c78ea1 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/Rakefile
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/Rakefile
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/build_config_sample.rb b/src/web/server/h2o/libh2o/deps/mruby-input-stream/build_config_sample.rb
index 9d2321d9c..9d2321d9c 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/build_config_sample.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/build_config_sample.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-input-stream/mrbgem.rake
index 082a128aa..082a128aa 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/mrblib/input_stream.rb b/src/web/server/h2o/libh2o/deps/mruby-input-stream/mrblib/input_stream.rb
index d452f7ff1..d452f7ff1 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/mrblib/input_stream.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/mrblib/input_stream.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.c b/src/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.c
index a5f90b981..a5f90b981 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.c
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.h b/src/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.h
index 39150ad6d..39150ad6d 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.h
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/src/mruby_input_stream.h
diff --git a/web/server/h2o/libh2o/deps/mruby-input-stream/test/input_stream.rb b/src/web/server/h2o/libh2o/deps/mruby-input-stream/test/input_stream.rb
index 8201786b1..8201786b1 100644
--- a/web/server/h2o/libh2o/deps/mruby-input-stream/test/input_stream.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-input-stream/test/input_stream.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-io/.gitignore
index ceeb05b41..ceeb05b41 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-io/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-io/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-io/README.md b/src/web/server/h2o/libh2o/deps/mruby-io/README.md
index d7fa6945b..d7fa6945b 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-io/include/mruby/ext/io.h b/src/web/server/h2o/libh2o/deps/mruby-io/include/mruby/ext/io.h
index 3107f1053..3107f1053 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/include/mruby/ext/io.h
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/include/mruby/ext/io.h
diff --git a/web/server/h2o/libh2o/deps/mruby-io/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-io/mrbgem.rake
index 8120f7832..8120f7832 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-io/mrblib/file.rb b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/file.rb
index aa0981930..aa0981930 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/mrblib/file.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/file.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/mrblib/file_constants.rb b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/file_constants.rb
index a68ee2598..a68ee2598 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/mrblib/file_constants.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/file_constants.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/mrblib/io.rb b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/io.rb
index c838b96e5..c838b96e5 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/mrblib/io.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/io.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/mrblib/kernel.rb b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/kernel.rb
index 484b50160..484b50160 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/mrblib/kernel.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/mrblib/kernel.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-io/run_test.rb
index 444d18fda..444d18fda 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/src/file.c b/src/web/server/h2o/libh2o/deps/mruby-io/src/file.c
index feb8558ed..feb8558ed 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/src/file.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/src/file.c
diff --git a/web/server/h2o/libh2o/deps/mruby-io/src/file_test.c b/src/web/server/h2o/libh2o/deps/mruby-io/src/file_test.c
index 6c380c4a5..6c380c4a5 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/src/file_test.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/src/file_test.c
diff --git a/web/server/h2o/libh2o/deps/mruby-io/src/io.c b/src/web/server/h2o/libh2o/deps/mruby-io/src/io.c
index 1d2f98f3c..1d2f98f3c 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/src/io.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/src/io.c
diff --git a/web/server/h2o/libh2o/deps/mruby-io/src/mruby_io_gem.c b/src/web/server/h2o/libh2o/deps/mruby-io/src/mruby_io_gem.c
index 6880e6678..6880e6678 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/src/mruby_io_gem.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/src/mruby_io_gem.c
diff --git a/web/server/h2o/libh2o/deps/mruby-io/test/file.rb b/src/web/server/h2o/libh2o/deps/mruby-io/test/file.rb
index d6f39ceb1..d6f39ceb1 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/test/file.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/test/file.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/test/file_test.rb b/src/web/server/h2o/libh2o/deps/mruby-io/test/file_test.rb
index 11742f2db..11742f2db 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/test/file_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/test/file_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/test/gc_filedes.sh b/src/web/server/h2o/libh2o/deps/mruby-io/test/gc_filedes.sh
index 6e5d1bbf1..6e5d1bbf1 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/test/gc_filedes.sh
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/test/gc_filedes.sh
diff --git a/web/server/h2o/libh2o/deps/mruby-io/test/io.rb b/src/web/server/h2o/libh2o/deps/mruby-io/test/io.rb
index b828fef49..b828fef49 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/test/io.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/test/io.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-io/test/mruby_io_test.c b/src/web/server/h2o/libh2o/deps/mruby-io/test/mruby_io_test.c
index f58f9ff8c..f58f9ff8c 100644
--- a/web/server/h2o/libh2o/deps/mruby-io/test/mruby_io_test.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-io/test/mruby_io_test.c
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis.yml
index 5a0d1ddf1..5a0d1ddf1 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis_config.rb b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis_config.rb
index 769446c4c..769446c4c 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis_config.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/.travis_config.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/Onigmo-6.1.1.tar.gz b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/Onigmo-6.1.1.tar.gz
index 139226584..139226584 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/Onigmo-6.1.1.tar.gz
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/Onigmo-6.1.1.tar.gz
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/README.md b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/README.md
index 41eada48f..41eada48f 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrbgem.rake
index 679986703..679986703 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrblib/onig_regexp.rb b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrblib/onig_regexp.rb
index 2dc8d55e0..2dc8d55e0 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrblib/onig_regexp.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/mrblib/onig_regexp.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
index 38d93ccb9..38d93ccb9 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
diff --git a/web/server/h2o/libh2o/deps/mruby-onig-regexp/test/mruby_onig_regexp.rb b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/test/mruby_onig_regexp.rb
index e70b06fd8..e70b06fd8 100644
--- a/web/server/h2o/libh2o/deps/mruby-onig-regexp/test/mruby_onig_regexp.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-onig-regexp/test/mruby_onig_regexp.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-pack/.gitignore
index 55ef3162f..55ef3162f 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-pack/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/README.md b/src/web/server/h2o/libh2o/deps/mruby-pack/README.md
index 91addce80..91addce80 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-pack/mrbgem.rake
index 2b9dea5b1..2b9dea5b1 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/packtest.rb b/src/web/server/h2o/libh2o/deps/mruby-pack/packtest.rb
index e8be7c76c..e8be7c76c 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/packtest.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/packtest.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-pack/run_test.rb
index d9566a2a6..d9566a2a6 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/src/pack.c b/src/web/server/h2o/libh2o/deps/mruby-pack/src/pack.c
index 9095ad03b..9095ad03b 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/src/pack.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/src/pack.c
diff --git a/web/server/h2o/libh2o/deps/mruby-pack/test/pack.rb b/src/web/server/h2o/libh2o/deps/mruby-pack/test/pack.rb
index 5e9932f4f..5e9932f4f 100644
--- a/web/server/h2o/libh2o/deps/mruby-pack/test/pack.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-pack/test/pack.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/.gitignore b/src/web/server/h2o/libh2o/deps/mruby-require/.gitignore
index ceeb05b41..ceeb05b41 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby-require/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby-require/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby-require/README.md b/src/web/server/h2o/libh2o/deps/mruby-require/README.md
index 70818ffba..70818ffba 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby-require/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby-require/mrbgem.rake
index e95cdb8ca..e95cdb8ca 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby-require/mrblib/require.rb b/src/web/server/h2o/libh2o/deps/mruby-require/mrblib/require.rb
index cdf25ace3..cdf25ace3 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/mrblib/require.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/mrblib/require.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/run_test.rb b/src/web/server/h2o/libh2o/deps/mruby-require/run_test.rb
index 2a99a9ddf..2a99a9ddf 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/run_test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/run_test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/src/require.c b/src/web/server/h2o/libh2o/deps/mruby-require/src/require.c
index 0f48c0378..0f48c0378 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/src/require.c
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/src/require.c
diff --git a/web/server/h2o/libh2o/deps/mruby-require/test/d/required.rb b/src/web/server/h2o/libh2o/deps/mruby-require/test/d/required.rb
index d6218cd03..d6218cd03 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/test/d/required.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/test/d/required.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/test/require.rb b/src/web/server/h2o/libh2o/deps/mruby-require/test/require.rb
index 95e1ef022..95e1ef022 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/test/require.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/test/require.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/test/test.rb b/src/web/server/h2o/libh2o/deps/mruby-require/test/test.rb
index 0886cabef..0886cabef 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/test/test.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/test/test.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/test/test2.rb b/src/web/server/h2o/libh2o/deps/mruby-require/test/test2.rb
index b66b9fdf3..b66b9fdf3 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/test/test2.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/test/test2.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/test/test_context.rb b/src/web/server/h2o/libh2o/deps/mruby-require/test/test_context.rb
index 001174748..001174748 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/test/test_context.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/test/test_context.rb
diff --git a/web/server/h2o/libh2o/deps/mruby-require/test/test_nest_loop.rb b/src/web/server/h2o/libh2o/deps/mruby-require/test/test_nest_loop.rb
index c5a4b18b0..c5a4b18b0 100644
--- a/web/server/h2o/libh2o/deps/mruby-require/test/test_nest_loop.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby-require/test/test_nest_loop.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/.gitignore b/src/web/server/h2o/libh2o/deps/mruby/.gitignore
index 4af3005ed..4af3005ed 100644
--- a/web/server/h2o/libh2o/deps/mruby/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/mruby/.gitignore
diff --git a/web/server/h2o/libh2o/deps/mruby/.gitlab-ci.yml b/src/web/server/h2o/libh2o/deps/mruby/.gitlab-ci.yml
index 8f4179232..8f4179232 100644
--- a/web/server/h2o/libh2o/deps/mruby/.gitlab-ci.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby/.gitlab-ci.yml
diff --git a/web/server/h2o/libh2o/deps/mruby/.travis.yml b/src/web/server/h2o/libh2o/deps/mruby/.travis.yml
index 8d201515c..8d201515c 100644
--- a/web/server/h2o/libh2o/deps/mruby/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/mruby/.yardopts b/src/web/server/h2o/libh2o/deps/mruby/.yardopts
index 27f6d59a1..27f6d59a1 100644
--- a/web/server/h2o/libh2o/deps/mruby/.yardopts
+++ b/src/web/server/h2o/libh2o/deps/mruby/.yardopts
diff --git a/web/server/h2o/libh2o/deps/mruby/AUTHORS b/src/web/server/h2o/libh2o/deps/mruby/AUTHORS
index a918ecdaa..a918ecdaa 100644
--- a/web/server/h2o/libh2o/deps/mruby/AUTHORS
+++ b/src/web/server/h2o/libh2o/deps/mruby/AUTHORS
diff --git a/web/server/h2o/libh2o/deps/mruby/CONTRIBUTING.md b/src/web/server/h2o/libh2o/deps/mruby/CONTRIBUTING.md
index 6bababb89..6bababb89 100644
--- a/web/server/h2o/libh2o/deps/mruby/CONTRIBUTING.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/CONTRIBUTING.md
diff --git a/web/server/h2o/libh2o/deps/mruby/LEGAL b/src/web/server/h2o/libh2o/deps/mruby/LEGAL
index 84929998c..84929998c 100644
--- a/web/server/h2o/libh2o/deps/mruby/LEGAL
+++ b/src/web/server/h2o/libh2o/deps/mruby/LEGAL
diff --git a/web/server/h2o/libh2o/deps/mruby/MITL b/src/web/server/h2o/libh2o/deps/mruby/MITL
index d02b8fe1c..d02b8fe1c 100644
--- a/web/server/h2o/libh2o/deps/mruby/MITL
+++ b/src/web/server/h2o/libh2o/deps/mruby/MITL
diff --git a/web/server/h2o/libh2o/deps/mruby/Makefile b/src/web/server/h2o/libh2o/deps/mruby/Makefile
index 4912f17e1..4912f17e1 100644
--- a/web/server/h2o/libh2o/deps/mruby/Makefile
+++ b/src/web/server/h2o/libh2o/deps/mruby/Makefile
diff --git a/web/server/h2o/libh2o/deps/mruby/NEWS b/src/web/server/h2o/libh2o/deps/mruby/NEWS
index 5c2523826..5c2523826 100644
--- a/web/server/h2o/libh2o/deps/mruby/NEWS
+++ b/src/web/server/h2o/libh2o/deps/mruby/NEWS
diff --git a/web/server/h2o/libh2o/deps/mruby/README.md b/src/web/server/h2o/libh2o/deps/mruby/README.md
index 9d0c611b2..9d0c611b2 100644
--- a/web/server/h2o/libh2o/deps/mruby/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby/Rakefile b/src/web/server/h2o/libh2o/deps/mruby/Rakefile
index 2f6fa056f..2f6fa056f 100644
--- a/web/server/h2o/libh2o/deps/mruby/Rakefile
+++ b/src/web/server/h2o/libh2o/deps/mruby/Rakefile
diff --git a/web/server/h2o/libh2o/deps/mruby/TODO b/src/web/server/h2o/libh2o/deps/mruby/TODO
index 3e195f99b..3e195f99b 100644
--- a/web/server/h2o/libh2o/deps/mruby/TODO
+++ b/src/web/server/h2o/libh2o/deps/mruby/TODO
diff --git a/web/server/h2o/libh2o/deps/mruby/appveyor.yml b/src/web/server/h2o/libh2o/deps/mruby/appveyor.yml
index c62b13573..c62b13573 100644
--- a/web/server/h2o/libh2o/deps/mruby/appveyor.yml
+++ b/src/web/server/h2o/libh2o/deps/mruby/appveyor.yml
diff --git a/web/server/h2o/libh2o/deps/mruby/appveyor_config.rb b/src/web/server/h2o/libh2o/deps/mruby/appveyor_config.rb
index 57e103307..57e103307 100644
--- a/web/server/h2o/libh2o/deps/mruby/appveyor_config.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/appveyor_config.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_ao_render.rb b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_ao_render.rb
index 8212c3a13..8212c3a13 100644
--- a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_ao_render.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_ao_render.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_app_lc_fizzbuzz.rb b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_app_lc_fizzbuzz.rb
index 26283cc3f..26283cc3f 100644
--- a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_app_lc_fizzbuzz.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_app_lc_fizzbuzz.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_fib.rb b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_fib.rb
index 4b395f9cc..4b395f9cc 100644
--- a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_fib.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_fib.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_so_lists.rb b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_so_lists.rb
index e8f4a2a5f..e8f4a2a5f 100644
--- a/web/server/h2o/libh2o/deps/mruby/benchmark/bm_so_lists.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/benchmark/bm_so_lists.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_boxing.rb b/src/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_boxing.rb
index b478c9005..b478c9005 100644
--- a/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_boxing.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_boxing.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_cc.rb b/src/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_cc.rb
index 56d725bc7..56d725bc7 100644
--- a/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_cc.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/benchmark/build_config_cc.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/benchmark/plot.gpl b/src/web/server/h2o/libh2o/deps/mruby/benchmark/plot.gpl
index 725e2ec1c..725e2ec1c 100644
--- a/web/server/h2o/libh2o/deps/mruby/benchmark/plot.gpl
+++ b/src/web/server/h2o/libh2o/deps/mruby/benchmark/plot.gpl
diff --git a/web/server/h2o/libh2o/misc/test-ca/demoCA/newcerts/.gitkeep b/src/web/server/h2o/libh2o/deps/mruby/bin/.gitkeep
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/misc/test-ca/demoCA/newcerts/.gitkeep
+++ b/src/web/server/h2o/libh2o/deps/mruby/bin/.gitkeep
diff --git a/web/server/h2o/libh2o/deps/mruby/build_config.rb b/src/web/server/h2o/libh2o/deps/mruby/build_config.rb
index 8293092ab..8293092ab 100644
--- a/web/server/h2o/libh2o/deps/mruby/build_config.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/build_config.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/doc/guides/compile.md b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/compile.md
index 2aaf6f1fe..2aaf6f1fe 100644
--- a/web/server/h2o/libh2o/deps/mruby/doc/guides/compile.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/compile.md
diff --git a/web/server/h2o/libh2o/deps/mruby/doc/guides/debugger.md b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/debugger.md
index 72f2c2b32..72f2c2b32 100644
--- a/web/server/h2o/libh2o/deps/mruby/doc/guides/debugger.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/debugger.md
diff --git a/web/server/h2o/libh2o/deps/mruby/doc/guides/gc-arena-howto.md b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/gc-arena-howto.md
index aff7360e9..aff7360e9 100644
--- a/web/server/h2o/libh2o/deps/mruby/doc/guides/gc-arena-howto.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/gc-arena-howto.md
diff --git a/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbconf.md b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbconf.md
index f957f8ce2..f957f8ce2 100644
--- a/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbconf.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbconf.md
diff --git a/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbgems.md b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbgems.md
index 258f405b5..258f405b5 100644
--- a/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbgems.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/doc/guides/mrbgems.md
diff --git a/web/server/h2o/libh2o/deps/mruby/doc/limitations.md b/src/web/server/h2o/libh2o/deps/mruby/doc/limitations.md
index db8db9a5c..db8db9a5c 100644
--- a/web/server/h2o/libh2o/deps/mruby/doc/limitations.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/doc/limitations.md
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md
index 0b428b0b6..0b428b0b6 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake
index 6b4595b35..6b4595b35 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb
index d3899c301..d3899c301 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
index 7b780d016..7b780d016 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb
index fffad710f..fffad710f 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/README.md b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/README.md
index 3803c2065..3803c2065 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/mrbgem.rake
index 6e4c5b165..6e4c5b165 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c
index e70ee42f8..e70ee42f8 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c
index ab410333d..ab410333d 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.rb
index 367d18029..367d18029 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/README.md b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/README.md
index 906a0d8f2..906a0d8f2 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake
index 6e5a5b729..6e5a5b729 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb
index b07a2b580..b07a2b580 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/test/example.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/test/example.rb
index 0c1b63469..0c1b63469 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/test/example.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/mrbgems/ruby_extension_example/test/example.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_ArduinoDue.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_ArduinoDue.rb
index 527aaa4f6..527aaa4f6 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_ArduinoDue.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_ArduinoDue.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelEdison.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelEdison.rb
index 8fa3aa0c0..8fa3aa0c0 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelEdison.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelEdison.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelGalileo.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelGalileo.rb
index 42f800d9f..42f800d9f 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelGalileo.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_IntelGalileo.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_RX630.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_RX630.rb
index fd17eae99..fd17eae99 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_RX630.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_RX630.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_arm64-v8a.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_arm64-v8a.rb
index 6188c13ec..6188c13ec 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_arm64-v8a.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_arm64-v8a.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi.rb
index b7eb33a92..b7eb33a92 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi_v7a_neon_hard.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi_v7a_neon_hard.rb
index 3788bba7f..3788bba7f 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi_v7a_neon_hard.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_android_armeabi_v7a_neon_hard.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_chipKITMax32.rb b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_chipKITMax32.rb
index 951f71483..951f71483 100644
--- a/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_chipKITMax32.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/examples/targets/build_config_chipKITMax32.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mrbconf.h b/src/web/server/h2o/libh2o/deps/mruby/include/mrbconf.h
index b8d603e1c..b8d603e1c 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mrbconf.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mrbconf.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby.h
index ced9c104d..ced9c104d 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/array.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/array.h
index 542715554..542715554 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/array.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/array.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_nan.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_nan.h
index 700ea2ed3..700ea2ed3 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_nan.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_nan.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_no.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_no.h
index 7ee44a934..7ee44a934 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_no.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_no.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_word.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_word.h
index d1c457fae..d1c457fae 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_word.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/boxing_word.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/class.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/class.h
index c0317b458..c0317b458 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/class.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/class.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/common.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/common.h
index d6ec78b0d..d6ec78b0d 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/common.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/common.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/compile.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/compile.h
index d1ff0530f..d1ff0530f 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/compile.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/compile.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/data.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/data.h
index 590470528..590470528 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/data.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/data.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h
index d1de34882..d1de34882 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/dump.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/dump.h
index f56d66a32..f56d66a32 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/dump.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/dump.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/error.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/error.h
index 0a262550e..0a262550e 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/error.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/error.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/gc.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/gc.h
index ce214aa56..ce214aa56 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/gc.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/gc.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/hash.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/hash.h
index 1a870785a..1a870785a 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/hash.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/hash.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/irep.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/irep.h
index 2717b09c3..2717b09c3 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/irep.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/irep.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/istruct.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/istruct.h
index 4d2393ccd..4d2393ccd 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/istruct.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/istruct.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/khash.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/khash.h
index 9c40c6b80..9c40c6b80 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/khash.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/khash.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/numeric.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/numeric.h
index 40c8c4a20..40c8c4a20 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/numeric.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/numeric.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/object.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/object.h
index 9347981d4..9347981d4 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/object.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/object.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/opcode.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/opcode.h
index 9a5116275..9a5116275 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/opcode.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/opcode.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/proc.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/proc.h
index 9c2666289..9c2666289 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/proc.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/proc.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/range.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/range.h
index b166e586b..b166e586b 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/range.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/range.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/re.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/re.h
index 1d09d06c9..1d09d06c9 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/re.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/re.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/string.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/string.h
index df6fb25c3..df6fb25c3 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/string.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/string.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/throw.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/throw.h
index 5d3d214e7..5d3d214e7 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/throw.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/throw.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/value.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/value.h
index 98c68d657..98c68d657 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/value.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/value.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/variable.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/variable.h
index 5fef83faf..5fef83faf 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/variable.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/variable.h
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/version.h b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/version.h
index 8414bf204..8414bf204 100644
--- a/web/server/h2o/libh2o/deps/mruby/include/mruby/version.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/include/mruby/version.h
diff --git a/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb
index 4c6d3ca76..4c6d3ca76 100644
--- a/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/lib/mruby/build.rb b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build.rb
index 7d6aa49e1..7d6aa49e1 100644
--- a/web/server/h2o/libh2o/deps/mruby/lib/mruby/build.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/command.rb b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/command.rb
index 694b4a24c..694b4a24c 100644
--- a/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/command.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/command.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/load_gems.rb b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/load_gems.rb
index b48df6510..b48df6510 100644
--- a/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/load_gems.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/build/load_gems.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/lib/mruby/gem.rb b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/gem.rb
index 27a1d358c..27a1d358c 100644
--- a/web/server/h2o/libh2o/deps/mruby/lib/mruby/gem.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/gem.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/lib/mruby/source.rb b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/source.rb
index 5819a322b..5819a322b 100644
--- a/web/server/h2o/libh2o/deps/mruby/lib/mruby/source.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/lib/mruby/source.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/minirake b/src/web/server/h2o/libh2o/deps/mruby/minirake
index 542c37a79..542c37a79 100755
--- a/web/server/h2o/libh2o/deps/mruby/minirake
+++ b/src/web/server/h2o/libh2o/deps/mruby/minirake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/default.gembox b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/default.gembox
index 64f05de10..64f05de10 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/default.gembox
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/default.gembox
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/full-core.gembox b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/full-core.gembox
index 9a5b7081b..9a5b7081b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/full-core.gembox
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/full-core.gembox
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrbgem.rake
index 882caf1ab..882caf1ab 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrblib/array.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrblib/array.rb
index e28e5238d..e28e5238d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrblib/array.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/mrblib/array.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
index e99599b09..e99599b09 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/test/array.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/test/array.rb
index c0db1b1cc..c0db1b1cc 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/test/array.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-array-ext/test/array.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb
index 26f3138aa..26f3138aa 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb
index 1bc96c478..1bc96c478 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake
index 764f431af..764f431af 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
index dead4b2a8..dead4b2a8 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h
index 08f1d8080..08f1d8080 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
index 8aaa30bcd..8aaa30bcd 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h
index 6c4107885..6c4107885 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
index a9c895b55..a9c895b55 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h
index e256f6262..e256f6262 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
index 8e5901754..8e5901754 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
index 5984b623b..5984b623b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
index cca636711..cca636711 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
index cb4c738fc..cb4c738fc 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
index d12dcd5da..d12dcd5da 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
index 5ac12c1cd..5ac12c1cd 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h
index f17f9c57d..f17f9c57d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
index c7812b0d6..c7812b0d6 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb
index ed53321bd..ed53321bd 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake
index a74871d81..a74871d81 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
index fe311d830..fe311d830 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake
index e710b5a49..e710b5a49 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
index 580c2e25b..580c2e25b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake
index 66d6ef80b..66d6ef80b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config
index 57346c03f..57346c03f 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat
index a1f7bfdd1..a1f7bfdd1 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb
index b6b090185..b6b090185 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake
index fbec13847..fbec13847 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
index 61d4cde94..61d4cde94 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb
index bb664a2b1..bb664a2b1 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/mrbgem.rake
index 2abd25eea..2abd25eea 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
index deb66d54c..deb66d54c 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/mrbgem.rake
index a384b1eef..a384b1eef 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
index 5506c4829..5506c4829 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/test/module.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/test/module.rb
index 65abde108..65abde108 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/test/module.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-class-ext/test/module.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/bintest/mrbc.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/bintest/mrbc.rb
index f4d9208b3..f4d9208b3 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/bintest/mrbc.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/bintest/mrbc.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
index 8f15a9b18..8f15a9b18 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/keywords b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/keywords
index 9cb86608c..9cb86608c 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/keywords
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/keywords
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/lex.def b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/lex.def
index 58e302965..58e302965 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/lex.def
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/lex.def
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/node.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/node.h
index 9636dd759..9636dd759 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/node.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/node.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/parse.y b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/parse.y
index 0e425b189..0e425b189 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/parse.y
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/core/parse.y
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/mrbgem.rake
index 3bf6d6ae3..3bf6d6ae3 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-compiler/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrbgem.rake
index d5816b80f..d5816b80f 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb
index 7741e515d..7741e515d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/test/enum.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/test/enum.rb
index e772f85bf..e772f85bf 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/test/enum.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-ext/test/enum.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake
index 682134c41..682134c41 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
index c98681edf..c98681edf 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
index 940d070e8..940d070e8 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrbgem.rake
index 8757a15ea..8757a15ea 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb
index 1e77af369..1e77af369 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/test/enumerator.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/test/enumerator.rb
index 763cd36e2..763cd36e2 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/test/enumerator.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-enumerator/test/enumerator.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/mrbgem.rake
index 30a4259a8..30a4259a8 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/src/exception.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/src/exception.c
index 170abb699..170abb699 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/src/exception.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/src/exception.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.c
index 4de0e9607..4de0e9607 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.rb
index 908465045..908465045 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-error/test/exception.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/mrbgem.rake
index cb8835b32..cb8835b32 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/src/eval.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
index 5c0ea82f4..5c0ea82f4 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/test/eval.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/test/eval.rb
index 66ca1fcdb..66ca1fcdb 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/test/eval.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-eval/test/eval.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/mrbgem.rake
index d193528da..d193528da 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c
index 3e147f80b..3e147f80b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/mrbgem.rake
index 815cd3c4b..815cd3c4b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
index 9de175f34..9de175f34 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/test/fiber.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/test/fiber.rb
index d063a0a62..d063a0a62 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/test/fiber.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-fiber/test/fiber.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrbgem.rake
index 103410ab9..103410ab9 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb
index 73d1fbe6d..73d1fbe6d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
index 952f2eb64..952f2eb64 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/test/hash.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/test/hash.rb
index ca4e346fb..ca4e346fb 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/test/hash.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-hash-ext/test/hash.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/mrbgem.rake
index 91ad9f44b..91ad9f44b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.c
index 0baaab617..0baaab617 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.rb
index 495859232..495859232 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-inline-struct/test/inline.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake
index fcb3a83b0..fcb3a83b0 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
index 7e6fa28bd..7e6fa28bd 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb
index 89cedaf27..89cedaf27 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/mrbgem.rake
index 66eb5c8d0..66eb5c8d0 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/src/math.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/src/math.c
index 7302b92d7..7302b92d7 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/src/math.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/src/math.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/test/math.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/test/math.rb
index e9ea07cc1..e9ea07cc1 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/test/math.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-math/test/math.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake
index 6db7e589e..6db7e589e 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb
index 0bf3c6ab6..0bf3c6ab6 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
index f71236a32..f71236a32 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb
index 8bead2489..8bead2489 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrbgem.rake
index 6d14b4a51..6d14b4a51 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrblib/object.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrblib/object.rb
index 581156cb0..581156cb0 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrblib/object.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/mrblib/object.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
index 35a07b584..35a07b584 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/nil.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/nil.rb
index 5cd1cf4ed..5cd1cf4ed 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/nil.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/nil.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/object.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/object.rb
index f0742f8ce..f0742f8ce 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/object.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-object-ext/test/object.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/mrbgem.rake
index fa35136a1..fa35136a1 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
index 3887091d3..3887091d3 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/test/objectspace.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/test/objectspace.rb
index 4731d53b5..4731d53b5 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/test/objectspace.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-objectspace/test/objectspace.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrbgem.rake
index 2ea6e3126..2ea6e3126 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrblib/print.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrblib/print.rb
index 38a10661b..38a10661b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrblib/print.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/mrblib/print.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/src/print.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/src/print.c
index d0c522d24..d0c522d24 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/src/print.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-print/src/print.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrbgem.rake
index e4d15a140..e4d15a140 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb
index b71663938..b71663938 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
index b13606f5f..b13606f5f 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
index a77b68e9d..a77b68e9d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.rb
index 037d8d124..037d8d124 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/mrbgem.rake
index 3a3fd2bdb..3a3fd2bdb 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.c
index 405bd5c20..405bd5c20 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.h
index 7d382320d..7d382320d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/mt19937ar.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.c
index b865244cc..b865244cc 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.h b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.h
index a4785ae5a..a4785ae5a 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/src/random.h
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/test/random.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/test/random.rb
index 1c59be3a6..1c59be3a6 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/test/random.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-random/test/random.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrbgem.rake
index e6fa7df5f..e6fa7df5f 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrblib/range.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
index e5d1fb079..e5d1fb079 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
index aca71cc01..aca71cc01 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/test/range.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/test/range.rb
index efcbdabe4..efcbdabe4 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/test/range.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-range-ext/test/range.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrbgem.rake
index bc897243d..bc897243d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrblib/string.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrblib/string.rb
index d7e55536a..d7e55536a 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrblib/string.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/mrblib/string.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/kernel.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/kernel.c
index 946b43a8a..946b43a8a 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/kernel.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/kernel.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
index d20699247..d20699247 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/test/sprintf.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/test/sprintf.rb
index e3b66ef9c..e3b66ef9c 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/test/sprintf.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-sprintf/test/sprintf.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrbgem.rake
index 9812f2cc9..9812f2cc9 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrblib/string.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrblib/string.rb
index c3a7eb380..c3a7eb380 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrblib/string.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/mrblib/string.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
index 6bc035d6a..6bc035d6a 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/test/string.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/test/string.rb
index 2a568c7d6..2a568c7d6 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/test/string.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-string-ext/test/string.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrbgem.rake
index 2826ad2ad..2826ad2ad 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrblib/struct.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrblib/struct.rb
index 7cf3dd3ab..7cf3dd3ab 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrblib/struct.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/mrblib/struct.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/src/struct.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
index 67762a948..67762a948 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/test/struct.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/test/struct.rb
index 421fe4b5d..421fe4b5d 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/test/struct.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-struct/test/struct.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake
index 4f3fa43bb..4f3fa43bb 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb
index 1e3d24b80..1e3d24b80 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
index a992dbfce..a992dbfce 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb
index 6070d1418..6070d1418 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/README.md b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/README.md
index fa4b91e3a..fa4b91e3a 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/README.md
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/README.md
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/driver.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/driver.c
index 14e93ff33..14e93ff33 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/driver.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/driver.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/init_mrbtest.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/init_mrbtest.c
index 17ac1bdef..17ac1bdef 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/init_mrbtest.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/init_mrbtest.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/mrbgem.rake
index ae4c2f131..ae4c2f131 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-test/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrbgem.rake
index 45b2ead72..45b2ead72 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrblib/time.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrblib/time.rb
index df0d8ca82..df0d8ca82 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrblib/time.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/mrblib/time.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/src/time.c b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/src/time.c
index 5e8624830..5e8624830 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/src/time.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/src/time.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/test/time.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/test/time.rb
index 52b931177..52b931177 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/test/time.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-time/test/time.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake
index ce77e0bcf..ce77e0bcf 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb
index 774562398..774562398 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb
index aebdd8b4b..aebdd8b4b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/00class.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/00class.rb
index 1a2d833c8..1a2d833c8 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/00class.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/00class.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/10error.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/10error.rb
index 22a8d1ad7..22a8d1ad7 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/10error.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/10error.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/array.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/array.rb
index a75ed6223..a75ed6223 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/array.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/array.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/compar.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/compar.rb
index 84b962598..84b962598 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/compar.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/compar.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/enum.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/enum.rb
index 12bd1d37b..12bd1d37b 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/enum.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/enum.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/hash.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/hash.rb
index 6b4803ccb..6b4803ccb 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/hash.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/hash.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/init_mrblib.c b/src/web/server/h2o/libh2o/deps/mruby/mrblib/init_mrblib.c
index 4d4bcd25a..4d4bcd25a 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/init_mrblib.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/init_mrblib.c
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/kernel.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/kernel.rb
index 550ae8172..550ae8172 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/kernel.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/kernel.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/mrblib.rake b/src/web/server/h2o/libh2o/deps/mruby/mrblib/mrblib.rake
index 19fd00d66..19fd00d66 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/mrblib.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/mrblib.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/numeric.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/numeric.rb
index 89401a084..89401a084 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/numeric.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/numeric.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/range.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/range.rb
index 5bd2521e8..5bd2521e8 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/range.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/range.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mrblib/string.rb b/src/web/server/h2o/libh2o/deps/mruby/mrblib/string.rb
index 4c6114ecb..4c6114ecb 100644
--- a/web/server/h2o/libh2o/deps/mruby/mrblib/string.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/mrblib/string.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/mruby-source.gemspec b/src/web/server/h2o/libh2o/deps/mruby/mruby-source.gemspec
index 62d4c0d12..62d4c0d12 100644
--- a/web/server/h2o/libh2o/deps/mruby/mruby-source.gemspec
+++ b/src/web/server/h2o/libh2o/deps/mruby/mruby-source.gemspec
diff --git a/web/server/h2o/libh2o/deps/mruby/src/array.c b/src/web/server/h2o/libh2o/deps/mruby/src/array.c
index 8f33defe6..8f33defe6 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/array.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/array.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/backtrace.c b/src/web/server/h2o/libh2o/deps/mruby/src/backtrace.c
index 3e4e1a438..3e4e1a438 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/backtrace.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/backtrace.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/class.c b/src/web/server/h2o/libh2o/deps/mruby/src/class.c
index e3888001b..e3888001b 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/class.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/class.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/codedump.c b/src/web/server/h2o/libh2o/deps/mruby/src/codedump.c
index e3a33419c..e3a33419c 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/codedump.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/codedump.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/compar.c b/src/web/server/h2o/libh2o/deps/mruby/src/compar.c
index 0032fc859..0032fc859 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/compar.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/compar.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/crc.c b/src/web/server/h2o/libh2o/deps/mruby/src/crc.c
index 290b2ca0e..290b2ca0e 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/crc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/crc.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/debug.c b/src/web/server/h2o/libh2o/deps/mruby/src/debug.c
index e55f11d4f..e55f11d4f 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/debug.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/debug.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/dump.c b/src/web/server/h2o/libh2o/deps/mruby/src/dump.c
index d479a1a4f..d479a1a4f 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/dump.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/dump.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/enum.c b/src/web/server/h2o/libh2o/deps/mruby/src/enum.c
index adb815bf1..adb815bf1 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/enum.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/enum.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/error.c b/src/web/server/h2o/libh2o/deps/mruby/src/error.c
index 2c4fd1a40..2c4fd1a40 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/error.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/error.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/error.h b/src/web/server/h2o/libh2o/deps/mruby/src/error.h
index eb755ec7f..eb755ec7f 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/error.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/error.h
diff --git a/web/server/h2o/libh2o/deps/mruby/src/etc.c b/src/web/server/h2o/libh2o/deps/mruby/src/etc.c
index 9475ae304..9475ae304 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/etc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/etc.c
diff --git a/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep b/src/web/server/h2o/libh2o/deps/mruby/src/ext/.gitkeep
index e69de29bb..e69de29bb 100644
--- a/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/ext/.gitkeep
diff --git a/web/server/h2o/libh2o/deps/mruby/src/fmt_fp.c b/src/web/server/h2o/libh2o/deps/mruby/src/fmt_fp.c
index 0a8b22b41..0a8b22b41 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/fmt_fp.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/fmt_fp.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/gc.c b/src/web/server/h2o/libh2o/deps/mruby/src/gc.c
index d602bfb70..d602bfb70 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/gc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/gc.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/hash.c b/src/web/server/h2o/libh2o/deps/mruby/src/hash.c
index 93d550187..93d550187 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/hash.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/hash.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/init.c b/src/web/server/h2o/libh2o/deps/mruby/src/init.c
index afd69975a..afd69975a 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/init.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/init.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/kernel.c b/src/web/server/h2o/libh2o/deps/mruby/src/kernel.c
index 4e95ab24b..4e95ab24b 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/kernel.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/kernel.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/load.c b/src/web/server/h2o/libh2o/deps/mruby/src/load.c
index 8ae607ffa..8ae607ffa 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/load.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/load.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/mruby_core.rake b/src/web/server/h2o/libh2o/deps/mruby/src/mruby_core.rake
index 4558493d9..4558493d9 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/mruby_core.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/mruby_core.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/src/numeric.c b/src/web/server/h2o/libh2o/deps/mruby/src/numeric.c
index afb8415a0..afb8415a0 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/numeric.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/numeric.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/object.c b/src/web/server/h2o/libh2o/deps/mruby/src/object.c
index 368e90b9f..368e90b9f 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/object.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/object.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/opcode.h b/src/web/server/h2o/libh2o/deps/mruby/src/opcode.h
index fe4d17a21..fe4d17a21 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/opcode.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/opcode.h
diff --git a/web/server/h2o/libh2o/deps/mruby/src/pool.c b/src/web/server/h2o/libh2o/deps/mruby/src/pool.c
index db4546abf..db4546abf 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/pool.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/pool.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/print.c b/src/web/server/h2o/libh2o/deps/mruby/src/print.c
index 03b5eadfa..03b5eadfa 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/print.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/print.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/proc.c b/src/web/server/h2o/libh2o/deps/mruby/src/proc.c
index 10a2c4f33..10a2c4f33 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/proc.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/proc.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/range.c b/src/web/server/h2o/libh2o/deps/mruby/src/range.c
index eb9a9c61f..eb9a9c61f 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/range.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/range.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/state.c b/src/web/server/h2o/libh2o/deps/mruby/src/state.c
index 039d67d57..039d67d57 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/state.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/state.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/string.c b/src/web/server/h2o/libh2o/deps/mruby/src/string.c
index 01d706fa3..01d706fa3 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/string.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/string.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/symbol.c b/src/web/server/h2o/libh2o/deps/mruby/src/symbol.c
index a3ab05c85..a3ab05c85 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/symbol.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/symbol.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/value_array.h b/src/web/server/h2o/libh2o/deps/mruby/src/value_array.h
index bc5f28b06..bc5f28b06 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/value_array.h
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/value_array.h
diff --git a/web/server/h2o/libh2o/deps/mruby/src/variable.c b/src/web/server/h2o/libh2o/deps/mruby/src/variable.c
index 50fc70682..50fc70682 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/variable.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/variable.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/version.c b/src/web/server/h2o/libh2o/deps/mruby/src/version.c
index 350bc1673..350bc1673 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/version.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/version.c
diff --git a/web/server/h2o/libh2o/deps/mruby/src/vm.c b/src/web/server/h2o/libh2o/deps/mruby/src/vm.c
index f413211e7..f413211e7 100644
--- a/web/server/h2o/libh2o/deps/mruby/src/vm.c
+++ b/src/web/server/h2o/libh2o/deps/mruby/src/vm.c
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/benchmark.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/benchmark.rake
index 84e69ebee..84e69ebee 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/benchmark.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/benchmark.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/gitlab.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/gitlab.rake
index 471172377..471172377 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/gitlab.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/gitlab.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/libmruby.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/libmruby.rake
index 540aa3eb5..540aa3eb5 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/libmruby.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/libmruby.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/mrbgems.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/mrbgems.rake
index 65368c303..65368c303 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/mrbgems.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/mrbgems.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/android.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/android.rake
index c59da7fcb..c59da7fcb 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/android.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/android.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/clang.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/clang.rake
index c75fa030c..c75fa030c 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/clang.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/clang.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/gcc.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/gcc.rake
index f370c0abf..f370c0abf 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/gcc.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/gcc.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/openwrt.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/openwrt.rake
index 1637f6d91..1637f6d91 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/openwrt.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/openwrt.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/visualcpp.rake b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/visualcpp.rake
index 5bc24a73a..5bc24a73a 100644
--- a/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/visualcpp.rake
+++ b/src/web/server/h2o/libh2o/deps/mruby/tasks/toolchains/visualcpp.rake
diff --git a/web/server/h2o/libh2o/deps/mruby/test/assert.rb b/src/web/server/h2o/libh2o/deps/mruby/test/assert.rb
index fb7ae9ab8..fb7ae9ab8 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/assert.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/assert.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/bintest.rb b/src/web/server/h2o/libh2o/deps/mruby/test/bintest.rb
index 12971a9d9..12971a9d9 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/bintest.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/bintest.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/report.rb b/src/web/server/h2o/libh2o/deps/mruby/test/report.rb
index fb77fd0aa..fb77fd0aa 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/report.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/report.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/argumenterror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/argumenterror.rb
index abb53429b..abb53429b 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/argumenterror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/argumenterror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/array.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/array.rb
index 7c11265a4..7c11265a4 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/array.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/array.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/basicobject.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/basicobject.rb
index f33171266..f33171266 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/basicobject.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/basicobject.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/bs_block.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/bs_block.rb
index 04a4a15ba..04a4a15ba 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/bs_block.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/bs_block.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/bs_literal.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/bs_literal.rb
index c6c38140b..c6c38140b 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/bs_literal.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/bs_literal.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/class.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/class.rb
index eb077fce6..eb077fce6 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/class.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/class.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/codegen.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/codegen.rb
index 4c9e2c594..4c9e2c594 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/codegen.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/codegen.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/comparable.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/comparable.rb
index 2ee28de7b..2ee28de7b 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/comparable.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/comparable.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/ensure.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/ensure.rb
index bef397059..bef397059 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/ensure.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/ensure.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/enumerable.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/enumerable.rb
index 359c3451b..359c3451b 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/enumerable.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/enumerable.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/exception.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/exception.rb
index ce7b5841e..ce7b5841e 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/exception.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/exception.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/false.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/false.rb
index 3582f697a..3582f697a 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/false.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/false.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/float.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/float.rb
index 7e8c98988..7e8c98988 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/float.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/float.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/gc.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/gc.rb
index 4b800e945..4b800e945 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/gc.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/gc.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/hash.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/hash.rb
index c63b8c009..c63b8c009 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/hash.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/hash.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/indexerror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/indexerror.rb
index a8dce23a0..a8dce23a0 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/indexerror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/indexerror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/integer.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/integer.rb
index d4ef8b519..d4ef8b519 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/integer.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/integer.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/iterations.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/iterations.rb
index f227a6037..f227a6037 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/iterations.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/iterations.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/kernel.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/kernel.rb
index e9bd24dc3..e9bd24dc3 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/kernel.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/kernel.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/lang.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/lang.rb
index 57c375643..57c375643 100755
--- a/web/server/h2o/libh2o/deps/mruby/test/t/lang.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/lang.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/literals.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/literals.rb
index 51a37c32d..51a37c32d 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/literals.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/literals.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/localjumperror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/localjumperror.rb
index 1780cb518..1780cb518 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/localjumperror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/localjumperror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/methods.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/methods.rb
index f9c25dc33..f9c25dc33 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/methods.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/methods.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/module.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/module.rb
index 5a46c24ff..5a46c24ff 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/module.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/module.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/nameerror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/nameerror.rb
index 28682bedc..28682bedc 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/nameerror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/nameerror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/nil.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/nil.rb
index b49878fc1..b49878fc1 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/nil.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/nil.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/nomethoderror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/nomethoderror.rb
index 5fed79689..5fed79689 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/nomethoderror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/nomethoderror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/numeric.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/numeric.rb
index 120cc960d..120cc960d 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/numeric.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/numeric.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/object.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/object.rb
index 6a755d3ba..6a755d3ba 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/object.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/object.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/proc.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/proc.rb
index 42ac3b941..42ac3b941 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/proc.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/proc.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/range.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/range.rb
index 5391369de..5391369de 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/range.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/range.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/rangeerror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/rangeerror.rb
index 97878096e..97878096e 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/rangeerror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/rangeerror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/regexperror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/regexperror.rb
index b8f8c2c1f..b8f8c2c1f 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/regexperror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/regexperror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/runtimeerror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/runtimeerror.rb
index d02cba96d..d02cba96d 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/runtimeerror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/runtimeerror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/standarderror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/standarderror.rb
index c349b08cf..c349b08cf 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/standarderror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/standarderror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/string.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/string.rb
index a4139622a..a4139622a 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/string.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/string.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/superclass.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/superclass.rb
index 10b6438d3..10b6438d3 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/superclass.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/superclass.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/symbol.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/symbol.rb
index 9059f45c2..9059f45c2 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/symbol.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/symbol.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/syntax.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/syntax.rb
index 299394557..299394557 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/syntax.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/syntax.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/true.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/true.rb
index 74f605ef0..74f605ef0 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/true.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/true.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/typeerror.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/typeerror.rb
index 32536a74f..32536a74f 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/typeerror.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/typeerror.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/test/t/unicode.rb b/src/web/server/h2o/libh2o/deps/mruby/test/t/unicode.rb
index 8622ae08a..8622ae08a 100644
--- a/web/server/h2o/libh2o/deps/mruby/test/t/unicode.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/test/t/unicode.rb
diff --git a/web/server/h2o/libh2o/deps/mruby/travis_config.rb b/src/web/server/h2o/libh2o/deps/mruby/travis_config.rb
index 5904d6880..5904d6880 100644
--- a/web/server/h2o/libh2o/deps/mruby/travis_config.rb
+++ b/src/web/server/h2o/libh2o/deps/mruby/travis_config.rb
diff --git a/web/server/h2o/libh2o/deps/neverbleed/.clang-format b/src/web/server/h2o/libh2o/deps/neverbleed/.clang-format
index 9640123c7..9640123c7 100644
--- a/web/server/h2o/libh2o/deps/neverbleed/.clang-format
+++ b/src/web/server/h2o/libh2o/deps/neverbleed/.clang-format
diff --git a/web/server/h2o/libh2o/deps/neverbleed/.gitignore b/src/web/server/h2o/libh2o/deps/neverbleed/.gitignore
index bbf313b25..bbf313b25 100644
--- a/web/server/h2o/libh2o/deps/neverbleed/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/neverbleed/.gitignore
diff --git a/web/server/h2o/libh2o/deps/neverbleed/LICENSE b/src/web/server/h2o/libh2o/deps/neverbleed/LICENSE
index 2bd3423e2..2bd3423e2 100644
--- a/web/server/h2o/libh2o/deps/neverbleed/LICENSE
+++ b/src/web/server/h2o/libh2o/deps/neverbleed/LICENSE
diff --git a/web/server/h2o/libh2o/deps/neverbleed/README.md b/src/web/server/h2o/libh2o/deps/neverbleed/README.md
index 8357055ca..8357055ca 100644
--- a/web/server/h2o/libh2o/deps/neverbleed/README.md
+++ b/src/web/server/h2o/libh2o/deps/neverbleed/README.md
diff --git a/web/server/h2o/libh2o/deps/neverbleed/neverbleed.c b/src/web/server/h2o/libh2o/deps/neverbleed/neverbleed.c
index 7b36d6cb6..7b36d6cb6 100644
--- a/web/server/h2o/libh2o/deps/neverbleed/neverbleed.c
+++ b/src/web/server/h2o/libh2o/deps/neverbleed/neverbleed.c
diff --git a/web/server/h2o/libh2o/deps/neverbleed/neverbleed.h b/src/web/server/h2o/libh2o/deps/neverbleed/neverbleed.h
index 4abfad479..4abfad479 100644
--- a/web/server/h2o/libh2o/deps/neverbleed/neverbleed.h
+++ b/src/web/server/h2o/libh2o/deps/neverbleed/neverbleed.h
diff --git a/web/server/h2o/libh2o/deps/neverbleed/test.c b/src/web/server/h2o/libh2o/deps/neverbleed/test.c
index 494fc65f0..494fc65f0 100644
--- a/web/server/h2o/libh2o/deps/neverbleed/test.c
+++ b/src/web/server/h2o/libh2o/deps/neverbleed/test.c
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/.clang-format b/src/web/server/h2o/libh2o/deps/picohttpparser/.clang-format
index 9640123c7..9640123c7 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/.clang-format
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/.clang-format
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/.gitattributes b/src/web/server/h2o/libh2o/deps/picohttpparser/.gitattributes
index 03d9eec36..03d9eec36 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/.gitattributes
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/.gitattributes
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/.gitmodules b/src/web/server/h2o/libh2o/deps/picohttpparser/.gitmodules
index e1434dacc..e1434dacc 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/.gitmodules
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/.gitmodules
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/.travis.yml b/src/web/server/h2o/libh2o/deps/picohttpparser/.travis.yml
index 78af54bc2..78af54bc2 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/Jamfile b/src/web/server/h2o/libh2o/deps/picohttpparser/Jamfile
index 5acbe55d0..5acbe55d0 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/Jamfile
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/Jamfile
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/Makefile b/src/web/server/h2o/libh2o/deps/picohttpparser/Makefile
index 9e42298d3..9e42298d3 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/Makefile
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/Makefile
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/README.md b/src/web/server/h2o/libh2o/deps/picohttpparser/README.md
index cb32f58e1..cb32f58e1 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/README.md
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/README.md
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/bench.c b/src/web/server/h2o/libh2o/deps/picohttpparser/bench.c
index 8dec06c4e..8dec06c4e 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/bench.c
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/bench.c
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.c b/src/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.c
index a707070d1..a707070d1 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.c
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.c
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.h b/src/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.h
index 67fd3ee74..67fd3ee74 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.h
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/picohttpparser.h
diff --git a/web/server/h2o/libh2o/deps/picohttpparser/test.c b/src/web/server/h2o/libh2o/deps/picohttpparser/test.c
index 8f808fdfc..8f808fdfc 100644
--- a/web/server/h2o/libh2o/deps/picohttpparser/test.c
+++ b/src/web/server/h2o/libh2o/deps/picohttpparser/test.c
diff --git a/web/server/h2o/libh2o/deps/picotest/picotest.c b/src/web/server/h2o/libh2o/deps/picotest/picotest.c
index d1fe699d5..d1fe699d5 100644
--- a/web/server/h2o/libh2o/deps/picotest/picotest.c
+++ b/src/web/server/h2o/libh2o/deps/picotest/picotest.c
diff --git a/web/server/h2o/libh2o/deps/picotest/picotest.h b/src/web/server/h2o/libh2o/deps/picotest/picotest.h
index 22ab02fb2..22ab02fb2 100644
--- a/web/server/h2o/libh2o/deps/picotest/picotest.h
+++ b/src/web/server/h2o/libh2o/deps/picotest/picotest.h
diff --git a/web/server/h2o/libh2o/deps/picotls/.clang-format b/src/web/server/h2o/libh2o/deps/picotls/.clang-format
index 9640123c7..9640123c7 100644
--- a/web/server/h2o/libh2o/deps/picotls/.clang-format
+++ b/src/web/server/h2o/libh2o/deps/picotls/.clang-format
diff --git a/web/server/h2o/libh2o/deps/picotls/.gitignore b/src/web/server/h2o/libh2o/deps/picotls/.gitignore
index 4d46b4078..4d46b4078 100644
--- a/web/server/h2o/libh2o/deps/picotls/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/picotls/.gitignore
diff --git a/web/server/h2o/libh2o/deps/picotls/.gitmodules b/src/web/server/h2o/libh2o/deps/picotls/.gitmodules
index 37df0c6dc..37df0c6dc 100644
--- a/web/server/h2o/libh2o/deps/picotls/.gitmodules
+++ b/src/web/server/h2o/libh2o/deps/picotls/.gitmodules
diff --git a/web/server/h2o/libh2o/deps/picotls/.travis.yml b/src/web/server/h2o/libh2o/deps/picotls/.travis.yml
index 6c822845f..6c822845f 100644
--- a/web/server/h2o/libh2o/deps/picotls/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/picotls/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/picotls/CMakeLists.txt b/src/web/server/h2o/libh2o/deps/picotls/CMakeLists.txt
index 87d147246..87d147246 100644
--- a/web/server/h2o/libh2o/deps/picotls/CMakeLists.txt
+++ b/src/web/server/h2o/libh2o/deps/picotls/CMakeLists.txt
diff --git a/web/server/h2o/libh2o/deps/picotls/README.md b/src/web/server/h2o/libh2o/deps/picotls/README.md
index 12f587245..12f587245 100644
--- a/web/server/h2o/libh2o/deps/picotls/README.md
+++ b/src/web/server/h2o/libh2o/deps/picotls/README.md
diff --git a/web/server/h2o/libh2o/deps/picotls/WindowsPort.md b/src/web/server/h2o/libh2o/deps/picotls/WindowsPort.md
index b2989e3d0..b2989e3d0 100644
--- a/web/server/h2o/libh2o/deps/picotls/WindowsPort.md
+++ b/src/web/server/h2o/libh2o/deps/picotls/WindowsPort.md
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/.travis.yml b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/.travis.yml
index 44b1a26ff..44b1a26ff 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/.travis.yml
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/.travis.yml
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/COPYING b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/COPYING
index 0e259d42c..0e259d42c 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/COPYING
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/COPYING
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/README.md b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/README.md
index e972912ec..e972912ec 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/README.md
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/README.md
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/curve25519-shootout.md b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/curve25519-shootout.md
index 6f0575896..6f0575896 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/curve25519-shootout.md
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/curve25519-shootout.md
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/Makefile b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/Makefile
index 2b7f5c034..2b7f5c034 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/Makefile
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/Makefile
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/build.py b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/build.py
index 0b0068252..0b0068252 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/build.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/build.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/conf.py b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/conf.py
index 8354354c7..8354354c7 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/conf.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/conf.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/index.rst b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/index.rst
index e853de4a4..e853de4a4 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/index.rst
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/doc/index.rst
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/.gitignore b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/.gitignore
index 2163875de..2163875de 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/.gitignore
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/Makefile b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/Makefile
index 065721c28..065721c28 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/Makefile
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/Makefile
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/README.md b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/README.md
index a7d382875..a7d382875 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/README.md
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/README.md
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
index 9df685669..9df685669 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/python-hash.py b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/python-hash.py
index 90aa248f8..90aa248f8 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/python-hash.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/extra_vecs/python-hash.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/.gitignore b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/.gitignore
index 3bd327508..3bd327508 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/.gitignore
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/Makefile b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/Makefile
index ccbda7eb7..ccbda7eb7 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/Makefile
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/Makefile
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
index 6d7b944f2..6d7b944f2 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-aes.sl b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-aes.sl
index 5535c5de7..5535c5de7 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-aes.sl
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-aes.sl
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-pbkdf2.sl b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-pbkdf2.sl
index b87f39703..b87f39703 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-pbkdf2.sl
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-pbkdf2.sl
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha224.sl b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha224.sl
index 5de9e151c..5de9e151c 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha224.sl
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha224.sl
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha256.sl b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha256.sl
index 83c04573b..83c04573b 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha256.sl
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha256.sl
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha384.sl b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha384.sl
index 33a00ee67..33a00ee67 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha384.sl
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha384.sl
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha512.sl b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha512.sl
index 42010199a..42010199a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha512.sl
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/shitlisp/test-sha512.sl
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/.gitignore b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/.gitignore
index abc5da36c..abc5da36c 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/.gitignore
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/Makefile b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/Makefile
index 451548d64..451548d64 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/Makefile
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/Makefile
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.c
index 545588e57..545588e57 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.h
index 2ee7f4678..2ee7f4678 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/aes.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/.gitignore b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/.gitignore
index 5841cb8ec..5841cb8ec 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/.gitignore
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/Makefile b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/Makefile
index 7be9a53a1..7be9a53a1 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/Makefile
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/Makefile
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/analyse.py b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/analyse.py
index d2c456fef..d2c456fef 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/analyse.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/analyse.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/boot.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/boot.c
index d2a8e407b..d2a8e407b 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/boot.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/boot.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/curve25519-results.txt b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/curve25519-results.txt
index 968e40e52..968e40e52 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/curve25519-results.txt
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/curve25519-results.txt
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
index fa3c5d843..fa3c5d843 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.efm32.ld b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.efm32.ld
index 8b9a6bfda..8b9a6bfda 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.efm32.ld
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.efm32.ld
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.lm3s6965evb.ld b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.lm3s6965evb.ld
index 14fdac4e3..14fdac4e3 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.lm3s6965evb.ld
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.lm3s6965evb.ld
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.qemucm3.ld b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.qemucm3.ld
index 282646749..282646749 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.qemucm3.ld
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.qemucm3.ld
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.std.ld b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.std.ld
index c08d7beaa..c08d7beaa 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.std.ld
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.std.ld
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f0.ld b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f0.ld
index c7a3bd85a..c7a3bd85a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f0.ld
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f0.ld
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f1.ld b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f1.ld
index d13f58def..d13f58def 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f1.ld
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f1.ld
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f3.ld b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f3.ld
index 92eee46e7..92eee46e7 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f3.ld
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/linkscript.stm32f3.ld
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/main.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/main.c
index 5b7cbf224..5b7cbf224 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/main.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/main.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memcpy.s b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memcpy.s
index 63406fe53..63406fe53 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memcpy.s
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memcpy.s
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memset.s b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memset.s
index a50196673..a50196673 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memset.s
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/memset.s
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/merge.py b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/merge.py
index 71d50895f..71d50895f 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/merge.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/merge.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.efm32.cfg b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.efm32.cfg
index 85af47337..85af47337 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.efm32.cfg
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.efm32.cfg
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f0.cfg b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f0.cfg
index e9356f75a..e9356f75a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f0.cfg
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f0.cfg
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f1.cfg b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f1.cfg
index 1108ea075..1108ea075 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f1.cfg
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f1.cfg
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f3.cfg b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f3.cfg
index de023b84e..de023b84e 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f3.cfg
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/openocd.stm32f3.cfg
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/report.py b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/report.py
index 718ab24e5..718ab24e5 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/report.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/report.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.c
index cbe5aa2ea..cbe5aa2ea 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.h
index cf6f01a56..cf6f01a56 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.s b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.s
index 0fddf045b..0fddf045b 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.s
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/semihost.s
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_mpy121666.s b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_mpy121666.s
index 49e3b5d00..49e3b5d00 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_mpy121666.s
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_mpy121666.s
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_reduce25519.s b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_reduce25519.s
index 4c09f5ea0..4c09f5ea0 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_reduce25519.s
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/cortex_m0_reduce25519.s
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/mul.s b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/mul.s
index 155674c6e..155674c6e 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/mul.s
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/mul.s
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
index 488aac78d..488aac78d 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/sqr.s b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/sqr.s
index 3b190c928..3b190c928 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/sqr.s
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/arm/unacl/sqr.s
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/bitops.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/bitops.h
index f2ca30841..f2ca30841 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/bitops.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/bitops.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.c
index 182c8c51a..182c8c51a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.h
index a20ff9595..a20ff9595 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/blockwise.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cbcmac.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cbcmac.c
index f0dfe875f..f0dfe875f 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cbcmac.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cbcmac.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ccm.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ccm.c
index 7ef87fc1e..7ef87fc1e 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ccm.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ccm.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cf_config.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cf_config.h
index ceb7e8da7..ceb7e8da7 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cf_config.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cf_config.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20.c
index 7a3bf3828..7a3bf3828 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
index 0aef72549..0aef72549 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.h
index 1d44156ca..1d44156ca 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chacha20poly1305.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.c
index 4ee5d76ea..4ee5d76ea 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.h
index 8f2e2012b..8f2e2012b 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/chash.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cmac.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cmac.c
index 51f5843fb..51f5843fb 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cmac.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/cmac.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.c
index 6c4b9c15e..6c4b9c15e 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.donna.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.donna.c
index 3c597d37c..3c597d37c 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.donna.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.donna.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.h
index 9b0b7f544..9b0b7f544 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.naclref.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
index 9f331d1d5..9f331d1d5 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
index c98c1078f..c98c1078f 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.c
index ae7906783..ae7906783 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.h
index 18a107041..18a107041 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/drbg.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/eax.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/eax.c
index 80ba46f45..80ba46f45 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/eax.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/eax.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/cutest.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/cutest.h
index c9af425e5..c9af425e5 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/cutest.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/cutest.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/handy.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/handy.h
index 936e70f44..936e70f44 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/handy.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ext/handy.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gcm.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gcm.c
index 5b374732b..5b374732b 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gcm.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gcm.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.c
index f7ea834be..f7ea834be 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.h
index 756086233..756086233 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/gf128.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.c
index 98646d7e1..98646d7e1 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.h
index 2f9ea7b04..2f9ea7b04 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/hmac.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.c
index 1e44af1dc..1e44af1dc 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.h
index 20940a34a..20940a34a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/modes.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.c
index 8f0aba6b0..8f0aba6b0 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.h
index aee7bfe12..aee7bfe12 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/norx.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ocb.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ocb.c
index 3d244d4e0..3d244d4e0 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ocb.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/ocb.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.c
index fce6a22f2..fce6a22f2 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.h
index 2f3048407..2f3048407 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/pbkdf2.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.c
index 6c3f13dec..6c3f13dec 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.h
index b318e2841..b318e2841 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.py b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.py
index 41a1b9d88..41a1b9d88 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/poly1305.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/prp.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/prp.h
index 1aa72588e..1aa72588e 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/prp.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/prp.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.c
index 34bd1562a..34bd1562a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.h
index 462d01905..462d01905 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/salsa20.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.c
index 8b7d02fe2..8b7d02fe2 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.h
index 4ca0e91cf..4ca0e91cf 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha1.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha2.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha2.h
index c4ed24b57..c4ed24b57 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha2.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha2.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha256.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha256.c
index 8ecef1685..8ecef1685 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha256.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha256.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.c
index f130747d7..f130747d7 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.h
index 44895dc31..44895dc31 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha3.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha512.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha512.c
index 2d1c8964d..2d1c8964d 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha512.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/sha512.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/tassert.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/tassert.h
index 58ebb4c88..58ebb4c88 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/tassert.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/tassert.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testaes.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testaes.c
index 12543bbfa..12543bbfa 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testaes.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testaes.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c
index f1b53e659..f1b53e659 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testcurve25519.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testcurve25519.c
index a0ab8db5b..a0ab8db5b 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testcurve25519.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testcurve25519.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testdrbg.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testdrbg.c
index 253c8c0ad..253c8c0ad 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testdrbg.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testdrbg.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testmodes.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testmodes.c
index ed96dde81..ed96dde81 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testmodes.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testmodes.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.c
index b18393f5d..b18393f5d 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.katdata.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.katdata.inc
index 13dd7461c..13dd7461c 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.katdata.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testnorx.katdata.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testpoly1305.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testpoly1305.c
index 3ecf1ca8f..3ecf1ca8f 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testpoly1305.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testpoly1305.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsalsa20.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsalsa20.c
index 9d50b939d..9d50b939d 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsalsa20.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsalsa20.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha.h
index 70075f016..70075f016 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha1.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha1.c
index c7adc8a45..c7adc8a45 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha1.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha1.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha2.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha2.c
index fc0ab6c83..fc0ab6c83 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha2.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha2.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha3.c b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha3.c
index 92ab9cf02..92ab9cf02 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha3.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testsha3.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testutil.h b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testutil.h
index b9a52b333..b9a52b333 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testutil.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/cifra/src/testutil.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/.gitignore b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/.gitignore
index cd812eb91..cd812eb91 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/.gitignore
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/LICENSE.txt b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/LICENSE.txt
index ab099ae5a..ab099ae5a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/LICENSE.txt
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/LICENSE.txt
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/README.md b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/README.md
index 01926e3fa..01926e3fa 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/README.md
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/README.md
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm.inc
index 688fdc75a..688fdc75a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square.inc
index 8907fc185..8907fc185 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square_umaal.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square_umaal.inc
index c554d20e3..c554d20e3 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square_umaal.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_arm_mult_square_umaal.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr.inc
index c98804032..c98804032 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr_mult_square.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr_mult_square.inc
index 7ae08bce6..7ae08bce6 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr_mult_square.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/asm_avr_mult_square.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/curve-specific.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/curve-specific.inc
index 0453b212c..0453b212c 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/curve-specific.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/curve-specific.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_project.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_project.py
index 940fadc2a..940fadc2a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_project.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_project.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_rules.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_rules.py
index b1d76c81a..b1d76c81a 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_rules.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/emk_rules.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/platform-specific.inc b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/platform-specific.inc
index 1bb595adc..1bb595adc 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/platform-specific.inc
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/platform-specific.inc
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_arm.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_arm.py
index 402ace190..402ace190 100755
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_arm.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_arm.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr.py
index d40e4c23d..d40e4c23d 100755
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr_extra.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr_extra.py
index f6e654f6a..f6e654f6a 100755
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr_extra.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/mult_avr_extra.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_arm.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_arm.py
index 5330c7e63..5330c7e63 100755
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_arm.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_arm.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_avr.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_avr.py
index 6571c3b3c..6571c3b3c 100755
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_avr.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/scripts/square_avr.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino
index c3c8900d8..c3c8900d8 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/emk_rules.py b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/emk_rules.py
index 956ccf5fc..956ccf5fc 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/emk_rules.py
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/emk_rules.py
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compress.c b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compress.c
index aef374cdb..aef374cdb 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compress.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compress.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compute.c b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compute.c
index 7b936d829..7b936d829 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compute.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_compute.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c
index 7315b7545..7315b7545 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c
index 86997949f..86997949f 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa_deterministic.c.example b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa_deterministic.c.example
index df9aa101f..df9aa101f 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa_deterministic.c.example
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/test_ecdsa_deterministic.c.example
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/types.h b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/types.h
index 9ee81438f..9ee81438f 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/types.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/types.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.c b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.c
index daa144a50..daa144a50 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.c
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.h b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.h
index 991176316..991176316 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC.h
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC_vli.h b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC_vli.h
index 864cc3335..864cc3335 100644
--- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC_vli.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/uECC_vli.h
diff --git a/web/server/h2o/libh2o/deps/picotls/include/picotls.h b/src/web/server/h2o/libh2o/deps/picotls/include/picotls.h
index a862075f0..a862075f0 100644
--- a/web/server/h2o/libh2o/deps/picotls/include/picotls.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/include/picotls.h
diff --git a/web/server/h2o/libh2o/deps/picotls/include/picotls/asn1.h b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/asn1.h
index 5314c58a4..5314c58a4 100644
--- a/web/server/h2o/libh2o/deps/picotls/include/picotls/asn1.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/asn1.h
diff --git a/web/server/h2o/libh2o/deps/picotls/include/picotls/minicrypto.h b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/minicrypto.h
index ce7e58ec5..ce7e58ec5 100644
--- a/web/server/h2o/libh2o/deps/picotls/include/picotls/minicrypto.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/minicrypto.h
diff --git a/web/server/h2o/libh2o/deps/picotls/include/picotls/openssl.h b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/openssl.h
index 459474ad0..459474ad0 100644
--- a/web/server/h2o/libh2o/deps/picotls/include/picotls/openssl.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/openssl.h
diff --git a/web/server/h2o/libh2o/deps/picotls/include/picotls/pembase64.h b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/pembase64.h
index 1b59910b4..1b59910b4 100644
--- a/web/server/h2o/libh2o/deps/picotls/include/picotls/pembase64.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/include/picotls/pembase64.h
diff --git a/web/server/h2o/libh2o/deps/picotls/lib/asn1.c b/src/web/server/h2o/libh2o/deps/picotls/lib/asn1.c
index 4422bed9b..4422bed9b 100644
--- a/web/server/h2o/libh2o/deps/picotls/lib/asn1.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/lib/asn1.c
diff --git a/web/server/h2o/libh2o/deps/picotls/lib/cifra.c b/src/web/server/h2o/libh2o/deps/picotls/lib/cifra.c
index af33c33f5..af33c33f5 100644
--- a/web/server/h2o/libh2o/deps/picotls/lib/cifra.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/lib/cifra.c
diff --git a/web/server/h2o/libh2o/deps/picotls/lib/minicrypto-pem.c b/src/web/server/h2o/libh2o/deps/picotls/lib/minicrypto-pem.c
index 2b82a91ec..2b82a91ec 100644
--- a/web/server/h2o/libh2o/deps/picotls/lib/minicrypto-pem.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/lib/minicrypto-pem.c
diff --git a/web/server/h2o/libh2o/deps/picotls/lib/openssl.c b/src/web/server/h2o/libh2o/deps/picotls/lib/openssl.c
index 2c9ee7002..2c9ee7002 100644
--- a/web/server/h2o/libh2o/deps/picotls/lib/openssl.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/lib/openssl.c
diff --git a/web/server/h2o/libh2o/deps/picotls/lib/pembase64.c b/src/web/server/h2o/libh2o/deps/picotls/lib/pembase64.c
index de44c5386..de44c5386 100644
--- a/web/server/h2o/libh2o/deps/picotls/lib/pembase64.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/lib/pembase64.c
diff --git a/web/server/h2o/libh2o/deps/picotls/lib/picotls.c b/src/web/server/h2o/libh2o/deps/picotls/lib/picotls.c
index d328aaacc..d328aaacc 100644
--- a/web/server/h2o/libh2o/deps/picotls/lib/picotls.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/lib/picotls.c
diff --git a/web/server/h2o/libh2o/deps/picotls/lib/uecc.c b/src/web/server/h2o/libh2o/deps/picotls/lib/uecc.c
index 10f32520a..10f32520a 100644
--- a/web/server/h2o/libh2o/deps/picotls/lib/uecc.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/lib/uecc.c
diff --git a/web/server/h2o/libh2o/deps/picotls/misc/dump-github-repository.pl b/src/web/server/h2o/libh2o/deps/picotls/misc/dump-github-repository.pl
index ab8115757..ab8115757 100755
--- a/web/server/h2o/libh2o/deps/picotls/misc/dump-github-repository.pl
+++ b/src/web/server/h2o/libh2o/deps/picotls/misc/dump-github-repository.pl
diff --git a/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.pbxproj b/src/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.pbxproj
index 881b8f443..881b8f443 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.pbxproj
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.pbxproj
diff --git a/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index 5cd1211de..5cd1211de 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotls.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/ReadMe.txt b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/ReadMe.txt
index c1a42b27f..c1a42b27f 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/ReadMe.txt
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/ReadMe.txt
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj
index 53c73cfe8..53c73cfe8 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj.filters b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj.filters
index 6c0de7f3f..6c0de7f3f 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj.filters
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/cifra/cifra.vcxproj.filters
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/ReadMe.txt b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/ReadMe.txt
index ed0a5281b..ed0a5281b 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/ReadMe.txt
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/ReadMe.txt
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj
index 46ebc5b96..46ebc5b96 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj.filters b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj.filters
index b7ed7be3c..b7ed7be3c 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj.filters
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/microecc/microecc.vcxproj.filters
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/openssl.cnf b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/openssl.cnf
index c96e84321..c96e84321 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/openssl.cnf
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/openssl.cnf
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/ReadMe.txt b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/ReadMe.txt
index 08baa5708..08baa5708 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/ReadMe.txt
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/ReadMe.txt
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj
index 1eea9ea12..1eea9ea12 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.filters b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.filters
index 4603cc47d..4603cc47d 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.filters
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.filters
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.user b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.user
index be2507870..be2507870 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.user
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/picotls.vcxproj.user
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/targetver.h b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/targetver.h
index 87c0086de..87c0086de 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/targetver.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/targetver.h
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wincompat.h b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wincompat.h
index 8ff26bfbf..8ff26bfbf 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wincompat.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wincompat.h
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wintimeofday.c b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wintimeofday.c
index a293707ea..a293707ea 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wintimeofday.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotls/wintimeofday.c
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs.sln b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs.sln
index dd273a45a..dd273a45a 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs.sln
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs.sln
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ReadMe.txt b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ReadMe.txt
index b12bf0608..b12bf0608 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ReadMe.txt
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ReadMe.txt
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/cert.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/cert.pem
index a7fbf0a0d..a7fbf0a0d 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/cert.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/cert.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_cert.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_cert.pem
index 51bf0443b..51bf0443b 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_cert.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_cert.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_key.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_key.pem
index 29932c1cc..29932c1cc 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_key.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/ec_key.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-1.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-1.pem
index 1fb5f17b7..1fb5f17b7 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-1.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-1.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-2.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-2.pem
index f4aeb5ef3..f4aeb5ef3 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-2.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-2.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-3.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-3.pem
index 08c9496a4..08c9496a4 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-3.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-3.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-4.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-4.pem
index 4018db1c3..4018db1c3 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-4.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key-test-4.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key.pem
index 8f86e7175..8f86e7175 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/key.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/myec1.pem b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/myec1.pem
index 8a19bb09f..8a19bb09f 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/myec1.pem
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/myec1.pem
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/openssl.cnf b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/openssl.cnf
index c96e84321..c96e84321 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/openssl.cnf
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/openssl.cnf
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
index 251b29095..251b29095 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj
index 792cf302f..792cf302f 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.filters b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.filters
index a52d6d470..a52d6d470 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.filters
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.filters
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.user b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.user
index be2507870..be2507870 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.user
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.vcxproj.user
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/targetver.h b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/targetver.h
index 87c0086de..87c0086de 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/targetver.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/picotlsvs/targetver.h
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj
index f5bf9ba22..f5bf9ba22 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj
diff --git a/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj.filters b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj.filters
index b6ccd2fb7..b6ccd2fb7 100644
--- a/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj.filters
+++ b/src/web/server/h2o/libh2o/deps/picotls/picotlsvs/testopenssl/testopenssl.vcxproj.filters
diff --git a/web/server/h2o/libh2o/deps/picotls/t/cli.c b/src/web/server/h2o/libh2o/deps/picotls/t/cli.c
index fc7349996..fc7349996 100644
--- a/web/server/h2o/libh2o/deps/picotls/t/cli.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/t/cli.c
diff --git a/web/server/h2o/libh2o/deps/picotls/t/minicrypto.c b/src/web/server/h2o/libh2o/deps/picotls/t/minicrypto.c
index 0c18a9088..0c18a9088 100644
--- a/web/server/h2o/libh2o/deps/picotls/t/minicrypto.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/t/minicrypto.c
diff --git a/web/server/h2o/libh2o/deps/picotls/t/openssl.c b/src/web/server/h2o/libh2o/deps/picotls/t/openssl.c
index 9a7fc539c..9a7fc539c 100644
--- a/web/server/h2o/libh2o/deps/picotls/t/openssl.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/t/openssl.c
diff --git a/web/server/h2o/libh2o/deps/picotls/t/picotls.c b/src/web/server/h2o/libh2o/deps/picotls/t/picotls.c
index bb90c62cb..bb90c62cb 100644
--- a/web/server/h2o/libh2o/deps/picotls/t/picotls.c
+++ b/src/web/server/h2o/libh2o/deps/picotls/t/picotls.c
diff --git a/web/server/h2o/libh2o/deps/picotls/t/test.h b/src/web/server/h2o/libh2o/deps/picotls/t/test.h
index 2f338764a..2f338764a 100644
--- a/web/server/h2o/libh2o/deps/picotls/t/test.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/t/test.h
diff --git a/web/server/h2o/libh2o/deps/picotls/t/util.h b/src/web/server/h2o/libh2o/deps/picotls/t/util.h
index 78ce87c3c..78ce87c3c 100644
--- a/web/server/h2o/libh2o/deps/picotls/t/util.h
+++ b/src/web/server/h2o/libh2o/deps/picotls/t/util.h
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/.gitattributes b/src/web/server/h2o/libh2o/deps/ssl-conservatory/.gitattributes
index 7d61439d0..7d61439d0 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/.gitattributes
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/.gitattributes
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/.gitignore b/src/web/server/h2o/libh2o/deps/ssl-conservatory/.gitignore
index 3b15853bd..3b15853bd 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/.gitignore
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/.gitignore
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/LICENSE b/src/web/server/h2o/libh2o/deps/ssl-conservatory/LICENSE
index fe3a4167b..fe3a4167b 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/LICENSE
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/LICENSE
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/README.md b/src/web/server/h2o/libh2o/deps/ssl-conservatory/README.md
index 8000ec473..8000ec473 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/README.md
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/README.md
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/README.md b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/README.md
index 34bf4eda8..34bf4eda8 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/README.md
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/README.md
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning.xcodeproj/project.pbxproj b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning.xcodeproj/project.pbxproj
index 84ee1521b..84ee1521b 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning.xcodeproj/project.pbxproj
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning.xcodeproj/project.pbxproj
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.h b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.h
index fddc504e2..fddc504e2 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.h
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.h
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.m b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.m
index 584b974ff..584b974ff 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.m
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.m
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.h b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.h
index 13537455c..13537455c 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.h
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.h
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.m b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.m
index c67a8d0c6..c67a8d0c6 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.m
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.m
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.h b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.h
index 1fb3a292d..1fb3a292d 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.h
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.h
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.m b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.m
index 601af6abd..601af6abd 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.m
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.m
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/SSLCertificatePinning-Prefix.pch b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/SSLCertificatePinning-Prefix.pch
index eb2007ecd..eb2007ecd 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/SSLCertificatePinning-Prefix.pch
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/SSLCertificatePinning-Prefix.pch
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLConnectionTests.m b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLConnectionTests.m
index 53d860785..53d860785 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLConnectionTests.m
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLConnectionTests.m
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLSessionTests.m b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLSessionTests.m
index 5f1da51ba..5f1da51ba 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLSessionTests.m
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/NSURLSessionTests.m
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLCertificatePinningTests-Info.plist b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLCertificatePinningTests-Info.plist
index ccba61f8e..ccba61f8e 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLCertificatePinningTests-Info.plist
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLCertificatePinningTests-Info.plist
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.h b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.h
index 56dde1ac7..56dde1ac7 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.h
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.h
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.m b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.m
index 7a5eb22c5..7a5eb22c5 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.m
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.m
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/VeriSignClass3PublicPrimaryCertificationAuthority-G5.der b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/VeriSignClass3PublicPrimaryCertificationAuthority-G5.der
index 9818d19d0..9818d19d0 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/VeriSignClass3PublicPrimaryCertificationAuthority-G5.der
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/VeriSignClass3PublicPrimaryCertificationAuthority-G5.der
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/en.lproj/InfoPlist.strings b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/en.lproj/InfoPlist.strings
index 477b28ff8..477b28ff8 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/en.lproj/InfoPlist.strings
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/en.lproj/InfoPlist.strings
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/www.isecpartners.com.der b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/www.isecpartners.com.der
index 886cf483e..886cf483e 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/www.isecpartners.com.der
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/www.isecpartners.com.der
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/DigiCertHighAssuranceEVRootCA.pem b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/DigiCertHighAssuranceEVRootCA.pem
index 4b1bc66be..4b1bc66be 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/DigiCertHighAssuranceEVRootCA.pem
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/DigiCertHighAssuranceEVRootCA.pem
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile
index 0edaa7cbc..0edaa7cbc 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile_mingw b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile_mingw
index 00f631443..00f631443 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile_mingw
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/Makefile_mingw
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/README.md b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/README.md
index 14ca84aee..14ca84aee 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/README.md
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/README.md
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/everything-you-wanted-to-know-about-openssl.pdf b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/everything-you-wanted-to-know-about-openssl.pdf
index 9e6524f6a..9e6524f6a 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/everything-you-wanted-to-know-about-openssl.pdf
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/everything-you-wanted-to-know-about-openssl.pdf
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
index 066fd6dd6..066fd6dd6 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h
index ca4b9be9f..ca4b9be9f 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client
index 054fd8cdc..054fd8cdc 100755
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client.c b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client.c
index 916a22ed8..916a22ed8 100644
--- a/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client.c
+++ b/src/web/server/h2o/libh2o/deps/ssl-conservatory/openssl/test_client.c
diff --git a/web/server/h2o/libh2o/deps/yaml/CMakeLists.txt b/src/web/server/h2o/libh2o/deps/yaml/CMakeLists.txt
index e84c28cd0..e84c28cd0 100644
--- a/web/server/h2o/libh2o/deps/yaml/CMakeLists.txt
+++ b/src/web/server/h2o/libh2o/deps/yaml/CMakeLists.txt
diff --git a/web/server/h2o/libh2o/deps/yaml/LICENSE b/src/web/server/h2o/libh2o/deps/yaml/LICENSE
index 050ced23f..050ced23f 100644
--- a/web/server/h2o/libh2o/deps/yaml/LICENSE
+++ b/src/web/server/h2o/libh2o/deps/yaml/LICENSE
diff --git a/web/server/h2o/libh2o/deps/yaml/Makefile.am b/src/web/server/h2o/libh2o/deps/yaml/Makefile.am
index de2a3cd04..de2a3cd04 100644
--- a/web/server/h2o/libh2o/deps/yaml/Makefile.am
+++ b/src/web/server/h2o/libh2o/deps/yaml/Makefile.am
diff --git a/web/server/h2o/libh2o/deps/yaml/Makefile.in b/src/web/server/h2o/libh2o/deps/yaml/Makefile.in
index 3a928c368..3a928c368 100644
--- a/web/server/h2o/libh2o/deps/yaml/Makefile.in
+++ b/src/web/server/h2o/libh2o/deps/yaml/Makefile.in
diff --git a/web/server/h2o/libh2o/deps/yaml/README b/src/web/server/h2o/libh2o/deps/yaml/README
index d35ebcc99..d35ebcc99 100644
--- a/web/server/h2o/libh2o/deps/yaml/README
+++ b/src/web/server/h2o/libh2o/deps/yaml/README
diff --git a/web/server/h2o/libh2o/deps/yaml/aclocal.m4 b/src/web/server/h2o/libh2o/deps/yaml/aclocal.m4
index a8e16e438..a8e16e438 100644
--- a/web/server/h2o/libh2o/deps/yaml/aclocal.m4
+++ b/src/web/server/h2o/libh2o/deps/yaml/aclocal.m4
diff --git a/web/server/h2o/libh2o/deps/yaml/config.h.in b/src/web/server/h2o/libh2o/deps/yaml/config.h.in
index 183654609..183654609 100644
--- a/web/server/h2o/libh2o/deps/yaml/config.h.in
+++ b/src/web/server/h2o/libh2o/deps/yaml/config.h.in
diff --git a/web/server/h2o/libh2o/deps/yaml/config/config.guess b/src/web/server/h2o/libh2o/deps/yaml/config/config.guess
index d622a44e5..d622a44e5 100755
--- a/web/server/h2o/libh2o/deps/yaml/config/config.guess
+++ b/src/web/server/h2o/libh2o/deps/yaml/config/config.guess
diff --git a/web/server/h2o/libh2o/deps/yaml/config/config.sub b/src/web/server/h2o/libh2o/deps/yaml/config/config.sub
index c894da455..c894da455 100755
--- a/web/server/h2o/libh2o/deps/yaml/config/config.sub
+++ b/src/web/server/h2o/libh2o/deps/yaml/config/config.sub
diff --git a/web/server/h2o/libh2o/deps/yaml/config/depcomp b/src/web/server/h2o/libh2o/deps/yaml/config/depcomp
index bd0ac0895..bd0ac0895 100755
--- a/web/server/h2o/libh2o/deps/yaml/config/depcomp
+++ b/src/web/server/h2o/libh2o/deps/yaml/config/depcomp
diff --git a/web/server/h2o/libh2o/deps/yaml/config/install-sh b/src/web/server/h2o/libh2o/deps/yaml/config/install-sh
index a9244eb07..a9244eb07 100755
--- a/web/server/h2o/libh2o/deps/yaml/config/install-sh
+++ b/src/web/server/h2o/libh2o/deps/yaml/config/install-sh
diff --git a/web/server/h2o/libh2o/deps/yaml/config/ltmain.sh b/src/web/server/h2o/libh2o/deps/yaml/config/ltmain.sh
index c2852d856..c2852d856 100644
--- a/web/server/h2o/libh2o/deps/yaml/config/ltmain.sh
+++ b/src/web/server/h2o/libh2o/deps/yaml/config/ltmain.sh
diff --git a/web/server/h2o/libh2o/deps/yaml/config/missing b/src/web/server/h2o/libh2o/deps/yaml/config/missing
index 86a8fc31e..86a8fc31e 100755
--- a/web/server/h2o/libh2o/deps/yaml/config/missing
+++ b/src/web/server/h2o/libh2o/deps/yaml/config/missing
diff --git a/web/server/h2o/libh2o/deps/yaml/configure b/src/web/server/h2o/libh2o/deps/yaml/configure
index 461265202..461265202 100755
--- a/web/server/h2o/libh2o/deps/yaml/configure
+++ b/src/web/server/h2o/libh2o/deps/yaml/configure
diff --git a/web/server/h2o/libh2o/deps/yaml/configure.ac b/src/web/server/h2o/libh2o/deps/yaml/configure.ac
index dd1aca05c..dd1aca05c 100644
--- a/web/server/h2o/libh2o/deps/yaml/configure.ac
+++ b/src/web/server/h2o/libh2o/deps/yaml/configure.ac
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/doxygen.cfg b/src/web/server/h2o/libh2o/deps/yaml/doc/doxygen.cfg
index a58bb177a..a58bb177a 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/doxygen.cfg
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/doxygen.cfg
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/annotated.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/annotated.html
index 443fc0efb..443fc0efb 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/annotated.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/annotated.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/bc_s.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/bc_s.png
index e4018628b..e4018628b 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/bc_s.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/bc_s.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/classes.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/classes.html
index 141ce138e..141ce138e 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/classes.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/classes.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/closed.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/closed.png
index b7d4bd9fe..b7d4bd9fe 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/closed.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/closed.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.css b/src/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.css
index cee0d06b5..cee0d06b5 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.css
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.css
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.png
index 635ed52fc..635ed52fc 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/doxygen.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/files.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/files.html
index d4932fe32..d4932fe32 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/files.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/files.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions.html
index a483a2158..a483a2158 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x62.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x62.html
index 08dec05f3..08dec05f3 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x62.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x62.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x63.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x63.html
index a18cd0df8..a18cd0df8 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x63.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x63.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x64.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x64.html
index b72ca8673..b72ca8673 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x64.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x64.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x65.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x65.html
index 1bf84e6c8..1bf84e6c8 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x65.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x65.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x66.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x66.html
index d023a76ff..d023a76ff 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x66.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x66.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x68.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x68.html
index 32ea5772b..32ea5772b 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x68.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x68.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x69.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x69.html
index 32adc8196..32adc8196 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x69.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x69.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6b.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6b.html
index 18ce014a0..18ce014a0 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6b.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6b.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6c.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6c.html
index 76a8ec7be..76a8ec7be 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6c.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6c.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6d.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6d.html
index 7de95aa2c..7de95aa2c 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6d.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6d.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6e.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6e.html
index b17d502fb..b17d502fb 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6e.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6e.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6f.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6f.html
index 4a01fe4b0..4a01fe4b0 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6f.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x6f.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x70.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x70.html
index 9b50a4805..9b50a4805 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x70.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x70.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x71.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x71.html
index f6f695368..f6f695368 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x71.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x71.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x72.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x72.html
index 35a3919cc..35a3919cc 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x72.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x72.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x73.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x73.html
index e59762b01..e59762b01 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x73.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x73.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x74.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x74.html
index 1130bf4fc..1130bf4fc 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x74.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x74.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x75.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x75.html
index eb44944f2..eb44944f2 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x75.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x75.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x76.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x76.html
index fabc810cf..fabc810cf 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x76.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x76.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x77.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x77.html
index 36f79ee03..36f79ee03 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x77.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_0x77.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars.html
index 8ca4bf4ef..8ca4bf4ef 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x62.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x62.html
index ddae96b55..ddae96b55 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x62.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x62.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x63.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x63.html
index e09b0ac93..e09b0ac93 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x63.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x63.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x64.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x64.html
index a20065bdf..a20065bdf 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x64.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x64.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x65.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x65.html
index 47c5f73b9..47c5f73b9 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x65.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x65.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x66.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x66.html
index b1e1018f3..b1e1018f3 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x66.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x66.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x68.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x68.html
index 46fa2225f..46fa2225f 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x68.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x68.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x69.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x69.html
index 2550f4eac..2550f4eac 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x69.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x69.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6b.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6b.html
index 3e30ecf73..3e30ecf73 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6b.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6b.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6c.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6c.html
index 6cd9218f8..6cd9218f8 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6c.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6c.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6d.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6d.html
index 27e5150a5..27e5150a5 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6d.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6d.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6e.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6e.html
index 036b5b7b1..036b5b7b1 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6e.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6e.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6f.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6f.html
index 593182a8e..593182a8e 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6f.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x6f.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x70.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x70.html
index 7cccada73..7cccada73 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x70.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x70.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x71.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x71.html
index a4e9c1395..a4e9c1395 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x71.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x71.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x72.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x72.html
index 9f4031a89..9f4031a89 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x72.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x72.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x73.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x73.html
index ba3105554..ba3105554 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x73.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x73.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x74.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x74.html
index 6b665412a..6b665412a 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x74.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x74.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x75.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x75.html
index 587477ec8..587477ec8 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x75.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x75.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x76.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x76.html
index eaeae8fa9..eaeae8fa9 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x76.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x76.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x77.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x77.html
index 3d53b285e..3d53b285e 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x77.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/functions_vars_0x77.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/globals.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals.html
index 9d9cb845d..9d9cb845d 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/globals.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_defs.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_defs.html
index c1f8e1c13..c1f8e1c13 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_defs.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_defs.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_enum.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_enum.html
index 040182832..040182832 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_enum.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_enum.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_eval.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_eval.html
index 37d1fd11c..37d1fd11c 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_eval.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_eval.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_func.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_func.html
index 146848e32..146848e32 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_func.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_func.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_type.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_type.html
index 520e79b66..520e79b66 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/globals_type.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/globals_type.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__basic.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__basic.html
index 12f7d5bcd..12f7d5bcd 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__basic.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__basic.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__emitter.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__emitter.html
index 00e08aa6e..00e08aa6e 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__emitter.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__emitter.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__events.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__events.html
index cab6426c6..cab6426c6 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__events.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__events.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__export.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__export.html
index e8aa40304..e8aa40304 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__export.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__export.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__nodes.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__nodes.html
index 092ab87c2..092ab87c2 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__nodes.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__nodes.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__parser.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__parser.html
index d82559206..d82559206 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__parser.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__parser.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__styles.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__styles.html
index 4565ca923..4565ca923 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__styles.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__styles.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__tokens.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__tokens.html
index b33d28c8e..b33d28c8e 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__tokens.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__tokens.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/group__version.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__version.html
index c2612e64e..c2612e64e 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/group__version.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/group__version.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/index.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/index.html
index 80f4ad265..80f4ad265 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/index.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/index.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/modules.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/modules.html
index 7c47d1462..7c47d1462 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/modules.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/modules.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/nav_f.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/nav_f.png
index 1b07a1620..1b07a1620 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/nav_f.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/nav_f.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/nav_h.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/nav_h.png
index 01f5fa6a5..01f5fa6a5 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/nav_h.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/nav_h.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/open.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/open.png
index 7b35d2c2c..7b35d2c2c 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/open.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/open.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__alias__data__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__alias__data__s.html
index 2e003653b..2e003653b 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__alias__data__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__alias__data__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__document__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__document__s.html
index 68a17184f..68a17184f 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__document__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__document__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__emitter__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__emitter__s.html
index 4b1b04325..4b1b04325 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__emitter__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__emitter__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__event__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__event__s.html
index bf94b1a3c..bf94b1a3c 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__event__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__event__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__mark__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__mark__s.html
index 8af7bb228..8af7bb228 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__mark__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__mark__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__pair__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__pair__s.html
index 48ed07011..48ed07011 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__pair__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__pair__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__s.html
index 12df49cfd..12df49cfd 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__node__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__parser__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__parser__s.html
index 8e3a96d77..8e3a96d77 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__parser__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__parser__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__simple__key__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__simple__key__s.html
index 946d6feec..946d6feec 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__simple__key__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__simple__key__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__tag__directive__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__tag__directive__s.html
index 37ecbb390..37ecbb390 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__tag__directive__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__tag__directive__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__token__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__token__s.html
index bc290a078..bc290a078 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__token__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__token__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__version__directive__s.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__version__directive__s.html
index 8a16d90f6..8a16d90f6 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__version__directive__s.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/structyaml__version__directive__s.html
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_a.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_a.png
index 2d99ef23f..2d99ef23f 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_a.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_a.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_b.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_b.png
index b2c3d2be3..b2c3d2be3 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_b.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_b.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_h.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_h.png
index c11f48f19..c11f48f19 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_h.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_h.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_s.png b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_s.png
index 978943ac8..978943ac8 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/tab_s.png
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tab_s.png
Binary files differ
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/tabs.css b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tabs.css
index 21920562a..21920562a 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/tabs.css
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/tabs.css
diff --git a/web/server/h2o/libh2o/deps/yaml/doc/html/yaml_8h.html b/src/web/server/h2o/libh2o/deps/yaml/doc/html/yaml_8h.html
index e341c31c0..e341c31c0 100644
--- a/web/server/h2o/libh2o/deps/yaml/doc/html/yaml_8h.html
+++ b/src/web/server/h2o/libh2o/deps/yaml/doc/html/yaml_8h.html
diff --git a/web/server/h2o/libh2o/deps/yaml/include/Makefile.am b/src/web/server/h2o/libh2o/deps/yaml/include/Makefile.am
index f81863cbb..f81863cbb 100644
--- a/web/server/h2o/libh2o/deps/yaml/include/Makefile.am
+++ b/src/web/server/h2o/libh2o/deps/yaml/include/Makefile.am
diff --git a/web/server/h2o/libh2o/deps/yaml/include/Makefile.in b/src/web/server/h2o/libh2o/deps/yaml/include/Makefile.in
index 79b60f5cc..79b60f5cc 100644
--- a/web/server/h2o/libh2o/deps/yaml/include/Makefile.in
+++ b/src/web/server/h2o/libh2o/deps/yaml/include/Makefile.in
diff --git a/web/server/h2o/libh2o/deps/yaml/include/yaml.h b/src/web/server/h2o/libh2o/deps/yaml/include/yaml.h
index acd6e8758..acd6e8758 100644
--- a/web/server/h2o/libh2o/deps/yaml/include/yaml.h
+++ b/src/web/server/h2o/libh2o/deps/yaml/include/yaml.h
diff --git a/web/server/h2o/libh2o/deps/yaml/src/Makefile.am b/src/web/server/h2o/libh2o/deps/yaml/src/Makefile.am
index 724a1b2db..724a1b2db 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/Makefile.am
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/Makefile.am
diff --git a/web/server/h2o/libh2o/deps/yaml/src/Makefile.in b/src/web/server/h2o/libh2o/deps/yaml/src/Makefile.in
index 196236e73..196236e73 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/Makefile.in
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/Makefile.in
diff --git a/web/server/h2o/libh2o/deps/yaml/src/api.c b/src/web/server/h2o/libh2o/deps/yaml/src/api.c
index 0c4732e15..0c4732e15 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/api.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/api.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/dumper.c b/src/web/server/h2o/libh2o/deps/yaml/src/dumper.c
index 203c6a709..203c6a709 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/dumper.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/dumper.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/emitter.c b/src/web/server/h2o/libh2o/deps/yaml/src/emitter.c
index c4b56a26b..c4b56a26b 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/emitter.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/emitter.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/loader.c b/src/web/server/h2o/libh2o/deps/yaml/src/loader.c
index 871149ab9..871149ab9 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/loader.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/loader.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/parser.c b/src/web/server/h2o/libh2o/deps/yaml/src/parser.c
index eb2a2c792..eb2a2c792 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/parser.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/parser.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/reader.c b/src/web/server/h2o/libh2o/deps/yaml/src/reader.c
index d47921ce2..d47921ce2 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/reader.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/reader.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/scanner.c b/src/web/server/h2o/libh2o/deps/yaml/src/scanner.c
index 88d4fa5df..88d4fa5df 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/scanner.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/scanner.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/writer.c b/src/web/server/h2o/libh2o/deps/yaml/src/writer.c
index b90019f5c..b90019f5c 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/writer.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/writer.c
diff --git a/web/server/h2o/libh2o/deps/yaml/src/yaml_private.h b/src/web/server/h2o/libh2o/deps/yaml/src/yaml_private.h
index 01ec73d28..01ec73d28 100644
--- a/web/server/h2o/libh2o/deps/yaml/src/yaml_private.h
+++ b/src/web/server/h2o/libh2o/deps/yaml/src/yaml_private.h
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/Makefile.am b/src/web/server/h2o/libh2o/deps/yaml/tests/Makefile.am
index 72e84d2a2..72e84d2a2 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/Makefile.am
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/Makefile.am
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/Makefile.in b/src/web/server/h2o/libh2o/deps/yaml/tests/Makefile.in
index 1aac554e5..1aac554e5 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/Makefile.in
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/Makefile.in
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor-alt.c b/src/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor-alt.c
index 7da194a65..7da194a65 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor-alt.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor-alt.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor.c b/src/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor.c
index fec7d59eb..fec7d59eb 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/example-deconstructor.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter-alt.c b/src/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter-alt.c
index 550e06cb7..550e06cb7 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter-alt.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter-alt.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter.c b/src/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter.c
index 946d55619..946d55619 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/example-reformatter.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/run-dumper.c b/src/web/server/h2o/libh2o/deps/yaml/tests/run-dumper.c
index 41bead494..41bead494 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/run-dumper.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/run-dumper.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/run-emitter.c b/src/web/server/h2o/libh2o/deps/yaml/tests/run-emitter.c
index 6b246fa81..6b246fa81 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/run-emitter.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/run-emitter.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/run-loader.c b/src/web/server/h2o/libh2o/deps/yaml/tests/run-loader.c
index 8c36b668c..8c36b668c 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/run-loader.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/run-loader.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/run-parser.c b/src/web/server/h2o/libh2o/deps/yaml/tests/run-parser.c
index 13031121a..13031121a 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/run-parser.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/run-parser.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c b/src/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c
index 2c79e7ccf..2c79e7ccf 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/test-reader.c b/src/web/server/h2o/libh2o/deps/yaml/tests/test-reader.c
index c6f84cd0d..c6f84cd0d 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/test-reader.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/test-reader.c
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/test-version.c b/src/web/server/h2o/libh2o/deps/yaml/tests/test-version.c
index e3e4a1623..e3e4a1623 100644
--- a/web/server/h2o/libh2o/deps/yaml/tests/test-version.c
+++ b/src/web/server/h2o/libh2o/deps/yaml/tests/test-version.c
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/Makefile.am b/src/web/server/h2o/libh2o/deps/yaml/win32/Makefile.am
index d225c3e54..d225c3e54 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/Makefile.am
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/Makefile.am
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/Makefile.in b/src/web/server/h2o/libh2o/deps/yaml/win32/Makefile.in
index 1018b8e3c..1018b8e3c 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/Makefile.in
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/Makefile.in
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/config.h b/src/web/server/h2o/libh2o/deps/yaml/win32/config.h
index 2459f4928..2459f4928 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/config.h
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/config.h
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor.dsp
index aafde405c..aafde405c 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor_alt.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor_alt.dsp
index 8540fcbe8..8540fcbe8 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor_alt.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_deconstructor_alt.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter.dsp
index 8ddafb275..8ddafb275 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter_alt.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter_alt.dsp
index cc08a261d..cc08a261d 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter_alt.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/example_reformatter_alt.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/libyaml.dsw b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/libyaml.dsw
index 698131800..698131800 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/libyaml.dsw
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/libyaml.dsw
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_dumper.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_dumper.dsp
index fea12a830..fea12a830 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_dumper.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_dumper.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_emitter.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_emitter.dsp
index e5793a915..e5793a915 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_emitter.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_emitter.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_loader.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_loader.dsp
index 3f6cd4483..3f6cd4483 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_loader.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_loader.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_parser.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_parser.dsp
index 1b2dd201b..1b2dd201b 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_parser.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_parser.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_scanner.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_scanner.dsp
index fd6354593..fd6354593 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_scanner.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/run_scanner.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_reader.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_reader.dsp
index 450119afd..450119afd 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_reader.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_reader.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_version.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_version.dsp
index 423c46744..423c46744 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_version.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/test_version.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/yaml.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/yaml.dsp
index 953552062..953552062 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/yaml.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/yaml.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vc6/yamldll.dsp b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/yamldll.dsp
index cc7895ecc..cc7895ecc 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vc6/yamldll.dsp
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vc6/yamldll.dsp
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor.vcproj
index 0b5f56d80..0b5f56d80 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor_alt.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor_alt.vcproj
index 7efbc41cf..7efbc41cf 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor_alt.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_deconstructor_alt.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter.vcproj
index 55649223b..55649223b 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter_alt.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter_alt.vcproj
index ea4c77d9d..ea4c77d9d 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter_alt.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/example_reformatter_alt.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/libyaml.sln b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/libyaml.sln
index 6f8f6d5dd..6f8f6d5dd 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/libyaml.sln
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/libyaml.sln
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_dumper.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_dumper.vcproj
index 713df63fc..713df63fc 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_dumper.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_dumper.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_emitter.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_emitter.vcproj
index 65705ce20..65705ce20 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_emitter.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_emitter.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_loader.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_loader.vcproj
index e891ca209..e891ca209 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_loader.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_loader.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_parser.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_parser.vcproj
index 49393ee35..49393ee35 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_parser.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_parser.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_scanner.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_scanner.vcproj
index 626b252b5..626b252b5 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_scanner.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/run_scanner.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_reader.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_reader.vcproj
index 7f646fe7b..7f646fe7b 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_reader.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_reader.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_version.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_version.vcproj
index df4a4da93..df4a4da93 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_version.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/test_version.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yaml.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yaml.vcproj
index 252eb083b..252eb083b 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yaml.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yaml.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yamldll.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yamldll.vcproj
index 7d472cefe..7d472cefe 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yamldll.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2003/yamldll.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor.vcproj
index a02a5ba5f..a02a5ba5f 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor_alt.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor_alt.vcproj
index 169cb995d..169cb995d 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor_alt.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_deconstructor_alt.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter.vcproj
index c2e1cee55..c2e1cee55 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter_alt.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter_alt.vcproj
index 28e5b0ffa..28e5b0ffa 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter_alt.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/example_reformatter_alt.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/libyaml.sln b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/libyaml.sln
index 4b1610a27..4b1610a27 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/libyaml.sln
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/libyaml.sln
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_dumper.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_dumper.vcproj
index 36f1da0b5..36f1da0b5 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_dumper.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_dumper.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_emitter.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_emitter.vcproj
index 3021f2de1..3021f2de1 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_emitter.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_emitter.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_loader.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_loader.vcproj
index e2f1d621b..e2f1d621b 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_loader.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_loader.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_parser.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_parser.vcproj
index c98799d8a..c98799d8a 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_parser.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_parser.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_scanner.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_scanner.vcproj
index 458ffc1a7..458ffc1a7 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_scanner.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/run_scanner.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_reader.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_reader.vcproj
index ff384a3e7..ff384a3e7 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_reader.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_reader.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_version.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_version.vcproj
index 6ee630f0a..6ee630f0a 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_version.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/test_version.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yaml.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yaml.vcproj
index ad87e1f06..ad87e1f06 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yaml.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yaml.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yamldll.vcproj b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yamldll.vcproj
index 6bd95f260..6bd95f260 100644
--- a/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yamldll.vcproj
+++ b/src/web/server/h2o/libh2o/deps/yaml/win32/vs2008/yamldll.vcproj
diff --git a/web/server/h2o/libh2o/deps/yaml/yaml-0.1.pc.in b/src/web/server/h2o/libh2o/deps/yaml/yaml-0.1.pc.in
index c566abf6a..c566abf6a 100644
--- a/web/server/h2o/libh2o/deps/yaml/yaml-0.1.pc.in
+++ b/src/web/server/h2o/libh2o/deps/yaml/yaml-0.1.pc.in
diff --git a/web/server/h2o/libh2o/deps/yoml/.gitmodules b/src/web/server/h2o/libh2o/deps/yoml/.gitmodules
index 37df0c6dc..37df0c6dc 100644
--- a/web/server/h2o/libh2o/deps/yoml/.gitmodules
+++ b/src/web/server/h2o/libh2o/deps/yoml/.gitmodules
diff --git a/web/server/h2o/libh2o/deps/yoml/Makefile b/src/web/server/h2o/libh2o/deps/yoml/Makefile
index 6f4859025..6f4859025 100644
--- a/web/server/h2o/libh2o/deps/yoml/Makefile
+++ b/src/web/server/h2o/libh2o/deps/yoml/Makefile
diff --git a/web/server/h2o/libh2o/deps/yoml/README.md b/src/web/server/h2o/libh2o/deps/yoml/README.md
index f58678927..f58678927 100644
--- a/web/server/h2o/libh2o/deps/yoml/README.md
+++ b/src/web/server/h2o/libh2o/deps/yoml/README.md
diff --git a/web/server/h2o/libh2o/deps/yoml/test-yoml.c b/src/web/server/h2o/libh2o/deps/yoml/test-yoml.c
index d154138cc..d154138cc 100644
--- a/web/server/h2o/libh2o/deps/yoml/test-yoml.c
+++ b/src/web/server/h2o/libh2o/deps/yoml/test-yoml.c
diff --git a/web/server/h2o/libh2o/deps/yoml/yoml-parser.h b/src/web/server/h2o/libh2o/deps/yoml/yoml-parser.h
index 78cdd4462..78cdd4462 100644
--- a/web/server/h2o/libh2o/deps/yoml/yoml-parser.h
+++ b/src/web/server/h2o/libh2o/deps/yoml/yoml-parser.h
diff --git a/web/server/h2o/libh2o/deps/yoml/yoml.h b/src/web/server/h2o/libh2o/deps/yoml/yoml.h
index e1e669722..e1e669722 100644
--- a/web/server/h2o/libh2o/deps/yoml/yoml.h
+++ b/src/web/server/h2o/libh2o/deps/yoml/yoml.h
diff --git a/web/server/h2o/libh2o/doc/Makefile b/src/web/server/h2o/libh2o/doc/Makefile
index 5cd5f2984..5cd5f2984 100644
--- a/web/server/h2o/libh2o/doc/Makefile
+++ b/src/web/server/h2o/libh2o/doc/Makefile
diff --git a/web/server/h2o/libh2o/doc/README.md b/src/web/server/h2o/libh2o/doc/README.md
index 12500b018..12500b018 100644
--- a/web/server/h2o/libh2o/doc/README.md
+++ b/src/web/server/h2o/libh2o/doc/README.md
diff --git a/web/server/h2o/libh2o/doc/assets/8mbps100msec-nginx195-h2o150.png b/src/web/server/h2o/libh2o/doc/assets/8mbps100msec-nginx195-h2o150.png
index 0a73185de..0a73185de 100644
--- a/web/server/h2o/libh2o/doc/assets/8mbps100msec-nginx195-h2o150.png
+++ b/src/web/server/h2o/libh2o/doc/assets/8mbps100msec-nginx195-h2o150.png
Binary files differ
diff --git a/web/server/h2o/libh2o/doc/assets/firstpaintbench.png b/src/web/server/h2o/libh2o/doc/assets/firstpaintbench.png
index 82d8deffe..82d8deffe 100644
--- a/web/server/h2o/libh2o/doc/assets/firstpaintbench.png
+++ b/src/web/server/h2o/libh2o/doc/assets/firstpaintbench.png
Binary files differ
diff --git a/web/server/h2o/libh2o/doc/assets/remotebench.png b/src/web/server/h2o/libh2o/doc/assets/remotebench.png
index 5ed9261b8..5ed9261b8 100644
--- a/web/server/h2o/libh2o/doc/assets/remotebench.png
+++ b/src/web/server/h2o/libh2o/doc/assets/remotebench.png
Binary files differ
diff --git a/web/server/h2o/libh2o/doc/assets/searchstyle.css b/src/web/server/h2o/libh2o/doc/assets/searchstyle.css
index e0a5b6f54..e0a5b6f54 100644
--- a/web/server/h2o/libh2o/doc/assets/searchstyle.css
+++ b/src/web/server/h2o/libh2o/doc/assets/searchstyle.css
diff --git a/web/server/h2o/libh2o/doc/assets/staticfile612-nginx1910-h2o170.png b/src/web/server/h2o/libh2o/doc/assets/staticfile612-nginx1910-h2o170.png
index 63ec69310..63ec69310 100644
--- a/web/server/h2o/libh2o/doc/assets/staticfile612-nginx1910-h2o170.png
+++ b/src/web/server/h2o/libh2o/doc/assets/staticfile612-nginx1910-h2o170.png
Binary files differ
diff --git a/web/server/h2o/libh2o/doc/assets/style.css b/src/web/server/h2o/libh2o/doc/assets/style.css
index fec08c3a7..fec08c3a7 100644
--- a/web/server/h2o/libh2o/doc/assets/style.css
+++ b/src/web/server/h2o/libh2o/doc/assets/style.css
diff --git a/web/server/h2o/libh2o/doc/benchmarks.html b/src/web/server/h2o/libh2o/doc/benchmarks.html
index 2b90b80de..2b90b80de 100644
--- a/web/server/h2o/libh2o/doc/benchmarks.html
+++ b/src/web/server/h2o/libh2o/doc/benchmarks.html
diff --git a/web/server/h2o/libh2o/doc/configure.html b/src/web/server/h2o/libh2o/doc/configure.html
index 230310b59..230310b59 100644
--- a/web/server/h2o/libh2o/doc/configure.html
+++ b/src/web/server/h2o/libh2o/doc/configure.html
diff --git a/web/server/h2o/libh2o/doc/configure/access_control.html b/src/web/server/h2o/libh2o/doc/configure/access_control.html
index 74f4ced6f..74f4ced6f 100644
--- a/web/server/h2o/libh2o/doc/configure/access_control.html
+++ b/src/web/server/h2o/libh2o/doc/configure/access_control.html
diff --git a/web/server/h2o/libh2o/doc/configure/access_log_directives.html b/src/web/server/h2o/libh2o/doc/configure/access_log_directives.html
index c6096049a..c6096049a 100644
--- a/web/server/h2o/libh2o/doc/configure/access_log_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/access_log_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/base_directives.html b/src/web/server/h2o/libh2o/doc/configure/base_directives.html
index 38f8ea021..38f8ea021 100644
--- a/web/server/h2o/libh2o/doc/configure/base_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/base_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/basic_auth.html b/src/web/server/h2o/libh2o/doc/configure/basic_auth.html
index 7c3825c71..7c3825c71 100644
--- a/web/server/h2o/libh2o/doc/configure/basic_auth.html
+++ b/src/web/server/h2o/libh2o/doc/configure/basic_auth.html
diff --git a/web/server/h2o/libh2o/doc/configure/cgi.html b/src/web/server/h2o/libh2o/doc/configure/cgi.html
index 983a674ff..983a674ff 100644
--- a/web/server/h2o/libh2o/doc/configure/cgi.html
+++ b/src/web/server/h2o/libh2o/doc/configure/cgi.html
diff --git a/web/server/h2o/libh2o/doc/configure/command_options.html b/src/web/server/h2o/libh2o/doc/configure/command_options.html
index 3ece2a707..3ece2a707 100644
--- a/web/server/h2o/libh2o/doc/configure/command_options.html
+++ b/src/web/server/h2o/libh2o/doc/configure/command_options.html
diff --git a/web/server/h2o/libh2o/doc/configure/compress_directives.html b/src/web/server/h2o/libh2o/doc/configure/compress_directives.html
index 04336e11b..04336e11b 100644
--- a/web/server/h2o/libh2o/doc/configure/compress_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/compress_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/dos_detection.html b/src/web/server/h2o/libh2o/doc/configure/dos_detection.html
index e7153afd7..e7153afd7 100644
--- a/web/server/h2o/libh2o/doc/configure/dos_detection.html
+++ b/src/web/server/h2o/libh2o/doc/configure/dos_detection.html
diff --git a/web/server/h2o/libh2o/doc/configure/errordoc_directives.html b/src/web/server/h2o/libh2o/doc/configure/errordoc_directives.html
index 77e635f8f..77e635f8f 100644
--- a/web/server/h2o/libh2o/doc/configure/errordoc_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/errordoc_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/expires_directives.html b/src/web/server/h2o/libh2o/doc/configure/expires_directives.html
index 7ca6ad677..7ca6ad677 100644
--- a/web/server/h2o/libh2o/doc/configure/expires_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/expires_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/fastcgi_directives.html b/src/web/server/h2o/libh2o/doc/configure/fastcgi_directives.html
index a2e895ace..a2e895ace 100644
--- a/web/server/h2o/libh2o/doc/configure/fastcgi_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/fastcgi_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/file_directives.html b/src/web/server/h2o/libh2o/doc/configure/file_directives.html
index a5ec2c683..a5ec2c683 100644
--- a/web/server/h2o/libh2o/doc/configure/file_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/file_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/headers_directives.html b/src/web/server/h2o/libh2o/doc/configure/headers_directives.html
index 078331048..078331048 100644
--- a/web/server/h2o/libh2o/doc/configure/headers_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/headers_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/http1_directives.html b/src/web/server/h2o/libh2o/doc/configure/http1_directives.html
index f7768d57b..f7768d57b 100644
--- a/web/server/h2o/libh2o/doc/configure/http1_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/http1_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/http2_directives.html b/src/web/server/h2o/libh2o/doc/configure/http2_directives.html
index 2d92aafc5..2d92aafc5 100644
--- a/web/server/h2o/libh2o/doc/configure/http2_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/http2_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/mruby.html b/src/web/server/h2o/libh2o/doc/configure/mruby.html
index d424351d8..d424351d8 100644
--- a/web/server/h2o/libh2o/doc/configure/mruby.html
+++ b/src/web/server/h2o/libh2o/doc/configure/mruby.html
diff --git a/web/server/h2o/libh2o/doc/configure/mruby_directives.html b/src/web/server/h2o/libh2o/doc/configure/mruby_directives.html
index 2a188a5b4..2a188a5b4 100644
--- a/web/server/h2o/libh2o/doc/configure/mruby_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/mruby_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/proxy_directives.html b/src/web/server/h2o/libh2o/doc/configure/proxy_directives.html
index 6b8bb7e0a..6b8bb7e0a 100644
--- a/web/server/h2o/libh2o/doc/configure/proxy_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/proxy_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/quick_start.html b/src/web/server/h2o/libh2o/doc/configure/quick_start.html
index e74f7043a..e74f7043a 100644
--- a/web/server/h2o/libh2o/doc/configure/quick_start.html
+++ b/src/web/server/h2o/libh2o/doc/configure/quick_start.html
diff --git a/web/server/h2o/libh2o/doc/configure/redirect_directives.html b/src/web/server/h2o/libh2o/doc/configure/redirect_directives.html
index 81ffb3620..81ffb3620 100644
--- a/web/server/h2o/libh2o/doc/configure/redirect_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/redirect_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/reproxy_directives.html b/src/web/server/h2o/libh2o/doc/configure/reproxy_directives.html
index 760770ce6..760770ce6 100644
--- a/web/server/h2o/libh2o/doc/configure/reproxy_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/reproxy_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/status_directives.html b/src/web/server/h2o/libh2o/doc/configure/status_directives.html
index 255810667..255810667 100644
--- a/web/server/h2o/libh2o/doc/configure/status_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/status_directives.html
diff --git a/web/server/h2o/libh2o/doc/configure/syntax_and_structure.html b/src/web/server/h2o/libh2o/doc/configure/syntax_and_structure.html
index 0d0fd7a28..0d0fd7a28 100644
--- a/web/server/h2o/libh2o/doc/configure/syntax_and_structure.html
+++ b/src/web/server/h2o/libh2o/doc/configure/syntax_and_structure.html
diff --git a/web/server/h2o/libh2o/doc/configure/throttle_response_directives.html b/src/web/server/h2o/libh2o/doc/configure/throttle_response_directives.html
index a61c767f5..a61c767f5 100644
--- a/web/server/h2o/libh2o/doc/configure/throttle_response_directives.html
+++ b/src/web/server/h2o/libh2o/doc/configure/throttle_response_directives.html
diff --git a/web/server/h2o/libh2o/doc/faq.html b/src/web/server/h2o/libh2o/doc/faq.html
index 8ea1f17e2..8ea1f17e2 100644
--- a/web/server/h2o/libh2o/doc/faq.html
+++ b/src/web/server/h2o/libh2o/doc/faq.html
diff --git a/web/server/h2o/libh2o/doc/index.html b/src/web/server/h2o/libh2o/doc/index.html
index f71f712df..f71f712df 100644
--- a/web/server/h2o/libh2o/doc/index.html
+++ b/src/web/server/h2o/libh2o/doc/index.html
diff --git a/web/server/h2o/libh2o/doc/install.html b/src/web/server/h2o/libh2o/doc/install.html
index a42acef28..a42acef28 100644
--- a/web/server/h2o/libh2o/doc/install.html
+++ b/src/web/server/h2o/libh2o/doc/install.html
diff --git a/web/server/h2o/libh2o/doc/search/jquery-1.9.1.min.js b/src/web/server/h2o/libh2o/doc/search/jquery-1.9.1.min.js
index 006e95310..006e95310 100644
--- a/web/server/h2o/libh2o/doc/search/jquery-1.9.1.min.js
+++ b/src/web/server/h2o/libh2o/doc/search/jquery-1.9.1.min.js
diff --git a/web/server/h2o/libh2o/doc/search/oktavia-english-search.js b/src/web/server/h2o/libh2o/doc/search/oktavia-english-search.js
index 5911991f5..5911991f5 100644
--- a/web/server/h2o/libh2o/doc/search/oktavia-english-search.js
+++ b/src/web/server/h2o/libh2o/doc/search/oktavia-english-search.js
diff --git a/web/server/h2o/libh2o/doc/search/oktavia-jquery-ui.js b/src/web/server/h2o/libh2o/doc/search/oktavia-jquery-ui.js
index 8bbf8983a..8bbf8983a 100644
--- a/web/server/h2o/libh2o/doc/search/oktavia-jquery-ui.js
+++ b/src/web/server/h2o/libh2o/doc/search/oktavia-jquery-ui.js
diff --git a/web/server/h2o/libh2o/doc/search/searchindex.js b/src/web/server/h2o/libh2o/doc/search/searchindex.js
index acebb6612..acebb6612 100644
--- a/web/server/h2o/libh2o/doc/search/searchindex.js
+++ b/src/web/server/h2o/libh2o/doc/search/searchindex.js
diff --git a/web/server/h2o/libh2o/examples/doc_root.alternate/index.txt b/src/web/server/h2o/libh2o/examples/doc_root.alternate/index.txt
index ce0136250..ce0136250 100644
--- a/web/server/h2o/libh2o/examples/doc_root.alternate/index.txt
+++ b/src/web/server/h2o/libh2o/examples/doc_root.alternate/index.txt
diff --git a/web/server/h2o/libh2o/examples/doc_root/index.html b/src/web/server/h2o/libh2o/examples/doc_root/index.html
index 2d8ed62ff..2d8ed62ff 100644
--- a/web/server/h2o/libh2o/examples/doc_root/index.html
+++ b/src/web/server/h2o/libh2o/examples/doc_root/index.html
diff --git a/web/server/h2o/libh2o/examples/h2o/alternate.crt b/src/web/server/h2o/libh2o/examples/h2o/alternate.crt
index 3aeabcc93..3aeabcc93 100644
--- a/web/server/h2o/libh2o/examples/h2o/alternate.crt
+++ b/src/web/server/h2o/libh2o/examples/h2o/alternate.crt
diff --git a/web/server/h2o/libh2o/examples/h2o/alternate.key b/src/web/server/h2o/libh2o/examples/h2o/alternate.key
index 3a144e9b5..3a144e9b5 100644
--- a/web/server/h2o/libh2o/examples/h2o/alternate.key
+++ b/src/web/server/h2o/libh2o/examples/h2o/alternate.key
diff --git a/web/server/h2o/libh2o/examples/h2o/h2o.conf b/src/web/server/h2o/libh2o/examples/h2o/h2o.conf
index 52749c518..52749c518 100644
--- a/web/server/h2o/libh2o/examples/h2o/h2o.conf
+++ b/src/web/server/h2o/libh2o/examples/h2o/h2o.conf
diff --git a/web/server/h2o/libh2o/examples/h2o/server.crt b/src/web/server/h2o/libh2o/examples/h2o/server.crt
index 07438a975..07438a975 100644
--- a/web/server/h2o/libh2o/examples/h2o/server.crt
+++ b/src/web/server/h2o/libh2o/examples/h2o/server.crt
diff --git a/web/server/h2o/libh2o/examples/h2o/server.key b/src/web/server/h2o/libh2o/examples/h2o/server.key
index 85a6f25f6..85a6f25f6 100644
--- a/web/server/h2o/libh2o/examples/h2o/server.key
+++ b/src/web/server/h2o/libh2o/examples/h2o/server.key
diff --git a/web/server/h2o/libh2o/examples/h2o_mruby/h2o.conf b/src/web/server/h2o/libh2o/examples/h2o_mruby/h2o.conf
index cf94ec3ab..cf94ec3ab 100644
--- a/web/server/h2o/libh2o/examples/h2o_mruby/h2o.conf
+++ b/src/web/server/h2o/libh2o/examples/h2o_mruby/h2o.conf
diff --git a/web/server/h2o/libh2o/examples/h2o_mruby/hello.rb b/src/web/server/h2o/libh2o/examples/h2o_mruby/hello.rb
index bceb7b0cd..bceb7b0cd 100644
--- a/web/server/h2o/libh2o/examples/h2o_mruby/hello.rb
+++ b/src/web/server/h2o/libh2o/examples/h2o_mruby/hello.rb
diff --git a/web/server/h2o/libh2o/examples/libh2o/http1client.c b/src/web/server/h2o/libh2o/examples/libh2o/http1client.c
index bcf9b94b2..bcf9b94b2 100644
--- a/web/server/h2o/libh2o/examples/libh2o/http1client.c
+++ b/src/web/server/h2o/libh2o/examples/libh2o/http1client.c
diff --git a/web/server/h2o/libh2o/examples/libh2o/latency-optimization.c b/src/web/server/h2o/libh2o/examples/libh2o/latency-optimization.c
index de34bc9c6..de34bc9c6 100644
--- a/web/server/h2o/libh2o/examples/libh2o/latency-optimization.c
+++ b/src/web/server/h2o/libh2o/examples/libh2o/latency-optimization.c
diff --git a/web/server/h2o/libh2o/examples/libh2o/simple.c b/src/web/server/h2o/libh2o/examples/libh2o/simple.c
index bb72bf60c..bb72bf60c 100644
--- a/web/server/h2o/libh2o/examples/libh2o/simple.c
+++ b/src/web/server/h2o/libh2o/examples/libh2o/simple.c
diff --git a/web/server/h2o/libh2o/examples/libh2o/socket-client.c b/src/web/server/h2o/libh2o/examples/libh2o/socket-client.c
index 591d3896a..591d3896a 100644
--- a/web/server/h2o/libh2o/examples/libh2o/socket-client.c
+++ b/src/web/server/h2o/libh2o/examples/libh2o/socket-client.c
diff --git a/web/server/h2o/libh2o/examples/libh2o/websocket.c b/src/web/server/h2o/libh2o/examples/libh2o/websocket.c
index c977bbd63..c977bbd63 100644
--- a/web/server/h2o/libh2o/examples/libh2o/websocket.c
+++ b/src/web/server/h2o/libh2o/examples/libh2o/websocket.c
diff --git a/web/server/h2o/libh2o/fuzz/README.md b/src/web/server/h2o/libh2o/fuzz/README.md
index 6f594b34b..6f594b34b 100644
--- a/web/server/h2o/libh2o/fuzz/README.md
+++ b/src/web/server/h2o/libh2o/fuzz/README.md
diff --git a/web/server/h2o/libh2o/fuzz/driver.cc b/src/web/server/h2o/libh2o/fuzz/driver.cc
index c76b9ad72..c76b9ad72 100644
--- a/web/server/h2o/libh2o/fuzz/driver.cc
+++ b/src/web/server/h2o/libh2o/fuzz/driver.cc
diff --git a/web/server/h2o/libh2o/fuzz/driver_url.cc b/src/web/server/h2o/libh2o/fuzz/driver_url.cc
index 862cf0215..862cf0215 100644
--- a/web/server/h2o/libh2o/fuzz/driver_url.cc
+++ b/src/web/server/h2o/libh2o/fuzz/driver_url.cc
diff --git a/web/server/h2o/libh2o/fuzz/gather-data.patch b/src/web/server/h2o/libh2o/fuzz/gather-data.patch
index 4b8f5f708..4b8f5f708 100644
--- a/web/server/h2o/libh2o/fuzz/gather-data.patch
+++ b/src/web/server/h2o/libh2o/fuzz/gather-data.patch
diff --git a/web/server/h2o/libh2o/fuzz/http.dict b/src/web/server/h2o/libh2o/fuzz/http.dict
index 1d76d71f5..1d76d71f5 100644
--- a/web/server/h2o/libh2o/fuzz/http.dict
+++ b/src/web/server/h2o/libh2o/fuzz/http.dict
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0073ff961d4fece8e8ab08db8b1fc224c1fb0b1a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0073ff961d4fece8e8ab08db8b1fc224c1fb0b1a
index adc034b04..adc034b04 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0073ff961d4fece8e8ab08db8b1fc224c1fb0b1a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0073ff961d4fece8e8ab08db8b1fc224c1fb0b1a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0075e6a2425ff3be994f34b3ed13d419a355d283 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0075e6a2425ff3be994f34b3ed13d419a355d283
index 29e9ae30e..29e9ae30e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0075e6a2425ff3be994f34b3ed13d419a355d283
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0075e6a2425ff3be994f34b3ed13d419a355d283
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/007aaebe47992720ab52f5fde04b21754b119259 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/007aaebe47992720ab52f5fde04b21754b119259
index 195de429b..195de429b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/007aaebe47992720ab52f5fde04b21754b119259
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/007aaebe47992720ab52f5fde04b21754b119259
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/00859e3c1ad6cf8f8a5aee55e5317f1167f6a769 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/00859e3c1ad6cf8f8a5aee55e5317f1167f6a769
index ccb4cda41..ccb4cda41 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/00859e3c1ad6cf8f8a5aee55e5317f1167f6a769
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/00859e3c1ad6cf8f8a5aee55e5317f1167f6a769
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/009f8a352fa78059cb2c1952b8376d90e4646c4f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/009f8a352fa78059cb2c1952b8376d90e4646c4f
index 9b212692c..9b212692c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/009f8a352fa78059cb2c1952b8376d90e4646c4f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/009f8a352fa78059cb2c1952b8376d90e4646c4f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/00c8e55df9538bec12696a5c2f8b65c3a3c9cab8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/00c8e55df9538bec12696a5c2f8b65c3a3c9cab8
index f93501dbe..f93501dbe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/00c8e55df9538bec12696a5c2f8b65c3a3c9cab8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/00c8e55df9538bec12696a5c2f8b65c3a3c9cab8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/00f033cef12d7f2ebaa3581b2d652cd79452164f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/00f033cef12d7f2ebaa3581b2d652cd79452164f
index ab9492656..ab9492656 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/00f033cef12d7f2ebaa3581b2d652cd79452164f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/00f033cef12d7f2ebaa3581b2d652cd79452164f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410
index 598b8d3b9..598b8d3b9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/01490fc815f10450b0da99ead3c6794b90c4c037 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/01490fc815f10450b0da99ead3c6794b90c4c037
index ec4519ab5..ec4519ab5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/01490fc815f10450b0da99ead3c6794b90c4c037
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/01490fc815f10450b0da99ead3c6794b90c4c037
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/01ce74d1333b9c936f8bbdd0b487d97df23e77e7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/01ce74d1333b9c936f8bbdd0b487d97df23e77e7
index ffbe6f270..ffbe6f270 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/01ce74d1333b9c936f8bbdd0b487d97df23e77e7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/01ce74d1333b9c936f8bbdd0b487d97df23e77e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/020abbfec696d1f521410780a09f21e2d77b390c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/020abbfec696d1f521410780a09f21e2d77b390c
index 054a6d67a..054a6d67a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/020abbfec696d1f521410780a09f21e2d77b390c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/020abbfec696d1f521410780a09f21e2d77b390c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/020dc81c12738e3fd1d46b0f7f5a0fe8c2ed8c15 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/020dc81c12738e3fd1d46b0f7f5a0fe8c2ed8c15
index 8a15a9fdd..8a15a9fdd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/020dc81c12738e3fd1d46b0f7f5a0fe8c2ed8c15
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/020dc81c12738e3fd1d46b0f7f5a0fe8c2ed8c15
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/023846e197954a9f75622b27740b7a091908cbf3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/023846e197954a9f75622b27740b7a091908cbf3
index bb70ba958..bb70ba958 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/023846e197954a9f75622b27740b7a091908cbf3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/023846e197954a9f75622b27740b7a091908cbf3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/02522bc9ede9d63770c2e7969b742c8103349540 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02522bc9ede9d63770c2e7969b742c8103349540
index 283585917..283585917 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/02522bc9ede9d63770c2e7969b742c8103349540
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02522bc9ede9d63770c2e7969b742c8103349540
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/025fc9926ee3f054bdf29c26e0c4bc11ba492571 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/025fc9926ee3f054bdf29c26e0c4bc11ba492571
index 8898a9fbf..8898a9fbf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/025fc9926ee3f054bdf29c26e0c4bc11ba492571
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/025fc9926ee3f054bdf29c26e0c4bc11ba492571
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0261add9a92a23364530947ab3b3a2cc38380ebc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0261add9a92a23364530947ab3b3a2cc38380ebc
index 354b54f88..354b54f88 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0261add9a92a23364530947ab3b3a2cc38380ebc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0261add9a92a23364530947ab3b3a2cc38380ebc
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/02717f04242d8fb2efea5ef2430930f1851e7e4c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02717f04242d8fb2efea5ef2430930f1851e7e4c
index 007c5ad30..007c5ad30 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/02717f04242d8fb2efea5ef2430930f1851e7e4c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02717f04242d8fb2efea5ef2430930f1851e7e4c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0282e8fe9f5dbf15b89224c687d4dd35b1270bce b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0282e8fe9f5dbf15b89224c687d4dd35b1270bce
index b6351993e..b6351993e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0282e8fe9f5dbf15b89224c687d4dd35b1270bce
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0282e8fe9f5dbf15b89224c687d4dd35b1270bce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/02857ee524f3bd8fec17e80641dc63e71dff4738 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02857ee524f3bd8fec17e80641dc63e71dff4738
index c9d52dc9e..c9d52dc9e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/02857ee524f3bd8fec17e80641dc63e71dff4738
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02857ee524f3bd8fec17e80641dc63e71dff4738
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/02ab02e650318d288d3e94647d4574ed3b5fe648 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02ab02e650318d288d3e94647d4574ed3b5fe648
index bff7f2d61..bff7f2d61 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/02ab02e650318d288d3e94647d4574ed3b5fe648
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/02ab02e650318d288d3e94647d4574ed3b5fe648
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/031e1f3c2b987b4c5f17ba5d3aef1caff6494423 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/031e1f3c2b987b4c5f17ba5d3aef1caff6494423
index f2ffd28c8..f2ffd28c8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/031e1f3c2b987b4c5f17ba5d3aef1caff6494423
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/031e1f3c2b987b4c5f17ba5d3aef1caff6494423
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/032fe65bf57e79bbfdb091c2fbeb2df9b2c1e316 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/032fe65bf57e79bbfdb091c2fbeb2df9b2c1e316
index 55fcfdf75..55fcfdf75 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/032fe65bf57e79bbfdb091c2fbeb2df9b2c1e316
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/032fe65bf57e79bbfdb091c2fbeb2df9b2c1e316
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0343bcafd8e26929d5ce28bf6ca2f7703756d52f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0343bcafd8e26929d5ce28bf6ca2f7703756d52f
index 1b9a1fe4f..1b9a1fe4f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0343bcafd8e26929d5ce28bf6ca2f7703756d52f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0343bcafd8e26929d5ce28bf6ca2f7703756d52f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0372900761d0b4d0247ae121accca6656d418195 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0372900761d0b4d0247ae121accca6656d418195
index d9a9d5d15..d9a9d5d15 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0372900761d0b4d0247ae121accca6656d418195
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0372900761d0b4d0247ae121accca6656d418195
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/03a6e822535ff471f1c37b7f9a595f8172fc56a7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/03a6e822535ff471f1c37b7f9a595f8172fc56a7
index 2f013047e..2f013047e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/03a6e822535ff471f1c37b7f9a595f8172fc56a7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/03a6e822535ff471f1c37b7f9a595f8172fc56a7
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/040905acc9963f7621e458262c338835bb57d429 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/040905acc9963f7621e458262c338835bb57d429
index f78846b49..f78846b49 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/040905acc9963f7621e458262c338835bb57d429
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/040905acc9963f7621e458262c338835bb57d429
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0438c52317e9aa570633420069b1d2c7a7dc94fa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0438c52317e9aa570633420069b1d2c7a7dc94fa
index 3d446f9bf..3d446f9bf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0438c52317e9aa570633420069b1d2c7a7dc94fa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0438c52317e9aa570633420069b1d2c7a7dc94fa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0486709d9c3b0004faacac305c9df7878f2d3b13 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0486709d9c3b0004faacac305c9df7878f2d3b13
index 9858f4de5..9858f4de5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0486709d9c3b0004faacac305c9df7878f2d3b13
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0486709d9c3b0004faacac305c9df7878f2d3b13
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/049209ded0c79c1e4a5c54bebef4a4d75d75bc51 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/049209ded0c79c1e4a5c54bebef4a4d75d75bc51
index 4c58013d5..4c58013d5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/049209ded0c79c1e4a5c54bebef4a4d75d75bc51
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/049209ded0c79c1e4a5c54bebef4a4d75d75bc51
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/04a511711c0335d890422e755c1f53e8a67b9927 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04a511711c0335d890422e755c1f53e8a67b9927
index eb99543ec..eb99543ec 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/04a511711c0335d890422e755c1f53e8a67b9927
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04a511711c0335d890422e755c1f53e8a67b9927
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/04b02de801ffe783e1b9ba878fab4a63b247f0a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04b02de801ffe783e1b9ba878fab4a63b247f0a5
index 3ec6209f1..3ec6209f1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/04b02de801ffe783e1b9ba878fab4a63b247f0a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04b02de801ffe783e1b9ba878fab4a63b247f0a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/04c01fab34e99886f8d2764ba4e045d334775741 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04c01fab34e99886f8d2764ba4e045d334775741
index b4efac427..b4efac427 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/04c01fab34e99886f8d2764ba4e045d334775741
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04c01fab34e99886f8d2764ba4e045d334775741
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/04c2ab37bf102bc6544b16353f32c6b28467020c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04c2ab37bf102bc6544b16353f32c6b28467020c
index 68623429f..68623429f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/04c2ab37bf102bc6544b16353f32c6b28467020c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/04c2ab37bf102bc6544b16353f32c6b28467020c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0539c1b237f157dbed5a1cab8635be7905fab70b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0539c1b237f157dbed5a1cab8635be7905fab70b
index 2a1e15f44..2a1e15f44 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0539c1b237f157dbed5a1cab8635be7905fab70b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0539c1b237f157dbed5a1cab8635be7905fab70b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/056d31c169d5e1b13abd2293d09cb532b3c38ea3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/056d31c169d5e1b13abd2293d09cb532b3c38ea3
index 84c748035..84c748035 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/056d31c169d5e1b13abd2293d09cb532b3c38ea3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/056d31c169d5e1b13abd2293d09cb532b3c38ea3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0570e22ede546e214b46cd092bb462863fe8ad51 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0570e22ede546e214b46cd092bb462863fe8ad51
index a03e6a3b6..a03e6a3b6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0570e22ede546e214b46cd092bb462863fe8ad51
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0570e22ede546e214b46cd092bb462863fe8ad51
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/058d7bec28c1e826f7caf1450f45f20a99ef92e4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/058d7bec28c1e826f7caf1450f45f20a99ef92e4
index cdeb9607f..cdeb9607f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/058d7bec28c1e826f7caf1450f45f20a99ef92e4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/058d7bec28c1e826f7caf1450f45f20a99ef92e4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0678f1fff0a8801ba06846bb807e7d0b5a676bd4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0678f1fff0a8801ba06846bb807e7d0b5a676bd4
index 7bb8af9e8..7bb8af9e8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0678f1fff0a8801ba06846bb807e7d0b5a676bd4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0678f1fff0a8801ba06846bb807e7d0b5a676bd4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0680968132828605788f774f8a28581adaf86128 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0680968132828605788f774f8a28581adaf86128
index 1800969f1..1800969f1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0680968132828605788f774f8a28581adaf86128
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0680968132828605788f774f8a28581adaf86128
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/06b9ef9358692aab64c4221f50d136a8f4243c65 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/06b9ef9358692aab64c4221f50d136a8f4243c65
index 8e502f3eb..8e502f3eb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/06b9ef9358692aab64c4221f50d136a8f4243c65
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/06b9ef9358692aab64c4221f50d136a8f4243c65
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/070ea5edbd38d486f4ed1453709ab177cef1c918 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/070ea5edbd38d486f4ed1453709ab177cef1c918
index 3ae17adbb..3ae17adbb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/070ea5edbd38d486f4ed1453709ab177cef1c918
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/070ea5edbd38d486f4ed1453709ab177cef1c918
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0723a9c587dcde2152991810363eef92d22be069 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0723a9c587dcde2152991810363eef92d22be069
index d3a05cd67..d3a05cd67 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0723a9c587dcde2152991810363eef92d22be069
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0723a9c587dcde2152991810363eef92d22be069
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/07275521c4cde98265246b6ad2d84e0aba735a17 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/07275521c4cde98265246b6ad2d84e0aba735a17
index 5b9a79f6b..5b9a79f6b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/07275521c4cde98265246b6ad2d84e0aba735a17
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/07275521c4cde98265246b6ad2d84e0aba735a17
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/07e9f111cd4700ac3485be68bee790ee4dfab133 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/07e9f111cd4700ac3485be68bee790ee4dfab133
index 6c3b165e3..6c3b165e3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/07e9f111cd4700ac3485be68bee790ee4dfab133
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/07e9f111cd4700ac3485be68bee790ee4dfab133
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/07f2d8c4d140c18ee7a1e07e5613d5dbbd9165f0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/07f2d8c4d140c18ee7a1e07e5613d5dbbd9165f0
index a921f277c..a921f277c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/07f2d8c4d140c18ee7a1e07e5613d5dbbd9165f0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/07f2d8c4d140c18ee7a1e07e5613d5dbbd9165f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0800bf95ea50debae4031d15bb4702dfbf8902d3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0800bf95ea50debae4031d15bb4702dfbf8902d3
index 283c7a05a..283c7a05a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0800bf95ea50debae4031d15bb4702dfbf8902d3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0800bf95ea50debae4031d15bb4702dfbf8902d3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/083c4d7d505242fcecf380aaff301ac20f636a54 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/083c4d7d505242fcecf380aaff301ac20f636a54
index 9a24fd194..9a24fd194 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/083c4d7d505242fcecf380aaff301ac20f636a54
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/083c4d7d505242fcecf380aaff301ac20f636a54
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/08568a7fd09664adec70b34f930dbfd86465466b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/08568a7fd09664adec70b34f930dbfd86465466b
index 96ec6ad4a..96ec6ad4a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/08568a7fd09664adec70b34f930dbfd86465466b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/08568a7fd09664adec70b34f930dbfd86465466b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/086bbc94ad894b7b7891c55f1342973525ca11d9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/086bbc94ad894b7b7891c55f1342973525ca11d9
index e06367a69..e06367a69 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/086bbc94ad894b7b7891c55f1342973525ca11d9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/086bbc94ad894b7b7891c55f1342973525ca11d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/08f6d18a7373bd4c1cb10263cec803eeee9a0cf0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/08f6d18a7373bd4c1cb10263cec803eeee9a0cf0
index 36c9260ab..36c9260ab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/08f6d18a7373bd4c1cb10263cec803eeee9a0cf0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/08f6d18a7373bd4c1cb10263cec803eeee9a0cf0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/08fb004707ea6e995339e8d880f3fe211a22a2a1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/08fb004707ea6e995339e8d880f3fe211a22a2a1
index efbd0bcbd..efbd0bcbd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/08fb004707ea6e995339e8d880f3fe211a22a2a1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/08fb004707ea6e995339e8d880f3fe211a22a2a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0907e9d1c49524947ba15ea7efbb821670b5279a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0907e9d1c49524947ba15ea7efbb821670b5279a
index cf9452832..cf9452832 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0907e9d1c49524947ba15ea7efbb821670b5279a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0907e9d1c49524947ba15ea7efbb821670b5279a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0952d1ddc848d7c2a24354f129c92cb0dc441858 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0952d1ddc848d7c2a24354f129c92cb0dc441858
index 82968dc51..82968dc51 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0952d1ddc848d7c2a24354f129c92cb0dc441858
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0952d1ddc848d7c2a24354f129c92cb0dc441858
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/096086287ae58296a4afd6b99df0473de7353f25 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/096086287ae58296a4afd6b99df0473de7353f25
index 051bfdc32..051bfdc32 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/096086287ae58296a4afd6b99df0473de7353f25
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/096086287ae58296a4afd6b99df0473de7353f25
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/09cf2c32c7276885d09d8488498b33255f1b0a8f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/09cf2c32c7276885d09d8488498b33255f1b0a8f
index 388bb8bbd..388bb8bbd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/09cf2c32c7276885d09d8488498b33255f1b0a8f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/09cf2c32c7276885d09d8488498b33255f1b0a8f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/09f6230e296d5e34fef5a62b15e2e547d05268e3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/09f6230e296d5e34fef5a62b15e2e547d05268e3
index 6562ca0c7..6562ca0c7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/09f6230e296d5e34fef5a62b15e2e547d05268e3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/09f6230e296d5e34fef5a62b15e2e547d05268e3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0a075a80806a613e566dc6dfac3680788cdf74ac b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a075a80806a613e566dc6dfac3680788cdf74ac
index 7c63b2514..7c63b2514 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0a075a80806a613e566dc6dfac3680788cdf74ac
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a075a80806a613e566dc6dfac3680788cdf74ac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0a592628ab19583d1a1e22e51b4234d83db3f015 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a592628ab19583d1a1e22e51b4234d83db3f015
index dbd01eadd..dbd01eadd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0a592628ab19583d1a1e22e51b4234d83db3f015
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a592628ab19583d1a1e22e51b4234d83db3f015
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0a91988dd148e97510cb55461cec45cfea44bc8a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a91988dd148e97510cb55461cec45cfea44bc8a
index 0c7f3f302..0c7f3f302 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0a91988dd148e97510cb55461cec45cfea44bc8a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a91988dd148e97510cb55461cec45cfea44bc8a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0a9acf4b3133a631431faee9f7010d12c5e68158 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a9acf4b3133a631431faee9f7010d12c5e68158
index 4a3fa45a4..4a3fa45a4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0a9acf4b3133a631431faee9f7010d12c5e68158
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a9acf4b3133a631431faee9f7010d12c5e68158
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0a9ea1c26fba5ae0b5017895a195f1546a76ab61 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a9ea1c26fba5ae0b5017895a195f1546a76ab61
index 2c9df1f27..2c9df1f27 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0a9ea1c26fba5ae0b5017895a195f1546a76ab61
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0a9ea1c26fba5ae0b5017895a195f1546a76ab61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0ad36aac61e702521f300d650eea8c733bc63e48 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0ad36aac61e702521f300d650eea8c733bc63e48
index a7376d9d7..a7376d9d7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0ad36aac61e702521f300d650eea8c733bc63e48
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0ad36aac61e702521f300d650eea8c733bc63e48
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0b078f373db5eacd97c8a0fded058c53e0faf400 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0b078f373db5eacd97c8a0fded058c53e0faf400
index 07aaa9149..07aaa9149 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0b078f373db5eacd97c8a0fded058c53e0faf400
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0b078f373db5eacd97c8a0fded058c53e0faf400
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0b8481b6e7097372cf99a74ba985fdbe6cdb3eb0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0b8481b6e7097372cf99a74ba985fdbe6cdb3eb0
index 67fbce458..67fbce458 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0b8481b6e7097372cf99a74ba985fdbe6cdb3eb0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0b8481b6e7097372cf99a74ba985fdbe6cdb3eb0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0baa89912bc5c8b18ad6ae79008d8349b80963b0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0baa89912bc5c8b18ad6ae79008d8349b80963b0
index 8dc91634a..8dc91634a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0baa89912bc5c8b18ad6ae79008d8349b80963b0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0baa89912bc5c8b18ad6ae79008d8349b80963b0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0bc64465650f71eceec7fa64ed13249ca2b219e8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0bc64465650f71eceec7fa64ed13249ca2b219e8
index 91d2b9424..91d2b9424 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0bc64465650f71eceec7fa64ed13249ca2b219e8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0bc64465650f71eceec7fa64ed13249ca2b219e8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0bdac81db96a292212ad5228ed25e7a6cd8c109e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0bdac81db96a292212ad5228ed25e7a6cd8c109e
index ceea611f7..ceea611f7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0bdac81db96a292212ad5228ed25e7a6cd8c109e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0bdac81db96a292212ad5228ed25e7a6cd8c109e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0cb036be271197d61b648cedd9fc963762f7c5c0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0cb036be271197d61b648cedd9fc963762f7c5c0
index 3e87d6a95..3e87d6a95 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0cb036be271197d61b648cedd9fc963762f7c5c0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0cb036be271197d61b648cedd9fc963762f7c5c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0cd092fb37fc857380986a387a9521b9daa29531 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0cd092fb37fc857380986a387a9521b9daa29531
index 199182faf..199182faf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0cd092fb37fc857380986a387a9521b9daa29531
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0cd092fb37fc857380986a387a9521b9daa29531
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0cfbf9a67fe4674c6305a20b8e691b3e36b9e0da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0cfbf9a67fe4674c6305a20b8e691b3e36b9e0da
index 1fc208493..1fc208493 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0cfbf9a67fe4674c6305a20b8e691b3e36b9e0da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0cfbf9a67fe4674c6305a20b8e691b3e36b9e0da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0d17e46800348b439080ffcbaed73b3f53b44b4b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d17e46800348b439080ffcbaed73b3f53b44b4b
index 35a8e872f..35a8e872f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0d17e46800348b439080ffcbaed73b3f53b44b4b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d17e46800348b439080ffcbaed73b3f53b44b4b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0d1e5128bfddd399b6714dd8ab2d1a9707069305 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d1e5128bfddd399b6714dd8ab2d1a9707069305
index c7c194105..c7c194105 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0d1e5128bfddd399b6714dd8ab2d1a9707069305
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d1e5128bfddd399b6714dd8ab2d1a9707069305
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0d6b0c34a5210138ae8d80627b3d06c8d325a60a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d6b0c34a5210138ae8d80627b3d06c8d325a60a
index bb120fbc9..bb120fbc9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0d6b0c34a5210138ae8d80627b3d06c8d325a60a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d6b0c34a5210138ae8d80627b3d06c8d325a60a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0d6eaa8a1a0a2b430d53a3a62f5baf498ce4c2d5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d6eaa8a1a0a2b430d53a3a62f5baf498ce4c2d5
index 30610c337..30610c337 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0d6eaa8a1a0a2b430d53a3a62f5baf498ce4c2d5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0d6eaa8a1a0a2b430d53a3a62f5baf498ce4c2d5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0db2b90c53f0a41f2731b8272f4167201c317639 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0db2b90c53f0a41f2731b8272f4167201c317639
index 1cc6922ca..1cc6922ca 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0db2b90c53f0a41f2731b8272f4167201c317639
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0db2b90c53f0a41f2731b8272f4167201c317639
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0de16b471b804c2bc7bfd11bcac347f3ad560808 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0de16b471b804c2bc7bfd11bcac347f3ad560808
index bdf013920..bdf013920 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0de16b471b804c2bc7bfd11bcac347f3ad560808
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0de16b471b804c2bc7bfd11bcac347f3ad560808
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0e25aac19ca089e10ece1b96d627487d33e4d67f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e25aac19ca089e10ece1b96d627487d33e4d67f
index a2f3fb51a..a2f3fb51a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0e25aac19ca089e10ece1b96d627487d33e4d67f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e25aac19ca089e10ece1b96d627487d33e4d67f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0e30cc2720af4c23a016b0e02511c74e1c69e448 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e30cc2720af4c23a016b0e02511c74e1c69e448
index fac7c1c16..fac7c1c16 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0e30cc2720af4c23a016b0e02511c74e1c69e448
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e30cc2720af4c23a016b0e02511c74e1c69e448
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0e4e15cdf3a600937c3e8e410e0cdb9f7ca707b2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e4e15cdf3a600937c3e8e410e0cdb9f7ca707b2
index ddf4e7e8e..ddf4e7e8e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0e4e15cdf3a600937c3e8e410e0cdb9f7ca707b2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e4e15cdf3a600937c3e8e410e0cdb9f7ca707b2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0e5098aae3b936d5562d52080170ccbfb1cf92b4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e5098aae3b936d5562d52080170ccbfb1cf92b4
index a4985845c..a4985845c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0e5098aae3b936d5562d52080170ccbfb1cf92b4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e5098aae3b936d5562d52080170ccbfb1cf92b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0e63bcd79cb377ad04ce03f8e1fbf8992af9af2f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e63bcd79cb377ad04ce03f8e1fbf8992af9af2f
index 7235ada1c..7235ada1c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0e63bcd79cb377ad04ce03f8e1fbf8992af9af2f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e63bcd79cb377ad04ce03f8e1fbf8992af9af2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0e801dcdf7b8487e1caee4b79bacfec9b4eed44b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e801dcdf7b8487e1caee4b79bacfec9b4eed44b
index c0e6376c1..c0e6376c1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0e801dcdf7b8487e1caee4b79bacfec9b4eed44b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0e801dcdf7b8487e1caee4b79bacfec9b4eed44b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0f2def10cdc54c44ac2ae5b3fb8cc645aa2006d7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f2def10cdc54c44ac2ae5b3fb8cc645aa2006d7
index 50f5152bd..50f5152bd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0f2def10cdc54c44ac2ae5b3fb8cc645aa2006d7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f2def10cdc54c44ac2ae5b3fb8cc645aa2006d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0f69ae04e1a1cf0b75cbf8cf6dfbd3d4d2abb520 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f69ae04e1a1cf0b75cbf8cf6dfbd3d4d2abb520
index c4e7d03d5..c4e7d03d5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0f69ae04e1a1cf0b75cbf8cf6dfbd3d4d2abb520
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f69ae04e1a1cf0b75cbf8cf6dfbd3d4d2abb520
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0f8dcc3747f91548e1a2c08e0d3c9e47ec1eebc5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f8dcc3747f91548e1a2c08e0d3c9e47ec1eebc5
index 48b0c229d..48b0c229d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0f8dcc3747f91548e1a2c08e0d3c9e47ec1eebc5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f8dcc3747f91548e1a2c08e0d3c9e47ec1eebc5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0f9e6297105a823cf362d8ff65d38356c892a543 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f9e6297105a823cf362d8ff65d38356c892a543
index 7c90a4aae..7c90a4aae 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0f9e6297105a823cf362d8ff65d38356c892a543
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0f9e6297105a823cf362d8ff65d38356c892a543
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/0ff64e297699a036113266f9c5e05ee5d3a50689 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0ff64e297699a036113266f9c5e05ee5d3a50689
index 64db5eeb5..64db5eeb5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/0ff64e297699a036113266f9c5e05ee5d3a50689
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/0ff64e297699a036113266f9c5e05ee5d3a50689
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1052d204e0df80fe5c35a8a2a91b0001bd06f628 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1052d204e0df80fe5c35a8a2a91b0001bd06f628
index 639acfff8..639acfff8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1052d204e0df80fe5c35a8a2a91b0001bd06f628
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1052d204e0df80fe5c35a8a2a91b0001bd06f628
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/106530f2bf32ea9beca843de2f1b0684c76c900d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/106530f2bf32ea9beca843de2f1b0684c76c900d
index 297a989ef..297a989ef 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/106530f2bf32ea9beca843de2f1b0684c76c900d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/106530f2bf32ea9beca843de2f1b0684c76c900d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/107e7b880383a589eba5f0fc43fb040041430d41 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/107e7b880383a589eba5f0fc43fb040041430d41
index ba731192a..ba731192a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/107e7b880383a589eba5f0fc43fb040041430d41
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/107e7b880383a589eba5f0fc43fb040041430d41
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/109a440a6d2cc56e497fc8124623eb4efb3cd219 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/109a440a6d2cc56e497fc8124623eb4efb3cd219
index 23322daf7..23322daf7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/109a440a6d2cc56e497fc8124623eb4efb3cd219
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/109a440a6d2cc56e497fc8124623eb4efb3cd219
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/10c03043c3df1e86bcce0b3efd8cd0b6aa527f65 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10c03043c3df1e86bcce0b3efd8cd0b6aa527f65
index ffcae4ba4..ffcae4ba4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/10c03043c3df1e86bcce0b3efd8cd0b6aa527f65
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10c03043c3df1e86bcce0b3efd8cd0b6aa527f65
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/10e633c6c6867944a96f485821c66038fb1d5b66 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10e633c6c6867944a96f485821c66038fb1d5b66
index 376ed0cbf..376ed0cbf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/10e633c6c6867944a96f485821c66038fb1d5b66
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10e633c6c6867944a96f485821c66038fb1d5b66
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/10eedd95f4a7bdd47d1efe460166353a7b1f325f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10eedd95f4a7bdd47d1efe460166353a7b1f325f
index 50426259e..50426259e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/10eedd95f4a7bdd47d1efe460166353a7b1f325f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10eedd95f4a7bdd47d1efe460166353a7b1f325f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/10f478aff5e07f6590d8f19c33a4c83113a95919 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10f478aff5e07f6590d8f19c33a4c83113a95919
index 431dcee61..431dcee61 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/10f478aff5e07f6590d8f19c33a4c83113a95919
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/10f478aff5e07f6590d8f19c33a4c83113a95919
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/113f7036b0464d9f288b6778540f52ecaf5d30ad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/113f7036b0464d9f288b6778540f52ecaf5d30ad
index 9062efd45..9062efd45 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/113f7036b0464d9f288b6778540f52ecaf5d30ad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/113f7036b0464d9f288b6778540f52ecaf5d30ad
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1142333f4d8c0cf94e48d7c8658813588fea28cf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1142333f4d8c0cf94e48d7c8658813588fea28cf
index 3203732b8..3203732b8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1142333f4d8c0cf94e48d7c8658813588fea28cf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1142333f4d8c0cf94e48d7c8658813588fea28cf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/114abae7b4a0685a4027135e2456a6e8c05bf2d2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/114abae7b4a0685a4027135e2456a6e8c05bf2d2
index 7cfe081dd..7cfe081dd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/114abae7b4a0685a4027135e2456a6e8c05bf2d2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/114abae7b4a0685a4027135e2456a6e8c05bf2d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1155b5f1511b5e90848a7948678237e8c8b27ecf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1155b5f1511b5e90848a7948678237e8c8b27ecf
index 7ae27a14f..7ae27a14f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1155b5f1511b5e90848a7948678237e8c8b27ecf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1155b5f1511b5e90848a7948678237e8c8b27ecf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/11a45e16d6a90a89daa5df994b31298d38d929ec b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11a45e16d6a90a89daa5df994b31298d38d929ec
index 0bc152499..0bc152499 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/11a45e16d6a90a89daa5df994b31298d38d929ec
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11a45e16d6a90a89daa5df994b31298d38d929ec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/11c21ca99dc6082c3c624055928fda926e06cdbb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11c21ca99dc6082c3c624055928fda926e06cdbb
index 8c79de531..8c79de531 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/11c21ca99dc6082c3c624055928fda926e06cdbb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11c21ca99dc6082c3c624055928fda926e06cdbb
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/11eb0838c7b6f033c4aaf660c30654831eae7d95 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11eb0838c7b6f033c4aaf660c30654831eae7d95
index c5f4257eb..c5f4257eb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/11eb0838c7b6f033c4aaf660c30654831eae7d95
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11eb0838c7b6f033c4aaf660c30654831eae7d95
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/11eb1a8c5802d57047b600371981c199d62e2f39 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11eb1a8c5802d57047b600371981c199d62e2f39
index abb028b61..abb028b61 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/11eb1a8c5802d57047b600371981c199d62e2f39
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11eb1a8c5802d57047b600371981c199d62e2f39
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/11f9515c341d3149cd21d6104a6cf14784ce14c9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11f9515c341d3149cd21d6104a6cf14784ce14c9
index 9b49012c1..9b49012c1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/11f9515c341d3149cd21d6104a6cf14784ce14c9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/11f9515c341d3149cd21d6104a6cf14784ce14c9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/12083214a2aa628cab2692eae323d733564c194e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12083214a2aa628cab2692eae323d733564c194e
index ac224d590..ac224d590 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/12083214a2aa628cab2692eae323d733564c194e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12083214a2aa628cab2692eae323d733564c194e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/121dca3e43944979cd2a7c4c9e4c2a3b43ba25e2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/121dca3e43944979cd2a7c4c9e4c2a3b43ba25e2
index d1a6329e3..d1a6329e3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/121dca3e43944979cd2a7c4c9e4c2a3b43ba25e2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/121dca3e43944979cd2a7c4c9e4c2a3b43ba25e2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/127e5bdafcf1f2bd1ebe1f6d73df3570b73d51f9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/127e5bdafcf1f2bd1ebe1f6d73df3570b73d51f9
index b48e6d450..b48e6d450 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/127e5bdafcf1f2bd1ebe1f6d73df3570b73d51f9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/127e5bdafcf1f2bd1ebe1f6d73df3570b73d51f9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/12a85cf4c675381073e11ea1e6ee52b11b7ac64c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12a85cf4c675381073e11ea1e6ee52b11b7ac64c
index 520be2a8c..520be2a8c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/12a85cf4c675381073e11ea1e6ee52b11b7ac64c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12a85cf4c675381073e11ea1e6ee52b11b7ac64c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/12b612300dcf190ec25621c145ef17160ac814da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12b612300dcf190ec25621c145ef17160ac814da
index cae35f621..cae35f621 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/12b612300dcf190ec25621c145ef17160ac814da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12b612300dcf190ec25621c145ef17160ac814da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/12cc49051555874508acfd9bda8a0d6a9401835c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12cc49051555874508acfd9bda8a0d6a9401835c
index b35436e06..b35436e06 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/12cc49051555874508acfd9bda8a0d6a9401835c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12cc49051555874508acfd9bda8a0d6a9401835c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/12cce724fc01ea375503095b5c33f19e910e2914 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12cce724fc01ea375503095b5c33f19e910e2914
index 20ff14b0e..20ff14b0e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/12cce724fc01ea375503095b5c33f19e910e2914
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/12cce724fc01ea375503095b5c33f19e910e2914
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/134f03572ffc1ee93d626593722666cff45af399 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/134f03572ffc1ee93d626593722666cff45af399
index 051c19b4f..051c19b4f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/134f03572ffc1ee93d626593722666cff45af399
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/134f03572ffc1ee93d626593722666cff45af399
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/13a385b823fb0456efb5c63d4a487e0497eb3b2f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/13a385b823fb0456efb5c63d4a487e0497eb3b2f
index 80a1ec113..80a1ec113 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/13a385b823fb0456efb5c63d4a487e0497eb3b2f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/13a385b823fb0456efb5c63d4a487e0497eb3b2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/13aacb8abd706327bafd36c723bd57830ceee83d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/13aacb8abd706327bafd36c723bd57830ceee83d
index d4492c82f..d4492c82f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/13aacb8abd706327bafd36c723bd57830ceee83d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/13aacb8abd706327bafd36c723bd57830ceee83d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/140068d036315d4000a0f174368bc781fc8d0de0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/140068d036315d4000a0f174368bc781fc8d0de0
index 6307088ac..6307088ac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/140068d036315d4000a0f174368bc781fc8d0de0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/140068d036315d4000a0f174368bc781fc8d0de0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/146f3ed97f72aa0f8a32e7ed3658231a7073fe45 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/146f3ed97f72aa0f8a32e7ed3658231a7073fe45
index 208bf0162..208bf0162 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/146f3ed97f72aa0f8a32e7ed3658231a7073fe45
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/146f3ed97f72aa0f8a32e7ed3658231a7073fe45
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1473334c710e5276807b51e32c94fdb0e3f649d7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1473334c710e5276807b51e32c94fdb0e3f649d7
index 973c3602b..973c3602b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1473334c710e5276807b51e32c94fdb0e3f649d7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1473334c710e5276807b51e32c94fdb0e3f649d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1479364f4459f0230ae93c081e4c9b5be055d895 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1479364f4459f0230ae93c081e4c9b5be055d895
index 366273f6e..366273f6e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1479364f4459f0230ae93c081e4c9b5be055d895
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1479364f4459f0230ae93c081e4c9b5be055d895
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1482d4def1a11164fbf8bdfe0b4962859be6af79 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1482d4def1a11164fbf8bdfe0b4962859be6af79
index 013b6c219..013b6c219 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1482d4def1a11164fbf8bdfe0b4962859be6af79
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1482d4def1a11164fbf8bdfe0b4962859be6af79
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/153349d6d2b138179d044ecf61cb1cd02646606a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/153349d6d2b138179d044ecf61cb1cd02646606a
index 5788566be..5788566be 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/153349d6d2b138179d044ecf61cb1cd02646606a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/153349d6d2b138179d044ecf61cb1cd02646606a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15480694f309a6c2fc12a1d83bfc6cd61d793aa9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15480694f309a6c2fc12a1d83bfc6cd61d793aa9
index d986e35b3..d986e35b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15480694f309a6c2fc12a1d83bfc6cd61d793aa9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15480694f309a6c2fc12a1d83bfc6cd61d793aa9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1548282dfd42eada9fcc8b0a6bc7db1a4fb7f7e9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1548282dfd42eada9fcc8b0a6bc7db1a4fb7f7e9
index 1e8083285..1e8083285 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1548282dfd42eada9fcc8b0a6bc7db1a4fb7f7e9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1548282dfd42eada9fcc8b0a6bc7db1a4fb7f7e9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1573296a81c751342a69f20843fd05ad8dcf8f5a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1573296a81c751342a69f20843fd05ad8dcf8f5a
index 4267ddaac..4267ddaac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1573296a81c751342a69f20843fd05ad8dcf8f5a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1573296a81c751342a69f20843fd05ad8dcf8f5a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/158a3e3c6ed534fe9a32d53fa1ea058d5dc018f0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/158a3e3c6ed534fe9a32d53fa1ea058d5dc018f0
index 8d3ad4a51..8d3ad4a51 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/158a3e3c6ed534fe9a32d53fa1ea058d5dc018f0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/158a3e3c6ed534fe9a32d53fa1ea058d5dc018f0
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15a9f5eb0c593f5d6e71946ce01046577a77a4dc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15a9f5eb0c593f5d6e71946ce01046577a77a4dc
index 90d2b2dbd..90d2b2dbd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15a9f5eb0c593f5d6e71946ce01046577a77a4dc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15a9f5eb0c593f5d6e71946ce01046577a77a4dc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648
index 512e79496..512e79496 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15c6b982e642a0b248d8162f06d4fafc8c643a81 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15c6b982e642a0b248d8162f06d4fafc8c643a81
index fc32c6e7d..fc32c6e7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15c6b982e642a0b248d8162f06d4fafc8c643a81
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15c6b982e642a0b248d8162f06d4fafc8c643a81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15d4d4915d0f06435c161d4d9f4bb1bca7295620 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15d4d4915d0f06435c161d4d9f4bb1bca7295620
index a77c271f8..a77c271f8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15d4d4915d0f06435c161d4d9f4bb1bca7295620
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15d4d4915d0f06435c161d4d9f4bb1bca7295620
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15d5887f94afb1b1c779c5c82286e1cb8281dab7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15d5887f94afb1b1c779c5c82286e1cb8281dab7
index 6d668d096..6d668d096 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15d5887f94afb1b1c779c5c82286e1cb8281dab7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15d5887f94afb1b1c779c5c82286e1cb8281dab7
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15d9e3cba22bd9b381eeff77c9303cf81d40a63b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15d9e3cba22bd9b381eeff77c9303cf81d40a63b
index 9cfdf1bac..9cfdf1bac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15d9e3cba22bd9b381eeff77c9303cf81d40a63b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15d9e3cba22bd9b381eeff77c9303cf81d40a63b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/15f533f441cadd5dd8ae7c5963a2b807a3933886 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15f533f441cadd5dd8ae7c5963a2b807a3933886
index f49e764fe..f49e764fe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/15f533f441cadd5dd8ae7c5963a2b807a3933886
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/15f533f441cadd5dd8ae7c5963a2b807a3933886
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/16140cb42921b9471e84602466245bb8805597a9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16140cb42921b9471e84602466245bb8805597a9
index f25be55f4..f25be55f4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/16140cb42921b9471e84602466245bb8805597a9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16140cb42921b9471e84602466245bb8805597a9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/161d969a1f1970caa31251298a527217127c13e4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/161d969a1f1970caa31251298a527217127c13e4
index 89cc1219e..89cc1219e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/161d969a1f1970caa31251298a527217127c13e4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/161d969a1f1970caa31251298a527217127c13e4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/161fec882440fb840b81e9233cfd9aa71708c8d2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/161fec882440fb840b81e9233cfd9aa71708c8d2
index 7d03a389c..7d03a389c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/161fec882440fb840b81e9233cfd9aa71708c8d2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/161fec882440fb840b81e9233cfd9aa71708c8d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1645d959bbafb840be325465844309ed89178a2e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1645d959bbafb840be325465844309ed89178a2e
index 00548f64a..00548f64a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1645d959bbafb840be325465844309ed89178a2e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1645d959bbafb840be325465844309ed89178a2e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/165b9821a664c20567e3aa3e1949c4c88cbd8baf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/165b9821a664c20567e3aa3e1949c4c88cbd8baf
index 4b18a87b4..4b18a87b4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/165b9821a664c20567e3aa3e1949c4c88cbd8baf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/165b9821a664c20567e3aa3e1949c4c88cbd8baf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/168b8e0a420f29815cedcb6d8b5a92ece4a7bcaf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/168b8e0a420f29815cedcb6d8b5a92ece4a7bcaf
index 4356e3b77..4356e3b77 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/168b8e0a420f29815cedcb6d8b5a92ece4a7bcaf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/168b8e0a420f29815cedcb6d8b5a92ece4a7bcaf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/16cfb6b9b0426c654c5061db3e156da9d3ac50cf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16cfb6b9b0426c654c5061db3e156da9d3ac50cf
index 6ea5bbb9c..6ea5bbb9c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/16cfb6b9b0426c654c5061db3e156da9d3ac50cf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16cfb6b9b0426c654c5061db3e156da9d3ac50cf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/16d697269394ee89e715245aaa1621b8697ad23b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16d697269394ee89e715245aaa1621b8697ad23b
index a70818702..a70818702 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/16d697269394ee89e715245aaa1621b8697ad23b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16d697269394ee89e715245aaa1621b8697ad23b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/16f60f4e36cd29a63f2d0c84a172112f5e4896c9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16f60f4e36cd29a63f2d0c84a172112f5e4896c9
index d90a874fc..d90a874fc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/16f60f4e36cd29a63f2d0c84a172112f5e4896c9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16f60f4e36cd29a63f2d0c84a172112f5e4896c9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/16f9b1b1196313ad918491067fd837bb05471e76 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16f9b1b1196313ad918491067fd837bb05471e76
index 420c95435..420c95435 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/16f9b1b1196313ad918491067fd837bb05471e76
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/16f9b1b1196313ad918491067fd837bb05471e76
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1716a12e0eafb3b47b9616421d2d96511be23ba9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1716a12e0eafb3b47b9616421d2d96511be23ba9
index a20d87191..a20d87191 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1716a12e0eafb3b47b9616421d2d96511be23ba9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1716a12e0eafb3b47b9616421d2d96511be23ba9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/17212cd8ae49a14e24e91278f19cfe6717a96ce0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/17212cd8ae49a14e24e91278f19cfe6717a96ce0
index 8aba3dc68..8aba3dc68 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/17212cd8ae49a14e24e91278f19cfe6717a96ce0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/17212cd8ae49a14e24e91278f19cfe6717a96ce0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/172b9931fa07581e40d87afb4aa7a63923b16f6c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/172b9931fa07581e40d87afb4aa7a63923b16f6c
index 66ca576fb..66ca576fb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/172b9931fa07581e40d87afb4aa7a63923b16f6c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/172b9931fa07581e40d87afb4aa7a63923b16f6c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/173763824f9ea945e03cbe26de5fb8c8949d09f9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/173763824f9ea945e03cbe26de5fb8c8949d09f9
index 8315807ff..8315807ff 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/173763824f9ea945e03cbe26de5fb8c8949d09f9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/173763824f9ea945e03cbe26de5fb8c8949d09f9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1759617056b4e02de091b736df210fe08553eeaa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1759617056b4e02de091b736df210fe08553eeaa
index b10f6b42a..b10f6b42a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1759617056b4e02de091b736df210fe08553eeaa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1759617056b4e02de091b736df210fe08553eeaa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/17b51ef853d5e73e75085ba22352fce83604cf86 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/17b51ef853d5e73e75085ba22352fce83604cf86
index c3c6f32db..c3c6f32db 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/17b51ef853d5e73e75085ba22352fce83604cf86
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/17b51ef853d5e73e75085ba22352fce83604cf86
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/17db63e12beea2f5ec8800fbedceb87c15836489 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/17db63e12beea2f5ec8800fbedceb87c15836489
index 63abcb310..63abcb310 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/17db63e12beea2f5ec8800fbedceb87c15836489
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/17db63e12beea2f5ec8800fbedceb87c15836489
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/183cf3a3732da3e3096c9c968827ade53539d9fd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/183cf3a3732da3e3096c9c968827ade53539d9fd
index 1246453c3..1246453c3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/183cf3a3732da3e3096c9c968827ade53539d9fd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/183cf3a3732da3e3096c9c968827ade53539d9fd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1841f17ef270bd645115e01fbe6290a81c5437f9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1841f17ef270bd645115e01fbe6290a81c5437f9
index f280a5d8b..f280a5d8b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1841f17ef270bd645115e01fbe6290a81c5437f9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1841f17ef270bd645115e01fbe6290a81c5437f9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/18560685c04fe109b9c4eadf5269f14747fb06d1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18560685c04fe109b9c4eadf5269f14747fb06d1
index 7a0fe65e8..7a0fe65e8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/18560685c04fe109b9c4eadf5269f14747fb06d1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18560685c04fe109b9c4eadf5269f14747fb06d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/186f732c1859203a558f2c4477711bc121ccaf6c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/186f732c1859203a558f2c4477711bc121ccaf6c
index cac16a0d5..cac16a0d5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/186f732c1859203a558f2c4477711bc121ccaf6c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/186f732c1859203a558f2c4477711bc121ccaf6c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/187b39e79c5d9b2de68b46646fb894ece05e3965 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/187b39e79c5d9b2de68b46646fb894ece05e3965
index 3d29e3ba3..3d29e3ba3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/187b39e79c5d9b2de68b46646fb894ece05e3965
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/187b39e79c5d9b2de68b46646fb894ece05e3965
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/188ed1b0c0481feaf0851d953821cdaec6b5b53e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/188ed1b0c0481feaf0851d953821cdaec6b5b53e
index 420dc534e..420dc534e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/188ed1b0c0481feaf0851d953821cdaec6b5b53e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/188ed1b0c0481feaf0851d953821cdaec6b5b53e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/18b2fe59546b7de8be258637b7006f18e896021f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18b2fe59546b7de8be258637b7006f18e896021f
index a14eba602..a14eba602 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/18b2fe59546b7de8be258637b7006f18e896021f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18b2fe59546b7de8be258637b7006f18e896021f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/18b8e5cf41bd67e9962f4a7d4c643463eccb704d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18b8e5cf41bd67e9962f4a7d4c643463eccb704d
index 48e177880..48e177880 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/18b8e5cf41bd67e9962f4a7d4c643463eccb704d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18b8e5cf41bd67e9962f4a7d4c643463eccb704d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/18bceb14359f6bc138980fdcb89beeaccc3ed464 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18bceb14359f6bc138980fdcb89beeaccc3ed464
index 5283f7a67..5283f7a67 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/18bceb14359f6bc138980fdcb89beeaccc3ed464
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18bceb14359f6bc138980fdcb89beeaccc3ed464
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/18da9559a48985fea0c9943304275cab916ee231 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18da9559a48985fea0c9943304275cab916ee231
index febca2ad1..febca2ad1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/18da9559a48985fea0c9943304275cab916ee231
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18da9559a48985fea0c9943304275cab916ee231
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/18e7489ff93a515d0bb7a9c6729abde0fde670c5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18e7489ff93a515d0bb7a9c6729abde0fde670c5
index c848bfacf..c848bfacf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/18e7489ff93a515d0bb7a9c6729abde0fde670c5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18e7489ff93a515d0bb7a9c6729abde0fde670c5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/18f4cd60a2298186439d5c37577b37145cd86082 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18f4cd60a2298186439d5c37577b37145cd86082
index 3a8f51fef..3a8f51fef 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/18f4cd60a2298186439d5c37577b37145cd86082
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/18f4cd60a2298186439d5c37577b37145cd86082
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1902bc3783c29c911a4e1a3bbf99feaac01f82ab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1902bc3783c29c911a4e1a3bbf99feaac01f82ab
index bbf399203..bbf399203 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1902bc3783c29c911a4e1a3bbf99feaac01f82ab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1902bc3783c29c911a4e1a3bbf99feaac01f82ab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1906e42528d3c21659b6872192dfb7201bb73ffe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1906e42528d3c21659b6872192dfb7201bb73ffe
index 138c36297..138c36297 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1906e42528d3c21659b6872192dfb7201bb73ffe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1906e42528d3c21659b6872192dfb7201bb73ffe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/193165342eaa85d2e63ae52fefe992ea6ab4148c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/193165342eaa85d2e63ae52fefe992ea6ab4148c
index fe1bc59ec..fe1bc59ec 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/193165342eaa85d2e63ae52fefe992ea6ab4148c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/193165342eaa85d2e63ae52fefe992ea6ab4148c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1961aa4fd54c0e85e4c59bfee3851264c67eee95 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1961aa4fd54c0e85e4c59bfee3851264c67eee95
index 4def73b93..4def73b93 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1961aa4fd54c0e85e4c59bfee3851264c67eee95
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1961aa4fd54c0e85e4c59bfee3851264c67eee95
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/19a8acd6b6fa8a86d8000f54edb1994d21bbaa78 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/19a8acd6b6fa8a86d8000f54edb1994d21bbaa78
index f20ed1cfe..f20ed1cfe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/19a8acd6b6fa8a86d8000f54edb1994d21bbaa78
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/19a8acd6b6fa8a86d8000f54edb1994d21bbaa78
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1a3ae521607db131df15ead67c3767aa9124de9e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1a3ae521607db131df15ead67c3767aa9124de9e
index 7899b37dc..7899b37dc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1a3ae521607db131df15ead67c3767aa9124de9e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1a3ae521607db131df15ead67c3767aa9124de9e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1ab430b2c624a5f049b850885d063d526496b446 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1ab430b2c624a5f049b850885d063d526496b446
index aaafdedff..aaafdedff 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1ab430b2c624a5f049b850885d063d526496b446
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1ab430b2c624a5f049b850885d063d526496b446
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1af01fd078ed461d4c9be8380ae15e40bdcfba93 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1af01fd078ed461d4c9be8380ae15e40bdcfba93
index 5993f774a..5993f774a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1af01fd078ed461d4c9be8380ae15e40bdcfba93
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1af01fd078ed461d4c9be8380ae15e40bdcfba93
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1af4347333e6ad9275dcfb43e7a34d7d062a832d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1af4347333e6ad9275dcfb43e7a34d7d062a832d
index 1d341b2b6..1d341b2b6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1af4347333e6ad9275dcfb43e7a34d7d062a832d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1af4347333e6ad9275dcfb43e7a34d7d062a832d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1afc0ecaad0ac7f4f2fc9f8075f59d3534cd7825 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1afc0ecaad0ac7f4f2fc9f8075f59d3534cd7825
index a9a0df673..a9a0df673 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1afc0ecaad0ac7f4f2fc9f8075f59d3534cd7825
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1afc0ecaad0ac7f4f2fc9f8075f59d3534cd7825
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1afc295c8a6e8675537de470311adeb8295ec6eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1afc295c8a6e8675537de470311adeb8295ec6eb
index e8bc3c852..e8bc3c852 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1afc295c8a6e8675537de470311adeb8295ec6eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1afc295c8a6e8675537de470311adeb8295ec6eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1b0ea54f182217017fae82855510ce8c5a7ca425 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1b0ea54f182217017fae82855510ce8c5a7ca425
index 92b2194b7..92b2194b7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1b0ea54f182217017fae82855510ce8c5a7ca425
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1b0ea54f182217017fae82855510ce8c5a7ca425
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1b7419de43f9c6fd464bb98e9f165fe88f41a42a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1b7419de43f9c6fd464bb98e9f165fe88f41a42a
index f94b24aa8..f94b24aa8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1b7419de43f9c6fd464bb98e9f165fe88f41a42a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1b7419de43f9c6fd464bb98e9f165fe88f41a42a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1b7e3ade3f2d4f413b2b9f28dc51dc9f7a595819 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1b7e3ade3f2d4f413b2b9f28dc51dc9f7a595819
index 7490d5f45..7490d5f45 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1b7e3ade3f2d4f413b2b9f28dc51dc9f7a595819
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1b7e3ade3f2d4f413b2b9f28dc51dc9f7a595819
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1bd0da10500deb66aa4358c837e182c2c8758cdf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1bd0da10500deb66aa4358c837e182c2c8758cdf
index 965ea7ec7..965ea7ec7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1bd0da10500deb66aa4358c837e182c2c8758cdf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1bd0da10500deb66aa4358c837e182c2c8758cdf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1be1889a0b73c48327efce21aa3d6bbdde2c4d4a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1be1889a0b73c48327efce21aa3d6bbdde2c4d4a
index 1ab1dc5f7..1ab1dc5f7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1be1889a0b73c48327efce21aa3d6bbdde2c4d4a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1be1889a0b73c48327efce21aa3d6bbdde2c4d4a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1beb50d58637c2305db9d955977723ee76204027 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1beb50d58637c2305db9d955977723ee76204027
index cc306fafa..cc306fafa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1beb50d58637c2305db9d955977723ee76204027
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1beb50d58637c2305db9d955977723ee76204027
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1bf5edf031308f64fb61e8bc661d0ccc79b4346b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1bf5edf031308f64fb61e8bc661d0ccc79b4346b
index e6a673610..e6a673610 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1bf5edf031308f64fb61e8bc661d0ccc79b4346b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1bf5edf031308f64fb61e8bc661d0ccc79b4346b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1c4d10a203c2039dbd89aa1088cfcf32df40b339 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1c4d10a203c2039dbd89aa1088cfcf32df40b339
index bd3604f02..bd3604f02 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1c4d10a203c2039dbd89aa1088cfcf32df40b339
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1c4d10a203c2039dbd89aa1088cfcf32df40b339
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1c87113e5b01ae1435acf60c5e807304ce46288a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1c87113e5b01ae1435acf60c5e807304ce46288a
index 2420fa798..2420fa798 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1c87113e5b01ae1435acf60c5e807304ce46288a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1c87113e5b01ae1435acf60c5e807304ce46288a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cad28eeb13fcdd7463f5b4bb726b4447106e153 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cad28eeb13fcdd7463f5b4bb726b4447106e153
index 1696d3e33..1696d3e33 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cad28eeb13fcdd7463f5b4bb726b4447106e153
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cad28eeb13fcdd7463f5b4bb726b4447106e153
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cba3a15adc1a67ee9a0a79a685bd77d989fb053 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cba3a15adc1a67ee9a0a79a685bd77d989fb053
index afa70a657..afa70a657 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cba3a15adc1a67ee9a0a79a685bd77d989fb053
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cba3a15adc1a67ee9a0a79a685bd77d989fb053
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cd39b174346cf9f6c46d5572c78fbcfcb2b122e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cd39b174346cf9f6c46d5572c78fbcfcb2b122e
index 0e709d2d9..0e709d2d9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cd39b174346cf9f6c46d5572c78fbcfcb2b122e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cd39b174346cf9f6c46d5572c78fbcfcb2b122e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cdd98f479d84d3b6a34032233c8cb9a5be6120f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cdd98f479d84d3b6a34032233c8cb9a5be6120f
index cdabfa6f0..cdabfa6f0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cdd98f479d84d3b6a34032233c8cb9a5be6120f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cdd98f479d84d3b6a34032233c8cb9a5be6120f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cde95f5777da164a0413b3d32c42e3f096f2e30 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cde95f5777da164a0413b3d32c42e3f096f2e30
index f9dc9b372..f9dc9b372 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cde95f5777da164a0413b3d32c42e3f096f2e30
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cde95f5777da164a0413b3d32c42e3f096f2e30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cea205fb12ba3d81886bc5036499e0652ede45a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cea205fb12ba3d81886bc5036499e0652ede45a
index 9c3471434..9c3471434 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cea205fb12ba3d81886bc5036499e0652ede45a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cea205fb12ba3d81886bc5036499e0652ede45a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cf4efa78a5b7d3977f604f9685c75f87f16ad93 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cf4efa78a5b7d3977f604f9685c75f87f16ad93
index c97fc277b..c97fc277b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cf4efa78a5b7d3977f604f9685c75f87f16ad93
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cf4efa78a5b7d3977f604f9685c75f87f16ad93
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cf9863657d435c2bf7064569ba6db7348567299 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cf9863657d435c2bf7064569ba6db7348567299
index 9e89459db..9e89459db 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cf9863657d435c2bf7064569ba6db7348567299
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cf9863657d435c2bf7064569ba6db7348567299
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cfac6500eccc4cd967227da1aba86ee1bf59056 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cfac6500eccc4cd967227da1aba86ee1bf59056
index 2825f1b2c..2825f1b2c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cfac6500eccc4cd967227da1aba86ee1bf59056
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cfac6500eccc4cd967227da1aba86ee1bf59056
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1cfdaac5366dc47b0c1aef4574cf8fda45809f83 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cfdaac5366dc47b0c1aef4574cf8fda45809f83
index ed7eae4cb..ed7eae4cb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1cfdaac5366dc47b0c1aef4574cf8fda45809f83
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1cfdaac5366dc47b0c1aef4574cf8fda45809f83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d13c2176660266f1bfa0ad0fd5dffdb868ee224 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d13c2176660266f1bfa0ad0fd5dffdb868ee224
index cb32b9f04..cb32b9f04 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d13c2176660266f1bfa0ad0fd5dffdb868ee224
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d13c2176660266f1bfa0ad0fd5dffdb868ee224
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d466683c633c51565c6cf9d624d70957db3a7a1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d466683c633c51565c6cf9d624d70957db3a7a1
index 185ceb872..185ceb872 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d466683c633c51565c6cf9d624d70957db3a7a1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d466683c633c51565c6cf9d624d70957db3a7a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d4eb3d6ad080458df5997137a82071b6bf68d58 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d4eb3d6ad080458df5997137a82071b6bf68d58
index dec27d0fe..dec27d0fe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d4eb3d6ad080458df5997137a82071b6bf68d58
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d4eb3d6ad080458df5997137a82071b6bf68d58
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d52e0eac1e13bb7fab33d08b8e66bee7fb58d2e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d52e0eac1e13bb7fab33d08b8e66bee7fb58d2e
index c221d9507..c221d9507 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d52e0eac1e13bb7fab33d08b8e66bee7fb58d2e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d52e0eac1e13bb7fab33d08b8e66bee7fb58d2e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d5d5a1b43288c60894c27530b88065d1a52d0c6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d5d5a1b43288c60894c27530b88065d1a52d0c6
index b15e946a3..b15e946a3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d5d5a1b43288c60894c27530b88065d1a52d0c6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d5d5a1b43288c60894c27530b88065d1a52d0c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d5ef19a56559b2a4b9237c3b1bf7836971950cc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d5ef19a56559b2a4b9237c3b1bf7836971950cc
index d5aa34ced..d5aa34ced 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d5ef19a56559b2a4b9237c3b1bf7836971950cc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d5ef19a56559b2a4b9237c3b1bf7836971950cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d6b1798cd60460af2f14122a2e97411e8e7d0c3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d6b1798cd60460af2f14122a2e97411e8e7d0c3
index 292adc3f0..292adc3f0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d6b1798cd60460af2f14122a2e97411e8e7d0c3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d6b1798cd60460af2f14122a2e97411e8e7d0c3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d6e8685c76485ede39cc9b1fa41dfdef0efcf47 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d6e8685c76485ede39cc9b1fa41dfdef0efcf47
index d5c28a09a..d5c28a09a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d6e8685c76485ede39cc9b1fa41dfdef0efcf47
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d6e8685c76485ede39cc9b1fa41dfdef0efcf47
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d717da6570a5428f64813c0d2c300bbfc13c4db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d717da6570a5428f64813c0d2c300bbfc13c4db
index ff91da619..ff91da619 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d717da6570a5428f64813c0d2c300bbfc13c4db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d717da6570a5428f64813c0d2c300bbfc13c4db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d84b68ca94ddb348dcff7557b8c30682094ef59 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d84b68ca94ddb348dcff7557b8c30682094ef59
index cb7cb9355..cb7cb9355 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d84b68ca94ddb348dcff7557b8c30682094ef59
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d84b68ca94ddb348dcff7557b8c30682094ef59
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1d9bf7d3f96e2fa587c6490804a41ca30d0b35a0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d9bf7d3f96e2fa587c6490804a41ca30d0b35a0
index 6759e64be..6759e64be 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1d9bf7d3f96e2fa587c6490804a41ca30d0b35a0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1d9bf7d3f96e2fa587c6490804a41ca30d0b35a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1ddd50587455cfb73e510a7b57cece674cf747c3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1ddd50587455cfb73e510a7b57cece674cf747c3
index 1588c9293..1588c9293 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1ddd50587455cfb73e510a7b57cece674cf747c3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1ddd50587455cfb73e510a7b57cece674cf747c3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1df3df41a08c885b1edf547603a5c6fe47c14bdf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1df3df41a08c885b1edf547603a5c6fe47c14bdf
index 785818ad5..785818ad5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1df3df41a08c885b1edf547603a5c6fe47c14bdf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1df3df41a08c885b1edf547603a5c6fe47c14bdf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1e11f16c9500cd5b5b090d84b0d36564fe3609fc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1e11f16c9500cd5b5b090d84b0d36564fe3609fc
index 3e0b6b580..3e0b6b580 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1e11f16c9500cd5b5b090d84b0d36564fe3609fc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1e11f16c9500cd5b5b090d84b0d36564fe3609fc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1e20d3f9f0b9695adb99b53ddc887a2780572d6b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1e20d3f9f0b9695adb99b53ddc887a2780572d6b
index 7c7e692b3..7c7e692b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1e20d3f9f0b9695adb99b53ddc887a2780572d6b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1e20d3f9f0b9695adb99b53ddc887a2780572d6b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1e50b5b2415e309b85b5ca7263ca80d75c7cde34 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1e50b5b2415e309b85b5ca7263ca80d75c7cde34
index ce3abdf01..ce3abdf01 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1e50b5b2415e309b85b5ca7263ca80d75c7cde34
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1e50b5b2415e309b85b5ca7263ca80d75c7cde34
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1ea5afd91a58edfa0e76905af18da5f90898ee0f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1ea5afd91a58edfa0e76905af18da5f90898ee0f
index ee9b7060c..ee9b7060c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1ea5afd91a58edfa0e76905af18da5f90898ee0f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1ea5afd91a58edfa0e76905af18da5f90898ee0f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1f02e2ca4682720e45a53149ac1cc92fc3d8aef2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f02e2ca4682720e45a53149ac1cc92fc3d8aef2
index f345ae2da..f345ae2da 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1f02e2ca4682720e45a53149ac1cc92fc3d8aef2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f02e2ca4682720e45a53149ac1cc92fc3d8aef2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1f0baa8df9b90a62a865d17d0de4cc3b6264ffcf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f0baa8df9b90a62a865d17d0de4cc3b6264ffcf
index 0492951ba..0492951ba 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1f0baa8df9b90a62a865d17d0de4cc3b6264ffcf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f0baa8df9b90a62a865d17d0de4cc3b6264ffcf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1f344c4c6a5239dcb5a72178c51e74e171a71440 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f344c4c6a5239dcb5a72178c51e74e171a71440
index c4a5858bf..c4a5858bf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1f344c4c6a5239dcb5a72178c51e74e171a71440
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f344c4c6a5239dcb5a72178c51e74e171a71440
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1f40bf9202327a5c9208b09b69c4fdf442a620fb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f40bf9202327a5c9208b09b69c4fdf442a620fb
index 3f6f0a085..3f6f0a085 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1f40bf9202327a5c9208b09b69c4fdf442a620fb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f40bf9202327a5c9208b09b69c4fdf442a620fb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1f49973c202a0e8d28d336e50af331646dca8c76 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f49973c202a0e8d28d336e50af331646dca8c76
index cf5ba5b41..cf5ba5b41 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1f49973c202a0e8d28d336e50af331646dca8c76
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f49973c202a0e8d28d336e50af331646dca8c76
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a
index ea2d3aa01..ea2d3aa01 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1f9e9ab53d38f5b89db1d44586d53b8813655fa3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f9e9ab53d38f5b89db1d44586d53b8813655fa3
index 4e46a94b2..4e46a94b2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1f9e9ab53d38f5b89db1d44586d53b8813655fa3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1f9e9ab53d38f5b89db1d44586d53b8813655fa3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1fc389a4fbeaf8287980ac33bfcd0cb680b0332a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1fc389a4fbeaf8287980ac33bfcd0cb680b0332a
index 10494d7e0..10494d7e0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1fc389a4fbeaf8287980ac33bfcd0cb680b0332a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1fc389a4fbeaf8287980ac33bfcd0cb680b0332a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1fc901543b3967afeacafdd5645f5554ba056a7f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1fc901543b3967afeacafdd5645f5554ba056a7f
index 2f2c18594..2f2c18594 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1fc901543b3967afeacafdd5645f5554ba056a7f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1fc901543b3967afeacafdd5645f5554ba056a7f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1fee412edb4f8bf201684c09f71f838b1689daf8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1fee412edb4f8bf201684c09f71f838b1689daf8
index d60f22e8d..d60f22e8d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1fee412edb4f8bf201684c09f71f838b1689daf8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1fee412edb4f8bf201684c09f71f838b1689daf8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/1feffc95bea79117e8def6c4528d8281c95d3b81 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1feffc95bea79117e8def6c4528d8281c95d3b81
index b2c5ad0b7..b2c5ad0b7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/1feffc95bea79117e8def6c4528d8281c95d3b81
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/1feffc95bea79117e8def6c4528d8281c95d3b81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/202d2810d012cd086c5620f3ade95ec96488356f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/202d2810d012cd086c5620f3ade95ec96488356f
index 7686662b8..7686662b8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/202d2810d012cd086c5620f3ade95ec96488356f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/202d2810d012cd086c5620f3ade95ec96488356f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2039ca70b5fa7a7bef14789bf7187fcbc86760d7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2039ca70b5fa7a7bef14789bf7187fcbc86760d7
index 5658a1f1f..5658a1f1f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2039ca70b5fa7a7bef14789bf7187fcbc86760d7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2039ca70b5fa7a7bef14789bf7187fcbc86760d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2052e44d6093ec8c3a564a8d06e8aad3e93cbe14 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2052e44d6093ec8c3a564a8d06e8aad3e93cbe14
index 6960e08e7..6960e08e7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2052e44d6093ec8c3a564a8d06e8aad3e93cbe14
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2052e44d6093ec8c3a564a8d06e8aad3e93cbe14
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/205df121a67024191af01b710eaefcbc543491b8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/205df121a67024191af01b710eaefcbc543491b8
index 547f0a9f5..547f0a9f5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/205df121a67024191af01b710eaefcbc543491b8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/205df121a67024191af01b710eaefcbc543491b8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/20648c32447759df4199c8d391fd51eaa7f98cca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20648c32447759df4199c8d391fd51eaa7f98cca
index 95a0cc42f..95a0cc42f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/20648c32447759df4199c8d391fd51eaa7f98cca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20648c32447759df4199c8d391fd51eaa7f98cca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/208a4bba76dbc62406de74852acda37d3de517a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/208a4bba76dbc62406de74852acda37d3de517a5
index 43fc90220..43fc90220 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/208a4bba76dbc62406de74852acda37d3de517a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/208a4bba76dbc62406de74852acda37d3de517a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/20969846630853745db3cb7a69c26267955db5d9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20969846630853745db3cb7a69c26267955db5d9
index 9e2aa19ba..9e2aa19ba 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/20969846630853745db3cb7a69c26267955db5d9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20969846630853745db3cb7a69c26267955db5d9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/20bc972a0e2bbe301f46e15b0cdf9ac460df8081 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20bc972a0e2bbe301f46e15b0cdf9ac460df8081
index 927788ed6..927788ed6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/20bc972a0e2bbe301f46e15b0cdf9ac460df8081
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20bc972a0e2bbe301f46e15b0cdf9ac460df8081
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/20cfcd729575a955d12e36b397e39d1a384ae288 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20cfcd729575a955d12e36b397e39d1a384ae288
index 3acfe9b1d..3acfe9b1d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/20cfcd729575a955d12e36b397e39d1a384ae288
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/20cfcd729575a955d12e36b397e39d1a384ae288
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/210a1940ff0b3e27851741d557f767db27ecdfa2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/210a1940ff0b3e27851741d557f767db27ecdfa2
index fe24abb06..fe24abb06 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/210a1940ff0b3e27851741d557f767db27ecdfa2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/210a1940ff0b3e27851741d557f767db27ecdfa2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/21270ce4a11a063525112a67ea2f9e8e45ab4fa1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/21270ce4a11a063525112a67ea2f9e8e45ab4fa1
index c4c2ece73..c4c2ece73 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/21270ce4a11a063525112a67ea2f9e8e45ab4fa1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/21270ce4a11a063525112a67ea2f9e8e45ab4fa1
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/213f7287d793d878fd7fc8d4f07f2c365e7487d3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/213f7287d793d878fd7fc8d4f07f2c365e7487d3
index 7763a37ea..7763a37ea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/213f7287d793d878fd7fc8d4f07f2c365e7487d3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/213f7287d793d878fd7fc8d4f07f2c365e7487d3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/21603b6a69fb26e06294c9d6ba72dda9c1ece2d1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/21603b6a69fb26e06294c9d6ba72dda9c1ece2d1
index 3faf7d1d3..3faf7d1d3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/21603b6a69fb26e06294c9d6ba72dda9c1ece2d1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/21603b6a69fb26e06294c9d6ba72dda9c1ece2d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/221a652335df26421a370070ed933c5ab56a3835 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/221a652335df26421a370070ed933c5ab56a3835
index cf3c3bb6e..cf3c3bb6e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/221a652335df26421a370070ed933c5ab56a3835
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/221a652335df26421a370070ed933c5ab56a3835
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/22433f49092cffef52b00c477ef5425e7d94c60f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22433f49092cffef52b00c477ef5425e7d94c60f
index ecc5ff7f9..ecc5ff7f9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/22433f49092cffef52b00c477ef5425e7d94c60f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22433f49092cffef52b00c477ef5425e7d94c60f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/22c4ab5f52b99b6412b7ae9ab3ac065805615350 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22c4ab5f52b99b6412b7ae9ab3ac065805615350
index d24a8dbbc..d24a8dbbc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/22c4ab5f52b99b6412b7ae9ab3ac065805615350
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22c4ab5f52b99b6412b7ae9ab3ac065805615350
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/22d7c4aefbca1244de2822596e1f64a9d038fa64 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22d7c4aefbca1244de2822596e1f64a9d038fa64
index 448c2509d..448c2509d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/22d7c4aefbca1244de2822596e1f64a9d038fa64
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22d7c4aefbca1244de2822596e1f64a9d038fa64
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/22ef71f25c51d7c66a715a416e9e25731cd11688 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22ef71f25c51d7c66a715a416e9e25731cd11688
index daa935939..daa935939 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/22ef71f25c51d7c66a715a416e9e25731cd11688
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22ef71f25c51d7c66a715a416e9e25731cd11688
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/22f790d32b974b844e216e9839fa7d7148e78ef5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22f790d32b974b844e216e9839fa7d7148e78ef5
index a93830e2a..a93830e2a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/22f790d32b974b844e216e9839fa7d7148e78ef5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22f790d32b974b844e216e9839fa7d7148e78ef5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/22f972c206cec8e32c4a9ca40652fe93987ee2c0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22f972c206cec8e32c4a9ca40652fe93987ee2c0
index 233afadfd..233afadfd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/22f972c206cec8e32c4a9ca40652fe93987ee2c0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/22f972c206cec8e32c4a9ca40652fe93987ee2c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/230cde335ae0614a0c7ab37d1aa53e5d6d800e49 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/230cde335ae0614a0c7ab37d1aa53e5d6d800e49
index b505ffd1e..b505ffd1e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/230cde335ae0614a0c7ab37d1aa53e5d6d800e49
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/230cde335ae0614a0c7ab37d1aa53e5d6d800e49
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/234068e93d0f2442ce2ceb7b577e16bf549f24f5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/234068e93d0f2442ce2ceb7b577e16bf549f24f5
index 872c0b229..872c0b229 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/234068e93d0f2442ce2ceb7b577e16bf549f24f5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/234068e93d0f2442ce2ceb7b577e16bf549f24f5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/23755b4ab5815d923c9d1694ce8e673c804794e7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/23755b4ab5815d923c9d1694ce8e673c804794e7
index b6249ef13..b6249ef13 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/23755b4ab5815d923c9d1694ce8e673c804794e7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/23755b4ab5815d923c9d1694ce8e673c804794e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/23d5f8a0fe048b8e0fd5256c93b2feef0ab32223 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/23d5f8a0fe048b8e0fd5256c93b2feef0ab32223
index c66d58857..c66d58857 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/23d5f8a0fe048b8e0fd5256c93b2feef0ab32223
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/23d5f8a0fe048b8e0fd5256c93b2feef0ab32223
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2417f1e81c249a01c6b1ad7c4c52507e66c2d754 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2417f1e81c249a01c6b1ad7c4c52507e66c2d754
index 000899196..000899196 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2417f1e81c249a01c6b1ad7c4c52507e66c2d754
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2417f1e81c249a01c6b1ad7c4c52507e66c2d754
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/24233f55e9299eaa6cd420fc99af232754fb0c93 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24233f55e9299eaa6cd420fc99af232754fb0c93
index 4a3dcb829..4a3dcb829 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/24233f55e9299eaa6cd420fc99af232754fb0c93
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24233f55e9299eaa6cd420fc99af232754fb0c93
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/242ecae61ea3189e717ef29e31226384db6bb3f1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/242ecae61ea3189e717ef29e31226384db6bb3f1
index f104e6328..f104e6328 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/242ecae61ea3189e717ef29e31226384db6bb3f1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/242ecae61ea3189e717ef29e31226384db6bb3f1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/24913b1844b924b75704248f502a53fea3154234 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24913b1844b924b75704248f502a53fea3154234
index e0f29377c..e0f29377c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/24913b1844b924b75704248f502a53fea3154234
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24913b1844b924b75704248f502a53fea3154234
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/24ca097ac4285b7a91ba5a293e258ff047180a75 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24ca097ac4285b7a91ba5a293e258ff047180a75
index 3e78cd2d4..3e78cd2d4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/24ca097ac4285b7a91ba5a293e258ff047180a75
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24ca097ac4285b7a91ba5a293e258ff047180a75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/24ee7e638db6d3c5e4dfb5f9f8f8e76823bc059a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24ee7e638db6d3c5e4dfb5f9f8f8e76823bc059a
index 17ce9523c..17ce9523c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/24ee7e638db6d3c5e4dfb5f9f8f8e76823bc059a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24ee7e638db6d3c5e4dfb5f9f8f8e76823bc059a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/24fee7be3a975d7083c041639da30e01dade3c62 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24fee7be3a975d7083c041639da30e01dade3c62
index 98e886dd7..98e886dd7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/24fee7be3a975d7083c041639da30e01dade3c62
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/24fee7be3a975d7083c041639da30e01dade3c62
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2508ab1a9208b36639cf9d5f3249cbc0f6a40846 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2508ab1a9208b36639cf9d5f3249cbc0f6a40846
index a525c885f..a525c885f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2508ab1a9208b36639cf9d5f3249cbc0f6a40846
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2508ab1a9208b36639cf9d5f3249cbc0f6a40846
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/251194b93ce00ba505508bbfdb5fd6c2f65d1db2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/251194b93ce00ba505508bbfdb5fd6c2f65d1db2
index b56c51f3f..b56c51f3f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/251194b93ce00ba505508bbfdb5fd6c2f65d1db2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/251194b93ce00ba505508bbfdb5fd6c2f65d1db2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/25292f092af2124059f87f041c4144c31d20eb9d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/25292f092af2124059f87f041c4144c31d20eb9d
index 3b1010782..3b1010782 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/25292f092af2124059f87f041c4144c31d20eb9d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/25292f092af2124059f87f041c4144c31d20eb9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/25516e7584bd139ebbd4f4eea8e6f79aef6581d7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/25516e7584bd139ebbd4f4eea8e6f79aef6581d7
index 9619b822d..9619b822d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/25516e7584bd139ebbd4f4eea8e6f79aef6581d7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/25516e7584bd139ebbd4f4eea8e6f79aef6581d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2563441fff19c0fe4e7a3f3978ec5ae8434797c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2563441fff19c0fe4e7a3f3978ec5ae8434797c2
index d0cc29294..d0cc29294 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2563441fff19c0fe4e7a3f3978ec5ae8434797c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2563441fff19c0fe4e7a3f3978ec5ae8434797c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/25a0ec240f617d8038650476f77f766508422f9a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/25a0ec240f617d8038650476f77f766508422f9a
index 501847161..501847161 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/25a0ec240f617d8038650476f77f766508422f9a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/25a0ec240f617d8038650476f77f766508422f9a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/262d5a469e93b3bc96045a67c08af0860b725dd3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/262d5a469e93b3bc96045a67c08af0860b725dd3
index 6df47d348..6df47d348 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/262d5a469e93b3bc96045a67c08af0860b725dd3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/262d5a469e93b3bc96045a67c08af0860b725dd3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/26445ad1f3cb03ce8e8adf626484892a941a5937 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/26445ad1f3cb03ce8e8adf626484892a941a5937
index 46719001e..46719001e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/26445ad1f3cb03ce8e8adf626484892a941a5937
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/26445ad1f3cb03ce8e8adf626484892a941a5937
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/264b06b75af80ab4bd434c267752d2f1a31aa552 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/264b06b75af80ab4bd434c267752d2f1a31aa552
index 38434b0a8..38434b0a8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/264b06b75af80ab4bd434c267752d2f1a31aa552
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/264b06b75af80ab4bd434c267752d2f1a31aa552
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2656c6f243221c54ade035e437366fe93ff5f903 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2656c6f243221c54ade035e437366fe93ff5f903
index 3c7cdb09e..3c7cdb09e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2656c6f243221c54ade035e437366fe93ff5f903
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2656c6f243221c54ade035e437366fe93ff5f903
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d
index f4d4a077c..f4d4a077c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/269212ebf38957a3708f5cb91d285ff8919cac7c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/269212ebf38957a3708f5cb91d285ff8919cac7c
index 1aaac7815..1aaac7815 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/269212ebf38957a3708f5cb91d285ff8919cac7c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/269212ebf38957a3708f5cb91d285ff8919cac7c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/26b2520f118281ebe5e1c6e07d6f3f245cd1eb8c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/26b2520f118281ebe5e1c6e07d6f3f245cd1eb8c
index bc986ea3e..bc986ea3e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/26b2520f118281ebe5e1c6e07d6f3f245cd1eb8c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/26b2520f118281ebe5e1c6e07d6f3f245cd1eb8c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/27088ea5c441214f31e2bf3f496199697d38658e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27088ea5c441214f31e2bf3f496199697d38658e
index 26dc78297..26dc78297 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/27088ea5c441214f31e2bf3f496199697d38658e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27088ea5c441214f31e2bf3f496199697d38658e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/272b4e0a28028fdda4417b4fb563eecbc6d6072f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/272b4e0a28028fdda4417b4fb563eecbc6d6072f
index 5b08f2e6f..5b08f2e6f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/272b4e0a28028fdda4417b4fb563eecbc6d6072f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/272b4e0a28028fdda4417b4fb563eecbc6d6072f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/27575a3eb0c7284a0980489c95490f09dbc77bc9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27575a3eb0c7284a0980489c95490f09dbc77bc9
index 3f277852c..3f277852c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/27575a3eb0c7284a0980489c95490f09dbc77bc9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27575a3eb0c7284a0980489c95490f09dbc77bc9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/27630c0c82aaded58756dff70a55f1c8f14ae71a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27630c0c82aaded58756dff70a55f1c8f14ae71a
index 063db0fd9..063db0fd9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/27630c0c82aaded58756dff70a55f1c8f14ae71a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27630c0c82aaded58756dff70a55f1c8f14ae71a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2764458b21c3710e18e14e63b61556698c57d1aa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2764458b21c3710e18e14e63b61556698c57d1aa
index a49115e3d..a49115e3d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2764458b21c3710e18e14e63b61556698c57d1aa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2764458b21c3710e18e14e63b61556698c57d1aa
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/279e36ce2e07af274554406803d6c4cf89169178 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/279e36ce2e07af274554406803d6c4cf89169178
index 7cfc09344..7cfc09344 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/279e36ce2e07af274554406803d6c4cf89169178
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/279e36ce2e07af274554406803d6c4cf89169178
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/279e69caf577b2aa381eb484afbdaf0b8a1155bc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/279e69caf577b2aa381eb484afbdaf0b8a1155bc
index 940c527b0..940c527b0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/279e69caf577b2aa381eb484afbdaf0b8a1155bc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/279e69caf577b2aa381eb484afbdaf0b8a1155bc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/27c0a79cd89608648385753fcc587053a9f923db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27c0a79cd89608648385753fcc587053a9f923db
index 12802e14d..12802e14d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/27c0a79cd89608648385753fcc587053a9f923db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27c0a79cd89608648385753fcc587053a9f923db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/27c88ead53bdb322e5fe80e0116e08f8934496be b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27c88ead53bdb322e5fe80e0116e08f8934496be
index f45dd02c4..f45dd02c4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/27c88ead53bdb322e5fe80e0116e08f8934496be
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27c88ead53bdb322e5fe80e0116e08f8934496be
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/27d00c92c367b3f453e1cbb4fd7afb74840c613c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27d00c92c367b3f453e1cbb4fd7afb74840c613c
index 3aaa4a3df..3aaa4a3df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/27d00c92c367b3f453e1cbb4fd7afb74840c613c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27d00c92c367b3f453e1cbb4fd7afb74840c613c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/27f830c060c11f9de1af07a9f4f1ad85d995f372 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27f830c060c11f9de1af07a9f4f1ad85d995f372
index de2035789..de2035789 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/27f830c060c11f9de1af07a9f4f1ad85d995f372
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/27f830c060c11f9de1af07a9f4f1ad85d995f372
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/28023fd9e1b0757ef992cf03e0d9bc5fa9f9e7c5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28023fd9e1b0757ef992cf03e0d9bc5fa9f9e7c5
index b487b383a..b487b383a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/28023fd9e1b0757ef992cf03e0d9bc5fa9f9e7c5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28023fd9e1b0757ef992cf03e0d9bc5fa9f9e7c5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/28029c0b63b032dc931a8b64ba8c275a7483d5d5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28029c0b63b032dc931a8b64ba8c275a7483d5d5
index d6471bdb8..d6471bdb8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/28029c0b63b032dc931a8b64ba8c275a7483d5d5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28029c0b63b032dc931a8b64ba8c275a7483d5d5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/281285f5a22306fbc756dee2891457fd9c86c701 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/281285f5a22306fbc756dee2891457fd9c86c701
index 01b6ae37b..01b6ae37b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/281285f5a22306fbc756dee2891457fd9c86c701
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/281285f5a22306fbc756dee2891457fd9c86c701
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2826fe68b27d0f3b9707867a375b3a49495eb6a9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2826fe68b27d0f3b9707867a375b3a49495eb6a9
index 2a1f29a1b..2a1f29a1b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2826fe68b27d0f3b9707867a375b3a49495eb6a9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2826fe68b27d0f3b9707867a375b3a49495eb6a9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2847ff83e37f5e2d6a393139b514ebd3d89a169c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2847ff83e37f5e2d6a393139b514ebd3d89a169c
index 61959e50c..61959e50c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2847ff83e37f5e2d6a393139b514ebd3d89a169c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2847ff83e37f5e2d6a393139b514ebd3d89a169c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/28b1932e0b637fd8b27f07d2bd72ccedf7163d5b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28b1932e0b637fd8b27f07d2bd72ccedf7163d5b
index 88615f1e6..88615f1e6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/28b1932e0b637fd8b27f07d2bd72ccedf7163d5b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28b1932e0b637fd8b27f07d2bd72ccedf7163d5b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/28b4899d084db6bf75d4703c49e9256931f4f021 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28b4899d084db6bf75d4703c49e9256931f4f021
index 6885e8c6e..6885e8c6e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/28b4899d084db6bf75d4703c49e9256931f4f021
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28b4899d084db6bf75d4703c49e9256931f4f021
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/28b5e9a62e36fbb6a3bffbdb05291ab0c1e8814b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28b5e9a62e36fbb6a3bffbdb05291ab0c1e8814b
index 4c0002c9c..4c0002c9c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/28b5e9a62e36fbb6a3bffbdb05291ab0c1e8814b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28b5e9a62e36fbb6a3bffbdb05291ab0c1e8814b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/28d817f49f12f3dc0c10cebca33fc4f57685f969 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28d817f49f12f3dc0c10cebca33fc4f57685f969
index 1095ec9f8..1095ec9f8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/28d817f49f12f3dc0c10cebca33fc4f57685f969
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/28d817f49f12f3dc0c10cebca33fc4f57685f969
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/29054a06aa5667ae6000ac73cecbd998a33776ad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29054a06aa5667ae6000ac73cecbd998a33776ad
index 4c4694fe2..4c4694fe2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/29054a06aa5667ae6000ac73cecbd998a33776ad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29054a06aa5667ae6000ac73cecbd998a33776ad
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/29a15ecbb86f4543789f1c6db68e1fd221db2348 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29a15ecbb86f4543789f1c6db68e1fd221db2348
index b86f2c8d8..b86f2c8d8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/29a15ecbb86f4543789f1c6db68e1fd221db2348
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29a15ecbb86f4543789f1c6db68e1fd221db2348
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/29a9c98dcb9e0088f3dd4f0c3c6f1daf550afcc9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29a9c98dcb9e0088f3dd4f0c3c6f1daf550afcc9
index 7f3d58bb6..7f3d58bb6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/29a9c98dcb9e0088f3dd4f0c3c6f1daf550afcc9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29a9c98dcb9e0088f3dd4f0c3c6f1daf550afcc9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/29d2b52de9821101f6d3c3287a4c80e4224ee23f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29d2b52de9821101f6d3c3287a4c80e4224ee23f
index f2cee78f3..f2cee78f3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/29d2b52de9821101f6d3c3287a4c80e4224ee23f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/29d2b52de9821101f6d3c3287a4c80e4224ee23f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2a3015e766a8ce3dc4ec96f7dbfebc87070604bf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2a3015e766a8ce3dc4ec96f7dbfebc87070604bf
index 7fed3e69f..7fed3e69f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2a3015e766a8ce3dc4ec96f7dbfebc87070604bf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2a3015e766a8ce3dc4ec96f7dbfebc87070604bf
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2a5849e615a99f66cc8a306b74102a8f61fb3e61 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2a5849e615a99f66cc8a306b74102a8f61fb3e61
index e0b1f7d61..e0b1f7d61 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2a5849e615a99f66cc8a306b74102a8f61fb3e61
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2a5849e615a99f66cc8a306b74102a8f61fb3e61
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2aee6e088bc5673d02852060c8d292d943470ba5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2aee6e088bc5673d02852060c8d292d943470ba5
index 15ca0b161..15ca0b161 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2aee6e088bc5673d02852060c8d292d943470ba5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2aee6e088bc5673d02852060c8d292d943470ba5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2af25c0578a453e2dbd25be603aa83325816c480 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2af25c0578a453e2dbd25be603aa83325816c480
index c241c9e7b..c241c9e7b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2af25c0578a453e2dbd25be603aa83325816c480
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2af25c0578a453e2dbd25be603aa83325816c480
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2af342e8cc11e004bdddb041e90a35796068fdc2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2af342e8cc11e004bdddb041e90a35796068fdc2
index d701d97d9..d701d97d9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2af342e8cc11e004bdddb041e90a35796068fdc2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2af342e8cc11e004bdddb041e90a35796068fdc2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2afa80bdd1232f91c3a3003eca430b03fe75aa8d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2afa80bdd1232f91c3a3003eca430b03fe75aa8d
index 03ef0597d..03ef0597d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2afa80bdd1232f91c3a3003eca430b03fe75aa8d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2afa80bdd1232f91c3a3003eca430b03fe75aa8d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2b91ad21a8b84eaade1258eeef5a3cc9e6ace359 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2b91ad21a8b84eaade1258eeef5a3cc9e6ace359
index 870c4e011..870c4e011 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2b91ad21a8b84eaade1258eeef5a3cc9e6ace359
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2b91ad21a8b84eaade1258eeef5a3cc9e6ace359
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2b96dfcd15698c5e15ee2031ebc284529594c095 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2b96dfcd15698c5e15ee2031ebc284529594c095
index eb41ae28a..eb41ae28a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2b96dfcd15698c5e15ee2031ebc284529594c095
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2b96dfcd15698c5e15ee2031ebc284529594c095
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2c06da1133ebe9980960c1b570d6ca97cfb9196a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c06da1133ebe9980960c1b570d6ca97cfb9196a
index 014f5dcbf..014f5dcbf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2c06da1133ebe9980960c1b570d6ca97cfb9196a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c06da1133ebe9980960c1b570d6ca97cfb9196a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2c1f37759a09505cc411bf7326e9fbe79b3c74db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c1f37759a09505cc411bf7326e9fbe79b3c74db
index d0596abbf..d0596abbf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2c1f37759a09505cc411bf7326e9fbe79b3c74db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c1f37759a09505cc411bf7326e9fbe79b3c74db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2c5b6450368e66daf881054106bb6526f8211849 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c5b6450368e66daf881054106bb6526f8211849
index 74ad39517..74ad39517 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2c5b6450368e66daf881054106bb6526f8211849
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c5b6450368e66daf881054106bb6526f8211849
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2c66d55114db195f230df93c0a01196f9025ac0d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c66d55114db195f230df93c0a01196f9025ac0d
index fa1136067..fa1136067 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2c66d55114db195f230df93c0a01196f9025ac0d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c66d55114db195f230df93c0a01196f9025ac0d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2c7ec4266022f46014c82f86803cf1321e730bbe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c7ec4266022f46014c82f86803cf1321e730bbe
index b2a26d045..b2a26d045 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2c7ec4266022f46014c82f86803cf1321e730bbe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c7ec4266022f46014c82f86803cf1321e730bbe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2c8fa98c9460b9615bb07192a570f6ed7cdf4683 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c8fa98c9460b9615bb07192a570f6ed7cdf4683
index a82bb749a..a82bb749a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2c8fa98c9460b9615bb07192a570f6ed7cdf4683
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2c8fa98c9460b9615bb07192a570f6ed7cdf4683
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2cba7beaed4dfd0adf1e98b4d25d87a26716cfe8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cba7beaed4dfd0adf1e98b4d25d87a26716cfe8
index ef089533c..ef089533c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2cba7beaed4dfd0adf1e98b4d25d87a26716cfe8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cba7beaed4dfd0adf1e98b4d25d87a26716cfe8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2cbb91b2983e6c08b2dc531dcf24071a4e93bbba b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cbb91b2983e6c08b2dc531dcf24071a4e93bbba
index 0d847b0c8..0d847b0c8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2cbb91b2983e6c08b2dc531dcf24071a4e93bbba
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cbb91b2983e6c08b2dc531dcf24071a4e93bbba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2cdc347500709a4240a43dadd20dfd5c406f099f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cdc347500709a4240a43dadd20dfd5c406f099f
index bcffe3cb9..bcffe3cb9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2cdc347500709a4240a43dadd20dfd5c406f099f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cdc347500709a4240a43dadd20dfd5c406f099f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2cf6df1dd62ada8e1884427989139c6ee5950bb4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cf6df1dd62ada8e1884427989139c6ee5950bb4
index 75a69c0e1..75a69c0e1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2cf6df1dd62ada8e1884427989139c6ee5950bb4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2cf6df1dd62ada8e1884427989139c6ee5950bb4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2d0d776afe0a9041097a0318e4d58e7f4035485e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2d0d776afe0a9041097a0318e4d58e7f4035485e
index 0d5b06eb0..0d5b06eb0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2d0d776afe0a9041097a0318e4d58e7f4035485e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2d0d776afe0a9041097a0318e4d58e7f4035485e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2d6e88158779a54f75920b282250dd2f698b9b80 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2d6e88158779a54f75920b282250dd2f698b9b80
index e0249c077..e0249c077 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2d6e88158779a54f75920b282250dd2f698b9b80
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2d6e88158779a54f75920b282250dd2f698b9b80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2d953fe58ae6d809294d9e2cf916162a0465f2ce b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2d953fe58ae6d809294d9e2cf916162a0465f2ce
index 1789028ce..1789028ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2d953fe58ae6d809294d9e2cf916162a0465f2ce
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2d953fe58ae6d809294d9e2cf916162a0465f2ce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2dc5106927530e99917b2e2c5e233668feead299 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2dc5106927530e99917b2e2c5e233668feead299
index d6ea7399e..d6ea7399e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2dc5106927530e99917b2e2c5e233668feead299
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2dc5106927530e99917b2e2c5e233668feead299
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2e1df53487f5f1699eac6403ce01ea6c3d820c1d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2e1df53487f5f1699eac6403ce01ea6c3d820c1d
index eb09e36d0..eb09e36d0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2e1df53487f5f1699eac6403ce01ea6c3d820c1d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2e1df53487f5f1699eac6403ce01ea6c3d820c1d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2e6da58f42fbaaeb6298592e1fa56ba1eda50e6b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2e6da58f42fbaaeb6298592e1fa56ba1eda50e6b
index d9af8916b..d9af8916b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2e6da58f42fbaaeb6298592e1fa56ba1eda50e6b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2e6da58f42fbaaeb6298592e1fa56ba1eda50e6b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2e9f1ca446fe064c9d58faf6f6c7e06fdd6ec17c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2e9f1ca446fe064c9d58faf6f6c7e06fdd6ec17c
index e12e617a8..e12e617a8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2e9f1ca446fe064c9d58faf6f6c7e06fdd6ec17c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2e9f1ca446fe064c9d58faf6f6c7e06fdd6ec17c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2eb5376d2e1efab1af365a3fc9dca638576e77e4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2eb5376d2e1efab1af365a3fc9dca638576e77e4
index 6ed90315c..6ed90315c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2eb5376d2e1efab1af365a3fc9dca638576e77e4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2eb5376d2e1efab1af365a3fc9dca638576e77e4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2eec172bebfb7c1e6d678f4e332443b2041c54a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2eec172bebfb7c1e6d678f4e332443b2041c54a5
index d1b3c7a5b..d1b3c7a5b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2eec172bebfb7c1e6d678f4e332443b2041c54a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2eec172bebfb7c1e6d678f4e332443b2041c54a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2eed5796bb51c12d543faf75ccad5de33581d45e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2eed5796bb51c12d543faf75ccad5de33581d45e
index d76593cbe..d76593cbe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2eed5796bb51c12d543faf75ccad5de33581d45e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2eed5796bb51c12d543faf75ccad5de33581d45e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2f004c26ec1c1878f50c12dd743bfdfb069b2a0a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f004c26ec1c1878f50c12dd743bfdfb069b2a0a
index 63c495bad..63c495bad 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2f004c26ec1c1878f50c12dd743bfdfb069b2a0a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f004c26ec1c1878f50c12dd743bfdfb069b2a0a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2f15c1eb4c784e9c6bd4cebc68edf3706c55c671 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f15c1eb4c784e9c6bd4cebc68edf3706c55c671
index 68a4cb430..68a4cb430 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2f15c1eb4c784e9c6bd4cebc68edf3706c55c671
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f15c1eb4c784e9c6bd4cebc68edf3706c55c671
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2f2c2c34df4bc5ab0e430d46458adc8b9ebb70d7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f2c2c34df4bc5ab0e430d46458adc8b9ebb70d7
index 46ce2871c..46ce2871c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2f2c2c34df4bc5ab0e430d46458adc8b9ebb70d7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f2c2c34df4bc5ab0e430d46458adc8b9ebb70d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2f78a79c67f88482755d9564dd531ac22145072c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f78a79c67f88482755d9564dd531ac22145072c
index b395f3a4b..b395f3a4b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2f78a79c67f88482755d9564dd531ac22145072c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2f78a79c67f88482755d9564dd531ac22145072c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2fad1c0d88f403f7fc00d05ae4a574deaeadc891 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2fad1c0d88f403f7fc00d05ae4a574deaeadc891
index b54ec6072..b54ec6072 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2fad1c0d88f403f7fc00d05ae4a574deaeadc891
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2fad1c0d88f403f7fc00d05ae4a574deaeadc891
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2fb499a8c1d879dee29cbbc3a288542795446dc4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2fb499a8c1d879dee29cbbc3a288542795446dc4
index 3db9ad268..3db9ad268 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2fb499a8c1d879dee29cbbc3a288542795446dc4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2fb499a8c1d879dee29cbbc3a288542795446dc4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2fdf037798b5155d23127cc132fc2b55c54bff4b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2fdf037798b5155d23127cc132fc2b55c54bff4b
index dc8c63714..dc8c63714 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2fdf037798b5155d23127cc132fc2b55c54bff4b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2fdf037798b5155d23127cc132fc2b55c54bff4b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/2ff32deaea056ab91bff0f70051aabce67fdab4c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2ff32deaea056ab91bff0f70051aabce67fdab4c
index fe40dedd9..fe40dedd9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/2ff32deaea056ab91bff0f70051aabce67fdab4c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/2ff32deaea056ab91bff0f70051aabce67fdab4c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/300118c85e2c0ea144d109cd35409d0b025d40da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/300118c85e2c0ea144d109cd35409d0b025d40da
index e83c45a04..e83c45a04 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/300118c85e2c0ea144d109cd35409d0b025d40da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/300118c85e2c0ea144d109cd35409d0b025d40da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3040be8b4b4ead31ba40af26478e7da7592ca00f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3040be8b4b4ead31ba40af26478e7da7592ca00f
index 99884944d..99884944d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3040be8b4b4ead31ba40af26478e7da7592ca00f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3040be8b4b4ead31ba40af26478e7da7592ca00f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3068e3eef14f3f231a44cdda89e74b0fd38999ec b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3068e3eef14f3f231a44cdda89e74b0fd38999ec
index 0579c85f5..0579c85f5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3068e3eef14f3f231a44cdda89e74b0fd38999ec
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3068e3eef14f3f231a44cdda89e74b0fd38999ec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/308f60f5943d8e6786273688be07c3c3ef173afb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/308f60f5943d8e6786273688be07c3c3ef173afb
index 4e89e7d1f..4e89e7d1f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/308f60f5943d8e6786273688be07c3c3ef173afb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/308f60f5943d8e6786273688be07c3c3ef173afb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3095fc51c582597585cf91a3c6bdb7260a5b0678 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3095fc51c582597585cf91a3c6bdb7260a5b0678
index 03b8dacbc..03b8dacbc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3095fc51c582597585cf91a3c6bdb7260a5b0678
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3095fc51c582597585cf91a3c6bdb7260a5b0678
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/30afcde3a88a91e551c02ed08868171fb7eb0fe6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/30afcde3a88a91e551c02ed08868171fb7eb0fe6
index 28302a166..28302a166 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/30afcde3a88a91e551c02ed08868171fb7eb0fe6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/30afcde3a88a91e551c02ed08868171fb7eb0fe6
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/30c8d09bc086eb594f924b38b264ebe04b257949 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/30c8d09bc086eb594f924b38b264ebe04b257949
index 2418d4d1d..2418d4d1d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/30c8d09bc086eb594f924b38b264ebe04b257949
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/30c8d09bc086eb594f924b38b264ebe04b257949
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3104d664c86a8116ed0ec894e47f4ecf6c83274c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3104d664c86a8116ed0ec894e47f4ecf6c83274c
index 239415075..239415075 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3104d664c86a8116ed0ec894e47f4ecf6c83274c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3104d664c86a8116ed0ec894e47f4ecf6c83274c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/312f31d3c5979b1a326e254052dbd939113f6811 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/312f31d3c5979b1a326e254052dbd939113f6811
index f7ccbe581..f7ccbe581 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/312f31d3c5979b1a326e254052dbd939113f6811
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/312f31d3c5979b1a326e254052dbd939113f6811
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/313f6651777eb4e5655303544f626e7f9a6f7fa8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/313f6651777eb4e5655303544f626e7f9a6f7fa8
index 489979e82..489979e82 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/313f6651777eb4e5655303544f626e7f9a6f7fa8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/313f6651777eb4e5655303544f626e7f9a6f7fa8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/319562c2b018b8171d14ee5d5f0f1faf028eba2f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/319562c2b018b8171d14ee5d5f0f1faf028eba2f
index 76b584ac6..76b584ac6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/319562c2b018b8171d14ee5d5f0f1faf028eba2f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/319562c2b018b8171d14ee5d5f0f1faf028eba2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/31f4768afc2ee852a3b400302999a5aaf6c11534 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/31f4768afc2ee852a3b400302999a5aaf6c11534
index 19b22d36d..19b22d36d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/31f4768afc2ee852a3b400302999a5aaf6c11534
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/31f4768afc2ee852a3b400302999a5aaf6c11534
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/320b5ab9f2282f3412c2031740d8e16bf1034ca4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/320b5ab9f2282f3412c2031740d8e16bf1034ca4
index bdbbba519..bdbbba519 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/320b5ab9f2282f3412c2031740d8e16bf1034ca4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/320b5ab9f2282f3412c2031740d8e16bf1034ca4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3239858eed96bfc41f6788e3194d3c8b54be642b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3239858eed96bfc41f6788e3194d3c8b54be642b
index 0251a65f2..0251a65f2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3239858eed96bfc41f6788e3194d3c8b54be642b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3239858eed96bfc41f6788e3194d3c8b54be642b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/32652d55d1815cc61876c9c67fb026562ae66774 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/32652d55d1815cc61876c9c67fb026562ae66774
index 3b28f5e37..3b28f5e37 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/32652d55d1815cc61876c9c67fb026562ae66774
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/32652d55d1815cc61876c9c67fb026562ae66774
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/32b7506dab3c7097891387113d3374b1d3c2d2bd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/32b7506dab3c7097891387113d3374b1d3c2d2bd
index 56fe89b3d..56fe89b3d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/32b7506dab3c7097891387113d3374b1d3c2d2bd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/32b7506dab3c7097891387113d3374b1d3c2d2bd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/330e9a531b5fba9270c3dc28be76e9ebd0f01005 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/330e9a531b5fba9270c3dc28be76e9ebd0f01005
index bec5b265d..bec5b265d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/330e9a531b5fba9270c3dc28be76e9ebd0f01005
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/330e9a531b5fba9270c3dc28be76e9ebd0f01005
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3351791a256cad9d4c03fc664095df9b4735c486 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3351791a256cad9d4c03fc664095df9b4735c486
index e3f8d0692..e3f8d0692 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3351791a256cad9d4c03fc664095df9b4735c486
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3351791a256cad9d4c03fc664095df9b4735c486
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3359dfeaaef4a47ad5e2f94d8d153c4cf92cd342 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3359dfeaaef4a47ad5e2f94d8d153c4cf92cd342
index 43946b87f..43946b87f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3359dfeaaef4a47ad5e2f94d8d153c4cf92cd342
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3359dfeaaef4a47ad5e2f94d8d153c4cf92cd342
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/337611780031efbffe5d6203a6dc2912f963540e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/337611780031efbffe5d6203a6dc2912f963540e
index 5cb3deaa7..5cb3deaa7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/337611780031efbffe5d6203a6dc2912f963540e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/337611780031efbffe5d6203a6dc2912f963540e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/337f314fdffe7ae650ee3b49559efa48fff9e4cb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/337f314fdffe7ae650ee3b49559efa48fff9e4cb
index 94b2fb369..94b2fb369 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/337f314fdffe7ae650ee3b49559efa48fff9e4cb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/337f314fdffe7ae650ee3b49559efa48fff9e4cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2
index 559950481..559950481 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/33cb837c2f46a023e8766d4d826d718148b5fa3c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/33cb837c2f46a023e8766d4d826d718148b5fa3c
index 50dce44de..50dce44de 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/33cb837c2f46a023e8766d4d826d718148b5fa3c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/33cb837c2f46a023e8766d4d826d718148b5fa3c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/341ce815a91bca1e0238a17df8a90bd536984cc1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/341ce815a91bca1e0238a17df8a90bd536984cc1
index cf6764d9c..cf6764d9c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/341ce815a91bca1e0238a17df8a90bd536984cc1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/341ce815a91bca1e0238a17df8a90bd536984cc1
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3435921e20bda679b25447535e18c77de5c593c7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3435921e20bda679b25447535e18c77de5c593c7
index 94d184b59..94d184b59 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3435921e20bda679b25447535e18c77de5c593c7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3435921e20bda679b25447535e18c77de5c593c7
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/343d52108068bb21b339a965f338f9b1bb3a521b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/343d52108068bb21b339a965f338f9b1bb3a521b
index 69e810b84..69e810b84 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/343d52108068bb21b339a965f338f9b1bb3a521b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/343d52108068bb21b339a965f338f9b1bb3a521b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/349b442a2336897c174ae62afd41fdbd57939298 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/349b442a2336897c174ae62afd41fdbd57939298
index 26037f0ab..26037f0ab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/349b442a2336897c174ae62afd41fdbd57939298
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/349b442a2336897c174ae62afd41fdbd57939298
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/34cbe76ee512bf9752890536d5ba88c3bcb315df b/src/web/server/h2o/libh2o/fuzz/http1-corpus/34cbe76ee512bf9752890536d5ba88c3bcb315df
index df68e7931..df68e7931 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/34cbe76ee512bf9752890536d5ba88c3bcb315df
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/34cbe76ee512bf9752890536d5ba88c3bcb315df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/34eaa3c3c8f87ff822b53994916ed4ed4ce58afc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/34eaa3c3c8f87ff822b53994916ed4ed4ce58afc
index b3f5990da..b3f5990da 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/34eaa3c3c8f87ff822b53994916ed4ed4ce58afc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/34eaa3c3c8f87ff822b53994916ed4ed4ce58afc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/34f417b82e156a1c5acb8ab47633fae113140cca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/34f417b82e156a1c5acb8ab47633fae113140cca
index 4315baa0d..4315baa0d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/34f417b82e156a1c5acb8ab47633fae113140cca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/34f417b82e156a1c5acb8ab47633fae113140cca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/355cce00ee9170723f29fd0d91caf21a66f217d4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/355cce00ee9170723f29fd0d91caf21a66f217d4
index 88a5cb04c..88a5cb04c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/355cce00ee9170723f29fd0d91caf21a66f217d4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/355cce00ee9170723f29fd0d91caf21a66f217d4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/35c475f3a26906806d28e978873bc589885d9f3a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35c475f3a26906806d28e978873bc589885d9f3a
index 8bf26ad33..8bf26ad33 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/35c475f3a26906806d28e978873bc589885d9f3a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35c475f3a26906806d28e978873bc589885d9f3a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/35dd30dc9bd0eac61877b5eaba281218abe2c6cc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35dd30dc9bd0eac61877b5eaba281218abe2c6cc
index 5bec19fb2..5bec19fb2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/35dd30dc9bd0eac61877b5eaba281218abe2c6cc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35dd30dc9bd0eac61877b5eaba281218abe2c6cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/35e0b79404cb1b0ee5b6f3f0d591c57a5c8360f2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35e0b79404cb1b0ee5b6f3f0d591c57a5c8360f2
index a05dff8b5..a05dff8b5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/35e0b79404cb1b0ee5b6f3f0d591c57a5c8360f2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35e0b79404cb1b0ee5b6f3f0d591c57a5c8360f2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/35f0ec6b24244372c243e39acca309964fe6eda0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35f0ec6b24244372c243e39acca309964fe6eda0
index e50931a12..e50931a12 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/35f0ec6b24244372c243e39acca309964fe6eda0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/35f0ec6b24244372c243e39acca309964fe6eda0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/36709f61502663a8f5586dd84c644d1958833059 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/36709f61502663a8f5586dd84c644d1958833059
index a68fd62a1..a68fd62a1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/36709f61502663a8f5586dd84c644d1958833059
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/36709f61502663a8f5586dd84c644d1958833059
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/36972ae34b6f3ca20ae393afdf2874e3da81c5c7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/36972ae34b6f3ca20ae393afdf2874e3da81c5c7
index 6ac831bbd..6ac831bbd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/36972ae34b6f3ca20ae393afdf2874e3da81c5c7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/36972ae34b6f3ca20ae393afdf2874e3da81c5c7
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/36b739135194b81411d435ba2aa4cd91f2a15845 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/36b739135194b81411d435ba2aa4cd91f2a15845
index 87427548d..87427548d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/36b739135194b81411d435ba2aa4cd91f2a15845
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/36b739135194b81411d435ba2aa4cd91f2a15845
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3702cced0cd10eda260a77a1fae223fcb010a9c8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3702cced0cd10eda260a77a1fae223fcb010a9c8
index 6d06152e7..6d06152e7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3702cced0cd10eda260a77a1fae223fcb010a9c8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3702cced0cd10eda260a77a1fae223fcb010a9c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3707c82b1ca3e8a07197cb111792c7cae9f148d8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3707c82b1ca3e8a07197cb111792c7cae9f148d8
index 5bcfee62e..5bcfee62e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3707c82b1ca3e8a07197cb111792c7cae9f148d8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3707c82b1ca3e8a07197cb111792c7cae9f148d8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/378bc896b93289b02d0061cae9a27b88d027b3aa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/378bc896b93289b02d0061cae9a27b88d027b3aa
index a75a9dea7..a75a9dea7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/378bc896b93289b02d0061cae9a27b88d027b3aa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/378bc896b93289b02d0061cae9a27b88d027b3aa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/37c7f8dd8c8185adaa4fdc5d73172835fac381bf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37c7f8dd8c8185adaa4fdc5d73172835fac381bf
index 5b897cc95..5b897cc95 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/37c7f8dd8c8185adaa4fdc5d73172835fac381bf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37c7f8dd8c8185adaa4fdc5d73172835fac381bf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/37d73a07d38832041922bb65759ead75bc242b47 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37d73a07d38832041922bb65759ead75bc242b47
index 7c47f8450..7c47f8450 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/37d73a07d38832041922bb65759ead75bc242b47
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37d73a07d38832041922bb65759ead75bc242b47
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/37e71beeec493c8fb3bab5faaa9dbe406224cc40 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37e71beeec493c8fb3bab5faaa9dbe406224cc40
index cfc88f09a..cfc88f09a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/37e71beeec493c8fb3bab5faaa9dbe406224cc40
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37e71beeec493c8fb3bab5faaa9dbe406224cc40
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/37ed1a5eca53597c613ee9ff92d5392da767ca03 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37ed1a5eca53597c613ee9ff92d5392da767ca03
index 6d181bf06..6d181bf06 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/37ed1a5eca53597c613ee9ff92d5392da767ca03
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/37ed1a5eca53597c613ee9ff92d5392da767ca03
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3819a33d8405caa6fce67f69cb846e90b1017134 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3819a33d8405caa6fce67f69cb846e90b1017134
index 7986c363a..7986c363a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3819a33d8405caa6fce67f69cb846e90b1017134
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3819a33d8405caa6fce67f69cb846e90b1017134
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3854217bdd20fd1b0851fca3db9ecb8bacb570f3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3854217bdd20fd1b0851fca3db9ecb8bacb570f3
index 5863bfe04..5863bfe04 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3854217bdd20fd1b0851fca3db9ecb8bacb570f3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3854217bdd20fd1b0851fca3db9ecb8bacb570f3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/386594886011e9231de32bb244f6bbbba43ae201 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/386594886011e9231de32bb244f6bbbba43ae201
index 629c8d298..629c8d298 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/386594886011e9231de32bb244f6bbbba43ae201
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/386594886011e9231de32bb244f6bbbba43ae201
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/39b1ef456c5a35f6715843b5a439fe536fd95cf6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/39b1ef456c5a35f6715843b5a439fe536fd95cf6
index 08c2f608a..08c2f608a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/39b1ef456c5a35f6715843b5a439fe536fd95cf6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/39b1ef456c5a35f6715843b5a439fe536fd95cf6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/39b9c4e3a56b770f272bb1c428e75b4f05fe2d3c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/39b9c4e3a56b770f272bb1c428e75b4f05fe2d3c
index 02d2ded46..02d2ded46 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/39b9c4e3a56b770f272bb1c428e75b4f05fe2d3c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/39b9c4e3a56b770f272bb1c428e75b4f05fe2d3c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3a3ca5f4786812dcbefa3a47bbd1766560004ace b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a3ca5f4786812dcbefa3a47bbd1766560004ace
index 5aa674280..5aa674280 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3a3ca5f4786812dcbefa3a47bbd1766560004ace
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a3ca5f4786812dcbefa3a47bbd1766560004ace
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3a3e218afd9ef25df5e9794225ce50b4e2df7240 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a3e218afd9ef25df5e9794225ce50b4e2df7240
index cf7267693..cf7267693 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3a3e218afd9ef25df5e9794225ce50b4e2df7240
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a3e218afd9ef25df5e9794225ce50b4e2df7240
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3a462802e4045f03ecfaa9e7358869871467ea73 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a462802e4045f03ecfaa9e7358869871467ea73
index 172877015..172877015 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3a462802e4045f03ecfaa9e7358869871467ea73
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a462802e4045f03ecfaa9e7358869871467ea73
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3a47c18539f1bb9afd6bbfa3e9a322b68eafbf1b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a47c18539f1bb9afd6bbfa3e9a322b68eafbf1b
index 9132f81b3..9132f81b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3a47c18539f1bb9afd6bbfa3e9a322b68eafbf1b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a47c18539f1bb9afd6bbfa3e9a322b68eafbf1b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3a82c54074751e89e6a4767488f6a4cc7e50d46a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a82c54074751e89e6a4767488f6a4cc7e50d46a
index df2d9ff49..df2d9ff49 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3a82c54074751e89e6a4767488f6a4cc7e50d46a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3a82c54074751e89e6a4767488f6a4cc7e50d46a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3abcdaadae6a9d330fd8beaf444c5f78ba0e29db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3abcdaadae6a9d330fd8beaf444c5f78ba0e29db
index 65a426434..65a426434 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3abcdaadae6a9d330fd8beaf444c5f78ba0e29db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3abcdaadae6a9d330fd8beaf444c5f78ba0e29db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3b0e80f763aae2fd612be4b23318918c53609c82 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3b0e80f763aae2fd612be4b23318918c53609c82
index b5a00f8f2..b5a00f8f2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3b0e80f763aae2fd612be4b23318918c53609c82
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3b0e80f763aae2fd612be4b23318918c53609c82
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3b6d4f5cd60a8b273448b3dbffb498eebc83e282 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3b6d4f5cd60a8b273448b3dbffb498eebc83e282
index 66ab81ca9..66ab81ca9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3b6d4f5cd60a8b273448b3dbffb498eebc83e282
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3b6d4f5cd60a8b273448b3dbffb498eebc83e282
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3b7ebe0377175f1636ae890575c1fb146b60e039 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3b7ebe0377175f1636ae890575c1fb146b60e039
index 48f3beb42..48f3beb42 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3b7ebe0377175f1636ae890575c1fb146b60e039
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3b7ebe0377175f1636ae890575c1fb146b60e039
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3babbefd720b862a09d42a119e00af5cc430d24c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3babbefd720b862a09d42a119e00af5cc430d24c
index d8b87ef19..d8b87ef19 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3babbefd720b862a09d42a119e00af5cc430d24c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3babbefd720b862a09d42a119e00af5cc430d24c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3bd5322f6c0ffea1ec1680385ea14cb634b7126b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3bd5322f6c0ffea1ec1680385ea14cb634b7126b
index fc1e1db12..fc1e1db12 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3bd5322f6c0ffea1ec1680385ea14cb634b7126b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3bd5322f6c0ffea1ec1680385ea14cb634b7126b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3bd6d55280022582af7e0d78b57a05ab8e8b2e04 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3bd6d55280022582af7e0d78b57a05ab8e8b2e04
index 412956e62..412956e62 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3bd6d55280022582af7e0d78b57a05ab8e8b2e04
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3bd6d55280022582af7e0d78b57a05ab8e8b2e04
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3bee72355f6e043d3969b3999cd717bb38e922a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3bee72355f6e043d3969b3999cd717bb38e922a5
index 1588b23d6..1588b23d6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3bee72355f6e043d3969b3999cd717bb38e922a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3bee72355f6e043d3969b3999cd717bb38e922a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6
index 74d10e785..74d10e785 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3c181f0b1a8fb95a81d17bacb87d08af13ab932a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c181f0b1a8fb95a81d17bacb87d08af13ab932a
index 1f3fe6954..1f3fe6954 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3c181f0b1a8fb95a81d17bacb87d08af13ab932a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c181f0b1a8fb95a81d17bacb87d08af13ab932a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3c3355658c2f0f9ec4200fb2f494d2edd0c55091 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c3355658c2f0f9ec4200fb2f494d2edd0c55091
index 69579a090..69579a090 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3c3355658c2f0f9ec4200fb2f494d2edd0c55091
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c3355658c2f0f9ec4200fb2f494d2edd0c55091
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3c61f7408595c243740ba684ce29b4b88e7013c6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c61f7408595c243740ba684ce29b4b88e7013c6
index d717cb593..d717cb593 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3c61f7408595c243740ba684ce29b4b88e7013c6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c61f7408595c243740ba684ce29b4b88e7013c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3c70605e5c08952803318889a6feb2999446bb7d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c70605e5c08952803318889a6feb2999446bb7d
index 79d11970b..79d11970b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3c70605e5c08952803318889a6feb2999446bb7d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3c70605e5c08952803318889a6feb2999446bb7d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3ca0ac02ae57a41617c38fba81796a02e5204047 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ca0ac02ae57a41617c38fba81796a02e5204047
index 0781c2074..0781c2074 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3ca0ac02ae57a41617c38fba81796a02e5204047
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ca0ac02ae57a41617c38fba81796a02e5204047
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3ced24169ae5bdb38c9e86b795af04f8a65673eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ced24169ae5bdb38c9e86b795af04f8a65673eb
index cd1c48c6a..cd1c48c6a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3ced24169ae5bdb38c9e86b795af04f8a65673eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ced24169ae5bdb38c9e86b795af04f8a65673eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3d3fe056a46942f297dc09d24cd3f3bdda5665c1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3d3fe056a46942f297dc09d24cd3f3bdda5665c1
index 252bf9e48..252bf9e48 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3d3fe056a46942f297dc09d24cd3f3bdda5665c1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3d3fe056a46942f297dc09d24cd3f3bdda5665c1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3dbd8bed8cde0f8091f2b82af6348dbeb087dc33 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3dbd8bed8cde0f8091f2b82af6348dbeb087dc33
index fb71a7eee..fb71a7eee 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3dbd8bed8cde0f8091f2b82af6348dbeb087dc33
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3dbd8bed8cde0f8091f2b82af6348dbeb087dc33
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3de0f4c901c540e809d3992f82a45951e89a23d1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3de0f4c901c540e809d3992f82a45951e89a23d1
index 9fd7ddfb8..9fd7ddfb8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3de0f4c901c540e809d3992f82a45951e89a23d1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3de0f4c901c540e809d3992f82a45951e89a23d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3dea16d724eeb866fd07fa2b5c60b5f6f4923b12 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3dea16d724eeb866fd07fa2b5c60b5f6f4923b12
index 24143ed1c..24143ed1c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3dea16d724eeb866fd07fa2b5c60b5f6f4923b12
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3dea16d724eeb866fd07fa2b5c60b5f6f4923b12
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3e24d2ae1836d2c05e1492667b21acaee2268669 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e24d2ae1836d2c05e1492667b21acaee2268669
index eb376a35d..eb376a35d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3e24d2ae1836d2c05e1492667b21acaee2268669
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e24d2ae1836d2c05e1492667b21acaee2268669
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3e2691c878e13eeb9836df7ebfa6a3fe04b95e42 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e2691c878e13eeb9836df7ebfa6a3fe04b95e42
index 169a2c382..169a2c382 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3e2691c878e13eeb9836df7ebfa6a3fe04b95e42
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e2691c878e13eeb9836df7ebfa6a3fe04b95e42
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3e6ebbd1614538fb555ab8005b8aa102d5a05153 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e6ebbd1614538fb555ab8005b8aa102d5a05153
index 1e0213d2b..1e0213d2b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3e6ebbd1614538fb555ab8005b8aa102d5a05153
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e6ebbd1614538fb555ab8005b8aa102d5a05153
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3e8c25423e5aca8d8e4c383229295749699848a8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e8c25423e5aca8d8e4c383229295749699848a8
index 44803f264..44803f264 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3e8c25423e5aca8d8e4c383229295749699848a8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3e8c25423e5aca8d8e4c383229295749699848a8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3eaa63672186ea1efc36577a51f0b9171ef865fc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3eaa63672186ea1efc36577a51f0b9171ef865fc
index 271913c21..271913c21 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3eaa63672186ea1efc36577a51f0b9171ef865fc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3eaa63672186ea1efc36577a51f0b9171ef865fc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3eab22ae1a167c898174f2ff5757332026eaaefa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3eab22ae1a167c898174f2ff5757332026eaaefa
index 63a8f6a61..63a8f6a61 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3eab22ae1a167c898174f2ff5757332026eaaefa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3eab22ae1a167c898174f2ff5757332026eaaefa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3ebb4d145bf026990841598d37329ed1cca0e8c9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ebb4d145bf026990841598d37329ed1cca0e8c9
index db60f38b1..db60f38b1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3ebb4d145bf026990841598d37329ed1cca0e8c9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ebb4d145bf026990841598d37329ed1cca0e8c9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3ee8b75446b9610047ac2cf9d9086253412edce7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ee8b75446b9610047ac2cf9d9086253412edce7
index 9acdedb62..9acdedb62 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3ee8b75446b9610047ac2cf9d9086253412edce7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ee8b75446b9610047ac2cf9d9086253412edce7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3f51c8524399a45b022b230adab0c39b9224342d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f51c8524399a45b022b230adab0c39b9224342d
index cf8e29a0e..cf8e29a0e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3f51c8524399a45b022b230adab0c39b9224342d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f51c8524399a45b022b230adab0c39b9224342d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3f55e71d020d0d96aeb5a6e7e59925db3e76dc29 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f55e71d020d0d96aeb5a6e7e59925db3e76dc29
index b26c48ecc..b26c48ecc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3f55e71d020d0d96aeb5a6e7e59925db3e76dc29
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f55e71d020d0d96aeb5a6e7e59925db3e76dc29
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3f590fc1ec38ad9456bb2c4b70d99a8bdcda464d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f590fc1ec38ad9456bb2c4b70d99a8bdcda464d
index f99c1e260..f99c1e260 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3f590fc1ec38ad9456bb2c4b70d99a8bdcda464d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f590fc1ec38ad9456bb2c4b70d99a8bdcda464d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3f80163ac1f8a6793795b429257fa7630022f7b0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f80163ac1f8a6793795b429257fa7630022f7b0
index a155e6124..a155e6124 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3f80163ac1f8a6793795b429257fa7630022f7b0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f80163ac1f8a6793795b429257fa7630022f7b0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3f8c61d5a8f6d42cbd435e06c486169a13fe8a82 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f8c61d5a8f6d42cbd435e06c486169a13fe8a82
index 3661ed3d1..3661ed3d1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3f8c61d5a8f6d42cbd435e06c486169a13fe8a82
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3f8c61d5a8f6d42cbd435e06c486169a13fe8a82
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3faaf3ed0503636fa56bde1415d39cfcff316bdd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3faaf3ed0503636fa56bde1415d39cfcff316bdd
index ed28c766a..ed28c766a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3faaf3ed0503636fa56bde1415d39cfcff316bdd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3faaf3ed0503636fa56bde1415d39cfcff316bdd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3fb4c06ade0f8e0c1dcac3b8b86f07c86f36cba5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3fb4c06ade0f8e0c1dcac3b8b86f07c86f36cba5
index f3871365d..f3871365d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3fb4c06ade0f8e0c1dcac3b8b86f07c86f36cba5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3fb4c06ade0f8e0c1dcac3b8b86f07c86f36cba5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3fb801ec63f8f30a3837a5f252c0eb4a52a244e7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3fb801ec63f8f30a3837a5f252c0eb4a52a244e7
index 12aba5fd4..12aba5fd4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3fb801ec63f8f30a3837a5f252c0eb4a52a244e7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3fb801ec63f8f30a3837a5f252c0eb4a52a244e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3fce4be82b0d83a4063a1bfaa63d527e7e430cab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3fce4be82b0d83a4063a1bfaa63d527e7e430cab
index 9457a4bf4..9457a4bf4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3fce4be82b0d83a4063a1bfaa63d527e7e430cab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3fce4be82b0d83a4063a1bfaa63d527e7e430cab
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/3ff66b26a1b121ff3221ebcdf1c680c9bd6263d0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ff66b26a1b121ff3221ebcdf1c680c9bd6263d0
index a362ffd02..a362ffd02 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/3ff66b26a1b121ff3221ebcdf1c680c9bd6263d0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/3ff66b26a1b121ff3221ebcdf1c680c9bd6263d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4021fb61bb20d6090d3e19a8a016e9b5f3cbd2dc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4021fb61bb20d6090d3e19a8a016e9b5f3cbd2dc
index dffa29adb..dffa29adb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4021fb61bb20d6090d3e19a8a016e9b5f3cbd2dc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4021fb61bb20d6090d3e19a8a016e9b5f3cbd2dc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4029d69a65bbf1a348de175ab89f959ba61a2c4c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4029d69a65bbf1a348de175ab89f959ba61a2c4c
index 2ebbc9143..2ebbc9143 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4029d69a65bbf1a348de175ab89f959ba61a2c4c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4029d69a65bbf1a348de175ab89f959ba61a2c4c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/40438b7f91953f03dca77e2b8230eb768cd84f62 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/40438b7f91953f03dca77e2b8230eb768cd84f62
index b5809f241..b5809f241 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/40438b7f91953f03dca77e2b8230eb768cd84f62
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/40438b7f91953f03dca77e2b8230eb768cd84f62
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/405c6e9978e3e6d392f0afb6ab716235e6f9d557 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/405c6e9978e3e6d392f0afb6ab716235e6f9d557
index d045f66ce..d045f66ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/405c6e9978e3e6d392f0afb6ab716235e6f9d557
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/405c6e9978e3e6d392f0afb6ab716235e6f9d557
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4166fdb13c47ce40f3556f7283fb82dc5c50c6fd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4166fdb13c47ce40f3556f7283fb82dc5c50c6fd
index 5b9485b76..5b9485b76 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4166fdb13c47ce40f3556f7283fb82dc5c50c6fd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4166fdb13c47ce40f3556f7283fb82dc5c50c6fd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/419e5ad912ed03d542bb0a75cb4cb66ea0e6acb0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/419e5ad912ed03d542bb0a75cb4cb66ea0e6acb0
index fca12254d..fca12254d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/419e5ad912ed03d542bb0a75cb4cb66ea0e6acb0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/419e5ad912ed03d542bb0a75cb4cb66ea0e6acb0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4213df71bae6c43025d6a9c42e8fe63ef8027f32 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4213df71bae6c43025d6a9c42e8fe63ef8027f32
index 39d8668b1..39d8668b1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4213df71bae6c43025d6a9c42e8fe63ef8027f32
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4213df71bae6c43025d6a9c42e8fe63ef8027f32
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/421e079ef7716e3bc6ce3d7195e8296944cc76f5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/421e079ef7716e3bc6ce3d7195e8296944cc76f5
index 4452cf54e..4452cf54e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/421e079ef7716e3bc6ce3d7195e8296944cc76f5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/421e079ef7716e3bc6ce3d7195e8296944cc76f5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/42657aa82a3746a04a6b24c598fcada062f3542b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/42657aa82a3746a04a6b24c598fcada062f3542b
index d79ffc22d..d79ffc22d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/42657aa82a3746a04a6b24c598fcada062f3542b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/42657aa82a3746a04a6b24c598fcada062f3542b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4285bb2b2a9b55f3875839b86724e68d0f642e85 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4285bb2b2a9b55f3875839b86724e68d0f642e85
index 8d2a25ce5..8d2a25ce5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4285bb2b2a9b55f3875839b86724e68d0f642e85
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4285bb2b2a9b55f3875839b86724e68d0f642e85
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/429600b13ec3c8cbe0ac2413581666cc2ffcd056 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/429600b13ec3c8cbe0ac2413581666cc2ffcd056
index 276ff282f..276ff282f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/429600b13ec3c8cbe0ac2413581666cc2ffcd056
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/429600b13ec3c8cbe0ac2413581666cc2ffcd056
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/42c8c861682553cf76c7acac4c33ee670b53bb68 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/42c8c861682553cf76c7acac4c33ee670b53bb68
index 5de25f19e..5de25f19e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/42c8c861682553cf76c7acac4c33ee670b53bb68
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/42c8c861682553cf76c7acac4c33ee670b53bb68
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/42d02e3469377df7d6257af06ebb43c3d9919898 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/42d02e3469377df7d6257af06ebb43c3d9919898
index 7801e6bac..7801e6bac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/42d02e3469377df7d6257af06ebb43c3d9919898
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/42d02e3469377df7d6257af06ebb43c3d9919898
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/43148ff4291f59abbd6e8a60378ded248c4969c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43148ff4291f59abbd6e8a60378ded248c4969c2
index 97375db39..97375db39 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/43148ff4291f59abbd6e8a60378ded248c4969c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43148ff4291f59abbd6e8a60378ded248c4969c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/433518ce43a2537d2e6088c14c34af3607edb70d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/433518ce43a2537d2e6088c14c34af3607edb70d
index 2b57193e6..2b57193e6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/433518ce43a2537d2e6088c14c34af3607edb70d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/433518ce43a2537d2e6088c14c34af3607edb70d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/434acd74815be95d2055292b2e599184cb76ef02 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/434acd74815be95d2055292b2e599184cb76ef02
index 44625ae98..44625ae98 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/434acd74815be95d2055292b2e599184cb76ef02
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/434acd74815be95d2055292b2e599184cb76ef02
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/43821d06bb1479808b2ece4e04ec86f77af38dac b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43821d06bb1479808b2ece4e04ec86f77af38dac
index 042786eb6..042786eb6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/43821d06bb1479808b2ece4e04ec86f77af38dac
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43821d06bb1479808b2ece4e04ec86f77af38dac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/43844e38cb3773caa9ab084f05373cc0f53001db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43844e38cb3773caa9ab084f05373cc0f53001db
index 2dbc75496..2dbc75496 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/43844e38cb3773caa9ab084f05373cc0f53001db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43844e38cb3773caa9ab084f05373cc0f53001db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/43be365d6e1735fe7a50f44eee938b42f6a2e3bd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43be365d6e1735fe7a50f44eee938b42f6a2e3bd
index 4fd0bbc9d..4fd0bbc9d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/43be365d6e1735fe7a50f44eee938b42f6a2e3bd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43be365d6e1735fe7a50f44eee938b42f6a2e3bd
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/43d87b1448784a39f579fc6ba0668598057f365a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43d87b1448784a39f579fc6ba0668598057f365a
index 441028d3f..441028d3f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/43d87b1448784a39f579fc6ba0668598057f365a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43d87b1448784a39f579fc6ba0668598057f365a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/43f1bc3ce406e937c171bffe02cae0ee67985bc8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43f1bc3ce406e937c171bffe02cae0ee67985bc8
index 7d3d34a39..7d3d34a39 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/43f1bc3ce406e937c171bffe02cae0ee67985bc8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43f1bc3ce406e937c171bffe02cae0ee67985bc8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/43f52fb50b83b6aa71d2c583afe1767606278627 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43f52fb50b83b6aa71d2c583afe1767606278627
index 7fe881437..7fe881437 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/43f52fb50b83b6aa71d2c583afe1767606278627
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/43f52fb50b83b6aa71d2c583afe1767606278627
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/44231b2d06d3674f0ca0541b28cfea2f14483a6c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/44231b2d06d3674f0ca0541b28cfea2f14483a6c
index 494ab1309..494ab1309 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/44231b2d06d3674f0ca0541b28cfea2f14483a6c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/44231b2d06d3674f0ca0541b28cfea2f14483a6c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4434cc485f56a1dccc51b794da275cd46a075c9c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4434cc485f56a1dccc51b794da275cd46a075c9c
index 2b7c287b7..2b7c287b7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4434cc485f56a1dccc51b794da275cd46a075c9c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4434cc485f56a1dccc51b794da275cd46a075c9c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/44727eefbfd71c18f7d6844eeb2ec56b0e5b065e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/44727eefbfd71c18f7d6844eeb2ec56b0e5b065e
index e21a9cde4..e21a9cde4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/44727eefbfd71c18f7d6844eeb2ec56b0e5b065e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/44727eefbfd71c18f7d6844eeb2ec56b0e5b065e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/450ca901be1c87662914e24ea7455fa42aea5378 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/450ca901be1c87662914e24ea7455fa42aea5378
index a8b942545..a8b942545 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/450ca901be1c87662914e24ea7455fa42aea5378
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/450ca901be1c87662914e24ea7455fa42aea5378
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/45101eef27fdf601cd166fcb198cdd46badb0213 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/45101eef27fdf601cd166fcb198cdd46badb0213
index e0646fdbf..e0646fdbf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/45101eef27fdf601cd166fcb198cdd46badb0213
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/45101eef27fdf601cd166fcb198cdd46badb0213
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/451e0ebbeb8d77fd2941cf5fd7802fe644c958b7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/451e0ebbeb8d77fd2941cf5fd7802fe644c958b7
index c177f9194..c177f9194 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/451e0ebbeb8d77fd2941cf5fd7802fe644c958b7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/451e0ebbeb8d77fd2941cf5fd7802fe644c958b7
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4521e3d9e88ab4265f0cb2ef64844dad15b7bc49 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4521e3d9e88ab4265f0cb2ef64844dad15b7bc49
index 9ae16f091..9ae16f091 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4521e3d9e88ab4265f0cb2ef64844dad15b7bc49
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4521e3d9e88ab4265f0cb2ef64844dad15b7bc49
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/455cc1fdc9b047bcbc82910a02aa962a57cf51c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/455cc1fdc9b047bcbc82910a02aa962a57cf51c2
index 81e71050e..81e71050e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/455cc1fdc9b047bcbc82910a02aa962a57cf51c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/455cc1fdc9b047bcbc82910a02aa962a57cf51c2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4563880babf5d7ea0260e68e2622ea76793ca7cb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4563880babf5d7ea0260e68e2622ea76793ca7cb
index 00bbdfe88..00bbdfe88 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4563880babf5d7ea0260e68e2622ea76793ca7cb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4563880babf5d7ea0260e68e2622ea76793ca7cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/45a53647d3bec0fa36535fe9c6000cbf4c0311a4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/45a53647d3bec0fa36535fe9c6000cbf4c0311a4
index 0725b5163..0725b5163 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/45a53647d3bec0fa36535fe9c6000cbf4c0311a4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/45a53647d3bec0fa36535fe9c6000cbf4c0311a4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/45f9aeba5413cf5a43dea82424bc9acc7d745bb1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/45f9aeba5413cf5a43dea82424bc9acc7d745bb1
index c5c57222a..c5c57222a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/45f9aeba5413cf5a43dea82424bc9acc7d745bb1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/45f9aeba5413cf5a43dea82424bc9acc7d745bb1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/460872a974136f54ca12f9abd5dc3cb5901379e2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/460872a974136f54ca12f9abd5dc3cb5901379e2
index 457dddfb2..457dddfb2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/460872a974136f54ca12f9abd5dc3cb5901379e2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/460872a974136f54ca12f9abd5dc3cb5901379e2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/460eca9edf37ae6779f71d4ede81618bfb51491a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/460eca9edf37ae6779f71d4ede81618bfb51491a
index d8bf2b6ea..d8bf2b6ea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/460eca9edf37ae6779f71d4ede81618bfb51491a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/460eca9edf37ae6779f71d4ede81618bfb51491a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4613b9f0b3e021b5392dcd4ec093df5f92019f17 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4613b9f0b3e021b5392dcd4ec093df5f92019f17
index a5e13175f..a5e13175f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4613b9f0b3e021b5392dcd4ec093df5f92019f17
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4613b9f0b3e021b5392dcd4ec093df5f92019f17
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/462b9d911d4e68b8b6d400d50210f0eb31af0960 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/462b9d911d4e68b8b6d400d50210f0eb31af0960
index 413e0ca7d..413e0ca7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/462b9d911d4e68b8b6d400d50210f0eb31af0960
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/462b9d911d4e68b8b6d400d50210f0eb31af0960
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/462cb3aabc09a9bda9d4c7ad47642e6a6e8c0bc4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/462cb3aabc09a9bda9d4c7ad47642e6a6e8c0bc4
index ba08335cf..ba08335cf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/462cb3aabc09a9bda9d4c7ad47642e6a6e8c0bc4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/462cb3aabc09a9bda9d4c7ad47642e6a6e8c0bc4
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/463d8087c45cb79c445e16cd06c725856d0b39a9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/463d8087c45cb79c445e16cd06c725856d0b39a9
index 60e84980a..60e84980a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/463d8087c45cb79c445e16cd06c725856d0b39a9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/463d8087c45cb79c445e16cd06c725856d0b39a9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/464f3ef9651a3f4a7386daa5cf377262e7aaacbd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/464f3ef9651a3f4a7386daa5cf377262e7aaacbd
index 27404f8e2..27404f8e2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/464f3ef9651a3f4a7386daa5cf377262e7aaacbd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/464f3ef9651a3f4a7386daa5cf377262e7aaacbd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/465e16d980929373f7c0af40104ffc99d7075c6e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/465e16d980929373f7c0af40104ffc99d7075c6e
index e69d105ab..e69d105ab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/465e16d980929373f7c0af40104ffc99d7075c6e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/465e16d980929373f7c0af40104ffc99d7075c6e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4679562d3e2dd79fd0c4bf9fafb18ab8d228c224 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4679562d3e2dd79fd0c4bf9fafb18ab8d228c224
index 56c0fcf98..56c0fcf98 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4679562d3e2dd79fd0c4bf9fafb18ab8d228c224
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4679562d3e2dd79fd0c4bf9fafb18ab8d228c224
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/46e1f00fd1e9594ed2e1543f488fa0e9e2eae1ec b/src/web/server/h2o/libh2o/fuzz/http1-corpus/46e1f00fd1e9594ed2e1543f488fa0e9e2eae1ec
index 16fb9d888..16fb9d888 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/46e1f00fd1e9594ed2e1543f488fa0e9e2eae1ec
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/46e1f00fd1e9594ed2e1543f488fa0e9e2eae1ec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/474d0d610ca444ab1a339179936b893bf269ac4e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/474d0d610ca444ab1a339179936b893bf269ac4e
index 7ceab0300..7ceab0300 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/474d0d610ca444ab1a339179936b893bf269ac4e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/474d0d610ca444ab1a339179936b893bf269ac4e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4754ca4a0e441f9f027ae0abf960b630e76cb83f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4754ca4a0e441f9f027ae0abf960b630e76cb83f
index 52b696a72..52b696a72 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4754ca4a0e441f9f027ae0abf960b630e76cb83f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4754ca4a0e441f9f027ae0abf960b630e76cb83f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/475af2606e28302cc023793792582e78ef2b57bd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/475af2606e28302cc023793792582e78ef2b57bd
index 22c4f43ba..22c4f43ba 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/475af2606e28302cc023793792582e78ef2b57bd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/475af2606e28302cc023793792582e78ef2b57bd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/47837d2a3423c05da939f0f4822ca0d57aba1c1c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/47837d2a3423c05da939f0f4822ca0d57aba1c1c
index 0076462a8..0076462a8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/47837d2a3423c05da939f0f4822ca0d57aba1c1c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/47837d2a3423c05da939f0f4822ca0d57aba1c1c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83
index 8112fe0aa..8112fe0aa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/479c4d2827d9a21fd19471891f84c7f661ffa3c4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/479c4d2827d9a21fd19471891f84c7f661ffa3c4
index 5e2c1fd7f..5e2c1fd7f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/479c4d2827d9a21fd19471891f84c7f661ffa3c4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/479c4d2827d9a21fd19471891f84c7f661ffa3c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/47c8e4db0bed1dd73c702ff70eb790e12e61bb0b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/47c8e4db0bed1dd73c702ff70eb790e12e61bb0b
index 84361f2e7..84361f2e7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/47c8e4db0bed1dd73c702ff70eb790e12e61bb0b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/47c8e4db0bed1dd73c702ff70eb790e12e61bb0b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/47dca969e1accb1abf63ca6a2074643e1419fdb8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/47dca969e1accb1abf63ca6a2074643e1419fdb8
index eaa97da16..eaa97da16 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/47dca969e1accb1abf63ca6a2074643e1419fdb8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/47dca969e1accb1abf63ca6a2074643e1419fdb8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4840ad653f898a2349e5568c2d9d901c44fab0ca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4840ad653f898a2349e5568c2d9d901c44fab0ca
index e5018a52e..e5018a52e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4840ad653f898a2349e5568c2d9d901c44fab0ca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4840ad653f898a2349e5568c2d9d901c44fab0ca
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/484ca664e06c0c7ef2c19632fb17771ab35016e5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/484ca664e06c0c7ef2c19632fb17771ab35016e5
index 7761751a2..7761751a2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/484ca664e06c0c7ef2c19632fb17771ab35016e5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/484ca664e06c0c7ef2c19632fb17771ab35016e5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4872adcc5b550da7614112633c0c0970914dc2a3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4872adcc5b550da7614112633c0c0970914dc2a3
index f6e47f067..f6e47f067 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4872adcc5b550da7614112633c0c0970914dc2a3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4872adcc5b550da7614112633c0c0970914dc2a3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/48e1d22e076dde487cf65ca28632caef40d2d7fe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/48e1d22e076dde487cf65ca28632caef40d2d7fe
index e6b513c7f..e6b513c7f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/48e1d22e076dde487cf65ca28632caef40d2d7fe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/48e1d22e076dde487cf65ca28632caef40d2d7fe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/490f63040755bf808fed2a85d9e5f6bb3d37bd24 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/490f63040755bf808fed2a85d9e5f6bb3d37bd24
index 92e209142..92e209142 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/490f63040755bf808fed2a85d9e5f6bb3d37bd24
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/490f63040755bf808fed2a85d9e5f6bb3d37bd24
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/496ff91944df4f6142a69ece5a4e178427e13b80 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/496ff91944df4f6142a69ece5a4e178427e13b80
index e8c9f675d..e8c9f675d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/496ff91944df4f6142a69ece5a4e178427e13b80
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/496ff91944df4f6142a69ece5a4e178427e13b80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/498f7a8251cf811dc63bbcb75545f5ef4675a07f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/498f7a8251cf811dc63bbcb75545f5ef4675a07f
index 010d5e692..010d5e692 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/498f7a8251cf811dc63bbcb75545f5ef4675a07f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/498f7a8251cf811dc63bbcb75545f5ef4675a07f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/49cf99953777b108ed9d01c67e3e3a217caba84d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49cf99953777b108ed9d01c67e3e3a217caba84d
index 437daf917..437daf917 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/49cf99953777b108ed9d01c67e3e3a217caba84d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49cf99953777b108ed9d01c67e3e3a217caba84d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/49dc39d714e11cfdc43e480f474c27ed906aa133 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49dc39d714e11cfdc43e480f474c27ed906aa133
index 6234d4c5b..6234d4c5b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/49dc39d714e11cfdc43e480f474c27ed906aa133
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49dc39d714e11cfdc43e480f474c27ed906aa133
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/49f524af5010371a6cb6a7a148b1767e5334046f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49f524af5010371a6cb6a7a148b1767e5334046f
index 225c3d4eb..225c3d4eb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/49f524af5010371a6cb6a7a148b1767e5334046f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49f524af5010371a6cb6a7a148b1767e5334046f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca
index 70c20e075..70c20e075 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4a07a32eb77b679dfaf8948b12bde2528932f997 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a07a32eb77b679dfaf8948b12bde2528932f997
index c9c1d3ad6..c9c1d3ad6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4a07a32eb77b679dfaf8948b12bde2528932f997
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a07a32eb77b679dfaf8948b12bde2528932f997
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4a2d7e5d85beb4c06a70d003a7d4b47744195828 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a2d7e5d85beb4c06a70d003a7d4b47744195828
index 2de987eeb..2de987eeb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4a2d7e5d85beb4c06a70d003a7d4b47744195828
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a2d7e5d85beb4c06a70d003a7d4b47744195828
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4a514bab53c871d934114167d2f10adf41528cd4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a514bab53c871d934114167d2f10adf41528cd4
index 0ccb1a087..0ccb1a087 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4a514bab53c871d934114167d2f10adf41528cd4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a514bab53c871d934114167d2f10adf41528cd4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4a8c055e96f9ed91e9fba5d17f80a1a1fbe5fdd3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a8c055e96f9ed91e9fba5d17f80a1a1fbe5fdd3
index 63cc27308..63cc27308 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4a8c055e96f9ed91e9fba5d17f80a1a1fbe5fdd3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4a8c055e96f9ed91e9fba5d17f80a1a1fbe5fdd3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4b077363f939d494598efb88b3fda82860e6a9a4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4b077363f939d494598efb88b3fda82860e6a9a4
index c1481cc6f..c1481cc6f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4b077363f939d494598efb88b3fda82860e6a9a4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4b077363f939d494598efb88b3fda82860e6a9a4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4b099b04c2cf74b09681841685c32e5f4ac823d3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4b099b04c2cf74b09681841685c32e5f4ac823d3
index 4d3686f1a..4d3686f1a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4b099b04c2cf74b09681841685c32e5f4ac823d3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4b099b04c2cf74b09681841685c32e5f4ac823d3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4be88f07fa5e4c3442c4ff1364e88f126184af6c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4be88f07fa5e4c3442c4ff1364e88f126184af6c
index 9134e43c5..9134e43c5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4be88f07fa5e4c3442c4ff1364e88f126184af6c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4be88f07fa5e4c3442c4ff1364e88f126184af6c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4bef7242d7154fe32baf59c50d5d1d06c3e45872 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4bef7242d7154fe32baf59c50d5d1d06c3e45872
index 7b3f69eea..7b3f69eea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4bef7242d7154fe32baf59c50d5d1d06c3e45872
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4bef7242d7154fe32baf59c50d5d1d06c3e45872
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4c2f942a1f0cf05641b71a497b6d3e9fb21b64cd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4c2f942a1f0cf05641b71a497b6d3e9fb21b64cd
index 46afeecde..46afeecde 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4c2f942a1f0cf05641b71a497b6d3e9fb21b64cd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4c2f942a1f0cf05641b71a497b6d3e9fb21b64cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4c5dc30ed6e5597430c9d72e0fd222862b633246 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4c5dc30ed6e5597430c9d72e0fd222862b633246
index c28f6e8c7..c28f6e8c7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4c5dc30ed6e5597430c9d72e0fd222862b633246
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4c5dc30ed6e5597430c9d72e0fd222862b633246
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4c7953777c30a8608c182174dc18c132417684d8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4c7953777c30a8608c182174dc18c132417684d8
index 94ee1771d..94ee1771d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4c7953777c30a8608c182174dc18c132417684d8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4c7953777c30a8608c182174dc18c132417684d8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4caf78617df289201f01eae5621aca1b24eb1aab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4caf78617df289201f01eae5621aca1b24eb1aab
index cca722844..cca722844 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4caf78617df289201f01eae5621aca1b24eb1aab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4caf78617df289201f01eae5621aca1b24eb1aab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4cf28e832b6c9b366d34b3d7b3bf758f79fa832d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4cf28e832b6c9b366d34b3d7b3bf758f79fa832d
index 1f0f15b46..1f0f15b46 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4cf28e832b6c9b366d34b3d7b3bf758f79fa832d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4cf28e832b6c9b366d34b3d7b3bf758f79fa832d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4d332ed8496fdfa8fce8c7caf556c8d88cc0629c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4d332ed8496fdfa8fce8c7caf556c8d88cc0629c
index 21ebc40f9..21ebc40f9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4d332ed8496fdfa8fce8c7caf556c8d88cc0629c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4d332ed8496fdfa8fce8c7caf556c8d88cc0629c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4da94b75359ee0bf678926514059f5d1d44fca5a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4da94b75359ee0bf678926514059f5d1d44fca5a
index eeb4ede98..eeb4ede98 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4da94b75359ee0bf678926514059f5d1d44fca5a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4da94b75359ee0bf678926514059f5d1d44fca5a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4dfa9efc154dc2e91e87418f1c2eaee60f6c56b7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4dfa9efc154dc2e91e87418f1c2eaee60f6c56b7
index aac5f013b..aac5f013b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4dfa9efc154dc2e91e87418f1c2eaee60f6c56b7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4dfa9efc154dc2e91e87418f1c2eaee60f6c56b7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4e245ed8b2ffaf92274176f3a53fab9f947408eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e245ed8b2ffaf92274176f3a53fab9f947408eb
index 082510044..082510044 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4e245ed8b2ffaf92274176f3a53fab9f947408eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e245ed8b2ffaf92274176f3a53fab9f947408eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4e752bbf5f5afff3292b77b44ea1061e7d78c799 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e752bbf5f5afff3292b77b44ea1061e7d78c799
index 27d458112..27d458112 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4e752bbf5f5afff3292b77b44ea1061e7d78c799
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e752bbf5f5afff3292b77b44ea1061e7d78c799
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4e8cfe425da4a0aa430d8a47a41ea668ef09a8b5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e8cfe425da4a0aa430d8a47a41ea668ef09a8b5
index 749f027f1..749f027f1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4e8cfe425da4a0aa430d8a47a41ea668ef09a8b5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e8cfe425da4a0aa430d8a47a41ea668ef09a8b5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4e8fde4e2aa652f7e4b732a38b76b87f172691da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e8fde4e2aa652f7e4b732a38b76b87f172691da
index 94d370619..94d370619 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4e8fde4e2aa652f7e4b732a38b76b87f172691da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4e8fde4e2aa652f7e4b732a38b76b87f172691da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4f094dab103f1614e99bc98906f80ef4e60d43b3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4f094dab103f1614e99bc98906f80ef4e60d43b3
index bfda9cc1a..bfda9cc1a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4f094dab103f1614e99bc98906f80ef4e60d43b3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4f094dab103f1614e99bc98906f80ef4e60d43b3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4f89d0a8b07d8a295926ce568a942fc9fee8104d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4f89d0a8b07d8a295926ce568a942fc9fee8104d
index 87295dccd..87295dccd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4f89d0a8b07d8a295926ce568a942fc9fee8104d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4f89d0a8b07d8a295926ce568a942fc9fee8104d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4fab2328d3794751cca0a1a39e6c80dabc2d2b34 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4fab2328d3794751cca0a1a39e6c80dabc2d2b34
index cb73ee1af..cb73ee1af 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4fab2328d3794751cca0a1a39e6c80dabc2d2b34
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4fab2328d3794751cca0a1a39e6c80dabc2d2b34
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/4facbec94cef072c40ede75401159c73ca806049 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4facbec94cef072c40ede75401159c73ca806049
index 78d9ab79b..78d9ab79b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/4facbec94cef072c40ede75401159c73ca806049
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/4facbec94cef072c40ede75401159c73ca806049
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5035c2263fd7cefa1284f507e01bb6c5f0885ca0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5035c2263fd7cefa1284f507e01bb6c5f0885ca0
index 81886267b..81886267b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5035c2263fd7cefa1284f507e01bb6c5f0885ca0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5035c2263fd7cefa1284f507e01bb6c5f0885ca0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/505b8d7681bb9626d48d65c22fbd61cc834fd569 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/505b8d7681bb9626d48d65c22fbd61cc834fd569
index 1b33120d0..1b33120d0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/505b8d7681bb9626d48d65c22fbd61cc834fd569
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/505b8d7681bb9626d48d65c22fbd61cc834fd569
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/505bd24cecd4ad46da4b430a5b3f1f65a7adca2a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/505bd24cecd4ad46da4b430a5b3f1f65a7adca2a
index 443c01981..443c01981 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/505bd24cecd4ad46da4b430a5b3f1f65a7adca2a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/505bd24cecd4ad46da4b430a5b3f1f65a7adca2a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/50641f0c4154b9ec6344f5ff82c13175fe985f95 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50641f0c4154b9ec6344f5ff82c13175fe985f95
index 5b096798d..5b096798d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/50641f0c4154b9ec6344f5ff82c13175fe985f95
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50641f0c4154b9ec6344f5ff82c13175fe985f95
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/507161b2aed94f42e16c1ea61bb576805dd01e64 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/507161b2aed94f42e16c1ea61bb576805dd01e64
index 3e9b89403..3e9b89403 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/507161b2aed94f42e16c1ea61bb576805dd01e64
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/507161b2aed94f42e16c1ea61bb576805dd01e64
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/50bd522ac93302b997fb2f83dfcf7dc101ba2a59 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50bd522ac93302b997fb2f83dfcf7dc101ba2a59
index 9ced914f2..9ced914f2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/50bd522ac93302b997fb2f83dfcf7dc101ba2a59
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50bd522ac93302b997fb2f83dfcf7dc101ba2a59
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/50d933c0c35f6dcd338086dcaa62de589c75c2ab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50d933c0c35f6dcd338086dcaa62de589c75c2ab
index 9030454b3..9030454b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/50d933c0c35f6dcd338086dcaa62de589c75c2ab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50d933c0c35f6dcd338086dcaa62de589c75c2ab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/50e2069150171d8d771e87af56c15978595bcf34 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50e2069150171d8d771e87af56c15978595bcf34
index db70322c2..db70322c2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/50e2069150171d8d771e87af56c15978595bcf34
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/50e2069150171d8d771e87af56c15978595bcf34
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/51451cddb5b635da5760732d39b80aa3f9f84eae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51451cddb5b635da5760732d39b80aa3f9f84eae
index f21537be8..f21537be8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/51451cddb5b635da5760732d39b80aa3f9f84eae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51451cddb5b635da5760732d39b80aa3f9f84eae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/514cb606bf89bd93edff445c2cfce68602b92d3a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/514cb606bf89bd93edff445c2cfce68602b92d3a
index 2aea4b66b..2aea4b66b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/514cb606bf89bd93edff445c2cfce68602b92d3a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/514cb606bf89bd93edff445c2cfce68602b92d3a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/51632562bd067e88e01dd63dd32192cc38fb233c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51632562bd067e88e01dd63dd32192cc38fb233c
index 5a4e0a6c5..5a4e0a6c5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/51632562bd067e88e01dd63dd32192cc38fb233c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51632562bd067e88e01dd63dd32192cc38fb233c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/516d8dadfbba29c2f8144b90609df13aaec4d33e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/516d8dadfbba29c2f8144b90609df13aaec4d33e
index 17f0628b5..17f0628b5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/516d8dadfbba29c2f8144b90609df13aaec4d33e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/516d8dadfbba29c2f8144b90609df13aaec4d33e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/518959c746e60fd12b1dafc00abd125c33d156f3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/518959c746e60fd12b1dafc00abd125c33d156f3
index 644d99a88..644d99a88 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/518959c746e60fd12b1dafc00abd125c33d156f3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/518959c746e60fd12b1dafc00abd125c33d156f3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5192bbcd310a47667417b6ed2954e8f6127bd20c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5192bbcd310a47667417b6ed2954e8f6127bd20c
index 3b1c9894b..3b1c9894b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5192bbcd310a47667417b6ed2954e8f6127bd20c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5192bbcd310a47667417b6ed2954e8f6127bd20c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/51bc54c14427635d884e374b85fd9223957b6bbe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51bc54c14427635d884e374b85fd9223957b6bbe
index 159d5cbf0..159d5cbf0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/51bc54c14427635d884e374b85fd9223957b6bbe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51bc54c14427635d884e374b85fd9223957b6bbe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/51c089206dd17a6e70db540ca668ad98e256a86f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51c089206dd17a6e70db540ca668ad98e256a86f
index daa5f7d1a..daa5f7d1a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/51c089206dd17a6e70db540ca668ad98e256a86f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51c089206dd17a6e70db540ca668ad98e256a86f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/51efc0878576498510800c0bde90d59db17317e5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51efc0878576498510800c0bde90d59db17317e5
index 3bc2e1489..3bc2e1489 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/51efc0878576498510800c0bde90d59db17317e5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/51efc0878576498510800c0bde90d59db17317e5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/52074f72dcb784c5b9bcb7633f13b190b0821ab9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/52074f72dcb784c5b9bcb7633f13b190b0821ab9
index 0e87d4371..0e87d4371 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/52074f72dcb784c5b9bcb7633f13b190b0821ab9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/52074f72dcb784c5b9bcb7633f13b190b0821ab9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/520cf7cbb888a47f28678fe98f538bc7dd2813e9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/520cf7cbb888a47f28678fe98f538bc7dd2813e9
index ea92f5226..ea92f5226 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/520cf7cbb888a47f28678fe98f538bc7dd2813e9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/520cf7cbb888a47f28678fe98f538bc7dd2813e9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/521b1eacf7768e683607e084ca774716bb803c89 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/521b1eacf7768e683607e084ca774716bb803c89
index 34349b00a..34349b00a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/521b1eacf7768e683607e084ca774716bb803c89
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/521b1eacf7768e683607e084ca774716bb803c89
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5226f3b24e89a0843a1d642f6f579e5bdde7c3f4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5226f3b24e89a0843a1d642f6f579e5bdde7c3f4
index f48d27852..f48d27852 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5226f3b24e89a0843a1d642f6f579e5bdde7c3f4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5226f3b24e89a0843a1d642f6f579e5bdde7c3f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/52a7598ac2358518ec148b4c9688174177671d38 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/52a7598ac2358518ec148b4c9688174177671d38
index 3e0791324..3e0791324 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/52a7598ac2358518ec148b4c9688174177671d38
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/52a7598ac2358518ec148b4c9688174177671d38
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5300cea0eccbf8c9f46ad7f771d438e8f99653dd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5300cea0eccbf8c9f46ad7f771d438e8f99653dd
index f3dab3ba8..f3dab3ba8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5300cea0eccbf8c9f46ad7f771d438e8f99653dd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5300cea0eccbf8c9f46ad7f771d438e8f99653dd
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/530e037b20883f6f14f739880ddf15715c1524b0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/530e037b20883f6f14f739880ddf15715c1524b0
index 3a4764cd2..3a4764cd2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/530e037b20883f6f14f739880ddf15715c1524b0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/530e037b20883f6f14f739880ddf15715c1524b0
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5314bf8292093a9455808a22dabd0c50b895e2ea b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5314bf8292093a9455808a22dabd0c50b895e2ea
index 30b416ffa..30b416ffa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5314bf8292093a9455808a22dabd0c50b895e2ea
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5314bf8292093a9455808a22dabd0c50b895e2ea
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/531975ad1308cdc92e6af9ed8d0614372c780597 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/531975ad1308cdc92e6af9ed8d0614372c780597
index a5885aa5b..a5885aa5b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/531975ad1308cdc92e6af9ed8d0614372c780597
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/531975ad1308cdc92e6af9ed8d0614372c780597
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/53300ce72d115143151fc2385d163af06ee28aea b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53300ce72d115143151fc2385d163af06ee28aea
index 421c6c8ed..421c6c8ed 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/53300ce72d115143151fc2385d163af06ee28aea
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53300ce72d115143151fc2385d163af06ee28aea
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/53344637e7f2eda831c7dac938fd8410b551e7e0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53344637e7f2eda831c7dac938fd8410b551e7e0
index c7de76583..c7de76583 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/53344637e7f2eda831c7dac938fd8410b551e7e0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53344637e7f2eda831c7dac938fd8410b551e7e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/533b9bf0e63b13509555fd331390103584cfe9a4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/533b9bf0e63b13509555fd331390103584cfe9a4
index 9a997883d..9a997883d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/533b9bf0e63b13509555fd331390103584cfe9a4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/533b9bf0e63b13509555fd331390103584cfe9a4
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/53402c1fb733c80e80054e2467b9a4e3392057db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53402c1fb733c80e80054e2467b9a4e3392057db
index e452d1eac..e452d1eac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/53402c1fb733c80e80054e2467b9a4e3392057db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53402c1fb733c80e80054e2467b9a4e3392057db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5348f4abb0aa8f8e7025cf332a8509bec0460946 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5348f4abb0aa8f8e7025cf332a8509bec0460946
index d9c64f93c..d9c64f93c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5348f4abb0aa8f8e7025cf332a8509bec0460946
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5348f4abb0aa8f8e7025cf332a8509bec0460946
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/535494773c4f686ad2b60990d9702b9d38c7003b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/535494773c4f686ad2b60990d9702b9d38c7003b
index 68c027a95..68c027a95 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/535494773c4f686ad2b60990d9702b9d38c7003b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/535494773c4f686ad2b60990d9702b9d38c7003b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/538a6845ac5b18ec950d4eabd9a6f8d6e42b9537 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/538a6845ac5b18ec950d4eabd9a6f8d6e42b9537
index 1c7bc5387..1c7bc5387 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/538a6845ac5b18ec950d4eabd9a6f8d6e42b9537
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/538a6845ac5b18ec950d4eabd9a6f8d6e42b9537
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/53e9a1aa67caebbdcdf615339e5000ced1d7f773 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53e9a1aa67caebbdcdf615339e5000ced1d7f773
index 5862067a9..5862067a9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/53e9a1aa67caebbdcdf615339e5000ced1d7f773
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/53e9a1aa67caebbdcdf615339e5000ced1d7f773
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/541aca6dac32999bb439c1173d162cfbfadd1216 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/541aca6dac32999bb439c1173d162cfbfadd1216
index f3d9cd1fb..f3d9cd1fb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/541aca6dac32999bb439c1173d162cfbfadd1216
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/541aca6dac32999bb439c1173d162cfbfadd1216
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/542bebe5c6f55682eadc62892099e67b5027442c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/542bebe5c6f55682eadc62892099e67b5027442c
index 25dde869d..25dde869d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/542bebe5c6f55682eadc62892099e67b5027442c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/542bebe5c6f55682eadc62892099e67b5027442c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/543b10f163d9d48ff68c8a4726ab55f2d58b6499 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/543b10f163d9d48ff68c8a4726ab55f2d58b6499
index 871694768..871694768 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/543b10f163d9d48ff68c8a4726ab55f2d58b6499
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/543b10f163d9d48ff68c8a4726ab55f2d58b6499
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/54a1da98ae3338bd59e39e20f469ef4d738f9ec1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54a1da98ae3338bd59e39e20f469ef4d738f9ec1
index c200cfda0..c200cfda0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/54a1da98ae3338bd59e39e20f469ef4d738f9ec1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54a1da98ae3338bd59e39e20f469ef4d738f9ec1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/54d5b13c3f2f6e7e5c90ac2276b7dd61f01393f5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54d5b13c3f2f6e7e5c90ac2276b7dd61f01393f5
index 2a808a140..2a808a140 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/54d5b13c3f2f6e7e5c90ac2276b7dd61f01393f5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54d5b13c3f2f6e7e5c90ac2276b7dd61f01393f5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/54dc634fbd1f47fdfb29f59198df421a3fe76d13 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54dc634fbd1f47fdfb29f59198df421a3fe76d13
index 23838f105..23838f105 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/54dc634fbd1f47fdfb29f59198df421a3fe76d13
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54dc634fbd1f47fdfb29f59198df421a3fe76d13
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/54e37693ade2a79a874e889c64ff14cfc48321ad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54e37693ade2a79a874e889c64ff14cfc48321ad
index cc979c269..cc979c269 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/54e37693ade2a79a874e889c64ff14cfc48321ad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54e37693ade2a79a874e889c64ff14cfc48321ad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/54eb21e1407f43c6106e0aeeb40ea328eb0db760 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54eb21e1407f43c6106e0aeeb40ea328eb0db760
index 5087be377..5087be377 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/54eb21e1407f43c6106e0aeeb40ea328eb0db760
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/54eb21e1407f43c6106e0aeeb40ea328eb0db760
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5518d8b9c9ecdcbd6a0d3b49041782d91337c2c7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5518d8b9c9ecdcbd6a0d3b49041782d91337c2c7
index 0b8437cfb..0b8437cfb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5518d8b9c9ecdcbd6a0d3b49041782d91337c2c7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5518d8b9c9ecdcbd6a0d3b49041782d91337c2c7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/552418acb267cea76c2113ed251b265f90ad2166 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/552418acb267cea76c2113ed251b265f90ad2166
index 8581497df..8581497df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/552418acb267cea76c2113ed251b265f90ad2166
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/552418acb267cea76c2113ed251b265f90ad2166
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/55571ee86fcb23cb87cba20872b288c4eb7d80a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55571ee86fcb23cb87cba20872b288c4eb7d80a5
index 776dfebe5..776dfebe5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/55571ee86fcb23cb87cba20872b288c4eb7d80a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55571ee86fcb23cb87cba20872b288c4eb7d80a5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5582e64f3fa679c9add8e5cd61ecaaba3a9324c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5582e64f3fa679c9add8e5cd61ecaaba3a9324c2
index 0d2a535f6..0d2a535f6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5582e64f3fa679c9add8e5cd61ecaaba3a9324c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5582e64f3fa679c9add8e5cd61ecaaba3a9324c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/55c35156a101029704fa9768cb4c99c3e591548e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55c35156a101029704fa9768cb4c99c3e591548e
index 706939527..706939527 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/55c35156a101029704fa9768cb4c99c3e591548e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55c35156a101029704fa9768cb4c99c3e591548e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/55d5c709cee822f154094ea7766cb52216d32e58 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55d5c709cee822f154094ea7766cb52216d32e58
index 3b5551992..3b5551992 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/55d5c709cee822f154094ea7766cb52216d32e58
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55d5c709cee822f154094ea7766cb52216d32e58
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/55f685b71e6113f46422e938dbbf4dbaf8be1b68 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55f685b71e6113f46422e938dbbf4dbaf8be1b68
index 62fcf9613..62fcf9613 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/55f685b71e6113f46422e938dbbf4dbaf8be1b68
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/55f685b71e6113f46422e938dbbf4dbaf8be1b68
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5664afa86c44231d0f33d06d1343fdabeef60a6d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5664afa86c44231d0f33d06d1343fdabeef60a6d
index af68309e9..af68309e9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5664afa86c44231d0f33d06d1343fdabeef60a6d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5664afa86c44231d0f33d06d1343fdabeef60a6d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/56688a71ef144aa04d5c50f49fdb500ef4d1fbb1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56688a71ef144aa04d5c50f49fdb500ef4d1fbb1
index 9203bcf60..9203bcf60 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/56688a71ef144aa04d5c50f49fdb500ef4d1fbb1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56688a71ef144aa04d5c50f49fdb500ef4d1fbb1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/566ba04b9776e0421fbafc396ecebdde991ee746 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/566ba04b9776e0421fbafc396ecebdde991ee746
index 08326f3d2..08326f3d2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/566ba04b9776e0421fbafc396ecebdde991ee746
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/566ba04b9776e0421fbafc396ecebdde991ee746
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/56be7f43b5e7e1a04f88c27e3a44b73cce1d1535 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56be7f43b5e7e1a04f88c27e3a44b73cce1d1535
index deb88860c..deb88860c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/56be7f43b5e7e1a04f88c27e3a44b73cce1d1535
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56be7f43b5e7e1a04f88c27e3a44b73cce1d1535
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/56f68777fcc6436fbe0b94d50f331ac38ab5188f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56f68777fcc6436fbe0b94d50f331ac38ab5188f
index 1527e00a6..1527e00a6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/56f68777fcc6436fbe0b94d50f331ac38ab5188f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56f68777fcc6436fbe0b94d50f331ac38ab5188f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/56fdc25d963cb10061f954ffc69e15113ba1bc4b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56fdc25d963cb10061f954ffc69e15113ba1bc4b
index 582fbf7d2..582fbf7d2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/56fdc25d963cb10061f954ffc69e15113ba1bc4b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/56fdc25d963cb10061f954ffc69e15113ba1bc4b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/573813d3c2e31525db5cf563ae8216e1fff1c42f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/573813d3c2e31525db5cf563ae8216e1fff1c42f
index e03f9a517..e03f9a517 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/573813d3c2e31525db5cf563ae8216e1fff1c42f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/573813d3c2e31525db5cf563ae8216e1fff1c42f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/574a63c1c17bd767a7ba737543342031e33b2381 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/574a63c1c17bd767a7ba737543342031e33b2381
index 34c40c1df..34c40c1df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/574a63c1c17bd767a7ba737543342031e33b2381
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/574a63c1c17bd767a7ba737543342031e33b2381
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5771304edf513f45422cb2868a85e883bebfddab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5771304edf513f45422cb2868a85e883bebfddab
index bf31f87e5..bf31f87e5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5771304edf513f45422cb2868a85e883bebfddab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5771304edf513f45422cb2868a85e883bebfddab
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/579b6f8763bb1d12ebffd369812fcca39f876bc9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/579b6f8763bb1d12ebffd369812fcca39f876bc9
index 2b87c5fbd..2b87c5fbd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/579b6f8763bb1d12ebffd369812fcca39f876bc9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/579b6f8763bb1d12ebffd369812fcca39f876bc9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/57a162d05da70066d813b3ca477bb3eb1075ddb3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/57a162d05da70066d813b3ca477bb3eb1075ddb3
index 5f8f5f44b..5f8f5f44b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/57a162d05da70066d813b3ca477bb3eb1075ddb3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/57a162d05da70066d813b3ca477bb3eb1075ddb3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/57f20e563728558d67502b15fe9f668b526d10f5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/57f20e563728558d67502b15fe9f668b526d10f5
index 57d04f9bf..57d04f9bf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/57f20e563728558d67502b15fe9f668b526d10f5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/57f20e563728558d67502b15fe9f668b526d10f5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/57fcced3d55bae90434eb9685ec3c4b925fa5a43 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/57fcced3d55bae90434eb9685ec3c4b925fa5a43
index 4db4a7bb7..4db4a7bb7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/57fcced3d55bae90434eb9685ec3c4b925fa5a43
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/57fcced3d55bae90434eb9685ec3c4b925fa5a43
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5818bcf34fa1430fd8bba02f61453ec645b5e867 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5818bcf34fa1430fd8bba02f61453ec645b5e867
index b361010e6..b361010e6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5818bcf34fa1430fd8bba02f61453ec645b5e867
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5818bcf34fa1430fd8bba02f61453ec645b5e867
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/58260690f4c467510173554a875121e4b1dabc3b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58260690f4c467510173554a875121e4b1dabc3b
index 95ce5dee8..95ce5dee8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/58260690f4c467510173554a875121e4b1dabc3b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58260690f4c467510173554a875121e4b1dabc3b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/585b803d7bd041c0246333c500a4edf93fd04e8c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/585b803d7bd041c0246333c500a4edf93fd04e8c
index ea3f4242e..ea3f4242e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/585b803d7bd041c0246333c500a4edf93fd04e8c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/585b803d7bd041c0246333c500a4edf93fd04e8c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/586b4de14c861460d3a1eee80b53db0e52a674a2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/586b4de14c861460d3a1eee80b53db0e52a674a2
index 70bfc4610..70bfc4610 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/586b4de14c861460d3a1eee80b53db0e52a674a2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/586b4de14c861460d3a1eee80b53db0e52a674a2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/588269c9a74c4f11c6c2fd0487787daa850efdc4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/588269c9a74c4f11c6c2fd0487787daa850efdc4
index 68d3807cf..68d3807cf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/588269c9a74c4f11c6c2fd0487787daa850efdc4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/588269c9a74c4f11c6c2fd0487787daa850efdc4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/58954ce1e3e30962c825e54368ed52b59af8201f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58954ce1e3e30962c825e54368ed52b59af8201f
index 64b6d4a30..64b6d4a30 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/58954ce1e3e30962c825e54368ed52b59af8201f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58954ce1e3e30962c825e54368ed52b59af8201f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/58c4489fa1b987c4f9b89a9f869e3d1cb66618ee b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58c4489fa1b987c4f9b89a9f869e3d1cb66618ee
index ace6b55d3..ace6b55d3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/58c4489fa1b987c4f9b89a9f869e3d1cb66618ee
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58c4489fa1b987c4f9b89a9f869e3d1cb66618ee
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/58fff920e4666a8e2118055997695663c2bfa9bf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58fff920e4666a8e2118055997695663c2bfa9bf
index 94cc892fa..94cc892fa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/58fff920e4666a8e2118055997695663c2bfa9bf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/58fff920e4666a8e2118055997695663c2bfa9bf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/59b78950bd623ae6ccc0c8322a738a6ee2cef332 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/59b78950bd623ae6ccc0c8322a738a6ee2cef332
index f40cf2df6..f40cf2df6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/59b78950bd623ae6ccc0c8322a738a6ee2cef332
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/59b78950bd623ae6ccc0c8322a738a6ee2cef332
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/59ecdf942ff6e4503657bbcc8ca9026ad650cd81 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/59ecdf942ff6e4503657bbcc8ca9026ad650cd81
index f548bc415..f548bc415 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/59ecdf942ff6e4503657bbcc8ca9026ad650cd81
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/59ecdf942ff6e4503657bbcc8ca9026ad650cd81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5b10d22c6a936f03d77158203d0a09ec95b9e47e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b10d22c6a936f03d77158203d0a09ec95b9e47e
index f18d776ab..f18d776ab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5b10d22c6a936f03d77158203d0a09ec95b9e47e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b10d22c6a936f03d77158203d0a09ec95b9e47e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5b3196afabf0c3a82d175f32657b7da6a2f46c18 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b3196afabf0c3a82d175f32657b7da6a2f46c18
index 22065dd9d..22065dd9d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5b3196afabf0c3a82d175f32657b7da6a2f46c18
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b3196afabf0c3a82d175f32657b7da6a2f46c18
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5b9066a269f30bb21771434b35ca7f8561b165c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b9066a269f30bb21771434b35ca7f8561b165c2
index 309db01f3..309db01f3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5b9066a269f30bb21771434b35ca7f8561b165c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b9066a269f30bb21771434b35ca7f8561b165c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5b983671441296cb9972410b1c9ad371009cf8c8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b983671441296cb9972410b1c9ad371009cf8c8
index ee340f58d..ee340f58d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5b983671441296cb9972410b1c9ad371009cf8c8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5b983671441296cb9972410b1c9ad371009cf8c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5be5fc275d6100d55fefde486c3c4baf21c66e55 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5be5fc275d6100d55fefde486c3c4baf21c66e55
index 332a93340..332a93340 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5be5fc275d6100d55fefde486c3c4baf21c66e55
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5be5fc275d6100d55fefde486c3c4baf21c66e55
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5c02f929c2170d8d6280f2a81039a93cf3c04ef4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c02f929c2170d8d6280f2a81039a93cf3c04ef4
index 184d7f7d1..184d7f7d1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5c02f929c2170d8d6280f2a81039a93cf3c04ef4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c02f929c2170d8d6280f2a81039a93cf3c04ef4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5c051001851011663d0b01e0935f4492747a41ff b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c051001851011663d0b01e0935f4492747a41ff
index 313101504..313101504 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5c051001851011663d0b01e0935f4492747a41ff
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c051001851011663d0b01e0935f4492747a41ff
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5c87d89327640985535ae8ce0f7ce6c4b7739854 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c87d89327640985535ae8ce0f7ce6c4b7739854
index 93d415244..93d415244 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5c87d89327640985535ae8ce0f7ce6c4b7739854
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c87d89327640985535ae8ce0f7ce6c4b7739854
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5c8c515a11e5748cd9d6a83f80c499b86976705e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c8c515a11e5748cd9d6a83f80c499b86976705e
index ba9fba166..ba9fba166 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5c8c515a11e5748cd9d6a83f80c499b86976705e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5c8c515a11e5748cd9d6a83f80c499b86976705e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5cdf64c7ce439c04f67ed00542121edbc578af43 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5cdf64c7ce439c04f67ed00542121edbc578af43
index f656dd702..f656dd702 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5cdf64c7ce439c04f67ed00542121edbc578af43
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5cdf64c7ce439c04f67ed00542121edbc578af43
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5ce35b6c68940e0194300e7c99141ce335512a04 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ce35b6c68940e0194300e7c99141ce335512a04
index 35461c060..35461c060 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5ce35b6c68940e0194300e7c99141ce335512a04
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ce35b6c68940e0194300e7c99141ce335512a04
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5d2bb1a40a4839c8daed7b1a330ba6493dc70134 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d2bb1a40a4839c8daed7b1a330ba6493dc70134
index d86bc2bd7..d86bc2bd7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5d2bb1a40a4839c8daed7b1a330ba6493dc70134
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d2bb1a40a4839c8daed7b1a330ba6493dc70134
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5d2fe96a7edfe840c4dee87cdc472f1db554596a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d2fe96a7edfe840c4dee87cdc472f1db554596a
index 3ef52d98b..3ef52d98b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5d2fe96a7edfe840c4dee87cdc472f1db554596a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d2fe96a7edfe840c4dee87cdc472f1db554596a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5d8dc78a5ba7b6f2ec856fca30b7847a093a8399 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d8dc78a5ba7b6f2ec856fca30b7847a093a8399
index 09ace36a1..09ace36a1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5d8dc78a5ba7b6f2ec856fca30b7847a093a8399
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d8dc78a5ba7b6f2ec856fca30b7847a093a8399
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5d972a84b01fbdcb99088d217e43b7d0bcdfa664 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d972a84b01fbdcb99088d217e43b7d0bcdfa664
index 776c44e16..776c44e16 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5d972a84b01fbdcb99088d217e43b7d0bcdfa664
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5d972a84b01fbdcb99088d217e43b7d0bcdfa664
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5dd514b9d5ff7c018194b7c3e8cf65e932c18eab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5dd514b9d5ff7c018194b7c3e8cf65e932c18eab
index 87e4f5aa1..87e4f5aa1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5dd514b9d5ff7c018194b7c3e8cf65e932c18eab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5dd514b9d5ff7c018194b7c3e8cf65e932c18eab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5ddd5cc0b7f15b6e9c64a33b1ec7999978f7e0bd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ddd5cc0b7f15b6e9c64a33b1ec7999978f7e0bd
index fbe843662..fbe843662 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5ddd5cc0b7f15b6e9c64a33b1ec7999978f7e0bd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ddd5cc0b7f15b6e9c64a33b1ec7999978f7e0bd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5e3143174e7dd6cb54ab1dd7d338e50a638ce20d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e3143174e7dd6cb54ab1dd7d338e50a638ce20d
index 8810f5915..8810f5915 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5e3143174e7dd6cb54ab1dd7d338e50a638ce20d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e3143174e7dd6cb54ab1dd7d338e50a638ce20d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5e43fe8bdb6cccaa1463363ef4886d2bbc9b4afc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e43fe8bdb6cccaa1463363ef4886d2bbc9b4afc
index 38caa2013..38caa2013 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5e43fe8bdb6cccaa1463363ef4886d2bbc9b4afc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e43fe8bdb6cccaa1463363ef4886d2bbc9b4afc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5e57252e63d501fae6e050fba5c92c5e579c26e6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e57252e63d501fae6e050fba5c92c5e579c26e6
index 4abea7fff..4abea7fff 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5e57252e63d501fae6e050fba5c92c5e579c26e6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e57252e63d501fae6e050fba5c92c5e579c26e6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5e71d6197591d4fb2cd42cd8fbdecc7afb24414a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e71d6197591d4fb2cd42cd8fbdecc7afb24414a
index eb450edeb..eb450edeb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5e71d6197591d4fb2cd42cd8fbdecc7afb24414a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5e71d6197591d4fb2cd42cd8fbdecc7afb24414a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5ebb3b6a3e029971bbe333f5edbd6bbbd7e6b704 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ebb3b6a3e029971bbe333f5edbd6bbbd7e6b704
index 6da0add36..6da0add36 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5ebb3b6a3e029971bbe333f5edbd6bbbd7e6b704
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ebb3b6a3e029971bbe333f5edbd6bbbd7e6b704
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5ec2ef4dc672c6862dc5d2de0f8ae7fe38ccc1cf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ec2ef4dc672c6862dc5d2de0f8ae7fe38ccc1cf
index f4dd36b86..f4dd36b86 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5ec2ef4dc672c6862dc5d2de0f8ae7fe38ccc1cf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ec2ef4dc672c6862dc5d2de0f8ae7fe38ccc1cf
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5edbf5ebb62dc0f515c639d5ec82ccba143a9df7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5edbf5ebb62dc0f515c639d5ec82ccba143a9df7
index eedd48a1e..eedd48a1e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5edbf5ebb62dc0f515c639d5ec82ccba143a9df7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5edbf5ebb62dc0f515c639d5ec82ccba143a9df7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5f1d7fcb6dff18ea67be5c3e249b445208d7338d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f1d7fcb6dff18ea67be5c3e249b445208d7338d
index 7a0537aa6..7a0537aa6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5f1d7fcb6dff18ea67be5c3e249b445208d7338d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f1d7fcb6dff18ea67be5c3e249b445208d7338d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5f5001b19a8654237e8c6f2a344769651ab1a8ba b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f5001b19a8654237e8c6f2a344769651ab1a8ba
index 92bd0a2b2..92bd0a2b2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5f5001b19a8654237e8c6f2a344769651ab1a8ba
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f5001b19a8654237e8c6f2a344769651ab1a8ba
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5f540c375ae8389d6cb556317c7ff25c3e155dca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f540c375ae8389d6cb556317c7ff25c3e155dca
index 13d901955..13d901955 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5f540c375ae8389d6cb556317c7ff25c3e155dca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f540c375ae8389d6cb556317c7ff25c3e155dca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5f7f0d759b6e16fc1bb8a108b8eea118af73a5cd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f7f0d759b6e16fc1bb8a108b8eea118af73a5cd
index b79fee9e0..b79fee9e0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5f7f0d759b6e16fc1bb8a108b8eea118af73a5cd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f7f0d759b6e16fc1bb8a108b8eea118af73a5cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5f995e56c6de9da6791cb74658fb0d9527d5bcd8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f995e56c6de9da6791cb74658fb0d9527d5bcd8
index 8b7d68edc..8b7d68edc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5f995e56c6de9da6791cb74658fb0d9527d5bcd8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5f995e56c6de9da6791cb74658fb0d9527d5bcd8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5fba74a544c881a8bece8b0f19a66cb82baf8487 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fba74a544c881a8bece8b0f19a66cb82baf8487
index fd768ac87..fd768ac87 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5fba74a544c881a8bece8b0f19a66cb82baf8487
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fba74a544c881a8bece8b0f19a66cb82baf8487
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5fccdc30f0306a85bccae12237e9a6ed59c56e3d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fccdc30f0306a85bccae12237e9a6ed59c56e3d
index 15e64682e..15e64682e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5fccdc30f0306a85bccae12237e9a6ed59c56e3d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fccdc30f0306a85bccae12237e9a6ed59c56e3d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5fd56048dc79fe38113f38feaf1e3fe3908e5de6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fd56048dc79fe38113f38feaf1e3fe3908e5de6
index 10b2a2b80..10b2a2b80 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5fd56048dc79fe38113f38feaf1e3fe3908e5de6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fd56048dc79fe38113f38feaf1e3fe3908e5de6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5fd99d865bfcdd0eda277e56d28053438e9d2364 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fd99d865bfcdd0eda277e56d28053438e9d2364
index d14ba6fdf..d14ba6fdf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5fd99d865bfcdd0eda277e56d28053438e9d2364
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5fd99d865bfcdd0eda277e56d28053438e9d2364
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/5ffe0ec78cc4c45084581822b58c68f303240baf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ffe0ec78cc4c45084581822b58c68f303240baf
index ce75d5b98..ce75d5b98 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/5ffe0ec78cc4c45084581822b58c68f303240baf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/5ffe0ec78cc4c45084581822b58c68f303240baf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/602934a18fd05fab989875289f2b0d341b46209f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/602934a18fd05fab989875289f2b0d341b46209f
index d306d874f..d306d874f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/602934a18fd05fab989875289f2b0d341b46209f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/602934a18fd05fab989875289f2b0d341b46209f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/604d2be7069eeac6987c88e02c3192726bf7d29a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/604d2be7069eeac6987c88e02c3192726bf7d29a
index 9e9411101..9e9411101 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/604d2be7069eeac6987c88e02c3192726bf7d29a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/604d2be7069eeac6987c88e02c3192726bf7d29a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/606365070ed66a4bff97c5b903077b69834dc30f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/606365070ed66a4bff97c5b903077b69834dc30f
index 9fcd55ebe..9fcd55ebe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/606365070ed66a4bff97c5b903077b69834dc30f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/606365070ed66a4bff97c5b903077b69834dc30f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/60af9fdf5a040ad4eb6a331027fc8a5205538a60 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/60af9fdf5a040ad4eb6a331027fc8a5205538a60
index be0303609..be0303609 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/60af9fdf5a040ad4eb6a331027fc8a5205538a60
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/60af9fdf5a040ad4eb6a331027fc8a5205538a60
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/60c4fcf422a35761a1cf63281b1259e570d9dd03 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/60c4fcf422a35761a1cf63281b1259e570d9dd03
index 61b22f1b3..61b22f1b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/60c4fcf422a35761a1cf63281b1259e570d9dd03
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/60c4fcf422a35761a1cf63281b1259e570d9dd03
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/60d58e7bbbc22d01f2f626c83ea29231cb7a1336 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/60d58e7bbbc22d01f2f626c83ea29231cb7a1336
index 19b988e26..19b988e26 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/60d58e7bbbc22d01f2f626c83ea29231cb7a1336
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/60d58e7bbbc22d01f2f626c83ea29231cb7a1336
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/611c92652a5857a323a62bb2fae9c4fc38f2b91e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/611c92652a5857a323a62bb2fae9c4fc38f2b91e
index 413482615..413482615 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/611c92652a5857a323a62bb2fae9c4fc38f2b91e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/611c92652a5857a323a62bb2fae9c4fc38f2b91e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/612ad5c34940b7d0e9751f237f4046aa955a455d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/612ad5c34940b7d0e9751f237f4046aa955a455d
index ff2886fbf..ff2886fbf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/612ad5c34940b7d0e9751f237f4046aa955a455d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/612ad5c34940b7d0e9751f237f4046aa955a455d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78
index 3db4340c1..3db4340c1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6154e15ab62b6138f112c347e620b65c5df578ce b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6154e15ab62b6138f112c347e620b65c5df578ce
index b35665211..b35665211 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6154e15ab62b6138f112c347e620b65c5df578ce
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6154e15ab62b6138f112c347e620b65c5df578ce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6167ecf044b04eada6fb7f52799c4b5476a8ac5c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6167ecf044b04eada6fb7f52799c4b5476a8ac5c
index 40a077f99..40a077f99 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6167ecf044b04eada6fb7f52799c4b5476a8ac5c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6167ecf044b04eada6fb7f52799c4b5476a8ac5c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6181e2d8da988d2dbf730c68dce478fda0897cb1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6181e2d8da988d2dbf730c68dce478fda0897cb1
index 7ba8c98c3..7ba8c98c3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6181e2d8da988d2dbf730c68dce478fda0897cb1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6181e2d8da988d2dbf730c68dce478fda0897cb1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6194b3ca664b38c607c838febc47ba7f22c9abc8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6194b3ca664b38c607c838febc47ba7f22c9abc8
index e19662afe..e19662afe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6194b3ca664b38c607c838febc47ba7f22c9abc8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6194b3ca664b38c607c838febc47ba7f22c9abc8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/61a1bde91cf400dafc67f8a0af16805ce20ea622 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61a1bde91cf400dafc67f8a0af16805ce20ea622
index 698ee46f8..698ee46f8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/61a1bde91cf400dafc67f8a0af16805ce20ea622
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61a1bde91cf400dafc67f8a0af16805ce20ea622
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/61e3a551b0661fd9b3c6ab9f745ca95ff51e1d8a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61e3a551b0661fd9b3c6ab9f745ca95ff51e1d8a
index 363054210..363054210 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/61e3a551b0661fd9b3c6ab9f745ca95ff51e1d8a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61e3a551b0661fd9b3c6ab9f745ca95ff51e1d8a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/61e6b4ca58308cd21915f50b6ce809c6bcc6e598 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61e6b4ca58308cd21915f50b6ce809c6bcc6e598
index 90c8e41c4..90c8e41c4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/61e6b4ca58308cd21915f50b6ce809c6bcc6e598
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61e6b4ca58308cd21915f50b6ce809c6bcc6e598
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/61fd1fa4ed961c402b40fe5e8862a0c85e86287c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61fd1fa4ed961c402b40fe5e8862a0c85e86287c
index d28cdebf8..d28cdebf8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/61fd1fa4ed961c402b40fe5e8862a0c85e86287c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/61fd1fa4ed961c402b40fe5e8862a0c85e86287c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6206fbd414b4b7356a4b06921940ddf5f9b52d49 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6206fbd414b4b7356a4b06921940ddf5f9b52d49
index ad70fc1c9..ad70fc1c9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6206fbd414b4b7356a4b06921940ddf5f9b52d49
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6206fbd414b4b7356a4b06921940ddf5f9b52d49
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6228429309780d455536d4a86dd1fbb10b63e78f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6228429309780d455536d4a86dd1fbb10b63e78f
index c6b5fb5ce..c6b5fb5ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6228429309780d455536d4a86dd1fbb10b63e78f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6228429309780d455536d4a86dd1fbb10b63e78f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/62322b64f09c6b48ee1c716a605a55af904ce4b3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62322b64f09c6b48ee1c716a605a55af904ce4b3
index b72469b98..b72469b98 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/62322b64f09c6b48ee1c716a605a55af904ce4b3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62322b64f09c6b48ee1c716a605a55af904ce4b3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/62553ba545ecc53f7cbf03fdda42f167fe866bd4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62553ba545ecc53f7cbf03fdda42f167fe866bd4
index fa700f50d..fa700f50d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/62553ba545ecc53f7cbf03fdda42f167fe866bd4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62553ba545ecc53f7cbf03fdda42f167fe866bd4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/62589db6cdaeb4ba79f6bf262b384802d7259ceb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62589db6cdaeb4ba79f6bf262b384802d7259ceb
index e832e2aaa..e832e2aaa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/62589db6cdaeb4ba79f6bf262b384802d7259ceb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62589db6cdaeb4ba79f6bf262b384802d7259ceb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/62b3f1e5f7a4312e312cd74e42c4598842b4ddf6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62b3f1e5f7a4312e312cd74e42c4598842b4ddf6
index b39eb0e94..b39eb0e94 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/62b3f1e5f7a4312e312cd74e42c4598842b4ddf6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62b3f1e5f7a4312e312cd74e42c4598842b4ddf6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/62ec462f4f6961630a05fc04ab843700487f20ca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62ec462f4f6961630a05fc04ab843700487f20ca
index 892ad16f7..892ad16f7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/62ec462f4f6961630a05fc04ab843700487f20ca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62ec462f4f6961630a05fc04ab843700487f20ca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/62feedb3e5babfe2c9ce527b97ee420a5af1a898 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62feedb3e5babfe2c9ce527b97ee420a5af1a898
index a212e9cb8..a212e9cb8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/62feedb3e5babfe2c9ce527b97ee420a5af1a898
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/62feedb3e5babfe2c9ce527b97ee420a5af1a898
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/633654c1932be977b9e6daca707032f05b55dbd0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/633654c1932be977b9e6daca707032f05b55dbd0
index 55311ec12..55311ec12 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/633654c1932be977b9e6daca707032f05b55dbd0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/633654c1932be977b9e6daca707032f05b55dbd0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6352acb37e709db0d9f278b45b19baa3a179045b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6352acb37e709db0d9f278b45b19baa3a179045b
index 012553382..012553382 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6352acb37e709db0d9f278b45b19baa3a179045b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6352acb37e709db0d9f278b45b19baa3a179045b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6391e7b0f43fc056e2b5466fb277ad5abde1fe7a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6391e7b0f43fc056e2b5466fb277ad5abde1fe7a
index 6c96a3fa6..6c96a3fa6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6391e7b0f43fc056e2b5466fb277ad5abde1fe7a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6391e7b0f43fc056e2b5466fb277ad5abde1fe7a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/63f931d33d98e2b2c7bba487e7222bcac700deef b/src/web/server/h2o/libh2o/fuzz/http1-corpus/63f931d33d98e2b2c7bba487e7222bcac700deef
index 8f132fabb..8f132fabb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/63f931d33d98e2b2c7bba487e7222bcac700deef
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/63f931d33d98e2b2c7bba487e7222bcac700deef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/641f6b6c0b1c182077381a943f40845ea210f4e0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/641f6b6c0b1c182077381a943f40845ea210f4e0
index 639152414..639152414 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/641f6b6c0b1c182077381a943f40845ea210f4e0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/641f6b6c0b1c182077381a943f40845ea210f4e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/643d688c03ec20e8cdc614fc88e2c7659c6a5e57 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/643d688c03ec20e8cdc614fc88e2c7659c6a5e57
index 258b7b064..258b7b064 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/643d688c03ec20e8cdc614fc88e2c7659c6a5e57
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/643d688c03ec20e8cdc614fc88e2c7659c6a5e57
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/64523cb0ee5c37988e6b8498e762366a5b8d5dca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/64523cb0ee5c37988e6b8498e762366a5b8d5dca
index a22133b2f..a22133b2f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/64523cb0ee5c37988e6b8498e762366a5b8d5dca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/64523cb0ee5c37988e6b8498e762366a5b8d5dca
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/649ef00dd18a5a744bbfeb07bcbe1f8b15dbb802 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/649ef00dd18a5a744bbfeb07bcbe1f8b15dbb802
index 669319118..669319118 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/649ef00dd18a5a744bbfeb07bcbe1f8b15dbb802
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/649ef00dd18a5a744bbfeb07bcbe1f8b15dbb802
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/64bd0d73acdfea7a6dd2df4b85324dd3d36cb937 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/64bd0d73acdfea7a6dd2df4b85324dd3d36cb937
index 9c88943f3..9c88943f3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/64bd0d73acdfea7a6dd2df4b85324dd3d36cb937
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/64bd0d73acdfea7a6dd2df4b85324dd3d36cb937
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/64be6e9f4db14f8d9af691fa3673020c5a391fa2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/64be6e9f4db14f8d9af691fa3673020c5a391fa2
index e573f2458..e573f2458 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/64be6e9f4db14f8d9af691fa3673020c5a391fa2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/64be6e9f4db14f8d9af691fa3673020c5a391fa2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6505cfdb0280f3106a290c589e691a9c70c967ee b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6505cfdb0280f3106a290c589e691a9c70c967ee
index 341a9e394..341a9e394 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6505cfdb0280f3106a290c589e691a9c70c967ee
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6505cfdb0280f3106a290c589e691a9c70c967ee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/652f59613de0f5f1bcfb3ae43354b36314931aa5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/652f59613de0f5f1bcfb3ae43354b36314931aa5
index 44e4f1e66..44e4f1e66 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/652f59613de0f5f1bcfb3ae43354b36314931aa5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/652f59613de0f5f1bcfb3ae43354b36314931aa5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/65327db142237a381f0fa2098a61a989f5ab4857 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/65327db142237a381f0fa2098a61a989f5ab4857
index 484e5a262..484e5a262 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/65327db142237a381f0fa2098a61a989f5ab4857
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/65327db142237a381f0fa2098a61a989f5ab4857
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/657b9249694afbc2cb51846285bd543fac36c654 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/657b9249694afbc2cb51846285bd543fac36c654
index b3f3e3627..b3f3e3627 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/657b9249694afbc2cb51846285bd543fac36c654
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/657b9249694afbc2cb51846285bd543fac36c654
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/65b4cf2c25f361f835bf5377c2df3ccbba73af68 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/65b4cf2c25f361f835bf5377c2df3ccbba73af68
index fa72f009e..fa72f009e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/65b4cf2c25f361f835bf5377c2df3ccbba73af68
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/65b4cf2c25f361f835bf5377c2df3ccbba73af68
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/65e01d455f4196cc5807afe98dc1bd756cf3fb14 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/65e01d455f4196cc5807afe98dc1bd756cf3fb14
index 3d8f392ec..3d8f392ec 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/65e01d455f4196cc5807afe98dc1bd756cf3fb14
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/65e01d455f4196cc5807afe98dc1bd756cf3fb14
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6622b124588a369ca47a2ea5197c6602dd8bcef6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6622b124588a369ca47a2ea5197c6602dd8bcef6
index 82385a175..82385a175 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6622b124588a369ca47a2ea5197c6602dd8bcef6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6622b124588a369ca47a2ea5197c6602dd8bcef6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/66903e3aff90cd052cfa5500964880df6d2108ac b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66903e3aff90cd052cfa5500964880df6d2108ac
index 3bd8e420b..3bd8e420b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/66903e3aff90cd052cfa5500964880df6d2108ac
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66903e3aff90cd052cfa5500964880df6d2108ac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6693582d427d5ad44a8efd2c626e8e0cceaa75ab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6693582d427d5ad44a8efd2c626e8e0cceaa75ab
index e0ef7d2c5..e0ef7d2c5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6693582d427d5ad44a8efd2c626e8e0cceaa75ab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6693582d427d5ad44a8efd2c626e8e0cceaa75ab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/669804cb0cf168bb56b2261939184ad6b9c8475e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/669804cb0cf168bb56b2261939184ad6b9c8475e
index 6b42f8c96..6b42f8c96 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/669804cb0cf168bb56b2261939184ad6b9c8475e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/669804cb0cf168bb56b2261939184ad6b9c8475e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1
index 15973d5a1..15973d5a1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/66bbff0489dc6e2459da3d8a4a0715e7946baec3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66bbff0489dc6e2459da3d8a4a0715e7946baec3
index 28ee15171..28ee15171 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/66bbff0489dc6e2459da3d8a4a0715e7946baec3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66bbff0489dc6e2459da3d8a4a0715e7946baec3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/66d01c9c0234e1690c2af56c8a69fa3c17a146f4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66d01c9c0234e1690c2af56c8a69fa3c17a146f4
index b252fdc0e..b252fdc0e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/66d01c9c0234e1690c2af56c8a69fa3c17a146f4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66d01c9c0234e1690c2af56c8a69fa3c17a146f4
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/66e04521653fdd6df28eddce149f4bebc7a1a0cc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66e04521653fdd6df28eddce149f4bebc7a1a0cc
index 4742641b2..4742641b2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/66e04521653fdd6df28eddce149f4bebc7a1a0cc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66e04521653fdd6df28eddce149f4bebc7a1a0cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/66fa8d19d0980380e8eb3f054305ceb8db14ae2f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66fa8d19d0980380e8eb3f054305ceb8db14ae2f
index 798cf5b9e..798cf5b9e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/66fa8d19d0980380e8eb3f054305ceb8db14ae2f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/66fa8d19d0980380e8eb3f054305ceb8db14ae2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/672be7bcbd190841e8e27ed6ce406f9904e3041b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/672be7bcbd190841e8e27ed6ce406f9904e3041b
index b1f10957c..b1f10957c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/672be7bcbd190841e8e27ed6ce406f9904e3041b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/672be7bcbd190841e8e27ed6ce406f9904e3041b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6737ea6647fa6e02bc1812c1fe9619e2935caff9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6737ea6647fa6e02bc1812c1fe9619e2935caff9
index 0855338e3..0855338e3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6737ea6647fa6e02bc1812c1fe9619e2935caff9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6737ea6647fa6e02bc1812c1fe9619e2935caff9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/67630bc24469ac76914ca2b75dd0e9a93daaaff6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/67630bc24469ac76914ca2b75dd0e9a93daaaff6
index 91aad7746..91aad7746 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/67630bc24469ac76914ca2b75dd0e9a93daaaff6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/67630bc24469ac76914ca2b75dd0e9a93daaaff6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/67ab141f85d6e894008fed96e34e232a584a32ef b/src/web/server/h2o/libh2o/fuzz/http1-corpus/67ab141f85d6e894008fed96e34e232a584a32ef
index 4d9a0e29d..4d9a0e29d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/67ab141f85d6e894008fed96e34e232a584a32ef
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/67ab141f85d6e894008fed96e34e232a584a32ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/680351f8efc468ac7a9b9ac3a194682b69f5e165 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/680351f8efc468ac7a9b9ac3a194682b69f5e165
index 900b25f0d..900b25f0d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/680351f8efc468ac7a9b9ac3a194682b69f5e165
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/680351f8efc468ac7a9b9ac3a194682b69f5e165
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/680e033a23d7aa54b7351e01f9f338675d5b623a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/680e033a23d7aa54b7351e01f9f338675d5b623a
index 68b8a51ca..68b8a51ca 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/680e033a23d7aa54b7351e01f9f338675d5b623a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/680e033a23d7aa54b7351e01f9f338675d5b623a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/681d482f465b1e58f2cdd3ea54905b1050cea080 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/681d482f465b1e58f2cdd3ea54905b1050cea080
index 6194070cc..6194070cc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/681d482f465b1e58f2cdd3ea54905b1050cea080
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/681d482f465b1e58f2cdd3ea54905b1050cea080
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/681f78b242a6c3d5be4a1ec8d21989b966761edb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/681f78b242a6c3d5be4a1ec8d21989b966761edb
index 080e1720e..080e1720e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/681f78b242a6c3d5be4a1ec8d21989b966761edb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/681f78b242a6c3d5be4a1ec8d21989b966761edb
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/68280a95f44ea4be50da544a660f531f202c7e80 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/68280a95f44ea4be50da544a660f531f202c7e80
index 07571233c..07571233c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/68280a95f44ea4be50da544a660f531f202c7e80
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/68280a95f44ea4be50da544a660f531f202c7e80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/682ec5d1e03bc9d202ef0d9f2be7684978e93731 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/682ec5d1e03bc9d202ef0d9f2be7684978e93731
index 1c7beaf7e..1c7beaf7e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/682ec5d1e03bc9d202ef0d9f2be7684978e93731
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/682ec5d1e03bc9d202ef0d9f2be7684978e93731
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6895eafbf1147832c66e428eb0693e7cb86cd24b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6895eafbf1147832c66e428eb0693e7cb86cd24b
index 4500c8c33..4500c8c33 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6895eafbf1147832c66e428eb0693e7cb86cd24b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6895eafbf1147832c66e428eb0693e7cb86cd24b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/68a2cbb3bdf54e099149314e83ea7e10e781afbd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/68a2cbb3bdf54e099149314e83ea7e10e781afbd
index 2c6c92e0c..2c6c92e0c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/68a2cbb3bdf54e099149314e83ea7e10e781afbd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/68a2cbb3bdf54e099149314e83ea7e10e781afbd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/68f1f1f1bc1ee101a3241fe79d30d98ad2e9ad89 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/68f1f1f1bc1ee101a3241fe79d30d98ad2e9ad89
index d82801fb0..d82801fb0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/68f1f1f1bc1ee101a3241fe79d30d98ad2e9ad89
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/68f1f1f1bc1ee101a3241fe79d30d98ad2e9ad89
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/694081788ad96ed0c9bcc454703d35b80e944011 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/694081788ad96ed0c9bcc454703d35b80e944011
index d82357d3c..d82357d3c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/694081788ad96ed0c9bcc454703d35b80e944011
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/694081788ad96ed0c9bcc454703d35b80e944011
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6959403ad997609a277faaa9cf51b2c12144506b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6959403ad997609a277faaa9cf51b2c12144506b
index 511d705b2..511d705b2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6959403ad997609a277faaa9cf51b2c12144506b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6959403ad997609a277faaa9cf51b2c12144506b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6976b5da56838f44afc4ac9e4388a164df037b03 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6976b5da56838f44afc4ac9e4388a164df037b03
index 0e213ecea..0e213ecea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6976b5da56838f44afc4ac9e4388a164df037b03
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6976b5da56838f44afc4ac9e4388a164df037b03
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/69974deafcff2552be9608ed304570ebc1bac71d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/69974deafcff2552be9608ed304570ebc1bac71d
index 0d52ad086..0d52ad086 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/69974deafcff2552be9608ed304570ebc1bac71d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/69974deafcff2552be9608ed304570ebc1bac71d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/69d51c215fe953a9b1af7c2954ec1c2b370642df b/src/web/server/h2o/libh2o/fuzz/http1-corpus/69d51c215fe953a9b1af7c2954ec1c2b370642df
index 3ff0b4842..3ff0b4842 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/69d51c215fe953a9b1af7c2954ec1c2b370642df
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/69d51c215fe953a9b1af7c2954ec1c2b370642df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6a1551aef35da1f7993a48931b3facb1d2ee12d1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a1551aef35da1f7993a48931b3facb1d2ee12d1
index 1ab263057..1ab263057 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6a1551aef35da1f7993a48931b3facb1d2ee12d1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a1551aef35da1f7993a48931b3facb1d2ee12d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6a195fa643cb1f3f1f714a212964b5121d88594d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a195fa643cb1f3f1f714a212964b5121d88594d
index cb3e9aa34..cb3e9aa34 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6a195fa643cb1f3f1f714a212964b5121d88594d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a195fa643cb1f3f1f714a212964b5121d88594d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6a3692e5925bd17fad9f61c22a00ab8c49c9419b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a3692e5925bd17fad9f61c22a00ab8c49c9419b
index edd17cf3b..edd17cf3b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6a3692e5925bd17fad9f61c22a00ab8c49c9419b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a3692e5925bd17fad9f61c22a00ab8c49c9419b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6a48022f6cb9d9fa9a2b4122c63ccafb40d00c33 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a48022f6cb9d9fa9a2b4122c63ccafb40d00c33
index b46fba23c..b46fba23c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6a48022f6cb9d9fa9a2b4122c63ccafb40d00c33
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a48022f6cb9d9fa9a2b4122c63ccafb40d00c33
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6a7e890c4dc6ce1e687763a1de55c54c5ee8253c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a7e890c4dc6ce1e687763a1de55c54c5ee8253c
index effc2c7b5..effc2c7b5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6a7e890c4dc6ce1e687763a1de55c54c5ee8253c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6a7e890c4dc6ce1e687763a1de55c54c5ee8253c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6aa4e72f60c7aefcbf83d64d8bd05048bf857d21 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6aa4e72f60c7aefcbf83d64d8bd05048bf857d21
index e8e99bda9..e8e99bda9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6aa4e72f60c7aefcbf83d64d8bd05048bf857d21
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6aa4e72f60c7aefcbf83d64d8bd05048bf857d21
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6aac9d8903d592458c49dbf08445fdf46b6aa442 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6aac9d8903d592458c49dbf08445fdf46b6aa442
index 8dc67ddf8..8dc67ddf8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6aac9d8903d592458c49dbf08445fdf46b6aa442
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6aac9d8903d592458c49dbf08445fdf46b6aa442
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6ad0c5b44bc22ca36588fecf3400f49ad69876e8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6ad0c5b44bc22ca36588fecf3400f49ad69876e8
index 643469fe0..643469fe0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6ad0c5b44bc22ca36588fecf3400f49ad69876e8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6ad0c5b44bc22ca36588fecf3400f49ad69876e8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6ae317f55f036447bbd763e0f4f386002f6afe8c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6ae317f55f036447bbd763e0f4f386002f6afe8c
index 20275f5b0..20275f5b0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6ae317f55f036447bbd763e0f4f386002f6afe8c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6ae317f55f036447bbd763e0f4f386002f6afe8c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6afe2b80403ec11550c279a0801357cd4ba7db30 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6afe2b80403ec11550c279a0801357cd4ba7db30
index 42f5cda37..42f5cda37 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6afe2b80403ec11550c279a0801357cd4ba7db30
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6afe2b80403ec11550c279a0801357cd4ba7db30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6b0947e18727b8d5cc54277ef24360183f700e7e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b0947e18727b8d5cc54277ef24360183f700e7e
index 5249b922b..5249b922b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6b0947e18727b8d5cc54277ef24360183f700e7e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b0947e18727b8d5cc54277ef24360183f700e7e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6b1183837f2516c9fb559e95d3acb30b1f2dbe2b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b1183837f2516c9fb559e95d3acb30b1f2dbe2b
index ad425016e..ad425016e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6b1183837f2516c9fb559e95d3acb30b1f2dbe2b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b1183837f2516c9fb559e95d3acb30b1f2dbe2b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6b2be7eab06293b34bde9d6c98418fb7feb2f500 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b2be7eab06293b34bde9d6c98418fb7feb2f500
index a6176e9dc..a6176e9dc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6b2be7eab06293b34bde9d6c98418fb7feb2f500
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b2be7eab06293b34bde9d6c98418fb7feb2f500
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6b589b1a1e69d7fa960b7dbb9170a82f058c0346 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b589b1a1e69d7fa960b7dbb9170a82f058c0346
index 296818ad1..296818ad1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6b589b1a1e69d7fa960b7dbb9170a82f058c0346
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b589b1a1e69d7fa960b7dbb9170a82f058c0346
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6b782b26592481d6132259bef5ce6e65fac72ef6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b782b26592481d6132259bef5ce6e65fac72ef6
index be5e484d6..be5e484d6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6b782b26592481d6132259bef5ce6e65fac72ef6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6b782b26592481d6132259bef5ce6e65fac72ef6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6bbe61c3443b66eb9ba1f72657d523712d20ad42 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6bbe61c3443b66eb9ba1f72657d523712d20ad42
index e42b48876..e42b48876 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6bbe61c3443b66eb9ba1f72657d523712d20ad42
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6bbe61c3443b66eb9ba1f72657d523712d20ad42
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6bcc33898f3f3dc750245e4ec17083cca3e11fcf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6bcc33898f3f3dc750245e4ec17083cca3e11fcf
index 6d26cadd7..6d26cadd7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6bcc33898f3f3dc750245e4ec17083cca3e11fcf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6bcc33898f3f3dc750245e4ec17083cca3e11fcf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6bfc9cdce297fc574c043936d0e0d876e7d42f47 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6bfc9cdce297fc574c043936d0e0d876e7d42f47
index 557924f44..557924f44 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6bfc9cdce297fc574c043936d0e0d876e7d42f47
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6bfc9cdce297fc574c043936d0e0d876e7d42f47
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c169a081333487e8bdb0dd0dd48328a0ebc94dd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c169a081333487e8bdb0dd0dd48328a0ebc94dd
index 1060888eb..1060888eb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c169a081333487e8bdb0dd0dd48328a0ebc94dd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c169a081333487e8bdb0dd0dd48328a0ebc94dd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c232efa422726d4eaf873bc0855d709a1d92bf5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c232efa422726d4eaf873bc0855d709a1d92bf5
index 6cdb46aa3..6cdb46aa3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c232efa422726d4eaf873bc0855d709a1d92bf5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c232efa422726d4eaf873bc0855d709a1d92bf5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c235da8af8bd800a28abf34f1ae5625e0e023f3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c235da8af8bd800a28abf34f1ae5625e0e023f3
index b76a9507f..b76a9507f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c235da8af8bd800a28abf34f1ae5625e0e023f3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c235da8af8bd800a28abf34f1ae5625e0e023f3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c4c704ff8dfee37aec71a888de6e334c22691ba b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c4c704ff8dfee37aec71a888de6e334c22691ba
index e0ada4917..e0ada4917 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c4c704ff8dfee37aec71a888de6e334c22691ba
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c4c704ff8dfee37aec71a888de6e334c22691ba
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c54ed8155b83e30e4017c994d9afcbe479efb74 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c54ed8155b83e30e4017c994d9afcbe479efb74
index 569d8ce7f..569d8ce7f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c54ed8155b83e30e4017c994d9afcbe479efb74
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c54ed8155b83e30e4017c994d9afcbe479efb74
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c5d27b65ad35ec1a3da21f41cd970678fe732b8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c5d27b65ad35ec1a3da21f41cd970678fe732b8
index 88f164475..88f164475 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c5d27b65ad35ec1a3da21f41cd970678fe732b8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c5d27b65ad35ec1a3da21f41cd970678fe732b8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c8a9cd0dc938746d36ef0d13343f61636a44c0c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c8a9cd0dc938746d36ef0d13343f61636a44c0c
index 83bfc8040..83bfc8040 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c8a9cd0dc938746d36ef0d13343f61636a44c0c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c8a9cd0dc938746d36ef0d13343f61636a44c0c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c8ff9156d9f82daba0c0abbf3ba59342f56becc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c8ff9156d9f82daba0c0abbf3ba59342f56becc
index 24b976b87..24b976b87 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c8ff9156d9f82daba0c0abbf3ba59342f56becc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c8ff9156d9f82daba0c0abbf3ba59342f56becc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6c94b794c985a65293b1b006fd739c2d51df4f03 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c94b794c985a65293b1b006fd739c2d51df4f03
index cf04c216a..cf04c216a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6c94b794c985a65293b1b006fd739c2d51df4f03
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6c94b794c985a65293b1b006fd739c2d51df4f03
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6cc3fedbb3dbed8b7540fdf2d646ec785c2795bb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6cc3fedbb3dbed8b7540fdf2d646ec785c2795bb
index 261ec34d8..261ec34d8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6cc3fedbb3dbed8b7540fdf2d646ec785c2795bb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6cc3fedbb3dbed8b7540fdf2d646ec785c2795bb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6cd2e699f15133849153801fa94ca3db687d4124 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6cd2e699f15133849153801fa94ca3db687d4124
index d48e8d5e6..d48e8d5e6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6cd2e699f15133849153801fa94ca3db687d4124
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6cd2e699f15133849153801fa94ca3db687d4124
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6d0a53009064bdd4a401b2dd1d4ca6bae51d935a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d0a53009064bdd4a401b2dd1d4ca6bae51d935a
index b5b9e23c7..b5b9e23c7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6d0a53009064bdd4a401b2dd1d4ca6bae51d935a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d0a53009064bdd4a401b2dd1d4ca6bae51d935a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6d1d32a2257281c46d53f1d41fea8cbcbc1893d8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d1d32a2257281c46d53f1d41fea8cbcbc1893d8
index f007545fb..f007545fb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6d1d32a2257281c46d53f1d41fea8cbcbc1893d8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d1d32a2257281c46d53f1d41fea8cbcbc1893d8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6d25b005763fb4ff13bde859ec3723e113f0b2fb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d25b005763fb4ff13bde859ec3723e113f0b2fb
index 65177e394..65177e394 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6d25b005763fb4ff13bde859ec3723e113f0b2fb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d25b005763fb4ff13bde859ec3723e113f0b2fb
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6d77b580102dbd279c9cbd5edea5ee70941d73d2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d77b580102dbd279c9cbd5edea5ee70941d73d2
index 04ad53c2e..04ad53c2e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6d77b580102dbd279c9cbd5edea5ee70941d73d2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d77b580102dbd279c9cbd5edea5ee70941d73d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6d90d715113b99f887da52c8a2c18978595e2c6b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d90d715113b99f887da52c8a2c18978595e2c6b
index 936225263..936225263 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6d90d715113b99f887da52c8a2c18978595e2c6b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6d90d715113b99f887da52c8a2c18978595e2c6b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6dab0da0a6622d66be12c6af96bf3bced3bc61a0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6dab0da0a6622d66be12c6af96bf3bced3bc61a0
index 8afcec9f0..8afcec9f0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6dab0da0a6622d66be12c6af96bf3bced3bc61a0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6dab0da0a6622d66be12c6af96bf3bced3bc61a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6dacad8729b385b03749d7755be4b3de3ef8d11b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6dacad8729b385b03749d7755be4b3de3ef8d11b
index 05e19b866..05e19b866 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6dacad8729b385b03749d7755be4b3de3ef8d11b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6dacad8729b385b03749d7755be4b3de3ef8d11b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6de232bd2b5f0ee59ab86faf2999f7a83ddd2c97 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6de232bd2b5f0ee59ab86faf2999f7a83ddd2c97
index c1c754a2e..c1c754a2e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6de232bd2b5f0ee59ab86faf2999f7a83ddd2c97
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6de232bd2b5f0ee59ab86faf2999f7a83ddd2c97
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6dfd717e030ddea0198ef99b82415236e0380de4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6dfd717e030ddea0198ef99b82415236e0380de4
index 937296fd9..937296fd9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6dfd717e030ddea0198ef99b82415236e0380de4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6dfd717e030ddea0198ef99b82415236e0380de4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6e3399a379ec0e4b380c7767a689b70d506d8148 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6e3399a379ec0e4b380c7767a689b70d506d8148
index 1c87562c2..1c87562c2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6e3399a379ec0e4b380c7767a689b70d506d8148
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6e3399a379ec0e4b380c7767a689b70d506d8148
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6e4e9fc8812f406d3927fda08346aa0486e7730d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6e4e9fc8812f406d3927fda08346aa0486e7730d
index 7b41b6ccb..7b41b6ccb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6e4e9fc8812f406d3927fda08346aa0486e7730d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6e4e9fc8812f406d3927fda08346aa0486e7730d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6e76526bed78fa1e846d55a237ce58cb5df42659 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6e76526bed78fa1e846d55a237ce58cb5df42659
index 15b7a37bf..15b7a37bf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6e76526bed78fa1e846d55a237ce58cb5df42659
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6e76526bed78fa1e846d55a237ce58cb5df42659
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6f3ee5a6b94bd93afe5fd8915b5b2cb74f97d088 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f3ee5a6b94bd93afe5fd8915b5b2cb74f97d088
index bc98e1b83..bc98e1b83 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6f3ee5a6b94bd93afe5fd8915b5b2cb74f97d088
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f3ee5a6b94bd93afe5fd8915b5b2cb74f97d088
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6f497d86a803c31b51e9b6a8967a740f420a0e3c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f497d86a803c31b51e9b6a8967a740f420a0e3c
index 43f151419..43f151419 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6f497d86a803c31b51e9b6a8967a740f420a0e3c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f497d86a803c31b51e9b6a8967a740f420a0e3c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6f56196eddc8653a2cc642a2f771471adc4098b0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f56196eddc8653a2cc642a2f771471adc4098b0
index ab697abef..ab697abef 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6f56196eddc8653a2cc642a2f771471adc4098b0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f56196eddc8653a2cc642a2f771471adc4098b0
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6f6687a96f4a25dfbd9cc6805d9736843a9d5ff3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f6687a96f4a25dfbd9cc6805d9736843a9d5ff3
index c6e695e57..c6e695e57 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6f6687a96f4a25dfbd9cc6805d9736843a9d5ff3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f6687a96f4a25dfbd9cc6805d9736843a9d5ff3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6f8a95c80769ce4ffb667e18f28cbf916f6bc401 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f8a95c80769ce4ffb667e18f28cbf916f6bc401
index 2e5daef65..2e5daef65 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6f8a95c80769ce4ffb667e18f28cbf916f6bc401
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6f8a95c80769ce4ffb667e18f28cbf916f6bc401
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6fd56985b8f39ffaad484567e4e06b1d1a1d2288 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6fd56985b8f39ffaad484567e4e06b1d1a1d2288
index a6fea7c2c..a6fea7c2c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6fd56985b8f39ffaad484567e4e06b1d1a1d2288
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6fd56985b8f39ffaad484567e4e06b1d1a1d2288
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/6fec198a82108ac037b5921ed57dfba8f932d6f4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6fec198a82108ac037b5921ed57dfba8f932d6f4
index dcfbdc844..dcfbdc844 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/6fec198a82108ac037b5921ed57dfba8f932d6f4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/6fec198a82108ac037b5921ed57dfba8f932d6f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/702541804b4000f1b14101ab586a5066a5133c4a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/702541804b4000f1b14101ab586a5066a5133c4a
index 49d05f9d8..49d05f9d8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/702541804b4000f1b14101ab586a5066a5133c4a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/702541804b4000f1b14101ab586a5066a5133c4a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/704c9dd27a015bf118a0b088a5a19038bd9a011d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/704c9dd27a015bf118a0b088a5a19038bd9a011d
index f9dd5e22f..f9dd5e22f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/704c9dd27a015bf118a0b088a5a19038bd9a011d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/704c9dd27a015bf118a0b088a5a19038bd9a011d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/707dd5e401fd8cbd8c3a910ff4131931ddb3c1f5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/707dd5e401fd8cbd8c3a910ff4131931ddb3c1f5
index 018478879..018478879 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/707dd5e401fd8cbd8c3a910ff4131931ddb3c1f5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/707dd5e401fd8cbd8c3a910ff4131931ddb3c1f5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/708e844a639c6ac979a764df67d41d9c9dea4ab4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/708e844a639c6ac979a764df67d41d9c9dea4ab4
index 48730ec9a..48730ec9a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/708e844a639c6ac979a764df67d41d9c9dea4ab4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/708e844a639c6ac979a764df67d41d9c9dea4ab4
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70aad3ab1c133b81e51f943e659b6cf04f86b7ff b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70aad3ab1c133b81e51f943e659b6cf04f86b7ff
index 900353fff..900353fff 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70aad3ab1c133b81e51f943e659b6cf04f86b7ff
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70aad3ab1c133b81e51f943e659b6cf04f86b7ff
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70b53034bad5e73f2dbd77f15499f672190cd303 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70b53034bad5e73f2dbd77f15499f672190cd303
index c9e675f29..c9e675f29 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70b53034bad5e73f2dbd77f15499f672190cd303
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70b53034bad5e73f2dbd77f15499f672190cd303
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70b70beae102fbedfe44a68e2831c9dc5893dac2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70b70beae102fbedfe44a68e2831c9dc5893dac2
index 8f8deda4a..8f8deda4a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70b70beae102fbedfe44a68e2831c9dc5893dac2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70b70beae102fbedfe44a68e2831c9dc5893dac2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70c3f0c10380c0293afe75a635239bfbfb27c4c0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70c3f0c10380c0293afe75a635239bfbfb27c4c0
index d770bdd87..d770bdd87 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70c3f0c10380c0293afe75a635239bfbfb27c4c0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70c3f0c10380c0293afe75a635239bfbfb27c4c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70c41cc8e6b25d9dcb0ac74bc0bc3022b153465d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70c41cc8e6b25d9dcb0ac74bc0bc3022b153465d
index 588d2a43f..588d2a43f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70c41cc8e6b25d9dcb0ac74bc0bc3022b153465d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70c41cc8e6b25d9dcb0ac74bc0bc3022b153465d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70da7c83bf358036f8fedb9a17763022973a0158 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70da7c83bf358036f8fedb9a17763022973a0158
index 313aa2d2a..313aa2d2a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70da7c83bf358036f8fedb9a17763022973a0158
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70da7c83bf358036f8fedb9a17763022973a0158
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70dabc74af906179eba2115b35059f9940a38319 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70dabc74af906179eba2115b35059f9940a38319
index 5f4a97bc8..5f4a97bc8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70dabc74af906179eba2115b35059f9940a38319
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70dabc74af906179eba2115b35059f9940a38319
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70e3d0ea6a58e34d150311b666267fd000b790e8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70e3d0ea6a58e34d150311b666267fd000b790e8
index 277489606..277489606 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70e3d0ea6a58e34d150311b666267fd000b790e8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70e3d0ea6a58e34d150311b666267fd000b790e8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70ec32ba94c8d930ffcb484af07e9158c17e0b3d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70ec32ba94c8d930ffcb484af07e9158c17e0b3d
index de14bc3b5..de14bc3b5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70ec32ba94c8d930ffcb484af07e9158c17e0b3d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70ec32ba94c8d930ffcb484af07e9158c17e0b3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/70f3e3b55db2dc6fa6c732cabc2894034e878437 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70f3e3b55db2dc6fa6c732cabc2894034e878437
index 56179a967..56179a967 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/70f3e3b55db2dc6fa6c732cabc2894034e878437
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/70f3e3b55db2dc6fa6c732cabc2894034e878437
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/710f1179b60295e368164c543c93cd987550ead3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/710f1179b60295e368164c543c93cd987550ead3
index fc8eb96de..fc8eb96de 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/710f1179b60295e368164c543c93cd987550ead3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/710f1179b60295e368164c543c93cd987550ead3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/71498662734cc4fcfd0794902a364256e8e903cb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/71498662734cc4fcfd0794902a364256e8e903cb
index 8c4c23706..8c4c23706 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/71498662734cc4fcfd0794902a364256e8e903cb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/71498662734cc4fcfd0794902a364256e8e903cb
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7200d64a17a59b76e00471ffecf98b282034d3cd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7200d64a17a59b76e00471ffecf98b282034d3cd
index 7b9e17b98..7b9e17b98 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7200d64a17a59b76e00471ffecf98b282034d3cd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7200d64a17a59b76e00471ffecf98b282034d3cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/721c235a0f4b44b6f3f4d1a1ad2d6004cf258004 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/721c235a0f4b44b6f3f4d1a1ad2d6004cf258004
index 7fb4eca99..7fb4eca99 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/721c235a0f4b44b6f3f4d1a1ad2d6004cf258004
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/721c235a0f4b44b6f3f4d1a1ad2d6004cf258004
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/722ddf6317d503923d50ec14a7f0134223d02fc5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/722ddf6317d503923d50ec14a7f0134223d02fc5
index b1b96ef5f..b1b96ef5f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/722ddf6317d503923d50ec14a7f0134223d02fc5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/722ddf6317d503923d50ec14a7f0134223d02fc5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/72703b82563077899c040f32d5fd681f3e85d5e7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/72703b82563077899c040f32d5fd681f3e85d5e7
index d96501dba..d96501dba 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/72703b82563077899c040f32d5fd681f3e85d5e7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/72703b82563077899c040f32d5fd681f3e85d5e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/72e277fbc775316b00788a094870232417ead5b5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/72e277fbc775316b00788a094870232417ead5b5
index 195c08079..195c08079 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/72e277fbc775316b00788a094870232417ead5b5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/72e277fbc775316b00788a094870232417ead5b5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/72ef763861215860fd3dd2ce150d41c9969a5626 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/72ef763861215860fd3dd2ce150d41c9969a5626
index 80f51be12..80f51be12 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/72ef763861215860fd3dd2ce150d41c9969a5626
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/72ef763861215860fd3dd2ce150d41c9969a5626
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7302de6077e332e10ca8208fd3d08c90ff6c9759 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7302de6077e332e10ca8208fd3d08c90ff6c9759
index 4426a2be1..4426a2be1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7302de6077e332e10ca8208fd3d08c90ff6c9759
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7302de6077e332e10ca8208fd3d08c90ff6c9759
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/732aaae6fb3ed4161d0041f5babd8c6be0464eb6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/732aaae6fb3ed4161d0041f5babd8c6be0464eb6
index 29ee0eb06..29ee0eb06 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/732aaae6fb3ed4161d0041f5babd8c6be0464eb6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/732aaae6fb3ed4161d0041f5babd8c6be0464eb6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7331525657843f98357c5301fa025e7b82b944c4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7331525657843f98357c5301fa025e7b82b944c4
index 6c7ba9156..6c7ba9156 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7331525657843f98357c5301fa025e7b82b944c4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7331525657843f98357c5301fa025e7b82b944c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7357b02216dbf1eae8613f6e68d1bd30b7a96af5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7357b02216dbf1eae8613f6e68d1bd30b7a96af5
index 87dcb3d2b..87dcb3d2b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7357b02216dbf1eae8613f6e68d1bd30b7a96af5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7357b02216dbf1eae8613f6e68d1bd30b7a96af5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/738ac61926fc8dce25059bb9b481bff548b0f401 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/738ac61926fc8dce25059bb9b481bff548b0f401
index feffc9968..feffc9968 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/738ac61926fc8dce25059bb9b481bff548b0f401
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/738ac61926fc8dce25059bb9b481bff548b0f401
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/739896955ba314c04c7e0124815509c70223fc27 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/739896955ba314c04c7e0124815509c70223fc27
index 62b29efa1..62b29efa1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/739896955ba314c04c7e0124815509c70223fc27
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/739896955ba314c04c7e0124815509c70223fc27
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7405dfae61e337ad9e5a8e4f732c0f5ab7c751bc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7405dfae61e337ad9e5a8e4f732c0f5ab7c751bc
index 16b2683c6..16b2683c6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7405dfae61e337ad9e5a8e4f732c0f5ab7c751bc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7405dfae61e337ad9e5a8e4f732c0f5ab7c751bc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/741e6ef1254abbaf6df6f7219909ce87a28173eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/741e6ef1254abbaf6df6f7219909ce87a28173eb
index 7156b72e6..7156b72e6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/741e6ef1254abbaf6df6f7219909ce87a28173eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/741e6ef1254abbaf6df6f7219909ce87a28173eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7439c7c4e3785383775384d74dda571451c0751c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7439c7c4e3785383775384d74dda571451c0751c
index fabee3aa2..fabee3aa2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7439c7c4e3785383775384d74dda571451c0751c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7439c7c4e3785383775384d74dda571451c0751c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/74507594f47ad42dc799a66bc9ebcbcc953ed16c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74507594f47ad42dc799a66bc9ebcbcc953ed16c
index 6dd99ab2a..6dd99ab2a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/74507594f47ad42dc799a66bc9ebcbcc953ed16c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74507594f47ad42dc799a66bc9ebcbcc953ed16c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/74701cca0a86aca307cc680d09c07d2542b83b83 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74701cca0a86aca307cc680d09c07d2542b83b83
index 8a3f7c4ad..8a3f7c4ad 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/74701cca0a86aca307cc680d09c07d2542b83b83
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74701cca0a86aca307cc680d09c07d2542b83b83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/74c1c002763e74ae157883f9ea57ecb65d2ead7c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74c1c002763e74ae157883f9ea57ecb65d2ead7c
index e074458fd..e074458fd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/74c1c002763e74ae157883f9ea57ecb65d2ead7c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74c1c002763e74ae157883f9ea57ecb65d2ead7c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/74f2b1cd7108f928197305674f8d0297b6f4dcf9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74f2b1cd7108f928197305674f8d0297b6f4dcf9
index cd97dbff1..cd97dbff1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/74f2b1cd7108f928197305674f8d0297b6f4dcf9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74f2b1cd7108f928197305674f8d0297b6f4dcf9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/74f48513944d20c0e1638a5c9d517db224070bf9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74f48513944d20c0e1638a5c9d517db224070bf9
index 44f4916b7..44f4916b7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/74f48513944d20c0e1638a5c9d517db224070bf9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/74f48513944d20c0e1638a5c9d517db224070bf9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/75471857e64b2e6ea825ee799fac715f1f2ba4b9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75471857e64b2e6ea825ee799fac715f1f2ba4b9
index 68430126d..68430126d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/75471857e64b2e6ea825ee799fac715f1f2ba4b9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75471857e64b2e6ea825ee799fac715f1f2ba4b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7558318cca4a37ecd6ec1b042a28a2c9a07b4545 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7558318cca4a37ecd6ec1b042a28a2c9a07b4545
index f04e63374..f04e63374 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7558318cca4a37ecd6ec1b042a28a2c9a07b4545
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7558318cca4a37ecd6ec1b042a28a2c9a07b4545
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7598641b029aff42c3e22979e3f82db606bd52e1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7598641b029aff42c3e22979e3f82db606bd52e1
index 17f92621f..17f92621f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7598641b029aff42c3e22979e3f82db606bd52e1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7598641b029aff42c3e22979e3f82db606bd52e1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/759f4d2c4b41315ee3a75ecae6359e884ee528ab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/759f4d2c4b41315ee3a75ecae6359e884ee528ab
index c5221fa18..c5221fa18 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/759f4d2c4b41315ee3a75ecae6359e884ee528ab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/759f4d2c4b41315ee3a75ecae6359e884ee528ab
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/75bb2588f5b5020ac8429c2eff120326674a7873 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75bb2588f5b5020ac8429c2eff120326674a7873
index 0f93a99ce..0f93a99ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/75bb2588f5b5020ac8429c2eff120326674a7873
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75bb2588f5b5020ac8429c2eff120326674a7873
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/75ca351531b293bc2ff8b57aefeb19c62ac4363b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75ca351531b293bc2ff8b57aefeb19c62ac4363b
index 16ddca6c2..16ddca6c2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/75ca351531b293bc2ff8b57aefeb19c62ac4363b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75ca351531b293bc2ff8b57aefeb19c62ac4363b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/75ced216fdab19cb3dccbaeb1a5f2ded67da9e6b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75ced216fdab19cb3dccbaeb1a5f2ded67da9e6b
index 135b2b4b9..135b2b4b9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/75ced216fdab19cb3dccbaeb1a5f2ded67da9e6b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75ced216fdab19cb3dccbaeb1a5f2ded67da9e6b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/75f7a42dae3c9a765b0febbf6687b6c0f530fe70 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75f7a42dae3c9a765b0febbf6687b6c0f530fe70
index 76c22e707..76c22e707 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/75f7a42dae3c9a765b0febbf6687b6c0f530fe70
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/75f7a42dae3c9a765b0febbf6687b6c0f530fe70
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/760361fbcba02b72880b52e86038dd38ff23d000 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/760361fbcba02b72880b52e86038dd38ff23d000
index a08c066b7..a08c066b7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/760361fbcba02b72880b52e86038dd38ff23d000
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/760361fbcba02b72880b52e86038dd38ff23d000
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/760b16455503fed8710002b1b0a48f598e0112ef b/src/web/server/h2o/libh2o/fuzz/http1-corpus/760b16455503fed8710002b1b0a48f598e0112ef
index 1bd34188e..1bd34188e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/760b16455503fed8710002b1b0a48f598e0112ef
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/760b16455503fed8710002b1b0a48f598e0112ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7666c93c84a5977aed5e2a8b41c13d10cb7870b8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7666c93c84a5977aed5e2a8b41c13d10cb7870b8
index 5418742e7..5418742e7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7666c93c84a5977aed5e2a8b41c13d10cb7870b8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7666c93c84a5977aed5e2a8b41c13d10cb7870b8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/76b5d637805e6017f84b0339ccbe69e28fc802ae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/76b5d637805e6017f84b0339ccbe69e28fc802ae
index 25c57df8e..25c57df8e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/76b5d637805e6017f84b0339ccbe69e28fc802ae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/76b5d637805e6017f84b0339ccbe69e28fc802ae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/76bbfd4f255b8bd97a96ca8696d6ea582189e4bc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/76bbfd4f255b8bd97a96ca8696d6ea582189e4bc
index be8dffb2b..be8dffb2b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/76bbfd4f255b8bd97a96ca8696d6ea582189e4bc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/76bbfd4f255b8bd97a96ca8696d6ea582189e4bc
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/76df4453c082b281f4edfc6123411c68f918355e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/76df4453c082b281f4edfc6123411c68f918355e
index e30ceff33..e30ceff33 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/76df4453c082b281f4edfc6123411c68f918355e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/76df4453c082b281f4edfc6123411c68f918355e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/773d8c1247069285cbb8e0b8f6a99e0ffd4d2059 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/773d8c1247069285cbb8e0b8f6a99e0ffd4d2059
index 4f0dff0bf..4f0dff0bf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/773d8c1247069285cbb8e0b8f6a99e0ffd4d2059
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/773d8c1247069285cbb8e0b8f6a99e0ffd4d2059
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/774c7f030d2ce2023784c487ecb08012c4c499f5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/774c7f030d2ce2023784c487ecb08012c4c499f5
index a345b0a9c..a345b0a9c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/774c7f030d2ce2023784c487ecb08012c4c499f5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/774c7f030d2ce2023784c487ecb08012c4c499f5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7752259dd4bbc398ae1a1ee0d1f8f3f6c15f06db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7752259dd4bbc398ae1a1ee0d1f8f3f6c15f06db
index 0ed854281..0ed854281 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7752259dd4bbc398ae1a1ee0d1f8f3f6c15f06db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7752259dd4bbc398ae1a1ee0d1f8f3f6c15f06db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/776266f336d60b25e057b10670c6b10137cd164f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/776266f336d60b25e057b10670c6b10137cd164f
index 7bf5ce75e..7bf5ce75e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/776266f336d60b25e057b10670c6b10137cd164f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/776266f336d60b25e057b10670c6b10137cd164f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/778853d48bd990c02f859db92e3ff4bd99caf5f7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/778853d48bd990c02f859db92e3ff4bd99caf5f7
index 200f8beea..200f8beea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/778853d48bd990c02f859db92e3ff4bd99caf5f7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/778853d48bd990c02f859db92e3ff4bd99caf5f7
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/77c4e918cae84403977e1e092b30df24aa80ad3f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/77c4e918cae84403977e1e092b30df24aa80ad3f
index bbbb08db4..bbbb08db4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/77c4e918cae84403977e1e092b30df24aa80ad3f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/77c4e918cae84403977e1e092b30df24aa80ad3f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/77f9240a8d30c995f7b9b73dddae10b829ad694a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/77f9240a8d30c995f7b9b73dddae10b829ad694a
index e8c9908c3..e8c9908c3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/77f9240a8d30c995f7b9b73dddae10b829ad694a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/77f9240a8d30c995f7b9b73dddae10b829ad694a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/77fa7020ab2c8e9615e44f99a6e9ba889529b3b9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/77fa7020ab2c8e9615e44f99a6e9ba889529b3b9
index 6bc1f28d5..6bc1f28d5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/77fa7020ab2c8e9615e44f99a6e9ba889529b3b9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/77fa7020ab2c8e9615e44f99a6e9ba889529b3b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7820f42887a7f97cbfc9ce90c77cb0eaca24f96b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7820f42887a7f97cbfc9ce90c77cb0eaca24f96b
index c86f7a42d..c86f7a42d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7820f42887a7f97cbfc9ce90c77cb0eaca24f96b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7820f42887a7f97cbfc9ce90c77cb0eaca24f96b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/782654517d1cb3110c78ab7ebbcce1ef77a28db6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/782654517d1cb3110c78ab7ebbcce1ef77a28db6
index 1a613d1a0..1a613d1a0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/782654517d1cb3110c78ab7ebbcce1ef77a28db6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/782654517d1cb3110c78ab7ebbcce1ef77a28db6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7858fa3e07bbe0235176b826739a9d40cbf889e5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7858fa3e07bbe0235176b826739a9d40cbf889e5
index 56ad3ed8f..56ad3ed8f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7858fa3e07bbe0235176b826739a9d40cbf889e5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7858fa3e07bbe0235176b826739a9d40cbf889e5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/788226d88c63bdc7d829e69b1fa8b542ed3e18ec b/src/web/server/h2o/libh2o/fuzz/http1-corpus/788226d88c63bdc7d829e69b1fa8b542ed3e18ec
index 08d807613..08d807613 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/788226d88c63bdc7d829e69b1fa8b542ed3e18ec
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/788226d88c63bdc7d829e69b1fa8b542ed3e18ec
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/788c5b164c36d87e08f216d7a2e131c6fa2f9daf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/788c5b164c36d87e08f216d7a2e131c6fa2f9daf
index dd3ebe21f..dd3ebe21f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/788c5b164c36d87e08f216d7a2e131c6fa2f9daf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/788c5b164c36d87e08f216d7a2e131c6fa2f9daf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7891611e0863685ee4a00ff188479689ddb7d7f9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7891611e0863685ee4a00ff188479689ddb7d7f9
index ea10bd1e2..ea10bd1e2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7891611e0863685ee4a00ff188479689ddb7d7f9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7891611e0863685ee4a00ff188479689ddb7d7f9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/789f73beda86a9aa0f9328b273a0167a3bf1d933 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/789f73beda86a9aa0f9328b273a0167a3bf1d933
index a7d76836b..a7d76836b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/789f73beda86a9aa0f9328b273a0167a3bf1d933
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/789f73beda86a9aa0f9328b273a0167a3bf1d933
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/78e9e4b2e97cd0df81bd65c998e8c414677eadad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/78e9e4b2e97cd0df81bd65c998e8c414677eadad
index 7d5322bbc..7d5322bbc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/78e9e4b2e97cd0df81bd65c998e8c414677eadad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/78e9e4b2e97cd0df81bd65c998e8c414677eadad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/78f7f009a79592484e27a2ecb567c532afcbf780 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/78f7f009a79592484e27a2ecb567c532afcbf780
index a799a3f66..a799a3f66 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/78f7f009a79592484e27a2ecb567c532afcbf780
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/78f7f009a79592484e27a2ecb567c532afcbf780
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7920e5ba18aef859a58eb2ee9607ae0329bb3976 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7920e5ba18aef859a58eb2ee9607ae0329bb3976
index 16a3fb2d2..16a3fb2d2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7920e5ba18aef859a58eb2ee9607ae0329bb3976
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7920e5ba18aef859a58eb2ee9607ae0329bb3976
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/79e4a71ac596f7892115e3d7fc60e80e559f3f31 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/79e4a71ac596f7892115e3d7fc60e80e559f3f31
index 38d7880a0..38d7880a0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/79e4a71ac596f7892115e3d7fc60e80e559f3f31
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/79e4a71ac596f7892115e3d7fc60e80e559f3f31
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7a113f81d895d4c66bf36d8779c004b0e497915e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a113f81d895d4c66bf36d8779c004b0e497915e
index 3a201166b..3a201166b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7a113f81d895d4c66bf36d8779c004b0e497915e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a113f81d895d4c66bf36d8779c004b0e497915e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7a3605d5093b7d7f8b0545c0bff0e7c30340931f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a3605d5093b7d7f8b0545c0bff0e7c30340931f
index cd1febf3c..cd1febf3c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7a3605d5093b7d7f8b0545c0bff0e7c30340931f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a3605d5093b7d7f8b0545c0bff0e7c30340931f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7a39085f65cc1569568094bdbc2d824d4f12ed36 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a39085f65cc1569568094bdbc2d824d4f12ed36
index 2d98969d9..2d98969d9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7a39085f65cc1569568094bdbc2d824d4f12ed36
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a39085f65cc1569568094bdbc2d824d4f12ed36
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7a4c85028081a780d21600fc29bca71bba5f1794 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a4c85028081a780d21600fc29bca71bba5f1794
index 462657698..462657698 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7a4c85028081a780d21600fc29bca71bba5f1794
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7a4c85028081a780d21600fc29bca71bba5f1794
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7aa184df01b1bb4d0337be7953596fa865506108 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7aa184df01b1bb4d0337be7953596fa865506108
index a09485d96..a09485d96 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7aa184df01b1bb4d0337be7953596fa865506108
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7aa184df01b1bb4d0337be7953596fa865506108
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7ad316d2975f3c358f89bd84084cb32d76115497 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ad316d2975f3c358f89bd84084cb32d76115497
index d853f949c..d853f949c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7ad316d2975f3c358f89bd84084cb32d76115497
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ad316d2975f3c358f89bd84084cb32d76115497
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7adfb2826fbac0932d1067d9a4514d30b64a58e6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7adfb2826fbac0932d1067d9a4514d30b64a58e6
index 86d0a3e07..86d0a3e07 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7adfb2826fbac0932d1067d9a4514d30b64a58e6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7adfb2826fbac0932d1067d9a4514d30b64a58e6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7ae212a7f542294650f4472773ae2d901442703a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ae212a7f542294650f4472773ae2d901442703a
index 8c9dce218..8c9dce218 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7ae212a7f542294650f4472773ae2d901442703a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ae212a7f542294650f4472773ae2d901442703a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7aee63978efcc9f30d437becedadf5c2f674aa68 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7aee63978efcc9f30d437becedadf5c2f674aa68
index be79a6cc0..be79a6cc0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7aee63978efcc9f30d437becedadf5c2f674aa68
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7aee63978efcc9f30d437becedadf5c2f674aa68
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7b36d23782e6817b901ce0757da1e2d8a75d20c0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7b36d23782e6817b901ce0757da1e2d8a75d20c0
index 2be111768..2be111768 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7b36d23782e6817b901ce0757da1e2d8a75d20c0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7b36d23782e6817b901ce0757da1e2d8a75d20c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7b48bf655d93658bacd8de02516710643300c0b9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7b48bf655d93658bacd8de02516710643300c0b9
index c16d300e2..c16d300e2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7b48bf655d93658bacd8de02516710643300c0b9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7b48bf655d93658bacd8de02516710643300c0b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7ba096d90eff925caaf5d027733e8a887ed0e456 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ba096d90eff925caaf5d027733e8a887ed0e456
index 83866dab1..83866dab1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7ba096d90eff925caaf5d027733e8a887ed0e456
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ba096d90eff925caaf5d027733e8a887ed0e456
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074
index f9edc7e20..f9edc7e20 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7be7dcf930784d2ab367e6f94ac229bc0099b0a9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7be7dcf930784d2ab367e6f94ac229bc0099b0a9
index 2688e25a6..2688e25a6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7be7dcf930784d2ab367e6f94ac229bc0099b0a9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7be7dcf930784d2ab367e6f94ac229bc0099b0a9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7c0acf0d2e4825ca4c5e64767f5999d2593c7895 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c0acf0d2e4825ca4c5e64767f5999d2593c7895
index 61a5b3ad4..61a5b3ad4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7c0acf0d2e4825ca4c5e64767f5999d2593c7895
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c0acf0d2e4825ca4c5e64767f5999d2593c7895
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7c164f1cf0c3c111df13c60c5715a7115e1aaf36 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c164f1cf0c3c111df13c60c5715a7115e1aaf36
index 4b0d7ca28..4b0d7ca28 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7c164f1cf0c3c111df13c60c5715a7115e1aaf36
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c164f1cf0c3c111df13c60c5715a7115e1aaf36
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7c2ede306f7f49e0ac6417950f85c27625d77089 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c2ede306f7f49e0ac6417950f85c27625d77089
index fda889684..fda889684 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7c2ede306f7f49e0ac6417950f85c27625d77089
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c2ede306f7f49e0ac6417950f85c27625d77089
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7c7bb47da0afbe2cef9a1e8e68e099982166dd99 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c7bb47da0afbe2cef9a1e8e68e099982166dd99
index c2d6a0163..c2d6a0163 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7c7bb47da0afbe2cef9a1e8e68e099982166dd99
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7c7bb47da0afbe2cef9a1e8e68e099982166dd99
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7cb59bb065db90df43a622268a273f9bac5da112 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7cb59bb065db90df43a622268a273f9bac5da112
index 89d7a2851..89d7a2851 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7cb59bb065db90df43a622268a273f9bac5da112
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7cb59bb065db90df43a622268a273f9bac5da112
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7cc098d496aa519fbc3228c89fcc388691058a14 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7cc098d496aa519fbc3228c89fcc388691058a14
index 2a465cf66..2a465cf66 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7cc098d496aa519fbc3228c89fcc388691058a14
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7cc098d496aa519fbc3228c89fcc388691058a14
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7d070e5cb115fc48ad49f97434f4acee14b55f42 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d070e5cb115fc48ad49f97434f4acee14b55f42
index 7a4ba2c2c..7a4ba2c2c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7d070e5cb115fc48ad49f97434f4acee14b55f42
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d070e5cb115fc48ad49f97434f4acee14b55f42
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7d2cd0a9722a7eeb5ac5f33e8b138c3b68a04f61 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d2cd0a9722a7eeb5ac5f33e8b138c3b68a04f61
index d80fe13b6..d80fe13b6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7d2cd0a9722a7eeb5ac5f33e8b138c3b68a04f61
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d2cd0a9722a7eeb5ac5f33e8b138c3b68a04f61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7d3d2588be2f62075034bdab268526fe624c56a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d3d2588be2f62075034bdab268526fe624c56a5
index 5d2050d06..5d2050d06 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7d3d2588be2f62075034bdab268526fe624c56a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d3d2588be2f62075034bdab268526fe624c56a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7d3e37565ed18346122d3845dd7ecd7fb1a0c682 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d3e37565ed18346122d3845dd7ecd7fb1a0c682
index e0717b885..e0717b885 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7d3e37565ed18346122d3845dd7ecd7fb1a0c682
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d3e37565ed18346122d3845dd7ecd7fb1a0c682
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7d61fda46e931fd0d1a440ec060d1381f6ae7d92 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d61fda46e931fd0d1a440ec060d1381f6ae7d92
index 8584b2b24..8584b2b24 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7d61fda46e931fd0d1a440ec060d1381f6ae7d92
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d61fda46e931fd0d1a440ec060d1381f6ae7d92
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7d7b8b9c831e77c1d4a717554798464d05f5ad98 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d7b8b9c831e77c1d4a717554798464d05f5ad98
index 4f4633ade..4f4633ade 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7d7b8b9c831e77c1d4a717554798464d05f5ad98
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7d7b8b9c831e77c1d4a717554798464d05f5ad98
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7dcca6b421d9984eff185a74056f2068e32544fe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7dcca6b421d9984eff185a74056f2068e32544fe
index ea98ff026..ea98ff026 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7dcca6b421d9984eff185a74056f2068e32544fe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7dcca6b421d9984eff185a74056f2068e32544fe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7df0a9f94a087f5fe54e921ee7a4195a5ed0cc22 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7df0a9f94a087f5fe54e921ee7a4195a5ed0cc22
index a656a7b96..a656a7b96 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7df0a9f94a087f5fe54e921ee7a4195a5ed0cc22
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7df0a9f94a087f5fe54e921ee7a4195a5ed0cc22
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7e25a01bfd45f64eff308d2b2027f275d4642122 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e25a01bfd45f64eff308d2b2027f275d4642122
index bbebc21df..bbebc21df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7e25a01bfd45f64eff308d2b2027f275d4642122
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e25a01bfd45f64eff308d2b2027f275d4642122
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7e5760649c5b430dfac45d98493900bf5b1c0659 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e5760649c5b430dfac45d98493900bf5b1c0659
index 6ecbe5b17..6ecbe5b17 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7e5760649c5b430dfac45d98493900bf5b1c0659
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e5760649c5b430dfac45d98493900bf5b1c0659
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da3332689d178a40461f544bc45624535d517 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da3332689d178a40461f544bc45624535d517
index 73ce7739c..73ce7739c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da3332689d178a40461f544bc45624535d517
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da3332689d178a40461f544bc45624535d517
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da9e3c4806ab51a63c197ceacd9922f75da4d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da9e3c4806ab51a63c197ceacd9922f75da4d
index 46d448828..46d448828 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da9e3c4806ab51a63c197ceacd9922f75da4d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7e6da9e3c4806ab51a63c197ceacd9922f75da4d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7eafefa09c7f9847f1c4f6cf3276b1e89637c889 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7eafefa09c7f9847f1c4f6cf3276b1e89637c889
index 7a539dafc..7a539dafc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7eafefa09c7f9847f1c4f6cf3276b1e89637c889
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7eafefa09c7f9847f1c4f6cf3276b1e89637c889
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7ee11d0b381f7023917f4f43b360653ebf997b5d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ee11d0b381f7023917f4f43b360653ebf997b5d
index 18bb0b950..18bb0b950 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7ee11d0b381f7023917f4f43b360653ebf997b5d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ee11d0b381f7023917f4f43b360653ebf997b5d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7f018b85a1c845b2910b509712c14f1e0998f8ca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f018b85a1c845b2910b509712c14f1e0998f8ca
index 9afc6847c..9afc6847c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7f018b85a1c845b2910b509712c14f1e0998f8ca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f018b85a1c845b2910b509712c14f1e0998f8ca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7f1823d8859637e5de54543d7163fe3aa5ecec9a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f1823d8859637e5de54543d7163fe3aa5ecec9a
index 8c39db871..8c39db871 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7f1823d8859637e5de54543d7163fe3aa5ecec9a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f1823d8859637e5de54543d7163fe3aa5ecec9a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7f2135b4746335d1e76a66685aa5998f9307f6f4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f2135b4746335d1e76a66685aa5998f9307f6f4
index ea2d6ca61..ea2d6ca61 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7f2135b4746335d1e76a66685aa5998f9307f6f4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f2135b4746335d1e76a66685aa5998f9307f6f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7f34d343cd38e1ae5eca4b51fac6f01dbb4dfd55 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f34d343cd38e1ae5eca4b51fac6f01dbb4dfd55
index 487880437..487880437 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7f34d343cd38e1ae5eca4b51fac6f01dbb4dfd55
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f34d343cd38e1ae5eca4b51fac6f01dbb4dfd55
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7f3c4eec25bd2dcd0cff3fe74283cb97d0622a6a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f3c4eec25bd2dcd0cff3fe74283cb97d0622a6a
index af61f57fe..af61f57fe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7f3c4eec25bd2dcd0cff3fe74283cb97d0622a6a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f3c4eec25bd2dcd0cff3fe74283cb97d0622a6a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7f64bf7ceded47fb4c747b952a87912f18d7cb00 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f64bf7ceded47fb4c747b952a87912f18d7cb00
index 56538ef37..56538ef37 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7f64bf7ceded47fb4c747b952a87912f18d7cb00
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7f64bf7ceded47fb4c747b952a87912f18d7cb00
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7fa53a0e9cd5895b3f9220a7ec099a9426a5fc97 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fa53a0e9cd5895b3f9220a7ec099a9426a5fc97
index 1926a0416..1926a0416 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7fa53a0e9cd5895b3f9220a7ec099a9426a5fc97
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fa53a0e9cd5895b3f9220a7ec099a9426a5fc97
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7fcfdfd236cb22b0e222bba762798b05cb4ec266 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fcfdfd236cb22b0e222bba762798b05cb4ec266
index 2a4426b5f..2a4426b5f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7fcfdfd236cb22b0e222bba762798b05cb4ec266
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fcfdfd236cb22b0e222bba762798b05cb4ec266
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7fd49d9478e90ae7b32cd500eb8d394a290843bd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fd49d9478e90ae7b32cd500eb8d394a290843bd
index 3c461e9e2..3c461e9e2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7fd49d9478e90ae7b32cd500eb8d394a290843bd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fd49d9478e90ae7b32cd500eb8d394a290843bd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7fd5d266e9d12cccfff8e0543c38c3e56947660f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fd5d266e9d12cccfff8e0543c38c3e56947660f
index 46f6aae46..46f6aae46 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7fd5d266e9d12cccfff8e0543c38c3e56947660f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7fd5d266e9d12cccfff8e0543c38c3e56947660f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/7ff79de1f65198581f0a0955d1a43fdd536c7313 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ff79de1f65198581f0a0955d1a43fdd536c7313
index 9091e89f6..9091e89f6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/7ff79de1f65198581f0a0955d1a43fdd536c7313
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/7ff79de1f65198581f0a0955d1a43fdd536c7313
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/80318c598a84d355d77b26339f449fc057b5fc30 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80318c598a84d355d77b26339f449fc057b5fc30
index 546d30c58..546d30c58 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/80318c598a84d355d77b26339f449fc057b5fc30
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80318c598a84d355d77b26339f449fc057b5fc30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/803cf881f4a77a986ad8bb371b81a6503e0fed80 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/803cf881f4a77a986ad8bb371b81a6503e0fed80
index 342dea027..342dea027 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/803cf881f4a77a986ad8bb371b81a6503e0fed80
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/803cf881f4a77a986ad8bb371b81a6503e0fed80
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8040e16bf27339b41cf54ac8e9169fc7f81c7a48 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8040e16bf27339b41cf54ac8e9169fc7f81c7a48
index 7b0a62b30..7b0a62b30 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8040e16bf27339b41cf54ac8e9169fc7f81c7a48
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8040e16bf27339b41cf54ac8e9169fc7f81c7a48
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/80418b85ce32c7761e45b9cf7502b292132a6379 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80418b85ce32c7761e45b9cf7502b292132a6379
index 43002c0cf..43002c0cf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/80418b85ce32c7761e45b9cf7502b292132a6379
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80418b85ce32c7761e45b9cf7502b292132a6379
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/805b49f003df61d2e5f269c8eead105c1082f5f2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/805b49f003df61d2e5f269c8eead105c1082f5f2
index f98591658..f98591658 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/805b49f003df61d2e5f269c8eead105c1082f5f2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/805b49f003df61d2e5f269c8eead105c1082f5f2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/80a2cbc9bd6bc171b39e32c9e2b71cd3de56da80 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80a2cbc9bd6bc171b39e32c9e2b71cd3de56da80
index 7f410b4a2..7f410b4a2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/80a2cbc9bd6bc171b39e32c9e2b71cd3de56da80
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80a2cbc9bd6bc171b39e32c9e2b71cd3de56da80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/80a57ede1580fa68596244fbd2ca3d7dbc0bb073 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80a57ede1580fa68596244fbd2ca3d7dbc0bb073
index 9542e0f79..9542e0f79 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/80a57ede1580fa68596244fbd2ca3d7dbc0bb073
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80a57ede1580fa68596244fbd2ca3d7dbc0bb073
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/80a8a8d39296d2ca58f566c5e740b4105b6e8327 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80a8a8d39296d2ca58f566c5e740b4105b6e8327
index 0f716fba7..0f716fba7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/80a8a8d39296d2ca58f566c5e740b4105b6e8327
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80a8a8d39296d2ca58f566c5e740b4105b6e8327
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/80bb16a769003c82b0a3eab03886360d4224fce0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80bb16a769003c82b0a3eab03886360d4224fce0
index 019ce08ed..019ce08ed 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/80bb16a769003c82b0a3eab03886360d4224fce0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80bb16a769003c82b0a3eab03886360d4224fce0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/80de07ee2152f321876e34a77adb24ddb70e65ee b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80de07ee2152f321876e34a77adb24ddb70e65ee
index 9404889af..9404889af 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/80de07ee2152f321876e34a77adb24ddb70e65ee
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/80de07ee2152f321876e34a77adb24ddb70e65ee
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/813b49f1ef9a38a53935ec3896b0c9f3ba26f4e1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/813b49f1ef9a38a53935ec3896b0c9f3ba26f4e1
index d35f77d64..d35f77d64 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/813b49f1ef9a38a53935ec3896b0c9f3ba26f4e1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/813b49f1ef9a38a53935ec3896b0c9f3ba26f4e1
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/813eb179d03b6e2e8ac74eb54237aee18f5c3660 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/813eb179d03b6e2e8ac74eb54237aee18f5c3660
index d55184bbe..d55184bbe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/813eb179d03b6e2e8ac74eb54237aee18f5c3660
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/813eb179d03b6e2e8ac74eb54237aee18f5c3660
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/81952c46cc49b95b18826f31f158ac90fcb40cd4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81952c46cc49b95b18826f31f158ac90fcb40cd4
index 232dca869..232dca869 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/81952c46cc49b95b18826f31f158ac90fcb40cd4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81952c46cc49b95b18826f31f158ac90fcb40cd4
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/81a2c4d5b3a07c24d44ac442ad6ddd9988818ae5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81a2c4d5b3a07c24d44ac442ad6ddd9988818ae5
index 5f44124c9..5f44124c9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/81a2c4d5b3a07c24d44ac442ad6ddd9988818ae5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81a2c4d5b3a07c24d44ac442ad6ddd9988818ae5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/81df3635ec4185424d48f9e24c66057ecccb649c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81df3635ec4185424d48f9e24c66057ecccb649c
index 52700fb7d..52700fb7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/81df3635ec4185424d48f9e24c66057ecccb649c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81df3635ec4185424d48f9e24c66057ecccb649c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/81ec1ab791511319d27058351d51e013f0cb5ef5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81ec1ab791511319d27058351d51e013f0cb5ef5
index 08d1c240d..08d1c240d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/81ec1ab791511319d27058351d51e013f0cb5ef5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81ec1ab791511319d27058351d51e013f0cb5ef5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/81f82bcf98023fe706756de805196c3c86fd6a1a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81f82bcf98023fe706756de805196c3c86fd6a1a
index 2cfa00b6c..2cfa00b6c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/81f82bcf98023fe706756de805196c3c86fd6a1a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/81f82bcf98023fe706756de805196c3c86fd6a1a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/820fe214719d203de38b6034a5834a6e70624c2e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/820fe214719d203de38b6034a5834a6e70624c2e
index 6fd78d469..6fd78d469 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/820fe214719d203de38b6034a5834a6e70624c2e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/820fe214719d203de38b6034a5834a6e70624c2e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/821c0c56ff1a3d2f3bc3834aaadfac5d7032e27a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/821c0c56ff1a3d2f3bc3834aaadfac5d7032e27a
index d3672911b..d3672911b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/821c0c56ff1a3d2f3bc3834aaadfac5d7032e27a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/821c0c56ff1a3d2f3bc3834aaadfac5d7032e27a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/82254889349372edabb07cee13b76f4502f034e2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82254889349372edabb07cee13b76f4502f034e2
index aa52fc831..aa52fc831 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/82254889349372edabb07cee13b76f4502f034e2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82254889349372edabb07cee13b76f4502f034e2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/825c1dcea8e3b4f79a1a8fc47d66dff4ef22c299 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/825c1dcea8e3b4f79a1a8fc47d66dff4ef22c299
index 2299170b2..2299170b2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/825c1dcea8e3b4f79a1a8fc47d66dff4ef22c299
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/825c1dcea8e3b4f79a1a8fc47d66dff4ef22c299
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/82653abe907b38e448d0d4741be641d9a1cbb8b6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82653abe907b38e448d0d4741be641d9a1cbb8b6
index 7e0a2ee1e..7e0a2ee1e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/82653abe907b38e448d0d4741be641d9a1cbb8b6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82653abe907b38e448d0d4741be641d9a1cbb8b6
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8267e33148ea8c3d3273a96723139419ac8d454e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8267e33148ea8c3d3273a96723139419ac8d454e
index ae9f658da..ae9f658da 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8267e33148ea8c3d3273a96723139419ac8d454e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8267e33148ea8c3d3273a96723139419ac8d454e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/827975005b57d444b40585d5aae93a854e3401c8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/827975005b57d444b40585d5aae93a854e3401c8
index bf4364d5d..bf4364d5d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/827975005b57d444b40585d5aae93a854e3401c8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/827975005b57d444b40585d5aae93a854e3401c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/827a43142b5f4f21bf79d0677f1cad294a289080 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/827a43142b5f4f21bf79d0677f1cad294a289080
index 3abc7301e..3abc7301e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/827a43142b5f4f21bf79d0677f1cad294a289080
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/827a43142b5f4f21bf79d0677f1cad294a289080
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/827f5ddf31cef19b8943c8096379e663a0b99e4e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/827f5ddf31cef19b8943c8096379e663a0b99e4e
index 5977fb2cc..5977fb2cc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/827f5ddf31cef19b8943c8096379e663a0b99e4e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/827f5ddf31cef19b8943c8096379e663a0b99e4e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/82e3c3e83d8f843041865526ff6943721d6adfe0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82e3c3e83d8f843041865526ff6943721d6adfe0
index 5a1f5b85c..5a1f5b85c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/82e3c3e83d8f843041865526ff6943721d6adfe0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82e3c3e83d8f843041865526ff6943721d6adfe0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/82f6266669a11babc4bfa80f6faa474a27ad1465 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82f6266669a11babc4bfa80f6faa474a27ad1465
index b7c81ecf5..b7c81ecf5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/82f6266669a11babc4bfa80f6faa474a27ad1465
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/82f6266669a11babc4bfa80f6faa474a27ad1465
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/831c0477fb9be21dfe3e23085fa4926a2fb79db9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/831c0477fb9be21dfe3e23085fa4926a2fb79db9
index abdc50422..abdc50422 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/831c0477fb9be21dfe3e23085fa4926a2fb79db9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/831c0477fb9be21dfe3e23085fa4926a2fb79db9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/831d77dc09224c6f60b0a6c17c97aefd7c1b950e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/831d77dc09224c6f60b0a6c17c97aefd7c1b950e
index d5b796362..d5b796362 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/831d77dc09224c6f60b0a6c17c97aefd7c1b950e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/831d77dc09224c6f60b0a6c17c97aefd7c1b950e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8367bff7c3a4b5f6a26c59394fe4f8d54cd37e97 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8367bff7c3a4b5f6a26c59394fe4f8d54cd37e97
index 551d99f03..551d99f03 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8367bff7c3a4b5f6a26c59394fe4f8d54cd37e97
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8367bff7c3a4b5f6a26c59394fe4f8d54cd37e97
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8367fe20b8b1cc1422b8fff96fc5c10da90ca1a2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8367fe20b8b1cc1422b8fff96fc5c10da90ca1a2
index 4951e0564..4951e0564 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8367fe20b8b1cc1422b8fff96fc5c10da90ca1a2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8367fe20b8b1cc1422b8fff96fc5c10da90ca1a2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/838558ec78768745451d9cf9bfa6fe948fd76055 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/838558ec78768745451d9cf9bfa6fe948fd76055
index fda59b5fc..fda59b5fc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/838558ec78768745451d9cf9bfa6fe948fd76055
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/838558ec78768745451d9cf9bfa6fe948fd76055
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/83c54a653888932621417330468aa4a161c70cfb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/83c54a653888932621417330468aa4a161c70cfb
index d5f850fb8..d5f850fb8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/83c54a653888932621417330468aa4a161c70cfb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/83c54a653888932621417330468aa4a161c70cfb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/83e67e0f0f3dfba37dd273ef3c3efd498e76a2ce b/src/web/server/h2o/libh2o/fuzz/http1-corpus/83e67e0f0f3dfba37dd273ef3c3efd498e76a2ce
index 1f4a8f54a..1f4a8f54a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/83e67e0f0f3dfba37dd273ef3c3efd498e76a2ce
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/83e67e0f0f3dfba37dd273ef3c3efd498e76a2ce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/840270b14bd1623a92a2a7d7dd1dd73983431ac4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/840270b14bd1623a92a2a7d7dd1dd73983431ac4
index b7db0547c..b7db0547c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/840270b14bd1623a92a2a7d7dd1dd73983431ac4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/840270b14bd1623a92a2a7d7dd1dd73983431ac4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8425150d042d1b45eb9dd4e500131fdb5fe6d0c0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8425150d042d1b45eb9dd4e500131fdb5fe6d0c0
index 3568e8629..3568e8629 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8425150d042d1b45eb9dd4e500131fdb5fe6d0c0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8425150d042d1b45eb9dd4e500131fdb5fe6d0c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/84951f2b6bde1eb1576da09c3d778709ef169d8d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/84951f2b6bde1eb1576da09c3d778709ef169d8d
index db9485f0b..db9485f0b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/84951f2b6bde1eb1576da09c3d778709ef169d8d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/84951f2b6bde1eb1576da09c3d778709ef169d8d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/84be72ddb132bc5d367ca093120a41e2f685d167 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/84be72ddb132bc5d367ca093120a41e2f685d167
index dfc7c6b6e..dfc7c6b6e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/84be72ddb132bc5d367ca093120a41e2f685d167
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/84be72ddb132bc5d367ca093120a41e2f685d167
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/84e70912767d9e9220777d96d5a0ab04791504be b/src/web/server/h2o/libh2o/fuzz/http1-corpus/84e70912767d9e9220777d96d5a0ab04791504be
index d2a953a1c..d2a953a1c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/84e70912767d9e9220777d96d5a0ab04791504be
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/84e70912767d9e9220777d96d5a0ab04791504be
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8503de15d8692b9d196dcc62e5ffb496b432ab14 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8503de15d8692b9d196dcc62e5ffb496b432ab14
index 6036400ca..6036400ca 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8503de15d8692b9d196dcc62e5ffb496b432ab14
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8503de15d8692b9d196dcc62e5ffb496b432ab14
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/852db3f6e3250b3ce1708958dfbe5f3a00cc1618 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/852db3f6e3250b3ce1708958dfbe5f3a00cc1618
index 5bbf3796c..5bbf3796c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/852db3f6e3250b3ce1708958dfbe5f3a00cc1618
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/852db3f6e3250b3ce1708958dfbe5f3a00cc1618
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8531c07a38054371cd286842cd005cf3fed09105 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8531c07a38054371cd286842cd005cf3fed09105
index e22533924..e22533924 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8531c07a38054371cd286842cd005cf3fed09105
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8531c07a38054371cd286842cd005cf3fed09105
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/853a32dff89ecc118a33f5dd6f3094f3fb871c47 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/853a32dff89ecc118a33f5dd6f3094f3fb871c47
index 7f11623bd..7f11623bd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/853a32dff89ecc118a33f5dd6f3094f3fb871c47
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/853a32dff89ecc118a33f5dd6f3094f3fb871c47
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/853c736545c8813abec4fd4fc0664765a589ea32 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/853c736545c8813abec4fd4fc0664765a589ea32
index e71858d6c..e71858d6c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/853c736545c8813abec4fd4fc0664765a589ea32
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/853c736545c8813abec4fd4fc0664765a589ea32
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/856e349f8a4693e2589288accc93974be19c1c24 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/856e349f8a4693e2589288accc93974be19c1c24
index 3fb19ffa9..3fb19ffa9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/856e349f8a4693e2589288accc93974be19c1c24
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/856e349f8a4693e2589288accc93974be19c1c24
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/85953029e241867747ce4a24e4885df2ca14784a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/85953029e241867747ce4a24e4885df2ca14784a
index 3425b35df..3425b35df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/85953029e241867747ce4a24e4885df2ca14784a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/85953029e241867747ce4a24e4885df2ca14784a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/859a5f7421357f1a562e07ee1fa808e1fd53317e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/859a5f7421357f1a562e07ee1fa808e1fd53317e
index 12664e023..12664e023 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/859a5f7421357f1a562e07ee1fa808e1fd53317e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/859a5f7421357f1a562e07ee1fa808e1fd53317e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/85c89f4d20809535e96a58aaa811690b42b30506 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/85c89f4d20809535e96a58aaa811690b42b30506
index b93730b9f..b93730b9f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/85c89f4d20809535e96a58aaa811690b42b30506
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/85c89f4d20809535e96a58aaa811690b42b30506
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/85f620db4ff68b1a18288cd5bea3170602dcfc30 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/85f620db4ff68b1a18288cd5bea3170602dcfc30
index e417999b1..e417999b1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/85f620db4ff68b1a18288cd5bea3170602dcfc30
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/85f620db4ff68b1a18288cd5bea3170602dcfc30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/862b41cf66c34243093c17d8debcbc39470b9145 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/862b41cf66c34243093c17d8debcbc39470b9145
index 5b086e25f..5b086e25f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/862b41cf66c34243093c17d8debcbc39470b9145
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/862b41cf66c34243093c17d8debcbc39470b9145
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8636e740484f41612a42443f2084054350cfcc24 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8636e740484f41612a42443f2084054350cfcc24
index 004ea732b..004ea732b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8636e740484f41612a42443f2084054350cfcc24
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8636e740484f41612a42443f2084054350cfcc24
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8646293860427fa42819f6e2176cd4e724a3c28b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8646293860427fa42819f6e2176cd4e724a3c28b
index 786ca2c49..786ca2c49 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8646293860427fa42819f6e2176cd4e724a3c28b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8646293860427fa42819f6e2176cd4e724a3c28b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/86a9577ce560933668987659ded65a8bcc719776 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/86a9577ce560933668987659ded65a8bcc719776
index 2ce9267b2..2ce9267b2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/86a9577ce560933668987659ded65a8bcc719776
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/86a9577ce560933668987659ded65a8bcc719776
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/86f1a5c09f46c5875a51d24c04e7f3cdacdeb9c8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/86f1a5c09f46c5875a51d24c04e7f3cdacdeb9c8
index d72e8e188..d72e8e188 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/86f1a5c09f46c5875a51d24c04e7f3cdacdeb9c8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/86f1a5c09f46c5875a51d24c04e7f3cdacdeb9c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/86f5478e47a35c22142f75754ffe5cd30b97d881 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/86f5478e47a35c22142f75754ffe5cd30b97d881
index be4d5f8fa..be4d5f8fa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/86f5478e47a35c22142f75754ffe5cd30b97d881
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/86f5478e47a35c22142f75754ffe5cd30b97d881
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8717ea8f94c789030b43449b3e29fe18e8e391d1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8717ea8f94c789030b43449b3e29fe18e8e391d1
index 791ddcc5d..791ddcc5d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8717ea8f94c789030b43449b3e29fe18e8e391d1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8717ea8f94c789030b43449b3e29fe18e8e391d1
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8735896966550c2ba3bd5b09db5b9ab2c30803c5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8735896966550c2ba3bd5b09db5b9ab2c30803c5
index 7e6f09290..7e6f09290 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8735896966550c2ba3bd5b09db5b9ab2c30803c5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8735896966550c2ba3bd5b09db5b9ab2c30803c5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/878c3c11477b31c3f647ae29a7fc562806d6091d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/878c3c11477b31c3f647ae29a7fc562806d6091d
index d46b0c34e..d46b0c34e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/878c3c11477b31c3f647ae29a7fc562806d6091d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/878c3c11477b31c3f647ae29a7fc562806d6091d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8792b62ec281f52aaaa65c2786eb5d209568d701 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8792b62ec281f52aaaa65c2786eb5d209568d701
index 118cddcce..118cddcce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8792b62ec281f52aaaa65c2786eb5d209568d701
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8792b62ec281f52aaaa65c2786eb5d209568d701
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/87aa0d1b4c2e8bfbde61dd56e9ab7ff6079bd05b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/87aa0d1b4c2e8bfbde61dd56e9ab7ff6079bd05b
index 966f2c8de..966f2c8de 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/87aa0d1b4c2e8bfbde61dd56e9ab7ff6079bd05b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/87aa0d1b4c2e8bfbde61dd56e9ab7ff6079bd05b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/880d08952ec1332aac50f38de93cf0050de93a51 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/880d08952ec1332aac50f38de93cf0050de93a51
index c6e757c7a..c6e757c7a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/880d08952ec1332aac50f38de93cf0050de93a51
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/880d08952ec1332aac50f38de93cf0050de93a51
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/881c9633a378132d999555c17f08be8ac87b5ec0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/881c9633a378132d999555c17f08be8ac87b5ec0
index 05856f512..05856f512 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/881c9633a378132d999555c17f08be8ac87b5ec0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/881c9633a378132d999555c17f08be8ac87b5ec0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8849cd4ce4cb5d843a2920bca651bec7add5fd41 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8849cd4ce4cb5d843a2920bca651bec7add5fd41
index 00c980c25..00c980c25 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8849cd4ce4cb5d843a2920bca651bec7add5fd41
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8849cd4ce4cb5d843a2920bca651bec7add5fd41
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/88821e3f314f16180de0aac148185375581db4ed b/src/web/server/h2o/libh2o/fuzz/http1-corpus/88821e3f314f16180de0aac148185375581db4ed
index afe4935d9..afe4935d9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/88821e3f314f16180de0aac148185375581db4ed
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/88821e3f314f16180de0aac148185375581db4ed
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8909bf64ebddf987231e0709a109106b35c7fa56 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8909bf64ebddf987231e0709a109106b35c7fa56
index 6cbfbc4b6..6cbfbc4b6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8909bf64ebddf987231e0709a109106b35c7fa56
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8909bf64ebddf987231e0709a109106b35c7fa56
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/896782eea85ebe0830b1b1b095e9f6c814df142b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/896782eea85ebe0830b1b1b095e9f6c814df142b
index 8a83c6f6e..8a83c6f6e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/896782eea85ebe0830b1b1b095e9f6c814df142b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/896782eea85ebe0830b1b1b095e9f6c814df142b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/896a622519d9602e95fe692a8b7bf651855c4066 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/896a622519d9602e95fe692a8b7bf651855c4066
index 947eb9676..947eb9676 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/896a622519d9602e95fe692a8b7bf651855c4066
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/896a622519d9602e95fe692a8b7bf651855c4066
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/89b004136a7c7443091f0be44310c2bfd2562075 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/89b004136a7c7443091f0be44310c2bfd2562075
index d475951f2..d475951f2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/89b004136a7c7443091f0be44310c2bfd2562075
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/89b004136a7c7443091f0be44310c2bfd2562075
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/89faa9dd023d315072f1a3b7caeea30149b3941e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/89faa9dd023d315072f1a3b7caeea30149b3941e
index 54428922a..54428922a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/89faa9dd023d315072f1a3b7caeea30149b3941e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/89faa9dd023d315072f1a3b7caeea30149b3941e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8a2e4d1e737bc727dd23d3c1d71c51e66085a8af b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a2e4d1e737bc727dd23d3c1d71c51e66085a8af
index 40b831e19..40b831e19 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8a2e4d1e737bc727dd23d3c1d71c51e66085a8af
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a2e4d1e737bc727dd23d3c1d71c51e66085a8af
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8a36f6d9ea1710c3819833e3ae2b93053dba5602 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a36f6d9ea1710c3819833e3ae2b93053dba5602
index 0bed560f7..0bed560f7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8a36f6d9ea1710c3819833e3ae2b93053dba5602
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a36f6d9ea1710c3819833e3ae2b93053dba5602
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8a3d775fdcd8eb044323b5c77976ab1579bd68bb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a3d775fdcd8eb044323b5c77976ab1579bd68bb
index 8bf8bf437..8bf8bf437 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8a3d775fdcd8eb044323b5c77976ab1579bd68bb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a3d775fdcd8eb044323b5c77976ab1579bd68bb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8a50457cd8f4a5e9a777194d9dce994187e868cd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a50457cd8f4a5e9a777194d9dce994187e868cd
index 19a2ae8cf..19a2ae8cf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8a50457cd8f4a5e9a777194d9dce994187e868cd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a50457cd8f4a5e9a777194d9dce994187e868cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8a581b38db19b3da7f3876a19de1cb288bb69011 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a581b38db19b3da7f3876a19de1cb288bb69011
index b1f06fe19..b1f06fe19 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8a581b38db19b3da7f3876a19de1cb288bb69011
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a581b38db19b3da7f3876a19de1cb288bb69011
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8a722cd5ef3a8b07174e0b4998abcc9ee86fc545 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a722cd5ef3a8b07174e0b4998abcc9ee86fc545
index 69e7620bd..69e7620bd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8a722cd5ef3a8b07174e0b4998abcc9ee86fc545
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8a722cd5ef3a8b07174e0b4998abcc9ee86fc545
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b01690b7439d3e0b4db20e65ad2c22b328562f7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b01690b7439d3e0b4db20e65ad2c22b328562f7
index 5820d202e..5820d202e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b01690b7439d3e0b4db20e65ad2c22b328562f7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b01690b7439d3e0b4db20e65ad2c22b328562f7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b053cd12f3a21313c48a7569b379b417aa73383 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b053cd12f3a21313c48a7569b379b417aa73383
index c3b2a8129..c3b2a8129 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b053cd12f3a21313c48a7569b379b417aa73383
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b053cd12f3a21313c48a7569b379b417aa73383
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b091cb0ebf7cd816a20e73e128f67b8e483ed3d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b091cb0ebf7cd816a20e73e128f67b8e483ed3d
index 7ce67e79b..7ce67e79b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b091cb0ebf7cd816a20e73e128f67b8e483ed3d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b091cb0ebf7cd816a20e73e128f67b8e483ed3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b22f23cdced7778007d1682a70bab3d93ebf32e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b22f23cdced7778007d1682a70bab3d93ebf32e
index 0ecb7dc98..0ecb7dc98 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b22f23cdced7778007d1682a70bab3d93ebf32e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b22f23cdced7778007d1682a70bab3d93ebf32e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b51d48f5de5def3ba4211a0529e3f10d1e14840 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b51d48f5de5def3ba4211a0529e3f10d1e14840
index 8d271a78f..8d271a78f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b51d48f5de5def3ba4211a0529e3f10d1e14840
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b51d48f5de5def3ba4211a0529e3f10d1e14840
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b630200dd406be6062fd3e37aaa588c57131ffb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b630200dd406be6062fd3e37aaa588c57131ffb
index baa43f063..baa43f063 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b630200dd406be6062fd3e37aaa588c57131ffb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b630200dd406be6062fd3e37aaa588c57131ffb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b656bada1711207b9298e526c8c36ac26dc204e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b656bada1711207b9298e526c8c36ac26dc204e
index c6db8f597..c6db8f597 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b656bada1711207b9298e526c8c36ac26dc204e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b656bada1711207b9298e526c8c36ac26dc204e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b728461f55557504e85a16067df2dddaa18025a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b728461f55557504e85a16067df2dddaa18025a
index 8e9ed79c3..8e9ed79c3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b728461f55557504e85a16067df2dddaa18025a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b728461f55557504e85a16067df2dddaa18025a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b7e46efdd00bfd74a0c301a1e17f22c5771631f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b7e46efdd00bfd74a0c301a1e17f22c5771631f
index e8309e1d3..e8309e1d3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b7e46efdd00bfd74a0c301a1e17f22c5771631f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b7e46efdd00bfd74a0c301a1e17f22c5771631f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b7f0ac511bb4619724bf7ea65811f050f77029b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b7f0ac511bb4619724bf7ea65811f050f77029b
index a1222e987..a1222e987 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b7f0ac511bb4619724bf7ea65811f050f77029b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b7f0ac511bb4619724bf7ea65811f050f77029b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8b98f58c54576e8109929cb0b08d20b0ac576a3e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b98f58c54576e8109929cb0b08d20b0ac576a3e
index 7180f05c3..7180f05c3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8b98f58c54576e8109929cb0b08d20b0ac576a3e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8b98f58c54576e8109929cb0b08d20b0ac576a3e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8c1ce89ef95dc8fcacd91e14e9241b250e9fc5a0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c1ce89ef95dc8fcacd91e14e9241b250e9fc5a0
index 49a8fb602..49a8fb602 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8c1ce89ef95dc8fcacd91e14e9241b250e9fc5a0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c1ce89ef95dc8fcacd91e14e9241b250e9fc5a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8c51d3297dd8e16f08df46f5ad2fec029b5f3e48 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c51d3297dd8e16f08df46f5ad2fec029b5f3e48
index f6aa80e30..f6aa80e30 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8c51d3297dd8e16f08df46f5ad2fec029b5f3e48
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c51d3297dd8e16f08df46f5ad2fec029b5f3e48
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8c5c026bd04dc23f5bb1feac31de198f3e14cba6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c5c026bd04dc23f5bb1feac31de198f3e14cba6
index 22a50f4a5..22a50f4a5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8c5c026bd04dc23f5bb1feac31de198f3e14cba6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c5c026bd04dc23f5bb1feac31de198f3e14cba6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8c6fd4aac5e5321c3974f1c708bdc048ade8dab6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c6fd4aac5e5321c3974f1c708bdc048ade8dab6
index 1a8d890c2..1a8d890c2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8c6fd4aac5e5321c3974f1c708bdc048ade8dab6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c6fd4aac5e5321c3974f1c708bdc048ade8dab6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8c7a5dbe73321fb0f675a480c5f638bf81046b8b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c7a5dbe73321fb0f675a480c5f638bf81046b8b
index 9e27a7300..9e27a7300 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8c7a5dbe73321fb0f675a480c5f638bf81046b8b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c7a5dbe73321fb0f675a480c5f638bf81046b8b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8c93c7febda3ceb2b297c3c9d344d0cdaa9fb662 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c93c7febda3ceb2b297c3c9d344d0cdaa9fb662
index f641cfa3b..f641cfa3b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8c93c7febda3ceb2b297c3c9d344d0cdaa9fb662
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8c93c7febda3ceb2b297c3c9d344d0cdaa9fb662
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8cc59b9ebd2e926653f006d5c734957a94e0de7e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8cc59b9ebd2e926653f006d5c734957a94e0de7e
index 156aa7425..156aa7425 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8cc59b9ebd2e926653f006d5c734957a94e0de7e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8cc59b9ebd2e926653f006d5c734957a94e0de7e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8ce521cbaaa89717d33e1ecac1a095f9111df103 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ce521cbaaa89717d33e1ecac1a095f9111df103
index 3c250a8cb..3c250a8cb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8ce521cbaaa89717d33e1ecac1a095f9111df103
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ce521cbaaa89717d33e1ecac1a095f9111df103
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8cecf72fa104d9a9c72fe7ee394b0c31616d2846 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8cecf72fa104d9a9c72fe7ee394b0c31616d2846
index 64227d81f..64227d81f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8cecf72fa104d9a9c72fe7ee394b0c31616d2846
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8cecf72fa104d9a9c72fe7ee394b0c31616d2846
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8cf07c52feedf432f1a50eaa04612d4a6fc562e7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8cf07c52feedf432f1a50eaa04612d4a6fc562e7
index 59ebbd168..59ebbd168 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8cf07c52feedf432f1a50eaa04612d4a6fc562e7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8cf07c52feedf432f1a50eaa04612d4a6fc562e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8d3a1c449aa1781d10eae5cbea5f68e3e7e08659 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d3a1c449aa1781d10eae5cbea5f68e3e7e08659
index 4065424df..4065424df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8d3a1c449aa1781d10eae5cbea5f68e3e7e08659
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d3a1c449aa1781d10eae5cbea5f68e3e7e08659
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8d5585dfefdad3be28fd5798c90b7fa41e985f67 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d5585dfefdad3be28fd5798c90b7fa41e985f67
index 5c234ae2a..5c234ae2a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8d5585dfefdad3be28fd5798c90b7fa41e985f67
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d5585dfefdad3be28fd5798c90b7fa41e985f67
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8d7b721b6e1fa5713ac5f5575dd2a23103827ec0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d7b721b6e1fa5713ac5f5575dd2a23103827ec0
index 3221e71bf..3221e71bf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8d7b721b6e1fa5713ac5f5575dd2a23103827ec0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d7b721b6e1fa5713ac5f5575dd2a23103827ec0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8d7bf572f05f1e59e2af8ea472ae954203cac0c9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d7bf572f05f1e59e2af8ea472ae954203cac0c9
index 4ec1860d7..4ec1860d7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8d7bf572f05f1e59e2af8ea472ae954203cac0c9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d7bf572f05f1e59e2af8ea472ae954203cac0c9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8d90c8392849715d57cf4e6f528ec7e9933e7818 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d90c8392849715d57cf4e6f528ec7e9933e7818
index 1c7aef126..1c7aef126 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8d90c8392849715d57cf4e6f528ec7e9933e7818
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8d90c8392849715d57cf4e6f528ec7e9933e7818
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8da0713cc86ae7ba28ad5f6a465ec5f9f7e08707 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8da0713cc86ae7ba28ad5f6a465ec5f9f7e08707
index 782b810e9..782b810e9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8da0713cc86ae7ba28ad5f6a465ec5f9f7e08707
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8da0713cc86ae7ba28ad5f6a465ec5f9f7e08707
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8da5555b68cf4de3a317ed3c8846c892fc249790 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8da5555b68cf4de3a317ed3c8846c892fc249790
index 969aaad39..969aaad39 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8da5555b68cf4de3a317ed3c8846c892fc249790
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8da5555b68cf4de3a317ed3c8846c892fc249790
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8df5d7c917a83cf5ede0e9dc8c95f5db7cb844ab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8df5d7c917a83cf5ede0e9dc8c95f5db7cb844ab
index e0fb9afaa..e0fb9afaa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8df5d7c917a83cf5ede0e9dc8c95f5db7cb844ab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8df5d7c917a83cf5ede0e9dc8c95f5db7cb844ab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8e3777e075ad745dce2450c8b9186f1f0e83858b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e3777e075ad745dce2450c8b9186f1f0e83858b
index c5eaff29f..c5eaff29f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8e3777e075ad745dce2450c8b9186f1f0e83858b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e3777e075ad745dce2450c8b9186f1f0e83858b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8e5ac7293e1a6073498ff108cc6f7536496ed7b4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e5ac7293e1a6073498ff108cc6f7536496ed7b4
index 535893d17..535893d17 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8e5ac7293e1a6073498ff108cc6f7536496ed7b4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e5ac7293e1a6073498ff108cc6f7536496ed7b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8e64d097e27d4b7d5ba0fc676de1973fb45cfd4d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e64d097e27d4b7d5ba0fc676de1973fb45cfd4d
index c2ce11edf..c2ce11edf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8e64d097e27d4b7d5ba0fc676de1973fb45cfd4d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e64d097e27d4b7d5ba0fc676de1973fb45cfd4d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8e946a8874d5a41ca38c1f1e88468f0d0b4e1a88 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e946a8874d5a41ca38c1f1e88468f0d0b4e1a88
index 5d846bc70..5d846bc70 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8e946a8874d5a41ca38c1f1e88468f0d0b4e1a88
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8e946a8874d5a41ca38c1f1e88468f0d0b4e1a88
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8ea6aa4fbfff447a0f63f8f56e67abac612741f3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ea6aa4fbfff447a0f63f8f56e67abac612741f3
index b7aedb181..b7aedb181 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8ea6aa4fbfff447a0f63f8f56e67abac612741f3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ea6aa4fbfff447a0f63f8f56e67abac612741f3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8ecf246610c1c9bb9eec8670eeb99340652619e5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ecf246610c1c9bb9eec8670eeb99340652619e5
index 98bfda66b..98bfda66b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8ecf246610c1c9bb9eec8670eeb99340652619e5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ecf246610c1c9bb9eec8670eeb99340652619e5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5
index 8279be9d8..8279be9d8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8eddf77ba6326b6369d1d1ec93d2bff3be621802 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8eddf77ba6326b6369d1d1ec93d2bff3be621802
index f9828742d..f9828742d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8eddf77ba6326b6369d1d1ec93d2bff3be621802
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8eddf77ba6326b6369d1d1ec93d2bff3be621802
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8ef22d5051e6dc184dea0a0c3ff4424973c02bbf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ef22d5051e6dc184dea0a0c3ff4424973c02bbf
index a1ada5bc4..a1ada5bc4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8ef22d5051e6dc184dea0a0c3ff4424973c02bbf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ef22d5051e6dc184dea0a0c3ff4424973c02bbf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8ef2a6f9f7b5a6890907a7c283abcf58cd29bc7c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ef2a6f9f7b5a6890907a7c283abcf58cd29bc7c
index b7977da32..b7977da32 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8ef2a6f9f7b5a6890907a7c283abcf58cd29bc7c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8ef2a6f9f7b5a6890907a7c283abcf58cd29bc7c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8f197149c605f4ffb3f7fcdbf246ed7832f97d18 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f197149c605f4ffb3f7fcdbf246ed7832f97d18
index f43456865..f43456865 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8f197149c605f4ffb3f7fcdbf246ed7832f97d18
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f197149c605f4ffb3f7fcdbf246ed7832f97d18
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8f24a7e0169851c5aea68a52fa4d8fdbabf6d5b8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f24a7e0169851c5aea68a52fa4d8fdbabf6d5b8
index 871fdf3a9..871fdf3a9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8f24a7e0169851c5aea68a52fa4d8fdbabf6d5b8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f24a7e0169851c5aea68a52fa4d8fdbabf6d5b8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8f36e39855cbc7258d2485b1235d40fe818950d2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f36e39855cbc7258d2485b1235d40fe818950d2
index c829c2d8d..c829c2d8d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8f36e39855cbc7258d2485b1235d40fe818950d2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f36e39855cbc7258d2485b1235d40fe818950d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8f632553314a2f94d9e333e7996017f70f411bea b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f632553314a2f94d9e333e7996017f70f411bea
index 26d9faab1..26d9faab1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8f632553314a2f94d9e333e7996017f70f411bea
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8f632553314a2f94d9e333e7996017f70f411bea
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8fa2816b9c03456a927885376b4bff48feab6f95 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8fa2816b9c03456a927885376b4bff48feab6f95
index 9702ddce7..9702ddce7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8fa2816b9c03456a927885376b4bff48feab6f95
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8fa2816b9c03456a927885376b4bff48feab6f95
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8fdc76b9f90d30356ba74dd4d4cb2fbd7c1e28b7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8fdc76b9f90d30356ba74dd4d4cb2fbd7c1e28b7
index 14e8418c2..14e8418c2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8fdc76b9f90d30356ba74dd4d4cb2fbd7c1e28b7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8fdc76b9f90d30356ba74dd4d4cb2fbd7c1e28b7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/8fdeab67c28de429ade78264fb7c4c44a619e15d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8fdeab67c28de429ade78264fb7c4c44a619e15d
index ce3ff6fe9..ce3ff6fe9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/8fdeab67c28de429ade78264fb7c4c44a619e15d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/8fdeab67c28de429ade78264fb7c4c44a619e15d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/90114b5954eaa4dd842a4b9309d5328e9fc93161 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/90114b5954eaa4dd842a4b9309d5328e9fc93161
index 326878fb8..326878fb8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/90114b5954eaa4dd842a4b9309d5328e9fc93161
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/90114b5954eaa4dd842a4b9309d5328e9fc93161
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9016406b02b54d70b43d8fb6527e4f0cedb096af b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9016406b02b54d70b43d8fb6527e4f0cedb096af
index c9eedb6ee..c9eedb6ee 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9016406b02b54d70b43d8fb6527e4f0cedb096af
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9016406b02b54d70b43d8fb6527e4f0cedb096af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9043c262a99deb5175e919ed6a7659ccb1fb3771 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9043c262a99deb5175e919ed6a7659ccb1fb3771
index 0a8b97dd7..0a8b97dd7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9043c262a99deb5175e919ed6a7659ccb1fb3771
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9043c262a99deb5175e919ed6a7659ccb1fb3771
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/90560a01b19d13bacf2ffdedb66073e1adb63a11 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/90560a01b19d13bacf2ffdedb66073e1adb63a11
index feeb6104e..feeb6104e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/90560a01b19d13bacf2ffdedb66073e1adb63a11
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/90560a01b19d13bacf2ffdedb66073e1adb63a11
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/905d966d03cb48a4ed6075e73dd43117064537e0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/905d966d03cb48a4ed6075e73dd43117064537e0
index 68ec5cca2..68ec5cca2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/905d966d03cb48a4ed6075e73dd43117064537e0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/905d966d03cb48a4ed6075e73dd43117064537e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/913e97d729a7d567569ff794d6525bd39a103741 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/913e97d729a7d567569ff794d6525bd39a103741
index e87e8a887..e87e8a887 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/913e97d729a7d567569ff794d6525bd39a103741
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/913e97d729a7d567569ff794d6525bd39a103741
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/914106e0b618acecdce0ef9e1013c7870c5b0428 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/914106e0b618acecdce0ef9e1013c7870c5b0428
index 997831ac8..997831ac8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/914106e0b618acecdce0ef9e1013c7870c5b0428
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/914106e0b618acecdce0ef9e1013c7870c5b0428
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/91715a0be19b756a24310346ac19f60d1f09135b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/91715a0be19b756a24310346ac19f60d1f09135b
index 1a918c520..1a918c520 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/91715a0be19b756a24310346ac19f60d1f09135b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/91715a0be19b756a24310346ac19f60d1f09135b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/917864f8227ab10627320593d3d91a218b3d6fb7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/917864f8227ab10627320593d3d91a218b3d6fb7
index 1e52bdb4e..1e52bdb4e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/917864f8227ab10627320593d3d91a218b3d6fb7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/917864f8227ab10627320593d3d91a218b3d6fb7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/91b76871d9c2667598329de7cc75d0fd1a8249d3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/91b76871d9c2667598329de7cc75d0fd1a8249d3
index ddefccd41..ddefccd41 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/91b76871d9c2667598329de7cc75d0fd1a8249d3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/91b76871d9c2667598329de7cc75d0fd1a8249d3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9228a89e4b4b340e585c69f4009cbb9484e952fd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9228a89e4b4b340e585c69f4009cbb9484e952fd
index ba6419265..ba6419265 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9228a89e4b4b340e585c69f4009cbb9484e952fd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9228a89e4b4b340e585c69f4009cbb9484e952fd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/926848957cfabd00ebf2ce515f1f8c634e621eba b/src/web/server/h2o/libh2o/fuzz/http1-corpus/926848957cfabd00ebf2ce515f1f8c634e621eba
index 1c146a20e..1c146a20e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/926848957cfabd00ebf2ce515f1f8c634e621eba
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/926848957cfabd00ebf2ce515f1f8c634e621eba
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/92b278ae9389267ae98d3e78e6037ac1fe14acac b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92b278ae9389267ae98d3e78e6037ac1fe14acac
index 057180eb5..057180eb5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/92b278ae9389267ae98d3e78e6037ac1fe14acac
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92b278ae9389267ae98d3e78e6037ac1fe14acac
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/92ba3df1c6f9597c35303ab87dfac88c247f4f65 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92ba3df1c6f9597c35303ab87dfac88c247f4f65
index 8fc19624a..8fc19624a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/92ba3df1c6f9597c35303ab87dfac88c247f4f65
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92ba3df1c6f9597c35303ab87dfac88c247f4f65
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/92c5161e2ddb4b4d4a0a790a1808134d7fda742e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92c5161e2ddb4b4d4a0a790a1808134d7fda742e
index ddf1edceb..ddf1edceb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/92c5161e2ddb4b4d4a0a790a1808134d7fda742e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92c5161e2ddb4b4d4a0a790a1808134d7fda742e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/92e66e041b6d6b09ca3a6a302c71b20495090645 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92e66e041b6d6b09ca3a6a302c71b20495090645
index 621dea9ad..621dea9ad 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/92e66e041b6d6b09ca3a6a302c71b20495090645
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92e66e041b6d6b09ca3a6a302c71b20495090645
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/92fedb4375307dfab20fd255a721ed52697b34ad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92fedb4375307dfab20fd255a721ed52697b34ad
index 44a2b831d..44a2b831d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/92fedb4375307dfab20fd255a721ed52697b34ad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/92fedb4375307dfab20fd255a721ed52697b34ad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/936ba2471ba89899db1bee43e1cf784836d92ebd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/936ba2471ba89899db1bee43e1cf784836d92ebd
index 1705a54e6..1705a54e6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/936ba2471ba89899db1bee43e1cf784836d92ebd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/936ba2471ba89899db1bee43e1cf784836d92ebd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/937396ef1aebe7dc4ef21a169511000562a365fe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/937396ef1aebe7dc4ef21a169511000562a365fe
index 52f14a107..52f14a107 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/937396ef1aebe7dc4ef21a169511000562a365fe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/937396ef1aebe7dc4ef21a169511000562a365fe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9378355bff3c42e78ec8c5344dbfaee9023e98c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9378355bff3c42e78ec8c5344dbfaee9023e98c2
index 0c99b68bd..0c99b68bd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9378355bff3c42e78ec8c5344dbfaee9023e98c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9378355bff3c42e78ec8c5344dbfaee9023e98c2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/93934c7c3accaed4f7ad77dc85e8f88458a2886b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/93934c7c3accaed4f7ad77dc85e8f88458a2886b
index ef7fa0c70..ef7fa0c70 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/93934c7c3accaed4f7ad77dc85e8f88458a2886b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/93934c7c3accaed4f7ad77dc85e8f88458a2886b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/939fb6e9b8d4424379d61c9b054f14bbcc7d018b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/939fb6e9b8d4424379d61c9b054f14bbcc7d018b
index 749c9d854..749c9d854 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/939fb6e9b8d4424379d61c9b054f14bbcc7d018b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/939fb6e9b8d4424379d61c9b054f14bbcc7d018b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/93c2b7328db7165f9a099a4aa9e0a559f45bc879 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/93c2b7328db7165f9a099a4aa9e0a559f45bc879
index 3c0d660a5..3c0d660a5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/93c2b7328db7165f9a099a4aa9e0a559f45bc879
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/93c2b7328db7165f9a099a4aa9e0a559f45bc879
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/93d2d20167714f4dc4d1b69b4f60561722990180 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/93d2d20167714f4dc4d1b69b4f60561722990180
index 461808f91..461808f91 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/93d2d20167714f4dc4d1b69b4f60561722990180
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/93d2d20167714f4dc4d1b69b4f60561722990180
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/940f670c6c19fccfe4ddcab95c9ce746e473e368 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/940f670c6c19fccfe4ddcab95c9ce746e473e368
index 90bebeb75..90bebeb75 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/940f670c6c19fccfe4ddcab95c9ce746e473e368
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/940f670c6c19fccfe4ddcab95c9ce746e473e368
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/944609e816d3635bb4949644f925dd2ec754af48 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/944609e816d3635bb4949644f925dd2ec754af48
index 81961c57d..81961c57d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/944609e816d3635bb4949644f925dd2ec754af48
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/944609e816d3635bb4949644f925dd2ec754af48
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/94a18f696861e435bb3ae9e19777f29b494a8673 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/94a18f696861e435bb3ae9e19777f29b494a8673
index 0fa9bcbcd..0fa9bcbcd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/94a18f696861e435bb3ae9e19777f29b494a8673
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/94a18f696861e435bb3ae9e19777f29b494a8673
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/94d07bf670a1f0cc9798009a1473562c64edd5f7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/94d07bf670a1f0cc9798009a1473562c64edd5f7
index f817ed072..f817ed072 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/94d07bf670a1f0cc9798009a1473562c64edd5f7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/94d07bf670a1f0cc9798009a1473562c64edd5f7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9506174f9692274bbb77ac355ec50d13cb46da61 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9506174f9692274bbb77ac355ec50d13cb46da61
index 817370c1a..817370c1a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9506174f9692274bbb77ac355ec50d13cb46da61
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9506174f9692274bbb77ac355ec50d13cb46da61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/952a342bdbfe3f6be0bac64429df444b5cb8c40f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/952a342bdbfe3f6be0bac64429df444b5cb8c40f
index 2be07482f..2be07482f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/952a342bdbfe3f6be0bac64429df444b5cb8c40f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/952a342bdbfe3f6be0bac64429df444b5cb8c40f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/953b611aa942ce619d6501e423c5cf6c14f316a6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/953b611aa942ce619d6501e423c5cf6c14f316a6
index dfdbe9a05..dfdbe9a05 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/953b611aa942ce619d6501e423c5cf6c14f316a6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/953b611aa942ce619d6501e423c5cf6c14f316a6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/95b09601b384c61a733a0559470bcba9a89da569 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/95b09601b384c61a733a0559470bcba9a89da569
index 1fc2f9e8e..1fc2f9e8e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/95b09601b384c61a733a0559470bcba9a89da569
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/95b09601b384c61a733a0559470bcba9a89da569
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/95c1b93936685bffc922ed70c158aa64d4384dbe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/95c1b93936685bffc922ed70c158aa64d4384dbe
index 37bba073e..37bba073e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/95c1b93936685bffc922ed70c158aa64d4384dbe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/95c1b93936685bffc922ed70c158aa64d4384dbe
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/95fdf55a47f444995658453d62a2d35b732571b5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/95fdf55a47f444995658453d62a2d35b732571b5
index 7fb8f4d10..7fb8f4d10 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/95fdf55a47f444995658453d62a2d35b732571b5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/95fdf55a47f444995658453d62a2d35b732571b5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/96195f9c9f9846b196769d31af5d98e8df6199d4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96195f9c9f9846b196769d31af5d98e8df6199d4
index 8fd0ff42a..8fd0ff42a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/96195f9c9f9846b196769d31af5d98e8df6199d4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96195f9c9f9846b196769d31af5d98e8df6199d4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/96247fa0c6f43a71b2e34515d9cb02ebcba3ef6b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96247fa0c6f43a71b2e34515d9cb02ebcba3ef6b
index 841373168..841373168 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/96247fa0c6f43a71b2e34515d9cb02ebcba3ef6b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96247fa0c6f43a71b2e34515d9cb02ebcba3ef6b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/964a45b3ae315ebcea5fb4e7bbd78df5dafc2a92 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/964a45b3ae315ebcea5fb4e7bbd78df5dafc2a92
index 7ff4c5e94..7ff4c5e94 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/964a45b3ae315ebcea5fb4e7bbd78df5dafc2a92
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/964a45b3ae315ebcea5fb4e7bbd78df5dafc2a92
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/967543b03a848416eaf5cd0c73a695dabb59acb6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/967543b03a848416eaf5cd0c73a695dabb59acb6
index c0451ad8e..c0451ad8e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/967543b03a848416eaf5cd0c73a695dabb59acb6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/967543b03a848416eaf5cd0c73a695dabb59acb6
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/967c8c5252dd3dc01ba41b7a421ba1eff0b11107 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/967c8c5252dd3dc01ba41b7a421ba1eff0b11107
index ef3185b2b..ef3185b2b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/967c8c5252dd3dc01ba41b7a421ba1eff0b11107
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/967c8c5252dd3dc01ba41b7a421ba1eff0b11107
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/968b89612161b08e8021d7fdfe1e6f55f5a24a63 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/968b89612161b08e8021d7fdfe1e6f55f5a24a63
index 50bbbf0d7..50bbbf0d7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/968b89612161b08e8021d7fdfe1e6f55f5a24a63
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/968b89612161b08e8021d7fdfe1e6f55f5a24a63
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/96a03ffa6dd8b37758f54375865076386dbad0fa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96a03ffa6dd8b37758f54375865076386dbad0fa
index 0645737bd..0645737bd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/96a03ffa6dd8b37758f54375865076386dbad0fa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96a03ffa6dd8b37758f54375865076386dbad0fa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/96a08b9b0f8f6ea629482bae7ff3227ac82086a4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96a08b9b0f8f6ea629482bae7ff3227ac82086a4
index 64df1150d..64df1150d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/96a08b9b0f8f6ea629482bae7ff3227ac82086a4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96a08b9b0f8f6ea629482bae7ff3227ac82086a4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/96a7ce3523361d10867e83696ddf9057c942d797 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96a7ce3523361d10867e83696ddf9057c942d797
index e9bd52e56..e9bd52e56 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/96a7ce3523361d10867e83696ddf9057c942d797
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96a7ce3523361d10867e83696ddf9057c942d797
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/96e4615b052e4a46ceb913fcbd375a5fcea69e00 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96e4615b052e4a46ceb913fcbd375a5fcea69e00
index c1659c64c..c1659c64c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/96e4615b052e4a46ceb913fcbd375a5fcea69e00
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/96e4615b052e4a46ceb913fcbd375a5fcea69e00
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/970353a3902f1ef7b790bc3a25a6d5032b39f436 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/970353a3902f1ef7b790bc3a25a6d5032b39f436
index 4f0596fee..4f0596fee 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/970353a3902f1ef7b790bc3a25a6d5032b39f436
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/970353a3902f1ef7b790bc3a25a6d5032b39f436
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/970dfddc67e312257dcb6f490a093374bd46cd84 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/970dfddc67e312257dcb6f490a093374bd46cd84
index a40b92a8b..a40b92a8b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/970dfddc67e312257dcb6f490a093374bd46cd84
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/970dfddc67e312257dcb6f490a093374bd46cd84
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/975b83c84fff8dab82136d8e30f616e6af8ff0a6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/975b83c84fff8dab82136d8e30f616e6af8ff0a6
index 0bebca15d..0bebca15d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/975b83c84fff8dab82136d8e30f616e6af8ff0a6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/975b83c84fff8dab82136d8e30f616e6af8ff0a6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/978eb3414957021ac8d5a1669d5599b5533e8e9d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/978eb3414957021ac8d5a1669d5599b5533e8e9d
index c13e8328b..c13e8328b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/978eb3414957021ac8d5a1669d5599b5533e8e9d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/978eb3414957021ac8d5a1669d5599b5533e8e9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/979fb98b41907ab2a2e26342257798ab06d79d8b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/979fb98b41907ab2a2e26342257798ab06d79d8b
index 17abe85d6..17abe85d6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/979fb98b41907ab2a2e26342257798ab06d79d8b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/979fb98b41907ab2a2e26342257798ab06d79d8b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/97c44e69d084a133d96406c4398dd39114d1e16b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97c44e69d084a133d96406c4398dd39114d1e16b
index 1a9667bcb..1a9667bcb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/97c44e69d084a133d96406c4398dd39114d1e16b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97c44e69d084a133d96406c4398dd39114d1e16b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/97d09ccc91f475ac2a6079ef460310340ba1d2f1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97d09ccc91f475ac2a6079ef460310340ba1d2f1
index 401c00cbd..401c00cbd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/97d09ccc91f475ac2a6079ef460310340ba1d2f1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97d09ccc91f475ac2a6079ef460310340ba1d2f1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/97d7e457fc064368e826f17a35a124ac6307166f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97d7e457fc064368e826f17a35a124ac6307166f
index c2e1e5f6f..c2e1e5f6f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/97d7e457fc064368e826f17a35a124ac6307166f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97d7e457fc064368e826f17a35a124ac6307166f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/97ed12879622977bd7607399e5b966ff8a5ff2f5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97ed12879622977bd7607399e5b966ff8a5ff2f5
index 440e6da57..440e6da57 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/97ed12879622977bd7607399e5b966ff8a5ff2f5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97ed12879622977bd7607399e5b966ff8a5ff2f5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/97f7440c78e70789647b3541912051d9bd13b679 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97f7440c78e70789647b3541912051d9bd13b679
index 9534ccc70..9534ccc70 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/97f7440c78e70789647b3541912051d9bd13b679
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/97f7440c78e70789647b3541912051d9bd13b679
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/980b7f85937494f71fa09ad63afb46f02d935b57 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/980b7f85937494f71fa09ad63afb46f02d935b57
index ef2a36b8b..ef2a36b8b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/980b7f85937494f71fa09ad63afb46f02d935b57
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/980b7f85937494f71fa09ad63afb46f02d935b57
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/982094d9ce6a83c6470fffa728cb07c160c6d6cd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/982094d9ce6a83c6470fffa728cb07c160c6d6cd
index 5132c9c4d..5132c9c4d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/982094d9ce6a83c6470fffa728cb07c160c6d6cd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/982094d9ce6a83c6470fffa728cb07c160c6d6cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/983907116c9e3d3405a0915fea6f0b195cdba900 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/983907116c9e3d3405a0915fea6f0b195cdba900
index 682f5af7d..682f5af7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/983907116c9e3d3405a0915fea6f0b195cdba900
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/983907116c9e3d3405a0915fea6f0b195cdba900
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9869042fa5f028fe5b9f992bfe9e4019a8620942 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9869042fa5f028fe5b9f992bfe9e4019a8620942
index 0bb33dff7..0bb33dff7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9869042fa5f028fe5b9f992bfe9e4019a8620942
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9869042fa5f028fe5b9f992bfe9e4019a8620942
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9881c795c0c5acac898f3e47fcd0436afffa818b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9881c795c0c5acac898f3e47fcd0436afffa818b
index c7f060ff8..c7f060ff8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9881c795c0c5acac898f3e47fcd0436afffa818b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9881c795c0c5acac898f3e47fcd0436afffa818b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/98dbf423db38079a0337fadfb792ca8b1999bd8d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/98dbf423db38079a0337fadfb792ca8b1999bd8d
index 9a76f9c93..9a76f9c93 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/98dbf423db38079a0337fadfb792ca8b1999bd8d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/98dbf423db38079a0337fadfb792ca8b1999bd8d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9904621b0d87f5a5747d7c702537af4589285ca8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9904621b0d87f5a5747d7c702537af4589285ca8
index 6b07bb46a..6b07bb46a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9904621b0d87f5a5747d7c702537af4589285ca8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9904621b0d87f5a5747d7c702537af4589285ca8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/99072467428ea789f9b8ebd3075f511727a97f7f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/99072467428ea789f9b8ebd3075f511727a97f7f
index e9f7d587d..e9f7d587d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/99072467428ea789f9b8ebd3075f511727a97f7f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/99072467428ea789f9b8ebd3075f511727a97f7f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/997265f80ade398b4f64bd4ecb0628820d233a4c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/997265f80ade398b4f64bd4ecb0628820d233a4c
index 7b850ea3b..7b850ea3b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/997265f80ade398b4f64bd4ecb0628820d233a4c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/997265f80ade398b4f64bd4ecb0628820d233a4c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9973bab4cc71662d8bb7981aa40942ff539f87df b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9973bab4cc71662d8bb7981aa40942ff539f87df
index aecc9e47b..aecc9e47b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9973bab4cc71662d8bb7981aa40942ff539f87df
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9973bab4cc71662d8bb7981aa40942ff539f87df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9991ab7e9222bcdea2a8f7ac2b4952a4d5e15909 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9991ab7e9222bcdea2a8f7ac2b4952a4d5e15909
index 065a7598d..065a7598d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9991ab7e9222bcdea2a8f7ac2b4952a4d5e15909
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9991ab7e9222bcdea2a8f7ac2b4952a4d5e15909
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9a0069fad9482f43891966d688db04940c952f55 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a0069fad9482f43891966d688db04940c952f55
index 4cc2a349c..4cc2a349c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9a0069fad9482f43891966d688db04940c952f55
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a0069fad9482f43891966d688db04940c952f55
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9a2aafe86532237001cc39174fc8239786ef7630 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a2aafe86532237001cc39174fc8239786ef7630
index 449b970e8..449b970e8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9a2aafe86532237001cc39174fc8239786ef7630
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a2aafe86532237001cc39174fc8239786ef7630
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9a3d44f62ea8a81d023a7dc8edf06eeef18c6bb8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a3d44f62ea8a81d023a7dc8edf06eeef18c6bb8
index fb36ace43..fb36ace43 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9a3d44f62ea8a81d023a7dc8edf06eeef18c6bb8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a3d44f62ea8a81d023a7dc8edf06eeef18c6bb8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9a46e195967abf320078c799878ca17c1b5502b0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a46e195967abf320078c799878ca17c1b5502b0
index 8369e7c46..8369e7c46 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9a46e195967abf320078c799878ca17c1b5502b0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a46e195967abf320078c799878ca17c1b5502b0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9a92936fd679f137359ed6c7eb481661fbb47dfa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a92936fd679f137359ed6c7eb481661fbb47dfa
index 7eb9e7691..7eb9e7691 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9a92936fd679f137359ed6c7eb481661fbb47dfa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9a92936fd679f137359ed6c7eb481661fbb47dfa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9ac0d93539ec207cfb42d33b771fca29fc201fe6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9ac0d93539ec207cfb42d33b771fca29fc201fe6
index 1c03c550a..1c03c550a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9ac0d93539ec207cfb42d33b771fca29fc201fe6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9ac0d93539ec207cfb42d33b771fca29fc201fe6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9acede65f1289ff530dd50acea649f734fa1c43d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9acede65f1289ff530dd50acea649f734fa1c43d
index fa9e0640f..fa9e0640f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9acede65f1289ff530dd50acea649f734fa1c43d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9acede65f1289ff530dd50acea649f734fa1c43d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9b42c28f39cbc7ae197ff7c706a7d28499360422 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9b42c28f39cbc7ae197ff7c706a7d28499360422
index 684836fb7..684836fb7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9b42c28f39cbc7ae197ff7c706a7d28499360422
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9b42c28f39cbc7ae197ff7c706a7d28499360422
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9b48028fb96d5b8f73664d302d2b1b49cab03de0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9b48028fb96d5b8f73664d302d2b1b49cab03de0
index 2b1c95d52..2b1c95d52 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9b48028fb96d5b8f73664d302d2b1b49cab03de0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9b48028fb96d5b8f73664d302d2b1b49cab03de0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9b9be81ccf8877556b15e99d2f71399441b91bc3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9b9be81ccf8877556b15e99d2f71399441b91bc3
index 77b9e84ca..77b9e84ca 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9b9be81ccf8877556b15e99d2f71399441b91bc3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9b9be81ccf8877556b15e99d2f71399441b91bc3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9babcd1bb142ddb9721d45811a25b51a6e03ac67 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9babcd1bb142ddb9721d45811a25b51a6e03ac67
index 3b6ecee4c..3b6ecee4c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9babcd1bb142ddb9721d45811a25b51a6e03ac67
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9babcd1bb142ddb9721d45811a25b51a6e03ac67
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9bd03e203c55ae3cb9bee9f25fe22dda55367480 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9bd03e203c55ae3cb9bee9f25fe22dda55367480
index 82dd86657..82dd86657 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9bd03e203c55ae3cb9bee9f25fe22dda55367480
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9bd03e203c55ae3cb9bee9f25fe22dda55367480
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9c45006b313d1b29ccd3a3b17bb210f154a03fae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9c45006b313d1b29ccd3a3b17bb210f154a03fae
index dd0d484ec..dd0d484ec 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9c45006b313d1b29ccd3a3b17bb210f154a03fae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9c45006b313d1b29ccd3a3b17bb210f154a03fae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9cdbfc4dae1ef9abaf3133d8ff3b913aac9e0c0a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9cdbfc4dae1ef9abaf3133d8ff3b913aac9e0c0a
index 4eb95c805..4eb95c805 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9cdbfc4dae1ef9abaf3133d8ff3b913aac9e0c0a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9cdbfc4dae1ef9abaf3133d8ff3b913aac9e0c0a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9ce6509e6b386351234598642137b8f0009c92a7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9ce6509e6b386351234598642137b8f0009c92a7
index f27bb14b9..f27bb14b9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9ce6509e6b386351234598642137b8f0009c92a7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9ce6509e6b386351234598642137b8f0009c92a7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9cf2d2a32856aae6a8867f79afbd7b72e9e6f1d2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9cf2d2a32856aae6a8867f79afbd7b72e9e6f1d2
index 9ce0ab2fd..9ce0ab2fd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9cf2d2a32856aae6a8867f79afbd7b72e9e6f1d2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9cf2d2a32856aae6a8867f79afbd7b72e9e6f1d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9d47cf580024e07c3ccfba0faaa0f94d298fe8db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d47cf580024e07c3ccfba0faaa0f94d298fe8db
index 338ec1647..338ec1647 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9d47cf580024e07c3ccfba0faaa0f94d298fe8db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d47cf580024e07c3ccfba0faaa0f94d298fe8db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9d50b29d2572a2770498c80cbdbcc7466e88ded1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d50b29d2572a2770498c80cbdbcc7466e88ded1
index 95b89b293..95b89b293 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9d50b29d2572a2770498c80cbdbcc7466e88ded1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d50b29d2572a2770498c80cbdbcc7466e88ded1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9d54e15e9c2b7c2fbed989639683f75763b35012 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d54e15e9c2b7c2fbed989639683f75763b35012
index bfb6d02af..bfb6d02af 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9d54e15e9c2b7c2fbed989639683f75763b35012
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d54e15e9c2b7c2fbed989639683f75763b35012
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9d5f2b812601548526c1727e2db3e8ba9b09668a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d5f2b812601548526c1727e2db3e8ba9b09668a
index 76f2589ef..76f2589ef 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9d5f2b812601548526c1727e2db3e8ba9b09668a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d5f2b812601548526c1727e2db3e8ba9b09668a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9d6a01074d6e3beb1d453f696e28066c6db4a600 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d6a01074d6e3beb1d453f696e28066c6db4a600
index 4fb6e9537..4fb6e9537 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9d6a01074d6e3beb1d453f696e28066c6db4a600
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d6a01074d6e3beb1d453f696e28066c6db4a600
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9d6cca3835d5cbb770075eb077e2b2739d9c9499 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d6cca3835d5cbb770075eb077e2b2739d9c9499
index d9f746d03..d9f746d03 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9d6cca3835d5cbb770075eb077e2b2739d9c9499
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d6cca3835d5cbb770075eb077e2b2739d9c9499
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9d719fa259cef8572f6dd23a8ca05448b6ed938f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d719fa259cef8572f6dd23a8ca05448b6ed938f
index 1fda88ddb..1fda88ddb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9d719fa259cef8572f6dd23a8ca05448b6ed938f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9d719fa259cef8572f6dd23a8ca05448b6ed938f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9dcf5155aa181e47e4c5e2171758d8f4f89d9697 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9dcf5155aa181e47e4c5e2171758d8f4f89d9697
index 1c88039ee..1c88039ee 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9dcf5155aa181e47e4c5e2171758d8f4f89d9697
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9dcf5155aa181e47e4c5e2171758d8f4f89d9697
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9dfdd1e502bd9c8a100dec132b9bcdd255990044 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9dfdd1e502bd9c8a100dec132b9bcdd255990044
index 8a2872c6a..8a2872c6a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9dfdd1e502bd9c8a100dec132b9bcdd255990044
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9dfdd1e502bd9c8a100dec132b9bcdd255990044
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9e23d1c7ccfa32f3fd6975013cd0bd0617eac1b3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e23d1c7ccfa32f3fd6975013cd0bd0617eac1b3
index e0390badc..e0390badc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9e23d1c7ccfa32f3fd6975013cd0bd0617eac1b3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e23d1c7ccfa32f3fd6975013cd0bd0617eac1b3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9e4668597b75993fb39feaffb0d1b0534cf0fdf6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e4668597b75993fb39feaffb0d1b0534cf0fdf6
index 5e049ba1a..5e049ba1a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9e4668597b75993fb39feaffb0d1b0534cf0fdf6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e4668597b75993fb39feaffb0d1b0534cf0fdf6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9e4733d6e9f4e7f57eca191f6f2bfa72adaa950d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e4733d6e9f4e7f57eca191f6f2bfa72adaa950d
index fcd92afaf..fcd92afaf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9e4733d6e9f4e7f57eca191f6f2bfa72adaa950d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e4733d6e9f4e7f57eca191f6f2bfa72adaa950d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9e7896984aff234794c3cf7ed1c12b96fff42182 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e7896984aff234794c3cf7ed1c12b96fff42182
index 7cb214360..7cb214360 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9e7896984aff234794c3cf7ed1c12b96fff42182
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9e7896984aff234794c3cf7ed1c12b96fff42182
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9f1417c40e2508e54062a7eb640b627540f65646 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f1417c40e2508e54062a7eb640b627540f65646
index 328f26333..328f26333 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9f1417c40e2508e54062a7eb640b627540f65646
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f1417c40e2508e54062a7eb640b627540f65646
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9f2ffe5c6d1333eb6d2c3040935a66865f7d6fb2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f2ffe5c6d1333eb6d2c3040935a66865f7d6fb2
index 2d6367e5b..2d6367e5b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9f2ffe5c6d1333eb6d2c3040935a66865f7d6fb2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f2ffe5c6d1333eb6d2c3040935a66865f7d6fb2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9f354002c988d4f46050d3f78e86cda99b189cfe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f354002c988d4f46050d3f78e86cda99b189cfe
index 90c77632a..90c77632a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9f354002c988d4f46050d3f78e86cda99b189cfe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f354002c988d4f46050d3f78e86cda99b189cfe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9f6b4d8632eb8a7a4dbf213bc4972d96784cb0f0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f6b4d8632eb8a7a4dbf213bc4972d96784cb0f0
index c6cd6f02a..c6cd6f02a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9f6b4d8632eb8a7a4dbf213bc4972d96784cb0f0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f6b4d8632eb8a7a4dbf213bc4972d96784cb0f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9f77421f0377e73d10c7a900bc873bd627f2c4e0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f77421f0377e73d10c7a900bc873bd627f2c4e0
index 6f600c105..6f600c105 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9f77421f0377e73d10c7a900bc873bd627f2c4e0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9f77421f0377e73d10c7a900bc873bd627f2c4e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9fa49893149c17b53e90accf38f0ce7ee8e54ca3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9fa49893149c17b53e90accf38f0ce7ee8e54ca3
index 6fb9c602d..6fb9c602d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9fa49893149c17b53e90accf38f0ce7ee8e54ca3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9fa49893149c17b53e90accf38f0ce7ee8e54ca3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9fb409197dae95ed37880f46bcc6d31a502fd6c3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9fb409197dae95ed37880f46bcc6d31a502fd6c3
index fb9661a9d..fb9661a9d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9fb409197dae95ed37880f46bcc6d31a502fd6c3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9fb409197dae95ed37880f46bcc6d31a502fd6c3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9fb5a961b6f85c8bb3ff0b657d732f228e61314f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9fb5a961b6f85c8bb3ff0b657d732f228e61314f
index cfab4f96c..cfab4f96c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9fb5a961b6f85c8bb3ff0b657d732f228e61314f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9fb5a961b6f85c8bb3ff0b657d732f228e61314f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/9ff1daabf90002d9c73b2a2c8296724e57e765b4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9ff1daabf90002d9c73b2a2c8296724e57e765b4
index 7cb079c44..7cb079c44 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/9ff1daabf90002d9c73b2a2c8296724e57e765b4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/9ff1daabf90002d9c73b2a2c8296724e57e765b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a036b8f6da45134557fb0d921ad65fa996890bd6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a036b8f6da45134557fb0d921ad65fa996890bd6
index 9e00b789c..9e00b789c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a036b8f6da45134557fb0d921ad65fa996890bd6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a036b8f6da45134557fb0d921ad65fa996890bd6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a04c3f55de7f1242f223312e56a09825f6e0f7b3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a04c3f55de7f1242f223312e56a09825f6e0f7b3
index 6aeeb13d7..6aeeb13d7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a04c3f55de7f1242f223312e56a09825f6e0f7b3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a04c3f55de7f1242f223312e56a09825f6e0f7b3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a06d311d3435fbef056ca0a789c64aac243206ae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a06d311d3435fbef056ca0a789c64aac243206ae
index 0e2b30d91..0e2b30d91 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a06d311d3435fbef056ca0a789c64aac243206ae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a06d311d3435fbef056ca0a789c64aac243206ae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a081d0b5e7b52c478c41f98ea9b155f882bba63c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a081d0b5e7b52c478c41f98ea9b155f882bba63c
index acfaa7e6c..acfaa7e6c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a081d0b5e7b52c478c41f98ea9b155f882bba63c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a081d0b5e7b52c478c41f98ea9b155f882bba63c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a099fbb9906ffe6f6f2bfc4769b2eb3cb29f0622 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a099fbb9906ffe6f6f2bfc4769b2eb3cb29f0622
index 21ea857a7..21ea857a7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a099fbb9906ffe6f6f2bfc4769b2eb3cb29f0622
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a099fbb9906ffe6f6f2bfc4769b2eb3cb29f0622
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a0c3616fb100acc936c62debd6d6056ecd863cc3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a0c3616fb100acc936c62debd6d6056ecd863cc3
index daf4528ea..daf4528ea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a0c3616fb100acc936c62debd6d6056ecd863cc3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a0c3616fb100acc936c62debd6d6056ecd863cc3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a116ed2b13b12328557db4c867f58efb30c4f159 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a116ed2b13b12328557db4c867f58efb30c4f159
index e6f510780..e6f510780 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a116ed2b13b12328557db4c867f58efb30c4f159
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a116ed2b13b12328557db4c867f58efb30c4f159
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a1343ffe1eacd7f8d0a4859e854961996797f229 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1343ffe1eacd7f8d0a4859e854961996797f229
index 8937852d6..8937852d6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a1343ffe1eacd7f8d0a4859e854961996797f229
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1343ffe1eacd7f8d0a4859e854961996797f229
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af
index e98dddb06..e98dddb06 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a170f2de5a4ba633f05d5aec961be317e9a30fa3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a170f2de5a4ba633f05d5aec961be317e9a30fa3
index 73508386e..73508386e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a170f2de5a4ba633f05d5aec961be317e9a30fa3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a170f2de5a4ba633f05d5aec961be317e9a30fa3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a1c6953ba4bb37f0043873e5a18ee68ef89155be b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1c6953ba4bb37f0043873e5a18ee68ef89155be
index 2f7feaf3b..2f7feaf3b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a1c6953ba4bb37f0043873e5a18ee68ef89155be
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1c6953ba4bb37f0043873e5a18ee68ef89155be
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a1c739fe0ef4addc58af253cc36070df9055fa6b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1c739fe0ef4addc58af253cc36070df9055fa6b
index ce618c53b..ce618c53b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a1c739fe0ef4addc58af253cc36070df9055fa6b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1c739fe0ef4addc58af253cc36070df9055fa6b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a1d6401c19681d695116a82bd83986cc549aa94e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1d6401c19681d695116a82bd83986cc549aa94e
index ff28b981a..ff28b981a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a1d6401c19681d695116a82bd83986cc549aa94e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1d6401c19681d695116a82bd83986cc549aa94e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a1d769b8521f8326e5e76dee63c51e90b8bd1667 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1d769b8521f8326e5e76dee63c51e90b8bd1667
index edc58e2b3..edc58e2b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a1d769b8521f8326e5e76dee63c51e90b8bd1667
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1d769b8521f8326e5e76dee63c51e90b8bd1667
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a1e3fcaf8d1b60f89c3fb450319ee6fec5eef29a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1e3fcaf8d1b60f89c3fb450319ee6fec5eef29a
index ecdcd831e..ecdcd831e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a1e3fcaf8d1b60f89c3fb450319ee6fec5eef29a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a1e3fcaf8d1b60f89c3fb450319ee6fec5eef29a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a24656c5279b05da144f5382295f35b09af0ff40 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a24656c5279b05da144f5382295f35b09af0ff40
index 13177469c..13177469c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a24656c5279b05da144f5382295f35b09af0ff40
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a24656c5279b05da144f5382295f35b09af0ff40
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a24c1d72ed28123b01b3855798950d7d1fb5620a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a24c1d72ed28123b01b3855798950d7d1fb5620a
index 2970eb4cb..2970eb4cb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a24c1d72ed28123b01b3855798950d7d1fb5620a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a24c1d72ed28123b01b3855798950d7d1fb5620a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a263e50edc675f3e8c6e6839aab2ae79f0138b3a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a263e50edc675f3e8c6e6839aab2ae79f0138b3a
index 14038de5c..14038de5c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a263e50edc675f3e8c6e6839aab2ae79f0138b3a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a263e50edc675f3e8c6e6839aab2ae79f0138b3a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a287b73ff98552b92fc3dad05d6245d91fb74977 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a287b73ff98552b92fc3dad05d6245d91fb74977
index bd22ce3e7..bd22ce3e7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a287b73ff98552b92fc3dad05d6245d91fb74977
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a287b73ff98552b92fc3dad05d6245d91fb74977
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a28d17040d19df24262b2e15b0f17f05b6e756fd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a28d17040d19df24262b2e15b0f17f05b6e756fd
index a014433ff..a014433ff 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a28d17040d19df24262b2e15b0f17f05b6e756fd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a28d17040d19df24262b2e15b0f17f05b6e756fd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a2b789f96332db9e5ac7c80e07c9b52af0143ade b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a2b789f96332db9e5ac7c80e07c9b52af0143ade
index 69feaeaea..69feaeaea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a2b789f96332db9e5ac7c80e07c9b52af0143ade
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a2b789f96332db9e5ac7c80e07c9b52af0143ade
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a30b170bc655296ff8ac442fc4eadca3623854e9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a30b170bc655296ff8ac442fc4eadca3623854e9
index 01cbe58e3..01cbe58e3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a30b170bc655296ff8ac442fc4eadca3623854e9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a30b170bc655296ff8ac442fc4eadca3623854e9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a31be5982160cdf86fb5a97a9944ea074e80c675 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a31be5982160cdf86fb5a97a9944ea074e80c675
index 9d449c3d3..9d449c3d3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a31be5982160cdf86fb5a97a9944ea074e80c675
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a31be5982160cdf86fb5a97a9944ea074e80c675
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a33c60ee5d7d727919f57d80995e9200b789d421 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a33c60ee5d7d727919f57d80995e9200b789d421
index 3096818a0..3096818a0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a33c60ee5d7d727919f57d80995e9200b789d421
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a33c60ee5d7d727919f57d80995e9200b789d421
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a34a4ee965aefbc9393f76214779ee6a20cf4365 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a34a4ee965aefbc9393f76214779ee6a20cf4365
index 90f8e27bb..90f8e27bb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a34a4ee965aefbc9393f76214779ee6a20cf4365
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a34a4ee965aefbc9393f76214779ee6a20cf4365
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a37e563aad1952bff86a163c81d07d270df17ddb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a37e563aad1952bff86a163c81d07d270df17ddb
index f07cde33f..f07cde33f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a37e563aad1952bff86a163c81d07d270df17ddb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a37e563aad1952bff86a163c81d07d270df17ddb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a383ff54b89d0cfb0848b4db906ca52f9513c803 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a383ff54b89d0cfb0848b4db906ca52f9513c803
index 6a375ce13..6a375ce13 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a383ff54b89d0cfb0848b4db906ca52f9513c803
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a383ff54b89d0cfb0848b4db906ca52f9513c803
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a38a64cd730070695a52c314512348d7ec050d59 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a38a64cd730070695a52c314512348d7ec050d59
index 55a2ffb11..55a2ffb11 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a38a64cd730070695a52c314512348d7ec050d59
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a38a64cd730070695a52c314512348d7ec050d59
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a3f5412f814dee8a9499fc6e0eac723cc297cd9b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a3f5412f814dee8a9499fc6e0eac723cc297cd9b
index de601f4bd..de601f4bd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a3f5412f814dee8a9499fc6e0eac723cc297cd9b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a3f5412f814dee8a9499fc6e0eac723cc297cd9b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a3ff98ee2d6e8579e24e57cdc1134cee04ddea91 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a3ff98ee2d6e8579e24e57cdc1134cee04ddea91
index 4a7e9e7f1..4a7e9e7f1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a3ff98ee2d6e8579e24e57cdc1134cee04ddea91
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a3ff98ee2d6e8579e24e57cdc1134cee04ddea91
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a4032d12b9acf4b9ba17971aa230195050fc44c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a4032d12b9acf4b9ba17971aa230195050fc44c2
index e4f08845a..e4f08845a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a4032d12b9acf4b9ba17971aa230195050fc44c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a4032d12b9acf4b9ba17971aa230195050fc44c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a406c65eaf40bad156b053c5cef8b3e62b67f773 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a406c65eaf40bad156b053c5cef8b3e62b67f773
index 7a8b03469..7a8b03469 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a406c65eaf40bad156b053c5cef8b3e62b67f773
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a406c65eaf40bad156b053c5cef8b3e62b67f773
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a43a3c9d084753be9343bdda55469054d5f6054f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a43a3c9d084753be9343bdda55469054d5f6054f
index 0625543e0..0625543e0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a43a3c9d084753be9343bdda55469054d5f6054f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a43a3c9d084753be9343bdda55469054d5f6054f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a4483c34c872206199f126a8b6fdaa3338463f21 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a4483c34c872206199f126a8b6fdaa3338463f21
index e058a1e14..e058a1e14 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a4483c34c872206199f126a8b6fdaa3338463f21
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a4483c34c872206199f126a8b6fdaa3338463f21
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a4fd88339a2db78870ca751f24bdf1b186778ab9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a4fd88339a2db78870ca751f24bdf1b186778ab9
index 59341ad4d..59341ad4d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a4fd88339a2db78870ca751f24bdf1b186778ab9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a4fd88339a2db78870ca751f24bdf1b186778ab9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a532629680bce515b90d9ad5492277329388d13b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a532629680bce515b90d9ad5492277329388d13b
index 476b4281a..476b4281a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a532629680bce515b90d9ad5492277329388d13b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a532629680bce515b90d9ad5492277329388d13b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a54440e12e52f1950993c2791599f3608d9b16f8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a54440e12e52f1950993c2791599f3608d9b16f8
index 4d098917d..4d098917d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a54440e12e52f1950993c2791599f3608d9b16f8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a54440e12e52f1950993c2791599f3608d9b16f8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a55ac9cbc13822811c672dc4f1722fd700507a79 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a55ac9cbc13822811c672dc4f1722fd700507a79
index 5fa9e64db..5fa9e64db 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a55ac9cbc13822811c672dc4f1722fd700507a79
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a55ac9cbc13822811c672dc4f1722fd700507a79
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a57fa7795d5434da734b1a329ec6c3362dfec521 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a57fa7795d5434da734b1a329ec6c3362dfec521
index bc99715f0..bc99715f0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a57fa7795d5434da734b1a329ec6c3362dfec521
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a57fa7795d5434da734b1a329ec6c3362dfec521
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a6cc00a13d6028585243016674ce091d343ae685 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a6cc00a13d6028585243016674ce091d343ae685
index 8cae69661..8cae69661 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a6cc00a13d6028585243016674ce091d343ae685
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a6cc00a13d6028585243016674ce091d343ae685
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a6def460d387c7a39ae9909d1244cd66bf59ed30 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a6def460d387c7a39ae9909d1244cd66bf59ed30
index 5f3475a48..5f3475a48 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a6def460d387c7a39ae9909d1244cd66bf59ed30
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a6def460d387c7a39ae9909d1244cd66bf59ed30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a71a2f69e3f0dab7ae7e71f42569b38d6f5949cd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a71a2f69e3f0dab7ae7e71f42569b38d6f5949cd
index 3d92581bd..3d92581bd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a71a2f69e3f0dab7ae7e71f42569b38d6f5949cd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a71a2f69e3f0dab7ae7e71f42569b38d6f5949cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a71be67b7f66ec0fef1c3d878ffac682ae079d3a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a71be67b7f66ec0fef1c3d878ffac682ae079d3a
index e42746a1d..e42746a1d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a71be67b7f66ec0fef1c3d878ffac682ae079d3a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a71be67b7f66ec0fef1c3d878ffac682ae079d3a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a730d7947224be554b7b14152e406ab33c137122 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a730d7947224be554b7b14152e406ab33c137122
index c696e950c..c696e950c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a730d7947224be554b7b14152e406ab33c137122
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a730d7947224be554b7b14152e406ab33c137122
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a7697ca1cfb252ba3202df3def119d14b8a1c64a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7697ca1cfb252ba3202df3def119d14b8a1c64a
index 9812d8408..9812d8408 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a7697ca1cfb252ba3202df3def119d14b8a1c64a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7697ca1cfb252ba3202df3def119d14b8a1c64a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a775b30035e3db213fccbf57416dcdd97b924be2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a775b30035e3db213fccbf57416dcdd97b924be2
index 68d4c02d9..68d4c02d9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a775b30035e3db213fccbf57416dcdd97b924be2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a775b30035e3db213fccbf57416dcdd97b924be2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a7c9e7ae1284c1dddf31a52277f1d8406a519fe8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7c9e7ae1284c1dddf31a52277f1d8406a519fe8
index 771db2bca..771db2bca 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a7c9e7ae1284c1dddf31a52277f1d8406a519fe8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7c9e7ae1284c1dddf31a52277f1d8406a519fe8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a7eab1c38612de990c4a40f0339cf0ed67bc2f93 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7eab1c38612de990c4a40f0339cf0ed67bc2f93
index 1996b5c57..1996b5c57 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a7eab1c38612de990c4a40f0339cf0ed67bc2f93
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7eab1c38612de990c4a40f0339cf0ed67bc2f93
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a7fe7c9ae05a5bc2db0f1ac04651e7ca2062dc4f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7fe7c9ae05a5bc2db0f1ac04651e7ca2062dc4f
index 55aaa5e80..55aaa5e80 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a7fe7c9ae05a5bc2db0f1ac04651e7ca2062dc4f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a7fe7c9ae05a5bc2db0f1ac04651e7ca2062dc4f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a801a1f83248b9be52db78a70cf0749b575c9f06 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a801a1f83248b9be52db78a70cf0749b575c9f06
index 722eeb2dc..722eeb2dc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a801a1f83248b9be52db78a70cf0749b575c9f06
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a801a1f83248b9be52db78a70cf0749b575c9f06
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a80d59967bcc86be9151c5bf88635bd4b8dbc400 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a80d59967bcc86be9151c5bf88635bd4b8dbc400
index 7acaf7ed7..7acaf7ed7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a80d59967bcc86be9151c5bf88635bd4b8dbc400
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a80d59967bcc86be9151c5bf88635bd4b8dbc400
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a84e4682efc1cf0cfed306152e5ad7947c332fb3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a84e4682efc1cf0cfed306152e5ad7947c332fb3
index a43fc84ff..a43fc84ff 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a84e4682efc1cf0cfed306152e5ad7947c332fb3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a84e4682efc1cf0cfed306152e5ad7947c332fb3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a8846bae4f1a7f4f41c0d7a82c2b90be824fa1c5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a8846bae4f1a7f4f41c0d7a82c2b90be824fa1c5
index 661f8bbc5..661f8bbc5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a8846bae4f1a7f4f41c0d7a82c2b90be824fa1c5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a8846bae4f1a7f4f41c0d7a82c2b90be824fa1c5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a89373ccfc9082cadb837c7f32629889cb228c26 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a89373ccfc9082cadb837c7f32629889cb228c26
index dd8dbb69f..dd8dbb69f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a89373ccfc9082cadb837c7f32629889cb228c26
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a89373ccfc9082cadb837c7f32629889cb228c26
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a894c65843a5100ae573ae7ea23e2c1be6e7e427 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a894c65843a5100ae573ae7ea23e2c1be6e7e427
index a2bb45833..a2bb45833 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a894c65843a5100ae573ae7ea23e2c1be6e7e427
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a894c65843a5100ae573ae7ea23e2c1be6e7e427
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a8d16fe74c307e5de9c35708a7162c8e99814604 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a8d16fe74c307e5de9c35708a7162c8e99814604
index 912d2758d..912d2758d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a8d16fe74c307e5de9c35708a7162c8e99814604
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a8d16fe74c307e5de9c35708a7162c8e99814604
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a8dba71ba20fe3eeeaf6a7b39d4e35ac25c46ac9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a8dba71ba20fe3eeeaf6a7b39d4e35ac25c46ac9
index 85c41c723..85c41c723 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a8dba71ba20fe3eeeaf6a7b39d4e35ac25c46ac9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a8dba71ba20fe3eeeaf6a7b39d4e35ac25c46ac9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a928ad859ea8eeb566b2a1bf2d1363ece44a09ad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a928ad859ea8eeb566b2a1bf2d1363ece44a09ad
index 5f12bea49..5f12bea49 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a928ad859ea8eeb566b2a1bf2d1363ece44a09ad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a928ad859ea8eeb566b2a1bf2d1363ece44a09ad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a9569e32dafeed47604f59dfabd4c044e6bbe968 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a9569e32dafeed47604f59dfabd4c044e6bbe968
index 381c4c89d..381c4c89d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a9569e32dafeed47604f59dfabd4c044e6bbe968
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a9569e32dafeed47604f59dfabd4c044e6bbe968
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a96514551a463d2f783538a9259b5676182e1035 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a96514551a463d2f783538a9259b5676182e1035
index 3e4e4c99e..3e4e4c99e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a96514551a463d2f783538a9259b5676182e1035
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a96514551a463d2f783538a9259b5676182e1035
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/a983d61ce130f1d18e949fbce1a6c311efcb9fa6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a983d61ce130f1d18e949fbce1a6c311efcb9fa6
index a0222f586..a0222f586 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/a983d61ce130f1d18e949fbce1a6c311efcb9fa6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/a983d61ce130f1d18e949fbce1a6c311efcb9fa6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aa005852056d4f069b2d8d765cf469cb51e1a985 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa005852056d4f069b2d8d765cf469cb51e1a985
index ae41c9150..ae41c9150 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aa005852056d4f069b2d8d765cf469cb51e1a985
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa005852056d4f069b2d8d765cf469cb51e1a985
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aa1457428b526a6b6157abb88eff52a6e681a7bb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa1457428b526a6b6157abb88eff52a6e681a7bb
index bb25d39f2..bb25d39f2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aa1457428b526a6b6157abb88eff52a6e681a7bb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa1457428b526a6b6157abb88eff52a6e681a7bb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aa1ab16e780848c43f69a6e82e2284aa363af33b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa1ab16e780848c43f69a6e82e2284aa363af33b
index 4ce972c22..4ce972c22 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aa1ab16e780848c43f69a6e82e2284aa363af33b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa1ab16e780848c43f69a6e82e2284aa363af33b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aa5fa6fc30946c38023ba4dec72eea29d7f7000b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa5fa6fc30946c38023ba4dec72eea29d7f7000b
index ec2243493..ec2243493 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aa5fa6fc30946c38023ba4dec72eea29d7f7000b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa5fa6fc30946c38023ba4dec72eea29d7f7000b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aa8019a2b6f30db61ad630c6d98c0f6e874a5040 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa8019a2b6f30db61ad630c6d98c0f6e874a5040
index 8a5e4e142..8a5e4e142 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aa8019a2b6f30db61ad630c6d98c0f6e874a5040
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa8019a2b6f30db61ad630c6d98c0f6e874a5040
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aa86e2a8986208d5fc892e2d168aaaaf389bbf1a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa86e2a8986208d5fc892e2d168aaaaf389bbf1a
index 3e9912770..3e9912770 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aa86e2a8986208d5fc892e2d168aaaaf389bbf1a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa86e2a8986208d5fc892e2d168aaaaf389bbf1a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aa8892a412da18fadf49563853a5be3dce078304 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa8892a412da18fadf49563853a5be3dce078304
index 21e11a3da..21e11a3da 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aa8892a412da18fadf49563853a5be3dce078304
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aa8892a412da18fadf49563853a5be3dce078304
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ab8936e705961f25c59096fa5bfbe78416d3f20e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ab8936e705961f25c59096fa5bfbe78416d3f20e
index 26bccb628..26bccb628 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ab8936e705961f25c59096fa5bfbe78416d3f20e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ab8936e705961f25c59096fa5bfbe78416d3f20e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ab9c477970c64afa2b800fba517ba7e24472a8da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ab9c477970c64afa2b800fba517ba7e24472a8da
index 5632174f4..5632174f4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ab9c477970c64afa2b800fba517ba7e24472a8da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ab9c477970c64afa2b800fba517ba7e24472a8da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/abcb08a9ed551ed66f3e7bab4c7650461950bf94 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/abcb08a9ed551ed66f3e7bab4c7650461950bf94
index 9c1ad9a1b..9c1ad9a1b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/abcb08a9ed551ed66f3e7bab4c7650461950bf94
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/abcb08a9ed551ed66f3e7bab4c7650461950bf94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ac13048dd1c9f8f201e6bf80856b34e580ede609 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac13048dd1c9f8f201e6bf80856b34e580ede609
index 7fbf1300a..7fbf1300a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ac13048dd1c9f8f201e6bf80856b34e580ede609
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac13048dd1c9f8f201e6bf80856b34e580ede609
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ac16c12bb78db4c44ae0a166409e4cc0decd895b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac16c12bb78db4c44ae0a166409e4cc0decd895b
index 0f5e0c334..0f5e0c334 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ac16c12bb78db4c44ae0a166409e4cc0decd895b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac16c12bb78db4c44ae0a166409e4cc0decd895b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ac1c7078425e7bc9496bd7ca71e5f0d15b0ccd22 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac1c7078425e7bc9496bd7ca71e5f0d15b0ccd22
index c2a2e1d09..c2a2e1d09 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ac1c7078425e7bc9496bd7ca71e5f0d15b0ccd22
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac1c7078425e7bc9496bd7ca71e5f0d15b0ccd22
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ac301014f5f896020a19906bd49aad00b1a72343 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac301014f5f896020a19906bd49aad00b1a72343
index a6cb32c9d..a6cb32c9d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ac301014f5f896020a19906bd49aad00b1a72343
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac301014f5f896020a19906bd49aad00b1a72343
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ac47230bba10fcb35f82b56d5ea43bfb4ec616da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac47230bba10fcb35f82b56d5ea43bfb4ec616da
index 64a730f1c..64a730f1c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ac47230bba10fcb35f82b56d5ea43bfb4ec616da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac47230bba10fcb35f82b56d5ea43bfb4ec616da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ac8a45deaf64fc1e09b289e746bd808917da15b3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac8a45deaf64fc1e09b289e746bd808917da15b3
index 086a11f58..086a11f58 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ac8a45deaf64fc1e09b289e746bd808917da15b3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ac8a45deaf64fc1e09b289e746bd808917da15b3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/acbea5d94577b1896a943d701c81ec82bb0e2583 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/acbea5d94577b1896a943d701c81ec82bb0e2583
index 64955e214..64955e214 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/acbea5d94577b1896a943d701c81ec82bb0e2583
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/acbea5d94577b1896a943d701c81ec82bb0e2583
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ad430667b14c5ac3c3e78fac3f5d83ea3670df81 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad430667b14c5ac3c3e78fac3f5d83ea3670df81
index e357e6dcc..e357e6dcc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ad430667b14c5ac3c3e78fac3f5d83ea3670df81
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad430667b14c5ac3c3e78fac3f5d83ea3670df81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ad5346af93e961098c297c260bb84a53709b6fa3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad5346af93e961098c297c260bb84a53709b6fa3
index eb513f56c..eb513f56c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ad5346af93e961098c297c260bb84a53709b6fa3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad5346af93e961098c297c260bb84a53709b6fa3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ad605a6b659c33b2e4d5485456caa4f5063aa3d0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad605a6b659c33b2e4d5485456caa4f5063aa3d0
index 5efa87e2f..5efa87e2f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ad605a6b659c33b2e4d5485456caa4f5063aa3d0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad605a6b659c33b2e4d5485456caa4f5063aa3d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ad85c2999e89835dc9398ed05f39e45f765c6b39 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad85c2999e89835dc9398ed05f39e45f765c6b39
index 19eebf7e4..19eebf7e4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ad85c2999e89835dc9398ed05f39e45f765c6b39
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad85c2999e89835dc9398ed05f39e45f765c6b39
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ad9cc9ede4bdbb55e04868120a380a9bf0234f16 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad9cc9ede4bdbb55e04868120a380a9bf0234f16
index 67515c095..67515c095 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ad9cc9ede4bdbb55e04868120a380a9bf0234f16
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ad9cc9ede4bdbb55e04868120a380a9bf0234f16
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/adaf3dae972c55c9045b0ebab5f7c1f1c4e4c1b0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/adaf3dae972c55c9045b0ebab5f7c1f1c4e4c1b0
index 5da31985e..5da31985e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/adaf3dae972c55c9045b0ebab5f7c1f1c4e4c1b0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/adaf3dae972c55c9045b0ebab5f7c1f1c4e4c1b0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/add75c4b7687cb8a6fb7f2bf3a948c871c5a07cb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/add75c4b7687cb8a6fb7f2bf3a948c871c5a07cb
index 960d369ae..960d369ae 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/add75c4b7687cb8a6fb7f2bf3a948c871c5a07cb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/add75c4b7687cb8a6fb7f2bf3a948c871c5a07cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ae1cb14720f7f834a523dae7e1410f1ebe9f7d37 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae1cb14720f7f834a523dae7e1410f1ebe9f7d37
index 8733d6b53..8733d6b53 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ae1cb14720f7f834a523dae7e1410f1ebe9f7d37
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae1cb14720f7f834a523dae7e1410f1ebe9f7d37
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ae25c9b7bcb5098c55ac377a81a70a391cb56037 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae25c9b7bcb5098c55ac377a81a70a391cb56037
index a7d6c8506..a7d6c8506 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ae25c9b7bcb5098c55ac377a81a70a391cb56037
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae25c9b7bcb5098c55ac377a81a70a391cb56037
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ae5a90e5871b22a2c9e4a34cb1cf2f1a78de7561 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae5a90e5871b22a2c9e4a34cb1cf2f1a78de7561
index c026bcf09..c026bcf09 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ae5a90e5871b22a2c9e4a34cb1cf2f1a78de7561
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae5a90e5871b22a2c9e4a34cb1cf2f1a78de7561
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ae6e8147ceea375a79cda29224ce2e21a916d9c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae6e8147ceea375a79cda29224ce2e21a916d9c2
index b2761c9ab..b2761c9ab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ae6e8147ceea375a79cda29224ce2e21a916d9c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ae6e8147ceea375a79cda29224ce2e21a916d9c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/aed6daad71a4bea38326449234546132f7252d9b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aed6daad71a4bea38326449234546132f7252d9b
index 7aa89a6c7..7aa89a6c7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/aed6daad71a4bea38326449234546132f7252d9b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/aed6daad71a4bea38326449234546132f7252d9b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/af105cc68989bc5bc9c017fd438fb95bc1e061ef b/src/web/server/h2o/libh2o/fuzz/http1-corpus/af105cc68989bc5bc9c017fd438fb95bc1e061ef
index 9863e0d35..9863e0d35 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/af105cc68989bc5bc9c017fd438fb95bc1e061ef
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/af105cc68989bc5bc9c017fd438fb95bc1e061ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/af37092574196d8321ced0a545cfe93a99974379 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/af37092574196d8321ced0a545cfe93a99974379
index d3c133da2..d3c133da2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/af37092574196d8321ced0a545cfe93a99974379
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/af37092574196d8321ced0a545cfe93a99974379
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/af8b091a8e1ff84aba6096c0c8f5f129946e9621 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/af8b091a8e1ff84aba6096c0c8f5f129946e9621
index c91254dde..c91254dde 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/af8b091a8e1ff84aba6096c0c8f5f129946e9621
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/af8b091a8e1ff84aba6096c0c8f5f129946e9621
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/afb6e93aaf3e00a2ea84c638c66ddb7f6eb27c03 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afb6e93aaf3e00a2ea84c638c66ddb7f6eb27c03
index 7b55bc44a..7b55bc44a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/afb6e93aaf3e00a2ea84c638c66ddb7f6eb27c03
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afb6e93aaf3e00a2ea84c638c66ddb7f6eb27c03
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/afddd3bae1620cf8119d3a1e9695ab7599e109f2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afddd3bae1620cf8119d3a1e9695ab7599e109f2
index 02585f3c8..02585f3c8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/afddd3bae1620cf8119d3a1e9695ab7599e109f2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afddd3bae1620cf8119d3a1e9695ab7599e109f2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/afe0fa71ee90fdfe6fc22716661abff296a5f489 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afe0fa71ee90fdfe6fc22716661abff296a5f489
index 0527b4b6c..0527b4b6c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/afe0fa71ee90fdfe6fc22716661abff296a5f489
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afe0fa71ee90fdfe6fc22716661abff296a5f489
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/afe32360f0db3d6110a4dbca6529c7f94587d1c6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afe32360f0db3d6110a4dbca6529c7f94587d1c6
index 93488ac56..93488ac56 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/afe32360f0db3d6110a4dbca6529c7f94587d1c6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/afe32360f0db3d6110a4dbca6529c7f94587d1c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b06310cc30d7735b6c3451d65ca7e405880de8f2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b06310cc30d7735b6c3451d65ca7e405880de8f2
index 957a421d8..957a421d8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b06310cc30d7735b6c3451d65ca7e405880de8f2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b06310cc30d7735b6c3451d65ca7e405880de8f2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b06af75b889dd1fdfa491ecbe042d19c86569ec2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b06af75b889dd1fdfa491ecbe042d19c86569ec2
index 74d5a6987..74d5a6987 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b06af75b889dd1fdfa491ecbe042d19c86569ec2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b06af75b889dd1fdfa491ecbe042d19c86569ec2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b0bbfffd9e7eb264969fe594db028d05c7da85eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b0bbfffd9e7eb264969fe594db028d05c7da85eb
index 0d6661c16..0d6661c16 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b0bbfffd9e7eb264969fe594db028d05c7da85eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b0bbfffd9e7eb264969fe594db028d05c7da85eb
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b0c35745650da9e3e7f7bccc51e463e2732066ed b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b0c35745650da9e3e7f7bccc51e463e2732066ed
index 9a3f3047f..9a3f3047f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b0c35745650da9e3e7f7bccc51e463e2732066ed
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b0c35745650da9e3e7f7bccc51e463e2732066ed
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b11042f695d315ad7261f9ecdffa1eb147f94d34 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b11042f695d315ad7261f9ecdffa1eb147f94d34
index eade9cfe7..eade9cfe7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b11042f695d315ad7261f9ecdffa1eb147f94d34
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b11042f695d315ad7261f9ecdffa1eb147f94d34
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b11b2288d1e26d1d07d30c83ad752f120a8dbe95 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b11b2288d1e26d1d07d30c83ad752f120a8dbe95
index 9a47ace4e..9a47ace4e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b11b2288d1e26d1d07d30c83ad752f120a8dbe95
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b11b2288d1e26d1d07d30c83ad752f120a8dbe95
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b133138aad236a6ff8ea903e321e7754429c8199 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b133138aad236a6ff8ea903e321e7754429c8199
index b1ae58e10..b1ae58e10 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b133138aad236a6ff8ea903e321e7754429c8199
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b133138aad236a6ff8ea903e321e7754429c8199
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b135d2d6f204388a06ad7d3c754776d3ccb6d719 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b135d2d6f204388a06ad7d3c754776d3ccb6d719
index 2bad4ebc2..2bad4ebc2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b135d2d6f204388a06ad7d3c754776d3ccb6d719
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b135d2d6f204388a06ad7d3c754776d3ccb6d719
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b175f673b10d8ea8e2542ef83b633ef839fd2fbc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b175f673b10d8ea8e2542ef83b633ef839fd2fbc
index f1dd36a9d..f1dd36a9d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b175f673b10d8ea8e2542ef83b633ef839fd2fbc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b175f673b10d8ea8e2542ef83b633ef839fd2fbc
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b17e90c8fefa4eec399fb1c11147fb178a89d016 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b17e90c8fefa4eec399fb1c11147fb178a89d016
index ffc5db914..ffc5db914 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b17e90c8fefa4eec399fb1c11147fb178a89d016
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b17e90c8fefa4eec399fb1c11147fb178a89d016
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b181a614c692365456cdfa6acb8857e8383d60a1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b181a614c692365456cdfa6acb8857e8383d60a1
index 757adc263..757adc263 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b181a614c692365456cdfa6acb8857e8383d60a1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b181a614c692365456cdfa6acb8857e8383d60a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b182969b8344de5777c29d8336655b34c1ea3bfc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b182969b8344de5777c29d8336655b34c1ea3bfc
index 443d1ff4b..443d1ff4b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b182969b8344de5777c29d8336655b34c1ea3bfc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b182969b8344de5777c29d8336655b34c1ea3bfc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b1a841418e3f08c837d1e0a3add2a0694f7c514d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b1a841418e3f08c837d1e0a3add2a0694f7c514d
index e2426dc7c..e2426dc7c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b1a841418e3f08c837d1e0a3add2a0694f7c514d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b1a841418e3f08c837d1e0a3add2a0694f7c514d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b1c8a7e92751d4038f29e32ad445f866dcf74105 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b1c8a7e92751d4038f29e32ad445f866dcf74105
index fbc56c134..fbc56c134 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b1c8a7e92751d4038f29e32ad445f866dcf74105
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b1c8a7e92751d4038f29e32ad445f866dcf74105
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b27920486c55aa90952a05259277c87c54a72216 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b27920486c55aa90952a05259277c87c54a72216
index 6ae119e59..6ae119e59 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b27920486c55aa90952a05259277c87c54a72216
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b27920486c55aa90952a05259277c87c54a72216
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b27c200fc507dc66cd9df99b0bf00e700df7978b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b27c200fc507dc66cd9df99b0bf00e700df7978b
index 2f1382d12..2f1382d12 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b27c200fc507dc66cd9df99b0bf00e700df7978b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b27c200fc507dc66cd9df99b0bf00e700df7978b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b29136b4735b672742bf0727cb4204f1d984e8e0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b29136b4735b672742bf0727cb4204f1d984e8e0
index 13efe6b02..13efe6b02 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b29136b4735b672742bf0727cb4204f1d984e8e0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b29136b4735b672742bf0727cb4204f1d984e8e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b2bc3528895c00c2a6579b2d6eab64bed001e5d6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b2bc3528895c00c2a6579b2d6eab64bed001e5d6
index aefcfb856..aefcfb856 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b2bc3528895c00c2a6579b2d6eab64bed001e5d6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b2bc3528895c00c2a6579b2d6eab64bed001e5d6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b2ee2a9147d1442b547f699d206e4470332a3157 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b2ee2a9147d1442b547f699d206e4470332a3157
index 562f63d59..562f63d59 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b2ee2a9147d1442b547f699d206e4470332a3157
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b2ee2a9147d1442b547f699d206e4470332a3157
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b342438fb74190ae90e154c55449fb1faabf5ca3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b342438fb74190ae90e154c55449fb1faabf5ca3
index 1f048d749..1f048d749 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b342438fb74190ae90e154c55449fb1faabf5ca3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b342438fb74190ae90e154c55449fb1faabf5ca3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b385ad5bde641c4a3bdfdde5c681ff441daac47e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b385ad5bde641c4a3bdfdde5c681ff441daac47e
index a27895051..a27895051 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b385ad5bde641c4a3bdfdde5c681ff441daac47e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b385ad5bde641c4a3bdfdde5c681ff441daac47e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b3a8c16c61b10c1a2f43ef263d4e7249447e9daa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b3a8c16c61b10c1a2f43ef263d4e7249447e9daa
index dff3bece1..dff3bece1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b3a8c16c61b10c1a2f43ef263d4e7249447e9daa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b3a8c16c61b10c1a2f43ef263d4e7249447e9daa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b3f0778337d526566c3399aa67ada2348cf1e4e0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b3f0778337d526566c3399aa67ada2348cf1e4e0
index cf19f6980..cf19f6980 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b3f0778337d526566c3399aa67ada2348cf1e4e0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b3f0778337d526566c3399aa67ada2348cf1e4e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b3f5db3e60ca973f7755d73331ceddf324b22aca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b3f5db3e60ca973f7755d73331ceddf324b22aca
index e4ed828a7..e4ed828a7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b3f5db3e60ca973f7755d73331ceddf324b22aca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b3f5db3e60ca973f7755d73331ceddf324b22aca
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b40639aa8ddaf3f58b3d3a33fca9aa4e2276cfd2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b40639aa8ddaf3f58b3d3a33fca9aa4e2276cfd2
index 06177cf40..06177cf40 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b40639aa8ddaf3f58b3d3a33fca9aa4e2276cfd2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b40639aa8ddaf3f58b3d3a33fca9aa4e2276cfd2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b4a807a02bceab157b22f0feec4bf62d9f488770 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4a807a02bceab157b22f0feec4bf62d9f488770
index 0be649180..0be649180 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b4a807a02bceab157b22f0feec4bf62d9f488770
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4a807a02bceab157b22f0feec4bf62d9f488770
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b4cbba666c34517a6bce50c2b71e8a28b29b39f4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4cbba666c34517a6bce50c2b71e8a28b29b39f4
index 605d1714d..605d1714d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b4cbba666c34517a6bce50c2b71e8a28b29b39f4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4cbba666c34517a6bce50c2b71e8a28b29b39f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b4d592739ba751c710a59c3e9034f2128cb466bb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4d592739ba751c710a59c3e9034f2128cb466bb
index 0a409290d..0a409290d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b4d592739ba751c710a59c3e9034f2128cb466bb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4d592739ba751c710a59c3e9034f2128cb466bb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b4dff5fec2c454de71f67134a897536b68c9932a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4dff5fec2c454de71f67134a897536b68c9932a
index 1dbabcf41..1dbabcf41 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b4dff5fec2c454de71f67134a897536b68c9932a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b4dff5fec2c454de71f67134a897536b68c9932a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b503210b7d52f2bec63171a69151fe24dd974cad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b503210b7d52f2bec63171a69151fe24dd974cad
index a65cf10ac..a65cf10ac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b503210b7d52f2bec63171a69151fe24dd974cad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b503210b7d52f2bec63171a69151fe24dd974cad
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b52220f528e6ce78d0dccfd38ca16a9d2101239c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b52220f528e6ce78d0dccfd38ca16a9d2101239c
index aa0c02d55..aa0c02d55 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b52220f528e6ce78d0dccfd38ca16a9d2101239c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b52220f528e6ce78d0dccfd38ca16a9d2101239c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b532d86fc6d19be278d5cc1f8d9428847955cd79 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b532d86fc6d19be278d5cc1f8d9428847955cd79
index febe094b0..febe094b0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b532d86fc6d19be278d5cc1f8d9428847955cd79
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b532d86fc6d19be278d5cc1f8d9428847955cd79
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b5577b2ab9838ec79282394b9284c475996d0d3a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5577b2ab9838ec79282394b9284c475996d0d3a
index b478014fa..b478014fa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b5577b2ab9838ec79282394b9284c475996d0d3a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5577b2ab9838ec79282394b9284c475996d0d3a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b574e07ae27ec00462d0e422842a9838c59bcc19 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b574e07ae27ec00462d0e422842a9838c59bcc19
index 8937eef1e..8937eef1e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b574e07ae27ec00462d0e422842a9838c59bcc19
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b574e07ae27ec00462d0e422842a9838c59bcc19
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b5819142efc4b5b9ca8167f59d61b6ed64648bed b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5819142efc4b5b9ca8167f59d61b6ed64648bed
index d0fa4a3da..d0fa4a3da 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b5819142efc4b5b9ca8167f59d61b6ed64648bed
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5819142efc4b5b9ca8167f59d61b6ed64648bed
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b58344bd5f6940773561b59a6e74633211bd5b86 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b58344bd5f6940773561b59a6e74633211bd5b86
index 1395f9865..1395f9865 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b58344bd5f6940773561b59a6e74633211bd5b86
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b58344bd5f6940773561b59a6e74633211bd5b86
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b5a4d296d5cb8b8bbd46497573a0a76561a3e6ce b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5a4d296d5cb8b8bbd46497573a0a76561a3e6ce
index 047b51c6d..047b51c6d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b5a4d296d5cb8b8bbd46497573a0a76561a3e6ce
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5a4d296d5cb8b8bbd46497573a0a76561a3e6ce
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b5a994076a8d74e70695e6fa995cb1ca773378b9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5a994076a8d74e70695e6fa995cb1ca773378b9
index 227accaf0..227accaf0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b5a994076a8d74e70695e6fa995cb1ca773378b9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5a994076a8d74e70695e6fa995cb1ca773378b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b5d37e379d76c7a7dc71a7a2c4ea534fafc4379a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5d37e379d76c7a7dc71a7a2c4ea534fafc4379a
index 02def0b5f..02def0b5f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b5d37e379d76c7a7dc71a7a2c4ea534fafc4379a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5d37e379d76c7a7dc71a7a2c4ea534fafc4379a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b5e7408d0fdb2bd531f46ffbb91fa40a0e8a8536 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5e7408d0fdb2bd531f46ffbb91fa40a0e8a8536
index a8a686aaa..a8a686aaa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b5e7408d0fdb2bd531f46ffbb91fa40a0e8a8536
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5e7408d0fdb2bd531f46ffbb91fa40a0e8a8536
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b5f7026801f01128c039413ae15b6d1f7a064344 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5f7026801f01128c039413ae15b6d1f7a064344
index 8a4456fb9..8a4456fb9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b5f7026801f01128c039413ae15b6d1f7a064344
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b5f7026801f01128c039413ae15b6d1f7a064344
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b6410673c58815fc9ed5fb56237db13d7b9a0caa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b6410673c58815fc9ed5fb56237db13d7b9a0caa
index 8798623cb..8798623cb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b6410673c58815fc9ed5fb56237db13d7b9a0caa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b6410673c58815fc9ed5fb56237db13d7b9a0caa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b64e937aea0b291a607d8315a362f3893238e7a1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b64e937aea0b291a607d8315a362f3893238e7a1
index 1bfd972fa..1bfd972fa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b64e937aea0b291a607d8315a362f3893238e7a1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b64e937aea0b291a607d8315a362f3893238e7a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b66bb5df8ada2871ad037b066d64a8cb9e0c404e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b66bb5df8ada2871ad037b066d64a8cb9e0c404e
index 89a34a85d..89a34a85d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b66bb5df8ada2871ad037b066d64a8cb9e0c404e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b66bb5df8ada2871ad037b066d64a8cb9e0c404e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b6807d89241464b235084469f78a9985a88a8301 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b6807d89241464b235084469f78a9985a88a8301
index da2ec3d02..da2ec3d02 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b6807d89241464b235084469f78a9985a88a8301
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b6807d89241464b235084469f78a9985a88a8301
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b6a6a966186af9645336c6599b7e9e99c1fbb401 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b6a6a966186af9645336c6599b7e9e99c1fbb401
index 99d906050..99d906050 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b6a6a966186af9645336c6599b7e9e99c1fbb401
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b6a6a966186af9645336c6599b7e9e99c1fbb401
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b715b868752ef2500fedfeb331cb8532a26e5acb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b715b868752ef2500fedfeb331cb8532a26e5acb
index b5a6370c8..b5a6370c8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b715b868752ef2500fedfeb331cb8532a26e5acb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b715b868752ef2500fedfeb331cb8532a26e5acb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b718f44821176b5723be286f174dc27303627713 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b718f44821176b5723be286f174dc27303627713
index 1ece224d3..1ece224d3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b718f44821176b5723be286f174dc27303627713
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b718f44821176b5723be286f174dc27303627713
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b757a0e3e546edeb0db02344702557d15f118d78 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b757a0e3e546edeb0db02344702557d15f118d78
index f9c748b35..f9c748b35 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b757a0e3e546edeb0db02344702557d15f118d78
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b757a0e3e546edeb0db02344702557d15f118d78
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b7a0543b9af57c0eeec63d8e47359da458f94cf3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7a0543b9af57c0eeec63d8e47359da458f94cf3
index ae2bae01a..ae2bae01a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b7a0543b9af57c0eeec63d8e47359da458f94cf3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7a0543b9af57c0eeec63d8e47359da458f94cf3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb
index 1811b0856..1811b0856 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b7c389a4828f509e20990b583f108371d9f5d457 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7c389a4828f509e20990b583f108371d9f5d457
index 6461e5286..6461e5286 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b7c389a4828f509e20990b583f108371d9f5d457
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7c389a4828f509e20990b583f108371d9f5d457
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b7ee247753085603a37f5abbff24f25639767177 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7ee247753085603a37f5abbff24f25639767177
index 98f7addd8..98f7addd8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b7ee247753085603a37f5abbff24f25639767177
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7ee247753085603a37f5abbff24f25639767177
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b7fdd720b7defc5d10bd61857ed923c84b99776b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7fdd720b7defc5d10bd61857ed923c84b99776b
index a0bfae842..a0bfae842 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b7fdd720b7defc5d10bd61857ed923c84b99776b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b7fdd720b7defc5d10bd61857ed923c84b99776b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4
index 22afeeb24..22afeeb24 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b830caa5d6d57bbce481c61b3d7b235d4aaf8f3e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b830caa5d6d57bbce481c61b3d7b235d4aaf8f3e
index 84b2a397f..84b2a397f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b830caa5d6d57bbce481c61b3d7b235d4aaf8f3e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b830caa5d6d57bbce481c61b3d7b235d4aaf8f3e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b86eda80168493da5e10ed7f560a193912bafce4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b86eda80168493da5e10ed7f560a193912bafce4
index 9d748a3c6..9d748a3c6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b86eda80168493da5e10ed7f560a193912bafce4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b86eda80168493da5e10ed7f560a193912bafce4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b876353acecdd029a9a9eade9e5ed091234ae162 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b876353acecdd029a9a9eade9e5ed091234ae162
index df27e21cf..df27e21cf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b876353acecdd029a9a9eade9e5ed091234ae162
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b876353acecdd029a9a9eade9e5ed091234ae162
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b87c9f70adf793a76cbee92988a54460263de1ef b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b87c9f70adf793a76cbee92988a54460263de1ef
index dc8f11179..dc8f11179 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b87c9f70adf793a76cbee92988a54460263de1ef
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b87c9f70adf793a76cbee92988a54460263de1ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b8864ac17add0dafd530ae2bca1c723557f5a5d5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8864ac17add0dafd530ae2bca1c723557f5a5d5
index 4e86d4cb8..4e86d4cb8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b8864ac17add0dafd530ae2bca1c723557f5a5d5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8864ac17add0dafd530ae2bca1c723557f5a5d5
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b892987959c5ac42c3dfcaf9251233d65f388c26 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b892987959c5ac42c3dfcaf9251233d65f388c26
index 30fd1708c..30fd1708c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b892987959c5ac42c3dfcaf9251233d65f388c26
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b892987959c5ac42c3dfcaf9251233d65f388c26
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b89d702a5e0d520486f0da89f8b71ab50f601985 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b89d702a5e0d520486f0da89f8b71ab50f601985
index 9cdfee4d6..9cdfee4d6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b89d702a5e0d520486f0da89f8b71ab50f601985
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b89d702a5e0d520486f0da89f8b71ab50f601985
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b8d773af992eca56a0eafe3c607a31c40c4f8422 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8d773af992eca56a0eafe3c607a31c40c4f8422
index b307dee30..b307dee30 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b8d773af992eca56a0eafe3c607a31c40c4f8422
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8d773af992eca56a0eafe3c607a31c40c4f8422
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b8e582bfcd788e0b8a185aa28a793fff587fec40 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8e582bfcd788e0b8a185aa28a793fff587fec40
index 9a79244b7..9a79244b7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b8e582bfcd788e0b8a185aa28a793fff587fec40
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b8e582bfcd788e0b8a185aa28a793fff587fec40
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b99e0a9e5de44aeeb073dcf134c311868dd7f9c5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b99e0a9e5de44aeeb073dcf134c311868dd7f9c5
index 55595f9b1..55595f9b1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b99e0a9e5de44aeeb073dcf134c311868dd7f9c5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b99e0a9e5de44aeeb073dcf134c311868dd7f9c5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/b9e14a2a304eb3f07456587568c4de4279c5ef02 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b9e14a2a304eb3f07456587568c4de4279c5ef02
index 814cc319e..814cc319e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/b9e14a2a304eb3f07456587568c4de4279c5ef02
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/b9e14a2a304eb3f07456587568c4de4279c5ef02
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ba38b341f826ca1b6014556feacd1dfa54d72f3e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba38b341f826ca1b6014556feacd1dfa54d72f3e
index c4dd50425..c4dd50425 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ba38b341f826ca1b6014556feacd1dfa54d72f3e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba38b341f826ca1b6014556feacd1dfa54d72f3e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ba52d5288ede7c4f1203817e6d8bc59245f22b23 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba52d5288ede7c4f1203817e6d8bc59245f22b23
index ee8f7ab4d..ee8f7ab4d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ba52d5288ede7c4f1203817e6d8bc59245f22b23
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba52d5288ede7c4f1203817e6d8bc59245f22b23
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ba70d3d33a9c5273f5249e3d3ac1e5366bffc06c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba70d3d33a9c5273f5249e3d3ac1e5366bffc06c
index 9a1ade30b..9a1ade30b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ba70d3d33a9c5273f5249e3d3ac1e5366bffc06c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba70d3d33a9c5273f5249e3d3ac1e5366bffc06c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ba826ce46c71889c2e7142e886748f46faa1b52b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba826ce46c71889c2e7142e886748f46faa1b52b
index aafe1ce2a..aafe1ce2a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ba826ce46c71889c2e7142e886748f46faa1b52b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ba826ce46c71889c2e7142e886748f46faa1b52b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/baaadbff0c1e2bee028bd5df2962615121f99779 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/baaadbff0c1e2bee028bd5df2962615121f99779
index aef1c6615..aef1c6615 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/baaadbff0c1e2bee028bd5df2962615121f99779
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/baaadbff0c1e2bee028bd5df2962615121f99779
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/baba67f17b92bbb16a70443c4149cdc3498d6a3d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/baba67f17b92bbb16a70443c4149cdc3498d6a3d
index f2ea8f95b..f2ea8f95b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/baba67f17b92bbb16a70443c4149cdc3498d6a3d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/baba67f17b92bbb16a70443c4149cdc3498d6a3d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bacb1ff1c07ee138f591980737132364b5ddd678 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bacb1ff1c07ee138f591980737132364b5ddd678
index 5b63af137..5b63af137 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bacb1ff1c07ee138f591980737132364b5ddd678
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bacb1ff1c07ee138f591980737132364b5ddd678
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/baf097c15bd379effe9f6847bbf84c1ce43087da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/baf097c15bd379effe9f6847bbf84c1ce43087da
index a91f4a105..a91f4a105 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/baf097c15bd379effe9f6847bbf84c1ce43087da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/baf097c15bd379effe9f6847bbf84c1ce43087da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bb139c78b3252777f2a6eb1fd971015631af56ac b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb139c78b3252777f2a6eb1fd971015631af56ac
index 6dba19d94..6dba19d94 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bb139c78b3252777f2a6eb1fd971015631af56ac
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb139c78b3252777f2a6eb1fd971015631af56ac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bb17a10bcede19bdcee1ab8f678c80b0decca17b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb17a10bcede19bdcee1ab8f678c80b0decca17b
index 1fd422ed1..1fd422ed1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bb17a10bcede19bdcee1ab8f678c80b0decca17b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb17a10bcede19bdcee1ab8f678c80b0decca17b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bb2d230152f76359631f8fb342977caf8af6cb80 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb2d230152f76359631f8fb342977caf8af6cb80
index caf04f2b1..caf04f2b1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bb2d230152f76359631f8fb342977caf8af6cb80
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb2d230152f76359631f8fb342977caf8af6cb80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bb5866054bd1f2a12c85bf5286db31aaea8d3029 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb5866054bd1f2a12c85bf5286db31aaea8d3029
index 1491cda1e..1491cda1e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bb5866054bd1f2a12c85bf5286db31aaea8d3029
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb5866054bd1f2a12c85bf5286db31aaea8d3029
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bb84924900af06275c9eedc32ece9b3ef0c92352 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb84924900af06275c9eedc32ece9b3ef0c92352
index 30c4cca4e..30c4cca4e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bb84924900af06275c9eedc32ece9b3ef0c92352
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bb84924900af06275c9eedc32ece9b3ef0c92352
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2
index 519fb40dd..519fb40dd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bc2b12140035a5ded8c961ea6a58bb9f07f54171 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc2b12140035a5ded8c961ea6a58bb9f07f54171
index dd8fbad7d..dd8fbad7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bc2b12140035a5ded8c961ea6a58bb9f07f54171
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc2b12140035a5ded8c961ea6a58bb9f07f54171
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bc3b5fffb0c5ae2cd36aedad0983a3f2d2dacbbd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc3b5fffb0c5ae2cd36aedad0983a3f2d2dacbbd
index 20800b719..20800b719 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bc3b5fffb0c5ae2cd36aedad0983a3f2d2dacbbd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc3b5fffb0c5ae2cd36aedad0983a3f2d2dacbbd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bc4ae09125c1f67b1b06b54690b9650b80b2416a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc4ae09125c1f67b1b06b54690b9650b80b2416a
index 5d3f9c265..5d3f9c265 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bc4ae09125c1f67b1b06b54690b9650b80b2416a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc4ae09125c1f67b1b06b54690b9650b80b2416a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bc66fb668d3d74d1c2a01aac756078b2dfd02963 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc66fb668d3d74d1c2a01aac756078b2dfd02963
index ac0e7ffc9..ac0e7ffc9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bc66fb668d3d74d1c2a01aac756078b2dfd02963
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc66fb668d3d74d1c2a01aac756078b2dfd02963
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bc90cf4968b68ff450dae4b8e6595ad7a817b801 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc90cf4968b68ff450dae4b8e6595ad7a817b801
index 8df19d9ab..8df19d9ab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bc90cf4968b68ff450dae4b8e6595ad7a817b801
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bc90cf4968b68ff450dae4b8e6595ad7a817b801
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bcfef026a9a985385b4ba85d6d5a1019a5736112 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bcfef026a9a985385b4ba85d6d5a1019a5736112
index 61bf278be..61bf278be 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bcfef026a9a985385b4ba85d6d5a1019a5736112
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bcfef026a9a985385b4ba85d6d5a1019a5736112
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bd1385f028310c31db87649a9816a3fbae457d21 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd1385f028310c31db87649a9816a3fbae457d21
index b5efd5fef..b5efd5fef 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bd1385f028310c31db87649a9816a3fbae457d21
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd1385f028310c31db87649a9816a3fbae457d21
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bd22df898e33509ed8d72d8293c9c1a7043b67ff b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd22df898e33509ed8d72d8293c9c1a7043b67ff
index c2e372530..c2e372530 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bd22df898e33509ed8d72d8293c9c1a7043b67ff
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd22df898e33509ed8d72d8293c9c1a7043b67ff
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bd933e26050e12430e7a51c60553a4e1922688d3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd933e26050e12430e7a51c60553a4e1922688d3
index 9ad913467..9ad913467 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bd933e26050e12430e7a51c60553a4e1922688d3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd933e26050e12430e7a51c60553a4e1922688d3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bd957a9d224d6bc3b885bdd989e57ddec39b5c93 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd957a9d224d6bc3b885bdd989e57ddec39b5c93
index a3a8a5b67..a3a8a5b67 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bd957a9d224d6bc3b885bdd989e57ddec39b5c93
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bd957a9d224d6bc3b885bdd989e57ddec39b5c93
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bdaae85a8591396da085fda120f75f02d7971247 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bdaae85a8591396da085fda120f75f02d7971247
index b947378fe..b947378fe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bdaae85a8591396da085fda120f75f02d7971247
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bdaae85a8591396da085fda120f75f02d7971247
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/be997aae7d8dffbb3b8949ce78aa0d8d5904b93d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/be997aae7d8dffbb3b8949ce78aa0d8d5904b93d
index bda2c2628..bda2c2628 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/be997aae7d8dffbb3b8949ce78aa0d8d5904b93d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/be997aae7d8dffbb3b8949ce78aa0d8d5904b93d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/beb20603113fe7557938053901e008dbe34b7cab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/beb20603113fe7557938053901e008dbe34b7cab
index 4bc491a2f..4bc491a2f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/beb20603113fe7557938053901e008dbe34b7cab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/beb20603113fe7557938053901e008dbe34b7cab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/beb3b62418d3ea204cc96cd0176ce18606221c59 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/beb3b62418d3ea204cc96cd0176ce18606221c59
index 129700766..129700766 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/beb3b62418d3ea204cc96cd0176ce18606221c59
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/beb3b62418d3ea204cc96cd0176ce18606221c59
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bee4e17ac16a1ca3c4a43bda5a4fa832d61a8cf3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bee4e17ac16a1ca3c4a43bda5a4fa832d61a8cf3
index efbbea9e1..efbbea9e1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bee4e17ac16a1ca3c4a43bda5a4fa832d61a8cf3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bee4e17ac16a1ca3c4a43bda5a4fa832d61a8cf3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/befcd928cad265d3dae2d2d5f3d88bb36da9c2c7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/befcd928cad265d3dae2d2d5f3d88bb36da9c2c7
index a09e3d7a6..a09e3d7a6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/befcd928cad265d3dae2d2d5f3d88bb36da9c2c7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/befcd928cad265d3dae2d2d5f3d88bb36da9c2c7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bf50ede90ebed45d11524b445be92ee188cd5889 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bf50ede90ebed45d11524b445be92ee188cd5889
index f84ee0086..f84ee0086 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bf50ede90ebed45d11524b445be92ee188cd5889
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bf50ede90ebed45d11524b445be92ee188cd5889
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bfcaafb42d26994e69183dc847a9b45bdfb8866a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bfcaafb42d26994e69183dc847a9b45bdfb8866a
index 8b5a40f53..8b5a40f53 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bfcaafb42d26994e69183dc847a9b45bdfb8866a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bfcaafb42d26994e69183dc847a9b45bdfb8866a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/bfe70db8016249424b52bec5a508a84d3549ad10 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bfe70db8016249424b52bec5a508a84d3549ad10
index 1ca0f0325..1ca0f0325 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/bfe70db8016249424b52bec5a508a84d3549ad10
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/bfe70db8016249424b52bec5a508a84d3549ad10
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c021cec8f028c601c5686933c407d38bdf4145d7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c021cec8f028c601c5686933c407d38bdf4145d7
index bfc613cc9..bfc613cc9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c021cec8f028c601c5686933c407d38bdf4145d7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c021cec8f028c601c5686933c407d38bdf4145d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c029b30dcaa98c1446e3fd4d7618ab91f0e0d8d8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c029b30dcaa98c1446e3fd4d7618ab91f0e0d8d8
index b835bf829..b835bf829 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c029b30dcaa98c1446e3fd4d7618ab91f0e0d8d8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c029b30dcaa98c1446e3fd4d7618ab91f0e0d8d8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c02e6b43b35edca7ebbf45a98bf026ef9664392e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c02e6b43b35edca7ebbf45a98bf026ef9664392e
index 7cd5ba87f..7cd5ba87f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c02e6b43b35edca7ebbf45a98bf026ef9664392e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c02e6b43b35edca7ebbf45a98bf026ef9664392e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c0692802a1d8111763e9b288f3ed6c6ccae8e6ec b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c0692802a1d8111763e9b288f3ed6c6ccae8e6ec
index a38128287..a38128287 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c0692802a1d8111763e9b288f3ed6c6ccae8e6ec
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c0692802a1d8111763e9b288f3ed6c6ccae8e6ec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c06bad79571816d07e829e7963172cd57415a83f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c06bad79571816d07e829e7963172cd57415a83f
index 67435b81c..67435b81c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c06bad79571816d07e829e7963172cd57415a83f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c06bad79571816d07e829e7963172cd57415a83f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c08f5519366ad89d7f9fb587a1a59e535a97722b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c08f5519366ad89d7f9fb587a1a59e535a97722b
index 469c296d0..469c296d0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c08f5519366ad89d7f9fb587a1a59e535a97722b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c08f5519366ad89d7f9fb587a1a59e535a97722b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c09251148eb0b9888f55d1adb75f87f17969b7e4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c09251148eb0b9888f55d1adb75f87f17969b7e4
index 81f462df6..81f462df6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c09251148eb0b9888f55d1adb75f87f17969b7e4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c09251148eb0b9888f55d1adb75f87f17969b7e4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c0da332c7d37a2ee232d8255cebc230c651876dc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c0da332c7d37a2ee232d8255cebc230c651876dc
index 8d5234ad8..8d5234ad8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c0da332c7d37a2ee232d8255cebc230c651876dc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c0da332c7d37a2ee232d8255cebc230c651876dc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c0f76ba022c77931d721e4c30e1e316774db4f7a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c0f76ba022c77931d721e4c30e1e316774db4f7a
index 8f1241ef1..8f1241ef1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c0f76ba022c77931d721e4c30e1e316774db4f7a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c0f76ba022c77931d721e4c30e1e316774db4f7a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c11b7b570839de527401e8dd0385ab7e9880e05f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c11b7b570839de527401e8dd0385ab7e9880e05f
index a58171140..a58171140 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c11b7b570839de527401e8dd0385ab7e9880e05f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c11b7b570839de527401e8dd0385ab7e9880e05f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c16d06c0db84e3bdbbdcef634b2efb02363df0d4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c16d06c0db84e3bdbbdcef634b2efb02363df0d4
index 8cf0be0fa..8cf0be0fa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c16d06c0db84e3bdbbdcef634b2efb02363df0d4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c16d06c0db84e3bdbbdcef634b2efb02363df0d4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c176f2f2b2de5497d460f94689d1ba5bcda44927 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c176f2f2b2de5497d460f94689d1ba5bcda44927
index 50fa68ec5..50fa68ec5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c176f2f2b2de5497d460f94689d1ba5bcda44927
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c176f2f2b2de5497d460f94689d1ba5bcda44927
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c1787a9163d4a19d694a312a6f788dd6dab29ebb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1787a9163d4a19d694a312a6f788dd6dab29ebb
index 43e87bfe9..43e87bfe9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c1787a9163d4a19d694a312a6f788dd6dab29ebb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1787a9163d4a19d694a312a6f788dd6dab29ebb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c17a64d4605b4b5c252fbda6e91d50c460e8375f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c17a64d4605b4b5c252fbda6e91d50c460e8375f
index 8950c2ef1..8950c2ef1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c17a64d4605b4b5c252fbda6e91d50c460e8375f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c17a64d4605b4b5c252fbda6e91d50c460e8375f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c1846c1f478db3d987bd587517fdf2801f03a393 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1846c1f478db3d987bd587517fdf2801f03a393
index 02b399cbd..02b399cbd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c1846c1f478db3d987bd587517fdf2801f03a393
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1846c1f478db3d987bd587517fdf2801f03a393
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c186fa47779d9293dfa549d066a505d9e0732b42 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c186fa47779d9293dfa549d066a505d9e0732b42
index 4ed3ebd0d..4ed3ebd0d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c186fa47779d9293dfa549d066a505d9e0732b42
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c186fa47779d9293dfa549d066a505d9e0732b42
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c19c7dace0c77127bcaf2d81b31cddff10cdce49 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c19c7dace0c77127bcaf2d81b31cddff10cdce49
index 29ad99eb2..29ad99eb2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c19c7dace0c77127bcaf2d81b31cddff10cdce49
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c19c7dace0c77127bcaf2d81b31cddff10cdce49
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c1af382451ea14407f074635d4860f54e00e9c5d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1af382451ea14407f074635d4860f54e00e9c5d
index 3e53231dc..3e53231dc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c1af382451ea14407f074635d4860f54e00e9c5d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1af382451ea14407f074635d4860f54e00e9c5d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c1de8e15b8678c69f9cf03dc06817195e8ce9386 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1de8e15b8678c69f9cf03dc06817195e8ce9386
index e7074aa85..e7074aa85 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c1de8e15b8678c69f9cf03dc06817195e8ce9386
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1de8e15b8678c69f9cf03dc06817195e8ce9386
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c1e985e116a9e7d0aef15b15a2fd7ea26ddc4958 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1e985e116a9e7d0aef15b15a2fd7ea26ddc4958
index 88fe2da82..88fe2da82 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c1e985e116a9e7d0aef15b15a2fd7ea26ddc4958
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1e985e116a9e7d0aef15b15a2fd7ea26ddc4958
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c1f77fa6b080ccc8e25c97536001ca20e0cb28db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1f77fa6b080ccc8e25c97536001ca20e0cb28db
index 18e7b9c99..18e7b9c99 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c1f77fa6b080ccc8e25c97536001ca20e0cb28db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c1f77fa6b080ccc8e25c97536001ca20e0cb28db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c222f7ef089c57a50858194c25ace0e1faece587 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c222f7ef089c57a50858194c25ace0e1faece587
index f8f3949a6..f8f3949a6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c222f7ef089c57a50858194c25ace0e1faece587
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c222f7ef089c57a50858194c25ace0e1faece587
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c22df640c2b0b17aefb4524507cac64889df09ae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c22df640c2b0b17aefb4524507cac64889df09ae
index 3888a4e7d..3888a4e7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c22df640c2b0b17aefb4524507cac64889df09ae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c22df640c2b0b17aefb4524507cac64889df09ae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c25b4ef4a6d79efe0c7707d3ee875dea8c6d5b75 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c25b4ef4a6d79efe0c7707d3ee875dea8c6d5b75
index 582ee1d9e..582ee1d9e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c25b4ef4a6d79efe0c7707d3ee875dea8c6d5b75
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c25b4ef4a6d79efe0c7707d3ee875dea8c6d5b75
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c276619813c3f9212518d191c100f18829b0fb7c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c276619813c3f9212518d191c100f18829b0fb7c
index 865deb649..865deb649 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c276619813c3f9212518d191c100f18829b0fb7c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c276619813c3f9212518d191c100f18829b0fb7c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c27cc215072a47c2af47c4e624038be5123ae727 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c27cc215072a47c2af47c4e624038be5123ae727
index c4a3dbbbf..c4a3dbbbf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c27cc215072a47c2af47c4e624038be5123ae727
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c27cc215072a47c2af47c4e624038be5123ae727
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c281207c4a364843b25292d9bd492b2953ea4837 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c281207c4a364843b25292d9bd492b2953ea4837
index 9e212f0f7..9e212f0f7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c281207c4a364843b25292d9bd492b2953ea4837
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c281207c4a364843b25292d9bd492b2953ea4837
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c2874cdd3ce2588e9d12f4a87355110701f71342 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2874cdd3ce2588e9d12f4a87355110701f71342
index ed6f29403..ed6f29403 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c2874cdd3ce2588e9d12f4a87355110701f71342
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2874cdd3ce2588e9d12f4a87355110701f71342
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c2c8a163add45b5d5f3a934b5536cf7775259bad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2c8a163add45b5d5f3a934b5536cf7775259bad
index a38740b1f..a38740b1f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c2c8a163add45b5d5f3a934b5536cf7775259bad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2c8a163add45b5d5f3a934b5536cf7775259bad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c2d7ed7fa3c3b2c59273abb43105c9a85a59d15b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2d7ed7fa3c3b2c59273abb43105c9a85a59d15b
index 80a3409d8..80a3409d8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c2d7ed7fa3c3b2c59273abb43105c9a85a59d15b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2d7ed7fa3c3b2c59273abb43105c9a85a59d15b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c2d8b6031f61d6f67254846c84d5d514a9c714cf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2d8b6031f61d6f67254846c84d5d514a9c714cf
index c659a38b3..c659a38b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c2d8b6031f61d6f67254846c84d5d514a9c714cf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c2d8b6031f61d6f67254846c84d5d514a9c714cf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c32ff265f89f02cac564fb83a32fb2ef5f22357c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c32ff265f89f02cac564fb83a32fb2ef5f22357c
index a0c96164f..a0c96164f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c32ff265f89f02cac564fb83a32fb2ef5f22357c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c32ff265f89f02cac564fb83a32fb2ef5f22357c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c394f4ceff5a9a3eb4c8beb156c57f8f00c1a404 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c394f4ceff5a9a3eb4c8beb156c57f8f00c1a404
index 0e1c56cc6..0e1c56cc6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c394f4ceff5a9a3eb4c8beb156c57f8f00c1a404
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c394f4ceff5a9a3eb4c8beb156c57f8f00c1a404
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c39e910e0bbf2276a5f8b95e30bcf473bd13c066 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c39e910e0bbf2276a5f8b95e30bcf473bd13c066
index be01295d0..be01295d0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c39e910e0bbf2276a5f8b95e30bcf473bd13c066
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c39e910e0bbf2276a5f8b95e30bcf473bd13c066
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c3e87ebafd8db7fb66f307530edd283bef452906 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c3e87ebafd8db7fb66f307530edd283bef452906
index 200536e6d..200536e6d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c3e87ebafd8db7fb66f307530edd283bef452906
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c3e87ebafd8db7fb66f307530edd283bef452906
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c4189f6a1be9478427468580ce846e279461b6df b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4189f6a1be9478427468580ce846e279461b6df
index 59313e295..59313e295 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c4189f6a1be9478427468580ce846e279461b6df
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4189f6a1be9478427468580ce846e279461b6df
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c41aca37b892a4f6eefad988dde6c241eda33ca9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c41aca37b892a4f6eefad988dde6c241eda33ca9
index 406c7c808..406c7c808 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c41aca37b892a4f6eefad988dde6c241eda33ca9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c41aca37b892a4f6eefad988dde6c241eda33ca9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c43da4276f593025f4b7a05861b0e00fdb6f63af b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c43da4276f593025f4b7a05861b0e00fdb6f63af
index 896a4ba21..896a4ba21 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c43da4276f593025f4b7a05861b0e00fdb6f63af
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c43da4276f593025f4b7a05861b0e00fdb6f63af
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c4491be97a01350d07e6d927f2474945fb632635 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4491be97a01350d07e6d927f2474945fb632635
index 2f3d77f5a..2f3d77f5a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c4491be97a01350d07e6d927f2474945fb632635
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4491be97a01350d07e6d927f2474945fb632635
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c458b31475abf1f01ac2442539fbe9f7a425aefa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c458b31475abf1f01ac2442539fbe9f7a425aefa
index 1b55d6bc0..1b55d6bc0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c458b31475abf1f01ac2442539fbe9f7a425aefa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c458b31475abf1f01ac2442539fbe9f7a425aefa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c498594519fd64d28b03237bb76382fa416641ab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c498594519fd64d28b03237bb76382fa416641ab
index 60b7022cc..60b7022cc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c498594519fd64d28b03237bb76382fa416641ab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c498594519fd64d28b03237bb76382fa416641ab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c4a9eeda6cf6f9f6eb895037d99b90651773f776 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4a9eeda6cf6f9f6eb895037d99b90651773f776
index fe06ae6cc..fe06ae6cc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c4a9eeda6cf6f9f6eb895037d99b90651773f776
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4a9eeda6cf6f9f6eb895037d99b90651773f776
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9
index 8f1112c49..8f1112c49 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c4f101079502a8f71a00e20044a9fbc5d1e21e38 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4f101079502a8f71a00e20044a9fbc5d1e21e38
index 473120576..473120576 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c4f101079502a8f71a00e20044a9fbc5d1e21e38
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4f101079502a8f71a00e20044a9fbc5d1e21e38
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c4f7a33197c8af23e16834485777fd46e95495e1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4f7a33197c8af23e16834485777fd46e95495e1
index e5b72bb78..e5b72bb78 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c4f7a33197c8af23e16834485777fd46e95495e1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c4f7a33197c8af23e16834485777fd46e95495e1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c505f1bf51a02f2abd69a03feda671723ad0563b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c505f1bf51a02f2abd69a03feda671723ad0563b
index 5a014cc40..5a014cc40 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c505f1bf51a02f2abd69a03feda671723ad0563b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c505f1bf51a02f2abd69a03feda671723ad0563b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c50efd86929606fee862ff671b339db309c6ded4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c50efd86929606fee862ff671b339db309c6ded4
index 4506254fc..4506254fc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c50efd86929606fee862ff671b339db309c6ded4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c50efd86929606fee862ff671b339db309c6ded4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c56569eca2e444272b0455b2789d0581173edaf4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c56569eca2e444272b0455b2789d0581173edaf4
index af2ee20bc..af2ee20bc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c56569eca2e444272b0455b2789d0581173edaf4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c56569eca2e444272b0455b2789d0581173edaf4
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c576393103dfaf6762960c6af2d1a05a221186db b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c576393103dfaf6762960c6af2d1a05a221186db
index ed4087a54..ed4087a54 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c576393103dfaf6762960c6af2d1a05a221186db
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c576393103dfaf6762960c6af2d1a05a221186db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c5a4e43e9dc16dd58052f1b7a22f2c410c7c47ba b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5a4e43e9dc16dd58052f1b7a22f2c410c7c47ba
index 7a946ef69..7a946ef69 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c5a4e43e9dc16dd58052f1b7a22f2c410c7c47ba
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5a4e43e9dc16dd58052f1b7a22f2c410c7c47ba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c5a8702688bb9cb0d3647629e2608a8ce7b66259 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5a8702688bb9cb0d3647629e2608a8ce7b66259
index 48dbbe436..48dbbe436 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c5a8702688bb9cb0d3647629e2608a8ce7b66259
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5a8702688bb9cb0d3647629e2608a8ce7b66259
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c5bb4ee17a8bf3b1d3bc243b96c3aac5690bf940 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5bb4ee17a8bf3b1d3bc243b96c3aac5690bf940
index 81405f65f..81405f65f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c5bb4ee17a8bf3b1d3bc243b96c3aac5690bf940
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5bb4ee17a8bf3b1d3bc243b96c3aac5690bf940
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c5bda9711617522864c8223f5f49b1bc8e5960c1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5bda9711617522864c8223f5f49b1bc8e5960c1
index e627cf5fc..e627cf5fc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c5bda9711617522864c8223f5f49b1bc8e5960c1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5bda9711617522864c8223f5f49b1bc8e5960c1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c5d2c1afc591b3c7504e77f8cdaf9e879dbeccd4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5d2c1afc591b3c7504e77f8cdaf9e879dbeccd4
index 590dd823b..590dd823b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c5d2c1afc591b3c7504e77f8cdaf9e879dbeccd4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5d2c1afc591b3c7504e77f8cdaf9e879dbeccd4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c5db5393799577aae57242edf075bd0f207e083b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5db5393799577aae57242edf075bd0f207e083b
index fdcfdebca..fdcfdebca 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c5db5393799577aae57242edf075bd0f207e083b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c5db5393799577aae57242edf075bd0f207e083b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c6357c2e548fb60874550e6db4d139cadd9fdf28 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c6357c2e548fb60874550e6db4d139cadd9fdf28
index 0d929b213..0d929b213 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c6357c2e548fb60874550e6db4d139cadd9fdf28
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c6357c2e548fb60874550e6db4d139cadd9fdf28
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c648716d4b33bc6d11a5dccbfff4d353afab6ff2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c648716d4b33bc6d11a5dccbfff4d353afab6ff2
index 71f69eb5e..71f69eb5e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c648716d4b33bc6d11a5dccbfff4d353afab6ff2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c648716d4b33bc6d11a5dccbfff4d353afab6ff2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c648d418d92d50174d6423d817fd9670ed3465be b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c648d418d92d50174d6423d817fd9670ed3465be
index 17630a36d..17630a36d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c648d418d92d50174d6423d817fd9670ed3465be
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c648d418d92d50174d6423d817fd9670ed3465be
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c656779f655e0f8cbeab1f7ea563d76332156165 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c656779f655e0f8cbeab1f7ea563d76332156165
index 44f4cb08d..44f4cb08d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c656779f655e0f8cbeab1f7ea563d76332156165
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c656779f655e0f8cbeab1f7ea563d76332156165
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c66728837c7309106bb0c729f9586f8c67086eae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c66728837c7309106bb0c729f9586f8c67086eae
index 14f7c6c6d..14f7c6c6d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c66728837c7309106bb0c729f9586f8c67086eae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c66728837c7309106bb0c729f9586f8c67086eae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c67f1f8340ba1b99c39564b48ad9df499ef2bb7f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c67f1f8340ba1b99c39564b48ad9df499ef2bb7f
index 4db8d56bb..4db8d56bb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c67f1f8340ba1b99c39564b48ad9df499ef2bb7f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c67f1f8340ba1b99c39564b48ad9df499ef2bb7f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c6c47abeaf3bd2a47fc3eebc34731cdf37e9d296 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c6c47abeaf3bd2a47fc3eebc34731cdf37e9d296
index 07940cf60..07940cf60 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c6c47abeaf3bd2a47fc3eebc34731cdf37e9d296
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c6c47abeaf3bd2a47fc3eebc34731cdf37e9d296
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c6c56e1d10abee53544eb02398867060a2e298eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c6c56e1d10abee53544eb02398867060a2e298eb
index d906074eb..d906074eb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c6c56e1d10abee53544eb02398867060a2e298eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c6c56e1d10abee53544eb02398867060a2e298eb
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c72eebadd197ad939c383e1b33a77a04f6cf0e81 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c72eebadd197ad939c383e1b33a77a04f6cf0e81
index b9e6e1147..b9e6e1147 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c72eebadd197ad939c383e1b33a77a04f6cf0e81
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c72eebadd197ad939c383e1b33a77a04f6cf0e81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c746490c3a9ebc30df388c8e2c58f8d97a4dc89d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c746490c3a9ebc30df388c8e2c58f8d97a4dc89d
index 5f328fad8..5f328fad8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c746490c3a9ebc30df388c8e2c58f8d97a4dc89d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c746490c3a9ebc30df388c8e2c58f8d97a4dc89d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c770e10f0c86bae6af84d9f4f2bf9c06bf9f86c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c770e10f0c86bae6af84d9f4f2bf9c06bf9f86c2
index 420500f0e..420500f0e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c770e10f0c86bae6af84d9f4f2bf9c06bf9f86c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c770e10f0c86bae6af84d9f4f2bf9c06bf9f86c2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c7ad2f6267d232dae0fec4c8e0691c7cdf6d6797 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7ad2f6267d232dae0fec4c8e0691c7cdf6d6797
index 2d99279ac..2d99279ac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c7ad2f6267d232dae0fec4c8e0691c7cdf6d6797
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7ad2f6267d232dae0fec4c8e0691c7cdf6d6797
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c7bf755f265890d26fa931e36ac352a20d2ebcda b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7bf755f265890d26fa931e36ac352a20d2ebcda
index 3d5a07e9f..3d5a07e9f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c7bf755f265890d26fa931e36ac352a20d2ebcda
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7bf755f265890d26fa931e36ac352a20d2ebcda
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c7c9c3a4b7c5042b68b71a4deba8403fcdb898a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7c9c3a4b7c5042b68b71a4deba8403fcdb898a5
index 41bfb127b..41bfb127b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c7c9c3a4b7c5042b68b71a4deba8403fcdb898a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7c9c3a4b7c5042b68b71a4deba8403fcdb898a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c7e3ffc92f3383fc64769311db156ef5e25d506f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7e3ffc92f3383fc64769311db156ef5e25d506f
index 00e01cc9c..00e01cc9c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c7e3ffc92f3383fc64769311db156ef5e25d506f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c7e3ffc92f3383fc64769311db156ef5e25d506f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c824c784f793eb7cfe59882beec84e588373e62d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c824c784f793eb7cfe59882beec84e588373e62d
index 3df01f8ad..3df01f8ad 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c824c784f793eb7cfe59882beec84e588373e62d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c824c784f793eb7cfe59882beec84e588373e62d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c8636a1773ae5fae948f6c24a5568db4522e8097 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c8636a1773ae5fae948f6c24a5568db4522e8097
index 682b8fd64..682b8fd64 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c8636a1773ae5fae948f6c24a5568db4522e8097
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c8636a1773ae5fae948f6c24a5568db4522e8097
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c868da856fd94729c393612217743a2742411954 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c868da856fd94729c393612217743a2742411954
index de14a88c9..de14a88c9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c868da856fd94729c393612217743a2742411954
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c868da856fd94729c393612217743a2742411954
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c86c98f504603f77cc2fe0e480569a93bacf939a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c86c98f504603f77cc2fe0e480569a93bacf939a
index d452767e2..d452767e2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c86c98f504603f77cc2fe0e480569a93bacf939a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c86c98f504603f77cc2fe0e480569a93bacf939a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c8f8ffc626b6c4efe1c9542c2e9b4da70faa6a94 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c8f8ffc626b6c4efe1c9542c2e9b4da70faa6a94
index dfdb07fe2..dfdb07fe2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c8f8ffc626b6c4efe1c9542c2e9b4da70faa6a94
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c8f8ffc626b6c4efe1c9542c2e9b4da70faa6a94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c8fbf98f5df2c3027591b2d2183b8c791f1593ae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c8fbf98f5df2c3027591b2d2183b8c791f1593ae
index 055f558ed..055f558ed 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c8fbf98f5df2c3027591b2d2183b8c791f1593ae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c8fbf98f5df2c3027591b2d2183b8c791f1593ae
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c92b6cacff08d122b69b4b8b0a87713a6be2485e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c92b6cacff08d122b69b4b8b0a87713a6be2485e
index 36806e4ee..36806e4ee 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c92b6cacff08d122b69b4b8b0a87713a6be2485e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c92b6cacff08d122b69b4b8b0a87713a6be2485e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c9493905f1321e488049116c78ae3ee91cac452d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c9493905f1321e488049116c78ae3ee91cac452d
index 342daf168..342daf168 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c9493905f1321e488049116c78ae3ee91cac452d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c9493905f1321e488049116c78ae3ee91cac452d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c94f223716c436630103b328a36ca8bc8a5fd9b2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c94f223716c436630103b328a36ca8bc8a5fd9b2
index eff017e39..eff017e39 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c94f223716c436630103b328a36ca8bc8a5fd9b2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c94f223716c436630103b328a36ca8bc8a5fd9b2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c99a2813b22c19470fc1bd6a5dc48a1aebb61597 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c99a2813b22c19470fc1bd6a5dc48a1aebb61597
index b222d9ce3..b222d9ce3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c99a2813b22c19470fc1bd6a5dc48a1aebb61597
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c99a2813b22c19470fc1bd6a5dc48a1aebb61597
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c99b7205e30b9f93fb8b9d665623706b1f724ad0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c99b7205e30b9f93fb8b9d665623706b1f724ad0
index 4e13603ac..4e13603ac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c99b7205e30b9f93fb8b9d665623706b1f724ad0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c99b7205e30b9f93fb8b9d665623706b1f724ad0
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c9a6076647b3907803cb8f1241ca62fd09217ea5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c9a6076647b3907803cb8f1241ca62fd09217ea5
index 418ccab44..418ccab44 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c9a6076647b3907803cb8f1241ca62fd09217ea5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c9a6076647b3907803cb8f1241ca62fd09217ea5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/c9ae4dd1079954408ab4bc4cf30e75270d4f45d9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c9ae4dd1079954408ab4bc4cf30e75270d4f45d9
index 03ee5b443..03ee5b443 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/c9ae4dd1079954408ab4bc4cf30e75270d4f45d9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/c9ae4dd1079954408ab4bc4cf30e75270d4f45d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ca6de6e576327d2442dd00f9e17bb929e63be2f3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca6de6e576327d2442dd00f9e17bb929e63be2f3
index e79985634..e79985634 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ca6de6e576327d2442dd00f9e17bb929e63be2f3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca6de6e576327d2442dd00f9e17bb929e63be2f3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ca85ac63bf1d69107b1299388a97199c683c7335 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85ac63bf1d69107b1299388a97199c683c7335
index bdfad2364..bdfad2364 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ca85ac63bf1d69107b1299388a97199c683c7335
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85ac63bf1d69107b1299388a97199c683c7335
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ca85b8286bc314690ab2f5e470560eaec142353b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85b8286bc314690ab2f5e470560eaec142353b
index 1685b24d0..1685b24d0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ca85b8286bc314690ab2f5e470560eaec142353b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85b8286bc314690ab2f5e470560eaec142353b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b
index e8c1288f2..e8c1288f2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ca879c414ef2d22ce663f9099143376a3cabc55a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca879c414ef2d22ce663f9099143376a3cabc55a
index 965046acb..965046acb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ca879c414ef2d22ce663f9099143376a3cabc55a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ca879c414ef2d22ce663f9099143376a3cabc55a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cac468c453df2c890244411aebaeb9ab8d29fcc1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cac468c453df2c890244411aebaeb9ab8d29fcc1
index aa364a9ea..aa364a9ea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cac468c453df2c890244411aebaeb9ab8d29fcc1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cac468c453df2c890244411aebaeb9ab8d29fcc1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cad8e3905fbe954e2484c4eb146bd2c888162958 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cad8e3905fbe954e2484c4eb146bd2c888162958
index 0a8fcb618..0a8fcb618 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cad8e3905fbe954e2484c4eb146bd2c888162958
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cad8e3905fbe954e2484c4eb146bd2c888162958
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb000cff5bcf948f81ec610caa5c11c4228aa511 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb000cff5bcf948f81ec610caa5c11c4228aa511
index 86d63df61..86d63df61 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb000cff5bcf948f81ec610caa5c11c4228aa511
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb000cff5bcf948f81ec610caa5c11c4228aa511
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb289561ed87879f55e57412daaf8f0bdd88b703 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb289561ed87879f55e57412daaf8f0bdd88b703
index b57be8ee8..b57be8ee8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb289561ed87879f55e57412daaf8f0bdd88b703
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb289561ed87879f55e57412daaf8f0bdd88b703
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb28d541561d9f131ad4d2e69a9a34080c6c8424 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb28d541561d9f131ad4d2e69a9a34080c6c8424
index 7893be5e7..7893be5e7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb28d541561d9f131ad4d2e69a9a34080c6c8424
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb28d541561d9f131ad4d2e69a9a34080c6c8424
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb502d2a1eaffa58aa48475a9e60df788c51bc26 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb502d2a1eaffa58aa48475a9e60df788c51bc26
index 185083bc2..185083bc2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb502d2a1eaffa58aa48475a9e60df788c51bc26
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb502d2a1eaffa58aa48475a9e60df788c51bc26
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb6d03c75aa49e0dc5717fb35e317be8ca5e262e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb6d03c75aa49e0dc5717fb35e317be8ca5e262e
index 77017c836..77017c836 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb6d03c75aa49e0dc5717fb35e317be8ca5e262e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb6d03c75aa49e0dc5717fb35e317be8ca5e262e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb85d47c731be7758fbce010e3bc169ec4a27ab9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb85d47c731be7758fbce010e3bc169ec4a27ab9
index 97bfaa26f..97bfaa26f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb85d47c731be7758fbce010e3bc169ec4a27ab9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb85d47c731be7758fbce010e3bc169ec4a27ab9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a439be095b9f2093278fc50e010802b895b46 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a439be095b9f2093278fc50e010802b895b46
index a72ce7852..a72ce7852 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a439be095b9f2093278fc50e010802b895b46
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a439be095b9f2093278fc50e010802b895b46
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a488f70e1bb61968bc4177c15f974a67a6a6e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a488f70e1bb61968bc4177c15f974a67a6a6e
index bd337d7e9..bd337d7e9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a488f70e1bb61968bc4177c15f974a67a6a6e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb8a488f70e1bb61968bc4177c15f974a67a6a6e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cb9f7a0231d58cbb15d0969ff477a9f0a3b5976f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb9f7a0231d58cbb15d0969ff477a9f0a3b5976f
index bf9d05997..bf9d05997 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cb9f7a0231d58cbb15d0969ff477a9f0a3b5976f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cb9f7a0231d58cbb15d0969ff477a9f0a3b5976f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cbb34d2126f1d488913d5aab3d267916feb1c354 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cbb34d2126f1d488913d5aab3d267916feb1c354
index 34405bb77..34405bb77 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cbb34d2126f1d488913d5aab3d267916feb1c354
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cbb34d2126f1d488913d5aab3d267916feb1c354
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cc0fe40536e15df5cfe187624bfe87a70dd1efb2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cc0fe40536e15df5cfe187624bfe87a70dd1efb2
index bfef607c1..bfef607c1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cc0fe40536e15df5cfe187624bfe87a70dd1efb2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cc0fe40536e15df5cfe187624bfe87a70dd1efb2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cc396914a5ff0f38a83f8b7cc0f8657eb50387da b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cc396914a5ff0f38a83f8b7cc0f8657eb50387da
index 92cc13344..92cc13344 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cc396914a5ff0f38a83f8b7cc0f8657eb50387da
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cc396914a5ff0f38a83f8b7cc0f8657eb50387da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cc69b834226d1205ab48f2562f424e63fc88ac21 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cc69b834226d1205ab48f2562f424e63fc88ac21
index 3cc041045..3cc041045 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cc69b834226d1205ab48f2562f424e63fc88ac21
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cc69b834226d1205ab48f2562f424e63fc88ac21
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cca616529f1ca1d7d9c94e8d45d4f1af8dddaad2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cca616529f1ca1d7d9c94e8d45d4f1af8dddaad2
index aad6ae5fb..aad6ae5fb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cca616529f1ca1d7d9c94e8d45d4f1af8dddaad2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cca616529f1ca1d7d9c94e8d45d4f1af8dddaad2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cce6ee4abe10ec37f2a4953de7cb9b81a85c841f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cce6ee4abe10ec37f2a4953de7cb9b81a85c841f
index b4731759e..b4731759e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cce6ee4abe10ec37f2a4953de7cb9b81a85c841f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cce6ee4abe10ec37f2a4953de7cb9b81a85c841f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cd4cbdcd58fb420e5b64d8f08ed44b5b98cb0183 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd4cbdcd58fb420e5b64d8f08ed44b5b98cb0183
index d8741cbe1..d8741cbe1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cd4cbdcd58fb420e5b64d8f08ed44b5b98cb0183
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd4cbdcd58fb420e5b64d8f08ed44b5b98cb0183
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cd5d746adc30c5c5fd1c2ec537b762e702b4148d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd5d746adc30c5c5fd1c2ec537b762e702b4148d
index 607079d1c..607079d1c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cd5d746adc30c5c5fd1c2ec537b762e702b4148d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd5d746adc30c5c5fd1c2ec537b762e702b4148d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cd85c3ca23a5c960895dbf641de165ed0821125a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd85c3ca23a5c960895dbf641de165ed0821125a
index b52758a4c..b52758a4c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cd85c3ca23a5c960895dbf641de165ed0821125a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd85c3ca23a5c960895dbf641de165ed0821125a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cd94419f4ba2e265d9e689a9e9fb66192e9850eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd94419f4ba2e265d9e689a9e9fb66192e9850eb
index b50ad06b3..b50ad06b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cd94419f4ba2e265d9e689a9e9fb66192e9850eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cd94419f4ba2e265d9e689a9e9fb66192e9850eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cdbd2e41aaff682db391d12dca27622da650346a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cdbd2e41aaff682db391d12dca27622da650346a
index f4b86105b..f4b86105b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cdbd2e41aaff682db391d12dca27622da650346a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cdbd2e41aaff682db391d12dca27622da650346a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cdca6864de4b5d01d32c1c969701e9543c2f1527 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cdca6864de4b5d01d32c1c969701e9543c2f1527
index 93e5bf2b1..93e5bf2b1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cdca6864de4b5d01d32c1c969701e9543c2f1527
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cdca6864de4b5d01d32c1c969701e9543c2f1527
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ce87031b8fab977df7d6564eba7a5fa98856762b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ce87031b8fab977df7d6564eba7a5fa98856762b
index 9beea95db..9beea95db 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ce87031b8fab977df7d6564eba7a5fa98856762b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ce87031b8fab977df7d6564eba7a5fa98856762b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ceb444abf4450f61a68e91109c742d4643162d62 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ceb444abf4450f61a68e91109c742d4643162d62
index 4368cc81c..4368cc81c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ceb444abf4450f61a68e91109c742d4643162d62
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ceb444abf4450f61a68e91109c742d4643162d62
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cecbcd56dbee1db0260bad220779f5f9c739fe59 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cecbcd56dbee1db0260bad220779f5f9c739fe59
index 54b14e61a..54b14e61a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cecbcd56dbee1db0260bad220779f5f9c739fe59
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cecbcd56dbee1db0260bad220779f5f9c739fe59
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ced21716a1fec3b5ddc92631b13c20260bd2035c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ced21716a1fec3b5ddc92631b13c20260bd2035c
index fbbd8539c..fbbd8539c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ced21716a1fec3b5ddc92631b13c20260bd2035c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ced21716a1fec3b5ddc92631b13c20260bd2035c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cf288d8faa061f60336b14b2b979caa3ef87574b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf288d8faa061f60336b14b2b979caa3ef87574b
index 573e57431..573e57431 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cf288d8faa061f60336b14b2b979caa3ef87574b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf288d8faa061f60336b14b2b979caa3ef87574b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cf37f5bb55bffc5c3f537e22e2e1d2e9d4efb919 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf37f5bb55bffc5c3f537e22e2e1d2e9d4efb919
index 4925d1b7c..4925d1b7c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cf37f5bb55bffc5c3f537e22e2e1d2e9d4efb919
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf37f5bb55bffc5c3f537e22e2e1d2e9d4efb919
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cf5fb033a7a76ace41f41f7dd38a55fcaa8ef3b0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf5fb033a7a76ace41f41f7dd38a55fcaa8ef3b0
index 8aee269c6..8aee269c6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cf5fb033a7a76ace41f41f7dd38a55fcaa8ef3b0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf5fb033a7a76ace41f41f7dd38a55fcaa8ef3b0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cf7d8a52d2fc863f7ee62d1d74cbdc1e6faa99d0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf7d8a52d2fc863f7ee62d1d74cbdc1e6faa99d0
index cdbaebaf5..cdbaebaf5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cf7d8a52d2fc863f7ee62d1d74cbdc1e6faa99d0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cf7d8a52d2fc863f7ee62d1d74cbdc1e6faa99d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cfb290d991059c53e64466f1d94ecc79cd074072 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cfb290d991059c53e64466f1d94ecc79cd074072
index 4c091a4f7..4c091a4f7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cfb290d991059c53e64466f1d94ecc79cd074072
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cfb290d991059c53e64466f1d94ecc79cd074072
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cfbd90626c899729751fc6fde9583168a9e208fa b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cfbd90626c899729751fc6fde9583168a9e208fa
index 1cb9e597d..1cb9e597d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cfbd90626c899729751fc6fde9583168a9e208fa
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cfbd90626c899729751fc6fde9583168a9e208fa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cfd9b8cbbffd5dc2a7b782b6568c41cbeacb44c1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cfd9b8cbbffd5dc2a7b782b6568c41cbeacb44c1
index ad5509ad8..ad5509ad8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cfd9b8cbbffd5dc2a7b782b6568c41cbeacb44c1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cfd9b8cbbffd5dc2a7b782b6568c41cbeacb44c1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cffa37be5c0916ee24ea90aecbf5ad1a6fd7f363 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cffa37be5c0916ee24ea90aecbf5ad1a6fd7f363
index d466ebdf6..d466ebdf6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cffa37be5c0916ee24ea90aecbf5ad1a6fd7f363
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cffa37be5c0916ee24ea90aecbf5ad1a6fd7f363
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/cffce0cc162001a4b0f34dad86838024bad8ac9c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cffce0cc162001a4b0f34dad86838024bad8ac9c
index add15d275..add15d275 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/cffce0cc162001a4b0f34dad86838024bad8ac9c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/cffce0cc162001a4b0f34dad86838024bad8ac9c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-empty.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-empty.txt
index d67e782c6..d67e782c6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-empty.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-empty.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-extreme.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-extreme.txt
index ae19cc865..ae19cc865 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-extreme.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-extreme.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-complete-junk.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-complete-junk.txt
index 86a29a9a6..86a29a9a6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-complete-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-complete-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing-but-extension.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing-but-extension.txt
index 5d3980c72..5d3980c72 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing-but-extension.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing-but-extension.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing.txt
index b990b2d9e..b990b2d9e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-missing.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-junk.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-junk.txt
index 9e8715b83..9e8715b83 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-space.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-space.txt
index 3484195c1..3484195c1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-space.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-trailing-space.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-uppercase.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-uppercase.txt
index d235fcb07..d235fcb07 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-uppercase.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-hex-uppercase.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-last-chunk-with-extension.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-last-chunk-with-extension.txt
index 8be9a43a7..8be9a43a7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-last-chunk-with-extension.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-last-chunk-with-extension.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-extension.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-extension.txt
index 1337ee0a4..1337ee0a4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-extension.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-extension.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-trailer.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-trailer.txt
index 5c47bd3ed..5c47bd3ed 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-trailer.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one-trailer.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one.txt
index 966dec79a..966dec79a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-one.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-sixteen.hex b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-sixteen.hex
index 36a731b87..36a731b87 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-sixteen.hex
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-sixteen.hex
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-extensions.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-extensions.txt
index 8c11a06ff..8c11a06ff 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-extensions.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-extensions.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-trailers.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-trailers.txt
index cefefca19..cefefca19 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-trailers.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two-trailers.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two.txt
index 0d2900379..0d2900379 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/chunked-two.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-complete-junk.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-complete-junk.txt
index 2efa1e771..2efa1e771 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-complete-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-complete-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-missing.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-missing.txt
index a4b1b5870..a4b1b5870 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-missing.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-missing.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-junk.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-junk.txt
index a85c1af4a..a85c1af4a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-space.txt b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-space.txt
index f9edc7e20..f9edc7e20 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-space.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/content-length-trailing-space.txt
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d000f198ec9e35345780f40e58f70d61ced83ae6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d000f198ec9e35345780f40e58f70d61ced83ae6
index 624e30096..624e30096 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d000f198ec9e35345780f40e58f70d61ced83ae6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d000f198ec9e35345780f40e58f70d61ced83ae6
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d0141b447a2d3fb58263eb9dbdd096fde85397d3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d0141b447a2d3fb58263eb9dbdd096fde85397d3
index a87edabd4..a87edabd4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d0141b447a2d3fb58263eb9dbdd096fde85397d3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d0141b447a2d3fb58263eb9dbdd096fde85397d3
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d04d54aa71166bbb60476f9c81922a3a29c4ed7d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d04d54aa71166bbb60476f9c81922a3a29c4ed7d
index 1fc396398..1fc396398 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d04d54aa71166bbb60476f9c81922a3a29c4ed7d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d04d54aa71166bbb60476f9c81922a3a29c4ed7d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d05a08f754dadef6a7e15bb71acd05731ea541e8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d05a08f754dadef6a7e15bb71acd05731ea541e8
index e5ba4c813..e5ba4c813 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d05a08f754dadef6a7e15bb71acd05731ea541e8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d05a08f754dadef6a7e15bb71acd05731ea541e8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d0e29eac833be5435cc8f54a54a2239a38eaad2e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d0e29eac833be5435cc8f54a54a2239a38eaad2e
index fa96e5880..fa96e5880 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d0e29eac833be5435cc8f54a54a2239a38eaad2e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d0e29eac833be5435cc8f54a54a2239a38eaad2e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d0f106b9b5d0f29c20d8c1efb964aa230a73c190 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d0f106b9b5d0f29c20d8c1efb964aa230a73c190
index c9e23cb7a..c9e23cb7a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d0f106b9b5d0f29c20d8c1efb964aa230a73c190
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d0f106b9b5d0f29c20d8c1efb964aa230a73c190
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d10ed8aeb3f6c0a639ff880f1bd745677b7da20c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d10ed8aeb3f6c0a639ff880f1bd745677b7da20c
index 6d8b24e14..6d8b24e14 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d10ed8aeb3f6c0a639ff880f1bd745677b7da20c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d10ed8aeb3f6c0a639ff880f1bd745677b7da20c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d16dce42cd7bd19781bb01de809e8f15ac730ad9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d16dce42cd7bd19781bb01de809e8f15ac730ad9
index 301a2e2e1..301a2e2e1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d16dce42cd7bd19781bb01de809e8f15ac730ad9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d16dce42cd7bd19781bb01de809e8f15ac730ad9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d19afc492f7674099f2d44e658bb61a9bde7125f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d19afc492f7674099f2d44e658bb61a9bde7125f
index c81f4e323..c81f4e323 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d19afc492f7674099f2d44e658bb61a9bde7125f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d19afc492f7674099f2d44e658bb61a9bde7125f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d1c268862a4e3d9ad3aa51d678af02df9e17159e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d1c268862a4e3d9ad3aa51d678af02df9e17159e
index 56b860137..56b860137 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d1c268862a4e3d9ad3aa51d678af02df9e17159e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d1c268862a4e3d9ad3aa51d678af02df9e17159e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d1d37d547d2833b61a02b1ac113bc1bac7930030 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d1d37d547d2833b61a02b1ac113bc1bac7930030
index 88480cc45..88480cc45 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d1d37d547d2833b61a02b1ac113bc1bac7930030
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d1d37d547d2833b61a02b1ac113bc1bac7930030
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d1d78d93f41a09207dd2475e6575e43fd3183968 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d1d78d93f41a09207dd2475e6575e43fd3183968
index 6c9ce2c88..6c9ce2c88 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d1d78d93f41a09207dd2475e6575e43fd3183968
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d1d78d93f41a09207dd2475e6575e43fd3183968
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d21234e05d41de5cda7048b898be82fa3db481cc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d21234e05d41de5cda7048b898be82fa3db481cc
index 369c4070e..369c4070e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d21234e05d41de5cda7048b898be82fa3db481cc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d21234e05d41de5cda7048b898be82fa3db481cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d2253162d3b13ebe72a2394f5ebd0f83f2b239e8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d2253162d3b13ebe72a2394f5ebd0f83f2b239e8
index 8ec1b678b..8ec1b678b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d2253162d3b13ebe72a2394f5ebd0f83f2b239e8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d2253162d3b13ebe72a2394f5ebd0f83f2b239e8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d227ef0a21d07311fca44eb706856833cd485b94 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d227ef0a21d07311fca44eb706856833cd485b94
index 9a415169f..9a415169f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d227ef0a21d07311fca44eb706856833cd485b94
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d227ef0a21d07311fca44eb706856833cd485b94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d290f676e817cd8ce510d00c34843481302f55eb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d290f676e817cd8ce510d00c34843481302f55eb
index a65ea11df..a65ea11df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d290f676e817cd8ce510d00c34843481302f55eb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d290f676e817cd8ce510d00c34843481302f55eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d2c720a0f23296e525b5094147115a403d598ab8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d2c720a0f23296e525b5094147115a403d598ab8
index 992426a7c..992426a7c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d2c720a0f23296e525b5094147115a403d598ab8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d2c720a0f23296e525b5094147115a403d598ab8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d3235f4eec3cd13e45480412f9a14b6f1e655a3d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d3235f4eec3cd13e45480412f9a14b6f1e655a3d
index b1a76600f..b1a76600f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d3235f4eec3cd13e45480412f9a14b6f1e655a3d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d3235f4eec3cd13e45480412f9a14b6f1e655a3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d368327adcb27d554a4c2740d4ddddebace773c8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d368327adcb27d554a4c2740d4ddddebace773c8
index d5b8e3cc0..d5b8e3cc0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d368327adcb27d554a4c2740d4ddddebace773c8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d368327adcb27d554a4c2740d4ddddebace773c8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d37317dd1aece6ee776f9f3126dd674e05b3f17b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d37317dd1aece6ee776f9f3126dd674e05b3f17b
index 5ee6f0cc0..5ee6f0cc0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d37317dd1aece6ee776f9f3126dd674e05b3f17b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d37317dd1aece6ee776f9f3126dd674e05b3f17b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d481cef7071f30d512148e9195ab48f128ab24bb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d481cef7071f30d512148e9195ab48f128ab24bb
index 7b909c0cc..7b909c0cc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d481cef7071f30d512148e9195ab48f128ab24bb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d481cef7071f30d512148e9195ab48f128ab24bb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d488538356f2a6fc04cc16ce41a58a7aa76d77de b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d488538356f2a6fc04cc16ce41a58a7aa76d77de
index aa7396c80..aa7396c80 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d488538356f2a6fc04cc16ce41a58a7aa76d77de
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d488538356f2a6fc04cc16ce41a58a7aa76d77de
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d499b3adc12d91b30fd026d3b3eacd6df504a74f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d499b3adc12d91b30fd026d3b3eacd6df504a74f
index f6297dd56..f6297dd56 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d499b3adc12d91b30fd026d3b3eacd6df504a74f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d499b3adc12d91b30fd026d3b3eacd6df504a74f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d4a6ac20014be23d31b0da3a2c0c27f9182ca2bd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4a6ac20014be23d31b0da3a2c0c27f9182ca2bd
index ce958320c..ce958320c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d4a6ac20014be23d31b0da3a2c0c27f9182ca2bd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4a6ac20014be23d31b0da3a2c0c27f9182ca2bd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d4aced8109ddaf71f89d6af3ebbb8edb94746980 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4aced8109ddaf71f89d6af3ebbb8edb94746980
index 09d179aab..09d179aab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d4aced8109ddaf71f89d6af3ebbb8edb94746980
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4aced8109ddaf71f89d6af3ebbb8edb94746980
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d4ad97e423c7ed71863fcd2f238d3070eacecd13 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4ad97e423c7ed71863fcd2f238d3070eacecd13
index 2ca041917..2ca041917 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d4ad97e423c7ed71863fcd2f238d3070eacecd13
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4ad97e423c7ed71863fcd2f238d3070eacecd13
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d4bef91244896042a1d95b67090d526d3255c533 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4bef91244896042a1d95b67090d526d3255c533
index 13b270810..13b270810 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d4bef91244896042a1d95b67090d526d3255c533
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4bef91244896042a1d95b67090d526d3255c533
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474
index 5a5ea4181..5a5ea4181 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d50108e40e3de5887c58f5d53b11539d2ccbc198 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d50108e40e3de5887c58f5d53b11539d2ccbc198
index fbfd3f97d..fbfd3f97d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d50108e40e3de5887c58f5d53b11539d2ccbc198
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d50108e40e3de5887c58f5d53b11539d2ccbc198
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d51451e4ad45da7e36e5d43203f338c921496499 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d51451e4ad45da7e36e5d43203f338c921496499
index 6b6352bc1..6b6352bc1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d51451e4ad45da7e36e5d43203f338c921496499
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d51451e4ad45da7e36e5d43203f338c921496499
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d53658121e5e99803680ca88a0bd6179b8debf8e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d53658121e5e99803680ca88a0bd6179b8debf8e
index 1630e864f..1630e864f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d53658121e5e99803680ca88a0bd6179b8debf8e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d53658121e5e99803680ca88a0bd6179b8debf8e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d5e2ca0e7e293d5cb25c12b28ddc99236b7b067d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d5e2ca0e7e293d5cb25c12b28ddc99236b7b067d
index 91a1df68e..91a1df68e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d5e2ca0e7e293d5cb25c12b28ddc99236b7b067d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d5e2ca0e7e293d5cb25c12b28ddc99236b7b067d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d5f4bc7d1e8308a33e0d7937ece67746f3733069 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d5f4bc7d1e8308a33e0d7937ece67746f3733069
index 5f7a53718..5f7a53718 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d5f4bc7d1e8308a33e0d7937ece67746f3733069
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d5f4bc7d1e8308a33e0d7937ece67746f3733069
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d6174a32ae9db25c80fa78bff59cc89c4ad0d402 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6174a32ae9db25c80fa78bff59cc89c4ad0d402
index 3398c4cd6..3398c4cd6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d6174a32ae9db25c80fa78bff59cc89c4ad0d402
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6174a32ae9db25c80fa78bff59cc89c4ad0d402
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d6261546b76796d80f3ae6823f5e95178b0e0139 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6261546b76796d80f3ae6823f5e95178b0e0139
index 9e8695a54..9e8695a54 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d6261546b76796d80f3ae6823f5e95178b0e0139
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6261546b76796d80f3ae6823f5e95178b0e0139
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d64b0a422a25a1f7b59cecbbd2ba5b4e35f9f7ad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d64b0a422a25a1f7b59cecbbd2ba5b4e35f9f7ad
index df0e0685f..df0e0685f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d64b0a422a25a1f7b59cecbbd2ba5b4e35f9f7ad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d64b0a422a25a1f7b59cecbbd2ba5b4e35f9f7ad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d6a3b98cc6db7d9e8dfb52de5a8e3db58cbec32b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6a3b98cc6db7d9e8dfb52de5a8e3db58cbec32b
index 83c8e135d..83c8e135d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d6a3b98cc6db7d9e8dfb52de5a8e3db58cbec32b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6a3b98cc6db7d9e8dfb52de5a8e3db58cbec32b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d6a4a3bcbcfeffd102da99c680c2cbff233d4d4a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6a4a3bcbcfeffd102da99c680c2cbff233d4d4a
index 62d8c1733..62d8c1733 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d6a4a3bcbcfeffd102da99c680c2cbff233d4d4a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6a4a3bcbcfeffd102da99c680c2cbff233d4d4a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d6da5627bf215a09916866a76a62649848bef6f8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6da5627bf215a09916866a76a62649848bef6f8
index 6addd30cd..6addd30cd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d6da5627bf215a09916866a76a62649848bef6f8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d6da5627bf215a09916866a76a62649848bef6f8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d74833baf7bbf615390b45e2852116ef22544859 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d74833baf7bbf615390b45e2852116ef22544859
index 99d9fbadd..99d9fbadd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d74833baf7bbf615390b45e2852116ef22544859
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d74833baf7bbf615390b45e2852116ef22544859
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7876004d6f2a123ae090c85be678d7c4ded022d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7876004d6f2a123ae090c85be678d7c4ded022d
index 370b63c7a..370b63c7a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7876004d6f2a123ae090c85be678d7c4ded022d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7876004d6f2a123ae090c85be678d7c4ded022d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7a009b36da760336ab9f8a3b1f48ab4040d847d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7a009b36da760336ab9f8a3b1f48ab4040d847d
index 96687f366..96687f366 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7a009b36da760336ab9f8a3b1f48ab4040d847d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7a009b36da760336ab9f8a3b1f48ab4040d847d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7a28d8636686b3da363a750398ee301566a9703 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7a28d8636686b3da363a750398ee301566a9703
index 5be0c0b7d..5be0c0b7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7a28d8636686b3da363a750398ee301566a9703
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7a28d8636686b3da363a750398ee301566a9703
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7bfc6d77909586b45b8e165e7b42803accdcbd1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7bfc6d77909586b45b8e165e7b42803accdcbd1
index d09318c2a..d09318c2a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7bfc6d77909586b45b8e165e7b42803accdcbd1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7bfc6d77909586b45b8e165e7b42803accdcbd1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7c55fd80e4ba44a659d60a37e6baec65443d19c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7c55fd80e4ba44a659d60a37e6baec65443d19c
index fd3a1e9ac..fd3a1e9ac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7c55fd80e4ba44a659d60a37e6baec65443d19c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7c55fd80e4ba44a659d60a37e6baec65443d19c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7ce616f4385e22d36de2513293fc39c49ae9583 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7ce616f4385e22d36de2513293fc39c49ae9583
index c05a532ac..c05a532ac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7ce616f4385e22d36de2513293fc39c49ae9583
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7ce616f4385e22d36de2513293fc39c49ae9583
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7ceb6c5f6220acff1e4a760283e5209498f833c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7ceb6c5f6220acff1e4a760283e5209498f833c
index 9ccb2dd0d..9ccb2dd0d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7ceb6c5f6220acff1e4a760283e5209498f833c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7ceb6c5f6220acff1e4a760283e5209498f833c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7d30278407392337f4ca1d72ba41cfca0bb590b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7d30278407392337f4ca1d72ba41cfca0bb590b
index 92e180dfb..92e180dfb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7d30278407392337f4ca1d72ba41cfca0bb590b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7d30278407392337f4ca1d72ba41cfca0bb590b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d7e23282392e62b36a2f0b703ccb56bb9a4bdeab b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7e23282392e62b36a2f0b703ccb56bb9a4bdeab
index a832f2b94..a832f2b94 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d7e23282392e62b36a2f0b703ccb56bb9a4bdeab
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d7e23282392e62b36a2f0b703ccb56bb9a4bdeab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d856822735433bee758a10a9afa35556398368e1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d856822735433bee758a10a9afa35556398368e1
index 47e2b0c45..47e2b0c45 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d856822735433bee758a10a9afa35556398368e1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d856822735433bee758a10a9afa35556398368e1
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d86c92eecedab58002a1f447986a22e275d23d2b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d86c92eecedab58002a1f447986a22e275d23d2b
index ce3b8de05..ce3b8de05 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d86c92eecedab58002a1f447986a22e275d23d2b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d86c92eecedab58002a1f447986a22e275d23d2b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d8abb88028a12ccc417dd258d8a3707a5b25ad47 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d8abb88028a12ccc417dd258d8a3707a5b25ad47
index c33e908e2..c33e908e2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d8abb88028a12ccc417dd258d8a3707a5b25ad47
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d8abb88028a12ccc417dd258d8a3707a5b25ad47
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d8ba26884621fbefe05964100f600247bee3836b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d8ba26884621fbefe05964100f600247bee3836b
index fafc596e8..fafc596e8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d8ba26884621fbefe05964100f600247bee3836b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d8ba26884621fbefe05964100f600247bee3836b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d9319adcb166654caff313609af6344dd4e75a84 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9319adcb166654caff313609af6344dd4e75a84
index db0490f60..db0490f60 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d9319adcb166654caff313609af6344dd4e75a84
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9319adcb166654caff313609af6344dd4e75a84
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d9c945b88bdf68bde898feee29cc158179aeb796 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9c945b88bdf68bde898feee29cc158179aeb796
index 67ac661ce..67ac661ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d9c945b88bdf68bde898feee29cc158179aeb796
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9c945b88bdf68bde898feee29cc158179aeb796
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d9d6bac9d2b3b792c6fde8dd69221640a489b8a9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9d6bac9d2b3b792c6fde8dd69221640a489b8a9
index d56f49bb8..d56f49bb8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d9d6bac9d2b3b792c6fde8dd69221640a489b8a9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9d6bac9d2b3b792c6fde8dd69221640a489b8a9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a
index 334cda84f..334cda84f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d9dfe84a38f35fff3bea0e566e7b516729257c98 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9dfe84a38f35fff3bea0e566e7b516729257c98
index ab3e68363..ab3e68363 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d9dfe84a38f35fff3bea0e566e7b516729257c98
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9dfe84a38f35fff3bea0e566e7b516729257c98
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/d9f307eaa4f662dc1fcf2eec9dc9c6fe2b260e2f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9f307eaa4f662dc1fcf2eec9dc9c6fe2b260e2f
index d263989fc..d263989fc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/d9f307eaa4f662dc1fcf2eec9dc9c6fe2b260e2f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/d9f307eaa4f662dc1fcf2eec9dc9c6fe2b260e2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/da4bc2b2df03fd097a14f355ceab36a694219851 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da4bc2b2df03fd097a14f355ceab36a694219851
index 070c9782a..070c9782a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/da4bc2b2df03fd097a14f355ceab36a694219851
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da4bc2b2df03fd097a14f355ceab36a694219851
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/da6f692c8912e84336986846a288af337ed83caf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da6f692c8912e84336986846a288af337ed83caf
index e3f723612..e3f723612 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/da6f692c8912e84336986846a288af337ed83caf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da6f692c8912e84336986846a288af337ed83caf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/da8018b367070ae882015b2f93ab7e2a1d939f0b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da8018b367070ae882015b2f93ab7e2a1d939f0b
index df2fb1332..df2fb1332 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/da8018b367070ae882015b2f93ab7e2a1d939f0b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da8018b367070ae882015b2f93ab7e2a1d939f0b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/da86b978c227b8a0c24d9a4a70d11563eb3ef8c2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da86b978c227b8a0c24d9a4a70d11563eb3ef8c2
index 9e59c3720..9e59c3720 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/da86b978c227b8a0c24d9a4a70d11563eb3ef8c2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da86b978c227b8a0c24d9a4a70d11563eb3ef8c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/da9c0aefe23b3f505a19371371a44bcd7dfa9b6a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da9c0aefe23b3f505a19371371a44bcd7dfa9b6a
index b0f2f3ac9..b0f2f3ac9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/da9c0aefe23b3f505a19371371a44bcd7dfa9b6a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/da9c0aefe23b3f505a19371371a44bcd7dfa9b6a
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dab3a73e999bc7c5273eb1e08d40cbdaaac8550b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dab3a73e999bc7c5273eb1e08d40cbdaaac8550b
index a409733df..a409733df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dab3a73e999bc7c5273eb1e08d40cbdaaac8550b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dab3a73e999bc7c5273eb1e08d40cbdaaac8550b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dad1ede5b925a186c6087e67aa4ab450f6ae9b24 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dad1ede5b925a186c6087e67aa4ab450f6ae9b24
index 6bbf4af0d..6bbf4af0d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dad1ede5b925a186c6087e67aa4ab450f6ae9b24
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dad1ede5b925a186c6087e67aa4ab450f6ae9b24
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/daf5d9cfb5e7f0da5af65d9fed2422a52b656f21 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/daf5d9cfb5e7f0da5af65d9fed2422a52b656f21
index 5f74c44cd..5f74c44cd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/daf5d9cfb5e7f0da5af65d9fed2422a52b656f21
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/daf5d9cfb5e7f0da5af65d9fed2422a52b656f21
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/db136292270f6c928ebdd53262d3bdab0e753d00 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db136292270f6c928ebdd53262d3bdab0e753d00
index e7f33cf19..e7f33cf19 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/db136292270f6c928ebdd53262d3bdab0e753d00
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db136292270f6c928ebdd53262d3bdab0e753d00
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/db405222557592d5b4aa50610fafdeff47685191 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db405222557592d5b4aa50610fafdeff47685191
index e378b4daf..e378b4daf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/db405222557592d5b4aa50610fafdeff47685191
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db405222557592d5b4aa50610fafdeff47685191
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/db69447ed2083ac23d55f845e517fafd90e21f2a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db69447ed2083ac23d55f845e517fafd90e21f2a
index 2ead738ce..2ead738ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/db69447ed2083ac23d55f845e517fafd90e21f2a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db69447ed2083ac23d55f845e517fafd90e21f2a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/db72ba8f0df8a901a8dd4d4780ec1ce41b7358cc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db72ba8f0df8a901a8dd4d4780ec1ce41b7358cc
index 4e5d7acb4..4e5d7acb4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/db72ba8f0df8a901a8dd4d4780ec1ce41b7358cc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/db72ba8f0df8a901a8dd4d4780ec1ce41b7358cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dbbefb0c7aacd56c7eb73862549b98c499594d39 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dbbefb0c7aacd56c7eb73862549b98c499594d39
index 136b2e988..136b2e988 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dbbefb0c7aacd56c7eb73862549b98c499594d39
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dbbefb0c7aacd56c7eb73862549b98c499594d39
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dbc086bdd4d85ee688f1b87b4d5ad6c7ec56a12e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dbc086bdd4d85ee688f1b87b4d5ad6c7ec56a12e
index b18f7dc7d..b18f7dc7d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dbc086bdd4d85ee688f1b87b4d5ad6c7ec56a12e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dbc086bdd4d85ee688f1b87b4d5ad6c7ec56a12e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dbff7498811cc256f918cd7e67710f3c86ceb9b9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dbff7498811cc256f918cd7e67710f3c86ceb9b9
index 69ef7c49c..69ef7c49c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dbff7498811cc256f918cd7e67710f3c86ceb9b9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dbff7498811cc256f918cd7e67710f3c86ceb9b9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dc58f1ebf0a1ebd7c11b9dea8d7f70815cae67d2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dc58f1ebf0a1ebd7c11b9dea8d7f70815cae67d2
index 32c9fb309..32c9fb309 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dc58f1ebf0a1ebd7c11b9dea8d7f70815cae67d2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dc58f1ebf0a1ebd7c11b9dea8d7f70815cae67d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dc906cf8af6962aa391c685b3fc3f627d4a374b2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dc906cf8af6962aa391c685b3fc3f627d4a374b2
index e2f2dbdaf..e2f2dbdaf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dc906cf8af6962aa391c685b3fc3f627d4a374b2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dc906cf8af6962aa391c685b3fc3f627d4a374b2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dc94bf96c530e15ee60d653e3e4e30e64426abf9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dc94bf96c530e15ee60d653e3e4e30e64426abf9
index 9d2bf8f2c..9d2bf8f2c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dc94bf96c530e15ee60d653e3e4e30e64426abf9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dc94bf96c530e15ee60d653e3e4e30e64426abf9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dcaa1770d887e152117b36b5b6981fdff22090cd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dcaa1770d887e152117b36b5b6981fdff22090cd
index 52d8d27f4..52d8d27f4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dcaa1770d887e152117b36b5b6981fdff22090cd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dcaa1770d887e152117b36b5b6981fdff22090cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826
index 85f0687a9..85f0687a9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dd2410027423c4a44fcad91057e0085b65f0c15f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dd2410027423c4a44fcad91057e0085b65f0c15f
index f149ac133..f149ac133 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dd2410027423c4a44fcad91057e0085b65f0c15f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dd2410027423c4a44fcad91057e0085b65f0c15f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dd9018cfcb567d95e588bcbfff225b0c6026b171 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dd9018cfcb567d95e588bcbfff225b0c6026b171
index ae45f2fa6..ae45f2fa6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dd9018cfcb567d95e588bcbfff225b0c6026b171
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dd9018cfcb567d95e588bcbfff225b0c6026b171
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dda82a1631514c4650bbab33d8f3c670e623bad0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dda82a1631514c4650bbab33d8f3c670e623bad0
index d90e424a2..d90e424a2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dda82a1631514c4650bbab33d8f3c670e623bad0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dda82a1631514c4650bbab33d8f3c670e623bad0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ddb521e4dbc67418696f336e9a695536e2073c19 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ddb521e4dbc67418696f336e9a695536e2073c19
index 11023fb4a..11023fb4a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ddb521e4dbc67418696f336e9a695536e2073c19
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ddb521e4dbc67418696f336e9a695536e2073c19
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ddb6ad231d6d71144f7ed4ff9b56b435c5b72203 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ddb6ad231d6d71144f7ed4ff9b56b435c5b72203
index a75538789..a75538789 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ddb6ad231d6d71144f7ed4ff9b56b435c5b72203
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ddb6ad231d6d71144f7ed4ff9b56b435c5b72203
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dde38f77bd1d0e61bb3a4ad83359186b6269c982 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dde38f77bd1d0e61bb3a4ad83359186b6269c982
index 0519ea0a9..0519ea0a9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dde38f77bd1d0e61bb3a4ad83359186b6269c982
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dde38f77bd1d0e61bb3a4ad83359186b6269c982
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/de42f931a3763f52cf725706a56b6d538b46867c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/de42f931a3763f52cf725706a56b6d538b46867c
index 94c50eb0a..94c50eb0a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/de42f931a3763f52cf725706a56b6d538b46867c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/de42f931a3763f52cf725706a56b6d538b46867c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/de6fd35beb97353488c6e65854f8c5af5d9d8171 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/de6fd35beb97353488c6e65854f8c5af5d9d8171
index 6827e548b..6827e548b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/de6fd35beb97353488c6e65854f8c5af5d9d8171
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/de6fd35beb97353488c6e65854f8c5af5d9d8171
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dee6a84a57aa64e11758d0173cfc488d2e0e40fd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dee6a84a57aa64e11758d0173cfc488d2e0e40fd
index b34be23e1..b34be23e1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dee6a84a57aa64e11758d0173cfc488d2e0e40fd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dee6a84a57aa64e11758d0173cfc488d2e0e40fd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/df24d7b2d2f1b9ce714b4c83b17c112b20a661b5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df24d7b2d2f1b9ce714b4c83b17c112b20a661b5
index 7ef18279b..7ef18279b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/df24d7b2d2f1b9ce714b4c83b17c112b20a661b5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df24d7b2d2f1b9ce714b4c83b17c112b20a661b5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/df59b0a84b42a5d792b9201a6bf264b9a595f8f0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df59b0a84b42a5d792b9201a6bf264b9a595f8f0
index 13a49ac05..13a49ac05 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/df59b0a84b42a5d792b9201a6bf264b9a595f8f0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df59b0a84b42a5d792b9201a6bf264b9a595f8f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/df621bf16d6bc0603537264fc993ed129ae7d2d9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df621bf16d6bc0603537264fc993ed129ae7d2d9
index fcc597da2..fcc597da2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/df621bf16d6bc0603537264fc993ed129ae7d2d9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df621bf16d6bc0603537264fc993ed129ae7d2d9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/df7e80c7c74d181001c1dcd533fd1ab1557ce94a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df7e80c7c74d181001c1dcd533fd1ab1557ce94a
index c9773ea9a..c9773ea9a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/df7e80c7c74d181001c1dcd533fd1ab1557ce94a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/df7e80c7c74d181001c1dcd533fd1ab1557ce94a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dfb73a50f96cd14d20effebaf60c99bada51ada5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dfb73a50f96cd14d20effebaf60c99bada51ada5
index 7e9365681..7e9365681 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dfb73a50f96cd14d20effebaf60c99bada51ada5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dfb73a50f96cd14d20effebaf60c99bada51ada5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dfe96aa480981893d8cc887260cd8ed506494976 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dfe96aa480981893d8cc887260cd8ed506494976
index c6d6699f7..c6d6699f7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dfe96aa480981893d8cc887260cd8ed506494976
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dfe96aa480981893d8cc887260cd8ed506494976
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/dff3c984b282d7604ab28c27f9f3eebed7284e61 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dff3c984b282d7604ab28c27f9f3eebed7284e61
index 446625593..446625593 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/dff3c984b282d7604ab28c27f9f3eebed7284e61
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/dff3c984b282d7604ab28c27f9f3eebed7284e61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e01c15f6a67eb9a0f698233f29c20ec68b30ed80 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e01c15f6a67eb9a0f698233f29c20ec68b30ed80
index 1dd409e6c..1dd409e6c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e01c15f6a67eb9a0f698233f29c20ec68b30ed80
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e01c15f6a67eb9a0f698233f29c20ec68b30ed80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e02249cb56f18e634296a894b05125cd870c3d05 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e02249cb56f18e634296a894b05125cd870c3d05
index 877529739..877529739 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e02249cb56f18e634296a894b05125cd870c3d05
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e02249cb56f18e634296a894b05125cd870c3d05
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e02bc29cb123ed37569cfc6065787a6b09adf131 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e02bc29cb123ed37569cfc6065787a6b09adf131
index cec5ce5b5..cec5ce5b5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e02bc29cb123ed37569cfc6065787a6b09adf131
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e02bc29cb123ed37569cfc6065787a6b09adf131
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e035b8453a82931c1b7efef8722c37e6a307cacc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e035b8453a82931c1b7efef8722c37e6a307cacc
index dbdeac6ce..dbdeac6ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e035b8453a82931c1b7efef8722c37e6a307cacc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e035b8453a82931c1b7efef8722c37e6a307cacc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e040e4767e3c6d8a95299952a9230858ab726a4b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e040e4767e3c6d8a95299952a9230858ab726a4b
index a19587b23..a19587b23 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e040e4767e3c6d8a95299952a9230858ab726a4b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e040e4767e3c6d8a95299952a9230858ab726a4b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e05b9fd89ee43bcc0583a475533a91f0ae182e07 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e05b9fd89ee43bcc0583a475533a91f0ae182e07
index d6b4672fa..d6b4672fa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e05b9fd89ee43bcc0583a475533a91f0ae182e07
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e05b9fd89ee43bcc0583a475533a91f0ae182e07
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e1638dcb42ae6764dd025769120ec9d4b55fe91d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e1638dcb42ae6764dd025769120ec9d4b55fe91d
index 85aedfaa2..85aedfaa2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e1638dcb42ae6764dd025769120ec9d4b55fe91d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e1638dcb42ae6764dd025769120ec9d4b55fe91d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e17c96dd673a5d4e8ee7f408d3858839cbeab9e1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e17c96dd673a5d4e8ee7f408d3858839cbeab9e1
index 5f4882e14..5f4882e14 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e17c96dd673a5d4e8ee7f408d3858839cbeab9e1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e17c96dd673a5d4e8ee7f408d3858839cbeab9e1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e17d1a1fc45d209613f52da7ddd797eb77424347 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e17d1a1fc45d209613f52da7ddd797eb77424347
index fba805a9c..fba805a9c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e17d1a1fc45d209613f52da7ddd797eb77424347
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e17d1a1fc45d209613f52da7ddd797eb77424347
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e188503fbb489bdbf90176bf65862c28b4bd00dc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e188503fbb489bdbf90176bf65862c28b4bd00dc
index c8b7ef235..c8b7ef235 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e188503fbb489bdbf90176bf65862c28b4bd00dc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e188503fbb489bdbf90176bf65862c28b4bd00dc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e1e1194b121200ff0c676f432c43b7c8facdff5e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e1e1194b121200ff0c676f432c43b7c8facdff5e
index 1f5a4b587..1f5a4b587 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e1e1194b121200ff0c676f432c43b7c8facdff5e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e1e1194b121200ff0c676f432c43b7c8facdff5e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e205c50d66cd6175186c8145fbce58e043aa38a2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e205c50d66cd6175186c8145fbce58e043aa38a2
index 9ece7a8bf..9ece7a8bf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e205c50d66cd6175186c8145fbce58e043aa38a2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e205c50d66cd6175186c8145fbce58e043aa38a2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e2455299c5523e3d646df51d401b6f2eff77cb23 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e2455299c5523e3d646df51d401b6f2eff77cb23
index f696e4023..f696e4023 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e2455299c5523e3d646df51d401b6f2eff77cb23
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e2455299c5523e3d646df51d401b6f2eff77cb23
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e2982cbc3167ea738f9b5f61c38d6dde7a693671 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e2982cbc3167ea738f9b5f61c38d6dde7a693671
index 3ebe0aeae..3ebe0aeae 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e2982cbc3167ea738f9b5f61c38d6dde7a693671
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e2982cbc3167ea738f9b5f61c38d6dde7a693671
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e29d46edbdfd06b8ff61ab2fea03dbf859f90ec2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e29d46edbdfd06b8ff61ab2fea03dbf859f90ec2
index cdcb51eef..cdcb51eef 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e29d46edbdfd06b8ff61ab2fea03dbf859f90ec2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e29d46edbdfd06b8ff61ab2fea03dbf859f90ec2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e301e226ba4e3b2904c95edbc18589c6bfe41564 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e301e226ba4e3b2904c95edbc18589c6bfe41564
index c962792af..c962792af 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e301e226ba4e3b2904c95edbc18589c6bfe41564
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e301e226ba4e3b2904c95edbc18589c6bfe41564
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e3318fcbc348681d63c88ea44d586ec89cfc3689 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e3318fcbc348681d63c88ea44d586ec89cfc3689
index 8b8e3afab..8b8e3afab 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e3318fcbc348681d63c88ea44d586ec89cfc3689
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e3318fcbc348681d63c88ea44d586ec89cfc3689
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e33d581367957ab567e7f8769c30f00f08569624 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e33d581367957ab567e7f8769c30f00f08569624
index aa6d1b1dd..aa6d1b1dd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e33d581367957ab567e7f8769c30f00f08569624
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e33d581367957ab567e7f8769c30f00f08569624
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e344166ede7c1c0d097f8799fcbe2efd806a9868 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e344166ede7c1c0d097f8799fcbe2efd806a9868
index dc3151abb..dc3151abb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e344166ede7c1c0d097f8799fcbe2efd806a9868
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e344166ede7c1c0d097f8799fcbe2efd806a9868
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e3706ba893c32e7f72669ab19a3fe854980cb078 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e3706ba893c32e7f72669ab19a3fe854980cb078
index 51f26bb3e..51f26bb3e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e3706ba893c32e7f72669ab19a3fe854980cb078
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e3706ba893c32e7f72669ab19a3fe854980cb078
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e386cadb8ccabc602345f513dbe04aa71edc87d9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e386cadb8ccabc602345f513dbe04aa71edc87d9
index 3839729e6..3839729e6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e386cadb8ccabc602345f513dbe04aa71edc87d9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e386cadb8ccabc602345f513dbe04aa71edc87d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e41831a48273dbbd34ccda457399b01c38a42dbb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e41831a48273dbbd34ccda457399b01c38a42dbb
index d5fe98627..d5fe98627 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e41831a48273dbbd34ccda457399b01c38a42dbb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e41831a48273dbbd34ccda457399b01c38a42dbb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e440477306ae187968b2be6639dabb637b748b93 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e440477306ae187968b2be6639dabb637b748b93
index 6baa6c40a..6baa6c40a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e440477306ae187968b2be6639dabb637b748b93
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e440477306ae187968b2be6639dabb637b748b93
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e46e0bc022cc0cf58407db3e4cb425b986af79a1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e46e0bc022cc0cf58407db3e4cb425b986af79a1
index 9dfdc0f56..9dfdc0f56 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e46e0bc022cc0cf58407db3e4cb425b986af79a1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e46e0bc022cc0cf58407db3e4cb425b986af79a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e49c5572811ac4ace9d7b3f6bc911694e3a77a09 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e49c5572811ac4ace9d7b3f6bc911694e3a77a09
index 28b82988e..28b82988e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e49c5572811ac4ace9d7b3f6bc911694e3a77a09
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e49c5572811ac4ace9d7b3f6bc911694e3a77a09
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e4be7168d1e1c3a7db2ac87034a0e59f57ba4abd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4be7168d1e1c3a7db2ac87034a0e59f57ba4abd
index 5ecf97513..5ecf97513 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e4be7168d1e1c3a7db2ac87034a0e59f57ba4abd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4be7168d1e1c3a7db2ac87034a0e59f57ba4abd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e4eea1d7f810f33571bc698019fbed3057536a54 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4eea1d7f810f33571bc698019fbed3057536a54
index 9eae1e42a..9eae1e42a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e4eea1d7f810f33571bc698019fbed3057536a54
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4eea1d7f810f33571bc698019fbed3057536a54
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e4f258e5bdf346d7d3544395373f6e05c5986269 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4f258e5bdf346d7d3544395373f6e05c5986269
index 575f1087e..575f1087e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e4f258e5bdf346d7d3544395373f6e05c5986269
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4f258e5bdf346d7d3544395373f6e05c5986269
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e4f268c626dc2f40391ede8c39f1abc176dbb375 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4f268c626dc2f40391ede8c39f1abc176dbb375
index 3b094d339..3b094d339 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e4f268c626dc2f40391ede8c39f1abc176dbb375
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4f268c626dc2f40391ede8c39f1abc176dbb375
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e4ff457b5695520d53e2f8a31276489186622fae b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4ff457b5695520d53e2f8a31276489186622fae
index 4ed5cae4c..4ed5cae4c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e4ff457b5695520d53e2f8a31276489186622fae
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e4ff457b5695520d53e2f8a31276489186622fae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e51ade9a5cbf7610d99964956bd1168e36c2146f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e51ade9a5cbf7610d99964956bd1168e36c2146f
index 6cdfd3d78..6cdfd3d78 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e51ade9a5cbf7610d99964956bd1168e36c2146f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e51ade9a5cbf7610d99964956bd1168e36c2146f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e55ac79cf921b30ad3c9f418b5a82120fe223dee b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e55ac79cf921b30ad3c9f418b5a82120fe223dee
index 95779ee3c..95779ee3c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e55ac79cf921b30ad3c9f418b5a82120fe223dee
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e55ac79cf921b30ad3c9f418b5a82120fe223dee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e56749edfa417d433d0f8046c0cdc0eadedecc04 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e56749edfa417d433d0f8046c0cdc0eadedecc04
index 9310d61c9..9310d61c9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e56749edfa417d433d0f8046c0cdc0eadedecc04
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e56749edfa417d433d0f8046c0cdc0eadedecc04
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e575647f20cf9c70ae382961cf9d6397c8b77ec6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e575647f20cf9c70ae382961cf9d6397c8b77ec6
index 1724c62bc..1724c62bc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e575647f20cf9c70ae382961cf9d6397c8b77ec6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e575647f20cf9c70ae382961cf9d6397c8b77ec6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e57bfdaeefd305450b704a8253e5f11fe3d9495b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e57bfdaeefd305450b704a8253e5f11fe3d9495b
index 9192b157d..9192b157d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e57bfdaeefd305450b704a8253e5f11fe3d9495b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e57bfdaeefd305450b704a8253e5f11fe3d9495b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e5a9d2f92a2d1a12cffd25c3a58f024413a32c25 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e5a9d2f92a2d1a12cffd25c3a58f024413a32c25
index f3ca9a605..f3ca9a605 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e5a9d2f92a2d1a12cffd25c3a58f024413a32c25
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e5a9d2f92a2d1a12cffd25c3a58f024413a32c25
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e5d9e9fcdd3df8bdbb389aff916f3b7ce0f6468a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e5d9e9fcdd3df8bdbb389aff916f3b7ce0f6468a
index e11067cb4..e11067cb4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e5d9e9fcdd3df8bdbb389aff916f3b7ce0f6468a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e5d9e9fcdd3df8bdbb389aff916f3b7ce0f6468a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e5fe297fa27bb8167f0d67c89fa09b19b1e02189 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e5fe297fa27bb8167f0d67c89fa09b19b1e02189
index fa0d5667f..fa0d5667f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e5fe297fa27bb8167f0d67c89fa09b19b1e02189
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e5fe297fa27bb8167f0d67c89fa09b19b1e02189
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e61b7892c71719b813c35c8b2ba2d398cf247e11 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e61b7892c71719b813c35c8b2ba2d398cf247e11
index 38bb80448..38bb80448 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e61b7892c71719b813c35c8b2ba2d398cf247e11
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e61b7892c71719b813c35c8b2ba2d398cf247e11
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e62fdd7fb3ec04ab2b5e849ea893191d1c20422d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e62fdd7fb3ec04ab2b5e849ea893191d1c20422d
index 78c8831a2..78c8831a2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e62fdd7fb3ec04ab2b5e849ea893191d1c20422d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e62fdd7fb3ec04ab2b5e849ea893191d1c20422d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e631366edc71090844b9fe724f955c6d20f0bd72 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e631366edc71090844b9fe724f955c6d20f0bd72
index a85f6f4e7..a85f6f4e7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e631366edc71090844b9fe724f955c6d20f0bd72
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e631366edc71090844b9fe724f955c6d20f0bd72
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e64863b912c9358a66735b703e526e3e09253a33 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e64863b912c9358a66735b703e526e3e09253a33
index f4632570e..f4632570e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e64863b912c9358a66735b703e526e3e09253a33
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e64863b912c9358a66735b703e526e3e09253a33
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e68d583a46daca22654de1ad20c84b5fcbe470b1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e68d583a46daca22654de1ad20c84b5fcbe470b1
index 6f2042d1e..6f2042d1e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e68d583a46daca22654de1ad20c84b5fcbe470b1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e68d583a46daca22654de1ad20c84b5fcbe470b1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e6ea74d389f5ddac04cb049356f4d1d932a33088 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e6ea74d389f5ddac04cb049356f4d1d932a33088
index 30f223122..30f223122 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e6ea74d389f5ddac04cb049356f4d1d932a33088
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e6ea74d389f5ddac04cb049356f4d1d932a33088
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e76064720250d6896cca684fa34d2beb1a0c8a1a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e76064720250d6896cca684fa34d2beb1a0c8a1a
index 35abaede2..35abaede2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e76064720250d6896cca684fa34d2beb1a0c8a1a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e76064720250d6896cca684fa34d2beb1a0c8a1a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e782aabe0939e4a2b22c50f1b8711928a94b0247 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e782aabe0939e4a2b22c50f1b8711928a94b0247
index 8ed256337..8ed256337 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e782aabe0939e4a2b22c50f1b8711928a94b0247
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e782aabe0939e4a2b22c50f1b8711928a94b0247
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e7b32da2598431f23a43ee482d73af1fb38168a9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e7b32da2598431f23a43ee482d73af1fb38168a9
index e28520bdd..e28520bdd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e7b32da2598431f23a43ee482d73af1fb38168a9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e7b32da2598431f23a43ee482d73af1fb38168a9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e7bd3af4a2dc0566016569ccb4420a77c0b5971e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e7bd3af4a2dc0566016569ccb4420a77c0b5971e
index 1f9e17550..1f9e17550 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e7bd3af4a2dc0566016569ccb4420a77c0b5971e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e7bd3af4a2dc0566016569ccb4420a77c0b5971e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e84e4b0f7149ee1a4f0d16ab53a7521d9d3107f8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e84e4b0f7149ee1a4f0d16ab53a7521d9d3107f8
index 484ffa519..484ffa519 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e84e4b0f7149ee1a4f0d16ab53a7521d9d3107f8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e84e4b0f7149ee1a4f0d16ab53a7521d9d3107f8
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e852427d7c56e4967a64f62b269ecf418e2f5907 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e852427d7c56e4967a64f62b269ecf418e2f5907
index d60ad9ecb..d60ad9ecb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e852427d7c56e4967a64f62b269ecf418e2f5907
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e852427d7c56e4967a64f62b269ecf418e2f5907
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e88033e22af167e98396170cc562f20d91bdfc76 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e88033e22af167e98396170cc562f20d91bdfc76
index 595ae8925..595ae8925 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e88033e22af167e98396170cc562f20d91bdfc76
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e88033e22af167e98396170cc562f20d91bdfc76
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e8ad99ef253b2016519c34f2882281e4da7ac4b6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e8ad99ef253b2016519c34f2882281e4da7ac4b6
index 85885d305..85885d305 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e8ad99ef253b2016519c34f2882281e4da7ac4b6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e8ad99ef253b2016519c34f2882281e4da7ac4b6
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e8c0428772d24517273d98a996fc03df34eea1ca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e8c0428772d24517273d98a996fc03df34eea1ca
index a21181728..a21181728 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e8c0428772d24517273d98a996fc03df34eea1ca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e8c0428772d24517273d98a996fc03df34eea1ca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e8d1c7a6dd3617a42a41affe1268e61007b9008d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e8d1c7a6dd3617a42a41affe1268e61007b9008d
index 64d9c37a1..64d9c37a1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e8d1c7a6dd3617a42a41affe1268e61007b9008d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e8d1c7a6dd3617a42a41affe1268e61007b9008d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e913420add4750b800e100a9609252ef90f744fc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e913420add4750b800e100a9609252ef90f744fc
index e6443b48e..e6443b48e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e913420add4750b800e100a9609252ef90f744fc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e913420add4750b800e100a9609252ef90f744fc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e9521bf37f3fc1eb2874a27b3656a4a1a5df8d26 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9521bf37f3fc1eb2874a27b3656a4a1a5df8d26
index 523b394c8..523b394c8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e9521bf37f3fc1eb2874a27b3656a4a1a5df8d26
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9521bf37f3fc1eb2874a27b3656a4a1a5df8d26
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e9831cdb1e316ce640b2ebda89fb1fb8cc211a48 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9831cdb1e316ce640b2ebda89fb1fb8cc211a48
index e3eb973a2..e3eb973a2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e9831cdb1e316ce640b2ebda89fb1fb8cc211a48
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9831cdb1e316ce640b2ebda89fb1fb8cc211a48
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e99e99678d5c9e569523b6ce62b5ab27a83a7dff b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e99e99678d5c9e569523b6ce62b5ab27a83a7dff
index d5ee8c78f..d5ee8c78f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e99e99678d5c9e569523b6ce62b5ab27a83a7dff
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e99e99678d5c9e569523b6ce62b5ab27a83a7dff
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e9b12b8f8745a55c09a42cbf039884525bf8055b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9b12b8f8745a55c09a42cbf039884525bf8055b
index 40b0ffddc..40b0ffddc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e9b12b8f8745a55c09a42cbf039884525bf8055b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9b12b8f8745a55c09a42cbf039884525bf8055b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e9c0aae8944d3336d818c5f79ece3555d62cfcd3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9c0aae8944d3336d818c5f79ece3555d62cfcd3
index e8fbc811f..e8fbc811f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e9c0aae8944d3336d818c5f79ece3555d62cfcd3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9c0aae8944d3336d818c5f79ece3555d62cfcd3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/e9cbc9582ebfc1378edd6a753d7b5e4cb5df868c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9cbc9582ebfc1378edd6a753d7b5e4cb5df868c
index 8e33d635d..8e33d635d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/e9cbc9582ebfc1378edd6a753d7b5e4cb5df868c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/e9cbc9582ebfc1378edd6a753d7b5e4cb5df868c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ea07369d10d2188b01a88afbbe85a364188eb60f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ea07369d10d2188b01a88afbbe85a364188eb60f
index 00e26dc2d..00e26dc2d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ea07369d10d2188b01a88afbbe85a364188eb60f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ea07369d10d2188b01a88afbbe85a364188eb60f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ea3029d7b464759105edd6933f36909dc985527a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ea3029d7b464759105edd6933f36909dc985527a
index 346fee022..346fee022 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ea3029d7b464759105edd6933f36909dc985527a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ea3029d7b464759105edd6933f36909dc985527a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ea5fe29cfddf050682cee77ecd2b4fdef408df94 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ea5fe29cfddf050682cee77ecd2b4fdef408df94
index 253d6c583..253d6c583 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ea5fe29cfddf050682cee77ecd2b4fdef408df94
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ea5fe29cfddf050682cee77ecd2b4fdef408df94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eac0b1ca8a4e06ce3ed1a98f6f9a07b41a261b21 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eac0b1ca8a4e06ce3ed1a98f6f9a07b41a261b21
index ed9c1432e..ed9c1432e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eac0b1ca8a4e06ce3ed1a98f6f9a07b41a261b21
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eac0b1ca8a4e06ce3ed1a98f6f9a07b41a261b21
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eb24833e5c0a9244c5081149eb32198178aa2cc6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb24833e5c0a9244c5081149eb32198178aa2cc6
index 59fc825b3..59fc825b3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eb24833e5c0a9244c5081149eb32198178aa2cc6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb24833e5c0a9244c5081149eb32198178aa2cc6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eb3c82946215ab6bec4c8da757ce888f74d39a38 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb3c82946215ab6bec4c8da757ce888f74d39a38
index 0fe7ced9a..0fe7ced9a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eb3c82946215ab6bec4c8da757ce888f74d39a38
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb3c82946215ab6bec4c8da757ce888f74d39a38
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eb4fb98c6f4e33f46d92ae7f27141c2a7a980204 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb4fb98c6f4e33f46d92ae7f27141c2a7a980204
index dbf7ecbca..dbf7ecbca 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eb4fb98c6f4e33f46d92ae7f27141c2a7a980204
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb4fb98c6f4e33f46d92ae7f27141c2a7a980204
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eb53d8ad295dbf0b61ce30d9bf641333e6946c85 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb53d8ad295dbf0b61ce30d9bf641333e6946c85
index 6302f881c..6302f881c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eb53d8ad295dbf0b61ce30d9bf641333e6946c85
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb53d8ad295dbf0b61ce30d9bf641333e6946c85
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eb719aa834fb6826c6a89a173c01c43b1ba2db90 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb719aa834fb6826c6a89a173c01c43b1ba2db90
index a4e79ca52..a4e79ca52 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eb719aa834fb6826c6a89a173c01c43b1ba2db90
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eb719aa834fb6826c6a89a173c01c43b1ba2db90
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ec1e3336f9f307a12f0ca8cb7d17aedc402f4f0f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec1e3336f9f307a12f0ca8cb7d17aedc402f4f0f
index e269ac6a3..e269ac6a3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ec1e3336f9f307a12f0ca8cb7d17aedc402f4f0f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec1e3336f9f307a12f0ca8cb7d17aedc402f4f0f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ec650c55b9a1991c32198471c05a499f15133ffe b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec650c55b9a1991c32198471c05a499f15133ffe
index 6d886e299..6d886e299 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ec650c55b9a1991c32198471c05a499f15133ffe
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec650c55b9a1991c32198471c05a499f15133ffe
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ec7ba4216ee9013b96ca22df29539782b6593a52 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec7ba4216ee9013b96ca22df29539782b6593a52
index f5a5923a0..f5a5923a0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ec7ba4216ee9013b96ca22df29539782b6593a52
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec7ba4216ee9013b96ca22df29539782b6593a52
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ec880d6a669abd541df7c4c98db20ebaf0701b7e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec880d6a669abd541df7c4c98db20ebaf0701b7e
index 0c5a3a67d..0c5a3a67d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ec880d6a669abd541df7c4c98db20ebaf0701b7e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ec880d6a669abd541df7c4c98db20ebaf0701b7e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ecc83b8fcafb75bed3a187d771f843ba96bd2ef5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ecc83b8fcafb75bed3a187d771f843ba96bd2ef5
index 80b582cfc..80b582cfc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ecc83b8fcafb75bed3a187d771f843ba96bd2ef5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ecc83b8fcafb75bed3a187d771f843ba96bd2ef5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eccaec4054f296d5af0f56f9a74e5a6ba63dc208 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eccaec4054f296d5af0f56f9a74e5a6ba63dc208
index 78a7c48fe..78a7c48fe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eccaec4054f296d5af0f56f9a74e5a6ba63dc208
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eccaec4054f296d5af0f56f9a74e5a6ba63dc208
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ecce6861a3ee93f7ba0d51b43ebee20b3192653c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ecce6861a3ee93f7ba0d51b43ebee20b3192653c
index 2b990e8cd..2b990e8cd 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ecce6861a3ee93f7ba0d51b43ebee20b3192653c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ecce6861a3ee93f7ba0d51b43ebee20b3192653c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ecdfda7fe6b52cfdea84cf61ba051d4e5ce56047 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ecdfda7fe6b52cfdea84cf61ba051d4e5ce56047
index 0db96f2f4..0db96f2f4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ecdfda7fe6b52cfdea84cf61ba051d4e5ce56047
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ecdfda7fe6b52cfdea84cf61ba051d4e5ce56047
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ece9f3ca2fdbab1a93743cb2d98606e01c82afcf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ece9f3ca2fdbab1a93743cb2d98606e01c82afcf
index a9d43e661..a9d43e661 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ece9f3ca2fdbab1a93743cb2d98606e01c82afcf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ece9f3ca2fdbab1a93743cb2d98606e01c82afcf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ed028b10fb93c687756ba59d547b681ac2c9f398 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed028b10fb93c687756ba59d547b681ac2c9f398
index e34db75be..e34db75be 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ed028b10fb93c687756ba59d547b681ac2c9f398
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed028b10fb93c687756ba59d547b681ac2c9f398
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ed6d72a8bd6e7226438e0ae7392a5327a8c47011 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed6d72a8bd6e7226438e0ae7392a5327a8c47011
index b2dc46ff4..b2dc46ff4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ed6d72a8bd6e7226438e0ae7392a5327a8c47011
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed6d72a8bd6e7226438e0ae7392a5327a8c47011
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ed705ad97a2c39d09e29b99ed55595e297e131e2 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed705ad97a2c39d09e29b99ed55595e297e131e2
index 7937b7fa9..7937b7fa9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ed705ad97a2c39d09e29b99ed55595e297e131e2
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed705ad97a2c39d09e29b99ed55595e297e131e2
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ed747ecfe8d4cd3cbc760989a3b8c604d324c1c7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed747ecfe8d4cd3cbc760989a3b8c604d324c1c7
index 504be1c68..504be1c68 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ed747ecfe8d4cd3cbc760989a3b8c604d324c1c7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ed747ecfe8d4cd3cbc760989a3b8c604d324c1c7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/edb244484b170b2f96827bed02fc4001f8530db1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edb244484b170b2f96827bed02fc4001f8530db1
index 08ecd8512..08ecd8512 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/edb244484b170b2f96827bed02fc4001f8530db1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edb244484b170b2f96827bed02fc4001f8530db1
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/edc63da15da13a04cb85dad4f7f3d1229ec13596 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edc63da15da13a04cb85dad4f7f3d1229ec13596
index 10ee7bd1e..10ee7bd1e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/edc63da15da13a04cb85dad4f7f3d1229ec13596
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edc63da15da13a04cb85dad4f7f3d1229ec13596
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/edd450d945e0e7d0f511ab86d9d5edcf9908ec66 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edd450d945e0e7d0f511ab86d9d5edcf9908ec66
index c7d0f9848..c7d0f9848 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/edd450d945e0e7d0f511ab86d9d5edcf9908ec66
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edd450d945e0e7d0f511ab86d9d5edcf9908ec66
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/edfda635959d01fb7dd96aac4048d1cee4219cbd b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edfda635959d01fb7dd96aac4048d1cee4219cbd
index f2a82241f..f2a82241f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/edfda635959d01fb7dd96aac4048d1cee4219cbd
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/edfda635959d01fb7dd96aac4048d1cee4219cbd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ee42ec64b05b304fe4c8ed457005a75121ec47df b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee42ec64b05b304fe4c8ed457005a75121ec47df
index 79fcfcc43..79fcfcc43 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ee42ec64b05b304fe4c8ed457005a75121ec47df
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee42ec64b05b304fe4c8ed457005a75121ec47df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ee4c16e595f630c736bc9d59a6a24bcf351df27b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee4c16e595f630c736bc9d59a6a24bcf351df27b
index 811933c5d..811933c5d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ee4c16e595f630c736bc9d59a6a24bcf351df27b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee4c16e595f630c736bc9d59a6a24bcf351df27b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ee55640a4390490b207f80215fdd6de8849f551b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee55640a4390490b207f80215fdd6de8849f551b
index fd5b0bf83..fd5b0bf83 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ee55640a4390490b207f80215fdd6de8849f551b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee55640a4390490b207f80215fdd6de8849f551b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ee7f2ca7f969d2c749d2bc127c4750b5edff537f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee7f2ca7f969d2c749d2bc127c4750b5edff537f
index 153b48474..153b48474 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ee7f2ca7f969d2c749d2bc127c4750b5edff537f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee7f2ca7f969d2c749d2bc127c4750b5edff537f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ee9f52d2e15e8e7490f05805eace55b4629c2fe0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee9f52d2e15e8e7490f05805eace55b4629c2fe0
index 912e03a72..912e03a72 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ee9f52d2e15e8e7490f05805eace55b4629c2fe0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ee9f52d2e15e8e7490f05805eace55b4629c2fe0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/eea975eecb8e606b937e02bfbf961553e1a232fb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eea975eecb8e606b937e02bfbf961553e1a232fb
index 0d3e24559..0d3e24559 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/eea975eecb8e606b937e02bfbf961553e1a232fb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/eea975eecb8e606b937e02bfbf961553e1a232fb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ef42c77c19ed22121f5794ea16e08a002031a538 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ef42c77c19ed22121f5794ea16e08a002031a538
index 28b7adb1d..28b7adb1d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ef42c77c19ed22121f5794ea16e08a002031a538
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ef42c77c19ed22121f5794ea16e08a002031a538
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ef5bd77aaf655ffccb45143b4f816f1db5e4c40a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ef5bd77aaf655ffccb45143b4f816f1db5e4c40a
index 760131f5d..760131f5d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ef5bd77aaf655ffccb45143b4f816f1db5e4c40a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ef5bd77aaf655ffccb45143b4f816f1db5e4c40a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/efc2ca0c4edd10ae9976b116f45b25d5112b55cf b/src/web/server/h2o/libh2o/fuzz/http1-corpus/efc2ca0c4edd10ae9976b116f45b25d5112b55cf
index 9d9a2dedb..9d9a2dedb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/efc2ca0c4edd10ae9976b116f45b25d5112b55cf
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/efc2ca0c4edd10ae9976b116f45b25d5112b55cf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f00930308fa37bd8bdce56abc6467fe8e3400ac9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f00930308fa37bd8bdce56abc6467fe8e3400ac9
index 3ea19255a..3ea19255a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f00930308fa37bd8bdce56abc6467fe8e3400ac9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f00930308fa37bd8bdce56abc6467fe8e3400ac9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f07d43a91d316b261c237709a987fcaf6a345297 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f07d43a91d316b261c237709a987fcaf6a345297
index 84ceb2416..84ceb2416 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f07d43a91d316b261c237709a987fcaf6a345297
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f07d43a91d316b261c237709a987fcaf6a345297
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f096c7a15b3daa71e97ea392a535f002b017204e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f096c7a15b3daa71e97ea392a535f002b017204e
index a619b3c4d..a619b3c4d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f096c7a15b3daa71e97ea392a535f002b017204e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f096c7a15b3daa71e97ea392a535f002b017204e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f0a101e9cb3656515d874665a78066f2926d12c8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f0a101e9cb3656515d874665a78066f2926d12c8
index 872bea01a..872bea01a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f0a101e9cb3656515d874665a78066f2926d12c8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f0a101e9cb3656515d874665a78066f2926d12c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f0cba483bf5d395190bcf2072b33b1382845df16 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f0cba483bf5d395190bcf2072b33b1382845df16
index 33f254bd1..33f254bd1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f0cba483bf5d395190bcf2072b33b1382845df16
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f0cba483bf5d395190bcf2072b33b1382845df16
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f115301191c6b550dbe54720d2e8371fcfb82097 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f115301191c6b550dbe54720d2e8371fcfb82097
index ed0de4f9c..ed0de4f9c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f115301191c6b550dbe54720d2e8371fcfb82097
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f115301191c6b550dbe54720d2e8371fcfb82097
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f19cb09f52928964dff4b1c5e3d080ba6a4a820b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f19cb09f52928964dff4b1c5e3d080ba6a4a820b
index 7a14a8075..7a14a8075 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f19cb09f52928964dff4b1c5e3d080ba6a4a820b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f19cb09f52928964dff4b1c5e3d080ba6a4a820b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f220f3d119e3312b9a3fa3258185893bca0a2776 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f220f3d119e3312b9a3fa3258185893bca0a2776
index e0d8cfef0..e0d8cfef0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f220f3d119e3312b9a3fa3258185893bca0a2776
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f220f3d119e3312b9a3fa3258185893bca0a2776
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f22e15223e60823ff7fa34495dec0f1c1069cea3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f22e15223e60823ff7fa34495dec0f1c1069cea3
index 493b66dc6..493b66dc6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f22e15223e60823ff7fa34495dec0f1c1069cea3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f22e15223e60823ff7fa34495dec0f1c1069cea3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f27fd0aa60217b7a160f6bcdfc04cfec287665f8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f27fd0aa60217b7a160f6bcdfc04cfec287665f8
index 72e1c36a5..72e1c36a5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f27fd0aa60217b7a160f6bcdfc04cfec287665f8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f27fd0aa60217b7a160f6bcdfc04cfec287665f8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f2a96666df341852a163c6d932154f293b2e1f63 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2a96666df341852a163c6d932154f293b2e1f63
index 619a8110f..619a8110f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f2a96666df341852a163c6d932154f293b2e1f63
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2a96666df341852a163c6d932154f293b2e1f63
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f2c1c16fa61564d9a86bf513093e36968b92e060 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2c1c16fa61564d9a86bf513093e36968b92e060
index ee2b3555d..ee2b3555d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f2c1c16fa61564d9a86bf513093e36968b92e060
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2c1c16fa61564d9a86bf513093e36968b92e060
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f2d3802286c24f27cc2c5ee3635669c7a708f26e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2d3802286c24f27cc2c5ee3635669c7a708f26e
index a668c0267..a668c0267 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f2d3802286c24f27cc2c5ee3635669c7a708f26e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2d3802286c24f27cc2c5ee3635669c7a708f26e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f2e3b4795edece84f15c6373938fd2c48fa32f11 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2e3b4795edece84f15c6373938fd2c48fa32f11
index 9ff390531..9ff390531 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f2e3b4795edece84f15c6373938fd2c48fa32f11
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2e3b4795edece84f15c6373938fd2c48fa32f11
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f2f6d321acaa2a0c311b9f0f7d174287ed092629 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2f6d321acaa2a0c311b9f0f7d174287ed092629
index cc2294642..cc2294642 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f2f6d321acaa2a0c311b9f0f7d174287ed092629
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f2f6d321acaa2a0c311b9f0f7d174287ed092629
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f339a0bb82454a09c33394d91ae15cfa8d540a96 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f339a0bb82454a09c33394d91ae15cfa8d540a96
index 4acfd0a23..4acfd0a23 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f339a0bb82454a09c33394d91ae15cfa8d540a96
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f339a0bb82454a09c33394d91ae15cfa8d540a96
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f36115915c8c8278a8027a5beff11bdfd8c83d83 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f36115915c8c8278a8027a5beff11bdfd8c83d83
index 2731c7ea9..2731c7ea9 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f36115915c8c8278a8027a5beff11bdfd8c83d83
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f36115915c8c8278a8027a5beff11bdfd8c83d83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f36b1e833c1111724f4dca3e4e0c6dfac83d7324 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f36b1e833c1111724f4dca3e4e0c6dfac83d7324
index 194b572c7..194b572c7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f36b1e833c1111724f4dca3e4e0c6dfac83d7324
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f36b1e833c1111724f4dca3e4e0c6dfac83d7324
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f3a0d749a921e3f08a03185ee7350e8e6106386f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f3a0d749a921e3f08a03185ee7350e8e6106386f
index 05669cc8d..05669cc8d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f3a0d749a921e3f08a03185ee7350e8e6106386f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f3a0d749a921e3f08a03185ee7350e8e6106386f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f3cbc18664f7d062c12ab935154dd3d9daee61a3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f3cbc18664f7d062c12ab935154dd3d9daee61a3
index 40d13ab32..40d13ab32 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f3cbc18664f7d062c12ab935154dd3d9daee61a3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f3cbc18664f7d062c12ab935154dd3d9daee61a3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f3fa0d5a7d7df791c272c9957743df6abf45331e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f3fa0d5a7d7df791c272c9957743df6abf45331e
index e583f45b1..e583f45b1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f3fa0d5a7d7df791c272c9957743df6abf45331e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f3fa0d5a7d7df791c272c9957743df6abf45331e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f43d897e31a48ef44d2fa780012c4c8ebf3c0191 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f43d897e31a48ef44d2fa780012c4c8ebf3c0191
index 350db2284..350db2284 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f43d897e31a48ef44d2fa780012c4c8ebf3c0191
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f43d897e31a48ef44d2fa780012c4c8ebf3c0191
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f457dbc0a6cde3950d6dd5e456b642eec3169503 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f457dbc0a6cde3950d6dd5e456b642eec3169503
index c26d78fbe..c26d78fbe 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f457dbc0a6cde3950d6dd5e456b642eec3169503
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f457dbc0a6cde3950d6dd5e456b642eec3169503
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f4585d6c46b0e885a2d64599a2bea0a3b41bff9e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4585d6c46b0e885a2d64599a2bea0a3b41bff9e
index f27a483ce..f27a483ce 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f4585d6c46b0e885a2d64599a2bea0a3b41bff9e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4585d6c46b0e885a2d64599a2bea0a3b41bff9e
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f469a1381df73bdcba3b812fca93b4f1168e5974 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f469a1381df73bdcba3b812fca93b4f1168e5974
index 796e48146..796e48146 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f469a1381df73bdcba3b812fca93b4f1168e5974
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f469a1381df73bdcba3b812fca93b4f1168e5974
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f46d5d01c807779669bff9d84456048fda1cffb0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f46d5d01c807779669bff9d84456048fda1cffb0
index b8b0c6051..b8b0c6051 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f46d5d01c807779669bff9d84456048fda1cffb0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f46d5d01c807779669bff9d84456048fda1cffb0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f482213513b6bcf50f6b35187b67d03c7a918fbc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f482213513b6bcf50f6b35187b67d03c7a918fbc
index 5dcf6dd66..5dcf6dd66 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f482213513b6bcf50f6b35187b67d03c7a918fbc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f482213513b6bcf50f6b35187b67d03c7a918fbc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f4b040963d88288074dba4fcc9d43cef18e0a361 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4b040963d88288074dba4fcc9d43cef18e0a361
index 4892bb611..4892bb611 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f4b040963d88288074dba4fcc9d43cef18e0a361
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4b040963d88288074dba4fcc9d43cef18e0a361
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f4be56f5dfba94b4d46c35e17e6675180181d410 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4be56f5dfba94b4d46c35e17e6675180181d410
index 95f014d1d..95f014d1d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f4be56f5dfba94b4d46c35e17e6675180181d410
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4be56f5dfba94b4d46c35e17e6675180181d410
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f4dfd3bc611094c94632f0a7f65f286acdc224ba b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4dfd3bc611094c94632f0a7f65f286acdc224ba
index e11523bc8..e11523bc8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f4dfd3bc611094c94632f0a7f65f286acdc224ba
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f4dfd3bc611094c94632f0a7f65f286acdc224ba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f51ff9c13af8fd65ad17e27b9d131c3a6eb90721 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f51ff9c13af8fd65ad17e27b9d131c3a6eb90721
index e8ce207e2..e8ce207e2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f51ff9c13af8fd65ad17e27b9d131c3a6eb90721
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f51ff9c13af8fd65ad17e27b9d131c3a6eb90721
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f522349aa4f42364ac4ae4b9a75660a52fb87947 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f522349aa4f42364ac4ae4b9a75660a52fb87947
index 0aeec96d3..0aeec96d3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f522349aa4f42364ac4ae4b9a75660a52fb87947
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f522349aa4f42364ac4ae4b9a75660a52fb87947
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f5a1cceabef0d00e2d770c45ba65619e4ef00408 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f5a1cceabef0d00e2d770c45ba65619e4ef00408
index 1fad983a0..1fad983a0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f5a1cceabef0d00e2d770c45ba65619e4ef00408
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f5a1cceabef0d00e2d770c45ba65619e4ef00408
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f5ce7320c0da35f890fef56f1b583e5ef12a9dd4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f5ce7320c0da35f890fef56f1b583e5ef12a9dd4
index 9036379df..9036379df 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f5ce7320c0da35f890fef56f1b583e5ef12a9dd4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f5ce7320c0da35f890fef56f1b583e5ef12a9dd4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f61c0c297f12a7e9b9493732748ea65a5acc4347 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f61c0c297f12a7e9b9493732748ea65a5acc4347
index 6031f0fe3..6031f0fe3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f61c0c297f12a7e9b9493732748ea65a5acc4347
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f61c0c297f12a7e9b9493732748ea65a5acc4347
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f65a9e7517732c5a881626ba49112a969db28195 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f65a9e7517732c5a881626ba49112a969db28195
index 7beed8bba..7beed8bba 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f65a9e7517732c5a881626ba49112a969db28195
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f65a9e7517732c5a881626ba49112a969db28195
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f69dbd6a21af6cd77bc8b5f5a9e160556bce6cb6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f69dbd6a21af6cd77bc8b5f5a9e160556bce6cb6
index beace1810..beace1810 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f69dbd6a21af6cd77bc8b5f5a9e160556bce6cb6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f69dbd6a21af6cd77bc8b5f5a9e160556bce6cb6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f6ae21762067b40f6799577ad401a6d121dd18df b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6ae21762067b40f6799577ad401a6d121dd18df
index d4d909ae2..d4d909ae2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f6ae21762067b40f6799577ad401a6d121dd18df
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6ae21762067b40f6799577ad401a6d121dd18df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f6b64be1dd86d867221e4915fad1c38d5b19f7a5 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6b64be1dd86d867221e4915fad1c38d5b19f7a5
index 4a9b4cb83..4a9b4cb83 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f6b64be1dd86d867221e4915fad1c38d5b19f7a5
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6b64be1dd86d867221e4915fad1c38d5b19f7a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f6c4f2ac4363ee521dc3d0c3498384b377bfe600 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6c4f2ac4363ee521dc3d0c3498384b377bfe600
index d1eeca395..d1eeca395 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f6c4f2ac4363ee521dc3d0c3498384b377bfe600
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6c4f2ac4363ee521dc3d0c3498384b377bfe600
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f6c8e2d1bd133fc8d086d4db381561497efb1095 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6c8e2d1bd133fc8d086d4db381561497efb1095
index e166583aa..e166583aa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f6c8e2d1bd133fc8d086d4db381561497efb1095
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6c8e2d1bd133fc8d086d4db381561497efb1095
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f6d1078b25ddb627d3f7bce93dff6fd314d937f6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6d1078b25ddb627d3f7bce93dff6fd314d937f6
index 4fc7fa215..4fc7fa215 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f6d1078b25ddb627d3f7bce93dff6fd314d937f6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6d1078b25ddb627d3f7bce93dff6fd314d937f6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f6e954ed273cdfe13fbb3f6b1097a1bcb1310126 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6e954ed273cdfe13fbb3f6b1097a1bcb1310126
index d8a9dc053..d8a9dc053 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f6e954ed273cdfe13fbb3f6b1097a1bcb1310126
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f6e954ed273cdfe13fbb3f6b1097a1bcb1310126
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f70215799722870ab7afe0a4d74bdc6655f46f46 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f70215799722870ab7afe0a4d74bdc6655f46f46
index 2216210c4..2216210c4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f70215799722870ab7afe0a4d74bdc6655f46f46
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f70215799722870ab7afe0a4d74bdc6655f46f46
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f734ac553a994f2fbed708c93b66bcd563ea6ec6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f734ac553a994f2fbed708c93b66bcd563ea6ec6
index 577a9a8c2..577a9a8c2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f734ac553a994f2fbed708c93b66bcd563ea6ec6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f734ac553a994f2fbed708c93b66bcd563ea6ec6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f74cb2dc90d8b000603b1a70c559a4384923869c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f74cb2dc90d8b000603b1a70c559a4384923869c
index 2b2703235..2b2703235 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f74cb2dc90d8b000603b1a70c559a4384923869c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f74cb2dc90d8b000603b1a70c559a4384923869c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f769c28f309ec5562b98161f68764e1390f33b81 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f769c28f309ec5562b98161f68764e1390f33b81
index 51ccc8401..51ccc8401 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f769c28f309ec5562b98161f68764e1390f33b81
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f769c28f309ec5562b98161f68764e1390f33b81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f7a25105eb4026384986e8c2c6034b7c0352188e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7a25105eb4026384986e8c2c6034b7c0352188e
index 05c8d2dea..05c8d2dea 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f7a25105eb4026384986e8c2c6034b7c0352188e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7a25105eb4026384986e8c2c6034b7c0352188e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f7b9160aa72e5f9bc8ff5b788934c5835cdf628f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7b9160aa72e5f9bc8ff5b788934c5835cdf628f
index c501639f1..c501639f1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f7b9160aa72e5f9bc8ff5b788934c5835cdf628f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7b9160aa72e5f9bc8ff5b788934c5835cdf628f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f7c22e1c0c5dd28b576186fc71040306e0c558ac b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7c22e1c0c5dd28b576186fc71040306e0c558ac
index 60ab6ec56..60ab6ec56 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f7c22e1c0c5dd28b576186fc71040306e0c558ac
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7c22e1c0c5dd28b576186fc71040306e0c558ac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f7c92ef407a3e8f025c296d7765b90768e12a80e b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7c92ef407a3e8f025c296d7765b90768e12a80e
index b32fb4261..b32fb4261 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f7c92ef407a3e8f025c296d7765b90768e12a80e
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f7c92ef407a3e8f025c296d7765b90768e12a80e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f816c86c0aa349a7282ad30a406e21ecd00c4efc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f816c86c0aa349a7282ad30a406e21ecd00c4efc
index 7d196d62d..7d196d62d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f816c86c0aa349a7282ad30a406e21ecd00c4efc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f816c86c0aa349a7282ad30a406e21ecd00c4efc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f826cbe6434954493742272d73ccd07c1495194c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f826cbe6434954493742272d73ccd07c1495194c
index 57c9d25bc..57c9d25bc 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f826cbe6434954493742272d73ccd07c1495194c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f826cbe6434954493742272d73ccd07c1495194c
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f85c0f06b2f72946e68bed8bd5582fdc5c1f7862 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f85c0f06b2f72946e68bed8bd5582fdc5c1f7862
index 8b2b1f21c..8b2b1f21c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f85c0f06b2f72946e68bed8bd5582fdc5c1f7862
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f85c0f06b2f72946e68bed8bd5582fdc5c1f7862
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f86196c19d56e3cbee07eab885eaef4ce4c7ae44 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f86196c19d56e3cbee07eab885eaef4ce4c7ae44
index b6f481ad2..b6f481ad2 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f86196c19d56e3cbee07eab885eaef4ce4c7ae44
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f86196c19d56e3cbee07eab885eaef4ce4c7ae44
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f8724f61b6864c3eeeb317c04f0239243d637648 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8724f61b6864c3eeeb317c04f0239243d637648
index 5f6551c49..5f6551c49 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f8724f61b6864c3eeeb317c04f0239243d637648
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8724f61b6864c3eeeb317c04f0239243d637648
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f8cddf5f1047b58d50d3c7f817673a57a60df4d6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8cddf5f1047b58d50d3c7f817673a57a60df4d6
index 37617a98b..37617a98b 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f8cddf5f1047b58d50d3c7f817673a57a60df4d6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8cddf5f1047b58d50d3c7f817673a57a60df4d6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f8d905cb79247cf8242afad61655ac2e9440d918 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8d905cb79247cf8242afad61655ac2e9440d918
index 4c043e451..4c043e451 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f8d905cb79247cf8242afad61655ac2e9440d918
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8d905cb79247cf8242afad61655ac2e9440d918
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f8ea5a7500370721ed3cf377bc6fff5bab63859d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8ea5a7500370721ed3cf377bc6fff5bab63859d
index e1f89a691..e1f89a691 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f8ea5a7500370721ed3cf377bc6fff5bab63859d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8ea5a7500370721ed3cf377bc6fff5bab63859d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f8f7f86d5d1e17ef48921d4e997ec84816eaa4df b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8f7f86d5d1e17ef48921d4e997ec84816eaa4df
index 31c64b942..31c64b942 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f8f7f86d5d1e17ef48921d4e997ec84816eaa4df
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f8f7f86d5d1e17ef48921d4e997ec84816eaa4df
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f91631ff3af2d841131bf3717fed2dc405a87097 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f91631ff3af2d841131bf3717fed2dc405a87097
index edfe45365..edfe45365 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f91631ff3af2d841131bf3717fed2dc405a87097
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f91631ff3af2d841131bf3717fed2dc405a87097
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f93ecb86a17673f43010e488e31068c804877d77 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f93ecb86a17673f43010e488e31068c804877d77
index f544b0f19..f544b0f19 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f93ecb86a17673f43010e488e31068c804877d77
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f93ecb86a17673f43010e488e31068c804877d77
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f9443e6b69f7b596a6e10d601336483ebeeb7b2b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f9443e6b69f7b596a6e10d601336483ebeeb7b2b
index 32da97bac..32da97bac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f9443e6b69f7b596a6e10d601336483ebeeb7b2b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f9443e6b69f7b596a6e10d601336483ebeeb7b2b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f944e54e7382f56870fc1cacdfbdff4983cd5da6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f944e54e7382f56870fc1cacdfbdff4983cd5da6
index 94b9152b6..94b9152b6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f944e54e7382f56870fc1cacdfbdff4983cd5da6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f944e54e7382f56870fc1cacdfbdff4983cd5da6
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f97c0b71d2c58e4ace2e0314dbecde8132566c28 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f97c0b71d2c58e4ace2e0314dbecde8132566c28
index 3f8fd3431..3f8fd3431 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f97c0b71d2c58e4ace2e0314dbecde8132566c28
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f97c0b71d2c58e4ace2e0314dbecde8132566c28
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f992280db1160a0f2e4b9b10c8e53aa31a3d1576 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f992280db1160a0f2e4b9b10c8e53aa31a3d1576
index 3b03cccf8..3b03cccf8 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f992280db1160a0f2e4b9b10c8e53aa31a3d1576
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f992280db1160a0f2e4b9b10c8e53aa31a3d1576
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f9dab42ac2998f283e20724677f4ca2f9db8a27c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f9dab42ac2998f283e20724677f4ca2f9db8a27c
index a79fe5e4d..a79fe5e4d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f9dab42ac2998f283e20724677f4ca2f9db8a27c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f9dab42ac2998f283e20724677f4ca2f9db8a27c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/f9e38a657d9baa31fb7e69d017b022d7f2a756cb b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f9e38a657d9baa31fb7e69d017b022d7f2a756cb
index e7daf4688..e7daf4688 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/f9e38a657d9baa31fb7e69d017b022d7f2a756cb
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/f9e38a657d9baa31fb7e69d017b022d7f2a756cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fa12020e75ab24df07b86129e93fc430dccfa888 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fa12020e75ab24df07b86129e93fc430dccfa888
index 73c18ec6f..73c18ec6f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fa12020e75ab24df07b86129e93fc430dccfa888
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fa12020e75ab24df07b86129e93fc430dccfa888
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fa5039908c48b6d07124816461d2de919eb797d9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fa5039908c48b6d07124816461d2de919eb797d9
index a9bd7845d..a9bd7845d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fa5039908c48b6d07124816461d2de919eb797d9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fa5039908c48b6d07124816461d2de919eb797d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fa6181e3a71d529fcaa5ce594f675e3ba422b7c0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fa6181e3a71d529fcaa5ce594f675e3ba422b7c0
index ea3a73954..ea3a73954 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fa6181e3a71d529fcaa5ce594f675e3ba422b7c0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fa6181e3a71d529fcaa5ce594f675e3ba422b7c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fab326fe4f76f845e85c83e93d88d74c16cfe9cc b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fab326fe4f76f845e85c83e93d88d74c16cfe9cc
index aa5dc60aa..aa5dc60aa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fab326fe4f76f845e85c83e93d88d74c16cfe9cc
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fab326fe4f76f845e85c83e93d88d74c16cfe9cc
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fae5a152c5728517b21050b26c76bb8ba0e62c16 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fae5a152c5728517b21050b26c76bb8ba0e62c16
index 71447b814..71447b814 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fae5a152c5728517b21050b26c76bb8ba0e62c16
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fae5a152c5728517b21050b26c76bb8ba0e62c16
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/faf328f0953b6edba2d1ad86f0993d5a9bfb3d19 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/faf328f0953b6edba2d1ad86f0993d5a9bfb3d19
index 868ad9fed..868ad9fed 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/faf328f0953b6edba2d1ad86f0993d5a9bfb3d19
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/faf328f0953b6edba2d1ad86f0993d5a9bfb3d19
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fb14995cf0f0aa939630353681e3f72a76b02782 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb14995cf0f0aa939630353681e3f72a76b02782
index 8f2724114..8f2724114 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fb14995cf0f0aa939630353681e3f72a76b02782
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb14995cf0f0aa939630353681e3f72a76b02782
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fb5add14ef7c48acb3ccf470ea73c333ab182c38 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb5add14ef7c48acb3ccf470ea73c333ab182c38
index ebc13844f..ebc13844f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fb5add14ef7c48acb3ccf470ea73c333ab182c38
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb5add14ef7c48acb3ccf470ea73c333ab182c38
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fb613becbf23988044388d5db33fcb2266c96d5a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb613becbf23988044388d5db33fcb2266c96d5a
index 7b8abb64f..7b8abb64f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fb613becbf23988044388d5db33fcb2266c96d5a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb613becbf23988044388d5db33fcb2266c96d5a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fb668fa27b86e84d5e556ff6217afcb0b37d17ca b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb668fa27b86e84d5e556ff6217afcb0b37d17ca
index 2df7cfade..2df7cfade 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fb668fa27b86e84d5e556ff6217afcb0b37d17ca
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fb668fa27b86e84d5e556ff6217afcb0b37d17ca
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fbb2719409561b4f84d3ec7856346ccd95d7cbd6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb2719409561b4f84d3ec7856346ccd95d7cbd6
index a37d262d1..a37d262d1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fbb2719409561b4f84d3ec7856346ccd95d7cbd6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb2719409561b4f84d3ec7856346ccd95d7cbd6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fbb493380a00ff4f954c700950540cf555e01950 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb493380a00ff4f954c700950540cf555e01950
index 1a92b727e..1a92b727e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fbb493380a00ff4f954c700950540cf555e01950
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb493380a00ff4f954c700950540cf555e01950
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fbb78ca46890b215efec7524025a972f2ac7864f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb78ca46890b215efec7524025a972f2ac7864f
index ca25cc274..ca25cc274 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fbb78ca46890b215efec7524025a972f2ac7864f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbb78ca46890b215efec7524025a972f2ac7864f
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fbdf92d7c998afaa7605a9562de988684af86555 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbdf92d7c998afaa7605a9562de988684af86555
index 06e955b9e..06e955b9e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fbdf92d7c998afaa7605a9562de988684af86555
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbdf92d7c998afaa7605a9562de988684af86555
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fbeec5e3dd0ee7680e6743adcfb52b5ca2cf2974 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbeec5e3dd0ee7680e6743adcfb52b5ca2cf2974
index 6d40f5ec7..6d40f5ec7 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fbeec5e3dd0ee7680e6743adcfb52b5ca2cf2974
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fbeec5e3dd0ee7680e6743adcfb52b5ca2cf2974
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fc09d88c5a411d56dbdd45c25ee13c4209a1c0a9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc09d88c5a411d56dbdd45c25ee13c4209a1c0a9
index 66d4a0e50..66d4a0e50 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fc09d88c5a411d56dbdd45c25ee13c4209a1c0a9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc09d88c5a411d56dbdd45c25ee13c4209a1c0a9
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fc2ca8423f479cda709ca957377621fbdbbd8a59 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc2ca8423f479cda709ca957377621fbdbbd8a59
index d2a876465..d2a876465 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fc2ca8423f479cda709ca957377621fbdbbd8a59
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc2ca8423f479cda709ca957377621fbdbbd8a59
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fc6f50428489180ba314dcea81643ccd0839428b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc6f50428489180ba314dcea81643ccd0839428b
index dcfc46353..dcfc46353 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fc6f50428489180ba314dcea81643ccd0839428b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc6f50428489180ba314dcea81643ccd0839428b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fc758ef6a926f439a0a3011ed51724aec20fca0d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc758ef6a926f439a0a3011ed51724aec20fca0d
index ad4ed264c..ad4ed264c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fc758ef6a926f439a0a3011ed51724aec20fca0d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc758ef6a926f439a0a3011ed51724aec20fca0d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fc8462d025a1fd56c1fc944cac4cd6c41137f5f4 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc8462d025a1fd56c1fc944cac4cd6c41137f5f4
index 05cec31e1..05cec31e1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fc8462d025a1fd56c1fc944cac4cd6c41137f5f4
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fc8462d025a1fd56c1fc944cac4cd6c41137f5f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fcb5fd390e51d242b230140dea823e3026667241 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fcb5fd390e51d242b230140dea823e3026667241
index 7a571e8aa..7a571e8aa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fcb5fd390e51d242b230140dea823e3026667241
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fcb5fd390e51d242b230140dea823e3026667241
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fcbb7a063d0d44b734d173244b3787b727920112 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fcbb7a063d0d44b734d173244b3787b727920112
index 9a72564ad..9a72564ad 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fcbb7a063d0d44b734d173244b3787b727920112
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fcbb7a063d0d44b734d173244b3787b727920112
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fd565ace1aed51eee1e62abec6a3ac7098f454e8 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fd565ace1aed51eee1e62abec6a3ac7098f454e8
index dac6aad7c..dac6aad7c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fd565ace1aed51eee1e62abec6a3ac7098f454e8
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fd565ace1aed51eee1e62abec6a3ac7098f454e8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fd69e44f584a0c9261be3d6513c3c4eda43331b9 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fd69e44f584a0c9261be3d6513c3c4eda43331b9
index 01fac5ea3..01fac5ea3 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fd69e44f584a0c9261be3d6513c3c4eda43331b9
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fd69e44f584a0c9261be3d6513c3c4eda43331b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fdc71b88574646a4d529c67307344d814ef2350c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fdc71b88574646a4d529c67307344d814ef2350c
index bf58018c0..bf58018c0 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fdc71b88574646a4d529c67307344d814ef2350c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fdc71b88574646a4d529c67307344d814ef2350c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fde7598e34fcacb3e58938a4d805c89a2d52947b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fde7598e34fcacb3e58938a4d805c89a2d52947b
index c70329444..c70329444 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fde7598e34fcacb3e58938a4d805c89a2d52947b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fde7598e34fcacb3e58938a4d805c89a2d52947b
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215
index ddb32750f..ddb32750f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fe3f8df9bd67c025dee03f5b0cf5348caaeffcc1 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe3f8df9bd67c025dee03f5b0cf5348caaeffcc1
index f3c97ef8f..f3c97ef8f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fe3f8df9bd67c025dee03f5b0cf5348caaeffcc1
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe3f8df9bd67c025dee03f5b0cf5348caaeffcc1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fe43df69106363f3d224d1143b3c534681488202 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe43df69106363f3d224d1143b3c534681488202
index bf9ca269a..bf9ca269a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fe43df69106363f3d224d1143b3c534681488202
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe43df69106363f3d224d1143b3c534681488202
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fe55d4e4664c94f3b5b804e15746a60636708e93 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe55d4e4664c94f3b5b804e15746a60636708e93
index 0027502d1..0027502d1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fe55d4e4664c94f3b5b804e15746a60636708e93
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe55d4e4664c94f3b5b804e15746a60636708e93
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fe71ab32805896825d0abb7f7d7556a7e2a8a025 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe71ab32805896825d0abb7f7d7556a7e2a8a025
index 5baf54beb..5baf54beb 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fe71ab32805896825d0abb7f7d7556a7e2a8a025
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe71ab32805896825d0abb7f7d7556a7e2a8a025
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fe99922363b87360df838963bbf3353f3e519dad b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe99922363b87360df838963bbf3353f3e519dad
index 40b79b7ac..40b79b7ac 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fe99922363b87360df838963bbf3353f3e519dad
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fe99922363b87360df838963bbf3353f3e519dad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fea3241a261aeb30cff9a3cd0692eddeaf888ce3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fea3241a261aeb30cff9a3cd0692eddeaf888ce3
index 30deb2cb1..30deb2cb1 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fea3241a261aeb30cff9a3cd0692eddeaf888ce3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fea3241a261aeb30cff9a3cd0692eddeaf888ce3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d
index 7bd877838..7bd877838 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fec4821f67bd9f53c32027b51bfb09ee5d290e8f b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fec4821f67bd9f53c32027b51bfb09ee5d290e8f
index 26e3feb3f..26e3feb3f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fec4821f67bd9f53c32027b51bfb09ee5d290e8f
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fec4821f67bd9f53c32027b51bfb09ee5d290e8f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fefbe3f799fe49d3ea559b3fda3b45257082129a b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fefbe3f799fe49d3ea559b3fda3b45257082129a
index fc3de600d..fc3de600d 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fefbe3f799fe49d3ea559b3fda3b45257082129a
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fefbe3f799fe49d3ea559b3fda3b45257082129a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ff18355ce02a89a8e5695aa54c257ed6a7e50446 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff18355ce02a89a8e5695aa54c257ed6a7e50446
index 3f4a17fc4..3f4a17fc4 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ff18355ce02a89a8e5695aa54c257ed6a7e50446
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff18355ce02a89a8e5695aa54c257ed6a7e50446
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ff24c086aebdc27cd7bc2433182cf4642f6289a0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff24c086aebdc27cd7bc2433182cf4642f6289a0
index 5f037b12e..5f037b12e 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ff24c086aebdc27cd7bc2433182cf4642f6289a0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff24c086aebdc27cd7bc2433182cf4642f6289a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ff440ac4d47014d15eb333366550e7b3b2b217c3 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff440ac4d47014d15eb333366550e7b3b2b217c3
index 5fded4161..5fded4161 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ff440ac4d47014d15eb333366550e7b3b2b217c3
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff440ac4d47014d15eb333366550e7b3b2b217c3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ff4de73377101f2aa0219488b509ddce65468e61 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff4de73377101f2aa0219488b509ddce65468e61
index e06ef9dc5..e06ef9dc5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ff4de73377101f2aa0219488b509ddce65468e61
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff4de73377101f2aa0219488b509ddce65468e61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ff5101be46c93c1ba3ba4f4ae8857a0437f2cbec b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff5101be46c93c1ba3ba4f4ae8857a0437f2cbec
index 93616c1d6..93616c1d6 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ff5101be46c93c1ba3ba4f4ae8857a0437f2cbec
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff5101be46c93c1ba3ba4f4ae8857a0437f2cbec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ff69bf91172634e4e33053abd06ce5dcecf19ead b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff69bf91172634e4e33053abd06ce5dcecf19ead
index 33c14088c..33c14088c 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ff69bf91172634e4e33053abd06ce5dcecf19ead
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff69bf91172634e4e33053abd06ce5dcecf19ead
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ff6cf5f5588e7c9abef57c18d260e642ce3b46c0 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff6cf5f5588e7c9abef57c18d260e642ce3b46c0
index 5795af09a..5795af09a 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ff6cf5f5588e7c9abef57c18d260e642ce3b46c0
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ff6cf5f5588e7c9abef57c18d260e642ce3b46c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ffc904973676b2d8e7aaf57e1c75ea19a140c2d6 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffc904973676b2d8e7aaf57e1c75ea19a140c2d6
index fb6ca4f0f..fb6ca4f0f 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ffc904973676b2d8e7aaf57e1c75ea19a140c2d6
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffc904973676b2d8e7aaf57e1c75ea19a140c2d6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ffca3d21fd3baa6ffd9fff240c0bc3defb8175a7 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffca3d21fd3baa6ffd9fff240c0bc3defb8175a7
index 1f96f89fa..1f96f89fa 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ffca3d21fd3baa6ffd9fff240c0bc3defb8175a7
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffca3d21fd3baa6ffd9fff240c0bc3defb8175a7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ffd3bfbd8074cecd8a799f71992f8f320dbf0382 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffd3bfbd8074cecd8a799f71992f8f320dbf0382
index 694d33df5..694d33df5 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ffd3bfbd8074cecd8a799f71992f8f320dbf0382
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffd3bfbd8074cecd8a799f71992f8f320dbf0382
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/ffe6888963f75b4e1396995eae29e57cf23b320b b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffe6888963f75b4e1396995eae29e57cf23b320b
index e9f05b136..e9f05b136 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/ffe6888963f75b4e1396995eae29e57cf23b320b
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/ffe6888963f75b4e1396995eae29e57cf23b320b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fff96cd3fb2d5588dff70ad30c4b74b247aab29c b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fff96cd3fb2d5588dff70ad30c4b74b247aab29c
index 49e922590..49e922590 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fff96cd3fb2d5588dff70ad30c4b74b247aab29c
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fff96cd3fb2d5588dff70ad30c4b74b247aab29c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http1-corpus/fff9a3c063e7331384a3909b3299e6b053b7e975 b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fff9a3c063e7331384a3909b3299e6b053b7e975
index a7d49cbcf..a7d49cbcf 100644
--- a/web/server/h2o/libh2o/fuzz/http1-corpus/fff9a3c063e7331384a3909b3299e6b053b7e975
+++ b/src/web/server/h2o/libh2o/fuzz/http1-corpus/fff9a3c063e7331384a3909b3299e6b053b7e975
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/001015fe2b4d4b50f1de1c8b295d1e5cecde8993 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/001015fe2b4d4b50f1de1c8b295d1e5cecde8993
index 772212c22..772212c22 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/001015fe2b4d4b50f1de1c8b295d1e5cecde8993
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/001015fe2b4d4b50f1de1c8b295d1e5cecde8993
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0017ac38fd62ab27d6c9b1c47cf16a831e02c13a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0017ac38fd62ab27d6c9b1c47cf16a831e02c13a
index 9d0b922c9..9d0b922c9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0017ac38fd62ab27d6c9b1c47cf16a831e02c13a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0017ac38fd62ab27d6c9b1c47cf16a831e02c13a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/00926a021aadde1dfc92ae7cf3487e7c41275fe4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00926a021aadde1dfc92ae7cf3487e7c41275fe4
index b8997d9b6..b8997d9b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/00926a021aadde1dfc92ae7cf3487e7c41275fe4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00926a021aadde1dfc92ae7cf3487e7c41275fe4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/00b4d25ce806ce16e4971a788966587a8ea47b36 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00b4d25ce806ce16e4971a788966587a8ea47b36
index 9f922fe62..9f922fe62 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/00b4d25ce806ce16e4971a788966587a8ea47b36
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00b4d25ce806ce16e4971a788966587a8ea47b36
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/00bb33dcdfa0cf87e3bcc5e21989bf4b63780e70 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00bb33dcdfa0cf87e3bcc5e21989bf4b63780e70
index 4b3c5a375..4b3c5a375 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/00bb33dcdfa0cf87e3bcc5e21989bf4b63780e70
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00bb33dcdfa0cf87e3bcc5e21989bf4b63780e70
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/00da40700b9937b43cd7924c4a0ccb3fb487bfb4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00da40700b9937b43cd7924c4a0ccb3fb487bfb4
index 8faefa101..8faefa101 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/00da40700b9937b43cd7924c4a0ccb3fb487bfb4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00da40700b9937b43cd7924c4a0ccb3fb487bfb4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/00ea3a0fce5effaf10898a05271cb7932959db4f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00ea3a0fce5effaf10898a05271cb7932959db4f
index d018b7ba4..d018b7ba4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/00ea3a0fce5effaf10898a05271cb7932959db4f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00ea3a0fce5effaf10898a05271cb7932959db4f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/00f9e6e9f360ee6025b48f4053f9709079da6738 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00f9e6e9f360ee6025b48f4053f9709079da6738
index 9cd2c3b64..9cd2c3b64 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/00f9e6e9f360ee6025b48f4053f9709079da6738
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/00f9e6e9f360ee6025b48f4053f9709079da6738
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410
index 598b8d3b9..598b8d3b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/011262c1c9966afaee07d3b0b5e89e42dc30b410
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/01305ab752605e5a503ef305cc75934f2a666bee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01305ab752605e5a503ef305cc75934f2a666bee
index a79cd5f1a..a79cd5f1a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/01305ab752605e5a503ef305cc75934f2a666bee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01305ab752605e5a503ef305cc75934f2a666bee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/014e2d0d84aa365f6adb926bb34a60b68f074cea b/src/web/server/h2o/libh2o/fuzz/http2-corpus/014e2d0d84aa365f6adb926bb34a60b68f074cea
index 541289cc6..541289cc6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/014e2d0d84aa365f6adb926bb34a60b68f074cea
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/014e2d0d84aa365f6adb926bb34a60b68f074cea
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/01826d6cef54f8d2a1cf2b0d6421808908e18f7d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01826d6cef54f8d2a1cf2b0d6421808908e18f7d
index 1f95602b2..1f95602b2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/01826d6cef54f8d2a1cf2b0d6421808908e18f7d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01826d6cef54f8d2a1cf2b0d6421808908e18f7d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/019b5b3a46d132d60712d6a0e81a1916d4c84387 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/019b5b3a46d132d60712d6a0e81a1916d4c84387
index 2f4a90076..2f4a90076 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/019b5b3a46d132d60712d6a0e81a1916d4c84387
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/019b5b3a46d132d60712d6a0e81a1916d4c84387
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/01bbcc625ebdc8143dd163898b7908b2570f5385 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01bbcc625ebdc8143dd163898b7908b2570f5385
index bc3e21e26..bc3e21e26 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/01bbcc625ebdc8143dd163898b7908b2570f5385
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01bbcc625ebdc8143dd163898b7908b2570f5385
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/01bf7d9b4f2c4d09532e4f4ed2ebc933c568048d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01bf7d9b4f2c4d09532e4f4ed2ebc933c568048d
index 456711843..456711843 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/01bf7d9b4f2c4d09532e4f4ed2ebc933c568048d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01bf7d9b4f2c4d09532e4f4ed2ebc933c568048d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/01d7a816a9f9d507e4905c7b198513cde14d1a98 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01d7a816a9f9d507e4905c7b198513cde14d1a98
index 6a4a2257c..6a4a2257c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/01d7a816a9f9d507e4905c7b198513cde14d1a98
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01d7a816a9f9d507e4905c7b198513cde14d1a98
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/01d84a10792f0101da735dd7208daab30080a9d8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01d84a10792f0101da735dd7208daab30080a9d8
index 065001d06..065001d06 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/01d84a10792f0101da735dd7208daab30080a9d8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/01d84a10792f0101da735dd7208daab30080a9d8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0291ae8e0459e06d5242d9be08645245cd31eefb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0291ae8e0459e06d5242d9be08645245cd31eefb
index 0c114e53f..0c114e53f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0291ae8e0459e06d5242d9be08645245cd31eefb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0291ae8e0459e06d5242d9be08645245cd31eefb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/02a634a05d86cc28ea5c41c725fbbb272c5fef20 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/02a634a05d86cc28ea5c41c725fbbb272c5fef20
index 90adcab19..90adcab19 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/02a634a05d86cc28ea5c41c725fbbb272c5fef20
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/02a634a05d86cc28ea5c41c725fbbb272c5fef20
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/02e9a8379313698191e7f4398cd2ea255413d330 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/02e9a8379313698191e7f4398cd2ea255413d330
index 06da625f7..06da625f7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/02e9a8379313698191e7f4398cd2ea255413d330
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/02e9a8379313698191e7f4398cd2ea255413d330
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/02ee99bc2348bb02a6bd6044399e719cade27bf2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/02ee99bc2348bb02a6bd6044399e719cade27bf2
index 8838d27ba..8838d27ba 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/02ee99bc2348bb02a6bd6044399e719cade27bf2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/02ee99bc2348bb02a6bd6044399e719cade27bf2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/031296f832805274205a408b0e711307cd9e3763 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/031296f832805274205a408b0e711307cd9e3763
index 1226cad73..1226cad73 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/031296f832805274205a408b0e711307cd9e3763
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/031296f832805274205a408b0e711307cd9e3763
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/037c86e693f35b697030e7d682e9edc440c89c24 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/037c86e693f35b697030e7d682e9edc440c89c24
index 64cca1e7b..64cca1e7b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/037c86e693f35b697030e7d682e9edc440c89c24
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/037c86e693f35b697030e7d682e9edc440c89c24
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0397916c1c167eb7ee6b20873593b87e16f69015 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0397916c1c167eb7ee6b20873593b87e16f69015
index 52a043dca..52a043dca 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0397916c1c167eb7ee6b20873593b87e16f69015
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0397916c1c167eb7ee6b20873593b87e16f69015
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/03d032bcb87221cdbc85224aebc95574c23779ca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/03d032bcb87221cdbc85224aebc95574c23779ca
index 1a9f35d64..1a9f35d64 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/03d032bcb87221cdbc85224aebc95574c23779ca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/03d032bcb87221cdbc85224aebc95574c23779ca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/03eb22e85608e04906c2debad996c620b5f981c4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/03eb22e85608e04906c2debad996c620b5f981c4
index 4c67bf9d9..4c67bf9d9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/03eb22e85608e04906c2debad996c620b5f981c4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/03eb22e85608e04906c2debad996c620b5f981c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/03eb4461826b76ba7e74b2fc89eec7c7091e5949 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/03eb4461826b76ba7e74b2fc89eec7c7091e5949
index 4ff45a349..4ff45a349 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/03eb4461826b76ba7e74b2fc89eec7c7091e5949
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/03eb4461826b76ba7e74b2fc89eec7c7091e5949
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0447b022e1e382c597c5e2a664e6bc7a545baba1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0447b022e1e382c597c5e2a664e6bc7a545baba1
index 34148fcd8..34148fcd8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0447b022e1e382c597c5e2a664e6bc7a545baba1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0447b022e1e382c597c5e2a664e6bc7a545baba1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0471604f36ad29801d06e1eacf25e003c95b6ca9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0471604f36ad29801d06e1eacf25e003c95b6ca9
index 1cd73e0a0..1cd73e0a0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0471604f36ad29801d06e1eacf25e003c95b6ca9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0471604f36ad29801d06e1eacf25e003c95b6ca9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/04974c8392845e84e1db620753a01de9e313a29e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/04974c8392845e84e1db620753a01de9e313a29e
index 8ea6bcc40..8ea6bcc40 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/04974c8392845e84e1db620753a01de9e313a29e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/04974c8392845e84e1db620753a01de9e313a29e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/04aad282e29e83daae1d89e8d035883f2fe8ce85 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/04aad282e29e83daae1d89e8d035883f2fe8ce85
index 40867cded..40867cded 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/04aad282e29e83daae1d89e8d035883f2fe8ce85
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/04aad282e29e83daae1d89e8d035883f2fe8ce85
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/04b4e5920f3f7acb4142eab449afccd7c7ed40d2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/04b4e5920f3f7acb4142eab449afccd7c7ed40d2
index 4b51c93c9..4b51c93c9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/04b4e5920f3f7acb4142eab449afccd7c7ed40d2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/04b4e5920f3f7acb4142eab449afccd7c7ed40d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0530927e50ff44728a81f7a032ab8fb45b166414 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0530927e50ff44728a81f7a032ab8fb45b166414
index e86506eec..e86506eec 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0530927e50ff44728a81f7a032ab8fb45b166414
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0530927e50ff44728a81f7a032ab8fb45b166414
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/055dab8623a9d6d6a053fe852842665c4d7e943d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/055dab8623a9d6d6a053fe852842665c4d7e943d
index 1f47cadc5..1f47cadc5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/055dab8623a9d6d6a053fe852842665c4d7e943d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/055dab8623a9d6d6a053fe852842665c4d7e943d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/056b84c3356d1b26145603ca6f5b6c00cdce4279 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/056b84c3356d1b26145603ca6f5b6c00cdce4279
index e607bc689..e607bc689 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/056b84c3356d1b26145603ca6f5b6c00cdce4279
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/056b84c3356d1b26145603ca6f5b6c00cdce4279
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/05fb47e99c820906257223c587664689ed042aef b/src/web/server/h2o/libh2o/fuzz/http2-corpus/05fb47e99c820906257223c587664689ed042aef
index cb88bf331..cb88bf331 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/05fb47e99c820906257223c587664689ed042aef
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/05fb47e99c820906257223c587664689ed042aef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/06485f240ee1d3bd49ea65e4f4d4f0e01ba4c90e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06485f240ee1d3bd49ea65e4f4d4f0e01ba4c90e
index 61d85c898..61d85c898 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/06485f240ee1d3bd49ea65e4f4d4f0e01ba4c90e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06485f240ee1d3bd49ea65e4f4d4f0e01ba4c90e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0653d841b4c7f1ac6c772904c039eb78f0c22092 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0653d841b4c7f1ac6c772904c039eb78f0c22092
index ea4e95d68..ea4e95d68 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0653d841b4c7f1ac6c772904c039eb78f0c22092
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0653d841b4c7f1ac6c772904c039eb78f0c22092
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/06712b54835c2be3666eaf9d39df80d3b15a20eb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06712b54835c2be3666eaf9d39df80d3b15a20eb
index e3f6d4a9f..e3f6d4a9f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/06712b54835c2be3666eaf9d39df80d3b15a20eb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06712b54835c2be3666eaf9d39df80d3b15a20eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0692340d16a8888ce4098e39b53b49d421c4fb6f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0692340d16a8888ce4098e39b53b49d421c4fb6f
index e2b81fe22..e2b81fe22 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0692340d16a8888ce4098e39b53b49d421c4fb6f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0692340d16a8888ce4098e39b53b49d421c4fb6f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/06a2a0f5e863d79423b982dd1af4b1400a8bd524 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06a2a0f5e863d79423b982dd1af4b1400a8bd524
index 9391f76e9..9391f76e9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/06a2a0f5e863d79423b982dd1af4b1400a8bd524
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06a2a0f5e863d79423b982dd1af4b1400a8bd524
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/06b66dabb0a50a20789203435a67dd12fd3e1c0f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06b66dabb0a50a20789203435a67dd12fd3e1c0f
index c77d375ff..c77d375ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/06b66dabb0a50a20789203435a67dd12fd3e1c0f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06b66dabb0a50a20789203435a67dd12fd3e1c0f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/06de9b0ce6abfcaafa333ddbf60f91f28f4f8b89 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06de9b0ce6abfcaafa333ddbf60f91f28f4f8b89
index 174fc5de0..174fc5de0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/06de9b0ce6abfcaafa333ddbf60f91f28f4f8b89
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06de9b0ce6abfcaafa333ddbf60f91f28f4f8b89
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/06ecb9a36b0f1b9b8cfac8e4682dae0508b1cebf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06ecb9a36b0f1b9b8cfac8e4682dae0508b1cebf
index ba78623df..ba78623df 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/06ecb9a36b0f1b9b8cfac8e4682dae0508b1cebf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/06ecb9a36b0f1b9b8cfac8e4682dae0508b1cebf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0717a27b354bbc348219ca7c548343354086dcee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0717a27b354bbc348219ca7c548343354086dcee
index 9f2b676bb..9f2b676bb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0717a27b354bbc348219ca7c548343354086dcee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0717a27b354bbc348219ca7c548343354086dcee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/071d927223b748ee77f26100e0673c2bf8a39119 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/071d927223b748ee77f26100e0673c2bf8a39119
index f4ae19005..f4ae19005 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/071d927223b748ee77f26100e0673c2bf8a39119
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/071d927223b748ee77f26100e0673c2bf8a39119
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/07275521c4cde98265246b6ad2d84e0aba735a17 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/07275521c4cde98265246b6ad2d84e0aba735a17
index 5b9a79f6b..5b9a79f6b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/07275521c4cde98265246b6ad2d84e0aba735a17
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/07275521c4cde98265246b6ad2d84e0aba735a17
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/074439ffbc8210b3f9656df2b83f12bd5434be8f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/074439ffbc8210b3f9656df2b83f12bd5434be8f
index 5c0cc9ffe..5c0cc9ffe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/074439ffbc8210b3f9656df2b83f12bd5434be8f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/074439ffbc8210b3f9656df2b83f12bd5434be8f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/07778d60ec1129ff5854f51db99f9e9d45361c4c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/07778d60ec1129ff5854f51db99f9e9d45361c4c
index 34a497df9..34a497df9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/07778d60ec1129ff5854f51db99f9e9d45361c4c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/07778d60ec1129ff5854f51db99f9e9d45361c4c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/07a5b267941b856c5008859ad9ed0d1363178835 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/07a5b267941b856c5008859ad9ed0d1363178835
index 77d45e6ce..77d45e6ce 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/07a5b267941b856c5008859ad9ed0d1363178835
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/07a5b267941b856c5008859ad9ed0d1363178835
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0806eb73d50b417102b853696af0c32ccb4ee293 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0806eb73d50b417102b853696af0c32ccb4ee293
index 9b2524dc6..9b2524dc6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0806eb73d50b417102b853696af0c32ccb4ee293
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0806eb73d50b417102b853696af0c32ccb4ee293
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0827e8a7472da07e5d1320a848a02981c1c47b37 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0827e8a7472da07e5d1320a848a02981c1c47b37
index a66fb69b9..a66fb69b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0827e8a7472da07e5d1320a848a02981c1c47b37
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0827e8a7472da07e5d1320a848a02981c1c47b37
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/085b2ac01b0b7ab39608e8ecb692dbffb98ab805 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/085b2ac01b0b7ab39608e8ecb692dbffb98ab805
index c28cec1e0..c28cec1e0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/085b2ac01b0b7ab39608e8ecb692dbffb98ab805
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/085b2ac01b0b7ab39608e8ecb692dbffb98ab805
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/08e4e3f37bffc8d85c3c80477aba5bbe8d893520 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/08e4e3f37bffc8d85c3c80477aba5bbe8d893520
index 3ed48a0cb..3ed48a0cb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/08e4e3f37bffc8d85c3c80477aba5bbe8d893520
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/08e4e3f37bffc8d85c3c80477aba5bbe8d893520
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/09b80893835ab4cb1035a22052ec6975e97f8292 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09b80893835ab4cb1035a22052ec6975e97f8292
index eeb67bd8e..eeb67bd8e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/09b80893835ab4cb1035a22052ec6975e97f8292
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09b80893835ab4cb1035a22052ec6975e97f8292
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/09bfa29226a06c9c57f25393bda8effba64af652 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09bfa29226a06c9c57f25393bda8effba64af652
index 12764deec..12764deec 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/09bfa29226a06c9c57f25393bda8effba64af652
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09bfa29226a06c9c57f25393bda8effba64af652
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/09dcfc46cbb075d0bd2a77c3cb0b5bd82eb4396e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09dcfc46cbb075d0bd2a77c3cb0b5bd82eb4396e
index 4b5889d46..4b5889d46 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/09dcfc46cbb075d0bd2a77c3cb0b5bd82eb4396e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09dcfc46cbb075d0bd2a77c3cb0b5bd82eb4396e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/09ed9d62a5d2a6c84026496811a74adfdb0f3ef1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09ed9d62a5d2a6c84026496811a74adfdb0f3ef1
index 9ffc4e95c..9ffc4e95c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/09ed9d62a5d2a6c84026496811a74adfdb0f3ef1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/09ed9d62a5d2a6c84026496811a74adfdb0f3ef1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0a51afe31f56390f2ae202710ca792302125eff9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0a51afe31f56390f2ae202710ca792302125eff9
index 4ec9ff152..4ec9ff152 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0a51afe31f56390f2ae202710ca792302125eff9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0a51afe31f56390f2ae202710ca792302125eff9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0a61c9b5d3b59ef5f1d407ee0630bed2c14bec66 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0a61c9b5d3b59ef5f1d407ee0630bed2c14bec66
index 8f7b54b31..8f7b54b31 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0a61c9b5d3b59ef5f1d407ee0630bed2c14bec66
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0a61c9b5d3b59ef5f1d407ee0630bed2c14bec66
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0ad3a7fc6cece75834d96b90415a143214d5c17f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0ad3a7fc6cece75834d96b90415a143214d5c17f
index 72855ef37..72855ef37 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0ad3a7fc6cece75834d96b90415a143214d5c17f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0ad3a7fc6cece75834d96b90415a143214d5c17f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0b26f3988d240c5d383fcc6475da59d6697fad75 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0b26f3988d240c5d383fcc6475da59d6697fad75
index 15c04db96..15c04db96 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0b26f3988d240c5d383fcc6475da59d6697fad75
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0b26f3988d240c5d383fcc6475da59d6697fad75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0b86c7b18f0210d755bdcb91f04f308a4d43187b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0b86c7b18f0210d755bdcb91f04f308a4d43187b
index e8d3e2053..e8d3e2053 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0b86c7b18f0210d755bdcb91f04f308a4d43187b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0b86c7b18f0210d755bdcb91f04f308a4d43187b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0bbe4615f5564a973e79c6e248f1079e1ee8c2c2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0bbe4615f5564a973e79c6e248f1079e1ee8c2c2
index c84a27b75..c84a27b75 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0bbe4615f5564a973e79c6e248f1079e1ee8c2c2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0bbe4615f5564a973e79c6e248f1079e1ee8c2c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0bd58389130f849b662ffec33ba1fab0512c2814 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0bd58389130f849b662ffec33ba1fab0512c2814
index d981cb38c..d981cb38c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0bd58389130f849b662ffec33ba1fab0512c2814
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0bd58389130f849b662ffec33ba1fab0512c2814
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0be3c404d390479fd0843a979265382b7bb9edb4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0be3c404d390479fd0843a979265382b7bb9edb4
index 87cdbffcb..87cdbffcb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0be3c404d390479fd0843a979265382b7bb9edb4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0be3c404d390479fd0843a979265382b7bb9edb4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0c8ef18dae350af43f681738e49698a649b08f99 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0c8ef18dae350af43f681738e49698a649b08f99
index 3fe379b26..3fe379b26 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0c8ef18dae350af43f681738e49698a649b08f99
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0c8ef18dae350af43f681738e49698a649b08f99
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0c972eafc56122b308a550b4449826a585785315 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0c972eafc56122b308a550b4449826a585785315
index fa36cda0a..fa36cda0a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0c972eafc56122b308a550b4449826a585785315
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0c972eafc56122b308a550b4449826a585785315
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0cc30cbc3d2998e6a8b37f122a71bad4b111c14a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0cc30cbc3d2998e6a8b37f122a71bad4b111c14a
index edfa892f8..edfa892f8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0cc30cbc3d2998e6a8b37f122a71bad4b111c14a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0cc30cbc3d2998e6a8b37f122a71bad4b111c14a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0cc807f1176de72f4a0ca8391ace4d858221818d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0cc807f1176de72f4a0ca8391ace4d858221818d
index f799ac053..f799ac053 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0cc807f1176de72f4a0ca8391ace4d858221818d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0cc807f1176de72f4a0ca8391ace4d858221818d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0cf8e4378d9816af528bd17f7dab8c85775c97b1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0cf8e4378d9816af528bd17f7dab8c85775c97b1
index 02c033d64..02c033d64 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0cf8e4378d9816af528bd17f7dab8c85775c97b1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0cf8e4378d9816af528bd17f7dab8c85775c97b1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0d0c73efb777309ad2f151bd699c618473d0ad30 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d0c73efb777309ad2f151bd699c618473d0ad30
index 8b30016d8..8b30016d8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0d0c73efb777309ad2f151bd699c618473d0ad30
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d0c73efb777309ad2f151bd699c618473d0ad30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0d32deddb12be404850721ec140341fa1748f9d9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d32deddb12be404850721ec140341fa1748f9d9
index 76a541c68..76a541c68 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0d32deddb12be404850721ec140341fa1748f9d9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d32deddb12be404850721ec140341fa1748f9d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0d42a91a393d3928d5ea6dc58d5fa0cbb2316db8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d42a91a393d3928d5ea6dc58d5fa0cbb2316db8
index 275a3e6e7..275a3e6e7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0d42a91a393d3928d5ea6dc58d5fa0cbb2316db8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d42a91a393d3928d5ea6dc58d5fa0cbb2316db8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e5cdc8f714154acf481aa928fab99ec26187c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e5cdc8f714154acf481aa928fab99ec26187c
index be5e740d1..be5e740d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e5cdc8f714154acf481aa928fab99ec26187c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e5cdc8f714154acf481aa928fab99ec26187c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e902a0e95971fcc8c33558baaff464ff7ba5a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e902a0e95971fcc8c33558baaff464ff7ba5a
index e904fdc08..e904fdc08 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e902a0e95971fcc8c33558baaff464ff7ba5a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0d9e902a0e95971fcc8c33558baaff464ff7ba5a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0e48b6feb5d38c528cf547fe468e32126896a930 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0e48b6feb5d38c528cf547fe468e32126896a930
index 7be7b4b2d..7be7b4b2d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0e48b6feb5d38c528cf547fe468e32126896a930
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0e48b6feb5d38c528cf547fe468e32126896a930
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0eae5b25cbd1022f25c13809888bb8530cc4db65 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0eae5b25cbd1022f25c13809888bb8530cc4db65
index 73b567849..73b567849 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0eae5b25cbd1022f25c13809888bb8530cc4db65
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0eae5b25cbd1022f25c13809888bb8530cc4db65
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0ecd9ed81bfdfe890f2ef4e3383d279180a69f28 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0ecd9ed81bfdfe890f2ef4e3383d279180a69f28
index 83241d2ab..83241d2ab 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0ecd9ed81bfdfe890f2ef4e3383d279180a69f28
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0ecd9ed81bfdfe890f2ef4e3383d279180a69f28
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0f05c072c77bbddd480d999cc933fbb52df6ad74 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0f05c072c77bbddd480d999cc933fbb52df6ad74
index e86aa94e4..e86aa94e4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0f05c072c77bbddd480d999cc933fbb52df6ad74
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0f05c072c77bbddd480d999cc933fbb52df6ad74
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0f0a020f2accc0676460e61d74d59365d39e1378 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0f0a020f2accc0676460e61d74d59365d39e1378
index e188c873e..e188c873e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0f0a020f2accc0676460e61d74d59365d39e1378
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0f0a020f2accc0676460e61d74d59365d39e1378
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0f50977f365504d1670458390a6153f458224980 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0f50977f365504d1670458390a6153f458224980
index f5e9abc06..f5e9abc06 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0f50977f365504d1670458390a6153f458224980
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0f50977f365504d1670458390a6153f458224980
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0ff4265b7e73b87f6c140a2cec1e63c430ab300f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0ff4265b7e73b87f6c140a2cec1e63c430ab300f
index b43e003d7..b43e003d7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0ff4265b7e73b87f6c140a2cec1e63c430ab300f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0ff4265b7e73b87f6c140a2cec1e63c430ab300f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/0fff216f3814831ec85b0e0a80775ec321a07a61 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0fff216f3814831ec85b0e0a80775ec321a07a61
index ea232afb2..ea232afb2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/0fff216f3814831ec85b0e0a80775ec321a07a61
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/0fff216f3814831ec85b0e0a80775ec321a07a61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1010e31236b0a52a1571bc085f5bf8e139b64d43 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1010e31236b0a52a1571bc085f5bf8e139b64d43
index 199080e6f..199080e6f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1010e31236b0a52a1571bc085f5bf8e139b64d43
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1010e31236b0a52a1571bc085f5bf8e139b64d43
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/10914ebf606185e44439c150d14bb06d885dd7be b/src/web/server/h2o/libh2o/fuzz/http2-corpus/10914ebf606185e44439c150d14bb06d885dd7be
index e1903488e..e1903488e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/10914ebf606185e44439c150d14bb06d885dd7be
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/10914ebf606185e44439c150d14bb06d885dd7be
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/110b625943781a40aa180cafda22316a31299571 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/110b625943781a40aa180cafda22316a31299571
index 88c81cfb8..88c81cfb8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/110b625943781a40aa180cafda22316a31299571
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/110b625943781a40aa180cafda22316a31299571
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/112abe3439616c48316fe8d308e21db66de2bdc4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/112abe3439616c48316fe8d308e21db66de2bdc4
index 89b4fa03e..89b4fa03e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/112abe3439616c48316fe8d308e21db66de2bdc4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/112abe3439616c48316fe8d308e21db66de2bdc4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1130fea68f7bf6c68694eb25f0adacfdd6dc79ad b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1130fea68f7bf6c68694eb25f0adacfdd6dc79ad
index a23431722..a23431722 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1130fea68f7bf6c68694eb25f0adacfdd6dc79ad
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1130fea68f7bf6c68694eb25f0adacfdd6dc79ad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11351ef28b3023e80489f773246777ad9c50eccd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11351ef28b3023e80489f773246777ad9c50eccd
index 8c3aab412..8c3aab412 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11351ef28b3023e80489f773246777ad9c50eccd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11351ef28b3023e80489f773246777ad9c50eccd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11656819398d84b03659e21366ef882a74965cbb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11656819398d84b03659e21366ef882a74965cbb
index a0376e94b..a0376e94b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11656819398d84b03659e21366ef882a74965cbb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11656819398d84b03659e21366ef882a74965cbb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1183aedac9ebb2d0fc47b891c72cd4c621a68e48 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1183aedac9ebb2d0fc47b891c72cd4c621a68e48
index 20886e4ce..20886e4ce 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1183aedac9ebb2d0fc47b891c72cd4c621a68e48
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1183aedac9ebb2d0fc47b891c72cd4c621a68e48
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11a02ffe2cb9605ec8476a5c239ab46762e9ee2d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11a02ffe2cb9605ec8476a5c239ab46762e9ee2d
index 6b484fadc..6b484fadc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11a02ffe2cb9605ec8476a5c239ab46762e9ee2d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11a02ffe2cb9605ec8476a5c239ab46762e9ee2d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11a388ee20e54195281f0417f8394db1d0f817f7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11a388ee20e54195281f0417f8394db1d0f817f7
index b127a69b6..b127a69b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11a388ee20e54195281f0417f8394db1d0f817f7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11a388ee20e54195281f0417f8394db1d0f817f7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11b04cf75a0361c53d43fe10368809a3a97da7da b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11b04cf75a0361c53d43fe10368809a3a97da7da
index 01673dec2..01673dec2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11b04cf75a0361c53d43fe10368809a3a97da7da
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11b04cf75a0361c53d43fe10368809a3a97da7da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11c11d9ba5677fd7bd8b2d0f7c09cf9344109bf0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11c11d9ba5677fd7bd8b2d0f7c09cf9344109bf0
index a0ea23a95..a0ea23a95 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11c11d9ba5677fd7bd8b2d0f7c09cf9344109bf0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11c11d9ba5677fd7bd8b2d0f7c09cf9344109bf0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11f79d156d1b198773986651ed457d74d0846ab7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11f79d156d1b198773986651ed457d74d0846ab7
index 1a3d2f45a..1a3d2f45a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11f79d156d1b198773986651ed457d74d0846ab7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11f79d156d1b198773986651ed457d74d0846ab7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11fc10ace5fca0ba5f6fbf1b1f14dea2e5811140 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11fc10ace5fca0ba5f6fbf1b1f14dea2e5811140
index c6c1fe367..c6c1fe367 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11fc10ace5fca0ba5f6fbf1b1f14dea2e5811140
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11fc10ace5fca0ba5f6fbf1b1f14dea2e5811140
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/11fc81fd9b8ae037e819be896cb24809c2f07281 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11fc81fd9b8ae037e819be896cb24809c2f07281
index 8dbef8ecd..8dbef8ecd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/11fc81fd9b8ae037e819be896cb24809c2f07281
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/11fc81fd9b8ae037e819be896cb24809c2f07281
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1217850ca69eaf586dee3619390be585666d1cef b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1217850ca69eaf586dee3619390be585666d1cef
index ab6237765..ab6237765 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1217850ca69eaf586dee3619390be585666d1cef
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1217850ca69eaf586dee3619390be585666d1cef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/121b5b20d57e5fad2356a18045af1018913caa44 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/121b5b20d57e5fad2356a18045af1018913caa44
index 1c3bc1d77..1c3bc1d77 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/121b5b20d57e5fad2356a18045af1018913caa44
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/121b5b20d57e5fad2356a18045af1018913caa44
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/122d0f4d18064b1ee54896f9b45a48eeda9a0439 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/122d0f4d18064b1ee54896f9b45a48eeda9a0439
index 55972e12d..55972e12d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/122d0f4d18064b1ee54896f9b45a48eeda9a0439
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/122d0f4d18064b1ee54896f9b45a48eeda9a0439
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/12aa2f1d72e2e97dfa9f81c93bcac984f47fe247 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12aa2f1d72e2e97dfa9f81c93bcac984f47fe247
index 6a1820aa2..6a1820aa2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/12aa2f1d72e2e97dfa9f81c93bcac984f47fe247
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12aa2f1d72e2e97dfa9f81c93bcac984f47fe247
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/12af93d8a209ab2067e750c88b52eec8327f0f8e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12af93d8a209ab2067e750c88b52eec8327f0f8e
index 220747e04..220747e04 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/12af93d8a209ab2067e750c88b52eec8327f0f8e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12af93d8a209ab2067e750c88b52eec8327f0f8e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/12b6bca5c87f55061ce3246a1aac972f6b470d8a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12b6bca5c87f55061ce3246a1aac972f6b470d8a
index b7c4b2c01..b7c4b2c01 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/12b6bca5c87f55061ce3246a1aac972f6b470d8a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12b6bca5c87f55061ce3246a1aac972f6b470d8a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/12da6bd8649419f858e71b6ab8f0b8c4855023ce b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12da6bd8649419f858e71b6ab8f0b8c4855023ce
index bc9c38e80..bc9c38e80 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/12da6bd8649419f858e71b6ab8f0b8c4855023ce
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12da6bd8649419f858e71b6ab8f0b8c4855023ce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/12fc0b7635b33180f6c2ee8158dd15044e75df8d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12fc0b7635b33180f6c2ee8158dd15044e75df8d
index 98709e0c3..98709e0c3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/12fc0b7635b33180f6c2ee8158dd15044e75df8d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/12fc0b7635b33180f6c2ee8158dd15044e75df8d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/132e73a2e692b82e8c868892a82058633c38c937 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/132e73a2e692b82e8c868892a82058633c38c937
index 1dff8fff4..1dff8fff4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/132e73a2e692b82e8c868892a82058633c38c937
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/132e73a2e692b82e8c868892a82058633c38c937
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/136e8c12567b51e2cdaddc955926fc377e7d183a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/136e8c12567b51e2cdaddc955926fc377e7d183a
index aa9d803f2..aa9d803f2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/136e8c12567b51e2cdaddc955926fc377e7d183a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/136e8c12567b51e2cdaddc955926fc377e7d183a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/13845301095fdb850184958c0b2cb56b3a1cc61e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13845301095fdb850184958c0b2cb56b3a1cc61e
index 151d6c27d..151d6c27d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/13845301095fdb850184958c0b2cb56b3a1cc61e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13845301095fdb850184958c0b2cb56b3a1cc61e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/13d02953688904d7c806de02194def94a2c942cc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13d02953688904d7c806de02194def94a2c942cc
index c274a592a..c274a592a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/13d02953688904d7c806de02194def94a2c942cc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13d02953688904d7c806de02194def94a2c942cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/13d256163898dc6fe5ea9c4b6af26f515a3d8fab b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13d256163898dc6fe5ea9c4b6af26f515a3d8fab
index dae3ad91f..dae3ad91f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/13d256163898dc6fe5ea9c4b6af26f515a3d8fab
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13d256163898dc6fe5ea9c4b6af26f515a3d8fab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/13d99ab4b2e5b132c0f10979608d49a6e791ea94 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13d99ab4b2e5b132c0f10979608d49a6e791ea94
index bcbcaf92a..bcbcaf92a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/13d99ab4b2e5b132c0f10979608d49a6e791ea94
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13d99ab4b2e5b132c0f10979608d49a6e791ea94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/13e9886a9863c940dfe7949e4186ff84613a7a49 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13e9886a9863c940dfe7949e4186ff84613a7a49
index 34fe31938..34fe31938 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/13e9886a9863c940dfe7949e4186ff84613a7a49
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13e9886a9863c940dfe7949e4186ff84613a7a49
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/13ee0ab7e94b9732fe10afec663e04cfde975616 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13ee0ab7e94b9732fe10afec663e04cfde975616
index afff0b0f9..afff0b0f9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/13ee0ab7e94b9732fe10afec663e04cfde975616
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13ee0ab7e94b9732fe10afec663e04cfde975616
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/13f6f28c7e73b9210719136aafe4791885eb19c4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13f6f28c7e73b9210719136aafe4791885eb19c4
index 9bf0c135f..9bf0c135f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/13f6f28c7e73b9210719136aafe4791885eb19c4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/13f6f28c7e73b9210719136aafe4791885eb19c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1431d8390fccd8a1d237c802964f40bcc0e9af22 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1431d8390fccd8a1d237c802964f40bcc0e9af22
index 79abd39c3..79abd39c3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1431d8390fccd8a1d237c802964f40bcc0e9af22
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1431d8390fccd8a1d237c802964f40bcc0e9af22
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/14693965c2cfbaf4accebef070117e0cc9a250e8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14693965c2cfbaf4accebef070117e0cc9a250e8
index d63a18df7..d63a18df7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/14693965c2cfbaf4accebef070117e0cc9a250e8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14693965c2cfbaf4accebef070117e0cc9a250e8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/14c1c38dfa99349079f2ef0be94f5192a9cb07ac b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14c1c38dfa99349079f2ef0be94f5192a9cb07ac
index 4e7e5997e..4e7e5997e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/14c1c38dfa99349079f2ef0be94f5192a9cb07ac
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14c1c38dfa99349079f2ef0be94f5192a9cb07ac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/14ccfe7747e048c9722648b5a6e9d7c85d16f939 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14ccfe7747e048c9722648b5a6e9d7c85d16f939
index 842a0c2a0..842a0c2a0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/14ccfe7747e048c9722648b5a6e9d7c85d16f939
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14ccfe7747e048c9722648b5a6e9d7c85d16f939
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/14db70d84dafee372fab3a1f719118ca58706317 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14db70d84dafee372fab3a1f719118ca58706317
index cd7fc9c6d..cd7fc9c6d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/14db70d84dafee372fab3a1f719118ca58706317
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/14db70d84dafee372fab3a1f719118ca58706317
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1514f9d9ab6fe8b0bc3f444a700bd4ee15ca95cb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1514f9d9ab6fe8b0bc3f444a700bd4ee15ca95cb
index 5e5235bdf..5e5235bdf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1514f9d9ab6fe8b0bc3f444a700bd4ee15ca95cb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1514f9d9ab6fe8b0bc3f444a700bd4ee15ca95cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/154ea0038f76203952c57371e1b25dee3fb837f4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/154ea0038f76203952c57371e1b25dee3fb837f4
index 34dd4b32f..34dd4b32f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/154ea0038f76203952c57371e1b25dee3fb837f4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/154ea0038f76203952c57371e1b25dee3fb837f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/154ef1b87e69679ca50ba5d7e6dd964e8cf5c6b2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/154ef1b87e69679ca50ba5d7e6dd964e8cf5c6b2
index d0fa0f6ad..d0fa0f6ad 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/154ef1b87e69679ca50ba5d7e6dd964e8cf5c6b2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/154ef1b87e69679ca50ba5d7e6dd964e8cf5c6b2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/15535c69c835118bd32880db658ecf8cef85e397 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/15535c69c835118bd32880db658ecf8cef85e397
index a93cf2724..a93cf2724 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/15535c69c835118bd32880db658ecf8cef85e397
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/15535c69c835118bd32880db658ecf8cef85e397
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/156bb6fbf2359bcd1b12f82555d1b02bc16e4e50 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/156bb6fbf2359bcd1b12f82555d1b02bc16e4e50
index 24dca3d6c..24dca3d6c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/156bb6fbf2359bcd1b12f82555d1b02bc16e4e50
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/156bb6fbf2359bcd1b12f82555d1b02bc16e4e50
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/159e78250cba958cde9c20548ac9406b63086e05 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/159e78250cba958cde9c20548ac9406b63086e05
index 8b27f3a6c..8b27f3a6c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/159e78250cba958cde9c20548ac9406b63086e05
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/159e78250cba958cde9c20548ac9406b63086e05
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/15a1e2b8a0a71a51fe1f54c58cdbfce7bd941e4c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/15a1e2b8a0a71a51fe1f54c58cdbfce7bd941e4c
index 4ad0364e3..4ad0364e3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/15a1e2b8a0a71a51fe1f54c58cdbfce7bd941e4c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/15a1e2b8a0a71a51fe1f54c58cdbfce7bd941e4c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648
index 512e79496..512e79496 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/15b818dee2fa0292d33bc69a3fd4ebdbc11f7648
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1677d1d81299b29f77b56e9219d51ecf7aa8b51e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1677d1d81299b29f77b56e9219d51ecf7aa8b51e
index d65e3fae6..d65e3fae6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1677d1d81299b29f77b56e9219d51ecf7aa8b51e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1677d1d81299b29f77b56e9219d51ecf7aa8b51e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/16b644dd44005f95d9bf1d929670e07b49f0e7b0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/16b644dd44005f95d9bf1d929670e07b49f0e7b0
index bdfac3934..bdfac3934 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/16b644dd44005f95d9bf1d929670e07b49f0e7b0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/16b644dd44005f95d9bf1d929670e07b49f0e7b0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/16d929b8a4260f377a52db0e1c5998739f1a8c98 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/16d929b8a4260f377a52db0e1c5998739f1a8c98
index 6744a1d4a..6744a1d4a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/16d929b8a4260f377a52db0e1c5998739f1a8c98
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/16d929b8a4260f377a52db0e1c5998739f1a8c98
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/16eab46e92e83ab28c0284b4cc9511cf58481ef8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/16eab46e92e83ab28c0284b4cc9511cf58481ef8
index 2f7f9403a..2f7f9403a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/16eab46e92e83ab28c0284b4cc9511cf58481ef8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/16eab46e92e83ab28c0284b4cc9511cf58481ef8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1758d997d9089540ff500dfba9df78e971543cee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1758d997d9089540ff500dfba9df78e971543cee
index d8e3a83ad..d8e3a83ad 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1758d997d9089540ff500dfba9df78e971543cee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1758d997d9089540ff500dfba9df78e971543cee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/18598160e74b583ff9738c0192aa3e7d24dd5383 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/18598160e74b583ff9738c0192aa3e7d24dd5383
index a05c116f0..a05c116f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/18598160e74b583ff9738c0192aa3e7d24dd5383
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/18598160e74b583ff9738c0192aa3e7d24dd5383
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/186652ea97842f9c9adb7048ade48be5150553ba b/src/web/server/h2o/libh2o/fuzz/http2-corpus/186652ea97842f9c9adb7048ade48be5150553ba
index a362d6b0f..a362d6b0f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/186652ea97842f9c9adb7048ade48be5150553ba
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/186652ea97842f9c9adb7048ade48be5150553ba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1967422fea1d9269ec2713e4d545a1a276b42c1a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1967422fea1d9269ec2713e4d545a1a276b42c1a
index 0156cd755..0156cd755 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1967422fea1d9269ec2713e4d545a1a276b42c1a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1967422fea1d9269ec2713e4d545a1a276b42c1a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/19f8c5dc6b3615de6d344e5f53f0b0999ecc954b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/19f8c5dc6b3615de6d344e5f53f0b0999ecc954b
index 4908d86cd..4908d86cd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/19f8c5dc6b3615de6d344e5f53f0b0999ecc954b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/19f8c5dc6b3615de6d344e5f53f0b0999ecc954b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1a1094d131e4c5a7fcdedcae4bf75300f3a755c8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1a1094d131e4c5a7fcdedcae4bf75300f3a755c8
index 8316d1893..8316d1893 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1a1094d131e4c5a7fcdedcae4bf75300f3a755c8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1a1094d131e4c5a7fcdedcae4bf75300f3a755c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1a32947ef298d062659ff0039db3cf70ecfef78a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1a32947ef298d062659ff0039db3cf70ecfef78a
index 020b25e7f..020b25e7f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1a32947ef298d062659ff0039db3cf70ecfef78a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1a32947ef298d062659ff0039db3cf70ecfef78a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1ad498c5a31f7797d58afa82bce028c81760de78 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1ad498c5a31f7797d58afa82bce028c81760de78
index faae8abbc..faae8abbc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1ad498c5a31f7797d58afa82bce028c81760de78
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1ad498c5a31f7797d58afa82bce028c81760de78
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1aeb16f688e958d9041d34c7f619daac9802304a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1aeb16f688e958d9041d34c7f619daac9802304a
index 6eb333938..6eb333938 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1aeb16f688e958d9041d34c7f619daac9802304a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1aeb16f688e958d9041d34c7f619daac9802304a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1b038c8dada6241c9161f0ff1b07e7b10589055a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1b038c8dada6241c9161f0ff1b07e7b10589055a
index 6fe440925..6fe440925 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1b038c8dada6241c9161f0ff1b07e7b10589055a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1b038c8dada6241c9161f0ff1b07e7b10589055a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1b7f1c58a6caf5d9538bacb4f5d1d54cd5c80c84 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1b7f1c58a6caf5d9538bacb4f5d1d54cd5c80c84
index 41bd11c68..41bd11c68 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1b7f1c58a6caf5d9538bacb4f5d1d54cd5c80c84
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1b7f1c58a6caf5d9538bacb4f5d1d54cd5c80c84
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1b8476ad027ba68f75b30049bb65b187489c9b38 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1b8476ad027ba68f75b30049bb65b187489c9b38
index 0b650e86a..0b650e86a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1b8476ad027ba68f75b30049bb65b187489c9b38
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1b8476ad027ba68f75b30049bb65b187489c9b38
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1bb9262d2d8384da73f11f2f282303a0a46c4899 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1bb9262d2d8384da73f11f2f282303a0a46c4899
index 907bc8f79..907bc8f79 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1bb9262d2d8384da73f11f2f282303a0a46c4899
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1bb9262d2d8384da73f11f2f282303a0a46c4899
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1bfa4c7e375bc0dbb13fc2a782d1f06a5997ca46 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1bfa4c7e375bc0dbb13fc2a782d1f06a5997ca46
index 27b201d0b..27b201d0b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1bfa4c7e375bc0dbb13fc2a782d1f06a5997ca46
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1bfa4c7e375bc0dbb13fc2a782d1f06a5997ca46
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1c0eee9f059e32278b2203829caa463f8eb6ae9c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c0eee9f059e32278b2203829caa463f8eb6ae9c
index 7486b9c99..7486b9c99 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1c0eee9f059e32278b2203829caa463f8eb6ae9c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c0eee9f059e32278b2203829caa463f8eb6ae9c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1c126ffcb36eed1d58960783a31a490b40d1f8ae b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c126ffcb36eed1d58960783a31a490b40d1f8ae
index 23d33816e..23d33816e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1c126ffcb36eed1d58960783a31a490b40d1f8ae
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c126ffcb36eed1d58960783a31a490b40d1f8ae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1c2bfd2d48c8a3c2437cc3defa67a609f9fcd9be b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c2bfd2d48c8a3c2437cc3defa67a609f9fcd9be
index 1ea90ed5a..1ea90ed5a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1c2bfd2d48c8a3c2437cc3defa67a609f9fcd9be
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c2bfd2d48c8a3c2437cc3defa67a609f9fcd9be
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1c3622105bded01517ee7be1a8ef299f4f134e7b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c3622105bded01517ee7be1a8ef299f4f134e7b
index 86b4fa0e1..86b4fa0e1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1c3622105bded01517ee7be1a8ef299f4f134e7b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c3622105bded01517ee7be1a8ef299f4f134e7b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1c5138f5c87b994261a654c89574097779502b9e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c5138f5c87b994261a654c89574097779502b9e
index 21ce4eee6..21ce4eee6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1c5138f5c87b994261a654c89574097779502b9e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1c5138f5c87b994261a654c89574097779502b9e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1cfd576ca29e4f80bc93568058755e47b73437b6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1cfd576ca29e4f80bc93568058755e47b73437b6
index 2d6611132..2d6611132 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1cfd576ca29e4f80bc93568058755e47b73437b6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1cfd576ca29e4f80bc93568058755e47b73437b6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1d0d25dc961f97f072dd467d60bba358ada65e93 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1d0d25dc961f97f072dd467d60bba358ada65e93
index 17de45428..17de45428 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1d0d25dc961f97f072dd467d60bba358ada65e93
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1d0d25dc961f97f072dd467d60bba358ada65e93
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1d14947d4ebd5a33445bd12f7a225b481269a2a1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1d14947d4ebd5a33445bd12f7a225b481269a2a1
index 4a89ef7b9..4a89ef7b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1d14947d4ebd5a33445bd12f7a225b481269a2a1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1d14947d4ebd5a33445bd12f7a225b481269a2a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1d3714043aecd8a02f0e3b9c7e071a720163d9e4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1d3714043aecd8a02f0e3b9c7e071a720163d9e4
index c09b5ed3a..c09b5ed3a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1d3714043aecd8a02f0e3b9c7e071a720163d9e4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1d3714043aecd8a02f0e3b9c7e071a720163d9e4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1dad8681b25a6fffc78476ec8dfd1ebb1c270e56 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1dad8681b25a6fffc78476ec8dfd1ebb1c270e56
index 6c9b9855d..6c9b9855d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1dad8681b25a6fffc78476ec8dfd1ebb1c270e56
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1dad8681b25a6fffc78476ec8dfd1ebb1c270e56
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1dd2a4a5b8160879e33832b1ffa861b5a0155db2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1dd2a4a5b8160879e33832b1ffa861b5a0155db2
index e243b4e86..e243b4e86 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1dd2a4a5b8160879e33832b1ffa861b5a0155db2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1dd2a4a5b8160879e33832b1ffa861b5a0155db2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1dd4d48aa8d77262c939a3b66f6b53b96d542b31 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1dd4d48aa8d77262c939a3b66f6b53b96d542b31
index 9b3246a98..9b3246a98 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1dd4d48aa8d77262c939a3b66f6b53b96d542b31
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1dd4d48aa8d77262c939a3b66f6b53b96d542b31
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1e69c108a8a076a79c41f149572492cf9ecb177a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1e69c108a8a076a79c41f149572492cf9ecb177a
index a344b9cf1..a344b9cf1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1e69c108a8a076a79c41f149572492cf9ecb177a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1e69c108a8a076a79c41f149572492cf9ecb177a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1f22c42c097982cef7705367dc795e9299250915 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f22c42c097982cef7705367dc795e9299250915
index 50dac8bc2..50dac8bc2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1f22c42c097982cef7705367dc795e9299250915
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f22c42c097982cef7705367dc795e9299250915
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1f376d8336201fff8d5642cacc003d295a10c536 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f376d8336201fff8d5642cacc003d295a10c536
index 137ef00d4..137ef00d4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1f376d8336201fff8d5642cacc003d295a10c536
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f376d8336201fff8d5642cacc003d295a10c536
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1f616d78f5b8e77df7096da349cf55cd01bd496f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f616d78f5b8e77df7096da349cf55cd01bd496f
index 74bdf099b..74bdf099b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1f616d78f5b8e77df7096da349cf55cd01bd496f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f616d78f5b8e77df7096da349cf55cd01bd496f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1f6c09a32c23b58b1663950ac23361487a74b36e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f6c09a32c23b58b1663950ac23361487a74b36e
index 4c2be7782..4c2be7782 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1f6c09a32c23b58b1663950ac23361487a74b36e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f6c09a32c23b58b1663950ac23361487a74b36e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a
index ea2d3aa01..ea2d3aa01 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1f8213fb4cc2be55d26da7838903fad401e9963a
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/1ffff9528644f03cc4b8d4506b29e8250a2ee1fb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1ffff9528644f03cc4b8d4506b29e8250a2ee1fb
index 0f773e841..0f773e841 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/1ffff9528644f03cc4b8d4506b29e8250a2ee1fb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/1ffff9528644f03cc4b8d4506b29e8250a2ee1fb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/200c08e83c1c38016c12f4e031ee02841f925a35 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/200c08e83c1c38016c12f4e031ee02841f925a35
index 7e820ce6f..7e820ce6f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/200c08e83c1c38016c12f4e031ee02841f925a35
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/200c08e83c1c38016c12f4e031ee02841f925a35
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/205d11b012861bb38b429dddc315620856161978 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/205d11b012861bb38b429dddc315620856161978
index 3b4f986e3..3b4f986e3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/205d11b012861bb38b429dddc315620856161978
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/205d11b012861bb38b429dddc315620856161978
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/20764f27d5bc04727aaf50f4659a65e9f9ceb5dd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/20764f27d5bc04727aaf50f4659a65e9f9ceb5dd
index 461e4cf2c..461e4cf2c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/20764f27d5bc04727aaf50f4659a65e9f9ceb5dd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/20764f27d5bc04727aaf50f4659a65e9f9ceb5dd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2094d0609644a04210c1643acac9236663bd4893 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2094d0609644a04210c1643acac9236663bd4893
index d4e69f0cd..d4e69f0cd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2094d0609644a04210c1643acac9236663bd4893
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2094d0609644a04210c1643acac9236663bd4893
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/209bbd4caa861a25d5c7e5396980e35a9ce0d7d9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/209bbd4caa861a25d5c7e5396980e35a9ce0d7d9
index fc534416b..fc534416b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/209bbd4caa861a25d5c7e5396980e35a9ce0d7d9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/209bbd4caa861a25d5c7e5396980e35a9ce0d7d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/20b66998eef84dceba740c670622ead3f7c5766b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/20b66998eef84dceba740c670622ead3f7c5766b
index bfb598f87..bfb598f87 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/20b66998eef84dceba740c670622ead3f7c5766b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/20b66998eef84dceba740c670622ead3f7c5766b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/210a4e82ab05985c0c97466215faa49621051cc4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/210a4e82ab05985c0c97466215faa49621051cc4
index db93f6e1b..db93f6e1b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/210a4e82ab05985c0c97466215faa49621051cc4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/210a4e82ab05985c0c97466215faa49621051cc4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/21427f9d0e9570e7d84f2d41d374edbc8f8380fb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/21427f9d0e9570e7d84f2d41d374edbc8f8380fb
index c20a9d080..c20a9d080 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/21427f9d0e9570e7d84f2d41d374edbc8f8380fb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/21427f9d0e9570e7d84f2d41d374edbc8f8380fb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/215d200d220d686893edeacadb1621630b45a42a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/215d200d220d686893edeacadb1621630b45a42a
index 441cec13a..441cec13a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/215d200d220d686893edeacadb1621630b45a42a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/215d200d220d686893edeacadb1621630b45a42a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/21c2a39f7b2542ca0500c99cc9c70daf1ed52fbd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/21c2a39f7b2542ca0500c99cc9c70daf1ed52fbd
index ffe99b100..ffe99b100 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/21c2a39f7b2542ca0500c99cc9c70daf1ed52fbd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/21c2a39f7b2542ca0500c99cc9c70daf1ed52fbd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/21e9d8fd7ab2186de8c7a7b7c3cdec3e33c357a9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/21e9d8fd7ab2186de8c7a7b7c3cdec3e33c357a9
index c2a6da02d..c2a6da02d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/21e9d8fd7ab2186de8c7a7b7c3cdec3e33c357a9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/21e9d8fd7ab2186de8c7a7b7c3cdec3e33c357a9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/22428d703928706be3fe50aeceb1b6c0e4b8fb6a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22428d703928706be3fe50aeceb1b6c0e4b8fb6a
index 53802650b..53802650b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/22428d703928706be3fe50aeceb1b6c0e4b8fb6a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22428d703928706be3fe50aeceb1b6c0e4b8fb6a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/22bdc1862e0f67efd0361eb48586b9c0471200a3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22bdc1862e0f67efd0361eb48586b9c0471200a3
index 2be0592c9..2be0592c9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/22bdc1862e0f67efd0361eb48586b9c0471200a3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22bdc1862e0f67efd0361eb48586b9c0471200a3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/22be0a6153d98fee0f1e66b1732ace3f7e101a38 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22be0a6153d98fee0f1e66b1732ace3f7e101a38
index 168f10188..168f10188 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/22be0a6153d98fee0f1e66b1732ace3f7e101a38
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22be0a6153d98fee0f1e66b1732ace3f7e101a38
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/22f5d7f81cec74dcda661f55d9f75ee6416c805d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22f5d7f81cec74dcda661f55d9f75ee6416c805d
index c185619fa..c185619fa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/22f5d7f81cec74dcda661f55d9f75ee6416c805d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/22f5d7f81cec74dcda661f55d9f75ee6416c805d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/23c3a3707f150a291a602cf67e08a43bf74d0080 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/23c3a3707f150a291a602cf67e08a43bf74d0080
index 82a2b9e84..82a2b9e84 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/23c3a3707f150a291a602cf67e08a43bf74d0080
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/23c3a3707f150a291a602cf67e08a43bf74d0080
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/23cc4afcc1a6ddcaa69e48066428389290551964 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/23cc4afcc1a6ddcaa69e48066428389290551964
index 3a06a4796..3a06a4796 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/23cc4afcc1a6ddcaa69e48066428389290551964
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/23cc4afcc1a6ddcaa69e48066428389290551964
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/243c270342dc8c50ab4899441ac16539b96d62f0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/243c270342dc8c50ab4899441ac16539b96d62f0
index fadb10d70..fadb10d70 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/243c270342dc8c50ab4899441ac16539b96d62f0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/243c270342dc8c50ab4899441ac16539b96d62f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/245c374ad541b6fe6f473c48f1ed0c6e94c5353d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/245c374ad541b6fe6f473c48f1ed0c6e94c5353d
index 8293b3b62..8293b3b62 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/245c374ad541b6fe6f473c48f1ed0c6e94c5353d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/245c374ad541b6fe6f473c48f1ed0c6e94c5353d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/24af7d87cff37ffb9f2bac24034bb6f44979b764 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/24af7d87cff37ffb9f2bac24034bb6f44979b764
index 667cc5880..667cc5880 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/24af7d87cff37ffb9f2bac24034bb6f44979b764
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/24af7d87cff37ffb9f2bac24034bb6f44979b764
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/24e5d46bf0c70e4fe40d18e5c6a806fc2bc58e5f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/24e5d46bf0c70e4fe40d18e5c6a806fc2bc58e5f
index 5a3ce2903..5a3ce2903 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/24e5d46bf0c70e4fe40d18e5c6a806fc2bc58e5f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/24e5d46bf0c70e4fe40d18e5c6a806fc2bc58e5f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/250b77493a6c05249fd749eb2c1a9d509cc8a9f7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/250b77493a6c05249fd749eb2c1a9d509cc8a9f7
index 6eb1e9ce7..6eb1e9ce7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/250b77493a6c05249fd749eb2c1a9d509cc8a9f7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/250b77493a6c05249fd749eb2c1a9d509cc8a9f7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/250d404e3356eb4b79112b55b5809861a5c3c5af b/src/web/server/h2o/libh2o/fuzz/http2-corpus/250d404e3356eb4b79112b55b5809861a5c3c5af
index d46f3ae29..d46f3ae29 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/250d404e3356eb4b79112b55b5809861a5c3c5af
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/250d404e3356eb4b79112b55b5809861a5c3c5af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/250e3e7692bb2a97b533e387a35de60e24d6e68a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/250e3e7692bb2a97b533e387a35de60e24d6e68a
index 699565df1..699565df1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/250e3e7692bb2a97b533e387a35de60e24d6e68a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/250e3e7692bb2a97b533e387a35de60e24d6e68a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/25b4b161587cf93b10b9a6d65b17ce5940866724 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25b4b161587cf93b10b9a6d65b17ce5940866724
index 0a34a4c40..0a34a4c40 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/25b4b161587cf93b10b9a6d65b17ce5940866724
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25b4b161587cf93b10b9a6d65b17ce5940866724
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/25c5b760911c25664198c77a9c8b16e286e90d17 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25c5b760911c25664198c77a9c8b16e286e90d17
index 160bce603..160bce603 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/25c5b760911c25664198c77a9c8b16e286e90d17
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25c5b760911c25664198c77a9c8b16e286e90d17
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/25cb76793052e2668bfcbaf43e07a3c663cbbabc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25cb76793052e2668bfcbaf43e07a3c663cbbabc
index 27ed08c77..27ed08c77 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/25cb76793052e2668bfcbaf43e07a3c663cbbabc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25cb76793052e2668bfcbaf43e07a3c663cbbabc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/25f9f45a3b1b769a48a73dc8d21ac4e2878b7f99 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25f9f45a3b1b769a48a73dc8d21ac4e2878b7f99
index 1f4b5d3b9..1f4b5d3b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/25f9f45a3b1b769a48a73dc8d21ac4e2878b7f99
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/25f9f45a3b1b769a48a73dc8d21ac4e2878b7f99
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/264fc5521576dbad3f38b57b5816c643f3cff288 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/264fc5521576dbad3f38b57b5816c643f3cff288
index a93950fc5..a93950fc5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/264fc5521576dbad3f38b57b5816c643f3cff288
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/264fc5521576dbad3f38b57b5816c643f3cff288
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d
index f4d4a077c..f4d4a077c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/265c29ff6a7119d023e34bb8c20a00c3c383863d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/266365658c66266de33420781cf4b634003fdeb0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/266365658c66266de33420781cf4b634003fdeb0
index a94b0d176..a94b0d176 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/266365658c66266de33420781cf4b634003fdeb0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/266365658c66266de33420781cf4b634003fdeb0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/266536bb25724635d338cfe549a1e0d40812692f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/266536bb25724635d338cfe549a1e0d40812692f
index 300bf9b63..300bf9b63 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/266536bb25724635d338cfe549a1e0d40812692f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/266536bb25724635d338cfe549a1e0d40812692f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/269f44165be421f6918551452fe55c219055babe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/269f44165be421f6918551452fe55c219055babe
index a4a66c420..a4a66c420 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/269f44165be421f6918551452fe55c219055babe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/269f44165be421f6918551452fe55c219055babe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/26a4372e13ff0496760a02881f81bcc7c3127fb7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/26a4372e13ff0496760a02881f81bcc7c3127fb7
index c033617fd..c033617fd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/26a4372e13ff0496760a02881f81bcc7c3127fb7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/26a4372e13ff0496760a02881f81bcc7c3127fb7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/26b666e67dcc15ce37230896bb45e95192b0ed19 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/26b666e67dcc15ce37230896bb45e95192b0ed19
index 5674de584..5674de584 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/26b666e67dcc15ce37230896bb45e95192b0ed19
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/26b666e67dcc15ce37230896bb45e95192b0ed19
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/26f9c44bb213e6ee11fdba9a3331c2898e36bf1f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/26f9c44bb213e6ee11fdba9a3331c2898e36bf1f
index 6138a5756..6138a5756 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/26f9c44bb213e6ee11fdba9a3331c2898e36bf1f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/26f9c44bb213e6ee11fdba9a3331c2898e36bf1f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/270f1630df1408469ec8f9996039fcc7ae4c89fa b/src/web/server/h2o/libh2o/fuzz/http2-corpus/270f1630df1408469ec8f9996039fcc7ae4c89fa
index 28dda2015..28dda2015 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/270f1630df1408469ec8f9996039fcc7ae4c89fa
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/270f1630df1408469ec8f9996039fcc7ae4c89fa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2759facfcf2b1c844e42a725a9be6eb3d9d2a2af b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2759facfcf2b1c844e42a725a9be6eb3d9d2a2af
index fa85762ee..fa85762ee 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2759facfcf2b1c844e42a725a9be6eb3d9d2a2af
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2759facfcf2b1c844e42a725a9be6eb3d9d2a2af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/275b8f15397cf0cfb7207b9a8bd206509bd10016 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/275b8f15397cf0cfb7207b9a8bd206509bd10016
index 56498d5ac..56498d5ac 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/275b8f15397cf0cfb7207b9a8bd206509bd10016
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/275b8f15397cf0cfb7207b9a8bd206509bd10016
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/27938c059167804103b853b8a003d66976ffbffd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27938c059167804103b853b8a003d66976ffbffd
index ed57fa324..ed57fa324 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/27938c059167804103b853b8a003d66976ffbffd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27938c059167804103b853b8a003d66976ffbffd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/27a80a6efc119cc824e05ba0a2fbacdeeaca3060 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27a80a6efc119cc824e05ba0a2fbacdeeaca3060
index 1e6d1995c..1e6d1995c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/27a80a6efc119cc824e05ba0a2fbacdeeaca3060
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27a80a6efc119cc824e05ba0a2fbacdeeaca3060
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/27d33481a8b2404f1b58826f96cce9e1bc944076 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27d33481a8b2404f1b58826f96cce9e1bc944076
index 227fc1f15..227fc1f15 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/27d33481a8b2404f1b58826f96cce9e1bc944076
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27d33481a8b2404f1b58826f96cce9e1bc944076
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/27e8614aab3d7d0e729edde50c12a71a6a630a5f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27e8614aab3d7d0e729edde50c12a71a6a630a5f
index 31513addc..31513addc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/27e8614aab3d7d0e729edde50c12a71a6a630a5f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27e8614aab3d7d0e729edde50c12a71a6a630a5f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/27faeb321e4b4846d0d782149ae42a753f5017a5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27faeb321e4b4846d0d782149ae42a753f5017a5
index 8dd7b06e0..8dd7b06e0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/27faeb321e4b4846d0d782149ae42a753f5017a5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/27faeb321e4b4846d0d782149ae42a753f5017a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2835f591b45e72b5536a65bd8dcc4badee310cdc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2835f591b45e72b5536a65bd8dcc4badee310cdc
index b8573a85a..b8573a85a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2835f591b45e72b5536a65bd8dcc4badee310cdc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2835f591b45e72b5536a65bd8dcc4badee310cdc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/285b5654c99dc84f8a56a18821f2f502127900eb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/285b5654c99dc84f8a56a18821f2f502127900eb
index 373b18011..373b18011 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/285b5654c99dc84f8a56a18821f2f502127900eb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/285b5654c99dc84f8a56a18821f2f502127900eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/28691e3a4b6ab384375df8617eef8ee88dfc7fff b/src/web/server/h2o/libh2o/fuzz/http2-corpus/28691e3a4b6ab384375df8617eef8ee88dfc7fff
index 2527f5790..2527f5790 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/28691e3a4b6ab384375df8617eef8ee88dfc7fff
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/28691e3a4b6ab384375df8617eef8ee88dfc7fff
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/28a0d638a3f2961925717266b7c6060e83d2435a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/28a0d638a3f2961925717266b7c6060e83d2435a
index e335f2959..e335f2959 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/28a0d638a3f2961925717266b7c6060e83d2435a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/28a0d638a3f2961925717266b7c6060e83d2435a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/28e43266b3ec680cb68e7983022b1b1787afff19 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/28e43266b3ec680cb68e7983022b1b1787afff19
index 36725789b..36725789b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/28e43266b3ec680cb68e7983022b1b1787afff19
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/28e43266b3ec680cb68e7983022b1b1787afff19
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/29353ee84989da69f2c7dcca8adaf7a213ee557d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/29353ee84989da69f2c7dcca8adaf7a213ee557d
index 34c243bf7..34c243bf7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/29353ee84989da69f2c7dcca8adaf7a213ee557d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/29353ee84989da69f2c7dcca8adaf7a213ee557d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2941be653274862db75c4d668ac6df77f9392a38 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2941be653274862db75c4d668ac6df77f9392a38
index de162ce29..de162ce29 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2941be653274862db75c4d668ac6df77f9392a38
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2941be653274862db75c4d668ac6df77f9392a38
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2a5e329a685aaf1ffa48b68d4a8eb81c86e358d4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2a5e329a685aaf1ffa48b68d4a8eb81c86e358d4
index da3c8e50d..da3c8e50d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2a5e329a685aaf1ffa48b68d4a8eb81c86e358d4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2a5e329a685aaf1ffa48b68d4a8eb81c86e358d4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2ab752f935590ecf6ee4ccff6f155ecbd2437197 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2ab752f935590ecf6ee4ccff6f155ecbd2437197
index cbdeb17c6..cbdeb17c6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2ab752f935590ecf6ee4ccff6f155ecbd2437197
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2ab752f935590ecf6ee4ccff6f155ecbd2437197
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2ac2570b9f7e1c3e2b2ee158801dba232a0e4a2e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2ac2570b9f7e1c3e2b2ee158801dba232a0e4a2e
index 17cc51e9c..17cc51e9c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2ac2570b9f7e1c3e2b2ee158801dba232a0e4a2e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2ac2570b9f7e1c3e2b2ee158801dba232a0e4a2e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2b172292be8a5a3e92b522b49ee59b0199138669 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b172292be8a5a3e92b522b49ee59b0199138669
index 1793db600..1793db600 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2b172292be8a5a3e92b522b49ee59b0199138669
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b172292be8a5a3e92b522b49ee59b0199138669
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2b3127f0919908d4970a311e4dc2eeacf599ec5b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b3127f0919908d4970a311e4dc2eeacf599ec5b
index 12af6b227..12af6b227 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2b3127f0919908d4970a311e4dc2eeacf599ec5b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b3127f0919908d4970a311e4dc2eeacf599ec5b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2b560ed1c8e0e6f666a23149b4cdc1c0fb8804a5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b560ed1c8e0e6f666a23149b4cdc1c0fb8804a5
index 1af53a021..1af53a021 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2b560ed1c8e0e6f666a23149b4cdc1c0fb8804a5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b560ed1c8e0e6f666a23149b4cdc1c0fb8804a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2b7d2e421bcbe60706e26b70365ca78b3e19eb2b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b7d2e421bcbe60706e26b70365ca78b3e19eb2b
index bb4b15df9..bb4b15df9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2b7d2e421bcbe60706e26b70365ca78b3e19eb2b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2b7d2e421bcbe60706e26b70365ca78b3e19eb2b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2bd79012e36b7691dbb60de71bc69b32f63c3e04 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2bd79012e36b7691dbb60de71bc69b32f63c3e04
index 879251e5a..879251e5a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2bd79012e36b7691dbb60de71bc69b32f63c3e04
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2bd79012e36b7691dbb60de71bc69b32f63c3e04
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2c923c30a4dbf6fe4869b9e7a45b7d99020efa4e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2c923c30a4dbf6fe4869b9e7a45b7d99020efa4e
index 843f55917..843f55917 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2c923c30a4dbf6fe4869b9e7a45b7d99020efa4e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2c923c30a4dbf6fe4869b9e7a45b7d99020efa4e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2cc24055ce1d88a4190e9fe2c68215bc6f4940de b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2cc24055ce1d88a4190e9fe2c68215bc6f4940de
index 79c0bd082..79c0bd082 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2cc24055ce1d88a4190e9fe2c68215bc6f4940de
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2cc24055ce1d88a4190e9fe2c68215bc6f4940de
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2cc339c1aca8f259cc73279011cc96765ea52551 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2cc339c1aca8f259cc73279011cc96765ea52551
index 6c30f266c..6c30f266c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2cc339c1aca8f259cc73279011cc96765ea52551
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2cc339c1aca8f259cc73279011cc96765ea52551
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2ccd0f1e573c358c2cebdede69a2d4cd48218960 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2ccd0f1e573c358c2cebdede69a2d4cd48218960
index d0626581a..d0626581a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2ccd0f1e573c358c2cebdede69a2d4cd48218960
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2ccd0f1e573c358c2cebdede69a2d4cd48218960
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2d54db2e7d2d6f7fe0e980e692e57c8beb83096d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d54db2e7d2d6f7fe0e980e692e57c8beb83096d
index e833396b0..e833396b0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2d54db2e7d2d6f7fe0e980e692e57c8beb83096d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d54db2e7d2d6f7fe0e980e692e57c8beb83096d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2d7731197530918f772b1060381cd6395106981e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d7731197530918f772b1060381cd6395106981e
index a6353bdba..a6353bdba 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2d7731197530918f772b1060381cd6395106981e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d7731197530918f772b1060381cd6395106981e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2d8c9f30ed5e14ac3ea81356a290ce84884162bf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d8c9f30ed5e14ac3ea81356a290ce84884162bf
index c286844d9..c286844d9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2d8c9f30ed5e14ac3ea81356a290ce84884162bf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d8c9f30ed5e14ac3ea81356a290ce84884162bf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2d9fe0c229f6b7e086e91373c7c4042280f19809 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d9fe0c229f6b7e086e91373c7c4042280f19809
index 4f5b692df..4f5b692df 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2d9fe0c229f6b7e086e91373c7c4042280f19809
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2d9fe0c229f6b7e086e91373c7c4042280f19809
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2db4833f85f679f11af68ffa804d1f1359c64536 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2db4833f85f679f11af68ffa804d1f1359c64536
index 7762672b5..7762672b5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2db4833f85f679f11af68ffa804d1f1359c64536
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2db4833f85f679f11af68ffa804d1f1359c64536
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2dcd8990fc0418def99ec4921f9e101fd8b2123e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2dcd8990fc0418def99ec4921f9e101fd8b2123e
index 3572ec354..3572ec354 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2dcd8990fc0418def99ec4921f9e101fd8b2123e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2dcd8990fc0418def99ec4921f9e101fd8b2123e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2df5cf2c527f813cecd9b31ba03eda333cdc3c6d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2df5cf2c527f813cecd9b31ba03eda333cdc3c6d
index 46d1ea3b4..46d1ea3b4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2df5cf2c527f813cecd9b31ba03eda333cdc3c6d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2df5cf2c527f813cecd9b31ba03eda333cdc3c6d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2dfa23258b364f1b66e7dff7925706bc7e53c79b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2dfa23258b364f1b66e7dff7925706bc7e53c79b
index a09943b9f..a09943b9f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2dfa23258b364f1b66e7dff7925706bc7e53c79b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2dfa23258b364f1b66e7dff7925706bc7e53c79b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2e0bc1990303c71b407346b78c4720486ac1bfc5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2e0bc1990303c71b407346b78c4720486ac1bfc5
index dc2a5f256..dc2a5f256 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2e0bc1990303c71b407346b78c4720486ac1bfc5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2e0bc1990303c71b407346b78c4720486ac1bfc5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2e1c0cd2a522573aa77894d4de869fba89391fb8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2e1c0cd2a522573aa77894d4de869fba89391fb8
index bcb6163da..bcb6163da 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2e1c0cd2a522573aa77894d4de869fba89391fb8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2e1c0cd2a522573aa77894d4de869fba89391fb8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2f16232a6201f7c069c597dc447d1263579b73ff b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2f16232a6201f7c069c597dc447d1263579b73ff
index 040924ccd..040924ccd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2f16232a6201f7c069c597dc447d1263579b73ff
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2f16232a6201f7c069c597dc447d1263579b73ff
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2f8946a4854679c511405e2be15f70e2c3c98c91 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2f8946a4854679c511405e2be15f70e2c3c98c91
index f4b80aa03..f4b80aa03 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2f8946a4854679c511405e2be15f70e2c3c98c91
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2f8946a4854679c511405e2be15f70e2c3c98c91
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2f9098d16bf645406a4d583524c3c2b154299c0a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2f9098d16bf645406a4d583524c3c2b154299c0a
index d5ce487f7..d5ce487f7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2f9098d16bf645406a4d583524c3c2b154299c0a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2f9098d16bf645406a4d583524c3c2b154299c0a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2fa779e3e9359f9debccf89dace03b765e621dee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fa779e3e9359f9debccf89dace03b765e621dee
index bee888f63..bee888f63 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2fa779e3e9359f9debccf89dace03b765e621dee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fa779e3e9359f9debccf89dace03b765e621dee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2fae1664df3100785c417e40da58686ef7ca03fb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fae1664df3100785c417e40da58686ef7ca03fb
index c9da40f6f..c9da40f6f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2fae1664df3100785c417e40da58686ef7ca03fb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fae1664df3100785c417e40da58686ef7ca03fb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2fe3678cf432e18a7e21d57a18e23e51f790f8f4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fe3678cf432e18a7e21d57a18e23e51f790f8f4
index c74f77800..c74f77800 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2fe3678cf432e18a7e21d57a18e23e51f790f8f4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fe3678cf432e18a7e21d57a18e23e51f790f8f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/2fec02aae07d238ee1c2d9e544731442be1d3814 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fec02aae07d238ee1c2d9e544731442be1d3814
index 4d31ec7f2..4d31ec7f2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/2fec02aae07d238ee1c2d9e544731442be1d3814
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/2fec02aae07d238ee1c2d9e544731442be1d3814
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3006055aae87a4058d1833785716dd6aa408540c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3006055aae87a4058d1833785716dd6aa408540c
index 69765f001..69765f001 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3006055aae87a4058d1833785716dd6aa408540c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3006055aae87a4058d1833785716dd6aa408540c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/307774cf9be8a96c750cea71d3ec4ef2a6878c87 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/307774cf9be8a96c750cea71d3ec4ef2a6878c87
index 257705874..257705874 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/307774cf9be8a96c750cea71d3ec4ef2a6878c87
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/307774cf9be8a96c750cea71d3ec4ef2a6878c87
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3081be41046a10922b147e7f59c9d60543d5372d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3081be41046a10922b147e7f59c9d60543d5372d
index fb9741ea1..fb9741ea1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3081be41046a10922b147e7f59c9d60543d5372d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3081be41046a10922b147e7f59c9d60543d5372d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/30e071c224b05c059032a6d77c206a8e0301bed4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/30e071c224b05c059032a6d77c206a8e0301bed4
index 9bf89de6c..9bf89de6c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/30e071c224b05c059032a6d77c206a8e0301bed4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/30e071c224b05c059032a6d77c206a8e0301bed4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/318c1da222071a245989cbf57696104b70ac2ed8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/318c1da222071a245989cbf57696104b70ac2ed8
index 06e6d5b3f..06e6d5b3f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/318c1da222071a245989cbf57696104b70ac2ed8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/318c1da222071a245989cbf57696104b70ac2ed8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/31a1786fbc6a61796a05534451184d0f8f697f74 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31a1786fbc6a61796a05534451184d0f8f697f74
index f0a352494..f0a352494 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/31a1786fbc6a61796a05534451184d0f8f697f74
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31a1786fbc6a61796a05534451184d0f8f697f74
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/31bf9255e749a2ee12f655b36c796749dfef5a02 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31bf9255e749a2ee12f655b36c796749dfef5a02
index c0c8d8afa..c0c8d8afa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/31bf9255e749a2ee12f655b36c796749dfef5a02
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31bf9255e749a2ee12f655b36c796749dfef5a02
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/31dd0c3817d956ab758d9b82b8cbc4634661cbb3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31dd0c3817d956ab758d9b82b8cbc4634661cbb3
index 36441f899..36441f899 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/31dd0c3817d956ab758d9b82b8cbc4634661cbb3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31dd0c3817d956ab758d9b82b8cbc4634661cbb3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/31edf43d7db50e37761ecdbb05829daf39c5042e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31edf43d7db50e37761ecdbb05829daf39c5042e
index a0599f014..a0599f014 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/31edf43d7db50e37761ecdbb05829daf39c5042e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31edf43d7db50e37761ecdbb05829daf39c5042e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/31f74cc6fa21434544d2e2b0a05e6c63804341b8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31f74cc6fa21434544d2e2b0a05e6c63804341b8
index fec2bd3e0..fec2bd3e0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/31f74cc6fa21434544d2e2b0a05e6c63804341b8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31f74cc6fa21434544d2e2b0a05e6c63804341b8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/31fd55f70df4c9e2cf6b251913248fd44f407edf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31fd55f70df4c9e2cf6b251913248fd44f407edf
index b917b0b19..b917b0b19 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/31fd55f70df4c9e2cf6b251913248fd44f407edf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/31fd55f70df4c9e2cf6b251913248fd44f407edf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/32570fb6ad5374a7b18f58d9c59d6449ea170650 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32570fb6ad5374a7b18f58d9c59d6449ea170650
index 178bf02cf..178bf02cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/32570fb6ad5374a7b18f58d9c59d6449ea170650
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32570fb6ad5374a7b18f58d9c59d6449ea170650
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/328b9b20d35d1ded6146924dfbb39aaf2f74b365 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/328b9b20d35d1ded6146924dfbb39aaf2f74b365
index 70fae3f05..70fae3f05 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/328b9b20d35d1ded6146924dfbb39aaf2f74b365
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/328b9b20d35d1ded6146924dfbb39aaf2f74b365
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/32cd0e5331c37cf160037e421a537b4b47a03021 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32cd0e5331c37cf160037e421a537b4b47a03021
index d31518947..d31518947 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/32cd0e5331c37cf160037e421a537b4b47a03021
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32cd0e5331c37cf160037e421a537b4b47a03021
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/32f4b19efea4b9d19297ee64f8091637310969ef b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32f4b19efea4b9d19297ee64f8091637310969ef
index aaa04afde..aaa04afde 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/32f4b19efea4b9d19297ee64f8091637310969ef
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32f4b19efea4b9d19297ee64f8091637310969ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/32fa89322c10ed26fc3eb40cf85ad1a35554e69e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32fa89322c10ed26fc3eb40cf85ad1a35554e69e
index 6d417c260..6d417c260 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/32fa89322c10ed26fc3eb40cf85ad1a35554e69e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/32fa89322c10ed26fc3eb40cf85ad1a35554e69e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33230fb1c6081f84bb8cbbbb0aab03e71c7907a0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33230fb1c6081f84bb8cbbbb0aab03e71c7907a0
index 8882df69a..8882df69a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33230fb1c6081f84bb8cbbbb0aab03e71c7907a0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33230fb1c6081f84bb8cbbbb0aab03e71c7907a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33319997a8c9e1641fef797c2a1d8e1ab38a923a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33319997a8c9e1641fef797c2a1d8e1ab38a923a
index 3da2da686..3da2da686 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33319997a8c9e1641fef797c2a1d8e1ab38a923a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33319997a8c9e1641fef797c2a1d8e1ab38a923a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3352da314eba8c724bf8fab6bf64358dd37f9a6f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3352da314eba8c724bf8fab6bf64358dd37f9a6f
index 0830d1e9b..0830d1e9b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3352da314eba8c724bf8fab6bf64358dd37f9a6f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3352da314eba8c724bf8fab6bf64358dd37f9a6f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/335756146520933c106c9be19eaab4613ebe50d1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/335756146520933c106c9be19eaab4613ebe50d1
index a05c29d65..a05c29d65 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/335756146520933c106c9be19eaab4613ebe50d1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/335756146520933c106c9be19eaab4613ebe50d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3379208740df35035b80fc6add15f5f0e19b99ac b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3379208740df35035b80fc6add15f5f0e19b99ac
index d2d1073ad..d2d1073ad 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3379208740df35035b80fc6add15f5f0e19b99ac
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3379208740df35035b80fc6add15f5f0e19b99ac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33854b569d1598bf9e788e70ff71f04877071533 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33854b569d1598bf9e788e70ff71f04877071533
index cd8a12aff..cd8a12aff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33854b569d1598bf9e788e70ff71f04877071533
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33854b569d1598bf9e788e70ff71f04877071533
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2
index 559950481..559950481 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33a3bbe11411301210bd9f73ac16e4ad9462f0e2
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33b702896553ec686c00b86e0518238133e9efb1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33b702896553ec686c00b86e0518238133e9efb1
index 6e4bef5b4..6e4bef5b4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33b702896553ec686c00b86e0518238133e9efb1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33b702896553ec686c00b86e0518238133e9efb1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33c58e37739b2ea17054c4c9b3169988fabcd0af b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33c58e37739b2ea17054c4c9b3169988fabcd0af
index 04070895e..04070895e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33c58e37739b2ea17054c4c9b3169988fabcd0af
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33c58e37739b2ea17054c4c9b3169988fabcd0af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33d85126399eca3d7d58be54c8e5a4be4f4923ee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33d85126399eca3d7d58be54c8e5a4be4f4923ee
index 953396537..953396537 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33d85126399eca3d7d58be54c8e5a4be4f4923ee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33d85126399eca3d7d58be54c8e5a4be4f4923ee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33defbce87dea7d131167a2f839ce188b86f4972 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33defbce87dea7d131167a2f839ce188b86f4972
index 2ba11cd92..2ba11cd92 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33defbce87dea7d131167a2f839ce188b86f4972
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33defbce87dea7d131167a2f839ce188b86f4972
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/33e300e599a1989c4013b3cdc0dd90f12489673d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33e300e599a1989c4013b3cdc0dd90f12489673d
index 324688296..324688296 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/33e300e599a1989c4013b3cdc0dd90f12489673d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/33e300e599a1989c4013b3cdc0dd90f12489673d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/341b73f575d9234933caf81017c599e58a05e61e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/341b73f575d9234933caf81017c599e58a05e61e
index 8251b47b0..8251b47b0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/341b73f575d9234933caf81017c599e58a05e61e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/341b73f575d9234933caf81017c599e58a05e61e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/341c6809def8c2e7df08051521a1eb139374d85d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/341c6809def8c2e7df08051521a1eb139374d85d
index 6a68e6ed0..6a68e6ed0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/341c6809def8c2e7df08051521a1eb139374d85d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/341c6809def8c2e7df08051521a1eb139374d85d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/346c1f63e10708b34ddfc4ccd8407946a5d5922d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/346c1f63e10708b34ddfc4ccd8407946a5d5922d
index ca0d3621c..ca0d3621c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/346c1f63e10708b34ddfc4ccd8407946a5d5922d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/346c1f63e10708b34ddfc4ccd8407946a5d5922d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/34c5f9cdc2a4038dde8b9c26207bfa0258f021d5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/34c5f9cdc2a4038dde8b9c26207bfa0258f021d5
index fd9f1e14c..fd9f1e14c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/34c5f9cdc2a4038dde8b9c26207bfa0258f021d5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/34c5f9cdc2a4038dde8b9c26207bfa0258f021d5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/34cca0895edbc6037f8955606cfa4fd57056e557 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/34cca0895edbc6037f8955606cfa4fd57056e557
index a92b1d6a6..a92b1d6a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/34cca0895edbc6037f8955606cfa4fd57056e557
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/34cca0895edbc6037f8955606cfa4fd57056e557
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3548cfc594073fc64ee2fb290e28d15052290f58 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3548cfc594073fc64ee2fb290e28d15052290f58
index f0a28ef6a..f0a28ef6a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3548cfc594073fc64ee2fb290e28d15052290f58
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3548cfc594073fc64ee2fb290e28d15052290f58
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/357e91d6f83424bce6057e959f5e4a8d9d0e43c7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/357e91d6f83424bce6057e959f5e4a8d9d0e43c7
index c188ac9bd..c188ac9bd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/357e91d6f83424bce6057e959f5e4a8d9d0e43c7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/357e91d6f83424bce6057e959f5e4a8d9d0e43c7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/357fe6feca240785ace5c77240ef15d881c5321a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/357fe6feca240785ace5c77240ef15d881c5321a
index 337eb9b25..337eb9b25 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/357fe6feca240785ace5c77240ef15d881c5321a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/357fe6feca240785ace5c77240ef15d881c5321a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/35ad9c0e4c6a968728ead5dc9dbd9349f284a15b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/35ad9c0e4c6a968728ead5dc9dbd9349f284a15b
index e339a4ac0..e339a4ac0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/35ad9c0e4c6a968728ead5dc9dbd9349f284a15b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/35ad9c0e4c6a968728ead5dc9dbd9349f284a15b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/35df4ed85c9f4209d7a156527f19ded6fb7e8f2b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/35df4ed85c9f4209d7a156527f19ded6fb7e8f2b
index b05794639..b05794639 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/35df4ed85c9f4209d7a156527f19ded6fb7e8f2b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/35df4ed85c9f4209d7a156527f19ded6fb7e8f2b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/35e32bd7299e9cf64ab947ed4ce25a85e626c312 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/35e32bd7299e9cf64ab947ed4ce25a85e626c312
index 14bab9c63..14bab9c63 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/35e32bd7299e9cf64ab947ed4ce25a85e626c312
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/35e32bd7299e9cf64ab947ed4ce25a85e626c312
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/363fc01608ffab56563a1240bf24f74503d20d75 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/363fc01608ffab56563a1240bf24f74503d20d75
index 016f58920..016f58920 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/363fc01608ffab56563a1240bf24f74503d20d75
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/363fc01608ffab56563a1240bf24f74503d20d75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/364f818b5d5d9845dce5b58b068218d3e0775689 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/364f818b5d5d9845dce5b58b068218d3e0775689
index d56e3a724..d56e3a724 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/364f818b5d5d9845dce5b58b068218d3e0775689
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/364f818b5d5d9845dce5b58b068218d3e0775689
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/36a5c002effee0bbaf9148ce2ea4fd74a92fbc9d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/36a5c002effee0bbaf9148ce2ea4fd74a92fbc9d
index 1bb410dc2..1bb410dc2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/36a5c002effee0bbaf9148ce2ea4fd74a92fbc9d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/36a5c002effee0bbaf9148ce2ea4fd74a92fbc9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/36cf3d022f731640f4597899405ac8d03d0cc758 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/36cf3d022f731640f4597899405ac8d03d0cc758
index ec7086c2f..ec7086c2f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/36cf3d022f731640f4597899405ac8d03d0cc758
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/36cf3d022f731640f4597899405ac8d03d0cc758
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/36d07d7f3414c92c68dd64a92c0ab692ca333b1d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/36d07d7f3414c92c68dd64a92c0ab692ca333b1d
index 543ab67e9..543ab67e9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/36d07d7f3414c92c68dd64a92c0ab692ca333b1d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/36d07d7f3414c92c68dd64a92c0ab692ca333b1d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/373d1c21b5e979cd53576a3144cb814315b33ff9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/373d1c21b5e979cd53576a3144cb814315b33ff9
index 405da56fd..405da56fd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/373d1c21b5e979cd53576a3144cb814315b33ff9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/373d1c21b5e979cd53576a3144cb814315b33ff9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3786bed8df66c9823ad3641d1e6cdb8a7852277b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3786bed8df66c9823ad3641d1e6cdb8a7852277b
index 897bec517..897bec517 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3786bed8df66c9823ad3641d1e6cdb8a7852277b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3786bed8df66c9823ad3641d1e6cdb8a7852277b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3789295f56feaae13a78817807c43b7ebb21aecf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3789295f56feaae13a78817807c43b7ebb21aecf
index 9e254e0bb..9e254e0bb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3789295f56feaae13a78817807c43b7ebb21aecf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3789295f56feaae13a78817807c43b7ebb21aecf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/37aaf49a75eb363692d3ba542b546090be70a145 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/37aaf49a75eb363692d3ba542b546090be70a145
index d434a878a..d434a878a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/37aaf49a75eb363692d3ba542b546090be70a145
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/37aaf49a75eb363692d3ba542b546090be70a145
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/37f8effa6cda59350132432b117754b0f5ffb2ae b/src/web/server/h2o/libh2o/fuzz/http2-corpus/37f8effa6cda59350132432b117754b0f5ffb2ae
index 5dcdd6a95..5dcdd6a95 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/37f8effa6cda59350132432b117754b0f5ffb2ae
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/37f8effa6cda59350132432b117754b0f5ffb2ae
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/38b5698107c8d40b7fa89345c7f80ded923edac7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/38b5698107c8d40b7fa89345c7f80ded923edac7
index 000b0a1ef..000b0a1ef 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/38b5698107c8d40b7fa89345c7f80ded923edac7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/38b5698107c8d40b7fa89345c7f80ded923edac7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/38ba653a1bbe15b9badc3e152a0e97f2794d2069 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/38ba653a1bbe15b9badc3e152a0e97f2794d2069
index 2d7136b46..2d7136b46 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/38ba653a1bbe15b9badc3e152a0e97f2794d2069
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/38ba653a1bbe15b9badc3e152a0e97f2794d2069
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/38daddfa5b31ab33cebb90a7c9242acbb165ea02 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/38daddfa5b31ab33cebb90a7c9242acbb165ea02
index 55ba8f98a..55ba8f98a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/38daddfa5b31ab33cebb90a7c9242acbb165ea02
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/38daddfa5b31ab33cebb90a7c9242acbb165ea02
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3935ddc83a59cd9e0c1026abacc47d205c851f37 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3935ddc83a59cd9e0c1026abacc47d205c851f37
index f32b290a4..f32b290a4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3935ddc83a59cd9e0c1026abacc47d205c851f37
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3935ddc83a59cd9e0c1026abacc47d205c851f37
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/39388c4b707da65a9d4826f576c78f244053b93b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39388c4b707da65a9d4826f576c78f244053b93b
index e98598424..e98598424 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/39388c4b707da65a9d4826f576c78f244053b93b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39388c4b707da65a9d4826f576c78f244053b93b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/398997b02b0ebfbac30c7af4cf7acc89ca44711c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/398997b02b0ebfbac30c7af4cf7acc89ca44711c
index 9ed5b4f30..9ed5b4f30 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/398997b02b0ebfbac30c7af4cf7acc89ca44711c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/398997b02b0ebfbac30c7af4cf7acc89ca44711c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/39aead285c2f7588d639b2f7eca7f4a670325ac8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39aead285c2f7588d639b2f7eca7f4a670325ac8
index a76d54e03..a76d54e03 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/39aead285c2f7588d639b2f7eca7f4a670325ac8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39aead285c2f7588d639b2f7eca7f4a670325ac8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/39becb8538632595c649758966252332c1bd4fe7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39becb8538632595c649758966252332c1bd4fe7
index 3c001a821..3c001a821 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/39becb8538632595c649758966252332c1bd4fe7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39becb8538632595c649758966252332c1bd4fe7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/39cd235e2f987e47928577f2812d43497753d2c9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39cd235e2f987e47928577f2812d43497753d2c9
index 2c5e2e2dd..2c5e2e2dd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/39cd235e2f987e47928577f2812d43497753d2c9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39cd235e2f987e47928577f2812d43497753d2c9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/39ffd6d6d468e008377143bcbf0caadfa4134853 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39ffd6d6d468e008377143bcbf0caadfa4134853
index 1d90d7660..1d90d7660 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/39ffd6d6d468e008377143bcbf0caadfa4134853
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/39ffd6d6d468e008377143bcbf0caadfa4134853
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3a0c906145fcad6d0b2e9202cec620da4654eb88 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3a0c906145fcad6d0b2e9202cec620da4654eb88
index 22e531472..22e531472 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3a0c906145fcad6d0b2e9202cec620da4654eb88
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3a0c906145fcad6d0b2e9202cec620da4654eb88
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3a47bb99a21e339134adf7d3f63498983e380f45 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3a47bb99a21e339134adf7d3f63498983e380f45
index 43ef5c6e6..43ef5c6e6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3a47bb99a21e339134adf7d3f63498983e380f45
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3a47bb99a21e339134adf7d3f63498983e380f45
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3a9e3e8b3a5b8d5aa0b7f8c7657e1ac651dacf42 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3a9e3e8b3a5b8d5aa0b7f8c7657e1ac651dacf42
index 6a2f57d96..6a2f57d96 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3a9e3e8b3a5b8d5aa0b7f8c7657e1ac651dacf42
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3a9e3e8b3a5b8d5aa0b7f8c7657e1ac651dacf42
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3aa7a2514712b1b87f3f8d66dd9809e4237609ca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3aa7a2514712b1b87f3f8d66dd9809e4237609ca
index d8eb2d1fa..d8eb2d1fa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3aa7a2514712b1b87f3f8d66dd9809e4237609ca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3aa7a2514712b1b87f3f8d66dd9809e4237609ca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3aba03c422b2f5d052a5ec3d19f0bd12f38d5888 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3aba03c422b2f5d052a5ec3d19f0bd12f38d5888
index af6e6b150..af6e6b150 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3aba03c422b2f5d052a5ec3d19f0bd12f38d5888
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3aba03c422b2f5d052a5ec3d19f0bd12f38d5888
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3aba7d2cc2fd23347d491150e65d6bcb1d81767d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3aba7d2cc2fd23347d491150e65d6bcb1d81767d
index 2c3a9546f..2c3a9546f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3aba7d2cc2fd23347d491150e65d6bcb1d81767d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3aba7d2cc2fd23347d491150e65d6bcb1d81767d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3acdca18abc3021956225097f71adadb5dd5d008 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3acdca18abc3021956225097f71adadb5dd5d008
index 6faad8a0e..6faad8a0e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3acdca18abc3021956225097f71adadb5dd5d008
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3acdca18abc3021956225097f71adadb5dd5d008
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3b15ab421c49f826f6f846823ee55e0fdf368c03 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b15ab421c49f826f6f846823ee55e0fdf368c03
index a9c0742f0..a9c0742f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3b15ab421c49f826f6f846823ee55e0fdf368c03
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b15ab421c49f826f6f846823ee55e0fdf368c03
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3b260005ee110efe098c1ba02f6b19fe3bc761eb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b260005ee110efe098c1ba02f6b19fe3bc761eb
index 01a0508f4..01a0508f4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3b260005ee110efe098c1ba02f6b19fe3bc761eb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b260005ee110efe098c1ba02f6b19fe3bc761eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3b524cf48bfc3457609466b647747115b8f2fe3d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b524cf48bfc3457609466b647747115b8f2fe3d
index 28860d70b..28860d70b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3b524cf48bfc3457609466b647747115b8f2fe3d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b524cf48bfc3457609466b647747115b8f2fe3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3b5816076f0ed8163d24197086cc97e24825a099 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b5816076f0ed8163d24197086cc97e24825a099
index 3e736c177..3e736c177 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3b5816076f0ed8163d24197086cc97e24825a099
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b5816076f0ed8163d24197086cc97e24825a099
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3b61a0d331e11a20e28e916d7e33e7681f88543e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b61a0d331e11a20e28e916d7e33e7681f88543e
index 62b65a86f..62b65a86f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3b61a0d331e11a20e28e916d7e33e7681f88543e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3b61a0d331e11a20e28e916d7e33e7681f88543e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3ba29b70449726e76b6e10c865505d4a47642ca2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ba29b70449726e76b6e10c865505d4a47642ca2
index 16d46396f..16d46396f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3ba29b70449726e76b6e10c865505d4a47642ca2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ba29b70449726e76b6e10c865505d4a47642ca2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6
index 74d10e785..74d10e785 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c10fda3ce71fdc7b6a3272aada5a4b9cfa0faf6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3c1c52b8e7d2975d9750c384535e97c1d3e2f947 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c1c52b8e7d2975d9750c384535e97c1d3e2f947
index 1084866b4..1084866b4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3c1c52b8e7d2975d9750c384535e97c1d3e2f947
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c1c52b8e7d2975d9750c384535e97c1d3e2f947
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3c61c64f83940d5aeeb5c07c9bb8edb3600e83e5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c61c64f83940d5aeeb5c07c9bb8edb3600e83e5
index 4bcf5d5b4..4bcf5d5b4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3c61c64f83940d5aeeb5c07c9bb8edb3600e83e5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c61c64f83940d5aeeb5c07c9bb8edb3600e83e5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3c946294acdcf9f26acf572ba5328b6837bd69da b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c946294acdcf9f26acf572ba5328b6837bd69da
index 813f2d96b..813f2d96b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3c946294acdcf9f26acf572ba5328b6837bd69da
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c946294acdcf9f26acf572ba5328b6837bd69da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3c9cea87a1f7b0fb48efef1d2cad6bc6675651c8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c9cea87a1f7b0fb48efef1d2cad6bc6675651c8
index d122b1531..d122b1531 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3c9cea87a1f7b0fb48efef1d2cad6bc6675651c8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3c9cea87a1f7b0fb48efef1d2cad6bc6675651c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3cca566e627e731d98a496c3a5306be2810938f1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3cca566e627e731d98a496c3a5306be2810938f1
index 017e83d98..017e83d98 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3cca566e627e731d98a496c3a5306be2810938f1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3cca566e627e731d98a496c3a5306be2810938f1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3cd3a8b9a8c5038304d68378c96fd94425f15d11 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3cd3a8b9a8c5038304d68378c96fd94425f15d11
index cc4c41836..cc4c41836 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3cd3a8b9a8c5038304d68378c96fd94425f15d11
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3cd3a8b9a8c5038304d68378c96fd94425f15d11
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3d73962124411351a36dcae0e19fbad7ea81d2df b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3d73962124411351a36dcae0e19fbad7ea81d2df
index 1ac0749fb..1ac0749fb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3d73962124411351a36dcae0e19fbad7ea81d2df
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3d73962124411351a36dcae0e19fbad7ea81d2df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3d8a6ecd795f5d93618890b7f8fd0da98804722d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3d8a6ecd795f5d93618890b7f8fd0da98804722d
index 0a7c90b2f..0a7c90b2f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3d8a6ecd795f5d93618890b7f8fd0da98804722d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3d8a6ecd795f5d93618890b7f8fd0da98804722d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3db518f76f46cd2b44288a953c395cca7c2ec4b4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3db518f76f46cd2b44288a953c395cca7c2ec4b4
index 2ac0f7c59..2ac0f7c59 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3db518f76f46cd2b44288a953c395cca7c2ec4b4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3db518f76f46cd2b44288a953c395cca7c2ec4b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3e19d86af04fd65764246104fce28e5203649faa b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e19d86af04fd65764246104fce28e5203649faa
index f11d65e79..f11d65e79 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3e19d86af04fd65764246104fce28e5203649faa
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e19d86af04fd65764246104fce28e5203649faa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3e27fc2214cb3a2cbb3eca083b7333593b6b598b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e27fc2214cb3a2cbb3eca083b7333593b6b598b
index 21fb75cc5..21fb75cc5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3e27fc2214cb3a2cbb3eca083b7333593b6b598b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e27fc2214cb3a2cbb3eca083b7333593b6b598b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3e3572f9fc07136eb5afd6c75eee6665315efa13 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e3572f9fc07136eb5afd6c75eee6665315efa13
index 72202bb2c..72202bb2c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3e3572f9fc07136eb5afd6c75eee6665315efa13
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e3572f9fc07136eb5afd6c75eee6665315efa13
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3e41ced773573ec99d944aeed2053d849c818981 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e41ced773573ec99d944aeed2053d849c818981
index 7fb31dde2..7fb31dde2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3e41ced773573ec99d944aeed2053d849c818981
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e41ced773573ec99d944aeed2053d849c818981
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3e41f56f7c5b9e9a9cb8d49039f24b8673f7a66c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e41f56f7c5b9e9a9cb8d49039f24b8673f7a66c
index b30e17868..b30e17868 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3e41f56f7c5b9e9a9cb8d49039f24b8673f7a66c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e41f56f7c5b9e9a9cb8d49039f24b8673f7a66c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3e6f5a3735dc074871acc056279bfca02dd94817 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e6f5a3735dc074871acc056279bfca02dd94817
index 67f43ff67..67f43ff67 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3e6f5a3735dc074871acc056279bfca02dd94817
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3e6f5a3735dc074871acc056279bfca02dd94817
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3ece06a147632ff83e80275be1d736843283d3ed b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ece06a147632ff83e80275be1d736843283d3ed
index 24ea2fd5e..24ea2fd5e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3ece06a147632ff83e80275be1d736843283d3ed
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ece06a147632ff83e80275be1d736843283d3ed
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3ed3c0343d5187f5b54732e8a976867452d881fb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ed3c0343d5187f5b54732e8a976867452d881fb
index f1d371cd6..f1d371cd6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3ed3c0343d5187f5b54732e8a976867452d881fb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ed3c0343d5187f5b54732e8a976867452d881fb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3efaf675d35f51401cb3e9b64f46022ec7248642 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3efaf675d35f51401cb3e9b64f46022ec7248642
index 24ede89ee..24ede89ee 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3efaf675d35f51401cb3e9b64f46022ec7248642
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3efaf675d35f51401cb3e9b64f46022ec7248642
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3efd96bb17a54a3852d5826b5ddc59e32008e306 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3efd96bb17a54a3852d5826b5ddc59e32008e306
index b125f9cbc..b125f9cbc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3efd96bb17a54a3852d5826b5ddc59e32008e306
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3efd96bb17a54a3852d5826b5ddc59e32008e306
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3f0e745408806de69e2ab3b103e3bfe4e91c073c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f0e745408806de69e2ab3b103e3bfe4e91c073c
index 3043ae9e6..3043ae9e6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3f0e745408806de69e2ab3b103e3bfe4e91c073c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f0e745408806de69e2ab3b103e3bfe4e91c073c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3f0f12a61ff750ad3a5aeb569bd35afdd0b26122 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f0f12a61ff750ad3a5aeb569bd35afdd0b26122
index e57ca85eb..e57ca85eb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3f0f12a61ff750ad3a5aeb569bd35afdd0b26122
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f0f12a61ff750ad3a5aeb569bd35afdd0b26122
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3f100d71a2ec94b9a10d60b0eda03b1856ded2b4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f100d71a2ec94b9a10d60b0eda03b1856ded2b4
index b441595e3..b441595e3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3f100d71a2ec94b9a10d60b0eda03b1856ded2b4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f100d71a2ec94b9a10d60b0eda03b1856ded2b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3f12a1c81fe8ed555f3008bb7c9e176e4008fe98 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f12a1c81fe8ed555f3008bb7c9e176e4008fe98
index 408efb4b6..408efb4b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3f12a1c81fe8ed555f3008bb7c9e176e4008fe98
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f12a1c81fe8ed555f3008bb7c9e176e4008fe98
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3f2e8ec82071cdaa22dee56d9b13c658f1a05cb5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f2e8ec82071cdaa22dee56d9b13c658f1a05cb5
index b71c5c0f0..b71c5c0f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3f2e8ec82071cdaa22dee56d9b13c658f1a05cb5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f2e8ec82071cdaa22dee56d9b13c658f1a05cb5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3f54ac391586da1d4024b6e8e2dd298191d96485 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f54ac391586da1d4024b6e8e2dd298191d96485
index 63bfbd9d1..63bfbd9d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3f54ac391586da1d4024b6e8e2dd298191d96485
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f54ac391586da1d4024b6e8e2dd298191d96485
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3f8f0f8fdeebebe72ebc3843c65f5da5dc78b3cc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f8f0f8fdeebebe72ebc3843c65f5da5dc78b3cc
index 2e1862db4..2e1862db4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3f8f0f8fdeebebe72ebc3843c65f5da5dc78b3cc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3f8f0f8fdeebebe72ebc3843c65f5da5dc78b3cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3fbe2e93a1e009064a9d79d0dcdc053d6d36ccdf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3fbe2e93a1e009064a9d79d0dcdc053d6d36ccdf
index 55e892935..55e892935 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3fbe2e93a1e009064a9d79d0dcdc053d6d36ccdf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3fbe2e93a1e009064a9d79d0dcdc053d6d36ccdf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/3ff57ee65b12b32ae5ae263b22224ce6ca887bd9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ff57ee65b12b32ae5ae263b22224ce6ca887bd9
index 0ccff3a66..0ccff3a66 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/3ff57ee65b12b32ae5ae263b22224ce6ca887bd9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/3ff57ee65b12b32ae5ae263b22224ce6ca887bd9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/400cdffafdc456604dd3a1604759e4ea4313bad9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/400cdffafdc456604dd3a1604759e4ea4313bad9
index 0bbddb5b1..0bbddb5b1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/400cdffafdc456604dd3a1604759e4ea4313bad9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/400cdffafdc456604dd3a1604759e4ea4313bad9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4015007910b0053ff3353424b1ccb5e0a6270b2c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4015007910b0053ff3353424b1ccb5e0a6270b2c
index 379754020..379754020 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4015007910b0053ff3353424b1ccb5e0a6270b2c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4015007910b0053ff3353424b1ccb5e0a6270b2c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4032fe7871ca3b7bc80cdd81e8f22bb09b146618 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4032fe7871ca3b7bc80cdd81e8f22bb09b146618
index 079122617..079122617 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4032fe7871ca3b7bc80cdd81e8f22bb09b146618
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4032fe7871ca3b7bc80cdd81e8f22bb09b146618
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/404eca19519e34460899dc41a301d1f5fc9c53eb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/404eca19519e34460899dc41a301d1f5fc9c53eb
index 01c401c15..01c401c15 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/404eca19519e34460899dc41a301d1f5fc9c53eb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/404eca19519e34460899dc41a301d1f5fc9c53eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/409f6f9009327924cf1668673b1534b4fd976164 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/409f6f9009327924cf1668673b1534b4fd976164
index ce20a3479..ce20a3479 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/409f6f9009327924cf1668673b1534b4fd976164
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/409f6f9009327924cf1668673b1534b4fd976164
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/40c7e752568aa125578b2fbcf5ca777bdf0149c8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/40c7e752568aa125578b2fbcf5ca777bdf0149c8
index 358e87cc8..358e87cc8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/40c7e752568aa125578b2fbcf5ca777bdf0149c8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/40c7e752568aa125578b2fbcf5ca777bdf0149c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/40f05f7fd3080c1733825cb9fcc610e009ce3bb3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/40f05f7fd3080c1733825cb9fcc610e009ce3bb3
index 3c1ad844b..3c1ad844b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/40f05f7fd3080c1733825cb9fcc610e009ce3bb3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/40f05f7fd3080c1733825cb9fcc610e009ce3bb3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/413cb21ec3ccaddadc72eba240cc400f240796a9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/413cb21ec3ccaddadc72eba240cc400f240796a9
index 004bfea62..004bfea62 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/413cb21ec3ccaddadc72eba240cc400f240796a9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/413cb21ec3ccaddadc72eba240cc400f240796a9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/415d6fdd287609084213405ffb298c94eef77fa1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/415d6fdd287609084213405ffb298c94eef77fa1
index 4bf22a128..4bf22a128 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/415d6fdd287609084213405ffb298c94eef77fa1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/415d6fdd287609084213405ffb298c94eef77fa1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/415f8c7be462f14c4b754e43d7979f02588d71e3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/415f8c7be462f14c4b754e43d7979f02588d71e3
index 72b282fde..72b282fde 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/415f8c7be462f14c4b754e43d7979f02588d71e3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/415f8c7be462f14c4b754e43d7979f02588d71e3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/41c41ab7cca7e15be91397c1941c99e1c84597a1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/41c41ab7cca7e15be91397c1941c99e1c84597a1
index 9863a815d..9863a815d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/41c41ab7cca7e15be91397c1941c99e1c84597a1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/41c41ab7cca7e15be91397c1941c99e1c84597a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/422318e49a607eacfa533d2c5d5e03393765c9b4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/422318e49a607eacfa533d2c5d5e03393765c9b4
index 5df997629..5df997629 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/422318e49a607eacfa533d2c5d5e03393765c9b4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/422318e49a607eacfa533d2c5d5e03393765c9b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/42300db369abc33283a253fdf5723f181513857e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/42300db369abc33283a253fdf5723f181513857e
index 3e1e4bb1f..3e1e4bb1f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/42300db369abc33283a253fdf5723f181513857e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/42300db369abc33283a253fdf5723f181513857e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/428dca89443910a39e1aaf647713d28311a1aa0c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/428dca89443910a39e1aaf647713d28311a1aa0c
index 76a06b939..76a06b939 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/428dca89443910a39e1aaf647713d28311a1aa0c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/428dca89443910a39e1aaf647713d28311a1aa0c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/42aca30ff82bec1963018b74aa2843701373ff00 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/42aca30ff82bec1963018b74aa2843701373ff00
index 7f5230ed8..7f5230ed8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/42aca30ff82bec1963018b74aa2843701373ff00
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/42aca30ff82bec1963018b74aa2843701373ff00
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/42ec2117a6872ba9c96468bfde00dbc089cc9278 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/42ec2117a6872ba9c96468bfde00dbc089cc9278
index b247dd4ff..b247dd4ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/42ec2117a6872ba9c96468bfde00dbc089cc9278
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/42ec2117a6872ba9c96468bfde00dbc089cc9278
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/431c82c5c959ee25c9d60e82e809bab3757f2656 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/431c82c5c959ee25c9d60e82e809bab3757f2656
index 3d59d05e4..3d59d05e4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/431c82c5c959ee25c9d60e82e809bab3757f2656
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/431c82c5c959ee25c9d60e82e809bab3757f2656
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/432c192b10f1e517e3ea1d460dc6c664dccdcbff b/src/web/server/h2o/libh2o/fuzz/http2-corpus/432c192b10f1e517e3ea1d460dc6c664dccdcbff
index cfcab6034..cfcab6034 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/432c192b10f1e517e3ea1d460dc6c664dccdcbff
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/432c192b10f1e517e3ea1d460dc6c664dccdcbff
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4339d524529d21cef9d1f897bda2f8cc8c8c053b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4339d524529d21cef9d1f897bda2f8cc8c8c053b
index 0cfc6006e..0cfc6006e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4339d524529d21cef9d1f897bda2f8cc8c8c053b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4339d524529d21cef9d1f897bda2f8cc8c8c053b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/43a6cc3d797e438f58fd0a7f7c07d08292559b30 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43a6cc3d797e438f58fd0a7f7c07d08292559b30
index 7d329a91e..7d329a91e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/43a6cc3d797e438f58fd0a7f7c07d08292559b30
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43a6cc3d797e438f58fd0a7f7c07d08292559b30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/43accbb2add765a3ce527ecdb6c2689762d9aa02 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43accbb2add765a3ce527ecdb6c2689762d9aa02
index 8c8a038cd..8c8a038cd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/43accbb2add765a3ce527ecdb6c2689762d9aa02
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43accbb2add765a3ce527ecdb6c2689762d9aa02
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/43ad00d64ad65a5181a752f58bf33834f01bb7ba b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43ad00d64ad65a5181a752f58bf33834f01bb7ba
index f6db03f97..f6db03f97 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/43ad00d64ad65a5181a752f58bf33834f01bb7ba
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43ad00d64ad65a5181a752f58bf33834f01bb7ba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/43d28d7bdaea8de4efc206171a4fbd19477f3cca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43d28d7bdaea8de4efc206171a4fbd19477f3cca
index 59e4db99e..59e4db99e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/43d28d7bdaea8de4efc206171a4fbd19477f3cca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/43d28d7bdaea8de4efc206171a4fbd19477f3cca
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/441a41186507d6328a9d4c1a9777435539cf510f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/441a41186507d6328a9d4c1a9777435539cf510f
index cc3c84a5f..cc3c84a5f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/441a41186507d6328a9d4c1a9777435539cf510f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/441a41186507d6328a9d4c1a9777435539cf510f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/444da9a7df5fcd55392540a919d86145358706d4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/444da9a7df5fcd55392540a919d86145358706d4
index bef32ffc7..bef32ffc7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/444da9a7df5fcd55392540a919d86145358706d4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/444da9a7df5fcd55392540a919d86145358706d4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/44bb6aef06544b57b07d5949046b91aba4aa593b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44bb6aef06544b57b07d5949046b91aba4aa593b
index 95c373e11..95c373e11 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/44bb6aef06544b57b07d5949046b91aba4aa593b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44bb6aef06544b57b07d5949046b91aba4aa593b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/44c3e8a182ac71a39545c11ffe8b4df8bf7ff822 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44c3e8a182ac71a39545c11ffe8b4df8bf7ff822
index 89df56b0b..89df56b0b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/44c3e8a182ac71a39545c11ffe8b4df8bf7ff822
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44c3e8a182ac71a39545c11ffe8b4df8bf7ff822
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/44d334cdda9ff0779f47eebaa718c82033d69938 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44d334cdda9ff0779f47eebaa718c82033d69938
index 043b1a208..043b1a208 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/44d334cdda9ff0779f47eebaa718c82033d69938
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44d334cdda9ff0779f47eebaa718c82033d69938
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/44e1786a273fbacbe6a1cc2c60dc4d68fb3fbce6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44e1786a273fbacbe6a1cc2c60dc4d68fb3fbce6
index 41a65e56f..41a65e56f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/44e1786a273fbacbe6a1cc2c60dc4d68fb3fbce6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44e1786a273fbacbe6a1cc2c60dc4d68fb3fbce6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/44f72d7e548feeaf687ba8d8a7527383c3d16988 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44f72d7e548feeaf687ba8d8a7527383c3d16988
index 7f86cb4a8..7f86cb4a8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/44f72d7e548feeaf687ba8d8a7527383c3d16988
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44f72d7e548feeaf687ba8d8a7527383c3d16988
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/44fc3ae1f11981b4c5c597e23e06d8f8a89bdefb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44fc3ae1f11981b4c5c597e23e06d8f8a89bdefb
index 42f65c93d..42f65c93d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/44fc3ae1f11981b4c5c597e23e06d8f8a89bdefb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/44fc3ae1f11981b4c5c597e23e06d8f8a89bdefb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4534d8455669f1e040ec267821325fd2300b1362 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4534d8455669f1e040ec267821325fd2300b1362
index bdaa5098f..bdaa5098f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4534d8455669f1e040ec267821325fd2300b1362
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4534d8455669f1e040ec267821325fd2300b1362
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/454928db526b0da0787eb5514b6a37a53b697f61 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/454928db526b0da0787eb5514b6a37a53b697f61
index 4cbbb5b23..4cbbb5b23 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/454928db526b0da0787eb5514b6a37a53b697f61
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/454928db526b0da0787eb5514b6a37a53b697f61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/45556ada34f5271d5aee22d75d12e0c69156453e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/45556ada34f5271d5aee22d75d12e0c69156453e
index 20e1e91a4..20e1e91a4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/45556ada34f5271d5aee22d75d12e0c69156453e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/45556ada34f5271d5aee22d75d12e0c69156453e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/458dfdb56d3d255a901d7803e2739f9ca5362e22 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/458dfdb56d3d255a901d7803e2739f9ca5362e22
index b0d8479d3..b0d8479d3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/458dfdb56d3d255a901d7803e2739f9ca5362e22
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/458dfdb56d3d255a901d7803e2739f9ca5362e22
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/45c838599b873413a4b5c2d6a4813acc0034eebc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/45c838599b873413a4b5c2d6a4813acc0034eebc
index 4aaf67a8d..4aaf67a8d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/45c838599b873413a4b5c2d6a4813acc0034eebc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/45c838599b873413a4b5c2d6a4813acc0034eebc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/45fc0f8e82cc1cb19ec95f120e9b8d3feb3aeccd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/45fc0f8e82cc1cb19ec95f120e9b8d3feb3aeccd
index 0591698d4..0591698d4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/45fc0f8e82cc1cb19ec95f120e9b8d3feb3aeccd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/45fc0f8e82cc1cb19ec95f120e9b8d3feb3aeccd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/465032600bb2457ddbc95ec67afa685c70c51d27 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/465032600bb2457ddbc95ec67afa685c70c51d27
index f44134226..f44134226 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/465032600bb2457ddbc95ec67afa685c70c51d27
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/465032600bb2457ddbc95ec67afa685c70c51d27
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/46a6878d4544b29c2362ba2dec9a8cc5ddbfe513 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/46a6878d4544b29c2362ba2dec9a8cc5ddbfe513
index 2e5c5278c..2e5c5278c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/46a6878d4544b29c2362ba2dec9a8cc5ddbfe513
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/46a6878d4544b29c2362ba2dec9a8cc5ddbfe513
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/46a7383e8bd1483acc77dc13fcdb238ab9249294 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/46a7383e8bd1483acc77dc13fcdb238ab9249294
index 0c5e7a9fd..0c5e7a9fd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/46a7383e8bd1483acc77dc13fcdb238ab9249294
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/46a7383e8bd1483acc77dc13fcdb238ab9249294
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/470ef1f0cf80bf9cdea9c8193567a64f520cc00a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/470ef1f0cf80bf9cdea9c8193567a64f520cc00a
index 01eeb8dc6..01eeb8dc6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/470ef1f0cf80bf9cdea9c8193567a64f520cc00a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/470ef1f0cf80bf9cdea9c8193567a64f520cc00a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4719163e21b94ed46d62cb326529f79b9ed45db4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4719163e21b94ed46d62cb326529f79b9ed45db4
index e54d394df..e54d394df 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4719163e21b94ed46d62cb326529f79b9ed45db4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4719163e21b94ed46d62cb326529f79b9ed45db4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/473231b7a186d03f5367209da01166859b4e9984 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/473231b7a186d03f5367209da01166859b4e9984
index f42f847e8..f42f847e8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/473231b7a186d03f5367209da01166859b4e9984
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/473231b7a186d03f5367209da01166859b4e9984
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/47542662be4b8369ffc811ab7f2942e9eaa8ac71 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/47542662be4b8369ffc811ab7f2942e9eaa8ac71
index caa367114..caa367114 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/47542662be4b8369ffc811ab7f2942e9eaa8ac71
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/47542662be4b8369ffc811ab7f2942e9eaa8ac71
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/47775a98484ed9a99419e9304d0a7d54d1f007b8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/47775a98484ed9a99419e9304d0a7d54d1f007b8
index f99daaea6..f99daaea6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/47775a98484ed9a99419e9304d0a7d54d1f007b8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/47775a98484ed9a99419e9304d0a7d54d1f007b8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/477f0db981468564913c884310c143d6796b52a8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/477f0db981468564913c884310c143d6796b52a8
index 0a5be016b..0a5be016b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/477f0db981468564913c884310c143d6796b52a8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/477f0db981468564913c884310c143d6796b52a8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83
index 8112fe0aa..8112fe0aa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/479a36f42163e08f9233fc9b81dc90ff0ed35b83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/47f63e4058d9dd8fcfac6e1d8ce965eda4be678b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/47f63e4058d9dd8fcfac6e1d8ce965eda4be678b
index 0924ed1dd..0924ed1dd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/47f63e4058d9dd8fcfac6e1d8ce965eda4be678b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/47f63e4058d9dd8fcfac6e1d8ce965eda4be678b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/48167f1bc1c05c6cfaa81dd6f0cf64d82cdaa2ca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/48167f1bc1c05c6cfaa81dd6f0cf64d82cdaa2ca
index e8ad3fcb0..e8ad3fcb0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/48167f1bc1c05c6cfaa81dd6f0cf64d82cdaa2ca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/48167f1bc1c05c6cfaa81dd6f0cf64d82cdaa2ca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/481c334295ddd6f998394cb92966b6a0195554fc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/481c334295ddd6f998394cb92966b6a0195554fc
index d78d0a106..d78d0a106 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/481c334295ddd6f998394cb92966b6a0195554fc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/481c334295ddd6f998394cb92966b6a0195554fc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/485a15ace20eb46e8b7277779492ef19f816a954 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/485a15ace20eb46e8b7277779492ef19f816a954
index fc0d60f3e..fc0d60f3e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/485a15ace20eb46e8b7277779492ef19f816a954
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/485a15ace20eb46e8b7277779492ef19f816a954
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/48a04fe491e73cad964b93d7d8ea6aeaca111e98 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/48a04fe491e73cad964b93d7d8ea6aeaca111e98
index a1524202b..a1524202b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/48a04fe491e73cad964b93d7d8ea6aeaca111e98
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/48a04fe491e73cad964b93d7d8ea6aeaca111e98
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/48d95eb8b60daa7ce7c9059a1c20606b9eec663f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/48d95eb8b60daa7ce7c9059a1c20606b9eec663f
index 8ee56a273..8ee56a273 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/48d95eb8b60daa7ce7c9059a1c20606b9eec663f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/48d95eb8b60daa7ce7c9059a1c20606b9eec663f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/49073b1ade7b0a5fb8f6b0de5236ae153bfb5dd4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49073b1ade7b0a5fb8f6b0de5236ae153bfb5dd4
index 8d028276b..8d028276b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/49073b1ade7b0a5fb8f6b0de5236ae153bfb5dd4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49073b1ade7b0a5fb8f6b0de5236ae153bfb5dd4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4917ce1ec5e99a58ee29fdd2e9f3d4e32ca1a4a1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4917ce1ec5e99a58ee29fdd2e9f3d4e32ca1a4a1
index fa763fa96..fa763fa96 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4917ce1ec5e99a58ee29fdd2e9f3d4e32ca1a4a1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4917ce1ec5e99a58ee29fdd2e9f3d4e32ca1a4a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/493f1e1c7d4b0e50a8c7b844abd43e38c827f4d4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/493f1e1c7d4b0e50a8c7b844abd43e38c827f4d4
index 7a4d50594..7a4d50594 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/493f1e1c7d4b0e50a8c7b844abd43e38c827f4d4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/493f1e1c7d4b0e50a8c7b844abd43e38c827f4d4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4943c8a05f9056b9c2951a0d53fe451066e72a28 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4943c8a05f9056b9c2951a0d53fe451066e72a28
index c626be438..c626be438 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4943c8a05f9056b9c2951a0d53fe451066e72a28
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4943c8a05f9056b9c2951a0d53fe451066e72a28
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4957fe1a7dae4c1f74c30248e0c4b738e335272f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4957fe1a7dae4c1f74c30248e0c4b738e335272f
index 1ec4d08dd..1ec4d08dd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4957fe1a7dae4c1f74c30248e0c4b738e335272f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4957fe1a7dae4c1f74c30248e0c4b738e335272f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/495c7eb01786baf502d305e0d1910cc7252402d0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/495c7eb01786baf502d305e0d1910cc7252402d0
index b99a470b6..b99a470b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/495c7eb01786baf502d305e0d1910cc7252402d0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/495c7eb01786baf502d305e0d1910cc7252402d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/498b5f4792cdbd45d9dcd0545aed53d63c926a3e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/498b5f4792cdbd45d9dcd0545aed53d63c926a3e
index 51b8c3a2d..51b8c3a2d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/498b5f4792cdbd45d9dcd0545aed53d63c926a3e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/498b5f4792cdbd45d9dcd0545aed53d63c926a3e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4990a29db922fc68411ae751317245dd998dab92 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4990a29db922fc68411ae751317245dd998dab92
index 9774861a5..9774861a5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4990a29db922fc68411ae751317245dd998dab92
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4990a29db922fc68411ae751317245dd998dab92
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/49980fc0fe0b68aae8fd8cc1b55a8cf6d11fba9b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49980fc0fe0b68aae8fd8cc1b55a8cf6d11fba9b
index 0ebd13d04..0ebd13d04 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/49980fc0fe0b68aae8fd8cc1b55a8cf6d11fba9b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49980fc0fe0b68aae8fd8cc1b55a8cf6d11fba9b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/49ba88de746b8be18aa295d1ad4619caee58d156 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49ba88de746b8be18aa295d1ad4619caee58d156
index 658c3ce1c..658c3ce1c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/49ba88de746b8be18aa295d1ad4619caee58d156
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49ba88de746b8be18aa295d1ad4619caee58d156
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca
index 70c20e075..70c20e075 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/49f77c722c04a960a61f21a531e17bc5310a8cca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4a44e7ea556983430a372721976be6eb5ddc5f76 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a44e7ea556983430a372721976be6eb5ddc5f76
index 751a11799..751a11799 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4a44e7ea556983430a372721976be6eb5ddc5f76
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a44e7ea556983430a372721976be6eb5ddc5f76
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4a6ca2345290f6eef23da1767bd7fb45b5d94a19 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a6ca2345290f6eef23da1767bd7fb45b5d94a19
index df8b75eea..df8b75eea 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4a6ca2345290f6eef23da1767bd7fb45b5d94a19
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a6ca2345290f6eef23da1767bd7fb45b5d94a19
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4a72ceac5e8d51f664caf8350222b389a6178fa0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a72ceac5e8d51f664caf8350222b389a6178fa0
index bb0f86453..bb0f86453 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4a72ceac5e8d51f664caf8350222b389a6178fa0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a72ceac5e8d51f664caf8350222b389a6178fa0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4a8283ecf7d23ca91ec75f2eddba59c978f6b2bf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a8283ecf7d23ca91ec75f2eddba59c978f6b2bf
index 726efca81..726efca81 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4a8283ecf7d23ca91ec75f2eddba59c978f6b2bf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4a8283ecf7d23ca91ec75f2eddba59c978f6b2bf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4ac2693ec2ffaa859379002c509406c92f7a68f0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4ac2693ec2ffaa859379002c509406c92f7a68f0
index 93e93e081..93e93e081 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4ac2693ec2ffaa859379002c509406c92f7a68f0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4ac2693ec2ffaa859379002c509406c92f7a68f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4acd7bb49bd7df52fa923fabcd13160e086f91f3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4acd7bb49bd7df52fa923fabcd13160e086f91f3
index 7fbd72b8d..7fbd72b8d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4acd7bb49bd7df52fa923fabcd13160e086f91f3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4acd7bb49bd7df52fa923fabcd13160e086f91f3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4b7406e01b2faced95c5234c67ff0254b6d9c533 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4b7406e01b2faced95c5234c67ff0254b6d9c533
index 1b27c2ceb..1b27c2ceb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4b7406e01b2faced95c5234c67ff0254b6d9c533
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4b7406e01b2faced95c5234c67ff0254b6d9c533
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4b800d6c6c454e7241949fc40459a8b307bf8a19 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4b800d6c6c454e7241949fc40459a8b307bf8a19
index 1ea919998..1ea919998 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4b800d6c6c454e7241949fc40459a8b307bf8a19
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4b800d6c6c454e7241949fc40459a8b307bf8a19
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4bbc6134d8cb3847db04549b13c650ba25cef4ea b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4bbc6134d8cb3847db04549b13c650ba25cef4ea
index 3ec7b8e2b..3ec7b8e2b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4bbc6134d8cb3847db04549b13c650ba25cef4ea
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4bbc6134d8cb3847db04549b13c650ba25cef4ea
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4c2d1bdf5e2c68093bbe2e6a417bd127664b45bc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c2d1bdf5e2c68093bbe2e6a417bd127664b45bc
index d38184f10..d38184f10 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4c2d1bdf5e2c68093bbe2e6a417bd127664b45bc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c2d1bdf5e2c68093bbe2e6a417bd127664b45bc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4c37a08fa7f93c63f79cdaa5c0376bb1588bbd17 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c37a08fa7f93c63f79cdaa5c0376bb1588bbd17
index 871a3bf10..871a3bf10 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4c37a08fa7f93c63f79cdaa5c0376bb1588bbd17
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c37a08fa7f93c63f79cdaa5c0376bb1588bbd17
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4c44f1a540cfbbd7d6ffebb685d2c6c2ef74e7cb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c44f1a540cfbbd7d6ffebb685d2c6c2ef74e7cb
index a38b38545..a38b38545 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4c44f1a540cfbbd7d6ffebb685d2c6c2ef74e7cb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c44f1a540cfbbd7d6ffebb685d2c6c2ef74e7cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4c5be675a7b7d23182c1938d84e45ab94607a957 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c5be675a7b7d23182c1938d84e45ab94607a957
index da3481ad7..da3481ad7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4c5be675a7b7d23182c1938d84e45ab94607a957
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c5be675a7b7d23182c1938d84e45ab94607a957
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4c7e2412a6b6cff23cf0be5f3d584f7b35e99763 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c7e2412a6b6cff23cf0be5f3d584f7b35e99763
index 63f547593..63f547593 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4c7e2412a6b6cff23cf0be5f3d584f7b35e99763
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c7e2412a6b6cff23cf0be5f3d584f7b35e99763
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4c83a71f4d94be43b3a9f2c13d81bff08b28378b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c83a71f4d94be43b3a9f2c13d81bff08b28378b
index efb4c0077..efb4c0077 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4c83a71f4d94be43b3a9f2c13d81bff08b28378b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c83a71f4d94be43b3a9f2c13d81bff08b28378b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4c895a3c55f489fbbb70fe9ed29fe0cde6b71b16 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c895a3c55f489fbbb70fe9ed29fe0cde6b71b16
index 167205ea0..167205ea0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4c895a3c55f489fbbb70fe9ed29fe0cde6b71b16
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4c895a3c55f489fbbb70fe9ed29fe0cde6b71b16
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4d12fd19fee08a4acc80aee3c9bcf62165630cf6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d12fd19fee08a4acc80aee3c9bcf62165630cf6
index 2c3bb7b8a..2c3bb7b8a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4d12fd19fee08a4acc80aee3c9bcf62165630cf6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d12fd19fee08a4acc80aee3c9bcf62165630cf6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4d19fcf8c3b42b2da318aefc7adbfc1ccfaf3a03 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d19fcf8c3b42b2da318aefc7adbfc1ccfaf3a03
index ac4b4d84f..ac4b4d84f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4d19fcf8c3b42b2da318aefc7adbfc1ccfaf3a03
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d19fcf8c3b42b2da318aefc7adbfc1ccfaf3a03
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4d3a603523d5e9a48a0cb9fe4983b1d5d74d0543 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d3a603523d5e9a48a0cb9fe4983b1d5d74d0543
index ccb1d9115..ccb1d9115 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4d3a603523d5e9a48a0cb9fe4983b1d5d74d0543
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d3a603523d5e9a48a0cb9fe4983b1d5d74d0543
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4d654d0523f7999c5864989f5b2e8c8d1ffa0bfa b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d654d0523f7999c5864989f5b2e8c8d1ffa0bfa
index fd993f0d1..fd993f0d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4d654d0523f7999c5864989f5b2e8c8d1ffa0bfa
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4d654d0523f7999c5864989f5b2e8c8d1ffa0bfa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4dbf5f89c1093d9c9ea40229d1ab6cd7f7f8c986 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4dbf5f89c1093d9c9ea40229d1ab6cd7f7f8c986
index 791883454..791883454 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4dbf5f89c1093d9c9ea40229d1ab6cd7f7f8c986
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4dbf5f89c1093d9c9ea40229d1ab6cd7f7f8c986
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4dc4bea19040093bedac3dcaf8b380fdd1eb6f2f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4dc4bea19040093bedac3dcaf8b380fdd1eb6f2f
index f4b00ce7f..f4b00ce7f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4dc4bea19040093bedac3dcaf8b380fdd1eb6f2f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4dc4bea19040093bedac3dcaf8b380fdd1eb6f2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4defd0bcf9c95347b8a3ec96901b9f05901a8fb5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4defd0bcf9c95347b8a3ec96901b9f05901a8fb5
index d5fe4fd63..d5fe4fd63 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4defd0bcf9c95347b8a3ec96901b9f05901a8fb5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4defd0bcf9c95347b8a3ec96901b9f05901a8fb5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4e23b47544b0bd89bf7bd5f70af0690c8e966b49 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e23b47544b0bd89bf7bd5f70af0690c8e966b49
index f661d1b95..f661d1b95 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4e23b47544b0bd89bf7bd5f70af0690c8e966b49
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e23b47544b0bd89bf7bd5f70af0690c8e966b49
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4e4b16f29033a0b9d644a9008b05ba35f1192e82 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e4b16f29033a0b9d644a9008b05ba35f1192e82
index 531059a04..531059a04 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4e4b16f29033a0b9d644a9008b05ba35f1192e82
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e4b16f29033a0b9d644a9008b05ba35f1192e82
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4e5bf2f8f2fcfe0f142563fd64a0b1f171e58914 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e5bf2f8f2fcfe0f142563fd64a0b1f171e58914
index f1f94862c..f1f94862c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4e5bf2f8f2fcfe0f142563fd64a0b1f171e58914
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e5bf2f8f2fcfe0f142563fd64a0b1f171e58914
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4e7c649cb00de0fa26881b8ffeb4fae93e5f3a6c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e7c649cb00de0fa26881b8ffeb4fae93e5f3a6c
index f10dd0d9e..f10dd0d9e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4e7c649cb00de0fa26881b8ffeb4fae93e5f3a6c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4e7c649cb00de0fa26881b8ffeb4fae93e5f3a6c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4f13a89e3d5aa870b95937f45669be3bc8794401 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f13a89e3d5aa870b95937f45669be3bc8794401
index 8b81632f1..8b81632f1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4f13a89e3d5aa870b95937f45669be3bc8794401
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f13a89e3d5aa870b95937f45669be3bc8794401
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4f41e3709814d8f28b61843104e47b3cc51c11f4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f41e3709814d8f28b61843104e47b3cc51c11f4
index ccef77bcb..ccef77bcb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4f41e3709814d8f28b61843104e47b3cc51c11f4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f41e3709814d8f28b61843104e47b3cc51c11f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4f6a428209cfde249f611dd8dbbde9b68de89abb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f6a428209cfde249f611dd8dbbde9b68de89abb
index faa27b213..faa27b213 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4f6a428209cfde249f611dd8dbbde9b68de89abb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f6a428209cfde249f611dd8dbbde9b68de89abb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4f78afd3f140d8f07e7897f2100bbd44cd746fd9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f78afd3f140d8f07e7897f2100bbd44cd746fd9
index cd0a371d9..cd0a371d9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4f78afd3f140d8f07e7897f2100bbd44cd746fd9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4f78afd3f140d8f07e7897f2100bbd44cd746fd9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4fb5de3760455afcbd7e7b39abf5cda6b8986151 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fb5de3760455afcbd7e7b39abf5cda6b8986151
index 793586187..793586187 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4fb5de3760455afcbd7e7b39abf5cda6b8986151
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fb5de3760455afcbd7e7b39abf5cda6b8986151
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4fb892dafb3fbcba3b40e4c31ea883814fa693e4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fb892dafb3fbcba3b40e4c31ea883814fa693e4
index 0ec30966b..0ec30966b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4fb892dafb3fbcba3b40e4c31ea883814fa693e4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fb892dafb3fbcba3b40e4c31ea883814fa693e4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4fc720c29231b995c79fe07bd2ac34ae65719a28 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fc720c29231b995c79fe07bd2ac34ae65719a28
index 49e35971b..49e35971b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4fc720c29231b995c79fe07bd2ac34ae65719a28
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fc720c29231b995c79fe07bd2ac34ae65719a28
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4fcf2a88ac32d07f0cf9aae7ad8884844afe3ce0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fcf2a88ac32d07f0cf9aae7ad8884844afe3ce0
index df3724aa9..df3724aa9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4fcf2a88ac32d07f0cf9aae7ad8884844afe3ce0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fcf2a88ac32d07f0cf9aae7ad8884844afe3ce0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4fdfd71753462210d7a3789d84431184e566115f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fdfd71753462210d7a3789d84431184e566115f
index e07413ca4..e07413ca4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4fdfd71753462210d7a3789d84431184e566115f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fdfd71753462210d7a3789d84431184e566115f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4fec63219e9e37afa57fac6c9defa0c15671b790 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fec63219e9e37afa57fac6c9defa0c15671b790
index 56ca52210..56ca52210 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4fec63219e9e37afa57fac6c9defa0c15671b790
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4fec63219e9e37afa57fac6c9defa0c15671b790
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/4ff9e2e39b56c1169b7945b8a2da40faf2f0f840 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4ff9e2e39b56c1169b7945b8a2da40faf2f0f840
index 01878f0a9..01878f0a9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/4ff9e2e39b56c1169b7945b8a2da40faf2f0f840
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/4ff9e2e39b56c1169b7945b8a2da40faf2f0f840
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5015c921d0b12469459905dc52299f7373c39ff8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5015c921d0b12469459905dc52299f7373c39ff8
index ed2f60c17..ed2f60c17 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5015c921d0b12469459905dc52299f7373c39ff8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5015c921d0b12469459905dc52299f7373c39ff8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/502d6759ac659d99834ed97dffefafa22ca58005 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/502d6759ac659d99834ed97dffefafa22ca58005
index 249edfffe..249edfffe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/502d6759ac659d99834ed97dffefafa22ca58005
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/502d6759ac659d99834ed97dffefafa22ca58005
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/50358ea58e22515acd70dce1ed98472a7d6f3886 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/50358ea58e22515acd70dce1ed98472a7d6f3886
index 16c92064f..16c92064f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/50358ea58e22515acd70dce1ed98472a7d6f3886
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/50358ea58e22515acd70dce1ed98472a7d6f3886
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/507cd9da9528e464c247e46330889e31466a9fb9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/507cd9da9528e464c247e46330889e31466a9fb9
index ae15b140b..ae15b140b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/507cd9da9528e464c247e46330889e31466a9fb9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/507cd9da9528e464c247e46330889e31466a9fb9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/50b67225db55c76e8749907875c90dfa8c9727fa b/src/web/server/h2o/libh2o/fuzz/http2-corpus/50b67225db55c76e8749907875c90dfa8c9727fa
index 371be182e..371be182e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/50b67225db55c76e8749907875c90dfa8c9727fa
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/50b67225db55c76e8749907875c90dfa8c9727fa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/51219308b6f04b2d2074196bae92caa416449d61 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51219308b6f04b2d2074196bae92caa416449d61
index e884d2e6c..e884d2e6c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/51219308b6f04b2d2074196bae92caa416449d61
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51219308b6f04b2d2074196bae92caa416449d61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/513749760e17ebce1c042b151186e60361c93432 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/513749760e17ebce1c042b151186e60361c93432
index b82e47b9b..b82e47b9b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/513749760e17ebce1c042b151186e60361c93432
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/513749760e17ebce1c042b151186e60361c93432
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/514c8bcb7744cf7321bf2065fee786269a634f1b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/514c8bcb7744cf7321bf2065fee786269a634f1b
index 9a17eaa8e..9a17eaa8e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/514c8bcb7744cf7321bf2065fee786269a634f1b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/514c8bcb7744cf7321bf2065fee786269a634f1b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/51aaea15de2bec221769f7fc2de11c0c578cdede b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51aaea15de2bec221769f7fc2de11c0c578cdede
index 084618ef0..084618ef0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/51aaea15de2bec221769f7fc2de11c0c578cdede
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51aaea15de2bec221769f7fc2de11c0c578cdede
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/51d36e40a9a2ff90dfd61636109d484d4c82a3a2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51d36e40a9a2ff90dfd61636109d484d4c82a3a2
index 7afbc716a..7afbc716a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/51d36e40a9a2ff90dfd61636109d484d4c82a3a2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51d36e40a9a2ff90dfd61636109d484d4c82a3a2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/51d68906c4b41c56743cfe7833374cd39fa4dd3d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51d68906c4b41c56743cfe7833374cd39fa4dd3d
index fa1c86402..fa1c86402 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/51d68906c4b41c56743cfe7833374cd39fa4dd3d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51d68906c4b41c56743cfe7833374cd39fa4dd3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/51e783b1723ed8b86ad9a978bbe006fa30fee413 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51e783b1723ed8b86ad9a978bbe006fa30fee413
index 62da5cd55..62da5cd55 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/51e783b1723ed8b86ad9a978bbe006fa30fee413
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/51e783b1723ed8b86ad9a978bbe006fa30fee413
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/52857f71ae48035d2d8cf0f3b68e1b909f06eab7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52857f71ae48035d2d8cf0f3b68e1b909f06eab7
index c97b581b9..c97b581b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/52857f71ae48035d2d8cf0f3b68e1b909f06eab7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52857f71ae48035d2d8cf0f3b68e1b909f06eab7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5289b102d7e25a8f63ff05172a7aed5f43e60702 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5289b102d7e25a8f63ff05172a7aed5f43e60702
index b23df2b1c..b23df2b1c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5289b102d7e25a8f63ff05172a7aed5f43e60702
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5289b102d7e25a8f63ff05172a7aed5f43e60702
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/52a48bbf66d53852364d29487ec9ffca7faf1615 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52a48bbf66d53852364d29487ec9ffca7faf1615
index 35bf3ba8f..35bf3ba8f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/52a48bbf66d53852364d29487ec9ffca7faf1615
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52a48bbf66d53852364d29487ec9ffca7faf1615
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/52a9ee2ad190fa1b4840c6a0f132db57bc8fcd62 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52a9ee2ad190fa1b4840c6a0f132db57bc8fcd62
index af5b2d17e..af5b2d17e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/52a9ee2ad190fa1b4840c6a0f132db57bc8fcd62
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52a9ee2ad190fa1b4840c6a0f132db57bc8fcd62
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/52b62220d6e438f9f73ba44b31dc0f71d5139e27 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52b62220d6e438f9f73ba44b31dc0f71d5139e27
index d069052a3..d069052a3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/52b62220d6e438f9f73ba44b31dc0f71d5139e27
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/52b62220d6e438f9f73ba44b31dc0f71d5139e27
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/531a548fc9e36f3bc2b79c09b10d32a91a6d67e3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/531a548fc9e36f3bc2b79c09b10d32a91a6d67e3
index 7e8c4074c..7e8c4074c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/531a548fc9e36f3bc2b79c09b10d32a91a6d67e3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/531a548fc9e36f3bc2b79c09b10d32a91a6d67e3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/536b36c69339ab0819126e0f6e71f42f9dac91e1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/536b36c69339ab0819126e0f6e71f42f9dac91e1
index 64ab98497..64ab98497 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/536b36c69339ab0819126e0f6e71f42f9dac91e1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/536b36c69339ab0819126e0f6e71f42f9dac91e1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/53848c610c0841100579d4a3e02d47dd0c9bfb4a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/53848c610c0841100579d4a3e02d47dd0c9bfb4a
index 838c86694..838c86694 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/53848c610c0841100579d4a3e02d47dd0c9bfb4a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/53848c610c0841100579d4a3e02d47dd0c9bfb4a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5387d7717b9e8e8255f1c63c3b2194f2364cdc14 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5387d7717b9e8e8255f1c63c3b2194f2364cdc14
index d46439296..d46439296 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5387d7717b9e8e8255f1c63c3b2194f2364cdc14
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5387d7717b9e8e8255f1c63c3b2194f2364cdc14
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/53faaf5da5103264717761c302f61b1285bc5313 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/53faaf5da5103264717761c302f61b1285bc5313
index 94efe6ee1..94efe6ee1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/53faaf5da5103264717761c302f61b1285bc5313
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/53faaf5da5103264717761c302f61b1285bc5313
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/54578e791ca4210287a0998b661f54b5e0be93b1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/54578e791ca4210287a0998b661f54b5e0be93b1
index aa0f36266..aa0f36266 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/54578e791ca4210287a0998b661f54b5e0be93b1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/54578e791ca4210287a0998b661f54b5e0be93b1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5469859f4014a4f383b43addee64a767111565ee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5469859f4014a4f383b43addee64a767111565ee
index 4aa43ef78..4aa43ef78 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5469859f4014a4f383b43addee64a767111565ee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5469859f4014a4f383b43addee64a767111565ee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/54bb2043ae274428aa289e0f9cfacb094d618940 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/54bb2043ae274428aa289e0f9cfacb094d618940
index b4baf592c..b4baf592c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/54bb2043ae274428aa289e0f9cfacb094d618940
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/54bb2043ae274428aa289e0f9cfacb094d618940
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/54f00ae542937c8dbf1c0424e9d6abef58ff58c4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/54f00ae542937c8dbf1c0424e9d6abef58ff58c4
index 4837d918f..4837d918f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/54f00ae542937c8dbf1c0424e9d6abef58ff58c4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/54f00ae542937c8dbf1c0424e9d6abef58ff58c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5538f271da1147104cf5432b28504b6b90ac39d0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5538f271da1147104cf5432b28504b6b90ac39d0
index a622752c8..a622752c8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5538f271da1147104cf5432b28504b6b90ac39d0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5538f271da1147104cf5432b28504b6b90ac39d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/553dcc4e0f7cc891361b279672252f5a4ffcfab8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/553dcc4e0f7cc891361b279672252f5a4ffcfab8
index 12845ba67..12845ba67 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/553dcc4e0f7cc891361b279672252f5a4ffcfab8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/553dcc4e0f7cc891361b279672252f5a4ffcfab8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5549f543467fd4a66c5c6111b67d52b18ce5048c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5549f543467fd4a66c5c6111b67d52b18ce5048c
index ed8b9f8a8..ed8b9f8a8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5549f543467fd4a66c5c6111b67d52b18ce5048c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5549f543467fd4a66c5c6111b67d52b18ce5048c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5574c5ce41b769be9c4294dd12d04d9538c4c2cc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5574c5ce41b769be9c4294dd12d04d9538c4c2cc
index 46405cab0..46405cab0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5574c5ce41b769be9c4294dd12d04d9538c4c2cc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5574c5ce41b769be9c4294dd12d04d9538c4c2cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/55812aec84145eaec905f13ce1b0fc39a371ffe4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/55812aec84145eaec905f13ce1b0fc39a371ffe4
index cedb5eb39..cedb5eb39 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/55812aec84145eaec905f13ce1b0fc39a371ffe4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/55812aec84145eaec905f13ce1b0fc39a371ffe4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/559905a80361479b5730fdc459ae1089361442d7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/559905a80361479b5730fdc459ae1089361442d7
index 6108d00e6..6108d00e6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/559905a80361479b5730fdc459ae1089361442d7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/559905a80361479b5730fdc459ae1089361442d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/559ea47690de639d68296b4336be4476fc1ae483 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/559ea47690de639d68296b4336be4476fc1ae483
index c195e1225..c195e1225 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/559ea47690de639d68296b4336be4476fc1ae483
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/559ea47690de639d68296b4336be4476fc1ae483
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/55b5a360ae09d76d6de114b35b8116204e302760 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/55b5a360ae09d76d6de114b35b8116204e302760
index e33a3b1c5..e33a3b1c5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/55b5a360ae09d76d6de114b35b8116204e302760
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/55b5a360ae09d76d6de114b35b8116204e302760
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/55e518e1f90a61e53129f0a73c0344285ddaf29f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/55e518e1f90a61e53129f0a73c0344285ddaf29f
index be28ec906..be28ec906 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/55e518e1f90a61e53129f0a73c0344285ddaf29f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/55e518e1f90a61e53129f0a73c0344285ddaf29f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/562366d5b85e4c4e06df184908c91d92f591a00a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/562366d5b85e4c4e06df184908c91d92f591a00a
index 92c71a3dc..92c71a3dc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/562366d5b85e4c4e06df184908c91d92f591a00a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/562366d5b85e4c4e06df184908c91d92f591a00a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/562b12a18c196c3795567af6bd7f5bc27782ac2e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/562b12a18c196c3795567af6bd7f5bc27782ac2e
index 635776e5d..635776e5d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/562b12a18c196c3795567af6bd7f5bc27782ac2e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/562b12a18c196c3795567af6bd7f5bc27782ac2e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/563c232c277ff97cd026cfe75d83b15ac36ece3b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/563c232c277ff97cd026cfe75d83b15ac36ece3b
index 22dee29cf..22dee29cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/563c232c277ff97cd026cfe75d83b15ac36ece3b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/563c232c277ff97cd026cfe75d83b15ac36ece3b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/56590213c0c71afdbf768e3a55649b447f71f517 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/56590213c0c71afdbf768e3a55649b447f71f517
index 2f75c647e..2f75c647e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/56590213c0c71afdbf768e3a55649b447f71f517
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/56590213c0c71afdbf768e3a55649b447f71f517
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/56641e56ec7aa677c9874efed9eedbdfde415b1f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/56641e56ec7aa677c9874efed9eedbdfde415b1f
index 36147d776..36147d776 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/56641e56ec7aa677c9874efed9eedbdfde415b1f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/56641e56ec7aa677c9874efed9eedbdfde415b1f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/567269475d3c4dbdb513d31a71a0aebab839d1b6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/567269475d3c4dbdb513d31a71a0aebab839d1b6
index cdc2f0b85..cdc2f0b85 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/567269475d3c4dbdb513d31a71a0aebab839d1b6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/567269475d3c4dbdb513d31a71a0aebab839d1b6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/568938014d21993b5a5f6bec185cb2726df2e7ce b/src/web/server/h2o/libh2o/fuzz/http2-corpus/568938014d21993b5a5f6bec185cb2726df2e7ce
index 4cacacf88..4cacacf88 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/568938014d21993b5a5f6bec185cb2726df2e7ce
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/568938014d21993b5a5f6bec185cb2726df2e7ce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/56b52ea2817609bc07cdfba3ddaf02451328f6bc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/56b52ea2817609bc07cdfba3ddaf02451328f6bc
index 62b6d6c05..62b6d6c05 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/56b52ea2817609bc07cdfba3ddaf02451328f6bc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/56b52ea2817609bc07cdfba3ddaf02451328f6bc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/571d6face3ebb2051e3d371fe87477b4e6f8a445 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/571d6face3ebb2051e3d371fe87477b4e6f8a445
index 8259d6eee..8259d6eee 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/571d6face3ebb2051e3d371fe87477b4e6f8a445
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/571d6face3ebb2051e3d371fe87477b4e6f8a445
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/572fa0f29e80ecacc525031e60521ca3538105de b/src/web/server/h2o/libh2o/fuzz/http2-corpus/572fa0f29e80ecacc525031e60521ca3538105de
index 4ab5ed67e..4ab5ed67e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/572fa0f29e80ecacc525031e60521ca3538105de
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/572fa0f29e80ecacc525031e60521ca3538105de
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/57598c5ab58cb564983c7fc87b0317179d7dd98d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/57598c5ab58cb564983c7fc87b0317179d7dd98d
index d9f7a3c45..d9f7a3c45 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/57598c5ab58cb564983c7fc87b0317179d7dd98d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/57598c5ab58cb564983c7fc87b0317179d7dd98d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/579cbafff9b000f2df9de173d9afd63af6de9a78 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/579cbafff9b000f2df9de173d9afd63af6de9a78
index 2f0c49f27..2f0c49f27 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/579cbafff9b000f2df9de173d9afd63af6de9a78
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/579cbafff9b000f2df9de173d9afd63af6de9a78
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/57c5c3715bf36159f5ae46d56d124bd046d27f74 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/57c5c3715bf36159f5ae46d56d124bd046d27f74
index 91890e1af..91890e1af 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/57c5c3715bf36159f5ae46d56d124bd046d27f74
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/57c5c3715bf36159f5ae46d56d124bd046d27f74
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/57e36d00ef25c453409ee41d851174162615b72b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/57e36d00ef25c453409ee41d851174162615b72b
index a78a1d291..a78a1d291 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/57e36d00ef25c453409ee41d851174162615b72b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/57e36d00ef25c453409ee41d851174162615b72b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/58107969e2f34685493191503d0fb225308f9e58 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58107969e2f34685493191503d0fb225308f9e58
index 75b7fa859..75b7fa859 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/58107969e2f34685493191503d0fb225308f9e58
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58107969e2f34685493191503d0fb225308f9e58
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5819be623f089aac93495f8979caec23371f2445 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5819be623f089aac93495f8979caec23371f2445
index a1ec35def..a1ec35def 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5819be623f089aac93495f8979caec23371f2445
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5819be623f089aac93495f8979caec23371f2445
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/58475a494b23827e103df01fdcf69f3d0e894f30 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58475a494b23827e103df01fdcf69f3d0e894f30
index 0a45a084d..0a45a084d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/58475a494b23827e103df01fdcf69f3d0e894f30
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58475a494b23827e103df01fdcf69f3d0e894f30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/588c4b7c05f092b0fd6f2242bcebbfd8c3a5475c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/588c4b7c05f092b0fd6f2242bcebbfd8c3a5475c
index e7769b8f0..e7769b8f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/588c4b7c05f092b0fd6f2242bcebbfd8c3a5475c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/588c4b7c05f092b0fd6f2242bcebbfd8c3a5475c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/58a166f7f86dfc1f50ea42ac4761ecbaa6c72ef8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58a166f7f86dfc1f50ea42ac4761ecbaa6c72ef8
index 41363f6ad..41363f6ad 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/58a166f7f86dfc1f50ea42ac4761ecbaa6c72ef8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58a166f7f86dfc1f50ea42ac4761ecbaa6c72ef8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/58c53a60376f88259f1eff9f4cc4a8b70cfaa29b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58c53a60376f88259f1eff9f4cc4a8b70cfaa29b
index 5a7636434..5a7636434 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/58c53a60376f88259f1eff9f4cc4a8b70cfaa29b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58c53a60376f88259f1eff9f4cc4a8b70cfaa29b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/58e559e583e5490f9b833f7e8d4ba6f3248aa621 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58e559e583e5490f9b833f7e8d4ba6f3248aa621
index 65c1c158b..65c1c158b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/58e559e583e5490f9b833f7e8d4ba6f3248aa621
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/58e559e583e5490f9b833f7e8d4ba6f3248aa621
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/591f12274daa80ddaa5ffff3740e01abaa02259d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/591f12274daa80ddaa5ffff3740e01abaa02259d
index b42234d87..b42234d87 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/591f12274daa80ddaa5ffff3740e01abaa02259d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/591f12274daa80ddaa5ffff3740e01abaa02259d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5977b51ff7ece0e0f0c7193a903bd2ec01875adb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5977b51ff7ece0e0f0c7193a903bd2ec01875adb
index d8ae1c126..d8ae1c126 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5977b51ff7ece0e0f0c7193a903bd2ec01875adb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5977b51ff7ece0e0f0c7193a903bd2ec01875adb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/597aec279ec668a91db03e293b3bb86ffa7f4438 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/597aec279ec668a91db03e293b3bb86ffa7f4438
index 7c300dc6e..7c300dc6e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/597aec279ec668a91db03e293b3bb86ffa7f4438
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/597aec279ec668a91db03e293b3bb86ffa7f4438
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5a0a6d3b8fd2563ca30b496feb37474426fbe455 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a0a6d3b8fd2563ca30b496feb37474426fbe455
index 69d9303e2..69d9303e2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5a0a6d3b8fd2563ca30b496feb37474426fbe455
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a0a6d3b8fd2563ca30b496feb37474426fbe455
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5a27dc3b09e64feb925768bbd66e7016e274ebf7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a27dc3b09e64feb925768bbd66e7016e274ebf7
index ad90bd961..ad90bd961 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5a27dc3b09e64feb925768bbd66e7016e274ebf7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a27dc3b09e64feb925768bbd66e7016e274ebf7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5a46381dbfc3d44a1ac4f1f781673cd9d408a8e2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a46381dbfc3d44a1ac4f1f781673cd9d408a8e2
index 29c48ec57..29c48ec57 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5a46381dbfc3d44a1ac4f1f781673cd9d408a8e2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a46381dbfc3d44a1ac4f1f781673cd9d408a8e2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5a68ac27ac68dbee818eccebefb8722d41cd98b6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a68ac27ac68dbee818eccebefb8722d41cd98b6
index 4c6ba127e..4c6ba127e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5a68ac27ac68dbee818eccebefb8722d41cd98b6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a68ac27ac68dbee818eccebefb8722d41cd98b6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5a7138c3a1aaefe63e0703972244aa13bcab1f03 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a7138c3a1aaefe63e0703972244aa13bcab1f03
index 33a8cea03..33a8cea03 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5a7138c3a1aaefe63e0703972244aa13bcab1f03
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5a7138c3a1aaefe63e0703972244aa13bcab1f03
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5ab02acc030f129ae9380593937d8f977b25ed66 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ab02acc030f129ae9380593937d8f977b25ed66
index fef0a001d..fef0a001d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5ab02acc030f129ae9380593937d8f977b25ed66
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ab02acc030f129ae9380593937d8f977b25ed66
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5ad5a0a0b69641dd8aec8fdf324a206cf2a6ad82 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ad5a0a0b69641dd8aec8fdf324a206cf2a6ad82
index 5aa3298be..5aa3298be 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5ad5a0a0b69641dd8aec8fdf324a206cf2a6ad82
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ad5a0a0b69641dd8aec8fdf324a206cf2a6ad82
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5b6dbf0ad3bc61b3f781fe3321f6af39f74224c4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5b6dbf0ad3bc61b3f781fe3321f6af39f74224c4
index 6d84a8566..6d84a8566 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5b6dbf0ad3bc61b3f781fe3321f6af39f74224c4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5b6dbf0ad3bc61b3f781fe3321f6af39f74224c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5b8ec1dcc327e9c4765748d96a545bcde0ace9d0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5b8ec1dcc327e9c4765748d96a545bcde0ace9d0
index 2a41fb71c..2a41fb71c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5b8ec1dcc327e9c4765748d96a545bcde0ace9d0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5b8ec1dcc327e9c4765748d96a545bcde0ace9d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5bc9e17a775facd0ae67d9375f9e479fc643c85d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5bc9e17a775facd0ae67d9375f9e479fc643c85d
index 0ed72811d..0ed72811d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5bc9e17a775facd0ae67d9375f9e479fc643c85d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5bc9e17a775facd0ae67d9375f9e479fc643c85d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5c189e7bba5a756ded885284a35fc19ef08e8971 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5c189e7bba5a756ded885284a35fc19ef08e8971
index 4bf2054fe..4bf2054fe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5c189e7bba5a756ded885284a35fc19ef08e8971
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5c189e7bba5a756ded885284a35fc19ef08e8971
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5c7c2f522c46da367534d1150bbe19b78f838728 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5c7c2f522c46da367534d1150bbe19b78f838728
index 34aa7d7f4..34aa7d7f4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5c7c2f522c46da367534d1150bbe19b78f838728
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5c7c2f522c46da367534d1150bbe19b78f838728
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5d2245e53b003bb2bf5850296bc6499cc5451660 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5d2245e53b003bb2bf5850296bc6499cc5451660
index 5f474ccdf..5f474ccdf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5d2245e53b003bb2bf5850296bc6499cc5451660
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5d2245e53b003bb2bf5850296bc6499cc5451660
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5d76f9fb0640aa33a88f608ecbbfc1c8eefde977 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5d76f9fb0640aa33a88f608ecbbfc1c8eefde977
index 4cb276e30..4cb276e30 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5d76f9fb0640aa33a88f608ecbbfc1c8eefde977
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5d76f9fb0640aa33a88f608ecbbfc1c8eefde977
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5e2bd0810b464c2cfbb308eace9c7dac8a68cc3d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5e2bd0810b464c2cfbb308eace9c7dac8a68cc3d
index a555db371..a555db371 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5e2bd0810b464c2cfbb308eace9c7dac8a68cc3d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5e2bd0810b464c2cfbb308eace9c7dac8a68cc3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5e3c9dc3fd71bcad49e24cbd6291baa88afcd8d1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5e3c9dc3fd71bcad49e24cbd6291baa88afcd8d1
index c9c1af88e..c9c1af88e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5e3c9dc3fd71bcad49e24cbd6291baa88afcd8d1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5e3c9dc3fd71bcad49e24cbd6291baa88afcd8d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5e640cc70859a629d6d0879b094be8d8c61a60d3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5e640cc70859a629d6d0879b094be8d8c61a60d3
index 03f504c83..03f504c83 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5e640cc70859a629d6d0879b094be8d8c61a60d3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5e640cc70859a629d6d0879b094be8d8c61a60d3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5ea0eabe52866948cc119ba299ff27d06e565d3f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ea0eabe52866948cc119ba299ff27d06e565d3f
index e736c3c81..e736c3c81 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5ea0eabe52866948cc119ba299ff27d06e565d3f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ea0eabe52866948cc119ba299ff27d06e565d3f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5eecf000487e2bbad2f286368c698972a80089f3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5eecf000487e2bbad2f286368c698972a80089f3
index c75c73e54..c75c73e54 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5eecf000487e2bbad2f286368c698972a80089f3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5eecf000487e2bbad2f286368c698972a80089f3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5ef52706065fba6606e9ef5b42211348043b678e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ef52706065fba6606e9ef5b42211348043b678e
index f26dadb9b..f26dadb9b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5ef52706065fba6606e9ef5b42211348043b678e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5ef52706065fba6606e9ef5b42211348043b678e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5f145e8a3a786d61da9143577c3b420dca61bc83 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5f145e8a3a786d61da9143577c3b420dca61bc83
index 052bc5f2f..052bc5f2f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5f145e8a3a786d61da9143577c3b420dca61bc83
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5f145e8a3a786d61da9143577c3b420dca61bc83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5f564622635285e9130c2c992f0c0bdbc56603c6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5f564622635285e9130c2c992f0c0bdbc56603c6
index 152ceb076..152ceb076 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5f564622635285e9130c2c992f0c0bdbc56603c6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5f564622635285e9130c2c992f0c0bdbc56603c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5feb478f1d94bd1e3c46ca3cb918c99ad595fb32 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5feb478f1d94bd1e3c46ca3cb918c99ad595fb32
index ad24bc98a..ad24bc98a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5feb478f1d94bd1e3c46ca3cb918c99ad595fb32
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5feb478f1d94bd1e3c46ca3cb918c99ad595fb32
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/5feb4cd41dadb87fca3b5d845c0becdbab4d92e9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5feb4cd41dadb87fca3b5d845c0becdbab4d92e9
index 7a3562ae6..7a3562ae6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/5feb4cd41dadb87fca3b5d845c0becdbab4d92e9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/5feb4cd41dadb87fca3b5d845c0becdbab4d92e9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/601c16de34a9ac7776c4cca3247a1381707d1415 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/601c16de34a9ac7776c4cca3247a1381707d1415
index 264f5937c..264f5937c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/601c16de34a9ac7776c4cca3247a1381707d1415
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/601c16de34a9ac7776c4cca3247a1381707d1415
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/60254c425dff40717188dcf4e4e0d53bcf671753 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/60254c425dff40717188dcf4e4e0d53bcf671753
index 5fcc271fd..5fcc271fd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/60254c425dff40717188dcf4e4e0d53bcf671753
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/60254c425dff40717188dcf4e4e0d53bcf671753
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6065ba18b987a42f744a6df32f8ff0c58e90d6ec b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6065ba18b987a42f744a6df32f8ff0c58e90d6ec
index 1a7f0f078..1a7f0f078 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6065ba18b987a42f744a6df32f8ff0c58e90d6ec
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6065ba18b987a42f744a6df32f8ff0c58e90d6ec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/607d52c62515a7c195ba0ec0e463a65a115dbd7e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/607d52c62515a7c195ba0ec0e463a65a115dbd7e
index 6f0341868..6f0341868 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/607d52c62515a7c195ba0ec0e463a65a115dbd7e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/607d52c62515a7c195ba0ec0e463a65a115dbd7e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/60ff1f73d7ba44917366ad9ddd1824d45a5c1428 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/60ff1f73d7ba44917366ad9ddd1824d45a5c1428
index d2feffbf5..d2feffbf5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/60ff1f73d7ba44917366ad9ddd1824d45a5c1428
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/60ff1f73d7ba44917366ad9ddd1824d45a5c1428
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78
index 3db4340c1..3db4340c1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/613831ea2b74dfd18bfe26f04ee3e447ca6e3b78
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/614ef3bdf824bca993178a9facef1889c4455e92 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/614ef3bdf824bca993178a9facef1889c4455e92
index 5df194815..5df194815 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/614ef3bdf824bca993178a9facef1889c4455e92
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/614ef3bdf824bca993178a9facef1889c4455e92
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6176fd81784e966e792a9ce85e9781028bd94ed0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6176fd81784e966e792a9ce85e9781028bd94ed0
index 6c715234a..6c715234a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6176fd81784e966e792a9ce85e9781028bd94ed0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6176fd81784e966e792a9ce85e9781028bd94ed0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/61a706ba322adb87da597dfec02c02ee2896b622 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/61a706ba322adb87da597dfec02c02ee2896b622
index 020ac841c..020ac841c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/61a706ba322adb87da597dfec02c02ee2896b622
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/61a706ba322adb87da597dfec02c02ee2896b622
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/61cf54cc38dd97bd8ef42137eefaf8470ac0b306 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/61cf54cc38dd97bd8ef42137eefaf8470ac0b306
index b3d505a8a..b3d505a8a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/61cf54cc38dd97bd8ef42137eefaf8470ac0b306
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/61cf54cc38dd97bd8ef42137eefaf8470ac0b306
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/61fc5888c4cf538f9ae82990813cd79c76040548 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/61fc5888c4cf538f9ae82990813cd79c76040548
index 8ae3fba15..8ae3fba15 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/61fc5888c4cf538f9ae82990813cd79c76040548
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/61fc5888c4cf538f9ae82990813cd79c76040548
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/62858480bd0d87ddf8f012142a52a21d8966bb30 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62858480bd0d87ddf8f012142a52a21d8966bb30
index 22ec02ef3..22ec02ef3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/62858480bd0d87ddf8f012142a52a21d8966bb30
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62858480bd0d87ddf8f012142a52a21d8966bb30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/62aeadd6f7138af653210601181cd00ac4c89471 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62aeadd6f7138af653210601181cd00ac4c89471
index 8208441cf..8208441cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/62aeadd6f7138af653210601181cd00ac4c89471
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62aeadd6f7138af653210601181cd00ac4c89471
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/62bc3b8e2884b5c81f147323f4e8daab4262eacb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62bc3b8e2884b5c81f147323f4e8daab4262eacb
index d4ec25912..d4ec25912 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/62bc3b8e2884b5c81f147323f4e8daab4262eacb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62bc3b8e2884b5c81f147323f4e8daab4262eacb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/62ce1c19f53eacc354d33c333c3b066be90e7ec1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62ce1c19f53eacc354d33c333c3b066be90e7ec1
index 0119e82c4..0119e82c4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/62ce1c19f53eacc354d33c333c3b066be90e7ec1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62ce1c19f53eacc354d33c333c3b066be90e7ec1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/62d0d6bff3964af954f9276a46d3fe7c068cb479 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62d0d6bff3964af954f9276a46d3fe7c068cb479
index a4bd94b04..a4bd94b04 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/62d0d6bff3964af954f9276a46d3fe7c068cb479
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62d0d6bff3964af954f9276a46d3fe7c068cb479
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/62fedb2944680379301979bc7445bd1600e41bbc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62fedb2944680379301979bc7445bd1600e41bbc
index 757f59d59..757f59d59 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/62fedb2944680379301979bc7445bd1600e41bbc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/62fedb2944680379301979bc7445bd1600e41bbc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/63052a9c3756f7f5ee52148d26815fb9f34984e3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63052a9c3756f7f5ee52148d26815fb9f34984e3
index b387e797c..b387e797c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/63052a9c3756f7f5ee52148d26815fb9f34984e3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63052a9c3756f7f5ee52148d26815fb9f34984e3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/63110246a1c06ced129349625f530b26ec31dd9e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63110246a1c06ced129349625f530b26ec31dd9e
index 371fddd0d..371fddd0d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/63110246a1c06ced129349625f530b26ec31dd9e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63110246a1c06ced129349625f530b26ec31dd9e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6349aeda6d7fe03970ff0289db5ae74e13aeeb1f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6349aeda6d7fe03970ff0289db5ae74e13aeeb1f
index 9d6e43538..9d6e43538 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6349aeda6d7fe03970ff0289db5ae74e13aeeb1f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6349aeda6d7fe03970ff0289db5ae74e13aeeb1f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6359880dcbe029334e3ca8fd88e8a7e44077f327 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6359880dcbe029334e3ca8fd88e8a7e44077f327
index acfa564df..acfa564df 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6359880dcbe029334e3ca8fd88e8a7e44077f327
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6359880dcbe029334e3ca8fd88e8a7e44077f327
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/63d20ec2e20f1b581eb855bd74b59826a321a84a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63d20ec2e20f1b581eb855bd74b59826a321a84a
index 3d0256a22..3d0256a22 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/63d20ec2e20f1b581eb855bd74b59826a321a84a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63d20ec2e20f1b581eb855bd74b59826a321a84a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/63fdd84e12bba6dc1177600458f0b942c40fdddd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63fdd84e12bba6dc1177600458f0b942c40fdddd
index 8dfc559f7..8dfc559f7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/63fdd84e12bba6dc1177600458f0b942c40fdddd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/63fdd84e12bba6dc1177600458f0b942c40fdddd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/653046a1c7f08348c19b29cdb4d615cf32bd0a9d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/653046a1c7f08348c19b29cdb4d615cf32bd0a9d
index 1801c864f..1801c864f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/653046a1c7f08348c19b29cdb4d615cf32bd0a9d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/653046a1c7f08348c19b29cdb4d615cf32bd0a9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/65d1329b350e9b8632b2c17df25aaa5a624c3adc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/65d1329b350e9b8632b2c17df25aaa5a624c3adc
index 477414b9f..477414b9f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/65d1329b350e9b8632b2c17df25aaa5a624c3adc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/65d1329b350e9b8632b2c17df25aaa5a624c3adc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/65ec8cfda856d454e6942fa83d9e698fd7c738f5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/65ec8cfda856d454e6942fa83d9e698fd7c738f5
index b102d8fb9..b102d8fb9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/65ec8cfda856d454e6942fa83d9e698fd7c738f5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/65ec8cfda856d454e6942fa83d9e698fd7c738f5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6631f3eac92c44befd248285a2db075e3db55de7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6631f3eac92c44befd248285a2db075e3db55de7
index 206ae40f3..206ae40f3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6631f3eac92c44befd248285a2db075e3db55de7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6631f3eac92c44befd248285a2db075e3db55de7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/664dec3816d669c59d3319050f9b96507859ddab b/src/web/server/h2o/libh2o/fuzz/http2-corpus/664dec3816d669c59d3319050f9b96507859ddab
index 8ed645714..8ed645714 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/664dec3816d669c59d3319050f9b96507859ddab
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/664dec3816d669c59d3319050f9b96507859ddab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/66a61f49976882048ac66c63af1439b7f11c5352 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66a61f49976882048ac66c63af1439b7f11c5352
index 8cf1c0a23..8cf1c0a23 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/66a61f49976882048ac66c63af1439b7f11c5352
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66a61f49976882048ac66c63af1439b7f11c5352
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1
index 15973d5a1..15973d5a1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66a93e7cdaff3766d84c9542ec669816c9545af1
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/66c466a6ef7c71799d52076bb266d0ab771d33dd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66c466a6ef7c71799d52076bb266d0ab771d33dd
index cb6d80e3c..cb6d80e3c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/66c466a6ef7c71799d52076bb266d0ab771d33dd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66c466a6ef7c71799d52076bb266d0ab771d33dd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/66c6f729430f04f3d3c9fa313e06870aa04bf55b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66c6f729430f04f3d3c9fa313e06870aa04bf55b
index 27c68262d..27c68262d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/66c6f729430f04f3d3c9fa313e06870aa04bf55b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66c6f729430f04f3d3c9fa313e06870aa04bf55b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/66f93756a26e74dfe1f8bc639cd01ef2f35d907b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66f93756a26e74dfe1f8bc639cd01ef2f35d907b
index be123405b..be123405b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/66f93756a26e74dfe1f8bc639cd01ef2f35d907b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66f93756a26e74dfe1f8bc639cd01ef2f35d907b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/66f9e68b3430b99e9157b057d3e3962b9f362dab b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66f9e68b3430b99e9157b057d3e3962b9f362dab
index fffe69033..fffe69033 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/66f9e68b3430b99e9157b057d3e3962b9f362dab
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/66f9e68b3430b99e9157b057d3e3962b9f362dab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/671a1cc87aa1a8b4a6b0d25ef1121115a2c86476 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/671a1cc87aa1a8b4a6b0d25ef1121115a2c86476
index 0d8dd6192..0d8dd6192 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/671a1cc87aa1a8b4a6b0d25ef1121115a2c86476
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/671a1cc87aa1a8b4a6b0d25ef1121115a2c86476
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6770df412608b3641b995587dea34c621c4732c0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6770df412608b3641b995587dea34c621c4732c0
index 5338ce29b..5338ce29b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6770df412608b3641b995587dea34c621c4732c0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6770df412608b3641b995587dea34c621c4732c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/67913ce6b25d2f5e581434fe4ea14b5ee541c71a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/67913ce6b25d2f5e581434fe4ea14b5ee541c71a
index c851b1f96..c851b1f96 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/67913ce6b25d2f5e581434fe4ea14b5ee541c71a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/67913ce6b25d2f5e581434fe4ea14b5ee541c71a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/67ab141f85d6e894008fed96e34e232a584a32ef b/src/web/server/h2o/libh2o/fuzz/http2-corpus/67ab141f85d6e894008fed96e34e232a584a32ef
index 4d9a0e29d..4d9a0e29d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/67ab141f85d6e894008fed96e34e232a584a32ef
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/67ab141f85d6e894008fed96e34e232a584a32ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/67e3209e1329f3808333cd60a401de2dc58b6c9a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/67e3209e1329f3808333cd60a401de2dc58b6c9a
index d584ceaaf..d584ceaaf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/67e3209e1329f3808333cd60a401de2dc58b6c9a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/67e3209e1329f3808333cd60a401de2dc58b6c9a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/680fa9f421ece89ad316ea74f661a19820e21306 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/680fa9f421ece89ad316ea74f661a19820e21306
index 20aeac247..20aeac247 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/680fa9f421ece89ad316ea74f661a19820e21306
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/680fa9f421ece89ad316ea74f661a19820e21306
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6813e57763faf730bf824dd3e4db78ad7bf27837 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6813e57763faf730bf824dd3e4db78ad7bf27837
index 315679448..315679448 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6813e57763faf730bf824dd3e4db78ad7bf27837
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6813e57763faf730bf824dd3e4db78ad7bf27837
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/686362648cd169021198e09ae1f131e5a653c985 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/686362648cd169021198e09ae1f131e5a653c985
index 28976c5fa..28976c5fa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/686362648cd169021198e09ae1f131e5a653c985
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/686362648cd169021198e09ae1f131e5a653c985
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6873b0464bf6d4c500c0c8a0139a7d45e45b4d3f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6873b0464bf6d4c500c0c8a0139a7d45e45b4d3f
index 5efd83814..5efd83814 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6873b0464bf6d4c500c0c8a0139a7d45e45b4d3f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6873b0464bf6d4c500c0c8a0139a7d45e45b4d3f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/68a1173d7e81742ee3ac37a8a574dc8daf8a415e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/68a1173d7e81742ee3ac37a8a574dc8daf8a415e
index 205a0e9b4..205a0e9b4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/68a1173d7e81742ee3ac37a8a574dc8daf8a415e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/68a1173d7e81742ee3ac37a8a574dc8daf8a415e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/68d6ca0d6d00d2767c44bebb2977f64dd2c5bf81 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/68d6ca0d6d00d2767c44bebb2977f64dd2c5bf81
index 6eac42104..6eac42104 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/68d6ca0d6d00d2767c44bebb2977f64dd2c5bf81
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/68d6ca0d6d00d2767c44bebb2977f64dd2c5bf81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/68deb7f03cc9ead6e11d101ff5a255c88049eb2a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/68deb7f03cc9ead6e11d101ff5a255c88049eb2a
index cd2c70e98..cd2c70e98 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/68deb7f03cc9ead6e11d101ff5a255c88049eb2a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/68deb7f03cc9ead6e11d101ff5a255c88049eb2a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/691178c6705cb1f13f6edbfe252ebc3cf8e7030a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/691178c6705cb1f13f6edbfe252ebc3cf8e7030a
index 60499417b..60499417b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/691178c6705cb1f13f6edbfe252ebc3cf8e7030a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/691178c6705cb1f13f6edbfe252ebc3cf8e7030a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6960bea717a598984a67ddbabd011487ccb82836 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6960bea717a598984a67ddbabd011487ccb82836
index 29d66c2f2..29d66c2f2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6960bea717a598984a67ddbabd011487ccb82836
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6960bea717a598984a67ddbabd011487ccb82836
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/697d061d07336b4adc239abd3dc17101526f3449 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/697d061d07336b4adc239abd3dc17101526f3449
index 229365c35..229365c35 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/697d061d07336b4adc239abd3dc17101526f3449
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/697d061d07336b4adc239abd3dc17101526f3449
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/697e69f77c3a4b2b700c3a48a396fc1ade5e29f6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/697e69f77c3a4b2b700c3a48a396fc1ade5e29f6
index d304f46eb..d304f46eb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/697e69f77c3a4b2b700c3a48a396fc1ade5e29f6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/697e69f77c3a4b2b700c3a48a396fc1ade5e29f6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6985ceb74e4be435455fdc3eecc8821584499f6d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6985ceb74e4be435455fdc3eecc8821584499f6d
index b6169546b..b6169546b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6985ceb74e4be435455fdc3eecc8821584499f6d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6985ceb74e4be435455fdc3eecc8821584499f6d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/698a4bd62eeb5f78473edab579c2c1be9bb588ee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/698a4bd62eeb5f78473edab579c2c1be9bb588ee
index 34d58dd53..34d58dd53 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/698a4bd62eeb5f78473edab579c2c1be9bb588ee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/698a4bd62eeb5f78473edab579c2c1be9bb588ee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/699f419f22cd776e0d84e6ae38beb87d6f7de7e7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/699f419f22cd776e0d84e6ae38beb87d6f7de7e7
index 8ec035df3..8ec035df3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/699f419f22cd776e0d84e6ae38beb87d6f7de7e7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/699f419f22cd776e0d84e6ae38beb87d6f7de7e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/69a3a27c560588a4f7d2bf70cc9d312b5fa8c426 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/69a3a27c560588a4f7d2bf70cc9d312b5fa8c426
index 5bdda6ffe..5bdda6ffe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/69a3a27c560588a4f7d2bf70cc9d312b5fa8c426
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/69a3a27c560588a4f7d2bf70cc9d312b5fa8c426
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/69b189c4f2b3a107e443b7d79413b5c95c6c6e94 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/69b189c4f2b3a107e443b7d79413b5c95c6c6e94
index aa5ae3783..aa5ae3783 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/69b189c4f2b3a107e443b7d79413b5c95c6c6e94
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/69b189c4f2b3a107e443b7d79413b5c95c6c6e94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/69cda0f7f78d9ac16d8400eb0b1d17294961545a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/69cda0f7f78d9ac16d8400eb0b1d17294961545a
index 0fcdafc80..0fcdafc80 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/69cda0f7f78d9ac16d8400eb0b1d17294961545a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/69cda0f7f78d9ac16d8400eb0b1d17294961545a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6a33dd9efb1dc1d8c23627f051f637f584f48c56 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6a33dd9efb1dc1d8c23627f051f637f584f48c56
index 1730494f0..1730494f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6a33dd9efb1dc1d8c23627f051f637f584f48c56
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6a33dd9efb1dc1d8c23627f051f637f584f48c56
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6a4a425a4c0d490efbd8f9a8891fa5545cf28a34 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6a4a425a4c0d490efbd8f9a8891fa5545cf28a34
index 6924496f2..6924496f2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6a4a425a4c0d490efbd8f9a8891fa5545cf28a34
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6a4a425a4c0d490efbd8f9a8891fa5545cf28a34
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6a8f5f20dc7bc2d575320a04d821139c512acb0b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6a8f5f20dc7bc2d575320a04d821139c512acb0b
index 4b2728b85..4b2728b85 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6a8f5f20dc7bc2d575320a04d821139c512acb0b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6a8f5f20dc7bc2d575320a04d821139c512acb0b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6ab0a4b8826fb1bf266c79ffd4bd968f7e474bf8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6ab0a4b8826fb1bf266c79ffd4bd968f7e474bf8
index 8290cc35b..8290cc35b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6ab0a4b8826fb1bf266c79ffd4bd968f7e474bf8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6ab0a4b8826fb1bf266c79ffd4bd968f7e474bf8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6b060334a7159f40e80d046b74676ee1e2a41c80 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b060334a7159f40e80d046b74676ee1e2a41c80
index 0b9935f85..0b9935f85 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6b060334a7159f40e80d046b74676ee1e2a41c80
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b060334a7159f40e80d046b74676ee1e2a41c80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6b2b0180bd2e13be6bcad3dc1df2666bf35b9adc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b2b0180bd2e13be6bcad3dc1df2666bf35b9adc
index 97690a4c1..97690a4c1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6b2b0180bd2e13be6bcad3dc1df2666bf35b9adc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b2b0180bd2e13be6bcad3dc1df2666bf35b9adc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6b3e808a51c0f2cda43c1dfdd368f03d7d0600b8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b3e808a51c0f2cda43c1dfdd368f03d7d0600b8
index a74fff8be..a74fff8be 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6b3e808a51c0f2cda43c1dfdd368f03d7d0600b8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b3e808a51c0f2cda43c1dfdd368f03d7d0600b8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6b4c2fc4a7c204374444b7c5a62698f305b61832 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b4c2fc4a7c204374444b7c5a62698f305b61832
index 3b4917d13..3b4917d13 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6b4c2fc4a7c204374444b7c5a62698f305b61832
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6b4c2fc4a7c204374444b7c5a62698f305b61832
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6bc6f0c3c1cd3291db9fc9b23c2de44bdcfd9c73 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6bc6f0c3c1cd3291db9fc9b23c2de44bdcfd9c73
index 2d0b3a97e..2d0b3a97e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6bc6f0c3c1cd3291db9fc9b23c2de44bdcfd9c73
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6bc6f0c3c1cd3291db9fc9b23c2de44bdcfd9c73
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6c0e0320535946f182b7a139f52a175851efccdd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c0e0320535946f182b7a139f52a175851efccdd
index 2e0f251e7..2e0f251e7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6c0e0320535946f182b7a139f52a175851efccdd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c0e0320535946f182b7a139f52a175851efccdd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6c19bddd71599aec4f0c9d50abf69fa5ae534352 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c19bddd71599aec4f0c9d50abf69fa5ae534352
index fe4f51637..fe4f51637 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6c19bddd71599aec4f0c9d50abf69fa5ae534352
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c19bddd71599aec4f0c9d50abf69fa5ae534352
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6c26a676525d4abbf51d77f62df44eba28770d4e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c26a676525d4abbf51d77f62df44eba28770d4e
index dc789abc9..dc789abc9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6c26a676525d4abbf51d77f62df44eba28770d4e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c26a676525d4abbf51d77f62df44eba28770d4e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6c7202e3c0a205d38927fa085e868adcbded1375 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c7202e3c0a205d38927fa085e868adcbded1375
index 813023a38..813023a38 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6c7202e3c0a205d38927fa085e868adcbded1375
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6c7202e3c0a205d38927fa085e868adcbded1375
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6cc8b8623dcd6e4f94e63c5f341b13875f067537 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6cc8b8623dcd6e4f94e63c5f341b13875f067537
index c6c09890a..c6c09890a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6cc8b8623dcd6e4f94e63c5f341b13875f067537
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6cc8b8623dcd6e4f94e63c5f341b13875f067537
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6cca7b745ee4735b99d1673fc2a41135468ff8c5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6cca7b745ee4735b99d1673fc2a41135468ff8c5
index 91be9f4e8..91be9f4e8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6cca7b745ee4735b99d1673fc2a41135468ff8c5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6cca7b745ee4735b99d1673fc2a41135468ff8c5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6cea3afcf5527e744d3d61167969f86ba7406840 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6cea3afcf5527e744d3d61167969f86ba7406840
index 6f0e46676..6f0e46676 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6cea3afcf5527e744d3d61167969f86ba7406840
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6cea3afcf5527e744d3d61167969f86ba7406840
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6d0e509bd9a9fd1b9443ba744ffef0e424cbdf11 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6d0e509bd9a9fd1b9443ba744ffef0e424cbdf11
index a72e07cbe..a72e07cbe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6d0e509bd9a9fd1b9443ba744ffef0e424cbdf11
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6d0e509bd9a9fd1b9443ba744ffef0e424cbdf11
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6d44d9fe879d835f28bdbb2867f4a81dcda694c4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6d44d9fe879d835f28bdbb2867f4a81dcda694c4
index 5e3a796c9..5e3a796c9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6d44d9fe879d835f28bdbb2867f4a81dcda694c4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6d44d9fe879d835f28bdbb2867f4a81dcda694c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6d6f315183b02c3329058e42a3286ae562dae483 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6d6f315183b02c3329058e42a3286ae562dae483
index e597a39ae..e597a39ae 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6d6f315183b02c3329058e42a3286ae562dae483
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6d6f315183b02c3329058e42a3286ae562dae483
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6da305c96eeb951b7e375d6be5ed612be22727cd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6da305c96eeb951b7e375d6be5ed612be22727cd
index 3cb416fd1..3cb416fd1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6da305c96eeb951b7e375d6be5ed612be22727cd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6da305c96eeb951b7e375d6be5ed612be22727cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6db51bd5a74618562a02633c1c704c131d12bd9c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6db51bd5a74618562a02633c1c704c131d12bd9c
index 7934e2abc..7934e2abc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6db51bd5a74618562a02633c1c704c131d12bd9c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6db51bd5a74618562a02633c1c704c131d12bd9c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6dcbdf3ee81569ba37bea3ef3b47b9dfc2403894 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6dcbdf3ee81569ba37bea3ef3b47b9dfc2403894
index e12dd1178..e12dd1178 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6dcbdf3ee81569ba37bea3ef3b47b9dfc2403894
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6dcbdf3ee81569ba37bea3ef3b47b9dfc2403894
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6de90ebeb30a16d387f3ba4110bc08a0367e6ae8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6de90ebeb30a16d387f3ba4110bc08a0367e6ae8
index 74c7eb222..74c7eb222 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6de90ebeb30a16d387f3ba4110bc08a0367e6ae8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6de90ebeb30a16d387f3ba4110bc08a0367e6ae8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6e3216c661fa6d6f679dcf3b3b4bcad966ca9bcf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e3216c661fa6d6f679dcf3b3b4bcad966ca9bcf
index 2b7d385d6..2b7d385d6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6e3216c661fa6d6f679dcf3b3b4bcad966ca9bcf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e3216c661fa6d6f679dcf3b3b4bcad966ca9bcf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6e45d43ace6fb470033087a13a5f1f1ab72f99fb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e45d43ace6fb470033087a13a5f1f1ab72f99fb
index a8a7502fc..a8a7502fc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6e45d43ace6fb470033087a13a5f1f1ab72f99fb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e45d43ace6fb470033087a13a5f1f1ab72f99fb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6e5593dc4be1c4810a1622b43eb0fea9f19f53ad b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e5593dc4be1c4810a1622b43eb0fea9f19f53ad
index 9c1fd1f2b..9c1fd1f2b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6e5593dc4be1c4810a1622b43eb0fea9f19f53ad
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e5593dc4be1c4810a1622b43eb0fea9f19f53ad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6e81a71be439340bd684b822abe774967cd61485 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e81a71be439340bd684b822abe774967cd61485
index 9cab448f0..9cab448f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6e81a71be439340bd684b822abe774967cd61485
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e81a71be439340bd684b822abe774967cd61485
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6e9fc7b7914f42bbc272ed1dab13e467c3bdd0cf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e9fc7b7914f42bbc272ed1dab13e467c3bdd0cf
index 7224d2ba2..7224d2ba2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6e9fc7b7914f42bbc272ed1dab13e467c3bdd0cf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6e9fc7b7914f42bbc272ed1dab13e467c3bdd0cf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6ea91f26b36463d5ef010ee7f70c1cb50bdcba9e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6ea91f26b36463d5ef010ee7f70c1cb50bdcba9e
index 28cf804f7..28cf804f7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6ea91f26b36463d5ef010ee7f70c1cb50bdcba9e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6ea91f26b36463d5ef010ee7f70c1cb50bdcba9e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6eb49c33324afc2cc3c1098b2f2ede6580095db2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6eb49c33324afc2cc3c1098b2f2ede6580095db2
index 8485fd5e8..8485fd5e8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6eb49c33324afc2cc3c1098b2f2ede6580095db2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6eb49c33324afc2cc3c1098b2f2ede6580095db2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6eecaa9127fbfd0937497f859af068cc41e30f83 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6eecaa9127fbfd0937497f859af068cc41e30f83
index 4dc94a92e..4dc94a92e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6eecaa9127fbfd0937497f859af068cc41e30f83
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6eecaa9127fbfd0937497f859af068cc41e30f83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6f153763dd1dd16901e0951f87b3fbd925f2ee59 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f153763dd1dd16901e0951f87b3fbd925f2ee59
index 287f810b7..287f810b7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6f153763dd1dd16901e0951f87b3fbd925f2ee59
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f153763dd1dd16901e0951f87b3fbd925f2ee59
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6f1e78bea0497b5d1d9d5dd928b878f6478b1b6a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f1e78bea0497b5d1d9d5dd928b878f6478b1b6a
index de1070c4e..de1070c4e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6f1e78bea0497b5d1d9d5dd928b878f6478b1b6a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f1e78bea0497b5d1d9d5dd928b878f6478b1b6a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6f276982832b06ddbc87fa61fb7df4a50f68a796 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f276982832b06ddbc87fa61fb7df4a50f68a796
index 7f70a1b2f..7f70a1b2f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6f276982832b06ddbc87fa61fb7df4a50f68a796
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f276982832b06ddbc87fa61fb7df4a50f68a796
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6f4577401eda0c8a1f66eb8db9b774cc8d4c7b68 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f4577401eda0c8a1f66eb8db9b774cc8d4c7b68
index 2527cc2f7..2527cc2f7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6f4577401eda0c8a1f66eb8db9b774cc8d4c7b68
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f4577401eda0c8a1f66eb8db9b774cc8d4c7b68
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6f6fd889e621c642374d3e5540302d1eaf29f2f6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f6fd889e621c642374d3e5540302d1eaf29f2f6
index 6783c4c30..6783c4c30 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6f6fd889e621c642374d3e5540302d1eaf29f2f6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f6fd889e621c642374d3e5540302d1eaf29f2f6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/6f7ee13e96c2fa757698af9a2d31563f8b966792 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f7ee13e96c2fa757698af9a2d31563f8b966792
index 79759802d..79759802d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/6f7ee13e96c2fa757698af9a2d31563f8b966792
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/6f7ee13e96c2fa757698af9a2d31563f8b966792
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/707a0032a021bb1a8b6d5ea20fc759cff0729194 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/707a0032a021bb1a8b6d5ea20fc759cff0729194
index 02f23f805..02f23f805 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/707a0032a021bb1a8b6d5ea20fc759cff0729194
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/707a0032a021bb1a8b6d5ea20fc759cff0729194
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/709c0ea48b5ed8474818b3e2994b2e4c5ca9bb80 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/709c0ea48b5ed8474818b3e2994b2e4c5ca9bb80
index f4cef9cf9..f4cef9cf9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/709c0ea48b5ed8474818b3e2994b2e4c5ca9bb80
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/709c0ea48b5ed8474818b3e2994b2e4c5ca9bb80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/710743f967ea304a09f1fe53618bc677ab6d5ebc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/710743f967ea304a09f1fe53618bc677ab6d5ebc
index 42edd45a1..42edd45a1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/710743f967ea304a09f1fe53618bc677ab6d5ebc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/710743f967ea304a09f1fe53618bc677ab6d5ebc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/717499af3a6a69fab9048a64fdcada145872ab5e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/717499af3a6a69fab9048a64fdcada145872ab5e
index 8e43b1d38..8e43b1d38 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/717499af3a6a69fab9048a64fdcada145872ab5e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/717499af3a6a69fab9048a64fdcada145872ab5e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/71ab30de9c245a63972867f537a8bb0dbf0def94 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/71ab30de9c245a63972867f537a8bb0dbf0def94
index a689c286a..a689c286a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/71ab30de9c245a63972867f537a8bb0dbf0def94
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/71ab30de9c245a63972867f537a8bb0dbf0def94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/71fbecc0fc227c6ab36869dd78828245ec9be793 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/71fbecc0fc227c6ab36869dd78828245ec9be793
index de4933997..de4933997 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/71fbecc0fc227c6ab36869dd78828245ec9be793
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/71fbecc0fc227c6ab36869dd78828245ec9be793
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7251335cc929c39033fbfccb736fc5d14c6c709f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7251335cc929c39033fbfccb736fc5d14c6c709f
index 0d098ea44..0d098ea44 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7251335cc929c39033fbfccb736fc5d14c6c709f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7251335cc929c39033fbfccb736fc5d14c6c709f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/725a25ff6d3016c688c8b0b5b9b6d318174ba61e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/725a25ff6d3016c688c8b0b5b9b6d318174ba61e
index 0dda428a9..0dda428a9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/725a25ff6d3016c688c8b0b5b9b6d318174ba61e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/725a25ff6d3016c688c8b0b5b9b6d318174ba61e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/725fe2c3c7d85c9edcb60bff3af9db165bea05c6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/725fe2c3c7d85c9edcb60bff3af9db165bea05c6
index 922818ebd..922818ebd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/725fe2c3c7d85c9edcb60bff3af9db165bea05c6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/725fe2c3c7d85c9edcb60bff3af9db165bea05c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7260f289cede0d05bb6ade911ae44816b693ca48 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7260f289cede0d05bb6ade911ae44816b693ca48
index 03c91e818..03c91e818 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7260f289cede0d05bb6ade911ae44816b693ca48
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7260f289cede0d05bb6ade911ae44816b693ca48
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/72978612170472d3c473e64bfd770df7a6c2aebd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/72978612170472d3c473e64bfd770df7a6c2aebd
index 6eb171210..6eb171210 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/72978612170472d3c473e64bfd770df7a6c2aebd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/72978612170472d3c473e64bfd770df7a6c2aebd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/72d5bfd7e36c11f81b8d3883f7fc100eb60f4c5e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/72d5bfd7e36c11f81b8d3883f7fc100eb60f4c5e
index 05176a861..05176a861 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/72d5bfd7e36c11f81b8d3883f7fc100eb60f4c5e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/72d5bfd7e36c11f81b8d3883f7fc100eb60f4c5e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/73334e31f8708cd6e548a3afde13344bf14c3011 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/73334e31f8708cd6e548a3afde13344bf14c3011
index 74128cdc0..74128cdc0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/73334e31f8708cd6e548a3afde13344bf14c3011
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/73334e31f8708cd6e548a3afde13344bf14c3011
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7463eccb884d1797c5ebda9e336a0779aa622d3e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7463eccb884d1797c5ebda9e336a0779aa622d3e
index 7531c7181..7531c7181 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7463eccb884d1797c5ebda9e336a0779aa622d3e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7463eccb884d1797c5ebda9e336a0779aa622d3e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7513ccf39776694b82323e405ab200efacda0526 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7513ccf39776694b82323e405ab200efacda0526
index e49121f76..e49121f76 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7513ccf39776694b82323e405ab200efacda0526
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7513ccf39776694b82323e405ab200efacda0526
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/752ce70e9a29af21425e2406561d0cfc6738600e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/752ce70e9a29af21425e2406561d0cfc6738600e
index e8d500ef2..e8d500ef2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/752ce70e9a29af21425e2406561d0cfc6738600e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/752ce70e9a29af21425e2406561d0cfc6738600e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/752f300d7600b354d7f8f2f2085823ade064b28f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/752f300d7600b354d7f8f2f2085823ade064b28f
index ba5ddd76e..ba5ddd76e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/752f300d7600b354d7f8f2f2085823ade064b28f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/752f300d7600b354d7f8f2f2085823ade064b28f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/75496995cb65e66729691bb9aea8e9567b3e18f8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/75496995cb65e66729691bb9aea8e9567b3e18f8
index 356f15899..356f15899 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/75496995cb65e66729691bb9aea8e9567b3e18f8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/75496995cb65e66729691bb9aea8e9567b3e18f8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/75893228ac61914ee6ddf5dc8a835ecb826aa510 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/75893228ac61914ee6ddf5dc8a835ecb826aa510
index 55ea73e3f..55ea73e3f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/75893228ac61914ee6ddf5dc8a835ecb826aa510
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/75893228ac61914ee6ddf5dc8a835ecb826aa510
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/75fac9d808cca64336c9524fe574abf15b80464a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/75fac9d808cca64336c9524fe574abf15b80464a
index 89e134eb9..89e134eb9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/75fac9d808cca64336c9524fe574abf15b80464a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/75fac9d808cca64336c9524fe574abf15b80464a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7627e49e449d616d5cbcc38dcbc79b2011a17821 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7627e49e449d616d5cbcc38dcbc79b2011a17821
index a8c12b148..a8c12b148 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7627e49e449d616d5cbcc38dcbc79b2011a17821
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7627e49e449d616d5cbcc38dcbc79b2011a17821
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7639ef7d684466fc8b44ae50775ac76d41f5ab16 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7639ef7d684466fc8b44ae50775ac76d41f5ab16
index d30bf67d5..d30bf67d5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7639ef7d684466fc8b44ae50775ac76d41f5ab16
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7639ef7d684466fc8b44ae50775ac76d41f5ab16
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/764545e8f30912204fd9e86fbb7e43a1fb720a67 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/764545e8f30912204fd9e86fbb7e43a1fb720a67
index 275798ba6..275798ba6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/764545e8f30912204fd9e86fbb7e43a1fb720a67
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/764545e8f30912204fd9e86fbb7e43a1fb720a67
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/764cad29d7ae2bedff77865f7e23d7bf94364051 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/764cad29d7ae2bedff77865f7e23d7bf94364051
index 860c1e63c..860c1e63c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/764cad29d7ae2bedff77865f7e23d7bf94364051
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/764cad29d7ae2bedff77865f7e23d7bf94364051
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/765198952cff6bc0df96ea3cb16e1bd98939573d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/765198952cff6bc0df96ea3cb16e1bd98939573d
index af3222bc8..af3222bc8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/765198952cff6bc0df96ea3cb16e1bd98939573d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/765198952cff6bc0df96ea3cb16e1bd98939573d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7658690e5af51cd960491960c0a10b2d862d7bc2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7658690e5af51cd960491960c0a10b2d862d7bc2
index c2c5c7e7b..c2c5c7e7b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7658690e5af51cd960491960c0a10b2d862d7bc2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7658690e5af51cd960491960c0a10b2d862d7bc2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7681dfce00c85408c00a6fd8b9ae5955ed3b3af2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7681dfce00c85408c00a6fd8b9ae5955ed3b3af2
index 7253c7420..7253c7420 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7681dfce00c85408c00a6fd8b9ae5955ed3b3af2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7681dfce00c85408c00a6fd8b9ae5955ed3b3af2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/76b2716611b661b49f0a21f74e113678908b14e9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76b2716611b661b49f0a21f74e113678908b14e9
index 65c29d9b6..65c29d9b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/76b2716611b661b49f0a21f74e113678908b14e9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76b2716611b661b49f0a21f74e113678908b14e9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/76dc9978e1c1fee88d8483564a161d819e022d9d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76dc9978e1c1fee88d8483564a161d819e022d9d
index 13bbf8cb8..13bbf8cb8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/76dc9978e1c1fee88d8483564a161d819e022d9d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76dc9978e1c1fee88d8483564a161d819e022d9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/76f1d566c6eeaed3462cb1162afc65853a00a069 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76f1d566c6eeaed3462cb1162afc65853a00a069
index 577e596e2..577e596e2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/76f1d566c6eeaed3462cb1162afc65853a00a069
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76f1d566c6eeaed3462cb1162afc65853a00a069
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/76f92adf58d02e76a85f215b3bbd9995b4ca50a2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76f92adf58d02e76a85f215b3bbd9995b4ca50a2
index e7ad28f36..e7ad28f36 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/76f92adf58d02e76a85f215b3bbd9995b4ca50a2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/76f92adf58d02e76a85f215b3bbd9995b4ca50a2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/770688d0e23051cfe3372ba10912a1ad919c11b7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/770688d0e23051cfe3372ba10912a1ad919c11b7
index 38b4bf153..38b4bf153 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/770688d0e23051cfe3372ba10912a1ad919c11b7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/770688d0e23051cfe3372ba10912a1ad919c11b7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/773e12bc1f2a3361fc1290396e8da7c2c70a2e9f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/773e12bc1f2a3361fc1290396e8da7c2c70a2e9f
index e8c6e7209..e8c6e7209 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/773e12bc1f2a3361fc1290396e8da7c2c70a2e9f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/773e12bc1f2a3361fc1290396e8da7c2c70a2e9f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7740138532b2a0571778281e3427811f844faa3d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7740138532b2a0571778281e3427811f844faa3d
index 56271168c..56271168c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7740138532b2a0571778281e3427811f844faa3d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7740138532b2a0571778281e3427811f844faa3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7748ae247712730303197e7a7e97db4bebe3c654 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7748ae247712730303197e7a7e97db4bebe3c654
index 9445db4bf..9445db4bf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7748ae247712730303197e7a7e97db4bebe3c654
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7748ae247712730303197e7a7e97db4bebe3c654
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/77555b12eed0cb5c3b070136330572e43153dcb0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77555b12eed0cb5c3b070136330572e43153dcb0
index 5e077deb0..5e077deb0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/77555b12eed0cb5c3b070136330572e43153dcb0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77555b12eed0cb5c3b070136330572e43153dcb0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7781c8fb4cf34aa0ae56751434603c6783da7a4d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7781c8fb4cf34aa0ae56751434603c6783da7a4d
index 553f8d7ff..553f8d7ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7781c8fb4cf34aa0ae56751434603c6783da7a4d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7781c8fb4cf34aa0ae56751434603c6783da7a4d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/77a4dd68d2234524eb656a51b164d9d8c08b1a7f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77a4dd68d2234524eb656a51b164d9d8c08b1a7f
index 2c31f8105..2c31f8105 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/77a4dd68d2234524eb656a51b164d9d8c08b1a7f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77a4dd68d2234524eb656a51b164d9d8c08b1a7f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/77d896d20fb68836789b0d797808e23115b13bc3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77d896d20fb68836789b0d797808e23115b13bc3
index cae8a9394..cae8a9394 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/77d896d20fb68836789b0d797808e23115b13bc3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77d896d20fb68836789b0d797808e23115b13bc3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/77e3c54a18ae5f8f62335ca7b843830063526df5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77e3c54a18ae5f8f62335ca7b843830063526df5
index cf8569a69..cf8569a69 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/77e3c54a18ae5f8f62335ca7b843830063526df5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77e3c54a18ae5f8f62335ca7b843830063526df5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/77f8fbdec94bfda2c92b4933c9cd8c509db0dd34 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77f8fbdec94bfda2c92b4933c9cd8c509db0dd34
index b165c73db..b165c73db 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/77f8fbdec94bfda2c92b4933c9cd8c509db0dd34
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/77f8fbdec94bfda2c92b4933c9cd8c509db0dd34
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/78395e6ede2746b1aa5310dfac7c25addcef1835 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78395e6ede2746b1aa5310dfac7c25addcef1835
index d52e3c235..d52e3c235 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/78395e6ede2746b1aa5310dfac7c25addcef1835
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78395e6ede2746b1aa5310dfac7c25addcef1835
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/78a804d0528ff0d6a26d22c21213171494ff5eed b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78a804d0528ff0d6a26d22c21213171494ff5eed
index 1e75553e4..1e75553e4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/78a804d0528ff0d6a26d22c21213171494ff5eed
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78a804d0528ff0d6a26d22c21213171494ff5eed
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/78c9018cac81fc29fb61f94d1e27fa31a0897ea4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78c9018cac81fc29fb61f94d1e27fa31a0897ea4
index 0354fccfe..0354fccfe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/78c9018cac81fc29fb61f94d1e27fa31a0897ea4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78c9018cac81fc29fb61f94d1e27fa31a0897ea4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/78cfc59f03e6493d663d283372401e848e5ecce7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78cfc59f03e6493d663d283372401e848e5ecce7
index 16f0463ee..16f0463ee 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/78cfc59f03e6493d663d283372401e848e5ecce7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78cfc59f03e6493d663d283372401e848e5ecce7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/78ddfca07e445a04d88b535734e630a1fa1d9455 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78ddfca07e445a04d88b535734e630a1fa1d9455
index 63b5fda69..63b5fda69 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/78ddfca07e445a04d88b535734e630a1fa1d9455
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/78ddfca07e445a04d88b535734e630a1fa1d9455
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7913a42cfa97e792340dd3a89194c69bbb418446 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7913a42cfa97e792340dd3a89194c69bbb418446
index 3db924c8f..3db924c8f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7913a42cfa97e792340dd3a89194c69bbb418446
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7913a42cfa97e792340dd3a89194c69bbb418446
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/79218650d5849f6959af9caa344efe2c566dfb22 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79218650d5849f6959af9caa344efe2c566dfb22
index dedb1e6c0..dedb1e6c0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/79218650d5849f6959af9caa344efe2c566dfb22
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79218650d5849f6959af9caa344efe2c566dfb22
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/79300b1439e3263aca547de303ee205b067a562e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79300b1439e3263aca547de303ee205b067a562e
index 7da58ee69..7da58ee69 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/79300b1439e3263aca547de303ee205b067a562e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79300b1439e3263aca547de303ee205b067a562e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/794a314789983cb9260053202821f258fa205bc5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/794a314789983cb9260053202821f258fa205bc5
index 63f8dfe47..63f8dfe47 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/794a314789983cb9260053202821f258fa205bc5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/794a314789983cb9260053202821f258fa205bc5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/79574a8d9791a7325c7870d9286067eb796d9b35 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79574a8d9791a7325c7870d9286067eb796d9b35
index f9c3c3f61..f9c3c3f61 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/79574a8d9791a7325c7870d9286067eb796d9b35
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79574a8d9791a7325c7870d9286067eb796d9b35
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7992e46693090da66621e691ef87a30f71f8edb8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7992e46693090da66621e691ef87a30f71f8edb8
index a5c88e649..a5c88e649 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7992e46693090da66621e691ef87a30f71f8edb8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7992e46693090da66621e691ef87a30f71f8edb8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/79de32e0704a556c3e80b6393b050b74387c0306 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79de32e0704a556c3e80b6393b050b74387c0306
index 3de3f4dc0..3de3f4dc0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/79de32e0704a556c3e80b6393b050b74387c0306
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79de32e0704a556c3e80b6393b050b74387c0306
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/79eccf34d524c9bab9adab5205b7796e73152245 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79eccf34d524c9bab9adab5205b7796e73152245
index e1172e4fd..e1172e4fd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/79eccf34d524c9bab9adab5205b7796e73152245
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/79eccf34d524c9bab9adab5205b7796e73152245
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7a3a3552f09484010572bb46a1fd188cc7358b46 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7a3a3552f09484010572bb46a1fd188cc7358b46
index 85abf5cef..85abf5cef 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7a3a3552f09484010572bb46a1fd188cc7358b46
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7a3a3552f09484010572bb46a1fd188cc7358b46
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7a72afe0c11c6c6a7866fc209fbca7323541a13c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7a72afe0c11c6c6a7866fc209fbca7323541a13c
index 7dab0d5d0..7dab0d5d0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7a72afe0c11c6c6a7866fc209fbca7323541a13c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7a72afe0c11c6c6a7866fc209fbca7323541a13c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7a785f1dc93e17c56c0aed2d2fa7080628762d55 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7a785f1dc93e17c56c0aed2d2fa7080628762d55
index 94a40f718..94a40f718 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7a785f1dc93e17c56c0aed2d2fa7080628762d55
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7a785f1dc93e17c56c0aed2d2fa7080628762d55
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7b2d2a7d8bcadf1dce34542756fe9f29446105e7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7b2d2a7d8bcadf1dce34542756fe9f29446105e7
index 3eec529a6..3eec529a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7b2d2a7d8bcadf1dce34542756fe9f29446105e7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7b2d2a7d8bcadf1dce34542756fe9f29446105e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7b4113eb7ecee3c29a4cd47cb6501997031eabe2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7b4113eb7ecee3c29a4cd47cb6501997031eabe2
index 98f6653ca..98f6653ca 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7b4113eb7ecee3c29a4cd47cb6501997031eabe2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7b4113eb7ecee3c29a4cd47cb6501997031eabe2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7b71637cdbd7eca84116f12436601493e127c4b3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7b71637cdbd7eca84116f12436601493e127c4b3
index f77508d87..f77508d87 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7b71637cdbd7eca84116f12436601493e127c4b3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7b71637cdbd7eca84116f12436601493e127c4b3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074
index f9edc7e20..f9edc7e20 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7bbdc040e28c32f6556055efef65ff2c7820d074
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7bd720651a5928f54d0a7e32fb7a5193aaa8b655 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7bd720651a5928f54d0a7e32fb7a5193aaa8b655
index bb9e41b0f..bb9e41b0f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7bd720651a5928f54d0a7e32fb7a5193aaa8b655
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7bd720651a5928f54d0a7e32fb7a5193aaa8b655
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7be8736e413375de55f4eb9d1e60d6ebfa4b45ef b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7be8736e413375de55f4eb9d1e60d6ebfa4b45ef
index d679260b5..d679260b5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7be8736e413375de55f4eb9d1e60d6ebfa4b45ef
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7be8736e413375de55f4eb9d1e60d6ebfa4b45ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7bfd50b1fe7c30d8aea18101442beca4dd69f3a5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7bfd50b1fe7c30d8aea18101442beca4dd69f3a5
index 69b1e32b6..69b1e32b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7bfd50b1fe7c30d8aea18101442beca4dd69f3a5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7bfd50b1fe7c30d8aea18101442beca4dd69f3a5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7c00bedc50af3465f9258fd93352cd437309075f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c00bedc50af3465f9258fd93352cd437309075f
index 75fdbd02f..75fdbd02f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7c00bedc50af3465f9258fd93352cd437309075f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c00bedc50af3465f9258fd93352cd437309075f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7c0baef1e802fa9359909d32c8858a1f9edd6647 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c0baef1e802fa9359909d32c8858a1f9edd6647
index 865ed6ea3..865ed6ea3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7c0baef1e802fa9359909d32c8858a1f9edd6647
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c0baef1e802fa9359909d32c8858a1f9edd6647
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7c3dcd5898a2215453bb55d2bc46c56722e2308b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c3dcd5898a2215453bb55d2bc46c56722e2308b
index 76a9cbf37..76a9cbf37 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7c3dcd5898a2215453bb55d2bc46c56722e2308b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c3dcd5898a2215453bb55d2bc46c56722e2308b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7c3eebd91d674bf5ec70da55ea92f2ba1d1c5dba b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c3eebd91d674bf5ec70da55ea92f2ba1d1c5dba
index a3bb8d873..a3bb8d873 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7c3eebd91d674bf5ec70da55ea92f2ba1d1c5dba
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c3eebd91d674bf5ec70da55ea92f2ba1d1c5dba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7c86ff34cc6020967e0461362171faedf2b2f011 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c86ff34cc6020967e0461362171faedf2b2f011
index 5846c3b2d..5846c3b2d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7c86ff34cc6020967e0461362171faedf2b2f011
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7c86ff34cc6020967e0461362171faedf2b2f011
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7d2e14bdf2d85882dfffae5a250870cd50e26067 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d2e14bdf2d85882dfffae5a250870cd50e26067
index c59f8bb10..c59f8bb10 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7d2e14bdf2d85882dfffae5a250870cd50e26067
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d2e14bdf2d85882dfffae5a250870cd50e26067
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7d4143684bf25ebbd28514a4bc63a7c0c93af3cc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d4143684bf25ebbd28514a4bc63a7c0c93af3cc
index b50439115..b50439115 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7d4143684bf25ebbd28514a4bc63a7c0c93af3cc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d4143684bf25ebbd28514a4bc63a7c0c93af3cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7d5637c68e461ea7386fc453025e6f296d079cf2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d5637c68e461ea7386fc453025e6f296d079cf2
index 25bd01f1d..25bd01f1d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7d5637c68e461ea7386fc453025e6f296d079cf2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d5637c68e461ea7386fc453025e6f296d079cf2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7d8e86b621f0ee525698a377d46a83391cd64442 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d8e86b621f0ee525698a377d46a83391cd64442
index 6b8eafb7b..6b8eafb7b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7d8e86b621f0ee525698a377d46a83391cd64442
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d8e86b621f0ee525698a377d46a83391cd64442
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7d937909e4e682504e98dc7544d4e55a72bd3829 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d937909e4e682504e98dc7544d4e55a72bd3829
index 4bd4ffb17..4bd4ffb17 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7d937909e4e682504e98dc7544d4e55a72bd3829
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7d937909e4e682504e98dc7544d4e55a72bd3829
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7da6ffe7a66585c917679a457bce81072fe73a09 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7da6ffe7a66585c917679a457bce81072fe73a09
index c277828df..c277828df 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7da6ffe7a66585c917679a457bce81072fe73a09
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7da6ffe7a66585c917679a457bce81072fe73a09
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7dadb77934a66c2882d95a8806ec170939632565 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7dadb77934a66c2882d95a8806ec170939632565
index 08f4000ff..08f4000ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7dadb77934a66c2882d95a8806ec170939632565
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7dadb77934a66c2882d95a8806ec170939632565
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7db95ed91f2716b5642877e9ef3f15f2396bd010 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7db95ed91f2716b5642877e9ef3f15f2396bd010
index ba001608b..ba001608b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7db95ed91f2716b5642877e9ef3f15f2396bd010
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7db95ed91f2716b5642877e9ef3f15f2396bd010
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7dfd05b5cfc1dd3af1d44c8700eeab0e0d5b3d56 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7dfd05b5cfc1dd3af1d44c8700eeab0e0d5b3d56
index 96286924e..96286924e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7dfd05b5cfc1dd3af1d44c8700eeab0e0d5b3d56
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7dfd05b5cfc1dd3af1d44c8700eeab0e0d5b3d56
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7e988244d5b2232fc3608bc5914303d4d2ca1173 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7e988244d5b2232fc3608bc5914303d4d2ca1173
index 402765ce6..402765ce6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7e988244d5b2232fc3608bc5914303d4d2ca1173
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7e988244d5b2232fc3608bc5914303d4d2ca1173
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7eaaaa64a0100981c5375c5c0528e9c63649b742 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7eaaaa64a0100981c5375c5c0528e9c63649b742
index 3bcec73cf..3bcec73cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7eaaaa64a0100981c5375c5c0528e9c63649b742
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7eaaaa64a0100981c5375c5c0528e9c63649b742
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7ecd12a0d4e9a7fab8a28a96c54f62fa55e9a6ec b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7ecd12a0d4e9a7fab8a28a96c54f62fa55e9a6ec
index e4a5cec4a..e4a5cec4a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7ecd12a0d4e9a7fab8a28a96c54f62fa55e9a6ec
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7ecd12a0d4e9a7fab8a28a96c54f62fa55e9a6ec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7ede5f477eb7929c133277ffab33b0835aa0dc1b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7ede5f477eb7929c133277ffab33b0835aa0dc1b
index 667695db4..667695db4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7ede5f477eb7929c133277ffab33b0835aa0dc1b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7ede5f477eb7929c133277ffab33b0835aa0dc1b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7f25d74f3eff8092fabe15e95c82745e7ff4e01f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7f25d74f3eff8092fabe15e95c82745e7ff4e01f
index 0784c284d..0784c284d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7f25d74f3eff8092fabe15e95c82745e7ff4e01f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7f25d74f3eff8092fabe15e95c82745e7ff4e01f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7fa736f11b49d6497bcdf65045ce43e55404abba b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7fa736f11b49d6497bcdf65045ce43e55404abba
index 412bccbde..412bccbde 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7fa736f11b49d6497bcdf65045ce43e55404abba
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7fa736f11b49d6497bcdf65045ce43e55404abba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7fb12ee59b922edc93a0a0289ff84c2db0e4562b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7fb12ee59b922edc93a0a0289ff84c2db0e4562b
index d28be9a82..d28be9a82 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7fb12ee59b922edc93a0a0289ff84c2db0e4562b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7fb12ee59b922edc93a0a0289ff84c2db0e4562b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/7fbe145662f59b4adefc177d682439855eeb4b3d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7fbe145662f59b4adefc177d682439855eeb4b3d
index a04f034c9..a04f034c9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/7fbe145662f59b4adefc177d682439855eeb4b3d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/7fbe145662f59b4adefc177d682439855eeb4b3d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/801a3908f98733379718900e72384f4a1856a0dc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/801a3908f98733379718900e72384f4a1856a0dc
index 6055886ed..6055886ed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/801a3908f98733379718900e72384f4a1856a0dc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/801a3908f98733379718900e72384f4a1856a0dc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8048d8c850af1c2777faef78f027925c39ed6f66 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8048d8c850af1c2777faef78f027925c39ed6f66
index aeb412676..aeb412676 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8048d8c850af1c2777faef78f027925c39ed6f66
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8048d8c850af1c2777faef78f027925c39ed6f66
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/805ad3e664739430df2d0d30b541f460f9349ec7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/805ad3e664739430df2d0d30b541f460f9349ec7
index 3b745bc92..3b745bc92 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/805ad3e664739430df2d0d30b541f460f9349ec7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/805ad3e664739430df2d0d30b541f460f9349ec7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/80aea00407d1290e6af5dda0fd6db7a30b1df161 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/80aea00407d1290e6af5dda0fd6db7a30b1df161
index 06fe5531f..06fe5531f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/80aea00407d1290e6af5dda0fd6db7a30b1df161
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/80aea00407d1290e6af5dda0fd6db7a30b1df161
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/810bb205711e12018fe11320c8d97483775d30db b/src/web/server/h2o/libh2o/fuzz/http2-corpus/810bb205711e12018fe11320c8d97483775d30db
index 7cdaabd67..7cdaabd67 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/810bb205711e12018fe11320c8d97483775d30db
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/810bb205711e12018fe11320c8d97483775d30db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8169a536de6318bcf353a17fa52360a7068dd30b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8169a536de6318bcf353a17fa52360a7068dd30b
index 83c3bda4c..83c3bda4c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8169a536de6318bcf353a17fa52360a7068dd30b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8169a536de6318bcf353a17fa52360a7068dd30b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8182e3fb5853b3fdf3ffe35c684c267239f448f6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8182e3fb5853b3fdf3ffe35c684c267239f448f6
index 166c3a8eb..166c3a8eb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8182e3fb5853b3fdf3ffe35c684c267239f448f6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8182e3fb5853b3fdf3ffe35c684c267239f448f6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/818d46a55162159d9f039fc1b5a055d6ce3bcd81 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/818d46a55162159d9f039fc1b5a055d6ce3bcd81
index 15a76dd6f..15a76dd6f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/818d46a55162159d9f039fc1b5a055d6ce3bcd81
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/818d46a55162159d9f039fc1b5a055d6ce3bcd81
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/81df3635ec4185424d48f9e24c66057ecccb649c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/81df3635ec4185424d48f9e24c66057ecccb649c
index 52700fb7d..52700fb7d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/81df3635ec4185424d48f9e24c66057ecccb649c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/81df3635ec4185424d48f9e24c66057ecccb649c
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/82284626271ff4461420ce544ca2889e3622ccdf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82284626271ff4461420ce544ca2889e3622ccdf
index b06f98137..b06f98137 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/82284626271ff4461420ce544ca2889e3622ccdf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82284626271ff4461420ce544ca2889e3622ccdf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8244ebc12f596c40a37fb840380b0002b891a6f1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8244ebc12f596c40a37fb840380b0002b891a6f1
index 8cbbc6da3..8cbbc6da3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8244ebc12f596c40a37fb840380b0002b891a6f1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8244ebc12f596c40a37fb840380b0002b891a6f1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/82672f02a9acf904fa0163074aa1452115e4f17b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82672f02a9acf904fa0163074aa1452115e4f17b
index 9511f1b48..9511f1b48 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/82672f02a9acf904fa0163074aa1452115e4f17b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82672f02a9acf904fa0163074aa1452115e4f17b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/827ff22cdfdc2d021dc59eca33f573327039232c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/827ff22cdfdc2d021dc59eca33f573327039232c
index b496b5d52..b496b5d52 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/827ff22cdfdc2d021dc59eca33f573327039232c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/827ff22cdfdc2d021dc59eca33f573327039232c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/82a7e2aee0b98897d45ea9b3fa964ea5f4c32c34 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82a7e2aee0b98897d45ea9b3fa964ea5f4c32c34
index b4857a0a6..b4857a0a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/82a7e2aee0b98897d45ea9b3fa964ea5f4c32c34
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82a7e2aee0b98897d45ea9b3fa964ea5f4c32c34
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/82df17276c6a7e621d75f7d8e2a097e296d0d1fe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82df17276c6a7e621d75f7d8e2a097e296d0d1fe
index 72817b6ef..72817b6ef 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/82df17276c6a7e621d75f7d8e2a097e296d0d1fe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82df17276c6a7e621d75f7d8e2a097e296d0d1fe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/82e92cb75e88c5b5e874e43fea98f41a1efd7591 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82e92cb75e88c5b5e874e43fea98f41a1efd7591
index 29b2189fe..29b2189fe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/82e92cb75e88c5b5e874e43fea98f41a1efd7591
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/82e92cb75e88c5b5e874e43fea98f41a1efd7591
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8311548634c0c3a6159bab1c8be09a5c7493b5cb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8311548634c0c3a6159bab1c8be09a5c7493b5cb
index 3b2b45fbc..3b2b45fbc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8311548634c0c3a6159bab1c8be09a5c7493b5cb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8311548634c0c3a6159bab1c8be09a5c7493b5cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8331e41d6908454418c2d2dc216e56cd9cee8c0c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8331e41d6908454418c2d2dc216e56cd9cee8c0c
index d3108dca4..d3108dca4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8331e41d6908454418c2d2dc216e56cd9cee8c0c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8331e41d6908454418c2d2dc216e56cd9cee8c0c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8336bf00372e91212dcb19ec1f4113cc5ba39552 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8336bf00372e91212dcb19ec1f4113cc5ba39552
index 9e39bb806..9e39bb806 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8336bf00372e91212dcb19ec1f4113cc5ba39552
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8336bf00372e91212dcb19ec1f4113cc5ba39552
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/834ce3d2d90488298c448e682031f7b5a9e98b7c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/834ce3d2d90488298c448e682031f7b5a9e98b7c
index a06fc0947..a06fc0947 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/834ce3d2d90488298c448e682031f7b5a9e98b7c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/834ce3d2d90488298c448e682031f7b5a9e98b7c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8400e3f1599da910183b245388d22d2fd51c0b4d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8400e3f1599da910183b245388d22d2fd51c0b4d
index a6957c2ff..a6957c2ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8400e3f1599da910183b245388d22d2fd51c0b4d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8400e3f1599da910183b245388d22d2fd51c0b4d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/84403f0be1a76f407512e34c69b7726bdc9f8904 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84403f0be1a76f407512e34c69b7726bdc9f8904
index 30af333b9..30af333b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/84403f0be1a76f407512e34c69b7726bdc9f8904
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84403f0be1a76f407512e34c69b7726bdc9f8904
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/847b4e7873c9f42b552d2661b72aa6acd0d439b7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/847b4e7873c9f42b552d2661b72aa6acd0d439b7
index b3ed6fc7d..b3ed6fc7d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/847b4e7873c9f42b552d2661b72aa6acd0d439b7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/847b4e7873c9f42b552d2661b72aa6acd0d439b7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/84ba4d0fa3eae9c7e4e8f3b4438facb69ed8edc8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84ba4d0fa3eae9c7e4e8f3b4438facb69ed8edc8
index 85dac3e33..85dac3e33 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/84ba4d0fa3eae9c7e4e8f3b4438facb69ed8edc8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84ba4d0fa3eae9c7e4e8f3b4438facb69ed8edc8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/84be72ddb132bc5d367ca093120a41e2f685d167 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84be72ddb132bc5d367ca093120a41e2f685d167
index dfc7c6b6e..dfc7c6b6e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/84be72ddb132bc5d367ca093120a41e2f685d167
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84be72ddb132bc5d367ca093120a41e2f685d167
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/84cf3a66b3ee6c0c52b54e9e2f44e1b9e3710e66 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84cf3a66b3ee6c0c52b54e9e2f44e1b9e3710e66
index 548d71db7..548d71db7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/84cf3a66b3ee6c0c52b54e9e2f44e1b9e3710e66
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84cf3a66b3ee6c0c52b54e9e2f44e1b9e3710e66
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/84e3e02acf732e4bd729a11b6949b9f74908fe88 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84e3e02acf732e4bd729a11b6949b9f74908fe88
index b0fc6e255..b0fc6e255 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/84e3e02acf732e4bd729a11b6949b9f74908fe88
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/84e3e02acf732e4bd729a11b6949b9f74908fe88
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/852ac58bbec432a5a41a667bc2a57e3739d4c1bd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/852ac58bbec432a5a41a667bc2a57e3739d4c1bd
index c67a1bd91..c67a1bd91 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/852ac58bbec432a5a41a667bc2a57e3739d4c1bd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/852ac58bbec432a5a41a667bc2a57e3739d4c1bd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/854b9fbf8258c219584a7083479e9a03d76b6a8b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/854b9fbf8258c219584a7083479e9a03d76b6a8b
index a7cc32895..a7cc32895 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/854b9fbf8258c219584a7083479e9a03d76b6a8b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/854b9fbf8258c219584a7083479e9a03d76b6a8b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/85a159ab6ea43c26a61d077d98b2f48801489188 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/85a159ab6ea43c26a61d077d98b2f48801489188
index 76553f70e..76553f70e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/85a159ab6ea43c26a61d077d98b2f48801489188
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/85a159ab6ea43c26a61d077d98b2f48801489188
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/85a20fe6f440e02ee4e78109d51fa9380ad84a6d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/85a20fe6f440e02ee4e78109d51fa9380ad84a6d
index c14c98151..c14c98151 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/85a20fe6f440e02ee4e78109d51fa9380ad84a6d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/85a20fe6f440e02ee4e78109d51fa9380ad84a6d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8628442906b7e5c71fc8d07635c14647306367fe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8628442906b7e5c71fc8d07635c14647306367fe
index 68a5a5053..68a5a5053 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8628442906b7e5c71fc8d07635c14647306367fe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8628442906b7e5c71fc8d07635c14647306367fe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/862a70d2f299fdd007b42f3f689e72fe66e734d1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/862a70d2f299fdd007b42f3f689e72fe66e734d1
index 135223cbd..135223cbd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/862a70d2f299fdd007b42f3f689e72fe66e734d1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/862a70d2f299fdd007b42f3f689e72fe66e734d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8656e8bfcb9fc1b74186e6d3673960ef174a74ba b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8656e8bfcb9fc1b74186e6d3673960ef174a74ba
index cc9883a76..cc9883a76 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8656e8bfcb9fc1b74186e6d3673960ef174a74ba
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8656e8bfcb9fc1b74186e6d3673960ef174a74ba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8698775f22f20e0dcecf3e3f9b095dcf73d5b163 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8698775f22f20e0dcecf3e3f9b095dcf73d5b163
index e6cd03327..e6cd03327 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8698775f22f20e0dcecf3e3f9b095dcf73d5b163
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8698775f22f20e0dcecf3e3f9b095dcf73d5b163
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/869dad6b591f1eaa0ca67f23ba833c99ba4e5dc1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/869dad6b591f1eaa0ca67f23ba833c99ba4e5dc1
index 1c27cd39f..1c27cd39f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/869dad6b591f1eaa0ca67f23ba833c99ba4e5dc1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/869dad6b591f1eaa0ca67f23ba833c99ba4e5dc1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/870afa011ef0dca94d5cf4ae5a65abd5b90ca93c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/870afa011ef0dca94d5cf4ae5a65abd5b90ca93c
index e8ff14876..e8ff14876 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/870afa011ef0dca94d5cf4ae5a65abd5b90ca93c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/870afa011ef0dca94d5cf4ae5a65abd5b90ca93c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/876db886584e8f78d1655f71a746ad6331b96043 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/876db886584e8f78d1655f71a746ad6331b96043
index fa3596ac0..fa3596ac0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/876db886584e8f78d1655f71a746ad6331b96043
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/876db886584e8f78d1655f71a746ad6331b96043
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8792d41f1e787744c279acb7fd4c445e2f6670d1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8792d41f1e787744c279acb7fd4c445e2f6670d1
index 1a68c237d..1a68c237d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8792d41f1e787744c279acb7fd4c445e2f6670d1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8792d41f1e787744c279acb7fd4c445e2f6670d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/87ccb19206ff0f94e4fc66af76a9cc2a1ca520fe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/87ccb19206ff0f94e4fc66af76a9cc2a1ca520fe
index d0e514a4e..d0e514a4e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/87ccb19206ff0f94e4fc66af76a9cc2a1ca520fe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/87ccb19206ff0f94e4fc66af76a9cc2a1ca520fe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/87e7b35540416ded5cd9957197b1e799c5a5e3f4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/87e7b35540416ded5cd9957197b1e799c5a5e3f4
index 9cb9ca8ff..9cb9ca8ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/87e7b35540416ded5cd9957197b1e799c5a5e3f4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/87e7b35540416ded5cd9957197b1e799c5a5e3f4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/87ecb42a303c4b97a05f80d16dadd18ea7b67696 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/87ecb42a303c4b97a05f80d16dadd18ea7b67696
index b813bb5b8..b813bb5b8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/87ecb42a303c4b97a05f80d16dadd18ea7b67696
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/87ecb42a303c4b97a05f80d16dadd18ea7b67696
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/881b55b506841ce8a948becad6faa9f4a37df7df b/src/web/server/h2o/libh2o/fuzz/http2-corpus/881b55b506841ce8a948becad6faa9f4a37df7df
index b9fca22de..b9fca22de 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/881b55b506841ce8a948becad6faa9f4a37df7df
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/881b55b506841ce8a948becad6faa9f4a37df7df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/88492340d413a4d8107a3018b3c2080119b82f0a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88492340d413a4d8107a3018b3c2080119b82f0a
index 348f90dff..348f90dff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/88492340d413a4d8107a3018b3c2080119b82f0a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88492340d413a4d8107a3018b3c2080119b82f0a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/884ca03c7e0a3c18e145fb9b43b244d1e4692f40 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/884ca03c7e0a3c18e145fb9b43b244d1e4692f40
index 11cca5515..11cca5515 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/884ca03c7e0a3c18e145fb9b43b244d1e4692f40
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/884ca03c7e0a3c18e145fb9b43b244d1e4692f40
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/884dd905ecb3a6fa96c0a9ab6240752dd4ce22cd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/884dd905ecb3a6fa96c0a9ab6240752dd4ce22cd
index 527e131a6..527e131a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/884dd905ecb3a6fa96c0a9ab6240752dd4ce22cd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/884dd905ecb3a6fa96c0a9ab6240752dd4ce22cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/88b59b6199ae9fe171d847448df585887dad4e08 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88b59b6199ae9fe171d847448df585887dad4e08
index 310636b33..310636b33 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/88b59b6199ae9fe171d847448df585887dad4e08
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88b59b6199ae9fe171d847448df585887dad4e08
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/88bf3e0597124139e49c919bc56c27fb6ca14fe7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88bf3e0597124139e49c919bc56c27fb6ca14fe7
index 00df86ac0..00df86ac0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/88bf3e0597124139e49c919bc56c27fb6ca14fe7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88bf3e0597124139e49c919bc56c27fb6ca14fe7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/88c92fcec0137ef974e4fd3e9c8d735dd0689260 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88c92fcec0137ef974e4fd3e9c8d735dd0689260
index 146f66b37..146f66b37 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/88c92fcec0137ef974e4fd3e9c8d735dd0689260
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/88c92fcec0137ef974e4fd3e9c8d735dd0689260
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/891b12b84493c68ca6db2b0c594c883b6f442d3f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/891b12b84493c68ca6db2b0c594c883b6f442d3f
index d8e037410..d8e037410 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/891b12b84493c68ca6db2b0c594c883b6f442d3f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/891b12b84493c68ca6db2b0c594c883b6f442d3f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/89207089898bf15b7d5e65554e4a8915e33ac544 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/89207089898bf15b7d5e65554e4a8915e33ac544
index 3f6bbce9b..3f6bbce9b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/89207089898bf15b7d5e65554e4a8915e33ac544
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/89207089898bf15b7d5e65554e4a8915e33ac544
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/897dffdb252ef2bbcbaa82726a4726d7a99f951c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/897dffdb252ef2bbcbaa82726a4726d7a99f951c
index fd5541a00..fd5541a00 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/897dffdb252ef2bbcbaa82726a4726d7a99f951c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/897dffdb252ef2bbcbaa82726a4726d7a99f951c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8987488b472653c913710cddd97a9ea3fdf4094a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8987488b472653c913710cddd97a9ea3fdf4094a
index fcc67a030..fcc67a030 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8987488b472653c913710cddd97a9ea3fdf4094a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8987488b472653c913710cddd97a9ea3fdf4094a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/89a36cd04a23131ab372e4a9887d99eefd431cce b/src/web/server/h2o/libh2o/fuzz/http2-corpus/89a36cd04a23131ab372e4a9887d99eefd431cce
index c760acbad..c760acbad 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/89a36cd04a23131ab372e4a9887d99eefd431cce
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/89a36cd04a23131ab372e4a9887d99eefd431cce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8a116256fc492a0c42541ef2e2fcdb9f9e60b3bc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8a116256fc492a0c42541ef2e2fcdb9f9e60b3bc
index 1796d19d3..1796d19d3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8a116256fc492a0c42541ef2e2fcdb9f9e60b3bc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8a116256fc492a0c42541ef2e2fcdb9f9e60b3bc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8a2bee14e6f5b5c0e7295c58315422a3a1093a30 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8a2bee14e6f5b5c0e7295c58315422a3a1093a30
index c37d67025..c37d67025 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8a2bee14e6f5b5c0e7295c58315422a3a1093a30
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8a2bee14e6f5b5c0e7295c58315422a3a1093a30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8ac02881c53b4cc6eadafcb8c873f1bd46797030 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ac02881c53b4cc6eadafcb8c873f1bd46797030
index 7e726e43d..7e726e43d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8ac02881c53b4cc6eadafcb8c873f1bd46797030
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ac02881c53b4cc6eadafcb8c873f1bd46797030
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8ade7235266e7a2ad9e882d0b86cb407f20838e9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ade7235266e7a2ad9e882d0b86cb407f20838e9
index c39668b3b..c39668b3b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8ade7235266e7a2ad9e882d0b86cb407f20838e9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ade7235266e7a2ad9e882d0b86cb407f20838e9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8af04754841d6182043bbb9133dc0cfe378caa3b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8af04754841d6182043bbb9133dc0cfe378caa3b
index c3723551c..c3723551c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8af04754841d6182043bbb9133dc0cfe378caa3b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8af04754841d6182043bbb9133dc0cfe378caa3b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8afe96f8b6b9058b086b18fd876147f28589a694 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8afe96f8b6b9058b086b18fd876147f28589a694
index 82ccc0b80..82ccc0b80 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8afe96f8b6b9058b086b18fd876147f28589a694
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8afe96f8b6b9058b086b18fd876147f28589a694
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8b0eb17bcdb5e341adaaa7f777474a9cdd1c8dd5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8b0eb17bcdb5e341adaaa7f777474a9cdd1c8dd5
index 9b12d5853..9b12d5853 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8b0eb17bcdb5e341adaaa7f777474a9cdd1c8dd5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8b0eb17bcdb5e341adaaa7f777474a9cdd1c8dd5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8b228b0e9ebb8966d9221c5847592125fbff1558 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8b228b0e9ebb8966d9221c5847592125fbff1558
index 93aad824b..93aad824b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8b228b0e9ebb8966d9221c5847592125fbff1558
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8b228b0e9ebb8966d9221c5847592125fbff1558
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8bb5a3b0953ff582008cf43098bb551e8f318b7f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8bb5a3b0953ff582008cf43098bb551e8f318b7f
index 7d9d38ef7..7d9d38ef7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8bb5a3b0953ff582008cf43098bb551e8f318b7f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8bb5a3b0953ff582008cf43098bb551e8f318b7f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8bcf631eae43ad07e706869afda0ca3b142644c7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8bcf631eae43ad07e706869afda0ca3b142644c7
index 742fc2a3e..742fc2a3e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8bcf631eae43ad07e706869afda0ca3b142644c7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8bcf631eae43ad07e706869afda0ca3b142644c7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8c07a73fd0974aad4ffa121d471bdc56d8936175 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c07a73fd0974aad4ffa121d471bdc56d8936175
index 615ef209a..615ef209a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8c07a73fd0974aad4ffa121d471bdc56d8936175
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c07a73fd0974aad4ffa121d471bdc56d8936175
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8c2e50386c6884bc3d24f1d505bb4e77a7af80b5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c2e50386c6884bc3d24f1d505bb4e77a7af80b5
index e1bd61c8d..e1bd61c8d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8c2e50386c6884bc3d24f1d505bb4e77a7af80b5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c2e50386c6884bc3d24f1d505bb4e77a7af80b5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8c629eb9d4bc8550a070a71327e48210103954ef b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c629eb9d4bc8550a070a71327e48210103954ef
index 7002da85f..7002da85f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8c629eb9d4bc8550a070a71327e48210103954ef
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c629eb9d4bc8550a070a71327e48210103954ef
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8c696d1f72238aa5380a42f5e7971c42f8aaddb9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c696d1f72238aa5380a42f5e7971c42f8aaddb9
index 6d7398edc..6d7398edc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8c696d1f72238aa5380a42f5e7971c42f8aaddb9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8c696d1f72238aa5380a42f5e7971c42f8aaddb9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8cfe42c9e13ab054996a72f6ba95db1fe6f107d9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8cfe42c9e13ab054996a72f6ba95db1fe6f107d9
index dde93c0b4..dde93c0b4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8cfe42c9e13ab054996a72f6ba95db1fe6f107d9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8cfe42c9e13ab054996a72f6ba95db1fe6f107d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8d3b332f24c15da9c8c4a33235211aacd8d0b37c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d3b332f24c15da9c8c4a33235211aacd8d0b37c
index e952380d1..e952380d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8d3b332f24c15da9c8c4a33235211aacd8d0b37c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d3b332f24c15da9c8c4a33235211aacd8d0b37c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8d3c65ec326c6e31ba362a178a5daffa2ab3753c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d3c65ec326c6e31ba362a178a5daffa2ab3753c
index ec0b945d6..ec0b945d6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8d3c65ec326c6e31ba362a178a5daffa2ab3753c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d3c65ec326c6e31ba362a178a5daffa2ab3753c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8d47d1d07922fa2f6d15761265e88747921f466c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d47d1d07922fa2f6d15761265e88747921f466c
index 98312fa72..98312fa72 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8d47d1d07922fa2f6d15761265e88747921f466c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d47d1d07922fa2f6d15761265e88747921f466c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8d637304329221817669e39d54a5c4e487f24634 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d637304329221817669e39d54a5c4e487f24634
index 7dad7e26b..7dad7e26b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8d637304329221817669e39d54a5c4e487f24634
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d637304329221817669e39d54a5c4e487f24634
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8d9fcdea45326f7539d9837e2680b14f3abadc90 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d9fcdea45326f7539d9837e2680b14f3abadc90
index 42050d9f8..42050d9f8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8d9fcdea45326f7539d9837e2680b14f3abadc90
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8d9fcdea45326f7539d9837e2680b14f3abadc90
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8dc390c16f9bd76959444a4aa680bfd22631cd57 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8dc390c16f9bd76959444a4aa680bfd22631cd57
index b098cd21d..b098cd21d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8dc390c16f9bd76959444a4aa680bfd22631cd57
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8dc390c16f9bd76959444a4aa680bfd22631cd57
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8de54e0aac0365adc973b9faf7ef5c368adc0162 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8de54e0aac0365adc973b9faf7ef5c368adc0162
index 2301e92bc..2301e92bc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8de54e0aac0365adc973b9faf7ef5c368adc0162
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8de54e0aac0365adc973b9faf7ef5c368adc0162
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8de64c466400345c65f0ece95d1137088abbbe0d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8de64c466400345c65f0ece95d1137088abbbe0d
index 5872b36c4..5872b36c4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8de64c466400345c65f0ece95d1137088abbbe0d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8de64c466400345c65f0ece95d1137088abbbe0d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8e31c1f0264d350b07fc15cedad051bd9c98e9ed b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8e31c1f0264d350b07fc15cedad051bd9c98e9ed
index 0df3e1332..0df3e1332 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8e31c1f0264d350b07fc15cedad051bd9c98e9ed
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8e31c1f0264d350b07fc15cedad051bd9c98e9ed
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8e78e7ffeef36a0629b991980ad9a1530e93de70 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8e78e7ffeef36a0629b991980ad9a1530e93de70
index d956e4782..d956e4782 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8e78e7ffeef36a0629b991980ad9a1530e93de70
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8e78e7ffeef36a0629b991980ad9a1530e93de70
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8ecb6d2a8659317fa6986fb6875865f0e615d2da b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ecb6d2a8659317fa6986fb6875865f0e615d2da
index a57537bca..a57537bca 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8ecb6d2a8659317fa6986fb6875865f0e615d2da
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ecb6d2a8659317fa6986fb6875865f0e615d2da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5
index 8279be9d8..8279be9d8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8ed6bf649b1c5ba5b42649b4461032fc82208af5
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8f18d9799b99238653598f668b7ea648257f252a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f18d9799b99238653598f668b7ea648257f252a
index 591b37c6d..591b37c6d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8f18d9799b99238653598f668b7ea648257f252a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f18d9799b99238653598f668b7ea648257f252a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8f84261ad59dfd528144cff0081dcd4de3125b9a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f84261ad59dfd528144cff0081dcd4de3125b9a
index aea8a9068..aea8a9068 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8f84261ad59dfd528144cff0081dcd4de3125b9a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f84261ad59dfd528144cff0081dcd4de3125b9a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8f8543947d1887aec01b8ce71a985ad0da4cac5d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f8543947d1887aec01b8ce71a985ad0da4cac5d
index cc6b183b6..cc6b183b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8f8543947d1887aec01b8ce71a985ad0da4cac5d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f8543947d1887aec01b8ce71a985ad0da4cac5d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/8f8c6116700553fcd4775efc9843fdc63573ef60 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f8c6116700553fcd4775efc9843fdc63573ef60
index d6a99facc..d6a99facc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/8f8c6116700553fcd4775efc9843fdc63573ef60
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/8f8c6116700553fcd4775efc9843fdc63573ef60
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9036128d70e73879d87cc60761b3329180e63830 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9036128d70e73879d87cc60761b3329180e63830
index 5d28a02d9..5d28a02d9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9036128d70e73879d87cc60761b3329180e63830
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9036128d70e73879d87cc60761b3329180e63830
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/904d0e65bb7e0e2169fc7bad75c49bca77bf895c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/904d0e65bb7e0e2169fc7bad75c49bca77bf895c
index 25c352f76..25c352f76 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/904d0e65bb7e0e2169fc7bad75c49bca77bf895c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/904d0e65bb7e0e2169fc7bad75c49bca77bf895c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/905c3222ea7e3d6324336259f91367bb5f7a9272 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/905c3222ea7e3d6324336259f91367bb5f7a9272
index 8a710c5a2..8a710c5a2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/905c3222ea7e3d6324336259f91367bb5f7a9272
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/905c3222ea7e3d6324336259f91367bb5f7a9272
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/90664ac92c81e637ff966c1ac6ef4af3548a49e0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/90664ac92c81e637ff966c1ac6ef4af3548a49e0
index 70bec6c95..70bec6c95 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/90664ac92c81e637ff966c1ac6ef4af3548a49e0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/90664ac92c81e637ff966c1ac6ef4af3548a49e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9091dc2286b3441b5f93126237daf638edd5029c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9091dc2286b3441b5f93126237daf638edd5029c
index 910f598f0..910f598f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9091dc2286b3441b5f93126237daf638edd5029c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9091dc2286b3441b5f93126237daf638edd5029c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/90e9a113f0db536a21e9f9c882ac6919167df0d2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/90e9a113f0db536a21e9f9c882ac6919167df0d2
index f6c556233..f6c556233 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/90e9a113f0db536a21e9f9c882ac6919167df0d2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/90e9a113f0db536a21e9f9c882ac6919167df0d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/91a80b1c53311c4e44c311f53bc9ab2f37f123cb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/91a80b1c53311c4e44c311f53bc9ab2f37f123cb
index 915bc6a01..915bc6a01 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/91a80b1c53311c4e44c311f53bc9ab2f37f123cb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/91a80b1c53311c4e44c311f53bc9ab2f37f123cb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/91e4709ef48d16b470758a603f1ac2147497167f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/91e4709ef48d16b470758a603f1ac2147497167f
index 4a5d9b2ff..4a5d9b2ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/91e4709ef48d16b470758a603f1ac2147497167f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/91e4709ef48d16b470758a603f1ac2147497167f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/91ec9673c9cfa8a2ec6db11cf4a58c58c31d9dd9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/91ec9673c9cfa8a2ec6db11cf4a58c58c31d9dd9
index dc3465e69..dc3465e69 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/91ec9673c9cfa8a2ec6db11cf4a58c58c31d9dd9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/91ec9673c9cfa8a2ec6db11cf4a58c58c31d9dd9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/92025397e2bd3558563a71e8e863b3d2bc4a1727 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/92025397e2bd3558563a71e8e863b3d2bc4a1727
index b009ba7af..b009ba7af 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/92025397e2bd3558563a71e8e863b3d2bc4a1727
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/92025397e2bd3558563a71e8e863b3d2bc4a1727
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9265104936629d6c3e75f77dd6262b6ccb74d976 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9265104936629d6c3e75f77dd6262b6ccb74d976
index fd4bf009f..fd4bf009f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9265104936629d6c3e75f77dd6262b6ccb74d976
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9265104936629d6c3e75f77dd6262b6ccb74d976
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/928ffee0253d1f8555bc73f7f2b2d2cdc9c14061 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/928ffee0253d1f8555bc73f7f2b2d2cdc9c14061
index ce0268936..ce0268936 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/928ffee0253d1f8555bc73f7f2b2d2cdc9c14061
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/928ffee0253d1f8555bc73f7f2b2d2cdc9c14061
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/931fb0e28b2b368a552ccd1c7961470543dbd421 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/931fb0e28b2b368a552ccd1c7961470543dbd421
index 47b999d4a..47b999d4a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/931fb0e28b2b368a552ccd1c7961470543dbd421
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/931fb0e28b2b368a552ccd1c7961470543dbd421
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/93390ccee1e0caa981b7775f128e9ccce2b5e2e0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/93390ccee1e0caa981b7775f128e9ccce2b5e2e0
index f146c7a28..f146c7a28 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/93390ccee1e0caa981b7775f128e9ccce2b5e2e0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/93390ccee1e0caa981b7775f128e9ccce2b5e2e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/934bd9c1e0aac166755d44083f9464a2f0927bf3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/934bd9c1e0aac166755d44083f9464a2f0927bf3
index 88995d97a..88995d97a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/934bd9c1e0aac166755d44083f9464a2f0927bf3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/934bd9c1e0aac166755d44083f9464a2f0927bf3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/935e766e05eea7995fd39d1255e777d0395efc41 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/935e766e05eea7995fd39d1255e777d0395efc41
index 7340b0110..7340b0110 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/935e766e05eea7995fd39d1255e777d0395efc41
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/935e766e05eea7995fd39d1255e777d0395efc41
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/937171d03de05fcf5e1049dc47c82fca53d4b556 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/937171d03de05fcf5e1049dc47c82fca53d4b556
index 4346e781c..4346e781c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/937171d03de05fcf5e1049dc47c82fca53d4b556
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/937171d03de05fcf5e1049dc47c82fca53d4b556
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/93d87a302bafedfb724b2d7e18558f2b47dc1b7a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/93d87a302bafedfb724b2d7e18558f2b47dc1b7a
index 6f2259491..6f2259491 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/93d87a302bafedfb724b2d7e18558f2b47dc1b7a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/93d87a302bafedfb724b2d7e18558f2b47dc1b7a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9414eb0efbdb0ee56d4cec27eae22c02ded9f507 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9414eb0efbdb0ee56d4cec27eae22c02ded9f507
index 73fb895ae..73fb895ae 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9414eb0efbdb0ee56d4cec27eae22c02ded9f507
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9414eb0efbdb0ee56d4cec27eae22c02ded9f507
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/942b79a2183a89ef902705f1b57adc51bd7509b2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/942b79a2183a89ef902705f1b57adc51bd7509b2
index 4e99882e1..4e99882e1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/942b79a2183a89ef902705f1b57adc51bd7509b2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/942b79a2183a89ef902705f1b57adc51bd7509b2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9474ac21ac4afa74ed0c7ab12057165c25cfc366 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9474ac21ac4afa74ed0c7ab12057165c25cfc366
index e8ce8ad67..e8ce8ad67 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9474ac21ac4afa74ed0c7ab12057165c25cfc366
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9474ac21ac4afa74ed0c7ab12057165c25cfc366
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/94be3fe71ea66040a986661a9631ef528ad83cd6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/94be3fe71ea66040a986661a9631ef528ad83cd6
index ceb6a03d1..ceb6a03d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/94be3fe71ea66040a986661a9631ef528ad83cd6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/94be3fe71ea66040a986661a9631ef528ad83cd6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/94e434b06ed09d3e2654632d8f80ba258f6bef10 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/94e434b06ed09d3e2654632d8f80ba258f6bef10
index 6fe6062da..6fe6062da 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/94e434b06ed09d3e2654632d8f80ba258f6bef10
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/94e434b06ed09d3e2654632d8f80ba258f6bef10
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/94f73f0b847ebf0c867e24419d46a3505018ad75 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/94f73f0b847ebf0c867e24419d46a3505018ad75
index 562cc5327..562cc5327 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/94f73f0b847ebf0c867e24419d46a3505018ad75
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/94f73f0b847ebf0c867e24419d46a3505018ad75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/951d1b4799d93d46a105a267fcd2089f155312f0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/951d1b4799d93d46a105a267fcd2089f155312f0
index 465e23a00..465e23a00 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/951d1b4799d93d46a105a267fcd2089f155312f0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/951d1b4799d93d46a105a267fcd2089f155312f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9543f14d2a4bb1e17c5c8cee9b4db9b68ae66309 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9543f14d2a4bb1e17c5c8cee9b4db9b68ae66309
index dc48b90fe..dc48b90fe 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9543f14d2a4bb1e17c5c8cee9b4db9b68ae66309
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9543f14d2a4bb1e17c5c8cee9b4db9b68ae66309
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/957f4a7fe4f5c359be4240fb7d5a7db872572035 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/957f4a7fe4f5c359be4240fb7d5a7db872572035
index e0ef7bfe6..e0ef7bfe6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/957f4a7fe4f5c359be4240fb7d5a7db872572035
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/957f4a7fe4f5c359be4240fb7d5a7db872572035
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/95b47ad155cccdd5f8ee2bcf888f11f0f7182d50 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/95b47ad155cccdd5f8ee2bcf888f11f0f7182d50
index 2560cdbc7..2560cdbc7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/95b47ad155cccdd5f8ee2bcf888f11f0f7182d50
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/95b47ad155cccdd5f8ee2bcf888f11f0f7182d50
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/95c1ec1dd6a34df0e980387650553bf4d5dea1b8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/95c1ec1dd6a34df0e980387650553bf4d5dea1b8
index e9fd739bc..e9fd739bc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/95c1ec1dd6a34df0e980387650553bf4d5dea1b8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/95c1ec1dd6a34df0e980387650553bf4d5dea1b8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/95f796ceab7e82c261932d7e27dc56b179e04c49 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/95f796ceab7e82c261932d7e27dc56b179e04c49
index 912ae8f8b..912ae8f8b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/95f796ceab7e82c261932d7e27dc56b179e04c49
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/95f796ceab7e82c261932d7e27dc56b179e04c49
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/963ffbd090a3999ae2ade338612a68a020dd6ebc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/963ffbd090a3999ae2ade338612a68a020dd6ebc
index 182eff34e..182eff34e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/963ffbd090a3999ae2ade338612a68a020dd6ebc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/963ffbd090a3999ae2ade338612a68a020dd6ebc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/96d2c6e6eaaef9a4373c5162e4097acc357a22e5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/96d2c6e6eaaef9a4373c5162e4097acc357a22e5
index 2a05520ca..2a05520ca 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/96d2c6e6eaaef9a4373c5162e4097acc357a22e5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/96d2c6e6eaaef9a4373c5162e4097acc357a22e5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/970e4e2bf2a5b0019d8021c54026323087ac0b0a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/970e4e2bf2a5b0019d8021c54026323087ac0b0a
index 8c2e84061..8c2e84061 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/970e4e2bf2a5b0019d8021c54026323087ac0b0a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/970e4e2bf2a5b0019d8021c54026323087ac0b0a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9721635a8df59980f8540ce8a94d759e2234e24b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9721635a8df59980f8540ce8a94d759e2234e24b
index 497d93f9c..497d93f9c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9721635a8df59980f8540ce8a94d759e2234e24b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9721635a8df59980f8540ce8a94d759e2234e24b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/974365d9eb83fb261abb666f4763eb31e24aad9d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/974365d9eb83fb261abb666f4763eb31e24aad9d
index 21e5d7dae..21e5d7dae 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/974365d9eb83fb261abb666f4763eb31e24aad9d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/974365d9eb83fb261abb666f4763eb31e24aad9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/97797e4332edd43a38f6e53d40a98f1f8deb8a6b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97797e4332edd43a38f6e53d40a98f1f8deb8a6b
index daee17c47..daee17c47 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/97797e4332edd43a38f6e53d40a98f1f8deb8a6b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97797e4332edd43a38f6e53d40a98f1f8deb8a6b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9799518327c011a1181a910a3f526cb76b0ec712 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9799518327c011a1181a910a3f526cb76b0ec712
index 298264b40..298264b40 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9799518327c011a1181a910a3f526cb76b0ec712
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9799518327c011a1181a910a3f526cb76b0ec712
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/97ab2ce9aa724b21c40964fb1a91a6ea5e4c3008 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97ab2ce9aa724b21c40964fb1a91a6ea5e4c3008
index f9dbf9622..f9dbf9622 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/97ab2ce9aa724b21c40964fb1a91a6ea5e4c3008
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97ab2ce9aa724b21c40964fb1a91a6ea5e4c3008
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/97ac0d484e6b268c941cd7fdeaa1b80ec52ea69b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97ac0d484e6b268c941cd7fdeaa1b80ec52ea69b
index a4414140c..a4414140c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/97ac0d484e6b268c941cd7fdeaa1b80ec52ea69b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97ac0d484e6b268c941cd7fdeaa1b80ec52ea69b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/97d849e279cf3fd4ebadae6fcfb18782de9e2258 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97d849e279cf3fd4ebadae6fcfb18782de9e2258
index e84653d5f..e84653d5f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/97d849e279cf3fd4ebadae6fcfb18782de9e2258
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97d849e279cf3fd4ebadae6fcfb18782de9e2258
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/97ec695fe461479141b137b5df92a739610cb355 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97ec695fe461479141b137b5df92a739610cb355
index 929146c91..929146c91 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/97ec695fe461479141b137b5df92a739610cb355
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97ec695fe461479141b137b5df92a739610cb355
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/97f4caff5c58631eed16e412b3fc40f9474319c3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97f4caff5c58631eed16e412b3fc40f9474319c3
index b99adb87e..b99adb87e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/97f4caff5c58631eed16e412b3fc40f9474319c3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/97f4caff5c58631eed16e412b3fc40f9474319c3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/984674784063c9d95e7a28df446062730530764f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/984674784063c9d95e7a28df446062730530764f
index adea66645..adea66645 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/984674784063c9d95e7a28df446062730530764f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/984674784063c9d95e7a28df446062730530764f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9885f2dcf80151022042587ce75fb8bb37bf9fc9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9885f2dcf80151022042587ce75fb8bb37bf9fc9
index b0200ad22..b0200ad22 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9885f2dcf80151022042587ce75fb8bb37bf9fc9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9885f2dcf80151022042587ce75fb8bb37bf9fc9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/988af3e4bc12d9707ccafb6479413d1320d2e6a7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/988af3e4bc12d9707ccafb6479413d1320d2e6a7
index b8bc12846..b8bc12846 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/988af3e4bc12d9707ccafb6479413d1320d2e6a7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/988af3e4bc12d9707ccafb6479413d1320d2e6a7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/98a3b6eb34471559fdf5ae7cee00e58cc274ccec b/src/web/server/h2o/libh2o/fuzz/http2-corpus/98a3b6eb34471559fdf5ae7cee00e58cc274ccec
index 958c8cde4..958c8cde4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/98a3b6eb34471559fdf5ae7cee00e58cc274ccec
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/98a3b6eb34471559fdf5ae7cee00e58cc274ccec
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/98c351b89368995ed3c6e3a4eae6572b31126409 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/98c351b89368995ed3c6e3a4eae6572b31126409
index aed576cfa..aed576cfa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/98c351b89368995ed3c6e3a4eae6572b31126409
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/98c351b89368995ed3c6e3a4eae6572b31126409
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/99018bfa450d73634ca5d51d7cad1c622ffc2154 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/99018bfa450d73634ca5d51d7cad1c622ffc2154
index 21e8ea1d7..21e8ea1d7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/99018bfa450d73634ca5d51d7cad1c622ffc2154
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/99018bfa450d73634ca5d51d7cad1c622ffc2154
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/991715858e1c09f3faa4972f71463d3bf6d133da b/src/web/server/h2o/libh2o/fuzz/http2-corpus/991715858e1c09f3faa4972f71463d3bf6d133da
index 28d39f8c8..28d39f8c8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/991715858e1c09f3faa4972f71463d3bf6d133da
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/991715858e1c09f3faa4972f71463d3bf6d133da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/993bc07e3da54a9872dba35ccd25b4090066485a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/993bc07e3da54a9872dba35ccd25b4090066485a
index a135d9793..a135d9793 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/993bc07e3da54a9872dba35ccd25b4090066485a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/993bc07e3da54a9872dba35ccd25b4090066485a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9942f5bf94ebda3dc3f6d6f9bc689d320c414ddd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9942f5bf94ebda3dc3f6d6f9bc689d320c414ddd
index 8c9a53b2b..8c9a53b2b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9942f5bf94ebda3dc3f6d6f9bc689d320c414ddd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9942f5bf94ebda3dc3f6d6f9bc689d320c414ddd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9969d1bf255f07a3b39a75256817bd48722a66b4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9969d1bf255f07a3b39a75256817bd48722a66b4
index 97c1bd5bc..97c1bd5bc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9969d1bf255f07a3b39a75256817bd48722a66b4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9969d1bf255f07a3b39a75256817bd48722a66b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/99adc9be46f119fa89033938710fef7cba5a6b0c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/99adc9be46f119fa89033938710fef7cba5a6b0c
index 436cf333c..436cf333c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/99adc9be46f119fa89033938710fef7cba5a6b0c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/99adc9be46f119fa89033938710fef7cba5a6b0c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/99b1ea0121c82754d7d98e0ec0bdc2cfeed9bde1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/99b1ea0121c82754d7d98e0ec0bdc2cfeed9bde1
index 0c43b2cbf..0c43b2cbf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/99b1ea0121c82754d7d98e0ec0bdc2cfeed9bde1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/99b1ea0121c82754d7d98e0ec0bdc2cfeed9bde1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9a6573f1622939fa9500c6132ba01f3c64da3ffe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9a6573f1622939fa9500c6132ba01f3c64da3ffe
index b0ba273fa..b0ba273fa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9a6573f1622939fa9500c6132ba01f3c64da3ffe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9a6573f1622939fa9500c6132ba01f3c64da3ffe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9a92def8d0b2d9d59efab84790420c6d3a6edb5e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9a92def8d0b2d9d59efab84790420c6d3a6edb5e
index b9fbc7e57..b9fbc7e57 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9a92def8d0b2d9d59efab84790420c6d3a6edb5e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9a92def8d0b2d9d59efab84790420c6d3a6edb5e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9b0934cca5a8f9a1b922c78fa1f9472356af5067 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9b0934cca5a8f9a1b922c78fa1f9472356af5067
index 4c70d141d..4c70d141d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9b0934cca5a8f9a1b922c78fa1f9472356af5067
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9b0934cca5a8f9a1b922c78fa1f9472356af5067
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9b5453e6f6678cd11d8ddaf3c63cb358c779720e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9b5453e6f6678cd11d8ddaf3c63cb358c779720e
index 5494e6e0e..5494e6e0e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9b5453e6f6678cd11d8ddaf3c63cb358c779720e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9b5453e6f6678cd11d8ddaf3c63cb358c779720e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9b912d59a1cd183f9def375293360d32373fff24 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9b912d59a1cd183f9def375293360d32373fff24
index cd8a4a841..cd8a4a841 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9b912d59a1cd183f9def375293360d32373fff24
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9b912d59a1cd183f9def375293360d32373fff24
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9bdd595e12dee6320928c3219268255c7d3536d6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9bdd595e12dee6320928c3219268255c7d3536d6
index 4103337b3..4103337b3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9bdd595e12dee6320928c3219268255c7d3536d6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9bdd595e12dee6320928c3219268255c7d3536d6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9c4a77fcad9902707a5e3beee1f36ec67e2f7285 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9c4a77fcad9902707a5e3beee1f36ec67e2f7285
index 42d494449..42d494449 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9c4a77fcad9902707a5e3beee1f36ec67e2f7285
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9c4a77fcad9902707a5e3beee1f36ec67e2f7285
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9ca31d7b00ae9160bfaf03d147851a36632c2715 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9ca31d7b00ae9160bfaf03d147851a36632c2715
index 76ed7c5a6..76ed7c5a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9ca31d7b00ae9160bfaf03d147851a36632c2715
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9ca31d7b00ae9160bfaf03d147851a36632c2715
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9ca6ba86d94f42475a7cd1756cd1db97af0a3efc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9ca6ba86d94f42475a7cd1756cd1db97af0a3efc
index e9e6bcca9..e9e6bcca9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9ca6ba86d94f42475a7cd1756cd1db97af0a3efc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9ca6ba86d94f42475a7cd1756cd1db97af0a3efc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9cf0910400bc91fa413c37730e040d91e21f361f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9cf0910400bc91fa413c37730e040d91e21f361f
index ba2f2b390..ba2f2b390 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9cf0910400bc91fa413c37730e040d91e21f361f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9cf0910400bc91fa413c37730e040d91e21f361f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9d035ab821b0507033a3b894a46e09d7ba16fb28 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d035ab821b0507033a3b894a46e09d7ba16fb28
index dedab010a..dedab010a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9d035ab821b0507033a3b894a46e09d7ba16fb28
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d035ab821b0507033a3b894a46e09d7ba16fb28
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9d3afaec830a5d36105b9753ef080a965eb27250 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d3afaec830a5d36105b9753ef080a965eb27250
index f7fab105d..f7fab105d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9d3afaec830a5d36105b9753ef080a965eb27250
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d3afaec830a5d36105b9753ef080a965eb27250
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9d46f86d640689ffb84a7558318fa870db4a2e26 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d46f86d640689ffb84a7558318fa870db4a2e26
index 2e5b4c938..2e5b4c938 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9d46f86d640689ffb84a7558318fa870db4a2e26
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d46f86d640689ffb84a7558318fa870db4a2e26
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9d505a22c0c004c4fba262801764687a6b7d5f05 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d505a22c0c004c4fba262801764687a6b7d5f05
index 1ba64336f..1ba64336f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9d505a22c0c004c4fba262801764687a6b7d5f05
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d505a22c0c004c4fba262801764687a6b7d5f05
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9d75bc7c60535a1ee4fd16a59a08a589ffda361d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d75bc7c60535a1ee4fd16a59a08a589ffda361d
index 006f60189..006f60189 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9d75bc7c60535a1ee4fd16a59a08a589ffda361d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9d75bc7c60535a1ee4fd16a59a08a589ffda361d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9db78cd6283be49eb1976648d25dc3769bc080a3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9db78cd6283be49eb1976648d25dc3769bc080a3
index 5706130bc..5706130bc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9db78cd6283be49eb1976648d25dc3769bc080a3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9db78cd6283be49eb1976648d25dc3769bc080a3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9e07ca97fa738f5e1c20a5cd21af3515d0f251db b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e07ca97fa738f5e1c20a5cd21af3515d0f251db
index b75482e1c..b75482e1c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9e07ca97fa738f5e1c20a5cd21af3515d0f251db
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e07ca97fa738f5e1c20a5cd21af3515d0f251db
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9e2c98c392e8d38531c039d9e78da563dcb7036d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e2c98c392e8d38531c039d9e78da563dcb7036d
index fcfe901b6..fcfe901b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9e2c98c392e8d38531c039d9e78da563dcb7036d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e2c98c392e8d38531c039d9e78da563dcb7036d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9e328d5146a3a97038bd7e2f47ad6cc9d2717e00 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e328d5146a3a97038bd7e2f47ad6cc9d2717e00
index 604a6d6ab..604a6d6ab 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9e328d5146a3a97038bd7e2f47ad6cc9d2717e00
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e328d5146a3a97038bd7e2f47ad6cc9d2717e00
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9e5d71ba875ffd7a8d50fc749b19822722021c00 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e5d71ba875ffd7a8d50fc749b19822722021c00
index 0ca1278c3..0ca1278c3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9e5d71ba875ffd7a8d50fc749b19822722021c00
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e5d71ba875ffd7a8d50fc749b19822722021c00
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9e996117da5f8e5708bb6c073155665522fbec7e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e996117da5f8e5708bb6c073155665522fbec7e
index 92ea87dc5..92ea87dc5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9e996117da5f8e5708bb6c073155665522fbec7e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e996117da5f8e5708bb6c073155665522fbec7e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9e9e620a711a298ab29f78f74038f8054e6eb772 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e9e620a711a298ab29f78f74038f8054e6eb772
index 22b395324..22b395324 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9e9e620a711a298ab29f78f74038f8054e6eb772
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9e9e620a711a298ab29f78f74038f8054e6eb772
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9ec26ceaf433a2b6f14eda730df57caedc95dcf5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9ec26ceaf433a2b6f14eda730df57caedc95dcf5
index e60e0eabc..e60e0eabc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9ec26ceaf433a2b6f14eda730df57caedc95dcf5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9ec26ceaf433a2b6f14eda730df57caedc95dcf5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9eca21fd7247ce68728f02ddb7da76da8cf8b5cf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9eca21fd7247ce68728f02ddb7da76da8cf8b5cf
index ac4547894..ac4547894 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9eca21fd7247ce68728f02ddb7da76da8cf8b5cf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9eca21fd7247ce68728f02ddb7da76da8cf8b5cf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9f09253de47838b66e30cd6c32d8a9e42040cdba b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f09253de47838b66e30cd6c32d8a9e42040cdba
index adab86273..adab86273 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9f09253de47838b66e30cd6c32d8a9e42040cdba
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f09253de47838b66e30cd6c32d8a9e42040cdba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9f2c3b15416ced881ecc2f2dc8503e75a15f8cfc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f2c3b15416ced881ecc2f2dc8503e75a15f8cfc
index 2146c6fcc..2146c6fcc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9f2c3b15416ced881ecc2f2dc8503e75a15f8cfc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f2c3b15416ced881ecc2f2dc8503e75a15f8cfc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9f5804820808a67093c6ecedda816f163161d0ab b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f5804820808a67093c6ecedda816f163161d0ab
index a2046ee3a..a2046ee3a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9f5804820808a67093c6ecedda816f163161d0ab
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f5804820808a67093c6ecedda816f163161d0ab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9f726bbbd4e38d10d0a18dcb4b86677c281befa6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f726bbbd4e38d10d0a18dcb4b86677c281befa6
index 319eeee01..319eeee01 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9f726bbbd4e38d10d0a18dcb4b86677c281befa6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9f726bbbd4e38d10d0a18dcb4b86677c281befa6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9fac97ef6de31faf85a383b6dcc375b49bdaa13d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9fac97ef6de31faf85a383b6dcc375b49bdaa13d
index 494b44eda..494b44eda 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9fac97ef6de31faf85a383b6dcc375b49bdaa13d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9fac97ef6de31faf85a383b6dcc375b49bdaa13d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/9fb2d36917bd393b386f0aee237dcdbf7d57dab5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9fb2d36917bd393b386f0aee237dcdbf7d57dab5
index 286d6a1e8..286d6a1e8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/9fb2d36917bd393b386f0aee237dcdbf7d57dab5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/9fb2d36917bd393b386f0aee237dcdbf7d57dab5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a0205a7a8052922a90a6ec3ca5e9b3fc387b1320 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0205a7a8052922a90a6ec3ca5e9b3fc387b1320
index 97c0db42e..97c0db42e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a0205a7a8052922a90a6ec3ca5e9b3fc387b1320
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0205a7a8052922a90a6ec3ca5e9b3fc387b1320
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a03038c063c63e969caaecc92ea36e9dd470f5d6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a03038c063c63e969caaecc92ea36e9dd470f5d6
index b7cfc5989..b7cfc5989 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a03038c063c63e969caaecc92ea36e9dd470f5d6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a03038c063c63e969caaecc92ea36e9dd470f5d6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a0348e9c72dea0f1ce62ea4b233ced419e41a8a0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0348e9c72dea0f1ce62ea4b233ced419e41a8a0
index 42ba180c1..42ba180c1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a0348e9c72dea0f1ce62ea4b233ced419e41a8a0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0348e9c72dea0f1ce62ea4b233ced419e41a8a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a07792a97d409e8df5459eb163e26d462f692115 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a07792a97d409e8df5459eb163e26d462f692115
index 957c7fb95..957c7fb95 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a07792a97d409e8df5459eb163e26d462f692115
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a07792a97d409e8df5459eb163e26d462f692115
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a0a3c3eafe9feaf839ba5843101f42ff43cf60e2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0a3c3eafe9feaf839ba5843101f42ff43cf60e2
index ca5878230..ca5878230 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a0a3c3eafe9feaf839ba5843101f42ff43cf60e2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0a3c3eafe9feaf839ba5843101f42ff43cf60e2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a0fe8413d47e74f5f6cb17fe0b09307e723a9b75 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0fe8413d47e74f5f6cb17fe0b09307e723a9b75
index bbf66713b..bbf66713b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a0fe8413d47e74f5f6cb17fe0b09307e723a9b75
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a0fe8413d47e74f5f6cb17fe0b09307e723a9b75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a10fe35b9c384f1629c33433fe1d5e9c41928202 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a10fe35b9c384f1629c33433fe1d5e9c41928202
index e7b84f1b7..e7b84f1b7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a10fe35b9c384f1629c33433fe1d5e9c41928202
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a10fe35b9c384f1629c33433fe1d5e9c41928202
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af
index e98dddb06..e98dddb06 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a1419a0bb9b1f479fa40c4fd16fb4387991911af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a143a4eb8630481f5231e3eb8fc181bad9aa9878 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a143a4eb8630481f5231e3eb8fc181bad9aa9878
index e4105f683..e4105f683 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a143a4eb8630481f5231e3eb8fc181bad9aa9878
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a143a4eb8630481f5231e3eb8fc181bad9aa9878
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a14ed229e766fdd64430b17114dce4febe0fd2f0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a14ed229e766fdd64430b17114dce4febe0fd2f0
index 2bdf07dc0..2bdf07dc0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a14ed229e766fdd64430b17114dce4febe0fd2f0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a14ed229e766fdd64430b17114dce4febe0fd2f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a1f301c92dca35563ac78afbfde757749a1422b1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a1f301c92dca35563ac78afbfde757749a1422b1
index 493555a70..493555a70 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a1f301c92dca35563ac78afbfde757749a1422b1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a1f301c92dca35563ac78afbfde757749a1422b1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a21d39f374dc90b770d4181ef63bf9600b528d92 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a21d39f374dc90b770d4181ef63bf9600b528d92
index 4e0b41615..4e0b41615 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a21d39f374dc90b770d4181ef63bf9600b528d92
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a21d39f374dc90b770d4181ef63bf9600b528d92
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a244547871eb202d63553010ae827d2ce49318f1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a244547871eb202d63553010ae827d2ce49318f1
index 855b3c027..855b3c027 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a244547871eb202d63553010ae827d2ce49318f1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a244547871eb202d63553010ae827d2ce49318f1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a24656c5279b05da144f5382295f35b09af0ff40 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a24656c5279b05da144f5382295f35b09af0ff40
index 13177469c..13177469c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a24656c5279b05da144f5382295f35b09af0ff40
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a24656c5279b05da144f5382295f35b09af0ff40
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a258d3fa36acef29e005b58426ba5fd8c6da64fe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a258d3fa36acef29e005b58426ba5fd8c6da64fe
index c1f96780f..c1f96780f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a258d3fa36acef29e005b58426ba5fd8c6da64fe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a258d3fa36acef29e005b58426ba5fd8c6da64fe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a263b080f7fb2a07eedb810042b88407304b8371 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a263b080f7fb2a07eedb810042b88407304b8371
index 5126eb906..5126eb906 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a263b080f7fb2a07eedb810042b88407304b8371
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a263b080f7fb2a07eedb810042b88407304b8371
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a35c3ea7024d92b5765f3232f27ddd8eff0875a9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a35c3ea7024d92b5765f3232f27ddd8eff0875a9
index dd532981c..dd532981c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a35c3ea7024d92b5765f3232f27ddd8eff0875a9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a35c3ea7024d92b5765f3232f27ddd8eff0875a9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a368f77bb51cfab9b8601652b2783c79394f391e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a368f77bb51cfab9b8601652b2783c79394f391e
index f8bf1f6ba..f8bf1f6ba 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a368f77bb51cfab9b8601652b2783c79394f391e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a368f77bb51cfab9b8601652b2783c79394f391e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a3eab665e82c6e277ffc679b84bd59c8725751d0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a3eab665e82c6e277ffc679b84bd59c8725751d0
index d6783f046..d6783f046 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a3eab665e82c6e277ffc679b84bd59c8725751d0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a3eab665e82c6e277ffc679b84bd59c8725751d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a3feb02a6e3e44b8bf729d523d9c963164264e47 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a3feb02a6e3e44b8bf729d523d9c963164264e47
index 5f8abb278..5f8abb278 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a3feb02a6e3e44b8bf729d523d9c963164264e47
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a3feb02a6e3e44b8bf729d523d9c963164264e47
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a467340b84d1dcf78ff3d002cd7f0a78cd5e853b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a467340b84d1dcf78ff3d002cd7f0a78cd5e853b
index 1660d6c37..1660d6c37 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a467340b84d1dcf78ff3d002cd7f0a78cd5e853b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a467340b84d1dcf78ff3d002cd7f0a78cd5e853b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a4fa3ae35d0ffe4ef2545197a97417e3b1adc920 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a4fa3ae35d0ffe4ef2545197a97417e3b1adc920
index bc859d247..bc859d247 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a4fa3ae35d0ffe4ef2545197a97417e3b1adc920
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a4fa3ae35d0ffe4ef2545197a97417e3b1adc920
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a568fe76ada949f7df12e643a130a2a62c029519 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a568fe76ada949f7df12e643a130a2a62c029519
index 4673bee71..4673bee71 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a568fe76ada949f7df12e643a130a2a62c029519
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a568fe76ada949f7df12e643a130a2a62c029519
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a57748c90e4e30adee90b1d44acd52c846c9fed9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a57748c90e4e30adee90b1d44acd52c846c9fed9
index 68fad1d0b..68fad1d0b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a57748c90e4e30adee90b1d44acd52c846c9fed9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a57748c90e4e30adee90b1d44acd52c846c9fed9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a5c8f444a2edf61d823306afdd2f100ea2db187c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5c8f444a2edf61d823306afdd2f100ea2db187c
index 141f0417f..141f0417f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a5c8f444a2edf61d823306afdd2f100ea2db187c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5c8f444a2edf61d823306afdd2f100ea2db187c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a5dee33a5f0fda5812bd850bc2fc3cdf2469d6f5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5dee33a5f0fda5812bd850bc2fc3cdf2469d6f5
index ff0765bb0..ff0765bb0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a5dee33a5f0fda5812bd850bc2fc3cdf2469d6f5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5dee33a5f0fda5812bd850bc2fc3cdf2469d6f5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a5e63370ba63cc2eeeeb524a097d244ab1cf36af b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5e63370ba63cc2eeeeb524a097d244ab1cf36af
index 520c8f8ef..520c8f8ef 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a5e63370ba63cc2eeeeb524a097d244ab1cf36af
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5e63370ba63cc2eeeeb524a097d244ab1cf36af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a5f464a8a475d0421e0bf8811afd02f022eff16a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5f464a8a475d0421e0bf8811afd02f022eff16a
index e50091900..e50091900 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a5f464a8a475d0421e0bf8811afd02f022eff16a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5f464a8a475d0421e0bf8811afd02f022eff16a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a5fb28b6810ce25efb4d79939d3fc5958fc7b855 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5fb28b6810ce25efb4d79939d3fc5958fc7b855
index aa60f1117..aa60f1117 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a5fb28b6810ce25efb4d79939d3fc5958fc7b855
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a5fb28b6810ce25efb4d79939d3fc5958fc7b855
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a6573d4e52f35671370bd2fe7555f69c20acb5bd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6573d4e52f35671370bd2fe7555f69c20acb5bd
index 60bb6cfeb..60bb6cfeb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a6573d4e52f35671370bd2fe7555f69c20acb5bd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6573d4e52f35671370bd2fe7555f69c20acb5bd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a6ab7af8c7a3711eb2de18c68504ea333ffe8735 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6ab7af8c7a3711eb2de18c68504ea333ffe8735
index 1cf708b0f..1cf708b0f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a6ab7af8c7a3711eb2de18c68504ea333ffe8735
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6ab7af8c7a3711eb2de18c68504ea333ffe8735
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a6e57b5c5411c3b00e89f751c7306185cd4a2700 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6e57b5c5411c3b00e89f751c7306185cd4a2700
index 1143a940e..1143a940e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a6e57b5c5411c3b00e89f751c7306185cd4a2700
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6e57b5c5411c3b00e89f751c7306185cd4a2700
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a6e5b449bbbe9b048a8fe051e4052bb907899756 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6e5b449bbbe9b048a8fe051e4052bb907899756
index 8aea2fec5..8aea2fec5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a6e5b449bbbe9b048a8fe051e4052bb907899756
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6e5b449bbbe9b048a8fe051e4052bb907899756
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a6f44b55be4083357478da1ba01bcbc317d89f9e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f44b55be4083357478da1ba01bcbc317d89f9e
index 5868ed296..5868ed296 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a6f44b55be4083357478da1ba01bcbc317d89f9e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f44b55be4083357478da1ba01bcbc317d89f9e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a6f5d2dd04c8f2fb80aaaa4734af2efbc186291e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f5d2dd04c8f2fb80aaaa4734af2efbc186291e
index 1175a0299..1175a0299 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a6f5d2dd04c8f2fb80aaaa4734af2efbc186291e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f5d2dd04c8f2fb80aaaa4734af2efbc186291e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a6f6f5a8bbfa80934d4507d7b0535d17f019b17e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f6f5a8bbfa80934d4507d7b0535d17f019b17e
index 35d695da5..35d695da5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a6f6f5a8bbfa80934d4507d7b0535d17f019b17e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a6f6f5a8bbfa80934d4507d7b0535d17f019b17e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a75ef6ab3c29943bc27d0eb31a1932cff747b8f8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a75ef6ab3c29943bc27d0eb31a1932cff747b8f8
index 4a1fae03b..4a1fae03b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a75ef6ab3c29943bc27d0eb31a1932cff747b8f8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a75ef6ab3c29943bc27d0eb31a1932cff747b8f8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a78951c1894e883104e4b97ec6b7c050fedf32f1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a78951c1894e883104e4b97ec6b7c050fedf32f1
index 410efbfe2..410efbfe2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a78951c1894e883104e4b97ec6b7c050fedf32f1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a78951c1894e883104e4b97ec6b7c050fedf32f1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a7e3bc7e135350cfe5ca34c0f3b9057663bca611 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a7e3bc7e135350cfe5ca34c0f3b9057663bca611
index 9142be11e..9142be11e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a7e3bc7e135350cfe5ca34c0f3b9057663bca611
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a7e3bc7e135350cfe5ca34c0f3b9057663bca611
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a884f714767a0e19f31a3f17890979ffb1e77259 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a884f714767a0e19f31a3f17890979ffb1e77259
index fd63c02cc..fd63c02cc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a884f714767a0e19f31a3f17890979ffb1e77259
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a884f714767a0e19f31a3f17890979ffb1e77259
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a887bb7c7a7af6c46c32b73eb492f8ad530dcb63 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a887bb7c7a7af6c46c32b73eb492f8ad530dcb63
index 6b0061a5e..6b0061a5e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a887bb7c7a7af6c46c32b73eb492f8ad530dcb63
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a887bb7c7a7af6c46c32b73eb492f8ad530dcb63
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a925ca7f672b821218be1030f8b721fc1bea1e1b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a925ca7f672b821218be1030f8b721fc1bea1e1b
index 422623425..422623425 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a925ca7f672b821218be1030f8b721fc1bea1e1b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a925ca7f672b821218be1030f8b721fc1bea1e1b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a955a25c91ec2ed4088d485adf3389429318ee29 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a955a25c91ec2ed4088d485adf3389429318ee29
index e18a795a0..e18a795a0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a955a25c91ec2ed4088d485adf3389429318ee29
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a955a25c91ec2ed4088d485adf3389429318ee29
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/a96b07a29bb7e1e2c3cb699b3a49900c76700ed5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a96b07a29bb7e1e2c3cb699b3a49900c76700ed5
index 0994eed6c..0994eed6c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/a96b07a29bb7e1e2c3cb699b3a49900c76700ed5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/a96b07a29bb7e1e2c3cb699b3a49900c76700ed5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aa2147880c14c0193552ae224ed7f500d04d3a88 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa2147880c14c0193552ae224ed7f500d04d3a88
index 8dee83e50..8dee83e50 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aa2147880c14c0193552ae224ed7f500d04d3a88
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa2147880c14c0193552ae224ed7f500d04d3a88
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aa2e66e2f91b6a48249232668e58b37c0bee1cee b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa2e66e2f91b6a48249232668e58b37c0bee1cee
index 10b246e17..10b246e17 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aa2e66e2f91b6a48249232668e58b37c0bee1cee
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa2e66e2f91b6a48249232668e58b37c0bee1cee
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aa84108797a53081000b971fc713ee8ce84753f9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa84108797a53081000b971fc713ee8ce84753f9
index d294aac69..d294aac69 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aa84108797a53081000b971fc713ee8ce84753f9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa84108797a53081000b971fc713ee8ce84753f9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aa906592bb9c78bd27c142f5391e4058bd1d8436 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa906592bb9c78bd27c142f5391e4058bd1d8436
index 3e10cfb06..3e10cfb06 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aa906592bb9c78bd27c142f5391e4058bd1d8436
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aa906592bb9c78bd27c142f5391e4058bd1d8436
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aac02f4b00bab13fb416920990df4bed13e7b206 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aac02f4b00bab13fb416920990df4bed13e7b206
index 95bd9b099..95bd9b099 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aac02f4b00bab13fb416920990df4bed13e7b206
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aac02f4b00bab13fb416920990df4bed13e7b206
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aaf5764d267ff71702002f56c8f88b2b934d2d9a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aaf5764d267ff71702002f56c8f88b2b934d2d9a
index 204fd0df6..204fd0df6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aaf5764d267ff71702002f56c8f88b2b934d2d9a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aaf5764d267ff71702002f56c8f88b2b934d2d9a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ab2684ec3eea7affc22969f4e87fd700960d5940 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab2684ec3eea7affc22969f4e87fd700960d5940
index 919752f3b..919752f3b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ab2684ec3eea7affc22969f4e87fd700960d5940
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab2684ec3eea7affc22969f4e87fd700960d5940
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ab56cb9639ef787d9542c06b2f30007815f962c1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab56cb9639ef787d9542c06b2f30007815f962c1
index ccc238516..ccc238516 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ab56cb9639ef787d9542c06b2f30007815f962c1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab56cb9639ef787d9542c06b2f30007815f962c1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ab5fdbb4f5ff84542052504bd2a92bd427c21820 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab5fdbb4f5ff84542052504bd2a92bd427c21820
index 40a47b3ed..40a47b3ed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ab5fdbb4f5ff84542052504bd2a92bd427c21820
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab5fdbb4f5ff84542052504bd2a92bd427c21820
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ab77dadc11fcb95187018e8d613e7bf5637ca6ea b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab77dadc11fcb95187018e8d613e7bf5637ca6ea
index b56981b65..b56981b65 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ab77dadc11fcb95187018e8d613e7bf5637ca6ea
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab77dadc11fcb95187018e8d613e7bf5637ca6ea
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ab8b775b4defb5a915816a781bf4f43c75fdd441 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab8b775b4defb5a915816a781bf4f43c75fdd441
index f0d0f63de..f0d0f63de 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ab8b775b4defb5a915816a781bf4f43c75fdd441
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab8b775b4defb5a915816a781bf4f43c75fdd441
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ab94ad341b38b17a30475905a9d3749aa613fb8d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab94ad341b38b17a30475905a9d3749aa613fb8d
index 8373511d9..8373511d9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ab94ad341b38b17a30475905a9d3749aa613fb8d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab94ad341b38b17a30475905a9d3749aa613fb8d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ab9c3a287eb0b062f852558cc92b9b2bd02e41df b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab9c3a287eb0b062f852558cc92b9b2bd02e41df
index d4bd5b6ed..d4bd5b6ed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ab9c3a287eb0b062f852558cc92b9b2bd02e41df
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ab9c3a287eb0b062f852558cc92b9b2bd02e41df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aba9daeedbf1bca1092e0656b4fa76ce9dc78ce8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aba9daeedbf1bca1092e0656b4fa76ce9dc78ce8
index 43ea831cf..43ea831cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aba9daeedbf1bca1092e0656b4fa76ce9dc78ce8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aba9daeedbf1bca1092e0656b4fa76ce9dc78ce8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/abe14d6a5d15366841128ff7b94d64c275d878a0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/abe14d6a5d15366841128ff7b94d64c275d878a0
index a1a03861b..a1a03861b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/abe14d6a5d15366841128ff7b94d64c275d878a0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/abe14d6a5d15366841128ff7b94d64c275d878a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ac5380456251d846a8a51ea806cb4fac5943ad30 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ac5380456251d846a8a51ea806cb4fac5943ad30
index 1beb549ce..1beb549ce 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ac5380456251d846a8a51ea806cb4fac5943ad30
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ac5380456251d846a8a51ea806cb4fac5943ad30
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ac6abf60f93d6be726c55936a32d58fa3b6ff3e7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ac6abf60f93d6be726c55936a32d58fa3b6ff3e7
index 7f7fd1084..7f7fd1084 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ac6abf60f93d6be726c55936a32d58fa3b6ff3e7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ac6abf60f93d6be726c55936a32d58fa3b6ff3e7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aca1b17f3e76a90a4a02fac45b537f8f9ed0aa47 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aca1b17f3e76a90a4a02fac45b537f8f9ed0aa47
index bb7787a51..bb7787a51 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aca1b17f3e76a90a4a02fac45b537f8f9ed0aa47
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aca1b17f3e76a90a4a02fac45b537f8f9ed0aa47
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ad417579405f401d0ebe1870b7d3b77511b53acc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad417579405f401d0ebe1870b7d3b77511b53acc
index 680cb038f..680cb038f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ad417579405f401d0ebe1870b7d3b77511b53acc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad417579405f401d0ebe1870b7d3b77511b53acc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ad47135e188e8ed4277a15d26b1e42800a03151d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad47135e188e8ed4277a15d26b1e42800a03151d
index 26c404b1e..26c404b1e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ad47135e188e8ed4277a15d26b1e42800a03151d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad47135e188e8ed4277a15d26b1e42800a03151d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ad6983fd2b59565aabeb607928a8ddfd452e33c8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad6983fd2b59565aabeb607928a8ddfd452e33c8
index b1379299b..b1379299b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ad6983fd2b59565aabeb607928a8ddfd452e33c8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad6983fd2b59565aabeb607928a8ddfd452e33c8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ad6fedcbaebce2625c1065cc53f96959fb88ff33 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad6fedcbaebce2625c1065cc53f96959fb88ff33
index cc0d7c9f2..cc0d7c9f2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ad6fedcbaebce2625c1065cc53f96959fb88ff33
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad6fedcbaebce2625c1065cc53f96959fb88ff33
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ad920010c6715011ef04514cd248bde23f092231 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad920010c6715011ef04514cd248bde23f092231
index e9eee85b1..e9eee85b1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ad920010c6715011ef04514cd248bde23f092231
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ad920010c6715011ef04514cd248bde23f092231
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/adf39f83c9df65de08737a10d88407e4c93d9008 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/adf39f83c9df65de08737a10d88407e4c93d9008
index 3cde2a5ae..3cde2a5ae 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/adf39f83c9df65de08737a10d88407e4c93d9008
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/adf39f83c9df65de08737a10d88407e4c93d9008
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ae0dddbbd4c5e88c4ef42c0c66bb5573e17cdf3c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae0dddbbd4c5e88c4ef42c0c66bb5573e17cdf3c
index 2fc80c642..2fc80c642 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ae0dddbbd4c5e88c4ef42c0c66bb5573e17cdf3c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae0dddbbd4c5e88c4ef42c0c66bb5573e17cdf3c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ae19696d8fccc707072c3532b8ad73303e7a477c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae19696d8fccc707072c3532b8ad73303e7a477c
index 67a26854c..67a26854c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ae19696d8fccc707072c3532b8ad73303e7a477c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae19696d8fccc707072c3532b8ad73303e7a477c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ae2f27b02152f331b7d51c1e8f8f88b1b5bfccf0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae2f27b02152f331b7d51c1e8f8f88b1b5bfccf0
index 4259085f0..4259085f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ae2f27b02152f331b7d51c1e8f8f88b1b5bfccf0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae2f27b02152f331b7d51c1e8f8f88b1b5bfccf0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ae3dd8ad2112e2c7d143cf05b7615361182de307 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae3dd8ad2112e2c7d143cf05b7615361182de307
index 1b9e20f3c..1b9e20f3c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ae3dd8ad2112e2c7d143cf05b7615361182de307
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ae3dd8ad2112e2c7d143cf05b7615361182de307
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aeb2a415748367633bb18649ab4e171bab61f91a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aeb2a415748367633bb18649ab4e171bab61f91a
index 52da6d8c1..52da6d8c1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aeb2a415748367633bb18649ab4e171bab61f91a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aeb2a415748367633bb18649ab4e171bab61f91a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aebd41dd0232c603a9257cb93f1f837f5f3239c6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aebd41dd0232c603a9257cb93f1f837f5f3239c6
index 692c62f19..692c62f19 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aebd41dd0232c603a9257cb93f1f837f5f3239c6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aebd41dd0232c603a9257cb93f1f837f5f3239c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/aeeecdfc1b5b17a5176a041f2dae72df696f30bf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aeeecdfc1b5b17a5176a041f2dae72df696f30bf
index 1b9f11900..1b9f11900 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/aeeecdfc1b5b17a5176a041f2dae72df696f30bf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/aeeecdfc1b5b17a5176a041f2dae72df696f30bf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/af32527383be884c4e2a39add59f2193708e0d7e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/af32527383be884c4e2a39add59f2193708e0d7e
index fef920661..fef920661 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/af32527383be884c4e2a39add59f2193708e0d7e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/af32527383be884c4e2a39add59f2193708e0d7e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/af639a7cff7e9be335cc54dea5c53409e7739f59 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/af639a7cff7e9be335cc54dea5c53409e7739f59
index 3a6a755b7..3a6a755b7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/af639a7cff7e9be335cc54dea5c53409e7739f59
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/af639a7cff7e9be335cc54dea5c53409e7739f59
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/afa57e95ebf2a3cdba7860bb621f003a3036687d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/afa57e95ebf2a3cdba7860bb621f003a3036687d
index fc07e8007..fc07e8007 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/afa57e95ebf2a3cdba7860bb621f003a3036687d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/afa57e95ebf2a3cdba7860bb621f003a3036687d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b0006d50ca7630d7adbef5d65e2a464bba2c7f36 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b0006d50ca7630d7adbef5d65e2a464bba2c7f36
index 064ce5453..064ce5453 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b0006d50ca7630d7adbef5d65e2a464bba2c7f36
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b0006d50ca7630d7adbef5d65e2a464bba2c7f36
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b00ba383d58d5e399bafcdf0766310ea029af55a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b00ba383d58d5e399bafcdf0766310ea029af55a
index 3114ae7d0..3114ae7d0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b00ba383d58d5e399bafcdf0766310ea029af55a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b00ba383d58d5e399bafcdf0766310ea029af55a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b015af33eb84baae35b46d57e1bc31b4e2446e61 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b015af33eb84baae35b46d57e1bc31b4e2446e61
index ed319a5e3..ed319a5e3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b015af33eb84baae35b46d57e1bc31b4e2446e61
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b015af33eb84baae35b46d57e1bc31b4e2446e61
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b02213198d3c54527d6a6542871bd191f79b81cd b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b02213198d3c54527d6a6542871bd191f79b81cd
index a54207271..a54207271 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b02213198d3c54527d6a6542871bd191f79b81cd
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b02213198d3c54527d6a6542871bd191f79b81cd
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b07e9e897fc44fb1e82525ca5f52887f67ffc6eb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b07e9e897fc44fb1e82525ca5f52887f67ffc6eb
index c8ead7ae6..c8ead7ae6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b07e9e897fc44fb1e82525ca5f52887f67ffc6eb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b07e9e897fc44fb1e82525ca5f52887f67ffc6eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b0de74dc6679e31cdde21d7bdf9d284878f857a7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b0de74dc6679e31cdde21d7bdf9d284878f857a7
index a040726ce..a040726ce 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b0de74dc6679e31cdde21d7bdf9d284878f857a7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b0de74dc6679e31cdde21d7bdf9d284878f857a7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b1121b82fda88040e4837c78128cce09af549690 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1121b82fda88040e4837c78128cce09af549690
index d00721cc0..d00721cc0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b1121b82fda88040e4837c78128cce09af549690
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1121b82fda88040e4837c78128cce09af549690
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b13e3b5c87de6ab79dc13c554acaecbe4b1d7c60 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b13e3b5c87de6ab79dc13c554acaecbe4b1d7c60
index 34798a1cb..34798a1cb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b13e3b5c87de6ab79dc13c554acaecbe4b1d7c60
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b13e3b5c87de6ab79dc13c554acaecbe4b1d7c60
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b1777eac1e65ebc2ca2739af8f6f3dcde7f8df08 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1777eac1e65ebc2ca2739af8f6f3dcde7f8df08
index 897f9358c..897f9358c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b1777eac1e65ebc2ca2739af8f6f3dcde7f8df08
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1777eac1e65ebc2ca2739af8f6f3dcde7f8df08
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b1aa3d02b67d2bc924c97451c5e9e16a6293a5f0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1aa3d02b67d2bc924c97451c5e9e16a6293a5f0
index 14cfb0088..14cfb0088 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b1aa3d02b67d2bc924c97451c5e9e16a6293a5f0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1aa3d02b67d2bc924c97451c5e9e16a6293a5f0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b1ec37017babcd85a9bc44fdb8d184b00f426301 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1ec37017babcd85a9bc44fdb8d184b00f426301
index 743b2e275..743b2e275 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b1ec37017babcd85a9bc44fdb8d184b00f426301
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b1ec37017babcd85a9bc44fdb8d184b00f426301
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b234cf92bea005c9dcef041ebf1ce2d925a0f9a0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b234cf92bea005c9dcef041ebf1ce2d925a0f9a0
index 51018fe41..51018fe41 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b234cf92bea005c9dcef041ebf1ce2d925a0f9a0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b234cf92bea005c9dcef041ebf1ce2d925a0f9a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b243872e1b31d82e00cf8d02001be6d9df3c2521 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b243872e1b31d82e00cf8d02001be6d9df3c2521
index 3fa636558..3fa636558 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b243872e1b31d82e00cf8d02001be6d9df3c2521
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b243872e1b31d82e00cf8d02001be6d9df3c2521
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b26c5059365c0aa22564f838bb1c9b9143dd37df b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b26c5059365c0aa22564f838bb1c9b9143dd37df
index 14ce32cbd..14ce32cbd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b26c5059365c0aa22564f838bb1c9b9143dd37df
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b26c5059365c0aa22564f838bb1c9b9143dd37df
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b27920486c55aa90952a05259277c87c54a72216 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b27920486c55aa90952a05259277c87c54a72216
index 6ae119e59..6ae119e59 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b27920486c55aa90952a05259277c87c54a72216
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b27920486c55aa90952a05259277c87c54a72216
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b2909fe87d8cf6b3c3846fa31f7c4fd0d41f0cdf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2909fe87d8cf6b3c3846fa31f7c4fd0d41f0cdf
index 345c96a3d..345c96a3d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b2909fe87d8cf6b3c3846fa31f7c4fd0d41f0cdf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2909fe87d8cf6b3c3846fa31f7c4fd0d41f0cdf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b2da58f1420620b0b417519aa1c3cde4551c223b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2da58f1420620b0b417519aa1c3cde4551c223b
index 7535ff7d6..7535ff7d6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b2da58f1420620b0b417519aa1c3cde4551c223b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2da58f1420620b0b417519aa1c3cde4551c223b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b2df99453c30b974426d7570d21096f82fe3f821 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2df99453c30b974426d7570d21096f82fe3f821
index 0054562bc..0054562bc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b2df99453c30b974426d7570d21096f82fe3f821
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2df99453c30b974426d7570d21096f82fe3f821
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b2efeda1fa16e00b74d6ebd159f0c4fabbe3bbac b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2efeda1fa16e00b74d6ebd159f0c4fabbe3bbac
index 525493074..525493074 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b2efeda1fa16e00b74d6ebd159f0c4fabbe3bbac
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2efeda1fa16e00b74d6ebd159f0c4fabbe3bbac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b2fb32ba75ba5a1e2b666d2d22d709fc623cdb31 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2fb32ba75ba5a1e2b666d2d22d709fc623cdb31
index c26b2b5e4..c26b2b5e4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b2fb32ba75ba5a1e2b666d2d22d709fc623cdb31
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b2fb32ba75ba5a1e2b666d2d22d709fc623cdb31
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b31166d15ddb468d2780aea873ad31e5adad55a3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b31166d15ddb468d2780aea873ad31e5adad55a3
index 0d9a59817..0d9a59817 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b31166d15ddb468d2780aea873ad31e5adad55a3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b31166d15ddb468d2780aea873ad31e5adad55a3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b316de36b719471dc35618093680ea7c43024a2f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b316de36b719471dc35618093680ea7c43024a2f
index dcd3f7b2d..dcd3f7b2d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b316de36b719471dc35618093680ea7c43024a2f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b316de36b719471dc35618093680ea7c43024a2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b32cdba6480bc15bbfaca5b12895eef3b8816eb3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b32cdba6480bc15bbfaca5b12895eef3b8816eb3
index 31c212f8a..31c212f8a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b32cdba6480bc15bbfaca5b12895eef3b8816eb3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b32cdba6480bc15bbfaca5b12895eef3b8816eb3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b3b0c12c0e482a17e70ac01654bc15d6b9cb8aab b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b3b0c12c0e482a17e70ac01654bc15d6b9cb8aab
index 15c163a8a..15c163a8a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b3b0c12c0e482a17e70ac01654bc15d6b9cb8aab
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b3b0c12c0e482a17e70ac01654bc15d6b9cb8aab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b3f67b486cee4ebc6a7026bd2ab7b41bdd7f7d9d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b3f67b486cee4ebc6a7026bd2ab7b41bdd7f7d9d
index be031512d..be031512d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b3f67b486cee4ebc6a7026bd2ab7b41bdd7f7d9d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b3f67b486cee4ebc6a7026bd2ab7b41bdd7f7d9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b412a5c30ba0c1226e26f1707ca58d505601db67 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b412a5c30ba0c1226e26f1707ca58d505601db67
index c9bc888be..c9bc888be 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b412a5c30ba0c1226e26f1707ca58d505601db67
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b412a5c30ba0c1226e26f1707ca58d505601db67
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b456d991bbb6229ab2dbae14488598fa246565e8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b456d991bbb6229ab2dbae14488598fa246565e8
index ba8f01f59..ba8f01f59 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b456d991bbb6229ab2dbae14488598fa246565e8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b456d991bbb6229ab2dbae14488598fa246565e8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b4952f525572d04957e8bc45d65730fd5cebef5b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b4952f525572d04957e8bc45d65730fd5cebef5b
index 3f5d1ee07..3f5d1ee07 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b4952f525572d04957e8bc45d65730fd5cebef5b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b4952f525572d04957e8bc45d65730fd5cebef5b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b4d63d754694f61070971cd1f68b3a5b2833eda3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b4d63d754694f61070971cd1f68b3a5b2833eda3
index 4387b7775..4387b7775 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b4d63d754694f61070971cd1f68b3a5b2833eda3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b4d63d754694f61070971cd1f68b3a5b2833eda3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b4f1bd4f0812458a4976ca508fc0ffa30af33a21 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b4f1bd4f0812458a4976ca508fc0ffa30af33a21
index 4cbc91450..4cbc91450 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b4f1bd4f0812458a4976ca508fc0ffa30af33a21
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b4f1bd4f0812458a4976ca508fc0ffa30af33a21
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b563d89744c56568dbf23813574e0fb1ca34bc0c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b563d89744c56568dbf23813574e0fb1ca34bc0c
index 08c642990..08c642990 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b563d89744c56568dbf23813574e0fb1ca34bc0c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b563d89744c56568dbf23813574e0fb1ca34bc0c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b5b09e373893be86ec9a59f6b4f98cea32dc8974 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b5b09e373893be86ec9a59f6b4f98cea32dc8974
index 1af5dda29..1af5dda29 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b5b09e373893be86ec9a59f6b4f98cea32dc8974
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b5b09e373893be86ec9a59f6b4f98cea32dc8974
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b5d04bd066c60bcb63faf99120cc8eca860c9fa1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b5d04bd066c60bcb63faf99120cc8eca860c9fa1
index b8a602597..b8a602597 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b5d04bd066c60bcb63faf99120cc8eca860c9fa1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b5d04bd066c60bcb63faf99120cc8eca860c9fa1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b626da19ee10029c59704117825f75ee92fb5ad6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b626da19ee10029c59704117825f75ee92fb5ad6
index 91a22b182..91a22b182 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b626da19ee10029c59704117825f75ee92fb5ad6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b626da19ee10029c59704117825f75ee92fb5ad6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b649646964d6d49f5bf2da03b94752d8f05dae86 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b649646964d6d49f5bf2da03b94752d8f05dae86
index acc9182ac..acc9182ac 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b649646964d6d49f5bf2da03b94752d8f05dae86
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b649646964d6d49f5bf2da03b94752d8f05dae86
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b64c0345522c5c2a96aad6fd0caa174432fe6e2f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b64c0345522c5c2a96aad6fd0caa174432fe6e2f
index 7e06e448d..7e06e448d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b64c0345522c5c2a96aad6fd0caa174432fe6e2f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b64c0345522c5c2a96aad6fd0caa174432fe6e2f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b6aed929350725f496c99620fb4b85a7b3afde8c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b6aed929350725f496c99620fb4b85a7b3afde8c
index f66d497e3..f66d497e3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b6aed929350725f496c99620fb4b85a7b3afde8c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b6aed929350725f496c99620fb4b85a7b3afde8c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b6c28e51e43614e97ac2cc51e5fccacd684a55b1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b6c28e51e43614e97ac2cc51e5fccacd684a55b1
index 7e1fe0f0e..7e1fe0f0e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b6c28e51e43614e97ac2cc51e5fccacd684a55b1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b6c28e51e43614e97ac2cc51e5fccacd684a55b1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b72925d711f3e5a2704e19a5810ef6e982431af7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b72925d711f3e5a2704e19a5810ef6e982431af7
index 1fb92d547..1fb92d547 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b72925d711f3e5a2704e19a5810ef6e982431af7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b72925d711f3e5a2704e19a5810ef6e982431af7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b73438e4cd8d12119b09e87251cbd4a0cf851794 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b73438e4cd8d12119b09e87251cbd4a0cf851794
index 5f6aa3cda..5f6aa3cda 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b73438e4cd8d12119b09e87251cbd4a0cf851794
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b73438e4cd8d12119b09e87251cbd4a0cf851794
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb
index 1811b0856..1811b0856 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b7a3c313f85188aedf75a2ea5dc6ad582f5843bb
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b7b81b5c96af8541973d56d33f596328bf526b65 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b7b81b5c96af8541973d56d33f596328bf526b65
index c6e350472..c6e350472 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b7b81b5c96af8541973d56d33f596328bf526b65
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b7b81b5c96af8541973d56d33f596328bf526b65
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4
index 22afeeb24..22afeeb24 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b8289bc8a38cde0b4568e7e39249e8aefe7390f4
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b845cbe955c12888da78b11f302923477054cb3c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b845cbe955c12888da78b11f302923477054cb3c
index bcbfbd36f..bcbfbd36f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b845cbe955c12888da78b11f302923477054cb3c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b845cbe955c12888da78b11f302923477054cb3c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b8a731fe97c2e944e8109caf4e0cb86696b0109c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b8a731fe97c2e944e8109caf4e0cb86696b0109c
index c7fcc1d22..c7fcc1d22 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b8a731fe97c2e944e8109caf4e0cb86696b0109c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b8a731fe97c2e944e8109caf4e0cb86696b0109c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b92f204932da4dcbea0c5d400934e934138c9243 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b92f204932da4dcbea0c5d400934e934138c9243
index 4291b594d..4291b594d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b92f204932da4dcbea0c5d400934e934138c9243
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b92f204932da4dcbea0c5d400934e934138c9243
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b94e5b40224538248f7ce0d0c2835d38510db1c9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b94e5b40224538248f7ce0d0c2835d38510db1c9
index ef1ee9ee5..ef1ee9ee5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b94e5b40224538248f7ce0d0c2835d38510db1c9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b94e5b40224538248f7ce0d0c2835d38510db1c9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b994d9f1de4773bfbe88dff7620c284c2ab05ab6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b994d9f1de4773bfbe88dff7620c284c2ab05ab6
index 7b52959ba..7b52959ba 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b994d9f1de4773bfbe88dff7620c284c2ab05ab6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b994d9f1de4773bfbe88dff7620c284c2ab05ab6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b9df2c6f327a4e587f7924ba122bf5cf514f6a7c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b9df2c6f327a4e587f7924ba122bf5cf514f6a7c
index bb6abe1e1..bb6abe1e1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b9df2c6f327a4e587f7924ba122bf5cf514f6a7c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b9df2c6f327a4e587f7924ba122bf5cf514f6a7c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/b9e92ecb4845417c337e6af7f9d5764527dcca78 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b9e92ecb4845417c337e6af7f9d5764527dcca78
index 4cb7d34b8..4cb7d34b8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/b9e92ecb4845417c337e6af7f9d5764527dcca78
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/b9e92ecb4845417c337e6af7f9d5764527dcca78
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ba1a3a836519a10bdc1fcbf0cdc26b2478fe684f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba1a3a836519a10bdc1fcbf0cdc26b2478fe684f
index a8a40165d..a8a40165d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ba1a3a836519a10bdc1fcbf0cdc26b2478fe684f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba1a3a836519a10bdc1fcbf0cdc26b2478fe684f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ba310696149446f4c0cf2e293738b14c62039d2c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba310696149446f4c0cf2e293738b14c62039d2c
index b8281fe20..b8281fe20 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ba310696149446f4c0cf2e293738b14c62039d2c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba310696149446f4c0cf2e293738b14c62039d2c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ba42ebd00371044abc2cfb3d5d253b916f7c86bf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba42ebd00371044abc2cfb3d5d253b916f7c86bf
index f565c41a4..f565c41a4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ba42ebd00371044abc2cfb3d5d253b916f7c86bf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba42ebd00371044abc2cfb3d5d253b916f7c86bf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ba5295de9d5f59c5a5b881e8e50edeb78e4d8a66 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba5295de9d5f59c5a5b881e8e50edeb78e4d8a66
index b21a2a5f0..b21a2a5f0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ba5295de9d5f59c5a5b881e8e50edeb78e4d8a66
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba5295de9d5f59c5a5b881e8e50edeb78e4d8a66
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ba9ca81792ee53c2bf9f2fe92d7e97d65765a739 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba9ca81792ee53c2bf9f2fe92d7e97d65765a739
index 094ba0b59..094ba0b59 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ba9ca81792ee53c2bf9f2fe92d7e97d65765a739
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ba9ca81792ee53c2bf9f2fe92d7e97d65765a739
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/babb1602b817cdc09b31da85ddc3cd1e39a3f811 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/babb1602b817cdc09b31da85ddc3cd1e39a3f811
index 410c9cbde..410c9cbde 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/babb1602b817cdc09b31da85ddc3cd1e39a3f811
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/babb1602b817cdc09b31da85ddc3cd1e39a3f811
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bb58ef9cdd066c35308bb36ce5e996fbdfd08888 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bb58ef9cdd066c35308bb36ce5e996fbdfd08888
index d65e4d0ad..d65e4d0ad 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bb58ef9cdd066c35308bb36ce5e996fbdfd08888
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bb58ef9cdd066c35308bb36ce5e996fbdfd08888
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bb75c3500bfae028401b78514153b984afa0c938 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bb75c3500bfae028401b78514153b984afa0c938
index 0fd0f08eb..0fd0f08eb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bb75c3500bfae028401b78514153b984afa0c938
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bb75c3500bfae028401b78514153b984afa0c938
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bba126260d787127eea119eacdb1a4e899183788 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bba126260d787127eea119eacdb1a4e899183788
index 2e3cbcfb9..2e3cbcfb9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bba126260d787127eea119eacdb1a4e899183788
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bba126260d787127eea119eacdb1a4e899183788
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bba43a9dad99505f3249e786e6bf7b5df0ae3479 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bba43a9dad99505f3249e786e6bf7b5df0ae3479
index 1bd8102bd..1bd8102bd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bba43a9dad99505f3249e786e6bf7b5df0ae3479
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bba43a9dad99505f3249e786e6bf7b5df0ae3479
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bbad4a49082d3101992b52827e59b4e5766cb8c4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbad4a49082d3101992b52827e59b4e5766cb8c4
index 8f0bb2dcb..8f0bb2dcb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bbad4a49082d3101992b52827e59b4e5766cb8c4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbad4a49082d3101992b52827e59b4e5766cb8c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2
index 519fb40dd..519fb40dd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbba20e9a777ddbe1845a3f7c243b29c55d2b8f2
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bbd15649618bc696c84df1c6e44e4b353ecfd4b4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbd15649618bc696c84df1c6e44e4b353ecfd4b4
index fd9ac2231..fd9ac2231 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bbd15649618bc696c84df1c6e44e4b353ecfd4b4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbd15649618bc696c84df1c6e44e4b353ecfd4b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bbe2ad4a1ed2bbb78f26db6575854c0fce34684b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbe2ad4a1ed2bbb78f26db6575854c0fce34684b
index 7d9b7e532..7d9b7e532 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bbe2ad4a1ed2bbb78f26db6575854c0fce34684b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bbe2ad4a1ed2bbb78f26db6575854c0fce34684b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bc1d04348314d6ed19d2695f39d4e19648447d8f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bc1d04348314d6ed19d2695f39d4e19648447d8f
index 727992fca..727992fca 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bc1d04348314d6ed19d2695f39d4e19648447d8f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bc1d04348314d6ed19d2695f39d4e19648447d8f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bc9c532f739cf34a8fc2cf8e1febbe9c998f1bc4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bc9c532f739cf34a8fc2cf8e1febbe9c998f1bc4
index f7d30e4fa..f7d30e4fa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bc9c532f739cf34a8fc2cf8e1febbe9c998f1bc4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bc9c532f739cf34a8fc2cf8e1febbe9c998f1bc4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bcb9b7bd14a813e19b2848027a35f51d61393f3a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bcb9b7bd14a813e19b2848027a35f51d61393f3a
index 079462462..079462462 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bcb9b7bd14a813e19b2848027a35f51d61393f3a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bcb9b7bd14a813e19b2848027a35f51d61393f3a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bce14240f61cf62bd2977a2ce73dc52ee05e0a4e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bce14240f61cf62bd2977a2ce73dc52ee05e0a4e
index 0a074bf9a..0a074bf9a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bce14240f61cf62bd2977a2ce73dc52ee05e0a4e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bce14240f61cf62bd2977a2ce73dc52ee05e0a4e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bcf4624a712a3c7faab5c5e8c10ad37c26c64aca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bcf4624a712a3c7faab5c5e8c10ad37c26c64aca
index abdf159f9..abdf159f9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bcf4624a712a3c7faab5c5e8c10ad37c26c64aca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bcf4624a712a3c7faab5c5e8c10ad37c26c64aca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bcf8ba1dd408fae2827f6287bc464f119a1d4757 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bcf8ba1dd408fae2827f6287bc464f119a1d4757
index 676199a56..676199a56 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bcf8ba1dd408fae2827f6287bc464f119a1d4757
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bcf8ba1dd408fae2827f6287bc464f119a1d4757
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bd04f34cc3379bf5cc858c9e4bceb801d5c02d75 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd04f34cc3379bf5cc858c9e4bceb801d5c02d75
index fc48b5626..fc48b5626 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bd04f34cc3379bf5cc858c9e4bceb801d5c02d75
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd04f34cc3379bf5cc858c9e4bceb801d5c02d75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bd36a801e731d4ec78949431407194d9ab4caf40 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd36a801e731d4ec78949431407194d9ab4caf40
index 6b5c72047..6b5c72047 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bd36a801e731d4ec78949431407194d9ab4caf40
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd36a801e731d4ec78949431407194d9ab4caf40
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bd54033a5f4589a659db6a539e1ea3714a7c382a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd54033a5f4589a659db6a539e1ea3714a7c382a
index 633e2f171..633e2f171 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bd54033a5f4589a659db6a539e1ea3714a7c382a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd54033a5f4589a659db6a539e1ea3714a7c382a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bd70210bb7300ebdefa68606a2e0b722ea9a972b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd70210bb7300ebdefa68606a2e0b722ea9a972b
index cfa6e6d4e..cfa6e6d4e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bd70210bb7300ebdefa68606a2e0b722ea9a972b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd70210bb7300ebdefa68606a2e0b722ea9a972b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bd82e4c5ff6cb122a47f5eda2d8a5debef5216b9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd82e4c5ff6cb122a47f5eda2d8a5debef5216b9
index 4180c8cf3..4180c8cf3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bd82e4c5ff6cb122a47f5eda2d8a5debef5216b9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd82e4c5ff6cb122a47f5eda2d8a5debef5216b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bd85ee70a039a165e399016343354a4ef8e6ab41 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd85ee70a039a165e399016343354a4ef8e6ab41
index e26e5a7b8..e26e5a7b8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bd85ee70a039a165e399016343354a4ef8e6ab41
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bd85ee70a039a165e399016343354a4ef8e6ab41
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bda358478b7172b248a92e2a2b83337bf66d6e50 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bda358478b7172b248a92e2a2b83337bf66d6e50
index ba929f488..ba929f488 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bda358478b7172b248a92e2a2b83337bf66d6e50
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bda358478b7172b248a92e2a2b83337bf66d6e50
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bdaa87754b54f18d4c8a20628f6391d11cb77125 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bdaa87754b54f18d4c8a20628f6391d11cb77125
index c5fe3db5d..c5fe3db5d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bdaa87754b54f18d4c8a20628f6391d11cb77125
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bdaa87754b54f18d4c8a20628f6391d11cb77125
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bdd98fe9eb810b144abfe31eaf912bb0b4cb0ece b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bdd98fe9eb810b144abfe31eaf912bb0b4cb0ece
index 61f1a6109..61f1a6109 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bdd98fe9eb810b144abfe31eaf912bb0b4cb0ece
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bdd98fe9eb810b144abfe31eaf912bb0b4cb0ece
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bdfdbddd11fdc0296ec4bbaae70917754890c4f7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bdfdbddd11fdc0296ec4bbaae70917754890c4f7
index ccb64fb1c..ccb64fb1c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bdfdbddd11fdc0296ec4bbaae70917754890c4f7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bdfdbddd11fdc0296ec4bbaae70917754890c4f7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/be1430c5f4f2827bda1bcdb8f1766f34992cf3e6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be1430c5f4f2827bda1bcdb8f1766f34992cf3e6
index 3c059085b..3c059085b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/be1430c5f4f2827bda1bcdb8f1766f34992cf3e6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be1430c5f4f2827bda1bcdb8f1766f34992cf3e6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/be2c7a74b25c88489cbe5e652433f48609a77689 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be2c7a74b25c88489cbe5e652433f48609a77689
index eeea71f53..eeea71f53 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/be2c7a74b25c88489cbe5e652433f48609a77689
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be2c7a74b25c88489cbe5e652433f48609a77689
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/be32e650f02e22a899c067c4f8adee5ab6aedbfb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be32e650f02e22a899c067c4f8adee5ab6aedbfb
index 6986b31b2..6986b31b2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/be32e650f02e22a899c067c4f8adee5ab6aedbfb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be32e650f02e22a899c067c4f8adee5ab6aedbfb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/be3aff993c6ab8ca7b3b0041ffb77f0c03d099aa b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be3aff993c6ab8ca7b3b0041ffb77f0c03d099aa
index cb5dc9333..cb5dc9333 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/be3aff993c6ab8ca7b3b0041ffb77f0c03d099aa
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/be3aff993c6ab8ca7b3b0041ffb77f0c03d099aa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bec55315a1e186436528091de01c3eaf6bd84fcf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bec55315a1e186436528091de01c3eaf6bd84fcf
index 15a28d444..15a28d444 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bec55315a1e186436528091de01c3eaf6bd84fcf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bec55315a1e186436528091de01c3eaf6bd84fcf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bed1bd7298f4d42262ab35971e1a26e3b75e39da b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bed1bd7298f4d42262ab35971e1a26e3b75e39da
index dd47ae0cf..dd47ae0cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bed1bd7298f4d42262ab35971e1a26e3b75e39da
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bed1bd7298f4d42262ab35971e1a26e3b75e39da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bed44ed09ce78900583809fc2f9dc6990f24b361 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bed44ed09ce78900583809fc2f9dc6990f24b361
index 451876c97..451876c97 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bed44ed09ce78900583809fc2f9dc6990f24b361
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bed44ed09ce78900583809fc2f9dc6990f24b361
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bf13a277423000231c797b6f25257c8332a73b8b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bf13a277423000231c797b6f25257c8332a73b8b
index c4f4be782..c4f4be782 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bf13a277423000231c797b6f25257c8332a73b8b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bf13a277423000231c797b6f25257c8332a73b8b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/bfec2cf0b35a3dab81917a8273779efe59a4f55f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bfec2cf0b35a3dab81917a8273779efe59a4f55f
index c6b928339..c6b928339 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/bfec2cf0b35a3dab81917a8273779efe59a4f55f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/bfec2cf0b35a3dab81917a8273779efe59a4f55f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c00505f3f91c6a221f193b3a30c2ece777f1a829 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c00505f3f91c6a221f193b3a30c2ece777f1a829
index f5eb293da..f5eb293da 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c00505f3f91c6a221f193b3a30c2ece777f1a829
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c00505f3f91c6a221f193b3a30c2ece777f1a829
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c00e6501f0b920dcf8bd7e81bc26845f7a066174 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c00e6501f0b920dcf8bd7e81bc26845f7a066174
index 417b6bf11..417b6bf11 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c00e6501f0b920dcf8bd7e81bc26845f7a066174
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c00e6501f0b920dcf8bd7e81bc26845f7a066174
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c0142fdf4a99ef4e7eb8461f01c286658d1980c4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0142fdf4a99ef4e7eb8461f01c286658d1980c4
index 96fbbedea..96fbbedea 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c0142fdf4a99ef4e7eb8461f01c286658d1980c4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0142fdf4a99ef4e7eb8461f01c286658d1980c4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c01ace4a3507e1b9d9c16620dea18efab00472c5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c01ace4a3507e1b9d9c16620dea18efab00472c5
index 9f14931e8..9f14931e8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c01ace4a3507e1b9d9c16620dea18efab00472c5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c01ace4a3507e1b9d9c16620dea18efab00472c5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c04729eee2c180c66e081d269841499b9408f13e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c04729eee2c180c66e081d269841499b9408f13e
index 32fd34062..32fd34062 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c04729eee2c180c66e081d269841499b9408f13e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c04729eee2c180c66e081d269841499b9408f13e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c0b8f034227c8cbac1a2fac94ee241343366260f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0b8f034227c8cbac1a2fac94ee241343366260f
index ec5da83a8..ec5da83a8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c0b8f034227c8cbac1a2fac94ee241343366260f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0b8f034227c8cbac1a2fac94ee241343366260f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c0c2e53f95c88d98565f068c7004726127d5cbdc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0c2e53f95c88d98565f068c7004726127d5cbdc
index e151c6e88..e151c6e88 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c0c2e53f95c88d98565f068c7004726127d5cbdc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0c2e53f95c88d98565f068c7004726127d5cbdc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c0cece81c8ec8c3d318c5f2fa9d7676e086ec860 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0cece81c8ec8c3d318c5f2fa9d7676e086ec860
index 8f4291d2b..8f4291d2b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c0cece81c8ec8c3d318c5f2fa9d7676e086ec860
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0cece81c8ec8c3d318c5f2fa9d7676e086ec860
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c0e4e8811a684a30be20df6cb0eaaa503ac87d69 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0e4e8811a684a30be20df6cb0eaaa503ac87d69
index b1fc0fe9f..b1fc0fe9f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c0e4e8811a684a30be20df6cb0eaaa503ac87d69
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0e4e8811a684a30be20df6cb0eaaa503ac87d69
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c0fe86156f5f5e0726385fb394f22fc6a405d460 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0fe86156f5f5e0726385fb394f22fc6a405d460
index 1e921a370..1e921a370 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c0fe86156f5f5e0726385fb394f22fc6a405d460
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c0fe86156f5f5e0726385fb394f22fc6a405d460
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c1463a601ea4591825f5a42a2c288231a805de7b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1463a601ea4591825f5a42a2c288231a805de7b
index 7ef4a6481..7ef4a6481 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c1463a601ea4591825f5a42a2c288231a805de7b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1463a601ea4591825f5a42a2c288231a805de7b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c15ffb03641128d3369e346f5e3c24cc2b88a166 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c15ffb03641128d3369e346f5e3c24cc2b88a166
index 314cf7e46..314cf7e46 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c15ffb03641128d3369e346f5e3c24cc2b88a166
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c15ffb03641128d3369e346f5e3c24cc2b88a166
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c19e0c58a4e1272c77a2c879564dab7f2a5f9984 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c19e0c58a4e1272c77a2c879564dab7f2a5f9984
index 8fa864be2..8fa864be2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c19e0c58a4e1272c77a2c879564dab7f2a5f9984
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c19e0c58a4e1272c77a2c879564dab7f2a5f9984
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c1a90ba686b932d26cc1bb6e30905d4e47d88ba0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1a90ba686b932d26cc1bb6e30905d4e47d88ba0
index de4b520be..de4b520be 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c1a90ba686b932d26cc1bb6e30905d4e47d88ba0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1a90ba686b932d26cc1bb6e30905d4e47d88ba0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c1c0119e74f7bb27ee9df26e49692c10a0fa9872 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1c0119e74f7bb27ee9df26e49692c10a0fa9872
index 89c48f5ed..89c48f5ed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c1c0119e74f7bb27ee9df26e49692c10a0fa9872
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1c0119e74f7bb27ee9df26e49692c10a0fa9872
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c1eb2bacb17c41c84e73516e9283894962a2d288 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1eb2bacb17c41c84e73516e9283894962a2d288
index c0798fca4..c0798fca4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c1eb2bacb17c41c84e73516e9283894962a2d288
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1eb2bacb17c41c84e73516e9283894962a2d288
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c1ec7133f93c60af1156a0f9bbcad1e1fb1f0ad4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1ec7133f93c60af1156a0f9bbcad1e1fb1f0ad4
index 97a2777d5..97a2777d5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c1ec7133f93c60af1156a0f9bbcad1e1fb1f0ad4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c1ec7133f93c60af1156a0f9bbcad1e1fb1f0ad4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c276619813c3f9212518d191c100f18829b0fb7c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c276619813c3f9212518d191c100f18829b0fb7c
index 865deb649..865deb649 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c276619813c3f9212518d191c100f18829b0fb7c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c276619813c3f9212518d191c100f18829b0fb7c
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c2aca2cc94285aa51e75dfafa16bea674e64dc86 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2aca2cc94285aa51e75dfafa16bea674e64dc86
index 430434dc4..430434dc4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c2aca2cc94285aa51e75dfafa16bea674e64dc86
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2aca2cc94285aa51e75dfafa16bea674e64dc86
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c2cd883d08ffa6628ac7f204f3bb18d8330fa5fa b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2cd883d08ffa6628ac7f204f3bb18d8330fa5fa
index 02fa53c7f..02fa53c7f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c2cd883d08ffa6628ac7f204f3bb18d8330fa5fa
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2cd883d08ffa6628ac7f204f3bb18d8330fa5fa
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c2f0a3a7f01d4a89d1c80320440c5454c698f7d7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2f0a3a7f01d4a89d1c80320440c5454c698f7d7
index bb87c182e..bb87c182e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c2f0a3a7f01d4a89d1c80320440c5454c698f7d7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2f0a3a7f01d4a89d1c80320440c5454c698f7d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c2fcaaca94c09c88a6ecf4222c0b16d35810d4b6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2fcaaca94c09c88a6ecf4222c0b16d35810d4b6
index 96ac98c04..96ac98c04 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c2fcaaca94c09c88a6ecf4222c0b16d35810d4b6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c2fcaaca94c09c88a6ecf4222c0b16d35810d4b6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c30481668288d71c3cdff9217657422738a34975 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c30481668288d71c3cdff9217657422738a34975
index deaf6dc49..deaf6dc49 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c30481668288d71c3cdff9217657422738a34975
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c30481668288d71c3cdff9217657422738a34975
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c3546585c33023e018aeddedefd772a1fa2fff2b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c3546585c33023e018aeddedefd772a1fa2fff2b
index f554c7aef..f554c7aef 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c3546585c33023e018aeddedefd772a1fa2fff2b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c3546585c33023e018aeddedefd772a1fa2fff2b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c4706367d31addcb2365cbc693f65c3e3281b447 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c4706367d31addcb2365cbc693f65c3e3281b447
index 7f74a0364..7f74a0364 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c4706367d31addcb2365cbc693f65c3e3281b447
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c4706367d31addcb2365cbc693f65c3e3281b447
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9
index 8f1112c49..8f1112c49 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c4bfa25abf3c47f5ca34e31cde347d69ae596bd9
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c5ae64adfdfb81c507f926039af84b579bb0332b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c5ae64adfdfb81c507f926039af84b579bb0332b
index a1cbff6f8..a1cbff6f8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c5ae64adfdfb81c507f926039af84b579bb0332b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c5ae64adfdfb81c507f926039af84b579bb0332b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c5d626b9fe7ddf900675741e820d4ed3e4d46e38 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c5d626b9fe7ddf900675741e820d4ed3e4d46e38
index 040dcde79..040dcde79 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c5d626b9fe7ddf900675741e820d4ed3e4d46e38
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c5d626b9fe7ddf900675741e820d4ed3e4d46e38
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c5da4c017465fd7e26ee68e8a05468cc25b66130 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c5da4c017465fd7e26ee68e8a05468cc25b66130
index 0dc33f5af..0dc33f5af 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c5da4c017465fd7e26ee68e8a05468cc25b66130
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c5da4c017465fd7e26ee68e8a05468cc25b66130
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c61562e1ac87b2272155846340e2bb09dbb35240 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c61562e1ac87b2272155846340e2bb09dbb35240
index 532737ce6..532737ce6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c61562e1ac87b2272155846340e2bb09dbb35240
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c61562e1ac87b2272155846340e2bb09dbb35240
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c630720055e52eff09e80d1d6c544e73ca4d2bf8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c630720055e52eff09e80d1d6c544e73ca4d2bf8
index 9ee81bb44..9ee81bb44 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c630720055e52eff09e80d1d6c544e73ca4d2bf8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c630720055e52eff09e80d1d6c544e73ca4d2bf8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c635a4abebca0de83c5fec1611a1a5e116c13612 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c635a4abebca0de83c5fec1611a1a5e116c13612
index 0648443bc..0648443bc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c635a4abebca0de83c5fec1611a1a5e116c13612
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c635a4abebca0de83c5fec1611a1a5e116c13612
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c6566639bc889da861c0226796aebbf05d4eb11e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c6566639bc889da861c0226796aebbf05d4eb11e
index 4bc022834..4bc022834 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c6566639bc889da861c0226796aebbf05d4eb11e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c6566639bc889da861c0226796aebbf05d4eb11e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c69ac3332de9a9a096767c76cee444497bd6643c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c69ac3332de9a9a096767c76cee444497bd6643c
index ef79a1865..ef79a1865 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c69ac3332de9a9a096767c76cee444497bd6643c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c69ac3332de9a9a096767c76cee444497bd6643c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c6a5823aef1d9216502bab3a1b2f7f1f55807bf9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c6a5823aef1d9216502bab3a1b2f7f1f55807bf9
index 306050ecb..306050ecb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c6a5823aef1d9216502bab3a1b2f7f1f55807bf9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c6a5823aef1d9216502bab3a1b2f7f1f55807bf9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c738d6a8e519f1c75639b8ec146cab4347b9a26f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c738d6a8e519f1c75639b8ec146cab4347b9a26f
index 6017867da..6017867da 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c738d6a8e519f1c75639b8ec146cab4347b9a26f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c738d6a8e519f1c75639b8ec146cab4347b9a26f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c7456e71ab8a12f69312c6753e21061215b5d067 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7456e71ab8a12f69312c6753e21061215b5d067
index d76d78329..d76d78329 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c7456e71ab8a12f69312c6753e21061215b5d067
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7456e71ab8a12f69312c6753e21061215b5d067
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c77ea0e11e72327039724f57bf200fef206c1467 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c77ea0e11e72327039724f57bf200fef206c1467
index 594ffb3c1..594ffb3c1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c77ea0e11e72327039724f57bf200fef206c1467
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c77ea0e11e72327039724f57bf200fef206c1467
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c782df357603498436c4117ec3ad0161c460683c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c782df357603498436c4117ec3ad0161c460683c
index 4e8fb9979..4e8fb9979 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c782df357603498436c4117ec3ad0161c460683c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c782df357603498436c4117ec3ad0161c460683c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c791159d7d003d25c1847076aab498ab515b83eb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c791159d7d003d25c1847076aab498ab515b83eb
index c924bd5d1..c924bd5d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c791159d7d003d25c1847076aab498ab515b83eb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c791159d7d003d25c1847076aab498ab515b83eb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c7a963f381a14d1cb1ddb39602dcd1f0f080e223 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7a963f381a14d1cb1ddb39602dcd1f0f080e223
index 30177be78..30177be78 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c7a963f381a14d1cb1ddb39602dcd1f0f080e223
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7a963f381a14d1cb1ddb39602dcd1f0f080e223
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c7b6d4f99e3b99b6137b700029b8a04aec2c7723 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7b6d4f99e3b99b6137b700029b8a04aec2c7723
index d11cc967e..d11cc967e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c7b6d4f99e3b99b6137b700029b8a04aec2c7723
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7b6d4f99e3b99b6137b700029b8a04aec2c7723
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c7ed7ee03e205b2ed9a6069aa175a4ebeeca7d0a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7ed7ee03e205b2ed9a6069aa175a4ebeeca7d0a
index a80d4391d..a80d4391d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c7ed7ee03e205b2ed9a6069aa175a4ebeeca7d0a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c7ed7ee03e205b2ed9a6069aa175a4ebeeca7d0a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c848141da33ef406ee960d3e2ca44b8c5660b02d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c848141da33ef406ee960d3e2ca44b8c5660b02d
index ae52d3ac0..ae52d3ac0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c848141da33ef406ee960d3e2ca44b8c5660b02d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c848141da33ef406ee960d3e2ca44b8c5660b02d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c89173e1889ecc405c92fd7ddd073e875a0bcd60 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c89173e1889ecc405c92fd7ddd073e875a0bcd60
index b07621112..b07621112 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c89173e1889ecc405c92fd7ddd073e875a0bcd60
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c89173e1889ecc405c92fd7ddd073e875a0bcd60
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c8c0bfcec967531d6b3ff5af3f339dcfab96be01 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c8c0bfcec967531d6b3ff5af3f339dcfab96be01
index af7813816..af7813816 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c8c0bfcec967531d6b3ff5af3f339dcfab96be01
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c8c0bfcec967531d6b3ff5af3f339dcfab96be01
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c8f98cd2189c0b5ad5593247af549d05b6f135c0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c8f98cd2189c0b5ad5593247af549d05b6f135c0
index 74c677b42..74c677b42 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c8f98cd2189c0b5ad5593247af549d05b6f135c0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c8f98cd2189c0b5ad5593247af549d05b6f135c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c8fb25b08db94636c0b82658998c3e30553eb1d9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c8fb25b08db94636c0b82658998c3e30553eb1d9
index ff0cac655..ff0cac655 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c8fb25b08db94636c0b82658998c3e30553eb1d9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c8fb25b08db94636c0b82658998c3e30553eb1d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c9028ded05f38d00d5e2b910f560f88b6631f063 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9028ded05f38d00d5e2b910f560f88b6631f063
index 096e64aa7..096e64aa7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c9028ded05f38d00d5e2b910f560f88b6631f063
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9028ded05f38d00d5e2b910f560f88b6631f063
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c91cdcf426efe8ec0e1c127abd4925962f097900 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c91cdcf426efe8ec0e1c127abd4925962f097900
index 3dff51b94..3dff51b94 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c91cdcf426efe8ec0e1c127abd4925962f097900
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c91cdcf426efe8ec0e1c127abd4925962f097900
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c92987d6007592fc181fd8e4ba31943a1b8cb451 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c92987d6007592fc181fd8e4ba31943a1b8cb451
index 746b9c625..746b9c625 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c92987d6007592fc181fd8e4ba31943a1b8cb451
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c92987d6007592fc181fd8e4ba31943a1b8cb451
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c97c7c02fd4ae28822987cbf057a7dc875f4bf0d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c97c7c02fd4ae28822987cbf057a7dc875f4bf0d
index e02f7477d..e02f7477d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c97c7c02fd4ae28822987cbf057a7dc875f4bf0d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c97c7c02fd4ae28822987cbf057a7dc875f4bf0d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c9c7520654058ff5ac49325ce774315c56c6304a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9c7520654058ff5ac49325ce774315c56c6304a
index 2a15c3fc4..2a15c3fc4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c9c7520654058ff5ac49325ce774315c56c6304a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9c7520654058ff5ac49325ce774315c56c6304a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c9cef32ff1b8f6410ac798a43ed3ce1c15bae1a7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9cef32ff1b8f6410ac798a43ed3ce1c15bae1a7
index 44adcc074..44adcc074 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c9cef32ff1b8f6410ac798a43ed3ce1c15bae1a7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9cef32ff1b8f6410ac798a43ed3ce1c15bae1a7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/c9f1fa35390d698cd1cc3aefec503cb7dc92b3cc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9f1fa35390d698cd1cc3aefec503cb7dc92b3cc
index 41771059c..41771059c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/c9f1fa35390d698cd1cc3aefec503cb7dc92b3cc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/c9f1fa35390d698cd1cc3aefec503cb7dc92b3cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ca0c686229eb1323574f81639ae6ca06cb55bc11 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca0c686229eb1323574f81639ae6ca06cb55bc11
index 78aadb0e2..78aadb0e2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ca0c686229eb1323574f81639ae6ca06cb55bc11
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca0c686229eb1323574f81639ae6ca06cb55bc11
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ca130ffbf55267ae24ca0a08df596e3de56b5199 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca130ffbf55267ae24ca0a08df596e3de56b5199
index 9eaa8cafa..9eaa8cafa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ca130ffbf55267ae24ca0a08df596e3de56b5199
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca130ffbf55267ae24ca0a08df596e3de56b5199
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ca27fc88c3bafe7bd11761755300bc128a0a283d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca27fc88c3bafe7bd11761755300bc128a0a283d
index 62d523896..62d523896 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ca27fc88c3bafe7bd11761755300bc128a0a283d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca27fc88c3bafe7bd11761755300bc128a0a283d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ca2f7395835527b2917bd4c633254546503a80e0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca2f7395835527b2917bd4c633254546503a80e0
index 315580def..315580def 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ca2f7395835527b2917bd4c633254546503a80e0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca2f7395835527b2917bd4c633254546503a80e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ca85d98ce0e6e40f92369b19f1b27effa20ec529 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca85d98ce0e6e40f92369b19f1b27effa20ec529
index de5003931..de5003931 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ca85d98ce0e6e40f92369b19f1b27effa20ec529
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca85d98ce0e6e40f92369b19f1b27effa20ec529
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b
index e8c1288f2..e8c1288f2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ca85e0ec22bed4420f08931fad3a3809282e9a5b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/caaf508709d641e292638007e26f9d1d8be2ba50 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/caaf508709d641e292638007e26f9d1d8be2ba50
index 04da7ced3..04da7ced3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/caaf508709d641e292638007e26f9d1d8be2ba50
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/caaf508709d641e292638007e26f9d1d8be2ba50
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/caec50287ca7304c539323c5badbf3f3f99baa3b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/caec50287ca7304c539323c5badbf3f3f99baa3b
index 864418068..864418068 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/caec50287ca7304c539323c5badbf3f3f99baa3b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/caec50287ca7304c539323c5badbf3f3f99baa3b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cb4c5cae0a2071f92bb36bd9cbd2d416f22eb5b1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cb4c5cae0a2071f92bb36bd9cbd2d416f22eb5b1
index 6b40fc0a6..6b40fc0a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cb4c5cae0a2071f92bb36bd9cbd2d416f22eb5b1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cb4c5cae0a2071f92bb36bd9cbd2d416f22eb5b1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cb7657fa47bbfecff8ca3b80856feaff516cf553 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cb7657fa47bbfecff8ca3b80856feaff516cf553
index 55356d205..55356d205 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cb7657fa47bbfecff8ca3b80856feaff516cf553
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cb7657fa47bbfecff8ca3b80856feaff516cf553
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cbc97c4d6359d2f7f0162dd68e4d98810e77f9d4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cbc97c4d6359d2f7f0162dd68e4d98810e77f9d4
index 1569a8e67..1569a8e67 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cbc97c4d6359d2f7f0162dd68e4d98810e77f9d4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cbc97c4d6359d2f7f0162dd68e4d98810e77f9d4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cc0f8ed37154fb5999fdba16e8a96856add9f649 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc0f8ed37154fb5999fdba16e8a96856add9f649
index d0d89b083..d0d89b083 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cc0f8ed37154fb5999fdba16e8a96856add9f649
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc0f8ed37154fb5999fdba16e8a96856add9f649
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cc23fb187891eb6f1a7f836815d22d567013c60d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc23fb187891eb6f1a7f836815d22d567013c60d
index e96e2607b..e96e2607b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cc23fb187891eb6f1a7f836815d22d567013c60d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc23fb187891eb6f1a7f836815d22d567013c60d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cc4199d8090f2574a618471328dcea390cb55747 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc4199d8090f2574a618471328dcea390cb55747
index 253966dbb..253966dbb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cc4199d8090f2574a618471328dcea390cb55747
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc4199d8090f2574a618471328dcea390cb55747
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cc61f1d6ee5e03694c85dd8ec425987a36649883 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc61f1d6ee5e03694c85dd8ec425987a36649883
index aa61f9c10..aa61f9c10 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cc61f1d6ee5e03694c85dd8ec425987a36649883
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc61f1d6ee5e03694c85dd8ec425987a36649883
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cc7da2fad8674f1e3bacb645954147842cbc41e9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc7da2fad8674f1e3bacb645954147842cbc41e9
index fcbd3b41e..fcbd3b41e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cc7da2fad8674f1e3bacb645954147842cbc41e9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cc7da2fad8674f1e3bacb645954147842cbc41e9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cce6d5685c901b592515540bab8c40f00733d3b9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cce6d5685c901b592515540bab8c40f00733d3b9
index 5bb3ef203..5bb3ef203 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cce6d5685c901b592515540bab8c40f00733d3b9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cce6d5685c901b592515540bab8c40f00733d3b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cced73d1781720a118ffdcce587529da5b05c09d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cced73d1781720a118ffdcce587529da5b05c09d
index 5cfb75aab..5cfb75aab 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cced73d1781720a118ffdcce587529da5b05c09d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cced73d1781720a118ffdcce587529da5b05c09d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ccf4aa770470bccc20ca69d9fd40b60ff15abd72 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ccf4aa770470bccc20ca69d9fd40b60ff15abd72
index a17ceda7e..a17ceda7e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ccf4aa770470bccc20ca69d9fd40b60ff15abd72
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ccf4aa770470bccc20ca69d9fd40b60ff15abd72
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cd1976ed38fbfc5abb38563350f1f4dee6beeec5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd1976ed38fbfc5abb38563350f1f4dee6beeec5
index a1581232d..a1581232d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cd1976ed38fbfc5abb38563350f1f4dee6beeec5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd1976ed38fbfc5abb38563350f1f4dee6beeec5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cd31eab20e7bba1fcd375eb69804ab97019604bc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd31eab20e7bba1fcd375eb69804ab97019604bc
index 8054eaed3..8054eaed3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cd31eab20e7bba1fcd375eb69804ab97019604bc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd31eab20e7bba1fcd375eb69804ab97019604bc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cd3526e8f9030cd30eb27e3bf3c0efa8692ba2a8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3526e8f9030cd30eb27e3bf3c0efa8692ba2a8
index f54a0b810..f54a0b810 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cd3526e8f9030cd30eb27e3bf3c0efa8692ba2a8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3526e8f9030cd30eb27e3bf3c0efa8692ba2a8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cd3b0e44d5e29cc8c3b79684ace4c9416ac5aeac b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3b0e44d5e29cc8c3b79684ace4c9416ac5aeac
index 629e9289c..629e9289c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cd3b0e44d5e29cc8c3b79684ace4c9416ac5aeac
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3b0e44d5e29cc8c3b79684ace4c9416ac5aeac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cd3edda428e4e61005f4053c10ce7bd3590f87d5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3edda428e4e61005f4053c10ce7bd3590f87d5
index af071cf8a..af071cf8a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cd3edda428e4e61005f4053c10ce7bd3590f87d5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd3edda428e4e61005f4053c10ce7bd3590f87d5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cd6d50f0b73966e47776a87e978930da85f6d948 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd6d50f0b73966e47776a87e978930da85f6d948
index 0ee60de73..0ee60de73 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cd6d50f0b73966e47776a87e978930da85f6d948
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cd6d50f0b73966e47776a87e978930da85f6d948
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cdb3019af4dbb93c3551fd3ea9c9fee744ec43ac b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cdb3019af4dbb93c3551fd3ea9c9fee744ec43ac
index 3ae9adb02..3ae9adb02 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cdb3019af4dbb93c3551fd3ea9c9fee744ec43ac
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cdb3019af4dbb93c3551fd3ea9c9fee744ec43ac
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ce63142e81fb0a63f7c185478738092844f5af5a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ce63142e81fb0a63f7c185478738092844f5af5a
index 047ea8726..047ea8726 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ce63142e81fb0a63f7c185478738092844f5af5a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ce63142e81fb0a63f7c185478738092844f5af5a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cf094d5650ef7267525ef182de53b92cb1643699 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cf094d5650ef7267525ef182de53b92cb1643699
index 28fa78f26..28fa78f26 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cf094d5650ef7267525ef182de53b92cb1643699
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cf094d5650ef7267525ef182de53b92cb1643699
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cf3c11cfb701a1d58062c94f370d7e1f500ddac2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cf3c11cfb701a1d58062c94f370d7e1f500ddac2
index f160ad1a8..f160ad1a8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cf3c11cfb701a1d58062c94f370d7e1f500ddac2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cf3c11cfb701a1d58062c94f370d7e1f500ddac2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cf83aacc03cb874af4ad553223dc671707b129a8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cf83aacc03cb874af4ad553223dc671707b129a8
index 10d64c2bf..10d64c2bf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cf83aacc03cb874af4ad553223dc671707b129a8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cf83aacc03cb874af4ad553223dc671707b129a8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/cfcd0b6d1ac3725f33a582056a59079ec3e31dfe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cfcd0b6d1ac3725f33a582056a59079ec3e31dfe
index 85c041038..85c041038 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/cfcd0b6d1ac3725f33a582056a59079ec3e31dfe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/cfcd0b6d1ac3725f33a582056a59079ec3e31dfe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-empty.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-empty.txt
index d67e782c6..d67e782c6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-empty.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-empty.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-extreme.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-extreme.txt
index ae19cc865..ae19cc865 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-extreme.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-extreme.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-complete-junk.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-complete-junk.txt
index 86a29a9a6..86a29a9a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-complete-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-complete-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing-but-extension.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing-but-extension.txt
index 5d3980c72..5d3980c72 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing-but-extension.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing-but-extension.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing.txt
index b990b2d9e..b990b2d9e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-missing.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-junk.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-junk.txt
index 9e8715b83..9e8715b83 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-space.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-space.txt
index 3484195c1..3484195c1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-space.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-trailing-space.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-uppercase.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-uppercase.txt
index d235fcb07..d235fcb07 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-uppercase.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-hex-uppercase.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-last-chunk-with-extension.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-last-chunk-with-extension.txt
index 8be9a43a7..8be9a43a7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-last-chunk-with-extension.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-last-chunk-with-extension.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-extension.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-extension.txt
index 1337ee0a4..1337ee0a4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-extension.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-extension.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-trailer.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-trailer.txt
index 5c47bd3ed..5c47bd3ed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-trailer.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one-trailer.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one.txt
index 966dec79a..966dec79a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-one.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-sixteen.hex b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-sixteen.hex
index 36a731b87..36a731b87 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-sixteen.hex
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-sixteen.hex
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-extensions.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-extensions.txt
index 8c11a06ff..8c11a06ff 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-extensions.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-extensions.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-trailers.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-trailers.txt
index cefefca19..cefefca19 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-trailers.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two-trailers.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two.txt
index 0d2900379..0d2900379 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/chunked-two.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-complete-junk.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-complete-junk.txt
index 2efa1e771..2efa1e771 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-complete-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-complete-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-missing.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-missing.txt
index a4b1b5870..a4b1b5870 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-missing.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-missing.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-junk.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-junk.txt
index a85c1af4a..a85c1af4a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-junk.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-junk.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-space.txt b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-space.txt
index f9edc7e20..f9edc7e20 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-space.txt
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/content-length-trailing-space.txt
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d0294dfd47f94d3e61b5ec21ada5950141d807a0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d0294dfd47f94d3e61b5ec21ada5950141d807a0
index abd714907..abd714907 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d0294dfd47f94d3e61b5ec21ada5950141d807a0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d0294dfd47f94d3e61b5ec21ada5950141d807a0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d075accb56088cd793e36deaf7b893e2c2458200 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d075accb56088cd793e36deaf7b893e2c2458200
index 14b373d4c..14b373d4c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d075accb56088cd793e36deaf7b893e2c2458200
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d075accb56088cd793e36deaf7b893e2c2458200
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d104d3ea3bf7dc68feb906a9e91fa212e0ec569c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d104d3ea3bf7dc68feb906a9e91fa212e0ec569c
index b7a38e0f1..b7a38e0f1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d104d3ea3bf7dc68feb906a9e91fa212e0ec569c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d104d3ea3bf7dc68feb906a9e91fa212e0ec569c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d125916a553e7279d33d1865f4f4e85ad3d31b5f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d125916a553e7279d33d1865f4f4e85ad3d31b5f
index a37c3fcf9..a37c3fcf9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d125916a553e7279d33d1865f4f4e85ad3d31b5f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d125916a553e7279d33d1865f4f4e85ad3d31b5f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d13c6009b80a3574bdcb1c0284b889d7bd98d42f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d13c6009b80a3574bdcb1c0284b889d7bd98d42f
index b045f06c6..b045f06c6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d13c6009b80a3574bdcb1c0284b889d7bd98d42f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d13c6009b80a3574bdcb1c0284b889d7bd98d42f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d146bbee5c38be2a8a53e27dd9ff11b3f9dceeb2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d146bbee5c38be2a8a53e27dd9ff11b3f9dceeb2
index 71e9f43a9..71e9f43a9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d146bbee5c38be2a8a53e27dd9ff11b3f9dceeb2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d146bbee5c38be2a8a53e27dd9ff11b3f9dceeb2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d17c0d4a2c39739e84c1a4f4a6e03c4ace1b637b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d17c0d4a2c39739e84c1a4f4a6e03c4ace1b637b
index 67f2b2050..67f2b2050 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d17c0d4a2c39739e84c1a4f4a6e03c4ace1b637b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d17c0d4a2c39739e84c1a4f4a6e03c4ace1b637b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d1aeaef3528e5c85c5e67616f6af955dbb207467 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d1aeaef3528e5c85c5e67616f6af955dbb207467
index 43eaaa002..43eaaa002 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d1aeaef3528e5c85c5e67616f6af955dbb207467
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d1aeaef3528e5c85c5e67616f6af955dbb207467
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d1ebaa9ae982454abe2894d03c5562b9b60e18a7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d1ebaa9ae982454abe2894d03c5562b9b60e18a7
index bfed1aa44..bfed1aa44 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d1ebaa9ae982454abe2894d03c5562b9b60e18a7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d1ebaa9ae982454abe2894d03c5562b9b60e18a7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d1f5387fe0d0ab51037e3e0c8ad4c18e662ef904 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d1f5387fe0d0ab51037e3e0c8ad4c18e662ef904
index c85ad7f84..c85ad7f84 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d1f5387fe0d0ab51037e3e0c8ad4c18e662ef904
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d1f5387fe0d0ab51037e3e0c8ad4c18e662ef904
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d235496142d54838520da6926717631b585ec515 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d235496142d54838520da6926717631b585ec515
index a60ddd322..a60ddd322 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d235496142d54838520da6926717631b585ec515
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d235496142d54838520da6926717631b585ec515
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d2caf5379bc5905bac08db2bfc35137ad47b47b2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2caf5379bc5905bac08db2bfc35137ad47b47b2
index 7cc60cc0e..7cc60cc0e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d2caf5379bc5905bac08db2bfc35137ad47b47b2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2caf5379bc5905bac08db2bfc35137ad47b47b2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d2cd5c1b57ada093b6d2ec81d48a11ddaa3b274f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2cd5c1b57ada093b6d2ec81d48a11ddaa3b274f
index cc2899e18..cc2899e18 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d2cd5c1b57ada093b6d2ec81d48a11ddaa3b274f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2cd5c1b57ada093b6d2ec81d48a11ddaa3b274f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce5b54c0911d684314580dd279e5616efd5e4a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce5b54c0911d684314580dd279e5616efd5e4a
index 834775940..834775940 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce5b54c0911d684314580dd279e5616efd5e4a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce5b54c0911d684314580dd279e5616efd5e4a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce965b30d986f76e95e9b23f50d33a8857c270 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce965b30d986f76e95e9b23f50d33a8857c270
index d8a5095ec..d8a5095ec 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce965b30d986f76e95e9b23f50d33a8857c270
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2ce965b30d986f76e95e9b23f50d33a8857c270
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d2f4d4baf2697a548ab7b466544de208be54700d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2f4d4baf2697a548ab7b466544de208be54700d
index dfd47188c..dfd47188c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d2f4d4baf2697a548ab7b466544de208be54700d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d2f4d4baf2697a548ab7b466544de208be54700d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d30ee9ea802cc78a6a01135a6c29108d7617e047 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d30ee9ea802cc78a6a01135a6c29108d7617e047
index dadfca551..dadfca551 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d30ee9ea802cc78a6a01135a6c29108d7617e047
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d30ee9ea802cc78a6a01135a6c29108d7617e047
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d33fc3d4d1346fc9370ccb12122512bb42dd1ea6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d33fc3d4d1346fc9370ccb12122512bb42dd1ea6
index 3ad7b0c14..3ad7b0c14 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d33fc3d4d1346fc9370ccb12122512bb42dd1ea6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d33fc3d4d1346fc9370ccb12122512bb42dd1ea6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d3aaca6eebe50a9401816a1ffbccc4c21a477775 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d3aaca6eebe50a9401816a1ffbccc4c21a477775
index ee3ad5a83..ee3ad5a83 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d3aaca6eebe50a9401816a1ffbccc4c21a477775
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d3aaca6eebe50a9401816a1ffbccc4c21a477775
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d40bfcf0209f1d3c8fe39ff8cd82c16a71ea5505 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d40bfcf0209f1d3c8fe39ff8cd82c16a71ea5505
index 88591e698..88591e698 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d40bfcf0209f1d3c8fe39ff8cd82c16a71ea5505
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d40bfcf0209f1d3c8fe39ff8cd82c16a71ea5505
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d41236e99a2d15489fb86e23d61a63dbc02c2895 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d41236e99a2d15489fb86e23d61a63dbc02c2895
index 2d409bfa1..2d409bfa1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d41236e99a2d15489fb86e23d61a63dbc02c2895
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d41236e99a2d15489fb86e23d61a63dbc02c2895
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d4275a43f41b6717f0e0d8b9e81c236b81393350 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d4275a43f41b6717f0e0d8b9e81c236b81393350
index 17c6ea883..17c6ea883 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d4275a43f41b6717f0e0d8b9e81c236b81393350
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d4275a43f41b6717f0e0d8b9e81c236b81393350
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d429b5a6d3f2be1dad7769fff981ad4fac046129 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d429b5a6d3f2be1dad7769fff981ad4fac046129
index de9515407..de9515407 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d429b5a6d3f2be1dad7769fff981ad4fac046129
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d429b5a6d3f2be1dad7769fff981ad4fac046129
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d43c9d1a08ccbcfd45db557be6c06353e44705af b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d43c9d1a08ccbcfd45db557be6c06353e44705af
index 677c1bb59..677c1bb59 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d43c9d1a08ccbcfd45db557be6c06353e44705af
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d43c9d1a08ccbcfd45db557be6c06353e44705af
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d489d43056f966ab28c8416a7370d718a7bcbc6f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d489d43056f966ab28c8416a7370d718a7bcbc6f
index dd3743201..dd3743201 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d489d43056f966ab28c8416a7370d718a7bcbc6f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d489d43056f966ab28c8416a7370d718a7bcbc6f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474
index 5a5ea4181..5a5ea4181 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d4dd6462130b13d56cc315f8e38c6ef883a80474
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d537933c5bf5e74293647a717dd64936de092db8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d537933c5bf5e74293647a717dd64936de092db8
index 8a1e8d6e2..8a1e8d6e2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d537933c5bf5e74293647a717dd64936de092db8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d537933c5bf5e74293647a717dd64936de092db8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d5c844edce1789bc4bf71b75b9a462e73e39a8d2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d5c844edce1789bc4bf71b75b9a462e73e39a8d2
index 66ea51d2d..66ea51d2d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d5c844edce1789bc4bf71b75b9a462e73e39a8d2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d5c844edce1789bc4bf71b75b9a462e73e39a8d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d6077d45c6a645aa7407a7ce17c8a5cc4a5dfa74 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d6077d45c6a645aa7407a7ce17c8a5cc4a5dfa74
index 587cc0eb1..587cc0eb1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d6077d45c6a645aa7407a7ce17c8a5cc4a5dfa74
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d6077d45c6a645aa7407a7ce17c8a5cc4a5dfa74
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d69080a4ea3ec2a3ea5a38d74bf6bd5c96136b98 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d69080a4ea3ec2a3ea5a38d74bf6bd5c96136b98
index 6c51e3a6a..6c51e3a6a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d69080a4ea3ec2a3ea5a38d74bf6bd5c96136b98
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d69080a4ea3ec2a3ea5a38d74bf6bd5c96136b98
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d6b49456c9485f0400e774d97254047df2eabe53 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d6b49456c9485f0400e774d97254047df2eabe53
index 4a518cab3..4a518cab3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d6b49456c9485f0400e774d97254047df2eabe53
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d6b49456c9485f0400e774d97254047df2eabe53
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d6dbea4a4af12b72e5e2aa225e25c01d43ea3537 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d6dbea4a4af12b72e5e2aa225e25c01d43ea3537
index e6adf5e4f..e6adf5e4f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d6dbea4a4af12b72e5e2aa225e25c01d43ea3537
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d6dbea4a4af12b72e5e2aa225e25c01d43ea3537
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d73c2bd352c2aeca1a95d37fded5a54546e53521 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d73c2bd352c2aeca1a95d37fded5a54546e53521
index c01d947b9..c01d947b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d73c2bd352c2aeca1a95d37fded5a54546e53521
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d73c2bd352c2aeca1a95d37fded5a54546e53521
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d74495f1328da5657526ff0be95be405ea66cd65 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d74495f1328da5657526ff0be95be405ea66cd65
index 14f0d9f3d..14f0d9f3d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d74495f1328da5657526ff0be95be405ea66cd65
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d74495f1328da5657526ff0be95be405ea66cd65
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d74ba5aa35797246dfdb739602ada7d5d172c0be b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d74ba5aa35797246dfdb739602ada7d5d172c0be
index 2134546cb..2134546cb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d74ba5aa35797246dfdb739602ada7d5d172c0be
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d74ba5aa35797246dfdb739602ada7d5d172c0be
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d75ab0577aa9b35f1c0a3c8e40dbaec6a33862ce b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d75ab0577aa9b35f1c0a3c8e40dbaec6a33862ce
index 58159da65..58159da65 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d75ab0577aa9b35f1c0a3c8e40dbaec6a33862ce
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d75ab0577aa9b35f1c0a3c8e40dbaec6a33862ce
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d78392761a6179026a01df60c69d93797734ee9d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d78392761a6179026a01df60c69d93797734ee9d
index 292eec285..292eec285 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d78392761a6179026a01df60c69d93797734ee9d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d78392761a6179026a01df60c69d93797734ee9d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d7b4b7848dbf68f25dc48d0bee12f925f16f800d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7b4b7848dbf68f25dc48d0bee12f925f16f800d
index 34eb2c32e..34eb2c32e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d7b4b7848dbf68f25dc48d0bee12f925f16f800d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7b4b7848dbf68f25dc48d0bee12f925f16f800d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d7bcf9cf8cc5ff8defeec96536874c7d53326e01 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7bcf9cf8cc5ff8defeec96536874c7d53326e01
index 7e4197084..7e4197084 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d7bcf9cf8cc5ff8defeec96536874c7d53326e01
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7bcf9cf8cc5ff8defeec96536874c7d53326e01
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d7c76a9c32eb0e52f9b759c25a5e1d2c80b65dcf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7c76a9c32eb0e52f9b759c25a5e1d2c80b65dcf
index 97c54d563..97c54d563 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d7c76a9c32eb0e52f9b759c25a5e1d2c80b65dcf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7c76a9c32eb0e52f9b759c25a5e1d2c80b65dcf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d7d700eb3847ea90d45ba105d9395d0877af2266 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7d700eb3847ea90d45ba105d9395d0877af2266
index f49fc2ce9..f49fc2ce9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d7d700eb3847ea90d45ba105d9395d0877af2266
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7d700eb3847ea90d45ba105d9395d0877af2266
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d7ed17dee713563276c05db9a3852a8d5aa6affb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7ed17dee713563276c05db9a3852a8d5aa6affb
index ee9d44932..ee9d44932 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d7ed17dee713563276c05db9a3852a8d5aa6affb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7ed17dee713563276c05db9a3852a8d5aa6affb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d7f6fd5ed6c9361ddb3193efba846cb9e9110277 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7f6fd5ed6c9361ddb3193efba846cb9e9110277
index 67ce257ab..67ce257ab 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d7f6fd5ed6c9361ddb3193efba846cb9e9110277
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d7f6fd5ed6c9361ddb3193efba846cb9e9110277
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d84aa075d3878310acf4ae44b244019cdb42ab1f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d84aa075d3878310acf4ae44b244019cdb42ab1f
index 9a3a41176..9a3a41176 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d84aa075d3878310acf4ae44b244019cdb42ab1f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d84aa075d3878310acf4ae44b244019cdb42ab1f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d850ad1c7f559eff39ec2f7f33577687a8530d89 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d850ad1c7f559eff39ec2f7f33577687a8530d89
index 5d7d3bbbc..5d7d3bbbc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d850ad1c7f559eff39ec2f7f33577687a8530d89
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d850ad1c7f559eff39ec2f7f33577687a8530d89
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d8597c8cc68cd8a317c3657d591d5e34590e8995 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d8597c8cc68cd8a317c3657d591d5e34590e8995
index 1f5acfded..1f5acfded 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d8597c8cc68cd8a317c3657d591d5e34590e8995
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d8597c8cc68cd8a317c3657d591d5e34590e8995
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d85d1aa7385415f81382ee265d64469aa1066aba b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d85d1aa7385415f81382ee265d64469aa1066aba
index 91cee1220..91cee1220 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d85d1aa7385415f81382ee265d64469aa1066aba
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d85d1aa7385415f81382ee265d64469aa1066aba
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d86e0c1a56376ce90d5f97e67b6a7b3604c3d84b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d86e0c1a56376ce90d5f97e67b6a7b3604c3d84b
index db648af2e..db648af2e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d86e0c1a56376ce90d5f97e67b6a7b3604c3d84b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d86e0c1a56376ce90d5f97e67b6a7b3604c3d84b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d8759b0b3b8eb7d6747b03fa499e07ea3186d436 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d8759b0b3b8eb7d6747b03fa499e07ea3186d436
index e241e0540..e241e0540 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d8759b0b3b8eb7d6747b03fa499e07ea3186d436
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d8759b0b3b8eb7d6747b03fa499e07ea3186d436
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d879969054fb8afd73a4b3f12f531bad58351b02 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d879969054fb8afd73a4b3f12f531bad58351b02
index 7f0b73de9..7f0b73de9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d879969054fb8afd73a4b3f12f531bad58351b02
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d879969054fb8afd73a4b3f12f531bad58351b02
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d88e90b01449ca3ed188ff6dd4a7046cd6830c75 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d88e90b01449ca3ed188ff6dd4a7046cd6830c75
index f11eb8b20..f11eb8b20 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d88e90b01449ca3ed188ff6dd4a7046cd6830c75
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d88e90b01449ca3ed188ff6dd4a7046cd6830c75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d8f6b2acbe82c2e6af59931cbe881944470e4e1f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d8f6b2acbe82c2e6af59931cbe881944470e4e1f
index 0e249fd51..0e249fd51 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d8f6b2acbe82c2e6af59931cbe881944470e4e1f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d8f6b2acbe82c2e6af59931cbe881944470e4e1f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d93f7d0a88213f0f1e8da8d21be04833e4e5d995 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d93f7d0a88213f0f1e8da8d21be04833e4e5d995
index 634de5847..634de5847 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d93f7d0a88213f0f1e8da8d21be04833e4e5d995
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d93f7d0a88213f0f1e8da8d21be04833e4e5d995
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d9bb6d824331a7f560e304c08e679e2af6385660 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d9bb6d824331a7f560e304c08e679e2af6385660
index 36be61eb8..36be61eb8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d9bb6d824331a7f560e304c08e679e2af6385660
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d9bb6d824331a7f560e304c08e679e2af6385660
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a
index 334cda84f..334cda84f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/d9decd544d8e0f40c8abc710cc08e0a3bf3fa16a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/da81c50a35a70154ed2826cd354f06ce9c7d19e0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/da81c50a35a70154ed2826cd354f06ce9c7d19e0
index 0d97c3a36..0d97c3a36 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/da81c50a35a70154ed2826cd354f06ce9c7d19e0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/da81c50a35a70154ed2826cd354f06ce9c7d19e0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/da9d7ebbc15645ec27a1426d59d742e8e857b04d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/da9d7ebbc15645ec27a1426d59d742e8e857b04d
index 9ba9c4fce..9ba9c4fce 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/da9d7ebbc15645ec27a1426d59d742e8e857b04d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/da9d7ebbc15645ec27a1426d59d742e8e857b04d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dade4a6b122f9851fcbe3c583acf5248f68704d2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dade4a6b122f9851fcbe3c583acf5248f68704d2
index 5427c0e4d..5427c0e4d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dade4a6b122f9851fcbe3c583acf5248f68704d2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dade4a6b122f9851fcbe3c583acf5248f68704d2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dae137f2267faa3fdfacf04876240a6e927acef5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dae137f2267faa3fdfacf04876240a6e927acef5
index 2b802d3dd..2b802d3dd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dae137f2267faa3fdfacf04876240a6e927acef5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dae137f2267faa3fdfacf04876240a6e927acef5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dae217cc15ca70a405b2a5f82f0b22c53da2b89b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dae217cc15ca70a405b2a5f82f0b22c53da2b89b
index 516083f37..516083f37 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dae217cc15ca70a405b2a5f82f0b22c53da2b89b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dae217cc15ca70a405b2a5f82f0b22c53da2b89b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/daedf15539dfc460e6a5105ce4279d5c8e424942 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/daedf15539dfc460e6a5105ce4279d5c8e424942
index 469703328..469703328 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/daedf15539dfc460e6a5105ce4279d5c8e424942
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/daedf15539dfc460e6a5105ce4279d5c8e424942
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/db1116dca2a61226959171891c7f1459171d7f0d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db1116dca2a61226959171891c7f1459171d7f0d
index 79fc18aed..79fc18aed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/db1116dca2a61226959171891c7f1459171d7f0d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db1116dca2a61226959171891c7f1459171d7f0d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/db14d4a659c5e138290e87ba9e7a4e3563eb3dca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db14d4a659c5e138290e87ba9e7a4e3563eb3dca
index 71d747a56..71d747a56 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/db14d4a659c5e138290e87ba9e7a4e3563eb3dca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db14d4a659c5e138290e87ba9e7a4e3563eb3dca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/db1c948bbe625278700191a16447f57d013545cc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db1c948bbe625278700191a16447f57d013545cc
index 6a7e0de5b..6a7e0de5b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/db1c948bbe625278700191a16447f57d013545cc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db1c948bbe625278700191a16447f57d013545cc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/db96f6389b76310ad78af27fdb7989f51ae7304e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db96f6389b76310ad78af27fdb7989f51ae7304e
index b1d82cfe7..b1d82cfe7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/db96f6389b76310ad78af27fdb7989f51ae7304e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/db96f6389b76310ad78af27fdb7989f51ae7304e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826
index 85f0687a9..85f0687a9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dce9df9ced5dcd493525aa3ffb2b608889114826
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dd4791bb00101f010e7e1b9b85485aa01adf986c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd4791bb00101f010e7e1b9b85485aa01adf986c
index d08647e53..d08647e53 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dd4791bb00101f010e7e1b9b85485aa01adf986c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd4791bb00101f010e7e1b9b85485aa01adf986c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dd7dcedd7a9048847454784d8e17334432fd052e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd7dcedd7a9048847454784d8e17334432fd052e
index bb4b0c87b..bb4b0c87b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dd7dcedd7a9048847454784d8e17334432fd052e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd7dcedd7a9048847454784d8e17334432fd052e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dd922d5cbb4520f7375d9c17b0e1132ef321ff0e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd922d5cbb4520f7375d9c17b0e1132ef321ff0e
index 8d1fab923..8d1fab923 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dd922d5cbb4520f7375d9c17b0e1132ef321ff0e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd922d5cbb4520f7375d9c17b0e1132ef321ff0e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dd95557f8377215f946cf92345671edceff0af20 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd95557f8377215f946cf92345671edceff0af20
index e50d37cec..e50d37cec 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dd95557f8377215f946cf92345671edceff0af20
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dd95557f8377215f946cf92345671edceff0af20
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ddb2c10b0fc7d7a4348e7817f334b9fdc634ee79 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ddb2c10b0fc7d7a4348e7817f334b9fdc634ee79
index 1e6412328..1e6412328 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ddb2c10b0fc7d7a4348e7817f334b9fdc634ee79
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ddb2c10b0fc7d7a4348e7817f334b9fdc634ee79
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ddc7fbc29b6baf54413bee3aa2c72cd42405e281 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ddc7fbc29b6baf54413bee3aa2c72cd42405e281
index 8d288f81e..8d288f81e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ddc7fbc29b6baf54413bee3aa2c72cd42405e281
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ddc7fbc29b6baf54413bee3aa2c72cd42405e281
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dde77ec9ae1557d2320f32c69453f3e1c21bc207 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dde77ec9ae1557d2320f32c69453f3e1c21bc207
index 35ed000e2..35ed000e2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dde77ec9ae1557d2320f32c69453f3e1c21bc207
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dde77ec9ae1557d2320f32c69453f3e1c21bc207
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de0017a5120cbce294e62c0a688d9b937a7c9317 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de0017a5120cbce294e62c0a688d9b937a7c9317
index fa9b4bd51..fa9b4bd51 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de0017a5120cbce294e62c0a688d9b937a7c9317
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de0017a5120cbce294e62c0a688d9b937a7c9317
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de2605030710b27a24c4d137617ac96fbc66ffbe b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de2605030710b27a24c4d137617ac96fbc66ffbe
index 96bb956c6..96bb956c6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de2605030710b27a24c4d137617ac96fbc66ffbe
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de2605030710b27a24c4d137617ac96fbc66ffbe
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de324aa7a38a20437f84b371f29bc0c672ff0805 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de324aa7a38a20437f84b371f29bc0c672ff0805
index bad7540ac..bad7540ac 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de324aa7a38a20437f84b371f29bc0c672ff0805
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de324aa7a38a20437f84b371f29bc0c672ff0805
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de44121163ddb3a0b65d1d3c9b04d108d3625eda b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de44121163ddb3a0b65d1d3c9b04d108d3625eda
index 5b36eb3d8..5b36eb3d8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de44121163ddb3a0b65d1d3c9b04d108d3625eda
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de44121163ddb3a0b65d1d3c9b04d108d3625eda
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de4f74aed94ad5a75e185d59d668b53344ab3133 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de4f74aed94ad5a75e185d59d668b53344ab3133
index 63d74917a..63d74917a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de4f74aed94ad5a75e185d59d668b53344ab3133
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de4f74aed94ad5a75e185d59d668b53344ab3133
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de64ceee2fd45c9dc6f37e527fc60e5f10e8e4a4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de64ceee2fd45c9dc6f37e527fc60e5f10e8e4a4
index ca7e41973..ca7e41973 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de64ceee2fd45c9dc6f37e527fc60e5f10e8e4a4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de64ceee2fd45c9dc6f37e527fc60e5f10e8e4a4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de6ca341eb9699248837ae3c23ab60163ca13e9c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de6ca341eb9699248837ae3c23ab60163ca13e9c
index bdcab2ada..bdcab2ada 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de6ca341eb9699248837ae3c23ab60163ca13e9c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de6ca341eb9699248837ae3c23ab60163ca13e9c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/de812144a12d01f6b066a1c8336c7affaacb742c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de812144a12d01f6b066a1c8336c7affaacb742c
index d53f03bee..d53f03bee 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/de812144a12d01f6b066a1c8336c7affaacb742c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/de812144a12d01f6b066a1c8336c7affaacb742c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dee582811ad04e0361098eef7ad1b7bac38f7389 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dee582811ad04e0361098eef7ad1b7bac38f7389
index 791ad5a19..791ad5a19 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dee582811ad04e0361098eef7ad1b7bac38f7389
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dee582811ad04e0361098eef7ad1b7bac38f7389
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dee8932fbbbc308b7b941103675622d1b36926f2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dee8932fbbbc308b7b941103675622d1b36926f2
index 24c1aa0f4..24c1aa0f4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dee8932fbbbc308b7b941103675622d1b36926f2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dee8932fbbbc308b7b941103675622d1b36926f2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/df369ce1b83d6cb00308c4a2477846da87691fbb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df369ce1b83d6cb00308c4a2477846da87691fbb
index 88e96ba28..88e96ba28 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/df369ce1b83d6cb00308c4a2477846da87691fbb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df369ce1b83d6cb00308c4a2477846da87691fbb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/df63abee9202c5b33d479b9947144c1edd29b2b4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df63abee9202c5b33d479b9947144c1edd29b2b4
index 364576f2c..364576f2c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/df63abee9202c5b33d479b9947144c1edd29b2b4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df63abee9202c5b33d479b9947144c1edd29b2b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/df84cc15850842057eae4ef1f0db534acd386872 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df84cc15850842057eae4ef1f0db534acd386872
index 0535f1e03..0535f1e03 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/df84cc15850842057eae4ef1f0db534acd386872
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df84cc15850842057eae4ef1f0db534acd386872
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/df8e06e3e84bf6bfc1ba82baf3f8414b914bd21e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df8e06e3e84bf6bfc1ba82baf3f8414b914bd21e
index f7beb69a7..f7beb69a7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/df8e06e3e84bf6bfc1ba82baf3f8414b914bd21e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df8e06e3e84bf6bfc1ba82baf3f8414b914bd21e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/df8e8bd5a8880e271ab4daa75bbf7d3c1f09c442 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df8e8bd5a8880e271ab4daa75bbf7d3c1f09c442
index 4d9a4e0eb..4d9a4e0eb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/df8e8bd5a8880e271ab4daa75bbf7d3c1f09c442
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/df8e8bd5a8880e271ab4daa75bbf7d3c1f09c442
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/dfbb273243664a1b97c5244f5f78570cb8c7954c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dfbb273243664a1b97c5244f5f78570cb8c7954c
index c13171d34..c13171d34 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/dfbb273243664a1b97c5244f5f78570cb8c7954c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/dfbb273243664a1b97c5244f5f78570cb8c7954c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e01510fad07c26b82efc03f5e17777ce1a480c5c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e01510fad07c26b82efc03f5e17777ce1a480c5c
index b86023a6f..b86023a6f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e01510fad07c26b82efc03f5e17777ce1a480c5c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e01510fad07c26b82efc03f5e17777ce1a480c5c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e03295893c6fa334e172656ef27c4de33f8d490d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e03295893c6fa334e172656ef27c4de33f8d490d
index d3a46ee57..d3a46ee57 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e03295893c6fa334e172656ef27c4de33f8d490d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e03295893c6fa334e172656ef27c4de33f8d490d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e039de3abc8134aadede158d0c23d2981a362719 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e039de3abc8134aadede158d0c23d2981a362719
index c13712057..c13712057 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e039de3abc8134aadede158d0c23d2981a362719
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e039de3abc8134aadede158d0c23d2981a362719
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e0a0e15cbce73706ae010f981ede7501e4516327 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0a0e15cbce73706ae010f981ede7501e4516327
index b18a5ff42..b18a5ff42 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e0a0e15cbce73706ae010f981ede7501e4516327
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0a0e15cbce73706ae010f981ede7501e4516327
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e0a30c9bb3cec25b9c29dd5eea16ac0a88da13e1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0a30c9bb3cec25b9c29dd5eea16ac0a88da13e1
index b895d7f41..b895d7f41 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e0a30c9bb3cec25b9c29dd5eea16ac0a88da13e1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0a30c9bb3cec25b9c29dd5eea16ac0a88da13e1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e0b7bf88771a804a4f1d36f40eb3af021ccf8d68 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0b7bf88771a804a4f1d36f40eb3af021ccf8d68
index cbd7ff155..cbd7ff155 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e0b7bf88771a804a4f1d36f40eb3af021ccf8d68
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0b7bf88771a804a4f1d36f40eb3af021ccf8d68
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e0ceeff896f3cee848daf04054078fc9c7ab2983 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0ceeff896f3cee848daf04054078fc9c7ab2983
index 5c89ca750..5c89ca750 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e0ceeff896f3cee848daf04054078fc9c7ab2983
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e0ceeff896f3cee848daf04054078fc9c7ab2983
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e1230645e4c011a7ff352ac98e38756f86014b94 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1230645e4c011a7ff352ac98e38756f86014b94
index 6498de3f2..6498de3f2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e1230645e4c011a7ff352ac98e38756f86014b94
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1230645e4c011a7ff352ac98e38756f86014b94
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e146e00fc1b66cdb956c985a77e612d59f9c7812 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e146e00fc1b66cdb956c985a77e612d59f9c7812
index 2d30199d8..2d30199d8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e146e00fc1b66cdb956c985a77e612d59f9c7812
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e146e00fc1b66cdb956c985a77e612d59f9c7812
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e16a47bea1d259f129df79959e14fe962b2c01f8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e16a47bea1d259f129df79959e14fe962b2c01f8
index 0d5b8435e..0d5b8435e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e16a47bea1d259f129df79959e14fe962b2c01f8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e16a47bea1d259f129df79959e14fe962b2c01f8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e1aff661bc08f0df06a4f3e21da38de3e8f03ae6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1aff661bc08f0df06a4f3e21da38de3e8f03ae6
index fe5660db9..fe5660db9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e1aff661bc08f0df06a4f3e21da38de3e8f03ae6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1aff661bc08f0df06a4f3e21da38de3e8f03ae6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e1b0b25b8d5ed3fef892629aebb04d2d5847033f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1b0b25b8d5ed3fef892629aebb04d2d5847033f
index 707e2ed2d..707e2ed2d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e1b0b25b8d5ed3fef892629aebb04d2d5847033f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1b0b25b8d5ed3fef892629aebb04d2d5847033f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e1b73c47f693b45e3fa5c2717d35767cd5d1bb7f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1b73c47f693b45e3fa5c2717d35767cd5d1bb7f
index 59249071f..59249071f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e1b73c47f693b45e3fa5c2717d35767cd5d1bb7f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1b73c47f693b45e3fa5c2717d35767cd5d1bb7f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e1bd4655d30387e149fd379e4b0d7d5af2ea99d3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1bd4655d30387e149fd379e4b0d7d5af2ea99d3
index 0d0eb98d1..0d0eb98d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e1bd4655d30387e149fd379e4b0d7d5af2ea99d3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1bd4655d30387e149fd379e4b0d7d5af2ea99d3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e1f961ea85d61e63167fcfd67607eb49677b8d1f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1f961ea85d61e63167fcfd67607eb49677b8d1f
index c415c75ca..c415c75ca 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e1f961ea85d61e63167fcfd67607eb49677b8d1f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e1f961ea85d61e63167fcfd67607eb49677b8d1f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e2176e1148e5560c39c28845a713ee681243fd31 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2176e1148e5560c39c28845a713ee681243fd31
index 10cb94711..10cb94711 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e2176e1148e5560c39c28845a713ee681243fd31
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2176e1148e5560c39c28845a713ee681243fd31
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e241f9b586aa7130c9d7d4787d64164299ec46ed b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e241f9b586aa7130c9d7d4787d64164299ec46ed
index 1387b66b7..1387b66b7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e241f9b586aa7130c9d7d4787d64164299ec46ed
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e241f9b586aa7130c9d7d4787d64164299ec46ed
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e25169a6ab6de82609cf7f6ded62200fe1314294 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e25169a6ab6de82609cf7f6ded62200fe1314294
index d81a9b05d..d81a9b05d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e25169a6ab6de82609cf7f6ded62200fe1314294
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e25169a6ab6de82609cf7f6ded62200fe1314294
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e271af0e2a20bd04150314dd36aeff6c952af272 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e271af0e2a20bd04150314dd36aeff6c952af272
index 032763f69..032763f69 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e271af0e2a20bd04150314dd36aeff6c952af272
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e271af0e2a20bd04150314dd36aeff6c952af272
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e277401a113b2c2c1beceb6218c76a0af4d079b3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e277401a113b2c2c1beceb6218c76a0af4d079b3
index 995e4a44b..995e4a44b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e277401a113b2c2c1beceb6218c76a0af4d079b3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e277401a113b2c2c1beceb6218c76a0af4d079b3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e27b05394d38585139dffafd2777cc9d4bda9f23 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e27b05394d38585139dffafd2777cc9d4bda9f23
index a90158bb0..a90158bb0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e27b05394d38585139dffafd2777cc9d4bda9f23
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e27b05394d38585139dffafd2777cc9d4bda9f23
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e2ae2a33babf57273bac0be1afc720b960c01c83 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2ae2a33babf57273bac0be1afc720b960c01c83
index ef3f7feb4..ef3f7feb4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e2ae2a33babf57273bac0be1afc720b960c01c83
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2ae2a33babf57273bac0be1afc720b960c01c83
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e2b2b942d20ae47acf7da394c209083b5474b5e6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2b2b942d20ae47acf7da394c209083b5474b5e6
index fdc96605a..fdc96605a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e2b2b942d20ae47acf7da394c209083b5474b5e6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2b2b942d20ae47acf7da394c209083b5474b5e6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e2b58878bc421946cef2f1cba616aafebf8bd14d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2b58878bc421946cef2f1cba616aafebf8bd14d
index b23c8d5c2..b23c8d5c2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e2b58878bc421946cef2f1cba616aafebf8bd14d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2b58878bc421946cef2f1cba616aafebf8bd14d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e2e45dfb2a189ade69fe838afab69c65972377c0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2e45dfb2a189ade69fe838afab69c65972377c0
index ef40f16b3..ef40f16b3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e2e45dfb2a189ade69fe838afab69c65972377c0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e2e45dfb2a189ade69fe838afab69c65972377c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e311ad7eddbbc3509f37ad57c01c774eff0dca62 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e311ad7eddbbc3509f37ad57c01c774eff0dca62
index bee809057..bee809057 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e311ad7eddbbc3509f37ad57c01c774eff0dca62
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e311ad7eddbbc3509f37ad57c01c774eff0dca62
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e3dcb423f0bb7cc5062c92d6793c97df942fb573 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e3dcb423f0bb7cc5062c92d6793c97df942fb573
index e7919bf24..e7919bf24 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e3dcb423f0bb7cc5062c92d6793c97df942fb573
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e3dcb423f0bb7cc5062c92d6793c97df942fb573
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e40685c34318eae5d4b37d7232c8f91ef255980f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e40685c34318eae5d4b37d7232c8f91ef255980f
index fb180b8cf..fb180b8cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e40685c34318eae5d4b37d7232c8f91ef255980f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e40685c34318eae5d4b37d7232c8f91ef255980f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e422d138648bc74fef1ffca58a8c9cdcd8efcdb8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e422d138648bc74fef1ffca58a8c9cdcd8efcdb8
index 30a1156aa..30a1156aa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e422d138648bc74fef1ffca58a8c9cdcd8efcdb8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e422d138648bc74fef1ffca58a8c9cdcd8efcdb8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e428830cae8af1de5fb0e0774463fa9210136861 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e428830cae8af1de5fb0e0774463fa9210136861
index 6946f57b9..6946f57b9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e428830cae8af1de5fb0e0774463fa9210136861
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e428830cae8af1de5fb0e0774463fa9210136861
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e46680ba81d7674b94bb79bea4facb5a48f25e12 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e46680ba81d7674b94bb79bea4facb5a48f25e12
index 7797d8d0a..7797d8d0a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e46680ba81d7674b94bb79bea4facb5a48f25e12
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e46680ba81d7674b94bb79bea4facb5a48f25e12
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e46c26f169bb43e3119f78a38f4a981809a02f0e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e46c26f169bb43e3119f78a38f4a981809a02f0e
index 9b5af3552..9b5af3552 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e46c26f169bb43e3119f78a38f4a981809a02f0e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e46c26f169bb43e3119f78a38f4a981809a02f0e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e47cc081c9c43aedc57a54c68a39eac2f5787d53 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e47cc081c9c43aedc57a54c68a39eac2f5787d53
index d4e5bc67e..d4e5bc67e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e47cc081c9c43aedc57a54c68a39eac2f5787d53
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e47cc081c9c43aedc57a54c68a39eac2f5787d53
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e5157a7fb2a8f471c9d13cd5bf404327c3544ba2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5157a7fb2a8f471c9d13cd5bf404327c3544ba2
index 9e7c75939..9e7c75939 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e5157a7fb2a8f471c9d13cd5bf404327c3544ba2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5157a7fb2a8f471c9d13cd5bf404327c3544ba2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e522fa40cc0aa1dab7c48f8a7f454cb07ac8a859 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e522fa40cc0aa1dab7c48f8a7f454cb07ac8a859
index 0b006e879..0b006e879 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e522fa40cc0aa1dab7c48f8a7f454cb07ac8a859
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e522fa40cc0aa1dab7c48f8a7f454cb07ac8a859
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e56928ea5e5867cbdbfeb8a19909d95a623977ad b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e56928ea5e5867cbdbfeb8a19909d95a623977ad
index d0ad59137..d0ad59137 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e56928ea5e5867cbdbfeb8a19909d95a623977ad
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e56928ea5e5867cbdbfeb8a19909d95a623977ad
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e56f29f75520470074d11f0b6038e7d4fdc17ef1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e56f29f75520470074d11f0b6038e7d4fdc17ef1
index 28ce5b0fa..28ce5b0fa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e56f29f75520470074d11f0b6038e7d4fdc17ef1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e56f29f75520470074d11f0b6038e7d4fdc17ef1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e58fb13306314884fe2989d724dbc23f4e4d5e79 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e58fb13306314884fe2989d724dbc23f4e4d5e79
index d2a0cd279..d2a0cd279 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e58fb13306314884fe2989d724dbc23f4e4d5e79
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e58fb13306314884fe2989d724dbc23f4e4d5e79
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e5a5d659a71c7a30e3a673a6f8f8e96c46c65227 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5a5d659a71c7a30e3a673a6f8f8e96c46c65227
index e04dfdef5..e04dfdef5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e5a5d659a71c7a30e3a673a6f8f8e96c46c65227
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5a5d659a71c7a30e3a673a6f8f8e96c46c65227
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e5b45f63c5dc9217173021a273afafc37fdbda6d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5b45f63c5dc9217173021a273afafc37fdbda6d
index 5e6e65c06..5e6e65c06 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e5b45f63c5dc9217173021a273afafc37fdbda6d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5b45f63c5dc9217173021a273afafc37fdbda6d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e5dddad26a759a36bd3c0d77edee924f64f6abd7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5dddad26a759a36bd3c0d77edee924f64f6abd7
index f15db9fee..f15db9fee 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e5dddad26a759a36bd3c0d77edee924f64f6abd7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e5dddad26a759a36bd3c0d77edee924f64f6abd7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e66dcae8eabae2e43465c21221676b3690c26c3e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e66dcae8eabae2e43465c21221676b3690c26c3e
index c7945ed30..c7945ed30 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e66dcae8eabae2e43465c21221676b3690c26c3e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e66dcae8eabae2e43465c21221676b3690c26c3e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e67a3c3a0be4ba12ef5126ee4c3c41459c93e5a1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e67a3c3a0be4ba12ef5126ee4c3c41459c93e5a1
index 11e402c6b..11e402c6b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e67a3c3a0be4ba12ef5126ee4c3c41459c93e5a1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e67a3c3a0be4ba12ef5126ee4c3c41459c93e5a1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e67d46dd9253eab97d6783ef4d314f14b6cc5ab7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e67d46dd9253eab97d6783ef4d314f14b6cc5ab7
index 3352e16e1..3352e16e1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e67d46dd9253eab97d6783ef4d314f14b6cc5ab7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e67d46dd9253eab97d6783ef4d314f14b6cc5ab7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e6b92a5f2801da4ca84aae6ce362769f73436ae1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e6b92a5f2801da4ca84aae6ce362769f73436ae1
index 050c23c47..050c23c47 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e6b92a5f2801da4ca84aae6ce362769f73436ae1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e6b92a5f2801da4ca84aae6ce362769f73436ae1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e6d663c004efc8a59c8352501d4b2b6636169893 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e6d663c004efc8a59c8352501d4b2b6636169893
index 8d69db5e6..8d69db5e6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e6d663c004efc8a59c8352501d4b2b6636169893
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e6d663c004efc8a59c8352501d4b2b6636169893
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e6e47be53ab16738c5537f88c3a92b32e08f3cf2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e6e47be53ab16738c5537f88c3a92b32e08f3cf2
index 3a0d7c8f5..3a0d7c8f5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e6e47be53ab16738c5537f88c3a92b32e08f3cf2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e6e47be53ab16738c5537f88c3a92b32e08f3cf2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e7dffb3ca46d4d1ede59f8c64dcfde53ef97ff53 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e7dffb3ca46d4d1ede59f8c64dcfde53ef97ff53
index b61f815cb..b61f815cb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e7dffb3ca46d4d1ede59f8c64dcfde53ef97ff53
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e7dffb3ca46d4d1ede59f8c64dcfde53ef97ff53
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e84d7d3a5606ac32bc35c2ca069cc37150cd2c3f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e84d7d3a5606ac32bc35c2ca069cc37150cd2c3f
index ff545c475..ff545c475 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e84d7d3a5606ac32bc35c2ca069cc37150cd2c3f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e84d7d3a5606ac32bc35c2ca069cc37150cd2c3f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e870aafcbd925d853f6626e636d81e42169c988c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e870aafcbd925d853f6626e636d81e42169c988c
index 408dc17d8..408dc17d8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e870aafcbd925d853f6626e636d81e42169c988c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e870aafcbd925d853f6626e636d81e42169c988c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e8b1f92615aedafb8965cf54d6f44ff8e0b3c0d9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e8b1f92615aedafb8965cf54d6f44ff8e0b3c0d9
index 0c0578393..0c0578393 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e8b1f92615aedafb8965cf54d6f44ff8e0b3c0d9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e8b1f92615aedafb8965cf54d6f44ff8e0b3c0d9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e8b2a8b192f94c52c351fc9e9f95a71e304c0351 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e8b2a8b192f94c52c351fc9e9f95a71e304c0351
index 7cfd0aa68..7cfd0aa68 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e8b2a8b192f94c52c351fc9e9f95a71e304c0351
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e8b2a8b192f94c52c351fc9e9f95a71e304c0351
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e8ce6a56e5c0a3309d21e0e6c040ad333e0db216 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e8ce6a56e5c0a3309d21e0e6c040ad333e0db216
index c9438ecbb..c9438ecbb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e8ce6a56e5c0a3309d21e0e6c040ad333e0db216
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e8ce6a56e5c0a3309d21e0e6c040ad333e0db216
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e9624607acf66dc0f2b8258eb0568a593b93c840 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e9624607acf66dc0f2b8258eb0568a593b93c840
index 7a7fde660..7a7fde660 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e9624607acf66dc0f2b8258eb0568a593b93c840
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e9624607acf66dc0f2b8258eb0568a593b93c840
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e9be09a2e89074cbe72fa234d22d47e9a8bdf4c0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e9be09a2e89074cbe72fa234d22d47e9a8bdf4c0
index a0eeeb8e1..a0eeeb8e1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e9be09a2e89074cbe72fa234d22d47e9a8bdf4c0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e9be09a2e89074cbe72fa234d22d47e9a8bdf4c0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/e9d66de86fb0a33c4e952ab98ce15156f8c2a851 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e9d66de86fb0a33c4e952ab98ce15156f8c2a851
index a278185b6..a278185b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/e9d66de86fb0a33c4e952ab98ce15156f8c2a851
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/e9d66de86fb0a33c4e952ab98ce15156f8c2a851
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ea1a86fe4e667aeac7245c1ce3ee62c587b72a53 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea1a86fe4e667aeac7245c1ce3ee62c587b72a53
index 7240333cc..7240333cc 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ea1a86fe4e667aeac7245c1ce3ee62c587b72a53
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea1a86fe4e667aeac7245c1ce3ee62c587b72a53
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ea64e539a6c30f03d3d90e81b143e8491c8f32da b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea64e539a6c30f03d3d90e81b143e8491c8f32da
index 4b919f33a..4b919f33a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ea64e539a6c30f03d3d90e81b143e8491c8f32da
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea64e539a6c30f03d3d90e81b143e8491c8f32da
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ea730db0db5ed36ad1554ce89fb0fee527fbd73c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea730db0db5ed36ad1554ce89fb0fee527fbd73c
index bf0db597c..bf0db597c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ea730db0db5ed36ad1554ce89fb0fee527fbd73c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea730db0db5ed36ad1554ce89fb0fee527fbd73c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ea7a7cea39fcb72fcfca86836f74cf1c7525417b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea7a7cea39fcb72fcfca86836f74cf1c7525417b
index 093087d20..093087d20 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ea7a7cea39fcb72fcfca86836f74cf1c7525417b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea7a7cea39fcb72fcfca86836f74cf1c7525417b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ea92e03d389fdf50b96383cb42bed86311846190 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea92e03d389fdf50b96383cb42bed86311846190
index 7dfb258e7..7dfb258e7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ea92e03d389fdf50b96383cb42bed86311846190
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ea92e03d389fdf50b96383cb42bed86311846190
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/eb6e06cae7775897f794c1f535bcf25f7ab16782 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eb6e06cae7775897f794c1f535bcf25f7ab16782
index 95fc99dd1..95fc99dd1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/eb6e06cae7775897f794c1f535bcf25f7ab16782
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eb6e06cae7775897f794c1f535bcf25f7ab16782
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/eb7b59293c15828be3f440d43fa6a65a5819be41 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eb7b59293c15828be3f440d43fa6a65a5819be41
index 5ecf34250..5ecf34250 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/eb7b59293c15828be3f440d43fa6a65a5819be41
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eb7b59293c15828be3f440d43fa6a65a5819be41
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ebc0616dc3fe3f620bcb5bb3135e4ef4f7867be6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ebc0616dc3fe3f620bcb5bb3135e4ef4f7867be6
index 159bc9246..159bc9246 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ebc0616dc3fe3f620bcb5bb3135e4ef4f7867be6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ebc0616dc3fe3f620bcb5bb3135e4ef4f7867be6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ebc7f852d383da12a049689cb7d59d108cb1a9e3 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ebc7f852d383da12a049689cb7d59d108cb1a9e3
index 7aa2761e6..7aa2761e6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ebc7f852d383da12a049689cb7d59d108cb1a9e3
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ebc7f852d383da12a049689cb7d59d108cb1a9e3
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ebcd04e3c10e386d1c87fcdeac67564b1ee93211 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ebcd04e3c10e386d1c87fcdeac67564b1ee93211
index f84d5029b..f84d5029b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ebcd04e3c10e386d1c87fcdeac67564b1ee93211
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ebcd04e3c10e386d1c87fcdeac67564b1ee93211
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ec12e94bdb74ef1a688b178389f25f52cba58264 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec12e94bdb74ef1a688b178389f25f52cba58264
index 9d9a1291e..9d9a1291e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ec12e94bdb74ef1a688b178389f25f52cba58264
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec12e94bdb74ef1a688b178389f25f52cba58264
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ec36edf10ec0b70e85dfef1c9e27bbdfd85193e1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec36edf10ec0b70e85dfef1c9e27bbdfd85193e1
index f5f4a56a5..f5f4a56a5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ec36edf10ec0b70e85dfef1c9e27bbdfd85193e1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec36edf10ec0b70e85dfef1c9e27bbdfd85193e1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ec539c0106db3167d2695d2567786e0e46bed5c7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec539c0106db3167d2695d2567786e0e46bed5c7
index f23f3d4f4..f23f3d4f4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ec539c0106db3167d2695d2567786e0e46bed5c7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec539c0106db3167d2695d2567786e0e46bed5c7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ec6fd7ddf84d78e3b4c4e735307bf6f6f2ecf673 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec6fd7ddf84d78e3b4c4e735307bf6f6f2ecf673
index 838a36eea..838a36eea 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ec6fd7ddf84d78e3b4c4e735307bf6f6f2ecf673
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec6fd7ddf84d78e3b4c4e735307bf6f6f2ecf673
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ec8562865ee9372d3713a18503621a65c098e3d0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec8562865ee9372d3713a18503621a65c098e3d0
index 1dc643d7e..1dc643d7e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ec8562865ee9372d3713a18503621a65c098e3d0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ec8562865ee9372d3713a18503621a65c098e3d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ed47f6b1c0d859dcf4f0ce9ff01589b93e9842d0 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ed47f6b1c0d859dcf4f0ce9ff01589b93e9842d0
index 0cb63d1b5..0cb63d1b5 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ed47f6b1c0d859dcf4f0ce9ff01589b93e9842d0
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ed47f6b1c0d859dcf4f0ce9ff01589b93e9842d0
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/edbddc03e1405865418adbf4b777861fa31dad3e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/edbddc03e1405865418adbf4b777861fa31dad3e
index b08b52fd4..b08b52fd4 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/edbddc03e1405865418adbf4b777861fa31dad3e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/edbddc03e1405865418adbf4b777861fa31dad3e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ee05e6b41849937d8bdcb0f5f5ae1d1e8b20e9e8 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee05e6b41849937d8bdcb0f5f5ae1d1e8b20e9e8
index dae9d8b74..dae9d8b74 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ee05e6b41849937d8bdcb0f5f5ae1d1e8b20e9e8
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee05e6b41849937d8bdcb0f5f5ae1d1e8b20e9e8
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ee21e91aa701628d547744d072241680050f64bb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee21e91aa701628d547744d072241680050f64bb
index ad8ab4103..ad8ab4103 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ee21e91aa701628d547744d072241680050f64bb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee21e91aa701628d547744d072241680050f64bb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ee5035855c04ad1037a3d3c4607062a2fdba42d7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee5035855c04ad1037a3d3c4607062a2fdba42d7
index 3e3463ade..3e3463ade 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ee5035855c04ad1037a3d3c4607062a2fdba42d7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee5035855c04ad1037a3d3c4607062a2fdba42d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ee9205608e7998483a9037b9a12235f877e06e17 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee9205608e7998483a9037b9a12235f877e06e17
index 2947f2ea3..2947f2ea3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ee9205608e7998483a9037b9a12235f877e06e17
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ee9205608e7998483a9037b9a12235f877e06e17
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/eeb54b646447c42f61c83706d944e4101d59c50c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eeb54b646447c42f61c83706d944e4101d59c50c
index 2a3632a17..2a3632a17 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/eeb54b646447c42f61c83706d944e4101d59c50c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eeb54b646447c42f61c83706d944e4101d59c50c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ef07572f1e2f5076ad6628f519216ee7f205d5c2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef07572f1e2f5076ad6628f519216ee7f205d5c2
index 54cb5f3a8..54cb5f3a8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ef07572f1e2f5076ad6628f519216ee7f205d5c2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef07572f1e2f5076ad6628f519216ee7f205d5c2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ef217e8e98059e1940959aca630ef3f3415604c1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef217e8e98059e1940959aca630ef3f3415604c1
index c746c1641..c746c1641 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ef217e8e98059e1940959aca630ef3f3415604c1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef217e8e98059e1940959aca630ef3f3415604c1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ef95af389f32382d51c10f48e8e7db0237ceb0e1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef95af389f32382d51c10f48e8e7db0237ceb0e1
index 487d79093..487d79093 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ef95af389f32382d51c10f48e8e7db0237ceb0e1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef95af389f32382d51c10f48e8e7db0237ceb0e1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ef99fe4040198238ad54de3f8c873e7ae509ecdc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef99fe4040198238ad54de3f8c873e7ae509ecdc
index f6b6a41cf..f6b6a41cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ef99fe4040198238ad54de3f8c873e7ae509ecdc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ef99fe4040198238ad54de3f8c873e7ae509ecdc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/efb7d95fe73239ee50397292208fb4a433bd4101 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/efb7d95fe73239ee50397292208fb4a433bd4101
index 235d1b7a0..235d1b7a0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/efb7d95fe73239ee50397292208fb4a433bd4101
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/efb7d95fe73239ee50397292208fb4a433bd4101
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/eff00d67d60d4a3411a4f686c022d3c7bb18f9ea b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eff00d67d60d4a3411a4f686c022d3c7bb18f9ea
index ec722eea1..ec722eea1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/eff00d67d60d4a3411a4f686c022d3c7bb18f9ea
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eff00d67d60d4a3411a4f686c022d3c7bb18f9ea
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/eff264db8fb64790f739c4beaa5b3f88d3bbb0e5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eff264db8fb64790f739c4beaa5b3f88d3bbb0e5
index f98fc9729..f98fc9729 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/eff264db8fb64790f739c4beaa5b3f88d3bbb0e5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/eff264db8fb64790f739c4beaa5b3f88d3bbb0e5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f00d5a9059744779f4df509e44a50b6e2424967f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f00d5a9059744779f4df509e44a50b6e2424967f
index a71700239..a71700239 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f00d5a9059744779f4df509e44a50b6e2424967f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f00d5a9059744779f4df509e44a50b6e2424967f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f052ab0f833f01a44899dc5f2165fff88c11f15f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f052ab0f833f01a44899dc5f2165fff88c11f15f
index c6afca38c..c6afca38c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f052ab0f833f01a44899dc5f2165fff88c11f15f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f052ab0f833f01a44899dc5f2165fff88c11f15f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f05926ad54fabcb7fad300668db1ec06a5c948b9 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f05926ad54fabcb7fad300668db1ec06a5c948b9
index b949d91b6..b949d91b6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f05926ad54fabcb7fad300668db1ec06a5c948b9
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f05926ad54fabcb7fad300668db1ec06a5c948b9
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f0802cad41832428d226dd0888584fe91b715dfb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f0802cad41832428d226dd0888584fe91b715dfb
index 03d724039..03d724039 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f0802cad41832428d226dd0888584fe91b715dfb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f0802cad41832428d226dd0888584fe91b715dfb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f08ab6fc4cdeb5b3f00c7f146101b198cd107b75 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f08ab6fc4cdeb5b3f00c7f146101b198cd107b75
index f1eb50fe3..f1eb50fe3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f08ab6fc4cdeb5b3f00c7f146101b198cd107b75
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f08ab6fc4cdeb5b3f00c7f146101b198cd107b75
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f11e9b4f524e568dd21570f8f50f8800383a70ed b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f11e9b4f524e568dd21570f8f50f8800383a70ed
index 20a5a8fcf..20a5a8fcf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f11e9b4f524e568dd21570f8f50f8800383a70ed
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f11e9b4f524e568dd21570f8f50f8800383a70ed
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f121716159dac2edd492cdc82576aae36605f318 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f121716159dac2edd492cdc82576aae36605f318
index c507c80d1..c507c80d1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f121716159dac2edd492cdc82576aae36605f318
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f121716159dac2edd492cdc82576aae36605f318
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f1288810ca8f34da4d25976b04796b548c84b20a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1288810ca8f34da4d25976b04796b548c84b20a
index d8264dc4b..d8264dc4b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f1288810ca8f34da4d25976b04796b548c84b20a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1288810ca8f34da4d25976b04796b548c84b20a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f142c5f05d5941915e9bce2ba6e88353619df437 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f142c5f05d5941915e9bce2ba6e88353619df437
index a0b16d6ac..a0b16d6ac 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f142c5f05d5941915e9bce2ba6e88353619df437
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f142c5f05d5941915e9bce2ba6e88353619df437
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f1575fb12995a11a2f43305e8c566e1b675ff670 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1575fb12995a11a2f43305e8c566e1b675ff670
index 6aef4b897..6aef4b897 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f1575fb12995a11a2f43305e8c566e1b675ff670
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1575fb12995a11a2f43305e8c566e1b675ff670
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f1658abe8fc3ad4fd15fd15057895bcdd77d9243 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1658abe8fc3ad4fd15fd15057895bcdd77d9243
index dc1f566c8..dc1f566c8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f1658abe8fc3ad4fd15fd15057895bcdd77d9243
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1658abe8fc3ad4fd15fd15057895bcdd77d9243
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f16913c2a4776959552988bb2bd3b95844882c80 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f16913c2a4776959552988bb2bd3b95844882c80
index 103236b8c..103236b8c 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f16913c2a4776959552988bb2bd3b95844882c80
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f16913c2a4776959552988bb2bd3b95844882c80
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f17ca3d7ed47102feebadbb526dbfd4f547b7ee4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f17ca3d7ed47102feebadbb526dbfd4f547b7ee4
index 8687c2ef2..8687c2ef2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f17ca3d7ed47102feebadbb526dbfd4f547b7ee4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f17ca3d7ed47102feebadbb526dbfd4f547b7ee4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f1a20437cbf1e28b959193b66b867262eda70972 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1a20437cbf1e28b959193b66b867262eda70972
index 88ffdbeeb..88ffdbeeb 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f1a20437cbf1e28b959193b66b867262eda70972
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1a20437cbf1e28b959193b66b867262eda70972
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f1bb5e6dab200ad35f5dc93bc1a2bdf3a4b89d47 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1bb5e6dab200ad35f5dc93bc1a2bdf3a4b89d47
index fdcceb205..fdcceb205 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f1bb5e6dab200ad35f5dc93bc1a2bdf3a4b89d47
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f1bb5e6dab200ad35f5dc93bc1a2bdf3a4b89d47
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f26eabd2261e107a04fcb42f8c2fc31695d6642c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f26eabd2261e107a04fcb42f8c2fc31695d6642c
index 0c47ac86d..0c47ac86d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f26eabd2261e107a04fcb42f8c2fc31695d6642c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f26eabd2261e107a04fcb42f8c2fc31695d6642c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f2a02dccce79314842b076516a1ed2cb4369911e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f2a02dccce79314842b076516a1ed2cb4369911e
index 9e352f529..9e352f529 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f2a02dccce79314842b076516a1ed2cb4369911e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f2a02dccce79314842b076516a1ed2cb4369911e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f2cede58d36d74692e09543ff506e9de109c4f1a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f2cede58d36d74692e09543ff506e9de109c4f1a
index f8708952b..f8708952b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f2cede58d36d74692e09543ff506e9de109c4f1a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f2cede58d36d74692e09543ff506e9de109c4f1a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f2e19cbe749f98cd79dd7f826a2b27d2ad0bfa77 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f2e19cbe749f98cd79dd7f826a2b27d2ad0bfa77
index 3e95711a7..3e95711a7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f2e19cbe749f98cd79dd7f826a2b27d2ad0bfa77
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f2e19cbe749f98cd79dd7f826a2b27d2ad0bfa77
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f302f9b69771b7352e675b8eb77239956f42443b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f302f9b69771b7352e675b8eb77239956f42443b
index 31fad4e35..31fad4e35 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f302f9b69771b7352e675b8eb77239956f42443b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f302f9b69771b7352e675b8eb77239956f42443b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f3a0a4d9a776a09eac39d2fcd1eb5982ee08e3d7 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f3a0a4d9a776a09eac39d2fcd1eb5982ee08e3d7
index 98b1f7c68..98b1f7c68 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f3a0a4d9a776a09eac39d2fcd1eb5982ee08e3d7
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f3a0a4d9a776a09eac39d2fcd1eb5982ee08e3d7
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f3b409bf9adc3d3249b06903fa3d2ddfe44df173 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f3b409bf9adc3d3249b06903fa3d2ddfe44df173
index f54d71527..f54d71527 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f3b409bf9adc3d3249b06903fa3d2ddfe44df173
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f3b409bf9adc3d3249b06903fa3d2ddfe44df173
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f41765632394af4b01327d13c20f525581a6c020 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f41765632394af4b01327d13c20f525581a6c020
index dc3b571db..dc3b571db 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f41765632394af4b01327d13c20f525581a6c020
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f41765632394af4b01327d13c20f525581a6c020
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f427feaf6e9c2bb358ae0fef8e4f71290c276ebb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f427feaf6e9c2bb358ae0fef8e4f71290c276ebb
index bd46d1b29..bd46d1b29 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f427feaf6e9c2bb358ae0fef8e4f71290c276ebb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f427feaf6e9c2bb358ae0fef8e4f71290c276ebb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f42e3d5513624ec537e58050dbad20d55cc4386f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f42e3d5513624ec537e58050dbad20d55cc4386f
index 017887c3a..017887c3a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f42e3d5513624ec537e58050dbad20d55cc4386f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f42e3d5513624ec537e58050dbad20d55cc4386f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f5036ffce007aa483f3bb374d1da596558fc86c6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f5036ffce007aa483f3bb374d1da596558fc86c6
index fb1482310..fb1482310 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f5036ffce007aa483f3bb374d1da596558fc86c6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f5036ffce007aa483f3bb374d1da596558fc86c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f50fa559cb9b484f84a6173f4dd8af295c870a14 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f50fa559cb9b484f84a6173f4dd8af295c870a14
index 734a6b5cf..734a6b5cf 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f50fa559cb9b484f84a6173f4dd8af295c870a14
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f50fa559cb9b484f84a6173f4dd8af295c870a14
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f5df472f1ceca9738bd2672b48ab3acdbe68757d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f5df472f1ceca9738bd2672b48ab3acdbe68757d
index b2cfff8d9..b2cfff8d9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f5df472f1ceca9738bd2672b48ab3acdbe68757d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f5df472f1ceca9738bd2672b48ab3acdbe68757d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f5e3c3eb71bbda5342270f536287670baa92e8e6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f5e3c3eb71bbda5342270f536287670baa92e8e6
index faf130b41..faf130b41 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f5e3c3eb71bbda5342270f536287670baa92e8e6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f5e3c3eb71bbda5342270f536287670baa92e8e6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f607bc625cbe6345ff5b3017b817e5b7254f7b54 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f607bc625cbe6345ff5b3017b817e5b7254f7b54
index fbcd63071..fbcd63071 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f607bc625cbe6345ff5b3017b817e5b7254f7b54
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f607bc625cbe6345ff5b3017b817e5b7254f7b54
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f617706e6ecd0ef5e1f6b182bf4076069ec8e58b b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f617706e6ecd0ef5e1f6b182bf4076069ec8e58b
index a09cbbc2d..a09cbbc2d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f617706e6ecd0ef5e1f6b182bf4076069ec8e58b
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f617706e6ecd0ef5e1f6b182bf4076069ec8e58b
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f680f4df57c8d5793134169c68a0e46018901229 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f680f4df57c8d5793134169c68a0e46018901229
index 7d30f3be7..7d30f3be7 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f680f4df57c8d5793134169c68a0e46018901229
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f680f4df57c8d5793134169c68a0e46018901229
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f6925601533acfa74e43f12c1be6357f4bdb1b4c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f6925601533acfa74e43f12c1be6357f4bdb1b4c
index 2ac54b0d3..2ac54b0d3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f6925601533acfa74e43f12c1be6357f4bdb1b4c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f6925601533acfa74e43f12c1be6357f4bdb1b4c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f6d5dab82e1a011725bdcf35d190c84a3d2c783e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f6d5dab82e1a011725bdcf35d190c84a3d2c783e
index 08082c976..08082c976 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f6d5dab82e1a011725bdcf35d190c84a3d2c783e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f6d5dab82e1a011725bdcf35d190c84a3d2c783e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f6f74e005562421f7fa3e8f7816cb938ce7773c6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f6f74e005562421f7fa3e8f7816cb938ce7773c6
index 05facd538..05facd538 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f6f74e005562421f7fa3e8f7816cb938ce7773c6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f6f74e005562421f7fa3e8f7816cb938ce7773c6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f70d4b7be2b974aedf4cb8b64209efd9ed5bd6d1 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f70d4b7be2b974aedf4cb8b64209efd9ed5bd6d1
index 0e8f68d48..0e8f68d48 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f70d4b7be2b974aedf4cb8b64209efd9ed5bd6d1
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f70d4b7be2b974aedf4cb8b64209efd9ed5bd6d1
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f70f86ef1044f014ac631d341340fd7992358bc6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f70f86ef1044f014ac631d341340fd7992358bc6
index c76afba48..c76afba48 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f70f86ef1044f014ac631d341340fd7992358bc6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f70f86ef1044f014ac631d341340fd7992358bc6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f71945ea39c96fa5d69b83fb3f43032bd7dd7c3f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f71945ea39c96fa5d69b83fb3f43032bd7dd7c3f
index 534048f97..534048f97 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f71945ea39c96fa5d69b83fb3f43032bd7dd7c3f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f71945ea39c96fa5d69b83fb3f43032bd7dd7c3f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f71fa9a303065a658d0326b15ec109d39091852d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f71fa9a303065a658d0326b15ec109d39091852d
index 6aaf50e7a..6aaf50e7a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f71fa9a303065a658d0326b15ec109d39091852d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f71fa9a303065a658d0326b15ec109d39091852d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f74de4cdbdaff332982d8f3fcec4cece1eb7515a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f74de4cdbdaff332982d8f3fcec4cece1eb7515a
index 572de0a34..572de0a34 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f74de4cdbdaff332982d8f3fcec4cece1eb7515a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f74de4cdbdaff332982d8f3fcec4cece1eb7515a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f7b25c94da1b82d309e67583942a52b42eff9357 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f7b25c94da1b82d309e67583942a52b42eff9357
index 450ff4050..450ff4050 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f7b25c94da1b82d309e67583942a52b42eff9357
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f7b25c94da1b82d309e67583942a52b42eff9357
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f7bd3f0eaa5669d8cf812a51f8802d82ec4bebb6 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f7bd3f0eaa5669d8cf812a51f8802d82ec4bebb6
index f9ae26c93..f9ae26c93 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f7bd3f0eaa5669d8cf812a51f8802d82ec4bebb6
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f7bd3f0eaa5669d8cf812a51f8802d82ec4bebb6
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f7e25833e8a85a63209bf6af8aafad932b09d029 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f7e25833e8a85a63209bf6af8aafad932b09d029
index 828524967..828524967 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f7e25833e8a85a63209bf6af8aafad932b09d029
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f7e25833e8a85a63209bf6af8aafad932b09d029
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f808f794c98e027287bc8e344a0ede37af6e9740 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f808f794c98e027287bc8e344a0ede37af6e9740
index cc3092190..cc3092190 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f808f794c98e027287bc8e344a0ede37af6e9740
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f808f794c98e027287bc8e344a0ede37af6e9740
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f8494e10ad3c22af3ff1dd984a345f5e570f8fa2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f8494e10ad3c22af3ff1dd984a345f5e570f8fa2
index 7ca37dbdd..7ca37dbdd 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f8494e10ad3c22af3ff1dd984a345f5e570f8fa2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f8494e10ad3c22af3ff1dd984a345f5e570f8fa2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f94f98bf7d103e3b53fb9b353db3f5c5e23ffd20 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f94f98bf7d103e3b53fb9b353db3f5c5e23ffd20
index 355ff5c28..355ff5c28 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f94f98bf7d103e3b53fb9b353db3f5c5e23ffd20
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f94f98bf7d103e3b53fb9b353db3f5c5e23ffd20
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f9790103eac63288f54845663d00fa6d12885a37 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f9790103eac63288f54845663d00fa6d12885a37
index 063ef4fa3..063ef4fa3 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f9790103eac63288f54845663d00fa6d12885a37
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f9790103eac63288f54845663d00fa6d12885a37
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/f9da23b266d2fe54c13e4c223a595667ce9c0f40 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f9da23b266d2fe54c13e4c223a595667ce9c0f40
index e44b76970..e44b76970 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/f9da23b266d2fe54c13e4c223a595667ce9c0f40
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/f9da23b266d2fe54c13e4c223a595667ce9c0f40
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fa02fa10e5a0350d196c3ed2ae56fe7fd6f3a3ab b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa02fa10e5a0350d196c3ed2ae56fe7fd6f3a3ab
index c915e9142..c915e9142 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fa02fa10e5a0350d196c3ed2ae56fe7fd6f3a3ab
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa02fa10e5a0350d196c3ed2ae56fe7fd6f3a3ab
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fa06370a6812a349abca76ec070e98eff1659c6f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa06370a6812a349abca76ec070e98eff1659c6f
index 755b52945..755b52945 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fa06370a6812a349abca76ec070e98eff1659c6f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa06370a6812a349abca76ec070e98eff1659c6f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fa101fc5492ae7052cddadea91e82b556744349d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa101fc5492ae7052cddadea91e82b556744349d
index 35802e1a1..35802e1a1 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fa101fc5492ae7052cddadea91e82b556744349d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa101fc5492ae7052cddadea91e82b556744349d
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fa3f448ef402dd8b88b845fa08995f958dfc5dca b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa3f448ef402dd8b88b845fa08995f958dfc5dca
index 107a4bbe0..107a4bbe0 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fa3f448ef402dd8b88b845fa08995f958dfc5dca
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fa3f448ef402dd8b88b845fa08995f958dfc5dca
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/faae6fddc1adb7050c1718dc41ab65d23c2e5a4c b/src/web/server/h2o/libh2o/fuzz/http2-corpus/faae6fddc1adb7050c1718dc41ab65d23c2e5a4c
index c2853b8ed..c2853b8ed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/faae6fddc1adb7050c1718dc41ab65d23c2e5a4c
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/faae6fddc1adb7050c1718dc41ab65d23c2e5a4c
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fab76924b9bed9a65af871fcaf7b0d47c38af3b2 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fab76924b9bed9a65af871fcaf7b0d47c38af3b2
index da02ec7d8..da02ec7d8 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fab76924b9bed9a65af871fcaf7b0d47c38af3b2
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fab76924b9bed9a65af871fcaf7b0d47c38af3b2
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/faf086e2ffa88b9b0eb3a5a59b1494e448890691 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/faf086e2ffa88b9b0eb3a5a59b1494e448890691
index a26457d6e..a26457d6e 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/faf086e2ffa88b9b0eb3a5a59b1494e448890691
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/faf086e2ffa88b9b0eb3a5a59b1494e448890691
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/faf66928bcd237700b556cf35ed5112e84959e28 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/faf66928bcd237700b556cf35ed5112e84959e28
index 549435a74..549435a74 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/faf66928bcd237700b556cf35ed5112e84959e28
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/faf66928bcd237700b556cf35ed5112e84959e28
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fb2b507b591e3ecdda6e77c21ccd93e35e24cc44 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fb2b507b591e3ecdda6e77c21ccd93e35e24cc44
index f1b8efd94..f1b8efd94 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fb2b507b591e3ecdda6e77c21ccd93e35e24cc44
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fb2b507b591e3ecdda6e77c21ccd93e35e24cc44
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fb5bd4b5867d583c8eb5e7ef38ef3e19141cd9b4 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fb5bd4b5867d583c8eb5e7ef38ef3e19141cd9b4
index 4c2161df6..4c2161df6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fb5bd4b5867d583c8eb5e7ef38ef3e19141cd9b4
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fb5bd4b5867d583c8eb5e7ef38ef3e19141cd9b4
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fb7d9729a8fa9a8693b2fd1dbc8a6ea35a9ccc40 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fb7d9729a8fa9a8693b2fd1dbc8a6ea35a9ccc40
index 2e575bea2..2e575bea2 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fb7d9729a8fa9a8693b2fd1dbc8a6ea35a9ccc40
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fb7d9729a8fa9a8693b2fd1dbc8a6ea35a9ccc40
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fbbc393035a18d90d9fc68cd570b3f80d791064f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fbbc393035a18d90d9fc68cd570b3f80d791064f
index 0fe011b3b..0fe011b3b 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fbbc393035a18d90d9fc68cd570b3f80d791064f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fbbc393035a18d90d9fc68cd570b3f80d791064f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fc6714a5686fc3dbd5fc48e52a60e987ec088f70 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fc6714a5686fc3dbd5fc48e52a60e987ec088f70
index 53a71e1df..53a71e1df 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fc6714a5686fc3dbd5fc48e52a60e987ec088f70
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fc6714a5686fc3dbd5fc48e52a60e987ec088f70
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fca53e4250c8f73ae305e99b1bbe2bbca3533fd5 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fca53e4250c8f73ae305e99b1bbe2bbca3533fd5
index 58f9c159d..58f9c159d 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fca53e4250c8f73ae305e99b1bbe2bbca3533fd5
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fca53e4250c8f73ae305e99b1bbe2bbca3533fd5
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fcffc8e33cde00510dbbace0f90d398394865241 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fcffc8e33cde00510dbbace0f90d398394865241
index d53aa63af..d53aa63af 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fcffc8e33cde00510dbbace0f90d398394865241
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fcffc8e33cde00510dbbace0f90d398394865241
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fd100ac16c574200c4c104c7a47fbe4c8270185f b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fd100ac16c574200c4c104c7a47fbe4c8270185f
index 88408ac90..88408ac90 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fd100ac16c574200c4c104c7a47fbe4c8270185f
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fd100ac16c574200c4c104c7a47fbe4c8270185f
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fdae5242986ea12cbb1dcad772d42dd83b2af46a b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fdae5242986ea12cbb1dcad772d42dd83b2af46a
index 35b68e4a9..35b68e4a9 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fdae5242986ea12cbb1dcad772d42dd83b2af46a
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fdae5242986ea12cbb1dcad772d42dd83b2af46a
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fdd16aa76bb004c226dd157c3ca1eb11ed6b0683 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fdd16aa76bb004c226dd157c3ca1eb11ed6b0683
index 4e692ad54..4e692ad54 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fdd16aa76bb004c226dd157c3ca1eb11ed6b0683
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fdd16aa76bb004c226dd157c3ca1eb11ed6b0683
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fe03d1d4e0f7e88f96a859976882ef115675e4bb b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe03d1d4e0f7e88f96a859976882ef115675e4bb
index ed64485a6..ed64485a6 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fe03d1d4e0f7e88f96a859976882ef115675e4bb
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe03d1d4e0f7e88f96a859976882ef115675e4bb
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fe03f93ff3f01afc668308de43ceeecd40b236fc b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe03f93ff3f01afc668308de43ceeecd40b236fc
index b3248602a..b3248602a 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fe03f93ff3f01afc668308de43ceeecd40b236fc
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe03f93ff3f01afc668308de43ceeecd40b236fc
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fe1151c5b387c143c8aa0812d0adff7f68d5b928 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe1151c5b387c143c8aa0812d0adff7f68d5b928
index 1dc1dc38f..1dc1dc38f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fe1151c5b387c143c8aa0812d0adff7f68d5b928
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe1151c5b387c143c8aa0812d0adff7f68d5b928
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fe2ecd81ef4e243999bc675e2b15001ed92ca114 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe2ecd81ef4e243999bc675e2b15001ed92ca114
index a8ee393aa..a8ee393aa 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fe2ecd81ef4e243999bc675e2b15001ed92ca114
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe2ecd81ef4e243999bc675e2b15001ed92ca114
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215 b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215
index ddb32750f..ddb32750f 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fe3bcbedac6108c8c8f1736a2e2f20d3c9fed215
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d
index 7bd877838..7bd877838 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fec3ced04dd85ccd3db6418fbaee54462a99975d
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/fec7cbe228ff0a4ba5d9fa327edda5093909b3bf b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fec7cbe228ff0a4ba5d9fa327edda5093909b3bf
index 87c70d0da..87c70d0da 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/fec7cbe228ff0a4ba5d9fa327edda5093909b3bf
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/fec7cbe228ff0a4ba5d9fa327edda5093909b3bf
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ff0af64020119a505e74a70aa1b42328e405f38e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ff0af64020119a505e74a70aa1b42328e405f38e
index 7308754ed..7308754ed 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ff0af64020119a505e74a70aa1b42328e405f38e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ff0af64020119a505e74a70aa1b42328e405f38e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/http2-corpus/ff3a56f7e3f4e61d9ca35d534dede292ab1e897e b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ff3a56f7e3f4e61d9ca35d534dede292ab1e897e
index 5702193ef..5702193ef 100644
--- a/web/server/h2o/libh2o/fuzz/http2-corpus/ff3a56f7e3f4e61d9ca35d534dede292ab1e897e
+++ b/src/web/server/h2o/libh2o/fuzz/http2-corpus/ff3a56f7e3f4e61d9ca35d534dede292ab1e897e
Binary files differ
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/1 b/src/web/server/h2o/libh2o/fuzz/url-corpus/1
index 937fb052d..937fb052d 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/1
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/1
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/10 b/src/web/server/h2o/libh2o/fuzz/url-corpus/10
index 7aa1f1b2e..7aa1f1b2e 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/10
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/10
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/11 b/src/web/server/h2o/libh2o/fuzz/url-corpus/11
index 3fd9db726..3fd9db726 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/11
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/11
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/12 b/src/web/server/h2o/libh2o/fuzz/url-corpus/12
index 6f55d2890..6f55d2890 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/12
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/12
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/13 b/src/web/server/h2o/libh2o/fuzz/url-corpus/13
index 674f2cf1b..674f2cf1b 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/13
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/13
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/14 b/src/web/server/h2o/libh2o/fuzz/url-corpus/14
index 34235bae9..34235bae9 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/14
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/14
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/15 b/src/web/server/h2o/libh2o/fuzz/url-corpus/15
index a62b16dd9..a62b16dd9 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/15
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/15
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/16 b/src/web/server/h2o/libh2o/fuzz/url-corpus/16
index 8de708523..8de708523 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/16
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/16
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/17 b/src/web/server/h2o/libh2o/fuzz/url-corpus/17
index 5d1c1792f..5d1c1792f 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/17
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/17
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/18 b/src/web/server/h2o/libh2o/fuzz/url-corpus/18
index ea8476685..ea8476685 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/18
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/18
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/19 b/src/web/server/h2o/libh2o/fuzz/url-corpus/19
index f5ea30d1b..f5ea30d1b 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/19
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/19
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/2 b/src/web/server/h2o/libh2o/fuzz/url-corpus/2
index e7586d261..e7586d261 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/2
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/2
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/20 b/src/web/server/h2o/libh2o/fuzz/url-corpus/20
index 4a6d97b9c..4a6d97b9c 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/20
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/20
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/21 b/src/web/server/h2o/libh2o/fuzz/url-corpus/21
index c902faada..c902faada 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/21
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/21
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/22 b/src/web/server/h2o/libh2o/fuzz/url-corpus/22
index f927f0dbf..f927f0dbf 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/22
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/22
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/23 b/src/web/server/h2o/libh2o/fuzz/url-corpus/23
index 4056f4a64..4056f4a64 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/23
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/23
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/24 b/src/web/server/h2o/libh2o/fuzz/url-corpus/24
index 846790d5d..846790d5d 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/24
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/24
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/25 b/src/web/server/h2o/libh2o/fuzz/url-corpus/25
index 11c98c188..11c98c188 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/25
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/25
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/26 b/src/web/server/h2o/libh2o/fuzz/url-corpus/26
index fbefe99d4..fbefe99d4 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/26
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/26
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/27 b/src/web/server/h2o/libh2o/fuzz/url-corpus/27
index 5d11d3423..5d11d3423 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/27
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/27
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/28 b/src/web/server/h2o/libh2o/fuzz/url-corpus/28
index b3279a87c..b3279a87c 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/28
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/28
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/29 b/src/web/server/h2o/libh2o/fuzz/url-corpus/29
index 31add10a6..31add10a6 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/29
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/29
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/3 b/src/web/server/h2o/libh2o/fuzz/url-corpus/3
index e60547329..e60547329 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/3
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/3
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/30 b/src/web/server/h2o/libh2o/fuzz/url-corpus/30
index dcab64373..dcab64373 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/30
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/30
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/31 b/src/web/server/h2o/libh2o/fuzz/url-corpus/31
index ea845614b..ea845614b 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/31
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/31
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/32 b/src/web/server/h2o/libh2o/fuzz/url-corpus/32
index ef26c12b8..ef26c12b8 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/32
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/32
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/33 b/src/web/server/h2o/libh2o/fuzz/url-corpus/33
index 3fdc391de..3fdc391de 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/33
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/33
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/34 b/src/web/server/h2o/libh2o/fuzz/url-corpus/34
index f07b05a31..f07b05a31 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/34
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/34
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/35 b/src/web/server/h2o/libh2o/fuzz/url-corpus/35
index 8337712ea..8337712ea 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/35
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/35
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/36 b/src/web/server/h2o/libh2o/fuzz/url-corpus/36
index 14e23f088..14e23f088 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/36
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/36
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/37 b/src/web/server/h2o/libh2o/fuzz/url-corpus/37
index 7a46c9c16..7a46c9c16 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/37
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/37
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/38 b/src/web/server/h2o/libh2o/fuzz/url-corpus/38
index 7baddbfd2..7baddbfd2 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/38
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/38
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/39 b/src/web/server/h2o/libh2o/fuzz/url-corpus/39
index cbce7363b..cbce7363b 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/39
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/39
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/4 b/src/web/server/h2o/libh2o/fuzz/url-corpus/4
index 0f42d866f..0f42d866f 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/4
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/4
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/40 b/src/web/server/h2o/libh2o/fuzz/url-corpus/40
index 8337712ea..8337712ea 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/40
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/40
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/41 b/src/web/server/h2o/libh2o/fuzz/url-corpus/41
index 14e23f088..14e23f088 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/41
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/41
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/42 b/src/web/server/h2o/libh2o/fuzz/url-corpus/42
index 7a46c9c16..7a46c9c16 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/42
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/42
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/43 b/src/web/server/h2o/libh2o/fuzz/url-corpus/43
index 7baddbfd2..7baddbfd2 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/43
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/43
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/44 b/src/web/server/h2o/libh2o/fuzz/url-corpus/44
index f0aa47562..f0aa47562 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/44
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/44
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/45 b/src/web/server/h2o/libh2o/fuzz/url-corpus/45
index 8337712ea..8337712ea 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/45
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/45
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/46 b/src/web/server/h2o/libh2o/fuzz/url-corpus/46
index 23e311dde..23e311dde 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/46
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/46
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/47 b/src/web/server/h2o/libh2o/fuzz/url-corpus/47
index 7a46c9c16..7a46c9c16 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/47
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/47
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/48 b/src/web/server/h2o/libh2o/fuzz/url-corpus/48
index 7baddbfd2..7baddbfd2 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/48
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/48
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/49 b/src/web/server/h2o/libh2o/fuzz/url-corpus/49
index 930581ad4..930581ad4 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/49
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/49
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/5 b/src/web/server/h2o/libh2o/fuzz/url-corpus/5
index 5b667e044..5b667e044 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/5
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/5
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/50 b/src/web/server/h2o/libh2o/fuzz/url-corpus/50
index 8337712ea..8337712ea 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/50
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/50
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/51 b/src/web/server/h2o/libh2o/fuzz/url-corpus/51
index 23e311dde..23e311dde 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/51
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/51
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/52 b/src/web/server/h2o/libh2o/fuzz/url-corpus/52
index 7a46c9c16..7a46c9c16 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/52
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/52
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/53 b/src/web/server/h2o/libh2o/fuzz/url-corpus/53
index 7baddbfd2..7baddbfd2 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/53
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/53
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/54 b/src/web/server/h2o/libh2o/fuzz/url-corpus/54
index dd1449da0..dd1449da0 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/54
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/54
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/55 b/src/web/server/h2o/libh2o/fuzz/url-corpus/55
index 4ee55b08c..4ee55b08c 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/55
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/55
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/56 b/src/web/server/h2o/libh2o/fuzz/url-corpus/56
index d722c6837..d722c6837 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/56
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/56
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/57 b/src/web/server/h2o/libh2o/fuzz/url-corpus/57
index ca124074a..ca124074a 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/57
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/57
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/58 b/src/web/server/h2o/libh2o/fuzz/url-corpus/58
index 529c9ebbb..529c9ebbb 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/58
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/58
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/59 b/src/web/server/h2o/libh2o/fuzz/url-corpus/59
index eb7fa8436..eb7fa8436 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/59
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/59
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/6 b/src/web/server/h2o/libh2o/fuzz/url-corpus/6
index b23a24592..b23a24592 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/6
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/6
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/60 b/src/web/server/h2o/libh2o/fuzz/url-corpus/60
index 7a19d2485..7a19d2485 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/60
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/60
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/61 b/src/web/server/h2o/libh2o/fuzz/url-corpus/61
index 09ef2b1af..09ef2b1af 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/61
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/61
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/62 b/src/web/server/h2o/libh2o/fuzz/url-corpus/62
index d87e35298..d87e35298 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/62
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/62
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/63 b/src/web/server/h2o/libh2o/fuzz/url-corpus/63
index 7a4aece8e..7a4aece8e 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/63
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/63
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/64 b/src/web/server/h2o/libh2o/fuzz/url-corpus/64
index e55f03924..e55f03924 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/64
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/64
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/65 b/src/web/server/h2o/libh2o/fuzz/url-corpus/65
index c0ad332e6..c0ad332e6 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/65
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/65
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/66 b/src/web/server/h2o/libh2o/fuzz/url-corpus/66
index b616a5b86..b616a5b86 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/66
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/66
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/67 b/src/web/server/h2o/libh2o/fuzz/url-corpus/67
index 96d7b4418..96d7b4418 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/67
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/67
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/68 b/src/web/server/h2o/libh2o/fuzz/url-corpus/68
index 6b065c3ac..6b065c3ac 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/68
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/68
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/69 b/src/web/server/h2o/libh2o/fuzz/url-corpus/69
index 89cf87030..89cf87030 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/69
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/69
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/7 b/src/web/server/h2o/libh2o/fuzz/url-corpus/7
index dfafe57c2..dfafe57c2 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/7
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/7
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/70 b/src/web/server/h2o/libh2o/fuzz/url-corpus/70
index d44d4ac4f..d44d4ac4f 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/70
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/70
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/8 b/src/web/server/h2o/libh2o/fuzz/url-corpus/8
index 241613042..241613042 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/8
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/8
diff --git a/web/server/h2o/libh2o/fuzz/url-corpus/9 b/src/web/server/h2o/libh2o/fuzz/url-corpus/9
index 77e5943eb..77e5943eb 100644
--- a/web/server/h2o/libh2o/fuzz/url-corpus/9
+++ b/src/web/server/h2o/libh2o/fuzz/url-corpus/9
diff --git a/web/server/h2o/libh2o/h2o.xcodeproj/project.pbxproj b/src/web/server/h2o/libh2o/h2o.xcodeproj/project.pbxproj
index 31f9a2500..31f9a2500 100644
--- a/web/server/h2o/libh2o/h2o.xcodeproj/project.pbxproj
+++ b/src/web/server/h2o/libh2o/h2o.xcodeproj/project.pbxproj
diff --git a/web/server/h2o/libh2o/h2o.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src/web/server/h2o/libh2o/h2o.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index 06784a6c1..06784a6c1 100644
--- a/web/server/h2o/libh2o/h2o.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/src/web/server/h2o/libh2o/h2o.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/web/server/h2o/libh2o/include/h2o.h b/src/web/server/h2o/libh2o/include/h2o.h
index 57877bd12..57877bd12 100644
--- a/web/server/h2o/libh2o/include/h2o.h
+++ b/src/web/server/h2o/libh2o/include/h2o.h
diff --git a/web/server/h2o/libh2o/include/h2o/cache.h b/src/web/server/h2o/libh2o/include/h2o/cache.h
index 4eae70c92..4eae70c92 100644
--- a/web/server/h2o/libh2o/include/h2o/cache.h
+++ b/src/web/server/h2o/libh2o/include/h2o/cache.h
diff --git a/web/server/h2o/libh2o/include/h2o/cache_digests.h b/src/web/server/h2o/libh2o/include/h2o/cache_digests.h
index 8680b38b3..8680b38b3 100644
--- a/web/server/h2o/libh2o/include/h2o/cache_digests.h
+++ b/src/web/server/h2o/libh2o/include/h2o/cache_digests.h
diff --git a/web/server/h2o/libh2o/include/h2o/configurator.h b/src/web/server/h2o/libh2o/include/h2o/configurator.h
index d1a2e2515..d1a2e2515 100644
--- a/web/server/h2o/libh2o/include/h2o/configurator.h
+++ b/src/web/server/h2o/libh2o/include/h2o/configurator.h
diff --git a/web/server/h2o/libh2o/include/h2o/file.h b/src/web/server/h2o/libh2o/include/h2o/file.h
index 76c5ed657..76c5ed657 100644
--- a/web/server/h2o/libh2o/include/h2o/file.h
+++ b/src/web/server/h2o/libh2o/include/h2o/file.h
diff --git a/web/server/h2o/libh2o/include/h2o/filecache.h b/src/web/server/h2o/libh2o/include/h2o/filecache.h
index a000c4c6d..a000c4c6d 100644
--- a/web/server/h2o/libh2o/include/h2o/filecache.h
+++ b/src/web/server/h2o/libh2o/include/h2o/filecache.h
diff --git a/web/server/h2o/libh2o/include/h2o/hostinfo.h b/src/web/server/h2o/libh2o/include/h2o/hostinfo.h
index 14ac30c6c..14ac30c6c 100644
--- a/web/server/h2o/libh2o/include/h2o/hostinfo.h
+++ b/src/web/server/h2o/libh2o/include/h2o/hostinfo.h
diff --git a/web/server/h2o/libh2o/include/h2o/http1.h b/src/web/server/h2o/libh2o/include/h2o/http1.h
index cb9e9395d..cb9e9395d 100644
--- a/web/server/h2o/libh2o/include/h2o/http1.h
+++ b/src/web/server/h2o/libh2o/include/h2o/http1.h
diff --git a/web/server/h2o/libh2o/include/h2o/http1client.h b/src/web/server/h2o/libh2o/include/h2o/http1client.h
index 243994074..243994074 100644
--- a/web/server/h2o/libh2o/include/h2o/http1client.h
+++ b/src/web/server/h2o/libh2o/include/h2o/http1client.h
diff --git a/web/server/h2o/libh2o/include/h2o/http2.h b/src/web/server/h2o/libh2o/include/h2o/http2.h
index 567e77de2..567e77de2 100644
--- a/web/server/h2o/libh2o/include/h2o/http2.h
+++ b/src/web/server/h2o/libh2o/include/h2o/http2.h
diff --git a/web/server/h2o/libh2o/include/h2o/http2_casper.h b/src/web/server/h2o/libh2o/include/h2o/http2_casper.h
index dd6ea2436..dd6ea2436 100644
--- a/web/server/h2o/libh2o/include/h2o/http2_casper.h
+++ b/src/web/server/h2o/libh2o/include/h2o/http2_casper.h
diff --git a/web/server/h2o/libh2o/include/h2o/http2_internal.h b/src/web/server/h2o/libh2o/include/h2o/http2_internal.h
index 5cfc4d820..5cfc4d820 100644
--- a/web/server/h2o/libh2o/include/h2o/http2_internal.h
+++ b/src/web/server/h2o/libh2o/include/h2o/http2_internal.h
diff --git a/web/server/h2o/libh2o/include/h2o/http2_scheduler.h b/src/web/server/h2o/libh2o/include/h2o/http2_scheduler.h
index f0a7d6e87..f0a7d6e87 100644
--- a/web/server/h2o/libh2o/include/h2o/http2_scheduler.h
+++ b/src/web/server/h2o/libh2o/include/h2o/http2_scheduler.h
diff --git a/web/server/h2o/libh2o/include/h2o/linklist.h b/src/web/server/h2o/libh2o/include/h2o/linklist.h
index eb7fd10cb..eb7fd10cb 100644
--- a/web/server/h2o/libh2o/include/h2o/linklist.h
+++ b/src/web/server/h2o/libh2o/include/h2o/linklist.h
diff --git a/web/server/h2o/libh2o/include/h2o/memcached.h b/src/web/server/h2o/libh2o/include/h2o/memcached.h
index 2bd7da891..2bd7da891 100644
--- a/web/server/h2o/libh2o/include/h2o/memcached.h
+++ b/src/web/server/h2o/libh2o/include/h2o/memcached.h
diff --git a/web/server/h2o/libh2o/include/h2o/memory.h b/src/web/server/h2o/libh2o/include/h2o/memory.h
index 10c137c88..10c137c88 100644
--- a/web/server/h2o/libh2o/include/h2o/memory.h
+++ b/src/web/server/h2o/libh2o/include/h2o/memory.h
diff --git a/web/server/h2o/libh2o/include/h2o/mruby_.h b/src/web/server/h2o/libh2o/include/h2o/mruby_.h
index 908d34f4f..908d34f4f 100644
--- a/web/server/h2o/libh2o/include/h2o/mruby_.h
+++ b/src/web/server/h2o/libh2o/include/h2o/mruby_.h
diff --git a/web/server/h2o/libh2o/include/h2o/multithread.h b/src/web/server/h2o/libh2o/include/h2o/multithread.h
index d089379e5..d089379e5 100644
--- a/web/server/h2o/libh2o/include/h2o/multithread.h
+++ b/src/web/server/h2o/libh2o/include/h2o/multithread.h
diff --git a/web/server/h2o/libh2o/include/h2o/openssl_backport.h b/src/web/server/h2o/libh2o/include/h2o/openssl_backport.h
index 72cc43c45..72cc43c45 100644
--- a/web/server/h2o/libh2o/include/h2o/openssl_backport.h
+++ b/src/web/server/h2o/libh2o/include/h2o/openssl_backport.h
diff --git a/web/server/h2o/libh2o/include/h2o/rand.h b/src/web/server/h2o/libh2o/include/h2o/rand.h
index 76721d262..76721d262 100644
--- a/web/server/h2o/libh2o/include/h2o/rand.h
+++ b/src/web/server/h2o/libh2o/include/h2o/rand.h
diff --git a/web/server/h2o/libh2o/include/h2o/serverutil.h b/src/web/server/h2o/libh2o/include/h2o/serverutil.h
index 7698cdcb4..7698cdcb4 100644
--- a/web/server/h2o/libh2o/include/h2o/serverutil.h
+++ b/src/web/server/h2o/libh2o/include/h2o/serverutil.h
diff --git a/web/server/h2o/libh2o/include/h2o/socket.h b/src/web/server/h2o/libh2o/include/h2o/socket.h
index 58ada8509..58ada8509 100644
--- a/web/server/h2o/libh2o/include/h2o/socket.h
+++ b/src/web/server/h2o/libh2o/include/h2o/socket.h
diff --git a/web/server/h2o/libh2o/include/h2o/socket/evloop.h b/src/web/server/h2o/libh2o/include/h2o/socket/evloop.h
index 61ff29a66..61ff29a66 100644
--- a/web/server/h2o/libh2o/include/h2o/socket/evloop.h
+++ b/src/web/server/h2o/libh2o/include/h2o/socket/evloop.h
diff --git a/web/server/h2o/libh2o/include/h2o/socket/uv-binding.h b/src/web/server/h2o/libh2o/include/h2o/socket/uv-binding.h
index ad2812293..ad2812293 100644
--- a/web/server/h2o/libh2o/include/h2o/socket/uv-binding.h
+++ b/src/web/server/h2o/libh2o/include/h2o/socket/uv-binding.h
diff --git a/web/server/h2o/libh2o/include/h2o/socketpool.h b/src/web/server/h2o/libh2o/include/h2o/socketpool.h
index cc4161df4..cc4161df4 100644
--- a/web/server/h2o/libh2o/include/h2o/socketpool.h
+++ b/src/web/server/h2o/libh2o/include/h2o/socketpool.h
diff --git a/web/server/h2o/libh2o/include/h2o/string_.h b/src/web/server/h2o/libh2o/include/h2o/string_.h
index ca319e54a..ca319e54a 100644
--- a/web/server/h2o/libh2o/include/h2o/string_.h
+++ b/src/web/server/h2o/libh2o/include/h2o/string_.h
diff --git a/web/server/h2o/libh2o/include/h2o/time_.h b/src/web/server/h2o/libh2o/include/h2o/time_.h
index 1bab3efab..1bab3efab 100644
--- a/web/server/h2o/libh2o/include/h2o/time_.h
+++ b/src/web/server/h2o/libh2o/include/h2o/time_.h
diff --git a/web/server/h2o/libh2o/include/h2o/timeout.h b/src/web/server/h2o/libh2o/include/h2o/timeout.h
index 59e65f0c2..59e65f0c2 100644
--- a/web/server/h2o/libh2o/include/h2o/timeout.h
+++ b/src/web/server/h2o/libh2o/include/h2o/timeout.h
diff --git a/web/server/h2o/libh2o/include/h2o/token.h b/src/web/server/h2o/libh2o/include/h2o/token.h
index 1946b8b74..1946b8b74 100644
--- a/web/server/h2o/libh2o/include/h2o/token.h
+++ b/src/web/server/h2o/libh2o/include/h2o/token.h
diff --git a/web/server/h2o/libh2o/include/h2o/tunnel.h b/src/web/server/h2o/libh2o/include/h2o/tunnel.h
index 520de91cc..520de91cc 100644
--- a/web/server/h2o/libh2o/include/h2o/tunnel.h
+++ b/src/web/server/h2o/libh2o/include/h2o/tunnel.h
diff --git a/web/server/h2o/libh2o/include/h2o/url.h b/src/web/server/h2o/libh2o/include/h2o/url.h
index 231c9a263..231c9a263 100644
--- a/web/server/h2o/libh2o/include/h2o/url.h
+++ b/src/web/server/h2o/libh2o/include/h2o/url.h
diff --git a/web/server/h2o/libh2o/include/h2o/version.h b/src/web/server/h2o/libh2o/include/h2o/version.h
index 0299197af..0299197af 100644
--- a/web/server/h2o/libh2o/include/h2o/version.h
+++ b/src/web/server/h2o/libh2o/include/h2o/version.h
diff --git a/web/server/h2o/libh2o/include/h2o/websocket.h b/src/web/server/h2o/libh2o/include/h2o/websocket.h
index 96e047ada..96e047ada 100644
--- a/web/server/h2o/libh2o/include/h2o/websocket.h
+++ b/src/web/server/h2o/libh2o/include/h2o/websocket.h
diff --git a/web/server/h2o/libh2o/lib/common/cache.c b/src/web/server/h2o/libh2o/lib/common/cache.c
index cc8d8f007..cc8d8f007 100644
--- a/web/server/h2o/libh2o/lib/common/cache.c
+++ b/src/web/server/h2o/libh2o/lib/common/cache.c
diff --git a/web/server/h2o/libh2o/lib/common/file.c b/src/web/server/h2o/libh2o/lib/common/file.c
index 3cf5ac5d1..3cf5ac5d1 100644
--- a/web/server/h2o/libh2o/lib/common/file.c
+++ b/src/web/server/h2o/libh2o/lib/common/file.c
diff --git a/web/server/h2o/libh2o/lib/common/filecache.c b/src/web/server/h2o/libh2o/lib/common/filecache.c
index 747a1ffa6..747a1ffa6 100644
--- a/web/server/h2o/libh2o/lib/common/filecache.c
+++ b/src/web/server/h2o/libh2o/lib/common/filecache.c
diff --git a/web/server/h2o/libh2o/lib/common/hostinfo.c b/src/web/server/h2o/libh2o/lib/common/hostinfo.c
index 7b481e296..7b481e296 100644
--- a/web/server/h2o/libh2o/lib/common/hostinfo.c
+++ b/src/web/server/h2o/libh2o/lib/common/hostinfo.c
diff --git a/web/server/h2o/libh2o/lib/common/http1client.c b/src/web/server/h2o/libh2o/lib/common/http1client.c
index 8547ea817..8547ea817 100644
--- a/web/server/h2o/libh2o/lib/common/http1client.c
+++ b/src/web/server/h2o/libh2o/lib/common/http1client.c
diff --git a/web/server/h2o/libh2o/lib/common/memcached.c b/src/web/server/h2o/libh2o/lib/common/memcached.c
index 752ea2fcb..752ea2fcb 100644
--- a/web/server/h2o/libh2o/lib/common/memcached.c
+++ b/src/web/server/h2o/libh2o/lib/common/memcached.c
diff --git a/web/server/h2o/libh2o/lib/common/memory.c b/src/web/server/h2o/libh2o/lib/common/memory.c
index ba9f2dba2..ba9f2dba2 100644
--- a/web/server/h2o/libh2o/lib/common/memory.c
+++ b/src/web/server/h2o/libh2o/lib/common/memory.c
diff --git a/web/server/h2o/libh2o/lib/common/multithread.c b/src/web/server/h2o/libh2o/lib/common/multithread.c
index b4e8ba836..b4e8ba836 100644
--- a/web/server/h2o/libh2o/lib/common/multithread.c
+++ b/src/web/server/h2o/libh2o/lib/common/multithread.c
diff --git a/web/server/h2o/libh2o/lib/common/serverutil.c b/src/web/server/h2o/libh2o/lib/common/serverutil.c
index 8226f6efc..8226f6efc 100644
--- a/web/server/h2o/libh2o/lib/common/serverutil.c
+++ b/src/web/server/h2o/libh2o/lib/common/serverutil.c
diff --git a/web/server/h2o/libh2o/lib/common/socket.c b/src/web/server/h2o/libh2o/lib/common/socket.c
index 5b1c37e04..5b1c37e04 100644
--- a/web/server/h2o/libh2o/lib/common/socket.c
+++ b/src/web/server/h2o/libh2o/lib/common/socket.c
diff --git a/web/server/h2o/libh2o/lib/common/socket/evloop.c.h b/src/web/server/h2o/libh2o/lib/common/socket/evloop.c.h
index 754ed23b9..754ed23b9 100644
--- a/web/server/h2o/libh2o/lib/common/socket/evloop.c.h
+++ b/src/web/server/h2o/libh2o/lib/common/socket/evloop.c.h
diff --git a/web/server/h2o/libh2o/lib/common/socket/evloop/epoll.c.h b/src/web/server/h2o/libh2o/lib/common/socket/evloop/epoll.c.h
index 247dac893..247dac893 100644
--- a/web/server/h2o/libh2o/lib/common/socket/evloop/epoll.c.h
+++ b/src/web/server/h2o/libh2o/lib/common/socket/evloop/epoll.c.h
diff --git a/web/server/h2o/libh2o/lib/common/socket/evloop/kqueue.c.h b/src/web/server/h2o/libh2o/lib/common/socket/evloop/kqueue.c.h
index 21288ed7c..21288ed7c 100644
--- a/web/server/h2o/libh2o/lib/common/socket/evloop/kqueue.c.h
+++ b/src/web/server/h2o/libh2o/lib/common/socket/evloop/kqueue.c.h
diff --git a/web/server/h2o/libh2o/lib/common/socket/evloop/poll.c.h b/src/web/server/h2o/libh2o/lib/common/socket/evloop/poll.c.h
index 8b3f3d149..8b3f3d149 100644
--- a/web/server/h2o/libh2o/lib/common/socket/evloop/poll.c.h
+++ b/src/web/server/h2o/libh2o/lib/common/socket/evloop/poll.c.h
diff --git a/web/server/h2o/libh2o/lib/common/socket/uv-binding.c.h b/src/web/server/h2o/libh2o/lib/common/socket/uv-binding.c.h
index 44c71c166..44c71c166 100644
--- a/web/server/h2o/libh2o/lib/common/socket/uv-binding.c.h
+++ b/src/web/server/h2o/libh2o/lib/common/socket/uv-binding.c.h
diff --git a/web/server/h2o/libh2o/lib/common/socketpool.c b/src/web/server/h2o/libh2o/lib/common/socketpool.c
index da69933f7..da69933f7 100644
--- a/web/server/h2o/libh2o/lib/common/socketpool.c
+++ b/src/web/server/h2o/libh2o/lib/common/socketpool.c
diff --git a/web/server/h2o/libh2o/lib/common/string.c b/src/web/server/h2o/libh2o/lib/common/string.c
index 3c068f3ad..3c068f3ad 100644
--- a/web/server/h2o/libh2o/lib/common/string.c
+++ b/src/web/server/h2o/libh2o/lib/common/string.c
diff --git a/web/server/h2o/libh2o/lib/common/time.c b/src/web/server/h2o/libh2o/lib/common/time.c
index 368143e78..368143e78 100644
--- a/web/server/h2o/libh2o/lib/common/time.c
+++ b/src/web/server/h2o/libh2o/lib/common/time.c
diff --git a/web/server/h2o/libh2o/lib/common/timeout.c b/src/web/server/h2o/libh2o/lib/common/timeout.c
index c50be0a3f..c50be0a3f 100644
--- a/web/server/h2o/libh2o/lib/common/timeout.c
+++ b/src/web/server/h2o/libh2o/lib/common/timeout.c
diff --git a/web/server/h2o/libh2o/lib/common/url.c b/src/web/server/h2o/libh2o/lib/common/url.c
index d65d18fb5..d65d18fb5 100644
--- a/web/server/h2o/libh2o/lib/common/url.c
+++ b/src/web/server/h2o/libh2o/lib/common/url.c
diff --git a/web/server/h2o/libh2o/lib/core/config.c b/src/web/server/h2o/libh2o/lib/core/config.c
index ce1d32018..ce1d32018 100644
--- a/web/server/h2o/libh2o/lib/core/config.c
+++ b/src/web/server/h2o/libh2o/lib/core/config.c
diff --git a/web/server/h2o/libh2o/lib/core/configurator.c b/src/web/server/h2o/libh2o/lib/core/configurator.c
index 891770cc2..891770cc2 100644
--- a/web/server/h2o/libh2o/lib/core/configurator.c
+++ b/src/web/server/h2o/libh2o/lib/core/configurator.c
diff --git a/web/server/h2o/libh2o/lib/core/context.c b/src/web/server/h2o/libh2o/lib/core/context.c
index 8d1101381..8d1101381 100644
--- a/web/server/h2o/libh2o/lib/core/context.c
+++ b/src/web/server/h2o/libh2o/lib/core/context.c
diff --git a/web/server/h2o/libh2o/lib/core/headers.c b/src/web/server/h2o/libh2o/lib/core/headers.c
index d31183623..d31183623 100644
--- a/web/server/h2o/libh2o/lib/core/headers.c
+++ b/src/web/server/h2o/libh2o/lib/core/headers.c
diff --git a/web/server/h2o/libh2o/lib/core/logconf.c b/src/web/server/h2o/libh2o/lib/core/logconf.c
index 4d79736cc..4d79736cc 100644
--- a/web/server/h2o/libh2o/lib/core/logconf.c
+++ b/src/web/server/h2o/libh2o/lib/core/logconf.c
diff --git a/web/server/h2o/libh2o/lib/core/proxy.c b/src/web/server/h2o/libh2o/lib/core/proxy.c
index edb4baf9d..edb4baf9d 100644
--- a/web/server/h2o/libh2o/lib/core/proxy.c
+++ b/src/web/server/h2o/libh2o/lib/core/proxy.c
diff --git a/web/server/h2o/libh2o/lib/core/request.c b/src/web/server/h2o/libh2o/lib/core/request.c
index 96aabb22d..96aabb22d 100644
--- a/web/server/h2o/libh2o/lib/core/request.c
+++ b/src/web/server/h2o/libh2o/lib/core/request.c
diff --git a/web/server/h2o/libh2o/lib/core/token.c b/src/web/server/h2o/libh2o/lib/core/token.c
index e21ce2383..e21ce2383 100644
--- a/web/server/h2o/libh2o/lib/core/token.c
+++ b/src/web/server/h2o/libh2o/lib/core/token.c
diff --git a/web/server/h2o/libh2o/lib/core/token_table.h b/src/web/server/h2o/libh2o/lib/core/token_table.h
index ae26aa6c4..ae26aa6c4 100644
--- a/web/server/h2o/libh2o/lib/core/token_table.h
+++ b/src/web/server/h2o/libh2o/lib/core/token_table.h
diff --git a/web/server/h2o/libh2o/lib/core/util.c b/src/web/server/h2o/libh2o/lib/core/util.c
index 50d2b2493..50d2b2493 100644
--- a/web/server/h2o/libh2o/lib/core/util.c
+++ b/src/web/server/h2o/libh2o/lib/core/util.c
diff --git a/web/server/h2o/libh2o/lib/handler/access_log.c b/src/web/server/h2o/libh2o/lib/handler/access_log.c
index 4a7704174..4a7704174 100644
--- a/web/server/h2o/libh2o/lib/handler/access_log.c
+++ b/src/web/server/h2o/libh2o/lib/handler/access_log.c
diff --git a/web/server/h2o/libh2o/lib/handler/chunked.c b/src/web/server/h2o/libh2o/lib/handler/chunked.c
index b6ad4346b..b6ad4346b 100644
--- a/web/server/h2o/libh2o/lib/handler/chunked.c
+++ b/src/web/server/h2o/libh2o/lib/handler/chunked.c
diff --git a/web/server/h2o/libh2o/lib/handler/compress.c b/src/web/server/h2o/libh2o/lib/handler/compress.c
index 615977131..615977131 100644
--- a/web/server/h2o/libh2o/lib/handler/compress.c
+++ b/src/web/server/h2o/libh2o/lib/handler/compress.c
diff --git a/web/server/h2o/libh2o/lib/handler/compress/brotli.cc b/src/web/server/h2o/libh2o/lib/handler/compress/brotli.cc
index d4d06e9c4..d4d06e9c4 100644
--- a/web/server/h2o/libh2o/lib/handler/compress/brotli.cc
+++ b/src/web/server/h2o/libh2o/lib/handler/compress/brotli.cc
diff --git a/web/server/h2o/libh2o/lib/handler/compress/gzip.c b/src/web/server/h2o/libh2o/lib/handler/compress/gzip.c
index c12260df3..c12260df3 100644
--- a/web/server/h2o/libh2o/lib/handler/compress/gzip.c
+++ b/src/web/server/h2o/libh2o/lib/handler/compress/gzip.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/access_log.c b/src/web/server/h2o/libh2o/lib/handler/configurator/access_log.c
index de6380882..de6380882 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/access_log.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/access_log.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/compress.c b/src/web/server/h2o/libh2o/lib/handler/configurator/compress.c
index c023dd5cf..c023dd5cf 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/compress.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/compress.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/errordoc.c b/src/web/server/h2o/libh2o/lib/handler/configurator/errordoc.c
index ab24923ee..ab24923ee 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/errordoc.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/errordoc.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/expires.c b/src/web/server/h2o/libh2o/lib/handler/configurator/expires.c
index 01d404dd5..01d404dd5 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/expires.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/expires.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/fastcgi.c b/src/web/server/h2o/libh2o/lib/handler/configurator/fastcgi.c
index bf89b7b26..bf89b7b26 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/fastcgi.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/fastcgi.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/file.c b/src/web/server/h2o/libh2o/lib/handler/configurator/file.c
index c1c779c68..c1c779c68 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/file.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/file.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/headers.c b/src/web/server/h2o/libh2o/lib/handler/configurator/headers.c
index 68536c052..68536c052 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/headers.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/headers.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/headers_util.c b/src/web/server/h2o/libh2o/lib/handler/configurator/headers_util.c
index c05b9b7c2..c05b9b7c2 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/headers_util.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/headers_util.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/http2_debug_state.c b/src/web/server/h2o/libh2o/lib/handler/configurator/http2_debug_state.c
index 419da9de8..419da9de8 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/http2_debug_state.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/http2_debug_state.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/mruby.c b/src/web/server/h2o/libh2o/lib/handler/configurator/mruby.c
index 1cef8f499..1cef8f499 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/mruby.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/mruby.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/proxy.c b/src/web/server/h2o/libh2o/lib/handler/configurator/proxy.c
index cfc9cbf40..cfc9cbf40 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/proxy.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/proxy.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/redirect.c b/src/web/server/h2o/libh2o/lib/handler/configurator/redirect.c
index 4ebbb99c0..4ebbb99c0 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/redirect.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/redirect.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/reproxy.c b/src/web/server/h2o/libh2o/lib/handler/configurator/reproxy.c
index 21650e4fb..21650e4fb 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/reproxy.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/reproxy.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/status.c b/src/web/server/h2o/libh2o/lib/handler/configurator/status.c
index 8645aa33d..8645aa33d 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/status.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/status.c
diff --git a/web/server/h2o/libh2o/lib/handler/configurator/throttle_resp.c b/src/web/server/h2o/libh2o/lib/handler/configurator/throttle_resp.c
index 61431f756..61431f756 100644
--- a/web/server/h2o/libh2o/lib/handler/configurator/throttle_resp.c
+++ b/src/web/server/h2o/libh2o/lib/handler/configurator/throttle_resp.c
diff --git a/web/server/h2o/libh2o/lib/handler/errordoc.c b/src/web/server/h2o/libh2o/lib/handler/errordoc.c
index 72744f358..72744f358 100644
--- a/web/server/h2o/libh2o/lib/handler/errordoc.c
+++ b/src/web/server/h2o/libh2o/lib/handler/errordoc.c
diff --git a/web/server/h2o/libh2o/lib/handler/expires.c b/src/web/server/h2o/libh2o/lib/handler/expires.c
index c77225649..c77225649 100644
--- a/web/server/h2o/libh2o/lib/handler/expires.c
+++ b/src/web/server/h2o/libh2o/lib/handler/expires.c
diff --git a/web/server/h2o/libh2o/lib/handler/fastcgi.c b/src/web/server/h2o/libh2o/lib/handler/fastcgi.c
index d6bcf9ede..d6bcf9ede 100644
--- a/web/server/h2o/libh2o/lib/handler/fastcgi.c
+++ b/src/web/server/h2o/libh2o/lib/handler/fastcgi.c
diff --git a/web/server/h2o/libh2o/lib/handler/file.c b/src/web/server/h2o/libh2o/lib/handler/file.c
index 5d7c7a2a4..5d7c7a2a4 100644
--- a/web/server/h2o/libh2o/lib/handler/file.c
+++ b/src/web/server/h2o/libh2o/lib/handler/file.c
diff --git a/web/server/h2o/libh2o/lib/handler/file/_templates.c.h b/src/web/server/h2o/libh2o/lib/handler/file/_templates.c.h
index 11b73577c..11b73577c 100644
--- a/web/server/h2o/libh2o/lib/handler/file/_templates.c.h
+++ b/src/web/server/h2o/libh2o/lib/handler/file/_templates.c.h
diff --git a/web/server/h2o/libh2o/lib/handler/file/templates.c.h b/src/web/server/h2o/libh2o/lib/handler/file/templates.c.h
index 24c12dae5..24c12dae5 100644
--- a/web/server/h2o/libh2o/lib/handler/file/templates.c.h
+++ b/src/web/server/h2o/libh2o/lib/handler/file/templates.c.h
diff --git a/web/server/h2o/libh2o/lib/handler/headers.c b/src/web/server/h2o/libh2o/lib/handler/headers.c
index 973976b35..973976b35 100644
--- a/web/server/h2o/libh2o/lib/handler/headers.c
+++ b/src/web/server/h2o/libh2o/lib/handler/headers.c
diff --git a/web/server/h2o/libh2o/lib/handler/headers_util.c b/src/web/server/h2o/libh2o/lib/handler/headers_util.c
index 5ecacfa54..5ecacfa54 100644
--- a/web/server/h2o/libh2o/lib/handler/headers_util.c
+++ b/src/web/server/h2o/libh2o/lib/handler/headers_util.c
diff --git a/web/server/h2o/libh2o/lib/handler/http2_debug_state.c b/src/web/server/h2o/libh2o/lib/handler/http2_debug_state.c
index 0aa0bd1b1..0aa0bd1b1 100644
--- a/web/server/h2o/libh2o/lib/handler/http2_debug_state.c
+++ b/src/web/server/h2o/libh2o/lib/handler/http2_debug_state.c
diff --git a/web/server/h2o/libh2o/lib/handler/mimemap.c b/src/web/server/h2o/libh2o/lib/handler/mimemap.c
index 764362da0..764362da0 100644
--- a/web/server/h2o/libh2o/lib/handler/mimemap.c
+++ b/src/web/server/h2o/libh2o/lib/handler/mimemap.c
diff --git a/web/server/h2o/libh2o/lib/handler/mimemap/defaults.c.h b/src/web/server/h2o/libh2o/lib/handler/mimemap/defaults.c.h
index a395e0ccb..a395e0ccb 100644
--- a/web/server/h2o/libh2o/lib/handler/mimemap/defaults.c.h
+++ b/src/web/server/h2o/libh2o/lib/handler/mimemap/defaults.c.h
diff --git a/web/server/h2o/libh2o/lib/handler/mruby.c b/src/web/server/h2o/libh2o/lib/handler/mruby.c
index af2af53fd..af2af53fd 100644
--- a/web/server/h2o/libh2o/lib/handler/mruby.c
+++ b/src/web/server/h2o/libh2o/lib/handler/mruby.c
diff --git a/web/server/h2o/libh2o/lib/handler/mruby/chunked.c b/src/web/server/h2o/libh2o/lib/handler/mruby/chunked.c
index 28e3ae433..28e3ae433 100644
--- a/web/server/h2o/libh2o/lib/handler/mruby/chunked.c
+++ b/src/web/server/h2o/libh2o/lib/handler/mruby/chunked.c
diff --git a/web/server/h2o/libh2o/lib/handler/mruby/embedded.c.h b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded.c.h
index db4bb2321..db4bb2321 100644
--- a/web/server/h2o/libh2o/lib/handler/mruby/embedded.c.h
+++ b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded.c.h
diff --git a/web/server/h2o/libh2o/lib/handler/mruby/embedded/chunked.rb b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded/chunked.rb
index ff4e578f8..ff4e578f8 100644
--- a/web/server/h2o/libh2o/lib/handler/mruby/embedded/chunked.rb
+++ b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded/chunked.rb
diff --git a/web/server/h2o/libh2o/lib/handler/mruby/embedded/core.rb b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded/core.rb
index e62583df4..e62583df4 100644
--- a/web/server/h2o/libh2o/lib/handler/mruby/embedded/core.rb
+++ b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded/core.rb
diff --git a/web/server/h2o/libh2o/lib/handler/mruby/embedded/http_request.rb b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded/http_request.rb
index 3f3247a3c..3f3247a3c 100644
--- a/web/server/h2o/libh2o/lib/handler/mruby/embedded/http_request.rb
+++ b/src/web/server/h2o/libh2o/lib/handler/mruby/embedded/http_request.rb
diff --git a/web/server/h2o/libh2o/lib/handler/mruby/http_request.c b/src/web/server/h2o/libh2o/lib/handler/mruby/http_request.c
index 964d03f19..964d03f19 100644
--- a/web/server/h2o/libh2o/lib/handler/mruby/http_request.c
+++ b/src/web/server/h2o/libh2o/lib/handler/mruby/http_request.c
diff --git a/web/server/h2o/libh2o/lib/handler/proxy.c b/src/web/server/h2o/libh2o/lib/handler/proxy.c
index 1d87225e1..1d87225e1 100644
--- a/web/server/h2o/libh2o/lib/handler/proxy.c
+++ b/src/web/server/h2o/libh2o/lib/handler/proxy.c
diff --git a/web/server/h2o/libh2o/lib/handler/redirect.c b/src/web/server/h2o/libh2o/lib/handler/redirect.c
index c8b9c5086..c8b9c5086 100644
--- a/web/server/h2o/libh2o/lib/handler/redirect.c
+++ b/src/web/server/h2o/libh2o/lib/handler/redirect.c
diff --git a/web/server/h2o/libh2o/lib/handler/reproxy.c b/src/web/server/h2o/libh2o/lib/handler/reproxy.c
index 369386d27..369386d27 100644
--- a/web/server/h2o/libh2o/lib/handler/reproxy.c
+++ b/src/web/server/h2o/libh2o/lib/handler/reproxy.c
diff --git a/web/server/h2o/libh2o/lib/handler/status.c b/src/web/server/h2o/libh2o/lib/handler/status.c
index 93befed3b..93befed3b 100644
--- a/web/server/h2o/libh2o/lib/handler/status.c
+++ b/src/web/server/h2o/libh2o/lib/handler/status.c
diff --git a/web/server/h2o/libh2o/lib/handler/status/durations.c b/src/web/server/h2o/libh2o/lib/handler/status/durations.c
index f011107bf..f011107bf 100644
--- a/web/server/h2o/libh2o/lib/handler/status/durations.c
+++ b/src/web/server/h2o/libh2o/lib/handler/status/durations.c
diff --git a/web/server/h2o/libh2o/lib/handler/status/events.c b/src/web/server/h2o/libh2o/lib/handler/status/events.c
index e6ed0b7c6..e6ed0b7c6 100644
--- a/web/server/h2o/libh2o/lib/handler/status/events.c
+++ b/src/web/server/h2o/libh2o/lib/handler/status/events.c
diff --git a/web/server/h2o/libh2o/lib/handler/status/requests.c b/src/web/server/h2o/libh2o/lib/handler/status/requests.c
index 4854e4a1f..4854e4a1f 100644
--- a/web/server/h2o/libh2o/lib/handler/status/requests.c
+++ b/src/web/server/h2o/libh2o/lib/handler/status/requests.c
diff --git a/web/server/h2o/libh2o/lib/handler/throttle_resp.c b/src/web/server/h2o/libh2o/lib/handler/throttle_resp.c
index a0028b502..a0028b502 100644
--- a/web/server/h2o/libh2o/lib/handler/throttle_resp.c
+++ b/src/web/server/h2o/libh2o/lib/handler/throttle_resp.c
diff --git a/web/server/h2o/libh2o/lib/http1.c b/src/web/server/h2o/libh2o/lib/http1.c
index 98c4e55ab..98c4e55ab 100644
--- a/web/server/h2o/libh2o/lib/http1.c
+++ b/src/web/server/h2o/libh2o/lib/http1.c
diff --git a/web/server/h2o/libh2o/lib/http2/cache_digests.c b/src/web/server/h2o/libh2o/lib/http2/cache_digests.c
index fa28bd238..fa28bd238 100644
--- a/web/server/h2o/libh2o/lib/http2/cache_digests.c
+++ b/src/web/server/h2o/libh2o/lib/http2/cache_digests.c
diff --git a/web/server/h2o/libh2o/lib/http2/casper.c b/src/web/server/h2o/libh2o/lib/http2/casper.c
index 56e00d71f..56e00d71f 100644
--- a/web/server/h2o/libh2o/lib/http2/casper.c
+++ b/src/web/server/h2o/libh2o/lib/http2/casper.c
diff --git a/web/server/h2o/libh2o/lib/http2/connection.c b/src/web/server/h2o/libh2o/lib/http2/connection.c
index e2da29304..e2da29304 100644
--- a/web/server/h2o/libh2o/lib/http2/connection.c
+++ b/src/web/server/h2o/libh2o/lib/http2/connection.c
diff --git a/web/server/h2o/libh2o/lib/http2/frame.c b/src/web/server/h2o/libh2o/lib/http2/frame.c
index 86abdaa48..86abdaa48 100644
--- a/web/server/h2o/libh2o/lib/http2/frame.c
+++ b/src/web/server/h2o/libh2o/lib/http2/frame.c
diff --git a/web/server/h2o/libh2o/lib/http2/hpack.c b/src/web/server/h2o/libh2o/lib/http2/hpack.c
index 4adb15cd7..4adb15cd7 100644
--- a/web/server/h2o/libh2o/lib/http2/hpack.c
+++ b/src/web/server/h2o/libh2o/lib/http2/hpack.c
diff --git a/web/server/h2o/libh2o/lib/http2/hpack_huffman_table.h b/src/web/server/h2o/libh2o/lib/http2/hpack_huffman_table.h
index 8f6afab90..8f6afab90 100644
--- a/web/server/h2o/libh2o/lib/http2/hpack_huffman_table.h
+++ b/src/web/server/h2o/libh2o/lib/http2/hpack_huffman_table.h
diff --git a/web/server/h2o/libh2o/lib/http2/hpack_static_table.h b/src/web/server/h2o/libh2o/lib/http2/hpack_static_table.h
index 4c1243103..4c1243103 100644
--- a/web/server/h2o/libh2o/lib/http2/hpack_static_table.h
+++ b/src/web/server/h2o/libh2o/lib/http2/hpack_static_table.h
diff --git a/web/server/h2o/libh2o/lib/http2/http2_debug_state.c b/src/web/server/h2o/libh2o/lib/http2/http2_debug_state.c
index 3ef8de37f..3ef8de37f 100644
--- a/web/server/h2o/libh2o/lib/http2/http2_debug_state.c
+++ b/src/web/server/h2o/libh2o/lib/http2/http2_debug_state.c
diff --git a/web/server/h2o/libh2o/lib/http2/scheduler.c b/src/web/server/h2o/libh2o/lib/http2/scheduler.c
index 0ea7e4591..0ea7e4591 100644
--- a/web/server/h2o/libh2o/lib/http2/scheduler.c
+++ b/src/web/server/h2o/libh2o/lib/http2/scheduler.c
diff --git a/web/server/h2o/libh2o/lib/http2/stream.c b/src/web/server/h2o/libh2o/lib/http2/stream.c
index 1dfe2c3a3..1dfe2c3a3 100644
--- a/web/server/h2o/libh2o/lib/http2/stream.c
+++ b/src/web/server/h2o/libh2o/lib/http2/stream.c
diff --git a/web/server/h2o/libh2o/lib/tunnel.c b/src/web/server/h2o/libh2o/lib/tunnel.c
index aa86aaf4d..aa86aaf4d 100644
--- a/web/server/h2o/libh2o/lib/tunnel.c
+++ b/src/web/server/h2o/libh2o/lib/tunnel.c
diff --git a/web/server/h2o/libh2o/lib/websocket.c b/src/web/server/h2o/libh2o/lib/websocket.c
index 2886acda6..2886acda6 100644
--- a/web/server/h2o/libh2o/lib/websocket.c
+++ b/src/web/server/h2o/libh2o/lib/websocket.c
diff --git a/web/server/h2o/libh2o/libh2o-evloop.pc.in b/src/web/server/h2o/libh2o/libh2o-evloop.pc.in
index 4853951b3..4853951b3 100644
--- a/web/server/h2o/libh2o/libh2o-evloop.pc.in
+++ b/src/web/server/h2o/libh2o/libh2o-evloop.pc.in
diff --git a/web/server/h2o/libh2o/libh2o.pc.in b/src/web/server/h2o/libh2o/libh2o.pc.in
index cbda928fe..cbda928fe 100644
--- a/web/server/h2o/libh2o/libh2o.pc.in
+++ b/src/web/server/h2o/libh2o/libh2o.pc.in
diff --git a/web/server/h2o/libh2o/misc/build_libFuzzer.sh b/src/web/server/h2o/libh2o/misc/build_libFuzzer.sh
index 67a64c9ac..67a64c9ac 100755
--- a/web/server/h2o/libh2o/misc/build_libFuzzer.sh
+++ b/src/web/server/h2o/libh2o/misc/build_libFuzzer.sh
diff --git a/web/server/h2o/libh2o/misc/cache-digest.js/.travis.yml b/src/web/server/h2o/libh2o/misc/cache-digest.js/.travis.yml
index 7c774e43f..7c774e43f 100644
--- a/web/server/h2o/libh2o/misc/cache-digest.js/.travis.yml
+++ b/src/web/server/h2o/libh2o/misc/cache-digest.js/.travis.yml
diff --git a/web/server/h2o/libh2o/misc/cache-digest.js/README.md b/src/web/server/h2o/libh2o/misc/cache-digest.js/README.md
index bb0649ddd..bb0649ddd 100644
--- a/web/server/h2o/libh2o/misc/cache-digest.js/README.md
+++ b/src/web/server/h2o/libh2o/misc/cache-digest.js/README.md
diff --git a/web/server/h2o/libh2o/misc/cache-digest.js/cache-digest.js b/src/web/server/h2o/libh2o/misc/cache-digest.js/cache-digest.js
index b972a6cab..b972a6cab 100644
--- a/web/server/h2o/libh2o/misc/cache-digest.js/cache-digest.js
+++ b/src/web/server/h2o/libh2o/misc/cache-digest.js/cache-digest.js
diff --git a/web/server/h2o/libh2o/misc/cache-digest.js/cli.js b/src/web/server/h2o/libh2o/misc/cache-digest.js/cli.js
index 98f949a3c..98f949a3c 100644
--- a/web/server/h2o/libh2o/misc/cache-digest.js/cli.js
+++ b/src/web/server/h2o/libh2o/misc/cache-digest.js/cli.js
diff --git a/web/server/h2o/libh2o/misc/cache-digest.js/test.js b/src/web/server/h2o/libh2o/misc/cache-digest.js/test.js
index ff3f9b378..ff3f9b378 100644
--- a/web/server/h2o/libh2o/misc/cache-digest.js/test.js
+++ b/src/web/server/h2o/libh2o/misc/cache-digest.js/test.js
diff --git a/web/server/h2o/libh2o/misc/clang-format-all.sh b/src/web/server/h2o/libh2o/misc/clang-format-all.sh
index aaf606c3c..aaf606c3c 100755
--- a/web/server/h2o/libh2o/misc/clang-format-all.sh
+++ b/src/web/server/h2o/libh2o/misc/clang-format-all.sh
diff --git a/web/server/h2o/libh2o/misc/dump-github-repository.pl b/src/web/server/h2o/libh2o/misc/dump-github-repository.pl
index ab8115757..ab8115757 100755
--- a/web/server/h2o/libh2o/misc/dump-github-repository.pl
+++ b/src/web/server/h2o/libh2o/misc/dump-github-repository.pl
diff --git a/web/server/h2o/libh2o/misc/embed_mruby_code.pl b/src/web/server/h2o/libh2o/misc/embed_mruby_code.pl
index 8797e9c82..8797e9c82 100755
--- a/web/server/h2o/libh2o/misc/embed_mruby_code.pl
+++ b/src/web/server/h2o/libh2o/misc/embed_mruby_code.pl
diff --git a/web/server/h2o/libh2o/misc/fastcgi-cgi.pl b/src/web/server/h2o/libh2o/misc/fastcgi-cgi.pl
index 98ee33215..98ee33215 100755
--- a/web/server/h2o/libh2o/misc/fastcgi-cgi.pl
+++ b/src/web/server/h2o/libh2o/misc/fastcgi-cgi.pl
diff --git a/web/server/h2o/libh2o/misc/install-perl-module.pl b/src/web/server/h2o/libh2o/misc/install-perl-module.pl
index 0e0f9f4a6..0e0f9f4a6 100755
--- a/web/server/h2o/libh2o/misc/install-perl-module.pl
+++ b/src/web/server/h2o/libh2o/misc/install-perl-module.pl
diff --git a/web/server/h2o/libh2o/misc/libressl-2.4.5.tar.gz b/src/web/server/h2o/libh2o/misc/libressl-2.4.5.tar.gz
index cac6e43c9..cac6e43c9 100644
--- a/web/server/h2o/libh2o/misc/libressl-2.4.5.tar.gz
+++ b/src/web/server/h2o/libh2o/misc/libressl-2.4.5.tar.gz
Binary files differ
diff --git a/web/server/h2o/libh2o/misc/libressl.mk b/src/web/server/h2o/libh2o/misc/libressl.mk
index d20df414e..d20df414e 100644
--- a/web/server/h2o/libh2o/misc/libressl.mk
+++ b/src/web/server/h2o/libh2o/misc/libressl.mk
diff --git a/web/server/h2o/libh2o/misc/makedoc.pl b/src/web/server/h2o/libh2o/misc/makedoc.pl
index b02553618..b02553618 100755
--- a/web/server/h2o/libh2o/misc/makedoc.pl
+++ b/src/web/server/h2o/libh2o/misc/makedoc.pl
diff --git a/web/server/h2o/libh2o/misc/mk-ca-bundle.pl b/src/web/server/h2o/libh2o/misc/mk-ca-bundle.pl
index 5a1435c52..5a1435c52 100755
--- a/web/server/h2o/libh2o/misc/mk-ca-bundle.pl
+++ b/src/web/server/h2o/libh2o/misc/mk-ca-bundle.pl
diff --git a/web/server/h2o/libh2o/misc/mkhufftbl.py b/src/web/server/h2o/libh2o/misc/mkhufftbl.py
index b51472075..b51472075 100644
--- a/web/server/h2o/libh2o/misc/mkhufftbl.py
+++ b/src/web/server/h2o/libh2o/misc/mkhufftbl.py
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/.gitignore b/src/web/server/h2o/libh2o/misc/mruby-mtest/.gitignore
index 9be3b118a..9be3b118a 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/.gitignore
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/.gitignore
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/.travis.yml b/src/web/server/h2o/libh2o/misc/mruby-mtest/.travis.yml
index ffe227284..ffe227284 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/.travis.yml
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/.travis.yml
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/README.md b/src/web/server/h2o/libh2o/misc/mruby-mtest/README.md
index 5a1b1b480..5a1b1b480 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/README.md
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/README.md
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/example/sample.rb b/src/web/server/h2o/libh2o/misc/mruby-mtest/example/sample.rb
index 67c4e4448..67c4e4448 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/example/sample.rb
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/example/sample.rb
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/mrbgem.rake b/src/web/server/h2o/libh2o/misc/mruby-mtest/mrbgem.rake
index 027fb731d..027fb731d 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/mrbgem.rake
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/mrbgem.rake
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/mrblib/mtest_unit.rb b/src/web/server/h2o/libh2o/misc/mruby-mtest/mrblib/mtest_unit.rb
index d843cc108..d843cc108 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/mrblib/mtest_unit.rb
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/mrblib/mtest_unit.rb
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/run_test.rb b/src/web/server/h2o/libh2o/misc/mruby-mtest/run_test.rb
index c45033e94..c45033e94 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/run_test.rb
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/run_test.rb
diff --git a/web/server/h2o/libh2o/misc/mruby-mtest/test/mtest_unit_test.rb b/src/web/server/h2o/libh2o/misc/mruby-mtest/test/mtest_unit_test.rb
index 43f74cf67..43f74cf67 100644
--- a/web/server/h2o/libh2o/misc/mruby-mtest/test/mtest_unit_test.rb
+++ b/src/web/server/h2o/libh2o/misc/mruby-mtest/test/mtest_unit_test.rb
diff --git a/web/server/h2o/libh2o/misc/mruby_config.rb b/src/web/server/h2o/libh2o/misc/mruby_config.rb
index 64e62b689..64e62b689 100644
--- a/web/server/h2o/libh2o/misc/mruby_config.rb
+++ b/src/web/server/h2o/libh2o/misc/mruby_config.rb
diff --git a/web/server/h2o/libh2o/misc/oktavia/.gitignore b/src/web/server/h2o/libh2o/misc/oktavia/.gitignore
index 10d00b579..10d00b579 100644
--- a/web/server/h2o/libh2o/misc/oktavia/.gitignore
+++ b/src/web/server/h2o/libh2o/misc/oktavia/.gitignore
diff --git a/web/server/h2o/libh2o/misc/oktavia/.proverc b/src/web/server/h2o/libh2o/misc/oktavia/.proverc
index ab863e4f3..ab863e4f3 100644
--- a/web/server/h2o/libh2o/misc/oktavia/.proverc
+++ b/src/web/server/h2o/libh2o/misc/oktavia/.proverc
diff --git a/web/server/h2o/libh2o/misc/oktavia/.travis.yml b/src/web/server/h2o/libh2o/misc/oktavia/.travis.yml
index 0cf13fe47..0cf13fe47 100644
--- a/web/server/h2o/libh2o/misc/oktavia/.travis.yml
+++ b/src/web/server/h2o/libh2o/misc/oktavia/.travis.yml
diff --git a/web/server/h2o/libh2o/misc/oktavia/LICENSE.rst b/src/web/server/h2o/libh2o/misc/oktavia/LICENSE.rst
index 5db7f172a..5db7f172a 100644
--- a/web/server/h2o/libh2o/misc/oktavia/LICENSE.rst
+++ b/src/web/server/h2o/libh2o/misc/oktavia/LICENSE.rst
diff --git a/web/server/h2o/libh2o/misc/oktavia/Makefile b/src/web/server/h2o/libh2o/misc/oktavia/Makefile
index b0fecfb83..b0fecfb83 100644
--- a/web/server/h2o/libh2o/misc/oktavia/Makefile
+++ b/src/web/server/h2o/libh2o/misc/oktavia/Makefile
diff --git a/web/server/h2o/libh2o/misc/oktavia/README.rst b/src/web/server/h2o/libh2o/misc/oktavia/README.rst
index 4617c550f..4617c550f 100644
--- a/web/server/h2o/libh2o/misc/oktavia/README.rst
+++ b/src/web/server/h2o/libh2o/misc/oktavia/README.rst
diff --git a/web/server/h2o/libh2o/misc/oktavia/bin/httpstatus b/src/web/server/h2o/libh2o/misc/oktavia/bin/httpstatus
index 40d13cd77..40d13cd77 100755
--- a/web/server/h2o/libh2o/misc/oktavia/bin/httpstatus
+++ b/src/web/server/h2o/libh2o/misc/oktavia/bin/httpstatus
diff --git a/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-mkindex b/src/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-mkindex
index b0171b536..b0171b536 100755
--- a/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-mkindex
+++ b/src/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-mkindex
diff --git a/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-search b/src/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-search
index 33edd769d..33edd769d 100755
--- a/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-search
+++ b/src/web/server/h2o/libh2o/misc/oktavia/bin/oktavia-search
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-danish-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-danish-search.js
index e0d209e85..e0d209e85 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-danish-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-danish-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-dutch-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-dutch-search.js
index 4f46e2fc7..4f46e2fc7 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-dutch-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-dutch-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-english-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-english-search.js
index cf5c38f3a..cf5c38f3a 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-english-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-english-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-finnish-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-finnish-search.js
index 2d81bc79e..2d81bc79e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-finnish-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-finnish-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-french-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-french-search.js
index 4668c8438..4668c8438 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-french-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-french-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-german-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-german-search.js
index 3769dd3ca..3769dd3ca 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-german-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-german-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-hungarian-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-hungarian-search.js
index 8fe69650a..8fe69650a 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-hungarian-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-hungarian-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-italian-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-italian-search.js
index fa33ac166..fa33ac166 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-italian-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-italian-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-highlight.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-highlight.js
index 519e8876c..519e8876c 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-highlight.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-highlight.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-ui.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-ui.js
index bd1efb8c5..bd1efb8c5 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-ui.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-jquery-ui.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-norwegian-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-norwegian-search.js
index 55bb7d7fd..55bb7d7fd 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-norwegian-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-norwegian-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-porter-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-porter-search.js
index f1bb1801e..f1bb1801e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-porter-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-porter-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-portuguese-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-portuguese-search.js
index 1c9a0d531..1c9a0d531 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-portuguese-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-portuguese-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-romanian-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-romanian-search.js
index 4e4e65a8f..4e4e65a8f 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-romanian-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-romanian-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-russian-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-russian-search.js
index 5cbe89518..5cbe89518 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-russian-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-russian-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-search.js
index fce9732a7..fce9732a7 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-spanish-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-spanish-search.js
index 7a8c74dd0..7a8c74dd0 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-spanish-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-spanish-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-swedish-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-swedish-search.js
index c36b3db82..c36b3db82 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-swedish-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-swedish-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-turkish-search.js b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-turkish-search.js
index f960dd868..f960dd868 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-turkish-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/oktavia-turkish-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/lib/searchstyle.css b/src/web/server/h2o/libh2o/misc/oktavia/lib/searchstyle.css
index a3d51d436..a3d51d436 100644
--- a/web/server/h2o/libh2o/misc/oktavia/lib/searchstyle.css
+++ b/src/web/server/h2o/libh2o/misc/oktavia/lib/searchstyle.css
diff --git a/web/server/h2o/libh2o/misc/oktavia/package.json b/src/web/server/h2o/libh2o/misc/oktavia/package.json
index 3d0a1b299..3d0a1b299 100644
--- a/web/server/h2o/libh2o/misc/oktavia/package.json
+++ b/src/web/server/h2o/libh2o/misc/oktavia/package.json
diff --git a/web/server/h2o/libh2o/misc/oktavia/resource/favicon.ai b/src/web/server/h2o/libh2o/misc/oktavia/resource/favicon.ai
index 14e3ce21f..14e3ce21f 100644
--- a/web/server/h2o/libh2o/misc/oktavia/resource/favicon.ai
+++ b/src/web/server/h2o/libh2o/misc/oktavia/resource/favicon.ai
diff --git a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia.eps b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia.eps
index 977c77df8..977c77df8 100644
--- a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia.eps
+++ b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia.eps
Binary files differ
diff --git a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_large.jpg b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_large.jpg
index 5be4709e0..5be4709e0 100644
--- a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_large.jpg
+++ b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_large.jpg
Binary files differ
diff --git a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_medium.jpg b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_medium.jpg
index 2e926f193..2e926f193 100644
--- a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_medium.jpg
+++ b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_medium.jpg
Binary files differ
diff --git a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_small.jpg b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_small.jpg
index 5b01e3ec1..5b01e3ec1 100644
--- a/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_small.jpg
+++ b/src/web/server/h2o/libh2o/misc/oktavia/resource/oktavia_small.jpg
Binary files differ
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/binary-util.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/binary-util.jsx
index 06d5e7584..06d5e7584 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/binary-util.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/binary-util.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/bit-vector.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/bit-vector.jsx
index b366e43a0..b366e43a0 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/bit-vector.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/bit-vector.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/burrows-wheeler-transform.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/burrows-wheeler-transform.jsx
index 4bdd72fe6..4bdd72fe6 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/burrows-wheeler-transform.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/burrows-wheeler-transform.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/csvparser.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/csvparser.jsx
index 64ed6ac85..64ed6ac85 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/csvparser.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/csvparser.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/fm-index.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/fm-index.jsx
index 502b4fcf9..502b4fcf9 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/fm-index.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/fm-index.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/getopt.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/getopt.jsx
index 56db655a9..56db655a9 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/getopt.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/getopt.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/htmlparser.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/htmlparser.jsx
index 3d0ace782..3d0ace782 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/htmlparser.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/htmlparser.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/metadata.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/metadata.jsx
index 25c388133..25c388133 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/metadata.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/metadata.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/node-sqlite3.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/node-sqlite3.jsx
index 32196983d..32196983d 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/node-sqlite3.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/node-sqlite3.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/oktavia.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/oktavia.jsx
index 8109b4759..8109b4759 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/oktavia.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/oktavia.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/query-parser.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/query-parser.jsx
index 86308bcb8..86308bcb8 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/query-parser.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/query-parser.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/query-string-parser.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/query-string-parser.jsx
index 71d015c91..71d015c91 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/query-string-parser.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/query-string-parser.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/query.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/query.jsx
index 38c52c71a..38c52c71a 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/query.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/query.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/sais.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/sais.jsx
index 9d8fa8fb6..9d8fa8fb6 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/sais.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/sais.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/sax.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/sax.jsx
index d34cb8253..d34cb8253 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/sax.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/sax.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/search-result.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/search-result.jsx
index fb9721fa1..fb9721fa1 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/search-result.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/search-result.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/among.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/among.jsx
index f695b94be..f695b94be 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/among.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/among.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/base-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/base-stemmer.jsx
index dfc0d6ea8..dfc0d6ea8 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/base-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/base-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/danish-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/danish-stemmer.jsx
index ffebd8815..ffebd8815 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/danish-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/danish-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/dutch-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/dutch-stemmer.jsx
index a8c45d2f8..a8c45d2f8 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/dutch-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/dutch-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx
index 901c12c85..901c12c85 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/finnish-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/finnish-stemmer.jsx
index 35a1d56a7..35a1d56a7 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/finnish-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/finnish-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/french-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/french-stemmer.jsx
index 3d937818b..3d937818b 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/french-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/french-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/german-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/german-stemmer.jsx
index 7659b3a7c..7659b3a7c 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/german-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/german-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/hungarian-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/hungarian-stemmer.jsx
index 9d67dba46..9d67dba46 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/hungarian-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/hungarian-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/italian-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/italian-stemmer.jsx
index 2072deb9a..2072deb9a 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/italian-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/italian-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/norwegian-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/norwegian-stemmer.jsx
index 29640bf1e..29640bf1e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/norwegian-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/norwegian-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/porter-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/porter-stemmer.jsx
index f8570501d..f8570501d 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/porter-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/porter-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/portuguese-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/portuguese-stemmer.jsx
index 317837d9f..317837d9f 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/portuguese-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/portuguese-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/romanian-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/romanian-stemmer.jsx
index 1eb9f3d88..1eb9f3d88 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/romanian-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/romanian-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/russian-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/russian-stemmer.jsx
index 2b7d30a9e..2b7d30a9e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/russian-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/russian-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/spanish-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/spanish-stemmer.jsx
index e9bee696e..e9bee696e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/spanish-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/spanish-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/stemmer.jsx
index 43bd75fa4..43bd75fa4 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/swedish-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/swedish-stemmer.jsx
index 536094aeb..536094aeb 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/swedish-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/swedish-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/turkish-stemmer.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/turkish-stemmer.jsx
index d26ed8bad..d26ed8bad 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/turkish-stemmer.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/stemmer/turkish-stemmer.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/style.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/style.jsx
index 3886dc454..3886dc454 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/style.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/style.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/textparser.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/textparser.jsx
index 6cb4676ae..6cb4676ae 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/textparser.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/textparser.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/tiny-segmenter.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/tiny-segmenter.jsx
index b69796c27..b69796c27 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/tiny-segmenter.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/tiny-segmenter.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/src/wavelet-matrix.jsx b/src/web/server/h2o/libh2o/misc/oktavia/src/wavelet-matrix.jsx
index 2a07b0153..2a07b0153 100644
--- a/web/server/h2o/libh2o/misc/oktavia/src/wavelet-matrix.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/src/wavelet-matrix.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/README.md b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/README.md
index a7bd96bfd..a7bd96bfd 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/README.md
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/README.md
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/publish.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/publish.js
index 362114629..362114629 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/publish.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/publish.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/jquery-1.9.1.min.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/jquery-1.9.1.min.js
index 006e95310..006e95310 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/jquery-1.9.1.min.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/jquery-1.9.1.min.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-english-search.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-english-search.js
index cf5c38f3a..cf5c38f3a 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-english-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-english-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-highlight.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-highlight.js
index 519e8876c..519e8876c 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-highlight.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-highlight.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-ui.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-ui.js
index bd1efb8c5..bd1efb8c5 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-ui.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/oktavia-jquery-ui.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/Apache-License-2.0.txt b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/Apache-License-2.0.txt
index d64569567..d64569567 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/Apache-License-2.0.txt
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/Apache-License-2.0.txt
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/lang-css.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/lang-css.js
index 041e1f590..041e1f590 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/lang-css.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/lang-css.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/prettify.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/prettify.js
index eef5ad7e6..eef5ad7e6 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/prettify.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/scripts/prettify/prettify.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/jsdoc-default.css b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/jsdoc-default.css
index ea49f6077..ea49f6077 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/jsdoc-default.css
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/jsdoc-default.css
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-jsdoc.css b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-jsdoc.css
index 5a2526e37..5a2526e37 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-jsdoc.css
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-jsdoc.css
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-tomorrow.css b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-tomorrow.css
index aa2908c25..aa2908c25 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-tomorrow.css
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/prettify-tomorrow.css
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/searchstyle.css b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/searchstyle.css
index a3d51d436..a3d51d436 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/searchstyle.css
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/static/styles/searchstyle.css
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/container.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/container.tmpl
index cd3e5a65d..cd3e5a65d 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/container.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/container.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/details.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/details.tmpl
index 941a03de1..941a03de1 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/details.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/details.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/example.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/example.tmpl
index e87caa5b7..e87caa5b7 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/example.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/example.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/examples.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/examples.tmpl
index 23384c9d9..23384c9d9 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/examples.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/examples.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/exceptions.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/exceptions.tmpl
index 660afa21b..660afa21b 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/exceptions.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/exceptions.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/fires.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/fires.tmpl
index 21cfd229c..21cfd229c 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/fires.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/fires.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/layout.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/layout.tmpl
index ec1124581..ec1124581 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/layout.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/layout.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/mainpage.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/mainpage.tmpl
index 64e9e5943..64e9e5943 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/mainpage.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/mainpage.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/members.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/members.tmpl
index c76f772cc..c76f772cc 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/members.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/members.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/method.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/method.tmpl
index 1eb9032d2..1eb9032d2 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/method.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/method.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/params.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/params.tmpl
index ca81f8f8f..ca81f8f8f 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/params.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/params.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl
index dfa6ee0e9..dfa6ee0e9 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/returns.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/returns.tmpl
index 32e059ed4..32e059ed4 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/returns.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/returns.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/source.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/source.tmpl
index e1092ef29..e1092ef29 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/source.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/source.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/tutorial.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/tutorial.tmpl
index b0c79c1dd..b0c79c1dd 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/tutorial.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/tutorial.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/type.tmpl b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/type.tmpl
index db8194d6d..db8194d6d 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/type.tmpl
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/type.tmpl
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-jquery-ui.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-jquery-ui.js
index bd1efb8c5..bd1efb8c5 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-jquery-ui.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-jquery-ui.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-search.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-search.js
index fce9732a7..fce9732a7 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/oktavia-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/searchstyle.css b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/searchstyle.css
index a3d51d436..a3d51d436 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/searchstyle.css
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_static/searchstyle.css
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/layout.html b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/layout.html
index bb36ee1f4..bb36ee1f4 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/layout.html
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/layout.html
diff --git a/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/searchbox.html b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/searchbox.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/sphinx/_templates/searchbox.html
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-jquery-ui.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-jquery-ui.js
index bd1efb8c5..bd1efb8c5 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-jquery-ui.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-jquery-ui.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-search.js b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-search.js
index fce9732a7..fce9732a7 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-search.js
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/oktavia-search.js
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/searchstyle.css b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/searchstyle.css
index a3d51d436..a3d51d436 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/searchstyle.css
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_static/searchstyle.css
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_templates/oktaviasearch.html b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_templates/oktaviasearch.html
index 30bf86267..30bf86267 100644
--- a/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_templates/oktaviasearch.html
+++ b/src/web/server/h2o/libh2o/misc/oktavia/templates/tinkerer/_templates/oktaviasearch.html
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-binary-util.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-binary-util.jsx
index 25882e340..25882e340 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-binary-util.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-binary-util.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-bit-vector.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-bit-vector.jsx
index 18f80b645..18f80b645 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-bit-vector.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-bit-vector.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-burrows-wheeler-transform.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-burrows-wheeler-transform.jsx
index 6a033e589..6a033e589 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-burrows-wheeler-transform.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-burrows-wheeler-transform.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx
index 80035a61f..80035a61f 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-getopt.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-getopt.jsx
index 63731b924..63731b924 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-getopt.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-getopt.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-block.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-block.jsx
index f5f562c7d..f5f562c7d 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-block.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-block.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-section.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-section.jsx
index 0c37afeaa..0c37afeaa 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-section.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-section.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-splitter.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-splitter.jsx
index 859eb9112..859eb9112 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-splitter.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-splitter.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-stemming.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-stemming.jsx
index d8d1d74eb..d8d1d74eb 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-stemming.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-stemming.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-table.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-table.jsx
index ee2aa0975..ee2aa0975 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-table.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-oktavia-table.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-query-parser.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-query-parser.jsx
index c04ac46e4..c04ac46e4 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-query-parser.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-query-parser.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-query-string-parser.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-query-string-parser.jsx
index 94ec7c193..94ec7c193 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-query-string-parser.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-query-string-parser.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-sax.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-sax.jsx
index 8310bf0a7..8310bf0a7 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-sax.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-sax.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-search-result.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-search-result.jsx
index 81bcc05d0..81bcc05d0 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-search-result.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-search-result.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-wavelet-matrix.jsx b/src/web/server/h2o/libh2o/misc/oktavia/test/test-wavelet-matrix.jsx
index 049d18d89..049d18d89 100644
--- a/web/server/h2o/libh2o/misc/oktavia/test/test-wavelet-matrix.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/test/test-wavelet-matrix.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_literal.txt b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_literal.txt
index 7415d7468..7415d7468 100644
--- a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_literal.txt
+++ b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_literal.txt
diff --git a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt
index 7b79f9324..7b79f9324 100644
--- a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt
+++ b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt
diff --git a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_primitive_type.txt b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_primitive_type.txt
index c55778dc1..c55778dc1 100644
--- a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_primitive_type.txt
+++ b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_primitive_type.txt
diff --git a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_tutorial.txt b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_tutorial.txt
index 538238a39..538238a39 100644
--- a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_tutorial.txt
+++ b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_tutorial.txt
diff --git a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt
index ec138bb32..ec138bb32 100644
--- a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt
+++ b/src/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/httpstatus.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/httpstatus.jsx
index a4d7451e5..a4d7451e5 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/httpstatus.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/httpstatus.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-mkindex.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-mkindex.jsx
index f2593bc9e..f2593bc9e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-mkindex.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-mkindex.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-search.jsx
index 719c71b86..719c71b86 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/oktavia-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx
index f9b867511..f9b867511 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-danish-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-danish-search.jsx
index 98dba01dd..98dba01dd 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-danish-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-danish-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-dutch-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-dutch-search.jsx
index 117f2cce4..117f2cce4 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-dutch-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-dutch-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-english-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-english-search.jsx
index d30ad2ccf..d30ad2ccf 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-english-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-english-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-finnish-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-finnish-search.jsx
index 640063958..640063958 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-finnish-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-finnish-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-french-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-french-search.jsx
index 777f5e2a3..777f5e2a3 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-french-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-french-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-german-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-german-search.jsx
index 588318704..588318704 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-german-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-german-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-hungarian-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-hungarian-search.jsx
index a14fe3450..a14fe3450 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-hungarian-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-hungarian-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-italian-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-italian-search.jsx
index 30769d1a6..30769d1a6 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-italian-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-italian-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-norwegian-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-norwegian-search.jsx
index 180e6b045..180e6b045 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-norwegian-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-norwegian-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-porter-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-porter-search.jsx
index ba1de086e..ba1de086e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-porter-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-porter-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-portuguese-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-portuguese-search.jsx
index 89ed1a0f8..89ed1a0f8 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-portuguese-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-portuguese-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-romanian-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-romanian-search.jsx
index ef8b47fca..ef8b47fca 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-romanian-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-romanian-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-russian-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-russian-search.jsx
index 2a572d712..2a572d712 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-russian-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-russian-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-search.jsx
index 22dc3f779..22dc3f779 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-spanish-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-spanish-search.jsx
index 3ad9b8d1e..3ad9b8d1e 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-spanish-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-spanish-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-swedish-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-swedish-search.jsx
index 9b900a484..9b900a484 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-swedish-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-swedish-search.jsx
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-turkish-search.jsx b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-turkish-search.jsx
index 24d040584..24d040584 100644
--- a/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-turkish-search.jsx
+++ b/src/web/server/h2o/libh2o/misc/oktavia/tool/web/oktavia-turkish-search.jsx
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/.gitignore b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/.gitignore
index b76c8adfc..b76c8adfc 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/.gitignore
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/.gitignore
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/.travis.yml b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/.travis.yml
index f3168e947..f3168e947 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/.travis.yml
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/.travis.yml
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/Build.PL b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/Build.PL
index ffc64f5af..ffc64f5af 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/Build.PL
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/Build.PL
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/Changes b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/Changes
index 1232b8649..1232b8649 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/Changes
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/Changes
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/LICENSE b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/LICENSE
index a4d95a593..a4d95a593 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/LICENSE
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/LICENSE
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/META.json b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/META.json
index 64f85645b..64f85645b 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/META.json
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/META.json
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/README.md b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/README.md
index c4edcc0c3..c4edcc0c3 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/README.md
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/README.md
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/builder/MyBuilder.pm b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/builder/MyBuilder.pm
index 8c8982d45..8c8982d45 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/builder/MyBuilder.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/builder/MyBuilder.pm
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/cpanfile b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/cpanfile
index de18fb959..de18fb959 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/cpanfile
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/cpanfile
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter.pm b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter.pm
index f33d232d9..f33d232d9 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter.pm
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm
index f25b49c17..f25b49c17 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/minil.toml b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/minil.toml
index 4dac44941..4dac44941 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/minil.toml
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/minil.toml
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/script/start_server b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/script/start_server
index 20dd9fab7..20dd9fab7 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/script/start_server
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/script/start_server
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/00-base.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/00-base.t
index 4e4dbb0a9..4e4dbb0a9 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/00-base.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/00-base.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter-echod.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter-echod.pl
index f35d200d9..f35d200d9 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter-echod.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter-echod.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t
index f4b0d4162..f4b0d4162 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl
index 6913bc8eb..6913bc8eb 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail.t
index 0985534b2..0985534b2 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix-echod.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix-echod.pl
index a54677475..a54677475 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix-echod.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix-echod.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix.t
index 965de6b68..965de6b68 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/03-starter-unix.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/04-starter-dir.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/04-starter-dir.t
index 5f1b3968a..5f1b3968a 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/04-starter-dir.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/04-starter-dir.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay-echod.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay-echod.pl
index 5b48ca559..5b48ca559 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay-echod.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay-echod.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay.t
index 19856af52..19856af52 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/05-killolddelay.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart-echod.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart-echod.pl
index 2d71a654f..2d71a654f 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart-echod.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart-echod.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart.t
index 1e1f86582..1e1f86582 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/06-autorestart.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir-print.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir-print.pl
index 22cb01af0..22cb01af0 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir-print.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir-print.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir.t
index f10fbade4..f10fbade4 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/07-envdir.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/08-wait3.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/08-wait3.t
index e13b6e8b3..e13b6e8b3 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/08-wait3.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/08-wait3.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/09-guard.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/09-guard.t
index a51903a4e..a51903a4e 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/09-guard.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/09-guard.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr-server.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr-server.pl
index 279c59673..279c59673 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr-server.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr-server.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr.t
index 16a76768c..16a76768c 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/10-bindaddr.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd-server.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd-server.pl
index f05282ee1..f05282ee1 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd-server.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd-server.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t
index 7e3b820be..7e3b820be 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop-server.pl b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop-server.pl
index ace7e5db4..ace7e5db4 100755
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop-server.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop-server.pl
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop.t
index 6d40c25f5..6d40c25f5 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/12-stop.t
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/13-unix-daemonize.t b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/13-unix-daemonize.t
index ab401dc30..ab401dc30 100644
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/13-unix-daemonize.t
+++ b/src/web/server/h2o/libh2o/misc/p5-Server-Starter/t/13-unix-daemonize.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/Changes b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/Changes
index e8a0c6a05..e8a0c6a05 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/Changes
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/Changes
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/MANIFEST.SKIP b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/MANIFEST.SKIP
index b6d0b82f6..b6d0b82f6 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/MANIFEST.SKIP
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/MANIFEST.SKIP
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/Makefile.PL b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/Makefile.PL
index 0b1d1f481..0b1d1f481 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/Makefile.PL
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/Makefile.PL
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/README b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/README
index 4eea9d556..4eea9d556 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/README
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/README
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/runfcgi.pl b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/runfcgi.pl
index 7ee01a9f4..7ee01a9f4 100755
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/runfcgi.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/runfcgi.pl
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/server.pl b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/server.pl
index 74a8db7e1..74a8db7e1 100755
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/server.pl
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/eg/server.pl
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pm b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pm
index 4126b2198..4126b2198 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pm
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pod b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pod
index 65725b958..65725b958 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pod
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI.pod
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pm b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pm
index 1e86dbf1b..1e86dbf1b 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pm
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod
index d0ca04c1f..d0ca04c1f 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pm b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pm
index 15583fb54..15583fb54 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pm
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pod b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pod
index 84a9f0973..84a9f0973 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pod
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/IO.pod
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pm b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pm
index 0c4210e9d..0c4210e9d 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pm
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pod b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pod
index 64f6a7e66..64f6a7e66 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pod
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol.pod
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol/PP.pm b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol/PP.pm
index bfba2579f..bfba2579f 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol/PP.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Protocol/PP.pm
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/000_load.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/000_load.t
index 1436a558b..1436a558b 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/000_load.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/000_load.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/001_header.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/001_header.t
index 8e1476b5e..8e1476b5e 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/001_header.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/001_header.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/005_record_length.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/005_record_length.t
index 1d2381980..1d2381980 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/005_record_length.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/005_record_length.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/010_build_record.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/010_build_record.t
index 9f321261c..9f321261c 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/010_build_record.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/010_build_record.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/015_build_stream.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/015_build_stream.t
index 233f225fd..233f225fd 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/015_build_stream.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/015_build_stream.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/020_begin_request_body.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/020_begin_request_body.t
index 031a7d173..031a7d173 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/020_begin_request_body.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/020_begin_request_body.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/025_begin_request_record.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/025_begin_request_record.t
index 50f944321..50f944321 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/025_begin_request_record.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/025_begin_request_record.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/027_begin_request.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/027_begin_request.t
index e5d6c91f6..e5d6c91f6 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/027_begin_request.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/027_begin_request.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/030_end_request_body.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/030_end_request_body.t
index 783408d4a..783408d4a 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/030_end_request_body.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/030_end_request_body.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/035_end_request_record.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/035_end_request_record.t
index f76dbd1f2..f76dbd1f2 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/035_end_request_record.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/035_end_request_record.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/037_end_request.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/037_end_request.t
index c7c421c54..c7c421c54 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/037_end_request.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/037_end_request.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/040_unknown_type_body.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/040_unknown_type_body.t
index 27e0d3791..27e0d3791 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/040_unknown_type_body.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/040_unknown_type_body.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/045_unknown_type_record.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/045_unknown_type_record.t
index 8ee053ab2..8ee053ab2 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/045_unknown_type_record.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/045_unknown_type_record.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/050_parse_record.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/050_parse_record.t
index 34c5fb923..34c5fb923 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/050_parse_record.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/050_parse_record.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/055_parse_record_body.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/055_parse_record_body.t
index 35f3793c6..35f3793c6 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/055_parse_record_body.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/055_parse_record_body.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/060_params.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/060_params.t
index 92d9a64c7..92d9a64c7 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/060_params.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/060_params.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/065_record_type.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/065_record_type.t
index 5836a05bc..5836a05bc 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/065_record_type.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/065_record_type.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/070_names.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/070_names.t
index 86af502d6..86af502d6 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/070_names.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/070_names.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/080_dump_record.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/080_dump_record.t
index 0e0bb5dee..0e0bb5dee 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/080_dump_record.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/080_dump_record.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/085_dump_record_body.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/085_dump_record_body.t
index af00d7a33..af00d7a33 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/085_dump_record_body.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/020_protocol/085_dump_record_body.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/lib/myconfig.pm b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/lib/myconfig.pm
index 1d4f63482..1d4f63482 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/lib/myconfig.pm
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/t/lib/myconfig.pm
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/000_pod.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/000_pod.t
index 95dd65ae5..95dd65ae5 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/000_pod.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/000_pod.t
diff --git a/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/010_pod_coverage.t b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/010_pod_coverage.t
index bd4e3d225..bd4e3d225 100644
--- a/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/010_pod_coverage.t
+++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/xt/010_pod_coverage.t
diff --git a/web/server/h2o/libh2o/misc/picotemplate-conf.pl b/src/web/server/h2o/libh2o/misc/picotemplate-conf.pl
index 95eaa7a87..95eaa7a87 100644
--- a/web/server/h2o/libh2o/misc/picotemplate-conf.pl
+++ b/src/web/server/h2o/libh2o/misc/picotemplate-conf.pl
diff --git a/web/server/h2o/libh2o/misc/picotemplate/README.mkdn b/src/web/server/h2o/libh2o/misc/picotemplate/README.mkdn
index 266f4bfa5..266f4bfa5 100644
--- a/web/server/h2o/libh2o/misc/picotemplate/README.mkdn
+++ b/src/web/server/h2o/libh2o/misc/picotemplate/README.mkdn
diff --git a/web/server/h2o/libh2o/misc/picotemplate/picotemplate.pl b/src/web/server/h2o/libh2o/misc/picotemplate/picotemplate.pl
index c49bf858f..c49bf858f 100755
--- a/web/server/h2o/libh2o/misc/picotemplate/picotemplate.pl
+++ b/src/web/server/h2o/libh2o/misc/picotemplate/picotemplate.pl
diff --git a/web/server/h2o/libh2o/misc/regen.mk b/src/web/server/h2o/libh2o/misc/regen.mk
index 46417e7cf..46417e7cf 100755
--- a/web/server/h2o/libh2o/misc/regen.mk
+++ b/src/web/server/h2o/libh2o/misc/regen.mk
diff --git a/web/server/h2o/libh2o/misc/test-ca/README.md b/src/web/server/h2o/libh2o/misc/test-ca/README.md
index e39680b9c..e39680b9c 100644
--- a/web/server/h2o/libh2o/misc/test-ca/README.md
+++ b/src/web/server/h2o/libh2o/misc/test-ca/README.md
diff --git a/web/server/h2o/libh2o/misc/test-ca/ca.crt b/src/web/server/h2o/libh2o/misc/test-ca/ca.crt
index c08a1bcc5..c08a1bcc5 100644
--- a/web/server/h2o/libh2o/misc/test-ca/ca.crt
+++ b/src/web/server/h2o/libh2o/misc/test-ca/ca.crt
diff --git a/web/server/h2o/libh2o/misc/test-ca/ca.key b/src/web/server/h2o/libh2o/misc/test-ca/ca.key
index 0e482de68..0e482de68 100644
--- a/web/server/h2o/libh2o/misc/test-ca/ca.key
+++ b/src/web/server/h2o/libh2o/misc/test-ca/ca.key
diff --git a/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt
index 0f465bc0b..0f465bc0b 100644
--- a/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt
+++ b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt
diff --git a/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt.attr b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt.attr
index 8f7e63a34..8f7e63a34 100644
--- a/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt.attr
+++ b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/index.txt.attr
diff --git a/src/web/server/h2o/libh2o/misc/test-ca/demoCA/newcerts/.gitkeep b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/newcerts/.gitkeep
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/newcerts/.gitkeep
diff --git a/web/server/h2o/libh2o/misc/test-ca/demoCA/serial b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/serial
index 75016ea36..75016ea36 100644
--- a/web/server/h2o/libh2o/misc/test-ca/demoCA/serial
+++ b/src/web/server/h2o/libh2o/misc/test-ca/demoCA/serial
diff --git a/web/server/h2o/libh2o/misc/tokens.pl b/src/web/server/h2o/libh2o/misc/tokens.pl
index 1fcf173fa..1fcf173fa 100755
--- a/web/server/h2o/libh2o/misc/tokens.pl
+++ b/src/web/server/h2o/libh2o/misc/tokens.pl
diff --git a/web/server/h2o/libh2o/share/h2o/annotate-backtrace-symbols b/src/web/server/h2o/libh2o/share/h2o/annotate-backtrace-symbols
index 6d7c8a2d6..6d7c8a2d6 100755
--- a/web/server/h2o/libh2o/share/h2o/annotate-backtrace-symbols
+++ b/src/web/server/h2o/libh2o/share/h2o/annotate-backtrace-symbols
diff --git a/web/server/h2o/libh2o/share/h2o/ca-bundle.crt b/src/web/server/h2o/libh2o/share/h2o/ca-bundle.crt
index eb13bfe23..eb13bfe23 100644
--- a/web/server/h2o/libh2o/share/h2o/ca-bundle.crt
+++ b/src/web/server/h2o/libh2o/share/h2o/ca-bundle.crt
diff --git a/web/server/h2o/libh2o/share/h2o/fastcgi-cgi b/src/web/server/h2o/libh2o/share/h2o/fastcgi-cgi
index baf59d40b..baf59d40b 100755
--- a/web/server/h2o/libh2o/share/h2o/fastcgi-cgi
+++ b/src/web/server/h2o/libh2o/share/h2o/fastcgi-cgi
diff --git a/web/server/h2o/libh2o/share/h2o/fetch-ocsp-response b/src/web/server/h2o/libh2o/share/h2o/fetch-ocsp-response
index f74b738bd..f74b738bd 100755
--- a/web/server/h2o/libh2o/share/h2o/fetch-ocsp-response
+++ b/src/web/server/h2o/libh2o/share/h2o/fetch-ocsp-response
diff --git a/web/server/h2o/libh2o/share/h2o/kill-on-close b/src/web/server/h2o/libh2o/share/h2o/kill-on-close
index 4890abdf9..4890abdf9 100755
--- a/web/server/h2o/libh2o/share/h2o/kill-on-close
+++ b/src/web/server/h2o/libh2o/share/h2o/kill-on-close
diff --git a/web/server/h2o/libh2o/share/h2o/mruby/acl.rb b/src/web/server/h2o/libh2o/share/h2o/mruby/acl.rb
index 7a7ba53ef..7a7ba53ef 100644
--- a/web/server/h2o/libh2o/share/h2o/mruby/acl.rb
+++ b/src/web/server/h2o/libh2o/share/h2o/mruby/acl.rb
diff --git a/web/server/h2o/libh2o/share/h2o/mruby/bootstrap.rb b/src/web/server/h2o/libh2o/share/h2o/mruby/bootstrap.rb
index df8cbb9a7..df8cbb9a7 100644
--- a/web/server/h2o/libh2o/share/h2o/mruby/bootstrap.rb
+++ b/src/web/server/h2o/libh2o/share/h2o/mruby/bootstrap.rb
diff --git a/web/server/h2o/libh2o/share/h2o/mruby/dos_detector.rb b/src/web/server/h2o/libh2o/share/h2o/mruby/dos_detector.rb
index 15de2bc78..15de2bc78 100644
--- a/web/server/h2o/libh2o/share/h2o/mruby/dos_detector.rb
+++ b/src/web/server/h2o/libh2o/share/h2o/mruby/dos_detector.rb
diff --git a/web/server/h2o/libh2o/share/h2o/mruby/htpasswd.rb b/src/web/server/h2o/libh2o/share/h2o/mruby/htpasswd.rb
index d8f65fe4d..d8f65fe4d 100644
--- a/web/server/h2o/libh2o/share/h2o/mruby/htpasswd.rb
+++ b/src/web/server/h2o/libh2o/share/h2o/mruby/htpasswd.rb
diff --git a/web/server/h2o/libh2o/share/h2o/mruby/lru_cache.rb b/src/web/server/h2o/libh2o/share/h2o/mruby/lru_cache.rb
index e92b838d4..e92b838d4 100644
--- a/web/server/h2o/libh2o/share/h2o/mruby/lru_cache.rb
+++ b/src/web/server/h2o/libh2o/share/h2o/mruby/lru_cache.rb
diff --git a/web/server/h2o/libh2o/share/h2o/mruby/preloads.rb b/src/web/server/h2o/libh2o/share/h2o/mruby/preloads.rb
index 5a62d58b1..5a62d58b1 100644
--- a/web/server/h2o/libh2o/share/h2o/mruby/preloads.rb
+++ b/src/web/server/h2o/libh2o/share/h2o/mruby/preloads.rb
diff --git a/web/server/h2o/libh2o/share/h2o/mruby/trie_addr.rb b/src/web/server/h2o/libh2o/share/h2o/mruby/trie_addr.rb
index 727f2c7ad..727f2c7ad 100644
--- a/web/server/h2o/libh2o/share/h2o/mruby/trie_addr.rb
+++ b/src/web/server/h2o/libh2o/share/h2o/mruby/trie_addr.rb
diff --git a/web/server/h2o/libh2o/share/h2o/setuidgid b/src/web/server/h2o/libh2o/share/h2o/setuidgid
index c8e9a30ad..c8e9a30ad 100755
--- a/web/server/h2o/libh2o/share/h2o/setuidgid
+++ b/src/web/server/h2o/libh2o/share/h2o/setuidgid
diff --git a/web/server/h2o/libh2o/share/h2o/start_server b/src/web/server/h2o/libh2o/share/h2o/start_server
index b1e38099e..b1e38099e 100755
--- a/web/server/h2o/libh2o/share/h2o/start_server
+++ b/src/web/server/h2o/libh2o/share/h2o/start_server
diff --git a/web/server/h2o/libh2o/share/h2o/status/index.html b/src/web/server/h2o/libh2o/share/h2o/status/index.html
index e82b78dd0..e82b78dd0 100644
--- a/web/server/h2o/libh2o/share/h2o/status/index.html
+++ b/src/web/server/h2o/libh2o/share/h2o/status/index.html
diff --git a/web/server/h2o/libh2o/src/main.c b/src/web/server/h2o/libh2o/src/main.c
index af0867f29..af0867f29 100644
--- a/web/server/h2o/libh2o/src/main.c
+++ b/src/web/server/h2o/libh2o/src/main.c
diff --git a/web/server/h2o/libh2o/src/setuidgid.c b/src/web/server/h2o/libh2o/src/setuidgid.c
index f663cff18..f663cff18 100644
--- a/web/server/h2o/libh2o/src/setuidgid.c
+++ b/src/web/server/h2o/libh2o/src/setuidgid.c
diff --git a/web/server/h2o/libh2o/src/ssl.c b/src/web/server/h2o/libh2o/src/ssl.c
index 7ac6c4c96..7ac6c4c96 100644
--- a/web/server/h2o/libh2o/src/ssl.c
+++ b/src/web/server/h2o/libh2o/src/ssl.c
diff --git a/web/server/h2o/libh2o/src/standalone.h b/src/web/server/h2o/libh2o/src/standalone.h
index 567031f4d..567031f4d 100644
--- a/web/server/h2o/libh2o/src/standalone.h
+++ b/src/web/server/h2o/libh2o/src/standalone.h
diff --git a/web/server/h2o/libh2o/srcdoc/benchmarks.mt b/src/web/server/h2o/libh2o/srcdoc/benchmarks.mt
index a0096cc4b..a0096cc4b 100644
--- a/web/server/h2o/libh2o/srcdoc/benchmarks.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/benchmarks.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure.mt b/src/web/server/h2o/libh2o/srcdoc/configure.mt
index 5c8799f8a..5c8799f8a 100644
--- a/web/server/h2o/libh2o/srcdoc/configure.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/access_control.mt b/src/web/server/h2o/libh2o/srcdoc/configure/access_control.mt
index 4a613ac62..4a613ac62 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/access_control.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/access_control.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/access_log_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/access_log_directives.mt
index 52a585bab..52a585bab 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/access_log_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/access_log_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/base_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/base_directives.mt
index 1f6ffe3ef..1f6ffe3ef 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/base_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/base_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/basic_auth.mt b/src/web/server/h2o/libh2o/srcdoc/configure/basic_auth.mt
index 918b4053f..918b4053f 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/basic_auth.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/basic_auth.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/cgi.mt b/src/web/server/h2o/libh2o/srcdoc/configure/cgi.mt
index 09da7e933..09da7e933 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/cgi.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/cgi.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/command_options.mt b/src/web/server/h2o/libh2o/srcdoc/configure/command_options.mt
index b9ea030e1..b9ea030e1 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/command_options.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/command_options.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/compress_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/compress_directives.mt
index 57f7a43e0..57f7a43e0 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/compress_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/compress_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/dos_detection.mt b/src/web/server/h2o/libh2o/srcdoc/configure/dos_detection.mt
index 9cba1bf79..9cba1bf79 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/dos_detection.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/dos_detection.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/errordoc_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/errordoc_directives.mt
index 94137ae66..94137ae66 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/errordoc_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/errordoc_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/expires_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/expires_directives.mt
index a3b22f853..a3b22f853 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/expires_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/expires_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/fastcgi_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/fastcgi_directives.mt
index 2e2870884..2e2870884 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/fastcgi_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/fastcgi_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/file_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/file_directives.mt
index b56de0659..b56de0659 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/file_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/file_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/headers_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/headers_directives.mt
index 6c2af078b..6c2af078b 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/headers_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/headers_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/http1_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/http1_directives.mt
index 77894acc6..77894acc6 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/http1_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/http1_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/http2_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/http2_directives.mt
index 7c2fc26e6..7c2fc26e6 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/http2_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/http2_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/mruby.mt b/src/web/server/h2o/libh2o/srcdoc/configure/mruby.mt
index 99affa81d..99affa81d 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/mruby.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/mruby.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/mruby_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/mruby_directives.mt
index e1d0e2fc6..e1d0e2fc6 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/mruby_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/mruby_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/proxy_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/proxy_directives.mt
index bea7e00b8..bea7e00b8 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/proxy_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/proxy_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/quick_start.mt b/src/web/server/h2o/libh2o/srcdoc/configure/quick_start.mt
index 3ce08697e..3ce08697e 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/quick_start.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/quick_start.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/redirect_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/redirect_directives.mt
index 8fbdd9578..8fbdd9578 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/redirect_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/redirect_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/reproxy_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/reproxy_directives.mt
index 3288a65e4..3288a65e4 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/reproxy_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/reproxy_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/status_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/status_directives.mt
index a78689fbd..a78689fbd 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/status_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/status_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/syntax_and_structure.mt b/src/web/server/h2o/libh2o/srcdoc/configure/syntax_and_structure.mt
index f8f8cd4fc..f8f8cd4fc 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/syntax_and_structure.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/syntax_and_structure.mt
diff --git a/web/server/h2o/libh2o/srcdoc/configure/throttle_response_directives.mt b/src/web/server/h2o/libh2o/srcdoc/configure/throttle_response_directives.mt
index 415c8afae..415c8afae 100644
--- a/web/server/h2o/libh2o/srcdoc/configure/throttle_response_directives.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/configure/throttle_response_directives.mt
diff --git a/web/server/h2o/libh2o/srcdoc/faq.mt b/src/web/server/h2o/libh2o/srcdoc/faq.mt
index 72899e818..72899e818 100644
--- a/web/server/h2o/libh2o/srcdoc/faq.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/faq.mt
diff --git a/web/server/h2o/libh2o/srcdoc/index.mt b/src/web/server/h2o/libh2o/srcdoc/index.mt
index 1d6f93d92..1d6f93d92 100644
--- a/web/server/h2o/libh2o/srcdoc/index.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/index.mt
diff --git a/web/server/h2o/libh2o/srcdoc/install.mt b/src/web/server/h2o/libh2o/srcdoc/install.mt
index e2a371349..e2a371349 100644
--- a/web/server/h2o/libh2o/srcdoc/install.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/install.mt
diff --git a/web/server/h2o/libh2o/srcdoc/snippets/directive.mt b/src/web/server/h2o/libh2o/srcdoc/snippets/directive.mt
index 4b880f311..4b880f311 100644
--- a/web/server/h2o/libh2o/srcdoc/snippets/directive.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/snippets/directive.mt
diff --git a/web/server/h2o/libh2o/srcdoc/snippets/mruby_method.mt b/src/web/server/h2o/libh2o/srcdoc/snippets/mruby_method.mt
index c5005899a..c5005899a 100644
--- a/web/server/h2o/libh2o/srcdoc/snippets/mruby_method.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/snippets/mruby_method.mt
diff --git a/web/server/h2o/libh2o/srcdoc/snippets/wrapper.mt b/src/web/server/h2o/libh2o/srcdoc/snippets/wrapper.mt
index 86f551d58..86f551d58 100644
--- a/web/server/h2o/libh2o/srcdoc/snippets/wrapper.mt
+++ b/src/web/server/h2o/libh2o/srcdoc/snippets/wrapper.mt
diff --git a/web/server/h2o/libh2o/t/00unit.evloop.t b/src/web/server/h2o/libh2o/t/00unit.evloop.t
index e87189e1e..e87189e1e 100644
--- a/web/server/h2o/libh2o/t/00unit.evloop.t
+++ b/src/web/server/h2o/libh2o/t/00unit.evloop.t
diff --git a/web/server/h2o/libh2o/t/00unit.libuv.t b/src/web/server/h2o/libh2o/t/00unit.libuv.t
index ffedabe8c..ffedabe8c 100644
--- a/web/server/h2o/libh2o/t/00unit.libuv.t
+++ b/src/web/server/h2o/libh2o/t/00unit.libuv.t
diff --git a/web/server/h2o/libh2o/t/00unit.mruby.t b/src/web/server/h2o/libh2o/t/00unit.mruby.t
index b56454384..b56454384 100644
--- a/web/server/h2o/libh2o/t/00unit.mruby.t
+++ b/src/web/server/h2o/libh2o/t/00unit.mruby.t
diff --git a/web/server/h2o/libh2o/t/00unit.mruby/acl.rb b/src/web/server/h2o/libh2o/t/00unit.mruby/acl.rb
index 771047dad..771047dad 100644
--- a/web/server/h2o/libh2o/t/00unit.mruby/acl.rb
+++ b/src/web/server/h2o/libh2o/t/00unit.mruby/acl.rb
diff --git a/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb b/src/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb
index 9b6936d3b..9b6936d3b 100644
--- a/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb
+++ b/src/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb
diff --git a/web/server/h2o/libh2o/t/00unit/assets/1000.txt b/src/web/server/h2o/libh2o/t/00unit/assets/1000.txt
index 79fb52d24..79fb52d24 100644
--- a/web/server/h2o/libh2o/t/00unit/assets/1000.txt
+++ b/src/web/server/h2o/libh2o/t/00unit/assets/1000.txt
diff --git a/web/server/h2o/libh2o/t/00unit/assets/1000000.txt b/src/web/server/h2o/libh2o/t/00unit/assets/1000000.txt
index 224235de4..224235de4 100644
--- a/web/server/h2o/libh2o/t/00unit/assets/1000000.txt
+++ b/src/web/server/h2o/libh2o/t/00unit/assets/1000000.txt
diff --git a/web/server/h2o/libh2o/t/00unit/assets/index.html b/src/web/server/h2o/libh2o/t/00unit/assets/index.html
index 1178c0ef2..1178c0ef2 100644
--- a/web/server/h2o/libh2o/t/00unit/assets/index.html
+++ b/src/web/server/h2o/libh2o/t/00unit/assets/index.html
diff --git a/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt b/src/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt
index 77ff4944b..77ff4944b 100644
--- a/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt
+++ b/src/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt
diff --git a/src/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep b/src/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep
diff --git a/web/server/h2o/libh2o/t/00unit/assets/read_command.pl b/src/web/server/h2o/libh2o/t/00unit/assets/read_command.pl
index b24f1bc87..b24f1bc87 100755
--- a/web/server/h2o/libh2o/t/00unit/assets/read_command.pl
+++ b/src/web/server/h2o/libh2o/t/00unit/assets/read_command.pl
diff --git a/web/server/h2o/libh2o/t/00unit/issues/293.c b/src/web/server/h2o/libh2o/t/00unit/issues/293.c
index bce57589b..bce57589b 100644
--- a/web/server/h2o/libh2o/t/00unit/issues/293.c
+++ b/src/web/server/h2o/libh2o/t/00unit/issues/293.c
diff --git a/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c b/src/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c
index c007c0831..c007c0831 100644
--- a/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c
+++ b/src/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/cache.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/cache.c
index ea18cbc45..ea18cbc45 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/cache.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/cache.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c
index 9d8e5fe7c..9d8e5fe7c 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c
index 683e489a5..683e489a5 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c
index dfbb27156..dfbb27156 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/socket.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/socket.c
index 89aae515c..89aae515c 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/socket.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/socket.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/string.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/string.c
index 464506e3c..464506e3c 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/string.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/string.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/time.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/time.c
index c6fc12ff9..c6fc12ff9 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/time.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/time.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/url.c b/src/web/server/h2o/libh2o/t/00unit/lib/common/url.c
index ce1676001..ce1676001 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/common/url.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/common/url.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/core/headers.c b/src/web/server/h2o/libh2o/t/00unit/lib/core/headers.c
index 97cea41e8..97cea41e8 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/core/headers.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/core/headers.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c b/src/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c
index 6f87db1fd..6f87db1fd 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/core/util.c b/src/web/server/h2o/libh2o/t/00unit/lib/core/util.c
index a3141577d..a3141577d 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/core/util.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/core/util.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c b/src/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c
index 5b430b4c5..5b430b4c5 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c b/src/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c
index f79fbf708..f79fbf708 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/file.c b/src/web/server/h2o/libh2o/t/00unit/lib/handler/file.c
index 6c0e59487..6c0e59487 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/file.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/handler/file.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c b/src/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c
index 9ef8386b9..9ef8386b9 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c b/src/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c
index 51ebdff6c..51ebdff6c 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c b/src/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c
index 90cb987d3..90cb987d3 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c b/src/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c
index 3e55d1732..3e55d1732 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c b/src/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c
index 5b2a43a5e..5b2a43a5e 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c b/src/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c
index 059df82c7..059df82c7 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c b/src/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c
index d643cbf4c..d643cbf4c 100644
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c
+++ b/src/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c
diff --git a/web/server/h2o/libh2o/t/00unit/src/ssl.c b/src/web/server/h2o/libh2o/t/00unit/src/ssl.c
index 10fb27375..10fb27375 100644
--- a/web/server/h2o/libh2o/t/00unit/src/ssl.c
+++ b/src/web/server/h2o/libh2o/t/00unit/src/ssl.c
diff --git a/web/server/h2o/libh2o/t/00unit/test.c b/src/web/server/h2o/libh2o/t/00unit/test.c
index a74859d22..a74859d22 100644
--- a/web/server/h2o/libh2o/t/00unit/test.c
+++ b/src/web/server/h2o/libh2o/t/00unit/test.c
diff --git a/web/server/h2o/libh2o/t/00unit/test.h b/src/web/server/h2o/libh2o/t/00unit/test.h
index b1479eba3..b1479eba3 100644
--- a/web/server/h2o/libh2o/t/00unit/test.h
+++ b/src/web/server/h2o/libh2o/t/00unit/test.h
diff --git a/web/server/h2o/libh2o/t/10http1client.t b/src/web/server/h2o/libh2o/t/10http1client.t
index 7461d146e..7461d146e 100644
--- a/web/server/h2o/libh2o/t/10http1client.t
+++ b/src/web/server/h2o/libh2o/t/10http1client.t
diff --git a/web/server/h2o/libh2o/t/40bad-request.t b/src/web/server/h2o/libh2o/t/40bad-request.t
index 643e1f02d..643e1f02d 100644
--- a/web/server/h2o/libh2o/t/40bad-request.t
+++ b/src/web/server/h2o/libh2o/t/40bad-request.t
diff --git a/web/server/h2o/libh2o/t/40env.t b/src/web/server/h2o/libh2o/t/40env.t
index daaa08665..daaa08665 100644
--- a/web/server/h2o/libh2o/t/40env.t
+++ b/src/web/server/h2o/libh2o/t/40env.t
diff --git a/web/server/h2o/libh2o/t/40max-connections.t b/src/web/server/h2o/libh2o/t/40max-connections.t
index 1fa7cbe6a..1fa7cbe6a 100644
--- a/web/server/h2o/libh2o/t/40max-connections.t
+++ b/src/web/server/h2o/libh2o/t/40max-connections.t
diff --git a/web/server/h2o/libh2o/t/40memcached-session-resumption.t b/src/web/server/h2o/libh2o/t/40memcached-session-resumption.t
index 129affbe0..129affbe0 100644
--- a/web/server/h2o/libh2o/t/40memcached-session-resumption.t
+++ b/src/web/server/h2o/libh2o/t/40memcached-session-resumption.t
diff --git a/web/server/h2o/libh2o/t/40protocol.t b/src/web/server/h2o/libh2o/t/40protocol.t
index e12f01604..e12f01604 100644
--- a/web/server/h2o/libh2o/t/40protocol.t
+++ b/src/web/server/h2o/libh2o/t/40protocol.t
diff --git a/web/server/h2o/libh2o/t/40proxy-protocol.t b/src/web/server/h2o/libh2o/t/40proxy-protocol.t
index b6c5f149a..b6c5f149a 100644
--- a/web/server/h2o/libh2o/t/40proxy-protocol.t
+++ b/src/web/server/h2o/libh2o/t/40proxy-protocol.t
diff --git a/web/server/h2o/libh2o/t/40running-user.t b/src/web/server/h2o/libh2o/t/40running-user.t
index 53ebc1176..53ebc1176 100644
--- a/web/server/h2o/libh2o/t/40running-user.t
+++ b/src/web/server/h2o/libh2o/t/40running-user.t
diff --git a/web/server/h2o/libh2o/t/40server-push-attrs.t b/src/web/server/h2o/libh2o/t/40server-push-attrs.t
index 059152314..059152314 100644
--- a/web/server/h2o/libh2o/t/40server-push-attrs.t
+++ b/src/web/server/h2o/libh2o/t/40server-push-attrs.t
diff --git a/web/server/h2o/libh2o/t/40server-push-multiple.t b/src/web/server/h2o/libh2o/t/40server-push-multiple.t
index b43c9675f..b43c9675f 100644
--- a/web/server/h2o/libh2o/t/40server-push-multiple.t
+++ b/src/web/server/h2o/libh2o/t/40server-push-multiple.t
diff --git a/web/server/h2o/libh2o/t/40server-push.t b/src/web/server/h2o/libh2o/t/40server-push.t
index 519d1be80..519d1be80 100644
--- a/web/server/h2o/libh2o/t/40server-push.t
+++ b/src/web/server/h2o/libh2o/t/40server-push.t
diff --git a/web/server/h2o/libh2o/t/40session-ticket.t b/src/web/server/h2o/libh2o/t/40session-ticket.t
index 2e5d5e4ac..2e5d5e4ac 100644
--- a/web/server/h2o/libh2o/t/40session-ticket.t
+++ b/src/web/server/h2o/libh2o/t/40session-ticket.t
diff --git a/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml b/src/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml
index 0d7157887..0d7157887 100644
--- a/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml
+++ b/src/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml
diff --git a/web/server/h2o/libh2o/t/40ssl-cipher-suite.t b/src/web/server/h2o/libh2o/t/40ssl-cipher-suite.t
index bda718421..bda718421 100644
--- a/web/server/h2o/libh2o/t/40ssl-cipher-suite.t
+++ b/src/web/server/h2o/libh2o/t/40ssl-cipher-suite.t
diff --git a/web/server/h2o/libh2o/t/40unix-socket.t b/src/web/server/h2o/libh2o/t/40unix-socket.t
index 985e76d38..985e76d38 100644
--- a/web/server/h2o/libh2o/t/40unix-socket.t
+++ b/src/web/server/h2o/libh2o/t/40unix-socket.t
diff --git a/web/server/h2o/libh2o/t/40virtual-host.t b/src/web/server/h2o/libh2o/t/40virtual-host.t
index aef1b6566..aef1b6566 100644
--- a/web/server/h2o/libh2o/t/40virtual-host.t
+++ b/src/web/server/h2o/libh2o/t/40virtual-host.t
diff --git a/web/server/h2o/libh2o/t/40websocket.t b/src/web/server/h2o/libh2o/t/40websocket.t
index a321c034a..a321c034a 100644
--- a/web/server/h2o/libh2o/t/40websocket.t
+++ b/src/web/server/h2o/libh2o/t/40websocket.t
diff --git a/web/server/h2o/libh2o/t/50access-log.t b/src/web/server/h2o/libh2o/t/50access-log.t
index fd96217c2..fd96217c2 100644
--- a/web/server/h2o/libh2o/t/50access-log.t
+++ b/src/web/server/h2o/libh2o/t/50access-log.t
diff --git a/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t b/src/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t
index bb0dff806..bb0dff806 100644
--- a/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t
+++ b/src/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t
diff --git a/web/server/h2o/libh2o/t/50compress-hint.t b/src/web/server/h2o/libh2o/t/50compress-hint.t
index 23e52c50f..23e52c50f 100644
--- a/web/server/h2o/libh2o/t/50compress-hint.t
+++ b/src/web/server/h2o/libh2o/t/50compress-hint.t
diff --git a/web/server/h2o/libh2o/t/50compress.t b/src/web/server/h2o/libh2o/t/50compress.t
index b8674f7fa..b8674f7fa 100644
--- a/web/server/h2o/libh2o/t/50compress.t
+++ b/src/web/server/h2o/libh2o/t/50compress.t
diff --git a/web/server/h2o/libh2o/t/50config-tag.t b/src/web/server/h2o/libh2o/t/50config-tag.t
index dd37f996d..dd37f996d 100644
--- a/web/server/h2o/libh2o/t/50config-tag.t
+++ b/src/web/server/h2o/libh2o/t/50config-tag.t
diff --git a/web/server/h2o/libh2o/t/50errordoc.t b/src/web/server/h2o/libh2o/t/50errordoc.t
index 6f847dae4..6f847dae4 100644
--- a/web/server/h2o/libh2o/t/50errordoc.t
+++ b/src/web/server/h2o/libh2o/t/50errordoc.t
diff --git a/web/server/h2o/libh2o/t/50expires.t b/src/web/server/h2o/libh2o/t/50expires.t
index d5c25701b..d5c25701b 100644
--- a/web/server/h2o/libh2o/t/50expires.t
+++ b/src/web/server/h2o/libh2o/t/50expires.t
diff --git a/web/server/h2o/libh2o/t/50fastcgi-cgi.t b/src/web/server/h2o/libh2o/t/50fastcgi-cgi.t
index c9440f391..c9440f391 100644
--- a/web/server/h2o/libh2o/t/50fastcgi-cgi.t
+++ b/src/web/server/h2o/libh2o/t/50fastcgi-cgi.t
diff --git a/web/server/h2o/libh2o/t/50fastcgi-php.t b/src/web/server/h2o/libh2o/t/50fastcgi-php.t
index 58678a936..58678a936 100644
--- a/web/server/h2o/libh2o/t/50fastcgi-php.t
+++ b/src/web/server/h2o/libh2o/t/50fastcgi-php.t
diff --git a/web/server/h2o/libh2o/t/50fastcgi.t b/src/web/server/h2o/libh2o/t/50fastcgi.t
index bdec377b4..bdec377b4 100644
--- a/web/server/h2o/libh2o/t/50fastcgi.t
+++ b/src/web/server/h2o/libh2o/t/50fastcgi.t
diff --git a/web/server/h2o/libh2o/t/50file-config.t b/src/web/server/h2o/libh2o/t/50file-config.t
index aa58e697d..aa58e697d 100644
--- a/web/server/h2o/libh2o/t/50file-config.t
+++ b/src/web/server/h2o/libh2o/t/50file-config.t
diff --git a/web/server/h2o/libh2o/t/50file-custom-handler.t b/src/web/server/h2o/libh2o/t/50file-custom-handler.t
index 1acc9c1e7..1acc9c1e7 100644
--- a/web/server/h2o/libh2o/t/50file-custom-handler.t
+++ b/src/web/server/h2o/libh2o/t/50file-custom-handler.t
diff --git a/web/server/h2o/libh2o/t/50file-file.t b/src/web/server/h2o/libh2o/t/50file-file.t
index 7dd3b9228..7dd3b9228 100644
--- a/web/server/h2o/libh2o/t/50file-file.t
+++ b/src/web/server/h2o/libh2o/t/50file-file.t
diff --git a/web/server/h2o/libh2o/t/50file-range.t b/src/web/server/h2o/libh2o/t/50file-range.t
index 826a2d283..826a2d283 100644
--- a/web/server/h2o/libh2o/t/50file-range.t
+++ b/src/web/server/h2o/libh2o/t/50file-range.t
diff --git a/web/server/h2o/libh2o/t/50file.t b/src/web/server/h2o/libh2o/t/50file.t
index c3474068b..c3474068b 100644
--- a/web/server/h2o/libh2o/t/50file.t
+++ b/src/web/server/h2o/libh2o/t/50file.t
diff --git a/web/server/h2o/libh2o/t/50headers.t b/src/web/server/h2o/libh2o/t/50headers.t
index b930a07c3..b930a07c3 100644
--- a/web/server/h2o/libh2o/t/50headers.t
+++ b/src/web/server/h2o/libh2o/t/50headers.t
diff --git a/web/server/h2o/libh2o/t/50http2_debug_state.t b/src/web/server/h2o/libh2o/t/50http2_debug_state.t
index b78dee413..b78dee413 100644
--- a/web/server/h2o/libh2o/t/50http2_debug_state.t
+++ b/src/web/server/h2o/libh2o/t/50http2_debug_state.t
diff --git a/web/server/h2o/libh2o/t/50internal-redirect.t b/src/web/server/h2o/libh2o/t/50internal-redirect.t
index 01311e517..01311e517 100644
--- a/web/server/h2o/libh2o/t/50internal-redirect.t
+++ b/src/web/server/h2o/libh2o/t/50internal-redirect.t
diff --git a/web/server/h2o/libh2o/t/50mimemap.t b/src/web/server/h2o/libh2o/t/50mimemap.t
index c85febd97..c85febd97 100644
--- a/web/server/h2o/libh2o/t/50mimemap.t
+++ b/src/web/server/h2o/libh2o/t/50mimemap.t
diff --git a/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml b/src/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml
index ce0136250..ce0136250 100644
--- a/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml
+++ b/src/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml
diff --git a/web/server/h2o/libh2o/t/50mruby-acl.t b/src/web/server/h2o/libh2o/t/50mruby-acl.t
index 0c84a6821..0c84a6821 100644
--- a/web/server/h2o/libh2o/t/50mruby-acl.t
+++ b/src/web/server/h2o/libh2o/t/50mruby-acl.t
diff --git a/web/server/h2o/libh2o/t/50mruby-dos-detector.t b/src/web/server/h2o/libh2o/t/50mruby-dos-detector.t
index 6b7cdc561..6b7cdc561 100644
--- a/web/server/h2o/libh2o/t/50mruby-dos-detector.t
+++ b/src/web/server/h2o/libh2o/t/50mruby-dos-detector.t
diff --git a/web/server/h2o/libh2o/t/50mruby-htpasswd.t b/src/web/server/h2o/libh2o/t/50mruby-htpasswd.t
index 31cbf5961..31cbf5961 100644
--- a/web/server/h2o/libh2o/t/50mruby-htpasswd.t
+++ b/src/web/server/h2o/libh2o/t/50mruby-htpasswd.t
diff --git a/web/server/h2o/libh2o/t/50mruby-http-request.t b/src/web/server/h2o/libh2o/t/50mruby-http-request.t
index 991d34ba0..991d34ba0 100644
--- a/web/server/h2o/libh2o/t/50mruby-http-request.t
+++ b/src/web/server/h2o/libh2o/t/50mruby-http-request.t
diff --git a/web/server/h2o/libh2o/t/50mruby.t b/src/web/server/h2o/libh2o/t/50mruby.t
index d93f17e04..d93f17e04 100644
--- a/web/server/h2o/libh2o/t/50mruby.t
+++ b/src/web/server/h2o/libh2o/t/50mruby.t
diff --git a/web/server/h2o/libh2o/t/50mruby/hello.rb b/src/web/server/h2o/libh2o/t/50mruby/hello.rb
index 34f32140c..34f32140c 100644
--- a/web/server/h2o/libh2o/t/50mruby/hello.rb
+++ b/src/web/server/h2o/libh2o/t/50mruby/hello.rb
diff --git a/web/server/h2o/libh2o/t/50mruby/index.html b/src/web/server/h2o/libh2o/t/50mruby/index.html
index d0287e655..d0287e655 100644
--- a/web/server/h2o/libh2o/t/50mruby/index.html
+++ b/src/web/server/h2o/libh2o/t/50mruby/index.html
diff --git a/web/server/h2o/libh2o/t/50post-size-limit.t b/src/web/server/h2o/libh2o/t/50post-size-limit.t
index 970cdd807..970cdd807 100644
--- a/web/server/h2o/libh2o/t/50post-size-limit.t
+++ b/src/web/server/h2o/libh2o/t/50post-size-limit.t
diff --git a/web/server/h2o/libh2o/t/50redirect.t b/src/web/server/h2o/libh2o/t/50redirect.t
index b407063a0..b407063a0 100644
--- a/web/server/h2o/libh2o/t/50redirect.t
+++ b/src/web/server/h2o/libh2o/t/50redirect.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-0.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-0.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-0.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-0.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-1.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-1.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-1.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-1.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-10.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-10.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-10.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-10.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-11.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-11.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-11.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-11.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-12.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-12.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-12.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-12.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-13.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-13.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-13.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-13.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-14.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-14.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-14.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-14.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-15.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-15.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-15.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-15.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-2.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-2.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-2.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-2.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-3.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-3.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-3.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-3.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-4.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-4.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-4.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-4.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-5.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-5.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-5.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-5.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-6.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-6.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-6.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-6.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-7.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-7.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-7.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-7.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-8.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-8.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-8.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-8.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-9.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-9.t
index 28e191ff4..28e191ff4 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-9.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-9.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t
index 0e87a198c..0e87a198c 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-config.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-config.t
index 62b34668a..62b34668a 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-config.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-config.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t
index 4e35cba97..4e35cba97 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t
index 0ae1e61dd..0ae1e61dd 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-https.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-https.t
index 1bb499f97..1bb499f97 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-https.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-https.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t
index da2aee2c2..da2aee2c2 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t
index 0bb1a821e..0bb1a821e 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t
index acf6a7813..acf6a7813 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t b/src/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t
index 3f30a4471..3f30a4471 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt b/src/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt
index ce0136250..ce0136250 100644
--- a/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy/test.pl b/src/web/server/h2o/libh2o/t/50reverse-proxy/test.pl
index 3781cba3c..3781cba3c 100755
--- a/web/server/h2o/libh2o/t/50reverse-proxy/test.pl
+++ b/src/web/server/h2o/libh2o/t/50reverse-proxy/test.pl
diff --git a/web/server/h2o/libh2o/t/50server-starter.t b/src/web/server/h2o/libh2o/t/50server-starter.t
index 9be37d378..9be37d378 100644
--- a/web/server/h2o/libh2o/t/50server-starter.t
+++ b/src/web/server/h2o/libh2o/t/50server-starter.t
diff --git a/web/server/h2o/libh2o/t/50servername.t b/src/web/server/h2o/libh2o/t/50servername.t
index 62b30aade..62b30aade 100644
--- a/web/server/h2o/libh2o/t/50servername.t
+++ b/src/web/server/h2o/libh2o/t/50servername.t
diff --git a/web/server/h2o/libh2o/t/50status.t b/src/web/server/h2o/libh2o/t/50status.t
index 64adf9604..64adf9604 100644
--- a/web/server/h2o/libh2o/t/50status.t
+++ b/src/web/server/h2o/libh2o/t/50status.t
diff --git a/web/server/h2o/libh2o/t/50throttle-response.t b/src/web/server/h2o/libh2o/t/50throttle-response.t
index 4fba4d238..4fba4d238 100644
--- a/web/server/h2o/libh2o/t/50throttle-response.t
+++ b/src/web/server/h2o/libh2o/t/50throttle-response.t
diff --git a/web/server/h2o/libh2o/t/80dup-host-headers.t b/src/web/server/h2o/libh2o/t/80dup-host-headers.t
index eae679b99..eae679b99 100644
--- a/web/server/h2o/libh2o/t/80dup-host-headers.t
+++ b/src/web/server/h2o/libh2o/t/80dup-host-headers.t
diff --git a/web/server/h2o/libh2o/t/80graceful-shutdown.t b/src/web/server/h2o/libh2o/t/80graceful-shutdown.t
index cdc904f94..cdc904f94 100644
--- a/web/server/h2o/libh2o/t/80graceful-shutdown.t
+++ b/src/web/server/h2o/libh2o/t/80graceful-shutdown.t
diff --git a/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t b/src/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t
index 0d277f9fb..0d277f9fb 100644
--- a/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t
+++ b/src/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t
diff --git a/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t b/src/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t
index 9a05a1db4..9a05a1db4 100644
--- a/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t
+++ b/src/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t
diff --git a/web/server/h2o/libh2o/t/80issues579.t b/src/web/server/h2o/libh2o/t/80issues579.t
index 046e188ad..046e188ad 100644
--- a/web/server/h2o/libh2o/t/80issues579.t
+++ b/src/web/server/h2o/libh2o/t/80issues579.t
diff --git a/web/server/h2o/libh2o/t/80issues595.t b/src/web/server/h2o/libh2o/t/80issues595.t
index 721e054ed..721e054ed 100644
--- a/web/server/h2o/libh2o/t/80issues595.t
+++ b/src/web/server/h2o/libh2o/t/80issues595.t
diff --git a/web/server/h2o/libh2o/t/80issues61.t b/src/web/server/h2o/libh2o/t/80issues61.t
index bdcfd6ea5..bdcfd6ea5 100644
--- a/web/server/h2o/libh2o/t/80issues61.t
+++ b/src/web/server/h2o/libh2o/t/80issues61.t
diff --git a/web/server/h2o/libh2o/t/80one-byte-window.t b/src/web/server/h2o/libh2o/t/80one-byte-window.t
index f2d0813cb..f2d0813cb 100644
--- a/web/server/h2o/libh2o/t/80one-byte-window.t
+++ b/src/web/server/h2o/libh2o/t/80one-byte-window.t
diff --git a/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t b/src/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t
index 4afd9f8c7..4afd9f8c7 100644
--- a/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t
+++ b/src/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t
diff --git a/web/server/h2o/libh2o/t/80yaml-merge.t b/src/web/server/h2o/libh2o/t/80yaml-merge.t
index 55cd3911d..55cd3911d 100644
--- a/web/server/h2o/libh2o/t/80yaml-merge.t
+++ b/src/web/server/h2o/libh2o/t/80yaml-merge.t
diff --git a/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t b/src/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t
index 112098dfa..112098dfa 100644
--- a/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t
+++ b/src/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t
diff --git a/web/server/h2o/libh2o/t/90live-sni.t b/src/web/server/h2o/libh2o/t/90live-sni.t
index eb5bb5d8d..eb5bb5d8d 100644
--- a/web/server/h2o/libh2o/t/90live-sni.t
+++ b/src/web/server/h2o/libh2o/t/90live-sni.t
diff --git a/web/server/h2o/libh2o/t/90root-fastcgi-php.t b/src/web/server/h2o/libh2o/t/90root-fastcgi-php.t
index 94010984e..94010984e 100644
--- a/web/server/h2o/libh2o/t/90root-fastcgi-php.t
+++ b/src/web/server/h2o/libh2o/t/90root-fastcgi-php.t
diff --git a/web/server/h2o/libh2o/t/README.md b/src/web/server/h2o/libh2o/t/README.md
index a2f203959..a2f203959 100644
--- a/web/server/h2o/libh2o/t/README.md
+++ b/src/web/server/h2o/libh2o/t/README.md
diff --git a/web/server/h2o/libh2o/t/Util.pm b/src/web/server/h2o/libh2o/t/Util.pm
index 220bb631b..220bb631b 100644
--- a/web/server/h2o/libh2o/t/Util.pm
+++ b/src/web/server/h2o/libh2o/t/Util.pm
diff --git a/web/server/h2o/libh2o/t/assets/.htpasswd b/src/web/server/h2o/libh2o/t/assets/.htpasswd
index ae2071650..ae2071650 100644
--- a/web/server/h2o/libh2o/t/assets/.htpasswd
+++ b/src/web/server/h2o/libh2o/t/assets/.htpasswd
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/404.html b/src/web/server/h2o/libh2o/t/assets/doc_root/404.html
index 1990b40f9..1990b40f9 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/404.html
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/404.html
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/alice.txt b/src/web/server/h2o/libh2o/t/assets/doc_root/alice.txt
index adace8072..adace8072 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/alice.txt
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/alice.txt
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz b/src/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz
index 42ff445da..42ff445da 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz
Binary files differ
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/esi.html b/src/web/server/h2o/libh2o/t/assets/doc_root/esi.html
index fea3eec6d..fea3eec6d 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/esi.html
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/esi.html
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg b/src/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg
index 4e96991a0..4e96991a0 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg
Binary files differ
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi b/src/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi
index 4401481bf..4401481bf 100755
--- a/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/hello.php b/src/web/server/h2o/libh2o/t/assets/doc_root/hello.php
index 905beefec..905beefec 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/hello.php
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/hello.php
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.js b/src/web/server/h2o/libh2o/t/assets/doc_root/index.js
index 3254c9294..3254c9294 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.js
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/index.js
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.txt b/src/web/server/h2o/libh2o/t/assets/doc_root/index.txt
index ce0136250..ce0136250 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.txt
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/index.txt
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br b/src/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br
index b931f4d7a..b931f4d7a 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz b/src/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz
index c15976b94..c15976b94 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz
Binary files differ
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php b/src/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php
index 871b47765..871b47765 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi b/src/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi
index efe9b74c0..efe9b74c0 100755
--- a/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt b/src/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt
index 1fa86464d..1fa86464d 100644
--- a/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt
+++ b/src/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt
diff --git a/web/server/h2o/libh2o/t/assets/session_tickets.yaml b/src/web/server/h2o/libh2o/t/assets/session_tickets.yaml
index f97285299..f97285299 100644
--- a/web/server/h2o/libh2o/t/assets/session_tickets.yaml
+++ b/src/web/server/h2o/libh2o/t/assets/session_tickets.yaml
diff --git a/web/server/h2o/libh2o/t/assets/upstream.psgi b/src/web/server/h2o/libh2o/t/assets/upstream.psgi
index 95427428a..95427428a 100644
--- a/web/server/h2o/libh2o/t/assets/upstream.psgi
+++ b/src/web/server/h2o/libh2o/t/assets/upstream.psgi
diff --git a/web/server/h2o/libh2o/version.h.in b/src/web/server/h2o/libh2o/version.h.in
index 996047b69..996047b69 100644
--- a/web/server/h2o/libh2o/version.h.in
+++ b/src/web/server/h2o/libh2o/version.h.in
diff --git a/web/server/h2o/streaming.c b/src/web/server/h2o/streaming.c
index 063e487af..fbe3f8050 100644
--- a/web/server/h2o/streaming.c
+++ b/src/web/server/h2o/streaming.c
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-or-later
+#include "daemon/common.h"
#include "streaming.h"
#include "connlist.h"
#include "h2o_utils.h"
@@ -138,9 +139,10 @@ static void stream_on_recv(h2o_socket_t *sock, const char *err)
#define STREAM_METHOD "STREAM "
#define USER_AGENT "User-Agent: "
-#define NEED_MIN_BYTES(buf, bytes) \
-if (rbuf_bytes_available(buf) < bytes) \
- return GIMME_MORE_OF_DEM_SWEET_BYTEZ;
+#define NEED_MIN_BYTES(buf, bytes) do { \
+ if(rbuf_bytes_available(buf) < bytes) \
+ return GIMME_MORE_OF_DEM_SWEET_BYTEZ;\
+} while(0)
// TODO check in streaming code this is probably defined somewhere already
#define MAX_LEN_STREAM_HELLO (1024*2)
diff --git a/web/server/h2o/streaming.h b/src/web/server/h2o/streaming.h
index ae6447257..dfc7b68fc 100644
--- a/web/server/h2o/streaming.h
+++ b/src/web/server/h2o/streaming.h
@@ -3,9 +3,14 @@
#ifndef HTTPD_STREAMING_H
#define HTTPD_STREAMING_H
-#include "daemon/common.h"
-#include "mqtt_websockets/c-rbuf/include/ringbuffer.h"
+#include "aclk/mqtt_websockets/c-rbuf/cringbuffer.h"
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#pragma GCC diagnostic ignored "-Wtype-limits"
#include "h2o.h"
+#pragma GCC diagnostic pop
typedef enum {
STREAM_X_HTTP_1_1 = 0,
diff --git a/src/web/server/static/README.md b/src/web/server/static/README.md
new file mode 100644
index 000000000..e67949e21
--- /dev/null
+++ b/src/web/server/static/README.md
@@ -0,0 +1,21 @@
+<!--
+title: "`static-threaded` web server"
+description: "The Netdata Agent's static-threaded web server spawns a fixed number of threads that listen to web requests and uses non-blocking I/O."
+custom_edit_url: https://github.com/netdata/netdata/edit/master/src/web/server/static/README.md
+sidebar_label: "`static-threaded` web server"
+learn_status: "Published"
+learn_topic_type: "Tasks"
+learn_rel_path: "Developers/Web"
+-->
+
+# `static-threaded` web server
+
+The `static-threaded` web server spawns a fixed number of threads.
+All the threads are concurrently listening for web requests on the same sockets.
+The kernel distributes the incoming requests to them.
+
+Each thread uses non-blocking I/O so it can serve any number of web requests in parallel.
+
+This web server respects the `keep-alive` HTTP header to serve multiple HTTP requests via the same connection.
+
+
diff --git a/web/server/static/static-threaded.c b/src/web/server/static/static-threaded.c
index 773d49f15..f2a07e405 100644
--- a/web/server/static/static-threaded.c
+++ b/src/web/server/static/static-threaded.c
@@ -40,7 +40,8 @@ static struct web_client *web_client_create_on_fd(POLLINFO *pi) {
w->port_acl = pi->port_acl;
int flag = 1;
- if(unlikely(web_client_check_tcp(w) && setsockopt(w->ifd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int)) != 0))
+ if(unlikely(
+ web_client_check_conn_tcp(w) && setsockopt(w->ifd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int)) != 0))
netdata_log_debug(D_WEB_CLIENT, "%llu: failed to enable TCP_NODELAY on socket fd %d.", w->id, w->ifd);
flag = 1;
@@ -142,7 +143,7 @@ static int web_server_file_read_callback(POLLINFO *pi, short int *events) {
goto cleanup;
}
- if(unlikely(w->mode != WEB_CLIENT_MODE_FILECOPY || w->ifd == w->ofd)) {
+ if(unlikely(w->mode != HTTP_REQUEST_MODE_FILECOPY || w->ifd == w->ofd)) {
netdata_log_debug(D_WEB_CLIENT, "%llu: PREVENTED ATTEMPT TO READ FILE ON FD %d, ON NON-FILECOPY WEB CLIENT", w->id, pi->fd);
retval = -1;
goto cleanup;
@@ -205,13 +206,13 @@ static void *web_server_add_callback(POLLINFO *pi, short int *events, void *data
struct web_client *w = web_client_create_on_fd(pi);
if (!strncmp(pi->client_port, "UNIX", 4)) {
- web_client_set_unix(w);
+ web_client_set_conn_unix(w);
} else {
- web_client_set_tcp(w);
+ web_client_set_conn_tcp(w);
}
#ifdef ENABLE_HTTPS
- if ((!web_client_check_unix(w)) && (netdata_ssl_web_server_ctx)) {
+ if ((web_client_check_conn_tcp(w)) && (netdata_ssl_web_server_ctx)) {
sock_delnonblock(w->ifd);
//Read the first 7 bytes from the message, but the message
@@ -296,11 +297,11 @@ static int web_server_rcv_callback(POLLINFO *pi, short int *events) {
worker_is_busy(WORKER_JOB_PROCESS);
web_client_process_request_from_web_server(w);
- if (unlikely(w->mode == WEB_CLIENT_MODE_STREAM)) {
+ if (unlikely(w->mode == HTTP_REQUEST_MODE_STREAM)) {
web_client_send(w);
}
- else if(unlikely(w->mode == WEB_CLIENT_MODE_FILECOPY)) {
+ else if(unlikely(w->mode == HTTP_REQUEST_MODE_FILECOPY)) {
if(w->pollinfo_filecopy_slot == 0) {
netdata_log_debug(D_WEB_CLIENT, "%llu: FILECOPY DETECTED ON FD %d", w->id, pi->fd);
diff --git a/web/server/static/static-threaded.h b/src/web/server/static/static-threaded.h
index a8c5335ef..a8c5335ef 100644
--- a/web/server/static/static-threaded.h
+++ b/src/web/server/static/static-threaded.h
diff --git a/src/web/server/web_client.c b/src/web/server/web_client.c
new file mode 100644
index 000000000..4020d701f
--- /dev/null
+++ b/src/web/server/web_client.c
@@ -0,0 +1,2081 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "web_client.h"
+
+// this is an async I/O implementation of the web server request parser
+// it is used by all netdata web servers
+
+int respect_web_browser_do_not_track_policy = 0;
+char *web_x_frame_options = NULL;
+
+int web_enable_gzip = 1, web_gzip_level = 3, web_gzip_strategy = Z_DEFAULT_STRATEGY;
+
+void web_client_set_conn_tcp(struct web_client *w) {
+ web_client_flags_clear_conn(w);
+ web_client_flag_set(w, WEB_CLIENT_FLAG_CONN_TCP);
+}
+
+void web_client_set_conn_unix(struct web_client *w) {
+ web_client_flags_clear_conn(w);
+ web_client_flag_set(w, WEB_CLIENT_FLAG_CONN_UNIX);
+}
+
+void web_client_set_conn_cloud(struct web_client *w) {
+ web_client_flags_clear_conn(w);
+ web_client_flag_set(w, WEB_CLIENT_FLAG_CONN_CLOUD);
+}
+
+void web_client_set_conn_webrtc(struct web_client *w) {
+ web_client_flags_clear_conn(w);
+ web_client_flag_set(w, WEB_CLIENT_FLAG_CONN_WEBRTC);
+}
+
+void web_client_reset_permissions(struct web_client *w) {
+ web_client_flags_clear_auth(w);
+ w->access = HTTP_ACCESS_NONE;
+}
+
+void web_client_set_permissions(struct web_client *w, HTTP_ACCESS access, HTTP_USER_ROLE role, WEB_CLIENT_FLAGS auth) {
+ web_client_reset_permissions(w);
+ web_client_flag_set(w, auth & WEB_CLIENT_FLAG_ALL_AUTHS);
+ w->access = access;
+ w->user_role = role;
+}
+
+inline int web_client_permission_denied_acl(struct web_client *w) {
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "You need to be authorized to access this resource");
+ w->response.code = HTTP_RESP_UNAVAILABLE_FOR_LEGAL_REASONS;
+ return HTTP_RESP_UNAVAILABLE_FOR_LEGAL_REASONS;
+}
+
+inline int web_client_permission_denied(struct web_client *w) {
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_flush(w->response.data);
+
+ if(w->access & HTTP_ACCESS_SIGNED_ID)
+ buffer_strcat(w->response.data,
+ "You don't have enough permissions to access this resource");
+ else
+ buffer_strcat(w->response.data,
+ "You need to be authorized to access this resource");
+
+ w->response.code = HTTP_ACCESS_PERMISSION_DENIED_HTTP_CODE(w->access);
+ return w->response.code;
+}
+
+inline int web_client_service_unavailable(struct web_client *w) {
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "This service is currently unavailable.");
+ w->response.code = HTTP_RESP_SERVICE_UNAVAILABLE;
+ return HTTP_RESP_SERVICE_UNAVAILABLE;
+}
+
+static inline int bad_request_multiple_dashboard_versions(struct web_client *w) {
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "Multiple dashboard versions given at the URL.");
+ w->response.code = HTTP_RESP_BAD_REQUEST;
+ return HTTP_RESP_BAD_REQUEST;
+}
+
+static inline int web_client_cork_socket(struct web_client *w __maybe_unused) {
+#ifdef TCP_CORK
+ if(likely(web_client_check_conn_tcp(w) && !w->tcp_cork && w->ofd != -1)) {
+ w->tcp_cork = true;
+ if(unlikely(setsockopt(w->ofd, IPPROTO_TCP, TCP_CORK, (char *) &w->tcp_cork, sizeof(int)) != 0)) {
+ netdata_log_error("%llu: failed to enable TCP_CORK on socket.", w->id);
+
+ w->tcp_cork = false;
+ return -1;
+ }
+ }
+#endif /* TCP_CORK */
+
+ return 0;
+}
+
+#ifdef ENABLE_HTTPS
+static inline void web_client_enable_wait_from_ssl(struct web_client *w) {
+ if (w->ssl.ssl_errno == SSL_ERROR_WANT_READ)
+ web_client_enable_ssl_wait_receive(w);
+ else if (w->ssl.ssl_errno == SSL_ERROR_WANT_WRITE)
+ web_client_enable_ssl_wait_send(w);
+ else {
+ web_client_disable_ssl_wait_receive(w);
+ web_client_disable_ssl_wait_send(w);
+ }
+}
+#endif
+
+static inline int web_client_uncork_socket(struct web_client *w __maybe_unused) {
+#ifdef TCP_CORK
+ if(likely(w->tcp_cork && w->ofd != -1)) {
+ w->tcp_cork = false;
+ if(unlikely(setsockopt(w->ofd, IPPROTO_TCP, TCP_CORK, (char *) &w->tcp_cork, sizeof(int)) != 0)) {
+ netdata_log_error("%llu: failed to disable TCP_CORK on socket.", w->id);
+ w->tcp_cork = true;
+ return -1;
+ }
+ }
+#endif /* TCP_CORK */
+
+ w->tcp_cork = false;
+ return 0;
+}
+
+static inline char *strip_control_characters(char *url) {
+ if(!url) return "";
+
+ for(char *s = url; *s ;s++)
+ if(iscntrl(*s)) *s = ' ';
+
+ return url;
+}
+
+static void web_client_reset_allocations(struct web_client *w, bool free_all) {
+
+ if(free_all) {
+ // the web client is to be destroyed
+
+ buffer_free(w->url_as_received);
+ w->url_as_received = NULL;
+
+ buffer_free(w->url_path_decoded);
+ w->url_path_decoded = NULL;
+
+ buffer_free(w->url_query_string_decoded);
+ w->url_query_string_decoded = NULL;
+
+ buffer_free(w->response.header_output);
+ w->response.header_output = NULL;
+
+ buffer_free(w->response.header);
+ w->response.header = NULL;
+
+ buffer_free(w->response.data);
+ w->response.data = NULL;
+
+ buffer_free(w->payload);
+ w->payload = NULL;
+ }
+ else {
+ // the web client is to be re-used
+
+ buffer_reset(w->url_as_received);
+ buffer_reset(w->url_path_decoded);
+ buffer_reset(w->url_query_string_decoded);
+
+ buffer_reset(w->response.header_output);
+ buffer_reset(w->response.header);
+ buffer_reset(w->response.data);
+
+ if(w->payload)
+ buffer_reset(w->payload);
+
+ // to add more items here,
+ // web_client_reuse_from_cache() needs to be adjusted to maintain them
+ }
+
+ freez(w->server_host);
+ w->server_host = NULL;
+
+ freez(w->forwarded_host);
+ w->forwarded_host = NULL;
+
+ freez(w->forwarded_for);
+ w->forwarded_for = NULL;
+
+ freez(w->origin);
+ w->origin = NULL;
+
+ freez(w->user_agent);
+ w->user_agent = NULL;
+
+ freez(w->auth_bearer_token);
+ w->auth_bearer_token = NULL;
+
+ // if we had enabled compression, release it
+ if(w->response.zinitialized) {
+ deflateEnd(&w->response.zstream);
+ w->response.zsent = 0;
+ w->response.zhave = 0;
+ w->response.zstream.avail_in = 0;
+ w->response.zstream.avail_out = 0;
+ w->response.zstream.total_in = 0;
+ w->response.zstream.total_out = 0;
+ w->response.zinitialized = false;
+ web_client_flag_clear(w, WEB_CLIENT_CHUNKED_TRANSFER);
+ }
+
+ memset(w->transaction, 0, sizeof(w->transaction));
+ web_client_reset_permissions(w);
+ web_client_flag_clear(w, WEB_CLIENT_ENCODING_GZIP|WEB_CLIENT_ENCODING_DEFLATE);
+ web_client_reset_path_flags(w);
+}
+
+void web_client_log_completed_request(struct web_client *w, bool update_web_stats) {
+ struct timeval tv;
+ now_monotonic_high_precision_timeval(&tv);
+
+ size_t size = (w->mode == HTTP_REQUEST_MODE_FILECOPY) ? w->response.rlen : w->response.data->len;
+ size_t sent = w->response.zoutput ? (size_t)w->response.zstream.total_out : size;
+
+ if(update_web_stats)
+ global_statistics_web_request_completed(dt_usec(&tv, &w->timings.tv_in),
+ w->statistics.received_bytes,
+ w->statistics.sent_bytes,
+ size,
+ sent);
+
+ usec_t prep_ut = w->timings.tv_ready.tv_sec ? dt_usec(&w->timings.tv_ready, &w->timings.tv_in) : 0;
+ usec_t sent_ut = w->timings.tv_ready.tv_sec ? dt_usec(&tv, &w->timings.tv_ready) : 0;
+ usec_t total_ut = dt_usec(&tv, &w->timings.tv_in);
+ strip_control_characters((char *)buffer_tostring(w->url_as_received));
+
+ ND_LOG_STACK lgs[] = {
+ ND_LOG_FIELD_U64(NDF_CONNECTION_ID, w->id),
+ ND_LOG_FIELD_UUID(NDF_TRANSACTION_ID, &w->transaction),
+ ND_LOG_FIELD_TXT(NDF_NIDL_NODE, w->client_host),
+ ND_LOG_FIELD_TXT(NDF_REQUEST_METHOD, HTTP_REQUEST_MODE_2str(w->mode)),
+ ND_LOG_FIELD_BFR(NDF_REQUEST, w->url_as_received),
+ ND_LOG_FIELD_U64(NDF_RESPONSE_CODE, w->response.code),
+ ND_LOG_FIELD_U64(NDF_RESPONSE_SENT_BYTES, sent),
+ ND_LOG_FIELD_U64(NDF_RESPONSE_SIZE_BYTES, size),
+ ND_LOG_FIELD_U64(NDF_RESPONSE_PREPARATION_TIME_USEC, prep_ut),
+ ND_LOG_FIELD_U64(NDF_RESPONSE_SENT_TIME_USEC, sent_ut),
+ ND_LOG_FIELD_U64(NDF_RESPONSE_TOTAL_TIME_USEC, total_ut),
+ ND_LOG_FIELD_TXT(NDF_SRC_IP, w->client_ip),
+ ND_LOG_FIELD_TXT(NDF_SRC_PORT, w->client_port),
+ ND_LOG_FIELD_TXT(NDF_SRC_FORWARDED_FOR, w->forwarded_for),
+ ND_LOG_FIELD_UUID(NDF_ACCOUNT_ID, &w->auth.cloud_account_id),
+ ND_LOG_FIELD_TXT(NDF_USER_NAME, w->auth.client_name),
+ ND_LOG_FIELD_TXT(NDF_USER_ROLE, http_id2user_role(w->user_role)),
+ ND_LOG_FIELD_CB(NDF_USER_ACCESS, log_cb_http_access_to_hex, &w->access),
+ ND_LOG_FIELD_END(),
+ };
+ ND_LOG_STACK_PUSH(lgs);
+
+ ND_LOG_FIELD_PRIORITY prio = NDLP_INFO;
+ if(w->response.code >= 500)
+ prio = NDLP_EMERG;
+ else if(w->response.code >= 400)
+ prio = NDLP_WARNING;
+ else if(w->response.code >= 300)
+ prio = NDLP_NOTICE;
+
+ // cleanup progress
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_PROGRESS_TRACKING)) {
+ web_client_flag_clear(w, WEB_CLIENT_FLAG_PROGRESS_TRACKING);
+ query_progress_finished(&w->transaction, 0, w->response.code, total_ut, size, sent);
+ }
+
+ // access log
+ if(likely(buffer_strlen(w->url_as_received)))
+ nd_log(NDLS_ACCESS, prio, NULL);
+}
+
+void web_client_request_done(struct web_client *w) {
+ web_client_uncork_socket(w);
+
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Resetting client.", w->id);
+
+ web_client_log_completed_request(w, true);
+
+ if(unlikely(w->mode == HTTP_REQUEST_MODE_FILECOPY)) {
+ if(w->ifd != w->ofd) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Closing filecopy input file descriptor %d.", w->id, w->ifd);
+
+ if(web_server_mode != WEB_SERVER_MODE_STATIC_THREADED) {
+ if (w->ifd != -1){
+ close(w->ifd);
+ }
+ }
+
+ w->ifd = w->ofd;
+ }
+ }
+
+ web_client_reset_allocations(w, false);
+
+ w->mode = HTTP_REQUEST_MODE_GET;
+
+ web_client_disable_donottrack(w);
+ web_client_disable_tracking_required(w);
+ web_client_disable_keepalive(w);
+
+ w->header_parse_tries = 0;
+ w->header_parse_last_size = 0;
+
+ web_client_enable_wait_receive(w);
+ web_client_disable_wait_send(w);
+
+ w->response.has_cookies = false;
+ w->response.rlen = 0;
+ w->response.sent = 0;
+ w->response.code = 0;
+ w->response.zoutput = false;
+
+ w->statistics.received_bytes = 0;
+ w->statistics.sent_bytes = 0;
+}
+
+static int append_slash_to_url_and_redirect(struct web_client *w) {
+ // this function returns a relative redirect
+ // it finds the last path component on the URL and just appends / to it
+ //
+ // So, if the URL is:
+ //
+ // /path/to/file?query_string
+ //
+ // It adds a Location header like this:
+ //
+ // Location: file/?query_string\r\n
+ //
+ // The web browser already knows that it is inside /path/to/
+ // so it converts the path to /path/to/file/ and executes the
+ // request again.
+
+ buffer_strcat(w->response.header, "Location: ");
+ const char *b = buffer_tostring(w->url_as_received);
+ const char *q = strchr(b, '?');
+ if(q && q > b) {
+ const char *e = q - 1;
+ while(e > b && *e != '/') e--;
+ if(*e == '/') e++;
+
+ size_t len = q - e;
+ buffer_strncat(w->response.header, e, len);
+ buffer_strncat(w->response.header, "/", 1);
+ buffer_strcat(w->response.header, q);
+ }
+ else {
+ const char *e = &b[buffer_strlen(w->url_as_received) - 1];
+ while(e > b && *e != '/') e--;
+ if(*e == '/') e++;
+
+ buffer_strcat(w->response.header, e);
+ buffer_strncat(w->response.header, "/", 1);
+ }
+
+ buffer_strncat(w->response.header, "\r\n", 2);
+
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data,
+ "<!DOCTYPE html><html>"
+ "<body onload=\"window.location.href = window.location.origin + window.location.pathname + '/' + window.location.search + window.location.hash\">"
+ "Redirecting. In case your browser does not support redirection, please click "
+ "<a onclick=\"window.location.href = window.location.origin + window.location.pathname + '/' + window.location.search + window.location.hash\">here</a>."
+ "</body></html>");
+ return HTTP_RESP_MOVED_PERM;
+}
+
+// Work around a bug in the CMocka library by removing this function during testing.
+#ifndef REMOVE_MYSENDFILE
+
+static inline int dashboard_version(struct web_client *w) {
+ if(!web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_WITH_VERSION))
+ return -1;
+
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_IS_V0))
+ return 0;
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_IS_V1))
+ return 1;
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_IS_V2))
+ return 2;
+
+ return -1;
+}
+
+static bool find_filename_to_serve(const char *filename, char *dst, size_t dst_len, struct stat *statbuf, struct web_client *w, bool *is_dir) {
+ int d_version = dashboard_version(w);
+ bool has_extension = web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_HAS_FILE_EXTENSION);
+
+ int fallback = 0;
+
+ if(has_extension) {
+ if(d_version == -1)
+ snprintfz(dst, dst_len, "%s/%s", netdata_configured_web_dir, filename);
+ else {
+ // check if the filename or directory exists
+ // fallback to the same path without the dashboard version otherwise
+ snprintfz(dst, dst_len, "%s/v%d/%s", netdata_configured_web_dir, d_version, filename);
+ fallback = 1;
+ }
+ }
+ else if(d_version != -1) {
+ if(filename && *filename) {
+ // check if the filename exists
+ // fallback to /vN/index.html otherwise
+ snprintfz(dst, dst_len, "%s/%s", netdata_configured_web_dir, filename);
+ fallback = 2;
+ }
+ else {
+ if(filename && *filename)
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_HAS_TRAILING_SLASH);
+ snprintfz(dst, dst_len, "%s/v%d", netdata_configured_web_dir, d_version);
+ }
+ }
+ else {
+ // check if filename exists
+ // this is needed to serve {filename}/index.html, in case a user puts a html file into a directory
+ // fallback to /index.html otherwise
+ snprintfz(dst, dst_len, "%s/%s", netdata_configured_web_dir, filename);
+ fallback = 3;
+ }
+
+ if (stat(dst, statbuf) != 0) {
+ if(fallback == 1) {
+ snprintfz(dst, dst_len, "%s/%s", netdata_configured_web_dir, filename);
+ if (stat(dst, statbuf) != 0)
+ return false;
+ }
+ else if(fallback == 2) {
+ if(filename && *filename)
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_HAS_TRAILING_SLASH);
+ snprintfz(dst, dst_len, "%s/v%d", netdata_configured_web_dir, d_version);
+ if (stat(dst, statbuf) != 0)
+ return false;
+ }
+ else if(fallback == 3) {
+ if(filename && *filename)
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_HAS_TRAILING_SLASH);
+ snprintfz(dst, dst_len, "%s", netdata_configured_web_dir);
+ if (stat(dst, statbuf) != 0)
+ return false;
+ }
+ else
+ return false;
+ }
+
+ if((statbuf->st_mode & S_IFMT) == S_IFDIR) {
+ size_t len = strlen(dst);
+ if(len > dst_len - 11)
+ return false;
+
+ strncpyz(&dst[len], "/index.html", dst_len - len);
+
+ if (stat(dst, statbuf) != 0)
+ return false;
+
+ *is_dir = true;
+ }
+
+ return true;
+}
+
+static int mysendfile(struct web_client *w, char *filename) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Looking for file '%s/%s'", w->id, netdata_configured_web_dir, filename);
+
+ if(!http_can_access_dashboard(w))
+ return web_client_permission_denied_acl(w);
+
+ // skip leading slashes
+ while (*filename == '/') filename++;
+
+ // if the filename contains "strange" characters, refuse to serve it
+ char *s;
+ for(s = filename; *s ;s++) {
+ if( !isalnum(*s) && *s != '/' && *s != '.' && *s != '-' && *s != '_') {
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: File '%s' is not acceptable.", w->id, filename);
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_sprintf(w->response.data, "Filename contains invalid characters: ");
+ buffer_strcat_htmlescape(w->response.data, filename);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+ }
+
+ // if the filename contains a double dot refuse to serve it
+ if(strstr(filename, "..") != 0) {
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: File '%s' is not acceptable.", w->id, filename);
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_strcat(w->response.data, "Relative filenames are not supported: ");
+ buffer_strcat_htmlescape(w->response.data, filename);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
+ // find the physical file on disk
+ bool is_dir = false;
+ char web_filename[FILENAME_MAX + 1];
+ struct stat statbuf;
+ if(!find_filename_to_serve(filename, web_filename, FILENAME_MAX, &statbuf, w, &is_dir)) {
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_strcat(w->response.data, "File does not exist, or is not accessible: ");
+ buffer_strcat_htmlescape(w->response.data, web_filename);
+ return HTTP_RESP_NOT_FOUND;
+ }
+
+ if(is_dir && !web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_HAS_TRAILING_SLASH))
+ return append_slash_to_url_and_redirect(w);
+
+ // open the file
+ w->ifd = open(web_filename, O_NONBLOCK, O_RDONLY | O_CLOEXEC);
+ if(w->ifd == -1) {
+ w->ifd = w->ofd;
+
+ if(errno == EBUSY || errno == EAGAIN) {
+ netdata_log_error("%llu: File '%s' is busy, sending 307 Moved Temporarily to force retry.", w->id, web_filename);
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_sprintf(w->response.header, "Location: /%s\r\n", filename);
+ buffer_strcat(w->response.data, "File is currently busy, please try again later: ");
+ buffer_strcat_htmlescape(w->response.data, web_filename);
+ return HTTP_RESP_REDIR_TEMP;
+ }
+ else {
+ netdata_log_error("%llu: Cannot open file '%s'.", w->id, web_filename);
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_strcat(w->response.data, "Cannot open file: ");
+ buffer_strcat_htmlescape(w->response.data, web_filename);
+ return HTTP_RESP_NOT_FOUND;
+ }
+ }
+
+ sock_setnonblock(w->ifd);
+
+ w->response.data->content_type = contenttype_for_filename(web_filename);
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: Sending file '%s' (%"PRId64" bytes, ifd %d, ofd %d).", w->id, web_filename, (int64_t)statbuf.st_size, w->ifd, w->ofd);
+
+ w->mode = HTTP_REQUEST_MODE_FILECOPY;
+ web_client_enable_wait_receive(w);
+ web_client_disable_wait_send(w);
+ buffer_flush(w->response.data);
+ buffer_need_bytes(w->response.data, (size_t)statbuf.st_size);
+ w->response.rlen = (size_t)statbuf.st_size;
+#ifdef __APPLE__
+ w->response.data->date = statbuf.st_mtimespec.tv_sec;
+#else
+ w->response.data->date = statbuf.st_mtim.tv_sec;
+#endif
+ buffer_cacheable(w->response.data);
+
+ return HTTP_RESP_OK;
+}
+#endif
+
+static inline int check_host_and_call(RRDHOST *host, struct web_client *w, char *url, int (*func)(RRDHOST *, struct web_client *, char *)) {
+ return func(host, w, url);
+}
+
+int web_client_api_request(RRDHOST *host, struct web_client *w, char *url_path_fragment) {
+ ND_LOG_STACK lgs[] = {
+ ND_LOG_FIELD_TXT(NDF_SRC_IP, w->client_ip),
+ ND_LOG_FIELD_TXT(NDF_SRC_PORT, w->client_port),
+ ND_LOG_FIELD_TXT(NDF_SRC_FORWARDED_HOST, w->forwarded_host),
+ ND_LOG_FIELD_TXT(NDF_SRC_FORWARDED_FOR, w->forwarded_for),
+ ND_LOG_FIELD_TXT(NDF_NIDL_NODE, w->client_host),
+ ND_LOG_FIELD_TXT(NDF_REQUEST_METHOD, HTTP_REQUEST_MODE_2str(w->mode)),
+ ND_LOG_FIELD_BFR(NDF_REQUEST, w->url_as_received),
+ ND_LOG_FIELD_U64(NDF_CONNECTION_ID, w->id),
+ ND_LOG_FIELD_UUID(NDF_TRANSACTION_ID, &w->transaction),
+ ND_LOG_FIELD_UUID(NDF_ACCOUNT_ID, &w->auth.cloud_account_id),
+ ND_LOG_FIELD_TXT(NDF_USER_NAME, w->auth.client_name),
+ ND_LOG_FIELD_TXT(NDF_USER_ROLE, http_id2user_role(w->user_role)),
+ ND_LOG_FIELD_CB(NDF_USER_ACCESS, log_cb_http_access_to_hex, &w->access),
+ ND_LOG_FIELD_END(),
+ };
+ ND_LOG_STACK_PUSH(lgs);
+
+ if(!web_client_flag_check(w, WEB_CLIENT_FLAG_PROGRESS_TRACKING)) {
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PROGRESS_TRACKING);
+ query_progress_start_or_update(&w->transaction, 0, w->mode, w->acl,
+ buffer_tostring(w->url_as_received),
+ w->payload,
+ w->forwarded_for ? w->forwarded_for : w->client_ip);
+ }
+
+ // get the api version
+ char *tok = strsep_skip_consecutive_separators(&url_path_fragment, "/");
+ if(tok && *tok) {
+ if(strcmp(tok, "v2") == 0)
+ return web_client_api_request_v2(host, w, url_path_fragment);
+ else if(strcmp(tok, "v1") == 0)
+ return web_client_api_request_v1(host, w, url_path_fragment);
+ else {
+ buffer_flush(w->response.data);
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_strcat(w->response.data, "Unsupported API version: ");
+ buffer_strcat_htmlescape(w->response.data, tok);
+ return HTTP_RESP_NOT_FOUND;
+ }
+ }
+ else {
+ buffer_flush(w->response.data);
+ buffer_sprintf(w->response.data, "Which API version?");
+ return HTTP_RESP_BAD_REQUEST;
+ }
+}
+
+
+/**
+ * Valid Method
+ *
+ * Netdata accepts only three methods, including one of these three(STREAM) is an internal method.
+ *
+ * @param w is the structure with the client request
+ * @param s is the start string to parse
+ *
+ * @return it returns the next address to parse case the method is valid and NULL otherwise.
+ */
+static inline char *web_client_valid_method(struct web_client *w, char *s) {
+ // is is a valid request?
+ if(!strncmp(s, "GET ", 4)) {
+ s = &s[4];
+ w->mode = HTTP_REQUEST_MODE_GET;
+ }
+ else if(!strncmp(s, "OPTIONS ", 8)) {
+ s = &s[8];
+ w->mode = HTTP_REQUEST_MODE_OPTIONS;
+ }
+ else if(!strncmp(s, "POST ", 5)) {
+ s = &s[5];
+ w->mode = HTTP_REQUEST_MODE_POST;
+ }
+ else if(!strncmp(s, "PUT ", 4)) {
+ s = &s[4];
+ w->mode = HTTP_REQUEST_MODE_PUT;
+ }
+ else if(!strncmp(s, "DELETE ", 7)) {
+ s = &s[7];
+ w->mode = HTTP_REQUEST_MODE_DELETE;
+ }
+ else if(!strncmp(s, "STREAM ", 7)) {
+ s = &s[7];
+
+#ifdef ENABLE_HTTPS
+ if (!SSL_connection(&w->ssl) && http_is_using_ssl_force(w)) {
+ w->header_parse_tries = 0;
+ w->header_parse_last_size = 0;
+ web_client_disable_wait_receive(w);
+
+ char hostname[256];
+ char *copyme = strstr(s,"hostname=");
+ if ( copyme ){
+ copyme += 9;
+ char *end = strchr(copyme,'&');
+ if(end){
+ size_t length = MIN(255, end - copyme);
+ memcpy(hostname,copyme,length);
+ hostname[length] = 0X00;
+ }
+ else{
+ memcpy(hostname,"not available",13);
+ hostname[13] = 0x00;
+ }
+ }
+ else{
+ memcpy(hostname,"not available",13);
+ hostname[13] = 0x00;
+ }
+ netdata_log_error("The server is configured to always use encrypted connections, please enable the SSL on child with hostname '%s'.",hostname);
+ s = NULL;
+ }
+#endif
+
+ w->mode = HTTP_REQUEST_MODE_STREAM;
+ }
+ else {
+ s = NULL;
+ }
+
+ return s;
+}
+
+/**
+ * Request validate
+ *
+ * @param w is the structure with the client request
+ *
+ * @return It returns HTTP_VALIDATION_OK on success and another code present
+ * in the enum HTTP_VALIDATION otherwise.
+ */
+HTTP_VALIDATION http_request_validate(struct web_client *w) {
+ char *s = (char *)buffer_tostring(w->response.data), *encoded_url = NULL;
+
+ size_t last_pos = w->header_parse_last_size;
+
+ w->header_parse_tries++;
+ w->header_parse_last_size = buffer_strlen(w->response.data);
+
+ int is_it_valid;
+ if(w->header_parse_tries > 1) {
+ if(last_pos > 4) last_pos -= 4; // allow searching for \r\n\r\n
+ else last_pos = 0;
+
+ if(w->header_parse_last_size < last_pos)
+ last_pos = 0;
+
+ is_it_valid =
+ url_is_request_complete_and_extract_payload(s, &s[last_pos], w->header_parse_last_size, &w->payload);
+ if(!is_it_valid) {
+ if(w->header_parse_tries > HTTP_REQ_MAX_HEADER_FETCH_TRIES) {
+ netdata_log_info("Disabling slow client after %zu attempts to read the request (%zu bytes received)", w->header_parse_tries, buffer_strlen(w->response.data));
+ w->header_parse_tries = 0;
+ w->header_parse_last_size = 0;
+ web_client_disable_wait_receive(w);
+ return HTTP_VALIDATION_TOO_MANY_READ_RETRIES;
+ }
+
+ return HTTP_VALIDATION_INCOMPLETE;
+ }
+
+ is_it_valid = 1;
+ } else {
+ last_pos = w->header_parse_last_size;
+ is_it_valid =
+ url_is_request_complete_and_extract_payload(s, &s[last_pos], w->header_parse_last_size, &w->payload);
+ }
+
+ s = web_client_valid_method(w, s);
+ if (!s) {
+ w->header_parse_tries = 0;
+ w->header_parse_last_size = 0;
+ web_client_disable_wait_receive(w);
+
+ return HTTP_VALIDATION_NOT_SUPPORTED;
+ } else if (!is_it_valid) {
+ //Invalid request, we have more data after the end of message
+ char *check = strstr((char *)buffer_tostring(w->response.data), "\r\n\r\n");
+ if(check) {
+ check += 4;
+ if (*check) {
+ w->header_parse_tries = 0;
+ w->header_parse_last_size = 0;
+ web_client_disable_wait_receive(w);
+ return HTTP_VALIDATION_EXCESS_REQUEST_DATA;
+ }
+ }
+ web_client_enable_wait_receive(w);
+ return HTTP_VALIDATION_INCOMPLETE;
+ }
+
+ //After the method we have the path and query string together
+ encoded_url = s;
+
+ //we search for the position where we have " HTTP/", because it finishes the user request
+ s = url_find_protocol(s);
+
+ // incomplete requests
+ if(unlikely(!*s)) {
+ web_client_enable_wait_receive(w);
+ return HTTP_VALIDATION_INCOMPLETE;
+ }
+
+ // we have the end of encoded_url - remember it
+ char *ue = s;
+
+ // make sure we have complete request
+ // complete requests contain: \r\n\r\n
+ while(*s) {
+ // find a line feed
+ while(*s && *s++ != '\r');
+
+ // did we reach the end?
+ if(unlikely(!*s)) break;
+
+ // is it \r\n ?
+ if(likely(*s++ == '\n')) {
+
+ // is it again \r\n ? (header end)
+ if(unlikely(*s == '\r' && s[1] == '\n')) {
+ // a valid complete HTTP request found
+
+ char c = *ue;
+ *ue = '\0';
+ web_client_decode_path_and_query_string(w, encoded_url);
+ *ue = c;
+
+#ifdef ENABLE_HTTPS
+ if ( (web_client_check_conn_tcp(w)) && (netdata_ssl_web_server_ctx) ) {
+ if (!w->ssl.conn && (http_is_using_ssl_force(w) || http_is_using_ssl_default(w)) && (w->mode != HTTP_REQUEST_MODE_STREAM)) {
+ w->header_parse_tries = 0;
+ w->header_parse_last_size = 0;
+ web_client_disable_wait_receive(w);
+ return HTTP_VALIDATION_REDIRECT;
+ }
+ }
+#endif
+
+ w->header_parse_tries = 0;
+ w->header_parse_last_size = 0;
+ web_client_disable_wait_receive(w);
+ return HTTP_VALIDATION_OK;
+ }
+
+ // another header line
+ s = http_header_parse_line(w, s);
+ }
+ }
+
+ // incomplete request
+ web_client_enable_wait_receive(w);
+ return HTTP_VALIDATION_INCOMPLETE;
+}
+
+static inline ssize_t web_client_send_data(struct web_client *w,const void *buf,size_t len, int flags)
+{
+ ssize_t bytes;
+#ifdef ENABLE_HTTPS
+ if ((web_client_check_conn_tcp(w)) && (netdata_ssl_web_server_ctx)) {
+ if (SSL_connection(&w->ssl)) {
+ bytes = netdata_ssl_write(&w->ssl, buf, len) ;
+ web_client_enable_wait_from_ssl(w);
+ }
+ else
+ bytes = send(w->ofd,buf, len , flags);
+ }
+ else if(web_client_check_conn_tcp(w) || web_client_check_conn_unix(w))
+ bytes = send(w->ofd,buf, len , flags);
+ else
+ bytes = -999;
+#else
+ if(web_client_check_conn_tcp(w) || web_client_check_conn_unix(w))
+ bytes = send(w->ofd, buf, len, flags);
+ else
+ bytes = -999;
+#endif
+
+ return bytes;
+}
+
+void web_client_build_http_header(struct web_client *w) {
+ if(unlikely(w->response.code != HTTP_RESP_OK))
+ buffer_no_cacheable(w->response.data);
+
+ if(unlikely(!w->response.data->date))
+ w->response.data->date = now_realtime_sec();
+
+ // set a proper expiration date, if not already set
+ if(unlikely(!w->response.data->expires))
+ w->response.data->expires = w->response.data->date +
+ ((w->response.data->options & WB_CONTENT_NO_CACHEABLE) ? 0 : 86400);
+
+ // prepare the HTTP response header
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Generating HTTP header with response %d.", w->id, w->response.code);
+
+ const char *code_msg = http_response_code2string(w->response.code);
+
+ // prepare the last modified and expiration dates
+ char rfc7231_date[RFC7231_MAX_LENGTH], rfc7231_expires[RFC7231_MAX_LENGTH];
+ rfc7231_datetime(rfc7231_date, sizeof(rfc7231_date), w->response.data->date);
+ rfc7231_datetime(rfc7231_expires, sizeof(rfc7231_expires), w->response.data->expires);
+
+ if (w->response.code == HTTP_RESP_HTTPS_UPGRADE) {
+ buffer_sprintf(w->response.header_output,
+ "HTTP/1.1 %d %s\r\n"
+ "Location: https://%s%s\r\n",
+ w->response.code, code_msg,
+ w->server_host ? w->server_host : "",
+ buffer_tostring(w->url_as_received));
+ w->response.code = HTTP_RESP_MOVED_PERM;
+ }
+ else {
+ buffer_sprintf(w->response.header_output,
+ "HTTP/1.1 %d %s\r\n"
+ "Connection: %s\r\n"
+ "Server: Netdata Embedded HTTP Server %s\r\n"
+ "Access-Control-Allow-Origin: %s\r\n"
+ "Access-Control-Allow-Credentials: true\r\n"
+ "Date: %s\r\n",
+ w->response.code,
+ code_msg,
+ web_client_has_keepalive(w)?"keep-alive":"close",
+ VERSION,
+ w->origin ? w->origin : "*",
+ rfc7231_date);
+
+ http_header_content_type(w->response.header_output, w->response.data->content_type);
+ }
+
+ if(unlikely(web_x_frame_options))
+ buffer_sprintf(w->response.header_output, "X-Frame-Options: %s\r\n", web_x_frame_options);
+
+ if(w->response.has_cookies) {
+ if(respect_web_browser_do_not_track_policy)
+ buffer_sprintf(w->response.header_output,
+ "Tk: T;cookies\r\n");
+ }
+ else {
+ if(respect_web_browser_do_not_track_policy) {
+ if(web_client_has_tracking_required(w))
+ buffer_sprintf(w->response.header_output,
+ "Tk: T;cookies\r\n");
+ else
+ buffer_sprintf(w->response.header_output,
+ "Tk: N\r\n");
+ }
+ }
+
+ if(w->mode == HTTP_REQUEST_MODE_OPTIONS) {
+ buffer_strcat(w->response.header_output,
+ "Access-Control-Allow-Methods: GET, OPTIONS\r\n"
+ "Access-Control-Allow-Headers: accept, x-requested-with, origin, content-type, cookie, pragma, cache-control, x-auth-token\r\n"
+ "Access-Control-Max-Age: 1209600\r\n" // 86400 * 14
+ );
+ }
+ else {
+ buffer_sprintf(w->response.header_output,
+ "Cache-Control: %s\r\n"
+ "Expires: %s\r\n",
+ (w->response.data->options & WB_CONTENT_NO_CACHEABLE)?"no-cache, no-store, must-revalidate\r\nPragma: no-cache":"public",
+ rfc7231_expires);
+ }
+
+ // copy a possibly available custom header
+ if(unlikely(buffer_strlen(w->response.header)))
+ buffer_strcat(w->response.header_output, buffer_tostring(w->response.header));
+
+ // headers related to the transfer method
+ if(likely(w->response.zoutput))
+ buffer_strcat(w->response.header_output, "Content-Encoding: gzip\r\n");
+
+ if(likely(w->flags & WEB_CLIENT_CHUNKED_TRANSFER))
+ buffer_strcat(w->response.header_output, "Transfer-Encoding: chunked\r\n");
+ else {
+ if(likely((w->response.data->len || w->response.rlen))) {
+ // we know the content length, put it
+ buffer_sprintf(w->response.header_output, "Content-Length: %zu\r\n", w->response.data->len? w->response.data->len: w->response.rlen);
+ }
+ else {
+ // we don't know the content length, disable keep-alive
+ web_client_disable_keepalive(w);
+ }
+ }
+
+ char uuid[UUID_COMPACT_STR_LEN];
+ uuid_unparse_lower_compact(w->transaction, uuid);
+ buffer_sprintf(w->response.header_output,
+ "X-Transaction-ID: %s\r\n", uuid);
+
+ // end of HTTP header
+ buffer_strcat(w->response.header_output, "\r\n");
+}
+
+static inline void web_client_send_http_header(struct web_client *w) {
+ web_client_build_http_header(w);
+
+ // sent the HTTP header
+ netdata_log_debug(D_WEB_DATA, "%llu: Sending response HTTP header of size %zu: '%s'"
+ , w->id
+ , buffer_strlen(w->response.header_output)
+ , buffer_tostring(w->response.header_output)
+ );
+
+ web_client_cork_socket(w);
+
+ size_t count = 0;
+ ssize_t bytes;
+#ifdef ENABLE_HTTPS
+ if ( (web_client_check_conn_tcp(w)) && (netdata_ssl_web_server_ctx) ) {
+ if (SSL_connection(&w->ssl)) {
+ bytes = netdata_ssl_write(&w->ssl, buffer_tostring(w->response.header_output), buffer_strlen(w->response.header_output));
+ web_client_enable_wait_from_ssl(w);
+ }
+ else {
+ while((bytes = send(w->ofd, buffer_tostring(w->response.header_output), buffer_strlen(w->response.header_output), 0)) == -1) {
+ count++;
+
+ if(count > 100 || (errno != EAGAIN && errno != EWOULDBLOCK)) {
+ netdata_log_error("Cannot send HTTP headers to web client.");
+ break;
+ }
+ }
+ }
+ }
+ else if(web_client_check_conn_tcp(w) || web_client_check_conn_unix(w)) {
+ while((bytes = send(w->ofd, buffer_tostring(w->response.header_output), buffer_strlen(w->response.header_output), 0)) == -1) {
+ count++;
+
+ if(count > 100 || (errno != EAGAIN && errno != EWOULDBLOCK)) {
+ netdata_log_error("Cannot send HTTP headers to web client.");
+ break;
+ }
+ }
+ }
+ else
+ bytes = -999;
+#else
+ if(web_client_check_conn_tcp(w) || web_client_check_conn_unix(w)) {
+ while ((bytes = send(w->ofd, buffer_tostring(w->response.header_output), buffer_strlen(w->response.header_output), 0)) == -1) {
+ count++;
+
+ if (count > 100 || (errno != EAGAIN && errno != EWOULDBLOCK)) {
+ netdata_log_error("Cannot send HTTP headers to web client.");
+ break;
+ }
+ }
+ }
+ else
+ bytes = -999;
+#endif
+
+ if(bytes != (ssize_t) buffer_strlen(w->response.header_output)) {
+ if(bytes > 0)
+ w->statistics.sent_bytes += bytes;
+
+ if (bytes < 0) {
+ netdata_log_error("HTTP headers failed to be sent (I sent %zu bytes but the system sent %zd bytes). Closing web client."
+ , buffer_strlen(w->response.header_output)
+ , bytes);
+
+ WEB_CLIENT_IS_DEAD(w);
+ return;
+ }
+ }
+ else
+ w->statistics.sent_bytes += bytes;
+}
+
+static inline int web_client_switch_host(RRDHOST *host, struct web_client *w, char *url, bool nodeid, int (*func)(RRDHOST *, struct web_client *, char *)) {
+ static uint32_t hash_localhost = 0;
+
+ if(unlikely(!hash_localhost)) {
+ hash_localhost = simple_hash("localhost");
+ }
+
+ if(host != localhost) {
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "Nesting of hosts is not allowed.");
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
+ char *tok = strsep_skip_consecutive_separators(&url, "/");
+ if(tok && *tok) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Searching for host with name '%s'.", w->id, tok);
+
+ if(nodeid) {
+ host = find_host_by_node_id(tok);
+ if(!host) {
+ host = rrdhost_find_by_hostname(tok);
+ if (!host)
+ host = rrdhost_find_by_guid(tok);
+ }
+ }
+ else {
+ host = rrdhost_find_by_hostname(tok);
+ if(!host) {
+ host = rrdhost_find_by_guid(tok);
+ if (!host)
+ host = find_host_by_node_id(tok);
+ }
+ }
+
+ if(!host) {
+ // we didn't find it, but it may be a uuid case mismatch for MACHINE_GUID
+ // so, recreate the machine guid in lower-case.
+ uuid_t uuid;
+ char txt[UUID_STR_LEN];
+ if (uuid_parse(tok, uuid) == 0) {
+ uuid_unparse_lower(uuid, txt);
+ host = rrdhost_find_by_guid(txt);
+ }
+ }
+
+ if (host) {
+ if(!url)
+ //no delim found
+ return append_slash_to_url_and_redirect(w);
+
+ size_t len = strlen(url) + 2;
+ char buf[len];
+ buf[0] = '/';
+ strcpy(&buf[1], url);
+ buf[len - 1] = '\0';
+
+ buffer_flush(w->url_path_decoded);
+ buffer_strcat(w->url_path_decoded, buf);
+ return func(host, w, buf);
+ }
+ }
+
+ buffer_flush(w->response.data);
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_strcat(w->response.data, "This netdata does not maintain a database for host: ");
+ buffer_strcat_htmlescape(w->response.data, tok?tok:"");
+ return HTTP_RESP_NOT_FOUND;
+}
+
+int web_client_api_request_with_node_selection(RRDHOST *host, struct web_client *w, char *decoded_url_path) {
+ // entry point for all API requests
+
+ ND_LOG_STACK lgs[] = {
+ ND_LOG_FIELD_TXT(NDF_REQUEST_METHOD, HTTP_REQUEST_MODE_2str(w->mode)),
+ ND_LOG_FIELD_BFR(NDF_REQUEST, w->url_as_received),
+ ND_LOG_FIELD_U64(NDF_CONNECTION_ID, w->id),
+ ND_LOG_FIELD_UUID(NDF_TRANSACTION_ID, &w->transaction),
+ ND_LOG_FIELD_UUID(NDF_ACCOUNT_ID, &w->auth.cloud_account_id),
+ ND_LOG_FIELD_TXT(NDF_USER_NAME, w->auth.client_name),
+ ND_LOG_FIELD_TXT(NDF_USER_ROLE, http_id2user_role(w->user_role)),
+ ND_LOG_FIELD_CB(NDF_USER_ACCESS, log_cb_http_access_to_hex, &w->access),
+ ND_LOG_FIELD_END(),
+ };
+ ND_LOG_STACK_PUSH(lgs);
+
+ // give a new transaction id to the request
+ if(uuid_is_null(w->transaction))
+ uuid_generate_random(w->transaction);
+
+ static uint32_t
+ hash_api = 0,
+ hash_host = 0,
+ hash_node = 0;
+
+ if(unlikely(!hash_api)) {
+ hash_api = simple_hash("api");
+ hash_host = simple_hash("host");
+ hash_node = simple_hash("node");
+ }
+
+ char *tok = strsep_skip_consecutive_separators(&decoded_url_path, "/?");
+ if(likely(tok && *tok)) {
+ uint32_t hash = simple_hash(tok);
+
+ if(unlikely(hash == hash_api && strcmp(tok, "api") == 0)) {
+ // current API
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: API request ...", w->id);
+ return check_host_and_call(host, w, decoded_url_path, web_client_api_request);
+ }
+ else if(unlikely((hash == hash_host && strcmp(tok, "host") == 0) || (hash == hash_node && strcmp(tok, "node") == 0))) {
+ // host switching
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: host switch request ...", w->id);
+ return web_client_switch_host(host, w, decoded_url_path, hash == hash_node, web_client_api_request_with_node_selection);
+ }
+ }
+
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "Unknown API endpoint.");
+ w->response.data->content_type = CT_TEXT_HTML;
+ return HTTP_RESP_NOT_FOUND;
+}
+
+static inline int web_client_process_url(RRDHOST *host, struct web_client *w, char *decoded_url_path) {
+ if(unlikely(!service_running(ABILITY_WEB_REQUESTS)))
+ return web_client_service_unavailable(w);
+
+ static uint32_t
+ hash_api = 0,
+ hash_netdata_conf = 0,
+ hash_host = 0,
+ hash_node = 0,
+ hash_v0 = 0,
+ hash_v1 = 0,
+ hash_v2 = 0;
+
+#ifdef NETDATA_INTERNAL_CHECKS
+ static uint32_t hash_exit = 0, hash_debug = 0, hash_mirror = 0;
+#endif
+
+ if(unlikely(!hash_api)) {
+ hash_api = simple_hash("api");
+ hash_netdata_conf = simple_hash("netdata.conf");
+ hash_host = simple_hash("host");
+ hash_node = simple_hash("node");
+ hash_v0 = simple_hash("v0");
+ hash_v1 = simple_hash("v1");
+ hash_v2 = simple_hash("v2");
+#ifdef NETDATA_INTERNAL_CHECKS
+ hash_exit = simple_hash("exit");
+ hash_debug = simple_hash("debug");
+ hash_mirror = simple_hash("mirror");
+#endif
+ }
+
+ // keep a copy of the decoded path, in case we need to serve it as a filename
+ char filename[FILENAME_MAX + 1];
+ strncpyz(filename, decoded_url_path ? decoded_url_path : "", FILENAME_MAX);
+
+ char *tok = strsep_skip_consecutive_separators(&decoded_url_path, "/?");
+ if(likely(tok && *tok)) {
+ uint32_t hash = simple_hash(tok);
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Processing command '%s'.", w->id, tok);
+
+ if(likely(hash == hash_api && strcmp(tok, "api") == 0)) { // current API
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: API request ...", w->id);
+ return check_host_and_call(host, w, decoded_url_path, web_client_api_request);
+ }
+ else if(unlikely((hash == hash_host && strcmp(tok, "host") == 0) || (hash == hash_node && strcmp(tok, "node") == 0))) { // host switching
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: host switch request ...", w->id);
+ return web_client_switch_host(host, w, decoded_url_path, hash == hash_node, web_client_process_url);
+ }
+ else if(unlikely(hash == hash_v2 && strcmp(tok, "v2") == 0)) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_WITH_VERSION))
+ return bad_request_multiple_dashboard_versions(w);
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_IS_V2);
+ return web_client_process_url(host, w, decoded_url_path);
+ }
+ else if(unlikely(hash == hash_v1 && strcmp(tok, "v1") == 0)) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_WITH_VERSION))
+ return bad_request_multiple_dashboard_versions(w);
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_IS_V1);
+ return web_client_process_url(host, w, decoded_url_path);
+ }
+ else if(unlikely(hash == hash_v0 && strcmp(tok, "v0") == 0)) {
+ if(web_client_flag_check(w, WEB_CLIENT_FLAG_PATH_WITH_VERSION))
+ return bad_request_multiple_dashboard_versions(w);
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_IS_V0);
+ return web_client_process_url(host, w, decoded_url_path);
+ }
+ else if(unlikely(hash == hash_netdata_conf && strcmp(tok, "netdata.conf") == 0)) { // netdata.conf
+ if(unlikely(!http_can_access_netdataconf(w)))
+ return web_client_permission_denied_acl(w);
+
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: generating netdata.conf ...", w->id);
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_flush(w->response.data);
+ config_generate(w->response.data, 0);
+ return HTTP_RESP_OK;
+ }
+#ifdef NETDATA_INTERNAL_CHECKS
+ else if(unlikely(hash == hash_exit && strcmp(tok, "exit") == 0)) {
+ if(unlikely(!http_can_access_netdataconf(w)))
+ return web_client_permission_denied_acl(w);
+
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_flush(w->response.data);
+
+ if(!netdata_exit)
+ buffer_strcat(w->response.data, "ok, will do...");
+ else
+ buffer_strcat(w->response.data, "I am doing it already");
+
+ netdata_log_error("web request to exit received.");
+ netdata_cleanup_and_exit(0, NULL, NULL, NULL);
+ return HTTP_RESP_OK;
+ }
+ else if(unlikely(hash == hash_debug && strcmp(tok, "debug") == 0)) {
+ if(unlikely(!http_can_access_netdataconf(w)))
+ return web_client_permission_denied_acl(w);
+
+ buffer_flush(w->response.data);
+
+ // get the name of the data to show
+ tok = strsep_skip_consecutive_separators(&decoded_url_path, "&");
+ if(tok && *tok) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Searching for RRD data with name '%s'.", w->id, tok);
+
+ // do we have such a data set?
+ RRDSET *st = rrdset_find_byname(host, tok);
+ if(!st) st = rrdset_find(host, tok);
+ if(!st) {
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_strcat(w->response.data, "Chart is not found: ");
+ buffer_strcat_htmlescape(w->response.data, tok);
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: %s is not found.", w->id, tok);
+ return HTTP_RESP_NOT_FOUND;
+ }
+
+ debug_flags |= D_RRD_STATS;
+
+ if(rrdset_flag_check(st, RRDSET_FLAG_DEBUG))
+ rrdset_flag_clear(st, RRDSET_FLAG_DEBUG);
+ else
+ rrdset_flag_set(st, RRDSET_FLAG_DEBUG);
+
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_sprintf(w->response.data, "Chart has now debug %s: ", rrdset_flag_check(st, RRDSET_FLAG_DEBUG)?"enabled":"disabled");
+ buffer_strcat_htmlescape(w->response.data, tok);
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: debug for %s is %s.", w->id, tok, rrdset_flag_check(st, RRDSET_FLAG_DEBUG)?"enabled":"disabled");
+ return HTTP_RESP_OK;
+ }
+
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "debug which chart?\r\n");
+ return HTTP_RESP_BAD_REQUEST;
+ }
+ else if(unlikely(hash == hash_mirror && strcmp(tok, "mirror") == 0)) {
+ if(unlikely(!http_can_access_netdataconf(w)))
+ return web_client_permission_denied_acl(w);
+
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: Mirroring...", w->id);
+
+ // replace the zero bytes with spaces
+ buffer_char_replace(w->response.data, '\0', ' ');
+
+ // just leave the buffer as-is
+ // it will be copied back to the client
+
+ return HTTP_RESP_OK;
+ }
+#endif /* NETDATA_INTERNAL_CHECKS */
+ }
+
+ buffer_flush(w->response.data);
+ return mysendfile(w, filename);
+}
+
+static bool web_server_log_transport(BUFFER *wb, void *ptr) {
+ struct web_client *w = ptr;
+ if(!w)
+ return false;
+
+#ifdef ENABLE_HTTPS
+ buffer_strcat(wb, SSL_connection(&w->ssl) ? "https" : "http");
+#else
+ buffer_strcat(wb, "http");
+#endif
+ return true;
+}
+
+void web_client_process_request_from_web_server(struct web_client *w) {
+ // entry point for web server requests
+
+ ND_LOG_STACK lgs[] = {
+ ND_LOG_FIELD_CB(NDF_SRC_TRANSPORT, web_server_log_transport, w),
+ ND_LOG_FIELD_TXT(NDF_SRC_IP, w->client_ip),
+ ND_LOG_FIELD_TXT(NDF_SRC_PORT, w->client_port),
+ ND_LOG_FIELD_TXT(NDF_SRC_FORWARDED_HOST, w->forwarded_host),
+ ND_LOG_FIELD_TXT(NDF_SRC_FORWARDED_FOR, w->forwarded_for),
+ ND_LOG_FIELD_TXT(NDF_NIDL_NODE, w->client_host),
+ ND_LOG_FIELD_TXT(NDF_REQUEST_METHOD, HTTP_REQUEST_MODE_2str(w->mode)),
+ ND_LOG_FIELD_BFR(NDF_REQUEST, w->url_as_received),
+ ND_LOG_FIELD_U64(NDF_CONNECTION_ID, w->id),
+ ND_LOG_FIELD_UUID(NDF_TRANSACTION_ID, &w->transaction),
+ ND_LOG_FIELD_UUID(NDF_ACCOUNT_ID, &w->auth.cloud_account_id),
+ ND_LOG_FIELD_TXT(NDF_USER_NAME, w->auth.client_name),
+ ND_LOG_FIELD_TXT(NDF_USER_ROLE, http_id2user_role(w->user_role)),
+ ND_LOG_FIELD_CB(NDF_USER_ACCESS, log_cb_http_access_to_hex, &w->access),
+ ND_LOG_FIELD_END(),
+ };
+ ND_LOG_STACK_PUSH(lgs);
+
+ // give a new transaction id to the request
+ if(uuid_is_null(w->transaction))
+ uuid_generate_random(w->transaction);
+
+ // start timing us
+ web_client_timeout_checkpoint_init(w);
+
+ switch(http_request_validate(w)) {
+ case HTTP_VALIDATION_OK:
+ if(!web_client_flag_check(w, WEB_CLIENT_FLAG_PROGRESS_TRACKING)) {
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PROGRESS_TRACKING);
+ query_progress_start_or_update(&w->transaction, 0, w->mode, w->acl,
+ buffer_tostring(w->url_as_received),
+ w->payload,
+ w->forwarded_for ? w->forwarded_for : w->client_ip);
+ }
+
+ switch(w->mode) {
+ case HTTP_REQUEST_MODE_STREAM:
+ if(unlikely(!http_can_access_stream(w))) {
+ web_client_permission_denied_acl(w);
+ return;
+ }
+
+ w->response.code = rrdpush_receiver_thread_spawn(w, (char *)buffer_tostring(w->url_query_string_decoded), NULL);
+ return;
+
+ case HTTP_REQUEST_MODE_OPTIONS:
+ if(unlikely(
+ !http_can_access_dashboard(w) &&
+ !http_can_access_registry(w) &&
+ !http_can_access_badges(w) &&
+ !http_can_access_mgmt(w) &&
+ !http_can_access_netdataconf(w)
+ )) {
+ web_client_permission_denied_acl(w);
+ break;
+ }
+
+ w->response.data->content_type = CT_TEXT_PLAIN;
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "OK");
+ w->response.code = HTTP_RESP_OK;
+ break;
+
+ case HTTP_REQUEST_MODE_FILECOPY:
+ case HTTP_REQUEST_MODE_POST:
+ case HTTP_REQUEST_MODE_GET:
+ case HTTP_REQUEST_MODE_PUT:
+ case HTTP_REQUEST_MODE_DELETE:
+ if(unlikely(
+ !http_can_access_dashboard(w) &&
+ !http_can_access_registry(w) &&
+ !http_can_access_badges(w) &&
+ !http_can_access_mgmt(w) &&
+ !http_can_access_netdataconf(w)
+ )) {
+ web_client_permission_denied_acl(w);
+ break;
+ }
+
+ web_client_reset_path_flags(w);
+
+ // find if the URL path has a filename extension
+ char path[FILENAME_MAX + 1];
+ strncpyz(path, buffer_tostring(w->url_path_decoded), FILENAME_MAX);
+ char *s = path, *e = path;
+
+ // remove the query string and find the last char
+ for (; *e ; e++) {
+ if (*e == '?')
+ break;
+ }
+
+ if(e == s || (*(e - 1) == '/'))
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_HAS_TRAILING_SLASH);
+
+ // check if there is a filename extension
+ while (--e > s) {
+ if (*e == '/')
+ break;
+ if(*e == '.') {
+ web_client_flag_set(w, WEB_CLIENT_FLAG_PATH_HAS_FILE_EXTENSION);
+ break;
+ }
+ }
+
+ w->response.code = (short)web_client_process_url(localhost, w, path);
+ break;
+
+ default:
+ web_client_permission_denied_acl(w);
+ return;
+ }
+ break;
+
+ case HTTP_VALIDATION_INCOMPLETE:
+ if(w->response.data->len > NETDATA_WEB_REQUEST_MAX_SIZE) {
+ buffer_flush(w->url_as_received);
+ buffer_strcat(w->url_as_received, "too big request");
+
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: Received request is too big (%zu bytes).", w->id, w->response.data->len);
+
+ size_t len = w->response.data->len;
+ buffer_flush(w->response.data);
+ buffer_sprintf(w->response.data, "Received request is too big (received %zu bytes, max is %zu bytes).\r\n", len, (size_t)NETDATA_WEB_REQUEST_MAX_SIZE);
+ w->response.code = HTTP_RESP_BAD_REQUEST;
+ }
+ else {
+ // wait for more data
+ // set to normal to prevent web_server_rcv_callback
+ // from going into stream mode
+ if (w->mode == HTTP_REQUEST_MODE_STREAM)
+ w->mode = HTTP_REQUEST_MODE_GET;
+ return;
+ }
+ break;
+#ifdef ENABLE_HTTPS
+ case HTTP_VALIDATION_REDIRECT:
+ {
+ buffer_flush(w->response.data);
+ w->response.data->content_type = CT_TEXT_HTML;
+ buffer_strcat(w->response.data,
+ "<!DOCTYPE html><!-- SPDX-License-Identifier: GPL-3.0-or-later --><html>"
+ "<body onload=\"window.location.href ='https://'+ window.location.hostname +"
+ " ':' + window.location.port + window.location.pathname + window.location.search\">"
+ "Redirecting to safety connection, case your browser does not support redirection, please"
+ " click <a onclick=\"window.location.href ='https://'+ window.location.hostname + ':' "
+ " + window.location.port + window.location.pathname + window.location.search\">here</a>."
+ "</body></html>");
+ w->response.code = HTTP_RESP_HTTPS_UPGRADE;
+ break;
+ }
+#endif
+ case HTTP_VALIDATION_MALFORMED_URL:
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: Malformed URL '%s'.", w->id, w->response.data->buffer);
+
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "Malformed URL...\r\n");
+ w->response.code = HTTP_RESP_BAD_REQUEST;
+ break;
+ case HTTP_VALIDATION_EXCESS_REQUEST_DATA:
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: Excess data in request '%s'.", w->id, w->response.data->buffer);
+
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "Excess data in request.\r\n");
+ w->response.code = HTTP_RESP_BAD_REQUEST;
+ break;
+ case HTTP_VALIDATION_TOO_MANY_READ_RETRIES:
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: Too many retries to read request '%s'.", w->id, w->response.data->buffer);
+
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "Too many retries to read request.\r\n");
+ w->response.code = HTTP_RESP_BAD_REQUEST;
+ break;
+ case HTTP_VALIDATION_NOT_SUPPORTED:
+ netdata_log_debug(D_WEB_CLIENT_ACCESS, "%llu: HTTP method requested is not supported '%s'.", w->id, w->response.data->buffer);
+
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "HTTP method requested is not supported...\r\n");
+ w->response.code = HTTP_RESP_BAD_REQUEST;
+ break;
+ }
+
+ // keep track of the processing time
+ web_client_timeout_checkpoint_response_ready(w, NULL);
+
+ w->response.sent = 0;
+
+ web_client_send_http_header(w);
+
+ // enable sending immediately if we have data
+ if(w->response.data->len) web_client_enable_wait_send(w);
+ else web_client_disable_wait_send(w);
+
+ switch(w->mode) {
+ case HTTP_REQUEST_MODE_STREAM:
+ netdata_log_debug(D_WEB_CLIENT, "%llu: STREAM done.", w->id);
+ break;
+
+ case HTTP_REQUEST_MODE_OPTIONS:
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Done preparing the OPTIONS response. Sending data (%zu bytes) to client.", w->id, w->response.data->len);
+ break;
+
+ case HTTP_REQUEST_MODE_POST:
+ case HTTP_REQUEST_MODE_GET:
+ case HTTP_REQUEST_MODE_PUT:
+ case HTTP_REQUEST_MODE_DELETE:
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Done preparing the response. Sending data (%zu bytes) to client.", w->id, w->response.data->len);
+ break;
+
+ case HTTP_REQUEST_MODE_FILECOPY:
+ if(w->response.rlen) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Done preparing the response. Will be sending data file of %zu bytes to client.", w->id, w->response.rlen);
+ web_client_enable_wait_receive(w);
+
+ /*
+ // utilize the kernel sendfile() for copying the file to the socket.
+ // this block of code can be commented, without anything missing.
+ // when it is commented, the program will copy the data using async I/O.
+ {
+ long len = sendfile(w->ofd, w->ifd, NULL, w->response.data->rbytes);
+ if(len != w->response.data->rbytes)
+ netdata_log_error("%llu: sendfile() should copy %ld bytes, but copied %ld. Falling back to manual copy.", w->id, w->response.data->rbytes, len);
+ else
+ web_client_request_done(w);
+ }
+ */
+ }
+ else
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Done preparing the response. Will be sending an unknown amount of bytes to client.", w->id);
+ break;
+
+ default:
+ fatal("%llu: Unknown client mode %u.", w->id, w->mode);
+ break;
+ }
+}
+
+ssize_t web_client_send_chunk_header(struct web_client *w, size_t len)
+{
+ netdata_log_debug(D_DEFLATE, "%llu: OPEN CHUNK of %zu bytes (hex: %zx).", w->id, len, len);
+ char buf[24];
+ ssize_t bytes;
+ bytes = (ssize_t)sprintf(buf, "%zX\r\n", len);
+ buf[bytes] = 0x00;
+
+ bytes = web_client_send_data(w,buf,strlen(buf),0);
+ if(bytes > 0) {
+ netdata_log_debug(D_DEFLATE, "%llu: Sent chunk header %zd bytes.", w->id, bytes);
+ w->statistics.sent_bytes += bytes;
+ }
+
+ else if(bytes == 0) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Did not send chunk header to the client.", w->id);
+ }
+ else {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Failed to send chunk header to client.", w->id);
+ WEB_CLIENT_IS_DEAD(w);
+ }
+
+ return bytes;
+}
+
+ssize_t web_client_send_chunk_close(struct web_client *w)
+{
+ //debug(D_DEFLATE, "%llu: CLOSE CHUNK.", w->id);
+
+ ssize_t bytes;
+ bytes = web_client_send_data(w,"\r\n",2,0);
+ if(bytes > 0) {
+ netdata_log_debug(D_DEFLATE, "%llu: Sent chunk suffix %zd bytes.", w->id, bytes);
+ w->statistics.sent_bytes += bytes;
+ }
+
+ else if(bytes == 0) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Did not send chunk suffix to the client.", w->id);
+ }
+ else {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Failed to send chunk suffix to client.", w->id);
+ WEB_CLIENT_IS_DEAD(w);
+ }
+
+ return bytes;
+}
+
+ssize_t web_client_send_chunk_finalize(struct web_client *w)
+{
+ //debug(D_DEFLATE, "%llu: FINALIZE CHUNK.", w->id);
+
+ ssize_t bytes;
+ bytes = web_client_send_data(w,"\r\n0\r\n\r\n",7,0);
+ if(bytes > 0) {
+ netdata_log_debug(D_DEFLATE, "%llu: Sent chunk suffix %zd bytes.", w->id, bytes);
+ w->statistics.sent_bytes += bytes;
+ }
+
+ else if(bytes == 0) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Did not send chunk finalize suffix to the client.", w->id);
+ }
+ else {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Failed to send chunk finalize suffix to client.", w->id);
+ WEB_CLIENT_IS_DEAD(w);
+ }
+
+ return bytes;
+}
+
+ssize_t web_client_send_deflate(struct web_client *w)
+{
+ ssize_t len = 0, t = 0;
+
+ // when using compression,
+ // w->response.sent is the amount of bytes passed through compression
+
+ netdata_log_debug(D_DEFLATE, "%llu: web_client_send_deflate(): w->response.data->len = %zu, w->response.sent = %zu, w->response.zhave = %zu, w->response.zsent = %zu, w->response.zstream.avail_in = %u, w->response.zstream.avail_out = %u, w->response.zstream.total_in = %lu, w->response.zstream.total_out = %lu.",
+ w->id, w->response.data->len, w->response.sent, w->response.zhave, w->response.zsent, w->response.zstream.avail_in, w->response.zstream.avail_out, w->response.zstream.total_in, w->response.zstream.total_out);
+
+ if(w->response.data->len - w->response.sent == 0 && w->response.zstream.avail_in == 0 && w->response.zhave == w->response.zsent && w->response.zstream.avail_out != 0) {
+ // there is nothing to send
+
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Out of output data.", w->id);
+
+ // finalize the chunk
+ if(w->response.sent != 0) {
+ t = web_client_send_chunk_finalize(w);
+ if(t < 0) return t;
+ }
+
+ if(w->mode == HTTP_REQUEST_MODE_FILECOPY && web_client_has_wait_receive(w) && w->response.rlen && w->response.rlen > w->response.data->len) {
+ // we have to wait, more data will come
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Waiting for more data to become available.", w->id);
+ web_client_disable_wait_send(w);
+ return t;
+ }
+
+ if(unlikely(!web_client_has_keepalive(w))) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Closing (keep-alive is not enabled). %zu bytes sent.", w->id, w->response.sent);
+ WEB_CLIENT_IS_DEAD(w);
+ return t;
+ }
+
+ // reset the client
+ web_client_request_done(w);
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Done sending all data on socket.", w->id);
+ return t;
+ }
+
+ if(w->response.zhave == w->response.zsent) {
+ // compress more input data
+
+ // close the previous open chunk
+ if(w->response.sent != 0) {
+ t = web_client_send_chunk_close(w);
+ if(t < 0) return t;
+ }
+
+ netdata_log_debug(D_DEFLATE, "%llu: Compressing %zu new bytes starting from %zu (and %u left behind).", w->id, (w->response.data->len - w->response.sent), w->response.sent, w->response.zstream.avail_in);
+
+ // give the compressor all the data not passed through the compressor yet
+ if(w->response.data->len > w->response.sent) {
+ w->response.zstream.next_in = (Bytef *)&w->response.data->buffer[w->response.sent - w->response.zstream.avail_in];
+ w->response.zstream.avail_in += (uInt) (w->response.data->len - w->response.sent);
+ }
+
+ // reset the compressor output buffer
+ w->response.zstream.next_out = w->response.zbuffer;
+ w->response.zstream.avail_out = NETDATA_WEB_RESPONSE_ZLIB_CHUNK_SIZE;
+
+ // ask for FINISH if we have all the input
+ int flush = Z_SYNC_FLUSH;
+ if((w->mode == HTTP_REQUEST_MODE_GET || w->mode == HTTP_REQUEST_MODE_POST || w->mode == HTTP_REQUEST_MODE_PUT || w->mode == HTTP_REQUEST_MODE_DELETE)
+ || (w->mode == HTTP_REQUEST_MODE_FILECOPY && !web_client_has_wait_receive(w) && w->response.data->len == w->response.rlen)) {
+ flush = Z_FINISH;
+ netdata_log_debug(D_DEFLATE, "%llu: Requesting Z_FINISH, if possible.", w->id);
+ }
+ else {
+ netdata_log_debug(D_DEFLATE, "%llu: Requesting Z_SYNC_FLUSH.", w->id);
+ }
+
+ // compress
+ if(deflate(&w->response.zstream, flush) == Z_STREAM_ERROR) {
+ netdata_log_error("%llu: Compression failed. Closing down client.", w->id);
+ web_client_request_done(w);
+ return(-1);
+ }
+
+ w->response.zhave = NETDATA_WEB_RESPONSE_ZLIB_CHUNK_SIZE - w->response.zstream.avail_out;
+ w->response.zsent = 0;
+
+ // keep track of the bytes passed through the compressor
+ w->response.sent = w->response.data->len;
+
+ netdata_log_debug(D_DEFLATE, "%llu: Compression produced %zu bytes.", w->id, w->response.zhave);
+
+ // open a new chunk
+ ssize_t t2 = web_client_send_chunk_header(w, w->response.zhave);
+ if(t2 < 0) return t2;
+ t += t2;
+ }
+
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Sending %zu bytes of data (+%zd of chunk header).", w->id, w->response.zhave - w->response.zsent, t);
+
+ len = web_client_send_data(w,&w->response.zbuffer[w->response.zsent], (size_t) (w->response.zhave - w->response.zsent), MSG_DONTWAIT);
+ if(len > 0) {
+ w->statistics.sent_bytes += len;
+ w->response.zsent += len;
+ len += t;
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Sent %zd bytes.", w->id, len);
+ }
+ else if(len == 0) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Did not send any bytes to the client (zhave = %zu, zsent = %zu, need to send = %zu).",
+ w->id, w->response.zhave, w->response.zsent, w->response.zhave - w->response.zsent);
+
+ }
+ else {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Failed to send data to client.", w->id);
+ WEB_CLIENT_IS_DEAD(w);
+ }
+
+ return(len);
+}
+
+ssize_t web_client_send(struct web_client *w) {
+ if(likely(w->response.zoutput)) return web_client_send_deflate(w);
+
+ ssize_t bytes;
+
+ if(unlikely(w->response.data->len - w->response.sent == 0)) {
+ // there is nothing to send
+
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Out of output data.", w->id);
+
+ // there can be two cases for this
+ // A. we have done everything
+ // B. we temporarily have nothing to send, waiting for the buffer to be filled by ifd
+
+ if(w->mode == HTTP_REQUEST_MODE_FILECOPY && web_client_has_wait_receive(w) && w->response.rlen && w->response.rlen > w->response.data->len) {
+ // we have to wait, more data will come
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Waiting for more data to become available.", w->id);
+ web_client_disable_wait_send(w);
+ return 0;
+ }
+
+ if(unlikely(!web_client_has_keepalive(w))) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Closing (keep-alive is not enabled). %zu bytes sent.", w->id, w->response.sent);
+ WEB_CLIENT_IS_DEAD(w);
+ return 0;
+ }
+
+ web_client_request_done(w);
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Done sending all data on socket. Waiting for next request on the same socket.", w->id);
+ return 0;
+ }
+
+ bytes = web_client_send_data(w,&w->response.data->buffer[w->response.sent], w->response.data->len - w->response.sent, MSG_DONTWAIT);
+ if(likely(bytes > 0)) {
+ w->statistics.sent_bytes += bytes;
+ w->response.sent += bytes;
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Sent %zd bytes.", w->id, bytes);
+ }
+ else if(likely(bytes == 0)) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Did not send any bytes to the client.", w->id);
+ }
+ else {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Failed to send data to client.", w->id);
+ WEB_CLIENT_IS_DEAD(w);
+ }
+
+ return(bytes);
+}
+
+ssize_t web_client_read_file(struct web_client *w)
+{
+ if(unlikely(w->response.rlen > w->response.data->size))
+ buffer_need_bytes(w->response.data, w->response.rlen - w->response.data->size);
+
+ if(unlikely(w->response.rlen <= w->response.data->len))
+ return 0;
+
+ ssize_t left = (ssize_t)(w->response.rlen - w->response.data->len);
+ ssize_t bytes = read(w->ifd, &w->response.data->buffer[w->response.data->len], (size_t)left);
+ if(likely(bytes > 0)) {
+ size_t old = w->response.data->len;
+ (void)old;
+
+ w->response.data->len += bytes;
+ w->response.data->buffer[w->response.data->len] = '\0';
+
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Read %zd bytes.", w->id, bytes);
+ netdata_log_debug(D_WEB_DATA, "%llu: Read data: '%s'.", w->id, &w->response.data->buffer[old]);
+
+ web_client_enable_wait_send(w);
+
+ if(w->response.rlen && w->response.data->len >= w->response.rlen)
+ web_client_disable_wait_receive(w);
+ }
+ else if(likely(bytes == 0)) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Out of input file data.", w->id);
+
+ // if we cannot read, it means we have an error on input.
+ // if however, we are copying a file from ifd to ofd, we should not return an error.
+ // in this case, the error should be generated when the file has been sent to the client.
+
+ // we are copying data from ifd to ofd
+ // let it finish copying...
+ web_client_disable_wait_receive(w);
+
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Read the whole file.", w->id);
+
+ if(web_server_mode != WEB_SERVER_MODE_STATIC_THREADED) {
+ if (w->ifd != w->ofd) close(w->ifd);
+ }
+
+ w->ifd = w->ofd;
+ }
+ else {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: read data failed.", w->id);
+ WEB_CLIENT_IS_DEAD(w);
+ }
+
+ return(bytes);
+}
+
+ssize_t web_client_receive(struct web_client *w)
+{
+ if(unlikely(w->mode == HTTP_REQUEST_MODE_FILECOPY))
+ return web_client_read_file(w);
+
+ ssize_t bytes;
+ ssize_t left = (ssize_t)(w->response.data->size - w->response.data->len);
+
+ // do we have any space for more data?
+ buffer_need_bytes(w->response.data, NETDATA_WEB_REQUEST_INITIAL_SIZE);
+
+ errno = 0;
+
+#ifdef ENABLE_HTTPS
+ if ( (web_client_check_conn_tcp(w)) && (netdata_ssl_web_server_ctx) ) {
+ if (SSL_connection(&w->ssl)) {
+ bytes = netdata_ssl_read(&w->ssl, &w->response.data->buffer[w->response.data->len], (size_t) (left - 1));
+ web_client_enable_wait_from_ssl(w);
+ }
+ else {
+ bytes = recv(w->ifd, &w->response.data->buffer[w->response.data->len], (size_t) (left - 1), MSG_DONTWAIT);
+ }
+ }
+ else if(web_client_check_conn_tcp(w) || web_client_check_conn_unix(w)) {
+ bytes = recv(w->ifd, &w->response.data->buffer[w->response.data->len], (size_t) (left - 1), MSG_DONTWAIT);
+ }
+ else // other connection methods
+ bytes = -1;
+#else
+ if(web_client_check_conn_tcp(w) || web_client_check_conn_unix(w))
+ bytes = recv(w->ifd, &w->response.data->buffer[w->response.data->len], (size_t) (left - 1), MSG_DONTWAIT);
+ else
+ bytes = -1;
+#endif
+
+ if(likely(bytes > 0)) {
+ w->statistics.received_bytes += bytes;
+
+ size_t old = w->response.data->len;
+ (void)old;
+
+ w->response.data->len += bytes;
+ w->response.data->buffer[w->response.data->len] = '\0';
+
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Received %zd bytes.", w->id, bytes);
+ netdata_log_debug(D_WEB_DATA, "%llu: Received data: '%s'.", w->id, &w->response.data->buffer[old]);
+ }
+ else if(unlikely(bytes < 0 && (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR))) {
+ web_client_enable_wait_receive(w);
+ return 0;
+ }
+ else if (bytes < 0) {
+ netdata_log_debug(D_WEB_CLIENT, "%llu: receive data failed.", w->id);
+ WEB_CLIENT_IS_DEAD(w);
+ } else
+ netdata_log_debug(D_WEB_CLIENT, "%llu: Received %zd bytes.", w->id, bytes);
+
+ return(bytes);
+}
+
+void web_client_decode_path_and_query_string(struct web_client *w, const char *path_and_query_string) {
+ char buffer[NETDATA_WEB_REQUEST_URL_SIZE + 2];
+ buffer[0] = '\0';
+
+ buffer_flush(w->url_path_decoded);
+ buffer_flush(w->url_query_string_decoded);
+
+ if(buffer_strlen(w->url_as_received) == 0)
+ // do not overwrite this if it is already filled
+ buffer_strcat(w->url_as_received, path_and_query_string);
+
+ if(w->mode == HTTP_REQUEST_MODE_STREAM) {
+ // in stream mode, there is no path
+
+ url_decode_r(buffer, path_and_query_string, NETDATA_WEB_REQUEST_URL_SIZE + 1);
+
+ buffer[NETDATA_WEB_REQUEST_URL_SIZE + 1] = '\0';
+ buffer_strcat(w->url_query_string_decoded, buffer);
+ }
+ else {
+ // in non-stream mode, there is a path
+ // FIXME - the way this is implemented, query string params never accept the symbol &, not even encoded as %26
+ // To support the symbol & in query string params, we need to turn the url_query_string_decoded into a
+ // dictionary and decode each of the parameters individually.
+ // OR: in url_query_string_decoded use as separator a control character that cannot appear in the URL.
+
+ url_decode_r(buffer, path_and_query_string, NETDATA_WEB_REQUEST_URL_SIZE + 1);
+
+ char *question_mark_start = strchr(buffer, '?');
+ if (question_mark_start) {
+ buffer_strcat(w->url_query_string_decoded, question_mark_start);
+ char c = *question_mark_start;
+ *question_mark_start = '\0';
+ buffer_strcat(w->url_path_decoded, buffer);
+ *question_mark_start = c;
+ } else {
+ buffer_strcat(w->url_query_string_decoded, "");
+ buffer_strcat(w->url_path_decoded, buffer);
+ }
+ }
+}
+
+void web_client_reuse_from_cache(struct web_client *w) {
+ // zero everything about it - but keep the buffers
+
+ web_client_reset_allocations(w, false);
+
+ // remember the pointers to the buffers
+ BUFFER *b1 = w->response.data;
+ BUFFER *b2 = w->response.header;
+ BUFFER *b3 = w->response.header_output;
+ BUFFER *b4 = w->url_path_decoded;
+ BUFFER *b5 = w->url_as_received;
+ BUFFER *b6 = w->url_query_string_decoded;
+ BUFFER *b7 = w->payload;
+
+#ifdef ENABLE_HTTPS
+ NETDATA_SSL ssl = w->ssl;
+#endif
+
+ size_t use_count = w->use_count;
+ size_t *statistics_memory_accounting = w->statistics.memory_accounting;
+
+ // zero everything
+ memset(w, 0, sizeof(struct web_client));
+
+ w->ifd = w->ofd = -1;
+ w->statistics.memory_accounting = statistics_memory_accounting;
+ w->use_count = use_count;
+
+#ifdef ENABLE_HTTPS
+ w->ssl = ssl;
+#endif
+
+ // restore the pointers of the buffers
+ w->response.data = b1;
+ w->response.header = b2;
+ w->response.header_output = b3;
+ w->url_path_decoded = b4;
+ w->url_as_received = b5;
+ w->url_query_string_decoded = b6;
+ w->payload = b7;
+}
+
+struct web_client *web_client_create(size_t *statistics_memory_accounting) {
+ struct web_client *w = (struct web_client *)callocz(1, sizeof(struct web_client));
+
+#ifdef ENABLE_HTTPS
+ w->ssl = NETDATA_SSL_UNSET_CONNECTION;
+#endif
+
+ w->use_count = 1;
+ w->statistics.memory_accounting = statistics_memory_accounting;
+
+ w->url_as_received = buffer_create(NETDATA_WEB_DECODED_URL_INITIAL_SIZE, w->statistics.memory_accounting);
+ w->url_path_decoded = buffer_create(NETDATA_WEB_DECODED_URL_INITIAL_SIZE, w->statistics.memory_accounting);
+ w->url_query_string_decoded = buffer_create(NETDATA_WEB_DECODED_URL_INITIAL_SIZE, w->statistics.memory_accounting);
+ w->response.data = buffer_create(NETDATA_WEB_RESPONSE_INITIAL_SIZE, w->statistics.memory_accounting);
+ w->response.header = buffer_create(NETDATA_WEB_RESPONSE_HEADER_INITIAL_SIZE, w->statistics.memory_accounting);
+ w->response.header_output = buffer_create(NETDATA_WEB_RESPONSE_HEADER_INITIAL_SIZE, w->statistics.memory_accounting);
+
+ __atomic_add_fetch(w->statistics.memory_accounting, sizeof(struct web_client), __ATOMIC_RELAXED);
+
+ return w;
+}
+
+void web_client_free(struct web_client *w) {
+#ifdef ENABLE_HTTPS
+ netdata_ssl_close(&w->ssl);
+#endif
+
+ web_client_reset_allocations(w, true);
+
+ __atomic_sub_fetch(w->statistics.memory_accounting, sizeof(struct web_client), __ATOMIC_RELAXED);
+ freez(w);
+}
+
+inline void web_client_timeout_checkpoint_init(struct web_client *w) {
+ now_monotonic_high_precision_timeval(&w->timings.tv_in);
+}
+
+inline void web_client_timeout_checkpoint_set(struct web_client *w, int timeout_ms) {
+ w->timings.timeout_ut = timeout_ms * USEC_PER_MS;
+
+ if(!w->timings.tv_in.tv_sec)
+ web_client_timeout_checkpoint_init(w);
+
+ if(!w->timings.tv_timeout_last_checkpoint.tv_sec)
+ w->timings.tv_timeout_last_checkpoint = w->timings.tv_in;
+}
+
+inline usec_t web_client_timeout_checkpoint(struct web_client *w) {
+ struct timeval now;
+ now_monotonic_high_precision_timeval(&now);
+
+ if (!w->timings.tv_timeout_last_checkpoint.tv_sec)
+ w->timings.tv_timeout_last_checkpoint = w->timings.tv_in;
+
+ usec_t since_last_check_ut = dt_usec(&w->timings.tv_timeout_last_checkpoint, &now);
+
+ w->timings.tv_timeout_last_checkpoint = now;
+
+ return since_last_check_ut;
+}
+
+inline usec_t web_client_timeout_checkpoint_response_ready(struct web_client *w, usec_t *usec_since_last_checkpoint) {
+ usec_t since_last_check_ut = web_client_timeout_checkpoint(w);
+ if(usec_since_last_checkpoint)
+ *usec_since_last_checkpoint = since_last_check_ut;
+
+ w->timings.tv_ready = w->timings.tv_timeout_last_checkpoint;
+
+ // return the total time of the query
+ return dt_usec(&w->timings.tv_in, &w->timings.tv_ready);
+}
+
+inline bool web_client_timeout_checkpoint_and_check(struct web_client *w, usec_t *usec_since_last_checkpoint) {
+
+ usec_t since_last_check_ut = web_client_timeout_checkpoint(w);
+ if(usec_since_last_checkpoint)
+ *usec_since_last_checkpoint = since_last_check_ut;
+
+ if(!w->timings.timeout_ut)
+ return false;
+
+ usec_t since_reception_ut = dt_usec(&w->timings.tv_in, &w->timings.tv_timeout_last_checkpoint);
+ if (since_reception_ut >= w->timings.timeout_ut) {
+ buffer_flush(w->response.data);
+ buffer_strcat(w->response.data, "Query timeout exceeded");
+ w->response.code = HTTP_RESP_GATEWAY_TIMEOUT;
+ return true;
+ }
+
+ return false;
+}
diff --git a/src/web/server/web_client.h b/src/web/server/web_client.h
new file mode 100644
index 000000000..90e19e8a6
--- /dev/null
+++ b/src/web/server/web_client.h
@@ -0,0 +1,276 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef NETDATA_WEB_CLIENT_H
+#define NETDATA_WEB_CLIENT_H 1
+
+#include "libnetdata/libnetdata.h"
+
+struct web_client;
+
+extern int web_enable_gzip, web_gzip_level, web_gzip_strategy;
+
+#define HTTP_REQ_MAX_HEADER_FETCH_TRIES 100
+
+extern int respect_web_browser_do_not_track_policy;
+extern char *web_x_frame_options;
+
+typedef enum __attribute__((packed)) {
+ HTTP_VALIDATION_OK,
+ HTTP_VALIDATION_NOT_SUPPORTED,
+ HTTP_VALIDATION_TOO_MANY_READ_RETRIES,
+ HTTP_VALIDATION_EXCESS_REQUEST_DATA,
+ HTTP_VALIDATION_MALFORMED_URL,
+ HTTP_VALIDATION_INCOMPLETE,
+#ifdef ENABLE_HTTPS
+ HTTP_VALIDATION_REDIRECT
+#endif
+} HTTP_VALIDATION;
+
+typedef enum __attribute__((packed)) {
+ WEB_CLIENT_FLAG_DEAD = (1 << 0), // this client is dead
+
+ WEB_CLIENT_FLAG_KEEPALIVE = (1 << 1), // the web client will be re-used
+
+ // compression
+ WEB_CLIENT_ENCODING_GZIP = (1 << 2),
+ WEB_CLIENT_ENCODING_DEFLATE = (1 << 3),
+ WEB_CLIENT_CHUNKED_TRANSFER = (1 << 4), // chunked transfer (used with zlib compression)
+
+ WEB_CLIENT_FLAG_WAIT_RECEIVE = (1 << 5), // we are waiting more input data
+ WEB_CLIENT_FLAG_WAIT_SEND = (1 << 6), // we have data to send to the client
+ WEB_CLIENT_FLAG_SSL_WAIT_RECEIVE = (1 << 7), // we are waiting more input data from ssl connection
+ WEB_CLIENT_FLAG_SSL_WAIT_SEND = (1 << 8), // we have data to send to the client from ssl connection
+
+ // DNT
+ WEB_CLIENT_FLAG_DO_NOT_TRACK = (1 << 9), // we should not set cookies on this client
+ WEB_CLIENT_FLAG_TRACKING_REQUIRED = (1 << 10), // we need to send cookies
+
+ // connection type
+ WEB_CLIENT_FLAG_CONN_TCP = (1 << 11), // the client is using a TCP socket
+ WEB_CLIENT_FLAG_CONN_UNIX = (1 << 12), // the client is using a UNIX socket
+ WEB_CLIENT_FLAG_CONN_CLOUD = (1 << 13), // the client is using Netdata Cloud
+ WEB_CLIENT_FLAG_CONN_WEBRTC = (1 << 14), // the client is using WebRTC
+
+ // streaming
+ WEB_CLIENT_FLAG_DONT_CLOSE_SOCKET = (1 << 15), // don't close the socket when cleaning up
+
+ // dashboard version
+ WEB_CLIENT_FLAG_PATH_IS_V0 = (1 << 16), // v0 dashboard found on the path
+ WEB_CLIENT_FLAG_PATH_IS_V1 = (1 << 17), // v1 dashboard found on the path
+ WEB_CLIENT_FLAG_PATH_IS_V2 = (1 << 18), // v2 dashboard found on the path
+ WEB_CLIENT_FLAG_PATH_HAS_TRAILING_SLASH = (1 << 19), // the path has a trailing hash
+ WEB_CLIENT_FLAG_PATH_HAS_FILE_EXTENSION = (1 << 20), // the path ends with a filename extension
+
+ // authorization
+ WEB_CLIENT_FLAG_AUTH_CLOUD = (1 << 21),
+ WEB_CLIENT_FLAG_AUTH_BEARER = (1 << 22),
+ WEB_CLIENT_FLAG_AUTH_GOD = (1 << 23),
+
+ // transient settings
+ WEB_CLIENT_FLAG_PROGRESS_TRACKING = (1 << 24), // flag to avoid redoing progress work
+} WEB_CLIENT_FLAGS;
+
+#define WEB_CLIENT_FLAG_PATH_WITH_VERSION (WEB_CLIENT_FLAG_PATH_IS_V0|WEB_CLIENT_FLAG_PATH_IS_V1|WEB_CLIENT_FLAG_PATH_IS_V2)
+#define web_client_reset_path_flags(w) (w)->flags &= ~(WEB_CLIENT_FLAG_PATH_WITH_VERSION|WEB_CLIENT_FLAG_PATH_HAS_TRAILING_SLASH|WEB_CLIENT_FLAG_PATH_HAS_FILE_EXTENSION)
+
+#define web_client_flag_check(w, flag) ((w)->flags & (flag))
+#define web_client_flag_set(w, flag) (w)->flags |= (flag)
+#define web_client_flag_clear(w, flag) (w)->flags &= ~(flag)
+
+#define WEB_CLIENT_IS_DEAD(w) web_client_flag_set(w, WEB_CLIENT_FLAG_DEAD)
+#define web_client_check_dead(w) web_client_flag_check(w, WEB_CLIENT_FLAG_DEAD)
+
+#define web_client_has_keepalive(w) web_client_flag_check(w, WEB_CLIENT_FLAG_KEEPALIVE)
+#define web_client_enable_keepalive(w) web_client_flag_set(w, WEB_CLIENT_FLAG_KEEPALIVE)
+#define web_client_disable_keepalive(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_KEEPALIVE)
+
+#define web_client_has_donottrack(w) web_client_flag_check(w, WEB_CLIENT_FLAG_DO_NOT_TRACK)
+#define web_client_enable_donottrack(w) web_client_flag_set(w, WEB_CLIENT_FLAG_DO_NOT_TRACK)
+#define web_client_disable_donottrack(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_DO_NOT_TRACK)
+
+#define web_client_has_tracking_required(w) web_client_flag_check(w, WEB_CLIENT_FLAG_TRACKING_REQUIRED)
+#define web_client_enable_tracking_required(w) web_client_flag_set(w, WEB_CLIENT_FLAG_TRACKING_REQUIRED)
+#define web_client_disable_tracking_required(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_TRACKING_REQUIRED)
+
+#define web_client_has_wait_receive(w) web_client_flag_check(w, WEB_CLIENT_FLAG_WAIT_RECEIVE)
+#define web_client_enable_wait_receive(w) web_client_flag_set(w, WEB_CLIENT_FLAG_WAIT_RECEIVE)
+#define web_client_disable_wait_receive(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_WAIT_RECEIVE)
+
+#define web_client_has_wait_send(w) web_client_flag_check(w, WEB_CLIENT_FLAG_WAIT_SEND)
+#define web_client_enable_wait_send(w) web_client_flag_set(w, WEB_CLIENT_FLAG_WAIT_SEND)
+#define web_client_disable_wait_send(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_WAIT_SEND)
+
+#define web_client_has_ssl_wait_receive(w) web_client_flag_check(w, WEB_CLIENT_FLAG_SSL_WAIT_RECEIVE)
+#define web_client_enable_ssl_wait_receive(w) web_client_flag_set(w, WEB_CLIENT_FLAG_SSL_WAIT_RECEIVE)
+#define web_client_disable_ssl_wait_receive(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_SSL_WAIT_RECEIVE)
+
+#define web_client_has_ssl_wait_send(w) web_client_flag_check(w, WEB_CLIENT_FLAG_SSL_WAIT_SEND)
+#define web_client_enable_ssl_wait_send(w) web_client_flag_set(w, WEB_CLIENT_FLAG_SSL_WAIT_SEND)
+#define web_client_disable_ssl_wait_send(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_SSL_WAIT_SEND)
+
+#define web_client_check_conn_unix(w) web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_UNIX)
+#define web_client_check_conn_tcp(w) web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_TCP)
+#define web_client_check_conn_cloud(w) web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_CLOUD)
+#define web_client_check_conn_webrtc(w) web_client_flag_check(w, WEB_CLIENT_FLAG_CONN_WEBRTC)
+
+#define WEB_CLIENT_FLAG_ALL_AUTHS (WEB_CLIENT_FLAG_AUTH_CLOUD | WEB_CLIENT_FLAG_AUTH_BEARER)
+#define web_client_flags_clear_conn(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_CONN_TCP | WEB_CLIENT_FLAG_CONN_UNIX | WEB_CLIENT_FLAG_CONN_CLOUD | WEB_CLIENT_FLAG_CONN_WEBRTC)
+#define web_client_flags_check_auth(w) web_client_flag_check(w, WEB_CLIENT_FLAG_ALL_AUTHS)
+#define web_client_flags_clear_auth(w) web_client_flag_clear(w, WEB_CLIENT_FLAG_ALL_AUTHS)
+
+void web_client_reset_permissions(struct web_client *w);
+void web_client_set_permissions(struct web_client *w, HTTP_ACCESS access, HTTP_USER_ROLE role, WEB_CLIENT_FLAGS auth);
+
+void web_client_set_conn_tcp(struct web_client *w);
+void web_client_set_conn_unix(struct web_client *w);
+void web_client_set_conn_cloud(struct web_client *w);
+void web_client_set_conn_webrtc(struct web_client *w);
+
+#define NETDATA_WEB_REQUEST_URL_SIZE 65536 // static allocation
+
+#define NETDATA_WEB_RESPONSE_ZLIB_CHUNK_SIZE 16384
+
+#define NETDATA_WEB_RESPONSE_HEADER_INITIAL_SIZE 4096
+#define NETDATA_WEB_RESPONSE_INITIAL_SIZE 8192
+#define NETDATA_WEB_REQUEST_INITIAL_SIZE 8192
+#define NETDATA_WEB_REQUEST_MAX_SIZE 65536
+#define NETDATA_WEB_DECODED_URL_INITIAL_SIZE 512
+
+#define CLOUD_USER_NAME_LENGTH 64
+
+struct response {
+ BUFFER *header; // our response header
+ BUFFER *header_output; // internal use
+ BUFFER *data; // our response data buffer
+
+ short int code; // the HTTP response code
+ bool has_cookies;
+
+ size_t rlen; // if non-zero, the excepted size of ifd (input of firecopy)
+ size_t sent; // current data length sent to output
+
+ bool zoutput; // if set to 1, web_client_send() will send compressed data
+
+ bool zinitialized;
+ z_stream zstream; // zlib stream for sending compressed output to client
+ size_t zsent; // the compressed bytes we have sent to the client
+ size_t zhave; // the compressed bytes that we have received from zlib
+ Bytef zbuffer[NETDATA_WEB_RESPONSE_ZLIB_CHUNK_SIZE]; // temporary buffer for storing compressed output
+};
+
+struct web_client;
+typedef bool (*web_client_interrupt_t)(struct web_client *, void *data);
+
+struct web_client {
+ unsigned long long id;
+ size_t use_count;
+
+ uuid_t transaction;
+
+ WEB_CLIENT_FLAGS flags; // status flags for the client
+ HTTP_REQUEST_MODE mode; // the operational mode of the client
+ HTTP_ACL acl; // the access list of the client
+ HTTP_ACL port_acl; // the operations permitted on the port the client connected to
+ HTTP_ACCESS access; // the access permissions of the client
+ HTTP_USER_ROLE user_role; // the user role of the client
+ size_t header_parse_tries;
+ size_t header_parse_last_size;
+
+ bool tcp_cork;
+ int ifd;
+ int ofd;
+
+ char client_ip[INET6_ADDRSTRLEN]; // Defined buffer sizes include null-terminators
+ char client_port[NI_MAXSERV];
+ char client_host[NI_MAXHOST];
+
+ BUFFER *url_as_received; // the entire URL as received, used for logging - DO NOT MODIFY
+ BUFFER *url_path_decoded; // the path, decoded - it is incrementally parsed and altered
+ BUFFER *url_query_string_decoded; // the query string, decoded - it is incrementally parsed and altered
+
+ // THESE NEED TO BE FREED
+ char *auth_bearer_token; // the Bearer auth token (if sent)
+ char *server_host; // the Host: header
+ char *forwarded_host; // the X-Forwarded-Host: header
+ char *forwarded_for; // the X-Forwarded-For: header
+ char *origin; // the Origin: header
+ char *user_agent; // the User-Agent: header
+
+ BUFFER *payload; // when this request is a POST, this has the payload
+
+ // STATIC-THREADED WEB SERVER MEMBERS
+ size_t pollinfo_slot; // POLLINFO slot of the web client
+ size_t pollinfo_filecopy_slot; // POLLINFO slot of the file read
+
+#ifdef ENABLE_HTTPS
+ NETDATA_SSL ssl;
+#endif
+
+ struct {
+ uuid_t bearer_token;
+ uuid_t cloud_account_id;
+ char client_name[CLOUD_USER_NAME_LENGTH];
+ } auth;
+
+ struct { // A callback to check if the query should be interrupted / stopped
+ web_client_interrupt_t callback;
+ void *callback_data;
+ } interrupt;
+
+ struct {
+ size_t received_bytes;
+ size_t sent_bytes;
+ size_t *memory_accounting; // temporary pointer for constructor to use
+ } statistics;
+
+ struct {
+ usec_t timeout_ut; // timeout if set, or zero
+ struct timeval tv_in; // request received
+ struct timeval tv_ready; // request processed - response ready
+ struct timeval tv_timeout_last_checkpoint; // last checkpoint
+ } timings;
+
+ struct {
+ struct web_client *prev;
+ struct web_client *next;
+ } cache;
+
+ struct response response;
+};
+
+int web_client_permission_denied(struct web_client *w);
+int web_client_permission_denied_acl(struct web_client *w);
+
+int web_client_service_unavailable(struct web_client *w);
+
+ssize_t web_client_send(struct web_client *w);
+ssize_t web_client_receive(struct web_client *w);
+ssize_t web_client_read_file(struct web_client *w);
+
+void web_client_process_request_from_web_server(struct web_client *w);
+void web_client_request_done(struct web_client *w);
+
+void web_client_build_http_header(struct web_client *w);
+
+void web_client_reuse_from_cache(struct web_client *w);
+struct web_client *web_client_create(size_t *statistics_memory_accounting);
+void web_client_free(struct web_client *w);
+
+#include "web/api/web_api_v1.h"
+#include "web/api/web_api_v2.h"
+#include "daemon/common.h"
+
+void web_client_decode_path_and_query_string(struct web_client *w, const char *path_and_query_string);
+int web_client_api_request(RRDHOST *host, struct web_client *w, char *url_path_fragment);
+int web_client_api_request_with_node_selection(RRDHOST *host, struct web_client *w, char *decoded_url_path);
+
+void web_client_timeout_checkpoint_init(struct web_client *w);
+void web_client_timeout_checkpoint_set(struct web_client *w, int timeout_ms);
+usec_t web_client_timeout_checkpoint(struct web_client *w);
+bool web_client_timeout_checkpoint_and_check(struct web_client *w, usec_t *usec_since_last_checkpoint);
+usec_t web_client_timeout_checkpoint_response_ready(struct web_client *w, usec_t *usec_since_last_checkpoint);
+void web_client_log_completed_request(struct web_client *w, bool update_web_stats);
+
+HTTP_VALIDATION http_request_validate(struct web_client *w);
+
+#endif
diff --git a/web/server/web_client_cache.c b/src/web/server/web_client_cache.c
index 364fc76b3..654577e8a 100644
--- a/web/server/web_client_cache.c
+++ b/src/web/server/web_client_cache.c
@@ -114,7 +114,10 @@ struct web_client *web_client_get_from_cache(void) {
// initialize it
w->use_count++;
- w->mode = WEB_CLIENT_MODE_GET;
+ w->port_acl = HTTP_ACL_NONE;
+ w->acl = HTTP_ACL_NONE;
+ w->mode = HTTP_REQUEST_MODE_GET;
+ web_client_reset_permissions(w);
memset(w->transaction, 0, sizeof(w->transaction));
return w;
diff --git a/web/server/web_client_cache.h b/src/web/server/web_client_cache.h
index 85cde3e83..85cde3e83 100644
--- a/web/server/web_client_cache.h
+++ b/src/web/server/web_client_cache.h
diff --git a/src/web/server/web_server.c b/src/web/server/web_server.c
new file mode 100644
index 000000000..3497af13c
--- /dev/null
+++ b/src/web/server/web_server.c
@@ -0,0 +1,151 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#define WEB_SERVER_INTERNALS 1
+#include "web_server.h"
+
+WEB_SERVER_MODE web_server_mode = WEB_SERVER_MODE_STATIC_THREADED;
+
+// --------------------------------------------------------------------------------------
+
+WEB_SERVER_MODE web_server_mode_id(const char *mode) {
+ if(!strcmp(mode, "none"))
+ return WEB_SERVER_MODE_NONE;
+ else
+ return WEB_SERVER_MODE_STATIC_THREADED;
+
+}
+
+const char *web_server_mode_name(WEB_SERVER_MODE id) {
+ switch(id) {
+ case WEB_SERVER_MODE_NONE:
+ return "none";
+ default:
+ case WEB_SERVER_MODE_STATIC_THREADED:
+ return "static-threaded";
+ }
+}
+
+// --------------------------------------------------------------------------------------
+// API sockets
+
+LISTEN_SOCKETS api_sockets = {
+ .config = &netdata_config,
+ .config_section = CONFIG_SECTION_WEB,
+ .default_bind_to = "*",
+ .default_port = API_LISTEN_PORT,
+ .backlog = API_LISTEN_BACKLOG
+};
+
+void debug_sockets() {
+ BUFFER *wb = buffer_create(256 * sizeof(char), NULL);
+ int i;
+
+ for(i = 0 ; i < (int)api_sockets.opened ; i++) {
+ buffer_strcat(wb, (api_sockets.fds_acl_flags[i] & HTTP_ACL_NOCHECK) ? "NONE " : "");
+ buffer_strcat(wb, (api_sockets.fds_acl_flags[i] & HTTP_ACL_DASHBOARD) ? "dashboard " : "");
+ buffer_strcat(wb, (api_sockets.fds_acl_flags[i] & HTTP_ACL_REGISTRY) ? "registry " : "");
+ buffer_strcat(wb, (api_sockets.fds_acl_flags[i] & HTTP_ACL_BADGES) ? "badges " : "");
+ buffer_strcat(wb, (api_sockets.fds_acl_flags[i] & HTTP_ACL_MANAGEMENT) ? "management " : "");
+ buffer_strcat(wb, (api_sockets.fds_acl_flags[i] & HTTP_ACL_STREAMING) ? "streaming " : "");
+ buffer_strcat(wb, (api_sockets.fds_acl_flags[i] & HTTP_ACL_NETDATACONF) ? "netdata.conf " : "");
+ netdata_log_debug(D_WEB_CLIENT, "Socket fd %d name '%s' acl_flags: %s",
+ i,
+ api_sockets.fds_names[i],
+ buffer_tostring(wb));
+ buffer_reset(wb);
+ }
+ buffer_free(wb);
+}
+
+bool api_listen_sockets_setup(void) {
+ int socks = listen_sockets_setup(&api_sockets);
+
+ if(!socks)
+ return false;
+
+ if(unlikely(debug_flags & D_WEB_CLIENT))
+ debug_sockets();
+
+ return true;
+}
+
+
+// --------------------------------------------------------------------------------------
+// access lists
+
+SIMPLE_PATTERN *web_allow_connections_from = NULL;
+int web_allow_connections_dns;
+
+// WEB_CLIENT_ACL
+SIMPLE_PATTERN *web_allow_dashboard_from = NULL;
+int web_allow_dashboard_dns;
+SIMPLE_PATTERN *web_allow_registry_from = NULL;
+int web_allow_registry_dns;
+SIMPLE_PATTERN *web_allow_badges_from = NULL;
+int web_allow_badges_dns;
+SIMPLE_PATTERN *web_allow_mgmt_from = NULL;
+int web_allow_mgmt_dns;
+SIMPLE_PATTERN *web_allow_streaming_from = NULL;
+int web_allow_streaming_dns;
+SIMPLE_PATTERN *web_allow_netdataconf_from = NULL;
+int web_allow_netdataconf_dns;
+
+void web_client_update_acl_matches(struct web_client *w) {
+ w->acl = HTTP_ACL_TRANSPORTS;
+
+ if(!(w->port_acl & HTTP_ACL_TRANSPORTS_WITHOUT_CLIENT_IP_VALIDATION)) {
+ if (!web_allow_dashboard_from ||
+ connection_allowed(w->ifd, w->client_ip, w->client_host, sizeof(w->client_host),
+ web_allow_dashboard_from, "dashboard", web_allow_dashboard_dns))
+ w->acl |= HTTP_ACL_DASHBOARD;
+
+ if (!web_allow_registry_from ||
+ connection_allowed(w->ifd, w->client_ip, w->client_host, sizeof(w->client_host),
+ web_allow_registry_from, "registry", web_allow_registry_dns))
+ w->acl |= HTTP_ACL_REGISTRY;
+
+ if (!web_allow_badges_from ||
+ connection_allowed(w->ifd, w->client_ip, w->client_host, sizeof(w->client_host),
+ web_allow_badges_from, "badges", web_allow_badges_dns))
+ w->acl |= HTTP_ACL_BADGES;
+
+ if (!web_allow_mgmt_from ||
+ connection_allowed(w->ifd, w->client_ip, w->client_host, sizeof(w->client_host),
+ web_allow_mgmt_from, "management", web_allow_mgmt_dns))
+ w->acl |= HTTP_ACL_MANAGEMENT;
+
+ if (!web_allow_streaming_from ||
+ connection_allowed(w->ifd, w->client_ip, w->client_host, sizeof(w->client_host),
+ web_allow_streaming_from, "streaming", web_allow_streaming_dns))
+ w->acl |= HTTP_ACL_STREAMING;
+
+ if (!web_allow_netdataconf_from ||
+ connection_allowed(w->ifd, w->client_ip, w->client_host, sizeof(w->client_host),
+ web_allow_netdataconf_from, "netdata.conf", web_allow_netdataconf_dns))
+ w->acl |= HTTP_ACL_NETDATACONF;
+ }
+
+ w->acl &= w->port_acl;
+}
+
+
+// --------------------------------------------------------------------------------------
+
+void web_server_log_connection(struct web_client *w, const char *msg) {
+ ND_LOG_STACK lgs[] = {
+ ND_LOG_FIELD_U64(NDF_CONNECTION_ID, w->id),
+#ifdef ENABLE_HTTPS
+ ND_LOG_FIELD_TXT(NDF_SRC_TRANSPORT, SSL_connection(&w->ssl) ? "https" : "http"),
+#else
+ ND_LOG_FIELD_TXT(NDF_SRC_TRANSPORT, "http"),
+#endif
+ ND_LOG_FIELD_TXT(NDF_SRC_IP, w->client_ip),
+ ND_LOG_FIELD_TXT(NDF_SRC_PORT, w->client_port),
+ ND_LOG_FIELD_TXT(NDF_SRC_FORWARDED_HOST, w->forwarded_host),
+ ND_LOG_FIELD_TXT(NDF_SRC_FORWARDED_FOR, w->forwarded_for),
+ ND_LOG_FIELD_END(),
+ };
+ ND_LOG_STACK_PUSH(lgs);
+
+ nd_log(NDLS_ACCESS, NDLP_DEBUG, "[%s]:%s %s", w->client_ip, w->client_port, msg);
+}
diff --git a/web/server/web_server.h b/src/web/server/web_server.h
index a31938c8d..a31938c8d 100644
--- a/web/server/web_server.h
+++ b/src/web/server/web_server.h